From 543f3fc9bc039f41ccc9a9eba96d5b65079c89d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 26 Mar 2024 16:58:51 +0100 Subject: [PATCH 001/115] Initial work on type safe TLs --- .../CodeTraceabilityState.java | 18 +++--- .../SadSamCodeTraceabilityState.java | 28 --------- .../connectiongenerator/ConnectionState.java | 11 ++-- .../diagramrecognition/DiagramElement.java | 4 +- .../core/api/models/ArchitectureEntity.java | 12 ++++ .../ardoco/core/api/models/CodeEntity.java | 12 ++++ .../mcse/ardoco/core/api/models/Entity.java | 6 +- .../ardoco/core/api/models/ModelInstance.java | 4 +- .../ardoco/core/api/models/TextEntity.java | 12 ++++ .../arcotl/architecture/ArchitectureItem.java | 6 +- .../core/api/models/arcotl/code/CodeItem.java | 5 +- .../api/models/tracelinks/EndpointTuple.java | 18 +++--- .../api/models/tracelinks/InstanceLink.java | 6 +- .../models/tracelinks/SadCodeTraceLink.java | 14 ++--- .../models/tracelinks/SadSamTraceLink.java | 49 +++++---------- .../models/tracelinks/SamCodeTraceLink.java | 7 ++- .../core/api/models/tracelinks/TraceLink.java | 32 ++++++---- .../tracelinks/TransitiveTraceLink.java | 33 +++++------ .../RecommendedInstance.java | 6 +- .../ardoco/core/api/text/SentenceEntity.java | 35 +++++++++++ .../core/common/util/TraceLinkUtilities.java | 59 +++++-------------- .../ardoco/core/api/output/ArDoCoResult.java | 31 ++++++---- .../ardoco/core/common/util/FilePrinter.java | 18 +++--- 23 files changed, 223 insertions(+), 203 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/SadSamCodeTraceabilityState.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java index 98f26bb31..800dc9ecf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java @@ -1,13 +1,17 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.codetraceability; import java.util.Collection; import org.eclipse.collections.api.set.ImmutableSet; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; @@ -21,7 +25,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLink the trace link to add * @return whether the operation was successful */ - boolean addSamCodeTraceLink(SamCodeTraceLink traceLink); + boolean addSamCodeTraceLink(TraceLink traceLink); /** * Add a collection of {@link SamCodeTraceLink SamCodeTraceLinks} to this state. @@ -29,14 +33,14 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSamCodeTraceLinks(Collection traceLinks); + boolean addSamCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link SamCodeTraceLink SamCodeTraceLinks}. * * @return set of stored {@link SamCodeTraceLink SamCodeTraceLinks} */ - ImmutableSet getSamCodeTraceLinks(); + ImmutableSet> getSamCodeTraceLinks(); /** * Add a {@link TransitiveTraceLink} to this state. @@ -44,7 +48,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLink the trace link to add * @return whether the operation was successful */ - boolean addSadCodeTraceLink(SadCodeTraceLink traceLink); + boolean addSadCodeTraceLink(TraceLink traceLink); /** * Add a collection of {@link SadCodeTraceLink SadCodeTraceLinks} to this state. @@ -52,12 +56,12 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSadCodeTraceLinks(Collection traceLinks); + boolean addSadCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link TransitiveTraceLink TransitiveTraceLinks}. * * @return set of stored {@link TransitiveTraceLink TransitiveTraceLinks} */ - ImmutableSet getSadCodeTraceLinks(); + ImmutableSet> getSadCodeTraceLinks(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/SadSamCodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/SadSamCodeTraceabilityState.java deleted file mode 100644 index 9045aecad..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/SadSamCodeTraceabilityState.java +++ /dev/null @@ -1,28 +0,0 @@ -/* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.codetraceability; - -import java.util.Collection; - -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; -import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; - -public interface SadSamCodeTraceabilityState extends PipelineStepData { - String ID = "SadSamCodeTraceabilityState"; - - /** - * Add a {@link SamCodeTraceLink} to this state. - * - * @param traceLink the trace link to add - * @return whether the operation was successful - */ - boolean addTraceLink(TransitiveTraceLink traceLink); - - /** - * Add a collection of {@link SamCodeTraceLink SamCodeTraceLinks} to this state. - * - * @param traceLinks the trace links to add - * @return whether the operation was successful - */ - boolean addTraceLinks(Collection traceLinks); -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java index 0a6933006..23929ec10 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; import org.eclipse.collections.api.factory.Sets; @@ -6,10 +6,13 @@ import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.InstanceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; @@ -65,13 +68,13 @@ public interface ConnectionState extends IConfigurable { * * @return list of tracelinks within this connection state */ - default ImmutableSet getTraceLinks() { - MutableSet traceLinks = Sets.mutable.empty(); + default ImmutableSet> getTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); for (var instanceLink : getInstanceLinks()) { var textualInstance = instanceLink.getTextualInstance(); for (var nm : textualInstance.getNameMappings()) { for (var word : nm.getWords()) { - var traceLink = new SadSamTraceLink(instanceLink, word); + var traceLink = new SadSamTraceLink(word.getSentence(), instanceLink.getModelInstance()); traceLinks.add(traceLink); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/diagramrecognition/DiagramElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/diagramrecognition/DiagramElement.java index 345a7e36f..0ed347d7a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/diagramrecognition/DiagramElement.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/diagramrecognition/DiagramElement.java @@ -10,7 +10,7 @@ import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.eclipse.collections.impl.factory.SortedSets; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelElement; import edu.kit.kastel.mcse.ardoco.core.common.util.SimilarityComparable; import edu.kit.kastel.mcse.ardoco.core.data.GlobalConfiguration; @@ -19,7 +19,7 @@ * This box represents a geometrical shape with an arbitrary amount of text from a diagram. An element can be uniquely identified by its bounding box or UID and * the diagram it belongs to. */ -public abstract class DiagramElement extends Entity implements SimilarityComparable { +public abstract class DiagramElement extends ArchitectureEntity implements SimilarityComparable { private final Diagram diagram; private DiagramElement parent; private List children; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java new file mode 100644 index 000000000..121adfa94 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java @@ -0,0 +1,12 @@ +/* Licensed under MIT 2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models; + +public abstract non-sealed class ArchitectureEntity extends Entity { + protected ArchitectureEntity(String name) { + super(name); + } + + protected ArchitectureEntity(String name, String id) { + super(name, id); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java new file mode 100644 index 000000000..01e1e8af3 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java @@ -0,0 +1,12 @@ +/* Licensed under MIT 2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models; + +public non-sealed class CodeEntity extends Entity { + protected CodeEntity(String name) { + super(name); + } + + protected CodeEntity(String name, String id) { + super(name, id); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java index 03ef49beb..f4de857e5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java @@ -1,12 +1,14 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models; +import java.io.Serializable; + import com.fasterxml.jackson.annotation.JsonProperty; /** * An entity with a name. Is a model element. */ -public abstract class Entity extends ModelElement { +public abstract sealed class Entity extends ModelElement implements Serializable permits ArchitectureEntity, TextEntity, CodeEntity { @JsonProperty private String name; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java index 821351ea6..4a4216577 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models; import org.eclipse.collections.api.list.ImmutableList; @@ -6,7 +6,7 @@ /** * The Interface IModelInstance defines instances from models. */ -public abstract sealed class ModelInstance extends Entity permits ModelInstanceImpl { +public abstract sealed class ModelInstance extends ArchitectureEntity permits ModelInstanceImpl { protected ModelInstance(String name, String id) { super(name, id); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java new file mode 100644 index 000000000..89336a41a --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java @@ -0,0 +1,12 @@ +/* Licensed under MIT 2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models; + +public non-sealed class TextEntity extends Entity { + protected TextEntity(String name) { + super(name); + } + + protected TextEntity(String name, String id) { + super(name, id); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 6ff5ebc8d..681bff859 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,14 +1,14 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; /** * An architecture item of an architecture model. A possible candidate for the * architecture endpoint of a trace link that connects corresponding elements of * an architecture model and a code model. */ -public abstract sealed class ArchitectureItem extends Entity permits ArchitectureComponent, ArchitectureInterface, ArchitectureMethod { +public abstract sealed class ArchitectureItem extends ArchitectureEntity permits ArchitectureComponent, ArchitectureInterface, ArchitectureMethod { /** * Creates a new architecture item with the specified name. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java index baa0f1c50..5dc7a23b9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.CodeEntity; /** * A code item of a code model. @@ -22,13 +22,14 @@ @JsonSubTypes.Type(value = ComputationalObject.class, name = "ComputationalObject"), // @JsonSubTypes.Type(value = Datatype.class, name = "Datatype") // }) -public abstract sealed class CodeItem extends Entity permits CodeModule, ComputationalObject, Datatype { +public abstract sealed class CodeItem extends CodeEntity permits CodeModule, ComputationalObject, Datatype { @JsonIgnore protected CodeItemRepository codeItemRepository; CodeItem() { // Jackson + super(null); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java index 8543917ed..5b8661919 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java @@ -10,15 +10,15 @@ * A tuple of one architecture endpoint and one code endpoint. Every endpoint tuple is a possible candidate for the endpoints of a trace link that connects * corresponding elements of an architecture model and a code model. An endpoint tuple cannot consist of two architecture endpoints or of two code endpoints. */ -public class EndpointTuple implements Serializable { - private final Entity firstEndpoint; - private final Entity secondEndpoint; +public class EndpointTuple implements Serializable { + private final E1 firstEndpoint; + private final E2 secondEndpoint; /** * @param firstEndpoint the architecture endpoint of the endpoint tuple to be created * @param secondEndpoint the code endpoint of the endpoint tuple to be created */ - public EndpointTuple(Entity firstEndpoint, Entity secondEndpoint) { + public EndpointTuple(E1 firstEndpoint, E2 secondEndpoint) { this.firstEndpoint = firstEndpoint; this.secondEndpoint = secondEndpoint; } @@ -37,7 +37,7 @@ public boolean hasEndpoint(Entity endpoint) { return firstEndpoint.equals(endpoint) || secondEndpoint.equals(endpoint); } - public boolean hasEndpoint(EndpointTuple endpointTuple) { + public boolean hasEndpoint(EndpointTuple endpointTuple) { return firstEndpoint.equals(endpointTuple.firstEndpoint) || secondEndpoint.equals(endpointTuple.secondEndpoint); } @@ -46,7 +46,7 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof EndpointTuple other)) { + if (!(obj instanceof EndpointTuple other)) { return false; } return Objects.equals(firstEndpoint, other.firstEndpoint) && Objects.equals(secondEndpoint, other.secondEndpoint); @@ -54,14 +54,14 @@ public boolean equals(Object obj) { @Override public String toString() { - return "Architecture Endpoint: " + firstEndpoint + ", Code Endpoint: " + secondEndpoint; + return "First Endpoint: " + firstEndpoint + ", Second Endpoint: " + secondEndpoint; } - public Entity firstEndpoint() { + public E1 firstEndpoint() { return firstEndpoint; } - public Entity secondEndpoint() { + public E2 secondEndpoint() { return secondEndpoint; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java index 3d2e081ce..6b457e919 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; import java.util.Arrays; @@ -21,11 +21,11 @@ * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelInstance}. */ @Deterministic -public class InstanceLink extends EndpointTuple { +public class InstanceLink extends EndpointTuple { private final RecommendedInstance textualInstance; private final ModelInstance modelInstance; - private Confidence confidence; + private final Confidence confidence; /** * Create a new instance link diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java index f087d2f38..ed1f1b6bd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java @@ -1,14 +1,12 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; -public class SadCodeTraceLink extends TraceLink { +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; - public SadCodeTraceLink(EndpointTuple endpointTuple) { - super(endpointTuple); - } +public class SadCodeTraceLink extends TraceLink { - @Override - public String toString() { - return getEndpointTuple().toString(); + public SadCodeTraceLink(SentenceEntity e1, CodeCompilationUnit e2) { + super(e1, e2); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java index e0857dd5e..89f709c97 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java @@ -1,31 +1,30 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; import java.util.Objects; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; /** * Represents a trace link. This is a convenience data class that takes the necessary info from {@link InstanceLink} and * the specific {@link ModelInstance} and {@link Word} that are used in this trace link. */ -public class SadSamTraceLink extends TraceLink { - private final InstanceLink instanceLink; - private final Word word; +public class SadSamTraceLink extends TraceLink { + + private final Sentence sentence; + private final ModelInstance modelInstance; /** - * Create a trace link based on a {@link InstanceLink} and a concrete {@link ModelInstance} along with a concrete - * {@link Word}. - * - * @param instanceLink InstanceLink of this trace link - * @param word word that the trace link points to + * Create a trace link based on a {@link Sentence} and a concrete {@link ModelInstance} . */ - public SadSamTraceLink(InstanceLink instanceLink, Word word) { - super(new EndpointTuple(instanceLink.getTextualInstance(), instanceLink.getModelInstance())); - this.instanceLink = instanceLink; - this.word = word; + public SadSamTraceLink(Sentence sentence, ModelInstance modelInstance) { + super(new SentenceEntity(sentence), modelInstance); + this.sentence = sentence; + this.modelInstance = modelInstance; } /** @@ -34,7 +33,7 @@ public SadSamTraceLink(InstanceLink instanceLink, Word word) { * @return sentence number of the word that the trace link is based on. */ public int getSentenceNumber() { - return word.getSentenceNo(); + return sentence.getSentenceNumber(); } /** @@ -43,7 +42,7 @@ public int getSentenceNumber() { * @return the sentence of the word that the trace link is based on. */ public Sentence getSentence() { - return word.getSentence(); + return sentence; } /** @@ -52,25 +51,7 @@ public Sentence getSentence() { * @return Uid of the model element that the trace link is based on. */ public String getModelElementUid() { - return instanceLink.getModelInstance().getUid(); - } - - /** - * Get the {@link InstanceLink} that the trace link is based on. - * - * @return {@link InstanceLink} that the trace link is based on. - */ - public InstanceLink getInstanceLink() { - return instanceLink; - } - - /** - * Get the probability/confidence of this trace link - * - * @return probability/confidence of this trace link - */ - public double getConfidence() { - return instanceLink.getConfidence(); + return modelInstance.getUid(); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java index 0f22f97bd..c71512188 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java @@ -1,8 +1,9 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; import java.util.Objects; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; @@ -11,7 +12,7 @@ * endpoint. Trace links are created to connect corresponding elements of an * architecture and a code model. */ -public class SamCodeTraceLink extends TraceLink { +public class SamCodeTraceLink extends TraceLink { /** * Creates a new trace link between an architecture endpoint and a code endpoint @@ -21,7 +22,7 @@ public class SamCodeTraceLink extends TraceLink { * @param codeEndpoint the code endpoint */ public SamCodeTraceLink(ArchitectureItem architectureEndpoint, CodeCompilationUnit codeEndpoint) { - super(new EndpointTuple(architectureEndpoint, codeEndpoint)); + super(architectureEndpoint, codeEndpoint); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java index 9259c2d58..94b1cab53 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java @@ -4,11 +4,15 @@ import java.io.Serializable; import java.util.Objects; -public class TraceLink implements Serializable { - private final EndpointTuple endpointTuple; +import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; - public TraceLink(EndpointTuple endpointTuple) { - this.endpointTuple = endpointTuple; +public abstract class TraceLink implements Serializable { + private final E1 endpoint1; + private final E2 endpoint2; + + protected TraceLink(E1 firstEndpoint, E2 secondEndpoint) { + this.endpoint1 = firstEndpoint; + this.endpoint2 = secondEndpoint; } /** @@ -16,13 +20,21 @@ public TraceLink(EndpointTuple endpointTuple) { * * @return the endpoint tuple of this trace link */ - public EndpointTuple getEndpointTuple() { - return endpointTuple; + public EndpointTuple getEndpointTuple() { + return new EndpointTuple<>(endpoint1, endpoint2); + } + + public E1 getFirstEndpoint() { + return endpoint1; + } + + public E2 getSecondEndpoint() { + return endpoint2; } @Override public int hashCode() { - return Objects.hash(endpointTuple); + return Objects.hash(endpoint1, endpoint2); } @Override @@ -30,14 +42,14 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof TraceLink other)) { + if (!(obj instanceof TraceLink other)) { return false; } - return Objects.equals(endpointTuple, other.endpointTuple); + return Objects.equals(endpoint1, other.endpoint1) && Objects.equals(endpoint2, other.endpoint2); } @Override public String toString() { - return endpointTuple.toString(); + return getEndpointTuple().toString(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java index 4000f3c46..944524084 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java @@ -1,39 +1,41 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; import java.util.Objects; import java.util.Optional; -public class TransitiveTraceLink extends SadCodeTraceLink { +import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; - private final TraceLink firstTraceLink; - private final TraceLink secondTraceLink; +public final class TransitiveTraceLink extends TraceLink { - private TransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { - super(new EndpointTuple(firstTraceLink.getEndpointTuple().firstEndpoint(), secondTraceLink.getEndpointTuple().secondEndpoint())); + private final TraceLink firstTraceLink; + private final TraceLink secondTraceLink; + + private TransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { + super(firstTraceLink.getFirstEndpoint(), secondTraceLink.getSecondEndpoint()); this.firstTraceLink = firstTraceLink; this.secondTraceLink = secondTraceLink; } - public static Optional createTransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { + public static Optional> createTransitiveTraceLink( + TraceLink firstTraceLink, TraceLink secondTraceLink) { if (isValidTransitiveTraceLink(firstTraceLink, secondTraceLink)) { - return Optional.of(new TransitiveTraceLink(firstTraceLink, secondTraceLink)); + return Optional.of(new TransitiveTraceLink<>(firstTraceLink, secondTraceLink)); } return Optional.empty(); } - public static boolean isValidTransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { + public static boolean isValidTransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { var secondEndpointOfFirstTl = firstTraceLink.getEndpointTuple().secondEndpoint().getId(); var firstEndpointOfSecondTl = secondTraceLink.getEndpointTuple().firstEndpoint().getId(); - return secondEndpointOfFirstTl.equals(firstEndpointOfSecondTl); } - public TraceLink getFirstTraceLink() { + public TraceLink getFirstTraceLink() { return firstTraceLink; } - public TraceLink getSecondTraceLink() { + public TraceLink getSecondTraceLink() { return secondTraceLink; } @@ -47,16 +49,11 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof TransitiveTraceLink other)) { + if (!(obj instanceof TransitiveTraceLink other)) { return false; } return Objects.equals(getFirstTraceLink(), other.getFirstTraceLink()) && // Objects.equals(getSecondTraceLink(), other.getSecondTraceLink()) && // Objects.equals(getEndpointTuple(), other.getEndpointTuple()); } - - @Override - public String toString() { - return getEndpointTuple().toString(); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java index 519974dd1..60ef17688 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java @@ -1,17 +1,17 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** * The Interface IRecommendedInstance defines the aggregation of noun mappings to one recommendation. */ -public abstract class RecommendedInstance extends Entity { +public abstract class RecommendedInstance extends TextEntity { protected RecommendedInstance(String name, String id) { super(name, id); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java new file mode 100644 index 000000000..a5195fb55 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java @@ -0,0 +1,35 @@ +/* Licensed under MIT 2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.text; + +import java.util.Objects; + +import edu.kit.kastel.mcse.ardoco.core.api.models.TextEntity; + +public final class SentenceEntity extends TextEntity { + + private final Sentence sentence; + + public SentenceEntity(Sentence sentence) { + super(sentence.getText(), String.valueOf(sentence.getSentenceNumber())); + this.sentence = sentence; + } + + public Sentence getSentence() { + return sentence; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + SentenceEntity that = (SentenceEntity) o; + return Objects.equals(sentence, that.sentence); + } + + @Override + public int hashCode() { + return Objects.hash(sentence); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 3bd0bf197..cd5d1baa6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -1,18 +1,15 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; public class TraceLinkUtilities { @@ -26,59 +23,33 @@ public static String createTraceLinkString(String firstElementId, String secondE return firstElementId + ENTRY_SEPARATOR + secondElementId; } - public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList sadSamTraceLinks) { - return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getModelElementUid(), String.valueOf(tl.getSentenceNumber() + 1))); + public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { + return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() + .getSentence() + .getSentenceNumber() + 1))); } - public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList samCodeTraceLinks) { + public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList> samCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : samCodeTraceLinks) { - EndpointTuple endpointTuple = traceLink.getEndpointTuple(); + EndpointTuple endpointTuple = traceLink.getEndpointTuple(); var modelElement = endpointTuple.firstEndpoint(); - var codeElement = (CodeCompilationUnit) endpointTuple.secondEndpoint(); + var codeElement = endpointTuple.secondEndpoint(); String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); resultsMut.add(traceLinkString); } return resultsMut.toImmutable(); } - public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList sadCodeTraceLinks) { + public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : sadCodeTraceLinks) { - EndpointTuple endpointTuple = traceLink.getEndpointTuple(); - var codeElement = (CodeCompilationUnit) endpointTuple.secondEndpoint(); - String sentenceNumber; - if (traceLink instanceof TransitiveTraceLink transitiveTraceLink) { - sentenceNumber = String.valueOf(((SadSamTraceLink) transitiveTraceLink.getFirstTraceLink()).getSentenceNumber() + 1); - } else if (traceLink.getEndpointTuple().firstEndpoint() instanceof RecommendedInstance) { - // Direct trace links - // Assumption: Only one type of trace link - return getDirectSadCodeTraceLinksAsStringList(sadCodeTraceLinks); - } else { - throw new IllegalArgumentException("Unsupported type of tracelink: " + traceLink); - } - + EndpointTuple endpointTuple = traceLink.getEndpointTuple(); + var codeElement = endpointTuple.secondEndpoint(); + String sentenceNumber = String.valueOf(endpointTuple.firstEndpoint().getSentence().getSentenceNumber() + 1); String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString()); resultsMut.add(traceLinkString); - } return resultsMut.toImmutable(); } - - private static ImmutableList getDirectSadCodeTraceLinksAsStringList(ImmutableList sadCodeTraceLinks) { - MutableList result = Lists.mutable.empty(); - for (var traceLink : sadCodeTraceLinks) { - if (!(traceLink.getEndpointTuple().firstEndpoint() instanceof RecommendedInstance recommendedInstance)) - return result.toImmutable(); - - var codeElement = (CodeCompilationUnit) traceLink.getEndpointTuple().secondEndpoint(); - ImmutableSortedSet sentenceNumbers = recommendedInstance.getSentenceNumbers(); - for (var sentence : sentenceNumbers) { - String traceLinkString = TraceLinkUtilities.createTraceLinkString(String.valueOf(sentence + 1), codeElement.toString()); - result.add(traceLinkString); - } - } - return result.toImmutable(); - } - } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index f4d75d694..0d03ab5e3 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -24,15 +24,19 @@ import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.TextInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @@ -62,7 +66,7 @@ public String getProjectName() { * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id */ - public ImmutableSet getTraceLinksForModel(String modelId) { + public ImmutableSet> getTraceLinksForModel(String modelId) { ConnectionState connectionState = getConnectionState(modelId); if (connectionState != null) { return connectionState.getTraceLinks(); @@ -78,8 +82,9 @@ public ImmutableSet getTraceLinksForModel(String modelId) { */ public ImmutableSortedSet getTraceLinksForModelAsStrings(String modelId) { var formatString = "%s,%d"; - return getTraceLinksForModel(modelId).collect(tl -> String.format(formatString, tl.getModelElementUid(), tl.getSentenceNumber() + 1)) - .toImmutableSortedSet(); + return getTraceLinksForModel(modelId).collect(tl -> String.format(formatString, tl.getSecondEndpoint().getId(), tl.getFirstEndpoint() + .getSentence() + .getSentenceNumber() + 1)).toImmutableSortedSet(); } /** @@ -87,8 +92,8 @@ public ImmutableSortedSet getTraceLinksForModelAsStrings(String modelId) * * @return set of Trace links */ - public ImmutableList getAllTraceLinks() { - MutableSet traceLinks = Sets.mutable.empty(); + public ImmutableList> getAllTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); for (var modelId : getModelIds()) { if (getModelState(modelId).getMetamodel() == Metamodel.ARCHITECTURE) @@ -103,16 +108,16 @@ public ImmutableList getAllTraceLinks() { * @return Trace links as Strings */ public List getAllTraceLinksAsBeautifiedStrings() { - return getAllTraceLinks().toSortedList(Comparator.comparingInt(SadSamTraceLink::getSentenceNumber)) + return getAllTraceLinks().toSortedList(Comparator.comparingInt(tl -> tl.getFirstEndpoint().getSentence().getSentenceNumber())) .collect(ArDoCoResult::formatTraceLinksHumanReadable); } - private static String formatTraceLinksHumanReadable(SadSamTraceLink traceLink) { - String modelElementName = traceLink.getInstanceLink().getModelInstance().getFullName(); - String modelElementUid = traceLink.getModelElementUid(); + private static String formatTraceLinksHumanReadable(TraceLink traceLink) { + String modelElementName = ((ModelInstance) traceLink.getSecondEndpoint()).getFullName(); + String modelElementUid = traceLink.getSecondEndpoint().getId(); String modelInfo = String.format("%s (%s)", modelElementName, modelElementUid); - var sentence = traceLink.getSentence(); + var sentence = traceLink.getFirstEndpoint().getSentence(); int sentenceNumber = sentence.getSentenceNumberForOutput(); String sentenceInfo = String.format("S%3d: \"%s\"", sentenceNumber, sentence.getText()); @@ -124,7 +129,7 @@ private static String formatTraceLinksHumanReadable(SadSamTraceLink traceLink) { * * @return the list of {@link SamCodeTraceLink SamCodeTraceLinks}. */ - public List getSamCodeTraceLinks() { + public List> getSamCodeTraceLinks() { var samCodeTraceabilityState = getCodeTraceabilityState(); if (samCodeTraceabilityState != null) return samCodeTraceabilityState.getSamCodeTraceLinks().toList(); @@ -136,7 +141,7 @@ public List getSamCodeTraceLinks() { * * @return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. */ - public List getSadCodeTraceLinks() { + public List> getSadCodeTraceLinks() { var samCodeTraceabilityState = getCodeTraceabilityState(); if (samCodeTraceabilityState != null) return samCodeTraceabilityState.getSadCodeTraceLinks().toList(); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 8b0f436e3..067310ef2 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -19,6 +19,7 @@ import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.Comparator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.Supplier; @@ -36,14 +37,16 @@ import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.InstanceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.MappingKind; @@ -335,17 +338,16 @@ private static ImmutableList getMappingsAsDataLinesOfTextState(TextSta private static ImmutableList getLinksAsDataLinesOfConnectionState(ConnectionState connectionState) { MutableList dataLines = Lists.mutable.empty(); - dataLines.add(new String[] { "#Found TraceLinks: ", "", "" }); + dataLines.add(new String[] { "#Found TraceLinks: ", "" }); dataLines.add(new String[] { "" }); - dataLines.add(new String[] { "modelElementID", "sentence", "confidence" }); + dataLines.add(new String[] { "modelElementID", "sentence" }); - Set tracelinks = new java.util.LinkedHashSet<>(connectionState.getTraceLinks().castToCollection()); + Set> tracelinks = new LinkedHashSet<>(connectionState.getTraceLinks().castToCollection()); for (var tracelink : tracelinks) { - var modelElementUid = tracelink.getModelElementUid(); + var modelElementUid = tracelink.getSecondEndpoint().getId(); // sentence offset is 1 because real sentences are 1-indexed - var sentenceNumber = Integer.toString(tracelink.getSentenceNumber() + 1); - var probability = Double.toString(tracelink.getConfidence()); - dataLines.add(new String[] { modelElementUid, sentenceNumber, probability }); + var sentenceNumber = Integer.toString(tracelink.getFirstEndpoint().getSentence().getSentenceNumber() + 1); + dataLines.add(new String[] { modelElementUid, sentenceNumber }); } return dataLines.toImmutable(); From 06211ff92873f8b7e09b79718b5818df985772a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 19:47:14 +0100 Subject: [PATCH 002/115] Sync 19:47 --- .../CodeTraceabilityState.java | 6 +- .../connectiongenerator/ConnectionState.java | 5 +- .../InstanceLink.java | 31 ++--- .../api/models/ArchitectureModelType.java | 4 +- .../ardoco/core/api/models/CodeModelType.java | 4 +- .../mcse/ardoco/core/api/models/Entity.java | 65 ----------- .../ardoco/core/api/models/ModelElement.java | 50 -------- .../ardoco/core/api/models/ModelStates.java | 36 +++--- .../ardoco/core/api/models/ModelType.java | 2 +- .../core/api/models/arcotl/CodeModel.java | 2 +- .../ardoco/core/api/models/arcotl/Model.java | 12 +- .../architecture/ArchitectureComponent.java | 34 +++--- .../architecture/ArchitectureInterface.java | 18 +-- .../arcotl/architecture/ArchitectureItem.java | 4 +- .../architecture/ArchitectureMethod.java | 2 + .../legacy}/LegacyModelExtractionState.java | 8 +- .../LegacyModelExtractionStateByArCoTL.java | 58 +++++---- .../architecture/legacy}/ModelInstance.java | 7 +- .../legacy}/ModelInstanceImpl.java | 37 +++--- .../api/models/arcotl/code/ClassUnit.java | 23 ++-- .../api/models/arcotl/code/CodeAssembly.java | 2 + .../arcotl/code/CodeCompilationUnit.java | 47 ++++---- .../core/api/models/arcotl/code/CodeItem.java | 8 +- .../arcotl/code/CodeItemRepository.java | 18 +-- .../api/models/arcotl/code/CodeModule.java | 38 +++--- .../api/models/arcotl/code/CodePackage.java | 8 +- .../arcotl/code/ComputationalObject.java | 2 + .../models/arcotl/code/ControlElement.java | 2 + .../core/api/models/arcotl/code/Datatype.java | 50 ++++---- .../api/models/arcotl/code/InterfaceUnit.java | 21 ++-- .../arcotl/code/ProgrammingLanguage.java | 9 -- .../arcotl/code/ProgrammingLanguages.java | 14 +++ .../{ => entity}/ArchitectureEntity.java | 4 +- .../api/models/{ => entity}/CodeEntity.java | 4 +- .../ardoco/core/api/models/entity/Entity.java | 84 +++++++++++++ .../api/models/{ => entity}/TextEntity.java | 4 +- .../api/models/tracelinks/EndpointTuple.java | 26 +++-- .../models/tracelinks/SadCodeTraceLink.java | 2 + .../models/tracelinks/SadSamTraceLink.java | 27 +++-- .../models/tracelinks/SamCodeTraceLink.java | 10 +- .../core/api/models/tracelinks/TraceLink.java | 18 +-- .../tracelinks/TransitiveTraceLink.java | 18 +-- .../RecommendationStateStrategy.java | 4 +- .../RecommendedInstance.java | 4 +- .../ardoco/core/api/text/NlpInformant.java | 2 + .../ardoco/core/api/text/SentenceEntity.java | 16 ++- .../mcse/ardoco/core/common/Internal.java | 2 +- .../core/common/util/CommonUtilities.java | 2 +- .../core/common/util/SimilarityUtils.java | 2 +- .../core/common/util/TraceLinkUtilities.java | 2 +- .../ardoco/core/api/output/ArDoCoResult.java | 110 +++++++++--------- .../ardoco/core/common/util/FilePrinter.java | 8 +- 52 files changed, 514 insertions(+), 462 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => connectiongenerator}/InstanceLink.java (76%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelElement.java rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => arcotl/architecture/legacy}/LegacyModelExtractionState.java (84%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => arcotl/architecture/legacy}/LegacyModelExtractionStateByArCoTL.java (70%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => arcotl/architecture/legacy}/ModelInstance.java (83%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => arcotl/architecture/legacy}/ModelInstanceImpl.java (71%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => entity}/ArchitectureEntity.java (67%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => entity}/CodeEntity.java (64%) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ => entity}/TextEntity.java (64%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java index 800dc9ecf..3064b0b5a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java @@ -5,8 +5,8 @@ import org.eclipse.collections.api.set.ImmutableSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; @@ -33,7 +33,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSamCodeTraceLinks(Collection> traceLinks); + boolean addSamCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link SamCodeTraceLink SamCodeTraceLinks}. @@ -56,7 +56,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSadCodeTraceLinks(Collection> traceLinks); + boolean addSadCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link TransitiveTraceLink TransitiveTraceLinks}. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java index 23929ec10..8214b53f6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java @@ -6,9 +6,8 @@ import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java similarity index 76% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java index 6b457e919..5ae5bc8e6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; import java.util.Arrays; import java.util.LinkedHashSet; @@ -9,11 +9,13 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.Internal; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; @@ -21,8 +23,11 @@ * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelInstance}. */ @Deterministic +@Internal public class InstanceLink extends EndpointTuple { + private static final long serialVersionUID = -8630933950725516269L; + private final RecommendedInstance textualInstance; private final ModelInstance modelInstance; private final Confidence confidence; @@ -55,7 +60,7 @@ public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInst /** * Add confidence to this link. - * + * * @param claimant the claimant that wants to change the confidence * @param confidence the confidence value to add */ @@ -69,7 +74,7 @@ public final void addConfidence(Claimant claimant, double confidence) { * @return the probability of this link */ public final double getConfidence() { - return confidence.getConfidence(); + return this.confidence.getConfidence(); } /** @@ -78,7 +83,7 @@ public final double getConfidence() { * @return the textual instance */ public final RecommendedInstance getTextualInstance() { - return textualInstance; + return this.textualInstance; } /** @@ -87,12 +92,12 @@ public final RecommendedInstance getTextualInstance() { * @return the extracted instance */ public final ModelInstance getModelInstance() { - return modelInstance; + return this.modelInstance; } @Override public int hashCode() { - return Objects.hash(modelInstance, textualInstance); + return Objects.hash(this.modelInstance, this.textualInstance); } @Override @@ -103,7 +108,7 @@ public boolean equals(Object obj) { if (!(obj instanceof InstanceLink other)) { return false; } - return Objects.equals(getModelInstance(), other.getModelInstance()) && Objects.equals(getTextualInstance(), other.getTextualInstance()); + return Objects.equals(this.getModelInstance(), other.getModelInstance()) && Objects.equals(this.getTextualInstance(), other.getTextualInstance()); } @Override @@ -113,17 +118,17 @@ public String toString() { Set types = new LinkedHashSet<>(); MutableList typePositions = Lists.mutable.empty(); - for (NounMapping nameMapping : textualInstance.getNameMappings()) { + for (NounMapping nameMapping : this.textualInstance.getNameMappings()) { names.addAll(nameMapping.getSurfaceForms().castToCollection()); namePositions.addAll(nameMapping.getMappingSentenceNo().castToCollection()); } - for (NounMapping typeMapping : textualInstance.getTypeMappings()) { + for (NounMapping typeMapping : this.textualInstance.getTypeMappings()) { types.addAll(typeMapping.getSurfaceForms().castToCollection()); typePositions.addAll(typeMapping.getMappingSentenceNo().castToCollection()); } - return "InstanceMapping [ uid=" + modelInstance.getUid() + ", name=" + modelInstance.getFullName() + // - ", as=" + String.join(", ", modelInstance.getFullType()) + ", probability=" + getConfidence() + ", FOUND: " + // - textualInstance.getName() + " : " + textualInstance.getType() + ", occurrences= " + // + return "InstanceMapping [ uid=" + this.modelInstance.getUid() + ", name=" + this.modelInstance.getFullName() + // + ", as=" + String.join(", ", this.modelInstance.getFullType()) + ", probability=" + this.getConfidence() + ", FOUND: " + // + this.textualInstance.getName() + " : " + this.textualInstance.getType() + ", occurrences= " + // "NameVariants: " + names.size() + ": " + names + " sentences{" + Arrays.toString(namePositions.toArray()) + "}" + // ", TypeVariants: " + types.size() + ": " + types + "sentences{" + Arrays.toString(typePositions.toArray()) + "}" + "]"; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java index 89e1040ee..9bb5cb55c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java @@ -19,7 +19,7 @@ public enum ArchitectureModelType implements ModelType { RAW; @Override - public String getModelId() { - return this.name(); + public Metamodel getMetamodel() { + return Metamodel.ARCHITECTURE; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java index 2a4eee106..3521e2fc5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java @@ -5,7 +5,7 @@ public enum CodeModelType implements ModelType { CODE_MODEL; @Override - public String getModelId() { - return "CodeModel"; + public Metamodel getMetamodel() { + return Metamodel.CODE; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java deleted file mode 100644 index f4de857e5..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Entity.java +++ /dev/null @@ -1,65 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; - -import java.io.Serializable; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * An entity with a name. Is a model element. - */ -public abstract sealed class Entity extends ModelElement implements Serializable permits ArchitectureEntity, TextEntity, CodeEntity { - - @JsonProperty - private String name; - - protected Entity() { - // Jackson - } - - /** - * Creates a new entity with the specified name. - * - * @param name the name of the entity to be created - */ - protected Entity(String name) { - this.name = name; - } - - protected Entity(String name, String id) { - super(id); - this.name = name; - } - - /** - * Returns the entity's name. - * - * @return the entity's name - */ - public String getName() { - return name; - } - - @Override - public String toString() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof Entity entity)) - return false; - if (!super.equals(o)) - return false; - return name.equals(entity.name) && getId().equals(entity.getId()); - } - - @Override - public int hashCode() { - int result = super.hashCode(); - result = 31 * result + name.hashCode(); - return 31 * result + getId().hashCode(); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelElement.java deleted file mode 100644 index dc1306499..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelElement.java +++ /dev/null @@ -1,50 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; - -import java.io.Serializable; -import java.util.Objects; - -import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; - -/** - * A model element. Has an identifier. Two model elements are equal if and only if they have the same identifier. - */ -public abstract class ModelElement implements Comparable, Serializable { - - private final String id; - - protected ModelElement() { - this.id = IdentifierProvider.createId(); - } - - protected ModelElement(String id) { - this.id = id; - } - - public String getId() { - return id; - } - - @Override - public int hashCode() { - return Objects.hash(id); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof ModelElement other)) { - return false; - } - return Objects.equals(id, other.id); - } - - @Override - public int compareTo(ModelElement o) { - if (this.equals(o)) - return 0; - return this.id.compareTo(o.id); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index e888e9b24..a2e5cc90f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -9,13 +9,17 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.CodeModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionStateByArCoTL; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; public class ModelStates implements PipelineStepData { + private static final long serialVersionUID = -603436842247064371L; + public static final String ID = "ModelStatesData"; - private SortedMap models = new TreeMap<>(); - private SortedMap legacyModels = new TreeMap<>(); + private SortedMap models = new TreeMap<>(); + private SortedMap legacyModels = new TreeMap<>(); /** * Constructor to create a {@link ModelStates} object that holds all {@link LegacyModelExtractionState}s @@ -29,23 +33,25 @@ public ModelStates() { * * @param id the id * @return the corresponding {@link LegacyModelExtractionState} - * @deprecated use {@link #getModel(String)} instead + * @deprecated use {@link #getModel(Metamodel)} instead */ @Deprecated - public LegacyModelExtractionState getModelExtractionState(String id) { - if (legacyModels.containsKey(id)) - return legacyModels.get(id); + public LegacyModelExtractionState getModelExtractionState(Metamodel id) { + if (this.legacyModels.containsKey(id)) { + return this.legacyModels.get(id); + } - var model = models.get(id); - if (model == null) + var model = this.models.get(id); + if (model == null) { return null; + } var legacyModel = switch (model) { case ArchitectureModel am -> new LegacyModelExtractionStateByArCoTL(am); case CodeModel cm -> new LegacyModelExtractionStateByArCoTL(cm); }; - legacyModels.put(id, legacyModel); + this.legacyModels.put(id, legacyModel); return legacyModel; } @@ -54,8 +60,8 @@ public LegacyModelExtractionState getModelExtractionState(String id) { * * @return the IDs of all contained {@link Model Models} */ - public SortedSet modelIds() { - return new TreeSet<>(models.keySet()); + public SortedSet modelIds() { + return new TreeSet<>(this.models.keySet()); } /** @@ -64,8 +70,8 @@ public SortedSet modelIds() { * @param id the id * @param model the {@link Model} */ - public void addModel(String id, Model model) { - models.put(id, model); + public void addModel(Metamodel id, Model model) { + this.models.put(id, model); } /** @@ -74,8 +80,8 @@ public void addModel(String id, Model model) { * @param id the id * @return the corresponding {@link Model} */ - public Model getModel(String id) { - return models.get(id); + public Model getModel(Metamodel id) { + return this.models.get(id); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java index 22e715a57..e36853e2b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java @@ -2,5 +2,5 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; public interface ModelType { - String getModelId(); + Metamodel getMetamodel(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 068d6e8b0..2324b0501 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -11,11 +11,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; /** * A code model that is a CMTL instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 5959c4e8a..52ec6a926 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -3,10 +3,16 @@ import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelElement; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; -public abstract sealed class Model extends ModelElement permits ArchitectureModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, CodeModel { + + private final String id = IdentifierProvider.createId(); + + public String getId() { + return this.id; + } /** * Returns the content of this model. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index 3f3be5e4e..b2f7dc7e7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -12,6 +12,8 @@ */ public final class ArchitectureComponent extends ArchitectureItem { + private static final long serialVersionUID = -7349058662425121364L; + private final SortedSet subcomponents; private final SortedSet providedInterfaces; @@ -33,7 +35,7 @@ public ArchitectureComponent(String name, String id, SortedSet getSubcomponents() { - return subcomponents; + return this.subcomponents; } /** @@ -43,7 +45,7 @@ public SortedSet getSubcomponents() { * @return the provided interfaces of this component */ public SortedSet getProvidedInterfaces() { - return providedInterfaces; + return this.providedInterfaces; } /** @@ -53,7 +55,7 @@ public SortedSet getProvidedInterfaces() { * @return the required interfaces of this component */ public SortedSet getRequiredInterfaces() { - return requiredInterfaces; + return this.requiredInterfaces; } /** @@ -62,36 +64,30 @@ public SortedSet getRequiredInterfaces() { * @return the type of this component */ public String getType() { - return type; + return this.type; } @Override public String toString() { - return "Component: " + getName(); + return "Component: " + this.getName(); } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof ArchitectureComponent that)) - return false; - if (!super.equals(o)) - return false; - - if (!subcomponents.equals(that.subcomponents)) - return false; - if (!providedInterfaces.equals(that.providedInterfaces)) + } + if (!(o instanceof ArchitectureComponent that) || !super.equals(o) || !this.subcomponents.equals(that.subcomponents) || !this.providedInterfaces.equals(that.providedInterfaces)) { return false; - return requiredInterfaces.equals(that.requiredInterfaces); + } + return this.requiredInterfaces.equals(that.requiredInterfaces); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + subcomponents.hashCode(); - result = 31 * result + providedInterfaces.hashCode(); - result = 31 * result + requiredInterfaces.hashCode(); - return result; + result = 31 * result + this.subcomponents.hashCode(); + result = 31 * result + this.providedInterfaces.hashCode(); + return 31 * result + this.requiredInterfaces.hashCode(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index be17504d4..48884aef8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -6,6 +6,8 @@ public final class ArchitectureInterface extends ArchitectureItem { + private static final long serialVersionUID = 2232013345166120690L; + private final SortedSet signatures; public ArchitectureInterface(String name, String id, SortedSet signatures) { @@ -14,27 +16,27 @@ public ArchitectureInterface(String name, String id, SortedSet getSignatures() { - return signatures; + return this.signatures; } @Override public String toString() { - return "Interface: " + getName(); + return "Interface: " + this.getName(); } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof ArchitectureInterface that)) - return false; - if (!super.equals(o)) + } + if (!(o instanceof ArchitectureInterface that) || !super.equals(o)) { return false; - return Objects.equals(signatures, that.signatures); + } + return Objects.equals(this.signatures, that.signatures); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), signatures); + return Objects.hash(super.hashCode(), this.signatures); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 681bff859..206bd83f8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; /** * An architecture item of an architecture model. A possible candidate for the @@ -10,6 +10,8 @@ */ public abstract sealed class ArchitectureItem extends ArchitectureEntity permits ArchitectureComponent, ArchitectureInterface, ArchitectureMethod { + private static final long serialVersionUID = -216185356134452192L; + /** * Creates a new architecture item with the specified name. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index 52ef3ae23..e178b932a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -3,6 +3,8 @@ public final class ArchitectureMethod extends ArchitectureItem { + private static final long serialVersionUID = 6560555992331464264L; + public ArchitectureMethod(String name) { super(name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java similarity index 84% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java index eae127f2b..96ab19a0a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java @@ -1,17 +1,19 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import java.io.Serializable; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; /** * The Interface IModelState defines the information directly extracted from the models. - * - * @deprecated use {@link ModelStates#getModel(String)} + * + * @deprecated use {@link ModelStates#getModel(Metamodel)} */ @Deprecated(since = "0.32.0") public interface LegacyModelExtractionState extends IConfigurable, Serializable { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java similarity index 70% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java index 702bc1860..25a73fb29 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import java.util.ArrayList; import java.util.Collection; @@ -16,15 +16,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.CodeModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureInterface; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureMethod; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.*; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ClassUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeModule; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.InterfaceUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ProgrammingLanguages; public class LegacyModelExtractionStateByArCoTL implements LegacyModelExtractionState { + private static final long serialVersionUID = -9079063953852495629L; + private static final Logger logger = LoggerFactory.getLogger(LegacyModelExtractionStateByArCoTL.class); private final String modelId; @@ -38,21 +46,21 @@ public class LegacyModelExtractionStateByArCoTL implements LegacyModelExtraction public LegacyModelExtractionStateByArCoTL(ArchitectureModel architectureModel) { this.modelId = architectureModel.getId(); - this.instances = initArchitectureInstances(architectureModel); + this.instances = LegacyModelExtractionStateByArCoTL.initArchitectureInstances(architectureModel); this.metamodel = Metamodel.ARCHITECTURE; - instanceTypes = SortedSets.mutable.empty(); - names = SortedSets.mutable.empty(); - collectTypesAndNames(); + this.instanceTypes = SortedSets.mutable.empty(); + this.names = SortedSets.mutable.empty(); + this.collectTypesAndNames(); } public LegacyModelExtractionStateByArCoTL(CodeModel codeModel) { this.modelId = codeModel.getId(); - this.instances = initCodeInstances(codeModel); + this.instances = LegacyModelExtractionStateByArCoTL.initCodeInstances(codeModel); this.metamodel = Metamodel.CODE; - instanceTypes = SortedSets.mutable.empty(); - names = SortedSets.mutable.empty(); - collectTypesAndNames(); + this.instanceTypes = SortedSets.mutable.empty(); + this.names = SortedSets.mutable.empty(); + this.collectTypesAndNames(); } private static ImmutableList initArchitectureInstances(ArchitectureModel architectureModel) { @@ -60,8 +68,8 @@ private static ImmutableList initArchitectureInstances(Architectu for (ArchitectureItem architectureItem : architectureModel.getEndpoints()) { switch (architectureItem) { case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); - case ArchitectureInterface ignored -> logger.debug("Skipping .. ArchitectureInterface not supported yet"); - case ArchitectureMethod ignored -> logger.debug("Skipping .. ArchitectureMethod not supported yet"); + case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); + case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); } } return instances.toImmutable(); @@ -69,8 +77,8 @@ private static ImmutableList initArchitectureInstances(Architectu private static ImmutableList initCodeInstances(CodeModel codeModel) { List instances = new ArrayList<>(); - fillPackages(codeModel.getAllPackages(), instances); - fillCompilationUnits(codeModel.getEndpoints(), instances); + LegacyModelExtractionStateByArCoTL.fillPackages(codeModel.getAllPackages(), instances); + LegacyModelExtractionStateByArCoTL.fillCompilationUnits(codeModel.getEndpoints(), instances); return Lists.immutable.withAll(instances); } @@ -90,7 +98,7 @@ private static void fillPackages(Collection packages, Lis private static void fillCompilationUnits(Collection units, List instances) { for (var unit : units) { - String type = findType(unit); + String type = LegacyModelExtractionStateByArCoTL.findType(unit); instances.add(new ModelInstanceImpl(unit.getName(), type, unit.getPath())); } @@ -112,16 +120,16 @@ private static String findType(CodeCompilationUnit unit) { // Default to Class return "Class"; } - if (unit.getLanguage() == ProgrammingLanguage.SHELL) { + if (unit.getLanguage() == ProgrammingLanguages.SHELL) { return "ShellScript"; } throw new IllegalStateException("Unknown type of CodeCompilationUnit"); } private void collectTypesAndNames() { - for (ModelInstance i : instances) { - instanceTypes.addAll(i.getTypeParts().castToCollection()); - names.addAll(i.getNameParts().castToCollection()); + for (ModelInstance i : this.instances) { + this.instanceTypes.addAll(i.getTypeParts().castToCollection()); + this.names.addAll(i.getNameParts().castToCollection()); } } @@ -137,28 +145,28 @@ public Metamodel getMetamodel() { @Override public ImmutableList getInstancesOfType(String type) { - return instances.select(i -> i.getTypeParts().contains(type)); + return this.instances.select(i -> i.getTypeParts().contains(type)); } @Override public ImmutableSortedSet getInstanceTypes() { - return instanceTypes.toImmutable(); + return this.instanceTypes.toImmutable(); } @Override public ImmutableSortedSet getNames() { - return names.toImmutable(); + return this.names.toImmutable(); } @Override public ImmutableList getInstances() { - return instances; + return this.instances; } @Override public String toString() { var output = new StringBuilder("Instances:\n"); - for (ModelInstance i : instances) { + for (ModelInstance i : this.instances) { output.append(i.toString()).append("\n"); } return output.toString(); @@ -171,6 +179,6 @@ public void applyConfiguration(SortedMap additionalConfiguration @Override public SortedMap getLastAppliedConfiguration() { - return lastConfig; + return this.lastConfig; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java similarity index 83% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java index 4a4216577..486720922 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java @@ -1,13 +1,18 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import org.eclipse.collections.api.list.ImmutableList; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; + /** * The Interface IModelInstance defines instances from models. */ +@Deprecated public abstract sealed class ModelInstance extends ArchitectureEntity permits ModelInstanceImpl { + private static final long serialVersionUID = 2351521910499184817L; + protected ModelInstance(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstanceImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java similarity index 71% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstanceImpl.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java index f9cc2b16f..4ce43719c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelInstanceImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import java.util.Objects; @@ -13,8 +13,11 @@ * This class represents an instance extracted from a model. The name of an instance (as well as the type) are splitted at spaces and can be seen as multiple * names. Therefore, the longestName (and type) is the original name (type) of the instance. */ +@Deprecated public final class ModelInstanceImpl extends ModelInstance { + private static final long serialVersionUID = 9185325416212743266L; + private final String fullName; private final String fullType; private final MutableList names; @@ -32,19 +35,19 @@ public ModelInstanceImpl(String name, String type, String uid) { super(name, uid); String splitName = CommonUtilities.splitCases(name); - names = Lists.mutable.with(splitName.split(" ")); - if (names.size() > 1) { - names.add(name); + this.names = Lists.mutable.with(splitName.split(" ")); + if (this.names.size() > 1) { + this.names.add(name); } String splitType = CommonUtilities.splitCases(type); - types = Lists.mutable.with(splitType.split(" ")); - if (types.size() > 1) { - types.add(type); + this.types = Lists.mutable.with(splitType.split(" ")); + if (this.types.size() > 1) { + this.types.add(type); } this.uid = uid; - fullName = name; - fullType = type; + this.fullName = name; + this.fullType = type; } /** @@ -54,7 +57,7 @@ public ModelInstanceImpl(String name, String type, String uid) { */ @Override public String getFullName() { - return fullName; + return this.fullName; } /** @@ -64,7 +67,7 @@ public String getFullName() { */ @Override public String getFullType() { - return fullType; + return this.fullType; } /** @@ -74,7 +77,7 @@ public String getFullType() { */ @Override public ImmutableList getNameParts() { - return names.toImmutable(); + return this.names.toImmutable(); } /** @@ -84,7 +87,7 @@ public ImmutableList getNameParts() { */ @Override public ImmutableList getTypeParts() { - return types.toImmutable(); + return this.types.toImmutable(); } /** @@ -94,17 +97,17 @@ public ImmutableList getTypeParts() { */ @Override public String getUid() { - return uid; + return this.uid; } @Override public String toString() { - return "Instance [names=" + String.join(", ", names) + ", type=" + String.join(", ", types) + "]"; + return "Instance [names=" + String.join(", ", this.names) + ", type=" + String.join(", ", this.types) + "]"; } @Override public int hashCode() { - return Objects.hash(fullName, fullType, uid); + return Objects.hash(this.fullName, this.fullType, this.uid); } @Override @@ -115,7 +118,7 @@ public boolean equals(Object obj) { if (!(obj instanceof ModelInstanceImpl other)) { return false; } - return Objects.equals(fullName, other.fullName) && Objects.equals(fullType, other.fullType) && Objects.equals(uid, other.uid); + return Objects.equals(this.fullName, other.fullName) && Objects.equals(this.fullType, other.fullType) && Objects.equals(this.uid, other.uid); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java index 1091ae6ba..126ea60ba 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java @@ -12,13 +12,15 @@ @JsonTypeName("ClassUnit") public final class ClassUnit extends Datatype { + private static final long serialVersionUID = 354013115794534271L; + @JsonProperty private final List content; @SuppressWarnings("unused") private ClassUnit() { // Jackson - content = new ArrayList<>(); + this.content = new ArrayList<>(); } public ClassUnit(CodeItemRepository codeItemRepository, String name, SortedSet content) { @@ -31,37 +33,36 @@ public ClassUnit(CodeItemRepository codeItemRepository, String name, SortedSet getContentIds() { - return content; + return this.content; } @Override public List getContent() { - return codeItemRepository.getCodeItemsFromIds(content); + return this.codeItemRepository.getCodeItemsFromIds(this.content); } @Override public List getAllDataTypes() { List result = new ArrayList<>(); result.add(this); - getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); return result; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof ClassUnit classUnit)) - return false; - if (!super.equals(o)) + } + if (!(o instanceof ClassUnit classUnit) || !super.equals(o)) { return false; - return content.equals(classUnit.content); + } + return this.content.equals(classUnit.content); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + content.hashCode(); - return result; + return 31 * result + this.content.hashCode(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java index 82fe3bb6b..aba02d335 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -8,6 +8,8 @@ @JsonTypeName("CodeAssembly") public final class CodeAssembly extends CodeModule { + private static final long serialVersionUID = 3082912967900986071L; + @SuppressWarnings("unused") private CodeAssembly() { // Jackson diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index 2b0da3d08..ec5440cb2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -17,12 +17,14 @@ @JsonTypeName("CodeCompilationUnit") public final class CodeCompilationUnit extends CodeModule { + private static final long serialVersionUID = 6749513760670983294L; + @JsonProperty private List pathElements; @JsonProperty private String extension; @JsonProperty - private ProgrammingLanguage language; + private String language; @SuppressWarnings("unused") private CodeCompilationUnit() { @@ -30,21 +32,21 @@ private CodeCompilationUnit() { } public CodeCompilationUnit(CodeItemRepository codeItemRepository, String name, SortedSet content, List pathElements, - String extension, ProgrammingLanguage language) { + String extension, String language) { super(codeItemRepository, name, content); this.pathElements = new ArrayList<>(pathElements); this.extension = extension; this.language = language; } - public ProgrammingLanguage getLanguage() { - return language; + public String getLanguage() { + return this.language; } @Override public List getAllDataTypes() { List result = new ArrayList<>(); - getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); return result; } @@ -68,49 +70,44 @@ public List getParentPackageNames() { } public List getPathElements() { - return new ArrayList<>(pathElements); + return new ArrayList<>(this.pathElements); } public String getPath() { StringBuilder pathBuilder = new StringBuilder(); - for (String pathElement : pathElements) { + for (String pathElement : this.pathElements) { pathBuilder.append(pathElement).append("/"); } String ending = ""; - if (!extension.isEmpty()) { - ending = "." + extension; + if (!this.extension.isEmpty()) { + ending = "." + this.extension; } - pathBuilder.append(getName()).append(ending); + pathBuilder.append(this.getName()).append(ending); return pathBuilder.toString(); } @Override public String toString() { - return getPath(); + return this.getPath(); } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof CodeCompilationUnit that)) - return false; - if (!super.equals(o)) - return false; - - if (!Objects.equals(pathElements, that.pathElements)) - return false; - if (!Objects.equals(extension, that.extension)) + } + if (!(o instanceof CodeCompilationUnit that) || !super.equals(o) || !Objects.equals(this.pathElements, that.pathElements) || !Objects.equals( + this.extension, that.extension)) { return false; - return language == that.language; + } + return this.language == that.language; } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + (pathElements != null ? pathElements.hashCode() : 0); - result = 31 * result + (extension != null ? extension.hashCode() : 0); - result = 31 * result + (language != null ? language.hashCode() : 0); - return result; + result = 31 * result + (this.pathElements != null ? this.pathElements.hashCode() : 0); + result = 31 * result + (this.extension != null ? this.extension.hashCode() : 0); + return 31 * result + (this.language != null ? this.language.hashCode() : 0); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java index 5dc7a23b9..e796bf91d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.kit.kastel.mcse.ardoco.core.api.models.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.CodeEntity; /** * A code item of a code model. @@ -24,6 +24,8 @@ }) public abstract sealed class CodeItem extends CodeEntity permits CodeModule, ComputationalObject, Datatype { + private static final long serialVersionUID = 7089107378955018027L; + @JsonIgnore protected CodeItemRepository codeItemRepository; @@ -61,14 +63,14 @@ public List getAllDataTypes() { } public SortedSet getAllDataTypesAndSelf() { - SortedSet result = new TreeSet<>(getAllDataTypes()); + SortedSet result = new TreeSet<>(this.getAllDataTypes()); result.add(this); return result; } public SortedSet getDeclaredMethods() { SortedSet methods = new TreeSet<>(); - for (CodeItem codeItem : getContent()) { + for (CodeItem codeItem : this.getContent()) { if (codeItem instanceof ControlElement codeMethod) { methods.add(codeMethod); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java index 05dac9d2f..ed4039a1c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java @@ -12,27 +12,30 @@ public class CodeItemRepository implements Serializable { + private static final long serialVersionUID = 7081204548135982601L; + @JsonProperty private SortedMap repository = new TreeMap<>(); @JsonIgnore private boolean initialized = false; public SortedMap getRepository() { - return new TreeMap<>(repository); + return new TreeMap<>(this.repository); } void addCodeItem(CodeItem codeItem) { - repository.put(codeItem.getId(), codeItem); + this.repository.put(codeItem.getId(), codeItem); } boolean containsCodeItem(String id) { - return repository.containsKey(id); + return this.repository.containsKey(id); } CodeItem getCodeItem(String id) { - if (id == null) + if (id == null) { return null; - return repository.get(id); + } + return this.repository.get(id); } public List getCodeItemsFromIds(List codeItemIds) { @@ -40,9 +43,10 @@ public List getCodeItemsFromIds(List codeItemIds) { } public synchronized void init() { - if (initialized) + if (this.initialized) { return; + } this.repository.values().forEach(it -> it.registerCurrentCodeItemRepository(this)); - initialized = true; + this.initialized = true; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java index a8df6554a..d9145e386 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java @@ -22,6 +22,8 @@ @JsonTypeName("CodeModule") public sealed class CodeModule extends CodeItem permits CodeAssembly, CodeCompilationUnit, CodePackage { + private static final long serialVersionUID = -7941299662945801101L; + @JsonProperty private String parentId; @JsonProperty @@ -37,17 +39,17 @@ public CodeModule(CodeItemRepository codeItemRepository, String name, SortedSet< for (var codeItem : content) { this.content.add(codeItem.getId()); } - parentId = null; + this.parentId = null; } @JsonGetter("content") protected List getContentIds() { - return content; + return this.content; } @Override public List getContent() { - return codeItemRepository.getCodeItemsFromIds(content); + return this.codeItemRepository.getCodeItemsFromIds(this.content); } public void setContent(List content) { @@ -66,7 +68,7 @@ public void addContent(List content) { } public CodeModule getParent() { - CodeItem codeItem = codeItemRepository.getCodeItem(parentId); + CodeItem codeItem = this.codeItemRepository.getCodeItem(this.parentId); if (codeItem instanceof CodeModule codeModule) { return codeModule; } @@ -74,49 +76,45 @@ public CodeModule getParent() { } public boolean hasParent() { - return getParent() != null; + return this.getParent() != null; } public void setParent(CodeModule parent) { this.parentId = parent.getId(); - if (!codeItemRepository.containsCodeItem(parentId)) { - codeItemRepository.addCodeItem(parent); + if (!this.codeItemRepository.containsCodeItem(this.parentId)) { + this.codeItemRepository.addCodeItem(parent); } } @Override public SortedSet getAllCompilationUnits() { SortedSet result = new TreeSet<>(); - getContent().forEach(c -> result.addAll(c.getAllCompilationUnits())); + this.getContent().forEach(c -> result.addAll(c.getAllCompilationUnits())); return result; } @Override public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); - getContent().forEach(c -> result.addAll(c.getAllPackages())); + this.getContent().forEach(c -> result.addAll(c.getAllPackages())); return result; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof CodeModule that)) - return false; - if (!super.equals(o)) - return false; - - if (!Objects.equals(parentId, that.parentId)) + } + if (!(o instanceof CodeModule that) || !super.equals(o) || !Objects.equals(this.parentId, that.parentId)) { return false; - return Objects.equals(content, that.content); + } + return Objects.equals(this.content, that.content); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + (parentId != null ? parentId.hashCode() : 0); - result = 31 * result + (content != null ? content.hashCode() : 0); - return result; + result = 31 * result + (this.parentId != null ? this.parentId.hashCode() : 0); + return 31 * result + (this.content != null ? this.content.hashCode() : 0); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java index 5973e4fe2..2c31960db 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java @@ -9,6 +9,8 @@ @JsonTypeName("CodePackage") public final class CodePackage extends CodeModule { + private static final long serialVersionUID = -5224168387357601602L; + @SuppressWarnings("unused") private CodePackage() { // Jackson @@ -24,7 +26,7 @@ public CodePackage(CodeItemRepository codeItemRepository, String name, SortedSet public SortedSet getSubpackages() { SortedSet codePackages = new TreeSet<>(); - for (CodeItem packageElement : getContent()) { + for (CodeItem packageElement : this.getContent()) { if (packageElement instanceof CodePackage codePackage) { codePackages.add(codePackage); } @@ -34,7 +36,7 @@ public SortedSet getSubpackages() { public SortedSet getCompilationUnits() { SortedSet compilationUnits = new TreeSet<>(); - for (CodeItem packageElement : getContent()) { + for (CodeItem packageElement : this.getContent()) { if (packageElement instanceof CodeCompilationUnit compilationUnit) { compilationUnits.add(compilationUnit); } @@ -46,7 +48,7 @@ public SortedSet getCompilationUnits() { public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); result.add(this); - getContent().forEach(c -> result.addAll(c.getAllPackages())); + this.getContent().forEach(c -> result.addAll(c.getAllPackages())); return result; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java index b4836f975..0bd1bbb66 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java @@ -10,6 +10,8 @@ @JsonTypeName("ComputationalObject") public sealed class ComputationalObject extends CodeItem permits ControlElement { + private static final long serialVersionUID = -6879811567216500291L; + ComputationalObject() { // Jackson } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java index 1d1e3497f..2a60253e5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java @@ -6,6 +6,8 @@ @JsonTypeName("ControlElement") public final class ControlElement extends ComputationalObject { + private static final long serialVersionUID = -2733651783905632198L; + @SuppressWarnings("unused") private ControlElement() { // Jackson diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java index 476b12a4f..b6d2c2e2a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java @@ -21,6 +21,8 @@ @JsonTypeName("Datatype") public sealed class Datatype extends CodeItem permits ClassUnit, InterfaceUnit { + private static final long serialVersionUID = -1925023806648753973L; + @JsonProperty private String compilationUnitId; @JsonProperty @@ -44,7 +46,7 @@ public Datatype(CodeItemRepository codeItemRepository, String name) { } public CodeCompilationUnit getCompilationUnit() { - CodeItem codeItem = codeItemRepository.getCodeItem(compilationUnitId); + CodeItem codeItem = this.codeItemRepository.getCodeItem(this.compilationUnitId); if (codeItem instanceof CodeCompilationUnit codeCompilationUnit) { return codeCompilationUnit; } @@ -52,7 +54,7 @@ public CodeCompilationUnit getCompilationUnit() { } public Datatype getParentDatatype() { - CodeItem codeItem = codeItemRepository.getCodeItem(parentDatatypeId); + CodeItem codeItem = this.codeItemRepository.getCodeItem(this.parentDatatypeId); if (codeItem instanceof Datatype datatype) { return datatype; } @@ -60,8 +62,8 @@ public Datatype getParentDatatype() { } public SortedSet getExtendedTypes() { - return extendedDataTypesIds.stream().map(id -> { - CodeItem codeItem = codeItemRepository.getCodeItem(id); + return this.extendedDataTypesIds.stream().map(id -> { + CodeItem codeItem = this.codeItemRepository.getCodeItem(id); if (codeItem instanceof Datatype datatype) { return datatype; } else { @@ -71,8 +73,8 @@ public SortedSet getExtendedTypes() { } public SortedSet getImplementedTypes() { - return implementedDataTypesIds.stream().map(id -> { - CodeItem codeItem = codeItemRepository.getCodeItem(id); + return this.implementedDataTypesIds.stream().map(id -> { + CodeItem codeItem = this.codeItemRepository.getCodeItem(id); if (codeItem instanceof Datatype datatype) { return datatype; } else { @@ -82,8 +84,8 @@ public SortedSet getImplementedTypes() { } public SortedSet getDatatypeReferences() { - return datatypeReferencesIds.stream().map(id -> { - CodeItem codeItem = codeItemRepository.getCodeItem(id); + return this.datatypeReferencesIds.stream().map(id -> { + CodeItem codeItem = this.codeItemRepository.getCodeItem(id); if (codeItem instanceof Datatype datatype) { return datatype; } else { @@ -120,32 +122,28 @@ public void setDatatypeReference(SortedSet datatypeDependencies) { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof Datatype datatype)) - return false; - if (!super.equals(o)) - return false; - - if (!Objects.equals(compilationUnitId, datatype.compilationUnitId)) - return false; - if (!Objects.equals(parentDatatypeId, datatype.parentDatatypeId)) + } + if (!(o instanceof Datatype datatype) || !super.equals(o) || !Objects.equals(this.compilationUnitId, datatype.compilationUnitId) || !Objects.equals(this.parentDatatypeId, datatype.parentDatatypeId)) { return false; - if (!Objects.equals(extendedDataTypesIds, datatype.extendedDataTypesIds)) + } + if (!Objects.equals(this.extendedDataTypesIds, datatype.extendedDataTypesIds)) { return false; - if (!Objects.equals(implementedDataTypesIds, datatype.implementedDataTypesIds)) + } + if (!Objects.equals(this.implementedDataTypesIds, datatype.implementedDataTypesIds)) { return false; - return Objects.equals(datatypeReferencesIds, datatype.datatypeReferencesIds); + } + return Objects.equals(this.datatypeReferencesIds, datatype.datatypeReferencesIds); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + (compilationUnitId != null ? compilationUnitId.hashCode() : 0); - result = 31 * result + (parentDatatypeId != null ? parentDatatypeId.hashCode() : 0); - result = 31 * result + (extendedDataTypesIds != null ? extendedDataTypesIds.hashCode() : 0); - result = 31 * result + (implementedDataTypesIds != null ? implementedDataTypesIds.hashCode() : 0); - result = 31 * result + (datatypeReferencesIds != null ? datatypeReferencesIds.hashCode() : 0); - return result; + result = 31 * result + (this.compilationUnitId != null ? this.compilationUnitId.hashCode() : 0); + result = 31 * result + (this.parentDatatypeId != null ? this.parentDatatypeId.hashCode() : 0); + result = 31 * result + (this.extendedDataTypesIds != null ? this.extendedDataTypesIds.hashCode() : 0); + result = 31 * result + (this.implementedDataTypesIds != null ? this.implementedDataTypesIds.hashCode() : 0); + return 31 * result + (this.datatypeReferencesIds != null ? this.datatypeReferencesIds.hashCode() : 0); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java index 00132baf0..35cd148c8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java @@ -13,6 +13,8 @@ @JsonTypeName("InterfaceUnit") public final class InterfaceUnit extends Datatype { + private static final long serialVersionUID = 7746781256077022392L; + @JsonProperty private List content; @@ -31,38 +33,37 @@ public InterfaceUnit(CodeItemRepository codeItemRepository, String name, SortedS @JsonGetter("content") protected List getContentIds() { - return content; + return this.content; } @Override public List getContent() { - return codeItemRepository.getCodeItemsFromIds(content); + return this.codeItemRepository.getCodeItemsFromIds(this.content); } @Override public List getAllDataTypes() { List result = new ArrayList<>(); result.add(this); - getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); return result; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof InterfaceUnit that)) - return false; - if (!super.equals(o)) + } + if (!(o instanceof InterfaceUnit that) || !super.equals(o)) { return false; + } - return Objects.equals(content, that.content); + return Objects.equals(this.content, that.content); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + (content != null ? content.hashCode() : 0); - return result; + return 31 * result + (this.content != null ? this.content.hashCode() : 0); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java deleted file mode 100644 index 5030f30d6..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java +++ /dev/null @@ -1,9 +0,0 @@ -/* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; - -/** - * Supported programming languages. - */ -public enum ProgrammingLanguage { - JAVA, SHELL -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java new file mode 100644 index 000000000..342087dd1 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java @@ -0,0 +1,14 @@ +/* Licensed under MIT 2023. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; + +/** + * Supported programming languages. + */ +public final class ProgrammingLanguages { + private ProgrammingLanguages() { + throw new IllegalAccessError(); + } + + public static final String JAVA = "JAVA"; + public static final String SHELL = "SHELL"; +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java similarity index 67% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java index 121adfa94..6241e1199 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java @@ -1,7 +1,9 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.entity; public abstract non-sealed class ArchitectureEntity extends Entity { + private static final long serialVersionUID = 5118724938904048363L; + protected ArchitectureEntity(String name) { super(name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java similarity index 64% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java index 01e1e8af3..736fe9f96 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java @@ -1,7 +1,9 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.entity; public non-sealed class CodeEntity extends Entity { + private static final long serialVersionUID = 5520572653996476974L; + protected CodeEntity(String name) { super(name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java new file mode 100644 index 000000000..d13194795 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java @@ -0,0 +1,84 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.entity; + +import java.io.Serializable; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; + +/** + * An entity with a name. Is a model element. + */ +public abstract sealed class Entity implements Serializable, Comparable permits ArchitectureEntity, TextEntity, CodeEntity { + + private static final long serialVersionUID = 5916408204883918465L; + + @JsonProperty + private final String id; + + @JsonProperty + private String name; + + protected Entity() { + // Jackson + this(null); + } + + /** + * Creates a new entity with the specified name. + * + * @param name the name of the entity to be created + */ + protected Entity(String name) { + this(IdentifierProvider.createId(), name); + } + + protected Entity(String name, String id) { + this.id = Objects.requireNonNull(id); + this.name = name; + } + + public String getId() { + return this.id; + } + + /** + * Returns the entity's name. + * + * @return the entity's name + */ + public String getName() { + return this.name; + } + + @Override + public String toString() { + return this.name; + } + + @Override + public int hashCode() { + return Objects.hash(this.id, this.name); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof Entity other)) { + return false; + } + return Objects.equals(this.id, other.id) && Objects.equals(this.name, other.name); + } + + @Override + public int compareTo(Entity o) { + if (this.equals(o)) { + return 0; + } + return this.id.compareTo(o.id); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java similarity index 64% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java index 89336a41a..0c93cf5c9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java @@ -1,7 +1,9 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.models.entity; public non-sealed class TextEntity extends Entity { + private static final long serialVersionUID = 7693834560590279832L; + protected TextEntity(String name) { super(name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java index 5b8661919..e2fde6964 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java @@ -4,13 +4,15 @@ import java.io.Serializable; import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; /** * A tuple of one architecture endpoint and one code endpoint. Every endpoint tuple is a possible candidate for the endpoints of a trace link that connects * corresponding elements of an architecture model and a code model. An endpoint tuple cannot consist of two architecture endpoints or of two code endpoints. */ public class EndpointTuple implements Serializable { + private static final long serialVersionUID = -3671983559151147055L; + private final E1 firstEndpoint; private final E2 secondEndpoint; @@ -24,21 +26,21 @@ public EndpointTuple(E1 firstEndpoint, E2 secondEndpoint) { } public Entity getOtherEndpoint(Entity endpoint) { - if (firstEndpoint.equals(endpoint)) { - return secondEndpoint; + if (this.firstEndpoint.equals(endpoint)) { + return this.secondEndpoint; } - if (secondEndpoint.equals(endpoint)) { - return firstEndpoint; + if (this.secondEndpoint.equals(endpoint)) { + return this.firstEndpoint; } throw new IllegalArgumentException("Endpoint tuple must contain given endpoint"); } public boolean hasEndpoint(Entity endpoint) { - return firstEndpoint.equals(endpoint) || secondEndpoint.equals(endpoint); + return this.firstEndpoint.equals(endpoint) || this.secondEndpoint.equals(endpoint); } public boolean hasEndpoint(EndpointTuple endpointTuple) { - return firstEndpoint.equals(endpointTuple.firstEndpoint) || secondEndpoint.equals(endpointTuple.secondEndpoint); + return this.firstEndpoint.equals(endpointTuple.firstEndpoint) || this.secondEndpoint.equals(endpointTuple.secondEndpoint); } @Override @@ -49,25 +51,25 @@ public boolean equals(Object obj) { if (!(obj instanceof EndpointTuple other)) { return false; } - return Objects.equals(firstEndpoint, other.firstEndpoint) && Objects.equals(secondEndpoint, other.secondEndpoint); + return Objects.equals(this.firstEndpoint, other.firstEndpoint) && Objects.equals(this.secondEndpoint, other.secondEndpoint); } @Override public String toString() { - return "First Endpoint: " + firstEndpoint + ", Second Endpoint: " + secondEndpoint; + return "First Endpoint: " + this.firstEndpoint + ", Second Endpoint: " + this.secondEndpoint; } public E1 firstEndpoint() { - return firstEndpoint; + return this.firstEndpoint; } public E2 secondEndpoint() { - return secondEndpoint; + return this.secondEndpoint; } @Override public int hashCode() { - return Objects.hash(firstEndpoint, secondEndpoint); + return Objects.hash(this.firstEndpoint, this.secondEndpoint); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java index ed1f1b6bd..b282d7076 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java @@ -6,6 +6,8 @@ public class SadCodeTraceLink extends TraceLink { + private static final long serialVersionUID = -1099702076674008083L; + public SadCodeTraceLink(SentenceEntity e1, CodeCompilationUnit e2) { super(e1, e2); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java index 89f709c97..7e91f16db 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java @@ -3,8 +3,9 @@ import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; @@ -15,16 +16,18 @@ */ public class SadSamTraceLink extends TraceLink { + private static final long serialVersionUID = -4902602672085469964L; + private final Sentence sentence; - private final ModelInstance modelInstance; + private final ArchitectureEntity architectureEntity; /** * Create a trace link based on a {@link Sentence} and a concrete {@link ModelInstance} . */ - public SadSamTraceLink(Sentence sentence, ModelInstance modelInstance) { + public SadSamTraceLink(Sentence sentence, ArchitectureEntity modelInstance) { super(new SentenceEntity(sentence), modelInstance); this.sentence = sentence; - this.modelInstance = modelInstance; + this.architectureEntity = modelInstance; } /** @@ -33,7 +36,7 @@ public SadSamTraceLink(Sentence sentence, ModelInstance modelInstance) { * @return sentence number of the word that the trace link is based on. */ public int getSentenceNumber() { - return sentence.getSentenceNumber(); + return this.sentence.getSentenceNumber(); } /** @@ -42,7 +45,7 @@ public int getSentenceNumber() { * @return the sentence of the word that the trace link is based on. */ public Sentence getSentence() { - return sentence; + return this.sentence; } /** @@ -50,8 +53,8 @@ public Sentence getSentence() { * * @return Uid of the model element that the trace link is based on. */ - public String getModelElementUid() { - return modelInstance.getUid(); + public String getArchitectureEntityId() { + return this.architectureEntity.getId(); } /** @@ -60,16 +63,16 @@ public String getModelElementUid() { @Override public boolean equals(Object obj) { if (obj instanceof SadSamTraceLink other) { - var otherId = other.getModelElementUid(); + var otherId = other.getArchitectureEntityId(); var otherSentenceNo = other.getSentenceNumber(); - return getModelElementUid().equals(otherId) && getSentenceNumber() == otherSentenceNo; + return this.getArchitectureEntityId().equals(otherId) && this.getSentenceNumber() == otherSentenceNo; } return false; } @Override public int hashCode() { - return Objects.hash(getModelElementUid(), getSentenceNumber()); + return Objects.hash(this.getArchitectureEntityId(), this.getSentenceNumber()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java index c71512188..46ca1512a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java @@ -3,9 +3,9 @@ import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; /** * A trace link between exactly one architecture endpoint and exactly one code @@ -14,6 +14,8 @@ */ public class SamCodeTraceLink extends TraceLink { + private static final long serialVersionUID = -7683024763031647537L; + /** * Creates a new trace link between an architecture endpoint and a code endpoint * as given in the specified endpoint tuple. @@ -27,7 +29,7 @@ public SamCodeTraceLink(ArchitectureItem architectureEndpoint, CodeCompilationUn @Override public int hashCode() { - return Objects.hash(getEndpointTuple()); + return Objects.hash(this.getEndpointTuple()); } @Override @@ -38,11 +40,11 @@ public boolean equals(Object obj) { if (!(obj instanceof SamCodeTraceLink other)) { return false; } - return Objects.equals(getEndpointTuple(), other.getEndpointTuple()); + return Objects.equals(this.getEndpointTuple(), other.getEndpointTuple()); } @Override public String toString() { - return getEndpointTuple().toString(); + return this.getEndpointTuple().toString(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java index 94b1cab53..8a40b689f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java @@ -1,12 +1,16 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +import java.io.Serial; import java.io.Serializable; import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; public abstract class TraceLink implements Serializable { + @Serial + private static final long serialVersionUID = -2363643561606530433L; + private final E1 endpoint1; private final E2 endpoint2; @@ -21,20 +25,20 @@ protected TraceLink(E1 firstEndpoint, E2 secondEndpoint) { * @return the endpoint tuple of this trace link */ public EndpointTuple getEndpointTuple() { - return new EndpointTuple<>(endpoint1, endpoint2); + return new EndpointTuple<>(this.endpoint1, this.endpoint2); } public E1 getFirstEndpoint() { - return endpoint1; + return this.endpoint1; } public E2 getSecondEndpoint() { - return endpoint2; + return this.endpoint2; } @Override public int hashCode() { - return Objects.hash(endpoint1, endpoint2); + return Objects.hash(this.endpoint1, this.endpoint2); } @Override @@ -45,11 +49,11 @@ public boolean equals(Object obj) { if (!(obj instanceof TraceLink other)) { return false; } - return Objects.equals(endpoint1, other.endpoint1) && Objects.equals(endpoint2, other.endpoint2); + return Objects.equals(this.endpoint1, other.endpoint1) && Objects.equals(this.endpoint2, other.endpoint2); } @Override public String toString() { - return getEndpointTuple().toString(); + return this.getEndpointTuple().toString(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java index 944524084..8f9b0affa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java @@ -4,10 +4,12 @@ import java.util.Objects; import java.util.Optional; -import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; public final class TransitiveTraceLink extends TraceLink { + private static final long serialVersionUID = 3781827633038556211L; + private final TraceLink firstTraceLink; private final TraceLink secondTraceLink; @@ -19,7 +21,7 @@ private TransitiveTraceLink(TraceLink firstTraceLink, TraceLink seco public static Optional> createTransitiveTraceLink( TraceLink firstTraceLink, TraceLink secondTraceLink) { - if (isValidTransitiveTraceLink(firstTraceLink, secondTraceLink)) { + if (TransitiveTraceLink.isValidTransitiveTraceLink(firstTraceLink, secondTraceLink)) { return Optional.of(new TransitiveTraceLink<>(firstTraceLink, secondTraceLink)); } return Optional.empty(); @@ -32,16 +34,16 @@ public static boolean isValidTransitiveTraceLink(TraceLink firstTraceLink, } public TraceLink getFirstTraceLink() { - return firstTraceLink; + return this.firstTraceLink; } public TraceLink getSecondTraceLink() { - return secondTraceLink; + return this.secondTraceLink; } @Override public int hashCode() { - return Objects.hash(getEndpointTuple()); + return Objects.hash(this.getEndpointTuple()); } @Override @@ -52,8 +54,8 @@ public boolean equals(Object obj) { if (!(obj instanceof TransitiveTraceLink other)) { return false; } - return Objects.equals(getFirstTraceLink(), other.getFirstTraceLink()) && // - Objects.equals(getSecondTraceLink(), other.getSecondTraceLink()) && // - Objects.equals(getEndpointTuple(), other.getEndpointTuple()); + return Objects.equals(this.getFirstTraceLink(), other.getFirstTraceLink()) && // + Objects.equals(this.getSecondTraceLink(), other.getSecondTraceLink()) && // + Objects.equals(this.getEndpointTuple(), other.getEndpointTuple()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java index e2a606683..509476aea 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java @@ -4,7 +4,7 @@ import java.io.Serializable; public interface RecommendationStateStrategy extends Serializable { - boolean areRITypesSimilar(String typeA, String typeB); + boolean areRecommendedInstanceTypesSimilar(String typeA, String typeB); - boolean areRINamesSimilar(String nameA, String nameB); + boolean areRecommendedInstanceNamesSimilar(String nameA, String nameB); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java index 60ef17688..5c7fb5158 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java @@ -4,7 +4,7 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; @@ -13,6 +13,8 @@ */ public abstract class RecommendedInstance extends TextEntity { + private static final long serialVersionUID = -5422301094494768943L; + protected RecommendedInstance(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java index a03e90dbe..9f98f9f24 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java @@ -9,6 +9,8 @@ */ public abstract class NlpInformant extends Informant { + private static final long serialVersionUID = 7456517198218574644L; + protected NlpInformant(String id, DataRepository dataRepository) { super(id, dataRepository); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java index a5195fb55..d756ab0b6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java @@ -3,10 +3,12 @@ import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.TextEntity; public final class SentenceEntity extends TextEntity { + private static final long serialVersionUID = 7370112901785822767L; + private final Sentence sentence; public SentenceEntity(Sentence sentence) { @@ -15,21 +17,23 @@ public SentenceEntity(Sentence sentence) { } public Sentence getSentence() { - return sentence; + return this.sentence; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || this.getClass() != o.getClass()) { return false; + } SentenceEntity that = (SentenceEntity) o; - return Objects.equals(sentence, that.sentence); + return Objects.equals(this.sentence, that.sentence); } @Override public int hashCode() { - return Objects.hash(sentence); + return Objects.hash(this.sentence); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java index 1d5b567bb..a05a573d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java @@ -13,6 +13,6 @@ */ @Documented @Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE }) +@Target({ ElementType.METHOD, ElementType.TYPE, ElementType.CONSTRUCTOR }) public @interface Internal { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index af434776d..7b9d87011 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -22,7 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.DependencyTag; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java index ea698edeb..e5b7b06c6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java @@ -13,7 +13,7 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.PhraseType; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index cd5d1baa6..269228c1f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -5,8 +5,8 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 0d03ab5e3..be54548a4 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -24,12 +24,12 @@ import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.TextInconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; @@ -57,7 +57,7 @@ public record ArDoCoResult(DataRepository dataRepository) { * @return the name of the project the results are based on. */ public String getProjectName() { - return DataRepositoryHelper.getProjectPipelineData(dataRepository).getProjectName(); + return DataRepositoryHelper.getProjectPipelineData(this.dataRepository).getProjectName(); } /** @@ -66,8 +66,8 @@ public String getProjectName() { * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id */ - public ImmutableSet> getTraceLinksForModel(String modelId) { - ConnectionState connectionState = getConnectionState(modelId); + public ImmutableSet> getTraceLinksForModel(Metamodel modelId) { + ConnectionState connectionState = this.getConnectionState(modelId); if (connectionState != null) { return connectionState.getTraceLinks(); } @@ -80,11 +80,11 @@ public ImmutableSet> getTraceLinks * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id as Strings */ - public ImmutableSortedSet getTraceLinksForModelAsStrings(String modelId) { + public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel modelId) { var formatString = "%s,%d"; - return getTraceLinksForModel(modelId).collect(tl -> String.format(formatString, tl.getSecondEndpoint().getId(), tl.getFirstEndpoint() - .getSentence() - .getSentenceNumber() + 1)).toImmutableSortedSet(); + return this.getTraceLinksForModel(modelId) + .collect(tl -> String.format(formatString, tl.getSecondEndpoint().getId(), tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1)) + .toImmutableSortedSet(); } /** @@ -95,9 +95,10 @@ public ImmutableSortedSet getTraceLinksForModelAsStrings(String modelId) public ImmutableList> getAllTraceLinks() { MutableSet> traceLinks = Sets.mutable.empty(); - for (var modelId : getModelIds()) { - if (getModelState(modelId).getMetamodel() == Metamodel.ARCHITECTURE) - traceLinks.addAll(getTraceLinksForModel(modelId).castToCollection()); + for (var modelId : this.getModelIds()) { + if (this.getModelState(modelId).getMetamodel() == Metamodel.ARCHITECTURE) { + traceLinks.addAll(this.getTraceLinksForModel(modelId).castToCollection()); + } } return traceLinks.toImmutableList(); } @@ -108,7 +109,8 @@ public ImmutableList> getAllTraceL * @return Trace links as Strings */ public List getAllTraceLinksAsBeautifiedStrings() { - return getAllTraceLinks().toSortedList(Comparator.comparingInt(tl -> tl.getFirstEndpoint().getSentence().getSentenceNumber())) + return this.getAllTraceLinks() + .toSortedList(Comparator.comparingInt(tl -> tl.getFirstEndpoint().getSentence().getSentenceNumber())) .collect(ArDoCoResult::formatTraceLinksHumanReadable); } @@ -130,9 +132,10 @@ private static String formatTraceLinksHumanReadable(TraceLink> getSamCodeTraceLinks() { - var samCodeTraceabilityState = getCodeTraceabilityState(); - if (samCodeTraceabilityState != null) + var samCodeTraceabilityState = this.getCodeTraceabilityState(); + if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSamCodeTraceLinks().toList(); + } return List.of(); } @@ -142,9 +145,10 @@ public List> getSamCodeTraceL * @return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. */ public List> getSadCodeTraceLinks() { - var samCodeTraceabilityState = getCodeTraceabilityState(); - if (samCodeTraceabilityState != null) + var samCodeTraceabilityState = this.getCodeTraceabilityState(); + if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSadCodeTraceLinks().toList(); + } return List.of(); } @@ -154,8 +158,8 @@ public List> getSadCodeTraceLinks * @param modelId the ID of the model * @return Inconsistencies for the model */ - public ImmutableList getAllInconsistenciesForModel(String modelId) { - InconsistencyState inconsistencyState = getInconsistencyState(modelId); + public ImmutableList getAllInconsistenciesForModel(Metamodel modelId) { + InconsistencyState inconsistencyState = this.getInconsistencyState(modelId); if (inconsistencyState != null) { return inconsistencyState.getInconsistencies(); } @@ -170,8 +174,8 @@ public ImmutableList getAllInconsistenciesForModel(String modelId * @param Type-parameter of the inconsistency * @return Inconsistencies for the model with the given type */ - public ImmutableList getInconsistenciesOfTypeForModel(String modelId, Class inconsistencyType) { - return getAllInconsistenciesForModel(modelId).select(i -> inconsistencyType.isAssignableFrom(i.getClass())).collect(inconsistencyType::cast); + public ImmutableList getInconsistenciesOfTypeForModel(Metamodel modelId, Class inconsistencyType) { + return this.getAllInconsistenciesForModel(modelId).select(i -> inconsistencyType.isAssignableFrom(i.getClass())).collect(inconsistencyType::cast); } /** @@ -181,8 +185,8 @@ public ImmutableList getInconsistenciesOfTypeForMod */ public ImmutableList getAllInconsistencies() { MutableList inconsistencies = Lists.mutable.empty(); - for (var model : getModelIds()) { - inconsistencies.addAll(getAllInconsistenciesForModel(model).castToCollection()); + for (var model : this.getModelIds()) { + inconsistencies.addAll(this.getAllInconsistenciesForModel(model).castToCollection()); } return inconsistencies.toImmutable(); } @@ -193,7 +197,7 @@ public ImmutableList getAllInconsistencies() { * @return all found TextInconsistencies */ public ImmutableList getAllTextInconsistencies() { - var inconsistencies = getAllInconsistencies(); + var inconsistencies = this.getAllInconsistencies(); return inconsistencies.select(i -> TextInconsistency.class.isAssignableFrom(i.getClass())).collect(TextInconsistency.class::cast); } @@ -203,7 +207,7 @@ public ImmutableList getAllTextInconsistencies() { * @return all found ModelInconsistencies */ public ImmutableList getAllModelInconsistencies() { - var inconsistencies = getAllInconsistencies(); + var inconsistencies = this.getAllInconsistencies(); return inconsistencies.select(i -> ModelInconsistency.class.isAssignableFrom(i.getClass())).collect(ModelInconsistency.class::cast); } @@ -215,14 +219,14 @@ public ImmutableList getAllModelInconsistencies() { public ImmutableList getInconsistentSentences() { Map incSentenceMap = new LinkedHashMap<>(); - var inconsistencies = getAllTextInconsistencies(); + var inconsistencies = this.getAllTextInconsistencies(); for (var inconsistency : inconsistencies) { int sentenceNo = inconsistency.getSentenceNumber(); var incSentence = incSentenceMap.get(sentenceNo); if (incSentence != null) { incSentence.addInconsistency(inconsistency); } else { - var sentence = getSentence(sentenceNo); + var sentence = this.getSentence(sentenceNo); incSentence = new InconsistentSentence(sentence, inconsistency); incSentenceMap.put(sentenceNo, incSentence); } @@ -239,7 +243,7 @@ public ImmutableList getInconsistentSentences() { * @return Sentence with the given number */ public Sentence getSentence(int sentenceNo) { - return getText().getSentences().detect(s -> s.getSentenceNumberForOutput() == sentenceNo); + return this.getText().getSentences().detect(s -> s.getSentenceNumberForOutput() == sentenceNo); } /** @@ -248,13 +252,13 @@ public Sentence getSentence(int sentenceNo) { * @param modelId the ID of the model * @return the connection state or null, if there is no {@link ConnectionState} for the given model ID */ - public ConnectionState getConnectionState(String modelId) { - if (DataRepositoryHelper.hasConnectionStates(dataRepository)) { - var connectionStates = DataRepositoryHelper.getConnectionStates(dataRepository); - var modelState = getModelState(modelId); + public ConnectionState getConnectionState(Metamodel modelId) { + if (DataRepositoryHelper.hasConnectionStates(this.dataRepository)) { + var connectionStates = DataRepositoryHelper.getConnectionStates(this.dataRepository); + var modelState = this.getModelState(modelId); return connectionStates.getConnectionState(modelState.getMetamodel()); } - logger.warn("No ConnectionState found."); + ArDoCoResult.logger.warn("No ConnectionState found."); return null; } @@ -264,13 +268,13 @@ public ConnectionState getConnectionState(String modelId) { * @param modelId the ID of the model * @return the inconsistency state or null, if there is no {@link InconsistencyState} for the given model ID */ - public InconsistencyState getInconsistencyState(String modelId) { - if (DataRepositoryHelper.hasInconsistencyStates(dataRepository)) { - var inconsistencyStates = DataRepositoryHelper.getInconsistencyStates(dataRepository); - var modelState = getModelState(modelId); + public InconsistencyState getInconsistencyState(Metamodel modelId) { + if (DataRepositoryHelper.hasInconsistencyStates(this.dataRepository)) { + var inconsistencyStates = DataRepositoryHelper.getInconsistencyStates(this.dataRepository); + var modelState = this.getModelState(modelId); return inconsistencyStates.getInconsistencyState(modelState.getMetamodel()); } - logger.warn("No InconsistencyState found."); + ArDoCoResult.logger.warn("No InconsistencyState found."); return null; } @@ -280,10 +284,10 @@ public InconsistencyState getInconsistencyState(String modelId) { * @return the {@link CodeTraceabilityState} state or null, if there is no {@link CodeTraceabilityState} for the given model ID */ public CodeTraceabilityState getCodeTraceabilityState() { - if (DataRepositoryHelper.hasCodeTraceabilityState(dataRepository)) { - return DataRepositoryHelper.getCodeTraceabilityState(dataRepository); + if (DataRepositoryHelper.hasCodeTraceabilityState(this.dataRepository)) { + return DataRepositoryHelper.getCodeTraceabilityState(this.dataRepository); } - logger.warn("No SamCodeTraceabilityState found."); + ArDoCoResult.logger.warn("No SamCodeTraceabilityState found."); return null; } @@ -293,7 +297,7 @@ public CodeTraceabilityState getCodeTraceabilityState() { * @return the ModelStates */ private ModelStates getModelStates() { - return DataRepositoryHelper.getModelStatesData(dataRepository); + return DataRepositoryHelper.getModelStatesData(this.dataRepository); } /** @@ -301,8 +305,8 @@ private ModelStates getModelStates() { * * @return list of all model IDs */ - public List getModelIds() { - ModelStates modelStates = getModelStates(); + public List getModelIds() { + ModelStates modelStates = this.getModelStates(); return Lists.mutable.ofAll(modelStates.modelIds()); } @@ -312,8 +316,8 @@ public List getModelIds() { * @param modelId the ID of the model * @return the LegacyModelExtractionState */ - public LegacyModelExtractionState getModelState(String modelId) { - ModelStates modelStates = getModelStates(); + public LegacyModelExtractionState getModelState(Metamodel modelId) { + ModelStates modelStates = this.getModelStates(); return modelStates.getModelExtractionState(modelId); } @@ -323,7 +327,7 @@ public LegacyModelExtractionState getModelState(String modelId) { * @return the TextState */ public TextState getTextState() { - return DataRepositoryHelper.getTextState(dataRepository); + return DataRepositoryHelper.getTextState(this.dataRepository); } /** @@ -333,16 +337,16 @@ public TextState getTextState() { * @return the recommendation state or null, if there is none */ public RecommendationState getRecommendationState(Metamodel metamodel) { - if (DataRepositoryHelper.hasRecommendationStates(dataRepository)) { - var recommendationStates = DataRepositoryHelper.getRecommendationStates(dataRepository); + if (DataRepositoryHelper.hasRecommendationStates(this.dataRepository)) { + var recommendationStates = DataRepositoryHelper.getRecommendationStates(this.dataRepository); return recommendationStates.getRecommendationState(metamodel); } - logger.warn("No RecommendationState found"); + ArDoCoResult.logger.warn("No RecommendationState found"); return null; } public PreprocessingData getPreprocessingData() { - return dataRepository.getData(PreprocessingData.ID, PreprocessingData.class).orElseThrow(); + return this.dataRepository.getData(PreprocessingData.ID, PreprocessingData.class).orElseThrow(); } /** @@ -351,7 +355,7 @@ public PreprocessingData getPreprocessingData() { * @return the Text */ public Text getText() { - var preprocessingData = getPreprocessingData(); + var preprocessingData = this.getPreprocessingData(); return preprocessingData.getText(); } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 067310ef2..8464e4f94 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -33,15 +33,15 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionState; +import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.Inconsistency; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; From 6c9a186e4047c8afe0ae8607500f6e557e9f7b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:09:39 +0100 Subject: [PATCH 003/115] Remove endpoint tuple --- .../api/connectiongenerator/InstanceLink.java | 5 +- .../api/models/tracelinks/EndpointTuple.java | 75 ------------------- .../models/tracelinks/SamCodeTraceLink.java | 6 +- .../core/api/models/tracelinks/TraceLink.java | 7 +- .../tracelinks/TransitiveTraceLink.java | 8 +- .../mcse/ardoco/core/common/tuple/Pair.java | 17 +++++ .../core/common/util/TraceLinkUtilities.java | 14 ++-- 7 files changed, 37 insertions(+), 95 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/EndpointTuple.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java index 5ae5bc8e6..96ef072fe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; +import java.io.Serializable; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Objects; @@ -10,7 +11,6 @@ import org.eclipse.collections.api.list.MutableList; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @@ -24,7 +24,7 @@ */ @Deterministic @Internal -public class InstanceLink extends EndpointTuple { +public class InstanceLink implements Serializable { private static final long serialVersionUID = -8630933950725516269L; @@ -39,7 +39,6 @@ public class InstanceLink extends EndpointTuple implements Serializable { - private static final long serialVersionUID = -3671983559151147055L; - - private final E1 firstEndpoint; - private final E2 secondEndpoint; - - /** - * @param firstEndpoint the architecture endpoint of the endpoint tuple to be created - * @param secondEndpoint the code endpoint of the endpoint tuple to be created - */ - public EndpointTuple(E1 firstEndpoint, E2 secondEndpoint) { - this.firstEndpoint = firstEndpoint; - this.secondEndpoint = secondEndpoint; - } - - public Entity getOtherEndpoint(Entity endpoint) { - if (this.firstEndpoint.equals(endpoint)) { - return this.secondEndpoint; - } - if (this.secondEndpoint.equals(endpoint)) { - return this.firstEndpoint; - } - throw new IllegalArgumentException("Endpoint tuple must contain given endpoint"); - } - - public boolean hasEndpoint(Entity endpoint) { - return this.firstEndpoint.equals(endpoint) || this.secondEndpoint.equals(endpoint); - } - - public boolean hasEndpoint(EndpointTuple endpointTuple) { - return this.firstEndpoint.equals(endpointTuple.firstEndpoint) || this.secondEndpoint.equals(endpointTuple.secondEndpoint); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof EndpointTuple other)) { - return false; - } - return Objects.equals(this.firstEndpoint, other.firstEndpoint) && Objects.equals(this.secondEndpoint, other.secondEndpoint); - } - - @Override - public String toString() { - return "First Endpoint: " + this.firstEndpoint + ", Second Endpoint: " + this.secondEndpoint; - } - - public E1 firstEndpoint() { - return this.firstEndpoint; - } - - public E2 secondEndpoint() { - return this.secondEndpoint; - } - - @Override - public int hashCode() { - return Objects.hash(this.firstEndpoint, this.secondEndpoint); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java index 46ca1512a..3ca8d58fd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java @@ -29,7 +29,7 @@ public SamCodeTraceLink(ArchitectureItem architectureEndpoint, CodeCompilationUn @Override public int hashCode() { - return Objects.hash(this.getEndpointTuple()); + return Objects.hash(this.asPair()); } @Override @@ -40,11 +40,11 @@ public boolean equals(Object obj) { if (!(obj instanceof SamCodeTraceLink other)) { return false; } - return Objects.equals(this.getEndpointTuple(), other.getEndpointTuple()); + return Objects.equals(this.asPair(), other.asPair()); } @Override public String toString() { - return this.getEndpointTuple().toString(); + return this.asPair().toString(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java index 8a40b689f..00a54797d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java @@ -6,6 +6,7 @@ import java.util.Objects; import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; public abstract class TraceLink implements Serializable { @Serial @@ -24,8 +25,8 @@ protected TraceLink(E1 firstEndpoint, E2 secondEndpoint) { * * @return the endpoint tuple of this trace link */ - public EndpointTuple getEndpointTuple() { - return new EndpointTuple<>(this.endpoint1, this.endpoint2); + public Pair asPair() { + return new Pair<>(this.endpoint1, this.endpoint2); } public E1 getFirstEndpoint() { @@ -54,6 +55,6 @@ public boolean equals(Object obj) { @Override public String toString() { - return this.getEndpointTuple().toString(); + return this.asPair().toString(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java index 8f9b0affa..b49c15552 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java @@ -28,8 +28,8 @@ public static Optional firstTraceLink, TraceLink secondTraceLink) { - var secondEndpointOfFirstTl = firstTraceLink.getEndpointTuple().secondEndpoint().getId(); - var firstEndpointOfSecondTl = secondTraceLink.getEndpointTuple().firstEndpoint().getId(); + var secondEndpointOfFirstTl = firstTraceLink.asPair().second().getId(); + var firstEndpointOfSecondTl = secondTraceLink.asPair().first().getId(); return secondEndpointOfFirstTl.equals(firstEndpointOfSecondTl); } @@ -43,7 +43,7 @@ public TraceLink getSecondTraceLink() { @Override public int hashCode() { - return Objects.hash(this.getEndpointTuple()); + return Objects.hash(this.asPair()); } @Override @@ -56,6 +56,6 @@ public boolean equals(Object obj) { } return Objects.equals(this.getFirstTraceLink(), other.getFirstTraceLink()) && // Objects.equals(this.getSecondTraceLink(), other.getSecondTraceLink()) && // - Objects.equals(this.getEndpointTuple(), other.getEndpointTuple()); + Objects.equals(this.asPair(), other.asPair()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java index fa0cd840d..1e488ae3a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java @@ -3,5 +3,22 @@ import java.io.Serializable; +import com.github.jsonldjava.shaded.com.google.common.base.Objects; + public record Pair(T first, U second) implements Serializable { + + public boolean hasElement(Serializable element) { + return Objects.equal(this.first, element) || Objects.equal(this.second, element); + } + + public Serializable getOtherElement(Serializable element) { + if (Objects.equal(this.first, element)) { + return this.second; + } + if (Objects.equal(this.second, element)) { + return this.first; + } + throw new IllegalArgumentException("Unknown element: " + element); + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 269228c1f..546c8e576 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -7,9 +7,9 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; public class TraceLinkUtilities { @@ -32,9 +32,9 @@ public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableLis public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList> samCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : samCodeTraceLinks) { - EndpointTuple endpointTuple = traceLink.getEndpointTuple(); - var modelElement = endpointTuple.firstEndpoint(); - var codeElement = endpointTuple.secondEndpoint(); + Pair endpointTuple = traceLink.asPair(); + var modelElement = endpointTuple.first(); + var codeElement = endpointTuple.second(); String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); resultsMut.add(traceLinkString); } @@ -44,9 +44,9 @@ public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableLi public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : sadCodeTraceLinks) { - EndpointTuple endpointTuple = traceLink.getEndpointTuple(); - var codeElement = endpointTuple.secondEndpoint(); - String sentenceNumber = String.valueOf(endpointTuple.firstEndpoint().getSentence().getSentenceNumber() + 1); + Pair endpointTuple = traceLink.asPair(); + var codeElement = endpointTuple.second(); + String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1); String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString()); resultsMut.add(traceLinkString); } From fa8aaf7f78ef3a536ad3a470438ece4572adeaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:13:19 +0100 Subject: [PATCH 004/115] Move entity --- .../ardoco/core/api/codetraceability/CodeTraceabilityState.java | 2 +- .../ardoco/core/api/connectiongenerator/ConnectionState.java | 2 +- .../ardoco/core/api/{models => }/entity/ArchitectureEntity.java | 2 +- .../mcse/ardoco/core/api/{models => }/entity/CodeEntity.java | 2 +- .../kastel/mcse/ardoco/core/api/{models => }/entity/Entity.java | 2 +- .../mcse/ardoco/core/api/{models => }/entity/TextEntity.java | 2 +- .../kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java | 2 +- .../kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java | 2 +- .../core/api/models/arcotl/architecture/ArchitectureItem.java | 2 +- .../api/models/arcotl/architecture/legacy/ModelInstance.java | 2 +- .../mcse/ardoco/core/api/models/arcotl/code/CodeItem.java | 2 +- .../mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java | 2 +- .../ardoco/core/api/models/tracelinks/SamCodeTraceLink.java | 2 +- .../mcse/ardoco/core/api/models/tracelinks/TraceLink.java | 2 +- .../ardoco/core/api/models/tracelinks/TransitiveTraceLink.java | 2 +- .../core/api/recommendationgenerator/RecommendedInstance.java | 2 +- .../kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java | 2 +- .../kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java | 2 +- .../kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java | 2 +- .../kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => }/entity/ArchitectureEntity.java (85%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => }/entity/CodeEntity.java (83%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => }/entity/Entity.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => }/entity/TextEntity.java (83%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java index 3064b0b5a..72e14f3bf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java @@ -5,8 +5,8 @@ import org.eclipse.collections.api.set.ImmutableSet; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java index 8214b53f6..c0f21f4ba 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java @@ -6,8 +6,8 @@ import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java similarity index 85% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 6241e1199..64a41667d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.entity; +package edu.kit.kastel.mcse.ardoco.core.api.entity; public abstract non-sealed class ArchitectureEntity extends Entity { private static final long serialVersionUID = 5118724938904048363L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java similarity index 83% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 736fe9f96..e59709870 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.entity; +package edu.kit.kastel.mcse.ardoco.core.api.entity; public non-sealed class CodeEntity extends Entity { private static final long serialVersionUID = 5520572653996476974L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index d13194795..8c96c59a3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.entity; +package edu.kit.kastel.mcse.ardoco.core.api.entity; import java.io.Serializable; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java similarity index 83% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java index 0c93cf5c9..588af0096 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/entity/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.entity; +package edu.kit.kastel.mcse.ardoco.core.api.entity; public non-sealed class TextEntity extends Entity { private static final long serialVersionUID = 7693834560590279832L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 2324b0501..f30432f3a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -11,11 +11,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; /** * A code model that is a CMTL instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 52ec6a926..f36666a3b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -3,7 +3,7 @@ import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; public abstract sealed class Model permits ArchitectureModel, CodeModel { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 206bd83f8..737fb686b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; /** * An architecture item of an architecture model. A possible candidate for the diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java index 486720922..7c8ad113b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java @@ -3,7 +3,7 @@ import org.eclipse.collections.api.list.ImmutableList; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; /** * The Interface IModelInstance defines instances from models. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java index e796bf91d..680cc60bd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; /** * A code item of a code model. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java index 7e91f16db..844a2ab6c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java @@ -4,8 +4,8 @@ import java.util.Objects; import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java index 3ca8d58fd..83495f13b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java @@ -3,9 +3,9 @@ import java.util.Objects; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; /** * A trace link between exactly one architecture endpoint and exactly one code diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java index 00a54797d..90a58c6ef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java @@ -5,7 +5,7 @@ import java.io.Serializable; import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; public abstract class TraceLink implements Serializable { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java index b49c15552..8a4d50b40 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java @@ -4,7 +4,7 @@ import java.util.Objects; import java.util.Optional; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; public final class TransitiveTraceLink extends TraceLink { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java index 5c7fb5158..f4a7b05b0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java @@ -4,7 +4,7 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java index d756ab0b6..4e619d0a6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java @@ -3,7 +3,7 @@ import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; public final class SentenceEntity extends TextEntity { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 546c8e576..cb4509ba8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -5,8 +5,8 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index be54548a4..48b821436 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -19,6 +19,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionState; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.Inconsistency; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; @@ -29,7 +30,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 8464e4f94..306f11bc4 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -34,6 +34,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.Inconsistency; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; @@ -41,7 +42,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; From e4780a5f7958505f463033bd590dd397bcae4dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:15:14 +0100 Subject: [PATCH 005/115] Formatter --- formatter.xml | 784 +++++++++--------- .../ardoco/core/api/models/ModelStates.java | 5 +- 2 files changed, 406 insertions(+), 383 deletions(-) diff --git a/formatter.xml b/formatter.xml index 93d76cb55..adadf4146 100644 --- a/formatter.xml +++ b/formatter.xml @@ -1,380 +1,404 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index a2e5cc90f..ebc9835c4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -25,7 +25,6 @@ public class ModelStates implements PipelineStepData { * Constructor to create a {@link ModelStates} object that holds all {@link LegacyModelExtractionState}s */ public ModelStates() { - super(); } /** @@ -47,8 +46,8 @@ public LegacyModelExtractionState getModelExtractionState(Metamodel id) { } var legacyModel = switch (model) { - case ArchitectureModel am -> new LegacyModelExtractionStateByArCoTL(am); - case CodeModel cm -> new LegacyModelExtractionStateByArCoTL(cm); + case ArchitectureModel am -> new LegacyModelExtractionStateByArCoTL(am); + case CodeModel cm -> new LegacyModelExtractionStateByArCoTL(cm); }; this.legacyModels.put(id, legacyModel); From a6d89a64688eba26e92b2ac75846bbd332544bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:18:50 +0100 Subject: [PATCH 006/115] Stages Pakage --- .../CodeTraceabilityState.java | 10 +++---- .../connectiongenerator/ConnectionState.java | 8 +++--- .../connectiongenerator/ConnectionStates.java | 2 +- .../connectiongenerator/InstanceLink.java | 6 ++--- .../inconsistency/Inconsistency.java | 2 +- .../inconsistency/InconsistencyState.java | 4 +-- .../inconsistency/InconsistencyStates.java | 2 +- .../inconsistency/InconsistentSentence.java | 2 +- .../inconsistency/ModelInconsistency.java | 2 +- .../inconsistency/TextInconsistency.java | 2 +- .../RecommendationState.java | 4 +-- .../RecommendationStateStrategy.java | 2 +- .../RecommendationStates.java | 2 +- .../RecommendedInstance.java | 4 +-- .../textextraction/MappingKind.java | 2 +- .../textextraction/NounMapping.java | 2 +- .../NounMappingChangeListener.java | 2 +- .../textextraction/PhraseAbbreviation.java | 2 +- .../textextraction/PhraseMapping.java | 2 +- .../PhraseMappingChangeListener.java | 2 +- .../{ => stage}/textextraction/TextState.java | 2 +- .../textextraction/TextStateStrategy.java | 2 +- .../textextraction/WordAbbreviation.java | 2 +- .../SadCodeTraceLink.java | 2 +- .../SadSamTraceLink.java | 4 +-- .../SamCodeTraceLink.java | 2 +- .../tracelinks => tracelink}/TraceLink.java | 2 +- .../TransitiveTraceLink.java | 2 +- .../core/common/util/CommonUtilities.java | 6 ++--- .../common/util/DataRepositoryHelper.java | 10 +++---- .../util/PhraseMappingAggregatorStrategy.java | 2 +- .../core/common/util/SimilarityUtils.java | 8 +++--- .../core/common/util/TraceLinkUtilities.java | 2 +- .../ardoco/core/api/output/ArDoCoResult.java | 26 +++++++++---------- .../ardoco/core/common/util/FilePrinter.java | 24 ++++++++--------- 35 files changed, 80 insertions(+), 80 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/codetraceability/CodeTraceabilityState.java (86%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/connectiongenerator/ConnectionState.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/connectiongenerator/ConnectionStates.java (81%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/connectiongenerator/InstanceLink.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/Inconsistency.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/InconsistencyState.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/InconsistencyStates.java (83%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/InconsistentSentence.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/ModelInconsistency.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/inconsistency/TextInconsistency.java (84%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/recommendationgenerator/RecommendationState.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/recommendationgenerator/RecommendationStateStrategy.java (79%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/recommendationgenerator/RecommendationStates.java (81%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/recommendationgenerator/RecommendedInstance.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/MappingKind.java (86%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/NounMapping.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/NounMappingChangeListener.java (76%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/PhraseAbbreviation.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/PhraseMapping.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/PhraseMappingChangeListener.java (76%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/TextState.java (99%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/TextStateStrategy.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{ => stage}/textextraction/WordAbbreviation.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => tracelink}/SadCodeTraceLink.java (87%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => tracelink}/SadSamTraceLink.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => tracelink}/SamCodeTraceLink.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => tracelink}/TraceLink.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/tracelinks => tracelink}/TransitiveTraceLink.java (97%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java similarity index 86% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index 72e14f3bf..3243e82df 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.codetraceability; +package edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability; import java.util.Collection; @@ -7,11 +7,11 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SamCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index c0f21f4ba..40460d9f6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import org.eclipse.collections.api.factory.Sets; import org.eclipse.collections.api.list.ImmutableList; @@ -8,10 +8,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadSamTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java similarity index 81% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionStates.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java index 163acd7fc..3143e32a8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/ConnectionStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 96ef072fe..e9ae9d999 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import java.io.Serializable; import java.util.Arrays; @@ -11,8 +11,8 @@ import org.eclipse.collections.api.list.MutableList; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; import edu.kit.kastel.mcse.ardoco.core.common.Internal; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/Inconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/Inconsistency.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java index 27a5daea0..ab61b5765 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/Inconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java index f3a03d89f..900a8c88b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java @@ -1,12 +1,12 @@ /* Licensed under MIT 2021-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.util.List; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java similarity index 83% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyStates.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java index 2a5a29f05..62ffa4093 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistencyStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistentSentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistentSentence.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java index f8e38f76f..c85368a28 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/InconsistentSentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.util.List; import java.util.Locale; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/ModelInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/ModelInconsistency.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java index 4a2787c80..80bed118b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/ModelInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** * This interface extends the interface {@link Inconsistency} by stating that the inconsistency stems from a concrete model instance, i.e., a component. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/TextInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java similarity index 84% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/TextInconsistency.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java index c3e3427a2..77adad2ec 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/inconsistency/TextInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.inconsistency; +package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** * This interface extends the interface {@link Inconsistency} by stating that the inconsistency stems from a concrete textual diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java index 55f27209a..8fb2dbd3f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java @@ -1,9 +1,9 @@ /* Licensed under MIT 2021-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java similarity index 79% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java index 509476aea..d74478ea4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java similarity index 81% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStates.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java index fa872b746..c0e8f97e2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendationStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index f4a7b05b0..b87f37d6c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator; +package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/MappingKind.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java similarity index 86% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/MappingKind.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java index 477bed3c7..f63081865 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/MappingKind.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; /** * The mapping type of a mapping state defines whether the mapping is a name or a type. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMapping.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java index d660dc30e..1452a1583 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java similarity index 76% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMappingChangeListener.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java index 39bf9e661..db4a34535 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/NounMappingChangeListener.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseAbbreviation.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseAbbreviation.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java index 2b7e0328b..067d0733d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseAbbreviation.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.util.LinkedHashSet; import java.util.Set; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMapping.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java index f573e8368..f8aa655c7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java similarity index 76% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMappingChangeListener.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java index ec5510cc1..2e5ee8c9d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/PhraseMappingChangeListener.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index 928c10369..d6eb2d10a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextStateStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index b6b85ddf7..668cae976 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import static edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions.AVERAGE; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/WordAbbreviation.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/WordAbbreviation.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java index 6edcbc8a9..d1bd1ea53 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/textextraction/WordAbbreviation.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.textextraction; +package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.util.LinkedHashSet; import java.util.Set; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java similarity index 87% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java index b282d7076..1359745f6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java index 844a2ab6c..8b835d12a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SadSamTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.InstanceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java index 83495f13b..945f5f7c0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java index 90a58c6ef..be9120a57 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.io.Serial; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java index 8a4d50b40..c6d5d4ef7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/tracelinks/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks; +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.Objects; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 7b9d87011..a0b308f2b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -23,11 +23,11 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.text.DependencyTag; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index be8ca61c3..382d73235 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -10,13 +10,13 @@ import edu.kit.kastel.mcse.ardoco.core.api.InputTextData; import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; -import edu.kit.kastel.mcse.ardoco.core.api.codetraceability.CodeTraceabilityState; -import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionStates; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyStates; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationStates; +import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionStates; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyStates; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationStates; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.data.DeepCopy; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java index 87e0955aa..4f2fd412c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java @@ -6,7 +6,7 @@ import java.util.function.ToDoubleBiFunction; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.PhraseMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.PhraseMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @Deterministic diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java index e5b7b06c6..797166686 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java @@ -14,12 +14,12 @@ import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.PhraseMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.PhraseType; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.PhraseMapping; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimUtils; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index cb4509ba8..d4b560feb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -7,8 +7,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; public class TraceLinkUtilities { diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 48b821436..da54073d5 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -17,28 +17,28 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; -import edu.kit.kastel.mcse.ardoco.core.api.codetraceability.CodeTraceabilityState; -import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.Inconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.TextInconsistency; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SadSamTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.SamCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TransitiveTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistentSentence; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.ModelInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.TextInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.TextState; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadSamTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SamCodeTraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 306f11bc4..0c3e0294e 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -32,26 +32,26 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.ConnectionState; -import edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator.InstanceLink; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.Inconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistencyState; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.InconsistentSentence; -import edu.kit.kastel.mcse.ardoco.core.api.inconsistency.ModelInconsistency; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendationState; -import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.InstanceLink; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistentSentence; +import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.ModelInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.MappingKind; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.MappingKind; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping; -import edu.kit.kastel.mcse.ardoco.core.api.textextraction.TextState; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** From 59a6567780a65bb894c704b0bd958727131785b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:31:30 +0100 Subject: [PATCH 007/115] Remove abbreviations & Cache --- framework/common/pom.xml | 15 - .../textextraction/PhraseAbbreviation.java | 54 --- .../api/stage/textextraction/TextState.java | 88 +--- .../textextraction/TextStateStrategy.java | 21 - .../textextraction/WordAbbreviation.java | 50 --- .../mcse/ardoco/core/common/tuple/Pair.java | 9 +- .../AbbreviationDisambiguationHelper.java | 418 ------------------ .../core/common/util/CacheException.java | 16 - .../common/util/CommonTextToolsConfig.java | 5 - .../common/util/DataRepositoryHelper.java | 3 - .../core/common/util/DbPediaHelper.java | 216 --------- .../core/common/util/FileBasedCache.java | 202 --------- .../util/SerializableFileBasedCache.java | 88 ---- .../common/util/wordsim/WordSimUtils.java | 51 +-- .../configuration/AbstractConfigurable.java | 31 +- .../mcse/ardoco/core/data/AbstractState.java | 2 + .../mcse/ardoco/core/data/Confidence.java | 30 +- .../mcse/ardoco/core/data/DataRepository.java | 14 +- .../mcse/ardoco/core/data/DeepCopy.java | 15 - .../configs/CommonTextToolsConfig.properties | 1 - .../AbbreviationDisambiguationHelperTest.java | 95 ---- .../core/common/util/DbPediaHelperTest.java | 35 -- 22 files changed, 68 insertions(+), 1391 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelper.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CacheException.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelper.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FileBasedCache.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SerializableFileBasedCache.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DeepCopy.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelperTest.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelperTest.java diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 83e402fb8..eee4eed97 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -40,16 +40,6 @@ org.apache.commons commons-text - - org.apache.jena - jena-arq - 4.10.0 - - - org.apache.jena - jena-core - 4.10.0 - org.apache.opennlp opennlp-tools @@ -72,11 +62,6 @@ jgrapht-core ${jgrapht.version} - - org.jsoup - jsoup - 1.17.2 - org.xerial sqlite-jdbc diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java deleted file mode 100644 index 067d0733d..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseAbbreviation.java +++ /dev/null @@ -1,54 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; - -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import edu.kit.kastel.mcse.ardoco.core.api.Disambiguation; -import edu.kit.kastel.mcse.ardoco.core.api.text.Phrase; -import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; - -/** - * An abbreviation with meanings that are phrases. For example, "ArDoCo" is an abbreviation of the phrase "Architecture Documentation Consistency". - */ -@Deterministic -public class PhraseAbbreviation extends Disambiguation { - private final LinkedHashSet phrases; - - public PhraseAbbreviation(String abbreviation, Set phrases) { - super(abbreviation, new TreeSet<>(phrases.stream() - .map(phrase -> phrase.getContainedWords().stream().map(Word::getText).collect(Collectors.joining(" "))) - .toList())); - this.phrases = new LinkedHashSet<>(phrases); - } - - /** - * Adds a phrase as meaning to the abbreviation - * - * @param phrase the phrase - */ - public void addPhrase(Phrase phrase) { - phrases.add(phrase); - } - - /** - * {@return the meanings, which are phrases} - */ - public SortedSet getPhrases() { - return new TreeSet<>(phrases); - } - - @Override - public boolean equals(Object obj) { - return super.equals(obj); - } - - @Override - public int hashCode() { - return super.hashCode(); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index d6eb2d10a..e2d705c6f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -1,10 +1,7 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; -import java.util.Optional; - import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.factory.SortedSets; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; @@ -15,7 +12,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Phrase; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; -import edu.kit.kastel.mcse.ardoco.core.common.util.AbbreviationDisambiguationHelper; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; @@ -42,7 +38,7 @@ public interface TextState extends IConfigurable, PipelineStepData { * @param probability probability to be a name mapping */ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability) { - return getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, Lists.immutable.with(word.getText())); + return this.getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, Lists.immutable.with(word.getText())); } /** @@ -56,7 +52,7 @@ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claiman * @param surfaceForms list of the appearances of the mapping */ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability, ImmutableList surfaceForms) { - return getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, surfaceForms); + return this.getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, surfaceForms); } /** @@ -74,7 +70,7 @@ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claiman */ default NounMapping addNounMapping(ImmutableSortedSet words, MappingKind kind, Claimant claimant, double probability, ImmutableList referenceWords, ImmutableList surfaceForms, String reference) { - return getTextStateStrategy().addNounMapping(words, kind, claimant, probability, referenceWords, surfaceForms, reference); + return this.getTextStateStrategy().addNounMapping(words, kind, claimant, probability, referenceWords, surfaceForms, reference); } /** @@ -90,7 +86,7 @@ default NounMapping addNounMapping(ImmutableSortedSet words, MappingKind k */ default NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSortedMap distribution, ImmutableList referenceWords, ImmutableList surfaceForms, String reference) { - return getTextStateStrategy().addNounMapping(words, distribution, referenceWords, surfaceForms, reference); + return this.getTextStateStrategy().addNounMapping(words, distribution, referenceWords, surfaceForms, reference); } /** @@ -137,7 +133,7 @@ default NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSort * @param phrase the phrase */ default ImmutableList getPhraseMappings(Phrase phrase) { - return Lists.immutable.fromStream(getPhraseMappings().stream().filter(pm -> pm.getPhrases().contains(phrase))); + return Lists.immutable.fromStream(this.getPhraseMappings().stream().filter(pm -> pm.getPhrases().contains(phrase))); } ImmutableList getNounMappingsOfKind(MappingKind mappingKind); @@ -166,78 +162,4 @@ void mergePhraseMappingsAndNounMappings(PhraseMapping phraseMapping, PhraseMappi boolean isWordContainedByMappingKind(Word word, MappingKind kind); ImmutableList getNounMappingsWithSimilarReference(String reference); - - /** - * Adds a {@link WordAbbreviation} for the abbreviation with the specified word meaning to the state using the state's {@link TextStateStrategy}. - * - * @param abbreviation the abbreviation - * @param word the meaning - * @return the resulting word abbreviation in the state - */ - default WordAbbreviation addWordAbbreviation(String abbreviation, Word word) { - logger.debug("Added word abbreviation for {} with meaning {}", abbreviation, word.getText()); - var wordAbbreviation = getTextStateStrategy().addOrExtendWordAbbreviation(abbreviation, word); - AbbreviationDisambiguationHelper.addTransient(wordAbbreviation); - return wordAbbreviation; - } - - /** - * Adds a {@link PhraseAbbreviation} for the abbreviation with the specified phrase meaning to the state using the state's {@link TextStateStrategy}. - * - * @param abbreviation the abbrevation - * @param phrase the meaning - * @return the resulting phrase abbreviation in the state - */ - default PhraseAbbreviation addPhraseAbbreviation(String abbreviation, Phrase phrase) { - logger.debug("Added phrase abbreviation for {} with meaning {}", abbreviation, phrase.getText()); - var phraseAbbreviation = getTextStateStrategy().addOrExtendPhraseAbbreviation(abbreviation, phrase); - AbbreviationDisambiguationHelper.addTransient(phraseAbbreviation); - return phraseAbbreviation; - } - - /** - * {@return all word abbreviations from the state} - */ - ImmutableSortedSet getWordAbbreviations(); - - /** - * {@return all word abbreviations from the state that have the specified meaning} - * - * @param word the meaning to search for - */ - default ImmutableSortedSet getWordAbbreviations(Word word) { - return SortedSets.immutable.ofAll(getWordAbbreviations().stream().filter(w -> w.getWords().contains(word)).toList()); - } - - /** - * {@return the optional word abbreviation from the state that has the specified abbreviation} - * - * @param abbreviation the abbreviation - */ - default Optional getWordAbbreviation(String abbreviation) { - return getWordAbbreviations().stream().filter(w -> w.getAbbreviation().equals(abbreviation)).findFirst(); - } - - /** - * {@return all phrase abbreviations from the state} - */ - ImmutableSortedSet getPhraseAbbreviations(); - - /** - * {@return all phrase abbreviations from the state that have the specified meaning} - * - * @param phrase the meaning to search for - */ - default ImmutableSortedSet getPhraseAbbreviations(Phrase phrase) { - return SortedSets.immutable.ofAll(getPhraseAbbreviations().stream().filter(p -> p.getPhrases().contains(phrase)).toList()); - } - - /** - * {@return the optional phrase abbreviation from the state that has the specified abbreviation} - * - * @param abbreviation the abbreviation - */ - default Optional getPhraseAbbreviation(String abbreviation) { - return getPhraseAbbreviations().stream().filter(p -> p.getAbbreviation().equals(abbreviation)).findFirst(); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index 668cae976..5ab95bc4c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -9,7 +9,6 @@ import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; -import edu.kit.kastel.mcse.ardoco.core.api.text.Phrase; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; @@ -120,25 +119,5 @@ default String calculateNounMappingReference(ImmutableList referenceWords) return refBuilder.toString(); } - /** - * Tries to add a word abbreviation to the state. If the abbreviation already exists, it is extended. - * - * @param abbreviation the abbreviation - * @param word the word - * @return the resulting {@link edu.kit.kastel.mcse.ardoco.core.api.Disambiguation} in the stage - */ - - WordAbbreviation addOrExtendWordAbbreviation(String abbreviation, Word word); - - /** - * Tries to add a phrase abbreviation to the state. If the abbreviation already exists, it is extended. - * - * @param abbreviation the abbreviation - * @param phrase the phrase - * @return the resulting {@link edu.kit.kastel.mcse.ardoco.core.api.Disambiguation} in the stage - */ - - PhraseAbbreviation addOrExtendPhraseAbbreviation(String abbreviation, Phrase phrase); - ImmutableList getNounMappingsWithSimilarReference(String reference); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java deleted file mode 100644 index d1bd1ea53..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/WordAbbreviation.java +++ /dev/null @@ -1,50 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; - -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; - -import edu.kit.kastel.mcse.ardoco.core.api.Disambiguation; -import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; - -/** - * An abbreviation with meanings that are words. For example, "DB" is an abbreviation of the word "Database". - */ -@Deterministic -public class WordAbbreviation extends Disambiguation { - private final LinkedHashSet words; - - public WordAbbreviation(String abbreviation, Set words) { - super(abbreviation, new TreeSet<>(words.stream().map(Word::getText).toList())); - this.words = new LinkedHashSet<>(words); - } - - /** - * Adds a word as meaning to the abbreviation - * - * @param word the word - */ - public void addWord(Word word) { - words.add(word); - } - - /** - * {@return the meanings, which are words} - */ - public SortedSet getWords() { - return new TreeSet<>(words); - } - - @Override - public boolean equals(Object obj) { - return super.equals(obj); - } - - @Override - public int hashCode() { - return super.hashCode(); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java index 1e488ae3a..59d7b05f5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java @@ -2,20 +2,19 @@ package edu.kit.kastel.mcse.ardoco.core.common.tuple; import java.io.Serializable; - -import com.github.jsonldjava.shaded.com.google.common.base.Objects; +import java.util.Objects; public record Pair(T first, U second) implements Serializable { public boolean hasElement(Serializable element) { - return Objects.equal(this.first, element) || Objects.equal(this.second, element); + return Objects.equals(this.first, element) || Objects.equals(this.second, element); } public Serializable getOtherElement(Serializable element) { - if (Objects.equal(this.first, element)) { + if (Objects.equals(this.first, element)) { return this.second; } - if (Objects.equal(this.second, element)) { + if (Objects.equals(this.second, element)) { return this.first; } throw new IllegalArgumentException("Unknown element: " + element); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelper.java deleted file mode 100644 index f69d4d96b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelper.java +++ /dev/null @@ -1,418 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import static edu.kit.kastel.mcse.ardoco.core.common.JsonHandling.createObjectMapper; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.*; -import java.util.regex.MatchResult; -import java.util.regex.Pattern; - -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.Disambiguation; - -/** - * Provides functions to identify and disambiguate abbreviations. Caches results divided into a persistent {@link FileBasedCache} and a transient cache that is - * deleted on program exit. Abbreviations and their meanings are encapsulated as {@link Disambiguation}. The {@link FileBasedCache} is implemented in JSON and - * the file is saved in the user data directory folder of ArDoCo. The helper can be used to disambiguate an abbreviation using online abbreviation directory - * lookups. Such disambiguations are saved in the persistent cache. The transient cache is populated by the stages. When comparing two words, it is generally - * advised to ambiguate both rather than disambiguating. - */ -public final class AbbreviationDisambiguationHelper extends FileBasedCache> { - /** - * Matches abbreviations with up to 1 lowercase letter between uppercase letters. Accounts for camelCase by lookahead, e.g. UserDBAdapter is matched as "DB" - * rather than "DBA". Matches abbreviations at any point in the word, including at the start and end. - */ - private static final Pattern abbreviationsPattern = Pattern.compile("([A-Z]+[a-z]?)+[A-Z](?=([A-Z][a-z])|\\b)"); - /* - (?:([A-Z]+[a-z]?)+(?(?<=[A-Z])\w|[A-Z]))(?=([A-Z][a-z])|\b) - potential improvement, can also match ArDoCo for example, assumes that two letters with first letter capital is an abbr. such as Id, Db.. - */ - - public static final int LIMIT = 2; - private static final Logger logger = LoggerFactory.getLogger(AbbreviationDisambiguationHelper.class); - private static final String ABBREVIATIONS_COM = "https://www.abbreviations.com/"; - private static final String ACRONYM_FINDER_COM = "https://www.acronymfinder.com/Information-Technology/"; - private static AbbreviationDisambiguationHelper instance; - private static SortedMap ambiguated = new TreeMap<>(); - private static final SortedMap local = new TreeMap<>(); - - /** - * {@return the singleton instance of this class} - */ - static synchronized AbbreviationDisambiguationHelper getInstance() { - if (instance == null) { - instance = new AbbreviationDisambiguationHelper(); - } - return instance; - } - - private AbbreviationDisambiguationHelper() { - super("abbreviations", ".json", "", true); - } - - /** - * Adds a disambiguation to the transient cache. If the abbreviation already exists, the disambiguations are merged instead. - * - * @param disambiguation the disambiguation - */ - public static void addTransient(Disambiguation disambiguation) { - local.merge(disambiguation.getAbbreviation(), disambiguation, Disambiguation::addMeanings); - ambiguated = new TreeMap<>(); - } - - /** - * Adds a disambiguation to the persistent cache. If the abbreviation already exists, the disambiguations are merged instead. - * - * @param disambiguation the disambiguation - */ - private static void addPersistent(Disambiguation disambiguation) { - //Specifically check. We do not want to mess up our files. - Objects.requireNonNull(disambiguation); - Objects.requireNonNull(disambiguation.getAbbreviation()); - Objects.requireNonNull(disambiguation.getMeanings()); - if (disambiguation.getAbbreviation().isBlank() || disambiguation.getMeanings().isEmpty() || disambiguation.getMeanings() - .stream() - .anyMatch(String::isBlank)) - return; - var disambiguations = getPersistent(); - disambiguations.merge(disambiguation.getAbbreviation(), disambiguation, Disambiguation::addMeanings); - try (var fbCache = getInstance()) { - fbCache.cache(disambiguations); - } - ambiguated = new TreeMap<>(); - } - - /** - * Tries to disambiguate the provided abbreviation and returns the potentially empty set of meanings - * - * @param abbreviation the abbreviation - * @return a set of meanings - */ - public static SortedSet disambiguate(String abbreviation) { - //Specifically check. We do not want to mess up our files. - Objects.requireNonNull(abbreviation); - if (abbreviation.isBlank()) - throw new IllegalArgumentException(); - - var fromTransientCache = getAll().getOrDefault(abbreviation, null); - if (fromTransientCache != null) - return fromTransientCache.getMeanings(); - - var fromPersistentCache = getPersistent().getOrDefault(abbreviation, null); - if (fromPersistentCache != null) - return fromPersistentCache.getMeanings(); - - var fromCrawl = crawl(abbreviation); - addPersistent(fromCrawl); - - return fromCrawl.getMeanings(); - } - - /** - * Replaces all meanings with their known abbreviation in a single string. The result is cached. - * - * @param text a text containing an arbitrary amount of meanings (can be zero) - * @param ignoreCase whether to ignore the casing when searching for a meaning inside the text - * @return a single string where all meanings have been replaced with known abbreviations - */ - public static String ambiguateAll(String text, boolean ignoreCase) { - return ambiguated.computeIfAbsent(text, key -> replaceAllMeanings(key, ignoreCase)); - } - - /** - * Replaces all meanings with their known abbreviation in a single string. For example, "Personal Computer Database" -> "PC DB" - * - * @param text a text containing an arbitrary amount of meanings (can be zero) - * @param ignoreCase whether to ignore the casing when searching for a meaning inside the text - * @return a single string where all meanings have been replaced with known abbreviations - */ - private static String replaceAllMeanings(String text, boolean ignoreCase) { - var replaced = text; - var disambiguations = getAll().values(); - for (var disambiguation : disambiguations) { - replaced = disambiguation.replaceMeaningWithAbbreviation(replaced, ignoreCase); - } - return replaced; - } - - private static SortedMap getPersistent() { - return getInstance().getOrRead(); - } - - /** - * {@return all disambiguations merged from both caches} - */ - public static SortedMap getAll() { - return new TreeMap<>(Disambiguation.merge(new TreeMap<>(local), new TreeMap<>(getPersistent()))); - } - - /** - * Crawls online abbreviation dictionaries for the abbreviation and combines their results. - * - * @param abbreviation the abbreviation - * @return a potentially empty set of meanings - */ - static Disambiguation crawl(String abbreviation) { - logger.info("Using crawler to disambiguate {}", abbreviation); - var meanings = crawlAcronymFinderCom(abbreviation); - meanings.addAll(crawlAbbreviationsCom(abbreviation)); - return new Disambiguation(abbreviation, meanings); - } - - /** - * Crawls abbreviations.com for the specified abbreviation. - * - * @param abbreviation the abbreviation - * @return a potentially empty set of meanings - */ - static SortedSet crawlAbbreviationsCom(String abbreviation) { - SortedSet meanings = new TreeSet<>(); - try { - Document document = Jsoup.connect(ABBREVIATIONS_COM + abbreviation).get(); - var elements = document.select("td > p.desc"); - meanings.addAll(elements.stream().limit(LIMIT).map(e -> removeAllBrackets(e.childNode(0).toString())).toList()); - logger.info("Crawler found {} -> {} on {}", abbreviation, meanings, ABBREVIATIONS_COM); - } catch (IOException e) { - logger.error(e.getCause().getMessage()); - } catch (IndexOutOfBoundsException e) { - logger.warn("Could not parse {} website document, did the layout change?", ABBREVIATIONS_COM); - } - return meanings; - } - - /** - * Crawls acronymfinder.com for the specified abbreviation. - * - * @param abbreviation the abbreviation - * @return a potentially empty set of meanings - */ - static SortedSet crawlAcronymFinderCom(String abbreviation) { - SortedSet meanings = new TreeSet<>(); - try { - Document document = Jsoup.connect(ACRONYM_FINDER_COM + abbreviation + ".html").get(); - var elements = document.select("td.result-list__body__meaning > a, td" + ".result-list__body__meaning"); - meanings.addAll(elements.stream().limit(LIMIT).map(Element::text).map(AbbreviationDisambiguationHelper::removeAllBrackets).toList()); - logger.info("Crawler found {} -> {} on {}", abbreviation, meanings, ACRONYM_FINDER_COM); - } catch (IOException e) { - logger.error(e.getCause().getMessage()); - } catch (IndexOutOfBoundsException e) { - logger.warn("Could not parse {} website document, did the layout change?", ACRONYM_FINDER_COM); - } - return meanings; - } - - @Override - protected SortedMap read() throws CacheException { - try { - logger.info("Reading abbreviations file"); - var read = toMap(createObjectMapper().readValue(getFile(), Disambiguation[].class)); - logger.info("Found {} cached abbreviation", read.size()); - return read; - } catch (IOException e) { - throw new CacheException(e); - } - } - - @Override - public SortedMap getDefault() { - return new TreeMap<>(); - } - - @Override - protected void write(SortedMap content) { - Collection values = content.values(); - try (PrintWriter out = new PrintWriter(getFile())) { - //Parse before writing to the file, so we don't mess up the entire file due to a parsing error - String json = createObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(values); - out.print(json); - logger.info("Saved abbreviations file"); - } catch (IOException e) { - logger.error(e.getCause().getMessage()); - } - } - - private static SortedMap toMap(Disambiguation[] abbreviations) { - var all = new TreeMap(); - for (var abbr : abbreviations) { - all.put(abbr.getAbbreviation(), abbr); - } - return all; - } - - /** - * Removes all brackets and the text between them, does not support nested brackets - * - * @param text the text - * @return the text without brackets - */ - private static String removeAllBrackets(String text) { - String prev = null; - String current = removeBracket(text); - while (!Objects.equals(prev, current)) { - prev = current; - current = removeBracket(current); - } - assert current != null; - return current.trim().replaceAll("\\s+", " "); - } - - /** - * Removes the first bracket and text between, does not support nested brackets - * - * @param text the text - * @return the text without the first bracket - */ - private static String removeBracket(String text) { - var innerMostOpen = text.indexOf("("); - var innerMostClose = text.indexOf(")"); - if (innerMostOpen == -1 || innerMostClose == -1 || innerMostOpen > innerMostClose) - return text; - - var start = text.substring(0, innerMostOpen); - var endBegin = innerMostClose + 1; - - if (endBegin > text.length()) - return start; - - var end = text.substring(endBegin); - return start + end; - } - - /** - * Uses the regex {@link #abbreviationsPattern} to find a set of possible abbreviations contained in the specified text. - * - * @param text the text - * @return a set of possible abbreviations - */ - public static SortedSet getAbbreviationCandidates(String text) { - var matcher = abbreviationsPattern.matcher(text); - return new TreeSet<>(matcher.results().map(MatchResult::group).toList()); - } - - /** - * {@return whether the initialism candidate is an initialism of the text} - * - * @param text the text - * @param initialismCandidate the initialism candidate - * @param initialismThreshold the percentage of characters in a word that need to be uppercase for a word to be considered an initialism candidate - */ - public static boolean isInitialismOf(String text, String initialismCandidate, double initialismThreshold) { - if (!couldBeAbbreviation(initialismCandidate, initialismThreshold)) - return false; - - //Check if the entire Initialism is contained within the single word - if (!text.contains(" ")) - return shareInitial(text, initialismCandidate) && containsAllInOrder(text, initialismCandidate); - - StringBuilder reg = new StringBuilder(); - var initialLcArray = initialismCandidate.toCharArray(); - for (var c : initialLcArray) { - reg.append(c).append("|"); - } - - var onlyInitialismLettersAndBlank = "\\[^(" + reg + "\\s)\\]"; - var split = text.split("\\s+"); - var reducedText = Arrays.stream(split).filter(s -> s.startsWith(onlyInitialismLettersAndBlank)).reduce("", (l, r) -> l + r); - - //The text contains words that are irrelevant to the supposed Initialism - if (reducedText.length() != split.length) - return false; - - return containsAllInOrder(reducedText, initialismCandidate); - } - - /** - * {@return whether the text could be an abbreviation} Compares the share of uppercase letters to the threshold. - * - * @param candidate the initialism candidate - * @param threshold the initialism threshold - */ - public static boolean couldBeAbbreviation(String candidate, double threshold) { - if (candidate.isEmpty()) - return false; - var upperCaseCharacters = 0; - var cArray = candidate.toCharArray(); - for (char c : cArray) { - if (Character.isUpperCase(c)) - upperCaseCharacters++; - } - return upperCaseCharacters >= threshold * candidate.length(); - } - - /** - * {@return whether the text contains all characters of the query in order} The characters do not have to be adjacent and can be separated by any amount of - * characters. - * - * @param text the text - * @param query the query - */ - public static boolean containsAllInOrder(String text, String query) { - return containsInOrder(text, query) == query.length(); - } - - /** - * {@return how many characters of the query are in order} The characters do not have to be adjacent and can be separated by any amount of characters. If a - * character is not in order, it is disregarded. - * - * @param text the text - * @param query the query - */ - public static long containsInOrder(String text, String query) { - return Math.round(maximumAbbreviationScore(text, query, 0, 0, 1, 0)); - } - - /** - * Calculates a score for how well the abbreviation matches the candidate meaning. A higher score indicates better. This function searches all character - * sequences in the meaning which match the abbreviation. Each character of the sequence is rewarded based on the provided parameters and their conditions. - * The maximum result of all such sequences is returned. For example, consider abbrev:"DB" and meaning:"Database". The sequence of characters which match - * the abbreviation are at index 0 and 4. Both characters are rewarded with anyMatch. Character 0 is additionally rewarded with initialMatch, because it is - * at a word boundary and with caseMatch, because its letter cases matches the abbreviation character. Thus, the sequence has a score of rewardInitialMatch - * + rewardCaseMatch + 2 * rewardAnyMatch. If another sequence with a higher score existed, its value would be returned instead. - * - * @param meaningCandidate the candidate meaning - * @param abbreviation the abbreviation - * @param rewardInitialMatch >= 0 - * @param rewardAnyMatch >= 0 - * @param rewardCaseMatch >= 0 - * @param textIndex start index, used for recursion, usually 0 at start - * @return the score >= 0 - */ - public static double maximumAbbreviationScore(String meaningCandidate, String abbreviation, double rewardInitialMatch, double rewardAnyMatch, - double rewardCaseMatch, int textIndex) { - if (abbreviation.isEmpty() || textIndex >= meaningCandidate.length()) - return 0; - var current = abbreviation.substring(0, 1); - var index = meaningCandidate.toLowerCase(Locale.ENGLISH).indexOf(current.toLowerCase(Locale.ENGLISH), textIndex); - if (index == -1) - return 0; - var score = maximumAbbreviationScore(meaningCandidate, abbreviation.substring(1), rewardInitialMatch, rewardAnyMatch, rewardCaseMatch, index + 1); - if (index == 0 || meaningCandidate.charAt(index - 1) == ' ') { - score += rewardInitialMatch; - } - if (meaningCandidate.substring(index, index + 1).equals(current)) { - score += rewardCaseMatch; - } - score += rewardAnyMatch; - return Math.max(score, maximumAbbreviationScore(meaningCandidate, abbreviation, rewardInitialMatch, rewardAnyMatch, rewardCaseMatch, index + 1)); - } - - /** - * Whether the two string share the same initial. - * - * @param a first string - * @param b second string - * @return true if yes, otherwise false - */ - public static boolean shareInitial(String a, String b) { - if (a == null || b == null || a.isEmpty() || b.isEmpty()) - return false; - return a.substring(0, 1).equals(b.substring(0, 1)); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CacheException.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CacheException.java deleted file mode 100644 index b23e81928..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CacheException.java +++ /dev/null @@ -1,16 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -/** - * Exception that can occur during read or write operations of a {@link FileBasedCache} - */ -public class CacheException extends Exception { - /** - * Constructor for cache exception - * - * @param cause the cause - */ - public CacheException(Throwable cause) { - super(cause); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java index 56f216923..cfd8b0944 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java @@ -23,11 +23,6 @@ private CommonTextToolsConfig() { */ public static final ImmutableList SEPARATORS_TO_SPLIT = CONFIG.getPropertyAsList("separators_ToSplit"); - /** - * Decides whether abbrevations should be considered during similarity calculations. - */ - public static final boolean CONSIDER_ABBREVIATIONS = CONFIG.isPropertyEnabled("considerAbbreviations"); - /** * Decides whether the levenshtein similarity measure should be used. */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index 382d73235..e11fd94da 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -18,7 +18,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; -import edu.kit.kastel.mcse.ardoco.core.data.DeepCopy; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; import edu.kit.kastel.mcse.ardoco.core.data.ProjectPipelineData; @@ -29,7 +28,6 @@ public final class DataRepositoryHelper { private DataRepositoryHelper() { - super(); } /** @@ -249,7 +247,6 @@ public static void putPreprocessingData(DataRepository dataRepository, Preproces * * @param object the object to copy */ - @DeepCopy public static T deepCopy(T object) { try { var byteArrayOutputStream = new ByteArrayOutputStream(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelper.java deleted file mode 100644 index 4cf26d826..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelper.java +++ /dev/null @@ -1,216 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import static edu.kit.kastel.mcse.ardoco.core.common.JsonHandling.createObjectMapper; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.List; - -import org.apache.commons.compress.utils.Lists; -import org.apache.jena.query.ParameterizedSparqlString; -import org.apache.jena.query.QueryExecution; -import org.apache.jena.query.ResultSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.type.TypeReference; - -/** - * This class provides lists of computer- and software-related terminology. It retrieves the terminology from the DBPedia ontology using SPARQL queries. The - * class caches the lists in a {@link FileBasedCache} in the user data directory folder of ArDoCo. - */ -public class DbPediaHelper extends FileBasedCache { - private static final Logger logger = LoggerFactory.getLogger(DbPediaHelper.class); - private static DbPediaHelper instance; - - /** - * {@return the singleton instance} - */ - static synchronized DbPediaHelper getInstance() { - if (instance == null) { - instance = new DbPediaHelper(); - } - return instance; - } - - private DbPediaHelper() { - super("dbpedia", ".json", "", true); - } - - /** - * SPARQL query to retrieve programming languages from the Yago programming languages and DBOntology programming languages category. - * - * @return a list of programming languages - */ - private List loadProgrammingLanguages() { - ParameterizedSparqlString qs = new ParameterizedSparqlString(""" - prefix rdf: - prefix rdfs: - PREFIX dbo: - PREFIX yago: - - SELECT ?label - WHERE { - { - ?pl dbo:abstract ?abstract . - ?pl rdfs:label ?label . - ?pl rdf:type yago:ProgrammingLanguage106898352 . - FILTER (LANG(?abstract) = 'en') . - FILTER (LANG(?label)='en') - } - UNION - { - ?pl dbo:abstract ?abstract . - ?pl rdfs:label ?label . - ?pl dbo:influenced ?influenced . - ?pl dbo:influencedBy ?influencedBy . - ?pl rdf:type dbo:ProgrammingLanguage . - FILTER (LANG(?abstract) = 'en') . - FILTER (LANG(?label)='en') - } - } - GROUP BY ?label"""); - - var languages = runQuery(qs); - logger.info("Retrieved {} programming languages from DBPedia", languages.size()); - return languages; - } - - /** - * SPARQL query to retrieve markup languages from the Yago markup languages category. - * - * @return a list of markup languages - */ - private List loadMarkupLanguages() { - ParameterizedSparqlString qs = new ParameterizedSparqlString(""" - prefix rdf: - prefix rdfs: - PREFIX dbo: - PREFIX yago: - - SELECT ?label - WHERE { - ?pl dbo:abstract ?abstract . - ?pl rdfs:label ?label . - ?pl rdf:type yago:MarkupLanguage106787835 . - FILTER (LANG(?abstract) = 'en') . - FILTER (LANG(?label)='en') - } - GROUP BY ?label"""); - - var languages = runQuery(qs); - logger.info("Retrieved {} markup languages from DBPedia", languages.size()); - return languages; - } - - /** - * SPARQL query to retrieve softwares from the DBOntology software category. - * - * @return a list of softwares - */ - private List loadSoftware() { - ParameterizedSparqlString qs = new ParameterizedSparqlString(""" - prefix rdf: - prefix rdfs: - PREFIX dbo: - PREFIX yago: - - SELECT ?label - WHERE { - ?p rdf:type dbo:Software . - ?p dbo:programmingLanguage ?pl . - ?pl dbo:abstract ?abstract . - ?pl rdfs:label ?label . - FILTER (LANG(?abstract) = 'en') . - FILTER (LANG(?label)='en') - } - GROUP BY ?label"""); - - var software = runQuery(qs); - logger.info("Retrieved {} software from DBPedia", software.size()); - return software; - } - - /** - * {@return all labels retrieved by the SPARQL query} - * - * @param query the parameterized query - */ - private List runQuery(ParameterizedSparqlString query) { - var list = List.of(); - ResultSet results; - try (QueryExecution exec = QueryExecution.service("http://dbpedia.org/sparql").query(query.asQuery()).build()) { - results = exec.execSelect(); - var asList = Lists.newArrayList(results); - list = asList.stream().map(l -> l.getLiteral("label").getLexicalForm().replaceAll("\\((.*?)\\)", "").trim()).sorted().toList(); - } - return list; - } - - @Override - protected void write(DbPediaData r) { - try (PrintWriter out = new PrintWriter(getFile())) { - //Parse before writing to the file, so we don't mess up the entire file due to a parsing error - String json = createObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(r); - out.print(json); - logger.info("Saved {} file", getIdentifier()); - } catch (IOException e) { - logger.error(e.getCause().getMessage()); - } - } - - @Override - protected DbPediaData getDefault() { - return new DbPediaData(loadProgrammingLanguages(), loadMarkupLanguages(), loadSoftware()); - } - - @Override - protected DbPediaData read() throws CacheException { - try { - logger.info("Reading {} file", getIdentifier()); - return createObjectMapper().readValue(getFile(), new TypeReference<>() { - }); - } catch (IOException e) { - logger.error("Error reading {} file", getIdentifier()); - throw new CacheException(e); - } - } - - /** - * Record used for caching - * - * @param programmingLanguages the list of programming languages - * @param markupLanguages the list of markup languages - * @param software the list of software - */ - protected record DbPediaData(List programmingLanguages, List markupLanguages, List software) { - } - - /** - * {@return whether a word is a programming language} - * - * @param word the word - */ - public static boolean isWordProgrammingLanguage(String word) { - return getInstance().getOrRead().programmingLanguages().stream().anyMatch(s -> s.replaceAll("\\s+", "").equalsIgnoreCase(word.replaceAll("\\s+", ""))); - } - - /** - * {@return whether a word is a markup language} - * - * @param word the word - */ - public static boolean isWordMarkupLanguage(String word) { - return getInstance().getOrRead().markupLanguages().stream().anyMatch(s -> s.replaceAll("\\s+", "").equalsIgnoreCase(word.replaceAll("\\s+", ""))); - } - - /** - * {@return whether a word is a software} - * - * @param word the word - */ - public static boolean isWordSoftware(String word) { - return getInstance().getOrRead().software().stream().anyMatch(s -> s.replaceAll("\\s+", "").equalsIgnoreCase(word.replaceAll("\\s+", ""))); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FileBasedCache.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FileBasedCache.java deleted file mode 100644 index 0631a3a25..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FileBasedCache.java +++ /dev/null @@ -1,202 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This abstract class provides the structure for a file-based cache. Only one instance should be created for each cache file. The cache files are saved in the - * user data directory folder of ArDoCo. - * - * @param the type of cached content - */ -public abstract class FileBasedCache implements AutoCloseable { - private static final Logger logger = LoggerFactory.getLogger(FileBasedCache.class); - private final String baseDir; - - private File file; - private final String identifier; - private final String fileExtension; - private final String subFolder; - private boolean flagWrite = false; - private T currentState = null; - private int originalStateHash; - - /** - * Writes the content to the file at {@link #getFile()} - * - * @param content the content - */ - protected abstract void write(T content); - - /** - * {@return the cached content} - */ - public T getOrRead() { - if (currentState == null) { - T fileState = null; - try { - fileState = read(); - } catch (CacheException e) { - try { - resetFile(); - fileState = read(); - } catch (CacheException ex) { - // If resetting doesn't solve the issue, fail entirely - throw new IllegalStateException(ex); - } - } - originalStateHash = Objects.hash(fileState); - currentState = fileState; - } - return currentState; - } - - /** - * Caches the content. This does not write it to the disk immediately. - * - * @param content the content - */ - public void cache(T content) { - currentState = content; - flagWrite = true; - } - - /** - * Constructor for the file-based cache - * - * @param identifier name of the cache file - * @param fileExtension extension of the cache file - * @param subFolder sub-folder in the user directory, must end with {@link File#separator} - * @param persistent whether the cache should be persistent - */ - protected FileBasedCache(String identifier, String fileExtension, String subFolder, boolean persistent) { - this.baseDir = persistent ? (System.getProperty("user.home") + "/.ardoco/cache") : loadTempDir(); - new File(baseDir).mkdirs(); - this.identifier = identifier; - this.fileExtension = fileExtension; - if (!subFolder.isEmpty() && !subFolder.endsWith(File.separator)) - throw new IllegalArgumentException(); - this.subFolder = subFolder; - } - - /** - * Reads the content of the file at {@link #getFile()} - * - * @throws CacheException thrown if an error occurs while reading - */ - protected abstract T read() throws CacheException; - - /** - * {@return the default content that is written if the file is reset using {@link #resetFile()}} - */ - protected abstract T getDefault(); - - /** - * {@return the name of the cache file} - */ - public String getIdentifier() { - return this.identifier; - } - - /** - * Resets the cache file to default content. - */ - public void resetFile() { - try { - deleteFile(); - getFile(); - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - - /** - * Deletes the file at {@link #getFileHandle()} - * - * @return whether the file was deleted successfully by the file system - */ - protected boolean deleteFile() { - try { - if (file == null) - file = getFileHandle(); - return Files.deleteIfExists(file.toPath()); - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - - /** - * {@return the file handle of the cache file} - * - * @throws IOException on a file system exception - */ - protected File getFileHandle() throws IOException { - - file = new File(baseDir + File.separator + subFolder + this.identifier + this.fileExtension); - if (file.getParentFile().mkdirs()) { - logger.info("Created directory {}", file.getParentFile().getCanonicalPath()); - } - return file; - } - - /** - * {@return the cache file} - * - * @throws IOException on a file system exception - */ - protected File getFile() throws IOException { - if (file != null && file.exists()) - return file; - - file = getFileHandle(); - - if (file.createNewFile()) { - logger.info("Created {} file {}", this.identifier, file.getCanonicalPath()); - T defaultContent = getDefault(); - write(defaultContent); - } - - return file; - } - - private static String loadTempDir() { - try { - Path tempDir = Files.createTempDirectory("ArDoCo"); - logger.info("Created temporary directory {}", tempDir); - addDeleteHook(tempDir); - return tempDir.toString(); - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - - private static void addDeleteHook(Path tempDir) { - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try { - Files.walk(tempDir).map(Path::toFile).forEach(File::delete); - } catch (IOException e) { - throw new IllegalStateException(e); - } - })); - } - - @Override - public void close() { - if (flagWrite) { - if (currentState == null) { - deleteFile(); - } else { - if (Objects.hash(currentState) != originalStateHash) { - write(currentState); - } - } - } - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SerializableFileBasedCache.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SerializableFileBasedCache.java deleted file mode 100644 index bfc826cda..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SerializableFileBasedCache.java +++ /dev/null @@ -1,88 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import java.io.*; -import java.lang.reflect.ParameterizedType; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.type.TypeReference; - -/** - * A {@link FileBasedCache} that is implemented using Java's default serialization. - * - * @param serializable content - */ -public class SerializableFileBasedCache extends FileBasedCache { - private static final Logger logger = LoggerFactory.getLogger(SerializableFileBasedCache.class); - - private final Class contentClass; - - /** - * Creates a new serializable file based cache that contains content of the given class and is saved in a file with the given identifier and sub-folder. - * - * @param contentClass the class of serializable content - * @param identifier the identifier of the cache - * @param subFolder the sub-folder of the cache - */ - public SerializableFileBasedCache(Class contentClass, String identifier, String subFolder) { - super(identifier, ".ser", subFolder + contentClass.getSimpleName() + File.separator, false); - this.contentClass = contentClass; - } - - public SerializableFileBasedCache(TypeReference typeReference, String identifier, String subFolder) { - super(identifier, ".ser", subFolder + sanitizeFileName(processTypeReference(typeReference).getSimpleName()) + File.separator, false); - this.contentClass = (Class) processTypeReference(typeReference); - } - - private static String sanitizeFileName(String name) { - var noForbiddenChars = name.replaceAll("[\\\\/:*?\"<>|]", ""); - return noForbiddenChars.replace('.', '-'); - } - - private static Class processTypeReference(TypeReference typeReference) { - var type = typeReference.getType(); - if (type instanceof ParameterizedType parameterizedType) { - type = parameterizedType.getRawType(); - } - if (type instanceof Class cls) { - return cls; - } else { - throw new IllegalArgumentException("TypeReference type could not be resolved to a class"); - } - } - - @Override - protected void write(T content) { - try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(getFile()))) { - out.writeObject(content); - logger.info("Saved {} file", getIdentifier()); - } catch (IOException e) { - logger.error("Error reading file", e); - } - } - - @Override - protected T read() throws CacheException { - try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(getFile()))) { - logger.info("Reading {} file", getIdentifier()); - var dObj = in.readObject(); - if (dObj == null || contentClass.isInstance(dObj)) { - return (T) dObj; - } - throw new ClassCastException(); - } catch (InvalidClassException | ClassNotFoundException | ClassCastException | EOFException e) { - logger.warn("SerialVersionUID might have changed, resetting {} file", getIdentifier()); - throw new CacheException(e); - } catch (IOException e) { - logger.error("Error reading {} file", getIdentifier()); - throw new CacheException(e); - } - } - - @Override - protected T getDefault() { - return null; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java index 38ded2e26..98594242b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java @@ -13,8 +13,6 @@ import org.sqlite.SQLiteOpenMode; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.common.util.AbbreviationDisambiguationHelper; -import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.equality.EqualityMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy.AverageStrategy; import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy.ComparisonStrategy; @@ -33,7 +31,6 @@ public class WordSimUtils implements Serializable { private ComparisonStrategy strategy = ComparisonStrategy.AT_LEAST_ONE; private SimilarityStrategy similarityStrategy = new AverageStrategy(); private UnicodeCharacterMatchFunctions characterMatch = UnicodeCharacterMatchFunctions.EQUAL; - private boolean considerAbbreviations = CommonTextToolsConfig.CONSIDER_ABBREVIATIONS; /** * Sets which measures should be used for similarity comparison. The specified collection of measures will be used for all subsequent comparisons. @@ -80,14 +77,6 @@ public UnicodeCharacterMatchFunctions getCharacterMatchFunction() { return this.characterMatch; } - public void setConsiderAbbreviations(boolean considerAbbreviations) { - this.considerAbbreviations = considerAbbreviations; - } - - public boolean getConsiderAbbreviations() { - return this.considerAbbreviations; - } - /** * Evaluates whether the words from the given {@link ComparisonContext} are similar using the specified comparison strategy. * @@ -99,25 +88,12 @@ public boolean areWordsSimilar(ComparisonContext ctx, ComparisonStrategy strateg Objects.requireNonNull(ctx); Objects.requireNonNull(strategy); - var firstTerm = ctx.firstTerm(); - var secondTerm = ctx.secondTerm(); - - if (getConsiderAbbreviations()) { - var ambiguatedFirstTerm = AbbreviationDisambiguationHelper.ambiguateAll(firstTerm, true); - var ambiguatedSecondTerm = AbbreviationDisambiguationHelper.ambiguateAll(secondTerm, true); - var different = !ambiguatedFirstTerm.equals(firstTerm) || !ambiguatedSecondTerm.equals(secondTerm); - - if (different && areWordsSimilar(new ComparisonContext(ambiguatedFirstTerm, ambiguatedSecondTerm, null, null, false, ctx.characterMatch()))) { - return true; - } - } - // Currently, we need the split test as it improves results by a lot. In the future, we should try to avoid its requirement - if (!splitLengthTest(ctx)) { + if (!this.splitLengthTest(ctx)) { return false; } - return strategy.areWordsSimilar(ctx, measures.toList()); + return strategy.areWordsSimilar(ctx, this.measures.toList()); } private boolean splitLengthTest(ComparisonContext ctx) { @@ -135,7 +111,7 @@ private boolean splitLengthTest(ComparisonContext ctx) { */ public boolean areWordsSimilar(ComparisonContext ctx) { Objects.requireNonNull(ctx); - return areWordsSimilar(ctx, strategy); + return this.areWordsSimilar(ctx, this.strategy); } /** @@ -147,7 +123,7 @@ public boolean areWordsSimilar(ComparisonContext ctx) { * @return Returns {@code true} if the default strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, String secondWord) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), this.strategy); } /** @@ -159,7 +135,7 @@ public boolean areWordsSimilar(String firstWord, String secondWord) { * @return Returns {@code true} if the given strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, String secondWord, ComparisonStrategy strategy) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); } /** @@ -171,7 +147,7 @@ public boolean areWordsSimilar(String firstWord, String secondWord, ComparisonSt * @return Returns {@code true} if the default strategy considers the words similar enough. */ public boolean areWordsSimilar(Word firstWord, Word secondWord) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), this.strategy); } /** @@ -183,7 +159,7 @@ public boolean areWordsSimilar(Word firstWord, Word secondWord) { * @return Returns {@code true} if the given strategy considers the words similar enough. */ public boolean areWordsSimilar(Word firstWord, Word secondWord, ComparisonStrategy strategy) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); } /** @@ -195,7 +171,7 @@ public boolean areWordsSimilar(Word firstWord, Word secondWord, ComparisonStrate * @return Returns {@code true} if the default strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, Word secondWord) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, characterMatch), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, this.characterMatch), this.strategy); } /** @@ -207,7 +183,7 @@ public boolean areWordsSimilar(String firstWord, Word secondWord) { * @return Returns {@code true} if the given strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, Word secondWord, ComparisonStrategy strategy) { - return areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, characterMatch), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, this.characterMatch), strategy); } /** @@ -221,12 +197,13 @@ public boolean areWordsSimilar(String firstWord, Word secondWord, ComparisonStra */ public double getSimilarity(String firstWord, String secondWord, SimilarityStrategy strategy, boolean ignoreCase) { var allMeasuresExceptDefault = this.measures.stream().filter(m -> !(m instanceof EqualityMeasure)).collect(Collectors.toCollection(ArrayList::new)); - if (allMeasuresExceptDefault.isEmpty()) + if (allMeasuresExceptDefault.isEmpty()) { allMeasuresExceptDefault.add(new EqualityMeasure()); + } return strategy.getSimilarity(new ComparisonContext(ignoreCase ? firstWord.toLowerCase() : firstWord, ignoreCase ? secondWord.toLowerCase() : - secondWord, null, null, false, characterMatch), allMeasuresExceptDefault); + secondWord, null, null, false, this.characterMatch), allMeasuresExceptDefault); } /** @@ -237,7 +214,7 @@ public double getSimilarity(String firstWord, String secondWord, SimilarityStrat * @return Returns similarity in range [0,1] */ public double getSimilarity(String firstWord, String secondWord) { - return getSimilarity(firstWord, secondWord, false); + return this.getSimilarity(firstWord, secondWord, false); } /** @@ -249,7 +226,7 @@ public double getSimilarity(String firstWord, String secondWord) { * @return Returns similarity in range [0,1] */ public double getSimilarity(String firstWord, String secondWord, boolean ignoreCase) { - return getSimilarity(firstWord, secondWord, similarityStrategy, ignoreCase); + return this.getSimilarity(firstWord, secondWord, this.similarityStrategy, ignoreCase); } public static SQLiteConfig getSqLiteConfig() { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index d37cca2d6..d77a1c2d7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -23,6 +23,8 @@ @Deterministic public abstract class AbstractConfigurable implements IConfigurable, Serializable { + private static final long serialVersionUID = 4781744504742817995L; + protected final transient Logger logger = LoggerFactory.getLogger(this.getClass()); public static final String CLASS_ATTRIBUTE_CONNECTOR = "::"; @@ -33,24 +35,25 @@ public abstract class AbstractConfigurable implements IConfigurable, Serializabl @Override public final void applyConfiguration(SortedMap additionalConfiguration) { - applyConfiguration(additionalConfiguration, this, this.getClass()); - delegateApplyConfigurationToInternalObjects(additionalConfiguration); + this.applyConfiguration(additionalConfiguration, this, this.getClass()); + this.delegateApplyConfigurationToInternalObjects(additionalConfiguration); this.lastAppliedConfiguration = new TreeMap<>(additionalConfiguration); } @Override public SortedMap getLastAppliedConfiguration() { - return Collections.unmodifiableSortedMap(lastAppliedConfiguration); + return Collections.unmodifiableSortedMap(this.lastAppliedConfiguration); } protected abstract void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration); private void applyConfiguration(SortedMap additionalConfiguration, AbstractConfigurable configurable, Class currentClassInHierarchy) { - if (currentClassInHierarchy == Object.class || currentClassInHierarchy == AbstractConfigurable.class) + if (currentClassInHierarchy == Object.class || currentClassInHierarchy == AbstractConfigurable.class) { return; + } if (currentClassInHierarchy.getAnnotation(NoConfiguration.class) != null) { - logger.debug("Skipping configuration for class {}", currentClassInHierarchy.getSimpleName()); + this.logger.debug("Skipping configuration for class {}", currentClassInHierarchy.getSimpleName()); return; } @@ -61,17 +64,17 @@ private void applyConfiguration(SortedMap additionalConfiguratio } String key = getKeyOfField(configurable, currentClassInHierarchy, field); if (additionalConfiguration.containsKey(key)) { - setValue(field, additionalConfiguration.get(key)); + this.setValue(field, additionalConfiguration.get(key)); } } - applyConfiguration(additionalConfiguration, configurable, currentClassInHierarchy.getSuperclass()); + this.applyConfiguration(additionalConfiguration, configurable, currentClassInHierarchy.getSuperclass()); } /** * Returns the key (for the configuration file) of a field. If the field is marked as ChildClassConfigurable, the key is based on the class of the * configurable object. Otherwise, the key is based on the class where the field is defined. - * + * * @param configurable the configurable object * @param currentClassInHierarchy the class where the field is defined * @param field the field @@ -92,15 +95,16 @@ public static String getKeyOfField(AbstractConfigurable configurable, Class c private void setValue(Field field, String value) { var clazz = field.getType(); - var parsedValue = parse(field, clazz, value); - if (parsedValue == null) + var parsedValue = this.parse(field, clazz, value); + if (parsedValue == null) { return; + } try { field.setAccessible(true); field.set(this, parsedValue); } catch (Exception e) { - logger.error(e.getMessage(), e); + this.logger.error(e.getMessage(), e); } } @@ -122,8 +126,9 @@ private Object parse(Field field, Class fieldsClass, String value) { if (List.class.isAssignableFrom(fieldsClass) && field.getGenericType() instanceof ParameterizedType parameterizedType) { var generics = parameterizedType.getActualTypeArguments(); - if (generics != null && generics.length == 1 && generics[0] == String.class) + if (generics != null && generics.length == 1 && generics[0] == String.class) { return new ArrayList<>(Arrays.stream(value.split(LIST_SEPARATOR)).toList()); + } } throw new IllegalArgumentException("Could not find a parse method for fields of type: " + fieldsClass); @@ -138,7 +143,7 @@ private void writeObject(ObjectOutputStream objectOutputStream) throws IOExcepti private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException { objectInputStream.defaultReadObject(); try { - var loggerField = Arrays.stream(FieldUtils.getAllFields(getClass())).filter(f -> f.getName().equals("logger")).findFirst().orElseThrow(); + var loggerField = Arrays.stream(FieldUtils.getAllFields(this.getClass())).filter(f -> f.getName().equals("logger")).findFirst().orElseThrow(); loggerField.setAccessible(true); loggerField.set(this, LoggerFactory.getLogger(this.getClass())); } catch (IllegalAccessException e) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java index eb7c3279f..75fa45140 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java @@ -10,6 +10,8 @@ */ public abstract class AbstractState extends AbstractConfigurable implements PipelineStepData { + private static final long serialVersionUID = -3318799425973820663L; + @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap map) { // empty diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java index 86a0d737d..ddf7b8894 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java @@ -23,6 +23,8 @@ @Deterministic public final class Confidence implements Comparable, ICopyable, Serializable { + private static final long serialVersionUID = 4307327201754195030L; + private final AggregationFunctions confidenceAggregator; // Claimant, Confidence, MethodName @@ -62,8 +64,9 @@ private Confidence(AggregationFunctions confidenceAggregator, List getClaimants() { Set identitySet = Collections.newSetFromMap(new IdentityHashMap<>()); - for (var confidence : this.agentConfidences) + for (var confidence : this.agentConfidences) { identitySet.add(confidence.first()); + } return identitySet; } @@ -79,8 +82,8 @@ public Confidence createCopy() { * @param confidence the confidence */ public void addAgentConfidence(Claimant claimant, double confidence) { - String method = getMethodInClaimant(claimant); - agentConfidences.add(new Triple<>(claimant, confidence, method)); + String method = this.getMethodInClaimant(claimant); + this.agentConfidences.add(new Triple<>(claimant, confidence, method)); } private String getMethodInClaimant(Claimant claimant) { @@ -95,14 +98,15 @@ private String getMethodInClaimant(Claimant claimant) { @Override public int compareTo(Confidence o) { - if (this.equals(o)) + if (this.equals(o)) { return 0; + } return Double.compare(this.getConfidence(), o.getConfidence()); } @Override public String toString() { - return "Confidence{" + confidenceAggregator + "=>" + getConfidence() + '}'; + return "Confidence{" + this.confidenceAggregator + "=>" + this.getConfidence() + '}'; } /** @@ -111,17 +115,17 @@ public String toString() { * @return the (aggregated) confidence value */ public double getConfidence() { - if (agentConfidences.isEmpty()) { + if (this.agentConfidences.isEmpty()) { return 0; } - if (confidenceAggregator == AggregationFunctions.ROLLING_AVERAGE) { + if (this.confidenceAggregator == AggregationFunctions.ROLLING_AVERAGE) { // No aggregate - return confidenceAggregator.applyAsDouble(agentConfidences.stream().map(Triple::second).toList()); + return this.confidenceAggregator.applyAsDouble(this.agentConfidences.stream().map(Triple::second).toList()); } var groupAggregator = AggregationFunctions.MAX; - var claimantGroupings = agentConfidences.stream().collect(Collectors.groupingBy(Triple::first)).values(); + var claimantGroupings = this.agentConfidences.stream().collect(Collectors.groupingBy(Triple::first)).values(); var claimantConfidences = claimantGroupings.stream().map(l -> l.stream().map(Triple::second).toList()).map(groupAggregator::applyAsDouble).toList(); - return confidenceAggregator.applyAsDouble(claimantConfidences); + return this.confidenceAggregator.applyAsDouble(claimantConfidences); } /** @@ -157,7 +161,7 @@ public static Confidence merge(Confidence a, Confidence b, AggregationFunctions @Override public int hashCode() { - return Objects.hash(agentConfidences, confidenceAggregator); + return Objects.hash(this.agentConfidences, this.confidenceAggregator); } @Override @@ -165,11 +169,11 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (obj == null || getClass() != obj.getClass()) { + if (obj == null || this.getClass() != obj.getClass()) { return false; } var other = (Confidence) obj; - return Objects.equals(agentConfidences, other.agentConfidences) && confidenceAggregator == other.confidenceAggregator; + return Objects.equals(this.agentConfidences, other.agentConfidences) && this.confidenceAggregator == other.confidenceAggregator; } public void addAllConfidences(Confidence other) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index e2014b46c..b1fd3aab7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -16,22 +16,25 @@ * help of a data identifier (as string). Fetching also needs the necessary class of data that is expected. */ public class DataRepository implements Serializable { + + private static final long serialVersionUID = -3068992658696547744L; + private static final Logger logger = LoggerFactory.getLogger(DataRepository.class); private final SortedMap data; public DataRepository() { this.data = new TreeMap<>(); - addData(GlobalConfiguration.ID, new GlobalConfiguration()); + this.addData(GlobalConfiguration.ID, new GlobalConfiguration()); } /** * Returns the {@link GlobalConfiguration} stored within the provided {@link DataRepository}. - * + * * @return the data */ public final GlobalConfiguration getGlobalConfiguration() { - return getData(GlobalConfiguration.ID, GlobalConfiguration.class).orElseThrow(); + return this.getData(GlobalConfiguration.ID, GlobalConfiguration.class).orElseThrow(); } /** @@ -44,7 +47,7 @@ public final GlobalConfiguration getGlobalConfiguration() { * @return Optional containing the requested data cast into the given class. The optional is empty is data could not be found or casting was unsuccessful. */ public Optional getData(String identifier, Class clazz) { - var possibleData = data.get(identifier); + var possibleData = this.data.get(identifier); if (possibleData != null) { return possibleData.asPipelineStepData(clazz); } @@ -59,7 +62,7 @@ public Optional getData(String identifier, Class * @param pipelineStepData Data that should be saved */ public void addData(String identifier, PipelineStepData pipelineStepData) { - if (data.put(identifier, pipelineStepData) != null) { + if (this.data.put(identifier, pipelineStepData) != null) { logger.warn("Overriding data with identifier '{}'", identifier); } } @@ -78,7 +81,6 @@ public void addAllData(DataRepository dataRepository) { * * @return deep copy of the data repository */ - @DeepCopy public DataRepository deepCopy() { return DataRepositoryHelper.deepCopy(this); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DeepCopy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DeepCopy.java deleted file mode 100644 index 9da441d8d..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DeepCopy.java +++ /dev/null @@ -1,15 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.data; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Marks the method or parameter as using deep copies. If a method is annotated as deep copy, it only returns deep copies that can be freely modified. If a - * parameter is annotated as deep copy, the method will calculate and use a deep copy of it rather than the object itself. - */ -@Documented -@Target({ ElementType.METHOD, ElementType.PARAMETER }) -public @interface DeepCopy { -} diff --git a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties index 9944b93a6..9643ae97b 100644 --- a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties +++ b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties @@ -2,7 +2,6 @@ separators_ToContain=. :: : _ separators_ToSplit=\\. :: : _ getMostRecommendedIByRef_MinProportion=0.5 getMostRecommendedIByRef_Increase=0.05 -considerAbbreviations=false # Levenshtein levenshtein_Enabled=true levenshtein_MinLength=2 diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelperTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelperTest.java deleted file mode 100644 index cc54f05d5..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/AbbreviationDisambiguationHelperTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import static edu.kit.kastel.mcse.ardoco.core.common.JsonHandling.createObjectMapper; -import static org.junit.jupiter.api.Assertions.*; - -import java.util.List; - -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import edu.kit.kastel.mcse.ardoco.core.api.Disambiguation; - -class AbbreviationDisambiguationHelperTest { - private final String dbJSON = """ - { - "abbreviation": "DB", - "meanings": [ - "Database", - "Decibel" - ] - }"""; - - @Test - void get() { - var abbreviation = AbbreviationDisambiguationHelper.disambiguate("DB"); - assertNotNull(abbreviation); - assertEquals(abbreviation.size(), Math.min(AbbreviationDisambiguationHelper.LIMIT, 3)); - } - - @Test - void deserialize() throws JsonProcessingException { - var abbr = createObjectMapper().readValue(dbJSON, Disambiguation.class); - assertEquals("DB", abbr.getAbbreviation()); - assertTrue(abbr.getMeanings().containsAll(List.of("Database", "Decibel"))); - assertEquals(2, abbr.getMeanings().size()); - } - - @Test - void load() { - var abbreviations = AbbreviationDisambiguationHelper.getInstance().getOrRead(); - assertNotNull(abbreviations); - } - - @Test - void crawlAbbreviationsCom() { - var meanings = AbbreviationDisambiguationHelper.crawlAbbreviationsCom("DB"); - assertNotNull(meanings); - assertEquals(AbbreviationDisambiguationHelper.LIMIT, meanings.size()); - } - - @Test - void crawlAcronymFinderCom() { - var meanings = AbbreviationDisambiguationHelper.crawlAcronymFinderCom("GAE"); - assertNotNull(meanings); - assertEquals(AbbreviationDisambiguationHelper.LIMIT, meanings.size()); - } - - @Test - void crawl() { - //Let's hope no one ever comes up with a sensible meaning for this non-sense. Until then, it - // will remain as our way to test how we handle no search results. - var nonSens = AbbreviationDisambiguationHelper.crawl("8DAS8UDZGU23HG1U"); - assertNotNull(nonSens); - assertTrue(nonSens.getMeanings().isEmpty()); - } - - @Test - void inOrderTest() { - assertEquals(3, AbbreviationDisambiguationHelper.containsInOrder("some text", "stt")); - assertTrue(AbbreviationDisambiguationHelper.containsAllInOrder("some text", "stt")); - assertEquals(4, AbbreviationDisambiguationHelper.containsInOrder("some text", "smex")); - assertTrue(AbbreviationDisambiguationHelper.containsAllInOrder("some text", "smex")); - assertEquals(2, AbbreviationDisambiguationHelper.containsInOrder("some text", "semx")); - assertFalse(AbbreviationDisambiguationHelper.containsAllInOrder("some text", "semx")); - } - - @Test - void shareInitialTest() { - assertTrue(AbbreviationDisambiguationHelper.shareInitial("ahjkdsshds ousidh bndwb", "adfgbodiowdiowhi sdhsdshg")); - assertFalse(AbbreviationDisambiguationHelper.shareInitial(null, "sth")); - assertFalse(AbbreviationDisambiguationHelper.shareInitial("sth", null)); - assertFalse(AbbreviationDisambiguationHelper.shareInitial(null, null)); - assertFalse(AbbreviationDisambiguationHelper.shareInitial("abcde", "bcdea")); - } - - @Test - void maximumAbbreviationScoreTest() { - assertEquals(1.5, AbbreviationDisambiguationHelper.maximumAbbreviationScore("abcd", "a", 1, 0.5, 0, 0)); - assertEquals(1.5, AbbreviationDisambiguationHelper.maximumAbbreviationScore("abad", "a", 1, 0.5, 0, 0)); - assertEquals(2, AbbreviationDisambiguationHelper.maximumAbbreviationScore("abcd", "ac", 1, 0.5, 0, 0)); - assertEquals(3.5, AbbreviationDisambiguationHelper.maximumAbbreviationScore("abcd cd", "acd", 1, 0.5, 0, 0)); - } -} diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelperTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelperTest.java deleted file mode 100644 index 71bc586e0..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/DbPediaHelperTest.java +++ /dev/null @@ -1,35 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import org.junit.jupiter.api.Test; - -class DbPediaHelperTest { - @Test - void load() { - var record = DbPediaHelper.getInstance().getOrRead(); - assertFalse(record.programmingLanguages().isEmpty()); - assertFalse(record.markupLanguages().isEmpty()); - assertFalse(record.software().isEmpty()); - } - - @Test - void containsAtLeastSomePopularLanguages() { - var record = DbPediaHelper.getInstance().getOrRead(); - List all = record.programmingLanguages(); - all.addAll(record.markupLanguages()); - all.addAll(record.software()); - all = all.stream().map(String::toLowerCase).toList(); - assertTrue(all.contains("python")); - assertTrue(all.contains("javascript")); - assertTrue(all.contains("java")); - assertTrue(all.contains("c")); - assertTrue(all.contains("c++")); - assertTrue(all.contains("html")); - assertTrue(all.contains("css")); - } -} From 3e74f001be34cffbb3a2c81543a543928a74d31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:38:21 +0100 Subject: [PATCH 008/115] Move packages for similarity --- .../PhraseMappingAggregatorStrategy.java | 6 +++--- .../{util => similarity}/SimilarityComparable.java | 2 +- .../common/{util => similarity}/SimilarityUtils.java | 6 ++++-- .../wordsim/ComparisonContext.java | 2 +- .../wordsim/ConfusablesHelper.java | 2 +- .../wordsim/UnicodeCharacter.java | 2 +- .../wordsim/UnicodeCharacterMatchFunctions.java | 2 +- .../wordsim/UnicodeCharacterSequence.java | 2 +- .../{util => similarity}/wordsim/WordSimLoader.java | 12 ++++++------ .../{util => similarity}/wordsim/WordSimMeasure.java | 2 +- .../{util => similarity}/wordsim/WordSimUtils.java | 10 +++++----- .../wordsim/measures/equality/EqualityMeasure.java | 8 ++++---- .../wordsim/measures/glove/GloveMeasure.java | 12 ++++++------ .../measures/jarowinkler/JaroWinklerMeasure.java | 6 +++--- .../jarowinkler/UnicodeJaroWinklerSimilarity.java | 8 ++++---- .../measures/levenshtein/LevenshteinMeasure.java | 8 ++++---- .../levenshtein/UnicodeLevenshteinDistance.java | 8 ++++---- .../wordsim/measures/ngram/NgramMeasure.java | 6 +++--- .../measures/sewordsim/SEWordSimDataSource.java | 4 ++-- .../wordsim/measures/sewordsim/SEWordSimMeasure.java | 6 +++--- .../wordsim/strategy/AtLeastOneStrategy.java | 6 +++--- .../wordsim/strategy/AverageStrategy.java | 6 +++--- .../wordsim/strategy/ComparisonStrategy.java | 6 +++--- .../wordsim/strategy/MajorityStrategy.java | 6 +++--- .../wordsim/strategy/MaximumStrategy.java | 6 +++--- .../wordsim/strategy/MedianStrategy.java | 6 +++--- .../wordsim/strategy/SimilarityStrategy.java | 6 +++--- .../wordsim/vector/RetrieveVectorException.java | 2 +- .../wordsim/vector/VectorBasedWordSimMeasure.java | 4 ++-- .../wordsim/vector/VectorSqliteDatabase.java | 4 ++-- .../wordsim/vector/VectorUtils.java | 2 +- .../wordsim/vector/WordVectorDataSource.java | 2 +- .../wordsim/vector/WordVectorSqliteImporter.java | 2 +- .../ardoco/core/common/util/CommonUtilities.java | 1 + .../core/common/util/DataRepositoryHelper.java | 1 + .../mcse/ardoco/core/data/GlobalConfiguration.java | 4 ++-- .../wordsim/ConfusablesHelperTest.java | 5 ++++- .../wordsim/WordSimUtilsTest.java | 4 +++- .../measures/jarowinkler/JaroWinklerMeasureTest.java | 8 +++++--- .../measures/levenshtein/LevenshteinMeasureTest.java | 8 +++++--- .../wordsim/measures/ngram/NgramMeasureTest.java | 5 +++-- .../wordsim/vector/VectorUtilsTest.java | 4 +++- 42 files changed, 114 insertions(+), 98 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/PhraseMappingAggregatorStrategy.java (87%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/SimilarityComparable.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/SimilarityUtils.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/ComparisonContext.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/ConfusablesHelper.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/UnicodeCharacter.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/UnicodeCharacterMatchFunctions.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/UnicodeCharacterSequence.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/WordSimLoader.java (74%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/WordSimMeasure.java (91%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/WordSimUtils.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/equality/EqualityMeasure.java (72%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/glove/GloveMeasure.java (80%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/jarowinkler/JaroWinklerMeasure.java (85%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/levenshtein/LevenshteinMeasure.java (91%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/ngram/NgramMeasure.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/sewordsim/SEWordSimDataSource.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/sewordsim/SEWordSimMeasure.java (90%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/AtLeastOneStrategy.java (70%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/AverageStrategy.java (70%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/ComparisonStrategy.java (77%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/MajorityStrategy.java (72%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/MaximumStrategy.java (67%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/MedianStrategy.java (76%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/strategy/SimilarityStrategy.java (69%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/RetrieveVectorException.java (79%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/VectorBasedWordSimMeasure.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/VectorSqliteDatabase.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/VectorUtils.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/WordVectorDataSource.java (89%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/WordVectorSqliteImporter.java (99%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/ConfusablesHelperTest.java (83%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/WordSimUtilsTest.java (79%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java (87%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/levenshtein/LevenshteinMeasureTest.java (79%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/measures/ngram/NgramMeasureTest.java (93%) rename framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/{util => similarity}/wordsim/vector/VectorUtilsTest.java (96%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java similarity index 87% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java index 4f2fd412c..f91f8956d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/PhraseMappingAggregatorStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java @@ -1,8 +1,8 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; +package edu.kit.kastel.mcse.ardoco.core.common.similarity; -import static edu.kit.kastel.mcse.ardoco.core.common.util.SimilarityUtils.cosineSimilarity; -import static edu.kit.kastel.mcse.ardoco.core.common.util.SimilarityUtils.uniqueDot; +import static edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils.cosineSimilarity; +import static edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils.uniqueDot; import java.util.function.ToDoubleBiFunction; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityComparable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityComparable.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java index 07785056e..6b7d97807 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityComparable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; +package edu.kit.kastel.mcse.ardoco.core.common.similarity; import java.util.Collection; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 797166686..21537fbb9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; +package edu.kit.kastel.mcse.ardoco.core.common.similarity; import java.io.Serializable; import java.util.ArrayList; @@ -21,8 +21,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.PhraseType; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimUtils; +import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; +import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; /** * This class is a utility class. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ComparisonContext.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ComparisonContext.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java index 519aebfe2..12344ce71 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ComparisonContext.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelper.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java index 2ad3fe169..fbed802c7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.io.BufferedReader; import java.io.File; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacter.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java index 940cf1e32..15b307744 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacter.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.io.Serializable; import java.util.Arrays; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterMatchFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterMatchFunctions.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java index 4bb407417..76b181f7b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterMatchFunctions.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.io.Serializable; import java.util.function.BiFunction; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterSequence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterSequence.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java index 44560fbb3..b764508a3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/UnicodeCharacterSequence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.Objects; import java.util.stream.IntStream; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimLoader.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java similarity index 74% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimLoader.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java index 405dde414..7a39d29bd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimLoader.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.ArrayList; @@ -8,12 +8,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality.EqualityMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.JaroWinklerMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.LevenshteinMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram.NgramMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim.SEWordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.equality.EqualityMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.jarowinkler.JaroWinklerMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.levenshtein.LevenshteinMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.ngram.NgramMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.sewordsim.SEWordSimMeasure; /** * Responsible for loading the word similarity measures that should be enabled according to the diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java similarity index 91% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java index 5e461ebc1..97ca8f0cb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java index 98594242b..5413c6955 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.io.Serializable; import java.util.ArrayList; @@ -13,10 +13,10 @@ import org.sqlite.SQLiteOpenMode; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.equality.EqualityMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy.AverageStrategy; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy.ComparisonStrategy; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy.SimilarityStrategy; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality.EqualityMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy.AverageStrategy; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy.ComparisonStrategy; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy.SimilarityStrategy; /** * A static class that provides various utility methods to calculate similarity between different kinds of objects. This class statically keeps a reference to a diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/equality/EqualityMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java similarity index 72% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/equality/EqualityMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java index 33b4003e3..52e6b53f5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/equality/EqualityMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.equality; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality; import java.util.Locale; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterSequence; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** * This word similarity measure just checks whether the most appropriate string representations of the passed objects are equal. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java similarity index 80% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/glove/GloveMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java index 9346f5d0c..af97c7d9c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/glove/GloveMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.glove; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.glove; import java.nio.file.Path; import java.sql.SQLException; @@ -7,12 +7,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.RetrieveVectorException; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorBasedWordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorSqliteDatabase; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.WordVectorDataSource; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector.RetrieveVectorException; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector.VectorBasedWordSimMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector.VectorSqliteDatabase; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector.WordVectorDataSource; /** * This word similarity measures utilizes GloVe trained word vector representations to calculate word similarity. It retrieves vectors for each word and diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java similarity index 85% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java index 47d1d59cd..df864bddf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java @@ -1,9 +1,9 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.jarowinkler; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; /** * This word similarity measure uses the jaro winkler algorithm to calculate similarity. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java index 7ddcb493f..a8d6aa6a4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java @@ -1,12 +1,12 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.jarowinkler; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; import java.io.Serializable; import java.util.Arrays; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacter; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterSequence; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; /** * A similarity algorithm indicating the percentage of matched characters between two character sequences. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java similarity index 91% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java index dc6195d00..a30f1f7c5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java @@ -1,10 +1,10 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.levenshtein; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterSequence; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; /** * This word similarity measure uses the levenshtein distance (also sometimes called edit distance) algorithm to calculate word similarity. This measure is diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java index 173fc5d73..111d5401e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java @@ -1,14 +1,14 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.levenshtein; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; import java.io.Serializable; import java.util.Arrays; import org.apache.commons.text.similarity.LevenshteinDistance; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacter; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterSequence; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; /** * An algorithm for measuring the difference between two character sequences. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java index a0d365398..062db285e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.ngram; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram; import java.util.Objects; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; /** * This word similarity measure uses the N-gram word distance function defined by Kondrak 2005. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimDataSource.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java index 37a2ed8eb..9b4240685 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimDataSource.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.sewordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; import java.nio.file.Files; import java.nio.file.Path; @@ -13,7 +13,7 @@ import org.sqlite.SQLiteConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimUtils; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; import opennlp.tools.stemmer.PorterStemmer; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java similarity index 90% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java index 8f9e5e813..aa2afb353 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/sewordsim/SEWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.sewordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; import java.nio.file.Path; import java.sql.SQLException; @@ -7,9 +7,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; /** * This word similarity measures utilizes the SEWordSim database from Tian et al. 2014 diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AtLeastOneStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java similarity index 70% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AtLeastOneStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java index 0beeb0600..7b1e7dffa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AtLeastOneStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java @@ -1,10 +1,10 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** * This comparison strategy accepts any word pair as similar if at least one of the specified word similarity measures diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AverageStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java similarity index 70% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AverageStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java index 7f0c5fb3d..0deb79528 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/AverageStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java @@ -1,10 +1,10 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; public class AverageStrategy implements SimilarityStrategy { @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/ComparisonStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java similarity index 77% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/ComparisonStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java index b32c55f20..8318b0e85 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/ComparisonStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.io.Serializable; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** * A comparison strategy determines how the verdicts of multiple WSMs regarding a specific comparison are combined. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MajorityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java similarity index 72% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MajorityStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java index 98972731e..029cca99e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MajorityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java @@ -1,10 +1,10 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** * This comparison strategy accepts any word pair as similar if the majority of specified word similarity measures diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MaximumStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java similarity index 67% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MaximumStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java index ee7efe0bf..2c9c6916a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MaximumStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java @@ -1,10 +1,10 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; public class MaximumStrategy implements SimilarityStrategy { @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MedianStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java similarity index 76% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MedianStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java index 15859a20c..1380e98fe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/MedianStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.ArrayList; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; public class MedianStrategy implements SimilarityStrategy { @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/SimilarityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java similarity index 69% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/SimilarityStrategy.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java index 4449faa54..6ea267b32 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/strategy/SimilarityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.strategy; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.io.Serializable; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; public interface SimilarityStrategy extends Serializable { /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/RetrieveVectorException.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java similarity index 79% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/RetrieveVectorException.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java index 70857f9c6..6770d891a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/RetrieveVectorException.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; /** * An exception that can occur while trying to retrieve a vector. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorBasedWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorBasedWordSimMeasure.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java index 23e407698..ce02a0dee 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorBasedWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java @@ -1,12 +1,12 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** * A vector based word similarity measure uses vector embeddings of words to compare their similarity. To get vector diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorSqliteDatabase.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorSqliteDatabase.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java index fd6e7af7f..453c9980b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorSqliteDatabase.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.nio.ByteBuffer; import java.nio.file.Files; @@ -12,7 +12,7 @@ import org.sqlite.SQLiteConfig; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimUtils; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; /** * Manages a connection to a sqlite database that contains vector word embeddings using a very specific schema: diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtils.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java index a8f7cbbf8..e8ceb8a26 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java similarity index 89% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorDataSource.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java index 40240454a..ec998ee47 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorDataSource.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorSqliteImporter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorSqliteImporter.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java index 85e7b9024..7b637afef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/WordVectorSqliteImporter.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.io.BufferedReader; import java.io.IOException; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index a0b308f2b..8ff96c197 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -28,6 +28,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.text.DependencyTag; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index e11fd94da..e06a54120 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -247,6 +247,7 @@ public static void putPreprocessingData(DataRepository dataRepository, Preproces * * @param object the object to copy */ + @SuppressWarnings("unchecked") public static T deepCopy(T object) { try { var byteArrayOutputStream = new ByteArrayOutputStream(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java index 8e9e3c680..a50129de1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java @@ -1,8 +1,8 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.data; -import edu.kit.kastel.mcse.ardoco.core.common.util.SimilarityUtils; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.WordSimUtils; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; import edu.kit.kastel.mcse.ardoco.core.pipeline.Pipeline; /** diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelperTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java similarity index 83% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelperTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java index 3f303553f..bb9b34090 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/ConfusablesHelperTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -9,6 +9,9 @@ import org.junit.jupiter.api.Test; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ConfusablesHelper; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; + public class ConfusablesHelperTest { public static final String example = """ # ! ǃ ⵑ ! diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java similarity index 79% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtilsTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java index 09394192c..25deb3657 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/WordSimUtilsTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java @@ -1,10 +1,12 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; + class WordSimUtilsTest { @Test diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java similarity index 87% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java index 7b7c4483e..af9bf7531 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java @@ -1,13 +1,15 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.jarowinkler; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.JaroWinklerMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.UnicodeJaroWinklerSimilarity; class JaroWinklerMeasureTest { private static final double delta = 0.01; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java similarity index 79% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasureTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java index 3e5fac546..5b0bbfe49 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/levenshtein/LevenshteinMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java @@ -1,13 +1,15 @@ /* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.levenshtein; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.LevenshteinMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.UnicodeLevenshteinDistance; class LevenshteinMeasureTest { private static final double delta = 0.01; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java similarity index 93% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasureTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java index 6315b61ef..b02253915 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/measures/ngram/NgramMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.measures.ngram; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -11,7 +11,8 @@ import org.apache.commons.text.similarity.LevenshteinDistance; import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram.NgramMeasure; class NgramMeasureTest { diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java similarity index 96% rename from framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtilsTest.java rename to framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java index 7abf6577f..c0b4696bd 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/util/wordsim/vector/VectorUtilsTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.util.wordsim.vector; +package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -11,6 +11,8 @@ import org.junit.jupiter.api.Test; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorUtils; + class VectorUtilsTest { record Example(float[] firstVec, float[] secondVec, double expectedCosineSimilarity) { From 9358677159eefdbbadd22df9d4b0bc0b238b7e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 20:48:20 +0100 Subject: [PATCH 009/115] Remove global configuration --- .../similarity/SimilarityComparable.java | 24 +++--- .../common/similarity/SimilarityUtils.java | 73 ++++++++++--------- .../core/common/util/CommonUtilities.java | 4 +- .../mcse/ardoco/core/data/DataRepository.java | 10 --- .../ardoco/core/data/GlobalConfiguration.java | 70 ------------------ .../ardoco/core/pipeline/agent/Informant.java | 7 +- .../mcse/ardoco/core/execution/ArDoCo.java | 11 ++- 7 files changed, 59 insertions(+), 140 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java index 6b7d97807..9a2e10061 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java @@ -3,8 +3,6 @@ import java.util.Collection; -import edu.kit.kastel.mcse.ardoco.core.data.GlobalConfiguration; - /** * Classes implementing this interface provide the functionality to determine whether an instance is similar to the provided type, and if collections of * instances are similar to collections of the type. @@ -16,24 +14,24 @@ public interface SimilarityComparable { * {@return whether the instance is similar to the given object} Has to return true if {@link Object#equals} returns true. The result of this function * should be symmetric, but does not have to be transitive. * - * @param globalConfiguration the pipeline meta data containing the similarity configuration - * @param obj some object + * @param obj some object */ - boolean similar(GlobalConfiguration globalConfiguration, T obj); + boolean similar(T obj); /** * {@return both collections consist of elements, that have a corresponding similar element in the other collection} Does not care about order and should - * returns true for equal lists if {@link #similar(GlobalConfiguration, Object)} was implemented correctly. + * returns true for equal lists if {@link #similar(Object)} was implemented correctly. * - * @param globalConfiguration the pipeline meta data containing the similarity configuration - * @param a some collection - * @param b some other collection + * @param a some collection + * @param b some other collection */ - static > boolean similar(GlobalConfiguration globalConfiguration, Collection a, Collection b) { - if (a.equals(b)) + static > boolean similar(Collection a, Collection b) { + if (a.equals(b)) { return true; - if (a.size() != b.size()) + } + if (a.size() != b.size()) { return false; - return a.parallelStream().allMatch(element -> b.stream().anyMatch(other -> element.similar(globalConfiguration, other))); + } + return a.parallelStream().allMatch(element -> b.stream().anyMatch(element::similar)); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 21537fbb9..e9ad7495a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -31,8 +31,14 @@ */ @Deterministic public final class SimilarityUtils implements Serializable { + private static final SimilarityUtils INSTANCE = new SimilarityUtils(new WordSimUtils()); + private final WordSimUtils wordSimUtils; + public static SimilarityUtils getInstance() { + return INSTANCE; + } + public SimilarityUtils(WordSimUtils wordSimUtils) { this.wordSimUtils = wordSimUtils; } @@ -41,7 +47,7 @@ public ImmutableList getSimilarSurfaceWords(RecommendedInstance recommen return Lists.immutable.fromStream(recommendedInstance.getNameMappings() .stream() .flatMap(n -> n.getSurfaceForms().stream()) - .filter(s -> wordSimUtils.areWordsSimilar(s, instance.getFullName()))); + .filter(s -> this.wordSimUtils.areWordsSimilar(s, instance.getFullName()))); } /** @@ -68,9 +74,9 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { if (nm1Words.size() == 1 && nm2Words.size() == 1) { var nm1Word = nm1Words.get(0); var nm2Word = nm2Words.get(0); - return areWordsSimilar(nm1FirstPart, nm2FirstPart) || areWordsSimilar(nm1Word, nm2Word); + return this.areWordsSimilar(nm1FirstPart, nm2FirstPart) || this.areWordsSimilar(nm1Word, nm2Word); } - return areWordsSimilar(nm1Reference, nm2Reference); + return this.areWordsSimilar(nm1Reference, nm2Reference); } /** @@ -82,13 +88,13 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { * @return true, iff the {@link NounMapping} and {@link ModelInstance} are similar. */ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, ModelInstance instance) { - if (areWordsOfListsSimilar(instance.getNameParts(), Lists.immutable.with(nounMapping.getReference())) || areWordsSimilar(instance.getFullName(), - nounMapping.getReference())) { + if (this.areWordsOfListsSimilar(instance.getNameParts(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(instance + .getFullName(), nounMapping.getReference())) { return true; } for (String name : instance.getNameParts()) { - if (areWordsSimilar(name, nounMapping.getReference())) { + if (this.areWordsSimilar(name, nounMapping.getReference())) { return true; } } @@ -104,7 +110,7 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode */ public boolean isWordSimilarToModelInstance(Word word, ModelInstance instance) { var names = instance.getNameParts(); - return compareWordWithStringListEntries(word, names); + return this.compareWordWithStringListEntries(word, names); } /** @@ -117,7 +123,7 @@ public boolean isWordSimilarToModelInstance(Word word, ModelInstance instance) { public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, ModelInstance instance) { var name = ri.getName(); var nameList = Lists.immutable.with(name.split(" ")); - return instance.getFullName().equalsIgnoreCase(ri.getName()) || areWordsOfListsSimilar(instance.getNameParts(), nameList); + return instance.getFullName().equalsIgnoreCase(ri.getName()) || this.areWordsOfListsSimilar(instance.getNameParts(), nameList); } /** @@ -129,16 +135,16 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r */ public boolean isWordSimilarToModelInstanceType(Word word, ModelInstance instance) { var types = instance.getTypeParts(); - return compareWordWithStringListEntries(word, types); + return this.compareWordWithStringListEntries(word, types); } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { - return compareWordWithStringListEntries(word.getText(), names); + return this.compareWordWithStringListEntries(word.getText(), names); } private boolean compareWordWithStringListEntries(String word, ImmutableList names) { for (String name : names) { - if (areWordsSimilar(name, word)) { + if (this.areWordsSimilar(name, word)) { return true; } } @@ -154,7 +160,7 @@ private boolean compareWordWithStringListEntries(String word, ImmutableList originals, ImmutableList words2test, double minProportion) { - if (areWordsSimilar(String.join(" ", originals), String.join(" ", words2test))) { + if (this.areWordsSimilar(String.join(" ", originals), String.join(" ", words2test))) { return true; } @@ -191,14 +197,16 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable var possiblySimilar = originals.size() * words2test.size(); for (String o : originals) { for (String wd : words2test) { - if (areWordsSimilar(o, wd)) { + if (this.areWordsSimilar(o, wd)) { counterSimilar++; - if (1.0 * counterSimilar / max >= minProportion) + if (1.0 * counterSimilar / max >= minProportion) { return true; + } } else { counterDissimilar++; - if (1.0 * (possiblySimilar - counterDissimilar) / max < minProportion) + if (1.0 * (possiblySimilar - counterDissimilar) / max < minProportion) { return false; //minProportion can no longer be achieved, can stop here + } } } } @@ -215,7 +223,7 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable * @return true if the list are similar, false if not */ public boolean areWordsOfListsSimilar(ImmutableList originals, ImmutableList words2test) { - return areWordsOfListsSimilar(originals, words2test, CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD); + return this.areWordsOfListsSimilar(originals, words2test, CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD); } /** @@ -232,7 +240,7 @@ public ImmutableList getMostRecommendedInstancesToInstanceB ImmutableList recommendedInstances) { var instanceNames = instance.getNameParts(); var similarity = CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD; - var selection = recommendedInstances.select(ri -> checkRecommendedInstanceForSelection(instance, ri, similarity)); + var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(instance, ri, similarity)); var getMostRecommendedIByRefMinProportion = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_MIN_PROPORTION; var getMostRecommendedIByRefIncrease = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_INCREASE; @@ -245,7 +253,7 @@ public ImmutableList getMostRecommendedInstancesToInstanceB getMostRecommendedIByRefMinProportion += getMostRecommendedIByRefIncrease; MutableList risToRemove = Lists.mutable.empty(); for (RecommendedInstance ri : whileSelection) { - if (checkRecommendedInstanceWordSimilarityToInstance(instance, ri)) { + if (this.checkRecommendedInstanceWordSimilarityToInstance(instance, ri)) { allListsSimilar++; } @@ -270,7 +278,7 @@ private boolean checkRecommendedInstanceWordSimilarityToInstance(ModelInstance i var instanceNames = instance.getNameParts(); for (var sf : ri.getNameMappings().flatCollect(NounMapping::getSurfaceForms)) { var splitSF = CommonUtilities.splitCases(String.join(" ", CommonUtilities.splitAtSeparators(sf))); - if (areWordsSimilar(String.join(" ", instanceNames), splitSF)) { + if (this.areWordsSimilar(String.join(" ", instanceNames), splitSF)) { return true; } } @@ -282,7 +290,7 @@ private boolean checkRecommendedInstanceForSelection(ModelInstance instance, Rec ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(instance.getFullName()).split(" ")); ImmutableList recommendedInstanceNames = Lists.immutable.with(ri.getName()); - boolean instanceNameAndRIName = areWordsSimilar(instance.getFullName(), ri.getName()); + boolean instanceNameAndRIName = this.areWordsSimilar(instance.getFullName(), ri.getName()); boolean instanceNamesAndRIs = this.areWordsOfListsSimilar(instanceNames, recommendedInstanceNames, similarity); boolean longestNameSplitAndRINames = this.areWordsOfListsSimilar(longestNameSplit, recommendedInstanceNames, similarity); boolean listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(instanceNames, recommendedInstanceNames) / Math.max(instanceNames.size(), @@ -349,7 +357,7 @@ public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapp double currentMinSimilarity = minCosineSimilarity; PhraseMapping mostSimilarPhraseMapping = otherPhraseMappings.get(0); for (PhraseMapping otherPhraseMapping : otherPhraseMappings) { - double similarity = getPhraseMappingSimilarity(textState, phraseMapping, otherPhraseMapping, PhraseMappingAggregatorStrategy.MAX_SIMILARITY); + double similarity = this.getPhraseMappingSimilarity(textState, phraseMapping, otherPhraseMapping, PhraseMappingAggregatorStrategy.MAX_SIMILARITY); if (similarity > currentMinSimilarity) { currentMinSimilarity = similarity; mostSimilarPhraseMapping = otherPhraseMapping; @@ -361,9 +369,11 @@ public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapp public static ImmutableList> uniqueDot(ImmutableList first, ImmutableList second) { List> result = new ArrayList<>(); - for (A a : first) - for (B b : second) + for (A a : first) { + for (B b : second) { result.add(new Pair<>(a, b)); + } + } return Lists.immutable.withAll(result); } @@ -376,9 +386,9 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs } // Maybe REWORK. Remove NounMappings? - if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, - firstPhraseMapping)) && containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, - secondPhraseMapping) && containsAllNounMappingsOfPhraseMapping(textState, secondPhraseMapping, firstPhraseMapping)) { + if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this + .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( + textState, secondPhraseMapping, firstPhraseMapping)) { // HARD CODED... Change? return 1.0; } @@ -390,15 +400,12 @@ private static int similarEntriesOfList(ImmutableList list1, ImmutableLi MutableList removed = Lists.mutable.empty(); for (var element : list1) { - if (list2.contains(element)) { + if (list2.contains(element) || (list2.select(e -> !removed.contains(e) && (e.contains(element) || element.contains(e))).size() == 1)) { removed.add(element); - } else { - if (list2.select(e -> !removed.contains(e) && (e.contains(element) || element.contains(e))).size() == 1) { - removed.add(element); - } } } return removed.size(); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 8ff96c197..29341a4bc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -224,9 +224,9 @@ public static void addRecommendedInstancesFromNounMappings(ImmutableList * @param modelState the model state containing information about types * @return List of type names in the model state that are similar to the given word */ - public static ImmutableList getSimilarTypes(SimilarityUtils similarityUtils, Word word, LegacyModelExtractionState modelState) { + public static ImmutableList getSimilarTypes(Word word, LegacyModelExtractionState modelState) { var identifiers = getTypeIdentifiers(modelState); - return Lists.immutable.fromStream(identifiers.stream().filter(typeId -> similarityUtils.areWordsSimilar(typeId, word.getText()))); + return Lists.immutable.fromStream(identifiers.stream().filter(typeId -> SimilarityUtils.getInstance().areWordsSimilar(typeId, word.getText()))); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index b1fd3aab7..95acacf39 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -25,16 +25,6 @@ public class DataRepository implements Serializable { public DataRepository() { this.data = new TreeMap<>(); - this.addData(GlobalConfiguration.ID, new GlobalConfiguration()); - } - - /** - * Returns the {@link GlobalConfiguration} stored within the provided {@link DataRepository}. - * - * @return the data - */ - public final GlobalConfiguration getGlobalConfiguration() { - return this.getData(GlobalConfiguration.ID, GlobalConfiguration.class).orElseThrow(); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java deleted file mode 100644 index a50129de1..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/GlobalConfiguration.java +++ /dev/null @@ -1,70 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.data; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; -import edu.kit.kastel.mcse.ardoco.core.pipeline.Pipeline; - -/** - * Contains global configuration about the pipeline which produced this data. - */ -public class GlobalConfiguration implements PipelineStepData { - public static final String ID = "PipelineMetaData"; - private Pipeline pipeline; - private final WordSimUtils wordSimUtils; - private final SimilarityUtils similarityUtils; - - /** - * Constructs a new PipelineMetaData with the given global configuration data - * - * @param pipeline the runner which produced the {@link DataRepository} this data is associated with - * @param wordSimUtils the configured word similarity utility instance that should be used - * @param similarityUtils the configured similarity util instance that should be used - */ - public GlobalConfiguration(Pipeline pipeline, WordSimUtils wordSimUtils, SimilarityUtils similarityUtils) { - this.pipeline = pipeline; - this.wordSimUtils = wordSimUtils; - this.similarityUtils = similarityUtils; - } - - /** - * Constructs a new PipelineMetaData with the given global configuration - * - * @param pipeline the pipeline which produced the {@link DataRepository} this data is associated with - */ - public GlobalConfiguration(Pipeline pipeline) { - this.pipeline = pipeline; - this.wordSimUtils = new WordSimUtils(); - this.similarityUtils = new SimilarityUtils(wordSimUtils); - } - - public GlobalConfiguration() { - this.wordSimUtils = new WordSimUtils(); - this.similarityUtils = new SimilarityUtils(wordSimUtils); - } - - /** - * {@return the runner which produced the DataRepository this data is associated with} - */ - public Pipeline getPipeline() { - return this.pipeline; - } - - public void setPipeline(Pipeline pipeline) { - this.pipeline = pipeline; - } - - /** - * {@return the configured word similarity utility instance} - */ - public WordSimUtils getWordSimUtils() { - return this.wordSimUtils; - } - - /** - * {@return the configured similarity utility instance} - */ - public SimilarityUtils getSimilarityUtils() { - return this.similarityUtils; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java index e69381dcc..915d23061 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java @@ -4,7 +4,6 @@ import java.util.SortedMap; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; -import edu.kit.kastel.mcse.ardoco.core.data.GlobalConfiguration; import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractPipelineStep; public abstract class Informant extends AbstractPipelineStep implements Claimant { @@ -24,10 +23,6 @@ protected void after() { @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { - //Nothing by default - } - - protected final GlobalConfiguration getMetaData() { - return getDataRepository().getGlobalConfiguration(); + // Nothing by default } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java index 2672d5b7d..13d552ee9 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java @@ -41,7 +41,7 @@ private ArDoCo() { public ArDoCo(String projectName) { super("ArDoCo", new DataRepository()); this.projectName = projectName; - initDataRepository(); + this.initDataRepository(); } /** @@ -55,9 +55,8 @@ public static ArDoCo getInstance(String projectName) { } private void initDataRepository() { - ProjectPipelineData projectPipelineData = new ProjectPipelineDataImpl(projectName); - getDataRepository().addData(ProjectPipelineData.ID, projectPipelineData); - dataRepository.getGlobalConfiguration().setPipeline(this); + ProjectPipelineData projectPipelineData = new ProjectPipelineDataImpl(this.projectName); + this.getDataRepository().addData(ProjectPipelineData.ID, projectPipelineData); } @Override @@ -69,7 +68,7 @@ public ArDoCoResult runAndSave(File outputDir) { classLogger.info("Starting {}", this.projectName); if (!this.hasPipelineSteps()) { - logger.error("Pipeline has not been defined and initialized beforehand. Aborting!"); + this.logger.error("Pipeline has not been defined and initialized beforehand. Aborting!"); return null; } @@ -80,7 +79,7 @@ public ArDoCoResult runAndSave(File outputDir) { ArDoCoResult arDoCoResult = new ArDoCoResult(this.getDataRepository()); saveOutput(this.projectName, outputDir, arDoCoResult); - if (logger.isInfoEnabled()) { + if (this.logger.isInfoEnabled()) { var duration = Duration.between(startTime, endTime); long minutesPart = duration.toMinutes(); int secondsPart = duration.toSecondsPart(); From 55cc40715ee4bcaf2ca7455526164398c8b2f616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 21:00:50 +0100 Subject: [PATCH 010/115] Build --- .../kastel/mcse/ardoco/core/common/util/CommonUtilities.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 29341a4bc..60dc17597 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -219,9 +219,8 @@ public static void addRecommendedInstancesFromNounMappings(ImmutableList /** * Retrieves a list of similar types in the given model state given the word. * - * @param similarityUtils the similarity utility instance - * @param word the word that might have type names in the model state - * @param modelState the model state containing information about types + * @param word the word that might have type names in the model state + * @param modelState the model state containing information about types * @return List of type names in the model state that are similar to the given word */ public static ImmutableList getSimilarTypes(Word word, LegacyModelExtractionState modelState) { From 6c17d95a177d54fab60f3efe815c6aec3c35e0c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 21:15:16 +0100 Subject: [PATCH 011/115] Fix bug in creation of entities --- .../java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index 8c96c59a3..955e703dd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -32,7 +32,7 @@ protected Entity() { * @param name the name of the entity to be created */ protected Entity(String name) { - this(IdentifierProvider.createId(), name); + this(name, IdentifierProvider.createId()); } protected Entity(String name, String id) { From c87dc3ed4cd534c739cc233d5c3f19a2b26d411d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 21:24:38 +0100 Subject: [PATCH 012/115] Fix minor bug --- .../legacy/LegacyModelExtractionStateByArCoTL.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java index 25a73fb29..8efd5b7e3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java @@ -67,9 +67,9 @@ private static ImmutableList initArchitectureInstances(Architectu MutableList instances = Lists.mutable.empty(); for (ArchitectureItem architectureItem : architectureModel.getEndpoints()) { switch (architectureItem) { - case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); - case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); - case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); + case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); + case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); + case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); } } return instances.toImmutable(); @@ -120,7 +120,7 @@ private static String findType(CodeCompilationUnit unit) { // Default to Class return "Class"; } - if (unit.getLanguage() == ProgrammingLanguages.SHELL) { + if (ProgrammingLanguages.SHELL.equals(unit.getLanguage())) { return "ShellScript"; } throw new IllegalStateException("Unknown type of CodeCompilationUnit"); From 8ecc0051417b939b6a1e420b0bd26a093db42e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 21:41:30 +0100 Subject: [PATCH 013/115] Simplify --- .../mcse/ardoco/core/api/Disambiguation.java | 153 ------------------ .../LegacyModelExtractionStateByArCoTL.java | 2 +- .../api/tracelink/TransitiveTraceLink.java | 4 +- .../wordsim/ConfusablesHelperTest.java | 7 +- .../similarity/wordsim/WordSimUtilsTest.java | 2 - .../jarowinkler/JaroWinklerMeasureTest.java | 40 +++-- .../levenshtein/LevenshteinMeasureTest.java | 6 +- .../measures/ngram/NgramMeasureTest.java | 1 - .../wordsim/vector/VectorUtilsTest.java | 6 +- 9 files changed, 28 insertions(+), 193 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/Disambiguation.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/Disambiguation.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/Disambiguation.java deleted file mode 100644 index 3a9574bc1..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/Disambiguation.java +++ /dev/null @@ -1,153 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api; - -import java.io.IOException; -import java.io.Serializable; -import java.util.*; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; - -/** - * This class represents an abbreviation with a known set of meanings. An abbreviation is a string such as "ArDoCo" and has the meaning "Architecture - * Documentation Consistency". The abbreviation that is disambiguated by the meanings of this class is final, but the meanings can be changed. An instance of - * this class can be serialized and deserialized into JSON using Jackson. - */ -@Deterministic -@JsonSerialize(using = Disambiguation.DisambiguationSerializer.class) -public class Disambiguation implements Comparable, Serializable { - private final String abbreviation; - private final SortedSet meanings; - - public String getAbbreviation() { - return abbreviation; - } - - public SortedSet getMeanings() { - return new TreeSet<>(meanings); - } - - @Override - public int compareTo(Disambiguation o) { - return abbreviation.compareTo(o.abbreviation); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj instanceof Disambiguation other) { - return getAbbreviation().equals(other.getAbbreviation()); - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(getAbbreviation()); - } - - /** - * Used by the Jackson library to serialize a disambiguation into JSON format. - */ - public static class DisambiguationSerializer extends JsonSerializer { - @Override - public void serialize(Disambiguation abbreviation, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { - jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField("abbreviation", abbreviation.abbreviation); - jsonGenerator.writeArrayFieldStart("meanings"); - var meanings = abbreviation.meanings; - for (var meaning : meanings) { - jsonGenerator.writeString(meaning); - } - jsonGenerator.writeEndArray(); - jsonGenerator.writeEndObject(); - } - } - - /** - * Creates a new disambiguation of the provided abbreviation using the given array of meanings. - * - * @param abbreviation the abbreviation that is disambiguated by this instance - * @param meanings an array of meanings for the abbreviation, may be empty - */ - @JsonCreator - public Disambiguation(@JsonProperty("abbreviation") String abbreviation, @JsonProperty("meanings") String[] meanings) { - this(abbreviation, new TreeSet<>(Arrays.stream(meanings).toList())); - } - - /** - * Creates a new disambiguation of the provided abbreviation using the given set of meanings. - * - * @param abbreviation the abbreviation that is disambiguated by this instance - * @param meanings a set of meanings for the abbreviation, may be empty - */ - public Disambiguation(String abbreviation, SortedSet meanings) { - this.abbreviation = abbreviation; - this.meanings = new TreeSet<>(meanings); - } - - /** - * Adds all meanings from another disambiguation to this disambiguation. Be careful, this does not perform any checks regarding the abbreviations. - * - * @param other the other disambiguation - * @return this - */ - public Disambiguation addMeanings(Disambiguation other) { - meanings.addAll(other.meanings); - return this; - } - - /** - * Searches the text for meanings contained by this disambiguation and replaces them with the abbreviation. - * - * @param text the text to search - * @param ignoreCase whether letter case should be ignored when searching for the meanings - * @return the abbreviated text - */ - public String replaceMeaningWithAbbreviation(String text, boolean ignoreCase) { - var abbreviatedText = text; - for (String meaning : meanings) { - String pattern = ignoreCase ? "(?i)" : ""; - pattern += meaning; - abbreviatedText = abbreviatedText.replaceAll(pattern, abbreviation); - } - return abbreviatedText; - } - - /** - * Merges the first map with the second map in a new map. If a key already exists, the disambiguations are merged non-destructively. - * - * @param a the first map - * @param b the second map - * @return a mutable map - */ - - public static SortedMap merge(SortedMap a, SortedMap b) { - var mergedMap = new TreeMap<>(a); - for (var entry : b.entrySet()) { - mergedMap.merge(entry.getKey(), entry.getValue(), Disambiguation::merge); - } - return mergedMap; - } - - /** - * Merges the first disambiguation with the second disambiguation into a new instance. - * - * @param a first ambiguation - * @param b second ambiguation - * @return new merged disambiguation - */ - - public static Disambiguation merge(Disambiguation a, Disambiguation b) { - var temp = new TreeSet<>(a.meanings); - temp.addAll(b.meanings); - return new Disambiguation(a.abbreviation, temp); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java index 8efd5b7e3..c5e5da60a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java @@ -83,7 +83,7 @@ private static ImmutableList initCodeInstances(CodeModel codeMode } private static void fillPackages(Collection packages, List instances) { - for (var modelElement : packages) { + for (var modelElement : packages) { String path = modelElement.getName(); CodeModule parent = modelElement.getParent(); while (parent != null) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java index c6d5d4ef7..a7514a018 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java @@ -28,8 +28,8 @@ public static Optional firstTraceLink, TraceLink secondTraceLink) { - var secondEndpointOfFirstTl = firstTraceLink.asPair().second().getId(); - var firstEndpointOfSecondTl = secondTraceLink.asPair().first().getId(); + var secondEndpointOfFirstTl = firstTraceLink.getSecondEndpoint().getId(); + var firstEndpointOfSecondTl = secondTraceLink.getFirstEndpoint().getId(); return secondEndpointOfFirstTl.equals(firstEndpointOfSecondTl); } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java index bb9b34090..74317fcd0 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java @@ -9,18 +9,15 @@ import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ConfusablesHelper; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; - public class ConfusablesHelperTest { - public static final String example = """ + public static final String EXAMPLE = """ # ! ǃ ⵑ ! """; public static final List homoglyphsExample = Stream.of("!", "ǃ", "ⵑ", "!").map(UnicodeCharacter::valueOf).toList(); @Test void extractHomoglyphsFromLine() { - var homoglyphs = ConfusablesHelper.extractHomoglyphsFromLine(example); + var homoglyphs = ConfusablesHelper.extractHomoglyphsFromLine(EXAMPLE); assertEquals(homoglyphsExample.size(), homoglyphs.size()); assertTrue(homoglyphs.containsAll(homoglyphsExample)); } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java index 25deb3657..43886c4ea 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java @@ -5,8 +5,6 @@ import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; - class WordSimUtilsTest { @Test diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java index af9bf7531..bc6031a02 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java @@ -8,11 +8,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.JaroWinklerMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.UnicodeJaroWinklerSimilarity; class JaroWinklerMeasureTest { - private static final double delta = 0.01; + private static final double DELTA = 0.01; /** * These tests were extracted from the original {@link org.apache.commons.text.similarity.JaroWinklerSimilarity} implementation and should @@ -24,30 +22,30 @@ void testSimilarityDirectly() { assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply(s, s, UnicodeCharacterMatchFunctions.EQUAL)); assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply("foo", null, UnicodeCharacterMatchFunctions.EQUAL)); assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply(null, "foo", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("", "", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("foo", "foo", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.94, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.87, UnicodeJaroWinklerSimilarity.apply("foo", " foo ", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.51, UnicodeJaroWinklerSimilarity.apply("foo", " foo", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("", "a", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("aaapppp", "", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.93, UnicodeJaroWinklerSimilarity.apply("frog", "fog", UnicodeCharacterMatchFunctions.EQUAL), delta); + assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("", "", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("foo", "foo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.94, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.87, UnicodeJaroWinklerSimilarity.apply("foo", " foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.51, UnicodeJaroWinklerSimilarity.apply("foo", " foo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("", "a", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("aaapppp", "", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.93, UnicodeJaroWinklerSimilarity.apply("frog", "fog", UnicodeCharacterMatchFunctions.EQUAL), DELTA); assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("fly", "ant", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("elephant", "hippo", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("hippo", "elephant", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("hippo", "zzzzzzzz", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.88, UnicodeJaroWinklerSimilarity.apply("hello", "hallo", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("ABC Corporation", "ABC Corp", UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.95, UnicodeJaroWinklerSimilarity.apply("D N H Enterprises Inc", "D & H Enterprises, Inc.", UnicodeCharacterMatchFunctions.EQUAL), delta); + assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("elephant", "hippo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("hippo", "elephant", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("hippo", "zzzzzzzz", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.88, UnicodeJaroWinklerSimilarity.apply("hello", "hallo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("ABC Corporation", "ABC Corp", UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.95, UnicodeJaroWinklerSimilarity.apply("D N H Enterprises Inc", "D & H Enterprises, Inc.", UnicodeCharacterMatchFunctions.EQUAL), DELTA); assertEquals(0.94, UnicodeJaroWinklerSimilarity.apply("My Gym Children's Fitness Center", "My Gym. Childrens Fitness", - UnicodeCharacterMatchFunctions.EQUAL), delta); - assertEquals(0.89, UnicodeJaroWinklerSimilarity.apply("PENNSYLVANIA", "PENNCISYLVNIA", UnicodeCharacterMatchFunctions.EQUAL), delta); + UnicodeCharacterMatchFunctions.EQUAL), DELTA); + assertEquals(0.89, UnicodeJaroWinklerSimilarity.apply("PENNSYLVANIA", "PENNCISYLVNIA", UnicodeCharacterMatchFunctions.EQUAL), DELTA); } @Test void testHomoglyphSimilarity() { var measure = new JaroWinklerMeasure(); - assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), delta); + assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), DELTA); } } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java index 5b0bbfe49..2be083fd5 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java @@ -8,11 +8,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.LevenshteinMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.UnicodeLevenshteinDistance; class LevenshteinMeasureTest { - private static final double delta = 0.01; + private static final double DELTA = 0.01; /** * These tests were extracted from the original {@link org.apache.commons.text.similarity.LevenshteinDistance} implementation and should still hold true. @@ -36,6 +34,6 @@ void testSimilarityDirectly() { @Test void testHomoglyphSimilarity() { var measure = new LevenshteinMeasure(); - assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), delta); + assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), DELTA); } } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java index b02253915..b7b1dcaf5 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java @@ -12,7 +12,6 @@ import org.junit.jupiter.api.Test; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram.NgramMeasure; class NgramMeasureTest { diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java index c0b4696bd..218fc5f65 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java @@ -11,8 +11,6 @@ import org.junit.jupiter.api.Test; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorUtils; - class VectorUtilsTest { record Example(float[] firstVec, float[] secondVec, double expectedCosineSimilarity) { @@ -78,7 +76,7 @@ void testAdd() { assertThrows(NullPointerException.class, () -> VectorUtils.add(new double[0], null)); assertThrows(IllegalArgumentException.class, () -> VectorUtils.add(new double[1], new double[2])); - double[] result = new double[] { 1.0, 2.0 }; + double[] result = { 1.0, 2.0 }; VectorUtils.add(result, new double[] { 3.0, 4.0 }); assertArrayEquals(new double[] { 4.0, 6.0 }, result); } @@ -87,7 +85,7 @@ void testAdd() { void testScale() { assertThrows(NullPointerException.class, () -> VectorUtils.scale(null, 1.0)); - double[] result = new double[] { 1.0, 2.0 }; + double[] result = { 1.0, 2.0 }; VectorUtils.scale(result, 2.0); assertArrayEquals(new double[] { 2.0, 4.0 }, result); } From 89f892129b28c8e916674dce9d8ad58f46dfc920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 22:18:32 +0100 Subject: [PATCH 014/115] Remove unicode handling --- framework/common/pom.xml | 5 - .../textextraction/TextStateStrategy.java | 4 +- .../common/similarity/SimilarityUtils.java | 2 +- .../similarity/wordsim/ComparisonContext.java | 38 +- .../similarity/wordsim/ConfusablesHelper.java | 102 ----- .../similarity/wordsim/UnicodeCharacter.java | 88 ---- .../UnicodeCharacterMatchFunctions.java | 25 -- .../wordsim/UnicodeCharacterSequence.java | 67 --- .../similarity/wordsim/WordSimMeasure.java | 4 +- .../similarity/wordsim/WordSimUtils.java | 18 +- .../measures/equality/EqualityMeasure.java | 15 +- .../wordsim/measures/glove/GloveMeasure.java | 4 +- .../jarowinkler/JaroWinklerMeasure.java | 8 +- .../UnicodeJaroWinklerSimilarity.java | 166 -------- .../levenshtein/LevenshteinMeasure.java | 20 +- .../UnicodeLevenshteinDistance.java | 396 ------------------ .../wordsim/ConfusablesHelperTest.java | 36 -- .../jarowinkler/JaroWinklerMeasureTest.java | 51 --- .../levenshtein/LevenshteinMeasureTest.java | 39 -- 19 files changed, 44 insertions(+), 1044 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java diff --git a/framework/common/pom.xml b/framework/common/pom.xml index eee4eed97..43406d6f8 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -27,11 +27,6 @@ commons-io commons-io - - org.apache.commons - commons-compress - 1.26.2 - org.apache.commons commons-lang3 diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index 5ab95bc4c..4e6224488 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -15,8 +15,8 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface for strategies for the text state. Responsible for creating {@link NounMapping NounMappings}, and - * {@link edu.kit.kastel.mcse.ardoco.core.api.Disambiguation Disambiguations} from their constituent parts in a variety of situations. + * The Interface for strategies for the text state. Responsible for creating {@link NounMapping NounMappings} from their constituent parts in a variety of + * situations. */ public interface TextStateStrategy extends Serializable { /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index e9ad7495a..3256b5e19 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -30,7 +30,7 @@ * This class is a utility class. */ @Deterministic -public final class SimilarityUtils implements Serializable { +public final class SimilarityUtils { private static final SimilarityUtils INSTANCE = new SimilarityUtils(new WordSimUtils()); private final WordSimUtils wordSimUtils; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java index 12344ce71..5a6020d24 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java @@ -8,53 +8,40 @@ /** * A ComparisonContext contains all information that can be used for comparing similarity between objects that occur within ArDoCo. The fields * {@link #firstString} and {@link #secondString} are always not null. The field {@link #lemmatize} decides whether the lemmatized version of both words should - * be used for comparison. The field {@link #characterMatch} provides a function to determine whether two {@link UnicodeCharacter UnicodeCharacters} are - * considered to be a match by the {@link WordSimMeasure WordSimMeasures}. + * be used for comparison. */ -public record ComparisonContext(String firstString, String secondString, Word firstWord, Word secondWord, boolean lemmatize, - UnicodeCharacterMatchFunctions characterMatch) { - - /** - * Constructs a string-based context with a given match function and no lemmatization. - * - * @param firstString the first string - * @param secondString the second string - * @param characterMatch the match function - */ - public ComparisonContext(String firstString, String secondString, UnicodeCharacterMatchFunctions characterMatch) { - this(firstString, secondString, null, null, false, characterMatch); - } +public record ComparisonContext(String firstString, String secondString, Word firstWord, Word secondWord, boolean lemmatize) { /** * Constructs a string-based context with the default match function and no lemmatization. - * + * * @param firstString the first string * @param secondString the second string */ public ComparisonContext(String firstString, String secondString) { - this(firstString, secondString, null, null, false, UnicodeCharacterMatchFunctions.EQUAL); + this(firstString, secondString, null, null, false); } /** * Constructs a string-based context with the default match function. - * + * * @param firstString the first string * @param secondString the second string * @param lemmatize whether the string should be lemmatized */ public ComparisonContext(String firstString, String secondString, boolean lemmatize) { - this(firstString, secondString, null, null, lemmatize, UnicodeCharacterMatchFunctions.EQUAL); + this(firstString, secondString, null, null, lemmatize); } /** * Constructs a word-based context with the default match function. - * + * * @param firstWord the first word * @param secondWord the second word * @param lemmatize whether the words should be lemmatized */ public ComparisonContext(Word firstWord, Word secondWord, boolean lemmatize) { - this(firstWord.getText(), secondWord.getText(), firstWord, secondWord, lemmatize, UnicodeCharacterMatchFunctions.EQUAL); + this(firstWord.getText(), secondWord.getText(), firstWord, secondWord, lemmatize); } /** @@ -65,7 +52,7 @@ public ComparisonContext(Word firstWord, Word secondWord, boolean lemmatize) { */ public String firstTerm() { - return findAppropriateTerm(firstString, firstWord); + return this.findAppropriateTerm(this.firstString, this.firstWord); } /** @@ -76,17 +63,16 @@ public String firstTerm() { */ public String secondTerm() { - return findAppropriateTerm(secondString, secondWord); + return this.findAppropriateTerm(this.secondString, this.secondWord); } private String findAppropriateTerm(String string, Word word) { Objects.requireNonNull(string); if (word != null) { - return lemmatize ? word.getLemma() : word.getText(); - } else { - return string; + return this.lemmatize ? word.getLemma() : word.getText(); } + return string; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java deleted file mode 100644 index fbed802c7..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelper.java +++ /dev/null @@ -1,102 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.MissingResourceException; -import java.util.stream.Stream; - -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.impl.factory.Lists; -import org.eclipse.collections.impl.list.mutable.FastList; - -/** - * This class provides functionality regarding confusables and homoglyphs of a {@link UnicodeCharacter}. The information is based on the confusablesSummary.txt, that is published as part of the Unicode Technical Standard. - */ -public class ConfusablesHelper { - private ConfusablesHelper() { - throw new IllegalStateException("Cannot be instantiated"); - } - - private static final LinkedHashMap> homoglyphs = new LinkedHashMap<>(); - - private static final String CONFUSABLES_SUMMARY = "/wordsim/confusablesSummary.txt"; - - private static final String SEPARATOR = "\t"; - - static { - parseConfusablesSummary(); - } - - /** - * {@return the list of homoglyphs contained in a line} - * - * @param line the line - */ - static FastList extractHomoglyphsFromLine(String line) { - if (!line.startsWith("#" + SEPARATOR)) - return FastList.newList(); - - MutableList confusables = Lists.mutable.of(line.split("\\R|\\s")); - confusables.remove(0); //Remove leading # symbol - - // TODO skip confusables that consist of multiple unicode characters - // Filter because only homoglyphs are interesting - return FastList.newList(confusables.stream() - .filter(c -> c.codePointCount(0, c.length()) == 1) - .mapToInt(c -> c.codePointAt(0)) - .mapToObj(UnicodeCharacter::valueOf) - .toList()); - } - - /** - * Parses the confusablesSummary.txt line by line and build the confusables map. - */ - private static void parseConfusablesSummary() { - try (InputStream is = ConfusablesHelper.class.getResourceAsStream(CONFUSABLES_SUMMARY)) { - if (is == null) - throw new MissingResourceException("Could not find the resource " + CONFUSABLES_SUMMARY, File.class.getSimpleName(), CONFUSABLES_SUMMARY); - try (BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) { - String line; - while ((line = br.readLine()) != null) { - var extracted = extractHomoglyphsFromLine(line); - if (!extracted.isEmpty()) { - for (var unicodeCharacter : extracted) { - homoglyphs.merge(unicodeCharacter, extracted, (oldL, newL) -> FastList.newList(Stream.concat(oldL.stream(), newL.stream()) - .toList())); - } - } - } - } - } catch (IOException ex) { - throw new IllegalStateException(ex); - } - } - - /** - * {@return the list of Unicode characters that are considered homoglyphs of the character} - * - * @param unicodeCharacter the character - */ - public static List getHomoglyphs(UnicodeCharacter unicodeCharacter) { - return homoglyphs.getOrDefault(unicodeCharacter, FastList.newList()); - } - - /** - * {@return whether two Unicode characters are considered homoglyphs} Always true for equal characters. The relationship is symmetric, but not transitive. - * - * @param a the first character - * @param b the second character - */ - public static boolean areHomoglyphs(UnicodeCharacter a, UnicodeCharacter b) { - return a.equals(b) || getHomoglyphs(a).contains(b); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java deleted file mode 100644 index 15b307744..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacter.java +++ /dev/null @@ -1,88 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.impl.factory.Lists; - -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; - -/** - * Represents a Unicode character corresponding to a particular Unicode code point. Refer to the - * Unicode Glossary - * and the Java {@link Character} documentation for an explanation of code points. Java {@link Character} instances and the corresponding primitive {@code char} - * can not represent all unicode characters in a single instance due to historic reasons. - */ -@Deterministic -public final class UnicodeCharacter implements Serializable { - private static final Map integerToUnicode = new LinkedHashMap<>(); - - private final int codePoint; - - public int getCodePoint() { - return codePoint; - } - - private final String representation; - - public String getRepresentation() { - return representation; - } - - public static ImmutableList from(String input) { - return Lists.immutable.fromStream(Arrays.stream(input.codePoints().toArray()).mapToObj(UnicodeCharacter::valueOf)); - } - - public static String toString(List unicodeCharacters) { - return unicodeCharacters.stream().map(UnicodeCharacter::toString).reduce("", (a, b) -> a + b); - } - - public static String toUnicodeCharacter(int codePoint) { - return Character.toString(codePoint); - } - - public String toString() { - return toUnicodeCharacter(codePoint); - } - - public static UnicodeCharacter valueOf(int codePoint) { - return integerToUnicode.computeIfAbsent(codePoint, UnicodeCharacter::new); - } - - public static UnicodeCharacter valueOf(String representation) { - if (representation.codePointCount(0, representation.length()) != 1) { - throw new IllegalArgumentException(String.format("%s is not a valid unicode character", representation)); - } - var codePoint = representation.codePointAt(0); - return integerToUnicode.computeIfAbsent(codePoint, UnicodeCharacter::new); - } - - private UnicodeCharacter(int codePoint) { - this(codePoint, toUnicodeCharacter(codePoint)); - } - - private UnicodeCharacter(int codePoint, String representation) { - this.codePoint = codePoint; - this.representation = representation; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj instanceof UnicodeCharacter oth) - return this.codePoint == oth.codePoint; - return false; - } - - @Override - public int hashCode() { - return Objects.hashCode(codePoint); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java deleted file mode 100644 index 76b181f7b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterMatchFunctions.java +++ /dev/null @@ -1,25 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; - -import java.io.Serializable; -import java.util.function.BiFunction; - -public enum UnicodeCharacterMatchFunctions implements BiFunction, Serializable { - EQUAL(UnicodeCharacter::equals), - - EQUAL_OR_HOMOGLYPH((a, b) -> a.equals(b) || ConfusablesHelper.areHomoglyphs(a, b)); - - private final BiFunctionSerializable function; - - UnicodeCharacterMatchFunctions(BiFunctionSerializable function) { - this.function = function; - } - - @Override - public Boolean apply(UnicodeCharacter unicodeCharacter, UnicodeCharacter unicodeCharacter2) { - return function.apply(unicodeCharacter, unicodeCharacter2); - } - - public interface BiFunctionSerializable extends BiFunction, Serializable { - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java deleted file mode 100644 index b764508a3..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/UnicodeCharacterSequence.java +++ /dev/null @@ -1,67 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; - -import java.util.Objects; -import java.util.stream.IntStream; - -import org.eclipse.collections.api.list.ImmutableList; - -/** - * {@link UnicodeCharacter} equivalent of {@link CharSequence}. - * - * @param characters list containing the sequence - */ -public record UnicodeCharacterSequence(ImmutableList characters) { - public static UnicodeCharacterSequence valueOf(String input) { - return new UnicodeCharacterSequence(UnicodeCharacter.from(input)); - } - - public UnicodeCharacter charAt(int index) { - return characters.get(index); - } - - public IntStream codePoints() { - return characters.stream().mapToInt(UnicodeCharacter::getCodePoint); - } - - public int length() { - return characters.size(); - } - - public UnicodeCharacterSequence subSequence(int start, int end) { - return new UnicodeCharacterSequence(characters.subList(start, end)); - } - - @Override - public String toString() { - return UnicodeCharacter.toString(characters.toList()); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj instanceof UnicodeCharacterSequence oth) - return characters.containsAll(oth.characters.toList()) && characters.size() == oth.characters.size(); - return false; - } - - /** - * {@return whether all characters of both sequence match} - * - * @param oth the other UnicodeCharacterSequence - * @param characterMatch the function applied to determine if two UnicodeCharacters match - */ - public boolean match(UnicodeCharacterSequence oth, UnicodeCharacterMatchFunctions characterMatch) { - if (this == oth) - return true; - if (length() != oth.length()) - return false; - return characters.zip(oth.characters).allSatisfy(p -> characterMatch.apply(p.getOne(), p.getTwo())); - } - - @Override - public int hashCode() { - return Objects.hash(characters); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java index 97ca8f0cb..afca21569 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java @@ -1,12 +1,10 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; -import java.io.Serializable; - /** * A measure that can determine whether two words from a {@link ComparisonContext} are similar. */ -public interface WordSimMeasure extends Serializable { +public interface WordSimMeasure { /** * Evaluates whether the words from the given {@link ComparisonContext} are similar. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java index 5413c6955..5864166a6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java @@ -1,7 +1,6 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Objects; @@ -25,12 +24,11 @@ * Any calls that do not provide their own measures or strategies will utilize them. As of right now, no protections against simultaneous write access from * multiple threads exist. Therefore, this class is not threadsafe. */ -public class WordSimUtils implements Serializable { +public class WordSimUtils { private MutableList measures = Lists.mutable.withAll(WordSimLoader.loadUsingProperties()); private ComparisonStrategy strategy = ComparisonStrategy.AT_LEAST_ONE; private SimilarityStrategy similarityStrategy = new AverageStrategy(); - private UnicodeCharacterMatchFunctions characterMatch = UnicodeCharacterMatchFunctions.EQUAL; /** * Sets which measures should be used for similarity comparison. The specified collection of measures will be used for all subsequent comparisons. @@ -69,14 +67,6 @@ public void setStrategy(SimilarityStrategy strategy) { this.similarityStrategy = strategy; } - public void setCharacterMatchFunction(UnicodeCharacterMatchFunctions characterMatch) { - this.characterMatch = characterMatch; - } - - public UnicodeCharacterMatchFunctions getCharacterMatchFunction() { - return this.characterMatch; - } - /** * Evaluates whether the words from the given {@link ComparisonContext} are similar using the specified comparison strategy. * @@ -171,7 +161,7 @@ public boolean areWordsSimilar(Word firstWord, Word secondWord, ComparisonStrate * @return Returns {@code true} if the default strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, Word secondWord) { - return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, this.characterMatch), this.strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false), this.strategy); } /** @@ -183,7 +173,7 @@ public boolean areWordsSimilar(String firstWord, Word secondWord) { * @return Returns {@code true} if the given strategy considers the words similar enough. */ public boolean areWordsSimilar(String firstWord, Word secondWord, ComparisonStrategy strategy) { - return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false, this.characterMatch), strategy); + return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false), strategy); } /** @@ -203,7 +193,7 @@ public double getSimilarity(String firstWord, String secondWord, SimilarityStrat return strategy.getSimilarity(new ComparisonContext(ignoreCase ? firstWord.toLowerCase() : firstWord, ignoreCase ? secondWord.toLowerCase() : - secondWord, null, null, false, this.characterMatch), allMeasuresExceptDefault); + secondWord, null, null, false), allMeasuresExceptDefault); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java index 52e6b53f5..dd4cf16bd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java @@ -1,28 +1,23 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality; -import java.util.Locale; - import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * This word similarity measure just checks whether the most appropriate string representations of the passed objects are equal. - * Equality of two characters is determined using the provided {@link ComparisonContext#characterMatch() Character Match Function}. - * Letter-casing is not considered. + * This word similarity measure just checks whether the most appropriate string representations of the passed objects are equal (ignoring case). + * */ public class EqualityMeasure implements WordSimMeasure { + private static final long serialVersionUID = -3748510855999411788L; @Override public boolean areWordsSimilar(ComparisonContext ctx) { - var firstTerm = UnicodeCharacterSequence.valueOf(ctx.firstTerm().toLowerCase(Locale.ENGLISH)); - var secondTerm = UnicodeCharacterSequence.valueOf(ctx.secondTerm().toLowerCase(Locale.ENGLISH)); - return firstTerm.match(secondTerm, ctx.characterMatch()); + return ctx.firstTerm().equalsIgnoreCase(ctx.secondTerm()); } @Override public double getSimilarity(ComparisonContext ctx) { - return areWordsSimilar(ctx) ? 1 : 0; + return this.areWordsSimilar(ctx) ? 1 : 0; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java index af97c7d9c..1abc90dcc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java @@ -20,6 +20,8 @@ */ public class GloveMeasure extends VectorBasedWordSimMeasure { + private static final long serialVersionUID = 1436951415138215284L; + private static final Logger LOGGER = LoggerFactory.getLogger(GloveMeasure.class); private final double similarityThreshold; @@ -47,7 +49,7 @@ public GloveMeasure(double similarityThreshold) throws IllegalArgumentException @Override public boolean areWordsSimilar(ComparisonContext ctx) { - return getSimilarity(ctx) >= this.similarityThreshold; + return this.getSimilarity(ctx) >= this.similarityThreshold; } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java index df864bddf..e7c5d743c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java @@ -1,6 +1,8 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; +import org.apache.commons.text.similarity.JaroWinklerSimilarity; + import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; @@ -10,6 +12,8 @@ */ public class JaroWinklerMeasure implements WordSimMeasure { + private final JaroWinklerSimilarity jaroWinklerSimilarity = new JaroWinklerSimilarity(); + private final double similarityThreshold; /** @@ -35,13 +39,13 @@ public JaroWinklerMeasure(double similarityThreshold) throws IllegalArgumentExce @Override public boolean areWordsSimilar(ComparisonContext ctx) { - double similarity = getSimilarity(ctx); + double similarity = this.getSimilarity(ctx); return similarity >= this.similarityThreshold; } @Override public double getSimilarity(ComparisonContext ctx) { - return UnicodeJaroWinklerSimilarity.apply(ctx.firstTerm(), ctx.secondTerm(), ctx.characterMatch()); + return this.jaroWinklerSimilarity.apply(ctx.firstTerm(), ctx.secondTerm()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java deleted file mode 100644 index a8d6aa6a4..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/UnicodeJaroWinklerSimilarity.java +++ /dev/null @@ -1,166 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; - -import java.io.Serializable; -import java.util.Arrays; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; - -/** - * A similarity algorithm indicating the percentage of matched characters between two character sequences. - * - *

- * The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. Winkler increased this measure for - * matching initial characters. - *

- * - *

- * This implementation is based on the Jaro Winkler similarity algorithm from - * http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance. - *

- * - *

- * This code is a modified version of {@link org.apache.commons.text.similarity.JaroWinklerSimilarity} provided by Apache Commons Text. It was adapted to use - * {@link UnicodeCharacter UnicodeCharacters} instead of Java's native {@link Character Characters} and allows for specifying a function that determines a - * character match. - *

- */ -public final class UnicodeJaroWinklerSimilarity implements Serializable { - /** - * This method returns the Jaro-Winkler string matches, half transpositions, prefix array. - * - * @param first the first string to be matched - * @param second the second string to be matched - * @param characterMatch the function used to determine a match between two {@link UnicodeCharacter UnicodeCharacters} - * @return mtp array containing: matches, half transpositions, and prefix - */ - private static int[] matches(UnicodeCharacterSequence first, UnicodeCharacterSequence second, UnicodeCharacterMatchFunctions characterMatch) { - final UnicodeCharacterSequence max; - final UnicodeCharacterSequence min; - if (first.length() > second.length()) { - max = first; - min = second; - } else { - max = second; - min = first; - } - final int range = Math.max(max.length() / 2 - 1, 0); - final int[] matchIndexes = new int[min.length()]; - Arrays.fill(matchIndexes, -1); - final boolean[] matchFlags = new boolean[max.length()]; - int matches = 0; - for (int mi = 0; mi < min.length(); mi++) { - UnicodeCharacter c1 = min.charAt(mi); - for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) { - if (!matchFlags[xi] && characterMatch.apply(c1, max.charAt(xi))) { - matchIndexes[mi] = xi; - matchFlags[xi] = true; - matches++; - break; - } - } - } - final UnicodeCharacter[] ms1 = new UnicodeCharacter[matches]; - final UnicodeCharacter[] ms2 = new UnicodeCharacter[matches]; - for (int i = 0, si = 0; i < min.length(); i++) { - if (matchIndexes[i] != -1) { - ms1[si] = min.charAt(i); - si++; - } - } - for (int i = 0, si = 0; i < max.length(); i++) { - if (matchFlags[i]) { - ms2[si] = max.charAt(i); - si++; - } - } - int halfTranspositions = 0; - for (int mi = 0; mi < ms1.length; mi++) { - if (!characterMatch.apply(ms1[mi], ms2[mi])) { - halfTranspositions++; - } - } - int prefix = 0; - for (int mi = 0; mi < Math.min(4, min.length()); mi++) { - if (!characterMatch.apply(first.charAt(mi), second.charAt(mi))) { - break; - } - prefix++; - } - return new int[] { matches, halfTranspositions, prefix }; - } - - /** - * Computes the Jaro Winkler Similarity between two character sequences. - * - *
-     * sim.apply(null, null) = IllegalArgumentException
-     * sim.apply("foo", null) = IllegalArgumentException
-     * sim.apply(null, "foo") = IllegalArgumentException
-     * sim.apply("", "") = 1.0
-     * sim.apply("foo", "foo") = 1.0
-     * sim.apply("foo", "foo ") = 0.94
-     * sim.apply("foo", "foo ") = 0.91
-     * sim.apply("foo", " foo ") = 0.87
-     * sim.apply("foo", " foo") = 0.51
-     * sim.apply("", "a") = 0.0
-     * sim.apply("aaapppp", "") = 0.0
-     * sim.apply("frog", "fog") = 0.93
-     * sim.apply("fly", "ant") = 0.0
-     * sim.apply("elephant", "hippo") = 0.44
-     * sim.apply("hippo", "elephant") = 0.44
-     * sim.apply("hippo", "zzzzzzzz") = 0.0
-     * sim.apply("hello", "hallo") = 0.88
-     * sim.apply("ABC Corporation", "ABC Corp") = 0.91
-     * sim.apply("D N H Enterprises Inc", "D & H Enterprises, Inc.") = 0.95
-     * sim.apply("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.94
-     * sim.apply("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
-     * 
- * - * @param left the first UnicodeCharacterSequence, must not be null - * @param right the second UnicodeCharacterSequence, must not be null - * @param characterMatch the function used to determine a match between two {@link UnicodeCharacter UnicodeCharacters} - * @return result similarity - * @throws IllegalArgumentException if either CharSequence input is {@code null} - */ - public static Double apply(UnicodeCharacterSequence left, UnicodeCharacterSequence right, UnicodeCharacterMatchFunctions characterMatch) { - final double defaultScalingFactor = 0.1; - - if (left == null || right == null) { - throw new IllegalArgumentException("UnicodeCharSequences must not be null"); - } - - if (left.match(right, characterMatch)) - return 1d; - - final int[] mtp = matches(left, right, characterMatch); - final double m = mtp[0]; - if (m == 0) { - return 0d; - } - final double j = (m / left.length() + m / right.length() + (m - (double) mtp[1] / 2) / m) / 3; - return j < 0.7d ? j : j + defaultScalingFactor * mtp[2] * (1d - j); - } - - /** - * Computes the Jaro Winkler Similarity between two strings. - * - * @param left the first String, must not be null - * @param right the second String, must not be null - * @param characterMatch the function used to determine a match between two {@link UnicodeCharacter UnicodeCharacters} - * @return result similarity - * @throws IllegalArgumentException if either CharSequence input is {@code null} - */ - public static Double apply(String left, String right, UnicodeCharacterMatchFunctions characterMatch) { - if (left == null || right == null) { - throw new IllegalArgumentException("Strings must not be null"); - } - - if (left.equals(right)) - return 1d; - - return apply(UnicodeCharacterSequence.valueOf(left), UnicodeCharacterSequence.valueOf(right), characterMatch); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java index a30f1f7c5..49626ab43 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java @@ -1,8 +1,9 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; +import org.apache.commons.text.similarity.LevenshteinDistance; + import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; @@ -22,7 +23,7 @@ */ public class LevenshteinMeasure implements WordSimMeasure { - private final UnicodeLevenshteinDistance levenshteinDistance = new UnicodeLevenshteinDistance(); + private final LevenshteinDistance levenshteinDistance = new LevenshteinDistance(); private final int minLength; private final int maxDistance; private final double threshold; @@ -66,22 +67,21 @@ public boolean areWordsSimilar(ComparisonContext ctx) { String secondWord = ctx.secondTerm().toLowerCase(); int maxDynamicDistance = (int) Math.min(this.maxDistance, this.threshold * Math.min(firstWord.length(), secondWord.length())); - int distance = this.levenshteinDistance.apply(firstWord, secondWord, ctx.characterMatch()); + int distance = this.levenshteinDistance.apply(firstWord, secondWord); if (firstWord.length() <= this.minLength) { return distance <= this.maxDistance && (secondWord.contains(firstWord) || firstWord.contains(secondWord)); - } else { - return distance <= maxDynamicDistance; } + return distance <= maxDynamicDistance; } @Override public double getSimilarity(ComparisonContext ctx) { - //FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already - var firstWord = UnicodeCharacterSequence.valueOf(ctx.firstTerm().toLowerCase()); - var secondWord = UnicodeCharacterSequence.valueOf(ctx.secondTerm().toLowerCase()); - return 1.0 - this.levenshteinDistance.apply(ctx.firstTerm(), ctx.secondTerm(), ctx.characterMatch()) / (double) Math.max(Math.max(firstWord.length(), - secondWord.length()), 1); + // FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already + String firstWord = ctx.firstTerm().toLowerCase(); + String secondWord = ctx.secondTerm().toLowerCase(); + int distance = this.levenshteinDistance.apply(firstWord, secondWord); + return 1.0 - (distance / (double) Math.max(firstWord.length(), secondWord.length())); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java deleted file mode 100644 index 111d5401e..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/UnicodeLevenshteinDistance.java +++ /dev/null @@ -1,396 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; - -import java.io.Serializable; -import java.util.Arrays; - -import org.apache.commons.text.similarity.LevenshteinDistance; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacter; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterSequence; - -/** - * An algorithm for measuring the difference between two character sequences. - * - *

- * This is the number of changes needed to change one sequence into another, where each change is a single character modification (deletion, insertion or - * substitution). - *

- * - *

- * This code is a modified version of {@link org.apache.commons.text.similarity.LevenshteinDistance} provided by Apache Commons Text. It was adapted to use - * {@link UnicodeCharacter UnicodeCharacters} instead of Java's native {@link Character Characters} and allows for specifying a function that determines a - * character match. - *

- * - * @since 1.0 - */ -public class UnicodeLevenshteinDistance implements Serializable { - - /** - * Default instance. - */ - private static final LevenshteinDistance DEFAULT_INSTANCE = new LevenshteinDistance(); - - /** - * Gets the default instance. - * - * @return The default instance - */ - public static LevenshteinDistance getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - /** - * Find the Levenshtein distance between two CharSequences if it's less than or equal to a given threshold. - * - *

- * This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield and Chas Emerick's implementation of the Levenshtein distance - * algorithm from http://www.merriampark.com/ld.htm - *

- * - *
-     * limitedCompare(null, *, *) = IllegalArgumentException
-     * limitedCompare(*, null, *) = IllegalArgumentException
-     * limitedCompare(*, *, -1) = IllegalArgumentException
-     * limitedCompare("","", 0) = 0
-     * limitedCompare("aaapppp", "", 8) = 7
-     * limitedCompare("aaapppp", "", 7) = 7
-     * limitedCompare("aaapppp", "", 6)) = -1
-     * limitedCompare("elephant", "hippo", 7) = 7
-     * limitedCompare("elephant", "hippo", 6) = -1
-     * limitedCompare("hippo", "elephant", 7) = 7
-     * limitedCompare("hippo", "elephant", 6) = -1
-     * 
- * - * @param left the first UnicodeCharacterSequence, must not be null - * @param right the second UnicodeCharacterSequence, must not be null - * @param threshold the target threshold, must not be negative - * @param characterMatch the function used to determine a match between two {@link UnicodeCharacter UnicodeCharacters} - * @return result distance, or -1 - */ - private static int limitedCompare(UnicodeCharacterSequence left, UnicodeCharacterSequence right, final int threshold, - UnicodeCharacterMatchFunctions characterMatch) { // NOPMD - if (left == null || right == null) { - throw new IllegalArgumentException("CharSequences must not be null"); - } - if (threshold < 0) { - throw new IllegalArgumentException("Threshold must not be negative"); - } - - /* - * This implementation only computes the distance if it's less than or - * equal to the threshold value, returning -1 if it's greater. The - * advantage is performance: unbounded distance is O(nm), but a bound of - * k allows us to reduce it to O(km) time by only computing a diagonal - * stripe of width 2k + 1 of the cost table. It is also possible to use - * this to compute the unbounded Levenshtein distance by starting the - * threshold at 1 and doubling each time until the distance is found; - * this is O(dm), where d is the distance. - * - * One subtlety comes from needing to ignore entries on the border of - * our stripe eg. p[] = |#|#|#|* d[] = *|#|#|#| We must ignore the entry - * to the left of the leftmost member We must ignore the entry above the - * rightmost member - * - * Another subtlety comes from our stripe running off the matrix if the - * strings aren't of the same size. Since string s is always swapped to - * be the shorter of the two, the stripe will always run off to the - * upper right instead of the lower left of the matrix. - * - * As a concrete example, suppose s is of length 5, t is of length 7, - * and our threshold is 1. In this case we're going to walk a stripe of - * length 3. The matrix would look like so: - * - *
-         *    1 2 3 4 5
-         * 1 |#|#| | | |
-         * 2 |#|#|#| | |
-         * 3 | |#|#|#| |
-         * 4 | | |#|#|#|
-         * 5 | | | |#|#|
-         * 6 | | | | |#|
-         * 7 | | | | | |
-         * 
- * - * Note how the stripe leads off the table as there is no possible way - * to turn a string of length 5 into one of length 7 in edit distance of - * 1. - * - * Additionally, this implementation decreases memory usage by using two - * single-dimensional arrays and swapping them back and forth instead of - * allocating an entire n by m matrix. This requires a few minor - * changes, such as immediately returning when it's detected that the - * stripe has run off the matrix and initially filling the arrays with - * large values so that entries we don't compute are ignored. - * - * See Algorithms on Strings, Trees and Sequences by Dan Gusfield for - * some discussion. - */ - - int n = left.length(); // length of left - int m = right.length(); // length of right - - // if one string is empty, the edit distance is necessarily the length - // of the other - if (n == 0) { - return m <= threshold ? m : -1; - } - if (m == 0) { - return n <= threshold ? n : -1; - } - - if (n > m) { - // swap the two strings to consume less memory - final UnicodeCharacterSequence tmp = left; - left = right; - right = tmp; - n = m; - m = right.length(); - } - - // the edit distance cannot be less than the length difference - if (m - n > threshold) { - return -1; - } - - int[] p = new int[n + 1]; // 'previous' cost array, horizontally - int[] d = new int[n + 1]; // cost array, horizontally - int[] tempD; // placeholder to assist in swapping p and d - - // fill in starting table values - final int boundary = Math.min(n, threshold) + 1; - for (int i = 0; i < boundary; i++) { - p[i] = i; - } - // these fills ensure that the value above the rightmost entry of our - // stripe will be ignored in following loop iterations - Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE); - Arrays.fill(d, Integer.MAX_VALUE); - - // iterates through t - for (int j = 1; j <= m; j++) { - final UnicodeCharacter rightJ = right.charAt(j - 1); // jth character of right - d[0] = j; - - // compute stripe indices, constrain to array size - final int min = Math.max(1, j - threshold); - final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold); - - // ignore entry left of leftmost - if (min > 1) { - d[min - 1] = Integer.MAX_VALUE; - } - - int lowerBound = Integer.MAX_VALUE; - // iterates through [min, max] in s - for (int i = min; i <= max; i++) { - if (characterMatch.apply(left.charAt(i - 1), rightJ)) { - // diagonally left and up - d[i] = p[i - 1]; - } else { - // 1 + minimum of cell to the left, to the top, diagonally - // left and up - d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]); - } - lowerBound = Math.min(lowerBound, d[i]); - } - // if the lower bound is greater than the threshold, then exit early - if (lowerBound > threshold) { - return -1; - } - - // copy current distance counts to 'previous row' distance counts - tempD = p; - p = d; - d = tempD; - } - - // if p[n] is greater than the threshold, there's no guarantee on it - // being the correct - // distance - if (p[n] <= threshold) { - return p[n]; - } - return -1; - } - - /** - * Finds the Levenshtein distance between two Strings. - * - *

A higher score indicates a greater distance.

- * - *

The previous implementation of the Levenshtein distance algorithm - * was from - * https://web.archive.org/web/20120526085419/http://www.merriampark.com/ldjava.htm

- * - *

This implementation only need one single-dimensional arrays of length s.length() + 1

- * - *
-     * unlimitedCompare(null, *) = IllegalArgumentException
-     * unlimitedCompare(*, null) = IllegalArgumentException
-     * unlimitedCompare("","") = 0
-     * unlimitedCompare("","a") = 1
-     * unlimitedCompare("aaapppp", "") = 7
-     * unlimitedCompare("frog", "fog") = 1
-     * unlimitedCompare("fly", "ant") = 3
-     * unlimitedCompare("elephant", "hippo") = 7
-     * unlimitedCompare("hippo", "elephant") = 7
-     * unlimitedCompare("hippo", "zzzzzzzz") = 8
-     * unlimitedCompare("hello", "hallo") = 1
-     * 
- * - * @param left the first UnicodeCharacterSequence, must not be null - * @param right the second UnicodeCharacterSequence, must not be null - * @param characterMatch the function used to determine a match between two {@link UnicodeCharacter UnicodeCharacters} - * @return result distance, or -1 - * @throws IllegalArgumentException if either UnicodeCharacterSequence input is {@code null} - */ - private static int unlimitedCompare(UnicodeCharacterSequence left, UnicodeCharacterSequence right, UnicodeCharacterMatchFunctions characterMatch) { - if (left == null || right == null) { - throw new IllegalArgumentException("CharSequences must not be null"); - } - - /* - This implementation use two variable to record the previous cost counts, - So this implementation use less memory than previous impl. - */ - - int n = left.length(); // length of left - int m = right.length(); // length of right - - if (n == 0) { - return m; - } - if (m == 0) { - return n; - } - - if (n > m) { - // swap the input strings to consume less memory - final UnicodeCharacterSequence tmp = left; - left = right; - right = tmp; - n = m; - m = right.length(); - } - - final int[] p = new int[n + 1]; - - // indexes into strings left and right - int i; // iterates through left - int j; // iterates through right - int upperLeft; - int upper; - - UnicodeCharacter rightJ; // jth character of right - int cost; // cost - - for (i = 0; i <= n; i++) { - p[i] = i; - } - - for (j = 1; j <= m; j++) { - upperLeft = p[0]; - rightJ = right.charAt(j - 1); - p[0] = j; - - for (i = 1; i <= n; i++) { - upper = p[i]; - cost = characterMatch.apply(left.charAt(i - 1), rightJ) ? 0 : 1; - // minimum of cell to the left+1, to the top+1, diagonally left and up +cost - p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upperLeft + cost); - upperLeft = upper; - } - } - - return p[n]; - } - - /** - * Threshold. - */ - private final Integer threshold; - - /** - * This returns the default instance that uses a version of the algorithm that does not use a threshold parameter. - * - * @see LevenshteinDistance#getDefaultInstance() - */ - public UnicodeLevenshteinDistance() { - this(null); - } - - /** - * If the threshold is not null, distance calculations will be limited to a maximum length. If the threshold is null, the unlimited version of the algorithm - * will be used. - * - * @param threshold If this is null then distances calculations will not be limited. This may not be negative. - */ - public UnicodeLevenshteinDistance(final Integer threshold) { - if (threshold != null && threshold < 0) { - throw new IllegalArgumentException("Threshold must not be negative"); - } - this.threshold = threshold; - } - - /** - * Finds the Levenshtein distance between two Strings. - * - *

A higher score indicates a greater distance.

- * - *

The previous implementation of the Levenshtein distance algorithm - * was from http://www.merriampark.com/ld.htm

- * - *

Chas Emerick has written an implementation in Java, which avoids an OutOfMemoryError - * which can occur when my Java implementation is used with very large strings.
This implementation of the Levenshtein distance algorithm is from http://www.merriampark.com/ldjava.htm

- * - *
-     * distance.apply(null, *) = IllegalArgumentException
-     * distance.apply(*, null) = IllegalArgumentException
-     * distance.apply("","") = 0
-     * distance.apply("","a") = 1
-     * distance.apply("aaapppp", "") = 7
-     * distance.apply("frog", "fog") = 1
-     * distance.apply("fly", "ant") = 3
-     * distance.apply("elephant", "hippo") = 7
-     * distance.apply("hippo", "elephant") = 7
-     * distance.apply("hippo", "zzzzzzzz") = 8
-     * distance.apply("hello", "hallo") = 1
-     * 
- * - * @param left the first string, must not be null - * @param right the second string, must not be null - * @return result distance, or -1 - * @throws IllegalArgumentException if either String input {@code null} - */ - public Integer apply(final UnicodeCharacterSequence left, final UnicodeCharacterSequence right, UnicodeCharacterMatchFunctions characterMatch) { - if (threshold != null) { - return limitedCompare(left, right, threshold, characterMatch); - } - return unlimitedCompare(left, right, characterMatch); - } - - public Integer apply(String left, String right, UnicodeCharacterMatchFunctions characterMatch) { - if (left == null || right == null) { - throw new IllegalArgumentException("Strings must not be null"); - } - - if (left.equals(right)) - return 0; - - return apply(UnicodeCharacterSequence.valueOf(left), UnicodeCharacterSequence.valueOf(right), characterMatch); - } - - /** - * Gets the distance threshold. - * - * @return The distance threshold - */ - public Integer getThreshold() { - return threshold; - } - -} diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java deleted file mode 100644 index 74317fcd0..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ConfusablesHelperTest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Stream; - -import org.junit.jupiter.api.Test; - -public class ConfusablesHelperTest { - public static final String EXAMPLE = """ - # ! ǃ ⵑ ! - """; - public static final List homoglyphsExample = Stream.of("!", "ǃ", "ⵑ", "!").map(UnicodeCharacter::valueOf).toList(); - - @Test - void extractHomoglyphsFromLine() { - var homoglyphs = ConfusablesHelper.extractHomoglyphsFromLine(EXAMPLE); - assertEquals(homoglyphsExample.size(), homoglyphs.size()); - assertTrue(homoglyphs.containsAll(homoglyphsExample)); - } - - @Test - void getHomoglyphs() { - var homoglyphs = ConfusablesHelper.getHomoglyphs(homoglyphsExample.get(0)); - assertTrue(homoglyphs.size() >= homoglyphsExample.size()); - assertTrue(homoglyphs.containsAll(homoglyphsExample)); - } - - @Test - void areHomoglyphs() { - assertTrue(ConfusablesHelper.areHomoglyphs(UnicodeCharacter.valueOf("!"), UnicodeCharacter.valueOf("!"))); - } -} diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java deleted file mode 100644 index bc6031a02..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasureTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import org.junit.jupiter.api.Test; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; - -class JaroWinklerMeasureTest { - private static final double DELTA = 0.01; - - /** - * These tests were extracted from the original {@link org.apache.commons.text.similarity.JaroWinklerSimilarity} implementation and should - * still hold true. - */ - @Test - void testSimilarityDirectly() { - String s = null; - assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply(s, s, UnicodeCharacterMatchFunctions.EQUAL)); - assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply("foo", null, UnicodeCharacterMatchFunctions.EQUAL)); - assertThrows(IllegalArgumentException.class, () -> UnicodeJaroWinklerSimilarity.apply(null, "foo", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("", "", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(1.0, UnicodeJaroWinklerSimilarity.apply("foo", "foo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.94, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("foo", "foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.87, UnicodeJaroWinklerSimilarity.apply("foo", " foo ", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.51, UnicodeJaroWinklerSimilarity.apply("foo", " foo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("", "a", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("aaapppp", "", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.93, UnicodeJaroWinklerSimilarity.apply("frog", "fog", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("fly", "ant", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("elephant", "hippo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.44, UnicodeJaroWinklerSimilarity.apply("hippo", "elephant", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.0, UnicodeJaroWinklerSimilarity.apply("hippo", "zzzzzzzz", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.88, UnicodeJaroWinklerSimilarity.apply("hello", "hallo", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.91, UnicodeJaroWinklerSimilarity.apply("ABC Corporation", "ABC Corp", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.95, UnicodeJaroWinklerSimilarity.apply("D N H Enterprises Inc", "D & H Enterprises, Inc.", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.94, UnicodeJaroWinklerSimilarity.apply("My Gym Children's Fitness Center", "My Gym. Childrens Fitness", - UnicodeCharacterMatchFunctions.EQUAL), DELTA); - assertEquals(0.89, UnicodeJaroWinklerSimilarity.apply("PENNSYLVANIA", "PENNCISYLVNIA", UnicodeCharacterMatchFunctions.EQUAL), DELTA); - } - - @Test - void testHomoglyphSimilarity() { - var measure = new JaroWinklerMeasure(); - assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), DELTA); - } -} diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java deleted file mode 100644 index 2be083fd5..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasureTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import org.junit.jupiter.api.Test; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.UnicodeCharacterMatchFunctions; - -class LevenshteinMeasureTest { - private static final double DELTA = 0.01; - - /** - * These tests were extracted from the original {@link org.apache.commons.text.similarity.LevenshteinDistance} implementation and should still hold true. - */ - @Test - void testSimilarityDirectly() { - var distance = new UnicodeLevenshteinDistance(); - assertThrows(IllegalArgumentException.class, () -> distance.apply(null, "foo", UnicodeCharacterMatchFunctions.EQUAL)); - assertThrows(IllegalArgumentException.class, () -> distance.apply("foo", null, UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(0, distance.apply("", "", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(1, distance.apply("", "a", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(7, distance.apply("aaapppp", "", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(1, distance.apply("frog", "fog", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(3, distance.apply("fly", "ant", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(7, distance.apply("elephant", "hippo", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(7, distance.apply("hippo", "elephant", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(8, distance.apply("hippo", "zzzzzzzz", UnicodeCharacterMatchFunctions.EQUAL)); - assertEquals(1, distance.apply("hello", "hallo", UnicodeCharacterMatchFunctions.EQUAL)); - } - - @Test - void testHomoglyphSimilarity() { - var measure = new LevenshteinMeasure(); - assertEquals(1d, measure.getSimilarity(new ComparisonContext("ℜ𝘂ᖯʏ", "Ruby", UnicodeCharacterMatchFunctions.EQUAL_OR_HOMOGLYPH)), DELTA); - } -} From 6586bb6e3c2d79f488dea76957342d8de8e26112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 22:19:48 +0100 Subject: [PATCH 015/115] Add architecture test to ensure correct usage of TraceLink class --- framework/common/pom.xml | 5 ++++ .../core/TraceLinkArchitectureTest.java | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 43406d6f8..9e5ef051d 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -62,5 +62,10 @@ sqlite-jdbc 3.46.0.1 + + com.tngtech.archunit + archunit-junit5 + test + diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java new file mode 100644 index 000000000..2b2964923 --- /dev/null +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java @@ -0,0 +1,30 @@ +package edu.kit.kastel.mcse.ardoco.core; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.methods; + +import com.tngtech.archunit.base.DescribedPredicate; +import com.tngtech.archunit.core.domain.JavaClass; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchRule; + +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; + +@AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") +class TraceLinkArchitectureTest { + private static final DescribedPredicate isSubclassOfTraceLink = new DescribedPredicate<>("subclass of " + TraceLink.class) { + @Override + public boolean test(JavaClass clazz) { + return clazz.isAssignableTo(TraceLink.class); + } + }; + + @ArchTest + static final ArchRule onlyTraceLinkAsReturnType = methods().that() + .haveRawReturnType(isSubclassOfTraceLink) + .and() + .areNotPrivate() + .should() + .haveRawReturnType(TraceLink.class) + .because("the specific subclasses of TraceLink shall not be used as return type in non-private methods"); +} From 8be7d03f55f21e93cb5996283e774a9bcdbffc4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 22:24:49 +0100 Subject: [PATCH 016/115] Added more tests for correct use of trace links in api --- .../core/TraceLinkArchitectureTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java index 2b2964923..f1d2e43a6 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java @@ -2,6 +2,8 @@ import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.methods; +import java.util.List; + import com.tngtech.archunit.base.DescribedPredicate; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.junit.AnalyzeClasses; @@ -19,6 +21,21 @@ public boolean test(JavaClass clazz) { } }; + private static final DescribedPredicate> isSubclassOfTraceLinkList = new DescribedPredicate<>("subclass of " + TraceLink.class) { + @Override + public boolean test(List clazzes) { + return clazzes.stream().anyMatch(clazz -> clazz.isAssignableTo(TraceLink.class)); + } + }; + + private static final DescribedPredicate> isSubclassOfTraceLinkListButNotTracelink = new DescribedPredicate<>( + "subclass of " + TraceLink.class + " without base class") { + @Override + public boolean test(List clazzes) { + return clazzes.stream().anyMatch(clazz -> clazz.isAssignableTo(TraceLink.class) && !clazz.isEquivalentTo(TraceLink.class)); + } + }; + @ArchTest static final ArchRule onlyTraceLinkAsReturnType = methods().that() .haveRawReturnType(isSubclassOfTraceLink) @@ -27,4 +44,13 @@ public boolean test(JavaClass clazz) { .should() .haveRawReturnType(TraceLink.class) .because("the specific subclasses of TraceLink shall not be used as return type in non-private methods"); + + @ArchTest + static final ArchRule onlyTraceLinkAsParameterType = methods().that() + .haveRawParameterTypes(isSubclassOfTraceLinkList) + .and() + .areNotPrivate() + .should() + .notHaveRawParameterTypes(isSubclassOfTraceLinkListButNotTracelink) + .because("the specific subclasses of TraceLink shall not be used as parameter type in non-private methods"); } From eca0fc3118af169a449af1e73dbbb03b384bea3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 22:36:50 +0100 Subject: [PATCH 017/115] Cleanup --- .../mcse/ardoco/core/api/InputTextData.java | 5 +- .../ardoco/core/api/PreprocessingData.java | 5 +- .../ardoco/core/common/RepositoryHandler.java | 4 +- .../similarity/SimilarityComparable.java | 37 - .../measures/equality/EqualityMeasure.java | 2 - .../wordsim/measures/glove/GloveMeasure.java | 2 - .../levenshtein/LevenshteinMeasure.java | 2 +- .../wordsim/measures/ngram/NgramMeasure.java | 20 +- .../measures/sewordsim/SEWordSimMeasure.java | 13 +- .../wordsim/strategy/ComparisonStrategy.java | 3 +- .../wordsim/strategy/MedianStrategy.java | 3 +- .../wordsim/strategy/SimilarityStrategy.java | 3 +- .../vector/RetrieveVectorException.java | 1 + .../vector/VectorBasedWordSimMeasure.java | 10 +- .../vector/WordVectorSqliteImporter.java | 25 +- .../ardoco/core/common/util/Comparators.java | 10 +- .../core/common/util/ResourceAccessor.java | 14 +- .../configuration/AbstractConfigurable.java | 7 +- .../ConfigurationInstantiatorUtils.java | 15 +- .../ardoco/core/data/PipelineStepData.java | 3 +- .../ardoco/core/data/ProjectPipelineData.java | 2 +- .../core/pipeline/AbstractExecutionStage.java | 10 +- .../core/pipeline/AbstractPipelineStep.java | 8 +- .../ardoco/core/pipeline/ExecutionStage.java | 2 +- .../mcse/ardoco/core/pipeline/Pipeline.java | 14 +- .../ardoco/core/pipeline/agent/Informant.java | 2 + .../core/pipeline/agent/PipelineAgent.java | 14 +- .../resources/wordsim/confusablesSummary.txt | 17207 ---------------- 28 files changed, 98 insertions(+), 17345 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java delete mode 100644 framework/common/src/main/resources/wordsim/confusablesSummary.txt diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java index d166666a5..5793bc958 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java @@ -5,16 +5,17 @@ public class InputTextData implements PipelineStepData { + private static final long serialVersionUID = -5404851121533249349L; + public static final String ID = "InputTextData"; private String text; public InputTextData(String text) { - super(); this.text = text; } public String getText() { - return text; + return this.text; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java index b72629334..c518204fe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java @@ -9,17 +9,18 @@ * {@link Text} only. */ public class PreprocessingData implements PipelineStepData { + private static final long serialVersionUID = 8103545017098419675L; + public static final String ID = "PreprocessingData"; private final Text preprocessedText; public PreprocessingData(Text preprocessedText) { - super(); this.preprocessedText = preprocessedText; } public Text getText() { - return preprocessedText; + return this.preprocessedText; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java index 000c5e594..1ee5ea6a6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java @@ -20,7 +20,6 @@ public class RepositoryHandler { private static final Logger logger = LoggerFactory.getLogger(RepositoryHandler.class); private RepositoryHandler() { - super(); } public static boolean shallowCloneRepository(String repositoryLink, String desiredCodeLocation, String desiredHash) { @@ -36,8 +35,9 @@ public static boolean shallowCloneRepository(String repositoryLink, String desir List commits = new ArrayList<>(); git.log().setMaxCount(1).call().forEach(commits::add); assert commits.size() == 1; - if (commits.get(0).getId().startsWith(AbbreviatedObjectId.fromString(desiredHash))) + if (commits.get(0).getId().startsWith(AbbreviatedObjectId.fromString(desiredHash))) { return true; + } // Checkout correct code version git.fetch().setUnshallow(true).call(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java deleted file mode 100644 index 9a2e10061..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityComparable.java +++ /dev/null @@ -1,37 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity; - -import java.util.Collection; - -/** - * Classes implementing this interface provide the functionality to determine whether an instance is similar to the provided type, and if collections of - * instances are similar to collections of the type. - * - * @param the type - */ -public interface SimilarityComparable { - /** - * {@return whether the instance is similar to the given object} Has to return true if {@link Object#equals} returns true. The result of this function - * should be symmetric, but does not have to be transitive. - * - * @param obj some object - */ - boolean similar(T obj); - - /** - * {@return both collections consist of elements, that have a corresponding similar element in the other collection} Does not care about order and should - * returns true for equal lists if {@link #similar(Object)} was implemented correctly. - * - * @param a some collection - * @param b some other collection - */ - static > boolean similar(Collection a, Collection b) { - if (a.equals(b)) { - return true; - } - if (a.size() != b.size()) { - return false; - } - return a.parallelStream().allMatch(element -> b.stream().anyMatch(element::similar)); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java index dd4cf16bd..6e0fcf86d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java @@ -9,8 +9,6 @@ * */ public class EqualityMeasure implements WordSimMeasure { - private static final long serialVersionUID = -3748510855999411788L; - @Override public boolean areWordsSimilar(ComparisonContext ctx) { return ctx.firstTerm().equalsIgnoreCase(ctx.secondTerm()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java index 1abc90dcc..88e7d744c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java @@ -20,8 +20,6 @@ */ public class GloveMeasure extends VectorBasedWordSimMeasure { - private static final long serialVersionUID = 1436951415138215284L; - private static final Logger LOGGER = LoggerFactory.getLogger(GloveMeasure.class); private final double similarityThreshold; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java index 49626ab43..240b7138e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java @@ -62,7 +62,7 @@ public LevenshteinMeasure(int minLength, int maxDistance, double threshold) { @Override public boolean areWordsSimilar(ComparisonContext ctx) { - //FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already + // FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already String firstWord = ctx.firstTerm().toLowerCase(); String secondWord = ctx.secondTerm().toLowerCase(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java index 062db285e..edc5ba856 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java @@ -65,12 +65,12 @@ public NgramMeasure(Variant variant, int n, double similarityThreshold) throws I @Override public boolean areWordsSimilar(ComparisonContext ctx) { Objects.requireNonNull(ctx); - return getSimilarity(ctx) >= this.similarityThreshold; + return this.getSimilarity(ctx) >= this.similarityThreshold; } @Override public double getSimilarity(ComparisonContext ctx) { - double distance = calculateDistance(ctx.firstTerm(), ctx.secondTerm()); + double distance = this.calculateDistance(ctx.firstTerm(), ctx.secondTerm()); double normalizedDistance = distance / Math.max(ctx.firstTerm().length(), ctx.secondTerm().length()); @@ -98,15 +98,15 @@ public double calculateDistance(String x, String y) { int l = yBuilder.length(); double[][] d = new double[k + 1][l + 1]; - for (int u = 1; u <= n - 1; u++) { - if (variant == Variant.LUCENE) { + for (int u = 1; u <= this.n - 1; u++) { + if (this.variant == Variant.LUCENE) { xBuilder = new StringBuilder().append(LUCENE_PREFIX_CHARACTER).append(xBuilder); yBuilder = new StringBuilder().append(LUCENE_PREFIX_CHARACTER).append(yBuilder); - } else if (variant == Variant.POSITIONAL) { + } else if (this.variant == Variant.POSITIONAL) { xBuilder = new StringBuilder().append(xBuilder.charAt(0)).append(xBuilder); yBuilder = new StringBuilder().append(yBuilder.charAt(0)).append(yBuilder); } else { - throw new UnsupportedOperationException("unknown variant: " + variant); + throw new UnsupportedOperationException("unknown variant: " + this.variant); } } @@ -120,9 +120,9 @@ public double calculateDistance(String x, String y) { for (int i = 1; i <= k; i++) { for (int j = 1; j <= l; j++) { - double dN = dN(n, i - 1, j - 1, xBuilder.toString(), yBuilder.toString()); + double dN = this.dN(this.n, i - 1, j - 1, xBuilder.toString(), yBuilder.toString()); - d[i][j] = min(d[i - 1][j] + 1.0, d[i][j - 1] + 1.0, d[i - 1][j - 1] + dN); + d[i][j] = this.min(d[i - 1][j] + 1.0, d[i][j - 1] + 1.0, d[i - 1][j - 1] + dN); } } @@ -134,11 +134,11 @@ private double dN(int n, int i, int j, String x, String y) { double actualN = n; for (int u = 1; u <= n; u++) { - double diff = d1(x.charAt(i + u - 1), y.charAt(j + u - 1)); + double diff = this.d1(x.charAt(i + u - 1), y.charAt(j + u - 1)); sum += diff; - if (variant == Variant.LUCENE && diff == 0 && x.charAt(i + u - 1) == LUCENE_PREFIX_CHARACTER) { + if (this.variant == Variant.LUCENE && diff == 0 && x.charAt(i + u - 1) == LUCENE_PREFIX_CHARACTER) { actualN -= 1.0; // Ignore prefix character in LUCENE mode } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java index aa2afb353..d08809ab3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java @@ -18,7 +18,7 @@ public class SEWordSimMeasure implements WordSimMeasure { private static final Logger LOGGER = LoggerFactory.getLogger(SEWordSimMeasure.class); - private transient SEWordSimDataSource dataSource; + private SEWordSimDataSource dataSource; private final double similarityThreshold; /** @@ -43,7 +43,7 @@ public SEWordSimMeasure(double similarityThreshold) { @Override public boolean areWordsSimilar(ComparisonContext ctx) { - var similarity = getSimilarity(ctx); + var similarity = this.getSimilarity(ctx); return !Double.isNaN(similarity) && similarity >= this.similarityThreshold; } @@ -52,22 +52,21 @@ public double getSimilarity(ComparisonContext ctx) { double similarity = Double.NaN; try { - similarity = getDataSource().getSimilarity(ctx.firstTerm(), ctx.secondTerm()).orElse(Double.NaN); + similarity = this.getDataSource().getSimilarity(ctx.firstTerm(), ctx.secondTerm()).orElse(Double.NaN); } catch (SQLException e) { LOGGER.error("Failed to query the SEWordSim database for word comparison: " + ctx, e); - return similarity; } return similarity; // words are probably missing from the database } private SEWordSimDataSource getDataSource() { - if (dataSource == null) { + if (this.dataSource == null) { try { - dataSource = new SEWordSimDataSource(Path.of(CommonTextToolsConfig.SEWORDSIM_DB_FILE_PATH)); + this.dataSource = new SEWordSimDataSource(Path.of(CommonTextToolsConfig.SEWORDSIM_DB_FILE_PATH)); } catch (SQLException e) { throw new IllegalArgumentException(e); } } - return dataSource; + return this.dataSource; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java index 8318b0e85..f6733b775 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java @@ -1,7 +1,6 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; -import java.io.Serializable; import java.util.List; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; @@ -10,7 +9,7 @@ /** * A comparison strategy determines how the verdicts of multiple WSMs regarding a specific comparison are combined. */ -public interface ComparisonStrategy extends Serializable { +public interface ComparisonStrategy { ComparisonStrategy AT_LEAST_ONE = new AtLeastOneStrategy(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java index 1380e98fe..598908f36 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java @@ -23,8 +23,7 @@ public double getSimilarity(ComparisonContext ctx, List measures var array = values.toArray(new Double[0]); if (array.length % 2 == 0) { return (array[array.length / 2] + array[array.length / 2 - 1]) / 2; - } else { - return array[array.length / 2]; } + return array[array.length / 2]; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java index 6ea267b32..c31ae3754 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java @@ -1,13 +1,12 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; -import java.io.Serializable; import java.util.List; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; -public interface SimilarityStrategy extends Serializable { +public interface SimilarityStrategy { /** * Evaluates how similar the words from the given {@link ComparisonContext} are by combining the verdicts of the specified word similarity measures. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java index 6770d891a..f688c57c3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java @@ -5,6 +5,7 @@ * An exception that can occur while trying to retrieve a vector. */ public class RetrieveVectorException extends Exception { + private static final long serialVersionUID = 6771335689887319781L; public RetrieveVectorException(String message, Throwable cause) { super(message, cause); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java index ce02a0dee..3ae45238d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java @@ -16,7 +16,7 @@ @Deterministic public abstract class VectorBasedWordSimMeasure implements WordSimMeasure { - private static final float[] ZERO_VECTOR = new float[0]; + private static final float[] ZERO_VECTOR = {}; private final Map vectorCache = new LinkedHashMap<>(); protected abstract WordVectorDataSource getVectorDataSource(); @@ -25,7 +25,7 @@ public abstract class VectorBasedWordSimMeasure implements WordSimMeasure { * Compares the two given words by computing the cosine similarity between their respective vector representations. * If the vector representation for one of the words is not found, a similarity score of {@code 0.0} will be * returned. - * + * * @param firstWord the first word * @param secondWord the second word * @return returns the similarity score between the two words, between 0.0 and 1.0 (inclusive) @@ -39,13 +39,13 @@ public double compareVectors(String firstWord, String secondWord) throws Retriev return 1.0; } - float[] firstVec = getVectorFromCacheOrDatabase(firstWord); + float[] firstVec = this.getVectorFromCacheOrDatabase(firstWord); if (VectorUtils.isZero(firstVec)) { return 0.0; // no vector representation for the first word } - float[] secondVec = getVectorFromCacheOrDatabase(secondWord); + float[] secondVec = this.getVectorFromCacheOrDatabase(secondWord); if (VectorUtils.isZero(secondVec)) { return 0.0; // no vector representation for the second word @@ -58,7 +58,7 @@ private float[] getVectorFromCacheOrDatabase(String word) throws RetrieveVectorE float[] vector = this.vectorCache.getOrDefault(word, null); if (vector == null) { - vector = getVectorDataSource().getWordVector(word).orElse(ZERO_VECTOR); + vector = this.getVectorDataSource().getWordVector(word).orElse(ZERO_VECTOR); this.vectorCache.put(word, vector); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java index 7b637afef..45c06fe29 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java @@ -4,7 +4,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.io.Serializable; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -35,7 +34,7 @@ * {@link #filterWord(String)} methods. Both methods are called for each word and allow filtering/modifying words before * they are inserted into the databse. */ -public class WordVectorSqliteImporter implements Serializable { +public class WordVectorSqliteImporter { private static final int DEFAULT_MAX_WORD_LENGTH = 300; private static final Logger LOGGER = LoggerFactory.getLogger(WordVectorSqliteImporter.class); @@ -129,18 +128,18 @@ public ImportResult beginImport() throws SQLException, IOException, IllegalState long linesRead = 0; long inserted = 0; - try (Connection connection = connect(); - PreparedStatement statement = prepareSelect(connection); - var in = Files.newInputStream(Path.of(vectorFile), StandardOpenOption.READ); + try (Connection connection = this.connect(); + PreparedStatement statement = this.prepareSelect(connection); + var in = Files.newInputStream(Path.of(this.vectorFile), StandardOpenOption.READ); var bufferedReader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))) { - ByteBuffer buffer = ByteBuffer.allocate(dimension * 4); + ByteBuffer buffer = ByteBuffer.allocate(this.dimension * 4); - while (bufferedReader.ready() && linesRead < endLine) { + while (bufferedReader.ready() && linesRead < this.endLine) { var line = bufferedReader.readLine(); linesRead++; - if (linesRead >= startLine) { + if (linesRead >= this.startLine) { var parts = line.split(" ", -1); if (parts.length - 1 != this.dimension) { throw new IllegalStateException("importer has read line with invalid vector dimension: \"" + line + "\""); @@ -149,11 +148,11 @@ public ImportResult beginImport() throws SQLException, IOException, IllegalState // Process the word String word = parts[0]; // Filter out weird words from dataset - if (word.length() > this.maxWordLength || !filterWord(word)) { + if (word.length() > this.maxWordLength || !this.filterWord(word)) { skippedWords.add(word); continue; } - word = processWord(word); + word = this.processWord(word); // Process the vector buffer.clear(); @@ -162,7 +161,7 @@ public ImportResult beginImport() throws SQLException, IOException, IllegalState buffer.putFloat(value); } - insertIntoDatabase(statement, buffer, word); + this.insertIntoDatabase(statement, buffer, word); inserted++; } } @@ -172,7 +171,7 @@ public ImportResult beginImport() throws SQLException, IOException, IllegalState } private void insertIntoDatabase(PreparedStatement statement, ByteBuffer buffer, String word) throws SQLException { - if (!dryRun) { + if (!this.dryRun) { statement.setString(1, word); statement.setBytes(2, buffer.array()); statement.execute(); @@ -188,7 +187,7 @@ private Connection connect() throws SQLException { cfg.setSynchronous(SQLiteConfig.SynchronousMode.OFF); cfg.setOpenMode(SQLiteOpenMode.NOMUTEX); - return cfg.createConnection("jdbc:sqlite:" + Path.of(dbFile).toAbsolutePath()); + return cfg.createConnection("jdbc:sqlite:" + Path.of(this.dbFile).toAbsolutePath()); } private PreparedStatement prepareSelect(Connection conn) throws SQLException { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java index 88d295976..107658289 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java @@ -47,10 +47,9 @@ public static boolean collectionsEqualsAnyOrder(SortedIterable first, Sor var f = first.iterator(); var s = second.iterator(); while (f.hasNext() || s.hasNext()) { - if (f.hasNext() != s.hasNext()) - return false; - if (!f.next().equals(s.next())) + if ((f.hasNext() != s.hasNext()) || !f.next().equals(s.next())) { return false; + } } return true; } @@ -77,10 +76,9 @@ public static boolean collectionsIdentityAnyOrder(SortedIterable first, S var f = first.iterator(); var s = second.iterator(); while (f.hasNext() || s.hasNext()) { - if (f.hasNext() != s.hasNext()) - return false; - if (f.next() != s.next()) + if ((f.hasNext() != s.hasNext()) || (f.next() != s.next())) { return false; + } } return true; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java index 09ee4863e..6c42a6ede 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java @@ -29,13 +29,13 @@ public ResourceAccessor(String filepath, boolean isClasspath) { if (isClasspath) { try (var inputStream = this.getClass().getResourceAsStream(filepath)) { - prop.load(inputStream); + this.prop.load(inputStream); } catch (IOException e) { logger.debug(e.getMessage(), e.getCause()); } } else { try (var inputStream = new FileInputStream(filepath)) { - prop.load(inputStream); + this.prop.load(inputStream); } catch (IOException e) { logger.debug(e.getMessage(), e.getCause()); } @@ -49,7 +49,7 @@ public ResourceAccessor(String filepath, boolean isClasspath) { * @return value of the property as a string */ public String getProperty(String key) { - return prop.getProperty(key); + return this.prop.getProperty(key); } /** @@ -60,7 +60,7 @@ public String getProperty(String key) { * case. */ public boolean isPropertyEnabled(String key) { - var propValue = prop.getProperty(key).strip(); + var propValue = this.prop.getProperty(key).strip(); return Boolean.parseBoolean(propValue) || propValue.equalsIgnoreCase("yes") || propValue.equalsIgnoreCase("1"); } @@ -72,7 +72,7 @@ public boolean isPropertyEnabled(String key) { */ public double getPropertyAsDouble(String key) { try { - return Double.parseDouble(prop.getProperty(key)); + return Double.parseDouble(this.prop.getProperty(key)); } catch (NumberFormatException n) { logger.debug(n.getMessage(), n.getCause()); return -1; @@ -87,7 +87,7 @@ public double getPropertyAsDouble(String key) { */ public int getPropertyAsInt(String key) { try { - return Integer.parseInt(prop.getProperty(key)); + return Integer.parseInt(this.prop.getProperty(key)); } catch (NumberFormatException n) { logger.debug(n.getMessage(), n.getCause()); return -1; @@ -102,7 +102,7 @@ public int getPropertyAsInt(String key) { */ public ImmutableList getPropertyAsList(String key) { MutableList values = Lists.mutable.empty(); - String value = prop.getProperty(key); + String value = this.prop.getProperty(key); if (value == null) { throw new IllegalArgumentException("Key: " + key + " not found in config"); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index d77a1c2d7..292e42080 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -5,7 +5,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serial; -import java.io.Serializable; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.util.ArrayList; @@ -22,10 +21,8 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @Deterministic -public abstract class AbstractConfigurable implements IConfigurable, Serializable { - private static final long serialVersionUID = 4781744504742817995L; - - protected final transient Logger logger = LoggerFactory.getLogger(this.getClass()); +public abstract class AbstractConfigurable implements IConfigurable { + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); public static final String CLASS_ATTRIBUTE_CONNECTOR = "::"; public static final String KEY_VALUE_CONNECTOR = "="; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java index b0a00c100..1a634048c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java @@ -33,27 +33,32 @@ public static AbstractConfigurable createObject(Class c.getParameterCount() == 0, new Object[0]); - if (result != null) + if (result != null) { return result; + } result = findAndCreate(constructors, c -> c.getParameterCount() == 1 && c.getParameterTypes()[0] == Map.class, new Object[] { Map.of() }); - if (result != null) + if (result != null) { return result; + } result = findAndCreate(constructors, c -> c.getParameterCount() == 1 && c.getParameterTypes()[0] == DataRepository.class, new Object[] { new DataRepository() }); - if (result != null) + if (result != null) { return result; + } result = findAndCreate(constructors, c -> c.getParameterCount() == 2 && c.getParameterTypes()[0] == String.class && c .getParameterTypes()[1] == DataRepository.class, new Object[] { null, new DataRepository() }); - if (result != null) + if (result != null) { return result; + } result = findAndCreate(constructors, c -> c.getParameterCount() == 2 && c.getParameterTypes()[0] == DataRepository.class && c .getParameterTypes()[1] == List.class, new Object[] { new DataRepository(), List.of() }); - if (result != null) + if (result != null) { return result; + } var c = constructors.stream().findFirst().orElseThrow(() -> new IllegalStateException("Not reachable code reached for class " + clazz.getName())); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java index 82b46f59b..100c9e419 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java @@ -27,9 +27,8 @@ public interface PipelineStepData extends Serializable { default Optional asPipelineStepData(Class clazz) { if (!clazz.isAssignableFrom(this.getClass())) { return Optional.empty(); - } else { - return Optional.of(clazz.cast(this)); } + return Optional.of(clazz.cast(this)); } default String serialize() { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java index b9f3c8e5e..3426017d7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java @@ -9,7 +9,7 @@ public interface ProjectPipelineData extends PipelineStepData { /** * Return the project name - * + * * @return the project name */ String getProjectName(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java index 39e11d211..b75659b07 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java @@ -41,10 +41,10 @@ protected AbstractExecutionStage(List agents, String id @Override protected final void preparePipelineSteps() { super.preparePipelineSteps(); - initializeState(); + this.initializeState(); - for (var agent : agents) { - if (enabledAgents.contains(agent.getId())) { + for (var agent : this.agents) { + if (this.enabledAgents.contains(agent.getId())) { this.addPipelineStep(agent); } } @@ -75,13 +75,13 @@ protected void after() { * {@return the {@link PipelineAgent agents}} */ public List getAgents() { - return List.copyOf(agents); + return List.copyOf(this.agents); } @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); - for (var agent : agents) { + for (var agent : this.agents) { agent.applyConfiguration(additionalConfiguration); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java index 463366944..d460b19c2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java @@ -29,9 +29,9 @@ protected AbstractPipelineStep(String id, DataRepository dataRepository) { * {@link #after()} */ public void run() { - before(); - process(); - after(); + this.before(); + this.process(); + this.after(); } /** @@ -62,6 +62,6 @@ protected DataRepository getDataRepository() { * @return the id */ public final String getId() { - return id; + return this.id; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java index b6486c90b..b9f3f6e18 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java @@ -26,6 +26,6 @@ protected ExecutionStage(List agents, String id, DataRepository d @Override protected void before() { super.before(); - applyConfiguration(additionalConfigs); + this.applyConfiguration(this.additionalConfigs); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java index 6f31dd29c..1f0b9092b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java @@ -50,7 +50,7 @@ public Pipeline(String id, DataRepository dataRepository, List informants; @Configurable @@ -41,7 +43,7 @@ protected PipelineAgent(List informants, String id, DataRep @Override protected final void preparePipelineSteps() { super.preparePipelineSteps(); - initialize(); + this.initialize(); } /** @@ -64,9 +66,9 @@ protected void after() { * Initialize the execution */ protected final void initialize() { - initializeState(); - for (var informant : informants) { - if (enabledInformants.contains(informant.getId())) { + this.initializeState(); + for (var informant : this.informants) { + if (this.enabledInformants.contains(informant.getId())) { this.addPipelineStep(informant); } } @@ -83,13 +85,13 @@ protected void initializeState() { * {@return the informants including disabled} */ public List getInformants() { - return List.copyOf(informants); + return List.copyOf(this.informants); } @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); - informants.forEach(filter -> filter.applyConfiguration(additionalConfiguration)); + this.informants.forEach(filter -> filter.applyConfiguration(additionalConfiguration)); } } diff --git a/framework/common/src/main/resources/wordsim/confusablesSummary.txt b/framework/common/src/main/resources/wordsim/confusablesSummary.txt deleted file mode 100644 index 77507c742..000000000 --- a/framework/common/src/main/resources/wordsim/confusablesSummary.txt +++ /dev/null @@ -1,17207 +0,0 @@ -# confusablesSummary.txt -# Date: 2022-08-26, 16:49:08 GMT -# © 2022 Unicode®, Inc. -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. -# For terms of use, see https://www.unicode.org/terms_of_use.html -# -# Unicode Security Mechanisms for UTS #39 -# Version: 15.0.0 -# -# For documentation and usage, see https://www.unicode.org/reports/tr39 -# - -#   
 
                             - (‎ ‎) 0020 SPACE -← (‎   ‎) 1680 OGHAM SPACE MARK -← (‎ 
 ‎) 2028 LINE SEPARATOR -← (‎ 
 ‎) 2029 PARAGRAPH SEPARATOR -← (‎   ‎) 00A0 NO-BREAK SPACE -← (‎   ‎) 2000 EN QUAD -← (‎   ‎) 2001 EM QUAD -← (‎   ‎) 2002 EN SPACE -← (‎   ‎) 2003 EM SPACE -← (‎   ‎) 2004 THREE-PER-EM SPACE -← (‎   ‎) 2005 FOUR-PER-EM SPACE -← (‎   ‎) 2006 SIX-PER-EM SPACE -← (‎   ‎) 2007 FIGURE SPACE -← (‎   ‎) 2008 PUNCTUATION SPACE -← (‎   ‎) 2009 THIN SPACE -← (‎   ‎) 200A HAIR SPACE -← (‎   ‎) 202F NARROW NO-BREAK SPACE -← (‎   ‎) 205F MEDIUM MATHEMATICAL SPACE - -# ! ǃ ⵑ ! - (‎ ! ‎) 0021 EXCLAMATION MARK -← (‎ ǃ ‎) 01C3 LATIN LETTER RETROFLEX CLICK -← (‎ ⵑ ‎) 2D51 TIFINAGH LETTER TUAREG YANG -← (‎ ! ‎) FF01 FULLWIDTH EXCLAMATION MARK # →ǃ→ - -# !! ‼ - (‎ !! ‎) 0021 0021 EXCLAMATION MARK, EXCLAMATION MARK -← (‎ ‼ ‎) 203C DOUBLE EXCLAMATION MARK - -# !? ⁉ - (‎ !? ‎) 0021 003F EXCLAMATION MARK, QUESTION MARK -← (‎ ⁉ ‎) 2049 EXCLAMATION QUESTION MARK - -# '' יי ′′ ‵‵ " ײ ʺ ˮ ״ ˶ ᳓ “ ” ‟ 〃 ˝ ″ ‶ " - (‎ " ‎) 0022 QUOTATION MARK -← (‎ '' ‎) 0027 0027 APOSTROPHE, APOSTROPHE -← (‎ יי ‎) 05D9 05D9 HEBREW LETTER YOD, HEBREW LETTER YOD # →''→ -← (‎ ′′ ‎) 2032 2032 PRIME, PRIME # →″→ -← (‎ ‵‵ ‎) 2035 2035 REVERSED PRIME, REVERSED PRIME # →''→ -← (‎ ײ ‎) 05F2 HEBREW LIGATURE YIDDISH DOUBLE YOD # →‎יי‎→→''→ -← (‎ ʺ ‎) 02BA MODIFIER LETTER DOUBLE PRIME -← (‎ ˮ ‎) 02EE MODIFIER LETTER DOUBLE APOSTROPHE # →″→ -← (‎ ״ ‎) 05F4 HEBREW PUNCTUATION GERSHAYIM -← (‎ ˶ ‎) 02F6 MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT # →˝→ -← (‎ ᳓ ‎) 1CD3 VEDIC SIGN NIHSHVASA # →″→ -← (‎ “ ‎) 201C LEFT DOUBLE QUOTATION MARK -← (‎ ” ‎) 201D RIGHT DOUBLE QUOTATION MARK -← (‎ ‟ ‎) 201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK # →“→ -← (‎ 〃 ‎) 3003 DITTO MARK # →″→ -← (‎ ˝ ‎) 02DD DOUBLE ACUTE ACCENT -← (‎ ″ ‎) 2033 DOUBLE PRIME -← (‎ ‶ ‎) 2036 REVERSED DOUBLE PRIME # →‵‵→→''→ -← (‎ " ‎) FF02 FULLWIDTH QUOTATION MARK # →”→ - -# $⃠ 🄏 - (‎ $⃠ ‎) 0024 20E0 DOLLAR SIGN, COMBINING ENCLOSING CIRCLE BACKSLASH -← (‎ 🄏 ‎) 1F10F CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH - -# º/₀ ⁰/₀ % ٪ ⁒ - (‎ % ‎) 0025 PERCENT SIGN -← (‎ º/₀ ‎) 00BA 002F 2080 MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →⁰/₀→ -← (‎ ⁰/₀ ‎) 2070 002F 2080 SUPERSCRIPT ZERO, SOLIDUS, SUBSCRIPT ZERO -← (‎ ٪ ‎) 066A ARABIC PERCENT SIGN -← (‎ ⁒ ‎) 2052 COMMERCIAL MINUS SIGN - -# & ꝸ - (‎ & ‎) 0026 AMPERSAND -← (‎ ꝸ ‎) A778 LATIN SMALL LETTER UM - -# ' ` ꞌ ʻ ʼ י ʹ ʽ ʾ ˈ ˊ ˋ ߴ ߵ ᑊ ᛌ 𖽑 𖽒 ׳ ’ ˴ ՚ ՝ ‘ ‛ ′ ‵ ʹ ´ ΄ ᾽ ᾿ ` ´ ῾ ' ` - (‎ ' ‎) 0027 APOSTROPHE -← (‎ ` ‎) 0060 GRAVE ACCENT # →ˋ→→`→→‘→ -← (‎ ꞌ ‎) A78C LATIN SMALL LETTER SALTILLO -← (‎ ʻ ‎) 02BB MODIFIER LETTER TURNED COMMA # →‘→ -← (‎ ʼ ‎) 02BC MODIFIER LETTER APOSTROPHE # →′→ -← (‎ י ‎) 05D9 HEBREW LETTER YOD -← (‎ ʹ ‎) 02B9 MODIFIER LETTER PRIME -← (‎ ʽ ‎) 02BD MODIFIER LETTER REVERSED COMMA # →‘→ -← (‎ ʾ ‎) 02BE MODIFIER LETTER RIGHT HALF RING # →ʼ→→′→ -← (‎ ˈ ‎) 02C8 MODIFIER LETTER VERTICAL LINE -← (‎ ˊ ‎) 02CA MODIFIER LETTER ACUTE ACCENT # →ʹ→→′→ -← (‎ ˋ ‎) 02CB MODIFIER LETTER GRAVE ACCENT # →`→→‘→ -← (‎ ߴ ‎) 07F4 NKO HIGH TONE APOSTROPHE # →’→ -← (‎ ߵ ‎) 07F5 NKO LOW TONE APOSTROPHE # →‘→ -← (‎ ᑊ ‎) 144A CANADIAN SYLLABICS WEST-CREE P # →ˈ→ -← (‎ ᛌ ‎) 16CC RUNIC LETTER SHORT-TWIG-SOL S -← (‎ 𖽑 ‎) 16F51 MIAO SIGN ASPIRATION # →ʼ→→′→ -← (‎ 𖽒 ‎) 16F52 MIAO SIGN REFORMED VOICING # →ʻ→→‘→ -← (‎ ׳ ‎) 05F3 HEBREW PUNCTUATION GERESH -← (‎ ’ ‎) 2019 RIGHT SINGLE QUOTATION MARK -← (‎ ˴ ‎) 02F4 MODIFIER LETTER MIDDLE GRAVE ACCENT # →ˋ→→`→→‘→ -← (‎ ՚ ‎) 055A ARMENIAN APOSTROPHE # →’→ -← (‎ ՝ ‎) 055D ARMENIAN COMMA # →ˋ→→`→→‘→ -← (‎ ‘ ‎) 2018 LEFT SINGLE QUOTATION MARK -← (‎ ‛ ‎) 201B SINGLE HIGH-REVERSED-9 QUOTATION MARK # →′→ -← (‎ ′ ‎) 2032 PRIME -← (‎ ‵ ‎) 2035 REVERSED PRIME # →ʽ→→‘→ -← (‎ ʹ ‎) 0374 GREEK NUMERAL SIGN # →′→ -← (‎ ´ ‎) 00B4 ACUTE ACCENT # →΄→→ʹ→ -← (‎ ΄ ‎) 0384 GREEK TONOS # →ʹ→ -← (‎ ᾽ ‎) 1FBD GREEK KORONIS # →’→ -← (‎ ᾿ ‎) 1FBF GREEK PSILI # →’→ -← (‎ ` ‎) 1FEF GREEK VARIA # →ˋ→→`→→‘→ -← (‎ ´ ‎) 1FFD GREEK OXIA # →´→→΄→→ʹ→ -← (‎ ῾ ‎) 1FFE GREEK DASIA # →‛→→′→ -← (‎ ' ‎) FF07 FULLWIDTH APOSTROPHE # →’→ -← (‎ ` ‎) FF40 FULLWIDTH GRAVE ACCENT # →‘→ - -# ''' ′′′ ‵‵‵ ‴ ‷ - (‎ ''' ‎) 0027 0027 0027 APOSTROPHE, APOSTROPHE, APOSTROPHE -← (‎ ′′′ ‎) 2032 2032 2032 PRIME, PRIME, PRIME -← (‎ ‵‵‵ ‎) 2035 2035 2035 REVERSED PRIME, REVERSED PRIME, REVERSED PRIME -← (‎ ‴ ‎) 2034 TRIPLE PRIME # →′′′→ -← (‎ ‷ ‎) 2037 REVERSED TRIPLE PRIME # →‵‵‵→ - -# '''' ′′′′ ⁗ - (‎ '''' ‎) 0027 0027 0027 0027 APOSTROPHE, APOSTROPHE, APOSTROPHE, APOSTROPHE -← (‎ ′′′′ ‎) 2032 2032 2032 2032 PRIME, PRIME, PRIME, PRIME -← (‎ ⁗ ‎) 2057 QUADRUPLE PRIME # →′′′′→ - -# 'B ʽB Ɓ - (‎ 'B ‎) 0027 0042 APOSTROPHE, LATIN CAPITAL LETTER B -← (‎ ʽB ‎) 02BD 0042 MODIFIER LETTER REVERSED COMMA, LATIN CAPITAL LETTER B -← (‎ Ɓ ‎) 0181 LATIN CAPITAL LETTER B WITH HOOK # →ʽB→ - -# 'D ʽD Ɗ - (‎ 'D ‎) 0027 0044 APOSTROPHE, LATIN CAPITAL LETTER D -← (‎ ʽD ‎) 02BD 0044 MODIFIER LETTER REVERSED COMMA, LATIN CAPITAL LETTER D -← (‎ Ɗ ‎) 018A LATIN CAPITAL LETTER D WITH HOOK # →ʽD→ - -# 'P ʽP Ƥ - (‎ 'P ‎) 0027 0050 APOSTROPHE, LATIN CAPITAL LETTER P -← (‎ ʽP ‎) 02BD 0050 MODIFIER LETTER REVERSED COMMA, LATIN CAPITAL LETTER P -← (‎ Ƥ ‎) 01A4 LATIN CAPITAL LETTER P WITH HOOK # →ʽP→ - -# 'T ʽT Ƭ - (‎ 'T ‎) 0027 0054 APOSTROPHE, LATIN CAPITAL LETTER T -← (‎ ʽT ‎) 02BD 0054 MODIFIER LETTER REVERSED COMMA, LATIN CAPITAL LETTER T -← (‎ Ƭ ‎) 01AC LATIN CAPITAL LETTER T WITH HOOK # →ʽT→ - -# 'Y ʽY Ƴ - (‎ 'Y ‎) 0027 0059 APOSTROPHE, LATIN CAPITAL LETTER Y -← (‎ ʽY ‎) 02BD 0059 MODIFIER LETTER REVERSED COMMA, LATIN CAPITAL LETTER Y -← (‎ Ƴ ‎) 01B3 LATIN CAPITAL LETTER Y WITH HOOK # →ʽY→ - -# 'n ʼn ʼn - (‎ 'n ‎) 0027 006E APOSTROPHE, LATIN SMALL LETTER N -← (‎ ʼn ‎) 02BC 006E MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER N -← (‎ ʼn ‎) 0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE # →ʼn→ - -# ( ❨ ❲ 〔 ﴾ [ - (‎ ( ‎) 0028 LEFT PARENTHESIS -← (‎ ❨ ‎) 2768 MEDIUM LEFT PARENTHESIS ORNAMENT -← (‎ ❲ ‎) 2772 LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT # →〔→ -← (‎ 〔 ‎) 3014 LEFT TORTOISE SHELL BRACKET -← (‎ ﴾ ‎) FD3E ORNATE LEFT PARENTHESIS -← (‎ [ ‎) FF3B FULLWIDTH LEFT SQUARE BRACKET # →〔→ - -# (( ⸨ - (‎ (( ‎) 0028 0028 LEFT PARENTHESIS, LEFT PARENTHESIS -← (‎ ⸨ ‎) 2E28 LEFT DOUBLE PARENTHESIS - -# (l) (I) (1) ⑴ ⒧ 🄘 - (‎ (1) ‎) 0028 0031 0029 LEFT PARENTHESIS, DIGIT ONE, RIGHT PARENTHESIS -← (‎ (l) ‎) 0028 006C 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS -← (‎ (I) ‎) 0028 0049 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER I, RIGHT PARENTHESIS # →(l)→ -← (‎ ⑴ ‎) 2474 PARENTHESIZED DIGIT ONE -← (‎ ⒧ ‎) 24A7 PARENTHESIZED LATIN SMALL LETTER L # →(l)→ -← (‎ 🄘 ‎) 1F118 PARENTHESIZED LATIN CAPITAL LETTER I # →(I)→→(l)→ - -# (lO) (l0) (10) ⑽ - (‎ (10) ‎) 0028 0031 0030 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT ZERO, RIGHT PARENTHESIS -← (‎ (lO) ‎) 0028 006C 004F 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS -← (‎ (l0) ‎) 0028 006C 0030 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT ZERO, RIGHT PARENTHESIS -← (‎ ⑽ ‎) 247D PARENTHESIZED NUMBER TEN - -# (ll) (11) ⑾ - (‎ (11) ‎) 0028 0031 0031 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT ONE, RIGHT PARENTHESIS -← (‎ (ll) ‎) 0028 006C 006C 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN SMALL LETTER L, RIGHT PARENTHESIS -← (‎ ⑾ ‎) 247E PARENTHESIZED NUMBER ELEVEN - -# (l2) (12) ⑿ - (‎ (12) ‎) 0028 0031 0032 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT TWO, RIGHT PARENTHESIS -← (‎ (l2) ‎) 0028 006C 0032 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT TWO, RIGHT PARENTHESIS -← (‎ ⑿ ‎) 247F PARENTHESIZED NUMBER TWELVE - -# (l3) (13) ⒀ - (‎ (13) ‎) 0028 0031 0033 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT THREE, RIGHT PARENTHESIS -← (‎ (l3) ‎) 0028 006C 0033 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT THREE, RIGHT PARENTHESIS -← (‎ ⒀ ‎) 2480 PARENTHESIZED NUMBER THIRTEEN - -# (l4) (14) ⒁ - (‎ (14) ‎) 0028 0031 0034 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT FOUR, RIGHT PARENTHESIS -← (‎ (l4) ‎) 0028 006C 0034 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FOUR, RIGHT PARENTHESIS -← (‎ ⒁ ‎) 2481 PARENTHESIZED NUMBER FOURTEEN - -# (l5) (15) ⒂ - (‎ (15) ‎) 0028 0031 0035 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT FIVE, RIGHT PARENTHESIS -← (‎ (l5) ‎) 0028 006C 0035 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FIVE, RIGHT PARENTHESIS -← (‎ ⒂ ‎) 2482 PARENTHESIZED NUMBER FIFTEEN - -# (l6) (16) ⒃ - (‎ (16) ‎) 0028 0031 0036 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT SIX, RIGHT PARENTHESIS -← (‎ (l6) ‎) 0028 006C 0036 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SIX, RIGHT PARENTHESIS -← (‎ ⒃ ‎) 2483 PARENTHESIZED NUMBER SIXTEEN - -# (l7) (17) ⒄ - (‎ (17) ‎) 0028 0031 0037 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT SEVEN, RIGHT PARENTHESIS -← (‎ (l7) ‎) 0028 006C 0037 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SEVEN, RIGHT PARENTHESIS -← (‎ ⒄ ‎) 2484 PARENTHESIZED NUMBER SEVENTEEN - -# (l8) (18) ⒅ - (‎ (18) ‎) 0028 0031 0038 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT EIGHT, RIGHT PARENTHESIS -← (‎ (l8) ‎) 0028 006C 0038 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT EIGHT, RIGHT PARENTHESIS -← (‎ ⒅ ‎) 2485 PARENTHESIZED NUMBER EIGHTEEN - -# (l9) (19) ⒆ - (‎ (19) ‎) 0028 0031 0039 0029 LEFT PARENTHESIS, DIGIT ONE, DIGIT NINE, RIGHT PARENTHESIS -← (‎ (l9) ‎) 0028 006C 0039 0029 LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT NINE, RIGHT PARENTHESIS -← (‎ ⒆ ‎) 2486 PARENTHESIZED NUMBER NINETEEN - -# (2) ⑵ - (‎ (2) ‎) 0028 0032 0029 LEFT PARENTHESIS, DIGIT TWO, RIGHT PARENTHESIS -← (‎ ⑵ ‎) 2475 PARENTHESIZED DIGIT TWO - -# (2O) (20) ⒇ - (‎ (20) ‎) 0028 0032 0030 0029 LEFT PARENTHESIS, DIGIT TWO, DIGIT ZERO, RIGHT PARENTHESIS -← (‎ (2O) ‎) 0028 0032 004F 0029 LEFT PARENTHESIS, DIGIT TWO, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS -← (‎ ⒇ ‎) 2487 PARENTHESIZED NUMBER TWENTY - -# (3) ⑶ - (‎ (3) ‎) 0028 0033 0029 LEFT PARENTHESIS, DIGIT THREE, RIGHT PARENTHESIS -← (‎ ⑶ ‎) 2476 PARENTHESIZED DIGIT THREE - -# (4) ⑷ - (‎ (4) ‎) 0028 0034 0029 LEFT PARENTHESIS, DIGIT FOUR, RIGHT PARENTHESIS -← (‎ ⑷ ‎) 2477 PARENTHESIZED DIGIT FOUR - -# (5) ⑸ - (‎ (5) ‎) 0028 0035 0029 LEFT PARENTHESIS, DIGIT FIVE, RIGHT PARENTHESIS -← (‎ ⑸ ‎) 2478 PARENTHESIZED DIGIT FIVE - -# (6) ⑹ - (‎ (6) ‎) 0028 0036 0029 LEFT PARENTHESIS, DIGIT SIX, RIGHT PARENTHESIS -← (‎ ⑹ ‎) 2479 PARENTHESIZED DIGIT SIX - -# (7) ⑺ - (‎ (7) ‎) 0028 0037 0029 LEFT PARENTHESIS, DIGIT SEVEN, RIGHT PARENTHESIS -← (‎ ⑺ ‎) 247A PARENTHESIZED DIGIT SEVEN - -# (8) ⑻ - (‎ (8) ‎) 0028 0038 0029 LEFT PARENTHESIS, DIGIT EIGHT, RIGHT PARENTHESIS -← (‎ ⑻ ‎) 247B PARENTHESIZED DIGIT EIGHT - -# (9) ⑼ - (‎ (9) ‎) 0028 0039 0029 LEFT PARENTHESIS, DIGIT NINE, RIGHT PARENTHESIS -← (‎ ⑼ ‎) 247C PARENTHESIZED DIGIT NINE - -# (A) 🄐 - (‎ (A) ‎) 0028 0041 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER A, RIGHT PARENTHESIS -← (‎ 🄐 ‎) 1F110 PARENTHESIZED LATIN CAPITAL LETTER A - -# (B) 🄑 - (‎ (B) ‎) 0028 0042 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER B, RIGHT PARENTHESIS -← (‎ 🄑 ‎) 1F111 PARENTHESIZED LATIN CAPITAL LETTER B - -# (C) 🄒 - (‎ (C) ‎) 0028 0043 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER C, RIGHT PARENTHESIS -← (‎ 🄒 ‎) 1F112 PARENTHESIZED LATIN CAPITAL LETTER C - -# (D) 🄓 - (‎ (D) ‎) 0028 0044 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER D, RIGHT PARENTHESIS -← (‎ 🄓 ‎) 1F113 PARENTHESIZED LATIN CAPITAL LETTER D - -# (E) 🄔 - (‎ (E) ‎) 0028 0045 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER E, RIGHT PARENTHESIS -← (‎ 🄔 ‎) 1F114 PARENTHESIZED LATIN CAPITAL LETTER E - -# (F) 🄕 - (‎ (F) ‎) 0028 0046 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER F, RIGHT PARENTHESIS -← (‎ 🄕 ‎) 1F115 PARENTHESIZED LATIN CAPITAL LETTER F - -# (G) 🄖 - (‎ (G) ‎) 0028 0047 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER G, RIGHT PARENTHESIS -← (‎ 🄖 ‎) 1F116 PARENTHESIZED LATIN CAPITAL LETTER G - -# (H) 🄗 - (‎ (H) ‎) 0028 0048 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER H, RIGHT PARENTHESIS -← (‎ 🄗 ‎) 1F117 PARENTHESIZED LATIN CAPITAL LETTER H - -# (J) 🄙 - (‎ (J) ‎) 0028 004A 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER J, RIGHT PARENTHESIS -← (‎ 🄙 ‎) 1F119 PARENTHESIZED LATIN CAPITAL LETTER J - -# (K) 🄚 - (‎ (K) ‎) 0028 004B 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER K, RIGHT PARENTHESIS -← (‎ 🄚 ‎) 1F11A PARENTHESIZED LATIN CAPITAL LETTER K - -# (L) 🄛 - (‎ (L) ‎) 0028 004C 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER L, RIGHT PARENTHESIS -← (‎ 🄛 ‎) 1F11B PARENTHESIZED LATIN CAPITAL LETTER L - -# (M) 🄜 - (‎ (M) ‎) 0028 004D 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER M, RIGHT PARENTHESIS -← (‎ 🄜 ‎) 1F11C PARENTHESIZED LATIN CAPITAL LETTER M - -# (N) 🄝 - (‎ (N) ‎) 0028 004E 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER N, RIGHT PARENTHESIS -← (‎ 🄝 ‎) 1F11D PARENTHESIZED LATIN CAPITAL LETTER N - -# (O) 🄞 - (‎ (O) ‎) 0028 004F 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS -← (‎ 🄞 ‎) 1F11E PARENTHESIZED LATIN CAPITAL LETTER O - -# (P) 🄟 - (‎ (P) ‎) 0028 0050 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER P, RIGHT PARENTHESIS -← (‎ 🄟 ‎) 1F11F PARENTHESIZED LATIN CAPITAL LETTER P - -# (Q) 🄠 - (‎ (Q) ‎) 0028 0051 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER Q, RIGHT PARENTHESIS -← (‎ 🄠 ‎) 1F120 PARENTHESIZED LATIN CAPITAL LETTER Q - -# (R) 🄡 - (‎ (R) ‎) 0028 0052 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER R, RIGHT PARENTHESIS -← (‎ 🄡 ‎) 1F121 PARENTHESIZED LATIN CAPITAL LETTER R - -# (S) 〔S〕 🄢 🄪 - (‎ (S) ‎) 0028 0053 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER S, RIGHT PARENTHESIS -← (‎ 〔S〕 ‎) 3014 0053 3015 LEFT TORTOISE SHELL BRACKET, LATIN CAPITAL LETTER S, RIGHT TORTOISE SHELL BRACKET -← (‎ 🄢 ‎) 1F122 PARENTHESIZED LATIN CAPITAL LETTER S -← (‎ 🄪 ‎) 1F12A TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S # →〔S〕→ - -# (T) 🄣 - (‎ (T) ‎) 0028 0054 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER T, RIGHT PARENTHESIS -← (‎ 🄣 ‎) 1F123 PARENTHESIZED LATIN CAPITAL LETTER T - -# (U) 🄤 - (‎ (U) ‎) 0028 0055 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER U, RIGHT PARENTHESIS -← (‎ 🄤 ‎) 1F124 PARENTHESIZED LATIN CAPITAL LETTER U - -# (V) 🄥 - (‎ (V) ‎) 0028 0056 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER V, RIGHT PARENTHESIS -← (‎ 🄥 ‎) 1F125 PARENTHESIZED LATIN CAPITAL LETTER V - -# (W) 🄦 - (‎ (W) ‎) 0028 0057 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER W, RIGHT PARENTHESIS -← (‎ 🄦 ‎) 1F126 PARENTHESIZED LATIN CAPITAL LETTER W - -# (X) 🄧 - (‎ (X) ‎) 0028 0058 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER X, RIGHT PARENTHESIS -← (‎ 🄧 ‎) 1F127 PARENTHESIZED LATIN CAPITAL LETTER X - -# (Y) 🄨 - (‎ (Y) ‎) 0028 0059 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER Y, RIGHT PARENTHESIS -← (‎ 🄨 ‎) 1F128 PARENTHESIZED LATIN CAPITAL LETTER Y - -# (Z) 🄩 - (‎ (Z) ‎) 0028 005A 0029 LEFT PARENTHESIS, LATIN CAPITAL LETTER Z, RIGHT PARENTHESIS -← (‎ 🄩 ‎) 1F129 PARENTHESIZED LATIN CAPITAL LETTER Z - -# (a) ⒜ - (‎ (a) ‎) 0028 0061 0029 LEFT PARENTHESIS, LATIN SMALL LETTER A, RIGHT PARENTHESIS -← (‎ ⒜ ‎) 249C PARENTHESIZED LATIN SMALL LETTER A - -# (b) ⒝ - (‎ (b) ‎) 0028 0062 0029 LEFT PARENTHESIS, LATIN SMALL LETTER B, RIGHT PARENTHESIS -← (‎ ⒝ ‎) 249D PARENTHESIZED LATIN SMALL LETTER B - -# (c) ⒞ - (‎ (c) ‎) 0028 0063 0029 LEFT PARENTHESIS, LATIN SMALL LETTER C, RIGHT PARENTHESIS -← (‎ ⒞ ‎) 249E PARENTHESIZED LATIN SMALL LETTER C - -# (d) ⒟ - (‎ (d) ‎) 0028 0064 0029 LEFT PARENTHESIS, LATIN SMALL LETTER D, RIGHT PARENTHESIS -← (‎ ⒟ ‎) 249F PARENTHESIZED LATIN SMALL LETTER D - -# (e) ⒠ - (‎ (e) ‎) 0028 0065 0029 LEFT PARENTHESIS, LATIN SMALL LETTER E, RIGHT PARENTHESIS -← (‎ ⒠ ‎) 24A0 PARENTHESIZED LATIN SMALL LETTER E - -# (f) ⒡ - (‎ (f) ‎) 0028 0066 0029 LEFT PARENTHESIS, LATIN SMALL LETTER F, RIGHT PARENTHESIS -← (‎ ⒡ ‎) 24A1 PARENTHESIZED LATIN SMALL LETTER F - -# (g) ⒢ - (‎ (g) ‎) 0028 0067 0029 LEFT PARENTHESIS, LATIN SMALL LETTER G, RIGHT PARENTHESIS -← (‎ ⒢ ‎) 24A2 PARENTHESIZED LATIN SMALL LETTER G - -# (h) ⒣ - (‎ (h) ‎) 0028 0068 0029 LEFT PARENTHESIS, LATIN SMALL LETTER H, RIGHT PARENTHESIS -← (‎ ⒣ ‎) 24A3 PARENTHESIZED LATIN SMALL LETTER H - -# (i) ⒤ - (‎ (i) ‎) 0028 0069 0029 LEFT PARENTHESIS, LATIN SMALL LETTER I, RIGHT PARENTHESIS -← (‎ ⒤ ‎) 24A4 PARENTHESIZED LATIN SMALL LETTER I - -# (j) ⒥ - (‎ (j) ‎) 0028 006A 0029 LEFT PARENTHESIS, LATIN SMALL LETTER J, RIGHT PARENTHESIS -← (‎ ⒥ ‎) 24A5 PARENTHESIZED LATIN SMALL LETTER J - -# (k) ⒦ - (‎ (k) ‎) 0028 006B 0029 LEFT PARENTHESIS, LATIN SMALL LETTER K, RIGHT PARENTHESIS -← (‎ ⒦ ‎) 24A6 PARENTHESIZED LATIN SMALL LETTER K - -# (rn) (m) ⒨ - (‎ (m) ‎) 0028 006D 0029 LEFT PARENTHESIS, LATIN SMALL LETTER M, RIGHT PARENTHESIS -← (‎ (rn) ‎) 0028 0072 006E 0029 LEFT PARENTHESIS, LATIN SMALL LETTER R, LATIN SMALL LETTER N, RIGHT PARENTHESIS -← (‎ ⒨ ‎) 24A8 PARENTHESIZED LATIN SMALL LETTER M - -# (n) ⒩ - (‎ (n) ‎) 0028 006E 0029 LEFT PARENTHESIS, LATIN SMALL LETTER N, RIGHT PARENTHESIS -← (‎ ⒩ ‎) 24A9 PARENTHESIZED LATIN SMALL LETTER N - -# (o) ⒪ - (‎ (o) ‎) 0028 006F 0029 LEFT PARENTHESIS, LATIN SMALL LETTER O, RIGHT PARENTHESIS -← (‎ ⒪ ‎) 24AA PARENTHESIZED LATIN SMALL LETTER O - -# (p) ⒫ - (‎ (p) ‎) 0028 0070 0029 LEFT PARENTHESIS, LATIN SMALL LETTER P, RIGHT PARENTHESIS -← (‎ ⒫ ‎) 24AB PARENTHESIZED LATIN SMALL LETTER P - -# (q) ⒬ - (‎ (q) ‎) 0028 0071 0029 LEFT PARENTHESIS, LATIN SMALL LETTER Q, RIGHT PARENTHESIS -← (‎ ⒬ ‎) 24AC PARENTHESIZED LATIN SMALL LETTER Q - -# (r) ⒭ - (‎ (r) ‎) 0028 0072 0029 LEFT PARENTHESIS, LATIN SMALL LETTER R, RIGHT PARENTHESIS -← (‎ ⒭ ‎) 24AD PARENTHESIZED LATIN SMALL LETTER R - -# (s) ⒮ - (‎ (s) ‎) 0028 0073 0029 LEFT PARENTHESIS, LATIN SMALL LETTER S, RIGHT PARENTHESIS -← (‎ ⒮ ‎) 24AE PARENTHESIZED LATIN SMALL LETTER S - -# (t) ⒯ - (‎ (t) ‎) 0028 0074 0029 LEFT PARENTHESIS, LATIN SMALL LETTER T, RIGHT PARENTHESIS -← (‎ ⒯ ‎) 24AF PARENTHESIZED LATIN SMALL LETTER T - -# (u) ⒰ - (‎ (u) ‎) 0028 0075 0029 LEFT PARENTHESIS, LATIN SMALL LETTER U, RIGHT PARENTHESIS -← (‎ ⒰ ‎) 24B0 PARENTHESIZED LATIN SMALL LETTER U - -# (v) ⒱ - (‎ (v) ‎) 0028 0076 0029 LEFT PARENTHESIS, LATIN SMALL LETTER V, RIGHT PARENTHESIS -← (‎ ⒱ ‎) 24B1 PARENTHESIZED LATIN SMALL LETTER V - -# (w) ⒲ - (‎ (w) ‎) 0028 0077 0029 LEFT PARENTHESIS, LATIN SMALL LETTER W, RIGHT PARENTHESIS -← (‎ ⒲ ‎) 24B2 PARENTHESIZED LATIN SMALL LETTER W - -# (x) ⒳ - (‎ (x) ‎) 0028 0078 0029 LEFT PARENTHESIS, LATIN SMALL LETTER X, RIGHT PARENTHESIS -← (‎ ⒳ ‎) 24B3 PARENTHESIZED LATIN SMALL LETTER X - -# (y) ⒴ - (‎ (y) ‎) 0028 0079 0029 LEFT PARENTHESIS, LATIN SMALL LETTER Y, RIGHT PARENTHESIS -← (‎ ⒴ ‎) 24B4 PARENTHESIZED LATIN SMALL LETTER Y - -# (z) ⒵ - (‎ (z) ‎) 0028 007A 0029 LEFT PARENTHESIS, LATIN SMALL LETTER Z, RIGHT PARENTHESIS -← (‎ ⒵ ‎) 24B5 PARENTHESIZED LATIN SMALL LETTER Z - -# (ᄀ) ㈀ - (‎ (ᄀ) ‎) 0028 1100 0029 LEFT PARENTHESIS, HANGUL CHOSEONG KIYEOK, RIGHT PARENTHESIS -← (‎ ㈀ ‎) 3200 PARENTHESIZED HANGUL KIYEOK - -# (ᄂ) ㈁ - (‎ (ᄂ) ‎) 0028 1102 0029 LEFT PARENTHESIS, HANGUL CHOSEONG NIEUN, RIGHT PARENTHESIS -← (‎ ㈁ ‎) 3201 PARENTHESIZED HANGUL NIEUN - -# (ᄃ) ㈂ - (‎ (ᄃ) ‎) 0028 1103 0029 LEFT PARENTHESIS, HANGUL CHOSEONG TIKEUT, RIGHT PARENTHESIS -← (‎ ㈂ ‎) 3202 PARENTHESIZED HANGUL TIKEUT - -# (ᄅ) ㈃ - (‎ (ᄅ) ‎) 0028 1105 0029 LEFT PARENTHESIS, HANGUL CHOSEONG RIEUL, RIGHT PARENTHESIS -← (‎ ㈃ ‎) 3203 PARENTHESIZED HANGUL RIEUL - -# (ᄆ) ㈄ - (‎ (ᄆ) ‎) 0028 1106 0029 LEFT PARENTHESIS, HANGUL CHOSEONG MIEUM, RIGHT PARENTHESIS -← (‎ ㈄ ‎) 3204 PARENTHESIZED HANGUL MIEUM - -# (ᄇ) ㈅ - (‎ (ᄇ) ‎) 0028 1107 0029 LEFT PARENTHESIS, HANGUL CHOSEONG PIEUP, RIGHT PARENTHESIS -← (‎ ㈅ ‎) 3205 PARENTHESIZED HANGUL PIEUP - -# (ᄉ) ㈆ - (‎ (ᄉ) ‎) 0028 1109 0029 LEFT PARENTHESIS, HANGUL CHOSEONG SIOS, RIGHT PARENTHESIS -← (‎ ㈆ ‎) 3206 PARENTHESIZED HANGUL SIOS - -# (ᄋ) ㈇ - (‎ (ᄋ) ‎) 0028 110B 0029 LEFT PARENTHESIS, HANGUL CHOSEONG IEUNG, RIGHT PARENTHESIS -← (‎ ㈇ ‎) 3207 PARENTHESIZED HANGUL IEUNG - -# (ᄌ) ㈈ - (‎ (ᄌ) ‎) 0028 110C 0029 LEFT PARENTHESIS, HANGUL CHOSEONG CIEUC, RIGHT PARENTHESIS -← (‎ ㈈ ‎) 3208 PARENTHESIZED HANGUL CIEUC - -# (ᄎ) ㈉ - (‎ (ᄎ) ‎) 0028 110E 0029 LEFT PARENTHESIS, HANGUL CHOSEONG CHIEUCH, RIGHT PARENTHESIS -← (‎ ㈉ ‎) 3209 PARENTHESIZED HANGUL CHIEUCH - -# (ᄏ) ㈊ - (‎ (ᄏ) ‎) 0028 110F 0029 LEFT PARENTHESIS, HANGUL CHOSEONG KHIEUKH, RIGHT PARENTHESIS -← (‎ ㈊ ‎) 320A PARENTHESIZED HANGUL KHIEUKH - -# (ᄐ) ㈋ - (‎ (ᄐ) ‎) 0028 1110 0029 LEFT PARENTHESIS, HANGUL CHOSEONG THIEUTH, RIGHT PARENTHESIS -← (‎ ㈋ ‎) 320B PARENTHESIZED HANGUL THIEUTH - -# (ᄑ) ㈌ - (‎ (ᄑ) ‎) 0028 1111 0029 LEFT PARENTHESIS, HANGUL CHOSEONG PHIEUPH, RIGHT PARENTHESIS -← (‎ ㈌ ‎) 320C PARENTHESIZED HANGUL PHIEUPH - -# (ᄒ) ㈍ - (‎ (ᄒ) ‎) 0028 1112 0029 LEFT PARENTHESIS, HANGUL CHOSEONG HIEUH, RIGHT PARENTHESIS -← (‎ ㈍ ‎) 320D PARENTHESIZED HANGUL HIEUH - -# (ー) (一) ㈠ - (‎ (ー) ‎) 0028 30FC 0029 LEFT PARENTHESIS, KATAKANA-HIRAGANA PROLONGED SOUND MARK, RIGHT PARENTHESIS -← (‎ (一) ‎) 0028 4E00 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E00, RIGHT PARENTHESIS -← (‎ ㈠ ‎) 3220 PARENTHESIZED IDEOGRAPH ONE # →(一)→ - -# (七) ㈦ - (‎ (七) ‎) 0028 4E03 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E03, RIGHT PARENTHESIS -← (‎ ㈦ ‎) 3226 PARENTHESIZED IDEOGRAPH SEVEN - -# (三) 〔三〕 ㈢ 🉁 - (‎ (三) ‎) 0028 4E09 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E09, RIGHT PARENTHESIS -← (‎ 〔三〕 ‎) 3014 4E09 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-4E09, RIGHT TORTOISE SHELL BRACKET -← (‎ ㈢ ‎) 3222 PARENTHESIZED IDEOGRAPH THREE -← (‎ 🉁 ‎) 1F241 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 # →〔三〕→ - -# (九) ㈨ - (‎ (九) ‎) 0028 4E5D 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E5D, RIGHT PARENTHESIS -← (‎ ㈨ ‎) 3228 PARENTHESIZED IDEOGRAPH NINE - -# (二) 〔二〕 ㈡ 🉂 - (‎ (二) ‎) 0028 4E8C 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E8C, RIGHT PARENTHESIS -← (‎ 〔二〕 ‎) 3014 4E8C 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-4E8C, RIGHT TORTOISE SHELL BRACKET -← (‎ ㈡ ‎) 3221 PARENTHESIZED IDEOGRAPH TWO -← (‎ 🉂 ‎) 1F242 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C # →〔二〕→ - -# (五) ㈤ - (‎ (五) ‎) 0028 4E94 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E94, RIGHT PARENTHESIS -← (‎ ㈤ ‎) 3224 PARENTHESIZED IDEOGRAPH FIVE - -# (代) ㈹ - (‎ (代) ‎) 0028 4EE3 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4EE3, RIGHT PARENTHESIS -← (‎ ㈹ ‎) 3239 PARENTHESIZED IDEOGRAPH REPRESENT - -# (企) ㈽ - (‎ (企) ‎) 0028 4F01 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F01, RIGHT PARENTHESIS -← (‎ ㈽ ‎) 323D PARENTHESIZED IDEOGRAPH ENTERPRISE - -# (休) ㉁ - (‎ (休) ‎) 0028 4F11 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F11, RIGHT PARENTHESIS -← (‎ ㉁ ‎) 3241 PARENTHESIZED IDEOGRAPH REST - -# (八) ㈧ - (‎ (八) ‎) 0028 516B 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516B, RIGHT PARENTHESIS -← (‎ ㈧ ‎) 3227 PARENTHESIZED IDEOGRAPH EIGHT - -# (六) ㈥ - (‎ (六) ‎) 0028 516D 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516D, RIGHT PARENTHESIS -← (‎ ㈥ ‎) 3225 PARENTHESIZED IDEOGRAPH SIX - -# (労) ㈸ - (‎ (労) ‎) 0028 52B4 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-52B4, RIGHT PARENTHESIS -← (‎ ㈸ ‎) 3238 PARENTHESIZED IDEOGRAPH LABOR - -# (勝) 〔勝〕 🉇 - (‎ (勝) ‎) 0028 52DD 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-52DD, RIGHT PARENTHESIS -← (‎ 〔勝〕 ‎) 3014 52DD 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-52DD, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉇 ‎) 1F247 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD # →〔勝〕→ - -# (十) ㈩ - (‎ (十) ‎) 0028 5341 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5341, RIGHT PARENTHESIS -← (‎ ㈩ ‎) 3229 PARENTHESIZED IDEOGRAPH TEN - -# (協) ㈿ - (‎ (協) ‎) 0028 5354 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5354, RIGHT PARENTHESIS -← (‎ ㈿ ‎) 323F PARENTHESIZED IDEOGRAPH ALLIANCE - -# (名) ㈴ - (‎ (名) ‎) 0028 540D 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-540D, RIGHT PARENTHESIS -← (‎ ㈴ ‎) 3234 PARENTHESIZED IDEOGRAPH NAME - -# (呼) ㈺ - (‎ (呼) ‎) 0028 547C 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-547C, RIGHT PARENTHESIS -← (‎ ㈺ ‎) 323A PARENTHESIZED IDEOGRAPH CALL - -# (四) ㈣ - (‎ (四) ‎) 0028 56DB 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-56DB, RIGHT PARENTHESIS -← (‎ ㈣ ‎) 3223 PARENTHESIZED IDEOGRAPH FOUR - -# (土) ㈯ - (‎ (土) ‎) 0028 571F 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-571F, RIGHT PARENTHESIS -← (‎ ㈯ ‎) 322F PARENTHESIZED IDEOGRAPH EARTH - -# (学) ㈻ - (‎ (学) ‎) 0028 5B66 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5B66, RIGHT PARENTHESIS -← (‎ ㈻ ‎) 323B PARENTHESIZED IDEOGRAPH STUDY - -# (安) 〔安〕 🉃 - (‎ (安) ‎) 0028 5B89 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5B89, RIGHT PARENTHESIS -← (‎ 〔安〕 ‎) 3014 5B89 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-5B89, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉃 ‎) 1F243 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 # →〔安〕→ - -# (打) 〔打〕 🉅 - (‎ (打) ‎) 0028 6253 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6253, RIGHT PARENTHESIS -← (‎ 〔打〕 ‎) 3014 6253 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-6253, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉅 ‎) 1F245 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 # →〔打〕→ - -# (敗) 〔敗〕 🉈 - (‎ (敗) ‎) 0028 6557 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6557, RIGHT PARENTHESIS -← (‎ 〔敗〕 ‎) 3014 6557 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-6557, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉈 ‎) 1F248 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 # →〔敗〕→ - -# (日) ㈰ - (‎ (日) ‎) 0028 65E5 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-65E5, RIGHT PARENTHESIS -← (‎ ㈰ ‎) 3230 PARENTHESIZED IDEOGRAPH SUN - -# (月) ㈪ - (‎ (月) ‎) 0028 6708 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6708, RIGHT PARENTHESIS -← (‎ ㈪ ‎) 322A PARENTHESIZED IDEOGRAPH MOON - -# (有) ㈲ - (‎ (有) ‎) 0028 6709 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6709, RIGHT PARENTHESIS -← (‎ ㈲ ‎) 3232 PARENTHESIZED IDEOGRAPH HAVE - -# (木) ㈭ - (‎ (木) ‎) 0028 6728 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6728, RIGHT PARENTHESIS -← (‎ ㈭ ‎) 322D PARENTHESIZED IDEOGRAPH WOOD - -# (本) 〔本〕 🉀 - (‎ (本) ‎) 0028 672C 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-672C, RIGHT PARENTHESIS -← (‎ 〔本〕 ‎) 3014 672C 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-672C, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉀 ‎) 1F240 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C # →〔本〕→ - -# (株) ㈱ - (‎ (株) ‎) 0028 682A 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-682A, RIGHT PARENTHESIS -← (‎ ㈱ ‎) 3231 PARENTHESIZED IDEOGRAPH STOCK - -# (水) ㈬ - (‎ (水) ‎) 0028 6C34 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6C34, RIGHT PARENTHESIS -← (‎ ㈬ ‎) 322C PARENTHESIZED IDEOGRAPH WATER - -# (火) ㈫ - (‎ (火) ‎) 0028 706B 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-706B, RIGHT PARENTHESIS -← (‎ ㈫ ‎) 322B PARENTHESIZED IDEOGRAPH FIRE - -# (点) 〔点〕 🉄 - (‎ (点) ‎) 0028 70B9 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-70B9, RIGHT PARENTHESIS -← (‎ 〔点〕 ‎) 3014 70B9 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-70B9, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉄 ‎) 1F244 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 # →〔点〕→ - -# (特) ㈵ - (‎ (特) ‎) 0028 7279 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-7279, RIGHT PARENTHESIS -← (‎ ㈵ ‎) 3235 PARENTHESIZED IDEOGRAPH SPECIAL - -# (盗) 〔盗〕 🉆 - (‎ (盗) ‎) 0028 76D7 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-76D7, RIGHT PARENTHESIS -← (‎ 〔盗〕 ‎) 3014 76D7 3015 LEFT TORTOISE SHELL BRACKET, CJK UNIFIED IDEOGRAPH-76D7, RIGHT TORTOISE SHELL BRACKET -← (‎ 🉆 ‎) 1F246 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 # →〔盗〕→ - -# (監) ㈼ - (‎ (監) ‎) 0028 76E3 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-76E3, RIGHT PARENTHESIS -← (‎ ㈼ ‎) 323C PARENTHESIZED IDEOGRAPH SUPERVISE - -# (社) ㈳ - (‎ (社) ‎) 0028 793E 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-793E, RIGHT PARENTHESIS -← (‎ ㈳ ‎) 3233 PARENTHESIZED IDEOGRAPH SOCIETY - -# (祝) ㈷ - (‎ (祝) ‎) 0028 795D 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-795D, RIGHT PARENTHESIS -← (‎ ㈷ ‎) 3237 PARENTHESIZED IDEOGRAPH CONGRATULATION - -# (祭) ㉀ - (‎ (祭) ‎) 0028 796D 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-796D, RIGHT PARENTHESIS -← (‎ ㉀ ‎) 3240 PARENTHESIZED IDEOGRAPH FESTIVAL - -# (自) ㉂ - (‎ (自) ‎) 0028 81EA 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81EA, RIGHT PARENTHESIS -← (‎ ㉂ ‎) 3242 PARENTHESIZED IDEOGRAPH SELF - -# (至) ㉃ - (‎ (至) ‎) 0028 81F3 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81F3, RIGHT PARENTHESIS -← (‎ ㉃ ‎) 3243 PARENTHESIZED IDEOGRAPH REACH - -# (財) ㈶ - (‎ (財) ‎) 0028 8CA1 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CA1, RIGHT PARENTHESIS -← (‎ ㈶ ‎) 3236 PARENTHESIZED IDEOGRAPH FINANCIAL - -# (資) ㈾ - (‎ (資) ‎) 0028 8CC7 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CC7, RIGHT PARENTHESIS -← (‎ ㈾ ‎) 323E PARENTHESIZED IDEOGRAPH RESOURCE - -# (金) ㈮ - (‎ (金) ‎) 0028 91D1 0029 LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-91D1, RIGHT PARENTHESIS -← (‎ ㈮ ‎) 322E PARENTHESIZED IDEOGRAPH METAL - -# (가) ㈎ - (‎ (가) ‎) 0028 AC00 0029 LEFT PARENTHESIS, HANGUL SYLLABLE GA, RIGHT PARENTHESIS -← (‎ ㈎ ‎) 320E PARENTHESIZED HANGUL KIYEOK A - -# (나) ㈏ - (‎ (나) ‎) 0028 B098 0029 LEFT PARENTHESIS, HANGUL SYLLABLE NA, RIGHT PARENTHESIS -← (‎ ㈏ ‎) 320F PARENTHESIZED HANGUL NIEUN A - -# (다) ㈐ - (‎ (다) ‎) 0028 B2E4 0029 LEFT PARENTHESIS, HANGUL SYLLABLE DA, RIGHT PARENTHESIS -← (‎ ㈐ ‎) 3210 PARENTHESIZED HANGUL TIKEUT A - -# (라) ㈑ - (‎ (라) ‎) 0028 B77C 0029 LEFT PARENTHESIS, HANGUL SYLLABLE RA, RIGHT PARENTHESIS -← (‎ ㈑ ‎) 3211 PARENTHESIZED HANGUL RIEUL A - -# (마) ㈒ - (‎ (마) ‎) 0028 B9C8 0029 LEFT PARENTHESIS, HANGUL SYLLABLE MA, RIGHT PARENTHESIS -← (‎ ㈒ ‎) 3212 PARENTHESIZED HANGUL MIEUM A - -# (바) ㈓ - (‎ (바) ‎) 0028 BC14 0029 LEFT PARENTHESIS, HANGUL SYLLABLE BA, RIGHT PARENTHESIS -← (‎ ㈓ ‎) 3213 PARENTHESIZED HANGUL PIEUP A - -# (사) ㈔ - (‎ (사) ‎) 0028 C0AC 0029 LEFT PARENTHESIS, HANGUL SYLLABLE SA, RIGHT PARENTHESIS -← (‎ ㈔ ‎) 3214 PARENTHESIZED HANGUL SIOS A - -# (아) ㈕ - (‎ (아) ‎) 0028 C544 0029 LEFT PARENTHESIS, HANGUL SYLLABLE A, RIGHT PARENTHESIS -← (‎ ㈕ ‎) 3215 PARENTHESIZED HANGUL IEUNG A - -# (오전) ㈝ - (‎ (오전) ‎) 0028 C624 C804 0029 LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE JEON, RIGHT PARENTHESIS -← (‎ ㈝ ‎) 321D PARENTHESIZED KOREAN CHARACTER OJEON - -# (오후) ㈞ - (‎ (오후) ‎) 0028 C624 D6C4 0029 LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE HU, RIGHT PARENTHESIS -← (‎ ㈞ ‎) 321E PARENTHESIZED KOREAN CHARACTER O HU - -# (자) ㈖ - (‎ (자) ‎) 0028 C790 0029 LEFT PARENTHESIS, HANGUL SYLLABLE JA, RIGHT PARENTHESIS -← (‎ ㈖ ‎) 3216 PARENTHESIZED HANGUL CIEUC A - -# (주) ㈜ - (‎ (주) ‎) 0028 C8FC 0029 LEFT PARENTHESIS, HANGUL SYLLABLE JU, RIGHT PARENTHESIS -← (‎ ㈜ ‎) 321C PARENTHESIZED HANGUL CIEUC U - -# (차) ㈗ - (‎ (차) ‎) 0028 CC28 0029 LEFT PARENTHESIS, HANGUL SYLLABLE CA, RIGHT PARENTHESIS -← (‎ ㈗ ‎) 3217 PARENTHESIZED HANGUL CHIEUCH A - -# (카) ㈘ - (‎ (카) ‎) 0028 CE74 0029 LEFT PARENTHESIS, HANGUL SYLLABLE KA, RIGHT PARENTHESIS -← (‎ ㈘ ‎) 3218 PARENTHESIZED HANGUL KHIEUKH A - -# (타) ㈙ - (‎ (타) ‎) 0028 D0C0 0029 LEFT PARENTHESIS, HANGUL SYLLABLE TA, RIGHT PARENTHESIS -← (‎ ㈙ ‎) 3219 PARENTHESIZED HANGUL THIEUTH A - -# (파) ㈚ - (‎ (파) ‎) 0028 D30C 0029 LEFT PARENTHESIS, HANGUL SYLLABLE PA, RIGHT PARENTHESIS -← (‎ ㈚ ‎) 321A PARENTHESIZED HANGUL PHIEUPH A - -# (하) ㈛ - (‎ (하) ‎) 0028 D558 0029 LEFT PARENTHESIS, HANGUL SYLLABLE HA, RIGHT PARENTHESIS -← (‎ ㈛ ‎) 321B PARENTHESIZED HANGUL HIEUH A - -# ) ❩ ❳ 〕 ﴿ ] - (‎ ) ‎) 0029 RIGHT PARENTHESIS -← (‎ ❩ ‎) 2769 MEDIUM RIGHT PARENTHESIS ORNAMENT -← (‎ ❳ ‎) 2773 LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT # →〕→ -← (‎ 〕 ‎) 3015 RIGHT TORTOISE SHELL BRACKET -← (‎ ﴿ ‎) FD3F ORNATE RIGHT PARENTHESIS -← (‎ ] ‎) FF3D FULLWIDTH RIGHT SQUARE BRACKET # →〕→ - -# )) ⸩ - (‎ )) ‎) 0029 0029 RIGHT PARENTHESIS, RIGHT PARENTHESIS -← (‎ ⸩ ‎) 2E29 RIGHT DOUBLE PARENTHESIS - -# * ٭ ⁎ ∗ 𐌟 - (‎ * ‎) 002A ASTERISK -← (‎ ٭ ‎) 066D ARABIC FIVE POINTED STAR -← (‎ ⁎ ‎) 204E LOW ASTERISK -← (‎ ∗ ‎) 2217 ASTERISK OPERATOR -← (‎ 𐌟 ‎) 1031F OLD ITALIC LETTER ESS - -# + 𐊛 ᛭ ➕ - (‎ + ‎) 002B PLUS SIGN -← (‎ 𐊛 ‎) 1029B LYCIAN LETTER H -← (‎ ᛭ ‎) 16ED RUNIC CROSS PUNCTUATION -← (‎ ➕ ‎) 2795 HEAVY PLUS SIGN - -# +̂ ⨣ - (‎ +̂ ‎) 002B 0302 PLUS SIGN, COMBINING CIRCUMFLEX ACCENT -← (‎ ⨣ ‎) 2A23 PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE - -# +̃ ⨤ - (‎ +̃ ‎) 002B 0303 PLUS SIGN, COMBINING TILDE -← (‎ ⨤ ‎) 2A24 PLUS SIGN WITH TILDE ABOVE - -# +̇ ∔ - (‎ +̇ ‎) 002B 0307 PLUS SIGN, COMBINING DOT ABOVE -← (‎ ∔ ‎) 2214 DOT PLUS - -# +̊ ⨢ - (‎ +̊ ‎) 002B 030A PLUS SIGN, COMBINING RING ABOVE -← (‎ ⨢ ‎) 2A22 PLUS SIGN WITH SMALL CIRCLE ABOVE - -# +̣ ⨥ - (‎ +̣ ‎) 002B 0323 PLUS SIGN, COMBINING DOT BELOW -← (‎ ⨥ ‎) 2A25 PLUS SIGN WITH DOT BELOW - -# +̰ ⨦ - (‎ +̰ ‎) 002B 0330 PLUS SIGN, COMBINING TILDE BELOW -← (‎ ⨦ ‎) 2A26 PLUS SIGN WITH TILDE BELOW - -# +₂ ⨧ - (‎ +₂ ‎) 002B 2082 PLUS SIGN, SUBSCRIPT TWO -← (‎ ⨧ ‎) 2A27 PLUS SIGN WITH SUBSCRIPT TWO - -# , ꓹ ؍ ٫ ‚ ¸ - (‎ , ‎) 002C COMMA -← (‎ ꓹ ‎) A4F9 LISU LETTER TONE NA PO -← (‎ ؍ ‎) 060D ARABIC DATE SEPARATOR # →‎٫‎→ -← (‎ ٫ ‎) 066B ARABIC DECIMAL SEPARATOR -← (‎ ‚ ‎) 201A SINGLE LOW-9 QUOTATION MARK -← (‎ ¸ ‎) 00B8 CEDILLA - -# - Ⲻ ‐ ˗ ۔ ‒ – ⁃ − ➖ ‑ ﹘ - (‎ - ‎) 002D HYPHEN-MINUS -← (‎ Ⲻ ‎) 2CBA COPTIC CAPITAL LETTER DIALECT-P NI # →‒→ -← (‎ ‐ ‎) 2010 HYPHEN -← (‎ ˗ ‎) 02D7 MODIFIER LETTER MINUS SIGN -← (‎ ۔ ‎) 06D4 ARABIC FULL STOP # →‐→ -← (‎ ‒ ‎) 2012 FIGURE DASH -← (‎ – ‎) 2013 EN DASH -← (‎ ⁃ ‎) 2043 HYPHEN BULLET # →‐→ -← (‎ − ‎) 2212 MINUS SIGN -← (‎ ➖ ‎) 2796 HEAVY MINUS SIGN # →−→ -← (‎ ‑ ‎) 2011 NON-BREAKING HYPHEN -← (‎ ﹘ ‎) FE58 SMALL EM DASH - -# -. ꓾ - (‎ -. ‎) 002D 002E HYPHEN-MINUS, FULL STOP -← (‎ ꓾ ‎) A4FE LISU PUNCTUATION COMMA - -# -̇ −̇ ∸ ﬩ - (‎ -̇ ‎) 002D 0307 HYPHEN-MINUS, COMBINING DOT ABOVE -← (‎ −̇ ‎) 2212 0307 MINUS SIGN, COMBINING DOT ABOVE -← (‎ ∸ ‎) 2238 DOT MINUS # →−̇→ -← (‎ ﬩ ‎) FB29 HEBREW LETTER ALTERNATIVE PLUS SIGN # →∸→→−̇→ - -# -̈ ⸚ - (‎ -̈ ‎) 002D 0308 HYPHEN-MINUS, COMBINING DIAERESIS -← (‎ ⸚ ‎) 2E1A HYPHEN WITH DIAERESIS - -# -̓ −̓ ⨩ - (‎ -̓ ‎) 002D 0313 HYPHEN-MINUS, COMBINING COMMA ABOVE -← (‎ −̓ ‎) 2212 0313 MINUS SIGN, COMBINING COMMA ABOVE -← (‎ ⨩ ‎) 2A29 MINUS SIGN WITH COMMA ABOVE # →−̓→ - -# -̣ −̣ ⨪ - (‎ -̣ ‎) 002D 0323 HYPHEN-MINUS, COMBINING DOT BELOW -← (‎ −̣ ‎) 2212 0323 MINUS SIGN, COMBINING DOT BELOW -← (‎ ⨪ ‎) 2A2A MINUS SIGN WITH DOT BELOW # →−̣→ - -# . ٠ ۰ ꓸ 𝅭 ܁ ܂ ꘎ 𐩐 ․ - (‎ . ‎) 002E FULL STOP -← (‎ ٠ ‎) 0660 ARABIC-INDIC DIGIT ZERO -← (‎ ۰ ‎) 06F0 EXTENDED ARABIC-INDIC DIGIT ZERO # →‎٠‎→ -← (‎ ꓸ ‎) A4F8 LISU LETTER TONE MYA TI -← (‎ 𝅭 ‎) 1D16D MUSICAL SYMBOL COMBINING AUGMENTATION DOT -← (‎ ܁ ‎) 0701 SYRIAC SUPRALINEAR FULL STOP -← (‎ ܂ ‎) 0702 SYRIAC SUBLINEAR FULL STOP -← (‎ ꘎ ‎) A60E VAI FULL STOP -← (‎ 𐩐 ‎) 10A50 KHAROSHTHI PUNCTUATION DOT -← (‎ ․ ‎) 2024 ONE DOT LEADER - -# ., ꓻ - (‎ ., ‎) 002E 002C FULL STOP, COMMA -← (‎ ꓻ ‎) A4FB LISU LETTER TONE MYA BO - -# .. ꓺ ‥ - (‎ .. ‎) 002E 002E FULL STOP, FULL STOP -← (‎ ꓺ ‎) A4FA LISU LETTER TONE MYA CYA -← (‎ ‥ ‎) 2025 TWO DOT LEADER - -# ... … - (‎ ... ‎) 002E 002E 002E FULL STOP, FULL STOP, FULL STOP -← (‎ … ‎) 2026 HORIZONTAL ELLIPSIS - -# / ノ 丿 Ⳇ 〳 ᜵ ⁁ ⁄ ∕ ╱ ⟋ ⧸ ㇓ 𝈺 ⼃ - (‎ / ‎) 002F SOLIDUS -← (‎ ノ ‎) 30CE KATAKANA LETTER NO # →⼃→ -← (‎ 丿 ‎) 4E3F CJK UNIFIED IDEOGRAPH-4E3F # →⼃→ -← (‎ Ⳇ ‎) 2CC6 COPTIC CAPITAL LETTER OLD COPTIC ESH -← (‎ 〳 ‎) 3033 VERTICAL KANA REPEAT MARK UPPER HALF -← (‎ ᜵ ‎) 1735 PHILIPPINE SINGLE PUNCTUATION -← (‎ ⁁ ‎) 2041 CARET INSERTION POINT -← (‎ ⁄ ‎) 2044 FRACTION SLASH -← (‎ ∕ ‎) 2215 DIVISION SLASH -← (‎ ╱ ‎) 2571 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -← (‎ ⟋ ‎) 27CB MATHEMATICAL RISING DIAGONAL -← (‎ ⧸ ‎) 29F8 BIG SOLIDUS -← (‎ ㇓ ‎) 31D3 CJK STROKE SP # →⼃→ -← (‎ 𝈺 ‎) 1D23A GREEK INSTRUMENTAL NOTATION SYMBOL-47 -← (‎ ⼃ ‎) 2F03 KANGXI RADICAL SLASH - -# // ⫽ - (‎ // ‎) 002F 002F SOLIDUS, SOLIDUS -← (‎ ⫽ ‎) 2AFD DOUBLE SOLIDUS OPERATOR - -# /// ⫻ - (‎ /// ‎) 002F 002F 002F SOLIDUS, SOLIDUS, SOLIDUS -← (‎ ⫻ ‎) 2AFB TRIPLE SOLIDUS BINARY RELATION - -# /̄ ⧶ - (‎ /̄ ‎) 002F 0304 SOLIDUS, COMBINING MACRON -← (‎ ⧶ ‎) 29F6 SOLIDUS WITH OVERBAR - -# O 0 ০ ଠ ୦ ዐ 〇 Ο О Օ ߀ Ⲟ ⵔ ꓳ 𐊒 𐊫 𐐄 𐔖 𑓐 𑢵 𑣠 𐓂 🯰 O 𝐎 𝑂 𝑶 𝒪 𝓞 𝔒 𝕆 𝕺 𝖮 𝗢 𝘖 𝙊 𝙾 𝚶 𝛰 𝜪 𝝤 𝞞 𝟎 𝟘 𝟢 𝟬 𝟶 - (‎ 0 ‎) 0030 DIGIT ZERO -← (‎ O ‎) 004F LATIN CAPITAL LETTER O -← (‎ ০ ‎) 09E6 BENGALI DIGIT ZERO -← (‎ ଠ ‎) 0B20 ORIYA LETTER TTHA # →୦→ -← (‎ ୦ ‎) 0B66 ORIYA DIGIT ZERO -← (‎ ዐ ‎) 12D0 ETHIOPIC SYLLABLE PHARYNGEAL A # →Օ→→О→ -← (‎ 〇 ‎) 3007 IDEOGRAPHIC NUMBER ZERO # →O→ -← (‎ Ο ‎) 039F GREEK CAPITAL LETTER OMICRON -← (‎ О ‎) 041E CYRILLIC CAPITAL LETTER O -← (‎ Օ ‎) 0555 ARMENIAN CAPITAL LETTER OH # →О→ -← (‎ ߀ ‎) 07C0 NKO DIGIT ZERO -← (‎ Ⲟ ‎) 2C9E COPTIC CAPITAL LETTER O # →О→ -← (‎ ⵔ ‎) 2D54 TIFINAGH LETTER YAR # →О→ -← (‎ ꓳ ‎) A4F3 LISU LETTER O # →O→ -← (‎ 𐊒 ‎) 10292 LYCIAN LETTER U # →O→ -← (‎ 𐊫 ‎) 102AB CARIAN LETTER O # →O→ -← (‎ 𐐄 ‎) 10404 DESERET CAPITAL LETTER LONG O # →O→ -← (‎ 𐔖 ‎) 10516 ELBASAN LETTER O # →O→ -← (‎ 𑓐 ‎) 114D0 TIRHUTA DIGIT ZERO # →০→ -← (‎ 𑢵 ‎) 118B5 WARANG CITI CAPITAL LETTER AT # →O→ -← (‎ 𑣠 ‎) 118E0 WARANG CITI DIGIT ZERO -← (‎ 𐓂 ‎) 104C2 OSAGE CAPITAL LETTER O # →O→ -← (‎ 🯰 ‎) 1FBF0 SEGMENTED DIGIT ZERO -← (‎ O ‎) FF2F FULLWIDTH LATIN CAPITAL LETTER O # →О→ -← (‎ 𝐎 ‎) 1D40E MATHEMATICAL BOLD CAPITAL O # →O→ -← (‎ 𝑂 ‎) 1D442 MATHEMATICAL ITALIC CAPITAL O # →O→ -← (‎ 𝑶 ‎) 1D476 MATHEMATICAL BOLD ITALIC CAPITAL O # →O→ -← (‎ 𝒪 ‎) 1D4AA MATHEMATICAL SCRIPT CAPITAL O # →O→ -← (‎ 𝓞 ‎) 1D4DE MATHEMATICAL BOLD SCRIPT CAPITAL O # →O→ -← (‎ 𝔒 ‎) 1D512 MATHEMATICAL FRAKTUR CAPITAL O # →O→ -← (‎ 𝕆 ‎) 1D546 MATHEMATICAL DOUBLE-STRUCK CAPITAL O # →O→ -← (‎ 𝕺 ‎) 1D57A MATHEMATICAL BOLD FRAKTUR CAPITAL O # →O→ -← (‎ 𝖮 ‎) 1D5AE MATHEMATICAL SANS-SERIF CAPITAL O # →O→ -← (‎ 𝗢 ‎) 1D5E2 MATHEMATICAL SANS-SERIF BOLD CAPITAL O # →O→ -← (‎ 𝘖 ‎) 1D616 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O # →O→ -← (‎ 𝙊 ‎) 1D64A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O # →O→ -← (‎ 𝙾 ‎) 1D67E MATHEMATICAL MONOSPACE CAPITAL O # →O→ -← (‎ 𝚶 ‎) 1D6B6 MATHEMATICAL BOLD CAPITAL OMICRON # →Ο→ -← (‎ 𝛰 ‎) 1D6F0 MATHEMATICAL ITALIC CAPITAL OMICRON # →Ο→ -← (‎ 𝜪 ‎) 1D72A MATHEMATICAL BOLD ITALIC CAPITAL OMICRON # →Ο→ -← (‎ 𝝤 ‎) 1D764 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON # →Ο→ -← (‎ 𝞞 ‎) 1D79E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON # →Ο→ -← (‎ 𝟎 ‎) 1D7CE MATHEMATICAL BOLD DIGIT ZERO -← (‎ 𝟘 ‎) 1D7D8 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO -← (‎ 𝟢 ‎) 1D7E2 MATHEMATICAL SANS-SERIF DIGIT ZERO -← (‎ 𝟬 ‎) 1D7EC MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO -← (‎ 𝟶 ‎) 1D7F6 MATHEMATICAL MONOSPACE DIGIT ZERO - -# O, 0, 🄁 - (‎ 0, ‎) 0030 002C DIGIT ZERO, COMMA -← (‎ O, ‎) 004F 002C LATIN CAPITAL LETTER O, COMMA -← (‎ 🄁 ‎) 1F101 DIGIT ZERO COMMA - -# O. 0. 🄀 - (‎ 0. ‎) 0030 002E DIGIT ZERO, FULL STOP -← (‎ O. ‎) 004F 002E LATIN CAPITAL LETTER O, FULL STOP -← (‎ 🄀 ‎) 1F100 DIGIT ZERO FULL STOP - -# O̵ O̶ 0̵ О̵ Ɵ Ꝋ θ Θ Ө Ѳ Ꮎ Ꮻ ⴱ ⊖ ⊝ ⍬ 𝈚 🜔 ϴ ϑ 𝚯 𝚹 𝛉 𝛝 𝛩 𝛳 𝜃 𝜗 𝜣 𝜭 𝜽 𝝑 𝝝 𝝧 𝝷 𝞋 𝞗 𝞡 𝞱 𝟅 - (‎ 0̵ ‎) 0030 0335 DIGIT ZERO, COMBINING SHORT STROKE OVERLAY -← (‎ O̵ ‎) 004F 0335 LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →О̵→ -← (‎ O̶ ‎) 004F 0336 LATIN CAPITAL LETTER O, COMBINING LONG STROKE OVERLAY # →O̵→→О̵→ -← (‎ О̵ ‎) 041E 0335 CYRILLIC CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY -← (‎ Ɵ ‎) 019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE # →Ѳ→→О̵→ -← (‎ Ꝋ ‎) A74A LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY # →O̶→→O̵→→О̵→ -← (‎ θ ‎) 03B8 GREEK SMALL LETTER THETA # →Ꮎ→→O̵→→О̵→ -← (‎ Θ ‎) 0398 GREEK CAPITAL LETTER THETA # →Ѳ→→О̵→ -← (‎ Ө ‎) 04E8 CYRILLIC CAPITAL LETTER BARRED O # →Ѳ→→О̵→ -← (‎ Ѳ ‎) 0472 CYRILLIC CAPITAL LETTER FITA # →О̵→ -← (‎ Ꮎ ‎) 13BE CHEROKEE LETTER NA # →O̵→→О̵→ -← (‎ Ꮻ ‎) 13EB CHEROKEE LETTER WI # →Ѳ→→О̵→ -← (‎ ⴱ ‎) 2D31 TIFINAGH LETTER YAB # →ϴ→→Ѳ→→О̵→ -← (‎ ⊖ ‎) 2296 CIRCLED MINUS # →Θ→→Ѳ→→О̵→ -← (‎ ⊝ ‎) 229D CIRCLED DASH # →⊖→→Θ→→Ѳ→→О̵→ -← (‎ ⍬ ‎) 236C APL FUNCTIONAL SYMBOL ZILDE # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝈚 ‎) 1D21A GREEK VOCAL NOTATION SYMBOL-52 # →Ꝋ→→O̶→→O̵→→О̵→ -← (‎ 🜔 ‎) 1F714 ALCHEMICAL SYMBOL FOR SALT # →Ɵ→→Ѳ→→О̵→ -← (‎ ϴ ‎) 03F4 GREEK CAPITAL THETA SYMBOL # →Ѳ→→О̵→ -← (‎ ϑ ‎) 03D1 GREEK THETA SYMBOL # →⊖→→Θ→→Ѳ→→О̵→ -← (‎ 𝚯 ‎) 1D6AF MATHEMATICAL BOLD CAPITAL THETA # →Θ→→Ѳ→→О̵→ -← (‎ 𝚹 ‎) 1D6B9 MATHEMATICAL BOLD CAPITAL THETA SYMBOL # →Θ→→Ѳ→→О̵→ -← (‎ 𝛉 ‎) 1D6C9 MATHEMATICAL BOLD SMALL THETA # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝛝 ‎) 1D6DD MATHEMATICAL BOLD THETA SYMBOL # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝛩 ‎) 1D6E9 MATHEMATICAL ITALIC CAPITAL THETA # →Θ→→Ѳ→→О̵→ -← (‎ 𝛳 ‎) 1D6F3 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL # →Θ→→Ѳ→→О̵→ -← (‎ 𝜃 ‎) 1D703 MATHEMATICAL ITALIC SMALL THETA # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝜗 ‎) 1D717 MATHEMATICAL ITALIC THETA SYMBOL # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝜣 ‎) 1D723 MATHEMATICAL BOLD ITALIC CAPITAL THETA # →Θ→→Ѳ→→О̵→ -← (‎ 𝜭 ‎) 1D72D MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL # →Θ→→Ѳ→→О̵→ -← (‎ 𝜽 ‎) 1D73D MATHEMATICAL BOLD ITALIC SMALL THETA # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝝑 ‎) 1D751 MATHEMATICAL BOLD ITALIC THETA SYMBOL # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝝝 ‎) 1D75D MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA # →Θ→→Ѳ→→О̵→ -← (‎ 𝝧 ‎) 1D767 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL # →Θ→→Ѳ→→О̵→ -← (‎ 𝝷 ‎) 1D777 MATHEMATICAL SANS-SERIF BOLD SMALL THETA # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝞋 ‎) 1D78B MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝞗 ‎) 1D797 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA # →Θ→→Ѳ→→О̵→ -← (‎ 𝞡 ‎) 1D7A1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL # →Θ→→Ѳ→→О̵→ -← (‎ 𝞱 ‎) 1D7B1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA # →θ→→Ꮎ→→O̵→→О̵→ -← (‎ 𝟅 ‎) 1D7C5 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL # →θ→→Ꮎ→→O̵→→О̵→ - -# O点 0点 ㍘ - (‎ 0点 ‎) 0030 70B9 DIGIT ZERO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ O点 ‎) 004F 70B9 LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍘ ‎) 3358 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO - -# l I 1 | Ɩ ǀ ו ן ا ١ ۱ Ι І Ӏ ߊ ᛁ Ⲓ ⵏ ꓲ 𐊊 𐌉 𖼨 ׀ ∣ 𐌠 𞣇 ⏽ 🯱 Ⅰ ⅼ I l ℐ ℑ ℓ 𞸀 𞺀 ﺍ ﺎ 𝐈 𝐥 𝐼 𝑙 𝑰 𝒍 𝓁 𝓘 𝓵 𝔩 𝕀 𝕝 𝕴 𝖑 𝖨 𝗅 𝗜 𝗹 𝘐 𝘭 𝙄 𝙡 𝙸 𝚕 𝚰 𝛪 𝜤 𝝞 𝞘 𝟏 𝟙 𝟣 𝟭 𝟷 │ - (‎ 1 ‎) 0031 DIGIT ONE -← (‎ l ‎) 006C LATIN SMALL LETTER L -← (‎ I ‎) 0049 LATIN CAPITAL LETTER I -← (‎ | ‎) 007C VERTICAL LINE # →l→ -← (‎ Ɩ ‎) 0196 LATIN CAPITAL LETTER IOTA # →I→ -← (‎ ǀ ‎) 01C0 LATIN LETTER DENTAL CLICK # →I→ -← (‎ ו ‎) 05D5 HEBREW LETTER VAV # →l→ -← (‎ ן ‎) 05DF HEBREW LETTER FINAL NUN # →l→ -← (‎ ا ‎) 0627 ARABIC LETTER ALEF -← (‎ ١ ‎) 0661 ARABIC-INDIC DIGIT ONE -← (‎ ۱ ‎) 06F1 EXTENDED ARABIC-INDIC DIGIT ONE -← (‎ Ι ‎) 0399 GREEK CAPITAL LETTER IOTA # →I→ -← (‎ І ‎) 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I # →I→ -← (‎ Ӏ ‎) 04C0 CYRILLIC LETTER PALOCHKA # →I→ -← (‎ ߊ ‎) 07CA NKO LETTER A # →∣→→ǀ→→I→ -← (‎ ᛁ ‎) 16C1 RUNIC LETTER ISAZ IS ISS I # →I→ -← (‎ Ⲓ ‎) 2C92 COPTIC CAPITAL LETTER IAUDA # →I→ -← (‎ ⵏ ‎) 2D4F TIFINAGH LETTER YAN # →I→ -← (‎ ꓲ ‎) A4F2 LISU LETTER I # →I→ -← (‎ 𐊊 ‎) 1028A LYCIAN LETTER J # →I→ -← (‎ 𐌉 ‎) 10309 OLD ITALIC LETTER I # →I→ -← (‎ 𖼨 ‎) 16F28 MIAO LETTER GHA # →I→ -← (‎ ׀ ‎) 05C0 HEBREW PUNCTUATION PASEQ # →|→→l→ -← (‎ ∣ ‎) 2223 DIVIDES # →ǀ→→I→ -← (‎ 𐌠 ‎) 10320 OLD ITALIC NUMERAL ONE # →𐌉→→I→ -← (‎ 𞣇 ‎) 1E8C7 MENDE KIKAKUI DIGIT ONE # →l→ -← (‎ ⏽ ‎) 23FD POWER ON SYMBOL # →I→ -← (‎ 🯱 ‎) 1FBF1 SEGMENTED DIGIT ONE -← (‎ Ⅰ ‎) 2160 ROMAN NUMERAL ONE # →I→ -← (‎ ⅼ ‎) 217C SMALL ROMAN NUMERAL FIFTY # →l→ -← (‎ I ‎) FF29 FULLWIDTH LATIN CAPITAL LETTER I # →Ӏ→→I→ -← (‎ l ‎) FF4C FULLWIDTH LATIN SMALL LETTER L # →Ⅰ→→I→ -← (‎ ℐ ‎) 2110 SCRIPT CAPITAL I # →I→ -← (‎ ℑ ‎) 2111 BLACK-LETTER CAPITAL I # →I→ -← (‎ ℓ ‎) 2113 SCRIPT SMALL L # →l→ -← (‎ 𞸀 ‎) 1EE00 ARABIC MATHEMATICAL ALEF # →‎ا‎→ -← (‎ 𞺀 ‎) 1EE80 ARABIC MATHEMATICAL LOOPED ALEF # →‎ا‎→ -← (‎ ﺍ ‎) FE8D ARABIC LETTER ALEF ISOLATED FORM # →‎ا‎→ -← (‎ ﺎ ‎) FE8E ARABIC LETTER ALEF FINAL FORM # →‎ا‎→ -← (‎ 𝐈 ‎) 1D408 MATHEMATICAL BOLD CAPITAL I # →I→ -← (‎ 𝐥 ‎) 1D425 MATHEMATICAL BOLD SMALL L # →l→ -← (‎ 𝐼 ‎) 1D43C MATHEMATICAL ITALIC CAPITAL I # →I→ -← (‎ 𝑙 ‎) 1D459 MATHEMATICAL ITALIC SMALL L # →l→ -← (‎ 𝑰 ‎) 1D470 MATHEMATICAL BOLD ITALIC CAPITAL I # →I→ -← (‎ 𝒍 ‎) 1D48D MATHEMATICAL BOLD ITALIC SMALL L # →l→ -← (‎ 𝓁 ‎) 1D4C1 MATHEMATICAL SCRIPT SMALL L # →l→ -← (‎ 𝓘 ‎) 1D4D8 MATHEMATICAL BOLD SCRIPT CAPITAL I # →I→ -← (‎ 𝓵 ‎) 1D4F5 MATHEMATICAL BOLD SCRIPT SMALL L # →l→ -← (‎ 𝔩 ‎) 1D529 MATHEMATICAL FRAKTUR SMALL L # →l→ -← (‎ 𝕀 ‎) 1D540 MATHEMATICAL DOUBLE-STRUCK CAPITAL I # →I→ -← (‎ 𝕝 ‎) 1D55D MATHEMATICAL DOUBLE-STRUCK SMALL L # →l→ -← (‎ 𝕴 ‎) 1D574 MATHEMATICAL BOLD FRAKTUR CAPITAL I # →I→ -← (‎ 𝖑 ‎) 1D591 MATHEMATICAL BOLD FRAKTUR SMALL L # →l→ -← (‎ 𝖨 ‎) 1D5A8 MATHEMATICAL SANS-SERIF CAPITAL I # →I→ -← (‎ 𝗅 ‎) 1D5C5 MATHEMATICAL SANS-SERIF SMALL L # →l→ -← (‎ 𝗜 ‎) 1D5DC MATHEMATICAL SANS-SERIF BOLD CAPITAL I # →I→ -← (‎ 𝗹 ‎) 1D5F9 MATHEMATICAL SANS-SERIF BOLD SMALL L # →l→ -← (‎ 𝘐 ‎) 1D610 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I # →I→ -← (‎ 𝘭 ‎) 1D62D MATHEMATICAL SANS-SERIF ITALIC SMALL L # →l→ -← (‎ 𝙄 ‎) 1D644 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I # →I→ -← (‎ 𝙡 ‎) 1D661 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L # →l→ -← (‎ 𝙸 ‎) 1D678 MATHEMATICAL MONOSPACE CAPITAL I # →I→ -← (‎ 𝚕 ‎) 1D695 MATHEMATICAL MONOSPACE SMALL L # →l→ -← (‎ 𝚰 ‎) 1D6B0 MATHEMATICAL BOLD CAPITAL IOTA # →𝐈→→I→ -← (‎ 𝛪 ‎) 1D6EA MATHEMATICAL ITALIC CAPITAL IOTA # →Ι→→I→ -← (‎ 𝜤 ‎) 1D724 MATHEMATICAL BOLD ITALIC CAPITAL IOTA # →𝑰→→I→ -← (‎ 𝝞 ‎) 1D75E MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA # →Ι→→I→ -← (‎ 𝞘 ‎) 1D798 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA # →Ι→→I→ -← (‎ 𝟏 ‎) 1D7CF MATHEMATICAL BOLD DIGIT ONE -← (‎ 𝟙 ‎) 1D7D9 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE -← (‎ 𝟣 ‎) 1D7E3 MATHEMATICAL SANS-SERIF DIGIT ONE -← (‎ 𝟭 ‎) 1D7ED MATHEMATICAL SANS-SERIF BOLD DIGIT ONE -← (‎ 𝟷 ‎) 1D7F7 MATHEMATICAL MONOSPACE DIGIT ONE -← (‎ │ ‎) FFE8 HALFWIDTH FORMS LIGHT VERTICAL # →|→→l→ - -# l' 1' וי ױ - (‎ 1' ‎) 0031 0027 DIGIT ONE, APOSTROPHE -← (‎ l' ‎) 006C 0027 LATIN SMALL LETTER L, APOSTROPHE # →‎וי‎→ -← (‎ וי ‎) 05D5 05D9 HEBREW LETTER VAV, HEBREW LETTER YOD -← (‎ ױ ‎) 05F1 HEBREW LIGATURE YIDDISH VAV YOD # →‎וי‎→ - -# l, 1, 🄂 - (‎ 1, ‎) 0031 002C DIGIT ONE, COMMA -← (‎ l, ‎) 006C 002C LATIN SMALL LETTER L, COMMA -← (‎ 🄂 ‎) 1F102 DIGIT ONE COMMA - -# l. 1. ⒈ - (‎ 1. ‎) 0031 002E DIGIT ONE, FULL STOP -← (‎ l. ‎) 006C 002E LATIN SMALL LETTER L, FULL STOP -← (‎ ⒈ ‎) 2488 DIGIT ONE FULL STOP - -# lO. l0. 10. ⒑ - (‎ 10. ‎) 0031 0030 002E DIGIT ONE, DIGIT ZERO, FULL STOP -← (‎ lO. ‎) 006C 004F 002E LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, FULL STOP -← (‎ l0. ‎) 006C 0030 002E LATIN SMALL LETTER L, DIGIT ZERO, FULL STOP -← (‎ ⒑ ‎) 2491 NUMBER TEN FULL STOP - -# lO日 l0日 10日 ㏩ - (‎ 10日 ‎) 0031 0030 65E5 DIGIT ONE, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ lO日 ‎) 006C 004F 65E5 LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l0日 ‎) 006C 0030 65E5 LATIN SMALL LETTER L, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏩ ‎) 33E9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN - -# lO月 l0月 10月 ㋉ - (‎ 10月 ‎) 0031 0030 6708 DIGIT ONE, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-6708 -← (‎ lO月 ‎) 006C 004F 6708 LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-6708 -← (‎ l0月 ‎) 006C 0030 6708 LATIN SMALL LETTER L, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋉ ‎) 32C9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER - -# lO点 l0点 10点 ㍢ - (‎ 10点 ‎) 0031 0030 70B9 DIGIT ONE, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ lO点 ‎) 006C 004F 70B9 LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l0点 ‎) 006C 0030 70B9 LATIN SMALL LETTER L, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍢ ‎) 3362 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN - -# ll II 11 || וו ǁ װ ‖ ∥ Ⅱ - (‎ 11 ‎) 0031 0031 DIGIT ONE, DIGIT ONE -← (‎ ll ‎) 006C 006C LATIN SMALL LETTER L, LATIN SMALL LETTER L # →‎וו‎→ -← (‎ II ‎) 0049 0049 LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I # →ll→→‎וו‎→ -← (‎ || ‎) 007C 007C VERTICAL LINE, VERTICAL LINE # →ll→→‎וו‎→ -← (‎ וו ‎) 05D5 05D5 HEBREW LETTER VAV, HEBREW LETTER VAV -← (‎ ǁ ‎) 01C1 LATIN LETTER LATERAL CLICK # →‖→→∥→→||→→ll→→‎וו‎→ -← (‎ װ ‎) 05F0 HEBREW LIGATURE YIDDISH DOUBLE VAV # →‎וו‎→ -← (‎ ‖ ‎) 2016 DOUBLE VERTICAL LINE # →∥→→||→→ll→→‎וו‎→ -← (‎ ∥ ‎) 2225 PARALLEL TO # →||→→ll→→‎וו‎→ -← (‎ Ⅱ ‎) 2161 ROMAN NUMERAL TWO # →II→→ll→→‎וו‎→ - -# ll. 11. ⒒ - (‎ 11. ‎) 0031 0031 002E DIGIT ONE, DIGIT ONE, FULL STOP -← (‎ ll. ‎) 006C 006C 002E LATIN SMALL LETTER L, LATIN SMALL LETTER L, FULL STOP -← (‎ ⒒ ‎) 2492 NUMBER ELEVEN FULL STOP - -# ll日 11日 ㏪ - (‎ 11日 ‎) 0031 0031 65E5 DIGIT ONE, DIGIT ONE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ll日 ‎) 006C 006C 65E5 LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏪ ‎) 33EA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN - -# ll月 11月 ㋊ - (‎ 11月 ‎) 0031 0031 6708 DIGIT ONE, DIGIT ONE, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ll月 ‎) 006C 006C 6708 LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋊ ‎) 32CA IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER - -# ll点 11点 ㍣ - (‎ 11点 ‎) 0031 0031 70B9 DIGIT ONE, DIGIT ONE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ll点 ‎) 006C 006C 70B9 LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍣ ‎) 3363 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN - -# l2. 12. ⒓ - (‎ 12. ‎) 0031 0032 002E DIGIT ONE, DIGIT TWO, FULL STOP -← (‎ l2. ‎) 006C 0032 002E LATIN SMALL LETTER L, DIGIT TWO, FULL STOP -← (‎ ⒓ ‎) 2493 NUMBER TWELVE FULL STOP - -# l2日 12日 ㏫ - (‎ 12日 ‎) 0031 0032 65E5 DIGIT ONE, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l2日 ‎) 006C 0032 65E5 LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏫ ‎) 33EB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE - -# l2月 12月 ㋋ - (‎ 12月 ‎) 0031 0032 6708 DIGIT ONE, DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 -← (‎ l2月 ‎) 006C 0032 6708 LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋋ ‎) 32CB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER - -# l2点 12点 ㍤ - (‎ 12点 ‎) 0031 0032 70B9 DIGIT ONE, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l2点 ‎) 006C 0032 70B9 LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍤ ‎) 3364 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE - -# l3. 13. ⒔ - (‎ 13. ‎) 0031 0033 002E DIGIT ONE, DIGIT THREE, FULL STOP -← (‎ l3. ‎) 006C 0033 002E LATIN SMALL LETTER L, DIGIT THREE, FULL STOP -← (‎ ⒔ ‎) 2494 NUMBER THIRTEEN FULL STOP - -# l3日 13日 ㏬ - (‎ 13日 ‎) 0031 0033 65E5 DIGIT ONE, DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l3日 ‎) 006C 0033 65E5 LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏬ ‎) 33EC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN - -# l3点 13点 ㍥ - (‎ 13点 ‎) 0031 0033 70B9 DIGIT ONE, DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l3点 ‎) 006C 0033 70B9 LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍥ ‎) 3365 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN - -# l4. 14. ⒕ - (‎ 14. ‎) 0031 0034 002E DIGIT ONE, DIGIT FOUR, FULL STOP -← (‎ l4. ‎) 006C 0034 002E LATIN SMALL LETTER L, DIGIT FOUR, FULL STOP -← (‎ ⒕ ‎) 2495 NUMBER FOURTEEN FULL STOP - -# l4日 14日 ㏭ - (‎ 14日 ‎) 0031 0034 65E5 DIGIT ONE, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l4日 ‎) 006C 0034 65E5 LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏭ ‎) 33ED IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN - -# l4点 14点 ㍦ - (‎ 14点 ‎) 0031 0034 70B9 DIGIT ONE, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l4点 ‎) 006C 0034 70B9 LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍦ ‎) 3366 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN - -# l5. 15. ⒖ - (‎ 15. ‎) 0031 0035 002E DIGIT ONE, DIGIT FIVE, FULL STOP -← (‎ l5. ‎) 006C 0035 002E LATIN SMALL LETTER L, DIGIT FIVE, FULL STOP -← (‎ ⒖ ‎) 2496 NUMBER FIFTEEN FULL STOP - -# l5日 15日 ㏮ - (‎ 15日 ‎) 0031 0035 65E5 DIGIT ONE, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l5日 ‎) 006C 0035 65E5 LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏮ ‎) 33EE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN - -# l5点 15点 ㍧ - (‎ 15点 ‎) 0031 0035 70B9 DIGIT ONE, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l5点 ‎) 006C 0035 70B9 LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍧ ‎) 3367 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN - -# l6. 16. ⒗ - (‎ 16. ‎) 0031 0036 002E DIGIT ONE, DIGIT SIX, FULL STOP -← (‎ l6. ‎) 006C 0036 002E LATIN SMALL LETTER L, DIGIT SIX, FULL STOP -← (‎ ⒗ ‎) 2497 NUMBER SIXTEEN FULL STOP - -# l6日 16日 ㏯ - (‎ 16日 ‎) 0031 0036 65E5 DIGIT ONE, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l6日 ‎) 006C 0036 65E5 LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏯ ‎) 33EF IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN - -# l6点 16点 ㍨ - (‎ 16点 ‎) 0031 0036 70B9 DIGIT ONE, DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l6点 ‎) 006C 0036 70B9 LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍨ ‎) 3368 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN - -# l7. 17. ⒘ - (‎ 17. ‎) 0031 0037 002E DIGIT ONE, DIGIT SEVEN, FULL STOP -← (‎ l7. ‎) 006C 0037 002E LATIN SMALL LETTER L, DIGIT SEVEN, FULL STOP -← (‎ ⒘ ‎) 2498 NUMBER SEVENTEEN FULL STOP - -# l7日 17日 ㏰ - (‎ 17日 ‎) 0031 0037 65E5 DIGIT ONE, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l7日 ‎) 006C 0037 65E5 LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏰ ‎) 33F0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN - -# l7点 17点 ㍩ - (‎ 17点 ‎) 0031 0037 70B9 DIGIT ONE, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l7点 ‎) 006C 0037 70B9 LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍩ ‎) 3369 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN - -# l8. 18. ⒙ - (‎ 18. ‎) 0031 0038 002E DIGIT ONE, DIGIT EIGHT, FULL STOP -← (‎ l8. ‎) 006C 0038 002E LATIN SMALL LETTER L, DIGIT EIGHT, FULL STOP -← (‎ ⒙ ‎) 2499 NUMBER EIGHTEEN FULL STOP - -# l8日 18日 ㏱ - (‎ 18日 ‎) 0031 0038 65E5 DIGIT ONE, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l8日 ‎) 006C 0038 65E5 LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏱ ‎) 33F1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN - -# l8点 18点 ㍪ - (‎ 18点 ‎) 0031 0038 70B9 DIGIT ONE, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l8点 ‎) 006C 0038 70B9 LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍪ ‎) 336A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN - -# l9. 19. ⒚ - (‎ 19. ‎) 0031 0039 002E DIGIT ONE, DIGIT NINE, FULL STOP -← (‎ l9. ‎) 006C 0039 002E LATIN SMALL LETTER L, DIGIT NINE, FULL STOP -← (‎ ⒚ ‎) 249A NUMBER NINETEEN FULL STOP - -# l9日 19日 ㏲ - (‎ 19日 ‎) 0031 0039 65E5 DIGIT ONE, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l9日 ‎) 006C 0039 65E5 LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏲ ‎) 33F2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN - -# l9点 19点 ㍫ - (‎ 19点 ‎) 0031 0039 70B9 DIGIT ONE, DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l9点 ‎) 006C 0039 70B9 LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍫ ‎) 336B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN - -# l̋ 1̋ اً ﴼ ﴽ - (‎ 1̋ ‎) 0031 030B DIGIT ONE, COMBINING DOUBLE ACUTE ACCENT -← (‎ l̋ ‎) 006C 030B LATIN SMALL LETTER L, COMBINING DOUBLE ACUTE ACCENT # →‎اً‎→ -← (‎ اً ‎) 0627 064B ARABIC LETTER ALEF, ARABIC FATHATAN -← (‎ ﴼ ‎) FD3C ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM # →‎اً‎→ -← (‎ ﴽ ‎) FD3D ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM # →‎اً‎→ - -# lكبر 1كبر اكبر ﷳ - (‎ 1كبر ‎) 0031 0643 0628 0631 DIGIT ONE, ARABIC LETTER KAF, ARABIC LETTER BEH, ARABIC LETTER REH -← (‎ lكبر ‎) 006C 0643 0628 0631 LATIN SMALL LETTER L, ARABIC LETTER KAF, ARABIC LETTER BEH, ARABIC LETTER REH # →‎اكبر‎→ -← (‎ اكبر ‎) 0627 0643 0628 0631 ARABIC LETTER ALEF, ARABIC LETTER KAF, ARABIC LETTER BEH, ARABIC LETTER REH -← (‎ ﷳ ‎) FDF3 ARABIC LIGATURE AKBAR ISOLATED FORM # →‎اكبر‎→ - -# lللّٰo lللّٰه 1للّٰه اللّٰه lللّo lللّه 1للّه اللّه lللo lلله 1لله الله ﷲ - (‎ 1لله ‎) 0031 0644 0644 0647 DIGIT ONE, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ lللّٰo ‎) 006C 0644 0644 0651 0670 006F LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, LATIN SMALL LETTER O # →‎اللّٰه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ lللّٰه ‎) 006C 0644 0644 0651 0670 0647 LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC LETTER HEH # →‎1للّٰه‎→→‎اللّٰه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ 1للّٰه ‎) 0031 0644 0644 0651 0670 0647 DIGIT ONE, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC LETTER HEH # →‎اللّٰه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ اللّٰه ‎) 0627 0644 0644 0651 0670 0647 ARABIC LETTER ALEF, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC LETTER HEH # →‎ﷲ‎→→‎الله‎→ -← (‎ lللّo ‎) 006C 0644 0644 0651 006F LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, LATIN SMALL LETTER O # →‎اللّه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ lللّه ‎) 006C 0644 0644 0651 0647 LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER HEH # →‎1للّه‎→→‎اللّه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ 1للّه ‎) 0031 0644 0644 0651 0647 DIGIT ONE, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER HEH # →‎اللّه‎→→‎ﷲ‎→→‎الله‎→ -← (‎ اللّه ‎) 0627 0644 0644 0651 0647 ARABIC LETTER ALEF, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER HEH # →‎ﷲ‎→→‎الله‎→ -← (‎ lللo ‎) 006C 0644 0644 006F LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, LATIN SMALL LETTER O # →‎الله‎→ -← (‎ lلله ‎) 006C 0644 0644 0647 LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ الله ‎) 0627 0644 0644 0647 ARABIC LETTER ALEF, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ ﷲ ‎) FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM # →‎الله‎→ - -# lٕ 1ٕ اٟ ٳ إ ﺇ ﺈ - (‎ 1ٕ ‎) 0031 0655 DIGIT ONE, ARABIC HAMZA BELOW -← (‎ lٕ ‎) 006C 0655 LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎اٟ‎→ -← (‎ اٟ ‎) 0627 065F ARABIC LETTER ALEF, ARABIC WAVY HAMZA BELOW -← (‎ ٳ ‎) 0673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW # →‎اٟ‎→ -← (‎ إ ‎) 0625 ARABIC LETTER ALEF WITH HAMZA BELOW # →‎ٳ‎→→‎اٟ‎→ -← (‎ ﺇ ‎) FE87 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM # →‎إ‎→→‎ٳ‎→→‎اٟ‎→ -← (‎ ﺈ ‎) FE88 ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM # →‎إ‎→→‎ٳ‎→→‎اٟ‎→ - -# lٴ ٴl 1ٴ اٴ ٴ1 ٴا ٲ أ ٵ ﺃ ﺄ - (‎ 1ٴ ‎) 0031 0674 DIGIT ONE, ARABIC LETTER HIGH HAMZA -← (‎ lٴ ‎) 006C 0674 LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎اٴ‎→ -← (‎ ٴl ‎) 0674 006C ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER L # →‎ٴا‎→→‎ٵ‎→→‎اٴ‎→ -← (‎ اٴ ‎) 0627 0674 ARABIC LETTER ALEF, ARABIC LETTER HIGH HAMZA -← (‎ ٴ1 ‎) 0674 0031 ARABIC LETTER HIGH HAMZA, DIGIT ONE # →‎ٴا‎→→‎ٵ‎→→‎اٴ‎→ -← (‎ ٴا ‎) 0674 0627 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF # →‎ٵ‎→→‎اٴ‎→ -← (‎ ٲ ‎) 0672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE # →‎أ‎→→‎ٵ‎→→‎اٴ‎→ -← (‎ أ ‎) 0623 ARABIC LETTER ALEF WITH HAMZA ABOVE # →‎ٵ‎→→‎اٴ‎→ -← (‎ ٵ ‎) 0675 ARABIC LETTER HIGH HAMZA ALEF # →‎اٴ‎→ -← (‎ ﺃ ‎) FE83 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM # →‎ٵ‎→→‎اٴ‎→ -← (‎ ﺄ ‎) FE84 ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM # →‎أ‎→→‎ٵ‎→→‎اٴ‎→ - -# l· L· 1ᐧ Ꮮ· ᒪ· ᒪᐧ ᒷ Ŀ ŀ - (‎ 1ᐧ ‎) 0031 1427 DIGIT ONE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ l· ‎) 006C 00B7 LATIN SMALL LETTER L, MIDDLE DOT -← (‎ L· ‎) 004C 00B7 LATIN CAPITAL LETTER L, MIDDLE DOT # →ᒪ·→→ᒪᐧ→→ᒷ→ -← (‎ Ꮮ· ‎) 13DE 00B7 CHEROKEE LETTER TLE, MIDDLE DOT # →ᒪ·→→ᒪᐧ→→ᒷ→ -← (‎ ᒪ· ‎) 14AA 00B7 CANADIAN SYLLABICS MA, MIDDLE DOT # →ᒪᐧ→→ᒷ→ -← (‎ ᒪᐧ ‎) 14AA 1427 CANADIAN SYLLABICS MA, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᒷ→ -← (‎ ᒷ ‎) 14B7 CANADIAN SYLLABICS WEST-CREE MWA -← (‎ Ŀ ‎) 013F LATIN CAPITAL LETTER L WITH MIDDLE DOT # →L·→→ᒪ·→→ᒪᐧ→→ᒷ→ -← (‎ ŀ ‎) 0140 LATIN SMALL LETTER L WITH MIDDLE DOT # →l·→ - -# l日 1日 ㏠ - (‎ 1日 ‎) 0031 65E5 DIGIT ONE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ l日 ‎) 006C 65E5 LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏠ ‎) 33E0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE - -# l月 1月 ㋀ - (‎ 1月 ‎) 0031 6708 DIGIT ONE, CJK UNIFIED IDEOGRAPH-6708 -← (‎ l月 ‎) 006C 6708 LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋀ ‎) 32C0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY - -# l点 1点 ㍙ - (‎ 1点 ‎) 0031 70B9 DIGIT ONE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ l点 ‎) 006C 70B9 LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍙ ‎) 3359 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE - -# 2 Ƨ Ꝛ Ϩ ᒿ Ꙅ ꛯ 🯲 𝟐 𝟚 𝟤 𝟮 𝟸 - (‎ 2 ‎) 0032 DIGIT TWO -← (‎ Ƨ ‎) 01A7 LATIN CAPITAL LETTER TONE TWO -← (‎ Ꝛ ‎) A75A LATIN CAPITAL LETTER R ROTUNDA -← (‎ Ϩ ‎) 03E8 COPTIC CAPITAL LETTER HORI # →Ƨ→ -← (‎ ᒿ ‎) 14BF CANADIAN SYLLABICS SAYISI M -← (‎ Ꙅ ‎) A644 CYRILLIC CAPITAL LETTER REVERSED DZE # →Ƨ→ -← (‎ ꛯ ‎) A6EF BAMUM LETTER KOGHOM # →Ƨ→ -← (‎ 🯲 ‎) 1FBF2 SEGMENTED DIGIT TWO -← (‎ 𝟐 ‎) 1D7D0 MATHEMATICAL BOLD DIGIT TWO -← (‎ 𝟚 ‎) 1D7DA MATHEMATICAL DOUBLE-STRUCK DIGIT TWO -← (‎ 𝟤 ‎) 1D7E4 MATHEMATICAL SANS-SERIF DIGIT TWO -← (‎ 𝟮 ‎) 1D7EE MATHEMATICAL SANS-SERIF BOLD DIGIT TWO -← (‎ 𝟸 ‎) 1D7F8 MATHEMATICAL MONOSPACE DIGIT TWO - -# 2, 🄃 - (‎ 2, ‎) 0032 002C DIGIT TWO, COMMA -← (‎ 🄃 ‎) 1F103 DIGIT TWO COMMA - -# 2. ⒉ - (‎ 2. ‎) 0032 002E DIGIT TWO, FULL STOP -← (‎ ⒉ ‎) 2489 DIGIT TWO FULL STOP - -# 2O. 20. ⒛ - (‎ 20. ‎) 0032 0030 002E DIGIT TWO, DIGIT ZERO, FULL STOP -← (‎ 2O. ‎) 0032 004F 002E DIGIT TWO, LATIN CAPITAL LETTER O, FULL STOP -← (‎ ⒛ ‎) 249B NUMBER TWENTY FULL STOP - -# 2O日 20日 ㏳ - (‎ 20日 ‎) 0032 0030 65E5 DIGIT TWO, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ 2O日 ‎) 0032 004F 65E5 DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏳ ‎) 33F3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY - -# 2O点 20点 ㍬ - (‎ 20点 ‎) 0032 0030 70B9 DIGIT TWO, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ 2O点 ‎) 0032 004F 70B9 DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍬ ‎) 336C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY - -# 2l日 21日 ㏴ - (‎ 21日 ‎) 0032 0031 65E5 DIGIT TWO, DIGIT ONE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ 2l日 ‎) 0032 006C 65E5 DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏴ ‎) 33F4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE - -# 2l点 21点 ㍭ - (‎ 21点 ‎) 0032 0031 70B9 DIGIT TWO, DIGIT ONE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ 2l点 ‎) 0032 006C 70B9 DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍭ ‎) 336D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE - -# 22日 ㏵ - (‎ 22日 ‎) 0032 0032 65E5 DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏵ ‎) 33F5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO - -# 22点 ㍮ - (‎ 22点 ‎) 0032 0032 70B9 DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍮ ‎) 336E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO - -# 23日 ㏶ - (‎ 23日 ‎) 0032 0033 65E5 DIGIT TWO, DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏶ ‎) 33F6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE - -# 23点 ㍯ - (‎ 23点 ‎) 0032 0033 70B9 DIGIT TWO, DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍯ ‎) 336F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE - -# 24日 ㏷ - (‎ 24日 ‎) 0032 0034 65E5 DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏷ ‎) 33F7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR - -# 24点 ㍰ - (‎ 24点 ‎) 0032 0034 70B9 DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍰ ‎) 3370 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR - -# 25日 ㏸ - (‎ 25日 ‎) 0032 0035 65E5 DIGIT TWO, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏸ ‎) 33F8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE - -# 26日 ㏹ - (‎ 26日 ‎) 0032 0036 65E5 DIGIT TWO, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏹ ‎) 33F9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX - -# 27日 ㏺ - (‎ 27日 ‎) 0032 0037 65E5 DIGIT TWO, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏺ ‎) 33FA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN - -# 28日 ㏻ - (‎ 28日 ‎) 0032 0038 65E5 DIGIT TWO, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏻ ‎) 33FB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT - -# 29日 ㏼ - (‎ 29日 ‎) 0032 0039 65E5 DIGIT TWO, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏼ ‎) 33FC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE - -# 2̵ ƻ - (‎ 2̵ ‎) 0032 0335 DIGIT TWO, COMBINING SHORT STROKE OVERLAY -← (‎ ƻ ‎) 01BB LATIN LETTER TWO WITH STROKE - -# 2日 ㏡ - (‎ 2日 ‎) 0032 65E5 DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏡ ‎) 33E1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO - -# 2月 ㋁ - (‎ 2月 ‎) 0032 6708 DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋁ ‎) 32C1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY - -# 2点 ㍚ - (‎ 2点 ‎) 0032 70B9 DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍚ ‎) 335A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO - -# 3 Ʒ Ȝ Ꝫ З Ӡ Ⳍ 𖼻 𝈆 Ɜ 𑣊 🯳 𝟑 𝟛 𝟥 𝟯 𝟹 - (‎ 3 ‎) 0033 DIGIT THREE -← (‎ Ʒ ‎) 01B7 LATIN CAPITAL LETTER EZH -← (‎ Ȝ ‎) 021C LATIN CAPITAL LETTER YOGH # →Ʒ→ -← (‎ Ꝫ ‎) A76A LATIN CAPITAL LETTER ET -← (‎ З ‎) 0417 CYRILLIC CAPITAL LETTER ZE -← (‎ Ӡ ‎) 04E0 CYRILLIC CAPITAL LETTER ABKHASIAN DZE # →Ʒ→ -← (‎ Ⳍ ‎) 2CCC COPTIC CAPITAL LETTER OLD COPTIC HORI # →Ȝ→→Ʒ→ -← (‎ 𖼻 ‎) 16F3B MIAO LETTER ZA # →Ʒ→ -← (‎ 𝈆 ‎) 1D206 GREEK VOCAL NOTATION SYMBOL-7 -← (‎ Ɜ ‎) A7AB LATIN CAPITAL LETTER REVERSED OPEN E -← (‎ 𑣊 ‎) 118CA WARANG CITI SMALL LETTER ANG -← (‎ 🯳 ‎) 1FBF3 SEGMENTED DIGIT THREE -← (‎ 𝟑 ‎) 1D7D1 MATHEMATICAL BOLD DIGIT THREE -← (‎ 𝟛 ‎) 1D7DB MATHEMATICAL DOUBLE-STRUCK DIGIT THREE -← (‎ 𝟥 ‎) 1D7E5 MATHEMATICAL SANS-SERIF DIGIT THREE -← (‎ 𝟯 ‎) 1D7EF MATHEMATICAL SANS-SERIF BOLD DIGIT THREE -← (‎ 𝟹 ‎) 1D7F9 MATHEMATICAL MONOSPACE DIGIT THREE - -# 3, 🄄 - (‎ 3, ‎) 0033 002C DIGIT THREE, COMMA -← (‎ 🄄 ‎) 1F104 DIGIT THREE COMMA - -# 3. ⒊ - (‎ 3. ‎) 0033 002E DIGIT THREE, FULL STOP -← (‎ ⒊ ‎) 248A DIGIT THREE FULL STOP - -# 3O日 30日 ㏽ - (‎ 30日 ‎) 0033 0030 65E5 DIGIT THREE, DIGIT ZERO, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ 3O日 ‎) 0033 004F 65E5 DIGIT THREE, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏽ ‎) 33FD IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY - -# 3l日 31日 ㏾ - (‎ 31日 ‎) 0033 0031 65E5 DIGIT THREE, DIGIT ONE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ 3l日 ‎) 0033 006C 65E5 DIGIT THREE, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏾ ‎) 33FE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE - -# 3̦ З̦ З̧ Ҙ - (‎ 3̦ ‎) 0033 0326 DIGIT THREE, COMBINING COMMA BELOW -← (‎ З̦ ‎) 0417 0326 CYRILLIC CAPITAL LETTER ZE, COMBINING COMMA BELOW # →З̧→ -← (‎ З̧ ‎) 0417 0327 CYRILLIC CAPITAL LETTER ZE, COMBINING CEDILLA -← (‎ Ҙ ‎) 0498 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER # →З̧→ - -# 3日 ㏢ - (‎ 3日 ‎) 0033 65E5 DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏢ ‎) 33E2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE - -# 3月 ㋂ - (‎ 3月 ‎) 0033 6708 DIGIT THREE, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋂ ‎) 32C2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH - -# 3点 ㍛ - (‎ 3点 ‎) 0033 70B9 DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍛ ‎) 335B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE - -# 4 Ꮞ 𑢯 🯴 𝟒 𝟜 𝟦 𝟰 𝟺 - (‎ 4 ‎) 0034 DIGIT FOUR -← (‎ Ꮞ ‎) 13CE CHEROKEE LETTER SE -← (‎ 𑢯 ‎) 118AF WARANG CITI CAPITAL LETTER UC -← (‎ 🯴 ‎) 1FBF4 SEGMENTED DIGIT FOUR -← (‎ 𝟒 ‎) 1D7D2 MATHEMATICAL BOLD DIGIT FOUR -← (‎ 𝟜 ‎) 1D7DC MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR -← (‎ 𝟦 ‎) 1D7E6 MATHEMATICAL SANS-SERIF DIGIT FOUR -← (‎ 𝟰 ‎) 1D7F0 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR -← (‎ 𝟺 ‎) 1D7FA MATHEMATICAL MONOSPACE DIGIT FOUR - -# 4, 🄅 - (‎ 4, ‎) 0034 002C DIGIT FOUR, COMMA -← (‎ 🄅 ‎) 1F105 DIGIT FOUR COMMA - -# 4. ⒋ - (‎ 4. ‎) 0034 002E DIGIT FOUR, FULL STOP -← (‎ ⒋ ‎) 248B DIGIT FOUR FULL STOP - -# 4· 4ᐧ ᔰ - (‎ 4· ‎) 0034 00B7 DIGIT FOUR, MIDDLE DOT -← (‎ 4ᐧ ‎) 0034 1427 DIGIT FOUR, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔰ ‎) 1530 CANADIAN SYLLABICS WEST-CREE YWE # →4ᐧ→ - -# 4日 ㏣ - (‎ 4日 ‎) 0034 65E5 DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏣ ‎) 33E3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR - -# 4月 ㋃ - (‎ 4月 ‎) 0034 6708 DIGIT FOUR, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋃ ‎) 32C3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL - -# 4点 ㍜ - (‎ 4点 ‎) 0034 70B9 DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍜ ‎) 335C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR - -# 5 Ƽ 𑢻 🯵 𝟓 𝟝 𝟧 𝟱 𝟻 - (‎ 5 ‎) 0035 DIGIT FIVE -← (‎ Ƽ ‎) 01BC LATIN CAPITAL LETTER TONE FIVE -← (‎ 𑢻 ‎) 118BB WARANG CITI CAPITAL LETTER HORR -← (‎ 🯵 ‎) 1FBF5 SEGMENTED DIGIT FIVE -← (‎ 𝟓 ‎) 1D7D3 MATHEMATICAL BOLD DIGIT FIVE -← (‎ 𝟝 ‎) 1D7DD MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE -← (‎ 𝟧 ‎) 1D7E7 MATHEMATICAL SANS-SERIF DIGIT FIVE -← (‎ 𝟱 ‎) 1D7F1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE -← (‎ 𝟻 ‎) 1D7FB MATHEMATICAL MONOSPACE DIGIT FIVE - -# 5, 🄆 - (‎ 5, ‎) 0035 002C DIGIT FIVE, COMMA -← (‎ 🄆 ‎) 1F106 DIGIT FIVE COMMA - -# 5. ⒌ - (‎ 5. ‎) 0035 002E DIGIT FIVE, FULL STOP -← (‎ ⒌ ‎) 248C DIGIT FIVE FULL STOP - -# 5日 ㏤ - (‎ 5日 ‎) 0035 65E5 DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏤ ‎) 33E4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE - -# 5月 ㋄ - (‎ 5月 ‎) 0035 6708 DIGIT FIVE, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋄ ‎) 32C4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY - -# 5点 ㍝ - (‎ 5点 ‎) 0035 70B9 DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍝ ‎) 335D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE - -# 6 б Ꮾ Ⳓ 𑣕 🯶 𝟔 𝟞 𝟨 𝟲 𝟼 - (‎ 6 ‎) 0036 DIGIT SIX -← (‎ б ‎) 0431 CYRILLIC SMALL LETTER BE -← (‎ Ꮾ ‎) 13EE CHEROKEE LETTER WV -← (‎ Ⳓ ‎) 2CD2 COPTIC CAPITAL LETTER OLD COPTIC HEI -← (‎ 𑣕 ‎) 118D5 WARANG CITI SMALL LETTER AT -← (‎ 🯶 ‎) 1FBF6 SEGMENTED DIGIT SIX -← (‎ 𝟔 ‎) 1D7D4 MATHEMATICAL BOLD DIGIT SIX -← (‎ 𝟞 ‎) 1D7DE MATHEMATICAL DOUBLE-STRUCK DIGIT SIX -← (‎ 𝟨 ‎) 1D7E8 MATHEMATICAL SANS-SERIF DIGIT SIX -← (‎ 𝟲 ‎) 1D7F2 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX -← (‎ 𝟼 ‎) 1D7FC MATHEMATICAL MONOSPACE DIGIT SIX - -# 6, 🄇 - (‎ 6, ‎) 0036 002C DIGIT SIX, COMMA -← (‎ 🄇 ‎) 1F107 DIGIT SIX COMMA - -# 6. ⒍ - (‎ 6. ‎) 0036 002E DIGIT SIX, FULL STOP -← (‎ ⒍ ‎) 248D DIGIT SIX FULL STOP - -# 6日 ㏥ - (‎ 6日 ‎) 0036 65E5 DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏥ ‎) 33E5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX - -# 6月 ㋅ - (‎ 6月 ‎) 0036 6708 DIGIT SIX, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋅ ‎) 32C5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE - -# 6点 ㍞ - (‎ 6点 ‎) 0036 70B9 DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍞ ‎) 335E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX - -# 7 𝈒 𑣆 𐓒 🯷 𝟕 𝟟 𝟩 𝟳 𝟽 - (‎ 7 ‎) 0037 DIGIT SEVEN -← (‎ 𝈒 ‎) 1D212 GREEK VOCAL NOTATION SYMBOL-19 -← (‎ 𑣆 ‎) 118C6 WARANG CITI SMALL LETTER II -← (‎ 𐓒 ‎) 104D2 OSAGE CAPITAL LETTER ZA -← (‎ 🯷 ‎) 1FBF7 SEGMENTED DIGIT SEVEN -← (‎ 𝟕 ‎) 1D7D5 MATHEMATICAL BOLD DIGIT SEVEN -← (‎ 𝟟 ‎) 1D7DF MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN -← (‎ 𝟩 ‎) 1D7E9 MATHEMATICAL SANS-SERIF DIGIT SEVEN -← (‎ 𝟳 ‎) 1D7F3 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN -← (‎ 𝟽 ‎) 1D7FD MATHEMATICAL MONOSPACE DIGIT SEVEN - -# 7, 🄈 - (‎ 7, ‎) 0037 002C DIGIT SEVEN, COMMA -← (‎ 🄈 ‎) 1F108 DIGIT SEVEN COMMA - -# 7. ⒎ - (‎ 7. ‎) 0037 002E DIGIT SEVEN, FULL STOP -← (‎ ⒎ ‎) 248E DIGIT SEVEN FULL STOP - -# 7日 ㏦ - (‎ 7日 ‎) 0037 65E5 DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏦ ‎) 33E6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN - -# 7月 ㋆ - (‎ 7月 ‎) 0037 6708 DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋆ ‎) 32C6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY - -# 7点 ㍟ - (‎ 7点 ‎) 0037 70B9 DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍟ ‎) 335F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN - -# 8 Ȣ ȣ ৪ ੪ ଃ 𐌚 𞣋 🯸 𝟖 𝟠 𝟪 𝟴 𝟾 - (‎ 8 ‎) 0038 DIGIT EIGHT -← (‎ Ȣ ‎) 0222 LATIN CAPITAL LETTER OU -← (‎ ȣ ‎) 0223 LATIN SMALL LETTER OU -← (‎ ৪ ‎) 09EA BENGALI DIGIT FOUR -← (‎ ੪ ‎) 0A6A GURMUKHI DIGIT FOUR -← (‎ ଃ ‎) 0B03 ORIYA SIGN VISARGA -← (‎ 𐌚 ‎) 1031A OLD ITALIC LETTER EF -← (‎ 𞣋 ‎) 1E8CB MENDE KIKAKUI DIGIT FIVE -← (‎ 🯸 ‎) 1FBF8 SEGMENTED DIGIT EIGHT -← (‎ 𝟖 ‎) 1D7D6 MATHEMATICAL BOLD DIGIT EIGHT -← (‎ 𝟠 ‎) 1D7E0 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT -← (‎ 𝟪 ‎) 1D7EA MATHEMATICAL SANS-SERIF DIGIT EIGHT -← (‎ 𝟴 ‎) 1D7F4 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT -← (‎ 𝟾 ‎) 1D7FE MATHEMATICAL MONOSPACE DIGIT EIGHT - -# 8, 🄉 - (‎ 8, ‎) 0038 002C DIGIT EIGHT, COMMA -← (‎ 🄉 ‎) 1F109 DIGIT EIGHT COMMA - -# 8. ⒏ - (‎ 8. ‎) 0038 002E DIGIT EIGHT, FULL STOP -← (‎ ⒏ ‎) 248F DIGIT EIGHT FULL STOP - -# 8日 ㏧ - (‎ 8日 ‎) 0038 65E5 DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏧ ‎) 33E7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT - -# 8月 ㋇ - (‎ 8月 ‎) 0038 6708 DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋇ ‎) 32C7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST - -# 8点 ㍠ - (‎ 8点 ‎) 0038 70B9 DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍠ ‎) 3360 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT - -# 9 Ꝯ ৭ ੧ ୨ ൭ Ⳋ 𑢬 𑣌 𑣖 🯹 𝟗 𝟡 𝟫 𝟵 𝟿 - (‎ 9 ‎) 0039 DIGIT NINE -← (‎ Ꝯ ‎) A76E LATIN CAPITAL LETTER CON -← (‎ ৭ ‎) 09ED BENGALI DIGIT SEVEN -← (‎ ੧ ‎) 0A67 GURMUKHI DIGIT ONE -← (‎ ୨ ‎) 0B68 ORIYA DIGIT TWO -← (‎ ൭ ‎) 0D6D MALAYALAM DIGIT SEVEN -← (‎ Ⳋ ‎) 2CCA COPTIC CAPITAL LETTER DIALECT-P HORI -← (‎ 𑢬 ‎) 118AC WARANG CITI CAPITAL LETTER KO -← (‎ 𑣌 ‎) 118CC WARANG CITI SMALL LETTER KO -← (‎ 𑣖 ‎) 118D6 WARANG CITI SMALL LETTER AM -← (‎ 🯹 ‎) 1FBF9 SEGMENTED DIGIT NINE -← (‎ 𝟗 ‎) 1D7D7 MATHEMATICAL BOLD DIGIT NINE -← (‎ 𝟡 ‎) 1D7E1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE -← (‎ 𝟫 ‎) 1D7EB MATHEMATICAL SANS-SERIF DIGIT NINE -← (‎ 𝟵 ‎) 1D7F5 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE -← (‎ 𝟿 ‎) 1D7FF MATHEMATICAL MONOSPACE DIGIT NINE - -# 9, 🄊 - (‎ 9, ‎) 0039 002C DIGIT NINE, COMMA -← (‎ 🄊 ‎) 1F10A DIGIT NINE COMMA - -# 9. ⒐ - (‎ 9. ‎) 0039 002E DIGIT NINE, FULL STOP -← (‎ ⒐ ‎) 2490 DIGIT NINE FULL STOP - -# 9日 ㏨ - (‎ 9日 ‎) 0039 65E5 DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 -← (‎ ㏨ ‎) 33E8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE - -# 9月 ㋈ - (‎ 9月 ‎) 0039 6708 DIGIT NINE, CJK UNIFIED IDEOGRAPH-6708 -← (‎ ㋈ ‎) 32C8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER - -# 9点 ㍡ - (‎ 9点 ‎) 0039 70B9 DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 -← (‎ ㍡ ‎) 3361 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE - -# : ः ઃ ː ꓽ ˸ ։ ׃ ܃ ܄ ᛬ ᠃ ᠉ ⁚ ∶ ꞉ ︰ : - (‎ : ‎) 003A COLON -← (‎ ः ‎) 0903 DEVANAGARI SIGN VISARGA -← (‎ ઃ ‎) 0A83 GUJARATI SIGN VISARGA -← (‎ ː ‎) 02D0 MODIFIER LETTER TRIANGULAR COLON -← (‎ ꓽ ‎) A4FD LISU LETTER TONE MYA JEU -← (‎ ˸ ‎) 02F8 MODIFIER LETTER RAISED COLON -← (‎ ։ ‎) 0589 ARMENIAN FULL STOP -← (‎ ׃ ‎) 05C3 HEBREW PUNCTUATION SOF PASUQ -← (‎ ܃ ‎) 0703 SYRIAC SUPRALINEAR COLON -← (‎ ܄ ‎) 0704 SYRIAC SUBLINEAR COLON -← (‎ ᛬ ‎) 16EC RUNIC MULTIPLE PUNCTUATION -← (‎ ᠃ ‎) 1803 MONGOLIAN FULL STOP -← (‎ ᠉ ‎) 1809 MONGOLIAN MANCHU FULL STOP -← (‎ ⁚ ‎) 205A TWO DOT PUNCTUATION -← (‎ ∶ ‎) 2236 RATIO -← (‎ ꞉ ‎) A789 MODIFIER LETTER COLON -← (‎ ︰ ‎) FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER -← (‎ : ‎) FF1A FULLWIDTH COLON # →︰→ - -# ::= ⩴ - (‎ ::= ‎) 003A 003A 003D COLON, COLON, EQUALS SIGN -← (‎ ⩴ ‎) 2A74 DOUBLE COLON EQUAL - -# :→ ⧴ - (‎ :→ ‎) 003A 2192 COLON, RIGHTWARDS ARROW -← (‎ ⧴ ‎) 29F4 RULE-DELAYED - -# ; ; - (‎ ; ‎) 003B SEMICOLON -← (‎ ; ‎) 037E GREEK QUESTION MARK - -# < ᐸ ᚲ ˂ ‹ ❮ 𝈶 - (‎ < ‎) 003C LESS-THAN SIGN -← (‎ ᐸ ‎) 1438 CANADIAN SYLLABICS PA -← (‎ ᚲ ‎) 16B2 RUNIC LETTER KAUNA -← (‎ ˂ ‎) 02C2 MODIFIER LETTER LEFT ARROWHEAD -← (‎ ‹ ‎) 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK -← (‎ ❮ ‎) 276E HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT # →‹→ -← (‎ 𝈶 ‎) 1D236 GREEK INSTRUMENTAL NOTATION SYMBOL-40 - -# << ≪ - (‎ << ‎) 003C 003C LESS-THAN SIGN, LESS-THAN SIGN -← (‎ ≪ ‎) 226A MUCH LESS-THAN - -# <<< ⋘ - (‎ <<< ‎) 003C 003C 003C LESS-THAN SIGN, LESS-THAN SIGN, LESS-THAN SIGN -← (‎ ⋘ ‎) 22D8 VERY MUCH LESS-THAN - -# <· ᐸᐧ ᑅ Ⲵ ⋖ - (‎ <· ‎) 003C 00B7 LESS-THAN SIGN, MIDDLE DOT -← (‎ ᐸᐧ ‎) 1438 1427 CANADIAN SYLLABICS PA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑅ ‎) 1445 CANADIAN SYLLABICS WEST-CREE PWA # →ᐸᐧ→ -← (‎ Ⲵ ‎) 2CB4 COPTIC CAPITAL LETTER OLD COPTIC AIN # →ᑅ→→ᐸᐧ→ -← (‎ ⋖ ‎) 22D6 LESS-THAN WITH DOT # →ᑅ→→ᐸᐧ→ - -# = ゠ ᐀ ꓿ ⹀ - (‎ = ‎) 003D EQUALS SIGN -← (‎ ゠ ‎) 30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN -← (‎ ᐀ ‎) 1400 CANADIAN SYLLABICS HYPHEN -← (‎ ꓿ ‎) A4FF LISU PUNCTUATION FULL STOP -← (‎ ⹀ ‎) 2E40 DOUBLE HYPHEN - -# == ⩵ - (‎ == ‎) 003D 003D EQUALS SIGN, EQUALS SIGN -← (‎ ⩵ ‎) 2A75 TWO CONSECUTIVE EQUALS SIGNS - -# === ⩶ - (‎ === ‎) 003D 003D 003D EQUALS SIGN, EQUALS SIGN, EQUALS SIGN -← (‎ ⩶ ‎) 2A76 THREE CONSECUTIVE EQUALS SIGNS - -# =̂ ≙ - (‎ =̂ ‎) 003D 0302 EQUALS SIGN, COMBINING CIRCUMFLEX ACCENT -← (‎ ≙ ‎) 2259 ESTIMATES - -# =̆ =̌ ≚ - (‎ =̆ ‎) 003D 0306 EQUALS SIGN, COMBINING BREVE -← (‎ =̌ ‎) 003D 030C EQUALS SIGN, COMBINING CARON -← (‎ ≚ ‎) 225A EQUIANGULAR TO # →=̌→ - -# =̇ ≐ - (‎ =̇ ‎) 003D 0307 EQUALS SIGN, COMBINING DOT ABOVE -← (‎ ≐ ‎) 2250 APPROACHES THE LIMIT - -# =̣̇ ≐̣ ≑ - (‎ =̣̇ ‎) 003D 0307 0323 EQUALS SIGN, COMBINING DOT ABOVE, COMBINING DOT BELOW -← (‎ ≐̣ ‎) 2250 0323 APPROACHES THE LIMIT, COMBINING DOT BELOW -← (‎ ≑ ‎) 2251 GEOMETRICALLY EQUAL TO # →≐̣→ - -# =̊ ≗ - (‎ =̊ ‎) 003D 030A EQUALS SIGN, COMBINING RING ABOVE -← (‎ ≗ ‎) 2257 RING EQUAL TO - -# =ͫ ≞ - (‎ =ͫ ‎) 003D 036B EQUALS SIGN, COMBINING LATIN SMALL LETTER M -← (‎ ≞ ‎) 225E MEASURED BY - -# =⃰ ⩮ - (‎ =⃰ ‎) 003D 20F0 EQUALS SIGN, COMBINING ASTERISK ABOVE -← (‎ ⩮ ‎) 2A6E EQUALS WITH ASTERISK - -# > ᐳ 𖼿 ˃ › ❯ 𝈷 - (‎ > ‎) 003E GREATER-THAN SIGN -← (‎ ᐳ ‎) 1433 CANADIAN SYLLABICS PO -← (‎ 𖼿 ‎) 16F3F MIAO LETTER ARCHAIC ZZA -← (‎ ˃ ‎) 02C3 MODIFIER LETTER RIGHT ARROWHEAD -← (‎ › ‎) 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -← (‎ ❯ ‎) 276F HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT # →›→ -← (‎ 𝈷 ‎) 1D237 GREEK INSTRUMENTAL NOTATION SYMBOL-42 - -# >< ⪥ - (‎ >< ‎) 003E 003C GREATER-THAN SIGN, LESS-THAN SIGN -← (‎ ⪥ ‎) 2AA5 GREATER-THAN BESIDE LESS-THAN - -# >> ≫ ⨠ - (‎ >> ‎) 003E 003E GREATER-THAN SIGN, GREATER-THAN SIGN -← (‎ ≫ ‎) 226B MUCH GREATER-THAN -← (‎ ⨠ ‎) 2A20 Z NOTATION SCHEMA PIPING # →≫→ - -# >>> ⋙ - (‎ >>> ‎) 003E 003E 003E GREATER-THAN SIGN, GREATER-THAN SIGN, GREATER-THAN SIGN -← (‎ ⋙ ‎) 22D9 VERY MUCH GREATER-THAN - -# >· ᐳᐧ ᑁ - (‎ >· ‎) 003E 00B7 GREATER-THAN SIGN, MIDDLE DOT -← (‎ ᐳᐧ ‎) 1433 1427 CANADIAN SYLLABICS PO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑁ ‎) 1441 CANADIAN SYLLABICS WEST-CREE PWO # →ᐳᐧ→ - -# ? Ɂ ʔ ॽ Ꭾ ꛫ - (‎ ? ‎) 003F QUESTION MARK -← (‎ Ɂ ‎) 0241 LATIN CAPITAL LETTER GLOTTAL STOP # →ʔ→ -← (‎ ʔ ‎) 0294 LATIN LETTER GLOTTAL STOP -← (‎ ॽ ‎) 097D DEVANAGARI LETTER GLOTTAL STOP -← (‎ Ꭾ ‎) 13AE CHEROKEE LETTER HE # →Ɂ→→ʔ→ -← (‎ ꛫ ‎) A6EB BAMUM LETTER NTUU # →ʔ→ - -# ?! ⁈ - (‎ ?! ‎) 003F 0021 QUESTION MARK, EXCLAMATION MARK -← (‎ ⁈ ‎) 2048 QUESTION EXCLAMATION MARK - -# ?? ⁇ - (‎ ?? ‎) 003F 003F QUESTION MARK, QUESTION MARK -← (‎ ⁇ ‎) 2047 DOUBLE QUESTION MARK - -# A Α А Ꭺ ᗅ ꓮ 𐊠 𖽀 A 𝐀 𝐴 𝑨 𝒜 𝓐 𝔄 𝔸 𝕬 𝖠 𝗔 𝘈 𝘼 𝙰 𝚨 𝛢 𝜜 𝝖 𝞐 - (‎ A ‎) 0041 LATIN CAPITAL LETTER A -← (‎ Α ‎) 0391 GREEK CAPITAL LETTER ALPHA -← (‎ А ‎) 0410 CYRILLIC CAPITAL LETTER A -← (‎ Ꭺ ‎) 13AA CHEROKEE LETTER GO -← (‎ ᗅ ‎) 15C5 CANADIAN SYLLABICS CARRIER GHO -← (‎ ꓮ ‎) A4EE LISU LETTER A -← (‎ 𐊠 ‎) 102A0 CARIAN LETTER A -← (‎ 𖽀 ‎) 16F40 MIAO LETTER ZZYA -← (‎ A ‎) FF21 FULLWIDTH LATIN CAPITAL LETTER A # →А→ -← (‎ 𝐀 ‎) 1D400 MATHEMATICAL BOLD CAPITAL A -← (‎ 𝐴 ‎) 1D434 MATHEMATICAL ITALIC CAPITAL A -← (‎ 𝑨 ‎) 1D468 MATHEMATICAL BOLD ITALIC CAPITAL A -← (‎ 𝒜 ‎) 1D49C MATHEMATICAL SCRIPT CAPITAL A -← (‎ 𝓐 ‎) 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A -← (‎ 𝔄 ‎) 1D504 MATHEMATICAL FRAKTUR CAPITAL A -← (‎ 𝔸 ‎) 1D538 MATHEMATICAL DOUBLE-STRUCK CAPITAL A -← (‎ 𝕬 ‎) 1D56C MATHEMATICAL BOLD FRAKTUR CAPITAL A -← (‎ 𝖠 ‎) 1D5A0 MATHEMATICAL SANS-SERIF CAPITAL A -← (‎ 𝗔 ‎) 1D5D4 MATHEMATICAL SANS-SERIF BOLD CAPITAL A -← (‎ 𝘈 ‎) 1D608 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A -← (‎ 𝘼 ‎) 1D63C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A -← (‎ 𝙰 ‎) 1D670 MATHEMATICAL MONOSPACE CAPITAL A -← (‎ 𝚨 ‎) 1D6A8 MATHEMATICAL BOLD CAPITAL ALPHA # →𝐀→ -← (‎ 𝛢 ‎) 1D6E2 MATHEMATICAL ITALIC CAPITAL ALPHA # →Α→ -← (‎ 𝜜 ‎) 1D71C MATHEMATICAL BOLD ITALIC CAPITAL ALPHA # →Α→ -← (‎ 𝝖 ‎) 1D756 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA # →Α→ -← (‎ 𝞐 ‎) 1D790 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA # →Α→ - -# AA Ꜳ - (‎ AA ‎) 0041 0041 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A -← (‎ Ꜳ ‎) A732 LATIN CAPITAL LETTER AA - -# AE Æ Ӕ - (‎ AE ‎) 0041 0045 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER E -← (‎ Æ ‎) 00C6 LATIN CAPITAL LETTER AE -← (‎ Ӕ ‎) 04D4 CYRILLIC CAPITAL LIGATURE A IE # →Æ→ - -# AO Ꜵ - (‎ AO ‎) 0041 004F LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER O -← (‎ Ꜵ ‎) A734 LATIN CAPITAL LETTER AO - -# AR 🜇 - (‎ AR ‎) 0041 0052 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER R -← (‎ 🜇 ‎) 1F707 ALCHEMICAL SYMBOL FOR AQUA REGIA-2 - -# AU Ꜷ - (‎ AU ‎) 0041 0055 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER U -← (‎ Ꜷ ‎) A736 LATIN CAPITAL LETTER AU - -# AV Ꜹ Ꜻ - (‎ AV ‎) 0041 0056 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER V -← (‎ Ꜹ ‎) A738 LATIN CAPITAL LETTER AV -← (‎ Ꜻ ‎) A73A LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR - -# AY Ꜽ - (‎ AY ‎) 0041 0059 LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER Y -← (‎ Ꜽ ‎) A73C LATIN CAPITAL LETTER AY - -# B Β В Ᏼ ᗷ ꓐ 𐊂 𐊡 𐌁 Ꞵ B ℬ 𝐁 𝐵 𝑩 𝓑 𝔅 𝔹 𝕭 𝖡 𝗕 𝘉 𝘽 𝙱 𝚩 𝛣 𝜝 𝝗 𝞑 - (‎ B ‎) 0042 LATIN CAPITAL LETTER B -← (‎ Β ‎) 0392 GREEK CAPITAL LETTER BETA -← (‎ В ‎) 0412 CYRILLIC CAPITAL LETTER VE -← (‎ Ᏼ ‎) 13F4 CHEROKEE LETTER YV -← (‎ ᗷ ‎) 15F7 CANADIAN SYLLABICS CARRIER KHE -← (‎ ꓐ ‎) A4D0 LISU LETTER BA -← (‎ 𐊂 ‎) 10282 LYCIAN LETTER B -← (‎ 𐊡 ‎) 102A1 CARIAN LETTER P2 -← (‎ 𐌁 ‎) 10301 OLD ITALIC LETTER BE -← (‎ Ꞵ ‎) A7B4 LATIN CAPITAL LETTER BETA -← (‎ B ‎) FF22 FULLWIDTH LATIN CAPITAL LETTER B # →Β→ -← (‎ ℬ ‎) 212C SCRIPT CAPITAL B -← (‎ 𝐁 ‎) 1D401 MATHEMATICAL BOLD CAPITAL B -← (‎ 𝐵 ‎) 1D435 MATHEMATICAL ITALIC CAPITAL B -← (‎ 𝑩 ‎) 1D469 MATHEMATICAL BOLD ITALIC CAPITAL B -← (‎ 𝓑 ‎) 1D4D1 MATHEMATICAL BOLD SCRIPT CAPITAL B -← (‎ 𝔅 ‎) 1D505 MATHEMATICAL FRAKTUR CAPITAL B -← (‎ 𝔹 ‎) 1D539 MATHEMATICAL DOUBLE-STRUCK CAPITAL B -← (‎ 𝕭 ‎) 1D56D MATHEMATICAL BOLD FRAKTUR CAPITAL B -← (‎ 𝖡 ‎) 1D5A1 MATHEMATICAL SANS-SERIF CAPITAL B -← (‎ 𝗕 ‎) 1D5D5 MATHEMATICAL SANS-SERIF BOLD CAPITAL B -← (‎ 𝘉 ‎) 1D609 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B -← (‎ 𝘽 ‎) 1D63D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B -← (‎ 𝙱 ‎) 1D671 MATHEMATICAL MONOSPACE CAPITAL B -← (‎ 𝚩 ‎) 1D6A9 MATHEMATICAL BOLD CAPITAL BETA # →Β→ -← (‎ 𝛣 ‎) 1D6E3 MATHEMATICAL ITALIC CAPITAL BETA # →Β→ -← (‎ 𝜝 ‎) 1D71D MATHEMATICAL BOLD ITALIC CAPITAL BETA # →Β→ -← (‎ 𝝗 ‎) 1D757 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA # →Β→ -← (‎ 𝞑 ‎) 1D791 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA # →Β→ - -# C С Ꮯ Ⲥ ꓚ 𐊢 𐌂 𐐕 🝌 𐔜 𑣩 𑣲 Ⅽ C ℂ ℭ Ϲ 𝐂 𝐶 𝑪 𝒞 𝓒 𝕮 𝖢 𝗖 𝘊 𝘾 𝙲 - (‎ C ‎) 0043 LATIN CAPITAL LETTER C -← (‎ С ‎) 0421 CYRILLIC CAPITAL LETTER ES -← (‎ Ꮯ ‎) 13DF CHEROKEE LETTER TLI -← (‎ Ⲥ ‎) 2CA4 COPTIC CAPITAL LETTER SIMA # →Ϲ→ -← (‎ ꓚ ‎) A4DA LISU LETTER CA -← (‎ 𐊢 ‎) 102A2 CARIAN LETTER D -← (‎ 𐌂 ‎) 10302 OLD ITALIC LETTER KE -← (‎ 𐐕 ‎) 10415 DESERET CAPITAL LETTER CHEE -← (‎ 🝌 ‎) 1F74C ALCHEMICAL SYMBOL FOR CALX -← (‎ 𐔜 ‎) 1051C ELBASAN LETTER SHE -← (‎ 𑣩 ‎) 118E9 WARANG CITI DIGIT NINE -← (‎ 𑣲 ‎) 118F2 WARANG CITI NUMBER NINETY -← (‎ Ⅽ ‎) 216D ROMAN NUMERAL ONE HUNDRED -← (‎ C ‎) FF23 FULLWIDTH LATIN CAPITAL LETTER C # →С→ -← (‎ ℂ ‎) 2102 DOUBLE-STRUCK CAPITAL C -← (‎ ℭ ‎) 212D BLACK-LETTER CAPITAL C -← (‎ Ϲ ‎) 03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL -← (‎ 𝐂 ‎) 1D402 MATHEMATICAL BOLD CAPITAL C -← (‎ 𝐶 ‎) 1D436 MATHEMATICAL ITALIC CAPITAL C -← (‎ 𝑪 ‎) 1D46A MATHEMATICAL BOLD ITALIC CAPITAL C -← (‎ 𝒞 ‎) 1D49E MATHEMATICAL SCRIPT CAPITAL C -← (‎ 𝓒 ‎) 1D4D2 MATHEMATICAL BOLD SCRIPT CAPITAL C -← (‎ 𝕮 ‎) 1D56E MATHEMATICAL BOLD FRAKTUR CAPITAL C -← (‎ 𝖢 ‎) 1D5A2 MATHEMATICAL SANS-SERIF CAPITAL C -← (‎ 𝗖 ‎) 1D5D6 MATHEMATICAL SANS-SERIF BOLD CAPITAL C -← (‎ 𝘊 ‎) 1D60A MATHEMATICAL SANS-SERIF ITALIC CAPITAL C -← (‎ 𝘾 ‎) 1D63E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C -← (‎ 𝙲 ‎) 1D672 MATHEMATICAL MONOSPACE CAPITAL C - -# C' Cʽ Ƈ - (‎ C' ‎) 0043 0027 LATIN CAPITAL LETTER C, APOSTROPHE -← (‎ Cʽ ‎) 0043 02BD LATIN CAPITAL LETTER C, MODIFIER LETTER REVERSED COMMA -← (‎ Ƈ ‎) 0187 LATIN CAPITAL LETTER C WITH HOOK # →Cʽ→ - -# C̦ С̦ С̡ Ҫ Ç - (‎ C̦ ‎) 0043 0326 LATIN CAPITAL LETTER C, COMBINING COMMA BELOW -← (‎ С̦ ‎) 0421 0326 CYRILLIC CAPITAL LETTER ES, COMBINING COMMA BELOW # →С̡→ -← (‎ С̡ ‎) 0421 0321 CYRILLIC CAPITAL LETTER ES, COMBINING PALATALIZED HOOK BELOW -← (‎ Ҫ ‎) 04AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER # →С̡→ -← (‎ Ç ‎) 00C7 LATIN CAPITAL LETTER C WITH CEDILLA # →Ҫ→→С̡→ - -# C⃠ 🅮 - (‎ C⃠ ‎) 0043 20E0 LATIN CAPITAL LETTER C, COMBINING ENCLOSING CIRCLE BACKSLASH -← (‎ 🅮 ‎) 1F16E CIRCLED C WITH OVERLAID BACKSLASH - -# C⃫ ₡ - (‎ C⃫ ‎) 0043 20EB LATIN CAPITAL LETTER C, COMBINING LONG DOUBLE SOLIDUS OVERLAY -← (‎ ₡ ‎) 20A1 COLON SIGN - -# D Ꭰ ᗞ ᗪ ꓓ Ⅾ ⅅ 𝐃 𝐷 𝑫 𝒟 𝓓 𝔇 𝔻 𝕯 𝖣 𝗗 𝘋 𝘿 𝙳 - (‎ D ‎) 0044 LATIN CAPITAL LETTER D -← (‎ Ꭰ ‎) 13A0 CHEROKEE LETTER A -← (‎ ᗞ ‎) 15DE CANADIAN SYLLABICS CARRIER THE -← (‎ ᗪ ‎) 15EA CANADIAN SYLLABICS CARRIER PE # →ᗞ→ -← (‎ ꓓ ‎) A4D3 LISU LETTER DA -← (‎ Ⅾ ‎) 216E ROMAN NUMERAL FIVE HUNDRED -← (‎ ⅅ ‎) 2145 DOUBLE-STRUCK ITALIC CAPITAL D -← (‎ 𝐃 ‎) 1D403 MATHEMATICAL BOLD CAPITAL D -← (‎ 𝐷 ‎) 1D437 MATHEMATICAL ITALIC CAPITAL D -← (‎ 𝑫 ‎) 1D46B MATHEMATICAL BOLD ITALIC CAPITAL D -← (‎ 𝒟 ‎) 1D49F MATHEMATICAL SCRIPT CAPITAL D -← (‎ 𝓓 ‎) 1D4D3 MATHEMATICAL BOLD SCRIPT CAPITAL D -← (‎ 𝔇 ‎) 1D507 MATHEMATICAL FRAKTUR CAPITAL D -← (‎ 𝔻 ‎) 1D53B MATHEMATICAL DOUBLE-STRUCK CAPITAL D -← (‎ 𝕯 ‎) 1D56F MATHEMATICAL BOLD FRAKTUR CAPITAL D -← (‎ 𝖣 ‎) 1D5A3 MATHEMATICAL SANS-SERIF CAPITAL D -← (‎ 𝗗 ‎) 1D5D7 MATHEMATICAL SANS-SERIF BOLD CAPITAL D -← (‎ 𝘋 ‎) 1D60B MATHEMATICAL SANS-SERIF ITALIC CAPITAL D -← (‎ 𝘿 ‎) 1D63F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D -← (‎ 𝙳 ‎) 1D673 MATHEMATICAL MONOSPACE CAPITAL D - -# DZ DZ - (‎ DZ ‎) 0044 005A LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z -← (‎ DZ ‎) 01F1 LATIN CAPITAL LETTER DZ - -# Dz Dz - (‎ Dz ‎) 0044 007A LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z -← (‎ Dz ‎) 01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z - -# DŽ DŽ - (‎ DŽ ‎) 0044 017D LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON -← (‎ DŽ ‎) 01C4 LATIN CAPITAL LETTER DZ WITH CARON - -# Dž Dž - (‎ Dž ‎) 0044 017E LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON -← (‎ Dž ‎) 01C5 LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON - -# D̵ Ð Đ Ɖ - (‎ D̵ ‎) 0044 0335 LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY -← (‎ Ð ‎) 00D0 LATIN CAPITAL LETTER ETH # →Đ→ -← (‎ Đ ‎) 0110 LATIN CAPITAL LETTER D WITH STROKE -← (‎ Ɖ ‎) 0189 LATIN CAPITAL LETTER AFRICAN D # →Đ→ - -# E Ε Е Ꭼ ⴹ ꓰ 𐊆 ⋿ 𑢦 𑢮 E ℰ 𝐄 𝐸 𝑬 𝓔 𝔈 𝔼 𝕰 𝖤 𝗘 𝘌 𝙀 𝙴 𝚬 𝛦 𝜠 𝝚 𝞔 - (‎ E ‎) 0045 LATIN CAPITAL LETTER E -← (‎ Ε ‎) 0395 GREEK CAPITAL LETTER EPSILON -← (‎ Е ‎) 0415 CYRILLIC CAPITAL LETTER IE -← (‎ Ꭼ ‎) 13AC CHEROKEE LETTER GV -← (‎ ⴹ ‎) 2D39 TIFINAGH LETTER YADD -← (‎ ꓰ ‎) A4F0 LISU LETTER E -← (‎ 𐊆 ‎) 10286 LYCIAN LETTER I -← (‎ ⋿ ‎) 22FF Z NOTATION BAG MEMBERSHIP -← (‎ 𑢦 ‎) 118A6 WARANG CITI CAPITAL LETTER II -← (‎ 𑢮 ‎) 118AE WARANG CITI CAPITAL LETTER YUJ -← (‎ E ‎) FF25 FULLWIDTH LATIN CAPITAL LETTER E # →Ε→ -← (‎ ℰ ‎) 2130 SCRIPT CAPITAL E -← (‎ 𝐄 ‎) 1D404 MATHEMATICAL BOLD CAPITAL E -← (‎ 𝐸 ‎) 1D438 MATHEMATICAL ITALIC CAPITAL E -← (‎ 𝑬 ‎) 1D46C MATHEMATICAL BOLD ITALIC CAPITAL E -← (‎ 𝓔 ‎) 1D4D4 MATHEMATICAL BOLD SCRIPT CAPITAL E -← (‎ 𝔈 ‎) 1D508 MATHEMATICAL FRAKTUR CAPITAL E -← (‎ 𝔼 ‎) 1D53C MATHEMATICAL DOUBLE-STRUCK CAPITAL E -← (‎ 𝕰 ‎) 1D570 MATHEMATICAL BOLD FRAKTUR CAPITAL E -← (‎ 𝖤 ‎) 1D5A4 MATHEMATICAL SANS-SERIF CAPITAL E -← (‎ 𝗘 ‎) 1D5D8 MATHEMATICAL SANS-SERIF BOLD CAPITAL E -← (‎ 𝘌 ‎) 1D60C MATHEMATICAL SANS-SERIF ITALIC CAPITAL E -← (‎ 𝙀 ‎) 1D640 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E -← (‎ 𝙴 ‎) 1D674 MATHEMATICAL MONOSPACE CAPITAL E -← (‎ 𝚬 ‎) 1D6AC MATHEMATICAL BOLD CAPITAL EPSILON # →𝐄→ -← (‎ 𝛦 ‎) 1D6E6 MATHEMATICAL ITALIC CAPITAL EPSILON # →Ε→ -← (‎ 𝜠 ‎) 1D720 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON # →Ε→ -← (‎ 𝝚 ‎) 1D75A MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON # →Ε→ -← (‎ 𝞔 ‎) 1D794 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON # →Ε→ - -# E̸ Ɇ - (‎ E̸ ‎) 0045 0338 LATIN CAPITAL LETTER E, COMBINING LONG SOLIDUS OVERLAY -← (‎ Ɇ ‎) 0246 LATIN CAPITAL LETTER E WITH STROKE - -# F Ϝ ᖴ ꓝ 𐊇 𐊥 𝈓 Ꞙ 𐔥 𑢢 𑣂 ℱ 𝐅 𝐹 𝑭 𝓕 𝔉 𝔽 𝕱 𝖥 𝗙 𝘍 𝙁 𝙵 𝟊 - (‎ F ‎) 0046 LATIN CAPITAL LETTER F -← (‎ Ϝ ‎) 03DC GREEK LETTER DIGAMMA -← (‎ ᖴ ‎) 15B4 CANADIAN SYLLABICS BLACKFOOT WE -← (‎ ꓝ ‎) A4DD LISU LETTER TSA -← (‎ 𐊇 ‎) 10287 LYCIAN LETTER W -← (‎ 𐊥 ‎) 102A5 CARIAN LETTER R -← (‎ 𝈓 ‎) 1D213 GREEK VOCAL NOTATION SYMBOL-20 # →Ϝ→ -← (‎ Ꞙ ‎) A798 LATIN CAPITAL LETTER F WITH STROKE -← (‎ 𐔥 ‎) 10525 ELBASAN LETTER GHE -← (‎ 𑢢 ‎) 118A2 WARANG CITI CAPITAL LETTER WI -← (‎ 𑣂 ‎) 118C2 WARANG CITI SMALL LETTER WI -← (‎ ℱ ‎) 2131 SCRIPT CAPITAL F -← (‎ 𝐅 ‎) 1D405 MATHEMATICAL BOLD CAPITAL F -← (‎ 𝐹 ‎) 1D439 MATHEMATICAL ITALIC CAPITAL F -← (‎ 𝑭 ‎) 1D46D MATHEMATICAL BOLD ITALIC CAPITAL F -← (‎ 𝓕 ‎) 1D4D5 MATHEMATICAL BOLD SCRIPT CAPITAL F -← (‎ 𝔉 ‎) 1D509 MATHEMATICAL FRAKTUR CAPITAL F -← (‎ 𝔽 ‎) 1D53D MATHEMATICAL DOUBLE-STRUCK CAPITAL F -← (‎ 𝕱 ‎) 1D571 MATHEMATICAL BOLD FRAKTUR CAPITAL F -← (‎ 𝖥 ‎) 1D5A5 MATHEMATICAL SANS-SERIF CAPITAL F -← (‎ 𝗙 ‎) 1D5D9 MATHEMATICAL SANS-SERIF BOLD CAPITAL F -← (‎ 𝘍 ‎) 1D60D MATHEMATICAL SANS-SERIF ITALIC CAPITAL F -← (‎ 𝙁 ‎) 1D641 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F -← (‎ 𝙵 ‎) 1D675 MATHEMATICAL MONOSPACE CAPITAL F -← (‎ 𝟊 ‎) 1D7CA MATHEMATICAL BOLD CAPITAL DIGAMMA # →Ϝ→ - -# FAX ℻ - (‎ FAX ‎) 0046 0041 0058 LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER X -← (‎ ℻ ‎) 213B FACSIMILE SIGN - -# F̦ F̡ Ƒ - (‎ F̡ ‎) 0046 0321 LATIN CAPITAL LETTER F, COMBINING PALATALIZED HOOK BELOW -← (‎ F̦ ‎) 0046 0326 LATIN CAPITAL LETTER F, COMBINING COMMA BELOW -← (‎ Ƒ ‎) 0191 LATIN CAPITAL LETTER F WITH HOOK - -# G Ԍ Ꮐ Ᏻ ꓖ 𝐆 𝐺 𝑮 𝒢 𝓖 𝔊 𝔾 𝕲 𝖦 𝗚 𝘎 𝙂 𝙶 - (‎ G ‎) 0047 LATIN CAPITAL LETTER G -← (‎ Ԍ ‎) 050C CYRILLIC CAPITAL LETTER KOMI SJE -← (‎ Ꮐ ‎) 13C0 CHEROKEE LETTER NAH -← (‎ Ᏻ ‎) 13F3 CHEROKEE LETTER YU -← (‎ ꓖ ‎) A4D6 LISU LETTER GA -← (‎ 𝐆 ‎) 1D406 MATHEMATICAL BOLD CAPITAL G -← (‎ 𝐺 ‎) 1D43A MATHEMATICAL ITALIC CAPITAL G -← (‎ 𝑮 ‎) 1D46E MATHEMATICAL BOLD ITALIC CAPITAL G -← (‎ 𝒢 ‎) 1D4A2 MATHEMATICAL SCRIPT CAPITAL G -← (‎ 𝓖 ‎) 1D4D6 MATHEMATICAL BOLD SCRIPT CAPITAL G -← (‎ 𝔊 ‎) 1D50A MATHEMATICAL FRAKTUR CAPITAL G -← (‎ 𝔾 ‎) 1D53E MATHEMATICAL DOUBLE-STRUCK CAPITAL G -← (‎ 𝕲 ‎) 1D572 MATHEMATICAL BOLD FRAKTUR CAPITAL G -← (‎ 𝖦 ‎) 1D5A6 MATHEMATICAL SANS-SERIF CAPITAL G -← (‎ 𝗚 ‎) 1D5DA MATHEMATICAL SANS-SERIF BOLD CAPITAL G -← (‎ 𝘎 ‎) 1D60E MATHEMATICAL SANS-SERIF ITALIC CAPITAL G -← (‎ 𝙂 ‎) 1D642 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G -← (‎ 𝙶 ‎) 1D676 MATHEMATICAL MONOSPACE CAPITAL G - -# G' Gʽ Ɠ - (‎ G' ‎) 0047 0027 LATIN CAPITAL LETTER G, APOSTROPHE -← (‎ Gʽ ‎) 0047 02BD LATIN CAPITAL LETTER G, MODIFIER LETTER REVERSED COMMA -← (‎ Ɠ ‎) 0193 LATIN CAPITAL LETTER G WITH HOOK # →Gʽ→ - -# G̵ Ǥ - (‎ G̵ ‎) 0047 0335 LATIN CAPITAL LETTER G, COMBINING SHORT STROKE OVERLAY -← (‎ Ǥ ‎) 01E4 LATIN CAPITAL LETTER G WITH STROKE - -# H Η Н Ꮋ ᕼ Ⲏ ꓧ 𐋏 H ℋ ℌ ℍ 𝐇 𝐻 𝑯 𝓗 𝕳 𝖧 𝗛 𝘏 𝙃 𝙷 𝚮 𝛨 𝜢 𝝜 𝞖 - (‎ H ‎) 0048 LATIN CAPITAL LETTER H -← (‎ Η ‎) 0397 GREEK CAPITAL LETTER ETA -← (‎ Н ‎) 041D CYRILLIC CAPITAL LETTER EN -← (‎ Ꮋ ‎) 13BB CHEROKEE LETTER MI -← (‎ ᕼ ‎) 157C CANADIAN SYLLABICS NUNAVUT H -← (‎ Ⲏ ‎) 2C8E COPTIC CAPITAL LETTER HATE # →Η→ -← (‎ ꓧ ‎) A4E7 LISU LETTER XA -← (‎ 𐋏 ‎) 102CF CARIAN LETTER E2 -← (‎ H ‎) FF28 FULLWIDTH LATIN CAPITAL LETTER H # →Η→ -← (‎ ℋ ‎) 210B SCRIPT CAPITAL H -← (‎ ℌ ‎) 210C BLACK-LETTER CAPITAL H -← (‎ ℍ ‎) 210D DOUBLE-STRUCK CAPITAL H -← (‎ 𝐇 ‎) 1D407 MATHEMATICAL BOLD CAPITAL H -← (‎ 𝐻 ‎) 1D43B MATHEMATICAL ITALIC CAPITAL H -← (‎ 𝑯 ‎) 1D46F MATHEMATICAL BOLD ITALIC CAPITAL H -← (‎ 𝓗 ‎) 1D4D7 MATHEMATICAL BOLD SCRIPT CAPITAL H -← (‎ 𝕳 ‎) 1D573 MATHEMATICAL BOLD FRAKTUR CAPITAL H -← (‎ 𝖧 ‎) 1D5A7 MATHEMATICAL SANS-SERIF CAPITAL H -← (‎ 𝗛 ‎) 1D5DB MATHEMATICAL SANS-SERIF BOLD CAPITAL H -← (‎ 𝘏 ‎) 1D60F MATHEMATICAL SANS-SERIF ITALIC CAPITAL H -← (‎ 𝙃 ‎) 1D643 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H -← (‎ 𝙷 ‎) 1D677 MATHEMATICAL MONOSPACE CAPITAL H -← (‎ 𝚮 ‎) 1D6AE MATHEMATICAL BOLD CAPITAL ETA # →Η→ -← (‎ 𝛨 ‎) 1D6E8 MATHEMATICAL ITALIC CAPITAL ETA # →Η→ -← (‎ 𝜢 ‎) 1D722 MATHEMATICAL BOLD ITALIC CAPITAL ETA # →𝑯→ -← (‎ 𝝜 ‎) 1D75C MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA # →Η→ -← (‎ 𝞖 ‎) 1D796 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA # →Η→ - -# H̦ Н̦ Н̡ Ӈ Ӊ - (‎ H̦ ‎) 0048 0326 LATIN CAPITAL LETTER H, COMBINING COMMA BELOW -← (‎ Н̦ ‎) 041D 0326 CYRILLIC CAPITAL LETTER EN, COMBINING COMMA BELOW # →Н̡→ -← (‎ Н̡ ‎) 041D 0321 CYRILLIC CAPITAL LETTER EN, COMBINING PALATALIZED HOOK BELOW -← (‎ Ӈ ‎) 04C7 CYRILLIC CAPITAL LETTER EN WITH HOOK # →Н̡→ -← (‎ Ӊ ‎) 04C9 CYRILLIC CAPITAL LETTER EN WITH TAIL # →Н̡→ - -# H̩ Н̩ Ⱨ Ң - (‎ H̩ ‎) 0048 0329 LATIN CAPITAL LETTER H, COMBINING VERTICAL LINE BELOW -← (‎ Н̩ ‎) 041D 0329 CYRILLIC CAPITAL LETTER EN, COMBINING VERTICAL LINE BELOW -← (‎ Ⱨ ‎) 2C67 LATIN CAPITAL LETTER H WITH DESCENDER # →Ң→→Н̩→ -← (‎ Ң ‎) 04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER # →Н̩→ - -# H̵ Ħ - (‎ H̵ ‎) 0048 0335 LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY -← (‎ Ħ ‎) 0126 LATIN CAPITAL LETTER H WITH STROKE - -# lll III Ⅲ - (‎ III ‎) 0049 0049 0049 LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I -← (‎ lll ‎) 006C 006C 006C LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER L -← (‎ Ⅲ ‎) 2162 ROMAN NUMERAL THREE - -# lJ IJ IJ - (‎ IJ ‎) 0049 004A LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER J -← (‎ lJ ‎) 006C 004A LATIN SMALL LETTER L, LATIN CAPITAL LETTER J -← (‎ IJ ‎) 0132 LATIN CAPITAL LIGATURE IJ - -# lO IO Ю - (‎ IO ‎) 0049 004F LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER O -← (‎ lO ‎) 006C 004F LATIN SMALL LETTER L, LATIN CAPITAL LETTER O -← (‎ Ю ‎) 042E CYRILLIC CAPITAL LETTER YU - -# lV IV Ⅳ - (‎ IV ‎) 0049 0056 LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER V -← (‎ lV ‎) 006C 0056 LATIN SMALL LETTER L, LATIN CAPITAL LETTER V -← (‎ Ⅳ ‎) 2163 ROMAN NUMERAL FOUR - -# lX IX Ⅸ - (‎ IX ‎) 0049 0058 LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER X -← (‎ lX ‎) 006C 0058 LATIN SMALL LETTER L, LATIN CAPITAL LETTER X -← (‎ Ⅸ ‎) 2168 ROMAN NUMERAL NINE - -# l̵ I̵ Ɨ ƚ - (‎ I̵ ‎) 0049 0335 LATIN CAPITAL LETTER I, COMBINING SHORT STROKE OVERLAY -← (‎ l̵ ‎) 006C 0335 LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY -← (‎ Ɨ ‎) 0197 LATIN CAPITAL LETTER I WITH STROKE -← (‎ ƚ ‎) 019A LATIN SMALL LETTER L WITH BAR # →Ɨ→ - -# l̵l̵ I̵I̵ I̶I̶ 𐆙 - (‎ I̵I̵ ‎) 0049 0335 0049 0335 LATIN CAPITAL LETTER I, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER I, COMBINING SHORT STROKE OVERLAY -← (‎ l̵l̵ ‎) 006C 0335 006C 0335 LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY # →I̶I̶→ -← (‎ I̶I̶ ‎) 0049 0336 0049 0336 LATIN CAPITAL LETTER I, COMBINING LONG STROKE OVERLAY, LATIN CAPITAL LETTER I, COMBINING LONG STROKE OVERLAY -← (‎ 𐆙 ‎) 10199 ROMAN DUPONDIUS SIGN # →I̶I̶→ - -# l̵l̵S̵ I̵I̵S̵ I̶I̶S̶ 𐆘 - (‎ I̵I̵S̵ ‎) 0049 0335 0049 0335 0053 0335 LATIN CAPITAL LETTER I, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER I, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER S, COMBINING SHORT STROKE OVERLAY -← (‎ l̵l̵S̵ ‎) 006C 0335 006C 0335 0053 0335 LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER S, COMBINING SHORT STROKE OVERLAY # →I̶I̶S̶→ -← (‎ I̶I̶S̶ ‎) 0049 0336 0049 0336 0053 0336 LATIN CAPITAL LETTER I, COMBINING LONG STROKE OVERLAY, LATIN CAPITAL LETTER I, COMBINING LONG STROKE OVERLAY, LATIN CAPITAL LETTER S, COMBINING LONG STROKE OVERLAY -← (‎ 𐆘 ‎) 10198 ROMAN SESTERTIUS SIGN # →I̶I̶S̶→ - -# J Ј Ꭻ ᒍ ꓙ Ϳ Ʝ J 𝐉 𝐽 𝑱 𝒥 𝓙 𝔍 𝕁 𝕵 𝖩 𝗝 𝘑 𝙅 𝙹 - (‎ J ‎) 004A LATIN CAPITAL LETTER J -← (‎ Ј ‎) 0408 CYRILLIC CAPITAL LETTER JE -← (‎ Ꭻ ‎) 13AB CHEROKEE LETTER GU -← (‎ ᒍ ‎) 148D CANADIAN SYLLABICS CO -← (‎ ꓙ ‎) A4D9 LISU LETTER JA -← (‎ Ϳ ‎) 037F GREEK CAPITAL LETTER YOT -← (‎ Ʝ ‎) A7B2 LATIN CAPITAL LETTER J WITH CROSSED-TAIL -← (‎ J ‎) FF2A FULLWIDTH LATIN CAPITAL LETTER J # →Ј→ -← (‎ 𝐉 ‎) 1D409 MATHEMATICAL BOLD CAPITAL J -← (‎ 𝐽 ‎) 1D43D MATHEMATICAL ITALIC CAPITAL J -← (‎ 𝑱 ‎) 1D471 MATHEMATICAL BOLD ITALIC CAPITAL J -← (‎ 𝒥 ‎) 1D4A5 MATHEMATICAL SCRIPT CAPITAL J -← (‎ 𝓙 ‎) 1D4D9 MATHEMATICAL BOLD SCRIPT CAPITAL J -← (‎ 𝔍 ‎) 1D50D MATHEMATICAL FRAKTUR CAPITAL J -← (‎ 𝕁 ‎) 1D541 MATHEMATICAL DOUBLE-STRUCK CAPITAL J -← (‎ 𝕵 ‎) 1D575 MATHEMATICAL BOLD FRAKTUR CAPITAL J -← (‎ 𝖩 ‎) 1D5A9 MATHEMATICAL SANS-SERIF CAPITAL J -← (‎ 𝗝 ‎) 1D5DD MATHEMATICAL SANS-SERIF BOLD CAPITAL J -← (‎ 𝘑 ‎) 1D611 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J -← (‎ 𝙅 ‎) 1D645 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J -← (‎ 𝙹 ‎) 1D679 MATHEMATICAL MONOSPACE CAPITAL J - -# J· Ꭻ· ᒍ· ᒍᐧ ᒙ - (‎ J· ‎) 004A 00B7 LATIN CAPITAL LETTER J, MIDDLE DOT -← (‎ Ꭻ· ‎) 13AB 00B7 CHEROKEE LETTER GU, MIDDLE DOT # →ᒍᐧ→ -← (‎ ᒍ· ‎) 148D 00B7 CANADIAN SYLLABICS CO, MIDDLE DOT # →ᒍᐧ→ -← (‎ ᒍᐧ ‎) 148D 1427 CANADIAN SYLLABICS CO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒙ ‎) 1499 CANADIAN SYLLABICS WEST-CREE CWO # →ᒍᐧ→ - -# J̵ Ɉ - (‎ J̵ ‎) 004A 0335 LATIN CAPITAL LETTER J, COMBINING SHORT STROKE OVERLAY -← (‎ Ɉ ‎) 0248 LATIN CAPITAL LETTER J WITH STROKE - -# K Κ К Ꮶ ᛕ Ⲕ ꓗ 𐔘 K K 𝐊 𝐾 𝑲 𝒦 𝓚 𝔎 𝕂 𝕶 𝖪 𝗞 𝘒 𝙆 𝙺 𝚱 𝛫 𝜥 𝝟 𝞙 - (‎ K ‎) 004B LATIN CAPITAL LETTER K -← (‎ Κ ‎) 039A GREEK CAPITAL LETTER KAPPA -← (‎ К ‎) 041A CYRILLIC CAPITAL LETTER KA -← (‎ Ꮶ ‎) 13E6 CHEROKEE LETTER TSO -← (‎ ᛕ ‎) 16D5 RUNIC LETTER OPEN-P -← (‎ Ⲕ ‎) 2C94 COPTIC CAPITAL LETTER KAPA # →Κ→ -← (‎ ꓗ ‎) A4D7 LISU LETTER KA -← (‎ 𐔘 ‎) 10518 ELBASAN LETTER QE -← (‎ K ‎) 212A KELVIN SIGN -← (‎ K ‎) FF2B FULLWIDTH LATIN CAPITAL LETTER K # →Κ→ -← (‎ 𝐊 ‎) 1D40A MATHEMATICAL BOLD CAPITAL K -← (‎ 𝐾 ‎) 1D43E MATHEMATICAL ITALIC CAPITAL K -← (‎ 𝑲 ‎) 1D472 MATHEMATICAL BOLD ITALIC CAPITAL K -← (‎ 𝒦 ‎) 1D4A6 MATHEMATICAL SCRIPT CAPITAL K -← (‎ 𝓚 ‎) 1D4DA MATHEMATICAL BOLD SCRIPT CAPITAL K -← (‎ 𝔎 ‎) 1D50E MATHEMATICAL FRAKTUR CAPITAL K -← (‎ 𝕂 ‎) 1D542 MATHEMATICAL DOUBLE-STRUCK CAPITAL K -← (‎ 𝕶 ‎) 1D576 MATHEMATICAL BOLD FRAKTUR CAPITAL K -← (‎ 𝖪 ‎) 1D5AA MATHEMATICAL SANS-SERIF CAPITAL K -← (‎ 𝗞 ‎) 1D5DE MATHEMATICAL SANS-SERIF BOLD CAPITAL K -← (‎ 𝘒 ‎) 1D612 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K -← (‎ 𝙆 ‎) 1D646 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K -← (‎ 𝙺 ‎) 1D67A MATHEMATICAL MONOSPACE CAPITAL K -← (‎ 𝚱 ‎) 1D6B1 MATHEMATICAL BOLD CAPITAL KAPPA # →Κ→ -← (‎ 𝛫 ‎) 1D6EB MATHEMATICAL ITALIC CAPITAL KAPPA # →𝐾→ -← (‎ 𝜥 ‎) 1D725 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA # →𝑲→ -← (‎ 𝝟 ‎) 1D75F MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA # →Κ→ -← (‎ 𝞙 ‎) 1D799 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA # →Κ→ - -# K' Kʽ Ƙ - (‎ K' ‎) 004B 0027 LATIN CAPITAL LETTER K, APOSTROPHE -← (‎ Kʽ ‎) 004B 02BD LATIN CAPITAL LETTER K, MODIFIER LETTER REVERSED COMMA -← (‎ Ƙ ‎) 0198 LATIN CAPITAL LETTER K WITH HOOK # →Kʽ→ - -# K̩ К̩ Ⱪ Қ - (‎ K̩ ‎) 004B 0329 LATIN CAPITAL LETTER K, COMBINING VERTICAL LINE BELOW -← (‎ К̩ ‎) 041A 0329 CYRILLIC CAPITAL LETTER KA, COMBINING VERTICAL LINE BELOW -← (‎ Ⱪ ‎) 2C69 LATIN CAPITAL LETTER K WITH DESCENDER # →Қ→→К̩→ -← (‎ Қ ‎) 049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER # →К̩→ - -# K̵ K̶ К̵ Ꝁ Ҟ ₭ - (‎ K̵ ‎) 004B 0335 LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY -← (‎ K̶ ‎) 004B 0336 LATIN CAPITAL LETTER K, COMBINING LONG STROKE OVERLAY -← (‎ К̵ ‎) 041A 0335 CYRILLIC CAPITAL LETTER KA, COMBINING SHORT STROKE OVERLAY -← (‎ Ꝁ ‎) A740 LATIN CAPITAL LETTER K WITH STROKE # →Ҟ→→К̵→ -← (‎ Ҟ ‎) 049E CYRILLIC CAPITAL LETTER KA WITH STROKE # →К̵→ -← (‎ ₭ ‎) 20AD KIP SIGN # →K̶→ - -# L Ꮮ ᒪ Ⳑ ꓡ 𐐛 𖼖 𝈪 𐔦 𑢣 𑢲 Ⅼ ℒ 𝐋 𝐿 𝑳 𝓛 𝔏 𝕃 𝕷 𝖫 𝗟 𝘓 𝙇 𝙻 - (‎ L ‎) 004C LATIN CAPITAL LETTER L -← (‎ Ꮮ ‎) 13DE CHEROKEE LETTER TLE -← (‎ ᒪ ‎) 14AA CANADIAN SYLLABICS MA -← (‎ Ⳑ ‎) 2CD0 COPTIC CAPITAL LETTER L-SHAPED HA -← (‎ ꓡ ‎) A4E1 LISU LETTER LA -← (‎ 𐐛 ‎) 1041B DESERET CAPITAL LETTER ETH -← (‎ 𖼖 ‎) 16F16 MIAO LETTER LA -← (‎ 𝈪 ‎) 1D22A GREEK INSTRUMENTAL NOTATION SYMBOL-23 -← (‎ 𐔦 ‎) 10526 ELBASAN LETTER GHAMMA -← (‎ 𑢣 ‎) 118A3 WARANG CITI CAPITAL LETTER YU -← (‎ 𑢲 ‎) 118B2 WARANG CITI CAPITAL LETTER TTE -← (‎ Ⅼ ‎) 216C ROMAN NUMERAL FIFTY -← (‎ ℒ ‎) 2112 SCRIPT CAPITAL L -← (‎ 𝐋 ‎) 1D40B MATHEMATICAL BOLD CAPITAL L -← (‎ 𝐿 ‎) 1D43F MATHEMATICAL ITALIC CAPITAL L -← (‎ 𝑳 ‎) 1D473 MATHEMATICAL BOLD ITALIC CAPITAL L -← (‎ 𝓛 ‎) 1D4DB MATHEMATICAL BOLD SCRIPT CAPITAL L -← (‎ 𝔏 ‎) 1D50F MATHEMATICAL FRAKTUR CAPITAL L -← (‎ 𝕃 ‎) 1D543 MATHEMATICAL DOUBLE-STRUCK CAPITAL L -← (‎ 𝕷 ‎) 1D577 MATHEMATICAL BOLD FRAKTUR CAPITAL L -← (‎ 𝖫 ‎) 1D5AB MATHEMATICAL SANS-SERIF CAPITAL L -← (‎ 𝗟 ‎) 1D5DF MATHEMATICAL SANS-SERIF BOLD CAPITAL L -← (‎ 𝘓 ‎) 1D613 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L -← (‎ 𝙇 ‎) 1D647 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L -← (‎ 𝙻 ‎) 1D67B MATHEMATICAL MONOSPACE CAPITAL L - -# LJ LJ - (‎ LJ ‎) 004C 004A LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J -← (‎ LJ ‎) 01C7 LATIN CAPITAL LETTER LJ - -# Lj Lj - (‎ Lj ‎) 004C 006A LATIN CAPITAL LETTER L, LATIN SMALL LETTER J -← (‎ Lj ‎) 01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J - -# L̸ L̷ Ł - (‎ L̷ ‎) 004C 0337 LATIN CAPITAL LETTER L, COMBINING SHORT SOLIDUS OVERLAY -← (‎ L̸ ‎) 004C 0338 LATIN CAPITAL LETTER L, COMBINING LONG SOLIDUS OVERLAY -← (‎ Ł ‎) 0141 LATIN CAPITAL LETTER L WITH STROKE - -# M Μ М Ϻ Ꮇ ᗰ ᛖ Ⲙ ꓟ 𐊰 𐌑 Ⅿ M ℳ 𝐌 𝑀 𝑴 𝓜 𝔐 𝕄 𝕸 𝖬 𝗠 𝘔 𝙈 𝙼 𝚳 𝛭 𝜧 𝝡 𝞛 - (‎ M ‎) 004D LATIN CAPITAL LETTER M -← (‎ Μ ‎) 039C GREEK CAPITAL LETTER MU -← (‎ М ‎) 041C CYRILLIC CAPITAL LETTER EM -← (‎ Ϻ ‎) 03FA GREEK CAPITAL LETTER SAN -← (‎ Ꮇ ‎) 13B7 CHEROKEE LETTER LU -← (‎ ᗰ ‎) 15F0 CANADIAN SYLLABICS CARRIER GO -← (‎ ᛖ ‎) 16D6 RUNIC LETTER EHWAZ EH E -← (‎ Ⲙ ‎) 2C98 COPTIC CAPITAL LETTER MI -← (‎ ꓟ ‎) A4DF LISU LETTER MA -← (‎ 𐊰 ‎) 102B0 CARIAN LETTER S -← (‎ 𐌑 ‎) 10311 OLD ITALIC LETTER SHE -← (‎ Ⅿ ‎) 216F ROMAN NUMERAL ONE THOUSAND -← (‎ M ‎) FF2D FULLWIDTH LATIN CAPITAL LETTER M # →Μ→ -← (‎ ℳ ‎) 2133 SCRIPT CAPITAL M -← (‎ 𝐌 ‎) 1D40C MATHEMATICAL BOLD CAPITAL M -← (‎ 𝑀 ‎) 1D440 MATHEMATICAL ITALIC CAPITAL M -← (‎ 𝑴 ‎) 1D474 MATHEMATICAL BOLD ITALIC CAPITAL M -← (‎ 𝓜 ‎) 1D4DC MATHEMATICAL BOLD SCRIPT CAPITAL M -← (‎ 𝔐 ‎) 1D510 MATHEMATICAL FRAKTUR CAPITAL M -← (‎ 𝕄 ‎) 1D544 MATHEMATICAL DOUBLE-STRUCK CAPITAL M -← (‎ 𝕸 ‎) 1D578 MATHEMATICAL BOLD FRAKTUR CAPITAL M -← (‎ 𝖬 ‎) 1D5AC MATHEMATICAL SANS-SERIF CAPITAL M -← (‎ 𝗠 ‎) 1D5E0 MATHEMATICAL SANS-SERIF BOLD CAPITAL M -← (‎ 𝘔 ‎) 1D614 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M -← (‎ 𝙈 ‎) 1D648 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M -← (‎ 𝙼 ‎) 1D67C MATHEMATICAL MONOSPACE CAPITAL M -← (‎ 𝚳 ‎) 1D6B3 MATHEMATICAL BOLD CAPITAL MU # →𝐌→ -← (‎ 𝛭 ‎) 1D6ED MATHEMATICAL ITALIC CAPITAL MU # →𝑀→ -← (‎ 𝜧 ‎) 1D727 MATHEMATICAL BOLD ITALIC CAPITAL MU # →𝑴→ -← (‎ 𝝡 ‎) 1D761 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU # →Μ→ -← (‎ 𝞛 ‎) 1D79B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU # →Μ→ - -# MB 🝫 - (‎ MB ‎) 004D 0042 LATIN CAPITAL LETTER M, LATIN CAPITAL LETTER B -← (‎ 🝫 ‎) 1F76B ALCHEMICAL SYMBOL FOR BATH OF MARY - -# M̦ М̦ М̡ Ӎ - (‎ M̦ ‎) 004D 0326 LATIN CAPITAL LETTER M, COMBINING COMMA BELOW -← (‎ М̦ ‎) 041C 0326 CYRILLIC CAPITAL LETTER EM, COMBINING COMMA BELOW # →М̡→ -← (‎ М̡ ‎) 041C 0321 CYRILLIC CAPITAL LETTER EM, COMBINING PALATALIZED HOOK BELOW -← (‎ Ӎ ‎) 04CD CYRILLIC CAPITAL LETTER EM WITH TAIL # →М̡→ - -# N Ν Ⲛ ꓠ 𐔓 N ℕ 𝐍 𝑁 𝑵 𝒩 𝓝 𝔑 𝕹 𝖭 𝗡 𝘕 𝙉 𝙽 𝚴 𝛮 𝜨 𝝢 𝞜 - (‎ N ‎) 004E LATIN CAPITAL LETTER N -← (‎ Ν ‎) 039D GREEK CAPITAL LETTER NU -← (‎ Ⲛ ‎) 2C9A COPTIC CAPITAL LETTER NI -← (‎ ꓠ ‎) A4E0 LISU LETTER NA -← (‎ 𐔓 ‎) 10513 ELBASAN LETTER NE -← (‎ N ‎) FF2E FULLWIDTH LATIN CAPITAL LETTER N # →Ν→ -← (‎ ℕ ‎) 2115 DOUBLE-STRUCK CAPITAL N -← (‎ 𝐍 ‎) 1D40D MATHEMATICAL BOLD CAPITAL N -← (‎ 𝑁 ‎) 1D441 MATHEMATICAL ITALIC CAPITAL N -← (‎ 𝑵 ‎) 1D475 MATHEMATICAL BOLD ITALIC CAPITAL N -← (‎ 𝒩 ‎) 1D4A9 MATHEMATICAL SCRIPT CAPITAL N -← (‎ 𝓝 ‎) 1D4DD MATHEMATICAL BOLD SCRIPT CAPITAL N -← (‎ 𝔑 ‎) 1D511 MATHEMATICAL FRAKTUR CAPITAL N -← (‎ 𝕹 ‎) 1D579 MATHEMATICAL BOLD FRAKTUR CAPITAL N -← (‎ 𝖭 ‎) 1D5AD MATHEMATICAL SANS-SERIF CAPITAL N -← (‎ 𝗡 ‎) 1D5E1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N -← (‎ 𝘕 ‎) 1D615 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N -← (‎ 𝙉 ‎) 1D649 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N -← (‎ 𝙽 ‎) 1D67D MATHEMATICAL MONOSPACE CAPITAL N -← (‎ 𝚴 ‎) 1D6B4 MATHEMATICAL BOLD CAPITAL NU # →𝐍→ -← (‎ 𝛮 ‎) 1D6EE MATHEMATICAL ITALIC CAPITAL NU # →𝑁→ -← (‎ 𝜨 ‎) 1D728 MATHEMATICAL BOLD ITALIC CAPITAL NU # →𝑵→ -← (‎ 𝝢 ‎) 1D762 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU # →Ν→ -← (‎ 𝞜 ‎) 1D79C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU # →Ν→ - -# NJ NJ - (‎ NJ ‎) 004E 004A LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J -← (‎ NJ ‎) 01CA LATIN CAPITAL LETTER NJ - -# Nj Nj - (‎ Nj ‎) 004E 006A LATIN CAPITAL LETTER N, LATIN SMALL LETTER J -← (‎ Nj ‎) 01CB LATIN CAPITAL LETTER N WITH SMALL LETTER J - -# No № - (‎ No ‎) 004E 006F LATIN CAPITAL LETTER N, LATIN SMALL LETTER O -← (‎ № ‎) 2116 NUMERO SIGN - -# N̊ Ν̊ Νͦ 𐆎 - (‎ N̊ ‎) 004E 030A LATIN CAPITAL LETTER N, COMBINING RING ABOVE -← (‎ Ν̊ ‎) 039D 030A GREEK CAPITAL LETTER NU, COMBINING RING ABOVE # →Νͦ→ -← (‎ Νͦ ‎) 039D 0366 GREEK CAPITAL LETTER NU, COMBINING LATIN SMALL LETTER O -← (‎ 𐆎 ‎) 1018E NOMISMA SIGN # →Νͦ→ - -# N̦ N̡ Ɲ - (‎ N̡ ‎) 004E 0321 LATIN CAPITAL LETTER N, COMBINING PALATALIZED HOOK BELOW -← (‎ N̦ ‎) 004E 0326 LATIN CAPITAL LETTER N, COMBINING COMMA BELOW -← (‎ Ɲ ‎) 019D LATIN CAPITAL LETTER N WITH LEFT HOOK - -# O' Oʼ Ꭴ Ơ - (‎ O' ‎) 004F 0027 LATIN CAPITAL LETTER O, APOSTROPHE -← (‎ Oʼ ‎) 004F 02BC LATIN CAPITAL LETTER O, MODIFIER LETTER APOSTROPHE -← (‎ Ꭴ ‎) 13A4 CHEROKEE LETTER U # →Ơ→→Oʼ→ -← (‎ Ơ ‎) 01A0 LATIN CAPITAL LETTER O WITH HORN # →Oʼ→ - -# OE Œ - (‎ OE ‎) 004F 0045 LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER E -← (‎ Œ ‎) 0152 LATIN CAPITAL LIGATURE OE - -# OO Ꝏ Ꚙ - (‎ OO ‎) 004F 004F LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER O -← (‎ Ꝏ ‎) A74E LATIN CAPITAL LETTER OO -← (‎ Ꚙ ‎) A698 CYRILLIC CAPITAL LETTER DOUBLE O - -# O̸ Ø ⵁ - (‎ O̸ ‎) 004F 0338 LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY -← (‎ Ø ‎) 00D8 LATIN CAPITAL LETTER O WITH STROKE -← (‎ ⵁ ‎) 2D41 TIFINAGH LETTER BERBER ACADEMY YAH # →Ø→ - -# Ó̸ Ǿ - (‎ Ó̸ ‎) 004F 0338 0301 LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY, COMBINING ACUTE ACCENT -← (‎ Ǿ ‎) 01FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE - -# P Ρ Р Ꮲ ᑭ Ⲣ ꓑ 𐊕 P ℙ 𝐏 𝑃 𝑷 𝒫 𝓟 𝔓 𝕻 𝖯 𝗣 𝘗 𝙋 𝙿 𝚸 𝛲 𝜬 𝝦 𝞠 - (‎ P ‎) 0050 LATIN CAPITAL LETTER P -← (‎ Ρ ‎) 03A1 GREEK CAPITAL LETTER RHO -← (‎ Р ‎) 0420 CYRILLIC CAPITAL LETTER ER -← (‎ Ꮲ ‎) 13E2 CHEROKEE LETTER TLV -← (‎ ᑭ ‎) 146D CANADIAN SYLLABICS KI -← (‎ Ⲣ ‎) 2CA2 COPTIC CAPITAL LETTER RO -← (‎ ꓑ ‎) A4D1 LISU LETTER PA -← (‎ 𐊕 ‎) 10295 LYCIAN LETTER R -← (‎ P ‎) FF30 FULLWIDTH LATIN CAPITAL LETTER P # →Р→ -← (‎ ℙ ‎) 2119 DOUBLE-STRUCK CAPITAL P -← (‎ 𝐏 ‎) 1D40F MATHEMATICAL BOLD CAPITAL P -← (‎ 𝑃 ‎) 1D443 MATHEMATICAL ITALIC CAPITAL P -← (‎ 𝑷 ‎) 1D477 MATHEMATICAL BOLD ITALIC CAPITAL P -← (‎ 𝒫 ‎) 1D4AB MATHEMATICAL SCRIPT CAPITAL P -← (‎ 𝓟 ‎) 1D4DF MATHEMATICAL BOLD SCRIPT CAPITAL P -← (‎ 𝔓 ‎) 1D513 MATHEMATICAL FRAKTUR CAPITAL P -← (‎ 𝕻 ‎) 1D57B MATHEMATICAL BOLD FRAKTUR CAPITAL P -← (‎ 𝖯 ‎) 1D5AF MATHEMATICAL SANS-SERIF CAPITAL P -← (‎ 𝗣 ‎) 1D5E3 MATHEMATICAL SANS-SERIF BOLD CAPITAL P -← (‎ 𝘗 ‎) 1D617 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P -← (‎ 𝙋 ‎) 1D64B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P -← (‎ 𝙿 ‎) 1D67F MATHEMATICAL MONOSPACE CAPITAL P -← (‎ 𝚸 ‎) 1D6B8 MATHEMATICAL BOLD CAPITAL RHO # →𝐏→ -← (‎ 𝛲 ‎) 1D6F2 MATHEMATICAL ITALIC CAPITAL RHO # →Ρ→ -← (‎ 𝜬 ‎) 1D72C MATHEMATICAL BOLD ITALIC CAPITAL RHO # →Ρ→ -← (‎ 𝝦 ‎) 1D766 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO # →Ρ→ -← (‎ 𝞠 ‎) 1D7A0 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO # →Ρ→ - -# P' ᑭᑊ Ꮲ' ᑭ' ᒆ - (‎ P' ‎) 0050 0027 LATIN CAPITAL LETTER P, APOSTROPHE -← (‎ ᑭᑊ ‎) 146D 144A CANADIAN SYLLABICS KI, CANADIAN SYLLABICS WEST-CREE P -← (‎ Ꮲ' ‎) 13E2 0027 CHEROKEE LETTER TLV, APOSTROPHE # →ᑭᑊ→ -← (‎ ᑭ' ‎) 146D 0027 CANADIAN SYLLABICS KI, APOSTROPHE # →ᑭᑊ→ -← (‎ ᒆ ‎) 1486 CANADIAN SYLLABICS SOUTH-SLAVEY KIH # →ᑭᑊ→ - -# p· P· pᐧ Ꮲ· ᑭ· ᑭᐧ ᑷ - (‎ P· ‎) 0050 00B7 LATIN CAPITAL LETTER P, MIDDLE DOT -← (‎ p· ‎) 0070 00B7 LATIN SMALL LETTER P, MIDDLE DOT # →pᐧ→→ᑷ→→ᑭᐧ→ -← (‎ pᐧ ‎) 0070 1427 LATIN SMALL LETTER P, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᑷ→→ᑭᐧ→ -← (‎ Ꮲ· ‎) 13E2 00B7 CHEROKEE LETTER TLV, MIDDLE DOT # →ᑭᐧ→ -← (‎ ᑭ· ‎) 146D 00B7 CANADIAN SYLLABICS KI, MIDDLE DOT # →ᑭᐧ→ -← (‎ ᑭᐧ ‎) 146D 1427 CANADIAN SYLLABICS KI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑷ ‎) 1477 CANADIAN SYLLABICS WEST-CREE KWI # →ᑭᐧ→ - -# Q ⵕ ℚ 𝐐 𝑄 𝑸 𝒬 𝓠 𝔔 𝕼 𝖰 𝗤 𝘘 𝙌 𝚀 - (‎ Q ‎) 0051 LATIN CAPITAL LETTER Q -← (‎ ⵕ ‎) 2D55 TIFINAGH LETTER YARR -← (‎ ℚ ‎) 211A DOUBLE-STRUCK CAPITAL Q -← (‎ 𝐐 ‎) 1D410 MATHEMATICAL BOLD CAPITAL Q -← (‎ 𝑄 ‎) 1D444 MATHEMATICAL ITALIC CAPITAL Q -← (‎ 𝑸 ‎) 1D478 MATHEMATICAL BOLD ITALIC CAPITAL Q -← (‎ 𝒬 ‎) 1D4AC MATHEMATICAL SCRIPT CAPITAL Q -← (‎ 𝓠 ‎) 1D4E0 MATHEMATICAL BOLD SCRIPT CAPITAL Q -← (‎ 𝔔 ‎) 1D514 MATHEMATICAL FRAKTUR CAPITAL Q -← (‎ 𝕼 ‎) 1D57C MATHEMATICAL BOLD FRAKTUR CAPITAL Q -← (‎ 𝖰 ‎) 1D5B0 MATHEMATICAL SANS-SERIF CAPITAL Q -← (‎ 𝗤 ‎) 1D5E4 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q -← (‎ 𝘘 ‎) 1D618 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q -← (‎ 𝙌 ‎) 1D64C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q -← (‎ 𝚀 ‎) 1D680 MATHEMATICAL MONOSPACE CAPITAL Q - -# QE 🜀 - (‎ QE ‎) 0051 0045 LATIN CAPITAL LETTER Q, LATIN CAPITAL LETTER E -← (‎ 🜀 ‎) 1F700 ALCHEMICAL SYMBOL FOR QUINTESSENCE - -# R Ʀ Ꭱ Ꮢ ᖇ ꓣ 𖼵 𝈖 𐒴 ℛ ℜ ℝ 𝐑 𝑅 𝑹 𝓡 𝕽 𝖱 𝗥 𝘙 𝙍 𝚁 - (‎ R ‎) 0052 LATIN CAPITAL LETTER R -← (‎ Ʀ ‎) 01A6 LATIN LETTER YR -← (‎ Ꭱ ‎) 13A1 CHEROKEE LETTER E -← (‎ Ꮢ ‎) 13D2 CHEROKEE LETTER SV -← (‎ ᖇ ‎) 1587 CANADIAN SYLLABICS TLHI -← (‎ ꓣ ‎) A4E3 LISU LETTER ZHA -← (‎ 𖼵 ‎) 16F35 MIAO LETTER ZHA -← (‎ 𝈖 ‎) 1D216 GREEK VOCAL NOTATION SYMBOL-23 -← (‎ 𐒴 ‎) 104B4 OSAGE CAPITAL LETTER BRA # →Ʀ→ -← (‎ ℛ ‎) 211B SCRIPT CAPITAL R -← (‎ ℜ ‎) 211C BLACK-LETTER CAPITAL R -← (‎ ℝ ‎) 211D DOUBLE-STRUCK CAPITAL R -← (‎ 𝐑 ‎) 1D411 MATHEMATICAL BOLD CAPITAL R -← (‎ 𝑅 ‎) 1D445 MATHEMATICAL ITALIC CAPITAL R -← (‎ 𝑹 ‎) 1D479 MATHEMATICAL BOLD ITALIC CAPITAL R -← (‎ 𝓡 ‎) 1D4E1 MATHEMATICAL BOLD SCRIPT CAPITAL R -← (‎ 𝕽 ‎) 1D57D MATHEMATICAL BOLD FRAKTUR CAPITAL R -← (‎ 𝖱 ‎) 1D5B1 MATHEMATICAL SANS-SERIF CAPITAL R -← (‎ 𝗥 ‎) 1D5E5 MATHEMATICAL SANS-SERIF BOLD CAPITAL R -← (‎ 𝘙 ‎) 1D619 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R -← (‎ 𝙍 ‎) 1D64D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R -← (‎ 𝚁 ‎) 1D681 MATHEMATICAL MONOSPACE CAPITAL R - -# Rs ₨ - (‎ Rs ‎) 0052 0073 LATIN CAPITAL LETTER R, LATIN SMALL LETTER S -← (‎ ₨ ‎) 20A8 RUPEE SIGN - -# S Ѕ Տ Ꮥ Ꮪ ꓢ 𐊖 𐐠 𖼺 S 𝐒 𝑆 𝑺 𝒮 𝓢 𝔖 𝕊 𝕾 𝖲 𝗦 𝘚 𝙎 𝚂 - (‎ S ‎) 0053 LATIN CAPITAL LETTER S -← (‎ Ѕ ‎) 0405 CYRILLIC CAPITAL LETTER DZE -← (‎ Տ ‎) 054F ARMENIAN CAPITAL LETTER TIWN -← (‎ Ꮥ ‎) 13D5 CHEROKEE LETTER DE -← (‎ Ꮪ ‎) 13DA CHEROKEE LETTER DU -← (‎ ꓢ ‎) A4E2 LISU LETTER SA -← (‎ 𐊖 ‎) 10296 LYCIAN LETTER S -← (‎ 𐐠 ‎) 10420 DESERET CAPITAL LETTER ZHEE -← (‎ 𖼺 ‎) 16F3A MIAO LETTER SA -← (‎ S ‎) FF33 FULLWIDTH LATIN CAPITAL LETTER S # →Ѕ→ -← (‎ 𝐒 ‎) 1D412 MATHEMATICAL BOLD CAPITAL S -← (‎ 𝑆 ‎) 1D446 MATHEMATICAL ITALIC CAPITAL S -← (‎ 𝑺 ‎) 1D47A MATHEMATICAL BOLD ITALIC CAPITAL S -← (‎ 𝒮 ‎) 1D4AE MATHEMATICAL SCRIPT CAPITAL S -← (‎ 𝓢 ‎) 1D4E2 MATHEMATICAL BOLD SCRIPT CAPITAL S -← (‎ 𝔖 ‎) 1D516 MATHEMATICAL FRAKTUR CAPITAL S -← (‎ 𝕊 ‎) 1D54A MATHEMATICAL DOUBLE-STRUCK CAPITAL S -← (‎ 𝕾 ‎) 1D57E MATHEMATICAL BOLD FRAKTUR CAPITAL S -← (‎ 𝖲 ‎) 1D5B2 MATHEMATICAL SANS-SERIF CAPITAL S -← (‎ 𝗦 ‎) 1D5E6 MATHEMATICAL SANS-SERIF BOLD CAPITAL S -← (‎ 𝘚 ‎) 1D61A MATHEMATICAL SANS-SERIF ITALIC CAPITAL S -← (‎ 𝙎 ‎) 1D64E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S -← (‎ 𝚂 ‎) 1D682 MATHEMATICAL MONOSPACE CAPITAL S - -# T Τ Т Ꭲ Ⲧ ꓔ 𐊗 𐊱 𐌕 𖼊 ⊤ ⟙ 🝨 𑢼 T 𝐓 𝑇 𝑻 𝒯 𝓣 𝔗 𝕋 𝕿 𝖳 𝗧 𝘛 𝙏 𝚃 𝚻 𝛵 𝜯 𝝩 𝞣 - (‎ T ‎) 0054 LATIN CAPITAL LETTER T -← (‎ Τ ‎) 03A4 GREEK CAPITAL LETTER TAU -← (‎ Т ‎) 0422 CYRILLIC CAPITAL LETTER TE -← (‎ Ꭲ ‎) 13A2 CHEROKEE LETTER I -← (‎ Ⲧ ‎) 2CA6 COPTIC CAPITAL LETTER TAU -← (‎ ꓔ ‎) A4D4 LISU LETTER TA -← (‎ 𐊗 ‎) 10297 LYCIAN LETTER T -← (‎ 𐊱 ‎) 102B1 CARIAN LETTER C-18 -← (‎ 𐌕 ‎) 10315 OLD ITALIC LETTER TE -← (‎ 𖼊 ‎) 16F0A MIAO LETTER TA -← (‎ ⊤ ‎) 22A4 DOWN TACK -← (‎ ⟙ ‎) 27D9 LARGE DOWN TACK -← (‎ 🝨 ‎) 1F768 ALCHEMICAL SYMBOL FOR CRUCIBLE-4 -← (‎ 𑢼 ‎) 118BC WARANG CITI CAPITAL LETTER HAR -← (‎ T ‎) FF34 FULLWIDTH LATIN CAPITAL LETTER T # →Т→ -← (‎ 𝐓 ‎) 1D413 MATHEMATICAL BOLD CAPITAL T -← (‎ 𝑇 ‎) 1D447 MATHEMATICAL ITALIC CAPITAL T -← (‎ 𝑻 ‎) 1D47B MATHEMATICAL BOLD ITALIC CAPITAL T -← (‎ 𝒯 ‎) 1D4AF MATHEMATICAL SCRIPT CAPITAL T -← (‎ 𝓣 ‎) 1D4E3 MATHEMATICAL BOLD SCRIPT CAPITAL T -← (‎ 𝔗 ‎) 1D517 MATHEMATICAL FRAKTUR CAPITAL T -← (‎ 𝕋 ‎) 1D54B MATHEMATICAL DOUBLE-STRUCK CAPITAL T -← (‎ 𝕿 ‎) 1D57F MATHEMATICAL BOLD FRAKTUR CAPITAL T -← (‎ 𝖳 ‎) 1D5B3 MATHEMATICAL SANS-SERIF CAPITAL T -← (‎ 𝗧 ‎) 1D5E7 MATHEMATICAL SANS-SERIF BOLD CAPITAL T -← (‎ 𝘛 ‎) 1D61B MATHEMATICAL SANS-SERIF ITALIC CAPITAL T -← (‎ 𝙏 ‎) 1D64F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T -← (‎ 𝚃 ‎) 1D683 MATHEMATICAL MONOSPACE CAPITAL T -← (‎ 𝚻 ‎) 1D6BB MATHEMATICAL BOLD CAPITAL TAU # →Τ→ -← (‎ 𝛵 ‎) 1D6F5 MATHEMATICAL ITALIC CAPITAL TAU # →Τ→ -← (‎ 𝜯 ‎) 1D72F MATHEMATICAL BOLD ITALIC CAPITAL TAU # →Τ→ -← (‎ 𝝩 ‎) 1D769 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU # →Τ→ -← (‎ 𝞣 ‎) 1D7A3 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU # →Τ→ - -# T3 TƷ Ꜩ - (‎ T3 ‎) 0054 0033 LATIN CAPITAL LETTER T, DIGIT THREE -← (‎ TƷ ‎) 0054 01B7 LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER EZH -← (‎ Ꜩ ‎) A728 LATIN CAPITAL LETTER TZ # →TƷ→ - -# TEL ℡ - (‎ TEL ‎) 0054 0045 004C LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER E, LATIN CAPITAL LETTER L -← (‎ ℡ ‎) 2121 TELEPHONE SIGN - -# T̈ Ꭲ̈ ꓔ̈ ⊤̈ ⍡ - (‎ T̈ ‎) 0054 0308 LATIN CAPITAL LETTER T, COMBINING DIAERESIS -← (‎ Ꭲ̈ ‎) 13A2 0308 CHEROKEE LETTER I, COMBINING DIAERESIS # →⊤̈→ -← (‎ ꓔ̈ ‎) A4D4 0308 LISU LETTER TA, COMBINING DIAERESIS # →⊤̈→ -← (‎ ⊤̈ ‎) 22A4 0308 DOWN TACK, COMBINING DIAERESIS -← (‎ ⍡ ‎) 2361 APL FUNCTIONAL SYMBOL UP TACK DIAERESIS # →⊤̈→ - -# T̨ Ʈ - (‎ T̨ ‎) 0054 0328 LATIN CAPITAL LETTER T, COMBINING OGONEK -← (‎ Ʈ ‎) 01AE LATIN CAPITAL LETTER T WITH RETROFLEX HOOK - -# T̩ Т̩ Ҭ - (‎ T̩ ‎) 0054 0329 LATIN CAPITAL LETTER T, COMBINING VERTICAL LINE BELOW -← (‎ Т̩ ‎) 0422 0329 CYRILLIC CAPITAL LETTER TE, COMBINING VERTICAL LINE BELOW -← (‎ Ҭ ‎) 04AC CYRILLIC CAPITAL LETTER TE WITH DESCENDER # →Т̩→ - -# T̵ Ŧ - (‎ T̵ ‎) 0054 0335 LATIN CAPITAL LETTER T, COMBINING SHORT STROKE OVERLAY -← (‎ Ŧ ‎) 0166 LATIN CAPITAL LETTER T WITH STROKE - -# T̸ Ⱦ - (‎ T̸ ‎) 0054 0338 LATIN CAPITAL LETTER T, COMBINING LONG SOLIDUS OVERLAY -← (‎ Ⱦ ‎) 023E LATIN CAPITAL LETTER T WITH DIAGONAL STROKE - -# T⃫ Т⃫ ₮ - (‎ T⃫ ‎) 0054 20EB LATIN CAPITAL LETTER T, COMBINING LONG DOUBLE SOLIDUS OVERLAY -← (‎ Т⃫ ‎) 0422 20EB CYRILLIC CAPITAL LETTER TE, COMBINING LONG DOUBLE SOLIDUS OVERLAY -← (‎ ₮ ‎) 20AE TUGRIK SIGN # →Т⃫→ - -# U ሀ Ս ᑌ ꓴ 𖽂 ∪ ⋃ 𑢸 𐓎 𝐔 𝑈 𝑼 𝒰 𝓤 𝔘 𝕌 𝖀 𝖴 𝗨 𝘜 𝙐 𝚄 - (‎ U ‎) 0055 LATIN CAPITAL LETTER U -← (‎ ሀ ‎) 1200 ETHIOPIC SYLLABLE HA # →Ս→ -← (‎ Ս ‎) 054D ARMENIAN CAPITAL LETTER SEH -← (‎ ᑌ ‎) 144C CANADIAN SYLLABICS TE -← (‎ ꓴ ‎) A4F4 LISU LETTER U -← (‎ 𖽂 ‎) 16F42 MIAO LETTER WA -← (‎ ∪ ‎) 222A UNION # →ᑌ→ -← (‎ ⋃ ‎) 22C3 N-ARY UNION # →∪→→ᑌ→ -← (‎ 𑢸 ‎) 118B8 WARANG CITI CAPITAL LETTER PU -← (‎ 𐓎 ‎) 104CE OSAGE CAPITAL LETTER U -← (‎ 𝐔 ‎) 1D414 MATHEMATICAL BOLD CAPITAL U -← (‎ 𝑈 ‎) 1D448 MATHEMATICAL ITALIC CAPITAL U -← (‎ 𝑼 ‎) 1D47C MATHEMATICAL BOLD ITALIC CAPITAL U -← (‎ 𝒰 ‎) 1D4B0 MATHEMATICAL SCRIPT CAPITAL U -← (‎ 𝓤 ‎) 1D4E4 MATHEMATICAL BOLD SCRIPT CAPITAL U -← (‎ 𝔘 ‎) 1D518 MATHEMATICAL FRAKTUR CAPITAL U -← (‎ 𝕌 ‎) 1D54C MATHEMATICAL DOUBLE-STRUCK CAPITAL U -← (‎ 𝖀 ‎) 1D580 MATHEMATICAL BOLD FRAKTUR CAPITAL U -← (‎ 𝖴 ‎) 1D5B4 MATHEMATICAL SANS-SERIF CAPITAL U -← (‎ 𝗨 ‎) 1D5E8 MATHEMATICAL SANS-SERIF BOLD CAPITAL U -← (‎ 𝘜 ‎) 1D61C MATHEMATICAL SANS-SERIF ITALIC CAPITAL U -← (‎ 𝙐 ‎) 1D650 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U -← (‎ 𝚄 ‎) 1D684 MATHEMATICAL MONOSPACE CAPITAL U - -# U' ᑌᑊ ሀ' ᑌ' ᑧ - (‎ U' ‎) 0055 0027 LATIN CAPITAL LETTER U, APOSTROPHE -← (‎ ᑌᑊ ‎) 144C 144A CANADIAN SYLLABICS TE, CANADIAN SYLLABICS WEST-CREE P # →ᑌ'→ -← (‎ ሀ' ‎) 1200 0027 ETHIOPIC SYLLABLE HA, APOSTROPHE # →ᑌ'→ -← (‎ ᑌ' ‎) 144C 0027 CANADIAN SYLLABICS TE, APOSTROPHE -← (‎ ᑧ ‎) 1467 CANADIAN SYLLABICS TTE # →ᑌᑊ→→ᑌ'→ - -# U+= U+〓 - (‎ U+= ‎) 0055 002B 003D LATIN CAPITAL LETTER U, PLUS SIGN, EQUALS SIGN -← (‎ U+〓 ‎) 0055 002B 3013 LATIN CAPITAL LETTER U, PLUS SIGN, GETA MARK - -# U· ሀ· ᑌ· ᑌᐧ ᑘ - (‎ U· ‎) 0055 00B7 LATIN CAPITAL LETTER U, MIDDLE DOT -← (‎ ሀ· ‎) 1200 00B7 ETHIOPIC SYLLABLE HA, MIDDLE DOT # →ᑌ·→ -← (‎ ᑌ· ‎) 144C 00B7 CANADIAN SYLLABICS TE, MIDDLE DOT -← (‎ ᑌᐧ ‎) 144C 1427 CANADIAN SYLLABICS TE, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᑌ·→ -← (‎ ᑘ ‎) 1458 CANADIAN SYLLABICS WEST-CREE TWE # →ᑌᐧ→→ᑌ·→ - -# U̵ U̶ Ʉ Ꮜ - (‎ U̵ ‎) 0055 0335 LATIN CAPITAL LETTER U, COMBINING SHORT STROKE OVERLAY -← (‎ U̶ ‎) 0055 0336 LATIN CAPITAL LETTER U, COMBINING LONG STROKE OVERLAY -← (‎ Ʉ ‎) 0244 LATIN CAPITAL LETTER U BAR # →U̶→ -← (‎ Ꮜ ‎) 13CC CHEROKEE LETTER SA # →Ʉ→→U̶→ - -# V ٧ ۷ Ѵ Ꮩ ᐯ ⴸ ꓦ ꛟ 𖼈 𝈍 𐔝 𑢠 Ⅴ 𝐕 𝑉 𝑽 𝒱 𝓥 𝔙 𝕍 𝖁 𝖵 𝗩 𝘝 𝙑 𝚅 - (‎ V ‎) 0056 LATIN CAPITAL LETTER V -← (‎ ٧ ‎) 0667 ARABIC-INDIC DIGIT SEVEN -← (‎ ۷ ‎) 06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN # →‎٧‎→ -← (‎ Ѵ ‎) 0474 CYRILLIC CAPITAL LETTER IZHITSA -← (‎ Ꮩ ‎) 13D9 CHEROKEE LETTER DO -← (‎ ᐯ ‎) 142F CANADIAN SYLLABICS PE -← (‎ ⴸ ‎) 2D38 TIFINAGH LETTER YADH -← (‎ ꓦ ‎) A4E6 LISU LETTER HA -← (‎ ꛟ ‎) A6DF BAMUM LETTER KO -← (‎ 𖼈 ‎) 16F08 MIAO LETTER VA -← (‎ 𝈍 ‎) 1D20D GREEK VOCAL NOTATION SYMBOL-14 -← (‎ 𐔝 ‎) 1051D ELBASAN LETTER TE -← (‎ 𑢠 ‎) 118A0 WARANG CITI CAPITAL LETTER NGAA -← (‎ Ⅴ ‎) 2164 ROMAN NUMERAL FIVE -← (‎ 𝐕 ‎) 1D415 MATHEMATICAL BOLD CAPITAL V -← (‎ 𝑉 ‎) 1D449 MATHEMATICAL ITALIC CAPITAL V -← (‎ 𝑽 ‎) 1D47D MATHEMATICAL BOLD ITALIC CAPITAL V -← (‎ 𝒱 ‎) 1D4B1 MATHEMATICAL SCRIPT CAPITAL V -← (‎ 𝓥 ‎) 1D4E5 MATHEMATICAL BOLD SCRIPT CAPITAL V -← (‎ 𝔙 ‎) 1D519 MATHEMATICAL FRAKTUR CAPITAL V -← (‎ 𝕍 ‎) 1D54D MATHEMATICAL DOUBLE-STRUCK CAPITAL V -← (‎ 𝖁 ‎) 1D581 MATHEMATICAL BOLD FRAKTUR CAPITAL V -← (‎ 𝖵 ‎) 1D5B5 MATHEMATICAL SANS-SERIF CAPITAL V -← (‎ 𝗩 ‎) 1D5E9 MATHEMATICAL SANS-SERIF BOLD CAPITAL V -← (‎ 𝘝 ‎) 1D61D MATHEMATICAL SANS-SERIF ITALIC CAPITAL V -← (‎ 𝙑 ‎) 1D651 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V -← (‎ 𝚅 ‎) 1D685 MATHEMATICAL MONOSPACE CAPITAL V - -# VB 🝬 - (‎ VB ‎) 0056 0042 LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER B -← (‎ 🝬 ‎) 1F76C ALCHEMICAL SYMBOL FOR BATH OF VAPOURS - -# Vl VI Ⅵ - (‎ VI ‎) 0056 0049 LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER I -← (‎ Vl ‎) 0056 006C LATIN CAPITAL LETTER V, LATIN SMALL LETTER L -← (‎ Ⅵ ‎) 2165 ROMAN NUMERAL SIX - -# Vll VII Ⅶ - (‎ VII ‎) 0056 0049 0049 LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I -← (‎ Vll ‎) 0056 006C 006C LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L -← (‎ Ⅶ ‎) 2166 ROMAN NUMERAL SEVEN - -# Vlll VIII Ⅷ - (‎ VIII ‎) 0056 0049 0049 0049 LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I -← (‎ Vlll ‎) 0056 006C 006C 006C LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER L -← (‎ Ⅷ ‎) 2167 ROMAN NUMERAL EIGHT - -# V· ٧· ᐯ· ᐯᐧ ᐻ - (‎ V· ‎) 0056 00B7 LATIN CAPITAL LETTER V, MIDDLE DOT -← (‎ ٧· ‎) 0667 00B7 ARABIC-INDIC DIGIT SEVEN, MIDDLE DOT # →ᐯᐧ→ -← (‎ ᐯ· ‎) 142F 00B7 CANADIAN SYLLABICS PE, MIDDLE DOT # →ᐯᐧ→ -← (‎ ᐯᐧ ‎) 142F 1427 CANADIAN SYLLABICS PE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐻ ‎) 143B CANADIAN SYLLABICS WEST-CREE PWE # →ᐯᐧ→ - -# V̵ V̶ 𐆗 - (‎ V̵ ‎) 0056 0335 LATIN CAPITAL LETTER V, COMBINING SHORT STROKE OVERLAY -← (‎ V̶ ‎) 0056 0336 LATIN CAPITAL LETTER V, COMBINING LONG STROKE OVERLAY -← (‎ 𐆗 ‎) 10197 ROMAN QUINARIUS SIGN # →V̶→ - -# Vᷤ 🜈 - (‎ Vᷤ ‎) 0056 1DE4 LATIN CAPITAL LETTER V, COMBINING LATIN SMALL LETTER S -← (‎ 🜈 ‎) 1F708 ALCHEMICAL SYMBOL FOR AQUA VITAE - -# W Ԝ Ꮃ Ꮤ ꓪ 𑣦 𑣯 𝐖 𝑊 𝑾 𝒲 𝓦 𝔚 𝕎 𝖂 𝖶 𝗪 𝘞 𝙒 𝚆 - (‎ W ‎) 0057 LATIN CAPITAL LETTER W -← (‎ Ԝ ‎) 051C CYRILLIC CAPITAL LETTER WE -← (‎ Ꮃ ‎) 13B3 CHEROKEE LETTER LA -← (‎ Ꮤ ‎) 13D4 CHEROKEE LETTER TA -← (‎ ꓪ ‎) A4EA LISU LETTER WA -← (‎ 𑣦 ‎) 118E6 WARANG CITI DIGIT SIX -← (‎ 𑣯 ‎) 118EF WARANG CITI NUMBER SIXTY -← (‎ 𝐖 ‎) 1D416 MATHEMATICAL BOLD CAPITAL W -← (‎ 𝑊 ‎) 1D44A MATHEMATICAL ITALIC CAPITAL W -← (‎ 𝑾 ‎) 1D47E MATHEMATICAL BOLD ITALIC CAPITAL W -← (‎ 𝒲 ‎) 1D4B2 MATHEMATICAL SCRIPT CAPITAL W -← (‎ 𝓦 ‎) 1D4E6 MATHEMATICAL BOLD SCRIPT CAPITAL W -← (‎ 𝔚 ‎) 1D51A MATHEMATICAL FRAKTUR CAPITAL W -← (‎ 𝕎 ‎) 1D54E MATHEMATICAL DOUBLE-STRUCK CAPITAL W -← (‎ 𝖂 ‎) 1D582 MATHEMATICAL BOLD FRAKTUR CAPITAL W -← (‎ 𝖶 ‎) 1D5B6 MATHEMATICAL SANS-SERIF CAPITAL W -← (‎ 𝗪 ‎) 1D5EA MATHEMATICAL SANS-SERIF BOLD CAPITAL W -← (‎ 𝘞 ‎) 1D61E MATHEMATICAL SANS-SERIF ITALIC CAPITAL W -← (‎ 𝙒 ‎) 1D652 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W -← (‎ 𝚆 ‎) 1D686 MATHEMATICAL MONOSPACE CAPITAL W - -# W̵ W̶ ₩ - (‎ W̵ ‎) 0057 0335 LATIN CAPITAL LETTER W, COMBINING SHORT STROKE OVERLAY -← (‎ W̶ ‎) 0057 0336 LATIN CAPITAL LETTER W, COMBINING LONG STROKE OVERLAY # →₩→ -← (‎ ₩ ‎) 20A9 WON SIGN - -# X Χ Х ᚷ Ⲭ ⵝ ꓫ 𐊐 𐊴 𐌗 ᙭ ╳ 𐌢 𐔧 𑣬 Ꭓ Ⅹ X 𝐗 𝑋 𝑿 𝒳 𝓧 𝔛 𝕏 𝖃 𝖷 𝗫 𝘟 𝙓 𝚇 𝚾 𝛸 𝜲 𝝬 𝞦 - (‎ X ‎) 0058 LATIN CAPITAL LETTER X -← (‎ Χ ‎) 03A7 GREEK CAPITAL LETTER CHI -← (‎ Х ‎) 0425 CYRILLIC CAPITAL LETTER HA -← (‎ ᚷ ‎) 16B7 RUNIC LETTER GEBO GYFU G -← (‎ Ⲭ ‎) 2CAC COPTIC CAPITAL LETTER KHI # →Х→ -← (‎ ⵝ ‎) 2D5D TIFINAGH LETTER YATH -← (‎ ꓫ ‎) A4EB LISU LETTER SHA -← (‎ 𐊐 ‎) 10290 LYCIAN LETTER MM -← (‎ 𐊴 ‎) 102B4 CARIAN LETTER X -← (‎ 𐌗 ‎) 10317 OLD ITALIC LETTER EKS -← (‎ ᙭ ‎) 166D CANADIAN SYLLABICS CHI SIGN -← (‎ ╳ ‎) 2573 BOX DRAWINGS LIGHT DIAGONAL CROSS -← (‎ 𐌢 ‎) 10322 OLD ITALIC NUMERAL TEN # →𐌗→ -← (‎ 𐔧 ‎) 10527 ELBASAN LETTER KHE -← (‎ 𑣬 ‎) 118EC WARANG CITI NUMBER THIRTY -← (‎ Ꭓ ‎) A7B3 LATIN CAPITAL LETTER CHI -← (‎ Ⅹ ‎) 2169 ROMAN NUMERAL TEN -← (‎ X ‎) FF38 FULLWIDTH LATIN CAPITAL LETTER X # →Х→ -← (‎ 𝐗 ‎) 1D417 MATHEMATICAL BOLD CAPITAL X -← (‎ 𝑋 ‎) 1D44B MATHEMATICAL ITALIC CAPITAL X -← (‎ 𝑿 ‎) 1D47F MATHEMATICAL BOLD ITALIC CAPITAL X -← (‎ 𝒳 ‎) 1D4B3 MATHEMATICAL SCRIPT CAPITAL X -← (‎ 𝓧 ‎) 1D4E7 MATHEMATICAL BOLD SCRIPT CAPITAL X -← (‎ 𝔛 ‎) 1D51B MATHEMATICAL FRAKTUR CAPITAL X -← (‎ 𝕏 ‎) 1D54F MATHEMATICAL DOUBLE-STRUCK CAPITAL X -← (‎ 𝖃 ‎) 1D583 MATHEMATICAL BOLD FRAKTUR CAPITAL X -← (‎ 𝖷 ‎) 1D5B7 MATHEMATICAL SANS-SERIF CAPITAL X -← (‎ 𝗫 ‎) 1D5EB MATHEMATICAL SANS-SERIF BOLD CAPITAL X -← (‎ 𝘟 ‎) 1D61F MATHEMATICAL SANS-SERIF ITALIC CAPITAL X -← (‎ 𝙓 ‎) 1D653 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X -← (‎ 𝚇 ‎) 1D687 MATHEMATICAL MONOSPACE CAPITAL X -← (‎ 𝚾 ‎) 1D6BE MATHEMATICAL BOLD CAPITAL CHI # →Χ→ -← (‎ 𝛸 ‎) 1D6F8 MATHEMATICAL ITALIC CAPITAL CHI # →Χ→ -← (‎ 𝜲 ‎) 1D732 MATHEMATICAL BOLD ITALIC CAPITAL CHI # →𝑿→ -← (‎ 𝝬 ‎) 1D76C MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI # →Χ→ -← (‎ 𝞦 ‎) 1D7A6 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI # →Χ→ - -# Xl XI Ⅺ - (‎ XI ‎) 0058 0049 LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER I -← (‎ Xl ‎) 0058 006C LATIN CAPITAL LETTER X, LATIN SMALL LETTER L -← (‎ Ⅺ ‎) 216A ROMAN NUMERAL ELEVEN - -# Xll XII Ⅻ - (‎ XII ‎) 0058 0049 0049 LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER I, LATIN CAPITAL LETTER I -← (‎ Xll ‎) 0058 006C 006C LATIN CAPITAL LETTER X, LATIN SMALL LETTER L, LATIN SMALL LETTER L -← (‎ Ⅻ ‎) 216B ROMAN NUMERAL TWELVE - -# X̩ Х̩ Ҳ - (‎ X̩ ‎) 0058 0329 LATIN CAPITAL LETTER X, COMBINING VERTICAL LINE BELOW -← (‎ Х̩ ‎) 0425 0329 CYRILLIC CAPITAL LETTER HA, COMBINING VERTICAL LINE BELOW -← (‎ Ҳ ‎) 04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER # →Х̩→ - -# X̵ X̶ 𐆖 - (‎ X̵ ‎) 0058 0335 LATIN CAPITAL LETTER X, COMBINING SHORT STROKE OVERLAY -← (‎ X̶ ‎) 0058 0336 LATIN CAPITAL LETTER X, COMBINING LONG STROKE OVERLAY -← (‎ 𐆖 ‎) 10196 ROMAN DENARIUS SIGN # →X̶→ - -# Y Υ У Ү Ꭹ Ꮍ Ⲩ ꓬ 𐊲 𖽃 𑢤 Y ϒ 𝐘 𝑌 𝒀 𝒴 𝓨 𝔜 𝕐 𝖄 𝖸 𝗬 𝘠 𝙔 𝚈 𝚼 𝛶 𝜰 𝝪 𝞤 - (‎ Y ‎) 0059 LATIN CAPITAL LETTER Y -← (‎ Υ ‎) 03A5 GREEK CAPITAL LETTER UPSILON -← (‎ У ‎) 0423 CYRILLIC CAPITAL LETTER U -← (‎ Ү ‎) 04AE CYRILLIC CAPITAL LETTER STRAIGHT U -← (‎ Ꭹ ‎) 13A9 CHEROKEE LETTER GI -← (‎ Ꮍ ‎) 13BD CHEROKEE LETTER MU # →Ꭹ→ -← (‎ Ⲩ ‎) 2CA8 COPTIC CAPITAL LETTER UA -← (‎ ꓬ ‎) A4EC LISU LETTER YA -← (‎ 𐊲 ‎) 102B2 CARIAN LETTER U -← (‎ 𖽃 ‎) 16F43 MIAO LETTER AH -← (‎ 𑢤 ‎) 118A4 WARANG CITI CAPITAL LETTER YA -← (‎ Y ‎) FF39 FULLWIDTH LATIN CAPITAL LETTER Y # →Υ→ -← (‎ ϒ ‎) 03D2 GREEK UPSILON WITH HOOK SYMBOL -← (‎ 𝐘 ‎) 1D418 MATHEMATICAL BOLD CAPITAL Y -← (‎ 𝑌 ‎) 1D44C MATHEMATICAL ITALIC CAPITAL Y -← (‎ 𝒀 ‎) 1D480 MATHEMATICAL BOLD ITALIC CAPITAL Y -← (‎ 𝒴 ‎) 1D4B4 MATHEMATICAL SCRIPT CAPITAL Y -← (‎ 𝓨 ‎) 1D4E8 MATHEMATICAL BOLD SCRIPT CAPITAL Y -← (‎ 𝔜 ‎) 1D51C MATHEMATICAL FRAKTUR CAPITAL Y -← (‎ 𝕐 ‎) 1D550 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y -← (‎ 𝖄 ‎) 1D584 MATHEMATICAL BOLD FRAKTUR CAPITAL Y -← (‎ 𝖸 ‎) 1D5B8 MATHEMATICAL SANS-SERIF CAPITAL Y -← (‎ 𝗬 ‎) 1D5EC MATHEMATICAL SANS-SERIF BOLD CAPITAL Y -← (‎ 𝘠 ‎) 1D620 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y -← (‎ 𝙔 ‎) 1D654 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y -← (‎ 𝚈 ‎) 1D688 MATHEMATICAL MONOSPACE CAPITAL Y -← (‎ 𝚼 ‎) 1D6BC MATHEMATICAL BOLD CAPITAL UPSILON # →Υ→ -← (‎ 𝛶 ‎) 1D6F6 MATHEMATICAL ITALIC CAPITAL UPSILON # →Υ→ -← (‎ 𝜰 ‎) 1D730 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON # →Υ→ -← (‎ 𝝪 ‎) 1D76A MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON # →Υ→ -← (‎ 𝞤 ‎) 1D7A4 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON # →Υ→ - -# Y̵ У̵ Ү̵ Ɏ Ұ ¥ - (‎ Y̵ ‎) 0059 0335 LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY -← (‎ У̵ ‎) 0423 0335 CYRILLIC CAPITAL LETTER U, COMBINING SHORT STROKE OVERLAY # →Ү̵→ -← (‎ Ү̵ ‎) 04AE 0335 CYRILLIC CAPITAL LETTER STRAIGHT U, COMBINING SHORT STROKE OVERLAY -← (‎ Ɏ ‎) 024E LATIN CAPITAL LETTER Y WITH STROKE -← (‎ Ұ ‎) 04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE # →Ү̵→ -← (‎ ¥ ‎) 00A5 YEN SIGN - -# Z Ζ Ꮓ ꓜ 𑢩 𑣥 𐋵 Z ℤ ℨ 𝐙 𝑍 𝒁 𝒵 𝓩 𝖅 𝖹 𝗭 𝘡 𝙕 𝚉 𝚭 𝛧 𝜡 𝝛 𝞕 - (‎ Z ‎) 005A LATIN CAPITAL LETTER Z -← (‎ Ζ ‎) 0396 GREEK CAPITAL LETTER ZETA -← (‎ Ꮓ ‎) 13C3 CHEROKEE LETTER NO -← (‎ ꓜ ‎) A4DC LISU LETTER DZA -← (‎ 𑢩 ‎) 118A9 WARANG CITI CAPITAL LETTER O -← (‎ 𑣥 ‎) 118E5 WARANG CITI DIGIT FIVE -← (‎ 𐋵 ‎) 102F5 COPTIC EPACT NUMBER THREE HUNDRED -← (‎ Z ‎) FF3A FULLWIDTH LATIN CAPITAL LETTER Z # →Ζ→ -← (‎ ℤ ‎) 2124 DOUBLE-STRUCK CAPITAL Z -← (‎ ℨ ‎) 2128 BLACK-LETTER CAPITAL Z -← (‎ 𝐙 ‎) 1D419 MATHEMATICAL BOLD CAPITAL Z -← (‎ 𝑍 ‎) 1D44D MATHEMATICAL ITALIC CAPITAL Z -← (‎ 𝒁 ‎) 1D481 MATHEMATICAL BOLD ITALIC CAPITAL Z -← (‎ 𝒵 ‎) 1D4B5 MATHEMATICAL SCRIPT CAPITAL Z -← (‎ 𝓩 ‎) 1D4E9 MATHEMATICAL BOLD SCRIPT CAPITAL Z -← (‎ 𝖅 ‎) 1D585 MATHEMATICAL BOLD FRAKTUR CAPITAL Z -← (‎ 𝖹 ‎) 1D5B9 MATHEMATICAL SANS-SERIF CAPITAL Z -← (‎ 𝗭 ‎) 1D5ED MATHEMATICAL SANS-SERIF BOLD CAPITAL Z -← (‎ 𝘡 ‎) 1D621 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z -← (‎ 𝙕 ‎) 1D655 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z -← (‎ 𝚉 ‎) 1D689 MATHEMATICAL MONOSPACE CAPITAL Z -← (‎ 𝚭 ‎) 1D6AD MATHEMATICAL BOLD CAPITAL ZETA # →Ζ→ -← (‎ 𝛧 ‎) 1D6E7 MATHEMATICAL ITALIC CAPITAL ZETA # →𝑍→ -← (‎ 𝜡 ‎) 1D721 MATHEMATICAL BOLD ITALIC CAPITAL ZETA # →Ζ→ -← (‎ 𝝛 ‎) 1D75B MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA # →Ζ→ -← (‎ 𝞕 ‎) 1D795 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA # →Ζ→ - -# Z̦ Z̧ Ȥ - (‎ Z̦ ‎) 005A 0326 LATIN CAPITAL LETTER Z, COMBINING COMMA BELOW -← (‎ Z̧ ‎) 005A 0327 LATIN CAPITAL LETTER Z, COMBINING CEDILLA -← (‎ Ȥ ‎) 0224 LATIN CAPITAL LETTER Z WITH HOOK # →Z̧→ - -# Z̵ Ƶ - (‎ Z̵ ‎) 005A 0335 LATIN CAPITAL LETTER Z, COMBINING SHORT STROKE OVERLAY -← (‎ Ƶ ‎) 01B5 LATIN CAPITAL LETTER Z WITH STROKE - -# \ 丶 ∖ ⟍ ⧵ ⧹ ㇔ 𝈏 𝈻 ⼂ ﹨ \ - (‎ \ ‎) 005C REVERSE SOLIDUS -← (‎ 丶 ‎) 4E36 CJK UNIFIED IDEOGRAPH-4E36 # →⼂→ -← (‎ ∖ ‎) 2216 SET MINUS -← (‎ ⟍ ‎) 27CD MATHEMATICAL FALLING DIAGONAL -← (‎ ⧵ ‎) 29F5 REVERSE SOLIDUS OPERATOR -← (‎ ⧹ ‎) 29F9 BIG REVERSE SOLIDUS -← (‎ ㇔ ‎) 31D4 CJK STROKE D # →⼂→ -← (‎ 𝈏 ‎) 1D20F GREEK VOCAL NOTATION SYMBOL-16 -← (‎ 𝈻 ‎) 1D23B GREEK INSTRUMENTAL NOTATION SYMBOL-48 # →𝈏→ -← (‎ ⼂ ‎) 2F02 KANGXI RADICAL DOT -← (‎ ﹨ ‎) FE68 SMALL REVERSE SOLIDUS # →∖→ -← (‎ \ ‎) FF3C FULLWIDTH REVERSE SOLIDUS # →∖→ - -# \\ ⑊ ⳹ - (‎ \\ ‎) 005C 005C REVERSE SOLIDUS, REVERSE SOLIDUS -← (‎ ⑊ ‎) 244A OCR DOUBLE BACKSLASH -← (‎ ⳹ ‎) 2CF9 COPTIC OLD NUBIAN FULL STOP - -# \ᑕ \⊂ ⟈ - (‎ \ᑕ ‎) 005C 1455 REVERSE SOLIDUS, CANADIAN SYLLABICS TA -← (‎ \⊂ ‎) 005C 2282 REVERSE SOLIDUS, SUBSET OF -← (‎ ⟈ ‎) 27C8 REVERSE SOLIDUS PRECEDING SUBSET # →\⊂→ - -# ^ ˆ ˄ - (‎ ^ ‎) 005E CIRCUMFLEX ACCENT -← (‎ ˆ ‎) 02C6 MODIFIER LETTER CIRCUMFLEX ACCENT -← (‎ ˄ ‎) 02C4 MODIFIER LETTER UP ARROWHEAD - -# _ ߺ ﹍ ﹎ ﹏ - (‎ _ ‎) 005F LOW LINE -← (‎ ߺ ‎) 07FA NKO LAJANYALAN -← (‎ ﹍ ‎) FE4D DASHED LOW LINE -← (‎ ﹎ ‎) FE4E CENTRELINE LOW LINE -← (‎ ﹏ ‎) FE4F WAVY LOW LINE - -# a ɑ α а ⍺ a 𝐚 𝑎 𝒂 𝒶 𝓪 𝔞 𝕒 𝖆 𝖺 𝗮 𝘢 𝙖 𝚊 𝛂 𝛼 𝜶 𝝰 𝞪 - (‎ a ‎) 0061 LATIN SMALL LETTER A -← (‎ ɑ ‎) 0251 LATIN SMALL LETTER ALPHA -← (‎ α ‎) 03B1 GREEK SMALL LETTER ALPHA -← (‎ а ‎) 0430 CYRILLIC SMALL LETTER A -← (‎ ⍺ ‎) 237A APL FUNCTIONAL SYMBOL ALPHA # →α→ -← (‎ a ‎) FF41 FULLWIDTH LATIN SMALL LETTER A # →а→ -← (‎ 𝐚 ‎) 1D41A MATHEMATICAL BOLD SMALL A -← (‎ 𝑎 ‎) 1D44E MATHEMATICAL ITALIC SMALL A -← (‎ 𝒂 ‎) 1D482 MATHEMATICAL BOLD ITALIC SMALL A -← (‎ 𝒶 ‎) 1D4B6 MATHEMATICAL SCRIPT SMALL A -← (‎ 𝓪 ‎) 1D4EA MATHEMATICAL BOLD SCRIPT SMALL A -← (‎ 𝔞 ‎) 1D51E MATHEMATICAL FRAKTUR SMALL A -← (‎ 𝕒 ‎) 1D552 MATHEMATICAL DOUBLE-STRUCK SMALL A -← (‎ 𝖆 ‎) 1D586 MATHEMATICAL BOLD FRAKTUR SMALL A -← (‎ 𝖺 ‎) 1D5BA MATHEMATICAL SANS-SERIF SMALL A -← (‎ 𝗮 ‎) 1D5EE MATHEMATICAL SANS-SERIF BOLD SMALL A -← (‎ 𝘢 ‎) 1D622 MATHEMATICAL SANS-SERIF ITALIC SMALL A -← (‎ 𝙖 ‎) 1D656 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A -← (‎ 𝚊 ‎) 1D68A MATHEMATICAL MONOSPACE SMALL A -← (‎ 𝛂 ‎) 1D6C2 MATHEMATICAL BOLD SMALL ALPHA # →α→ -← (‎ 𝛼 ‎) 1D6FC MATHEMATICAL ITALIC SMALL ALPHA # →α→ -← (‎ 𝜶 ‎) 1D736 MATHEMATICAL BOLD ITALIC SMALL ALPHA # →α→ -← (‎ 𝝰 ‎) 1D770 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA # →α→ -← (‎ 𝞪 ‎) 1D7AA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA # →α→ - -# a/c ᵃ/c ᵃ⁄c ℀ - (‎ a/c ‎) 0061 002F 0063 LATIN SMALL LETTER A, SOLIDUS, LATIN SMALL LETTER C -← (‎ ᵃ/c ‎) 1D43 002F 0063 MODIFIER LETTER SMALL A, SOLIDUS, LATIN SMALL LETTER C # →ᵃ⁄c→→℀→ -← (‎ ᵃ⁄c ‎) 1D43 2044 0063 MODIFIER LETTER SMALL A, FRACTION SLASH, LATIN SMALL LETTER C # →℀→ -← (‎ ℀ ‎) 2100 ACCOUNT OF - -# a/s ᵃ/ₛ ᵃ⁄ₛ ℁ - (‎ a/s ‎) 0061 002F 0073 LATIN SMALL LETTER A, SOLIDUS, LATIN SMALL LETTER S -← (‎ ᵃ/ₛ ‎) 1D43 002F 209B MODIFIER LETTER SMALL A, SOLIDUS, LATIN SUBSCRIPT SMALL LETTER S # →ᵃ⁄ₛ→→℁→ -← (‎ ᵃ⁄ₛ ‎) 1D43 2044 209B MODIFIER LETTER SMALL A, FRACTION SLASH, LATIN SUBSCRIPT SMALL LETTER S # →℁→ -← (‎ ℁ ‎) 2101 ADDRESSED TO THE SUBJECT - -# aa ꜳ - (‎ aa ‎) 0061 0061 LATIN SMALL LETTER A, LATIN SMALL LETTER A -← (‎ ꜳ ‎) A733 LATIN SMALL LETTER AA - -# ae ае æ ӕ - (‎ ae ‎) 0061 0065 LATIN SMALL LETTER A, LATIN SMALL LETTER E -← (‎ ае ‎) 0430 0435 CYRILLIC SMALL LETTER A, CYRILLIC SMALL LETTER IE -← (‎ æ ‎) 00E6 LATIN SMALL LETTER AE -← (‎ ӕ ‎) 04D5 CYRILLIC SMALL LIGATURE A IE # →ае→ - -# ao ꜵ - (‎ ao ‎) 0061 006F LATIN SMALL LETTER A, LATIN SMALL LETTER O -← (‎ ꜵ ‎) A735 LATIN SMALL LETTER AO - -# au ꜷ - (‎ au ‎) 0061 0075 LATIN SMALL LETTER A, LATIN SMALL LETTER U -← (‎ ꜷ ‎) A737 LATIN SMALL LETTER AU - -# av ꜹ ꜻ - (‎ av ‎) 0061 0076 LATIN SMALL LETTER A, LATIN SMALL LETTER V -← (‎ ꜹ ‎) A739 LATIN SMALL LETTER AV -← (‎ ꜻ ‎) A73B LATIN SMALL LETTER AV WITH HORIZONTAL BAR - -# ay ꜽ - (‎ ay ‎) 0061 0079 LATIN SMALL LETTER A, LATIN SMALL LETTER Y -← (‎ ꜽ ‎) A73D LATIN SMALL LETTER AY - -# a̲ ɑ̲ α̲ ⍶ - (‎ a̲ ‎) 0061 0332 LATIN SMALL LETTER A, COMBINING LOW LINE -← (‎ ɑ̲ ‎) 0251 0332 LATIN SMALL LETTER ALPHA, COMBINING LOW LINE -← (‎ α̲ ‎) 03B1 0332 GREEK SMALL LETTER ALPHA, COMBINING LOW LINE # →ɑ̲→ -← (‎ ⍶ ‎) 2376 APL FUNCTIONAL SYMBOL ALPHA UNDERBAR # →α̲→→ɑ̲→ - -# b Ƅ Ь Ꮟ ᑲ ᖯ 𝐛 𝑏 𝒃 𝒷 𝓫 𝔟 𝕓 𝖇 𝖻 𝗯 𝘣 𝙗 𝚋 - (‎ b ‎) 0062 LATIN SMALL LETTER B -← (‎ Ƅ ‎) 0184 LATIN CAPITAL LETTER TONE SIX -← (‎ Ь ‎) 042C CYRILLIC CAPITAL LETTER SOFT SIGN # →Ƅ→ -← (‎ Ꮟ ‎) 13CF CHEROKEE LETTER SI -← (‎ ᑲ ‎) 1472 CANADIAN SYLLABICS KA -← (‎ ᖯ ‎) 15AF CANADIAN SYLLABICS AIVILIK B -← (‎ 𝐛 ‎) 1D41B MATHEMATICAL BOLD SMALL B -← (‎ 𝑏 ‎) 1D44F MATHEMATICAL ITALIC SMALL B -← (‎ 𝒃 ‎) 1D483 MATHEMATICAL BOLD ITALIC SMALL B -← (‎ 𝒷 ‎) 1D4B7 MATHEMATICAL SCRIPT SMALL B -← (‎ 𝓫 ‎) 1D4EB MATHEMATICAL BOLD SCRIPT SMALL B -← (‎ 𝔟 ‎) 1D51F MATHEMATICAL FRAKTUR SMALL B -← (‎ 𝕓 ‎) 1D553 MATHEMATICAL DOUBLE-STRUCK SMALL B -← (‎ 𝖇 ‎) 1D587 MATHEMATICAL BOLD FRAKTUR SMALL B -← (‎ 𝖻 ‎) 1D5BB MATHEMATICAL SANS-SERIF SMALL B -← (‎ 𝗯 ‎) 1D5EF MATHEMATICAL SANS-SERIF BOLD SMALL B -← (‎ 𝘣 ‎) 1D623 MATHEMATICAL SANS-SERIF ITALIC SMALL B -← (‎ 𝙗 ‎) 1D657 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B -← (‎ 𝚋 ‎) 1D68B MATHEMATICAL MONOSPACE SMALL B - -# b' ᑲᑊ ᑲ' ᒈ - (‎ b' ‎) 0062 0027 LATIN SMALL LETTER B, APOSTROPHE -← (‎ ᑲᑊ ‎) 1472 144A CANADIAN SYLLABICS KA, CANADIAN SYLLABICS WEST-CREE P -← (‎ ᑲ' ‎) 1472 0027 CANADIAN SYLLABICS KA, APOSTROPHE # →ᑲᑊ→ -← (‎ ᒈ ‎) 1488 CANADIAN SYLLABICS SOUTH-SLAVEY KAH # →ᑲᑊ→ - -# bl Ьl Ь1 ЬІ Ы - (‎ bl ‎) 0062 006C LATIN SMALL LETTER B, LATIN SMALL LETTER L -← (‎ Ьl ‎) 042C 006C CYRILLIC CAPITAL LETTER SOFT SIGN, LATIN SMALL LETTER L # →ЬІ→→Ь1→ -← (‎ Ь1 ‎) 042C 0031 CYRILLIC CAPITAL LETTER SOFT SIGN, DIGIT ONE -← (‎ ЬІ ‎) 042C 0406 CYRILLIC CAPITAL LETTER SOFT SIGN, CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I # →Ь1→ -← (‎ Ы ‎) 042B CYRILLIC CAPITAL LETTER YERU # →ЬІ→→Ь1→ - -# b· ᑲ· ᑲᐧ ᑿ - (‎ b· ‎) 0062 00B7 LATIN SMALL LETTER B, MIDDLE DOT -← (‎ ᑲ· ‎) 1472 00B7 CANADIAN SYLLABICS KA, MIDDLE DOT # →ᑲᐧ→ -← (‎ ᑲᐧ ‎) 1472 1427 CANADIAN SYLLABICS KA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑿ ‎) 147F CANADIAN SYLLABICS WEST-CREE KWA # →ᑲᐧ→ - -# b̄ Ƃ ƃ Б - (‎ b̄ ‎) 0062 0304 LATIN SMALL LETTER B, COMBINING MACRON -← (‎ Ƃ ‎) 0182 LATIN CAPITAL LETTER B WITH TOPBAR -← (‎ ƃ ‎) 0183 LATIN SMALL LETTER B WITH TOPBAR -← (‎ Б ‎) 0411 CYRILLIC CAPITAL LETTER BE # →Ƃ→ - -# ḃ ᑳ - (‎ ḃ ‎) 0062 0307 LATIN SMALL LETTER B, COMBINING DOT ABOVE -← (‎ ᑳ ‎) 1473 CANADIAN SYLLABICS KAA - -# ḃ· ᑳ· ᑳᐧ ᒁ - (‎ ḃ· ‎) 0062 0307 00B7 LATIN SMALL LETTER B, COMBINING DOT ABOVE, MIDDLE DOT -← (‎ ᑳ· ‎) 1473 00B7 CANADIAN SYLLABICS KAA, MIDDLE DOT # →ᑳᐧ→ -← (‎ ᑳᐧ ‎) 1473 1427 CANADIAN SYLLABICS KAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒁ ‎) 1481 CANADIAN SYLLABICS WEST-CREE KWAA # →ᑳᐧ→ - -# b̔ ɓ - (‎ b̔ ‎) 0062 0314 LATIN SMALL LETTER B, COMBINING REVERSED COMMA ABOVE -← (‎ ɓ ‎) 0253 LATIN SMALL LETTER B WITH HOOK - -# b̵ Ь̵ ƀ ҍ Ҍ Ѣ ѣ - (‎ b̵ ‎) 0062 0335 LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY -← (‎ Ь̵ ‎) 042C 0335 CYRILLIC CAPITAL LETTER SOFT SIGN, COMBINING SHORT STROKE OVERLAY -← (‎ ƀ ‎) 0180 LATIN SMALL LETTER B WITH STROKE -← (‎ ҍ ‎) 048D CYRILLIC SMALL LETTER SEMISOFT SIGN # →ѣ→→Ь̵→ -← (‎ Ҍ ‎) 048C CYRILLIC CAPITAL LETTER SEMISOFT SIGN # →Ѣ→→Ь̵→ -← (‎ Ѣ ‎) 0462 CYRILLIC CAPITAL LETTER YAT # →Ь̵→ -← (‎ ѣ ‎) 0463 CYRILLIC SMALL LETTER YAT # →Ь̵→ - -# c ᴄ с ⲥ 𐐽 ꮯ ⅽ c ϲ 𝐜 𝑐 𝒄 𝒸 𝓬 𝔠 𝕔 𝖈 𝖼 𝗰 𝘤 𝙘 𝚌 - (‎ c ‎) 0063 LATIN SMALL LETTER C -← (‎ ᴄ ‎) 1D04 LATIN LETTER SMALL CAPITAL C -← (‎ с ‎) 0441 CYRILLIC SMALL LETTER ES -← (‎ ⲥ ‎) 2CA5 COPTIC SMALL LETTER SIMA # →ϲ→ -← (‎ 𐐽 ‎) 1043D DESERET SMALL LETTER CHEE -← (‎ ꮯ ‎) ABAF CHEROKEE SMALL LETTER TLI # →ᴄ→ -← (‎ ⅽ ‎) 217D SMALL ROMAN NUMERAL ONE HUNDRED -← (‎ c ‎) FF43 FULLWIDTH LATIN SMALL LETTER C # →с→ -← (‎ ϲ ‎) 03F2 GREEK LUNATE SIGMA SYMBOL -← (‎ 𝐜 ‎) 1D41C MATHEMATICAL BOLD SMALL C -← (‎ 𝑐 ‎) 1D450 MATHEMATICAL ITALIC SMALL C -← (‎ 𝒄 ‎) 1D484 MATHEMATICAL BOLD ITALIC SMALL C -← (‎ 𝒸 ‎) 1D4B8 MATHEMATICAL SCRIPT SMALL C -← (‎ 𝓬 ‎) 1D4EC MATHEMATICAL BOLD SCRIPT SMALL C -← (‎ 𝔠 ‎) 1D520 MATHEMATICAL FRAKTUR SMALL C -← (‎ 𝕔 ‎) 1D554 MATHEMATICAL DOUBLE-STRUCK SMALL C -← (‎ 𝖈 ‎) 1D588 MATHEMATICAL BOLD FRAKTUR SMALL C -← (‎ 𝖼 ‎) 1D5BC MATHEMATICAL SANS-SERIF SMALL C -← (‎ 𝗰 ‎) 1D5F0 MATHEMATICAL SANS-SERIF BOLD SMALL C -← (‎ 𝘤 ‎) 1D624 MATHEMATICAL SANS-SERIF ITALIC SMALL C -← (‎ 𝙘 ‎) 1D658 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C -← (‎ 𝚌 ‎) 1D68C MATHEMATICAL MONOSPACE SMALL C - -# c/o ᶜ/₀ ᶜ⁄₀ ℅ - (‎ c/o ‎) 0063 002F 006F LATIN SMALL LETTER C, SOLIDUS, LATIN SMALL LETTER O -← (‎ ᶜ/₀ ‎) 1D9C 002F 2080 MODIFIER LETTER SMALL C, SOLIDUS, SUBSCRIPT ZERO # →ᶜ⁄₀→→℅→ -← (‎ ᶜ⁄₀ ‎) 1D9C 2044 2080 MODIFIER LETTER SMALL C, FRACTION SLASH, SUBSCRIPT ZERO # →℅→ -← (‎ ℅ ‎) 2105 CARE OF - -# c/u ᶜ/ᵤ ᶜ⁄ᵤ ℆ - (‎ c/u ‎) 0063 002F 0075 LATIN SMALL LETTER C, SOLIDUS, LATIN SMALL LETTER U -← (‎ ᶜ/ᵤ ‎) 1D9C 002F 1D64 MODIFIER LETTER SMALL C, SOLIDUS, LATIN SUBSCRIPT SMALL LETTER U # →ᶜ⁄ᵤ→→℆→ -← (‎ ᶜ⁄ᵤ ‎) 1D9C 2044 1D64 MODIFIER LETTER SMALL C, FRACTION SLASH, LATIN SUBSCRIPT SMALL LETTER U # →℆→ -← (‎ ℆ ‎) 2106 CADA UNA - -# c̦ с̦ с̡ ҫ ç - (‎ c̦ ‎) 0063 0326 LATIN SMALL LETTER C, COMBINING COMMA BELOW -← (‎ с̦ ‎) 0441 0326 CYRILLIC SMALL LETTER ES, COMBINING COMMA BELOW # →с̡→ -← (‎ с̡ ‎) 0441 0321 CYRILLIC SMALL LETTER ES, COMBINING PALATALIZED HOOK BELOW -← (‎ ҫ ‎) 04AB CYRILLIC SMALL LETTER ES WITH DESCENDER # →с̡→ -← (‎ ç ‎) 00E7 LATIN SMALL LETTER C WITH CEDILLA # →ҫ→→с̡→ - -# c̸ ȼ ¢ - (‎ c̸ ‎) 0063 0338 LATIN SMALL LETTER C, COMBINING LONG SOLIDUS OVERLAY -← (‎ ȼ ‎) 023C LATIN SMALL LETTER C WITH STROKE # →¢→ -← (‎ ¢ ‎) 00A2 CENT SIGN - -# d ԁ Ꮷ ᑯ ꓒ ⅾ ⅆ 𝐝 𝑑 𝒅 𝒹 𝓭 𝔡 𝕕 𝖉 𝖽 𝗱 𝘥 𝙙 𝚍 - (‎ d ‎) 0064 LATIN SMALL LETTER D -← (‎ ԁ ‎) 0501 CYRILLIC SMALL LETTER KOMI DE -← (‎ Ꮷ ‎) 13E7 CHEROKEE LETTER TSU -← (‎ ᑯ ‎) 146F CANADIAN SYLLABICS KO -← (‎ ꓒ ‎) A4D2 LISU LETTER PHA -← (‎ ⅾ ‎) 217E SMALL ROMAN NUMERAL FIVE HUNDRED -← (‎ ⅆ ‎) 2146 DOUBLE-STRUCK ITALIC SMALL D -← (‎ 𝐝 ‎) 1D41D MATHEMATICAL BOLD SMALL D -← (‎ 𝑑 ‎) 1D451 MATHEMATICAL ITALIC SMALL D -← (‎ 𝒅 ‎) 1D485 MATHEMATICAL BOLD ITALIC SMALL D -← (‎ 𝒹 ‎) 1D4B9 MATHEMATICAL SCRIPT SMALL D -← (‎ 𝓭 ‎) 1D4ED MATHEMATICAL BOLD SCRIPT SMALL D -← (‎ 𝔡 ‎) 1D521 MATHEMATICAL FRAKTUR SMALL D -← (‎ 𝕕 ‎) 1D555 MATHEMATICAL DOUBLE-STRUCK SMALL D -← (‎ 𝖉 ‎) 1D589 MATHEMATICAL BOLD FRAKTUR SMALL D -← (‎ 𝖽 ‎) 1D5BD MATHEMATICAL SANS-SERIF SMALL D -← (‎ 𝗱 ‎) 1D5F1 MATHEMATICAL SANS-SERIF BOLD SMALL D -← (‎ 𝘥 ‎) 1D625 MATHEMATICAL SANS-SERIF ITALIC SMALL D -← (‎ 𝙙 ‎) 1D659 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D -← (‎ 𝚍 ‎) 1D68D MATHEMATICAL MONOSPACE SMALL D - -# d' ᑯᑊ ᑯ' ᒇ - (‎ d' ‎) 0064 0027 LATIN SMALL LETTER D, APOSTROPHE -← (‎ ᑯᑊ ‎) 146F 144A CANADIAN SYLLABICS KO, CANADIAN SYLLABICS WEST-CREE P -← (‎ ᑯ' ‎) 146F 0027 CANADIAN SYLLABICS KO, APOSTROPHE # →ᑯᑊ→ -← (‎ ᒇ ‎) 1487 CANADIAN SYLLABICS SOUTH-SLAVEY KOH # →ᑯᑊ→ - -# dz ʣ dz - (‎ dz ‎) 0064 007A LATIN SMALL LETTER D, LATIN SMALL LETTER Z -← (‎ ʣ ‎) 02A3 LATIN SMALL LETTER DZ DIGRAPH -← (‎ dz ‎) 01F3 LATIN SMALL LETTER DZ - -# d· ᑯ· ᑯᐧ ᑻ - (‎ d· ‎) 0064 00B7 LATIN SMALL LETTER D, MIDDLE DOT -← (‎ ᑯ· ‎) 146F 00B7 CANADIAN SYLLABICS KO, MIDDLE DOT # →ᑯᐧ→ -← (‎ ᑯᐧ ‎) 146F 1427 CANADIAN SYLLABICS KO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑻ ‎) 147B CANADIAN SYLLABICS WEST-CREE KWO # →ᑯᐧ→ - -# dž dž - (‎ dž ‎) 0064 017E LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON -← (‎ dž ‎) 01C6 LATIN SMALL LETTER DZ WITH CARON - -# dȝ dʒ ʤ - (‎ dȝ ‎) 0064 021D LATIN SMALL LETTER D, LATIN SMALL LETTER YOGH -← (‎ dʒ ‎) 0064 0292 LATIN SMALL LETTER D, LATIN SMALL LETTER EZH -← (‎ ʤ ‎) 02A4 LATIN SMALL LETTER DEZH DIGRAPH # →dʒ→ - -# dʑ ʥ - (‎ dʑ ‎) 0064 0291 LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CURL -← (‎ ʥ ‎) 02A5 LATIN SMALL LETTER DZ DIGRAPH WITH CURL - -# d̄ ƌ - (‎ d̄ ‎) 0064 0304 LATIN SMALL LETTER D, COMBINING MACRON -← (‎ ƌ ‎) 018C LATIN SMALL LETTER D WITH TOPBAR - -# d̔ ɗ - (‎ d̔ ‎) 0064 0314 LATIN SMALL LETTER D, COMBINING REVERSED COMMA ABOVE -← (‎ ɗ ‎) 0257 LATIN SMALL LETTER D WITH HOOK - -# d̨ d̢ ɖ - (‎ d̢ ‎) 0064 0322 LATIN SMALL LETTER D, COMBINING RETROFLEX HOOK BELOW -← (‎ d̨ ‎) 0064 0328 LATIN SMALL LETTER D, COMBINING OGONEK -← (‎ ɖ ‎) 0256 LATIN SMALL LETTER D WITH TAIL - -# d̵ đ - (‎ d̵ ‎) 0064 0335 LATIN SMALL LETTER D, COMBINING SHORT STROKE OVERLAY -← (‎ đ ‎) 0111 LATIN SMALL LETTER D WITH STROKE - -# ḏ̵ đ̱ ₫ - (‎ ḏ̵ ‎) 0064 0335 0331 LATIN SMALL LETTER D, COMBINING SHORT STROKE OVERLAY, COMBINING MACRON BELOW -← (‎ đ̱ ‎) 0111 0331 LATIN SMALL LETTER D WITH STROKE, COMBINING MACRON BELOW -← (‎ ₫ ‎) 20AB DONG SIGN # →đ̱→ - -# e е ҽ ℮ ꬲ e ℯ ⅇ 𝐞 𝑒 𝒆 𝓮 𝔢 𝕖 𝖊 𝖾 𝗲 𝘦 𝙚 𝚎 - (‎ e ‎) 0065 LATIN SMALL LETTER E -← (‎ е ‎) 0435 CYRILLIC SMALL LETTER IE -← (‎ ҽ ‎) 04BD CYRILLIC SMALL LETTER ABKHASIAN CHE -← (‎ ℮ ‎) 212E ESTIMATED SYMBOL -← (‎ ꬲ ‎) AB32 LATIN SMALL LETTER BLACKLETTER E -← (‎ e ‎) FF45 FULLWIDTH LATIN SMALL LETTER E # →е→ -← (‎ ℯ ‎) 212F SCRIPT SMALL E -← (‎ ⅇ ‎) 2147 DOUBLE-STRUCK ITALIC SMALL E -← (‎ 𝐞 ‎) 1D41E MATHEMATICAL BOLD SMALL E -← (‎ 𝑒 ‎) 1D452 MATHEMATICAL ITALIC SMALL E -← (‎ 𝒆 ‎) 1D486 MATHEMATICAL BOLD ITALIC SMALL E -← (‎ 𝓮 ‎) 1D4EE MATHEMATICAL BOLD SCRIPT SMALL E -← (‎ 𝔢 ‎) 1D522 MATHEMATICAL FRAKTUR SMALL E -← (‎ 𝕖 ‎) 1D556 MATHEMATICAL DOUBLE-STRUCK SMALL E -← (‎ 𝖊 ‎) 1D58A MATHEMATICAL BOLD FRAKTUR SMALL E -← (‎ 𝖾 ‎) 1D5BE MATHEMATICAL SANS-SERIF SMALL E -← (‎ 𝗲 ‎) 1D5F2 MATHEMATICAL SANS-SERIF BOLD SMALL E -← (‎ 𝘦 ‎) 1D626 MATHEMATICAL SANS-SERIF ITALIC SMALL E -← (‎ 𝙚 ‎) 1D65A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E -← (‎ 𝚎 ‎) 1D68E MATHEMATICAL MONOSPACE SMALL E - -# ę е̨ ҽ̢ ҿ - (‎ ę ‎) 0065 0328 LATIN SMALL LETTER E, COMBINING OGONEK -← (‎ е̨ ‎) 0435 0328 CYRILLIC SMALL LETTER IE, COMBINING OGONEK # →ҽ̢→ -← (‎ ҽ̢ ‎) 04BD 0322 CYRILLIC SMALL LETTER ABKHASIAN CHE, COMBINING RETROFLEX HOOK BELOW -← (‎ ҿ ‎) 04BF CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER # →ҽ̢→ - -# e̸ e̷ ɇ - (‎ e̷ ‎) 0065 0337 LATIN SMALL LETTER E, COMBINING SHORT SOLIDUS OVERLAY -← (‎ e̸ ‎) 0065 0338 LATIN SMALL LETTER E, COMBINING LONG SOLIDUS OVERLAY -← (‎ ɇ ‎) 0247 LATIN SMALL LETTER E WITH STROKE - -# f ẝ ք ꞙ ꬵ ſ 𝐟 𝑓 𝒇 𝒻 𝓯 𝔣 𝕗 𝖋 𝖿 𝗳 𝘧 𝙛 𝚏 - (‎ f ‎) 0066 LATIN SMALL LETTER F -← (‎ ẝ ‎) 1E9D LATIN SMALL LETTER LONG S WITH HIGH STROKE -← (‎ ք ‎) 0584 ARMENIAN SMALL LETTER KEH -← (‎ ꞙ ‎) A799 LATIN SMALL LETTER F WITH STROKE -← (‎ ꬵ ‎) AB35 LATIN SMALL LETTER LENIS F -← (‎ ſ ‎) 017F LATIN SMALL LETTER LONG S -← (‎ 𝐟 ‎) 1D41F MATHEMATICAL BOLD SMALL F -← (‎ 𝑓 ‎) 1D453 MATHEMATICAL ITALIC SMALL F -← (‎ 𝒇 ‎) 1D487 MATHEMATICAL BOLD ITALIC SMALL F -← (‎ 𝒻 ‎) 1D4BB MATHEMATICAL SCRIPT SMALL F -← (‎ 𝓯 ‎) 1D4EF MATHEMATICAL BOLD SCRIPT SMALL F -← (‎ 𝔣 ‎) 1D523 MATHEMATICAL FRAKTUR SMALL F -← (‎ 𝕗 ‎) 1D557 MATHEMATICAL DOUBLE-STRUCK SMALL F -← (‎ 𝖋 ‎) 1D58B MATHEMATICAL BOLD FRAKTUR SMALL F -← (‎ 𝖿 ‎) 1D5BF MATHEMATICAL SANS-SERIF SMALL F -← (‎ 𝗳 ‎) 1D5F3 MATHEMATICAL SANS-SERIF BOLD SMALL F -← (‎ 𝘧 ‎) 1D627 MATHEMATICAL SANS-SERIF ITALIC SMALL F -← (‎ 𝙛 ‎) 1D65B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F -← (‎ 𝚏 ‎) 1D68F MATHEMATICAL MONOSPACE SMALL F - -# ff ff - (‎ ff ‎) 0066 0066 LATIN SMALL LETTER F, LATIN SMALL LETTER F -← (‎ ff ‎) FB00 LATIN SMALL LIGATURE FF - -# ffi ffi - (‎ ffi ‎) 0066 0066 0069 LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER I -← (‎ ffi ‎) FB03 LATIN SMALL LIGATURE FFI - -# ffl ffl - (‎ ffl ‎) 0066 0066 006C LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER L -← (‎ ffl ‎) FB04 LATIN SMALL LIGATURE FFL - -# fi fi - (‎ fi ‎) 0066 0069 LATIN SMALL LETTER F, LATIN SMALL LETTER I -← (‎ fi ‎) FB01 LATIN SMALL LIGATURE FI - -# fl fl - (‎ fl ‎) 0066 006C LATIN SMALL LETTER F, LATIN SMALL LETTER L -← (‎ fl ‎) FB02 LATIN SMALL LIGATURE FL - -# fŋ ʩ - (‎ fŋ ‎) 0066 014B LATIN SMALL LETTER F, LATIN SMALL LETTER ENG -← (‎ ʩ ‎) 02A9 LATIN SMALL LETTER FENG DIGRAPH - -# f̦ f̡ ƒ - (‎ f̡ ‎) 0066 0321 LATIN SMALL LETTER F, COMBINING PALATALIZED HOOK BELOW -← (‎ f̦ ‎) 0066 0326 LATIN SMALL LETTER F, COMBINING COMMA BELOW -← (‎ ƒ ‎) 0192 LATIN SMALL LETTER F WITH HOOK - -# f̴ ᵮ - (‎ f̴ ‎) 0066 0334 LATIN SMALL LETTER F, COMBINING TILDE OVERLAY -← (‎ ᵮ ‎) 1D6E LATIN SMALL LETTER F WITH MIDDLE TILDE - -# g ƍ ɡ ᶃ ց g ℊ 𝐠 𝑔 𝒈 𝓰 𝔤 𝕘 𝖌 𝗀 𝗴 𝘨 𝙜 𝚐 - (‎ g ‎) 0067 LATIN SMALL LETTER G -← (‎ ƍ ‎) 018D LATIN SMALL LETTER TURNED DELTA -← (‎ ɡ ‎) 0261 LATIN SMALL LETTER SCRIPT G -← (‎ ᶃ ‎) 1D83 LATIN SMALL LETTER G WITH PALATAL HOOK -← (‎ ց ‎) 0581 ARMENIAN SMALL LETTER CO -← (‎ g ‎) FF47 FULLWIDTH LATIN SMALL LETTER G # →ɡ→ -← (‎ ℊ ‎) 210A SCRIPT SMALL G -← (‎ 𝐠 ‎) 1D420 MATHEMATICAL BOLD SMALL G -← (‎ 𝑔 ‎) 1D454 MATHEMATICAL ITALIC SMALL G -← (‎ 𝒈 ‎) 1D488 MATHEMATICAL BOLD ITALIC SMALL G -← (‎ 𝓰 ‎) 1D4F0 MATHEMATICAL BOLD SCRIPT SMALL G -← (‎ 𝔤 ‎) 1D524 MATHEMATICAL FRAKTUR SMALL G -← (‎ 𝕘 ‎) 1D558 MATHEMATICAL DOUBLE-STRUCK SMALL G -← (‎ 𝖌 ‎) 1D58C MATHEMATICAL BOLD FRAKTUR SMALL G -← (‎ 𝗀 ‎) 1D5C0 MATHEMATICAL SANS-SERIF SMALL G -← (‎ 𝗴 ‎) 1D5F4 MATHEMATICAL SANS-SERIF BOLD SMALL G -← (‎ 𝘨 ‎) 1D628 MATHEMATICAL SANS-SERIF ITALIC SMALL G -← (‎ 𝙜 ‎) 1D65C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G -← (‎ 𝚐 ‎) 1D690 MATHEMATICAL MONOSPACE SMALL G - -# g̔ ɠ - (‎ g̔ ‎) 0067 0314 LATIN SMALL LETTER G, COMBINING REVERSED COMMA ABOVE -← (‎ ɠ ‎) 0260 LATIN SMALL LETTER G WITH HOOK - -# g̵ ǥ - (‎ g̵ ‎) 0067 0335 LATIN SMALL LETTER G, COMBINING SHORT STROKE OVERLAY -← (‎ ǥ ‎) 01E5 LATIN SMALL LETTER G WITH STROKE - -# h һ հ Ꮒ h ℎ 𝐡 𝒉 𝒽 𝓱 𝔥 𝕙 𝖍 𝗁 𝗵 𝘩 𝙝 𝚑 - (‎ h ‎) 0068 LATIN SMALL LETTER H -← (‎ һ ‎) 04BB CYRILLIC SMALL LETTER SHHA -← (‎ հ ‎) 0570 ARMENIAN SMALL LETTER HO -← (‎ Ꮒ ‎) 13C2 CHEROKEE LETTER NI -← (‎ h ‎) FF48 FULLWIDTH LATIN SMALL LETTER H # →һ→ -← (‎ ℎ ‎) 210E PLANCK CONSTANT -← (‎ 𝐡 ‎) 1D421 MATHEMATICAL BOLD SMALL H -← (‎ 𝒉 ‎) 1D489 MATHEMATICAL BOLD ITALIC SMALL H -← (‎ 𝒽 ‎) 1D4BD MATHEMATICAL SCRIPT SMALL H -← (‎ 𝓱 ‎) 1D4F1 MATHEMATICAL BOLD SCRIPT SMALL H -← (‎ 𝔥 ‎) 1D525 MATHEMATICAL FRAKTUR SMALL H -← (‎ 𝕙 ‎) 1D559 MATHEMATICAL DOUBLE-STRUCK SMALL H -← (‎ 𝖍 ‎) 1D58D MATHEMATICAL BOLD FRAKTUR SMALL H -← (‎ 𝗁 ‎) 1D5C1 MATHEMATICAL SANS-SERIF SMALL H -← (‎ 𝗵 ‎) 1D5F5 MATHEMATICAL SANS-SERIF BOLD SMALL H -← (‎ 𝘩 ‎) 1D629 MATHEMATICAL SANS-SERIF ITALIC SMALL H -← (‎ 𝙝 ‎) 1D65D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H -← (‎ 𝚑 ‎) 1D691 MATHEMATICAL MONOSPACE SMALL H - -# h̔ ɦ Ᏺ ꚕ - (‎ h̔ ‎) 0068 0314 LATIN SMALL LETTER H, COMBINING REVERSED COMMA ABOVE -← (‎ ɦ ‎) 0266 LATIN SMALL LETTER H WITH HOOK -← (‎ Ᏺ ‎) 13F2 CHEROKEE LETTER YO -← (‎ ꚕ ‎) A695 CYRILLIC SMALL LETTER HWE # →ɦ→ - -# h̵ һ̵ ħ ћ ℏ - (‎ h̵ ‎) 0068 0335 LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY -← (‎ һ̵ ‎) 04BB 0335 CYRILLIC SMALL LETTER SHHA, COMBINING SHORT STROKE OVERLAY # →ћ→→ħ→ -← (‎ ħ ‎) 0127 LATIN SMALL LETTER H WITH STROKE -← (‎ ћ ‎) 045B CYRILLIC SMALL LETTER TSHE # →ħ→ -← (‎ ℏ ‎) 210F PLANCK CONSTANT OVER TWO PI # →ħ→ - -# i ı ɩ ɪ ι і ӏ Ꭵ ꙇ ⍳ 𑣃 ꭵ ⅰ i ι ℹ ⅈ 𝐢 𝑖 𝒊 𝒾 𝓲 𝔦 𝕚 𝖎 𝗂 𝗶 𝘪 𝙞 𝚒 𝚤 𝛊 𝜄 𝜾 𝝸 𝞲 ˛ ͺ - (‎ i ‎) 0069 LATIN SMALL LETTER I -← (‎ ı ‎) 0131 LATIN SMALL LETTER DOTLESS I -← (‎ ɩ ‎) 0269 LATIN SMALL LETTER IOTA -← (‎ ɪ ‎) 026A LATIN LETTER SMALL CAPITAL I # →ı→ -← (‎ ι ‎) 03B9 GREEK SMALL LETTER IOTA -← (‎ і ‎) 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -← (‎ ӏ ‎) 04CF CYRILLIC SMALL LETTER PALOCHKA # →ı→ -← (‎ Ꭵ ‎) 13A5 CHEROKEE LETTER V -← (‎ ꙇ ‎) A647 CYRILLIC SMALL LETTER IOTA # →ι→ -← (‎ ⍳ ‎) 2373 APL FUNCTIONAL SYMBOL IOTA # →ι→ -← (‎ 𑣃 ‎) 118C3 WARANG CITI SMALL LETTER YU # →ι→ -← (‎ ꭵ ‎) AB75 CHEROKEE SMALL LETTER V -← (‎ ⅰ ‎) 2170 SMALL ROMAN NUMERAL ONE -← (‎ i ‎) FF49 FULLWIDTH LATIN SMALL LETTER I # →і→ -← (‎ ι ‎) 1FBE GREEK PROSGEGRAMMENI # →ι→ -← (‎ ℹ ‎) 2139 INFORMATION SOURCE -← (‎ ⅈ ‎) 2148 DOUBLE-STRUCK ITALIC SMALL I -← (‎ 𝐢 ‎) 1D422 MATHEMATICAL BOLD SMALL I -← (‎ 𝑖 ‎) 1D456 MATHEMATICAL ITALIC SMALL I -← (‎ 𝒊 ‎) 1D48A MATHEMATICAL BOLD ITALIC SMALL I -← (‎ 𝒾 ‎) 1D4BE MATHEMATICAL SCRIPT SMALL I -← (‎ 𝓲 ‎) 1D4F2 MATHEMATICAL BOLD SCRIPT SMALL I -← (‎ 𝔦 ‎) 1D526 MATHEMATICAL FRAKTUR SMALL I -← (‎ 𝕚 ‎) 1D55A MATHEMATICAL DOUBLE-STRUCK SMALL I -← (‎ 𝖎 ‎) 1D58E MATHEMATICAL BOLD FRAKTUR SMALL I -← (‎ 𝗂 ‎) 1D5C2 MATHEMATICAL SANS-SERIF SMALL I -← (‎ 𝗶 ‎) 1D5F6 MATHEMATICAL SANS-SERIF BOLD SMALL I -← (‎ 𝘪 ‎) 1D62A MATHEMATICAL SANS-SERIF ITALIC SMALL I -← (‎ 𝙞 ‎) 1D65E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I -← (‎ 𝚒 ‎) 1D692 MATHEMATICAL MONOSPACE SMALL I -← (‎ 𝚤 ‎) 1D6A4 MATHEMATICAL ITALIC SMALL DOTLESS I # →ı→ -← (‎ 𝛊 ‎) 1D6CA MATHEMATICAL BOLD SMALL IOTA # →ι→ -← (‎ 𝜄 ‎) 1D704 MATHEMATICAL ITALIC SMALL IOTA # →ι→ -← (‎ 𝜾 ‎) 1D73E MATHEMATICAL BOLD ITALIC SMALL IOTA # →ι→ -← (‎ 𝝸 ‎) 1D778 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA # →ι→ -← (‎ 𝞲 ‎) 1D7B2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA # →ι→ -← (‎ ˛ ‎) 02DB OGONEK # →ͺ→→ι→→ι→ -← (‎ ͺ ‎) 037A GREEK YPOGEGRAMMENI # →ι→→ι→ - -# ii ⅱ - (‎ ii ‎) 0069 0069 LATIN SMALL LETTER I, LATIN SMALL LETTER I -← (‎ ⅱ ‎) 2171 SMALL ROMAN NUMERAL TWO - -# iii ⅲ - (‎ iii ‎) 0069 0069 0069 LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN SMALL LETTER I -← (‎ ⅲ ‎) 2172 SMALL ROMAN NUMERAL THREE - -# ij ij - (‎ ij ‎) 0069 006A LATIN SMALL LETTER I, LATIN SMALL LETTER J -← (‎ ij ‎) 0133 LATIN SMALL LIGATURE IJ - -# iv ⅳ - (‎ iv ‎) 0069 0076 LATIN SMALL LETTER I, LATIN SMALL LETTER V -← (‎ ⅳ ‎) 2173 SMALL ROMAN NUMERAL FOUR - -# ix ⅸ - (‎ ix ‎) 0069 0078 LATIN SMALL LETTER I, LATIN SMALL LETTER X -← (‎ ⅸ ‎) 2178 SMALL ROMAN NUMERAL NINE - -# i̲ ι̲ ⍸ - (‎ i̲ ‎) 0069 0332 LATIN SMALL LETTER I, COMBINING LOW LINE -← (‎ ι̲ ‎) 03B9 0332 GREEK SMALL LETTER IOTA, COMBINING LOW LINE -← (‎ ⍸ ‎) 2378 APL FUNCTIONAL SYMBOL IOTA UNDERBAR # →ι̲→ - -# i̵ ɩ̵ ɪ̵ ɨ ᵻ ᵼ - (‎ i̵ ‎) 0069 0335 LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY -← (‎ ɩ̵ ‎) 0269 0335 LATIN SMALL LETTER IOTA, COMBINING SHORT STROKE OVERLAY -← (‎ ɪ̵ ‎) 026A 0335 LATIN LETTER SMALL CAPITAL I, COMBINING SHORT STROKE OVERLAY -← (‎ ɨ ‎) 0268 LATIN SMALL LETTER I WITH STROKE -← (‎ ᵻ ‎) 1D7B LATIN SMALL CAPITAL LETTER I WITH STROKE # →ɪ̵→ -← (‎ ᵼ ‎) 1D7C LATIN SMALL LETTER IOTA WITH STROKE # →ɩ̵→ - -# j ј ϳ j ⅉ 𝐣 𝑗 𝒋 𝒿 𝓳 𝔧 𝕛 𝖏 𝗃 𝗷 𝘫 𝙟 𝚓 - (‎ j ‎) 006A LATIN SMALL LETTER J -← (‎ ј ‎) 0458 CYRILLIC SMALL LETTER JE -← (‎ ϳ ‎) 03F3 GREEK LETTER YOT -← (‎ j ‎) FF4A FULLWIDTH LATIN SMALL LETTER J # →ϳ→ -← (‎ ⅉ ‎) 2149 DOUBLE-STRUCK ITALIC SMALL J -← (‎ 𝐣 ‎) 1D423 MATHEMATICAL BOLD SMALL J -← (‎ 𝑗 ‎) 1D457 MATHEMATICAL ITALIC SMALL J -← (‎ 𝒋 ‎) 1D48B MATHEMATICAL BOLD ITALIC SMALL J -← (‎ 𝒿 ‎) 1D4BF MATHEMATICAL SCRIPT SMALL J -← (‎ 𝓳 ‎) 1D4F3 MATHEMATICAL BOLD SCRIPT SMALL J -← (‎ 𝔧 ‎) 1D527 MATHEMATICAL FRAKTUR SMALL J -← (‎ 𝕛 ‎) 1D55B MATHEMATICAL DOUBLE-STRUCK SMALL J -← (‎ 𝖏 ‎) 1D58F MATHEMATICAL BOLD FRAKTUR SMALL J -← (‎ 𝗃 ‎) 1D5C3 MATHEMATICAL SANS-SERIF SMALL J -← (‎ 𝗷 ‎) 1D5F7 MATHEMATICAL SANS-SERIF BOLD SMALL J -← (‎ 𝘫 ‎) 1D62B MATHEMATICAL SANS-SERIF ITALIC SMALL J -← (‎ 𝙟 ‎) 1D65F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J -← (‎ 𝚓 ‎) 1D693 MATHEMATICAL MONOSPACE SMALL J - -# j̵ ɉ - (‎ j̵ ‎) 006A 0335 LATIN SMALL LETTER J, COMBINING SHORT STROKE OVERLAY -← (‎ ɉ ‎) 0249 LATIN SMALL LETTER J WITH STROKE - -# k 𝐤 𝑘 𝒌 𝓀 𝓴 𝔨 𝕜 𝖐 𝗄 𝗸 𝘬 𝙠 𝚔 - (‎ k ‎) 006B LATIN SMALL LETTER K -← (‎ 𝐤 ‎) 1D424 MATHEMATICAL BOLD SMALL K -← (‎ 𝑘 ‎) 1D458 MATHEMATICAL ITALIC SMALL K -← (‎ 𝒌 ‎) 1D48C MATHEMATICAL BOLD ITALIC SMALL K -← (‎ 𝓀 ‎) 1D4C0 MATHEMATICAL SCRIPT SMALL K -← (‎ 𝓴 ‎) 1D4F4 MATHEMATICAL BOLD SCRIPT SMALL K -← (‎ 𝔨 ‎) 1D528 MATHEMATICAL FRAKTUR SMALL K -← (‎ 𝕜 ‎) 1D55C MATHEMATICAL DOUBLE-STRUCK SMALL K -← (‎ 𝖐 ‎) 1D590 MATHEMATICAL BOLD FRAKTUR SMALL K -← (‎ 𝗄 ‎) 1D5C4 MATHEMATICAL SANS-SERIF SMALL K -← (‎ 𝗸 ‎) 1D5F8 MATHEMATICAL SANS-SERIF BOLD SMALL K -← (‎ 𝘬 ‎) 1D62C MATHEMATICAL SANS-SERIF ITALIC SMALL K -← (‎ 𝙠 ‎) 1D660 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K -← (‎ 𝚔 ‎) 1D694 MATHEMATICAL MONOSPACE SMALL K - -# k̔ ƙ - (‎ k̔ ‎) 006B 0314 LATIN SMALL LETTER K, COMBINING REVERSED COMMA ABOVE -← (‎ ƙ ‎) 0199 LATIN SMALL LETTER K WITH HOOK - -# lj lj - (‎ lj ‎) 006C 006A LATIN SMALL LETTER L, LATIN SMALL LETTER J -← (‎ lj ‎) 01C9 LATIN SMALL LETTER LJ - -# ls ʪ - (‎ ls ‎) 006C 0073 LATIN SMALL LETTER L, LATIN SMALL LETTER S -← (‎ ʪ ‎) 02AA LATIN SMALL LETTER LS DIGRAPH - -# lt ₶ - (‎ lt ‎) 006C 0074 LATIN SMALL LETTER L, LATIN SMALL LETTER T -← (‎ ₶ ‎) 20B6 LIVRE TOURNOIS SIGN - -# lz ʫ - (‎ lz ‎) 006C 007A LATIN SMALL LETTER L, LATIN SMALL LETTER Z -← (‎ ʫ ‎) 02AB LATIN SMALL LETTER LZ DIGRAPH - -# lȝ lʒ ɮ - (‎ lȝ ‎) 006C 021D LATIN SMALL LETTER L, LATIN SMALL LETTER YOGH -← (‎ lʒ ‎) 006C 0292 LATIN SMALL LETTER L, LATIN SMALL LETTER EZH -← (‎ ɮ ‎) 026E LATIN SMALL LETTER LEZH # →lʒ→ - -# l̨ l̢ ɭ - (‎ l̢ ‎) 006C 0322 LATIN SMALL LETTER L, COMBINING RETROFLEX HOOK BELOW -← (‎ l̨ ‎) 006C 0328 LATIN SMALL LETTER L, COMBINING OGONEK -← (‎ ɭ ‎) 026D LATIN SMALL LETTER L WITH RETROFLEX HOOK - -# l̴ ɫ - (‎ l̴ ‎) 006C 0334 LATIN SMALL LETTER L, COMBINING TILDE OVERLAY -← (‎ ɫ ‎) 026B LATIN SMALL LETTER L WITH MIDDLE TILDE - -# l̸ l̷ ł - (‎ l̷ ‎) 006C 0337 LATIN SMALL LETTER L, COMBINING SHORT SOLIDUS OVERLAY -← (‎ l̸ ‎) 006C 0338 LATIN SMALL LETTER L, COMBINING LONG SOLIDUS OVERLAY -← (‎ ł ‎) 0142 LATIN SMALL LETTER L WITH STROKE - -# rn m 𑣣 𑜀 ⅿ 𝐦 𝑚 𝒎 𝓂 𝓶 𝔪 𝕞 𝖒 𝗆 𝗺 𝘮 𝙢 𝚖 - (‎ m ‎) 006D LATIN SMALL LETTER M -← (‎ rn ‎) 0072 006E LATIN SMALL LETTER R, LATIN SMALL LETTER N -← (‎ 𑣣 ‎) 118E3 WARANG CITI DIGIT THREE -← (‎ 𑜀 ‎) 11700 AHOM LETTER KA -← (‎ ⅿ ‎) 217F SMALL ROMAN NUMERAL ONE THOUSAND -← (‎ 𝐦 ‎) 1D426 MATHEMATICAL BOLD SMALL M -← (‎ 𝑚 ‎) 1D45A MATHEMATICAL ITALIC SMALL M -← (‎ 𝒎 ‎) 1D48E MATHEMATICAL BOLD ITALIC SMALL M -← (‎ 𝓂 ‎) 1D4C2 MATHEMATICAL SCRIPT SMALL M -← (‎ 𝓶 ‎) 1D4F6 MATHEMATICAL BOLD SCRIPT SMALL M -← (‎ 𝔪 ‎) 1D52A MATHEMATICAL FRAKTUR SMALL M -← (‎ 𝕞 ‎) 1D55E MATHEMATICAL DOUBLE-STRUCK SMALL M -← (‎ 𝖒 ‎) 1D592 MATHEMATICAL BOLD FRAKTUR SMALL M -← (‎ 𝗆 ‎) 1D5C6 MATHEMATICAL SANS-SERIF SMALL M -← (‎ 𝗺 ‎) 1D5FA MATHEMATICAL SANS-SERIF BOLD SMALL M -← (‎ 𝘮 ‎) 1D62E MATHEMATICAL SANS-SERIF ITALIC SMALL M -← (‎ 𝙢 ‎) 1D662 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M -← (‎ 𝚖 ‎) 1D696 MATHEMATICAL MONOSPACE SMALL M - -# rn̦ m̡ ɱ - (‎ m̡ ‎) 006D 0321 LATIN SMALL LETTER M, COMBINING PALATALIZED HOOK BELOW -← (‎ rn̦ ‎) 0072 006E 0326 LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING COMMA BELOW -← (‎ ɱ ‎) 0271 LATIN SMALL LETTER M WITH HOOK - -# rn̴ m̴ ᵯ - (‎ m̴ ‎) 006D 0334 LATIN SMALL LETTER M, COMBINING TILDE OVERLAY -← (‎ rn̴ ‎) 0072 006E 0334 LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING TILDE OVERLAY -← (‎ ᵯ ‎) 1D6F LATIN SMALL LETTER M WITH MIDDLE TILDE - -# rn̸ m̷ ₥ - (‎ m̷ ‎) 006D 0337 LATIN SMALL LETTER M, COMBINING SHORT SOLIDUS OVERLAY -← (‎ rn̸ ‎) 0072 006E 0338 LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING LONG SOLIDUS OVERLAY -← (‎ ₥ ‎) 20A5 MILL SIGN - -# n ո ռ 𝐧 𝑛 𝒏 𝓃 𝓷 𝔫 𝕟 𝖓 𝗇 𝗻 𝘯 𝙣 𝚗 - (‎ n ‎) 006E LATIN SMALL LETTER N -← (‎ ո ‎) 0578 ARMENIAN SMALL LETTER VO -← (‎ ռ ‎) 057C ARMENIAN SMALL LETTER RA -← (‎ 𝐧 ‎) 1D427 MATHEMATICAL BOLD SMALL N -← (‎ 𝑛 ‎) 1D45B MATHEMATICAL ITALIC SMALL N -← (‎ 𝒏 ‎) 1D48F MATHEMATICAL BOLD ITALIC SMALL N -← (‎ 𝓃 ‎) 1D4C3 MATHEMATICAL SCRIPT SMALL N -← (‎ 𝓷 ‎) 1D4F7 MATHEMATICAL BOLD SCRIPT SMALL N -← (‎ 𝔫 ‎) 1D52B MATHEMATICAL FRAKTUR SMALL N -← (‎ 𝕟 ‎) 1D55F MATHEMATICAL DOUBLE-STRUCK SMALL N -← (‎ 𝖓 ‎) 1D593 MATHEMATICAL BOLD FRAKTUR SMALL N -← (‎ 𝗇 ‎) 1D5C7 MATHEMATICAL SANS-SERIF SMALL N -← (‎ 𝗻 ‎) 1D5FB MATHEMATICAL SANS-SERIF BOLD SMALL N -← (‎ 𝘯 ‎) 1D62F MATHEMATICAL SANS-SERIF ITALIC SMALL N -← (‎ 𝙣 ‎) 1D663 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N -← (‎ 𝚗 ‎) 1D697 MATHEMATICAL MONOSPACE SMALL N - -# nj nj - (‎ nj ‎) 006E 006A LATIN SMALL LETTER N, LATIN SMALL LETTER J -← (‎ nj ‎) 01CC LATIN SMALL LETTER NJ - -# n̨ n̢ ɳ - (‎ n̢ ‎) 006E 0322 LATIN SMALL LETTER N, COMBINING RETROFLEX HOOK BELOW -← (‎ n̨ ‎) 006E 0328 LATIN SMALL LETTER N, COMBINING OGONEK -← (‎ ɳ ‎) 0273 LATIN SMALL LETTER N WITH RETROFLEX HOOK - -# n̩ ƞ η 𝛈 𝜂 𝜼 𝝶 𝞰 - (‎ n̩ ‎) 006E 0329 LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW -← (‎ ƞ ‎) 019E LATIN SMALL LETTER N WITH LONG RIGHT LEG -← (‎ η ‎) 03B7 GREEK SMALL LETTER ETA # →ƞ→ -← (‎ 𝛈 ‎) 1D6C8 MATHEMATICAL BOLD SMALL ETA # →η→→ƞ→ -← (‎ 𝜂 ‎) 1D702 MATHEMATICAL ITALIC SMALL ETA # →η→→ƞ→ -← (‎ 𝜼 ‎) 1D73C MATHEMATICAL BOLD ITALIC SMALL ETA # →η→→ƞ→ -← (‎ 𝝶 ‎) 1D776 MATHEMATICAL SANS-SERIF BOLD SMALL ETA # →η→→ƞ→ -← (‎ 𝞰 ‎) 1D7B0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA # →η→→ƞ→ - -# n̴ ᵰ - (‎ n̴ ‎) 006E 0334 LATIN SMALL LETTER N, COMBINING TILDE OVERLAY -← (‎ ᵰ ‎) 1D70 LATIN SMALL LETTER N WITH MIDDLE TILDE - -# o ᴏ ᴑ ο σ о օ ס ه ٥ ھ ہ ە ۵ ० ੦ ૦ ௦ ం ౦ ಂ ೦ ം ഠ ൦ ං ๐ ໐ ဝ ၀ ჿ ⲟ 𐐬 ꬽ 𑣈 𑣗 𐓪 o ℴ 𞸤 𞹤 𞺄 ﮦ ﮧ ﮨ ﮩ ﮪ ﮫ ﮬ ﮭ ﻩ ﻪ ﻫ ﻬ 𝐨 𝑜 𝒐 𝓸 𝔬 𝕠 𝖔 𝗈 𝗼 𝘰 𝙤 𝚘 𝛐 𝛔 𝜊 𝜎 𝝄 𝝈 𝝾 𝞂 𝞸 𝞼 - (‎ o ‎) 006F LATIN SMALL LETTER O -← (‎ ᴏ ‎) 1D0F LATIN LETTER SMALL CAPITAL O -← (‎ ᴑ ‎) 1D11 LATIN SMALL LETTER SIDEWAYS O -← (‎ ο ‎) 03BF GREEK SMALL LETTER OMICRON -← (‎ σ ‎) 03C3 GREEK SMALL LETTER SIGMA -← (‎ о ‎) 043E CYRILLIC SMALL LETTER O -← (‎ օ ‎) 0585 ARMENIAN SMALL LETTER OH -← (‎ ס ‎) 05E1 HEBREW LETTER SAMEKH -← (‎ ه ‎) 0647 ARABIC LETTER HEH -← (‎ ٥ ‎) 0665 ARABIC-INDIC DIGIT FIVE -← (‎ ھ ‎) 06BE ARABIC LETTER HEH DOACHASHMEE # →‎ه‎→ -← (‎ ہ ‎) 06C1 ARABIC LETTER HEH GOAL # →‎ه‎→ -← (‎ ە ‎) 06D5 ARABIC LETTER AE # →‎ه‎→ -← (‎ ۵ ‎) 06F5 EXTENDED ARABIC-INDIC DIGIT FIVE # →‎٥‎→ -← (‎ ० ‎) 0966 DEVANAGARI DIGIT ZERO -← (‎ ੦ ‎) 0A66 GURMUKHI DIGIT ZERO -← (‎ ૦ ‎) 0AE6 GUJARATI DIGIT ZERO -← (‎ ௦ ‎) 0BE6 TAMIL DIGIT ZERO -← (‎ ం ‎) 0C02 TELUGU SIGN ANUSVARA -← (‎ ౦ ‎) 0C66 TELUGU DIGIT ZERO -← (‎ ಂ ‎) 0C82 KANNADA SIGN ANUSVARA -← (‎ ೦ ‎) 0CE6 KANNADA DIGIT ZERO # →౦→ -← (‎ ം ‎) 0D02 MALAYALAM SIGN ANUSVARA -← (‎ ഠ ‎) 0D20 MALAYALAM LETTER TTHA -← (‎ ൦ ‎) 0D66 MALAYALAM DIGIT ZERO -← (‎ ං ‎) 0D82 SINHALA SIGN ANUSVARAYA -← (‎ ๐ ‎) 0E50 THAI DIGIT ZERO -← (‎ ໐ ‎) 0ED0 LAO DIGIT ZERO -← (‎ ဝ ‎) 101D MYANMAR LETTER WA -← (‎ ၀ ‎) 1040 MYANMAR DIGIT ZERO -← (‎ ჿ ‎) 10FF GEORGIAN LETTER LABIAL SIGN -← (‎ ⲟ ‎) 2C9F COPTIC SMALL LETTER O -← (‎ 𐐬 ‎) 1042C DESERET SMALL LETTER LONG O -← (‎ ꬽ ‎) AB3D LATIN SMALL LETTER BLACKLETTER O -← (‎ 𑣈 ‎) 118C8 WARANG CITI SMALL LETTER E -← (‎ 𑣗 ‎) 118D7 WARANG CITI SMALL LETTER BU -← (‎ 𐓪 ‎) 104EA OSAGE SMALL LETTER O -← (‎ o ‎) FF4F FULLWIDTH LATIN SMALL LETTER O # →о→ -← (‎ ℴ ‎) 2134 SCRIPT SMALL O -← (‎ 𞸤 ‎) 1EE24 ARABIC MATHEMATICAL INITIAL HEH # →‎ه‎→ -← (‎ 𞹤 ‎) 1EE64 ARABIC MATHEMATICAL STRETCHED HEH # →‎ه‎→ -← (‎ 𞺄 ‎) 1EE84 ARABIC MATHEMATICAL LOOPED HEH # →‎ه‎→ -← (‎ ﮦ ‎) FBA6 ARABIC LETTER HEH GOAL ISOLATED FORM # →‎ه‎→ -← (‎ ﮧ ‎) FBA7 ARABIC LETTER HEH GOAL FINAL FORM # →‎ہ‎→→‎ه‎→ -← (‎ ﮨ ‎) FBA8 ARABIC LETTER HEH GOAL INITIAL FORM # →‎ہ‎→→‎ه‎→ -← (‎ ﮩ ‎) FBA9 ARABIC LETTER HEH GOAL MEDIAL FORM # →‎ہ‎→→‎ه‎→ -← (‎ ﮪ ‎) FBAA ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM # →‎ه‎→ -← (‎ ﮫ ‎) FBAB ARABIC LETTER HEH DOACHASHMEE FINAL FORM # →‎ﻪ‎→→‎ه‎→ -← (‎ ﮬ ‎) FBAC ARABIC LETTER HEH DOACHASHMEE INITIAL FORM # →‎ﻫ‎→→‎ه‎→ -← (‎ ﮭ ‎) FBAD ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM # →‎ﻬ‎→→‎ه‎→ -← (‎ ﻩ ‎) FEE9 ARABIC LETTER HEH ISOLATED FORM # →‎ه‎→ -← (‎ ﻪ ‎) FEEA ARABIC LETTER HEH FINAL FORM # →‎ه‎→ -← (‎ ﻫ ‎) FEEB ARABIC LETTER HEH INITIAL FORM # →‎ه‎→ -← (‎ ﻬ ‎) FEEC ARABIC LETTER HEH MEDIAL FORM # →‎ه‎→ -← (‎ 𝐨 ‎) 1D428 MATHEMATICAL BOLD SMALL O -← (‎ 𝑜 ‎) 1D45C MATHEMATICAL ITALIC SMALL O -← (‎ 𝒐 ‎) 1D490 MATHEMATICAL BOLD ITALIC SMALL O -← (‎ 𝓸 ‎) 1D4F8 MATHEMATICAL BOLD SCRIPT SMALL O -← (‎ 𝔬 ‎) 1D52C MATHEMATICAL FRAKTUR SMALL O -← (‎ 𝕠 ‎) 1D560 MATHEMATICAL DOUBLE-STRUCK SMALL O -← (‎ 𝖔 ‎) 1D594 MATHEMATICAL BOLD FRAKTUR SMALL O -← (‎ 𝗈 ‎) 1D5C8 MATHEMATICAL SANS-SERIF SMALL O -← (‎ 𝗼 ‎) 1D5FC MATHEMATICAL SANS-SERIF BOLD SMALL O -← (‎ 𝘰 ‎) 1D630 MATHEMATICAL SANS-SERIF ITALIC SMALL O -← (‎ 𝙤 ‎) 1D664 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O -← (‎ 𝚘 ‎) 1D698 MATHEMATICAL MONOSPACE SMALL O -← (‎ 𝛐 ‎) 1D6D0 MATHEMATICAL BOLD SMALL OMICRON # →𝐨→ -← (‎ 𝛔 ‎) 1D6D4 MATHEMATICAL BOLD SMALL SIGMA # →σ→ -← (‎ 𝜊 ‎) 1D70A MATHEMATICAL ITALIC SMALL OMICRON # →𝑜→ -← (‎ 𝜎 ‎) 1D70E MATHEMATICAL ITALIC SMALL SIGMA # →σ→ -← (‎ 𝝄 ‎) 1D744 MATHEMATICAL BOLD ITALIC SMALL OMICRON # →𝒐→ -← (‎ 𝝈 ‎) 1D748 MATHEMATICAL BOLD ITALIC SMALL SIGMA # →σ→ -← (‎ 𝝾 ‎) 1D77E MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON # →ο→ -← (‎ 𝞂 ‎) 1D782 MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA # →σ→ -← (‎ 𝞸 ‎) 1D7B8 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON # →ο→ -← (‎ 𝞼 ‎) 1D7BC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA # →σ→ - -# o' oʼ ơ - (‎ o' ‎) 006F 0027 LATIN SMALL LETTER O, APOSTROPHE -← (‎ oʼ ‎) 006F 02BC LATIN SMALL LETTER O, MODIFIER LETTER APOSTROPHE -← (‎ ơ ‎) 01A1 LATIN SMALL LETTER O WITH HORN # →oʼ→ - -# oe œ - (‎ oe ‎) 006F 0065 LATIN SMALL LETTER O, LATIN SMALL LETTER E -← (‎ œ ‎) 0153 LATIN SMALL LIGATURE OE - -# oo ꝏ ∞ ꚙ - (‎ oo ‎) 006F 006F LATIN SMALL LETTER O, LATIN SMALL LETTER O -← (‎ ꝏ ‎) A74F LATIN SMALL LETTER OO -← (‎ ∞ ‎) 221E INFINITY # →ꝏ→ -← (‎ ꚙ ‎) A699 CYRILLIC SMALL LETTER DOUBLE O - -# ô ه̂ ھٛ ۿ - (‎ ô ‎) 006F 0302 LATIN SMALL LETTER O, COMBINING CIRCUMFLEX ACCENT -← (‎ ه̂ ‎) 0647 0302 ARABIC LETTER HEH, COMBINING CIRCUMFLEX ACCENT # →‎ھٛ‎→ -← (‎ ھٛ ‎) 06BE 065B ARABIC LETTER HEH DOACHASHMEE, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ۿ ‎) 06FF ARABIC LETTER HEH WITH INVERTED V # →‎ھٛ‎→ - -# ơ ꭴ - (‎ ơ ‎) 006F 031B LATIN SMALL LETTER O, COMBINING HORN -← (‎ ꭴ ‎) AB74 CHEROKEE SMALL LETTER U - -# o̵ o̶ о̵ ɵ ꝋ ө ѳ ꮎ ꮻ - (‎ o̵ ‎) 006F 0335 LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY -← (‎ o̶ ‎) 006F 0336 LATIN SMALL LETTER O, COMBINING LONG STROKE OVERLAY -← (‎ о̵ ‎) 043E 0335 CYRILLIC SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ѳ→ -← (‎ ɵ ‎) 0275 LATIN SMALL LETTER BARRED O -← (‎ ꝋ ‎) A74B LATIN SMALL LETTER O WITH LONG STROKE OVERLAY # →o̶→ -← (‎ ө ‎) 04E9 CYRILLIC SMALL LETTER BARRED O # →ѳ→ -← (‎ ѳ ‎) 0473 CYRILLIC SMALL LETTER FITA -← (‎ ꮎ ‎) AB8E CHEROKEE SMALL LETTER NA # →ɵ→ -← (‎ ꮻ ‎) ABBB CHEROKEE SMALL LETTER WI # →ѳ→ - -# o̸ o̷ ø ꬾ - (‎ o̷ ‎) 006F 0337 LATIN SMALL LETTER O, COMBINING SHORT SOLIDUS OVERLAY -← (‎ o̸ ‎) 006F 0338 LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY -← (‎ ø ‎) 00F8 LATIN SMALL LETTER O WITH STROKE -← (‎ ꬾ ‎) AB3E LATIN SMALL LETTER BLACKLETTER O WITH STROKE # →ø→ - -# oج هج ﱑ ﳗ - (‎ oج ‎) 006F 062C LATIN SMALL LETTER O, ARABIC LETTER JEEM -← (‎ هج ‎) 0647 062C ARABIC LETTER HEH, ARABIC LETTER JEEM -← (‎ ﱑ ‎) FC51 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM # →‎هج‎→ -← (‎ ﳗ ‎) FCD7 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM # →‎هج‎→ - -# oم هم ﱒ ﳘ - (‎ oم ‎) 006F 0645 LATIN SMALL LETTER O, ARABIC LETTER MEEM -← (‎ هم ‎) 0647 0645 ARABIC LETTER HEH, ARABIC LETTER MEEM -← (‎ ﱒ ‎) FC52 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM # →‎هم‎→ -← (‎ ﳘ ‎) FCD8 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM # →‎هم‎→ - -# oمج همج ﶓ - (‎ oمج ‎) 006F 0645 062C LATIN SMALL LETTER O, ARABIC LETTER MEEM, ARABIC LETTER JEEM -← (‎ همج ‎) 0647 0645 062C ARABIC LETTER HEH, ARABIC LETTER MEEM, ARABIC LETTER JEEM -← (‎ ﶓ ‎) FD93 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM # →‎همج‎→ - -# oمم همم ﶔ - (‎ oمم ‎) 006F 0645 0645 LATIN SMALL LETTER O, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ همم ‎) 0647 0645 0645 ARABIC LETTER HEH, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﶔ ‎) FD94 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM # →‎همم‎→ - -# oى هى هي ﱓ ﱔ - (‎ oى ‎) 006F 0649 LATIN SMALL LETTER O, ARABIC LETTER ALEF MAKSURA -← (‎ هى ‎) 0647 0649 ARABIC LETTER HEH, ARABIC LETTER ALEF MAKSURA -← (‎ هي ‎) 0647 064A ARABIC LETTER HEH, ARABIC LETTER YEH -← (‎ ﱓ ‎) FC53 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM # →‎هى‎→ -← (‎ ﱔ ‎) FC54 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM # →‎هي‎→ - -# oٰ هٰ ﳙ - (‎ oٰ ‎) 006F 0670 LATIN SMALL LETTER O, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ هٰ ‎) 0647 0670 ARABIC LETTER HEH, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ﳙ ‎) FCD9 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM # →‎هٰ‎→ - -# oരo ംരം ൦ര൦ ൟ - (‎ oരo ‎) 006F 0D30 006F LATIN SMALL LETTER O, MALAYALAM LETTER RA, LATIN SMALL LETTER O -← (‎ ംരം ‎) 0D02 0D30 0D02 MALAYALAM SIGN ANUSVARA, MALAYALAM LETTER RA, MALAYALAM SIGN ANUSVARA -← (‎ ൦ര൦ ‎) 0D66 0D30 0D66 MALAYALAM DIGIT ZERO, MALAYALAM LETTER RA, MALAYALAM DIGIT ZERO # →ൟ→→ംരം→ -← (‎ ൟ ‎) 0D5F MALAYALAM LETTER ARCHAIC II # →ംരം→ - -# oာ ဝာ တ - (‎ oာ ‎) 006F 102C LATIN SMALL LETTER O, MYANMAR VOWEL SIGN AA -← (‎ ဝာ ‎) 101D 102C MYANMAR LETTER WA, MYANMAR VOWEL SIGN AA -← (‎ တ ‎) 1010 MYANMAR LETTER TA # →ဝာ→ - -# oᴇ ɶ - (‎ oᴇ ‎) 006F 1D07 LATIN SMALL LETTER O, LATIN LETTER SMALL CAPITAL E -← (‎ ɶ ‎) 0276 LATIN LETTER SMALL CAPITAL OE - -# p ρ р ⲣ ⍴ p ϱ 𝐩 𝑝 𝒑 𝓅 𝓹 𝔭 𝕡 𝖕 𝗉 𝗽 𝘱 𝙥 𝚙 𝛒 𝛠 𝜌 𝜚 𝝆 𝝔 𝞀 𝞎 𝞺 𝟈 - (‎ p ‎) 0070 LATIN SMALL LETTER P -← (‎ ρ ‎) 03C1 GREEK SMALL LETTER RHO -← (‎ р ‎) 0440 CYRILLIC SMALL LETTER ER -← (‎ ⲣ ‎) 2CA3 COPTIC SMALL LETTER RO # →ρ→ -← (‎ ⍴ ‎) 2374 APL FUNCTIONAL SYMBOL RHO # →ρ→ -← (‎ p ‎) FF50 FULLWIDTH LATIN SMALL LETTER P # →р→ -← (‎ ϱ ‎) 03F1 GREEK RHO SYMBOL # →ρ→ -← (‎ 𝐩 ‎) 1D429 MATHEMATICAL BOLD SMALL P -← (‎ 𝑝 ‎) 1D45D MATHEMATICAL ITALIC SMALL P -← (‎ 𝒑 ‎) 1D491 MATHEMATICAL BOLD ITALIC SMALL P -← (‎ 𝓅 ‎) 1D4C5 MATHEMATICAL SCRIPT SMALL P -← (‎ 𝓹 ‎) 1D4F9 MATHEMATICAL BOLD SCRIPT SMALL P -← (‎ 𝔭 ‎) 1D52D MATHEMATICAL FRAKTUR SMALL P -← (‎ 𝕡 ‎) 1D561 MATHEMATICAL DOUBLE-STRUCK SMALL P -← (‎ 𝖕 ‎) 1D595 MATHEMATICAL BOLD FRAKTUR SMALL P -← (‎ 𝗉 ‎) 1D5C9 MATHEMATICAL SANS-SERIF SMALL P -← (‎ 𝗽 ‎) 1D5FD MATHEMATICAL SANS-SERIF BOLD SMALL P -← (‎ 𝘱 ‎) 1D631 MATHEMATICAL SANS-SERIF ITALIC SMALL P -← (‎ 𝙥 ‎) 1D665 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P -← (‎ 𝚙 ‎) 1D699 MATHEMATICAL MONOSPACE SMALL P -← (‎ 𝛒 ‎) 1D6D2 MATHEMATICAL BOLD SMALL RHO # →ρ→ -← (‎ 𝛠 ‎) 1D6E0 MATHEMATICAL BOLD RHO SYMBOL # →ρ→ -← (‎ 𝜌 ‎) 1D70C MATHEMATICAL ITALIC SMALL RHO # →ρ→ -← (‎ 𝜚 ‎) 1D71A MATHEMATICAL ITALIC RHO SYMBOL # →ρ→ -← (‎ 𝝆 ‎) 1D746 MATHEMATICAL BOLD ITALIC SMALL RHO # →ρ→ -← (‎ 𝝔 ‎) 1D754 MATHEMATICAL BOLD ITALIC RHO SYMBOL # →ρ→ -← (‎ 𝞀 ‎) 1D780 MATHEMATICAL SANS-SERIF BOLD SMALL RHO # →ρ→ -← (‎ 𝞎 ‎) 1D78E MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL # →ρ→ -← (‎ 𝞺 ‎) 1D7BA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO # →ρ→ -← (‎ 𝟈 ‎) 1D7C8 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL # →ρ→ - -# p̔ ƥ - (‎ p̔ ‎) 0070 0314 LATIN SMALL LETTER P, COMBINING REVERSED COMMA ABOVE -← (‎ ƥ ‎) 01A5 LATIN SMALL LETTER P WITH HOOK - -# p̵ ᵽ - (‎ p̵ ‎) 0070 0335 LATIN SMALL LETTER P, COMBINING SHORT STROKE OVERLAY -← (‎ ᵽ ‎) 1D7D LATIN SMALL LETTER P WITH STROKE - -# q ԛ գ զ 𝐪 𝑞 𝒒 𝓆 𝓺 𝔮 𝕢 𝖖 𝗊 𝗾 𝘲 𝙦 𝚚 - (‎ q ‎) 0071 LATIN SMALL LETTER Q -← (‎ ԛ ‎) 051B CYRILLIC SMALL LETTER QA -← (‎ գ ‎) 0563 ARMENIAN SMALL LETTER GIM -← (‎ զ ‎) 0566 ARMENIAN SMALL LETTER ZA -← (‎ 𝐪 ‎) 1D42A MATHEMATICAL BOLD SMALL Q -← (‎ 𝑞 ‎) 1D45E MATHEMATICAL ITALIC SMALL Q -← (‎ 𝒒 ‎) 1D492 MATHEMATICAL BOLD ITALIC SMALL Q -← (‎ 𝓆 ‎) 1D4C6 MATHEMATICAL SCRIPT SMALL Q -← (‎ 𝓺 ‎) 1D4FA MATHEMATICAL BOLD SCRIPT SMALL Q -← (‎ 𝔮 ‎) 1D52E MATHEMATICAL FRAKTUR SMALL Q -← (‎ 𝕢 ‎) 1D562 MATHEMATICAL DOUBLE-STRUCK SMALL Q -← (‎ 𝖖 ‎) 1D596 MATHEMATICAL BOLD FRAKTUR SMALL Q -← (‎ 𝗊 ‎) 1D5CA MATHEMATICAL SANS-SERIF SMALL Q -← (‎ 𝗾 ‎) 1D5FE MATHEMATICAL SANS-SERIF BOLD SMALL Q -← (‎ 𝘲 ‎) 1D632 MATHEMATICAL SANS-SERIF ITALIC SMALL Q -← (‎ 𝙦 ‎) 1D666 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q -← (‎ 𝚚 ‎) 1D69A MATHEMATICAL MONOSPACE SMALL Q - -# q̔ ʠ - (‎ q̔ ‎) 0071 0314 LATIN SMALL LETTER Q, COMBINING REVERSED COMMA ABOVE -← (‎ ʠ ‎) 02A0 LATIN SMALL LETTER Q WITH HOOK - -# r г ᴦ ⲅ ꭇ ꭈ ꮁ 𝐫 𝑟 𝒓 𝓇 𝓻 𝔯 𝕣 𝖗 𝗋 𝗿 𝘳 𝙧 𝚛 - (‎ r ‎) 0072 LATIN SMALL LETTER R -← (‎ г ‎) 0433 CYRILLIC SMALL LETTER GHE -← (‎ ᴦ ‎) 1D26 GREEK LETTER SMALL CAPITAL GAMMA # →г→ -← (‎ ⲅ ‎) 2C85 COPTIC SMALL LETTER GAMMA # →г→ -← (‎ ꭇ ‎) AB47 LATIN SMALL LETTER R WITHOUT HANDLE -← (‎ ꭈ ‎) AB48 LATIN SMALL LETTER DOUBLE R -← (‎ ꮁ ‎) AB81 CHEROKEE SMALL LETTER HU # →ᴦ→→г→ -← (‎ 𝐫 ‎) 1D42B MATHEMATICAL BOLD SMALL R -← (‎ 𝑟 ‎) 1D45F MATHEMATICAL ITALIC SMALL R -← (‎ 𝒓 ‎) 1D493 MATHEMATICAL BOLD ITALIC SMALL R -← (‎ 𝓇 ‎) 1D4C7 MATHEMATICAL SCRIPT SMALL R -← (‎ 𝓻 ‎) 1D4FB MATHEMATICAL BOLD SCRIPT SMALL R -← (‎ 𝔯 ‎) 1D52F MATHEMATICAL FRAKTUR SMALL R -← (‎ 𝕣 ‎) 1D563 MATHEMATICAL DOUBLE-STRUCK SMALL R -← (‎ 𝖗 ‎) 1D597 MATHEMATICAL BOLD FRAKTUR SMALL R -← (‎ 𝗋 ‎) 1D5CB MATHEMATICAL SANS-SERIF SMALL R -← (‎ 𝗿 ‎) 1D5FF MATHEMATICAL SANS-SERIF BOLD SMALL R -← (‎ 𝘳 ‎) 1D633 MATHEMATICAL SANS-SERIF ITALIC SMALL R -← (‎ 𝙧 ‎) 1D667 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R -← (‎ 𝚛 ‎) 1D69B MATHEMATICAL MONOSPACE SMALL R - -# r' гˈ г' ґ - (‎ r' ‎) 0072 0027 LATIN SMALL LETTER R, APOSTROPHE -← (‎ гˈ ‎) 0433 02C8 CYRILLIC SMALL LETTER GHE, MODIFIER LETTER VERTICAL LINE -← (‎ г' ‎) 0433 0027 CYRILLIC SMALL LETTER GHE, APOSTROPHE # →гˈ→ -← (‎ ґ ‎) 0491 CYRILLIC SMALL LETTER GHE WITH UPTURN # →гˈ→ - -# r̨ ɽ - (‎ r̨ ‎) 0072 0328 LATIN SMALL LETTER R, COMBINING OGONEK -← (‎ ɽ ‎) 027D LATIN SMALL LETTER R WITH TAIL - -# r̩ ɼ - (‎ r̩ ‎) 0072 0329 LATIN SMALL LETTER R, COMBINING VERTICAL LINE BELOW -← (‎ ɼ ‎) 027C LATIN SMALL LETTER R WITH LONG LEG - -# r̴ ᵲ - (‎ r̴ ‎) 0072 0334 LATIN SMALL LETTER R, COMBINING TILDE OVERLAY -← (‎ ᵲ ‎) 1D72 LATIN SMALL LETTER R WITH MIDDLE TILDE - -# r̵ г̵ ɍ ғ - (‎ r̵ ‎) 0072 0335 LATIN SMALL LETTER R, COMBINING SHORT STROKE OVERLAY -← (‎ г̵ ‎) 0433 0335 CYRILLIC SMALL LETTER GHE, COMBINING SHORT STROKE OVERLAY -← (‎ ɍ ‎) 024D LATIN SMALL LETTER R WITH STROKE -← (‎ ғ ‎) 0493 CYRILLIC SMALL LETTER GHE WITH STROKE # →г̵→ - -# s ƽ ꜱ ѕ 𐑈 𑣁 ꮪ s 𝐬 𝑠 𝒔 𝓈 𝓼 𝔰 𝕤 𝖘 𝗌 𝘀 𝘴 𝙨 𝚜 - (‎ s ‎) 0073 LATIN SMALL LETTER S -← (‎ ƽ ‎) 01BD LATIN SMALL LETTER TONE FIVE -← (‎ ꜱ ‎) A731 LATIN LETTER SMALL CAPITAL S -← (‎ ѕ ‎) 0455 CYRILLIC SMALL LETTER DZE -← (‎ 𐑈 ‎) 10448 DESERET SMALL LETTER ZHEE -← (‎ 𑣁 ‎) 118C1 WARANG CITI SMALL LETTER A -← (‎ ꮪ ‎) ABAA CHEROKEE SMALL LETTER DU # →ꜱ→ -← (‎ s ‎) FF53 FULLWIDTH LATIN SMALL LETTER S # →ѕ→ -← (‎ 𝐬 ‎) 1D42C MATHEMATICAL BOLD SMALL S -← (‎ 𝑠 ‎) 1D460 MATHEMATICAL ITALIC SMALL S -← (‎ 𝒔 ‎) 1D494 MATHEMATICAL BOLD ITALIC SMALL S -← (‎ 𝓈 ‎) 1D4C8 MATHEMATICAL SCRIPT SMALL S -← (‎ 𝓼 ‎) 1D4FC MATHEMATICAL BOLD SCRIPT SMALL S -← (‎ 𝔰 ‎) 1D530 MATHEMATICAL FRAKTUR SMALL S -← (‎ 𝕤 ‎) 1D564 MATHEMATICAL DOUBLE-STRUCK SMALL S -← (‎ 𝖘 ‎) 1D598 MATHEMATICAL BOLD FRAKTUR SMALL S -← (‎ 𝗌 ‎) 1D5CC MATHEMATICAL SANS-SERIF SMALL S -← (‎ 𝘀 ‎) 1D600 MATHEMATICAL SANS-SERIF BOLD SMALL S -← (‎ 𝘴 ‎) 1D634 MATHEMATICAL SANS-SERIF ITALIC SMALL S -← (‎ 𝙨 ‎) 1D668 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S -← (‎ 𝚜 ‎) 1D69C MATHEMATICAL MONOSPACE SMALL S - -# sss 🝜 - (‎ sss ‎) 0073 0073 0073 LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER S -← (‎ 🝜 ‎) 1F75C ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM - -# st st - (‎ st ‎) 0073 0074 LATIN SMALL LETTER S, LATIN SMALL LETTER T -← (‎ st ‎) FB06 LATIN SMALL LIGATURE ST - -# s̨ ʂ - (‎ s̨ ‎) 0073 0328 LATIN SMALL LETTER S, COMBINING OGONEK -← (‎ ʂ ‎) 0282 LATIN SMALL LETTER S WITH HOOK - -# s̴ ᵴ - (‎ s̴ ‎) 0073 0334 LATIN SMALL LETTER S, COMBINING TILDE OVERLAY -← (‎ ᵴ ‎) 1D74 LATIN SMALL LETTER S WITH MIDDLE TILDE - -# t 𝐭 𝑡 𝒕 𝓉 𝓽 𝔱 𝕥 𝖙 𝗍 𝘁 𝘵 𝙩 𝚝 - (‎ t ‎) 0074 LATIN SMALL LETTER T -← (‎ 𝐭 ‎) 1D42D MATHEMATICAL BOLD SMALL T -← (‎ 𝑡 ‎) 1D461 MATHEMATICAL ITALIC SMALL T -← (‎ 𝒕 ‎) 1D495 MATHEMATICAL BOLD ITALIC SMALL T -← (‎ 𝓉 ‎) 1D4C9 MATHEMATICAL SCRIPT SMALL T -← (‎ 𝓽 ‎) 1D4FD MATHEMATICAL BOLD SCRIPT SMALL T -← (‎ 𝔱 ‎) 1D531 MATHEMATICAL FRAKTUR SMALL T -← (‎ 𝕥 ‎) 1D565 MATHEMATICAL DOUBLE-STRUCK SMALL T -← (‎ 𝖙 ‎) 1D599 MATHEMATICAL BOLD FRAKTUR SMALL T -← (‎ 𝗍 ‎) 1D5CD MATHEMATICAL SANS-SERIF SMALL T -← (‎ 𝘁 ‎) 1D601 MATHEMATICAL SANS-SERIF BOLD SMALL T -← (‎ 𝘵 ‎) 1D635 MATHEMATICAL SANS-SERIF ITALIC SMALL T -← (‎ 𝙩 ‎) 1D669 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T -← (‎ 𝚝 ‎) 1D69D MATHEMATICAL MONOSPACE SMALL T - -# tf ꝷ - (‎ tf ‎) 0074 0066 LATIN SMALL LETTER T, LATIN SMALL LETTER F -← (‎ ꝷ ‎) A777 LATIN SMALL LETTER TUM - -# ts ʦ - (‎ ts ‎) 0074 0073 LATIN SMALL LETTER T, LATIN SMALL LETTER S -← (‎ ʦ ‎) 02A6 LATIN SMALL LETTER TS DIGRAPH - -# tȝ ꜩ - (‎ tȝ ‎) 0074 021D LATIN SMALL LETTER T, LATIN SMALL LETTER YOGH -← (‎ ꜩ ‎) A729 LATIN SMALL LETTER TZ - -# tɕ ʨ - (‎ tɕ ‎) 0074 0255 LATIN SMALL LETTER T, LATIN SMALL LETTER C WITH CURL -← (‎ ʨ ‎) 02A8 LATIN SMALL LETTER TC DIGRAPH WITH CURL - -# tʃ ʧ - (‎ tʃ ‎) 0074 0283 LATIN SMALL LETTER T, LATIN SMALL LETTER ESH -← (‎ ʧ ‎) 02A7 LATIN SMALL LETTER TESH DIGRAPH - -# t̔ ƭ - (‎ t̔ ‎) 0074 0314 LATIN SMALL LETTER T, COMBINING REVERSED COMMA ABOVE -← (‎ ƭ ‎) 01AD LATIN SMALL LETTER T WITH HOOK - -# t̴ ᵵ - (‎ t̴ ‎) 0074 0334 LATIN SMALL LETTER T, COMBINING TILDE OVERLAY -← (‎ ᵵ ‎) 1D75 LATIN SMALL LETTER T WITH MIDDLE TILDE - -# t̵ ŧ - (‎ t̵ ‎) 0074 0335 LATIN SMALL LETTER T, COMBINING SHORT STROKE OVERLAY -← (‎ ŧ ‎) 0167 LATIN SMALL LETTER T WITH STROKE - -# u ʋ ᴜ υ ս ꞟ ꭎ ꭒ 𑣘 𐓶 𝐮 𝑢 𝒖 𝓊 𝓾 𝔲 𝕦 𝖚 𝗎 𝘂 𝘶 𝙪 𝚞 𝛖 𝜐 𝝊 𝞄 𝞾 - (‎ u ‎) 0075 LATIN SMALL LETTER U -← (‎ ʋ ‎) 028B LATIN SMALL LETTER V WITH HOOK -← (‎ ᴜ ‎) 1D1C LATIN LETTER SMALL CAPITAL U -← (‎ υ ‎) 03C5 GREEK SMALL LETTER UPSILON # →ʋ→ -← (‎ ս ‎) 057D ARMENIAN SMALL LETTER SEH -← (‎ ꞟ ‎) A79F LATIN SMALL LETTER VOLAPUK UE -← (‎ ꭎ ‎) AB4E LATIN SMALL LETTER U WITH SHORT RIGHT LEG -← (‎ ꭒ ‎) AB52 LATIN SMALL LETTER U WITH LEFT HOOK -← (‎ 𑣘 ‎) 118D8 WARANG CITI SMALL LETTER PU # →υ→→ʋ→ -← (‎ 𐓶 ‎) 104F6 OSAGE SMALL LETTER U # →ᴜ→ -← (‎ 𝐮 ‎) 1D42E MATHEMATICAL BOLD SMALL U -← (‎ 𝑢 ‎) 1D462 MATHEMATICAL ITALIC SMALL U -← (‎ 𝒖 ‎) 1D496 MATHEMATICAL BOLD ITALIC SMALL U -← (‎ 𝓊 ‎) 1D4CA MATHEMATICAL SCRIPT SMALL U -← (‎ 𝓾 ‎) 1D4FE MATHEMATICAL BOLD SCRIPT SMALL U -← (‎ 𝔲 ‎) 1D532 MATHEMATICAL FRAKTUR SMALL U -← (‎ 𝕦 ‎) 1D566 MATHEMATICAL DOUBLE-STRUCK SMALL U -← (‎ 𝖚 ‎) 1D59A MATHEMATICAL BOLD FRAKTUR SMALL U -← (‎ 𝗎 ‎) 1D5CE MATHEMATICAL SANS-SERIF SMALL U -← (‎ 𝘂 ‎) 1D602 MATHEMATICAL SANS-SERIF BOLD SMALL U -← (‎ 𝘶 ‎) 1D636 MATHEMATICAL SANS-SERIF ITALIC SMALL U -← (‎ 𝙪 ‎) 1D66A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U -← (‎ 𝚞 ‎) 1D69E MATHEMATICAL MONOSPACE SMALL U -← (‎ 𝛖 ‎) 1D6D6 MATHEMATICAL BOLD SMALL UPSILON # →υ→→ʋ→ -← (‎ 𝜐 ‎) 1D710 MATHEMATICAL ITALIC SMALL UPSILON # →υ→→ʋ→ -← (‎ 𝝊 ‎) 1D74A MATHEMATICAL BOLD ITALIC SMALL UPSILON # →υ→→ʋ→ -← (‎ 𝞄 ‎) 1D784 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON # →υ→→ʋ→ -← (‎ 𝞾 ‎) 1D7BE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON # →υ→→ʋ→ - -# ue ᵫ - (‎ ue ‎) 0075 0065 LATIN SMALL LETTER U, LATIN SMALL LETTER E -← (‎ ᵫ ‎) 1D6B LATIN SMALL LETTER UE - -# uo ꭣ - (‎ uo ‎) 0075 006F LATIN SMALL LETTER U, LATIN SMALL LETTER O -← (‎ ꭣ ‎) AB63 LATIN SMALL LETTER UO - -# u̵ ᴜ̵ ᵾ ꮜ - (‎ u̵ ‎) 0075 0335 LATIN SMALL LETTER U, COMBINING SHORT STROKE OVERLAY -← (‎ ᴜ̵ ‎) 1D1C 0335 LATIN LETTER SMALL CAPITAL U, COMBINING SHORT STROKE OVERLAY -← (‎ ᵾ ‎) 1D7E LATIN SMALL CAPITAL LETTER U WITH STROKE # →ᴜ̵→ -← (‎ ꮜ ‎) AB9C CHEROKEE SMALL LETTER SA # →ᴜ̵→ - -# v ᴠ ν ט ѵ ∨ ⋁ 𑣀 ꮩ 𑜆 ⅴ v 𝐯 𝑣 𝒗 𝓋 𝓿 𝔳 𝕧 𝖛 𝗏 𝘃 𝘷 𝙫 𝚟 𝛎 𝜈 𝝂 𝝼 𝞶 - (‎ v ‎) 0076 LATIN SMALL LETTER V -← (‎ ᴠ ‎) 1D20 LATIN LETTER SMALL CAPITAL V -← (‎ ν ‎) 03BD GREEK SMALL LETTER NU -← (‎ ט ‎) 05D8 HEBREW LETTER TET -← (‎ ѵ ‎) 0475 CYRILLIC SMALL LETTER IZHITSA -← (‎ ∨ ‎) 2228 LOGICAL OR -← (‎ ⋁ ‎) 22C1 N-ARY LOGICAL OR # →∨→ -← (‎ 𑣀 ‎) 118C0 WARANG CITI SMALL LETTER NGAA -← (‎ ꮩ ‎) ABA9 CHEROKEE SMALL LETTER DO # →ᴠ→ -← (‎ 𑜆 ‎) 11706 AHOM LETTER PA -← (‎ ⅴ ‎) 2174 SMALL ROMAN NUMERAL FIVE -← (‎ v ‎) FF56 FULLWIDTH LATIN SMALL LETTER V # →ν→ -← (‎ 𝐯 ‎) 1D42F MATHEMATICAL BOLD SMALL V -← (‎ 𝑣 ‎) 1D463 MATHEMATICAL ITALIC SMALL V -← (‎ 𝒗 ‎) 1D497 MATHEMATICAL BOLD ITALIC SMALL V -← (‎ 𝓋 ‎) 1D4CB MATHEMATICAL SCRIPT SMALL V -← (‎ 𝓿 ‎) 1D4FF MATHEMATICAL BOLD SCRIPT SMALL V -← (‎ 𝔳 ‎) 1D533 MATHEMATICAL FRAKTUR SMALL V -← (‎ 𝕧 ‎) 1D567 MATHEMATICAL DOUBLE-STRUCK SMALL V -← (‎ 𝖛 ‎) 1D59B MATHEMATICAL BOLD FRAKTUR SMALL V -← (‎ 𝗏 ‎) 1D5CF MATHEMATICAL SANS-SERIF SMALL V -← (‎ 𝘃 ‎) 1D603 MATHEMATICAL SANS-SERIF BOLD SMALL V -← (‎ 𝘷 ‎) 1D637 MATHEMATICAL SANS-SERIF ITALIC SMALL V -← (‎ 𝙫 ‎) 1D66B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V -← (‎ 𝚟 ‎) 1D69F MATHEMATICAL MONOSPACE SMALL V -← (‎ 𝛎 ‎) 1D6CE MATHEMATICAL BOLD SMALL NU # →ν→ -← (‎ 𝜈 ‎) 1D708 MATHEMATICAL ITALIC SMALL NU # →ν→ -← (‎ 𝝂 ‎) 1D742 MATHEMATICAL BOLD ITALIC SMALL NU # →ν→ -← (‎ 𝝼 ‎) 1D77C MATHEMATICAL SANS-SERIF BOLD SMALL NU # →ν→ -← (‎ 𝞶 ‎) 1D7B6 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU # →ν→ - -# vi ⅵ - (‎ vi ‎) 0076 0069 LATIN SMALL LETTER V, LATIN SMALL LETTER I -← (‎ ⅵ ‎) 2175 SMALL ROMAN NUMERAL SIX - -# vii ⅶ - (‎ vii ‎) 0076 0069 0069 LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I -← (‎ ⅶ ‎) 2176 SMALL ROMAN NUMERAL SEVEN - -# viii ⅷ - (‎ viii ‎) 0076 0069 0069 0069 LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN SMALL LETTER I -← (‎ ⅷ ‎) 2177 SMALL ROMAN NUMERAL EIGHT - -# w ɯ ᴡ ԝ ա ѡ ꮃ 𑜊 𑜎 𑜏 𝐰 𝑤 𝒘 𝓌 𝔀 𝔴 𝕨 𝖜 𝗐 𝘄 𝘸 𝙬 𝚠 - (‎ w ‎) 0077 LATIN SMALL LETTER W -← (‎ ɯ ‎) 026F LATIN SMALL LETTER TURNED M -← (‎ ᴡ ‎) 1D21 LATIN LETTER SMALL CAPITAL W -← (‎ ԝ ‎) 051D CYRILLIC SMALL LETTER WE -← (‎ ա ‎) 0561 ARMENIAN SMALL LETTER AYB # →ɯ→ -← (‎ ѡ ‎) 0461 CYRILLIC SMALL LETTER OMEGA -← (‎ ꮃ ‎) AB83 CHEROKEE SMALL LETTER LA # →ᴡ→ -← (‎ 𑜊 ‎) 1170A AHOM LETTER JA -← (‎ 𑜎 ‎) 1170E AHOM LETTER LA -← (‎ 𑜏 ‎) 1170F AHOM LETTER SA -← (‎ 𝐰 ‎) 1D430 MATHEMATICAL BOLD SMALL W -← (‎ 𝑤 ‎) 1D464 MATHEMATICAL ITALIC SMALL W -← (‎ 𝒘 ‎) 1D498 MATHEMATICAL BOLD ITALIC SMALL W -← (‎ 𝓌 ‎) 1D4CC MATHEMATICAL SCRIPT SMALL W -← (‎ 𝔀 ‎) 1D500 MATHEMATICAL BOLD SCRIPT SMALL W -← (‎ 𝔴 ‎) 1D534 MATHEMATICAL FRAKTUR SMALL W -← (‎ 𝕨 ‎) 1D568 MATHEMATICAL DOUBLE-STRUCK SMALL W -← (‎ 𝖜 ‎) 1D59C MATHEMATICAL BOLD FRAKTUR SMALL W -← (‎ 𝗐 ‎) 1D5D0 MATHEMATICAL SANS-SERIF SMALL W -← (‎ 𝘄 ‎) 1D604 MATHEMATICAL SANS-SERIF BOLD SMALL W -← (‎ 𝘸 ‎) 1D638 MATHEMATICAL SANS-SERIF ITALIC SMALL W -← (‎ 𝙬 ‎) 1D66C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W -← (‎ 𝚠 ‎) 1D6A0 MATHEMATICAL MONOSPACE SMALL W - -# ẇ 𑓅 - (‎ ẇ ‎) 0077 0307 LATIN SMALL LETTER W, COMBINING DOT ABOVE -← (‎ 𑓅 ‎) 114C5 TIRHUTA GVANG - -# w̦ w̡ ꝡ - (‎ w̡ ‎) 0077 0321 LATIN SMALL LETTER W, COMBINING PALATALIZED HOOK BELOW -← (‎ w̦ ‎) 0077 0326 LATIN SMALL LETTER W, COMBINING COMMA BELOW -← (‎ ꝡ ‎) A761 LATIN SMALL LETTER VY - -# w҆҇ ѡ҆҇ ԝ҆҇ w҃ ѡ҃ ԝ҃ ѽ - (‎ w҃ ‎) 0077 0483 LATIN SMALL LETTER W, COMBINING CYRILLIC TITLO -← (‎ w҆҇ ‎) 0077 0486 0487 LATIN SMALL LETTER W, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # →ѡ҆҇→→ѽ→→ѡ҃→ -← (‎ ѡ҆҇ ‎) 0461 0486 0487 CYRILLIC SMALL LETTER OMEGA, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # →ѽ→→ѡ҃→ -← (‎ ԝ҆҇ ‎) 051D 0486 0487 CYRILLIC SMALL LETTER WE, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # →ѡ҆҇→→ѽ→→ѡ҃→ -← (‎ ѡ҃ ‎) 0461 0483 CYRILLIC SMALL LETTER OMEGA, COMBINING CYRILLIC TITLO -← (‎ ԝ҃ ‎) 051D 0483 CYRILLIC SMALL LETTER WE, COMBINING CYRILLIC TITLO # →ѡ҃→ -← (‎ ѽ ‎) 047D CYRILLIC SMALL LETTER OMEGA WITH TITLO # →ѡ҃→ - -# x х ᕁ ᕽ × ᙮ ⤫ ⤬ ⨯ ⅹ x 𝐱 𝑥 𝒙 𝓍 𝔁 𝔵 𝕩 𝖝 𝗑 𝘅 𝘹 𝙭 𝚡 - (‎ x ‎) 0078 LATIN SMALL LETTER X -← (‎ х ‎) 0445 CYRILLIC SMALL LETTER HA -← (‎ ᕁ ‎) 1541 CANADIAN SYLLABICS SAYISI YI # →᙮→ -← (‎ ᕽ ‎) 157D CANADIAN SYLLABICS HK # →ᕁ→→᙮→ -← (‎ × ‎) 00D7 MULTIPLICATION SIGN -← (‎ ᙮ ‎) 166E CANADIAN SYLLABICS FULL STOP -← (‎ ⤫ ‎) 292B RISING DIAGONAL CROSSING FALLING DIAGONAL -← (‎ ⤬ ‎) 292C FALLING DIAGONAL CROSSING RISING DIAGONAL -← (‎ ⨯ ‎) 2A2F VECTOR OR CROSS PRODUCT # →×→ -← (‎ ⅹ ‎) 2179 SMALL ROMAN NUMERAL TEN -← (‎ x ‎) FF58 FULLWIDTH LATIN SMALL LETTER X # →х→ -← (‎ 𝐱 ‎) 1D431 MATHEMATICAL BOLD SMALL X -← (‎ 𝑥 ‎) 1D465 MATHEMATICAL ITALIC SMALL X -← (‎ 𝒙 ‎) 1D499 MATHEMATICAL BOLD ITALIC SMALL X -← (‎ 𝓍 ‎) 1D4CD MATHEMATICAL SCRIPT SMALL X -← (‎ 𝔁 ‎) 1D501 MATHEMATICAL BOLD SCRIPT SMALL X -← (‎ 𝔵 ‎) 1D535 MATHEMATICAL FRAKTUR SMALL X -← (‎ 𝕩 ‎) 1D569 MATHEMATICAL DOUBLE-STRUCK SMALL X -← (‎ 𝖝 ‎) 1D59D MATHEMATICAL BOLD FRAKTUR SMALL X -← (‎ 𝗑 ‎) 1D5D1 MATHEMATICAL SANS-SERIF SMALL X -← (‎ 𝘅 ‎) 1D605 MATHEMATICAL SANS-SERIF BOLD SMALL X -← (‎ 𝘹 ‎) 1D639 MATHEMATICAL SANS-SERIF ITALIC SMALL X -← (‎ 𝙭 ‎) 1D66D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X -← (‎ 𝚡 ‎) 1D6A1 MATHEMATICAL MONOSPACE SMALL X - -# xi ⅺ - (‎ xi ‎) 0078 0069 LATIN SMALL LETTER X, LATIN SMALL LETTER I -← (‎ ⅺ ‎) 217A SMALL ROMAN NUMERAL ELEVEN - -# xii ⅻ - (‎ xii ‎) 0078 0069 0069 LATIN SMALL LETTER X, LATIN SMALL LETTER I, LATIN SMALL LETTER I -← (‎ ⅻ ‎) 217B SMALL ROMAN NUMERAL TWELVE - -# ẋ ×̇ ⨰ - (‎ ẋ ‎) 0078 0307 LATIN SMALL LETTER X, COMBINING DOT ABOVE -← (‎ ×̇ ‎) 00D7 0307 MULTIPLICATION SIGN, COMBINING DOT ABOVE -← (‎ ⨰ ‎) 2A30 MULTIPLICATION SIGN WITH DOT ABOVE # →×̇→ - -# y ɣ ʏ ᶌ ỿ γ у ү ყ ꭚ 𑣜 y ℽ 𝐲 𝑦 𝒚 𝓎 𝔂 𝔶 𝕪 𝖞 𝗒 𝘆 𝘺 𝙮 𝚢 𝛄 𝛾 𝜸 𝝲 𝞬 - (‎ y ‎) 0079 LATIN SMALL LETTER Y -← (‎ ɣ ‎) 0263 LATIN SMALL LETTER GAMMA # →γ→ -← (‎ ʏ ‎) 028F LATIN LETTER SMALL CAPITAL Y # →ү→→γ→ -← (‎ ᶌ ‎) 1D8C LATIN SMALL LETTER V WITH PALATAL HOOK -← (‎ ỿ ‎) 1EFF LATIN SMALL LETTER Y WITH LOOP -← (‎ γ ‎) 03B3 GREEK SMALL LETTER GAMMA -← (‎ у ‎) 0443 CYRILLIC SMALL LETTER U -← (‎ ү ‎) 04AF CYRILLIC SMALL LETTER STRAIGHT U # →γ→ -← (‎ ყ ‎) 10E7 GEORGIAN LETTER QAR -← (‎ ꭚ ‎) AB5A LATIN SMALL LETTER Y WITH SHORT RIGHT LEG -← (‎ 𑣜 ‎) 118DC WARANG CITI SMALL LETTER HAR # →ɣ→→γ→ -← (‎ y ‎) FF59 FULLWIDTH LATIN SMALL LETTER Y # →у→ -← (‎ ℽ ‎) 213D DOUBLE-STRUCK SMALL GAMMA # →γ→ -← (‎ 𝐲 ‎) 1D432 MATHEMATICAL BOLD SMALL Y -← (‎ 𝑦 ‎) 1D466 MATHEMATICAL ITALIC SMALL Y -← (‎ 𝒚 ‎) 1D49A MATHEMATICAL BOLD ITALIC SMALL Y -← (‎ 𝓎 ‎) 1D4CE MATHEMATICAL SCRIPT SMALL Y -← (‎ 𝔂 ‎) 1D502 MATHEMATICAL BOLD SCRIPT SMALL Y -← (‎ 𝔶 ‎) 1D536 MATHEMATICAL FRAKTUR SMALL Y -← (‎ 𝕪 ‎) 1D56A MATHEMATICAL DOUBLE-STRUCK SMALL Y -← (‎ 𝖞 ‎) 1D59E MATHEMATICAL BOLD FRAKTUR SMALL Y -← (‎ 𝗒 ‎) 1D5D2 MATHEMATICAL SANS-SERIF SMALL Y -← (‎ 𝘆 ‎) 1D606 MATHEMATICAL SANS-SERIF BOLD SMALL Y -← (‎ 𝘺 ‎) 1D63A MATHEMATICAL SANS-SERIF ITALIC SMALL Y -← (‎ 𝙮 ‎) 1D66E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y -← (‎ 𝚢 ‎) 1D6A2 MATHEMATICAL MONOSPACE SMALL Y -← (‎ 𝛄 ‎) 1D6C4 MATHEMATICAL BOLD SMALL GAMMA # →γ→ -← (‎ 𝛾 ‎) 1D6FE MATHEMATICAL ITALIC SMALL GAMMA # →γ→ -← (‎ 𝜸 ‎) 1D738 MATHEMATICAL BOLD ITALIC SMALL GAMMA # →γ→ -← (‎ 𝝲 ‎) 1D772 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA # →γ→ -← (‎ 𝞬 ‎) 1D7AC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA # →γ→ - -# y̔ ƴ - (‎ y̔ ‎) 0079 0314 LATIN SMALL LETTER Y, COMBINING REVERSED COMMA ABOVE -← (‎ ƴ ‎) 01B4 LATIN SMALL LETTER Y WITH HOOK - -# y̵ у̵ ү̵ ɏ ұ - (‎ y̵ ‎) 0079 0335 LATIN SMALL LETTER Y, COMBINING SHORT STROKE OVERLAY -← (‎ у̵ ‎) 0443 0335 CYRILLIC SMALL LETTER U, COMBINING SHORT STROKE OVERLAY # →ү̵→ -← (‎ ү̵ ‎) 04AF 0335 CYRILLIC SMALL LETTER STRAIGHT U, COMBINING SHORT STROKE OVERLAY -← (‎ ɏ ‎) 024F LATIN SMALL LETTER Y WITH STROKE -← (‎ ұ ‎) 04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE # →ү̵→ - -# z ᴢ 𑣄 ꮓ 𝐳 𝑧 𝒛 𝓏 𝔃 𝔷 𝕫 𝖟 𝗓 𝘇 𝘻 𝙯 𝚣 - (‎ z ‎) 007A LATIN SMALL LETTER Z -← (‎ ᴢ ‎) 1D22 LATIN LETTER SMALL CAPITAL Z -← (‎ 𑣄 ‎) 118C4 WARANG CITI SMALL LETTER YA -← (‎ ꮓ ‎) AB93 CHEROKEE SMALL LETTER NO # →ᴢ→ -← (‎ 𝐳 ‎) 1D433 MATHEMATICAL BOLD SMALL Z -← (‎ 𝑧 ‎) 1D467 MATHEMATICAL ITALIC SMALL Z -← (‎ 𝒛 ‎) 1D49B MATHEMATICAL BOLD ITALIC SMALL Z -← (‎ 𝓏 ‎) 1D4CF MATHEMATICAL SCRIPT SMALL Z -← (‎ 𝔃 ‎) 1D503 MATHEMATICAL BOLD SCRIPT SMALL Z -← (‎ 𝔷 ‎) 1D537 MATHEMATICAL FRAKTUR SMALL Z -← (‎ 𝕫 ‎) 1D56B MATHEMATICAL DOUBLE-STRUCK SMALL Z -← (‎ 𝖟 ‎) 1D59F MATHEMATICAL BOLD FRAKTUR SMALL Z -← (‎ 𝗓 ‎) 1D5D3 MATHEMATICAL SANS-SERIF SMALL Z -← (‎ 𝘇 ‎) 1D607 MATHEMATICAL SANS-SERIF BOLD SMALL Z -← (‎ 𝘻 ‎) 1D63B MATHEMATICAL SANS-SERIF ITALIC SMALL Z -← (‎ 𝙯 ‎) 1D66F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z -← (‎ 𝚣 ‎) 1D6A3 MATHEMATICAL MONOSPACE SMALL Z - -# z̦ z̡ ȥ - (‎ z̡ ‎) 007A 0321 LATIN SMALL LETTER Z, COMBINING PALATALIZED HOOK BELOW -← (‎ z̦ ‎) 007A 0326 LATIN SMALL LETTER Z, COMBINING COMMA BELOW -← (‎ ȥ ‎) 0225 LATIN SMALL LETTER Z WITH HOOK - -# z̨ z̢ ʐ - (‎ z̢ ‎) 007A 0322 LATIN SMALL LETTER Z, COMBINING RETROFLEX HOOK BELOW -← (‎ z̨ ‎) 007A 0328 LATIN SMALL LETTER Z, COMBINING OGONEK -← (‎ ʐ ‎) 0290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK - -# z̴ ᵶ - (‎ z̴ ‎) 007A 0334 LATIN SMALL LETTER Z, COMBINING TILDE OVERLAY -← (‎ ᵶ ‎) 1D76 LATIN SMALL LETTER Z WITH MIDDLE TILDE - -# z̵ ƶ - (‎ z̵ ‎) 007A 0335 LATIN SMALL LETTER Z, COMBINING SHORT STROKE OVERLAY -← (‎ ƶ ‎) 01B6 LATIN SMALL LETTER Z WITH STROKE - -# { ❴ 𝄔 - (‎ { ‎) 007B LEFT CURLY BRACKET -← (‎ ❴ ‎) 2774 MEDIUM LEFT CURLY BRACKET ORNAMENT -← (‎ 𝄔 ‎) 1D114 MUSICAL SYMBOL BRACE - -# } ❵ - (‎ } ‎) 007D RIGHT CURLY BRACKET -← (‎ ❵ ‎) 2775 MEDIUM RIGHT CURLY BRACKET ORNAMENT - -# ~ ⁓ ∼ ˜ ῀ - (‎ ~ ‎) 007E TILDE -← (‎ ⁓ ‎) 2053 SWUNG DASH -← (‎ ∼ ‎) 223C TILDE OPERATOR -← (‎ ˜ ‎) 02DC SMALL TILDE -← (‎ ῀ ‎) 1FC0 GREEK PERISPOMENI # →˜→ - -# ~̇ ⁓̇ ∼̇ ⩪ ⸞ - (‎ ~̇ ‎) 007E 0307 TILDE, COMBINING DOT ABOVE -← (‎ ⁓̇ ‎) 2053 0307 SWUNG DASH, COMBINING DOT ABOVE -← (‎ ∼̇ ‎) 223C 0307 TILDE OPERATOR, COMBINING DOT ABOVE # →⁓̇→ -← (‎ ⩪ ‎) 2A6A TILDE OPERATOR WITH DOT ABOVE # →∼̇→→⁓̇→ -← (‎ ⸞ ‎) 2E1E TILDE WITH DOT ABOVE # →⩪→→∼̇→→⁓̇→ - -# ~̈ ⍨ - (‎ ~̈ ‎) 007E 0308 TILDE, COMBINING DIAERESIS -← (‎ ⍨ ‎) 2368 APL FUNCTIONAL SYMBOL TILDE DIAERESIS - -# ~̣ ⸟ - (‎ ~̣ ‎) 007E 0323 TILDE, COMBINING DOT BELOW -← (‎ ⸟ ‎) 2E1F TILDE WITH DOT BELOW - -# £ ₤ - (‎ £ ‎) 00A3 POUND SIGN -← (‎ ₤ ‎) 20A4 LIRA SIGN - -# © Ⓒ - (‎ © ‎) 00A9 COPYRIGHT SIGN -← (‎ Ⓒ ‎) 24B8 CIRCLED LATIN CAPITAL LETTER C - -# ® Ⓡ - (‎ ® ‎) 00AE REGISTERED SIGN -← (‎ Ⓡ ‎) 24C7 CIRCLED LATIN CAPITAL LETTER R - -# ˉ ▔ ¯ ‾ ﹉ ﹊ ﹋ ﹌  ̄ - (‎ ¯ ‎) 00AF MACRON -← (‎ ˉ ‎) 02C9 MODIFIER LETTER MACRON -← (‎ ▔ ‎) 2594 UPPER ONE EIGHTH BLOCK -← (‎ ‾ ‎) 203E OVERLINE -← (‎ ﹉ ‎) FE49 DASHED OVERLINE # →‾→ -← (‎ ﹊ ‎) FE4A CENTRELINE OVERLINE # →‾→ -← (‎ ﹋ ‎) FE4B WAVY OVERLINE # →‾→ -← (‎ ﹌ ‎) FE4C DOUBLE WAVY OVERLINE # →‾→ -← (‎  ̄ ‎) FFE3 FULLWIDTH MACRON # →‾→ - -# ˉb ¯b ъ - (‎ ¯b ‎) 00AF 0062 MACRON, LATIN SMALL LETTER B -← (‎ ˉb ‎) 02C9 0062 MODIFIER LETTER MACRON, LATIN SMALL LETTER B -← (‎ ъ ‎) 044A CYRILLIC SMALL LETTER HARD SIGN - -# ° ∘ ○ ◦ ⸰ ˚ - (‎ ° ‎) 00B0 DEGREE SIGN -← (‎ ∘ ‎) 2218 RING OPERATOR -← (‎ ○ ‎) 25CB WHITE CIRCLE # →◦→→∘→ -← (‎ ◦ ‎) 25E6 WHITE BULLET # →∘→ -← (‎ ⸰ ‎) 2E30 RING POINT # →∘→ -← (‎ ˚ ‎) 02DA RING ABOVE - -# °C ℃ - (‎ °C ‎) 00B0 0043 DEGREE SIGN, LATIN CAPITAL LETTER C -← (‎ ℃ ‎) 2103 DEGREE CELSIUS - -# °F ℉ - (‎ °F ‎) 00B0 0046 DEGREE SIGN, LATIN CAPITAL LETTER F -← (‎ ℉ ‎) 2109 DEGREE FAHRENHEIT - -# °̈ ∘̈ ◦̈ ⍤ - (‎ °̈ ‎) 00B0 0308 DEGREE SIGN, COMBINING DIAERESIS -← (‎ ∘̈ ‎) 2218 0308 RING OPERATOR, COMBINING DIAERESIS -← (‎ ◦̈ ‎) 25E6 0308 WHITE BULLET, COMBINING DIAERESIS # →∘̈→ -← (‎ ⍤ ‎) 2364 APL FUNCTIONAL SYMBOL JOT DIAERESIS # →◦̈→→∘̈→ - -# °̲ ∘̲ ○̲ ⍜ - (‎ °̲ ‎) 00B0 0332 DEGREE SIGN, COMBINING LOW LINE -← (‎ ∘̲ ‎) 2218 0332 RING OPERATOR, COMBINING LOW LINE -← (‎ ○̲ ‎) 25CB 0332 WHITE CIRCLE, COMBINING LOW LINE # →∘̲→ -← (‎ ⍜ ‎) 235C APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR # →○̲→→∘̲→ - -# μ µ 𝛍 𝜇 𝝁 𝝻 𝞵 - (‎ µ ‎) 00B5 MICRO SIGN -← (‎ μ ‎) 03BC GREEK SMALL LETTER MU -← (‎ 𝛍 ‎) 1D6CD MATHEMATICAL BOLD SMALL MU # →μ→ -← (‎ 𝜇 ‎) 1D707 MATHEMATICAL ITALIC SMALL MU # →μ→ -← (‎ 𝝁 ‎) 1D741 MATHEMATICAL BOLD ITALIC SMALL MU # →μ→ -← (‎ 𝝻 ‎) 1D77B MATHEMATICAL SANS-SERIF BOLD SMALL MU # →μ→ -← (‎ 𝞵 ‎) 1D7B5 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU # →μ→ - -# ¶ ⸿ - (‎ ¶ ‎) 00B6 PILCROW SIGN -← (‎ ⸿ ‎) 2E3F CAPITULUM - -# · ᐧ ‧ ・ ᛫ • ∙ ⋅ ⸱ 𐄁 ꞏ · ・ - (‎ · ‎) 00B7 MIDDLE DOT -← (‎ ᐧ ‎) 1427 CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ‧ ‎) 2027 HYPHENATION POINT -← (‎ ・ ‎) 30FB KATAKANA MIDDLE DOT # →•→ -← (‎ ᛫ ‎) 16EB RUNIC SINGLE PUNCTUATION -← (‎ • ‎) 2022 BULLET -← (‎ ∙ ‎) 2219 BULLET OPERATOR -← (‎ ⋅ ‎) 22C5 DOT OPERATOR -← (‎ ⸱ ‎) 2E31 WORD SEPARATOR MIDDLE DOT -← (‎ 𐄁 ‎) 10101 AEGEAN WORD SEPARATOR DOT -← (‎ ꞏ ‎) A78F LATIN LETTER SINOLOGICAL DOT -← (‎ · ‎) 0387 GREEK ANO TELEIA -← (‎ ・ ‎) FF65 HALFWIDTH KATAKANA MIDDLE DOT # →•→ - -# ·4 ᐧ4 ᔯ - (‎ ·4 ‎) 00B7 0034 MIDDLE DOT, DIGIT FOUR -← (‎ ᐧ4 ‎) 1427 0034 CANADIAN SYLLABICS FINAL MIDDLE DOT, DIGIT FOUR -← (‎ ᔯ ‎) 152F CANADIAN SYLLABICS YWE # →ᐧ4→ - -# ·< ᐧᐸ ᑄ - (‎ ·< ‎) 00B7 003C MIDDLE DOT, LESS-THAN SIGN -← (‎ ᐧᐸ ‎) 1427 1438 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PA -← (‎ ᑄ ‎) 1444 CANADIAN SYLLABICS PWA # →ᐧᐸ→ - -# ·> ᐧᐳ ᐷ ᑀ ⋗ - (‎ ·> ‎) 00B7 003E MIDDLE DOT, GREATER-THAN SIGN -← (‎ ᐧᐳ ‎) 1427 1433 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PO -← (‎ ᐷ ‎) 1437 CANADIAN SYLLABICS CARRIER HI # →ᑀ→→ᐧᐳ→ -← (‎ ᑀ ‎) 1440 CANADIAN SYLLABICS PWO # →ᐧᐳ→ -← (‎ ⋗ ‎) 22D7 GREATER-THAN WITH DOT # →ᑀ→→ᐧᐳ→ - -# ·J ·Ꭻ ·ᒍ ᐧᒍ ᒘ - (‎ ·J ‎) 00B7 004A MIDDLE DOT, LATIN CAPITAL LETTER J -← (‎ ·Ꭻ ‎) 00B7 13AB MIDDLE DOT, CHEROKEE LETTER GU # →ᐧᒍ→ -← (‎ ·ᒍ ‎) 00B7 148D MIDDLE DOT, CANADIAN SYLLABICS CO # →ᐧᒍ→ -← (‎ ᐧᒍ ‎) 1427 148D CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CO -← (‎ ᒘ ‎) 1498 CANADIAN SYLLABICS CWO # →ᐧᒍ→ - -# ·L ᐧL ·Ꮮ ·ᒪ ᐧᒪ ᒶ - (‎ ·L ‎) 00B7 004C MIDDLE DOT, LATIN CAPITAL LETTER L -← (‎ ᐧL ‎) 1427 004C CANADIAN SYLLABICS FINAL MIDDLE DOT, LATIN CAPITAL LETTER L -← (‎ ·Ꮮ ‎) 00B7 13DE MIDDLE DOT, CHEROKEE LETTER TLE # →·ᒪ→→ᐧᒪ→→ᒶ→→ᐧL→ -← (‎ ·ᒪ ‎) 00B7 14AA MIDDLE DOT, CANADIAN SYLLABICS MA # →ᐧᒪ→→ᒶ→→ᐧL→ -← (‎ ᐧᒪ ‎) 1427 14AA CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MA # →ᒶ→→ᐧL→ -← (‎ ᒶ ‎) 14B6 CANADIAN SYLLABICS MWA # →ᐧL→ - -# ·P ·Ꮲ ·ᑭ ᐧᑭ ᑶ - (‎ ·P ‎) 00B7 0050 MIDDLE DOT, LATIN CAPITAL LETTER P -← (‎ ·Ꮲ ‎) 00B7 13E2 MIDDLE DOT, CHEROKEE LETTER TLV # →ᐧᑭ→ -← (‎ ·ᑭ ‎) 00B7 146D MIDDLE DOT, CANADIAN SYLLABICS KI # →ᐧᑭ→ -← (‎ ᐧᑭ ‎) 1427 146D CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KI -← (‎ ᑶ ‎) 1476 CANADIAN SYLLABICS KWI # →ᐧᑭ→ - -# ·U ·ሀ ·ᑌ ᐧᑌ ᑗ - (‎ ·U ‎) 00B7 0055 MIDDLE DOT, LATIN CAPITAL LETTER U -← (‎ ·ሀ ‎) 00B7 1200 MIDDLE DOT, ETHIOPIC SYLLABLE HA # →·ᑌ→ -← (‎ ·ᑌ ‎) 00B7 144C MIDDLE DOT, CANADIAN SYLLABICS TE -← (‎ ᐧᑌ ‎) 1427 144C CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TE # →·ᑌ→ -← (‎ ᑗ ‎) 1457 CANADIAN SYLLABICS TWE # →ᐧᑌ→→·ᑌ→ - -# ·V ·٧ ·ᐯ ᐧᐯ ᐺ - (‎ ·V ‎) 00B7 0056 MIDDLE DOT, LATIN CAPITAL LETTER V -← (‎ ·٧ ‎) 00B7 0667 MIDDLE DOT, ARABIC-INDIC DIGIT SEVEN # →ᐧᐯ→ -← (‎ ·ᐯ ‎) 00B7 142F MIDDLE DOT, CANADIAN SYLLABICS PE # →ᐧᐯ→ -← (‎ ᐧᐯ ‎) 1427 142F CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PE -← (‎ ᐺ ‎) 143A CANADIAN SYLLABICS PWE # →ᐧᐯ→ - -# ·b ·ᑲ ᐧᑲ ᑾ - (‎ ·b ‎) 00B7 0062 MIDDLE DOT, LATIN SMALL LETTER B -← (‎ ·ᑲ ‎) 00B7 1472 MIDDLE DOT, CANADIAN SYLLABICS KA # →ᐧᑲ→ -← (‎ ᐧᑲ ‎) 1427 1472 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KA -← (‎ ᑾ ‎) 147E CANADIAN SYLLABICS KWA # →ᐧᑲ→ - -# ·ḃ ·ᑳ ᐧᑳ ᒀ - (‎ ·ḃ ‎) 00B7 0062 0307 MIDDLE DOT, LATIN SMALL LETTER B, COMBINING DOT ABOVE -← (‎ ·ᑳ ‎) 00B7 1473 MIDDLE DOT, CANADIAN SYLLABICS KAA # →ᐧᑳ→ -← (‎ ᐧᑳ ‎) 1427 1473 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KAA -← (‎ ᒀ ‎) 1480 CANADIAN SYLLABICS KWAA # →ᐧᑳ→ - -# ·d ·ᑯ ᐧᑯ ᑺ - (‎ ·d ‎) 00B7 0064 MIDDLE DOT, LATIN SMALL LETTER D -← (‎ ·ᑯ ‎) 00B7 146F MIDDLE DOT, CANADIAN SYLLABICS KO # →ᐧᑯ→ -← (‎ ᐧᑯ ‎) 1427 146F CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KO -← (‎ ᑺ ‎) 147A CANADIAN SYLLABICS KWO # →ᐧᑯ→ - -# ··· ⵈ ⋯ - (‎ ··· ‎) 00B7 00B7 00B7 MIDDLE DOT, MIDDLE DOT, MIDDLE DOT -← (‎ ⵈ ‎) 2D48 TIFINAGH LETTER TUAREG YAQ # →⋯→ -← (‎ ⋯ ‎) 22EF MIDLINE HORIZONTAL ELLIPSIS - -# ·Ʌ ·٨ ·ᐱ ᐧᐱ ᐼ - (‎ ·Ʌ ‎) 00B7 0245 MIDDLE DOT, LATIN CAPITAL LETTER TURNED V -← (‎ ·٨ ‎) 00B7 0668 MIDDLE DOT, ARABIC-INDIC DIGIT EIGHT # →·ᐱ→ -← (‎ ·ᐱ ‎) 00B7 1431 MIDDLE DOT, CANADIAN SYLLABICS PI -← (‎ ᐧᐱ ‎) 1427 1431 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PI # →·ᐱ→ -← (‎ ᐼ ‎) 143C CANADIAN SYLLABICS PWI # →ᐧᐱ→→·ᐱ→ - -# ·Γ ·Ꮁ ·ᒥ ᐧᒥ ᒮ - (‎ ·Γ ‎) 00B7 0393 MIDDLE DOT, GREEK CAPITAL LETTER GAMMA -← (‎ ·Ꮁ ‎) 00B7 13B1 MIDDLE DOT, CHEROKEE LETTER HU # →·ᒥ→ -← (‎ ·ᒥ ‎) 00B7 14A5 MIDDLE DOT, CANADIAN SYLLABICS MI -← (‎ ᐧᒥ ‎) 1427 14A5 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MI # →·ᒥ→ -← (‎ ᒮ ‎) 14AE CANADIAN SYLLABICS MWI # →ᐧᒥ→→·ᒥ→ - -# ·Δ ·ᐃ ᐧᐃ ᐎ - (‎ ·Δ ‎) 00B7 0394 MIDDLE DOT, GREEK CAPITAL LETTER DELTA -← (‎ ·ᐃ ‎) 00B7 1403 MIDDLE DOT, CANADIAN SYLLABICS I # →ᐧᐃ→ -← (‎ ᐧᐃ ‎) 1427 1403 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS I -← (‎ ᐎ ‎) 140E CANADIAN SYLLABICS WI # →ᐧᐃ→ - -# ·Ո ·በ ·ᑎ ᐧᑎ ᑙ - (‎ ·Ո ‎) 00B7 0548 MIDDLE DOT, ARMENIAN CAPITAL LETTER VO -← (‎ ·በ ‎) 00B7 1260 MIDDLE DOT, ETHIOPIC SYLLABLE BA # →·ᑎ→ -← (‎ ·ᑎ ‎) 00B7 144E MIDDLE DOT, CANADIAN SYLLABICS TI -← (‎ ᐧᑎ ‎) 1427 144E CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TI # →·ᑎ→ -← (‎ ᑙ ‎) 1459 CANADIAN SYLLABICS TWI # →ᐧᑎ→→·ᑎ→ - -# ·ᐁ ᐧᐁ ᐌ - (‎ ·ᐁ ‎) 00B7 1401 MIDDLE DOT, CANADIAN SYLLABICS E -← (‎ ᐧᐁ ‎) 1427 1401 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS E -← (‎ ᐌ ‎) 140C CANADIAN SYLLABICS WE # →ᐧᐁ→ - -# ·ᐄ ᐧᐄ ᐐ - (‎ ·ᐄ ‎) 00B7 1404 MIDDLE DOT, CANADIAN SYLLABICS II -← (‎ ᐧᐄ ‎) 1427 1404 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS II -← (‎ ᐐ ‎) 1410 CANADIAN SYLLABICS WII # →ᐧᐄ→ - -# ·ᐅ ᐧᐅ ᐒ - (‎ ·ᐅ ‎) 00B7 1405 MIDDLE DOT, CANADIAN SYLLABICS O -← (‎ ᐧᐅ ‎) 1427 1405 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS O -← (‎ ᐒ ‎) 1412 CANADIAN SYLLABICS WO # →ᐧᐅ→ - -# ·ᐆ ᐧᐆ ᐔ - (‎ ·ᐆ ‎) 00B7 1406 MIDDLE DOT, CANADIAN SYLLABICS OO -← (‎ ᐧᐆ ‎) 1427 1406 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS OO -← (‎ ᐔ ‎) 1414 CANADIAN SYLLABICS WOO # →ᐧᐆ→ - -# ·ᐊ ᐧᐊ ᐗ - (‎ ·ᐊ ‎) 00B7 140A MIDDLE DOT, CANADIAN SYLLABICS A -← (‎ ᐧᐊ ‎) 1427 140A CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS A -← (‎ ᐗ ‎) 1417 CANADIAN SYLLABICS WA # →ᐧᐊ→ - -# ·ᐋ ᐧᐋ ᐙ - (‎ ·ᐋ ‎) 00B7 140B MIDDLE DOT, CANADIAN SYLLABICS AA -← (‎ ᐧᐋ ‎) 1427 140B CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS AA -← (‎ ᐙ ‎) 1419 CANADIAN SYLLABICS WAA # →ᐧᐋ→ - -# ·ᐲ ᐧᐲ ᐾ - (‎ ·ᐲ ‎) 00B7 1432 MIDDLE DOT, CANADIAN SYLLABICS PII -← (‎ ᐧᐲ ‎) 1427 1432 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PII -← (‎ ᐾ ‎) 143E CANADIAN SYLLABICS PWII # →ᐧᐲ→ - -# ·ᐴ ᐧᐴ ᑂ - (‎ ·ᐴ ‎) 00B7 1434 MIDDLE DOT, CANADIAN SYLLABICS POO -← (‎ ᐧᐴ ‎) 1427 1434 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS POO -← (‎ ᑂ ‎) 1442 CANADIAN SYLLABICS PWOO # →ᐧᐴ→ - -# ·ᐹ ᐧᐹ ᑆ - (‎ ·ᐹ ‎) 00B7 1439 MIDDLE DOT, CANADIAN SYLLABICS PAA -← (‎ ᐧᐹ ‎) 1427 1439 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS PAA -← (‎ ᑆ ‎) 1446 CANADIAN SYLLABICS PWAA # →ᐧᐹ→ - -# ·ᑏ ᐧᑏ ᑛ - (‎ ·ᑏ ‎) 00B7 144F MIDDLE DOT, CANADIAN SYLLABICS TII -← (‎ ᐧᑏ ‎) 1427 144F CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TII -← (‎ ᑛ ‎) 145B CANADIAN SYLLABICS TWII # →ᐧᑏ→ - -# ·ᑐ ᐧᑐ ᑔ ᑝ - (‎ ·ᑐ ‎) 00B7 1450 MIDDLE DOT, CANADIAN SYLLABICS TO -← (‎ ᐧᑐ ‎) 1427 1450 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TO -← (‎ ᑔ ‎) 1454 CANADIAN SYLLABICS CARRIER DI # →ᑝ→→ᐧᑐ→ -← (‎ ᑝ ‎) 145D CANADIAN SYLLABICS TWO # →ᐧᑐ→ - -# ·ᑑ ᐧᑑ ᑟ - (‎ ·ᑑ ‎) 00B7 1451 MIDDLE DOT, CANADIAN SYLLABICS TOO -← (‎ ᐧᑑ ‎) 1427 1451 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TOO -← (‎ ᑟ ‎) 145F CANADIAN SYLLABICS TWOO # →ᐧᑑ→ - -# ·ᑕ ᐧᑕ ᑡ - (‎ ·ᑕ ‎) 00B7 1455 MIDDLE DOT, CANADIAN SYLLABICS TA -← (‎ ᐧᑕ ‎) 1427 1455 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TA -← (‎ ᑡ ‎) 1461 CANADIAN SYLLABICS TWA # →ᐧᑕ→ - -# ·ᑖ ᐧᑖ ᑣ - (‎ ·ᑖ ‎) 00B7 1456 MIDDLE DOT, CANADIAN SYLLABICS TAA -← (‎ ᐧᑖ ‎) 1427 1456 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS TAA -← (‎ ᑣ ‎) 1463 CANADIAN SYLLABICS TWAA # →ᐧᑖ→ - -# ·ᑫ ᐧᑫ ᑴ - (‎ ·ᑫ ‎) 00B7 146B MIDDLE DOT, CANADIAN SYLLABICS KE -← (‎ ᐧᑫ ‎) 1427 146B CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KE -← (‎ ᑴ ‎) 1474 CANADIAN SYLLABICS KWE # →ᐧᑫ→ - -# ·ᑮ ᐧᑮ ᑸ - (‎ ·ᑮ ‎) 00B7 146E MIDDLE DOT, CANADIAN SYLLABICS KII -← (‎ ᐧᑮ ‎) 1427 146E CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KII -← (‎ ᑸ ‎) 1478 CANADIAN SYLLABICS KWII # →ᐧᑮ→ - -# ·ᑰ ᐧᑰ ᑼ - (‎ ·ᑰ ‎) 00B7 1470 MIDDLE DOT, CANADIAN SYLLABICS KOO -← (‎ ᐧᑰ ‎) 1427 1470 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KOO -← (‎ ᑼ ‎) 147C CANADIAN SYLLABICS KWOO # →ᐧᑰ→ - -# ·ᒉ ᐧᒉ ᒒ - (‎ ·ᒉ ‎) 00B7 1489 MIDDLE DOT, CANADIAN SYLLABICS CE -← (‎ ᐧᒉ ‎) 1427 1489 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CE -← (‎ ᒒ ‎) 1492 CANADIAN SYLLABICS CWE # →ᐧᒉ→ - -# ·ᒋ ᐧᒋ ᒔ - (‎ ·ᒋ ‎) 00B7 148B MIDDLE DOT, CANADIAN SYLLABICS CI -← (‎ ᐧᒋ ‎) 1427 148B CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CI -← (‎ ᒔ ‎) 1494 CANADIAN SYLLABICS CWI # →ᐧᒋ→ - -# ·ᒌ ᐧᒌ ᒖ - (‎ ·ᒌ ‎) 00B7 148C MIDDLE DOT, CANADIAN SYLLABICS CII -← (‎ ᐧᒌ ‎) 1427 148C CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CII -← (‎ ᒖ ‎) 1496 CANADIAN SYLLABICS CWII # →ᐧᒌ→ - -# ·ᒎ ᐧᒎ ᒚ - (‎ ·ᒎ ‎) 00B7 148E MIDDLE DOT, CANADIAN SYLLABICS COO -← (‎ ᐧᒎ ‎) 1427 148E CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS COO -← (‎ ᒚ ‎) 149A CANADIAN SYLLABICS CWOO # →ᐧᒎ→ - -# ·ᒐ ᐧᒐ ᒜ - (‎ ·ᒐ ‎) 00B7 1490 MIDDLE DOT, CANADIAN SYLLABICS CA -← (‎ ᐧᒐ ‎) 1427 1490 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CA -← (‎ ᒜ ‎) 149C CANADIAN SYLLABICS CWA # →ᐧᒐ→ - -# ·ᒑ ᐧᒑ ᒞ - (‎ ·ᒑ ‎) 00B7 1491 MIDDLE DOT, CANADIAN SYLLABICS CAA -← (‎ ᐧᒑ ‎) 1427 1491 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS CAA -← (‎ ᒞ ‎) 149E CANADIAN SYLLABICS CWAA # →ᐧᒑ→ - -# ·ᒣ ᐧᒣ ᒬ - (‎ ·ᒣ ‎) 00B7 14A3 MIDDLE DOT, CANADIAN SYLLABICS ME -← (‎ ᐧᒣ ‎) 1427 14A3 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS ME -← (‎ ᒬ ‎) 14AC CANADIAN SYLLABICS MWE # →ᐧᒣ→ - -# ·ᒦ ᐧᒦ ᒰ - (‎ ·ᒦ ‎) 00B7 14A6 MIDDLE DOT, CANADIAN SYLLABICS MII -← (‎ ᐧᒦ ‎) 1427 14A6 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MII -← (‎ ᒰ ‎) 14B0 CANADIAN SYLLABICS MWII # →ᐧᒦ→ - -# ·ᒧ ᐧᒧ ᒲ - (‎ ·ᒧ ‎) 00B7 14A7 MIDDLE DOT, CANADIAN SYLLABICS MO -← (‎ ᐧᒧ ‎) 1427 14A7 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MO -← (‎ ᒲ ‎) 14B2 CANADIAN SYLLABICS MWO # →ᐧᒧ→ - -# ·ᒨ ᐧᒨ ᒴ - (‎ ·ᒨ ‎) 00B7 14A8 MIDDLE DOT, CANADIAN SYLLABICS MOO -← (‎ ᐧᒨ ‎) 1427 14A8 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MOO -← (‎ ᒴ ‎) 14B4 CANADIAN SYLLABICS MWOO # →ᐧᒨ→ - -# ·ᒫ ᐧᒫ ᒸ - (‎ ·ᒫ ‎) 00B7 14AB MIDDLE DOT, CANADIAN SYLLABICS MAA -← (‎ ᐧᒫ ‎) 1427 14AB CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS MAA -← (‎ ᒸ ‎) 14B8 CANADIAN SYLLABICS MWAA # →ᐧᒫ→ - -# ·ᓀ ᐧᓀ ᓉ - (‎ ·ᓀ ‎) 00B7 14C0 MIDDLE DOT, CANADIAN SYLLABICS NE -← (‎ ᐧᓀ ‎) 1427 14C0 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NE -← (‎ ᓉ ‎) 14C9 CANADIAN SYLLABICS NWE # →ᐧᓀ→ - -# ·ᓂ ᐧᓂ ᣆ - (‎ ·ᓂ ‎) 00B7 14C2 MIDDLE DOT, CANADIAN SYLLABICS NI -← (‎ ᐧᓂ ‎) 1427 14C2 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NI -← (‎ ᣆ ‎) 18C6 CANADIAN SYLLABICS NWI # →ᐧᓂ→ - -# ·ᓃ ᐧᓃ ᣈ - (‎ ·ᓃ ‎) 00B7 14C3 MIDDLE DOT, CANADIAN SYLLABICS NII -← (‎ ᐧᓃ ‎) 1427 14C3 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NII -← (‎ ᣈ ‎) 18C8 CANADIAN SYLLABICS NWII # →ᐧᓃ→ - -# ·ᓄ ᐧᓄ ᣊ - (‎ ·ᓄ ‎) 00B7 14C4 MIDDLE DOT, CANADIAN SYLLABICS NO -← (‎ ᐧᓄ ‎) 1427 14C4 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NO -← (‎ ᣊ ‎) 18CA CANADIAN SYLLABICS NWO # →ᐧᓄ→ - -# ·ᓅ ᐧᓅ ᣌ - (‎ ·ᓅ ‎) 00B7 14C5 MIDDLE DOT, CANADIAN SYLLABICS NOO -← (‎ ᐧᓅ ‎) 1427 14C5 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NOO -← (‎ ᣌ ‎) 18CC CANADIAN SYLLABICS NWOO # →ᐧᓅ→ - -# ·ᓇ ᐧᓇ ᓋ - (‎ ·ᓇ ‎) 00B7 14C7 MIDDLE DOT, CANADIAN SYLLABICS NA -← (‎ ᐧᓇ ‎) 1427 14C7 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NA -← (‎ ᓋ ‎) 14CB CANADIAN SYLLABICS NWA # →ᐧᓇ→ - -# ·ᓈ ᐧᓈ ᓍ - (‎ ·ᓈ ‎) 00B7 14C8 MIDDLE DOT, CANADIAN SYLLABICS NAA -← (‎ ᐧᓈ ‎) 1427 14C8 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS NAA -← (‎ ᓍ ‎) 14CD CANADIAN SYLLABICS NWAA # →ᐧᓈ→ - -# ·ᓓ ᐧᓓ ᓜ - (‎ ·ᓓ ‎) 00B7 14D3 MIDDLE DOT, CANADIAN SYLLABICS LE -← (‎ ᐧᓓ ‎) 1427 14D3 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LE -← (‎ ᓜ ‎) 14DC CANADIAN SYLLABICS LWE # →ᐧᓓ→ - -# ·ᓕ ᐧᓕ ᓞ - (‎ ·ᓕ ‎) 00B7 14D5 MIDDLE DOT, CANADIAN SYLLABICS LI -← (‎ ᐧᓕ ‎) 1427 14D5 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LI -← (‎ ᓞ ‎) 14DE CANADIAN SYLLABICS LWI # →ᐧᓕ→ - -# ·ᓖ ᐧᓖ ᓠ - (‎ ·ᓖ ‎) 00B7 14D6 MIDDLE DOT, CANADIAN SYLLABICS LII -← (‎ ᐧᓖ ‎) 1427 14D6 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LII -← (‎ ᓠ ‎) 14E0 CANADIAN SYLLABICS LWII # →ᐧᓖ→ - -# ·ᓗ ᐧᓗ ᓢ - (‎ ·ᓗ ‎) 00B7 14D7 MIDDLE DOT, CANADIAN SYLLABICS LO -← (‎ ᐧᓗ ‎) 1427 14D7 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LO -← (‎ ᓢ ‎) 14E2 CANADIAN SYLLABICS LWO # →ᐧᓗ→ - -# ·ᓘ ᐧᓘ ᓤ - (‎ ·ᓘ ‎) 00B7 14D8 MIDDLE DOT, CANADIAN SYLLABICS LOO -← (‎ ᐧᓘ ‎) 1427 14D8 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LOO -← (‎ ᓤ ‎) 14E4 CANADIAN SYLLABICS LWOO # →ᐧᓘ→ - -# ·ᓚ ᐧᓚ ᓦ - (‎ ·ᓚ ‎) 00B7 14DA MIDDLE DOT, CANADIAN SYLLABICS LA -← (‎ ᐧᓚ ‎) 1427 14DA CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LA -← (‎ ᓦ ‎) 14E6 CANADIAN SYLLABICS LWA # →ᐧᓚ→ - -# ·ᓛ ᐧᓛ ᓨ - (‎ ·ᓛ ‎) 00B7 14DB MIDDLE DOT, CANADIAN SYLLABICS LAA -← (‎ ᐧᓛ ‎) 1427 14DB CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS LAA -← (‎ ᓨ ‎) 14E8 CANADIAN SYLLABICS LWAA # →ᐧᓛ→ - -# ·ᓭ ᐧᓭ ᓶ - (‎ ·ᓭ ‎) 00B7 14ED MIDDLE DOT, CANADIAN SYLLABICS SE -← (‎ ᐧᓭ ‎) 1427 14ED CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SE -← (‎ ᓶ ‎) 14F6 CANADIAN SYLLABICS SWE # →ᐧᓭ→ - -# ·ᓯ ᐧᓯ ᓸ - (‎ ·ᓯ ‎) 00B7 14EF MIDDLE DOT, CANADIAN SYLLABICS SI -← (‎ ᐧᓯ ‎) 1427 14EF CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SI -← (‎ ᓸ ‎) 14F8 CANADIAN SYLLABICS SWI # →ᐧᓯ→ - -# ·ᓰ ᐧᓰ ᓺ - (‎ ·ᓰ ‎) 00B7 14F0 MIDDLE DOT, CANADIAN SYLLABICS SII -← (‎ ᐧᓰ ‎) 1427 14F0 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SII -← (‎ ᓺ ‎) 14FA CANADIAN SYLLABICS SWII # →ᐧᓰ→ - -# ·ᓱ ᐧᓱ ᓼ - (‎ ·ᓱ ‎) 00B7 14F1 MIDDLE DOT, CANADIAN SYLLABICS SO -← (‎ ᐧᓱ ‎) 1427 14F1 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SO -← (‎ ᓼ ‎) 14FC CANADIAN SYLLABICS SWO # →ᐧᓱ→ - -# ·ᓲ ᐧᓲ ᓾ - (‎ ·ᓲ ‎) 00B7 14F2 MIDDLE DOT, CANADIAN SYLLABICS SOO -← (‎ ᐧᓲ ‎) 1427 14F2 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SOO -← (‎ ᓾ ‎) 14FE CANADIAN SYLLABICS SWOO # →ᐧᓲ→ - -# ·ᓴ ᐧᓴ ᔀ - (‎ ·ᓴ ‎) 00B7 14F4 MIDDLE DOT, CANADIAN SYLLABICS SA -← (‎ ᐧᓴ ‎) 1427 14F4 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SA -← (‎ ᔀ ‎) 1500 CANADIAN SYLLABICS SWA # →ᐧᓴ→ - -# ·ᓵ ᐧᓵ ᔂ - (‎ ·ᓵ ‎) 00B7 14F5 MIDDLE DOT, CANADIAN SYLLABICS SAA -← (‎ ᐧᓵ ‎) 1427 14F5 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SAA -← (‎ ᔂ ‎) 1502 CANADIAN SYLLABICS SWAA # →ᐧᓵ→ - -# ·ᔐ ᐧᔐ ᔗ - (‎ ·ᔐ ‎) 00B7 1510 MIDDLE DOT, CANADIAN SYLLABICS SHE -← (‎ ᐧᔐ ‎) 1427 1510 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHE -← (‎ ᔗ ‎) 1517 CANADIAN SYLLABICS SHWE # →ᐧᔐ→ - -# ·ᔑ ᐧᔑ ᔙ - (‎ ·ᔑ ‎) 00B7 1511 MIDDLE DOT, CANADIAN SYLLABICS SHI -← (‎ ᐧᔑ ‎) 1427 1511 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHI -← (‎ ᔙ ‎) 1519 CANADIAN SYLLABICS SHWI # →ᐧᔑ→ - -# ·ᔒ ᐧᔒ ᔛ - (‎ ·ᔒ ‎) 00B7 1512 MIDDLE DOT, CANADIAN SYLLABICS SHII -← (‎ ᐧᔒ ‎) 1427 1512 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHII -← (‎ ᔛ ‎) 151B CANADIAN SYLLABICS SHWII # →ᐧᔒ→ - -# ·ᔓ ᐧᔓ ᔝ - (‎ ·ᔓ ‎) 00B7 1513 MIDDLE DOT, CANADIAN SYLLABICS SHO -← (‎ ᐧᔓ ‎) 1427 1513 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHO -← (‎ ᔝ ‎) 151D CANADIAN SYLLABICS SHWO # →ᐧᔓ→ - -# ·ᔔ ᐧᔔ ᔟ - (‎ ·ᔔ ‎) 00B7 1514 MIDDLE DOT, CANADIAN SYLLABICS SHOO -← (‎ ᐧᔔ ‎) 1427 1514 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHOO -← (‎ ᔟ ‎) 151F CANADIAN SYLLABICS SHWOO # →ᐧᔔ→ - -# ·ᔕ ᐧᔕ ᔡ - (‎ ·ᔕ ‎) 00B7 1515 MIDDLE DOT, CANADIAN SYLLABICS SHA -← (‎ ᐧᔕ ‎) 1427 1515 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHA -← (‎ ᔡ ‎) 1521 CANADIAN SYLLABICS SHWA # →ᐧᔕ→ - -# ·ᔖ ᐧᔖ ᔣ - (‎ ·ᔖ ‎) 00B7 1516 MIDDLE DOT, CANADIAN SYLLABICS SHAA -← (‎ ᐧᔖ ‎) 1427 1516 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHAA -← (‎ ᔣ ‎) 1523 CANADIAN SYLLABICS SHWAA # →ᐧᔖ→ - -# ·ᔨ ᐧᔨ ᔱ - (‎ ·ᔨ ‎) 00B7 1528 MIDDLE DOT, CANADIAN SYLLABICS YI -← (‎ ᐧᔨ ‎) 1427 1528 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YI -← (‎ ᔱ ‎) 1531 CANADIAN SYLLABICS YWI # →ᐧᔨ→ - -# ·ᔩ ᐧᔩ ᔳ - (‎ ·ᔩ ‎) 00B7 1529 MIDDLE DOT, CANADIAN SYLLABICS YII -← (‎ ᐧᔩ ‎) 1427 1529 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YII -← (‎ ᔳ ‎) 1533 CANADIAN SYLLABICS YWII # →ᐧᔩ→ - -# ·ᔪ ᐧᔪ ᔵ - (‎ ·ᔪ ‎) 00B7 152A MIDDLE DOT, CANADIAN SYLLABICS YO -← (‎ ᐧᔪ ‎) 1427 152A CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YO -← (‎ ᔵ ‎) 1535 CANADIAN SYLLABICS YWO # →ᐧᔪ→ - -# ·ᔫ ᐧᔫ ᔷ - (‎ ·ᔫ ‎) 00B7 152B MIDDLE DOT, CANADIAN SYLLABICS YOO -← (‎ ᐧᔫ ‎) 1427 152B CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YOO -← (‎ ᔷ ‎) 1537 CANADIAN SYLLABICS YWOO # →ᐧᔫ→ - -# ·ᔭ ᐧᔭ ᔹ - (‎ ·ᔭ ‎) 00B7 152D MIDDLE DOT, CANADIAN SYLLABICS YA -← (‎ ᐧᔭ ‎) 1427 152D CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YA -← (‎ ᔹ ‎) 1539 CANADIAN SYLLABICS YWA # →ᐧᔭ→ - -# ·ᔮ ᐧᔮ ᔻ - (‎ ·ᔮ ‎) 00B7 152E MIDDLE DOT, CANADIAN SYLLABICS YAA -← (‎ ᐧᔮ ‎) 1427 152E CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS YAA -← (‎ ᔻ ‎) 153B CANADIAN SYLLABICS YWAA # →ᐧᔮ→ - -# ·ᕃ ᐧᕃ ᣎ - (‎ ·ᕃ ‎) 00B7 1543 MIDDLE DOT, CANADIAN SYLLABICS R-CREE RE -← (‎ ᐧᕃ ‎) 1427 1543 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS R-CREE RE -← (‎ ᣎ ‎) 18CE CANADIAN SYLLABICS RWEE # →ᐧᕃ→ - -# ·ᕆ ᐧᕆ ᣏ - (‎ ·ᕆ ‎) 00B7 1546 MIDDLE DOT, CANADIAN SYLLABICS RI -← (‎ ᐧᕆ ‎) 1427 1546 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS RI -← (‎ ᣏ ‎) 18CF CANADIAN SYLLABICS RWI # →ᐧᕆ→ - -# ·ᕇ ᐧᕇ ᣐ - (‎ ·ᕇ ‎) 00B7 1547 MIDDLE DOT, CANADIAN SYLLABICS RII -← (‎ ᐧᕇ ‎) 1427 1547 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS RII -← (‎ ᣐ ‎) 18D0 CANADIAN SYLLABICS RWII # →ᐧᕇ→ - -# ·ᕈ ᐧᕈ ᣑ - (‎ ·ᕈ ‎) 00B7 1548 MIDDLE DOT, CANADIAN SYLLABICS RO -← (‎ ᐧᕈ ‎) 1427 1548 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS RO -← (‎ ᣑ ‎) 18D1 CANADIAN SYLLABICS RWO # →ᐧᕈ→ - -# ·ᕉ ᐧᕉ ᣒ - (‎ ·ᕉ ‎) 00B7 1549 MIDDLE DOT, CANADIAN SYLLABICS ROO -← (‎ ᐧᕉ ‎) 1427 1549 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS ROO -← (‎ ᣒ ‎) 18D2 CANADIAN SYLLABICS RWOO # →ᐧᕉ→ - -# ·ᕋ ᐧᕋ ᣓ - (‎ ·ᕋ ‎) 00B7 154B MIDDLE DOT, CANADIAN SYLLABICS RA -← (‎ ᐧᕋ ‎) 1427 154B CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS RA -← (‎ ᣓ ‎) 18D3 CANADIAN SYLLABICS RWA # →ᐧᕋ→ - -# ·ᕌ ᐧᕌ ᕎ - (‎ ·ᕌ ‎) 00B7 154C MIDDLE DOT, CANADIAN SYLLABICS RAA -← (‎ ᐧᕌ ‎) 1427 154C CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS RAA -← (‎ ᕎ ‎) 154E CANADIAN SYLLABICS RWAA # →ᐧᕌ→ - -# ·ᕚ ᐧᕚ ᕛ - (‎ ·ᕚ ‎) 00B7 155A MIDDLE DOT, CANADIAN SYLLABICS FAA -← (‎ ᐧᕚ ‎) 1427 155A CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS FAA -← (‎ ᕛ ‎) 155B CANADIAN SYLLABICS FWAA # →ᐧᕚ→ - -# ·ᕧ ᐧᕧ ᕨ - (‎ ·ᕧ ‎) 00B7 1567 MIDDLE DOT, CANADIAN SYLLABICS THAA -← (‎ ᐧᕧ ‎) 1427 1567 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS THAA -← (‎ ᕨ ‎) 1568 CANADIAN SYLLABICS THWAA # →ᐧᕧ→ - -# ·ᢱ ᐧᢱ ᢳ - (‎ ·ᢱ ‎) 00B7 18B1 MIDDLE DOT, CANADIAN SYLLABICS AY -← (‎ ᐧᢱ ‎) 1427 18B1 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS AY -← (‎ ᢳ ‎) 18B3 CANADIAN SYLLABICS WAY # →ᐧᢱ→ - -# ·ᢴ ᐧᢴ ᢶ - (‎ ·ᢴ ‎) 00B7 18B4 MIDDLE DOT, CANADIAN SYLLABICS POY -← (‎ ᐧᢴ ‎) 1427 18B4 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS POY -← (‎ ᢶ ‎) 18B6 CANADIAN SYLLABICS PWOY # →ᐧᢴ→ - -# ·ᢸ ᐧᢸ ᢹ - (‎ ·ᢸ ‎) 00B7 18B8 MIDDLE DOT, CANADIAN SYLLABICS KAY -← (‎ ᐧᢸ ‎) 1427 18B8 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS KAY -← (‎ ᢹ ‎) 18B9 CANADIAN SYLLABICS KWAY # →ᐧᢸ→ - -# ·ᣀ ᐧᣀ ᣂ - (‎ ·ᣀ ‎) 00B7 18C0 MIDDLE DOT, CANADIAN SYLLABICS SHOY -← (‎ ᐧᣀ ‎) 1427 18C0 CANADIAN SYLLABICS FINAL MIDDLE DOT, CANADIAN SYLLABICS SHOY -← (‎ ᣂ ‎) 18C2 CANADIAN SYLLABICS SHWOY # →ᐧᣀ→ - -# º ᵒ ⁰ - (‎ º ‎) 00BA MASCULINE ORDINAL INDICATOR -← (‎ ᵒ ‎) 1D52 MODIFIER LETTER SMALL O # →⁰→ -← (‎ ⁰ ‎) 2070 SUPERSCRIPT ZERO - -# º/₀₀ ⁰/₀₀ ؉ ‰ - (‎ º/₀₀ ‎) 00BA 002F 2080 2080 MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO -← (‎ ⁰/₀₀ ‎) 2070 002F 2080 2080 SUPERSCRIPT ZERO, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO -← (‎ ؉ ‎) 0609 ARABIC-INDIC PER MILLE SIGN # →‰→→⁰/₀₀→ -← (‎ ‰ ‎) 2030 PER MILLE SIGN # →⁰/₀₀→ - -# º/₀₀₀ ⁰/₀₀₀ ؊ ‱ - (‎ º/₀₀₀ ‎) 00BA 002F 2080 2080 2080 MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO, SUBSCRIPT ZERO -← (‎ ⁰/₀₀₀ ‎) 2070 002F 2080 2080 2080 SUPERSCRIPT ZERO, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO, SUBSCRIPT ZERO -← (‎ ؊ ‎) 060A ARABIC-INDIC PER TEN THOUSAND SIGN # →‱→→⁰/₀₀₀→ -← (‎ ‱ ‎) 2031 PER TEN THOUSAND SIGN # →⁰/₀₀₀→ - -# Å Ȧ - (‎ Å ‎) 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE -← (‎ Ȧ ‎) 0226 LATIN CAPITAL LETTER A WITH DOT ABOVE - -# Ö Ő - (‎ Ö ‎) 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS -← (‎ Ő ‎) 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - -# Þ Ϸ 𐓄 - (‎ Þ ‎) 00DE LATIN CAPITAL LETTER THORN -← (‎ Ϸ ‎) 03F7 GREEK CAPITAL LETTER SHO -← (‎ 𐓄 ‎) 104C4 OSAGE CAPITAL LETTER PA - -# ß β Ᏸ ꞵ ϐ 𝛃 𝛽 𝜷 𝝱 𝞫 - (‎ ß ‎) 00DF LATIN SMALL LETTER SHARP S -← (‎ β ‎) 03B2 GREEK SMALL LETTER BETA -← (‎ Ᏸ ‎) 13F0 CHEROKEE LETTER YE # →β→ -← (‎ ꞵ ‎) A7B5 LATIN SMALL LETTER BETA # →β→ -← (‎ ϐ ‎) 03D0 GREEK BETA SYMBOL # →β→ -← (‎ 𝛃 ‎) 1D6C3 MATHEMATICAL BOLD SMALL BETA # →β→ -← (‎ 𝛽 ‎) 1D6FD MATHEMATICAL ITALIC SMALL BETA # →β→ -← (‎ 𝜷 ‎) 1D737 MATHEMATICAL BOLD ITALIC SMALL BETA # →β→ -← (‎ 𝝱 ‎) 1D771 MATHEMATICAL SANS-SERIF BOLD SMALL BETA # →β→ -← (‎ 𝞫 ‎) 1D7AB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA # →β→ - -# å ȧ - (‎ å ‎) 00E5 LATIN SMALL LETTER A WITH RING ABOVE -← (‎ ȧ ‎) 0227 LATIN SMALL LETTER A WITH DOT ABOVE - -# ∂̵ ð 𞣍 - (‎ ð ‎) 00F0 LATIN SMALL LETTER ETH -← (‎ ∂̵ ‎) 2202 0335 PARTIAL DIFFERENTIAL, COMBINING SHORT STROKE OVERLAY -← (‎ 𞣍 ‎) 1E8CD MENDE KIKAKUI DIGIT SEVEN - -# ة ۃ ⍥ ö ﺓ ﺔ - (‎ ö ‎) 00F6 LATIN SMALL LETTER O WITH DIAERESIS -← (‎ ة ‎) 0629 ARABIC LETTER TEH MARBUTA -← (‎ ۃ ‎) 06C3 ARABIC LETTER TEH MARBUTA GOAL -← (‎ ⍥ ‎) 2365 APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS -← (‎ ﺓ ‎) FE93 ARABIC LETTER TEH MARBUTA ISOLATED FORM # →‎ة‎→ -← (‎ ﺔ ‎) FE94 ARABIC LETTER TEH MARBUTA FINAL FORM # →‎ة‎→ - -# ÷ ➗ - (‎ ÷ ‎) 00F7 DIVISION SIGN -← (‎ ➗ ‎) 2797 HEAVY DIVISION SIGN - -# þ ƿ ϸ - (‎ þ ‎) 00FE LATIN SMALL LETTER THORN -← (‎ ƿ ‎) 01BF LATIN LETTER WYNN -← (‎ ϸ ‎) 03F8 GREEK SMALL LETTER SHO - -# Ă Ǎ - (‎ Ă ‎) 0102 LATIN CAPITAL LETTER A WITH BREVE -← (‎ Ǎ ‎) 01CD LATIN CAPITAL LETTER A WITH CARON - -# ă ǎ - (‎ ă ‎) 0103 LATIN SMALL LETTER A WITH BREVE -← (‎ ǎ ‎) 01CE LATIN SMALL LETTER A WITH CARON - -# Ĕ Ě - (‎ Ĕ ‎) 0114 LATIN CAPITAL LETTER E WITH BREVE -← (‎ Ě ‎) 011A LATIN CAPITAL LETTER E WITH CARON - -# ĕ ě - (‎ ĕ ‎) 0115 LATIN SMALL LETTER E WITH BREVE -← (‎ ě ‎) 011B LATIN SMALL LETTER E WITH CARON - -# Ğ Ǧ - (‎ Ğ ‎) 011E LATIN CAPITAL LETTER G WITH BREVE -← (‎ Ǧ ‎) 01E6 LATIN CAPITAL LETTER G WITH CARON - -# ğ ǧ - (‎ ğ ‎) 011F LATIN SMALL LETTER G WITH BREVE -← (‎ ǧ ‎) 01E7 LATIN SMALL LETTER G WITH CARON - -# ģ ǵ - (‎ ģ ‎) 0123 LATIN SMALL LETTER G WITH CEDILLA -← (‎ ǵ ‎) 01F5 LATIN SMALL LETTER G WITH ACUTE - -# Ĭ Ǐ - (‎ Ĭ ‎) 012C LATIN CAPITAL LETTER I WITH BREVE -← (‎ Ǐ ‎) 01CF LATIN CAPITAL LETTER I WITH CARON - -# ĭ ǐ - (‎ ĭ ‎) 012D LATIN SMALL LETTER I WITH BREVE -← (‎ ǐ ‎) 01D0 LATIN SMALL LETTER I WITH CARON - -# ĸ ᴋ κ к ⲕ ꮶ ϰ 𝛋 𝛞 𝜅 𝜘 𝜿 𝝒 𝝹 𝞌 𝞳 𝟆 - (‎ ĸ ‎) 0138 LATIN SMALL LETTER KRA -← (‎ ᴋ ‎) 1D0B LATIN LETTER SMALL CAPITAL K -← (‎ κ ‎) 03BA GREEK SMALL LETTER KAPPA -← (‎ к ‎) 043A CYRILLIC SMALL LETTER KA -← (‎ ⲕ ‎) 2C95 COPTIC SMALL LETTER KAPA # →κ→ -← (‎ ꮶ ‎) ABB6 CHEROKEE SMALL LETTER TSO # →ᴋ→ -← (‎ ϰ ‎) 03F0 GREEK KAPPA SYMBOL # →κ→ -← (‎ 𝛋 ‎) 1D6CB MATHEMATICAL BOLD SMALL KAPPA # →κ→ -← (‎ 𝛞 ‎) 1D6DE MATHEMATICAL BOLD KAPPA SYMBOL # →κ→ -← (‎ 𝜅 ‎) 1D705 MATHEMATICAL ITALIC SMALL KAPPA # →κ→ -← (‎ 𝜘 ‎) 1D718 MATHEMATICAL ITALIC KAPPA SYMBOL # →κ→ -← (‎ 𝜿 ‎) 1D73F MATHEMATICAL BOLD ITALIC SMALL KAPPA # →κ→ -← (‎ 𝝒 ‎) 1D752 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL # →κ→ -← (‎ 𝝹 ‎) 1D779 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA # →κ→ -← (‎ 𝞌 ‎) 1D78C MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL # →κ→ -← (‎ 𝞳 ‎) 1D7B3 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA # →κ→ -← (‎ 𝟆 ‎) 1D7C6 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL # →κ→ - -# ĸ̩ к̩ қ - (‎ ĸ̩ ‎) 0138 0329 LATIN SMALL LETTER KRA, COMBINING VERTICAL LINE BELOW -← (‎ к̩ ‎) 043A 0329 CYRILLIC SMALL LETTER KA, COMBINING VERTICAL LINE BELOW -← (‎ қ ‎) 049B CYRILLIC SMALL LETTER KA WITH DESCENDER # →к̩→ - -# ĸ̵ к̵ ҟ - (‎ ĸ̵ ‎) 0138 0335 LATIN SMALL LETTER KRA, COMBINING SHORT STROKE OVERLAY -← (‎ к̵ ‎) 043A 0335 CYRILLIC SMALL LETTER KA, COMBINING SHORT STROKE OVERLAY -← (‎ ҟ ‎) 049F CYRILLIC SMALL LETTER KA WITH STROKE # →к̵→ - -# ɲ ņ - (‎ ņ ‎) 0146 LATIN SMALL LETTER N WITH CEDILLA -← (‎ ɲ ‎) 0272 LATIN SMALL LETTER N WITH LEFT HOOK - -# Ŏ Ǒ - (‎ Ŏ ‎) 014E LATIN CAPITAL LETTER O WITH BREVE -← (‎ Ǒ ‎) 01D1 LATIN CAPITAL LETTER O WITH CARON - -# ŏ ǒ - (‎ ŏ ‎) 014F LATIN SMALL LETTER O WITH BREVE -← (‎ ǒ ‎) 01D2 LATIN SMALL LETTER O WITH CARON - -# Ţ Ț - (‎ Ţ ‎) 0162 LATIN CAPITAL LETTER T WITH CEDILLA -← (‎ Ț ‎) 021A LATIN CAPITAL LETTER T WITH COMMA BELOW - -# ƫ Ꮏ ţ ț - (‎ ţ ‎) 0163 LATIN SMALL LETTER T WITH CEDILLA -← (‎ ƫ ‎) 01AB LATIN SMALL LETTER T WITH PALATAL HOOK -← (‎ Ꮏ ‎) 13BF CHEROKEE LETTER HNA # →ƫ→ -← (‎ ț ‎) 021B LATIN SMALL LETTER T WITH COMMA BELOW - -# Ŭ Ǔ - (‎ Ŭ ‎) 016C LATIN CAPITAL LETTER U WITH BREVE -← (‎ Ǔ ‎) 01D3 LATIN CAPITAL LETTER U WITH CARON - -# ŭ ǔ - (‎ ŭ ‎) 016D LATIN SMALL LETTER U WITH BREVE -← (‎ ǔ ‎) 01D4 LATIN SMALL LETTER U WITH CARON - -# ƅ ь ꮟ - (‎ ƅ ‎) 0185 LATIN SMALL LETTER TONE SIX -← (‎ ь ‎) 044C CYRILLIC SMALL LETTER SOFT SIGN -← (‎ ꮟ ‎) AB9F CHEROKEE SMALL LETTER SI # →ь→ - -# ƅi ьi ьı ы - (‎ ƅi ‎) 0185 0069 LATIN SMALL LETTER TONE SIX, LATIN SMALL LETTER I -← (‎ ьi ‎) 044C 0069 CYRILLIC SMALL LETTER SOFT SIGN, LATIN SMALL LETTER I # →ьı→ -← (‎ ьı ‎) 044C 0131 CYRILLIC SMALL LETTER SOFT SIGN, LATIN SMALL LETTER DOTLESS I -← (‎ ы ‎) 044B CYRILLIC SMALL LETTER YERU # →ьı→ - -# Ɔ Ↄ Ͻ ꓛ 𐐣 - (‎ Ɔ ‎) 0186 LATIN CAPITAL LETTER OPEN O -← (‎ Ↄ ‎) 2183 ROMAN NUMERAL REVERSED ONE HUNDRED -← (‎ Ͻ ‎) 03FD GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL -← (‎ ꓛ ‎) A4DB LISU LETTER CHA -← (‎ 𐐣 ‎) 10423 DESERET CAPITAL LETTER EM - -# Ǝ ⴺ ꓱ ∃ - (‎ Ǝ ‎) 018E LATIN CAPITAL LETTER REVERSED E -← (‎ ⴺ ‎) 2D3A TIFINAGH LETTER YADDH -← (‎ ꓱ ‎) A4F1 LISU LETTER EU -← (‎ ∃ ‎) 2203 THERE EXISTS - -# Ə Ә - (‎ Ə ‎) 018F LATIN CAPITAL LETTER SCHWA -← (‎ Ә ‎) 04D8 CYRILLIC CAPITAL LETTER SCHWA - -# Ɛ Ԑ Ꮛ 𐐁 𖼭 𝈡 ℇ - (‎ Ɛ ‎) 0190 LATIN CAPITAL LETTER OPEN E -← (‎ Ԑ ‎) 0510 CYRILLIC CAPITAL LETTER REVERSED ZE -← (‎ Ꮛ ‎) 13CB CHEROKEE LETTER QUV -← (‎ 𐐁 ‎) 10401 DESERET CAPITAL LETTER LONG E -← (‎ 𖼭 ‎) 16F2D MIAO LETTER NYHA -← (‎ 𝈡 ‎) 1D221 GREEK INSTRUMENTAL NOTATION SYMBOL-7 -← (‎ ℇ ‎) 2107 EULER CONSTANT - -# ƨ ᴤ ϩ ꙅ - (‎ ƨ ‎) 01A8 LATIN SMALL LETTER TONE TWO -← (‎ ᴤ ‎) 1D24 LATIN LETTER VOICED LARYNGEAL SPIRANT -← (‎ ϩ ‎) 03E9 COPTIC SMALL LETTER HORI -← (‎ ꙅ ‎) A645 CYRILLIC SMALL LETTER REVERSED DZE - -# Ʃ Σ ⵉ ∑ 𝚺 𝛴 𝜮 𝝨 𝞢 ⅀ - (‎ Ʃ ‎) 01A9 LATIN CAPITAL LETTER ESH -← (‎ Σ ‎) 03A3 GREEK CAPITAL LETTER SIGMA -← (‎ ⵉ ‎) 2D49 TIFINAGH LETTER YI -← (‎ ∑ ‎) 2211 N-ARY SUMMATION -← (‎ 𝚺 ‎) 1D6BA MATHEMATICAL BOLD CAPITAL SIGMA # →Σ→ -← (‎ 𝛴 ‎) 1D6F4 MATHEMATICAL ITALIC CAPITAL SIGMA # →Σ→ -← (‎ 𝜮 ‎) 1D72E MATHEMATICAL BOLD ITALIC CAPITAL SIGMA # →Σ→ -← (‎ 𝝨 ‎) 1D768 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA # →Σ→ -← (‎ 𝞢 ‎) 1D7A2 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA # →Σ→ -← (‎ ⅀ ‎) 2140 DOUBLE-STRUCK N-ARY SUMMATION # →∑→ - -# Ʊ ᘮ ᘴ ℧ - (‎ Ʊ ‎) 01B1 LATIN CAPITAL LETTER UPSILON -← (‎ ᘮ ‎) 162E CANADIAN SYLLABICS CARRIER LHU # →℧→ -← (‎ ᘴ ‎) 1634 CANADIAN SYLLABICS CARRIER TLHU # →ᘮ→→℧→ -← (‎ ℧ ‎) 2127 INVERTED OHM SIGN - -# ǝ ə ә - (‎ ǝ ‎) 01DD LATIN SMALL LETTER TURNED E -← (‎ ə ‎) 0259 LATIN SMALL LETTER SCHWA -← (‎ ә ‎) 04D9 CYRILLIC SMALL LETTER SCHWA - -# ǝo əo ᴔ - (‎ ǝo ‎) 01DD 006F LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O -← (‎ əo ‎) 0259 006F LATIN SMALL LETTER SCHWA, LATIN SMALL LETTER O -← (‎ ᴔ ‎) 1D14 LATIN SMALL LETTER TURNED OE # →əo→ - -# ǝo̵ ǝɵ ꭂ - (‎ ǝo̵ ‎) 01DD 006F 0335 LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY -← (‎ ǝɵ ‎) 01DD 0275 LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER BARRED O -← (‎ ꭂ ‎) AB42 LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE # →ǝɵ→ - -# ǝo̸ ǝø ꭁ - (‎ ǝo̸ ‎) 01DD 006F 0338 LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY -← (‎ ǝø ‎) 01DD 00F8 LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O WITH STROKE -← (‎ ꭁ ‎) AB41 LATIN SMALL LETTER TURNED OE WITH STROKE # →ǝø→ - -# ǝ˞ ə˞ ɚ - (‎ ǝ˞ ‎) 01DD 02DE LATIN SMALL LETTER TURNED E, MODIFIER LETTER RHOTIC HOOK -← (‎ ə˞ ‎) 0259 02DE LATIN SMALL LETTER SCHWA, MODIFIER LETTER RHOTIC HOOK -← (‎ ɚ ‎) 025A LATIN SMALL LETTER SCHWA WITH HOOK # →ə˞→ - -# Ƕ Ԋ - (‎ Ƕ ‎) 01F6 LATIN CAPITAL LETTER HWAIR -← (‎ Ԋ ‎) 050A CYRILLIC CAPITAL LETTER KOMI NJE - -# ȝ ʒ ꝫ ӡ ჳ ⳍ - (‎ ȝ ‎) 021D LATIN SMALL LETTER YOGH -← (‎ ʒ ‎) 0292 LATIN SMALL LETTER EZH -← (‎ ꝫ ‎) A76B LATIN SMALL LETTER ET -← (‎ ӡ ‎) 04E1 CYRILLIC SMALL LETTER ABKHASIAN DZE # →ʒ→ -← (‎ ჳ ‎) 10F3 GEORGIAN LETTER WE # →ʒ→ -← (‎ ⳍ ‎) 2CCD COPTIC SMALL LETTER OLD COPTIC HORI - -# ȷ յ 𝚥 - (‎ ȷ ‎) 0237 LATIN SMALL LETTER DOTLESS J -← (‎ յ ‎) 0575 ARMENIAN SMALL LETTER YI -← (‎ 𝚥 ‎) 1D6A5 MATHEMATICAL ITALIC SMALL DOTLESS J - -# ɂ ꭾ - (‎ ɂ ‎) 0242 LATIN SMALL LETTER GLOTTAL STOP -← (‎ ꭾ ‎) AB7E CHEROKEE SMALL LETTER HE - -# Ʌ ٨ ۸ Λ Л ᐱ ⴷ ꓥ ꛎ 𐊍 𖼽 𐒰 𝚲 𝛬 𝜦 𝝠 𝞚 - (‎ Ʌ ‎) 0245 LATIN CAPITAL LETTER TURNED V -← (‎ ٨ ‎) 0668 ARABIC-INDIC DIGIT EIGHT # →Λ→ -← (‎ ۸ ‎) 06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT # →‎٨‎→→Λ→ -← (‎ Λ ‎) 039B GREEK CAPITAL LETTER LAMDA -← (‎ Л ‎) 041B CYRILLIC CAPITAL LETTER EL # →Λ→ -← (‎ ᐱ ‎) 1431 CANADIAN SYLLABICS PI -← (‎ ⴷ ‎) 2D37 TIFINAGH LETTER YAD -← (‎ ꓥ ‎) A4E5 LISU LETTER NGA -← (‎ ꛎ ‎) A6CE BAMUM LETTER MI # →Λ→ -← (‎ 𐊍 ‎) 1028D LYCIAN LETTER L # →Λ→ -← (‎ 𖼽 ‎) 16F3D MIAO LETTER ZZA -← (‎ 𐒰 ‎) 104B0 OSAGE CAPITAL LETTER A -← (‎ 𝚲 ‎) 1D6B2 MATHEMATICAL BOLD CAPITAL LAMDA # →Λ→ -← (‎ 𝛬 ‎) 1D6EC MATHEMATICAL ITALIC CAPITAL LAMDA # →Λ→ -← (‎ 𝜦 ‎) 1D726 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA # →Λ→ -← (‎ 𝝠 ‎) 1D760 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA # →Λ→ -← (‎ 𝞚 ‎) 1D79A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA # →Λ→ - -# Ʌ· ٨· ᐱ· ᐱᐧ ᐽ - (‎ Ʌ· ‎) 0245 00B7 LATIN CAPITAL LETTER TURNED V, MIDDLE DOT -← (‎ ٨· ‎) 0668 00B7 ARABIC-INDIC DIGIT EIGHT, MIDDLE DOT # →ᐱ·→ -← (‎ ᐱ· ‎) 1431 00B7 CANADIAN SYLLABICS PI, MIDDLE DOT -← (‎ ᐱᐧ ‎) 1431 1427 CANADIAN SYLLABICS PI, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᐱ·→ -← (‎ ᐽ ‎) 143D CANADIAN SYLLABICS WEST-CREE PWI # →ᐱᐧ→→ᐱ·→ - -# Ʌ̦ Л̦ Л̡ Ӆ - (‎ Ʌ̦ ‎) 0245 0326 LATIN CAPITAL LETTER TURNED V, COMBINING COMMA BELOW -← (‎ Л̦ ‎) 041B 0326 CYRILLIC CAPITAL LETTER EL, COMBINING COMMA BELOW # →Л̡→ -← (‎ Л̡ ‎) 041B 0321 CYRILLIC CAPITAL LETTER EL, COMBINING PALATALIZED HOOK BELOW -← (‎ Ӆ ‎) 04C5 CYRILLIC CAPITAL LETTER EL WITH TAIL # →Л̡→ - -# ɋ ᶐ - (‎ ɋ ‎) 024B LATIN SMALL LETTER Q WITH HOOK TAIL -← (‎ ᶐ ‎) 1D90 LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK - -# ɔ ᴐ ↄ ͻ 𐑋 - (‎ ɔ ‎) 0254 LATIN SMALL LETTER OPEN O -← (‎ ᴐ ‎) 1D10 LATIN LETTER SMALL CAPITAL OPEN O -← (‎ ↄ ‎) 2184 LATIN SMALL LETTER REVERSED C -← (‎ ͻ ‎) 037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL -← (‎ 𐑋 ‎) 1044B DESERET SMALL LETTER EM - -# ɔe ꭢ - (‎ ɔe ‎) 0254 0065 LATIN SMALL LETTER OPEN O, LATIN SMALL LETTER E -← (‎ ꭢ ‎) AB62 LATIN SMALL LETTER OPEN OE - -# ɔ̸ ꬿ - (‎ ɔ̸ ‎) 0254 0338 LATIN SMALL LETTER OPEN O, COMBINING LONG SOLIDUS OVERLAY -← (‎ ꬿ ‎) AB3F LATIN SMALL LETTER OPEN O WITH STROKE - -# ꞓ ɛ ε є ԑ ⲉ 𐐩 ⋴ 𑣎 ꮛ ϵ 𝛆 𝛜 𝜀 𝜖 𝜺 𝝐 𝝴 𝞊 𝞮 𝟄 - (‎ ɛ ‎) 025B LATIN SMALL LETTER OPEN E -← (‎ ꞓ ‎) A793 LATIN SMALL LETTER C WITH BAR # →є→ -← (‎ ε ‎) 03B5 GREEK SMALL LETTER EPSILON -← (‎ є ‎) 0454 CYRILLIC SMALL LETTER UKRAINIAN IE -← (‎ ԑ ‎) 0511 CYRILLIC SMALL LETTER REVERSED ZE -← (‎ ⲉ ‎) 2C89 COPTIC SMALL LETTER EIE # →є→ -← (‎ 𐐩 ‎) 10429 DESERET SMALL LETTER LONG E -← (‎ ⋴ ‎) 22F4 SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -← (‎ 𑣎 ‎) 118CE WARANG CITI SMALL LETTER YUJ # →ε→ -← (‎ ꮛ ‎) AB9B CHEROKEE SMALL LETTER QUV -← (‎ ϵ ‎) 03F5 GREEK LUNATE EPSILON SYMBOL # →ε→ -← (‎ 𝛆 ‎) 1D6C6 MATHEMATICAL BOLD SMALL EPSILON # →ε→ -← (‎ 𝛜 ‎) 1D6DC MATHEMATICAL BOLD EPSILON SYMBOL # →ε→ -← (‎ 𝜀 ‎) 1D700 MATHEMATICAL ITALIC SMALL EPSILON # →ε→ -← (‎ 𝜖 ‎) 1D716 MATHEMATICAL ITALIC EPSILON SYMBOL # →ε→ -← (‎ 𝜺 ‎) 1D73A MATHEMATICAL BOLD ITALIC SMALL EPSILON # →ε→ -← (‎ 𝝐 ‎) 1D750 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL # →ε→ -← (‎ 𝝴 ‎) 1D774 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON # →ε→ -← (‎ 𝞊 ‎) 1D78A MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL # →ε→ -← (‎ 𝞮 ‎) 1D7AE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON # →ε→ -← (‎ 𝟄 ‎) 1D7C4 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL # →ε→ - -# ɜ ᴈ з - (‎ ɜ ‎) 025C LATIN SMALL LETTER REVERSED OPEN E -← (‎ ᴈ ‎) 1D08 LATIN SMALL LETTER TURNED OPEN E -← (‎ з ‎) 0437 CYRILLIC SMALL LETTER ZE - -# ɜ̦ з̦ з̡ ҙ - (‎ ɜ̦ ‎) 025C 0326 LATIN SMALL LETTER REVERSED OPEN E, COMBINING COMMA BELOW -← (‎ з̦ ‎) 0437 0326 CYRILLIC SMALL LETTER ZE, COMBINING COMMA BELOW # →з̡→ -← (‎ з̡ ‎) 0437 0321 CYRILLIC SMALL LETTER ZE, COMBINING PALATALIZED HOOK BELOW -← (‎ ҙ ‎) 0499 CYRILLIC SMALL LETTER ZE WITH DESCENDER # →з̡→ - -# ɞ 𐑂 - (‎ ɞ ‎) 025E LATIN SMALL LETTER CLOSED REVERSED OPEN E -← (‎ 𐑂 ‎) 10442 DESERET SMALL LETTER VEE - -# ɢ ԍ ᏻ ꮐ - (‎ ɢ ‎) 0262 LATIN LETTER SMALL CAPITAL G -← (‎ ԍ ‎) 050D CYRILLIC SMALL LETTER KOMI SJE -← (‎ ᏻ ‎) 13FB CHEROKEE SMALL LETTER YU -← (‎ ꮐ ‎) AB90 CHEROKEE SMALL LETTER NAH - -# ɰ պ ሣ - (‎ ɰ ‎) 0270 LATIN SMALL LETTER TURNED M WITH LONG LEG -← (‎ պ ‎) 057A ARMENIAN SMALL LETTER PEH -← (‎ ሣ ‎) 1223 ETHIOPIC SYLLABLE SZAA # →պ→ - -# ɷ 𐐿 - (‎ ɷ ‎) 0277 LATIN SMALL LETTER CLOSED OMEGA -← (‎ 𐐿 ‎) 1043F DESERET SMALL LETTER KAY - -# ɸ φ ф ⲫ ϕ 𝛗 𝛟 𝜑 𝜙 𝝋 𝝓 𝞅 𝞍 𝞿 𝟇 - (‎ ɸ ‎) 0278 LATIN SMALL LETTER PHI -← (‎ φ ‎) 03C6 GREEK SMALL LETTER PHI -← (‎ ф ‎) 0444 CYRILLIC SMALL LETTER EF -← (‎ ⲫ ‎) 2CAB COPTIC SMALL LETTER FI # →ϕ→ -← (‎ ϕ ‎) 03D5 GREEK PHI SYMBOL -← (‎ 𝛗 ‎) 1D6D7 MATHEMATICAL BOLD SMALL PHI # →φ→ -← (‎ 𝛟 ‎) 1D6DF MATHEMATICAL BOLD PHI SYMBOL # →φ→ -← (‎ 𝜑 ‎) 1D711 MATHEMATICAL ITALIC SMALL PHI # →φ→ -← (‎ 𝜙 ‎) 1D719 MATHEMATICAL ITALIC PHI SYMBOL # →φ→ -← (‎ 𝝋 ‎) 1D74B MATHEMATICAL BOLD ITALIC SMALL PHI # →φ→ -← (‎ 𝝓 ‎) 1D753 MATHEMATICAL BOLD ITALIC PHI SYMBOL # →φ→ -← (‎ 𝞅 ‎) 1D785 MATHEMATICAL SANS-SERIF BOLD SMALL PHI # →φ→ -← (‎ 𝞍 ‎) 1D78D MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL # →φ→ -← (‎ 𝞿 ‎) 1D7BF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI # →φ→ -← (‎ 𝟇 ‎) 1D7C7 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL # →φ→ - -# ɾ̴ ᵳ - (‎ ɾ̴ ‎) 027E 0334 LATIN SMALL LETTER R WITH FISHHOOK, COMBINING TILDE OVERLAY -← (‎ ᵳ ‎) 1D73 LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE - -# ɿ ℩ - (‎ ɿ ‎) 027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK -← (‎ ℩ ‎) 2129 TURNED GREEK SMALL LETTER IOTA - -# ʀ ꭱ ꮢ - (‎ ʀ ‎) 0280 LATIN LETTER SMALL CAPITAL R -← (‎ ꭱ ‎) AB71 CHEROKEE SMALL LETTER E -← (‎ ꮢ ‎) ABA2 CHEROKEE SMALL LETTER SV - -# ʃ ∫ ꭍ - (‎ ʃ ‎) 0283 LATIN SMALL LETTER ESH -← (‎ ∫ ‎) 222B INTEGRAL -← (‎ ꭍ ‎) AB4D LATIN SMALL LETTER BASELINE ESH - -# ʃʃ ∫∫ ∬ - (‎ ʃʃ ‎) 0283 0283 LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH -← (‎ ∫∫ ‎) 222B 222B INTEGRAL, INTEGRAL -← (‎ ∬ ‎) 222C DOUBLE INTEGRAL # →∫∫→ - -# ʃʃʃ ∫∫∫ ∭ - (‎ ʃʃʃ ‎) 0283 0283 0283 LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH -← (‎ ∫∫∫ ‎) 222B 222B 222B INTEGRAL, INTEGRAL, INTEGRAL -← (‎ ∭ ‎) 222D TRIPLE INTEGRAL # →∫∫∫→ - -# ʃʃʃʃ ∫∫∫∫ ⨌ - (‎ ʃʃʃʃ ‎) 0283 0283 0283 0283 LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH -← (‎ ∫∫∫∫ ‎) 222B 222B 222B 222B INTEGRAL, INTEGRAL, INTEGRAL, INTEGRAL -← (‎ ⨌ ‎) 2A0C QUADRUPLE INTEGRAL OPERATOR # →∫∫∫∫→ - -# ʊ̵ ᵿ - (‎ ʊ̵ ‎) 028A 0335 LATIN SMALL LETTER UPSILON, COMBINING SHORT STROKE OVERLAY -← (‎ ᵿ ‎) 1D7F LATIN SMALL LETTER UPSILON WITH STROKE - -# ʌ ᴧ 𐓘 - (‎ ʌ ‎) 028C LATIN SMALL LETTER TURNED V -← (‎ ᴧ ‎) 1D27 GREEK LETTER SMALL CAPITAL LAMDA -← (‎ 𐓘 ‎) 104D8 OSAGE SMALL LETTER A - -# ʍ ᴍ м ꮇ - (‎ ʍ ‎) 028D LATIN SMALL LETTER TURNED W -← (‎ ᴍ ‎) 1D0D LATIN LETTER SMALL CAPITAL M # →м→ -← (‎ м ‎) 043C CYRILLIC SMALL LETTER EM -← (‎ ꮇ ‎) AB87 CHEROKEE SMALL LETTER LU # →ᴍ→→м→ - -# ʍ̦ м̦ м̡ ӎ - (‎ ʍ̦ ‎) 028D 0326 LATIN SMALL LETTER TURNED W, COMBINING COMMA BELOW -← (‎ м̦ ‎) 043C 0326 CYRILLIC SMALL LETTER EM, COMBINING COMMA BELOW # →м̡→ -← (‎ м̡ ‎) 043C 0321 CYRILLIC SMALL LETTER EM, COMBINING PALATALIZED HOOK BELOW -← (‎ ӎ ‎) 04CE CYRILLIC SMALL LETTER EM WITH TAIL # →м̡→ - -# ʘ ⵙ Ꙩ ⊙ ☉ ⨀ 𐓃 - (‎ ʘ ‎) 0298 LATIN LETTER BILABIAL CLICK -← (‎ ⵙ ‎) 2D59 TIFINAGH LETTER YAS # →⊙→ -← (‎ Ꙩ ‎) A668 CYRILLIC CAPITAL LETTER MONOCULAR O -← (‎ ⊙ ‎) 2299 CIRCLED DOT OPERATOR -← (‎ ☉ ‎) 2609 SUN # →⊙→ -← (‎ ⨀ ‎) 2A00 N-ARY CIRCLED DOT OPERATOR # →⊙→ -← (‎ 𐓃 ‎) 104C3 OSAGE CAPITAL LETTER OIN # →Ꙩ→ - -# ʙ в ᏼ - (‎ ʙ ‎) 0299 LATIN LETTER SMALL CAPITAL B -← (‎ в ‎) 0432 CYRILLIC SMALL LETTER VE -← (‎ ᏼ ‎) 13FC CHEROKEE SMALL LETTER YV - -# ʚ 𐐪 ꞝ - (‎ ʚ ‎) 029A LATIN SMALL LETTER CLOSED OPEN E -← (‎ 𐐪 ‎) 1042A DESERET SMALL LETTER LONG A -← (‎ ꞝ ‎) A79D LATIN SMALL LETTER VOLAPUK OE - -# ʜ н ꮋ - (‎ ʜ ‎) 029C LATIN LETTER SMALL CAPITAL H -← (‎ н ‎) 043D CYRILLIC SMALL LETTER EN -← (‎ ꮋ ‎) AB8B CHEROKEE SMALL LETTER MI - -# ʜ̦ н̦ н̡ ӈ ӊ - (‎ ʜ̦ ‎) 029C 0326 LATIN LETTER SMALL CAPITAL H, COMBINING COMMA BELOW -← (‎ н̦ ‎) 043D 0326 CYRILLIC SMALL LETTER EN, COMBINING COMMA BELOW # →н̡→ -← (‎ н̡ ‎) 043D 0321 CYRILLIC SMALL LETTER EN, COMBINING PALATALIZED HOOK BELOW -← (‎ ӈ ‎) 04C8 CYRILLIC SMALL LETTER EN WITH HOOK # →н̡→ -← (‎ ӊ ‎) 04CA CYRILLIC SMALL LETTER EN WITH TAIL # →н̡→ - -# ʜ̩ н̩ ң - (‎ ʜ̩ ‎) 029C 0329 LATIN LETTER SMALL CAPITAL H, COMBINING VERTICAL LINE BELOW -← (‎ н̩ ‎) 043D 0329 CYRILLIC SMALL LETTER EN, COMBINING VERTICAL LINE BELOW -← (‎ ң ‎) 04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER # →н̩→ - -# ʟ ⳑ 𐑃 ꮮ - (‎ ʟ ‎) 029F LATIN LETTER SMALL CAPITAL L -← (‎ ⳑ ‎) 2CD1 COPTIC SMALL LETTER L-SHAPED HA -← (‎ 𐑃 ‎) 10443 DESERET SMALL LETTER ETH -← (‎ ꮮ ‎) ABAE CHEROKEE SMALL LETTER TLE - -# ʡ ꛍ - (‎ ʡ ‎) 02A1 LATIN LETTER GLOTTAL STOP WITH STROKE -← (‎ ꛍ ‎) A6CD BAMUM LETTER LU - -# ᣴ ʳ - (‎ ʳ ‎) 02B3 MODIFIER LETTER SMALL R -← (‎ ᣴ ‎) 18F4 CANADIAN SYLLABICS BEAVER DENE R - -# ՙ ʿ ˓ - (‎ ʿ ‎) 02BF MODIFIER LETTER LEFT HALF RING -← (‎ ՙ ‎) 0559 ARMENIAN MODIFIER LETTER LEFT HALF RING -← (‎ ˓ ‎) 02D3 MODIFIER LETTER CENTRED LEFT HALF RING - -# ˁ ˤ - (‎ ˁ ‎) 02C1 MODIFIER LETTER REVERSED GLOTTAL STOP -← (‎ ˤ ‎) 02E4 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP - -# ˇ ꙾ ˘ - (‎ ˇ ‎) 02C7 CARON -← (‎ ꙾ ‎) A67E CYRILLIC KAVYKA # →˘→ -← (‎ ˘ ‎) 02D8 BREVE - -# ˉbi ъi ъı ꙑ - (‎ ˉbi ‎) 02C9 0062 0069 MODIFIER LETTER MACRON, LATIN SMALL LETTER B, LATIN SMALL LETTER I -← (‎ ъi ‎) 044A 0069 CYRILLIC SMALL LETTER HARD SIGN, LATIN SMALL LETTER I # →ъı→ -← (‎ ъı ‎) 044A 0131 CYRILLIC SMALL LETTER HARD SIGN, LATIN SMALL LETTER DOTLESS I -← (‎ ꙑ ‎) A651 CYRILLIC SMALL LETTER YERU WITH BACK YER # →ъı→ - -# ˏ ͵ - (‎ ˏ ‎) 02CF MODIFIER LETTER LOW ACUTE ACCENT -← (‎ ͵ ‎) 0375 GREEK LOWER NUMERAL SIGN - -# ॱ ൎ ˙ - (‎ ˙ ‎) 02D9 DOT ABOVE -← (‎ ॱ ‎) 0971 DEVANAGARI SIGN HIGH SPACING DOT -← (‎ ൎ ‎) 0D4E MALAYALAM LETTER DOT REPH - -# ᣳ ˡ - (‎ ˡ ‎) 02E1 MODIFIER LETTER SMALL L -← (‎ ᣳ ‎) 18F3 CANADIAN SYLLABICS BEAVER DENE L - -# ᣵ ᣛ ˢ - (‎ ˢ ‎) 02E2 MODIFIER LETTER SMALL S -← (‎ ᣵ ‎) 18F5 CANADIAN SYLLABICS CARRIER DENTAL S -← (‎ ᣛ ‎) 18DB CANADIAN SYLLABICS OJIBWAY SH - -# ˪ ˻ ꜖ - (‎ ˪ ‎) 02EA MODIFIER LETTER YIN DEPARTING TONE MARK -← (‎ ˻ ‎) 02FB MODIFIER LETTER BEGIN LOW TONE -← (‎ ꜖ ‎) A716 MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR - -# ˫ ꜔ - (‎ ˫ ‎) 02EB MODIFIER LETTER YANG DEPARTING TONE MARK -← (‎ ꜔ ‎) A714 MODIFIER LETTER MID LEFT-STEM TONE BAR - -# ˳ 。 - (‎ ˳ ‎) 02F3 MODIFIER LETTER LOW RING -← (‎ 。 ‎) 3002 IDEOGRAPHIC FULL STOP - -# ̀ ॓ ̀ - (‎ ̀ ‎) 0300 COMBINING GRAVE ACCENT -← (‎ ॓ ‎) 0953 DEVANAGARI GRAVE ACCENT -← (‎ ̀ ‎) 0340 COMBINING GRAVE TONE MARK - -# ́ َ ֜ ֝ ؘ ݇ ॔ ́ - (‎ ́ ‎) 0301 COMBINING ACUTE ACCENT -← (‎ َ ‎) 064E ARABIC FATHA -← (‎ ֜ ‎) 059C HEBREW ACCENT GERESH -← (‎ ֝ ‎) 059D HEBREW ACCENT GERESH MUQDAM # →֜→ -← (‎ ؘ ‎) 0618 ARABIC SMALL FATHA # →َ→ -← (‎ ݇ ‎) 0747 SYRIAC OBLIQUE LINE ABOVE -← (‎ ॔ ‎) 0954 DEVANAGARI ACUTE ACCENT -← (‎ ́ ‎) 0341 COMBINING ACUTE TONE MARK - -# ̂ ̑ ٛ ߮ ᳐ ꛰ - (‎ ̂ ‎) 0302 COMBINING CIRCUMFLEX ACCENT -← (‎ ̑ ‎) 0311 COMBINING INVERTED BREVE -← (‎ ٛ ‎) 065B ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ߮ ‎) 07EE NKO COMBINING LONG DESCENDING TONE -← (‎ ᳐ ‎) 1CD0 VEDIC TONE KARSHANA -← (‎ ꛰ ‎) A6F0 BAMUM COMBINING MARK KOQNDON - -# ̃ ͂ ٓ - (‎ ̃ ‎) 0303 COMBINING TILDE -← (‎ ͂ ‎) 0342 COMBINING GREEK PERISPOMENI -← (‎ ٓ ‎) 0653 ARABIC MADDAH ABOVE - -# ̄ ̅ ٙ ߫ ᳒ ꛱ - (‎ ̄ ‎) 0304 COMBINING MACRON -← (‎ ̅ ‎) 0305 COMBINING OVERLINE -← (‎ ٙ ‎) 0659 ARABIC ZWARAKAY -← (‎ ߫ ‎) 07EB NKO COMBINING SHORT HIGH TONE -← (‎ ᳒ ‎) 1CD2 VEDIC TONE PRENKHA -← (‎ ꛱ ‎) A6F1 BAMUM COMBINING MARK TUKWENTIS - -# ̆ ̌ ͮ ٘ ٚ ꙼ - (‎ ̆ ‎) 0306 COMBINING BREVE -← (‎ ̌ ‎) 030C COMBINING CARON -← (‎ ͮ ‎) 036E COMBINING LATIN SMALL LETTER V # →̌→ -← (‎ ٘ ‎) 0658 ARABIC MARK NOON GHUNNA -← (‎ ٚ ‎) 065A ARABIC VOWEL SIGN SMALL V ABOVE # →̌→ -← (‎ ꙼ ‎) A67C COMBINING CYRILLIC KAVYKA - -# ̆̇ ̐ ँ ঁ ઁ ଁ ۨ ఀ ಁ ഁ 𑒿 - (‎ ̆̇ ‎) 0306 0307 COMBINING BREVE, COMBINING DOT ABOVE -← (‎ ̐ ‎) 0310 COMBINING CANDRABINDU -← (‎ ँ ‎) 0901 DEVANAGARI SIGN CANDRABINDU # →̐→ -← (‎ ঁ ‎) 0981 BENGALI SIGN CANDRABINDU # →̐→ -← (‎ ઁ ‎) 0A81 GUJARATI SIGN CANDRABINDU # →̐→ -← (‎ ଁ ‎) 0B01 ORIYA SIGN CANDRABINDU # →̐→ -← (‎ ۨ ‎) 06E8 ARABIC SMALL HIGH NOON # →̐→ -← (‎ ఀ ‎) 0C00 TELUGU SIGN COMBINING CANDRABINDU ABOVE # →ँ→→̐→ -← (‎ ಁ ‎) 0C81 KANNADA SIGN CANDRABINDU # →ँ→→̐→ -← (‎ ഁ ‎) 0D01 MALAYALAM SIGN CANDRABINDU # →ँ→→̐→ -← (‎ 𑒿 ‎) 114BF TIRHUTA SIGN CANDRABINDU # →ঁ→→̐→ - -# ̇ ं ਂ ં ் ͘ ֹ ֺ ׁ ׂ ׄ ۬ ݀ ݁ ߭ ࣪ - (‎ ̇ ‎) 0307 COMBINING DOT ABOVE -← (‎ ं ‎) 0902 DEVANAGARI SIGN ANUSVARA -← (‎ ਂ ‎) 0A02 GURMUKHI SIGN BINDI -← (‎ ં ‎) 0A82 GUJARATI SIGN ANUSVARA -← (‎ ் ‎) 0BCD TAMIL SIGN VIRAMA -← (‎ ͘ ‎) 0358 COMBINING DOT ABOVE RIGHT -← (‎ ֹ ‎) 05B9 HEBREW POINT HOLAM -← (‎ ֺ ‎) 05BA HEBREW POINT HOLAM HASER FOR VAV # →ׁ→ -← (‎ ׁ ‎) 05C1 HEBREW POINT SHIN DOT -← (‎ ׂ ‎) 05C2 HEBREW POINT SIN DOT -← (‎ ׄ ‎) 05C4 HEBREW MARK UPPER DOT -← (‎ ۬ ‎) 06EC ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE -← (‎ ݀ ‎) 0740 SYRIAC FEMININE DOT # →݁→ -← (‎ ݁ ‎) 0741 SYRIAC QUSHSHAYA -← (‎ ߭ ‎) 07ED NKO COMBINING SHORT RISING TONE -← (‎ ࣪ ‎) 08EA ARABIC TONE ONE DOT ABOVE - -# ̈ ߳ ࣫ - (‎ ̈ ‎) 0308 COMBINING DIAERESIS -← (‎ ߳ ‎) 07F3 NKO COMBINING DOUBLE DOT ABOVE -← (‎ ࣫ ‎) 08EB ARABIC TONE TWO DOTS ABOVE - -# ̉ 〬 - (‎ ̉ ‎) 0309 COMBINING HOOK ABOVE -← (‎ 〬 ‎) 302C IDEOGRAPHIC DEPARTING TONE MARK - -# ̊ ْ ஂ ํ ໍ ံ ំ ゚ ͦ ֯ ۟ ៓ ⷪ 𑌀 - (‎ ̊ ‎) 030A COMBINING RING ABOVE -← (‎ ْ ‎) 0652 ARABIC SUKUN -← (‎ ஂ ‎) 0B82 TAMIL SIGN ANUSVARA -← (‎ ํ ‎) 0E4D THAI CHARACTER NIKHAHIT -← (‎ ໍ ‎) 0ECD LAO NIGGAHITA -← (‎ ံ ‎) 1036 MYANMAR SIGN ANUSVARA -← (‎ ំ ‎) 17C6 KHMER SIGN NIKAHIT -← (‎ ゚ ‎) 309A COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -← (‎ ͦ ‎) 0366 COMBINING LATIN SMALL LETTER O -← (‎ ֯ ‎) 05AF HEBREW MARK MASORA CIRCLE -← (‎ ۟ ‎) 06DF ARABIC SMALL HIGH ROUNDED ZERO # →ْ→ -← (‎ ៓ ‎) 17D3 KHMER SIGN BATHAMASAT -← (‎ ⷪ ‎) 2DEA COMBINING CYRILLIC LETTER O # →ͦ→ -← (‎ 𑌀 ‎) 11300 GRANTHA SIGN COMBINING ANUSVARA ABOVE # →ஂ→ - -# ̊า ํา ำ - (‎ ̊า ‎) 030A 0E32 COMBINING RING ABOVE, THAI CHARACTER SARA AA -← (‎ ํา ‎) 0E4D 0E32 THAI CHARACTER NIKHAHIT, THAI CHARACTER SARA AA -← (‎ ำ ‎) 0E33 THAI CHARACTER SARA AM # →ํา→ - -# ̊າ ໍາ ຳ - (‎ ̊າ ‎) 030A 0EB2 COMBINING RING ABOVE, LAO VOWEL SIGN AA -← (‎ ໍາ ‎) 0ECD 0EB2 LAO NIGGAHITA, LAO VOWEL SIGN AA -← (‎ ຳ ‎) 0EB3 LAO VOWEL SIGN AM # →ໍາ→ - -# ̋ ً ࣰ - (‎ ̋ ‎) 030B COMBINING DOUBLE ACUTE ACCENT -← (‎ ً ‎) 064B ARABIC FATHATAN -← (‎ ࣰ ‎) 08F0 ARABIC OPEN FATHATAN # →ً→ - -# ٰ ̍ - (‎ ̍ ‎) 030D COMBINING VERTICAL LINE ABOVE -← (‎ ٰ ‎) 0670 ARABIC LETTER SUPERSCRIPT ALEF - -# ̎ ᳚ - (‎ ̎ ‎) 030E COMBINING DOUBLE VERTICAL LINE ABOVE -← (‎ ᳚ ‎) 1CDA VEDIC TONE DOUBLE SVARITA - -# ̒ ٗ - (‎ ̒ ‎) 0312 COMBINING TURNED COMMA ABOVE -← (‎ ٗ ‎) 0657 ARABIC INVERTED DAMMA - -# ̓ ُ ̕ ؙ ࣳ ̓ - (‎ ̓ ‎) 0313 COMBINING COMMA ABOVE -← (‎ ُ ‎) 064F ARABIC DAMMA -← (‎ ̕ ‎) 0315 COMBINING COMMA ABOVE RIGHT -← (‎ ؙ ‎) 0619 ARABIC SMALL DAMMA # →ُ→ -← (‎ ࣳ ‎) 08F3 ARABIC SMALL HIGH WAW # →ُ→ -← (‎ ̓ ‎) 0343 COMBINING GREEK KORONIS - -# ̔ ٝ - (‎ ̔ ‎) 0314 COMBINING REVERSED COMMA ABOVE -← (‎ ٝ ‎) 065D ARABIC REVERSED DAMMA - -# ̖ ᳭ - (‎ ̖ ‎) 0316 COMBINING GRAVE ACCENT BELOW -← (‎ ᳭ ‎) 1CED VEDIC SIGN TIRYAK - -# ِ ̗ ؚ - (‎ ̗ ‎) 0317 COMBINING ACUTE ACCENT BELOW -← (‎ ِ ‎) 0650 ARABIC KASRA -← (‎ ؚ ‎) 061A ARABIC SMALL KASRA # →ِ→ - -# ̱ ̠ ॒ - (‎ ̠ ‎) 0320 COMBINING MINUS SIGN BELOW -← (‎ ̱ ‎) 0331 COMBINING MACRON BELOW -← (‎ ॒ ‎) 0952 DEVANAGARI STRESS SIGN ANUDATTA - -# ̦ ̧ ̹ ̡ - (‎ ̡ ‎) 0321 COMBINING PALATALIZED HOOK BELOW -← (‎ ̦ ‎) 0326 COMBINING COMMA BELOW -← (‎ ̧ ‎) 0327 COMBINING CEDILLA -← (‎ ̹ ‎) 0339 COMBINING RIGHT HALF RING BELOW # →̧→ - -# ̨ ͅ ̢ ᪷ - (‎ ̢ ‎) 0322 COMBINING RETROFLEX HOOK BELOW -← (‎ ̨ ‎) 0328 COMBINING OGONEK -← (‎ ͅ ‎) 0345 COMBINING GREEK YPOGEGRAMMENI # →̨→ -← (‎ ᪷ ‎) 1AB7 COMBINING OPEN MARK BELOW # →̨→ - -# ̣ ִ ़ ় ਼ ઼ ଼ ׅ ٜ ࣭ ᳝ 𐨺 𑓃 𑇊 - (‎ ̣ ‎) 0323 COMBINING DOT BELOW -← (‎ ִ ‎) 05B4 HEBREW POINT HIRIQ -← (‎ ़ ‎) 093C DEVANAGARI SIGN NUKTA -← (‎ ় ‎) 09BC BENGALI SIGN NUKTA -← (‎ ਼ ‎) 0A3C GURMUKHI SIGN NUKTA -← (‎ ઼ ‎) 0ABC GUJARATI SIGN NUKTA -← (‎ ଼ ‎) 0B3C ORIYA SIGN NUKTA -← (‎ ׅ ‎) 05C5 HEBREW MARK LOWER DOT -← (‎ ٜ ‎) 065C ARABIC VOWEL SIGN DOT BELOW -← (‎ ࣭ ‎) 08ED ARABIC TONE ONE DOT BELOW -← (‎ ᳝ ‎) 1CDD VEDIC TONE DOT BELOW -← (‎ 𐨺 ‎) 10A3A KHAROSHTHI SIGN DOT BELOW -← (‎ 𑓃 ‎) 114C3 TIRHUTA SIGN NUKTA # →়→ -← (‎ 𑇊 ‎) 111CA SHARADA SIGN NUKTA # →़→ - -# ̤ ࣮ ᳞ - (‎ ̤ ‎) 0324 COMBINING DIAERESIS BELOW -← (‎ ࣮ ‎) 08EE ARABIC TONE TWO DOTS BELOW -← (‎ ᳞ ‎) 1CDE VEDIC TONE TWO DOTS BELOW - -# ̥ ༷ 〭 - (‎ ̥ ‎) 0325 COMBINING RING BELOW -← (‎ ༷ ‎) 0F37 TIBETAN MARK NGAS BZUNG SGOR RTAGS -← (‎ 〭 ‎) 302D IDEOGRAPHIC ENTERING TONE MARK - -# ̩ ٖ ᳜ - (‎ ̩ ‎) 0329 COMBINING VERTICAL LINE BELOW -← (‎ ٖ ‎) 0656 ARABIC SUBSCRIPT ALEF -← (‎ ᳜ ‎) 1CDC VEDIC TONE KATHAKA ANUDATTA - -# ̫ ᳕ - (‎ ̫ ‎) 032B COMBINING INVERTED DOUBLE ARCH BELOW -← (‎ ᳕ ‎) 1CD5 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA - -# ̭ ᳙ - (‎ ̭ ‎) 032D COMBINING CIRCUMFLEX ACCENT BELOW -← (‎ ᳙ ‎) 1CD9 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER - -# ̮ ᳘ - (‎ ̮ ‎) 032E COMBINING BREVE BELOW -← (‎ ᳘ ‎) 1CD8 VEDIC TONE CANDRA BELOW - -# ̳ ͇ - (‎ ̳ ‎) 0333 COMBINING DOUBLE LOW LINE -← (‎ ͇ ‎) 0347 COMBINING EQUALS SIGN BELOW - -# ̵ ̶ - (‎ ̵ ‎) 0335 COMBINING SHORT STROKE OVERLAY -← (‎ ̶ ‎) 0336 COMBINING LONG STROKE OVERLAY - -# ̸ ̷ - (‎ ̷ ‎) 0337 COMBINING SHORT SOLIDUS OVERLAY -← (‎ ̸ ‎) 0338 COMBINING LONG SOLIDUS OVERLAY - -# ͐ ͗ ࣸ ࣿ - (‎ ͐ ‎) 0350 COMBINING RIGHT ARROWHEAD ABOVE -← (‎ ͗ ‎) 0357 COMBINING RIGHT HALF RING ABOVE # →ࣿ→→ࣸ→ -← (‎ ࣸ ‎) 08F8 ARABIC RIGHT ARROWHEAD ABOVE -← (‎ ࣿ ‎) 08FF ARABIC MARK SIDEWAYS NOON GHUNNA # →ࣸ→ - -# ͒ ऀ - (‎ ͒ ‎) 0352 COMBINING FERMATA -← (‎ ऀ ‎) 0900 DEVANAGARI SIGN INVERTED CANDRABINDU - -# ͔ ࣹ - (‎ ͔ ‎) 0354 COMBINING LEFT ARROWHEAD BELOW -← (‎ ࣹ ‎) 08F9 ARABIC LEFT ARROWHEAD BELOW - -# ͕ ࣺ - (‎ ͕ ‎) 0355 COMBINING RIGHT ARROWHEAD BELOW -← (‎ ࣺ ‎) 08FA ARABIC RIGHT ARROWHEAD BELOW - -# ͣ ⷶ - (‎ ͣ ‎) 0363 COMBINING LATIN SMALL LETTER A -← (‎ ⷶ ‎) 2DF6 COMBINING CYRILLIC LETTER A - -# ͤ ⷷ - (‎ ͤ ‎) 0364 COMBINING LATIN SMALL LETTER E -← (‎ ⷷ ‎) 2DF7 COMBINING CYRILLIC LETTER IE - -# ͨ ⷭ - (‎ ͨ ‎) 0368 COMBINING LATIN SMALL LETTER C -← (‎ ⷭ ‎) 2DED COMBINING CYRILLIC LETTER ES - -# ͯ ⷯ - (‎ ͯ ‎) 036F COMBINING LATIN SMALL LETTER X -← (‎ ⷯ ‎) 2DEF COMBINING CYRILLIC LETTER HA - -# Ⱶ Ͱ Ꭸ Ꮀ ꚱ - (‎ Ͱ ‎) 0370 GREEK CAPITAL LETTER HETA -← (‎ Ⱶ ‎) 2C75 LATIN CAPITAL LETTER HALF H # →Ꮀ→ -← (‎ Ꭸ ‎) 13A8 CHEROKEE LETTER GE -← (‎ Ꮀ ‎) 13B0 CHEROKEE LETTER HO -← (‎ ꚱ ‎) A6B1 BAMUM LETTER NDAA - -# И Ͷ ꚡ 𐐥 𝈋 - (‎ Ͷ ‎) 0376 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA -← (‎ И ‎) 0418 CYRILLIC CAPITAL LETTER I -← (‎ ꚡ ‎) A6A1 BAMUM LETTER KA -← (‎ 𐐥 ‎) 10425 DESERET CAPITAL LETTER ENG # →И→ -← (‎ 𝈋 ‎) 1D20B GREEK VOCAL NOTATION SYMBOL-12 - -# ᴎ и ͷ 𐑍 - (‎ ͷ ‎) 0377 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA -← (‎ ᴎ ‎) 1D0E LATIN LETTER SMALL CAPITAL REVERSED N # →и→ -← (‎ и ‎) 0438 CYRILLIC SMALL LETTER I -← (‎ 𐑍 ‎) 1044D DESERET SMALL LETTER ENG # →и→ - -# ꜿ ͽ - (‎ ͽ ‎) 037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL -← (‎ ꜿ ‎) A73F LATIN SMALL LETTER REVERSED C WITH DOT - -# Γ Г Ꮁ ᒥ Ⲅ 𖼇 ℾ 𝚪 𝛤 𝜞 𝝘 𝞒 - (‎ Γ ‎) 0393 GREEK CAPITAL LETTER GAMMA -← (‎ Г ‎) 0413 CYRILLIC CAPITAL LETTER GHE -← (‎ Ꮁ ‎) 13B1 CHEROKEE LETTER HU -← (‎ ᒥ ‎) 14A5 CANADIAN SYLLABICS MI -← (‎ Ⲅ ‎) 2C84 COPTIC CAPITAL LETTER GAMMA -← (‎ 𖼇 ‎) 16F07 MIAO LETTER FA -← (‎ ℾ ‎) 213E DOUBLE-STRUCK CAPITAL GAMMA -← (‎ 𝚪 ‎) 1D6AA MATHEMATICAL BOLD CAPITAL GAMMA -← (‎ 𝛤 ‎) 1D6E4 MATHEMATICAL ITALIC CAPITAL GAMMA -← (‎ 𝜞 ‎) 1D71E MATHEMATICAL BOLD ITALIC CAPITAL GAMMA -← (‎ 𝝘 ‎) 1D758 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA -← (‎ 𝞒 ‎) 1D792 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA - -# Γ' Гˈ Г' Ґ - (‎ Γ' ‎) 0393 0027 GREEK CAPITAL LETTER GAMMA, APOSTROPHE -← (‎ Гˈ ‎) 0413 02C8 CYRILLIC CAPITAL LETTER GHE, MODIFIER LETTER VERTICAL LINE -← (‎ Г' ‎) 0413 0027 CYRILLIC CAPITAL LETTER GHE, APOSTROPHE # →Гˈ→ -← (‎ Ґ ‎) 0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN # →Гˈ→ - -# Γ· Ꮁ· ᒥ· ᒥᐧ ᒯ - (‎ Γ· ‎) 0393 00B7 GREEK CAPITAL LETTER GAMMA, MIDDLE DOT -← (‎ Ꮁ· ‎) 13B1 00B7 CHEROKEE LETTER HU, MIDDLE DOT # →ᒥ·→ -← (‎ ᒥ· ‎) 14A5 00B7 CANADIAN SYLLABICS MI, MIDDLE DOT -← (‎ ᒥᐧ ‎) 14A5 1427 CANADIAN SYLLABICS MI, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᒥ·→ -← (‎ ᒯ ‎) 14AF CANADIAN SYLLABICS WEST-CREE MWI # →ᒥᐧ→→ᒥ·→ - -# Γ̵ Г̵ Ғ - (‎ Γ̵ ‎) 0393 0335 GREEK CAPITAL LETTER GAMMA, COMBINING SHORT STROKE OVERLAY -← (‎ Г̵ ‎) 0413 0335 CYRILLIC CAPITAL LETTER GHE, COMBINING SHORT STROKE OVERLAY -← (‎ Ғ ‎) 0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE # →Г̵→ - -# Δ ᐃ Ⲇ ⵠ 𐊅 𐊣 𖼚 ∆ △ 🜂 𝚫 𝛥 𝜟 𝝙 𝞓 - (‎ Δ ‎) 0394 GREEK CAPITAL LETTER DELTA -← (‎ ᐃ ‎) 1403 CANADIAN SYLLABICS I -← (‎ Ⲇ ‎) 2C86 COPTIC CAPITAL LETTER DALDA -← (‎ ⵠ ‎) 2D60 TIFINAGH LETTER YAV -← (‎ 𐊅 ‎) 10285 LYCIAN LETTER D -← (‎ 𐊣 ‎) 102A3 CARIAN LETTER L -← (‎ 𖼚 ‎) 16F1A MIAO LETTER TLHA -← (‎ ∆ ‎) 2206 INCREMENT -← (‎ △ ‎) 25B3 WHITE UP-POINTING TRIANGLE -← (‎ 🜂 ‎) 1F702 ALCHEMICAL SYMBOL FOR FIRE # →△→ -← (‎ 𝚫 ‎) 1D6AB MATHEMATICAL BOLD CAPITAL DELTA -← (‎ 𝛥 ‎) 1D6E5 MATHEMATICAL ITALIC CAPITAL DELTA -← (‎ 𝜟 ‎) 1D71F MATHEMATICAL BOLD ITALIC CAPITAL DELTA -← (‎ 𝝙 ‎) 1D759 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA -← (‎ 𝞓 ‎) 1D793 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA - -# Δ· ᐃ· ᐃᐧ ᐏ - (‎ Δ· ‎) 0394 00B7 GREEK CAPITAL LETTER DELTA, MIDDLE DOT -← (‎ ᐃ· ‎) 1403 00B7 CANADIAN SYLLABICS I, MIDDLE DOT # →ᐃᐧ→ -← (‎ ᐃᐧ ‎) 1403 1427 CANADIAN SYLLABICS I, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐏ ‎) 140F CANADIAN SYLLABICS WEST-CREE WI # →ᐃᐧ→ - -# Δ̲ ⍙ - (‎ Δ̲ ‎) 0394 0332 GREEK CAPITAL LETTER DELTA, COMBINING LOW LINE -← (‎ ⍙ ‎) 2359 APL FUNCTIONAL SYMBOL DELTA UNDERBAR - -# Δᐠ ᐃᐠ ᐬ - (‎ Δᐠ ‎) 0394 1420 GREEK CAPITAL LETTER DELTA, CANADIAN SYLLABICS FINAL GRAVE -← (‎ ᐃᐠ ‎) 1403 1420 CANADIAN SYLLABICS I, CANADIAN SYLLABICS FINAL GRAVE -← (‎ ᐬ ‎) 142C CANADIAN SYLLABICS IN # →ᐃᐠ→ - -# Ξ 𝚵 𝛯 𝜩 𝝣 𝞝 - (‎ Ξ ‎) 039E GREEK CAPITAL LETTER XI -← (‎ 𝚵 ‎) 1D6B5 MATHEMATICAL BOLD CAPITAL XI -← (‎ 𝛯 ‎) 1D6EF MATHEMATICAL ITALIC CAPITAL XI -← (‎ 𝜩 ‎) 1D729 MATHEMATICAL BOLD ITALIC CAPITAL XI -← (‎ 𝝣 ‎) 1D763 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI -← (‎ 𝞝 ‎) 1D79D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI - -# Π П Ⲡ ꛛ ∏ ℿ 𝚷 𝛱 𝜫 𝝥 𝞟 - (‎ Π ‎) 03A0 GREEK CAPITAL LETTER PI -← (‎ П ‎) 041F CYRILLIC CAPITAL LETTER PE -← (‎ Ⲡ ‎) 2CA0 COPTIC CAPITAL LETTER PI -← (‎ ꛛ ‎) A6DB BAMUM LETTER NA -← (‎ ∏ ‎) 220F N-ARY PRODUCT -← (‎ ℿ ‎) 213F DOUBLE-STRUCK CAPITAL PI -← (‎ 𝚷 ‎) 1D6B7 MATHEMATICAL BOLD CAPITAL PI -← (‎ 𝛱 ‎) 1D6F1 MATHEMATICAL ITALIC CAPITAL PI -← (‎ 𝜫 ‎) 1D72B MATHEMATICAL BOLD ITALIC CAPITAL PI -← (‎ 𝝥 ‎) 1D765 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI -← (‎ 𝞟 ‎) 1D79F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI - -# Φ ቀ Ф Փ ᛰ Ⲫ 𐊳 𝚽 𝛷 𝜱 𝝫 𝞥 - (‎ Φ ‎) 03A6 GREEK CAPITAL LETTER PHI -← (‎ ቀ ‎) 1240 ETHIOPIC SYLLABLE QA # →Փ→ -← (‎ Ф ‎) 0424 CYRILLIC CAPITAL LETTER EF -← (‎ Փ ‎) 0553 ARMENIAN CAPITAL LETTER PIWR -← (‎ ᛰ ‎) 16F0 RUNIC BELGTHOR SYMBOL -← (‎ Ⲫ ‎) 2CAA COPTIC CAPITAL LETTER FI -← (‎ 𐊳 ‎) 102B3 CARIAN LETTER NN -← (‎ 𝚽 ‎) 1D6BD MATHEMATICAL BOLD CAPITAL PHI -← (‎ 𝛷 ‎) 1D6F7 MATHEMATICAL ITALIC CAPITAL PHI -← (‎ 𝜱 ‎) 1D731 MATHEMATICAL BOLD ITALIC CAPITAL PHI -← (‎ 𝝫 ‎) 1D76B MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI -← (‎ 𝞥 ‎) 1D7A5 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI - -# Ψ Ѱ ᛘ Ⲯ 𐊵 𐓑 𝚿 𝛹 𝜳 𝝭 𝞧 - (‎ Ψ ‎) 03A8 GREEK CAPITAL LETTER PSI -← (‎ Ѱ ‎) 0470 CYRILLIC CAPITAL LETTER PSI -← (‎ ᛘ ‎) 16D8 RUNIC LETTER LONG-BRANCH-MADR M -← (‎ Ⲯ ‎) 2CAE COPTIC CAPITAL LETTER PSI -← (‎ 𐊵 ‎) 102B5 CARIAN LETTER N -← (‎ 𐓑 ‎) 104D1 OSAGE CAPITAL LETTER GHA -← (‎ 𝚿 ‎) 1D6BF MATHEMATICAL BOLD CAPITAL PSI -← (‎ 𝛹 ‎) 1D6F9 MATHEMATICAL ITALIC CAPITAL PSI -← (‎ 𝜳 ‎) 1D733 MATHEMATICAL BOLD ITALIC CAPITAL PSI -← (‎ 𝝭 ‎) 1D76D MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI -← (‎ 𝞧 ‎) 1D7A7 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI - -# Ω ᘯ ᘵ 𐊶 Ω 𝛀 𝛺 𝜴 𝝮 𝞨 - (‎ Ω ‎) 03A9 GREEK CAPITAL LETTER OMEGA -← (‎ ᘯ ‎) 162F CANADIAN SYLLABICS CARRIER LHO -← (‎ ᘵ ‎) 1635 CANADIAN SYLLABICS CARRIER TLHO # →ᘯ→ -← (‎ 𐊶 ‎) 102B6 CARIAN LETTER TT2 -← (‎ Ω ‎) 2126 OHM SIGN -← (‎ 𝛀 ‎) 1D6C0 MATHEMATICAL BOLD CAPITAL OMEGA -← (‎ 𝛺 ‎) 1D6FA MATHEMATICAL ITALIC CAPITAL OMEGA -← (‎ 𝜴 ‎) 1D734 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA -← (‎ 𝝮 ‎) 1D76E MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA -← (‎ 𝞨 ‎) 1D7A8 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA - -# ẟ δ ծ ᕷ ⸹ 𝛅 𝛿 𝜹 𝝳 𝞭 - (‎ δ ‎) 03B4 GREEK SMALL LETTER DELTA -← (‎ ẟ ‎) 1E9F LATIN SMALL LETTER DELTA -← (‎ ծ ‎) 056E ARMENIAN SMALL LETTER CA -← (‎ ᕷ ‎) 1577 CANADIAN SYLLABICS NUNAVIK HO -← (‎ ⸹ ‎) 2E39 TOP HALF SECTION SIGN -← (‎ 𝛅 ‎) 1D6C5 MATHEMATICAL BOLD SMALL DELTA -← (‎ 𝛿 ‎) 1D6FF MATHEMATICAL ITALIC SMALL DELTA -← (‎ 𝜹 ‎) 1D739 MATHEMATICAL BOLD ITALIC SMALL DELTA -← (‎ 𝝳 ‎) 1D773 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA -← (‎ 𝞭 ‎) 1D7AD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA - -# ꞓ̲ ε̲ ⍷ - (‎ ε̲ ‎) 03B5 0332 GREEK SMALL LETTER EPSILON, COMBINING LOW LINE -← (‎ ꞓ̲ ‎) A793 0332 LATIN SMALL LETTER C WITH BAR, COMBINING LOW LINE -← (‎ ⍷ ‎) 2377 APL FUNCTIONAL SYMBOL EPSILON UNDERBAR - -# ζ 𝛇 𝜁 𝜻 𝝵 𝞯 - (‎ ζ ‎) 03B6 GREEK SMALL LETTER ZETA -← (‎ 𝛇 ‎) 1D6C7 MATHEMATICAL BOLD SMALL ZETA -← (‎ 𝜁 ‎) 1D701 MATHEMATICAL ITALIC SMALL ZETA -← (‎ 𝜻 ‎) 1D73B MATHEMATICAL BOLD ITALIC SMALL ZETA -← (‎ 𝝵 ‎) 1D775 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA -← (‎ 𝞯 ‎) 1D7AF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA - -# λ Ⲗ 𐓛 𝛌 𝜆 𝝀 𝝺 𝞴 - (‎ λ ‎) 03BB GREEK SMALL LETTER LAMDA -← (‎ Ⲗ ‎) 2C96 COPTIC CAPITAL LETTER LAULA -← (‎ 𐓛 ‎) 104DB OSAGE SMALL LETTER AH -← (‎ 𝛌 ‎) 1D6CC MATHEMATICAL BOLD SMALL LAMDA -← (‎ 𝜆 ‎) 1D706 MATHEMATICAL ITALIC SMALL LAMDA -← (‎ 𝝀 ‎) 1D740 MATHEMATICAL BOLD ITALIC SMALL LAMDA -← (‎ 𝝺 ‎) 1D77A MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA -← (‎ 𝞴 ‎) 1D7B4 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA - -# ξ 𝛏 𝜉 𝝃 𝝽 𝞷 - (‎ ξ ‎) 03BE GREEK SMALL LETTER XI -← (‎ 𝛏 ‎) 1D6CF MATHEMATICAL BOLD SMALL XI -← (‎ 𝜉 ‎) 1D709 MATHEMATICAL ITALIC SMALL XI -← (‎ 𝝃 ‎) 1D743 MATHEMATICAL BOLD ITALIC SMALL XI -← (‎ 𝝽 ‎) 1D77D MATHEMATICAL SANS-SERIF BOLD SMALL XI -← (‎ 𝞷 ‎) 1D7B7 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI - -# π п ᴨ ℼ ϖ 𝛑 𝛡 𝜋 𝜛 𝝅 𝝕 𝝿 𝞏 𝞹 𝟉 - (‎ π ‎) 03C0 GREEK SMALL LETTER PI -← (‎ п ‎) 043F CYRILLIC SMALL LETTER PE -← (‎ ᴨ ‎) 1D28 GREEK LETTER SMALL CAPITAL PI # →п→ -← (‎ ℼ ‎) 213C DOUBLE-STRUCK SMALL PI -← (‎ ϖ ‎) 03D6 GREEK PI SYMBOL -← (‎ 𝛑 ‎) 1D6D1 MATHEMATICAL BOLD SMALL PI -← (‎ 𝛡 ‎) 1D6E1 MATHEMATICAL BOLD PI SYMBOL -← (‎ 𝜋 ‎) 1D70B MATHEMATICAL ITALIC SMALL PI -← (‎ 𝜛 ‎) 1D71B MATHEMATICAL ITALIC PI SYMBOL -← (‎ 𝝅 ‎) 1D745 MATHEMATICAL BOLD ITALIC SMALL PI -← (‎ 𝝕 ‎) 1D755 MATHEMATICAL BOLD ITALIC PI SYMBOL -← (‎ 𝝿 ‎) 1D77F MATHEMATICAL SANS-SERIF BOLD SMALL PI -← (‎ 𝞏 ‎) 1D78F MATHEMATICAL SANS-SERIF BOLD PI SYMBOL -← (‎ 𝞹 ‎) 1D7B9 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI -← (‎ 𝟉 ‎) 1D7C9 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL - -# ς ϛ 𝛓 𝜍 𝝇 𝞁 𝞻 - (‎ ς ‎) 03C2 GREEK SMALL LETTER FINAL SIGMA -← (‎ ϛ ‎) 03DB GREEK SMALL LETTER STIGMA -← (‎ 𝛓 ‎) 1D6D3 MATHEMATICAL BOLD SMALL FINAL SIGMA -← (‎ 𝜍 ‎) 1D70D MATHEMATICAL ITALIC SMALL FINAL SIGMA -← (‎ 𝝇 ‎) 1D747 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA -← (‎ 𝞁 ‎) 1D781 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA -← (‎ 𝞻 ‎) 1D7BB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA - -# ᴛ τ т ꭲ 𝛕 𝜏 𝝉 𝞃 𝞽 - (‎ τ ‎) 03C4 GREEK SMALL LETTER TAU -← (‎ ᴛ ‎) 1D1B LATIN LETTER SMALL CAPITAL T -← (‎ т ‎) 0442 CYRILLIC SMALL LETTER TE -← (‎ ꭲ ‎) AB72 CHEROKEE SMALL LETTER I # →ᴛ→ -← (‎ 𝛕 ‎) 1D6D5 MATHEMATICAL BOLD SMALL TAU -← (‎ 𝜏 ‎) 1D70F MATHEMATICAL ITALIC SMALL TAU -← (‎ 𝝉 ‎) 1D749 MATHEMATICAL BOLD ITALIC SMALL TAU -← (‎ 𝞃 ‎) 1D783 MATHEMATICAL SANS-SERIF BOLD SMALL TAU -← (‎ 𝞽 ‎) 1D7BD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU - -# χ ⲭ ꭓ ꭕ 𝛘 𝜒 𝝌 𝞆 𝟀 - (‎ χ ‎) 03C7 GREEK SMALL LETTER CHI -← (‎ ⲭ ‎) 2CAD COPTIC SMALL LETTER KHI -← (‎ ꭓ ‎) AB53 LATIN SMALL LETTER CHI -← (‎ ꭕ ‎) AB55 LATIN SMALL LETTER CHI WITH LOW LEFT SERIF -← (‎ 𝛘 ‎) 1D6D8 MATHEMATICAL BOLD SMALL CHI -← (‎ 𝜒 ‎) 1D712 MATHEMATICAL ITALIC SMALL CHI -← (‎ 𝝌 ‎) 1D74C MATHEMATICAL BOLD ITALIC SMALL CHI -← (‎ 𝞆 ‎) 1D786 MATHEMATICAL SANS-SERIF BOLD SMALL CHI -← (‎ 𝟀 ‎) 1D7C0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI - -# ψ ѱ 𐓹 𝛙 𝜓 𝝍 𝞇 𝟁 - (‎ ψ ‎) 03C8 GREEK SMALL LETTER PSI -← (‎ ѱ ‎) 0471 CYRILLIC SMALL LETTER PSI -← (‎ 𐓹 ‎) 104F9 OSAGE SMALL LETTER GHA -← (‎ 𝛙 ‎) 1D6D9 MATHEMATICAL BOLD SMALL PSI -← (‎ 𝜓 ‎) 1D713 MATHEMATICAL ITALIC SMALL PSI -← (‎ 𝝍 ‎) 1D74D MATHEMATICAL BOLD ITALIC SMALL PSI -← (‎ 𝞇 ‎) 1D787 MATHEMATICAL SANS-SERIF BOLD SMALL PSI -← (‎ 𝟁 ‎) 1D7C1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI - -# ω ⲱ ꙍ ⍵ ꞷ 𝛚 𝜔 𝝎 𝞈 𝟂 - (‎ ω ‎) 03C9 GREEK SMALL LETTER OMEGA -← (‎ ⲱ ‎) 2CB1 COPTIC SMALL LETTER OOU -← (‎ ꙍ ‎) A64D CYRILLIC SMALL LETTER BROAD OMEGA # →ꞷ→ -← (‎ ⍵ ‎) 2375 APL FUNCTIONAL SYMBOL OMEGA -← (‎ ꞷ ‎) A7B7 LATIN SMALL LETTER OMEGA -← (‎ 𝛚 ‎) 1D6DA MATHEMATICAL BOLD SMALL OMEGA -← (‎ 𝜔 ‎) 1D714 MATHEMATICAL ITALIC SMALL OMEGA -← (‎ 𝝎 ‎) 1D74E MATHEMATICAL BOLD ITALIC SMALL OMEGA -← (‎ 𝞈 ‎) 1D788 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA -← (‎ 𝟂 ‎) 1D7C2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA - -# ω̲ ⍹ - (‎ ω̲ ‎) 03C9 0332 GREEK SMALL LETTER OMEGA, COMBINING LOW LINE -← (‎ ⍹ ‎) 2379 APL FUNCTIONAL SYMBOL OMEGA UNDERBAR - -# ϗ ⳤ - (‎ ϗ ‎) 03D7 GREEK KAI SYMBOL -← (‎ ⳤ ‎) 2CE4 COPTIC SYMBOL KAI - -# Ϙ 𐊭 𐌒 - (‎ Ϙ ‎) 03D8 GREEK LETTER ARCHAIC KOPPA -← (‎ 𐊭 ‎) 102AD CARIAN LETTER T -← (‎ 𐌒 ‎) 10312 OLD ITALIC LETTER KU - -# ϝ 𝟋 - (‎ ϝ ‎) 03DD GREEK SMALL LETTER DIGAMMA -← (‎ 𝟋 ‎) 1D7CB MATHEMATICAL BOLD SMALL DIGAMMA - -# Ϭ Ⳝ - (‎ Ϭ ‎) 03EC COPTIC CAPITAL LETTER SHIMA -← (‎ Ⳝ ‎) 2CDC COPTIC CAPITAL LETTER OLD NUBIAN SHIMA - -# Ꜿ Ͽ - (‎ Ͽ ‎) 03FF GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL -← (‎ Ꜿ ‎) A73E LATIN CAPITAL LETTER REVERSED C WITH DOT - -# Ꞓ Є Ⲉ € - (‎ Є ‎) 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE -← (‎ Ꞓ ‎) A792 LATIN CAPITAL LETTER C WITH BAR -← (‎ Ⲉ ‎) 2C88 COPTIC CAPITAL LETTER EIE -← (‎ € ‎) 20AC EURO SIGN - -# Ћ 𐓍 - (‎ Ћ ‎) 040B CYRILLIC CAPITAL LETTER TSHE -← (‎ 𐓍 ‎) 104CD OSAGE CAPITAL LETTER DHA - -# Ѝ Й - (‎ Ѝ ‎) 040D CYRILLIC CAPITAL LETTER I WITH GRAVE -← (‎ Й ‎) 0419 CYRILLIC CAPITAL LETTER SHORT I - -# Ѝ̦ Й̦ Й̡ Ҋ - (‎ Ѝ̦ ‎) 040D 0326 CYRILLIC CAPITAL LETTER I WITH GRAVE, COMBINING COMMA BELOW -← (‎ Й̦ ‎) 0419 0326 CYRILLIC CAPITAL LETTER SHORT I, COMBINING COMMA BELOW # →Й̡→ -← (‎ Й̡ ‎) 0419 0321 CYRILLIC CAPITAL LETTER SHORT I, COMBINING PALATALIZED HOOK BELOW -← (‎ Ҋ ‎) 048A CYRILLIC CAPITAL LETTER SHORT I WITH TAIL # →Й̡→ - -# Ж̩ Җ - (‎ Ж̩ ‎) 0416 0329 CYRILLIC CAPITAL LETTER ZHE, COMBINING VERTICAL LINE BELOW -← (‎ Җ ‎) 0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER - -# Ш Ⲽ - (‎ Ш ‎) 0428 CYRILLIC CAPITAL LETTER SHA -← (‎ Ⲽ ‎) 2CBC COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI - -# Ъl Ъ1 ЪІ Ꙑ - (‎ Ъ1 ‎) 042A 0031 CYRILLIC CAPITAL LETTER HARD SIGN, DIGIT ONE -← (‎ Ъl ‎) 042A 006C CYRILLIC CAPITAL LETTER HARD SIGN, LATIN SMALL LETTER L # →ЪІ→ -← (‎ ЪІ ‎) 042A 0406 CYRILLIC CAPITAL LETTER HARD SIGN, CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -← (‎ Ꙑ ‎) A650 CYRILLIC CAPITAL LETTER YERU WITH BACK YER # →ЪІ→ - -# Э ℈ - (‎ Э ‎) 042D CYRILLIC CAPITAL LETTER E -← (‎ ℈ ‎) 2108 SCRUPLE - -# ж̩ җ - (‎ ж̩ ‎) 0436 0329 CYRILLIC SMALL LETTER ZHE, COMBINING VERTICAL LINE BELOW -← (‎ җ ‎) 0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER - -# й ѝ - (‎ й ‎) 0439 CYRILLIC SMALL LETTER SHORT I -← (‎ ѝ ‎) 045D CYRILLIC SMALL LETTER I WITH GRAVE - -# й̦ й̡ ҋ - (‎ й̡ ‎) 0439 0321 CYRILLIC SMALL LETTER SHORT I, COMBINING PALATALIZED HOOK BELOW -← (‎ й̦ ‎) 0439 0326 CYRILLIC SMALL LETTER SHORT I, COMBINING COMMA BELOW -← (‎ ҋ ‎) 048B CYRILLIC SMALL LETTER SHORT I WITH TAIL - -# л ᴫ - (‎ л ‎) 043B CYRILLIC SMALL LETTER EL -← (‎ ᴫ ‎) 1D2B CYRILLIC LETTER SMALL CAPITAL EL - -# л̦ л̡ ӆ - (‎ л̡ ‎) 043B 0321 CYRILLIC SMALL LETTER EL, COMBINING PALATALIZED HOOK BELOW -← (‎ л̦ ‎) 043B 0326 CYRILLIC SMALL LETTER EL, COMBINING COMMA BELOW -← (‎ ӆ ‎) 04C6 CYRILLIC SMALL LETTER EL WITH TAIL - -# ᴛ̩ т̩ ҭ - (‎ т̩ ‎) 0442 0329 CYRILLIC SMALL LETTER TE, COMBINING VERTICAL LINE BELOW -← (‎ ᴛ̩ ‎) 1D1B 0329 LATIN LETTER SMALL CAPITAL T, COMBINING VERTICAL LINE BELOW -← (‎ ҭ ‎) 04AD CYRILLIC SMALL LETTER TE WITH DESCENDER - -# ш ⲽ - (‎ ш ‎) 0448 CYRILLIC SMALL LETTER SHA -← (‎ ⲽ ‎) 2CBD COPTIC SMALL LETTER CRYPTOGRAMMIC NI - -# ᴙ я - (‎ я ‎) 044F CYRILLIC SMALL LETTER YA -← (‎ ᴙ ‎) 1D19 LATIN LETTER SMALL CAPITAL REVERSED R - -# љ ꭠ - (‎ љ ‎) 0459 CYRILLIC SMALL LETTER LJE -← (‎ ꭠ ‎) AB60 LATIN SMALL LETTER SAKHA YAT - -# Ѡ Ꮗ ᗯ 𝈢 - (‎ Ѡ ‎) 0460 CYRILLIC CAPITAL LETTER OMEGA -← (‎ Ꮗ ‎) 13C7 CHEROKEE LETTER QUE -← (‎ ᗯ ‎) 15EF CANADIAN SYLLABICS CARRIER GU -← (‎ 𝈢 ‎) 1D222 GREEK INSTRUMENTAL NOTATION SYMBOL-8 - -# Ѡ· Ꮗ· ᗯ· ᗯᐧ ᣭ - (‎ Ѡ· ‎) 0460 00B7 CYRILLIC CAPITAL LETTER OMEGA, MIDDLE DOT -← (‎ Ꮗ· ‎) 13C7 00B7 CHEROKEE LETTER QUE, MIDDLE DOT # →ᗯ·→→ᗯᐧ→ -← (‎ ᗯ· ‎) 15EF 00B7 CANADIAN SYLLABICS CARRIER GU, MIDDLE DOT # →ᗯᐧ→ -← (‎ ᗯᐧ ‎) 15EF 1427 CANADIAN SYLLABICS CARRIER GU, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣭ ‎) 18ED CANADIAN SYLLABICS CARRIER GWU # →ᗯᐧ→ - -# Ѡ҆҇ Ѡ҃ Ѽ - (‎ Ѡ҃ ‎) 0460 0483 CYRILLIC CAPITAL LETTER OMEGA, COMBINING CYRILLIC TITLO -← (‎ Ѡ҆҇ ‎) 0460 0486 0487 CYRILLIC CAPITAL LETTER OMEGA, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # →Ѽ→ -← (‎ Ѽ ‎) 047C CYRILLIC CAPITAL LETTER OMEGA WITH TITLO - -# Ҷ Ӌ - (‎ Ҷ ‎) 04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER -← (‎ Ӌ ‎) 04CB CYRILLIC CAPITAL LETTER KHAKASSIAN CHE - -# ҷ ӌ - (‎ ҷ ‎) 04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER -← (‎ ӌ ‎) 04CC CYRILLIC SMALL LETTER KHAKASSIAN CHE - -# Ҽ̨ Ҿ - (‎ Ҽ̨ ‎) 04BC 0328 CYRILLIC CAPITAL LETTER ABKHASIAN CHE, COMBINING OGONEK -← (‎ Ҿ ‎) 04BE CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER - -# Ӄ 𐒼 - (‎ Ӄ ‎) 04C3 CYRILLIC CAPITAL LETTER KA WITH HOOK -← (‎ 𐒼 ‎) 104BC OSAGE CAPITAL LETTER KA - -# Ӿ 𝈂 - (‎ Ӿ ‎) 04FE CYRILLIC CAPITAL LETTER HA WITH STROKE -← (‎ 𝈂 ‎) 1D202 GREEK VOCAL NOTATION SYMBOL-3 - -# ኮ Ի - (‎ Ի ‎) 053B ARMENIAN CAPITAL LETTER INI -← (‎ ኮ ‎) 12AE ETHIOPIC SYLLABLE KO - -# ሆ Մ - (‎ Մ ‎) 0544 ARMENIAN CAPITAL LETTER MEN -← (‎ ሆ ‎) 1206 ETHIOPIC SYLLABLE HO - -# Ո በ ᑎ ꓵ ∩ ⋂ 𝉅 - (‎ Ո ‎) 0548 ARMENIAN CAPITAL LETTER VO -← (‎ በ ‎) 1260 ETHIOPIC SYLLABLE BA -← (‎ ᑎ ‎) 144E CANADIAN SYLLABICS TI -← (‎ ꓵ ‎) A4F5 LISU LETTER UE # →∩→→ᑎ→ -← (‎ ∩ ‎) 2229 INTERSECTION # →ᑎ→ -← (‎ ⋂ ‎) 22C2 N-ARY INTERSECTION # →∩→→ᑎ→ -← (‎ 𝉅 ‎) 1D245 GREEK MUSICAL LEIMMA # →∩→→ᑎ→ - -# Ո' ᑎᑊ በ' ᑎ' ᑨ - (‎ Ո' ‎) 0548 0027 ARMENIAN CAPITAL LETTER VO, APOSTROPHE -← (‎ ᑎᑊ ‎) 144E 144A CANADIAN SYLLABICS TI, CANADIAN SYLLABICS WEST-CREE P # →ᑎ'→ -← (‎ በ' ‎) 1260 0027 ETHIOPIC SYLLABLE BA, APOSTROPHE # →ᑎ'→ -← (‎ ᑎ' ‎) 144E 0027 CANADIAN SYLLABICS TI, APOSTROPHE -← (‎ ᑨ ‎) 1468 CANADIAN SYLLABICS TTI # →ᑎᑊ→→ᑎ'→ - -# Ո· በ· ᑎ· ᑎᐧ ᑚ - (‎ Ո· ‎) 0548 00B7 ARMENIAN CAPITAL LETTER VO, MIDDLE DOT -← (‎ በ· ‎) 1260 00B7 ETHIOPIC SYLLABLE BA, MIDDLE DOT # →ᑎ·→ -← (‎ ᑎ· ‎) 144E 00B7 CANADIAN SYLLABICS TI, MIDDLE DOT -← (‎ ᑎᐧ ‎) 144E 1427 CANADIAN SYLLABICS TI, CANADIAN SYLLABICS FINAL MIDDLE DOT # →ᑎ·→ -← (‎ ᑚ ‎) 145A CANADIAN SYLLABICS WEST-CREE TWI # →ᑎᐧ→→ᑎ·→ - -# ጣ Պ - (‎ Պ ‎) 054A ARMENIAN CAPITAL LETTER PEH -← (‎ ጣ ‎) 1323 ETHIOPIC SYLLABLE THAA - -# ቡ Ռ - (‎ Ռ ‎) 054C ARMENIAN CAPITAL LETTER RA -← (‎ ቡ ‎) 1261 ETHIOPIC SYLLABLE BU - -# Ք ₽ - (‎ Ք ‎) 0554 ARMENIAN CAPITAL LETTER KEH -← (‎ ₽ ‎) 20BD RUBLE SIGN - -# եւ և - (‎ եւ ‎) 0565 0582 ARMENIAN SMALL LETTER ECH, ARMENIAN SMALL LETTER YIWN -← (‎ և ‎) 0587 ARMENIAN SMALL LIGATURE ECH YIWN - -# ձ ኔ - (‎ ձ ‎) 0571 ARMENIAN SMALL LETTER JA -← (‎ ኔ ‎) 1294 ETHIOPIC SYLLABLE NEE - -# մե ﬔ - (‎ մե ‎) 0574 0565 ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER ECH -← (‎ ﬔ ‎) FB14 ARMENIAN SMALL LIGATURE MEN ECH - -# մի ﬕ - (‎ մի ‎) 0574 056B ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER INI -← (‎ ﬕ ‎) FB15 ARMENIAN SMALL LIGATURE MEN INI - -# մխ ﬗ - (‎ մխ ‎) 0574 056D ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER XEH -← (‎ ﬗ ‎) FB17 ARMENIAN SMALL LIGATURE MEN XEH - -# մն ﬓ - (‎ մն ‎) 0574 0576 ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER NOW -← (‎ ﬓ ‎) FB13 ARMENIAN SMALL LIGATURE MEN NOW - -# վն ﬖ - (‎ վն ‎) 057E 0576 ARMENIAN SMALL LETTER VEW, ARMENIAN SMALL LETTER NOW -← (‎ ﬖ ‎) FB16 ARMENIAN SMALL LIGATURE VEW NOW - -# ֖ ֭ - (‎ ֖ ‎) 0596 HEBREW ACCENT TIPEHA -← (‎ ֭ ‎) 05AD HEBREW ACCENT DEHI - -# ֘ ֮ - (‎ ֘ ‎) 0598 HEBREW ACCENT ZARQA -← (‎ ֮ ‎) 05AE HEBREW ACCENT ZINOR - -# ֙ ֨ - (‎ ֙ ‎) 0599 HEBREW ACCENT PASHTA -← (‎ ֨ ‎) 05A8 HEBREW ACCENT QADMA - -# ֚ ֤ - (‎ ֚ ‎) 059A HEBREW ACCENT YETIV -← (‎ ֤ ‎) 05A4 HEBREW ACCENT MAHAPAKH - -# א ℵ ﬡ - (‎ א ‎) 05D0 HEBREW LETTER ALEF -← (‎ ℵ ‎) 2135 ALEF SYMBOL -← (‎ ﬡ ‎) FB21 HEBREW LETTER WIDE ALEF - -# אל ﭏ - (‎ אל ‎) 05D0 05DC HEBREW LETTER ALEF, HEBREW LETTER LAMED -← (‎ ﭏ ‎) FB4F HEBREW LIGATURE ALEF LAMED - -# ב ℶ - (‎ ב ‎) 05D1 HEBREW LETTER BET -← (‎ ℶ ‎) 2136 BET SYMBOL - -# ג ℷ - (‎ ג ‎) 05D2 HEBREW LETTER GIMEL -← (‎ ℷ ‎) 2137 GIMEL SYMBOL - -# ד ℸ ﬢ - (‎ ד ‎) 05D3 HEBREW LETTER DALET -← (‎ ℸ ‎) 2138 DALET SYMBOL -← (‎ ﬢ ‎) FB22 HEBREW LETTER WIDE DALET - -# ה ﬣ - (‎ ה ‎) 05D4 HEBREW LETTER HE -← (‎ ﬣ ‎) FB23 HEBREW LETTER WIDE HE - -# כ ﬤ - (‎ כ ‎) 05DB HEBREW LETTER KAF -← (‎ ﬤ ‎) FB24 HEBREW LETTER WIDE KAF - -# ל ﬥ - (‎ ל ‎) 05DC HEBREW LETTER LAMED -← (‎ ﬥ ‎) FB25 HEBREW LETTER WIDE LAMED - -# ם ﬦ - (‎ ם ‎) 05DD HEBREW LETTER FINAL MEM -← (‎ ﬦ ‎) FB26 HEBREW LETTER WIDE FINAL MEM - -# ע ﬠ - (‎ ע ‎) 05E2 HEBREW LETTER AYIN -← (‎ ﬠ ‎) FB20 HEBREW LETTER ALTERNATIVE AYIN - -# ר ﬧ - (‎ ר ‎) 05E8 HEBREW LETTER RESH -← (‎ ﬧ ‎) FB27 HEBREW LETTER WIDE RESH - -# ת ﬨ - (‎ ת ‎) 05EA HEBREW LETTER TAV -← (‎ ﬨ ‎) FB28 HEBREW LETTER WIDE TAV - -# ، ٬ ⸲ - (‎ ، ‎) 060C ARABIC COMMA -← (‎ ٬ ‎) 066C ARABIC THOUSANDS SEPARATOR -← (‎ ⸲ ‎) 2E32 TURNED COMMA - -# ع ؏ 𞸏 𞸯 𞹏 𞹯 𞺏 𞺯 ﻉ ﻊ ﻋ ﻌ - (‎ ؏ ‎) 060F ARABIC SIGN MISRA -← (‎ ع ‎) 0639 ARABIC LETTER AIN -← (‎ 𞸏 ‎) 1EE0F ARABIC MATHEMATICAL AIN # →‎ع‎→ -← (‎ 𞸯 ‎) 1EE2F ARABIC MATHEMATICAL INITIAL AIN # →‎ع‎→ -← (‎ 𞹏 ‎) 1EE4F ARABIC MATHEMATICAL TAILED AIN # →‎ع‎→ -← (‎ 𞹯 ‎) 1EE6F ARABIC MATHEMATICAL STRETCHED AIN # →‎ع‎→ -← (‎ 𞺏 ‎) 1EE8F ARABIC MATHEMATICAL LOOPED AIN -← (‎ 𞺯 ‎) 1EEAF ARABIC MATHEMATICAL DOUBLE-STRUCK AIN # →‎ع‎→ -← (‎ ﻉ ‎) FEC9 ARABIC LETTER AIN ISOLATED FORM # →‎ع‎→ -← (‎ ﻊ ‎) FECA ARABIC LETTER AIN FINAL FORM # →‎ع‎→ -← (‎ ﻋ ‎) FECB ARABIC LETTER AIN INITIAL FORM # →‎ع‎→ -← (‎ ﻌ ‎) FECC ARABIC LETTER AIN MEDIAL FORM # →‎ع‎→ - -# ؛ ⸵ - (‎ ؛ ‎) 061B ARABIC SEMICOLON -← (‎ ⸵ ‎) 2E35 TURNED SEMICOLON - -# ؟ ⸮ - (‎ ؟ ‎) 061F ARABIC QUESTION MARK -← (‎ ⸮ ‎) 2E2E REVERSED QUESTION MARK - -# ء ﺀ - (‎ ء ‎) 0621 ARABIC LETTER HAMZA -← (‎ ﺀ ‎) FE80 ARABIC LETTER HAMZA ISOLATED FORM - -# ء͈ ۽ - (‎ ء͈ ‎) 0621 0348 ARABIC LETTER HAMZA, COMBINING DOUBLE VERTICAL LINE BELOW -← (‎ ۽ ‎) 06FD ARABIC SIGN SINDHI AMPERSAND - -# آ ﺁ ﺂ - (‎ آ ‎) 0622 ARABIC LETTER ALEF WITH MADDA ABOVE -← (‎ ﺁ ‎) FE81 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM -← (‎ ﺂ ‎) FE82 ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM - -# وٴ ٴو ؤ ٶ ﺅ ﺆ - (‎ ؤ ‎) 0624 ARABIC LETTER WAW WITH HAMZA ABOVE -← (‎ وٴ ‎) 0648 0674 ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →‎ٶ‎→ -← (‎ ٴو ‎) 0674 0648 ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW # →‎ٶ‎→ -← (‎ ٶ ‎) 0676 ARABIC LETTER HIGH HAMZA WAW -← (‎ ﺅ ‎) FE85 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM -← (‎ ﺆ ‎) FE86 ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM - -# ىٴ يٴ ٴى ئ ٸ ﺉ ﺊ ﺋ ﺌ - (‎ ئ ‎) 0626 ARABIC LETTER YEH WITH HAMZA ABOVE -← (‎ ىٴ ‎) 0649 0674 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎يٴ‎→→‎ٸ‎→ -← (‎ يٴ ‎) 064A 0674 ARABIC LETTER YEH, ARABIC LETTER HIGH HAMZA # →‎ٸ‎→ -← (‎ ٴى ‎) 0674 0649 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ٸ‎→ -← (‎ ٸ ‎) 0678 ARABIC LETTER HIGH HAMZA YEH -← (‎ ﺉ ‎) FE89 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM -← (‎ ﺊ ‎) FE8A ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM -← (‎ ﺋ ‎) FE8B ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM -← (‎ ﺌ ‎) FE8C ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM - -# ىٴl ٴىl ىٴ1 ئا ﯪ ﯫ - (‎ ئا ‎) 0626 0627 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER ALEF -← (‎ ىٴl ‎) 0649 0674 006C ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER L -← (‎ ٴىl ‎) 0674 0649 006C ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER L -← (‎ ىٴ1 ‎) 0649 0674 0031 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, DIGIT ONE -← (‎ ﯪ ‎) FBEA ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM -← (‎ ﯫ ‎) FBEB ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM - -# ىٴج ٴىج ئج ﰀ ﲗ - (‎ ئج ‎) 0626 062C ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER JEEM -← (‎ ىٴج ‎) 0649 0674 062C ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER JEEM -← (‎ ٴىج ‎) 0674 0649 062C ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM -← (‎ ﰀ ‎) FC00 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM -← (‎ ﲗ ‎) FC97 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM - -# ىٴح ٴىح ئح ﰁ ﲘ - (‎ ئح ‎) 0626 062D ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER HAH -← (‎ ىٴح ‎) 0649 0674 062D ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER HAH -← (‎ ٴىح ‎) 0674 0649 062D ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH -← (‎ ﰁ ‎) FC01 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM -← (‎ ﲘ ‎) FC98 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM - -# ىٴخ ٴىخ ئخ ﲙ - (‎ ئخ ‎) 0626 062E ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER KHAH -← (‎ ىٴخ ‎) 0649 0674 062E ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER KHAH -← (‎ ٴىخ ‎) 0674 0649 062E ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH -← (‎ ﲙ ‎) FC99 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM - -# ىٴر ٴىر ئر ﱤ - (‎ ئر ‎) 0626 0631 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER REH -← (‎ ىٴر ‎) 0649 0674 0631 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER REH -← (‎ ٴىر ‎) 0674 0649 0631 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER REH -← (‎ ﱤ ‎) FC64 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM - -# ىٴز ٴىز ئز ﱥ - (‎ ئز ‎) 0626 0632 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER ZAIN -← (‎ ىٴز ‎) 0649 0674 0632 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ZAIN -← (‎ ٴىز ‎) 0674 0649 0632 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ZAIN -← (‎ ﱥ ‎) FC65 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM - -# ىٴم ٴىم ئم ﰂ ﱦ ﲚ ﳟ - (‎ ئم ‎) 0626 0645 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER MEEM -← (‎ ىٴم ‎) 0649 0674 0645 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER MEEM -← (‎ ٴىم ‎) 0674 0649 0645 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM -← (‎ ﰂ ‎) FC02 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM -← (‎ ﱦ ‎) FC66 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM -← (‎ ﲚ ‎) FC9A ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM -← (‎ ﳟ ‎) FCDF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM - -# ىٴن ٴىن ئن ﱧ - (‎ ئن ‎) 0626 0646 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER NOON -← (‎ ىٴن ‎) 0649 0674 0646 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER NOON -← (‎ ٴىن ‎) 0674 0649 0646 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER NOON -← (‎ ﱧ ‎) FC67 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM - -# ىٴo ٴىo ىٴه ئه ئە ﯬ ﯭ ﲛ ﳠ - (‎ ئه ‎) 0626 0647 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER HEH -← (‎ ىٴo ‎) 0649 0674 006F ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER O -← (‎ ٴىo ‎) 0674 0649 006F ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O -← (‎ ىٴه ‎) 0649 0674 0647 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER HEH -← (‎ ئە ‎) 0626 06D5 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER AE # →‎ٴىo‎→ -← (‎ ﯬ ‎) FBEC ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM # →‎ئە‎→→‎ٴىo‎→ -← (‎ ﯭ ‎) FBED ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM # →‎ئە‎→→‎ٴىo‎→ -← (‎ ﲛ ‎) FC9B ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM -← (‎ ﳠ ‎) FCE0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM - -# ىٴو ٴىو ئو ﯮ ﯯ - (‎ ئو ‎) 0626 0648 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER WAW -← (‎ ىٴو ‎) 0649 0674 0648 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW -← (‎ ٴىو ‎) 0674 0649 0648 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER WAW -← (‎ ﯮ ‎) FBEE ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM -← (‎ ﯯ ‎) FBEF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM - -# ىٴى ٴىى ئى ئي ﯹ ﯺ ﯻ ﰃ ﰄ ﱨ ﱩ - (‎ ئى ‎) 0626 0649 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER ALEF MAKSURA -← (‎ ىٴى ‎) 0649 0674 0649 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA -← (‎ ٴىى ‎) 0674 0649 0649 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA -← (‎ ئي ‎) 0626 064A ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER YEH # →‎ٴىى‎→ -← (‎ ﯹ ‎) FBF9 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﯺ ‎) FBFA ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -← (‎ ﯻ ‎) FBFB ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM -← (‎ ﰃ ‎) FC03 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰄ ‎) FC04 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM # →‎ئي‎→→‎ٴىى‎→ -← (‎ ﱨ ‎) FC68 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -← (‎ ﱩ ‎) FC69 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM # →‎ئي‎→→‎ٴىى‎→ - -# ىٴو̆ ٴىو̆ ئۆ ﯲ ﯳ - (‎ ئۆ ‎) 0626 06C6 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER OE -← (‎ ىٴو̆ ‎) 0649 0674 0648 0306 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING BREVE -← (‎ ٴىو̆ ‎) 0674 0649 0648 0306 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER WAW, COMBINING BREVE -← (‎ ﯲ ‎) FBF2 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM -← (‎ ﯳ ‎) FBF3 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM - -# ىٴو̓ ٴىو̓ ئۇ ﯰ ﯱ - (‎ ئۇ ‎) 0626 06C7 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER U -← (‎ ىٴو̓ ‎) 0649 0674 0648 0313 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE -← (‎ ٴىو̓ ‎) 0674 0649 0648 0313 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER WAW, COMBINING COMMA ABOVE -← (‎ ﯰ ‎) FBF0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM -← (‎ ﯱ ‎) FBF1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM - -# ىٴوٰ ٴىوٰ ئۈ ﯴ ﯵ - (‎ ئۈ ‎) 0626 06C8 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER YU -← (‎ ىٴوٰ ‎) 0649 0674 0648 0670 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ٴىوٰ ‎) 0674 0649 0648 0670 ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ﯴ ‎) FBF4 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM -← (‎ ﯵ ‎) FBF5 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM - -# ىٴٻ ٴىٻ ئې ﯶ ﯷ ﯸ - (‎ ئې ‎) 0626 06D0 ARABIC LETTER YEH WITH HAMZA ABOVE, ARABIC LETTER E -← (‎ ىٴٻ ‎) 0649 0674 067B ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER BEEH -← (‎ ٴىٻ ‎) 0674 0649 067B ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER BEEH -← (‎ ﯶ ‎) FBF6 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM -← (‎ ﯷ ‎) FBF7 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM -← (‎ ﯸ ‎) FBF8 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM - -# ب 𞸁 𞸡 𞹡 𞺁 𞺡 ﺏ ﺐ ﺑ ﺒ - (‎ ب ‎) 0628 ARABIC LETTER BEH -← (‎ 𞸁 ‎) 1EE01 ARABIC MATHEMATICAL BEH -← (‎ 𞸡 ‎) 1EE21 ARABIC MATHEMATICAL INITIAL BEH -← (‎ 𞹡 ‎) 1EE61 ARABIC MATHEMATICAL STRETCHED BEH -← (‎ 𞺁 ‎) 1EE81 ARABIC MATHEMATICAL LOOPED BEH -← (‎ 𞺡 ‎) 1EEA1 ARABIC MATHEMATICAL DOUBLE-STRUCK BEH -← (‎ ﺏ ‎) FE8F ARABIC LETTER BEH ISOLATED FORM -← (‎ ﺐ ‎) FE90 ARABIC LETTER BEH FINAL FORM -← (‎ ﺑ ‎) FE91 ARABIC LETTER BEH INITIAL FORM -← (‎ ﺒ ‎) FE92 ARABIC LETTER BEH MEDIAL FORM - -# بo به ﲠ ﳢ - (‎ بo ‎) 0628 006F ARABIC LETTER BEH, LATIN SMALL LETTER O -← (‎ به ‎) 0628 0647 ARABIC LETTER BEH, ARABIC LETTER HEH -← (‎ ﲠ ‎) FCA0 ARABIC LIGATURE BEH WITH HEH INITIAL FORM # →‎به‎→ -← (‎ ﳢ ‎) FCE2 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM # →‎به‎→ - -# بج ﰅ ﲜ - (‎ بج ‎) 0628 062C ARABIC LETTER BEH, ARABIC LETTER JEEM -← (‎ ﰅ ‎) FC05 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM -← (‎ ﲜ ‎) FC9C ARABIC LIGATURE BEH WITH JEEM INITIAL FORM - -# بح ﰆ ﲝ - (‎ بح ‎) 0628 062D ARABIC LETTER BEH, ARABIC LETTER HAH -← (‎ ﰆ ‎) FC06 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM -← (‎ ﲝ ‎) FC9D ARABIC LIGATURE BEH WITH HAH INITIAL FORM - -# بحى بحي ﷂ - (‎ بحى ‎) 0628 062D 0649 ARABIC LETTER BEH, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ بحي ‎) 0628 062D 064A ARABIC LETTER BEH, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﷂ ‎) FDC2 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM # →‎بحي‎→ - -# بخ نج ﰇ ﱋ ﲞ ﳒ - (‎ بخ ‎) 0628 062E ARABIC LETTER BEH, ARABIC LETTER KHAH -← (‎ نج ‎) 0646 062C ARABIC LETTER NOON, ARABIC LETTER JEEM # →‎ﳒ‎→→‎ﲞ‎→ -← (‎ ﰇ ‎) FC07 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM -← (‎ ﱋ ‎) FC4B ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM # →‎نج‎→→‎ﳒ‎→→‎ﲞ‎→ -← (‎ ﲞ ‎) FC9E ARABIC LIGATURE BEH WITH KHAH INITIAL FORM -← (‎ ﳒ ‎) FCD2 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM # →‎ﲞ‎→ - -# بخى بخي ﶞ - (‎ بخى ‎) 0628 062E 0649 ARABIC LETTER BEH, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA -← (‎ بخي ‎) 0628 062E 064A ARABIC LETTER BEH, ARABIC LETTER KHAH, ARABIC LETTER YEH -← (‎ ﶞ ‎) FD9E ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM # →‎بخي‎→ - -# بر ﱪ - (‎ بر ‎) 0628 0631 ARABIC LETTER BEH, ARABIC LETTER REH -← (‎ ﱪ ‎) FC6A ARABIC LIGATURE BEH WITH REH FINAL FORM - -# بز ﱫ - (‎ بز ‎) 0628 0632 ARABIC LETTER BEH, ARABIC LETTER ZAIN -← (‎ ﱫ ‎) FC6B ARABIC LIGATURE BEH WITH ZAIN FINAL FORM - -# بم ﰈ ﱬ ﲟ ﳡ - (‎ بم ‎) 0628 0645 ARABIC LETTER BEH, ARABIC LETTER MEEM -← (‎ ﰈ ‎) FC08 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM -← (‎ ﱬ ‎) FC6C ARABIC LIGATURE BEH WITH MEEM FINAL FORM -← (‎ ﲟ ‎) FC9F ARABIC LIGATURE BEH WITH MEEM INITIAL FORM -← (‎ ﳡ ‎) FCE1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM - -# بن ﱭ - (‎ بن ‎) 0628 0646 ARABIC LETTER BEH, ARABIC LETTER NOON -← (‎ ﱭ ‎) FC6D ARABIC LIGATURE BEH WITH NOON FINAL FORM - -# بى بي ﰉ ﰊ ﱮ ﱯ - (‎ بى ‎) 0628 0649 ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA -← (‎ بي ‎) 0628 064A ARABIC LETTER BEH, ARABIC LETTER YEH -← (‎ ﰉ ‎) FC09 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰊ ‎) FC0A ARABIC LIGATURE BEH WITH YEH ISOLATED FORM # →‎بي‎→ -← (‎ ﱮ ‎) FC6E ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM -← (‎ ﱯ ‎) FC6F ARABIC LIGATURE BEH WITH YEH FINAL FORM # →‎بي‎→ - -# بٔ ࢡ - (‎ بٔ ‎) 0628 0654 ARABIC LETTER BEH, ARABIC HAMZA ABOVE -← (‎ ࢡ ‎) 08A1 ARABIC LETTER BEH WITH HAMZA ABOVE - -# بۛ ݑ - (‎ بۛ ‎) 0628 06DB ARABIC LETTER BEH, ARABIC SMALL HIGH THREE DOTS -← (‎ ݑ ‎) 0751 ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE - -# بۢ ࢶ - (‎ بۢ ‎) 0628 06E2 ARABIC LETTER BEH, ARABIC SMALL HIGH MEEM ISOLATED FORM -← (‎ ࢶ ‎) 08B6 ARABIC LETTER BEH WITH SMALL MEEM ABOVE - -# ت 𞸕 𞸵 𞹵 𞺕 𞺵 ﺕ ﺖ ﺗ ﺘ - (‎ ت ‎) 062A ARABIC LETTER TEH -← (‎ 𞸕 ‎) 1EE15 ARABIC MATHEMATICAL TEH -← (‎ 𞸵 ‎) 1EE35 ARABIC MATHEMATICAL INITIAL TEH -← (‎ 𞹵 ‎) 1EE75 ARABIC MATHEMATICAL STRETCHED TEH -← (‎ 𞺕 ‎) 1EE95 ARABIC MATHEMATICAL LOOPED TEH -← (‎ 𞺵 ‎) 1EEB5 ARABIC MATHEMATICAL DOUBLE-STRUCK TEH -← (‎ ﺕ ‎) FE95 ARABIC LETTER TEH ISOLATED FORM -← (‎ ﺖ ‎) FE96 ARABIC LETTER TEH FINAL FORM -← (‎ ﺗ ‎) FE97 ARABIC LETTER TEH INITIAL FORM -← (‎ ﺘ ‎) FE98 ARABIC LETTER TEH MEDIAL FORM - -# تo ته ﲥ ﳤ - (‎ تo ‎) 062A 006F ARABIC LETTER TEH, LATIN SMALL LETTER O -← (‎ ته ‎) 062A 0647 ARABIC LETTER TEH, ARABIC LETTER HEH -← (‎ ﲥ ‎) FCA5 ARABIC LIGATURE TEH WITH HEH INITIAL FORM # →‎ته‎→ -← (‎ ﳤ ‎) FCE4 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM # →‎ته‎→ - -# تج ﰋ ﲡ - (‎ تج ‎) 062A 062C ARABIC LETTER TEH, ARABIC LETTER JEEM -← (‎ ﰋ ‎) FC0B ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM -← (‎ ﲡ ‎) FCA1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM - -# تجم ﵐ - (‎ تجم ‎) 062A 062C 0645 ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﵐ ‎) FD50 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM - -# تجى تجي ﶟ ﶠ - (‎ تجى ‎) 062A 062C 0649 ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ تجي ‎) 062A 062C 064A ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﶟ ‎) FD9F ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM # →‎تجي‎→ -← (‎ ﶠ ‎) FDA0 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM - -# تح ﰌ ﲢ - (‎ تح ‎) 062A 062D ARABIC LETTER TEH, ARABIC LETTER HAH -← (‎ ﰌ ‎) FC0C ARABIC LIGATURE TEH WITH HAH ISOLATED FORM -← (‎ ﲢ ‎) FCA2 ARABIC LIGATURE TEH WITH HAH INITIAL FORM - -# تحج ﵑ ﵒ - (‎ تحج ‎) 062A 062D 062C ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC LETTER JEEM -← (‎ ﵑ ‎) FD51 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM -← (‎ ﵒ ‎) FD52 ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM - -# تحم ﵓ - (‎ تحم ‎) 062A 062D 0645 ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﵓ ‎) FD53 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM - -# تخ ﰍ ﲣ - (‎ تخ ‎) 062A 062E ARABIC LETTER TEH, ARABIC LETTER KHAH -← (‎ ﰍ ‎) FC0D ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM -← (‎ ﲣ ‎) FCA3 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM - -# تخم ﵔ - (‎ تخم ‎) 062A 062E 0645 ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﵔ ‎) FD54 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM - -# تخى تخي ﶡ ﶢ - (‎ تخى ‎) 062A 062E 0649 ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA -← (‎ تخي ‎) 062A 062E 064A ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER YEH -← (‎ ﶡ ‎) FDA1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM # →‎تخي‎→ -← (‎ ﶢ ‎) FDA2 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM - -# تر ﱰ - (‎ تر ‎) 062A 0631 ARABIC LETTER TEH, ARABIC LETTER REH -← (‎ ﱰ ‎) FC70 ARABIC LIGATURE TEH WITH REH FINAL FORM - -# تز ﱱ - (‎ تز ‎) 062A 0632 ARABIC LETTER TEH, ARABIC LETTER ZAIN -← (‎ ﱱ ‎) FC71 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM - -# تم ﰎ ﱲ ﲤ ﳣ - (‎ تم ‎) 062A 0645 ARABIC LETTER TEH, ARABIC LETTER MEEM -← (‎ ﰎ ‎) FC0E ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM -← (‎ ﱲ ‎) FC72 ARABIC LIGATURE TEH WITH MEEM FINAL FORM -← (‎ ﲤ ‎) FCA4 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM -← (‎ ﳣ ‎) FCE3 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM - -# تمج ﵕ - (‎ تمج ‎) 062A 0645 062C ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER JEEM -← (‎ ﵕ ‎) FD55 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM - -# تمح ﵖ - (‎ تمح ‎) 062A 0645 062D ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﵖ ‎) FD56 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM - -# تمخ ﵗ - (‎ تمخ ‎) 062A 0645 062E ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER KHAH -← (‎ ﵗ ‎) FD57 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM - -# تمى تمي ﶣ ﶤ - (‎ تمى ‎) 062A 0645 0649 ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ تمي ‎) 062A 0645 064A ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶣ ‎) FDA3 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM # →‎تمي‎→ -← (‎ ﶤ ‎) FDA4 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM - -# تن ﱳ - (‎ تن ‎) 062A 0646 ARABIC LETTER TEH, ARABIC LETTER NOON -← (‎ ﱳ ‎) FC73 ARABIC LIGATURE TEH WITH NOON FINAL FORM - -# تى تي ﰏ ﰐ ﱴ ﱵ - (‎ تى ‎) 062A 0649 ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA -← (‎ تي ‎) 062A 064A ARABIC LETTER TEH, ARABIC LETTER YEH -← (‎ ﰏ ‎) FC0F ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰐ ‎) FC10 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM # →‎تي‎→ -← (‎ ﱴ ‎) FC74 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM -← (‎ ﱵ ‎) FC75 ARABIC LIGATURE TEH WITH YEH FINAL FORM # →‎تي‎→ - -# ىۛ ٮۛ ںۛ یۛ ث ؿ پ ڽ ۑ 𞸖 𞸶 𞹶 𞺖 𞺶 ﭖ ﭗ ﭘ ﭙ ﺙ ﺚ ﺛ ﺜ - (‎ ث ‎) 062B ARABIC LETTER THEH -← (‎ ىۛ ‎) 0649 06DB ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ٮۛ‎→ -← (‎ ٮۛ ‎) 066E 06DB ARABIC LETTER DOTLESS BEH, ARABIC SMALL HIGH THREE DOTS -← (‎ ںۛ ‎) 06BA 06DB ARABIC LETTER NOON GHUNNA, ARABIC SMALL HIGH THREE DOTS # →‎ىۛ‎→→‎ٮۛ‎→ -← (‎ یۛ ‎) 06CC 06DB ARABIC LETTER FARSI YEH, ARABIC SMALL HIGH THREE DOTS # →‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ؿ ‎) 063F ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE # →‎یۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ پ ‎) 067E ARABIC LETTER PEH # →‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ڽ ‎) 06BD ARABIC LETTER NOON WITH THREE DOTS ABOVE # →‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ۑ ‎) 06D1 ARABIC LETTER YEH WITH THREE DOTS BELOW # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ 𞸖 ‎) 1EE16 ARABIC MATHEMATICAL THEH -← (‎ 𞸶 ‎) 1EE36 ARABIC MATHEMATICAL INITIAL THEH -← (‎ 𞹶 ‎) 1EE76 ARABIC MATHEMATICAL STRETCHED THEH -← (‎ 𞺖 ‎) 1EE96 ARABIC MATHEMATICAL LOOPED THEH -← (‎ 𞺶 ‎) 1EEB6 ARABIC MATHEMATICAL DOUBLE-STRUCK THEH -← (‎ ﭖ ‎) FB56 ARABIC LETTER PEH ISOLATED FORM # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ﭗ ‎) FB57 ARABIC LETTER PEH FINAL FORM # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ﭘ ‎) FB58 ARABIC LETTER PEH INITIAL FORM # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ﭙ ‎) FB59 ARABIC LETTER PEH MEDIAL FORM # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→→‎ىۛ‎→→‎ٮۛ‎→ -← (‎ ﺙ ‎) FE99 ARABIC LETTER THEH ISOLATED FORM -← (‎ ﺚ ‎) FE9A ARABIC LETTER THEH FINAL FORM -← (‎ ﺛ ‎) FE9B ARABIC LETTER THEH INITIAL FORM -← (‎ ﺜ ‎) FE9C ARABIC LETTER THEH MEDIAL FORM - -# ىۛج ثج ﰑ - (‎ ثج ‎) 062B 062C ARABIC LETTER THEH, ARABIC LETTER JEEM -← (‎ ىۛج ‎) 0649 06DB 062C ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM -← (‎ ﰑ ‎) FC11 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM - -# ىۛر ثر ﱶ - (‎ ثر ‎) 062B 0631 ARABIC LETTER THEH, ARABIC LETTER REH -← (‎ ىۛر ‎) 0649 06DB 0631 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER REH -← (‎ ﱶ ‎) FC76 ARABIC LIGATURE THEH WITH REH FINAL FORM - -# ىۛز ثز ﱷ - (‎ ثز ‎) 062B 0632 ARABIC LETTER THEH, ARABIC LETTER ZAIN -← (‎ ىۛز ‎) 0649 06DB 0632 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ZAIN -← (‎ ﱷ ‎) FC77 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM - -# ىۛم ثم ﰒ ﱸ ﲦ ﳥ - (‎ ثم ‎) 062B 0645 ARABIC LETTER THEH, ARABIC LETTER MEEM -← (‎ ىۛم ‎) 0649 06DB 0645 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM -← (‎ ﰒ ‎) FC12 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM -← (‎ ﱸ ‎) FC78 ARABIC LIGATURE THEH WITH MEEM FINAL FORM -← (‎ ﲦ ‎) FCA6 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM -← (‎ ﳥ ‎) FCE5 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM - -# ىۛن ثن ﱹ - (‎ ثن ‎) 062B 0646 ARABIC LETTER THEH, ARABIC LETTER NOON -← (‎ ىۛن ‎) 0649 06DB 0646 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER NOON -← (‎ ﱹ ‎) FC79 ARABIC LIGATURE THEH WITH NOON FINAL FORM - -# ىۛo ىۛه ثه ﳦ - (‎ ثه ‎) 062B 0647 ARABIC LETTER THEH, ARABIC LETTER HEH -← (‎ ىۛo ‎) 0649 06DB 006F ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER O -← (‎ ىۛه ‎) 0649 06DB 0647 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HEH -← (‎ ﳦ ‎) FCE6 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM - -# ىۛى ثى ثي ﰓ ﰔ ﱺ ﱻ - (‎ ثى ‎) 062B 0649 ARABIC LETTER THEH, ARABIC LETTER ALEF MAKSURA -← (‎ ىۛى ‎) 0649 06DB 0649 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA -← (‎ ثي ‎) 062B 064A ARABIC LETTER THEH, ARABIC LETTER YEH # →‎ىۛى‎→ -← (‎ ﰓ ‎) FC13 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰔ ‎) FC14 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM # →‎ثي‎→→‎ىۛى‎→ -← (‎ ﱺ ‎) FC7A ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM -← (‎ ﱻ ‎) FC7B ARABIC LIGATURE THEH WITH YEH FINAL FORM # →‎ثي‎→→‎ىۛى‎→ - -# ج 𞸂 𞸢 𞹂 𞹢 𞺂 𞺢 ﺝ ﺞ ﺟ ﺠ - (‎ ج ‎) 062C ARABIC LETTER JEEM -← (‎ 𞸂 ‎) 1EE02 ARABIC MATHEMATICAL JEEM -← (‎ 𞸢 ‎) 1EE22 ARABIC MATHEMATICAL INITIAL JEEM -← (‎ 𞹂 ‎) 1EE42 ARABIC MATHEMATICAL TAILED JEEM -← (‎ 𞹢 ‎) 1EE62 ARABIC MATHEMATICAL STRETCHED JEEM -← (‎ 𞺂 ‎) 1EE82 ARABIC MATHEMATICAL LOOPED JEEM -← (‎ 𞺢 ‎) 1EEA2 ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM -← (‎ ﺝ ‎) FE9D ARABIC LETTER JEEM ISOLATED FORM -← (‎ ﺞ ‎) FE9E ARABIC LETTER JEEM FINAL FORM -← (‎ ﺟ ‎) FE9F ARABIC LETTER JEEM INITIAL FORM -← (‎ ﺠ ‎) FEA0 ARABIC LETTER JEEM MEDIAL FORM - -# جح ﰕ ﲧ - (‎ جح ‎) 062C 062D ARABIC LETTER JEEM, ARABIC LETTER HAH -← (‎ ﰕ ‎) FC15 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM -← (‎ ﲧ ‎) FCA7 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM - -# جحى جحي ﶦ ﶾ - (‎ جحى ‎) 062C 062D 0649 ARABIC LETTER JEEM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ جحي ‎) 062C 062D 064A ARABIC LETTER JEEM, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶦ ‎) FDA6 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﶾ ‎) FDBE ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM # →‎جحي‎→ - -# جل جلlلo جل جلlله جل جل1له جل جلاله ﷻ - (‎ جل جل1له ‎) 062C 0644 0020 062C 0644 0031 0644 0647 ARABIC LETTER JEEM, ARABIC LETTER LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, DIGIT ONE, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ جل جلlلo ‎) 062C 0644 0020 062C 0644 006C 0644 006F ARABIC LETTER JEEM, ARABIC LETTER LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER LAM, LATIN SMALL LETTER O # →‎جل جلاله‎→ -← (‎ جل جلlله ‎) 062C 0644 0020 062C 0644 006C 0644 0647 ARABIC LETTER JEEM, ARABIC LETTER LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ جل جلاله ‎) 062C 0644 0020 062C 0644 0627 0644 0647 ARABIC LETTER JEEM, ARABIC LETTER LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, ARABIC LETTER ALEF, ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ ﷻ ‎) FDFB ARABIC LIGATURE JALLAJALALOUHOU # →‎جل جلاله‎→ - -# جم ﰖ ﲨ - (‎ جم ‎) 062C 0645 ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﰖ ‎) FC16 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM -← (‎ ﲨ ‎) FCA8 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM - -# جمح ﵘ ﵙ - (‎ جمح ‎) 062C 0645 062D ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﵘ ‎) FD58 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM -← (‎ ﵙ ‎) FD59 ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM - -# جمى جمي ﶥ ﶧ - (‎ جمى ‎) 062C 0645 0649 ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ جمي ‎) 062C 0645 064A ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶥ ‎) FDA5 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM # →‎جمي‎→ -← (‎ ﶧ ‎) FDA7 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM - -# جى جي ﴁ ﴂ ﴝ ﴞ - (‎ جى ‎) 062C 0649 ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ جي ‎) 062C 064A ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﴁ ‎) FD01 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﴂ ‎) FD02 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM # →‎جي‎→ -← (‎ ﴝ ‎) FD1D ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM -← (‎ ﴞ ‎) FD1E ARABIC LIGATURE JEEM WITH YEH FINAL FORM # →‎جي‎→ - -# ح 𞸇 𞸧 𞹇 𞹧 𞺇 𞺧 ﺡ ﺢ ﺣ ﺤ - (‎ ح ‎) 062D ARABIC LETTER HAH -← (‎ 𞸇 ‎) 1EE07 ARABIC MATHEMATICAL HAH -← (‎ 𞸧 ‎) 1EE27 ARABIC MATHEMATICAL INITIAL HAH -← (‎ 𞹇 ‎) 1EE47 ARABIC MATHEMATICAL TAILED HAH -← (‎ 𞹧 ‎) 1EE67 ARABIC MATHEMATICAL STRETCHED HAH -← (‎ 𞺇 ‎) 1EE87 ARABIC MATHEMATICAL LOOPED HAH -← (‎ 𞺧 ‎) 1EEA7 ARABIC MATHEMATICAL DOUBLE-STRUCK HAH -← (‎ ﺡ ‎) FEA1 ARABIC LETTER HAH ISOLATED FORM -← (‎ ﺢ ‎) FEA2 ARABIC LETTER HAH FINAL FORM -← (‎ ﺣ ‎) FEA3 ARABIC LETTER HAH INITIAL FORM -← (‎ ﺤ ‎) FEA4 ARABIC LETTER HAH MEDIAL FORM - -# حج ﰗ ﲩ - (‎ حج ‎) 062D 062C ARABIC LETTER HAH, ARABIC LETTER JEEM -← (‎ ﰗ ‎) FC17 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM -← (‎ ﲩ ‎) FCA9 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM - -# حجى حجي ﶿ - (‎ حجى ‎) 062D 062C 0649 ARABIC LETTER HAH, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ حجي ‎) 062D 062C 064A ARABIC LETTER HAH, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﶿ ‎) FDBF ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM # →‎حجي‎→ - -# حم ﰘ ﲪ - (‎ حم ‎) 062D 0645 ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﰘ ‎) FC18 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM -← (‎ ﲪ ‎) FCAA ARABIC LIGATURE HAH WITH MEEM INITIAL FORM - -# حمى حمي ﵚ ﵛ - (‎ حمى ‎) 062D 0645 0649 ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ حمي ‎) 062D 0645 064A ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﵚ ‎) FD5A ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM # →‎حمي‎→ -← (‎ ﵛ ‎) FD5B ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM - -# حى حي ﳿ ﴀ ﴛ ﴜ - (‎ حى ‎) 062D 0649 ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ حي ‎) 062D 064A ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﳿ ‎) FCFF ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﴀ ‎) FD00 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM # →‎حي‎→ -← (‎ ﴛ ‎) FD1B ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﴜ ‎) FD1C ARABIC LIGATURE HAH WITH YEH FINAL FORM # →‎حي‎→ - -# حٔ ځ ݲ - (‎ حٔ ‎) 062D 0654 ARABIC LETTER HAH, ARABIC HAMZA ABOVE -← (‎ ځ ‎) 0681 ARABIC LETTER HAH WITH HAMZA ABOVE -← (‎ ݲ ‎) 0772 ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE - -# حۛ څ - (‎ حۛ ‎) 062D 06DB ARABIC LETTER HAH, ARABIC SMALL HIGH THREE DOTS -← (‎ څ ‎) 0685 ARABIC LETTER HAH WITH THREE DOTS ABOVE - -# خ 𞸗 𞸷 𞹗 𞹷 𞺗 𞺷 ﺥ ﺦ ﺧ ﺨ - (‎ خ ‎) 062E ARABIC LETTER KHAH -← (‎ 𞸗 ‎) 1EE17 ARABIC MATHEMATICAL KHAH -← (‎ 𞸷 ‎) 1EE37 ARABIC MATHEMATICAL INITIAL KHAH -← (‎ 𞹗 ‎) 1EE57 ARABIC MATHEMATICAL TAILED KHAH -← (‎ 𞹷 ‎) 1EE77 ARABIC MATHEMATICAL STRETCHED KHAH -← (‎ 𞺗 ‎) 1EE97 ARABIC MATHEMATICAL LOOPED KHAH -← (‎ 𞺷 ‎) 1EEB7 ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH -← (‎ ﺥ ‎) FEA5 ARABIC LETTER KHAH ISOLATED FORM -← (‎ ﺦ ‎) FEA6 ARABIC LETTER KHAH FINAL FORM -← (‎ ﺧ ‎) FEA7 ARABIC LETTER KHAH INITIAL FORM -← (‎ ﺨ ‎) FEA8 ARABIC LETTER KHAH MEDIAL FORM - -# خج ﰙ ﲫ - (‎ خج ‎) 062E 062C ARABIC LETTER KHAH, ARABIC LETTER JEEM -← (‎ ﰙ ‎) FC19 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM -← (‎ ﲫ ‎) FCAB ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM - -# خح ﰚ - (‎ خح ‎) 062E 062D ARABIC LETTER KHAH, ARABIC LETTER HAH -← (‎ ﰚ ‎) FC1A ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM - -# خم ﰛ ﲬ - (‎ خم ‎) 062E 0645 ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﰛ ‎) FC1B ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM -← (‎ ﲬ ‎) FCAC ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM - -# خى خي ﴃ ﴄ ﴟ ﴠ - (‎ خى ‎) 062E 0649 ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA -← (‎ خي ‎) 062E 064A ARABIC LETTER KHAH, ARABIC LETTER YEH -← (‎ ﴃ ‎) FD03 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﴄ ‎) FD04 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM # →‎خي‎→ -← (‎ ﴟ ‎) FD1F ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﴠ ‎) FD20 ARABIC LIGATURE KHAH WITH YEH FINAL FORM # →‎خي‎→ - -# د 𐋡 𞸃 𞺃 𞺣 ﺩ ﺪ - (‎ د ‎) 062F ARABIC LETTER DAL -← (‎ 𐋡 ‎) 102E1 COPTIC EPACT DIGIT ONE -← (‎ 𞸃 ‎) 1EE03 ARABIC MATHEMATICAL DAL -← (‎ 𞺃 ‎) 1EE83 ARABIC MATHEMATICAL LOOPED DAL -← (‎ 𞺣 ‎) 1EEA3 ARABIC MATHEMATICAL DOUBLE-STRUCK DAL -← (‎ ﺩ ‎) FEA9 ARABIC LETTER DAL ISOLATED FORM -← (‎ ﺪ ‎) FEAA ARABIC LETTER DAL FINAL FORM - -# د̂ دٛ ۮ - (‎ د̂ ‎) 062F 0302 ARABIC LETTER DAL, COMBINING CIRCUMFLEX ACCENT -← (‎ دٛ ‎) 062F 065B ARABIC LETTER DAL, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ۮ ‎) 06EE ARABIC LETTER DAL WITH INVERTED V # →‎دٛ‎→ - -# د̤̣ د࣮࣭ ࢮ - (‎ د̤̣ ‎) 062F 0324 0323 ARABIC LETTER DAL, COMBINING DIAERESIS BELOW, COMBINING DOT BELOW -← (‎ د࣮࣭ ‎) 062F 08EE 08ED ARABIC LETTER DAL, ARABIC TONE TWO DOTS BELOW, ARABIC TONE ONE DOT BELOW -← (‎ ࢮ ‎) 08AE ARABIC LETTER DAL WITH THREE DOTS BELOW # →‎د࣮࣭‎→ - -# دؕ ڈ ﮈ ﮉ - (‎ دؕ ‎) 062F 0615 ARABIC LETTER DAL, ARABIC SMALL HIGH TAH -← (‎ ڈ ‎) 0688 ARABIC LETTER DDAL -← (‎ ﮈ ‎) FB88 ARABIC LETTER DDAL ISOLATED FORM # →‎ڈ‎→ -← (‎ ﮉ ‎) FB89 ARABIC LETTER DDAL FINAL FORM # →‎ڈ‎→ - -# دۛ ڎ ﮆ ﮇ - (‎ دۛ ‎) 062F 06DB ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS -← (‎ ڎ ‎) 068E ARABIC LETTER DUL -← (‎ ﮆ ‎) FB86 ARABIC LETTER DUL ISOLATED FORM # →‎ڎ‎→ -← (‎ ﮇ ‎) FB87 ARABIC LETTER DUL FINAL FORM # →‎ڎ‎→ - -# ذ 𞸘 𞺘 𞺸 ﺫ ﺬ - (‎ ذ ‎) 0630 ARABIC LETTER THAL -← (‎ 𞸘 ‎) 1EE18 ARABIC MATHEMATICAL THAL -← (‎ 𞺘 ‎) 1EE98 ARABIC MATHEMATICAL LOOPED THAL -← (‎ 𞺸 ‎) 1EEB8 ARABIC MATHEMATICAL DOUBLE-STRUCK THAL -← (‎ ﺫ ‎) FEAB ARABIC LETTER THAL ISOLATED FORM -← (‎ ﺬ ‎) FEAC ARABIC LETTER THAL FINAL FORM - -# ذٰ ﱛ - (‎ ذٰ ‎) 0630 0670 ARABIC LETTER THAL, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ﱛ ‎) FC5B ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM - -# ر 𞸓 𞺓 𞺳 ﺭ ﺮ - (‎ ر ‎) 0631 ARABIC LETTER REH -← (‎ 𞸓 ‎) 1EE13 ARABIC MATHEMATICAL REH -← (‎ 𞺓 ‎) 1EE93 ARABIC MATHEMATICAL LOOPED REH -← (‎ 𞺳 ‎) 1EEB3 ARABIC MATHEMATICAL DOUBLE-STRUCK REH -← (‎ ﺭ ‎) FEAD ARABIC LETTER REH ISOLATED FORM -← (‎ ﺮ ‎) FEAE ARABIC LETTER REH FINAL FORM - -# ر̂ رٛ ۯ - (‎ ر̂ ‎) 0631 0302 ARABIC LETTER REH, COMBINING CIRCUMFLEX ACCENT -← (‎ رٛ ‎) 0631 065B ARABIC LETTER REH, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ۯ ‎) 06EF ARABIC LETTER REH WITH INVERTED V # →‎رٛ‎→ - -# ر̆ رٚ ڒ - (‎ ر̆ ‎) 0631 0306 ARABIC LETTER REH, COMBINING BREVE -← (‎ رٚ ‎) 0631 065A ARABIC LETTER REH, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ ڒ ‎) 0692 ARABIC LETTER REH WITH SMALL V # →‎رٚ‎→ - -# ر̆̇ رۨ ࢹ - (‎ ر̆̇ ‎) 0631 0306 0307 ARABIC LETTER REH, COMBINING BREVE, COMBINING DOT ABOVE -← (‎ رۨ ‎) 0631 06E8 ARABIC LETTER REH, ARABIC SMALL HIGH NOON -← (‎ ࢹ ‎) 08B9 ARABIC LETTER REH WITH SMALL NOON ABOVE # →‎رۨ‎→ - -# رؕ ڑ ﮌ ﮍ - (‎ رؕ ‎) 0631 0615 ARABIC LETTER REH, ARABIC SMALL HIGH TAH -← (‎ ڑ ‎) 0691 ARABIC LETTER RREH -← (‎ ﮌ ‎) FB8C ARABIC LETTER RREH ISOLATED FORM # →‎ڑ‎→ -← (‎ ﮍ ‎) FB8D ARABIC LETTER RREH FINAL FORM # →‎ڑ‎→ - -# رسول ﷶ - (‎ رسول ‎) 0631 0633 0648 0644 ARABIC LETTER REH, ARABIC LETTER SEEN, ARABIC LETTER WAW, ARABIC LETTER LAM -← (‎ ﷶ ‎) FDF6 ARABIC LIGATURE RASOUL ISOLATED FORM - -# رىlل رى1ل ریال ﷼ - (‎ رى1ل ‎) 0631 0649 0031 0644 ARABIC LETTER REH, ARABIC LETTER ALEF MAKSURA, DIGIT ONE, ARABIC LETTER LAM -← (‎ رىlل ‎) 0631 0649 006C 0644 ARABIC LETTER REH, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER L, ARABIC LETTER LAM # →‎ریال‎→ -← (‎ ریال ‎) 0631 06CC 0627 0644 ARABIC LETTER REH, ARABIC LETTER FARSI YEH, ARABIC LETTER ALEF, ARABIC LETTER LAM -← (‎ ﷼ ‎) FDFC RIAL SIGN # →‎ریال‎→ - -# رٔ ݬ - (‎ رٔ ‎) 0631 0654 ARABIC LETTER REH, ARABIC HAMZA ABOVE -← (‎ ݬ ‎) 076C ARABIC LETTER REH WITH HAMZA ABOVE - -# رٰ ﱜ - (‎ رٰ ‎) 0631 0670 ARABIC LETTER REH, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ﱜ ‎) FC5C ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM - -# رۛ ژ ﮊ ﮋ - (‎ رۛ ‎) 0631 06DB ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS -← (‎ ژ ‎) 0698 ARABIC LETTER JEH -← (‎ ﮊ ‎) FB8A ARABIC LETTER JEH ISOLATED FORM # →‎ژ‎→ -← (‎ ﮋ ‎) FB8B ARABIC LETTER JEH FINAL FORM # →‎ژ‎→ - -# ز 𞸆 𞺆 𞺦 ﺯ ﺰ - (‎ ز ‎) 0632 ARABIC LETTER ZAIN -← (‎ 𞸆 ‎) 1EE06 ARABIC MATHEMATICAL ZAIN -← (‎ 𞺆 ‎) 1EE86 ARABIC MATHEMATICAL LOOPED ZAIN -← (‎ 𞺦 ‎) 1EEA6 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN -← (‎ ﺯ ‎) FEAF ARABIC LETTER ZAIN ISOLATED FORM -← (‎ ﺰ ‎) FEB0 ARABIC LETTER ZAIN FINAL FORM - -# ز̂ زٛ ࢲ - (‎ ز̂ ‎) 0632 0302 ARABIC LETTER ZAIN, COMBINING CIRCUMFLEX ACCENT -← (‎ زٛ ‎) 0632 065B ARABIC LETTER ZAIN, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ࢲ ‎) 08B2 ARABIC LETTER ZAIN WITH INVERTED V ABOVE # →‎زٛ‎→ - -# س 𞸎 𞸮 𞹎 𞹮 𞺎 𞺮 ﺱ ﺲ ﺳ ﺴ - (‎ س ‎) 0633 ARABIC LETTER SEEN -← (‎ 𞸎 ‎) 1EE0E ARABIC MATHEMATICAL SEEN -← (‎ 𞸮 ‎) 1EE2E ARABIC MATHEMATICAL INITIAL SEEN -← (‎ 𞹎 ‎) 1EE4E ARABIC MATHEMATICAL TAILED SEEN -← (‎ 𞹮 ‎) 1EE6E ARABIC MATHEMATICAL STRETCHED SEEN -← (‎ 𞺎 ‎) 1EE8E ARABIC MATHEMATICAL LOOPED SEEN -← (‎ 𞺮 ‎) 1EEAE ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN -← (‎ ﺱ ‎) FEB1 ARABIC LETTER SEEN ISOLATED FORM -← (‎ ﺲ ‎) FEB2 ARABIC LETTER SEEN FINAL FORM -← (‎ ﺳ ‎) FEB3 ARABIC LETTER SEEN INITIAL FORM -← (‎ ﺴ ‎) FEB4 ARABIC LETTER SEEN MEDIAL FORM - -# سo سه ﳨ ﴱ - (‎ سo ‎) 0633 006F ARABIC LETTER SEEN, LATIN SMALL LETTER O -← (‎ سه ‎) 0633 0647 ARABIC LETTER SEEN, ARABIC LETTER HEH -← (‎ ﳨ ‎) FCE8 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM # →‎سه‎→ -← (‎ ﴱ ‎) FD31 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM # →‎سه‎→ - -# س̂ سٛ ݾ - (‎ س̂ ‎) 0633 0302 ARABIC LETTER SEEN, COMBINING CIRCUMFLEX ACCENT -← (‎ سٛ ‎) 0633 065B ARABIC LETTER SEEN, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ݾ ‎) 077E ARABIC LETTER SEEN WITH INVERTED V # →‎سٛ‎→ - -# سج ﰜ ﲭ ﴴ - (‎ سج ‎) 0633 062C ARABIC LETTER SEEN, ARABIC LETTER JEEM -← (‎ ﰜ ‎) FC1C ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM -← (‎ ﲭ ‎) FCAD ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM -← (‎ ﴴ ‎) FD34 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM - -# سجح ﵝ - (‎ سجح ‎) 0633 062C 062D ARABIC LETTER SEEN, ARABIC LETTER JEEM, ARABIC LETTER HAH -← (‎ ﵝ ‎) FD5D ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM - -# سجى ﵞ - (‎ سجى ‎) 0633 062C 0649 ARABIC LETTER SEEN, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ ﵞ ‎) FD5E ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM - -# سح ﰝ ﲮ ﴵ - (‎ سح ‎) 0633 062D ARABIC LETTER SEEN, ARABIC LETTER HAH -← (‎ ﰝ ‎) FC1D ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM -← (‎ ﲮ ‎) FCAE ARABIC LIGATURE SEEN WITH HAH INITIAL FORM -← (‎ ﴵ ‎) FD35 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM - -# سحج ﵜ - (‎ سحج ‎) 0633 062D 062C ARABIC LETTER SEEN, ARABIC LETTER HAH, ARABIC LETTER JEEM -← (‎ ﵜ ‎) FD5C ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM - -# سخ ﰞ ﲯ ﴶ - (‎ سخ ‎) 0633 062E ARABIC LETTER SEEN, ARABIC LETTER KHAH -← (‎ ﰞ ‎) FC1E ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM -← (‎ ﲯ ‎) FCAF ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM -← (‎ ﴶ ‎) FD36 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM - -# سخى سخي ﶨ ﷆ - (‎ سخى ‎) 0633 062E 0649 ARABIC LETTER SEEN, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA -← (‎ سخي ‎) 0633 062E 064A ARABIC LETTER SEEN, ARABIC LETTER KHAH, ARABIC LETTER YEH -← (‎ ﶨ ‎) FDA8 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﷆ ‎) FDC6 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM # →‎سخي‎→ - -# سر ﴎ ﴪ - (‎ سر ‎) 0633 0631 ARABIC LETTER SEEN, ARABIC LETTER REH -← (‎ ﴎ ‎) FD0E ARABIC LIGATURE SEEN WITH REH ISOLATED FORM -← (‎ ﴪ ‎) FD2A ARABIC LIGATURE SEEN WITH REH FINAL FORM - -# سم ﰟ ﲰ ﳧ - (‎ سم ‎) 0633 0645 ARABIC LETTER SEEN, ARABIC LETTER MEEM -← (‎ ﰟ ‎) FC1F ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM -← (‎ ﲰ ‎) FCB0 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM -← (‎ ﳧ ‎) FCE7 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM - -# سمج ﵡ - (‎ سمج ‎) 0633 0645 062C ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER JEEM -← (‎ ﵡ ‎) FD61 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM - -# سمح ﵟ ﵠ - (‎ سمح ‎) 0633 0645 062D ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﵟ ‎) FD5F ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM -← (‎ ﵠ ‎) FD60 ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM - -# سمم ﵢ ﵣ - (‎ سمم ‎) 0633 0645 0645 ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵢ ‎) FD62 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM -← (‎ ﵣ ‎) FD63 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM - -# سى سي ﳻ ﳼ ﴗ ﴘ - (‎ سى ‎) 0633 0649 ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA -← (‎ سي ‎) 0633 064A ARABIC LETTER SEEN, ARABIC LETTER YEH -← (‎ ﳻ ‎) FCFB ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﳼ ‎) FCFC ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM # →‎سي‎→ -← (‎ ﴗ ‎) FD17 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM -← (‎ ﴘ ‎) FD18 ARABIC LIGATURE SEEN WITH YEH FINAL FORM # →‎سي‎→ - -# سۛ ش 𞸔 𞸴 𞹔 𞹴 𞺔 𞺴 ﺵ ﺶ ﺷ ﺸ - (‎ سۛ ‎) 0633 06DB ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS -← (‎ ش ‎) 0634 ARABIC LETTER SHEEN -← (‎ 𞸔 ‎) 1EE14 ARABIC MATHEMATICAL SHEEN # →‎ش‎→ -← (‎ 𞸴 ‎) 1EE34 ARABIC MATHEMATICAL INITIAL SHEEN # →‎ش‎→ -← (‎ 𞹔 ‎) 1EE54 ARABIC MATHEMATICAL TAILED SHEEN # →‎ش‎→ -← (‎ 𞹴 ‎) 1EE74 ARABIC MATHEMATICAL STRETCHED SHEEN # →‎ش‎→ -← (‎ 𞺔 ‎) 1EE94 ARABIC MATHEMATICAL LOOPED SHEEN # →‎ش‎→ -← (‎ 𞺴 ‎) 1EEB4 ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN # →‎ش‎→ -← (‎ ﺵ ‎) FEB5 ARABIC LETTER SHEEN ISOLATED FORM # →‎ش‎→ -← (‎ ﺶ ‎) FEB6 ARABIC LETTER SHEEN FINAL FORM # →‎ش‎→ -← (‎ ﺷ ‎) FEB7 ARABIC LETTER SHEEN INITIAL FORM # →‎ش‎→ -← (‎ ﺸ ‎) FEB8 ARABIC LETTER SHEEN MEDIAL FORM # →‎ش‎→ - -# سۛo سۛه شه ﳪ ﴲ - (‎ سۛo ‎) 0633 06DB 006F ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER O -← (‎ سۛه ‎) 0633 06DB 0647 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HEH # →‎شه‎→ -← (‎ شه ‎) 0634 0647 ARABIC LETTER SHEEN, ARABIC LETTER HEH -← (‎ ﳪ ‎) FCEA ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM # →‎شه‎→ -← (‎ ﴲ ‎) FD32 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM # →‎شه‎→ - -# سۛج شج ﴉ ﴥ ﴭ ﴷ - (‎ سۛج ‎) 0633 06DB 062C ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM -← (‎ شج ‎) 0634 062C ARABIC LETTER SHEEN, ARABIC LETTER JEEM -← (‎ ﴉ ‎) FD09 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM # →‎شج‎→ -← (‎ ﴥ ‎) FD25 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM # →‎شج‎→ -← (‎ ﴭ ‎) FD2D ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM # →‎شج‎→ -← (‎ ﴷ ‎) FD37 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM # →‎شج‎→ - -# سۛجى شجي ﵩ - (‎ سۛجى ‎) 0633 06DB 062C 0649 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ شجي ‎) 0634 062C 064A ARABIC LETTER SHEEN, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﵩ ‎) FD69 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM # →‎شجي‎→ - -# سۛح شح ﴊ ﴦ ﴮ ﴸ - (‎ سۛح ‎) 0633 06DB 062D ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH -← (‎ شح ‎) 0634 062D ARABIC LETTER SHEEN, ARABIC LETTER HAH -← (‎ ﴊ ‎) FD0A ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM # →‎شح‎→ -← (‎ ﴦ ‎) FD26 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM # →‎شح‎→ -← (‎ ﴮ ‎) FD2E ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM # →‎شح‎→ -← (‎ ﴸ ‎) FD38 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM # →‎شح‎→ - -# سۛحم شحم ﵧ ﵨ - (‎ سۛحم ‎) 0633 06DB 062D 0645 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ شحم ‎) 0634 062D 0645 ARABIC LETTER SHEEN, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﵧ ‎) FD67 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM # →‎شحم‎→ -← (‎ ﵨ ‎) FD68 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM # →‎شحم‎→ - -# سۛحى شحي ﶪ - (‎ سۛحى ‎) 0633 06DB 062D 0649 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ شحي ‎) 0634 062D 064A ARABIC LETTER SHEEN, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶪ ‎) FDAA ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM # →‎شحي‎→ - -# سۛخ شخ ﴋ ﴧ ﴯ ﴹ - (‎ سۛخ ‎) 0633 06DB 062E ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER KHAH -← (‎ شخ ‎) 0634 062E ARABIC LETTER SHEEN, ARABIC LETTER KHAH -← (‎ ﴋ ‎) FD0B ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM # →‎شخ‎→ -← (‎ ﴧ ‎) FD27 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM # →‎شخ‎→ -← (‎ ﴯ ‎) FD2F ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM # →‎شخ‎→ -← (‎ ﴹ ‎) FD39 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM # →‎شخ‎→ - -# سۛر شر ﴍ ﴩ - (‎ سۛر ‎) 0633 06DB 0631 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER REH -← (‎ شر ‎) 0634 0631 ARABIC LETTER SHEEN, ARABIC LETTER REH -← (‎ ﴍ ‎) FD0D ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM # →‎شر‎→ -← (‎ ﴩ ‎) FD29 ARABIC LIGATURE SHEEN WITH REH FINAL FORM # →‎شر‎→ - -# سۛم شم ﳩ ﴌ ﴨ ﴰ - (‎ سۛم ‎) 0633 06DB 0645 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM -← (‎ شم ‎) 0634 0645 ARABIC LETTER SHEEN, ARABIC LETTER MEEM -← (‎ ﳩ ‎) FCE9 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM # →‎شم‎→ -← (‎ ﴌ ‎) FD0C ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM # →‎شم‎→ -← (‎ ﴨ ‎) FD28 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM # →‎شم‎→ -← (‎ ﴰ ‎) FD30 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM # →‎شم‎→ - -# سۛمخ شمخ ﵪ ﵫ - (‎ سۛمخ ‎) 0633 06DB 0645 062E ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER KHAH -← (‎ شمخ ‎) 0634 0645 062E ARABIC LETTER SHEEN, ARABIC LETTER MEEM, ARABIC LETTER KHAH -← (‎ ﵪ ‎) FD6A ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM # →‎شمخ‎→ -← (‎ ﵫ ‎) FD6B ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM # →‎شمخ‎→ - -# سۛمم شمم ﵬ ﵭ - (‎ سۛمم ‎) 0633 06DB 0645 0645 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ شمم ‎) 0634 0645 0645 ARABIC LETTER SHEEN, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵬ ‎) FD6C ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM # →‎شمم‎→ -← (‎ ﵭ ‎) FD6D ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM # →‎شمم‎→ - -# سۛى شى شي ﳽ ﳾ ﴙ ﴚ - (‎ سۛى ‎) 0633 06DB 0649 ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA -← (‎ شى ‎) 0634 0649 ARABIC LETTER SHEEN, ARABIC LETTER ALEF MAKSURA -← (‎ شي ‎) 0634 064A ARABIC LETTER SHEEN, ARABIC LETTER YEH -← (‎ ﳽ ‎) FCFD ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM # →‎شى‎→ -← (‎ ﳾ ‎) FCFE ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM # →‎شي‎→ -← (‎ ﴙ ‎) FD19 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM # →‎شى‎→ -← (‎ ﴚ ‎) FD1A ARABIC LIGATURE SHEEN WITH YEH FINAL FORM # →‎شي‎→ - -# ص 𐋲 𞸑 𞸱 𞹑 𞹱 𞺑 𞺱 ﺹ ﺺ ﺻ ﺼ - (‎ ص ‎) 0635 ARABIC LETTER SAD -← (‎ 𐋲 ‎) 102F2 COPTIC EPACT NUMBER NINETY -← (‎ 𞸑 ‎) 1EE11 ARABIC MATHEMATICAL SAD -← (‎ 𞸱 ‎) 1EE31 ARABIC MATHEMATICAL INITIAL SAD -← (‎ 𞹑 ‎) 1EE51 ARABIC MATHEMATICAL TAILED SAD -← (‎ 𞹱 ‎) 1EE71 ARABIC MATHEMATICAL STRETCHED SAD -← (‎ 𞺑 ‎) 1EE91 ARABIC MATHEMATICAL LOOPED SAD -← (‎ 𞺱 ‎) 1EEB1 ARABIC MATHEMATICAL DOUBLE-STRUCK SAD -← (‎ ﺹ ‎) FEB9 ARABIC LETTER SAD ISOLATED FORM -← (‎ ﺺ ‎) FEBA ARABIC LETTER SAD FINAL FORM -← (‎ ﺻ ‎) FEBB ARABIC LETTER SAD INITIAL FORM -← (‎ ﺼ ‎) FEBC ARABIC LETTER SAD MEDIAL FORM - -# ص̤̣ ص࣮࣭ ࢯ - (‎ ص̤̣ ‎) 0635 0324 0323 ARABIC LETTER SAD, COMBINING DIAERESIS BELOW, COMBINING DOT BELOW -← (‎ ص࣮࣭ ‎) 0635 08EE 08ED ARABIC LETTER SAD, ARABIC TONE TWO DOTS BELOW, ARABIC TONE ONE DOT BELOW -← (‎ ࢯ ‎) 08AF ARABIC LETTER SAD WITH THREE DOTS BELOW # →‎ص࣮࣭‎→ - -# صح ﰠ ﲱ - (‎ صح ‎) 0635 062D ARABIC LETTER SAD, ARABIC LETTER HAH -← (‎ ﰠ ‎) FC20 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM -← (‎ ﲱ ‎) FCB1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM - -# صحح ﵤ ﵥ - (‎ صحح ‎) 0635 062D 062D ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER HAH -← (‎ ﵤ ‎) FD64 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM -← (‎ ﵥ ‎) FD65 ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM - -# صحى صحي ﶩ - (‎ صحى ‎) 0635 062D 0649 ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ صحي ‎) 0635 062D 064A ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶩ ‎) FDA9 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM # →‎صحي‎→ - -# صخ ﲲ - (‎ صخ ‎) 0635 062E ARABIC LETTER SAD, ARABIC LETTER KHAH -← (‎ ﲲ ‎) FCB2 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM - -# صر ﴏ ﴫ - (‎ صر ‎) 0635 0631 ARABIC LETTER SAD, ARABIC LETTER REH -← (‎ ﴏ ‎) FD0F ARABIC LIGATURE SAD WITH REH ISOLATED FORM -← (‎ ﴫ ‎) FD2B ARABIC LIGATURE SAD WITH REH FINAL FORM - -# صلعم ﷵ - (‎ صلعم ‎) 0635 0644 0639 0645 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER AIN, ARABIC LETTER MEEM -← (‎ ﷵ ‎) FDF5 ARABIC LIGATURE SALAM ISOLATED FORM - -# صلى صلے ﷰ ﷹ - (‎ صلى ‎) 0635 0644 0649 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA -← (‎ صلے ‎) 0635 0644 06D2 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER YEH BARREE -← (‎ ﷰ ‎) FDF0 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM # →‎صلے‎→ -← (‎ ﷹ ‎) FDF9 ARABIC LIGATURE SALLA ISOLATED FORM - -# صلى lللo علىo وسلم صلى lلله علىه وسلم صلى 1لله علىه وسلم صلى الله عليه وسلم ﷺ - (‎ صلى 1لله علىه وسلم ‎) 0635 0644 0649 0020 0031 0644 0644 0647 0020 0639 0644 0649 0647 0020 0648 0633 0644 0645 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, SPACE, DIGIT ONE, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH, SPACE, ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HEH, SPACE, ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM -← (‎ صلى lللo علىo وسلم ‎) 0635 0644 0649 0020 006C 0644 0644 006F 0020 0639 0644 0649 006F 0020 0648 0633 0644 0645 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, SPACE, LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, LATIN SMALL LETTER O, SPACE, ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O, SPACE, ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM # →‎صلى الله عليه وسلم‎→ -← (‎ صلى lلله علىه وسلم ‎) 0635 0644 0649 0020 006C 0644 0644 0647 0020 0639 0644 0649 0647 0020 0648 0633 0644 0645 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, SPACE, LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH, SPACE, ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HEH, SPACE, ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM -← (‎ صلى الله عليه وسلم ‎) 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, SPACE, ARABIC LETTER ALEF, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC LETTER HEH, SPACE, ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER YEH, ARABIC LETTER HEH, SPACE, ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM -← (‎ ﷺ ‎) FDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM # →‎صلى الله عليه وسلم‎→ - -# صم ﰡ ﲳ - (‎ صم ‎) 0635 0645 ARABIC LETTER SAD, ARABIC LETTER MEEM -← (‎ ﰡ ‎) FC21 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM -← (‎ ﲳ ‎) FCB3 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM - -# صمم ﵦ ﷅ - (‎ صمم ‎) 0635 0645 0645 ARABIC LETTER SAD, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵦ ‎) FD66 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM -← (‎ ﷅ ‎) FDC5 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM - -# صى صي ﴅ ﴆ ﴡ ﴢ - (‎ صى ‎) 0635 0649 ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA -← (‎ صي ‎) 0635 064A ARABIC LETTER SAD, ARABIC LETTER YEH -← (‎ ﴅ ‎) FD05 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﴆ ‎) FD06 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM # →‎صي‎→ -← (‎ ﴡ ‎) FD21 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM -← (‎ ﴢ ‎) FD22 ARABIC LIGATURE SAD WITH YEH FINAL FORM # →‎صي‎→ - -# صۛ ڞ - (‎ صۛ ‎) 0635 06DB ARABIC LETTER SAD, ARABIC SMALL HIGH THREE DOTS -← (‎ ڞ ‎) 069E ARABIC LETTER SAD WITH THREE DOTS ABOVE - -# ض 𞸙 𞸹 𞹙 𞹹 𞺙 𞺹 ﺽ ﺾ ﺿ ﻀ - (‎ ض ‎) 0636 ARABIC LETTER DAD -← (‎ 𞸙 ‎) 1EE19 ARABIC MATHEMATICAL DAD -← (‎ 𞸹 ‎) 1EE39 ARABIC MATHEMATICAL INITIAL DAD -← (‎ 𞹙 ‎) 1EE59 ARABIC MATHEMATICAL TAILED DAD -← (‎ 𞹹 ‎) 1EE79 ARABIC MATHEMATICAL STRETCHED DAD -← (‎ 𞺙 ‎) 1EE99 ARABIC MATHEMATICAL LOOPED DAD -← (‎ 𞺹 ‎) 1EEB9 ARABIC MATHEMATICAL DOUBLE-STRUCK DAD -← (‎ ﺽ ‎) FEBD ARABIC LETTER DAD ISOLATED FORM -← (‎ ﺾ ‎) FEBE ARABIC LETTER DAD FINAL FORM -← (‎ ﺿ ‎) FEBF ARABIC LETTER DAD INITIAL FORM -← (‎ ﻀ ‎) FEC0 ARABIC LETTER DAD MEDIAL FORM - -# ضج ﰢ ﲴ - (‎ ضج ‎) 0636 062C ARABIC LETTER DAD, ARABIC LETTER JEEM -← (‎ ﰢ ‎) FC22 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM -← (‎ ﲴ ‎) FCB4 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM - -# ضح ﰣ ﲵ - (‎ ضح ‎) 0636 062D ARABIC LETTER DAD, ARABIC LETTER HAH -← (‎ ﰣ ‎) FC23 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM -← (‎ ﲵ ‎) FCB5 ARABIC LIGATURE DAD WITH HAH INITIAL FORM - -# ضحى ضحي ﵮ ﶫ - (‎ ضحى ‎) 0636 062D 0649 ARABIC LETTER DAD, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ ضحي ‎) 0636 062D 064A ARABIC LETTER DAD, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﵮ ‎) FD6E ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﶫ ‎) FDAB ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM # →‎ضحي‎→ - -# ضخ ﰤ ﲶ - (‎ ضخ ‎) 0636 062E ARABIC LETTER DAD, ARABIC LETTER KHAH -← (‎ ﰤ ‎) FC24 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM -← (‎ ﲶ ‎) FCB6 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM - -# ضخم ﵯ ﵰ - (‎ ضخم ‎) 0636 062E 0645 ARABIC LETTER DAD, ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﵯ ‎) FD6F ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM -← (‎ ﵰ ‎) FD70 ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM - -# ضر ﴐ ﴬ - (‎ ضر ‎) 0636 0631 ARABIC LETTER DAD, ARABIC LETTER REH -← (‎ ﴐ ‎) FD10 ARABIC LIGATURE DAD WITH REH ISOLATED FORM -← (‎ ﴬ ‎) FD2C ARABIC LIGATURE DAD WITH REH FINAL FORM - -# ضم ﰥ ﲷ - (‎ ضم ‎) 0636 0645 ARABIC LETTER DAD, ARABIC LETTER MEEM -← (‎ ﰥ ‎) FC25 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM -← (‎ ﲷ ‎) FCB7 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM - -# ضى ضي ﴇ ﴈ ﴣ ﴤ - (‎ ضى ‎) 0636 0649 ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA -← (‎ ضي ‎) 0636 064A ARABIC LETTER DAD, ARABIC LETTER YEH -← (‎ ﴇ ‎) FD07 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﴈ ‎) FD08 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM # →‎ضي‎→ -← (‎ ﴣ ‎) FD23 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM -← (‎ ﴤ ‎) FD24 ARABIC LIGATURE DAD WITH YEH FINAL FORM # →‎ضي‎→ - -# ط 𐋨 𞸈 𞹨 𞺈 𞺨 ﻁ ﻂ ﻃ ﻄ - (‎ ط ‎) 0637 ARABIC LETTER TAH -← (‎ 𐋨 ‎) 102E8 COPTIC EPACT DIGIT EIGHT -← (‎ 𞸈 ‎) 1EE08 ARABIC MATHEMATICAL TAH -← (‎ 𞹨 ‎) 1EE68 ARABIC MATHEMATICAL STRETCHED TAH -← (‎ 𞺈 ‎) 1EE88 ARABIC MATHEMATICAL LOOPED TAH -← (‎ 𞺨 ‎) 1EEA8 ARABIC MATHEMATICAL DOUBLE-STRUCK TAH -← (‎ ﻁ ‎) FEC1 ARABIC LETTER TAH ISOLATED FORM -← (‎ ﻂ ‎) FEC2 ARABIC LETTER TAH FINAL FORM -← (‎ ﻃ ‎) FEC3 ARABIC LETTER TAH INITIAL FORM -← (‎ ﻄ ‎) FEC4 ARABIC LETTER TAH MEDIAL FORM - -# طح ﰦ ﲸ - (‎ طح ‎) 0637 062D ARABIC LETTER TAH, ARABIC LETTER HAH -← (‎ ﰦ ‎) FC26 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM -← (‎ ﲸ ‎) FCB8 ARABIC LIGATURE TAH WITH HAH INITIAL FORM - -# طم ﰧ ﴳ ﴺ - (‎ طم ‎) 0637 0645 ARABIC LETTER TAH, ARABIC LETTER MEEM -← (‎ ﰧ ‎) FC27 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM -← (‎ ﴳ ‎) FD33 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM -← (‎ ﴺ ‎) FD3A ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM - -# طمح ﵱ ﵲ - (‎ طمح ‎) 0637 0645 062D ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﵱ ‎) FD71 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM -← (‎ ﵲ ‎) FD72 ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM - -# طمم ﵳ - (‎ طمم ‎) 0637 0645 0645 ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵳ ‎) FD73 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM - -# طمى طمي ﵴ - (‎ طمى ‎) 0637 0645 0649 ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ طمي ‎) 0637 0645 064A ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﵴ ‎) FD74 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM # →‎طمي‎→ - -# طى طي ﳵ ﳶ ﴑ ﴒ - (‎ طى ‎) 0637 0649 ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA -← (‎ طي ‎) 0637 064A ARABIC LETTER TAH, ARABIC LETTER YEH -← (‎ ﳵ ‎) FCF5 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﳶ ‎) FCF6 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM # →‎طي‎→ -← (‎ ﴑ ‎) FD11 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﴒ ‎) FD12 ARABIC LIGATURE TAH WITH YEH FINAL FORM # →‎طي‎→ - -# طۛ ڟ - (‎ طۛ ‎) 0637 06DB ARABIC LETTER TAH, ARABIC SMALL HIGH THREE DOTS -← (‎ ڟ ‎) 069F ARABIC LETTER TAH WITH THREE DOTS ABOVE - -# ظ 𞸚 𞹺 𞺚 𞺺 ﻅ ﻆ ﻇ ﻈ - (‎ ظ ‎) 0638 ARABIC LETTER ZAH -← (‎ 𞸚 ‎) 1EE1A ARABIC MATHEMATICAL ZAH -← (‎ 𞹺 ‎) 1EE7A ARABIC MATHEMATICAL STRETCHED ZAH -← (‎ 𞺚 ‎) 1EE9A ARABIC MATHEMATICAL LOOPED ZAH -← (‎ 𞺺 ‎) 1EEBA ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH -← (‎ ﻅ ‎) FEC5 ARABIC LETTER ZAH ISOLATED FORM -← (‎ ﻆ ‎) FEC6 ARABIC LETTER ZAH FINAL FORM -← (‎ ﻇ ‎) FEC7 ARABIC LETTER ZAH INITIAL FORM -← (‎ ﻈ ‎) FEC8 ARABIC LETTER ZAH MEDIAL FORM - -# ظم ﰨ ﲹ ﴻ - (‎ ظم ‎) 0638 0645 ARABIC LETTER ZAH, ARABIC LETTER MEEM -← (‎ ﰨ ‎) FC28 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM -← (‎ ﲹ ‎) FCB9 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM -← (‎ ﴻ ‎) FD3B ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM - -# عج ﰩ ﲺ - (‎ عج ‎) 0639 062C ARABIC LETTER AIN, ARABIC LETTER JEEM -← (‎ ﰩ ‎) FC29 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM -← (‎ ﲺ ‎) FCBA ARABIC LIGATURE AIN WITH JEEM INITIAL FORM - -# عجم ﵵ ﷄ - (‎ عجم ‎) 0639 062C 0645 ARABIC LETTER AIN, ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﵵ ‎) FD75 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM -← (‎ ﷄ ‎) FDC4 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM - -# علىo علىه عليه ﷷ - (‎ علىo ‎) 0639 0644 0649 006F ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O -← (‎ علىه ‎) 0639 0644 0649 0647 ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HEH # →‎عليه‎→ -← (‎ عليه ‎) 0639 0644 064A 0647 ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER YEH, ARABIC LETTER HEH -← (‎ ﷷ ‎) FDF7 ARABIC LIGATURE ALAYHE ISOLATED FORM # →‎عليه‎→ - -# عم ﰪ ﲻ - (‎ عم ‎) 0639 0645 ARABIC LETTER AIN, ARABIC LETTER MEEM -← (‎ ﰪ ‎) FC2A ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM -← (‎ ﲻ ‎) FCBB ARABIC LIGATURE AIN WITH MEEM INITIAL FORM - -# عمم ﵶ ﵷ - (‎ عمم ‎) 0639 0645 0645 ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵶ ‎) FD76 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM -← (‎ ﵷ ‎) FD77 ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM - -# عمى عمي ﵸ ﶶ - (‎ عمى ‎) 0639 0645 0649 ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ عمي ‎) 0639 0645 064A ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﵸ ‎) FD78 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM -← (‎ ﶶ ‎) FDB6 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM # →‎عمي‎→ - -# عى عي ﳷ ﳸ ﴓ ﴔ - (‎ عى ‎) 0639 0649 ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA -← (‎ عي ‎) 0639 064A ARABIC LETTER AIN, ARABIC LETTER YEH -← (‎ ﳷ ‎) FCF7 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﳸ ‎) FCF8 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM # →‎عي‎→ -← (‎ ﴓ ‎) FD13 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM -← (‎ ﴔ ‎) FD14 ARABIC LIGATURE AIN WITH YEH FINAL FORM # →‎عي‎→ - -# غ 𞸛 𞸻 𞹛 𞹻 𞺛 𞺻 ﻍ ﻎ ﻏ ﻐ - (‎ غ ‎) 063A ARABIC LETTER GHAIN -← (‎ 𞸛 ‎) 1EE1B ARABIC MATHEMATICAL GHAIN -← (‎ 𞸻 ‎) 1EE3B ARABIC MATHEMATICAL INITIAL GHAIN -← (‎ 𞹛 ‎) 1EE5B ARABIC MATHEMATICAL TAILED GHAIN -← (‎ 𞹻 ‎) 1EE7B ARABIC MATHEMATICAL STRETCHED GHAIN -← (‎ 𞺛 ‎) 1EE9B ARABIC MATHEMATICAL LOOPED GHAIN -← (‎ 𞺻 ‎) 1EEBB ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN -← (‎ ﻍ ‎) FECD ARABIC LETTER GHAIN ISOLATED FORM -← (‎ ﻎ ‎) FECE ARABIC LETTER GHAIN FINAL FORM -← (‎ ﻏ ‎) FECF ARABIC LETTER GHAIN INITIAL FORM -← (‎ ﻐ ‎) FED0 ARABIC LETTER GHAIN MEDIAL FORM - -# غج ﰫ ﲼ - (‎ غج ‎) 063A 062C ARABIC LETTER GHAIN, ARABIC LETTER JEEM -← (‎ ﰫ ‎) FC2B ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM -← (‎ ﲼ ‎) FCBC ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM - -# غم ﰬ ﲽ - (‎ غم ‎) 063A 0645 ARABIC LETTER GHAIN, ARABIC LETTER MEEM -← (‎ ﰬ ‎) FC2C ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM -← (‎ ﲽ ‎) FCBD ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM - -# غمم ﵹ - (‎ غمم ‎) 063A 0645 0645 ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵹ ‎) FD79 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM - -# غمى غمي ﵺ ﵻ - (‎ غمى ‎) 063A 0645 0649 ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ غمي ‎) 063A 0645 064A ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﵺ ‎) FD7A ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM # →‎غمي‎→ -← (‎ ﵻ ‎) FD7B ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM - -# غى غي ﳹ ﳺ ﴕ ﴖ - (‎ غى ‎) 063A 0649 ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA -← (‎ غي ‎) 063A 064A ARABIC LETTER GHAIN, ARABIC LETTER YEH -← (‎ ﳹ ‎) FCF9 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﳺ ‎) FCFA ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM # →‎غي‎→ -← (‎ ﴕ ‎) FD15 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM -← (‎ ﴖ ‎) FD16 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM # →‎غي‎→ - -# ى̂ یٛ ؽ - (‎ ؽ ‎) 063D ARABIC LETTER FARSI YEH WITH INVERTED V -← (‎ ى̂ ‎) 0649 0302 ARABIC LETTER ALEF MAKSURA, COMBINING CIRCUMFLEX ACCENT # →‎یٛ‎→ -← (‎ یٛ ‎) 06CC 065B ARABIC LETTER FARSI YEH, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE - -# ف ڧ 𞸐 𞸰 𞹰 𞺐 𞺰 ﻑ ﻒ ﻓ ﻔ - (‎ ف ‎) 0641 ARABIC LETTER FEH -← (‎ ڧ ‎) 06A7 ARABIC LETTER QAF WITH DOT ABOVE -← (‎ 𞸐 ‎) 1EE10 ARABIC MATHEMATICAL FEH -← (‎ 𞸰 ‎) 1EE30 ARABIC MATHEMATICAL INITIAL FEH -← (‎ 𞹰 ‎) 1EE70 ARABIC MATHEMATICAL STRETCHED FEH -← (‎ 𞺐 ‎) 1EE90 ARABIC MATHEMATICAL LOOPED FEH -← (‎ 𞺰 ‎) 1EEB0 ARABIC MATHEMATICAL DOUBLE-STRUCK FEH -← (‎ ﻑ ‎) FED1 ARABIC LETTER FEH ISOLATED FORM -← (‎ ﻒ ‎) FED2 ARABIC LETTER FEH FINAL FORM -← (‎ ﻓ ‎) FED3 ARABIC LETTER FEH INITIAL FORM -← (‎ ﻔ ‎) FED4 ARABIC LETTER FEH MEDIAL FORM - -# فج ﰭ ﲾ - (‎ فج ‎) 0641 062C ARABIC LETTER FEH, ARABIC LETTER JEEM -← (‎ ﰭ ‎) FC2D ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM -← (‎ ﲾ ‎) FCBE ARABIC LIGATURE FEH WITH JEEM INITIAL FORM - -# فح ﰮ ﲿ - (‎ فح ‎) 0641 062D ARABIC LETTER FEH, ARABIC LETTER HAH -← (‎ ﰮ ‎) FC2E ARABIC LIGATURE FEH WITH HAH ISOLATED FORM -← (‎ ﲿ ‎) FCBF ARABIC LIGATURE FEH WITH HAH INITIAL FORM - -# فخ ﰯ ﳀ - (‎ فخ ‎) 0641 062E ARABIC LETTER FEH, ARABIC LETTER KHAH -← (‎ ﰯ ‎) FC2F ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM -← (‎ ﳀ ‎) FCC0 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM - -# فخم ﵼ ﵽ - (‎ فخم ‎) 0641 062E 0645 ARABIC LETTER FEH, ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﵼ ‎) FD7C ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM -← (‎ ﵽ ‎) FD7D ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM - -# فم ﰰ ﳁ - (‎ فم ‎) 0641 0645 ARABIC LETTER FEH, ARABIC LETTER MEEM -← (‎ ﰰ ‎) FC30 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM -← (‎ ﳁ ‎) FCC1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM - -# فمى فمي ﷁ - (‎ فمى ‎) 0641 0645 0649 ARABIC LETTER FEH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ فمي ‎) 0641 0645 064A ARABIC LETTER FEH, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﷁ ‎) FDC1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM # →‎فمي‎→ - -# فى في ﰱ ﰲ ﱼ ﱽ - (‎ فى ‎) 0641 0649 ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA -← (‎ في ‎) 0641 064A ARABIC LETTER FEH, ARABIC LETTER YEH -← (‎ ﰱ ‎) FC31 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰲ ‎) FC32 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM # →‎في‎→ -← (‎ ﱼ ‎) FC7C ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM -← (‎ ﱽ ‎) FC7D ARABIC LIGATURE FEH WITH YEH FINAL FORM # →‎في‎→ - -# ق 𞸒 𞸲 𞹒 𞹲 𞺒 𞺲 ﻕ ﻖ ﻗ ﻘ - (‎ ق ‎) 0642 ARABIC LETTER QAF -← (‎ 𞸒 ‎) 1EE12 ARABIC MATHEMATICAL QAF -← (‎ 𞸲 ‎) 1EE32 ARABIC MATHEMATICAL INITIAL QAF -← (‎ 𞹒 ‎) 1EE52 ARABIC MATHEMATICAL TAILED QAF -← (‎ 𞹲 ‎) 1EE72 ARABIC MATHEMATICAL STRETCHED QAF -← (‎ 𞺒 ‎) 1EE92 ARABIC MATHEMATICAL LOOPED QAF -← (‎ 𞺲 ‎) 1EEB2 ARABIC MATHEMATICAL DOUBLE-STRUCK QAF -← (‎ ﻕ ‎) FED5 ARABIC LETTER QAF ISOLATED FORM -← (‎ ﻖ ‎) FED6 ARABIC LETTER QAF FINAL FORM -← (‎ ﻗ ‎) FED7 ARABIC LETTER QAF INITIAL FORM -← (‎ ﻘ ‎) FED8 ARABIC LETTER QAF MEDIAL FORM - -# قح ﰳ ﳂ - (‎ قح ‎) 0642 062D ARABIC LETTER QAF, ARABIC LETTER HAH -← (‎ ﰳ ‎) FC33 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM -← (‎ ﳂ ‎) FCC2 ARABIC LIGATURE QAF WITH HAH INITIAL FORM - -# قلى قلے ﷱ - (‎ قلى ‎) 0642 0644 0649 ARABIC LETTER QAF, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA -← (‎ قلے ‎) 0642 0644 06D2 ARABIC LETTER QAF, ARABIC LETTER LAM, ARABIC LETTER YEH BARREE -← (‎ ﷱ ‎) FDF1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM # →‎قلے‎→ - -# قم ﰴ ﳃ - (‎ قم ‎) 0642 0645 ARABIC LETTER QAF, ARABIC LETTER MEEM -← (‎ ﰴ ‎) FC34 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM -← (‎ ﳃ ‎) FCC3 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM - -# قمح ﵾ ﶴ - (‎ قمح ‎) 0642 0645 062D ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﵾ ‎) FD7E ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM -← (‎ ﶴ ‎) FDB4 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM - -# قمم ﵿ - (‎ قمم ‎) 0642 0645 0645 ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﵿ ‎) FD7F ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM - -# قمى قمي ﶲ - (‎ قمى ‎) 0642 0645 0649 ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ قمي ‎) 0642 0645 064A ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶲ ‎) FDB2 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM # →‎قمي‎→ - -# قى قي ﰵ ﰶ ﱾ ﱿ - (‎ قى ‎) 0642 0649 ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA -← (‎ قي ‎) 0642 064A ARABIC LETTER QAF, ARABIC LETTER YEH -← (‎ ﰵ ‎) FC35 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰶ ‎) FC36 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM # →‎قي‎→ -← (‎ ﱾ ‎) FC7E ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM -← (‎ ﱿ ‎) FC7F ARABIC LIGATURE QAF WITH YEH FINAL FORM # →‎قي‎→ - -# ك ک ڪ 𞸊 𞸪 𞹪 ﮎ ﮏ ﮐ ﮑ ﻙ ﻚ ﻛ ﻜ - (‎ ك ‎) 0643 ARABIC LETTER KAF -← (‎ ک ‎) 06A9 ARABIC LETTER KEHEH -← (‎ ڪ ‎) 06AA ARABIC LETTER SWASH KAF -← (‎ 𞸊 ‎) 1EE0A ARABIC MATHEMATICAL KAF -← (‎ 𞸪 ‎) 1EE2A ARABIC MATHEMATICAL INITIAL KAF -← (‎ 𞹪 ‎) 1EE6A ARABIC MATHEMATICAL STRETCHED KAF -← (‎ ﮎ ‎) FB8E ARABIC LETTER KEHEH ISOLATED FORM # →‎ک‎→ -← (‎ ﮏ ‎) FB8F ARABIC LETTER KEHEH FINAL FORM # →‎ک‎→ -← (‎ ﮐ ‎) FB90 ARABIC LETTER KEHEH INITIAL FORM # →‎ک‎→ -← (‎ ﮑ ‎) FB91 ARABIC LETTER KEHEH MEDIAL FORM # →‎ک‎→ -← (‎ ﻙ ‎) FED9 ARABIC LETTER KAF ISOLATED FORM -← (‎ ﻚ ‎) FEDA ARABIC LETTER KAF FINAL FORM -← (‎ ﻛ ‎) FEDB ARABIC LETTER KAF INITIAL FORM -← (‎ ﻜ ‎) FEDC ARABIC LETTER KAF MEDIAL FORM - -# كl ك1 كا ﰷ ﲀ - (‎ ك1 ‎) 0643 0031 ARABIC LETTER KAF, DIGIT ONE -← (‎ كl ‎) 0643 006C ARABIC LETTER KAF, LATIN SMALL LETTER L # →‎كا‎→ -← (‎ كا ‎) 0643 0627 ARABIC LETTER KAF, ARABIC LETTER ALEF -← (‎ ﰷ ‎) FC37 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM # →‎كا‎→ -← (‎ ﲀ ‎) FC80 ARABIC LIGATURE KAF WITH ALEF FINAL FORM # →‎كا‎→ - -# كج ﰸ ﳄ - (‎ كج ‎) 0643 062C ARABIC LETTER KAF, ARABIC LETTER JEEM -← (‎ ﰸ ‎) FC38 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM -← (‎ ﳄ ‎) FCC4 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM - -# كح ﰹ ﳅ - (‎ كح ‎) 0643 062D ARABIC LETTER KAF, ARABIC LETTER HAH -← (‎ ﰹ ‎) FC39 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM -← (‎ ﳅ ‎) FCC5 ARABIC LIGATURE KAF WITH HAH INITIAL FORM - -# كخ ﰺ ﳆ - (‎ كخ ‎) 0643 062E ARABIC LETTER KAF, ARABIC LETTER KHAH -← (‎ ﰺ ‎) FC3A ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM -← (‎ ﳆ ‎) FCC6 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM - -# كل ﰻ ﲁ ﳇ ﳫ - (‎ كل ‎) 0643 0644 ARABIC LETTER KAF, ARABIC LETTER LAM -← (‎ ﰻ ‎) FC3B ARABIC LIGATURE KAF WITH LAM ISOLATED FORM -← (‎ ﲁ ‎) FC81 ARABIC LIGATURE KAF WITH LAM FINAL FORM -← (‎ ﳇ ‎) FCC7 ARABIC LIGATURE KAF WITH LAM INITIAL FORM -← (‎ ﳫ ‎) FCEB ARABIC LIGATURE KAF WITH LAM MEDIAL FORM - -# كم ﰼ ﲂ ﳈ ﳬ - (‎ كم ‎) 0643 0645 ARABIC LETTER KAF, ARABIC LETTER MEEM -← (‎ ﰼ ‎) FC3C ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM -← (‎ ﲂ ‎) FC82 ARABIC LIGATURE KAF WITH MEEM FINAL FORM -← (‎ ﳈ ‎) FCC8 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM -← (‎ ﳬ ‎) FCEC ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM - -# كمم ﶻ ﷃ - (‎ كمم ‎) 0643 0645 0645 ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﶻ ‎) FDBB ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM -← (‎ ﷃ ‎) FDC3 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM - -# كمى كمي ﶷ - (‎ كمى ‎) 0643 0645 0649 ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ كمي ‎) 0643 0645 064A ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶷ ‎) FDB7 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM # →‎كمي‎→ - -# كى كي ﰽ ﰾ ﲃ ﲄ - (‎ كى ‎) 0643 0649 ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA -← (‎ كي ‎) 0643 064A ARABIC LETTER KAF, ARABIC LETTER YEH -← (‎ ﰽ ‎) FC3D ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﰾ ‎) FC3E ARABIC LIGATURE KAF WITH YEH ISOLATED FORM # →‎كي‎→ -← (‎ ﲃ ‎) FC83 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM -← (‎ ﲄ ‎) FC84 ARABIC LIGATURE KAF WITH YEH FINAL FORM # →‎كي‎→ - -# كۛ کۛ ڭ ݣ ﯓ ﯔ ﯕ ﯖ - (‎ كۛ ‎) 0643 06DB ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS -← (‎ کۛ ‎) 06A9 06DB ARABIC LETTER KEHEH, ARABIC SMALL HIGH THREE DOTS # →‎ݣ‎→→‎ڭ‎→ -← (‎ ڭ ‎) 06AD ARABIC LETTER NG -← (‎ ݣ ‎) 0763 ARABIC LETTER KEHEH WITH THREE DOTS ABOVE # →‎ڭ‎→ -← (‎ ﯓ ‎) FBD3 ARABIC LETTER NG ISOLATED FORM # →‎ڭ‎→ -← (‎ ﯔ ‎) FBD4 ARABIC LETTER NG FINAL FORM # →‎ڭ‎→ -← (‎ ﯕ ‎) FBD5 ARABIC LETTER NG INITIAL FORM # →‎ڭ‎→ -← (‎ ﯖ ‎) FBD6 ARABIC LETTER NG MEDIAL FORM # →‎ڭ‎→ - -# ل 𞸋 𞸫 𞹋 𞺋 𞺫 ﻝ ﻞ ﻟ ﻠ - (‎ ل ‎) 0644 ARABIC LETTER LAM -← (‎ 𞸋 ‎) 1EE0B ARABIC MATHEMATICAL LAM -← (‎ 𞸫 ‎) 1EE2B ARABIC MATHEMATICAL INITIAL LAM -← (‎ 𞹋 ‎) 1EE4B ARABIC MATHEMATICAL TAILED LAM -← (‎ 𞺋 ‎) 1EE8B ARABIC MATHEMATICAL LOOPED LAM -← (‎ 𞺫 ‎) 1EEAB ARABIC MATHEMATICAL DOUBLE-STRUCK LAM -← (‎ ﻝ ‎) FEDD ARABIC LETTER LAM ISOLATED FORM -← (‎ ﻞ ‎) FEDE ARABIC LETTER LAM FINAL FORM -← (‎ ﻟ ‎) FEDF ARABIC LETTER LAM INITIAL FORM -← (‎ ﻠ ‎) FEE0 ARABIC LETTER LAM MEDIAL FORM - -# لl ل1 لا ﻻ ﻼ - (‎ ل1 ‎) 0644 0031 ARABIC LETTER LAM, DIGIT ONE -← (‎ لl ‎) 0644 006C ARABIC LETTER LAM, LATIN SMALL LETTER L # →‎لا‎→ -← (‎ لا ‎) 0644 0627 ARABIC LETTER LAM, ARABIC LETTER ALEF -← (‎ ﻻ ‎) FEFB ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM # →‎لا‎→ -← (‎ ﻼ ‎) FEFC ARABIC LIGATURE LAM WITH ALEF FINAL FORM # →‎لا‎→ - -# لlٕ لٳ لإ ﻹ ﻺ - (‎ لlٕ ‎) 0644 006C 0655 ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC HAMZA BELOW -← (‎ لٳ ‎) 0644 0673 ARABIC LETTER LAM, ARABIC LETTER ALEF WITH WAVY HAMZA BELOW # →‎لإ‎→ -← (‎ لإ ‎) 0644 0625 ARABIC LETTER LAM, ARABIC LETTER ALEF WITH HAMZA BELOW -← (‎ ﻹ ‎) FEF9 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM # →‎لإ‎→ -← (‎ ﻺ ‎) FEFA ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM # →‎لإ‎→ - -# لlٴ لٲ لأ ﻷ ﻸ - (‎ لlٴ ‎) 0644 006C 0674 ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA -← (‎ لٲ ‎) 0644 0672 ARABIC LETTER LAM, ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE # →‎لأ‎→ -← (‎ لأ ‎) 0644 0623 ARABIC LETTER LAM, ARABIC LETTER ALEF WITH HAMZA ABOVE -← (‎ ﻷ ‎) FEF7 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM # →‎لأ‎→ -← (‎ ﻸ ‎) FEF8 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM # →‎لأ‎→ - -# لo له ﳍ - (‎ لo ‎) 0644 006F ARABIC LETTER LAM, LATIN SMALL LETTER O -← (‎ له ‎) 0644 0647 ARABIC LETTER LAM, ARABIC LETTER HEH -← (‎ ﳍ ‎) FCCD ARABIC LIGATURE LAM WITH HEH INITIAL FORM # →‎له‎→ - -# ل̆ لٚ ڵ - (‎ ل̆ ‎) 0644 0306 ARABIC LETTER LAM, COMBINING BREVE -← (‎ لٚ ‎) 0644 065A ARABIC LETTER LAM, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ ڵ ‎) 06B5 ARABIC LETTER LAM WITH SMALL V # →‎لٚ‎→ - -# لآ ﻵ ﻶ - (‎ لآ ‎) 0644 0622 ARABIC LETTER LAM, ARABIC LETTER ALEF WITH MADDA ABOVE -← (‎ ﻵ ‎) FEF5 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM -← (‎ ﻶ ‎) FEF6 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM - -# لج ﰿ ﳉ - (‎ لج ‎) 0644 062C ARABIC LETTER LAM, ARABIC LETTER JEEM -← (‎ ﰿ ‎) FC3F ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM -← (‎ ﳉ ‎) FCC9 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM - -# لجج ﶃ ﶄ - (‎ لجج ‎) 0644 062C 062C ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER JEEM -← (‎ ﶃ ‎) FD83 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM -← (‎ ﶄ ‎) FD84 ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM - -# لجم ﶺ ﶼ - (‎ لجم ‎) 0644 062C 0645 ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﶺ ‎) FDBA ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM -← (‎ ﶼ ‎) FDBC ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM - -# لجى لجي ﶬ - (‎ لجى ‎) 0644 062C 0649 ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ لجي ‎) 0644 062C 064A ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﶬ ‎) FDAC ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM # →‎لجي‎→ - -# لح ﱀ ﳊ - (‎ لح ‎) 0644 062D ARABIC LETTER LAM, ARABIC LETTER HAH -← (‎ ﱀ ‎) FC40 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM -← (‎ ﳊ ‎) FCCA ARABIC LIGATURE LAM WITH HAH INITIAL FORM - -# لحم ﶀ ﶵ - (‎ لحم ‎) 0644 062D 0645 ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﶀ ‎) FD80 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM -← (‎ ﶵ ‎) FDB5 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM - -# لحى لحي ﶁ ﶂ - (‎ لحى ‎) 0644 062D 0649 ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ لحي ‎) 0644 062D 064A ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶁ ‎) FD81 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM # →‎لحي‎→ -← (‎ ﶂ ‎) FD82 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM - -# لخ ﱁ ﳋ - (‎ لخ ‎) 0644 062E ARABIC LETTER LAM, ARABIC LETTER KHAH -← (‎ ﱁ ‎) FC41 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM -← (‎ ﳋ ‎) FCCB ARABIC LIGATURE LAM WITH KHAH INITIAL FORM - -# لخم ﶅ ﶆ - (‎ لخم ‎) 0644 062E 0645 ARABIC LETTER LAM, ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﶅ ‎) FD85 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM -← (‎ ﶆ ‎) FD86 ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM - -# لم ﱂ ﲅ ﳌ ﳭ - (‎ لم ‎) 0644 0645 ARABIC LETTER LAM, ARABIC LETTER MEEM -← (‎ ﱂ ‎) FC42 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM -← (‎ ﲅ ‎) FC85 ARABIC LIGATURE LAM WITH MEEM FINAL FORM -← (‎ ﳌ ‎) FCCC ARABIC LIGATURE LAM WITH MEEM INITIAL FORM -← (‎ ﳭ ‎) FCED ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM - -# لمح ﶇ ﶈ - (‎ لمح ‎) 0644 0645 062D ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﶇ ‎) FD87 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM -← (‎ ﶈ ‎) FD88 ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM - -# لمى لمي ﶭ - (‎ لمى ‎) 0644 0645 0649 ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ لمي ‎) 0644 0645 064A ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶭ ‎) FDAD ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM # →‎لمي‎→ - -# لى لي ﱃ ﱄ ﲆ ﲇ - (‎ لى ‎) 0644 0649 ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA -← (‎ لي ‎) 0644 064A ARABIC LETTER LAM, ARABIC LETTER YEH -← (‎ ﱃ ‎) FC43 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﱄ ‎) FC44 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM # →‎لي‎→ -← (‎ ﲆ ‎) FC86 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM -← (‎ ﲇ ‎) FC87 ARABIC LIGATURE LAM WITH YEH FINAL FORM # →‎لي‎→ - -# لۛ ڷ - (‎ لۛ ‎) 0644 06DB ARABIC LETTER LAM, ARABIC SMALL HIGH THREE DOTS -← (‎ ڷ ‎) 06B7 ARABIC LETTER LAM WITH THREE DOTS ABOVE - -# م 𞸌 𞸬 𞹬 𞺌 𞺬 ﻡ ﻢ ﻣ ﻤ - (‎ م ‎) 0645 ARABIC LETTER MEEM -← (‎ 𞸌 ‎) 1EE0C ARABIC MATHEMATICAL MEEM -← (‎ 𞸬 ‎) 1EE2C ARABIC MATHEMATICAL INITIAL MEEM -← (‎ 𞹬 ‎) 1EE6C ARABIC MATHEMATICAL STRETCHED MEEM -← (‎ 𞺌 ‎) 1EE8C ARABIC MATHEMATICAL LOOPED MEEM -← (‎ 𞺬 ‎) 1EEAC ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM -← (‎ ﻡ ‎) FEE1 ARABIC LETTER MEEM ISOLATED FORM -← (‎ ﻢ ‎) FEE2 ARABIC LETTER MEEM FINAL FORM -← (‎ ﻣ ‎) FEE3 ARABIC LETTER MEEM INITIAL FORM -← (‎ ﻤ ‎) FEE4 ARABIC LETTER MEEM MEDIAL FORM - -# مl م1 ما ﲈ - (‎ م1 ‎) 0645 0031 ARABIC LETTER MEEM, DIGIT ONE -← (‎ مl ‎) 0645 006C ARABIC LETTER MEEM, LATIN SMALL LETTER L # →‎ما‎→ -← (‎ ما ‎) 0645 0627 ARABIC LETTER MEEM, ARABIC LETTER ALEF -← (‎ ﲈ ‎) FC88 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM # →‎ما‎→ - -# م͈ ۾ - (‎ م͈ ‎) 0645 0348 ARABIC LETTER MEEM, COMBINING DOUBLE VERTICAL LINE BELOW -← (‎ ۾ ‎) 06FE ARABIC SIGN SINDHI POSTPOSITION MEN - -# مج ﱅ ﳎ - (‎ مج ‎) 0645 062C ARABIC LETTER MEEM, ARABIC LETTER JEEM -← (‎ ﱅ ‎) FC45 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM -← (‎ ﳎ ‎) FCCE ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM - -# مجح ﶌ - (‎ مجح ‎) 0645 062C 062D ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER HAH -← (‎ ﶌ ‎) FD8C ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM - -# مجخ ﶒ - (‎ مجخ ‎) 0645 062C 062E ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER KHAH -← (‎ ﶒ ‎) FD92 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM - -# مجم ﶍ - (‎ مجم ‎) 0645 062C 0645 ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﶍ ‎) FD8D ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM - -# مجى مجي ﷀ - (‎ مجى ‎) 0645 062C 0649 ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ مجي ‎) 0645 062C 064A ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﷀ ‎) FDC0 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM # →‎مجي‎→ - -# مح ﱆ ﳏ - (‎ مح ‎) 0645 062D ARABIC LETTER MEEM, ARABIC LETTER HAH -← (‎ ﱆ ‎) FC46 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM -← (‎ ﳏ ‎) FCCF ARABIC LIGATURE MEEM WITH HAH INITIAL FORM - -# محج ﶉ - (‎ محج ‎) 0645 062D 062C ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER JEEM -← (‎ ﶉ ‎) FD89 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM - -# محم ﶊ - (‎ محم ‎) 0645 062D 0645 ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﶊ ‎) FD8A ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM - -# محمد ﷴ - (‎ محمد ‎) 0645 062D 0645 062F ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER DAL -← (‎ ﷴ ‎) FDF4 ARABIC LIGATURE MOHAMMAD ISOLATED FORM - -# محى محي ﶋ - (‎ محى ‎) 0645 062D 0649 ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ محي ‎) 0645 062D 064A ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶋ ‎) FD8B ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM # →‎محي‎→ - -# مخ ﱇ ﳐ - (‎ مخ ‎) 0645 062E ARABIC LETTER MEEM, ARABIC LETTER KHAH -← (‎ ﱇ ‎) FC47 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM -← (‎ ﳐ ‎) FCD0 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM - -# مخج ﶎ - (‎ مخج ‎) 0645 062E 062C ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER JEEM -← (‎ ﶎ ‎) FD8E ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM - -# مخم ﶏ - (‎ مخم ‎) 0645 062E 0645 ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER MEEM -← (‎ ﶏ ‎) FD8F ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM - -# مخى مخي ﶹ - (‎ مخى ‎) 0645 062E 0649 ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA -← (‎ مخي ‎) 0645 062E 064A ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER YEH -← (‎ ﶹ ‎) FDB9 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM # →‎مخي‎→ - -# مم ﱈ ﲉ ﳑ - (‎ مم ‎) 0645 0645 ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﱈ ‎) FC48 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM -← (‎ ﲉ ‎) FC89 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM -← (‎ ﳑ ‎) FCD1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM - -# ممى ممي ﶱ - (‎ ممى ‎) 0645 0645 0649 ARABIC LETTER MEEM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ ممي ‎) 0645 0645 064A ARABIC LETTER MEEM, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶱ ‎) FDB1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM # →‎ممي‎→ - -# مى مي ﱉ ﱊ - (‎ مى ‎) 0645 0649 ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ مي ‎) 0645 064A ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﱉ ‎) FC49 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﱊ ‎) FC4A ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM # →‎مي‎→ - -# مۛ ࢧ - (‎ مۛ ‎) 0645 06DB ARABIC LETTER MEEM, ARABIC SMALL HIGH THREE DOTS -← (‎ ࢧ ‎) 08A7 ARABIC LETTER MEEM WITH THREE DOTS ABOVE - -# ن 𞸍 𞸭 𞹍 𞹭 𞺍 𞺭 ﻥ ﻦ ﻧ ﻨ - (‎ ن ‎) 0646 ARABIC LETTER NOON -← (‎ 𞸍 ‎) 1EE0D ARABIC MATHEMATICAL NOON -← (‎ 𞸭 ‎) 1EE2D ARABIC MATHEMATICAL INITIAL NOON -← (‎ 𞹍 ‎) 1EE4D ARABIC MATHEMATICAL TAILED NOON -← (‎ 𞹭 ‎) 1EE6D ARABIC MATHEMATICAL STRETCHED NOON -← (‎ 𞺍 ‎) 1EE8D ARABIC MATHEMATICAL LOOPED NOON -← (‎ 𞺭 ‎) 1EEAD ARABIC MATHEMATICAL DOUBLE-STRUCK NOON -← (‎ ﻥ ‎) FEE5 ARABIC LETTER NOON ISOLATED FORM -← (‎ ﻦ ‎) FEE6 ARABIC LETTER NOON FINAL FORM -← (‎ ﻧ ‎) FEE7 ARABIC LETTER NOON INITIAL FORM -← (‎ ﻨ ‎) FEE8 ARABIC LETTER NOON MEDIAL FORM - -# نo نه ﳖ ﳯ - (‎ نo ‎) 0646 006F ARABIC LETTER NOON, LATIN SMALL LETTER O -← (‎ نه ‎) 0646 0647 ARABIC LETTER NOON, ARABIC LETTER HEH -← (‎ ﳖ ‎) FCD6 ARABIC LIGATURE NOON WITH HEH INITIAL FORM # →‎نه‎→ -← (‎ ﳯ ‎) FCEF ARABIC LIGATURE NOON WITH HEH MEDIAL FORM # →‎نه‎→ - -# ن̆ نٚ ݩ - (‎ ن̆ ‎) 0646 0306 ARABIC LETTER NOON, COMBINING BREVE -← (‎ نٚ ‎) 0646 065A ARABIC LETTER NOON, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ ݩ ‎) 0769 ARABIC LETTER NOON WITH SMALL V # →‎نٚ‎→ - -# نؕ ݨ - (‎ نؕ ‎) 0646 0615 ARABIC LETTER NOON, ARABIC SMALL HIGH TAH -← (‎ ݨ ‎) 0768 ARABIC LETTER NOON WITH SMALL TAH - -# نجح ﶸ ﶽ - (‎ نجح ‎) 0646 062C 062D ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER HAH -← (‎ ﶸ ‎) FDB8 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM -← (‎ ﶽ ‎) FDBD ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM - -# نجم ﶗ ﶘ - (‎ نجم ‎) 0646 062C 0645 ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER MEEM -← (‎ ﶗ ‎) FD97 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM -← (‎ ﶘ ‎) FD98 ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM - -# نجى نجي ﶙ ﷇ - (‎ نجى ‎) 0646 062C 0649 ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ نجي ‎) 0646 062C 064A ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﶙ ‎) FD99 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM -← (‎ ﷇ ‎) FDC7 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM # →‎نجي‎→ - -# نح ﱌ ﳓ - (‎ نح ‎) 0646 062D ARABIC LETTER NOON, ARABIC LETTER HAH -← (‎ ﱌ ‎) FC4C ARABIC LIGATURE NOON WITH HAH ISOLATED FORM -← (‎ ﳓ ‎) FCD3 ARABIC LIGATURE NOON WITH HAH INITIAL FORM - -# نحم ﶕ - (‎ نحم ‎) 0646 062D 0645 ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER MEEM -← (‎ ﶕ ‎) FD95 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM - -# نحى نحي ﶖ ﶳ - (‎ نحى ‎) 0646 062D 0649 ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ نحي ‎) 0646 062D 064A ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶖ ‎) FD96 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM -← (‎ ﶳ ‎) FDB3 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM # →‎نحي‎→ - -# نخ ﱍ ﳔ - (‎ نخ ‎) 0646 062E ARABIC LETTER NOON, ARABIC LETTER KHAH -← (‎ ﱍ ‎) FC4D ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM -← (‎ ﳔ ‎) FCD4 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM - -# نر ﲊ - (‎ نر ‎) 0646 0631 ARABIC LETTER NOON, ARABIC LETTER REH -← (‎ ﲊ ‎) FC8A ARABIC LIGATURE NOON WITH REH FINAL FORM - -# نز ﲋ - (‎ نز ‎) 0646 0632 ARABIC LETTER NOON, ARABIC LETTER ZAIN -← (‎ ﲋ ‎) FC8B ARABIC LIGATURE NOON WITH ZAIN FINAL FORM - -# نم ﱎ ﲌ ﳕ ﳮ - (‎ نم ‎) 0646 0645 ARABIC LETTER NOON, ARABIC LETTER MEEM -← (‎ ﱎ ‎) FC4E ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM -← (‎ ﲌ ‎) FC8C ARABIC LIGATURE NOON WITH MEEM FINAL FORM -← (‎ ﳕ ‎) FCD5 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM -← (‎ ﳮ ‎) FCEE ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM - -# نمى نمي ﶚ ﶛ - (‎ نمى ‎) 0646 0645 0649 ARABIC LETTER NOON, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ نمي ‎) 0646 0645 064A ARABIC LETTER NOON, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶚ ‎) FD9A ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM # →‎نمي‎→ -← (‎ ﶛ ‎) FD9B ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM - -# نن ﲍ - (‎ نن ‎) 0646 0646 ARABIC LETTER NOON, ARABIC LETTER NOON -← (‎ ﲍ ‎) FC8D ARABIC LIGATURE NOON WITH NOON FINAL FORM - -# نى ني ﱏ ﱐ ﲎ ﲏ - (‎ نى ‎) 0646 0649 ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA -← (‎ ني ‎) 0646 064A ARABIC LETTER NOON, ARABIC LETTER YEH -← (‎ ﱏ ‎) FC4F ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM -← (‎ ﱐ ‎) FC50 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM # →‎ني‎→ -← (‎ ﲎ ‎) FC8E ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM -← (‎ ﲏ ‎) FC8F ARABIC LIGATURE NOON WITH YEH FINAL FORM # →‎ني‎→ - -# و ࢱ 𐋤 𞸅 𞺅 𞺥 ﻭ ﻮ - (‎ و ‎) 0648 ARABIC LETTER WAW -← (‎ ࢱ ‎) 08B1 ARABIC LETTER STRAIGHT WAW -← (‎ 𐋤 ‎) 102E4 COPTIC EPACT DIGIT FOUR -← (‎ 𞸅 ‎) 1EE05 ARABIC MATHEMATICAL WAW -← (‎ 𞺅 ‎) 1EE85 ARABIC MATHEMATICAL LOOPED WAW -← (‎ 𞺥 ‎) 1EEA5 ARABIC MATHEMATICAL DOUBLE-STRUCK WAW -← (‎ ﻭ ‎) FEED ARABIC LETTER WAW ISOLATED FORM -← (‎ ﻮ ‎) FEEE ARABIC LETTER WAW FINAL FORM - -# و̂ وٛ ۉ ﯢ ﯣ - (‎ و̂ ‎) 0648 0302 ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT -← (‎ وٛ ‎) 0648 065B ARABIC LETTER WAW, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -← (‎ ۉ ‎) 06C9 ARABIC LETTER KIRGHIZ YU # →‎وٛ‎→ -← (‎ ﯢ ‎) FBE2 ARABIC LETTER KIRGHIZ YU ISOLATED FORM # →‎ۉ‎→→‎وٛ‎→ -← (‎ ﯣ ‎) FBE3 ARABIC LETTER KIRGHIZ YU FINAL FORM # →‎ۉ‎→→‎وٛ‎→ - -# و̆ وٚ ۆ ﯙ ﯚ - (‎ و̆ ‎) 0648 0306 ARABIC LETTER WAW, COMBINING BREVE -← (‎ وٚ ‎) 0648 065A ARABIC LETTER WAW, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ ۆ ‎) 06C6 ARABIC LETTER OE # →‎وٚ‎→ -← (‎ ﯙ ‎) FBD9 ARABIC LETTER OE ISOLATED FORM # →‎ۆ‎→→‎وٚ‎→ -← (‎ ﯚ ‎) FBDA ARABIC LETTER OE FINAL FORM # →‎ۆ‎→→‎وٚ‎→ - -# و̓ وُ ۇ ﯗ ﯘ - (‎ و̓ ‎) 0648 0313 ARABIC LETTER WAW, COMBINING COMMA ABOVE -← (‎ وُ ‎) 0648 064F ARABIC LETTER WAW, ARABIC DAMMA -← (‎ ۇ ‎) 06C7 ARABIC LETTER U # →‎وُ‎→ -← (‎ ﯗ ‎) FBD7 ARABIC LETTER U ISOLATED FORM # →‎ۇ‎→→‎وُ‎→ -← (‎ ﯘ ‎) FBD8 ARABIC LETTER U FINAL FORM # →‎ۇ‎→→‎وُ‎→ - -# و̓ٴ ٴو̓ ٴۇ ۇٴ ٷ ﯝ - (‎ و̓ٴ ‎) 0648 0313 0674 ARABIC LETTER WAW, COMBINING COMMA ABOVE, ARABIC LETTER HIGH HAMZA -← (‎ ٴو̓ ‎) 0674 0648 0313 ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎ٴۇ‎→→‎ٷ‎→→‎ۇٴ‎→ -← (‎ ٴۇ ‎) 0674 06C7 ARABIC LETTER HIGH HAMZA, ARABIC LETTER U # →‎ٷ‎→→‎ۇٴ‎→ -← (‎ ۇٴ ‎) 06C7 0674 ARABIC LETTER U, ARABIC LETTER HIGH HAMZA -← (‎ ٷ ‎) 0677 ARABIC LETTER U WITH HAMZA ABOVE # →‎ۇٴ‎→ -← (‎ ﯝ ‎) FBDD ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM # →‎ۇٴ‎→ - -# وسلم ﷸ - (‎ وسلم ‎) 0648 0633 0644 0645 ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM -← (‎ ﷸ ‎) FDF8 ARABIC LIGATURE WASALLAM ISOLATED FORM - -# وٰ ۈ ﯛ ﯜ - (‎ وٰ ‎) 0648 0670 ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ۈ ‎) 06C8 ARABIC LETTER YU -← (‎ ﯛ ‎) FBDB ARABIC LETTER YU ISOLATED FORM # →‎ۈ‎→ -← (‎ ﯜ ‎) FBDC ARABIC LETTER YU FINAL FORM # →‎ۈ‎→ - -# وۛ ۋ ﯞ ﯟ - (‎ وۛ ‎) 0648 06DB ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS -← (‎ ۋ ‎) 06CB ARABIC LETTER VE -← (‎ ﯞ ‎) FBDE ARABIC LETTER VE ISOLATED FORM # →‎ۋ‎→ -← (‎ ﯟ ‎) FBDF ARABIC LETTER VE FINAL FORM # →‎ۋ‎→ - -# ى ي ں ی ے ٮ ࢽ 𞸉 𞸝 𞸩 𞹉 𞹝 𞹩 𞺉 𞺩 ﮞ ﮟ ﮮ ﮯ ﯨ ﯩ ﯼ ﯽ ﯾ ﯿ ﻯ ﻰ ﻱ ﻲ ﻳ ﻴ 𞸜 𞹼 - (‎ ى ‎) 0649 ARABIC LETTER ALEF MAKSURA -← (‎ ي ‎) 064A ARABIC LETTER YEH -← (‎ ں ‎) 06BA ARABIC LETTER NOON GHUNNA -← (‎ ی ‎) 06CC ARABIC LETTER FARSI YEH -← (‎ ے ‎) 06D2 ARABIC LETTER YEH BARREE # →‎ي‎→ -← (‎ ٮ ‎) 066E ARABIC LETTER DOTLESS BEH -← (‎ ࢽ ‎) 08BD ARABIC LETTER AFRICAN NOON # →‎ں‎→ -← (‎ 𞸉 ‎) 1EE09 ARABIC MATHEMATICAL YEH # →‎ي‎→ -← (‎ 𞸝 ‎) 1EE1D ARABIC MATHEMATICAL DOTLESS NOON # →‎ں‎→ -← (‎ 𞸩 ‎) 1EE29 ARABIC MATHEMATICAL INITIAL YEH # →‎ي‎→ -← (‎ 𞹉 ‎) 1EE49 ARABIC MATHEMATICAL TAILED YEH # →‎ي‎→ -← (‎ 𞹝 ‎) 1EE5D ARABIC MATHEMATICAL TAILED DOTLESS NOON # →‎ں‎→ -← (‎ 𞹩 ‎) 1EE69 ARABIC MATHEMATICAL STRETCHED YEH # →‎ي‎→ -← (‎ 𞺉 ‎) 1EE89 ARABIC MATHEMATICAL LOOPED YEH # →‎ي‎→ -← (‎ 𞺩 ‎) 1EEA9 ARABIC MATHEMATICAL DOUBLE-STRUCK YEH # →‎ي‎→ -← (‎ ﮞ ‎) FB9E ARABIC LETTER NOON GHUNNA ISOLATED FORM # →‎ں‎→ -← (‎ ﮟ ‎) FB9F ARABIC LETTER NOON GHUNNA FINAL FORM # →‎ں‎→ -← (‎ ﮮ ‎) FBAE ARABIC LETTER YEH BARREE ISOLATED FORM # →‎ے‎→→‎ي‎→ -← (‎ ﮯ ‎) FBAF ARABIC LETTER YEH BARREE FINAL FORM # →‎ے‎→→‎ي‎→ -← (‎ ﯨ ‎) FBE8 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM -← (‎ ﯩ ‎) FBE9 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM -← (‎ ﯼ ‎) FBFC ARABIC LETTER FARSI YEH ISOLATED FORM -← (‎ ﯽ ‎) FBFD ARABIC LETTER FARSI YEH FINAL FORM # →‎ﻰ‎→ -← (‎ ﯾ ‎) FBFE ARABIC LETTER FARSI YEH INITIAL FORM # →‎ی‎→ -← (‎ ﯿ ‎) FBFF ARABIC LETTER FARSI YEH MEDIAL FORM # →‎ی‎→ -← (‎ ﻯ ‎) FEEF ARABIC LETTER ALEF MAKSURA ISOLATED FORM -← (‎ ﻰ ‎) FEF0 ARABIC LETTER ALEF MAKSURA FINAL FORM -← (‎ ﻱ ‎) FEF1 ARABIC LETTER YEH ISOLATED FORM # →‎ي‎→ -← (‎ ﻲ ‎) FEF2 ARABIC LETTER YEH FINAL FORM # →‎ي‎→ -← (‎ ﻳ ‎) FEF3 ARABIC LETTER YEH INITIAL FORM # →‎ي‎→ -← (‎ ﻴ ‎) FEF4 ARABIC LETTER YEH MEDIAL FORM # →‎ي‎→ -← (‎ 𞸜 ‎) 1EE1C ARABIC MATHEMATICAL DOTLESS BEH # →‎ٮ‎→ -← (‎ 𞹼 ‎) 1EE7C ARABIC MATHEMATICAL STRETCHED DOTLESS BEH # →‎ٮ‎→ - -# ىo ىه يه ﳞ ﳱ - (‎ ىo ‎) 0649 006F ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O -← (‎ ىه ‎) 0649 0647 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HEH # →‎يه‎→ -← (‎ يه ‎) 064A 0647 ARABIC LETTER YEH, ARABIC LETTER HEH -← (‎ ﳞ ‎) FCDE ARABIC LIGATURE YEH WITH HEH INITIAL FORM # →‎يه‎→ -← (‎ ﳱ ‎) FCF1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM # →‎يه‎→ - -# ى̆ ٮٚ یٚ ێ ݖ - (‎ ى̆ ‎) 0649 0306 ARABIC LETTER ALEF MAKSURA, COMBINING BREVE -← (‎ ٮٚ ‎) 066E 065A ARABIC LETTER DOTLESS BEH, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ یٚ ‎) 06CC 065A ARABIC LETTER FARSI YEH, ARABIC VOWEL SIGN SMALL V ABOVE -← (‎ ێ ‎) 06CE ARABIC LETTER YEH WITH SMALL V # →‎یٚ‎→ -← (‎ ݖ ‎) 0756 ARABIC LETTER BEH WITH SMALL V # →‎ٮٚ‎→ - -# ى̆̇ يۨ ࢺ - (‎ ى̆̇ ‎) 0649 0306 0307 ARABIC LETTER ALEF MAKSURA, COMBINING BREVE, COMBINING DOT ABOVE -← (‎ يۨ ‎) 064A 06E8 ARABIC LETTER YEH, ARABIC SMALL HIGH NOON -← (‎ ࢺ ‎) 08BA ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE # →‎يۨ‎→ - -# ىؕ ٮؕ ںؕ ٹ ڻ ﭦ ﭧ ﭨ ﭩ ﮠ ﮡ ﮢ ﮣ - (‎ ىؕ ‎) 0649 0615 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH -← (‎ ٮؕ ‎) 066E 0615 ARABIC LETTER DOTLESS BEH, ARABIC SMALL HIGH TAH -← (‎ ںؕ ‎) 06BA 0615 ARABIC LETTER NOON GHUNNA, ARABIC SMALL HIGH TAH -← (‎ ٹ ‎) 0679 ARABIC LETTER TTEH # →‎ٮؕ‎→ -← (‎ ڻ ‎) 06BB ARABIC LETTER RNOON # →‎ںؕ‎→ -← (‎ ﭦ ‎) FB66 ARABIC LETTER TTEH ISOLATED FORM # →‎ٹ‎→→‎ٮؕ‎→ -← (‎ ﭧ ‎) FB67 ARABIC LETTER TTEH FINAL FORM # →‎ٹ‎→→‎ٮؕ‎→ -← (‎ ﭨ ‎) FB68 ARABIC LETTER TTEH INITIAL FORM # →‎ٹ‎→→‎ٮؕ‎→ -← (‎ ﭩ ‎) FB69 ARABIC LETTER TTEH MEDIAL FORM # →‎ٹ‎→→‎ٮؕ‎→ -← (‎ ﮠ ‎) FBA0 ARABIC LETTER RNOON ISOLATED FORM # →‎ڻ‎→→‎ںؕ‎→ -← (‎ ﮡ ‎) FBA1 ARABIC LETTER RNOON FINAL FORM # →‎ڻ‎→→‎ںؕ‎→ -← (‎ ﮢ ‎) FBA2 ARABIC LETTER RNOON INITIAL FORM # →‎ڻ‎→→‎ںؕ‎→ -← (‎ ﮣ ‎) FBA3 ARABIC LETTER RNOON MEDIAL FORM # →‎ڻ‎→→‎ںؕ‎→ - -# ىج يج ﱕ ﳚ - (‎ ىج ‎) 0649 062C ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM -← (‎ يج ‎) 064A 062C ARABIC LETTER YEH, ARABIC LETTER JEEM -← (‎ ﱕ ‎) FC55 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM # →‎يج‎→ -← (‎ ﳚ ‎) FCDA ARABIC LIGATURE YEH WITH JEEM INITIAL FORM # →‎يج‎→ - -# ىجى يجي ﶯ - (‎ ىجى ‎) 0649 062C 0649 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA -← (‎ يجي ‎) 064A 062C 064A ARABIC LETTER YEH, ARABIC LETTER JEEM, ARABIC LETTER YEH -← (‎ ﶯ ‎) FDAF ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM # →‎يجي‎→ - -# ىح يح ﱖ ﳛ - (‎ ىح ‎) 0649 062D ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH -← (‎ يح ‎) 064A 062D ARABIC LETTER YEH, ARABIC LETTER HAH -← (‎ ﱖ ‎) FC56 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM # →‎يح‎→ -← (‎ ﳛ ‎) FCDB ARABIC LIGATURE YEH WITH HAH INITIAL FORM # →‎يح‎→ - -# ىحى يحي ﶮ - (‎ ىحى ‎) 0649 062D 0649 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA -← (‎ يحي ‎) 064A 062D 064A ARABIC LETTER YEH, ARABIC LETTER HAH, ARABIC LETTER YEH -← (‎ ﶮ ‎) FDAE ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM # →‎يحي‎→ - -# ىخ يخ ﱗ ﳜ - (‎ ىخ ‎) 0649 062E ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH -← (‎ يخ ‎) 064A 062E ARABIC LETTER YEH, ARABIC LETTER KHAH -← (‎ ﱗ ‎) FC57 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM # →‎يخ‎→ -← (‎ ﳜ ‎) FCDC ARABIC LIGATURE YEH WITH KHAH INITIAL FORM # →‎يخ‎→ - -# ىر ير ﲑ - (‎ ىر ‎) 0649 0631 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER REH -← (‎ ير ‎) 064A 0631 ARABIC LETTER YEH, ARABIC LETTER REH -← (‎ ﲑ ‎) FC91 ARABIC LIGATURE YEH WITH REH FINAL FORM # →‎ير‎→ - -# ىز يز ﲒ - (‎ ىز ‎) 0649 0632 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ZAIN -← (‎ يز ‎) 064A 0632 ARABIC LETTER YEH, ARABIC LETTER ZAIN -← (‎ ﲒ ‎) FC92 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM # →‎يز‎→ - -# ىم يم ﱘ ﲓ ﳝ ﳰ - (‎ ىم ‎) 0649 0645 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM -← (‎ يم ‎) 064A 0645 ARABIC LETTER YEH, ARABIC LETTER MEEM -← (‎ ﱘ ‎) FC58 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM # →‎يم‎→ -← (‎ ﲓ ‎) FC93 ARABIC LIGATURE YEH WITH MEEM FINAL FORM # →‎يم‎→ -← (‎ ﳝ ‎) FCDD ARABIC LIGATURE YEH WITH MEEM INITIAL FORM # →‎يم‎→ -← (‎ ﳰ ‎) FCF0 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM # →‎يم‎→ - -# ىمم يمم ﶜ ﶝ - (‎ ىمم ‎) 0649 0645 0645 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ يمم ‎) 064A 0645 0645 ARABIC LETTER YEH, ARABIC LETTER MEEM, ARABIC LETTER MEEM -← (‎ ﶜ ‎) FD9C ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM # →‎يمم‎→ -← (‎ ﶝ ‎) FD9D ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM # →‎يمم‎→ - -# ىمى يمي ﶰ - (‎ ىمى ‎) 0649 0645 0649 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA -← (‎ يمي ‎) 064A 0645 064A ARABIC LETTER YEH, ARABIC LETTER MEEM, ARABIC LETTER YEH -← (‎ ﶰ ‎) FDB0 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM # →‎يمي‎→ - -# ىن ين ﲔ - (‎ ىن ‎) 0649 0646 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER NOON -← (‎ ين ‎) 064A 0646 ARABIC LETTER YEH, ARABIC LETTER NOON -← (‎ ﲔ ‎) FC94 ARABIC LIGATURE YEH WITH NOON FINAL FORM # →‎ين‎→ - -# ىى يى يي ﱙ ﱚ ﲕ ﲖ - (‎ ىى ‎) 0649 0649 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA -← (‎ يى ‎) 064A 0649 ARABIC LETTER YEH, ARABIC LETTER ALEF MAKSURA -← (‎ يي ‎) 064A 064A ARABIC LETTER YEH, ARABIC LETTER YEH -← (‎ ﱙ ‎) FC59 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM # →‎يى‎→ -← (‎ ﱚ ‎) FC5A ARABIC LIGATURE YEH WITH YEH ISOLATED FORM # →‎يي‎→ -← (‎ ﲕ ‎) FC95 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM # →‎يى‎→ -← (‎ ﲖ ‎) FC96 ARABIC LIGATURE YEH WITH YEH FINAL FORM # →‎يي‎→ - -# ىٔ ئ ࢨ - (‎ ىٔ ‎) 0649 0654 ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE -← (‎ ئ ‎) 064A 0654 ARABIC LETTER YEH, ARABIC HAMZA ABOVE -← (‎ ࢨ ‎) 08A8 ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE # →‎ئ‎→ - -# ىٰ ﱝ ﲐ - (‎ ىٰ ‎) 0649 0670 ARABIC LETTER ALEF MAKSURA, ARABIC LETTER SUPERSCRIPT ALEF -← (‎ ﱝ ‎) FC5D ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM -← (‎ ﲐ ‎) FC90 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM - -# ىۛۢ پۢ ࢷ - (‎ ىۛۢ ‎) 0649 06DB 06E2 ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC SMALL HIGH MEEM ISOLATED FORM -← (‎ پۢ ‎) 067E 06E2 ARABIC LETTER PEH, ARABIC SMALL HIGH MEEM ISOLATED FORM -← (‎ ࢷ ‎) 08B7 ARABIC LETTER PEH WITH SMALL MEEM ABOVE # →‎پۢ‎→ - -# ٌ ࣥ ࣨ ࣱ - (‎ ٌ ‎) 064C ARABIC DAMMATAN -← (‎ ࣥ ‎) 08E5 ARABIC CURLY DAMMA -← (‎ ࣨ ‎) 08E8 ARABIC CURLY DAMMATAN -← (‎ ࣱ ‎) 08F1 ARABIC OPEN DAMMATAN - -# ٍ ࣲ - (‎ ٍ ‎) 064D ARABIC KASRATAN -← (‎ ࣲ ‎) 08F2 ARABIC OPEN KASRATAN - -# ٕ ٟ - (‎ ٕ ‎) 0655 ARABIC HAMZA BELOW -← (‎ ٟ ‎) 065F ARABIC WAVY HAMZA BELOW - -# ٢ ۲ ꧏ - (‎ ٢ ‎) 0662 ARABIC-INDIC DIGIT TWO -← (‎ ۲ ‎) 06F2 EXTENDED ARABIC-INDIC DIGIT TWO -← (‎ ꧏ ‎) A9CF JAVANESE PANGRANGKEP - -# ٣ ۳ 𞣉 - (‎ ٣ ‎) 0663 ARABIC-INDIC DIGIT THREE -← (‎ ۳ ‎) 06F3 EXTENDED ARABIC-INDIC DIGIT THREE -← (‎ 𞣉 ‎) 1E8C9 MENDE KIKAKUI DIGIT THREE - -# ٤ ۴ - (‎ ٤ ‎) 0664 ARABIC-INDIC DIGIT FOUR -← (‎ ۴ ‎) 06F4 EXTENDED ARABIC-INDIC DIGIT FOUR - -# ٦ ۶ - (‎ ٦ ‎) 0666 ARABIC-INDIC DIGIT SIX -← (‎ ۶ ‎) 06F6 EXTENDED ARABIC-INDIC DIGIT SIX - -# ٩ ۹ १ 𑣤 - (‎ ٩ ‎) 0669 ARABIC-INDIC DIGIT NINE -← (‎ ۹ ‎) 06F9 EXTENDED ARABIC-INDIC DIGIT NINE -← (‎ १ ‎) 0967 DEVANAGARI DIGIT ONE -← (‎ 𑣤 ‎) 118E4 WARANG CITI DIGIT FOUR - -# ڡ ٯ ࢻ ࢼ 𞸞 𞸟 𞹟 𞹾 - (‎ ٯ ‎) 066F ARABIC LETTER DOTLESS QAF -← (‎ ڡ ‎) 06A1 ARABIC LETTER DOTLESS FEH -← (‎ ࢻ ‎) 08BB ARABIC LETTER AFRICAN FEH # →‎ڡ‎→ -← (‎ ࢼ ‎) 08BC ARABIC LETTER AFRICAN QAF -← (‎ 𞸞 ‎) 1EE1E ARABIC MATHEMATICAL DOTLESS FEH # →‎ڡ‎→ -← (‎ 𞸟 ‎) 1EE1F ARABIC MATHEMATICAL DOTLESS QAF -← (‎ 𞹟 ‎) 1EE5F ARABIC MATHEMATICAL TAILED DOTLESS QAF -← (‎ 𞹾 ‎) 1EE7E ARABIC MATHEMATICAL STRETCHED DOTLESS FEH # →‎ڡ‎→ - -# ڡۛ ٯۛ ڤ ڨ ﭪ ﭫ ﭬ ﭭ - (‎ ٯۛ ‎) 066F 06DB ARABIC LETTER DOTLESS QAF, ARABIC SMALL HIGH THREE DOTS -← (‎ ڡۛ ‎) 06A1 06DB ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→→‎ڨ‎→ -← (‎ ڤ ‎) 06A4 ARABIC LETTER VEH # →‎ڨ‎→ -← (‎ ڨ ‎) 06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -← (‎ ﭪ ‎) FB6A ARABIC LETTER VEH ISOLATED FORM # →‎ڤ‎→→‎ڨ‎→ -← (‎ ﭫ ‎) FB6B ARABIC LETTER VEH FINAL FORM # →‎ڤ‎→→‎ڨ‎→ -← (‎ ﭬ ‎) FB6C ARABIC LETTER VEH INITIAL FORM # →‎ڤ‎→→‎ڨ‎→ -← (‎ ﭭ ‎) FB6D ARABIC LETTER VEH MEDIAL FORM # →‎ڤ‎→→‎ڨ‎→ - -# ٱ ﭐ ﭑ - (‎ ٱ ‎) 0671 ARABIC LETTER ALEF WASLA -← (‎ ﭐ ‎) FB50 ARABIC LETTER ALEF WASLA ISOLATED FORM -← (‎ ﭑ ‎) FB51 ARABIC LETTER ALEF WASLA FINAL FORM - -# ٺ ﭞ ﭟ ﭠ ﭡ - (‎ ٺ ‎) 067A ARABIC LETTER TTEHEH -← (‎ ﭞ ‎) FB5E ARABIC LETTER TTEHEH ISOLATED FORM -← (‎ ﭟ ‎) FB5F ARABIC LETTER TTEHEH FINAL FORM -← (‎ ﭠ ‎) FB60 ARABIC LETTER TTEHEH INITIAL FORM -← (‎ ﭡ ‎) FB61 ARABIC LETTER TTEHEH MEDIAL FORM - -# ٻ ې ﭒ ﭓ ﭔ ﭕ ﯤ ﯥ ﯦ ﯧ - (‎ ٻ ‎) 067B ARABIC LETTER BEEH -← (‎ ې ‎) 06D0 ARABIC LETTER E -← (‎ ﭒ ‎) FB52 ARABIC LETTER BEEH ISOLATED FORM -← (‎ ﭓ ‎) FB53 ARABIC LETTER BEEH FINAL FORM -← (‎ ﭔ ‎) FB54 ARABIC LETTER BEEH INITIAL FORM -← (‎ ﭕ ‎) FB55 ARABIC LETTER BEEH MEDIAL FORM -← (‎ ﯤ ‎) FBE4 ARABIC LETTER E ISOLATED FORM # →‎ې‎→ -← (‎ ﯥ ‎) FBE5 ARABIC LETTER E FINAL FORM # →‎ې‎→ -← (‎ ﯦ ‎) FBE6 ARABIC LETTER E INITIAL FORM # →‎ې‎→ -← (‎ ﯧ ‎) FBE7 ARABIC LETTER E MEDIAL FORM # →‎ې‎→ - -# ٿ ﭢ ﭣ ﭤ ﭥ - (‎ ٿ ‎) 067F ARABIC LETTER TEHEH -← (‎ ﭢ ‎) FB62 ARABIC LETTER TEHEH ISOLATED FORM -← (‎ ﭣ ‎) FB63 ARABIC LETTER TEHEH FINAL FORM -← (‎ ﭤ ‎) FB64 ARABIC LETTER TEHEH INITIAL FORM -← (‎ ﭥ ‎) FB65 ARABIC LETTER TEHEH MEDIAL FORM - -# ڀ ﭚ ﭛ ﭜ ﭝ - (‎ ڀ ‎) 0680 ARABIC LETTER BEHEH -← (‎ ﭚ ‎) FB5A ARABIC LETTER BEHEH ISOLATED FORM -← (‎ ﭛ ‎) FB5B ARABIC LETTER BEHEH FINAL FORM -← (‎ ﭜ ‎) FB5C ARABIC LETTER BEHEH INITIAL FORM -← (‎ ﭝ ‎) FB5D ARABIC LETTER BEHEH MEDIAL FORM - -# ڃ ﭶ ﭷ ﭸ ﭹ - (‎ ڃ ‎) 0683 ARABIC LETTER NYEH -← (‎ ﭶ ‎) FB76 ARABIC LETTER NYEH ISOLATED FORM -← (‎ ﭷ ‎) FB77 ARABIC LETTER NYEH FINAL FORM -← (‎ ﭸ ‎) FB78 ARABIC LETTER NYEH INITIAL FORM -← (‎ ﭹ ‎) FB79 ARABIC LETTER NYEH MEDIAL FORM - -# ڄ ﭲ ﭳ ﭴ ﭵ - (‎ ڄ ‎) 0684 ARABIC LETTER DYEH -← (‎ ﭲ ‎) FB72 ARABIC LETTER DYEH ISOLATED FORM -← (‎ ﭳ ‎) FB73 ARABIC LETTER DYEH FINAL FORM -← (‎ ﭴ ‎) FB74 ARABIC LETTER DYEH INITIAL FORM -← (‎ ﭵ ‎) FB75 ARABIC LETTER DYEH MEDIAL FORM - -# چ ﭺ ﭻ ﭼ ﭽ - (‎ چ ‎) 0686 ARABIC LETTER TCHEH -← (‎ ﭺ ‎) FB7A ARABIC LETTER TCHEH ISOLATED FORM -← (‎ ﭻ ‎) FB7B ARABIC LETTER TCHEH FINAL FORM -← (‎ ﭼ ‎) FB7C ARABIC LETTER TCHEH INITIAL FORM -← (‎ ﭽ ‎) FB7D ARABIC LETTER TCHEH MEDIAL FORM - -# ڇ ﭾ ﭿ ﮀ ﮁ - (‎ ڇ ‎) 0687 ARABIC LETTER TCHEHEH -← (‎ ﭾ ‎) FB7E ARABIC LETTER TCHEHEH ISOLATED FORM -← (‎ ﭿ ‎) FB7F ARABIC LETTER TCHEHEH FINAL FORM -← (‎ ﮀ ‎) FB80 ARABIC LETTER TCHEHEH INITIAL FORM -← (‎ ﮁ ‎) FB81 ARABIC LETTER TCHEHEH MEDIAL FORM - -# ڊؕ ڋ - (‎ ڊؕ ‎) 068A 0615 ARABIC LETTER DAL WITH DOT BELOW, ARABIC SMALL HIGH TAH -← (‎ ڋ ‎) 068B ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH - -# ڌ ﮄ ﮅ - (‎ ڌ ‎) 068C ARABIC LETTER DAHAL -← (‎ ﮄ ‎) FB84 ARABIC LETTER DAHAL ISOLATED FORM -← (‎ ﮅ ‎) FB85 ARABIC LETTER DAHAL FINAL FORM - -# ڍ ﮂ ﮃ - (‎ ڍ ‎) 068D ARABIC LETTER DDAHAL -← (‎ ﮂ ‎) FB82 ARABIC LETTER DDAHAL ISOLATED FORM -← (‎ ﮃ ‎) FB83 ARABIC LETTER DDAHAL FINAL FORM - -# ڗؕ ݱ - (‎ ڗؕ ‎) 0697 0615 ARABIC LETTER REH WITH TWO DOTS ABOVE, ARABIC SMALL HIGH TAH -← (‎ ݱ ‎) 0771 ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS - -# ڢۛ ࢤ - (‎ ڢۛ ‎) 06A2 06DB ARABIC LETTER FEH WITH DOT MOVED BELOW, ARABIC SMALL HIGH THREE DOTS -← (‎ ࢤ ‎) 08A4 ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE - -# ڦ ﭮ ﭯ ﭰ ﭱ - (‎ ڦ ‎) 06A6 ARABIC LETTER PEHEH -← (‎ ﭮ ‎) FB6E ARABIC LETTER PEHEH ISOLATED FORM -← (‎ ﭯ ‎) FB6F ARABIC LETTER PEHEH FINAL FORM -← (‎ ﭰ ‎) FB70 ARABIC LETTER PEHEH INITIAL FORM -← (‎ ﭱ ‎) FB71 ARABIC LETTER PEHEH MEDIAL FORM - -# ڬ ݢ - (‎ ڬ ‎) 06AC ARABIC LETTER KAF WITH DOT ABOVE -← (‎ ݢ ‎) 0762 ARABIC LETTER KEHEH WITH DOT ABOVE - -# گ ࢰ ﮒ ﮓ ﮔ ﮕ - (‎ گ ‎) 06AF ARABIC LETTER GAF -← (‎ ࢰ ‎) 08B0 ARABIC LETTER GAF WITH INVERTED STROKE -← (‎ ﮒ ‎) FB92 ARABIC LETTER GAF ISOLATED FORM -← (‎ ﮓ ‎) FB93 ARABIC LETTER GAF FINAL FORM -← (‎ ﮔ ‎) FB94 ARABIC LETTER GAF INITIAL FORM -← (‎ ﮕ ‎) FB95 ARABIC LETTER GAF MEDIAL FORM - -# گۛ ڴ - (‎ گۛ ‎) 06AF 06DB ARABIC LETTER GAF, ARABIC SMALL HIGH THREE DOTS -← (‎ ڴ ‎) 06B4 ARABIC LETTER GAF WITH THREE DOTS ABOVE - -# ڱ ﮚ ﮛ ﮜ ﮝ - (‎ ڱ ‎) 06B1 ARABIC LETTER NGOEH -← (‎ ﮚ ‎) FB9A ARABIC LETTER NGOEH ISOLATED FORM -← (‎ ﮛ ‎) FB9B ARABIC LETTER NGOEH FINAL FORM -← (‎ ﮜ ‎) FB9C ARABIC LETTER NGOEH INITIAL FORM -← (‎ ﮝ ‎) FB9D ARABIC LETTER NGOEH MEDIAL FORM - -# ڳ ﮖ ﮗ ﮘ ﮙ - (‎ ڳ ‎) 06B3 ARABIC LETTER GUEH -← (‎ ﮖ ‎) FB96 ARABIC LETTER GUEH ISOLATED FORM -← (‎ ﮗ ‎) FB97 ARABIC LETTER GUEH FINAL FORM -← (‎ ﮘ ‎) FB98 ARABIC LETTER GUEH INITIAL FORM -← (‎ ﮙ ‎) FB99 ARABIC LETTER GUEH MEDIAL FORM - -# ۀ ۂ ﮤ ﮥ - (‎ ۀ ‎) 06C0 ARABIC LETTER HEH WITH YEH ABOVE -← (‎ ۂ ‎) 06C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE # →‎ﮤ‎→ -← (‎ ﮤ ‎) FBA4 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM -← (‎ ﮥ ‎) FBA5 ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM - -# ۅ ﯠ ﯡ - (‎ ۅ ‎) 06C5 ARABIC LETTER KIRGHIZ OE -← (‎ ﯠ ‎) FBE0 ARABIC LETTER KIRGHIZ OE ISOLATED FORM -← (‎ ﯡ ‎) FBE1 ARABIC LETTER KIRGHIZ OE FINAL FORM - -# ۓ ﮰ ﮱ - (‎ ۓ ‎) 06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE -← (‎ ﮰ ‎) FBB0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM -← (‎ ﮱ ‎) FBB1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM - -# ۛ ⃛ ᪴ - (‎ ۛ ‎) 06DB ARABIC SMALL HIGH THREE DOTS -← (‎ ⃛ ‎) 20DB COMBINING THREE DOTS ABOVE # →᪴→ -← (‎ ᪴ ‎) 1AB4 COMBINING TRIPLE DOT - -# ܼ ݂ - (‎ ܼ ‎) 073C SYRIAC HBASA-ESASA DOTTED -← (‎ ݂ ‎) 0742 SYRIAC RUKKAKHA - -# ݔ ݧ ࢩ - (‎ ݔ ‎) 0754 ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE -← (‎ ݧ ‎) 0767 ARABIC LETTER NOON WITH TWO DOTS BELOW -← (‎ ࢩ ‎) 08A9 ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE - -# अॆ ऄ - (‎ ऄ ‎) 0904 DEVANAGARI LETTER SHORT A -← (‎ अॆ ‎) 0905 0946 DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN SHORT E - -# अा आ - (‎ अा ‎) 0905 093E DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA -← (‎ आ ‎) 0906 DEVANAGARI LETTER AA - -# अाॆ अॊ आॆ ऒ - (‎ अाॆ ‎) 0905 093E 0946 DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN SHORT E -← (‎ अॊ ‎) 0905 094A DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN SHORT O # →आॆ→ -← (‎ आॆ ‎) 0906 0946 DEVANAGARI LETTER AA, DEVANAGARI VOWEL SIGN SHORT E -← (‎ ऒ ‎) 0912 DEVANAGARI LETTER SHORT O # →अॊ→→आॆ→ - -# अाे अो आे ओ - (‎ अाे ‎) 0905 093E 0947 DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN E -← (‎ अो ‎) 0905 094B DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN O # →आे→ -← (‎ आे ‎) 0906 0947 DEVANAGARI LETTER AA, DEVANAGARI VOWEL SIGN E -← (‎ ओ ‎) 0913 DEVANAGARI LETTER O # →अो→→आे→ - -# अाै अौ आै औ - (‎ अाै ‎) 0905 093E 0948 DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN AI -← (‎ अौ ‎) 0905 094C DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AU # →आै→ -← (‎ आै ‎) 0906 0948 DEVANAGARI LETTER AA, DEVANAGARI VOWEL SIGN AI -← (‎ औ ‎) 0914 DEVANAGARI LETTER AU # →अौ→→आै→ - -# अॉ ऑ - (‎ अॉ ‎) 0905 0949 DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN CANDRA O -← (‎ ऑ ‎) 0911 DEVANAGARI LETTER CANDRA O - -# र्इ ई - (‎ ई ‎) 0908 DEVANAGARI LETTER II -← (‎ र्इ ‎) 0930 094D 0907 DEVANAGARI LETTER RA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER I - -# एॅ ऍ - (‎ ऍ ‎) 090D DEVANAGARI LETTER CANDRA E -← (‎ एॅ ‎) 090F 0945 DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN CANDRA E - -# एॆ ऎ - (‎ ऎ ‎) 090E DEVANAGARI LETTER SHORT E -← (‎ एॆ ‎) 090F 0946 DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN SHORT E - -# एे ऐ - (‎ एे ‎) 090F 0947 DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN E -← (‎ ऐ ‎) 0910 DEVANAGARI LETTER AI - -# ऺ 𑇋 - (‎ ऺ ‎) 093A DEVANAGARI VOWEL SIGN OE -← (‎ 𑇋 ‎) 111CB SHARADA VOWEL MODIFIER MARK - -# ऽ ઽ - (‎ ऽ ‎) 093D DEVANAGARI SIGN AVAGRAHA -← (‎ ઽ ‎) 0ABD GUJARATI SIGN AVAGRAHA - -# ु ુ - (‎ ु ‎) 0941 DEVANAGARI VOWEL SIGN U -← (‎ ુ ‎) 0AC1 GUJARATI VOWEL SIGN U - -# ू ૂ - (‎ ू ‎) 0942 DEVANAGARI VOWEL SIGN UU -← (‎ ૂ ‎) 0AC2 GUJARATI VOWEL SIGN UU - -# ॆ ੋ - (‎ ॆ ‎) 0946 DEVANAGARI VOWEL SIGN SHORT E -← (‎ ੋ ‎) 0A4B GURMUKHI VOWEL SIGN OO - -# ् ੍ ્ - (‎ ् ‎) 094D DEVANAGARI SIGN VIRAMA -← (‎ ੍ ‎) 0A4D GURMUKHI SIGN VIRAMA -← (‎ ્ ‎) 0ACD GUJARATI SIGN VIRAMA - -# । ꠰ - (‎ । ‎) 0964 DEVANAGARI DANDA -← (‎ ꠰ ‎) A830 NORTH INDIC FRACTION ONE QUARTER - -# ।। ॥ - (‎ ।। ‎) 0964 0964 DEVANAGARI DANDA, DEVANAGARI DANDA -← (‎ ॥ ‎) 0965 DEVANAGARI DOUBLE DANDA - -# २ ૨ - (‎ २ ‎) 0968 DEVANAGARI DIGIT TWO -← (‎ ૨ ‎) 0AE8 GUJARATI DIGIT TWO - -# ३ ૩ - (‎ ३ ‎) 0969 DEVANAGARI DIGIT THREE -← (‎ ૩ ‎) 0AE9 GUJARATI DIGIT THREE - -# ४ ૪ - (‎ ४ ‎) 096A DEVANAGARI DIGIT FOUR -← (‎ ૪ ‎) 0AEA GUJARATI DIGIT FOUR - -# ८ ૮ - (‎ ८ ‎) 096E DEVANAGARI DIGIT EIGHT -← (‎ ૮ ‎) 0AEE GUJARATI DIGIT EIGHT - -# ॰ ૰ ⚬ 𑂻 𑇇 - (‎ ॰ ‎) 0970 DEVANAGARI ABBREVIATION SIGN -← (‎ ૰ ‎) 0AF0 GUJARATI ABBREVIATION SIGN -← (‎ ⚬ ‎) 26AC MEDIUM SMALL WHITE CIRCLE -← (‎ 𑂻 ‎) 110BB KAITHI ABBREVIATION SIGN -← (‎ 𑇇 ‎) 111C7 SHARADA ABBREVIATION SIGN - -# ঃ ਃ ః ಃ ഃ ඃ း 𑓁 - (‎ ঃ ‎) 0983 BENGALI SIGN VISARGA -← (‎ ਃ ‎) 0A03 GURMUKHI SIGN VISARGA -← (‎ ః ‎) 0C03 TELUGU SIGN VISARGA # →ਃ→ -← (‎ ಃ ‎) 0C83 KANNADA SIGN VISARGA # →ః→→ਃ→ -← (‎ ഃ ‎) 0D03 MALAYALAM SIGN VISARGA # →ಃ→→ః→→ਃ→ -← (‎ ඃ ‎) 0D83 SINHALA SIGN VISARGAYA # →ഃ→→ಃ→→ః→→ਃ→ -← (‎ း ‎) 1038 MYANMAR SIGN VISARGA # →ඃ→→ഃ→→ಃ→→ః→→ਃ→ -← (‎ 𑓁 ‎) 114C1 TIRHUTA SIGN VISARGA - -# অা আ - (‎ অা ‎) 0985 09BE BENGALI LETTER A, BENGALI VOWEL SIGN AA -← (‎ আ ‎) 0986 BENGALI LETTER AA - -# ঋৃ ঌৢ ৠ ৡ - (‎ ঋৃ ‎) 098B 09C3 BENGALI LETTER VOCALIC R, BENGALI VOWEL SIGN VOCALIC R -← (‎ ঌৢ ‎) 098C 09E2 BENGALI LETTER VOCALIC L, BENGALI VOWEL SIGN VOCALIC L # →ৠ→ -← (‎ ৠ ‎) 09E0 BENGALI LETTER VOCALIC RR -← (‎ ৡ ‎) 09E1 BENGALI LETTER VOCALIC LL # →ঌৢ→→ৠ→ - -# ঘ 𑒒 - (‎ ঘ ‎) 0998 BENGALI LETTER GHA -← (‎ 𑒒 ‎) 11492 TIRHUTA LETTER GHA - -# চ 𑒔 - (‎ চ ‎) 099A BENGALI LETTER CA -← (‎ 𑒔 ‎) 11494 TIRHUTA LETTER CA - -# জ 𑒖 - (‎ জ ‎) 099C BENGALI LETTER JA -← (‎ 𑒖 ‎) 11496 TIRHUTA LETTER JA - -# ঞ 𑒘 - (‎ ঞ ‎) 099E BENGALI LETTER NYA -← (‎ 𑒘 ‎) 11498 TIRHUTA LETTER NYA - -# ট 𑒙 - (‎ ট ‎) 099F BENGALI LETTER TTA -← (‎ 𑒙 ‎) 11499 TIRHUTA LETTER TTA - -# ড 𑒛 - (‎ ড ‎) 09A1 BENGALI LETTER DDA -← (‎ 𑒛 ‎) 1149B TIRHUTA LETTER DDA - -# ণ 𑒪 - (‎ ণ ‎) 09A3 BENGALI LETTER NNA -← (‎ 𑒪 ‎) 114AA TIRHUTA LETTER LA - -# ত 𑒞 - (‎ ত ‎) 09A4 BENGALI LETTER TA -← (‎ 𑒞 ‎) 1149E TIRHUTA LETTER TA - -# থ 𑒟 - (‎ থ ‎) 09A5 BENGALI LETTER THA -← (‎ 𑒟 ‎) 1149F TIRHUTA LETTER THA - -# দ 𑒠 - (‎ দ ‎) 09A6 BENGALI LETTER DA -← (‎ 𑒠 ‎) 114A0 TIRHUTA LETTER DA - -# ধ 𑒡 - (‎ ধ ‎) 09A7 BENGALI LETTER DHA -← (‎ 𑒡 ‎) 114A1 TIRHUTA LETTER DHA - -# ন 𑒢 - (‎ ন ‎) 09A8 BENGALI LETTER NA -← (‎ 𑒢 ‎) 114A2 TIRHUTA LETTER NA - -# প 𑒣 - (‎ প ‎) 09AA BENGALI LETTER PA -← (‎ 𑒣 ‎) 114A3 TIRHUTA LETTER PA - -# ব 𑒩 - (‎ ব ‎) 09AC BENGALI LETTER BA -← (‎ 𑒩 ‎) 114A9 TIRHUTA LETTER RA - -# ম 𑒧 - (‎ ম ‎) 09AE BENGALI LETTER MA -← (‎ 𑒧 ‎) 114A7 TIRHUTA LETTER MA - -# য 𑒨 - (‎ য ‎) 09AF BENGALI LETTER YA -← (‎ 𑒨 ‎) 114A8 TIRHUTA LETTER YA - -# র 𑒫 - (‎ র ‎) 09B0 BENGALI LETTER RA -← (‎ 𑒫 ‎) 114AB TIRHUTA LETTER VA - -# ল 𑒝 - (‎ ল ‎) 09B2 BENGALI LETTER LA -← (‎ 𑒝 ‎) 1149D TIRHUTA LETTER NNA - -# ষ 𑒭 - (‎ ষ ‎) 09B7 BENGALI LETTER SSA -← (‎ 𑒭 ‎) 114AD TIRHUTA LETTER SSA - -# স 𑒮 - (‎ স ‎) 09B8 BENGALI LETTER SA -← (‎ 𑒮 ‎) 114AE TIRHUTA LETTER SA - -# ঽ 𑓄 - (‎ ঽ ‎) 09BD BENGALI SIGN AVAGRAHA -← (‎ 𑓄 ‎) 114C4 TIRHUTA SIGN AVAGRAHA - -# া 𑒰 - (‎ া ‎) 09BE BENGALI VOWEL SIGN AA -← (‎ 𑒰 ‎) 114B0 TIRHUTA VOWEL SIGN AA - -# ি 𑒱 - (‎ ি ‎) 09BF BENGALI VOWEL SIGN I -← (‎ 𑒱 ‎) 114B1 TIRHUTA VOWEL SIGN I - -# ে 𑒹 - (‎ ে ‎) 09C7 BENGALI VOWEL SIGN E -← (‎ 𑒹 ‎) 114B9 TIRHUTA VOWEL SIGN E - -# ো 𑒼 - (‎ ো ‎) 09CB BENGALI VOWEL SIGN O -← (‎ 𑒼 ‎) 114BC TIRHUTA VOWEL SIGN O - -# ৌ 𑒾 - (‎ ৌ ‎) 09CC BENGALI VOWEL SIGN AU -← (‎ 𑒾 ‎) 114BE TIRHUTA VOWEL SIGN AU - -# ্ 𑓂 - (‎ ্ ‎) 09CD BENGALI SIGN VIRAMA -← (‎ 𑓂 ‎) 114C2 TIRHUTA SIGN VIRAMA - -# ৗ 𑒽 - (‎ ৗ ‎) 09D7 BENGALI AU LENGTH MARK -← (‎ 𑒽 ‎) 114BD TIRHUTA VOWEL SIGN SHORT O - -# ১ 𑓑 - (‎ ১ ‎) 09E7 BENGALI DIGIT ONE -← (‎ 𑓑 ‎) 114D1 TIRHUTA DIGIT ONE - -# ২ 𑓒 - (‎ ২ ‎) 09E8 BENGALI DIGIT TWO -← (‎ 𑓒 ‎) 114D2 TIRHUTA DIGIT TWO - -# ৬ 𑓖 - (‎ ৬ ‎) 09EC BENGALI DIGIT SIX -← (‎ 𑓖 ‎) 114D6 TIRHUTA DIGIT SIX - -# ਅਾ ਆ - (‎ ਅਾ ‎) 0A05 0A3E GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AA -← (‎ ਆ ‎) 0A06 GURMUKHI LETTER AA - -# ਅੈ ਐ - (‎ ਅੈ ‎) 0A05 0A48 GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AI -← (‎ ਐ ‎) 0A10 GURMUKHI LETTER AI - -# ਅੌ ਔ - (‎ ਅੌ ‎) 0A05 0A4C GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AU -← (‎ ਔ ‎) 0A14 GURMUKHI LETTER AU - -# ੲਿ ਇ - (‎ ਇ ‎) 0A07 GURMUKHI LETTER I -← (‎ ੲਿ ‎) 0A72 0A3F GURMUKHI IRI, GURMUKHI VOWEL SIGN I - -# ੲੀ ਈ - (‎ ਈ ‎) 0A08 GURMUKHI LETTER II -← (‎ ੲੀ ‎) 0A72 0A40 GURMUKHI IRI, GURMUKHI VOWEL SIGN II - -# ੳੁ ਉ - (‎ ਉ ‎) 0A09 GURMUKHI LETTER U -← (‎ ੳੁ ‎) 0A73 0A41 GURMUKHI URA, GURMUKHI VOWEL SIGN U - -# ੳੂ ਊ - (‎ ਊ ‎) 0A0A GURMUKHI LETTER UU -← (‎ ੳੂ ‎) 0A73 0A42 GURMUKHI URA, GURMUKHI VOWEL SIGN UU - -# ੲੇ ਏ - (‎ ਏ ‎) 0A0F GURMUKHI LETTER EE -← (‎ ੲੇ ‎) 0A72 0A47 GURMUKHI IRI, GURMUKHI VOWEL SIGN EE - -# અા આ - (‎ અા ‎) 0A85 0ABE GUJARATI LETTER A, GUJARATI VOWEL SIGN AA -← (‎ આ ‎) 0A86 GUJARATI LETTER AA - -# અાૅ અૉ આૅ ઑ - (‎ અાૅ ‎) 0A85 0ABE 0AC5 GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN CANDRA E -← (‎ અૉ ‎) 0A85 0AC9 GUJARATI LETTER A, GUJARATI VOWEL SIGN CANDRA O # →આૅ→ -← (‎ આૅ ‎) 0A86 0AC5 GUJARATI LETTER AA, GUJARATI VOWEL SIGN CANDRA E -← (‎ ઑ ‎) 0A91 GUJARATI VOWEL CANDRA O # →અૉ→→આૅ→ - -# અાે અો આે ઓ - (‎ અાે ‎) 0A85 0ABE 0AC7 GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN E -← (‎ અો ‎) 0A85 0ACB GUJARATI LETTER A, GUJARATI VOWEL SIGN O # →આે→ -← (‎ આે ‎) 0A86 0AC7 GUJARATI LETTER AA, GUJARATI VOWEL SIGN E -← (‎ ઓ ‎) 0A93 GUJARATI LETTER O # →અો→→આે→ - -# અાૈ અૌ આૈ ઔ - (‎ અાૈ ‎) 0A85 0ABE 0AC8 GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN AI -← (‎ અૌ ‎) 0A85 0ACC GUJARATI LETTER A, GUJARATI VOWEL SIGN AU # →આૈ→ -← (‎ આૈ ‎) 0A86 0AC8 GUJARATI LETTER AA, GUJARATI VOWEL SIGN AI -← (‎ ઔ ‎) 0A94 GUJARATI LETTER AU # →અૌ→→આૈ→ - -# અૅ ઍ - (‎ અૅ ‎) 0A85 0AC5 GUJARATI LETTER A, GUJARATI VOWEL SIGN CANDRA E -← (‎ ઍ ‎) 0A8D GUJARATI VOWEL CANDRA E - -# અે એ - (‎ અે ‎) 0A85 0AC7 GUJARATI LETTER A, GUJARATI VOWEL SIGN E -← (‎ એ ‎) 0A8F GUJARATI LETTER E - -# અૈ ઐ - (‎ અૈ ‎) 0A85 0AC8 GUJARATI LETTER A, GUJARATI VOWEL SIGN AI -← (‎ ઐ ‎) 0A90 GUJARATI LETTER AI - -# ଅା ଆ - (‎ ଅା ‎) 0B05 0B3E ORIYA LETTER A, ORIYA VOWEL SIGN AA -← (‎ ଆ ‎) 0B06 ORIYA LETTER AA - -# அ ௮ - (‎ அ ‎) 0B85 TAMIL LETTER A -← (‎ ௮ ‎) 0BEE TAMIL DIGIT EIGHT - -# ஈ ர ா - (‎ ஈ ‎) 0B88 TAMIL LETTER II -← (‎ ர ‎) 0BB0 TAMIL LETTER RA # →ா→ -← (‎ ா ‎) 0BBE TAMIL VOWEL SIGN AA - -# ஈு ரு ௫ - (‎ ஈு ‎) 0B88 0BC1 TAMIL LETTER II, TAMIL VOWEL SIGN U -← (‎ ரு ‎) 0BB0 0BC1 TAMIL LETTER RA, TAMIL VOWEL SIGN U -← (‎ ௫ ‎) 0BEB TAMIL DIGIT FIVE # →ரு→ - -# உ ௨ ഉ - (‎ உ ‎) 0B89 TAMIL LETTER U -← (‎ ௨ ‎) 0BE8 TAMIL DIGIT TWO -← (‎ ഉ ‎) 0D09 MALAYALAM LETTER U - -# உள ஊ - (‎ உள ‎) 0B89 0BB3 TAMIL LETTER U, TAMIL LETTER LLA -← (‎ ஊ ‎) 0B8A TAMIL LETTER UU - -# உൗ ഉൗ ഊ - (‎ உൗ ‎) 0B89 0D57 TAMIL LETTER U, MALAYALAM AU LENGTH MARK -← (‎ ഉൗ ‎) 0D09 0D57 MALAYALAM LETTER U, MALAYALAM AU LENGTH MARK -← (‎ ഊ ‎) 0D0A MALAYALAM LETTER UU # →ഉൗ→ - -# எ ௭ - (‎ எ ‎) 0B8E TAMIL LETTER E -← (‎ ௭ ‎) 0BED TAMIL DIGIT SEVEN - -# எவ எ௳ ௷ - (‎ எவ ‎) 0B8E 0BB5 TAMIL LETTER E, TAMIL LETTER VA -← (‎ எ௳ ‎) 0B8E 0BF3 TAMIL LETTER E, TAMIL DAY SIGN # →௷→ -← (‎ ௷ ‎) 0BF7 TAMIL CREDIT SIGN - -# ஐ ஜ ജ - (‎ ஐ ‎) 0B90 TAMIL LETTER AI -← (‎ ஜ ‎) 0B9C TAMIL LETTER JA -← (‎ ജ ‎) 0D1C MALAYALAM LETTER JA # →ஜ→ - -# க ௧ - (‎ க ‎) 0B95 TAMIL LETTER KA -← (‎ ௧ ‎) 0BE7 TAMIL DIGIT ONE - -# ச ௪ - (‎ ச ‎) 0B9A TAMIL LETTER CA -← (‎ ௪ ‎) 0BEA TAMIL DIGIT FOUR - -# சு ௬ - (‎ சு ‎) 0B9A 0BC1 TAMIL LETTER CA, TAMIL VOWEL SIGN U -← (‎ ௬ ‎) 0BEC TAMIL DIGIT SIX - -# சூ ௲ - (‎ சூ ‎) 0B9A 0BC2 TAMIL LETTER CA, TAMIL VOWEL SIGN UU -← (‎ ௲ ‎) 0BF2 TAMIL NUMBER ONE THOUSAND - -# டி ഺ - (‎ டி ‎) 0B9F 0BBF TAMIL LETTER TTA, TAMIL VOWEL SIGN I -← (‎ ഺ ‎) 0D3A MALAYALAM LETTER TTTA - -# ண ണ - (‎ ண ‎) 0BA3 TAMIL LETTER NNA -← (‎ ണ ‎) 0D23 MALAYALAM LETTER NNA - -# நீ ௺ - (‎ நீ ‎) 0BA8 0BC0 TAMIL LETTER NA, TAMIL VOWEL SIGN II -← (‎ ௺ ‎) 0BFA TAMIL NUMBER SIGN - -# ன ை - (‎ ன ‎) 0BA9 TAMIL LETTER NNNA -← (‎ ை ‎) 0BC8 TAMIL VOWEL SIGN AI - -# மீ ௴ - (‎ மீ ‎) 0BAE 0BC0 TAMIL LETTER MA, TAMIL VOWEL SIGN II -← (‎ ௴ ‎) 0BF4 TAMIL MONTH SIGN - -# ய ௰ - (‎ ய ‎) 0BAF TAMIL LETTER YA -← (‎ ௰ ‎) 0BF0 TAMIL NUMBER TEN - -# ள ௗ - (‎ ள ‎) 0BB3 TAMIL LETTER LLA -← (‎ ௗ ‎) 0BD7 TAMIL AU LENGTH MARK - -# ழ ഴ - (‎ ழ ‎) 0BB4 TAMIL LETTER LLLA -← (‎ ഴ ‎) 0D34 MALAYALAM LETTER LLLA - -# ஶ ശ - (‎ ஶ ‎) 0BB6 TAMIL LETTER SHA -← (‎ ശ ‎) 0D36 MALAYALAM LETTER SHA - -# ஷ ௸ - (‎ ஷ ‎) 0BB7 TAMIL LETTER SSA -← (‎ ௸ ‎) 0BF8 TAMIL AS ABOVE SIGN - -# ி ി ീ - (‎ ி ‎) 0BBF TAMIL VOWEL SIGN I -← (‎ ി ‎) 0D3F MALAYALAM VOWEL SIGN I -← (‎ ീ ‎) 0D40 MALAYALAM VOWEL SIGN II - -# ெஈ ெர ொ - (‎ ெஈ ‎) 0BC6 0B88 TAMIL VOWEL SIGN E, TAMIL LETTER II -← (‎ ெர ‎) 0BC6 0BB0 TAMIL VOWEL SIGN E, TAMIL LETTER RA -← (‎ ொ ‎) 0BCA TAMIL VOWEL SIGN O # →ெர→ - -# ெள ௌ - (‎ ெள ‎) 0BC6 0BB3 TAMIL VOWEL SIGN E, TAMIL LETTER LLA -← (‎ ௌ ‎) 0BCC TAMIL VOWEL SIGN AU - -# ேஈ ேர ோ - (‎ ேஈ ‎) 0BC7 0B88 TAMIL VOWEL SIGN EE, TAMIL LETTER II -← (‎ ேர ‎) 0BC7 0BB0 TAMIL VOWEL SIGN EE, TAMIL LETTER RA -← (‎ ோ ‎) 0BCB TAMIL VOWEL SIGN OO # →ேர→ - -# ௳ ௵ - (‎ ௳ ‎) 0BF3 TAMIL DAY SIGN -← (‎ ௵ ‎) 0BF5 TAMIL YEAR SIGN - -# అ ಅ - (‎ అ ‎) 0C05 TELUGU LETTER A -← (‎ ಅ ‎) 0C85 KANNADA LETTER A - -# ఆ ಆ - (‎ ఆ ‎) 0C06 TELUGU LETTER AA -← (‎ ಆ ‎) 0C86 KANNADA LETTER AA - -# ఇ ಇ - (‎ ఇ ‎) 0C07 TELUGU LETTER I -← (‎ ಇ ‎) 0C87 KANNADA LETTER I - -# ఋా ౠ - (‎ ఋా ‎) 0C0B 0C3E TELUGU LETTER VOCALIC R, TELUGU VOWEL SIGN AA -← (‎ ౠ ‎) 0C60 TELUGU LETTER VOCALIC RR - -# ఌా ౡ - (‎ ఌా ‎) 0C0C 0C3E TELUGU LETTER VOCALIC L, TELUGU VOWEL SIGN AA -← (‎ ౡ ‎) 0C61 TELUGU LETTER VOCALIC LL - -# ఒ ಒ - (‎ ఒ ‎) 0C12 TELUGU LETTER O -← (‎ ಒ ‎) 0C92 KANNADA LETTER O - -# ఒౌ ఒೌ ಒೌ ఔ ಔ - (‎ ఒౌ ‎) 0C12 0C4C TELUGU LETTER O, TELUGU VOWEL SIGN AU -← (‎ ఒೌ ‎) 0C12 0CCC TELUGU LETTER O, KANNADA VOWEL SIGN AU # →ಒೌ→→ಔ→→ఔ→ -← (‎ ಒೌ ‎) 0C92 0CCC KANNADA LETTER O, KANNADA VOWEL SIGN AU # →ಔ→→ఔ→ -← (‎ ఔ ‎) 0C14 TELUGU LETTER AU -← (‎ ಔ ‎) 0C94 KANNADA LETTER AU # →ఔ→ - -# ఒౕ ఓ ಓ - (‎ ఒౕ ‎) 0C12 0C55 TELUGU LETTER O, TELUGU LENGTH MARK -← (‎ ఓ ‎) 0C13 TELUGU LETTER OO -← (‎ ಓ ‎) 0C93 KANNADA LETTER OO # →ఓ→ - -# జ ಜ - (‎ జ ‎) 0C1C TELUGU LETTER JA -← (‎ ಜ ‎) 0C9C KANNADA LETTER JA - -# ఞ ಞ - (‎ ఞ ‎) 0C1E TELUGU LETTER NYA -← (‎ ಞ ‎) 0C9E KANNADA LETTER NYA - -# రּ ఠ - (‎ ఠ ‎) 0C20 TELUGU LETTER TTHA -← (‎ రּ ‎) 0C30 05BC TELUGU LETTER RA, HEBREW POINT DAGESH OR MAPIQ - -# డ̣ ఢ - (‎ డ̣ ‎) 0C21 0323 TELUGU LETTER DDA, COMBINING DOT BELOW -← (‎ ఢ ‎) 0C22 TELUGU LETTER DDHA - -# ణ ಣ - (‎ ణ ‎) 0C23 TELUGU LETTER NNA -← (‎ ಣ ‎) 0CA3 KANNADA LETTER NNA - -# ధּ థ - (‎ థ ‎) 0C25 TELUGU LETTER THA -← (‎ ధּ ‎) 0C27 05BC TELUGU LETTER DHA, HEBREW POINT DAGESH OR MAPIQ - -# బ̣ భ - (‎ బ̣ ‎) 0C2C 0323 TELUGU LETTER BA, COMBINING DOT BELOW -← (‎ భ ‎) 0C2D TELUGU LETTER BHA - -# వు మ - (‎ మ ‎) 0C2E TELUGU LETTER MA -← (‎ వు ‎) 0C35 0C41 TELUGU LETTER VA, TELUGU VOWEL SIGN U - -# య ಯ - (‎ య ‎) 0C2F TELUGU LETTER YA -← (‎ ಯ ‎) 0CAF KANNADA LETTER YA - -# ఱ ಱ - (‎ ఱ ‎) 0C31 TELUGU LETTER RRA -← (‎ ಱ ‎) 0CB1 KANNADA LETTER RRA - -# ల ಲ - (‎ ల ‎) 0C32 TELUGU LETTER LA -← (‎ ಲ ‎) 0CB2 KANNADA LETTER LA - -# వ̣ ష - (‎ వ̣ ‎) 0C35 0323 TELUGU LETTER VA, COMBINING DOT BELOW -← (‎ ష ‎) 0C37 TELUGU LETTER SSA - -# వా హ - (‎ వా ‎) 0C35 0C3E TELUGU LETTER VA, TELUGU VOWEL SIGN AA -← (‎ హ ‎) 0C39 TELUGU LETTER HA - -# ుా ూ - (‎ ుా ‎) 0C41 0C3E TELUGU VOWEL SIGN U, TELUGU VOWEL SIGN AA -← (‎ ూ ‎) 0C42 TELUGU VOWEL SIGN UU - -# ృా ౄ - (‎ ృా ‎) 0C43 0C3E TELUGU VOWEL SIGN VOCALIC R, TELUGU VOWEL SIGN AA -← (‎ ౄ ‎) 0C44 TELUGU VOWEL SIGN VOCALIC RR - -# ౧ ೧ - (‎ ౧ ‎) 0C67 TELUGU DIGIT ONE -← (‎ ೧ ‎) 0CE7 KANNADA DIGIT ONE - -# ౨ ೨ - (‎ ౨ ‎) 0C68 TELUGU DIGIT TWO -← (‎ ೨ ‎) 0CE8 KANNADA DIGIT TWO - -# ౯ ೯ - (‎ ౯ ‎) 0C6F TELUGU DIGIT NINE -← (‎ ೯ ‎) 0CEF KANNADA DIGIT NINE - -# ಌಾ ೡ - (‎ ಌಾ ‎) 0C8C 0CBE KANNADA LETTER VOCALIC L, KANNADA VOWEL SIGN AA -← (‎ ೡ ‎) 0CE1 KANNADA LETTER VOCALIC LL - -# ഇൗ ഈ - (‎ ഇൗ ‎) 0D07 0D57 MALAYALAM LETTER I, MALAYALAM AU LENGTH MARK -← (‎ ഈ ‎) 0D08 MALAYALAM LETTER II - -# നു ഌ ങ ൹ - (‎ ഌ ‎) 0D0C MALAYALAM LETTER VOCALIC L -← (‎ നു ‎) 0D28 0D41 MALAYALAM LETTER NA, MALAYALAM VOWEL SIGN U -← (‎ ങ ‎) 0D19 MALAYALAM LETTER NGA -← (‎ ൹ ‎) 0D79 MALAYALAM DATE MARK # →നു→ - -# എെ െഎ ഐ - (‎ എെ ‎) 0D0E 0D46 MALAYALAM LETTER E, MALAYALAM VOWEL SIGN E -← (‎ െഎ ‎) 0D46 0D0E MALAYALAM VOWEL SIGN E, MALAYALAM LETTER E # →ഐ→ -← (‎ ഐ ‎) 0D10 MALAYALAM LETTER AI - -# ഒാ ഓ - (‎ ഒാ ‎) 0D12 0D3E MALAYALAM LETTER O, MALAYALAM VOWEL SIGN AA -← (‎ ഓ ‎) 0D13 MALAYALAM LETTER OO - -# ഒൗ ഔ - (‎ ഒൗ ‎) 0D12 0D57 MALAYALAM LETTER O, MALAYALAM AU LENGTH MARK -← (‎ ഔ ‎) 0D14 MALAYALAM LETTER AU - -# ഞ ൡ - (‎ ഞ ‎) 0D1E MALAYALAM LETTER NYA -← (‎ ൡ ‎) 0D61 MALAYALAM LETTER VOCALIC LL - -# ദ്ര ൫ - (‎ ദ്ര ‎) 0D26 0D4D 0D30 MALAYALAM LETTER DA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA -← (‎ ൫ ‎) 0D6B MALAYALAM DIGIT FIVE - -# ന് ൯ ൻ - (‎ ന് ‎) 0D28 0D4D MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA -← (‎ ൯ ‎) 0D6F MALAYALAM DIGIT NINE -← (‎ ൻ ‎) 0D7B MALAYALAM LETTER CHILLU N # →൯→ - -# ന്ന ൬ - (‎ ന്ന ‎) 0D28 0D4D 0D28 MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER NA -← (‎ ൬ ‎) 0D6C MALAYALAM DIGIT SIX - -# ന്മ ൚ - (‎ ന്മ ‎) 0D28 0D4D 0D2E MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA -← (‎ ൚ ‎) 0D5A MALAYALAM FRACTION THREE EIGHTIETHS - -# ര റ - (‎ ര ‎) 0D30 MALAYALAM LETTER RA -← (‎ റ ‎) 0D31 MALAYALAM LETTER RRA - -# ര് ൪ ർ - (‎ ര് ‎) 0D30 0D4D MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA -← (‎ ൪ ‎) 0D6A MALAYALAM DIGIT FOUR -← (‎ ർ ‎) 0D7C MALAYALAM LETTER CHILLU RR # →൪→ - -# വ്ര വ് ൮ - (‎ വ് ‎) 0D35 0D4D MALAYALAM LETTER VA, MALAYALAM SIGN VIRAMA -← (‎ വ്ര ‎) 0D35 0D4D 0D30 MALAYALAM LETTER VA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA # →൮→ -← (‎ ൮ ‎) 0D6E MALAYALAM DIGIT EIGHT - -# ഹ്മ ൶ - (‎ ഹ്മ ‎) 0D39 0D4D 0D2E MALAYALAM LETTER HA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA -← (‎ ൶ ‎) 0D76 MALAYALAM FRACTION ONE SIXTEENTH - -# ു ൂ ൃ - (‎ ു ‎) 0D41 MALAYALAM VOWEL SIGN U -← (‎ ൂ ‎) 0D42 MALAYALAM VOWEL SIGN UU -← (‎ ൃ ‎) 0D43 MALAYALAM VOWEL SIGN VOCALIC R # →ൂ→ - -# െെ ൈ - (‎ െെ ‎) 0D46 0D46 MALAYALAM VOWEL SIGN E, MALAYALAM VOWEL SIGN E -← (‎ ൈ ‎) 0D48 MALAYALAM VOWEL SIGN AI - -# ජ ෪ - (‎ ජ ‎) 0DA2 SINHALA LETTER ALPAPRAANA JAYANNA -← (‎ ෪ ‎) 0DEA SINHALA LITH DIGIT FOUR - -# ද ෫ - (‎ ද ‎) 0DAF SINHALA LETTER ALPAPRAANA DAYANNA -← (‎ ෫ ‎) 0DEB SINHALA LITH DIGIT FIVE - -# ෨ා ෩ - (‎ ෨ා ‎) 0DE8 0DCF SINHALA LITH DIGIT TWO, SINHALA VOWEL SIGN AELA-PILLA -← (‎ ෩ ‎) 0DE9 SINHALA LITH DIGIT THREE - -# ෨ී ෯ - (‎ ෨ී ‎) 0DE8 0DD3 SINHALA LITH DIGIT TWO, SINHALA VOWEL SIGN DIGA IS-PILLA -← (‎ ෯ ‎) 0DEF SINHALA LITH DIGIT NINE - -# ข ฃ - (‎ ข ‎) 0E02 THAI CHARACTER KHO KHAI -← (‎ ฃ ‎) 0E03 THAI CHARACTER KHO KHUAT - -# ค ด ต - (‎ ค ‎) 0E04 THAI CHARACTER KHO KHWAI -← (‎ ด ‎) 0E14 THAI CHARACTER DO DEK -← (‎ ต ‎) 0E15 THAI CHARACTER TO TAO # →ด→ - -# ฆ ม - (‎ ฆ ‎) 0E06 THAI CHARACTER KHO RAKHANG -← (‎ ม ‎) 0E21 THAI CHARACTER MO MA - -# จ ຈ - (‎ จ ‎) 0E08 THAI CHARACTER CHO CHAN -← (‎ ຈ ‎) 0E88 LAO LETTER CO - -# ช ซ - (‎ ช ‎) 0E0A THAI CHARACTER CHO CHANG -← (‎ ซ ‎) 0E0B THAI CHARACTER SO SO - -# ฎ ฏ - (‎ ฎ ‎) 0E0E THAI CHARACTER DO CHADA -← (‎ ฏ ‎) 0E0F THAI CHARACTER TO PATAK - -# ฑ ท - (‎ ฑ ‎) 0E11 THAI CHARACTER THO NANGMONTHO -← (‎ ท ‎) 0E17 THAI CHARACTER THO THAHAN - -# บ ບ - (‎ บ ‎) 0E1A THAI CHARACTER BO BAIMAI -← (‎ ບ ‎) 0E9A LAO LETTER BO - -# ป ປ - (‎ ป ‎) 0E1B THAI CHARACTER PO PLA -← (‎ ປ ‎) 0E9B LAO LETTER PO - -# ฝ ຝ - (‎ ฝ ‎) 0E1D THAI CHARACTER FO FA -← (‎ ຝ ‎) 0E9D LAO LETTER FO TAM - -# พ ພ - (‎ พ ‎) 0E1E THAI CHARACTER PHO PHAN -← (‎ ພ ‎) 0E9E LAO LETTER PHO TAM - -# ฟ ຟ - (‎ ฟ ‎) 0E1F THAI CHARACTER FO FAN -← (‎ ຟ ‎) 0E9F LAO LETTER FO SUNG - -# ภ ฦ - (‎ ภ ‎) 0E20 THAI CHARACTER PHO SAMPHAO -← (‎ ฦ ‎) 0E26 THAI CHARACTER LU - -# ย ຍ - (‎ ย ‎) 0E22 THAI CHARACTER YO YAK -← (‎ ຍ ‎) 0E8D LAO LETTER NYO - -# ฯ ។ - (‎ ฯ ‎) 0E2F THAI CHARACTER PAIYANNOI -← (‎ ។ ‎) 17D4 KHMER SIGN KHAN - -# า ๅ - (‎ า ‎) 0E32 THAI CHARACTER SARA AA -← (‎ ๅ ‎) 0E45 THAI CHARACTER LAKKHANGYAO - -# ิ ិ - (‎ ิ ‎) 0E34 THAI CHARACTER SARA I -← (‎ ិ ‎) 17B7 KHMER VOWEL SIGN I - -# ี ី - (‎ ี ‎) 0E35 THAI CHARACTER SARA II -← (‎ ី ‎) 17B8 KHMER VOWEL SIGN II - -# ึ ឹ - (‎ ึ ‎) 0E36 THAI CHARACTER SARA UE -← (‎ ឹ ‎) 17B9 KHMER VOWEL SIGN Y - -# ื ឺ - (‎ ื ‎) 0E37 THAI CHARACTER SARA UEE -← (‎ ឺ ‎) 17BA KHMER VOWEL SIGN YY - -# ุ ຸ - (‎ ุ ‎) 0E38 THAI CHARACTER SARA U -← (‎ ຸ ‎) 0EB8 LAO VOWEL SIGN U - -# ู ູ - (‎ ู ‎) 0E39 THAI CHARACTER SARA UU -← (‎ ູ ‎) 0EB9 LAO VOWEL SIGN UU - -# เเ แ - (‎ เเ ‎) 0E40 0E40 THAI CHARACTER SARA E, THAI CHARACTER SARA E -← (‎ แ ‎) 0E41 THAI CHARACTER SARA AE - -# ่ ່ ់ - (‎ ่ ‎) 0E48 THAI CHARACTER MAI EK -← (‎ ່ ‎) 0EC8 LAO TONE MAI EK -← (‎ ់ ‎) 17CB KHMER SIGN BANTOC - -# ้ ້ - (‎ ้ ‎) 0E49 THAI CHARACTER MAI THO -← (‎ ້ ‎) 0EC9 LAO TONE MAI THO - -# ๊ ໊ - (‎ ๊ ‎) 0E4A THAI CHARACTER MAI TRI -← (‎ ໊ ‎) 0ECA LAO TONE MAI TI - -# ๋ ໋ - (‎ ๋ ‎) 0E4B THAI CHARACTER MAI CHATTAWA -← (‎ ໋ ‎) 0ECB LAO TONE MAI CATAWA - -# ๏ ៙ - (‎ ๏ ‎) 0E4F THAI CHARACTER FONGMAN -← (‎ ៙ ‎) 17D9 KHMER SIGN PHNAEK MUAN - -# ๚ ៕ - (‎ ๚ ‎) 0E5A THAI CHARACTER ANGKHANKHU -← (‎ ៕ ‎) 17D5 KHMER SIGN BARIYOOSAN - -# ๛ ៚ - (‎ ๛ ‎) 0E5B THAI CHARACTER KHOMUT -← (‎ ៚ ‎) 17DA KHMER SIGN KOOMUUT - -# ຫນ ໜ - (‎ ຫນ ‎) 0EAB 0E99 LAO LETTER HO SUNG, LAO LETTER NO -← (‎ ໜ ‎) 0EDC LAO HO NO - -# ຫມ ໝ - (‎ ຫມ ‎) 0EAB 0EA1 LAO LETTER HO SUNG, LAO LETTER MO -← (‎ ໝ ‎) 0EDD LAO HO MO - -# ཨོཾ ༀ - (‎ ༀ ‎) 0F00 TIBETAN SYLLABLE OM -← (‎ ཨོཾ ‎) 0F68 0F7C 0F7E TIBETAN LETTER A, TIBETAN VOWEL SIGN O, TIBETAN SIGN RJES SU NGA RO - -# འུྂཿ ༂ - (‎ ༂ ‎) 0F02 TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA -← (‎ འུྂཿ ‎) 0F60 0F74 0F82 0F7F TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN NYI ZLA NAA DA, TIBETAN SIGN RNAM BCAD - -# འུྂ༔ ༃ - (‎ ༃ ‎) 0F03 TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA -← (‎ འུྂ༔ ‎) 0F60 0F74 0F82 0F14 TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN NYI ZLA NAA DA, TIBETAN MARK GTER TSHEG - -# ་ ༌ - (‎ ་ ‎) 0F0B TIBETAN MARK INTERSYLLABIC TSHEG -← (‎ ༌ ‎) 0F0C TIBETAN MARK DELIMITER TSHEG BSTAR - -# །། ༎ - (‎ །། ‎) 0F0D 0F0D TIBETAN MARK SHAD, TIBETAN MARK SHAD -← (‎ ༎ ‎) 0F0E TIBETAN MARK NYIS SHAD - -# ༚༚ ༛ - (‎ ༚༚ ‎) 0F1A 0F1A TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL DKAR GCIG -← (‎ ༛ ‎) 0F1B TIBETAN SIGN RDEL DKAR GNYIS - -# ༚༝ ༟ - (‎ ༚༝ ‎) 0F1A 0F1D TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL NAG GCIG -← (‎ ༟ ‎) 0F1F TIBETAN SIGN RDEL DKAR RDEL NAG - -# ༝༚ ࿎ - (‎ ༝༚ ‎) 0F1D 0F1A TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL DKAR GCIG -← (‎ ࿎ ‎) 0FCE TIBETAN SIGN RDEL NAG RDEL DKAR - -# ༝༝ ༞ - (‎ ༝༝ ‎) 0F1D 0F1D TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL NAG GCIG -← (‎ ༞ ‎) 0F1E TIBETAN SIGN RDEL NAG GNYIS - -# ར ཪ - (‎ ར ‎) 0F62 TIBETAN LETTER RA -← (‎ ཪ ‎) 0F6A TIBETAN LETTER FIXED-FORM RA - -# ྲཱྀ ཷ - (‎ ཷ ‎) 0F77 TIBETAN VOWEL SIGN VOCALIC RR -← (‎ ྲཱྀ ‎) 0FB2 0F71 0F80 TIBETAN SUBJOINED LETTER RA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN REVERSED I - -# ླཱྀ ཹ - (‎ ཹ ‎) 0F79 TIBETAN VOWEL SIGN VOCALIC LL -← (‎ ླཱྀ ‎) 0FB3 0F71 0F80 TIBETAN SUBJOINED LETTER LA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN REVERSED I - -# 卐 ࿕ - (‎ ࿕ ‎) 0FD5 RIGHT-FACING SVASTI SIGN -← (‎ 卐 ‎) 5350 CJK UNIFIED IDEOGRAPH-5350 - -# 卍 ࿖ - (‎ ࿖ ‎) 0FD6 LEFT-FACING SVASTI SIGN -← (‎ 卍 ‎) 534D CJK UNIFIED IDEOGRAPH-534D - -# ဂာ က - (‎ က ‎) 1000 MYANMAR LETTER KA -← (‎ ဂာ ‎) 1002 102C MYANMAR LETTER GA, MYANMAR VOWEL SIGN AA - -# ဂှ ႁ - (‎ ဂှ ‎) 1002 103E MYANMAR LETTER GA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ႁ ‎) 1081 MYANMAR LETTER SHAN HA - -# ဃှ ၰ - (‎ ဃှ ‎) 1003 103E MYANMAR LETTER GHA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ၰ ‎) 1070 MYANMAR LETTER EASTERN PWO KAREN GHWA - -# ပာ ဟ - (‎ ပာ ‎) 1015 102C MYANMAR LETTER PA, MYANMAR VOWEL SIGN AA -← (‎ ဟ ‎) 101F MYANMAR LETTER HA - -# ပာှ ဟှ ၯ - (‎ ပာှ ‎) 1015 102C 103E MYANMAR LETTER PA, MYANMAR VOWEL SIGN AA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ဟှ ‎) 101F 103E MYANMAR LETTER HA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ၯ ‎) 106F MYANMAR LETTER EASTERN PWO KAREN YWA # →ဟှ→ - -# ပှ ၦ - (‎ ပှ ‎) 1015 103E MYANMAR LETTER PA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ၦ ‎) 1066 MYANMAR LETTER WESTERN PWO KAREN PWA - -# သြ ဩ - (‎ သြ ‎) 101E 103C MYANMAR LETTER SA, MYANMAR CONSONANT SIGN MEDIAL RA -← (‎ ဩ ‎) 1029 MYANMAR LETTER O - -# သြော် ဩော် ဪ - (‎ သြော် ‎) 101E 103C 1031 102C 103A MYANMAR LETTER SA, MYANMAR CONSONANT SIGN MEDIAL RA, MYANMAR VOWEL SIGN E, MYANMAR VOWEL SIGN AA, MYANMAR SIGN ASAT -← (‎ ဩော် ‎) 1029 1031 102C 103A MYANMAR LETTER O, MYANMAR VOWEL SIGN E, MYANMAR VOWEL SIGN AA, MYANMAR SIGN ASAT -← (‎ ဪ ‎) 102A MYANMAR LETTER AU # →ဩော်→ - -# ၁ ၥ - (‎ ၁ ‎) 1041 MYANMAR DIGIT ONE -← (‎ ၥ ‎) 1065 MYANMAR LETTER WESTERN PWO KAREN THA - -# ၊၊ ။ - (‎ ၊၊ ‎) 104A 104A MYANMAR SIGN LITTLE SECTION, MYANMAR SIGN LITTLE SECTION -← (‎ ။ ‎) 104B MYANMAR SIGN SECTION - -# ၽှ ၾ - (‎ ၽှ ‎) 107D 103E MYANMAR LETTER SHAN PHA, MYANMAR CONSONANT SIGN MEDIAL HA -← (‎ ၾ ‎) 107E MYANMAR LETTER SHAN FA - -# ႃ̊ ႃံ ႞ - (‎ ႃ̊ ‎) 1083 030A MYANMAR VOWEL SIGN SHAN AA, COMBINING RING ABOVE -← (‎ ႃံ ‎) 1083 1036 MYANMAR VOWEL SIGN SHAN AA, MYANMAR SIGN ANUSVARA -← (‎ ႞ ‎) 109E MYANMAR SYMBOL SHAN ONE # →ႃံ→ - -# Ꞇ Ⴀ - (‎ Ⴀ ‎) 10A0 GEORGIAN CAPITAL LETTER AN -← (‎ Ꞇ ‎) A786 LATIN CAPITAL LETTER INSULAR T - -# ᄀ ᆨ ㄱ - (‎ ᄀ ‎) 1100 HANGUL CHOSEONG KIYEOK -← (‎ ᆨ ‎) 11A8 HANGUL JONGSEONG KIYEOK -← (‎ ㄱ ‎) 3131 HANGUL LETTER KIYEOK - -# ᄀᄀ ᆨᆨ ᄁ ᆩ ㄲ - (‎ ᄀᄀ ‎) 1100 1100 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK -← (‎ ᆨᆨ ‎) 11A8 11A8 HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG KIYEOK # →ᆩ→→ᄁ→ -← (‎ ᄁ ‎) 1101 HANGUL CHOSEONG SSANGKIYEOK -← (‎ ᆩ ‎) 11A9 HANGUL JONGSEONG SSANGKIYEOK # →ᄁ→ -← (‎ ㄲ ‎) 3132 HANGUL LETTER SSANGKIYEOK # →ᄁ→ - -# ᄀᄂ ᆨᆫ ᇺ - (‎ ᄀᄂ ‎) 1100 1102 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG NIEUN -← (‎ ᆨᆫ ‎) 11A8 11AB HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG NIEUN -← (‎ ᇺ ‎) 11FA HANGUL JONGSEONG KIYEOK-NIEUN # →ᆨᆫ→ - -# ᄀᄃ ᅚ - (‎ ᄀᄃ ‎) 1100 1103 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG TIKEUT -← (‎ ᅚ ‎) 115A HANGUL CHOSEONG KIYEOK-TIKEUT - -# ᄀᄅ ᆨᆯ ᇃ - (‎ ᄀᄅ ‎) 1100 1105 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG RIEUL -← (‎ ᆨᆯ ‎) 11A8 11AF HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG RIEUL -← (‎ ᇃ ‎) 11C3 HANGUL JONGSEONG KIYEOK-RIEUL # →ᆨᆯ→ - -# ᄀᄇ ᆨᆸ ᇻ - (‎ ᄀᄇ ‎) 1100 1107 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG PIEUP -← (‎ ᆨᆸ ‎) 11A8 11B8 HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG PIEUP -← (‎ ᇻ ‎) 11FB HANGUL JONGSEONG KIYEOK-PIEUP # →ᆨᆸ→ - -# ᄀᄉ ᆨᆺ ᆪ ㄳ - (‎ ᄀᄉ ‎) 1100 1109 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS -← (‎ ᆨᆺ ‎) 11A8 11BA HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG SIOS -← (‎ ᆪ ‎) 11AA HANGUL JONGSEONG KIYEOK-SIOS # →ᆨᆺ→ -← (‎ ㄳ ‎) 3133 HANGUL LETTER KIYEOK-SIOS # →ᆪ→→ᆨᆺ→ - -# ᄀᄉᄀ ᆨᆺᆨ ᇄ - (‎ ᄀᄉᄀ ‎) 1100 1109 1100 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK -← (‎ ᆨᆺᆨ ‎) 11A8 11BA 11A8 HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG KIYEOK -← (‎ ᇄ ‎) 11C4 HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK # →ᆨᆺᆨ→ - -# ᄀᄎ ᆨᆾ ᇼ - (‎ ᄀᄎ ‎) 1100 110E HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG CHIEUCH -← (‎ ᆨᆾ ‎) 11A8 11BE HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG CHIEUCH -← (‎ ᇼ ‎) 11FC HANGUL JONGSEONG KIYEOK-CHIEUCH # →ᆨᆾ→ - -# ᄀᄏ ᆨᆿ ᇽ - (‎ ᄀᄏ ‎) 1100 110F HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KHIEUKH -← (‎ ᆨᆿ ‎) 11A8 11BF HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG KHIEUKH -← (‎ ᇽ ‎) 11FD HANGUL JONGSEONG KIYEOK-KHIEUKH # →ᆨᆿ→ - -# ᄀᄒ ᆨᇂ ᇾ - (‎ ᄀᄒ ‎) 1100 1112 HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG HIEUH -← (‎ ᆨᇂ ‎) 11A8 11C2 HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG HIEUH -← (‎ ᇾ ‎) 11FE HANGUL JONGSEONG KIYEOK-HIEUH # →ᆨᇂ→ - -# ᄂ ᆫ ㄴ - (‎ ᄂ ‎) 1102 HANGUL CHOSEONG NIEUN -← (‎ ᆫ ‎) 11AB HANGUL JONGSEONG NIEUN -← (‎ ㄴ ‎) 3134 HANGUL LETTER NIEUN - -# ᄂᄀ ᆫᆨ ᄓ ᇅ - (‎ ᄂᄀ ‎) 1102 1100 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG KIYEOK -← (‎ ᆫᆨ ‎) 11AB 11A8 HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG KIYEOK # →ᇅ→→ᄓ→ -← (‎ ᄓ ‎) 1113 HANGUL CHOSEONG NIEUN-KIYEOK -← (‎ ᇅ ‎) 11C5 HANGUL JONGSEONG NIEUN-KIYEOK # →ᄓ→ - -# ᄂᄂ ᆫᆫ ᄔ ᇿ ㅥ - (‎ ᄂᄂ ‎) 1102 1102 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN -← (‎ ᆫᆫ ‎) 11AB 11AB HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG NIEUN -← (‎ ᄔ ‎) 1114 HANGUL CHOSEONG SSANGNIEUN -← (‎ ᇿ ‎) 11FF HANGUL JONGSEONG SSANGNIEUN # →ᆫᆫ→ -← (‎ ㅥ ‎) 3165 HANGUL LETTER SSANGNIEUN # →ᄔ→ - -# ᄂᄃ ᆫᆮ ᄕ ᇆ ㅦ - (‎ ᄂᄃ ‎) 1102 1103 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT -← (‎ ᆫᆮ ‎) 11AB 11AE HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG TIKEUT # →ᇆ→→ᄕ→ -← (‎ ᄕ ‎) 1115 HANGUL CHOSEONG NIEUN-TIKEUT -← (‎ ᇆ ‎) 11C6 HANGUL JONGSEONG NIEUN-TIKEUT # →ᄕ→ -← (‎ ㅦ ‎) 3166 HANGUL LETTER NIEUN-TIKEUT # →ᄕ→ - -# ᄂᄅ ᆫᆯ ퟋ - (‎ ᄂᄅ ‎) 1102 1105 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG RIEUL -← (‎ ᆫᆯ ‎) 11AB 11AF HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG RIEUL -← (‎ ퟋ ‎) D7CB HANGUL JONGSEONG NIEUN-RIEUL # →ᆫᆯ→ - -# ᄂᄇ ᄖ - (‎ ᄂᄇ ‎) 1102 1107 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PIEUP -← (‎ ᄖ ‎) 1116 HANGUL CHOSEONG NIEUN-PIEUP - -# ᄂᄉ ᆫᆺ ᅛ ᇇ ㅧ - (‎ ᄂᄉ ‎) 1102 1109 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS -← (‎ ᆫᆺ ‎) 11AB 11BA HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG SIOS -← (‎ ᅛ ‎) 115B HANGUL CHOSEONG NIEUN-SIOS -← (‎ ᇇ ‎) 11C7 HANGUL JONGSEONG NIEUN-SIOS # →ᆫᆺ→ -← (‎ ㅧ ‎) 3167 HANGUL LETTER NIEUN-SIOS # →ᇇ→→ᆫᆺ→ - -# ᄂᄌ ᆫᆽ ᅜ ᆬ ㄵ - (‎ ᄂᄌ ‎) 1102 110C HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC -← (‎ ᆫᆽ ‎) 11AB 11BD HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG CIEUC -← (‎ ᅜ ‎) 115C HANGUL CHOSEONG NIEUN-CIEUC -← (‎ ᆬ ‎) 11AC HANGUL JONGSEONG NIEUN-CIEUC # →ᆫᆽ→ -← (‎ ㄵ ‎) 3135 HANGUL LETTER NIEUN-CIEUC # →ᆬ→→ᆫᆽ→ - -# ᄂᄎ ᆫᆾ ퟌ - (‎ ᄂᄎ ‎) 1102 110E HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CHIEUCH -← (‎ ᆫᆾ ‎) 11AB 11BE HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG CHIEUCH -← (‎ ퟌ ‎) D7CC HANGUL JONGSEONG NIEUN-CHIEUCH # →ᆫᆾ→ - -# ᄂᄐ ᆫᇀ ᇉ - (‎ ᄂᄐ ‎) 1102 1110 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG THIEUTH -← (‎ ᆫᇀ ‎) 11AB 11C0 HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG THIEUTH -← (‎ ᇉ ‎) 11C9 HANGUL JONGSEONG NIEUN-THIEUTH # →ᆫᇀ→ - -# ᄂᄒ ᆫᇂ ᅝ ᆭ ㄶ - (‎ ᄂᄒ ‎) 1102 1112 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH -← (‎ ᆫᇂ ‎) 11AB 11C2 HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG HIEUH -← (‎ ᅝ ‎) 115D HANGUL CHOSEONG NIEUN-HIEUH -← (‎ ᆭ ‎) 11AD HANGUL JONGSEONG NIEUN-HIEUH # →ᆫᇂ→ -← (‎ ㄶ ‎) 3136 HANGUL LETTER NIEUN-HIEUH # →ᆭ→→ᆫᇂ→ - -# ᄂᅀ ᆫᇫ ᇈ ㅨ - (‎ ᄂᅀ ‎) 1102 1140 HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PANSIOS -← (‎ ᆫᇫ ‎) 11AB 11EB HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG PANSIOS -← (‎ ᇈ ‎) 11C8 HANGUL JONGSEONG NIEUN-PANSIOS # →ᆫᇫ→ -← (‎ ㅨ ‎) 3168 HANGUL LETTER NIEUN-PANSIOS # →ᇈ→→ᆫᇫ→ - -# ᄃ ᆮ ㄷ - (‎ ᄃ ‎) 1103 HANGUL CHOSEONG TIKEUT -← (‎ ᆮ ‎) 11AE HANGUL JONGSEONG TIKEUT -← (‎ ㄷ ‎) 3137 HANGUL LETTER TIKEUT - -# ᄃᄀ ᆮᆨ ᄗ ᇊ - (‎ ᄃᄀ ‎) 1103 1100 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG KIYEOK -← (‎ ᆮᆨ ‎) 11AE 11A8 HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG KIYEOK # →ᇊ→→ᄗ→ -← (‎ ᄗ ‎) 1117 HANGUL CHOSEONG TIKEUT-KIYEOK -← (‎ ᇊ ‎) 11CA HANGUL JONGSEONG TIKEUT-KIYEOK # →ᄗ→ - -# ᄃᄃ ᆮᆮ ᄄ ퟍ ㄸ - (‎ ᄃᄃ ‎) 1103 1103 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT -← (‎ ᆮᆮ ‎) 11AE 11AE HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG TIKEUT -← (‎ ᄄ ‎) 1104 HANGUL CHOSEONG SSANGTIKEUT -← (‎ ퟍ ‎) D7CD HANGUL JONGSEONG SSANGTIKEUT # →ᆮᆮ→ -← (‎ ㄸ ‎) 3138 HANGUL LETTER SSANGTIKEUT # →ᄄ→ - -# ᄃᄃᄇ ᆮᆮᆸ ퟎ - (‎ ᄃᄃᄇ ‎) 1103 1103 1107 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP -← (‎ ᆮᆮᆸ ‎) 11AE 11AE 11B8 HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG PIEUP -← (‎ ퟎ ‎) D7CE HANGUL JONGSEONG SSANGTIKEUT-PIEUP # →ᆮᆮᆸ→ - -# ᄃᄅ ᆮᆯ ᅞ ᇋ - (‎ ᄃᄅ ‎) 1103 1105 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG RIEUL -← (‎ ᆮᆯ ‎) 11AE 11AF HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG RIEUL -← (‎ ᅞ ‎) 115E HANGUL CHOSEONG TIKEUT-RIEUL -← (‎ ᇋ ‎) 11CB HANGUL JONGSEONG TIKEUT-RIEUL # →ᆮᆯ→ - -# ᄃᄆ ꥠ - (‎ ᄃᄆ ‎) 1103 1106 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG MIEUM -← (‎ ꥠ ‎) A960 HANGUL CHOSEONG TIKEUT-MIEUM - -# ᄃᄇ ᆮᆸ ꥡ ퟏ - (‎ ᄃᄇ ‎) 1103 1107 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP -← (‎ ᆮᆸ ‎) 11AE 11B8 HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG PIEUP -← (‎ ꥡ ‎) A961 HANGUL CHOSEONG TIKEUT-PIEUP -← (‎ ퟏ ‎) D7CF HANGUL JONGSEONG TIKEUT-PIEUP # →ᆮᆸ→ - -# ᄃᄉ ᆮᆺ ꥢ ퟐ - (‎ ᄃᄉ ‎) 1103 1109 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS -← (‎ ᆮᆺ ‎) 11AE 11BA HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG SIOS -← (‎ ꥢ ‎) A962 HANGUL CHOSEONG TIKEUT-SIOS -← (‎ ퟐ ‎) D7D0 HANGUL JONGSEONG TIKEUT-SIOS # →ᆮᆺ→ - -# ᄃᄉᄀ ᆮᆺᆨ ퟑ - (‎ ᄃᄉᄀ ‎) 1103 1109 1100 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK -← (‎ ᆮᆺᆨ ‎) 11AE 11BA 11A8 HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG KIYEOK -← (‎ ퟑ ‎) D7D1 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK # →ᆮᆺᆨ→ - -# ᄃᄌ ᆮᆽ ꥣ ퟒ - (‎ ᄃᄌ ‎) 1103 110C HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CIEUC -← (‎ ᆮᆽ ‎) 11AE 11BD HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG CIEUC -← (‎ ꥣ ‎) A963 HANGUL CHOSEONG TIKEUT-CIEUC -← (‎ ퟒ ‎) D7D2 HANGUL JONGSEONG TIKEUT-CIEUC # →ᆮᆽ→ - -# ᄃᄎ ᆮᆾ ퟓ - (‎ ᄃᄎ ‎) 1103 110E HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CHIEUCH -← (‎ ᆮᆾ ‎) 11AE 11BE HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG CHIEUCH -← (‎ ퟓ ‎) D7D3 HANGUL JONGSEONG TIKEUT-CHIEUCH # →ᆮᆾ→ - -# ᄃᄐ ᆮᇀ ퟔ - (‎ ᄃᄐ ‎) 1103 1110 HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG THIEUTH -← (‎ ᆮᇀ ‎) 11AE 11C0 HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG THIEUTH -← (‎ ퟔ ‎) D7D4 HANGUL JONGSEONG TIKEUT-THIEUTH # →ᆮᇀ→ - -# ᄅ ᆯ ㄹ - (‎ ᄅ ‎) 1105 HANGUL CHOSEONG RIEUL -← (‎ ᆯ ‎) 11AF HANGUL JONGSEONG RIEUL -← (‎ ㄹ ‎) 3139 HANGUL LETTER RIEUL - -# ᄅᄀ ᆯᆨ ᆰ ꥤ ㄺ - (‎ ᄅᄀ ‎) 1105 1100 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK -← (‎ ᆯᆨ ‎) 11AF 11A8 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KIYEOK -← (‎ ᆰ ‎) 11B0 HANGUL JONGSEONG RIEUL-KIYEOK # →ᆯᆨ→ -← (‎ ꥤ ‎) A964 HANGUL CHOSEONG RIEUL-KIYEOK -← (‎ ㄺ ‎) 313A HANGUL LETTER RIEUL-KIYEOK # →ᆰ→→ᆯᆨ→ - -# ᄅᄀᄀ ᆯᆨᆨ ꥥ ퟕ - (‎ ᄅᄀᄀ ‎) 1105 1100 1100 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK -← (‎ ᆯᆨᆨ ‎) 11AF 11A8 11A8 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG KIYEOK -← (‎ ꥥ ‎) A965 HANGUL CHOSEONG RIEUL-SSANGKIYEOK -← (‎ ퟕ ‎) D7D5 HANGUL JONGSEONG RIEUL-SSANGKIYEOK # →ᆯᆨᆨ→ - -# ᄅᄀᄉ ᆯᆨᆺ ᇌ ㅩ - (‎ ᄅᄀᄉ ‎) 1105 1100 1109 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS -← (‎ ᆯᆨᆺ ‎) 11AF 11A8 11BA HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG SIOS -← (‎ ᇌ ‎) 11CC HANGUL JONGSEONG RIEUL-KIYEOK-SIOS # →ᆯᆨᆺ→ -← (‎ ㅩ ‎) 3169 HANGUL LETTER RIEUL-KIYEOK-SIOS # →ᇌ→→ᆯᆨᆺ→ - -# ᄅᄀᄒ ᆯᆨᇂ ퟖ - (‎ ᄅᄀᄒ ‎) 1105 1100 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG HIEUH -← (‎ ᆯᆨᇂ ‎) 11AF 11A8 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG HIEUH -← (‎ ퟖ ‎) D7D6 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH # →ᆯᆨᇂ→ - -# ᄅᄂ ᆯᆫ ᄘ ᇍ - (‎ ᄅᄂ ‎) 1105 1102 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG NIEUN -← (‎ ᆯᆫ ‎) 11AF 11AB HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG NIEUN # →ᇍ→→ᄘ→ -← (‎ ᄘ ‎) 1118 HANGUL CHOSEONG RIEUL-NIEUN -← (‎ ᇍ ‎) 11CD HANGUL JONGSEONG RIEUL-NIEUN # →ᄘ→ - -# ᄅᄃ ᆯᆮ ᇎ ꥦ ㅪ - (‎ ᄅᄃ ‎) 1105 1103 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT -← (‎ ᆯᆮ ‎) 11AF 11AE HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG TIKEUT -← (‎ ᇎ ‎) 11CE HANGUL JONGSEONG RIEUL-TIKEUT # →ᆯᆮ→ -← (‎ ꥦ ‎) A966 HANGUL CHOSEONG RIEUL-TIKEUT -← (‎ ㅪ ‎) 316A HANGUL LETTER RIEUL-TIKEUT # →ᇎ→→ᆯᆮ→ - -# ᄅᄃᄃ ꥧ - (‎ ᄅᄃᄃ ‎) 1105 1103 1103 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT -← (‎ ꥧ ‎) A967 HANGUL CHOSEONG RIEUL-SSANGTIKEUT - -# ᄅᄃᄒ ᆯᆮᇂ ᇏ - (‎ ᄅᄃᄒ ‎) 1105 1103 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG HIEUH -← (‎ ᆯᆮᇂ ‎) 11AF 11AE 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG TIKEUT, HANGUL JONGSEONG HIEUH -← (‎ ᇏ ‎) 11CF HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH # →ᆯᆮᇂ→ - -# ᄅᄅ ᆯᆯ ᄙ ᇐ - (‎ ᄅᄅ ‎) 1105 1105 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL -← (‎ ᆯᆯ ‎) 11AF 11AF HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG RIEUL # →ᇐ→→ᄙ→ -← (‎ ᄙ ‎) 1119 HANGUL CHOSEONG SSANGRIEUL -← (‎ ᇐ ‎) 11D0 HANGUL JONGSEONG SSANGRIEUL # →ᄙ→ - -# ᄅᄅᄏ ᆯᆯᆿ ퟗ - (‎ ᄅᄅᄏ ‎) 1105 1105 110F HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH -← (‎ ᆯᆯᆿ ‎) 11AF 11AF 11BF HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KHIEUKH -← (‎ ퟗ ‎) D7D7 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH # →ᆯᆯᆿ→ - -# ᄅᄆ ᆯᆷ ᆱ ꥨ ㄻ - (‎ ᄅᄆ ‎) 1105 1106 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM -← (‎ ᆯᆷ ‎) 11AF 11B7 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG MIEUM -← (‎ ᆱ ‎) 11B1 HANGUL JONGSEONG RIEUL-MIEUM # →ᆯᆷ→ -← (‎ ꥨ ‎) A968 HANGUL CHOSEONG RIEUL-MIEUM -← (‎ ㄻ ‎) 313B HANGUL LETTER RIEUL-MIEUM # →ᆱ→→ᆯᆷ→ - -# ᄅᄆᄀ ᆯᆷᆨ ᇑ - (‎ ᄅᄆᄀ ‎) 1105 1106 1100 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK -← (‎ ᆯᆷᆨ ‎) 11AF 11B7 11A8 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG KIYEOK -← (‎ ᇑ ‎) 11D1 HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK # →ᆯᆷᆨ→ - -# ᄅᄆᄉ ᆯᆷᆺ ᇒ - (‎ ᄅᄆᄉ ‎) 1105 1106 1109 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS -← (‎ ᆯᆷᆺ ‎) 11AF 11B7 11BA HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG SIOS -← (‎ ᇒ ‎) 11D2 HANGUL JONGSEONG RIEUL-MIEUM-SIOS # →ᆯᆷᆺ→ - -# ᄅᄆᄒ ᆯᆷᇂ ퟘ - (‎ ᄅᄆᄒ ‎) 1105 1106 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG HIEUH -← (‎ ᆯᆷᇂ ‎) 11AF 11B7 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG HIEUH -← (‎ ퟘ ‎) D7D8 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH # →ᆯᆷᇂ→ - -# ᄅᄇ ᆯᆸ ᆲ ꥩ ㄼ - (‎ ᄅᄇ ‎) 1105 1107 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP -← (‎ ᆯᆸ ‎) 11AF 11B8 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP -← (‎ ᆲ ‎) 11B2 HANGUL JONGSEONG RIEUL-PIEUP # →ᆯᆸ→ -← (‎ ꥩ ‎) A969 HANGUL CHOSEONG RIEUL-PIEUP -← (‎ ㄼ ‎) 313C HANGUL LETTER RIEUL-PIEUP # →ᆲ→→ᆯᆸ→ - -# ᄅᄇᄃ ᆯᆸᆮ ퟙ - (‎ ᄅᄇᄃ ‎) 1105 1107 1103 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT -← (‎ ᆯᆸᆮ ‎) 11AF 11B8 11AE HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG TIKEUT -← (‎ ퟙ ‎) D7D9 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT # →ᆯᆸᆮ→ - -# ᄅᄇᄇ ꥪ - (‎ ᄅᄇᄇ ‎) 1105 1107 1107 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP -← (‎ ꥪ ‎) A96A HANGUL CHOSEONG RIEUL-SSANGPIEUP - -# ᄅᄇᄉ ᆯᆸᆺ ᇓ ㅫ - (‎ ᄅᄇᄉ ‎) 1105 1107 1109 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS -← (‎ ᆯᆸᆺ ‎) 11AF 11B8 11BA HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG SIOS -← (‎ ᇓ ‎) 11D3 HANGUL JONGSEONG RIEUL-PIEUP-SIOS # →ᆯᆸᆺ→ -← (‎ ㅫ ‎) 316B HANGUL LETTER RIEUL-PIEUP-SIOS # →ᇓ→→ᆯᆸᆺ→ - -# ᄅᄇᄋ ᆯᆸᆼ ᇕ ꥫ - (‎ ᄅᄇᄋ ‎) 1105 1107 110B HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG -← (‎ ᆯᆸᆼ ‎) 11AF 11B8 11BC HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG IEUNG -← (‎ ᇕ ‎) 11D5 HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP # →ᆯᆸᆼ→ -← (‎ ꥫ ‎) A96B HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP - -# ᄅᄇᄑ ᆯᆸᇁ ퟚ - (‎ ᄅᄇᄑ ‎) 1105 1107 1111 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH -← (‎ ᆯᆸᇁ ‎) 11AF 11B8 11C1 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG PHIEUPH -← (‎ ퟚ ‎) D7DA HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH # →ᆯᆸᇁ→ - -# ᄅᄇᄒ ᆯᆸᇂ ᇔ - (‎ ᄅᄇᄒ ‎) 1105 1107 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH -← (‎ ᆯᆸᇂ ‎) 11AF 11B8 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG HIEUH -← (‎ ᇔ ‎) 11D4 HANGUL JONGSEONG RIEUL-PIEUP-HIEUH # →ᆯᆸᇂ→ - -# ᄅᄉ ᆯᆺ ᆳ ꥬ ㄽ - (‎ ᄅᄉ ‎) 1105 1109 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS -← (‎ ᆯᆺ ‎) 11AF 11BA HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG SIOS -← (‎ ᆳ ‎) 11B3 HANGUL JONGSEONG RIEUL-SIOS # →ᆯᆺ→ -← (‎ ꥬ ‎) A96C HANGUL CHOSEONG RIEUL-SIOS -← (‎ ㄽ ‎) 313D HANGUL LETTER RIEUL-SIOS # →ᆳ→→ᆯᆺ→ - -# ᄅᄉᄉ ᆯᆺᆺ ᇖ - (‎ ᄅᄉᄉ ‎) 1105 1109 1109 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS -← (‎ ᆯᆺᆺ ‎) 11AF 11BA 11BA HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG SIOS -← (‎ ᇖ ‎) 11D6 HANGUL JONGSEONG RIEUL-SSANGSIOS # →ᆯᆺᆺ→ - -# ᄅᄋ ᆯᆼ ᄛ ퟝ - (‎ ᄅᄋ ‎) 1105 110B HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG IEUNG -← (‎ ᆯᆼ ‎) 11AF 11BC HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG IEUNG -← (‎ ᄛ ‎) 111B HANGUL CHOSEONG KAPYEOUNRIEUL -← (‎ ퟝ ‎) D7DD HANGUL JONGSEONG KAPYEOUNRIEUL # →ᆯᆼ→ - -# ᄅᄌ ꥭ - (‎ ᄅᄌ ‎) 1105 110C HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG CIEUC -← (‎ ꥭ ‎) A96D HANGUL CHOSEONG RIEUL-CIEUC - -# ᄅᄏ ᆯᆿ ᇘ ꥮ - (‎ ᄅᄏ ‎) 1105 110F HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH -← (‎ ᆯᆿ ‎) 11AF 11BF HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG KHIEUKH -← (‎ ᇘ ‎) 11D8 HANGUL JONGSEONG RIEUL-KHIEUKH # →ᆯᆿ→ -← (‎ ꥮ ‎) A96E HANGUL CHOSEONG RIEUL-KHIEUKH - -# ᄅᄐ ᆯᇀ ᆴ ㄾ - (‎ ᄅᄐ ‎) 1105 1110 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG THIEUTH -← (‎ ᆯᇀ ‎) 11AF 11C0 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG THIEUTH -← (‎ ᆴ ‎) 11B4 HANGUL JONGSEONG RIEUL-THIEUTH # →ᆯᇀ→ -← (‎ ㄾ ‎) 313E HANGUL LETTER RIEUL-THIEUTH # →ᆴ→→ᆯᇀ→ - -# ᄅᄑ ᆯᇁ ᆵ ㄿ - (‎ ᄅᄑ ‎) 1105 1111 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH -← (‎ ᆯᇁ ‎) 11AF 11C1 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PHIEUPH -← (‎ ᆵ ‎) 11B5 HANGUL JONGSEONG RIEUL-PHIEUPH # →ᆯᇁ→ -← (‎ ㄿ ‎) 313F HANGUL LETTER RIEUL-PHIEUPH # →ᆵ→→ᆯᇁ→ - -# ᄅᄒ ᄉᄒ ᆯᇂ ᆺᇂ ᄚ ᄻ ᆶ ퟲ ㅀ - (‎ ᄅᄒ ‎) 1105 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH -← (‎ ᄉᄒ ‎) 1109 1112 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG HIEUH # →ᄻ→→ᄚ→ -← (‎ ᆯᇂ ‎) 11AF 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG HIEUH # →ᆶ→→ᄚ→ -← (‎ ᆺᇂ ‎) 11BA 11C2 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG HIEUH # →ᄉᄒ→→ᄻ→→ᄚ→ -← (‎ ᄚ ‎) 111A HANGUL CHOSEONG RIEUL-HIEUH -← (‎ ᄻ ‎) 113B HANGUL CHOSEONG SIOS-HIEUH # →ᄚ→ -← (‎ ᆶ ‎) 11B6 HANGUL JONGSEONG RIEUL-HIEUH # →ᄚ→ -← (‎ ퟲ ‎) D7F2 HANGUL JONGSEONG SIOS-HIEUH # →ᆺᇂ→→ᄉᄒ→→ᄻ→→ᄚ→ -← (‎ ㅀ ‎) 3140 HANGUL LETTER RIEUL-HIEUH # →ᄚ→ - -# ᄅᅀ ᆯᇫ ᇗ ㅬ - (‎ ᄅᅀ ‎) 1105 1140 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PANSIOS -← (‎ ᆯᇫ ‎) 11AF 11EB HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PANSIOS -← (‎ ᇗ ‎) 11D7 HANGUL JONGSEONG RIEUL-PANSIOS # →ᆯᇫ→ -← (‎ ㅬ ‎) 316C HANGUL LETTER RIEUL-PANSIOS # →ᇗ→→ᆯᇫ→ - -# ᄅᅌ ᆯᇰ ퟛ - (‎ ᄅᅌ ‎) 1105 114C HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YESIEUNG -← (‎ ᆯᇰ ‎) 11AF 11F0 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG YESIEUNG -← (‎ ퟛ ‎) D7DB HANGUL JONGSEONG RIEUL-YESIEUNG # →ᆯᇰ→ - -# ᄅᅙ ᆯᇹ ᇙ ㅭ - (‎ ᄅᅙ ‎) 1105 1159 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH -← (‎ ᆯᇹ ‎) 11AF 11F9 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG YEORINHIEUH -← (‎ ᇙ ‎) 11D9 HANGUL JONGSEONG RIEUL-YEORINHIEUH # →ᆯᇹ→ -← (‎ ㅭ ‎) 316D HANGUL LETTER RIEUL-YEORINHIEUH # →ᇙ→→ᆯᇹ→ - -# ᄅᅙᄒ ᆯᇹᇂ ퟜ - (‎ ᄅᅙᄒ ‎) 1105 1159 1112 HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH, HANGUL CHOSEONG HIEUH -← (‎ ᆯᇹᇂ ‎) 11AF 11F9 11C2 HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG YEORINHIEUH, HANGUL JONGSEONG HIEUH -← (‎ ퟜ ‎) D7DC HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH # →ᆯᇹᇂ→ - -# ᄆ ᆷ ㅁ - (‎ ᄆ ‎) 1106 HANGUL CHOSEONG MIEUM -← (‎ ᆷ ‎) 11B7 HANGUL JONGSEONG MIEUM -← (‎ ㅁ ‎) 3141 HANGUL LETTER MIEUM - -# ᄆᄀ ᆷᆨ ᇚ ꥯ - (‎ ᄆᄀ ‎) 1106 1100 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK -← (‎ ᆷᆨ ‎) 11B7 11A8 HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG KIYEOK -← (‎ ᇚ ‎) 11DA HANGUL JONGSEONG MIEUM-KIYEOK # →ᆷᆨ→ -← (‎ ꥯ ‎) A96F HANGUL CHOSEONG MIEUM-KIYEOK - -# ᄆᄂ ᆷᆫ ퟞ - (‎ ᄆᄂ ‎) 1106 1102 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN -← (‎ ᆷᆫ ‎) 11B7 11AB HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG NIEUN -← (‎ ퟞ ‎) D7DE HANGUL JONGSEONG MIEUM-NIEUN # →ᆷᆫ→ - -# ᄆᄂᄂ ᆷᆫᆫ ퟟ - (‎ ᄆᄂᄂ ‎) 1106 1102 1102 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN -← (‎ ᆷᆫᆫ ‎) 11B7 11AB 11AB HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG NIEUN, HANGUL JONGSEONG NIEUN -← (‎ ퟟ ‎) D7DF HANGUL JONGSEONG MIEUM-SSANGNIEUN # →ᆷᆫᆫ→ - -# ᄆᄃ ꥰ - (‎ ᄆᄃ ‎) 1106 1103 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG TIKEUT -← (‎ ꥰ ‎) A970 HANGUL CHOSEONG MIEUM-TIKEUT - -# ᄆᄅ ᆷᆯ ᇛ - (‎ ᄆᄅ ‎) 1106 1105 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG RIEUL -← (‎ ᆷᆯ ‎) 11B7 11AF HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG RIEUL -← (‎ ᇛ ‎) 11DB HANGUL JONGSEONG MIEUM-RIEUL # →ᆷᆯ→ - -# ᄆᄆ ᆷᆷ ퟠ - (‎ ᄆᄆ ‎) 1106 1106 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG MIEUM -← (‎ ᆷᆷ ‎) 11B7 11B7 HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG MIEUM -← (‎ ퟠ ‎) D7E0 HANGUL JONGSEONG SSANGMIEUM # →ᆷᆷ→ - -# ᄆᄇ ᆷᆸ ᄜ ᇜ ㅮ - (‎ ᄆᄇ ‎) 1106 1107 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP -← (‎ ᆷᆸ ‎) 11B7 11B8 HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG PIEUP # →ᇜ→→ᄜ→ -← (‎ ᄜ ‎) 111C HANGUL CHOSEONG MIEUM-PIEUP -← (‎ ᇜ ‎) 11DC HANGUL JONGSEONG MIEUM-PIEUP # →ᄜ→ -← (‎ ㅮ ‎) 316E HANGUL LETTER MIEUM-PIEUP # →ᄜ→ - -# ᄆᄇᄉ ᆷᆸᆺ ퟡ - (‎ ᄆᄇᄉ ‎) 1106 1107 1109 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS -← (‎ ᆷᆸᆺ ‎) 11B7 11B8 11BA HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG SIOS -← (‎ ퟡ ‎) D7E1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS # →ᆷᆸᆺ→ - -# ᄆᄉ ᆷᆺ ᇝ ꥱ ㅯ - (‎ ᄆᄉ ‎) 1106 1109 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS -← (‎ ᆷᆺ ‎) 11B7 11BA HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG SIOS -← (‎ ᇝ ‎) 11DD HANGUL JONGSEONG MIEUM-SIOS # →ᆷᆺ→ -← (‎ ꥱ ‎) A971 HANGUL CHOSEONG MIEUM-SIOS -← (‎ ㅯ ‎) 316F HANGUL LETTER MIEUM-SIOS # →ᇝ→→ᆷᆺ→ - -# ᄆᄉᄉ ᆷᆺᆺ ᇞ - (‎ ᄆᄉᄉ ‎) 1106 1109 1109 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS -← (‎ ᆷᆺᆺ ‎) 11B7 11BA 11BA HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG SIOS -← (‎ ᇞ ‎) 11DE HANGUL JONGSEONG MIEUM-SSANGSIOS # →ᆷᆺᆺ→ - -# ᄆᄋ ᆷᆼ ᄝ ᇢ ㅱ - (‎ ᄆᄋ ‎) 1106 110B HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG -← (‎ ᆷᆼ ‎) 11B7 11BC HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG IEUNG # →ᇢ→→ᄝ→ -← (‎ ᄝ ‎) 111D HANGUL CHOSEONG KAPYEOUNMIEUM -← (‎ ᇢ ‎) 11E2 HANGUL JONGSEONG KAPYEOUNMIEUM # →ᄝ→ -← (‎ ㅱ ‎) 3171 HANGUL LETTER KAPYEOUNMIEUM # →ᄝ→ - -# ᄆᄌ ᆷᆽ ퟢ - (‎ ᄆᄌ ‎) 1106 110C HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CIEUC -← (‎ ᆷᆽ ‎) 11B7 11BD HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG CIEUC -← (‎ ퟢ ‎) D7E2 HANGUL JONGSEONG MIEUM-CIEUC # →ᆷᆽ→ - -# ᄆᄎ ᆷᆾ ᇠ - (‎ ᄆᄎ ‎) 1106 110E HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CHIEUCH -← (‎ ᆷᆾ ‎) 11B7 11BE HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG CHIEUCH -← (‎ ᇠ ‎) 11E0 HANGUL JONGSEONG MIEUM-CHIEUCH # →ᆷᆾ→ - -# ᄆᄒ ᆷᇂ ᇡ - (‎ ᄆᄒ ‎) 1106 1112 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG HIEUH -← (‎ ᆷᇂ ‎) 11B7 11C2 HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG HIEUH -← (‎ ᇡ ‎) 11E1 HANGUL JONGSEONG MIEUM-HIEUH # →ᆷᇂ→ - -# ᄆᅀ ᆷᇫ ᇟ ㅰ - (‎ ᄆᅀ ‎) 1106 1140 HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PANSIOS -← (‎ ᆷᇫ ‎) 11B7 11EB HANGUL JONGSEONG MIEUM, HANGUL JONGSEONG PANSIOS -← (‎ ᇟ ‎) 11DF HANGUL JONGSEONG MIEUM-PANSIOS # →ᆷᇫ→ -← (‎ ㅰ ‎) 3170 HANGUL LETTER MIEUM-PANSIOS # →ᇟ→→ᆷᇫ→ - -# ᄇ ᆸ ㅂ - (‎ ᄇ ‎) 1107 HANGUL CHOSEONG PIEUP -← (‎ ᆸ ‎) 11B8 HANGUL JONGSEONG PIEUP -← (‎ ㅂ ‎) 3142 HANGUL LETTER PIEUP - -# ᄇᄀ ᄞ ㅲ - (‎ ᄇᄀ ‎) 1107 1100 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK -← (‎ ᄞ ‎) 111E HANGUL CHOSEONG PIEUP-KIYEOK -← (‎ ㅲ ‎) 3172 HANGUL LETTER PIEUP-KIYEOK # →ᄞ→ - -# ᄇᄂ ᄟ - (‎ ᄇᄂ ‎) 1107 1102 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG NIEUN -← (‎ ᄟ ‎) 111F HANGUL CHOSEONG PIEUP-NIEUN - -# ᄇᄃ ᆸᆮ ᄠ ퟣ ㅳ - (‎ ᄇᄃ ‎) 1107 1103 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT -← (‎ ᆸᆮ ‎) 11B8 11AE HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG TIKEUT -← (‎ ᄠ ‎) 1120 HANGUL CHOSEONG PIEUP-TIKEUT -← (‎ ퟣ ‎) D7E3 HANGUL JONGSEONG PIEUP-TIKEUT # →ᆸᆮ→ -← (‎ ㅳ ‎) 3173 HANGUL LETTER PIEUP-TIKEUT # →ᄠ→ - -# ᄇᄅ ᆸᆯ ᇣ - (‎ ᄇᄅ ‎) 1107 1105 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL -← (‎ ᆸᆯ ‎) 11B8 11AF HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG RIEUL -← (‎ ᇣ ‎) 11E3 HANGUL JONGSEONG PIEUP-RIEUL # →ᆸᆯ→ - -# ᄇᄅᄑ ᆸᆯᇁ ퟤ - (‎ ᄇᄅᄑ ‎) 1107 1105 1111 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH -← (‎ ᆸᆯᇁ ‎) 11B8 11AF 11C1 HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG RIEUL, HANGUL JONGSEONG PHIEUPH -← (‎ ퟤ ‎) D7E4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH # →ᆸᆯᇁ→ - -# ᄇᄆ ᆸᆷ ퟥ - (‎ ᄇᄆ ‎) 1107 1106 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG MIEUM -← (‎ ᆸᆷ ‎) 11B8 11B7 HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG MIEUM -← (‎ ퟥ ‎) D7E5 HANGUL JONGSEONG PIEUP-MIEUM # →ᆸᆷ→ - -# ᄇᄇ ᆸᆸ ᄈ ퟦ ㅃ - (‎ ᄇᄇ ‎) 1107 1107 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP -← (‎ ᆸᆸ ‎) 11B8 11B8 HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG PIEUP -← (‎ ᄈ ‎) 1108 HANGUL CHOSEONG SSANGPIEUP -← (‎ ퟦ ‎) D7E6 HANGUL JONGSEONG SSANGPIEUP # →ᆸᆸ→ -← (‎ ㅃ ‎) 3143 HANGUL LETTER SSANGPIEUP # →ᄈ→ - -# ᄇᄇᄋ ᄬ ㅹ - (‎ ᄇᄇᄋ ‎) 1107 1107 110B HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG -← (‎ ᄬ ‎) 112C HANGUL CHOSEONG KAPYEOUNSSANGPIEUP -← (‎ ㅹ ‎) 3179 HANGUL LETTER KAPYEOUNSSANGPIEUP # →ᄬ→ - -# ᄇᄉ ᆸᆺ ᄡ ᆹ ㅄ - (‎ ᄇᄉ ‎) 1107 1109 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS -← (‎ ᆸᆺ ‎) 11B8 11BA HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG SIOS # →ᆹ→→ᄡ→ -← (‎ ᄡ ‎) 1121 HANGUL CHOSEONG PIEUP-SIOS -← (‎ ᆹ ‎) 11B9 HANGUL JONGSEONG PIEUP-SIOS # →ᄡ→ -← (‎ ㅄ ‎) 3144 HANGUL LETTER PIEUP-SIOS # →ᄡ→ - -# ᄇᄉᄀ ᄢ ㅴ - (‎ ᄇᄉᄀ ‎) 1107 1109 1100 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK -← (‎ ᄢ ‎) 1122 HANGUL CHOSEONG PIEUP-SIOS-KIYEOK -← (‎ ㅴ ‎) 3174 HANGUL LETTER PIEUP-SIOS-KIYEOK # →ᄢ→ - -# ᄇᄉᄃ ᆸᆺᆮ ᄣ ퟧ ㅵ - (‎ ᄇᄉᄃ ‎) 1107 1109 1103 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT -← (‎ ᆸᆺᆮ ‎) 11B8 11BA 11AE HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG TIKEUT -← (‎ ᄣ ‎) 1123 HANGUL CHOSEONG PIEUP-SIOS-TIKEUT -← (‎ ퟧ ‎) D7E7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT # →ᆸᆺᆮ→ -← (‎ ㅵ ‎) 3175 HANGUL LETTER PIEUP-SIOS-TIKEUT # →ᄣ→ - -# ᄇᄉᄇ ᄤ - (‎ ᄇᄉᄇ ‎) 1107 1109 1107 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP -← (‎ ᄤ ‎) 1124 HANGUL CHOSEONG PIEUP-SIOS-PIEUP - -# ᄇᄉᄉ ᄥ - (‎ ᄇᄉᄉ ‎) 1107 1109 1109 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS -← (‎ ᄥ ‎) 1125 HANGUL CHOSEONG PIEUP-SSANGSIOS - -# ᄇᄉᄌ ᄦ - (‎ ᄇᄉᄌ ‎) 1107 1109 110C HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC -← (‎ ᄦ ‎) 1126 HANGUL CHOSEONG PIEUP-SIOS-CIEUC - -# ᄇᄉᄐ ꥲ - (‎ ᄇᄉᄐ ‎) 1107 1109 1110 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH -← (‎ ꥲ ‎) A972 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH - -# ᄇᄋ ᆸᆼ ᄫ ᇦ ㅸ - (‎ ᄇᄋ ‎) 1107 110B HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG -← (‎ ᆸᆼ ‎) 11B8 11BC HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG IEUNG # →ᇦ→→ᄫ→ -← (‎ ᄫ ‎) 112B HANGUL CHOSEONG KAPYEOUNPIEUP -← (‎ ᇦ ‎) 11E6 HANGUL JONGSEONG KAPYEOUNPIEUP # →ᄫ→ -← (‎ ㅸ ‎) 3178 HANGUL LETTER KAPYEOUNPIEUP # →ᄫ→ - -# ᄇᄌ ᆸᆽ ᄧ ퟨ ㅶ - (‎ ᄇᄌ ‎) 1107 110C HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC -← (‎ ᆸᆽ ‎) 11B8 11BD HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG CIEUC -← (‎ ᄧ ‎) 1127 HANGUL CHOSEONG PIEUP-CIEUC -← (‎ ퟨ ‎) D7E8 HANGUL JONGSEONG PIEUP-CIEUC # →ᆸᆽ→ -← (‎ ㅶ ‎) 3176 HANGUL LETTER PIEUP-CIEUC # →ᄧ→ - -# ᄇᄎ ᆸᆾ ᄨ ퟩ - (‎ ᄇᄎ ‎) 1107 110E HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CHIEUCH -← (‎ ᆸᆾ ‎) 11B8 11BE HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG CHIEUCH -← (‎ ᄨ ‎) 1128 HANGUL CHOSEONG PIEUP-CHIEUCH -← (‎ ퟩ ‎) D7E9 HANGUL JONGSEONG PIEUP-CHIEUCH # →ᆸᆾ→ - -# ᄇᄏ ꥳ - (‎ ᄇᄏ ‎) 1107 110F HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KHIEUKH -← (‎ ꥳ ‎) A973 HANGUL CHOSEONG PIEUP-KHIEUKH - -# ᄇᄐ ᄩ ㅷ - (‎ ᄇᄐ ‎) 1107 1110 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG THIEUTH -← (‎ ᄩ ‎) 1129 HANGUL CHOSEONG PIEUP-THIEUTH -← (‎ ㅷ ‎) 3177 HANGUL LETTER PIEUP-THIEUTH # →ᄩ→ - -# ᄇᄑ ᆸᇁ ᄪ ᇤ - (‎ ᄇᄑ ‎) 1107 1111 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH -← (‎ ᆸᇁ ‎) 11B8 11C1 HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG PHIEUPH -← (‎ ᄪ ‎) 112A HANGUL CHOSEONG PIEUP-PHIEUPH -← (‎ ᇤ ‎) 11E4 HANGUL JONGSEONG PIEUP-PHIEUPH # →ᄪ→ - -# ᄇᄒ ᆸᇂ ᇥ ꥴ - (‎ ᄇᄒ ‎) 1107 1112 HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH -← (‎ ᆸᇂ ‎) 11B8 11C2 HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG HIEUH -← (‎ ᇥ ‎) 11E5 HANGUL JONGSEONG PIEUP-HIEUH # →ᆸᇂ→ -← (‎ ꥴ ‎) A974 HANGUL CHOSEONG PIEUP-HIEUH - -# ᄉ ᆺ ㅅ - (‎ ᄉ ‎) 1109 HANGUL CHOSEONG SIOS -← (‎ ᆺ ‎) 11BA HANGUL JONGSEONG SIOS -← (‎ ㅅ ‎) 3145 HANGUL LETTER SIOS - -# ᄉᄀ ᆺᆨ ᄭ ᇧ ㅺ - (‎ ᄉᄀ ‎) 1109 1100 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK -← (‎ ᆺᆨ ‎) 11BA 11A8 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG KIYEOK # →ᇧ→→ᄭ→ -← (‎ ᄭ ‎) 112D HANGUL CHOSEONG SIOS-KIYEOK -← (‎ ᇧ ‎) 11E7 HANGUL JONGSEONG SIOS-KIYEOK # →ᄭ→ -← (‎ ㅺ ‎) 317A HANGUL LETTER SIOS-KIYEOK # →ᄭ→ - -# ᄉᄂ ᄮ ㅻ - (‎ ᄉᄂ ‎) 1109 1102 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG NIEUN -← (‎ ᄮ ‎) 112E HANGUL CHOSEONG SIOS-NIEUN -← (‎ ㅻ ‎) 317B HANGUL LETTER SIOS-NIEUN # →ᄮ→ - -# ᄉᄃ ᆺᆮ ᄯ ᇨ ㅼ - (‎ ᄉᄃ ‎) 1109 1103 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT -← (‎ ᆺᆮ ‎) 11BA 11AE HANGUL JONGSEONG SIOS, HANGUL JONGSEONG TIKEUT # →ᇨ→→ᄯ→ -← (‎ ᄯ ‎) 112F HANGUL CHOSEONG SIOS-TIKEUT -← (‎ ᇨ ‎) 11E8 HANGUL JONGSEONG SIOS-TIKEUT # →ᄯ→ -← (‎ ㅼ ‎) 317C HANGUL LETTER SIOS-TIKEUT # →ᄯ→ - -# ᄉᄅ ᆺᆯ ᄰ ᇩ - (‎ ᄉᄅ ‎) 1109 1105 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG RIEUL -← (‎ ᆺᆯ ‎) 11BA 11AF HANGUL JONGSEONG SIOS, HANGUL JONGSEONG RIEUL # →ᇩ→→ᄰ→ -← (‎ ᄰ ‎) 1130 HANGUL CHOSEONG SIOS-RIEUL -← (‎ ᇩ ‎) 11E9 HANGUL JONGSEONG SIOS-RIEUL # →ᄰ→ - -# ᄉᄆ ᆺᆷ ᄱ ퟪ - (‎ ᄉᄆ ‎) 1109 1106 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG MIEUM -← (‎ ᆺᆷ ‎) 11BA 11B7 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG MIEUM -← (‎ ᄱ ‎) 1131 HANGUL CHOSEONG SIOS-MIEUM -← (‎ ퟪ ‎) D7EA HANGUL JONGSEONG SIOS-MIEUM # →ᆺᆷ→ - -# ᄉᄇ ᆺᆸ ᄲ ᇪ ㅽ - (‎ ᄉᄇ ‎) 1109 1107 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP -← (‎ ᆺᆸ ‎) 11BA 11B8 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG PIEUP # →ᇪ→→ᄲ→ -← (‎ ᄲ ‎) 1132 HANGUL CHOSEONG SIOS-PIEUP -← (‎ ᇪ ‎) 11EA HANGUL JONGSEONG SIOS-PIEUP # →ᄲ→ -← (‎ ㅽ ‎) 317D HANGUL LETTER SIOS-PIEUP # →ᄲ→ - -# ᄉᄇᄀ ᄳ - (‎ ᄉᄇᄀ ‎) 1109 1107 1100 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK -← (‎ ᄳ ‎) 1133 HANGUL CHOSEONG SIOS-PIEUP-KIYEOK - -# ᄉᄇᄋ ᆺᆸᆼ ퟫ - (‎ ᄉᄇᄋ ‎) 1109 1107 110B HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG -← (‎ ᆺᆸᆼ ‎) 11BA 11B8 11BC HANGUL JONGSEONG SIOS, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG IEUNG -← (‎ ퟫ ‎) D7EB HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP # →ᆺᆸᆼ→ - -# ᄉᄉ ᆺᆺ ᄊ ᆻ ㅆ - (‎ ᄉᄉ ‎) 1109 1109 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS -← (‎ ᆺᆺ ‎) 11BA 11BA HANGUL JONGSEONG SIOS, HANGUL JONGSEONG SIOS # →ᆻ→→ᄊ→ -← (‎ ᄊ ‎) 110A HANGUL CHOSEONG SSANGSIOS -← (‎ ᆻ ‎) 11BB HANGUL JONGSEONG SSANGSIOS # →ᄊ→ -← (‎ ㅆ ‎) 3146 HANGUL LETTER SSANGSIOS # →ᄊ→ - -# ᄉᄉᄀ ᆺᆺᆨ ퟬ - (‎ ᄉᄉᄀ ‎) 1109 1109 1100 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK -← (‎ ᆺᆺᆨ ‎) 11BA 11BA 11A8 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG KIYEOK -← (‎ ퟬ ‎) D7EC HANGUL JONGSEONG SSANGSIOS-KIYEOK # →ᆺᆺᆨ→ - -# ᄉᄉᄃ ᆺᆺᆮ ퟭ - (‎ ᄉᄉᄃ ‎) 1109 1109 1103 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT -← (‎ ᆺᆺᆮ ‎) 11BA 11BA 11AE HANGUL JONGSEONG SIOS, HANGUL JONGSEONG SIOS, HANGUL JONGSEONG TIKEUT -← (‎ ퟭ ‎) D7ED HANGUL JONGSEONG SSANGSIOS-TIKEUT # →ᆺᆺᆮ→ - -# ᄉᄉᄇ ꥵ - (‎ ᄉᄉᄇ ‎) 1109 1109 1107 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP -← (‎ ꥵ ‎) A975 HANGUL CHOSEONG SSANGSIOS-PIEUP - -# ᄉᄉᄉ ᄴ - (‎ ᄉᄉᄉ ‎) 1109 1109 1109 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS -← (‎ ᄴ ‎) 1134 HANGUL CHOSEONG SIOS-SSANGSIOS - -# ᄉᄋ ᄵ - (‎ ᄉᄋ ‎) 1109 110B HANGUL CHOSEONG SIOS, HANGUL CHOSEONG IEUNG -← (‎ ᄵ ‎) 1135 HANGUL CHOSEONG SIOS-IEUNG - -# ᄉᄌ ᆺᆽ ᄶ ퟯ ㅾ - (‎ ᄉᄌ ‎) 1109 110C HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC -← (‎ ᆺᆽ ‎) 11BA 11BD HANGUL JONGSEONG SIOS, HANGUL JONGSEONG CIEUC -← (‎ ᄶ ‎) 1136 HANGUL CHOSEONG SIOS-CIEUC -← (‎ ퟯ ‎) D7EF HANGUL JONGSEONG SIOS-CIEUC # →ᆺᆽ→ -← (‎ ㅾ ‎) 317E HANGUL LETTER SIOS-CIEUC # →ᄶ→ - -# ᄉᄎ ᆺᆾ ᄷ ퟰ - (‎ ᄉᄎ ‎) 1109 110E HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CHIEUCH -← (‎ ᆺᆾ ‎) 11BA 11BE HANGUL JONGSEONG SIOS, HANGUL JONGSEONG CHIEUCH -← (‎ ᄷ ‎) 1137 HANGUL CHOSEONG SIOS-CHIEUCH -← (‎ ퟰ ‎) D7F0 HANGUL JONGSEONG SIOS-CHIEUCH # →ᆺᆾ→ - -# ᄉᄏ ᄸ - (‎ ᄉᄏ ‎) 1109 110F HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KHIEUKH -← (‎ ᄸ ‎) 1138 HANGUL CHOSEONG SIOS-KHIEUKH - -# ᄉᄐ ᆺᇀ ᄹ ퟱ - (‎ ᄉᄐ ‎) 1109 1110 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH -← (‎ ᆺᇀ ‎) 11BA 11C0 HANGUL JONGSEONG SIOS, HANGUL JONGSEONG THIEUTH -← (‎ ᄹ ‎) 1139 HANGUL CHOSEONG SIOS-THIEUTH -← (‎ ퟱ ‎) D7F1 HANGUL JONGSEONG SIOS-THIEUTH # →ᆺᇀ→ - -# ᄉᄑ ᄺ - (‎ ᄉᄑ ‎) 1109 1111 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PHIEUPH -← (‎ ᄺ ‎) 113A HANGUL CHOSEONG SIOS-PHIEUPH - -# ᄉᅀ ᆺᇫ ퟮ - (‎ ᄉᅀ ‎) 1109 1140 HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PANSIOS -← (‎ ᆺᇫ ‎) 11BA 11EB HANGUL JONGSEONG SIOS, HANGUL JONGSEONG PANSIOS -← (‎ ퟮ ‎) D7EE HANGUL JONGSEONG SIOS-PANSIOS # →ᆺᇫ→ - -# ᄋ ᆼ ㅇ - (‎ ᄋ ‎) 110B HANGUL CHOSEONG IEUNG -← (‎ ᆼ ‎) 11BC HANGUL JONGSEONG IEUNG -← (‎ ㅇ ‎) 3147 HANGUL LETTER IEUNG - -# ᄋᄀ ᆼᆨ ᅁ ᇬ - (‎ ᄋᄀ ‎) 110B 1100 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK -← (‎ ᆼᆨ ‎) 11BC 11A8 HANGUL JONGSEONG IEUNG, HANGUL JONGSEONG KIYEOK # →ᇬ→→ᅁ→ -← (‎ ᅁ ‎) 1141 HANGUL CHOSEONG IEUNG-KIYEOK -← (‎ ᇬ ‎) 11EC HANGUL JONGSEONG IEUNG-KIYEOK # →ᅁ→ - -# ᄋᄀᄀ ᆼᆨᆨ ᇭ - (‎ ᄋᄀᄀ ‎) 110B 1100 1100 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK -← (‎ ᆼᆨᆨ ‎) 11BC 11A8 11A8 HANGUL JONGSEONG IEUNG, HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG KIYEOK -← (‎ ᇭ ‎) 11ED HANGUL JONGSEONG IEUNG-SSANGKIYEOK # →ᆼᆨᆨ→ - -# ᄋᄃ ᅂ - (‎ ᄋᄃ ‎) 110B 1103 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG TIKEUT -← (‎ ᅂ ‎) 1142 HANGUL CHOSEONG IEUNG-TIKEUT - -# ᄋᄅ ꥶ - (‎ ᄋᄅ ‎) 110B 1105 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG RIEUL -← (‎ ꥶ ‎) A976 HANGUL CHOSEONG IEUNG-RIEUL - -# ᄋᄆ ᅃ - (‎ ᄋᄆ ‎) 110B 1106 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG MIEUM -← (‎ ᅃ ‎) 1143 HANGUL CHOSEONG IEUNG-MIEUM - -# ᄋᄇ ᅄ - (‎ ᄋᄇ ‎) 110B 1107 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PIEUP -← (‎ ᅄ ‎) 1144 HANGUL CHOSEONG IEUNG-PIEUP - -# ᄋᄉ ᅌᄉ ᇰᆺ ᅅ ᇱ ㆂ - (‎ ᄋᄉ ‎) 110B 1109 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS -← (‎ ᅌᄉ ‎) 114C 1109 HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG SIOS # →ᇰᆺ→→ᇱ→→ᅅ→ -← (‎ ᇰᆺ ‎) 11F0 11BA HANGUL JONGSEONG YESIEUNG, HANGUL JONGSEONG SIOS # →ᇱ→→ᅅ→ -← (‎ ᅅ ‎) 1145 HANGUL CHOSEONG IEUNG-SIOS -← (‎ ᇱ ‎) 11F1 HANGUL JONGSEONG YESIEUNG-SIOS # →ᅅ→ -← (‎ ㆂ ‎) 3182 HANGUL LETTER YESIEUNG-SIOS # →ᇱ→→ᅅ→ - -# ᄋᄋ ᆼᆼ ᅇ ᇮ ㆀ - (‎ ᄋᄋ ‎) 110B 110B HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG -← (‎ ᆼᆼ ‎) 11BC 11BC HANGUL JONGSEONG IEUNG, HANGUL JONGSEONG IEUNG # →ᇮ→→ᅇ→ -← (‎ ᅇ ‎) 1147 HANGUL CHOSEONG SSANGIEUNG -← (‎ ᇮ ‎) 11EE HANGUL JONGSEONG SSANGIEUNG # →ᅇ→ -← (‎ ㆀ ‎) 3180 HANGUL LETTER SSANGIEUNG # →ᅇ→ - -# ᄋᄌ ᅈ - (‎ ᄋᄌ ‎) 110B 110C HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CIEUC -← (‎ ᅈ ‎) 1148 HANGUL CHOSEONG IEUNG-CIEUC - -# ᄋᄎ ᅉ - (‎ ᄋᄎ ‎) 110B 110E HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CHIEUCH -← (‎ ᅉ ‎) 1149 HANGUL CHOSEONG IEUNG-CHIEUCH - -# ᄋᄏ ᆼᆿ ᇯ - (‎ ᄋᄏ ‎) 110B 110F HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KHIEUKH -← (‎ ᆼᆿ ‎) 11BC 11BF HANGUL JONGSEONG IEUNG, HANGUL JONGSEONG KHIEUKH -← (‎ ᇯ ‎) 11EF HANGUL JONGSEONG IEUNG-KHIEUKH # →ᆼᆿ→ - -# ᄋᄐ ᅊ - (‎ ᄋᄐ ‎) 110B 1110 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG THIEUTH -← (‎ ᅊ ‎) 114A HANGUL CHOSEONG IEUNG-THIEUTH - -# ᄋᄑ ᅋ - (‎ ᄋᄑ ‎) 110B 1111 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PHIEUPH -← (‎ ᅋ ‎) 114B HANGUL CHOSEONG IEUNG-PHIEUPH - -# ᄋᄒ ꥷ - (‎ ᄋᄒ ‎) 110B 1112 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG HIEUH -← (‎ ꥷ ‎) A977 HANGUL CHOSEONG IEUNG-HIEUH - -# ᄋᅀ ᅌᅀ ᇰᇫ ᅆ ᇲ ㆃ - (‎ ᄋᅀ ‎) 110B 1140 HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS -← (‎ ᅌᅀ ‎) 114C 1140 HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG PANSIOS # →ᇰᇫ→→ᇲ→→ᅆ→ -← (‎ ᇰᇫ ‎) 11F0 11EB HANGUL JONGSEONG YESIEUNG, HANGUL JONGSEONG PANSIOS # →ᇲ→→ᅆ→ -← (‎ ᅆ ‎) 1146 HANGUL CHOSEONG IEUNG-PANSIOS -← (‎ ᇲ ‎) 11F2 HANGUL JONGSEONG YESIEUNG-PANSIOS # →ᅆ→ -← (‎ ㆃ ‎) 3183 HANGUL LETTER YESIEUNG-PANSIOS # →ᇲ→→ᅆ→ - -# ᄌ ᆽ ㅈ - (‎ ᄌ ‎) 110C HANGUL CHOSEONG CIEUC -← (‎ ᆽ ‎) 11BD HANGUL JONGSEONG CIEUC -← (‎ ㅈ ‎) 3148 HANGUL LETTER CIEUC - -# ᄌᄇ ᆽᆸ ퟷ - (‎ ᄌᄇ ‎) 110C 1107 HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP -← (‎ ᆽᆸ ‎) 11BD 11B8 HANGUL JONGSEONG CIEUC, HANGUL JONGSEONG PIEUP -← (‎ ퟷ ‎) D7F7 HANGUL JONGSEONG CIEUC-PIEUP # →ᆽᆸ→ - -# ᄌᄇᄇ ᆽᆸᆸ ퟸ - (‎ ᄌᄇᄇ ‎) 110C 1107 1107 HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP -← (‎ ᆽᆸᆸ ‎) 11BD 11B8 11B8 HANGUL JONGSEONG CIEUC, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG PIEUP -← (‎ ퟸ ‎) D7F8 HANGUL JONGSEONG CIEUC-SSANGPIEUP # →ᆽᆸᆸ→ - -# ᄌᄋ ᅍ - (‎ ᄌᄋ ‎) 110C 110B HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG IEUNG -← (‎ ᅍ ‎) 114D HANGUL CHOSEONG CIEUC-IEUNG - -# ᄌᄌ ᆽᆽ ᄍ ퟹ ㅉ - (‎ ᄌᄌ ‎) 110C 110C HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC -← (‎ ᆽᆽ ‎) 11BD 11BD HANGUL JONGSEONG CIEUC, HANGUL JONGSEONG CIEUC -← (‎ ᄍ ‎) 110D HANGUL CHOSEONG SSANGCIEUC -← (‎ ퟹ ‎) D7F9 HANGUL JONGSEONG SSANGCIEUC # →ᆽᆽ→ -← (‎ ㅉ ‎) 3149 HANGUL LETTER SSANGCIEUC # →ᄍ→ - -# ᄌᄌᄒ ꥸ - (‎ ᄌᄌᄒ ‎) 110C 110C 1112 HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG HIEUH -← (‎ ꥸ ‎) A978 HANGUL CHOSEONG SSANGCIEUC-HIEUH - -# ᄎ ᆾ ㅊ - (‎ ᄎ ‎) 110E HANGUL CHOSEONG CHIEUCH -← (‎ ᆾ ‎) 11BE HANGUL JONGSEONG CHIEUCH -← (‎ ㅊ ‎) 314A HANGUL LETTER CHIEUCH - -# ᄎᄏ ᅒ - (‎ ᄎᄏ ‎) 110E 110F HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG KHIEUKH -← (‎ ᅒ ‎) 1152 HANGUL CHOSEONG CHIEUCH-KHIEUKH - -# ᄎᄒ ᅓ - (‎ ᄎᄒ ‎) 110E 1112 HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG HIEUH -← (‎ ᅓ ‎) 1153 HANGUL CHOSEONG CHIEUCH-HIEUH - -# ᄏ ᆿ ㅋ - (‎ ᄏ ‎) 110F HANGUL CHOSEONG KHIEUKH -← (‎ ᆿ ‎) 11BF HANGUL JONGSEONG KHIEUKH -← (‎ ㅋ ‎) 314B HANGUL LETTER KHIEUKH - -# ᄐ ᇀ ㅌ - (‎ ᄐ ‎) 1110 HANGUL CHOSEONG THIEUTH -← (‎ ᇀ ‎) 11C0 HANGUL JONGSEONG THIEUTH -← (‎ ㅌ ‎) 314C HANGUL LETTER THIEUTH - -# ᄐᄐ ꥹ - (‎ ᄐᄐ ‎) 1110 1110 HANGUL CHOSEONG THIEUTH, HANGUL CHOSEONG THIEUTH -← (‎ ꥹ ‎) A979 HANGUL CHOSEONG SSANGTHIEUTH - -# ᄑ ᇁ ㅍ - (‎ ᄑ ‎) 1111 HANGUL CHOSEONG PHIEUPH -← (‎ ᇁ ‎) 11C1 HANGUL JONGSEONG PHIEUPH -← (‎ ㅍ ‎) 314D HANGUL LETTER PHIEUPH - -# ᄑᄇ ᇁᆸ ᅖ ᇳ - (‎ ᄑᄇ ‎) 1111 1107 HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG PIEUP -← (‎ ᇁᆸ ‎) 11C1 11B8 HANGUL JONGSEONG PHIEUPH, HANGUL JONGSEONG PIEUP # →ᇳ→→ᅖ→ -← (‎ ᅖ ‎) 1156 HANGUL CHOSEONG PHIEUPH-PIEUP -← (‎ ᇳ ‎) 11F3 HANGUL JONGSEONG PHIEUPH-PIEUP # →ᅖ→ - -# ᄑᄉ ᇁᆺ ퟺ - (‎ ᄑᄉ ‎) 1111 1109 HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG SIOS -← (‎ ᇁᆺ ‎) 11C1 11BA HANGUL JONGSEONG PHIEUPH, HANGUL JONGSEONG SIOS -← (‎ ퟺ ‎) D7FA HANGUL JONGSEONG PHIEUPH-SIOS # →ᇁᆺ→ - -# ᄑᄋ ᇁᆼ ᅗ ᇴ ㆄ - (‎ ᄑᄋ ‎) 1111 110B HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG -← (‎ ᇁᆼ ‎) 11C1 11BC HANGUL JONGSEONG PHIEUPH, HANGUL JONGSEONG IEUNG # →ᇴ→→ᅗ→ -← (‎ ᅗ ‎) 1157 HANGUL CHOSEONG KAPYEOUNPHIEUPH -← (‎ ᇴ ‎) 11F4 HANGUL JONGSEONG KAPYEOUNPHIEUPH # →ᅗ→ -← (‎ ㆄ ‎) 3184 HANGUL LETTER KAPYEOUNPHIEUPH # →ᅗ→ - -# ᄑᄐ ᇁᇀ ퟻ - (‎ ᄑᄐ ‎) 1111 1110 HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG THIEUTH -← (‎ ᇁᇀ ‎) 11C1 11C0 HANGUL JONGSEONG PHIEUPH, HANGUL JONGSEONG THIEUTH -← (‎ ퟻ ‎) D7FB HANGUL JONGSEONG PHIEUPH-THIEUTH # →ᇁᇀ→ - -# ᄑᄒ ꥺ - (‎ ᄑᄒ ‎) 1111 1112 HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG HIEUH -← (‎ ꥺ ‎) A97A HANGUL CHOSEONG PHIEUPH-HIEUH - -# ᄒ ᇂ ㅎ - (‎ ᄒ ‎) 1112 HANGUL CHOSEONG HIEUH -← (‎ ᇂ ‎) 11C2 HANGUL JONGSEONG HIEUH -← (‎ ㅎ ‎) 314E HANGUL LETTER HIEUH - -# ᄒᄂ ᇂᆫ ᇵ - (‎ ᄒᄂ ‎) 1112 1102 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG NIEUN -← (‎ ᇂᆫ ‎) 11C2 11AB HANGUL JONGSEONG HIEUH, HANGUL JONGSEONG NIEUN -← (‎ ᇵ ‎) 11F5 HANGUL JONGSEONG HIEUH-NIEUN # →ᇂᆫ→ - -# ᄒᄅ ᇂᆯ ᇶ - (‎ ᄒᄅ ‎) 1112 1105 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG RIEUL -← (‎ ᇂᆯ ‎) 11C2 11AF HANGUL JONGSEONG HIEUH, HANGUL JONGSEONG RIEUL -← (‎ ᇶ ‎) 11F6 HANGUL JONGSEONG HIEUH-RIEUL # →ᇂᆯ→ - -# ᄒᄆ ᇂᆷ ᇷ - (‎ ᄒᄆ ‎) 1112 1106 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG MIEUM -← (‎ ᇂᆷ ‎) 11C2 11B7 HANGUL JONGSEONG HIEUH, HANGUL JONGSEONG MIEUM -← (‎ ᇷ ‎) 11F7 HANGUL JONGSEONG HIEUH-MIEUM # →ᇂᆷ→ - -# ᄒᄇ ᇂᆸ ᇸ - (‎ ᄒᄇ ‎) 1112 1107 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG PIEUP -← (‎ ᇂᆸ ‎) 11C2 11B8 HANGUL JONGSEONG HIEUH, HANGUL JONGSEONG PIEUP -← (‎ ᇸ ‎) 11F8 HANGUL JONGSEONG HIEUH-PIEUP # →ᇂᆸ→ - -# ᄒᄉ ꥻ - (‎ ᄒᄉ ‎) 1112 1109 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG SIOS -← (‎ ꥻ ‎) A97B HANGUL CHOSEONG HIEUH-SIOS - -# ᄒᄒ ᅘ ㆅ - (‎ ᄒᄒ ‎) 1112 1112 HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG HIEUH -← (‎ ᅘ ‎) 1158 HANGUL CHOSEONG SSANGHIEUH -← (‎ ㆅ ‎) 3185 HANGUL LETTER SSANGHIEUH # →ᅘ→ - -# ᄼᄼ ᄽ - (‎ ᄼᄼ ‎) 113C 113C HANGUL CHOSEONG CHITUEUMSIOS, HANGUL CHOSEONG CHITUEUMSIOS -← (‎ ᄽ ‎) 113D HANGUL CHOSEONG CHITUEUMSSANGSIOS - -# ᄾᄾ ᄿ - (‎ ᄾᄾ ‎) 113E 113E HANGUL CHOSEONG CEONGCHIEUMSIOS, HANGUL CHOSEONG CEONGCHIEUMSIOS -← (‎ ᄿ ‎) 113F HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS - -# ᅀ ᇫ ㅿ - (‎ ᅀ ‎) 1140 HANGUL CHOSEONG PANSIOS -← (‎ ᇫ ‎) 11EB HANGUL JONGSEONG PANSIOS -← (‎ ㅿ ‎) 317F HANGUL LETTER PANSIOS - -# ᅀᄇ ᇫᆸ ퟳ - (‎ ᅀᄇ ‎) 1140 1107 HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP -← (‎ ᇫᆸ ‎) 11EB 11B8 HANGUL JONGSEONG PANSIOS, HANGUL JONGSEONG PIEUP -← (‎ ퟳ ‎) D7F3 HANGUL JONGSEONG PANSIOS-PIEUP # →ᇫᆸ→ - -# ᅀᄇᄋ ᇫᆸᆼ ퟴ - (‎ ᅀᄇᄋ ‎) 1140 1107 110B HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG -← (‎ ᇫᆸᆼ ‎) 11EB 11B8 11BC HANGUL JONGSEONG PANSIOS, HANGUL JONGSEONG PIEUP, HANGUL JONGSEONG IEUNG -← (‎ ퟴ ‎) D7F4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP # →ᇫᆸᆼ→ - -# ᅌ ᇰ ㆁ - (‎ ᅌ ‎) 114C HANGUL CHOSEONG YESIEUNG -← (‎ ᇰ ‎) 11F0 HANGUL JONGSEONG YESIEUNG -← (‎ ㆁ ‎) 3181 HANGUL LETTER YESIEUNG - -# ᅌᄆ ᇰᆷ ퟵ - (‎ ᅌᄆ ‎) 114C 1106 HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG MIEUM -← (‎ ᇰᆷ ‎) 11F0 11B7 HANGUL JONGSEONG YESIEUNG, HANGUL JONGSEONG MIEUM -← (‎ ퟵ ‎) D7F5 HANGUL JONGSEONG YESIEUNG-MIEUM # →ᇰᆷ→ - -# ᅌᄒ ᇰᇂ ퟶ - (‎ ᅌᄒ ‎) 114C 1112 HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG HIEUH -← (‎ ᇰᇂ ‎) 11F0 11C2 HANGUL JONGSEONG YESIEUNG, HANGUL JONGSEONG HIEUH -← (‎ ퟶ ‎) D7F6 HANGUL JONGSEONG YESIEUNG-HIEUH # →ᇰᇂ→ - -# ᅎᅎ ᅏ - (‎ ᅎᅎ ‎) 114E 114E HANGUL CHOSEONG CHITUEUMCIEUC, HANGUL CHOSEONG CHITUEUMCIEUC -← (‎ ᅏ ‎) 114F HANGUL CHOSEONG CHITUEUMSSANGCIEUC - -# ᅐᅐ ᅑ - (‎ ᅐᅐ ‎) 1150 1150 HANGUL CHOSEONG CEONGCHIEUMCIEUC, HANGUL CHOSEONG CEONGCHIEUMCIEUC -← (‎ ᅑ ‎) 1151 HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC - -# ᅙ ᇹ ㆆ - (‎ ᅙ ‎) 1159 HANGUL CHOSEONG YEORINHIEUH -← (‎ ᇹ ‎) 11F9 HANGUL JONGSEONG YEORINHIEUH -← (‎ ㆆ ‎) 3186 HANGUL LETTER YEORINHIEUH - -# ᅙᅙ ꥼ - (‎ ᅙᅙ ‎) 1159 1159 HANGUL CHOSEONG YEORINHIEUH, HANGUL CHOSEONG YEORINHIEUH -← (‎ ꥼ ‎) A97C HANGUL CHOSEONG SSANGYEORINHIEUH - -# ᅠ ㅤ - (‎ ᅠ ‎) 1160 HANGUL JUNGSEONG FILLER -← (‎ ㅤ ‎) 3164 HANGUL FILLER - -# ᅡ ㅏ - (‎ ᅡ ‎) 1161 HANGUL JUNGSEONG A -← (‎ ㅏ ‎) 314F HANGUL LETTER A - -# ᅡᅩ ᅶ - (‎ ᅡᅩ ‎) 1161 1169 HANGUL JUNGSEONG A, HANGUL JUNGSEONG O -← (‎ ᅶ ‎) 1176 HANGUL JUNGSEONG A-O - -# ᅡᅮ ᅷ - (‎ ᅡᅮ ‎) 1161 116E HANGUL JUNGSEONG A, HANGUL JUNGSEONG U -← (‎ ᅷ ‎) 1177 HANGUL JUNGSEONG A-U - -# ᅡー ᅡᅳ ᆣ - (‎ ᅡᅳ ‎) 1161 1173 HANGUL JUNGSEONG A, HANGUL JUNGSEONG EU -← (‎ ᅡー ‎) 1161 30FC HANGUL JUNGSEONG A, KATAKANA-HIRAGANA PROLONGED SOUND MARK -← (‎ ᆣ ‎) 11A3 HANGUL JUNGSEONG A-EU - -# ᅡ丨 ᅡᅵ ᅢ ㅐ - (‎ ᅡᅵ ‎) 1161 1175 HANGUL JUNGSEONG A, HANGUL JUNGSEONG I -← (‎ ᅡ丨 ‎) 1161 4E28 HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅢ ‎) 1162 HANGUL JUNGSEONG AE -← (‎ ㅐ ‎) 3150 HANGUL LETTER AE # →ᅢ→ - -# ᅣ ㅑ - (‎ ᅣ ‎) 1163 HANGUL JUNGSEONG YA -← (‎ ㅑ ‎) 3151 HANGUL LETTER YA - -# ᅣᅩ ᅸ - (‎ ᅣᅩ ‎) 1163 1169 HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O -← (‎ ᅸ ‎) 1178 HANGUL JUNGSEONG YA-O - -# ᅣᅭ ᅹ - (‎ ᅣᅭ ‎) 1163 116D HANGUL JUNGSEONG YA, HANGUL JUNGSEONG YO -← (‎ ᅹ ‎) 1179 HANGUL JUNGSEONG YA-YO - -# ᅣᅮ ᆤ - (‎ ᅣᅮ ‎) 1163 116E HANGUL JUNGSEONG YA, HANGUL JUNGSEONG U -← (‎ ᆤ ‎) 11A4 HANGUL JUNGSEONG YA-U - -# ᅣ丨 ᅣᅵ ᅤ ㅒ - (‎ ᅣᅵ ‎) 1163 1175 HANGUL JUNGSEONG YA, HANGUL JUNGSEONG I -← (‎ ᅣ丨 ‎) 1163 4E28 HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅤ ‎) 1164 HANGUL JUNGSEONG YAE -← (‎ ㅒ ‎) 3152 HANGUL LETTER YAE # →ᅤ→ - -# ᅥ ㅓ - (‎ ᅥ ‎) 1165 HANGUL JUNGSEONG EO -← (‎ ㅓ ‎) 3153 HANGUL LETTER EO - -# ᅥᅩ ᅺ - (‎ ᅥᅩ ‎) 1165 1169 HANGUL JUNGSEONG EO, HANGUL JUNGSEONG O -← (‎ ᅺ ‎) 117A HANGUL JUNGSEONG EO-O - -# ᅥᅮ ᅻ - (‎ ᅥᅮ ‎) 1165 116E HANGUL JUNGSEONG EO, HANGUL JUNGSEONG U -← (‎ ᅻ ‎) 117B HANGUL JUNGSEONG EO-U - -# ᅥー ᅥᅳ ᅼ - (‎ ᅥᅳ ‎) 1165 1173 HANGUL JUNGSEONG EO, HANGUL JUNGSEONG EU -← (‎ ᅥー ‎) 1165 30FC HANGUL JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND MARK -← (‎ ᅼ ‎) 117C HANGUL JUNGSEONG EO-EU - -# ᅥ丨 ᅥᅵ ᅦ ㅔ - (‎ ᅥᅵ ‎) 1165 1175 HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ᅥ丨 ‎) 1165 4E28 HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅦ ‎) 1166 HANGUL JUNGSEONG E -← (‎ ㅔ ‎) 3154 HANGUL LETTER E # →ᅦ→ - -# ᅧ ㅕ - (‎ ᅧ ‎) 1167 HANGUL JUNGSEONG YEO -← (‎ ㅕ ‎) 3155 HANGUL LETTER YEO - -# ᅧᅣ ᆥ - (‎ ᅧᅣ ‎) 1167 1163 HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG YA -← (‎ ᆥ ‎) 11A5 HANGUL JUNGSEONG YEO-YA - -# ᅧᅩ ᅽ - (‎ ᅧᅩ ‎) 1167 1169 HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG O -← (‎ ᅽ ‎) 117D HANGUL JUNGSEONG YEO-O - -# ᅧᅮ ᅾ - (‎ ᅧᅮ ‎) 1167 116E HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG U -← (‎ ᅾ ‎) 117E HANGUL JUNGSEONG YEO-U - -# ᅧ丨 ᅧᅵ ᅨ ㅖ - (‎ ᅧᅵ ‎) 1167 1175 HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG I -← (‎ ᅧ丨 ‎) 1167 4E28 HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅨ ‎) 1168 HANGUL JUNGSEONG YE -← (‎ ㅖ ‎) 3156 HANGUL LETTER YE # →ᅨ→ - -# ᅩ ㅗ - (‎ ᅩ ‎) 1169 HANGUL JUNGSEONG O -← (‎ ㅗ ‎) 3157 HANGUL LETTER O - -# ᅩᅡ ᅪ ㅘ - (‎ ᅩᅡ ‎) 1169 1161 HANGUL JUNGSEONG O, HANGUL JUNGSEONG A -← (‎ ᅪ ‎) 116A HANGUL JUNGSEONG WA -← (‎ ㅘ ‎) 3158 HANGUL LETTER WA # →ᅪ→ - -# ᅩᅡ丨 ᅩᅡᅵ ᅫ ㅙ - (‎ ᅩᅡᅵ ‎) 1169 1161 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, HANGUL JUNGSEONG I -← (‎ ᅩᅡ丨 ‎) 1169 1161 4E28 HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅫ ‎) 116B HANGUL JUNGSEONG WAE -← (‎ ㅙ ‎) 3159 HANGUL LETTER WAE # →ᅫ→ - -# ᅩᅣ ᆦ - (‎ ᅩᅣ ‎) 1169 1163 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA -← (‎ ᆦ ‎) 11A6 HANGUL JUNGSEONG O-YA - -# ᅩᅣ丨 ᅩᅣᅵ ᆧ - (‎ ᅩᅣᅵ ‎) 1169 1163 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG I -← (‎ ᅩᅣ丨 ‎) 1169 1163 4E28 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆧ ‎) 11A7 HANGUL JUNGSEONG O-YAE - -# ᅩᅥ ᅿ - (‎ ᅩᅥ ‎) 1169 1165 HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO -← (‎ ᅿ ‎) 117F HANGUL JUNGSEONG O-EO - -# ᅩᅥ丨 ᅩᅥᅵ ᆀ - (‎ ᅩᅥᅵ ‎) 1169 1165 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ᅩᅥ丨 ‎) 1169 1165 4E28 HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆀ ‎) 1180 HANGUL JUNGSEONG O-E - -# ᅩᅧ ힰ - (‎ ᅩᅧ ‎) 1169 1167 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO -← (‎ ힰ ‎) D7B0 HANGUL JUNGSEONG O-YEO - -# ᅩᅧ丨 ᅩᅧᅵ ᆁ - (‎ ᅩᅧᅵ ‎) 1169 1167 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG I -← (‎ ᅩᅧ丨 ‎) 1169 1167 4E28 HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆁ ‎) 1181 HANGUL JUNGSEONG O-YE - -# ᅩᅩ ᆂ - (‎ ᅩᅩ ‎) 1169 1169 HANGUL JUNGSEONG O, HANGUL JUNGSEONG O -← (‎ ᆂ ‎) 1182 HANGUL JUNGSEONG O-O - -# ᅩᅩ丨 ᅩᅩᅵ ힱ - (‎ ᅩᅩᅵ ‎) 1169 1169 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG O, HANGUL JUNGSEONG I -← (‎ ᅩᅩ丨 ‎) 1169 1169 4E28 HANGUL JUNGSEONG O, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힱ ‎) D7B1 HANGUL JUNGSEONG O-O-I - -# ᅩᅮ ᆃ - (‎ ᅩᅮ ‎) 1169 116E HANGUL JUNGSEONG O, HANGUL JUNGSEONG U -← (‎ ᆃ ‎) 1183 HANGUL JUNGSEONG O-U - -# ᅩ丨 ᅩᅵ ᅬ ㅚ - (‎ ᅩᅵ ‎) 1169 1175 HANGUL JUNGSEONG O, HANGUL JUNGSEONG I -← (‎ ᅩ丨 ‎) 1169 4E28 HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅬ ‎) 116C HANGUL JUNGSEONG OE -← (‎ ㅚ ‎) 315A HANGUL LETTER OE # →ᅬ→ - -# ᅭ ㅛ - (‎ ᅭ ‎) 116D HANGUL JUNGSEONG YO -← (‎ ㅛ ‎) 315B HANGUL LETTER YO - -# ᅭᅡ ힲ - (‎ ᅭᅡ ‎) 116D 1161 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A -← (‎ ힲ ‎) D7B2 HANGUL JUNGSEONG YO-A - -# ᅭᅡ丨 ᅭᅡᅵ ힳ - (‎ ᅭᅡᅵ ‎) 116D 1161 1175 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A, HANGUL JUNGSEONG I -← (‎ ᅭᅡ丨 ‎) 116D 1161 4E28 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힳ ‎) D7B3 HANGUL JUNGSEONG YO-AE - -# ᅭᅣ ᅭᅧ ᆄ ᆆ ㆇ - (‎ ᅭᅣ ‎) 116D 1163 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA -← (‎ ᅭᅧ ‎) 116D 1167 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YEO # →ᆆ→→ᆄ→ -← (‎ ᆄ ‎) 1184 HANGUL JUNGSEONG YO-YA -← (‎ ᆆ ‎) 1186 HANGUL JUNGSEONG YO-YEO # →ᆄ→ -← (‎ ㆇ ‎) 3187 HANGUL LETTER YO-YA # →ᆄ→ - -# ᅭᅣ丨 ᅭᅣᅵ ᆅ ㆈ - (‎ ᅭᅣᅵ ‎) 116D 1163 1175 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG I -← (‎ ᅭᅣ丨 ‎) 116D 1163 4E28 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆅ ‎) 1185 HANGUL JUNGSEONG YO-YAE -← (‎ ㆈ ‎) 3188 HANGUL LETTER YO-YAE # →ᆅ→ - -# ᅭᅥ ힴ - (‎ ᅭᅥ ‎) 116D 1165 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG EO -← (‎ ힴ ‎) D7B4 HANGUL JUNGSEONG YO-EO - -# ᅭᅩ ᆇ - (‎ ᅭᅩ ‎) 116D 1169 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG O -← (‎ ᆇ ‎) 1187 HANGUL JUNGSEONG YO-O - -# ᅭ丨 ᅭᅵ ᆈ ㆉ - (‎ ᅭᅵ ‎) 116D 1175 HANGUL JUNGSEONG YO, HANGUL JUNGSEONG I -← (‎ ᅭ丨 ‎) 116D 4E28 HANGUL JUNGSEONG YO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆈ ‎) 1188 HANGUL JUNGSEONG YO-I -← (‎ ㆉ ‎) 3189 HANGUL LETTER YO-I # →ᆈ→ - -# ᅮ ㅜ - (‎ ᅮ ‎) 116E HANGUL JUNGSEONG U -← (‎ ㅜ ‎) 315C HANGUL LETTER U - -# ᅮᅡ ᆉ - (‎ ᅮᅡ ‎) 116E 1161 HANGUL JUNGSEONG U, HANGUL JUNGSEONG A -← (‎ ᆉ ‎) 1189 HANGUL JUNGSEONG U-A - -# ᅮᅡ丨 ᅮᅡᅵ ᆊ - (‎ ᅮᅡᅵ ‎) 116E 1161 1175 HANGUL JUNGSEONG U, HANGUL JUNGSEONG A, HANGUL JUNGSEONG I -← (‎ ᅮᅡ丨 ‎) 116E 1161 4E28 HANGUL JUNGSEONG U, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆊ ‎) 118A HANGUL JUNGSEONG U-AE - -# ᅮᅥ ᅯ ㅝ - (‎ ᅮᅥ ‎) 116E 1165 HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO -← (‎ ᅯ ‎) 116F HANGUL JUNGSEONG WEO -← (‎ ㅝ ‎) 315D HANGUL LETTER WEO # →ᅯ→ - -# ᅮᅥー ᅮᅥᅳ ᆋ - (‎ ᅮᅥᅳ ‎) 116E 1165 1173 HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG EU -← (‎ ᅮᅥー ‎) 116E 1165 30FC HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND MARK -← (‎ ᆋ ‎) 118B HANGUL JUNGSEONG U-EO-EU - -# ᅮᅥ丨 ᅮᅥᅵ ᅰ ㅞ - (‎ ᅮᅥᅵ ‎) 116E 1165 1175 HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ᅮᅥ丨 ‎) 116E 1165 4E28 HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅰ ‎) 1170 HANGUL JUNGSEONG WE -← (‎ ㅞ ‎) 315E HANGUL LETTER WE # →ᅰ→ - -# ᅮᅧ ힵ - (‎ ᅮᅧ ‎) 116E 1167 HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO -← (‎ ힵ ‎) D7B5 HANGUL JUNGSEONG U-YEO - -# ᅮᅧ丨 ᅮᅧᅵ ᆌ - (‎ ᅮᅧᅵ ‎) 116E 1167 1175 HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG I -← (‎ ᅮᅧ丨 ‎) 116E 1167 4E28 HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆌ ‎) 118C HANGUL JUNGSEONG U-YE - -# ᅮᅮ ᆍ - (‎ ᅮᅮ ‎) 116E 116E HANGUL JUNGSEONG U, HANGUL JUNGSEONG U -← (‎ ᆍ ‎) 118D HANGUL JUNGSEONG U-U - -# ᅮ丨 ᅮᅵ ᅱ ㅟ - (‎ ᅮᅵ ‎) 116E 1175 HANGUL JUNGSEONG U, HANGUL JUNGSEONG I -← (‎ ᅮ丨 ‎) 116E 4E28 HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅱ ‎) 1171 HANGUL JUNGSEONG WI -← (‎ ㅟ ‎) 315F HANGUL LETTER WI # →ᅱ→ - -# ᅮ丨丨 ᅮᅵᅵ ힶ - (‎ ᅮᅵᅵ ‎) 116E 1175 1175 HANGUL JUNGSEONG U, HANGUL JUNGSEONG I, HANGUL JUNGSEONG I -← (‎ ᅮ丨丨 ‎) 116E 4E28 4E28 HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힶ ‎) D7B6 HANGUL JUNGSEONG U-I-I - -# ᅲ ㅠ - (‎ ᅲ ‎) 1172 HANGUL JUNGSEONG YU -← (‎ ㅠ ‎) 3160 HANGUL LETTER YU - -# ᅲᅡ ᆎ - (‎ ᅲᅡ ‎) 1172 1161 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A -← (‎ ᆎ ‎) 118E HANGUL JUNGSEONG YU-A - -# ᅲᅡ丨 ᅲᅡᅵ ힷ - (‎ ᅲᅡᅵ ‎) 1172 1161 1175 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A, HANGUL JUNGSEONG I -← (‎ ᅲᅡ丨 ‎) 1172 1161 4E28 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힷ ‎) D7B7 HANGUL JUNGSEONG YU-AE - -# ᅲᅥ ᆏ - (‎ ᅲᅥ ‎) 1172 1165 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO -← (‎ ᆏ ‎) 118F HANGUL JUNGSEONG YU-EO - -# ᅲᅥ丨 ᅲᅥᅵ ᆐ - (‎ ᅲᅥᅵ ‎) 1172 1165 1175 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ᅲᅥ丨 ‎) 1172 1165 4E28 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆐ ‎) 1190 HANGUL JUNGSEONG YU-E - -# ᅲᅧ ᆑ ㆊ - (‎ ᅲᅧ ‎) 1172 1167 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO -← (‎ ᆑ ‎) 1191 HANGUL JUNGSEONG YU-YEO -← (‎ ㆊ ‎) 318A HANGUL LETTER YU-YEO # →ᆑ→ - -# ᅲᅧ丨 ᅲᅧᅵ ᆒ ㆋ - (‎ ᅲᅧᅵ ‎) 1172 1167 1175 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG I -← (‎ ᅲᅧ丨 ‎) 1172 1167 4E28 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆒ ‎) 1192 HANGUL JUNGSEONG YU-YE -← (‎ ㆋ ‎) 318B HANGUL LETTER YU-YE # →ᆒ→ - -# ᅲᅩ ힸ - (‎ ᅲᅩ ‎) 1172 1169 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG O -← (‎ ힸ ‎) D7B8 HANGUL JUNGSEONG YU-O - -# ᅲᅮ ᆓ - (‎ ᅲᅮ ‎) 1172 116E HANGUL JUNGSEONG YU, HANGUL JUNGSEONG U -← (‎ ᆓ ‎) 1193 HANGUL JUNGSEONG YU-U - -# ᅲ丨 ᅲᅵ ᆔ ㆌ - (‎ ᅲᅵ ‎) 1172 1175 HANGUL JUNGSEONG YU, HANGUL JUNGSEONG I -← (‎ ᅲ丨 ‎) 1172 4E28 HANGUL JUNGSEONG YU, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆔ ‎) 1194 HANGUL JUNGSEONG YU-I -← (‎ ㆌ ‎) 318C HANGUL LETTER YU-I # →ᆔ→ - -# ー 一 ᅳ — ― ─ ━ ㇐ ꟷ ㅡ ⼀ - - (‎ ᅳ ‎) 1173 HANGUL JUNGSEONG EU -← (‎ ー ‎) 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK # →一→→—→→ㅡ→ -← (‎ 一 ‎) 4E00 CJK UNIFIED IDEOGRAPH-4E00 # →—→→ㅡ→ -← (‎ — ‎) 2014 EM DASH # →ㅡ→ -← (‎ ― ‎) 2015 HORIZONTAL BAR # →—→→ㅡ→ -← (‎ ─ ‎) 2500 BOX DRAWINGS LIGHT HORIZONTAL # →━→→—→→ㅡ→ -← (‎ ━ ‎) 2501 BOX DRAWINGS HEAVY HORIZONTAL # →—→→ㅡ→ -← (‎ ㇐ ‎) 31D0 CJK STROKE H # →一→→—→→ㅡ→ -← (‎ ꟷ ‎) A7F7 LATIN EPIGRAPHIC LETTER SIDEWAYS I # →—→→ㅡ→ -← (‎ ㅡ ‎) 3161 HANGUL LETTER EU -← (‎ ⼀ ‎) 2F00 KANGXI RADICAL ONE # →一→→—→→ㅡ→ -← (‎ - ‎) FF0D FULLWIDTH HYPHEN-MINUS # →ー→→一→→—→→ㅡ→ - -# ーᅡ ᅳᅡ ힹ - (‎ ᅳᅡ ‎) 1173 1161 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG A -← (‎ ーᅡ ‎) 30FC 1161 KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG A -← (‎ ힹ ‎) D7B9 HANGUL JUNGSEONG EU-A - -# ーᅥ ᅳᅥ ힺ - (‎ ᅳᅥ ‎) 1173 1165 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG EO -← (‎ ーᅥ ‎) 30FC 1165 KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO -← (‎ ힺ ‎) D7BA HANGUL JUNGSEONG EU-EO - -# ーᅥ丨 ᅳᅥᅵ ힻ - (‎ ᅳᅥᅵ ‎) 1173 1165 1175 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ーᅥ丨 ‎) 30FC 1165 4E28 KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힻ ‎) D7BB HANGUL JUNGSEONG EU-E - -# ーᅩ ᅳᅩ ힼ - (‎ ᅳᅩ ‎) 1173 1169 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG O -← (‎ ーᅩ ‎) 30FC 1169 KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG O -← (‎ ힼ ‎) D7BC HANGUL JUNGSEONG EU-O - -# ーᅮ ᅳᅮ ᆕ - (‎ ᅳᅮ ‎) 1173 116E HANGUL JUNGSEONG EU, HANGUL JUNGSEONG U -← (‎ ーᅮ ‎) 30FC 116E KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG U -← (‎ ᆕ ‎) 1195 HANGUL JUNGSEONG EU-U - -# ーー ᅳᅳ ᆖ - (‎ ᅳᅳ ‎) 1173 1173 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG EU -← (‎ ーー ‎) 30FC 30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK -← (‎ ᆖ ‎) 1196 HANGUL JUNGSEONG EU-EU - -# ー丨 ᅳᅵ ᅴ ㅢ - (‎ ᅳᅵ ‎) 1173 1175 HANGUL JUNGSEONG EU, HANGUL JUNGSEONG I -← (‎ ー丨 ‎) 30FC 4E28 KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᅴ ‎) 1174 HANGUL JUNGSEONG YI -← (‎ ㅢ ‎) 3162 HANGUL LETTER YI # →ᅴ→ - -# ー丨ᅮ ᅳᅵᅮ ᆗ - (‎ ᅳᅵᅮ ‎) 1173 1175 116E HANGUL JUNGSEONG EU, HANGUL JUNGSEONG I, HANGUL JUNGSEONG U -← (‎ ー丨ᅮ ‎) 30FC 4E28 116E KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG U -← (‎ ᆗ ‎) 1197 HANGUL JUNGSEONG YI-U - -# 丨 ᅵ ⎜ ⎟ ⎢ ⎥ ⎪ ⎮ ㇑ ㅣ ⼁ - (‎ ᅵ ‎) 1175 HANGUL JUNGSEONG I -← (‎ 丨 ‎) 4E28 CJK UNIFIED IDEOGRAPH-4E28 # →ㅣ→ -← (‎ ⎜ ‎) 239C LEFT PARENTHESIS EXTENSION # →⎥→→⎮→→丨→→ㅣ→ -← (‎ ⎟ ‎) 239F RIGHT PARENTHESIS EXTENSION # →⎥→→⎮→→丨→→ㅣ→ -← (‎ ⎢ ‎) 23A2 LEFT SQUARE BRACKET EXTENSION # →⎥→→⎮→→丨→→ㅣ→ -← (‎ ⎥ ‎) 23A5 RIGHT SQUARE BRACKET EXTENSION # →⎮→→丨→→ㅣ→ -← (‎ ⎪ ‎) 23AA CURLY BRACKET EXTENSION # →⎥→→⎮→→丨→→ㅣ→ -← (‎ ⎮ ‎) 23AE INTEGRAL EXTENSION # →丨→→ㅣ→ -← (‎ ㇑ ‎) 31D1 CJK STROKE S # →丨→→ㅣ→ -← (‎ ㅣ ‎) 3163 HANGUL LETTER I -← (‎ ⼁ ‎) 2F01 KANGXI RADICAL LINE # →丨→→ㅣ→ - -# 丨ᅡ ᅵᅡ ᆘ - (‎ ᅵᅡ ‎) 1175 1161 HANGUL JUNGSEONG I, HANGUL JUNGSEONG A -← (‎ 丨ᅡ ‎) 4E28 1161 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG A -← (‎ ᆘ ‎) 1198 HANGUL JUNGSEONG I-A - -# 丨ᅣ ᅵᅣ ᆙ - (‎ ᅵᅣ ‎) 1175 1163 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YA -← (‎ 丨ᅣ ‎) 4E28 1163 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA -← (‎ ᆙ ‎) 1199 HANGUL JUNGSEONG I-YA - -# 丨ᅣᅩ ᅵᅣᅩ ힽ - (‎ ᅵᅣᅩ ‎) 1175 1163 1169 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O -← (‎ 丨ᅣᅩ ‎) 4E28 1163 1169 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O -← (‎ ힽ ‎) D7BD HANGUL JUNGSEONG I-YA-O - -# 丨ᅣ丨 ᅵᅣᅵ ힾ - (‎ ᅵᅣᅵ ‎) 1175 1163 1175 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG I -← (‎ 丨ᅣ丨 ‎) 4E28 1163 4E28 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ힾ ‎) D7BE HANGUL JUNGSEONG I-YAE - -# 丨ᅧ ᅵᅧ ힿ - (‎ ᅵᅧ ‎) 1175 1167 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YEO -← (‎ 丨ᅧ ‎) 4E28 1167 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO -← (‎ ힿ ‎) D7BF HANGUL JUNGSEONG I-YEO - -# 丨ᅧ丨 ᅵᅧᅵ ퟀ - (‎ ᅵᅧᅵ ‎) 1175 1167 1175 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG I -← (‎ 丨ᅧ丨 ‎) 4E28 1167 4E28 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ퟀ ‎) D7C0 HANGUL JUNGSEONG I-YE - -# 丨ᅩ ᅵᅩ ᆚ - (‎ ᅵᅩ ‎) 1175 1169 HANGUL JUNGSEONG I, HANGUL JUNGSEONG O -← (‎ 丨ᅩ ‎) 4E28 1169 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG O -← (‎ ᆚ ‎) 119A HANGUL JUNGSEONG I-O - -# 丨ᅩ丨 ᅵᅩᅵ ퟁ - (‎ ᅵᅩᅵ ‎) 1175 1169 1175 HANGUL JUNGSEONG I, HANGUL JUNGSEONG O, HANGUL JUNGSEONG I -← (‎ 丨ᅩ丨 ‎) 4E28 1169 4E28 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ퟁ ‎) D7C1 HANGUL JUNGSEONG I-O-I - -# 丨ᅭ ᅵᅭ ퟂ - (‎ ᅵᅭ ‎) 1175 116D HANGUL JUNGSEONG I, HANGUL JUNGSEONG YO -← (‎ 丨ᅭ ‎) 4E28 116D CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YO -← (‎ ퟂ ‎) D7C2 HANGUL JUNGSEONG I-YO - -# 丨ᅮ ᅵᅮ ᆛ - (‎ ᅵᅮ ‎) 1175 116E HANGUL JUNGSEONG I, HANGUL JUNGSEONG U -← (‎ 丨ᅮ ‎) 4E28 116E CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG U -← (‎ ᆛ ‎) 119B HANGUL JUNGSEONG I-U - -# 丨ᅲ ᅵᅲ ퟃ - (‎ ᅵᅲ ‎) 1175 1172 HANGUL JUNGSEONG I, HANGUL JUNGSEONG YU -← (‎ 丨ᅲ ‎) 4E28 1172 CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YU -← (‎ ퟃ ‎) D7C3 HANGUL JUNGSEONG I-YU - -# 丨ー ᅵᅳ ᆜ - (‎ ᅵᅳ ‎) 1175 1173 HANGUL JUNGSEONG I, HANGUL JUNGSEONG EU -← (‎ 丨ー ‎) 4E28 30FC CJK UNIFIED IDEOGRAPH-4E28, KATAKANA-HIRAGANA PROLONGED SOUND MARK -← (‎ ᆜ ‎) 119C HANGUL JUNGSEONG I-EU - -# 丨丨 ᅵᅵ ퟄ - (‎ ᅵᅵ ‎) 1175 1175 HANGUL JUNGSEONG I, HANGUL JUNGSEONG I -← (‎ 丨丨 ‎) 4E28 4E28 CJK UNIFIED IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ퟄ ‎) D7C4 HANGUL JUNGSEONG I-I - -# 丨ᆞ ᅵᆞ ᆝ - (‎ ᅵᆞ ‎) 1175 119E HANGUL JUNGSEONG I, HANGUL JUNGSEONG ARAEA -← (‎ 丨ᆞ ‎) 4E28 119E CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG ARAEA -← (‎ ᆝ ‎) 119D HANGUL JUNGSEONG I-ARAEA - -# ᆞ ㆍ - (‎ ᆞ ‎) 119E HANGUL JUNGSEONG ARAEA -← (‎ ㆍ ‎) 318D HANGUL LETTER ARAEA - -# ᆞᅡ ퟅ - (‎ ᆞᅡ ‎) 119E 1161 HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG A -← (‎ ퟅ ‎) D7C5 HANGUL JUNGSEONG ARAEA-A - -# ᆞᅥ ᆟ - (‎ ᆞᅥ ‎) 119E 1165 HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO -← (‎ ᆟ ‎) 119F HANGUL JUNGSEONG ARAEA-EO - -# ᆞᅥ丨 ᆞᅥᅵ ퟆ - (‎ ᆞᅥᅵ ‎) 119E 1165 1175 HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO, HANGUL JUNGSEONG I -← (‎ ᆞᅥ丨 ‎) 119E 1165 4E28 HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ퟆ ‎) D7C6 HANGUL JUNGSEONG ARAEA-E - -# ᆞᅮ ᆠ - (‎ ᆞᅮ ‎) 119E 116E HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG U -← (‎ ᆠ ‎) 11A0 HANGUL JUNGSEONG ARAEA-U - -# ᆞ丨 ᆞᅵ ᆡ ㆎ - (‎ ᆞᅵ ‎) 119E 1175 HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG I -← (‎ ᆞ丨 ‎) 119E 4E28 HANGUL JUNGSEONG ARAEA, CJK UNIFIED IDEOGRAPH-4E28 -← (‎ ᆡ ‎) 11A1 HANGUL JUNGSEONG ARAEA-I -← (‎ ㆎ ‎) 318E HANGUL LETTER ARAEAE # →ᆡ→ - -# ᆞᆞ ᆢ - (‎ ᆞᆞ ‎) 119E 119E HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG ARAEA -← (‎ ᆢ ‎) 11A2 HANGUL JUNGSEONG SSANGARAEA - -# Ꮿ ῶ - (‎ Ꮿ ‎) 13EF CHEROKEE LETTER YA -← (‎ ῶ ‎) 1FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI - -# ᐁ· ᐁᐧ ᐍ - (‎ ᐁ· ‎) 1401 00B7 CANADIAN SYLLABICS E, MIDDLE DOT -← (‎ ᐁᐧ ‎) 1401 1427 CANADIAN SYLLABICS E, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐍ ‎) 140D CANADIAN SYLLABICS WEST-CREE WE # →ᐁᐧ→ - -# ᐁᐠ ᐫ - (‎ ᐁᐠ ‎) 1401 1420 CANADIAN SYLLABICS E, CANADIAN SYLLABICS FINAL GRAVE -← (‎ ᐫ ‎) 142B CANADIAN SYLLABICS EN - -# ᐄ· ᐄᐧ ᐑ - (‎ ᐄ· ‎) 1404 00B7 CANADIAN SYLLABICS II, MIDDLE DOT -← (‎ ᐄᐧ ‎) 1404 1427 CANADIAN SYLLABICS II, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐑ ‎) 1411 CANADIAN SYLLABICS WEST-CREE WII # →ᐄᐧ→ - -# ᐅ· ᐅᐧ ᐓ - (‎ ᐅ· ‎) 1405 00B7 CANADIAN SYLLABICS O, MIDDLE DOT -← (‎ ᐅᐧ ‎) 1405 1427 CANADIAN SYLLABICS O, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐓ ‎) 1413 CANADIAN SYLLABICS WEST-CREE WO # →ᐅᐧ→ - -# ᐅᐠ ᐭ - (‎ ᐅᐠ ‎) 1405 1420 CANADIAN SYLLABICS O, CANADIAN SYLLABICS FINAL GRAVE -← (‎ ᐭ ‎) 142D CANADIAN SYLLABICS ON - -# ᐆ· ᐆᐧ ᐕ - (‎ ᐆ· ‎) 1406 00B7 CANADIAN SYLLABICS OO, MIDDLE DOT -← (‎ ᐆᐧ ‎) 1406 1427 CANADIAN SYLLABICS OO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐕ ‎) 1415 CANADIAN SYLLABICS WEST-CREE WOO # →ᐆᐧ→ - -# ᐊ· ᐊᐧ ᐘ - (‎ ᐊ· ‎) 140A 00B7 CANADIAN SYLLABICS A, MIDDLE DOT -← (‎ ᐊᐧ ‎) 140A 1427 CANADIAN SYLLABICS A, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐘ ‎) 1418 CANADIAN SYLLABICS WEST-CREE WA # →ᐊᐧ→ - -# ᐊᐠ ᐮ - (‎ ᐊᐠ ‎) 140A 1420 CANADIAN SYLLABICS A, CANADIAN SYLLABICS FINAL GRAVE -← (‎ ᐮ ‎) 142E CANADIAN SYLLABICS AN - -# ᐋ· ᐋᐧ ᐚ - (‎ ᐋ· ‎) 140B 00B7 CANADIAN SYLLABICS AA, MIDDLE DOT -← (‎ ᐋᐧ ‎) 140B 1427 CANADIAN SYLLABICS AA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐚ ‎) 141A CANADIAN SYLLABICS WEST-CREE WAA # →ᐋᐧ→ - -# ᐞᣟ ᣝ - (‎ ᐞᣟ ‎) 141E 18DF CANADIAN SYLLABICS GLOTTAL STOP, CANADIAN SYLLABICS FINAL RAISED DOT -← (‎ ᣝ ‎) 18DD CANADIAN SYLLABICS WESTERN W - -# ᐡ ᓑ - (‎ ᐡ ‎) 1421 CANADIAN SYLLABICS FINAL BOTTOM HALF RING -← (‎ ᓑ ‎) 14D1 CANADIAN SYLLABICS CARRIER NG - -# ᐩ ᕀ - (‎ ᐩ ‎) 1429 CANADIAN SYLLABICS FINAL PLUS -← (‎ ᕀ ‎) 1540 CANADIAN SYLLABICS WEST-CREE Y - -# ᐲ· ᐲᐧ ᐿ - (‎ ᐲ· ‎) 1432 00B7 CANADIAN SYLLABICS PII, MIDDLE DOT -← (‎ ᐲᐧ ‎) 1432 1427 CANADIAN SYLLABICS PII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᐿ ‎) 143F CANADIAN SYLLABICS WEST-CREE PWII # →ᐲᐧ→ - -# ᐴ· ᐴᐧ ᑃ - (‎ ᐴ· ‎) 1434 00B7 CANADIAN SYLLABICS POO, MIDDLE DOT -← (‎ ᐴᐧ ‎) 1434 1427 CANADIAN SYLLABICS POO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑃ ‎) 1443 CANADIAN SYLLABICS WEST-CREE PWOO # →ᐴᐧ→ - -# ᐵ ⍩ - (‎ ᐵ ‎) 1435 CANADIAN SYLLABICS Y-CREE POO -← (‎ ⍩ ‎) 2369 APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS - -# ᐹ· ᐹᐧ ᑇ - (‎ ᐹ· ‎) 1439 00B7 CANADIAN SYLLABICS PAA, MIDDLE DOT -← (‎ ᐹᐧ ‎) 1439 1427 CANADIAN SYLLABICS PAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑇ ‎) 1447 CANADIAN SYLLABICS WEST-CREE PWAA # →ᐹᐧ→ - -# ᑏ· ᑏᐧ ᑜ - (‎ ᑏ· ‎) 144F 00B7 CANADIAN SYLLABICS TII, MIDDLE DOT -← (‎ ᑏᐧ ‎) 144F 1427 CANADIAN SYLLABICS TII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑜ ‎) 145C CANADIAN SYLLABICS WEST-CREE TWII # →ᑏᐧ→ - -# ᑐ ⊃ ⸧ - (‎ ᑐ ‎) 1450 CANADIAN SYLLABICS TO -← (‎ ⊃ ‎) 2283 SUPERSET OF -← (‎ ⸧ ‎) 2E27 RIGHT SIDEWAYS U BRACKET # →⊃→ - -# ᑐ' ᑐᑊ ᑩ - (‎ ᑐ' ‎) 1450 0027 CANADIAN SYLLABICS TO, APOSTROPHE -← (‎ ᑐᑊ ‎) 1450 144A CANADIAN SYLLABICS TO, CANADIAN SYLLABICS WEST-CREE P -← (‎ ᑩ ‎) 1469 CANADIAN SYLLABICS TTO # →ᑐᑊ→ - -# ᑐ/ ⊃/ ⟉ - (‎ ᑐ/ ‎) 1450 002F CANADIAN SYLLABICS TO, SOLIDUS -← (‎ ⊃/ ‎) 2283 002F SUPERSET OF, SOLIDUS -← (‎ ⟉ ‎) 27C9 SUPERSET PRECEDING SOLIDUS # →⊃/→ - -# ᑐ· ᑐᐧ ᑞ - (‎ ᑐ· ‎) 1450 00B7 CANADIAN SYLLABICS TO, MIDDLE DOT -← (‎ ᑐᐧ ‎) 1450 1427 CANADIAN SYLLABICS TO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑞ ‎) 145E CANADIAN SYLLABICS WEST-CREE TWO # →ᑐᐧ→ - -# ᑐᑕ ⊃⊂ ⫗ - (‎ ᑐᑕ ‎) 1450 1455 CANADIAN SYLLABICS TO, CANADIAN SYLLABICS TA -← (‎ ⊃⊂ ‎) 2283 2282 SUPERSET OF, SUBSET OF -← (‎ ⫗ ‎) 2AD7 SUPERSET BESIDE SUBSET # →⊃⊂→ - -# ᑑ· ᑑᐧ ᑠ - (‎ ᑑ· ‎) 1451 00B7 CANADIAN SYLLABICS TOO, MIDDLE DOT -← (‎ ᑑᐧ ‎) 1451 1427 CANADIAN SYLLABICS TOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑠ ‎) 1460 CANADIAN SYLLABICS WEST-CREE TWOO # →ᑑᐧ→ - -# ᑕ ⊂ ⸦ - (‎ ᑕ ‎) 1455 CANADIAN SYLLABICS TA -← (‎ ⊂ ‎) 2282 SUBSET OF -← (‎ ⸦ ‎) 2E26 LEFT SIDEWAYS U BRACKET # →⊂→ - -# ᑕ' ᑕᑊ ᑪ - (‎ ᑕ' ‎) 1455 0027 CANADIAN SYLLABICS TA, APOSTROPHE -← (‎ ᑕᑊ ‎) 1455 144A CANADIAN SYLLABICS TA, CANADIAN SYLLABICS WEST-CREE P -← (‎ ᑪ ‎) 146A CANADIAN SYLLABICS TTA # →ᑕᑊ→ - -# ᑕ· ᑕᐧ ᑢ - (‎ ᑕ· ‎) 1455 00B7 CANADIAN SYLLABICS TA, MIDDLE DOT -← (‎ ᑕᐧ ‎) 1455 1427 CANADIAN SYLLABICS TA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑢ ‎) 1462 CANADIAN SYLLABICS WEST-CREE TWA # →ᑕᐧ→ - -# ᑖ· ᑖᐧ ᑤ - (‎ ᑖ· ‎) 1456 00B7 CANADIAN SYLLABICS TAA, MIDDLE DOT -← (‎ ᑖᐧ ‎) 1456 1427 CANADIAN SYLLABICS TAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑤ ‎) 1464 CANADIAN SYLLABICS WEST-CREE TWAA # →ᑖᐧ→ - -# ᑫ' ᑫᑊ ᒅ - (‎ ᑫ' ‎) 146B 0027 CANADIAN SYLLABICS KE, APOSTROPHE -← (‎ ᑫᑊ ‎) 146B 144A CANADIAN SYLLABICS KE, CANADIAN SYLLABICS WEST-CREE P -← (‎ ᒅ ‎) 1485 CANADIAN SYLLABICS SOUTH-SLAVEY KEH # →ᑫᑊ→ - -# ᑫ· ᑫᐧ ᑵ - (‎ ᑫ· ‎) 146B 00B7 CANADIAN SYLLABICS KE, MIDDLE DOT -← (‎ ᑫᐧ ‎) 146B 1427 CANADIAN SYLLABICS KE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑵ ‎) 1475 CANADIAN SYLLABICS WEST-CREE KWE # →ᑫᐧ→ - -# ᑮ· ᑮᐧ ᑹ - (‎ ᑮ· ‎) 146E 00B7 CANADIAN SYLLABICS KII, MIDDLE DOT -← (‎ ᑮᐧ ‎) 146E 1427 CANADIAN SYLLABICS KII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑹ ‎) 1479 CANADIAN SYLLABICS WEST-CREE KWII # →ᑮᐧ→ - -# ᑰ· ᑰᐧ ᑽ - (‎ ᑰ· ‎) 1470 00B7 CANADIAN SYLLABICS KOO, MIDDLE DOT -← (‎ ᑰᐧ ‎) 1470 1427 CANADIAN SYLLABICS KOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᑽ ‎) 147D CANADIAN SYLLABICS WEST-CREE KWOO # →ᑰᐧ→ - -# ᒉ ᘃ - (‎ ᒉ ‎) 1489 CANADIAN SYLLABICS CE -← (‎ ᘃ ‎) 1603 CANADIAN SYLLABICS CARRIER NO - -# ᒉ· ᒉᐧ ᒓ - (‎ ᒉ· ‎) 1489 00B7 CANADIAN SYLLABICS CE, MIDDLE DOT -← (‎ ᒉᐧ ‎) 1489 1427 CANADIAN SYLLABICS CE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒓ ‎) 1493 CANADIAN SYLLABICS WEST-CREE CWE # →ᒉᐧ→ - -# ᒋ· ᒋᐧ ᒕ - (‎ ᒋ· ‎) 148B 00B7 CANADIAN SYLLABICS CI, MIDDLE DOT -← (‎ ᒋᐧ ‎) 148B 1427 CANADIAN SYLLABICS CI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒕ ‎) 1495 CANADIAN SYLLABICS WEST-CREE CWI # →ᒋᐧ→ - -# ᒌ· ᒌᐧ ᒗ - (‎ ᒌ· ‎) 148C 00B7 CANADIAN SYLLABICS CII, MIDDLE DOT -← (‎ ᒌᐧ ‎) 148C 1427 CANADIAN SYLLABICS CII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒗ ‎) 1497 CANADIAN SYLLABICS WEST-CREE CWII # →ᒌᐧ→ - -# ᒎ· ᒎᐧ ᒛ - (‎ ᒎ· ‎) 148E 00B7 CANADIAN SYLLABICS COO, MIDDLE DOT -← (‎ ᒎᐧ ‎) 148E 1427 CANADIAN SYLLABICS COO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒛ ‎) 149B CANADIAN SYLLABICS WEST-CREE CWOO # →ᒎᐧ→ - -# ᒐ ᘂ - (‎ ᒐ ‎) 1490 CANADIAN SYLLABICS CA -← (‎ ᘂ ‎) 1602 CANADIAN SYLLABICS CARRIER NU - -# ᒐ· ᒐᐧ ᒝ - (‎ ᒐ· ‎) 1490 00B7 CANADIAN SYLLABICS CA, MIDDLE DOT -← (‎ ᒐᐧ ‎) 1490 1427 CANADIAN SYLLABICS CA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒝ ‎) 149D CANADIAN SYLLABICS WEST-CREE CWA # →ᒐᐧ→ - -# ᒑ· ᒑᐧ ᒟ - (‎ ᒑ· ‎) 1491 00B7 CANADIAN SYLLABICS CAA, MIDDLE DOT -← (‎ ᒑᐧ ‎) 1491 1427 CANADIAN SYLLABICS CAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒟ ‎) 149F CANADIAN SYLLABICS WEST-CREE CWAA # →ᒑᐧ→ - -# ᒣ· ᒣᐧ ᒭ - (‎ ᒣ· ‎) 14A3 00B7 CANADIAN SYLLABICS ME, MIDDLE DOT -← (‎ ᒣᐧ ‎) 14A3 1427 CANADIAN SYLLABICS ME, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒭ ‎) 14AD CANADIAN SYLLABICS WEST-CREE MWE # →ᒣᐧ→ - -# ᒦ· ᒦᐧ ᒱ - (‎ ᒦ· ‎) 14A6 00B7 CANADIAN SYLLABICS MII, MIDDLE DOT -← (‎ ᒦᐧ ‎) 14A6 1427 CANADIAN SYLLABICS MII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒱ ‎) 14B1 CANADIAN SYLLABICS WEST-CREE MWII # →ᒦᐧ→ - -# ᒧ· ᒧᐧ ᒳ - (‎ ᒧ· ‎) 14A7 00B7 CANADIAN SYLLABICS MO, MIDDLE DOT -← (‎ ᒧᐧ ‎) 14A7 1427 CANADIAN SYLLABICS MO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒳ ‎) 14B3 CANADIAN SYLLABICS WEST-CREE MWO # →ᒧᐧ→ - -# ᒨ· ᒨᐧ ᒵ - (‎ ᒨ· ‎) 14A8 00B7 CANADIAN SYLLABICS MOO, MIDDLE DOT -← (‎ ᒨᐧ ‎) 14A8 1427 CANADIAN SYLLABICS MOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒵ ‎) 14B5 CANADIAN SYLLABICS WEST-CREE MWOO # →ᒨᐧ→ - -# ᒫ· ᒫᐧ ᒹ - (‎ ᒫ· ‎) 14AB 00B7 CANADIAN SYLLABICS MAA, MIDDLE DOT -← (‎ ᒫᐧ ‎) 14AB 1427 CANADIAN SYLLABICS MAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᒹ ‎) 14B9 CANADIAN SYLLABICS WEST-CREE MWAA # →ᒫᐧ→ - -# ᓀ· ᓀᐧ ᓊ - (‎ ᓀ· ‎) 14C0 00B7 CANADIAN SYLLABICS NE, MIDDLE DOT -← (‎ ᓀᐧ ‎) 14C0 1427 CANADIAN SYLLABICS NE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓊ ‎) 14CA CANADIAN SYLLABICS WEST-CREE NWE # →ᓀᐧ→ - -# ᓂ· ᓂᐧ ᣇ - (‎ ᓂ· ‎) 14C2 00B7 CANADIAN SYLLABICS NI, MIDDLE DOT -← (‎ ᓂᐧ ‎) 14C2 1427 CANADIAN SYLLABICS NI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣇ ‎) 18C7 CANADIAN SYLLABICS OJIBWAY NWI # →ᓂᐧ→ - -# ᓃ· ᓃᐧ ᣉ - (‎ ᓃ· ‎) 14C3 00B7 CANADIAN SYLLABICS NII, MIDDLE DOT -← (‎ ᓃᐧ ‎) 14C3 1427 CANADIAN SYLLABICS NII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣉ ‎) 18C9 CANADIAN SYLLABICS OJIBWAY NWII # →ᓃᐧ→ - -# ᓄ· ᓄᐧ ᣋ - (‎ ᓄ· ‎) 14C4 00B7 CANADIAN SYLLABICS NO, MIDDLE DOT -← (‎ ᓄᐧ ‎) 14C4 1427 CANADIAN SYLLABICS NO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣋ ‎) 18CB CANADIAN SYLLABICS OJIBWAY NWO # →ᓄᐧ→ - -# ᓅ· ᓅᐧ ᣍ - (‎ ᓅ· ‎) 14C5 00B7 CANADIAN SYLLABICS NOO, MIDDLE DOT -← (‎ ᓅᐧ ‎) 14C5 1427 CANADIAN SYLLABICS NOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣍ ‎) 18CD CANADIAN SYLLABICS OJIBWAY NWOO # →ᓅᐧ→ - -# ᓇ· ᓇᐧ ᓌ - (‎ ᓇ· ‎) 14C7 00B7 CANADIAN SYLLABICS NA, MIDDLE DOT -← (‎ ᓇᐧ ‎) 14C7 1427 CANADIAN SYLLABICS NA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓌ ‎) 14CC CANADIAN SYLLABICS WEST-CREE NWA # →ᓇᐧ→ - -# ᓈ· ᓈᐧ ᓎ - (‎ ᓈ· ‎) 14C8 00B7 CANADIAN SYLLABICS NAA, MIDDLE DOT -← (‎ ᓈᐧ ‎) 14C8 1427 CANADIAN SYLLABICS NAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓎ ‎) 14CE CANADIAN SYLLABICS WEST-CREE NWAA # →ᓈᐧ→ - -# ᓓ ᘄ - (‎ ᓓ ‎) 14D3 CANADIAN SYLLABICS LE -← (‎ ᘄ ‎) 1604 CANADIAN SYLLABICS CARRIER NE - -# ᓓ· ᓓᐧ ᓝ - (‎ ᓓ· ‎) 14D3 00B7 CANADIAN SYLLABICS LE, MIDDLE DOT -← (‎ ᓓᐧ ‎) 14D3 1427 CANADIAN SYLLABICS LE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓝ ‎) 14DD CANADIAN SYLLABICS WEST-CREE LWE # →ᓓᐧ→ - -# ᓕ· ᓕᐧ ᓟ - (‎ ᓕ· ‎) 14D5 00B7 CANADIAN SYLLABICS LI, MIDDLE DOT -← (‎ ᓕᐧ ‎) 14D5 1427 CANADIAN SYLLABICS LI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓟ ‎) 14DF CANADIAN SYLLABICS WEST-CREE LWI # →ᓕᐧ→ - -# ᓖ· ᓖᐧ ᓡ - (‎ ᓖ· ‎) 14D6 00B7 CANADIAN SYLLABICS LII, MIDDLE DOT -← (‎ ᓖᐧ ‎) 14D6 1427 CANADIAN SYLLABICS LII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓡ ‎) 14E1 CANADIAN SYLLABICS WEST-CREE LWII # →ᓖᐧ→ - -# ᓗ· ᓗᐧ ᓣ - (‎ ᓗ· ‎) 14D7 00B7 CANADIAN SYLLABICS LO, MIDDLE DOT -← (‎ ᓗᐧ ‎) 14D7 1427 CANADIAN SYLLABICS LO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓣ ‎) 14E3 CANADIAN SYLLABICS WEST-CREE LWO # →ᓗᐧ→ - -# ᓘ· ᓘᐧ ᓥ - (‎ ᓘ· ‎) 14D8 00B7 CANADIAN SYLLABICS LOO, MIDDLE DOT -← (‎ ᓘᐧ ‎) 14D8 1427 CANADIAN SYLLABICS LOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓥ ‎) 14E5 CANADIAN SYLLABICS WEST-CREE LWOO # →ᓘᐧ→ - -# ᓚ ᘇ - (‎ ᓚ ‎) 14DA CANADIAN SYLLABICS LA -← (‎ ᘇ ‎) 1607 CANADIAN SYLLABICS CARRIER NA - -# ᓚ· ᓚᐧ ᓧ - (‎ ᓚ· ‎) 14DA 00B7 CANADIAN SYLLABICS LA, MIDDLE DOT -← (‎ ᓚᐧ ‎) 14DA 1427 CANADIAN SYLLABICS LA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓧ ‎) 14E7 CANADIAN SYLLABICS WEST-CREE LWA # →ᓚᐧ→ - -# ᓛ· ᓛᐧ ᓩ - (‎ ᓛ· ‎) 14DB 00B7 CANADIAN SYLLABICS LAA, MIDDLE DOT -← (‎ ᓛᐧ ‎) 14DB 1427 CANADIAN SYLLABICS LAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓩ ‎) 14E9 CANADIAN SYLLABICS WEST-CREE LWAA # →ᓛᐧ→ - -# ᓭ· ᓭᐧ ᓷ - (‎ ᓭ· ‎) 14ED 00B7 CANADIAN SYLLABICS SE, MIDDLE DOT -← (‎ ᓭᐧ ‎) 14ED 1427 CANADIAN SYLLABICS SE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓷ ‎) 14F7 CANADIAN SYLLABICS WEST-CREE SWE # →ᓭᐧ→ - -# ᓯ· ᓯᐧ ᓹ - (‎ ᓯ· ‎) 14EF 00B7 CANADIAN SYLLABICS SI, MIDDLE DOT -← (‎ ᓯᐧ ‎) 14EF 1427 CANADIAN SYLLABICS SI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓹ ‎) 14F9 CANADIAN SYLLABICS WEST-CREE SWI # →ᓯᐧ→ - -# ᓰ· ᓰᐧ ᓻ - (‎ ᓰ· ‎) 14F0 00B7 CANADIAN SYLLABICS SII, MIDDLE DOT -← (‎ ᓰᐧ ‎) 14F0 1427 CANADIAN SYLLABICS SII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓻ ‎) 14FB CANADIAN SYLLABICS WEST-CREE SWII # →ᓰᐧ→ - -# ᓱ· ᓱᐧ ᓽ - (‎ ᓱ· ‎) 14F1 00B7 CANADIAN SYLLABICS SO, MIDDLE DOT -← (‎ ᓱᐧ ‎) 14F1 1427 CANADIAN SYLLABICS SO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓽ ‎) 14FD CANADIAN SYLLABICS WEST-CREE SWO # →ᓱᐧ→ - -# ᓲ· ᓲᐧ ᓿ - (‎ ᓲ· ‎) 14F2 00B7 CANADIAN SYLLABICS SOO, MIDDLE DOT -← (‎ ᓲᐧ ‎) 14F2 1427 CANADIAN SYLLABICS SOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᓿ ‎) 14FF CANADIAN SYLLABICS WEST-CREE SWOO # →ᓲᐧ→ - -# ᓴ· ᓴᐧ ᔁ - (‎ ᓴ· ‎) 14F4 00B7 CANADIAN SYLLABICS SA, MIDDLE DOT -← (‎ ᓴᐧ ‎) 14F4 1427 CANADIAN SYLLABICS SA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔁ ‎) 1501 CANADIAN SYLLABICS WEST-CREE SWA # →ᓴᐧ→ - -# ᓵ· ᓵᐧ ᔃ - (‎ ᓵ· ‎) 14F5 00B7 CANADIAN SYLLABICS SAA, MIDDLE DOT -← (‎ ᓵᐧ ‎) 14F5 1427 CANADIAN SYLLABICS SAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔃ ‎) 1503 CANADIAN SYLLABICS WEST-CREE SWAA # →ᓵᐧ→ - -# ᔋ< ᔋᐸ ᔌ - (‎ ᔋ< ‎) 150B 003C CANADIAN SYLLABICS NASKAPI S-W, LESS-THAN SIGN -← (‎ ᔋᐸ ‎) 150B 1438 CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS PA -← (‎ ᔌ ‎) 150C CANADIAN SYLLABICS NASKAPI SPWA # →ᔋᐸ→ - -# ᔋb ᔋᑲ ᔎ - (‎ ᔋb ‎) 150B 0062 CANADIAN SYLLABICS NASKAPI S-W, LATIN SMALL LETTER B -← (‎ ᔋᑲ ‎) 150B 1472 CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS KA -← (‎ ᔎ ‎) 150E CANADIAN SYLLABICS NASKAPI SKWA # →ᔋᑲ→ - -# ᔋᑕ ᔍ - (‎ ᔋᑕ ‎) 150B 1455 CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS TA -← (‎ ᔍ ‎) 150D CANADIAN SYLLABICS NASKAPI STWA - -# ᔋᒐ ᔏ - (‎ ᔋᒐ ‎) 150B 1490 CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS CA -← (‎ ᔏ ‎) 150F CANADIAN SYLLABICS NASKAPI SCWA - -# ᔐ· ᔐᐧ ᔘ - (‎ ᔐ· ‎) 1510 00B7 CANADIAN SYLLABICS SHE, MIDDLE DOT -← (‎ ᔐᐧ ‎) 1510 1427 CANADIAN SYLLABICS SHE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔘ ‎) 1518 CANADIAN SYLLABICS WEST-CREE SHWE # →ᔐᐧ→ - -# ᔑ· ᔑᐧ ᔚ - (‎ ᔑ· ‎) 1511 00B7 CANADIAN SYLLABICS SHI, MIDDLE DOT -← (‎ ᔑᐧ ‎) 1511 1427 CANADIAN SYLLABICS SHI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔚ ‎) 151A CANADIAN SYLLABICS WEST-CREE SHWI # →ᔑᐧ→ - -# ᔒ· ᔒᐧ ᔜ - (‎ ᔒ· ‎) 1512 00B7 CANADIAN SYLLABICS SHII, MIDDLE DOT -← (‎ ᔒᐧ ‎) 1512 1427 CANADIAN SYLLABICS SHII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔜ ‎) 151C CANADIAN SYLLABICS WEST-CREE SHWII # →ᔒᐧ→ - -# ᔓ· ᔓᐧ ᔞ - (‎ ᔓ· ‎) 1513 00B7 CANADIAN SYLLABICS SHO, MIDDLE DOT -← (‎ ᔓᐧ ‎) 1513 1427 CANADIAN SYLLABICS SHO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔞ ‎) 151E CANADIAN SYLLABICS WEST-CREE SHWO # →ᔓᐧ→ - -# ᔔ· ᔔᐧ ᔠ - (‎ ᔔ· ‎) 1514 00B7 CANADIAN SYLLABICS SHOO, MIDDLE DOT -← (‎ ᔔᐧ ‎) 1514 1427 CANADIAN SYLLABICS SHOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔠ ‎) 1520 CANADIAN SYLLABICS WEST-CREE SHWOO # →ᔔᐧ→ - -# ᔕ· ᔕᐧ ᔢ - (‎ ᔕ· ‎) 1515 00B7 CANADIAN SYLLABICS SHA, MIDDLE DOT -← (‎ ᔕᐧ ‎) 1515 1427 CANADIAN SYLLABICS SHA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔢ ‎) 1522 CANADIAN SYLLABICS WEST-CREE SHWA # →ᔕᐧ→ - -# ᔖ· ᔖᐧ ᔤ - (‎ ᔖ· ‎) 1516 00B7 CANADIAN SYLLABICS SHAA, MIDDLE DOT -← (‎ ᔖᐧ ‎) 1516 1427 CANADIAN SYLLABICS SHAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔤ ‎) 1524 CANADIAN SYLLABICS WEST-CREE SHWAA # →ᔖᐧ→ - -# ᔨ· ᔨᐧ ᔲ - (‎ ᔨ· ‎) 1528 00B7 CANADIAN SYLLABICS YI, MIDDLE DOT -← (‎ ᔨᐧ ‎) 1528 1427 CANADIAN SYLLABICS YI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔲ ‎) 1532 CANADIAN SYLLABICS WEST-CREE YWI # →ᔨᐧ→ - -# ᔩ· ᔩᐧ ᔴ - (‎ ᔩ· ‎) 1529 00B7 CANADIAN SYLLABICS YII, MIDDLE DOT -← (‎ ᔩᐧ ‎) 1529 1427 CANADIAN SYLLABICS YII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔴ ‎) 1534 CANADIAN SYLLABICS WEST-CREE YWII # →ᔩᐧ→ - -# ᔪ· ᔪᐧ ᔶ - (‎ ᔪ· ‎) 152A 00B7 CANADIAN SYLLABICS YO, MIDDLE DOT -← (‎ ᔪᐧ ‎) 152A 1427 CANADIAN SYLLABICS YO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔶ ‎) 1536 CANADIAN SYLLABICS WEST-CREE YWO # →ᔪᐧ→ - -# ᔫ· ᔫᐧ ᔸ - (‎ ᔫ· ‎) 152B 00B7 CANADIAN SYLLABICS YOO, MIDDLE DOT -← (‎ ᔫᐧ ‎) 152B 1427 CANADIAN SYLLABICS YOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔸ ‎) 1538 CANADIAN SYLLABICS WEST-CREE YWOO # →ᔫᐧ→ - -# ᔭ· ᔭᐧ ᔺ - (‎ ᔭ· ‎) 152D 00B7 CANADIAN SYLLABICS YA, MIDDLE DOT -← (‎ ᔭᐧ ‎) 152D 1427 CANADIAN SYLLABICS YA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔺ ‎) 153A CANADIAN SYLLABICS WEST-CREE YWA # →ᔭᐧ→ - -# ᔮ· ᔮᐧ ᔼ - (‎ ᔮ· ‎) 152E 00B7 CANADIAN SYLLABICS YAA, MIDDLE DOT -← (‎ ᔮᐧ ‎) 152E 1427 CANADIAN SYLLABICS YAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᔼ ‎) 153C CANADIAN SYLLABICS WEST-CREE YWAA # →ᔮᐧ→ - -# ᕃ ᘢ - (‎ ᕃ ‎) 1543 CANADIAN SYLLABICS R-CREE RE -← (‎ ᘢ ‎) 1622 CANADIAN SYLLABICS CARRIER LU - -# ᕃ· ᕃᐧ ᣠ - (‎ ᕃ· ‎) 1543 00B7 CANADIAN SYLLABICS R-CREE RE, MIDDLE DOT -← (‎ ᕃᐧ ‎) 1543 1427 CANADIAN SYLLABICS R-CREE RE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣠ ‎) 18E0 CANADIAN SYLLABICS R-CREE RWE # →ᕃᐧ→ - -# ᕆ ᘣ - (‎ ᕆ ‎) 1546 CANADIAN SYLLABICS RI -← (‎ ᘣ ‎) 1623 CANADIAN SYLLABICS CARRIER LO - -# ᕊ ᘤ - (‎ ᕊ ‎) 154A CANADIAN SYLLABICS WEST-CREE LO -← (‎ ᘤ ‎) 1624 CANADIAN SYLLABICS CARRIER LE - -# ᕌ· ᕌᐧ ᕏ - (‎ ᕌ· ‎) 154C 00B7 CANADIAN SYLLABICS RAA, MIDDLE DOT -← (‎ ᕌᐧ ‎) 154C 1427 CANADIAN SYLLABICS RAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᕏ ‎) 154F CANADIAN SYLLABICS WEST-CREE RWAA # →ᕌᐧ→ - -# ᕐP ᕐᏢ ᕐᑭ ᕿ - (‎ ᕐP ‎) 1550 0050 CANADIAN SYLLABICS R, LATIN CAPITAL LETTER P -← (‎ ᕐᏢ ‎) 1550 13E2 CANADIAN SYLLABICS R, CHEROKEE LETTER TLV # →ᕐᑭ→ -← (‎ ᕐᑭ ‎) 1550 146D CANADIAN SYLLABICS R, CANADIAN SYLLABICS KI -← (‎ ᕿ ‎) 157F CANADIAN SYLLABICS QI # →ᕐᑭ→ - -# ᕐb ᕐᑲ ᖃ - (‎ ᕐb ‎) 1550 0062 CANADIAN SYLLABICS R, LATIN SMALL LETTER B -← (‎ ᕐᑲ ‎) 1550 1472 CANADIAN SYLLABICS R, CANADIAN SYLLABICS KA -← (‎ ᖃ ‎) 1583 CANADIAN SYLLABICS QA # →ᕐᑲ→ - -# ᕐḃ ᕐᑳ ᖄ - (‎ ᕐḃ ‎) 1550 0062 0307 CANADIAN SYLLABICS R, LATIN SMALL LETTER B, COMBINING DOT ABOVE -← (‎ ᕐᑳ ‎) 1550 1473 CANADIAN SYLLABICS R, CANADIAN SYLLABICS KAA -← (‎ ᖄ ‎) 1584 CANADIAN SYLLABICS QAA # →ᕐᑳ→ - -# ᕐd ᕐᑯ ᖁ - (‎ ᕐd ‎) 1550 0064 CANADIAN SYLLABICS R, LATIN SMALL LETTER D -← (‎ ᕐᑯ ‎) 1550 146F CANADIAN SYLLABICS R, CANADIAN SYLLABICS KO -← (‎ ᖁ ‎) 1581 CANADIAN SYLLABICS QO # →ᕐᑯ→ - -# ᕐᑫ ᙯ - (‎ ᕐᑫ ‎) 1550 146B CANADIAN SYLLABICS R, CANADIAN SYLLABICS KE -← (‎ ᙯ ‎) 166F CANADIAN SYLLABICS QAI - -# ᕐᑬ ᕾ - (‎ ᕐᑬ ‎) 1550 146C CANADIAN SYLLABICS R, CANADIAN SYLLABICS KAAI -← (‎ ᕾ ‎) 157E CANADIAN SYLLABICS QAAI - -# ᕐᑮ ᖀ - (‎ ᕐᑮ ‎) 1550 146E CANADIAN SYLLABICS R, CANADIAN SYLLABICS KII -← (‎ ᖀ ‎) 1580 CANADIAN SYLLABICS QII - -# ᕐᑰ ᖂ - (‎ ᕐᑰ ‎) 1550 1470 CANADIAN SYLLABICS R, CANADIAN SYLLABICS KOO -← (‎ ᖂ ‎) 1582 CANADIAN SYLLABICS QOO - -# ᕐᒃ ᖅ - (‎ ᕐᒃ ‎) 1550 1483 CANADIAN SYLLABICS R, CANADIAN SYLLABICS K -← (‎ ᖅ ‎) 1585 CANADIAN SYLLABICS Q - -# ᕚ· ᕚᐧ ᕜ - (‎ ᕚ· ‎) 155A 00B7 CANADIAN SYLLABICS FAA, MIDDLE DOT -← (‎ ᕚᐧ ‎) 155A 1427 CANADIAN SYLLABICS FAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᕜ ‎) 155C CANADIAN SYLLABICS WEST-CREE FWAA # →ᕚᐧ→ - -# ᕞ· ᕞᐧ ᣣ - (‎ ᕞ· ‎) 155E 00B7 CANADIAN SYLLABICS THE, MIDDLE DOT -← (‎ ᕞᐧ ‎) 155E 1427 CANADIAN SYLLABICS THE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣣ ‎) 18E3 CANADIAN SYLLABICS THWE # →ᕞᐧ→ - -# ᕦ· ᕦᐧ ᣤ - (‎ ᕦ· ‎) 1566 00B7 CANADIAN SYLLABICS THA, MIDDLE DOT -← (‎ ᕦᐧ ‎) 1566 1427 CANADIAN SYLLABICS THA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣤ ‎) 18E4 CANADIAN SYLLABICS THWA # →ᕦᐧ→ - -# ᕧ· ᕧᐧ ᕩ - (‎ ᕧ· ‎) 1567 00B7 CANADIAN SYLLABICS THAA, MIDDLE DOT -← (‎ ᕧᐧ ‎) 1567 1427 CANADIAN SYLLABICS THAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᕩ ‎) 1569 CANADIAN SYLLABICS WEST-CREE THWAA # →ᕧᐧ→ - -# ᕫ· ᕫᐧ ᣥ - (‎ ᕫ· ‎) 156B 00B7 CANADIAN SYLLABICS TTHE, MIDDLE DOT -← (‎ ᕫᐧ ‎) 156B 1427 CANADIAN SYLLABICS TTHE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣥ ‎) 18E5 CANADIAN SYLLABICS TTHWE # →ᕫᐧ→ - -# ᖆ· ᖆᐧ ᣨ - (‎ ᖆ· ‎) 1586 00B7 CANADIAN SYLLABICS TLHE, MIDDLE DOT -← (‎ ᖆᐧ ‎) 1586 1427 CANADIAN SYLLABICS TLHE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣨ ‎) 18E8 CANADIAN SYLLABICS TLHWE # →ᖆᐧ→ - -# ᖕᒊ ᖎ - (‎ ᖎ ‎) 158E CANADIAN SYLLABICS NGAAI -← (‎ ᖕᒊ ‎) 1595 148A CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CAAI - -# ᖕᒋ ᖏ - (‎ ᖏ ‎) 158F CANADIAN SYLLABICS NGI -← (‎ ᖕᒋ ‎) 1595 148B CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CI - -# ᖕᒌ ᖐ - (‎ ᖐ ‎) 1590 CANADIAN SYLLABICS NGII -← (‎ ᖕᒌ ‎) 1595 148C CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CII - -# ᖕJ ᖕᎫ ᖕᒍ ᖑ - (‎ ᖑ ‎) 1591 CANADIAN SYLLABICS NGO -← (‎ ᖕJ ‎) 1595 004A CANADIAN SYLLABICS NG, LATIN CAPITAL LETTER J # →ᖕᒍ→ -← (‎ ᖕᎫ ‎) 1595 13AB CANADIAN SYLLABICS NG, CHEROKEE LETTER GU # →ᖕᒍ→ -← (‎ ᖕᒍ ‎) 1595 148D CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CO - -# ᖕᒎ ᖒ - (‎ ᖒ ‎) 1592 CANADIAN SYLLABICS NGOO -← (‎ ᖕᒎ ‎) 1595 148E CANADIAN SYLLABICS NG, CANADIAN SYLLABICS COO - -# ᖕᒐ ᖓ - (‎ ᖓ ‎) 1593 CANADIAN SYLLABICS NGA -← (‎ ᖕᒐ ‎) 1595 1490 CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CA - -# ᖕᒑ ᖔ - (‎ ᖔ ‎) 1594 CANADIAN SYLLABICS NGAA -← (‎ ᖕᒑ ‎) 1595 1491 CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CAA - -# ᖕᒉ ᙰ - (‎ ᖕᒉ ‎) 1595 1489 CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CE -← (‎ ᙰ ‎) 1670 CANADIAN SYLLABICS NGAI - -# ᖖJ ᖖᎫ ᖖᒍ ᙳ - (‎ ᖖJ ‎) 1596 004A CANADIAN SYLLABICS NNG, LATIN CAPITAL LETTER J -← (‎ ᖖᎫ ‎) 1596 13AB CANADIAN SYLLABICS NNG, CHEROKEE LETTER GU # →ᖖᒍ→ -← (‎ ᖖᒍ ‎) 1596 148D CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CO -← (‎ ᙳ ‎) 1673 CANADIAN SYLLABICS NNGO # →ᖖᒍ→ - -# ᖖᒋ ᙱ - (‎ ᖖᒋ ‎) 1596 148B CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CI -← (‎ ᙱ ‎) 1671 CANADIAN SYLLABICS NNGI - -# ᖖᒌ ᙲ - (‎ ᖖᒌ ‎) 1596 148C CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CII -← (‎ ᙲ ‎) 1672 CANADIAN SYLLABICS NNGII - -# ᖖᒎ ᙴ - (‎ ᖖᒎ ‎) 1596 148E CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS COO -← (‎ ᙴ ‎) 1674 CANADIAN SYLLABICS NNGOO - -# ᖖᒐ ᙵ - (‎ ᖖᒐ ‎) 1596 1490 CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CA -← (‎ ᙵ ‎) 1675 CANADIAN SYLLABICS NNGA - -# ᖖᒑ ᙶ - (‎ ᖖᒑ ‎) 1596 1491 CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CAA -← (‎ ᙶ ‎) 1676 CANADIAN SYLLABICS NNGAA - -# ᖗ· ᖗᐧ ᣪ - (‎ ᖗ· ‎) 1597 00B7 CANADIAN SYLLABICS SAYISI SHE, MIDDLE DOT -← (‎ ᖗᐧ ‎) 1597 1427 CANADIAN SYLLABICS SAYISI SHE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣪ ‎) 18EA CANADIAN SYLLABICS SAYISI SHWE # →ᖗᐧ→ - -# ᖧ· ᖧᐧ ᙷ - (‎ ᖧ· ‎) 15A7 00B7 CANADIAN SYLLABICS TH-CREE THE, MIDDLE DOT -← (‎ ᖧᐧ ‎) 15A7 1427 CANADIAN SYLLABICS TH-CREE THE, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙷ ‎) 1677 CANADIAN SYLLABICS WOODS-CREE THWEE # →ᖧᐧ→ - -# ᖨ· ᖨᐧ ᙸ - (‎ ᖨ· ‎) 15A8 00B7 CANADIAN SYLLABICS TH-CREE THI, MIDDLE DOT -← (‎ ᖨᐧ ‎) 15A8 1427 CANADIAN SYLLABICS TH-CREE THI, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙸ ‎) 1678 CANADIAN SYLLABICS WOODS-CREE THWI # →ᖨᐧ→ - -# ᖩ· ᖩᐧ ᙹ - (‎ ᖩ· ‎) 15A9 00B7 CANADIAN SYLLABICS TH-CREE THII, MIDDLE DOT -← (‎ ᖩᐧ ‎) 15A9 1427 CANADIAN SYLLABICS TH-CREE THII, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙹ ‎) 1679 CANADIAN SYLLABICS WOODS-CREE THWII # →ᖩᐧ→ - -# ᖪ· ᖪᐧ ᙺ - (‎ ᖪ· ‎) 15AA 00B7 CANADIAN SYLLABICS TH-CREE THO, MIDDLE DOT -← (‎ ᖪᐧ ‎) 15AA 1427 CANADIAN SYLLABICS TH-CREE THO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙺ ‎) 167A CANADIAN SYLLABICS WOODS-CREE THWO # →ᖪᐧ→ - -# ᖫ· ᖫᐧ ᙻ - (‎ ᖫ· ‎) 15AB 00B7 CANADIAN SYLLABICS TH-CREE THOO, MIDDLE DOT -← (‎ ᖫᐧ ‎) 15AB 1427 CANADIAN SYLLABICS TH-CREE THOO, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙻ ‎) 167B CANADIAN SYLLABICS WOODS-CREE THWOO # →ᖫᐧ→ - -# ᖬ· ᖬᐧ ᙼ - (‎ ᖬ· ‎) 15AC 00B7 CANADIAN SYLLABICS TH-CREE THA, MIDDLE DOT -← (‎ ᖬᐧ ‎) 15AC 1427 CANADIAN SYLLABICS TH-CREE THA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙼ ‎) 167C CANADIAN SYLLABICS WOODS-CREE THWA # →ᖬᐧ→ - -# ᖭ· ᖭᐧ ᙽ - (‎ ᖭ· ‎) 15AD 00B7 CANADIAN SYLLABICS TH-CREE THAA, MIDDLE DOT -← (‎ ᖭᐧ ‎) 15AD 1427 CANADIAN SYLLABICS TH-CREE THAA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᙽ ‎) 167D CANADIAN SYLLABICS WOODS-CREE THWAA # →ᖭᐧ→ - -# Ⅎ ᖵ ꓞ - (‎ ᖵ ‎) 15B5 CANADIAN SYLLABICS BLACKFOOT WI -← (‎ Ⅎ ‎) 2132 TURNED CAPITAL F -← (‎ ꓞ ‎) A4DE LISU LETTER TSHA # →Ⅎ→ - -# ꟻ ᖷ 𝈰 - (‎ ᖷ ‎) 15B7 CANADIAN SYLLABICS BLACKFOOT WA -← (‎ ꟻ ‎) A7FB LATIN EPIGRAPHIC LETTER REVERSED F -← (‎ 𝈰 ‎) 1D230 GREEK INSTRUMENTAL NOTATION SYMBOL-30 # →ꟻ→ - -# Ɐ ᗄ ꓯ ∀ 𝈗 - (‎ ᗄ ‎) 15C4 CANADIAN SYLLABICS CARRIER GHU -← (‎ Ɐ ‎) 2C6F LATIN CAPITAL LETTER TURNED A # →∀→ -← (‎ ꓯ ‎) A4EF LISU LETTER AE # →∀→ -← (‎ ∀ ‎) 2200 FOR ALL -← (‎ 𝈗 ‎) 1D217 GREEK VOCAL NOTATION SYMBOL-24 # →Ɐ→→∀→ - -# ᗒ ⪫ - (‎ ᗒ ‎) 15D2 CANADIAN SYLLABICS CARRIER WE -← (‎ ⪫ ‎) 2AAB LARGER THAN - -# ᗕ ⪪ - (‎ ᗕ ‎) 15D5 CANADIAN SYLLABICS CARRIER WA -← (‎ ⪪ ‎) 2AAA SMALLER THAN - -# ᗡ ꓷ - (‎ ᗡ ‎) 15E1 CANADIAN SYLLABICS CARRIER THA -← (‎ ꓷ ‎) A4F7 LISU LETTER OE - -# ᗴ· ᗴᐧ ᣰ - (‎ ᗴ· ‎) 15F4 00B7 CANADIAN SYLLABICS CARRIER GA, MIDDLE DOT -← (‎ ᗴᐧ ‎) 15F4 1427 CANADIAN SYLLABICS CARRIER GA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣰ ‎) 18F0 CANADIAN SYLLABICS CARRIER GWA # →ᗴᐧ→ - -# ᘛ· ᘛᐧ ᣲ - (‎ ᘛ· ‎) 161B 00B7 CANADIAN SYLLABICS CARRIER JA, MIDDLE DOT -← (‎ ᘛᐧ ‎) 161B 1427 CANADIAN SYLLABICS CARRIER JA, CANADIAN SYLLABICS FINAL MIDDLE DOT -← (‎ ᣲ ‎) 18F2 CANADIAN SYLLABICS CARRIER JWA # →ᘛᐧ→ - -# ᙆ ᶻ - (‎ ᙆ ‎) 1646 CANADIAN SYLLABICS CARRIER Z -← (‎ ᶻ ‎) 1DBB MODIFIER LETTER SMALL Z - -# ᙠ ꓭ - (‎ ᙠ ‎) 1660 CANADIAN SYLLABICS CARRIER TSA -← (‎ ꓭ ‎) A4ED LISU LETTER GHA - -# ᚹ ꚰ - (‎ ᚹ ‎) 16B9 RUNIC LETTER WUNJO WYNN W -← (‎ ꚰ ‎) A6B0 BAMUM LETTER TAA - -# ᚼ ᛡ - (‎ ᚼ ‎) 16BC RUNIC LETTER LONG-BRANCH-HAGALL H -← (‎ ᛡ ‎) 16E1 RUNIC LETTER IOR - -# ᚽ ᛂ ⍿ - (‎ ᚽ ‎) 16BD RUNIC LETTER SHORT-TWIG-HAGALL H -← (‎ ᛂ ‎) 16C2 RUNIC LETTER E -← (‎ ⍿ ‎) 237F VERTICAL LINE WITH MIDDLE DOT # →ᛂ→ - -# ᛋ 𝈿 - (‎ ᛋ ‎) 16CB RUNIC LETTER SIGEL LONG-BRANCH-SOL S -← (‎ 𝈿 ‎) 1D23F GREEK INSTRUMENTAL NOTATION SYMBOL-52 - -# ᛏ ↑ - (‎ ᛏ ‎) 16CF RUNIC LETTER TIWAZ TIR TYR T -← (‎ ↑ ‎) 2191 UPWARDS ARROW - -# ᛐ ↿ - (‎ ᛐ ‎) 16D0 RUNIC LETTER SHORT-TWIG-TYR T -← (‎ ↿ ‎) 21BF UPWARDS HARPOON WITH BARB LEFTWARDS - -# ᛐᛚ ↿↾ ⥣ - (‎ ᛐᛚ ‎) 16D0 16DA RUNIC LETTER SHORT-TWIG-TYR T, RUNIC LETTER LAUKAZ LAGU LOGR L -← (‎ ↿↾ ‎) 21BF 21BE UPWARDS HARPOON WITH BARB LEFTWARDS, UPWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ⥣ ‎) 2963 UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT # →↿↾→ - -# ᛐ⇂ ↿⇂ ⥮ - (‎ ᛐ⇂ ‎) 16D0 21C2 RUNIC LETTER SHORT-TWIG-TYR T, DOWNWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ↿⇂ ‎) 21BF 21C2 UPWARDS HARPOON WITH BARB LEFTWARDS, DOWNWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ⥮ ‎) 296E UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT # →↿⇂→ - -# ᛚ ↾ ⨡ - (‎ ᛚ ‎) 16DA RUNIC LETTER LAUKAZ LAGU LOGR L -← (‎ ↾ ‎) 21BE UPWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ⨡ ‎) 2A21 Z NOTATION SCHEMA PROJECTION # →↾→ - -# ᛜ 𐊔 ⋄ ◇ ◊ ♢ 🝔 𑢷 - (‎ ᛜ ‎) 16DC RUNIC LETTER INGWAZ -← (‎ 𐊔 ‎) 10294 LYCIAN LETTER KK # →◇→ -← (‎ ⋄ ‎) 22C4 DIAMOND OPERATOR # →◇→ -← (‎ ◇ ‎) 25C7 WHITE DIAMOND -← (‎ ◊ ‎) 25CA LOZENGE # →⋄→→◇→ -← (‎ ♢ ‎) 2662 WHITE DIAMOND SUIT # →◊→→⋄→→◇→ -← (‎ 🝔 ‎) 1F754 ALCHEMICAL SYMBOL FOR SOAP # →◇→ -← (‎ 𑢷 ‎) 118B7 WARANG CITI CAPITAL LETTER BU # →◇→ - -# ᛜ̲ ◇̲ ⍚ - (‎ ᛜ̲ ‎) 16DC 0332 RUNIC LETTER INGWAZ, COMBINING LOW LINE -← (‎ ◇̲ ‎) 25C7 0332 WHITE DIAMOND, COMBINING LOW LINE -← (‎ ⍚ ‎) 235A APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR # →◇̲→ - -# ᛞ ⋈ ⨝ - (‎ ᛞ ‎) 16DE RUNIC LETTER DAGAZ DAEG D -← (‎ ⋈ ‎) 22C8 BOWTIE -← (‎ ⨝ ‎) 2A1D JOIN # →⋈→ - -# ᛦ 𐓐 - (‎ ᛦ ‎) 16E6 RUNIC LETTER LONG-BRANCH-YR -← (‎ 𐓐 ‎) 104D0 OSAGE CAPITAL LETTER KHA - -# ᛨ ↕ - (‎ ᛨ ‎) 16E8 RUNIC LETTER ICELANDIC-YR -← (‎ ↕ ‎) 2195 UP DOWN ARROW - -# ᛯ ⵣ - (‎ ᛯ ‎) 16EF RUNIC TVIMADUR SYMBOL -← (‎ ⵣ ‎) 2D63 TIFINAGH LETTER YAZ - -# អ ឣ - (‎ អ ‎) 17A2 KHMER LETTER QA -← (‎ ឣ ‎) 17A3 KHMER INDEPENDENT VOWEL QAQ - -# ᠵ ᡕ - (‎ ᠵ ‎) 1835 MONGOLIAN LETTER JA -← (‎ ᡕ ‎) 1855 MONGOLIAN LETTER TODO YA - -# ᡜ ᢖ - (‎ ᡜ ‎) 185C MONGOLIAN LETTER TODO DZA -← (‎ ᢖ ‎) 1896 MONGOLIAN LETTER ALI GALI ZA - -# ᣔ ᶺ - (‎ ᣔ ‎) 18D4 CANADIAN SYLLABICS OJIBWAY P -← (‎ ᶺ ‎) 1DBA MODIFIER LETTER SMALL TURNED V - -# ᣖ ᴾ - (‎ ᣖ ‎) 18D6 CANADIAN SYLLABICS OJIBWAY K -← (‎ ᴾ ‎) 1D3E MODIFIER LETTER CAPITAL P - -# ᣟᐞ ᣜ - (‎ ᣜ ‎) 18DC CANADIAN SYLLABICS EASTERN W -← (‎ ᣟᐞ ‎) 18DF 141E CANADIAN SYLLABICS FINAL RAISED DOT, CANADIAN SYLLABICS GLOTTAL STOP - -# ᦞ ᧐ - (‎ ᦞ ‎) 199E NEW TAI LUE LETTER LOW VA -← (‎ ᧐ ‎) 19D0 NEW TAI LUE DIGIT ZERO - -# ᦱ ᧑ - (‎ ᦱ ‎) 19B1 NEW TAI LUE VOWEL SIGN AA -← (‎ ᧑ ‎) 19D1 NEW TAI LUE DIGIT ONE - -# ᩅ ᪀ ᪐ - (‎ ᩅ ‎) 1A45 TAI THAM LETTER WA -← (‎ ᪀ ‎) 1A80 TAI THAM HORA DIGIT ZERO -← (‎ ᪐ ‎) 1A90 TAI THAM THAM DIGIT ZERO - -# ᪨᪨ ᪩ - (‎ ᪨᪨ ‎) 1AA8 1AA8 TAI THAM SIGN KAAN, TAI THAM SIGN KAAN -← (‎ ᪩ ‎) 1AA9 TAI THAM SIGN KAANKUU - -# ᪪᪨ ᪫ - (‎ ᪪᪨ ‎) 1AAA 1AA8 TAI THAM SIGN SATKAAN, TAI THAM SIGN KAAN -← (‎ ᪫ ‎) 1AAB TAI THAM SIGN SATKAANKUU - -# ᬍ ᭒ - (‎ ᬍ ‎) 1B0D BALINESE LETTER LA LENGA -← (‎ ᭒ ‎) 1B52 BALINESE DIGIT TWO - -# ᬑ ᭓ - (‎ ᬑ ‎) 1B11 BALINESE LETTER OKARA -← (‎ ᭓ ‎) 1B53 BALINESE DIGIT THREE - -# ᬨ ᭘ - (‎ ᬨ ‎) 1B28 BALINESE LETTER PA KAPAL -← (‎ ᭘ ‎) 1B58 BALINESE DIGIT EIGHT - -# ᭐ ᭜ - (‎ ᭐ ‎) 1B50 BALINESE DIGIT ZERO -← (‎ ᭜ ‎) 1B5C BALINESE WINDU - -# ᭞᭞ ᭟ - (‎ ᭞᭞ ‎) 1B5E 1B5E BALINESE CARIK SIKI, BALINESE CARIK SIKI -← (‎ ᭟ ‎) 1B5F BALINESE CARIK PAREREN - -# ᰻᰻ ᰼ - (‎ ᰻᰻ ‎) 1C3B 1C3B LEPCHA PUNCTUATION TA-ROL, LEPCHA PUNCTUATION TA-ROL -← (‎ ᰼ ‎) 1C3C LEPCHA PUNCTUATION NYET THYOOM TA-ROL - -# ᱾᱾ ᱿ - (‎ ᱾᱾ ‎) 1C7E 1C7E OL CHIKI PUNCTUATION MUCAAD, OL CHIKI PUNCTUATION MUCAAD -← (‎ ᱿ ‎) 1C7F OL CHIKI PUNCTUATION DOUBLE MUCAAD - -# ᴀ ꭺ - (‎ ᴀ ‎) 1D00 LATIN LETTER SMALL CAPITAL A -← (‎ ꭺ ‎) AB7A CHEROKEE SMALL LETTER GO - -# ᴅ ꭰ - (‎ ᴅ ‎) 1D05 LATIN LETTER SMALL CAPITAL D -← (‎ ꭰ ‎) AB70 CHEROKEE SMALL LETTER A - -# ᴇ ꭼ - (‎ ᴇ ‎) 1D07 LATIN LETTER SMALL CAPITAL E -← (‎ ꭼ ‎) AB7C CHEROKEE SMALL LETTER GV - -# ᴊ ꭻ - (‎ ᴊ ‎) 1D0A LATIN LETTER SMALL CAPITAL J -← (‎ ꭻ ‎) AB7B CHEROKEE SMALL LETTER GU - -# ᴘ ᴩ ꮲ - (‎ ᴘ ‎) 1D18 LATIN LETTER SMALL CAPITAL P -← (‎ ᴩ ‎) 1D29 GREEK LETTER SMALL CAPITAL RHO -← (‎ ꮲ ‎) ABB2 CHEROKEE SMALL LETTER TLV - -# ᴴ ᵸ - (‎ ᴴ ‎) 1D34 MODIFIER LETTER CAPITAL H -← (‎ ᵸ ‎) 1D78 MODIFIER LETTER CYRILLIC EN - -# ᵋ ᶟ - (‎ ᵋ ‎) 1D4B MODIFIER LETTER SMALL OPEN E -← (‎ ᶟ ‎) 1D9F MODIFIER LETTER SMALL REVERSED OPEN E - -# ᵍ ᶢ - (‎ ᵍ ‎) 1D4D MODIFIER LETTER SMALL G -← (‎ ᶢ ‎) 1DA2 MODIFIER LETTER SMALL SCRIPT G - -# ᷟ ⷨ - (‎ ᷟ ‎) 1DDF COMBINING LATIN LETTER SMALL CAPITAL M -← (‎ ⷨ ‎) 2DE8 COMBINING CYRILLIC LETTER EM - -# ⷬ ᷮ - (‎ ᷮ ‎) 1DEE COMBINING LATIN SMALL LETTER P -← (‎ ⷬ ‎) 2DEC COMBINING CYRILLIC LETTER ER - -# ꭑ ṃ - (‎ ṃ ‎) 1E43 LATIN SMALL LETTER M WITH DOT BELOW -← (‎ ꭑ ‎) AB51 LATIN SMALL LETTER TURNED UI - -# ả ẚ - (‎ ẚ ‎) 1E9A LATIN SMALL LETTER A WITH RIGHT HALF RING -← (‎ ả ‎) 1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE - -# ῴ ώ - (‎ ώ ‎) 1F7D GREEK SMALL LETTER OMEGA WITH OXIA -← (‎ ῴ ‎) 1FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - -# ⵗ ⁝ ⋮ ︙ - (‎ ⁝ ‎) 205D TRICOLON -← (‎ ⵗ ‎) 2D57 TIFINAGH LETTER TUAREG YAGH -← (‎ ⋮ ‎) 22EE VERTICAL ELLIPSIS # →︙→ -← (‎ ︙ ‎) FE19 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS - -# ⵂ ⁞ ⦙ ⸽ - (‎ ⁞ ‎) 205E VERTICAL FOUR DOTS -← (‎ ⵂ ‎) 2D42 TIFINAGH LETTER TUAREG YAH -← (‎ ⦙ ‎) 2999 DOTTED FENCE -← (‎ ⸽ ‎) 2E3D VERTICAL SIX DOTS - -# ꝰ ⁹ - (‎ ⁹ ‎) 2079 SUPERSCRIPT NINE -← (‎ ꝰ ‎) A770 MODIFIER LETTER US - -# ₁₀ ⏨ - (‎ ₁₀ ‎) 2081 2080 SUBSCRIPT ONE, SUBSCRIPT ZERO -← (‎ ⏨ ‎) 23E8 DECIMAL EXPONENT SYMBOL - -# ₸ 〒 〶 - (‎ ₸ ‎) 20B8 TENGE SIGN -← (‎ 〒 ‎) 3012 POSTAL MARK -← (‎ 〶 ‎) 3036 CIRCLED POSTAL MARK # →〒→ - -# ⃩ ꙯ - (‎ ⃩ ‎) 20E9 COMBINING WIDE BRIDGE ABOVE -← (‎ ꙯ ‎) A66F COMBINING CYRILLIC VZMET - -# ℗ Ⓟ - (‎ ℗ ‎) 2117 SOUND RECORDING COPYRIGHT -← (‎ Ⓟ ‎) 24C5 CIRCLED LATIN CAPITAL LETTER P - -# ꓨ ⅁ - (‎ ⅁ ‎) 2141 TURNED SANS-SERIF CAPITAL G -← (‎ ꓨ ‎) A4E8 LISU LETTER HHA - -# ꓶ 𐐑 𖼦 ⅂ 𝈕 𝈫 - (‎ ⅂ ‎) 2142 TURNED SANS-SERIF CAPITAL L -← (‎ ꓶ ‎) A4F6 LISU LETTER UH -← (‎ 𐐑 ‎) 10411 DESERET CAPITAL LETTER PEE -← (‎ 𖼦 ‎) 16F26 MIAO LETTER HA -← (‎ 𝈕 ‎) 1D215 GREEK VOCAL NOTATION SYMBOL-22 -← (‎ 𝈫 ‎) 1D22B GREEK INSTRUMENTAL NOTATION SYMBOL-24 # →𝈕→ - -# 𖼀 ⅃ - (‎ ⅃ ‎) 2143 REVERSED SANS-SERIF CAPITAL L -← (‎ 𖼀 ‎) 16F00 MIAO LETTER PA - -# ⅄ 𝈛 - (‎ ⅄ ‎) 2144 TURNED SANS-SERIF CAPITAL Y -← (‎ 𝈛 ‎) 1D21B GREEK VOCAL NOTATION SYMBOL-53 - -# ↞ ⯬ - (‎ ↞ ‎) 219E LEFTWARDS TWO HEADED ARROW -← (‎ ⯬ ‎) 2BEC LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS - -# ↟ ⯭ - (‎ ↟ ‎) 219F UPWARDS TWO HEADED ARROW -← (‎ ⯭ ‎) 2BED UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS - -# ↠ ⯮ - (‎ ↠ ‎) 21A0 RIGHTWARDS TWO HEADED ARROW -← (‎ ⯮ ‎) 2BEE RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS - -# ↡ ⯯ - (‎ ↡ ‎) 21A1 DOWNWARDS TWO HEADED ARROW -← (‎ ⯯ ‎) 2BEF DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS - -# ↲ ↵ - (‎ ↲ ‎) 21B2 DOWNWARDS ARROW WITH TIP LEFTWARDS -← (‎ ↵ ‎) 21B5 DOWNWARDS ARROW WITH CORNER LEFTWARDS - -# 🄎 ↺ - (‎ ↺ ‎) 21BA ANTICLOCKWISE OPEN CIRCLE ARROW -← (‎ 🄎 ‎) 1F10E CIRCLED ANTICLOCKWISE ARROW - -# ⇃ᛚ ⇃↾ ⥯ - (‎ ⇃ᛚ ‎) 21C3 16DA DOWNWARDS HARPOON WITH BARB LEFTWARDS, RUNIC LETTER LAUKAZ LAGU LOGR L -← (‎ ⇃↾ ‎) 21C3 21BE DOWNWARDS HARPOON WITH BARB LEFTWARDS, UPWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ⥯ ‎) 296F DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT # →⇃↾→ - -# ⇃⇂ ⥥ - (‎ ⇃⇂ ‎) 21C3 21C2 DOWNWARDS HARPOON WITH BARB LEFTWARDS, DOWNWARDS HARPOON WITH BARB RIGHTWARDS -← (‎ ⥥ ‎) 2965 DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT - -# ∂ 𞣌 𝛛 𝜕 𝝏 𝞉 𝟃 - (‎ ∂ ‎) 2202 PARTIAL DIFFERENTIAL -← (‎ 𞣌 ‎) 1E8CC MENDE KIKAKUI DIGIT SIX -← (‎ 𝛛 ‎) 1D6DB MATHEMATICAL BOLD PARTIAL DIFFERENTIAL -← (‎ 𝜕 ‎) 1D715 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL -← (‎ 𝝏 ‎) 1D74F MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL -← (‎ 𝞉 ‎) 1D789 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL -← (‎ 𝟃 ‎) 1D7C3 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL - -# ∅ ⌀ - (‎ ∅ ‎) 2205 EMPTY SET -← (‎ ⌀ ‎) 2300 DIAMETER SIGN - -# ∇ 𑢨 𝛁 𝛻 𝜵 𝝯 𝞩 - (‎ ∇ ‎) 2207 NABLA -← (‎ 𑢨 ‎) 118A8 WARANG CITI CAPITAL LETTER E -← (‎ 𝛁 ‎) 1D6C1 MATHEMATICAL BOLD NABLA -← (‎ 𝛻 ‎) 1D6FB MATHEMATICAL ITALIC NABLA -← (‎ 𝜵 ‎) 1D735 MATHEMATICAL BOLD ITALIC NABLA -← (‎ 𝝯 ‎) 1D76F MATHEMATICAL SANS-SERIF BOLD NABLA -← (‎ 𝞩 ‎) 1D7A9 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA - -# ∇̈ ⍢ - (‎ ∇̈ ‎) 2207 0308 NABLA, COMBINING DIAERESIS -← (‎ ⍢ ‎) 2362 APL FUNCTIONAL SYMBOL DEL DIAERESIS - -# ∇̴ ⍫ - (‎ ∇̴ ‎) 2207 0334 NABLA, COMBINING TILDE OVERLAY -← (‎ ⍫ ‎) 236B APL FUNCTIONAL SYMBOL DEL TILDE - -# ∎ █ ■ - (‎ ∎ ‎) 220E END OF PROOF -← (‎ █ ‎) 2588 FULL BLOCK # →■→ -← (‎ ■ ‎) 25A0 BLACK SQUARE - -# ∐ ⨿ - (‎ ∐ ‎) 2210 N-ARY COPRODUCT -← (‎ ⨿ ‎) 2A3F AMALGAMATION OR COPRODUCT - -# ∠ 𞣈 - (‎ ∠ ‎) 2220 ANGLE -← (‎ 𞣈 ‎) 1E8C8 MENDE KIKAKUI DIGIT TWO - -# ∧ ⋀ - (‎ ∧ ‎) 2227 LOGICAL AND -← (‎ ⋀ ‎) 22C0 N-ARY LOGICAL AND - -# ∮∮ ∯ - (‎ ∮∮ ‎) 222E 222E CONTOUR INTEGRAL, CONTOUR INTEGRAL -← (‎ ∯ ‎) 222F SURFACE INTEGRAL - -# ∮∮∮ ∰ - (‎ ∮∮∮ ‎) 222E 222E 222E CONTOUR INTEGRAL, CONTOUR INTEGRAL, CONTOUR INTEGRAL -← (‎ ∰ ‎) 2230 VOLUME INTEGRAL - -# ∴ ⸫ - (‎ ∴ ‎) 2234 THEREFORE -← (‎ ⸫ ‎) 2E2B ONE DOT OVER TWO DOTS PUNCTUATION - -# ∵ ⸪ - (‎ ∵ ‎) 2235 BECAUSE -← (‎ ⸪ ‎) 2E2A TWO DOTS OVER ONE DOT PUNCTUATION - -# ∷ ⸬ - (‎ ∷ ‎) 2237 PROPORTION -← (‎ ⸬ ‎) 2E2C SQUARED FOUR DOT PUNCTUATION - -# ≈ 𑇞 - (‎ ≈ ‎) 2248 ALMOST EQUAL TO -← (‎ 𑇞 ‎) 111DE SHARADA SECTION MARK-1 - -# ≏ ♎ 🝞 - (‎ ≏ ‎) 224F DIFFERENCE BETWEEN -← (‎ ♎ ‎) 264E LIBRA -← (‎ 🝞 ‎) 1F75E ALCHEMICAL SYMBOL FOR SUBLIMATION # →♎→ - -# ≡ ≣ - (‎ ≡ ‎) 2261 IDENTICAL TO -← (‎ ≣ ‎) 2263 STRICTLY EQUIVALENT TO - -# ⊍ ⨃ - (‎ ⊍ ‎) 228D MULTISET MULTIPLICATION -← (‎ ⨃ ‎) 2A03 N-ARY UNION OPERATOR WITH DOT - -# ⊎ ⨄ - (‎ ⊎ ‎) 228E MULTISET UNION -← (‎ ⨄ ‎) 2A04 N-ARY UNION OPERATOR WITH PLUS - -# ⊏ 𝈸 - (‎ ⊏ ‎) 228F SQUARE IMAGE OF -← (‎ 𝈸 ‎) 1D238 GREEK INSTRUMENTAL NOTATION SYMBOL-43 - -# ⊐ 𝈹 - (‎ ⊐ ‎) 2290 SQUARE ORIGINAL OF -← (‎ 𝈹 ‎) 1D239 GREEK INSTRUMENTAL NOTATION SYMBOL-45 - -# ⊓ ⨅ - (‎ ⊓ ‎) 2293 SQUARE CAP -← (‎ ⨅ ‎) 2A05 N-ARY SQUARE INTERSECTION OPERATOR - -# ⊔ ⨆ - (‎ ⊔ ‎) 2294 SQUARE CUP -← (‎ ⨆ ‎) 2A06 N-ARY SQUARE UNION OPERATOR - -# 𐊨 ⊕ ⨁ 🜨 Ꚛ - (‎ ⊕ ‎) 2295 CIRCLED PLUS -← (‎ 𐊨 ‎) 102A8 CARIAN LETTER Q -← (‎ ⨁ ‎) 2A01 N-ARY CIRCLED PLUS OPERATOR -← (‎ 🜨 ‎) 1F728 ALCHEMICAL SYMBOL FOR VERDIGRIS -← (‎ Ꚛ ‎) A69A CYRILLIC CAPITAL LETTER CROSSED O - -# ⊗ ⨂ - (‎ ⊗ ‎) 2297 CIRCLED TIMES -← (‎ ⨂ ‎) 2A02 N-ARY CIRCLED TIMES OPERATOR - -# ⊛ ⍟ - (‎ ⊛ ‎) 229B CIRCLED ASTERISK OPERATOR -← (‎ ⍟ ‎) 235F APL FUNCTIONAL SYMBOL CIRCLE STAR - -# ⊠ 🝱 - (‎ ⊠ ‎) 22A0 SQUARED TIMES -← (‎ 🝱 ‎) 1F771 ALCHEMICAL SYMBOL FOR MONTH - -# ⊡ 🝕 - (‎ ⊡ ‎) 22A1 SQUARED DOT OPERATOR -← (‎ 🝕 ‎) 1F755 ALCHEMICAL SYMBOL FOR URINE - -# ꓕ ⊥ ⟂ 𝈜 Ʇ - (‎ ⊥ ‎) 22A5 UP TACK -← (‎ ꓕ ‎) A4D5 LISU LETTER THA -← (‎ ⟂ ‎) 27C2 PERPENDICULAR -← (‎ 𝈜 ‎) 1D21C GREEK VOCAL NOTATION SYMBOL-54 # →Ʇ→→ꓕ→ -← (‎ Ʇ ‎) A7B1 LATIN CAPITAL LETTER TURNED T # →ꓕ→ - -# ⊲ ◁ - (‎ ⊲ ‎) 22B2 NORMAL SUBGROUP OF -← (‎ ◁ ‎) 25C1 WHITE LEFT-POINTING TRIANGLE - -# ⊳ ▷ - (‎ ⊳ ‎) 22B3 CONTAINS AS NORMAL SUBGROUP -← (‎ ▷ ‎) 25B7 WHITE RIGHT-POINTING TRIANGLE - -# ⋆̈ ⍣ - (‎ ⋆̈ ‎) 22C6 0308 STAR OPERATOR, COMBINING DIAERESIS -← (‎ ⍣ ‎) 2363 APL FUNCTIONAL SYMBOL STAR DIAERESIS - -# ⌇ ︴ - (‎ ⌇ ‎) 2307 WAVY LINE -← (‎ ︴ ‎) FE34 PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - -# ⌒ ◠ - (‎ ⌒ ‎) 2312 ARC -← (‎ ◠ ‎) 25E0 UPPER HALF CIRCLE - -# ⌙ ⨽ - (‎ ⌙ ‎) 2319 TURNED NOT SIGN -← (‎ ⨽ ‎) 2A3D RIGHTHAND INTERIOR PRODUCT - -# ⌤ ⌥ - (‎ ⌤ ‎) 2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS -← (‎ ⌥ ‎) 2325 OPTION KEY - -# ❬ く 𡿨 ⟨ 〈 ㇛ 〈 - (‎ 〈 ‎) 2329 LEFT-POINTING ANGLE BRACKET -← (‎ ❬ ‎) 276C MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →〈→ -← (‎ く ‎) 304F HIRAGANA LETTER KU # →㇛→→⟨→ -← (‎ 𡿨 ‎) 21FE8 CJK UNIFIED IDEOGRAPH-21FE8 # →㇛→→⟨→ -← (‎ ⟨ ‎) 27E8 MATHEMATICAL LEFT ANGLE BRACKET -← (‎ 〈 ‎) 3008 LEFT ANGLE BRACKET -← (‎ ㇛ ‎) 31DB CJK STROKE PD # →⟨→ - -# ❭ ⟩ 〉 〉 - (‎ 〉 ‎) 232A RIGHT-POINTING ANGLE BRACKET -← (‎ ❭ ‎) 276D MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT # →〉→ -← (‎ ⟩ ‎) 27E9 MATHEMATICAL RIGHT ANGLE BRACKET -← (‎ 〉 ‎) 3009 RIGHT ANGLE BRACKET - -# ⌻ ⧇ - (‎ ⌻ ‎) 233B APL FUNCTIONAL SYMBOL QUAD JOT -← (‎ ⧇ ‎) 29C7 SQUARED SMALL CIRCLE - -# ⌾ ◎ ⦾ - (‎ ⌾ ‎) 233E APL FUNCTIONAL SYMBOL CIRCLE JOT -← (‎ ◎ ‎) 25CE BULLSEYE # →⦾→ -← (‎ ⦾ ‎) 29BE CIRCLED WHITE BULLET - -# 〼 ⍁ ⧄ - (‎ ⍁ ‎) 2341 APL FUNCTIONAL SYMBOL QUAD SLASH -← (‎ 〼 ‎) 303C MASU MARK # →⧄→ -← (‎ ⧄ ‎) 29C4 SQUARED RISING DIAGONAL SLASH - -# ⍂ ⧅ - (‎ ⍂ ‎) 2342 APL FUNCTIONAL SYMBOL QUAD BACKSLASH -← (‎ ⧅ ‎) 29C5 SQUARED FALLING DIAGONAL SLASH - -# ⍉ ⦰ - (‎ ⍉ ‎) 2349 APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH -← (‎ ⦰ ‎) 29B0 REVERSED EMPTY SET - -# ⍋ ⏃ - (‎ ⍋ ‎) 234B APL FUNCTIONAL SYMBOL DELTA STILE -← (‎ ⏃ ‎) 23C3 DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE - -# ⍎ ⏂ - (‎ ⍎ ‎) 234E APL FUNCTIONAL SYMBOL DOWN TACK JOT -← (‎ ⏂ ‎) 23C2 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE - -# ⍕ ⏁ - (‎ ⍕ ‎) 2355 APL FUNCTIONAL SYMBOL UP TACK JOT -← (‎ ⏁ ‎) 23C1 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE - -# ⍭ ⏆ - (‎ ⍭ ‎) 236D APL FUNCTIONAL SYMBOL STILE TILDE -← (‎ ⏆ ‎) 23C6 DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE - -# ⎈ ☸ - (‎ ⎈ ‎) 2388 HELM SYMBOL -← (‎ ☸ ‎) 2638 WHEEL OF DHARMA - -# ⏜ ︵ - (‎ ⏜ ‎) 23DC TOP PARENTHESIS -← (‎ ︵ ‎) FE35 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - -# ⏝ ︶ - (‎ ⏝ ‎) 23DD BOTTOM PARENTHESIS -← (‎ ︶ ‎) FE36 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - -# ⏞ ︷ - (‎ ⏞ ‎) 23DE TOP CURLY BRACKET -← (‎ ︷ ‎) FE37 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - -# ⏟ ︸ - (‎ ⏟ ‎) 23DF BOTTOM CURLY BRACKET -← (‎ ︸ ‎) FE38 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - -# ⏠ ︹ - (‎ ⏠ ‎) 23E0 TOP TORTOISE SHELL BRACKET -← (‎ ︹ ‎) FE39 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - -# ⏡ ︺ - (‎ ⏡ ‎) 23E1 BOTTOM TORTOISE SHELL BRACKET -← (‎ ︺ ‎) FE3A PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - -# ⏥ ▱ - (‎ ⏥ ‎) 23E5 FLATNESS -← (‎ ▱ ‎) 25B1 WHITE PARALLELOGRAM - -# ⏻ ⏼ - (‎ ⏻ ‎) 23FB POWER SYMBOL -← (‎ ⏼ ‎) 23FC POWER ON-OFF SYMBOL - -# ☾ 🌘 ⏾ - (‎ ⏾ ‎) 23FE POWER SLEEP SYMBOL -← (‎ ☾ ‎) 263E LAST QUARTER MOON -← (‎ 🌘 ‎) 1F318 WANING CRESCENT MOON SYMBOL # →☾→ - -# ➀ ① - (‎ ① ‎) 2460 CIRCLED DIGIT ONE -← (‎ ➀ ‎) 2780 DINGBAT CIRCLED SANS-SERIF DIGIT ONE - -# ➁ ② - (‎ ② ‎) 2461 CIRCLED DIGIT TWO -← (‎ ➁ ‎) 2781 DINGBAT CIRCLED SANS-SERIF DIGIT TWO - -# ➂ ③ - (‎ ③ ‎) 2462 CIRCLED DIGIT THREE -← (‎ ➂ ‎) 2782 DINGBAT CIRCLED SANS-SERIF DIGIT THREE - -# ➃ ④ - (‎ ④ ‎) 2463 CIRCLED DIGIT FOUR -← (‎ ➃ ‎) 2783 DINGBAT CIRCLED SANS-SERIF DIGIT FOUR - -# ➄ ⑤ - (‎ ⑤ ‎) 2464 CIRCLED DIGIT FIVE -← (‎ ➄ ‎) 2784 DINGBAT CIRCLED SANS-SERIF DIGIT FIVE - -# ➅ ⑥ - (‎ ⑥ ‎) 2465 CIRCLED DIGIT SIX -← (‎ ➅ ‎) 2785 DINGBAT CIRCLED SANS-SERIF DIGIT SIX - -# ➆ ⑦ - (‎ ⑦ ‎) 2466 CIRCLED DIGIT SEVEN -← (‎ ➆ ‎) 2786 DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN - -# ➇ ⑧ - (‎ ⑧ ‎) 2467 CIRCLED DIGIT EIGHT -← (‎ ➇ ‎) 2787 DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT - -# ➈ ⑨ - (‎ ⑨ ‎) 2468 CIRCLED DIGIT NINE -← (‎ ➈ ‎) 2788 DINGBAT CIRCLED SANS-SERIF DIGIT NINE - -# ➉ ⑩ - (‎ ⑩ ‎) 2469 CIRCLED NUMBER TEN -← (‎ ➉ ‎) 2789 DINGBAT CIRCLED SANS-SERIF NUMBER TEN - -# Ⓘ ⓛ - (‎ Ⓘ ‎) 24BE CIRCLED LATIN CAPITAL LETTER I -← (‎ ⓛ ‎) 24DB CIRCLED LATIN SMALL LETTER L - -# 🄍 ⓪ - (‎ ⓪ ‎) 24EA CIRCLED DIGIT ZERO -← (‎ 🄍 ‎) 1F10D CIRCLED ZERO WITH SLASH - -# │ ┃ ︱ | - (‎ │ ‎) 2502 BOX DRAWINGS LIGHT VERTICAL -← (‎ ┃ ‎) 2503 BOX DRAWINGS HEAVY VERTICAL -← (‎ ︱ ‎) FE31 PRESENTATION FORM FOR VERTICAL EM DASH # →|→ -← (‎ | ‎) FF5C FULLWIDTH VERTICAL LINE - -# ┌ ┏ - (‎ ┌ ‎) 250C BOX DRAWINGS LIGHT DOWN AND RIGHT -← (‎ ┏ ‎) 250F BOX DRAWINGS HEAVY DOWN AND RIGHT - -# ├ ┣ - (‎ ├ ‎) 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT -← (‎ ┣ ‎) 2523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT - -# ▌ ▐ - (‎ ▌ ‎) 258C LEFT HALF BLOCK -← (‎ ▐ ‎) 2590 RIGHT HALF BLOCK - -# ▖ ▗ - (‎ ▖ ‎) 2596 QUADRANT LOWER LEFT -← (‎ ▗ ‎) 2597 QUADRANT LOWER RIGHT - -# ▘ ▝ - (‎ ▘ ‎) 2598 QUADRANT UPPER LEFT -← (‎ ▝ ‎) 259D QUADRANT UPPER RIGHT - -# □ ☐ - (‎ □ ‎) 25A1 WHITE SQUARE -← (‎ ☐ ‎) 2610 BALLOT BOX - -# ▪ ■ - (‎ ▪ ‎) 25AA BLACK SMALL SQUARE -← (‎ ■ ‎) FFED HALFWIDTH BLACK SQUARE - -# ▶ ▸ ► - (‎ ▶ ‎) 25B6 BLACK RIGHT-POINTING TRIANGLE -← (‎ ▸ ‎) 25B8 BLACK RIGHT-POINTING SMALL TRIANGLE # →►→ -← (‎ ► ‎) 25BA BLACK RIGHT-POINTING POINTER - -# 𐊼 ▽ 𝈔 🜄 - (‎ ▽ ‎) 25BD WHITE DOWN-POINTING TRIANGLE -← (‎ 𐊼 ‎) 102BC CARIAN LETTER K -← (‎ 𝈔 ‎) 1D214 GREEK VOCAL NOTATION SYMBOL-21 -← (‎ 🜄 ‎) 1F704 ALCHEMICAL SYMBOL FOR WATER - -# 𐦞 𓋹 ☥ - (‎ ☥ ‎) 2625 ANKH -← (‎ 𐦞 ‎) 1099E MEROITIC HIEROGLYPHIC SYMBOL VIDJ -← (‎ 𓋹 ‎) 132F9 EGYPTIAN HIEROGLYPH S034 - -# ☧ ⳩ - (‎ ☧ ‎) 2627 CHI RHO -← (‎ ⳩ ‎) 2CE9 COPTIC SYMBOL KHI RO - -# ☩ 🜊 - (‎ ☩ ‎) 2629 CROSS OF JERUSALEM -← (‎ 🜊 ‎) 1F70A ALCHEMICAL SYMBOL FOR VINEGAR - -# Ⲷ ☰ - (‎ ☰ ‎) 2630 TRIGRAM FOR HEAVEN -← (‎ Ⲷ ‎) 2CB6 COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE - -# ☽ 🌒 🌙 - (‎ ☽ ‎) 263D FIRST QUARTER MOON -← (‎ 🌒 ‎) 1F312 WAXING CRESCENT MOON SYMBOL -← (‎ 🌙 ‎) 1F319 CRESCENT MOON - -# 𝅘𝅥 ♩ - (‎ ♩ ‎) 2669 QUARTER NOTE -← (‎ 𝅘𝅥 ‎) 1D158 1D165 MUSICAL SYMBOL NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM - -# 𝅘𝅥𝅮 ♪ - (‎ ♪ ‎) 266A EIGHTH NOTE -← (‎ 𝅘𝅥𝅮 ‎) 1D158 1D165 1D16E MUSICAL SYMBOL NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM, MUSICAL SYMBOL COMBINING FLAG-1 - -# ⟦ 〚 - (‎ ⟦ ‎) 27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET -← (‎ 〚 ‎) 301A LEFT WHITE SQUARE BRACKET - -# ⟧ 〛 - (‎ ⟧ ‎) 27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET -← (‎ 〛 ‎) 301B RIGHT WHITE SQUARE BRACKET - -# ⦚ ⧙ - (‎ ⦚ ‎) 299A VERTICAL ZIGZAG LINE -← (‎ ⧙ ‎) 29D9 RIGHT WIGGLY FENCE - -# 𐋀 ⧖ - (‎ ⧖ ‎) 29D6 WHITE HOURGLASS -← (‎ 𐋀 ‎) 102C0 CARIAN LETTER G - -# ⧟ 🜺 - (‎ ⧟ ‎) 29DF DOUBLE-ENDED MULTIMAP -← (‎ 🜺 ‎) 1F73A ALCHEMICAL SYMBOL FOR ARSENIC - -# ⨟ ⨾ - (‎ ⨟ ‎) 2A1F Z NOTATION SCHEMA COMPOSITION -← (‎ ⨾ ‎) 2A3E Z NOTATION RELATIONAL COMPOSITION - -# ⰿ ꦒ - (‎ ⰿ ‎) 2C3F GLAGOLITIC SMALL LETTER MYSLITE -← (‎ ꦒ ‎) A992 JAVANESE LETTER GA - -# Ɒ 𐐟 - (‎ Ɒ ‎) 2C70 LATIN CAPITAL LETTER TURNED ALPHA -← (‎ 𐐟 ‎) 1041F DESERET CAPITAL LETTER ESH - -# ⱶ ꮀ - (‎ ⱶ ‎) 2C76 LATIN SMALL LETTER HALF H -← (‎ ꮀ ‎) AB80 CHEROKEE SMALL LETTER HO - -# ⳨ 𐆠 - (‎ ⳨ ‎) 2CE8 COPTIC SYMBOL TAU RO -← (‎ 𐆠 ‎) 101A0 GREEK SYMBOL TAU RHO - -# ⵀ 𐊸 - (‎ ⵀ ‎) 2D40 TIFINAGH LETTER YAH -← (‎ 𐊸 ‎) 102B8 CARIAN LETTER SS - -# 乛 ⺂ ㇖ - (‎ ⺂ ‎) 2E82 CJK RADICAL SECOND ONE -← (‎ 乛 ‎) 4E5B CJK UNIFIED IDEOGRAPH-4E5B # →㇖→ -← (‎ ㇖ ‎) 31D6 CJK STROKE HG - -# 乚 ⺃ ㇟ - (‎ ⺃ ‎) 2E83 CJK RADICAL SECOND TWO -← (‎ 乚 ‎) 4E5A CJK UNIFIED IDEOGRAPH-4E5A -← (‎ ㇟ ‎) 31DF CJK STROKE SWG - -# 亻 イ ⺅ - (‎ ⺅ ‎) 2E85 CJK RADICAL PERSON -← (‎ 亻 ‎) 4EBB CJK UNIFIED IDEOGRAPH-4EBB -← (‎ イ ‎) 30A4 KATAKANA LETTER I - -# 刂 ⺉ - (‎ ⺉ ‎) 2E89 CJK RADICAL KNIFE TWO -← (‎ 刂 ‎) 5202 CJK UNIFIED IDEOGRAPH-5202 - -# 㔾 ⺋ - (‎ ⺋ ‎) 2E8B CJK RADICAL SEAL -← (‎ 㔾 ‎) 353E CJK UNIFIED IDEOGRAPH-353E - -# 兀 ⺎ 兀 - (‎ ⺎ ‎) 2E8E CJK RADICAL LAME ONE -← (‎ 兀 ‎) 5140 CJK UNIFIED IDEOGRAPH-5140 -← (‎ 兀 ‎) FA0C CJK COMPATIBILITY IDEOGRAPH-FA0C - -# 尣 ⺏ - (‎ ⺏ ‎) 2E8F CJK RADICAL LAME TWO -← (‎ 尣 ‎) 5C23 CJK UNIFIED IDEOGRAPH-5C23 - -# 尢 ⺐ 尢 ⼪ - (‎ ⺐ ‎) 2E90 CJK RADICAL LAME THREE -← (‎ 尢 ‎) 5C22 CJK UNIFIED IDEOGRAPH-5C22 -← (‎ 尢 ‎) 2F875 CJK COMPATIBILITY IDEOGRAPH-2F875 # →尢→ -← (‎ ⼪ ‎) 2F2A KANGXI RADICAL LAME - -# 巳 ⺒ - (‎ ⺒ ‎) 2E92 CJK RADICAL SNAKE -← (‎ 巳 ‎) 5DF3 CJK UNIFIED IDEOGRAPH-5DF3 - -# 幺 ⺓ ⼳ - (‎ ⺓ ‎) 2E93 CJK RADICAL THREAD -← (‎ 幺 ‎) 5E7A CJK UNIFIED IDEOGRAPH-5E7A -← (‎ ⼳ ‎) 2F33 KANGXI RADICAL SHORT THREAD - -# 彑 ⺔ - (‎ ⺔ ‎) 2E94 CJK RADICAL SNOUT ONE -← (‎ 彑 ‎) 5F51 CJK UNIFIED IDEOGRAPH-5F51 - -# 忄 ⺖ - (‎ ⺖ ‎) 2E96 CJK RADICAL HEART ONE -← (‎ 忄 ‎) 5FC4 CJK UNIFIED IDEOGRAPH-5FC4 - -# 㣺 ⺗ - (‎ ⺗ ‎) 2E97 CJK RADICAL HEART TWO -← (‎ 㣺 ‎) 38FA CJK UNIFIED IDEOGRAPH-38FA - -# 扌 ⺘ - (‎ ⺘ ‎) 2E98 CJK RADICAL HAND -← (‎ 扌 ‎) 624C CJK UNIFIED IDEOGRAPH-624C - -# 攵 ⺙ - (‎ ⺙ ‎) 2E99 CJK RADICAL RAP -← (‎ 攵 ‎) 6535 CJK UNIFIED IDEOGRAPH-6535 - -# 旡 ⺛ - (‎ ⺛ ‎) 2E9B CJK RADICAL CHOKE -← (‎ 旡 ‎) 65E1 CJK UNIFIED IDEOGRAPH-65E1 - -# 歺 ⺞ - (‎ ⺞ ‎) 2E9E CJK RADICAL DEATH -← (‎ 歺 ‎) 6B7A CJK UNIFIED IDEOGRAPH-6B7A - -# 母 ⺟ - (‎ ⺟ ‎) 2E9F CJK RADICAL MOTHER -← (‎ 母 ‎) 6BCD CJK UNIFIED IDEOGRAPH-6BCD - -# 民 ⺠ - (‎ ⺠ ‎) 2EA0 CJK RADICAL CIVILIAN -← (‎ 民 ‎) 6C11 CJK UNIFIED IDEOGRAPH-6C11 - -# 氵 ⺡ - (‎ ⺡ ‎) 2EA1 CJK RADICAL WATER ONE -← (‎ 氵 ‎) 6C35 CJK UNIFIED IDEOGRAPH-6C35 - -# 氺 ⺢ - (‎ ⺢ ‎) 2EA2 CJK RADICAL WATER TWO -← (‎ 氺 ‎) 6C3A CJK UNIFIED IDEOGRAPH-6C3A - -# 灬 ⺣ - (‎ ⺣ ‎) 2EA3 CJK RADICAL FIRE -← (‎ 灬 ‎) 706C CJK UNIFIED IDEOGRAPH-706C - -# 爫 ⺤ 爫 - (‎ ⺤ ‎) 2EA4 CJK RADICAL PAW ONE -← (‎ 爫 ‎) 722B CJK UNIFIED IDEOGRAPH-722B -← (‎ 爫 ‎) FA49 CJK COMPATIBILITY IDEOGRAPH-FA49 - -# 丬 ⺦ - (‎ ⺦ ‎) 2EA6 CJK RADICAL SIMPLIFIED HALF TREE TRUNK -← (‎ 丬 ‎) 4E2C CJK UNIFIED IDEOGRAPH-4E2C - -# 犭 ⺨ - (‎ ⺨ ‎) 2EA8 CJK RADICAL DOG -← (‎ 犭 ‎) 72AD CJK UNIFIED IDEOGRAPH-72AD - -# 罒 ⺫ ⺲ - (‎ ⺫ ‎) 2EAB CJK RADICAL EYE -← (‎ 罒 ‎) 7F52 CJK UNIFIED IDEOGRAPH-7F52 -← (‎ ⺲ ‎) 2EB2 CJK RADICAL NET TWO - -# 礻 ⺭ - (‎ ⺭ ‎) 2EAD CJK RADICAL SPIRIT TWO -← (‎ 礻 ‎) 793B CJK UNIFIED IDEOGRAPH-793B - -# 糹 ⺯ - (‎ ⺯ ‎) 2EAF CJK RADICAL SILK -← (‎ 糹 ‎) 7CF9 CJK UNIFIED IDEOGRAPH-7CF9 - -# 罓 ⺱ - (‎ ⺱ ‎) 2EB1 CJK RADICAL NET ONE -← (‎ 罓 ‎) 7F53 CJK UNIFIED IDEOGRAPH-7F53 - -# 耂 ⺹ - (‎ ⺹ ‎) 2EB9 CJK RADICAL OLD -← (‎ 耂 ‎) 8002 CJK UNIFIED IDEOGRAPH-8002 - -# 肀 ⺺ - (‎ ⺺ ‎) 2EBA CJK RADICAL BRUSH ONE -← (‎ 肀 ‎) 8080 CJK UNIFIED IDEOGRAPH-8080 - -# 艹 ⺾ ⺿ ⻀ 艹 艹 - (‎ ⺾ ‎) 2EBE CJK RADICAL GRASS ONE -← (‎ 艹 ‎) 8279 CJK UNIFIED IDEOGRAPH-8279 -← (‎ ⺿ ‎) 2EBF CJK RADICAL GRASS TWO # →艹→→艹→ -← (‎ ⻀ ‎) 2EC0 CJK RADICAL GRASS THREE # →艹→→艹→ -← (‎ 艹 ‎) FA5D CJK COMPATIBILITY IDEOGRAPH-FA5D # →艹→ -← (‎ 艹 ‎) FA5E CJK COMPATIBILITY IDEOGRAPH-FA5E # →艹→ - -# 虎 ⻁ - (‎ ⻁ ‎) 2EC1 CJK RADICAL TIGER -← (‎ 虎 ‎) 864E CJK UNIFIED IDEOGRAPH-864E - -# 衤 ⻂ - (‎ ⻂ ‎) 2EC2 CJK RADICAL CLOTHES -← (‎ 衤 ‎) 8864 CJK UNIFIED IDEOGRAPH-8864 - -# 覀 ⻃ - (‎ ⻃ ‎) 2EC3 CJK RADICAL WEST ONE -← (‎ 覀 ‎) 8980 CJK UNIFIED IDEOGRAPH-8980 - -# 西 ⻄ - (‎ ⻄ ‎) 2EC4 CJK RADICAL WEST TWO -← (‎ 西 ‎) 897F CJK UNIFIED IDEOGRAPH-897F - -# 见 ⻅ - (‎ ⻅ ‎) 2EC5 CJK RADICAL C-SIMPLIFIED SEE -← (‎ 见 ‎) 89C1 CJK UNIFIED IDEOGRAPH-89C1 - -# 讠 ⻈ - (‎ ⻈ ‎) 2EC8 CJK RADICAL C-SIMPLIFIED SPEECH -← (‎ 讠 ‎) 8BA0 CJK UNIFIED IDEOGRAPH-8BA0 - -# 贝 ⻉ - (‎ ⻉ ‎) 2EC9 CJK RADICAL C-SIMPLIFIED SHELL -← (‎ 贝 ‎) 8D1D CJK UNIFIED IDEOGRAPH-8D1D - -# 车 ⻋ - (‎ ⻋ ‎) 2ECB CJK RADICAL C-SIMPLIFIED CART -← (‎ 车 ‎) 8F66 CJK UNIFIED IDEOGRAPH-8F66 - -# 辶 ⻌ ⻍ 辶 - (‎ ⻌ ‎) 2ECC CJK RADICAL SIMPLIFIED WALK -← (‎ 辶 ‎) 8FB6 CJK UNIFIED IDEOGRAPH-8FB6 -← (‎ ⻍ ‎) 2ECD CJK RADICAL WALK ONE # →辶→ -← (‎ 辶 ‎) FA66 CJK COMPATIBILITY IDEOGRAPH-FA66 - -# 阝 ⻏ ⻖ - (‎ ⻏ ‎) 2ECF CJK RADICAL CITY -← (‎ 阝 ‎) 961D CJK UNIFIED IDEOGRAPH-961D -← (‎ ⻖ ‎) 2ED6 CJK RADICAL MOUND TWO - -# 钅 ⻐ - (‎ ⻐ ‎) 2ED0 CJK RADICAL C-SIMPLIFIED GOLD -← (‎ 钅 ‎) 9485 CJK UNIFIED IDEOGRAPH-9485 - -# 長 ⻑ ⾧ - (‎ ⻑ ‎) 2ED1 CJK RADICAL LONG ONE -← (‎ 長 ‎) 9577 CJK UNIFIED IDEOGRAPH-9577 -← (‎ ⾧ ‎) 2FA7 KANGXI RADICAL LONG - -# 镸 ⻒ - (‎ ⻒ ‎) 2ED2 CJK RADICAL LONG TWO -← (‎ 镸 ‎) 9578 CJK UNIFIED IDEOGRAPH-9578 - -# 长 ⻓ - (‎ ⻓ ‎) 2ED3 CJK RADICAL C-SIMPLIFIED LONG -← (‎ 长 ‎) 957F CJK UNIFIED IDEOGRAPH-957F - -# 门 ⻔ - (‎ ⻔ ‎) 2ED4 CJK RADICAL C-SIMPLIFIED GATE -← (‎ 门 ‎) 95E8 CJK UNIFIED IDEOGRAPH-95E8 - -# 青 ⻘ - (‎ ⻘ ‎) 2ED8 CJK RADICAL BLUE -← (‎ 青 ‎) 9752 CJK UNIFIED IDEOGRAPH-9752 - -# 韦 ⻙ - (‎ ⻙ ‎) 2ED9 CJK RADICAL C-SIMPLIFIED TANNED LEATHER -← (‎ 韦 ‎) 97E6 CJK UNIFIED IDEOGRAPH-97E6 - -# 页 ⻚ - (‎ ⻚ ‎) 2EDA CJK RADICAL C-SIMPLIFIED LEAF -← (‎ 页 ‎) 9875 CJK UNIFIED IDEOGRAPH-9875 - -# 风 ⻛ - (‎ ⻛ ‎) 2EDB CJK RADICAL C-SIMPLIFIED WIND -← (‎ 风 ‎) 98CE CJK UNIFIED IDEOGRAPH-98CE - -# 飞 ⻜ - (‎ ⻜ ‎) 2EDC CJK RADICAL C-SIMPLIFIED FLY -← (‎ 飞 ‎) 98DE CJK UNIFIED IDEOGRAPH-98DE - -# 食 ⻝ ⾷ - (‎ ⻝ ‎) 2EDD CJK RADICAL EAT ONE -← (‎ 食 ‎) 98DF CJK UNIFIED IDEOGRAPH-98DF -← (‎ ⾷ ‎) 2FB7 KANGXI RADICAL EAT - -# 飠 ⻟ - (‎ ⻟ ‎) 2EDF CJK RADICAL EAT THREE -← (‎ 飠 ‎) 98E0 CJK UNIFIED IDEOGRAPH-98E0 - -# 饣 ⻠ - (‎ ⻠ ‎) 2EE0 CJK RADICAL C-SIMPLIFIED EAT -← (‎ 饣 ‎) 9963 CJK UNIFIED IDEOGRAPH-9963 - -# 马 ⻢ - (‎ ⻢ ‎) 2EE2 CJK RADICAL C-SIMPLIFIED HORSE -← (‎ 马 ‎) 9A6C CJK UNIFIED IDEOGRAPH-9A6C - -# 鬼 ⻤ ⿁ - (‎ ⻤ ‎) 2EE4 CJK RADICAL GHOST -← (‎ 鬼 ‎) 9B3C CJK UNIFIED IDEOGRAPH-9B3C -← (‎ ⿁ ‎) 2FC1 KANGXI RADICAL GHOST - -# 鱼 ⻥ - (‎ ⻥ ‎) 2EE5 CJK RADICAL C-SIMPLIFIED FISH -← (‎ 鱼 ‎) 9C7C CJK UNIFIED IDEOGRAPH-9C7C - -# 麦 ⻨ - (‎ ⻨ ‎) 2EE8 CJK RADICAL SIMPLIFIED WHEAT -← (‎ 麦 ‎) 9EA6 CJK UNIFIED IDEOGRAPH-9EA6 - -# 黄 ⻩ - (‎ ⻩ ‎) 2EE9 CJK RADICAL SIMPLIFIED YELLOW -← (‎ 黄 ‎) 9EC4 CJK UNIFIED IDEOGRAPH-9EC4 - -# 斉 ⻫ - (‎ ⻫ ‎) 2EEB CJK RADICAL J-SIMPLIFIED EVEN -← (‎ 斉 ‎) 6589 CJK UNIFIED IDEOGRAPH-6589 - -# 齐 ⻬ - (‎ ⻬ ‎) 2EEC CJK RADICAL C-SIMPLIFIED EVEN -← (‎ 齐 ‎) 9F50 CJK UNIFIED IDEOGRAPH-9F50 - -# 歯 ⻭ - (‎ ⻭ ‎) 2EED CJK RADICAL J-SIMPLIFIED TOOTH -← (‎ 歯 ‎) 6B6F CJK UNIFIED IDEOGRAPH-6B6F - -# 齿 ⻮ - (‎ ⻮ ‎) 2EEE CJK RADICAL C-SIMPLIFIED TOOTH -← (‎ 齿 ‎) 9F7F CJK UNIFIED IDEOGRAPH-9F7F - -# 竜 ⻯ - (‎ ⻯ ‎) 2EEF CJK RADICAL J-SIMPLIFIED DRAGON -← (‎ 竜 ‎) 7ADC CJK UNIFIED IDEOGRAPH-7ADC - -# 龙 ⻰ - (‎ ⻰ ‎) 2EF0 CJK RADICAL C-SIMPLIFIED DRAGON -← (‎ 龙 ‎) 9F99 CJK UNIFIED IDEOGRAPH-9F99 - -# 亀 ⻲ - (‎ ⻲ ‎) 2EF2 CJK RADICAL J-SIMPLIFIED TURTLE -← (‎ 亀 ‎) 4E80 CJK UNIFIED IDEOGRAPH-4E80 - -# 龟 ⻳ - (‎ ⻳ ‎) 2EF3 CJK RADICAL C-SIMPLIFIED TURTLE -← (‎ 龟 ‎) 9F9F CJK UNIFIED IDEOGRAPH-9F9F - -# 乙 ㇠ ⼄ - (‎ ⼄ ‎) 2F04 KANGXI RADICAL SECOND -← (‎ 乙 ‎) 4E59 CJK UNIFIED IDEOGRAPH-4E59 -← (‎ ㇠ ‎) 31E0 CJK STROKE HXWG - -# 亅 ㇚ ⼅ - (‎ ⼅ ‎) 2F05 KANGXI RADICAL HOOK -← (‎ 亅 ‎) 4E85 CJK UNIFIED IDEOGRAPH-4E85 -← (‎ ㇚ ‎) 31DA CJK STROKE SG - -# 二 ニ ⼆ - (‎ ⼆ ‎) 2F06 KANGXI RADICAL TWO -← (‎ 二 ‎) 4E8C CJK UNIFIED IDEOGRAPH-4E8C -← (‎ ニ ‎) 30CB KATAKANA LETTER NI # →二→ - -# 亠 ⼇ - (‎ ⼇ ‎) 2F07 KANGXI RADICAL LID -← (‎ 亠 ‎) 4EA0 CJK UNIFIED IDEOGRAPH-4EA0 - -# 人 ⼈ - (‎ ⼈ ‎) 2F08 KANGXI RADICAL MAN -← (‎ 人 ‎) 4EBA CJK UNIFIED IDEOGRAPH-4EBA - -# 儿 ⼉ - (‎ ⼉ ‎) 2F09 KANGXI RADICAL LEGS -← (‎ 儿 ‎) 513F CJK UNIFIED IDEOGRAPH-513F - -# 入 ⼊ - (‎ ⼊ ‎) 2F0A KANGXI RADICAL ENTER -← (‎ 入 ‎) 5165 CJK UNIFIED IDEOGRAPH-5165 - -# 八 ハ ⼋ - (‎ ⼋ ‎) 2F0B KANGXI RADICAL EIGHT -← (‎ 八 ‎) 516B CJK UNIFIED IDEOGRAPH-516B -← (‎ ハ ‎) 30CF KATAKANA LETTER HA # →八→ - -# 冂 ⼌ - (‎ ⼌ ‎) 2F0C KANGXI RADICAL DOWN BOX -← (‎ 冂 ‎) 5182 CJK UNIFIED IDEOGRAPH-5182 - -# 冖 ⼍ - (‎ ⼍ ‎) 2F0D KANGXI RADICAL COVER -← (‎ 冖 ‎) 5196 CJK UNIFIED IDEOGRAPH-5196 - -# 冫 ⼎ - (‎ ⼎ ‎) 2F0E KANGXI RADICAL ICE -← (‎ 冫 ‎) 51AB CJK UNIFIED IDEOGRAPH-51AB - -# 几 ⼏ - (‎ ⼏ ‎) 2F0F KANGXI RADICAL TABLE -← (‎ 几 ‎) 51E0 CJK UNIFIED IDEOGRAPH-51E0 - -# 凵 凵 ⼐ - (‎ ⼐ ‎) 2F10 KANGXI RADICAL OPEN BOX -← (‎ 凵 ‎) 51F5 CJK UNIFIED IDEOGRAPH-51F5 -← (‎ 凵 ‎) 2F81D CJK COMPATIBILITY IDEOGRAPH-2F81D # →凵→ - -# 刀 ⼑ - (‎ ⼑ ‎) 2F11 KANGXI RADICAL KNIFE -← (‎ 刀 ‎) 5200 CJK UNIFIED IDEOGRAPH-5200 - -# 力 カ 力 ⼒ - (‎ ⼒ ‎) 2F12 KANGXI RADICAL POWER -← (‎ 力 ‎) 529B CJK UNIFIED IDEOGRAPH-529B -← (‎ カ ‎) 30AB KATAKANA LETTER KA -← (‎ 力 ‎) F98A CJK COMPATIBILITY IDEOGRAPH-F98A # →力→ - -# 勹 ⼓ - (‎ ⼓ ‎) 2F13 KANGXI RADICAL WRAP -← (‎ 勹 ‎) 52F9 CJK UNIFIED IDEOGRAPH-52F9 - -# 匕 ⼔ - (‎ ⼔ ‎) 2F14 KANGXI RADICAL SPOON -← (‎ 匕 ‎) 5315 CJK UNIFIED IDEOGRAPH-5315 - -# 匚 ⼕ - (‎ ⼕ ‎) 2F15 KANGXI RADICAL RIGHT OPEN BOX -← (‎ 匚 ‎) 531A CJK UNIFIED IDEOGRAPH-531A - -# 匸 ⼖ - (‎ ⼖ ‎) 2F16 KANGXI RADICAL HIDING ENCLOSURE -← (‎ 匸 ‎) 5338 CJK UNIFIED IDEOGRAPH-5338 - -# 十 〸 ⼗ - (‎ ⼗ ‎) 2F17 KANGXI RADICAL TEN -← (‎ 十 ‎) 5341 CJK UNIFIED IDEOGRAPH-5341 -← (‎ 〸 ‎) 3038 HANGZHOU NUMERAL TEN # →十→ - -# 卜 ト ⼘ - (‎ ⼘ ‎) 2F18 KANGXI RADICAL DIVINATION -← (‎ 卜 ‎) 535C CJK UNIFIED IDEOGRAPH-535C -← (‎ ト ‎) 30C8 KATAKANA LETTER TO - -# 卩 ⼙ - (‎ ⼙ ‎) 2F19 KANGXI RADICAL SEAL -← (‎ 卩 ‎) 5369 CJK UNIFIED IDEOGRAPH-5369 - -# 厂 ⼚ - (‎ ⼚ ‎) 2F1A KANGXI RADICAL CLIFF -← (‎ 厂 ‎) 5382 CJK UNIFIED IDEOGRAPH-5382 - -# 厶 ⼛ - (‎ ⼛ ‎) 2F1B KANGXI RADICAL PRIVATE -← (‎ 厶 ‎) 53B6 CJK UNIFIED IDEOGRAPH-53B6 - -# 又 ⼜ - (‎ ⼜ ‎) 2F1C KANGXI RADICAL AGAIN -← (‎ 又 ‎) 53C8 CJK UNIFIED IDEOGRAPH-53C8 - -# 口 ロ 囗 ⼝ ⼞ - (‎ ⼝ ‎) 2F1D KANGXI RADICAL MOUTH -← (‎ 口 ‎) 53E3 CJK UNIFIED IDEOGRAPH-53E3 -← (‎ ロ ‎) 30ED KATAKANA LETTER RO # →⼞→ -← (‎ 囗 ‎) 56D7 CJK UNIFIED IDEOGRAPH-56D7 # →⼞→ -← (‎ ⼞ ‎) 2F1E KANGXI RADICAL ENCLOSURE - -# 土 士 ⼟ ⼠ - (‎ ⼟ ‎) 2F1F KANGXI RADICAL EARTH -← (‎ 土 ‎) 571F CJK UNIFIED IDEOGRAPH-571F -← (‎ 士 ‎) 58EB CJK UNIFIED IDEOGRAPH-58EB # →⼠→ -← (‎ ⼠ ‎) 2F20 KANGXI RADICAL SCHOLAR - -# 夂 ⼡ - (‎ ⼡ ‎) 2F21 KANGXI RADICAL GO -← (‎ 夂 ‎) 5902 CJK UNIFIED IDEOGRAPH-5902 - -# 夊 ⼢ - (‎ ⼢ ‎) 2F22 KANGXI RADICAL GO SLOWLY -← (‎ 夊 ‎) 590A CJK UNIFIED IDEOGRAPH-590A - -# 夕 タ ⼣ - (‎ ⼣ ‎) 2F23 KANGXI RADICAL EVENING -← (‎ 夕 ‎) 5915 CJK UNIFIED IDEOGRAPH-5915 -← (‎ タ ‎) 30BF KATAKANA LETTER TA - -# 大 ⼤ - (‎ ⼤ ‎) 2F24 KANGXI RADICAL BIG -← (‎ 大 ‎) 5927 CJK UNIFIED IDEOGRAPH-5927 - -# 女 女 ⼥ - (‎ ⼥ ‎) 2F25 KANGXI RADICAL WOMAN -← (‎ 女 ‎) 5973 CJK UNIFIED IDEOGRAPH-5973 -← (‎ 女 ‎) F981 CJK COMPATIBILITY IDEOGRAPH-F981 # →女→ - -# 子 ⼦ - (‎ ⼦ ‎) 2F26 KANGXI RADICAL CHILD -← (‎ 子 ‎) 5B50 CJK UNIFIED IDEOGRAPH-5B50 - -# 宀 ⼧ - (‎ ⼧ ‎) 2F27 KANGXI RADICAL ROOF -← (‎ 宀 ‎) 5B80 CJK UNIFIED IDEOGRAPH-5B80 - -# 寸 ⼨ - (‎ ⼨ ‎) 2F28 KANGXI RADICAL INCH -← (‎ 寸 ‎) 5BF8 CJK UNIFIED IDEOGRAPH-5BF8 - -# 小 ⼩ - (‎ ⼩ ‎) 2F29 KANGXI RADICAL SMALL -← (‎ 小 ‎) 5C0F CJK UNIFIED IDEOGRAPH-5C0F - -# 尸 ⼫ - (‎ ⼫ ‎) 2F2B KANGXI RADICAL CORPSE -← (‎ 尸 ‎) 5C38 CJK UNIFIED IDEOGRAPH-5C38 - -# 屮 屮 屮 ⼬ - (‎ ⼬ ‎) 2F2C KANGXI RADICAL SPROUT -← (‎ 屮 ‎) 5C6E CJK UNIFIED IDEOGRAPH-5C6E -← (‎ 屮 ‎) FA3C CJK COMPATIBILITY IDEOGRAPH-FA3C # →屮→ -← (‎ 屮 ‎) 2F878 CJK COMPATIBILITY IDEOGRAPH-2F878 # →屮→ - -# 山 ⼭ - (‎ ⼭ ‎) 2F2D KANGXI RADICAL MOUNTAIN -← (‎ 山 ‎) 5C71 CJK UNIFIED IDEOGRAPH-5C71 - -# 巛 ⼮ - (‎ ⼮ ‎) 2F2E KANGXI RADICAL RIVER -← (‎ 巛 ‎) 5DDB CJK UNIFIED IDEOGRAPH-5DDB - -# 工 エ ⼯ - (‎ ⼯ ‎) 2F2F KANGXI RADICAL WORK -← (‎ 工 ‎) 5DE5 CJK UNIFIED IDEOGRAPH-5DE5 -← (‎ エ ‎) 30A8 KATAKANA LETTER E - -# 己 ⼰ - (‎ ⼰ ‎) 2F30 KANGXI RADICAL ONESELF -← (‎ 己 ‎) 5DF1 CJK UNIFIED IDEOGRAPH-5DF1 - -# 巾 ⼱ - (‎ ⼱ ‎) 2F31 KANGXI RADICAL TURBAN -← (‎ 巾 ‎) 5DFE CJK UNIFIED IDEOGRAPH-5DFE - -# 干 ⼲ - (‎ ⼲ ‎) 2F32 KANGXI RADICAL DRY -← (‎ 干 ‎) 5E72 CJK UNIFIED IDEOGRAPH-5E72 - -# 广 ⼴ - (‎ ⼴ ‎) 2F34 KANGXI RADICAL DOTTED CLIFF -← (‎ 广 ‎) 5E7F CJK UNIFIED IDEOGRAPH-5E7F - -# 廴 ⼵ - (‎ ⼵ ‎) 2F35 KANGXI RADICAL LONG STRIDE -← (‎ 廴 ‎) 5EF4 CJK UNIFIED IDEOGRAPH-5EF4 - -# 廾 廾 ⼶ - (‎ ⼶ ‎) 2F36 KANGXI RADICAL TWO HANDS -← (‎ 廾 ‎) 5EFE CJK UNIFIED IDEOGRAPH-5EFE -← (‎ 廾 ‎) 2F890 CJK COMPATIBILITY IDEOGRAPH-2F890 # →廾→ - -# 弋 ⼷ - (‎ ⼷ ‎) 2F37 KANGXI RADICAL SHOOT -← (‎ 弋 ‎) 5F0B CJK UNIFIED IDEOGRAPH-5F0B - -# 弓 ⼸ - (‎ ⼸ ‎) 2F38 KANGXI RADICAL BOW -← (‎ 弓 ‎) 5F13 CJK UNIFIED IDEOGRAPH-5F13 - -# 彐 ⼹ - (‎ ⼹ ‎) 2F39 KANGXI RADICAL SNOUT -← (‎ 彐 ‎) 5F50 CJK UNIFIED IDEOGRAPH-5F50 - -# 彡 ⼺ - (‎ ⼺ ‎) 2F3A KANGXI RADICAL BRISTLE -← (‎ 彡 ‎) 5F61 CJK UNIFIED IDEOGRAPH-5F61 - -# 彳 ⼻ - (‎ ⼻ ‎) 2F3B KANGXI RADICAL STEP -← (‎ 彳 ‎) 5F73 CJK UNIFIED IDEOGRAPH-5F73 - -# 心 ⼼ - (‎ ⼼ ‎) 2F3C KANGXI RADICAL HEART -← (‎ 心 ‎) 5FC3 CJK UNIFIED IDEOGRAPH-5FC3 - -# 戈 ⼽ - (‎ ⼽ ‎) 2F3D KANGXI RADICAL HALBERD -← (‎ 戈 ‎) 6208 CJK UNIFIED IDEOGRAPH-6208 - -# 戶 戸 ⼾ - (‎ ⼾ ‎) 2F3E KANGXI RADICAL DOOR -← (‎ 戶 ‎) 6236 CJK UNIFIED IDEOGRAPH-6236 -← (‎ 戸 ‎) 6238 CJK UNIFIED IDEOGRAPH-6238 - -# 手 ⼿ - (‎ ⼿ ‎) 2F3F KANGXI RADICAL HAND -← (‎ 手 ‎) 624B CJK UNIFIED IDEOGRAPH-624B - -# 支 ⽀ - (‎ ⽀ ‎) 2F40 KANGXI RADICAL BRANCH -← (‎ 支 ‎) 652F CJK UNIFIED IDEOGRAPH-652F - -# 攴 ⽁ - (‎ ⽁ ‎) 2F41 KANGXI RADICAL RAP -← (‎ 攴 ‎) 6534 CJK UNIFIED IDEOGRAPH-6534 - -# 文 ⽂ - (‎ ⽂ ‎) 2F42 KANGXI RADICAL SCRIPT -← (‎ 文 ‎) 6587 CJK UNIFIED IDEOGRAPH-6587 - -# 斗 ⽃ - (‎ ⽃ ‎) 2F43 KANGXI RADICAL DIPPER -← (‎ 斗 ‎) 6597 CJK UNIFIED IDEOGRAPH-6597 - -# 斤 ⽄ - (‎ ⽄ ‎) 2F44 KANGXI RADICAL AXE -← (‎ 斤 ‎) 65A4 CJK UNIFIED IDEOGRAPH-65A4 - -# 方 ⽅ - (‎ ⽅ ‎) 2F45 KANGXI RADICAL SQUARE -← (‎ 方 ‎) 65B9 CJK UNIFIED IDEOGRAPH-65B9 - -# 无 ⽆ - (‎ ⽆ ‎) 2F46 KANGXI RADICAL NOT -← (‎ 无 ‎) 65E0 CJK UNIFIED IDEOGRAPH-65E0 - -# 日 ⽇ - (‎ ⽇ ‎) 2F47 KANGXI RADICAL SUN -← (‎ 日 ‎) 65E5 CJK UNIFIED IDEOGRAPH-65E5 - -# 曰 ⽈ - (‎ ⽈ ‎) 2F48 KANGXI RADICAL SAY -← (‎ 曰 ‎) 66F0 CJK UNIFIED IDEOGRAPH-66F0 - -# 月 ⽉ - (‎ ⽉ ‎) 2F49 KANGXI RADICAL MOON -← (‎ 月 ‎) 6708 CJK UNIFIED IDEOGRAPH-6708 - -# 木 ⽊ - (‎ ⽊ ‎) 2F4A KANGXI RADICAL TREE -← (‎ 木 ‎) 6728 CJK UNIFIED IDEOGRAPH-6728 - -# 欠 ⽋ - (‎ ⽋ ‎) 2F4B KANGXI RADICAL LACK -← (‎ 欠 ‎) 6B20 CJK UNIFIED IDEOGRAPH-6B20 - -# 止 ⽌ - (‎ ⽌ ‎) 2F4C KANGXI RADICAL STOP -← (‎ 止 ‎) 6B62 CJK UNIFIED IDEOGRAPH-6B62 - -# 歹 歹 ⽍ - (‎ ⽍ ‎) 2F4D KANGXI RADICAL DEATH -← (‎ 歹 ‎) 6B79 CJK UNIFIED IDEOGRAPH-6B79 -← (‎ 歹 ‎) FA95 CJK COMPATIBILITY IDEOGRAPH-FA95 # →歹→ - -# 殳 ⽎ - (‎ ⽎ ‎) 2F4E KANGXI RADICAL WEAPON -← (‎ 殳 ‎) 6BB3 CJK UNIFIED IDEOGRAPH-6BB3 - -# 毋 ⽏ - (‎ ⽏ ‎) 2F4F KANGXI RADICAL DO NOT -← (‎ 毋 ‎) 6BCB CJK UNIFIED IDEOGRAPH-6BCB - -# 比 ⽐ - (‎ ⽐ ‎) 2F50 KANGXI RADICAL COMPARE -← (‎ 比 ‎) 6BD4 CJK UNIFIED IDEOGRAPH-6BD4 - -# 毛 ⽑ - (‎ ⽑ ‎) 2F51 KANGXI RADICAL FUR -← (‎ 毛 ‎) 6BDB CJK UNIFIED IDEOGRAPH-6BDB - -# 氏 ⽒ - (‎ ⽒ ‎) 2F52 KANGXI RADICAL CLAN -← (‎ 氏 ‎) 6C0F CJK UNIFIED IDEOGRAPH-6C0F - -# 气 ⽓ - (‎ ⽓ ‎) 2F53 KANGXI RADICAL STEAM -← (‎ 气 ‎) 6C14 CJK UNIFIED IDEOGRAPH-6C14 - -# 水 ⽔ - (‎ ⽔ ‎) 2F54 KANGXI RADICAL WATER -← (‎ 水 ‎) 6C34 CJK UNIFIED IDEOGRAPH-6C34 - -# 火 ⽕ - (‎ ⽕ ‎) 2F55 KANGXI RADICAL FIRE -← (‎ 火 ‎) 706B CJK UNIFIED IDEOGRAPH-706B - -# 爪 ⽖ - (‎ ⽖ ‎) 2F56 KANGXI RADICAL CLAW -← (‎ 爪 ‎) 722A CJK UNIFIED IDEOGRAPH-722A - -# 父 ⽗ - (‎ ⽗ ‎) 2F57 KANGXI RADICAL FATHER -← (‎ 父 ‎) 7236 CJK UNIFIED IDEOGRAPH-7236 - -# 爻 ⽘ - (‎ ⽘ ‎) 2F58 KANGXI RADICAL DOUBLE X -← (‎ 爻 ‎) 723B CJK UNIFIED IDEOGRAPH-723B - -# 爿 ⽙ - (‎ ⽙ ‎) 2F59 KANGXI RADICAL HALF TREE TRUNK -← (‎ 爿 ‎) 723F CJK UNIFIED IDEOGRAPH-723F - -# 片 ⽚ - (‎ ⽚ ‎) 2F5A KANGXI RADICAL SLICE -← (‎ 片 ‎) 7247 CJK UNIFIED IDEOGRAPH-7247 - -# 牙 ⽛ - (‎ ⽛ ‎) 2F5B KANGXI RADICAL FANG -← (‎ 牙 ‎) 7259 CJK UNIFIED IDEOGRAPH-7259 - -# 牛 ⽜ - (‎ ⽜ ‎) 2F5C KANGXI RADICAL COW -← (‎ 牛 ‎) 725B CJK UNIFIED IDEOGRAPH-725B - -# 犬 ⽝ - (‎ ⽝ ‎) 2F5D KANGXI RADICAL DOG -← (‎ 犬 ‎) 72AC CJK UNIFIED IDEOGRAPH-72AC - -# 玄 ⽞ - (‎ ⽞ ‎) 2F5E KANGXI RADICAL PROFOUND -← (‎ 玄 ‎) 7384 CJK UNIFIED IDEOGRAPH-7384 - -# 玉 ⽟ - (‎ ⽟ ‎) 2F5F KANGXI RADICAL JADE -← (‎ 玉 ‎) 7389 CJK UNIFIED IDEOGRAPH-7389 - -# 瓜 ⽠ - (‎ ⽠ ‎) 2F60 KANGXI RADICAL MELON -← (‎ 瓜 ‎) 74DC CJK UNIFIED IDEOGRAPH-74DC - -# 瓦 ⽡ - (‎ ⽡ ‎) 2F61 KANGXI RADICAL TILE -← (‎ 瓦 ‎) 74E6 CJK UNIFIED IDEOGRAPH-74E6 - -# 甘 ⽢ - (‎ ⽢ ‎) 2F62 KANGXI RADICAL SWEET -← (‎ 甘 ‎) 7518 CJK UNIFIED IDEOGRAPH-7518 - -# 生 ⽣ - (‎ ⽣ ‎) 2F63 KANGXI RADICAL LIFE -← (‎ 生 ‎) 751F CJK UNIFIED IDEOGRAPH-751F - -# 用 ⽤ - (‎ ⽤ ‎) 2F64 KANGXI RADICAL USE -← (‎ 用 ‎) 7528 CJK UNIFIED IDEOGRAPH-7528 - -# 田 ⽥ - (‎ ⽥ ‎) 2F65 KANGXI RADICAL FIELD -← (‎ 田 ‎) 7530 CJK UNIFIED IDEOGRAPH-7530 - -# 疋 ⽦ - (‎ ⽦ ‎) 2F66 KANGXI RADICAL BOLT OF CLOTH -← (‎ 疋 ‎) 758B CJK UNIFIED IDEOGRAPH-758B - -# 疒 ⽧ - (‎ ⽧ ‎) 2F67 KANGXI RADICAL SICKNESS -← (‎ 疒 ‎) 7592 CJK UNIFIED IDEOGRAPH-7592 - -# 癶 ⽨ - (‎ ⽨ ‎) 2F68 KANGXI RADICAL DOTTED TENT -← (‎ 癶 ‎) 7676 CJK UNIFIED IDEOGRAPH-7676 - -# 白 ⽩ - (‎ ⽩ ‎) 2F69 KANGXI RADICAL WHITE -← (‎ 白 ‎) 767D CJK UNIFIED IDEOGRAPH-767D - -# 皮 ⽪ - (‎ ⽪ ‎) 2F6A KANGXI RADICAL SKIN -← (‎ 皮 ‎) 76AE CJK UNIFIED IDEOGRAPH-76AE - -# 皿 ⽫ - (‎ ⽫ ‎) 2F6B KANGXI RADICAL DISH -← (‎ 皿 ‎) 76BF CJK UNIFIED IDEOGRAPH-76BF - -# 目 ⽬ - (‎ ⽬ ‎) 2F6C KANGXI RADICAL EYE -← (‎ 目 ‎) 76EE CJK UNIFIED IDEOGRAPH-76EE - -# 矛 ⽭ - (‎ ⽭ ‎) 2F6D KANGXI RADICAL SPEAR -← (‎ 矛 ‎) 77DB CJK UNIFIED IDEOGRAPH-77DB - -# 矢 ⽮ - (‎ ⽮ ‎) 2F6E KANGXI RADICAL ARROW -← (‎ 矢 ‎) 77E2 CJK UNIFIED IDEOGRAPH-77E2 - -# 石 ⽯ - (‎ ⽯ ‎) 2F6F KANGXI RADICAL STONE -← (‎ 石 ‎) 77F3 CJK UNIFIED IDEOGRAPH-77F3 - -# 示 ⽰ - (‎ ⽰ ‎) 2F70 KANGXI RADICAL SPIRIT -← (‎ 示 ‎) 793A CJK UNIFIED IDEOGRAPH-793A - -# 禸 ⽱ - (‎ ⽱ ‎) 2F71 KANGXI RADICAL TRACK -← (‎ 禸 ‎) 79B8 CJK UNIFIED IDEOGRAPH-79B8 - -# 禾 ⽲ - (‎ ⽲ ‎) 2F72 KANGXI RADICAL GRAIN -← (‎ 禾 ‎) 79BE CJK UNIFIED IDEOGRAPH-79BE - -# 穴 ⽳ - (‎ ⽳ ‎) 2F73 KANGXI RADICAL CAVE -← (‎ 穴 ‎) 7A74 CJK UNIFIED IDEOGRAPH-7A74 - -# 立 立 ⽴ - (‎ ⽴ ‎) 2F74 KANGXI RADICAL STAND -← (‎ 立 ‎) 7ACB CJK UNIFIED IDEOGRAPH-7ACB -← (‎ 立 ‎) F9F7 CJK COMPATIBILITY IDEOGRAPH-F9F7 # →立→ - -# 竹 ⽵ - (‎ ⽵ ‎) 2F75 KANGXI RADICAL BAMBOO -← (‎ 竹 ‎) 7AF9 CJK UNIFIED IDEOGRAPH-7AF9 - -# 米 ⽶ - (‎ ⽶ ‎) 2F76 KANGXI RADICAL RICE -← (‎ 米 ‎) 7C73 CJK UNIFIED IDEOGRAPH-7C73 - -# 糸 ⽷ - (‎ ⽷ ‎) 2F77 KANGXI RADICAL SILK -← (‎ 糸 ‎) 7CF8 CJK UNIFIED IDEOGRAPH-7CF8 - -# 缶 ⽸ - (‎ ⽸ ‎) 2F78 KANGXI RADICAL JAR -← (‎ 缶 ‎) 7F36 CJK UNIFIED IDEOGRAPH-7F36 - -# 网 ⽹ - (‎ ⽹ ‎) 2F79 KANGXI RADICAL NET -← (‎ 网 ‎) 7F51 CJK UNIFIED IDEOGRAPH-7F51 - -# 羊 ⽺ - (‎ ⽺ ‎) 2F7A KANGXI RADICAL SHEEP -← (‎ 羊 ‎) 7F8A CJK UNIFIED IDEOGRAPH-7F8A - -# 羽 羽 ⽻ - (‎ ⽻ ‎) 2F7B KANGXI RADICAL FEATHER -← (‎ 羽 ‎) 7FBD CJK UNIFIED IDEOGRAPH-7FBD -← (‎ 羽 ‎) FA1E CJK COMPATIBILITY IDEOGRAPH-FA1E # →羽→ - -# 老 老 ⽼ - (‎ ⽼ ‎) 2F7C KANGXI RADICAL OLD -← (‎ 老 ‎) 8001 CJK UNIFIED IDEOGRAPH-8001 -← (‎ 老 ‎) F934 CJK COMPATIBILITY IDEOGRAPH-F934 # →老→ - -# 而 ⽽ - (‎ ⽽ ‎) 2F7D KANGXI RADICAL AND -← (‎ 而 ‎) 800C CJK UNIFIED IDEOGRAPH-800C - -# 耒 ⽾ - (‎ ⽾ ‎) 2F7E KANGXI RADICAL PLOW -← (‎ 耒 ‎) 8012 CJK UNIFIED IDEOGRAPH-8012 - -# 耳 ⽿ - (‎ ⽿ ‎) 2F7F KANGXI RADICAL EAR -← (‎ 耳 ‎) 8033 CJK UNIFIED IDEOGRAPH-8033 - -# 聿 ⾀ - (‎ ⾀ ‎) 2F80 KANGXI RADICAL BRUSH -← (‎ 聿 ‎) 807F CJK UNIFIED IDEOGRAPH-807F - -# 肉 ⾁ - (‎ ⾁ ‎) 2F81 KANGXI RADICAL MEAT -← (‎ 肉 ‎) 8089 CJK UNIFIED IDEOGRAPH-8089 - -# 臣 ⾂ - (‎ ⾂ ‎) 2F82 KANGXI RADICAL MINISTER -← (‎ 臣 ‎) 81E3 CJK UNIFIED IDEOGRAPH-81E3 - -# 自 ⾃ - (‎ ⾃ ‎) 2F83 KANGXI RADICAL SELF -← (‎ 自 ‎) 81EA CJK UNIFIED IDEOGRAPH-81EA - -# 至 ⾄ - (‎ ⾄ ‎) 2F84 KANGXI RADICAL ARRIVE -← (‎ 至 ‎) 81F3 CJK UNIFIED IDEOGRAPH-81F3 - -# 臼 ⾅ - (‎ ⾅ ‎) 2F85 KANGXI RADICAL MORTAR -← (‎ 臼 ‎) 81FC CJK UNIFIED IDEOGRAPH-81FC - -# 舌 ⾆ - (‎ ⾆ ‎) 2F86 KANGXI RADICAL TONGUE -← (‎ 舌 ‎) 820C CJK UNIFIED IDEOGRAPH-820C - -# 舛 ⾇ - (‎ ⾇ ‎) 2F87 KANGXI RADICAL OPPOSE -← (‎ 舛 ‎) 821B CJK UNIFIED IDEOGRAPH-821B - -# 舟 ⾈ - (‎ ⾈ ‎) 2F88 KANGXI RADICAL BOAT -← (‎ 舟 ‎) 821F CJK UNIFIED IDEOGRAPH-821F - -# 艮 ⾉ - (‎ ⾉ ‎) 2F89 KANGXI RADICAL STOPPING -← (‎ 艮 ‎) 826E CJK UNIFIED IDEOGRAPH-826E - -# 色 ⾊ - (‎ ⾊ ‎) 2F8A KANGXI RADICAL COLOR -← (‎ 色 ‎) 8272 CJK UNIFIED IDEOGRAPH-8272 - -# 艸 ⾋ - (‎ ⾋ ‎) 2F8B KANGXI RADICAL GRASS -← (‎ 艸 ‎) 8278 CJK UNIFIED IDEOGRAPH-8278 - -# 虍 ⾌ - (‎ ⾌ ‎) 2F8C KANGXI RADICAL TIGER -← (‎ 虍 ‎) 864D CJK UNIFIED IDEOGRAPH-864D - -# 虫 ⾍ - (‎ ⾍ ‎) 2F8D KANGXI RADICAL INSECT -← (‎ 虫 ‎) 866B CJK UNIFIED IDEOGRAPH-866B - -# 血 ⾎ - (‎ ⾎ ‎) 2F8E KANGXI RADICAL BLOOD -← (‎ 血 ‎) 8840 CJK UNIFIED IDEOGRAPH-8840 - -# 行 行 ⾏ - (‎ ⾏ ‎) 2F8F KANGXI RADICAL WALK ENCLOSURE -← (‎ 行 ‎) 884C CJK UNIFIED IDEOGRAPH-884C -← (‎ 行 ‎) FA08 CJK COMPATIBILITY IDEOGRAPH-FA08 # →行→ - -# 衣 衣 ⾐ - (‎ ⾐ ‎) 2F90 KANGXI RADICAL CLOTHES -← (‎ 衣 ‎) 8863 CJK UNIFIED IDEOGRAPH-8863 -← (‎ 衣 ‎) 2F9C4 CJK COMPATIBILITY IDEOGRAPH-2F9C4 # →衣→ - -# 襾 ⾑ - (‎ ⾑ ‎) 2F91 KANGXI RADICAL WEST -← (‎ 襾 ‎) 897E CJK UNIFIED IDEOGRAPH-897E - -# 見 見 ⾒ - (‎ ⾒ ‎) 2F92 KANGXI RADICAL SEE -← (‎ 見 ‎) 898B CJK UNIFIED IDEOGRAPH-898B -← (‎ 見 ‎) FA0A CJK COMPATIBILITY IDEOGRAPH-FA0A # →見→ - -# 角 ⾓ - (‎ ⾓ ‎) 2F93 KANGXI RADICAL HORN -← (‎ 角 ‎) 89D2 CJK UNIFIED IDEOGRAPH-89D2 - -# 言 ⾔ - (‎ ⾔ ‎) 2F94 KANGXI RADICAL SPEECH -← (‎ 言 ‎) 8A00 CJK UNIFIED IDEOGRAPH-8A00 - -# 谷 ⾕ - (‎ ⾕ ‎) 2F95 KANGXI RADICAL VALLEY -← (‎ 谷 ‎) 8C37 CJK UNIFIED IDEOGRAPH-8C37 - -# 豆 ⾖ - (‎ ⾖ ‎) 2F96 KANGXI RADICAL BEAN -← (‎ 豆 ‎) 8C46 CJK UNIFIED IDEOGRAPH-8C46 - -# 豕 豕 ⾗ - (‎ ⾗ ‎) 2F97 KANGXI RADICAL PIG -← (‎ 豕 ‎) 8C55 CJK UNIFIED IDEOGRAPH-8C55 -← (‎ 豕 ‎) 2F9D2 CJK COMPATIBILITY IDEOGRAPH-2F9D2 # →豕→ - -# 豸 ⾘ - (‎ ⾘ ‎) 2F98 KANGXI RADICAL BADGER -← (‎ 豸 ‎) 8C78 CJK UNIFIED IDEOGRAPH-8C78 - -# 貝 ⾙ - (‎ ⾙ ‎) 2F99 KANGXI RADICAL SHELL -← (‎ 貝 ‎) 8C9D CJK UNIFIED IDEOGRAPH-8C9D - -# 赤 ⾚ - (‎ ⾚ ‎) 2F9A KANGXI RADICAL RED -← (‎ 赤 ‎) 8D64 CJK UNIFIED IDEOGRAPH-8D64 - -# 走 ⾛ - (‎ ⾛ ‎) 2F9B KANGXI RADICAL RUN -← (‎ 走 ‎) 8D70 CJK UNIFIED IDEOGRAPH-8D70 - -# 足 ⾜ - (‎ ⾜ ‎) 2F9C KANGXI RADICAL FOOT -← (‎ 足 ‎) 8DB3 CJK UNIFIED IDEOGRAPH-8DB3 - -# 身 ⾝ - (‎ ⾝ ‎) 2F9D KANGXI RADICAL BODY -← (‎ 身 ‎) 8EAB CJK UNIFIED IDEOGRAPH-8EAB - -# 車 車 ⾞ - (‎ ⾞ ‎) 2F9E KANGXI RADICAL CART -← (‎ 車 ‎) 8ECA CJK UNIFIED IDEOGRAPH-8ECA -← (‎ 車 ‎) F902 CJK COMPATIBILITY IDEOGRAPH-F902 # →車→ - -# 辛 ⾟ - (‎ ⾟ ‎) 2F9F KANGXI RADICAL BITTER -← (‎ 辛 ‎) 8F9B CJK UNIFIED IDEOGRAPH-8F9B - -# 辰 辰 ⾠ - (‎ ⾠ ‎) 2FA0 KANGXI RADICAL MORNING -← (‎ 辰 ‎) 8FB0 CJK UNIFIED IDEOGRAPH-8FB0 -← (‎ 辰 ‎) F971 CJK COMPATIBILITY IDEOGRAPH-F971 # →辰→ - -# 辵 ⾡ - (‎ ⾡ ‎) 2FA1 KANGXI RADICAL WALK -← (‎ 辵 ‎) 8FB5 CJK UNIFIED IDEOGRAPH-8FB5 - -# 邑 ⾢ - (‎ ⾢ ‎) 2FA2 KANGXI RADICAL CITY -← (‎ 邑 ‎) 9091 CJK UNIFIED IDEOGRAPH-9091 - -# 酉 ⾣ - (‎ ⾣ ‎) 2FA3 KANGXI RADICAL WINE -← (‎ 酉 ‎) 9149 CJK UNIFIED IDEOGRAPH-9149 - -# 釆 ⾤ - (‎ ⾤ ‎) 2FA4 KANGXI RADICAL DISTINGUISH -← (‎ 釆 ‎) 91C6 CJK UNIFIED IDEOGRAPH-91C6 - -# 里 里 ⾥ - (‎ ⾥ ‎) 2FA5 KANGXI RADICAL VILLAGE -← (‎ 里 ‎) 91CC CJK UNIFIED IDEOGRAPH-91CC -← (‎ 里 ‎) F9E9 CJK COMPATIBILITY IDEOGRAPH-F9E9 # →里→ - -# 金 金 ⾦ - (‎ ⾦ ‎) 2FA6 KANGXI RADICAL GOLD -← (‎ 金 ‎) 91D1 CJK UNIFIED IDEOGRAPH-91D1 -← (‎ 金 ‎) F90A CJK COMPATIBILITY IDEOGRAPH-F90A # →金→ - -# 門 ⾨ - (‎ ⾨ ‎) 2FA8 KANGXI RADICAL GATE -← (‎ 門 ‎) 9580 CJK UNIFIED IDEOGRAPH-9580 - -# 阜 ⾩ - (‎ ⾩ ‎) 2FA9 KANGXI RADICAL MOUND -← (‎ 阜 ‎) 961C CJK UNIFIED IDEOGRAPH-961C - -# 隶 ⾪ - (‎ ⾪ ‎) 2FAA KANGXI RADICAL SLAVE -← (‎ 隶 ‎) 96B6 CJK UNIFIED IDEOGRAPH-96B6 - -# 隹 ⾫ - (‎ ⾫ ‎) 2FAB KANGXI RADICAL SHORT TAILED BIRD -← (‎ 隹 ‎) 96B9 CJK UNIFIED IDEOGRAPH-96B9 - -# 雨 ⾬ - (‎ ⾬ ‎) 2FAC KANGXI RADICAL RAIN -← (‎ 雨 ‎) 96E8 CJK UNIFIED IDEOGRAPH-96E8 - -# 靑 ⾭ - (‎ ⾭ ‎) 2FAD KANGXI RADICAL BLUE -← (‎ 靑 ‎) 9751 CJK UNIFIED IDEOGRAPH-9751 - -# 非 ⾮ - (‎ ⾮ ‎) 2FAE KANGXI RADICAL WRONG -← (‎ 非 ‎) 975E CJK UNIFIED IDEOGRAPH-975E - -# 面 ⾯ - (‎ ⾯ ‎) 2FAF KANGXI RADICAL FACE -← (‎ 面 ‎) 9762 CJK UNIFIED IDEOGRAPH-9762 - -# 革 ⾰ - (‎ ⾰ ‎) 2FB0 KANGXI RADICAL LEATHER -← (‎ 革 ‎) 9769 CJK UNIFIED IDEOGRAPH-9769 - -# 韋 ⾱ - (‎ ⾱ ‎) 2FB1 KANGXI RADICAL TANNED LEATHER -← (‎ 韋 ‎) 97CB CJK UNIFIED IDEOGRAPH-97CB - -# 韭 ⾲ - (‎ ⾲ ‎) 2FB2 KANGXI RADICAL LEEK -← (‎ 韭 ‎) 97ED CJK UNIFIED IDEOGRAPH-97ED - -# 音 ⾳ - (‎ ⾳ ‎) 2FB3 KANGXI RADICAL SOUND -← (‎ 音 ‎) 97F3 CJK UNIFIED IDEOGRAPH-97F3 - -# 頁 ⾴ - (‎ ⾴ ‎) 2FB4 KANGXI RADICAL LEAF -← (‎ 頁 ‎) 9801 CJK UNIFIED IDEOGRAPH-9801 - -# 風 ⾵ - (‎ ⾵ ‎) 2FB5 KANGXI RADICAL WIND -← (‎ 風 ‎) 98A8 CJK UNIFIED IDEOGRAPH-98A8 - -# 飛 ⾶ - (‎ ⾶ ‎) 2FB6 KANGXI RADICAL FLY -← (‎ 飛 ‎) 98DB CJK UNIFIED IDEOGRAPH-98DB - -# 首 ⾸ - (‎ ⾸ ‎) 2FB8 KANGXI RADICAL HEAD -← (‎ 首 ‎) 9996 CJK UNIFIED IDEOGRAPH-9996 - -# 香 ⾹ - (‎ ⾹ ‎) 2FB9 KANGXI RADICAL FRAGRANT -← (‎ 香 ‎) 9999 CJK UNIFIED IDEOGRAPH-9999 - -# 馬 ⾺ - (‎ ⾺ ‎) 2FBA KANGXI RADICAL HORSE -← (‎ 馬 ‎) 99AC CJK UNIFIED IDEOGRAPH-99AC - -# 骨 ⾻ - (‎ ⾻ ‎) 2FBB KANGXI RADICAL BONE -← (‎ 骨 ‎) 9AA8 CJK UNIFIED IDEOGRAPH-9AA8 - -# 高 ⾼ - (‎ ⾼ ‎) 2FBC KANGXI RADICAL TALL -← (‎ 高 ‎) 9AD8 CJK UNIFIED IDEOGRAPH-9AD8 - -# 髟 ⾽ - (‎ ⾽ ‎) 2FBD KANGXI RADICAL HAIR -← (‎ 髟 ‎) 9ADF CJK UNIFIED IDEOGRAPH-9ADF - -# 鬥 ⾾ - (‎ ⾾ ‎) 2FBE KANGXI RADICAL FIGHT -← (‎ 鬥 ‎) 9B25 CJK UNIFIED IDEOGRAPH-9B25 - -# 鬯 ⾿ - (‎ ⾿ ‎) 2FBF KANGXI RADICAL SACRIFICIAL WINE -← (‎ 鬯 ‎) 9B2F CJK UNIFIED IDEOGRAPH-9B2F - -# 鬲 ⿀ - (‎ ⿀ ‎) 2FC0 KANGXI RADICAL CAULDRON -← (‎ 鬲 ‎) 9B32 CJK UNIFIED IDEOGRAPH-9B32 - -# 魚 ⿂ - (‎ ⿂ ‎) 2FC2 KANGXI RADICAL FISH -← (‎ 魚 ‎) 9B5A CJK UNIFIED IDEOGRAPH-9B5A - -# 鳥 ⿃ - (‎ ⿃ ‎) 2FC3 KANGXI RADICAL BIRD -← (‎ 鳥 ‎) 9CE5 CJK UNIFIED IDEOGRAPH-9CE5 - -# 鹵 ⿄ - (‎ ⿄ ‎) 2FC4 KANGXI RADICAL SALT -← (‎ 鹵 ‎) 9E75 CJK UNIFIED IDEOGRAPH-9E75 - -# 鹿 鹿 ⿅ - (‎ ⿅ ‎) 2FC5 KANGXI RADICAL DEER -← (‎ 鹿 ‎) 9E7F CJK UNIFIED IDEOGRAPH-9E7F -← (‎ 鹿 ‎) F940 CJK COMPATIBILITY IDEOGRAPH-F940 # →鹿→ - -# 麥 ⿆ - (‎ ⿆ ‎) 2FC6 KANGXI RADICAL WHEAT -← (‎ 麥 ‎) 9EA5 CJK UNIFIED IDEOGRAPH-9EA5 - -# 麻 麻 ⿇ - (‎ ⿇ ‎) 2FC7 KANGXI RADICAL HEMP -← (‎ 麻 ‎) 9EBB CJK UNIFIED IDEOGRAPH-9EBB -← (‎ 麻 ‎) 2FA15 CJK COMPATIBILITY IDEOGRAPH-2FA15 # →麻→ - -# 黃 ⿈ - (‎ ⿈ ‎) 2FC8 KANGXI RADICAL YELLOW -← (‎ 黃 ‎) 9EC3 CJK UNIFIED IDEOGRAPH-9EC3 - -# 黍 ⿉ - (‎ ⿉ ‎) 2FC9 KANGXI RADICAL MILLET -← (‎ 黍 ‎) 9ECD CJK UNIFIED IDEOGRAPH-9ECD - -# 黑 黒 ⿊ - (‎ ⿊ ‎) 2FCA KANGXI RADICAL BLACK -← (‎ 黑 ‎) 9ED1 CJK UNIFIED IDEOGRAPH-9ED1 -← (‎ 黒 ‎) 9ED2 CJK UNIFIED IDEOGRAPH-9ED2 - -# 黹 黹 ⿋ - (‎ ⿋ ‎) 2FCB KANGXI RADICAL EMBROIDERY -← (‎ 黹 ‎) 9EF9 CJK UNIFIED IDEOGRAPH-9EF9 -← (‎ 黹 ‎) 2FA17 CJK COMPATIBILITY IDEOGRAPH-2FA17 # →黹→ - -# 黽 ⿌ - (‎ ⿌ ‎) 2FCC KANGXI RADICAL FROG -← (‎ 黽 ‎) 9EFD CJK UNIFIED IDEOGRAPH-9EFD - -# 鼎 ⿍ - (‎ ⿍ ‎) 2FCD KANGXI RADICAL TRIPOD -← (‎ 鼎 ‎) 9F0E CJK UNIFIED IDEOGRAPH-9F0E - -# 鼓 ⿎ - (‎ ⿎ ‎) 2FCE KANGXI RADICAL DRUM -← (‎ 鼓 ‎) 9F13 CJK UNIFIED IDEOGRAPH-9F13 - -# 鼠 ⿏ - (‎ ⿏ ‎) 2FCF KANGXI RADICAL RAT -← (‎ 鼠 ‎) 9F20 CJK UNIFIED IDEOGRAPH-9F20 - -# 鼻 鼻 ⿐ - (‎ ⿐ ‎) 2FD0 KANGXI RADICAL NOSE -← (‎ 鼻 ‎) 9F3B CJK UNIFIED IDEOGRAPH-9F3B -← (‎ 鼻 ‎) 2FA1C CJK COMPATIBILITY IDEOGRAPH-2FA1C # →鼻→ - -# 齊 ⿑ - (‎ ⿑ ‎) 2FD1 KANGXI RADICAL EVEN -← (‎ 齊 ‎) 9F4A CJK UNIFIED IDEOGRAPH-9F4A - -# 齒 ⿒ - (‎ ⿒ ‎) 2FD2 KANGXI RADICAL TOOTH -← (‎ 齒 ‎) 9F52 CJK UNIFIED IDEOGRAPH-9F52 - -# 龍 龍 ⿓ - (‎ ⿓ ‎) 2FD3 KANGXI RADICAL DRAGON -← (‎ 龍 ‎) 9F8D CJK UNIFIED IDEOGRAPH-9F8D -← (‎ 龍 ‎) F9C4 CJK COMPATIBILITY IDEOGRAPH-F9C4 # →龍→ - -# 龜 龜 龜 龜 ⿔ - (‎ ⿔ ‎) 2FD4 KANGXI RADICAL TURTLE -← (‎ 龜 ‎) 9F9C CJK UNIFIED IDEOGRAPH-9F9C -← (‎ 龜 ‎) F907 CJK COMPATIBILITY IDEOGRAPH-F907 # →龜→ -← (‎ 龜 ‎) F908 CJK COMPATIBILITY IDEOGRAPH-F908 # →龜→ -← (‎ 龜 ‎) FACE CJK COMPATIBILITY IDEOGRAPH-FACE # →龜→ - -# 龠 ⿕ - (‎ ⿕ ‎) 2FD5 KANGXI RADICAL FLUTE -← (‎ 龠 ‎) 9FA0 CJK UNIFIED IDEOGRAPH-9FA0 - -# 〜 ~ - (‎ 〜 ‎) 301C WAVE DASH -← (‎ ~ ‎) FF5E FULLWIDTH TILDE - -# 卄 〹 - (‎ 〹 ‎) 3039 HANGZHOU NUMERAL TWENTY -← (‎ 卄 ‎) 5344 CJK UNIFIED IDEOGRAPH-5344 - -# 卅 〺 - (‎ 〺 ‎) 303A HANGZHOU NUMERAL THIRTY -← (‎ 卅 ‎) 5345 CJK UNIFIED IDEOGRAPH-5345 - -# へ ヘ - (‎ へ ‎) 3078 HIRAGANA LETTER HE -← (‎ ヘ ‎) 30D8 KATAKANA LETTER HE - -# ゙ ゛ - (‎ ゛ ‎) 309B KATAKANA-HIRAGANA VOICED SOUND MARK -← (‎ ゙ ‎) FF9E HALFWIDTH KATAKANA VOICED SOUND MARK - -# ゚ ゜ - (‎ ゜ ‎) 309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -← (‎ ゚ ‎) FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - -# ㏄ ⃝ 🅭 - (‎ ㏄ ⃝ ‎) 33C4 0009 20DD SQUARE CC, , COMBINING ENCLOSING CIRCLE -← (‎ 🅭 ‎) 1F16D CIRCLED CC - -# 㒞 㒞 - (‎ 㒞 ‎) 349E CJK UNIFIED IDEOGRAPH-349E -← (‎ 㒞 ‎) 2F80C CJK COMPATIBILITY IDEOGRAPH-2F80C - -# 㒹 㒹 - (‎ 㒹 ‎) 34B9 CJK UNIFIED IDEOGRAPH-34B9 -← (‎ 㒹 ‎) 2F813 CJK COMPATIBILITY IDEOGRAPH-2F813 - -# 㒻 㒻 - (‎ 㒻 ‎) 34BB CJK UNIFIED IDEOGRAPH-34BB -← (‎ 㒻 ‎) 2F9CA CJK COMPATIBILITY IDEOGRAPH-2F9CA - -# 㓟 㓟 - (‎ 㓟 ‎) 34DF CJK UNIFIED IDEOGRAPH-34DF -← (‎ 㓟 ‎) 2F81F CJK COMPATIBILITY IDEOGRAPH-2F81F - -# 㔕 㔕 - (‎ 㔕 ‎) 3515 CJK UNIFIED IDEOGRAPH-3515 -← (‎ 㔕 ‎) 2F824 CJK COMPATIBILITY IDEOGRAPH-2F824 - -# 㖈 䎛 - (‎ 㖈 ‎) 3588 CJK UNIFIED IDEOGRAPH-3588 -← (‎ 䎛 ‎) 439B CJK UNIFIED IDEOGRAPH-439B - -# 㘽 㦳 - (‎ 㘽 ‎) 363D CJK UNIFIED IDEOGRAPH-363D -← (‎ 㦳 ‎) 39B3 CJK UNIFIED IDEOGRAPH-39B3 - -# 㛮 㛮 - (‎ 㛮 ‎) 36EE CJK UNIFIED IDEOGRAPH-36EE -← (‎ 㛮 ‎) 2F867 CJK COMPATIBILITY IDEOGRAPH-2F867 - -# 㛼 㛼 - (‎ 㛼 ‎) 36FC CJK UNIFIED IDEOGRAPH-36FC -← (‎ 㛼 ‎) 2F868 CJK COMPATIBILITY IDEOGRAPH-2F868 - -# 㞁 㞁 - (‎ 㞁 ‎) 3781 CJK UNIFIED IDEOGRAPH-3781 -← (‎ 㞁 ‎) 2F876 CJK COMPATIBILITY IDEOGRAPH-2F876 - -# 㠯 㠯 - (‎ 㠯 ‎) 382F CJK UNIFIED IDEOGRAPH-382F -← (‎ 㠯 ‎) 2F883 CJK COMPATIBILITY IDEOGRAPH-2F883 - -# 㡢 㡢 - (‎ 㡢 ‎) 3862 CJK UNIFIED IDEOGRAPH-3862 -← (‎ 㡢 ‎) 2F888 CJK COMPATIBILITY IDEOGRAPH-2F888 - -# 㡼 㡼 - (‎ 㡼 ‎) 387C CJK UNIFIED IDEOGRAPH-387C -← (‎ 㡼 ‎) 2F88A CJK COMPATIBILITY IDEOGRAPH-2F88A - -# 㣇 㣇 - (‎ 㣇 ‎) 38C7 CJK UNIFIED IDEOGRAPH-38C7 -← (‎ 㣇 ‎) 2F896 CJK COMPATIBILITY IDEOGRAPH-2F896 - -# 㣣 㣣 - (‎ 㣣 ‎) 38E3 CJK UNIFIED IDEOGRAPH-38E3 -← (‎ 㣣 ‎) 2F89B CJK COMPATIBILITY IDEOGRAPH-2F89B - -# 㤜 㤜 - (‎ 㤜 ‎) 391C CJK UNIFIED IDEOGRAPH-391C -← (‎ 㤜 ‎) 2F8A2 CJK COMPATIBILITY IDEOGRAPH-2F8A2 - -# 㤺 㤺 - (‎ 㤺 ‎) 393A CJK UNIFIED IDEOGRAPH-393A -← (‎ 㤺 ‎) 2F8A1 CJK COMPATIBILITY IDEOGRAPH-2F8A1 - -# 㨮 㨮 - (‎ 㨮 ‎) 3A2E CJK UNIFIED IDEOGRAPH-3A2E -← (‎ 㨮 ‎) 2F8C2 CJK COMPATIBILITY IDEOGRAPH-2F8C2 - -# 㩁 搉 - (‎ 㩁 ‎) 3A41 CJK UNIFIED IDEOGRAPH-3A41 -← (‎ 搉 ‎) 6409 CJK UNIFIED IDEOGRAPH-6409 - -# 㩬 㩬 - (‎ 㩬 ‎) 3A6C CJK UNIFIED IDEOGRAPH-3A6C -← (‎ 㩬 ‎) 2F8C7 CJK COMPATIBILITY IDEOGRAPH-2F8C7 - -# 㫚 曶 - (‎ 㫚 ‎) 3ADA CJK UNIFIED IDEOGRAPH-3ADA -← (‎ 曶 ‎) 66F6 CJK UNIFIED IDEOGRAPH-66F6 - -# 㫤 㫤 - (‎ 㫤 ‎) 3AE4 CJK UNIFIED IDEOGRAPH-3AE4 -← (‎ 㫤 ‎) 2F8D1 CJK COMPATIBILITY IDEOGRAPH-2F8D1 - -# 㬈 㬈 - (‎ 㬈 ‎) 3B08 CJK UNIFIED IDEOGRAPH-3B08 -← (‎ 㬈 ‎) 2F8D0 CJK COMPATIBILITY IDEOGRAPH-2F8D0 - -# 㬙 㬙 - (‎ 㬙 ‎) 3B19 CJK UNIFIED IDEOGRAPH-3B19 -← (‎ 㬙 ‎) 2F8CE CJK COMPATIBILITY IDEOGRAPH-2F8CE - -# 㬵 胶 - (‎ 㬵 ‎) 3B35 CJK UNIFIED IDEOGRAPH-3B35 -← (‎ 胶 ‎) 80F6 CJK UNIFIED IDEOGRAPH-80F6 - -# 㬺 幐 - (‎ 㬺 ‎) 3B3A CJK UNIFIED IDEOGRAPH-3B3A -← (‎ 幐 ‎) 5E50 CJK UNIFIED IDEOGRAPH-5E50 - -# 㬻 䐠 - (‎ 㬻 ‎) 3B3B CJK UNIFIED IDEOGRAPH-3B3B -← (‎ 䐠 ‎) 4420 CJK UNIFIED IDEOGRAPH-4420 - -# 㭉 㭉 - (‎ 㭉 ‎) 3B49 CJK UNIFIED IDEOGRAPH-3B49 -← (‎ 㭉 ‎) 2F8DE CJK COMPATIBILITY IDEOGRAPH-2F8DE - -# 㮝 㮝 㮝 - (‎ 㮝 ‎) 3B9D CJK UNIFIED IDEOGRAPH-3B9D -← (‎ 㮝 ‎) FAD2 CJK COMPATIBILITY IDEOGRAPH-FAD2 -← (‎ 㮝 ‎) 2F8E7 CJK COMPATIBILITY IDEOGRAPH-2F8E7 - -# 㮣 槩 - (‎ 㮣 ‎) 3BA3 CJK UNIFIED IDEOGRAPH-3BA3 -← (‎ 槩 ‎) 69E9 CJK UNIFIED IDEOGRAPH-69E9 - -# 㰘 㰘 - (‎ 㰘 ‎) 3C18 CJK UNIFIED IDEOGRAPH-3C18 -← (‎ 㰘 ‎) 2F8EE CJK COMPATIBILITY IDEOGRAPH-2F8EE - -# 㱎 㱎 - (‎ 㱎 ‎) 3C4E CJK UNIFIED IDEOGRAPH-3C4E -← (‎ 㱎 ‎) 2F8F2 CJK COMPATIBILITY IDEOGRAPH-2F8F2 - -# 㴳 㴳 - (‎ 㴳 ‎) 3D33 CJK UNIFIED IDEOGRAPH-3D33 -← (‎ 㴳 ‎) 2F90A CJK COMPATIBILITY IDEOGRAPH-2F90A - -# 㶖 㶖 - (‎ 㶖 ‎) 3D96 CJK UNIFIED IDEOGRAPH-3D96 -← (‎ 㶖 ‎) 2F916 CJK COMPATIBILITY IDEOGRAPH-2F916 - -# 㺬 㺬 - (‎ 㺬 ‎) 3EAC CJK UNIFIED IDEOGRAPH-3EAC -← (‎ 㺬 ‎) 2F92A CJK COMPATIBILITY IDEOGRAPH-2F92A - -# 㺸 㺸 㺸 - (‎ 㺸 ‎) 3EB8 CJK UNIFIED IDEOGRAPH-3EB8 -← (‎ 㺸 ‎) 2F92C CJK COMPATIBILITY IDEOGRAPH-2F92C -← (‎ 㺸 ‎) 2F92D CJK COMPATIBILITY IDEOGRAPH-2F92D - -# 㼛 㼛 - (‎ 㼛 ‎) 3F1B CJK UNIFIED IDEOGRAPH-3F1B -← (‎ 㼛 ‎) 2F933 CJK COMPATIBILITY IDEOGRAPH-2F933 - -# 㿼 㿼 - (‎ 㿼 ‎) 3FFC CJK UNIFIED IDEOGRAPH-3FFC -← (‎ 㿼 ‎) 2F93E CJK COMPATIBILITY IDEOGRAPH-2F93E - -# 䀈 䀈 - (‎ 䀈 ‎) 4008 CJK UNIFIED IDEOGRAPH-4008 -← (‎ 䀈 ‎) 2F93F CJK COMPATIBILITY IDEOGRAPH-2F93F - -# 䀘 䀘 - (‎ 䀘 ‎) 4018 CJK UNIFIED IDEOGRAPH-4018 -← (‎ 䀘 ‎) FAD3 CJK COMPATIBILITY IDEOGRAPH-FAD3 - -# 䀹 鿃 䀹 䀹 - (‎ 䀹 ‎) 4039 CJK UNIFIED IDEOGRAPH-4039 -← (‎ 鿃 ‎) 9FC3 CJK UNIFIED IDEOGRAPH-9FC3 # →䀹→ -← (‎ 䀹 ‎) FAD4 CJK COMPATIBILITY IDEOGRAPH-FAD4 -← (‎ 䀹 ‎) 2F949 CJK COMPATIBILITY IDEOGRAPH-2F949 - -# 䀿 晣 - (‎ 䀿 ‎) 403F CJK UNIFIED IDEOGRAPH-403F -← (‎ 晣 ‎) 6663 CJK UNIFIED IDEOGRAPH-6663 - -# 䁆 䁆 - (‎ 䁆 ‎) 4046 CJK UNIFIED IDEOGRAPH-4046 -← (‎ 䁆 ‎) 2F94B CJK COMPATIBILITY IDEOGRAPH-2F94B - -# 䂖 䂖 - (‎ 䂖 ‎) 4096 CJK UNIFIED IDEOGRAPH-4096 -← (‎ 䂖 ‎) 2F94C CJK COMPATIBILITY IDEOGRAPH-2F94C - -# 䃣 䃣 - (‎ 䃣 ‎) 40E3 CJK UNIFIED IDEOGRAPH-40E3 -← (‎ 䃣 ‎) 2F951 CJK COMPATIBILITY IDEOGRAPH-2F951 - -# 䄯 䄯 - (‎ 䄯 ‎) 412F CJK UNIFIED IDEOGRAPH-412F -← (‎ 䄯 ‎) 2F958 CJK COMPATIBILITY IDEOGRAPH-2F958 - -# 䈂 䈂 - (‎ 䈂 ‎) 4202 CJK UNIFIED IDEOGRAPH-4202 -← (‎ 䈂 ‎) 2F960 CJK COMPATIBILITY IDEOGRAPH-2F960 - -# 䈧 䈧 - (‎ 䈧 ‎) 4227 CJK UNIFIED IDEOGRAPH-4227 -← (‎ 䈧 ‎) 2F964 CJK COMPATIBILITY IDEOGRAPH-2F964 - -# 䊠 䊠 - (‎ 䊠 ‎) 42A0 CJK UNIFIED IDEOGRAPH-42A0 -← (‎ 䊠 ‎) 2F967 CJK COMPATIBILITY IDEOGRAPH-2F967 - -# 䌁 䌁 - (‎ 䌁 ‎) 4301 CJK UNIFIED IDEOGRAPH-4301 -← (‎ 䌁 ‎) 2F96D CJK COMPATIBILITY IDEOGRAPH-2F96D - -# 䌴 䌴 - (‎ 䌴 ‎) 4334 CJK UNIFIED IDEOGRAPH-4334 -← (‎ 䌴 ‎) 2F971 CJK COMPATIBILITY IDEOGRAPH-2F971 - -# 䍙 䍙 - (‎ 䍙 ‎) 4359 CJK UNIFIED IDEOGRAPH-4359 -← (‎ 䍙 ‎) 2F974 CJK COMPATIBILITY IDEOGRAPH-2F974 - -# 䏕 䏕 - (‎ 䏕 ‎) 43D5 CJK UNIFIED IDEOGRAPH-43D5 -← (‎ 䏕 ‎) 2F981 CJK COMPATIBILITY IDEOGRAPH-2F981 - -# 䏙 䏙 - (‎ 䏙 ‎) 43D9 CJK UNIFIED IDEOGRAPH-43D9 -← (‎ 䏙 ‎) 2F8D7 CJK COMPATIBILITY IDEOGRAPH-2F8D7 - -# 䐋 䐋 - (‎ 䐋 ‎) 440B CJK UNIFIED IDEOGRAPH-440B -← (‎ 䐋 ‎) 2F984 CJK COMPATIBILITY IDEOGRAPH-2F984 - -# 䑃 朦 - (‎ 䑃 ‎) 4443 CJK UNIFIED IDEOGRAPH-4443 -← (‎ 朦 ‎) 6726 CJK UNIFIED IDEOGRAPH-6726 - -# 䑫 䑫 - (‎ 䑫 ‎) 446B CJK UNIFIED IDEOGRAPH-446B -← (‎ 䑫 ‎) 2F98E CJK COMPATIBILITY IDEOGRAPH-2F98E - -# 䔫 䔫 - (‎ 䔫 ‎) 452B CJK UNIFIED IDEOGRAPH-452B -← (‎ 䔫 ‎) 2F9A7 CJK COMPATIBILITY IDEOGRAPH-2F9A7 - -# 䕝 䕝 - (‎ 䕝 ‎) 455D CJK UNIFIED IDEOGRAPH-455D -← (‎ 䕝 ‎) 2F9AE CJK COMPATIBILITY IDEOGRAPH-2F9AE - -# 䕡 䕡 - (‎ 䕡 ‎) 4561 CJK UNIFIED IDEOGRAPH-4561 -← (‎ 䕡 ‎) 2F9AF CJK COMPATIBILITY IDEOGRAPH-2F9AF - -# 䕫 䕫 - (‎ 䕫 ‎) 456B CJK UNIFIED IDEOGRAPH-456B -← (‎ 䕫 ‎) 2F9B2 CJK COMPATIBILITY IDEOGRAPH-2F9B2 - -# 䗗 䗗 - (‎ 䗗 ‎) 45D7 CJK UNIFIED IDEOGRAPH-45D7 -← (‎ 䗗 ‎) 2F9BF CJK COMPATIBILITY IDEOGRAPH-2F9BF - -# 䗹 䗹 - (‎ 䗹 ‎) 45F9 CJK UNIFIED IDEOGRAPH-45F9 -← (‎ 䗹 ‎) 2F9C2 CJK COMPATIBILITY IDEOGRAPH-2F9C2 - -# 䘵 䘵 - (‎ 䘵 ‎) 4635 CJK UNIFIED IDEOGRAPH-4635 -← (‎ 䘵 ‎) 2F9C8 CJK COMPATIBILITY IDEOGRAPH-2F9C8 - -# 䚶 訞 - (‎ 䚶 ‎) 46B6 CJK UNIFIED IDEOGRAPH-46B6 -← (‎ 訞 ‎) 8A1E CJK UNIFIED IDEOGRAPH-8A1E - -# 䚾 䚾 - (‎ 䚾 ‎) 46BE CJK UNIFIED IDEOGRAPH-46BE -← (‎ 䚾 ‎) 2F9CD CJK COMPATIBILITY IDEOGRAPH-2F9CD - -# 䛇 䛇 - (‎ 䛇 ‎) 46C7 CJK UNIFIED IDEOGRAPH-46C7 -← (‎ 䛇 ‎) 2F9CE CJK COMPATIBILITY IDEOGRAPH-2F9CE - -# 䦕 䦕 - (‎ 䦕 ‎) 4995 CJK UNIFIED IDEOGRAPH-4995 -← (‎ 䦕 ‎) 2F9EF CJK COMPATIBILITY IDEOGRAPH-2F9EF - -# 䧦 䧦 - (‎ 䧦 ‎) 49E6 CJK UNIFIED IDEOGRAPH-49E6 -← (‎ 䧦 ‎) 2F9F2 CJK COMPATIBILITY IDEOGRAPH-2F9F2 - -# 䩮 䩮 - (‎ 䩮 ‎) 4A6E CJK UNIFIED IDEOGRAPH-4A6E -← (‎ 䩮 ‎) 2F9F8 CJK COMPATIBILITY IDEOGRAPH-2F9F8 - -# 䩶 䩶 - (‎ 䩶 ‎) 4A76 CJK UNIFIED IDEOGRAPH-4A76 -← (‎ 䩶 ‎) 2F9F9 CJK COMPATIBILITY IDEOGRAPH-2F9F9 - -# 䪲 䪲 - (‎ 䪲 ‎) 4AB2 CJK UNIFIED IDEOGRAPH-4AB2 -← (‎ 䪲 ‎) 2F9FC CJK COMPATIBILITY IDEOGRAPH-2F9FC - -# 䬳 䬳 - (‎ 䬳 ‎) 4B33 CJK UNIFIED IDEOGRAPH-4B33 -← (‎ 䬳 ‎) 2FA03 CJK COMPATIBILITY IDEOGRAPH-2FA03 - -# 䯎 䯎 - (‎ 䯎 ‎) 4BCE CJK UNIFIED IDEOGRAPH-4BCE -← (‎ 䯎 ‎) 2FA08 CJK COMPATIBILITY IDEOGRAPH-2FA08 - -# 䳎 䳎 - (‎ 䳎 ‎) 4CCE CJK UNIFIED IDEOGRAPH-4CCE -← (‎ 䳎 ‎) 2FA0D CJK COMPATIBILITY IDEOGRAPH-2FA0D - -# 䳭 䳭 - (‎ 䳭 ‎) 4CED CJK UNIFIED IDEOGRAPH-4CED -← (‎ 䳭 ‎) 2FA0E CJK COMPATIBILITY IDEOGRAPH-2FA0E - -# 䳸 䳸 - (‎ 䳸 ‎) 4CF8 CJK UNIFIED IDEOGRAPH-4CF8 -← (‎ 䳸 ‎) 2FA11 CJK COMPATIBILITY IDEOGRAPH-2FA11 - -# 䵖 䵖 - (‎ 䵖 ‎) 4D56 CJK UNIFIED IDEOGRAPH-4D56 -← (‎ 䵖 ‎) 2FA16 CJK COMPATIBILITY IDEOGRAPH-2FA16 - -# 不 不 - (‎ 不 ‎) 4E0D CJK UNIFIED IDEOGRAPH-4E0D -← (‎ 不 ‎) F967 CJK COMPATIBILITY IDEOGRAPH-F967 - -# 並 並 - (‎ 並 ‎) 4E26 CJK UNIFIED IDEOGRAPH-4E26 -← (‎ 並 ‎) FA70 CJK COMPATIBILITY IDEOGRAPH-FA70 - -# 串 串 - (‎ 串 ‎) 4E32 CJK UNIFIED IDEOGRAPH-4E32 -← (‎ 串 ‎) F905 CJK COMPATIBILITY IDEOGRAPH-F905 - -# 丸 丸 - (‎ 丸 ‎) 4E38 CJK UNIFIED IDEOGRAPH-4E38 -← (‎ 丸 ‎) 2F801 CJK COMPATIBILITY IDEOGRAPH-2F801 - -# 丹 丹 - (‎ 丹 ‎) 4E39 CJK UNIFIED IDEOGRAPH-4E39 -← (‎ 丹 ‎) F95E CJK COMPATIBILITY IDEOGRAPH-F95E - -# 丽 丽 - (‎ 丽 ‎) 4E3D CJK UNIFIED IDEOGRAPH-4E3D -← (‎ 丽 ‎) 2F800 CJK COMPATIBILITY IDEOGRAPH-2F800 - -# 乁 乁 - (‎ 乁 ‎) 4E41 CJK UNIFIED IDEOGRAPH-4E41 -← (‎ 乁 ‎) 2F802 CJK COMPATIBILITY IDEOGRAPH-2F802 - -# 亂 亂 - (‎ 亂 ‎) 4E82 CJK UNIFIED IDEOGRAPH-4E82 -← (‎ 亂 ‎) F91B CJK COMPATIBILITY IDEOGRAPH-F91B - -# 了 了 - (‎ 了 ‎) 4E86 CJK UNIFIED IDEOGRAPH-4E86 -← (‎ 了 ‎) F9BA CJK COMPATIBILITY IDEOGRAPH-F9BA - -# 亮 亮 - (‎ 亮 ‎) 4EAE CJK UNIFIED IDEOGRAPH-4EAE -← (‎ 亮 ‎) F977 CJK COMPATIBILITY IDEOGRAPH-F977 - -# 什 什 - (‎ 什 ‎) 4EC0 CJK UNIFIED IDEOGRAPH-4EC0 -← (‎ 什 ‎) F9FD CJK COMPATIBILITY IDEOGRAPH-F9FD - -# 仌 仌 - (‎ 仌 ‎) 4ECC CJK UNIFIED IDEOGRAPH-4ECC -← (‎ 仌 ‎) 2F819 CJK COMPATIBILITY IDEOGRAPH-2F819 - -# 令 令 - (‎ 令 ‎) 4EE4 CJK UNIFIED IDEOGRAPH-4EE4 -← (‎ 令 ‎) F9A8 CJK COMPATIBILITY IDEOGRAPH-F9A8 - -# 你 你 - (‎ 你 ‎) 4F60 CJK UNIFIED IDEOGRAPH-4F60 -← (‎ 你 ‎) 2F804 CJK COMPATIBILITY IDEOGRAPH-2F804 - -# 併 倂 倂 - (‎ 併 ‎) 4F75 CJK UNIFIED IDEOGRAPH-4F75 -← (‎ 倂 ‎) 5002 CJK UNIFIED IDEOGRAPH-5002 -← (‎ 倂 ‎) 2F807 CJK COMPATIBILITY IDEOGRAPH-2F807 # →倂→ - -# 侀 侀 - (‎ 侀 ‎) 4F80 CJK UNIFIED IDEOGRAPH-4F80 -← (‎ 侀 ‎) FA73 CJK COMPATIBILITY IDEOGRAPH-FA73 - -# 來 來 - (‎ 來 ‎) 4F86 CJK UNIFIED IDEOGRAPH-4F86 -← (‎ 來 ‎) F92D CJK COMPATIBILITY IDEOGRAPH-F92D - -# 例 例 - (‎ 例 ‎) 4F8B CJK UNIFIED IDEOGRAPH-4F8B -← (‎ 例 ‎) F9B5 CJK COMPATIBILITY IDEOGRAPH-F9B5 - -# 侮 侮 侮 - (‎ 侮 ‎) 4FAE CJK UNIFIED IDEOGRAPH-4FAE -← (‎ 侮 ‎) FA30 CJK COMPATIBILITY IDEOGRAPH-FA30 -← (‎ 侮 ‎) 2F805 CJK COMPATIBILITY IDEOGRAPH-2F805 - -# 侻 侻 - (‎ 侻 ‎) 4FBB CJK UNIFIED IDEOGRAPH-4FBB -← (‎ 侻 ‎) 2F806 CJK COMPATIBILITY IDEOGRAPH-2F806 - -# 便 便 - (‎ 便 ‎) 4FBF CJK UNIFIED IDEOGRAPH-4FBF -← (‎ 便 ‎) F965 CJK COMPATIBILITY IDEOGRAPH-F965 - -# 値 值 - (‎ 値 ‎) 5024 CJK UNIFIED IDEOGRAPH-5024 -← (‎ 值 ‎) 503C CJK UNIFIED IDEOGRAPH-503C - -# 倫 倫 - (‎ 倫 ‎) 502B CJK UNIFIED IDEOGRAPH-502B -← (‎ 倫 ‎) F9D4 CJK COMPATIBILITY IDEOGRAPH-F9D4 - -# 偺 偺 - (‎ 偺 ‎) 507A CJK UNIFIED IDEOGRAPH-507A -← (‎ 偺 ‎) 2F808 CJK COMPATIBILITY IDEOGRAPH-2F808 - -# 備 備 - (‎ 備 ‎) 5099 CJK UNIFIED IDEOGRAPH-5099 -← (‎ 備 ‎) 2F809 CJK COMPATIBILITY IDEOGRAPH-2F809 - -# 像 像 - (‎ 像 ‎) 50CF CJK UNIFIED IDEOGRAPH-50CF -← (‎ 像 ‎) 2F80B CJK COMPATIBILITY IDEOGRAPH-2F80B - -# 僚 僚 - (‎ 僚 ‎) 50DA CJK UNIFIED IDEOGRAPH-50DA -← (‎ 僚 ‎) F9BB CJK COMPATIBILITY IDEOGRAPH-F9BB - -# 僧 僧 僧 - (‎ 僧 ‎) 50E7 CJK UNIFIED IDEOGRAPH-50E7 -← (‎ 僧 ‎) FA31 CJK COMPATIBILITY IDEOGRAPH-FA31 -← (‎ 僧 ‎) 2F80A CJK COMPATIBILITY IDEOGRAPH-2F80A - -# 充 充 - (‎ 充 ‎) 5145 CJK UNIFIED IDEOGRAPH-5145 -← (‎ 充 ‎) FA74 CJK COMPATIBILITY IDEOGRAPH-FA74 - -# 免 免 免 - (‎ 免 ‎) 514D CJK UNIFIED IDEOGRAPH-514D -← (‎ 免 ‎) FA32 CJK COMPATIBILITY IDEOGRAPH-FA32 -← (‎ 免 ‎) 2F80E CJK COMPATIBILITY IDEOGRAPH-2F80E - -# 兔 兔 - (‎ 兔 ‎) 5154 CJK UNIFIED IDEOGRAPH-5154 -← (‎ 兔 ‎) 2F80F CJK COMPATIBILITY IDEOGRAPH-2F80F - -# 兤 兤 - (‎ 兤 ‎) 5164 CJK UNIFIED IDEOGRAPH-5164 -← (‎ 兤 ‎) 2F810 CJK COMPATIBILITY IDEOGRAPH-2F810 - -# 內 內 - (‎ 內 ‎) 5167 CJK UNIFIED IDEOGRAPH-5167 -← (‎ 內 ‎) 2F814 CJK COMPATIBILITY IDEOGRAPH-2F814 - -# 全 全 - (‎ 全 ‎) 5168 CJK UNIFIED IDEOGRAPH-5168 -← (‎ 全 ‎) FA72 CJK COMPATIBILITY IDEOGRAPH-FA72 - -# 兩 兩 - (‎ 兩 ‎) 5169 CJK UNIFIED IDEOGRAPH-5169 -← (‎ 兩 ‎) F978 CJK COMPATIBILITY IDEOGRAPH-F978 - -# 六 六 - (‎ 六 ‎) 516D CJK UNIFIED IDEOGRAPH-516D -← (‎ 六 ‎) F9D1 CJK COMPATIBILITY IDEOGRAPH-F9D1 - -# 具 具 - (‎ 具 ‎) 5177 CJK UNIFIED IDEOGRAPH-5177 -← (‎ 具 ‎) 2F811 CJK COMPATIBILITY IDEOGRAPH-2F811 - -# 冀 冀 - (‎ 冀 ‎) 5180 CJK UNIFIED IDEOGRAPH-5180 -← (‎ 冀 ‎) FA75 CJK COMPATIBILITY IDEOGRAPH-FA75 - -# 再 再 - (‎ 再 ‎) 518D CJK UNIFIED IDEOGRAPH-518D -← (‎ 再 ‎) 2F815 CJK COMPATIBILITY IDEOGRAPH-2F815 - -# 冒 冒 - (‎ 冒 ‎) 5192 CJK UNIFIED IDEOGRAPH-5192 -← (‎ 冒 ‎) 2F8D2 CJK COMPATIBILITY IDEOGRAPH-2F8D2 - -# 冕 冕 - (‎ 冕 ‎) 5195 CJK UNIFIED IDEOGRAPH-5195 -← (‎ 冕 ‎) 2F8D3 CJK COMPATIBILITY IDEOGRAPH-2F8D3 - -# 冗 冗 - (‎ 冗 ‎) 5197 CJK UNIFIED IDEOGRAPH-5197 -← (‎ 冗 ‎) 2F817 CJK COMPATIBILITY IDEOGRAPH-2F817 - -# 冤 冤 - (‎ 冤 ‎) 51A4 CJK UNIFIED IDEOGRAPH-51A4 -← (‎ 冤 ‎) 2F818 CJK COMPATIBILITY IDEOGRAPH-2F818 - -# 冬 冬 - (‎ 冬 ‎) 51AC CJK UNIFIED IDEOGRAPH-51AC -← (‎ 冬 ‎) 2F81A CJK COMPATIBILITY IDEOGRAPH-2F81A - -# 况 况 况 - (‎ 况 ‎) 51B5 CJK UNIFIED IDEOGRAPH-51B5 -← (‎ 况 ‎) FA71 CJK COMPATIBILITY IDEOGRAPH-FA71 -← (‎ 况 ‎) 2F81B CJK COMPATIBILITY IDEOGRAPH-2F81B - -# 冷 冷 - (‎ 冷 ‎) 51B7 CJK UNIFIED IDEOGRAPH-51B7 -← (‎ 冷 ‎) F92E CJK COMPATIBILITY IDEOGRAPH-F92E - -# 凉 凉 - (‎ 凉 ‎) 51C9 CJK UNIFIED IDEOGRAPH-51C9 -← (‎ 凉 ‎) F979 CJK COMPATIBILITY IDEOGRAPH-F979 - -# 凌 凌 - (‎ 凌 ‎) 51CC CJK UNIFIED IDEOGRAPH-51CC -← (‎ 凌 ‎) F955 CJK COMPATIBILITY IDEOGRAPH-F955 - -# 凜 凜 - (‎ 凜 ‎) 51DC CJK UNIFIED IDEOGRAPH-51DC -← (‎ 凜 ‎) F954 CJK COMPATIBILITY IDEOGRAPH-F954 - -# 凞 凞 - (‎ 凞 ‎) 51DE CJK UNIFIED IDEOGRAPH-51DE -← (‎ 凞 ‎) FA15 CJK COMPATIBILITY IDEOGRAPH-FA15 - -# 刃 刃 - (‎ 刃 ‎) 5203 CJK UNIFIED IDEOGRAPH-5203 -← (‎ 刃 ‎) 2F81E CJK COMPATIBILITY IDEOGRAPH-2F81E - -# 切 切 切 - (‎ 切 ‎) 5207 CJK UNIFIED IDEOGRAPH-5207 -← (‎ 切 ‎) FA00 CJK COMPATIBILITY IDEOGRAPH-FA00 -← (‎ 切 ‎) 2F850 CJK COMPATIBILITY IDEOGRAPH-2F850 - -# 列 列 - (‎ 列 ‎) 5217 CJK UNIFIED IDEOGRAPH-5217 -← (‎ 列 ‎) F99C CJK COMPATIBILITY IDEOGRAPH-F99C - -# 利 利 - (‎ 利 ‎) 5229 CJK UNIFIED IDEOGRAPH-5229 -← (‎ 利 ‎) F9DD CJK COMPATIBILITY IDEOGRAPH-F9DD - -# 刺 刺 - (‎ 刺 ‎) 523A CJK UNIFIED IDEOGRAPH-523A -← (‎ 刺 ‎) F9FF CJK COMPATIBILITY IDEOGRAPH-F9FF - -# 刻 刻 - (‎ 刻 ‎) 523B CJK UNIFIED IDEOGRAPH-523B -← (‎ 刻 ‎) 2F820 CJK COMPATIBILITY IDEOGRAPH-2F820 - -# 剆 剆 - (‎ 剆 ‎) 5246 CJK UNIFIED IDEOGRAPH-5246 -← (‎ 剆 ‎) 2F821 CJK COMPATIBILITY IDEOGRAPH-2F821 - -# 割 割 - (‎ 割 ‎) 5272 CJK UNIFIED IDEOGRAPH-5272 -← (‎ 割 ‎) 2F822 CJK COMPATIBILITY IDEOGRAPH-2F822 - -# 剷 剷 - (‎ 剷 ‎) 5277 CJK UNIFIED IDEOGRAPH-5277 -← (‎ 剷 ‎) 2F823 CJK COMPATIBILITY IDEOGRAPH-2F823 - -# 劉 劉 - (‎ 劉 ‎) 5289 CJK UNIFIED IDEOGRAPH-5289 -← (‎ 劉 ‎) F9C7 CJK COMPATIBILITY IDEOGRAPH-F9C7 - -# 劣 劣 - (‎ 劣 ‎) 52A3 CJK UNIFIED IDEOGRAPH-52A3 -← (‎ 劣 ‎) F99D CJK COMPATIBILITY IDEOGRAPH-F99D - -# 劳 劳 - (‎ 劳 ‎) 52B3 CJK UNIFIED IDEOGRAPH-52B3 -← (‎ 劳 ‎) 2F992 CJK COMPATIBILITY IDEOGRAPH-2F992 - -# 勇 勇 勇 - (‎ 勇 ‎) 52C7 CJK UNIFIED IDEOGRAPH-52C7 -← (‎ 勇 ‎) FA76 CJK COMPATIBILITY IDEOGRAPH-FA76 -← (‎ 勇 ‎) 2F825 CJK COMPATIBILITY IDEOGRAPH-2F825 - -# 勉 勉 勉 - (‎ 勉 ‎) 52C9 CJK UNIFIED IDEOGRAPH-52C9 -← (‎ 勉 ‎) FA33 CJK COMPATIBILITY IDEOGRAPH-FA33 -← (‎ 勉 ‎) 2F826 CJK COMPATIBILITY IDEOGRAPH-2F826 - -# 勒 勒 - (‎ 勒 ‎) 52D2 CJK UNIFIED IDEOGRAPH-52D2 -← (‎ 勒 ‎) F952 CJK COMPATIBILITY IDEOGRAPH-F952 - -# 勞 勞 - (‎ 勞 ‎) 52DE CJK UNIFIED IDEOGRAPH-52DE -← (‎ 勞 ‎) F92F CJK COMPATIBILITY IDEOGRAPH-F92F - -# 勤 勤 勤 - (‎ 勤 ‎) 52E4 CJK UNIFIED IDEOGRAPH-52E4 -← (‎ 勤 ‎) FA34 CJK COMPATIBILITY IDEOGRAPH-FA34 -← (‎ 勤 ‎) 2F827 CJK COMPATIBILITY IDEOGRAPH-2F827 - -# 勵 勵 - (‎ 勵 ‎) 52F5 CJK UNIFIED IDEOGRAPH-52F5 -← (‎ 勵 ‎) F97F CJK COMPATIBILITY IDEOGRAPH-F97F - -# 勺 勺 勺 - (‎ 勺 ‎) 52FA CJK UNIFIED IDEOGRAPH-52FA -← (‎ 勺 ‎) FA77 CJK COMPATIBILITY IDEOGRAPH-FA77 -← (‎ 勺 ‎) 2F828 CJK COMPATIBILITY IDEOGRAPH-2F828 - -# 包 包 - (‎ 包 ‎) 5305 CJK UNIFIED IDEOGRAPH-5305 -← (‎ 包 ‎) 2F829 CJK COMPATIBILITY IDEOGRAPH-2F829 - -# 匆 匆 - (‎ 匆 ‎) 5306 CJK UNIFIED IDEOGRAPH-5306 -← (‎ 匆 ‎) 2F82A CJK COMPATIBILITY IDEOGRAPH-2F82A - -# 北 北 北 - (‎ 北 ‎) 5317 CJK UNIFIED IDEOGRAPH-5317 -← (‎ 北 ‎) F963 CJK COMPATIBILITY IDEOGRAPH-F963 -← (‎ 北 ‎) 2F82B CJK COMPATIBILITY IDEOGRAPH-2F82B - -# 匿 匿 - (‎ 匿 ‎) 533F CJK UNIFIED IDEOGRAPH-533F -← (‎ 匿 ‎) F9EB CJK COMPATIBILITY IDEOGRAPH-F9EB - -# 卉 卉 - (‎ 卉 ‎) 5349 CJK UNIFIED IDEOGRAPH-5349 -← (‎ 卉 ‎) 2F82C CJK COMPATIBILITY IDEOGRAPH-2F82C - -# 卑 卑 卑 - (‎ 卑 ‎) 5351 CJK UNIFIED IDEOGRAPH-5351 -← (‎ 卑 ‎) FA35 CJK COMPATIBILITY IDEOGRAPH-FA35 -← (‎ 卑 ‎) 2F82D CJK COMPATIBILITY IDEOGRAPH-2F82D - -# 博 博 - (‎ 博 ‎) 535A CJK UNIFIED IDEOGRAPH-535A -← (‎ 博 ‎) 2F82E CJK COMPATIBILITY IDEOGRAPH-2F82E - -# 即 即 - (‎ 即 ‎) 5373 CJK UNIFIED IDEOGRAPH-5373 -← (‎ 即 ‎) 2F82F CJK COMPATIBILITY IDEOGRAPH-2F82F - -# 卵 卵 - (‎ 卵 ‎) 5375 CJK UNIFIED IDEOGRAPH-5375 -← (‎ 卵 ‎) F91C CJK COMPATIBILITY IDEOGRAPH-F91C - -# 卽 卽 - (‎ 卽 ‎) 537D CJK UNIFIED IDEOGRAPH-537D -← (‎ 卽 ‎) 2F830 CJK COMPATIBILITY IDEOGRAPH-2F830 - -# 卿 卿 卿 卿 - (‎ 卿 ‎) 537F CJK UNIFIED IDEOGRAPH-537F -← (‎ 卿 ‎) 2F831 CJK COMPATIBILITY IDEOGRAPH-2F831 -← (‎ 卿 ‎) 2F832 CJK COMPATIBILITY IDEOGRAPH-2F832 -← (‎ 卿 ‎) 2F833 CJK COMPATIBILITY IDEOGRAPH-2F833 - -# 參 參 - (‎ 參 ‎) 53C3 CJK UNIFIED IDEOGRAPH-53C3 -← (‎ 參 ‎) F96B CJK COMPATIBILITY IDEOGRAPH-F96B - -# 及 及 - (‎ 及 ‎) 53CA CJK UNIFIED IDEOGRAPH-53CA -← (‎ 及 ‎) 2F836 CJK COMPATIBILITY IDEOGRAPH-2F836 - -# 叟 叟 - (‎ 叟 ‎) 53DF CJK UNIFIED IDEOGRAPH-53DF -← (‎ 叟 ‎) 2F837 CJK COMPATIBILITY IDEOGRAPH-2F837 - -# 句 句 - (‎ 句 ‎) 53E5 CJK UNIFIED IDEOGRAPH-53E5 -← (‎ 句 ‎) F906 CJK COMPATIBILITY IDEOGRAPH-F906 - -# 叫 叫 - (‎ 叫 ‎) 53EB CJK UNIFIED IDEOGRAPH-53EB -← (‎ 叫 ‎) 2F839 CJK COMPATIBILITY IDEOGRAPH-2F839 - -# 叱 叱 - (‎ 叱 ‎) 53F1 CJK UNIFIED IDEOGRAPH-53F1 -← (‎ 叱 ‎) 2F83A CJK COMPATIBILITY IDEOGRAPH-2F83A - -# 吆 吆 - (‎ 吆 ‎) 5406 CJK UNIFIED IDEOGRAPH-5406 -← (‎ 吆 ‎) 2F83B CJK COMPATIBILITY IDEOGRAPH-2F83B - -# 吏 吏 - (‎ 吏 ‎) 540F CJK UNIFIED IDEOGRAPH-540F -← (‎ 吏 ‎) F9DE CJK COMPATIBILITY IDEOGRAPH-F9DE - -# 吝 吝 - (‎ 吝 ‎) 541D CJK UNIFIED IDEOGRAPH-541D -← (‎ 吝 ‎) F9ED CJK COMPATIBILITY IDEOGRAPH-F9ED - -# 吸 吸 - (‎ 吸 ‎) 5438 CJK UNIFIED IDEOGRAPH-5438 -← (‎ 吸 ‎) 2F83D CJK COMPATIBILITY IDEOGRAPH-2F83D - -# 呂 呂 - (‎ 呂 ‎) 5442 CJK UNIFIED IDEOGRAPH-5442 -← (‎ 呂 ‎) F980 CJK COMPATIBILITY IDEOGRAPH-F980 - -# 呈 呈 - (‎ 呈 ‎) 5448 CJK UNIFIED IDEOGRAPH-5448 -← (‎ 呈 ‎) 2F83E CJK COMPATIBILITY IDEOGRAPH-2F83E - -# 周 周 - (‎ 周 ‎) 5468 CJK UNIFIED IDEOGRAPH-5468 -← (‎ 周 ‎) 2F83F CJK COMPATIBILITY IDEOGRAPH-2F83F - -# 咞 咞 - (‎ 咞 ‎) 549E CJK UNIFIED IDEOGRAPH-549E -← (‎ 咞 ‎) 2F83C CJK COMPATIBILITY IDEOGRAPH-2F83C - -# 咢 咢 - (‎ 咢 ‎) 54A2 CJK UNIFIED IDEOGRAPH-54A2 -← (‎ 咢 ‎) 2F840 CJK COMPATIBILITY IDEOGRAPH-2F840 - -# 咽 咽 - (‎ 咽 ‎) 54BD CJK UNIFIED IDEOGRAPH-54BD -← (‎ 咽 ‎) F99E CJK COMPATIBILITY IDEOGRAPH-F99E - -# 哶 哶 - (‎ 哶 ‎) 54F6 CJK UNIFIED IDEOGRAPH-54F6 -← (‎ 哶 ‎) 2F841 CJK COMPATIBILITY IDEOGRAPH-2F841 - -# 唐 唐 - (‎ 唐 ‎) 5510 CJK UNIFIED IDEOGRAPH-5510 -← (‎ 唐 ‎) 2F842 CJK COMPATIBILITY IDEOGRAPH-2F842 - -# 啓 啟 啓 - (‎ 啓 ‎) 5553 CJK UNIFIED IDEOGRAPH-5553 -← (‎ 啟 ‎) 555F CJK UNIFIED IDEOGRAPH-555F -← (‎ 啓 ‎) 2F843 CJK COMPATIBILITY IDEOGRAPH-2F843 - -# 啕 啕 - (‎ 啕 ‎) 5555 CJK UNIFIED IDEOGRAPH-5555 -← (‎ 啕 ‎) FA79 CJK COMPATIBILITY IDEOGRAPH-FA79 - -# 啣 啣 - (‎ 啣 ‎) 5563 CJK UNIFIED IDEOGRAPH-5563 -← (‎ 啣 ‎) 2F844 CJK COMPATIBILITY IDEOGRAPH-2F844 - -# 善 善 善 - (‎ 善 ‎) 5584 CJK UNIFIED IDEOGRAPH-5584 -← (‎ 善 ‎) 2F845 CJK COMPATIBILITY IDEOGRAPH-2F845 -← (‎ 善 ‎) 2F846 CJK COMPATIBILITY IDEOGRAPH-2F846 - -# 喇 喇 - (‎ 喇 ‎) 5587 CJK UNIFIED IDEOGRAPH-5587 -← (‎ 喇 ‎) F90B CJK COMPATIBILITY IDEOGRAPH-F90B - -# 喙 喙 喙 - (‎ 喙 ‎) 5599 CJK UNIFIED IDEOGRAPH-5599 -← (‎ 喙 ‎) FA7A CJK COMPATIBILITY IDEOGRAPH-FA7A -← (‎ 喙 ‎) 2F847 CJK COMPATIBILITY IDEOGRAPH-2F847 - -# 喝 喝 喝 - (‎ 喝 ‎) 559D CJK UNIFIED IDEOGRAPH-559D -← (‎ 喝 ‎) FA36 CJK COMPATIBILITY IDEOGRAPH-FA36 -← (‎ 喝 ‎) FA78 CJK COMPATIBILITY IDEOGRAPH-FA78 - -# 喫 喫 - (‎ 喫 ‎) 55AB CJK UNIFIED IDEOGRAPH-55AB -← (‎ 喫 ‎) 2F848 CJK COMPATIBILITY IDEOGRAPH-2F848 - -# 喳 喳 - (‎ 喳 ‎) 55B3 CJK UNIFIED IDEOGRAPH-55B3 -← (‎ 喳 ‎) 2F849 CJK COMPATIBILITY IDEOGRAPH-2F849 - -# 嗀 嗀 - (‎ 嗀 ‎) 55C0 CJK UNIFIED IDEOGRAPH-55C0 -← (‎ 嗀 ‎) FA0D CJK COMPATIBILITY IDEOGRAPH-FA0D - -# 嗂 嗂 - (‎ 嗂 ‎) 55C2 CJK UNIFIED IDEOGRAPH-55C2 -← (‎ 嗂 ‎) 2F84A CJK COMPATIBILITY IDEOGRAPH-2F84A - -# 嗢 嗢 - (‎ 嗢 ‎) 55E2 CJK UNIFIED IDEOGRAPH-55E2 -← (‎ 嗢 ‎) FA7B CJK COMPATIBILITY IDEOGRAPH-FA7B - -# 嘆 嘆 嘆 - (‎ 嘆 ‎) 5606 CJK UNIFIED IDEOGRAPH-5606 -← (‎ 嘆 ‎) FA37 CJK COMPATIBILITY IDEOGRAPH-FA37 -← (‎ 嘆 ‎) 2F84C CJK COMPATIBILITY IDEOGRAPH-2F84C - -# 噑 噑 - (‎ 噑 ‎) 5651 CJK UNIFIED IDEOGRAPH-5651 -← (‎ 噑 ‎) 2F84E CJK COMPATIBILITY IDEOGRAPH-2F84E - -# 器 器 - (‎ 器 ‎) 5668 CJK UNIFIED IDEOGRAPH-5668 -← (‎ 器 ‎) FA38 CJK COMPATIBILITY IDEOGRAPH-FA38 - -# 噴 噴 - (‎ 噴 ‎) 5674 CJK UNIFIED IDEOGRAPH-5674 -← (‎ 噴 ‎) 2F84F CJK COMPATIBILITY IDEOGRAPH-2F84F - -# 囹 囹 - (‎ 囹 ‎) 56F9 CJK UNIFIED IDEOGRAPH-56F9 -← (‎ 囹 ‎) F9A9 CJK COMPATIBILITY IDEOGRAPH-F9A9 - -# 圖 圖 - (‎ 圖 ‎) 5716 CJK UNIFIED IDEOGRAPH-5716 -← (‎ 圖 ‎) 2F84B CJK COMPATIBILITY IDEOGRAPH-2F84B - -# 圗 圗 - (‎ 圗 ‎) 5717 CJK UNIFIED IDEOGRAPH-5717 -← (‎ 圗 ‎) 2F84D CJK COMPATIBILITY IDEOGRAPH-2F84D - -# 型 型 - (‎ 型 ‎) 578B CJK UNIFIED IDEOGRAPH-578B -← (‎ 型 ‎) 2F855 CJK COMPATIBILITY IDEOGRAPH-2F855 - -# 城 城 - (‎ 城 ‎) 57CE CJK UNIFIED IDEOGRAPH-57CE -← (‎ 城 ‎) 2F852 CJK COMPATIBILITY IDEOGRAPH-2F852 - -# 埴 埴 - (‎ 埴 ‎) 57F4 CJK UNIFIED IDEOGRAPH-57F4 -← (‎ 埴 ‎) 2F853 CJK COMPATIBILITY IDEOGRAPH-2F853 - -# 堍 堍 - (‎ 堍 ‎) 580D CJK UNIFIED IDEOGRAPH-580D -← (‎ 堍 ‎) 2F854 CJK COMPATIBILITY IDEOGRAPH-2F854 - -# 報 報 - (‎ 報 ‎) 5831 CJK UNIFIED IDEOGRAPH-5831 -← (‎ 報 ‎) 2F857 CJK COMPATIBILITY IDEOGRAPH-2F857 - -# 堲 堲 - (‎ 堲 ‎) 5832 CJK UNIFIED IDEOGRAPH-5832 -← (‎ 堲 ‎) 2F856 CJK COMPATIBILITY IDEOGRAPH-2F856 - -# 塀 塀 - (‎ 塀 ‎) 5840 CJK UNIFIED IDEOGRAPH-5840 -← (‎ 塀 ‎) FA39 CJK COMPATIBILITY IDEOGRAPH-FA39 - -# 塚 塚 塚 - (‎ 塚 ‎) 585A CJK UNIFIED IDEOGRAPH-585A -← (‎ 塚 ‎) FA10 CJK COMPATIBILITY IDEOGRAPH-FA10 -← (‎ 塚 ‎) FA7C CJK COMPATIBILITY IDEOGRAPH-FA7C - -# 塞 塞 - (‎ 塞 ‎) 585E CJK UNIFIED IDEOGRAPH-585E -← (‎ 塞 ‎) F96C CJK COMPATIBILITY IDEOGRAPH-F96C - -# 塡 填 - (‎ 塡 ‎) 5861 CJK UNIFIED IDEOGRAPH-5861 -← (‎ 填 ‎) 586B CJK UNIFIED IDEOGRAPH-586B - -# 墨 墨 - (‎ 墨 ‎) 58A8 CJK UNIFIED IDEOGRAPH-58A8 -← (‎ 墨 ‎) FA3A CJK COMPATIBILITY IDEOGRAPH-FA3A - -# 墫 壿 - (‎ 墫 ‎) 58AB CJK UNIFIED IDEOGRAPH-58AB -← (‎ 壿 ‎) 58FF CJK UNIFIED IDEOGRAPH-58FF - -# 墬 墬 - (‎ 墬 ‎) 58AC CJK UNIFIED IDEOGRAPH-58AC -← (‎ 墬 ‎) 2F858 CJK COMPATIBILITY IDEOGRAPH-2F858 - -# 墳 墳 - (‎ 墳 ‎) 58B3 CJK UNIFIED IDEOGRAPH-58B3 -← (‎ 墳 ‎) FA7D CJK COMPATIBILITY IDEOGRAPH-FA7D - -# 壘 壘 - (‎ 壘 ‎) 58D8 CJK UNIFIED IDEOGRAPH-58D8 -← (‎ 壘 ‎) F94A CJK COMPATIBILITY IDEOGRAPH-F94A - -# 壟 壟 - (‎ 壟 ‎) 58DF CJK UNIFIED IDEOGRAPH-58DF -← (‎ 壟 ‎) F942 CJK COMPATIBILITY IDEOGRAPH-F942 - -# 壮 壮 - (‎ 壮 ‎) 58EE CJK UNIFIED IDEOGRAPH-58EE -← (‎ 壮 ‎) 2F851 CJK COMPATIBILITY IDEOGRAPH-2F851 - -# 売 売 - (‎ 売 ‎) 58F2 CJK UNIFIED IDEOGRAPH-58F2 -← (‎ 売 ‎) 2F85A CJK COMPATIBILITY IDEOGRAPH-2F85A - -# 壷 壷 - (‎ 壷 ‎) 58F7 CJK UNIFIED IDEOGRAPH-58F7 -← (‎ 壷 ‎) 2F85B CJK COMPATIBILITY IDEOGRAPH-2F85B - -# 夆 夆 - (‎ 夆 ‎) 5906 CJK UNIFIED IDEOGRAPH-5906 -← (‎ 夆 ‎) 2F85C CJK COMPATIBILITY IDEOGRAPH-2F85C - -# 多 多 - (‎ 多 ‎) 591A CJK UNIFIED IDEOGRAPH-591A -← (‎ 多 ‎) 2F85D CJK COMPATIBILITY IDEOGRAPH-2F85D - -# 夢 夢 - (‎ 夢 ‎) 5922 CJK UNIFIED IDEOGRAPH-5922 -← (‎ 夢 ‎) 2F85E CJK COMPATIBILITY IDEOGRAPH-2F85E - -# 奄 奄 - (‎ 奄 ‎) 5944 CJK UNIFIED IDEOGRAPH-5944 -← (‎ 奄 ‎) FA7E CJK COMPATIBILITY IDEOGRAPH-FA7E - -# 奈 奈 - (‎ 奈 ‎) 5948 CJK UNIFIED IDEOGRAPH-5948 -← (‎ 奈 ‎) F90C CJK COMPATIBILITY IDEOGRAPH-F90C - -# 契 契 - (‎ 契 ‎) 5951 CJK UNIFIED IDEOGRAPH-5951 -← (‎ 契 ‎) F909 CJK COMPATIBILITY IDEOGRAPH-F909 - -# 奔 奔 - (‎ 奔 ‎) 5954 CJK UNIFIED IDEOGRAPH-5954 -← (‎ 奔 ‎) FA7F CJK COMPATIBILITY IDEOGRAPH-FA7F - -# 奢 奢 - (‎ 奢 ‎) 5962 CJK UNIFIED IDEOGRAPH-5962 -← (‎ 奢 ‎) 2F85F CJK COMPATIBILITY IDEOGRAPH-2F85F - -# 姘 姘 - (‎ 姘 ‎) 59D8 CJK UNIFIED IDEOGRAPH-59D8 -← (‎ 姘 ‎) 2F865 CJK COMPATIBILITY IDEOGRAPH-2F865 - -# 姬 姬 - (‎ 姬 ‎) 59EC CJK UNIFIED IDEOGRAPH-59EC -← (‎ 姬 ‎) 2F862 CJK COMPATIBILITY IDEOGRAPH-2F862 - -# 娛 娛 - (‎ 娛 ‎) 5A1B CJK UNIFIED IDEOGRAPH-5A1B -← (‎ 娛 ‎) 2F863 CJK COMPATIBILITY IDEOGRAPH-2F863 - -# 娧 娧 - (‎ 娧 ‎) 5A27 CJK UNIFIED IDEOGRAPH-5A27 -← (‎ 娧 ‎) 2F864 CJK COMPATIBILITY IDEOGRAPH-2F864 - -# 婢 婢 - (‎ 婢 ‎) 5A62 CJK UNIFIED IDEOGRAPH-5A62 -← (‎ 婢 ‎) FA80 CJK COMPATIBILITY IDEOGRAPH-FA80 - -# 婦 婦 - (‎ 婦 ‎) 5A66 CJK UNIFIED IDEOGRAPH-5A66 -← (‎ 婦 ‎) 2F866 CJK COMPATIBILITY IDEOGRAPH-2F866 - -# 媯 嬀 - (‎ 媯 ‎) 5AAF CJK UNIFIED IDEOGRAPH-5AAF -← (‎ 嬀 ‎) 5B00 CJK UNIFIED IDEOGRAPH-5B00 - -# 媵 媵 - (‎ 媵 ‎) 5AB5 CJK UNIFIED IDEOGRAPH-5AB5 -← (‎ 媵 ‎) 2F986 CJK COMPATIBILITY IDEOGRAPH-2F986 - -# 嬈 嬈 - (‎ 嬈 ‎) 5B08 CJK UNIFIED IDEOGRAPH-5B08 -← (‎ 嬈 ‎) 2F869 CJK COMPATIBILITY IDEOGRAPH-2F869 - -# 嬨 嬨 - (‎ 嬨 ‎) 5B28 CJK UNIFIED IDEOGRAPH-5B28 -← (‎ 嬨 ‎) FA81 CJK COMPATIBILITY IDEOGRAPH-FA81 - -# 嬾 嬾 嬾 - (‎ 嬾 ‎) 5B3E CJK UNIFIED IDEOGRAPH-5B3E -← (‎ 嬾 ‎) 2F86A CJK COMPATIBILITY IDEOGRAPH-2F86A -← (‎ 嬾 ‎) 2F86B CJK COMPATIBILITY IDEOGRAPH-2F86B - -# 宅 宅 - (‎ 宅 ‎) 5B85 CJK UNIFIED IDEOGRAPH-5B85 -← (‎ 宅 ‎) FA04 CJK COMPATIBILITY IDEOGRAPH-FA04 - -# 寃 寃 - (‎ 寃 ‎) 5BC3 CJK UNIFIED IDEOGRAPH-5BC3 -← (‎ 寃 ‎) 2F86D CJK COMPATIBILITY IDEOGRAPH-2F86D - -# 寘 寘 - (‎ 寘 ‎) 5BD8 CJK UNIFIED IDEOGRAPH-5BD8 -← (‎ 寘 ‎) 2F86E CJK COMPATIBILITY IDEOGRAPH-2F86E - -# 寧 寧 寧 寧 - (‎ 寧 ‎) 5BE7 CJK UNIFIED IDEOGRAPH-5BE7 -← (‎ 寧 ‎) F95F CJK COMPATIBILITY IDEOGRAPH-F95F -← (‎ 寧 ‎) F9AA CJK COMPATIBILITY IDEOGRAPH-F9AA -← (‎ 寧 ‎) 2F86F CJK COMPATIBILITY IDEOGRAPH-2F86F - -# 寮 寮 - (‎ 寮 ‎) 5BEE CJK UNIFIED IDEOGRAPH-5BEE -← (‎ 寮 ‎) F9BC CJK COMPATIBILITY IDEOGRAPH-F9BC - -# 寳 寳 - (‎ 寳 ‎) 5BF3 CJK UNIFIED IDEOGRAPH-5BF3 -← (‎ 寳 ‎) 2F870 CJK COMPATIBILITY IDEOGRAPH-2F870 - -# 寿 寿 - (‎ 寿 ‎) 5BFF CJK UNIFIED IDEOGRAPH-5BFF -← (‎ 寿 ‎) 2F872 CJK COMPATIBILITY IDEOGRAPH-2F872 - -# 将 将 - (‎ 将 ‎) 5C06 CJK UNIFIED IDEOGRAPH-5C06 -← (‎ 将 ‎) 2F873 CJK COMPATIBILITY IDEOGRAPH-2F873 - -# 尿 尿 - (‎ 尿 ‎) 5C3F CJK UNIFIED IDEOGRAPH-5C3F -← (‎ 尿 ‎) F9BD CJK COMPATIBILITY IDEOGRAPH-F9BD - -# 屠 屠 - (‎ 屠 ‎) 5C60 CJK UNIFIED IDEOGRAPH-5C60 -← (‎ 屠 ‎) 2F877 CJK COMPATIBILITY IDEOGRAPH-2F877 - -# 屢 屢 - (‎ 屢 ‎) 5C62 CJK UNIFIED IDEOGRAPH-5C62 -← (‎ 屢 ‎) F94B CJK COMPATIBILITY IDEOGRAPH-F94B - -# 層 層 - (‎ 層 ‎) 5C64 CJK UNIFIED IDEOGRAPH-5C64 -← (‎ 層 ‎) FA3B CJK COMPATIBILITY IDEOGRAPH-FA3B - -# 履 履 - (‎ 履 ‎) 5C65 CJK UNIFIED IDEOGRAPH-5C65 -← (‎ 履 ‎) F9DF CJK COMPATIBILITY IDEOGRAPH-F9DF - -# 岍 岍 - (‎ 岍 ‎) 5C8D CJK UNIFIED IDEOGRAPH-5C8D -← (‎ 岍 ‎) 2F87A CJK COMPATIBILITY IDEOGRAPH-2F87A - -# 峀 峀 - (‎ 峀 ‎) 5CC0 CJK UNIFIED IDEOGRAPH-5CC0 -← (‎ 峀 ‎) 2F879 CJK COMPATIBILITY IDEOGRAPH-2F879 - -# 崙 崙 - (‎ 崙 ‎) 5D19 CJK UNIFIED IDEOGRAPH-5D19 -← (‎ 崙 ‎) F9D5 CJK COMPATIBILITY IDEOGRAPH-F9D5 - -# 嵃 嵃 - (‎ 嵃 ‎) 5D43 CJK UNIFIED IDEOGRAPH-5D43 -← (‎ 嵃 ‎) 2F87C CJK COMPATIBILITY IDEOGRAPH-2F87C - -# 嵐 嵐 - (‎ 嵐 ‎) 5D50 CJK UNIFIED IDEOGRAPH-5D50 -← (‎ 嵐 ‎) F921 CJK COMPATIBILITY IDEOGRAPH-F921 - -# 嵫 嵫 - (‎ 嵫 ‎) 5D6B CJK UNIFIED IDEOGRAPH-5D6B -← (‎ 嵫 ‎) 2F87F CJK COMPATIBILITY IDEOGRAPH-2F87F - -# 嵮 嵮 - (‎ 嵮 ‎) 5D6E CJK UNIFIED IDEOGRAPH-5D6E -← (‎ 嵮 ‎) 2F87E CJK COMPATIBILITY IDEOGRAPH-2F87E - -# 嵼 嵼 - (‎ 嵼 ‎) 5D7C CJK UNIFIED IDEOGRAPH-5D7C -← (‎ 嵼 ‎) 2F880 CJK COMPATIBILITY IDEOGRAPH-2F880 - -# 嶲 嶲 - (‎ 嶲 ‎) 5DB2 CJK UNIFIED IDEOGRAPH-5DB2 -← (‎ 嶲 ‎) 2F9F4 CJK COMPATIBILITY IDEOGRAPH-2F9F4 - -# 嶺 嶺 - (‎ 嶺 ‎) 5DBA CJK UNIFIED IDEOGRAPH-5DBA -← (‎ 嶺 ‎) F9AB CJK COMPATIBILITY IDEOGRAPH-F9AB - -# 巡 巡 - (‎ 巡 ‎) 5DE1 CJK UNIFIED IDEOGRAPH-5DE1 -← (‎ 巡 ‎) 2F881 CJK COMPATIBILITY IDEOGRAPH-2F881 - -# 巢 巢 - (‎ 巢 ‎) 5DE2 CJK UNIFIED IDEOGRAPH-5DE2 -← (‎ 巢 ‎) 2F882 CJK COMPATIBILITY IDEOGRAPH-2F882 - -# 巽 巽 - (‎ 巽 ‎) 5DFD CJK UNIFIED IDEOGRAPH-5DFD -← (‎ 巽 ‎) 2F884 CJK COMPATIBILITY IDEOGRAPH-2F884 - -# 帡 帲 - (‎ 帡 ‎) 5E21 CJK UNIFIED IDEOGRAPH-5E21 -← (‎ 帲 ‎) 5E32 CJK UNIFIED IDEOGRAPH-5E32 - -# 帨 帨 - (‎ 帨 ‎) 5E28 CJK UNIFIED IDEOGRAPH-5E28 -← (‎ 帨 ‎) 2F885 CJK COMPATIBILITY IDEOGRAPH-2F885 - -# 帽 帽 - (‎ 帽 ‎) 5E3D CJK UNIFIED IDEOGRAPH-5E3D -← (‎ 帽 ‎) 2F886 CJK COMPATIBILITY IDEOGRAPH-2F886 - -# 幩 幩 - (‎ 幩 ‎) 5E69 CJK UNIFIED IDEOGRAPH-5E69 -← (‎ 幩 ‎) 2F887 CJK COMPATIBILITY IDEOGRAPH-2F887 - -# 年 年 - (‎ 年 ‎) 5E74 CJK UNIFIED IDEOGRAPH-5E74 -← (‎ 年 ‎) F98E CJK COMPATIBILITY IDEOGRAPH-F98E - -# 度 度 - (‎ 度 ‎) 5EA6 CJK UNIFIED IDEOGRAPH-5EA6 -← (‎ 度 ‎) FA01 CJK COMPATIBILITY IDEOGRAPH-FA01 - -# 庰 庰 - (‎ 庰 ‎) 5EB0 CJK UNIFIED IDEOGRAPH-5EB0 -← (‎ 庰 ‎) 2F88B CJK COMPATIBILITY IDEOGRAPH-2F88B - -# 庳 庳 - (‎ 庳 ‎) 5EB3 CJK UNIFIED IDEOGRAPH-5EB3 -← (‎ 庳 ‎) 2F88C CJK COMPATIBILITY IDEOGRAPH-2F88C - -# 庶 庶 - (‎ 庶 ‎) 5EB6 CJK UNIFIED IDEOGRAPH-5EB6 -← (‎ 庶 ‎) 2F88D CJK COMPATIBILITY IDEOGRAPH-2F88D - -# 廉 廉 - (‎ 廉 ‎) 5EC9 CJK UNIFIED IDEOGRAPH-5EC9 -← (‎ 廉 ‎) F9A2 CJK COMPATIBILITY IDEOGRAPH-F9A2 - -# 廊 廊 廊 - (‎ 廊 ‎) 5ECA CJK UNIFIED IDEOGRAPH-5ECA -← (‎ 廊 ‎) F928 CJK COMPATIBILITY IDEOGRAPH-F928 -← (‎ 廊 ‎) 2F88E CJK COMPATIBILITY IDEOGRAPH-2F88E - -# 廒 廒 - (‎ 廒 ‎) 5ED2 CJK UNIFIED IDEOGRAPH-5ED2 -← (‎ 廒 ‎) FA82 CJK COMPATIBILITY IDEOGRAPH-FA82 - -# 廓 廓 - (‎ 廓 ‎) 5ED3 CJK UNIFIED IDEOGRAPH-5ED3 -← (‎ 廓 ‎) FA0B CJK COMPATIBILITY IDEOGRAPH-FA0B - -# 廙 廙 - (‎ 廙 ‎) 5ED9 CJK UNIFIED IDEOGRAPH-5ED9 -← (‎ 廙 ‎) FA83 CJK COMPATIBILITY IDEOGRAPH-FA83 - -# 廬 廬 - (‎ 廬 ‎) 5EEC CJK UNIFIED IDEOGRAPH-5EEC -← (‎ 廬 ‎) F982 CJK COMPATIBILITY IDEOGRAPH-F982 - -# 弄 弄 - (‎ 弄 ‎) 5F04 CJK UNIFIED IDEOGRAPH-5F04 -← (‎ 弄 ‎) F943 CJK COMPATIBILITY IDEOGRAPH-F943 - -# 弢 弢 弢 - (‎ 弢 ‎) 5F22 CJK UNIFIED IDEOGRAPH-5F22 -← (‎ 弢 ‎) 2F894 CJK COMPATIBILITY IDEOGRAPH-2F894 -← (‎ 弢 ‎) 2F895 CJK COMPATIBILITY IDEOGRAPH-2F895 - -# 当 当 - (‎ 当 ‎) 5F53 CJK UNIFIED IDEOGRAPH-5F53 -← (‎ 当 ‎) 2F874 CJK COMPATIBILITY IDEOGRAPH-2F874 - -# 形 形 - (‎ 形 ‎) 5F62 CJK UNIFIED IDEOGRAPH-5F62 -← (‎ 形 ‎) 2F899 CJK COMPATIBILITY IDEOGRAPH-2F899 - -# 彩 彩 - (‎ 彩 ‎) 5F69 CJK UNIFIED IDEOGRAPH-5F69 -← (‎ 彩 ‎) FA84 CJK COMPATIBILITY IDEOGRAPH-FA84 - -# 彫 彫 - (‎ 彫 ‎) 5F6B CJK UNIFIED IDEOGRAPH-5F6B -← (‎ 彫 ‎) 2F89A CJK COMPATIBILITY IDEOGRAPH-2F89A - -# 律 律 - (‎ 律 ‎) 5F8B CJK UNIFIED IDEOGRAPH-5F8B -← (‎ 律 ‎) F9D8 CJK COMPATIBILITY IDEOGRAPH-F9D8 - -# 徚 徚 - (‎ 徚 ‎) 5F9A CJK UNIFIED IDEOGRAPH-5F9A -← (‎ 徚 ‎) 2F89C CJK COMPATIBILITY IDEOGRAPH-2F89C - -# 復 復 - (‎ 復 ‎) 5FA9 CJK UNIFIED IDEOGRAPH-5FA9 -← (‎ 復 ‎) F966 CJK COMPATIBILITY IDEOGRAPH-F966 - -# 徭 徭 - (‎ 徭 ‎) 5FAD CJK UNIFIED IDEOGRAPH-5FAD -← (‎ 徭 ‎) FA85 CJK COMPATIBILITY IDEOGRAPH-FA85 - -# 忍 忍 - (‎ 忍 ‎) 5FCD CJK UNIFIED IDEOGRAPH-5FCD -← (‎ 忍 ‎) 2F89D CJK COMPATIBILITY IDEOGRAPH-2F89D - -# 志 志 - (‎ 志 ‎) 5FD7 CJK UNIFIED IDEOGRAPH-5FD7 -← (‎ 志 ‎) 2F89E CJK COMPATIBILITY IDEOGRAPH-2F89E - -# 念 念 - (‎ 念 ‎) 5FF5 CJK UNIFIED IDEOGRAPH-5FF5 -← (‎ 念 ‎) F9A3 CJK COMPATIBILITY IDEOGRAPH-F9A3 - -# 忹 忹 - (‎ 忹 ‎) 5FF9 CJK UNIFIED IDEOGRAPH-5FF9 -← (‎ 忹 ‎) 2F89F CJK COMPATIBILITY IDEOGRAPH-2F89F - -# 怒 怒 - (‎ 怒 ‎) 6012 CJK UNIFIED IDEOGRAPH-6012 -← (‎ 怒 ‎) F960 CJK COMPATIBILITY IDEOGRAPH-F960 - -# 怜 怜 - (‎ 怜 ‎) 601C CJK UNIFIED IDEOGRAPH-601C -← (‎ 怜 ‎) F9AC CJK COMPATIBILITY IDEOGRAPH-F9AC - -# 恵 恵 - (‎ 恵 ‎) 6075 CJK UNIFIED IDEOGRAPH-6075 -← (‎ 恵 ‎) FA6B CJK COMPATIBILITY IDEOGRAPH-FA6B - -# 悁 悁 - (‎ 悁 ‎) 6081 CJK UNIFIED IDEOGRAPH-6081 -← (‎ 悁 ‎) 2F8A0 CJK COMPATIBILITY IDEOGRAPH-2F8A0 - -# 悔 悔 悔 - (‎ 悔 ‎) 6094 CJK UNIFIED IDEOGRAPH-6094 -← (‎ 悔 ‎) FA3D CJK COMPATIBILITY IDEOGRAPH-FA3D -← (‎ 悔 ‎) 2F8A3 CJK COMPATIBILITY IDEOGRAPH-2F8A3 - -# 惇 惇 - (‎ 惇 ‎) 60C7 CJK UNIFIED IDEOGRAPH-60C7 -← (‎ 惇 ‎) 2F8A5 CJK COMPATIBILITY IDEOGRAPH-2F8A5 - -# 惘 惘 - (‎ 惘 ‎) 60D8 CJK UNIFIED IDEOGRAPH-60D8 -← (‎ 惘 ‎) FA86 CJK COMPATIBILITY IDEOGRAPH-FA86 - -# 惡 惡 - (‎ 惡 ‎) 60E1 CJK UNIFIED IDEOGRAPH-60E1 -← (‎ 惡 ‎) F9B9 CJK COMPATIBILITY IDEOGRAPH-F9B9 - -# 愈 愈 - (‎ 愈 ‎) 6108 CJK UNIFIED IDEOGRAPH-6108 -← (‎ 愈 ‎) FA88 CJK COMPATIBILITY IDEOGRAPH-FA88 - -# 慄 慄 - (‎ 慄 ‎) 6144 CJK UNIFIED IDEOGRAPH-6144 -← (‎ 慄 ‎) F9D9 CJK COMPATIBILITY IDEOGRAPH-F9D9 - -# 慈 慈 - (‎ 慈 ‎) 6148 CJK UNIFIED IDEOGRAPH-6148 -← (‎ 慈 ‎) 2F8A6 CJK COMPATIBILITY IDEOGRAPH-2F8A6 - -# 慌 慌 慌 - (‎ 慌 ‎) 614C CJK UNIFIED IDEOGRAPH-614C -← (‎ 慌 ‎) 2F8A7 CJK COMPATIBILITY IDEOGRAPH-2F8A7 -← (‎ 慌 ‎) 2F8A9 CJK COMPATIBILITY IDEOGRAPH-2F8A9 - -# 慎 慎 慎 - (‎ 慎 ‎) 614E CJK UNIFIED IDEOGRAPH-614E -← (‎ 慎 ‎) FA87 CJK COMPATIBILITY IDEOGRAPH-FA87 -← (‎ 慎 ‎) 2F8A8 CJK COMPATIBILITY IDEOGRAPH-2F8A8 - -# 慠 慠 - (‎ 慠 ‎) 6160 CJK UNIFIED IDEOGRAPH-6160 -← (‎ 慠 ‎) FA8A CJK COMPATIBILITY IDEOGRAPH-FA8A - -# 慨 慨 - (‎ 慨 ‎) 6168 CJK UNIFIED IDEOGRAPH-6168 -← (‎ 慨 ‎) FA3E CJK COMPATIBILITY IDEOGRAPH-FA3E - -# 慺 慺 - (‎ 慺 ‎) 617A CJK UNIFIED IDEOGRAPH-617A -← (‎ 慺 ‎) 2F8AA CJK COMPATIBILITY IDEOGRAPH-2F8AA - -# 憎 憎 憎 憎 - (‎ 憎 ‎) 618E CJK UNIFIED IDEOGRAPH-618E -← (‎ 憎 ‎) FA3F CJK COMPATIBILITY IDEOGRAPH-FA3F -← (‎ 憎 ‎) FA89 CJK COMPATIBILITY IDEOGRAPH-FA89 -← (‎ 憎 ‎) 2F8AB CJK COMPATIBILITY IDEOGRAPH-2F8AB - -# 憐 憐 - (‎ 憐 ‎) 6190 CJK UNIFIED IDEOGRAPH-6190 -← (‎ 憐 ‎) F98F CJK COMPATIBILITY IDEOGRAPH-F98F - -# 憤 憤 - (‎ 憤 ‎) 61A4 CJK UNIFIED IDEOGRAPH-61A4 -← (‎ 憤 ‎) 2F8AD CJK COMPATIBILITY IDEOGRAPH-2F8AD - -# 憯 憯 - (‎ 憯 ‎) 61AF CJK UNIFIED IDEOGRAPH-61AF -← (‎ 憯 ‎) 2F8AE CJK COMPATIBILITY IDEOGRAPH-2F8AE - -# 憲 憲 - (‎ 憲 ‎) 61B2 CJK UNIFIED IDEOGRAPH-61B2 -← (‎ 憲 ‎) 2F8AC CJK COMPATIBILITY IDEOGRAPH-2F8AC - -# 懞 懞 - (‎ 懞 ‎) 61DE CJK UNIFIED IDEOGRAPH-61DE -← (‎ 懞 ‎) 2F8AF CJK COMPATIBILITY IDEOGRAPH-2F8AF - -# 懲 懲 懲 懲 - (‎ 懲 ‎) 61F2 CJK UNIFIED IDEOGRAPH-61F2 -← (‎ 懲 ‎) FA40 CJK COMPATIBILITY IDEOGRAPH-FA40 -← (‎ 懲 ‎) FA8B CJK COMPATIBILITY IDEOGRAPH-FA8B -← (‎ 懲 ‎) 2F8B0 CJK COMPATIBILITY IDEOGRAPH-2F8B0 - -# 懶 懶 懶 - (‎ 懶 ‎) 61F6 CJK UNIFIED IDEOGRAPH-61F6 -← (‎ 懶 ‎) F90D CJK COMPATIBILITY IDEOGRAPH-F90D -← (‎ 懶 ‎) 2F8B1 CJK COMPATIBILITY IDEOGRAPH-2F8B1 - -# 戀 戀 - (‎ 戀 ‎) 6200 CJK UNIFIED IDEOGRAPH-6200 -← (‎ 戀 ‎) F990 CJK COMPATIBILITY IDEOGRAPH-F990 - -# 成 成 - (‎ 成 ‎) 6210 CJK UNIFIED IDEOGRAPH-6210 -← (‎ 成 ‎) 2F8B2 CJK COMPATIBILITY IDEOGRAPH-2F8B2 - -# 戛 戛 - (‎ 戛 ‎) 621B CJK UNIFIED IDEOGRAPH-621B -← (‎ 戛 ‎) 2F8B3 CJK COMPATIBILITY IDEOGRAPH-2F8B3 - -# 戮 戮 - (‎ 戮 ‎) 622E CJK UNIFIED IDEOGRAPH-622E -← (‎ 戮 ‎) F9D2 CJK COMPATIBILITY IDEOGRAPH-F9D2 - -# 戴 戴 - (‎ 戴 ‎) 6234 CJK UNIFIED IDEOGRAPH-6234 -← (‎ 戴 ‎) FA8C CJK COMPATIBILITY IDEOGRAPH-FA8C - -# 扝 扝 - (‎ 扝 ‎) 625D CJK UNIFIED IDEOGRAPH-625D -← (‎ 扝 ‎) 2F8B4 CJK COMPATIBILITY IDEOGRAPH-2F8B4 - -# 抱 抱 - (‎ 抱 ‎) 62B1 CJK UNIFIED IDEOGRAPH-62B1 -← (‎ 抱 ‎) 2F8B5 CJK COMPATIBILITY IDEOGRAPH-2F8B5 - -# 拉 拉 - (‎ 拉 ‎) 62C9 CJK UNIFIED IDEOGRAPH-62C9 -← (‎ 拉 ‎) F925 CJK COMPATIBILITY IDEOGRAPH-F925 - -# 拏 拏 - (‎ 拏 ‎) 62CF CJK UNIFIED IDEOGRAPH-62CF -← (‎ 拏 ‎) F95B CJK COMPATIBILITY IDEOGRAPH-F95B - -# 拓 拓 - (‎ 拓 ‎) 62D3 CJK UNIFIED IDEOGRAPH-62D3 -← (‎ 拓 ‎) FA02 CJK COMPATIBILITY IDEOGRAPH-FA02 - -# 拔 拔 - (‎ 拔 ‎) 62D4 CJK UNIFIED IDEOGRAPH-62D4 -← (‎ 拔 ‎) 2F8B6 CJK COMPATIBILITY IDEOGRAPH-2F8B6 - -# 拼 拼 - (‎ 拼 ‎) 62FC CJK UNIFIED IDEOGRAPH-62FC -← (‎ 拼 ‎) 2F8BA CJK COMPATIBILITY IDEOGRAPH-2F8BA - -# 拾 拾 - (‎ 拾 ‎) 62FE CJK UNIFIED IDEOGRAPH-62FE -← (‎ 拾 ‎) F973 CJK COMPATIBILITY IDEOGRAPH-F973 - -# 挽 挽 - (‎ 挽 ‎) 633D CJK UNIFIED IDEOGRAPH-633D -← (‎ 挽 ‎) 2F8B9 CJK COMPATIBILITY IDEOGRAPH-2F8B9 - -# 捐 捐 - (‎ 捐 ‎) 6350 CJK UNIFIED IDEOGRAPH-6350 -← (‎ 捐 ‎) 2F8B7 CJK COMPATIBILITY IDEOGRAPH-2F8B7 - -# 捨 捨 - (‎ 捨 ‎) 6368 CJK UNIFIED IDEOGRAPH-6368 -← (‎ 捨 ‎) 2F8BB CJK COMPATIBILITY IDEOGRAPH-2F8BB - -# 捻 捻 - (‎ 捻 ‎) 637B CJK UNIFIED IDEOGRAPH-637B -← (‎ 捻 ‎) F9A4 CJK COMPATIBILITY IDEOGRAPH-F9A4 - -# 掃 掃 - (‎ 掃 ‎) 6383 CJK UNIFIED IDEOGRAPH-6383 -← (‎ 掃 ‎) 2F8BC CJK COMPATIBILITY IDEOGRAPH-2F8BC - -# 掠 掠 - (‎ 掠 ‎) 63A0 CJK UNIFIED IDEOGRAPH-63A0 -← (‎ 掠 ‎) F975 CJK COMPATIBILITY IDEOGRAPH-F975 - -# 掩 掩 - (‎ 掩 ‎) 63A9 CJK UNIFIED IDEOGRAPH-63A9 -← (‎ 掩 ‎) 2F8C1 CJK COMPATIBILITY IDEOGRAPH-2F8C1 - -# 揄 揄 - (‎ 揄 ‎) 63C4 CJK UNIFIED IDEOGRAPH-63C4 -← (‎ 揄 ‎) FA8D CJK COMPATIBILITY IDEOGRAPH-FA8D - -# 揅 揅 - (‎ 揅 ‎) 63C5 CJK UNIFIED IDEOGRAPH-63C5 -← (‎ 揅 ‎) 2F8C0 CJK COMPATIBILITY IDEOGRAPH-2F8C0 - -# 揤 揤 - (‎ 揤 ‎) 63E4 CJK UNIFIED IDEOGRAPH-63E4 -← (‎ 揤 ‎) 2F8BD CJK COMPATIBILITY IDEOGRAPH-2F8BD - -# 搜 搜 - (‎ 搜 ‎) 641C CJK UNIFIED IDEOGRAPH-641C -← (‎ 搜 ‎) FA8E CJK COMPATIBILITY IDEOGRAPH-FA8E - -# 搢 搢 - (‎ 搢 ‎) 6422 CJK UNIFIED IDEOGRAPH-6422 -← (‎ 搢 ‎) 2F8BF CJK COMPATIBILITY IDEOGRAPH-2F8BF - -# 摒 摒 - (‎ 摒 ‎) 6452 CJK UNIFIED IDEOGRAPH-6452 -← (‎ 摒 ‎) FA8F CJK COMPATIBILITY IDEOGRAPH-FA8F - -# 摩 摩 - (‎ 摩 ‎) 6469 CJK UNIFIED IDEOGRAPH-6469 -← (‎ 摩 ‎) 2F8C3 CJK COMPATIBILITY IDEOGRAPH-2F8C3 - -# 摷 摷 - (‎ 摷 ‎) 6477 CJK UNIFIED IDEOGRAPH-6477 -← (‎ 摷 ‎) 2F8C6 CJK COMPATIBILITY IDEOGRAPH-2F8C6 - -# 摾 摾 - (‎ 摾 ‎) 647E CJK UNIFIED IDEOGRAPH-647E -← (‎ 摾 ‎) 2F8C4 CJK COMPATIBILITY IDEOGRAPH-2F8C4 - -# 撚 撚 - (‎ 撚 ‎) 649A CJK UNIFIED IDEOGRAPH-649A -← (‎ 撚 ‎) F991 CJK COMPATIBILITY IDEOGRAPH-F991 - -# 撝 撝 - (‎ 撝 ‎) 649D CJK UNIFIED IDEOGRAPH-649D -← (‎ 撝 ‎) 2F8C5 CJK COMPATIBILITY IDEOGRAPH-2F8C5 - -# 擄 擄 - (‎ 擄 ‎) 64C4 CJK UNIFIED IDEOGRAPH-64C4 -← (‎ 擄 ‎) F930 CJK COMPATIBILITY IDEOGRAPH-F930 - -# 敏 敏 敏 - (‎ 敏 ‎) 654F CJK UNIFIED IDEOGRAPH-654F -← (‎ 敏 ‎) FA41 CJK COMPATIBILITY IDEOGRAPH-FA41 -← (‎ 敏 ‎) 2F8C8 CJK COMPATIBILITY IDEOGRAPH-2F8C8 - -# 敖 敖 - (‎ 敖 ‎) 6556 CJK UNIFIED IDEOGRAPH-6556 -← (‎ 敖 ‎) FA90 CJK COMPATIBILITY IDEOGRAPH-FA90 - -# 敬 敬 - (‎ 敬 ‎) 656C CJK UNIFIED IDEOGRAPH-656C -← (‎ 敬 ‎) 2F8C9 CJK COMPATIBILITY IDEOGRAPH-2F8C9 - -# 數 數 - (‎ 數 ‎) 6578 CJK UNIFIED IDEOGRAPH-6578 -← (‎ 數 ‎) F969 CJK COMPATIBILITY IDEOGRAPH-F969 - -# 料 料 - (‎ 料 ‎) 6599 CJK UNIFIED IDEOGRAPH-6599 -← (‎ 料 ‎) F9BE CJK COMPATIBILITY IDEOGRAPH-F9BE - -# 旅 旅 - (‎ 旅 ‎) 65C5 CJK UNIFIED IDEOGRAPH-65C5 -← (‎ 旅 ‎) F983 CJK COMPATIBILITY IDEOGRAPH-F983 - -# 既 既 - (‎ 既 ‎) 65E2 CJK UNIFIED IDEOGRAPH-65E2 -← (‎ 既 ‎) FA42 CJK COMPATIBILITY IDEOGRAPH-FA42 - -# 旣 旣 - (‎ 旣 ‎) 65E3 CJK UNIFIED IDEOGRAPH-65E3 -← (‎ 旣 ‎) 2F8CB CJK COMPATIBILITY IDEOGRAPH-2F8CB - -# 易 易 - (‎ 易 ‎) 6613 CJK UNIFIED IDEOGRAPH-6613 -← (‎ 易 ‎) F9E0 CJK COMPATIBILITY IDEOGRAPH-F9E0 - -# 晉 晉 - (‎ 晉 ‎) 6649 CJK UNIFIED IDEOGRAPH-6649 -← (‎ 晉 ‎) 2F8CD CJK COMPATIBILITY IDEOGRAPH-2F8CD - -# 晚 晩 - (‎ 晚 ‎) 665A CJK UNIFIED IDEOGRAPH-665A -← (‎ 晩 ‎) 6669 CJK UNIFIED IDEOGRAPH-6669 - -# 晴 晴 晴 - (‎ 晴 ‎) 6674 CJK UNIFIED IDEOGRAPH-6674 -← (‎ 晴 ‎) FA12 CJK COMPATIBILITY IDEOGRAPH-FA12 -← (‎ 晴 ‎) FA91 CJK COMPATIBILITY IDEOGRAPH-FA91 - -# 暈 暈 - (‎ 暈 ‎) 6688 CJK UNIFIED IDEOGRAPH-6688 -← (‎ 暈 ‎) F9C5 CJK COMPATIBILITY IDEOGRAPH-F9C5 - -# 暑 暑 暑 - (‎ 暑 ‎) 6691 CJK UNIFIED IDEOGRAPH-6691 -← (‎ 暑 ‎) FA43 CJK COMPATIBILITY IDEOGRAPH-FA43 -← (‎ 暑 ‎) 2F8CF CJK COMPATIBILITY IDEOGRAPH-2F8CF - -# 暜 暜 - (‎ 暜 ‎) 669C CJK UNIFIED IDEOGRAPH-669C -← (‎ 暜 ‎) 2F8D5 CJK COMPATIBILITY IDEOGRAPH-2F8D5 - -# 暴 暴 - (‎ 暴 ‎) 66B4 CJK UNIFIED IDEOGRAPH-66B4 -← (‎ 暴 ‎) FA06 CJK COMPATIBILITY IDEOGRAPH-FA06 - -# 曆 曆 - (‎ 曆 ‎) 66C6 CJK UNIFIED IDEOGRAPH-66C6 -← (‎ 曆 ‎) F98B CJK COMPATIBILITY IDEOGRAPH-F98B - -# 更 更 - (‎ 更 ‎) 66F4 CJK UNIFIED IDEOGRAPH-66F4 -← (‎ 更 ‎) F901 CJK COMPATIBILITY IDEOGRAPH-F901 - -# 書 書 - (‎ 書 ‎) 66F8 CJK UNIFIED IDEOGRAPH-66F8 -← (‎ 書 ‎) 2F8CC CJK COMPATIBILITY IDEOGRAPH-2F8CC - -# 最 最 - (‎ 最 ‎) 6700 CJK UNIFIED IDEOGRAPH-6700 -← (‎ 最 ‎) 2F8D4 CJK COMPATIBILITY IDEOGRAPH-2F8D4 - -# 朌 肦 - (‎ 朌 ‎) 670C CJK UNIFIED IDEOGRAPH-670C -← (‎ 肦 ‎) 80A6 CJK UNIFIED IDEOGRAPH-80A6 - -# 朏 胐 - (‎ 朏 ‎) 670F CJK UNIFIED IDEOGRAPH-670F -← (‎ 胐 ‎) 80D0 CJK UNIFIED IDEOGRAPH-80D0 - -# 朐 胊 - (‎ 朐 ‎) 6710 CJK UNIFIED IDEOGRAPH-6710 -← (‎ 胊 ‎) 80CA CJK UNIFIED IDEOGRAPH-80CA - -# 朓 脁 - (‎ 朓 ‎) 6713 CJK UNIFIED IDEOGRAPH-6713 -← (‎ 脁 ‎) 8101 CJK UNIFIED IDEOGRAPH-8101 - -# 朗 朗 朗 朗 - (‎ 朗 ‎) 6717 CJK UNIFIED IDEOGRAPH-6717 -← (‎ 朗 ‎) F929 CJK COMPATIBILITY IDEOGRAPH-F929 -← (‎ 朗 ‎) FA92 CJK COMPATIBILITY IDEOGRAPH-FA92 -← (‎ 朗 ‎) 2F8D8 CJK COMPATIBILITY IDEOGRAPH-2F8D8 - -# 朘 脧 - (‎ 朘 ‎) 6718 CJK UNIFIED IDEOGRAPH-6718 -← (‎ 脧 ‎) 8127 CJK UNIFIED IDEOGRAPH-8127 - -# 望 望 望 - (‎ 望 ‎) 671B CJK UNIFIED IDEOGRAPH-671B -← (‎ 望 ‎) FA93 CJK COMPATIBILITY IDEOGRAPH-FA93 -← (‎ 望 ‎) 2F8D9 CJK COMPATIBILITY IDEOGRAPH-2F8D9 - -# 朡 朡 - (‎ 朡 ‎) 6721 CJK UNIFIED IDEOGRAPH-6721 -← (‎ 朡 ‎) 2F8DA CJK COMPATIBILITY IDEOGRAPH-2F8DA - -# 朣 膧 - (‎ 朣 ‎) 6723 CJK UNIFIED IDEOGRAPH-6723 -← (‎ 膧 ‎) 81A7 CJK UNIFIED IDEOGRAPH-81A7 - -# 李 李 - (‎ 李 ‎) 674E CJK UNIFIED IDEOGRAPH-674E -← (‎ 李 ‎) F9E1 CJK COMPATIBILITY IDEOGRAPH-F9E1 - -# 杓 杓 - (‎ 杓 ‎) 6753 CJK UNIFIED IDEOGRAPH-6753 -← (‎ 杓 ‎) 2F8DC CJK COMPATIBILITY IDEOGRAPH-2F8DC - -# 杖 杖 - (‎ 杖 ‎) 6756 CJK UNIFIED IDEOGRAPH-6756 -← (‎ 杖 ‎) FA94 CJK COMPATIBILITY IDEOGRAPH-FA94 - -# 杞 杞 - (‎ 杞 ‎) 675E CJK UNIFIED IDEOGRAPH-675E -← (‎ 杞 ‎) 2F8DB CJK COMPATIBILITY IDEOGRAPH-2F8DB - -# 杮 柿 - (‎ 杮 ‎) 676E CJK UNIFIED IDEOGRAPH-676E -← (‎ 柿 ‎) 67FF CJK UNIFIED IDEOGRAPH-67FF - -# 杻 杻 - (‎ 杻 ‎) 677B CJK UNIFIED IDEOGRAPH-677B -← (‎ 杻 ‎) F9C8 CJK COMPATIBILITY IDEOGRAPH-F9C8 - -# 枅 枅 - (‎ 枅 ‎) 6785 CJK UNIFIED IDEOGRAPH-6785 -← (‎ 枅 ‎) 2F8E0 CJK COMPATIBILITY IDEOGRAPH-2F8E0 - -# 林 林 - (‎ 林 ‎) 6797 CJK UNIFIED IDEOGRAPH-6797 -← (‎ 林 ‎) F9F4 CJK COMPATIBILITY IDEOGRAPH-F9F4 - -# 柳 柳 - (‎ 柳 ‎) 67F3 CJK UNIFIED IDEOGRAPH-67F3 -← (‎ 柳 ‎) F9C9 CJK COMPATIBILITY IDEOGRAPH-F9C9 - -# 柺 柺 - (‎ 柺 ‎) 67FA CJK UNIFIED IDEOGRAPH-67FA -← (‎ 柺 ‎) 2F8DF CJK COMPATIBILITY IDEOGRAPH-2F8DF - -# 栗 栗 - (‎ 栗 ‎) 6817 CJK UNIFIED IDEOGRAPH-6817 -← (‎ 栗 ‎) F9DA CJK COMPATIBILITY IDEOGRAPH-F9DA - -# 栟 栟 - (‎ 栟 ‎) 681F CJK UNIFIED IDEOGRAPH-681F -← (‎ 栟 ‎) 2F8E5 CJK COMPATIBILITY IDEOGRAPH-2F8E5 - -# 桒 桒 - (‎ 桒 ‎) 6852 CJK UNIFIED IDEOGRAPH-6852 -← (‎ 桒 ‎) 2F8E1 CJK COMPATIBILITY IDEOGRAPH-2F8E1 - -# 梁 梁 - (‎ 梁 ‎) 6881 CJK UNIFIED IDEOGRAPH-6881 -← (‎ 梁 ‎) F97A CJK COMPATIBILITY IDEOGRAPH-F97A - -# 梅 梅 梅 - (‎ 梅 ‎) 6885 CJK UNIFIED IDEOGRAPH-6885 -← (‎ 梅 ‎) FA44 CJK COMPATIBILITY IDEOGRAPH-FA44 -← (‎ 梅 ‎) 2F8E2 CJK COMPATIBILITY IDEOGRAPH-2F8E2 - -# 梎 梎 - (‎ 梎 ‎) 688E CJK UNIFIED IDEOGRAPH-688E -← (‎ 梎 ‎) 2F8E4 CJK COMPATIBILITY IDEOGRAPH-2F8E4 - -# 梨 梨 - (‎ 梨 ‎) 68A8 CJK UNIFIED IDEOGRAPH-68A8 -← (‎ 梨 ‎) F9E2 CJK COMPATIBILITY IDEOGRAPH-F9E2 - -# 椔 椔 - (‎ 椔 ‎) 6914 CJK UNIFIED IDEOGRAPH-6914 -← (‎ 椔 ‎) 2F8E6 CJK COMPATIBILITY IDEOGRAPH-2F8E6 - -# 楂 楂 - (‎ 楂 ‎) 6942 CJK UNIFIED IDEOGRAPH-6942 -← (‎ 楂 ‎) 2F8E8 CJK COMPATIBILITY IDEOGRAPH-2F8E8 - -# 榝 樧 - (‎ 榝 ‎) 699D CJK UNIFIED IDEOGRAPH-699D -← (‎ 樧 ‎) 6A27 CJK UNIFIED IDEOGRAPH-6A27 - -# 榣 榣 - (‎ 榣 ‎) 69A3 CJK UNIFIED IDEOGRAPH-69A3 -← (‎ 榣 ‎) 2F8E9 CJK COMPATIBILITY IDEOGRAPH-2F8E9 - -# 槪 槪 - (‎ 槪 ‎) 69EA CJK UNIFIED IDEOGRAPH-69EA -← (‎ 槪 ‎) 2F8EA CJK COMPATIBILITY IDEOGRAPH-2F8EA - -# 樂 樂 樂 樂 - (‎ 樂 ‎) 6A02 CJK UNIFIED IDEOGRAPH-6A02 -← (‎ 樂 ‎) F914 CJK COMPATIBILITY IDEOGRAPH-F914 -← (‎ 樂 ‎) F95C CJK COMPATIBILITY IDEOGRAPH-F95C -← (‎ 樂 ‎) F9BF CJK COMPATIBILITY IDEOGRAPH-F9BF - -# 樓 樓 - (‎ 樓 ‎) 6A13 CJK UNIFIED IDEOGRAPH-6A13 -← (‎ 樓 ‎) F94C CJK COMPATIBILITY IDEOGRAPH-F94C - -# 檨 檨 - (‎ 檨 ‎) 6AA8 CJK UNIFIED IDEOGRAPH-6AA8 -← (‎ 檨 ‎) 2F8EB CJK COMPATIBILITY IDEOGRAPH-2F8EB - -# 櫓 櫓 - (‎ 櫓 ‎) 6AD3 CJK UNIFIED IDEOGRAPH-6AD3 -← (‎ 櫓 ‎) F931 CJK COMPATIBILITY IDEOGRAPH-F931 - -# 櫛 櫛 - (‎ 櫛 ‎) 6ADB CJK UNIFIED IDEOGRAPH-6ADB -← (‎ 櫛 ‎) 2F8ED CJK COMPATIBILITY IDEOGRAPH-2F8ED - -# 欄 欄 - (‎ 欄 ‎) 6B04 CJK UNIFIED IDEOGRAPH-6B04 -← (‎ 欄 ‎) F91D CJK COMPATIBILITY IDEOGRAPH-F91D - -# 次 次 - (‎ 次 ‎) 6B21 CJK UNIFIED IDEOGRAPH-6B21 -← (‎ 次 ‎) 2F8EF CJK COMPATIBILITY IDEOGRAPH-2F8EF - -# 歔 歔 - (‎ 歔 ‎) 6B54 CJK UNIFIED IDEOGRAPH-6B54 -← (‎ 歔 ‎) 2F8F1 CJK COMPATIBILITY IDEOGRAPH-2F8F1 - -# 歲 歲 - (‎ 歲 ‎) 6B72 CJK UNIFIED IDEOGRAPH-6B72 -← (‎ 歲 ‎) 2F8F3 CJK COMPATIBILITY IDEOGRAPH-2F8F3 - -# 歷 歷 - (‎ 歷 ‎) 6B77 CJK UNIFIED IDEOGRAPH-6B77 -← (‎ 歷 ‎) F98C CJK COMPATIBILITY IDEOGRAPH-F98C - -# 殟 殟 - (‎ 殟 ‎) 6B9F CJK UNIFIED IDEOGRAPH-6B9F -← (‎ 殟 ‎) 2F8F4 CJK COMPATIBILITY IDEOGRAPH-2F8F4 - -# 殮 殮 - (‎ 殮 ‎) 6BAE CJK UNIFIED IDEOGRAPH-6BAE -← (‎ 殮 ‎) F9A5 CJK COMPATIBILITY IDEOGRAPH-F9A5 - -# 殺 殺 殺 殺 - (‎ 殺 ‎) 6BBA CJK UNIFIED IDEOGRAPH-6BBA -← (‎ 殺 ‎) F970 CJK COMPATIBILITY IDEOGRAPH-F970 -← (‎ 殺 ‎) FA96 CJK COMPATIBILITY IDEOGRAPH-FA96 -← (‎ 殺 ‎) 2F8F5 CJK COMPATIBILITY IDEOGRAPH-2F8F5 - -# 殻 殻 - (‎ 殻 ‎) 6BBB CJK UNIFIED IDEOGRAPH-6BBB -← (‎ 殻 ‎) 2F8F6 CJK COMPATIBILITY IDEOGRAPH-2F8F6 - -# 汎 汎 - (‎ 汎 ‎) 6C4E CJK UNIFIED IDEOGRAPH-6C4E -← (‎ 汎 ‎) 2F8FA CJK COMPATIBILITY IDEOGRAPH-2F8FA - -# 汧 汧 - (‎ 汧 ‎) 6C67 CJK UNIFIED IDEOGRAPH-6C67 -← (‎ 汧 ‎) 2F8FE CJK COMPATIBILITY IDEOGRAPH-2F8FE - -# 沈 沈 - (‎ 沈 ‎) 6C88 CJK UNIFIED IDEOGRAPH-6C88 -← (‎ 沈 ‎) F972 CJK COMPATIBILITY IDEOGRAPH-F972 - -# 沿 沿 - (‎ 沿 ‎) 6CBF CJK UNIFIED IDEOGRAPH-6CBF -← (‎ 沿 ‎) 2F8FC CJK COMPATIBILITY IDEOGRAPH-2F8FC - -# 泌 泌 - (‎ 泌 ‎) 6CCC CJK UNIFIED IDEOGRAPH-6CCC -← (‎ 泌 ‎) F968 CJK COMPATIBILITY IDEOGRAPH-F968 - -# 泍 泍 - (‎ 泍 ‎) 6CCD CJK UNIFIED IDEOGRAPH-6CCD -← (‎ 泍 ‎) 2F8FD CJK COMPATIBILITY IDEOGRAPH-2F8FD - -# 泥 泥 - (‎ 泥 ‎) 6CE5 CJK UNIFIED IDEOGRAPH-6CE5 -← (‎ 泥 ‎) F9E3 CJK COMPATIBILITY IDEOGRAPH-F9E3 - -# 洖 洖 - (‎ 洖 ‎) 6D16 CJK UNIFIED IDEOGRAPH-6D16 -← (‎ 洖 ‎) 2F8FF CJK COMPATIBILITY IDEOGRAPH-2F8FF - -# 洛 洛 - (‎ 洛 ‎) 6D1B CJK UNIFIED IDEOGRAPH-6D1B -← (‎ 洛 ‎) F915 CJK COMPATIBILITY IDEOGRAPH-F915 - -# 洞 洞 - (‎ 洞 ‎) 6D1E CJK UNIFIED IDEOGRAPH-6D1E -← (‎ 洞 ‎) FA05 CJK COMPATIBILITY IDEOGRAPH-FA05 - -# 洴 洴 - (‎ 洴 ‎) 6D34 CJK UNIFIED IDEOGRAPH-6D34 -← (‎ 洴 ‎) 2F907 CJK COMPATIBILITY IDEOGRAPH-2F907 - -# 派 派 - (‎ 派 ‎) 6D3E CJK UNIFIED IDEOGRAPH-6D3E -← (‎ 派 ‎) 2F900 CJK COMPATIBILITY IDEOGRAPH-2F900 - -# 流 流 流 流 - (‎ 流 ‎) 6D41 CJK UNIFIED IDEOGRAPH-6D41 -← (‎ 流 ‎) F9CA CJK COMPATIBILITY IDEOGRAPH-F9CA -← (‎ 流 ‎) FA97 CJK COMPATIBILITY IDEOGRAPH-FA97 -← (‎ 流 ‎) 2F902 CJK COMPATIBILITY IDEOGRAPH-2F902 - -# 浩 浩 - (‎ 浩 ‎) 6D69 CJK UNIFIED IDEOGRAPH-6D69 -← (‎ 浩 ‎) 2F903 CJK COMPATIBILITY IDEOGRAPH-2F903 - -# 浪 浪 - (‎ 浪 ‎) 6D6A CJK UNIFIED IDEOGRAPH-6D6A -← (‎ 浪 ‎) F92A CJK COMPATIBILITY IDEOGRAPH-F92A - -# 海 海 海 - (‎ 海 ‎) 6D77 CJK UNIFIED IDEOGRAPH-6D77 -← (‎ 海 ‎) FA45 CJK COMPATIBILITY IDEOGRAPH-FA45 -← (‎ 海 ‎) 2F901 CJK COMPATIBILITY IDEOGRAPH-2F901 - -# 浸 浸 - (‎ 浸 ‎) 6D78 CJK UNIFIED IDEOGRAPH-6D78 -← (‎ 浸 ‎) 2F904 CJK COMPATIBILITY IDEOGRAPH-2F904 - -# 涅 涅 - (‎ 涅 ‎) 6D85 CJK UNIFIED IDEOGRAPH-6D85 -← (‎ 涅 ‎) 2F905 CJK COMPATIBILITY IDEOGRAPH-2F905 - -# 淋 淋 - (‎ 淋 ‎) 6DCB CJK UNIFIED IDEOGRAPH-6DCB -← (‎ 淋 ‎) F9F5 CJK COMPATIBILITY IDEOGRAPH-F9F5 - -# 淚 淚 - (‎ 淚 ‎) 6DDA CJK UNIFIED IDEOGRAPH-6DDA -← (‎ 淚 ‎) F94D CJK COMPATIBILITY IDEOGRAPH-F94D - -# 淪 淪 - (‎ 淪 ‎) 6DEA CJK UNIFIED IDEOGRAPH-6DEA -← (‎ 淪 ‎) F9D6 CJK COMPATIBILITY IDEOGRAPH-F9D6 - -# 淹 淹 - (‎ 淹 ‎) 6DF9 CJK UNIFIED IDEOGRAPH-6DF9 -← (‎ 淹 ‎) 2F90E CJK COMPATIBILITY IDEOGRAPH-2F90E - -# 渚 渚 - (‎ 渚 ‎) 6E1A CJK UNIFIED IDEOGRAPH-6E1A -← (‎ 渚 ‎) FA46 CJK COMPATIBILITY IDEOGRAPH-FA46 - -# 港 港 - (‎ 港 ‎) 6E2F CJK UNIFIED IDEOGRAPH-6E2F -← (‎ 港 ‎) 2F908 CJK COMPATIBILITY IDEOGRAPH-2F908 - -# 湮 湮 - (‎ 湮 ‎) 6E6E CJK UNIFIED IDEOGRAPH-6E6E -← (‎ 湮 ‎) 2F909 CJK COMPATIBILITY IDEOGRAPH-2F909 - -# 溈 潙 - (‎ 溈 ‎) 6E88 CJK UNIFIED IDEOGRAPH-6E88 -← (‎ 潙 ‎) 6F59 CJK UNIFIED IDEOGRAPH-6F59 - -# 溜 溜 - (‎ 溜 ‎) 6E9C CJK UNIFIED IDEOGRAPH-6E9C -← (‎ 溜 ‎) F9CB CJK COMPATIBILITY IDEOGRAPH-F9CB - -# 溺 溺 - (‎ 溺 ‎) 6EBA CJK UNIFIED IDEOGRAPH-6EBA -← (‎ 溺 ‎) F9EC CJK COMPATIBILITY IDEOGRAPH-F9EC - -# 滇 滇 - (‎ 滇 ‎) 6EC7 CJK UNIFIED IDEOGRAPH-6EC7 -← (‎ 滇 ‎) 2F90C CJK COMPATIBILITY IDEOGRAPH-2F90C - -# 滋 滋 滋 - (‎ 滋 ‎) 6ECB CJK UNIFIED IDEOGRAPH-6ECB -← (‎ 滋 ‎) FA99 CJK COMPATIBILITY IDEOGRAPH-FA99 -← (‎ 滋 ‎) 2F90B CJK COMPATIBILITY IDEOGRAPH-2F90B - -# 滑 滑 - (‎ 滑 ‎) 6ED1 CJK UNIFIED IDEOGRAPH-6ED1 -← (‎ 滑 ‎) F904 CJK COMPATIBILITY IDEOGRAPH-F904 - -# 滛 滛 - (‎ 滛 ‎) 6EDB CJK UNIFIED IDEOGRAPH-6EDB -← (‎ 滛 ‎) FA98 CJK COMPATIBILITY IDEOGRAPH-FA98 - -# 漏 漏 - (‎ 漏 ‎) 6F0F CJK UNIFIED IDEOGRAPH-6F0F -← (‎ 漏 ‎) F94E CJK COMPATIBILITY IDEOGRAPH-F94E - -# 漢 漢 漢 - (‎ 漢 ‎) 6F22 CJK UNIFIED IDEOGRAPH-6F22 -← (‎ 漢 ‎) FA47 CJK COMPATIBILITY IDEOGRAPH-FA47 -← (‎ 漢 ‎) FA9A CJK COMPATIBILITY IDEOGRAPH-FA9A - -# 漣 漣 - (‎ 漣 ‎) 6F23 CJK UNIFIED IDEOGRAPH-6F23 -← (‎ 漣 ‎) F992 CJK COMPATIBILITY IDEOGRAPH-F992 - -# 潮 潮 - (‎ 潮 ‎) 6F6E CJK UNIFIED IDEOGRAPH-6F6E -← (‎ 潮 ‎) 2F90F CJK COMPATIBILITY IDEOGRAPH-2F90F - -# 濆 濆 - (‎ 濆 ‎) 6FC6 CJK UNIFIED IDEOGRAPH-6FC6 -← (‎ 濆 ‎) 2F912 CJK COMPATIBILITY IDEOGRAPH-2F912 - -# 濫 濫 - (‎ 濫 ‎) 6FEB CJK UNIFIED IDEOGRAPH-6FEB -← (‎ 濫 ‎) F922 CJK COMPATIBILITY IDEOGRAPH-F922 - -# 濾 濾 - (‎ 濾 ‎) 6FFE CJK UNIFIED IDEOGRAPH-6FFE -← (‎ 濾 ‎) F984 CJK COMPATIBILITY IDEOGRAPH-F984 - -# 瀛 瀛 - (‎ 瀛 ‎) 701B CJK UNIFIED IDEOGRAPH-701B -← (‎ 瀛 ‎) 2F915 CJK COMPATIBILITY IDEOGRAPH-2F915 - -# 瀞 瀞 瀞 - (‎ 瀞 ‎) 701E CJK UNIFIED IDEOGRAPH-701E -← (‎ 瀞 ‎) FA9B CJK COMPATIBILITY IDEOGRAPH-FA9B -← (‎ 瀞 ‎) 2F914 CJK COMPATIBILITY IDEOGRAPH-2F914 - -# 瀹 瀹 - (‎ 瀹 ‎) 7039 CJK UNIFIED IDEOGRAPH-7039 -← (‎ 瀹 ‎) 2F913 CJK COMPATIBILITY IDEOGRAPH-2F913 - -# 灊 灊 - (‎ 灊 ‎) 704A CJK UNIFIED IDEOGRAPH-704A -← (‎ 灊 ‎) 2F917 CJK COMPATIBILITY IDEOGRAPH-2F917 - -# 灰 灰 - (‎ 灰 ‎) 7070 CJK UNIFIED IDEOGRAPH-7070 -← (‎ 灰 ‎) 2F835 CJK COMPATIBILITY IDEOGRAPH-2F835 - -# 灷 灷 - (‎ 灷 ‎) 7077 CJK UNIFIED IDEOGRAPH-7077 -← (‎ 灷 ‎) 2F919 CJK COMPATIBILITY IDEOGRAPH-2F919 - -# 災 災 - (‎ 災 ‎) 707D CJK UNIFIED IDEOGRAPH-707D -← (‎ 災 ‎) 2F918 CJK COMPATIBILITY IDEOGRAPH-2F918 - -# 炙 炙 - (‎ 炙 ‎) 7099 CJK UNIFIED IDEOGRAPH-7099 -← (‎ 炙 ‎) F9FB CJK COMPATIBILITY IDEOGRAPH-F9FB - -# 炭 炭 - (‎ 炭 ‎) 70AD CJK UNIFIED IDEOGRAPH-70AD -← (‎ 炭 ‎) 2F91A CJK COMPATIBILITY IDEOGRAPH-2F91A - -# 烈 烈 - (‎ 烈 ‎) 70C8 CJK UNIFIED IDEOGRAPH-70C8 -← (‎ 烈 ‎) F99F CJK COMPATIBILITY IDEOGRAPH-F99F - -# 烙 烙 - (‎ 烙 ‎) 70D9 CJK UNIFIED IDEOGRAPH-70D9 -← (‎ 烙 ‎) F916 CJK COMPATIBILITY IDEOGRAPH-F916 - -# 煅 煅 - (‎ 煅 ‎) 7145 CJK UNIFIED IDEOGRAPH-7145 -← (‎ 煅 ‎) 2F91C CJK COMPATIBILITY IDEOGRAPH-2F91C - -# 煉 煉 - (‎ 煉 ‎) 7149 CJK UNIFIED IDEOGRAPH-7149 -← (‎ 煉 ‎) F993 CJK COMPATIBILITY IDEOGRAPH-F993 - -# 煮 煮 煮 - (‎ 煮 ‎) 716E CJK UNIFIED IDEOGRAPH-716E -← (‎ 煮 ‎) FA48 CJK COMPATIBILITY IDEOGRAPH-FA48 -← (‎ 煮 ‎) FA9C CJK COMPATIBILITY IDEOGRAPH-FA9C - -# 熜 熜 - (‎ 熜 ‎) 719C CJK UNIFIED IDEOGRAPH-719C -← (‎ 熜 ‎) 2F91E CJK COMPATIBILITY IDEOGRAPH-2F91E - -# 燎 燎 - (‎ 燎 ‎) 71CE CJK UNIFIED IDEOGRAPH-71CE -← (‎ 燎 ‎) F9C0 CJK COMPATIBILITY IDEOGRAPH-F9C0 - -# 燐 燐 - (‎ 燐 ‎) 71D0 CJK UNIFIED IDEOGRAPH-71D0 -← (‎ 燐 ‎) F9EE CJK COMPATIBILITY IDEOGRAPH-F9EE - -# 爐 爐 - (‎ 爐 ‎) 7210 CJK UNIFIED IDEOGRAPH-7210 -← (‎ 爐 ‎) F932 CJK COMPATIBILITY IDEOGRAPH-F932 - -# 爛 爛 - (‎ 爛 ‎) 721B CJK UNIFIED IDEOGRAPH-721B -← (‎ 爛 ‎) F91E CJK COMPATIBILITY IDEOGRAPH-F91E - -# 爨 爨 - (‎ 爨 ‎) 7228 CJK UNIFIED IDEOGRAPH-7228 -← (‎ 爨 ‎) 2F920 CJK COMPATIBILITY IDEOGRAPH-2F920 - -# 爵 爵 爵 - (‎ 爵 ‎) 7235 CJK UNIFIED IDEOGRAPH-7235 -← (‎ 爵 ‎) FA9E CJK COMPATIBILITY IDEOGRAPH-FA9E -← (‎ 爵 ‎) 2F921 CJK COMPATIBILITY IDEOGRAPH-2F921 - -# 牐 牐 - (‎ 牐 ‎) 7250 CJK UNIFIED IDEOGRAPH-7250 -← (‎ 牐 ‎) 2F922 CJK COMPATIBILITY IDEOGRAPH-2F922 - -# 牢 牢 - (‎ 牢 ‎) 7262 CJK UNIFIED IDEOGRAPH-7262 -← (‎ 牢 ‎) F946 CJK COMPATIBILITY IDEOGRAPH-F946 - -# 犀 犀 - (‎ 犀 ‎) 7280 CJK UNIFIED IDEOGRAPH-7280 -← (‎ 犀 ‎) 2F924 CJK COMPATIBILITY IDEOGRAPH-2F924 - -# 犕 犕 - (‎ 犕 ‎) 7295 CJK UNIFIED IDEOGRAPH-7295 -← (‎ 犕 ‎) 2F925 CJK COMPATIBILITY IDEOGRAPH-2F925 - -# 犯 犯 - (‎ 犯 ‎) 72AF CJK UNIFIED IDEOGRAPH-72AF -← (‎ 犯 ‎) FA9F CJK COMPATIBILITY IDEOGRAPH-FA9F - -# 狀 狀 - (‎ 狀 ‎) 72C0 CJK UNIFIED IDEOGRAPH-72C0 -← (‎ 狀 ‎) F9FA CJK COMPATIBILITY IDEOGRAPH-F9FA - -# 狼 狼 - (‎ 狼 ‎) 72FC CJK UNIFIED IDEOGRAPH-72FC -← (‎ 狼 ‎) F92B CJK COMPATIBILITY IDEOGRAPH-F92B - -# 猪 猪 猪 - (‎ 猪 ‎) 732A CJK UNIFIED IDEOGRAPH-732A -← (‎ 猪 ‎) FA16 CJK COMPATIBILITY IDEOGRAPH-FA16 -← (‎ 猪 ‎) FAA0 CJK COMPATIBILITY IDEOGRAPH-FAA0 - -# 獵 獵 - (‎ 獵 ‎) 7375 CJK UNIFIED IDEOGRAPH-7375 -← (‎ 獵 ‎) F9A7 CJK COMPATIBILITY IDEOGRAPH-F9A7 - -# 獺 獺 - (‎ 獺 ‎) 737A CJK UNIFIED IDEOGRAPH-737A -← (‎ 獺 ‎) 2F928 CJK COMPATIBILITY IDEOGRAPH-2F928 - -# 率 率 率 - (‎ 率 ‎) 7387 CJK UNIFIED IDEOGRAPH-7387 -← (‎ 率 ‎) F961 CJK COMPATIBILITY IDEOGRAPH-F961 -← (‎ 率 ‎) F9DB CJK COMPATIBILITY IDEOGRAPH-F9DB - -# 王 王 - (‎ 王 ‎) 738B CJK UNIFIED IDEOGRAPH-738B -← (‎ 王 ‎) 2F929 CJK COMPATIBILITY IDEOGRAPH-2F929 - -# 玥 玥 - (‎ 玥 ‎) 73A5 CJK UNIFIED IDEOGRAPH-73A5 -← (‎ 玥 ‎) 2F92B CJK COMPATIBILITY IDEOGRAPH-2F92B - -# 玲 玲 - (‎ 玲 ‎) 73B2 CJK UNIFIED IDEOGRAPH-73B2 -← (‎ 玲 ‎) F9AD CJK COMPATIBILITY IDEOGRAPH-F9AD - -# 珞 珞 - (‎ 珞 ‎) 73DE CJK UNIFIED IDEOGRAPH-73DE -← (‎ 珞 ‎) F917 CJK COMPATIBILITY IDEOGRAPH-F917 - -# 理 理 - (‎ 理 ‎) 7406 CJK UNIFIED IDEOGRAPH-7406 -← (‎ 理 ‎) F9E4 CJK COMPATIBILITY IDEOGRAPH-F9E4 - -# 琉 琉 - (‎ 琉 ‎) 7409 CJK UNIFIED IDEOGRAPH-7409 -← (‎ 琉 ‎) F9CC CJK COMPATIBILITY IDEOGRAPH-F9CC - -# 琢 琢 - (‎ 琢 ‎) 7422 CJK UNIFIED IDEOGRAPH-7422 -← (‎ 琢 ‎) FA4A CJK COMPATIBILITY IDEOGRAPH-FA4A - -# 瑇 瑇 - (‎ 瑇 ‎) 7447 CJK UNIFIED IDEOGRAPH-7447 -← (‎ 瑇 ‎) 2F92E CJK COMPATIBILITY IDEOGRAPH-2F92E - -# 瑜 瑜 - (‎ 瑜 ‎) 745C CJK UNIFIED IDEOGRAPH-745C -← (‎ 瑜 ‎) 2F92F CJK COMPATIBILITY IDEOGRAPH-2F92F - -# 瑩 瑩 - (‎ 瑩 ‎) 7469 CJK UNIFIED IDEOGRAPH-7469 -← (‎ 瑩 ‎) F9AE CJK COMPATIBILITY IDEOGRAPH-F9AE - -# 瑱 瑱 瑱 - (‎ 瑱 ‎) 7471 CJK UNIFIED IDEOGRAPH-7471 -← (‎ 瑱 ‎) FAA1 CJK COMPATIBILITY IDEOGRAPH-FAA1 -← (‎ 瑱 ‎) 2F930 CJK COMPATIBILITY IDEOGRAPH-2F930 - -# 璅 璅 - (‎ 璅 ‎) 7485 CJK UNIFIED IDEOGRAPH-7485 -← (‎ 璅 ‎) 2F931 CJK COMPATIBILITY IDEOGRAPH-2F931 - -# 璉 璉 - (‎ 璉 ‎) 7489 CJK UNIFIED IDEOGRAPH-7489 -← (‎ 璉 ‎) F994 CJK COMPATIBILITY IDEOGRAPH-F994 - -# 璘 璘 - (‎ 璘 ‎) 7498 CJK UNIFIED IDEOGRAPH-7498 -← (‎ 璘 ‎) F9EF CJK COMPATIBILITY IDEOGRAPH-F9EF - -# 瓊 瓊 - (‎ 瓊 ‎) 74CA CJK UNIFIED IDEOGRAPH-74CA -← (‎ 瓊 ‎) 2F932 CJK COMPATIBILITY IDEOGRAPH-2F932 - -# 甆 甆 - (‎ 甆 ‎) 7506 CJK UNIFIED IDEOGRAPH-7506 -← (‎ 甆 ‎) FAA2 CJK COMPATIBILITY IDEOGRAPH-FAA2 - -# 甤 甤 - (‎ 甤 ‎) 7524 CJK UNIFIED IDEOGRAPH-7524 -← (‎ 甤 ‎) 2F934 CJK COMPATIBILITY IDEOGRAPH-2F934 - -# 画 画 - (‎ 画 ‎) 753B CJK UNIFIED IDEOGRAPH-753B -← (‎ 画 ‎) FAA3 CJK COMPATIBILITY IDEOGRAPH-FAA3 - -# 甾 甾 - (‎ 甾 ‎) 753E CJK UNIFIED IDEOGRAPH-753E -← (‎ 甾 ‎) 2F936 CJK COMPATIBILITY IDEOGRAPH-2F936 - -# 留 留 - (‎ 留 ‎) 7559 CJK UNIFIED IDEOGRAPH-7559 -← (‎ 留 ‎) F9CD CJK COMPATIBILITY IDEOGRAPH-F9CD - -# 略 略 - (‎ 略 ‎) 7565 CJK UNIFIED IDEOGRAPH-7565 -← (‎ 略 ‎) F976 CJK COMPATIBILITY IDEOGRAPH-F976 - -# 異 異 異 - (‎ 異 ‎) 7570 CJK UNIFIED IDEOGRAPH-7570 -← (‎ 異 ‎) F962 CJK COMPATIBILITY IDEOGRAPH-F962 -← (‎ 異 ‎) 2F938 CJK COMPATIBILITY IDEOGRAPH-2F938 - -# 痢 痢 - (‎ 痢 ‎) 75E2 CJK UNIFIED IDEOGRAPH-75E2 -← (‎ 痢 ‎) F9E5 CJK COMPATIBILITY IDEOGRAPH-F9E5 - -# 瘐 瘐 - (‎ 瘐 ‎) 7610 CJK UNIFIED IDEOGRAPH-7610 -← (‎ 瘐 ‎) 2F93A CJK COMPATIBILITY IDEOGRAPH-2F93A - -# 瘝 瘝 - (‎ 瘝 ‎) 761D CJK UNIFIED IDEOGRAPH-761D -← (‎ 瘝 ‎) FAA4 CJK COMPATIBILITY IDEOGRAPH-FAA4 - -# 瘟 瘟 - (‎ 瘟 ‎) 761F CJK UNIFIED IDEOGRAPH-761F -← (‎ 瘟 ‎) FAA5 CJK COMPATIBILITY IDEOGRAPH-FAA5 - -# 療 療 - (‎ 療 ‎) 7642 CJK UNIFIED IDEOGRAPH-7642 -← (‎ 療 ‎) F9C1 CJK COMPATIBILITY IDEOGRAPH-F9C1 - -# 癩 癩 - (‎ 癩 ‎) 7669 CJK UNIFIED IDEOGRAPH-7669 -← (‎ 癩 ‎) F90E CJK COMPATIBILITY IDEOGRAPH-F90E - -# 益 益 益 - (‎ 益 ‎) 76CA CJK UNIFIED IDEOGRAPH-76CA -← (‎ 益 ‎) FA17 CJK COMPATIBILITY IDEOGRAPH-FA17 -← (‎ 益 ‎) FAA6 CJK COMPATIBILITY IDEOGRAPH-FAA6 - -# 盛 盛 - (‎ 盛 ‎) 76DB CJK UNIFIED IDEOGRAPH-76DB -← (‎ 盛 ‎) FAA7 CJK COMPATIBILITY IDEOGRAPH-FAA7 - -# 盧 盧 - (‎ 盧 ‎) 76E7 CJK UNIFIED IDEOGRAPH-76E7 -← (‎ 盧 ‎) F933 CJK COMPATIBILITY IDEOGRAPH-F933 - -# 直 直 直 - (‎ 直 ‎) 76F4 CJK UNIFIED IDEOGRAPH-76F4 -← (‎ 直 ‎) FAA8 CJK COMPATIBILITY IDEOGRAPH-FAA8 -← (‎ 直 ‎) 2F940 CJK COMPATIBILITY IDEOGRAPH-2F940 - -# 省 省 - (‎ 省 ‎) 7701 CJK UNIFIED IDEOGRAPH-7701 -← (‎ 省 ‎) F96D CJK COMPATIBILITY IDEOGRAPH-F96D - -# 眞 眞 - (‎ 眞 ‎) 771E CJK UNIFIED IDEOGRAPH-771E -← (‎ 眞 ‎) 2F945 CJK COMPATIBILITY IDEOGRAPH-2F945 - -# 真 真 真 - (‎ 真 ‎) 771F CJK UNIFIED IDEOGRAPH-771F -← (‎ 真 ‎) 2F946 CJK COMPATIBILITY IDEOGRAPH-2F946 -← (‎ 真 ‎) 2F947 CJK COMPATIBILITY IDEOGRAPH-2F947 - -# 着 着 - (‎ 着 ‎) 7740 CJK UNIFIED IDEOGRAPH-7740 -← (‎ 着 ‎) FAAA CJK COMPATIBILITY IDEOGRAPH-FAAA - -# 睊 睊 睊 - (‎ 睊 ‎) 774A CJK UNIFIED IDEOGRAPH-774A -← (‎ 睊 ‎) FAA9 CJK COMPATIBILITY IDEOGRAPH-FAA9 -← (‎ 睊 ‎) 2F948 CJK COMPATIBILITY IDEOGRAPH-2F948 - -# 瞋 瞋 - (‎ 瞋 ‎) 778B CJK UNIFIED IDEOGRAPH-778B -← (‎ 瞋 ‎) 2F94A CJK COMPATIBILITY IDEOGRAPH-2F94A - -# 瞧 瞧 - (‎ 瞧 ‎) 77A7 CJK UNIFIED IDEOGRAPH-77A7 -← (‎ 瞧 ‎) FA9D CJK COMPATIBILITY IDEOGRAPH-FA9D - -# 研 硏 - (‎ 研 ‎) 7814 CJK UNIFIED IDEOGRAPH-7814 -← (‎ 硏 ‎) 784F CJK UNIFIED IDEOGRAPH-784F - -# 硎 硎 - (‎ 硎 ‎) 784E CJK UNIFIED IDEOGRAPH-784E -← (‎ 硎 ‎) 2F94E CJK COMPATIBILITY IDEOGRAPH-2F94E - -# 硫 硫 - (‎ 硫 ‎) 786B CJK UNIFIED IDEOGRAPH-786B -← (‎ 硫 ‎) F9CE CJK COMPATIBILITY IDEOGRAPH-F9CE - -# 碌 碌 碌 - (‎ 碌 ‎) 788C CJK UNIFIED IDEOGRAPH-788C -← (‎ 碌 ‎) F93B CJK COMPATIBILITY IDEOGRAPH-F93B -← (‎ 碌 ‎) 2F94F CJK COMPATIBILITY IDEOGRAPH-2F94F - -# 碑 碑 - (‎ 碑 ‎) 7891 CJK UNIFIED IDEOGRAPH-7891 -← (‎ 碑 ‎) FA4B CJK COMPATIBILITY IDEOGRAPH-FA4B - -# 磊 磊 - (‎ 磊 ‎) 78CA CJK UNIFIED IDEOGRAPH-78CA -← (‎ 磊 ‎) F947 CJK COMPATIBILITY IDEOGRAPH-F947 - -# 磌 磌 磌 - (‎ 磌 ‎) 78CC CJK UNIFIED IDEOGRAPH-78CC -← (‎ 磌 ‎) FAAB CJK COMPATIBILITY IDEOGRAPH-FAAB -← (‎ 磌 ‎) 2F950 CJK COMPATIBILITY IDEOGRAPH-2F950 - -# 磻 磻 - (‎ 磻 ‎) 78FB CJK UNIFIED IDEOGRAPH-78FB -← (‎ 磻 ‎) F964 CJK COMPATIBILITY IDEOGRAPH-F964 - -# 礪 礪 - (‎ 礪 ‎) 792A CJK UNIFIED IDEOGRAPH-792A -← (‎ 礪 ‎) F985 CJK COMPATIBILITY IDEOGRAPH-F985 - -# 礼 礼 - (‎ 礼 ‎) 793C CJK UNIFIED IDEOGRAPH-793C -← (‎ 礼 ‎) FA18 CJK COMPATIBILITY IDEOGRAPH-FA18 - -# 社 社 - (‎ 社 ‎) 793E CJK UNIFIED IDEOGRAPH-793E -← (‎ 社 ‎) FA4C CJK COMPATIBILITY IDEOGRAPH-FA4C - -# 祈 祈 - (‎ 祈 ‎) 7948 CJK UNIFIED IDEOGRAPH-7948 -← (‎ 祈 ‎) FA4E CJK COMPATIBILITY IDEOGRAPH-FA4E - -# 祉 祉 - (‎ 祉 ‎) 7949 CJK UNIFIED IDEOGRAPH-7949 -← (‎ 祉 ‎) FA4D CJK COMPATIBILITY IDEOGRAPH-FA4D - -# 祐 祐 - (‎ 祐 ‎) 7950 CJK UNIFIED IDEOGRAPH-7950 -← (‎ 祐 ‎) FA4F CJK COMPATIBILITY IDEOGRAPH-FA4F - -# 祖 祖 祖 - (‎ 祖 ‎) 7956 CJK UNIFIED IDEOGRAPH-7956 -← (‎ 祖 ‎) FA50 CJK COMPATIBILITY IDEOGRAPH-FA50 -← (‎ 祖 ‎) 2F953 CJK COMPATIBILITY IDEOGRAPH-2F953 - -# 祝 祝 - (‎ 祝 ‎) 795D CJK UNIFIED IDEOGRAPH-795D -← (‎ 祝 ‎) FA51 CJK COMPATIBILITY IDEOGRAPH-FA51 - -# 神 神 - (‎ 神 ‎) 795E CJK UNIFIED IDEOGRAPH-795E -← (‎ 神 ‎) FA19 CJK COMPATIBILITY IDEOGRAPH-FA19 - -# 祥 祥 - (‎ 祥 ‎) 7965 CJK UNIFIED IDEOGRAPH-7965 -← (‎ 祥 ‎) FA1A CJK COMPATIBILITY IDEOGRAPH-FA1A - -# 祿 祿 - (‎ 祿 ‎) 797F CJK UNIFIED IDEOGRAPH-797F -← (‎ 祿 ‎) F93C CJK COMPATIBILITY IDEOGRAPH-F93C - -# 禍 禍 - (‎ 禍 ‎) 798D CJK UNIFIED IDEOGRAPH-798D -← (‎ 禍 ‎) FA52 CJK COMPATIBILITY IDEOGRAPH-FA52 - -# 禎 禎 - (‎ 禎 ‎) 798E CJK UNIFIED IDEOGRAPH-798E -← (‎ 禎 ‎) FA53 CJK COMPATIBILITY IDEOGRAPH-FA53 - -# 福 福 福 - (‎ 福 ‎) 798F CJK UNIFIED IDEOGRAPH-798F -← (‎ 福 ‎) FA1B CJK COMPATIBILITY IDEOGRAPH-FA1B -← (‎ 福 ‎) 2F956 CJK COMPATIBILITY IDEOGRAPH-2F956 - -# 禮 禮 - (‎ 禮 ‎) 79AE CJK UNIFIED IDEOGRAPH-79AE -← (‎ 禮 ‎) F9B6 CJK COMPATIBILITY IDEOGRAPH-F9B6 - -# 秊 秊 - (‎ 秊 ‎) 79CA CJK UNIFIED IDEOGRAPH-79CA -← (‎ 秊 ‎) F995 CJK COMPATIBILITY IDEOGRAPH-F995 - -# 秫 秫 - (‎ 秫 ‎) 79EB CJK UNIFIED IDEOGRAPH-79EB -← (‎ 秫 ‎) 2F957 CJK COMPATIBILITY IDEOGRAPH-2F957 - -# 稜 稜 - (‎ 稜 ‎) 7A1C CJK UNIFIED IDEOGRAPH-7A1C -← (‎ 稜 ‎) F956 CJK COMPATIBILITY IDEOGRAPH-F956 - -# 穀 穀 穀 - (‎ 穀 ‎) 7A40 CJK UNIFIED IDEOGRAPH-7A40 -← (‎ 穀 ‎) FA54 CJK COMPATIBILITY IDEOGRAPH-FA54 -← (‎ 穀 ‎) 2F959 CJK COMPATIBILITY IDEOGRAPH-2F959 - -# 穊 穊 - (‎ 穊 ‎) 7A4A CJK UNIFIED IDEOGRAPH-7A4A -← (‎ 穊 ‎) 2F95A CJK COMPATIBILITY IDEOGRAPH-2F95A - -# 穏 穏 - (‎ 穏 ‎) 7A4F CJK UNIFIED IDEOGRAPH-7A4F -← (‎ 穏 ‎) 2F95B CJK COMPATIBILITY IDEOGRAPH-2F95B - -# 突 突 - (‎ 突 ‎) 7A81 CJK UNIFIED IDEOGRAPH-7A81 -← (‎ 突 ‎) FA55 CJK COMPATIBILITY IDEOGRAPH-FA55 - -# 窱 窱 - (‎ 窱 ‎) 7AB1 CJK UNIFIED IDEOGRAPH-7AB1 -← (‎ 窱 ‎) FAAC CJK COMPATIBILITY IDEOGRAPH-FAAC - -# 竮 竮 - (‎ 竮 ‎) 7AEE CJK UNIFIED IDEOGRAPH-7AEE -← (‎ 竮 ‎) 2F95F CJK COMPATIBILITY IDEOGRAPH-2F95F - -# 笠 笠 - (‎ 笠 ‎) 7B20 CJK UNIFIED IDEOGRAPH-7B20 -← (‎ 笠 ‎) F9F8 CJK COMPATIBILITY IDEOGRAPH-F9F8 - -# 節 節 節 - (‎ 節 ‎) 7BC0 CJK UNIFIED IDEOGRAPH-7BC0 -← (‎ 節 ‎) FA56 CJK COMPATIBILITY IDEOGRAPH-FA56 -← (‎ 節 ‎) FAAD CJK COMPATIBILITY IDEOGRAPH-FAAD - -# 篆 篆 - (‎ 篆 ‎) 7BC6 CJK UNIFIED IDEOGRAPH-7BC6 -← (‎ 篆 ‎) 2F962 CJK COMPATIBILITY IDEOGRAPH-2F962 - -# 築 築 - (‎ 築 ‎) 7BC9 CJK UNIFIED IDEOGRAPH-7BC9 -← (‎ 築 ‎) 2F963 CJK COMPATIBILITY IDEOGRAPH-2F963 - -# 簾 簾 - (‎ 簾 ‎) 7C3E CJK UNIFIED IDEOGRAPH-7C3E -← (‎ 簾 ‎) F9A6 CJK COMPATIBILITY IDEOGRAPH-F9A6 - -# 籠 籠 - (‎ 籠 ‎) 7C60 CJK UNIFIED IDEOGRAPH-7C60 -← (‎ 籠 ‎) F944 CJK COMPATIBILITY IDEOGRAPH-F944 - -# 类 类 - (‎ 类 ‎) 7C7B CJK UNIFIED IDEOGRAPH-7C7B -← (‎ 类 ‎) FAAE CJK COMPATIBILITY IDEOGRAPH-FAAE - -# 粒 粒 - (‎ 粒 ‎) 7C92 CJK UNIFIED IDEOGRAPH-7C92 -← (‎ 粒 ‎) F9F9 CJK COMPATIBILITY IDEOGRAPH-F9F9 - -# 精 精 - (‎ 精 ‎) 7CBE CJK UNIFIED IDEOGRAPH-7CBE -← (‎ 精 ‎) FA1D CJK COMPATIBILITY IDEOGRAPH-FA1D - -# 糒 糒 - (‎ 糒 ‎) 7CD2 CJK UNIFIED IDEOGRAPH-7CD2 -← (‎ 糒 ‎) 2F966 CJK COMPATIBILITY IDEOGRAPH-2F966 - -# 糖 糖 - (‎ 糖 ‎) 7CD6 CJK UNIFIED IDEOGRAPH-7CD6 -← (‎ 糖 ‎) FA03 CJK COMPATIBILITY IDEOGRAPH-FA03 - -# 糣 糣 - (‎ 糣 ‎) 7CE3 CJK UNIFIED IDEOGRAPH-7CE3 -← (‎ 糣 ‎) 2F969 CJK COMPATIBILITY IDEOGRAPH-2F969 - -# 糧 糧 - (‎ 糧 ‎) 7CE7 CJK UNIFIED IDEOGRAPH-7CE7 -← (‎ 糧 ‎) F97B CJK COMPATIBILITY IDEOGRAPH-F97B - -# 糨 糨 - (‎ 糨 ‎) 7CE8 CJK UNIFIED IDEOGRAPH-7CE8 -← (‎ 糨 ‎) 2F968 CJK COMPATIBILITY IDEOGRAPH-2F968 - -# 紀 紀 - (‎ 紀 ‎) 7D00 CJK UNIFIED IDEOGRAPH-7D00 -← (‎ 紀 ‎) 2F96A CJK COMPATIBILITY IDEOGRAPH-2F96A - -# 紐 紐 - (‎ 紐 ‎) 7D10 CJK UNIFIED IDEOGRAPH-7D10 -← (‎ 紐 ‎) F9CF CJK COMPATIBILITY IDEOGRAPH-F9CF - -# 索 索 - (‎ 索 ‎) 7D22 CJK UNIFIED IDEOGRAPH-7D22 -← (‎ 索 ‎) F96A CJK COMPATIBILITY IDEOGRAPH-F96A - -# 累 累 - (‎ 累 ‎) 7D2F CJK UNIFIED IDEOGRAPH-7D2F -← (‎ 累 ‎) F94F CJK COMPATIBILITY IDEOGRAPH-F94F - -# 絕 絶 - (‎ 絕 ‎) 7D55 CJK UNIFIED IDEOGRAPH-7D55 -← (‎ 絶 ‎) 7D76 CJK UNIFIED IDEOGRAPH-7D76 - -# 絛 絛 - (‎ 絛 ‎) 7D5B CJK UNIFIED IDEOGRAPH-7D5B -← (‎ 絛 ‎) FAAF CJK COMPATIBILITY IDEOGRAPH-FAAF - -# 絣 絣 - (‎ 絣 ‎) 7D63 CJK UNIFIED IDEOGRAPH-7D63 -← (‎ 絣 ‎) 2F96C CJK COMPATIBILITY IDEOGRAPH-2F96C - -# 綠 綠 - (‎ 綠 ‎) 7DA0 CJK UNIFIED IDEOGRAPH-7DA0 -← (‎ 綠 ‎) F93D CJK COMPATIBILITY IDEOGRAPH-F93D - -# 綾 綾 - (‎ 綾 ‎) 7DBE CJK UNIFIED IDEOGRAPH-7DBE -← (‎ 綾 ‎) F957 CJK COMPATIBILITY IDEOGRAPH-F957 - -# 緇 緇 - (‎ 緇 ‎) 7DC7 CJK UNIFIED IDEOGRAPH-7DC7 -← (‎ 緇 ‎) 2F96E CJK COMPATIBILITY IDEOGRAPH-2F96E - -# 練 練 練 練 - (‎ 練 ‎) 7DF4 CJK UNIFIED IDEOGRAPH-7DF4 -← (‎ 練 ‎) F996 CJK COMPATIBILITY IDEOGRAPH-F996 -← (‎ 練 ‎) FA57 CJK COMPATIBILITY IDEOGRAPH-FA57 -← (‎ 練 ‎) FAB0 CJK COMPATIBILITY IDEOGRAPH-FAB0 - -# 縂 縂 - (‎ 縂 ‎) 7E02 CJK UNIFIED IDEOGRAPH-7E02 -← (‎ 縂 ‎) 2F96F CJK COMPATIBILITY IDEOGRAPH-2F96F - -# 縉 縉 - (‎ 縉 ‎) 7E09 CJK UNIFIED IDEOGRAPH-7E09 -← (‎ 縉 ‎) FA58 CJK COMPATIBILITY IDEOGRAPH-FA58 - -# 縷 縷 - (‎ 縷 ‎) 7E37 CJK UNIFIED IDEOGRAPH-7E37 -← (‎ 縷 ‎) F950 CJK COMPATIBILITY IDEOGRAPH-F950 - -# 繁 繁 - (‎ 繁 ‎) 7E41 CJK UNIFIED IDEOGRAPH-7E41 -← (‎ 繁 ‎) FA59 CJK COMPATIBILITY IDEOGRAPH-FA59 - -# 繅 繅 - (‎ 繅 ‎) 7E45 CJK UNIFIED IDEOGRAPH-7E45 -← (‎ 繅 ‎) 2F970 CJK COMPATIBILITY IDEOGRAPH-2F970 - -# 缾 缾 - (‎ 缾 ‎) 7F3E CJK UNIFIED IDEOGRAPH-7F3E -← (‎ 缾 ‎) FAB1 CJK COMPATIBILITY IDEOGRAPH-FAB1 - -# 署 署 - (‎ 署 ‎) 7F72 CJK UNIFIED IDEOGRAPH-7F72 -← (‎ 署 ‎) FA5A CJK COMPATIBILITY IDEOGRAPH-FA5A - -# 罹 罹 - (‎ 罹 ‎) 7F79 CJK UNIFIED IDEOGRAPH-7F79 -← (‎ 罹 ‎) F9E6 CJK COMPATIBILITY IDEOGRAPH-F9E6 - -# 罺 罺 - (‎ 罺 ‎) 7F7A CJK UNIFIED IDEOGRAPH-7F7A -← (‎ 罺 ‎) 2F976 CJK COMPATIBILITY IDEOGRAPH-2F976 - -# 羅 羅 - (‎ 羅 ‎) 7F85 CJK UNIFIED IDEOGRAPH-7F85 -← (‎ 羅 ‎) F90F CJK COMPATIBILITY IDEOGRAPH-F90F - -# 羕 羕 - (‎ 羕 ‎) 7F95 CJK UNIFIED IDEOGRAPH-7F95 -← (‎ 羕 ‎) 2F978 CJK COMPATIBILITY IDEOGRAPH-2F978 - -# 羚 羚 - (‎ 羚 ‎) 7F9A CJK UNIFIED IDEOGRAPH-7F9A -← (‎ 羚 ‎) F9AF CJK COMPATIBILITY IDEOGRAPH-F9AF - -# 翺 翺 - (‎ 翺 ‎) 7FFA CJK UNIFIED IDEOGRAPH-7FFA -← (‎ 翺 ‎) 2F979 CJK COMPATIBILITY IDEOGRAPH-2F979 - -# 者 者 者 者 - (‎ 者 ‎) 8005 CJK UNIFIED IDEOGRAPH-8005 -← (‎ 者 ‎) FA5B CJK COMPATIBILITY IDEOGRAPH-FA5B -← (‎ 者 ‎) FAB2 CJK COMPATIBILITY IDEOGRAPH-FAB2 -← (‎ 者 ‎) 2F97A CJK COMPATIBILITY IDEOGRAPH-2F97A - -# 聆 聆 - (‎ 聆 ‎) 8046 CJK UNIFIED IDEOGRAPH-8046 -← (‎ 聆 ‎) F9B0 CJK COMPATIBILITY IDEOGRAPH-F9B0 - -# 聠 聠 - (‎ 聠 ‎) 8060 CJK UNIFIED IDEOGRAPH-8060 -← (‎ 聠 ‎) 2F97D CJK COMPATIBILITY IDEOGRAPH-2F97D - -# 聯 聯 - (‎ 聯 ‎) 806F CJK UNIFIED IDEOGRAPH-806F -← (‎ 聯 ‎) F997 CJK COMPATIBILITY IDEOGRAPH-F997 - -# 聰 聰 - (‎ 聰 ‎) 8070 CJK UNIFIED IDEOGRAPH-8070 -← (‎ 聰 ‎) 2F97F CJK COMPATIBILITY IDEOGRAPH-2F97F - -# 聾 聾 - (‎ 聾 ‎) 807E CJK UNIFIED IDEOGRAPH-807E -← (‎ 聾 ‎) F945 CJK COMPATIBILITY IDEOGRAPH-F945 - -# 肋 肋 - (‎ 肋 ‎) 808B CJK UNIFIED IDEOGRAPH-808B -← (‎ 肋 ‎) F953 CJK COMPATIBILITY IDEOGRAPH-F953 - -# 肭 肭 - (‎ 肭 ‎) 80AD CJK UNIFIED IDEOGRAPH-80AD -← (‎ 肭 ‎) 2F8D6 CJK COMPATIBILITY IDEOGRAPH-2F8D6 - -# 育 育 - (‎ 育 ‎) 80B2 CJK UNIFIED IDEOGRAPH-80B2 -← (‎ 育 ‎) 2F982 CJK COMPATIBILITY IDEOGRAPH-2F982 - -# 胼 腁 - (‎ 胼 ‎) 80FC CJK UNIFIED IDEOGRAPH-80FC -← (‎ 腁 ‎) 8141 CJK UNIFIED IDEOGRAPH-8141 - -# 脃 脃 - (‎ 脃 ‎) 8103 CJK UNIFIED IDEOGRAPH-8103 -← (‎ 脃 ‎) 2F983 CJK COMPATIBILITY IDEOGRAPH-2F983 - -# 脾 脾 - (‎ 脾 ‎) 813E CJK UNIFIED IDEOGRAPH-813E -← (‎ 脾 ‎) 2F985 CJK COMPATIBILITY IDEOGRAPH-2F985 - -# 臘 臘 - (‎ 臘 ‎) 81D8 CJK UNIFIED IDEOGRAPH-81D8 -← (‎ 臘 ‎) F926 CJK COMPATIBILITY IDEOGRAPH-F926 - -# 臨 臨 - (‎ 臨 ‎) 81E8 CJK UNIFIED IDEOGRAPH-81E8 -← (‎ 臨 ‎) F9F6 CJK COMPATIBILITY IDEOGRAPH-F9F6 - -# 臭 臭 - (‎ 臭 ‎) 81ED CJK UNIFIED IDEOGRAPH-81ED -← (‎ 臭 ‎) FA5C CJK COMPATIBILITY IDEOGRAPH-FA5C - -# 舁 舁 舁 - (‎ 舁 ‎) 8201 CJK UNIFIED IDEOGRAPH-8201 -← (‎ 舁 ‎) 2F893 CJK COMPATIBILITY IDEOGRAPH-2F893 -← (‎ 舁 ‎) 2F98B CJK COMPATIBILITY IDEOGRAPH-2F98B - -# 舄 舄 - (‎ 舄 ‎) 8204 CJK UNIFIED IDEOGRAPH-8204 -← (‎ 舄 ‎) 2F98C CJK COMPATIBILITY IDEOGRAPH-2F98C - -# 舘 舘 - (‎ 舘 ‎) 8218 CJK UNIFIED IDEOGRAPH-8218 -← (‎ 舘 ‎) FA6D CJK COMPATIBILITY IDEOGRAPH-FA6D - -# 良 良 - (‎ 良 ‎) 826F CJK UNIFIED IDEOGRAPH-826F -← (‎ 良 ‎) F97C CJK COMPATIBILITY IDEOGRAPH-F97C - -# 芋 芋 - (‎ 芋 ‎) 828B CJK UNIFIED IDEOGRAPH-828B -← (‎ 芋 ‎) 2F990 CJK COMPATIBILITY IDEOGRAPH-2F990 - -# 芑 芑 - (‎ 芑 ‎) 8291 CJK UNIFIED IDEOGRAPH-8291 -← (‎ 芑 ‎) 2F98F CJK COMPATIBILITY IDEOGRAPH-2F98F - -# 芝 芝 - (‎ 芝 ‎) 829D CJK UNIFIED IDEOGRAPH-829D -← (‎ 芝 ‎) 2F991 CJK COMPATIBILITY IDEOGRAPH-2F991 - -# 花 花 - (‎ 花 ‎) 82B1 CJK UNIFIED IDEOGRAPH-82B1 -← (‎ 花 ‎) 2F993 CJK COMPATIBILITY IDEOGRAPH-2F993 - -# 芳 芳 - (‎ 芳 ‎) 82B3 CJK UNIFIED IDEOGRAPH-82B3 -← (‎ 芳 ‎) 2F994 CJK COMPATIBILITY IDEOGRAPH-2F994 - -# 芽 芽 - (‎ 芽 ‎) 82BD CJK UNIFIED IDEOGRAPH-82BD -← (‎ 芽 ‎) 2F995 CJK COMPATIBILITY IDEOGRAPH-2F995 - -# 若 若 若 - (‎ 若 ‎) 82E5 CJK UNIFIED IDEOGRAPH-82E5 -← (‎ 若 ‎) F974 CJK COMPATIBILITY IDEOGRAPH-F974 -← (‎ 若 ‎) 2F998 CJK COMPATIBILITY IDEOGRAPH-2F998 - -# 苦 苦 - (‎ 苦 ‎) 82E6 CJK UNIFIED IDEOGRAPH-82E6 -← (‎ 苦 ‎) 2F996 CJK COMPATIBILITY IDEOGRAPH-2F996 - -# 茝 茝 - (‎ 茝 ‎) 831D CJK UNIFIED IDEOGRAPH-831D -← (‎ 茝 ‎) 2F999 CJK COMPATIBILITY IDEOGRAPH-2F999 - -# 茣 茣 - (‎ 茣 ‎) 8323 CJK UNIFIED IDEOGRAPH-8323 -← (‎ 茣 ‎) 2F99C CJK COMPATIBILITY IDEOGRAPH-2F99C - -# 茶 茶 - (‎ 茶 ‎) 8336 CJK UNIFIED IDEOGRAPH-8336 -← (‎ 茶 ‎) F9FE CJK COMPATIBILITY IDEOGRAPH-F9FE - -# 荒 荒 - (‎ 荒 ‎) 8352 CJK UNIFIED IDEOGRAPH-8352 -← (‎ 荒 ‎) FAB3 CJK COMPATIBILITY IDEOGRAPH-FAB3 - -# 荓 荓 - (‎ 荓 ‎) 8353 CJK UNIFIED IDEOGRAPH-8353 -← (‎ 荓 ‎) 2F9A0 CJK COMPATIBILITY IDEOGRAPH-2F9A0 - -# 荣 荣 - (‎ 荣 ‎) 8363 CJK UNIFIED IDEOGRAPH-8363 -← (‎ 荣 ‎) 2F99A CJK COMPATIBILITY IDEOGRAPH-2F99A - -# 莭 莭 - (‎ 莭 ‎) 83AD CJK UNIFIED IDEOGRAPH-83AD -← (‎ 莭 ‎) 2F99B CJK COMPATIBILITY IDEOGRAPH-2F99B - -# 莽 莽 - (‎ 莽 ‎) 83BD CJK UNIFIED IDEOGRAPH-83BD -← (‎ 莽 ‎) 2F99D CJK COMPATIBILITY IDEOGRAPH-2F99D - -# 菉 菉 - (‎ 菉 ‎) 83C9 CJK UNIFIED IDEOGRAPH-83C9 -← (‎ 菉 ‎) F93E CJK COMPATIBILITY IDEOGRAPH-F93E - -# 菊 菊 - (‎ 菊 ‎) 83CA CJK UNIFIED IDEOGRAPH-83CA -← (‎ 菊 ‎) 2F9A1 CJK COMPATIBILITY IDEOGRAPH-2F9A1 - -# 菌 菌 - (‎ 菌 ‎) 83CC CJK UNIFIED IDEOGRAPH-83CC -← (‎ 菌 ‎) 2F9A2 CJK COMPATIBILITY IDEOGRAPH-2F9A2 - -# 菜 菜 - (‎ 菜 ‎) 83DC CJK UNIFIED IDEOGRAPH-83DC -← (‎ 菜 ‎) 2F9A3 CJK COMPATIBILITY IDEOGRAPH-2F9A3 - -# 菧 菧 - (‎ 菧 ‎) 83E7 CJK UNIFIED IDEOGRAPH-83E7 -← (‎ 菧 ‎) 2F99E CJK COMPATIBILITY IDEOGRAPH-2F99E - -# 華 華 - (‎ 華 ‎) 83EF CJK UNIFIED IDEOGRAPH-83EF -← (‎ 華 ‎) FAB4 CJK COMPATIBILITY IDEOGRAPH-FAB4 - -# 菱 菱 - (‎ 菱 ‎) 83F1 CJK UNIFIED IDEOGRAPH-83F1 -← (‎ 菱 ‎) F958 CJK COMPATIBILITY IDEOGRAPH-F958 - -# 落 落 - (‎ 落 ‎) 843D CJK UNIFIED IDEOGRAPH-843D -← (‎ 落 ‎) F918 CJK COMPATIBILITY IDEOGRAPH-F918 - -# 葉 葉 - (‎ 葉 ‎) 8449 CJK UNIFIED IDEOGRAPH-8449 -← (‎ 葉 ‎) F96E CJK COMPATIBILITY IDEOGRAPH-F96E - -# 著 著 著 - (‎ 著 ‎) 8457 CJK UNIFIED IDEOGRAPH-8457 -← (‎ 著 ‎) FA5F CJK COMPATIBILITY IDEOGRAPH-FA5F -← (‎ 著 ‎) 2F99F CJK COMPATIBILITY IDEOGRAPH-2F99F - -# 蒍 蔿 - (‎ 蒍 ‎) 848D CJK UNIFIED IDEOGRAPH-848D -← (‎ 蔿 ‎) 853F CJK UNIFIED IDEOGRAPH-853F - -# 蓮 蓮 - (‎ 蓮 ‎) 84EE CJK UNIFIED IDEOGRAPH-84EE -← (‎ 蓮 ‎) F999 CJK COMPATIBILITY IDEOGRAPH-F999 - -# 蓱 蓱 - (‎ 蓱 ‎) 84F1 CJK UNIFIED IDEOGRAPH-84F1 -← (‎ 蓱 ‎) 2F9A8 CJK COMPATIBILITY IDEOGRAPH-2F9A8 - -# 蓳 蓳 - (‎ 蓳 ‎) 84F3 CJK UNIFIED IDEOGRAPH-84F3 -← (‎ 蓳 ‎) 2F9A9 CJK COMPATIBILITY IDEOGRAPH-2F9A9 - -# 蓼 蓼 - (‎ 蓼 ‎) 84FC CJK UNIFIED IDEOGRAPH-84FC -← (‎ 蓼 ‎) F9C2 CJK COMPATIBILITY IDEOGRAPH-F9C2 - -# 蔖 蔖 - (‎ 蔖 ‎) 8516 CJK UNIFIED IDEOGRAPH-8516 -← (‎ 蔖 ‎) 2F9AA CJK COMPATIBILITY IDEOGRAPH-2F9AA - -# 蕤 蕤 - (‎ 蕤 ‎) 8564 CJK UNIFIED IDEOGRAPH-8564 -← (‎ 蕤 ‎) 2F9AC CJK COMPATIBILITY IDEOGRAPH-2F9AC - -# 藍 藍 - (‎ 藍 ‎) 85CD CJK UNIFIED IDEOGRAPH-85CD -← (‎ 藍 ‎) F923 CJK COMPATIBILITY IDEOGRAPH-F923 - -# 藺 藺 - (‎ 藺 ‎) 85FA CJK UNIFIED IDEOGRAPH-85FA -← (‎ 藺 ‎) F9F0 CJK COMPATIBILITY IDEOGRAPH-F9F0 - -# 蘆 蘆 - (‎ 蘆 ‎) 8606 CJK UNIFIED IDEOGRAPH-8606 -← (‎ 蘆 ‎) F935 CJK COMPATIBILITY IDEOGRAPH-F935 - -# 蘒 蘒 - (‎ 蘒 ‎) 8612 CJK UNIFIED IDEOGRAPH-8612 -← (‎ 蘒 ‎) FA20 CJK COMPATIBILITY IDEOGRAPH-FA20 - -# 蘭 蘭 - (‎ 蘭 ‎) 862D CJK UNIFIED IDEOGRAPH-862D -← (‎ 蘭 ‎) F91F CJK COMPATIBILITY IDEOGRAPH-F91F - -# 蘷 虁 - (‎ 蘷 ‎) 8637 CJK UNIFIED IDEOGRAPH-8637 -← (‎ 虁 ‎) 8641 CJK UNIFIED IDEOGRAPH-8641 - -# 蘿 蘿 - (‎ 蘿 ‎) 863F CJK UNIFIED IDEOGRAPH-863F -← (‎ 蘿 ‎) F910 CJK COMPATIBILITY IDEOGRAPH-F910 - -# 虐 虐 - (‎ 虐 ‎) 8650 CJK UNIFIED IDEOGRAPH-8650 -← (‎ 虐 ‎) 2F9B3 CJK COMPATIBILITY IDEOGRAPH-2F9B3 - -# 虜 虜 虜 - (‎ 虜 ‎) 865C CJK UNIFIED IDEOGRAPH-865C -← (‎ 虜 ‎) F936 CJK COMPATIBILITY IDEOGRAPH-F936 -← (‎ 虜 ‎) 2F9B4 CJK COMPATIBILITY IDEOGRAPH-2F9B4 - -# 虧 虧 - (‎ 虧 ‎) 8667 CJK UNIFIED IDEOGRAPH-8667 -← (‎ 虧 ‎) 2F9B5 CJK COMPATIBILITY IDEOGRAPH-2F9B5 - -# 虩 虩 - (‎ 虩 ‎) 8669 CJK UNIFIED IDEOGRAPH-8669 -← (‎ 虩 ‎) 2F9B6 CJK COMPATIBILITY IDEOGRAPH-2F9B6 - -# 蚈 蚈 - (‎ 蚈 ‎) 8688 CJK UNIFIED IDEOGRAPH-8688 -← (‎ 蚈 ‎) 2F9B8 CJK COMPATIBILITY IDEOGRAPH-2F9B8 - -# 蚩 蚩 - (‎ 蚩 ‎) 86A9 CJK UNIFIED IDEOGRAPH-86A9 -← (‎ 蚩 ‎) 2F9B7 CJK COMPATIBILITY IDEOGRAPH-2F9B7 - -# 蛢 蛢 - (‎ 蛢 ‎) 86E2 CJK UNIFIED IDEOGRAPH-86E2 -← (‎ 蛢 ‎) 2F9BA CJK COMPATIBILITY IDEOGRAPH-2F9BA - -# 蜎 蜎 - (‎ 蜎 ‎) 870E CJK UNIFIED IDEOGRAPH-870E -← (‎ 蜎 ‎) 2F9B9 CJK COMPATIBILITY IDEOGRAPH-2F9B9 - -# 蜨 蜨 - (‎ 蜨 ‎) 8728 CJK UNIFIED IDEOGRAPH-8728 -← (‎ 蜨 ‎) 2F9BC CJK COMPATIBILITY IDEOGRAPH-2F9BC - -# 蝫 蝫 - (‎ 蝫 ‎) 876B CJK UNIFIED IDEOGRAPH-876B -← (‎ 蝫 ‎) 2F9BD CJK COMPATIBILITY IDEOGRAPH-2F9BD - -# 蝹 蝹 蝹 - (‎ 蝹 ‎) 8779 CJK UNIFIED IDEOGRAPH-8779 -← (‎ 蝹 ‎) FAB5 CJK COMPATIBILITY IDEOGRAPH-FAB5 -← (‎ 蝹 ‎) 2F9BB CJK COMPATIBILITY IDEOGRAPH-2F9BB - -# 螆 螆 - (‎ 螆 ‎) 8786 CJK UNIFIED IDEOGRAPH-8786 -← (‎ 螆 ‎) 2F9BE CJK COMPATIBILITY IDEOGRAPH-2F9BE - -# 螺 螺 - (‎ 螺 ‎) 87BA CJK UNIFIED IDEOGRAPH-87BA -← (‎ 螺 ‎) F911 CJK COMPATIBILITY IDEOGRAPH-F911 - -# 蟡 蟡 - (‎ 蟡 ‎) 87E1 CJK UNIFIED IDEOGRAPH-87E1 -← (‎ 蟡 ‎) 2F9C0 CJK COMPATIBILITY IDEOGRAPH-2F9C0 - -# 蠁 蠁 - (‎ 蠁 ‎) 8801 CJK UNIFIED IDEOGRAPH-8801 -← (‎ 蠁 ‎) 2F9C1 CJK COMPATIBILITY IDEOGRAPH-2F9C1 - -# 蠟 蠟 - (‎ 蠟 ‎) 881F CJK UNIFIED IDEOGRAPH-881F -← (‎ 蠟 ‎) F927 CJK COMPATIBILITY IDEOGRAPH-F927 - -# 衠 衠 - (‎ 衠 ‎) 8860 CJK UNIFIED IDEOGRAPH-8860 -← (‎ 衠 ‎) 2F9C3 CJK COMPATIBILITY IDEOGRAPH-2F9C3 - -# 裂 裂 - (‎ 裂 ‎) 88C2 CJK UNIFIED IDEOGRAPH-88C2 -← (‎ 裂 ‎) F9A0 CJK COMPATIBILITY IDEOGRAPH-F9A0 - -# 裏 裏 - (‎ 裏 ‎) 88CF CJK UNIFIED IDEOGRAPH-88CF -← (‎ 裏 ‎) F9E7 CJK COMPATIBILITY IDEOGRAPH-F9E7 - -# 裗 裗 - (‎ 裗 ‎) 88D7 CJK UNIFIED IDEOGRAPH-88D7 -← (‎ 裗 ‎) 2F9C6 CJK COMPATIBILITY IDEOGRAPH-2F9C6 - -# 裞 裞 - (‎ 裞 ‎) 88DE CJK UNIFIED IDEOGRAPH-88DE -← (‎ 裞 ‎) 2F9C7 CJK COMPATIBILITY IDEOGRAPH-2F9C7 - -# 裡 裡 - (‎ 裡 ‎) 88E1 CJK UNIFIED IDEOGRAPH-88E1 -← (‎ 裡 ‎) F9E8 CJK COMPATIBILITY IDEOGRAPH-F9E8 - -# 裸 裸 - (‎ 裸 ‎) 88F8 CJK UNIFIED IDEOGRAPH-88F8 -← (‎ 裸 ‎) F912 CJK COMPATIBILITY IDEOGRAPH-F912 - -# 裺 裺 - (‎ 裺 ‎) 88FA CJK UNIFIED IDEOGRAPH-88FA -← (‎ 裺 ‎) 2F9C9 CJK COMPATIBILITY IDEOGRAPH-2F9C9 - -# 褐 褐 - (‎ 褐 ‎) 8910 CJK UNIFIED IDEOGRAPH-8910 -← (‎ 褐 ‎) FA60 CJK COMPATIBILITY IDEOGRAPH-FA60 - -# 襁 襁 - (‎ 襁 ‎) 8941 CJK UNIFIED IDEOGRAPH-8941 -← (‎ 襁 ‎) FAB6 CJK COMPATIBILITY IDEOGRAPH-FAB6 - -# 襤 襤 - (‎ 襤 ‎) 8964 CJK UNIFIED IDEOGRAPH-8964 -← (‎ 襤 ‎) F924 CJK COMPATIBILITY IDEOGRAPH-F924 - -# 覆 覆 - (‎ 覆 ‎) 8986 CJK UNIFIED IDEOGRAPH-8986 -← (‎ 覆 ‎) FAB7 CJK COMPATIBILITY IDEOGRAPH-FAB7 - -# 視 視 視 - (‎ 視 ‎) 8996 CJK UNIFIED IDEOGRAPH-8996 -← (‎ 視 ‎) FA61 CJK COMPATIBILITY IDEOGRAPH-FA61 -← (‎ 視 ‎) FAB8 CJK COMPATIBILITY IDEOGRAPH-FAB8 - -# 訮 詽 - (‎ 訮 ‎) 8A2E CJK UNIFIED IDEOGRAPH-8A2E -← (‎ 詽 ‎) 8A7D CJK UNIFIED IDEOGRAPH-8A7D - -# 誠 誠 - (‎ 誠 ‎) 8AA0 CJK UNIFIED IDEOGRAPH-8AA0 -← (‎ 誠 ‎) 2F9CF CJK COMPATIBILITY IDEOGRAPH-2F9CF - -# 說 說 說 - (‎ 說 ‎) 8AAA CJK UNIFIED IDEOGRAPH-8AAA -← (‎ 說 ‎) F96F CJK COMPATIBILITY IDEOGRAPH-F96F -← (‎ 說 ‎) F9A1 CJK COMPATIBILITY IDEOGRAPH-F9A1 - -# 調 調 - (‎ 調 ‎) 8ABF CJK UNIFIED IDEOGRAPH-8ABF -← (‎ 調 ‎) FAB9 CJK COMPATIBILITY IDEOGRAPH-FAB9 - -# 請 請 - (‎ 請 ‎) 8ACB CJK UNIFIED IDEOGRAPH-8ACB -← (‎ 請 ‎) FABB CJK COMPATIBILITY IDEOGRAPH-FABB - -# 諒 諒 - (‎ 諒 ‎) 8AD2 CJK UNIFIED IDEOGRAPH-8AD2 -← (‎ 諒 ‎) F97D CJK COMPATIBILITY IDEOGRAPH-F97D - -# 論 論 - (‎ 論 ‎) 8AD6 CJK UNIFIED IDEOGRAPH-8AD6 -← (‎ 論 ‎) F941 CJK COMPATIBILITY IDEOGRAPH-F941 - -# 諭 諭 諭 - (‎ 諭 ‎) 8AED CJK UNIFIED IDEOGRAPH-8AED -← (‎ 諭 ‎) FABE CJK COMPATIBILITY IDEOGRAPH-FABE -← (‎ 諭 ‎) 2F9D0 CJK COMPATIBILITY IDEOGRAPH-2F9D0 - -# 諸 諸 諸 - (‎ 諸 ‎) 8AF8 CJK UNIFIED IDEOGRAPH-8AF8 -← (‎ 諸 ‎) FA22 CJK COMPATIBILITY IDEOGRAPH-FA22 -← (‎ 諸 ‎) FABA CJK COMPATIBILITY IDEOGRAPH-FABA - -# 諾 諾 諾 - (‎ 諾 ‎) 8AFE CJK UNIFIED IDEOGRAPH-8AFE -← (‎ 諾 ‎) F95D CJK COMPATIBILITY IDEOGRAPH-F95D -← (‎ 諾 ‎) FABD CJK COMPATIBILITY IDEOGRAPH-FABD - -# 謁 謁 謁 - (‎ 謁 ‎) 8B01 CJK UNIFIED IDEOGRAPH-8B01 -← (‎ 謁 ‎) FA62 CJK COMPATIBILITY IDEOGRAPH-FA62 -← (‎ 謁 ‎) FABC CJK COMPATIBILITY IDEOGRAPH-FABC - -# 謹 謹 謹 - (‎ 謹 ‎) 8B39 CJK UNIFIED IDEOGRAPH-8B39 -← (‎ 謹 ‎) FA63 CJK COMPATIBILITY IDEOGRAPH-FA63 -← (‎ 謹 ‎) FABF CJK COMPATIBILITY IDEOGRAPH-FABF - -# 識 識 - (‎ 識 ‎) 8B58 CJK UNIFIED IDEOGRAPH-8B58 -← (‎ 識 ‎) F9FC CJK COMPATIBILITY IDEOGRAPH-F9FC - -# 讀 讀 - (‎ 讀 ‎) 8B80 CJK UNIFIED IDEOGRAPH-8B80 -← (‎ 讀 ‎) F95A CJK COMPATIBILITY IDEOGRAPH-F95A - -# 讆 讏 - (‎ 讆 ‎) 8B86 CJK UNIFIED IDEOGRAPH-8B86 -← (‎ 讏 ‎) 8B8F CJK UNIFIED IDEOGRAPH-8B8F - -# 變 變 變 - (‎ 變 ‎) 8B8A CJK UNIFIED IDEOGRAPH-8B8A -← (‎ 變 ‎) FAC0 CJK COMPATIBILITY IDEOGRAPH-FAC0 -← (‎ 變 ‎) 2F9D1 CJK COMPATIBILITY IDEOGRAPH-2F9D1 - -# 豈 豈 - (‎ 豈 ‎) 8C48 CJK UNIFIED IDEOGRAPH-8C48 -← (‎ 豈 ‎) F900 CJK COMPATIBILITY IDEOGRAPH-F900 - -# 豜 豣 - (‎ 豜 ‎) 8C5C CJK UNIFIED IDEOGRAPH-8C5C -← (‎ 豣 ‎) 8C63 CJK UNIFIED IDEOGRAPH-8C63 - -# 貫 貫 - (‎ 貫 ‎) 8CAB CJK UNIFIED IDEOGRAPH-8CAB -← (‎ 貫 ‎) 2F9D4 CJK COMPATIBILITY IDEOGRAPH-2F9D4 - -# 賁 賁 - (‎ 賁 ‎) 8CC1 CJK UNIFIED IDEOGRAPH-8CC1 -← (‎ 賁 ‎) 2F9D5 CJK COMPATIBILITY IDEOGRAPH-2F9D5 - -# 賂 賂 - (‎ 賂 ‎) 8CC2 CJK UNIFIED IDEOGRAPH-8CC2 -← (‎ 賂 ‎) F948 CJK COMPATIBILITY IDEOGRAPH-F948 - -# 賈 賈 - (‎ 賈 ‎) 8CC8 CJK UNIFIED IDEOGRAPH-8CC8 -← (‎ 賈 ‎) F903 CJK COMPATIBILITY IDEOGRAPH-F903 - -# 賓 賓 - (‎ 賓 ‎) 8CD3 CJK UNIFIED IDEOGRAPH-8CD3 -← (‎ 賓 ‎) FA64 CJK COMPATIBILITY IDEOGRAPH-FA64 - -# 贈 贈 贈 - (‎ 贈 ‎) 8D08 CJK UNIFIED IDEOGRAPH-8D08 -← (‎ 贈 ‎) FA65 CJK COMPATIBILITY IDEOGRAPH-FA65 -← (‎ 贈 ‎) FAC1 CJK COMPATIBILITY IDEOGRAPH-FAC1 - -# 贛 贛 - (‎ 贛 ‎) 8D1B CJK UNIFIED IDEOGRAPH-8D1B -← (‎ 贛 ‎) 2F9D6 CJK COMPATIBILITY IDEOGRAPH-2F9D6 - -# 起 起 - (‎ 起 ‎) 8D77 CJK UNIFIED IDEOGRAPH-8D77 -← (‎ 起 ‎) 2F9D7 CJK COMPATIBILITY IDEOGRAPH-2F9D7 - -# 赿 趆 - (‎ 赿 ‎) 8D7F CJK UNIFIED IDEOGRAPH-8D7F -← (‎ 趆 ‎) 8D86 CJK UNIFIED IDEOGRAPH-8D86 - -# 趼 趼 - (‎ 趼 ‎) 8DBC CJK UNIFIED IDEOGRAPH-8DBC -← (‎ 趼 ‎) 2F9DB CJK COMPATIBILITY IDEOGRAPH-2F9DB - -# 跋 跋 - (‎ 跋 ‎) 8DCB CJK UNIFIED IDEOGRAPH-8DCB -← (‎ 跋 ‎) 2F9DA CJK COMPATIBILITY IDEOGRAPH-2F9DA - -# 跥 跺 - (‎ 跥 ‎) 8DE5 CJK UNIFIED IDEOGRAPH-8DE5 -← (‎ 跺 ‎) 8DFA CJK UNIFIED IDEOGRAPH-8DFA - -# 路 路 - (‎ 路 ‎) 8DEF CJK UNIFIED IDEOGRAPH-8DEF -← (‎ 路 ‎) F937 CJK COMPATIBILITY IDEOGRAPH-F937 - -# 跰 跰 - (‎ 跰 ‎) 8DF0 CJK UNIFIED IDEOGRAPH-8DF0 -← (‎ 跰 ‎) 2F9DC CJK COMPATIBILITY IDEOGRAPH-2F9DC - -# 躗 躛 - (‎ 躗 ‎) 8E97 CJK UNIFIED IDEOGRAPH-8E97 -← (‎ 躛 ‎) 8E9B CJK UNIFIED IDEOGRAPH-8E9B - -# 軔 軔 - (‎ 軔 ‎) 8ED4 CJK UNIFIED IDEOGRAPH-8ED4 -← (‎ 軔 ‎) 2F9DE CJK COMPATIBILITY IDEOGRAPH-2F9DE - -# 軿 輧 - (‎ 軿 ‎) 8EFF CJK UNIFIED IDEOGRAPH-8EFF -← (‎ 輧 ‎) 8F27 CJK UNIFIED IDEOGRAPH-8F27 - -# 輦 輦 - (‎ 輦 ‎) 8F26 CJK UNIFIED IDEOGRAPH-8F26 -← (‎ 輦 ‎) F998 CJK COMPATIBILITY IDEOGRAPH-F998 - -# 輪 輪 - (‎ 輪 ‎) 8F2A CJK UNIFIED IDEOGRAPH-8F2A -← (‎ 輪 ‎) F9D7 CJK COMPATIBILITY IDEOGRAPH-F9D7 - -# 輸 輸 輸 - (‎ 輸 ‎) 8F38 CJK UNIFIED IDEOGRAPH-8F38 -← (‎ 輸 ‎) FAC2 CJK COMPATIBILITY IDEOGRAPH-FAC2 -← (‎ 輸 ‎) 2F9DF CJK COMPATIBILITY IDEOGRAPH-2F9DF - -# 輻 輻 - (‎ 輻 ‎) 8F3B CJK UNIFIED IDEOGRAPH-8F3B -← (‎ 輻 ‎) FA07 CJK COMPATIBILITY IDEOGRAPH-FA07 - -# 轢 轢 - (‎ 轢 ‎) 8F62 CJK UNIFIED IDEOGRAPH-8F62 -← (‎ 轢 ‎) F98D CJK COMPATIBILITY IDEOGRAPH-F98D - -# 辞 辞 - (‎ 辞 ‎) 8F9E CJK UNIFIED IDEOGRAPH-8F9E -← (‎ 辞 ‎) 2F98D CJK COMPATIBILITY IDEOGRAPH-2F98D - -# 連 連 - (‎ 連 ‎) 9023 CJK UNIFIED IDEOGRAPH-9023 -← (‎ 連 ‎) F99A CJK COMPATIBILITY IDEOGRAPH-F99A - -# 逸 逸 逸 - (‎ 逸 ‎) 9038 CJK UNIFIED IDEOGRAPH-9038 -← (‎ 逸 ‎) FA25 CJK COMPATIBILITY IDEOGRAPH-FA25 -← (‎ 逸 ‎) FA67 CJK COMPATIBILITY IDEOGRAPH-FA67 - -# 遲 遲 - (‎ 遲 ‎) 9072 CJK UNIFIED IDEOGRAPH-9072 -← (‎ 遲 ‎) FAC3 CJK COMPATIBILITY IDEOGRAPH-FAC3 - -# 遼 遼 - (‎ 遼 ‎) 907C CJK UNIFIED IDEOGRAPH-907C -← (‎ 遼 ‎) F9C3 CJK COMPATIBILITY IDEOGRAPH-F9C3 - -# 邏 邏 - (‎ 邏 ‎) 908F CJK UNIFIED IDEOGRAPH-908F -← (‎ 邏 ‎) F913 CJK COMPATIBILITY IDEOGRAPH-F913 - -# 邔 邔 - (‎ 邔 ‎) 9094 CJK UNIFIED IDEOGRAPH-9094 -← (‎ 邔 ‎) 2F9E2 CJK COMPATIBILITY IDEOGRAPH-2F9E2 - -# 郎 郞 郎 郞 - (‎ 郎 ‎) 90CE CJK UNIFIED IDEOGRAPH-90CE -← (‎ 郞 ‎) 90DE CJK UNIFIED IDEOGRAPH-90DE # →郎→ -← (‎ 郎 ‎) F92C CJK COMPATIBILITY IDEOGRAPH-F92C -← (‎ 郞 ‎) FA2E CJK COMPATIBILITY IDEOGRAPH-FA2E # →郞→→郎→ - -# 郱 郱 - (‎ 郱 ‎) 90F1 CJK UNIFIED IDEOGRAPH-90F1 -← (‎ 郱 ‎) 2F9E3 CJK COMPATIBILITY IDEOGRAPH-2F9E3 - -# 都 都 - (‎ 都 ‎) 90FD CJK UNIFIED IDEOGRAPH-90FD -← (‎ 都 ‎) FA26 CJK COMPATIBILITY IDEOGRAPH-FA26 - -# 鄑 鄑 - (‎ 鄑 ‎) 9111 CJK UNIFIED IDEOGRAPH-9111 -← (‎ 鄑 ‎) 2F9E4 CJK COMPATIBILITY IDEOGRAPH-2F9E4 - -# 鄛 鄛 - (‎ 鄛 ‎) 911B CJK UNIFIED IDEOGRAPH-911B -← (‎ 鄛 ‎) 2F9E6 CJK COMPATIBILITY IDEOGRAPH-2F9E6 - -# 酪 酪 - (‎ 酪 ‎) 916A CJK UNIFIED IDEOGRAPH-916A -← (‎ 酪 ‎) F919 CJK COMPATIBILITY IDEOGRAPH-F919 - -# 醙 醙 - (‎ 醙 ‎) 9199 CJK UNIFIED IDEOGRAPH-9199 -← (‎ 醙 ‎) FAC4 CJK COMPATIBILITY IDEOGRAPH-FAC4 - -# 醴 醴 - (‎ 醴 ‎) 91B4 CJK UNIFIED IDEOGRAPH-91B4 -← (‎ 醴 ‎) F9B7 CJK COMPATIBILITY IDEOGRAPH-F9B7 - -# 量 量 - (‎ 量 ‎) 91CF CJK UNIFIED IDEOGRAPH-91CF -← (‎ 量 ‎) F97E CJK COMPATIBILITY IDEOGRAPH-F97E - -# 鈴 鈴 - (‎ 鈴 ‎) 9234 CJK UNIFIED IDEOGRAPH-9234 -← (‎ 鈴 ‎) F9B1 CJK COMPATIBILITY IDEOGRAPH-F9B1 - -# 鈸 鈸 - (‎ 鈸 ‎) 9238 CJK UNIFIED IDEOGRAPH-9238 -← (‎ 鈸 ‎) 2F9E7 CJK COMPATIBILITY IDEOGRAPH-2F9E7 - -# 鉶 鉶 - (‎ 鉶 ‎) 9276 CJK UNIFIED IDEOGRAPH-9276 -← (‎ 鉶 ‎) FAC5 CJK COMPATIBILITY IDEOGRAPH-FAC5 - -# 鉼 鉼 - (‎ 鉼 ‎) 927C CJK UNIFIED IDEOGRAPH-927C -← (‎ 鉼 ‎) 2F9EA CJK COMPATIBILITY IDEOGRAPH-2F9EA - -# 鋗 鋗 - (‎ 鋗 ‎) 92D7 CJK UNIFIED IDEOGRAPH-92D7 -← (‎ 鋗 ‎) 2F9E8 CJK COMPATIBILITY IDEOGRAPH-2F9E8 - -# 鋘 鋘 - (‎ 鋘 ‎) 92D8 CJK UNIFIED IDEOGRAPH-92D8 -← (‎ 鋘 ‎) 2F9E9 CJK COMPATIBILITY IDEOGRAPH-2F9E9 - -# 錄 錄 - (‎ 錄 ‎) 9304 CJK UNIFIED IDEOGRAPH-9304 -← (‎ 錄 ‎) F93F CJK COMPATIBILITY IDEOGRAPH-F93F - -# 鍊 鍊 - (‎ 鍊 ‎) 934A CJK UNIFIED IDEOGRAPH-934A -← (‎ 鍊 ‎) F99B CJK COMPATIBILITY IDEOGRAPH-F99B - -# 鎭 鎮 - (‎ 鎭 ‎) 93AD CJK UNIFIED IDEOGRAPH-93AD -← (‎ 鎮 ‎) 93AE CJK UNIFIED IDEOGRAPH-93AE - -# 鏹 鏹 - (‎ 鏹 ‎) 93F9 CJK UNIFIED IDEOGRAPH-93F9 -← (‎ 鏹 ‎) 2F9EB CJK COMPATIBILITY IDEOGRAPH-2F9EB - -# 鐕 鐕 - (‎ 鐕 ‎) 9415 CJK UNIFIED IDEOGRAPH-9415 -← (‎ 鐕 ‎) 2F9EC CJK COMPATIBILITY IDEOGRAPH-2F9EC - -# 開 開 - (‎ 開 ‎) 958B CJK UNIFIED IDEOGRAPH-958B -← (‎ 開 ‎) 2F9EE CJK COMPATIBILITY IDEOGRAPH-2F9EE - -# 閭 閭 - (‎ 閭 ‎) 95AD CJK UNIFIED IDEOGRAPH-95AD -← (‎ 閭 ‎) F986 CJK COMPATIBILITY IDEOGRAPH-F986 - -# 閷 閷 - (‎ 閷 ‎) 95B7 CJK UNIFIED IDEOGRAPH-95B7 -← (‎ 閷 ‎) 2F9F0 CJK COMPATIBILITY IDEOGRAPH-2F9F0 - -# 阮 阮 - (‎ 阮 ‎) 962E CJK UNIFIED IDEOGRAPH-962E -← (‎ 阮 ‎) F9C6 CJK COMPATIBILITY IDEOGRAPH-F9C6 - -# 陋 陋 - (‎ 陋 ‎) 964B CJK UNIFIED IDEOGRAPH-964B -← (‎ 陋 ‎) F951 CJK COMPATIBILITY IDEOGRAPH-F951 - -# 降 降 - (‎ 降 ‎) 964D CJK UNIFIED IDEOGRAPH-964D -← (‎ 降 ‎) FA09 CJK COMPATIBILITY IDEOGRAPH-FA09 - -# 陵 陵 - (‎ 陵 ‎) 9675 CJK UNIFIED IDEOGRAPH-9675 -← (‎ 陵 ‎) F959 CJK COMPATIBILITY IDEOGRAPH-F959 - -# 陸 陸 - (‎ 陸 ‎) 9678 CJK UNIFIED IDEOGRAPH-9678 -← (‎ 陸 ‎) F9D3 CJK COMPATIBILITY IDEOGRAPH-F9D3 - -# 陼 陼 - (‎ 陼 ‎) 967C CJK UNIFIED IDEOGRAPH-967C -← (‎ 陼 ‎) FAC6 CJK COMPATIBILITY IDEOGRAPH-FAC6 - -# 隆 隆 - (‎ 隆 ‎) 9686 CJK UNIFIED IDEOGRAPH-9686 -← (‎ 隆 ‎) F9DC CJK COMPATIBILITY IDEOGRAPH-F9DC - -# 隣 隣 - (‎ 隣 ‎) 96A3 CJK UNIFIED IDEOGRAPH-96A3 -← (‎ 隣 ‎) F9F1 CJK COMPATIBILITY IDEOGRAPH-F9F1 - -# 隷 隸 隸 隷 - (‎ 隷 ‎) 96B7 CJK UNIFIED IDEOGRAPH-96B7 -← (‎ 隸 ‎) 96B8 CJK UNIFIED IDEOGRAPH-96B8 # →隸→ -← (‎ 隸 ‎) F9B8 CJK COMPATIBILITY IDEOGRAPH-F9B8 -← (‎ 隷 ‎) FA2F CJK COMPATIBILITY IDEOGRAPH-FA2F - -# 雃 雃 - (‎ 雃 ‎) 96C3 CJK UNIFIED IDEOGRAPH-96C3 -← (‎ 雃 ‎) 2F9F3 CJK COMPATIBILITY IDEOGRAPH-2F9F3 - -# 離 離 - (‎ 離 ‎) 96E2 CJK UNIFIED IDEOGRAPH-96E2 -← (‎ 離 ‎) F9EA CJK COMPATIBILITY IDEOGRAPH-F9EA - -# 難 難 難 - (‎ 難 ‎) 96E3 CJK UNIFIED IDEOGRAPH-96E3 -← (‎ 難 ‎) FA68 CJK COMPATIBILITY IDEOGRAPH-FA68 -← (‎ 難 ‎) FAC7 CJK COMPATIBILITY IDEOGRAPH-FAC7 - -# 零 零 - (‎ 零 ‎) 96F6 CJK UNIFIED IDEOGRAPH-96F6 -← (‎ 零 ‎) F9B2 CJK COMPATIBILITY IDEOGRAPH-F9B2 - -# 雷 雷 - (‎ 雷 ‎) 96F7 CJK UNIFIED IDEOGRAPH-96F7 -← (‎ 雷 ‎) F949 CJK COMPATIBILITY IDEOGRAPH-F949 - -# 霣 霣 - (‎ 霣 ‎) 9723 CJK UNIFIED IDEOGRAPH-9723 -← (‎ 霣 ‎) 2F9F5 CJK COMPATIBILITY IDEOGRAPH-2F9F5 - -# 露 露 - (‎ 露 ‎) 9732 CJK UNIFIED IDEOGRAPH-9732 -← (‎ 露 ‎) F938 CJK COMPATIBILITY IDEOGRAPH-F938 - -# 靈 靈 - (‎ 靈 ‎) 9748 CJK UNIFIED IDEOGRAPH-9748 -← (‎ 靈 ‎) F9B3 CJK COMPATIBILITY IDEOGRAPH-F9B3 - -# 靖 靖 靖 - (‎ 靖 ‎) 9756 CJK UNIFIED IDEOGRAPH-9756 -← (‎ 靖 ‎) FA1C CJK COMPATIBILITY IDEOGRAPH-FA1C -← (‎ 靖 ‎) FAC8 CJK COMPATIBILITY IDEOGRAPH-FAC8 - -# 韛 韛 - (‎ 韛 ‎) 97DB CJK UNIFIED IDEOGRAPH-97DB -← (‎ 韛 ‎) FAC9 CJK COMPATIBILITY IDEOGRAPH-FAC9 - -# 韠 韠 - (‎ 韠 ‎) 97E0 CJK UNIFIED IDEOGRAPH-97E0 -← (‎ 韠 ‎) 2F9FA CJK COMPATIBILITY IDEOGRAPH-2F9FA - -# 響 響 響 - (‎ 響 ‎) 97FF CJK UNIFIED IDEOGRAPH-97FF -← (‎ 響 ‎) FA69 CJK COMPATIBILITY IDEOGRAPH-FA69 -← (‎ 響 ‎) FACA CJK COMPATIBILITY IDEOGRAPH-FACA - -# 頋 頋 頋 頋 - (‎ 頋 ‎) 980B CJK UNIFIED IDEOGRAPH-980B -← (‎ 頋 ‎) FACB CJK COMPATIBILITY IDEOGRAPH-FACB -← (‎ 頋 ‎) 2F9FE CJK COMPATIBILITY IDEOGRAPH-2F9FE -← (‎ 頋 ‎) 2F9FF CJK COMPATIBILITY IDEOGRAPH-2F9FF - -# 領 領 - (‎ 領 ‎) 9818 CJK UNIFIED IDEOGRAPH-9818 -← (‎ 領 ‎) F9B4 CJK COMPATIBILITY IDEOGRAPH-F9B4 - -# 頩 頩 - (‎ 頩 ‎) 9829 CJK UNIFIED IDEOGRAPH-9829 -← (‎ 頩 ‎) 2FA00 CJK COMPATIBILITY IDEOGRAPH-2FA00 - -# 頻 頻 頻 - (‎ 頻 ‎) 983B CJK UNIFIED IDEOGRAPH-983B -← (‎ 頻 ‎) FA6A CJK COMPATIBILITY IDEOGRAPH-FA6A -← (‎ 頻 ‎) FACC CJK COMPATIBILITY IDEOGRAPH-FACC - -# 類 類 - (‎ 類 ‎) 985E CJK UNIFIED IDEOGRAPH-985E -← (‎ 類 ‎) F9D0 CJK COMPATIBILITY IDEOGRAPH-F9D0 - -# 飢 飢 - (‎ 飢 ‎) 98E2 CJK UNIFIED IDEOGRAPH-98E2 -← (‎ 飢 ‎) 2FA02 CJK COMPATIBILITY IDEOGRAPH-2FA02 - -# 飯 飯 - (‎ 飯 ‎) 98EF CJK UNIFIED IDEOGRAPH-98EF -← (‎ 飯 ‎) FA2A CJK COMPATIBILITY IDEOGRAPH-FA2A - -# 飼 飼 - (‎ 飼 ‎) 98FC CJK UNIFIED IDEOGRAPH-98FC -← (‎ 飼 ‎) FA2B CJK COMPATIBILITY IDEOGRAPH-FA2B - -# 館 館 - (‎ 館 ‎) 9928 CJK UNIFIED IDEOGRAPH-9928 -← (‎ 館 ‎) FA2C CJK COMPATIBILITY IDEOGRAPH-FA2C - -# 餩 餩 - (‎ 餩 ‎) 9929 CJK UNIFIED IDEOGRAPH-9929 -← (‎ 餩 ‎) 2FA04 CJK COMPATIBILITY IDEOGRAPH-2FA04 - -# 馧 馧 - (‎ 馧 ‎) 99A7 CJK UNIFIED IDEOGRAPH-99A7 -← (‎ 馧 ‎) 2FA05 CJK COMPATIBILITY IDEOGRAPH-2FA05 - -# 駂 駂 - (‎ 駂 ‎) 99C2 CJK UNIFIED IDEOGRAPH-99C2 -← (‎ 駂 ‎) 2FA06 CJK COMPATIBILITY IDEOGRAPH-2FA06 - -# 駱 駱 - (‎ 駱 ‎) 99F1 CJK UNIFIED IDEOGRAPH-99F1 -← (‎ 駱 ‎) F91A CJK COMPATIBILITY IDEOGRAPH-F91A - -# 駾 駾 - (‎ 駾 ‎) 99FE CJK UNIFIED IDEOGRAPH-99FE -← (‎ 駾 ‎) 2FA07 CJK COMPATIBILITY IDEOGRAPH-2FA07 - -# 驪 驪 - (‎ 驪 ‎) 9A6A CJK UNIFIED IDEOGRAPH-9A6A -← (‎ 驪 ‎) F987 CJK COMPATIBILITY IDEOGRAPH-F987 - -# 鬒 鬒 鬒 - (‎ 鬒 ‎) 9B12 CJK UNIFIED IDEOGRAPH-9B12 -← (‎ 鬒 ‎) FACD CJK COMPATIBILITY IDEOGRAPH-FACD -← (‎ 鬒 ‎) 2FA0A CJK COMPATIBILITY IDEOGRAPH-2FA0A - -# 魯 魯 - (‎ 魯 ‎) 9B6F CJK UNIFIED IDEOGRAPH-9B6F -← (‎ 魯 ‎) F939 CJK COMPATIBILITY IDEOGRAPH-F939 - -# 鱀 鱀 - (‎ 鱀 ‎) 9C40 CJK UNIFIED IDEOGRAPH-9C40 -← (‎ 鱀 ‎) 2FA0B CJK COMPATIBILITY IDEOGRAPH-2FA0B - -# 鱗 鱗 - (‎ 鱗 ‎) 9C57 CJK UNIFIED IDEOGRAPH-9C57 -← (‎ 鱗 ‎) F9F2 CJK COMPATIBILITY IDEOGRAPH-F9F2 - -# 鳽 鳽 - (‎ 鳽 ‎) 9CFD CJK UNIFIED IDEOGRAPH-9CFD -← (‎ 鳽 ‎) 2FA0C CJK COMPATIBILITY IDEOGRAPH-2FA0C - -# 鵧 鵧 - (‎ 鵧 ‎) 9D67 CJK UNIFIED IDEOGRAPH-9D67 -← (‎ 鵧 ‎) 2FA0F CJK COMPATIBILITY IDEOGRAPH-2FA0F - -# 鶴 鶴 - (‎ 鶴 ‎) 9DB4 CJK UNIFIED IDEOGRAPH-9DB4 -← (‎ 鶴 ‎) FA2D CJK COMPATIBILITY IDEOGRAPH-FA2D - -# 鷺 鷺 - (‎ 鷺 ‎) 9DFA CJK UNIFIED IDEOGRAPH-9DFA -← (‎ 鷺 ‎) F93A CJK COMPATIBILITY IDEOGRAPH-F93A - -# 鸞 鸞 - (‎ 鸞 ‎) 9E1E CJK UNIFIED IDEOGRAPH-9E1E -← (‎ 鸞 ‎) F920 CJK COMPATIBILITY IDEOGRAPH-F920 - -# 鹂 鹃 - (‎ 鹂 ‎) 9E42 CJK UNIFIED IDEOGRAPH-9E42 -← (‎ 鹃 ‎) 9E43 CJK UNIFIED IDEOGRAPH-9E43 - -# 麗 麗 - (‎ 麗 ‎) 9E97 CJK UNIFIED IDEOGRAPH-9E97 -← (‎ 麗 ‎) F988 CJK COMPATIBILITY IDEOGRAPH-F988 - -# 麟 麟 - (‎ 麟 ‎) 9E9F CJK UNIFIED IDEOGRAPH-9E9F -← (‎ 麟 ‎) F9F3 CJK COMPATIBILITY IDEOGRAPH-F9F3 - -# 黎 黎 - (‎ 黎 ‎) 9ECE CJK UNIFIED IDEOGRAPH-9ECE -← (‎ 黎 ‎) F989 CJK COMPATIBILITY IDEOGRAPH-F989 - -# 黾 黾 - (‎ 黾 ‎) 9EFE CJK UNIFIED IDEOGRAPH-9EFE -← (‎ 黾 ‎) 2FA18 CJK COMPATIBILITY IDEOGRAPH-2FA18 - -# 鼅 鼅 - (‎ 鼅 ‎) 9F05 CJK UNIFIED IDEOGRAPH-9F05 -← (‎ 鼅 ‎) 2FA19 CJK COMPATIBILITY IDEOGRAPH-2FA19 - -# 鼏 鼏 - (‎ 鼏 ‎) 9F0F CJK UNIFIED IDEOGRAPH-9F0F -← (‎ 鼏 ‎) 2FA1A CJK COMPATIBILITY IDEOGRAPH-2FA1A - -# 鼖 鼖 - (‎ 鼖 ‎) 9F16 CJK UNIFIED IDEOGRAPH-9F16 -← (‎ 鼖 ‎) 2FA1B CJK COMPATIBILITY IDEOGRAPH-2FA1B - -# 齃 齃 - (‎ 齃 ‎) 9F43 CJK UNIFIED IDEOGRAPH-9F43 -← (‎ 齃 ‎) FAD8 CJK COMPATIBILITY IDEOGRAPH-FAD8 - -# 龎 龎 - (‎ 龎 ‎) 9F8E CJK UNIFIED IDEOGRAPH-9F8E -← (‎ 龎 ‎) FAD9 CJK COMPATIBILITY IDEOGRAPH-FAD9 - -# ꁊ ꒞ - (‎ ꁊ ‎) A04A YI SYLLABLE PUT -← (‎ ꒞ ‎) A49E YI RADICAL PUT - -# ꁐ ꒬ - (‎ ꁐ ‎) A050 YI SYLLABLE PYT -← (‎ ꒬ ‎) A4AC YI RADICAL PYT - -# ꃀ ꒜ - (‎ ꃀ ‎) A0C0 YI SYLLABLE MOP -← (‎ ꒜ ‎) A49C YI RADICAL MOP - -# ꄲ ꒨ - (‎ ꄲ ‎) A132 YI SYLLABLE TU -← (‎ ꒨ ‎) A4A8 YI RADICAL TU - -# ꉙ ꒿ - (‎ ꉙ ‎) A259 YI SYLLABLE HXOP -← (‎ ꒿ ‎) A4BF YI RADICAL HXOP - -# ꊱ ꒾ - (‎ ꊱ ‎) A2B1 YI SYLLABLE CIP -← (‎ ꒾ ‎) A4BE YI RADICAL CIP - -# ꋍ ꒔ - (‎ ꋍ ‎) A2CD YI SYLLABLE CYP -← (‎ ꒔ ‎) A494 YI RADICAL CYP - -# ꎫ ꓀ - (‎ ꎫ ‎) A3AB YI SYLLABLE SHAT -← (‎ ꓀ ‎) A4C0 YI RADICAL SHAT - -# ꎵ ꓂ - (‎ ꎵ ‎) A3B5 YI SYLLABLE SHOP -← (‎ ꓂ ‎) A4C2 YI RADICAL SHOP - -# ꎿ ꒺ - (‎ ꎿ ‎) A3BF YI SYLLABLE SHUR -← (‎ ꒺ ‎) A4BA YI RADICAL SHUR - -# ꏂ ꒰ - (‎ ꏂ ‎) A3C2 YI SYLLABLE SHY -← (‎ ꒰ ‎) A4B0 YI RADICAL SHY - -# ꑘ ꒧ - (‎ ꑘ ‎) A458 YI SYLLABLE NYOP -← (‎ ꒧ ‎) A4A7 YI RADICAL NYOP - -# ꓤ Ꞟ - (‎ ꓤ ‎) A4E4 LISU LETTER ZA -← (‎ Ꞟ ‎) A79E LATIN CAPITAL LETTER VOLAPUK UE - -# Ꙍ Ꞷ - (‎ Ꙍ ‎) A64C CYRILLIC CAPITAL LETTER BROAD OMEGA -← (‎ Ꞷ ‎) A7B6 LATIN CAPITAL LETTER OMEGA - -# Ꙙ 𖼜 🜁 - (‎ Ꙙ ‎) A658 CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS -← (‎ 𖼜 ‎) 16F1C MIAO LETTER TLHYA -← (‎ 🜁 ‎) 1F701 ALCHEMICAL SYMBOL FOR AIR - -# ꙩ 𐓫 - (‎ ꙩ ‎) A669 CYRILLIC SMALL LETTER MONOCULAR O -← (‎ 𐓫 ‎) 104EB OSAGE SMALL LETTER OIN - -# ꛳꛳ ꛴ - (‎ ꛳꛳ ‎) A6F3 A6F3 BAMUM FULL STOP, BAMUM FULL STOP -← (‎ ꛴ ‎) A6F4 BAMUM COLON - -# ꜧ ꞕ - (‎ ꜧ ‎) A727 LATIN SMALL LETTER HENG -← (‎ ꞕ ‎) A795 LATIN SMALL LETTER H WITH PALATAL HOOK - -# Ꝺ ꝺ - (‎ Ꝺ ‎) A779 LATIN CAPITAL LETTER INSULAR D -← (‎ ꝺ ‎) A77A LATIN SMALL LETTER INSULAR D - -# 𐐒 Ꞛ - (‎ Ꞛ ‎) A79A LATIN CAPITAL LETTER VOLAPUK AE -← (‎ 𐐒 ‎) 10412 DESERET CAPITAL LETTER BEE - -# 𐐺 ꞛ - (‎ ꞛ ‎) A79B LATIN SMALL LETTER VOLAPUK AE -← (‎ 𐐺 ‎) 1043A DESERET SMALL LETTER BEE - -# ꣻ 𑇜 - (‎ ꣻ ‎) A8FB DEVANAGARI HEADSTROKE -← (‎ 𑇜 ‎) 111DC SHARADA HEADSTROKE - -# ꣼ 𑇛 - (‎ ꣼ ‎) A8FC DEVANAGARI SIGN SIDDHAM -← (‎ 𑇛 ‎) 111DB SHARADA SIGN SIDDHAM - -# ꦝ ꦣ - (‎ ꦝ ‎) A99D JAVANESE LETTER DDA -← (‎ ꦣ ‎) A9A3 JAVANESE LETTER DA MAHAPRANA - -# ꧐ ꧆ - (‎ ꧆ ‎) A9C6 JAVANESE PADA WINDU -← (‎ ꧐ ‎) A9D0 JAVANESE DIGIT ZERO - -# ꨁ ꩓ - (‎ ꨁ ‎) AA01 CHAM LETTER I -← (‎ ꩓ ‎) AA53 CHAM DIGIT THREE - -# ꨣ ꩖ - (‎ ꨣ ‎) AA23 CHAM LETTER RA -← (‎ ꩖ ‎) AA56 CHAM DIGIT SIX - -# 𤋮 𤋮 - (‎ 𤋮 ‎) FA6C CJK COMPATIBILITY IDEOGRAPH-FA6C -← (‎ 𤋮 ‎) 242EE CJK UNIFIED IDEOGRAPH-242EE - -# 𢡊 𢡊 - (‎ 𢡊 ‎) FACF CJK COMPATIBILITY IDEOGRAPH-FACF -← (‎ 𢡊 ‎) 2284A CJK UNIFIED IDEOGRAPH-2284A - -# 𢡄 𢡄 - (‎ 𢡄 ‎) FAD0 CJK COMPATIBILITY IDEOGRAPH-FAD0 -← (‎ 𢡄 ‎) 22844 CJK UNIFIED IDEOGRAPH-22844 - -# 𣏕 𣏕 - (‎ 𣏕 ‎) FAD1 CJK COMPATIBILITY IDEOGRAPH-FAD1 -← (‎ 𣏕 ‎) 233D5 CJK UNIFIED IDEOGRAPH-233D5 - -# 𥉉 𥉉 - (‎ 𥉉 ‎) FAD5 CJK COMPATIBILITY IDEOGRAPH-FAD5 -← (‎ 𥉉 ‎) 25249 CJK UNIFIED IDEOGRAPH-25249 - -# 𥳐 𥳐 - (‎ 𥳐 ‎) FAD6 CJK COMPATIBILITY IDEOGRAPH-FAD6 -← (‎ 𥳐 ‎) 25CD0 CJK UNIFIED IDEOGRAPH-25CD0 - -# 𧻓 𧻓 - (‎ 𧻓 ‎) FAD7 CJK COMPATIBILITY IDEOGRAPH-FAD7 -← (‎ 𧻓 ‎) 27ED3 CJK UNIFIED IDEOGRAPH-27ED3 - -# יִ יּ - (‎ יִ ‎) FB1D HEBREW LETTER YOD WITH HIRIQ -← (‎ יּ ‎) FB39 HEBREW LETTER YOD WITH DAGESH - -# שׁ שׂ שּ - (‎ שׁ ‎) FB2A HEBREW LETTER SHIN WITH SHIN DOT -← (‎ שׂ ‎) FB2B HEBREW LETTER SHIN WITH SIN DOT -← (‎ שּ ‎) FB49 HEBREW LETTER SHIN WITH DAGESH - -# שּׁ שּׂ - (‎ שּׁ ‎) FB2C HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT -← (‎ שּׂ ‎) FB2D HEBREW LETTER SHIN WITH DAGESH AND SIN DOT - -# אַ אָ אּ - (‎ אַ ‎) FB2E HEBREW LETTER ALEF WITH PATAH -← (‎ אָ ‎) FB2F HEBREW LETTER ALEF WITH QAMATS -← (‎ אּ ‎) FB30 HEBREW LETTER ALEF WITH MAPIQ - -# ﹲّ ﱞ - (‎ ﱞ ‎) FC5E ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM -← (‎ ﹲّ ‎) FE72 0651 ARABIC DAMMATAN ISOLATED FORM, ARABIC SHADDA - -# ﹴّ ﱟ - (‎ ﱟ ‎) FC5F ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM -← (‎ ﹴّ ‎) FE74 0651 ARABIC KASRATAN ISOLATED FORM, ARABIC SHADDA - -# ﹶّ ﱠ - (‎ ﱠ ‎) FC60 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM -← (‎ ﹶّ ‎) FE76 0651 ARABIC FATHA ISOLATED FORM, ARABIC SHADDA - -# ﹸّ ﱡ - (‎ ﱡ ‎) FC61 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM -← (‎ ﹸّ ‎) FE78 0651 ARABIC DAMMA ISOLATED FORM, ARABIC SHADDA - -# ﹺّ ﱢ - (‎ ﱢ ‎) FC62 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM -← (‎ ﹺّ ‎) FE7A 0651 ARABIC KASRA ISOLATED FORM, ARABIC SHADDA - -# ﹼٰ ﱣ - (‎ ﱣ ‎) FC63 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM -← (‎ ﹼٰ ‎) FE7C 0670 ARABIC SHADDA ISOLATED FORM, ARABIC LETTER SUPERSCRIPT ALEF - -# ﹷّ ﳲ - (‎ ﳲ ‎) FCF2 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM -← (‎ ﹷّ ‎) FE77 0651 ARABIC FATHA MEDIAL FORM, ARABIC SHADDA - -# ﹹّ ﳳ - (‎ ﳳ ‎) FCF3 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM -← (‎ ﹹّ ‎) FE79 0651 ARABIC DAMMA MEDIAL FORM, ARABIC SHADDA - -# ﹻّ ﳴ - (‎ ﳴ ‎) FCF4 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM -← (‎ ﹻّ ‎) FE7B 0651 ARABIC KASRA MEDIAL FORM, ARABIC SHADDA - -# ︿ ^ - (‎ ︿ ‎) FE3F PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET -← (‎ ^ ‎) FF3E FULLWIDTH CIRCUMFLEX ACCENT - -# 𐎂 𐏑 - (‎ 𐎂 ‎) 10382 UGARITIC LETTER GAMLA -← (‎ 𐏑 ‎) 103D1 OLD PERSIAN NUMBER ONE - -# 𐎓 𐏓 - (‎ 𐎓 ‎) 10393 UGARITIC LETTER AIN -← (‎ 𐏓 ‎) 103D3 OLD PERSIAN NUMBER TEN - -# 𐎚 𒀸 - (‎ 𐎚 ‎) 1039A UGARITIC LETTER TO -← (‎ 𒀸 ‎) 12038 CUNEIFORM SIGN ASH - -# 𐒆 𐒠 - (‎ 𐒆 ‎) 10486 OSMANYA LETTER DEEL -← (‎ 𐒠 ‎) 104A0 OSMANYA DIGIT ZERO - -# 𐩖𐩖 𐩗 - (‎ 𐩖𐩖 ‎) 10A56 10A56 KHAROSHTHI PUNCTUATION DANDA, KHAROSHTHI PUNCTUATION DANDA -← (‎ 𐩗 ‎) 10A57 KHAROSHTHI PUNCTUATION DOUBLE DANDA - -# 𐲂 𐳼 - (‎ 𐲂 ‎) 10C82 OLD HUNGARIAN CAPITAL LETTER EB -← (‎ 𐳼 ‎) 10CFC OLD HUNGARIAN NUMBER TEN - -# 𐲥 𐳺 - (‎ 𐲥 ‎) 10CA5 OLD HUNGARIAN CAPITAL LETTER ESZ -← (‎ 𐳺 ‎) 10CFA OLD HUNGARIAN NUMBER ONE - -# 𑐴𑑂𑐒 𑐓 - (‎ 𑐓 ‎) 11413 NEWA LETTER NGHA -← (‎ 𑐴𑑂𑐒 ‎) 11434 11442 11412 NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NGA - -# 𑐴𑑂𑐘 𑐙 - (‎ 𑐙 ‎) 11419 NEWA LETTER NYHA -← (‎ 𑐴𑑂𑐘 ‎) 11434 11442 11418 NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NYA - -# 𑐴𑑂𑐣 𑐤 - (‎ 𑐤 ‎) 11424 NEWA LETTER NHA -← (‎ 𑐴𑑂𑐣 ‎) 11434 11442 11423 NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NA - -# 𑐴𑑂𑐩 𑐪 - (‎ 𑐪 ‎) 1142A NEWA LETTER MHA -← (‎ 𑐴𑑂𑐩 ‎) 11434 11442 11429 NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER MA - -# 𑐴𑑂𑐬 𑐭 - (‎ 𑐭 ‎) 1142D NEWA LETTER RHA -← (‎ 𑐴𑑂𑐬 ‎) 11434 11442 1142C NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER RA - -# 𑐴𑑂𑐮 𑐯 - (‎ 𑐯 ‎) 1142F NEWA LETTER LHA -← (‎ 𑐴𑑂𑐮 ‎) 11434 11442 1142E NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER LA - -# 𑑋𑑋 𑑌 - (‎ 𑑋𑑋 ‎) 1144B 1144B NEWA DANDA, NEWA DANDA -← (‎ 𑑌 ‎) 1144C NEWA DOUBLE DANDA - -# 𑖂 𑗘 𑗙 - (‎ 𑖂 ‎) 11582 SIDDHAM LETTER I -← (‎ 𑗘 ‎) 115D8 SIDDHAM LETTER THREE-CIRCLE ALTERNATE I -← (‎ 𑗙 ‎) 115D9 SIDDHAM LETTER TWO-CIRCLE ALTERNATE I - -# 𑖃 𑗚 - (‎ 𑖃 ‎) 11583 SIDDHAM LETTER II -← (‎ 𑗚 ‎) 115DA SIDDHAM LETTER TWO-CIRCLE ALTERNATE II - -# 𑖄 𑗛 - (‎ 𑖄 ‎) 11584 SIDDHAM LETTER U -← (‎ 𑗛 ‎) 115DB SIDDHAM LETTER ALTERNATE U - -# 𑖲 𑗜 - (‎ 𑖲 ‎) 115B2 SIDDHAM VOWEL SIGN U -← (‎ 𑗜 ‎) 115DC SIDDHAM VOWEL SIGN ALTERNATE U - -# 𑖳 𑗝 - (‎ 𑖳 ‎) 115B3 SIDDHAM VOWEL SIGN UU -← (‎ 𑗝 ‎) 115DD SIDDHAM VOWEL SIGN ALTERNATE UU - -# 𑙁𑙁 𑙂 - (‎ 𑙁𑙁 ‎) 11641 11641 MODI DANDA, MODI DANDA -← (‎ 𑙂 ‎) 11642 MODI DOUBLE DANDA - -# 𑫥𑫥 𑫨 - (‎ 𑫥𑫥 ‎) 11AE5 11AE5 PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG -← (‎ 𑫨 ‎) 11AE8 PAU CIN HAU RISING TONE LONG FINAL - -# 𑫥𑫥𑫯 𑫥𑫦 𑫩 - (‎ 𑫥𑫥𑫯 ‎) 11AE5 11AE5 11AEF PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫥𑫦 ‎) 11AE5 11AE6 PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE -← (‎ 𑫩 ‎) 11AE9 PAU CIN HAU RISING TONE FINAL # →𑫥𑫦→ - -# 𑫥𑫥𑫰 𑫥𑫧 𑫪 - (‎ 𑫥𑫥𑫰 ‎) 11AE5 11AE5 11AF0 PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT -← (‎ 𑫥𑫧 ‎) 11AE5 11AE7 PAU CIN HAU RISING TONE LONG, PAU CIN HAU SANDHI GLOTTAL STOP -← (‎ 𑫪 ‎) 11AEA PAU CIN HAU SANDHI GLOTTAL STOP FINAL # →𑫥𑫧→ - -# 𑫥𑫯 𑫦 - (‎ 𑫥𑫯 ‎) 11AE5 11AEF PAU CIN HAU RISING TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫦 ‎) 11AE6 PAU CIN HAU RISING TONE - -# 𑫥𑫰 𑫧 - (‎ 𑫥𑫰 ‎) 11AE5 11AF0 PAU CIN HAU RISING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT -← (‎ 𑫧 ‎) 11AE7 PAU CIN HAU SANDHI GLOTTAL STOP - -# 𑫫𑫫 𑫭 - (‎ 𑫫𑫫 ‎) 11AEB 11AEB PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG -← (‎ 𑫭 ‎) 11AED PAU CIN HAU SANDHI TONE LONG FINAL - -# 𑫫𑫫𑫯 𑫫𑫬 𑫮 - (‎ 𑫫𑫫𑫯 ‎) 11AEB 11AEB 11AEF PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫫𑫬 ‎) 11AEB 11AEC PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE -← (‎ 𑫮 ‎) 11AEE PAU CIN HAU SANDHI TONE FINAL # →𑫫𑫬→ - -# 𑫫𑫯 𑫬 - (‎ 𑫫𑫯 ‎) 11AEB 11AEF PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫬 ‎) 11AEC PAU CIN HAU SANDHI TONE - -# 𑫳𑫯 𑫴 - (‎ 𑫳𑫯 ‎) 11AF3 11AEF PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫴 ‎) 11AF4 PAU CIN HAU LOW-FALLING TONE - -# 𑫳𑫰 𑫵 - (‎ 𑫳𑫰 ‎) 11AF3 11AF0 PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT -← (‎ 𑫵 ‎) 11AF5 PAU CIN HAU GLOTTAL STOP - -# 𑫳𑫳 𑫶 - (‎ 𑫳𑫳 ‎) 11AF3 11AF3 PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG -← (‎ 𑫶 ‎) 11AF6 PAU CIN HAU LOW-FALLING TONE LONG FINAL - -# 𑫳𑫳𑫯 𑫳𑫴 𑫷 - (‎ 𑫳𑫳𑫯 ‎) 11AF3 11AF3 11AEF PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE -← (‎ 𑫳𑫴 ‎) 11AF3 11AF4 PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE -← (‎ 𑫷 ‎) 11AF7 PAU CIN HAU LOW-FALLING TONE FINAL # →𑫳𑫴→ - -# 𑫳𑫳𑫰 𑫳𑫵 𑫸 - (‎ 𑫳𑫳𑫰 ‎) 11AF3 11AF3 11AF0 PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT -← (‎ 𑫳𑫵 ‎) 11AF3 11AF5 PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP -← (‎ 𑫸 ‎) 11AF8 PAU CIN HAU GLOTTAL STOP FINAL # →𑫳𑫵→ - -# 𑱁𑱁 𑱂 - (‎ 𑱁𑱁 ‎) 11C41 11C41 BHAIKSUKI DANDA, BHAIKSUKI DANDA -← (‎ 𑱂 ‎) 11C42 BHAIKSUKI DOUBLE DANDA - -# 𑲪 𑲲 - (‎ 𑲪 ‎) 11CAA MARCHEN SUBJOINED LETTER RA -← (‎ 𑲲 ‎) 11CB2 MARCHEN VOWEL SIGN U - -# 𠄢 𠄢 - (‎ 𠄢 ‎) 20122 CJK UNIFIED IDEOGRAPH-20122 -← (‎ 𠄢 ‎) 2F803 CJK COMPATIBILITY IDEOGRAPH-2F803 - -# 𠔜 𠔜 - (‎ 𠔜 ‎) 2051C CJK UNIFIED IDEOGRAPH-2051C -← (‎ 𠔜 ‎) 2F812 CJK COMPATIBILITY IDEOGRAPH-2F812 - -# 𠔥 𠔥 - (‎ 𠔥 ‎) 20525 CJK UNIFIED IDEOGRAPH-20525 -← (‎ 𠔥 ‎) 2F91B CJK COMPATIBILITY IDEOGRAPH-2F91B - -# 𠕋 𠕋 - (‎ 𠕋 ‎) 2054B CJK UNIFIED IDEOGRAPH-2054B -← (‎ 𠕋 ‎) 2F816 CJK COMPATIBILITY IDEOGRAPH-2F816 - -# 𠘺 𠘺 - (‎ 𠘺 ‎) 2063A CJK UNIFIED IDEOGRAPH-2063A -← (‎ 𠘺 ‎) 2F80D CJK COMPATIBILITY IDEOGRAPH-2F80D - -# 𠠄 𠠄 - (‎ 𠠄 ‎) 20804 CJK UNIFIED IDEOGRAPH-20804 -← (‎ 𠠄 ‎) 2F9D9 CJK COMPATIBILITY IDEOGRAPH-2F9D9 - -# 𠣞 𠣞 - (‎ 𠣞 ‎) 208DE CJK UNIFIED IDEOGRAPH-208DE -← (‎ 𠣞 ‎) 2F9DD CJK COMPATIBILITY IDEOGRAPH-2F9DD - -# 𠨬 𠨬 - (‎ 𠨬 ‎) 20A2C CJK UNIFIED IDEOGRAPH-20A2C -← (‎ 𠨬 ‎) 2F834 CJK COMPATIBILITY IDEOGRAPH-2F834 - -# 𠭣 𠭣 - (‎ 𠭣 ‎) 20B63 CJK UNIFIED IDEOGRAPH-20B63 -← (‎ 𠭣 ‎) 2F838 CJK COMPATIBILITY IDEOGRAPH-2F838 - -# 𡓤 𡓤 - (‎ 𡓤 ‎) 214E4 CJK UNIFIED IDEOGRAPH-214E4 -← (‎ 𡓤 ‎) 2F859 CJK COMPATIBILITY IDEOGRAPH-2F859 - -# 𡚨 𡚨 - (‎ 𡚨 ‎) 216A8 CJK UNIFIED IDEOGRAPH-216A8 -← (‎ 𡚨 ‎) 2F860 CJK COMPATIBILITY IDEOGRAPH-2F860 - -# 𡛪 𡛪 - (‎ 𡛪 ‎) 216EA CJK UNIFIED IDEOGRAPH-216EA -← (‎ 𡛪 ‎) 2F861 CJK COMPATIBILITY IDEOGRAPH-2F861 - -# 𡧈 𡧈 - (‎ 𡧈 ‎) 219C8 CJK UNIFIED IDEOGRAPH-219C8 -← (‎ 𡧈 ‎) 2F86C CJK COMPATIBILITY IDEOGRAPH-2F86C - -# 𡬘 𡬘 - (‎ 𡬘 ‎) 21B18 CJK UNIFIED IDEOGRAPH-21B18 -← (‎ 𡬘 ‎) 2F871 CJK COMPATIBILITY IDEOGRAPH-2F871 - -# 𡴋 𡴋 - (‎ 𡴋 ‎) 21D0B CJK UNIFIED IDEOGRAPH-21D0B -← (‎ 𡴋 ‎) 2F8F8 CJK COMPATIBILITY IDEOGRAPH-2F8F8 - -# 𡷤 𡷤 - (‎ 𡷤 ‎) 21DE4 CJK UNIFIED IDEOGRAPH-21DE4 -← (‎ 𡷤 ‎) 2F87B CJK COMPATIBILITY IDEOGRAPH-2F87B - -# 𡷦 𡷦 - (‎ 𡷦 ‎) 21DE6 CJK UNIFIED IDEOGRAPH-21DE6 -← (‎ 𡷦 ‎) 2F87D CJK COMPATIBILITY IDEOGRAPH-2F87D - -# 𢆃 𢆃 - (‎ 𢆃 ‎) 22183 CJK UNIFIED IDEOGRAPH-22183 -← (‎ 𢆃 ‎) 2F889 CJK COMPATIBILITY IDEOGRAPH-2F889 - -# 𢆟 𢆟 - (‎ 𢆟 ‎) 2219F CJK UNIFIED IDEOGRAPH-2219F -← (‎ 𢆟 ‎) 2F939 CJK COMPATIBILITY IDEOGRAPH-2F939 - -# 𢌱 𢌱 𢌱 - (‎ 𢌱 ‎) 22331 CJK UNIFIED IDEOGRAPH-22331 -← (‎ 𢌱 ‎) 2F891 CJK COMPATIBILITY IDEOGRAPH-2F891 -← (‎ 𢌱 ‎) 2F892 CJK COMPATIBILITY IDEOGRAPH-2F892 - -# 𢛔 𢛔 - (‎ 𢛔 ‎) 226D4 CJK UNIFIED IDEOGRAPH-226D4 -← (‎ 𢛔 ‎) 2F8A4 CJK COMPATIBILITY IDEOGRAPH-2F8A4 - -# 𢬌 𢬌 - (‎ 𢬌 ‎) 22B0C CJK UNIFIED IDEOGRAPH-22B0C -← (‎ 𢬌 ‎) 2F8B8 CJK COMPATIBILITY IDEOGRAPH-2F8B8 - -# 𢯱 𢯱 - (‎ 𢯱 ‎) 22BF1 CJK UNIFIED IDEOGRAPH-22BF1 -← (‎ 𢯱 ‎) 2F8BE CJK COMPATIBILITY IDEOGRAPH-2F8BE - -# 𣀊 𣀊 - (‎ 𣀊 ‎) 2300A CJK UNIFIED IDEOGRAPH-2300A -← (‎ 𣀊 ‎) 2F8CA CJK COMPATIBILITY IDEOGRAPH-2F8CA - -# 𣊸 𣊸 - (‎ 𣊸 ‎) 232B8 CJK UNIFIED IDEOGRAPH-232B8 -← (‎ 𣊸 ‎) 2F897 CJK COMPATIBILITY IDEOGRAPH-2F897 - -# 𣍟 𣍟 - (‎ 𣍟 ‎) 2335F CJK UNIFIED IDEOGRAPH-2335F -← (‎ 𣍟 ‎) 2F980 CJK COMPATIBILITY IDEOGRAPH-2F980 - -# 𣎓 𣎓 - (‎ 𣎓 ‎) 23393 CJK UNIFIED IDEOGRAPH-23393 -← (‎ 𣎓 ‎) 2F989 CJK COMPATIBILITY IDEOGRAPH-2F989 - -# 𣎜 𣎜 - (‎ 𣎜 ‎) 2339C CJK UNIFIED IDEOGRAPH-2339C -← (‎ 𣎜 ‎) 2F98A CJK COMPATIBILITY IDEOGRAPH-2F98A - -# 𣏃 𣏃 - (‎ 𣏃 ‎) 233C3 CJK UNIFIED IDEOGRAPH-233C3 -← (‎ 𣏃 ‎) 2F8DD CJK COMPATIBILITY IDEOGRAPH-2F8DD - -# 𣑭 𣑭 - (‎ 𣑭 ‎) 2346D CJK UNIFIED IDEOGRAPH-2346D -← (‎ 𣑭 ‎) 2F8E3 CJK COMPATIBILITY IDEOGRAPH-2F8E3 - -# 𣚣 𣚣 - (‎ 𣚣 ‎) 236A3 CJK UNIFIED IDEOGRAPH-236A3 -← (‎ 𣚣 ‎) 2F8EC CJK COMPATIBILITY IDEOGRAPH-2F8EC - -# 𣢧 𣢧 - (‎ 𣢧 ‎) 238A7 CJK UNIFIED IDEOGRAPH-238A7 -← (‎ 𣢧 ‎) 2F8F0 CJK COMPATIBILITY IDEOGRAPH-2F8F0 - -# 𣪍 𣪍 - (‎ 𣪍 ‎) 23A8D CJK UNIFIED IDEOGRAPH-23A8D -← (‎ 𣪍 ‎) 2F8F7 CJK COMPATIBILITY IDEOGRAPH-2F8F7 - -# 𣫺 𣫺 - (‎ 𣫺 ‎) 23AFA CJK UNIFIED IDEOGRAPH-23AFA -← (‎ 𣫺 ‎) 2F8F9 CJK COMPATIBILITY IDEOGRAPH-2F8F9 - -# 𣲼 𣲼 - (‎ 𣲼 ‎) 23CBC CJK UNIFIED IDEOGRAPH-23CBC -← (‎ 𣲼 ‎) 2F8FB CJK COMPATIBILITY IDEOGRAPH-2F8FB - -# 𣴞 𣴞 - (‎ 𣴞 ‎) 23D1E CJK UNIFIED IDEOGRAPH-23D1E -← (‎ 𣴞 ‎) 2F906 CJK COMPATIBILITY IDEOGRAPH-2F906 - -# 𣻑 𣻑 - (‎ 𣻑 ‎) 23ED1 CJK UNIFIED IDEOGRAPH-23ED1 -← (‎ 𣻑 ‎) 2F90D CJK COMPATIBILITY IDEOGRAPH-2F90D - -# 𣽞 𣽞 - (‎ 𣽞 ‎) 23F5E CJK UNIFIED IDEOGRAPH-23F5E -← (‎ 𣽞 ‎) 2F910 CJK COMPATIBILITY IDEOGRAPH-2F910 - -# 𣾎 𣾎 - (‎ 𣾎 ‎) 23F8E CJK UNIFIED IDEOGRAPH-23F8E -← (‎ 𣾎 ‎) 2F911 CJK COMPATIBILITY IDEOGRAPH-2F911 - -# 𤉣 𤉣 - (‎ 𤉣 ‎) 24263 CJK UNIFIED IDEOGRAPH-24263 -← (‎ 𤉣 ‎) 2F91D CJK COMPATIBILITY IDEOGRAPH-2F91D - -# 𤎫 𤎫 - (‎ 𤎫 ‎) 243AB CJK UNIFIED IDEOGRAPH-243AB -← (‎ 𤎫 ‎) 2F91F CJK COMPATIBILITY IDEOGRAPH-2F91F - -# 𤘈 𤘈 - (‎ 𤘈 ‎) 24608 CJK UNIFIED IDEOGRAPH-24608 -← (‎ 𤘈 ‎) 2F923 CJK COMPATIBILITY IDEOGRAPH-2F923 - -# 𤜵 𤜵 - (‎ 𤜵 ‎) 24735 CJK UNIFIED IDEOGRAPH-24735 -← (‎ 𤜵 ‎) 2F926 CJK COMPATIBILITY IDEOGRAPH-2F926 - -# 𤠔 𤠔 - (‎ 𤠔 ‎) 24814 CJK UNIFIED IDEOGRAPH-24814 -← (‎ 𤠔 ‎) 2F927 CJK COMPATIBILITY IDEOGRAPH-2F927 - -# 𤰶 𤰶 - (‎ 𤰶 ‎) 24C36 CJK UNIFIED IDEOGRAPH-24C36 -← (‎ 𤰶 ‎) 2F935 CJK COMPATIBILITY IDEOGRAPH-2F935 - -# 𤲒 𤲒 - (‎ 𤲒 ‎) 24C92 CJK UNIFIED IDEOGRAPH-24C92 -← (‎ 𤲒 ‎) 2F937 CJK COMPATIBILITY IDEOGRAPH-2F937 - -# 𤾡 𤾡 - (‎ 𤾡 ‎) 24FA1 CJK UNIFIED IDEOGRAPH-24FA1 -← (‎ 𤾡 ‎) 2F93B CJK COMPATIBILITY IDEOGRAPH-2F93B - -# 𤾸 𤾸 - (‎ 𤾸 ‎) 24FB8 CJK UNIFIED IDEOGRAPH-24FB8 -← (‎ 𤾸 ‎) 2F93C CJK COMPATIBILITY IDEOGRAPH-2F93C - -# 𥁄 𥁄 - (‎ 𥁄 ‎) 25044 CJK UNIFIED IDEOGRAPH-25044 -← (‎ 𥁄 ‎) 2F93D CJK COMPATIBILITY IDEOGRAPH-2F93D - -# 𥃲 𥃲 - (‎ 𥃲 ‎) 250F2 CJK UNIFIED IDEOGRAPH-250F2 -← (‎ 𥃲 ‎) 2F942 CJK COMPATIBILITY IDEOGRAPH-2F942 - -# 𥃳 𥃳 - (‎ 𥃳 ‎) 250F3 CJK UNIFIED IDEOGRAPH-250F3 -← (‎ 𥃳 ‎) 2F941 CJK COMPATIBILITY IDEOGRAPH-2F941 - -# 𥄙 𥄙 - (‎ 𥄙 ‎) 25119 CJK UNIFIED IDEOGRAPH-25119 -← (‎ 𥄙 ‎) 2F943 CJK COMPATIBILITY IDEOGRAPH-2F943 - -# 𥄳 𥄳 - (‎ 𥄳 ‎) 25133 CJK UNIFIED IDEOGRAPH-25133 -← (‎ 𥄳 ‎) 2F944 CJK COMPATIBILITY IDEOGRAPH-2F944 - -# 𥐝 𥐝 - (‎ 𥐝 ‎) 2541D CJK UNIFIED IDEOGRAPH-2541D -← (‎ 𥐝 ‎) 2F94D CJK COMPATIBILITY IDEOGRAPH-2F94D - -# 𥘦 𥘦 - (‎ 𥘦 ‎) 25626 CJK UNIFIED IDEOGRAPH-25626 -← (‎ 𥘦 ‎) 2F952 CJK COMPATIBILITY IDEOGRAPH-2F952 - -# 𥚚 𥚚 - (‎ 𥚚 ‎) 2569A CJK UNIFIED IDEOGRAPH-2569A -← (‎ 𥚚 ‎) 2F954 CJK COMPATIBILITY IDEOGRAPH-2F954 - -# 𥛅 𥛅 - (‎ 𥛅 ‎) 256C5 CJK UNIFIED IDEOGRAPH-256C5 -← (‎ 𥛅 ‎) 2F955 CJK COMPATIBILITY IDEOGRAPH-2F955 - -# 𥥼 𥥼 - (‎ 𥥼 ‎) 2597C CJK UNIFIED IDEOGRAPH-2597C -← (‎ 𥥼 ‎) 2F95C CJK COMPATIBILITY IDEOGRAPH-2F95C - -# 𥪧 𥪧 𥪧 - (‎ 𥪧 ‎) 25AA7 CJK UNIFIED IDEOGRAPH-25AA7 -← (‎ 𥪧 ‎) 2F95D CJK COMPATIBILITY IDEOGRAPH-2F95D -← (‎ 𥪧 ‎) 2F95E CJK COMPATIBILITY IDEOGRAPH-2F95E - -# 𥮫 𥮫 - (‎ 𥮫 ‎) 25BAB CJK UNIFIED IDEOGRAPH-25BAB -← (‎ 𥮫 ‎) 2F961 CJK COMPATIBILITY IDEOGRAPH-2F961 - -# 𥲀 𥲀 - (‎ 𥲀 ‎) 25C80 CJK UNIFIED IDEOGRAPH-25C80 -← (‎ 𥲀 ‎) 2F965 CJK COMPATIBILITY IDEOGRAPH-2F965 - -# 𥾆 𥾆 - (‎ 𥾆 ‎) 25F86 CJK UNIFIED IDEOGRAPH-25F86 -← (‎ 𥾆 ‎) 2F96B CJK COMPATIBILITY IDEOGRAPH-2F96B - -# 𦇚 𦇚 - (‎ 𦇚 ‎) 261DA CJK UNIFIED IDEOGRAPH-261DA -← (‎ 𦇚 ‎) 2F898 CJK COMPATIBILITY IDEOGRAPH-2F898 - -# 𦈨 𦈨 - (‎ 𦈨 ‎) 26228 CJK UNIFIED IDEOGRAPH-26228 -← (‎ 𦈨 ‎) 2F972 CJK COMPATIBILITY IDEOGRAPH-2F972 - -# 𦉇 𦉇 - (‎ 𦉇 ‎) 26247 CJK UNIFIED IDEOGRAPH-26247 -← (‎ 𦉇 ‎) 2F973 CJK COMPATIBILITY IDEOGRAPH-2F973 - -# 𦋙 𦋙 - (‎ 𦋙 ‎) 262D9 CJK UNIFIED IDEOGRAPH-262D9 -← (‎ 𦋙 ‎) 2F975 CJK COMPATIBILITY IDEOGRAPH-2F975 - -# 𦌾 𦌾 - (‎ 𦌾 ‎) 2633E CJK UNIFIED IDEOGRAPH-2633E -← (‎ 𦌾 ‎) 2F977 CJK COMPATIBILITY IDEOGRAPH-2F977 - -# 𦓚 𦓚 - (‎ 𦓚 ‎) 264DA CJK UNIFIED IDEOGRAPH-264DA -← (‎ 𦓚 ‎) 2F97B CJK COMPATIBILITY IDEOGRAPH-2F97B - -# 𦔣 𦔣 - (‎ 𦔣 ‎) 26523 CJK UNIFIED IDEOGRAPH-26523 -← (‎ 𦔣 ‎) 2F97C CJK COMPATIBILITY IDEOGRAPH-2F97C - -# 𦖨 𦖨 - (‎ 𦖨 ‎) 265A8 CJK UNIFIED IDEOGRAPH-265A8 -← (‎ 𦖨 ‎) 2F97E CJK COMPATIBILITY IDEOGRAPH-2F97E - -# 𦞧 𦞧 - (‎ 𦞧 ‎) 267A7 CJK UNIFIED IDEOGRAPH-267A7 -← (‎ 𦞧 ‎) 2F987 CJK COMPATIBILITY IDEOGRAPH-2F987 - -# 𦞵 𦞵 - (‎ 𦞵 ‎) 267B5 CJK UNIFIED IDEOGRAPH-267B5 -← (‎ 𦞵 ‎) 2F988 CJK COMPATIBILITY IDEOGRAPH-2F988 - -# 𦬼 𦬼 - (‎ 𦬼 ‎) 26B3C CJK UNIFIED IDEOGRAPH-26B3C -← (‎ 𦬼 ‎) 2F997 CJK COMPATIBILITY IDEOGRAPH-2F997 - -# 𦰶 𦰶 - (‎ 𦰶 ‎) 26C36 CJK UNIFIED IDEOGRAPH-26C36 -← (‎ 𦰶 ‎) 2F9A4 CJK COMPATIBILITY IDEOGRAPH-2F9A4 - -# 𦳕 𦳕 - (‎ 𦳕 ‎) 26CD5 CJK UNIFIED IDEOGRAPH-26CD5 -← (‎ 𦳕 ‎) 2F9A6 CJK COMPATIBILITY IDEOGRAPH-2F9A6 - -# 𦵫 𦵫 - (‎ 𦵫 ‎) 26D6B CJK UNIFIED IDEOGRAPH-26D6B -← (‎ 𦵫 ‎) 2F9A5 CJK COMPATIBILITY IDEOGRAPH-2F9A5 - -# 𦼬 𦼬 - (‎ 𦼬 ‎) 26F2C CJK UNIFIED IDEOGRAPH-26F2C -← (‎ 𦼬 ‎) 2F9AD CJK COMPATIBILITY IDEOGRAPH-2F9AD - -# 𦾱 𦾱 - (‎ 𦾱 ‎) 26FB1 CJK UNIFIED IDEOGRAPH-26FB1 -← (‎ 𦾱 ‎) 2F9B0 CJK COMPATIBILITY IDEOGRAPH-2F9B0 - -# 𧃒 𧃒 - (‎ 𧃒 ‎) 270D2 CJK UNIFIED IDEOGRAPH-270D2 -← (‎ 𧃒 ‎) 2F9B1 CJK COMPATIBILITY IDEOGRAPH-2F9B1 - -# 𧏊 𧏊 - (‎ 𧏊 ‎) 273CA CJK UNIFIED IDEOGRAPH-273CA -← (‎ 𧏊 ‎) 2F9AB CJK COMPATIBILITY IDEOGRAPH-2F9AB - -# 𧙧 𧙧 - (‎ 𧙧 ‎) 27667 CJK UNIFIED IDEOGRAPH-27667 -← (‎ 𧙧 ‎) 2F9C5 CJK COMPATIBILITY IDEOGRAPH-2F9C5 - -# 𧢮 𧢮 - (‎ 𧢮 ‎) 278AE CJK UNIFIED IDEOGRAPH-278AE -← (‎ 𧢮 ‎) 2F9CB CJK COMPATIBILITY IDEOGRAPH-2F9CB - -# 𧥦 𧥦 - (‎ 𧥦 ‎) 27966 CJK UNIFIED IDEOGRAPH-27966 -← (‎ 𧥦 ‎) 2F9CC CJK COMPATIBILITY IDEOGRAPH-2F9CC - -# 𧲨 𧲨 - (‎ 𧲨 ‎) 27CA8 CJK UNIFIED IDEOGRAPH-27CA8 -← (‎ 𧲨 ‎) 2F9D3 CJK COMPATIBILITY IDEOGRAPH-2F9D3 - -# 𧼯 𧼯 - (‎ 𧼯 ‎) 27F2F CJK UNIFIED IDEOGRAPH-27F2F -← (‎ 𧼯 ‎) 2F9D8 CJK COMPATIBILITY IDEOGRAPH-2F9D8 - -# 𨗒 𨗒 - (‎ 𨗒 ‎) 285D2 CJK UNIFIED IDEOGRAPH-285D2 -← (‎ 𨗒 ‎) 2F9E0 CJK COMPATIBILITY IDEOGRAPH-2F9E0 - -# 𨗭 𨗭 - (‎ 𨗭 ‎) 285ED CJK UNIFIED IDEOGRAPH-285ED -← (‎ 𨗭 ‎) 2F9E1 CJK COMPATIBILITY IDEOGRAPH-2F9E1 - -# 𨜮 𨜮 - (‎ 𨜮 ‎) 2872E CJK UNIFIED IDEOGRAPH-2872E -← (‎ 𨜮 ‎) 2F9E5 CJK COMPATIBILITY IDEOGRAPH-2F9E5 - -# 𨯺 𨯺 - (‎ 𨯺 ‎) 28BFA CJK UNIFIED IDEOGRAPH-28BFA -← (‎ 𨯺 ‎) 2F9ED CJK COMPATIBILITY IDEOGRAPH-2F9ED - -# 𨵷 𨵷 - (‎ 𨵷 ‎) 28D77 CJK UNIFIED IDEOGRAPH-28D77 -← (‎ 𨵷 ‎) 2F9F1 CJK COMPATIBILITY IDEOGRAPH-2F9F1 - -# 𩅅 𩅅 - (‎ 𩅅 ‎) 29145 CJK UNIFIED IDEOGRAPH-29145 -← (‎ 𩅅 ‎) 2F9F6 CJK COMPATIBILITY IDEOGRAPH-2F9F6 - -# 𩇟 𩇟 - (‎ 𩇟 ‎) 291DF CJK UNIFIED IDEOGRAPH-291DF -← (‎ 𩇟 ‎) 2F81C CJK COMPATIBILITY IDEOGRAPH-2F81C - -# 𩈚 𩈚 - (‎ 𩈚 ‎) 2921A CJK UNIFIED IDEOGRAPH-2921A -← (‎ 𩈚 ‎) 2F9F7 CJK COMPATIBILITY IDEOGRAPH-2F9F7 - -# 𩐊 𩐊 - (‎ 𩐊 ‎) 2940A CJK UNIFIED IDEOGRAPH-2940A -← (‎ 𩐊 ‎) 2F9FB CJK COMPATIBILITY IDEOGRAPH-2F9FB - -# 𩒖 𩒖 - (‎ 𩒖 ‎) 29496 CJK UNIFIED IDEOGRAPH-29496 -← (‎ 𩒖 ‎) 2F9FD CJK COMPATIBILITY IDEOGRAPH-2F9FD - -# 𩖶 𩖶 - (‎ 𩖶 ‎) 295B6 CJK UNIFIED IDEOGRAPH-295B6 -← (‎ 𩖶 ‎) 2FA01 CJK COMPATIBILITY IDEOGRAPH-2FA01 - -# 𩬰 𩬰 - (‎ 𩬰 ‎) 29B30 CJK UNIFIED IDEOGRAPH-29B30 -← (‎ 𩬰 ‎) 2FA09 CJK COMPATIBILITY IDEOGRAPH-2FA09 - -# 𪃎 𪃎 - (‎ 𪃎 ‎) 2A0CE CJK UNIFIED IDEOGRAPH-2A0CE -← (‎ 𪃎 ‎) 2FA10 CJK COMPATIBILITY IDEOGRAPH-2FA10 - -# 𪄅 𪄅 - (‎ 𪄅 ‎) 2A105 CJK UNIFIED IDEOGRAPH-2A105 -← (‎ 𪄅 ‎) 2FA12 CJK COMPATIBILITY IDEOGRAPH-2FA12 - -# 𪈎 𪈎 - (‎ 𪈎 ‎) 2A20E CJK UNIFIED IDEOGRAPH-2A20E -← (‎ 𪈎 ‎) 2FA13 CJK COMPATIBILITY IDEOGRAPH-2FA13 - -# 𪊑 𪊑 - (‎ 𪊑 ‎) 2A291 CJK UNIFIED IDEOGRAPH-2A291 -← (‎ 𪊑 ‎) 2FA14 CJK COMPATIBILITY IDEOGRAPH-2FA14 - -# 𪎒 𪎒 - (‎ 𪎒 ‎) 2A392 CJK UNIFIED IDEOGRAPH-2A392 -← (‎ 𪎒 ‎) 2F88F CJK COMPATIBILITY IDEOGRAPH-2F88F - -# 𪘀 𪘀 - (‎ 𪘀 ‎) 2A600 CJK UNIFIED IDEOGRAPH-2A600 -← (‎ 𪘀 ‎) 2FA1D CJK COMPATIBILITY IDEOGRAPH-2FA1D - -# total : 7248 - From 49632062d2a7d62c9ff6007b0c57152da8fac9fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 29 Nov 2024 22:43:10 +0100 Subject: [PATCH 018/115] Add TODOs & Cleanup --- .../kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java | 1 + framework/text-provider-json/pom.xml | 3 +-- pom.xml | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java index 3fa9ca809..5940e58c9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java @@ -6,5 +6,6 @@ /** * This is a marker interface for classes that claim something, i.e., an intermediate result with usually a certain confidence. */ +// TODO Serializable for Confidence public interface Claimant extends Serializable { } diff --git a/framework/text-provider-json/pom.xml b/framework/text-provider-json/pom.xml index a4fd1eb50..7deec59a7 100644 --- a/framework/text-provider-json/pom.xml +++ b/framework/text-provider-json/pom.xml @@ -21,8 +21,7 @@ com.fasterxml.jackson.core jackson-databind - ${jackson.version} - + com.networknt json-schema-validator diff --git a/pom.xml b/pom.xml index 8bf112cf7..33611bc66 100644 --- a/pom.xml +++ b/pom.xml @@ -475,7 +475,6 @@ org.codehaus.mojo flatten-maven-plugin - 1.6.0 true resolveCiFriendliesOnly From 0c5335d073a0db6517ebc88e20284c2190417160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 2 Dec 2024 17:14:09 +0100 Subject: [PATCH 019/115] Cleanup Serializable --- .../api/models/arcotl/ArchitectureModel.java | 23 ++++---- .../core/api/models/arcotl/CodeModel.java | 41 +++++++------- .../ardoco/core/api/models/arcotl/Model.java | 3 ++ .../connectiongenerator/InstanceLink.java | 2 - .../RecommendationStateStrategy.java | 4 +- .../NounMappingChangeListener.java | 8 +-- .../PhraseMappingChangeListener.java | 8 +-- .../textextraction/TextStateStrategy.java | 4 +- .../ardoco/core/api/text/DependencyTag.java | 4 +- .../core/common/AggregationFunctions.java | 3 +- .../mcse/ardoco/core/common/Internal.java | 18 ------- .../mcse/ardoco/core/common/tuple/Triple.java | 3 +- .../ardoco/core/pipeline/agent/Claimant.java | 6 +-- .../ardoco/core/pipeline/agent/Informant.java | 5 +- .../core/pipeline/agent/PipelineAgent.java | 1 - .../core/data/impl/ProcessedTextData.java | 3 +- .../ardoco/core/data/impl/ResultData.java | 3 +- .../mcse/ardoco/core/data/impl/TextData.java | 15 +++--- .../textobject/DependencyImpl.java | 15 +++--- .../ardoco/core/api/output/ArDoCoResult.java | 1 + .../core/execution/runner/ArDoCoRunner.java | 20 +++---- .../execution/runner/ParameterizedRunner.java | 53 ------------------- 22 files changed, 92 insertions(+), 151 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java delete mode 100644 pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ParameterizedRunner.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index b79f8b594..0b84063aa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -3,6 +3,7 @@ import java.util.List; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; /** @@ -24,29 +25,33 @@ public ArchitectureModel(List content) { @Override public List getContent() { - return content; + return this.content; } @Override public List getEndpoints() { - return getContent(); + return this.getContent(); + } + + @Override + public Metamodel getMetamodel() { + return Metamodel.ARCHITECTURE; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof ArchitectureModel that)) - return false; - if (!super.equals(o)) + } + if (!(o instanceof ArchitectureModel that) || !super.equals(o)) { return false; - return content.equals(that.content); + } + return this.content.equals(that.content); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + content.hashCode(); - return result; + return 31 * result + this.content.hashCode(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index f30432f3a..f5ecb4861 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; @@ -51,22 +52,27 @@ public CodeModel(CodeItemRepository codeItemRepository, SortedSet getContentIds() { - initialize(); - return content; + this.initialize(); + return this.content; } @Override public List getContent() { - initialize(); - return codeItemRepository.getCodeItemsFromIds(content); + this.initialize(); + return this.codeItemRepository.getCodeItemsFromIds(this.content); } @Override public List getEndpoints() { List compilationUnits = new ArrayList<>(); - getContent().forEach(c -> compilationUnits.addAll(c.getAllCompilationUnits())); + this.getContent().forEach(c -> compilationUnits.addAll(c.getAllCompilationUnits())); return compilationUnits; } @@ -77,7 +83,7 @@ public List getEndpoints() { */ public List getAllPackages() { List codePackages = new ArrayList<>(); - var lContent = getContent(); + var lContent = this.getContent(); for (CodeItem c : lContent) { var allPackages = c.getAllPackages(); for (CodePackage cp : allPackages) { @@ -91,31 +97,28 @@ public List getAllPackages() { } private synchronized void initialize() { - if (initialized) + if (this.initialized) { return; + } this.codeItemRepository.init(); - initialized = true; + this.initialized = true; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof CodeModel codeModel)) - return false; - if (!super.equals(o)) - return false; - - if (!Objects.equals(codeItemRepository, codeModel.codeItemRepository)) + } + if (!(o instanceof CodeModel codeModel) || !super.equals(o) || !Objects.equals(this.codeItemRepository, codeModel.codeItemRepository)) { return false; - return Objects.equals(content, codeModel.content); + } + return Objects.equals(this.content, codeModel.content); } @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + (codeItemRepository != null ? codeItemRepository.hashCode() : 0); - result = 31 * result + (content != null ? content.hashCode() : 0); - return result; + result = 31 * result + (this.codeItemRepository != null ? this.codeItemRepository.hashCode() : 0); + return 31 * result + (this.content != null ? this.content.hashCode() : 0); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index f36666a3b..3323c0f48 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -4,6 +4,7 @@ import java.util.List; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; public abstract sealed class Model permits ArchitectureModel, CodeModel { @@ -27,4 +28,6 @@ public String getId() { * @return the endpoints of this model */ public abstract List getEndpoints(); + + public abstract Metamodel getMetamodel(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index e9ae9d999..cdba37a10 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -15,7 +15,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.Internal; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; @@ -23,7 +22,6 @@ * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelInstance}. */ @Deterministic -@Internal public class InstanceLink implements Serializable { private static final long serialVersionUID = -8630933950725516269L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java index d74478ea4..52389938f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java @@ -1,9 +1,7 @@ /* Licensed under MIT 2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; -import java.io.Serializable; - -public interface RecommendationStateStrategy extends Serializable { +public interface RecommendationStateStrategy { boolean areRecommendedInstanceTypesSimilar(String typeA, String typeB); boolean areRecommendedInstanceNamesSimilar(String nameA, String nameB); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java index db4a34535..13c44922c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java @@ -1,8 +1,10 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; -import java.io.Serializable; - -public interface NounMappingChangeListener extends Serializable { +/** + * @deprecated should be replaced to make mappings serializable + */ +@Deprecated +public interface NounMappingChangeListener { void onDelete(NounMapping deletedNounMapping, NounMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java index 2e5ee8c9d..058fe7adc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java @@ -1,8 +1,10 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; -import java.io.Serializable; - -public interface PhraseMappingChangeListener extends Serializable { +/** + * @deprecated should be replaced to make mappings serializable + */ +@Deprecated +public interface PhraseMappingChangeListener { void onDelete(PhraseMapping deletedPhraseMapping, PhraseMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index 4e6224488..331e90a14 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -3,8 +3,6 @@ import static edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions.AVERAGE; -import java.io.Serializable; - import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; @@ -18,7 +16,7 @@ * The Interface for strategies for the text state. Responsible for creating {@link NounMapping NounMappings} from their constituent parts in a variety of * situations. */ -public interface TextStateStrategy extends Serializable { +public interface TextStateStrategy { /** * Aggregation function used to aggregate multiple confidences into a single value */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java index 881059d4e..75056c492 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java @@ -1,12 +1,10 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.text; -import java.io.Serializable; - /** * All possible dependency tags in the framework. */ -public enum DependencyTag implements Serializable { +public enum DependencyTag { /** * An appositional modifier of an NP is an NP immediately to the right of the first NP that serves to define or diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java index 4b413f1cb..6af6e7cc6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java @@ -1,14 +1,13 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common; -import java.io.Serializable; import java.util.Collection; import java.util.function.ToDoubleFunction; /** * A set of various aggregation functions for collections of numbers. */ -public enum AggregationFunctions implements ToDoubleFunction>, Serializable { +public enum AggregationFunctions implements ToDoubleFunction> { /** * Use the median of the scores as final score. */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java deleted file mode 100644 index a05a573d2..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/Internal.java +++ /dev/null @@ -1,18 +0,0 @@ -/* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Marks a method or class as only for internal use. Classes and methods that are marked with this annotation are - * subject of change. - */ -@Documented -@Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.METHOD, ElementType.TYPE, ElementType.CONSTRUCTOR }) -public @interface Internal { -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java index a28514658..9ef6196d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java @@ -3,5 +3,6 @@ import java.io.Serializable; -public record Triple(T first, U second, V third) implements Serializable { +// TODO Make T Serializable (Claimant) ?? +public record Triple(T first, U second, V third) implements Serializable { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java index 5940e58c9..a3b7d8c34 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java @@ -1,11 +1,9 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; -import java.io.Serializable; - /** * This is a marker interface for classes that claim something, i.e., an intermediate result with usually a certain confidence. */ -// TODO Serializable for Confidence -public interface Claimant extends Serializable { +// TODO Serializable for Confidence ?? +public interface Claimant { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java index 3caee08dc..324bc99ef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java @@ -7,7 +7,6 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractPipelineStep; public abstract class Informant extends AbstractPipelineStep implements Claimant { - private static final long serialVersionUID = -5249465765417831157L; protected Informant(String id, DataRepository dataRepository) { super(id, dataRepository); @@ -15,12 +14,12 @@ protected Informant(String id, DataRepository dataRepository) { @Override protected void before() { - //Nothing by default + // Nothing by default } @Override protected void after() { - //Nothing by default + // Nothing by default } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java index 5daf0ec24..b4f13215e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java @@ -18,7 +18,6 @@ * initialization before the main processing. */ public abstract class PipelineAgent extends Pipeline implements Agent { - private static final long serialVersionUID = -2278691353857150422L; private final List informants; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java index 3670c9b75..a4e5ed0cb 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java @@ -9,6 +9,7 @@ * Example {@link PipelineStepData} */ public class ProcessedTextData implements PipelineStepData { + private static final long serialVersionUID = -6806096212069462237L; private List importantTokens = null; public ProcessedTextData() { @@ -16,7 +17,7 @@ public ProcessedTextData() { } public List getImportantTokens() { - return importantTokens; + return this.importantTokens; } public void setImportantTokens(List importantTokens) { diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java index c78d69832..b780a33c2 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java @@ -7,10 +7,11 @@ * Example {@link PipelineStepData} */ public class ResultData implements PipelineStepData { + private static final long serialVersionUID = 9183617106768927240L; private String result = null; public String getResult() { - return result; + return this.result; } public void setResult(String result) { diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java index eeab28ca9..ebd34c174 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java @@ -10,6 +10,7 @@ * Example {@link PipelineStepData} */ public class TextData implements PipelineStepData { + private static final long serialVersionUID = 3062730501023901345L; private final String text; private List tokens; @@ -18,7 +19,7 @@ public TextData(String text) { } public List getTokens() { - return tokens; + return this.tokens; } public void setTokens(List tokens) { @@ -26,23 +27,25 @@ public void setTokens(List tokens) { } public String getText() { - return text; + return this.text; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || this.getClass() != o.getClass()) { return false; + } TextData textData = (TextData) o; - return Objects.equals(text, textData.text); + return Objects.equals(this.text, textData.text); } @Override public int hashCode() { - return text != null ? text.hashCode() : 0; + return this.text != null ? this.text.hashCode() : 0; } } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java index 7de835a38..1ec82af43 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java @@ -8,6 +8,7 @@ public class DependencyImpl implements Serializable { + private static final long serialVersionUID = -6941672414051586496L; private final DependencyTag dependencyType; private final long wordId; @@ -17,24 +18,26 @@ public DependencyImpl(DependencyTag type, long wordId) { } public long getWordId() { - return wordId; + return this.wordId; } public DependencyTag getDependencyTag() { - return dependencyType; + return this.dependencyType; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (!(o instanceof DependencyImpl that)) + } + if (!(o instanceof DependencyImpl that)) { return false; - return wordId == that.wordId && dependencyType == that.dependencyType; + } + return this.wordId == that.wordId && this.dependencyType == that.dependencyType; } @Override public int hashCode() { - return Objects.hash(dependencyType, wordId); + return Objects.hash(this.dependencyType, this.wordId); } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index da54073d5..b6140dfbc 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -20,6 +20,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java index 51269f013..f92813312 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java @@ -5,7 +5,6 @@ import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serial; -import java.io.Serializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,7 +13,7 @@ import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.execution.ArDoCo; -public abstract class ArDoCoRunner implements Serializable { +public abstract class ArDoCoRunner { private static final Logger logger = LoggerFactory.getLogger(ArDoCoRunner.class); private final transient ArDoCo arDoCo; @@ -24,18 +23,18 @@ public abstract class ArDoCoRunner implements Serializable { protected ArDoCoRunner(String projectName) { this.arDoCo = new ArDoCo(projectName); - outputDirectory = null; + this.outputDirectory = null; } public boolean isSetUp() { - return isSetUp; + return this.isSetUp; } public final ArDoCoResult run() { - if (this.isSetUp() && outputDirectory != null) { - return this.getArDoCo().runAndSave(outputDirectory); + if (this.isSetUp() && this.outputDirectory != null) { + return this.getArDoCo().runAndSave(this.outputDirectory); } else { - logger.error("Cannot run ArDoCo because the runner is not properly set up."); + ArDoCoRunner.logger.error("Cannot run ArDoCo because the runner is not properly set up."); return null; } } @@ -48,7 +47,7 @@ public final DataRepository runWithoutSaving() { this.getArDoCo().run(); return this.getArDoCo().getDataRepository(); } else { - logger.error("Cannot run ArDoCo because the runner is not properly set up."); + ArDoCoRunner.logger.error("Cannot run ArDoCo because the runner is not properly set up."); return null; } } @@ -63,8 +62,9 @@ protected void setOutputDirectory(File outputDirectory) { @Serial private void writeObject(ObjectOutputStream out) throws IOException { - if (!getArDoCo().wasExecuted()) - runWithoutSaving(); + if (!this.getArDoCo().wasExecuted()) { + this.runWithoutSaving(); + } out.defaultWriteObject(); } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ParameterizedRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ParameterizedRunner.java deleted file mode 100644 index 042740e16..000000000 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ParameterizedRunner.java +++ /dev/null @@ -1,53 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.execution.runner; - -import java.io.IOException; -import java.io.Serializable; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractPipelineStep; - -/** - * An {@link ArDoCoRunner} that takes a record of type {@code } to set itself up. - * - * @param a record containing the parameters required to set up the runner - */ -public abstract class ParameterizedRunner extends ArDoCoRunner implements Serializable { - private static final Logger logger = LoggerFactory.getLogger(ParameterizedRunner.class); - - protected ParameterizedRunner(String projectName, T parameters) { - super(projectName); - setUp(parameters); - } - - /** - * Sets up the runner using {@link #initializePipelineSteps}. {@link #isSetUp} must return true, if successful. - * - * @param p Contains the parameters used during setup - * @return List of AbstractPipelineSteps this runner consists of - */ - private List setUp(T p) { - try { - var arDoCo = getArDoCo(); - var pipelineSteps = initializePipelineSteps(p); - pipelineSteps.forEach(arDoCo::addPipelineStep); - isSetUp = true; - return pipelineSteps; - } catch (IOException e) { - logger.error("Problem in initialising pipeline when loading data (IOException)", e.getCause()); - isSetUp = false; - return List.of(); - } - } - - /** - * Initializes and returns the pipeline steps according to the supplied parameters - * - * @param p the supplied parameters - * @throws IOException can occur when loading data - */ - public abstract List initializePipelineSteps(T p) throws IOException; -} From dafa2987a7d2749da3bd925baeb036e612f0de01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 3 Dec 2024 13:41:07 +0100 Subject: [PATCH 020/115] Add multi-hop TL --- .../MultiHopTransitiveTraceLink.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java new file mode 100644 index 000000000..abfc536a7 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java @@ -0,0 +1,89 @@ +package edu.kit.kastel.mcse.ardoco.core.api.tracelink; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; + +public final class MultiHopTransitiveTraceLink extends TraceLink { + + private static final long serialVersionUID = 850583103292008395L; + + private static final Logger logger = LoggerFactory.getLogger(MultiHopTransitiveTraceLink.class); + + private final TraceLink firstTraceLink; + private final TraceLink lastTraceLink; + + private final List> allLinks; + + private MultiHopTransitiveTraceLink(TraceLink firstTraceLink, TraceLink lastTraceLink, List> allLinks) { + super(firstTraceLink.getFirstEndpoint(), lastTraceLink.getSecondEndpoint()); + this.firstTraceLink = firstTraceLink; + this.lastTraceLink = lastTraceLink; + this.allLinks = allLinks; + } + + public static Optional> createTransitiveTraceLink(TraceLink firstTraceLink, + TraceLink lastTraceLink, List> intermediateLinks) { + + if (intermediateLinks == null || intermediateLinks.isEmpty()) { + throw new IllegalArgumentException("Please use " + TransitiveTraceLink.class.getSimpleName()); + } + + Objects.requireNonNull(firstTraceLink); + Objects.requireNonNull(lastTraceLink); + + List> completeList = new ArrayList<>(); + completeList.add(firstTraceLink); + completeList.addAll(intermediateLinks); + completeList.add(lastTraceLink); + + for (int i = 1; i < completeList.size(); i++) { + if (!TransitiveTraceLink.isValidTransitiveTraceLink(completeList.get(i - 1), completeList.get(i))) { + MultiHopTransitiveTraceLink.logger.debug("Invalid transition: {} -> {}", completeList.get(i - 1), completeList.get(i)); + return Optional.empty(); + } + } + + return Optional.of(new MultiHopTransitiveTraceLink<>(firstTraceLink, lastTraceLink, completeList)); + } + + public TraceLink getFirstTraceLink() { + return this.firstTraceLink; + } + + public TraceLink getLastTraceLink() { + return this.lastTraceLink; + } + + public List> getAllLinks() { + return new ArrayList>(this.allLinks); + } + + @Override + public int hashCode() { + return Objects.hash(this.allLinks); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof MultiHopTransitiveTraceLink other)) { + return false; + } + return Objects.equals(this.allLinks, other.allLinks); + } + + @Override + public String toString() { + return this.asPair().toString(); + } + +} From 2bd31039d84eaaf80bea9e8a0391408248c893be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 3 Dec 2024 13:41:16 +0100 Subject: [PATCH 021/115] Minor fixes --- .../java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java | 2 +- .../edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index 955e703dd..4ca36f60d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -9,7 +9,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; /** - * An entity with a name. Is a model element. + * An entity defines the smallest unit of a trace link. */ public abstract sealed class Entity implements Serializable, Comparable permits ArchitectureEntity, TextEntity, CodeEntity { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java index 9f98f9f24..a03e90dbe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java @@ -9,8 +9,6 @@ */ public abstract class NlpInformant extends Informant { - private static final long serialVersionUID = 7456517198218574644L; - protected NlpInformant(String id, DataRepository dataRepository) { super(id, dataRepository); } From 5bfa3f511f56da7db31add7c1e3aa8241c86ae89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 4 Dec 2024 16:44:31 +0100 Subject: [PATCH 022/115] Add POM to manage all Add attributes & ignore Re-Organize Tests Fixed poms --- pom.xml | 2 + tests-base/pom.xml | 68 + .../mcse/ardoco/core/tests/TestUtil.java | 129 + .../tests/architecture/ArchitectureTest.java | 229 + .../architecture/DeterministicArDoCoTest.java | 278 + .../ardoco/core/tests/eval/CodeProject.java | 225 + .../tests/eval/ConfigurationTestBase.java | 138 + .../ardoco/core/tests/eval/GoldStandard.java | 73 + .../core/tests/eval/GoldStandardProject.java | 245 + .../core/tests/eval/HistoricProject.java | 224 + .../mcse/ardoco/core/tests/eval/Project.java | 233 + .../ardoco/core/tests/eval/ProjectHelper.java | 42 + .../tests/eval/results/EvaluationResults.java | 134 + .../tests/eval/results/ExpectedResults.java | 24 + .../calculator/ResultCalculatorUtil.java | 73 + .../resources/benchmark/.github/CODEOWNERS | 1 + .../src/main/resources/benchmark/.gitignore | 111 + .../resources/benchmark/DiagramSchema.json | 157 + .../src/main/resources/benchmark/LICENSE | 21 + .../src/main/resources/benchmark/README.md | 53 + .../benchmark/bigbluebutton/README.md | 34 + .../bigbluebutton/diagrams_2015/README.md | 1 + .../diagrams_2015/bbb-arch-overview.png | Bin 0 -> 32898 bytes .../bigbluebutton/diagrams_2021/README.md | 1 + .../diagrams_2021/bbb-arch-overview.png | Bin 0 -> 18501 bytes .../goldstandard_sad_2015-sam_2021.csv | 35 + .../goldstandard_sad_2015-sam_2021_UME.csv | 5 + .../goldstandard_sad_2021-code_2023.csv | 117 + .../goldstandard_sad_2021-sam_2021.csv | 53 + .../goldstandard_sad_2021-sam_2021_UME.csv | 2 + .../goldstandard_sad_id_2015.json | 453 + .../goldstandard_sad_id_2021.json | 421 + .../goldstandard_sam_2021-code_2023.csv | 65 + .../model_2021/pcm/bbb.repository | 63 + .../bigbluebutton/model_2021/uml/bbb.uml | 63 + .../bigbluebutton/model_2023/code/README.md | 2 + .../model_2023/code/codeModel.acm | 33720 +++ .../bigbluebutton/text_2015/README.md | 22 + .../text_2015/bigbluebutton_2015.txt | 71 + .../bigbluebutton/text_2021/README.md | 13 + .../bigbluebutton/text_2021/bigbluebutton.txt | 121 + .../text_2021/bigbluebutton_1SentPerLine.txt | 85 + .../resources/benchmark/format_code_model.py | 26 + .../main/resources/benchmark/jabref/README.md | 20 + .../goldstandard_sad_2016-sam_2021.csv | 10 + .../goldstandard_sad_2016-sam_2021_UME.csv | 4 + .../goldstandard_sad_2021-code_2023.csv | 39 + .../goldstandard_sad_2021-sam_2021.csv | 19 + .../goldstandard_sad_2021-sam_2021_UME.csv | 2 + .../goldstandard_sam_2021-code_2023.csv | 12 + .../jabref/model_2021/pcm/jabref.repository | 9 + .../jabref/model_2021/uml/jabref.uml | 9 + .../jabref/model_2023/code/README.md | 2 + .../jabref/model_2023/code/codeModel.acm | 180175 +++++++++++++++ .../benchmark/jabref/text_2016/README.md | 16 + .../jabref/text_2016/jabref_2016.txt | 10 + .../benchmark/jabref/text_2021/README.md | 12 + .../benchmark/jabref/text_2021/jabref.txt | 15 + .../resources/benchmark/mediastore/README.md | 16 + .../diagrams_2016/ArchitectureWithCache.png | Bin 0 -> 3917670 bytes .../goldstandard_sad_2016-code_2016.csv | 49 + .../goldstandard_sad_2016-sam_2016.csv | 30 + .../goldstandard_sad_2016-sam_2016_UME.csv | 5 + .../goldstandard_sad_id_2016.json | 378 + .../goldstandard_sam_2016-code_2016.csv | 56 + .../mediastore/model_2016/code/README.md | 2 + .../mediastore/model_2016/code/codeModel.acm | 8798 + .../mediastore/model_2016/pcm/ms.repository | 915 + .../model_2016/pcm/ms.repository_diagram | 4539 + .../model_2016/pcm/ms.resourceenvironment | 31 + .../pcm/ms.resourceenvironment_diagram | 93 + .../model_2016/pcm/ms_base.allocation | 45 + .../model_2016/pcm/ms_base.allocation_diagram | 78 + .../mediastore/model_2016/pcm/ms_base.system | 83 + .../model_2016/pcm/ms_base.system_diagram | 284 + .../pcm/ms_base_usage_all.usagemodel | 54 + .../pcm/ms_base_usage_all.usagemodel_diagram | 163 + .../mediastore/model_2016/uml/ms.uml | 100 + .../benchmark/mediastore/text_2016/README.md | 12 + .../mediastore/text_2016/mediastore.txt | 37 + .../resources/benchmark/teammates/README.md | 23 + .../teammates/diagrams_2015/README.md | 3 + .../diagrams_2015/highlevelArchitecture.png | Bin 0 -> 32613 bytes .../diagrams_2015/packageDiagram.png | Bin 0 -> 33672 bytes .../teammates/diagrams_2023/README.md | 5 + .../diagrams_2023/highlevelArchitecture.png | Bin 0 -> 38190 bytes .../diagrams_2023/packageDiagram.png | Bin 0 -> 58263 bytes .../goldstandard_sad_2015-sam_2021.csv | 47 + .../goldstandard_sad_2015-sam_2021_UME.csv | 2 + .../goldstandard_sad_2021-code_2023.csv | 220 + .../goldstandard_sad_2021-sam_2021.csv | 52 + .../goldstandard_sad_2021-sam_2021_UME.csv | 1 + .../goldstandard_sad_id_2015.json | 1316 + .../goldstandard_sad_id_2023.json | 1531 + .../goldstandard_sam_2021-code_2023.csv | 23 + .../pcm/teammates-with-details.repository | 702 + .../model_2021/pcm/teammates.repository | 45 + .../model_2021/uml/teammates-with-details.uml | 245 + .../teammates/model_2021/uml/teammates.uml | 45 + .../teammates/model_2023/code/README.md | 2 + .../teammates/model_2023/code/codeModel.acm | 76491 ++++++ .../benchmark/teammates/text_2015/README.md | 43 + .../teammates/text_2015/teammates_2015.txt | 185 + .../benchmark/teammates/text_2021/README.md | 40 + .../teammates/text_2021/teammates.txt | 198 + .../resources/benchmark/teastore/README.md | 25 + .../teastore/diagrams_2018/Overview.jpg | Bin 0 -> 71932 bytes .../teastore/diagrams_2018/README.md | 2 + .../goldstandard_sad_2018-sam_2020_A.csv | 31 + .../goldstandard_sad_2018-sam_2020_AB.csv | 61 + .../goldstandard_sad_2018-sam_2020_AB_UME.csv | 7 + .../goldstandard_sad_2018-sam_2020_B.csv | 31 + .../goldstandard_sad_2018-sam_2020_III.csv | 6 + .../goldstandard_sad_2020-code_2022.csv | 71 + .../goldstandard_sad_2020-sam_2020.csv | 28 + .../goldstandard_sad_2020-sam_2020_UME.csv | 6 + .../goldstandard_sad_id_2018.json | 358 + .../goldstandard_sam_2020-code_2022.csv | 38 + .../model_2020/pcm/teastore.allocation | 29 + .../model_2020/pcm/teastore.repository | 920 + .../pcm/teastore.resourceenvironment | 91 + .../teastore/model_2020/pcm/teastore.system | 57 + .../model_2020/pcm/teastore.usagemodel | 73 + .../teastore/model_2020/uml/teastore.uml | 82 + .../teastore/model_2022/code/README.md | 2 + .../teastore/model_2022/code/codeModel.acm | 16989 ++ .../benchmark/teastore/text_2018/README.md | 22 + .../teastore/text_2018/teastore_2018_A.txt | 38 + .../teastore/text_2018/teastore_2018_AB.txt | 89 + .../teastore/text_2018/teastore_2018_B.txt | 51 + .../teastore/text_2018/teastore_2018_III.txt | 23 + .../benchmark/teastore/text_2020/README.md | 13 + .../benchmark/teastore/text_2020/teastore.txt | 43 + .../configurations/bbb/filterlists_all.txt | 2 + .../configurations/bbb/filterlists_none.txt | 2 + .../bbb/filterlists_onlyCommon.txt | 2 + .../configurations/jabref/enhanced_jabref.txt | 4 + .../configurations/jabref/filterlists_all.txt | 2 + .../jabref/filterlists_none.txt | 2 + .../jabref/filterlists_onlyCommon.txt | 2 + .../configurations/ms/filterlists_all.txt | 2 + .../configurations/ms/filterlists_none.txt | 2 + .../ms/filterlists_onlyCommon.txt | 2 + .../configurations/tm/filterlists_all.txt | 2 + .../configurations/tm/filterlists_none.txt | 2 + .../tm/filterlists_onlyCommon.txt | 2 + .../configurations/ts/filterlists_all.txt | 2 + .../configurations/ts/filterlists_none.txt | 2 + .../ts/filterlists_onlyCommon.txt | 2 + .../main/resources/simplelogger.properties | 31 + .../core/tests/eval/CodeProjectTest.java | 21 + .../ardoco/core/tests/eval/ProjectTest.java | 20 + 152 files changed, 334466 insertions(+) create mode 100644 tests-base/pom.xml create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java create mode 100644 tests-base/src/main/resources/benchmark/.github/CODEOWNERS create mode 100644 tests-base/src/main/resources/benchmark/.gitignore create mode 100644 tests-base/src/main/resources/benchmark/DiagramSchema.json create mode 100644 tests-base/src/main/resources/benchmark/LICENSE create mode 100644 tests-base/src/main/resources/benchmark/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/bbb-arch-overview.png create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2021/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2021/bbb-arch-overview.png create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_id_2015.json create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sad_id_2021.json create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/goldstandards/goldstandard_sam_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/model_2021/pcm/bbb.repository create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/model_2021/uml/bbb.uml create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/codeModel.acm create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/README.md create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton.txt create mode 100644 tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton_1SentPerLine.txt create mode 100644 tests-base/src/main/resources/benchmark/format_code_model.py create mode 100644 tests-base/src/main/resources/benchmark/jabref/README.md create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/jabref/model_2021/pcm/jabref.repository create mode 100644 tests-base/src/main/resources/benchmark/jabref/model_2021/uml/jabref.uml create mode 100644 tests-base/src/main/resources/benchmark/jabref/model_2023/code/README.md create mode 100644 tests-base/src/main/resources/benchmark/jabref/model_2023/code/codeModel.acm create mode 100644 tests-base/src/main/resources/benchmark/jabref/text_2016/README.md create mode 100644 tests-base/src/main/resources/benchmark/jabref/text_2016/jabref_2016.txt create mode 100644 tests-base/src/main/resources/benchmark/jabref/text_2021/README.md create mode 100644 tests-base/src/main/resources/benchmark/jabref/text_2021/jabref.txt create mode 100644 tests-base/src/main/resources/benchmark/mediastore/README.md create mode 100644 tests-base/src/main/resources/benchmark/mediastore/diagrams_2016/ArchitectureWithCache.png create mode 100644 tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv create mode 100644 tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv create mode 100644 tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_id_2016.json create mode 100644 tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/code/README.md create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/code/codeModel.acm create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository_diagram create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment_diagram create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation_diagram create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system_diagram create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel_diagram create mode 100644 tests-base/src/main/resources/benchmark/mediastore/model_2016/uml/ms.uml create mode 100644 tests-base/src/main/resources/benchmark/mediastore/text_2016/README.md create mode 100644 tests-base/src/main/resources/benchmark/mediastore/text_2016/mediastore.txt create mode 100644 tests-base/src/main/resources/benchmark/teammates/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2015/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2015/highlevelArchitecture.png create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2015/packageDiagram.png create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2023/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2023/highlevelArchitecture.png create mode 100644 tests-base/src/main/resources/benchmark/teammates/diagrams_2023/packageDiagram.png create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2015.json create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2023.json create mode 100644 tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates-with-details.repository create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates.repository create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates-with-details.uml create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates.uml create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2023/code/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/model_2023/code/codeModel.acm create mode 100644 tests-base/src/main/resources/benchmark/teammates/text_2015/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/text_2015/teammates_2015.txt create mode 100644 tests-base/src/main/resources/benchmark/teammates/text_2021/README.md create mode 100644 tests-base/src/main/resources/benchmark/teammates/text_2021/teammates.txt create mode 100644 tests-base/src/main/resources/benchmark/teastore/README.md create mode 100644 tests-base/src/main/resources/benchmark/teastore/diagrams_2018/Overview.jpg create mode 100644 tests-base/src/main/resources/benchmark/teastore/diagrams_2018/README.md create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_A.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_B.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_III.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2020-code_2022.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020_UME.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sad_id_2018.json create mode 100644 tests-base/src/main/resources/benchmark/teastore/goldstandards/goldstandard_sam_2020-code_2022.csv create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.allocation create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.repository create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.resourceenvironment create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.system create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.usagemodel create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2020/uml/teastore.uml create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2022/code/README.md create mode 100644 tests-base/src/main/resources/benchmark/teastore/model_2022/code/codeModel.acm create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2018/README.md create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_A.txt create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_AB.txt create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_B.txt create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_III.txt create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2020/README.md create mode 100644 tests-base/src/main/resources/benchmark/teastore/text_2020/teastore.txt create mode 100644 tests-base/src/main/resources/configurations/bbb/filterlists_all.txt create mode 100644 tests-base/src/main/resources/configurations/bbb/filterlists_none.txt create mode 100644 tests-base/src/main/resources/configurations/bbb/filterlists_onlyCommon.txt create mode 100644 tests-base/src/main/resources/configurations/jabref/enhanced_jabref.txt create mode 100644 tests-base/src/main/resources/configurations/jabref/filterlists_all.txt create mode 100644 tests-base/src/main/resources/configurations/jabref/filterlists_none.txt create mode 100644 tests-base/src/main/resources/configurations/jabref/filterlists_onlyCommon.txt create mode 100644 tests-base/src/main/resources/configurations/ms/filterlists_all.txt create mode 100644 tests-base/src/main/resources/configurations/ms/filterlists_none.txt create mode 100644 tests-base/src/main/resources/configurations/ms/filterlists_onlyCommon.txt create mode 100644 tests-base/src/main/resources/configurations/tm/filterlists_all.txt create mode 100644 tests-base/src/main/resources/configurations/tm/filterlists_none.txt create mode 100644 tests-base/src/main/resources/configurations/tm/filterlists_onlyCommon.txt create mode 100644 tests-base/src/main/resources/configurations/ts/filterlists_all.txt create mode 100644 tests-base/src/main/resources/configurations/ts/filterlists_none.txt create mode 100644 tests-base/src/main/resources/configurations/ts/filterlists_onlyCommon.txt create mode 100644 tests-base/src/main/resources/simplelogger.properties create mode 100644 tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java create mode 100644 tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java diff --git a/pom.xml b/pom.xml index 33611bc66..cab912906 100644 --- a/pom.xml +++ b/pom.xml @@ -546,6 +546,7 @@ framework pipeline-core + tests-base @@ -593,6 +594,7 @@ framework pipeline-core report + tests-base diff --git a/tests-base/pom.xml b/tests-base/pom.xml new file mode 100644 index 000000000..875404eb5 --- /dev/null +++ b/tests-base/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + io.github.ardoco.core + parent + ${revision} + ../pom.xml + + + tests-base + jar + Base classes for tests. It also includes the benchmark data from https://github.com/ArDoCo/Benchmark + + + + com.tngtech.archunit + archunit-junit5 + + + io.github.ardoco + metrics + 0.1.1 + compile + + + io.github.ardoco.core + common + ${revision} + + + io.github.ardoco.core + pipeline-core + ${revision} + + + org.eclipse.collections + eclipse-collections + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + compile + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + compile + + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + compile + + + org.mockito + mockito-core + test + + + org.reflections + reflections + + + diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java new file mode 100644 index 000000000..7adba9157 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java @@ -0,0 +1,129 @@ +/* Licensed under MIT 2021-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests; + +import java.util.Locale; +import java.util.Set; + +import org.eclipse.collections.api.collection.ImmutableCollection; +import org.slf4j.Logger; + +import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.EvaluationResults; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; +import edu.kit.kastel.mcse.ardoco.metrics.ClassificationMetricsCalculator; + +/** + * This utility class provides methods for running the tests, especially regarding the evaluations. + */ +public class TestUtil { + + private TestUtil() { + throw new IllegalAccessError("This constructor should not be called!"); + } + + /** + * compares the tlr results with the expected results and creates a new {@link EvaluationResults}. + * + * @param arDoCoResult the ArDoCoResult + * @param results Collection representing the results + * @param goldStandard Collection representing the gold standard + * @return the result of the comparison + */ + public static EvaluationResults compareTLR(ArDoCoResult arDoCoResult, ImmutableCollection results, ImmutableCollection goldStandard) { + + Set distinctTraceLinks = new java.util.LinkedHashSet<>(results.castToCollection()); + Set distinctGoldStandard = new java.util.LinkedHashSet<>(goldStandard.castToCollection()); + + int sentences = arDoCoResult.getText().getSentences().size(); + int modelElements = 0; + for (var model : arDoCoResult.getModelIds()) { + modelElements += arDoCoResult.getModelState(model).getInstances().size(); + } + + int confusionMatrixSum = sentences * modelElements; + + var calculator = ClassificationMetricsCalculator.getInstance(); + + var classification = calculator.calculateMetrics(distinctTraceLinks, distinctGoldStandard, confusionMatrixSum); + return new EvaluationResults<>(classification); + } + + /** + * compares the inconsistencies results with the expected results and creates a new {@link EvaluationResults}. + * + * @param arDoCoResult the ArDoCoResult + * @param results Collection representing the results + * @param goldStandard Collection representing the gold standard + * @return the result of the comparison + */ + public static EvaluationResults compareInconsistencies(ArDoCoResult arDoCoResult, ImmutableCollection results, + ImmutableCollection goldStandard) { + + Set distinctTraceLinks = new java.util.LinkedHashSet<>(results.castToCollection()); + Set distinctGoldStandard = new java.util.LinkedHashSet<>(goldStandard.castToCollection()); + + int confusionMatrixSum = arDoCoResult.getText().getSentences().size(); + + var calculator = ClassificationMetricsCalculator.getInstance(); + var classification = calculator.calculateMetrics(distinctTraceLinks, distinctGoldStandard, confusionMatrixSum); + return new EvaluationResults<>(classification); + } + + /** + * Log the provided {@link EvaluationResults} using the provided logger and name. The log put out the result string provided by the + * {@link EvaluationResults}. + * + * @param logger Logger to use + * @param name Name to show in the output + * @param results the results + */ + public static void logResults(Logger logger, String name, EvaluationResults results) { + if (logger.isInfoEnabled()) + logger.info(createResultLogString(name, results)); + } + + /** + * Creates a string from the given results that can be used, e.g., for logging. Extracts the name as well as precision, recall and F1-score and displays + * them line by line. + * + * @param name the name that should be displayed + * @param results the results + * @return a String containing the name and the results (precision, recall, F1) line by line + */ + public static String createResultLogString(String name, EvaluationResults results) { + return String.format(Locale.ENGLISH, "%n%s:%n%s", name, results); + } + + public static void logExtendedResultsAsRow(Logger logger, String headerVal, String headerKey, EvaluationResults results) { + var txt = String.format("%n%s", results.toRow(headerVal, headerKey)); + logger.info(txt); + } + + /** + * Log the provided {@link EvaluationResults} using the provided logger and name. Additionally, logs TP, FP, TN and FN used to calculate the metrics. + * + * @param logger Logger to use + * @param name Name to show in the output + * @param results the results + */ + public static void logExplicitResults(Logger logger, String name, EvaluationResults results) { + var tp = results.truePositives().size(); + var fp = results.falsePositives().size(); + var fn = results.falseNegatives().size(); + var precisionDenominator = tp + fp; + var recallDenominator = tp + fn; + var logString = String.format(Locale.ENGLISH, "%n%s:%n\tPrecision:%7d/%d = %.3f%n\tRecall:%10d/%d = %.3f", name, tp, precisionDenominator, results + .precision(), tp, recallDenominator, results.recall()); + logger.info(logString); + } + + public static void logExtendedResultsWithExpected(Logger logger, Object testClass, String name, EvaluationResults results, + ExpectedResults expectedResults) { + var infoString = String.format(Locale.ENGLISH, """ + + %s (%s): + %s""", name, testClass.getClass().getSimpleName(), results.getExtendedResultStringWithExpected(expectedResults)); + logger.info(infoString); + } + +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java new file mode 100644 index 000000000..e5680c6e9 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -0,0 +1,229 @@ +/* Licensed under MIT 2021-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.architecture; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields; +import static com.tngtech.archunit.library.Architectures.layeredArchitecture; + +import java.io.Serializable; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import com.tngtech.archunit.core.domain.JavaClass; +import com.tngtech.archunit.core.domain.JavaField; +import com.tngtech.archunit.core.domain.JavaFieldAccess; +import com.tngtech.archunit.core.domain.JavaModifier; +import com.tngtech.archunit.core.domain.JavaParameterizedType; +import com.tngtech.archunit.core.domain.JavaType; +import com.tngtech.archunit.core.domain.JavaTypeVariable; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchCondition; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.lang.ConditionEvents; +import com.tngtech.archunit.lang.SimpleConditionEvent; + +@AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") +public class ArchitectureTest { + @ArchTest + public static final ArchRule noDependencyOnExecution = classes().that() + .resideInAPackage("..execution..") + .should() + .onlyHaveDependentClassesThat() + .resideInAnyPackage("..execution..", "..tests.."); + @ArchTest + public static final ArchRule modelInstancesOnlyAfterModelExtraction = classes().that() + .haveSimpleName("ModelInstance") + .or() + .haveSimpleName("Model") + .should() + .onlyHaveDependentClassesThat() + .resideInAnyPackage("..models..", "..connectiongenerator..", "..inconsistency..", "..id..", "..pipeline..", "..common..", "..output..", + "..tests.."); + + @ArchTest + public static final ArchRule linksOnlyAfterConnectionGenerator = classes().that() + .haveSimpleNameEndingWith("Link") + .should() + .onlyHaveDependentClassesThat() + .resideInAnyPackage("..connectiongenerator..", "..codetraceability..", "..tracelinks..", "..inconsistency..", "..id..", "..pipeline..", + "..common..", "..api..", "..tests.."); + + @ArchTest + public static final ArchRule usingLinkAsNamingOnlyInConnectionGenerator = classes().that() + .haveSimpleNameEndingWith("Link") + .should() + .resideInAnyPackage("..models.tracelinks..", "..connectiongenerator..", "..output..", "..tests.."); + + @ArchTest + public static final ArchRule inconsistencyOnlyAfterInconsistencyDetection = classes().that() + .haveSimpleNameContaining("Inconsistency") + .should() + .onlyHaveDependentClassesThat() + .resideInAnyPackage("..inconsistency..", "..id..", "..execution..", "..api..", "..common..", "..tests.."); + + @ArchTest + public static final ArchRule layerRule = layeredArchitecture().consideringAllDependencies() + // Layer definition + .layer("Common") + .definedBy("..common..", "..api..", "..tests..") + .layer("TextExtractor") + .definedBy("..textextraction..") + .layer("ModelExtractor") + .definedBy("..models..") + .layer("RecommendationGenerator") + .definedBy("..recommendationgenerator..") + .layer("ConnectionGenerator") + .definedBy("..connectiongenerator..") + .layer("InconsistencyDetection") + .definedBy("..inconsistency..", "..id..") + .layer("CodeTraceability") + .definedBy("..codetraceability..") + .layer("Pipeline") + .definedBy("..pipeline..") + .layer("Execution") + .definedBy("..execution..") + // rule definition + .whereLayer("Execution") + .mayOnlyBeAccessedByLayers("Common") // Needed for tests + .whereLayer("InconsistencyDetection") + .mayOnlyBeAccessedByLayers("Pipeline", "Common", "Execution") + .whereLayer("ConnectionGenerator") + .mayOnlyBeAccessedByLayers("CodeTraceability", "InconsistencyDetection", "Pipeline", "Common", "Execution") + .whereLayer("RecommendationGenerator") + .mayOnlyBeAccessedByLayers("ConnectionGenerator", "InconsistencyDetection", "Pipeline", "Common", "Execution") + .whereLayer("TextExtractor") + .mayOnlyBeAccessedByLayers("RecommendationGenerator", "ConnectionGenerator", "InconsistencyDetection", "Pipeline", "Common", "Execution") + .whereLayer("ModelExtractor") + .mayOnlyBeAccessedByLayers("RecommendationGenerator", "ConnectionGenerator", "CodeTraceability", "InconsistencyDetection", "Pipeline", "Common", + "Execution"); + + @ArchTest + public static final ArchRule transientRule = fields().that() + .areDeclaredInClassesThat() + .resideOutsideOfPackages("..tests..") + .and() + .haveModifier(JavaModifier.TRANSIENT) + .should(new ArchCondition<>("beAccessedIndirectly") { + @Override + public void check(JavaField javaField, ConditionEvents conditionEvents) { + javaField.getAccessesToSelf().forEach(fieldAccess -> { + var origin = fieldAccess.getOrigin(); + if (fieldAccess.getAccessType().equals(JavaFieldAccess.AccessType.GET)) { + if (origin.isMethod()) { + if (origin.getName().equalsIgnoreCase("get" + fieldAccess.getName())) { + satisfied(conditionEvents, javaField, null); + } else { + violated(conditionEvents, javaField, "Method accesses " + origin.getFullName() + " accesses transient field " + javaField + .getFullName() + ", but is not a getter or does not match the name pattern for getters 'get{$FieldName}'"); + } + } else { + violated(conditionEvents, javaField, "Transient field " + javaField + .getFullName() + " has to be accessed by a getter with name 'get{$fieldName}'"); + } + } else { + if (origin.isConstructor()) { + violated(conditionEvents, javaField, "Transient field " + javaField + .getFullName() + " has to be set outside of the constructor"); + } else { + satisfied(conditionEvents, javaField, null); + } + } + }); + } + }) + .orShould(new ArchCondition<>("belongToClassWithCustomSerialization") { + @Override + public void check(JavaField javaField, ConditionEvents conditionEvents) { + if (javaField.getOwner().getMethods().stream().noneMatch(method -> method.getName().equalsIgnoreCase("writeObject"))) { + violated(conditionEvents, javaField, "Transient field " + javaField + .getFullName() + " doesn't belong to a class with a custom serialization"); + } + } + }); + + @ArchTest + private static final ArchRule serializableRule = classes().that() + .areNotInterfaces() + .and() + .doNotHaveModifier(JavaModifier.ABSTRACT) + .and() + .areAssignableTo(Serializable.class) + .and() + .areNotEnums() + .and() + .resideOutsideOfPackages("..tests..") + .should(new ArchCondition<>("beSerializable") { + @Override + public void check(JavaClass javaClass, ConditionEvents conditionEvents) { + if (javaClass.getMethods().stream().noneMatch(method -> method.getName().equalsIgnoreCase("writeObject"))) { + Predicate transientOrStatic = (JavaField javaField) -> new LinkedHashSet<>(javaField.getModifiers()).removeAll(List + .of(JavaModifier.STATIC, JavaModifier.TRANSIENT)); + var fields = javaClass.getFields(); + for (var field : fields) { + if (transientOrStatic.test(field)) + continue; + var erasure = field.getType().toErasure(); + if (isContainer.test(erasure)) { + getAllInvolvedRawTypesExceptSelf(field).stream().filter(erasureIsSerializableShallow.negate()).forEach(parameter -> { + violated(conditionEvents, javaClass, "Non-transient field " + field.getFullName() + " of serializable class " + javaClass + .getFullName() + " needs to be serializable or the class must have custom serialization, but has non-serializable parameter " + parameter + .getName()); + }); + } else { + if (erasureIsSerializableShallow.negate().test(erasure)) { + //Class has non-transient field that is not serializable + violated(conditionEvents, javaClass, "Non-transient field " + field.getFullName() + " of serializable class " + javaClass + .getFullName() + " needs to be serializable or the class must have custom serialization"); + } + } + } + } + } + }); + + private static final Predicate isContainer = (JavaClass javaClass) -> { + return javaClass.isArray() || javaClass.isAssignableTo(Collection.class) || javaClass.isAssignableTo(Map.class) || javaClass.isAssignableTo( + Iterable.class); + }; + + private static final Predicate erasureIsSerializableShallow = (JavaClass javaClass) -> { + return javaClass.isPrimitive() || javaClass.isAssignableTo(Serializable.class) || isContainer.test(javaClass); + }; + + /** + * Returns all types of a field, except the (outer) type of the field itself. Generic type variables are not considered. + * + * @param javaField the field + * @return all types of a field + */ + private static LinkedHashSet getAllInvolvedRawTypesExceptSelf(JavaField javaField) { + var javaType = javaField.getType(); + LinkedHashSet set; + if (javaType instanceof JavaParameterizedType javaParameterizedType) { + set = javaParameterizedType.getActualTypeArguments() + .stream() + .filter(typeArgument -> !(typeArgument instanceof JavaTypeVariable)) + .map(JavaType::toErasure) + .collect(Collectors.toCollection(LinkedHashSet::new)); + } else { + set = new LinkedHashSet<>(javaType.getAllInvolvedRawTypes()); + } + set.remove(javaType); + return set; + } + + private static void satisfied(ConditionEvents events, Object location, String message) { + var event = new SimpleConditionEvent(location, true, message); + events.add(event); + } + + private static void violated(ConditionEvents events, Object location, String message) { + var event = new SimpleConditionEvent(location, false, message); + events.add(event); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java new file mode 100644 index 000000000..6dfab302e --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -0,0 +1,278 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.architecture; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.methods; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; + +import java.lang.annotation.Annotation; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; + +import org.eclipse.collections.api.factory.Maps; +import org.eclipse.collections.api.factory.Sets; +import org.eclipse.collections.api.map.ImmutableMap; +import org.eclipse.collections.api.map.MutableMap; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; +import org.eclipse.collections.api.map.sorted.MutableSortedMap; +import org.eclipse.collections.api.set.ImmutableSet; +import org.eclipse.collections.api.set.MutableSet; +import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; +import org.eclipse.collections.api.set.sorted.MutableSortedSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.tngtech.archunit.base.DescribedPredicate; +import com.tngtech.archunit.core.domain.JavaClass; +import com.tngtech.archunit.core.domain.JavaField; +import com.tngtech.archunit.core.domain.JavaMethod; +import com.tngtech.archunit.core.domain.JavaParameterizedType; +import com.tngtech.archunit.core.domain.JavaWildcardType; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchCondition; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.lang.ConditionEvents; +import com.tngtech.archunit.lang.SimpleConditionEvent; + +import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; + +@AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") +public class DeterministicArDoCoTest { + + private static final Logger logger = LoggerFactory.getLogger(DeterministicArDoCoTest.class); + + @ArchTest + public static final ArchRule forbidUnorderedSetsAndMaps = noClasses().that() + .resideOutsideOfPackages("..tests..", "..metrics..") + .and(areNotDirectlyAnnotatedWith(Deterministic.class)) + .should() + .accessClassesThat(areForbiddenClasses()) + .orShould() + .dependOnClassesThat(areForbiddenClasses()); + + private static DescribedPredicate areNotDirectlyAnnotatedWith(Class targetAnnotation) { + return new DescribedPredicate<>("not directly annotated with " + targetAnnotation.getName()) { + @Override + public boolean test(JavaClass javaClass) { + var annotations = javaClass.getAnnotations(); + for (var annotation : annotations) { + if (annotation.getRawType().getFullName().equals(targetAnnotation.getName())) { + return false; + } + } + return true; + } + }; + } + + private static DescribedPredicate areForbiddenClasses() { + Set> forbiddenClasses = Set.of(Set.class, HashSet.class, MutableSet.class, ImmutableSet.class, Sets.class, // + Map.class, HashMap.class, MutableMap.class, ImmutableMap.class, Maps.class // + ); + return new DescribedPredicate<>("forbidden classes") { + @Override + public boolean test(JavaClass javaClass) { + return forbiddenClasses.stream().map(Class::getName).anyMatch(it -> it.equals(javaClass.getFullName())); + } + }; + } + + @ArchTest + public static final ArchRule forbidHashMapAndHashSetInFavorOfLinkedVersions = noClasses().that() + .resideOutsideOfPackages("..tests..") + .and() + .doNotHaveFullyQualifiedName(DeterministicArDoCoTest.class.getName()) + .should() + .accessClassesThat() + .haveNameMatching(HashMap.class.getName() + "|" + HashSet.class.getName()) + .orShould() + .dependOnClassesThat() + .haveNameMatching(HashMap.class.getName() + "|" + HashSet.class.getName()); + + @ArchTest + public static final ArchRule forbidEqualsAndHashCodeInCertainClasses = noClasses().that() + .areAnnotatedWith(NoHashCodeEquals.class) + .should(implementEqualsOrHashCode()); + + private static ArchCondition implementEqualsOrHashCode() { + return new ArchCondition<>("implement equals or hashCode") { + @Override + public void check(JavaClass javaClass, ConditionEvents conditionEvents) { + var methods = javaClass.getAllMethods(); + for (var method : methods) { + if (!method.getFullName().contains(javaClass.getFullName())) + continue; + if (method.getName().equals("hashCode") || method.getName().equals("equals")) { + satisfied(conditionEvents, javaClass, "Class " + javaClass.getName() + " implements " + method.getFullName()); + } + } + } + }; + } + + @ArchTest + public static final ArchRule ensureContractBetweenEqualsHashCodeAndCompareTo = classes().that(directlyImplement(Comparable.class)) + .and() + .areNotEnums() + .and() + .areNotInterfaces() + .and() + .areNotAnonymousClasses() // e.g., type references for jackson + .should(implementEqualsAndHashCode()); + + private static DescribedPredicate directlyImplement(Class targetClass) { + return new DescribedPredicate<>("directly implement " + targetClass.getName()) { + @Override + public boolean test(JavaClass javaClass) { + var directInterfaces = javaClass.getRawInterfaces(); + for (var di : directInterfaces) { + if (di.getName().equals(targetClass.getName())) { + return true; + } + } + return false; + } + }; + } + + private static ArchCondition implementEqualsAndHashCode() { + return new ArchCondition<>("implement equals or hashCode") { + @Override + public void check(JavaClass javaClass, ConditionEvents conditionEvents) { + var methods = javaClass.getAllMethods(); + boolean equals = false; + boolean hashCode = false; + for (var method : methods) { + if (!method.getFullName().contains(javaClass.getFullName())) + continue; + + if (method.getName().equals("hashCode")) { + hashCode = true; + } else if (method.getName().equals("equals")) { + equals = true; + } + } + + if (equals && hashCode) { + satisfied(conditionEvents, javaClass, "Class " + javaClass.getName() + " implements equals and hashCode"); + } else if (equals) { + violated(conditionEvents, javaClass, "Class " + javaClass.getName() + " implements equals but not hashCode"); + } else if (hashCode) { + violated(conditionEvents, javaClass, "Class " + javaClass.getName() + " implements hashCode but not equals"); + } else { + violated(conditionEvents, javaClass, "Class " + javaClass.getName() + " implements neither equals nor hashCode"); + } + } + }; + } + + @ArchTest + public static final ArchRule ensureSortedCollectionsOnlyForComparableTypes = fields().that() + .haveRawType(SortedMap.class) + .or() + .haveRawType(ImmutableSortedMap.class) + .or() + .haveRawType(MutableSortedMap.class) + .or() + .haveRawType(SortedSet.class) + .or() + .haveRawType(ImmutableSortedSet.class) + .or() + .haveRawType(MutableSortedSet.class) + .should(haveComparableGenericType()); + + @ArchTest + public static final ArchRule ensureSortedCollectionsOnlyForComparableTypesInReturn = methods().that() + .haveRawReturnType(SortedSet.class) + .or() + .haveRawReturnType(ImmutableSortedSet.class) + .or() + .haveRawReturnType(MutableSortedSet.class) + .should(haveComparableReturn()); + + @ArchTest + public static final ArchRule ensureSortedMapOnlyForComparableTypesInReturn = methods().that() + .haveRawReturnType(SortedMap.class) + .or() + .haveRawReturnType(ImmutableSortedMap.class) + .or() + .haveRawReturnType(MutableSortedMap.class) + .should(haveComparableReturn()); + + private static ArchCondition haveComparableGenericType() { + return new ArchCondition<>("have Comparable generic type") { + @Override + public void check(JavaField javaField, ConditionEvents conditionEvents) { + var type = javaField.getType(); + if (type instanceof JavaParameterizedType parameterizedType) { + var typeParameter = parameterizedType.getActualTypeArguments().get(0); + if ((typeParameter instanceof JavaClass typeParameterClass) && typeParameterClass.getAllRawInterfaces() + .stream() + .anyMatch(i -> i.getFullName().equals(Comparable.class.getName()))) { + + satisfied(conditionEvents, javaField, "Field " + javaField.getFullName() + " has a Comparable generic type"); + } else { + violated(conditionEvents, javaField, "Field " + javaField.getFullName() + " has a non-Comparable generic type"); + } + } else if (type instanceof JavaClass) { + // Classes generated from lambdas cannot be checked :( + logger.debug("Skipping field {}", javaField.getFullName()); + } else { + violated(conditionEvents, javaField, "Field " + javaField.getFullName() + " is not a parameterized type"); + } + } + }; + } + + private static ArchCondition haveComparableReturn() { + return new ArchCondition<>("have Comparable generic type") { + @Override + public void check(JavaMethod javaMethod, ConditionEvents conditionEvents) { + var type = javaMethod.getReturnType(); + if (!(type instanceof JavaParameterizedType parameterizedType)) { + violated(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " is not a parameterized type"); + return; + } + + var typeParameter = parameterizedType.getActualTypeArguments().get(0); + if ((typeParameter instanceof JavaClass typeParameterClass) && typeParameterClass.getAllRawInterfaces() + .stream() + .anyMatch(i -> i.getFullName().equals(Comparable.class.getName()))) { + + satisfied(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " has a Comparable generic type"); + } else if ((typeParameter instanceof JavaWildcardType typeParameterWildCard)) { + var upperBound = typeParameterWildCard.getUpperBounds().get(0); + + if (!(upperBound instanceof JavaClass upperBoundClass) || upperBoundClass.getAllRawInterfaces() + .stream() + .noneMatch(i -> i.getFullName().equals(Comparable.class.getName()))) { + violated(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " has a non-Comparable generic type"); + return; + } + + satisfied(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " has a Comparable generic type"); + } else { + violated(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " has a non-Comparable generic type"); + } + } + }; + } + + private static void satisfied(ConditionEvents events, Object location, String message) { + var event = new SimpleConditionEvent(location, true, message); + events.add(event); + } + + private static void violated(ConditionEvents events, Object location, String message) { + var event = new SimpleConditionEvent(location, false, message); + events.add(event); + } + +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java new file mode 100644 index 000000000..30fe50968 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java @@ -0,0 +1,225 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.function.Predicate; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.common.util.TraceLinkUtilities; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; + +/** + * This enum captures the different case studies that are used for evaluation in the integration tests. + */ +public enum CodeProject implements GoldStandardProject { + /** + * @see Project#MEDIASTORE + */ + MEDIASTORE(// + Project.MEDIASTORE, // + "https://github.com/ArDoCo/MediaStore3.git", // + "94c398fa02b3d6b8d71517522a7206d37ed3a9af", // + "/benchmark/mediastore/model_2016/code/codeModel.acm",// + "/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv", // + "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv", // + new ExpectedResults(.975, .995, .985, .995, .985, .995), // + new ExpectedResults(.995, .515, .675, .990, .715, .999) // + ), + + /** + * @see Project#TEASTORE + */ + TEASTORE(Project.TEASTORE, // + "https://github.com/ArDoCo/TeaStore.git", // + "bdc49020a55cfa97eaabbb25744fefbc2697defa", // + "/benchmark/teastore/model_2022/code/codeModel.acm",// + "/benchmark/teastore/goldstandards/goldstandard_sam_2020-code_2022.csv", // + "/benchmark/teastore/goldstandards/goldstandard_sad_2020-code_2022.csv", // + new ExpectedResults(.975, .975, .975, .997, .965, .999), // + new ExpectedResults(.999, .708, .829, .976, .831, .999) // + ), + + /** + * @see Project#TEAMMATES + */ + TEAMMATES(Project.TEAMMATES, // + "https://github.com/ArDoCo/teammates.git",// + "b24519a2af9e17b2bc9c025e87e4cf60009c425d",// + "/benchmark/teammates/model_2023/code/codeModel.acm",// + "/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv",// + "/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv", // + new ExpectedResults(.999, .999, .999, .999, .999, .999), // + new ExpectedResults(.705, .909, .795, .975, .785, .975) // + ), + + /** + * @see Project#BIGBLUEBUTTON + */ + BIGBLUEBUTTON(Project.BIGBLUEBUTTON,// + "https://github.com/ArDoCo/bigbluebutton.git",// + "8fa2507d6c3865a9850004fd6fefd09738e68406",// + "/benchmark/bigbluebutton/model_2023/code/codeModel.acm",// + "/benchmark/bigbluebutton/goldstandards/goldstandard_sam_2021-code_2023.csv", // + "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-code_2023.csv", // + new ExpectedResults(.874, .953, .912, .989, .908, .985), // + new ExpectedResults(.765, .905, .835, .985, .825, .985) // + ), + + /** + * @see Project#JABREF + */ + JABREF(Project.JABREF, // + "https://github.com/ArDoCo/jabref.git",// + "6269698cae437610ec79c38e6dd611eef7e88afe",// + "/benchmark/jabref/model_2023/code/codeModel.acm",// + "/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv", // + "/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv", // + new ExpectedResults(.999, .999, .999, .999, .999, .999), // + new ExpectedResults(.885, .999, .935, .960, .915, .935) // + ); + + private static final Logger logger = LoggerFactory.getLogger(Project.class); + + private final String codeRepository; + private final String commitHash; + private final String codeModelLocationInResources; + private final String samCodeGoldStandardLocation; + private final String sadCodeGoldStandardLocation; + private final Project project; + private final ExpectedResults expectedResultsForSamCode; + private final ExpectedResults expectedResultsForSadSamCode; + private final SortedSet resourceNames; + + CodeProject(Project project, String codeRepository, String commitHash, String codeModelLocationInResources, String samCodeGoldStandardLocation, + String sadCodeGoldStandardLocation, ExpectedResults expectedResultsForSamCode, ExpectedResults expectedResultsForSadSamCode) { + this.project = project; + this.codeRepository = codeRepository; + this.commitHash = commitHash; + this.codeModelLocationInResources = codeModelLocationInResources; + this.samCodeGoldStandardLocation = samCodeGoldStandardLocation; + this.sadCodeGoldStandardLocation = sadCodeGoldStandardLocation; + this.expectedResultsForSamCode = expectedResultsForSamCode; + this.expectedResultsForSadSamCode = expectedResultsForSadSamCode; + SortedSet set = new TreeSet<>(project.getResourceNames()); + set.add(codeModelLocationInResources); + set.add(samCodeGoldStandardLocation); + set.add(sadCodeGoldStandardLocation); + resourceNames = set; + } + + @Override + public String getProjectName() { + return this.name(); + } + + @Override + public SortedSet getResourceNames() { + return new TreeSet<>(resourceNames); + } + + /** + * {@return the link to the code repository of this project} + */ + public String getCodeRepository() { + return codeRepository; + } + + /** + * {@return the commit hash the project is based on} + */ + public String getCommitHash() { + return commitHash; + } + + /** + * Get Code Location (ACM File or Temporary Directory) + * + * @param acmFile If true, the ACM file is loaded from resources + * + */ + public File getCodeLocation(boolean acmFile) { + if (acmFile) { + return ProjectHelper.loadFileFromResources(this.codeModelLocationInResources); + } + + return getTemporaryCodeLocation(); + } + + /** + * {@return the expected results using the software architecture model code} + */ + public ExpectedResults getExpectedResultsForSamCode() { + return expectedResultsForSamCode; + } + + /** + * {@return the expected results using the software architecture model code} + */ + public ExpectedResults getExpectedResultsForSadSamCode() { + return expectedResultsForSadSamCode; + } + + /** + * {@return all trace link strings from the gold standard} + * + * @see TraceLinkUtilities#createTraceLinkString(String, String) + */ + public ImmutableList getSamCodeGoldStandard() { + File samCodeGoldStandardFile = ProjectHelper.loadFileFromResources(samCodeGoldStandardLocation); + List lines = getLinesFromGoldStandardFile(samCodeGoldStandardFile); + + MutableList goldStandard = Lists.mutable.empty(); + for (var line : lines) { + if (line.isBlank()) + continue; + var parts = line.split(","); + String modelElementId = parts[0]; + String codeElementId = parts[2]; + goldStandard.add(TraceLinkUtilities.createTraceLinkString(modelElementId, codeElementId)); + } + goldStandard.removeIf(String::isBlank); + return goldStandard.toImmutable(); + } + + /** + * {@return all lines from the gold standard in csv format} + */ + public ImmutableList getSadCodeGoldStandard() { + File sadCodeGoldStandardFile = ProjectHelper.loadFileFromResources(sadCodeGoldStandardLocation); + List lines = getLinesFromGoldStandardFile(sadCodeGoldStandardFile); + return Lists.immutable.ofAll(lines); + } + + private static List getLinesFromGoldStandardFile(File samCodeGoldStandardFile) { + var path = Paths.get(samCodeGoldStandardFile.toURI()); + List lines = Lists.mutable.empty(); + try { + lines = Files.readAllLines(path); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + lines.removeFirst(); + lines = lines.stream().filter(Predicate.not(String::isBlank)).toList(); + return lines; + } + + private File getTemporaryCodeLocation() { + String tmpdir = System.getProperty("java.io.tmpdir"); + var temporary = new File(tmpdir + File.separator + "ArDoCo" + File.separator + project.name()); + logger.debug("Location of Code: {}", temporary.getAbsolutePath()); + temporary.mkdirs(); + return temporary; + } + +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java new file mode 100644 index 000000000..ddb574f21 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java @@ -0,0 +1,138 @@ +/* Licensed under MIT 2022-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.TreeMap; +import java.util.stream.Collectors; + +import org.reflections.Reflections; + +import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; +import edu.kit.kastel.mcse.ardoco.core.configuration.Configurable; +import edu.kit.kastel.mcse.ardoco.core.configuration.ConfigurationInstantiatorUtils; + +/** + * This test class deals with the configurations. + * + * @see AbstractConfigurable + */ +@SuppressWarnings({ "java:S106", "java:S3011" }) +public abstract class ConfigurationTestBase { + + private static final String ARDOCO = "edu.kit.kastel.mcse.ardoco"; + + protected abstract void assertFalse(boolean result, String message); + + protected abstract void fail(String message); + + /** + * This test verifies that all configurable values are able to be configured. It also prints all configurable values + * as they should be contained in a configuration file. + * + * @throws Exception if anything goes wrong + */ + protected void showCurrentConfiguration() throws Exception { + Map configs = new TreeMap<>(); + var reflectAccess = new Reflections(ARDOCO); + var classesThatMayBeConfigured = reflectAccess.getSubTypesOf(AbstractConfigurable.class) + .stream() + .filter(c -> c.getPackageName().startsWith(ARDOCO)) + .filter(c -> !Modifier.isAbstract(c.getModifiers())) + .filter(c -> !c.getPackageName().contains("tests")) + .toList(); + for (var clazz : classesThatMayBeConfigured) { + processConfigurationOfClass(configs, clazz); + } + assertFalse(configs.isEmpty(), "Configuration shall not be empty"); + + System.out.println("-".repeat(50)); + System.out.println("Current Default Configuration"); + System.out.println(configs.entrySet() + .stream() + .map(e -> e.getKey() + AbstractConfigurable.KEY_VALUE_CONNECTOR + e.getValue()) + .collect(Collectors.joining("\n"))); + System.out.println("-".repeat(50)); + } + + protected void testValidityOfConfigurableFields() { + var reflectAccess = new Reflections(ARDOCO); + var classesThatMayBeConfigured = reflectAccess.getSubTypesOf(AbstractConfigurable.class) + .stream() + .filter(c -> c.getPackageName().startsWith(ARDOCO)) + .filter(c -> !Modifier.isAbstract(c.getModifiers())) + .filter(c -> !c.getPackageName().contains("tests")) + .toList(); + + for (var clazz : classesThatMayBeConfigured) { + List configurableFields = new ArrayList<>(); + findImportantFields(clazz, configurableFields); + + for (var field : configurableFields) { + int modifiers = field.getModifiers(); + assertFalse(Modifier.isFinal(modifiers), "Field " + field.getName() + "@" + field.getDeclaringClass().getSimpleName() + " is final!"); + assertFalse(Modifier.isStatic(modifiers), "Field " + field.getName() + "@" + field.getDeclaringClass().getSimpleName() + " is static!"); + } + } + } + + protected void processConfigurationOfClass(Map configs, Class clazz) throws InvocationTargetException, + InstantiationException, IllegalAccessException { + var object = ConfigurationInstantiatorUtils.createObject(clazz); + List fields = new ArrayList<>(); + findImportantFields(object.getClass(), fields); + fillConfigs(object, fields, configs); + } + + private void fillConfigs(AbstractConfigurable object, List fields, Map configs) throws IllegalAccessException { + for (Field f : fields) { + f.setAccessible(true); + var key = AbstractConfigurable.getKeyOfField(object, f.getDeclaringClass(), f); + var rawValue = f.get(object); + var value = getValue(rawValue); + if (configs.containsKey(key)) { + fail("Found duplicate entry in map: " + key); + } + configs.put(key, value); + } + } + + private String getValue(Object rawValue) { + if (rawValue instanceof Integer i) { + return Integer.toString(i); + } + if (rawValue instanceof Double d) { + return String.format(Locale.ENGLISH, "%f", d); + } + if (rawValue instanceof Boolean b) { + return String.valueOf(b); + } + if (rawValue instanceof List s && s.stream().allMatch(it -> it instanceof String)) { + return s.stream().map(Object::toString).collect(Collectors.joining(AbstractConfigurable.LIST_SEPARATOR)); + } + if (rawValue instanceof Enum e) { + return e.name(); + } + + throw new IllegalArgumentException("RawValue has no type that may be transformed to an Configuration" + rawValue + "[" + rawValue.getClass() + "]"); + + } + + private void findImportantFields(Class clazz, List fields) { + if (clazz == Object.class || clazz == AbstractConfigurable.class) { + return; + } + + for (var field : clazz.getDeclaredFields()) { + if (field.isAnnotationPresent(Configurable.class)) { + fields.add(field); + } + } + findImportantFields(clazz.getSuperclass(), fields); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java new file mode 100644 index 000000000..9aa60684a --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java @@ -0,0 +1,73 @@ +/* Licensed under MIT 2021-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Scanner; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; + +public class GoldStandard { + private Logger logger = LoggerFactory.getLogger(GoldStandard.class); + + private File goldStandard; + private ArchitectureModel model; + + private MutableList> sentence2instance = Lists.mutable.empty(); + + public GoldStandard(File goldStandard, ArchitectureModel model) { + this.goldStandard = goldStandard; + this.model = model; + this.load(); + } + + private void load() { + try (Scanner scan = new Scanner(this.goldStandard, StandardCharsets.UTF_8)) { + while (scan.hasNextLine()) { + String line = scan.nextLine(); + if (line == null || line.isBlank() || line.startsWith("modelElement") || line.contains("modelElementID")) { + // continue if line is empty, null, or is the header (that starts with "modelElementID") + continue; + } + + String[] idXline = line.strip().split(",", -1); + ArchitectureItem instance = Lists.immutable.withAll(this.model.getContent()).select(i -> i.getId().equals(idXline[0])).getFirst(); + if (instance == null) { + System.err.println("No instance found for id \"" + idXline[0] + "\""); + continue; + } + int sentence = Integer.parseInt(idXline[1]); + while (this.sentence2instance.size() <= sentence) { + this.sentence2instance.add(Lists.mutable.empty()); + } + this.sentence2instance.get(sentence).add(instance); + } + } catch (IOException e) { + this.logger.warn(e.getMessage(), e.getCause()); + } + } + + public ImmutableList getModelInstances(int sentenceNo) { + // Index starts at 1 + return this.sentence2instance.get(sentenceNo).toImmutable(); + } + + public ImmutableList getSentencesWithElement(ArchitectureItem elem) { + MutableList sentences = Lists.mutable.empty(); + for (int i = 0; i < this.sentence2instance.size(); i++) { + var instances = this.sentence2instance.get(i); + if (instances.anySatisfy(e -> e.getId().equals(elem.getId()))) { + sentences.add(i); + } + } + return sentences.toImmutable(); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java new file mode 100644 index 000000000..47e889f03 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -0,0 +1,245 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.IOException; +import java.util.MissingResourceException; +import java.util.Objects; +import java.util.Optional; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.prefs.Preferences; + +import org.apache.commons.codec.digest.DigestUtils; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; + +/** + * Interface for all Project extensions + */ +public interface GoldStandardProject { + /** + * {@return the project the instance is based on} + */ + String getProjectName(); + + /** + * {@return the name of all resources associated with instances relative to the class} + */ + SortedSet getResourceNames(); + + /** + * {@return the version of the source files of this project} + */ + default long getSourceFilesVersion() { + this.getResourceNames().forEach(this::validateResourceChecksum); + return Preferences.userNodeForPackage(getClass()).getLong("version", -1L); + } + + /** + * Calculates an MD5 checksum for the resource at the given path. Will bump the source files version if the checksum doesn't match. + * + * @param resourceName the resource relative to the class + * @return true, if the checksum matches, false otherwise + * @see #getSourceFilesVersion() + */ + private boolean validateResourceChecksum(String resourceName) { + var cls = getClass(); + var logger = LoggerFactory.getLogger(cls); + try (var resource = cls.getResourceAsStream(resourceName)) { + if (resource == null) { + throw new MissingResourceException("No such resource at path " + resourceName, File.class.getSimpleName(), resourceName); + } + String md5 = DigestUtils.md5Hex(resource); + if (!Objects.equals(Preferences.userNodeForPackage(cls).get(resourceName, null), md5)) { + Preferences.userNodeForPackage(cls).put(resourceName, md5); + Preferences.userNodeForPackage(cls).putLong("version", System.currentTimeMillis()); + logger.info("Checksum for source file {} doesn't match", resourceName); + return false; + } + logger.info("Checksum for source file {} matches", resourceName); + return true; + } catch (IOException e) { + logger.error("Couldn't calculate checksum for resource at " + resourceName, e); + return false; + } + } + + /** + * {@return the project alias} + */ + default String getAlias() { + return this.getProjectOrThrow().getAlias(); + } + + /** + * Returns the File that represents the model for this project. + * + * @return the File that represents the model for this project + */ + default File getModelFile() { + return this.getProjectOrThrow().getModelFile(); + } + + /** + * {@return the resource name that represents the model for this project} + */ + default String getModelResourceName() { + return this.getProjectOrThrow().getModelResourceName(); + } + + /** + * Returns the File that represents the model for this project with the given model type. + * + * @param modelType the model type + * @return the File that represents the model for this project + */ + default File getModelFile(ArchitectureModelType modelType) { + return this.getProjectOrThrow().getModelFile(modelType); + } + + /** + * {@return the resource name that represents the model for this project with the given model type} + * + * @param modelType the model type + */ + default String getModelResourceName(ArchitectureModelType modelType) { + return this.getProjectOrThrow().getModelResourceName(modelType); + } + + /** + * Returns the File that represents the text for this project. + * + * @return the File that represents the text for this project + */ + default File getTextFile() { + return this.getProjectOrThrow().getTextFile(); + } + + /** + * {@return the resource name that represents the text for this project} + */ + default String getTextResourceName() { + return this.getProjectOrThrow().getTextResourceName(); + } + + /** + * Return the map of additional configuration options + * + * @return the map of additional configuration options + */ + default SortedMap getAdditionalConfigurations() { + return this.getProjectOrThrow().getAdditionalConfigurations(); + } + + /** + * Returns a {@link File} that points to the text file containing additional configurations + * + * @return the file for additional configurations + */ + default File getAdditionalConfigurationsFile() { + return this.getProjectOrThrow().getAdditionalConfigurationsFile(); + } + + /** + * {@return the resource name that represents the additional configurations for this project} + */ + default String getAdditionalConfigurationsResourceName() { + return this.getProjectOrThrow().getAdditionalConfigurationsResourceName(); + } + + /** + * Returns the {@link GoldStandard} for this project. + * + * @return the File that represents the gold standard for this project + */ + default File getTlrGoldStandardFile() { + return this.getProjectOrThrow().getTlrGoldStandardFile(); + } + + /** + * {@return the resource name that represents the TLR {@link GoldStandard} for this project} + */ + default String getTlrGoldStandardResourceName() { + return this.getProjectOrThrow().getTlrGoldStandardResourceName(); + } + + /** + * Returns a string-list of entries as goldstandard for TLR for this project. + * + * @return a list with the entries of the goldstandard for TLR + */ + default ImmutableList getTlrGoldStandard() { + return this.getProjectOrThrow().getTlrGoldStandard(); + } + + /** + * Returns the {@link GoldStandard} for this project for the given model connector. + * + * @param architectureModel the model + * @return the {@link GoldStandard} for this project + */ + default GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { + return this.getProjectOrThrow().getTlrGoldStandard(architectureModel); + } + + default MutableList getMissingTextForModelElementGoldStandard() { + return this.getProjectOrThrow().getMissingTextForModelElementGoldStandard(); + } + + /** + * {@return the {@link GoldStandard} for this project} + */ + default File getMissingTextForModelElementGoldStandardFile() { + return this.getProjectOrThrow().getMissingTextForModelElementGoldStandardFile(); + } + + /** + * {@return the resource name that represents the MME {@link GoldStandard} for this project} + */ + default String getMissingTextForModelElementGoldStandardResourceName() { + return this.getProjectOrThrow().getMissingTextForModelElementGoldStandardResourceName(); + } + + /** + * {@return the expected results for Traceability Link Recovery} + */ + default ExpectedResults getExpectedTraceLinkResults() { + return this.getProjectOrThrow().getExpectedTraceLinkResults(); + } + + /** + * {@return the expected results for Inconsistency Detection} + */ + default ExpectedResults getExpectedInconsistencyResults() { + return this.getProjectOrThrow().getExpectedInconsistencyResults(); + } + + /** + * Private so the project doesn't get passed around directly, defeating the purpose of making it extensible + * + * @return the project this instance belongs to + */ + private Project getProjectOrThrow() { + return this.getFromName().orElseThrow(); + } + + /** + * Returns an {@link Optional} containing the project that has a name that equals the given name, ignoring case. + * + * @return the Optional containing the project with the given name or is empty if no such is found. + */ + private Optional getFromName() { + for (Project project : Project.values()) { + if (project.name().equalsIgnoreCase(this.getProjectName())) { + return Optional.of(project); + } + } + return Optional.empty(); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java new file mode 100644 index 000000000..1e06fd1d2 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java @@ -0,0 +1,224 @@ +/* Licensed under MIT 2021-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; + +/** + * This enum captures the different case studies that are used for evaluation in the integration tests (only historic versions). + */ +public enum HistoricProject implements GoldStandardProject { + TEASTORE_HISTORICAL( // + "TS-H", // + "/benchmark/teastore/model_2020/pcm/teastore.repository", // + "/benchmark/teastore/text_2018/teastore_2018_AB.txt", // + "/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB.csv", // + "/configurations/ts/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB_UME.csv", // + new ExpectedResults(.999, .740, .850, .984, .853, .999), // + new ExpectedResults(.082, .983, .153, .332, .147, .291) // + ), // + TEAMMATES_HISTORICAL( // + "TM-H", // + "/benchmark/teammates/model_2021/pcm/teammates.repository", // + "/benchmark/teammates/text_2015/teammates_2015.txt", // + "/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv", // + "/configurations/tm/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv", // + new ExpectedResults(.524, .695, .597, .970, .589, .979), // + new ExpectedResults(.161, .695, .262, .878, .295, .884) // + ), // + BIGBLUEBUTTON_HISTORICAL( // + "BBB-H", "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // + "/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt", // + "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021.csv", // + "/configurations/bbb/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv", // + new ExpectedResults(.807, .617, .699, .978, .695, .993), // + new ExpectedResults(.048, .176, .076, .829, .018, .857) // + ), // + + JABREF_HISTORICAL( // + "JR-H", "/benchmark/jabref/model_2021/pcm/jabref.repository", // + "/benchmark/jabref/text_2016/jabref_2016.txt", // + "/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv", // + "/configurations/jabref/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv", // + new ExpectedResults(.817, .999, .899, .966, .886, .960), // + new ExpectedResults(.083, .111, .095, .683, -0.094, .784) // + ); + + private static final Logger logger = LoggerFactory.getLogger(HistoricProject.class); + + private final String alias; + private final String model; + private final String textFile; + private final String configurationsFile; + private final String goldStandardTraceabilityLinkRecovery; + private final String goldStandardMissingTextForModelElement; + private final ExpectedResults expectedTraceLinkResults; + private final ExpectedResults expectedInconsistencyResults; + private final SortedSet resourceNames; + + HistoricProject(String alias, String model, String textFile, String goldStandardTraceabilityLinkRecovery, String configurationsFile, + String goldStandardMissingTextForModelElement, ExpectedResults expectedTraceLinkResults, ExpectedResults expectedInconsistencyResults) { + this.alias = alias; + this.model = model; + this.textFile = textFile; + this.configurationsFile = configurationsFile; + this.goldStandardTraceabilityLinkRecovery = goldStandardTraceabilityLinkRecovery; + this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; + this.expectedTraceLinkResults = expectedTraceLinkResults; + this.expectedInconsistencyResults = expectedInconsistencyResults; + resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, + goldStandardMissingTextForModelElement)); + } + + @Override + public String getAlias() { + return alias; + } + + @Override + public File getModelFile() { + return ProjectHelper.loadFileFromResources(model); + } + + @Override + public String getModelResourceName() { + return model; + } + + @Override + public File getModelFile(ArchitectureModelType modelType) { + return switch (modelType) { + case PCM -> getModelFile(); + case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); + case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + }; + } + + @Override + public String getModelResourceName(ArchitectureModelType modelType) { + return switch (modelType) { + case PCM -> model; + case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); + case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + }; + } + + @Override + public File getTextFile() { + return ProjectHelper.loadFileFromResources(textFile); + } + + @Override + public String getTextResourceName() { + return textFile; + } + + @Override + public SortedMap getAdditionalConfigurations() { + return ConfigurationHelper.loadAdditionalConfigs(getAdditionalConfigurationsFile()); + } + + @Override + public File getAdditionalConfigurationsFile() { + return ProjectHelper.loadFileFromResources(this.configurationsFile); + } + + @Override + public String getAdditionalConfigurationsResourceName() { + return configurationsFile; + } + + @Override + public File getTlrGoldStandardFile() { + return ProjectHelper.loadFileFromResources(goldStandardTraceabilityLinkRecovery); + } + + @Override + public String getTlrGoldStandardResourceName() { + return goldStandardTraceabilityLinkRecovery; + } + + @Override + public ImmutableList getTlrGoldStandard() { + var path = Paths.get(this.getTlrGoldStandardFile().toURI()); + List goldLinks = Lists.mutable.empty(); + try { + goldLinks = Files.readAllLines(path); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + goldLinks.removeFirst(); + goldLinks.removeIf(String::isBlank); + return Lists.immutable.ofAll(goldLinks); + } + + @Override + public GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { + return new GoldStandard(getTlrGoldStandardFile(), architectureModel); + } + + @Override + public MutableList getMissingTextForModelElementGoldStandard() { + var path = Paths.get(this.getMissingTextForModelElementGoldStandardFile().toURI()); + List goldLinks = Lists.mutable.empty(); + try { + goldLinks = Files.readAllLines(path); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + goldLinks.remove("missingModelElementID"); + goldLinks.removeIf(String::isBlank); + return Lists.mutable.ofAll(goldLinks); + } + + @Override + public File getMissingTextForModelElementGoldStandardFile() { + return ProjectHelper.loadFileFromResources(goldStandardMissingTextForModelElement); + } + + @Override + public String getMissingTextForModelElementGoldStandardResourceName() { + return goldStandardMissingTextForModelElement; + } + + @Override + public ExpectedResults getExpectedTraceLinkResults() { + return expectedTraceLinkResults; + } + + @Override + public ExpectedResults getExpectedInconsistencyResults() { + return expectedInconsistencyResults; + } + + @Override + public String getProjectName() { + return this.name(); + } + + @Override + public SortedSet getResourceNames() { + return new TreeSet<>(resourceNames); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java new file mode 100644 index 000000000..5326f540d --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -0,0 +1,233 @@ +/* Licensed under MIT 2021-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; + +/** + * This enum captures the different case studies that are used for evaluation in the integration tests. + */ +public enum Project implements GoldStandardProject { + MEDIASTORE(// + "MS", // + "/benchmark/mediastore/model_2016/pcm/ms.repository", // + "/benchmark/mediastore/text_2016/mediastore.txt", // + "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv", // + "/configurations/ms/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv", // + new ExpectedResults(.999, .620, .765, .978, .778, .999), // + new ExpectedResults(.127, .793, .220, .685, .227, .679) // + ), // + TEASTORE( // + "TS", // + "/benchmark/teastore/model_2020/pcm/teastore.repository", // + "/benchmark/teastore/text_2020/teastore.txt", // + "/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020.csv", // + "/configurations/ts/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020_UME.csv", // + new ExpectedResults(.999, .740, .850, .984, .853, .999), // + new ExpectedResults(.950, .703, .808, .980, .808, .998) // + ), // + TEAMMATES( // + "TM", // + "/benchmark/teammates/model_2021/pcm/teammates.repository", // + "/benchmark/teammates/text_2021/teammates.txt", // + "/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv", // + "/configurations/tm/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // + new ExpectedResults(.555, .882, .681, .965, .688, .975), // + new ExpectedResults(.147, .745, .245, .852, .287, .856) // + ), // + BIGBLUEBUTTON( // + "BBB", "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // + "/benchmark/bigbluebutton/text_2021/bigbluebutton.txt", // + "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021.csv", // + "/configurations/bbb/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // + new ExpectedResults(.875, .826, .850, .985, .835, .985), // + new ExpectedResults(.666, .461, .545, .960, .535, .988) // + ), // + JABREF( // + "JR", "/benchmark/jabref/model_2021/pcm/jabref.repository", // + "/benchmark/jabref/text_2021/jabref.txt", // + "/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv", // + "/configurations/jabref/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt + "/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // + new ExpectedResults(.899, .999, .946, .973, .932, .966), // + new ExpectedResults(1.0, .444, .615, .871, .617, 1.0) // + ); + + private static final Logger logger = LoggerFactory.getLogger(Project.class); + + private final String alias; + private final String model; + private final String textFile; + private final String configurationsFile; + private final String goldStandardTraceabilityLinkRecovery; + private final String goldStandardMissingTextForModelElement; + private final ExpectedResults expectedTraceLinkResults; + private final ExpectedResults expectedInconsistencyResults; + private final SortedSet resourceNames; + + Project(String alias, String model, String textFile, String goldStandardTraceabilityLinkRecovery, String configurationsFile, + String goldStandardMissingTextForModelElement, ExpectedResults expectedTraceLinkResults, ExpectedResults expectedInconsistencyResults) { + this.alias = alias; + this.model = model; + this.textFile = textFile; + this.configurationsFile = configurationsFile; + this.goldStandardTraceabilityLinkRecovery = goldStandardTraceabilityLinkRecovery; + this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; + this.expectedTraceLinkResults = expectedTraceLinkResults; + this.expectedInconsistencyResults = expectedInconsistencyResults; + resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, + goldStandardMissingTextForModelElement)); + } + + @Override + public String getAlias() { + return alias; + } + + @Override + public File getModelFile() { + return ProjectHelper.loadFileFromResources(model); + } + + @Override + public String getModelResourceName() { + return model; + } + + @Override + public File getModelFile(ArchitectureModelType modelType) { + return switch (modelType) { + case PCM -> getModelFile(); + case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); + case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + }; + } + + @Override + public String getModelResourceName(ArchitectureModelType modelType) { + return switch (modelType) { + case PCM -> model; + case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); + case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + }; + } + + @Override + public File getTextFile() { + return ProjectHelper.loadFileFromResources(textFile); + } + + @Override + public String getTextResourceName() { + return textFile; + } + + @Override + public SortedMap getAdditionalConfigurations() { + return ConfigurationHelper.loadAdditionalConfigs(getAdditionalConfigurationsFile()); + } + + @Override + public File getAdditionalConfigurationsFile() { + return ProjectHelper.loadFileFromResources(this.configurationsFile); + } + + @Override + public String getAdditionalConfigurationsResourceName() { + return configurationsFile; + } + + @Override + public File getTlrGoldStandardFile() { + return ProjectHelper.loadFileFromResources(goldStandardTraceabilityLinkRecovery); + } + + @Override + public String getTlrGoldStandardResourceName() { + return goldStandardTraceabilityLinkRecovery; + } + + @Override + public ImmutableList getTlrGoldStandard() { + var path = Paths.get(this.getTlrGoldStandardFile().toURI()); + List goldLinks = Lists.mutable.empty(); + try { + goldLinks = Files.readAllLines(path); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + goldLinks.removeFirst(); + goldLinks.removeIf(String::isBlank); + return Lists.immutable.ofAll(goldLinks); + } + + @Override + public GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { + return new GoldStandard(getTlrGoldStandardFile(), architectureModel); + } + + @Override + public MutableList getMissingTextForModelElementGoldStandard() { + var path = Paths.get(this.getMissingTextForModelElementGoldStandardFile().toURI()); + List goldLinks = Lists.mutable.empty(); + try { + goldLinks = Files.readAllLines(path); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + goldLinks.remove("missingModelElementID"); + goldLinks.removeIf(String::isBlank); + return Lists.mutable.ofAll(goldLinks); + } + + @Override + public File getMissingTextForModelElementGoldStandardFile() { + return ProjectHelper.loadFileFromResources(goldStandardMissingTextForModelElement); + } + + @Override + public String getMissingTextForModelElementGoldStandardResourceName() { + return goldStandardMissingTextForModelElement; + } + + @Override + public ExpectedResults getExpectedTraceLinkResults() { + return expectedTraceLinkResults; + } + + @Override + public ExpectedResults getExpectedInconsistencyResults() { + return expectedInconsistencyResults; + } + + @Override + public String getProjectName() { + return this.name(); + } + + @Override + public SortedSet getResourceNames() { + return new TreeSet<>(resourceNames); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java new file mode 100644 index 000000000..009099a68 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java @@ -0,0 +1,42 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; + +/** + * Helper class for {@link GoldStandardProject} implementations. + */ +public class ProjectHelper { + + private ProjectHelper() { + throw new IllegalAccessError(); + } + + /** + * Load a resource to a temporary file + * + * @param resource the resource path + * @return the file if loaded or null if not possible + */ + public static File loadFileFromResources(String resource) { + InputStream is = ProjectHelper.class.getResourceAsStream(resource); + if (is == null) + throw new IllegalArgumentException("Resource not found: " + resource); + try { + File temporaryFile = File.createTempFile("ArDoCo", ".tmp"); + temporaryFile.deleteOnExit(); + try (FileOutputStream fos = new FileOutputStream(temporaryFile)) { + try (is) { + is.transferTo(fos); + } + } + return temporaryFile; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java new file mode 100644 index 000000000..0db56b3a5 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java @@ -0,0 +1,134 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval.results; + +import java.util.List; +import java.util.Locale; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + +import edu.kit.kastel.mcse.ardoco.metrics.result.SingleClassificationResult; + +public record EvaluationResults(SingleClassificationResult classificationResult) { + + public String toRow() { + return String.format(Locale.ENGLISH, """ + %4s & %4s & %4s & %4s & %4s & %4s & %4s + %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f""", "P", "R", "F1", "Acc", "Spec", "Phi", "PhiN", precision(), recall(), f1(), accuracy(), + specificity(), phiCoefficient(), phiOverPhiMax()); + } + + public String toRow(String headerKey, String headerVal) { + return String.format(Locale.ENGLISH, """ + %10s & %4s & %4s & %4s & %4s & %4s & %4s & %4s + %10s & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f""", headerKey, "P", "R", "F1", "Acc", "Spec", "Phi", "PhiN", headerVal, + precision(), recall(), f1(), accuracy(), specificity(), phiCoefficient(), phiOverPhiMax()); + } + + @Override + public String toString() { + return String.format(Locale.ENGLISH, """ + \tPrecision:%8.2f + \tRecall:%11.2f + \tF1:%15.2f + \tAccuracy:%9.2f + \tSpecificity:%6.2f + \tPhi Coef.:%8.2f + \tPhi/PhiMax:%7.2f (Phi Max: %.2f) + %s""", precision(), recall(), f1(), accuracy(), specificity(), phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow()); + } + + public String getResultStringWithExpected(ExpectedResults expectedResults) { + return String.format(Locale.ENGLISH, """ + \tPrecision:%8.2f (min. expected: %.2f) + \tRecall:%11.2f (min. expected: %.2f) + \tF1:%15.2f (min. expected: %.2f) + %s""", precision(), expectedResults.precision(), recall(), expectedResults.recall(), f1(), expectedResults.f1(), toRow()); + } + + public String getExtendedResultStringWithExpected(ExpectedResults expectedResults) { + StringBuilder outputBuilder = new StringBuilder(); + outputBuilder.append(String.format(Locale.ENGLISH, """ + \tPrecision:%8.2f (min. expected: %.2f) + \tRecall:%11.2f (min. expected: %.2f) + \tF1:%15.2f (min. expected: %.2f)""", precision(), expectedResults.precision(), recall(), expectedResults.recall(), f1(), expectedResults + .f1())); + outputBuilder.append(String.format(Locale.ENGLISH, """ + + \tAccuracy:%9.2f (min. expected: %.2f) + \tSpecificity:%6.2f (min. expected: %.2f)""", accuracy(), expectedResults.accuracy(), specificity(), expectedResults.specificity())); + outputBuilder.append(String.format(Locale.ENGLISH, """ + + \tPhi Coef.:%8.2f (min. expected: %.2f) + \tPhi/PhiMax:%7.2f (Phi Max: %.2f) + %s""", phiCoefficient(), expectedResults.phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow())); + return outputBuilder.toString(); + } + + public String getExplicitResultString() { + return String.format(Locale.ENGLISH, """ + \tTP:%15d + \tFP:%15d + \tTN:%15d + \tFN:%15d + \tP:%16d + \tN:%16d""", truePositives().size(), falsePositives().size(), trueNegatives(), falseNegatives().size(), truePositives() + .size() + falseNegatives().size(), trueNegatives() + falsePositives().size()); + } + + public ImmutableList getFound() { + MutableList found = Lists.mutable.empty(); + found.addAll(classificationResult.getTruePositives()); + found.addAll(classificationResult.getFalsePositives()); + return found.toImmutable(); + } + + public double precision() { + return classificationResult.getPrecision(); + } + + public double recall() { + return classificationResult.getRecall(); + } + + public double f1() { + return classificationResult.getF1(); + } + + public double accuracy() { + return classificationResult.getAccuracy(); + } + + public double specificity() { + return classificationResult.getSpecificity(); + } + + public double phiCoefficient() { + return classificationResult.getPhiCoefficient(); + } + + public double phiOverPhiMax() { + return classificationResult.getPhiOverPhiMax(); + } + + public double phiCoefficientMax() { + return classificationResult.getPhiCoefficientMax(); + } + + public List truePositives() { + return classificationResult.getTruePositives().stream().toList(); + } + + public List falsePositives() { + return classificationResult.getFalsePositives().stream().toList(); + } + + public List falseNegatives() { + return classificationResult.getFalseNegatives().stream().toList(); + } + + public int trueNegatives() { + return classificationResult.getTrueNegatives(); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java new file mode 100644 index 000000000..37d2c6dfe --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java @@ -0,0 +1,24 @@ +/* Licensed under MIT 2022-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval.results; + +import java.io.Serializable; + +import com.google.errorprone.annotations.Immutable; + +/** + * This record represents expected results for an evaluation + * + * @param precision the expected precision + * @param recall the expected recall + * @param f1 the expected F1 score + * @param accuracy the expected accuracy + * @param phiCoefficient the expected Phi Coefficient + * @param specificity the expected specificity + */ +@Immutable +public record ExpectedResults(double precision, double recall, double f1, double accuracy, double phiCoefficient, double specificity) implements Serializable { + + public ExpectedResults(double precision, double recall, double f1) { + this(precision, recall, f1, .0, .0, .0); + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java new file mode 100644 index 000000000..91dc84dd8 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java @@ -0,0 +1,73 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval.results.calculator; + +import java.util.List; + +import org.eclipse.collections.api.factory.Sets; +import org.eclipse.collections.api.list.ImmutableList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.EvaluationResults; +import edu.kit.kastel.mcse.ardoco.metrics.ClassificationMetricsCalculator; +import edu.kit.kastel.mcse.ardoco.metrics.result.AggregatedClassificationResult; +import edu.kit.kastel.mcse.ardoco.metrics.result.AggregationType; +import edu.kit.kastel.mcse.ardoco.metrics.result.SingleClassificationResult; + +/** + * This utility class provides methods to form the average of several {@link EvaluationResults} + */ +public final class ResultCalculatorUtil { + private static final Logger logger = LoggerFactory.getLogger(ResultCalculatorUtil.class); + + private ResultCalculatorUtil() { + throw new IllegalAccessError(); + } + + public static EvaluationResults calculateMacroAverageResults(ImmutableList> results) { + var averages = getAverages(results); + if (averages == null) + return null; + + var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.MACRO_AVERAGE).findFirst().orElseThrow(); + return evaluationResults(macroAverage); + } + + public static EvaluationResults calculateWeightedAverageResults(ImmutableList> results) { + var averages = getAverages(results); + if (averages == null) + return null; + + var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.WEIGHTED_AVERAGE).findFirst().orElseThrow(); + return evaluationResults(macroAverage); + } + + public static EvaluationResults calculateMicroAverageResults(ImmutableList> results) { + var averages = getAverages(results); + if (averages == null) + return null; + + var microAverage = averages.stream().filter(it -> it.getType() == AggregationType.MICRO_AVERAGE).findFirst().orElseThrow(); + return evaluationResults(microAverage); + } + + private static EvaluationResults evaluationResults(AggregatedClassificationResult average) { + var weightedAverageAsSingle = new SingleClassificationResult(Sets.mutable.empty(), Sets.mutable.empty(), Sets.mutable.empty(), null, average + .getPrecision(), average.getRecall(), average.getF1(), average.getAccuracy(), average.getSpecificity(), average.getPhiCoefficient(), average + .getPhiCoefficientMax(), average.getPhiOverPhiMax()); + + return new EvaluationResults<>(weightedAverageAsSingle); + } + + private static List getAverages(ImmutableList> results) { + if (results.isEmpty()) { + throw new IllegalArgumentException("No results to calculate average from"); + } + + var calculator = ClassificationMetricsCalculator.getInstance(); + var classifications = results.stream().map(EvaluationResults::classificationResult).toList(); + + return calculator.calculateAverages(classifications, null); + } + +} diff --git a/tests-base/src/main/resources/benchmark/.github/CODEOWNERS b/tests-base/src/main/resources/benchmark/.github/CODEOWNERS new file mode 100644 index 000000000..5acf27934 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/.github/CODEOWNERS @@ -0,0 +1 @@ +* @Gram21 @dfuchss @Hossiphi \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/.gitignore b/tests-base/src/main/resources/benchmark/.gitignore new file mode 100644 index 000000000..0116940e8 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/.gitignore @@ -0,0 +1,111 @@ + +tmp* + +.vscode/* + +### ignore log files +*.log + +### +catalog-v*.xml + +###Java### + +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + +###WikiDumps### +out*.txt +enwiki*.xml + + +###Eclipse### + +*.pydevproject +.metadata +.gradle +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + + +###OSX### + +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +###Maven### + +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +.classpath +.project +Pipeline/src/main/resources/texts/ +Pipeline/evaluations/ +Pipeline/ecsaEvaluations/ +pipeline/src/main/resources/evaluations/ + +# jetbrains config +.idea + +*.iml \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/DiagramSchema.json b/tests-base/src/main/resources/benchmark/DiagramSchema.json new file mode 100644 index 000000000..a3c32427f --- /dev/null +++ b/tests-base/src/main/resources/benchmark/DiagramSchema.json @@ -0,0 +1,157 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "diagrams": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Diagram" + } + } + }, + "definitions": { + "Diagram": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "boxes": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Box" + } + } + }, + "required": [ + "path", + "boxes" + ] + }, + "Box": { + "type": "object", + "properties": { + "boundingBox": { + "$ref": "#/definitions/BoundingBox" + }, + "textBoxes": { + "type": "array", + "items": { + "$ref": "#/definitions/TextBox" + } + }, + "subBoxes": { + "type": "array", + "items": { + "$ref": "#/definitions/Box" + } + }, + "tracelinks": { + "type": "array", + "items": { + "$ref": "#/definitions/TraceLinkSet" + } + } + }, + "required": [ + "boundingBox", + "textBoxes", + "subBoxes", + "tracelinks" + ] + }, + "TextBox": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "boundingBox": { + "$ref": "#/definitions/BoundingBox" + } + }, + "required": [ + "text", + "boundingBox" + ] + }, + "TraceLinkSet": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "sentences": { + "type": "array", + "items": { + "type": "integer" + } + }, + "typedTracelinks": { + "type": "array", + "items": { + "$ref": "#/definitions/TypedTraceLink" + } + } + }, + "required": [ + "name", + "sentences" + ] + }, + "BoundingBox": { + "type": "object", + "properties": { + "x": { + "type": "integer" + }, + "y": { + "type": "integer" + }, + "w": { + "type": "integer" + }, + "h": { + "type": "integer" + } + }, + "required": [ + "x", + "y", + "w", + "h" + ] + }, + "TypedTraceLink": { + "type": "object", + "properties": { + "sentences": { + "type": "array" + }, + "traceType": { + "$ref": "#/definitions/TraceType" + } + }, + "required": [ + "sentences", + "traceType" + ] + }, + "TraceType": { + "type": "string", + "enum": [ + "ENTITY", + "ENTITY_COREFERENCE", + "OTHER_ENTITY", + "COMMON_NOUN", + "SHARED_STEM", + "UNCERTAIN" + ] + } + }, + "required": [ + "diagrams" + ] +} diff --git a/tests-base/src/main/resources/benchmark/LICENSE b/tests-base/src/main/resources/benchmark/LICENSE new file mode 100644 index 000000000..da6783319 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Sophie Corallo, Dominik Fuchß, Jan Keim + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tests-base/src/main/resources/benchmark/README.md b/tests-base/src/main/resources/benchmark/README.md new file mode 100644 index 000000000..1b7ead976 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/README.md @@ -0,0 +1,53 @@ +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6966831.svg)](https://doi.org/10.5281/zenodo.6966831) + +# Benchmark +This repository contains a benchmark for traceability link recovery (TLR) between textual Software Architecture Documentation (SAD) and Software Architecture Models (SAM). +It was initially published in the paper [Establishing a Benchmark Dataset for Traceability Link Recovery Between Software Architecture Documentation and Models](https://doi.org/10.1007/978-3-031-36889-9_30). + +Each project of the benchmark is structured as follows: + +* The README of each project contains some information about the used languages and lines of code created with [cloc](https://github.com/AlDanial/cloc). +* The folder `model_` contains the architecture model of the project. + * The folder `pcm` contains a Palladio Component Model (PCM) of the system. It has at least the repository view (components) of the system. + * The folder `uml` contains a Papyrus UML model. It is created from the PCM Repository using [PCM2UML](https://github.com/InFormALin/PCM2UML). + * The folder `code` contains a code model. The version of the code is stated in a README.md next to the model. The model is an `ArDoCo Code Model`. The model can be loaded using the [ArDoCo Code Extractor](https://github.com/ArDoCo/Core/blob/main/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/code/CodeExtractor.java#L47). +* The folder `text_` contains a documentation of the project. + * The text file(s) in the project folder contains the SAD of the projects as plain text. +* The folder `diagrams_` contains the informal diagrams of the project. +* The folder `goldstandards` contains all gold standards for the project. In the following, the `` refers to the year of the artifact. Additional classifiers are added to the end of the file names. You will find more information about these classifiers in the README of the respective project artifacts. + * The file `goldstandard_sad_-sam_.csv` contains the traceability links between SAD and SAM. It links the model elements by id with the sentences by their number + * The file `goldstandard_sad_-sam__UME.csv` contains all IDs of model elements that are contained in the model but not described in the text. + * The file `goldstandard_sad__code_.csv` contains the traceability links between SAD and code models. + * The file `goldstandard_sam_-code_.csv` is a gold standard for mapping the architecture elements and code elements. + * The file `goldstandard_sad_id_.json` contains the traceability links between SAD and informal diagrams. The JSON schema is specified in the [DiagramSchema](DiagramSchema.json) file. + + + +## Using the benchmark +In order to provide an easy approach to use the benchmark, we provide an example TLR approach called [Simple Tracelink Discovery (STD)](https://github.com/ArDoCo/SimpleTracelinkDiscovery/) that uses this benchmark in its [evaluation](https://github.com/ArDoCo/SimpleTracelinkDiscovery/tree/main/src/test/java/io/github/ardoco/simpletracelinkdiscovery/eval). +Therefore, the benchmark is linked to the STD repository via a [git subtree](https://github.com/ArDoCo/SimpleTracelinkDiscovery/tree/main/src/test/resources/benchmark). + +## Projects + +### BigBlueButton +BigBlueButton (BBB) is a non-scientific application that provides a web conferencing system with the focus on creating a "global teaching platform". + +### MediaStore +MediaStore is a "model application built after the iTunes Store". +Its architecture was used for exemplary performance analyses on software architecture models. + +### Teammates +TEAMMATES is an open-source "online tool for manageing peer evaluations and other feedback paths of your students". + +### Teastore +Teastore is a scientific application that is used as a "micro-service reference test application". + +### JabRef +JabRef is a tool to manage citations and references in your bibliographies. It has features to collect, organize, cite, and share research work. + + +## LICENSE +> **Note** +> +> Our LICENSE does only apply to the models and the Gold Standards (CSV & JSON files). The texts and diagrams are licensed w.r.t. to the actual projects. +> More details about the LICENSE can be found in the README files of the respective texts and diagrams. diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/README.md b/tests-base/src/main/resources/benchmark/bigbluebutton/README.md new file mode 100644 index 000000000..8650c362d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/README.md @@ -0,0 +1,34 @@ +# BigBlueButton Statistics (cloc) +``` +-------------------------------------------------------------------------------- +Language files blank comment code +-------------------------------------------------------------------------------- +JSON 84 182 0 100980 +JavaScript 949 10983 10387 68930 +JSX 342 5919 1382 47177 +CSS 39 3350 1079 28297 +Scala 421 4861 2439 22317 +Java 379 5058 5219 21372 +XML 62 494 1301 20119 +Ruby 60 1443 1667 6588 +Bourne Shell 148 1133 615 3556 +Groovy 18 589 516 3116 +Bourne Again Shell 9 448 484 2308 +YAML 14 54 345 1147 +SVG 20 8 16 1065 +HTML 8 138 129 762 +Markdown 19 256 0 580 +Python 2 110 64 512 +Scheme 6 86 0 381 +Maven 2 9 23 240 +Gradle 4 21 8 159 +DOS Batch 2 44 4 130 +SQL 1 8 0 67 +ERB 1 2 0 33 +Cucumber 2 5 0 21 +Dockerfile 1 2 0 13 +TOML 1 0 1 2 +-------------------------------------------------------------------------------- +SUM: 2594 35203 25679 329872 +-------------------------------------------------------------------------------- +``` diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/README.md b/tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/README.md new file mode 100644 index 000000000..919535ec5 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/README.md @@ -0,0 +1 @@ +[Source](https://github.com/bigbluebutton/bigbluebutton.github.io/blob/25582d381a27557d5e308f30a6e94a603b7438ba/_posts/2015-04-04-09architecture.md) diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/bbb-arch-overview.png b/tests-base/src/main/resources/benchmark/bigbluebutton/diagrams_2015/bbb-arch-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..343384fe1b5af2f496b69e754e203a54dacfdeb9 GIT binary patch literal 32898 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 z zv0D9jNP>C^lxfm5dQ)0k&wN!hbB(U1s%yL?DpdZGXT9CwA7|;ww4E2lVQZE1|#wl8jDz zSKB|hq4xf#uUqe9w%pq#69yLO>j$hr^u-c?3s)WZTbQvFLZLJ}V9|f<)d$J2SK|5w zKpxmsF62bWaOg;dJ3Efzo-70@28JuM-T_#MdzNq9?`-?@Y!_f2{vIm{g7qGncf$8y zYj*PO-DRFie)Uj3F?9uviu#I;lg~h3x6&bwYmO>=i zwg2w8Rqjkl#92!Vj@YiZfOS167VR)~S}oP`oMrfdpq`D_@+o~u-R4nI*?xYo!TbcQ zJ8>htWwg7DG z2v8*&I(Mj{g=W>c2Z2B|b)*-miy2n%}@X#jkM#F`bwL zmTg;U>#-BIY})$XPn94?-U(Z&Clt0ex_+kr{q03L&{g@}33ev6JT@*8xN!A#KP{Cr z8af`atRcGlJC$&V{T|9y1EJjbxqN*)(I1rOLe*UTPNEnz6*gtJ4XT?R5I% zD*`i&DGsRs%2YU;;gp|zztrE~>P%U7wNAP6qfj6qa`-C>t@@_B8`JQer&-?XLh}}A zK&@UVid0Rxxf#v!Ib?)F5H^CwXI7Aiv%)l$jMb|ZK%g9z3!enIC${ZuB7yk9OCxnl zQp$%z9wt^riH6;B_AS`PYO9$2W^ke3)< z>F`<{?|${i_!XVwp9D6!^{&X$WQv6DJidtcRi&QS7I?2geFiwsZLO?xhdUm!_f9!% zm~LFLKu`O`-r z9Vc*PWUXGL_Q^&@YstZf4|}}z+Ru5!rdUM$J)^_sjNv+KgI!XPqe|Xl!e>2VpZ*su z__-X>|E>j(pYfq?u=xCgoc`mD*+rl-Ux=U03Icy*<>ycD2wAe0*e#`##FVwuy7+kU zc7N^;HSV#;Sz%RsN+OZwUQK(Tt>q8}jww&v71ztY@qH#ugmKW!!5#JGIPvzvo^luHtYSx(90C=+~6v_5$8Cn@PTWxA^^{;S5JG*SGnTxQJ%5Os>tGbTIAyY7P<_ zam$j&9Ur1nhWK;wnbqs}7Iysib6TCE!J~&|7LMX~@=nUi*1BnZv0nPHXK4xYJ03E< zXlZrwv~Uvewk|0~1w*O$*rH=N^M`bKj_YaJ216Jmrwo(POX;e5R=0#%MkS}sSSz01 z>Ab7PJ2o!pDS4Z|r*Y3FRdO@(0PE-0WcZ&%&w!aMWzC^VTRY*urw$)Z&%T=vL@#}5 zWU=t;A^KC-d1P_QsH0DrZ_RtTG^NGn3r61z-9)$*y3nnBiuP6$58-Alh4;Va;?)Vn zwy*AE!FMe+;N#IzY3*^n3M<|rDFP)xkZ{u%U}=Uk>-kq!5l9p^v1PE6{Zpye-x!T9 zse&CGH74@D0VFk!yk?m=Pom68DaMsPpW5a`d;C&e!AIHndi59LjH}qkR^!M6j84&=hLwu|vt^xut-n2UT z5f;)ALb%!)P$-gg9{|-oHELKp@LtUzBCJdDuLl_kh9@Hv;o3vBUp5-_x#tG>7237T zwOX%*4t0LsA6JoM$p>w^WbA36tw`s9w+Cuk61j)^ysv3cUCPtiQ?~L;)rdV2ul}uE zv64mZo^b?(Xushms~p}u@T8M&DYWI{*c?V{*OC6bR6<$W%#F$K&8Osw^gxP_UjeYWKfJtdEc|rKO`) znWBp@pOt2>rE&jg^`C-NZVd-E<4J1a^;S07wc(JlXg9w=jWu#`L#l`As^}Gf_{~h8 z3#DYwOehnva5EuNjS5m3+t~E1-GTHack@lqGLB^)FAJza5N3%(-h*WLS5lXI zxV1h^ZB4U^CyceyYj#!TW76HA}Hxr^nS_!}9cXTNhF*r>NO&5y@FXBZ8pkSmL zZh|F7QUr3q2@j`w6<)2v%}KZp+-#%?V4l#QwPc2*GtXYM&d&7n|4_$j7GD^1Yh4cQ zTE2HKa`$~)*bHLTj}NVc_%wFU9DM6_wY{U@=3>lYwe1X_;+F+#1Y&|F<*O0ro;>o- zBV1if%9Ht^`EPGrF7D$k7NwvbuRZzQqYrBm-YyHdR*=dmf%{)u%YyWiTq^0c#9Cd1 z6EOkT3r*{s)z()q)iE-Sutv|q+swtrTGg5+YJ1E*ULV>tMy5G5GK5u?aco0yD0|Ax zTA><8sAZ78+^#J4KEqypgy4+dvb>r&`e@)6YPWbBb4;YC`0Q}+bW@b0e-)}d8xy#Q>YK=Brz$-0t}JL*lvYfY8rsuG zET9xBm{U8I2mSCTsqfHQm+~|A@7usKf%}#vZU7&j-qgpN6y#3il7D>-RPzoR%!$q_KH#M4OR>c5n8m z&njEls!VGs3Gx>J52A(>lxg*eFbUZf#oyx;+}Tl?oHqcXxqu;PEn>sPG`J z>}1>cVQEtZQ|o-<(~&^u^+YGfHZxd5BO0$DT|N(#3cS_tdb4Hr5Nnkj0K|S?-4{eW zf}igJUXj#y0re6w>%wCib*_g}e^&!9Enxh)kob%;PdA5oNAcRvY5Lz*su)_tesLtA zB=N_`EsppSx^pRsZgj-VkJD%6hB9DZ%W}B`H?^umE*c_O73@_<)6nTL)|kSWIU?A! zVQ8*pCfoOg+DITBK`q?$0{W(OwqjnqA*p&&!)_7#f#K&LUN${mWp2&9NSZ>SO>jyw z)!D>}c`doe&6B3+>(H%(`%7Gl zV5-H?i1px6%fgUX)X!+`;&Upb0}wCCn>lU8t%a3Ut*o?@>@N?Ls$%%;tKi&1FUt&ky zh(+y<8v0cwU~g+em*Tw(Z!<#8#u7zJn$gD;#9QQqfcL@-B{iss$Z*ou!BOM{qN&g0 zO+KvVJ(9eqiNKkXwkllGiCZGNgd05U8qA);)$#73F>e(35tG_|Rq(6<_(J+9l*nRW zN7N_ERizR4+OB#^%sXYFVuaQczD<%+O`*e`dW~Zq!}Cg`VeyEy0eCNt7C-Yg=D_5T3W7fRlhqgy6RnB|G>BI|cBYdG z%Yw+YU!*mCvMTV9Kcg{}WR zuo|^9OVCG@Q>Dzz&7(3$p@wfk(sHqkl)T`lAfRJ$ovrOPcw&C;>44oBz6X`LDP^*fLdGDrn+0?YBf&I$CT@ z_Dx#`YS(CSXnVXlCI_g?*?cKhZRLhQ8NM#NUQ|_b1Yo)gAp}+6>Ltf>3irN2uB23u z^O6=H^psxbMLavTvCwLcVb;#odrcMsF9llXk4rTWZTw95&kUI0hkueSUDjFPZYh;I z`dTv*88ltS+o98bSUco}H0u?0(Mf?{ue0_2^&!;ip8H{m9^u%;Z`0M2+lM%^bEl)G zr|*Wlpd8bIw^0ey?lmTODluIWcm#fABa1{z#T?eX3tHQfNm>;_&bdMN`;_hN(W!g=78-}{#TQztWXZjElT zyuoht_e{Zd5Gchl(_oxPUe-Ihac&X{j{f-2XXQC{^X2*FpFnq<2FLeuido`{yVn%7 zUl+gJo1C- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/model_2021/uml/bbb.uml b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2021/uml/bbb.uml new file mode 100644 index 000000000..11266969e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2021/uml/bbb.uml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/README.md b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/README.md new file mode 100644 index 000000000..6cb2fa8c7 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/README.md @@ -0,0 +1,2 @@ +# BigBlueButton Code Model +The code that was used is located at https://github.com/ArDoCo/bigbluebutton/commit/8fa2507d6c3865a9850004fd6fefd09738e68406 diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/codeModel.acm b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/codeModel.acm new file mode 100644 index 000000000..8fb0b47e6 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/model_2023/code/codeModel.acm @@ -0,0 +1,33720 @@ +{ + "id" : "acm006389jsd", + "codeItemRepository" : { + "repository" : { + "acm001337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001337jsd", + "name" : "Bezier", + "parentId" : "acm001342jsd", + "content" : [ "acm001379jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001338jsd" : { + "type" : "CodePackage", + "id" : "acm001338jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001339jsd", "acm005657jsd" ] + }, + "acm001339jsd" : { + "type" : "CodePackage", + "id" : "acm001339jsd", + "name" : "bigbluebutton", + "parentId" : "acm001338jsd", + "content" : [ "acm006099jsd", "acm006115jsd", "acm006124jsd", "acm006132jsd", "acm006137jsd", "acm001340jsd", "acm001571jsd", "acm001576jsd", "acm002205jsd", "acm002337jsd", "acm004627jsd", "acm004750jsd", "acm004768jsd", "acm005474jsd", "acm006148jsd" ] + }, + "acm001340jsd" : { + "type" : "CodePackage", + "id" : "acm001340jsd", + "name" : "core", + "parentId" : "acm001339jsd", + "content" : [ "acm001341jsd" ] + }, + "acm001341jsd" : { + "type" : "CodePackage", + "id" : "acm001341jsd", + "name" : "util", + "parentId" : "acm001340jsd", + "content" : [ "acm001342jsd" ] + }, + "acm001342jsd" : { + "type" : "CodePackage", + "id" : "acm001342jsd", + "name" : "jhotdraw", + "parentId" : "acm001341jsd", + "content" : [ "acm001337jsd", "acm001380jsd", "acm001468jsd", "acm001482jsd", "acm001493jsd", "acm001543jsd", "acm001551jsd", "acm001559jsd" ] + }, + "acm001343jsd" : { + "type" : "ControlElement", + "id" : "acm001343jsd", + "name" : "Bezier" + }, + "acm001344jsd" : { + "type" : "ControlElement", + "id" : "acm001344jsd", + "name" : "fitBezierPath" + }, + "acm001345jsd" : { + "type" : "ControlElement", + "id" : "acm001345jsd", + "name" : "fitBezierPath" + }, + "acm001346jsd" : { + "type" : "ControlElement", + "id" : "acm001346jsd", + "name" : "fitBezierPath" + }, + "acm001347jsd" : { + "type" : "ControlElement", + "id" : "acm001347jsd", + "name" : "removeClosePoints" + }, + "acm001348jsd" : { + "type" : "ControlElement", + "id" : "acm001348jsd", + "name" : "removeCoincidentPoints" + }, + "acm001349jsd" : { + "type" : "ControlElement", + "id" : "acm001349jsd", + "name" : "splitAtCorners" + }, + "acm001350jsd" : { + "type" : "ControlElement", + "id" : "acm001350jsd", + "name" : "findCorners" + }, + "acm001351jsd" : { + "type" : "ControlElement", + "id" : "acm001351jsd", + "name" : "reduceNoise" + }, + "acm001352jsd" : { + "type" : "ControlElement", + "id" : "acm001352jsd", + "name" : "fitCubic" + }, + "acm001353jsd" : { + "type" : "ControlElement", + "id" : "acm001353jsd", + "name" : "addCurveTo" + }, + "acm001354jsd" : { + "type" : "ControlElement", + "id" : "acm001354jsd", + "name" : "computeLeftTangent" + }, + "acm001355jsd" : { + "type" : "ControlElement", + "id" : "acm001355jsd", + "name" : "computeRightTangent" + }, + "acm001356jsd" : { + "type" : "ControlElement", + "id" : "acm001356jsd", + "name" : "computeCenterTangent" + }, + "acm001357jsd" : { + "type" : "ControlElement", + "id" : "acm001357jsd", + "name" : "chordLengthParameterize" + }, + "acm001358jsd" : { + "type" : "ControlElement", + "id" : "acm001358jsd", + "name" : "reparameterize" + }, + "acm001359jsd" : { + "type" : "ControlElement", + "id" : "acm001359jsd", + "name" : "newtonRaphsonRootFind" + }, + "acm001360jsd" : { + "type" : "ControlElement", + "id" : "acm001360jsd", + "name" : "computeMaxError" + }, + "acm001361jsd" : { + "type" : "ControlElement", + "id" : "acm001361jsd", + "name" : "generateBezier" + }, + "acm001362jsd" : { + "type" : "ControlElement", + "id" : "acm001362jsd", + "name" : "bezierII" + }, + "acm001363jsd" : { + "type" : "ControlElement", + "id" : "acm001363jsd", + "name" : "v2DistanceBetween2Points" + }, + "acm001364jsd" : { + "type" : "ControlElement", + "id" : "acm001364jsd", + "name" : "v2SquaredDistanceBetween2Points" + }, + "acm001365jsd" : { + "type" : "ControlElement", + "id" : "acm001365jsd", + "name" : "v2Scale" + }, + "acm001366jsd" : { + "type" : "ControlElement", + "id" : "acm001366jsd", + "name" : "v2ScaleIII" + }, + "acm001367jsd" : { + "type" : "ControlElement", + "id" : "acm001367jsd", + "name" : "v2Length" + }, + "acm001368jsd" : { + "type" : "ControlElement", + "id" : "acm001368jsd", + "name" : "v2SquaredLength" + }, + "acm001369jsd" : { + "type" : "ControlElement", + "id" : "acm001369jsd", + "name" : "v2Add" + }, + "acm001370jsd" : { + "type" : "ControlElement", + "id" : "acm001370jsd", + "name" : "v2AddII" + }, + "acm001371jsd" : { + "type" : "ControlElement", + "id" : "acm001371jsd", + "name" : "v2Negate" + }, + "acm001372jsd" : { + "type" : "ControlElement", + "id" : "acm001372jsd", + "name" : "v2Dot" + }, + "acm001373jsd" : { + "type" : "ControlElement", + "id" : "acm001373jsd", + "name" : "v2Normalize" + }, + "acm001374jsd" : { + "type" : "ControlElement", + "id" : "acm001374jsd", + "name" : "v2SubII" + }, + "acm001375jsd" : { + "type" : "ControlElement", + "id" : "acm001375jsd", + "name" : "b0" + }, + "acm001376jsd" : { + "type" : "ControlElement", + "id" : "acm001376jsd", + "name" : "b1" + }, + "acm001377jsd" : { + "type" : "ControlElement", + "id" : "acm001377jsd", + "name" : "b2" + }, + "acm001378jsd" : { + "type" : "ControlElement", + "id" : "acm001378jsd", + "name" : "b3" + }, + "acm001379jsd" : { + "type" : "ClassUnit", + "id" : "acm001379jsd", + "name" : "Bezier", + "compilationUnitId" : "acm001337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm001467jsd" ], + "content" : [ "acm001343jsd", "acm001344jsd", "acm001345jsd", "acm001346jsd", "acm001347jsd", "acm001348jsd", "acm001349jsd", "acm001350jsd", "acm001351jsd", "acm001352jsd", "acm001353jsd", "acm001354jsd", "acm001355jsd", "acm001356jsd", "acm001357jsd", "acm001358jsd", "acm001359jsd", "acm001360jsd", "acm001361jsd", "acm001362jsd", "acm001363jsd", "acm001364jsd", "acm001365jsd", "acm001366jsd", "acm001367jsd", "acm001368jsd", "acm001369jsd", "acm001370jsd", "acm001371jsd", "acm001372jsd", "acm001373jsd", "acm001374jsd", "acm001375jsd", "acm001376jsd", "acm001377jsd", "acm001378jsd" ] + }, + "acm001380jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001380jsd", + "name" : "BezierPath", + "parentId" : "acm001342jsd", + "content" : [ "acm001448jsd", "acm001467jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001381jsd" : { + "type" : "CodePackage", + "id" : "acm001381jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001382jsd" ] + }, + "acm001382jsd" : { + "type" : "CodePackage", + "id" : "acm001382jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001383jsd" ] + }, + "acm001383jsd" : { + "type" : "CodePackage", + "id" : "acm001383jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001384jsd" ] + }, + "acm001384jsd" : { + "type" : "CodePackage", + "id" : "acm001384jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001385jsd" ] + }, + "acm001385jsd" : { + "type" : "CodePackage", + "id" : "acm001385jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001380jsd" ] + }, + "acm001386jsd" : { + "type" : "ControlElement", + "id" : "acm001386jsd", + "name" : "Node" + }, + "acm001387jsd" : { + "type" : "ControlElement", + "id" : "acm001387jsd", + "name" : "Node" + }, + "acm001388jsd" : { + "type" : "ControlElement", + "id" : "acm001388jsd", + "name" : "setTo" + }, + "acm001389jsd" : { + "type" : "ControlElement", + "id" : "acm001389jsd", + "name" : "Node" + }, + "acm001390jsd" : { + "type" : "ControlElement", + "id" : "acm001390jsd", + "name" : "Node" + }, + "acm001391jsd" : { + "type" : "ControlElement", + "id" : "acm001391jsd", + "name" : "Node" + }, + "acm001392jsd" : { + "type" : "ControlElement", + "id" : "acm001392jsd", + "name" : "Node" + }, + "acm001393jsd" : { + "type" : "ControlElement", + "id" : "acm001393jsd", + "name" : "getMask" + }, + "acm001394jsd" : { + "type" : "ControlElement", + "id" : "acm001394jsd", + "name" : "setMask" + }, + "acm001395jsd" : { + "type" : "ControlElement", + "id" : "acm001395jsd", + "name" : "setControlPoint" + }, + "acm001396jsd" : { + "type" : "ControlElement", + "id" : "acm001396jsd", + "name" : "getControlPoint" + }, + "acm001397jsd" : { + "type" : "ControlElement", + "id" : "acm001397jsd", + "name" : "moveTo" + }, + "acm001398jsd" : { + "type" : "ControlElement", + "id" : "acm001398jsd", + "name" : "moveTo" + }, + "acm001399jsd" : { + "type" : "ControlElement", + "id" : "acm001399jsd", + "name" : "moveBy" + }, + "acm001400jsd" : { + "type" : "ControlElement", + "id" : "acm001400jsd", + "name" : "clone" + }, + "acm001401jsd" : { + "type" : "ControlElement", + "id" : "acm001401jsd", + "name" : "toString" + }, + "acm001402jsd" : { + "type" : "ControlElement", + "id" : "acm001402jsd", + "name" : "hashCode" + }, + "acm001403jsd" : { + "type" : "ControlElement", + "id" : "acm001403jsd", + "name" : "equals" + }, + "acm001404jsd" : { + "type" : "ControlElement", + "id" : "acm001404jsd", + "name" : "BezierPath" + }, + "acm001405jsd" : { + "type" : "ControlElement", + "id" : "acm001405jsd", + "name" : "add" + }, + "acm001406jsd" : { + "type" : "ControlElement", + "id" : "acm001406jsd", + "name" : "add" + }, + "acm001407jsd" : { + "type" : "ControlElement", + "id" : "acm001407jsd", + "name" : "add" + }, + "acm001408jsd" : { + "type" : "ControlElement", + "id" : "acm001408jsd", + "name" : "addPolyline" + }, + "acm001409jsd" : { + "type" : "ControlElement", + "id" : "acm001409jsd", + "name" : "set" + }, + "acm001410jsd" : { + "type" : "ControlElement", + "id" : "acm001410jsd", + "name" : "get" + }, + "acm001411jsd" : { + "type" : "ControlElement", + "id" : "acm001411jsd", + "name" : "invalidatePath" + }, + "acm001412jsd" : { + "type" : "ControlElement", + "id" : "acm001412jsd", + "name" : "validatePath" + }, + "acm001413jsd" : { + "type" : "ControlElement", + "id" : "acm001413jsd", + "name" : "toGeneralPath" + }, + "acm001414jsd" : { + "type" : "ControlElement", + "id" : "acm001414jsd", + "name" : "toRawPath" + }, + "acm001415jsd" : { + "type" : "ControlElement", + "id" : "acm001415jsd", + "name" : "contains" + }, + "acm001416jsd" : { + "type" : "ControlElement", + "id" : "acm001416jsd", + "name" : "outlineContains" + }, + "acm001417jsd" : { + "type" : "ControlElement", + "id" : "acm001417jsd", + "name" : "intersects" + }, + "acm001418jsd" : { + "type" : "ControlElement", + "id" : "acm001418jsd", + "name" : "getPathIterator" + }, + "acm001419jsd" : { + "type" : "ControlElement", + "id" : "acm001419jsd", + "name" : "getPathIterator" + }, + "acm001420jsd" : { + "type" : "ControlElement", + "id" : "acm001420jsd", + "name" : "contains" + }, + "acm001421jsd" : { + "type" : "ControlElement", + "id" : "acm001421jsd", + "name" : "intersects" + }, + "acm001422jsd" : { + "type" : "ControlElement", + "id" : "acm001422jsd", + "name" : "getBounds2D" + }, + "acm001423jsd" : { + "type" : "ControlElement", + "id" : "acm001423jsd", + "name" : "getBounds" + }, + "acm001424jsd" : { + "type" : "ControlElement", + "id" : "acm001424jsd", + "name" : "contains" + }, + "acm001425jsd" : { + "type" : "ControlElement", + "id" : "acm001425jsd", + "name" : "contains" + }, + "acm001426jsd" : { + "type" : "ControlElement", + "id" : "acm001426jsd", + "name" : "setClosed" + }, + "acm001427jsd" : { + "type" : "ControlElement", + "id" : "acm001427jsd", + "name" : "isClosed" + }, + "acm001428jsd" : { + "type" : "ControlElement", + "id" : "acm001428jsd", + "name" : "clone" + }, + "acm001429jsd" : { + "type" : "ControlElement", + "id" : "acm001429jsd", + "name" : "transform" + }, + "acm001430jsd" : { + "type" : "ControlElement", + "id" : "acm001430jsd", + "name" : "setTo" + }, + "acm001431jsd" : { + "type" : "ControlElement", + "id" : "acm001431jsd", + "name" : "getCenter" + }, + "acm001432jsd" : { + "type" : "ControlElement", + "id" : "acm001432jsd", + "name" : "chop" + }, + "acm001433jsd" : { + "type" : "ControlElement", + "id" : "acm001433jsd", + "name" : "indexOfOutermostNode" + }, + "acm001434jsd" : { + "type" : "ControlElement", + "id" : "acm001434jsd", + "name" : "getPointOnPath" + }, + "acm001435jsd" : { + "type" : "ControlElement", + "id" : "acm001435jsd", + "name" : "getLengthOfPath" + }, + "acm001436jsd" : { + "type" : "ControlElement", + "id" : "acm001436jsd", + "name" : "getRelativePositionOnPath" + }, + "acm001437jsd" : { + "type" : "ControlElement", + "id" : "acm001437jsd", + "name" : "findSegment" + }, + "acm001438jsd" : { + "type" : "ControlElement", + "id" : "acm001438jsd", + "name" : "joinSegments" + }, + "acm001439jsd" : { + "type" : "ControlElement", + "id" : "acm001439jsd", + "name" : "splitSegment" + }, + "acm001440jsd" : { + "type" : "ControlElement", + "id" : "acm001440jsd", + "name" : "moveTo" + }, + "acm001441jsd" : { + "type" : "ControlElement", + "id" : "acm001441jsd", + "name" : "lineTo" + }, + "acm001442jsd" : { + "type" : "ControlElement", + "id" : "acm001442jsd", + "name" : "quadTo" + }, + "acm001443jsd" : { + "type" : "ControlElement", + "id" : "acm001443jsd", + "name" : "curveTo" + }, + "acm001444jsd" : { + "type" : "ControlElement", + "id" : "acm001444jsd", + "name" : "arcTo" + }, + "acm001445jsd" : { + "type" : "ControlElement", + "id" : "acm001445jsd", + "name" : "toPolygonArray" + }, + "acm001446jsd" : { + "type" : "ControlElement", + "id" : "acm001446jsd", + "name" : "setWindingRule" + }, + "acm001447jsd" : { + "type" : "ControlElement", + "id" : "acm001447jsd", + "name" : "getWindingRule" + }, + "acm001448jsd" : { + "type" : "ClassUnit", + "id" : "acm001448jsd", + "name" : "BezierPath", + "compilationUnitId" : "acm001380jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm001467jsd", "acm001481jsd", "acm001558jsd" ], + "content" : [ "acm001386jsd", "acm001387jsd", "acm001388jsd", "acm001389jsd", "acm001390jsd", "acm001391jsd", "acm001392jsd", "acm001393jsd", "acm001394jsd", "acm001395jsd", "acm001396jsd", "acm001397jsd", "acm001398jsd", "acm001399jsd", "acm001400jsd", "acm001401jsd", "acm001402jsd", "acm001403jsd", "acm001404jsd", "acm001405jsd", "acm001406jsd", "acm001407jsd", "acm001408jsd", "acm001409jsd", "acm001410jsd", "acm001411jsd", "acm001412jsd", "acm001413jsd", "acm001414jsd", "acm001415jsd", "acm001416jsd", "acm001417jsd", "acm001418jsd", "acm001419jsd", "acm001420jsd", "acm001421jsd", "acm001422jsd", "acm001423jsd", "acm001424jsd", "acm001425jsd", "acm001426jsd", "acm001427jsd", "acm001428jsd", "acm001429jsd", "acm001430jsd", "acm001431jsd", "acm001432jsd", "acm001433jsd", "acm001434jsd", "acm001435jsd", "acm001436jsd", "acm001437jsd", "acm001438jsd", "acm001439jsd", "acm001440jsd", "acm001441jsd", "acm001442jsd", "acm001443jsd", "acm001444jsd", "acm001445jsd", "acm001446jsd", "acm001447jsd" ] + }, + "acm001449jsd" : { + "type" : "ControlElement", + "id" : "acm001449jsd", + "name" : "Node" + }, + "acm001450jsd" : { + "type" : "ControlElement", + "id" : "acm001450jsd", + "name" : "Node" + }, + "acm001451jsd" : { + "type" : "ControlElement", + "id" : "acm001451jsd", + "name" : "setTo" + }, + "acm001452jsd" : { + "type" : "ControlElement", + "id" : "acm001452jsd", + "name" : "Node" + }, + "acm001453jsd" : { + "type" : "ControlElement", + "id" : "acm001453jsd", + "name" : "Node" + }, + "acm001454jsd" : { + "type" : "ControlElement", + "id" : "acm001454jsd", + "name" : "Node" + }, + "acm001455jsd" : { + "type" : "ControlElement", + "id" : "acm001455jsd", + "name" : "Node" + }, + "acm001456jsd" : { + "type" : "ControlElement", + "id" : "acm001456jsd", + "name" : "getMask" + }, + "acm001457jsd" : { + "type" : "ControlElement", + "id" : "acm001457jsd", + "name" : "setMask" + }, + "acm001458jsd" : { + "type" : "ControlElement", + "id" : "acm001458jsd", + "name" : "setControlPoint" + }, + "acm001459jsd" : { + "type" : "ControlElement", + "id" : "acm001459jsd", + "name" : "getControlPoint" + }, + "acm001460jsd" : { + "type" : "ControlElement", + "id" : "acm001460jsd", + "name" : "moveTo" + }, + "acm001461jsd" : { + "type" : "ControlElement", + "id" : "acm001461jsd", + "name" : "moveTo" + }, + "acm001462jsd" : { + "type" : "ControlElement", + "id" : "acm001462jsd", + "name" : "moveBy" + }, + "acm001463jsd" : { + "type" : "ControlElement", + "id" : "acm001463jsd", + "name" : "clone" + }, + "acm001464jsd" : { + "type" : "ControlElement", + "id" : "acm001464jsd", + "name" : "toString" + }, + "acm001465jsd" : { + "type" : "ControlElement", + "id" : "acm001465jsd", + "name" : "hashCode" + }, + "acm001466jsd" : { + "type" : "ControlElement", + "id" : "acm001466jsd", + "name" : "equals" + }, + "acm001467jsd" : { + "type" : "ClassUnit", + "id" : "acm001467jsd", + "name" : "Node", + "compilationUnitId" : "acm001380jsd", + "parentDatatypeId" : "acm001448jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001467jsd" ], + "content" : [ "acm001449jsd", "acm001450jsd", "acm001451jsd", "acm001452jsd", "acm001453jsd", "acm001454jsd", "acm001455jsd", "acm001456jsd", "acm001457jsd", "acm001458jsd", "acm001459jsd", "acm001460jsd", "acm001461jsd", "acm001462jsd", "acm001463jsd", "acm001464jsd", "acm001465jsd", "acm001466jsd" ] + }, + "acm001468jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001468jsd", + "name" : "BezierPathIterator", + "parentId" : "acm001342jsd", + "content" : [ "acm001481jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001469jsd" : { + "type" : "CodePackage", + "id" : "acm001469jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001470jsd" ] + }, + "acm001470jsd" : { + "type" : "CodePackage", + "id" : "acm001470jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001471jsd" ] + }, + "acm001471jsd" : { + "type" : "CodePackage", + "id" : "acm001471jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001472jsd" ] + }, + "acm001472jsd" : { + "type" : "CodePackage", + "id" : "acm001472jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001473jsd" ] + }, + "acm001473jsd" : { + "type" : "CodePackage", + "id" : "acm001473jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001468jsd" ] + }, + "acm001474jsd" : { + "type" : "ControlElement", + "id" : "acm001474jsd", + "name" : "BezierPathIterator" + }, + "acm001475jsd" : { + "type" : "ControlElement", + "id" : "acm001475jsd", + "name" : "BezierPathIterator" + }, + "acm001476jsd" : { + "type" : "ControlElement", + "id" : "acm001476jsd", + "name" : "getWindingRule" + }, + "acm001477jsd" : { + "type" : "ControlElement", + "id" : "acm001477jsd", + "name" : "isDone" + }, + "acm001478jsd" : { + "type" : "ControlElement", + "id" : "acm001478jsd", + "name" : "next" + }, + "acm001479jsd" : { + "type" : "ControlElement", + "id" : "acm001479jsd", + "name" : "currentSegment" + }, + "acm001480jsd" : { + "type" : "ControlElement", + "id" : "acm001480jsd", + "name" : "currentSegment" + }, + "acm001481jsd" : { + "type" : "ClassUnit", + "id" : "acm001481jsd", + "name" : "BezierPathIterator", + "compilationUnitId" : "acm001468jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm001467jsd" ], + "content" : [ "acm001474jsd", "acm001475jsd", "acm001476jsd", "acm001477jsd", "acm001478jsd", "acm001479jsd", "acm001480jsd" ] + }, + "acm001482jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001482jsd", + "name" : "BezierWrapper", + "parentId" : "acm001342jsd", + "content" : [ "acm001492jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001483jsd" : { + "type" : "CodePackage", + "id" : "acm001483jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001484jsd" ] + }, + "acm001484jsd" : { + "type" : "CodePackage", + "id" : "acm001484jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001485jsd" ] + }, + "acm001485jsd" : { + "type" : "CodePackage", + "id" : "acm001485jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001486jsd" ] + }, + "acm001486jsd" : { + "type" : "CodePackage", + "id" : "acm001486jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001487jsd" ] + }, + "acm001487jsd" : { + "type" : "CodePackage", + "id" : "acm001487jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001482jsd" ] + }, + "acm001488jsd" : { + "type" : "ControlElement", + "id" : "acm001488jsd", + "name" : "BezierWrapper" + }, + "acm001489jsd" : { + "type" : "ControlElement", + "id" : "acm001489jsd", + "name" : "lineSimplifyAndCurve" + }, + "acm001490jsd" : { + "type" : "ControlElement", + "id" : "acm001490jsd", + "name" : "denormalize" + }, + "acm001491jsd" : { + "type" : "ControlElement", + "id" : "acm001491jsd", + "name" : "normalize" + }, + "acm001492jsd" : { + "type" : "ClassUnit", + "id" : "acm001492jsd", + "name" : "BezierWrapper", + "compilationUnitId" : "acm001482jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm001558jsd" ], + "content" : [ "acm001488jsd", "acm001489jsd", "acm001490jsd", "acm001491jsd" ] + }, + "acm001493jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001493jsd", + "name" : "Geom", + "parentId" : "acm001342jsd", + "content" : [ "acm001542jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001494jsd" : { + "type" : "CodePackage", + "id" : "acm001494jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001495jsd" ] + }, + "acm001495jsd" : { + "type" : "CodePackage", + "id" : "acm001495jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001496jsd" ] + }, + "acm001496jsd" : { + "type" : "CodePackage", + "id" : "acm001496jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001497jsd" ] + }, + "acm001497jsd" : { + "type" : "CodePackage", + "id" : "acm001497jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001498jsd" ] + }, + "acm001498jsd" : { + "type" : "CodePackage", + "id" : "acm001498jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001493jsd" ] + }, + "acm001499jsd" : { + "type" : "ControlElement", + "id" : "acm001499jsd", + "name" : "Geom" + }, + "acm001500jsd" : { + "type" : "ControlElement", + "id" : "acm001500jsd", + "name" : "lineContainsPoint" + }, + "acm001501jsd" : { + "type" : "ControlElement", + "id" : "acm001501jsd", + "name" : "lineContainsPoint" + }, + "acm001502jsd" : { + "type" : "ControlElement", + "id" : "acm001502jsd", + "name" : "lineContainsPoint" + }, + "acm001503jsd" : { + "type" : "ControlElement", + "id" : "acm001503jsd", + "name" : "direction" + }, + "acm001504jsd" : { + "type" : "ControlElement", + "id" : "acm001504jsd", + "name" : "direction" + }, + "acm001505jsd" : { + "type" : "ControlElement", + "id" : "acm001505jsd", + "name" : "outcode" + }, + "acm001506jsd" : { + "type" : "ControlElement", + "id" : "acm001506jsd", + "name" : "outcode" + }, + "acm001507jsd" : { + "type" : "ControlElement", + "id" : "acm001507jsd", + "name" : "south" + }, + "acm001508jsd" : { + "type" : "ControlElement", + "id" : "acm001508jsd", + "name" : "south" + }, + "acm001509jsd" : { + "type" : "ControlElement", + "id" : "acm001509jsd", + "name" : "center" + }, + "acm001510jsd" : { + "type" : "ControlElement", + "id" : "acm001510jsd", + "name" : "center" + }, + "acm001511jsd" : { + "type" : "ControlElement", + "id" : "acm001511jsd", + "name" : "chop" + }, + "acm001512jsd" : { + "type" : "ControlElement", + "id" : "acm001512jsd", + "name" : "west" + }, + "acm001513jsd" : { + "type" : "ControlElement", + "id" : "acm001513jsd", + "name" : "west" + }, + "acm001514jsd" : { + "type" : "ControlElement", + "id" : "acm001514jsd", + "name" : "east" + }, + "acm001515jsd" : { + "type" : "ControlElement", + "id" : "acm001515jsd", + "name" : "east" + }, + "acm001516jsd" : { + "type" : "ControlElement", + "id" : "acm001516jsd", + "name" : "north" + }, + "acm001517jsd" : { + "type" : "ControlElement", + "id" : "acm001517jsd", + "name" : "north" + }, + "acm001518jsd" : { + "type" : "ControlElement", + "id" : "acm001518jsd", + "name" : "range" + }, + "acm001519jsd" : { + "type" : "ControlElement", + "id" : "acm001519jsd", + "name" : "range" + }, + "acm001520jsd" : { + "type" : "ControlElement", + "id" : "acm001520jsd", + "name" : "length2" + }, + "acm001521jsd" : { + "type" : "ControlElement", + "id" : "acm001521jsd", + "name" : "length" + }, + "acm001522jsd" : { + "type" : "ControlElement", + "id" : "acm001522jsd", + "name" : "length2" + }, + "acm001523jsd" : { + "type" : "ControlElement", + "id" : "acm001523jsd", + "name" : "length" + }, + "acm001524jsd" : { + "type" : "ControlElement", + "id" : "acm001524jsd", + "name" : "length" + }, + "acm001525jsd" : { + "type" : "ControlElement", + "id" : "acm001525jsd", + "name" : "cap" + }, + "acm001526jsd" : { + "type" : "ControlElement", + "id" : "acm001526jsd", + "name" : "pointToAngle" + }, + "acm001527jsd" : { + "type" : "ControlElement", + "id" : "acm001527jsd", + "name" : "pointToAngle" + }, + "acm001528jsd" : { + "type" : "ControlElement", + "id" : "acm001528jsd", + "name" : "angle" + }, + "acm001529jsd" : { + "type" : "ControlElement", + "id" : "acm001529jsd", + "name" : "angleToPoint" + }, + "acm001530jsd" : { + "type" : "ControlElement", + "id" : "acm001530jsd", + "name" : "angleToPoint" + }, + "acm001531jsd" : { + "type" : "ControlElement", + "id" : "acm001531jsd", + "name" : "polarToPoint" + }, + "acm001532jsd" : { + "type" : "ControlElement", + "id" : "acm001532jsd", + "name" : "polarToPoint2D" + }, + "acm001533jsd" : { + "type" : "ControlElement", + "id" : "acm001533jsd", + "name" : "ovalAngleToPoint" + }, + "acm001534jsd" : { + "type" : "ControlElement", + "id" : "acm001534jsd", + "name" : "ovalAngleToPoint" + }, + "acm001535jsd" : { + "type" : "ControlElement", + "id" : "acm001535jsd", + "name" : "intersect" + }, + "acm001536jsd" : { + "type" : "ControlElement", + "id" : "acm001536jsd", + "name" : "intersect" + }, + "acm001537jsd" : { + "type" : "ControlElement", + "id" : "acm001537jsd", + "name" : "intersect" + }, + "acm001538jsd" : { + "type" : "ControlElement", + "id" : "acm001538jsd", + "name" : "distanceFromLine" + }, + "acm001539jsd" : { + "type" : "ControlElement", + "id" : "acm001539jsd", + "name" : "grow" + }, + "acm001540jsd" : { + "type" : "ControlElement", + "id" : "acm001540jsd", + "name" : "contains" + }, + "acm001541jsd" : { + "type" : "ControlElement", + "id" : "acm001541jsd", + "name" : "contains" + }, + "acm001542jsd" : { + "type" : "ClassUnit", + "id" : "acm001542jsd", + "name" : "Geom", + "compilationUnitId" : "acm001493jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001499jsd", "acm001500jsd", "acm001501jsd", "acm001502jsd", "acm001503jsd", "acm001504jsd", "acm001505jsd", "acm001506jsd", "acm001507jsd", "acm001508jsd", "acm001509jsd", "acm001510jsd", "acm001511jsd", "acm001512jsd", "acm001513jsd", "acm001514jsd", "acm001515jsd", "acm001516jsd", "acm001517jsd", "acm001518jsd", "acm001519jsd", "acm001520jsd", "acm001521jsd", "acm001522jsd", "acm001523jsd", "acm001524jsd", "acm001525jsd", "acm001526jsd", "acm001527jsd", "acm001528jsd", "acm001529jsd", "acm001530jsd", "acm001531jsd", "acm001532jsd", "acm001533jsd", "acm001534jsd", "acm001535jsd", "acm001536jsd", "acm001537jsd", "acm001538jsd", "acm001539jsd", "acm001540jsd", "acm001541jsd" ] + }, + "acm001543jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001543jsd", + "name" : "PathCommands", + "parentId" : "acm001342jsd", + "content" : [ "acm001550jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001544jsd" : { + "type" : "CodePackage", + "id" : "acm001544jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001545jsd" ] + }, + "acm001545jsd" : { + "type" : "CodePackage", + "id" : "acm001545jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001546jsd" ] + }, + "acm001546jsd" : { + "type" : "CodePackage", + "id" : "acm001546jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001547jsd" ] + }, + "acm001547jsd" : { + "type" : "CodePackage", + "id" : "acm001547jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001548jsd" ] + }, + "acm001548jsd" : { + "type" : "CodePackage", + "id" : "acm001548jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001543jsd" ] + }, + "acm001549jsd" : { + "type" : "ControlElement", + "id" : "acm001549jsd", + "name" : "PathCommands" + }, + "acm001550jsd" : { + "type" : "ClassUnit", + "id" : "acm001550jsd", + "name" : "PathCommands", + "compilationUnitId" : "acm001543jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001549jsd" ] + }, + "acm001551jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001551jsd", + "name" : "PathData", + "parentId" : "acm001342jsd", + "content" : [ "acm001558jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001552jsd" : { + "type" : "CodePackage", + "id" : "acm001552jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001553jsd" ] + }, + "acm001553jsd" : { + "type" : "CodePackage", + "id" : "acm001553jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001554jsd" ] + }, + "acm001554jsd" : { + "type" : "CodePackage", + "id" : "acm001554jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001555jsd" ] + }, + "acm001555jsd" : { + "type" : "CodePackage", + "id" : "acm001555jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001556jsd" ] + }, + "acm001556jsd" : { + "type" : "CodePackage", + "id" : "acm001556jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001551jsd" ] + }, + "acm001557jsd" : { + "type" : "ControlElement", + "id" : "acm001557jsd", + "name" : "PathData" + }, + "acm001558jsd" : { + "type" : "ClassUnit", + "id" : "acm001558jsd", + "name" : "PathData", + "compilationUnitId" : "acm001551jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001557jsd" ] + }, + "acm001559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001559jsd", + "name" : "Shapes", + "parentId" : "acm001342jsd", + "content" : [ "acm001567jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "main", "scala", "org", "bigbluebutton", "core", "util", "jhotdraw" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001560jsd" : { + "type" : "CodePackage", + "id" : "acm001560jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001561jsd" ] + }, + "acm001561jsd" : { + "type" : "CodePackage", + "id" : "acm001561jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001562jsd" ] + }, + "acm001562jsd" : { + "type" : "CodePackage", + "id" : "acm001562jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm001563jsd" ] + }, + "acm001563jsd" : { + "type" : "CodePackage", + "id" : "acm001563jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001564jsd" ] + }, + "acm001564jsd" : { + "type" : "CodePackage", + "id" : "acm001564jsd", + "name" : "jhotdraw", + "parentId" : null, + "content" : [ "acm001559jsd" ] + }, + "acm001565jsd" : { + "type" : "ControlElement", + "id" : "acm001565jsd", + "name" : "Shapes" + }, + "acm001566jsd" : { + "type" : "ControlElement", + "id" : "acm001566jsd", + "name" : "outlineContains" + }, + "acm001567jsd" : { + "type" : "ClassUnit", + "id" : "acm001567jsd", + "name" : "Shapes", + "compilationUnitId" : "acm001559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001565jsd", "acm001566jsd" ] + }, + "acm001568jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001568jsd", + "name" : "Simple", + "parentId" : "acm001571jsd", + "content" : [ "acm001572jsd" ], + "pathElements" : [ "akka-bbb-apps", "src", "test", "java", "org", "bigbluebutton", "xml" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001569jsd" : { + "type" : "CodePackage", + "id" : "acm001569jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001570jsd" ] + }, + "acm001570jsd" : { + "type" : "CodePackage", + "id" : "acm001570jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001571jsd" ] + }, + "acm001571jsd" : { + "type" : "CodePackage", + "id" : "acm001571jsd", + "name" : "xml", + "parentId" : "acm001339jsd", + "content" : [ "acm001568jsd" ] + }, + "acm001572jsd" : { + "type" : "ClassUnit", + "id" : "acm001572jsd", + "name" : "Simple", + "compilationUnitId" : "acm001568jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001573jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001573jsd", + "name" : "ConferenceServerListener", + "parentId" : "acm001577jsd", + "content" : [ "acm001582jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001574jsd" : { + "type" : "CodePackage", + "id" : "acm001574jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001575jsd" ] + }, + "acm001575jsd" : { + "type" : "CodePackage", + "id" : "acm001575jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001576jsd" ] + }, + "acm001576jsd" : { + "type" : "CodePackage", + "id" : "acm001576jsd", + "name" : "freeswitch", + "parentId" : "acm001339jsd", + "content" : [ "acm001577jsd" ] + }, + "acm001577jsd" : { + "type" : "CodePackage", + "id" : "acm001577jsd", + "name" : "voice", + "parentId" : "acm001576jsd", + "content" : [ "acm001573jsd", "acm001583jsd", "acm001597jsd", "acm001621jsd", "acm001680jsd", "acm001849jsd" ] + }, + "acm001578jsd" : { + "type" : "ControlElement", + "id" : "acm001578jsd", + "name" : "joined" + }, + "acm001579jsd" : { + "type" : "ControlElement", + "id" : "acm001579jsd", + "name" : "left" + }, + "acm001580jsd" : { + "type" : "ControlElement", + "id" : "acm001580jsd", + "name" : "muted" + }, + "acm001581jsd" : { + "type" : "ControlElement", + "id" : "acm001581jsd", + "name" : "talking" + }, + "acm001582jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001582jsd", + "name" : "ConferenceServerListener", + "compilationUnitId" : "acm001573jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001578jsd", "acm001579jsd", "acm001580jsd", "acm001581jsd" ] + }, + "acm001583jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001583jsd", + "name" : "FreeswitchConferenceEventListener", + "parentId" : "acm001577jsd", + "content" : [ "acm001596jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001584jsd" : { + "type" : "CodePackage", + "id" : "acm001584jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001585jsd" ] + }, + "acm001585jsd" : { + "type" : "CodePackage", + "id" : "acm001585jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001586jsd" ] + }, + "acm001586jsd" : { + "type" : "CodePackage", + "id" : "acm001586jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001587jsd" ] + }, + "acm001587jsd" : { + "type" : "CodePackage", + "id" : "acm001587jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001583jsd" ] + }, + "acm001588jsd" : { + "type" : "ControlElement", + "id" : "acm001588jsd", + "name" : "FreeswitchConferenceEventListener" + }, + "acm001589jsd" : { + "type" : "ControlElement", + "id" : "acm001589jsd", + "name" : "queueMessage" + }, + "acm001590jsd" : { + "type" : "ControlElement", + "id" : "acm001590jsd", + "name" : "sendMessageToBigBlueButton" + }, + "acm001591jsd" : { + "type" : "ControlElement", + "id" : "acm001591jsd", + "name" : "run" + }, + "acm001592jsd" : { + "type" : "ControlElement", + "id" : "acm001592jsd", + "name" : "start" + }, + "acm001593jsd" : { + "type" : "ControlElement", + "id" : "acm001593jsd", + "name" : "run" + }, + "acm001594jsd" : { + "type" : "ControlElement", + "id" : "acm001594jsd", + "name" : "stop" + }, + "acm001595jsd" : { + "type" : "ControlElement", + "id" : "acm001595jsd", + "name" : "handleConferenceEvent" + }, + "acm001596jsd" : { + "type" : "ClassUnit", + "id" : "acm001596jsd", + "name" : "FreeswitchConferenceEventListener", + "compilationUnitId" : "acm001583jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001709jsd" ], + "datatypeReferencesIds" : [ "acm001596jsd", "acm001615jsd", "acm001685jsd", "acm001717jsd", "acm001725jsd", "acm001741jsd", "acm001749jsd", "acm001758jsd", "acm001767jsd", "acm001780jsd", "acm001796jsd", "acm001805jsd", "acm001825jsd", "acm001835jsd", "acm001843jsd" ], + "content" : [ "acm001588jsd", "acm001589jsd", "acm001590jsd", "acm001591jsd", "acm001592jsd", "acm001593jsd", "acm001594jsd", "acm001595jsd" ] + }, + "acm001597jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001597jsd", + "name" : "IVoiceConferenceService", + "parentId" : "acm001577jsd", + "content" : [ "acm001615jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001598jsd" : { + "type" : "CodePackage", + "id" : "acm001598jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001599jsd" ] + }, + "acm001599jsd" : { + "type" : "CodePackage", + "id" : "acm001599jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001600jsd" ] + }, + "acm001600jsd" : { + "type" : "CodePackage", + "id" : "acm001600jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001601jsd" ] + }, + "acm001601jsd" : { + "type" : "CodePackage", + "id" : "acm001601jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001597jsd" ] + }, + "acm001602jsd" : { + "type" : "ControlElement", + "id" : "acm001602jsd", + "name" : "voiceConfRecordingStarted" + }, + "acm001603jsd" : { + "type" : "ControlElement", + "id" : "acm001603jsd", + "name" : "voiceConfRunning" + }, + "acm001604jsd" : { + "type" : "ControlElement", + "id" : "acm001604jsd", + "name" : "userJoinedVoiceConf" + }, + "acm001605jsd" : { + "type" : "ControlElement", + "id" : "acm001605jsd", + "name" : "voiceUsersStatus" + }, + "acm001606jsd" : { + "type" : "ControlElement", + "id" : "acm001606jsd", + "name" : "userLeftVoiceConf" + }, + "acm001607jsd" : { + "type" : "ControlElement", + "id" : "acm001607jsd", + "name" : "userLockedInVoiceConf" + }, + "acm001608jsd" : { + "type" : "ControlElement", + "id" : "acm001608jsd", + "name" : "userMutedInVoiceConf" + }, + "acm001609jsd" : { + "type" : "ControlElement", + "id" : "acm001609jsd", + "name" : "userTalkingInVoiceConf" + }, + "acm001610jsd" : { + "type" : "ControlElement", + "id" : "acm001610jsd", + "name" : "audioFloorChanged" + }, + "acm001611jsd" : { + "type" : "ControlElement", + "id" : "acm001611jsd", + "name" : "voiceConfRunningAndRecording" + }, + "acm001612jsd" : { + "type" : "ControlElement", + "id" : "acm001612jsd", + "name" : "voiceCallStateEvent" + }, + "acm001613jsd" : { + "type" : "ControlElement", + "id" : "acm001613jsd", + "name" : "freeswitchStatusReplyEvent" + }, + "acm001614jsd" : { + "type" : "ControlElement", + "id" : "acm001614jsd", + "name" : "freeswitchHeartbeatEvent" + }, + "acm001615jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001615jsd", + "name" : "IVoiceConferenceService", + "compilationUnitId" : "acm001597jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001693jsd", "acm001701jsd" ], + "content" : [ "acm001602jsd", "acm001603jsd", "acm001604jsd", "acm001605jsd", "acm001606jsd", "acm001607jsd", "acm001608jsd", "acm001609jsd", "acm001610jsd", "acm001611jsd", "acm001612jsd", "acm001613jsd", "acm001614jsd" ] + }, + "acm001616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001616jsd", + "name" : "ConferenceCommand", + "parentId" : "acm001621jsd", + "content" : [ "acm001625jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001617jsd" : { + "type" : "CodePackage", + "id" : "acm001617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001618jsd" ] + }, + "acm001618jsd" : { + "type" : "CodePackage", + "id" : "acm001618jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001619jsd" ] + }, + "acm001619jsd" : { + "type" : "CodePackage", + "id" : "acm001619jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001620jsd" ] + }, + "acm001620jsd" : { + "type" : "CodePackage", + "id" : "acm001620jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001621jsd" ] + }, + "acm001621jsd" : { + "type" : "CodePackage", + "id" : "acm001621jsd", + "name" : "commands", + "parentId" : "acm001577jsd", + "content" : [ "acm001616jsd", "acm001626jsd", "acm001640jsd", "acm001649jsd", "acm001657jsd", "acm001667jsd" ] + }, + "acm001622jsd" : { + "type" : "ControlElement", + "id" : "acm001622jsd", + "name" : "ConferenceCommand" + }, + "acm001623jsd" : { + "type" : "ControlElement", + "id" : "acm001623jsd", + "name" : "getRoom" + }, + "acm001624jsd" : { + "type" : "ControlElement", + "id" : "acm001624jsd", + "name" : "getRequesterId" + }, + "acm001625jsd" : { + "type" : "ClassUnit", + "id" : "acm001625jsd", + "name" : "ConferenceCommand", + "compilationUnitId" : "acm001616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001622jsd", "acm001623jsd", "acm001624jsd" ] + }, + "acm001626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001626jsd", + "name" : "ConferenceCommandResult", + "parentId" : "acm001621jsd", + "content" : [ "acm001639jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001627jsd" : { + "type" : "CodePackage", + "id" : "acm001627jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001628jsd" ] + }, + "acm001628jsd" : { + "type" : "CodePackage", + "id" : "acm001628jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001629jsd" ] + }, + "acm001629jsd" : { + "type" : "CodePackage", + "id" : "acm001629jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001630jsd" ] + }, + "acm001630jsd" : { + "type" : "CodePackage", + "id" : "acm001630jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001631jsd" ] + }, + "acm001631jsd" : { + "type" : "CodePackage", + "id" : "acm001631jsd", + "name" : "commands", + "parentId" : null, + "content" : [ "acm001626jsd" ] + }, + "acm001632jsd" : { + "type" : "ControlElement", + "id" : "acm001632jsd", + "name" : "ConferenceCommandResult" + }, + "acm001633jsd" : { + "type" : "ControlElement", + "id" : "acm001633jsd", + "name" : "isSuccess" + }, + "acm001634jsd" : { + "type" : "ControlElement", + "id" : "acm001634jsd", + "name" : "setSuccess" + }, + "acm001635jsd" : { + "type" : "ControlElement", + "id" : "acm001635jsd", + "name" : "getRoom" + }, + "acm001636jsd" : { + "type" : "ControlElement", + "id" : "acm001636jsd", + "name" : "getMessage" + }, + "acm001637jsd" : { + "type" : "ControlElement", + "id" : "acm001637jsd", + "name" : "setMessage" + }, + "acm001638jsd" : { + "type" : "ControlElement", + "id" : "acm001638jsd", + "name" : "getRequesterId" + }, + "acm001639jsd" : { + "type" : "ClassUnit", + "id" : "acm001639jsd", + "name" : "ConferenceCommandResult", + "compilationUnitId" : "acm001626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001632jsd", "acm001633jsd", "acm001634jsd", "acm001635jsd", "acm001636jsd", "acm001637jsd", "acm001638jsd" ] + }, + "acm001640jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001640jsd", + "name" : "EjectUserCommand", + "parentId" : "acm001621jsd", + "content" : [ "acm001648jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001641jsd" : { + "type" : "CodePackage", + "id" : "acm001641jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001642jsd" ] + }, + "acm001642jsd" : { + "type" : "CodePackage", + "id" : "acm001642jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001643jsd" ] + }, + "acm001643jsd" : { + "type" : "CodePackage", + "id" : "acm001643jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001644jsd" ] + }, + "acm001644jsd" : { + "type" : "CodePackage", + "id" : "acm001644jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001645jsd" ] + }, + "acm001645jsd" : { + "type" : "CodePackage", + "id" : "acm001645jsd", + "name" : "commands", + "parentId" : null, + "content" : [ "acm001640jsd" ] + }, + "acm001646jsd" : { + "type" : "ControlElement", + "id" : "acm001646jsd", + "name" : "EjectUserCommand" + }, + "acm001647jsd" : { + "type" : "ControlElement", + "id" : "acm001647jsd", + "name" : "getParticipantId" + }, + "acm001648jsd" : { + "type" : "ClassUnit", + "id" : "acm001648jsd", + "name" : "EjectUserCommand", + "compilationUnitId" : "acm001640jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001646jsd", "acm001647jsd" ] + }, + "acm001649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001649jsd", + "name" : "GetUsersCommand", + "parentId" : "acm001621jsd", + "content" : [ "acm001656jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001650jsd" : { + "type" : "CodePackage", + "id" : "acm001650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001651jsd" ] + }, + "acm001651jsd" : { + "type" : "CodePackage", + "id" : "acm001651jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001652jsd" ] + }, + "acm001652jsd" : { + "type" : "CodePackage", + "id" : "acm001652jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001653jsd" ] + }, + "acm001653jsd" : { + "type" : "CodePackage", + "id" : "acm001653jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001654jsd" ] + }, + "acm001654jsd" : { + "type" : "CodePackage", + "id" : "acm001654jsd", + "name" : "commands", + "parentId" : null, + "content" : [ "acm001649jsd" ] + }, + "acm001655jsd" : { + "type" : "ControlElement", + "id" : "acm001655jsd", + "name" : "GetUsersCommand" + }, + "acm001656jsd" : { + "type" : "ClassUnit", + "id" : "acm001656jsd", + "name" : "GetUsersCommand", + "compilationUnitId" : "acm001649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001655jsd" ] + }, + "acm001657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001657jsd", + "name" : "MuteUserCommand", + "parentId" : "acm001621jsd", + "content" : [ "acm001666jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001658jsd" : { + "type" : "CodePackage", + "id" : "acm001658jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001659jsd" ] + }, + "acm001659jsd" : { + "type" : "CodePackage", + "id" : "acm001659jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001660jsd" ] + }, + "acm001660jsd" : { + "type" : "CodePackage", + "id" : "acm001660jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001661jsd" ] + }, + "acm001661jsd" : { + "type" : "CodePackage", + "id" : "acm001661jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001662jsd" ] + }, + "acm001662jsd" : { + "type" : "CodePackage", + "id" : "acm001662jsd", + "name" : "commands", + "parentId" : null, + "content" : [ "acm001657jsd" ] + }, + "acm001663jsd" : { + "type" : "ControlElement", + "id" : "acm001663jsd", + "name" : "MuteUserCommand" + }, + "acm001664jsd" : { + "type" : "ControlElement", + "id" : "acm001664jsd", + "name" : "getParticipantId" + }, + "acm001665jsd" : { + "type" : "ControlElement", + "id" : "acm001665jsd", + "name" : "isMute" + }, + "acm001666jsd" : { + "type" : "ClassUnit", + "id" : "acm001666jsd", + "name" : "MuteUserCommand", + "compilationUnitId" : "acm001657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001663jsd", "acm001664jsd", "acm001665jsd" ] + }, + "acm001667jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001667jsd", + "name" : "RecordCommand", + "parentId" : "acm001621jsd", + "content" : [ "acm001674jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "commands" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001668jsd" : { + "type" : "CodePackage", + "id" : "acm001668jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001669jsd" ] + }, + "acm001669jsd" : { + "type" : "CodePackage", + "id" : "acm001669jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001670jsd" ] + }, + "acm001670jsd" : { + "type" : "CodePackage", + "id" : "acm001670jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001671jsd" ] + }, + "acm001671jsd" : { + "type" : "CodePackage", + "id" : "acm001671jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001672jsd" ] + }, + "acm001672jsd" : { + "type" : "CodePackage", + "id" : "acm001672jsd", + "name" : "commands", + "parentId" : null, + "content" : [ "acm001667jsd" ] + }, + "acm001673jsd" : { + "type" : "ControlElement", + "id" : "acm001673jsd", + "name" : "RecordCommand" + }, + "acm001674jsd" : { + "type" : "ClassUnit", + "id" : "acm001674jsd", + "name" : "RecordCommand", + "compilationUnitId" : "acm001667jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001673jsd" ] + }, + "acm001675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001675jsd", + "name" : "AudioFloorChangedEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001685jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001676jsd" : { + "type" : "CodePackage", + "id" : "acm001676jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001677jsd" ] + }, + "acm001677jsd" : { + "type" : "CodePackage", + "id" : "acm001677jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001678jsd" ] + }, + "acm001678jsd" : { + "type" : "CodePackage", + "id" : "acm001678jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001679jsd" ] + }, + "acm001679jsd" : { + "type" : "CodePackage", + "id" : "acm001679jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001680jsd" ] + }, + "acm001680jsd" : { + "type" : "CodePackage", + "id" : "acm001680jsd", + "name" : "events", + "parentId" : "acm001577jsd", + "content" : [ "acm001675jsd", "acm001686jsd", "acm001694jsd", "acm001702jsd", "acm001710jsd", "acm001718jsd", "acm001726jsd", "acm001734jsd", "acm001742jsd", "acm001750jsd", "acm001759jsd", "acm001768jsd", "acm001781jsd", "acm001797jsd", "acm001806jsd", "acm001816jsd", "acm001826jsd", "acm001836jsd" ] + }, + "acm001681jsd" : { + "type" : "ControlElement", + "id" : "acm001681jsd", + "name" : "AudioFloorChangedEvent" + }, + "acm001682jsd" : { + "type" : "ControlElement", + "id" : "acm001682jsd", + "name" : "getVoiceUserId" + }, + "acm001683jsd" : { + "type" : "ControlElement", + "id" : "acm001683jsd", + "name" : "getOldVoiceUserId" + }, + "acm001684jsd" : { + "type" : "ControlElement", + "id" : "acm001684jsd", + "name" : "getFloorTimestamp" + }, + "acm001685jsd" : { + "type" : "ClassUnit", + "id" : "acm001685jsd", + "name" : "AudioFloorChangedEvent", + "compilationUnitId" : "acm001675jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001681jsd", "acm001682jsd", "acm001683jsd", "acm001684jsd" ] + }, + "acm001686jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001686jsd", + "name" : "ConfMember", + "parentId" : "acm001680jsd", + "content" : [ "acm001693jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001687jsd" : { + "type" : "CodePackage", + "id" : "acm001687jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001688jsd" ] + }, + "acm001688jsd" : { + "type" : "CodePackage", + "id" : "acm001688jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001689jsd" ] + }, + "acm001689jsd" : { + "type" : "CodePackage", + "id" : "acm001689jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001690jsd" ] + }, + "acm001690jsd" : { + "type" : "CodePackage", + "id" : "acm001690jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001691jsd" ] + }, + "acm001691jsd" : { + "type" : "CodePackage", + "id" : "acm001691jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001686jsd" ] + }, + "acm001692jsd" : { + "type" : "ControlElement", + "id" : "acm001692jsd", + "name" : "ConfMember" + }, + "acm001693jsd" : { + "type" : "ClassUnit", + "id" : "acm001693jsd", + "name" : "ConfMember", + "compilationUnitId" : "acm001686jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001692jsd" ] + }, + "acm001694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001694jsd", + "name" : "ConfRecording", + "parentId" : "acm001680jsd", + "content" : [ "acm001701jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001695jsd" : { + "type" : "CodePackage", + "id" : "acm001695jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001696jsd" ] + }, + "acm001696jsd" : { + "type" : "CodePackage", + "id" : "acm001696jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001697jsd" ] + }, + "acm001697jsd" : { + "type" : "CodePackage", + "id" : "acm001697jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001698jsd" ] + }, + "acm001698jsd" : { + "type" : "CodePackage", + "id" : "acm001698jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001699jsd" ] + }, + "acm001699jsd" : { + "type" : "CodePackage", + "id" : "acm001699jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001694jsd" ] + }, + "acm001700jsd" : { + "type" : "ControlElement", + "id" : "acm001700jsd", + "name" : "ConfRecording" + }, + "acm001701jsd" : { + "type" : "ClassUnit", + "id" : "acm001701jsd", + "name" : "ConfRecording", + "compilationUnitId" : "acm001694jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001700jsd" ] + }, + "acm001702jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001702jsd", + "name" : "ConferenceEventListener", + "parentId" : "acm001680jsd", + "content" : [ "acm001709jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001703jsd" : { + "type" : "CodePackage", + "id" : "acm001703jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001704jsd" ] + }, + "acm001704jsd" : { + "type" : "CodePackage", + "id" : "acm001704jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001705jsd" ] + }, + "acm001705jsd" : { + "type" : "CodePackage", + "id" : "acm001705jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001706jsd" ] + }, + "acm001706jsd" : { + "type" : "CodePackage", + "id" : "acm001706jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001707jsd" ] + }, + "acm001707jsd" : { + "type" : "CodePackage", + "id" : "acm001707jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001702jsd" ] + }, + "acm001708jsd" : { + "type" : "ControlElement", + "id" : "acm001708jsd", + "name" : "handleConferenceEvent" + }, + "acm001709jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001709jsd", + "name" : "ConferenceEventListener", + "compilationUnitId" : "acm001702jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001767jsd" ], + "content" : [ "acm001708jsd" ] + }, + "acm001710jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001710jsd", + "name" : "FreeswitchHeartbeatEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001717jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001711jsd" : { + "type" : "CodePackage", + "id" : "acm001711jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001712jsd" ] + }, + "acm001712jsd" : { + "type" : "CodePackage", + "id" : "acm001712jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001713jsd" ] + }, + "acm001713jsd" : { + "type" : "CodePackage", + "id" : "acm001713jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001714jsd" ] + }, + "acm001714jsd" : { + "type" : "CodePackage", + "id" : "acm001714jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001715jsd" ] + }, + "acm001715jsd" : { + "type" : "CodePackage", + "id" : "acm001715jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001710jsd" ] + }, + "acm001716jsd" : { + "type" : "ControlElement", + "id" : "acm001716jsd", + "name" : "FreeswitchHeartbeatEvent" + }, + "acm001717jsd" : { + "type" : "ClassUnit", + "id" : "acm001717jsd", + "name" : "FreeswitchHeartbeatEvent", + "compilationUnitId" : "acm001710jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001716jsd" ] + }, + "acm001718jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001718jsd", + "name" : "FreeswitchStatusReplyEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001725jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001719jsd" : { + "type" : "CodePackage", + "id" : "acm001719jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001720jsd" ] + }, + "acm001720jsd" : { + "type" : "CodePackage", + "id" : "acm001720jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001721jsd" ] + }, + "acm001721jsd" : { + "type" : "CodePackage", + "id" : "acm001721jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001722jsd" ] + }, + "acm001722jsd" : { + "type" : "CodePackage", + "id" : "acm001722jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001723jsd" ] + }, + "acm001723jsd" : { + "type" : "CodePackage", + "id" : "acm001723jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001718jsd" ] + }, + "acm001724jsd" : { + "type" : "ControlElement", + "id" : "acm001724jsd", + "name" : "FreeswitchStatusReplyEvent" + }, + "acm001725jsd" : { + "type" : "ClassUnit", + "id" : "acm001725jsd", + "name" : "FreeswitchStatusReplyEvent", + "compilationUnitId" : "acm001718jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001724jsd" ] + }, + "acm001726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001726jsd", + "name" : "UnknownConferenceEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001733jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001727jsd" : { + "type" : "CodePackage", + "id" : "acm001727jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001728jsd" ] + }, + "acm001728jsd" : { + "type" : "CodePackage", + "id" : "acm001728jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001729jsd" ] + }, + "acm001729jsd" : { + "type" : "CodePackage", + "id" : "acm001729jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001730jsd" ] + }, + "acm001730jsd" : { + "type" : "CodePackage", + "id" : "acm001730jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001731jsd" ] + }, + "acm001731jsd" : { + "type" : "CodePackage", + "id" : "acm001731jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001726jsd" ] + }, + "acm001732jsd" : { + "type" : "ControlElement", + "id" : "acm001732jsd", + "name" : "UnknownConferenceEvent" + }, + "acm001733jsd" : { + "type" : "ClassUnit", + "id" : "acm001733jsd", + "name" : "UnknownConferenceEvent", + "compilationUnitId" : "acm001726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001732jsd" ] + }, + "acm001734jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001734jsd", + "name" : "VoiceCallStateEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001741jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001735jsd" : { + "type" : "CodePackage", + "id" : "acm001735jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001736jsd" ] + }, + "acm001736jsd" : { + "type" : "CodePackage", + "id" : "acm001736jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001737jsd" ] + }, + "acm001737jsd" : { + "type" : "CodePackage", + "id" : "acm001737jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001738jsd" ] + }, + "acm001738jsd" : { + "type" : "CodePackage", + "id" : "acm001738jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001739jsd" ] + }, + "acm001739jsd" : { + "type" : "CodePackage", + "id" : "acm001739jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001734jsd" ] + }, + "acm001740jsd" : { + "type" : "ControlElement", + "id" : "acm001740jsd", + "name" : "VoiceCallStateEvent" + }, + "acm001741jsd" : { + "type" : "ClassUnit", + "id" : "acm001741jsd", + "name" : "VoiceCallStateEvent", + "compilationUnitId" : "acm001734jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001740jsd" ] + }, + "acm001742jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001742jsd", + "name" : "VoiceConfRunningAndRecordingEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001749jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001743jsd" : { + "type" : "CodePackage", + "id" : "acm001743jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001744jsd" ] + }, + "acm001744jsd" : { + "type" : "CodePackage", + "id" : "acm001744jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001745jsd" ] + }, + "acm001745jsd" : { + "type" : "CodePackage", + "id" : "acm001745jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001746jsd" ] + }, + "acm001746jsd" : { + "type" : "CodePackage", + "id" : "acm001746jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001747jsd" ] + }, + "acm001747jsd" : { + "type" : "CodePackage", + "id" : "acm001747jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001742jsd" ] + }, + "acm001748jsd" : { + "type" : "ControlElement", + "id" : "acm001748jsd", + "name" : "VoiceConfRunningAndRecordingEvent" + }, + "acm001749jsd" : { + "type" : "ClassUnit", + "id" : "acm001749jsd", + "name" : "VoiceConfRunningAndRecordingEvent", + "compilationUnitId" : "acm001742jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001701jsd" ], + "content" : [ "acm001748jsd" ] + }, + "acm001750jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001750jsd", + "name" : "VoiceConfRunningEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001758jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001751jsd" : { + "type" : "CodePackage", + "id" : "acm001751jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001752jsd" ] + }, + "acm001752jsd" : { + "type" : "CodePackage", + "id" : "acm001752jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001753jsd" ] + }, + "acm001753jsd" : { + "type" : "CodePackage", + "id" : "acm001753jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001754jsd" ] + }, + "acm001754jsd" : { + "type" : "CodePackage", + "id" : "acm001754jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001755jsd" ] + }, + "acm001755jsd" : { + "type" : "CodePackage", + "id" : "acm001755jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001750jsd" ] + }, + "acm001756jsd" : { + "type" : "ControlElement", + "id" : "acm001756jsd", + "name" : "VoiceConfRunningEvent" + }, + "acm001757jsd" : { + "type" : "ControlElement", + "id" : "acm001757jsd", + "name" : "isRunning" + }, + "acm001758jsd" : { + "type" : "ClassUnit", + "id" : "acm001758jsd", + "name" : "VoiceConfRunningEvent", + "compilationUnitId" : "acm001750jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001756jsd", "acm001757jsd" ] + }, + "acm001759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001759jsd", + "name" : "VoiceConferenceEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001767jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001760jsd" : { + "type" : "CodePackage", + "id" : "acm001760jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001761jsd" ] + }, + "acm001761jsd" : { + "type" : "CodePackage", + "id" : "acm001761jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001762jsd" ] + }, + "acm001762jsd" : { + "type" : "CodePackage", + "id" : "acm001762jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001763jsd" ] + }, + "acm001763jsd" : { + "type" : "CodePackage", + "id" : "acm001763jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001764jsd" ] + }, + "acm001764jsd" : { + "type" : "CodePackage", + "id" : "acm001764jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001759jsd" ] + }, + "acm001765jsd" : { + "type" : "ControlElement", + "id" : "acm001765jsd", + "name" : "VoiceConferenceEvent" + }, + "acm001766jsd" : { + "type" : "ControlElement", + "id" : "acm001766jsd", + "name" : "getRoom" + }, + "acm001767jsd" : { + "type" : "ClassUnit", + "id" : "acm001767jsd", + "name" : "VoiceConferenceEvent", + "compilationUnitId" : "acm001759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001765jsd", "acm001766jsd" ] + }, + "acm001768jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001768jsd", + "name" : "VoiceStartRecordingEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001780jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001769jsd" : { + "type" : "CodePackage", + "id" : "acm001769jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001770jsd" ] + }, + "acm001770jsd" : { + "type" : "CodePackage", + "id" : "acm001770jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001771jsd" ] + }, + "acm001771jsd" : { + "type" : "CodePackage", + "id" : "acm001771jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001772jsd" ] + }, + "acm001772jsd" : { + "type" : "CodePackage", + "id" : "acm001772jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001773jsd" ] + }, + "acm001773jsd" : { + "type" : "CodePackage", + "id" : "acm001773jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001768jsd" ] + }, + "acm001774jsd" : { + "type" : "ControlElement", + "id" : "acm001774jsd", + "name" : "VoiceStartRecordingEvent" + }, + "acm001775jsd" : { + "type" : "ControlElement", + "id" : "acm001775jsd", + "name" : "setTimestamp" + }, + "acm001776jsd" : { + "type" : "ControlElement", + "id" : "acm001776jsd", + "name" : "setRecordingFilename" + }, + "acm001777jsd" : { + "type" : "ControlElement", + "id" : "acm001777jsd", + "name" : "getTimestamp" + }, + "acm001778jsd" : { + "type" : "ControlElement", + "id" : "acm001778jsd", + "name" : "getRecordingFilename" + }, + "acm001779jsd" : { + "type" : "ControlElement", + "id" : "acm001779jsd", + "name" : "startRecord" + }, + "acm001780jsd" : { + "type" : "ClassUnit", + "id" : "acm001780jsd", + "name" : "VoiceStartRecordingEvent", + "compilationUnitId" : "acm001768jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001774jsd", "acm001775jsd", "acm001776jsd", "acm001777jsd", "acm001778jsd", "acm001779jsd" ] + }, + "acm001781jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001781jsd", + "name" : "VoiceUserJoinedEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001796jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001782jsd" : { + "type" : "CodePackage", + "id" : "acm001782jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001783jsd" ] + }, + "acm001783jsd" : { + "type" : "CodePackage", + "id" : "acm001783jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001784jsd" ] + }, + "acm001784jsd" : { + "type" : "CodePackage", + "id" : "acm001784jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001785jsd" ] + }, + "acm001785jsd" : { + "type" : "CodePackage", + "id" : "acm001785jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001786jsd" ] + }, + "acm001786jsd" : { + "type" : "CodePackage", + "id" : "acm001786jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001781jsd" ] + }, + "acm001787jsd" : { + "type" : "ControlElement", + "id" : "acm001787jsd", + "name" : "VoiceUserJoinedEvent" + }, + "acm001788jsd" : { + "type" : "ControlElement", + "id" : "acm001788jsd", + "name" : "getUserId" + }, + "acm001789jsd" : { + "type" : "ControlElement", + "id" : "acm001789jsd", + "name" : "getVoiceUserId" + }, + "acm001790jsd" : { + "type" : "ControlElement", + "id" : "acm001790jsd", + "name" : "getCallerIdNum" + }, + "acm001791jsd" : { + "type" : "ControlElement", + "id" : "acm001791jsd", + "name" : "getCallerIdName" + }, + "acm001792jsd" : { + "type" : "ControlElement", + "id" : "acm001792jsd", + "name" : "getMuted" + }, + "acm001793jsd" : { + "type" : "ControlElement", + "id" : "acm001793jsd", + "name" : "getSpeaking" + }, + "acm001794jsd" : { + "type" : "ControlElement", + "id" : "acm001794jsd", + "name" : "isLocked" + }, + "acm001795jsd" : { + "type" : "ControlElement", + "id" : "acm001795jsd", + "name" : "getCallingWith" + }, + "acm001796jsd" : { + "type" : "ClassUnit", + "id" : "acm001796jsd", + "name" : "VoiceUserJoinedEvent", + "compilationUnitId" : "acm001781jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001787jsd", "acm001788jsd", "acm001789jsd", "acm001790jsd", "acm001791jsd", "acm001792jsd", "acm001793jsd", "acm001794jsd", "acm001795jsd" ] + }, + "acm001797jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001797jsd", + "name" : "VoiceUserLeftEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001805jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001798jsd" : { + "type" : "CodePackage", + "id" : "acm001798jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001799jsd" ] + }, + "acm001799jsd" : { + "type" : "CodePackage", + "id" : "acm001799jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001800jsd" ] + }, + "acm001800jsd" : { + "type" : "CodePackage", + "id" : "acm001800jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001801jsd" ] + }, + "acm001801jsd" : { + "type" : "CodePackage", + "id" : "acm001801jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001802jsd" ] + }, + "acm001802jsd" : { + "type" : "CodePackage", + "id" : "acm001802jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001797jsd" ] + }, + "acm001803jsd" : { + "type" : "ControlElement", + "id" : "acm001803jsd", + "name" : "VoiceUserLeftEvent" + }, + "acm001804jsd" : { + "type" : "ControlElement", + "id" : "acm001804jsd", + "name" : "getUserId" + }, + "acm001805jsd" : { + "type" : "ClassUnit", + "id" : "acm001805jsd", + "name" : "VoiceUserLeftEvent", + "compilationUnitId" : "acm001797jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001803jsd", "acm001804jsd" ] + }, + "acm001806jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001806jsd", + "name" : "VoiceUserLockedEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001815jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001807jsd" : { + "type" : "CodePackage", + "id" : "acm001807jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001808jsd" ] + }, + "acm001808jsd" : { + "type" : "CodePackage", + "id" : "acm001808jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001809jsd" ] + }, + "acm001809jsd" : { + "type" : "CodePackage", + "id" : "acm001809jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001810jsd" ] + }, + "acm001810jsd" : { + "type" : "CodePackage", + "id" : "acm001810jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001811jsd" ] + }, + "acm001811jsd" : { + "type" : "CodePackage", + "id" : "acm001811jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001806jsd" ] + }, + "acm001812jsd" : { + "type" : "ControlElement", + "id" : "acm001812jsd", + "name" : "VoiceUserLockedEvent" + }, + "acm001813jsd" : { + "type" : "ControlElement", + "id" : "acm001813jsd", + "name" : "getUserId" + }, + "acm001814jsd" : { + "type" : "ControlElement", + "id" : "acm001814jsd", + "name" : "isLocked" + }, + "acm001815jsd" : { + "type" : "ClassUnit", + "id" : "acm001815jsd", + "name" : "VoiceUserLockedEvent", + "compilationUnitId" : "acm001806jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001812jsd", "acm001813jsd", "acm001814jsd" ] + }, + "acm001816jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001816jsd", + "name" : "VoiceUserMutedEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001825jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001817jsd" : { + "type" : "CodePackage", + "id" : "acm001817jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001818jsd" ] + }, + "acm001818jsd" : { + "type" : "CodePackage", + "id" : "acm001818jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001819jsd" ] + }, + "acm001819jsd" : { + "type" : "CodePackage", + "id" : "acm001819jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001820jsd" ] + }, + "acm001820jsd" : { + "type" : "CodePackage", + "id" : "acm001820jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001821jsd" ] + }, + "acm001821jsd" : { + "type" : "CodePackage", + "id" : "acm001821jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001816jsd" ] + }, + "acm001822jsd" : { + "type" : "ControlElement", + "id" : "acm001822jsd", + "name" : "VoiceUserMutedEvent" + }, + "acm001823jsd" : { + "type" : "ControlElement", + "id" : "acm001823jsd", + "name" : "getUserId" + }, + "acm001824jsd" : { + "type" : "ControlElement", + "id" : "acm001824jsd", + "name" : "isMuted" + }, + "acm001825jsd" : { + "type" : "ClassUnit", + "id" : "acm001825jsd", + "name" : "VoiceUserMutedEvent", + "compilationUnitId" : "acm001816jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001822jsd", "acm001823jsd", "acm001824jsd" ] + }, + "acm001826jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001826jsd", + "name" : "VoiceUserTalkingEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001835jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001827jsd" : { + "type" : "CodePackage", + "id" : "acm001827jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001828jsd" ] + }, + "acm001828jsd" : { + "type" : "CodePackage", + "id" : "acm001828jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001829jsd" ] + }, + "acm001829jsd" : { + "type" : "CodePackage", + "id" : "acm001829jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001830jsd" ] + }, + "acm001830jsd" : { + "type" : "CodePackage", + "id" : "acm001830jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001831jsd" ] + }, + "acm001831jsd" : { + "type" : "CodePackage", + "id" : "acm001831jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001826jsd" ] + }, + "acm001832jsd" : { + "type" : "ControlElement", + "id" : "acm001832jsd", + "name" : "VoiceUserTalkingEvent" + }, + "acm001833jsd" : { + "type" : "ControlElement", + "id" : "acm001833jsd", + "name" : "getUserId" + }, + "acm001834jsd" : { + "type" : "ControlElement", + "id" : "acm001834jsd", + "name" : "isTalking" + }, + "acm001835jsd" : { + "type" : "ClassUnit", + "id" : "acm001835jsd", + "name" : "VoiceUserTalkingEvent", + "compilationUnitId" : "acm001826jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001832jsd", "acm001833jsd", "acm001834jsd" ] + }, + "acm001836jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001836jsd", + "name" : "VoiceUsersStatusEvent", + "parentId" : "acm001680jsd", + "content" : [ "acm001843jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "events" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001837jsd" : { + "type" : "CodePackage", + "id" : "acm001837jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001838jsd" ] + }, + "acm001838jsd" : { + "type" : "CodePackage", + "id" : "acm001838jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001839jsd" ] + }, + "acm001839jsd" : { + "type" : "CodePackage", + "id" : "acm001839jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001840jsd" ] + }, + "acm001840jsd" : { + "type" : "CodePackage", + "id" : "acm001840jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001841jsd" ] + }, + "acm001841jsd" : { + "type" : "CodePackage", + "id" : "acm001841jsd", + "name" : "events", + "parentId" : null, + "content" : [ "acm001836jsd" ] + }, + "acm001842jsd" : { + "type" : "ControlElement", + "id" : "acm001842jsd", + "name" : "VoiceUsersStatusEvent" + }, + "acm001843jsd" : { + "type" : "ClassUnit", + "id" : "acm001843jsd", + "name" : "VoiceUsersStatusEvent", + "compilationUnitId" : "acm001836jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001693jsd", "acm001701jsd" ], + "content" : [ "acm001842jsd" ] + }, + "acm001844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001844jsd", + "name" : "ConnectionManager", + "parentId" : "acm001849jsd", + "content" : [ "acm001871jsd", "acm001873jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001845jsd" : { + "type" : "CodePackage", + "id" : "acm001845jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001846jsd" ] + }, + "acm001846jsd" : { + "type" : "CodePackage", + "id" : "acm001846jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001847jsd" ] + }, + "acm001847jsd" : { + "type" : "CodePackage", + "id" : "acm001847jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001848jsd" ] + }, + "acm001848jsd" : { + "type" : "CodePackage", + "id" : "acm001848jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001849jsd" ] + }, + "acm001849jsd" : { + "type" : "CodePackage", + "id" : "acm001849jsd", + "name" : "freeswitch", + "parentId" : "acm001577jsd", + "content" : [ "acm001844jsd", "acm001874jsd", "acm001886jsd", "acm001916jsd", "acm001945jsd", "acm001959jsd", "acm002153jsd" ] + }, + "acm001850jsd" : { + "type" : "ControlElement", + "id" : "acm001850jsd", + "name" : "ConnectionManager" + }, + "acm001851jsd" : { + "type" : "ControlElement", + "id" : "acm001851jsd", + "name" : "connect" + }, + "acm001852jsd" : { + "type" : "ControlElement", + "id" : "acm001852jsd", + "name" : "start" + }, + "acm001853jsd" : { + "type" : "ControlElement", + "id" : "acm001853jsd", + "name" : "stop" + }, + "acm001854jsd" : { + "type" : "ControlElement", + "id" : "acm001854jsd", + "name" : "run" + }, + "acm001855jsd" : { + "type" : "ControlElement", + "id" : "acm001855jsd", + "name" : "broadcast" + }, + "acm001856jsd" : { + "type" : "ControlElement", + "id" : "acm001856jsd", + "name" : "getUsersStatus" + }, + "acm001857jsd" : { + "type" : "ControlElement", + "id" : "acm001857jsd", + "name" : "getUsers" + }, + "acm001858jsd" : { + "type" : "ControlElement", + "id" : "acm001858jsd", + "name" : "checkIfConfIsRunningCommand" + }, + "acm001859jsd" : { + "type" : "ControlElement", + "id" : "acm001859jsd", + "name" : "checkFreeswitchStatus" + }, + "acm001860jsd" : { + "type" : "ControlElement", + "id" : "acm001860jsd", + "name" : "forceEjectUser" + }, + "acm001861jsd" : { + "type" : "ControlElement", + "id" : "acm001861jsd", + "name" : "checkIfConferenceIsRecording" + }, + "acm001862jsd" : { + "type" : "ControlElement", + "id" : "acm001862jsd", + "name" : "mute" + }, + "acm001863jsd" : { + "type" : "ControlElement", + "id" : "acm001863jsd", + "name" : "deaf" + }, + "acm001864jsd" : { + "type" : "ControlElement", + "id" : "acm001864jsd", + "name" : "hold" + }, + "acm001865jsd" : { + "type" : "ControlElement", + "id" : "acm001865jsd", + "name" : "playSound" + }, + "acm001866jsd" : { + "type" : "ControlElement", + "id" : "acm001866jsd", + "name" : "stopSound" + }, + "acm001867jsd" : { + "type" : "ControlElement", + "id" : "acm001867jsd", + "name" : "tranfer" + }, + "acm001868jsd" : { + "type" : "ControlElement", + "id" : "acm001868jsd", + "name" : "eject" + }, + "acm001869jsd" : { + "type" : "ControlElement", + "id" : "acm001869jsd", + "name" : "ejectAll" + }, + "acm001870jsd" : { + "type" : "ControlElement", + "id" : "acm001870jsd", + "name" : "record" + }, + "acm001871jsd" : { + "type" : "ClassUnit", + "id" : "acm001871jsd", + "name" : "ConnectionManager", + "compilationUnitId" : "acm001844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm001871jsd", "acm001873jsd", "acm001915jsd", "acm001963jsd", "acm001975jsd", "acm001986jsd", "acm001997jsd", "acm002007jsd", "acm002028jsd", "acm002038jsd", "acm002050jsd", "acm002074jsd", "acm002085jsd", "acm002095jsd", "acm002105jsd", "acm002115jsd", "acm002126jsd", "acm002136jsd", "acm002146jsd", "acm005745jsd", "acm005766jsd", "acm005877jsd", "acm005958jsd", "acm006056jsd" ], + "content" : [ "acm001850jsd", "acm001851jsd", "acm001852jsd", "acm001853jsd", "acm001854jsd", "acm001855jsd", "acm001856jsd", "acm001857jsd", "acm001858jsd", "acm001859jsd", "acm001860jsd", "acm001861jsd", "acm001862jsd", "acm001863jsd", "acm001864jsd", "acm001865jsd", "acm001866jsd", "acm001867jsd", "acm001868jsd", "acm001869jsd", "acm001870jsd" ] + }, + "acm001872jsd" : { + "type" : "ControlElement", + "id" : "acm001872jsd", + "name" : "run" + }, + "acm001873jsd" : { + "type" : "ClassUnit", + "id" : "acm001873jsd", + "name" : "ConnectThread", + "compilationUnitId" : "acm001844jsd", + "parentDatatypeId" : "acm001871jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001872jsd" ] + }, + "acm001874jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001874jsd", + "name" : "DelayedCommandSenderService", + "parentId" : "acm001849jsd", + "content" : [ "acm001885jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001875jsd" : { + "type" : "CodePackage", + "id" : "acm001875jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001876jsd" ] + }, + "acm001876jsd" : { + "type" : "CodePackage", + "id" : "acm001876jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001877jsd" ] + }, + "acm001877jsd" : { + "type" : "CodePackage", + "id" : "acm001877jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001878jsd" ] + }, + "acm001878jsd" : { + "type" : "CodePackage", + "id" : "acm001878jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001879jsd" ] + }, + "acm001879jsd" : { + "type" : "CodePackage", + "id" : "acm001879jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001874jsd" ] + }, + "acm001880jsd" : { + "type" : "ControlElement", + "id" : "acm001880jsd", + "name" : "setDelayedCommandListener" + }, + "acm001881jsd" : { + "type" : "ControlElement", + "id" : "acm001881jsd", + "name" : "stop" + }, + "acm001882jsd" : { + "type" : "ControlElement", + "id" : "acm001882jsd", + "name" : "start" + }, + "acm001883jsd" : { + "type" : "ControlElement", + "id" : "acm001883jsd", + "name" : "run" + }, + "acm001884jsd" : { + "type" : "ControlElement", + "id" : "acm001884jsd", + "name" : "handleMessage" + }, + "acm001885jsd" : { + "type" : "ClassUnit", + "id" : "acm001885jsd", + "name" : "DelayedCommandSenderService", + "compilationUnitId" : "acm001874jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001885jsd", "acm001952jsd", "acm002018jsd", "acm002063jsd" ], + "content" : [ "acm001880jsd", "acm001881jsd", "acm001882jsd", "acm001883jsd", "acm001884jsd" ] + }, + "acm001886jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001886jsd", + "name" : "ESLEventListener", + "parentId" : "acm001849jsd", + "content" : [ "acm001915jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001887jsd" : { + "type" : "CodePackage", + "id" : "acm001887jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001888jsd" ] + }, + "acm001888jsd" : { + "type" : "CodePackage", + "id" : "acm001888jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001889jsd" ] + }, + "acm001889jsd" : { + "type" : "CodePackage", + "id" : "acm001889jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001890jsd" ] + }, + "acm001890jsd" : { + "type" : "CodePackage", + "id" : "acm001890jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001891jsd" ] + }, + "acm001891jsd" : { + "type" : "CodePackage", + "id" : "acm001891jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001886jsd" ] + }, + "acm001892jsd" : { + "type" : "ControlElement", + "id" : "acm001892jsd", + "name" : "ESLEventListener" + }, + "acm001893jsd" : { + "type" : "ControlElement", + "id" : "acm001893jsd", + "name" : "conferenceEventPlayFile" + }, + "acm001894jsd" : { + "type" : "ControlElement", + "id" : "acm001894jsd", + "name" : "backgroundJobResultReceived" + }, + "acm001895jsd" : { + "type" : "ControlElement", + "id" : "acm001895jsd", + "name" : "exceptionCaught" + }, + "acm001896jsd" : { + "type" : "ControlElement", + "id" : "acm001896jsd", + "name" : "conferenceEventJoin" + }, + "acm001897jsd" : { + "type" : "ControlElement", + "id" : "acm001897jsd", + "name" : "conferenceEventLeave" + }, + "acm001898jsd" : { + "type" : "ControlElement", + "id" : "acm001898jsd", + "name" : "conferenceEventMute" + }, + "acm001899jsd" : { + "type" : "ControlElement", + "id" : "acm001899jsd", + "name" : "conferenceEventUnMute" + }, + "acm001900jsd" : { + "type" : "ControlElement", + "id" : "acm001900jsd", + "name" : "conferenceEventAction" + }, + "acm001901jsd" : { + "type" : "ControlElement", + "id" : "acm001901jsd", + "name" : "conferenceEventTransfer" + }, + "acm001902jsd" : { + "type" : "ControlElement", + "id" : "acm001902jsd", + "name" : "conferenceEventThreadRun" + }, + "acm001903jsd" : { + "type" : "ControlElement", + "id" : "acm001903jsd", + "name" : "conferenceEventRecord" + }, + "acm001904jsd" : { + "type" : "ControlElement", + "id" : "acm001904jsd", + "name" : "genTimestamp" + }, + "acm001905jsd" : { + "type" : "ControlElement", + "id" : "acm001905jsd", + "name" : "eventReceived" + }, + "acm001906jsd" : { + "type" : "ControlElement", + "id" : "acm001906jsd", + "name" : "getMemberIdFromEvent" + }, + "acm001907jsd" : { + "type" : "ControlElement", + "id" : "acm001907jsd", + "name" : "getCallerIdFromEvent" + }, + "acm001908jsd" : { + "type" : "ControlElement", + "id" : "acm001908jsd", + "name" : "getMemberUUIDFromEvent" + }, + "acm001909jsd" : { + "type" : "ControlElement", + "id" : "acm001909jsd", + "name" : "getCallerChannelCreateTimeFromEvent" + }, + "acm001910jsd" : { + "type" : "ControlElement", + "id" : "acm001910jsd", + "name" : "getCallerChannelHangupTimeFromEvent" + }, + "acm001911jsd" : { + "type" : "ControlElement", + "id" : "acm001911jsd", + "name" : "getCallerIdNameFromEvent" + }, + "acm001912jsd" : { + "type" : "ControlElement", + "id" : "acm001912jsd", + "name" : "getRecordFilenameFromEvent" + }, + "acm001913jsd" : { + "type" : "ControlElement", + "id" : "acm001913jsd", + "name" : "getOldFloorHolderMemberIdFromEvent" + }, + "acm001914jsd" : { + "type" : "ControlElement", + "id" : "acm001914jsd", + "name" : "getNewFloorHolderMemberIdFromEvent" + }, + "acm001915jsd" : { + "type" : "ClassUnit", + "id" : "acm001915jsd", + "name" : "ESLEventListener", + "compilationUnitId" : "acm001886jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005672jsd" ], + "datatypeReferencesIds" : [ "acm001685jsd", "acm001709jsd", "acm001717jsd", "acm001741jsd", "acm001758jsd", "acm001780jsd", "acm001796jsd", "acm001805jsd", "acm001825jsd", "acm001835jsd", "acm001915jsd", "acm005999jsd" ], + "content" : [ "acm001892jsd", "acm001893jsd", "acm001894jsd", "acm001895jsd", "acm001896jsd", "acm001897jsd", "acm001898jsd", "acm001899jsd", "acm001900jsd", "acm001901jsd", "acm001902jsd", "acm001903jsd", "acm001904jsd", "acm001905jsd", "acm001906jsd", "acm001907jsd", "acm001908jsd", "acm001909jsd", "acm001910jsd", "acm001911jsd", "acm001912jsd", "acm001913jsd", "acm001914jsd" ] + }, + "acm001916jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001916jsd", + "name" : "FreeswitchApplication", + "parentId" : "acm001849jsd", + "content" : [ "acm001944jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001917jsd" : { + "type" : "CodePackage", + "id" : "acm001917jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001918jsd" ] + }, + "acm001918jsd" : { + "type" : "CodePackage", + "id" : "acm001918jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001919jsd" ] + }, + "acm001919jsd" : { + "type" : "CodePackage", + "id" : "acm001919jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001920jsd" ] + }, + "acm001920jsd" : { + "type" : "CodePackage", + "id" : "acm001920jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001921jsd" ] + }, + "acm001921jsd" : { + "type" : "CodePackage", + "id" : "acm001921jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001916jsd" ] + }, + "acm001922jsd" : { + "type" : "ControlElement", + "id" : "acm001922jsd", + "name" : "FreeswitchApplication" + }, + "acm001923jsd" : { + "type" : "ControlElement", + "id" : "acm001923jsd", + "name" : "runDelayedCommand" + }, + "acm001924jsd" : { + "type" : "ControlElement", + "id" : "acm001924jsd", + "name" : "queueMessage" + }, + "acm001925jsd" : { + "type" : "ControlElement", + "id" : "acm001925jsd", + "name" : "transferUserToMeeting" + }, + "acm001926jsd" : { + "type" : "ControlElement", + "id" : "acm001926jsd", + "name" : "start" + }, + "acm001927jsd" : { + "type" : "ControlElement", + "id" : "acm001927jsd", + "name" : "run" + }, + "acm001928jsd" : { + "type" : "ControlElement", + "id" : "acm001928jsd", + "name" : "getUsersStatus" + }, + "acm001929jsd" : { + "type" : "ControlElement", + "id" : "acm001929jsd", + "name" : "checkRunningAndRecording" + }, + "acm001930jsd" : { + "type" : "ControlElement", + "id" : "acm001930jsd", + "name" : "getAllUsers" + }, + "acm001931jsd" : { + "type" : "ControlElement", + "id" : "acm001931jsd", + "name" : "muteUser" + }, + "acm001932jsd" : { + "type" : "ControlElement", + "id" : "acm001932jsd", + "name" : "deafUser" + }, + "acm001933jsd" : { + "type" : "ControlElement", + "id" : "acm001933jsd", + "name" : "holdUser" + }, + "acm001934jsd" : { + "type" : "ControlElement", + "id" : "acm001934jsd", + "name" : "playSound" + }, + "acm001935jsd" : { + "type" : "ControlElement", + "id" : "acm001935jsd", + "name" : "stopSound" + }, + "acm001936jsd" : { + "type" : "ControlElement", + "id" : "acm001936jsd", + "name" : "eject" + }, + "acm001937jsd" : { + "type" : "ControlElement", + "id" : "acm001937jsd", + "name" : "ejectAll" + }, + "acm001938jsd" : { + "type" : "ControlElement", + "id" : "acm001938jsd", + "name" : "genTimestamp" + }, + "acm001939jsd" : { + "type" : "ControlElement", + "id" : "acm001939jsd", + "name" : "startRecording" + }, + "acm001940jsd" : { + "type" : "ControlElement", + "id" : "acm001940jsd", + "name" : "stopRecording" + }, + "acm001941jsd" : { + "type" : "ControlElement", + "id" : "acm001941jsd", + "name" : "sendMessageToFreeswitch" + }, + "acm001942jsd" : { + "type" : "ControlElement", + "id" : "acm001942jsd", + "name" : "run" + }, + "acm001943jsd" : { + "type" : "ControlElement", + "id" : "acm001943jsd", + "name" : "stop" + }, + "acm001944jsd" : { + "type" : "ClassUnit", + "id" : "acm001944jsd", + "name" : "FreeswitchApplication", + "compilationUnitId" : "acm001916jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001952jsd" ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001885jsd", "acm001944jsd", "acm001963jsd", "acm001986jsd", "acm001997jsd", "acm002007jsd", "acm002028jsd", "acm002038jsd", "acm002050jsd", "acm002063jsd", "acm002074jsd", "acm002085jsd", "acm002095jsd", "acm002105jsd", "acm002115jsd", "acm002126jsd", "acm002136jsd", "acm002146jsd" ], + "content" : [ "acm001922jsd", "acm001923jsd", "acm001924jsd", "acm001925jsd", "acm001926jsd", "acm001927jsd", "acm001928jsd", "acm001929jsd", "acm001930jsd", "acm001931jsd", "acm001932jsd", "acm001933jsd", "acm001934jsd", "acm001935jsd", "acm001936jsd", "acm001937jsd", "acm001938jsd", "acm001939jsd", "acm001940jsd", "acm001941jsd", "acm001942jsd", "acm001943jsd" ] + }, + "acm001945jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001945jsd", + "name" : "IDelayedCommandListener", + "parentId" : "acm001849jsd", + "content" : [ "acm001952jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001946jsd" : { + "type" : "CodePackage", + "id" : "acm001946jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001947jsd" ] + }, + "acm001947jsd" : { + "type" : "CodePackage", + "id" : "acm001947jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001948jsd" ] + }, + "acm001948jsd" : { + "type" : "CodePackage", + "id" : "acm001948jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001949jsd" ] + }, + "acm001949jsd" : { + "type" : "CodePackage", + "id" : "acm001949jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001950jsd" ] + }, + "acm001950jsd" : { + "type" : "CodePackage", + "id" : "acm001950jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001945jsd" ] + }, + "acm001951jsd" : { + "type" : "ControlElement", + "id" : "acm001951jsd", + "name" : "runDelayedCommand" + }, + "acm001952jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001952jsd", + "name" : "IDelayedCommandListener", + "compilationUnitId" : "acm001945jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002063jsd" ], + "content" : [ "acm001951jsd" ] + }, + "acm001953jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001953jsd", + "name" : "BroadcastConferenceCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm001963jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001954jsd" : { + "type" : "CodePackage", + "id" : "acm001954jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001955jsd" ] + }, + "acm001955jsd" : { + "type" : "CodePackage", + "id" : "acm001955jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001956jsd" ] + }, + "acm001956jsd" : { + "type" : "CodePackage", + "id" : "acm001956jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001957jsd" ] + }, + "acm001957jsd" : { + "type" : "CodePackage", + "id" : "acm001957jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001958jsd" ] + }, + "acm001958jsd" : { + "type" : "CodePackage", + "id" : "acm001958jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001959jsd" ] + }, + "acm001959jsd" : { + "type" : "CodePackage", + "id" : "acm001959jsd", + "name" : "actions", + "parentId" : "acm001849jsd", + "content" : [ "acm001953jsd", "acm001964jsd", "acm001976jsd", "acm001987jsd", "acm001998jsd", "acm002008jsd", "acm002019jsd", "acm002029jsd", "acm002039jsd", "acm002051jsd", "acm002064jsd", "acm002075jsd", "acm002086jsd", "acm002096jsd", "acm002106jsd", "acm002116jsd", "acm002127jsd", "acm002137jsd" ] + }, + "acm001960jsd" : { + "type" : "ControlElement", + "id" : "acm001960jsd", + "name" : "BroadcastConferenceCommand" + }, + "acm001961jsd" : { + "type" : "ControlElement", + "id" : "acm001961jsd", + "name" : "getCommandArgs" + }, + "acm001962jsd" : { + "type" : "ControlElement", + "id" : "acm001962jsd", + "name" : "handleResponse" + }, + "acm001963jsd" : { + "type" : "ClassUnit", + "id" : "acm001963jsd", + "name" : "BroadcastConferenceCommand", + "compilationUnitId" : "acm001953jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm006056jsd" ], + "content" : [ "acm001960jsd", "acm001961jsd", "acm001962jsd" ] + }, + "acm001964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001964jsd", + "name" : "CheckFreeswitchStatusCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm001975jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001965jsd" : { + "type" : "CodePackage", + "id" : "acm001965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001966jsd" ] + }, + "acm001966jsd" : { + "type" : "CodePackage", + "id" : "acm001966jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001967jsd" ] + }, + "acm001967jsd" : { + "type" : "CodePackage", + "id" : "acm001967jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001968jsd" ] + }, + "acm001968jsd" : { + "type" : "CodePackage", + "id" : "acm001968jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001969jsd" ] + }, + "acm001969jsd" : { + "type" : "CodePackage", + "id" : "acm001969jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001970jsd" ] + }, + "acm001970jsd" : { + "type" : "CodePackage", + "id" : "acm001970jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm001964jsd" ] + }, + "acm001971jsd" : { + "type" : "ControlElement", + "id" : "acm001971jsd", + "name" : "CheckFreeswitchStatusCommand" + }, + "acm001972jsd" : { + "type" : "ControlElement", + "id" : "acm001972jsd", + "name" : "getCommand" + }, + "acm001973jsd" : { + "type" : "ControlElement", + "id" : "acm001973jsd", + "name" : "getCommandArgs" + }, + "acm001974jsd" : { + "type" : "ControlElement", + "id" : "acm001974jsd", + "name" : "handleResponse" + }, + "acm001975jsd" : { + "type" : "ClassUnit", + "id" : "acm001975jsd", + "name" : "CheckFreeswitchStatusCommand", + "compilationUnitId" : "acm001964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm001725jsd", "acm001975jsd", "acm006056jsd" ], + "content" : [ "acm001971jsd", "acm001972jsd", "acm001973jsd", "acm001974jsd" ] + }, + "acm001976jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001976jsd", + "name" : "CheckIfConfIsRunningCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm001986jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001977jsd" : { + "type" : "CodePackage", + "id" : "acm001977jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001978jsd" ] + }, + "acm001978jsd" : { + "type" : "CodePackage", + "id" : "acm001978jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001979jsd" ] + }, + "acm001979jsd" : { + "type" : "CodePackage", + "id" : "acm001979jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001980jsd" ] + }, + "acm001980jsd" : { + "type" : "CodePackage", + "id" : "acm001980jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001981jsd" ] + }, + "acm001981jsd" : { + "type" : "CodePackage", + "id" : "acm001981jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001982jsd" ] + }, + "acm001982jsd" : { + "type" : "CodePackage", + "id" : "acm001982jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm001976jsd" ] + }, + "acm001983jsd" : { + "type" : "ControlElement", + "id" : "acm001983jsd", + "name" : "CheckIfConfIsRunningCommand" + }, + "acm001984jsd" : { + "type" : "ControlElement", + "id" : "acm001984jsd", + "name" : "getCommandArgs" + }, + "acm001985jsd" : { + "type" : "ControlElement", + "id" : "acm001985jsd", + "name" : "handleResponse" + }, + "acm001986jsd" : { + "type" : "ClassUnit", + "id" : "acm001986jsd", + "name" : "CheckIfConfIsRunningCommand", + "compilationUnitId" : "acm001976jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm001885jsd", "acm001986jsd", "acm002050jsd", "acm002174jsd", "acm002201jsd", "acm006056jsd" ], + "content" : [ "acm001983jsd", "acm001984jsd", "acm001985jsd" ] + }, + "acm001987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001987jsd", + "name" : "ConferenceCheckRecordCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm001997jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001988jsd" : { + "type" : "CodePackage", + "id" : "acm001988jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001989jsd" ] + }, + "acm001989jsd" : { + "type" : "CodePackage", + "id" : "acm001989jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm001990jsd" ] + }, + "acm001990jsd" : { + "type" : "CodePackage", + "id" : "acm001990jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001991jsd" ] + }, + "acm001991jsd" : { + "type" : "CodePackage", + "id" : "acm001991jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm001992jsd" ] + }, + "acm001992jsd" : { + "type" : "CodePackage", + "id" : "acm001992jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm001993jsd" ] + }, + "acm001993jsd" : { + "type" : "CodePackage", + "id" : "acm001993jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm001987jsd" ] + }, + "acm001994jsd" : { + "type" : "ControlElement", + "id" : "acm001994jsd", + "name" : "ConferenceCheckRecordCommand" + }, + "acm001995jsd" : { + "type" : "ControlElement", + "id" : "acm001995jsd", + "name" : "getCommandArgs" + }, + "acm001996jsd" : { + "type" : "ControlElement", + "id" : "acm001996jsd", + "name" : "handleResponse" + }, + "acm001997jsd" : { + "type" : "ClassUnit", + "id" : "acm001997jsd", + "name" : "ConferenceCheckRecordCommand", + "compilationUnitId" : "acm001987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001701jsd", "acm001709jsd", "acm001749jsd", "acm001997jsd", "acm002174jsd", "acm002201jsd", "acm006056jsd" ], + "content" : [ "acm001994jsd", "acm001995jsd", "acm001996jsd" ] + }, + "acm001998jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001998jsd", + "name" : "DeafUserCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002007jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001999jsd" : { + "type" : "CodePackage", + "id" : "acm001999jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002000jsd" ] + }, + "acm002000jsd" : { + "type" : "CodePackage", + "id" : "acm002000jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002001jsd" ] + }, + "acm002001jsd" : { + "type" : "CodePackage", + "id" : "acm002001jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002002jsd" ] + }, + "acm002002jsd" : { + "type" : "CodePackage", + "id" : "acm002002jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002003jsd" ] + }, + "acm002003jsd" : { + "type" : "CodePackage", + "id" : "acm002003jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002004jsd" ] + }, + "acm002004jsd" : { + "type" : "CodePackage", + "id" : "acm002004jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm001998jsd" ] + }, + "acm002005jsd" : { + "type" : "ControlElement", + "id" : "acm002005jsd", + "name" : "DeafUserCommand" + }, + "acm002006jsd" : { + "type" : "ControlElement", + "id" : "acm002006jsd", + "name" : "getCommandArgs" + }, + "acm002007jsd" : { + "type" : "ClassUnit", + "id" : "acm002007jsd", + "name" : "DeafUserCommand", + "compilationUnitId" : "acm001998jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002005jsd", "acm002006jsd" ] + }, + "acm002008jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002008jsd", + "name" : "DelayedCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002018jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002009jsd" : { + "type" : "CodePackage", + "id" : "acm002009jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002010jsd" ] + }, + "acm002010jsd" : { + "type" : "CodePackage", + "id" : "acm002010jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002011jsd" ] + }, + "acm002011jsd" : { + "type" : "CodePackage", + "id" : "acm002011jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002012jsd" ] + }, + "acm002012jsd" : { + "type" : "CodePackage", + "id" : "acm002012jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002013jsd" ] + }, + "acm002013jsd" : { + "type" : "CodePackage", + "id" : "acm002013jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002014jsd" ] + }, + "acm002014jsd" : { + "type" : "CodePackage", + "id" : "acm002014jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002008jsd" ] + }, + "acm002015jsd" : { + "type" : "ControlElement", + "id" : "acm002015jsd", + "name" : "DelayedCommand" + }, + "acm002016jsd" : { + "type" : "ControlElement", + "id" : "acm002016jsd", + "name" : "getDelay" + }, + "acm002017jsd" : { + "type" : "ControlElement", + "id" : "acm002017jsd", + "name" : "compareTo" + }, + "acm002018jsd" : { + "type" : "ClassUnit", + "id" : "acm002018jsd", + "name" : "DelayedCommand", + "compilationUnitId" : "acm002008jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002018jsd", "acm002063jsd" ], + "content" : [ "acm002015jsd", "acm002016jsd", "acm002017jsd" ] + }, + "acm002019jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002019jsd", + "name" : "EjectAllUsersCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002028jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002020jsd" : { + "type" : "CodePackage", + "id" : "acm002020jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002021jsd" ] + }, + "acm002021jsd" : { + "type" : "CodePackage", + "id" : "acm002021jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002022jsd" ] + }, + "acm002022jsd" : { + "type" : "CodePackage", + "id" : "acm002022jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002023jsd" ] + }, + "acm002023jsd" : { + "type" : "CodePackage", + "id" : "acm002023jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002024jsd" ] + }, + "acm002024jsd" : { + "type" : "CodePackage", + "id" : "acm002024jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002025jsd" ] + }, + "acm002025jsd" : { + "type" : "CodePackage", + "id" : "acm002025jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002019jsd" ] + }, + "acm002026jsd" : { + "type" : "ControlElement", + "id" : "acm002026jsd", + "name" : "EjectAllUsersCommand" + }, + "acm002027jsd" : { + "type" : "ControlElement", + "id" : "acm002027jsd", + "name" : "getCommandArgs" + }, + "acm002028jsd" : { + "type" : "ClassUnit", + "id" : "acm002028jsd", + "name" : "EjectAllUsersCommand", + "compilationUnitId" : "acm002019jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002026jsd", "acm002027jsd" ] + }, + "acm002029jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002029jsd", + "name" : "EjectUserCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002038jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002030jsd" : { + "type" : "CodePackage", + "id" : "acm002030jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002031jsd" ] + }, + "acm002031jsd" : { + "type" : "CodePackage", + "id" : "acm002031jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002032jsd" ] + }, + "acm002032jsd" : { + "type" : "CodePackage", + "id" : "acm002032jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002033jsd" ] + }, + "acm002033jsd" : { + "type" : "CodePackage", + "id" : "acm002033jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002034jsd" ] + }, + "acm002034jsd" : { + "type" : "CodePackage", + "id" : "acm002034jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002035jsd" ] + }, + "acm002035jsd" : { + "type" : "CodePackage", + "id" : "acm002035jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002029jsd" ] + }, + "acm002036jsd" : { + "type" : "ControlElement", + "id" : "acm002036jsd", + "name" : "EjectUserCommand" + }, + "acm002037jsd" : { + "type" : "ControlElement", + "id" : "acm002037jsd", + "name" : "getCommandArgs" + }, + "acm002038jsd" : { + "type" : "ClassUnit", + "id" : "acm002038jsd", + "name" : "EjectUserCommand", + "compilationUnitId" : "acm002029jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002036jsd", "acm002037jsd" ] + }, + "acm002039jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002039jsd", + "name" : "ForceEjectUserCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002050jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002040jsd" : { + "type" : "CodePackage", + "id" : "acm002040jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002041jsd" ] + }, + "acm002041jsd" : { + "type" : "CodePackage", + "id" : "acm002041jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002042jsd" ] + }, + "acm002042jsd" : { + "type" : "CodePackage", + "id" : "acm002042jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002043jsd" ] + }, + "acm002043jsd" : { + "type" : "CodePackage", + "id" : "acm002043jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002044jsd" ] + }, + "acm002044jsd" : { + "type" : "CodePackage", + "id" : "acm002044jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002045jsd" ] + }, + "acm002045jsd" : { + "type" : "CodePackage", + "id" : "acm002045jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002039jsd" ] + }, + "acm002046jsd" : { + "type" : "ControlElement", + "id" : "acm002046jsd", + "name" : "ForceEjectUserCommand" + }, + "acm002047jsd" : { + "type" : "ControlElement", + "id" : "acm002047jsd", + "name" : "getCommand" + }, + "acm002048jsd" : { + "type" : "ControlElement", + "id" : "acm002048jsd", + "name" : "getCommandArgs" + }, + "acm002049jsd" : { + "type" : "ControlElement", + "id" : "acm002049jsd", + "name" : "handleResponse" + }, + "acm002050jsd" : { + "type" : "ClassUnit", + "id" : "acm002050jsd", + "name" : "ForceEjectUserCommand", + "compilationUnitId" : "acm002039jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm002050jsd", "acm006056jsd" ], + "content" : [ "acm002046jsd", "acm002047jsd", "acm002048jsd", "acm002049jsd" ] + }, + "acm002051jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002051jsd", + "name" : "FreeswitchCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002063jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002052jsd" : { + "type" : "CodePackage", + "id" : "acm002052jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002053jsd" ] + }, + "acm002053jsd" : { + "type" : "CodePackage", + "id" : "acm002053jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002054jsd" ] + }, + "acm002054jsd" : { + "type" : "CodePackage", + "id" : "acm002054jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002055jsd" ] + }, + "acm002055jsd" : { + "type" : "CodePackage", + "id" : "acm002055jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002056jsd" ] + }, + "acm002056jsd" : { + "type" : "CodePackage", + "id" : "acm002056jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002057jsd" ] + }, + "acm002057jsd" : { + "type" : "CodePackage", + "id" : "acm002057jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002051jsd" ] + }, + "acm002058jsd" : { + "type" : "ControlElement", + "id" : "acm002058jsd", + "name" : "FreeswitchCommand" + }, + "acm002059jsd" : { + "type" : "ControlElement", + "id" : "acm002059jsd", + "name" : "getCommand" + }, + "acm002060jsd" : { + "type" : "ControlElement", + "id" : "acm002060jsd", + "name" : "getCommandArgs" + }, + "acm002061jsd" : { + "type" : "ControlElement", + "id" : "acm002061jsd", + "name" : "getRoom" + }, + "acm002062jsd" : { + "type" : "ControlElement", + "id" : "acm002062jsd", + "name" : "getRequesterId" + }, + "acm002063jsd" : { + "type" : "ClassUnit", + "id" : "acm002063jsd", + "name" : "FreeswitchCommand", + "compilationUnitId" : "acm002051jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002058jsd", "acm002059jsd", "acm002060jsd", "acm002061jsd", "acm002062jsd" ] + }, + "acm002064jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002064jsd", + "name" : "GetAllUsersCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002074jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002065jsd" : { + "type" : "CodePackage", + "id" : "acm002065jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002066jsd" ] + }, + "acm002066jsd" : { + "type" : "CodePackage", + "id" : "acm002066jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002067jsd" ] + }, + "acm002067jsd" : { + "type" : "CodePackage", + "id" : "acm002067jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002068jsd" ] + }, + "acm002068jsd" : { + "type" : "CodePackage", + "id" : "acm002068jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002069jsd" ] + }, + "acm002069jsd" : { + "type" : "CodePackage", + "id" : "acm002069jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002070jsd" ] + }, + "acm002070jsd" : { + "type" : "CodePackage", + "id" : "acm002070jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002064jsd" ] + }, + "acm002071jsd" : { + "type" : "ControlElement", + "id" : "acm002071jsd", + "name" : "GetAllUsersCommand" + }, + "acm002072jsd" : { + "type" : "ControlElement", + "id" : "acm002072jsd", + "name" : "getCommandArgs" + }, + "acm002073jsd" : { + "type" : "ControlElement", + "id" : "acm002073jsd", + "name" : "handleResponse" + }, + "acm002074jsd" : { + "type" : "ClassUnit", + "id" : "acm002074jsd", + "name" : "GetAllUsersCommand", + "compilationUnitId" : "acm002064jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm001796jsd", "acm002074jsd", "acm002174jsd", "acm002201jsd", "acm006056jsd" ], + "content" : [ "acm002071jsd", "acm002072jsd", "acm002073jsd" ] + }, + "acm002075jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002075jsd", + "name" : "GetUsersStatusCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002085jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002076jsd" : { + "type" : "CodePackage", + "id" : "acm002076jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002077jsd" ] + }, + "acm002077jsd" : { + "type" : "CodePackage", + "id" : "acm002077jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002078jsd" ] + }, + "acm002078jsd" : { + "type" : "CodePackage", + "id" : "acm002078jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002079jsd" ] + }, + "acm002079jsd" : { + "type" : "CodePackage", + "id" : "acm002079jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002080jsd" ] + }, + "acm002080jsd" : { + "type" : "CodePackage", + "id" : "acm002080jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002081jsd" ] + }, + "acm002081jsd" : { + "type" : "CodePackage", + "id" : "acm002081jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002075jsd" ] + }, + "acm002082jsd" : { + "type" : "ControlElement", + "id" : "acm002082jsd", + "name" : "GetUsersStatusCommand" + }, + "acm002083jsd" : { + "type" : "ControlElement", + "id" : "acm002083jsd", + "name" : "getCommandArgs" + }, + "acm002084jsd" : { + "type" : "ControlElement", + "id" : "acm002084jsd", + "name" : "handleResponse" + }, + "acm002085jsd" : { + "type" : "ClassUnit", + "id" : "acm002085jsd", + "name" : "GetUsersStatusCommand", + "compilationUnitId" : "acm002075jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001693jsd", "acm001701jsd", "acm001709jsd", "acm001843jsd", "acm002085jsd", "acm002174jsd", "acm002201jsd", "acm006056jsd" ], + "content" : [ "acm002082jsd", "acm002083jsd", "acm002084jsd" ] + }, + "acm002086jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002086jsd", + "name" : "HoldUserCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002095jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002087jsd" : { + "type" : "CodePackage", + "id" : "acm002087jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002088jsd" ] + }, + "acm002088jsd" : { + "type" : "CodePackage", + "id" : "acm002088jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002089jsd" ] + }, + "acm002089jsd" : { + "type" : "CodePackage", + "id" : "acm002089jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002090jsd" ] + }, + "acm002090jsd" : { + "type" : "CodePackage", + "id" : "acm002090jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002091jsd" ] + }, + "acm002091jsd" : { + "type" : "CodePackage", + "id" : "acm002091jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002092jsd" ] + }, + "acm002092jsd" : { + "type" : "CodePackage", + "id" : "acm002092jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002086jsd" ] + }, + "acm002093jsd" : { + "type" : "ControlElement", + "id" : "acm002093jsd", + "name" : "HoldUserCommand" + }, + "acm002094jsd" : { + "type" : "ControlElement", + "id" : "acm002094jsd", + "name" : "getCommandArgs" + }, + "acm002095jsd" : { + "type" : "ClassUnit", + "id" : "acm002095jsd", + "name" : "HoldUserCommand", + "compilationUnitId" : "acm002086jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002093jsd", "acm002094jsd" ] + }, + "acm002096jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002096jsd", + "name" : "MuteUserCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002105jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002097jsd" : { + "type" : "CodePackage", + "id" : "acm002097jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002098jsd" ] + }, + "acm002098jsd" : { + "type" : "CodePackage", + "id" : "acm002098jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002099jsd" ] + }, + "acm002099jsd" : { + "type" : "CodePackage", + "id" : "acm002099jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002100jsd" ] + }, + "acm002100jsd" : { + "type" : "CodePackage", + "id" : "acm002100jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002101jsd" ] + }, + "acm002101jsd" : { + "type" : "CodePackage", + "id" : "acm002101jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002102jsd" ] + }, + "acm002102jsd" : { + "type" : "CodePackage", + "id" : "acm002102jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002096jsd" ] + }, + "acm002103jsd" : { + "type" : "ControlElement", + "id" : "acm002103jsd", + "name" : "MuteUserCommand" + }, + "acm002104jsd" : { + "type" : "ControlElement", + "id" : "acm002104jsd", + "name" : "getCommandArgs" + }, + "acm002105jsd" : { + "type" : "ClassUnit", + "id" : "acm002105jsd", + "name" : "MuteUserCommand", + "compilationUnitId" : "acm002096jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002103jsd", "acm002104jsd" ] + }, + "acm002106jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002106jsd", + "name" : "PlaySoundCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002115jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002107jsd" : { + "type" : "CodePackage", + "id" : "acm002107jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002108jsd" ] + }, + "acm002108jsd" : { + "type" : "CodePackage", + "id" : "acm002108jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002109jsd" ] + }, + "acm002109jsd" : { + "type" : "CodePackage", + "id" : "acm002109jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002110jsd" ] + }, + "acm002110jsd" : { + "type" : "CodePackage", + "id" : "acm002110jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002111jsd" ] + }, + "acm002111jsd" : { + "type" : "CodePackage", + "id" : "acm002111jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002112jsd" ] + }, + "acm002112jsd" : { + "type" : "CodePackage", + "id" : "acm002112jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002106jsd" ] + }, + "acm002113jsd" : { + "type" : "ControlElement", + "id" : "acm002113jsd", + "name" : "PlaySoundCommand" + }, + "acm002114jsd" : { + "type" : "ControlElement", + "id" : "acm002114jsd", + "name" : "getCommandArgs" + }, + "acm002115jsd" : { + "type" : "ClassUnit", + "id" : "acm002115jsd", + "name" : "PlaySoundCommand", + "compilationUnitId" : "acm002106jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002113jsd", "acm002114jsd" ] + }, + "acm002116jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002116jsd", + "name" : "RecordConferenceCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002126jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002117jsd" : { + "type" : "CodePackage", + "id" : "acm002117jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002118jsd" ] + }, + "acm002118jsd" : { + "type" : "CodePackage", + "id" : "acm002118jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002119jsd" ] + }, + "acm002119jsd" : { + "type" : "CodePackage", + "id" : "acm002119jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002120jsd" ] + }, + "acm002120jsd" : { + "type" : "CodePackage", + "id" : "acm002120jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002121jsd" ] + }, + "acm002121jsd" : { + "type" : "CodePackage", + "id" : "acm002121jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002122jsd" ] + }, + "acm002122jsd" : { + "type" : "CodePackage", + "id" : "acm002122jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002116jsd" ] + }, + "acm002123jsd" : { + "type" : "ControlElement", + "id" : "acm002123jsd", + "name" : "RecordConferenceCommand" + }, + "acm002124jsd" : { + "type" : "ControlElement", + "id" : "acm002124jsd", + "name" : "getCommandArgs" + }, + "acm002125jsd" : { + "type" : "ControlElement", + "id" : "acm002125jsd", + "name" : "handleResponse" + }, + "acm002126jsd" : { + "type" : "ClassUnit", + "id" : "acm002126jsd", + "name" : "RecordConferenceCommand", + "compilationUnitId" : "acm002116jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001709jsd", "acm006056jsd" ], + "content" : [ "acm002123jsd", "acm002124jsd", "acm002125jsd" ] + }, + "acm002127jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002127jsd", + "name" : "StopSoundCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002136jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002128jsd" : { + "type" : "CodePackage", + "id" : "acm002128jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002129jsd" ] + }, + "acm002129jsd" : { + "type" : "CodePackage", + "id" : "acm002129jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002130jsd" ] + }, + "acm002130jsd" : { + "type" : "CodePackage", + "id" : "acm002130jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002131jsd" ] + }, + "acm002131jsd" : { + "type" : "CodePackage", + "id" : "acm002131jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002132jsd" ] + }, + "acm002132jsd" : { + "type" : "CodePackage", + "id" : "acm002132jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002133jsd" ] + }, + "acm002133jsd" : { + "type" : "CodePackage", + "id" : "acm002133jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002127jsd" ] + }, + "acm002134jsd" : { + "type" : "ControlElement", + "id" : "acm002134jsd", + "name" : "StopSoundCommand" + }, + "acm002135jsd" : { + "type" : "ControlElement", + "id" : "acm002135jsd", + "name" : "getCommandArgs" + }, + "acm002136jsd" : { + "type" : "ClassUnit", + "id" : "acm002136jsd", + "name" : "StopSoundCommand", + "compilationUnitId" : "acm002127jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002134jsd", "acm002135jsd" ] + }, + "acm002137jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002137jsd", + "name" : "TransferUserToMeetingCommand", + "parentId" : "acm001959jsd", + "content" : [ "acm002146jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002138jsd" : { + "type" : "CodePackage", + "id" : "acm002138jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002139jsd" ] + }, + "acm002139jsd" : { + "type" : "CodePackage", + "id" : "acm002139jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002140jsd" ] + }, + "acm002140jsd" : { + "type" : "CodePackage", + "id" : "acm002140jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002141jsd" ] + }, + "acm002141jsd" : { + "type" : "CodePackage", + "id" : "acm002141jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002142jsd" ] + }, + "acm002142jsd" : { + "type" : "CodePackage", + "id" : "acm002142jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002143jsd" ] + }, + "acm002143jsd" : { + "type" : "CodePackage", + "id" : "acm002143jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002137jsd" ] + }, + "acm002144jsd" : { + "type" : "ControlElement", + "id" : "acm002144jsd", + "name" : "TransferUserToMeetingCommand" + }, + "acm002145jsd" : { + "type" : "ControlElement", + "id" : "acm002145jsd", + "name" : "getCommandArgs" + }, + "acm002146jsd" : { + "type" : "ClassUnit", + "id" : "acm002146jsd", + "name" : "TransferUserToMeetingCommand", + "compilationUnitId" : "acm002137jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002063jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002144jsd", "acm002145jsd" ] + }, + "acm002147jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002147jsd", + "name" : "ConferenceMember", + "parentId" : "acm002153jsd", + "content" : [ "acm002174jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "response" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002148jsd" : { + "type" : "CodePackage", + "id" : "acm002148jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002149jsd" ] + }, + "acm002149jsd" : { + "type" : "CodePackage", + "id" : "acm002149jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002150jsd" ] + }, + "acm002150jsd" : { + "type" : "CodePackage", + "id" : "acm002150jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002151jsd" ] + }, + "acm002151jsd" : { + "type" : "CodePackage", + "id" : "acm002151jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002152jsd" ] + }, + "acm002152jsd" : { + "type" : "CodePackage", + "id" : "acm002152jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002153jsd" ] + }, + "acm002153jsd" : { + "type" : "CodePackage", + "id" : "acm002153jsd", + "name" : "response", + "parentId" : "acm001849jsd", + "content" : [ "acm002147jsd", "acm002175jsd", "acm002187jsd" ] + }, + "acm002154jsd" : { + "type" : "ControlElement", + "id" : "acm002154jsd", + "name" : "getId" + }, + "acm002155jsd" : { + "type" : "ControlElement", + "id" : "acm002155jsd", + "name" : "getFlags" + }, + "acm002156jsd" : { + "type" : "ControlElement", + "id" : "acm002156jsd", + "name" : "getCallerId" + }, + "acm002157jsd" : { + "type" : "ControlElement", + "id" : "acm002157jsd", + "name" : "getCallerIdName" + }, + "acm002158jsd" : { + "type" : "ControlElement", + "id" : "acm002158jsd", + "name" : "getMuted" + }, + "acm002159jsd" : { + "type" : "ControlElement", + "id" : "acm002159jsd", + "name" : "getSpeaking" + }, + "acm002160jsd" : { + "type" : "ControlElement", + "id" : "acm002160jsd", + "name" : "setFlags" + }, + "acm002161jsd" : { + "type" : "ControlElement", + "id" : "acm002161jsd", + "name" : "setId" + }, + "acm002162jsd" : { + "type" : "ControlElement", + "id" : "acm002162jsd", + "name" : "setUUID" + }, + "acm002163jsd" : { + "type" : "ControlElement", + "id" : "acm002163jsd", + "name" : "getUUID" + }, + "acm002164jsd" : { + "type" : "ControlElement", + "id" : "acm002164jsd", + "name" : "setCallerIdName" + }, + "acm002165jsd" : { + "type" : "ControlElement", + "id" : "acm002165jsd", + "name" : "setCallerId" + }, + "acm002166jsd" : { + "type" : "ControlElement", + "id" : "acm002166jsd", + "name" : "setJoinTime" + }, + "acm002167jsd" : { + "type" : "ControlElement", + "id" : "acm002167jsd", + "name" : "setLastTalking" + }, + "acm002168jsd" : { + "type" : "ControlElement", + "id" : "acm002168jsd", + "name" : "setMemberType" + }, + "acm002169jsd" : { + "type" : "ControlElement", + "id" : "acm002169jsd", + "name" : "getMemberType" + }, + "acm002170jsd" : { + "type" : "ControlElement", + "id" : "acm002170jsd", + "name" : "setRecordPath" + }, + "acm002171jsd" : { + "type" : "ControlElement", + "id" : "acm002171jsd", + "name" : "getRecordPath" + }, + "acm002172jsd" : { + "type" : "ControlElement", + "id" : "acm002172jsd", + "name" : "setRecordStartTime" + }, + "acm002173jsd" : { + "type" : "ControlElement", + "id" : "acm002173jsd", + "name" : "getRecordStartTime" + }, + "acm002174jsd" : { + "type" : "ClassUnit", + "id" : "acm002174jsd", + "name" : "ConferenceMember", + "compilationUnitId" : "acm002147jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002186jsd" ], + "content" : [ "acm002154jsd", "acm002155jsd", "acm002156jsd", "acm002157jsd", "acm002158jsd", "acm002159jsd", "acm002160jsd", "acm002161jsd", "acm002162jsd", "acm002163jsd", "acm002164jsd", "acm002165jsd", "acm002166jsd", "acm002167jsd", "acm002168jsd", "acm002169jsd", "acm002170jsd", "acm002171jsd", "acm002172jsd", "acm002173jsd" ] + }, + "acm002175jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002175jsd", + "name" : "ConferenceMemberFlags", + "parentId" : "acm002153jsd", + "content" : [ "acm002186jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "response" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002176jsd" : { + "type" : "CodePackage", + "id" : "acm002176jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002177jsd" ] + }, + "acm002177jsd" : { + "type" : "CodePackage", + "id" : "acm002177jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002178jsd" ] + }, + "acm002178jsd" : { + "type" : "CodePackage", + "id" : "acm002178jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002179jsd" ] + }, + "acm002179jsd" : { + "type" : "CodePackage", + "id" : "acm002179jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002180jsd" ] + }, + "acm002180jsd" : { + "type" : "CodePackage", + "id" : "acm002180jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002181jsd" ] + }, + "acm002181jsd" : { + "type" : "CodePackage", + "id" : "acm002181jsd", + "name" : "response", + "parentId" : null, + "content" : [ "acm002175jsd" ] + }, + "acm002182jsd" : { + "type" : "ControlElement", + "id" : "acm002182jsd", + "name" : "getIsSpeaking" + }, + "acm002183jsd" : { + "type" : "ControlElement", + "id" : "acm002183jsd", + "name" : "getIsMuted" + }, + "acm002184jsd" : { + "type" : "ControlElement", + "id" : "acm002184jsd", + "name" : "setCanSpeak" + }, + "acm002185jsd" : { + "type" : "ControlElement", + "id" : "acm002185jsd", + "name" : "setTalking" + }, + "acm002186jsd" : { + "type" : "ClassUnit", + "id" : "acm002186jsd", + "name" : "ConferenceMemberFlags", + "compilationUnitId" : "acm002175jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002182jsd", "acm002183jsd", "acm002184jsd", "acm002185jsd" ] + }, + "acm002187jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002187jsd", + "name" : "XMLResponseConferenceListParser", + "parentId" : "acm002153jsd", + "content" : [ "acm002201jsd" ], + "pathElements" : [ "akka-bbb-fsesl", "src", "main", "java", "org", "bigbluebutton", "freeswitch", "voice", "freeswitch", "response" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002188jsd" : { + "type" : "CodePackage", + "id" : "acm002188jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002189jsd" ] + }, + "acm002189jsd" : { + "type" : "CodePackage", + "id" : "acm002189jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002190jsd" ] + }, + "acm002190jsd" : { + "type" : "CodePackage", + "id" : "acm002190jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002191jsd" ] + }, + "acm002191jsd" : { + "type" : "CodePackage", + "id" : "acm002191jsd", + "name" : "voice", + "parentId" : null, + "content" : [ "acm002192jsd" ] + }, + "acm002192jsd" : { + "type" : "CodePackage", + "id" : "acm002192jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm002193jsd" ] + }, + "acm002193jsd" : { + "type" : "CodePackage", + "id" : "acm002193jsd", + "name" : "response", + "parentId" : null, + "content" : [ "acm002187jsd" ] + }, + "acm002194jsd" : { + "type" : "ControlElement", + "id" : "acm002194jsd", + "name" : "XMLResponseConferenceListParser" + }, + "acm002195jsd" : { + "type" : "ControlElement", + "id" : "acm002195jsd", + "name" : "getConferenceRoom" + }, + "acm002196jsd" : { + "type" : "ControlElement", + "id" : "acm002196jsd", + "name" : "printConferneceMemebers" + }, + "acm002197jsd" : { + "type" : "ControlElement", + "id" : "acm002197jsd", + "name" : "getConferenceList" + }, + "acm002198jsd" : { + "type" : "ControlElement", + "id" : "acm002198jsd", + "name" : "startElement" + }, + "acm002199jsd" : { + "type" : "ControlElement", + "id" : "acm002199jsd", + "name" : "characters" + }, + "acm002200jsd" : { + "type" : "ControlElement", + "id" : "acm002200jsd", + "name" : "endElement" + }, + "acm002201jsd" : { + "type" : "ClassUnit", + "id" : "acm002201jsd", + "name" : "XMLResponseConferenceListParser", + "compilationUnitId" : "acm002187jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002174jsd", "acm002186jsd" ], + "content" : [ "acm002194jsd", "acm002195jsd", "acm002196jsd", "acm002197jsd", "acm002198jsd", "acm002199jsd", "acm002200jsd" ] + }, + "acm002202jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002202jsd", + "name" : "Keys", + "parentId" : "acm002206jsd", + "content" : [ "acm002207jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002203jsd" : { + "type" : "CodePackage", + "id" : "acm002203jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002204jsd" ] + }, + "acm002204jsd" : { + "type" : "CodePackage", + "id" : "acm002204jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002205jsd" ] + }, + "acm002205jsd" : { + "type" : "CodePackage", + "id" : "acm002205jsd", + "name" : "common2", + "parentId" : "acm001339jsd", + "content" : [ "acm002206jsd" ] + }, + "acm002206jsd" : { + "type" : "CodePackage", + "id" : "acm002206jsd", + "name" : "redis", + "parentId" : "acm002205jsd", + "content" : [ "acm002202jsd", "acm002208jsd", "acm002223jsd", "acm002247jsd" ] + }, + "acm002207jsd" : { + "type" : "ClassUnit", + "id" : "acm002207jsd", + "name" : "Keys", + "compilationUnitId" : "acm002202jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002208jsd", + "name" : "RedisAwareCommunicator", + "parentId" : "acm002206jsd", + "content" : [ "acm002222jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002209jsd" : { + "type" : "CodePackage", + "id" : "acm002209jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002210jsd" ] + }, + "acm002210jsd" : { + "type" : "CodePackage", + "id" : "acm002210jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002211jsd" ] + }, + "acm002211jsd" : { + "type" : "CodePackage", + "id" : "acm002211jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002212jsd" ] + }, + "acm002212jsd" : { + "type" : "CodePackage", + "id" : "acm002212jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002208jsd" ] + }, + "acm002213jsd" : { + "type" : "ControlElement", + "id" : "acm002213jsd", + "name" : "start" + }, + "acm002214jsd" : { + "type" : "ControlElement", + "id" : "acm002214jsd", + "name" : "stop" + }, + "acm002215jsd" : { + "type" : "ControlElement", + "id" : "acm002215jsd", + "name" : "setPassword" + }, + "acm002216jsd" : { + "type" : "ControlElement", + "id" : "acm002216jsd", + "name" : "connectionStatusHandler" + }, + "acm002217jsd" : { + "type" : "ControlElement", + "id" : "acm002217jsd", + "name" : "setClientName" + }, + "acm002218jsd" : { + "type" : "ControlElement", + "id" : "acm002218jsd", + "name" : "setHost" + }, + "acm002219jsd" : { + "type" : "ControlElement", + "id" : "acm002219jsd", + "name" : "setPort" + }, + "acm002220jsd" : { + "type" : "ControlElement", + "id" : "acm002220jsd", + "name" : "setExpireKey" + }, + "acm002221jsd" : { + "type" : "ControlElement", + "id" : "acm002221jsd", + "name" : "createPoolingConfig" + }, + "acm002222jsd" : { + "type" : "ClassUnit", + "id" : "acm002222jsd", + "name" : "RedisAwareCommunicator", + "compilationUnitId" : "acm002208jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002213jsd", "acm002214jsd", "acm002215jsd", "acm002216jsd", "acm002217jsd", "acm002218jsd", "acm002219jsd", "acm002220jsd", "acm002221jsd" ] + }, + "acm002223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002223jsd", + "name" : "RedisStorageService", + "parentId" : "acm002206jsd", + "content" : [ "acm002241jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002224jsd" : { + "type" : "CodePackage", + "id" : "acm002224jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002225jsd" ] + }, + "acm002225jsd" : { + "type" : "CodePackage", + "id" : "acm002225jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002226jsd" ] + }, + "acm002226jsd" : { + "type" : "CodePackage", + "id" : "acm002226jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002227jsd" ] + }, + "acm002227jsd" : { + "type" : "CodePackage", + "id" : "acm002227jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002223jsd" ] + }, + "acm002228jsd" : { + "type" : "ControlElement", + "id" : "acm002228jsd", + "name" : "start" + }, + "acm002229jsd" : { + "type" : "ControlElement", + "id" : "acm002229jsd", + "name" : "stop" + }, + "acm002230jsd" : { + "type" : "ControlElement", + "id" : "acm002230jsd", + "name" : "generateSingleUseCaptionToken" + }, + "acm002231jsd" : { + "type" : "ControlElement", + "id" : "acm002231jsd", + "name" : "validateSingleUseCaptionToken" + }, + "acm002232jsd" : { + "type" : "ControlElement", + "id" : "acm002232jsd", + "name" : "recordMeetingInfo" + }, + "acm002233jsd" : { + "type" : "ControlElement", + "id" : "acm002233jsd", + "name" : "recordBreakoutInfo" + }, + "acm002234jsd" : { + "type" : "ControlElement", + "id" : "acm002234jsd", + "name" : "addBreakoutRoom" + }, + "acm002235jsd" : { + "type" : "ControlElement", + "id" : "acm002235jsd", + "name" : "record" + }, + "acm002236jsd" : { + "type" : "ControlElement", + "id" : "acm002236jsd", + "name" : "storePresentationAnnotations" + }, + "acm002237jsd" : { + "type" : "ControlElement", + "id" : "acm002237jsd", + "name" : "removeMeeting" + }, + "acm002238jsd" : { + "type" : "ControlElement", + "id" : "acm002238jsd", + "name" : "recordAndExpire" + }, + "acm002239jsd" : { + "type" : "ControlElement", + "id" : "acm002239jsd", + "name" : "recordMeeting" + }, + "acm002240jsd" : { + "type" : "ControlElement", + "id" : "acm002240jsd", + "name" : "checkConnectionStatusBasic" + }, + "acm002241jsd" : { + "type" : "ClassUnit", + "id" : "acm002241jsd", + "name" : "RedisStorageService", + "compilationUnitId" : "acm002223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002222jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002241jsd" ], + "content" : [ "acm002228jsd", "acm002229jsd", "acm002230jsd", "acm002231jsd", "acm002232jsd", "acm002233jsd", "acm002234jsd", "acm002235jsd", "acm002236jsd", "acm002237jsd", "acm002238jsd", "acm002239jsd", "acm002240jsd" ] + }, + "acm002242jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002242jsd", + "name" : "MessageDistributor", + "parentId" : "acm002247jsd", + "content" : [ "acm002251jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002243jsd" : { + "type" : "CodePackage", + "id" : "acm002243jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002244jsd" ] + }, + "acm002244jsd" : { + "type" : "CodePackage", + "id" : "acm002244jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002245jsd" ] + }, + "acm002245jsd" : { + "type" : "CodePackage", + "id" : "acm002245jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002246jsd" ] + }, + "acm002246jsd" : { + "type" : "CodePackage", + "id" : "acm002246jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002247jsd" ] + }, + "acm002247jsd" : { + "type" : "CodePackage", + "id" : "acm002247jsd", + "name" : "pubsub", + "parentId" : "acm002206jsd", + "content" : [ "acm002242jsd", "acm002252jsd", "acm002260jsd", "acm002286jsd", "acm002299jsd", "acm002309jsd", "acm002320jsd" ] + }, + "acm002248jsd" : { + "type" : "ControlElement", + "id" : "acm002248jsd", + "name" : "setMessageListeners" + }, + "acm002249jsd" : { + "type" : "ControlElement", + "id" : "acm002249jsd", + "name" : "setMessageHandler" + }, + "acm002250jsd" : { + "type" : "ControlElement", + "id" : "acm002250jsd", + "name" : "notifyListeners" + }, + "acm002251jsd" : { + "type" : "ClassUnit", + "id" : "acm002251jsd", + "name" : "MessageDistributor", + "compilationUnitId" : "acm002242jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002259jsd", "acm002333jsd" ], + "content" : [ "acm002248jsd", "acm002249jsd", "acm002250jsd" ] + }, + "acm002252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002252jsd", + "name" : "MessageHandler", + "parentId" : "acm002247jsd", + "content" : [ "acm002259jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002253jsd" : { + "type" : "CodePackage", + "id" : "acm002253jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002254jsd" ] + }, + "acm002254jsd" : { + "type" : "CodePackage", + "id" : "acm002254jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002255jsd" ] + }, + "acm002255jsd" : { + "type" : "CodePackage", + "id" : "acm002255jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002256jsd" ] + }, + "acm002256jsd" : { + "type" : "CodePackage", + "id" : "acm002256jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002257jsd" ] + }, + "acm002257jsd" : { + "type" : "CodePackage", + "id" : "acm002257jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002252jsd" ] + }, + "acm002258jsd" : { + "type" : "ControlElement", + "id" : "acm002258jsd", + "name" : "handleMessage" + }, + "acm002259jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002259jsd", + "name" : "MessageHandler", + "compilationUnitId" : "acm002252jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002258jsd" ] + }, + "acm002260jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002260jsd", + "name" : "MessageReceiver", + "parentId" : "acm002247jsd", + "content" : [ "acm002277jsd", "acm002285jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002261jsd" : { + "type" : "CodePackage", + "id" : "acm002261jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002262jsd" ] + }, + "acm002262jsd" : { + "type" : "CodePackage", + "id" : "acm002262jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002263jsd" ] + }, + "acm002263jsd" : { + "type" : "CodePackage", + "id" : "acm002263jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002264jsd" ] + }, + "acm002264jsd" : { + "type" : "CodePackage", + "id" : "acm002264jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002265jsd" ] + }, + "acm002265jsd" : { + "type" : "CodePackage", + "id" : "acm002265jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002260jsd" ] + }, + "acm002266jsd" : { + "type" : "ControlElement", + "id" : "acm002266jsd", + "name" : "start" + }, + "acm002267jsd" : { + "type" : "ControlElement", + "id" : "acm002267jsd", + "name" : "run" + }, + "acm002268jsd" : { + "type" : "ControlElement", + "id" : "acm002268jsd", + "name" : "stop" + }, + "acm002269jsd" : { + "type" : "ControlElement", + "id" : "acm002269jsd", + "name" : "setMessageHandler" + }, + "acm002270jsd" : { + "type" : "ControlElement", + "id" : "acm002270jsd", + "name" : "message" + }, + "acm002271jsd" : { + "type" : "ControlElement", + "id" : "acm002271jsd", + "name" : "message" + }, + "acm002272jsd" : { + "type" : "ControlElement", + "id" : "acm002272jsd", + "name" : "run" + }, + "acm002273jsd" : { + "type" : "ControlElement", + "id" : "acm002273jsd", + "name" : "subscribed" + }, + "acm002274jsd" : { + "type" : "ControlElement", + "id" : "acm002274jsd", + "name" : "psubscribed" + }, + "acm002275jsd" : { + "type" : "ControlElement", + "id" : "acm002275jsd", + "name" : "unsubscribed" + }, + "acm002276jsd" : { + "type" : "ControlElement", + "id" : "acm002276jsd", + "name" : "punsubscribed" + }, + "acm002277jsd" : { + "type" : "ClassUnit", + "id" : "acm002277jsd", + "name" : "MessageReceiver", + "compilationUnitId" : "acm002260jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002222jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002277jsd", "acm002285jsd", "acm002333jsd" ], + "content" : [ "acm002266jsd", "acm002267jsd", "acm002268jsd", "acm002269jsd", "acm002270jsd", "acm002271jsd", "acm002272jsd", "acm002273jsd", "acm002274jsd", "acm002275jsd", "acm002276jsd" ] + }, + "acm002278jsd" : { + "type" : "ControlElement", + "id" : "acm002278jsd", + "name" : "message" + }, + "acm002279jsd" : { + "type" : "ControlElement", + "id" : "acm002279jsd", + "name" : "message" + }, + "acm002280jsd" : { + "type" : "ControlElement", + "id" : "acm002280jsd", + "name" : "run" + }, + "acm002281jsd" : { + "type" : "ControlElement", + "id" : "acm002281jsd", + "name" : "subscribed" + }, + "acm002282jsd" : { + "type" : "ControlElement", + "id" : "acm002282jsd", + "name" : "psubscribed" + }, + "acm002283jsd" : { + "type" : "ControlElement", + "id" : "acm002283jsd", + "name" : "unsubscribed" + }, + "acm002284jsd" : { + "type" : "ControlElement", + "id" : "acm002284jsd", + "name" : "punsubscribed" + }, + "acm002285jsd" : { + "type" : "ClassUnit", + "id" : "acm002285jsd", + "name" : "MessageListener", + "compilationUnitId" : "acm002260jsd", + "parentDatatypeId" : "acm002277jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002278jsd", "acm002279jsd", "acm002280jsd", "acm002281jsd", "acm002282jsd", "acm002283jsd", "acm002284jsd" ] + }, + "acm002286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002286jsd", + "name" : "MessageSender", + "parentId" : "acm002247jsd", + "content" : [ "acm002298jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002287jsd" : { + "type" : "CodePackage", + "id" : "acm002287jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002288jsd" ] + }, + "acm002288jsd" : { + "type" : "CodePackage", + "id" : "acm002288jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002289jsd" ] + }, + "acm002289jsd" : { + "type" : "CodePackage", + "id" : "acm002289jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002290jsd" ] + }, + "acm002290jsd" : { + "type" : "CodePackage", + "id" : "acm002290jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002291jsd" ] + }, + "acm002291jsd" : { + "type" : "CodePackage", + "id" : "acm002291jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002286jsd" ] + }, + "acm002292jsd" : { + "type" : "ControlElement", + "id" : "acm002292jsd", + "name" : "stop" + }, + "acm002293jsd" : { + "type" : "ControlElement", + "id" : "acm002293jsd", + "name" : "start" + }, + "acm002294jsd" : { + "type" : "ControlElement", + "id" : "acm002294jsd", + "name" : "run" + }, + "acm002295jsd" : { + "type" : "ControlElement", + "id" : "acm002295jsd", + "name" : "send" + }, + "acm002296jsd" : { + "type" : "ControlElement", + "id" : "acm002296jsd", + "name" : "publish" + }, + "acm002297jsd" : { + "type" : "ControlElement", + "id" : "acm002297jsd", + "name" : "run" + }, + "acm002298jsd" : { + "type" : "ClassUnit", + "id" : "acm002298jsd", + "name" : "MessageSender", + "compilationUnitId" : "acm002286jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002222jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002298jsd", "acm002308jsd" ], + "content" : [ "acm002292jsd", "acm002293jsd", "acm002294jsd", "acm002295jsd", "acm002296jsd", "acm002297jsd" ] + }, + "acm002299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002299jsd", + "name" : "MessageToSend", + "parentId" : "acm002247jsd", + "content" : [ "acm002308jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002300jsd" : { + "type" : "CodePackage", + "id" : "acm002300jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002301jsd" ] + }, + "acm002301jsd" : { + "type" : "CodePackage", + "id" : "acm002301jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002302jsd" ] + }, + "acm002302jsd" : { + "type" : "CodePackage", + "id" : "acm002302jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002303jsd" ] + }, + "acm002303jsd" : { + "type" : "CodePackage", + "id" : "acm002303jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002304jsd" ] + }, + "acm002304jsd" : { + "type" : "CodePackage", + "id" : "acm002304jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002299jsd" ] + }, + "acm002305jsd" : { + "type" : "ControlElement", + "id" : "acm002305jsd", + "name" : "MessageToSend" + }, + "acm002306jsd" : { + "type" : "ControlElement", + "id" : "acm002306jsd", + "name" : "getChannel" + }, + "acm002307jsd" : { + "type" : "ControlElement", + "id" : "acm002307jsd", + "name" : "getMessage" + }, + "acm002308jsd" : { + "type" : "ClassUnit", + "id" : "acm002308jsd", + "name" : "MessageToSend", + "compilationUnitId" : "acm002299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002305jsd", "acm002306jsd", "acm002307jsd" ] + }, + "acm002309jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002309jsd", + "name" : "ReceivedMessage", + "parentId" : "acm002247jsd", + "content" : [ "acm002319jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002310jsd" : { + "type" : "CodePackage", + "id" : "acm002310jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002311jsd" ] + }, + "acm002311jsd" : { + "type" : "CodePackage", + "id" : "acm002311jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002312jsd" ] + }, + "acm002312jsd" : { + "type" : "CodePackage", + "id" : "acm002312jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002313jsd" ] + }, + "acm002313jsd" : { + "type" : "CodePackage", + "id" : "acm002313jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002314jsd" ] + }, + "acm002314jsd" : { + "type" : "CodePackage", + "id" : "acm002314jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002309jsd" ] + }, + "acm002315jsd" : { + "type" : "ControlElement", + "id" : "acm002315jsd", + "name" : "ReceivedMessage" + }, + "acm002316jsd" : { + "type" : "ControlElement", + "id" : "acm002316jsd", + "name" : "getPattern" + }, + "acm002317jsd" : { + "type" : "ControlElement", + "id" : "acm002317jsd", + "name" : "getChannel" + }, + "acm002318jsd" : { + "type" : "ControlElement", + "id" : "acm002318jsd", + "name" : "getMessage" + }, + "acm002319jsd" : { + "type" : "ClassUnit", + "id" : "acm002319jsd", + "name" : "ReceivedMessage", + "compilationUnitId" : "acm002309jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002315jsd", "acm002316jsd", "acm002317jsd", "acm002318jsd" ] + }, + "acm002320jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002320jsd", + "name" : "ReceivedMessageHandler", + "parentId" : "acm002247jsd", + "content" : [ "acm002333jsd" ], + "pathElements" : [ "bbb-common-message", "src", "main", "java", "org", "bigbluebutton", "common2", "redis", "pubsub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002321jsd" : { + "type" : "CodePackage", + "id" : "acm002321jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002322jsd" ] + }, + "acm002322jsd" : { + "type" : "CodePackage", + "id" : "acm002322jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002323jsd" ] + }, + "acm002323jsd" : { + "type" : "CodePackage", + "id" : "acm002323jsd", + "name" : "common2", + "parentId" : null, + "content" : [ "acm002324jsd" ] + }, + "acm002324jsd" : { + "type" : "CodePackage", + "id" : "acm002324jsd", + "name" : "redis", + "parentId" : null, + "content" : [ "acm002325jsd" ] + }, + "acm002325jsd" : { + "type" : "CodePackage", + "id" : "acm002325jsd", + "name" : "pubsub", + "parentId" : null, + "content" : [ "acm002320jsd" ] + }, + "acm002326jsd" : { + "type" : "ControlElement", + "id" : "acm002326jsd", + "name" : "stop" + }, + "acm002327jsd" : { + "type" : "ControlElement", + "id" : "acm002327jsd", + "name" : "start" + }, + "acm002328jsd" : { + "type" : "ControlElement", + "id" : "acm002328jsd", + "name" : "run" + }, + "acm002329jsd" : { + "type" : "ControlElement", + "id" : "acm002329jsd", + "name" : "processMessage" + }, + "acm002330jsd" : { + "type" : "ControlElement", + "id" : "acm002330jsd", + "name" : "run" + }, + "acm002331jsd" : { + "type" : "ControlElement", + "id" : "acm002331jsd", + "name" : "handleMessage" + }, + "acm002332jsd" : { + "type" : "ControlElement", + "id" : "acm002332jsd", + "name" : "setMessageDistributor" + }, + "acm002333jsd" : { + "type" : "ClassUnit", + "id" : "acm002333jsd", + "name" : "ReceivedMessageHandler", + "compilationUnitId" : "acm002320jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002251jsd", "acm002319jsd", "acm002333jsd" ], + "content" : [ "acm002326jsd", "acm002327jsd", "acm002328jsd", "acm002329jsd", "acm002330jsd", "acm002331jsd", "acm002332jsd" ] + }, + "acm002334jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002334jsd", + "name" : "ApiErrors", + "parentId" : "acm002337jsd", + "content" : [ "acm002354jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002335jsd" : { + "type" : "CodePackage", + "id" : "acm002335jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002336jsd" ] + }, + "acm002336jsd" : { + "type" : "CodePackage", + "id" : "acm002336jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002337jsd" ] + }, + "acm002337jsd" : { + "type" : "CodePackage", + "id" : "acm002337jsd", + "name" : "api", + "parentId" : "acm001339jsd", + "content" : [ "acm002334jsd", "acm002355jsd", "acm002361jsd", "acm002370jsd", "acm002376jsd", "acm002388jsd", "acm002491jsd", "acm002613jsd", "acm002634jsd", "acm002641jsd", "acm006164jsd", "acm002662jsd", "acm003234jsd", "acm003599jsd", "acm004335jsd", "acm004348jsd", "acm004536jsd" ] + }, + "acm002338jsd" : { + "type" : "ControlElement", + "id" : "acm002338jsd", + "name" : "missingParamError" + }, + "acm002339jsd" : { + "type" : "ControlElement", + "id" : "acm002339jsd", + "name" : "checksumError" + }, + "acm002340jsd" : { + "type" : "ControlElement", + "id" : "acm002340jsd", + "name" : "nonUniqueMeetingIdError" + }, + "acm002341jsd" : { + "type" : "ControlElement", + "id" : "acm002341jsd", + "name" : "nonUniqueVoiceBridgeError" + }, + "acm002342jsd" : { + "type" : "ControlElement", + "id" : "acm002342jsd", + "name" : "invalidMeetingIdError" + }, + "acm002343jsd" : { + "type" : "ControlElement", + "id" : "acm002343jsd", + "name" : "meetingForciblyEndedError" + }, + "acm002344jsd" : { + "type" : "ControlElement", + "id" : "acm002344jsd", + "name" : "invalidPasswordError" + }, + "acm002345jsd" : { + "type" : "ControlElement", + "id" : "acm002345jsd", + "name" : "mismatchCreateTimeParam" + }, + "acm002346jsd" : { + "type" : "ControlElement", + "id" : "acm002346jsd", + "name" : "recordingNotFound" + }, + "acm002347jsd" : { + "type" : "ControlElement", + "id" : "acm002347jsd", + "name" : "noConfigFoundForToken" + }, + "acm002348jsd" : { + "type" : "ControlElement", + "id" : "acm002348jsd", + "name" : "noConfigFound" + }, + "acm002349jsd" : { + "type" : "ControlElement", + "id" : "acm002349jsd", + "name" : "maxParticipantsReached" + }, + "acm002350jsd" : { + "type" : "ControlElement", + "id" : "acm002350jsd", + "name" : "guestDeniedAccess" + }, + "acm002351jsd" : { + "type" : "ControlElement", + "id" : "acm002351jsd", + "name" : "addError" + }, + "acm002352jsd" : { + "type" : "ControlElement", + "id" : "acm002352jsd", + "name" : "hasErrors" + }, + "acm002353jsd" : { + "type" : "ControlElement", + "id" : "acm002353jsd", + "name" : "getErrors" + }, + "acm002354jsd" : { + "type" : "ClassUnit", + "id" : "acm002354jsd", + "name" : "ApiErrors", + "compilationUnitId" : "acm002334jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002338jsd", "acm002339jsd", "acm002340jsd", "acm002341jsd", "acm002342jsd", "acm002343jsd", "acm002344jsd", "acm002345jsd", "acm002346jsd", "acm002347jsd", "acm002348jsd", "acm002349jsd", "acm002350jsd", "acm002351jsd", "acm002352jsd", "acm002353jsd" ] + }, + "acm002355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002355jsd", + "name" : "ApiParams", + "parentId" : "acm002337jsd", + "content" : [ "acm002360jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002356jsd" : { + "type" : "CodePackage", + "id" : "acm002356jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002357jsd" ] + }, + "acm002357jsd" : { + "type" : "CodePackage", + "id" : "acm002357jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002358jsd" ] + }, + "acm002358jsd" : { + "type" : "CodePackage", + "id" : "acm002358jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002355jsd" ] + }, + "acm002359jsd" : { + "type" : "ControlElement", + "id" : "acm002359jsd", + "name" : "ApiParams" + }, + "acm002360jsd" : { + "type" : "ClassUnit", + "id" : "acm002360jsd", + "name" : "ApiParams", + "compilationUnitId" : "acm002355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002359jsd" ] + }, + "acm002361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002361jsd", + "name" : "HTML5LoadBalancingService", + "parentId" : "acm002337jsd", + "content" : [ "acm002369jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002362jsd" : { + "type" : "CodePackage", + "id" : "acm002362jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002363jsd" ] + }, + "acm002363jsd" : { + "type" : "CodePackage", + "id" : "acm002363jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002364jsd" ] + }, + "acm002364jsd" : { + "type" : "CodePackage", + "id" : "acm002364jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002361jsd" ] + }, + "acm002365jsd" : { + "type" : "ControlElement", + "id" : "acm002365jsd", + "name" : "init" + }, + "acm002366jsd" : { + "type" : "ControlElement", + "id" : "acm002366jsd", + "name" : "scanHTML5processes" + }, + "acm002367jsd" : { + "type" : "ControlElement", + "id" : "acm002367jsd", + "name" : "listItemWithIdExists" + }, + "acm002368jsd" : { + "type" : "ControlElement", + "id" : "acm002368jsd", + "name" : "findSuitableHTML5ProcessByRoundRobin" + }, + "acm002369jsd" : { + "type" : "ClassUnit", + "id" : "acm002369jsd", + "name" : "HTML5LoadBalancingService", + "compilationUnitId" : "acm002361jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002369jsd", "acm004557jsd" ], + "content" : [ "acm002365jsd", "acm002366jsd", "acm002367jsd", "acm002368jsd" ] + }, + "acm002370jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002370jsd", + "name" : "IReceivedOldMessageHandler", + "parentId" : "acm002337jsd", + "content" : [ "acm002375jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002371jsd" : { + "type" : "CodePackage", + "id" : "acm002371jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002372jsd" ] + }, + "acm002372jsd" : { + "type" : "CodePackage", + "id" : "acm002372jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002373jsd" ] + }, + "acm002373jsd" : { + "type" : "CodePackage", + "id" : "acm002373jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002370jsd" ] + }, + "acm002374jsd" : { + "type" : "ControlElement", + "id" : "acm002374jsd", + "name" : "handleMessage" + }, + "acm002375jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002375jsd", + "name" : "IReceivedOldMessageHandler", + "compilationUnitId" : "acm002370jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003410jsd" ], + "content" : [ "acm002374jsd" ] + }, + "acm002376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002376jsd", + "name" : "LearningDashboardService", + "parentId" : "acm002337jsd", + "content" : [ "acm002387jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002377jsd" : { + "type" : "CodePackage", + "id" : "acm002377jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002378jsd" ] + }, + "acm002378jsd" : { + "type" : "CodePackage", + "id" : "acm002378jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002379jsd" ] + }, + "acm002379jsd" : { + "type" : "CodePackage", + "id" : "acm002379jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002376jsd" ] + }, + "acm002380jsd" : { + "type" : "ControlElement", + "id" : "acm002380jsd", + "name" : "getJsonDataFile" + }, + "acm002381jsd" : { + "type" : "ControlElement", + "id" : "acm002381jsd", + "name" : "writeJsonDataFile" + }, + "acm002382jsd" : { + "type" : "ControlElement", + "id" : "acm002382jsd", + "name" : "removeJsonDataFile" + }, + "acm002383jsd" : { + "type" : "ControlElement", + "id" : "acm002383jsd", + "name" : "run" + }, + "acm002384jsd" : { + "type" : "ControlElement", + "id" : "acm002384jsd", + "name" : "getDestinationBaseDirectoryName" + }, + "acm002385jsd" : { + "type" : "ControlElement", + "id" : "acm002385jsd", + "name" : "deleteDirectory" + }, + "acm002386jsd" : { + "type" : "ControlElement", + "id" : "acm002386jsd", + "name" : "setLearningDashboardFilesDir" + }, + "acm002387jsd" : { + "type" : "ClassUnit", + "id" : "acm002387jsd", + "name" : "LearningDashboardService", + "compilationUnitId" : "acm002376jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002387jsd" ], + "content" : [ "acm002380jsd", "acm002381jsd", "acm002382jsd", "acm002383jsd", "acm002384jsd", "acm002385jsd", "acm002386jsd" ] + }, + "acm002388jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002388jsd", + "name" : "MeetingService", + "parentId" : "acm002337jsd", + "content" : [ "acm002490jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002389jsd" : { + "type" : "CodePackage", + "id" : "acm002389jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002390jsd" ] + }, + "acm002390jsd" : { + "type" : "CodePackage", + "id" : "acm002390jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002391jsd" ] + }, + "acm002391jsd" : { + "type" : "CodePackage", + "id" : "acm002391jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002388jsd" ] + }, + "acm002392jsd" : { + "type" : "ControlElement", + "id" : "acm002392jsd", + "name" : "MeetingService" + }, + "acm002393jsd" : { + "type" : "ControlElement", + "id" : "acm002393jsd", + "name" : "addUserSession" + }, + "acm002394jsd" : { + "type" : "ControlElement", + "id" : "acm002394jsd", + "name" : "getTokenByUserId" + }, + "acm002395jsd" : { + "type" : "ControlElement", + "id" : "acm002395jsd", + "name" : "registerUser" + }, + "acm002396jsd" : { + "type" : "ControlElement", + "id" : "acm002396jsd", + "name" : "getUserSessionWithUserId" + }, + "acm002397jsd" : { + "type" : "ControlElement", + "id" : "acm002397jsd", + "name" : "getUserSessionWithAuthToken" + }, + "acm002398jsd" : { + "type" : "ControlElement", + "id" : "acm002398jsd", + "name" : "getAllowRequestsWithoutSession" + }, + "acm002399jsd" : { + "type" : "ControlElement", + "id" : "acm002399jsd", + "name" : "removeUserSessionWithAuthToken" + }, + "acm002400jsd" : { + "type" : "ControlElement", + "id" : "acm002400jsd", + "name" : "purgeUsers" + }, + "acm002401jsd" : { + "type" : "ControlElement", + "id" : "acm002401jsd", + "name" : "purgeEnteredUsers" + }, + "acm002402jsd" : { + "type" : "ControlElement", + "id" : "acm002402jsd", + "name" : "guestIsWaiting" + }, + "acm002403jsd" : { + "type" : "ControlElement", + "id" : "acm002403jsd", + "name" : "purgeWaitingGuestUsers" + }, + "acm002404jsd" : { + "type" : "ControlElement", + "id" : "acm002404jsd", + "name" : "kickOffProcessingOfRecording" + }, + "acm002405jsd" : { + "type" : "ControlElement", + "id" : "acm002405jsd", + "name" : "authzTokenIsValid" + }, + "acm002406jsd" : { + "type" : "ControlElement", + "id" : "acm002406jsd", + "name" : "authzTokenIsValidAndExpired" + }, + "acm002407jsd" : { + "type" : "ControlElement", + "id" : "acm002407jsd", + "name" : "getPresentationUploadToken" + }, + "acm002408jsd" : { + "type" : "ControlElement", + "id" : "acm002408jsd", + "name" : "sendPresentationUploadMaxFilesizeMessage" + }, + "acm002409jsd" : { + "type" : "ControlElement", + "id" : "acm002409jsd", + "name" : "removeUserSessions" + }, + "acm002410jsd" : { + "type" : "ControlElement", + "id" : "acm002410jsd", + "name" : "destroyMeeting" + }, + "acm002411jsd" : { + "type" : "ControlElement", + "id" : "acm002411jsd", + "name" : "getMeetings" + }, + "acm002412jsd" : { + "type" : "ControlElement", + "id" : "acm002412jsd", + "name" : "getSessions" + }, + "acm002413jsd" : { + "type" : "ControlElement", + "id" : "acm002413jsd", + "name" : "createMeeting" + }, + "acm002414jsd" : { + "type" : "ControlElement", + "id" : "acm002414jsd", + "name" : "storeEvents" + }, + "acm002415jsd" : { + "type" : "ControlElement", + "id" : "acm002415jsd", + "name" : "handleCreateMeeting" + }, + "acm002416jsd" : { + "type" : "ControlElement", + "id" : "acm002416jsd", + "name" : "formatPrettyDate" + }, + "acm002417jsd" : { + "type" : "ControlElement", + "id" : "acm002417jsd", + "name" : "processCreateMeeting" + }, + "acm002418jsd" : { + "type" : "ControlElement", + "id" : "acm002418jsd", + "name" : "processRegisterUser" + }, + "acm002419jsd" : { + "type" : "ControlElement", + "id" : "acm002419jsd", + "name" : "getMeeting" + }, + "acm002420jsd" : { + "type" : "ControlElement", + "id" : "acm002420jsd", + "name" : "getMeetingsWithId" + }, + "acm002421jsd" : { + "type" : "ControlElement", + "id" : "acm002421jsd", + "name" : "getNotEndedMeetingWithId" + }, + "acm002422jsd" : { + "type" : "ControlElement", + "id" : "acm002422jsd", + "name" : "getNotEndedMeetingWithTelVoice" + }, + "acm002423jsd" : { + "type" : "ControlElement", + "id" : "acm002423jsd", + "name" : "getNotEndedMeetingWithWebVoice" + }, + "acm002424jsd" : { + "type" : "ControlElement", + "id" : "acm002424jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm002425jsd" : { + "type" : "ControlElement", + "id" : "acm002425jsd", + "name" : "getRecordingTextTracks" + }, + "acm002426jsd" : { + "type" : "ControlElement", + "id" : "acm002426jsd", + "name" : "putRecordingTextTrack" + }, + "acm002427jsd" : { + "type" : "ControlElement", + "id" : "acm002427jsd", + "name" : "getCaptionTrackInboxDir" + }, + "acm002428jsd" : { + "type" : "ControlElement", + "id" : "acm002428jsd", + "name" : "getCaptionsDir" + }, + "acm002429jsd" : { + "type" : "ControlElement", + "id" : "acm002429jsd", + "name" : "isRecordingExist" + }, + "acm002430jsd" : { + "type" : "ControlElement", + "id" : "acm002430jsd", + "name" : "isMeetingWithDisabledPresentation" + }, + "acm002431jsd" : { + "type" : "ControlElement", + "id" : "acm002431jsd", + "name" : "getRecordings2x" + }, + "acm002432jsd" : { + "type" : "ControlElement", + "id" : "acm002432jsd", + "name" : "existsAnyRecording" + }, + "acm002433jsd" : { + "type" : "ControlElement", + "id" : "acm002433jsd", + "name" : "setPublishRecording" + }, + "acm002434jsd" : { + "type" : "ControlElement", + "id" : "acm002434jsd", + "name" : "deleteRecordings" + }, + "acm002435jsd" : { + "type" : "ControlElement", + "id" : "acm002435jsd", + "name" : "updateRecordings" + }, + "acm002436jsd" : { + "type" : "ControlElement", + "id" : "acm002436jsd", + "name" : "processRecording" + }, + "acm002437jsd" : { + "type" : "ControlElement", + "id" : "acm002437jsd", + "name" : "endMeeting" + }, + "acm002438jsd" : { + "type" : "ControlElement", + "id" : "acm002438jsd", + "name" : "processCreateBreakoutRoom" + }, + "acm002439jsd" : { + "type" : "ControlElement", + "id" : "acm002439jsd", + "name" : "processUpdateRecordingStatus" + }, + "acm002440jsd" : { + "type" : "ControlElement", + "id" : "acm002440jsd", + "name" : "processEndMeeting" + }, + "acm002441jsd" : { + "type" : "ControlElement", + "id" : "acm002441jsd", + "name" : "processRemoveEndedMeeting" + }, + "acm002442jsd" : { + "type" : "ControlElement", + "id" : "acm002442jsd", + "name" : "processGuestStatusChangedEventMsg" + }, + "acm002443jsd" : { + "type" : "ControlElement", + "id" : "acm002443jsd", + "name" : "processPresentationUploadToken" + }, + "acm002444jsd" : { + "type" : "ControlElement", + "id" : "acm002444jsd", + "name" : "expirePresentationUploadToken" + }, + "acm002445jsd" : { + "type" : "ControlElement", + "id" : "acm002445jsd", + "name" : "addUserCustomData" + }, + "acm002446jsd" : { + "type" : "ControlElement", + "id" : "acm002446jsd", + "name" : "getUserCustomData" + }, + "acm002447jsd" : { + "type" : "ControlElement", + "id" : "acm002447jsd", + "name" : "meetingStarted" + }, + "acm002448jsd" : { + "type" : "ControlElement", + "id" : "acm002448jsd", + "name" : "meetingDestroyed" + }, + "acm002449jsd" : { + "type" : "ControlElement", + "id" : "acm002449jsd", + "name" : "meetingEnded" + }, + "acm002450jsd" : { + "type" : "ControlElement", + "id" : "acm002450jsd", + "name" : "processMeetingEndedCallback" + }, + "acm002451jsd" : { + "type" : "ControlElement", + "id" : "acm002451jsd", + "name" : "userJoined" + }, + "acm002452jsd" : { + "type" : "ControlElement", + "id" : "acm002452jsd", + "name" : "userLeft" + }, + "acm002453jsd" : { + "type" : "ControlElement", + "id" : "acm002453jsd", + "name" : "updatedStatus" + }, + "acm002454jsd" : { + "type" : "ControlElement", + "id" : "acm002454jsd", + "name" : "processLearningDashboard" + }, + "acm002455jsd" : { + "type" : "ControlElement", + "id" : "acm002455jsd", + "name" : "handle" + }, + "acm002456jsd" : { + "type" : "ControlElement", + "id" : "acm002456jsd", + "name" : "setParamsProcessorUtil" + }, + "acm002457jsd" : { + "type" : "ControlElement", + "id" : "acm002457jsd", + "name" : "setPresDownloadService" + }, + "acm002458jsd" : { + "type" : "ControlElement", + "id" : "acm002458jsd", + "name" : "userJoinedVoice" + }, + "acm002459jsd" : { + "type" : "ControlElement", + "id" : "acm002459jsd", + "name" : "userLeftVoice" + }, + "acm002460jsd" : { + "type" : "ControlElement", + "id" : "acm002460jsd", + "name" : "userListeningOnly" + }, + "acm002461jsd" : { + "type" : "ControlElement", + "id" : "acm002461jsd", + "name" : "userSharedWebcam" + }, + "acm002462jsd" : { + "type" : "ControlElement", + "id" : "acm002462jsd", + "name" : "userUnsharedWebcam" + }, + "acm002463jsd" : { + "type" : "ControlElement", + "id" : "acm002463jsd", + "name" : "userRoleChanged" + }, + "acm002464jsd" : { + "type" : "ControlElement", + "id" : "acm002464jsd", + "name" : "userLockedInMeeting" + }, + "acm002465jsd" : { + "type" : "ControlElement", + "id" : "acm002465jsd", + "name" : "processMessage" + }, + "acm002466jsd" : { + "type" : "ControlElement", + "id" : "acm002466jsd", + "name" : "run" + }, + "acm002467jsd" : { + "type" : "ControlElement", + "id" : "acm002467jsd", + "name" : "processGuestPolicyChanged" + }, + "acm002468jsd" : { + "type" : "ControlElement", + "id" : "acm002468jsd", + "name" : "processPositionInWaitingQueueUpdated" + }, + "acm002469jsd" : { + "type" : "ControlElement", + "id" : "acm002469jsd", + "name" : "processGuestLobbyMessageChanged" + }, + "acm002470jsd" : { + "type" : "ControlElement", + "id" : "acm002470jsd", + "name" : "processPrivateGuestLobbyMessageChanged" + }, + "acm002471jsd" : { + "type" : "ControlElement", + "id" : "acm002471jsd", + "name" : "processRecordingChapterBreak" + }, + "acm002472jsd" : { + "type" : "ControlElement", + "id" : "acm002472jsd", + "name" : "processMakePresentationDownloadableMsg" + }, + "acm002473jsd" : { + "type" : "ControlElement", + "id" : "acm002473jsd", + "name" : "getDownloadablePresentationFile" + }, + "acm002474jsd" : { + "type" : "ControlElement", + "id" : "acm002474jsd", + "name" : "start" + }, + "acm002475jsd" : { + "type" : "ControlElement", + "id" : "acm002475jsd", + "name" : "run" + }, + "acm002476jsd" : { + "type" : "ControlElement", + "id" : "acm002476jsd", + "name" : "stop" + }, + "acm002477jsd" : { + "type" : "ControlElement", + "id" : "acm002477jsd", + "name" : "setRecordingService" + }, + "acm002478jsd" : { + "type" : "ControlElement", + "id" : "acm002478jsd", + "name" : "setLearningDashboardService" + }, + "acm002479jsd" : { + "type" : "ControlElement", + "id" : "acm002479jsd", + "name" : "setRedisStorageService" + }, + "acm002480jsd" : { + "type" : "ControlElement", + "id" : "acm002480jsd", + "name" : "setCallbackUrlService" + }, + "acm002481jsd" : { + "type" : "ControlElement", + "id" : "acm002481jsd", + "name" : "setGw" + }, + "acm002482jsd" : { + "type" : "ControlElement", + "id" : "acm002482jsd", + "name" : "setWaitingGuestCleanupTimerTask" + }, + "acm002483jsd" : { + "type" : "ControlElement", + "id" : "acm002483jsd", + "name" : "setEnteredUserCleanupTimerTask" + }, + "acm002484jsd" : { + "type" : "ControlElement", + "id" : "acm002484jsd", + "name" : "setUserCleanupTimerTask" + }, + "acm002485jsd" : { + "type" : "ControlElement", + "id" : "acm002485jsd", + "name" : "setStunTurnService" + }, + "acm002486jsd" : { + "type" : "ControlElement", + "id" : "acm002486jsd", + "name" : "setUsersTimeout" + }, + "acm002487jsd" : { + "type" : "ControlElement", + "id" : "acm002487jsd", + "name" : "setWaitingGuestUsersTimeout" + }, + "acm002488jsd" : { + "type" : "ControlElement", + "id" : "acm002488jsd", + "name" : "setEnteredUsersTimeout" + }, + "acm002489jsd" : { + "type" : "ControlElement", + "id" : "acm002489jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm002490jsd" : { + "type" : "ClassUnit", + "id" : "acm002490jsd", + "name" : "MeetingService", + "compilationUnitId" : "acm002388jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003245jsd" ], + "datatypeReferencesIds" : [ "acm002241jsd", "acm002387jsd", "acm002490jsd", "acm002612jsd", "acm002633jsd", "acm002943jsd", "acm003159jsd", "acm003199jsd", "acm003229jsd", "acm003294jsd", "acm003303jsd", "acm003312jsd", "acm003330jsd", "acm003339jsd", "acm003347jsd", "acm003355jsd", "acm003371jsd", "acm003379jsd", "acm003387jsd", "acm003395jsd", "acm003403jsd", "acm003410jsd", "acm003426jsd", "acm003434jsd", "acm003442jsd", "acm003450jsd", "acm003458jsd", "acm003466jsd", "acm003474jsd", "acm003482jsd", "acm003490jsd", "acm003498jsd", "acm003514jsd", "acm003522jsd", "acm003530jsd", "acm003538jsd", "acm003546jsd", "acm003554jsd", "acm003562jsd", "acm003570jsd", "acm003578jsd", "acm003586jsd", "acm003594jsd", "acm004639jsd", "acm004912jsd", "acm005318jsd", "acm005481jsd", "acm005547jsd", "acm005560jsd", "acm005580jsd", "acm005607jsd", "acm005636jsd" ], + "content" : [ "acm002392jsd", "acm002393jsd", "acm002394jsd", "acm002395jsd", "acm002396jsd", "acm002397jsd", "acm002398jsd", "acm002399jsd", "acm002400jsd", "acm002401jsd", "acm002402jsd", "acm002403jsd", "acm002404jsd", "acm002405jsd", "acm002406jsd", "acm002407jsd", "acm002408jsd", "acm002409jsd", "acm002410jsd", "acm002411jsd", "acm002412jsd", "acm002413jsd", "acm002414jsd", "acm002415jsd", "acm002416jsd", "acm002417jsd", "acm002418jsd", "acm002419jsd", "acm002420jsd", "acm002421jsd", "acm002422jsd", "acm002423jsd", "acm002424jsd", "acm002425jsd", "acm002426jsd", "acm002427jsd", "acm002428jsd", "acm002429jsd", "acm002430jsd", "acm002431jsd", "acm002432jsd", "acm002433jsd", "acm002434jsd", "acm002435jsd", "acm002436jsd", "acm002437jsd", "acm002438jsd", "acm002439jsd", "acm002440jsd", "acm002441jsd", "acm002442jsd", "acm002443jsd", "acm002444jsd", "acm002445jsd", "acm002446jsd", "acm002447jsd", "acm002448jsd", "acm002449jsd", "acm002450jsd", "acm002451jsd", "acm002452jsd", "acm002453jsd", "acm002454jsd", "acm002455jsd", "acm002456jsd", "acm002457jsd", "acm002458jsd", "acm002459jsd", "acm002460jsd", "acm002461jsd", "acm002462jsd", "acm002463jsd", "acm002464jsd", "acm002465jsd", "acm002466jsd", "acm002467jsd", "acm002468jsd", "acm002469jsd", "acm002470jsd", "acm002471jsd", "acm002472jsd", "acm002473jsd", "acm002474jsd", "acm002475jsd", "acm002476jsd", "acm002477jsd", "acm002478jsd", "acm002479jsd", "acm002480jsd", "acm002481jsd", "acm002482jsd", "acm002483jsd", "acm002484jsd", "acm002485jsd", "acm002486jsd", "acm002487jsd", "acm002488jsd", "acm002489jsd" ] + }, + "acm002491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002491jsd", + "name" : "ParamsProcessorUtil", + "parentId" : "acm002337jsd", + "content" : [ "acm002612jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002492jsd" : { + "type" : "CodePackage", + "id" : "acm002492jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002493jsd" ] + }, + "acm002493jsd" : { + "type" : "CodePackage", + "id" : "acm002493jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002494jsd" ] + }, + "acm002494jsd" : { + "type" : "CodePackage", + "id" : "acm002494jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002491jsd" ] + }, + "acm002495jsd" : { + "type" : "ControlElement", + "id" : "acm002495jsd", + "name" : "formatConfNum" + }, + "acm002496jsd" : { + "type" : "ControlElement", + "id" : "acm002496jsd", + "name" : "substituteKeywords" + }, + "acm002497jsd" : { + "type" : "ControlElement", + "id" : "acm002497jsd", + "name" : "processRequiredCreateParams" + }, + "acm002498jsd" : { + "type" : "ControlElement", + "id" : "acm002498jsd", + "name" : "processUpdateCreateParams" + }, + "acm002499jsd" : { + "type" : "ControlElement", + "id" : "acm002499jsd", + "name" : "isMetaValid" + }, + "acm002500jsd" : { + "type" : "ControlElement", + "id" : "acm002500jsd", + "name" : "removeMetaString" + }, + "acm002501jsd" : { + "type" : "ControlElement", + "id" : "acm002501jsd", + "name" : "processMetaParam" + }, + "acm002502jsd" : { + "type" : "ControlElement", + "id" : "acm002502jsd", + "name" : "processBreakoutRoomsParams" + }, + "acm002503jsd" : { + "type" : "ControlElement", + "id" : "acm002503jsd", + "name" : "processLockSettingsParams" + }, + "acm002504jsd" : { + "type" : "ControlElement", + "id" : "acm002504jsd", + "name" : "processGroupsParams" + }, + "acm002505jsd" : { + "type" : "ControlElement", + "id" : "acm002505jsd", + "name" : "processCreateParams" + }, + "acm002506jsd" : { + "type" : "ControlElement", + "id" : "acm002506jsd", + "name" : "getApiVersion" + }, + "acm002507jsd" : { + "type" : "ControlElement", + "id" : "acm002507jsd", + "name" : "isServiceEnabled" + }, + "acm002508jsd" : { + "type" : "ControlElement", + "id" : "acm002508jsd", + "name" : "getDefaultHTML5ClientUrl" + }, + "acm002509jsd" : { + "type" : "ControlElement", + "id" : "acm002509jsd", + "name" : "getDefaultGuestWaitURL" + }, + "acm002510jsd" : { + "type" : "ControlElement", + "id" : "acm002510jsd", + "name" : "getUseDefaultLogo" + }, + "acm002511jsd" : { + "type" : "ControlElement", + "id" : "acm002511jsd", + "name" : "getDefaultLogoURL" + }, + "acm002512jsd" : { + "type" : "ControlElement", + "id" : "acm002512jsd", + "name" : "getAllowRequestsWithoutSession" + }, + "acm002513jsd" : { + "type" : "ControlElement", + "id" : "acm002513jsd", + "name" : "getDefaultHttpSessionTimeout" + }, + "acm002514jsd" : { + "type" : "ControlElement", + "id" : "acm002514jsd", + "name" : "setDefaultHttpSessionTimeout" + }, + "acm002515jsd" : { + "type" : "ControlElement", + "id" : "acm002515jsd", + "name" : "getDefaultLogoutUrl" + }, + "acm002516jsd" : { + "type" : "ControlElement", + "id" : "acm002516jsd", + "name" : "getBbbVersion" + }, + "acm002517jsd" : { + "type" : "ControlElement", + "id" : "acm002517jsd", + "name" : "getAllowRevealOfBBBVersion" + }, + "acm002518jsd" : { + "type" : "ControlElement", + "id" : "acm002518jsd", + "name" : "processWelcomeMessage" + }, + "acm002519jsd" : { + "type" : "ControlElement", + "id" : "acm002519jsd", + "name" : "convertToInternalMeetingId" + }, + "acm002520jsd" : { + "type" : "ControlElement", + "id" : "acm002520jsd", + "name" : "processPassword" + }, + "acm002521jsd" : { + "type" : "ControlElement", + "id" : "acm002521jsd", + "name" : "hasChecksumAndQueryString" + }, + "acm002522jsd" : { + "type" : "ControlElement", + "id" : "acm002522jsd", + "name" : "processTelVoice" + }, + "acm002523jsd" : { + "type" : "ControlElement", + "id" : "acm002523jsd", + "name" : "processDialNumber" + }, + "acm002524jsd" : { + "type" : "ControlElement", + "id" : "acm002524jsd", + "name" : "processLogoutUrl" + }, + "acm002525jsd" : { + "type" : "ControlElement", + "id" : "acm002525jsd", + "name" : "processRecordMeeting" + }, + "acm002526jsd" : { + "type" : "ControlElement", + "id" : "acm002526jsd", + "name" : "processHtml5InstanceId" + }, + "acm002527jsd" : { + "type" : "ControlElement", + "id" : "acm002527jsd", + "name" : "processMaxUser" + }, + "acm002528jsd" : { + "type" : "ControlElement", + "id" : "acm002528jsd", + "name" : "processMeetingDuration" + }, + "acm002529jsd" : { + "type" : "ControlElement", + "id" : "acm002529jsd", + "name" : "processLogoutTimer" + }, + "acm002530jsd" : { + "type" : "ControlElement", + "id" : "acm002530jsd", + "name" : "isTestMeeting" + }, + "acm002531jsd" : { + "type" : "ControlElement", + "id" : "acm002531jsd", + "name" : "getIntMeetingIdForTestMeeting" + }, + "acm002532jsd" : { + "type" : "ControlElement", + "id" : "acm002532jsd", + "name" : "isChecksumSame" + }, + "acm002533jsd" : { + "type" : "ControlElement", + "id" : "acm002533jsd", + "name" : "isPostChecksumSame" + }, + "acm002534jsd" : { + "type" : "ControlElement", + "id" : "acm002534jsd", + "name" : "setApiVersion" + }, + "acm002535jsd" : { + "type" : "ControlElement", + "id" : "acm002535jsd", + "name" : "setServiceEnabled" + }, + "acm002536jsd" : { + "type" : "ControlElement", + "id" : "acm002536jsd", + "name" : "setSecuritySalt" + }, + "acm002537jsd" : { + "type" : "ControlElement", + "id" : "acm002537jsd", + "name" : "setSupportedChecksumAlgorithms" + }, + "acm002538jsd" : { + "type" : "ControlElement", + "id" : "acm002538jsd", + "name" : "setChecksumHash" + }, + "acm002539jsd" : { + "type" : "ControlElement", + "id" : "acm002539jsd", + "name" : "setDefaultMaxUsers" + }, + "acm002540jsd" : { + "type" : "ControlElement", + "id" : "acm002540jsd", + "name" : "setDefaultWelcomeMessage" + }, + "acm002541jsd" : { + "type" : "ControlElement", + "id" : "acm002541jsd", + "name" : "setDefaultWelcomeMessageFooter" + }, + "acm002542jsd" : { + "type" : "ControlElement", + "id" : "acm002542jsd", + "name" : "setDefaultDialAccessNumber" + }, + "acm002543jsd" : { + "type" : "ControlElement", + "id" : "acm002543jsd", + "name" : "setTestVoiceBridge" + }, + "acm002544jsd" : { + "type" : "ControlElement", + "id" : "acm002544jsd", + "name" : "setTestConferenceMock" + }, + "acm002545jsd" : { + "type" : "ControlElement", + "id" : "acm002545jsd", + "name" : "setDefaultLogoutUrl" + }, + "acm002546jsd" : { + "type" : "ControlElement", + "id" : "acm002546jsd", + "name" : "setDefaultServerUrl" + }, + "acm002547jsd" : { + "type" : "ControlElement", + "id" : "acm002547jsd", + "name" : "setDefaultNumDigitsForTelVoice" + }, + "acm002548jsd" : { + "type" : "ControlElement", + "id" : "acm002548jsd", + "name" : "setDefaultHTML5ClientUrl" + }, + "acm002549jsd" : { + "type" : "ControlElement", + "id" : "acm002549jsd", + "name" : "setDefaultGuestWaitURL" + }, + "acm002550jsd" : { + "type" : "ControlElement", + "id" : "acm002550jsd", + "name" : "setUseDefaultLogo" + }, + "acm002551jsd" : { + "type" : "ControlElement", + "id" : "acm002551jsd", + "name" : "setDefaultLogoURL" + }, + "acm002552jsd" : { + "type" : "ControlElement", + "id" : "acm002552jsd", + "name" : "setAllowRequestsWithoutSession" + }, + "acm002553jsd" : { + "type" : "ControlElement", + "id" : "acm002553jsd", + "name" : "setDefaultMeetingDuration" + }, + "acm002554jsd" : { + "type" : "ControlElement", + "id" : "acm002554jsd", + "name" : "setDisableRecordingDefault" + }, + "acm002555jsd" : { + "type" : "ControlElement", + "id" : "acm002555jsd", + "name" : "setAutoStartRecording" + }, + "acm002556jsd" : { + "type" : "ControlElement", + "id" : "acm002556jsd", + "name" : "setAllowStartStopRecording" + }, + "acm002557jsd" : { + "type" : "ControlElement", + "id" : "acm002557jsd", + "name" : "setLearningDashboardEnabled" + }, + "acm002558jsd" : { + "type" : "ControlElement", + "id" : "acm002558jsd", + "name" : "setLearningDashboardCleanupDelayInMinutes" + }, + "acm002559jsd" : { + "type" : "ControlElement", + "id" : "acm002559jsd", + "name" : "setWebcamsOnlyForModerator" + }, + "acm002560jsd" : { + "type" : "ControlElement", + "id" : "acm002560jsd", + "name" : "setDefaultMeetingCameraCap" + }, + "acm002561jsd" : { + "type" : "ControlElement", + "id" : "acm002561jsd", + "name" : "setDefaultUserCameraCap" + }, + "acm002562jsd" : { + "type" : "ControlElement", + "id" : "acm002562jsd", + "name" : "setDefaultMaxPinnedCameras" + }, + "acm002563jsd" : { + "type" : "ControlElement", + "id" : "acm002563jsd", + "name" : "setUseDefaultAvatar" + }, + "acm002564jsd" : { + "type" : "ControlElement", + "id" : "acm002564jsd", + "name" : "setdefaultAvatarURL" + }, + "acm002565jsd" : { + "type" : "ControlElement", + "id" : "acm002565jsd", + "name" : "setDefaultGuestPolicy" + }, + "acm002566jsd" : { + "type" : "ControlElement", + "id" : "acm002566jsd", + "name" : "setAuthenticatedGuest" + }, + "acm002567jsd" : { + "type" : "ControlElement", + "id" : "acm002567jsd", + "name" : "setDefaultMeetingLayout" + }, + "acm002568jsd" : { + "type" : "ControlElement", + "id" : "acm002568jsd", + "name" : "setClientLogoutTimerInMinutes" + }, + "acm002569jsd" : { + "type" : "ControlElement", + "id" : "acm002569jsd", + "name" : "setMeetingExpireWhenLastUserLeftInMinutes" + }, + "acm002570jsd" : { + "type" : "ControlElement", + "id" : "acm002570jsd", + "name" : "setMeetingExpireIfNoUserJoinedInMinutes" + }, + "acm002571jsd" : { + "type" : "ControlElement", + "id" : "acm002571jsd", + "name" : "getUserInactivityInspectTimerInMinutes" + }, + "acm002572jsd" : { + "type" : "ControlElement", + "id" : "acm002572jsd", + "name" : "setUserInactivityInspectTimerInMinutes" + }, + "acm002573jsd" : { + "type" : "ControlElement", + "id" : "acm002573jsd", + "name" : "getUserInactivityThresholdInMinutes" + }, + "acm002574jsd" : { + "type" : "ControlElement", + "id" : "acm002574jsd", + "name" : "setUserInactivityThresholdInMinutes" + }, + "acm002575jsd" : { + "type" : "ControlElement", + "id" : "acm002575jsd", + "name" : "getUserActivitySignResponseDelayInMinutes" + }, + "acm002576jsd" : { + "type" : "ControlElement", + "id" : "acm002576jsd", + "name" : "setUserActivitySignResponseDelayInMinutes" + }, + "acm002577jsd" : { + "type" : "ControlElement", + "id" : "acm002577jsd", + "name" : "setMaxPresentationFileUpload" + }, + "acm002578jsd" : { + "type" : "ControlElement", + "id" : "acm002578jsd", + "name" : "getMaxPresentationFileUpload" + }, + "acm002579jsd" : { + "type" : "ControlElement", + "id" : "acm002579jsd", + "name" : "setMuteOnStart" + }, + "acm002580jsd" : { + "type" : "ControlElement", + "id" : "acm002580jsd", + "name" : "getMuteOnStart" + }, + "acm002581jsd" : { + "type" : "ControlElement", + "id" : "acm002581jsd", + "name" : "setDefaultKeepEvents" + }, + "acm002582jsd" : { + "type" : "ControlElement", + "id" : "acm002582jsd", + "name" : "setAllowModsToUnmuteUsers" + }, + "acm002583jsd" : { + "type" : "ControlElement", + "id" : "acm002583jsd", + "name" : "getAllowModsToUnmuteUsers" + }, + "acm002584jsd" : { + "type" : "ControlElement", + "id" : "acm002584jsd", + "name" : "setAllowModsToEjectCameras" + }, + "acm002585jsd" : { + "type" : "ControlElement", + "id" : "acm002585jsd", + "name" : "getAllowModsToEjectCameras" + }, + "acm002586jsd" : { + "type" : "ControlElement", + "id" : "acm002586jsd", + "name" : "decodeIds" + }, + "acm002587jsd" : { + "type" : "ControlElement", + "id" : "acm002587jsd", + "name" : "convertToInternalMeetingId" + }, + "acm002588jsd" : { + "type" : "ControlElement", + "id" : "acm002588jsd", + "name" : "getUserCustomData" + }, + "acm002589jsd" : { + "type" : "ControlElement", + "id" : "acm002589jsd", + "name" : "decodeFilters" + }, + "acm002590jsd" : { + "type" : "ControlElement", + "id" : "acm002590jsd", + "name" : "setBreakoutRoomsEnabled" + }, + "acm002591jsd" : { + "type" : "ControlElement", + "id" : "acm002591jsd", + "name" : "setBreakoutRoomsRecord" + }, + "acm002592jsd" : { + "type" : "ControlElement", + "id" : "acm002592jsd", + "name" : "setBreakoutRoomsPrivateChatEnabled" + }, + "acm002593jsd" : { + "type" : "ControlElement", + "id" : "acm002593jsd", + "name" : "setLockSettingsDisableCam" + }, + "acm002594jsd" : { + "type" : "ControlElement", + "id" : "acm002594jsd", + "name" : "setLockSettingsDisableMic" + }, + "acm002595jsd" : { + "type" : "ControlElement", + "id" : "acm002595jsd", + "name" : "setLockSettingsDisablePrivateChat" + }, + "acm002596jsd" : { + "type" : "ControlElement", + "id" : "acm002596jsd", + "name" : "setLockSettingsDisablePublicChat" + }, + "acm002597jsd" : { + "type" : "ControlElement", + "id" : "acm002597jsd", + "name" : "setLockSettingsDisableNotes" + }, + "acm002598jsd" : { + "type" : "ControlElement", + "id" : "acm002598jsd", + "name" : "setLockSettingsHideUserList" + }, + "acm002599jsd" : { + "type" : "ControlElement", + "id" : "acm002599jsd", + "name" : "setLockSettingsLockOnJoin" + }, + "acm002600jsd" : { + "type" : "ControlElement", + "id" : "acm002600jsd", + "name" : "setLockSettingsLockOnJoinConfigurable" + }, + "acm002601jsd" : { + "type" : "ControlElement", + "id" : "acm002601jsd", + "name" : "setLockSettingsHideViewersCursor" + }, + "acm002602jsd" : { + "type" : "ControlElement", + "id" : "acm002602jsd", + "name" : "setAllowDuplicateExtUserid" + }, + "acm002603jsd" : { + "type" : "ControlElement", + "id" : "acm002603jsd", + "name" : "setMaxUserConcurrentAccesses" + }, + "acm002604jsd" : { + "type" : "ControlElement", + "id" : "acm002604jsd", + "name" : "setEndWhenNoModerator" + }, + "acm002605jsd" : { + "type" : "ControlElement", + "id" : "acm002605jsd", + "name" : "setEndWhenNoModeratorDelayInMinutes" + }, + "acm002606jsd" : { + "type" : "ControlElement", + "id" : "acm002606jsd", + "name" : "setDisabledFeatures" + }, + "acm002607jsd" : { + "type" : "ControlElement", + "id" : "acm002607jsd", + "name" : "setNotifyRecordingIsOn" + }, + "acm002608jsd" : { + "type" : "ControlElement", + "id" : "acm002608jsd", + "name" : "setPresentationUploadExternalDescription" + }, + "acm002609jsd" : { + "type" : "ControlElement", + "id" : "acm002609jsd", + "name" : "setPresentationUploadExternalUrl" + }, + "acm002610jsd" : { + "type" : "ControlElement", + "id" : "acm002610jsd", + "name" : "setBbbVersion" + }, + "acm002611jsd" : { + "type" : "ControlElement", + "id" : "acm002611jsd", + "name" : "setAllowRevealOfBBBVersion" + }, + "acm002612jsd" : { + "type" : "ClassUnit", + "id" : "acm002612jsd", + "name" : "ParamsProcessorUtil", + "compilationUnitId" : "acm002491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002354jsd", "acm002612jsd", "acm002684jsd", "acm002730jsd", "acm002757jsd", "acm002943jsd", "acm002987jsd" ], + "content" : [ "acm002495jsd", "acm002496jsd", "acm002497jsd", "acm002498jsd", "acm002499jsd", "acm002500jsd", "acm002501jsd", "acm002502jsd", "acm002503jsd", "acm002504jsd", "acm002505jsd", "acm002506jsd", "acm002507jsd", "acm002508jsd", "acm002509jsd", "acm002510jsd", "acm002511jsd", "acm002512jsd", "acm002513jsd", "acm002514jsd", "acm002515jsd", "acm002516jsd", "acm002517jsd", "acm002518jsd", "acm002519jsd", "acm002520jsd", "acm002521jsd", "acm002522jsd", "acm002523jsd", "acm002524jsd", "acm002525jsd", "acm002526jsd", "acm002527jsd", "acm002528jsd", "acm002529jsd", "acm002530jsd", "acm002531jsd", "acm002532jsd", "acm002533jsd", "acm002534jsd", "acm002535jsd", "acm002536jsd", "acm002537jsd", "acm002538jsd", "acm002539jsd", "acm002540jsd", "acm002541jsd", "acm002542jsd", "acm002543jsd", "acm002544jsd", "acm002545jsd", "acm002546jsd", "acm002547jsd", "acm002548jsd", "acm002549jsd", "acm002550jsd", "acm002551jsd", "acm002552jsd", "acm002553jsd", "acm002554jsd", "acm002555jsd", "acm002556jsd", "acm002557jsd", "acm002558jsd", "acm002559jsd", "acm002560jsd", "acm002561jsd", "acm002562jsd", "acm002563jsd", "acm002564jsd", "acm002565jsd", "acm002566jsd", "acm002567jsd", "acm002568jsd", "acm002569jsd", "acm002570jsd", "acm002571jsd", "acm002572jsd", "acm002573jsd", "acm002574jsd", "acm002575jsd", "acm002576jsd", "acm002577jsd", "acm002578jsd", "acm002579jsd", "acm002580jsd", "acm002581jsd", "acm002582jsd", "acm002583jsd", "acm002584jsd", "acm002585jsd", "acm002586jsd", "acm002587jsd", "acm002588jsd", "acm002589jsd", "acm002590jsd", "acm002591jsd", "acm002592jsd", "acm002593jsd", "acm002594jsd", "acm002595jsd", "acm002596jsd", "acm002597jsd", "acm002598jsd", "acm002599jsd", "acm002600jsd", "acm002601jsd", "acm002602jsd", "acm002603jsd", "acm002604jsd", "acm002605jsd", "acm002606jsd", "acm002607jsd", "acm002608jsd", "acm002609jsd", "acm002610jsd", "acm002611jsd" ] + }, + "acm002613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002613jsd", + "name" : "RecordingService", + "parentId" : "acm002337jsd", + "content" : [ "acm002633jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002614jsd" : { + "type" : "CodePackage", + "id" : "acm002614jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002615jsd" ] + }, + "acm002615jsd" : { + "type" : "CodePackage", + "id" : "acm002615jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002616jsd" ] + }, + "acm002616jsd" : { + "type" : "CodePackage", + "id" : "acm002616jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002613jsd" ] + }, + "acm002617jsd" : { + "type" : "ControlElement", + "id" : "acm002617jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm002618jsd" : { + "type" : "ControlElement", + "id" : "acm002618jsd", + "name" : "getRecordingTextTracks" + }, + "acm002619jsd" : { + "type" : "ControlElement", + "id" : "acm002619jsd", + "name" : "putRecordingTextTrack" + }, + "acm002620jsd" : { + "type" : "ControlElement", + "id" : "acm002620jsd", + "name" : "getCaptionTrackInboxDir" + }, + "acm002621jsd" : { + "type" : "ControlElement", + "id" : "acm002621jsd", + "name" : "getCaptionsDir" + }, + "acm002622jsd" : { + "type" : "ControlElement", + "id" : "acm002622jsd", + "name" : "isRecordingExist" + }, + "acm002623jsd" : { + "type" : "ControlElement", + "id" : "acm002623jsd", + "name" : "getRecordings2x" + }, + "acm002624jsd" : { + "type" : "ControlElement", + "id" : "acm002624jsd", + "name" : "existAnyRecording" + }, + "acm002625jsd" : { + "type" : "ControlElement", + "id" : "acm002625jsd", + "name" : "changeState" + }, + "acm002626jsd" : { + "type" : "ControlElement", + "id" : "acm002626jsd", + "name" : "updateMetaParams" + }, + "acm002627jsd" : { + "type" : "ControlElement", + "id" : "acm002627jsd", + "name" : "startIngestAndProcessing" + }, + "acm002628jsd" : { + "type" : "ControlElement", + "id" : "acm002628jsd", + "name" : "markAsEnded" + }, + "acm002629jsd" : { + "type" : "ControlElement", + "id" : "acm002629jsd", + "name" : "kickOffRecordingChapterBreak" + }, + "acm002630jsd" : { + "type" : "ControlElement", + "id" : "acm002630jsd", + "name" : "processMakePresentationDownloadableMsg" + }, + "acm002631jsd" : { + "type" : "ControlElement", + "id" : "acm002631jsd", + "name" : "getDownloadablePresentationFile" + }, + "acm002632jsd" : { + "type" : "ControlElement", + "id" : "acm002632jsd", + "name" : "listToPage" + }, + "acm002633jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002633jsd", + "name" : "RecordingService", + "compilationUnitId" : "acm002613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003434jsd" ], + "content" : [ "acm002617jsd", "acm002618jsd", "acm002619jsd", "acm002620jsd", "acm002621jsd", "acm002622jsd", "acm002623jsd", "acm002624jsd", "acm002625jsd", "acm002626jsd", "acm002627jsd", "acm002628jsd", "acm002629jsd", "acm002630jsd", "acm002631jsd", "acm002632jsd" ] + }, + "acm002634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002634jsd", + "name" : "RecordingServiceHelper", + "parentId" : "acm002337jsd", + "content" : [ "acm002640jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002635jsd" : { + "type" : "CodePackage", + "id" : "acm002635jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002636jsd" ] + }, + "acm002636jsd" : { + "type" : "CodePackage", + "id" : "acm002636jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002637jsd" ] + }, + "acm002637jsd" : { + "type" : "CodePackage", + "id" : "acm002637jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002634jsd" ] + }, + "acm002638jsd" : { + "type" : "ControlElement", + "id" : "acm002638jsd", + "name" : "getRecordingInfo" + }, + "acm002639jsd" : { + "type" : "ControlElement", + "id" : "acm002639jsd", + "name" : "writeRecordingInfo" + }, + "acm002640jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002640jsd", + "name" : "RecordingServiceHelper", + "compilationUnitId" : "acm002634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003106jsd" ], + "content" : [ "acm002638jsd", "acm002639jsd" ] + }, + "acm002641jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002641jsd", + "name" : "Util", + "parentId" : "acm002337jsd", + "content" : [ "acm002657jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002642jsd" : { + "type" : "CodePackage", + "id" : "acm002642jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002643jsd" ] + }, + "acm002643jsd" : { + "type" : "CodePackage", + "id" : "acm002643jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002644jsd" ] + }, + "acm002644jsd" : { + "type" : "CodePackage", + "id" : "acm002644jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002641jsd" ] + }, + "acm002645jsd" : { + "type" : "ControlElement", + "id" : "acm002645jsd", + "name" : "Util" + }, + "acm002646jsd" : { + "type" : "ControlElement", + "id" : "acm002646jsd", + "name" : "isMeetingIdValidFormat" + }, + "acm002647jsd" : { + "type" : "ControlElement", + "id" : "acm002647jsd", + "name" : "isPresIdValidFormat" + }, + "acm002648jsd" : { + "type" : "ControlElement", + "id" : "acm002648jsd", + "name" : "isPresFileIdValidFormat" + }, + "acm002649jsd" : { + "type" : "ControlElement", + "id" : "acm002649jsd", + "name" : "generatePresentationId" + }, + "acm002650jsd" : { + "type" : "ControlElement", + "id" : "acm002650jsd", + "name" : "createNewFilename" + }, + "acm002651jsd" : { + "type" : "ControlElement", + "id" : "acm002651jsd", + "name" : "createPresentationDir" + }, + "acm002652jsd" : { + "type" : "ControlElement", + "id" : "acm002652jsd", + "name" : "getMeetingDirPath" + }, + "acm002653jsd" : { + "type" : "ControlElement", + "id" : "acm002653jsd", + "name" : "getPresentationDir" + }, + "acm002654jsd" : { + "type" : "ControlElement", + "id" : "acm002654jsd", + "name" : "stripPresBaseDirFromPath" + }, + "acm002655jsd" : { + "type" : "ControlElement", + "id" : "acm002655jsd", + "name" : "getPresFileDownloadMarker" + }, + "acm002656jsd" : { + "type" : "ControlElement", + "id" : "acm002656jsd", + "name" : "makePresentationDownloadable" + }, + "acm002657jsd" : { + "type" : "ClassUnit", + "id" : "acm002657jsd", + "name" : "Util", + "compilationUnitId" : "acm002641jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002645jsd", "acm002646jsd", "acm002647jsd", "acm002648jsd", "acm002649jsd", "acm002650jsd", "acm002651jsd", "acm002652jsd", "acm002653jsd", "acm002654jsd", "acm002655jsd", "acm002656jsd" ] + }, + "acm002658jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002658jsd", + "name" : "Breakout", + "parentId" : "acm002662jsd", + "content" : [ "acm002669jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002659jsd" : { + "type" : "CodePackage", + "id" : "acm002659jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002660jsd" ] + }, + "acm002660jsd" : { + "type" : "CodePackage", + "id" : "acm002660jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002661jsd" ] + }, + "acm002661jsd" : { + "type" : "CodePackage", + "id" : "acm002661jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002662jsd" ] + }, + "acm002662jsd" : { + "type" : "CodePackage", + "id" : "acm002662jsd", + "name" : "domain", + "parentId" : "acm002337jsd", + "content" : [ "acm002658jsd", "acm002670jsd", "acm002678jsd", "acm002685jsd", "acm002692jsd", "acm002699jsd", "acm002710jsd", "acm002718jsd", "acm002731jsd", "acm002737jsd", "acm002751jsd", "acm002758jsd", "acm002988jsd", "acm003002jsd", "acm003008jsd", "acm003018jsd", "acm003037jsd", "acm003052jsd", "acm003060jsd", "acm003107jsd", "acm003119jsd", "acm003138jsd", "acm003145jsd", "acm003160jsd", "acm003200jsd" ] + }, + "acm002663jsd" : { + "type" : "ControlElement", + "id" : "acm002663jsd", + "name" : "setParentMeetingId" + }, + "acm002664jsd" : { + "type" : "ControlElement", + "id" : "acm002664jsd", + "name" : "getParentMeetingId" + }, + "acm002665jsd" : { + "type" : "ControlElement", + "id" : "acm002665jsd", + "name" : "setSequence" + }, + "acm002666jsd" : { + "type" : "ControlElement", + "id" : "acm002666jsd", + "name" : "getSequence" + }, + "acm002667jsd" : { + "type" : "ControlElement", + "id" : "acm002667jsd", + "name" : "setMeetingId" + }, + "acm002668jsd" : { + "type" : "ControlElement", + "id" : "acm002668jsd", + "name" : "getMeetingId" + }, + "acm002669jsd" : { + "type" : "ClassUnit", + "id" : "acm002669jsd", + "name" : "Breakout", + "compilationUnitId" : "acm002658jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002663jsd", "acm002664jsd", "acm002665jsd", "acm002666jsd", "acm002667jsd", "acm002668jsd" ] + }, + "acm002670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002670jsd", + "name" : "BreakoutRoom", + "parentId" : "acm002662jsd", + "content" : [ "acm002677jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002671jsd" : { + "type" : "CodePackage", + "id" : "acm002671jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002672jsd" ] + }, + "acm002672jsd" : { + "type" : "CodePackage", + "id" : "acm002672jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002673jsd" ] + }, + "acm002673jsd" : { + "type" : "CodePackage", + "id" : "acm002673jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002674jsd" ] + }, + "acm002674jsd" : { + "type" : "CodePackage", + "id" : "acm002674jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002670jsd" ] + }, + "acm002675jsd" : { + "type" : "ControlElement", + "id" : "acm002675jsd", + "name" : "getValue" + }, + "acm002676jsd" : { + "type" : "ControlElement", + "id" : "acm002676jsd", + "name" : "setValue" + }, + "acm002677jsd" : { + "type" : "ClassUnit", + "id" : "acm002677jsd", + "name" : "BreakoutRoom", + "compilationUnitId" : "acm002670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002675jsd", "acm002676jsd" ] + }, + "acm002678jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002678jsd", + "name" : "BreakoutRoomsParams", + "parentId" : "acm002662jsd", + "content" : [ "acm002684jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002679jsd" : { + "type" : "CodePackage", + "id" : "acm002679jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002680jsd" ] + }, + "acm002680jsd" : { + "type" : "CodePackage", + "id" : "acm002680jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002681jsd" ] + }, + "acm002681jsd" : { + "type" : "CodePackage", + "id" : "acm002681jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002682jsd" ] + }, + "acm002682jsd" : { + "type" : "CodePackage", + "id" : "acm002682jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002678jsd" ] + }, + "acm002683jsd" : { + "type" : "ControlElement", + "id" : "acm002683jsd", + "name" : "BreakoutRoomsParams" + }, + "acm002684jsd" : { + "type" : "ClassUnit", + "id" : "acm002684jsd", + "name" : "BreakoutRoomsParams", + "compilationUnitId" : "acm002678jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002683jsd" ] + }, + "acm002685jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002685jsd", + "name" : "CaptionTrack", + "parentId" : "acm002662jsd", + "content" : [ "acm002691jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002686jsd" : { + "type" : "CodePackage", + "id" : "acm002686jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002687jsd" ] + }, + "acm002687jsd" : { + "type" : "CodePackage", + "id" : "acm002687jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002688jsd" ] + }, + "acm002688jsd" : { + "type" : "CodePackage", + "id" : "acm002688jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002689jsd" ] + }, + "acm002689jsd" : { + "type" : "CodePackage", + "id" : "acm002689jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002685jsd" ] + }, + "acm002690jsd" : { + "type" : "ControlElement", + "id" : "acm002690jsd", + "name" : "CaptionTrack" + }, + "acm002691jsd" : { + "type" : "ClassUnit", + "id" : "acm002691jsd", + "name" : "CaptionTrack", + "compilationUnitId" : "acm002685jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002690jsd" ] + }, + "acm002692jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002692jsd", + "name" : "Config", + "parentId" : "acm002662jsd", + "content" : [ "acm002698jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002693jsd" : { + "type" : "CodePackage", + "id" : "acm002693jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002694jsd" ] + }, + "acm002694jsd" : { + "type" : "CodePackage", + "id" : "acm002694jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002695jsd" ] + }, + "acm002695jsd" : { + "type" : "CodePackage", + "id" : "acm002695jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002696jsd" ] + }, + "acm002696jsd" : { + "type" : "CodePackage", + "id" : "acm002696jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002692jsd" ] + }, + "acm002697jsd" : { + "type" : "ControlElement", + "id" : "acm002697jsd", + "name" : "Config" + }, + "acm002698jsd" : { + "type" : "ClassUnit", + "id" : "acm002698jsd", + "name" : "Config", + "compilationUnitId" : "acm002692jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002697jsd" ] + }, + "acm002699jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002699jsd", + "name" : "Extension", + "parentId" : "acm002662jsd", + "content" : [ "acm002709jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002700jsd" : { + "type" : "CodePackage", + "id" : "acm002700jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002701jsd" ] + }, + "acm002701jsd" : { + "type" : "CodePackage", + "id" : "acm002701jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002702jsd" ] + }, + "acm002702jsd" : { + "type" : "CodePackage", + "id" : "acm002702jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002703jsd" ] + }, + "acm002703jsd" : { + "type" : "CodePackage", + "id" : "acm002703jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002699jsd" ] + }, + "acm002704jsd" : { + "type" : "ControlElement", + "id" : "acm002704jsd", + "name" : "Extension" + }, + "acm002705jsd" : { + "type" : "ControlElement", + "id" : "acm002705jsd", + "name" : "getType" + }, + "acm002706jsd" : { + "type" : "ControlElement", + "id" : "acm002706jsd", + "name" : "setType" + }, + "acm002707jsd" : { + "type" : "ControlElement", + "id" : "acm002707jsd", + "name" : "getProperties" + }, + "acm002708jsd" : { + "type" : "ControlElement", + "id" : "acm002708jsd", + "name" : "setProperties" + }, + "acm002709jsd" : { + "type" : "ClassUnit", + "id" : "acm002709jsd", + "name" : "Extension", + "compilationUnitId" : "acm002699jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002704jsd", "acm002705jsd", "acm002706jsd", "acm002707jsd", "acm002708jsd" ] + }, + "acm002710jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002710jsd", + "name" : "Extensions", + "parentId" : "acm002662jsd", + "content" : [ "acm002717jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002711jsd" : { + "type" : "CodePackage", + "id" : "acm002711jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002712jsd" ] + }, + "acm002712jsd" : { + "type" : "CodePackage", + "id" : "acm002712jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002713jsd" ] + }, + "acm002713jsd" : { + "type" : "CodePackage", + "id" : "acm002713jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002714jsd" ] + }, + "acm002714jsd" : { + "type" : "CodePackage", + "id" : "acm002714jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002710jsd" ] + }, + "acm002715jsd" : { + "type" : "ControlElement", + "id" : "acm002715jsd", + "name" : "setPreview" + }, + "acm002716jsd" : { + "type" : "ControlElement", + "id" : "acm002716jsd", + "name" : "getPreview" + }, + "acm002717jsd" : { + "type" : "ClassUnit", + "id" : "acm002717jsd", + "name" : "Extensions", + "compilationUnitId" : "acm002710jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003059jsd" ], + "content" : [ "acm002715jsd", "acm002716jsd" ] + }, + "acm002718jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002718jsd", + "name" : "Group", + "parentId" : "acm002662jsd", + "content" : [ "acm002730jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002719jsd" : { + "type" : "CodePackage", + "id" : "acm002719jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002720jsd" ] + }, + "acm002720jsd" : { + "type" : "CodePackage", + "id" : "acm002720jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002721jsd" ] + }, + "acm002721jsd" : { + "type" : "CodePackage", + "id" : "acm002721jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002722jsd" ] + }, + "acm002722jsd" : { + "type" : "CodePackage", + "id" : "acm002722jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002718jsd" ] + }, + "acm002723jsd" : { + "type" : "ControlElement", + "id" : "acm002723jsd", + "name" : "Group" + }, + "acm002724jsd" : { + "type" : "ControlElement", + "id" : "acm002724jsd", + "name" : "getGroupId" + }, + "acm002725jsd" : { + "type" : "ControlElement", + "id" : "acm002725jsd", + "name" : "setGroupId" + }, + "acm002726jsd" : { + "type" : "ControlElement", + "id" : "acm002726jsd", + "name" : "getName" + }, + "acm002727jsd" : { + "type" : "ControlElement", + "id" : "acm002727jsd", + "name" : "setName" + }, + "acm002728jsd" : { + "type" : "ControlElement", + "id" : "acm002728jsd", + "name" : "getUsersExtId" + }, + "acm002729jsd" : { + "type" : "ControlElement", + "id" : "acm002729jsd", + "name" : "setUsersExtId" + }, + "acm002730jsd" : { + "type" : "ClassUnit", + "id" : "acm002730jsd", + "name" : "Group", + "compilationUnitId" : "acm002718jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002723jsd", "acm002724jsd", "acm002725jsd", "acm002726jsd", "acm002727jsd", "acm002728jsd", "acm002729jsd" ] + }, + "acm002731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002731jsd", + "name" : "GuestPolicy", + "parentId" : "acm002662jsd", + "content" : [ "acm002736jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002732jsd" : { + "type" : "CodePackage", + "id" : "acm002732jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002733jsd" ] + }, + "acm002733jsd" : { + "type" : "CodePackage", + "id" : "acm002733jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002734jsd" ] + }, + "acm002734jsd" : { + "type" : "CodePackage", + "id" : "acm002734jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002735jsd" ] + }, + "acm002735jsd" : { + "type" : "CodePackage", + "id" : "acm002735jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002731jsd" ] + }, + "acm002736jsd" : { + "type" : "ClassUnit", + "id" : "acm002736jsd", + "name" : "GuestPolicy", + "compilationUnitId" : "acm002731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002737jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002737jsd", + "name" : "Image", + "parentId" : "acm002662jsd", + "content" : [ "acm002750jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002738jsd" : { + "type" : "CodePackage", + "id" : "acm002738jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002739jsd" ] + }, + "acm002739jsd" : { + "type" : "CodePackage", + "id" : "acm002739jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002740jsd" ] + }, + "acm002740jsd" : { + "type" : "CodePackage", + "id" : "acm002740jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002741jsd" ] + }, + "acm002741jsd" : { + "type" : "CodePackage", + "id" : "acm002741jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002737jsd" ] + }, + "acm002742jsd" : { + "type" : "ControlElement", + "id" : "acm002742jsd", + "name" : "setWidth" + }, + "acm002743jsd" : { + "type" : "ControlElement", + "id" : "acm002743jsd", + "name" : "getWidth" + }, + "acm002744jsd" : { + "type" : "ControlElement", + "id" : "acm002744jsd", + "name" : "setHeight" + }, + "acm002745jsd" : { + "type" : "ControlElement", + "id" : "acm002745jsd", + "name" : "getHeight" + }, + "acm002746jsd" : { + "type" : "ControlElement", + "id" : "acm002746jsd", + "name" : "setAlt" + }, + "acm002747jsd" : { + "type" : "ControlElement", + "id" : "acm002747jsd", + "name" : "getAlt" + }, + "acm002748jsd" : { + "type" : "ControlElement", + "id" : "acm002748jsd", + "name" : "getValue" + }, + "acm002749jsd" : { + "type" : "ControlElement", + "id" : "acm002749jsd", + "name" : "setValue" + }, + "acm002750jsd" : { + "type" : "ClassUnit", + "id" : "acm002750jsd", + "name" : "Image", + "compilationUnitId" : "acm002737jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002742jsd", "acm002743jsd", "acm002744jsd", "acm002745jsd", "acm002746jsd", "acm002747jsd", "acm002748jsd", "acm002749jsd" ] + }, + "acm002751jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002751jsd", + "name" : "LockSettingsParams", + "parentId" : "acm002662jsd", + "content" : [ "acm002757jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002752jsd" : { + "type" : "CodePackage", + "id" : "acm002752jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002753jsd" ] + }, + "acm002753jsd" : { + "type" : "CodePackage", + "id" : "acm002753jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002754jsd" ] + }, + "acm002754jsd" : { + "type" : "CodePackage", + "id" : "acm002754jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002755jsd" ] + }, + "acm002755jsd" : { + "type" : "CodePackage", + "id" : "acm002755jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002751jsd" ] + }, + "acm002756jsd" : { + "type" : "ControlElement", + "id" : "acm002756jsd", + "name" : "LockSettingsParams" + }, + "acm002757jsd" : { + "type" : "ClassUnit", + "id" : "acm002757jsd", + "name" : "LockSettingsParams", + "compilationUnitId" : "acm002751jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002756jsd" ] + }, + "acm002758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002758jsd", + "name" : "Meeting", + "parentId" : "acm002662jsd", + "content" : [ "acm002943jsd", "acm002987jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002759jsd" : { + "type" : "CodePackage", + "id" : "acm002759jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002760jsd" ] + }, + "acm002760jsd" : { + "type" : "CodePackage", + "id" : "acm002760jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002761jsd" ] + }, + "acm002761jsd" : { + "type" : "CodePackage", + "id" : "acm002761jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002762jsd" ] + }, + "acm002762jsd" : { + "type" : "CodePackage", + "id" : "acm002762jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002758jsd" ] + }, + "acm002763jsd" : { + "type" : "ControlElement", + "id" : "acm002763jsd", + "name" : "Meeting" + }, + "acm002764jsd" : { + "type" : "ControlElement", + "id" : "acm002764jsd", + "name" : "addBreakoutRoom" + }, + "acm002765jsd" : { + "type" : "ControlElement", + "id" : "acm002765jsd", + "name" : "getBreakoutRooms" + }, + "acm002766jsd" : { + "type" : "ControlElement", + "id" : "acm002766jsd", + "name" : "getMetadata" + }, + "acm002767jsd" : { + "type" : "ControlElement", + "id" : "acm002767jsd", + "name" : "getUsers" + }, + "acm002768jsd" : { + "type" : "ControlElement", + "id" : "acm002768jsd", + "name" : "getUsersMap" + }, + "acm002769jsd" : { + "type" : "ControlElement", + "id" : "acm002769jsd", + "name" : "countUniqueExtIds" + }, + "acm002770jsd" : { + "type" : "ControlElement", + "id" : "acm002770jsd", + "name" : "getUsersWithExtId" + }, + "acm002771jsd" : { + "type" : "ControlElement", + "id" : "acm002771jsd", + "name" : "guestIsWaiting" + }, + "acm002772jsd" : { + "type" : "ControlElement", + "id" : "acm002772jsd", + "name" : "setLeftGuestLobby" + }, + "acm002773jsd" : { + "type" : "ControlElement", + "id" : "acm002773jsd", + "name" : "didGuestUserLeaveGuestLobby" + }, + "acm002774jsd" : { + "type" : "ControlElement", + "id" : "acm002774jsd", + "name" : "setGuestStatusWithId" + }, + "acm002775jsd" : { + "type" : "ControlElement", + "id" : "acm002775jsd", + "name" : "getRegisteredUserWithAuthToken" + }, + "acm002776jsd" : { + "type" : "ControlElement", + "id" : "acm002776jsd", + "name" : "getGuestStatusWithAuthToken" + }, + "acm002777jsd" : { + "type" : "ControlElement", + "id" : "acm002777jsd", + "name" : "getHtml5InstanceId" + }, + "acm002778jsd" : { + "type" : "ControlElement", + "id" : "acm002778jsd", + "name" : "setHtml5InstanceId" + }, + "acm002779jsd" : { + "type" : "ControlElement", + "id" : "acm002779jsd", + "name" : "getGroups" + }, + "acm002780jsd" : { + "type" : "ControlElement", + "id" : "acm002780jsd", + "name" : "setGroups" + }, + "acm002781jsd" : { + "type" : "ControlElement", + "id" : "acm002781jsd", + "name" : "getStartTime" + }, + "acm002782jsd" : { + "type" : "ControlElement", + "id" : "acm002782jsd", + "name" : "setStartTime" + }, + "acm002783jsd" : { + "type" : "ControlElement", + "id" : "acm002783jsd", + "name" : "getCreateTime" + }, + "acm002784jsd" : { + "type" : "ControlElement", + "id" : "acm002784jsd", + "name" : "setSequence" + }, + "acm002785jsd" : { + "type" : "ControlElement", + "id" : "acm002785jsd", + "name" : "getSequence" + }, + "acm002786jsd" : { + "type" : "ControlElement", + "id" : "acm002786jsd", + "name" : "isFreeJoin" + }, + "acm002787jsd" : { + "type" : "ControlElement", + "id" : "acm002787jsd", + "name" : "setFreeJoin" + }, + "acm002788jsd" : { + "type" : "ControlElement", + "id" : "acm002788jsd", + "name" : "isCaptureSlides" + }, + "acm002789jsd" : { + "type" : "ControlElement", + "id" : "acm002789jsd", + "name" : "setCaptureSlides" + }, + "acm002790jsd" : { + "type" : "ControlElement", + "id" : "acm002790jsd", + "name" : "isCaptureNotes" + }, + "acm002791jsd" : { + "type" : "ControlElement", + "id" : "acm002791jsd", + "name" : "setCaptureNotes" + }, + "acm002792jsd" : { + "type" : "ControlElement", + "id" : "acm002792jsd", + "name" : "setCaptureNotesFilename" + }, + "acm002793jsd" : { + "type" : "ControlElement", + "id" : "acm002793jsd", + "name" : "setCaptureSlidesFilename" + }, + "acm002794jsd" : { + "type" : "ControlElement", + "id" : "acm002794jsd", + "name" : "getDuration" + }, + "acm002795jsd" : { + "type" : "ControlElement", + "id" : "acm002795jsd", + "name" : "getEndTime" + }, + "acm002796jsd" : { + "type" : "ControlElement", + "id" : "acm002796jsd", + "name" : "setModeratorOnlyMessage" + }, + "acm002797jsd" : { + "type" : "ControlElement", + "id" : "acm002797jsd", + "name" : "getModeratorOnlyMessage" + }, + "acm002798jsd" : { + "type" : "ControlElement", + "id" : "acm002798jsd", + "name" : "setEndTime" + }, + "acm002799jsd" : { + "type" : "ControlElement", + "id" : "acm002799jsd", + "name" : "isRunning" + }, + "acm002800jsd" : { + "type" : "ControlElement", + "id" : "acm002800jsd", + "name" : "isBreakout" + }, + "acm002801jsd" : { + "type" : "ControlElement", + "id" : "acm002801jsd", + "name" : "setHaveRecordingMarks" + }, + "acm002802jsd" : { + "type" : "ControlElement", + "id" : "acm002802jsd", + "name" : "haveRecordingMarks" + }, + "acm002803jsd" : { + "type" : "ControlElement", + "id" : "acm002803jsd", + "name" : "getName" + }, + "acm002804jsd" : { + "type" : "ControlElement", + "id" : "acm002804jsd", + "name" : "isForciblyEnded" + }, + "acm002805jsd" : { + "type" : "ControlElement", + "id" : "acm002805jsd", + "name" : "setForciblyEnded" + }, + "acm002806jsd" : { + "type" : "ControlElement", + "id" : "acm002806jsd", + "name" : "getExternalId" + }, + "acm002807jsd" : { + "type" : "ControlElement", + "id" : "acm002807jsd", + "name" : "getInternalId" + }, + "acm002808jsd" : { + "type" : "ControlElement", + "id" : "acm002808jsd", + "name" : "setParentMeetingId" + }, + "acm002809jsd" : { + "type" : "ControlElement", + "id" : "acm002809jsd", + "name" : "getParentMeetingId" + }, + "acm002810jsd" : { + "type" : "ControlElement", + "id" : "acm002810jsd", + "name" : "getWebVoice" + }, + "acm002811jsd" : { + "type" : "ControlElement", + "id" : "acm002811jsd", + "name" : "getTelVoice" + }, + "acm002812jsd" : { + "type" : "ControlElement", + "id" : "acm002812jsd", + "name" : "getModeratorPassword" + }, + "acm002813jsd" : { + "type" : "ControlElement", + "id" : "acm002813jsd", + "name" : "getViewerPassword" + }, + "acm002814jsd" : { + "type" : "ControlElement", + "id" : "acm002814jsd", + "name" : "getLearningDashboardCleanupDelayInMinutes" + }, + "acm002815jsd" : { + "type" : "ControlElement", + "id" : "acm002815jsd", + "name" : "getLearningDashboardAccessToken" + }, + "acm002816jsd" : { + "type" : "ControlElement", + "id" : "acm002816jsd", + "name" : "getDisabledFeatures" + }, + "acm002817jsd" : { + "type" : "ControlElement", + "id" : "acm002817jsd", + "name" : "getNotifyRecordingIsOn" + }, + "acm002818jsd" : { + "type" : "ControlElement", + "id" : "acm002818jsd", + "name" : "getPresentationUploadExternalDescription" + }, + "acm002819jsd" : { + "type" : "ControlElement", + "id" : "acm002819jsd", + "name" : "getPresentationUploadExternalUrl" + }, + "acm002820jsd" : { + "type" : "ControlElement", + "id" : "acm002820jsd", + "name" : "getWelcomeMessageTemplate" + }, + "acm002821jsd" : { + "type" : "ControlElement", + "id" : "acm002821jsd", + "name" : "getWelcomeMessage" + }, + "acm002822jsd" : { + "type" : "ControlElement", + "id" : "acm002822jsd", + "name" : "getDefaultAvatarURL" + }, + "acm002823jsd" : { + "type" : "ControlElement", + "id" : "acm002823jsd", + "name" : "setWaitingPositionsInWaitingQueue" + }, + "acm002824jsd" : { + "type" : "ControlElement", + "id" : "acm002824jsd", + "name" : "getWaitingPositionsInWaitingQueue" + }, + "acm002825jsd" : { + "type" : "ControlElement", + "id" : "acm002825jsd", + "name" : "setGuestPolicy" + }, + "acm002826jsd" : { + "type" : "ControlElement", + "id" : "acm002826jsd", + "name" : "getGuestPolicy" + }, + "acm002827jsd" : { + "type" : "ControlElement", + "id" : "acm002827jsd", + "name" : "setGuestLobbyMessage" + }, + "acm002828jsd" : { + "type" : "ControlElement", + "id" : "acm002828jsd", + "name" : "getGuestLobbyMessage" + }, + "acm002829jsd" : { + "type" : "ControlElement", + "id" : "acm002829jsd", + "name" : "setPrivateGuestLobbyMessage" + }, + "acm002830jsd" : { + "type" : "ControlElement", + "id" : "acm002830jsd", + "name" : "setAuthenticatedGuest" + }, + "acm002831jsd" : { + "type" : "ControlElement", + "id" : "acm002831jsd", + "name" : "getAuthenticatedGuest" + }, + "acm002832jsd" : { + "type" : "ControlElement", + "id" : "acm002832jsd", + "name" : "setMeetingLayout" + }, + "acm002833jsd" : { + "type" : "ControlElement", + "id" : "acm002833jsd", + "name" : "getMeetingLayout" + }, + "acm002834jsd" : { + "type" : "ControlElement", + "id" : "acm002834jsd", + "name" : "getUnauthenticatedGuestStatus" + }, + "acm002835jsd" : { + "type" : "ControlElement", + "id" : "acm002835jsd", + "name" : "calcGuestStatus" + }, + "acm002836jsd" : { + "type" : "ControlElement", + "id" : "acm002836jsd", + "name" : "getLogoutUrl" + }, + "acm002837jsd" : { + "type" : "ControlElement", + "id" : "acm002837jsd", + "name" : "getMaxUsers" + }, + "acm002838jsd" : { + "type" : "ControlElement", + "id" : "acm002838jsd", + "name" : "getMaxUserConcurrentAccesses" + }, + "acm002839jsd" : { + "type" : "ControlElement", + "id" : "acm002839jsd", + "name" : "getLogoutTimer" + }, + "acm002840jsd" : { + "type" : "ControlElement", + "id" : "acm002840jsd", + "name" : "getBannerColor" + }, + "acm002841jsd" : { + "type" : "ControlElement", + "id" : "acm002841jsd", + "name" : "getBannerText" + }, + "acm002842jsd" : { + "type" : "ControlElement", + "id" : "acm002842jsd", + "name" : "isRecord" + }, + "acm002843jsd" : { + "type" : "ControlElement", + "id" : "acm002843jsd", + "name" : "getAutoStartRecording" + }, + "acm002844jsd" : { + "type" : "ControlElement", + "id" : "acm002844jsd", + "name" : "getAllowStartStopRecording" + }, + "acm002845jsd" : { + "type" : "ControlElement", + "id" : "acm002845jsd", + "name" : "getWebcamsOnlyForModerator" + }, + "acm002846jsd" : { + "type" : "ControlElement", + "id" : "acm002846jsd", + "name" : "getMeetingCameraCap" + }, + "acm002847jsd" : { + "type" : "ControlElement", + "id" : "acm002847jsd", + "name" : "getUserCameraCap" + }, + "acm002848jsd" : { + "type" : "ControlElement", + "id" : "acm002848jsd", + "name" : "getMaxPinnedCameras" + }, + "acm002849jsd" : { + "type" : "ControlElement", + "id" : "acm002849jsd", + "name" : "hasUserJoined" + }, + "acm002850jsd" : { + "type" : "ControlElement", + "id" : "acm002850jsd", + "name" : "getCustomLogoURL" + }, + "acm002851jsd" : { + "type" : "ControlElement", + "id" : "acm002851jsd", + "name" : "setCustomLogoURL" + }, + "acm002852jsd" : { + "type" : "ControlElement", + "id" : "acm002852jsd", + "name" : "setCustomCopyright" + }, + "acm002853jsd" : { + "type" : "ControlElement", + "id" : "acm002853jsd", + "name" : "getCustomCopyright" + }, + "acm002854jsd" : { + "type" : "ControlElement", + "id" : "acm002854jsd", + "name" : "setMuteOnStart" + }, + "acm002855jsd" : { + "type" : "ControlElement", + "id" : "acm002855jsd", + "name" : "getMuteOnStart" + }, + "acm002856jsd" : { + "type" : "ControlElement", + "id" : "acm002856jsd", + "name" : "setMeetingKeepEvents" + }, + "acm002857jsd" : { + "type" : "ControlElement", + "id" : "acm002857jsd", + "name" : "getMeetingKeepEvents" + }, + "acm002858jsd" : { + "type" : "ControlElement", + "id" : "acm002858jsd", + "name" : "setAllowModsToUnmuteUsers" + }, + "acm002859jsd" : { + "type" : "ControlElement", + "id" : "acm002859jsd", + "name" : "getAllowModsToUnmuteUsers" + }, + "acm002860jsd" : { + "type" : "ControlElement", + "id" : "acm002860jsd", + "name" : "setAllowRequestsWithoutSession" + }, + "acm002861jsd" : { + "type" : "ControlElement", + "id" : "acm002861jsd", + "name" : "getAllowRequestsWithoutSession" + }, + "acm002862jsd" : { + "type" : "ControlElement", + "id" : "acm002862jsd", + "name" : "setAllowModsToEjectCameras" + }, + "acm002863jsd" : { + "type" : "ControlElement", + "id" : "acm002863jsd", + "name" : "getAllowModsToEjectCameras" + }, + "acm002864jsd" : { + "type" : "ControlElement", + "id" : "acm002864jsd", + "name" : "userJoined" + }, + "acm002865jsd" : { + "type" : "ControlElement", + "id" : "acm002865jsd", + "name" : "userLeft" + }, + "acm002866jsd" : { + "type" : "ControlElement", + "id" : "acm002866jsd", + "name" : "removeUser" + }, + "acm002867jsd" : { + "type" : "ControlElement", + "id" : "acm002867jsd", + "name" : "getUserById" + }, + "acm002868jsd" : { + "type" : "ControlElement", + "id" : "acm002868jsd", + "name" : "getNumUsers" + }, + "acm002869jsd" : { + "type" : "ControlElement", + "id" : "acm002869jsd", + "name" : "getNumUsersOnline" + }, + "acm002870jsd" : { + "type" : "ControlElement", + "id" : "acm002870jsd", + "name" : "getNumModerators" + }, + "acm002871jsd" : { + "type" : "ControlElement", + "id" : "acm002871jsd", + "name" : "getDialNumber" + }, + "acm002872jsd" : { + "type" : "ControlElement", + "id" : "acm002872jsd", + "name" : "getNumListenOnly" + }, + "acm002873jsd" : { + "type" : "ControlElement", + "id" : "acm002873jsd", + "name" : "getNumVoiceJoined" + }, + "acm002874jsd" : { + "type" : "ControlElement", + "id" : "acm002874jsd", + "name" : "getNumVideos" + }, + "acm002875jsd" : { + "type" : "ControlElement", + "id" : "acm002875jsd", + "name" : "addUserCustomData" + }, + "acm002876jsd" : { + "type" : "ControlElement", + "id" : "acm002876jsd", + "name" : "setMeetingExpireWhenLastUserLeftInMinutes" + }, + "acm002877jsd" : { + "type" : "ControlElement", + "id" : "acm002877jsd", + "name" : "getMeetingExpireWhenLastUserLeftInMinutes" + }, + "acm002878jsd" : { + "type" : "ControlElement", + "id" : "acm002878jsd", + "name" : "setMeetingExpireIfNoUserJoinedInMinutes" + }, + "acm002879jsd" : { + "type" : "ControlElement", + "id" : "acm002879jsd", + "name" : "getMeetingExpireIfNoUserJoinedInMinutes" + }, + "acm002880jsd" : { + "type" : "ControlElement", + "id" : "acm002880jsd", + "name" : "getUserInactivityInspectTimerInMinutes" + }, + "acm002881jsd" : { + "type" : "ControlElement", + "id" : "acm002881jsd", + "name" : "setUserInactivityInspectTimerInMinutes" + }, + "acm002882jsd" : { + "type" : "ControlElement", + "id" : "acm002882jsd", + "name" : "getUserInactivityThresholdInMinutes" + }, + "acm002883jsd" : { + "type" : "ControlElement", + "id" : "acm002883jsd", + "name" : "setUserInactivityThresholdInMinutes" + }, + "acm002884jsd" : { + "type" : "ControlElement", + "id" : "acm002884jsd", + "name" : "getUserActivitySignResponseDelayInMinutes" + }, + "acm002885jsd" : { + "type" : "ControlElement", + "id" : "acm002885jsd", + "name" : "setUserActivitySignResponseDelayInMinutes" + }, + "acm002886jsd" : { + "type" : "ControlElement", + "id" : "acm002886jsd", + "name" : "getEndWhenNoModerator" + }, + "acm002887jsd" : { + "type" : "ControlElement", + "id" : "acm002887jsd", + "name" : "setEndWhenNoModerator" + }, + "acm002888jsd" : { + "type" : "ControlElement", + "id" : "acm002888jsd", + "name" : "getEndWhenNoModeratorDelayInMinutes" + }, + "acm002889jsd" : { + "type" : "ControlElement", + "id" : "acm002889jsd", + "name" : "setEndWhenNoModeratorDelayInMinutes" + }, + "acm002890jsd" : { + "type" : "ControlElement", + "id" : "acm002890jsd", + "name" : "getMeetingEndedCallbackURL" + }, + "acm002891jsd" : { + "type" : "ControlElement", + "id" : "acm002891jsd", + "name" : "setMeetingEndedCallbackURL" + }, + "acm002892jsd" : { + "type" : "ControlElement", + "id" : "acm002892jsd", + "name" : "getUserCustomData" + }, + "acm002893jsd" : { + "type" : "ControlElement", + "id" : "acm002893jsd", + "name" : "userRegistered" + }, + "acm002894jsd" : { + "type" : "ControlElement", + "id" : "acm002894jsd", + "name" : "userUnregistered" + }, + "acm002895jsd" : { + "type" : "ControlElement", + "id" : "acm002895jsd", + "name" : "getRegisteredUsers" + }, + "acm002896jsd" : { + "type" : "ControlElement", + "id" : "acm002896jsd", + "name" : "getEnteredUsers" + }, + "acm002897jsd" : { + "type" : "ControlElement", + "id" : "acm002897jsd", + "name" : "userEntered" + }, + "acm002898jsd" : { + "type" : "ControlElement", + "id" : "acm002898jsd", + "name" : "removeEnteredUser" + }, + "acm002899jsd" : { + "type" : "ControlElement", + "id" : "acm002899jsd", + "name" : "getEnteredUserById" + }, + "acm002900jsd" : { + "type" : "ControlElement", + "id" : "acm002900jsd", + "name" : "Builder" + }, + "acm002901jsd" : { + "type" : "ControlElement", + "id" : "acm002901jsd", + "name" : "withName" + }, + "acm002902jsd" : { + "type" : "ControlElement", + "id" : "acm002902jsd", + "name" : "withDuration" + }, + "acm002903jsd" : { + "type" : "ControlElement", + "id" : "acm002903jsd", + "name" : "withMaxUsers" + }, + "acm002904jsd" : { + "type" : "ControlElement", + "id" : "acm002904jsd", + "name" : "withRecording" + }, + "acm002905jsd" : { + "type" : "ControlElement", + "id" : "acm002905jsd", + "name" : "withAutoStartRecording" + }, + "acm002906jsd" : { + "type" : "ControlElement", + "id" : "acm002906jsd", + "name" : "withAllowStartStopRecording" + }, + "acm002907jsd" : { + "type" : "ControlElement", + "id" : "acm002907jsd", + "name" : "withWebcamsOnlyForModerator" + }, + "acm002908jsd" : { + "type" : "ControlElement", + "id" : "acm002908jsd", + "name" : "withMeetingCameraCap" + }, + "acm002909jsd" : { + "type" : "ControlElement", + "id" : "acm002909jsd", + "name" : "withUserCameraCap" + }, + "acm002910jsd" : { + "type" : "ControlElement", + "id" : "acm002910jsd", + "name" : "withMaxPinnedCameras" + }, + "acm002911jsd" : { + "type" : "ControlElement", + "id" : "acm002911jsd", + "name" : "withWebVoice" + }, + "acm002912jsd" : { + "type" : "ControlElement", + "id" : "acm002912jsd", + "name" : "withTelVoice" + }, + "acm002913jsd" : { + "type" : "ControlElement", + "id" : "acm002913jsd", + "name" : "withDialNumber" + }, + "acm002914jsd" : { + "type" : "ControlElement", + "id" : "acm002914jsd", + "name" : "withModeratorPass" + }, + "acm002915jsd" : { + "type" : "ControlElement", + "id" : "acm002915jsd", + "name" : "withViewerPass" + }, + "acm002916jsd" : { + "type" : "ControlElement", + "id" : "acm002916jsd", + "name" : "withLearningDashboardCleanupDelayInMinutes" + }, + "acm002917jsd" : { + "type" : "ControlElement", + "id" : "acm002917jsd", + "name" : "withLearningDashboardAccessToken" + }, + "acm002918jsd" : { + "type" : "ControlElement", + "id" : "acm002918jsd", + "name" : "withDisabledFeatures" + }, + "acm002919jsd" : { + "type" : "ControlElement", + "id" : "acm002919jsd", + "name" : "withNotifyRecordingIsOn" + }, + "acm002920jsd" : { + "type" : "ControlElement", + "id" : "acm002920jsd", + "name" : "withPresentationUploadExternalDescription" + }, + "acm002921jsd" : { + "type" : "ControlElement", + "id" : "acm002921jsd", + "name" : "withPresentationUploadExternalUrl" + }, + "acm002922jsd" : { + "type" : "ControlElement", + "id" : "acm002922jsd", + "name" : "withWelcomeMessage" + }, + "acm002923jsd" : { + "type" : "ControlElement", + "id" : "acm002923jsd", + "name" : "withWelcomeMessageTemplate" + }, + "acm002924jsd" : { + "type" : "ControlElement", + "id" : "acm002924jsd", + "name" : "withDefaultAvatarURL" + }, + "acm002925jsd" : { + "type" : "ControlElement", + "id" : "acm002925jsd", + "name" : "isBreakout" + }, + "acm002926jsd" : { + "type" : "ControlElement", + "id" : "acm002926jsd", + "name" : "withLogoutUrl" + }, + "acm002927jsd" : { + "type" : "ControlElement", + "id" : "acm002927jsd", + "name" : "withLogoutTimer" + }, + "acm002928jsd" : { + "type" : "ControlElement", + "id" : "acm002928jsd", + "name" : "withBannerColor" + }, + "acm002929jsd" : { + "type" : "ControlElement", + "id" : "acm002929jsd", + "name" : "withBannerText" + }, + "acm002930jsd" : { + "type" : "ControlElement", + "id" : "acm002930jsd", + "name" : "withMetadata" + }, + "acm002931jsd" : { + "type" : "ControlElement", + "id" : "acm002931jsd", + "name" : "withGuestPolicy" + }, + "acm002932jsd" : { + "type" : "ControlElement", + "id" : "acm002932jsd", + "name" : "withAuthenticatedGuest" + }, + "acm002933jsd" : { + "type" : "ControlElement", + "id" : "acm002933jsd", + "name" : "withAllowRequestsWithoutSession" + }, + "acm002934jsd" : { + "type" : "ControlElement", + "id" : "acm002934jsd", + "name" : "withMeetingLayout" + }, + "acm002935jsd" : { + "type" : "ControlElement", + "id" : "acm002935jsd", + "name" : "withBreakoutRoomsParams" + }, + "acm002936jsd" : { + "type" : "ControlElement", + "id" : "acm002936jsd", + "name" : "withLockSettingsParams" + }, + "acm002937jsd" : { + "type" : "ControlElement", + "id" : "acm002937jsd", + "name" : "withMaxUserConcurrentAccesses" + }, + "acm002938jsd" : { + "type" : "ControlElement", + "id" : "acm002938jsd", + "name" : "withEndWhenNoModerator" + }, + "acm002939jsd" : { + "type" : "ControlElement", + "id" : "acm002939jsd", + "name" : "withEndWhenNoModeratorDelayInMinutes" + }, + "acm002940jsd" : { + "type" : "ControlElement", + "id" : "acm002940jsd", + "name" : "withHTML5InstanceId" + }, + "acm002941jsd" : { + "type" : "ControlElement", + "id" : "acm002941jsd", + "name" : "withGroups" + }, + "acm002942jsd" : { + "type" : "ControlElement", + "id" : "acm002942jsd", + "name" : "build" + }, + "acm002943jsd" : { + "type" : "ClassUnit", + "id" : "acm002943jsd", + "name" : "Meeting", + "compilationUnitId" : "acm002758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002684jsd", "acm002730jsd", "acm002757jsd", "acm002943jsd", "acm002987jsd", "acm003159jsd", "acm003199jsd" ], + "content" : [ "acm002763jsd", "acm002764jsd", "acm002765jsd", "acm002766jsd", "acm002767jsd", "acm002768jsd", "acm002769jsd", "acm002770jsd", "acm002771jsd", "acm002772jsd", "acm002773jsd", "acm002774jsd", "acm002775jsd", "acm002776jsd", "acm002777jsd", "acm002778jsd", "acm002779jsd", "acm002780jsd", "acm002781jsd", "acm002782jsd", "acm002783jsd", "acm002784jsd", "acm002785jsd", "acm002786jsd", "acm002787jsd", "acm002788jsd", "acm002789jsd", "acm002790jsd", "acm002791jsd", "acm002792jsd", "acm002793jsd", "acm002794jsd", "acm002795jsd", "acm002796jsd", "acm002797jsd", "acm002798jsd", "acm002799jsd", "acm002800jsd", "acm002801jsd", "acm002802jsd", "acm002803jsd", "acm002804jsd", "acm002805jsd", "acm002806jsd", "acm002807jsd", "acm002808jsd", "acm002809jsd", "acm002810jsd", "acm002811jsd", "acm002812jsd", "acm002813jsd", "acm002814jsd", "acm002815jsd", "acm002816jsd", "acm002817jsd", "acm002818jsd", "acm002819jsd", "acm002820jsd", "acm002821jsd", "acm002822jsd", "acm002823jsd", "acm002824jsd", "acm002825jsd", "acm002826jsd", "acm002827jsd", "acm002828jsd", "acm002829jsd", "acm002830jsd", "acm002831jsd", "acm002832jsd", "acm002833jsd", "acm002834jsd", "acm002835jsd", "acm002836jsd", "acm002837jsd", "acm002838jsd", "acm002839jsd", "acm002840jsd", "acm002841jsd", "acm002842jsd", "acm002843jsd", "acm002844jsd", "acm002845jsd", "acm002846jsd", "acm002847jsd", "acm002848jsd", "acm002849jsd", "acm002850jsd", "acm002851jsd", "acm002852jsd", "acm002853jsd", "acm002854jsd", "acm002855jsd", "acm002856jsd", "acm002857jsd", "acm002858jsd", "acm002859jsd", "acm002860jsd", "acm002861jsd", "acm002862jsd", "acm002863jsd", "acm002864jsd", "acm002865jsd", "acm002866jsd", "acm002867jsd", "acm002868jsd", "acm002869jsd", "acm002870jsd", "acm002871jsd", "acm002872jsd", "acm002873jsd", "acm002874jsd", "acm002875jsd", "acm002876jsd", "acm002877jsd", "acm002878jsd", "acm002879jsd", "acm002880jsd", "acm002881jsd", "acm002882jsd", "acm002883jsd", "acm002884jsd", "acm002885jsd", "acm002886jsd", "acm002887jsd", "acm002888jsd", "acm002889jsd", "acm002890jsd", "acm002891jsd", "acm002892jsd", "acm002893jsd", "acm002894jsd", "acm002895jsd", "acm002896jsd", "acm002897jsd", "acm002898jsd", "acm002899jsd", "acm002900jsd", "acm002901jsd", "acm002902jsd", "acm002903jsd", "acm002904jsd", "acm002905jsd", "acm002906jsd", "acm002907jsd", "acm002908jsd", "acm002909jsd", "acm002910jsd", "acm002911jsd", "acm002912jsd", "acm002913jsd", "acm002914jsd", "acm002915jsd", "acm002916jsd", "acm002917jsd", "acm002918jsd", "acm002919jsd", "acm002920jsd", "acm002921jsd", "acm002922jsd", "acm002923jsd", "acm002924jsd", "acm002925jsd", "acm002926jsd", "acm002927jsd", "acm002928jsd", "acm002929jsd", "acm002930jsd", "acm002931jsd", "acm002932jsd", "acm002933jsd", "acm002934jsd", "acm002935jsd", "acm002936jsd", "acm002937jsd", "acm002938jsd", "acm002939jsd", "acm002940jsd", "acm002941jsd", "acm002942jsd" ] + }, + "acm002944jsd" : { + "type" : "ControlElement", + "id" : "acm002944jsd", + "name" : "Builder" + }, + "acm002945jsd" : { + "type" : "ControlElement", + "id" : "acm002945jsd", + "name" : "withName" + }, + "acm002946jsd" : { + "type" : "ControlElement", + "id" : "acm002946jsd", + "name" : "withDuration" + }, + "acm002947jsd" : { + "type" : "ControlElement", + "id" : "acm002947jsd", + "name" : "withMaxUsers" + }, + "acm002948jsd" : { + "type" : "ControlElement", + "id" : "acm002948jsd", + "name" : "withRecording" + }, + "acm002949jsd" : { + "type" : "ControlElement", + "id" : "acm002949jsd", + "name" : "withAutoStartRecording" + }, + "acm002950jsd" : { + "type" : "ControlElement", + "id" : "acm002950jsd", + "name" : "withAllowStartStopRecording" + }, + "acm002951jsd" : { + "type" : "ControlElement", + "id" : "acm002951jsd", + "name" : "withWebcamsOnlyForModerator" + }, + "acm002952jsd" : { + "type" : "ControlElement", + "id" : "acm002952jsd", + "name" : "withMeetingCameraCap" + }, + "acm002953jsd" : { + "type" : "ControlElement", + "id" : "acm002953jsd", + "name" : "withUserCameraCap" + }, + "acm002954jsd" : { + "type" : "ControlElement", + "id" : "acm002954jsd", + "name" : "withMaxPinnedCameras" + }, + "acm002955jsd" : { + "type" : "ControlElement", + "id" : "acm002955jsd", + "name" : "withWebVoice" + }, + "acm002956jsd" : { + "type" : "ControlElement", + "id" : "acm002956jsd", + "name" : "withTelVoice" + }, + "acm002957jsd" : { + "type" : "ControlElement", + "id" : "acm002957jsd", + "name" : "withDialNumber" + }, + "acm002958jsd" : { + "type" : "ControlElement", + "id" : "acm002958jsd", + "name" : "withModeratorPass" + }, + "acm002959jsd" : { + "type" : "ControlElement", + "id" : "acm002959jsd", + "name" : "withViewerPass" + }, + "acm002960jsd" : { + "type" : "ControlElement", + "id" : "acm002960jsd", + "name" : "withLearningDashboardCleanupDelayInMinutes" + }, + "acm002961jsd" : { + "type" : "ControlElement", + "id" : "acm002961jsd", + "name" : "withLearningDashboardAccessToken" + }, + "acm002962jsd" : { + "type" : "ControlElement", + "id" : "acm002962jsd", + "name" : "withDisabledFeatures" + }, + "acm002963jsd" : { + "type" : "ControlElement", + "id" : "acm002963jsd", + "name" : "withNotifyRecordingIsOn" + }, + "acm002964jsd" : { + "type" : "ControlElement", + "id" : "acm002964jsd", + "name" : "withPresentationUploadExternalDescription" + }, + "acm002965jsd" : { + "type" : "ControlElement", + "id" : "acm002965jsd", + "name" : "withPresentationUploadExternalUrl" + }, + "acm002966jsd" : { + "type" : "ControlElement", + "id" : "acm002966jsd", + "name" : "withWelcomeMessage" + }, + "acm002967jsd" : { + "type" : "ControlElement", + "id" : "acm002967jsd", + "name" : "withWelcomeMessageTemplate" + }, + "acm002968jsd" : { + "type" : "ControlElement", + "id" : "acm002968jsd", + "name" : "withDefaultAvatarURL" + }, + "acm002969jsd" : { + "type" : "ControlElement", + "id" : "acm002969jsd", + "name" : "isBreakout" + }, + "acm002970jsd" : { + "type" : "ControlElement", + "id" : "acm002970jsd", + "name" : "withLogoutUrl" + }, + "acm002971jsd" : { + "type" : "ControlElement", + "id" : "acm002971jsd", + "name" : "withLogoutTimer" + }, + "acm002972jsd" : { + "type" : "ControlElement", + "id" : "acm002972jsd", + "name" : "withBannerColor" + }, + "acm002973jsd" : { + "type" : "ControlElement", + "id" : "acm002973jsd", + "name" : "withBannerText" + }, + "acm002974jsd" : { + "type" : "ControlElement", + "id" : "acm002974jsd", + "name" : "withMetadata" + }, + "acm002975jsd" : { + "type" : "ControlElement", + "id" : "acm002975jsd", + "name" : "withGuestPolicy" + }, + "acm002976jsd" : { + "type" : "ControlElement", + "id" : "acm002976jsd", + "name" : "withAuthenticatedGuest" + }, + "acm002977jsd" : { + "type" : "ControlElement", + "id" : "acm002977jsd", + "name" : "withAllowRequestsWithoutSession" + }, + "acm002978jsd" : { + "type" : "ControlElement", + "id" : "acm002978jsd", + "name" : "withMeetingLayout" + }, + "acm002979jsd" : { + "type" : "ControlElement", + "id" : "acm002979jsd", + "name" : "withBreakoutRoomsParams" + }, + "acm002980jsd" : { + "type" : "ControlElement", + "id" : "acm002980jsd", + "name" : "withLockSettingsParams" + }, + "acm002981jsd" : { + "type" : "ControlElement", + "id" : "acm002981jsd", + "name" : "withMaxUserConcurrentAccesses" + }, + "acm002982jsd" : { + "type" : "ControlElement", + "id" : "acm002982jsd", + "name" : "withEndWhenNoModerator" + }, + "acm002983jsd" : { + "type" : "ControlElement", + "id" : "acm002983jsd", + "name" : "withEndWhenNoModeratorDelayInMinutes" + }, + "acm002984jsd" : { + "type" : "ControlElement", + "id" : "acm002984jsd", + "name" : "withHTML5InstanceId" + }, + "acm002985jsd" : { + "type" : "ControlElement", + "id" : "acm002985jsd", + "name" : "withGroups" + }, + "acm002986jsd" : { + "type" : "ControlElement", + "id" : "acm002986jsd", + "name" : "build" + }, + "acm002987jsd" : { + "type" : "ClassUnit", + "id" : "acm002987jsd", + "name" : "Builder", + "compilationUnitId" : "acm002758jsd", + "parentDatatypeId" : "acm002943jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002684jsd", "acm002730jsd", "acm002757jsd", "acm002943jsd", "acm002987jsd" ], + "content" : [ "acm002944jsd", "acm002945jsd", "acm002946jsd", "acm002947jsd", "acm002948jsd", "acm002949jsd", "acm002950jsd", "acm002951jsd", "acm002952jsd", "acm002953jsd", "acm002954jsd", "acm002955jsd", "acm002956jsd", "acm002957jsd", "acm002958jsd", "acm002959jsd", "acm002960jsd", "acm002961jsd", "acm002962jsd", "acm002963jsd", "acm002964jsd", "acm002965jsd", "acm002966jsd", "acm002967jsd", "acm002968jsd", "acm002969jsd", "acm002970jsd", "acm002971jsd", "acm002972jsd", "acm002973jsd", "acm002974jsd", "acm002975jsd", "acm002976jsd", "acm002977jsd", "acm002978jsd", "acm002979jsd", "acm002980jsd", "acm002981jsd", "acm002982jsd", "acm002983jsd", "acm002984jsd", "acm002985jsd", "acm002986jsd" ] + }, + "acm002988jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002988jsd", + "name" : "MeetingInfo", + "parentId" : "acm002662jsd", + "content" : [ "acm003001jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002989jsd" : { + "type" : "CodePackage", + "id" : "acm002989jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002990jsd" ] + }, + "acm002990jsd" : { + "type" : "CodePackage", + "id" : "acm002990jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm002991jsd" ] + }, + "acm002991jsd" : { + "type" : "CodePackage", + "id" : "acm002991jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm002992jsd" ] + }, + "acm002992jsd" : { + "type" : "CodePackage", + "id" : "acm002992jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002988jsd" ] + }, + "acm002993jsd" : { + "type" : "ControlElement", + "id" : "acm002993jsd", + "name" : "setId" + }, + "acm002994jsd" : { + "type" : "ControlElement", + "id" : "acm002994jsd", + "name" : "getId" + }, + "acm002995jsd" : { + "type" : "ControlElement", + "id" : "acm002995jsd", + "name" : "setExternalId" + }, + "acm002996jsd" : { + "type" : "ControlElement", + "id" : "acm002996jsd", + "name" : "getExternalId" + }, + "acm002997jsd" : { + "type" : "ControlElement", + "id" : "acm002997jsd", + "name" : "setName" + }, + "acm002998jsd" : { + "type" : "ControlElement", + "id" : "acm002998jsd", + "name" : "getName" + }, + "acm002999jsd" : { + "type" : "ControlElement", + "id" : "acm002999jsd", + "name" : "setBreakout" + }, + "acm003000jsd" : { + "type" : "ControlElement", + "id" : "acm003000jsd", + "name" : "isBreakout" + }, + "acm003001jsd" : { + "type" : "ClassUnit", + "id" : "acm003001jsd", + "name" : "MeetingInfo", + "compilationUnitId" : "acm002988jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002993jsd", "acm002994jsd", "acm002995jsd", "acm002996jsd", "acm002997jsd", "acm002998jsd", "acm002999jsd", "acm003000jsd" ] + }, + "acm003002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003002jsd", + "name" : "MeetingLayout", + "parentId" : "acm002662jsd", + "content" : [ "acm003007jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003003jsd" : { + "type" : "CodePackage", + "id" : "acm003003jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003004jsd" ] + }, + "acm003004jsd" : { + "type" : "CodePackage", + "id" : "acm003004jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003005jsd" ] + }, + "acm003005jsd" : { + "type" : "CodePackage", + "id" : "acm003005jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003006jsd" ] + }, + "acm003006jsd" : { + "type" : "CodePackage", + "id" : "acm003006jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003002jsd" ] + }, + "acm003007jsd" : { + "type" : "ClassUnit", + "id" : "acm003007jsd", + "name" : "MeetingLayout", + "compilationUnitId" : "acm003002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003008jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003008jsd", + "name" : "Metadata", + "parentId" : "acm002662jsd", + "content" : [ "acm003017jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003009jsd" : { + "type" : "CodePackage", + "id" : "acm003009jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003010jsd" ] + }, + "acm003010jsd" : { + "type" : "CodePackage", + "id" : "acm003010jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003011jsd" ] + }, + "acm003011jsd" : { + "type" : "CodePackage", + "id" : "acm003011jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003012jsd" ] + }, + "acm003012jsd" : { + "type" : "CodePackage", + "id" : "acm003012jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003008jsd" ] + }, + "acm003013jsd" : { + "type" : "ControlElement", + "id" : "acm003013jsd", + "name" : "get" + }, + "acm003014jsd" : { + "type" : "ControlElement", + "id" : "acm003014jsd", + "name" : "set" + }, + "acm003015jsd" : { + "type" : "ControlElement", + "id" : "acm003015jsd", + "name" : "remove" + }, + "acm003016jsd" : { + "type" : "ControlElement", + "id" : "acm003016jsd", + "name" : "containsKey" + }, + "acm003017jsd" : { + "type" : "ClassUnit", + "id" : "acm003017jsd", + "name" : "Metadata", + "compilationUnitId" : "acm003008jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003013jsd", "acm003014jsd", "acm003015jsd", "acm003016jsd" ] + }, + "acm003018jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003018jsd", + "name" : "Playback", + "parentId" : "acm002662jsd", + "content" : [ "acm003036jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003019jsd" : { + "type" : "CodePackage", + "id" : "acm003019jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003020jsd" ] + }, + "acm003020jsd" : { + "type" : "CodePackage", + "id" : "acm003020jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003021jsd" ] + }, + "acm003021jsd" : { + "type" : "CodePackage", + "id" : "acm003021jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003022jsd" ] + }, + "acm003022jsd" : { + "type" : "CodePackage", + "id" : "acm003022jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003018jsd" ] + }, + "acm003023jsd" : { + "type" : "ControlElement", + "id" : "acm003023jsd", + "name" : "Playback" + }, + "acm003024jsd" : { + "type" : "ControlElement", + "id" : "acm003024jsd", + "name" : "getFormat" + }, + "acm003025jsd" : { + "type" : "ControlElement", + "id" : "acm003025jsd", + "name" : "setFormat" + }, + "acm003026jsd" : { + "type" : "ControlElement", + "id" : "acm003026jsd", + "name" : "getUrl" + }, + "acm003027jsd" : { + "type" : "ControlElement", + "id" : "acm003027jsd", + "name" : "setUrl" + }, + "acm003028jsd" : { + "type" : "ControlElement", + "id" : "acm003028jsd", + "name" : "getLength" + }, + "acm003029jsd" : { + "type" : "ControlElement", + "id" : "acm003029jsd", + "name" : "setLength" + }, + "acm003030jsd" : { + "type" : "ControlElement", + "id" : "acm003030jsd", + "name" : "getSize" + }, + "acm003031jsd" : { + "type" : "ControlElement", + "id" : "acm003031jsd", + "name" : "setSize" + }, + "acm003032jsd" : { + "type" : "ControlElement", + "id" : "acm003032jsd", + "name" : "getProcessingTime" + }, + "acm003033jsd" : { + "type" : "ControlElement", + "id" : "acm003033jsd", + "name" : "setProcessingTime" + }, + "acm003034jsd" : { + "type" : "ControlElement", + "id" : "acm003034jsd", + "name" : "getExtensions" + }, + "acm003035jsd" : { + "type" : "ControlElement", + "id" : "acm003035jsd", + "name" : "setExtensions" + }, + "acm003036jsd" : { + "type" : "ClassUnit", + "id" : "acm003036jsd", + "name" : "Playback", + "compilationUnitId" : "acm003018jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002709jsd" ], + "content" : [ "acm003023jsd", "acm003024jsd", "acm003025jsd", "acm003026jsd", "acm003027jsd", "acm003028jsd", "acm003029jsd", "acm003030jsd", "acm003031jsd", "acm003032jsd", "acm003033jsd", "acm003034jsd", "acm003035jsd" ] + }, + "acm003037jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003037jsd", + "name" : "Poll", + "parentId" : "acm002662jsd", + "content" : [ "acm003051jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003038jsd" : { + "type" : "CodePackage", + "id" : "acm003038jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003039jsd" ] + }, + "acm003039jsd" : { + "type" : "CodePackage", + "id" : "acm003039jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003040jsd" ] + }, + "acm003040jsd" : { + "type" : "CodePackage", + "id" : "acm003040jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003041jsd" ] + }, + "acm003041jsd" : { + "type" : "CodePackage", + "id" : "acm003041jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003037jsd" ] + }, + "acm003042jsd" : { + "type" : "ControlElement", + "id" : "acm003042jsd", + "name" : "Poll" + }, + "acm003043jsd" : { + "type" : "ControlElement", + "id" : "acm003043jsd", + "name" : "addAnswer" + }, + "acm003044jsd" : { + "type" : "ControlElement", + "id" : "acm003044jsd", + "name" : "removeAnswer" + }, + "acm003045jsd" : { + "type" : "ControlElement", + "id" : "acm003045jsd", + "name" : "generatePollID" + }, + "acm003046jsd" : { + "type" : "ControlElement", + "id" : "acm003046jsd", + "name" : "generateAnswerID" + }, + "acm003047jsd" : { + "type" : "ControlElement", + "id" : "acm003047jsd", + "name" : "store" + }, + "acm003048jsd" : { + "type" : "ControlElement", + "id" : "acm003048jsd", + "name" : "getMeetingID" + }, + "acm003049jsd" : { + "type" : "ControlElement", + "id" : "acm003049jsd", + "name" : "getPollID" + }, + "acm003050jsd" : { + "type" : "ControlElement", + "id" : "acm003050jsd", + "name" : "toMap" + }, + "acm003051jsd" : { + "type" : "ClassUnit", + "id" : "acm003051jsd", + "name" : "Poll", + "compilationUnitId" : "acm003037jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003042jsd", "acm003043jsd", "acm003044jsd", "acm003045jsd", "acm003046jsd", "acm003047jsd", "acm003048jsd", "acm003049jsd", "acm003050jsd" ] + }, + "acm003052jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003052jsd", + "name" : "Preview", + "parentId" : "acm002662jsd", + "content" : [ "acm003059jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003053jsd" : { + "type" : "CodePackage", + "id" : "acm003053jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003054jsd" ] + }, + "acm003054jsd" : { + "type" : "CodePackage", + "id" : "acm003054jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003055jsd" ] + }, + "acm003055jsd" : { + "type" : "CodePackage", + "id" : "acm003055jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003056jsd" ] + }, + "acm003056jsd" : { + "type" : "CodePackage", + "id" : "acm003056jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003052jsd" ] + }, + "acm003057jsd" : { + "type" : "ControlElement", + "id" : "acm003057jsd", + "name" : "setImages" + }, + "acm003058jsd" : { + "type" : "ControlElement", + "id" : "acm003058jsd", + "name" : "getImages" + }, + "acm003059jsd" : { + "type" : "ClassUnit", + "id" : "acm003059jsd", + "name" : "Preview", + "compilationUnitId" : "acm003052jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002750jsd" ], + "content" : [ "acm003057jsd", "acm003058jsd" ] + }, + "acm003060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003060jsd", + "name" : "Recording", + "parentId" : "acm002662jsd", + "content" : [ "acm003106jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003061jsd" : { + "type" : "CodePackage", + "id" : "acm003061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003062jsd" ] + }, + "acm003062jsd" : { + "type" : "CodePackage", + "id" : "acm003062jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003063jsd" ] + }, + "acm003063jsd" : { + "type" : "CodePackage", + "id" : "acm003063jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003064jsd" ] + }, + "acm003064jsd" : { + "type" : "CodePackage", + "id" : "acm003064jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003060jsd" ] + }, + "acm003065jsd" : { + "type" : "ControlElement", + "id" : "acm003065jsd", + "name" : "getId" + }, + "acm003066jsd" : { + "type" : "ControlElement", + "id" : "acm003066jsd", + "name" : "setId" + }, + "acm003067jsd" : { + "type" : "ControlElement", + "id" : "acm003067jsd", + "name" : "getState" + }, + "acm003068jsd" : { + "type" : "ControlElement", + "id" : "acm003068jsd", + "name" : "setState" + }, + "acm003069jsd" : { + "type" : "ControlElement", + "id" : "acm003069jsd", + "name" : "isPublished" + }, + "acm003070jsd" : { + "type" : "ControlElement", + "id" : "acm003070jsd", + "name" : "setPublished" + }, + "acm003071jsd" : { + "type" : "ControlElement", + "id" : "acm003071jsd", + "name" : "getStartTime" + }, + "acm003072jsd" : { + "type" : "ControlElement", + "id" : "acm003072jsd", + "name" : "setStartTime" + }, + "acm003073jsd" : { + "type" : "ControlElement", + "id" : "acm003073jsd", + "name" : "getEndTime" + }, + "acm003074jsd" : { + "type" : "ControlElement", + "id" : "acm003074jsd", + "name" : "setNumParticipants" + }, + "acm003075jsd" : { + "type" : "ControlElement", + "id" : "acm003075jsd", + "name" : "getNumParticipants" + }, + "acm003076jsd" : { + "type" : "ControlElement", + "id" : "acm003076jsd", + "name" : "setEndTime" + }, + "acm003077jsd" : { + "type" : "ControlElement", + "id" : "acm003077jsd", + "name" : "getSize" + }, + "acm003078jsd" : { + "type" : "ControlElement", + "id" : "acm003078jsd", + "name" : "getRawSize" + }, + "acm003079jsd" : { + "type" : "ControlElement", + "id" : "acm003079jsd", + "name" : "setRawSize" + }, + "acm003080jsd" : { + "type" : "ControlElement", + "id" : "acm003080jsd", + "name" : "getPlaybackLink" + }, + "acm003081jsd" : { + "type" : "ControlElement", + "id" : "acm003081jsd", + "name" : "setPlaybackLink" + }, + "acm003082jsd" : { + "type" : "ControlElement", + "id" : "acm003082jsd", + "name" : "getPlaybackFormat" + }, + "acm003083jsd" : { + "type" : "ControlElement", + "id" : "acm003083jsd", + "name" : "setPlaybackFormat" + }, + "acm003084jsd" : { + "type" : "ControlElement", + "id" : "acm003084jsd", + "name" : "getPlaybackDuration" + }, + "acm003085jsd" : { + "type" : "ControlElement", + "id" : "acm003085jsd", + "name" : "setPlaybackDuration" + }, + "acm003086jsd" : { + "type" : "ControlElement", + "id" : "acm003086jsd", + "name" : "getPlaybackSize" + }, + "acm003087jsd" : { + "type" : "ControlElement", + "id" : "acm003087jsd", + "name" : "setPlaybackSize" + }, + "acm003088jsd" : { + "type" : "ControlElement", + "id" : "acm003088jsd", + "name" : "getProcessingTime" + }, + "acm003089jsd" : { + "type" : "ControlElement", + "id" : "acm003089jsd", + "name" : "setProcessingTime" + }, + "acm003090jsd" : { + "type" : "ControlElement", + "id" : "acm003090jsd", + "name" : "getPlaybackExtensions" + }, + "acm003091jsd" : { + "type" : "ControlElement", + "id" : "acm003091jsd", + "name" : "setPlaybackExtensions" + }, + "acm003092jsd" : { + "type" : "ControlElement", + "id" : "acm003092jsd", + "name" : "getMetadata" + }, + "acm003093jsd" : { + "type" : "ControlElement", + "id" : "acm003093jsd", + "name" : "getMetadata" + }, + "acm003094jsd" : { + "type" : "ControlElement", + "id" : "acm003094jsd", + "name" : "setMetadata" + }, + "acm003095jsd" : { + "type" : "ControlElement", + "id" : "acm003095jsd", + "name" : "updateMetadata" + }, + "acm003096jsd" : { + "type" : "ControlElement", + "id" : "acm003096jsd", + "name" : "deleteMetadata" + }, + "acm003097jsd" : { + "type" : "ControlElement", + "id" : "acm003097jsd", + "name" : "containsMetadata" + }, + "acm003098jsd" : { + "type" : "ControlElement", + "id" : "acm003098jsd", + "name" : "getMeetingID" + }, + "acm003099jsd" : { + "type" : "ControlElement", + "id" : "acm003099jsd", + "name" : "setMeetingID" + }, + "acm003100jsd" : { + "type" : "ControlElement", + "id" : "acm003100jsd", + "name" : "getName" + }, + "acm003101jsd" : { + "type" : "ControlElement", + "id" : "acm003101jsd", + "name" : "setName" + }, + "acm003102jsd" : { + "type" : "ControlElement", + "id" : "acm003102jsd", + "name" : "getPlaybacks" + }, + "acm003103jsd" : { + "type" : "ControlElement", + "id" : "acm003103jsd", + "name" : "setPlaybacks" + }, + "acm003104jsd" : { + "type" : "ControlElement", + "id" : "acm003104jsd", + "name" : "convertOldDateFormat" + }, + "acm003105jsd" : { + "type" : "ControlElement", + "id" : "acm003105jsd", + "name" : "getExternalMeetingId" + }, + "acm003106jsd" : { + "type" : "ClassUnit", + "id" : "acm003106jsd", + "name" : "Recording", + "compilationUnitId" : "acm003060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002709jsd", "acm003036jsd" ], + "content" : [ "acm003065jsd", "acm003066jsd", "acm003067jsd", "acm003068jsd", "acm003069jsd", "acm003070jsd", "acm003071jsd", "acm003072jsd", "acm003073jsd", "acm003074jsd", "acm003075jsd", "acm003076jsd", "acm003077jsd", "acm003078jsd", "acm003079jsd", "acm003080jsd", "acm003081jsd", "acm003082jsd", "acm003083jsd", "acm003084jsd", "acm003085jsd", "acm003086jsd", "acm003087jsd", "acm003088jsd", "acm003089jsd", "acm003090jsd", "acm003091jsd", "acm003092jsd", "acm003093jsd", "acm003094jsd", "acm003095jsd", "acm003096jsd", "acm003097jsd", "acm003098jsd", "acm003099jsd", "acm003100jsd", "acm003101jsd", "acm003102jsd", "acm003103jsd", "acm003104jsd", "acm003105jsd" ] + }, + "acm003107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003107jsd", + "name" : "RecordingMetadata", + "parentId" : "acm002662jsd", + "content" : [ "acm003118jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003108jsd" : { + "type" : "CodePackage", + "id" : "acm003108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003109jsd" ] + }, + "acm003109jsd" : { + "type" : "CodePackage", + "id" : "acm003109jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003110jsd" ] + }, + "acm003110jsd" : { + "type" : "CodePackage", + "id" : "acm003110jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003111jsd" ] + }, + "acm003111jsd" : { + "type" : "CodePackage", + "id" : "acm003111jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003107jsd" ] + }, + "acm003112jsd" : { + "type" : "ControlElement", + "id" : "acm003112jsd", + "name" : "setRecMeta" + }, + "acm003113jsd" : { + "type" : "ControlElement", + "id" : "acm003113jsd", + "name" : "getRecMeta" + }, + "acm003114jsd" : { + "type" : "ControlElement", + "id" : "acm003114jsd", + "name" : "setState" + }, + "acm003115jsd" : { + "type" : "ControlElement", + "id" : "acm003115jsd", + "name" : "setPublished" + }, + "acm003116jsd" : { + "type" : "ControlElement", + "id" : "acm003116jsd", + "name" : "setMeta" + }, + "acm003117jsd" : { + "type" : "ControlElement", + "id" : "acm003117jsd", + "name" : "getMeta" + }, + "acm003118jsd" : { + "type" : "ClassUnit", + "id" : "acm003118jsd", + "name" : "RecordingMetadata", + "compilationUnitId" : "acm003107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003112jsd", "acm003113jsd", "acm003114jsd", "acm003115jsd", "acm003116jsd", "acm003117jsd" ] + }, + "acm003119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003119jsd", + "name" : "RecordingMetadataPlayback", + "parentId" : "acm002662jsd", + "content" : [ "acm003137jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003120jsd" : { + "type" : "CodePackage", + "id" : "acm003120jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003121jsd" ] + }, + "acm003121jsd" : { + "type" : "CodePackage", + "id" : "acm003121jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003122jsd" ] + }, + "acm003122jsd" : { + "type" : "CodePackage", + "id" : "acm003122jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003123jsd" ] + }, + "acm003123jsd" : { + "type" : "CodePackage", + "id" : "acm003123jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003119jsd" ] + }, + "acm003124jsd" : { + "type" : "ControlElement", + "id" : "acm003124jsd", + "name" : "setFormat" + }, + "acm003125jsd" : { + "type" : "ControlElement", + "id" : "acm003125jsd", + "name" : "getFormat" + }, + "acm003126jsd" : { + "type" : "ControlElement", + "id" : "acm003126jsd", + "name" : "setLink" + }, + "acm003127jsd" : { + "type" : "ControlElement", + "id" : "acm003127jsd", + "name" : "getLink" + }, + "acm003128jsd" : { + "type" : "ControlElement", + "id" : "acm003128jsd", + "name" : "setProcessingTime" + }, + "acm003129jsd" : { + "type" : "ControlElement", + "id" : "acm003129jsd", + "name" : "getProcessingTime" + }, + "acm003130jsd" : { + "type" : "ControlElement", + "id" : "acm003130jsd", + "name" : "setDuration" + }, + "acm003131jsd" : { + "type" : "ControlElement", + "id" : "acm003131jsd", + "name" : "getDuration" + }, + "acm003132jsd" : { + "type" : "ControlElement", + "id" : "acm003132jsd", + "name" : "calculateDuration" + }, + "acm003133jsd" : { + "type" : "ControlElement", + "id" : "acm003133jsd", + "name" : "setExtensions" + }, + "acm003134jsd" : { + "type" : "ControlElement", + "id" : "acm003134jsd", + "name" : "getExtensions" + }, + "acm003135jsd" : { + "type" : "ControlElement", + "id" : "acm003135jsd", + "name" : "setSize" + }, + "acm003136jsd" : { + "type" : "ControlElement", + "id" : "acm003136jsd", + "name" : "getSize" + }, + "acm003137jsd" : { + "type" : "ClassUnit", + "id" : "acm003137jsd", + "name" : "RecordingMetadataPlayback", + "compilationUnitId" : "acm003119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002717jsd" ], + "content" : [ "acm003124jsd", "acm003125jsd", "acm003126jsd", "acm003127jsd", "acm003128jsd", "acm003129jsd", "acm003130jsd", "acm003131jsd", "acm003132jsd", "acm003133jsd", "acm003134jsd", "acm003135jsd", "acm003136jsd" ] + }, + "acm003138jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003138jsd", + "name" : "Recordings", + "parentId" : "acm002662jsd", + "content" : [ "acm003144jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003139jsd" : { + "type" : "CodePackage", + "id" : "acm003139jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003140jsd" ] + }, + "acm003140jsd" : { + "type" : "CodePackage", + "id" : "acm003140jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003141jsd" ] + }, + "acm003141jsd" : { + "type" : "CodePackage", + "id" : "acm003141jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003142jsd" ] + }, + "acm003142jsd" : { + "type" : "CodePackage", + "id" : "acm003142jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003138jsd" ] + }, + "acm003143jsd" : { + "type" : "ControlElement", + "id" : "acm003143jsd", + "name" : "getRecordings" + }, + "acm003144jsd" : { + "type" : "ClassUnit", + "id" : "acm003144jsd", + "name" : "Recordings", + "compilationUnitId" : "acm003138jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003143jsd" ] + }, + "acm003145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003145jsd", + "name" : "RegisteredUser", + "parentId" : "acm002662jsd", + "content" : [ "acm003159jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003146jsd" : { + "type" : "CodePackage", + "id" : "acm003146jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003147jsd" ] + }, + "acm003147jsd" : { + "type" : "CodePackage", + "id" : "acm003147jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003148jsd" ] + }, + "acm003148jsd" : { + "type" : "CodePackage", + "id" : "acm003148jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003149jsd" ] + }, + "acm003149jsd" : { + "type" : "CodePackage", + "id" : "acm003149jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003145jsd" ] + }, + "acm003150jsd" : { + "type" : "ControlElement", + "id" : "acm003150jsd", + "name" : "RegisteredUser" + }, + "acm003151jsd" : { + "type" : "ControlElement", + "id" : "acm003151jsd", + "name" : "setGuestStatus" + }, + "acm003152jsd" : { + "type" : "ControlElement", + "id" : "acm003152jsd", + "name" : "getGuestStatus" + }, + "acm003153jsd" : { + "type" : "ControlElement", + "id" : "acm003153jsd", + "name" : "getLeftGuestLobby" + }, + "acm003154jsd" : { + "type" : "ControlElement", + "id" : "acm003154jsd", + "name" : "setExcludeFromDashboard" + }, + "acm003155jsd" : { + "type" : "ControlElement", + "id" : "acm003155jsd", + "name" : "getExcludeFromDashboard" + }, + "acm003156jsd" : { + "type" : "ControlElement", + "id" : "acm003156jsd", + "name" : "updateGuestWaitedOn" + }, + "acm003157jsd" : { + "type" : "ControlElement", + "id" : "acm003157jsd", + "name" : "setLeftGuestLobby" + }, + "acm003158jsd" : { + "type" : "ControlElement", + "id" : "acm003158jsd", + "name" : "getGuestWaitedOn" + }, + "acm003159jsd" : { + "type" : "ClassUnit", + "id" : "acm003159jsd", + "name" : "RegisteredUser", + "compilationUnitId" : "acm003145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003150jsd", "acm003151jsd", "acm003152jsd", "acm003153jsd", "acm003154jsd", "acm003155jsd", "acm003156jsd", "acm003157jsd", "acm003158jsd" ] + }, + "acm003160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003160jsd", + "name" : "User", + "parentId" : "acm002662jsd", + "content" : [ "acm003199jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003161jsd" : { + "type" : "CodePackage", + "id" : "acm003161jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003162jsd" ] + }, + "acm003162jsd" : { + "type" : "CodePackage", + "id" : "acm003162jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003163jsd" ] + }, + "acm003163jsd" : { + "type" : "CodePackage", + "id" : "acm003163jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003164jsd" ] + }, + "acm003164jsd" : { + "type" : "CodePackage", + "id" : "acm003164jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003160jsd" ] + }, + "acm003165jsd" : { + "type" : "ControlElement", + "id" : "acm003165jsd", + "name" : "User" + }, + "acm003166jsd" : { + "type" : "ControlElement", + "id" : "acm003166jsd", + "name" : "getInternalUserId" + }, + "acm003167jsd" : { + "type" : "ControlElement", + "id" : "acm003167jsd", + "name" : "setInternalUserId" + }, + "acm003168jsd" : { + "type" : "ControlElement", + "id" : "acm003168jsd", + "name" : "getExternalUserId" + }, + "acm003169jsd" : { + "type" : "ControlElement", + "id" : "acm003169jsd", + "name" : "setExternalUserId" + }, + "acm003170jsd" : { + "type" : "ControlElement", + "id" : "acm003170jsd", + "name" : "setGuest" + }, + "acm003171jsd" : { + "type" : "ControlElement", + "id" : "acm003171jsd", + "name" : "isGuest" + }, + "acm003172jsd" : { + "type" : "ControlElement", + "id" : "acm003172jsd", + "name" : "setGuestStatus" + }, + "acm003173jsd" : { + "type" : "ControlElement", + "id" : "acm003173jsd", + "name" : "getGuestStatus" + }, + "acm003174jsd" : { + "type" : "ControlElement", + "id" : "acm003174jsd", + "name" : "hasLeft" + }, + "acm003175jsd" : { + "type" : "ControlElement", + "id" : "acm003175jsd", + "name" : "joined" + }, + "acm003176jsd" : { + "type" : "ControlElement", + "id" : "acm003176jsd", + "name" : "left" + }, + "acm003177jsd" : { + "type" : "ControlElement", + "id" : "acm003177jsd", + "name" : "getLeftOn" + }, + "acm003178jsd" : { + "type" : "ControlElement", + "id" : "acm003178jsd", + "name" : "getFullname" + }, + "acm003179jsd" : { + "type" : "ControlElement", + "id" : "acm003179jsd", + "name" : "setFullname" + }, + "acm003180jsd" : { + "type" : "ControlElement", + "id" : "acm003180jsd", + "name" : "getRole" + }, + "acm003181jsd" : { + "type" : "ControlElement", + "id" : "acm003181jsd", + "name" : "setRole" + }, + "acm003182jsd" : { + "type" : "ControlElement", + "id" : "acm003182jsd", + "name" : "setLocked" + }, + "acm003183jsd" : { + "type" : "ControlElement", + "id" : "acm003183jsd", + "name" : "getAvatarUrl" + }, + "acm003184jsd" : { + "type" : "ControlElement", + "id" : "acm003184jsd", + "name" : "setAvatarUrl" + }, + "acm003185jsd" : { + "type" : "ControlElement", + "id" : "acm003185jsd", + "name" : "isModerator" + }, + "acm003186jsd" : { + "type" : "ControlElement", + "id" : "acm003186jsd", + "name" : "setStatus" + }, + "acm003187jsd" : { + "type" : "ControlElement", + "id" : "acm003187jsd", + "name" : "removeStatus" + }, + "acm003188jsd" : { + "type" : "ControlElement", + "id" : "acm003188jsd", + "name" : "getStatus" + }, + "acm003189jsd" : { + "type" : "ControlElement", + "id" : "acm003189jsd", + "name" : "isPresenter" + }, + "acm003190jsd" : { + "type" : "ControlElement", + "id" : "acm003190jsd", + "name" : "addStream" + }, + "acm003191jsd" : { + "type" : "ControlElement", + "id" : "acm003191jsd", + "name" : "removeStream" + }, + "acm003192jsd" : { + "type" : "ControlElement", + "id" : "acm003192jsd", + "name" : "getStreams" + }, + "acm003193jsd" : { + "type" : "ControlElement", + "id" : "acm003193jsd", + "name" : "hasVideo" + }, + "acm003194jsd" : { + "type" : "ControlElement", + "id" : "acm003194jsd", + "name" : "isListeningOnly" + }, + "acm003195jsd" : { + "type" : "ControlElement", + "id" : "acm003195jsd", + "name" : "setListeningOnly" + }, + "acm003196jsd" : { + "type" : "ControlElement", + "id" : "acm003196jsd", + "name" : "isVoiceJoined" + }, + "acm003197jsd" : { + "type" : "ControlElement", + "id" : "acm003197jsd", + "name" : "setVoiceJoined" + }, + "acm003198jsd" : { + "type" : "ControlElement", + "id" : "acm003198jsd", + "name" : "getClientType" + }, + "acm003199jsd" : { + "type" : "ClassUnit", + "id" : "acm003199jsd", + "name" : "User", + "compilationUnitId" : "acm003160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003165jsd", "acm003166jsd", "acm003167jsd", "acm003168jsd", "acm003169jsd", "acm003170jsd", "acm003171jsd", "acm003172jsd", "acm003173jsd", "acm003174jsd", "acm003175jsd", "acm003176jsd", "acm003177jsd", "acm003178jsd", "acm003179jsd", "acm003180jsd", "acm003181jsd", "acm003182jsd", "acm003183jsd", "acm003184jsd", "acm003185jsd", "acm003186jsd", "acm003187jsd", "acm003188jsd", "acm003189jsd", "acm003190jsd", "acm003191jsd", "acm003192jsd", "acm003193jsd", "acm003194jsd", "acm003195jsd", "acm003196jsd", "acm003197jsd", "acm003198jsd" ] + }, + "acm003200jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003200jsd", + "name" : "UserSession", + "parentId" : "acm002662jsd", + "content" : [ "acm003229jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003201jsd" : { + "type" : "CodePackage", + "id" : "acm003201jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003202jsd" ] + }, + "acm003202jsd" : { + "type" : "CodePackage", + "id" : "acm003202jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003203jsd" ] + }, + "acm003203jsd" : { + "type" : "CodePackage", + "id" : "acm003203jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003204jsd" ] + }, + "acm003204jsd" : { + "type" : "CodePackage", + "id" : "acm003204jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm003200jsd" ] + }, + "acm003205jsd" : { + "type" : "ControlElement", + "id" : "acm003205jsd", + "name" : "incrementConnectionNum" + }, + "acm003206jsd" : { + "type" : "ControlElement", + "id" : "acm003206jsd", + "name" : "getAuthToken" + }, + "acm003207jsd" : { + "type" : "ControlElement", + "id" : "acm003207jsd", + "name" : "getInternalUserId" + }, + "acm003208jsd" : { + "type" : "ControlElement", + "id" : "acm003208jsd", + "name" : "getConferencename" + }, + "acm003209jsd" : { + "type" : "ControlElement", + "id" : "acm003209jsd", + "name" : "getMeetingID" + }, + "acm003210jsd" : { + "type" : "ControlElement", + "id" : "acm003210jsd", + "name" : "getExternMeetingID" + }, + "acm003211jsd" : { + "type" : "ControlElement", + "id" : "acm003211jsd", + "name" : "getExternUserID" + }, + "acm003212jsd" : { + "type" : "ControlElement", + "id" : "acm003212jsd", + "name" : "getFullname" + }, + "acm003213jsd" : { + "type" : "ControlElement", + "id" : "acm003213jsd", + "name" : "getRole" + }, + "acm003214jsd" : { + "type" : "ControlElement", + "id" : "acm003214jsd", + "name" : "getConference" + }, + "acm003215jsd" : { + "type" : "ControlElement", + "id" : "acm003215jsd", + "name" : "getRoom" + }, + "acm003216jsd" : { + "type" : "ControlElement", + "id" : "acm003216jsd", + "name" : "getGuest" + }, + "acm003217jsd" : { + "type" : "ControlElement", + "id" : "acm003217jsd", + "name" : "getAuthed" + }, + "acm003218jsd" : { + "type" : "ControlElement", + "id" : "acm003218jsd", + "name" : "getVoicebridge" + }, + "acm003219jsd" : { + "type" : "ControlElement", + "id" : "acm003219jsd", + "name" : "getWebvoiceconf" + }, + "acm003220jsd" : { + "type" : "ControlElement", + "id" : "acm003220jsd", + "name" : "getMode" + }, + "acm003221jsd" : { + "type" : "ControlElement", + "id" : "acm003221jsd", + "name" : "getRecord" + }, + "acm003222jsd" : { + "type" : "ControlElement", + "id" : "acm003222jsd", + "name" : "getWelcome" + }, + "acm003223jsd" : { + "type" : "ControlElement", + "id" : "acm003223jsd", + "name" : "getLogoutUrl" + }, + "acm003224jsd" : { + "type" : "ControlElement", + "id" : "acm003224jsd", + "name" : "getDefaultLayout" + }, + "acm003225jsd" : { + "type" : "ControlElement", + "id" : "acm003225jsd", + "name" : "getAvatarURL" + }, + "acm003226jsd" : { + "type" : "ControlElement", + "id" : "acm003226jsd", + "name" : "getGuestStatus" + }, + "acm003227jsd" : { + "type" : "ControlElement", + "id" : "acm003227jsd", + "name" : "getClientUrl" + }, + "acm003228jsd" : { + "type" : "ControlElement", + "id" : "acm003228jsd", + "name" : "toString" + }, + "acm003229jsd" : { + "type" : "ClassUnit", + "id" : "acm003229jsd", + "name" : "UserSession", + "compilationUnitId" : "acm003200jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003205jsd", "acm003206jsd", "acm003207jsd", "acm003208jsd", "acm003209jsd", "acm003210jsd", "acm003211jsd", "acm003212jsd", "acm003213jsd", "acm003214jsd", "acm003215jsd", "acm003216jsd", "acm003217jsd", "acm003218jsd", "acm003219jsd", "acm003220jsd", "acm003221jsd", "acm003222jsd", "acm003223jsd", "acm003224jsd", "acm003225jsd", "acm003226jsd", "acm003227jsd", "acm003228jsd" ] + }, + "acm003230jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003230jsd", + "name" : "MessageDistributor", + "parentId" : "acm003234jsd", + "content" : [ "acm003238jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003231jsd" : { + "type" : "CodePackage", + "id" : "acm003231jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003232jsd" ] + }, + "acm003232jsd" : { + "type" : "CodePackage", + "id" : "acm003232jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003233jsd" ] + }, + "acm003233jsd" : { + "type" : "CodePackage", + "id" : "acm003233jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003234jsd" ] + }, + "acm003234jsd" : { + "type" : "CodePackage", + "id" : "acm003234jsd", + "name" : "messaging", + "parentId" : "acm002337jsd", + "content" : [ "acm003230jsd", "acm003239jsd", "acm003246jsd", "acm003255jsd", "acm003263jsd", "acm006179jsd", "acm003282jsd", "acm003345jsd" ] + }, + "acm003235jsd" : { + "type" : "ControlElement", + "id" : "acm003235jsd", + "name" : "setMessageListeners" + }, + "acm003236jsd" : { + "type" : "ControlElement", + "id" : "acm003236jsd", + "name" : "setMessageHandler" + }, + "acm003237jsd" : { + "type" : "ControlElement", + "id" : "acm003237jsd", + "name" : "notifyListeners" + }, + "acm003238jsd" : { + "type" : "ClassUnit", + "id" : "acm003238jsd", + "name" : "MessageDistributor", + "compilationUnitId" : "acm003230jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003245jsd", "acm003276jsd", "acm003410jsd" ], + "content" : [ "acm003235jsd", "acm003236jsd", "acm003237jsd" ] + }, + "acm003239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003239jsd", + "name" : "MessageListener", + "parentId" : "acm003234jsd", + "content" : [ "acm003245jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003240jsd" : { + "type" : "CodePackage", + "id" : "acm003240jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003241jsd" ] + }, + "acm003241jsd" : { + "type" : "CodePackage", + "id" : "acm003241jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003242jsd" ] + }, + "acm003242jsd" : { + "type" : "CodePackage", + "id" : "acm003242jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003243jsd" ] + }, + "acm003243jsd" : { + "type" : "CodePackage", + "id" : "acm003243jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003239jsd" ] + }, + "acm003244jsd" : { + "type" : "ControlElement", + "id" : "acm003244jsd", + "name" : "handle" + }, + "acm003245jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003245jsd", + "name" : "MessageListener", + "compilationUnitId" : "acm003239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003410jsd" ], + "content" : [ "acm003244jsd" ] + }, + "acm003246jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003246jsd", + "name" : "MessagingService", + "parentId" : "acm003234jsd", + "content" : [ "acm003254jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003247jsd" : { + "type" : "CodePackage", + "id" : "acm003247jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003248jsd" ] + }, + "acm003248jsd" : { + "type" : "CodePackage", + "id" : "acm003248jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003249jsd" ] + }, + "acm003249jsd" : { + "type" : "CodePackage", + "id" : "acm003249jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003250jsd" ] + }, + "acm003250jsd" : { + "type" : "CodePackage", + "id" : "acm003250jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003246jsd" ] + }, + "acm003251jsd" : { + "type" : "ControlElement", + "id" : "acm003251jsd", + "name" : "recordMeetingInfo" + }, + "acm003252jsd" : { + "type" : "ControlElement", + "id" : "acm003252jsd", + "name" : "recordBreakoutInfo" + }, + "acm003253jsd" : { + "type" : "ControlElement", + "id" : "acm003253jsd", + "name" : "addBreakoutRoom" + }, + "acm003254jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003254jsd", + "name" : "MessagingService", + "compilationUnitId" : "acm003246jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003251jsd", "acm003252jsd", "acm003253jsd" ] + }, + "acm003255jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003255jsd", + "name" : "ReceivedMessage", + "parentId" : "acm003234jsd", + "content" : [ "acm003262jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003256jsd" : { + "type" : "CodePackage", + "id" : "acm003256jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003257jsd" ] + }, + "acm003257jsd" : { + "type" : "CodePackage", + "id" : "acm003257jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003258jsd" ] + }, + "acm003258jsd" : { + "type" : "CodePackage", + "id" : "acm003258jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003259jsd" ] + }, + "acm003259jsd" : { + "type" : "CodePackage", + "id" : "acm003259jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003255jsd" ] + }, + "acm003260jsd" : { + "type" : "ControlElement", + "id" : "acm003260jsd", + "name" : "ReceivedMessage" + }, + "acm003261jsd" : { + "type" : "ControlElement", + "id" : "acm003261jsd", + "name" : "getMessage" + }, + "acm003262jsd" : { + "type" : "ClassUnit", + "id" : "acm003262jsd", + "name" : "ReceivedMessage", + "compilationUnitId" : "acm003255jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003410jsd" ], + "content" : [ "acm003260jsd", "acm003261jsd" ] + }, + "acm003263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003263jsd", + "name" : "ReceivedMessageHandler", + "parentId" : "acm003234jsd", + "content" : [ "acm003276jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003264jsd" : { + "type" : "CodePackage", + "id" : "acm003264jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003265jsd" ] + }, + "acm003265jsd" : { + "type" : "CodePackage", + "id" : "acm003265jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003266jsd" ] + }, + "acm003266jsd" : { + "type" : "CodePackage", + "id" : "acm003266jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003267jsd" ] + }, + "acm003267jsd" : { + "type" : "CodePackage", + "id" : "acm003267jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003263jsd" ] + }, + "acm003268jsd" : { + "type" : "ControlElement", + "id" : "acm003268jsd", + "name" : "stop" + }, + "acm003269jsd" : { + "type" : "ControlElement", + "id" : "acm003269jsd", + "name" : "start" + }, + "acm003270jsd" : { + "type" : "ControlElement", + "id" : "acm003270jsd", + "name" : "run" + }, + "acm003271jsd" : { + "type" : "ControlElement", + "id" : "acm003271jsd", + "name" : "notifyListeners" + }, + "acm003272jsd" : { + "type" : "ControlElement", + "id" : "acm003272jsd", + "name" : "processMessage" + }, + "acm003273jsd" : { + "type" : "ControlElement", + "id" : "acm003273jsd", + "name" : "run" + }, + "acm003274jsd" : { + "type" : "ControlElement", + "id" : "acm003274jsd", + "name" : "handleMessage" + }, + "acm003275jsd" : { + "type" : "ControlElement", + "id" : "acm003275jsd", + "name" : "setMessageDistributor" + }, + "acm003276jsd" : { + "type" : "ClassUnit", + "id" : "acm003276jsd", + "name" : "ReceivedMessageHandler", + "compilationUnitId" : "acm003263jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002375jsd" ], + "datatypeReferencesIds" : [ "acm003238jsd", "acm003262jsd", "acm003276jsd", "acm003410jsd" ], + "content" : [ "acm003268jsd", "acm003269jsd", "acm003270jsd", "acm003271jsd", "acm003272jsd", "acm003273jsd", "acm003274jsd", "acm003275jsd" ] + }, + "acm003277jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003277jsd", + "name" : "CreateMeetingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003285jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003278jsd" : { + "type" : "CodePackage", + "id" : "acm003278jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003279jsd" ] + }, + "acm003279jsd" : { + "type" : "CodePackage", + "id" : "acm003279jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003280jsd" ] + }, + "acm003280jsd" : { + "type" : "CodePackage", + "id" : "acm003280jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003281jsd" ] + }, + "acm003281jsd" : { + "type" : "CodePackage", + "id" : "acm003281jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003282jsd" ] + }, + "acm003282jsd" : { + "type" : "CodePackage", + "id" : "acm003282jsd", + "name" : "converters", + "parentId" : "acm003234jsd", + "content" : [ "acm003283jsd" ] + }, + "acm003283jsd" : { + "type" : "CodePackage", + "id" : "acm003283jsd", + "name" : "messages", + "parentId" : "acm003282jsd", + "content" : [ "acm003277jsd", "acm003286jsd", "acm003295jsd", "acm003304jsd", "acm003313jsd", "acm003322jsd", "acm003331jsd" ] + }, + "acm003284jsd" : { + "type" : "ControlElement", + "id" : "acm003284jsd", + "name" : "CreateMeetingMessage" + }, + "acm003285jsd" : { + "type" : "ClassUnit", + "id" : "acm003285jsd", + "name" : "CreateMeetingMessage", + "compilationUnitId" : "acm003277jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003284jsd" ] + }, + "acm003286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003286jsd", + "name" : "DeletedRecordingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003294jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003287jsd" : { + "type" : "CodePackage", + "id" : "acm003287jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003288jsd" ] + }, + "acm003288jsd" : { + "type" : "CodePackage", + "id" : "acm003288jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003289jsd" ] + }, + "acm003289jsd" : { + "type" : "CodePackage", + "id" : "acm003289jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003290jsd" ] + }, + "acm003290jsd" : { + "type" : "CodePackage", + "id" : "acm003290jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003291jsd" ] + }, + "acm003291jsd" : { + "type" : "CodePackage", + "id" : "acm003291jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003292jsd" ] + }, + "acm003292jsd" : { + "type" : "CodePackage", + "id" : "acm003292jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003286jsd" ] + }, + "acm003293jsd" : { + "type" : "ControlElement", + "id" : "acm003293jsd", + "name" : "DeletedRecordingMessage" + }, + "acm003294jsd" : { + "type" : "ClassUnit", + "id" : "acm003294jsd", + "name" : "DeletedRecordingMessage", + "compilationUnitId" : "acm003286jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003293jsd" ] + }, + "acm003295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003295jsd", + "name" : "DestroyMeetingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003303jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003296jsd" : { + "type" : "CodePackage", + "id" : "acm003296jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003297jsd" ] + }, + "acm003297jsd" : { + "type" : "CodePackage", + "id" : "acm003297jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003298jsd" ] + }, + "acm003298jsd" : { + "type" : "CodePackage", + "id" : "acm003298jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003299jsd" ] + }, + "acm003299jsd" : { + "type" : "CodePackage", + "id" : "acm003299jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003300jsd" ] + }, + "acm003300jsd" : { + "type" : "CodePackage", + "id" : "acm003300jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003301jsd" ] + }, + "acm003301jsd" : { + "type" : "CodePackage", + "id" : "acm003301jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003295jsd" ] + }, + "acm003302jsd" : { + "type" : "ControlElement", + "id" : "acm003302jsd", + "name" : "DestroyMeetingMessage" + }, + "acm003303jsd" : { + "type" : "ClassUnit", + "id" : "acm003303jsd", + "name" : "DestroyMeetingMessage", + "compilationUnitId" : "acm003295jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003302jsd" ] + }, + "acm003304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003304jsd", + "name" : "EndMeetingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003312jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003305jsd" : { + "type" : "CodePackage", + "id" : "acm003305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003306jsd" ] + }, + "acm003306jsd" : { + "type" : "CodePackage", + "id" : "acm003306jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003307jsd" ] + }, + "acm003307jsd" : { + "type" : "CodePackage", + "id" : "acm003307jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003308jsd" ] + }, + "acm003308jsd" : { + "type" : "CodePackage", + "id" : "acm003308jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003309jsd" ] + }, + "acm003309jsd" : { + "type" : "CodePackage", + "id" : "acm003309jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003310jsd" ] + }, + "acm003310jsd" : { + "type" : "CodePackage", + "id" : "acm003310jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003304jsd" ] + }, + "acm003311jsd" : { + "type" : "ControlElement", + "id" : "acm003311jsd", + "name" : "EndMeetingMessage" + }, + "acm003312jsd" : { + "type" : "ClassUnit", + "id" : "acm003312jsd", + "name" : "EndMeetingMessage", + "compilationUnitId" : "acm003304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003311jsd" ] + }, + "acm003313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003313jsd", + "name" : "KeepAliveMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003321jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003314jsd" : { + "type" : "CodePackage", + "id" : "acm003314jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003315jsd" ] + }, + "acm003315jsd" : { + "type" : "CodePackage", + "id" : "acm003315jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003316jsd" ] + }, + "acm003316jsd" : { + "type" : "CodePackage", + "id" : "acm003316jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003317jsd" ] + }, + "acm003317jsd" : { + "type" : "CodePackage", + "id" : "acm003317jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003318jsd" ] + }, + "acm003318jsd" : { + "type" : "CodePackage", + "id" : "acm003318jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003319jsd" ] + }, + "acm003319jsd" : { + "type" : "CodePackage", + "id" : "acm003319jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003313jsd" ] + }, + "acm003320jsd" : { + "type" : "ControlElement", + "id" : "acm003320jsd", + "name" : "KeepAliveMessage" + }, + "acm003321jsd" : { + "type" : "ClassUnit", + "id" : "acm003321jsd", + "name" : "KeepAliveMessage", + "compilationUnitId" : "acm003313jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003320jsd" ] + }, + "acm003322jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003322jsd", + "name" : "PublishedRecordingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003330jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003323jsd" : { + "type" : "CodePackage", + "id" : "acm003323jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003324jsd" ] + }, + "acm003324jsd" : { + "type" : "CodePackage", + "id" : "acm003324jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003325jsd" ] + }, + "acm003325jsd" : { + "type" : "CodePackage", + "id" : "acm003325jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003326jsd" ] + }, + "acm003326jsd" : { + "type" : "CodePackage", + "id" : "acm003326jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003327jsd" ] + }, + "acm003327jsd" : { + "type" : "CodePackage", + "id" : "acm003327jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003328jsd" ] + }, + "acm003328jsd" : { + "type" : "CodePackage", + "id" : "acm003328jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003322jsd" ] + }, + "acm003329jsd" : { + "type" : "ControlElement", + "id" : "acm003329jsd", + "name" : "PublishedRecordingMessage" + }, + "acm003330jsd" : { + "type" : "ClassUnit", + "id" : "acm003330jsd", + "name" : "PublishedRecordingMessage", + "compilationUnitId" : "acm003322jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003329jsd" ] + }, + "acm003331jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003331jsd", + "name" : "UnpublishedRecordingMessage", + "parentId" : "acm003283jsd", + "content" : [ "acm003339jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "converters", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003332jsd" : { + "type" : "CodePackage", + "id" : "acm003332jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003333jsd" ] + }, + "acm003333jsd" : { + "type" : "CodePackage", + "id" : "acm003333jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003334jsd" ] + }, + "acm003334jsd" : { + "type" : "CodePackage", + "id" : "acm003334jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003335jsd" ] + }, + "acm003335jsd" : { + "type" : "CodePackage", + "id" : "acm003335jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003336jsd" ] + }, + "acm003336jsd" : { + "type" : "CodePackage", + "id" : "acm003336jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm003337jsd" ] + }, + "acm003337jsd" : { + "type" : "CodePackage", + "id" : "acm003337jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003331jsd" ] + }, + "acm003338jsd" : { + "type" : "ControlElement", + "id" : "acm003338jsd", + "name" : "UnpublishedRecordingMessage" + }, + "acm003339jsd" : { + "type" : "ClassUnit", + "id" : "acm003339jsd", + "name" : "UnpublishedRecordingMessage", + "compilationUnitId" : "acm003331jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003338jsd" ] + }, + "acm003340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003340jsd", + "name" : "CreateBreakoutRoom", + "parentId" : "acm003345jsd", + "content" : [ "acm003347jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003341jsd" : { + "type" : "CodePackage", + "id" : "acm003341jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003342jsd" ] + }, + "acm003342jsd" : { + "type" : "CodePackage", + "id" : "acm003342jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003343jsd" ] + }, + "acm003343jsd" : { + "type" : "CodePackage", + "id" : "acm003343jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003344jsd" ] + }, + "acm003344jsd" : { + "type" : "CodePackage", + "id" : "acm003344jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003345jsd" ] + }, + "acm003345jsd" : { + "type" : "CodePackage", + "id" : "acm003345jsd", + "name" : "messages", + "parentId" : "acm003234jsd", + "content" : [ "acm003340jsd", "acm003348jsd", "acm003356jsd", "acm003364jsd", "acm003372jsd", "acm003380jsd", "acm003388jsd", "acm003396jsd", "acm003404jsd", "acm003411jsd", "acm003419jsd", "acm003427jsd", "acm003435jsd", "acm003443jsd", "acm003451jsd", "acm003459jsd", "acm003467jsd", "acm003475jsd", "acm003483jsd", "acm003491jsd", "acm003499jsd", "acm003507jsd", "acm003515jsd", "acm003523jsd", "acm003531jsd", "acm003539jsd", "acm003547jsd", "acm003555jsd", "acm003563jsd", "acm003571jsd", "acm003579jsd", "acm003587jsd" ] + }, + "acm003346jsd" : { + "type" : "ControlElement", + "id" : "acm003346jsd", + "name" : "CreateBreakoutRoom" + }, + "acm003347jsd" : { + "type" : "ClassUnit", + "id" : "acm003347jsd", + "name" : "CreateBreakoutRoom", + "compilationUnitId" : "acm003340jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003346jsd" ] + }, + "acm003348jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003348jsd", + "name" : "CreateMeeting", + "parentId" : "acm003345jsd", + "content" : [ "acm003355jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003349jsd" : { + "type" : "CodePackage", + "id" : "acm003349jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003350jsd" ] + }, + "acm003350jsd" : { + "type" : "CodePackage", + "id" : "acm003350jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003351jsd" ] + }, + "acm003351jsd" : { + "type" : "CodePackage", + "id" : "acm003351jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003352jsd" ] + }, + "acm003352jsd" : { + "type" : "CodePackage", + "id" : "acm003352jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003353jsd" ] + }, + "acm003353jsd" : { + "type" : "CodePackage", + "id" : "acm003353jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003348jsd" ] + }, + "acm003354jsd" : { + "type" : "ControlElement", + "id" : "acm003354jsd", + "name" : "CreateMeeting" + }, + "acm003355jsd" : { + "type" : "ClassUnit", + "id" : "acm003355jsd", + "name" : "CreateMeeting", + "compilationUnitId" : "acm003348jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ "acm002943jsd" ], + "content" : [ "acm003354jsd" ] + }, + "acm003356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003356jsd", + "name" : "EndBreakoutRoom", + "parentId" : "acm003345jsd", + "content" : [ "acm003363jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003357jsd" : { + "type" : "CodePackage", + "id" : "acm003357jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003358jsd" ] + }, + "acm003358jsd" : { + "type" : "CodePackage", + "id" : "acm003358jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003359jsd" ] + }, + "acm003359jsd" : { + "type" : "CodePackage", + "id" : "acm003359jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003360jsd" ] + }, + "acm003360jsd" : { + "type" : "CodePackage", + "id" : "acm003360jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003361jsd" ] + }, + "acm003361jsd" : { + "type" : "CodePackage", + "id" : "acm003361jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003356jsd" ] + }, + "acm003362jsd" : { + "type" : "ControlElement", + "id" : "acm003362jsd", + "name" : "EndBreakoutRoom" + }, + "acm003363jsd" : { + "type" : "ClassUnit", + "id" : "acm003363jsd", + "name" : "EndBreakoutRoom", + "compilationUnitId" : "acm003356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003362jsd" ] + }, + "acm003364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003364jsd", + "name" : "EndMeeting", + "parentId" : "acm003345jsd", + "content" : [ "acm003371jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003365jsd" : { + "type" : "CodePackage", + "id" : "acm003365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003366jsd" ] + }, + "acm003366jsd" : { + "type" : "CodePackage", + "id" : "acm003366jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003367jsd" ] + }, + "acm003367jsd" : { + "type" : "CodePackage", + "id" : "acm003367jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003368jsd" ] + }, + "acm003368jsd" : { + "type" : "CodePackage", + "id" : "acm003368jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003369jsd" ] + }, + "acm003369jsd" : { + "type" : "CodePackage", + "id" : "acm003369jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003364jsd" ] + }, + "acm003370jsd" : { + "type" : "ControlElement", + "id" : "acm003370jsd", + "name" : "EndMeeting" + }, + "acm003371jsd" : { + "type" : "ClassUnit", + "id" : "acm003371jsd", + "name" : "EndMeeting", + "compilationUnitId" : "acm003364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003370jsd" ] + }, + "acm003372jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003372jsd", + "name" : "GuestLobbyMessageChanged", + "parentId" : "acm003345jsd", + "content" : [ "acm003379jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003373jsd" : { + "type" : "CodePackage", + "id" : "acm003373jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003374jsd" ] + }, + "acm003374jsd" : { + "type" : "CodePackage", + "id" : "acm003374jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003375jsd" ] + }, + "acm003375jsd" : { + "type" : "CodePackage", + "id" : "acm003375jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003376jsd" ] + }, + "acm003376jsd" : { + "type" : "CodePackage", + "id" : "acm003376jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003377jsd" ] + }, + "acm003377jsd" : { + "type" : "CodePackage", + "id" : "acm003377jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003372jsd" ] + }, + "acm003378jsd" : { + "type" : "ControlElement", + "id" : "acm003378jsd", + "name" : "GuestLobbyMessageChanged" + }, + "acm003379jsd" : { + "type" : "ClassUnit", + "id" : "acm003379jsd", + "name" : "GuestLobbyMessageChanged", + "compilationUnitId" : "acm003372jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003378jsd" ] + }, + "acm003380jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003380jsd", + "name" : "GuestPolicyChanged", + "parentId" : "acm003345jsd", + "content" : [ "acm003387jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003381jsd" : { + "type" : "CodePackage", + "id" : "acm003381jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003382jsd" ] + }, + "acm003382jsd" : { + "type" : "CodePackage", + "id" : "acm003382jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003383jsd" ] + }, + "acm003383jsd" : { + "type" : "CodePackage", + "id" : "acm003383jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003384jsd" ] + }, + "acm003384jsd" : { + "type" : "CodePackage", + "id" : "acm003384jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003385jsd" ] + }, + "acm003385jsd" : { + "type" : "CodePackage", + "id" : "acm003385jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003380jsd" ] + }, + "acm003386jsd" : { + "type" : "ControlElement", + "id" : "acm003386jsd", + "name" : "GuestPolicyChanged" + }, + "acm003387jsd" : { + "type" : "ClassUnit", + "id" : "acm003387jsd", + "name" : "GuestPolicyChanged", + "compilationUnitId" : "acm003380jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003386jsd" ] + }, + "acm003388jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003388jsd", + "name" : "GuestStatusChangedEventMsg", + "parentId" : "acm003345jsd", + "content" : [ "acm003395jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003389jsd" : { + "type" : "CodePackage", + "id" : "acm003389jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003390jsd" ] + }, + "acm003390jsd" : { + "type" : "CodePackage", + "id" : "acm003390jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003391jsd" ] + }, + "acm003391jsd" : { + "type" : "CodePackage", + "id" : "acm003391jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003392jsd" ] + }, + "acm003392jsd" : { + "type" : "CodePackage", + "id" : "acm003392jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003393jsd" ] + }, + "acm003393jsd" : { + "type" : "CodePackage", + "id" : "acm003393jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003388jsd" ] + }, + "acm003394jsd" : { + "type" : "ControlElement", + "id" : "acm003394jsd", + "name" : "GuestStatusChangedEventMsg" + }, + "acm003395jsd" : { + "type" : "ClassUnit", + "id" : "acm003395jsd", + "name" : "GuestStatusChangedEventMsg", + "compilationUnitId" : "acm003388jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ "acm003403jsd" ], + "content" : [ "acm003394jsd" ] + }, + "acm003396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003396jsd", + "name" : "GuestsStatus", + "parentId" : "acm003345jsd", + "content" : [ "acm003403jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003397jsd" : { + "type" : "CodePackage", + "id" : "acm003397jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003398jsd" ] + }, + "acm003398jsd" : { + "type" : "CodePackage", + "id" : "acm003398jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003399jsd" ] + }, + "acm003399jsd" : { + "type" : "CodePackage", + "id" : "acm003399jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003400jsd" ] + }, + "acm003400jsd" : { + "type" : "CodePackage", + "id" : "acm003400jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003401jsd" ] + }, + "acm003401jsd" : { + "type" : "CodePackage", + "id" : "acm003401jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003396jsd" ] + }, + "acm003402jsd" : { + "type" : "ControlElement", + "id" : "acm003402jsd", + "name" : "GuestsStatus" + }, + "acm003403jsd" : { + "type" : "ClassUnit", + "id" : "acm003403jsd", + "name" : "GuestsStatus", + "compilationUnitId" : "acm003396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003402jsd" ] + }, + "acm003404jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003404jsd", + "name" : "IMessage", + "parentId" : "acm003345jsd", + "content" : [ "acm003410jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003405jsd" : { + "type" : "CodePackage", + "id" : "acm003405jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003406jsd" ] + }, + "acm003406jsd" : { + "type" : "CodePackage", + "id" : "acm003406jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003407jsd" ] + }, + "acm003407jsd" : { + "type" : "CodePackage", + "id" : "acm003407jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003408jsd" ] + }, + "acm003408jsd" : { + "type" : "CodePackage", + "id" : "acm003408jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003409jsd" ] + }, + "acm003409jsd" : { + "type" : "CodePackage", + "id" : "acm003409jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003404jsd" ] + }, + "acm003410jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003410jsd", + "name" : "IMessage", + "compilationUnitId" : "acm003404jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003411jsd", + "name" : "KeepAliveReply", + "parentId" : "acm003345jsd", + "content" : [ "acm003418jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003412jsd" : { + "type" : "CodePackage", + "id" : "acm003412jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003413jsd" ] + }, + "acm003413jsd" : { + "type" : "CodePackage", + "id" : "acm003413jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003414jsd" ] + }, + "acm003414jsd" : { + "type" : "CodePackage", + "id" : "acm003414jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003415jsd" ] + }, + "acm003415jsd" : { + "type" : "CodePackage", + "id" : "acm003415jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003416jsd" ] + }, + "acm003416jsd" : { + "type" : "CodePackage", + "id" : "acm003416jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003411jsd" ] + }, + "acm003417jsd" : { + "type" : "ControlElement", + "id" : "acm003417jsd", + "name" : "KeepAliveReply" + }, + "acm003418jsd" : { + "type" : "ClassUnit", + "id" : "acm003418jsd", + "name" : "KeepAliveReply", + "compilationUnitId" : "acm003411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003417jsd" ] + }, + "acm003419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003419jsd", + "name" : "LearningDashboard", + "parentId" : "acm003345jsd", + "content" : [ "acm003426jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003420jsd" : { + "type" : "CodePackage", + "id" : "acm003420jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003421jsd" ] + }, + "acm003421jsd" : { + "type" : "CodePackage", + "id" : "acm003421jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003422jsd" ] + }, + "acm003422jsd" : { + "type" : "CodePackage", + "id" : "acm003422jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003423jsd" ] + }, + "acm003423jsd" : { + "type" : "CodePackage", + "id" : "acm003423jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003424jsd" ] + }, + "acm003424jsd" : { + "type" : "CodePackage", + "id" : "acm003424jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003419jsd" ] + }, + "acm003425jsd" : { + "type" : "ControlElement", + "id" : "acm003425jsd", + "name" : "LearningDashboard" + }, + "acm003426jsd" : { + "type" : "ClassUnit", + "id" : "acm003426jsd", + "name" : "LearningDashboard", + "compilationUnitId" : "acm003419jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003425jsd" ] + }, + "acm003427jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003427jsd", + "name" : "MakePresentationDownloadableMsg", + "parentId" : "acm003345jsd", + "content" : [ "acm003434jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003428jsd" : { + "type" : "CodePackage", + "id" : "acm003428jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003429jsd" ] + }, + "acm003429jsd" : { + "type" : "CodePackage", + "id" : "acm003429jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003430jsd" ] + }, + "acm003430jsd" : { + "type" : "CodePackage", + "id" : "acm003430jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003431jsd" ] + }, + "acm003431jsd" : { + "type" : "CodePackage", + "id" : "acm003431jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003432jsd" ] + }, + "acm003432jsd" : { + "type" : "CodePackage", + "id" : "acm003432jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003427jsd" ] + }, + "acm003433jsd" : { + "type" : "ControlElement", + "id" : "acm003433jsd", + "name" : "MakePresentationDownloadableMsg" + }, + "acm003434jsd" : { + "type" : "ClassUnit", + "id" : "acm003434jsd", + "name" : "MakePresentationDownloadableMsg", + "compilationUnitId" : "acm003427jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003433jsd" ] + }, + "acm003435jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003435jsd", + "name" : "MeetingDestroyed", + "parentId" : "acm003345jsd", + "content" : [ "acm003442jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003436jsd" : { + "type" : "CodePackage", + "id" : "acm003436jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003437jsd" ] + }, + "acm003437jsd" : { + "type" : "CodePackage", + "id" : "acm003437jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003438jsd" ] + }, + "acm003438jsd" : { + "type" : "CodePackage", + "id" : "acm003438jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003439jsd" ] + }, + "acm003439jsd" : { + "type" : "CodePackage", + "id" : "acm003439jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003440jsd" ] + }, + "acm003440jsd" : { + "type" : "CodePackage", + "id" : "acm003440jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003435jsd" ] + }, + "acm003441jsd" : { + "type" : "ControlElement", + "id" : "acm003441jsd", + "name" : "MeetingDestroyed" + }, + "acm003442jsd" : { + "type" : "ClassUnit", + "id" : "acm003442jsd", + "name" : "MeetingDestroyed", + "compilationUnitId" : "acm003435jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003441jsd" ] + }, + "acm003443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003443jsd", + "name" : "MeetingEnded", + "parentId" : "acm003345jsd", + "content" : [ "acm003450jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003444jsd" : { + "type" : "CodePackage", + "id" : "acm003444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003445jsd" ] + }, + "acm003445jsd" : { + "type" : "CodePackage", + "id" : "acm003445jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003446jsd" ] + }, + "acm003446jsd" : { + "type" : "CodePackage", + "id" : "acm003446jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003447jsd" ] + }, + "acm003447jsd" : { + "type" : "CodePackage", + "id" : "acm003447jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003448jsd" ] + }, + "acm003448jsd" : { + "type" : "CodePackage", + "id" : "acm003448jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003443jsd" ] + }, + "acm003449jsd" : { + "type" : "ControlElement", + "id" : "acm003449jsd", + "name" : "MeetingEnded" + }, + "acm003450jsd" : { + "type" : "ClassUnit", + "id" : "acm003450jsd", + "name" : "MeetingEnded", + "compilationUnitId" : "acm003443jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003449jsd" ] + }, + "acm003451jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003451jsd", + "name" : "MeetingStarted", + "parentId" : "acm003345jsd", + "content" : [ "acm003458jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003452jsd" : { + "type" : "CodePackage", + "id" : "acm003452jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003453jsd" ] + }, + "acm003453jsd" : { + "type" : "CodePackage", + "id" : "acm003453jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003454jsd" ] + }, + "acm003454jsd" : { + "type" : "CodePackage", + "id" : "acm003454jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003455jsd" ] + }, + "acm003455jsd" : { + "type" : "CodePackage", + "id" : "acm003455jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003456jsd" ] + }, + "acm003456jsd" : { + "type" : "CodePackage", + "id" : "acm003456jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003451jsd" ] + }, + "acm003457jsd" : { + "type" : "ControlElement", + "id" : "acm003457jsd", + "name" : "MeetingStarted" + }, + "acm003458jsd" : { + "type" : "ClassUnit", + "id" : "acm003458jsd", + "name" : "MeetingStarted", + "compilationUnitId" : "acm003451jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003457jsd" ] + }, + "acm003459jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003459jsd", + "name" : "PositionInWaitingQueueUpdated", + "parentId" : "acm003345jsd", + "content" : [ "acm003466jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003460jsd" : { + "type" : "CodePackage", + "id" : "acm003460jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003461jsd" ] + }, + "acm003461jsd" : { + "type" : "CodePackage", + "id" : "acm003461jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003462jsd" ] + }, + "acm003462jsd" : { + "type" : "CodePackage", + "id" : "acm003462jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003463jsd" ] + }, + "acm003463jsd" : { + "type" : "CodePackage", + "id" : "acm003463jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003464jsd" ] + }, + "acm003464jsd" : { + "type" : "CodePackage", + "id" : "acm003464jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003459jsd" ] + }, + "acm003465jsd" : { + "type" : "ControlElement", + "id" : "acm003465jsd", + "name" : "PositionInWaitingQueueUpdated" + }, + "acm003466jsd" : { + "type" : "ClassUnit", + "id" : "acm003466jsd", + "name" : "PositionInWaitingQueueUpdated", + "compilationUnitId" : "acm003459jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003465jsd" ] + }, + "acm003467jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003467jsd", + "name" : "PresentationUploadToken", + "parentId" : "acm003345jsd", + "content" : [ "acm003474jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003468jsd" : { + "type" : "CodePackage", + "id" : "acm003468jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003469jsd" ] + }, + "acm003469jsd" : { + "type" : "CodePackage", + "id" : "acm003469jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003470jsd" ] + }, + "acm003470jsd" : { + "type" : "CodePackage", + "id" : "acm003470jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003471jsd" ] + }, + "acm003471jsd" : { + "type" : "CodePackage", + "id" : "acm003471jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003472jsd" ] + }, + "acm003472jsd" : { + "type" : "CodePackage", + "id" : "acm003472jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003467jsd" ] + }, + "acm003473jsd" : { + "type" : "ControlElement", + "id" : "acm003473jsd", + "name" : "PresentationUploadToken" + }, + "acm003474jsd" : { + "type" : "ClassUnit", + "id" : "acm003474jsd", + "name" : "PresentationUploadToken", + "compilationUnitId" : "acm003467jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003473jsd" ] + }, + "acm003475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003475jsd", + "name" : "PrivateGuestLobbyMessageChanged", + "parentId" : "acm003345jsd", + "content" : [ "acm003482jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003476jsd" : { + "type" : "CodePackage", + "id" : "acm003476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003477jsd" ] + }, + "acm003477jsd" : { + "type" : "CodePackage", + "id" : "acm003477jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003478jsd" ] + }, + "acm003478jsd" : { + "type" : "CodePackage", + "id" : "acm003478jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003479jsd" ] + }, + "acm003479jsd" : { + "type" : "CodePackage", + "id" : "acm003479jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003480jsd" ] + }, + "acm003480jsd" : { + "type" : "CodePackage", + "id" : "acm003480jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003475jsd" ] + }, + "acm003481jsd" : { + "type" : "ControlElement", + "id" : "acm003481jsd", + "name" : "PrivateGuestLobbyMessageChanged" + }, + "acm003482jsd" : { + "type" : "ClassUnit", + "id" : "acm003482jsd", + "name" : "PrivateGuestLobbyMessageChanged", + "compilationUnitId" : "acm003475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003481jsd" ] + }, + "acm003483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003483jsd", + "name" : "RecordChapterBreak", + "parentId" : "acm003345jsd", + "content" : [ "acm003490jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003484jsd" : { + "type" : "CodePackage", + "id" : "acm003484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003485jsd" ] + }, + "acm003485jsd" : { + "type" : "CodePackage", + "id" : "acm003485jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003486jsd" ] + }, + "acm003486jsd" : { + "type" : "CodePackage", + "id" : "acm003486jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003487jsd" ] + }, + "acm003487jsd" : { + "type" : "CodePackage", + "id" : "acm003487jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003488jsd" ] + }, + "acm003488jsd" : { + "type" : "CodePackage", + "id" : "acm003488jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003483jsd" ] + }, + "acm003489jsd" : { + "type" : "ControlElement", + "id" : "acm003489jsd", + "name" : "RecordChapterBreak" + }, + "acm003490jsd" : { + "type" : "ClassUnit", + "id" : "acm003490jsd", + "name" : "RecordChapterBreak", + "compilationUnitId" : "acm003483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003489jsd" ] + }, + "acm003491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003491jsd", + "name" : "RegisterUser", + "parentId" : "acm003345jsd", + "content" : [ "acm003498jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003492jsd" : { + "type" : "CodePackage", + "id" : "acm003492jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003493jsd" ] + }, + "acm003493jsd" : { + "type" : "CodePackage", + "id" : "acm003493jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003494jsd" ] + }, + "acm003494jsd" : { + "type" : "CodePackage", + "id" : "acm003494jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003495jsd" ] + }, + "acm003495jsd" : { + "type" : "CodePackage", + "id" : "acm003495jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003496jsd" ] + }, + "acm003496jsd" : { + "type" : "CodePackage", + "id" : "acm003496jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003491jsd" ] + }, + "acm003497jsd" : { + "type" : "ControlElement", + "id" : "acm003497jsd", + "name" : "RegisterUser" + }, + "acm003498jsd" : { + "type" : "ClassUnit", + "id" : "acm003498jsd", + "name" : "RegisterUser", + "compilationUnitId" : "acm003491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003497jsd" ] + }, + "acm003499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003499jsd", + "name" : "StunTurnInfoRequested", + "parentId" : "acm003345jsd", + "content" : [ "acm003506jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003500jsd" : { + "type" : "CodePackage", + "id" : "acm003500jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003501jsd" ] + }, + "acm003501jsd" : { + "type" : "CodePackage", + "id" : "acm003501jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003502jsd" ] + }, + "acm003502jsd" : { + "type" : "CodePackage", + "id" : "acm003502jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003503jsd" ] + }, + "acm003503jsd" : { + "type" : "CodePackage", + "id" : "acm003503jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003504jsd" ] + }, + "acm003504jsd" : { + "type" : "CodePackage", + "id" : "acm003504jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003499jsd" ] + }, + "acm003505jsd" : { + "type" : "ControlElement", + "id" : "acm003505jsd", + "name" : "StunTurnInfoRequested" + }, + "acm003506jsd" : { + "type" : "ClassUnit", + "id" : "acm003506jsd", + "name" : "StunTurnInfoRequested", + "compilationUnitId" : "acm003499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003505jsd" ] + }, + "acm003507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003507jsd", + "name" : "UpdateRecordingStatus", + "parentId" : "acm003345jsd", + "content" : [ "acm003514jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003508jsd" : { + "type" : "CodePackage", + "id" : "acm003508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003509jsd" ] + }, + "acm003509jsd" : { + "type" : "CodePackage", + "id" : "acm003509jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003510jsd" ] + }, + "acm003510jsd" : { + "type" : "CodePackage", + "id" : "acm003510jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003511jsd" ] + }, + "acm003511jsd" : { + "type" : "CodePackage", + "id" : "acm003511jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003512jsd" ] + }, + "acm003512jsd" : { + "type" : "CodePackage", + "id" : "acm003512jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003507jsd" ] + }, + "acm003513jsd" : { + "type" : "ControlElement", + "id" : "acm003513jsd", + "name" : "UpdateRecordingStatus" + }, + "acm003514jsd" : { + "type" : "ClassUnit", + "id" : "acm003514jsd", + "name" : "UpdateRecordingStatus", + "compilationUnitId" : "acm003507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003513jsd" ] + }, + "acm003515jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003515jsd", + "name" : "UserJoined", + "parentId" : "acm003345jsd", + "content" : [ "acm003522jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003516jsd" : { + "type" : "CodePackage", + "id" : "acm003516jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003517jsd" ] + }, + "acm003517jsd" : { + "type" : "CodePackage", + "id" : "acm003517jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003518jsd" ] + }, + "acm003518jsd" : { + "type" : "CodePackage", + "id" : "acm003518jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003519jsd" ] + }, + "acm003519jsd" : { + "type" : "CodePackage", + "id" : "acm003519jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003520jsd" ] + }, + "acm003520jsd" : { + "type" : "CodePackage", + "id" : "acm003520jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003515jsd" ] + }, + "acm003521jsd" : { + "type" : "ControlElement", + "id" : "acm003521jsd", + "name" : "UserJoined" + }, + "acm003522jsd" : { + "type" : "ClassUnit", + "id" : "acm003522jsd", + "name" : "UserJoined", + "compilationUnitId" : "acm003515jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003521jsd" ] + }, + "acm003523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003523jsd", + "name" : "UserJoinedVoice", + "parentId" : "acm003345jsd", + "content" : [ "acm003530jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003524jsd" : { + "type" : "CodePackage", + "id" : "acm003524jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003525jsd" ] + }, + "acm003525jsd" : { + "type" : "CodePackage", + "id" : "acm003525jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003526jsd" ] + }, + "acm003526jsd" : { + "type" : "CodePackage", + "id" : "acm003526jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003527jsd" ] + }, + "acm003527jsd" : { + "type" : "CodePackage", + "id" : "acm003527jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003528jsd" ] + }, + "acm003528jsd" : { + "type" : "CodePackage", + "id" : "acm003528jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003523jsd" ] + }, + "acm003529jsd" : { + "type" : "ControlElement", + "id" : "acm003529jsd", + "name" : "UserJoinedVoice" + }, + "acm003530jsd" : { + "type" : "ClassUnit", + "id" : "acm003530jsd", + "name" : "UserJoinedVoice", + "compilationUnitId" : "acm003523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003529jsd" ] + }, + "acm003531jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003531jsd", + "name" : "UserLeft", + "parentId" : "acm003345jsd", + "content" : [ "acm003538jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003532jsd" : { + "type" : "CodePackage", + "id" : "acm003532jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003533jsd" ] + }, + "acm003533jsd" : { + "type" : "CodePackage", + "id" : "acm003533jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003534jsd" ] + }, + "acm003534jsd" : { + "type" : "CodePackage", + "id" : "acm003534jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003535jsd" ] + }, + "acm003535jsd" : { + "type" : "CodePackage", + "id" : "acm003535jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003536jsd" ] + }, + "acm003536jsd" : { + "type" : "CodePackage", + "id" : "acm003536jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003531jsd" ] + }, + "acm003537jsd" : { + "type" : "ControlElement", + "id" : "acm003537jsd", + "name" : "UserLeft" + }, + "acm003538jsd" : { + "type" : "ClassUnit", + "id" : "acm003538jsd", + "name" : "UserLeft", + "compilationUnitId" : "acm003531jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003537jsd" ] + }, + "acm003539jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003539jsd", + "name" : "UserLeftVoice", + "parentId" : "acm003345jsd", + "content" : [ "acm003546jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003540jsd" : { + "type" : "CodePackage", + "id" : "acm003540jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003541jsd" ] + }, + "acm003541jsd" : { + "type" : "CodePackage", + "id" : "acm003541jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003542jsd" ] + }, + "acm003542jsd" : { + "type" : "CodePackage", + "id" : "acm003542jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003543jsd" ] + }, + "acm003543jsd" : { + "type" : "CodePackage", + "id" : "acm003543jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003544jsd" ] + }, + "acm003544jsd" : { + "type" : "CodePackage", + "id" : "acm003544jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003539jsd" ] + }, + "acm003545jsd" : { + "type" : "ControlElement", + "id" : "acm003545jsd", + "name" : "UserLeftVoice" + }, + "acm003546jsd" : { + "type" : "ClassUnit", + "id" : "acm003546jsd", + "name" : "UserLeftVoice", + "compilationUnitId" : "acm003539jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003545jsd" ] + }, + "acm003547jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003547jsd", + "name" : "UserListeningOnly", + "parentId" : "acm003345jsd", + "content" : [ "acm003554jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003548jsd" : { + "type" : "CodePackage", + "id" : "acm003548jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003549jsd" ] + }, + "acm003549jsd" : { + "type" : "CodePackage", + "id" : "acm003549jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003550jsd" ] + }, + "acm003550jsd" : { + "type" : "CodePackage", + "id" : "acm003550jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003551jsd" ] + }, + "acm003551jsd" : { + "type" : "CodePackage", + "id" : "acm003551jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003552jsd" ] + }, + "acm003552jsd" : { + "type" : "CodePackage", + "id" : "acm003552jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003547jsd" ] + }, + "acm003553jsd" : { + "type" : "ControlElement", + "id" : "acm003553jsd", + "name" : "UserListeningOnly" + }, + "acm003554jsd" : { + "type" : "ClassUnit", + "id" : "acm003554jsd", + "name" : "UserListeningOnly", + "compilationUnitId" : "acm003547jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003553jsd" ] + }, + "acm003555jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003555jsd", + "name" : "UserLockedInMeeting", + "parentId" : "acm003345jsd", + "content" : [ "acm003562jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003556jsd" : { + "type" : "CodePackage", + "id" : "acm003556jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003557jsd" ] + }, + "acm003557jsd" : { + "type" : "CodePackage", + "id" : "acm003557jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003558jsd" ] + }, + "acm003558jsd" : { + "type" : "CodePackage", + "id" : "acm003558jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003559jsd" ] + }, + "acm003559jsd" : { + "type" : "CodePackage", + "id" : "acm003559jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003560jsd" ] + }, + "acm003560jsd" : { + "type" : "CodePackage", + "id" : "acm003560jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003555jsd" ] + }, + "acm003561jsd" : { + "type" : "ControlElement", + "id" : "acm003561jsd", + "name" : "UserLockedInMeeting" + }, + "acm003562jsd" : { + "type" : "ClassUnit", + "id" : "acm003562jsd", + "name" : "UserLockedInMeeting", + "compilationUnitId" : "acm003555jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003561jsd" ] + }, + "acm003563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003563jsd", + "name" : "UserRoleChanged", + "parentId" : "acm003345jsd", + "content" : [ "acm003570jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003564jsd" : { + "type" : "CodePackage", + "id" : "acm003564jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003565jsd" ] + }, + "acm003565jsd" : { + "type" : "CodePackage", + "id" : "acm003565jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003566jsd" ] + }, + "acm003566jsd" : { + "type" : "CodePackage", + "id" : "acm003566jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003567jsd" ] + }, + "acm003567jsd" : { + "type" : "CodePackage", + "id" : "acm003567jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003568jsd" ] + }, + "acm003568jsd" : { + "type" : "CodePackage", + "id" : "acm003568jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003563jsd" ] + }, + "acm003569jsd" : { + "type" : "ControlElement", + "id" : "acm003569jsd", + "name" : "UserRoleChanged" + }, + "acm003570jsd" : { + "type" : "ClassUnit", + "id" : "acm003570jsd", + "name" : "UserRoleChanged", + "compilationUnitId" : "acm003563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003569jsd" ] + }, + "acm003571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003571jsd", + "name" : "UserSharedWebcam", + "parentId" : "acm003345jsd", + "content" : [ "acm003578jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003572jsd" : { + "type" : "CodePackage", + "id" : "acm003572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003573jsd" ] + }, + "acm003573jsd" : { + "type" : "CodePackage", + "id" : "acm003573jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003574jsd" ] + }, + "acm003574jsd" : { + "type" : "CodePackage", + "id" : "acm003574jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003575jsd" ] + }, + "acm003575jsd" : { + "type" : "CodePackage", + "id" : "acm003575jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003576jsd" ] + }, + "acm003576jsd" : { + "type" : "CodePackage", + "id" : "acm003576jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003571jsd" ] + }, + "acm003577jsd" : { + "type" : "ControlElement", + "id" : "acm003577jsd", + "name" : "UserSharedWebcam" + }, + "acm003578jsd" : { + "type" : "ClassUnit", + "id" : "acm003578jsd", + "name" : "UserSharedWebcam", + "compilationUnitId" : "acm003571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003577jsd" ] + }, + "acm003579jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003579jsd", + "name" : "UserStatusChanged", + "parentId" : "acm003345jsd", + "content" : [ "acm003586jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003580jsd" : { + "type" : "CodePackage", + "id" : "acm003580jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003581jsd" ] + }, + "acm003581jsd" : { + "type" : "CodePackage", + "id" : "acm003581jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003582jsd" ] + }, + "acm003582jsd" : { + "type" : "CodePackage", + "id" : "acm003582jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003583jsd" ] + }, + "acm003583jsd" : { + "type" : "CodePackage", + "id" : "acm003583jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003584jsd" ] + }, + "acm003584jsd" : { + "type" : "CodePackage", + "id" : "acm003584jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003579jsd" ] + }, + "acm003585jsd" : { + "type" : "ControlElement", + "id" : "acm003585jsd", + "name" : "UserStatusChanged" + }, + "acm003586jsd" : { + "type" : "ClassUnit", + "id" : "acm003586jsd", + "name" : "UserStatusChanged", + "compilationUnitId" : "acm003579jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003585jsd" ] + }, + "acm003587jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003587jsd", + "name" : "UserUnsharedWebcam", + "parentId" : "acm003345jsd", + "content" : [ "acm003594jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "messaging", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003588jsd" : { + "type" : "CodePackage", + "id" : "acm003588jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003589jsd" ] + }, + "acm003589jsd" : { + "type" : "CodePackage", + "id" : "acm003589jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003590jsd" ] + }, + "acm003590jsd" : { + "type" : "CodePackage", + "id" : "acm003590jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003591jsd" ] + }, + "acm003591jsd" : { + "type" : "CodePackage", + "id" : "acm003591jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm003592jsd" ] + }, + "acm003592jsd" : { + "type" : "CodePackage", + "id" : "acm003592jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm003587jsd" ] + }, + "acm003593jsd" : { + "type" : "ControlElement", + "id" : "acm003593jsd", + "name" : "UserUnsharedWebcam" + }, + "acm003594jsd" : { + "type" : "ClassUnit", + "id" : "acm003594jsd", + "name" : "UserUnsharedWebcam", + "compilationUnitId" : "acm003587jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003410jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003593jsd" ] + }, + "acm003595jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003595jsd", + "name" : "GetChecksumConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003596jsd" : { + "type" : "CodePackage", + "id" : "acm003596jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003597jsd" ] + }, + "acm003597jsd" : { + "type" : "CodePackage", + "id" : "acm003597jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003598jsd" ] + }, + "acm003598jsd" : { + "type" : "CodePackage", + "id" : "acm003598jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003599jsd" ] + }, + "acm003599jsd" : { + "type" : "CodePackage", + "id" : "acm003599jsd", + "name" : "model", + "parentId" : "acm002337jsd", + "content" : [ "acm003600jsd", "acm003727jsd", "acm003868jsd", "acm004143jsd", "acm004210jsd" ] + }, + "acm003600jsd" : { + "type" : "CodePackage", + "id" : "acm003600jsd", + "name" : "constraint", + "parentId" : "acm003599jsd", + "content" : [ "acm003595jsd", "acm003601jsd", "acm003607jsd", "acm003613jsd", "acm003619jsd", "acm003625jsd", "acm003631jsd", "acm003637jsd", "acm003643jsd", "acm003649jsd", "acm003655jsd", "acm003661jsd", "acm003667jsd", "acm003676jsd", "acm003682jsd", "acm003688jsd", "acm003700jsd" ] + }, + "acm003601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003601jsd", + "name" : "GuestPolicyConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003602jsd" : { + "type" : "CodePackage", + "id" : "acm003602jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003603jsd" ] + }, + "acm003603jsd" : { + "type" : "CodePackage", + "id" : "acm003603jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003604jsd" ] + }, + "acm003604jsd" : { + "type" : "CodePackage", + "id" : "acm003604jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003605jsd" ] + }, + "acm003605jsd" : { + "type" : "CodePackage", + "id" : "acm003605jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003606jsd" ] + }, + "acm003606jsd" : { + "type" : "CodePackage", + "id" : "acm003606jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003601jsd" ] + }, + "acm003607jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003607jsd", + "name" : "IsBooleanConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003608jsd" : { + "type" : "CodePackage", + "id" : "acm003608jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003609jsd" ] + }, + "acm003609jsd" : { + "type" : "CodePackage", + "id" : "acm003609jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003610jsd" ] + }, + "acm003610jsd" : { + "type" : "CodePackage", + "id" : "acm003610jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003611jsd" ] + }, + "acm003611jsd" : { + "type" : "CodePackage", + "id" : "acm003611jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003612jsd" ] + }, + "acm003612jsd" : { + "type" : "CodePackage", + "id" : "acm003612jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003607jsd" ] + }, + "acm003613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003613jsd", + "name" : "IsIntegralConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003614jsd" : { + "type" : "CodePackage", + "id" : "acm003614jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003615jsd" ] + }, + "acm003615jsd" : { + "type" : "CodePackage", + "id" : "acm003615jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003616jsd" ] + }, + "acm003616jsd" : { + "type" : "CodePackage", + "id" : "acm003616jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003617jsd" ] + }, + "acm003617jsd" : { + "type" : "CodePackage", + "id" : "acm003617jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003618jsd" ] + }, + "acm003618jsd" : { + "type" : "CodePackage", + "id" : "acm003618jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003613jsd" ] + }, + "acm003619jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003619jsd", + "name" : "JoinPasswordConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003620jsd" : { + "type" : "CodePackage", + "id" : "acm003620jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003621jsd" ] + }, + "acm003621jsd" : { + "type" : "CodePackage", + "id" : "acm003621jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003622jsd" ] + }, + "acm003622jsd" : { + "type" : "CodePackage", + "id" : "acm003622jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003623jsd" ] + }, + "acm003623jsd" : { + "type" : "CodePackage", + "id" : "acm003623jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003624jsd" ] + }, + "acm003624jsd" : { + "type" : "CodePackage", + "id" : "acm003624jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003619jsd" ] + }, + "acm003625jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003625jsd", + "name" : "MeetingEndedConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003626jsd" : { + "type" : "CodePackage", + "id" : "acm003626jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003627jsd" ] + }, + "acm003627jsd" : { + "type" : "CodePackage", + "id" : "acm003627jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003628jsd" ] + }, + "acm003628jsd" : { + "type" : "CodePackage", + "id" : "acm003628jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003629jsd" ] + }, + "acm003629jsd" : { + "type" : "CodePackage", + "id" : "acm003629jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003630jsd" ] + }, + "acm003630jsd" : { + "type" : "CodePackage", + "id" : "acm003630jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003625jsd" ] + }, + "acm003631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003631jsd", + "name" : "MeetingExistsConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003632jsd" : { + "type" : "CodePackage", + "id" : "acm003632jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003633jsd" ] + }, + "acm003633jsd" : { + "type" : "CodePackage", + "id" : "acm003633jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003634jsd" ] + }, + "acm003634jsd" : { + "type" : "CodePackage", + "id" : "acm003634jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003635jsd" ] + }, + "acm003635jsd" : { + "type" : "CodePackage", + "id" : "acm003635jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003636jsd" ] + }, + "acm003636jsd" : { + "type" : "CodePackage", + "id" : "acm003636jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003631jsd" ] + }, + "acm003637jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003637jsd", + "name" : "MeetingIDConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003638jsd" : { + "type" : "CodePackage", + "id" : "acm003638jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003639jsd" ] + }, + "acm003639jsd" : { + "type" : "CodePackage", + "id" : "acm003639jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003640jsd" ] + }, + "acm003640jsd" : { + "type" : "CodePackage", + "id" : "acm003640jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003641jsd" ] + }, + "acm003641jsd" : { + "type" : "CodePackage", + "id" : "acm003641jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003642jsd" ] + }, + "acm003642jsd" : { + "type" : "CodePackage", + "id" : "acm003642jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003637jsd" ] + }, + "acm003643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003643jsd", + "name" : "MeetingNameConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003644jsd" : { + "type" : "CodePackage", + "id" : "acm003644jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003645jsd" ] + }, + "acm003645jsd" : { + "type" : "CodePackage", + "id" : "acm003645jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003646jsd" ] + }, + "acm003646jsd" : { + "type" : "CodePackage", + "id" : "acm003646jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003647jsd" ] + }, + "acm003647jsd" : { + "type" : "CodePackage", + "id" : "acm003647jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003648jsd" ] + }, + "acm003648jsd" : { + "type" : "CodePackage", + "id" : "acm003648jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003643jsd" ] + }, + "acm003649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003649jsd", + "name" : "NotEmpty", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003650jsd" : { + "type" : "CodePackage", + "id" : "acm003650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003651jsd" ] + }, + "acm003651jsd" : { + "type" : "CodePackage", + "id" : "acm003651jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003652jsd" ] + }, + "acm003652jsd" : { + "type" : "CodePackage", + "id" : "acm003652jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003653jsd" ] + }, + "acm003653jsd" : { + "type" : "CodePackage", + "id" : "acm003653jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003654jsd" ] + }, + "acm003654jsd" : { + "type" : "CodePackage", + "id" : "acm003654jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003649jsd" ] + }, + "acm003655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003655jsd", + "name" : "NotNull", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003656jsd" : { + "type" : "CodePackage", + "id" : "acm003656jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003657jsd" ] + }, + "acm003657jsd" : { + "type" : "CodePackage", + "id" : "acm003657jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003658jsd" ] + }, + "acm003658jsd" : { + "type" : "CodePackage", + "id" : "acm003658jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003659jsd" ] + }, + "acm003659jsd" : { + "type" : "CodePackage", + "id" : "acm003659jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003660jsd" ] + }, + "acm003660jsd" : { + "type" : "CodePackage", + "id" : "acm003660jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003655jsd" ] + }, + "acm003661jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003661jsd", + "name" : "PasswordConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003662jsd" : { + "type" : "CodePackage", + "id" : "acm003662jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003663jsd" ] + }, + "acm003663jsd" : { + "type" : "CodePackage", + "id" : "acm003663jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003664jsd" ] + }, + "acm003664jsd" : { + "type" : "CodePackage", + "id" : "acm003664jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003665jsd" ] + }, + "acm003665jsd" : { + "type" : "CodePackage", + "id" : "acm003665jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003666jsd" ] + }, + "acm003666jsd" : { + "type" : "CodePackage", + "id" : "acm003666jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003661jsd" ] + }, + "acm003667jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003667jsd", + "name" : "Pattern", + "parentId" : "acm003600jsd", + "content" : [ "acm003675jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003668jsd" : { + "type" : "CodePackage", + "id" : "acm003668jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003669jsd" ] + }, + "acm003669jsd" : { + "type" : "CodePackage", + "id" : "acm003669jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003670jsd" ] + }, + "acm003670jsd" : { + "type" : "CodePackage", + "id" : "acm003670jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003671jsd" ] + }, + "acm003671jsd" : { + "type" : "CodePackage", + "id" : "acm003671jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003672jsd" ] + }, + "acm003672jsd" : { + "type" : "CodePackage", + "id" : "acm003672jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003667jsd" ] + }, + "acm003673jsd" : { + "type" : "ControlElement", + "id" : "acm003673jsd", + "name" : "Flag" + }, + "acm003674jsd" : { + "type" : "ControlElement", + "id" : "acm003674jsd", + "name" : "getValue" + }, + "acm003675jsd" : { + "type" : "ClassUnit", + "id" : "acm003675jsd", + "name" : "Flag", + "compilationUnitId" : "acm003667jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003673jsd", "acm003674jsd" ] + }, + "acm003676jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003676jsd", + "name" : "PostChecksumConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003677jsd" : { + "type" : "CodePackage", + "id" : "acm003677jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003678jsd" ] + }, + "acm003678jsd" : { + "type" : "CodePackage", + "id" : "acm003678jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003679jsd" ] + }, + "acm003679jsd" : { + "type" : "CodePackage", + "id" : "acm003679jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003680jsd" ] + }, + "acm003680jsd" : { + "type" : "CodePackage", + "id" : "acm003680jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003681jsd" ] + }, + "acm003681jsd" : { + "type" : "CodePackage", + "id" : "acm003681jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003676jsd" ] + }, + "acm003682jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003682jsd", + "name" : "Size", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003683jsd" : { + "type" : "CodePackage", + "id" : "acm003683jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003684jsd" ] + }, + "acm003684jsd" : { + "type" : "CodePackage", + "id" : "acm003684jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003685jsd" ] + }, + "acm003685jsd" : { + "type" : "CodePackage", + "id" : "acm003685jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003686jsd" ] + }, + "acm003686jsd" : { + "type" : "CodePackage", + "id" : "acm003686jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003687jsd" ] + }, + "acm003687jsd" : { + "type" : "CodePackage", + "id" : "acm003687jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003682jsd" ] + }, + "acm003688jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003688jsd", + "name" : "UserSessionConstraint", + "parentId" : "acm003600jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003689jsd" : { + "type" : "CodePackage", + "id" : "acm003689jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003690jsd" ] + }, + "acm003690jsd" : { + "type" : "CodePackage", + "id" : "acm003690jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003691jsd" ] + }, + "acm003691jsd" : { + "type" : "CodePackage", + "id" : "acm003691jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003692jsd" ] + }, + "acm003692jsd" : { + "type" : "CodePackage", + "id" : "acm003692jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003693jsd" ] + }, + "acm003693jsd" : { + "type" : "CodePackage", + "id" : "acm003693jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003688jsd" ] + }, + "acm003694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003694jsd", + "name" : "NotEmptyList", + "parentId" : "acm003700jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint", "list" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003695jsd" : { + "type" : "CodePackage", + "id" : "acm003695jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003696jsd" ] + }, + "acm003696jsd" : { + "type" : "CodePackage", + "id" : "acm003696jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003697jsd" ] + }, + "acm003697jsd" : { + "type" : "CodePackage", + "id" : "acm003697jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003698jsd" ] + }, + "acm003698jsd" : { + "type" : "CodePackage", + "id" : "acm003698jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003699jsd" ] + }, + "acm003699jsd" : { + "type" : "CodePackage", + "id" : "acm003699jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003700jsd" ] + }, + "acm003700jsd" : { + "type" : "CodePackage", + "id" : "acm003700jsd", + "name" : "list", + "parentId" : "acm003600jsd", + "content" : [ "acm003694jsd", "acm003701jsd", "acm003708jsd", "acm003715jsd" ] + }, + "acm003701jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003701jsd", + "name" : "NotNullList", + "parentId" : "acm003700jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint", "list" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003702jsd" : { + "type" : "CodePackage", + "id" : "acm003702jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003703jsd" ] + }, + "acm003703jsd" : { + "type" : "CodePackage", + "id" : "acm003703jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003704jsd" ] + }, + "acm003704jsd" : { + "type" : "CodePackage", + "id" : "acm003704jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003705jsd" ] + }, + "acm003705jsd" : { + "type" : "CodePackage", + "id" : "acm003705jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003706jsd" ] + }, + "acm003706jsd" : { + "type" : "CodePackage", + "id" : "acm003706jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003707jsd" ] + }, + "acm003707jsd" : { + "type" : "CodePackage", + "id" : "acm003707jsd", + "name" : "list", + "parentId" : null, + "content" : [ "acm003701jsd" ] + }, + "acm003708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003708jsd", + "name" : "PatternList", + "parentId" : "acm003700jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint", "list" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003709jsd" : { + "type" : "CodePackage", + "id" : "acm003709jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003710jsd" ] + }, + "acm003710jsd" : { + "type" : "CodePackage", + "id" : "acm003710jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003711jsd" ] + }, + "acm003711jsd" : { + "type" : "CodePackage", + "id" : "acm003711jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003712jsd" ] + }, + "acm003712jsd" : { + "type" : "CodePackage", + "id" : "acm003712jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003713jsd" ] + }, + "acm003713jsd" : { + "type" : "CodePackage", + "id" : "acm003713jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003714jsd" ] + }, + "acm003714jsd" : { + "type" : "CodePackage", + "id" : "acm003714jsd", + "name" : "list", + "parentId" : null, + "content" : [ "acm003708jsd" ] + }, + "acm003715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003715jsd", + "name" : "SizeList", + "parentId" : "acm003700jsd", + "content" : [ ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "constraint", "list" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003716jsd" : { + "type" : "CodePackage", + "id" : "acm003716jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003717jsd" ] + }, + "acm003717jsd" : { + "type" : "CodePackage", + "id" : "acm003717jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003718jsd" ] + }, + "acm003718jsd" : { + "type" : "CodePackage", + "id" : "acm003718jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003719jsd" ] + }, + "acm003719jsd" : { + "type" : "CodePackage", + "id" : "acm003719jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003720jsd" ] + }, + "acm003720jsd" : { + "type" : "CodePackage", + "id" : "acm003720jsd", + "name" : "constraint", + "parentId" : null, + "content" : [ "acm003721jsd" ] + }, + "acm003721jsd" : { + "type" : "CodePackage", + "id" : "acm003721jsd", + "name" : "list", + "parentId" : null, + "content" : [ "acm003715jsd" ] + }, + "acm003722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003722jsd", + "name" : "CallbackData", + "parentId" : "acm003727jsd", + "content" : [ "acm003744jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003723jsd" : { + "type" : "CodePackage", + "id" : "acm003723jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003724jsd" ] + }, + "acm003724jsd" : { + "type" : "CodePackage", + "id" : "acm003724jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003725jsd" ] + }, + "acm003725jsd" : { + "type" : "CodePackage", + "id" : "acm003725jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003726jsd" ] + }, + "acm003726jsd" : { + "type" : "CodePackage", + "id" : "acm003726jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003727jsd" ] + }, + "acm003727jsd" : { + "type" : "CodePackage", + "id" : "acm003727jsd", + "name" : "entity", + "parentId" : "acm003599jsd", + "content" : [ "acm003722jsd", "acm003745jsd", "acm003764jsd", "acm003790jsd", "acm003837jsd" ] + }, + "acm003728jsd" : { + "type" : "ControlElement", + "id" : "acm003728jsd", + "name" : "getId" + }, + "acm003729jsd" : { + "type" : "ControlElement", + "id" : "acm003729jsd", + "name" : "setId" + }, + "acm003730jsd" : { + "type" : "ControlElement", + "id" : "acm003730jsd", + "name" : "getMeetingId" + }, + "acm003731jsd" : { + "type" : "ControlElement", + "id" : "acm003731jsd", + "name" : "setMeetingId" + }, + "acm003732jsd" : { + "type" : "ControlElement", + "id" : "acm003732jsd", + "name" : "getCallbackAttributes" + }, + "acm003733jsd" : { + "type" : "ControlElement", + "id" : "acm003733jsd", + "name" : "setCallbackAttributes" + }, + "acm003734jsd" : { + "type" : "ControlElement", + "id" : "acm003734jsd", + "name" : "getCreatedAt" + }, + "acm003735jsd" : { + "type" : "ControlElement", + "id" : "acm003735jsd", + "name" : "setCreatedAt" + }, + "acm003736jsd" : { + "type" : "ControlElement", + "id" : "acm003736jsd", + "name" : "getUpdatedAt" + }, + "acm003737jsd" : { + "type" : "ControlElement", + "id" : "acm003737jsd", + "name" : "setUpdatedAt" + }, + "acm003738jsd" : { + "type" : "ControlElement", + "id" : "acm003738jsd", + "name" : "getRecording" + }, + "acm003739jsd" : { + "type" : "ControlElement", + "id" : "acm003739jsd", + "name" : "setRecording" + }, + "acm003740jsd" : { + "type" : "ControlElement", + "id" : "acm003740jsd", + "name" : "equals" + }, + "acm003741jsd" : { + "type" : "ControlElement", + "id" : "acm003741jsd", + "name" : "hashCode" + }, + "acm003742jsd" : { + "type" : "ControlElement", + "id" : "acm003742jsd", + "name" : "toString" + }, + "acm003743jsd" : { + "type" : "ControlElement", + "id" : "acm003743jsd", + "name" : "toIndentedString" + }, + "acm003744jsd" : { + "type" : "ClassUnit", + "id" : "acm003744jsd", + "name" : "CallbackData", + "compilationUnitId" : "acm003722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003744jsd", "acm003833jsd" ], + "content" : [ "acm003728jsd", "acm003729jsd", "acm003730jsd", "acm003731jsd", "acm003732jsd", "acm003733jsd", "acm003734jsd", "acm003735jsd", "acm003736jsd", "acm003737jsd", "acm003738jsd", "acm003739jsd", "acm003740jsd", "acm003741jsd", "acm003742jsd", "acm003743jsd" ] + }, + "acm003745jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003745jsd", + "name" : "Metadata", + "parentId" : "acm003727jsd", + "content" : [ "acm003763jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003746jsd" : { + "type" : "CodePackage", + "id" : "acm003746jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003747jsd" ] + }, + "acm003747jsd" : { + "type" : "CodePackage", + "id" : "acm003747jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003748jsd" ] + }, + "acm003748jsd" : { + "type" : "CodePackage", + "id" : "acm003748jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003749jsd" ] + }, + "acm003749jsd" : { + "type" : "CodePackage", + "id" : "acm003749jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003750jsd" ] + }, + "acm003750jsd" : { + "type" : "CodePackage", + "id" : "acm003750jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm003745jsd" ] + }, + "acm003751jsd" : { + "type" : "ControlElement", + "id" : "acm003751jsd", + "name" : "getId" + }, + "acm003752jsd" : { + "type" : "ControlElement", + "id" : "acm003752jsd", + "name" : "setId" + }, + "acm003753jsd" : { + "type" : "ControlElement", + "id" : "acm003753jsd", + "name" : "getKey" + }, + "acm003754jsd" : { + "type" : "ControlElement", + "id" : "acm003754jsd", + "name" : "setKey" + }, + "acm003755jsd" : { + "type" : "ControlElement", + "id" : "acm003755jsd", + "name" : "getValue" + }, + "acm003756jsd" : { + "type" : "ControlElement", + "id" : "acm003756jsd", + "name" : "setValue" + }, + "acm003757jsd" : { + "type" : "ControlElement", + "id" : "acm003757jsd", + "name" : "getRecording" + }, + "acm003758jsd" : { + "type" : "ControlElement", + "id" : "acm003758jsd", + "name" : "setRecording" + }, + "acm003759jsd" : { + "type" : "ControlElement", + "id" : "acm003759jsd", + "name" : "equals" + }, + "acm003760jsd" : { + "type" : "ControlElement", + "id" : "acm003760jsd", + "name" : "hashCode" + }, + "acm003761jsd" : { + "type" : "ControlElement", + "id" : "acm003761jsd", + "name" : "toString" + }, + "acm003762jsd" : { + "type" : "ControlElement", + "id" : "acm003762jsd", + "name" : "toIndentedString" + }, + "acm003763jsd" : { + "type" : "ClassUnit", + "id" : "acm003763jsd", + "name" : "Metadata", + "compilationUnitId" : "acm003745jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003763jsd", "acm003833jsd" ], + "content" : [ "acm003751jsd", "acm003752jsd", "acm003753jsd", "acm003754jsd", "acm003755jsd", "acm003756jsd", "acm003757jsd", "acm003758jsd", "acm003759jsd", "acm003760jsd", "acm003761jsd", "acm003762jsd" ] + }, + "acm003764jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003764jsd", + "name" : "PlaybackFormat", + "parentId" : "acm003727jsd", + "content" : [ "acm003789jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003765jsd" : { + "type" : "CodePackage", + "id" : "acm003765jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003766jsd" ] + }, + "acm003766jsd" : { + "type" : "CodePackage", + "id" : "acm003766jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003767jsd" ] + }, + "acm003767jsd" : { + "type" : "CodePackage", + "id" : "acm003767jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003768jsd" ] + }, + "acm003768jsd" : { + "type" : "CodePackage", + "id" : "acm003768jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003769jsd" ] + }, + "acm003769jsd" : { + "type" : "CodePackage", + "id" : "acm003769jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm003764jsd" ] + }, + "acm003770jsd" : { + "type" : "ControlElement", + "id" : "acm003770jsd", + "name" : "getId" + }, + "acm003771jsd" : { + "type" : "ControlElement", + "id" : "acm003771jsd", + "name" : "setId" + }, + "acm003772jsd" : { + "type" : "ControlElement", + "id" : "acm003772jsd", + "name" : "getFormat" + }, + "acm003773jsd" : { + "type" : "ControlElement", + "id" : "acm003773jsd", + "name" : "setFormat" + }, + "acm003774jsd" : { + "type" : "ControlElement", + "id" : "acm003774jsd", + "name" : "getUrl" + }, + "acm003775jsd" : { + "type" : "ControlElement", + "id" : "acm003775jsd", + "name" : "setUrl" + }, + "acm003776jsd" : { + "type" : "ControlElement", + "id" : "acm003776jsd", + "name" : "getLength" + }, + "acm003777jsd" : { + "type" : "ControlElement", + "id" : "acm003777jsd", + "name" : "setLength" + }, + "acm003778jsd" : { + "type" : "ControlElement", + "id" : "acm003778jsd", + "name" : "getProcessingTime" + }, + "acm003779jsd" : { + "type" : "ControlElement", + "id" : "acm003779jsd", + "name" : "setProcessingTime" + }, + "acm003780jsd" : { + "type" : "ControlElement", + "id" : "acm003780jsd", + "name" : "getRecording" + }, + "acm003781jsd" : { + "type" : "ControlElement", + "id" : "acm003781jsd", + "name" : "setRecording" + }, + "acm003782jsd" : { + "type" : "ControlElement", + "id" : "acm003782jsd", + "name" : "getThumbnails" + }, + "acm003783jsd" : { + "type" : "ControlElement", + "id" : "acm003783jsd", + "name" : "setThumbnails" + }, + "acm003784jsd" : { + "type" : "ControlElement", + "id" : "acm003784jsd", + "name" : "addThumbnail" + }, + "acm003785jsd" : { + "type" : "ControlElement", + "id" : "acm003785jsd", + "name" : "equals" + }, + "acm003786jsd" : { + "type" : "ControlElement", + "id" : "acm003786jsd", + "name" : "hashCode" + }, + "acm003787jsd" : { + "type" : "ControlElement", + "id" : "acm003787jsd", + "name" : "toString" + }, + "acm003788jsd" : { + "type" : "ControlElement", + "id" : "acm003788jsd", + "name" : "toIndentedString" + }, + "acm003789jsd" : { + "type" : "ClassUnit", + "id" : "acm003789jsd", + "name" : "PlaybackFormat", + "compilationUnitId" : "acm003764jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003789jsd", "acm003833jsd", "acm003862jsd" ], + "content" : [ "acm003770jsd", "acm003771jsd", "acm003772jsd", "acm003773jsd", "acm003774jsd", "acm003775jsd", "acm003776jsd", "acm003777jsd", "acm003778jsd", "acm003779jsd", "acm003780jsd", "acm003781jsd", "acm003782jsd", "acm003783jsd", "acm003784jsd", "acm003785jsd", "acm003786jsd", "acm003787jsd", "acm003788jsd" ] + }, + "acm003790jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003790jsd", + "name" : "Recording", + "parentId" : "acm003727jsd", + "content" : [ "acm003833jsd", "acm003836jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003791jsd" : { + "type" : "CodePackage", + "id" : "acm003791jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003792jsd" ] + }, + "acm003792jsd" : { + "type" : "CodePackage", + "id" : "acm003792jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003793jsd" ] + }, + "acm003793jsd" : { + "type" : "CodePackage", + "id" : "acm003793jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003794jsd" ] + }, + "acm003794jsd" : { + "type" : "CodePackage", + "id" : "acm003794jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003795jsd" ] + }, + "acm003795jsd" : { + "type" : "CodePackage", + "id" : "acm003795jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm003790jsd" ] + }, + "acm003796jsd" : { + "type" : "ControlElement", + "id" : "acm003796jsd", + "name" : "State" + }, + "acm003797jsd" : { + "type" : "ControlElement", + "id" : "acm003797jsd", + "name" : "getValue" + }, + "acm003798jsd" : { + "type" : "ControlElement", + "id" : "acm003798jsd", + "name" : "getId" + }, + "acm003799jsd" : { + "type" : "ControlElement", + "id" : "acm003799jsd", + "name" : "setId" + }, + "acm003800jsd" : { + "type" : "ControlElement", + "id" : "acm003800jsd", + "name" : "getRecordId" + }, + "acm003801jsd" : { + "type" : "ControlElement", + "id" : "acm003801jsd", + "name" : "setRecordId" + }, + "acm003802jsd" : { + "type" : "ControlElement", + "id" : "acm003802jsd", + "name" : "getMeetingId" + }, + "acm003803jsd" : { + "type" : "ControlElement", + "id" : "acm003803jsd", + "name" : "setMeetingId" + }, + "acm003804jsd" : { + "type" : "ControlElement", + "id" : "acm003804jsd", + "name" : "getName" + }, + "acm003805jsd" : { + "type" : "ControlElement", + "id" : "acm003805jsd", + "name" : "setName" + }, + "acm003806jsd" : { + "type" : "ControlElement", + "id" : "acm003806jsd", + "name" : "getPublished" + }, + "acm003807jsd" : { + "type" : "ControlElement", + "id" : "acm003807jsd", + "name" : "setPublished" + }, + "acm003808jsd" : { + "type" : "ControlElement", + "id" : "acm003808jsd", + "name" : "getParticipants" + }, + "acm003809jsd" : { + "type" : "ControlElement", + "id" : "acm003809jsd", + "name" : "setParticipants" + }, + "acm003810jsd" : { + "type" : "ControlElement", + "id" : "acm003810jsd", + "name" : "getState" + }, + "acm003811jsd" : { + "type" : "ControlElement", + "id" : "acm003811jsd", + "name" : "setState" + }, + "acm003812jsd" : { + "type" : "ControlElement", + "id" : "acm003812jsd", + "name" : "getStartTime" + }, + "acm003813jsd" : { + "type" : "ControlElement", + "id" : "acm003813jsd", + "name" : "setStartTime" + }, + "acm003814jsd" : { + "type" : "ControlElement", + "id" : "acm003814jsd", + "name" : "getEndTime" + }, + "acm003815jsd" : { + "type" : "ControlElement", + "id" : "acm003815jsd", + "name" : "setEndTime" + }, + "acm003816jsd" : { + "type" : "ControlElement", + "id" : "acm003816jsd", + "name" : "getDeletedAt" + }, + "acm003817jsd" : { + "type" : "ControlElement", + "id" : "acm003817jsd", + "name" : "setDeletedAt" + }, + "acm003818jsd" : { + "type" : "ControlElement", + "id" : "acm003818jsd", + "name" : "getPublishUpdated" + }, + "acm003819jsd" : { + "type" : "ControlElement", + "id" : "acm003819jsd", + "name" : "setPublishUpdated" + }, + "acm003820jsd" : { + "type" : "ControlElement", + "id" : "acm003820jsd", + "name" : "getProtected" + }, + "acm003821jsd" : { + "type" : "ControlElement", + "id" : "acm003821jsd", + "name" : "setProtected" + }, + "acm003822jsd" : { + "type" : "ControlElement", + "id" : "acm003822jsd", + "name" : "getMetadata" + }, + "acm003823jsd" : { + "type" : "ControlElement", + "id" : "acm003823jsd", + "name" : "setMetadata" + }, + "acm003824jsd" : { + "type" : "ControlElement", + "id" : "acm003824jsd", + "name" : "addMetadata" + }, + "acm003825jsd" : { + "type" : "ControlElement", + "id" : "acm003825jsd", + "name" : "getFormat" + }, + "acm003826jsd" : { + "type" : "ControlElement", + "id" : "acm003826jsd", + "name" : "setFormat" + }, + "acm003827jsd" : { + "type" : "ControlElement", + "id" : "acm003827jsd", + "name" : "getCallbackData" + }, + "acm003828jsd" : { + "type" : "ControlElement", + "id" : "acm003828jsd", + "name" : "setCallbackData" + }, + "acm003829jsd" : { + "type" : "ControlElement", + "id" : "acm003829jsd", + "name" : "equals" + }, + "acm003830jsd" : { + "type" : "ControlElement", + "id" : "acm003830jsd", + "name" : "hashCode" + }, + "acm003831jsd" : { + "type" : "ControlElement", + "id" : "acm003831jsd", + "name" : "toString" + }, + "acm003832jsd" : { + "type" : "ControlElement", + "id" : "acm003832jsd", + "name" : "toIndentedString" + }, + "acm003833jsd" : { + "type" : "ClassUnit", + "id" : "acm003833jsd", + "name" : "Recording", + "compilationUnitId" : "acm003790jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003744jsd", "acm003763jsd", "acm003789jsd", "acm003833jsd" ], + "content" : [ "acm003796jsd", "acm003797jsd", "acm003798jsd", "acm003799jsd", "acm003800jsd", "acm003801jsd", "acm003802jsd", "acm003803jsd", "acm003804jsd", "acm003805jsd", "acm003806jsd", "acm003807jsd", "acm003808jsd", "acm003809jsd", "acm003810jsd", "acm003811jsd", "acm003812jsd", "acm003813jsd", "acm003814jsd", "acm003815jsd", "acm003816jsd", "acm003817jsd", "acm003818jsd", "acm003819jsd", "acm003820jsd", "acm003821jsd", "acm003822jsd", "acm003823jsd", "acm003824jsd", "acm003825jsd", "acm003826jsd", "acm003827jsd", "acm003828jsd", "acm003829jsd", "acm003830jsd", "acm003831jsd", "acm003832jsd" ] + }, + "acm003834jsd" : { + "type" : "ControlElement", + "id" : "acm003834jsd", + "name" : "State" + }, + "acm003835jsd" : { + "type" : "ControlElement", + "id" : "acm003835jsd", + "name" : "getValue" + }, + "acm003836jsd" : { + "type" : "ClassUnit", + "id" : "acm003836jsd", + "name" : "State", + "compilationUnitId" : "acm003790jsd", + "parentDatatypeId" : "acm003833jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003834jsd", "acm003835jsd" ] + }, + "acm003837jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003837jsd", + "name" : "Thumbnail", + "parentId" : "acm003727jsd", + "content" : [ "acm003862jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003838jsd" : { + "type" : "CodePackage", + "id" : "acm003838jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003839jsd" ] + }, + "acm003839jsd" : { + "type" : "CodePackage", + "id" : "acm003839jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003840jsd" ] + }, + "acm003840jsd" : { + "type" : "CodePackage", + "id" : "acm003840jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003841jsd" ] + }, + "acm003841jsd" : { + "type" : "CodePackage", + "id" : "acm003841jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003842jsd" ] + }, + "acm003842jsd" : { + "type" : "CodePackage", + "id" : "acm003842jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm003837jsd" ] + }, + "acm003843jsd" : { + "type" : "ControlElement", + "id" : "acm003843jsd", + "name" : "getId" + }, + "acm003844jsd" : { + "type" : "ControlElement", + "id" : "acm003844jsd", + "name" : "setId" + }, + "acm003845jsd" : { + "type" : "ControlElement", + "id" : "acm003845jsd", + "name" : "getPlaybackFormat" + }, + "acm003846jsd" : { + "type" : "ControlElement", + "id" : "acm003846jsd", + "name" : "setPlaybackFormat" + }, + "acm003847jsd" : { + "type" : "ControlElement", + "id" : "acm003847jsd", + "name" : "getHeight" + }, + "acm003848jsd" : { + "type" : "ControlElement", + "id" : "acm003848jsd", + "name" : "setHeight" + }, + "acm003849jsd" : { + "type" : "ControlElement", + "id" : "acm003849jsd", + "name" : "getWidth" + }, + "acm003850jsd" : { + "type" : "ControlElement", + "id" : "acm003850jsd", + "name" : "setWidth" + }, + "acm003851jsd" : { + "type" : "ControlElement", + "id" : "acm003851jsd", + "name" : "getAlt" + }, + "acm003852jsd" : { + "type" : "ControlElement", + "id" : "acm003852jsd", + "name" : "setAlt" + }, + "acm003853jsd" : { + "type" : "ControlElement", + "id" : "acm003853jsd", + "name" : "getUrl" + }, + "acm003854jsd" : { + "type" : "ControlElement", + "id" : "acm003854jsd", + "name" : "setUrl" + }, + "acm003855jsd" : { + "type" : "ControlElement", + "id" : "acm003855jsd", + "name" : "getSequence" + }, + "acm003856jsd" : { + "type" : "ControlElement", + "id" : "acm003856jsd", + "name" : "setSequence" + }, + "acm003857jsd" : { + "type" : "ControlElement", + "id" : "acm003857jsd", + "name" : "equals" + }, + "acm003858jsd" : { + "type" : "ControlElement", + "id" : "acm003858jsd", + "name" : "hashCode" + }, + "acm003859jsd" : { + "type" : "ControlElement", + "id" : "acm003859jsd", + "name" : "compareTo" + }, + "acm003860jsd" : { + "type" : "ControlElement", + "id" : "acm003860jsd", + "name" : "toString" + }, + "acm003861jsd" : { + "type" : "ControlElement", + "id" : "acm003861jsd", + "name" : "toIndentedString" + }, + "acm003862jsd" : { + "type" : "ClassUnit", + "id" : "acm003862jsd", + "name" : "Thumbnail", + "compilationUnitId" : "acm003837jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003789jsd", "acm003862jsd" ], + "content" : [ "acm003843jsd", "acm003844jsd", "acm003845jsd", "acm003846jsd", "acm003847jsd", "acm003848jsd", "acm003849jsd", "acm003850jsd", "acm003851jsd", "acm003852jsd", "acm003853jsd", "acm003854jsd", "acm003855jsd", "acm003856jsd", "acm003857jsd", "acm003858jsd", "acm003859jsd", "acm003860jsd", "acm003861jsd" ] + }, + "acm003863jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003863jsd", + "name" : "CreateMeeting", + "parentId" : "acm003868jsd", + "content" : [ "acm003892jsd", "acm003895jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003864jsd" : { + "type" : "CodePackage", + "id" : "acm003864jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003865jsd" ] + }, + "acm003865jsd" : { + "type" : "CodePackage", + "id" : "acm003865jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003866jsd" ] + }, + "acm003866jsd" : { + "type" : "CodePackage", + "id" : "acm003866jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003867jsd" ] + }, + "acm003867jsd" : { + "type" : "CodePackage", + "id" : "acm003867jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003868jsd" ] + }, + "acm003868jsd" : { + "type" : "CodePackage", + "id" : "acm003868jsd", + "name" : "request", + "parentId" : "acm003599jsd", + "content" : [ "acm003863jsd", "acm003896jsd", "acm003914jsd", "acm003931jsd", "acm003947jsd", "acm003964jsd", "acm003980jsd", "acm004014jsd", "acm004030jsd", "acm004046jsd", "acm004062jsd", "acm004071jsd", "acm004079jsd", "acm004091jsd", "acm004107jsd", "acm004121jsd" ] + }, + "acm003869jsd" : { + "type" : "ControlElement", + "id" : "acm003869jsd", + "name" : "Params" + }, + "acm003870jsd" : { + "type" : "ControlElement", + "id" : "acm003870jsd", + "name" : "getValue" + }, + "acm003871jsd" : { + "type" : "ControlElement", + "id" : "acm003871jsd", + "name" : "CreateMeeting" + }, + "acm003872jsd" : { + "type" : "ControlElement", + "id" : "acm003872jsd", + "name" : "getName" + }, + "acm003873jsd" : { + "type" : "ControlElement", + "id" : "acm003873jsd", + "name" : "setName" + }, + "acm003874jsd" : { + "type" : "ControlElement", + "id" : "acm003874jsd", + "name" : "getMeetingID" + }, + "acm003875jsd" : { + "type" : "ControlElement", + "id" : "acm003875jsd", + "name" : "setMeetingID" + }, + "acm003876jsd" : { + "type" : "ControlElement", + "id" : "acm003876jsd", + "name" : "getVoiceBridgeString" + }, + "acm003877jsd" : { + "type" : "ControlElement", + "id" : "acm003877jsd", + "name" : "setVoiceBridgeString" + }, + "acm003878jsd" : { + "type" : "ControlElement", + "id" : "acm003878jsd", + "name" : "getVoiceBridge" + }, + "acm003879jsd" : { + "type" : "ControlElement", + "id" : "acm003879jsd", + "name" : "setVoiceBridge" + }, + "acm003880jsd" : { + "type" : "ControlElement", + "id" : "acm003880jsd", + "name" : "getAttendeePW" + }, + "acm003881jsd" : { + "type" : "ControlElement", + "id" : "acm003881jsd", + "name" : "setAttendeePW" + }, + "acm003882jsd" : { + "type" : "ControlElement", + "id" : "acm003882jsd", + "name" : "getModeratorPW" + }, + "acm003883jsd" : { + "type" : "ControlElement", + "id" : "acm003883jsd", + "name" : "setModeratorPW" + }, + "acm003884jsd" : { + "type" : "ControlElement", + "id" : "acm003884jsd", + "name" : "setBreakoutRoomString" + }, + "acm003885jsd" : { + "type" : "ControlElement", + "id" : "acm003885jsd", + "name" : "isBreakoutRoom" + }, + "acm003886jsd" : { + "type" : "ControlElement", + "id" : "acm003886jsd", + "name" : "setBreakoutRoom" + }, + "acm003887jsd" : { + "type" : "ControlElement", + "id" : "acm003887jsd", + "name" : "setRecordString" + }, + "acm003888jsd" : { + "type" : "ControlElement", + "id" : "acm003888jsd", + "name" : "isRecord" + }, + "acm003889jsd" : { + "type" : "ControlElement", + "id" : "acm003889jsd", + "name" : "setRecord" + }, + "acm003890jsd" : { + "type" : "ControlElement", + "id" : "acm003890jsd", + "name" : "populateFromParamsMap" + }, + "acm003891jsd" : { + "type" : "ControlElement", + "id" : "acm003891jsd", + "name" : "convertParamsFromString" + }, + "acm003892jsd" : { + "type" : "ClassUnit", + "id" : "acm003892jsd", + "name" : "CreateMeeting", + "compilationUnitId" : "acm003863jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd" ], + "content" : [ "acm003869jsd", "acm003870jsd", "acm003871jsd", "acm003872jsd", "acm003873jsd", "acm003874jsd", "acm003875jsd", "acm003876jsd", "acm003877jsd", "acm003878jsd", "acm003879jsd", "acm003880jsd", "acm003881jsd", "acm003882jsd", "acm003883jsd", "acm003884jsd", "acm003885jsd", "acm003886jsd", "acm003887jsd", "acm003888jsd", "acm003889jsd", "acm003890jsd", "acm003891jsd" ] + }, + "acm003893jsd" : { + "type" : "ControlElement", + "id" : "acm003893jsd", + "name" : "Params" + }, + "acm003894jsd" : { + "type" : "ControlElement", + "id" : "acm003894jsd", + "name" : "getValue" + }, + "acm003895jsd" : { + "type" : "ClassUnit", + "id" : "acm003895jsd", + "name" : "Params", + "compilationUnitId" : "acm003863jsd", + "parentDatatypeId" : "acm003892jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003893jsd", "acm003894jsd" ] + }, + "acm003896jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003896jsd", + "name" : "EndMeeting", + "parentId" : "acm003868jsd", + "content" : [ "acm003910jsd", "acm003913jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003897jsd" : { + "type" : "CodePackage", + "id" : "acm003897jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003898jsd" ] + }, + "acm003898jsd" : { + "type" : "CodePackage", + "id" : "acm003898jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003899jsd" ] + }, + "acm003899jsd" : { + "type" : "CodePackage", + "id" : "acm003899jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003900jsd" ] + }, + "acm003900jsd" : { + "type" : "CodePackage", + "id" : "acm003900jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003901jsd" ] + }, + "acm003901jsd" : { + "type" : "CodePackage", + "id" : "acm003901jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003896jsd" ] + }, + "acm003902jsd" : { + "type" : "ControlElement", + "id" : "acm003902jsd", + "name" : "Params" + }, + "acm003903jsd" : { + "type" : "ControlElement", + "id" : "acm003903jsd", + "name" : "getValue" + }, + "acm003904jsd" : { + "type" : "ControlElement", + "id" : "acm003904jsd", + "name" : "EndMeeting" + }, + "acm003905jsd" : { + "type" : "ControlElement", + "id" : "acm003905jsd", + "name" : "getMeetingID" + }, + "acm003906jsd" : { + "type" : "ControlElement", + "id" : "acm003906jsd", + "name" : "setMeetingID" + }, + "acm003907jsd" : { + "type" : "ControlElement", + "id" : "acm003907jsd", + "name" : "getPassword" + }, + "acm003908jsd" : { + "type" : "ControlElement", + "id" : "acm003908jsd", + "name" : "setPassword" + }, + "acm003909jsd" : { + "type" : "ControlElement", + "id" : "acm003909jsd", + "name" : "populateFromParamsMap" + }, + "acm003910jsd" : { + "type" : "ClassUnit", + "id" : "acm003910jsd", + "name" : "EndMeeting", + "compilationUnitId" : "acm003896jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd", "acm004183jsd", "acm004194jsd" ], + "content" : [ "acm003902jsd", "acm003903jsd", "acm003904jsd", "acm003905jsd", "acm003906jsd", "acm003907jsd", "acm003908jsd", "acm003909jsd" ] + }, + "acm003911jsd" : { + "type" : "ControlElement", + "id" : "acm003911jsd", + "name" : "Params" + }, + "acm003912jsd" : { + "type" : "ControlElement", + "id" : "acm003912jsd", + "name" : "getValue" + }, + "acm003913jsd" : { + "type" : "ClassUnit", + "id" : "acm003913jsd", + "name" : "Params", + "compilationUnitId" : "acm003896jsd", + "parentDatatypeId" : "acm003910jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003911jsd", "acm003912jsd" ] + }, + "acm003914jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003914jsd", + "name" : "Enter", + "parentId" : "acm003868jsd", + "content" : [ "acm003927jsd", "acm003930jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003915jsd" : { + "type" : "CodePackage", + "id" : "acm003915jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003916jsd" ] + }, + "acm003916jsd" : { + "type" : "CodePackage", + "id" : "acm003916jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003917jsd" ] + }, + "acm003917jsd" : { + "type" : "CodePackage", + "id" : "acm003917jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003918jsd" ] + }, + "acm003918jsd" : { + "type" : "CodePackage", + "id" : "acm003918jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003919jsd" ] + }, + "acm003919jsd" : { + "type" : "CodePackage", + "id" : "acm003919jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003914jsd" ] + }, + "acm003920jsd" : { + "type" : "ControlElement", + "id" : "acm003920jsd", + "name" : "Params" + }, + "acm003921jsd" : { + "type" : "ControlElement", + "id" : "acm003921jsd", + "name" : "getValue" + }, + "acm003922jsd" : { + "type" : "ControlElement", + "id" : "acm003922jsd", + "name" : "Enter" + }, + "acm003923jsd" : { + "type" : "ControlElement", + "id" : "acm003923jsd", + "name" : "getSessionToken" + }, + "acm003924jsd" : { + "type" : "ControlElement", + "id" : "acm003924jsd", + "name" : "setSessionToken" + }, + "acm003925jsd" : { + "type" : "ControlElement", + "id" : "acm003925jsd", + "name" : "populateFromParamsMap" + }, + "acm003926jsd" : { + "type" : "ControlElement", + "id" : "acm003926jsd", + "name" : "convertParamsFromString" + }, + "acm003927jsd" : { + "type" : "ClassUnit", + "id" : "acm003927jsd", + "name" : "Enter", + "compilationUnitId" : "acm003914jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004365jsd" ], + "content" : [ "acm003920jsd", "acm003921jsd", "acm003922jsd", "acm003923jsd", "acm003924jsd", "acm003925jsd", "acm003926jsd" ] + }, + "acm003928jsd" : { + "type" : "ControlElement", + "id" : "acm003928jsd", + "name" : "Params" + }, + "acm003929jsd" : { + "type" : "ControlElement", + "id" : "acm003929jsd", + "name" : "getValue" + }, + "acm003930jsd" : { + "type" : "ClassUnit", + "id" : "acm003930jsd", + "name" : "Params", + "compilationUnitId" : "acm003914jsd", + "parentDatatypeId" : "acm003927jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003928jsd", "acm003929jsd" ] + }, + "acm003931jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003931jsd", + "name" : "GetJoinUrl", + "parentId" : "acm003868jsd", + "content" : [ "acm003943jsd", "acm003946jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003932jsd" : { + "type" : "CodePackage", + "id" : "acm003932jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003933jsd" ] + }, + "acm003933jsd" : { + "type" : "CodePackage", + "id" : "acm003933jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003934jsd" ] + }, + "acm003934jsd" : { + "type" : "CodePackage", + "id" : "acm003934jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003935jsd" ] + }, + "acm003935jsd" : { + "type" : "CodePackage", + "id" : "acm003935jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003936jsd" ] + }, + "acm003936jsd" : { + "type" : "CodePackage", + "id" : "acm003936jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003931jsd" ] + }, + "acm003937jsd" : { + "type" : "ControlElement", + "id" : "acm003937jsd", + "name" : "Params" + }, + "acm003938jsd" : { + "type" : "ControlElement", + "id" : "acm003938jsd", + "name" : "getValue" + }, + "acm003939jsd" : { + "type" : "ControlElement", + "id" : "acm003939jsd", + "name" : "getSessionToken" + }, + "acm003940jsd" : { + "type" : "ControlElement", + "id" : "acm003940jsd", + "name" : "setSessionToken" + }, + "acm003941jsd" : { + "type" : "ControlElement", + "id" : "acm003941jsd", + "name" : "populateFromParamsMap" + }, + "acm003942jsd" : { + "type" : "ControlElement", + "id" : "acm003942jsd", + "name" : "convertParamsFromString" + }, + "acm003943jsd" : { + "type" : "ClassUnit", + "id" : "acm003943jsd", + "name" : "GetJoinUrl", + "compilationUnitId" : "acm003931jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd" ], + "content" : [ "acm003937jsd", "acm003938jsd", "acm003939jsd", "acm003940jsd", "acm003941jsd", "acm003942jsd" ] + }, + "acm003944jsd" : { + "type" : "ControlElement", + "id" : "acm003944jsd", + "name" : "Params" + }, + "acm003945jsd" : { + "type" : "ControlElement", + "id" : "acm003945jsd", + "name" : "getValue" + }, + "acm003946jsd" : { + "type" : "ClassUnit", + "id" : "acm003946jsd", + "name" : "Params", + "compilationUnitId" : "acm003931jsd", + "parentDatatypeId" : "acm003943jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003944jsd", "acm003945jsd" ] + }, + "acm003947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003947jsd", + "name" : "GuestWait", + "parentId" : "acm003868jsd", + "content" : [ "acm003960jsd", "acm003963jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003948jsd" : { + "type" : "CodePackage", + "id" : "acm003948jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003949jsd" ] + }, + "acm003949jsd" : { + "type" : "CodePackage", + "id" : "acm003949jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003950jsd" ] + }, + "acm003950jsd" : { + "type" : "CodePackage", + "id" : "acm003950jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003951jsd" ] + }, + "acm003951jsd" : { + "type" : "CodePackage", + "id" : "acm003951jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003952jsd" ] + }, + "acm003952jsd" : { + "type" : "CodePackage", + "id" : "acm003952jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003947jsd" ] + }, + "acm003953jsd" : { + "type" : "ControlElement", + "id" : "acm003953jsd", + "name" : "Params" + }, + "acm003954jsd" : { + "type" : "ControlElement", + "id" : "acm003954jsd", + "name" : "getValue" + }, + "acm003955jsd" : { + "type" : "ControlElement", + "id" : "acm003955jsd", + "name" : "GuestWait" + }, + "acm003956jsd" : { + "type" : "ControlElement", + "id" : "acm003956jsd", + "name" : "getSessionToken" + }, + "acm003957jsd" : { + "type" : "ControlElement", + "id" : "acm003957jsd", + "name" : "setSessionToken" + }, + "acm003958jsd" : { + "type" : "ControlElement", + "id" : "acm003958jsd", + "name" : "populateFromParamsMap" + }, + "acm003959jsd" : { + "type" : "ControlElement", + "id" : "acm003959jsd", + "name" : "convertParamsFromString" + }, + "acm003960jsd" : { + "type" : "ClassUnit", + "id" : "acm003960jsd", + "name" : "GuestWait", + "compilationUnitId" : "acm003947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004365jsd" ], + "content" : [ "acm003953jsd", "acm003954jsd", "acm003955jsd", "acm003956jsd", "acm003957jsd", "acm003958jsd", "acm003959jsd" ] + }, + "acm003961jsd" : { + "type" : "ControlElement", + "id" : "acm003961jsd", + "name" : "Params" + }, + "acm003962jsd" : { + "type" : "ControlElement", + "id" : "acm003962jsd", + "name" : "getValue" + }, + "acm003963jsd" : { + "type" : "ClassUnit", + "id" : "acm003963jsd", + "name" : "Params", + "compilationUnitId" : "acm003947jsd", + "parentDatatypeId" : "acm003960jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003961jsd", "acm003962jsd" ] + }, + "acm003964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003964jsd", + "name" : "InsertDocument", + "parentId" : "acm003868jsd", + "content" : [ "acm003976jsd", "acm003979jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003965jsd" : { + "type" : "CodePackage", + "id" : "acm003965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003966jsd" ] + }, + "acm003966jsd" : { + "type" : "CodePackage", + "id" : "acm003966jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003967jsd" ] + }, + "acm003967jsd" : { + "type" : "CodePackage", + "id" : "acm003967jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003968jsd" ] + }, + "acm003968jsd" : { + "type" : "CodePackage", + "id" : "acm003968jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003969jsd" ] + }, + "acm003969jsd" : { + "type" : "CodePackage", + "id" : "acm003969jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003964jsd" ] + }, + "acm003970jsd" : { + "type" : "ControlElement", + "id" : "acm003970jsd", + "name" : "Params" + }, + "acm003971jsd" : { + "type" : "ControlElement", + "id" : "acm003971jsd", + "name" : "getValue" + }, + "acm003972jsd" : { + "type" : "ControlElement", + "id" : "acm003972jsd", + "name" : "InsertDocument" + }, + "acm003973jsd" : { + "type" : "ControlElement", + "id" : "acm003973jsd", + "name" : "getMeetingID" + }, + "acm003974jsd" : { + "type" : "ControlElement", + "id" : "acm003974jsd", + "name" : "setMeetingID" + }, + "acm003975jsd" : { + "type" : "ControlElement", + "id" : "acm003975jsd", + "name" : "populateFromParamsMap" + }, + "acm003976jsd" : { + "type" : "ClassUnit", + "id" : "acm003976jsd", + "name" : "InsertDocument", + "compilationUnitId" : "acm003964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd" ], + "content" : [ "acm003970jsd", "acm003971jsd", "acm003972jsd", "acm003973jsd", "acm003974jsd", "acm003975jsd" ] + }, + "acm003977jsd" : { + "type" : "ControlElement", + "id" : "acm003977jsd", + "name" : "Params" + }, + "acm003978jsd" : { + "type" : "ControlElement", + "id" : "acm003978jsd", + "name" : "getValue" + }, + "acm003979jsd" : { + "type" : "ClassUnit", + "id" : "acm003979jsd", + "name" : "Params", + "compilationUnitId" : "acm003964jsd", + "parentDatatypeId" : "acm003976jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003977jsd", "acm003978jsd" ] + }, + "acm003980jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003980jsd", + "name" : "JoinMeeting", + "parentId" : "acm003868jsd", + "content" : [ "acm004010jsd", "acm004013jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003981jsd" : { + "type" : "CodePackage", + "id" : "acm003981jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003982jsd" ] + }, + "acm003982jsd" : { + "type" : "CodePackage", + "id" : "acm003982jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm003983jsd" ] + }, + "acm003983jsd" : { + "type" : "CodePackage", + "id" : "acm003983jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm003984jsd" ] + }, + "acm003984jsd" : { + "type" : "CodePackage", + "id" : "acm003984jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm003985jsd" ] + }, + "acm003985jsd" : { + "type" : "CodePackage", + "id" : "acm003985jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm003980jsd" ] + }, + "acm003986jsd" : { + "type" : "ControlElement", + "id" : "acm003986jsd", + "name" : "Params" + }, + "acm003987jsd" : { + "type" : "ControlElement", + "id" : "acm003987jsd", + "name" : "getValue" + }, + "acm003988jsd" : { + "type" : "ControlElement", + "id" : "acm003988jsd", + "name" : "JoinMeeting" + }, + "acm003989jsd" : { + "type" : "ControlElement", + "id" : "acm003989jsd", + "name" : "getMeetingID" + }, + "acm003990jsd" : { + "type" : "ControlElement", + "id" : "acm003990jsd", + "name" : "setMeetingID" + }, + "acm003991jsd" : { + "type" : "ControlElement", + "id" : "acm003991jsd", + "name" : "getUserID" + }, + "acm003992jsd" : { + "type" : "ControlElement", + "id" : "acm003992jsd", + "name" : "setUserID" + }, + "acm003993jsd" : { + "type" : "ControlElement", + "id" : "acm003993jsd", + "name" : "getFullName" + }, + "acm003994jsd" : { + "type" : "ControlElement", + "id" : "acm003994jsd", + "name" : "setFullName" + }, + "acm003995jsd" : { + "type" : "ControlElement", + "id" : "acm003995jsd", + "name" : "getPassword" + }, + "acm003996jsd" : { + "type" : "ControlElement", + "id" : "acm003996jsd", + "name" : "setPassword" + }, + "acm003997jsd" : { + "type" : "ControlElement", + "id" : "acm003997jsd", + "name" : "setGuestString" + }, + "acm003998jsd" : { + "type" : "ControlElement", + "id" : "acm003998jsd", + "name" : "getGuest" + }, + "acm003999jsd" : { + "type" : "ControlElement", + "id" : "acm003999jsd", + "name" : "setGuest" + }, + "acm004000jsd" : { + "type" : "ControlElement", + "id" : "acm004000jsd", + "name" : "setAuthString" + }, + "acm004001jsd" : { + "type" : "ControlElement", + "id" : "acm004001jsd", + "name" : "getAuth" + }, + "acm004002jsd" : { + "type" : "ControlElement", + "id" : "acm004002jsd", + "name" : "setAuth" + }, + "acm004003jsd" : { + "type" : "ControlElement", + "id" : "acm004003jsd", + "name" : "setCreateTimeString" + }, + "acm004004jsd" : { + "type" : "ControlElement", + "id" : "acm004004jsd", + "name" : "getCreateTime" + }, + "acm004005jsd" : { + "type" : "ControlElement", + "id" : "acm004005jsd", + "name" : "setCreateTime" + }, + "acm004006jsd" : { + "type" : "ControlElement", + "id" : "acm004006jsd", + "name" : "getRole" + }, + "acm004007jsd" : { + "type" : "ControlElement", + "id" : "acm004007jsd", + "name" : "setRole" + }, + "acm004008jsd" : { + "type" : "ControlElement", + "id" : "acm004008jsd", + "name" : "populateFromParamsMap" + }, + "acm004009jsd" : { + "type" : "ControlElement", + "id" : "acm004009jsd", + "name" : "convertParamsFromString" + }, + "acm004010jsd" : { + "type" : "ClassUnit", + "id" : "acm004010jsd", + "name" : "JoinMeeting", + "compilationUnitId" : "acm003980jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd", "acm004176jsd", "acm004194jsd" ], + "content" : [ "acm003986jsd", "acm003987jsd", "acm003988jsd", "acm003989jsd", "acm003990jsd", "acm003991jsd", "acm003992jsd", "acm003993jsd", "acm003994jsd", "acm003995jsd", "acm003996jsd", "acm003997jsd", "acm003998jsd", "acm003999jsd", "acm004000jsd", "acm004001jsd", "acm004002jsd", "acm004003jsd", "acm004004jsd", "acm004005jsd", "acm004006jsd", "acm004007jsd", "acm004008jsd", "acm004009jsd" ] + }, + "acm004011jsd" : { + "type" : "ControlElement", + "id" : "acm004011jsd", + "name" : "Params" + }, + "acm004012jsd" : { + "type" : "ControlElement", + "id" : "acm004012jsd", + "name" : "getValue" + }, + "acm004013jsd" : { + "type" : "ClassUnit", + "id" : "acm004013jsd", + "name" : "Params", + "compilationUnitId" : "acm003980jsd", + "parentDatatypeId" : "acm004010jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004011jsd", "acm004012jsd" ] + }, + "acm004014jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004014jsd", + "name" : "LearningDashboard", + "parentId" : "acm003868jsd", + "content" : [ "acm004026jsd", "acm004029jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004015jsd" : { + "type" : "CodePackage", + "id" : "acm004015jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004016jsd" ] + }, + "acm004016jsd" : { + "type" : "CodePackage", + "id" : "acm004016jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004017jsd" ] + }, + "acm004017jsd" : { + "type" : "CodePackage", + "id" : "acm004017jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004018jsd" ] + }, + "acm004018jsd" : { + "type" : "CodePackage", + "id" : "acm004018jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004019jsd" ] + }, + "acm004019jsd" : { + "type" : "CodePackage", + "id" : "acm004019jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004014jsd" ] + }, + "acm004020jsd" : { + "type" : "ControlElement", + "id" : "acm004020jsd", + "name" : "Params" + }, + "acm004021jsd" : { + "type" : "ControlElement", + "id" : "acm004021jsd", + "name" : "getValue" + }, + "acm004022jsd" : { + "type" : "ControlElement", + "id" : "acm004022jsd", + "name" : "getSessionToken" + }, + "acm004023jsd" : { + "type" : "ControlElement", + "id" : "acm004023jsd", + "name" : "setSessionToken" + }, + "acm004024jsd" : { + "type" : "ControlElement", + "id" : "acm004024jsd", + "name" : "populateFromParamsMap" + }, + "acm004025jsd" : { + "type" : "ControlElement", + "id" : "acm004025jsd", + "name" : "convertParamsFromString" + }, + "acm004026jsd" : { + "type" : "ClassUnit", + "id" : "acm004026jsd", + "name" : "LearningDashboard", + "compilationUnitId" : "acm004014jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd" ], + "content" : [ "acm004020jsd", "acm004021jsd", "acm004022jsd", "acm004023jsd", "acm004024jsd", "acm004025jsd" ] + }, + "acm004027jsd" : { + "type" : "ControlElement", + "id" : "acm004027jsd", + "name" : "Params" + }, + "acm004028jsd" : { + "type" : "ControlElement", + "id" : "acm004028jsd", + "name" : "getValue" + }, + "acm004029jsd" : { + "type" : "ClassUnit", + "id" : "acm004029jsd", + "name" : "Params", + "compilationUnitId" : "acm004014jsd", + "parentDatatypeId" : "acm004026jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004027jsd", "acm004028jsd" ] + }, + "acm004030jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004030jsd", + "name" : "MeetingInfo", + "parentId" : "acm003868jsd", + "content" : [ "acm004042jsd", "acm004045jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004031jsd" : { + "type" : "CodePackage", + "id" : "acm004031jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004032jsd" ] + }, + "acm004032jsd" : { + "type" : "CodePackage", + "id" : "acm004032jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004033jsd" ] + }, + "acm004033jsd" : { + "type" : "CodePackage", + "id" : "acm004033jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004034jsd" ] + }, + "acm004034jsd" : { + "type" : "CodePackage", + "id" : "acm004034jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004035jsd" ] + }, + "acm004035jsd" : { + "type" : "CodePackage", + "id" : "acm004035jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004030jsd" ] + }, + "acm004036jsd" : { + "type" : "ControlElement", + "id" : "acm004036jsd", + "name" : "Params" + }, + "acm004037jsd" : { + "type" : "ControlElement", + "id" : "acm004037jsd", + "name" : "getValue" + }, + "acm004038jsd" : { + "type" : "ControlElement", + "id" : "acm004038jsd", + "name" : "MeetingInfo" + }, + "acm004039jsd" : { + "type" : "ControlElement", + "id" : "acm004039jsd", + "name" : "getMeetingID" + }, + "acm004040jsd" : { + "type" : "ControlElement", + "id" : "acm004040jsd", + "name" : "setMeetingID" + }, + "acm004041jsd" : { + "type" : "ControlElement", + "id" : "acm004041jsd", + "name" : "populateFromParamsMap" + }, + "acm004042jsd" : { + "type" : "ClassUnit", + "id" : "acm004042jsd", + "name" : "MeetingInfo", + "compilationUnitId" : "acm004030jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd" ], + "content" : [ "acm004036jsd", "acm004037jsd", "acm004038jsd", "acm004039jsd", "acm004040jsd", "acm004041jsd" ] + }, + "acm004043jsd" : { + "type" : "ControlElement", + "id" : "acm004043jsd", + "name" : "Params" + }, + "acm004044jsd" : { + "type" : "ControlElement", + "id" : "acm004044jsd", + "name" : "getValue" + }, + "acm004045jsd" : { + "type" : "ClassUnit", + "id" : "acm004045jsd", + "name" : "Params", + "compilationUnitId" : "acm004030jsd", + "parentDatatypeId" : "acm004042jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004043jsd", "acm004044jsd" ] + }, + "acm004046jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004046jsd", + "name" : "MeetingRunning", + "parentId" : "acm003868jsd", + "content" : [ "acm004058jsd", "acm004061jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004047jsd" : { + "type" : "CodePackage", + "id" : "acm004047jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004048jsd" ] + }, + "acm004048jsd" : { + "type" : "CodePackage", + "id" : "acm004048jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004049jsd" ] + }, + "acm004049jsd" : { + "type" : "CodePackage", + "id" : "acm004049jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004050jsd" ] + }, + "acm004050jsd" : { + "type" : "CodePackage", + "id" : "acm004050jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004051jsd" ] + }, + "acm004051jsd" : { + "type" : "CodePackage", + "id" : "acm004051jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004046jsd" ] + }, + "acm004052jsd" : { + "type" : "ControlElement", + "id" : "acm004052jsd", + "name" : "Params" + }, + "acm004053jsd" : { + "type" : "ControlElement", + "id" : "acm004053jsd", + "name" : "getValue" + }, + "acm004054jsd" : { + "type" : "ControlElement", + "id" : "acm004054jsd", + "name" : "MeetingRunning" + }, + "acm004055jsd" : { + "type" : "ControlElement", + "id" : "acm004055jsd", + "name" : "getMeetingID" + }, + "acm004056jsd" : { + "type" : "ControlElement", + "id" : "acm004056jsd", + "name" : "setMeetingID" + }, + "acm004057jsd" : { + "type" : "ControlElement", + "id" : "acm004057jsd", + "name" : "populateFromParamsMap" + }, + "acm004058jsd" : { + "type" : "ClassUnit", + "id" : "acm004058jsd", + "name" : "MeetingRunning", + "compilationUnitId" : "acm004046jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd" ], + "content" : [ "acm004052jsd", "acm004053jsd", "acm004054jsd", "acm004055jsd", "acm004056jsd", "acm004057jsd" ] + }, + "acm004059jsd" : { + "type" : "ControlElement", + "id" : "acm004059jsd", + "name" : "Params" + }, + "acm004060jsd" : { + "type" : "ControlElement", + "id" : "acm004060jsd", + "name" : "getValue" + }, + "acm004061jsd" : { + "type" : "ClassUnit", + "id" : "acm004061jsd", + "name" : "Params", + "compilationUnitId" : "acm004046jsd", + "parentDatatypeId" : "acm004058jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004059jsd", "acm004060jsd" ] + }, + "acm004062jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004062jsd", + "name" : "Request", + "parentId" : "acm003868jsd", + "content" : [ "acm004070jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004063jsd" : { + "type" : "CodePackage", + "id" : "acm004063jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004064jsd" ] + }, + "acm004064jsd" : { + "type" : "CodePackage", + "id" : "acm004064jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004065jsd" ] + }, + "acm004065jsd" : { + "type" : "CodePackage", + "id" : "acm004065jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004066jsd" ] + }, + "acm004066jsd" : { + "type" : "CodePackage", + "id" : "acm004066jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004067jsd" ] + }, + "acm004067jsd" : { + "type" : "CodePackage", + "id" : "acm004067jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004062jsd" ] + }, + "acm004068jsd" : { + "type" : "ControlElement", + "id" : "acm004068jsd", + "name" : "populateFromParamsMap" + }, + "acm004069jsd" : { + "type" : "ControlElement", + "id" : "acm004069jsd", + "name" : "convertParamsFromString" + }, + "acm004070jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004070jsd", + "name" : "Request", + "compilationUnitId" : "acm004062jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004068jsd", "acm004069jsd" ] + }, + "acm004071jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004071jsd", + "name" : "RequestParameters", + "parentId" : "acm003868jsd", + "content" : [ "acm004078jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004072jsd" : { + "type" : "CodePackage", + "id" : "acm004072jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004073jsd" ] + }, + "acm004073jsd" : { + "type" : "CodePackage", + "id" : "acm004073jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004074jsd" ] + }, + "acm004074jsd" : { + "type" : "CodePackage", + "id" : "acm004074jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004075jsd" ] + }, + "acm004075jsd" : { + "type" : "CodePackage", + "id" : "acm004075jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004076jsd" ] + }, + "acm004076jsd" : { + "type" : "CodePackage", + "id" : "acm004076jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004071jsd" ] + }, + "acm004077jsd" : { + "type" : "ControlElement", + "id" : "acm004077jsd", + "name" : "getValue" + }, + "acm004078jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004078jsd", + "name" : "RequestParameters", + "compilationUnitId" : "acm004071jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004077jsd" ] + }, + "acm004079jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004079jsd", + "name" : "RequestWithChecksum", + "parentId" : "acm003868jsd", + "content" : [ "acm004090jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004080jsd" : { + "type" : "CodePackage", + "id" : "acm004080jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004081jsd" ] + }, + "acm004081jsd" : { + "type" : "CodePackage", + "id" : "acm004081jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004082jsd" ] + }, + "acm004082jsd" : { + "type" : "CodePackage", + "id" : "acm004082jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004083jsd" ] + }, + "acm004083jsd" : { + "type" : "CodePackage", + "id" : "acm004083jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004084jsd" ] + }, + "acm004084jsd" : { + "type" : "CodePackage", + "id" : "acm004084jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004079jsd" ] + }, + "acm004085jsd" : { + "type" : "ControlElement", + "id" : "acm004085jsd", + "name" : "RequestWithChecksum" + }, + "acm004086jsd" : { + "type" : "ControlElement", + "id" : "acm004086jsd", + "name" : "getChecksum" + }, + "acm004087jsd" : { + "type" : "ControlElement", + "id" : "acm004087jsd", + "name" : "setChecksum" + }, + "acm004088jsd" : { + "type" : "ControlElement", + "id" : "acm004088jsd", + "name" : "populateFromParamsMap" + }, + "acm004089jsd" : { + "type" : "ControlElement", + "id" : "acm004089jsd", + "name" : "convertParamsFromString" + }, + "acm004090jsd" : { + "type" : "ClassUnit", + "id" : "acm004090jsd", + "name" : "RequestWithChecksum", + "compilationUnitId" : "acm004079jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004151jsd" ], + "content" : [ "acm004085jsd", "acm004086jsd", "acm004087jsd", "acm004088jsd", "acm004089jsd" ] + }, + "acm004091jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004091jsd", + "name" : "SignOut", + "parentId" : "acm003868jsd", + "content" : [ "acm004103jsd", "acm004106jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004092jsd" : { + "type" : "CodePackage", + "id" : "acm004092jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004093jsd" ] + }, + "acm004093jsd" : { + "type" : "CodePackage", + "id" : "acm004093jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004094jsd" ] + }, + "acm004094jsd" : { + "type" : "CodePackage", + "id" : "acm004094jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004095jsd" ] + }, + "acm004095jsd" : { + "type" : "CodePackage", + "id" : "acm004095jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004096jsd" ] + }, + "acm004096jsd" : { + "type" : "CodePackage", + "id" : "acm004096jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004091jsd" ] + }, + "acm004097jsd" : { + "type" : "ControlElement", + "id" : "acm004097jsd", + "name" : "Params" + }, + "acm004098jsd" : { + "type" : "ControlElement", + "id" : "acm004098jsd", + "name" : "getValue" + }, + "acm004099jsd" : { + "type" : "ControlElement", + "id" : "acm004099jsd", + "name" : "getSessionToken" + }, + "acm004100jsd" : { + "type" : "ControlElement", + "id" : "acm004100jsd", + "name" : "setSessionToken" + }, + "acm004101jsd" : { + "type" : "ControlElement", + "id" : "acm004101jsd", + "name" : "populateFromParamsMap" + }, + "acm004102jsd" : { + "type" : "ControlElement", + "id" : "acm004102jsd", + "name" : "convertParamsFromString" + }, + "acm004103jsd" : { + "type" : "ClassUnit", + "id" : "acm004103jsd", + "name" : "SignOut", + "compilationUnitId" : "acm004091jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd" ], + "content" : [ "acm004097jsd", "acm004098jsd", "acm004099jsd", "acm004100jsd", "acm004101jsd", "acm004102jsd" ] + }, + "acm004104jsd" : { + "type" : "ControlElement", + "id" : "acm004104jsd", + "name" : "Params" + }, + "acm004105jsd" : { + "type" : "ControlElement", + "id" : "acm004105jsd", + "name" : "getValue" + }, + "acm004106jsd" : { + "type" : "ClassUnit", + "id" : "acm004106jsd", + "name" : "Params", + "compilationUnitId" : "acm004091jsd", + "parentDatatypeId" : "acm004103jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004104jsd", "acm004105jsd" ] + }, + "acm004107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004107jsd", + "name" : "SimpleRequest", + "parentId" : "acm003868jsd", + "content" : [ "acm004117jsd", "acm004120jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004108jsd" : { + "type" : "CodePackage", + "id" : "acm004108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004109jsd" ] + }, + "acm004109jsd" : { + "type" : "CodePackage", + "id" : "acm004109jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004110jsd" ] + }, + "acm004110jsd" : { + "type" : "CodePackage", + "id" : "acm004110jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004111jsd" ] + }, + "acm004111jsd" : { + "type" : "CodePackage", + "id" : "acm004111jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004112jsd" ] + }, + "acm004112jsd" : { + "type" : "CodePackage", + "id" : "acm004112jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004107jsd" ] + }, + "acm004113jsd" : { + "type" : "ControlElement", + "id" : "acm004113jsd", + "name" : "Params" + }, + "acm004114jsd" : { + "type" : "ControlElement", + "id" : "acm004114jsd", + "name" : "getValue" + }, + "acm004115jsd" : { + "type" : "ControlElement", + "id" : "acm004115jsd", + "name" : "SimpleRequest" + }, + "acm004116jsd" : { + "type" : "ControlElement", + "id" : "acm004116jsd", + "name" : "populateFromParamsMap" + }, + "acm004117jsd" : { + "type" : "ClassUnit", + "id" : "acm004117jsd", + "name" : "SimpleRequest", + "compilationUnitId" : "acm004107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004090jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004151jsd" ], + "content" : [ "acm004113jsd", "acm004114jsd", "acm004115jsd", "acm004116jsd" ] + }, + "acm004118jsd" : { + "type" : "ControlElement", + "id" : "acm004118jsd", + "name" : "Params" + }, + "acm004119jsd" : { + "type" : "ControlElement", + "id" : "acm004119jsd", + "name" : "getValue" + }, + "acm004120jsd" : { + "type" : "ClassUnit", + "id" : "acm004120jsd", + "name" : "Params", + "compilationUnitId" : "acm004107jsd", + "parentDatatypeId" : "acm004117jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004118jsd", "acm004119jsd" ] + }, + "acm004121jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004121jsd", + "name" : "Stuns", + "parentId" : "acm003868jsd", + "content" : [ "acm004134jsd", "acm004137jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004122jsd" : { + "type" : "CodePackage", + "id" : "acm004122jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004123jsd" ] + }, + "acm004123jsd" : { + "type" : "CodePackage", + "id" : "acm004123jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004124jsd" ] + }, + "acm004124jsd" : { + "type" : "CodePackage", + "id" : "acm004124jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004125jsd" ] + }, + "acm004125jsd" : { + "type" : "CodePackage", + "id" : "acm004125jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004126jsd" ] + }, + "acm004126jsd" : { + "type" : "CodePackage", + "id" : "acm004126jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm004121jsd" ] + }, + "acm004127jsd" : { + "type" : "ControlElement", + "id" : "acm004127jsd", + "name" : "Params" + }, + "acm004128jsd" : { + "type" : "ControlElement", + "id" : "acm004128jsd", + "name" : "getValue" + }, + "acm004129jsd" : { + "type" : "ControlElement", + "id" : "acm004129jsd", + "name" : "Stuns" + }, + "acm004130jsd" : { + "type" : "ControlElement", + "id" : "acm004130jsd", + "name" : "getSessionToken" + }, + "acm004131jsd" : { + "type" : "ControlElement", + "id" : "acm004131jsd", + "name" : "setSessionToken" + }, + "acm004132jsd" : { + "type" : "ControlElement", + "id" : "acm004132jsd", + "name" : "populateFromParamsMap" + }, + "acm004133jsd" : { + "type" : "ControlElement", + "id" : "acm004133jsd", + "name" : "convertParamsFromString" + }, + "acm004134jsd" : { + "type" : "ClassUnit", + "id" : "acm004134jsd", + "name" : "Stuns", + "compilationUnitId" : "acm004121jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004070jsd" ], + "datatypeReferencesIds" : [ "acm004078jsd", "acm004365jsd" ], + "content" : [ "acm004127jsd", "acm004128jsd", "acm004129jsd", "acm004130jsd", "acm004131jsd", "acm004132jsd", "acm004133jsd" ] + }, + "acm004135jsd" : { + "type" : "ControlElement", + "id" : "acm004135jsd", + "name" : "Params" + }, + "acm004136jsd" : { + "type" : "ControlElement", + "id" : "acm004136jsd", + "name" : "getValue" + }, + "acm004137jsd" : { + "type" : "ClassUnit", + "id" : "acm004137jsd", + "name" : "Params", + "compilationUnitId" : "acm004121jsd", + "parentDatatypeId" : "acm004134jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004078jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004135jsd", "acm004136jsd" ] + }, + "acm004138jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004138jsd", + "name" : "Checksum", + "parentId" : "acm004143jsd", + "content" : [ "acm004151jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004139jsd" : { + "type" : "CodePackage", + "id" : "acm004139jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004140jsd" ] + }, + "acm004140jsd" : { + "type" : "CodePackage", + "id" : "acm004140jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004141jsd" ] + }, + "acm004141jsd" : { + "type" : "CodePackage", + "id" : "acm004141jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004142jsd" ] + }, + "acm004142jsd" : { + "type" : "CodePackage", + "id" : "acm004142jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004143jsd" ] + }, + "acm004143jsd" : { + "type" : "CodePackage", + "id" : "acm004143jsd", + "name" : "shared", + "parentId" : "acm003599jsd", + "content" : [ "acm004138jsd", "acm004152jsd", "acm004159jsd", "acm004170jsd", "acm004177jsd", "acm004184jsd", "acm004195jsd" ] + }, + "acm004144jsd" : { + "type" : "ControlElement", + "id" : "acm004144jsd", + "name" : "Checksum" + }, + "acm004145jsd" : { + "type" : "ControlElement", + "id" : "acm004145jsd", + "name" : "getApiCall" + }, + "acm004146jsd" : { + "type" : "ControlElement", + "id" : "acm004146jsd", + "name" : "setApiCall" + }, + "acm004147jsd" : { + "type" : "ControlElement", + "id" : "acm004147jsd", + "name" : "getChecksum" + }, + "acm004148jsd" : { + "type" : "ControlElement", + "id" : "acm004148jsd", + "name" : "setChecksum" + }, + "acm004149jsd" : { + "type" : "ControlElement", + "id" : "acm004149jsd", + "name" : "getQueryStringWithoutChecksum" + }, + "acm004150jsd" : { + "type" : "ControlElement", + "id" : "acm004150jsd", + "name" : "setQueryStringWithoutChecksum" + }, + "acm004151jsd" : { + "type" : "ClassUnit", + "id" : "acm004151jsd", + "name" : "Checksum", + "compilationUnitId" : "acm004138jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004158jsd" ], + "content" : [ "acm004144jsd", "acm004145jsd", "acm004146jsd", "acm004147jsd", "acm004148jsd", "acm004149jsd", "acm004150jsd" ] + }, + "acm004152jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004152jsd", + "name" : "ChecksumValidationGroup", + "parentId" : "acm004143jsd", + "content" : [ "acm004158jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004153jsd" : { + "type" : "CodePackage", + "id" : "acm004153jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004154jsd" ] + }, + "acm004154jsd" : { + "type" : "CodePackage", + "id" : "acm004154jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004155jsd" ] + }, + "acm004155jsd" : { + "type" : "CodePackage", + "id" : "acm004155jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004156jsd" ] + }, + "acm004156jsd" : { + "type" : "CodePackage", + "id" : "acm004156jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004157jsd" ] + }, + "acm004157jsd" : { + "type" : "CodePackage", + "id" : "acm004157jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004152jsd" ] + }, + "acm004158jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004158jsd", + "name" : "ChecksumValidationGroup", + "compilationUnitId" : "acm004152jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004159jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004159jsd", + "name" : "GetChecksum", + "parentId" : "acm004143jsd", + "content" : [ "acm004169jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004160jsd" : { + "type" : "CodePackage", + "id" : "acm004160jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004161jsd" ] + }, + "acm004161jsd" : { + "type" : "CodePackage", + "id" : "acm004161jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004162jsd" ] + }, + "acm004162jsd" : { + "type" : "CodePackage", + "id" : "acm004162jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004163jsd" ] + }, + "acm004163jsd" : { + "type" : "CodePackage", + "id" : "acm004163jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004164jsd" ] + }, + "acm004164jsd" : { + "type" : "CodePackage", + "id" : "acm004164jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004159jsd" ] + }, + "acm004165jsd" : { + "type" : "ControlElement", + "id" : "acm004165jsd", + "name" : "GetChecksum" + }, + "acm004166jsd" : { + "type" : "ControlElement", + "id" : "acm004166jsd", + "name" : "removeChecksumFromQueryString" + }, + "acm004167jsd" : { + "type" : "ControlElement", + "id" : "acm004167jsd", + "name" : "getQueryString" + }, + "acm004168jsd" : { + "type" : "ControlElement", + "id" : "acm004168jsd", + "name" : "setQueryString" + }, + "acm004169jsd" : { + "type" : "ClassUnit", + "id" : "acm004169jsd", + "name" : "GetChecksum", + "compilationUnitId" : "acm004159jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004151jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004165jsd", "acm004166jsd", "acm004167jsd", "acm004168jsd" ] + }, + "acm004170jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004170jsd", + "name" : "JoinPassword", + "parentId" : "acm004143jsd", + "content" : [ "acm004176jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004171jsd" : { + "type" : "CodePackage", + "id" : "acm004171jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004172jsd" ] + }, + "acm004172jsd" : { + "type" : "CodePackage", + "id" : "acm004172jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004173jsd" ] + }, + "acm004173jsd" : { + "type" : "CodePackage", + "id" : "acm004173jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004174jsd" ] + }, + "acm004174jsd" : { + "type" : "CodePackage", + "id" : "acm004174jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004175jsd" ] + }, + "acm004175jsd" : { + "type" : "CodePackage", + "id" : "acm004175jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004170jsd" ] + }, + "acm004176jsd" : { + "type" : "ClassUnit", + "id" : "acm004176jsd", + "name" : "JoinPassword", + "compilationUnitId" : "acm004170jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004194jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004177jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004177jsd", + "name" : "ModeratorPassword", + "parentId" : "acm004143jsd", + "content" : [ "acm004183jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004178jsd" : { + "type" : "CodePackage", + "id" : "acm004178jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004179jsd" ] + }, + "acm004179jsd" : { + "type" : "CodePackage", + "id" : "acm004179jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004180jsd" ] + }, + "acm004180jsd" : { + "type" : "CodePackage", + "id" : "acm004180jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004181jsd" ] + }, + "acm004181jsd" : { + "type" : "CodePackage", + "id" : "acm004181jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004182jsd" ] + }, + "acm004182jsd" : { + "type" : "CodePackage", + "id" : "acm004182jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004177jsd" ] + }, + "acm004183jsd" : { + "type" : "ClassUnit", + "id" : "acm004183jsd", + "name" : "ModeratorPassword", + "compilationUnitId" : "acm004177jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004194jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004184jsd", + "name" : "Password", + "parentId" : "acm004143jsd", + "content" : [ "acm004194jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004185jsd" : { + "type" : "CodePackage", + "id" : "acm004185jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004186jsd" ] + }, + "acm004186jsd" : { + "type" : "CodePackage", + "id" : "acm004186jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004187jsd" ] + }, + "acm004187jsd" : { + "type" : "CodePackage", + "id" : "acm004187jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004188jsd" ] + }, + "acm004188jsd" : { + "type" : "CodePackage", + "id" : "acm004188jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004189jsd" ] + }, + "acm004189jsd" : { + "type" : "CodePackage", + "id" : "acm004189jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004184jsd" ] + }, + "acm004190jsd" : { + "type" : "ControlElement", + "id" : "acm004190jsd", + "name" : "getMeetingID" + }, + "acm004191jsd" : { + "type" : "ControlElement", + "id" : "acm004191jsd", + "name" : "setMeetingID" + }, + "acm004192jsd" : { + "type" : "ControlElement", + "id" : "acm004192jsd", + "name" : "getPassword" + }, + "acm004193jsd" : { + "type" : "ControlElement", + "id" : "acm004193jsd", + "name" : "setPassword" + }, + "acm004194jsd" : { + "type" : "ClassUnit", + "id" : "acm004194jsd", + "name" : "Password", + "compilationUnitId" : "acm004184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004190jsd", "acm004191jsd", "acm004192jsd", "acm004193jsd" ] + }, + "acm004195jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004195jsd", + "name" : "PostChecksum", + "parentId" : "acm004143jsd", + "content" : [ "acm004204jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004196jsd" : { + "type" : "CodePackage", + "id" : "acm004196jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004197jsd" ] + }, + "acm004197jsd" : { + "type" : "CodePackage", + "id" : "acm004197jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004198jsd" ] + }, + "acm004198jsd" : { + "type" : "CodePackage", + "id" : "acm004198jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004199jsd" ] + }, + "acm004199jsd" : { + "type" : "CodePackage", + "id" : "acm004199jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004200jsd" ] + }, + "acm004200jsd" : { + "type" : "CodePackage", + "id" : "acm004200jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm004195jsd" ] + }, + "acm004201jsd" : { + "type" : "ControlElement", + "id" : "acm004201jsd", + "name" : "PostChecksum" + }, + "acm004202jsd" : { + "type" : "ControlElement", + "id" : "acm004202jsd", + "name" : "getParams" + }, + "acm004203jsd" : { + "type" : "ControlElement", + "id" : "acm004203jsd", + "name" : "setParams" + }, + "acm004204jsd" : { + "type" : "ClassUnit", + "id" : "acm004204jsd", + "name" : "PostChecksum", + "compilationUnitId" : "acm004195jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004151jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004201jsd", "acm004202jsd", "acm004203jsd" ] + }, + "acm004205jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004205jsd", + "name" : "GetChecksumValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004213jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004206jsd" : { + "type" : "CodePackage", + "id" : "acm004206jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004207jsd" ] + }, + "acm004207jsd" : { + "type" : "CodePackage", + "id" : "acm004207jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004208jsd" ] + }, + "acm004208jsd" : { + "type" : "CodePackage", + "id" : "acm004208jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004209jsd" ] + }, + "acm004209jsd" : { + "type" : "CodePackage", + "id" : "acm004209jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004210jsd" ] + }, + "acm004210jsd" : { + "type" : "CodePackage", + "id" : "acm004210jsd", + "name" : "validator", + "parentId" : "acm003599jsd", + "content" : [ "acm004205jsd", "acm004214jsd", "acm004223jsd", "acm004232jsd", "acm004241jsd", "acm004250jsd", "acm004259jsd", "acm004268jsd", "acm004277jsd", "acm004286jsd", "acm004295jsd", "acm004304jsd", "acm004313jsd", "acm004322jsd" ] + }, + "acm004211jsd" : { + "type" : "ControlElement", + "id" : "acm004211jsd", + "name" : "initialize" + }, + "acm004212jsd" : { + "type" : "ControlElement", + "id" : "acm004212jsd", + "name" : "isValid" + }, + "acm004213jsd" : { + "type" : "ClassUnit", + "id" : "acm004213jsd", + "name" : "GetChecksumValidator", + "compilationUnitId" : "acm004205jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004169jsd", "acm004213jsd" ], + "content" : [ "acm004211jsd", "acm004212jsd" ] + }, + "acm004214jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004214jsd", + "name" : "GuestPolicyValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004222jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004215jsd" : { + "type" : "CodePackage", + "id" : "acm004215jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004216jsd" ] + }, + "acm004216jsd" : { + "type" : "CodePackage", + "id" : "acm004216jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004217jsd" ] + }, + "acm004217jsd" : { + "type" : "CodePackage", + "id" : "acm004217jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004218jsd" ] + }, + "acm004218jsd" : { + "type" : "CodePackage", + "id" : "acm004218jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004219jsd" ] + }, + "acm004219jsd" : { + "type" : "CodePackage", + "id" : "acm004219jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004214jsd" ] + }, + "acm004220jsd" : { + "type" : "ControlElement", + "id" : "acm004220jsd", + "name" : "initialize" + }, + "acm004221jsd" : { + "type" : "ControlElement", + "id" : "acm004221jsd", + "name" : "isValid" + }, + "acm004222jsd" : { + "type" : "ClassUnit", + "id" : "acm004222jsd", + "name" : "GuestPolicyValidator", + "compilationUnitId" : "acm004214jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm003229jsd" ], + "content" : [ "acm004220jsd", "acm004221jsd" ] + }, + "acm004223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004223jsd", + "name" : "IsBooleanValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004231jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004224jsd" : { + "type" : "CodePackage", + "id" : "acm004224jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004225jsd" ] + }, + "acm004225jsd" : { + "type" : "CodePackage", + "id" : "acm004225jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004226jsd" ] + }, + "acm004226jsd" : { + "type" : "CodePackage", + "id" : "acm004226jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004227jsd" ] + }, + "acm004227jsd" : { + "type" : "CodePackage", + "id" : "acm004227jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004228jsd" ] + }, + "acm004228jsd" : { + "type" : "CodePackage", + "id" : "acm004228jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004223jsd" ] + }, + "acm004229jsd" : { + "type" : "ControlElement", + "id" : "acm004229jsd", + "name" : "initialize" + }, + "acm004230jsd" : { + "type" : "ControlElement", + "id" : "acm004230jsd", + "name" : "isValid" + }, + "acm004231jsd" : { + "type" : "ClassUnit", + "id" : "acm004231jsd", + "name" : "IsBooleanValidator", + "compilationUnitId" : "acm004223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004229jsd", "acm004230jsd" ] + }, + "acm004232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004232jsd", + "name" : "IsIntegralValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004240jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004233jsd" : { + "type" : "CodePackage", + "id" : "acm004233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004234jsd" ] + }, + "acm004234jsd" : { + "type" : "CodePackage", + "id" : "acm004234jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004235jsd" ] + }, + "acm004235jsd" : { + "type" : "CodePackage", + "id" : "acm004235jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004236jsd" ] + }, + "acm004236jsd" : { + "type" : "CodePackage", + "id" : "acm004236jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004237jsd" ] + }, + "acm004237jsd" : { + "type" : "CodePackage", + "id" : "acm004237jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004232jsd" ] + }, + "acm004238jsd" : { + "type" : "ControlElement", + "id" : "acm004238jsd", + "name" : "initialize" + }, + "acm004239jsd" : { + "type" : "ControlElement", + "id" : "acm004239jsd", + "name" : "isValid" + }, + "acm004240jsd" : { + "type" : "ClassUnit", + "id" : "acm004240jsd", + "name" : "IsIntegralValidator", + "compilationUnitId" : "acm004232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004238jsd", "acm004239jsd" ] + }, + "acm004241jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004241jsd", + "name" : "JoinPasswordValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004249jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004242jsd" : { + "type" : "CodePackage", + "id" : "acm004242jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004243jsd" ] + }, + "acm004243jsd" : { + "type" : "CodePackage", + "id" : "acm004243jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004244jsd" ] + }, + "acm004244jsd" : { + "type" : "CodePackage", + "id" : "acm004244jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004245jsd" ] + }, + "acm004245jsd" : { + "type" : "CodePackage", + "id" : "acm004245jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004246jsd" ] + }, + "acm004246jsd" : { + "type" : "CodePackage", + "id" : "acm004246jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004241jsd" ] + }, + "acm004247jsd" : { + "type" : "ControlElement", + "id" : "acm004247jsd", + "name" : "initialize" + }, + "acm004248jsd" : { + "type" : "ControlElement", + "id" : "acm004248jsd", + "name" : "isValid" + }, + "acm004249jsd" : { + "type" : "ClassUnit", + "id" : "acm004249jsd", + "name" : "JoinPasswordValidator", + "compilationUnitId" : "acm004241jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd", "acm004176jsd", "acm004249jsd" ], + "content" : [ "acm004247jsd", "acm004248jsd" ] + }, + "acm004250jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004250jsd", + "name" : "MeetingEndedValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004258jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004251jsd" : { + "type" : "CodePackage", + "id" : "acm004251jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004252jsd" ] + }, + "acm004252jsd" : { + "type" : "CodePackage", + "id" : "acm004252jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004253jsd" ] + }, + "acm004253jsd" : { + "type" : "CodePackage", + "id" : "acm004253jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004254jsd" ] + }, + "acm004254jsd" : { + "type" : "CodePackage", + "id" : "acm004254jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004255jsd" ] + }, + "acm004255jsd" : { + "type" : "CodePackage", + "id" : "acm004255jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004250jsd" ] + }, + "acm004256jsd" : { + "type" : "ControlElement", + "id" : "acm004256jsd", + "name" : "initialize" + }, + "acm004257jsd" : { + "type" : "ControlElement", + "id" : "acm004257jsd", + "name" : "isValid" + }, + "acm004258jsd" : { + "type" : "ClassUnit", + "id" : "acm004258jsd", + "name" : "MeetingEndedValidator", + "compilationUnitId" : "acm004250jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd", "acm004258jsd" ], + "content" : [ "acm004256jsd", "acm004257jsd" ] + }, + "acm004259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004259jsd", + "name" : "MeetingExistsValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004267jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004260jsd" : { + "type" : "CodePackage", + "id" : "acm004260jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004261jsd" ] + }, + "acm004261jsd" : { + "type" : "CodePackage", + "id" : "acm004261jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004262jsd" ] + }, + "acm004262jsd" : { + "type" : "CodePackage", + "id" : "acm004262jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004263jsd" ] + }, + "acm004263jsd" : { + "type" : "CodePackage", + "id" : "acm004263jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004264jsd" ] + }, + "acm004264jsd" : { + "type" : "CodePackage", + "id" : "acm004264jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004259jsd" ] + }, + "acm004265jsd" : { + "type" : "ControlElement", + "id" : "acm004265jsd", + "name" : "initialize" + }, + "acm004266jsd" : { + "type" : "ControlElement", + "id" : "acm004266jsd", + "name" : "isValid" + }, + "acm004267jsd" : { + "type" : "ClassUnit", + "id" : "acm004267jsd", + "name" : "MeetingExistsValidator", + "compilationUnitId" : "acm004259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd", "acm004267jsd" ], + "content" : [ "acm004265jsd", "acm004266jsd" ] + }, + "acm004268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004268jsd", + "name" : "NotEmptyValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004276jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004269jsd" : { + "type" : "CodePackage", + "id" : "acm004269jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004270jsd" ] + }, + "acm004270jsd" : { + "type" : "CodePackage", + "id" : "acm004270jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004271jsd" ] + }, + "acm004271jsd" : { + "type" : "CodePackage", + "id" : "acm004271jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004272jsd" ] + }, + "acm004272jsd" : { + "type" : "CodePackage", + "id" : "acm004272jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004273jsd" ] + }, + "acm004273jsd" : { + "type" : "CodePackage", + "id" : "acm004273jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004268jsd" ] + }, + "acm004274jsd" : { + "type" : "ControlElement", + "id" : "acm004274jsd", + "name" : "initialize" + }, + "acm004275jsd" : { + "type" : "ControlElement", + "id" : "acm004275jsd", + "name" : "isValid" + }, + "acm004276jsd" : { + "type" : "ClassUnit", + "id" : "acm004276jsd", + "name" : "NotEmptyValidator", + "compilationUnitId" : "acm004268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004274jsd", "acm004275jsd" ] + }, + "acm004277jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004277jsd", + "name" : "NotNullValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004285jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004278jsd" : { + "type" : "CodePackage", + "id" : "acm004278jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004279jsd" ] + }, + "acm004279jsd" : { + "type" : "CodePackage", + "id" : "acm004279jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004280jsd" ] + }, + "acm004280jsd" : { + "type" : "CodePackage", + "id" : "acm004280jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004281jsd" ] + }, + "acm004281jsd" : { + "type" : "CodePackage", + "id" : "acm004281jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004282jsd" ] + }, + "acm004282jsd" : { + "type" : "CodePackage", + "id" : "acm004282jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004277jsd" ] + }, + "acm004283jsd" : { + "type" : "ControlElement", + "id" : "acm004283jsd", + "name" : "initialize" + }, + "acm004284jsd" : { + "type" : "ControlElement", + "id" : "acm004284jsd", + "name" : "isValid" + }, + "acm004285jsd" : { + "type" : "ClassUnit", + "id" : "acm004285jsd", + "name" : "NotNullValidator", + "compilationUnitId" : "acm004277jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004283jsd", "acm004284jsd" ] + }, + "acm004286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004286jsd", + "name" : "PasswordValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004294jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004287jsd" : { + "type" : "CodePackage", + "id" : "acm004287jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004288jsd" ] + }, + "acm004288jsd" : { + "type" : "CodePackage", + "id" : "acm004288jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004289jsd" ] + }, + "acm004289jsd" : { + "type" : "CodePackage", + "id" : "acm004289jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004290jsd" ] + }, + "acm004290jsd" : { + "type" : "CodePackage", + "id" : "acm004290jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004291jsd" ] + }, + "acm004291jsd" : { + "type" : "CodePackage", + "id" : "acm004291jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004286jsd" ] + }, + "acm004292jsd" : { + "type" : "ControlElement", + "id" : "acm004292jsd", + "name" : "initialize" + }, + "acm004293jsd" : { + "type" : "ControlElement", + "id" : "acm004293jsd", + "name" : "isValid" + }, + "acm004294jsd" : { + "type" : "ClassUnit", + "id" : "acm004294jsd", + "name" : "PasswordValidator", + "compilationUnitId" : "acm004286jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004294jsd" ], + "content" : [ "acm004292jsd", "acm004293jsd" ] + }, + "acm004295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004295jsd", + "name" : "PatternValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004303jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004296jsd" : { + "type" : "CodePackage", + "id" : "acm004296jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004297jsd" ] + }, + "acm004297jsd" : { + "type" : "CodePackage", + "id" : "acm004297jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004298jsd" ] + }, + "acm004298jsd" : { + "type" : "CodePackage", + "id" : "acm004298jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004299jsd" ] + }, + "acm004299jsd" : { + "type" : "CodePackage", + "id" : "acm004299jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004300jsd" ] + }, + "acm004300jsd" : { + "type" : "CodePackage", + "id" : "acm004300jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004295jsd" ] + }, + "acm004301jsd" : { + "type" : "ControlElement", + "id" : "acm004301jsd", + "name" : "initialize" + }, + "acm004302jsd" : { + "type" : "ControlElement", + "id" : "acm004302jsd", + "name" : "isValid" + }, + "acm004303jsd" : { + "type" : "ClassUnit", + "id" : "acm004303jsd", + "name" : "PatternValidator", + "compilationUnitId" : "acm004295jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004301jsd", "acm004302jsd" ] + }, + "acm004304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004304jsd", + "name" : "PostChecksumValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004312jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004305jsd" : { + "type" : "CodePackage", + "id" : "acm004305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004306jsd" ] + }, + "acm004306jsd" : { + "type" : "CodePackage", + "id" : "acm004306jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004307jsd" ] + }, + "acm004307jsd" : { + "type" : "CodePackage", + "id" : "acm004307jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004308jsd" ] + }, + "acm004308jsd" : { + "type" : "CodePackage", + "id" : "acm004308jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004309jsd" ] + }, + "acm004309jsd" : { + "type" : "CodePackage", + "id" : "acm004309jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004304jsd" ] + }, + "acm004310jsd" : { + "type" : "ControlElement", + "id" : "acm004310jsd", + "name" : "initialize" + }, + "acm004311jsd" : { + "type" : "ControlElement", + "id" : "acm004311jsd", + "name" : "isValid" + }, + "acm004312jsd" : { + "type" : "ClassUnit", + "id" : "acm004312jsd", + "name" : "PostChecksumValidator", + "compilationUnitId" : "acm004304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004204jsd", "acm004312jsd" ], + "content" : [ "acm004310jsd", "acm004311jsd" ] + }, + "acm004313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004313jsd", + "name" : "SizeValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004321jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004314jsd" : { + "type" : "CodePackage", + "id" : "acm004314jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004315jsd" ] + }, + "acm004315jsd" : { + "type" : "CodePackage", + "id" : "acm004315jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004316jsd" ] + }, + "acm004316jsd" : { + "type" : "CodePackage", + "id" : "acm004316jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004317jsd" ] + }, + "acm004317jsd" : { + "type" : "CodePackage", + "id" : "acm004317jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004318jsd" ] + }, + "acm004318jsd" : { + "type" : "CodePackage", + "id" : "acm004318jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004313jsd" ] + }, + "acm004319jsd" : { + "type" : "ControlElement", + "id" : "acm004319jsd", + "name" : "initialize" + }, + "acm004320jsd" : { + "type" : "ControlElement", + "id" : "acm004320jsd", + "name" : "isValid" + }, + "acm004321jsd" : { + "type" : "ClassUnit", + "id" : "acm004321jsd", + "name" : "SizeValidator", + "compilationUnitId" : "acm004313jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004319jsd", "acm004320jsd" ] + }, + "acm004322jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004322jsd", + "name" : "UserSessionValidator", + "parentId" : "acm004210jsd", + "content" : [ "acm004330jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "model", "validator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004323jsd" : { + "type" : "CodePackage", + "id" : "acm004323jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004324jsd" ] + }, + "acm004324jsd" : { + "type" : "CodePackage", + "id" : "acm004324jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004325jsd" ] + }, + "acm004325jsd" : { + "type" : "CodePackage", + "id" : "acm004325jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004326jsd" ] + }, + "acm004326jsd" : { + "type" : "CodePackage", + "id" : "acm004326jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm004327jsd" ] + }, + "acm004327jsd" : { + "type" : "CodePackage", + "id" : "acm004327jsd", + "name" : "validator", + "parentId" : null, + "content" : [ "acm004322jsd" ] + }, + "acm004328jsd" : { + "type" : "ControlElement", + "id" : "acm004328jsd", + "name" : "initialize" + }, + "acm004329jsd" : { + "type" : "ControlElement", + "id" : "acm004329jsd", + "name" : "isValid" + }, + "acm004330jsd" : { + "type" : "ClassUnit", + "id" : "acm004330jsd", + "name" : "UserSessionValidator", + "compilationUnitId" : "acm004322jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003229jsd" ], + "content" : [ "acm004328jsd", "acm004329jsd" ] + }, + "acm004331jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004331jsd", + "name" : "IPublisherService", + "parentId" : "acm004335jsd", + "content" : [ "acm004343jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "pub" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004332jsd" : { + "type" : "CodePackage", + "id" : "acm004332jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004333jsd" ] + }, + "acm004333jsd" : { + "type" : "CodePackage", + "id" : "acm004333jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004334jsd" ] + }, + "acm004334jsd" : { + "type" : "CodePackage", + "id" : "acm004334jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004335jsd" ] + }, + "acm004335jsd" : { + "type" : "CodePackage", + "id" : "acm004335jsd", + "name" : "pub", + "parentId" : "acm002337jsd", + "content" : [ "acm004331jsd" ] + }, + "acm004336jsd" : { + "type" : "ControlElement", + "id" : "acm004336jsd", + "name" : "destroyMeeting" + }, + "acm004337jsd" : { + "type" : "ControlElement", + "id" : "acm004337jsd", + "name" : "createMeeting" + }, + "acm004338jsd" : { + "type" : "ControlElement", + "id" : "acm004338jsd", + "name" : "endMeeting" + }, + "acm004339jsd" : { + "type" : "ControlElement", + "id" : "acm004339jsd", + "name" : "send" + }, + "acm004340jsd" : { + "type" : "ControlElement", + "id" : "acm004340jsd", + "name" : "registerUser" + }, + "acm004341jsd" : { + "type" : "ControlElement", + "id" : "acm004341jsd", + "name" : "sendKeepAlive" + }, + "acm004342jsd" : { + "type" : "ControlElement", + "id" : "acm004342jsd", + "name" : "sendStunTurnInfo" + }, + "acm004343jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004343jsd", + "name" : "IPublisherService", + "compilationUnitId" : "acm004331jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005623jsd", "acm005644jsd" ], + "content" : [ "acm004336jsd", "acm004337jsd", "acm004338jsd", "acm004339jsd", "acm004340jsd", "acm004341jsd", "acm004342jsd" ] + }, + "acm004344jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004344jsd", + "name" : "ServiceUtils", + "parentId" : "acm004348jsd", + "content" : [ "acm004354jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004345jsd" : { + "type" : "CodePackage", + "id" : "acm004345jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004346jsd" ] + }, + "acm004346jsd" : { + "type" : "CodePackage", + "id" : "acm004346jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004347jsd" ] + }, + "acm004347jsd" : { + "type" : "CodePackage", + "id" : "acm004347jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004348jsd" ] + }, + "acm004348jsd" : { + "type" : "CodePackage", + "id" : "acm004348jsd", + "name" : "service", + "parentId" : "acm002337jsd", + "content" : [ "acm004344jsd", "acm004355jsd", "acm004366jsd", "acm004395jsd", "acm004416jsd" ] + }, + "acm004349jsd" : { + "type" : "ControlElement", + "id" : "acm004349jsd", + "name" : "setMeetingService" + }, + "acm004350jsd" : { + "type" : "ControlElement", + "id" : "acm004350jsd", + "name" : "getMeetingService" + }, + "acm004351jsd" : { + "type" : "ControlElement", + "id" : "acm004351jsd", + "name" : "setValidationService" + }, + "acm004352jsd" : { + "type" : "ControlElement", + "id" : "acm004352jsd", + "name" : "getValidationService" + }, + "acm004353jsd" : { + "type" : "ControlElement", + "id" : "acm004353jsd", + "name" : "findMeetingFromMeetingID" + }, + "acm004354jsd" : { + "type" : "ClassUnit", + "id" : "acm004354jsd", + "name" : "ServiceUtils", + "compilationUnitId" : "acm004344jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm002612jsd", "acm002943jsd", "acm004354jsd", "acm004389jsd" ], + "content" : [ "acm004349jsd", "acm004350jsd", "acm004351jsd", "acm004352jsd", "acm004353jsd" ] + }, + "acm004355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004355jsd", + "name" : "SessionService", + "parentId" : "acm004348jsd", + "content" : [ "acm004365jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004356jsd" : { + "type" : "CodePackage", + "id" : "acm004356jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004357jsd" ] + }, + "acm004357jsd" : { + "type" : "CodePackage", + "id" : "acm004357jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004358jsd" ] + }, + "acm004358jsd" : { + "type" : "CodePackage", + "id" : "acm004358jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004359jsd" ] + }, + "acm004359jsd" : { + "type" : "CodePackage", + "id" : "acm004359jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004355jsd" ] + }, + "acm004360jsd" : { + "type" : "ControlElement", + "id" : "acm004360jsd", + "name" : "SessionService" + }, + "acm004361jsd" : { + "type" : "ControlElement", + "id" : "acm004361jsd", + "name" : "setSessionToken" + }, + "acm004362jsd" : { + "type" : "ControlElement", + "id" : "acm004362jsd", + "name" : "getSessionToken" + }, + "acm004363jsd" : { + "type" : "ControlElement", + "id" : "acm004363jsd", + "name" : "getUserSessionWithToken" + }, + "acm004364jsd" : { + "type" : "ControlElement", + "id" : "acm004364jsd", + "name" : "getMeetingID" + }, + "acm004365jsd" : { + "type" : "ClassUnit", + "id" : "acm004365jsd", + "name" : "SessionService", + "compilationUnitId" : "acm004355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm003229jsd" ], + "content" : [ "acm004360jsd", "acm004361jsd", "acm004362jsd", "acm004363jsd", "acm004364jsd" ] + }, + "acm004366jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004366jsd", + "name" : "ValidationService", + "parentId" : "acm004348jsd", + "content" : [ "acm004389jsd", "acm004390jsd", "acm004394jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004367jsd" : { + "type" : "CodePackage", + "id" : "acm004367jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004368jsd" ] + }, + "acm004368jsd" : { + "type" : "CodePackage", + "id" : "acm004368jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004369jsd" ] + }, + "acm004369jsd" : { + "type" : "CodePackage", + "id" : "acm004369jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004370jsd" ] + }, + "acm004370jsd" : { + "type" : "CodePackage", + "id" : "acm004370jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004366jsd" ] + }, + "acm004371jsd" : { + "type" : "ControlElement", + "id" : "acm004371jsd", + "name" : "ApiCall" + }, + "acm004372jsd" : { + "type" : "ControlElement", + "id" : "acm004372jsd", + "name" : "getName" + }, + "acm004373jsd" : { + "type" : "ControlElement", + "id" : "acm004373jsd", + "name" : "getRequestType" + }, + "acm004374jsd" : { + "type" : "ControlElement", + "id" : "acm004374jsd", + "name" : "ValidationService" + }, + "acm004375jsd" : { + "type" : "ControlElement", + "id" : "acm004375jsd", + "name" : "validate" + }, + "acm004376jsd" : { + "type" : "ControlElement", + "id" : "acm004376jsd", + "name" : "initializeRequest" + }, + "acm004377jsd" : { + "type" : "ControlElement", + "id" : "acm004377jsd", + "name" : "performValidation" + }, + "acm004378jsd" : { + "type" : "ControlElement", + "id" : "acm004378jsd", + "name" : "buildViolationsMap" + }, + "acm004379jsd" : { + "type" : "ControlElement", + "id" : "acm004379jsd", + "name" : "sanitizeParams" + }, + "acm004380jsd" : { + "type" : "ControlElement", + "id" : "acm004380jsd", + "name" : "mapToString" + }, + "acm004381jsd" : { + "type" : "ControlElement", + "id" : "acm004381jsd", + "name" : "buildQueryStringFromParamsMap" + }, + "acm004382jsd" : { + "type" : "ControlElement", + "id" : "acm004382jsd", + "name" : "encodeString" + }, + "acm004383jsd" : { + "type" : "ControlElement", + "id" : "acm004383jsd", + "name" : "setSecuritySalt" + }, + "acm004384jsd" : { + "type" : "ControlElement", + "id" : "acm004384jsd", + "name" : "getSecuritySalt" + }, + "acm004385jsd" : { + "type" : "ControlElement", + "id" : "acm004385jsd", + "name" : "setSupportedChecksumAlgorithms" + }, + "acm004386jsd" : { + "type" : "ControlElement", + "id" : "acm004386jsd", + "name" : "getSupportedChecksumAlgorithms" + }, + "acm004387jsd" : { + "type" : "ControlElement", + "id" : "acm004387jsd", + "name" : "setAllowRequestsWithoutSession" + }, + "acm004388jsd" : { + "type" : "ControlElement", + "id" : "acm004388jsd", + "name" : "getAllowRequestsWithoutSession" + }, + "acm004389jsd" : { + "type" : "ClassUnit", + "id" : "acm004389jsd", + "name" : "ValidationService", + "compilationUnitId" : "acm004366jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003892jsd", "acm003910jsd", "acm003927jsd", "acm003943jsd", "acm003960jsd", "acm003976jsd", "acm004010jsd", "acm004026jsd", "acm004042jsd", "acm004058jsd", "acm004070jsd", "acm004103jsd", "acm004117jsd", "acm004134jsd", "acm004151jsd", "acm004158jsd", "acm004169jsd", "acm004389jsd", "acm004390jsd", "acm004394jsd" ], + "content" : [ "acm004371jsd", "acm004372jsd", "acm004373jsd", "acm004374jsd", "acm004375jsd", "acm004376jsd", "acm004377jsd", "acm004378jsd", "acm004379jsd", "acm004380jsd", "acm004381jsd", "acm004382jsd", "acm004383jsd", "acm004384jsd", "acm004385jsd", "acm004386jsd", "acm004387jsd", "acm004388jsd" ] + }, + "acm004390jsd" : { + "type" : "ClassUnit", + "id" : "acm004390jsd", + "name" : "RequestType", + "compilationUnitId" : "acm004366jsd", + "parentDatatypeId" : "acm004389jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004391jsd" : { + "type" : "ControlElement", + "id" : "acm004391jsd", + "name" : "ApiCall" + }, + "acm004392jsd" : { + "type" : "ControlElement", + "id" : "acm004392jsd", + "name" : "getName" + }, + "acm004393jsd" : { + "type" : "ControlElement", + "id" : "acm004393jsd", + "name" : "getRequestType" + }, + "acm004394jsd" : { + "type" : "ClassUnit", + "id" : "acm004394jsd", + "name" : "ApiCall", + "compilationUnitId" : "acm004366jsd", + "parentDatatypeId" : "acm004389jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004390jsd" ], + "content" : [ "acm004391jsd", "acm004392jsd", "acm004393jsd" ] + }, + "acm004395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004395jsd", + "name" : "XmlService", + "parentId" : "acm004348jsd", + "content" : [ "acm004410jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004396jsd" : { + "type" : "CodePackage", + "id" : "acm004396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004397jsd" ] + }, + "acm004397jsd" : { + "type" : "CodePackage", + "id" : "acm004397jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004398jsd" ] + }, + "acm004398jsd" : { + "type" : "CodePackage", + "id" : "acm004398jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004399jsd" ] + }, + "acm004399jsd" : { + "type" : "CodePackage", + "id" : "acm004399jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004395jsd" ] + }, + "acm004400jsd" : { + "type" : "ControlElement", + "id" : "acm004400jsd", + "name" : "recordingsToXml" + }, + "acm004401jsd" : { + "type" : "ControlElement", + "id" : "acm004401jsd", + "name" : "recordingToXml" + }, + "acm004402jsd" : { + "type" : "ControlElement", + "id" : "acm004402jsd", + "name" : "metadataToXml" + }, + "acm004403jsd" : { + "type" : "ControlElement", + "id" : "acm004403jsd", + "name" : "playbackFormatToXml" + }, + "acm004404jsd" : { + "type" : "ControlElement", + "id" : "acm004404jsd", + "name" : "thumbnailToXml" + }, + "acm004405jsd" : { + "type" : "ControlElement", + "id" : "acm004405jsd", + "name" : "callbackDataToXml" + }, + "acm004406jsd" : { + "type" : "ControlElement", + "id" : "acm004406jsd", + "name" : "constructResponseFromRecordingsXml" + }, + "acm004407jsd" : { + "type" : "ControlElement", + "id" : "acm004407jsd", + "name" : "constructPaginatedResponse" + }, + "acm004408jsd" : { + "type" : "ControlElement", + "id" : "acm004408jsd", + "name" : "xmlToRecording" + }, + "acm004409jsd" : { + "type" : "ControlElement", + "id" : "acm004409jsd", + "name" : "noRecordings" + }, + "acm004410jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004410jsd", + "name" : "XmlService", + "compilationUnitId" : "acm004395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003744jsd", "acm003763jsd", "acm003789jsd", "acm003833jsd", "acm003862jsd" ], + "content" : [ "acm004400jsd", "acm004401jsd", "acm004402jsd", "acm004403jsd", "acm004404jsd", "acm004405jsd", "acm004406jsd", "acm004407jsd", "acm004408jsd", "acm004409jsd" ] + }, + "acm004411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004411jsd", + "name" : "RecordingServiceDbImpl", + "parentId" : "acm004416jsd", + "content" : [ "acm004443jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service", "impl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004412jsd" : { + "type" : "CodePackage", + "id" : "acm004412jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004413jsd" ] + }, + "acm004413jsd" : { + "type" : "CodePackage", + "id" : "acm004413jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004414jsd" ] + }, + "acm004414jsd" : { + "type" : "CodePackage", + "id" : "acm004414jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004415jsd" ] + }, + "acm004415jsd" : { + "type" : "CodePackage", + "id" : "acm004415jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004416jsd" ] + }, + "acm004416jsd" : { + "type" : "CodePackage", + "id" : "acm004416jsd", + "name" : "impl", + "parentId" : "acm004348jsd", + "content" : [ "acm004411jsd", "acm004444jsd", "acm004503jsd" ] + }, + "acm004417jsd" : { + "type" : "ControlElement", + "id" : "acm004417jsd", + "name" : "RecordingServiceDbImpl" + }, + "acm004418jsd" : { + "type" : "ControlElement", + "id" : "acm004418jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm004419jsd" : { + "type" : "ControlElement", + "id" : "acm004419jsd", + "name" : "getRecordingTextTracks" + }, + "acm004420jsd" : { + "type" : "ControlElement", + "id" : "acm004420jsd", + "name" : "putRecordingTextTrack" + }, + "acm004421jsd" : { + "type" : "ControlElement", + "id" : "acm004421jsd", + "name" : "getCaptionTrackInboxDir" + }, + "acm004422jsd" : { + "type" : "ControlElement", + "id" : "acm004422jsd", + "name" : "getCaptionsDir" + }, + "acm004423jsd" : { + "type" : "ControlElement", + "id" : "acm004423jsd", + "name" : "isRecordingExist" + }, + "acm004424jsd" : { + "type" : "ControlElement", + "id" : "acm004424jsd", + "name" : "getRecordings2x" + }, + "acm004425jsd" : { + "type" : "ControlElement", + "id" : "acm004425jsd", + "name" : "existAnyRecording" + }, + "acm004426jsd" : { + "type" : "ControlElement", + "id" : "acm004426jsd", + "name" : "changeState" + }, + "acm004427jsd" : { + "type" : "ControlElement", + "id" : "acm004427jsd", + "name" : "updateMetaParams" + }, + "acm004428jsd" : { + "type" : "ControlElement", + "id" : "acm004428jsd", + "name" : "startIngestAndProcessing" + }, + "acm004429jsd" : { + "type" : "ControlElement", + "id" : "acm004429jsd", + "name" : "markAsEnded" + }, + "acm004430jsd" : { + "type" : "ControlElement", + "id" : "acm004430jsd", + "name" : "kickOffRecordingChapterBreak" + }, + "acm004431jsd" : { + "type" : "ControlElement", + "id" : "acm004431jsd", + "name" : "processMakePresentationDownloadableMsg" + }, + "acm004432jsd" : { + "type" : "ControlElement", + "id" : "acm004432jsd", + "name" : "getDownloadablePresentationFile" + }, + "acm004433jsd" : { + "type" : "ControlElement", + "id" : "acm004433jsd", + "name" : "setRecordingStatusDir" + }, + "acm004434jsd" : { + "type" : "ControlElement", + "id" : "acm004434jsd", + "name" : "setUnpublishedDir" + }, + "acm004435jsd" : { + "type" : "ControlElement", + "id" : "acm004435jsd", + "name" : "setPresentationBaseDir" + }, + "acm004436jsd" : { + "type" : "ControlElement", + "id" : "acm004436jsd", + "name" : "setDefaultServerUrl" + }, + "acm004437jsd" : { + "type" : "ControlElement", + "id" : "acm004437jsd", + "name" : "setDefaultTextTrackUrl" + }, + "acm004438jsd" : { + "type" : "ControlElement", + "id" : "acm004438jsd", + "name" : "setPublishedDir" + }, + "acm004439jsd" : { + "type" : "ControlElement", + "id" : "acm004439jsd", + "name" : "setCaptionsDir" + }, + "acm004440jsd" : { + "type" : "ControlElement", + "id" : "acm004440jsd", + "name" : "setAllowFetchAllRecordings" + }, + "acm004441jsd" : { + "type" : "ControlElement", + "id" : "acm004441jsd", + "name" : "setRecordingServiceHelper" + }, + "acm004442jsd" : { + "type" : "ControlElement", + "id" : "acm004442jsd", + "name" : "setXmlService" + }, + "acm004443jsd" : { + "type" : "ClassUnit", + "id" : "acm004443jsd", + "name" : "RecordingServiceDbImpl", + "compilationUnitId" : "acm004411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002633jsd" ], + "datatypeReferencesIds" : [ "acm003434jsd", "acm003763jsd", "acm003833jsd", "acm004410jsd", "acm004443jsd", "acm004549jsd", "acm004599jsd" ], + "content" : [ "acm004417jsd", "acm004418jsd", "acm004419jsd", "acm004420jsd", "acm004421jsd", "acm004422jsd", "acm004423jsd", "acm004424jsd", "acm004425jsd", "acm004426jsd", "acm004427jsd", "acm004428jsd", "acm004429jsd", "acm004430jsd", "acm004431jsd", "acm004432jsd", "acm004433jsd", "acm004434jsd", "acm004435jsd", "acm004436jsd", "acm004437jsd", "acm004438jsd", "acm004439jsd", "acm004440jsd", "acm004441jsd", "acm004442jsd" ] + }, + "acm004444jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004444jsd", + "name" : "RecordingServiceFileImpl", + "parentId" : "acm004416jsd", + "content" : [ "acm004502jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service", "impl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004445jsd" : { + "type" : "CodePackage", + "id" : "acm004445jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004446jsd" ] + }, + "acm004446jsd" : { + "type" : "CodePackage", + "id" : "acm004446jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004447jsd" ] + }, + "acm004447jsd" : { + "type" : "CodePackage", + "id" : "acm004447jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004448jsd" ] + }, + "acm004448jsd" : { + "type" : "CodePackage", + "id" : "acm004448jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004449jsd" ] + }, + "acm004449jsd" : { + "type" : "CodePackage", + "id" : "acm004449jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm004444jsd" ] + }, + "acm004450jsd" : { + "type" : "ControlElement", + "id" : "acm004450jsd", + "name" : "copyPresentationFile" + }, + "acm004451jsd" : { + "type" : "ControlElement", + "id" : "acm004451jsd", + "name" : "processMakePresentationDownloadableMsg" + }, + "acm004452jsd" : { + "type" : "ControlElement", + "id" : "acm004452jsd", + "name" : "getDownloadablePresentationFile" + }, + "acm004453jsd" : { + "type" : "ControlElement", + "id" : "acm004453jsd", + "name" : "kickOffRecordingChapterBreak" + }, + "acm004454jsd" : { + "type" : "ControlElement", + "id" : "acm004454jsd", + "name" : "startIngestAndProcessing" + }, + "acm004455jsd" : { + "type" : "ControlElement", + "id" : "acm004455jsd", + "name" : "markAsEnded" + }, + "acm004456jsd" : { + "type" : "ControlElement", + "id" : "acm004456jsd", + "name" : "getRecordingsMetadata" + }, + "acm004457jsd" : { + "type" : "ControlElement", + "id" : "acm004457jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm004458jsd" : { + "type" : "ControlElement", + "id" : "acm004458jsd", + "name" : "getRecordingTextTracks" + }, + "acm004459jsd" : { + "type" : "ControlElement", + "id" : "acm004459jsd", + "name" : "putRecordingTextTrack" + }, + "acm004460jsd" : { + "type" : "ControlElement", + "id" : "acm004460jsd", + "name" : "getRecordings2x" + }, + "acm004461jsd" : { + "type" : "ControlElement", + "id" : "acm004461jsd", + "name" : "getRecordingMetadata" + }, + "acm004462jsd" : { + "type" : "ControlElement", + "id" : "acm004462jsd", + "name" : "recordingMatchesMetadata" + }, + "acm004463jsd" : { + "type" : "ControlElement", + "id" : "acm004463jsd", + "name" : "filterRecordingsByMetadata" + }, + "acm004464jsd" : { + "type" : "ControlElement", + "id" : "acm004464jsd", + "name" : "getAllRecordingsFor" + }, + "acm004465jsd" : { + "type" : "ControlElement", + "id" : "acm004465jsd", + "name" : "isRecordingExist" + }, + "acm004466jsd" : { + "type" : "ControlElement", + "id" : "acm004466jsd", + "name" : "existAnyRecording" + }, + "acm004467jsd" : { + "type" : "ControlElement", + "id" : "acm004467jsd", + "name" : "getAllRecordingIds" + }, + "acm004468jsd" : { + "type" : "ControlElement", + "id" : "acm004468jsd", + "name" : "getAllRecordingIds" + }, + "acm004469jsd" : { + "type" : "ControlElement", + "id" : "acm004469jsd", + "name" : "getAllRecordingIds" + }, + "acm004470jsd" : { + "type" : "ControlElement", + "id" : "acm004470jsd", + "name" : "getRecordingsForPath" + }, + "acm004471jsd" : { + "type" : "ControlElement", + "id" : "acm004471jsd", + "name" : "deleteRecording" + }, + "acm004472jsd" : { + "type" : "ControlElement", + "id" : "acm004472jsd", + "name" : "createDirectory" + }, + "acm004473jsd" : { + "type" : "ControlElement", + "id" : "acm004473jsd", + "name" : "deleteDirectory" + }, + "acm004474jsd" : { + "type" : "ControlElement", + "id" : "acm004474jsd", + "name" : "getDirectories" + }, + "acm004475jsd" : { + "type" : "ControlElement", + "id" : "acm004475jsd", + "name" : "getPlaybackFormats" + }, + "acm004476jsd" : { + "type" : "ControlElement", + "id" : "acm004476jsd", + "name" : "setRecordingStatusDir" + }, + "acm004477jsd" : { + "type" : "ControlElement", + "id" : "acm004477jsd", + "name" : "setUnpublishedDir" + }, + "acm004478jsd" : { + "type" : "ControlElement", + "id" : "acm004478jsd", + "name" : "setPresentationBaseDir" + }, + "acm004479jsd" : { + "type" : "ControlElement", + "id" : "acm004479jsd", + "name" : "setDefaultServerUrl" + }, + "acm004480jsd" : { + "type" : "ControlElement", + "id" : "acm004480jsd", + "name" : "setDefaultTextTrackUrl" + }, + "acm004481jsd" : { + "type" : "ControlElement", + "id" : "acm004481jsd", + "name" : "setPublishedDir" + }, + "acm004482jsd" : { + "type" : "ControlElement", + "id" : "acm004482jsd", + "name" : "setCaptionsDir" + }, + "acm004483jsd" : { + "type" : "ControlElement", + "id" : "acm004483jsd", + "name" : "setAllowFetchAllRecordings" + }, + "acm004484jsd" : { + "type" : "ControlElement", + "id" : "acm004484jsd", + "name" : "setRecordingServiceHelper" + }, + "acm004485jsd" : { + "type" : "ControlElement", + "id" : "acm004485jsd", + "name" : "setXmlService" + }, + "acm004486jsd" : { + "type" : "ControlElement", + "id" : "acm004486jsd", + "name" : "shouldIncludeState" + }, + "acm004487jsd" : { + "type" : "ControlElement", + "id" : "acm004487jsd", + "name" : "changeState" + }, + "acm004488jsd" : { + "type" : "ControlElement", + "id" : "acm004488jsd", + "name" : "changeState" + }, + "acm004489jsd" : { + "type" : "ControlElement", + "id" : "acm004489jsd", + "name" : "publishRecording" + }, + "acm004490jsd" : { + "type" : "ControlElement", + "id" : "acm004490jsd", + "name" : "unpublishRecording" + }, + "acm004491jsd" : { + "type" : "ControlElement", + "id" : "acm004491jsd", + "name" : "deleteRecording" + }, + "acm004492jsd" : { + "type" : "ControlElement", + "id" : "acm004492jsd", + "name" : "getAllDirectories" + }, + "acm004493jsd" : { + "type" : "ControlElement", + "id" : "acm004493jsd", + "name" : "getAllDirectories" + }, + "acm004494jsd" : { + "type" : "ControlElement", + "id" : "acm004494jsd", + "name" : "updateMetaParams" + }, + "acm004495jsd" : { + "type" : "ControlElement", + "id" : "acm004495jsd", + "name" : "updateRecordingMetadata" + }, + "acm004496jsd" : { + "type" : "ControlElement", + "id" : "acm004496jsd", + "name" : "indexRecordings" + }, + "acm004497jsd" : { + "type" : "ControlElement", + "id" : "acm004497jsd", + "name" : "getDestinationBaseDirectoryName" + }, + "acm004498jsd" : { + "type" : "ControlElement", + "id" : "acm004498jsd", + "name" : "getDestinationBaseDirectoryName" + }, + "acm004499jsd" : { + "type" : "ControlElement", + "id" : "acm004499jsd", + "name" : "getCaptionTrackInboxDir" + }, + "acm004500jsd" : { + "type" : "ControlElement", + "id" : "acm004500jsd", + "name" : "getCaptionsDir" + }, + "acm004501jsd" : { + "type" : "ControlElement", + "id" : "acm004501jsd", + "name" : "getCaptionFileUrlDirectory" + }, + "acm004502jsd" : { + "type" : "ClassUnit", + "id" : "acm004502jsd", + "name" : "RecordingServiceFileImpl", + "compilationUnitId" : "acm004444jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002633jsd" ], + "datatypeReferencesIds" : [ "acm003118jsd", "acm003434jsd", "acm004410jsd", "acm004502jsd", "acm004599jsd" ], + "content" : [ "acm004450jsd", "acm004451jsd", "acm004452jsd", "acm004453jsd", "acm004454jsd", "acm004455jsd", "acm004456jsd", "acm004457jsd", "acm004458jsd", "acm004459jsd", "acm004460jsd", "acm004461jsd", "acm004462jsd", "acm004463jsd", "acm004464jsd", "acm004465jsd", "acm004466jsd", "acm004467jsd", "acm004468jsd", "acm004469jsd", "acm004470jsd", "acm004471jsd", "acm004472jsd", "acm004473jsd", "acm004474jsd", "acm004475jsd", "acm004476jsd", "acm004477jsd", "acm004478jsd", "acm004479jsd", "acm004480jsd", "acm004481jsd", "acm004482jsd", "acm004483jsd", "acm004484jsd", "acm004485jsd", "acm004486jsd", "acm004487jsd", "acm004488jsd", "acm004489jsd", "acm004490jsd", "acm004491jsd", "acm004492jsd", "acm004493jsd", "acm004494jsd", "acm004495jsd", "acm004496jsd", "acm004497jsd", "acm004498jsd", "acm004499jsd", "acm004500jsd", "acm004501jsd" ] + }, + "acm004503jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004503jsd", + "name" : "XmlServiceImpl", + "parentId" : "acm004416jsd", + "content" : [ "acm004530jsd", "acm004531jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "service", "impl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004504jsd" : { + "type" : "CodePackage", + "id" : "acm004504jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004505jsd" ] + }, + "acm004505jsd" : { + "type" : "CodePackage", + "id" : "acm004505jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004506jsd" ] + }, + "acm004506jsd" : { + "type" : "CodePackage", + "id" : "acm004506jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004507jsd" ] + }, + "acm004507jsd" : { + "type" : "CodePackage", + "id" : "acm004507jsd", + "name" : "service", + "parentId" : null, + "content" : [ "acm004508jsd" ] + }, + "acm004508jsd" : { + "type" : "CodePackage", + "id" : "acm004508jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm004503jsd" ] + }, + "acm004509jsd" : { + "type" : "ControlElement", + "id" : "acm004509jsd", + "name" : "recordingsToXml" + }, + "acm004510jsd" : { + "type" : "ControlElement", + "id" : "acm004510jsd", + "name" : "recordingToXml" + }, + "acm004511jsd" : { + "type" : "ControlElement", + "id" : "acm004511jsd", + "name" : "metadataToXml" + }, + "acm004512jsd" : { + "type" : "ControlElement", + "id" : "acm004512jsd", + "name" : "playbackFormatToXml" + }, + "acm004513jsd" : { + "type" : "ControlElement", + "id" : "acm004513jsd", + "name" : "thumbnailToXml" + }, + "acm004514jsd" : { + "type" : "ControlElement", + "id" : "acm004514jsd", + "name" : "callbackDataToXml" + }, + "acm004515jsd" : { + "type" : "ControlElement", + "id" : "acm004515jsd", + "name" : "constructResponseFromRecordingsXml" + }, + "acm004516jsd" : { + "type" : "ControlElement", + "id" : "acm004516jsd", + "name" : "noRecordings" + }, + "acm004517jsd" : { + "type" : "ControlElement", + "id" : "acm004517jsd", + "name" : "constructPaginatedResponse" + }, + "acm004518jsd" : { + "type" : "ControlElement", + "id" : "acm004518jsd", + "name" : "pageableToXml" + }, + "acm004519jsd" : { + "type" : "ControlElement", + "id" : "acm004519jsd", + "name" : "xmlToRecording" + }, + "acm004520jsd" : { + "type" : "ControlElement", + "id" : "acm004520jsd", + "name" : "parseRecordingDocument" + }, + "acm004521jsd" : { + "type" : "ControlElement", + "id" : "acm004521jsd", + "name" : "parseMetadata" + }, + "acm004522jsd" : { + "type" : "ControlElement", + "id" : "acm004522jsd", + "name" : "parsePlaybackFormat" + }, + "acm004523jsd" : { + "type" : "ControlElement", + "id" : "acm004523jsd", + "name" : "setup" + }, + "acm004524jsd" : { + "type" : "ControlElement", + "id" : "acm004524jsd", + "name" : "createElement" + }, + "acm004525jsd" : { + "type" : "ControlElement", + "id" : "acm004525jsd", + "name" : "documentToString" + }, + "acm004526jsd" : { + "type" : "ControlElement", + "id" : "acm004526jsd", + "name" : "appendFields" + }, + "acm004527jsd" : { + "type" : "ControlElement", + "id" : "acm004527jsd", + "name" : "localDateTimeToEpoch" + }, + "acm004528jsd" : { + "type" : "ControlElement", + "id" : "acm004528jsd", + "name" : "tagExists" + }, + "acm004529jsd" : { + "type" : "ControlElement", + "id" : "acm004529jsd", + "name" : "getNodeData" + }, + "acm004530jsd" : { + "type" : "ClassUnit", + "id" : "acm004530jsd", + "name" : "XmlServiceImpl", + "compilationUnitId" : "acm004503jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004410jsd" ], + "datatypeReferencesIds" : [ "acm003744jsd", "acm003763jsd", "acm003789jsd", "acm003833jsd", "acm003862jsd", "acm004530jsd", "acm004531jsd" ], + "content" : [ "acm004509jsd", "acm004510jsd", "acm004511jsd", "acm004512jsd", "acm004513jsd", "acm004514jsd", "acm004515jsd", "acm004516jsd", "acm004517jsd", "acm004518jsd", "acm004519jsd", "acm004520jsd", "acm004521jsd", "acm004522jsd", "acm004523jsd", "acm004524jsd", "acm004525jsd", "acm004526jsd", "acm004527jsd", "acm004528jsd", "acm004529jsd" ] + }, + "acm004531jsd" : { + "type" : "ClassUnit", + "id" : "acm004531jsd", + "name" : "Type", + "compilationUnitId" : "acm004503jsd", + "parentDatatypeId" : "acm004530jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004532jsd", + "name" : "DataStore", + "parentId" : "acm004536jsd", + "content" : [ "acm004549jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004533jsd" : { + "type" : "CodePackage", + "id" : "acm004533jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004534jsd" ] + }, + "acm004534jsd" : { + "type" : "CodePackage", + "id" : "acm004534jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004535jsd" ] + }, + "acm004535jsd" : { + "type" : "CodePackage", + "id" : "acm004535jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004536jsd" ] + }, + "acm004536jsd" : { + "type" : "CodePackage", + "id" : "acm004536jsd", + "name" : "util", + "parentId" : "acm002337jsd", + "content" : [ "acm004532jsd", "acm004550jsd", "acm004558jsd", "acm004567jsd", "acm004574jsd", "acm004586jsd", "acm004600jsd" ] + }, + "acm004537jsd" : { + "type" : "ControlElement", + "id" : "acm004537jsd", + "name" : "DataStore" + }, + "acm004538jsd" : { + "type" : "ControlElement", + "id" : "acm004538jsd", + "name" : "openConnection" + }, + "acm004539jsd" : { + "type" : "ControlElement", + "id" : "acm004539jsd", + "name" : "getInstance" + }, + "acm004540jsd" : { + "type" : "ControlElement", + "id" : "acm004540jsd", + "name" : "save" + }, + "acm004541jsd" : { + "type" : "ControlElement", + "id" : "acm004541jsd", + "name" : "find" + }, + "acm004542jsd" : { + "type" : "ControlElement", + "id" : "acm004542jsd", + "name" : "findAll" + }, + "acm004543jsd" : { + "type" : "ControlElement", + "id" : "acm004543jsd", + "name" : "findRecordingByRecordId" + }, + "acm004544jsd" : { + "type" : "ControlElement", + "id" : "acm004544jsd", + "name" : "findRecordingsByMeetingId" + }, + "acm004545jsd" : { + "type" : "ControlElement", + "id" : "acm004545jsd", + "name" : "findRecordingsByState" + }, + "acm004546jsd" : { + "type" : "ControlElement", + "id" : "acm004546jsd", + "name" : "findMetadataByFilter" + }, + "acm004547jsd" : { + "type" : "ControlElement", + "id" : "acm004547jsd", + "name" : "delete" + }, + "acm004548jsd" : { + "type" : "ControlElement", + "id" : "acm004548jsd", + "name" : "truncateTables" + }, + "acm004549jsd" : { + "type" : "ClassUnit", + "id" : "acm004549jsd", + "name" : "DataStore", + "compilationUnitId" : "acm004532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003744jsd", "acm003763jsd", "acm003789jsd", "acm003833jsd", "acm003862jsd", "acm004549jsd" ], + "content" : [ "acm004537jsd", "acm004538jsd", "acm004539jsd", "acm004540jsd", "acm004541jsd", "acm004542jsd", "acm004543jsd", "acm004544jsd", "acm004545jsd", "acm004546jsd", "acm004547jsd", "acm004548jsd" ] + }, + "acm004550jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004550jsd", + "name" : "HTML5ProcessLine", + "parentId" : "acm004536jsd", + "content" : [ "acm004557jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004551jsd" : { + "type" : "CodePackage", + "id" : "acm004551jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004552jsd" ] + }, + "acm004552jsd" : { + "type" : "CodePackage", + "id" : "acm004552jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004553jsd" ] + }, + "acm004553jsd" : { + "type" : "CodePackage", + "id" : "acm004553jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004554jsd" ] + }, + "acm004554jsd" : { + "type" : "CodePackage", + "id" : "acm004554jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004550jsd" ] + }, + "acm004555jsd" : { + "type" : "ControlElement", + "id" : "acm004555jsd", + "name" : "HTML5ProcessLine" + }, + "acm004556jsd" : { + "type" : "ControlElement", + "id" : "acm004556jsd", + "name" : "toString" + }, + "acm004557jsd" : { + "type" : "ClassUnit", + "id" : "acm004557jsd", + "name" : "HTML5ProcessLine", + "compilationUnitId" : "acm004550jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004555jsd", "acm004556jsd" ] + }, + "acm004558jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004558jsd", + "name" : "MeetingResponseDetail", + "parentId" : "acm004536jsd", + "content" : [ "acm004566jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004559jsd" : { + "type" : "CodePackage", + "id" : "acm004559jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004560jsd" ] + }, + "acm004560jsd" : { + "type" : "CodePackage", + "id" : "acm004560jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004561jsd" ] + }, + "acm004561jsd" : { + "type" : "CodePackage", + "id" : "acm004561jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004562jsd" ] + }, + "acm004562jsd" : { + "type" : "CodePackage", + "id" : "acm004562jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004558jsd" ] + }, + "acm004563jsd" : { + "type" : "ControlElement", + "id" : "acm004563jsd", + "name" : "MeetingResponseDetail" + }, + "acm004564jsd" : { + "type" : "ControlElement", + "id" : "acm004564jsd", + "name" : "getCreatedOn" + }, + "acm004565jsd" : { + "type" : "ControlElement", + "id" : "acm004565jsd", + "name" : "getMeeting" + }, + "acm004566jsd" : { + "type" : "ClassUnit", + "id" : "acm004566jsd", + "name" : "MeetingResponseDetail", + "compilationUnitId" : "acm004558jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd" ], + "content" : [ "acm004563jsd", "acm004564jsd", "acm004565jsd" ] + }, + "acm004567jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004567jsd", + "name" : "MeetingsResponse", + "parentId" : "acm004536jsd", + "content" : [ "acm004573jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004568jsd" : { + "type" : "CodePackage", + "id" : "acm004568jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004569jsd" ] + }, + "acm004569jsd" : { + "type" : "CodePackage", + "id" : "acm004569jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004570jsd" ] + }, + "acm004570jsd" : { + "type" : "CodePackage", + "id" : "acm004570jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004571jsd" ] + }, + "acm004571jsd" : { + "type" : "CodePackage", + "id" : "acm004571jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004567jsd" ] + }, + "acm004572jsd" : { + "type" : "ControlElement", + "id" : "acm004572jsd", + "name" : "MeetingsResponse" + }, + "acm004573jsd" : { + "type" : "ClassUnit", + "id" : "acm004573jsd", + "name" : "MeetingsResponse", + "compilationUnitId" : "acm004567jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004566jsd" ], + "content" : [ "acm004572jsd" ] + }, + "acm004574jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004574jsd", + "name" : "ParamsUtil", + "parentId" : "acm004536jsd", + "content" : [ "acm004585jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004575jsd" : { + "type" : "CodePackage", + "id" : "acm004575jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004576jsd" ] + }, + "acm004576jsd" : { + "type" : "CodePackage", + "id" : "acm004576jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004577jsd" ] + }, + "acm004577jsd" : { + "type" : "CodePackage", + "id" : "acm004577jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004578jsd" ] + }, + "acm004578jsd" : { + "type" : "CodePackage", + "id" : "acm004578jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004574jsd" ] + }, + "acm004579jsd" : { + "type" : "ControlElement", + "id" : "acm004579jsd", + "name" : "stripControlChars" + }, + "acm004580jsd" : { + "type" : "ControlElement", + "id" : "acm004580jsd", + "name" : "escapeHTMLTags" + }, + "acm004581jsd" : { + "type" : "ControlElement", + "id" : "acm004581jsd", + "name" : "isValidMeetingId" + }, + "acm004582jsd" : { + "type" : "ControlElement", + "id" : "acm004582jsd", + "name" : "containsChar" + }, + "acm004583jsd" : { + "type" : "ControlElement", + "id" : "acm004583jsd", + "name" : "getSessionToken" + }, + "acm004584jsd" : { + "type" : "ControlElement", + "id" : "acm004584jsd", + "name" : "sanitizeString" + }, + "acm004585jsd" : { + "type" : "ClassUnit", + "id" : "acm004585jsd", + "name" : "ParamsUtil", + "compilationUnitId" : "acm004574jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004585jsd" ], + "content" : [ "acm004579jsd", "acm004580jsd", "acm004581jsd", "acm004582jsd", "acm004583jsd", "acm004584jsd" ] + }, + "acm004586jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004586jsd", + "name" : "RecordingMetadataReaderHelper", + "parentId" : "acm004536jsd", + "content" : [ "acm004599jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004587jsd" : { + "type" : "CodePackage", + "id" : "acm004587jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004588jsd" ] + }, + "acm004588jsd" : { + "type" : "CodePackage", + "id" : "acm004588jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004589jsd" ] + }, + "acm004589jsd" : { + "type" : "CodePackage", + "id" : "acm004589jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004590jsd" ] + }, + "acm004590jsd" : { + "type" : "CodePackage", + "id" : "acm004590jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004586jsd" ] + }, + "acm004591jsd" : { + "type" : "ControlElement", + "id" : "acm004591jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm004592jsd" : { + "type" : "ControlElement", + "id" : "acm004592jsd", + "name" : "getRecordingTextTracks" + }, + "acm004593jsd" : { + "type" : "ControlElement", + "id" : "acm004593jsd", + "name" : "putRecordingTextTrack" + }, + "acm004594jsd" : { + "type" : "ControlElement", + "id" : "acm004594jsd", + "name" : "getRecordings2x" + }, + "acm004595jsd" : { + "type" : "ControlElement", + "id" : "acm004595jsd", + "name" : "getRecordingMetadata" + }, + "acm004596jsd" : { + "type" : "ControlElement", + "id" : "acm004596jsd", + "name" : "getMetadataXmlLocation" + }, + "acm004597jsd" : { + "type" : "ControlElement", + "id" : "acm004597jsd", + "name" : "saveRecordingMetadata" + }, + "acm004598jsd" : { + "type" : "ControlElement", + "id" : "acm004598jsd", + "name" : "setRecordingServiceGW" + }, + "acm004599jsd" : { + "type" : "ClassUnit", + "id" : "acm004599jsd", + "name" : "RecordingMetadataReaderHelper", + "compilationUnitId" : "acm004586jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003118jsd", "acm004599jsd", "acm004690jsd" ], + "content" : [ "acm004591jsd", "acm004592jsd", "acm004593jsd", "acm004594jsd", "acm004595jsd", "acm004596jsd", "acm004597jsd", "acm004598jsd" ] + }, + "acm004600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004600jsd", + "name" : "ResponseBuilder", + "parentId" : "acm004536jsd", + "content" : [ "acm004623jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004601jsd" : { + "type" : "CodePackage", + "id" : "acm004601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004602jsd" ] + }, + "acm004602jsd" : { + "type" : "CodePackage", + "id" : "acm004602jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004603jsd" ] + }, + "acm004603jsd" : { + "type" : "CodePackage", + "id" : "acm004603jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm004604jsd" ] + }, + "acm004604jsd" : { + "type" : "CodePackage", + "id" : "acm004604jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004600jsd" ] + }, + "acm004605jsd" : { + "type" : "ControlElement", + "id" : "acm004605jsd", + "name" : "ResponseBuilder" + }, + "acm004606jsd" : { + "type" : "ControlElement", + "id" : "acm004606jsd", + "name" : "ResponseBuilder" + }, + "acm004607jsd" : { + "type" : "ControlElement", + "id" : "acm004607jsd", + "name" : "setUpConfiguration" + }, + "acm004608jsd" : { + "type" : "ControlElement", + "id" : "acm004608jsd", + "name" : "formatPrettyDate" + }, + "acm004609jsd" : { + "type" : "ControlElement", + "id" : "acm004609jsd", + "name" : "buildMeetingVersion" + }, + "acm004610jsd" : { + "type" : "ControlElement", + "id" : "acm004610jsd", + "name" : "buildMeeting" + }, + "acm004611jsd" : { + "type" : "ControlElement", + "id" : "acm004611jsd", + "name" : "buildError" + }, + "acm004612jsd" : { + "type" : "ControlElement", + "id" : "acm004612jsd", + "name" : "buildErrors" + }, + "acm004613jsd" : { + "type" : "ControlElement", + "id" : "acm004613jsd", + "name" : "buildGetMeetingInfoResponse" + }, + "acm004614jsd" : { + "type" : "ControlElement", + "id" : "acm004614jsd", + "name" : "buildJoinMeeting" + }, + "acm004615jsd" : { + "type" : "ControlElement", + "id" : "acm004615jsd", + "name" : "buildGetMeetingsResponse" + }, + "acm004616jsd" : { + "type" : "ControlElement", + "id" : "acm004616jsd", + "name" : "buildIsMeetingRunning" + }, + "acm004617jsd" : { + "type" : "ControlElement", + "id" : "acm004617jsd", + "name" : "buildEndRunning" + }, + "acm004618jsd" : { + "type" : "ControlElement", + "id" : "acm004618jsd", + "name" : "buildGetSessionsResponse" + }, + "acm004619jsd" : { + "type" : "ControlElement", + "id" : "acm004619jsd", + "name" : "buildGetRecordingsResponse" + }, + "acm004620jsd" : { + "type" : "ControlElement", + "id" : "acm004620jsd", + "name" : "buildInsertDocumentResponse" + }, + "acm004621jsd" : { + "type" : "ControlElement", + "id" : "acm004621jsd", + "name" : "getTemplate" + }, + "acm004622jsd" : { + "type" : "ControlElement", + "id" : "acm004622jsd", + "name" : "processData" + }, + "acm004623jsd" : { + "type" : "ClassUnit", + "id" : "acm004623jsd", + "name" : "ResponseBuilder", + "compilationUnitId" : "acm004600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd", "acm003118jsd", "acm003229jsd", "acm004566jsd", "acm004623jsd" ], + "content" : [ "acm004605jsd", "acm004606jsd", "acm004607jsd", "acm004608jsd", "acm004609jsd", "acm004610jsd", "acm004611jsd", "acm004612jsd", "acm004613jsd", "acm004614jsd", "acm004615jsd", "acm004616jsd", "acm004617jsd", "acm004618jsd", "acm004619jsd", "acm004620jsd", "acm004621jsd", "acm004622jsd" ] + }, + "acm004624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004624jsd", + "name" : "IBbbWebApiGWApp", + "parentId" : "acm004627jsd", + "content" : [ "acm004639jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004625jsd" : { + "type" : "CodePackage", + "id" : "acm004625jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004626jsd" ] + }, + "acm004626jsd" : { + "type" : "CodePackage", + "id" : "acm004626jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004627jsd" ] + }, + "acm004627jsd" : { + "type" : "CodePackage", + "id" : "acm004627jsd", + "name" : "api2", + "parentId" : "acm001339jsd", + "content" : [ "acm004624jsd", "acm004640jsd", "acm004665jsd", "acm004680jsd", "acm004695jsd" ] + }, + "acm004628jsd" : { + "type" : "ControlElement", + "id" : "acm004628jsd", + "name" : "send" + }, + "acm004629jsd" : { + "type" : "ControlElement", + "id" : "acm004629jsd", + "name" : "createMeeting" + }, + "acm004630jsd" : { + "type" : "ControlElement", + "id" : "acm004630jsd", + "name" : "registerUser" + }, + "acm004631jsd" : { + "type" : "ControlElement", + "id" : "acm004631jsd", + "name" : "guestWaitingLeft" + }, + "acm004632jsd" : { + "type" : "ControlElement", + "id" : "acm004632jsd", + "name" : "destroyMeeting" + }, + "acm004633jsd" : { + "type" : "ControlElement", + "id" : "acm004633jsd", + "name" : "endMeeting" + }, + "acm004634jsd" : { + "type" : "ControlElement", + "id" : "acm004634jsd", + "name" : "sendKeepAlive" + }, + "acm004635jsd" : { + "type" : "ControlElement", + "id" : "acm004635jsd", + "name" : "publishedRecording" + }, + "acm004636jsd" : { + "type" : "ControlElement", + "id" : "acm004636jsd", + "name" : "unpublishedRecording" + }, + "acm004637jsd" : { + "type" : "ControlElement", + "id" : "acm004637jsd", + "name" : "deletedRecording" + }, + "acm004638jsd" : { + "type" : "ControlElement", + "id" : "acm004638jsd", + "name" : "sendDocConversionMsg" + }, + "acm004639jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004639jsd", + "name" : "IBbbWebApiGWApp", + "compilationUnitId" : "acm004624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002684jsd", "acm002730jsd", "acm002757jsd", "acm003294jsd", "acm003303jsd", "acm003312jsd", "acm003330jsd", "acm003339jsd", "acm005429jsd" ], + "content" : [ "acm004628jsd", "acm004629jsd", "acm004630jsd", "acm004631jsd", "acm004632jsd", "acm004633jsd", "acm004634jsd", "acm004635jsd", "acm004636jsd", "acm004637jsd", "acm004638jsd" ] + }, + "acm004640jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004640jsd", + "name" : "IMeetingService", + "parentId" : "acm004627jsd", + "content" : [ "acm004664jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004641jsd" : { + "type" : "CodePackage", + "id" : "acm004641jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004642jsd" ] + }, + "acm004642jsd" : { + "type" : "CodePackage", + "id" : "acm004642jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004643jsd" ] + }, + "acm004643jsd" : { + "type" : "CodePackage", + "id" : "acm004643jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004640jsd" ] + }, + "acm004644jsd" : { + "type" : "ControlElement", + "id" : "acm004644jsd", + "name" : "addUserSession" + }, + "acm004645jsd" : { + "type" : "ControlElement", + "id" : "acm004645jsd", + "name" : "registerUser" + }, + "acm004646jsd" : { + "type" : "ControlElement", + "id" : "acm004646jsd", + "name" : "getUserSession" + }, + "acm004647jsd" : { + "type" : "ControlElement", + "id" : "acm004647jsd", + "name" : "removeUserSession" + }, + "acm004648jsd" : { + "type" : "ControlElement", + "id" : "acm004648jsd", + "name" : "purgeRegisteredUsers" + }, + "acm004649jsd" : { + "type" : "ControlElement", + "id" : "acm004649jsd", + "name" : "getMeetings" + }, + "acm004650jsd" : { + "type" : "ControlElement", + "id" : "acm004650jsd", + "name" : "getSessions" + }, + "acm004651jsd" : { + "type" : "ControlElement", + "id" : "acm004651jsd", + "name" : "createMeeting" + }, + "acm004652jsd" : { + "type" : "ControlElement", + "id" : "acm004652jsd", + "name" : "getMeeting" + }, + "acm004653jsd" : { + "type" : "ControlElement", + "id" : "acm004653jsd", + "name" : "getMeetingsWithId" + }, + "acm004654jsd" : { + "type" : "ControlElement", + "id" : "acm004654jsd", + "name" : "getNotEndedMeetingWithId" + }, + "acm004655jsd" : { + "type" : "ControlElement", + "id" : "acm004655jsd", + "name" : "isMeetingWithVoiceBridgeExist" + }, + "acm004656jsd" : { + "type" : "ControlElement", + "id" : "acm004656jsd", + "name" : "send" + }, + "acm004657jsd" : { + "type" : "ControlElement", + "id" : "acm004657jsd", + "name" : "endMeeting" + }, + "acm004658jsd" : { + "type" : "ControlElement", + "id" : "acm004658jsd", + "name" : "addUserCustomData" + }, + "acm004659jsd" : { + "type" : "ControlElement", + "id" : "acm004659jsd", + "name" : "userJoinedVoice" + }, + "acm004660jsd" : { + "type" : "ControlElement", + "id" : "acm004660jsd", + "name" : "userLeftVoice" + }, + "acm004661jsd" : { + "type" : "ControlElement", + "id" : "acm004661jsd", + "name" : "userListeningOnly" + }, + "acm004662jsd" : { + "type" : "ControlElement", + "id" : "acm004662jsd", + "name" : "userSharedWebcam" + }, + "acm004663jsd" : { + "type" : "ControlElement", + "id" : "acm004663jsd", + "name" : "userUnsharedWebcam" + }, + "acm004664jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004664jsd", + "name" : "IMeetingService", + "compilationUnitId" : "acm004640jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002943jsd", "acm003229jsd", "acm003530jsd", "acm003546jsd", "acm003554jsd", "acm003578jsd", "acm003594jsd" ], + "content" : [ "acm004644jsd", "acm004645jsd", "acm004646jsd", "acm004647jsd", "acm004648jsd", "acm004649jsd", "acm004650jsd", "acm004651jsd", "acm004652jsd", "acm004653jsd", "acm004654jsd", "acm004655jsd", "acm004656jsd", "acm004657jsd", "acm004658jsd", "acm004659jsd", "acm004660jsd", "acm004661jsd", "acm004662jsd", "acm004663jsd" ] + }, + "acm004665jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004665jsd", + "name" : "IRecordingService", + "parentId" : "acm004627jsd", + "content" : [ "acm004679jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004666jsd" : { + "type" : "CodePackage", + "id" : "acm004666jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004667jsd" ] + }, + "acm004667jsd" : { + "type" : "CodePackage", + "id" : "acm004667jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004668jsd" ] + }, + "acm004668jsd" : { + "type" : "CodePackage", + "id" : "acm004668jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004665jsd" ] + }, + "acm004669jsd" : { + "type" : "ControlElement", + "id" : "acm004669jsd", + "name" : "getRecordingsMetadata" + }, + "acm004670jsd" : { + "type" : "ControlElement", + "id" : "acm004670jsd", + "name" : "getRecordings" + }, + "acm004671jsd" : { + "type" : "ControlElement", + "id" : "acm004671jsd", + "name" : "filterRecordingsByMetadata" + }, + "acm004672jsd" : { + "type" : "ControlElement", + "id" : "acm004672jsd", + "name" : "filterRecordingsByMetadata" + }, + "acm004673jsd" : { + "type" : "ControlElement", + "id" : "acm004673jsd", + "name" : "reorderRecordings" + }, + "acm004674jsd" : { + "type" : "ControlElement", + "id" : "acm004674jsd", + "name" : "existsAnyRecording" + }, + "acm004675jsd" : { + "type" : "ControlElement", + "id" : "acm004675jsd", + "name" : "setPublishRecording" + }, + "acm004676jsd" : { + "type" : "ControlElement", + "id" : "acm004676jsd", + "name" : "deleteRecordings" + }, + "acm004677jsd" : { + "type" : "ControlElement", + "id" : "acm004677jsd", + "name" : "updateRecordings" + }, + "acm004678jsd" : { + "type" : "ControlElement", + "id" : "acm004678jsd", + "name" : "processRecording" + }, + "acm004679jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004679jsd", + "name" : "IRecordingService", + "compilationUnitId" : "acm004665jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003106jsd", "acm003118jsd" ], + "content" : [ "acm004669jsd", "acm004670jsd", "acm004671jsd", "acm004672jsd", "acm004673jsd", "acm004674jsd", "acm004675jsd", "acm004676jsd", "acm004677jsd", "acm004678jsd" ] + }, + "acm004680jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004680jsd", + "name" : "RecordingServiceGW", + "parentId" : "acm004627jsd", + "content" : [ "acm004690jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004681jsd" : { + "type" : "CodePackage", + "id" : "acm004681jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004682jsd" ] + }, + "acm004682jsd" : { + "type" : "CodePackage", + "id" : "acm004682jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004683jsd" ] + }, + "acm004683jsd" : { + "type" : "CodePackage", + "id" : "acm004683jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004680jsd" ] + }, + "acm004684jsd" : { + "type" : "ControlElement", + "id" : "acm004684jsd", + "name" : "getRecordings2x" + }, + "acm004685jsd" : { + "type" : "ControlElement", + "id" : "acm004685jsd", + "name" : "getRecordingMetadata" + }, + "acm004686jsd" : { + "type" : "ControlElement", + "id" : "acm004686jsd", + "name" : "saveRecordingMetadata" + }, + "acm004687jsd" : { + "type" : "ControlElement", + "id" : "acm004687jsd", + "name" : "validateTextTrackSingleUseToken" + }, + "acm004688jsd" : { + "type" : "ControlElement", + "id" : "acm004688jsd", + "name" : "getRecordingTextTracks" + }, + "acm004689jsd" : { + "type" : "ControlElement", + "id" : "acm004689jsd", + "name" : "putRecordingTextTrack" + }, + "acm004690jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004690jsd", + "name" : "RecordingServiceGW", + "compilationUnitId" : "acm004680jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003118jsd" ], + "content" : [ "acm004684jsd", "acm004685jsd", "acm004686jsd", "acm004687jsd", "acm004688jsd", "acm004689jsd" ] + }, + "acm004691jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004691jsd", + "name" : "DurationProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004697jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004692jsd" : { + "type" : "CodePackage", + "id" : "acm004692jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004693jsd" ] + }, + "acm004693jsd" : { + "type" : "CodePackage", + "id" : "acm004693jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004694jsd" ] + }, + "acm004694jsd" : { + "type" : "CodePackage", + "id" : "acm004694jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004695jsd" ] + }, + "acm004695jsd" : { + "type" : "CodePackage", + "id" : "acm004695jsd", + "name" : "domain", + "parentId" : "acm004627jsd", + "content" : [ "acm004691jsd", "acm004698jsd", "acm004705jsd", "acm004712jsd", "acm004719jsd", "acm004726jsd", "acm004733jsd", "acm004740jsd" ] + }, + "acm004696jsd" : { + "type" : "ControlElement", + "id" : "acm004696jsd", + "name" : "DurationProp2" + }, + "acm004697jsd" : { + "type" : "ClassUnit", + "id" : "acm004697jsd", + "name" : "DurationProp2", + "compilationUnitId" : "acm004691jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004696jsd" ] + }, + "acm004698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004698jsd", + "name" : "Meeting2", + "parentId" : "acm004695jsd", + "content" : [ "acm004704jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004699jsd" : { + "type" : "CodePackage", + "id" : "acm004699jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004700jsd" ] + }, + "acm004700jsd" : { + "type" : "CodePackage", + "id" : "acm004700jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004701jsd" ] + }, + "acm004701jsd" : { + "type" : "CodePackage", + "id" : "acm004701jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004702jsd" ] + }, + "acm004702jsd" : { + "type" : "CodePackage", + "id" : "acm004702jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004698jsd" ] + }, + "acm004703jsd" : { + "type" : "ControlElement", + "id" : "acm004703jsd", + "name" : "Meeting2" + }, + "acm004704jsd" : { + "type" : "ClassUnit", + "id" : "acm004704jsd", + "name" : "Meeting2", + "compilationUnitId" : "acm004698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004697jsd", "acm004711jsd", "acm004718jsd", "acm004725jsd", "acm004732jsd", "acm004739jsd", "acm004746jsd" ], + "content" : [ "acm004703jsd" ] + }, + "acm004705jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004705jsd", + "name" : "MeetingProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004711jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004706jsd" : { + "type" : "CodePackage", + "id" : "acm004706jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004707jsd" ] + }, + "acm004707jsd" : { + "type" : "CodePackage", + "id" : "acm004707jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004708jsd" ] + }, + "acm004708jsd" : { + "type" : "CodePackage", + "id" : "acm004708jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004709jsd" ] + }, + "acm004709jsd" : { + "type" : "CodePackage", + "id" : "acm004709jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004705jsd" ] + }, + "acm004710jsd" : { + "type" : "ControlElement", + "id" : "acm004710jsd", + "name" : "MeetingProp2" + }, + "acm004711jsd" : { + "type" : "ClassUnit", + "id" : "acm004711jsd", + "name" : "MeetingProp2", + "compilationUnitId" : "acm004705jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004710jsd" ] + }, + "acm004712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004712jsd", + "name" : "PasswordProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004718jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004713jsd" : { + "type" : "CodePackage", + "id" : "acm004713jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004714jsd" ] + }, + "acm004714jsd" : { + "type" : "CodePackage", + "id" : "acm004714jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004715jsd" ] + }, + "acm004715jsd" : { + "type" : "CodePackage", + "id" : "acm004715jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004716jsd" ] + }, + "acm004716jsd" : { + "type" : "CodePackage", + "id" : "acm004716jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004712jsd" ] + }, + "acm004717jsd" : { + "type" : "ControlElement", + "id" : "acm004717jsd", + "name" : "PasswordProp2" + }, + "acm004718jsd" : { + "type" : "ClassUnit", + "id" : "acm004718jsd", + "name" : "PasswordProp2", + "compilationUnitId" : "acm004712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004717jsd" ] + }, + "acm004719jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004719jsd", + "name" : "RecordProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004725jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004720jsd" : { + "type" : "CodePackage", + "id" : "acm004720jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004721jsd" ] + }, + "acm004721jsd" : { + "type" : "CodePackage", + "id" : "acm004721jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004722jsd" ] + }, + "acm004722jsd" : { + "type" : "CodePackage", + "id" : "acm004722jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004723jsd" ] + }, + "acm004723jsd" : { + "type" : "CodePackage", + "id" : "acm004723jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004719jsd" ] + }, + "acm004724jsd" : { + "type" : "ControlElement", + "id" : "acm004724jsd", + "name" : "RecordProp2" + }, + "acm004725jsd" : { + "type" : "ClassUnit", + "id" : "acm004725jsd", + "name" : "RecordProp2", + "compilationUnitId" : "acm004719jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004724jsd" ] + }, + "acm004726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004726jsd", + "name" : "UsersProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004732jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004727jsd" : { + "type" : "CodePackage", + "id" : "acm004727jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004728jsd" ] + }, + "acm004728jsd" : { + "type" : "CodePackage", + "id" : "acm004728jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004729jsd" ] + }, + "acm004729jsd" : { + "type" : "CodePackage", + "id" : "acm004729jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004730jsd" ] + }, + "acm004730jsd" : { + "type" : "CodePackage", + "id" : "acm004730jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004726jsd" ] + }, + "acm004731jsd" : { + "type" : "ControlElement", + "id" : "acm004731jsd", + "name" : "UsersProp2" + }, + "acm004732jsd" : { + "type" : "ClassUnit", + "id" : "acm004732jsd", + "name" : "UsersProp2", + "compilationUnitId" : "acm004726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004731jsd" ] + }, + "acm004733jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004733jsd", + "name" : "VoiceProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004739jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004734jsd" : { + "type" : "CodePackage", + "id" : "acm004734jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004735jsd" ] + }, + "acm004735jsd" : { + "type" : "CodePackage", + "id" : "acm004735jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004736jsd" ] + }, + "acm004736jsd" : { + "type" : "CodePackage", + "id" : "acm004736jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004737jsd" ] + }, + "acm004737jsd" : { + "type" : "CodePackage", + "id" : "acm004737jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004733jsd" ] + }, + "acm004738jsd" : { + "type" : "ControlElement", + "id" : "acm004738jsd", + "name" : "VoiceProp2" + }, + "acm004739jsd" : { + "type" : "ClassUnit", + "id" : "acm004739jsd", + "name" : "VoiceProp2", + "compilationUnitId" : "acm004733jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004738jsd" ] + }, + "acm004740jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004740jsd", + "name" : "WelcomeProp2", + "parentId" : "acm004695jsd", + "content" : [ "acm004746jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "api2", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004741jsd" : { + "type" : "CodePackage", + "id" : "acm004741jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004742jsd" ] + }, + "acm004742jsd" : { + "type" : "CodePackage", + "id" : "acm004742jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004743jsd" ] + }, + "acm004743jsd" : { + "type" : "CodePackage", + "id" : "acm004743jsd", + "name" : "api2", + "parentId" : null, + "content" : [ "acm004744jsd" ] + }, + "acm004744jsd" : { + "type" : "CodePackage", + "id" : "acm004744jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm004740jsd" ] + }, + "acm004745jsd" : { + "type" : "ControlElement", + "id" : "acm004745jsd", + "name" : "WelcomeProp2" + }, + "acm004746jsd" : { + "type" : "ClassUnit", + "id" : "acm004746jsd", + "name" : "WelcomeProp2", + "compilationUnitId" : "acm004740jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004745jsd" ] + }, + "acm004747jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004747jsd", + "name" : "BbbAppsIsAliveMessage", + "parentId" : "acm004751jsd", + "content" : [ "acm004755jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "common", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004748jsd" : { + "type" : "CodePackage", + "id" : "acm004748jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004749jsd" ] + }, + "acm004749jsd" : { + "type" : "CodePackage", + "id" : "acm004749jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004750jsd" ] + }, + "acm004750jsd" : { + "type" : "CodePackage", + "id" : "acm004750jsd", + "name" : "common", + "parentId" : "acm001339jsd", + "content" : [ "acm004751jsd" ] + }, + "acm004751jsd" : { + "type" : "CodePackage", + "id" : "acm004751jsd", + "name" : "messages", + "parentId" : "acm004750jsd", + "content" : [ "acm004747jsd", "acm004756jsd" ] + }, + "acm004752jsd" : { + "type" : "ControlElement", + "id" : "acm004752jsd", + "name" : "BbbAppsIsAliveMessage" + }, + "acm004753jsd" : { + "type" : "ControlElement", + "id" : "acm004753jsd", + "name" : "toJson" + }, + "acm004754jsd" : { + "type" : "ControlElement", + "id" : "acm004754jsd", + "name" : "fromJson" + }, + "acm004755jsd" : { + "type" : "ClassUnit", + "id" : "acm004755jsd", + "name" : "BbbAppsIsAliveMessage", + "compilationUnitId" : "acm004747jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004755jsd" ], + "content" : [ "acm004752jsd", "acm004753jsd", "acm004754jsd" ] + }, + "acm004756jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004756jsd", + "name" : "MessageBuilder", + "parentId" : "acm004751jsd", + "content" : [ "acm004764jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "common", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004757jsd" : { + "type" : "CodePackage", + "id" : "acm004757jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004758jsd" ] + }, + "acm004758jsd" : { + "type" : "CodePackage", + "id" : "acm004758jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004759jsd" ] + }, + "acm004759jsd" : { + "type" : "CodePackage", + "id" : "acm004759jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004760jsd" ] + }, + "acm004760jsd" : { + "type" : "CodePackage", + "id" : "acm004760jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm004756jsd" ] + }, + "acm004761jsd" : { + "type" : "ControlElement", + "id" : "acm004761jsd", + "name" : "generateTimestamp" + }, + "acm004762jsd" : { + "type" : "ControlElement", + "id" : "acm004762jsd", + "name" : "buildHeader" + }, + "acm004763jsd" : { + "type" : "ControlElement", + "id" : "acm004763jsd", + "name" : "buildJson" + }, + "acm004764jsd" : { + "type" : "ClassUnit", + "id" : "acm004764jsd", + "name" : "MessageBuilder", + "compilationUnitId" : "acm004756jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004761jsd", "acm004762jsd", "acm004763jsd" ] + }, + "acm004765jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004765jsd", + "name" : "ConversionMessageConstants", + "parentId" : "acm004768jsd", + "content" : [ "acm004770jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004766jsd" : { + "type" : "CodePackage", + "id" : "acm004766jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004767jsd" ] + }, + "acm004767jsd" : { + "type" : "CodePackage", + "id" : "acm004767jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004768jsd" ] + }, + "acm004768jsd" : { + "type" : "CodePackage", + "id" : "acm004768jsd", + "name" : "presentation", + "parentId" : "acm001339jsd", + "content" : [ "acm004765jsd", "acm004771jsd", "acm004801jsd", "acm004808jsd", "acm004821jsd", "acm004827jsd", "acm004833jsd", "acm004839jsd", "acm004846jsd", "acm004854jsd", "acm004861jsd", "acm004867jsd", "acm004873jsd", "acm004879jsd", "acm004885jsd", "acm004891jsd", "acm004913jsd", "acm004921jsd", "acm004932jsd", "acm004938jsd", "acm004944jsd", "acm004950jsd", "acm004982jsd", "acm004993jsd", "acm005062jsd", "acm005372jsd" ] + }, + "acm004769jsd" : { + "type" : "ControlElement", + "id" : "acm004769jsd", + "name" : "ConversionMessageConstants" + }, + "acm004770jsd" : { + "type" : "ClassUnit", + "id" : "acm004770jsd", + "name" : "ConversionMessageConstants", + "compilationUnitId" : "acm004765jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004769jsd" ] + }, + "acm004771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004771jsd", + "name" : "ConversionUpdateMessage", + "parentId" : "acm004768jsd", + "content" : [ "acm004788jsd", "acm004800jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004772jsd" : { + "type" : "CodePackage", + "id" : "acm004772jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004773jsd" ] + }, + "acm004773jsd" : { + "type" : "CodePackage", + "id" : "acm004773jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004774jsd" ] + }, + "acm004774jsd" : { + "type" : "CodePackage", + "id" : "acm004774jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004771jsd" ] + }, + "acm004775jsd" : { + "type" : "ControlElement", + "id" : "acm004775jsd", + "name" : "ConversionUpdateMessage" + }, + "acm004776jsd" : { + "type" : "ControlElement", + "id" : "acm004776jsd", + "name" : "getMessage" + }, + "acm004777jsd" : { + "type" : "ControlElement", + "id" : "acm004777jsd", + "name" : "MessageBuilder" + }, + "acm004778jsd" : { + "type" : "ControlElement", + "id" : "acm004778jsd", + "name" : "entry" + }, + "acm004779jsd" : { + "type" : "ControlElement", + "id" : "acm004779jsd", + "name" : "messageKey" + }, + "acm004780jsd" : { + "type" : "ControlElement", + "id" : "acm004780jsd", + "name" : "pagesCompleted" + }, + "acm004781jsd" : { + "type" : "ControlElement", + "id" : "acm004781jsd", + "name" : "numberOfPages" + }, + "acm004782jsd" : { + "type" : "ControlElement", + "id" : "acm004782jsd", + "name" : "maxNumberPages" + }, + "acm004783jsd" : { + "type" : "ControlElement", + "id" : "acm004783jsd", + "name" : "slidesInfo" + }, + "acm004784jsd" : { + "type" : "ControlElement", + "id" : "acm004784jsd", + "name" : "presBaseUrl" + }, + "acm004785jsd" : { + "type" : "ControlElement", + "id" : "acm004785jsd", + "name" : "build" + }, + "acm004786jsd" : { + "type" : "ControlElement", + "id" : "acm004786jsd", + "name" : "generatePages" + }, + "acm004787jsd" : { + "type" : "ControlElement", + "id" : "acm004787jsd", + "name" : "generateBasePresUrl" + }, + "acm004788jsd" : { + "type" : "ClassUnit", + "id" : "acm004788jsd", + "name" : "ConversionUpdateMessage", + "compilationUnitId" : "acm004771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004800jsd", "acm004981jsd" ], + "content" : [ "acm004775jsd", "acm004776jsd", "acm004777jsd", "acm004778jsd", "acm004779jsd", "acm004780jsd", "acm004781jsd", "acm004782jsd", "acm004783jsd", "acm004784jsd", "acm004785jsd", "acm004786jsd", "acm004787jsd" ] + }, + "acm004789jsd" : { + "type" : "ControlElement", + "id" : "acm004789jsd", + "name" : "MessageBuilder" + }, + "acm004790jsd" : { + "type" : "ControlElement", + "id" : "acm004790jsd", + "name" : "entry" + }, + "acm004791jsd" : { + "type" : "ControlElement", + "id" : "acm004791jsd", + "name" : "messageKey" + }, + "acm004792jsd" : { + "type" : "ControlElement", + "id" : "acm004792jsd", + "name" : "pagesCompleted" + }, + "acm004793jsd" : { + "type" : "ControlElement", + "id" : "acm004793jsd", + "name" : "numberOfPages" + }, + "acm004794jsd" : { + "type" : "ControlElement", + "id" : "acm004794jsd", + "name" : "maxNumberPages" + }, + "acm004795jsd" : { + "type" : "ControlElement", + "id" : "acm004795jsd", + "name" : "slidesInfo" + }, + "acm004796jsd" : { + "type" : "ControlElement", + "id" : "acm004796jsd", + "name" : "presBaseUrl" + }, + "acm004797jsd" : { + "type" : "ControlElement", + "id" : "acm004797jsd", + "name" : "build" + }, + "acm004798jsd" : { + "type" : "ControlElement", + "id" : "acm004798jsd", + "name" : "generatePages" + }, + "acm004799jsd" : { + "type" : "ControlElement", + "id" : "acm004799jsd", + "name" : "generateBasePresUrl" + }, + "acm004800jsd" : { + "type" : "ClassUnit", + "id" : "acm004800jsd", + "name" : "MessageBuilder", + "compilationUnitId" : "acm004771jsd", + "parentDatatypeId" : "acm004788jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004800jsd", "acm004981jsd" ], + "content" : [ "acm004789jsd", "acm004790jsd", "acm004791jsd", "acm004792jsd", "acm004793jsd", "acm004794jsd", "acm004795jsd", "acm004796jsd", "acm004797jsd", "acm004798jsd", "acm004799jsd" ] + }, + "acm004801jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004801jsd", + "name" : "DocumentConversionService", + "parentId" : "acm004768jsd", + "content" : [ "acm004807jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004802jsd" : { + "type" : "CodePackage", + "id" : "acm004802jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004803jsd" ] + }, + "acm004803jsd" : { + "type" : "CodePackage", + "id" : "acm004803jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004804jsd" ] + }, + "acm004804jsd" : { + "type" : "CodePackage", + "id" : "acm004804jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004801jsd" ] + }, + "acm004805jsd" : { + "type" : "ControlElement", + "id" : "acm004805jsd", + "name" : "processDocument" + }, + "acm004806jsd" : { + "type" : "ControlElement", + "id" : "acm004806jsd", + "name" : "sendDocConversionFailedOnMimeType" + }, + "acm004807jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004807jsd", + "name" : "DocumentConversionService", + "compilationUnitId" : "acm004801jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004805jsd", "acm004806jsd" ] + }, + "acm004808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004808jsd", + "name" : "DocumentConversionServiceImp", + "parentId" : "acm004768jsd", + "content" : [ "acm004820jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004809jsd" : { + "type" : "CodePackage", + "id" : "acm004809jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004810jsd" ] + }, + "acm004810jsd" : { + "type" : "CodePackage", + "id" : "acm004810jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004811jsd" ] + }, + "acm004811jsd" : { + "type" : "CodePackage", + "id" : "acm004811jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004808jsd" ] + }, + "acm004812jsd" : { + "type" : "ControlElement", + "id" : "acm004812jsd", + "name" : "processDocument" + }, + "acm004813jsd" : { + "type" : "ControlElement", + "id" : "acm004813jsd", + "name" : "processDocumentStart" + }, + "acm004814jsd" : { + "type" : "ControlElement", + "id" : "acm004814jsd", + "name" : "sendDocConversionFailedOnMimeType" + }, + "acm004815jsd" : { + "type" : "ControlElement", + "id" : "acm004815jsd", + "name" : "sendDocConversionRequestReceived" + }, + "acm004816jsd" : { + "type" : "ControlElement", + "id" : "acm004816jsd", + "name" : "setBbbWebApiGWApp" + }, + "acm004817jsd" : { + "type" : "ControlElement", + "id" : "acm004817jsd", + "name" : "setOfficeToPdfConversionService" + }, + "acm004818jsd" : { + "type" : "ControlElement", + "id" : "acm004818jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm004819jsd" : { + "type" : "ControlElement", + "id" : "acm004819jsd", + "name" : "setPresentationFileProcessor" + }, + "acm004820jsd" : { + "type" : "ClassUnit", + "id" : "acm004820jsd", + "name" : "DocumentConversionServiceImp", + "compilationUnitId" : "acm004808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004807jsd" ], + "datatypeReferencesIds" : [ "acm004639jsd", "acm004820jsd", "acm004853jsd", "acm004920jsd", "acm004981jsd", "acm005164jsd", "acm005289jsd", "acm005318jsd", "acm005381jsd" ], + "content" : [ "acm004812jsd", "acm004813jsd", "acm004814jsd", "acm004815jsd", "acm004816jsd", "acm004817jsd", "acm004818jsd", "acm004819jsd" ] + }, + "acm004821jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004821jsd", + "name" : "FileTypeConstants", + "parentId" : "acm004768jsd", + "content" : [ "acm004826jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004822jsd" : { + "type" : "CodePackage", + "id" : "acm004822jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004823jsd" ] + }, + "acm004823jsd" : { + "type" : "CodePackage", + "id" : "acm004823jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004824jsd" ] + }, + "acm004824jsd" : { + "type" : "CodePackage", + "id" : "acm004824jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004821jsd" ] + }, + "acm004825jsd" : { + "type" : "ControlElement", + "id" : "acm004825jsd", + "name" : "FileTypeConstants" + }, + "acm004826jsd" : { + "type" : "ClassUnit", + "id" : "acm004826jsd", + "name" : "FileTypeConstants", + "compilationUnitId" : "acm004821jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004825jsd" ] + }, + "acm004827jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004827jsd", + "name" : "GeneratedSlidesInfoHelper", + "parentId" : "acm004768jsd", + "content" : [ "acm004832jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004828jsd" : { + "type" : "CodePackage", + "id" : "acm004828jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004829jsd" ] + }, + "acm004829jsd" : { + "type" : "CodePackage", + "id" : "acm004829jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004830jsd" ] + }, + "acm004830jsd" : { + "type" : "CodePackage", + "id" : "acm004830jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004827jsd" ] + }, + "acm004831jsd" : { + "type" : "ControlElement", + "id" : "acm004831jsd", + "name" : "generateUploadedPresentationInfo" + }, + "acm004832jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004832jsd", + "name" : "GeneratedSlidesInfoHelper", + "compilationUnitId" : "acm004827jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004831jsd" ] + }, + "acm004833jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004833jsd", + "name" : "ImageResizer", + "parentId" : "acm004768jsd", + "content" : [ "acm004838jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004834jsd" : { + "type" : "CodePackage", + "id" : "acm004834jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004835jsd" ] + }, + "acm004835jsd" : { + "type" : "CodePackage", + "id" : "acm004835jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004836jsd" ] + }, + "acm004836jsd" : { + "type" : "CodePackage", + "id" : "acm004836jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004833jsd" ] + }, + "acm004837jsd" : { + "type" : "ControlElement", + "id" : "acm004837jsd", + "name" : "resize" + }, + "acm004838jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004838jsd", + "name" : "ImageResizer", + "compilationUnitId" : "acm004833jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004837jsd" ] + }, + "acm004839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004839jsd", + "name" : "MimeTypeUtils", + "parentId" : "acm004768jsd", + "content" : [ "acm004845jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004840jsd" : { + "type" : "CodePackage", + "id" : "acm004840jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004841jsd" ] + }, + "acm004841jsd" : { + "type" : "CodePackage", + "id" : "acm004841jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004842jsd" ] + }, + "acm004842jsd" : { + "type" : "CodePackage", + "id" : "acm004842jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004839jsd" ] + }, + "acm004843jsd" : { + "type" : "ControlElement", + "id" : "acm004843jsd", + "name" : "extensionMatchMimeType" + }, + "acm004844jsd" : { + "type" : "ControlElement", + "id" : "acm004844jsd", + "name" : "getValidMimeTypes" + }, + "acm004845jsd" : { + "type" : "ClassUnit", + "id" : "acm004845jsd", + "name" : "MimeTypeUtils", + "compilationUnitId" : "acm004839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004843jsd", "acm004844jsd" ] + }, + "acm004846jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004846jsd", + "name" : "OfficeToPdfConversionSuccessFilter", + "parentId" : "acm004768jsd", + "content" : [ "acm004853jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004847jsd" : { + "type" : "CodePackage", + "id" : "acm004847jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004848jsd" ] + }, + "acm004848jsd" : { + "type" : "CodePackage", + "id" : "acm004848jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004849jsd" ] + }, + "acm004849jsd" : { + "type" : "CodePackage", + "id" : "acm004849jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004846jsd" ] + }, + "acm004850jsd" : { + "type" : "ControlElement", + "id" : "acm004850jsd", + "name" : "OfficeToPdfConversionSuccessFilter" + }, + "acm004851jsd" : { + "type" : "ControlElement", + "id" : "acm004851jsd", + "name" : "didConversionSucceed" + }, + "acm004852jsd" : { + "type" : "ControlElement", + "id" : "acm004852jsd", + "name" : "sendProgress" + }, + "acm004853jsd" : { + "type" : "ClassUnit", + "id" : "acm004853jsd", + "name" : "OfficeToPdfConversionSuccessFilter", + "compilationUnitId" : "acm004846jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004639jsd", "acm004853jsd", "acm004981jsd", "acm005374jsd" ], + "content" : [ "acm004850jsd", "acm004851jsd", "acm004852jsd" ] + }, + "acm004854jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004854jsd", + "name" : "Page", + "parentId" : "acm004768jsd", + "content" : [ "acm004860jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004855jsd" : { + "type" : "CodePackage", + "id" : "acm004855jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004856jsd" ] + }, + "acm004856jsd" : { + "type" : "CodePackage", + "id" : "acm004856jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004857jsd" ] + }, + "acm004857jsd" : { + "type" : "CodePackage", + "id" : "acm004857jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004854jsd" ] + }, + "acm004858jsd" : { + "type" : "ControlElement", + "id" : "acm004858jsd", + "name" : "Page" + }, + "acm004859jsd" : { + "type" : "ControlElement", + "id" : "acm004859jsd", + "name" : "getNum" + }, + "acm004860jsd" : { + "type" : "ClassUnit", + "id" : "acm004860jsd", + "name" : "Page", + "compilationUnitId" : "acm004854jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004858jsd", "acm004859jsd" ] + }, + "acm004861jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004861jsd", + "name" : "PageAnalyser", + "parentId" : "acm004768jsd", + "content" : [ "acm004866jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004862jsd" : { + "type" : "CodePackage", + "id" : "acm004862jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004863jsd" ] + }, + "acm004863jsd" : { + "type" : "CodePackage", + "id" : "acm004863jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004864jsd" ] + }, + "acm004864jsd" : { + "type" : "CodePackage", + "id" : "acm004864jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004861jsd" ] + }, + "acm004865jsd" : { + "type" : "ControlElement", + "id" : "acm004865jsd", + "name" : "analyse" + }, + "acm004866jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004866jsd", + "name" : "PageAnalyser", + "compilationUnitId" : "acm004861jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004865jsd" ] + }, + "acm004867jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004867jsd", + "name" : "PageConverter", + "parentId" : "acm004768jsd", + "content" : [ "acm004872jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004868jsd" : { + "type" : "CodePackage", + "id" : "acm004868jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004869jsd" ] + }, + "acm004869jsd" : { + "type" : "CodePackage", + "id" : "acm004869jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004870jsd" ] + }, + "acm004870jsd" : { + "type" : "CodePackage", + "id" : "acm004870jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004867jsd" ] + }, + "acm004871jsd" : { + "type" : "ControlElement", + "id" : "acm004871jsd", + "name" : "convert" + }, + "acm004872jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004872jsd", + "name" : "PageConverter", + "compilationUnitId" : "acm004867jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004871jsd" ] + }, + "acm004873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004873jsd", + "name" : "PageCounter", + "parentId" : "acm004768jsd", + "content" : [ "acm004878jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004874jsd" : { + "type" : "CodePackage", + "id" : "acm004874jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004875jsd" ] + }, + "acm004875jsd" : { + "type" : "CodePackage", + "id" : "acm004875jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004876jsd" ] + }, + "acm004876jsd" : { + "type" : "CodePackage", + "id" : "acm004876jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004873jsd" ] + }, + "acm004877jsd" : { + "type" : "ControlElement", + "id" : "acm004877jsd", + "name" : "countNumberOfPages" + }, + "acm004878jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004878jsd", + "name" : "PageCounter", + "compilationUnitId" : "acm004873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004877jsd" ] + }, + "acm004879jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004879jsd", + "name" : "PageExtractor", + "parentId" : "acm004768jsd", + "content" : [ "acm004884jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004880jsd" : { + "type" : "CodePackage", + "id" : "acm004880jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004881jsd" ] + }, + "acm004881jsd" : { + "type" : "CodePackage", + "id" : "acm004881jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004882jsd" ] + }, + "acm004882jsd" : { + "type" : "CodePackage", + "id" : "acm004882jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004879jsd" ] + }, + "acm004883jsd" : { + "type" : "ControlElement", + "id" : "acm004883jsd", + "name" : "extractPage" + }, + "acm004884jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004884jsd", + "name" : "PageExtractor", + "compilationUnitId" : "acm004879jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004883jsd" ] + }, + "acm004885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004885jsd", + "name" : "PngCreator", + "parentId" : "acm004768jsd", + "content" : [ "acm004890jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004886jsd" : { + "type" : "CodePackage", + "id" : "acm004886jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004887jsd" ] + }, + "acm004887jsd" : { + "type" : "CodePackage", + "id" : "acm004887jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004888jsd" ] + }, + "acm004888jsd" : { + "type" : "CodePackage", + "id" : "acm004888jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004885jsd" ] + }, + "acm004889jsd" : { + "type" : "ControlElement", + "id" : "acm004889jsd", + "name" : "createPng" + }, + "acm004890jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004890jsd", + "name" : "PngCreator", + "compilationUnitId" : "acm004885jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004889jsd" ] + }, + "acm004891jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004891jsd", + "name" : "PresentationUrlDownloadService", + "parentId" : "acm004768jsd", + "content" : [ "acm004912jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004892jsd" : { + "type" : "CodePackage", + "id" : "acm004892jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004893jsd" ] + }, + "acm004893jsd" : { + "type" : "CodePackage", + "id" : "acm004893jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004894jsd" ] + }, + "acm004894jsd" : { + "type" : "CodePackage", + "id" : "acm004894jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004891jsd" ] + }, + "acm004895jsd" : { + "type" : "ControlElement", + "id" : "acm004895jsd", + "name" : "stop" + }, + "acm004896jsd" : { + "type" : "ControlElement", + "id" : "acm004896jsd", + "name" : "processUploadedPresentation" + }, + "acm004897jsd" : { + "type" : "ControlElement", + "id" : "acm004897jsd", + "name" : "run" + }, + "acm004898jsd" : { + "type" : "ControlElement", + "id" : "acm004898jsd", + "name" : "processUploadedFile" + }, + "acm004899jsd" : { + "type" : "ControlElement", + "id" : "acm004899jsd", + "name" : "extractPresentationPage" + }, + "acm004900jsd" : { + "type" : "ControlElement", + "id" : "acm004900jsd", + "name" : "run" + }, + "acm004901jsd" : { + "type" : "ControlElement", + "id" : "acm004901jsd", + "name" : "extractPage" + }, + "acm004902jsd" : { + "type" : "ControlElement", + "id" : "acm004902jsd", + "name" : "accept" + }, + "acm004903jsd" : { + "type" : "ControlElement", + "id" : "acm004903jsd", + "name" : "accept" + }, + "acm004904jsd" : { + "type" : "ControlElement", + "id" : "acm004904jsd", + "name" : "followRedirect" + }, + "acm004905jsd" : { + "type" : "ControlElement", + "id" : "acm004905jsd", + "name" : "savePresentation" + }, + "acm004906jsd" : { + "type" : "ControlElement", + "id" : "acm004906jsd", + "name" : "process" + }, + "acm004907jsd" : { + "type" : "ControlElement", + "id" : "acm004907jsd", + "name" : "setPageExtractor" + }, + "acm004908jsd" : { + "type" : "ControlElement", + "id" : "acm004908jsd", + "name" : "setPresentationDir" + }, + "acm004909jsd" : { + "type" : "ControlElement", + "id" : "acm004909jsd", + "name" : "setPresentationBaseURL" + }, + "acm004910jsd" : { + "type" : "ControlElement", + "id" : "acm004910jsd", + "name" : "setDocumentConversionService" + }, + "acm004911jsd" : { + "type" : "ControlElement", + "id" : "acm004911jsd", + "name" : "setBlankPresentation" + }, + "acm004912jsd" : { + "type" : "ClassUnit", + "id" : "acm004912jsd", + "name" : "PresentationUrlDownloadService", + "compilationUnitId" : "acm004891jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004807jsd", "acm004884jsd", "acm004912jsd", "acm004981jsd" ], + "content" : [ "acm004895jsd", "acm004896jsd", "acm004897jsd", "acm004898jsd", "acm004899jsd", "acm004900jsd", "acm004901jsd", "acm004902jsd", "acm004903jsd", "acm004904jsd", "acm004905jsd", "acm004906jsd", "acm004907jsd", "acm004908jsd", "acm004909jsd", "acm004910jsd", "acm004911jsd" ] + }, + "acm004913jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004913jsd", + "name" : "SupportedDocumentFilter", + "parentId" : "acm004768jsd", + "content" : [ "acm004920jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004914jsd" : { + "type" : "CodePackage", + "id" : "acm004914jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004915jsd" ] + }, + "acm004915jsd" : { + "type" : "CodePackage", + "id" : "acm004915jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004916jsd" ] + }, + "acm004916jsd" : { + "type" : "CodePackage", + "id" : "acm004916jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004913jsd" ] + }, + "acm004917jsd" : { + "type" : "ControlElement", + "id" : "acm004917jsd", + "name" : "SupportedDocumentFilter" + }, + "acm004918jsd" : { + "type" : "ControlElement", + "id" : "acm004918jsd", + "name" : "isSupported" + }, + "acm004919jsd" : { + "type" : "ControlElement", + "id" : "acm004919jsd", + "name" : "notifyProgressListener" + }, + "acm004920jsd" : { + "type" : "ClassUnit", + "id" : "acm004920jsd", + "name" : "SupportedDocumentFilter", + "compilationUnitId" : "acm004913jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004639jsd", "acm004920jsd", "acm004981jsd", "acm005374jsd" ], + "content" : [ "acm004917jsd", "acm004918jsd", "acm004919jsd" ] + }, + "acm004921jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004921jsd", + "name" : "SupportedFileTypes", + "parentId" : "acm004768jsd", + "content" : [ "acm004931jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004922jsd" : { + "type" : "CodePackage", + "id" : "acm004922jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004923jsd" ] + }, + "acm004923jsd" : { + "type" : "CodePackage", + "id" : "acm004923jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004924jsd" ] + }, + "acm004924jsd" : { + "type" : "CodePackage", + "id" : "acm004924jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004921jsd" ] + }, + "acm004925jsd" : { + "type" : "ControlElement", + "id" : "acm004925jsd", + "name" : "isFileSupported" + }, + "acm004926jsd" : { + "type" : "ControlElement", + "id" : "acm004926jsd", + "name" : "isOfficeFile" + }, + "acm004927jsd" : { + "type" : "ControlElement", + "id" : "acm004927jsd", + "name" : "isPdfFile" + }, + "acm004928jsd" : { + "type" : "ControlElement", + "id" : "acm004928jsd", + "name" : "isImageFile" + }, + "acm004929jsd" : { + "type" : "ControlElement", + "id" : "acm004929jsd", + "name" : "detectMimeType" + }, + "acm004930jsd" : { + "type" : "ControlElement", + "id" : "acm004930jsd", + "name" : "isPresentationMimeTypeValid" + }, + "acm004931jsd" : { + "type" : "ClassUnit", + "id" : "acm004931jsd", + "name" : "SupportedFileTypes", + "compilationUnitId" : "acm004921jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004845jsd", "acm004931jsd" ], + "content" : [ "acm004925jsd", "acm004926jsd", "acm004927jsd", "acm004928jsd", "acm004929jsd", "acm004930jsd" ] + }, + "acm004932jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004932jsd", + "name" : "SvgImageCreator", + "parentId" : "acm004768jsd", + "content" : [ "acm004937jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004933jsd" : { + "type" : "CodePackage", + "id" : "acm004933jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004934jsd" ] + }, + "acm004934jsd" : { + "type" : "CodePackage", + "id" : "acm004934jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004935jsd" ] + }, + "acm004935jsd" : { + "type" : "CodePackage", + "id" : "acm004935jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004932jsd" ] + }, + "acm004936jsd" : { + "type" : "ControlElement", + "id" : "acm004936jsd", + "name" : "createSvgImage" + }, + "acm004937jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004937jsd", + "name" : "SvgImageCreator", + "compilationUnitId" : "acm004932jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004936jsd" ] + }, + "acm004938jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004938jsd", + "name" : "TextFileCreator", + "parentId" : "acm004768jsd", + "content" : [ "acm004943jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004939jsd" : { + "type" : "CodePackage", + "id" : "acm004939jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004940jsd" ] + }, + "acm004940jsd" : { + "type" : "CodePackage", + "id" : "acm004940jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004941jsd" ] + }, + "acm004941jsd" : { + "type" : "CodePackage", + "id" : "acm004941jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004938jsd" ] + }, + "acm004942jsd" : { + "type" : "ControlElement", + "id" : "acm004942jsd", + "name" : "createTextFile" + }, + "acm004943jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004943jsd", + "name" : "TextFileCreator", + "compilationUnitId" : "acm004938jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004942jsd" ] + }, + "acm004944jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004944jsd", + "name" : "ThumbnailCreator", + "parentId" : "acm004768jsd", + "content" : [ "acm004949jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004945jsd" : { + "type" : "CodePackage", + "id" : "acm004945jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004946jsd" ] + }, + "acm004946jsd" : { + "type" : "CodePackage", + "id" : "acm004946jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004947jsd" ] + }, + "acm004947jsd" : { + "type" : "CodePackage", + "id" : "acm004947jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004944jsd" ] + }, + "acm004948jsd" : { + "type" : "ControlElement", + "id" : "acm004948jsd", + "name" : "createThumbnail" + }, + "acm004949jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004949jsd", + "name" : "ThumbnailCreator", + "compilationUnitId" : "acm004944jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm004948jsd" ] + }, + "acm004950jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004950jsd", + "name" : "UploadedPresentation", + "parentId" : "acm004768jsd", + "content" : [ "acm004981jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004951jsd" : { + "type" : "CodePackage", + "id" : "acm004951jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004952jsd" ] + }, + "acm004952jsd" : { + "type" : "CodePackage", + "id" : "acm004952jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004953jsd" ] + }, + "acm004953jsd" : { + "type" : "CodePackage", + "id" : "acm004953jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004950jsd" ] + }, + "acm004954jsd" : { + "type" : "ControlElement", + "id" : "acm004954jsd", + "name" : "UploadedPresentation" + }, + "acm004955jsd" : { + "type" : "ControlElement", + "id" : "acm004955jsd", + "name" : "UploadedPresentation" + }, + "acm004956jsd" : { + "type" : "ControlElement", + "id" : "acm004956jsd", + "name" : "getUploadedFile" + }, + "acm004957jsd" : { + "type" : "ControlElement", + "id" : "acm004957jsd", + "name" : "setUploadedFile" + }, + "acm004958jsd" : { + "type" : "ControlElement", + "id" : "acm004958jsd", + "name" : "getMeetingId" + }, + "acm004959jsd" : { + "type" : "ControlElement", + "id" : "acm004959jsd", + "name" : "getPodId" + }, + "acm004960jsd" : { + "type" : "ControlElement", + "id" : "acm004960jsd", + "name" : "getId" + }, + "acm004961jsd" : { + "type" : "ControlElement", + "id" : "acm004961jsd", + "name" : "getTemporaryPresentationId" + }, + "acm004962jsd" : { + "type" : "ControlElement", + "id" : "acm004962jsd", + "name" : "getName" + }, + "acm004963jsd" : { + "type" : "ControlElement", + "id" : "acm004963jsd", + "name" : "getBaseUrl" + }, + "acm004964jsd" : { + "type" : "ControlElement", + "id" : "acm004964jsd", + "name" : "getFileType" + }, + "acm004965jsd" : { + "type" : "ControlElement", + "id" : "acm004965jsd", + "name" : "setFileType" + }, + "acm004966jsd" : { + "type" : "ControlElement", + "id" : "acm004966jsd", + "name" : "getNumberOfPages" + }, + "acm004967jsd" : { + "type" : "ControlElement", + "id" : "acm004967jsd", + "name" : "setNumberOfPages" + }, + "acm004968jsd" : { + "type" : "ControlElement", + "id" : "acm004968jsd", + "name" : "getConversionStatus" + }, + "acm004969jsd" : { + "type" : "ControlElement", + "id" : "acm004969jsd", + "name" : "setConversionStatus" + }, + "acm004970jsd" : { + "type" : "ControlElement", + "id" : "acm004970jsd", + "name" : "isDownloadable" + }, + "acm004971jsd" : { + "type" : "ControlElement", + "id" : "acm004971jsd", + "name" : "setDownloadable" + }, + "acm004972jsd" : { + "type" : "ControlElement", + "id" : "acm004972jsd", + "name" : "isRemovable" + }, + "acm004973jsd" : { + "type" : "ControlElement", + "id" : "acm004973jsd", + "name" : "setRemovable" + }, + "acm004974jsd" : { + "type" : "ControlElement", + "id" : "acm004974jsd", + "name" : "isCurrent" + }, + "acm004975jsd" : { + "type" : "ControlElement", + "id" : "acm004975jsd", + "name" : "setCurrent" + }, + "acm004976jsd" : { + "type" : "ControlElement", + "id" : "acm004976jsd", + "name" : "getAuthzToken" + }, + "acm004977jsd" : { + "type" : "ControlElement", + "id" : "acm004977jsd", + "name" : "startConversion" + }, + "acm004978jsd" : { + "type" : "ControlElement", + "id" : "acm004978jsd", + "name" : "isConversionStarted" + }, + "acm004979jsd" : { + "type" : "ControlElement", + "id" : "acm004979jsd", + "name" : "isUploadFailed" + }, + "acm004980jsd" : { + "type" : "ControlElement", + "id" : "acm004980jsd", + "name" : "getUploadFailReason" + }, + "acm004981jsd" : { + "type" : "ClassUnit", + "id" : "acm004981jsd", + "name" : "UploadedPresentation", + "compilationUnitId" : "acm004950jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004954jsd", "acm004955jsd", "acm004956jsd", "acm004957jsd", "acm004958jsd", "acm004959jsd", "acm004960jsd", "acm004961jsd", "acm004962jsd", "acm004963jsd", "acm004964jsd", "acm004965jsd", "acm004966jsd", "acm004967jsd", "acm004968jsd", "acm004969jsd", "acm004970jsd", "acm004971jsd", "acm004972jsd", "acm004973jsd", "acm004974jsd", "acm004975jsd", "acm004976jsd", "acm004977jsd", "acm004978jsd", "acm004979jsd", "acm004980jsd" ] + }, + "acm004982jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004982jsd", + "name" : "Util", + "parentId" : "acm004768jsd", + "content" : [ "acm004988jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004983jsd" : { + "type" : "CodePackage", + "id" : "acm004983jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004984jsd" ] + }, + "acm004984jsd" : { + "type" : "CodePackage", + "id" : "acm004984jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004985jsd" ] + }, + "acm004985jsd" : { + "type" : "CodePackage", + "id" : "acm004985jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004982jsd" ] + }, + "acm004986jsd" : { + "type" : "ControlElement", + "id" : "acm004986jsd", + "name" : "deleteDirectory" + }, + "acm004987jsd" : { + "type" : "ControlElement", + "id" : "acm004987jsd", + "name" : "deleteDirectoryFromFileHandlingErrors" + }, + "acm004988jsd" : { + "type" : "ClassUnit", + "id" : "acm004988jsd", + "name" : "Util", + "compilationUnitId" : "acm004982jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004988jsd" ], + "content" : [ "acm004986jsd", "acm004987jsd" ] + }, + "acm004989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004989jsd", + "name" : "AbstractCommandHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005005jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004990jsd" : { + "type" : "CodePackage", + "id" : "acm004990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004991jsd" ] + }, + "acm004991jsd" : { + "type" : "CodePackage", + "id" : "acm004991jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm004992jsd" ] + }, + "acm004992jsd" : { + "type" : "CodePackage", + "id" : "acm004992jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm004993jsd" ] + }, + "acm004993jsd" : { + "type" : "CodePackage", + "id" : "acm004993jsd", + "name" : "handlers", + "parentId" : "acm004768jsd", + "content" : [ "acm004989jsd", "acm005006jsd", "acm005012jsd", "acm005018jsd", "acm005024jsd", "acm005030jsd", "acm005037jsd", "acm005044jsd", "acm005050jsd" ] + }, + "acm004994jsd" : { + "type" : "ControlElement", + "id" : "acm004994jsd", + "name" : "onPreStart" + }, + "acm004995jsd" : { + "type" : "ControlElement", + "id" : "acm004995jsd", + "name" : "onStart" + }, + "acm004996jsd" : { + "type" : "ControlElement", + "id" : "acm004996jsd", + "name" : "onStdout" + }, + "acm004997jsd" : { + "type" : "ControlElement", + "id" : "acm004997jsd", + "name" : "onStderr" + }, + "acm004998jsd" : { + "type" : "ControlElement", + "id" : "acm004998jsd", + "name" : "onExit" + }, + "acm004999jsd" : { + "type" : "ControlElement", + "id" : "acm004999jsd", + "name" : "exitedWithError" + }, + "acm005000jsd" : { + "type" : "ControlElement", + "id" : "acm005000jsd", + "name" : "stdoutContains" + }, + "acm005001jsd" : { + "type" : "ControlElement", + "id" : "acm005001jsd", + "name" : "stdoutEquals" + }, + "acm005002jsd" : { + "type" : "ControlElement", + "id" : "acm005002jsd", + "name" : "stderrContains" + }, + "acm005003jsd" : { + "type" : "ControlElement", + "id" : "acm005003jsd", + "name" : "isCommandSuccessful" + }, + "acm005004jsd" : { + "type" : "ControlElement", + "id" : "acm005004jsd", + "name" : "isCommandTimeout" + }, + "acm005005jsd" : { + "type" : "ClassUnit", + "id" : "acm005005jsd", + "name" : "AbstractCommandHandler", + "compilationUnitId" : "acm004989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005005jsd" ], + "content" : [ "acm004994jsd", "acm004995jsd", "acm004996jsd", "acm004997jsd", "acm004998jsd", "acm004999jsd", "acm005000jsd", "acm005001jsd", "acm005002jsd", "acm005003jsd", "acm005004jsd" ] + }, + "acm005006jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005006jsd", + "name" : "AddNamespaceToSvgHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005011jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005007jsd" : { + "type" : "CodePackage", + "id" : "acm005007jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005008jsd" ] + }, + "acm005008jsd" : { + "type" : "CodePackage", + "id" : "acm005008jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005009jsd" ] + }, + "acm005009jsd" : { + "type" : "CodePackage", + "id" : "acm005009jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005010jsd" ] + }, + "acm005010jsd" : { + "type" : "CodePackage", + "id" : "acm005010jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005006jsd" ] + }, + "acm005011jsd" : { + "type" : "ClassUnit", + "id" : "acm005011jsd", + "name" : "AddNamespaceToSvgHandler", + "compilationUnitId" : "acm005006jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005011jsd" ], + "content" : [ ] + }, + "acm005012jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005012jsd", + "name" : "ImageResizerHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005017jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005013jsd" : { + "type" : "CodePackage", + "id" : "acm005013jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005014jsd" ] + }, + "acm005014jsd" : { + "type" : "CodePackage", + "id" : "acm005014jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005015jsd" ] + }, + "acm005015jsd" : { + "type" : "CodePackage", + "id" : "acm005015jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005016jsd" ] + }, + "acm005016jsd" : { + "type" : "CodePackage", + "id" : "acm005016jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005012jsd" ] + }, + "acm005017jsd" : { + "type" : "ClassUnit", + "id" : "acm005017jsd", + "name" : "ImageResizerHandler", + "compilationUnitId" : "acm005012jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005017jsd" ], + "content" : [ ] + }, + "acm005018jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005018jsd", + "name" : "Office2PdfConverterHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005023jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005019jsd" : { + "type" : "CodePackage", + "id" : "acm005019jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005020jsd" ] + }, + "acm005020jsd" : { + "type" : "CodePackage", + "id" : "acm005020jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005021jsd" ] + }, + "acm005021jsd" : { + "type" : "CodePackage", + "id" : "acm005021jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005022jsd" ] + }, + "acm005022jsd" : { + "type" : "CodePackage", + "id" : "acm005022jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005018jsd" ] + }, + "acm005023jsd" : { + "type" : "ClassUnit", + "id" : "acm005023jsd", + "name" : "Office2PdfConverterHandler", + "compilationUnitId" : "acm005018jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005023jsd" ], + "content" : [ ] + }, + "acm005024jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005024jsd", + "name" : "Pdf2PngPageConverterHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005029jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005025jsd" : { + "type" : "CodePackage", + "id" : "acm005025jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005026jsd" ] + }, + "acm005026jsd" : { + "type" : "CodePackage", + "id" : "acm005026jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005027jsd" ] + }, + "acm005027jsd" : { + "type" : "CodePackage", + "id" : "acm005027jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005028jsd" ] + }, + "acm005028jsd" : { + "type" : "CodePackage", + "id" : "acm005028jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005024jsd" ] + }, + "acm005029jsd" : { + "type" : "ClassUnit", + "id" : "acm005029jsd", + "name" : "Pdf2PngPageConverterHandler", + "compilationUnitId" : "acm005024jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005029jsd" ], + "content" : [ ] + }, + "acm005030jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005030jsd", + "name" : "PdfFontType3DetectorHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005036jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005031jsd" : { + "type" : "CodePackage", + "id" : "acm005031jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005032jsd" ] + }, + "acm005032jsd" : { + "type" : "CodePackage", + "id" : "acm005032jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005033jsd" ] + }, + "acm005033jsd" : { + "type" : "CodePackage", + "id" : "acm005033jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005034jsd" ] + }, + "acm005034jsd" : { + "type" : "CodePackage", + "id" : "acm005034jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005030jsd" ] + }, + "acm005035jsd" : { + "type" : "ControlElement", + "id" : "acm005035jsd", + "name" : "hasFontType3" + }, + "acm005036jsd" : { + "type" : "ClassUnit", + "id" : "acm005036jsd", + "name" : "PdfFontType3DetectorHandler", + "compilationUnitId" : "acm005030jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005036jsd" ], + "content" : [ "acm005035jsd" ] + }, + "acm005037jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005037jsd", + "name" : "PdfPageCounterHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005043jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005038jsd" : { + "type" : "CodePackage", + "id" : "acm005038jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005039jsd" ] + }, + "acm005039jsd" : { + "type" : "CodePackage", + "id" : "acm005039jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005040jsd" ] + }, + "acm005040jsd" : { + "type" : "CodePackage", + "id" : "acm005040jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005041jsd" ] + }, + "acm005041jsd" : { + "type" : "CodePackage", + "id" : "acm005041jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005037jsd" ] + }, + "acm005042jsd" : { + "type" : "ControlElement", + "id" : "acm005042jsd", + "name" : "numberOfPages" + }, + "acm005043jsd" : { + "type" : "ClassUnit", + "id" : "acm005043jsd", + "name" : "PdfPageCounterHandler", + "compilationUnitId" : "acm005037jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005043jsd" ], + "content" : [ "acm005042jsd" ] + }, + "acm005044jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005044jsd", + "name" : "Png2SvgConversionHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005049jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005045jsd" : { + "type" : "CodePackage", + "id" : "acm005045jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005046jsd" ] + }, + "acm005046jsd" : { + "type" : "CodePackage", + "id" : "acm005046jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005047jsd" ] + }, + "acm005047jsd" : { + "type" : "CodePackage", + "id" : "acm005047jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005048jsd" ] + }, + "acm005048jsd" : { + "type" : "CodePackage", + "id" : "acm005048jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005044jsd" ] + }, + "acm005049jsd" : { + "type" : "ClassUnit", + "id" : "acm005049jsd", + "name" : "Png2SvgConversionHandler", + "compilationUnitId" : "acm005044jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005049jsd" ], + "content" : [ ] + }, + "acm005050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005050jsd", + "name" : "SvgConversionHandler", + "parentId" : "acm004993jsd", + "content" : [ "acm005057jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "handlers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005051jsd" : { + "type" : "CodePackage", + "id" : "acm005051jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005052jsd" ] + }, + "acm005052jsd" : { + "type" : "CodePackage", + "id" : "acm005052jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005053jsd" ] + }, + "acm005053jsd" : { + "type" : "CodePackage", + "id" : "acm005053jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005054jsd" ] + }, + "acm005054jsd" : { + "type" : "CodePackage", + "id" : "acm005054jsd", + "name" : "handlers", + "parentId" : null, + "content" : [ "acm005050jsd" ] + }, + "acm005055jsd" : { + "type" : "ControlElement", + "id" : "acm005055jsd", + "name" : "numberOfPaths" + }, + "acm005056jsd" : { + "type" : "ControlElement", + "id" : "acm005056jsd", + "name" : "numberOfImageTags" + }, + "acm005057jsd" : { + "type" : "ClassUnit", + "id" : "acm005057jsd", + "name" : "SvgConversionHandler", + "compilationUnitId" : "acm005050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005005jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005057jsd" ], + "content" : [ "acm005055jsd", "acm005056jsd" ] + }, + "acm005058jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005058jsd", + "name" : "BigPdfException", + "parentId" : "acm005062jsd", + "content" : [ "acm005067jsd", "acm005068jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005059jsd" : { + "type" : "CodePackage", + "id" : "acm005059jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005060jsd" ] + }, + "acm005060jsd" : { + "type" : "CodePackage", + "id" : "acm005060jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005061jsd" ] + }, + "acm005061jsd" : { + "type" : "CodePackage", + "id" : "acm005061jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005062jsd" ] + }, + "acm005062jsd" : { + "type" : "CodePackage", + "id" : "acm005062jsd", + "name" : "imp", + "parentId" : "acm004768jsd", + "content" : [ "acm005058jsd", "acm005069jsd", "acm005080jsd", "acm005088jsd", "acm005095jsd", "acm005119jsd", "acm005126jsd", "acm005141jsd", "acm005149jsd", "acm005165jsd", "acm005177jsd", "acm005184jsd", "acm005202jsd", "acm005209jsd", "acm005216jsd", "acm005226jsd", "acm005241jsd", "acm005255jsd", "acm005290jsd", "acm005300jsd", "acm005319jsd", "acm005343jsd", "acm005353jsd" ] + }, + "acm005063jsd" : { + "type" : "ControlElement", + "id" : "acm005063jsd", + "name" : "BigPdfException" + }, + "acm005064jsd" : { + "type" : "ControlElement", + "id" : "acm005064jsd", + "name" : "getBigPageNumber" + }, + "acm005065jsd" : { + "type" : "ControlElement", + "id" : "acm005065jsd", + "name" : "getExceptionType" + }, + "acm005066jsd" : { + "type" : "ControlElement", + "id" : "acm005066jsd", + "name" : "getBigPageSize" + }, + "acm005067jsd" : { + "type" : "ClassUnit", + "id" : "acm005067jsd", + "name" : "BigPdfException", + "compilationUnitId" : "acm005058jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005068jsd" ], + "content" : [ "acm005063jsd", "acm005064jsd", "acm005065jsd", "acm005066jsd" ] + }, + "acm005068jsd" : { + "type" : "ClassUnit", + "id" : "acm005068jsd", + "name" : "ExceptionType", + "compilationUnitId" : "acm005058jsd", + "parentDatatypeId" : "acm005067jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005069jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005069jsd", + "name" : "CountingPageException", + "parentId" : "acm005062jsd", + "content" : [ "acm005078jsd", "acm005079jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005070jsd" : { + "type" : "CodePackage", + "id" : "acm005070jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005071jsd" ] + }, + "acm005071jsd" : { + "type" : "CodePackage", + "id" : "acm005071jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005072jsd" ] + }, + "acm005072jsd" : { + "type" : "CodePackage", + "id" : "acm005072jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005073jsd" ] + }, + "acm005073jsd" : { + "type" : "CodePackage", + "id" : "acm005073jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005069jsd" ] + }, + "acm005074jsd" : { + "type" : "ControlElement", + "id" : "acm005074jsd", + "name" : "CountingPageException" + }, + "acm005075jsd" : { + "type" : "ControlElement", + "id" : "acm005075jsd", + "name" : "getMaxNumberOfPages" + }, + "acm005076jsd" : { + "type" : "ControlElement", + "id" : "acm005076jsd", + "name" : "getExceptionType" + }, + "acm005077jsd" : { + "type" : "ControlElement", + "id" : "acm005077jsd", + "name" : "getPageCount" + }, + "acm005078jsd" : { + "type" : "ClassUnit", + "id" : "acm005078jsd", + "name" : "CountingPageException", + "compilationUnitId" : "acm005069jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005079jsd" ], + "content" : [ "acm005074jsd", "acm005075jsd", "acm005076jsd", "acm005077jsd" ] + }, + "acm005079jsd" : { + "type" : "ClassUnit", + "id" : "acm005079jsd", + "name" : "ExceptionType", + "compilationUnitId" : "acm005069jsd", + "parentDatatypeId" : "acm005078jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005080jsd", + "name" : "ExternalProcessExecutor", + "parentId" : "acm005062jsd", + "content" : [ "acm005087jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005081jsd" : { + "type" : "CodePackage", + "id" : "acm005081jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005082jsd" ] + }, + "acm005082jsd" : { + "type" : "CodePackage", + "id" : "acm005082jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005083jsd" ] + }, + "acm005083jsd" : { + "type" : "CodePackage", + "id" : "acm005083jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005084jsd" ] + }, + "acm005084jsd" : { + "type" : "CodePackage", + "id" : "acm005084jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005080jsd" ] + }, + "acm005085jsd" : { + "type" : "ControlElement", + "id" : "acm005085jsd", + "name" : "exec" + }, + "acm005086jsd" : { + "type" : "ControlElement", + "id" : "acm005086jsd", + "name" : "exec" + }, + "acm005087jsd" : { + "type" : "ClassUnit", + "id" : "acm005087jsd", + "name" : "ExternalProcessExecutor", + "compilationUnitId" : "acm005080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005087jsd" ], + "content" : [ "acm005085jsd", "acm005086jsd" ] + }, + "acm005088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005088jsd", + "name" : "ImageResizerImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005094jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005089jsd" : { + "type" : "CodePackage", + "id" : "acm005089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005090jsd" ] + }, + "acm005090jsd" : { + "type" : "CodePackage", + "id" : "acm005090jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005091jsd" ] + }, + "acm005091jsd" : { + "type" : "CodePackage", + "id" : "acm005091jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005092jsd" ] + }, + "acm005092jsd" : { + "type" : "CodePackage", + "id" : "acm005092jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005088jsd" ] + }, + "acm005093jsd" : { + "type" : "ControlElement", + "id" : "acm005093jsd", + "name" : "resize" + }, + "acm005094jsd" : { + "type" : "ClassUnit", + "id" : "acm005094jsd", + "name" : "ImageResizerImp", + "compilationUnitId" : "acm005088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004838jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005017jsd", "acm005094jsd" ], + "content" : [ "acm005093jsd" ] + }, + "acm005095jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005095jsd", + "name" : "ImageSlidesGenerationService", + "parentId" : "acm005062jsd", + "content" : [ "acm005118jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005096jsd" : { + "type" : "CodePackage", + "id" : "acm005096jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005097jsd" ] + }, + "acm005097jsd" : { + "type" : "CodePackage", + "id" : "acm005097jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005098jsd" ] + }, + "acm005098jsd" : { + "type" : "CodePackage", + "id" : "acm005098jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005099jsd" ] + }, + "acm005099jsd" : { + "type" : "CodePackage", + "id" : "acm005099jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005095jsd" ] + }, + "acm005100jsd" : { + "type" : "ControlElement", + "id" : "acm005100jsd", + "name" : "ImageSlidesGenerationService" + }, + "acm005101jsd" : { + "type" : "ControlElement", + "id" : "acm005101jsd", + "name" : "generateSlides" + }, + "acm005102jsd" : { + "type" : "ControlElement", + "id" : "acm005102jsd", + "name" : "createTextFiles" + }, + "acm005103jsd" : { + "type" : "ControlElement", + "id" : "acm005103jsd", + "name" : "createThumbnails" + }, + "acm005104jsd" : { + "type" : "ControlElement", + "id" : "acm005104jsd", + "name" : "createSvgImages" + }, + "acm005105jsd" : { + "type" : "ControlElement", + "id" : "acm005105jsd", + "name" : "createPngImages" + }, + "acm005106jsd" : { + "type" : "ControlElement", + "id" : "acm005106jsd", + "name" : "resizeImage" + }, + "acm005107jsd" : { + "type" : "ControlElement", + "id" : "acm005107jsd", + "name" : "setThumbnailCreator" + }, + "acm005108jsd" : { + "type" : "ControlElement", + "id" : "acm005108jsd", + "name" : "setTextFileCreator" + }, + "acm005109jsd" : { + "type" : "ControlElement", + "id" : "acm005109jsd", + "name" : "setPngCreator" + }, + "acm005110jsd" : { + "type" : "ControlElement", + "id" : "acm005110jsd", + "name" : "setSvgImageCreator" + }, + "acm005111jsd" : { + "type" : "ControlElement", + "id" : "acm005111jsd", + "name" : "setGeneratePngs" + }, + "acm005112jsd" : { + "type" : "ControlElement", + "id" : "acm005112jsd", + "name" : "setSvgImagesRequired" + }, + "acm005113jsd" : { + "type" : "ControlElement", + "id" : "acm005113jsd", + "name" : "setMaxConversionTime" + }, + "acm005114jsd" : { + "type" : "ControlElement", + "id" : "acm005114jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm005115jsd" : { + "type" : "ControlElement", + "id" : "acm005115jsd", + "name" : "setImageResizer" + }, + "acm005116jsd" : { + "type" : "ControlElement", + "id" : "acm005116jsd", + "name" : "setMaxImageWidth" + }, + "acm005117jsd" : { + "type" : "ControlElement", + "id" : "acm005117jsd", + "name" : "setMaxImageHeight" + }, + "acm005118jsd" : { + "type" : "ClassUnit", + "id" : "acm005118jsd", + "name" : "ImageSlidesGenerationService", + "compilationUnitId" : "acm005095jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004838jsd", "acm004890jsd", "acm004937jsd", "acm004943jsd", "acm004949jsd", "acm004981jsd", "acm005118jsd", "acm005318jsd" ], + "content" : [ "acm005100jsd", "acm005101jsd", "acm005102jsd", "acm005103jsd", "acm005104jsd", "acm005105jsd", "acm005106jsd", "acm005107jsd", "acm005108jsd", "acm005109jsd", "acm005110jsd", "acm005111jsd", "acm005112jsd", "acm005113jsd", "acm005114jsd", "acm005115jsd", "acm005116jsd", "acm005117jsd" ] + }, + "acm005119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005119jsd", + "name" : "Office2PdfPageConverter", + "parentId" : "acm005062jsd", + "content" : [ "acm005125jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005120jsd" : { + "type" : "CodePackage", + "id" : "acm005120jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005121jsd" ] + }, + "acm005121jsd" : { + "type" : "CodePackage", + "id" : "acm005121jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005122jsd" ] + }, + "acm005122jsd" : { + "type" : "CodePackage", + "id" : "acm005122jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005123jsd" ] + }, + "acm005123jsd" : { + "type" : "CodePackage", + "id" : "acm005123jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005119jsd" ] + }, + "acm005124jsd" : { + "type" : "ControlElement", + "id" : "acm005124jsd", + "name" : "convert" + }, + "acm005125jsd" : { + "type" : "ClassUnit", + "id" : "acm005125jsd", + "name" : "Office2PdfPageConverter", + "compilationUnitId" : "acm005119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005023jsd", "acm005125jsd" ], + "content" : [ "acm005124jsd" ] + }, + "acm005126jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005126jsd", + "name" : "OfficeDocumentValidator", + "parentId" : "acm005062jsd", + "content" : [ "acm005136jsd", "acm005138jsd", "acm005140jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005127jsd" : { + "type" : "CodePackage", + "id" : "acm005127jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005128jsd" ] + }, + "acm005128jsd" : { + "type" : "CodePackage", + "id" : "acm005128jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005129jsd" ] + }, + "acm005129jsd" : { + "type" : "CodePackage", + "id" : "acm005129jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005130jsd" ] + }, + "acm005130jsd" : { + "type" : "CodePackage", + "id" : "acm005130jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005126jsd" ] + }, + "acm005131jsd" : { + "type" : "ControlElement", + "id" : "acm005131jsd", + "name" : "isValid" + }, + "acm005132jsd" : { + "type" : "ControlElement", + "id" : "acm005132jsd", + "name" : "embedsEmf" + }, + "acm005133jsd" : { + "type" : "ControlElement", + "id" : "acm005133jsd", + "name" : "containsTinyTileBackground" + }, + "acm005134jsd" : { + "type" : "ControlElement", + "id" : "acm005134jsd", + "name" : "evaluate" + }, + "acm005135jsd" : { + "type" : "ControlElement", + "id" : "acm005135jsd", + "name" : "evaluate" + }, + "acm005136jsd" : { + "type" : "ClassUnit", + "id" : "acm005136jsd", + "name" : "OfficeDocumentValidator", + "compilationUnitId" : "acm005126jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005136jsd", "acm005138jsd", "acm005140jsd" ], + "content" : [ "acm005131jsd", "acm005132jsd", "acm005133jsd", "acm005134jsd", "acm005135jsd" ] + }, + "acm005137jsd" : { + "type" : "ControlElement", + "id" : "acm005137jsd", + "name" : "evaluate" + }, + "acm005138jsd" : { + "type" : "ClassUnit", + "id" : "acm005138jsd", + "name" : "EmfPredicate", + "compilationUnitId" : "acm005126jsd", + "parentDatatypeId" : "acm005136jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005137jsd" ] + }, + "acm005139jsd" : { + "type" : "ControlElement", + "id" : "acm005139jsd", + "name" : "evaluate" + }, + "acm005140jsd" : { + "type" : "ClassUnit", + "id" : "acm005140jsd", + "name" : "TinyTileBackgroundPredicate", + "compilationUnitId" : "acm005126jsd", + "parentDatatypeId" : "acm005136jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005139jsd" ] + }, + "acm005141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005141jsd", + "name" : "OfficeDocumentValidator2", + "parentId" : "acm005062jsd", + "content" : [ "acm005148jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005142jsd" : { + "type" : "CodePackage", + "id" : "acm005142jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005143jsd" ] + }, + "acm005143jsd" : { + "type" : "CodePackage", + "id" : "acm005143jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005144jsd" ] + }, + "acm005144jsd" : { + "type" : "CodePackage", + "id" : "acm005144jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005145jsd" ] + }, + "acm005145jsd" : { + "type" : "CodePackage", + "id" : "acm005145jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005141jsd" ] + }, + "acm005146jsd" : { + "type" : "ControlElement", + "id" : "acm005146jsd", + "name" : "isValid" + }, + "acm005147jsd" : { + "type" : "ControlElement", + "id" : "acm005147jsd", + "name" : "setPresCheckExec" + }, + "acm005148jsd" : { + "type" : "ClassUnit", + "id" : "acm005148jsd", + "name" : "OfficeDocumentValidator2", + "compilationUnitId" : "acm005141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005087jsd", "acm005148jsd" ], + "content" : [ "acm005146jsd", "acm005147jsd" ] + }, + "acm005149jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005149jsd", + "name" : "OfficeToPdfConversionService", + "parentId" : "acm005062jsd", + "content" : [ "acm005164jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005150jsd" : { + "type" : "CodePackage", + "id" : "acm005150jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005151jsd" ] + }, + "acm005151jsd" : { + "type" : "CodePackage", + "id" : "acm005151jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005152jsd" ] + }, + "acm005152jsd" : { + "type" : "CodePackage", + "id" : "acm005152jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005153jsd" ] + }, + "acm005153jsd" : { + "type" : "CodePackage", + "id" : "acm005153jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005149jsd" ] + }, + "acm005154jsd" : { + "type" : "ControlElement", + "id" : "acm005154jsd", + "name" : "convertOfficeToPdf" + }, + "acm005155jsd" : { + "type" : "ControlElement", + "id" : "acm005155jsd", + "name" : "initialize" + }, + "acm005156jsd" : { + "type" : "ControlElement", + "id" : "acm005156jsd", + "name" : "setupOutputPdfFile" + }, + "acm005157jsd" : { + "type" : "ControlElement", + "id" : "acm005157jsd", + "name" : "convertOfficeDocToPdf" + }, + "acm005158jsd" : { + "type" : "ControlElement", + "id" : "acm005158jsd", + "name" : "makePdfTheUploadedFileAndSetStepAsSuccess" + }, + "acm005159jsd" : { + "type" : "ControlElement", + "id" : "acm005159jsd", + "name" : "setOfficeDocumentValidator" + }, + "acm005160jsd" : { + "type" : "ControlElement", + "id" : "acm005160jsd", + "name" : "setSkipOfficePrecheck" + }, + "acm005161jsd" : { + "type" : "ControlElement", + "id" : "acm005161jsd", + "name" : "setPresOfficeConversionExec" + }, + "acm005162jsd" : { + "type" : "ControlElement", + "id" : "acm005162jsd", + "name" : "setPresOfficeConversionTimeout" + }, + "acm005163jsd" : { + "type" : "ControlElement", + "id" : "acm005163jsd", + "name" : "setPresOfficeConversionMaxConcurrents" + }, + "acm005164jsd" : { + "type" : "ClassUnit", + "id" : "acm005164jsd", + "name" : "OfficeToPdfConversionService", + "compilationUnitId" : "acm005149jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005148jsd", "acm005164jsd" ], + "content" : [ "acm005154jsd", "acm005155jsd", "acm005156jsd", "acm005157jsd", "acm005158jsd", "acm005159jsd", "acm005160jsd", "acm005161jsd", "acm005162jsd", "acm005163jsd" ] + }, + "acm005165jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005165jsd", + "name" : "PageCounterService", + "parentId" : "acm005062jsd", + "content" : [ "acm005176jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005166jsd" : { + "type" : "CodePackage", + "id" : "acm005166jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005167jsd" ] + }, + "acm005167jsd" : { + "type" : "CodePackage", + "id" : "acm005167jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005168jsd" ] + }, + "acm005168jsd" : { + "type" : "CodePackage", + "id" : "acm005168jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005169jsd" ] + }, + "acm005169jsd" : { + "type" : "CodePackage", + "id" : "acm005169jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005165jsd" ] + }, + "acm005170jsd" : { + "type" : "ControlElement", + "id" : "acm005170jsd", + "name" : "determineNumberOfPages" + }, + "acm005171jsd" : { + "type" : "ControlElement", + "id" : "acm005171jsd", + "name" : "isNumberOfPagesValid" + }, + "acm005172jsd" : { + "type" : "ControlElement", + "id" : "acm005172jsd", + "name" : "checkIfNumberOfPagesExceedsLimit" + }, + "acm005173jsd" : { + "type" : "ControlElement", + "id" : "acm005173jsd", + "name" : "countPages" + }, + "acm005174jsd" : { + "type" : "ControlElement", + "id" : "acm005174jsd", + "name" : "setMaxNumPages" + }, + "acm005175jsd" : { + "type" : "ControlElement", + "id" : "acm005175jsd", + "name" : "setPageCounter" + }, + "acm005176jsd" : { + "type" : "ClassUnit", + "id" : "acm005176jsd", + "name" : "PageCounterService", + "compilationUnitId" : "acm005165jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004878jsd", "acm004981jsd", "acm005078jsd", "acm005176jsd" ], + "content" : [ "acm005170jsd", "acm005171jsd", "acm005172jsd", "acm005173jsd", "acm005174jsd", "acm005175jsd" ] + }, + "acm005177jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005177jsd", + "name" : "PageExtractorImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005183jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005178jsd" : { + "type" : "CodePackage", + "id" : "acm005178jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005179jsd" ] + }, + "acm005179jsd" : { + "type" : "CodePackage", + "id" : "acm005179jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005180jsd" ] + }, + "acm005180jsd" : { + "type" : "CodePackage", + "id" : "acm005180jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005181jsd" ] + }, + "acm005181jsd" : { + "type" : "CodePackage", + "id" : "acm005181jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005177jsd" ] + }, + "acm005182jsd" : { + "type" : "ControlElement", + "id" : "acm005182jsd", + "name" : "extractPage" + }, + "acm005183jsd" : { + "type" : "ClassUnit", + "id" : "acm005183jsd", + "name" : "PageExtractorImp", + "compilationUnitId" : "acm005177jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004884jsd" ], + "datatypeReferencesIds" : [ "acm005087jsd", "acm005183jsd" ], + "content" : [ "acm005182jsd" ] + }, + "acm005184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005184jsd", + "name" : "PageToConvert", + "parentId" : "acm005062jsd", + "content" : [ "acm005201jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005185jsd" : { + "type" : "CodePackage", + "id" : "acm005185jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005186jsd" ] + }, + "acm005186jsd" : { + "type" : "CodePackage", + "id" : "acm005186jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005187jsd" ] + }, + "acm005187jsd" : { + "type" : "CodePackage", + "id" : "acm005187jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005188jsd" ] + }, + "acm005188jsd" : { + "type" : "CodePackage", + "id" : "acm005188jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005184jsd" ] + }, + "acm005189jsd" : { + "type" : "ControlElement", + "id" : "acm005189jsd", + "name" : "PageToConvert" + }, + "acm005190jsd" : { + "type" : "ControlElement", + "id" : "acm005190jsd", + "name" : "getPageFile" + }, + "acm005191jsd" : { + "type" : "ControlElement", + "id" : "acm005191jsd", + "name" : "getPageNumber" + }, + "acm005192jsd" : { + "type" : "ControlElement", + "id" : "acm005192jsd", + "name" : "getPresId" + }, + "acm005193jsd" : { + "type" : "ControlElement", + "id" : "acm005193jsd", + "name" : "getMeetingId" + }, + "acm005194jsd" : { + "type" : "ControlElement", + "id" : "acm005194jsd", + "name" : "getMessageErrorInConversion" + }, + "acm005195jsd" : { + "type" : "ControlElement", + "id" : "acm005195jsd", + "name" : "setMessageErrorInConversion" + }, + "acm005196jsd" : { + "type" : "ControlElement", + "id" : "acm005196jsd", + "name" : "convert" + }, + "acm005197jsd" : { + "type" : "ControlElement", + "id" : "acm005197jsd", + "name" : "createThumbnails" + }, + "acm005198jsd" : { + "type" : "ControlElement", + "id" : "acm005198jsd", + "name" : "createTextFiles" + }, + "acm005199jsd" : { + "type" : "ControlElement", + "id" : "acm005199jsd", + "name" : "createSvgImages" + }, + "acm005200jsd" : { + "type" : "ControlElement", + "id" : "acm005200jsd", + "name" : "createPngImages" + }, + "acm005201jsd" : { + "type" : "ClassUnit", + "id" : "acm005201jsd", + "name" : "PageToConvert", + "compilationUnitId" : "acm005184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004884jsd", "acm004890jsd", "acm004937jsd", "acm004943jsd", "acm004949jsd", "acm004981jsd", "acm005201jsd", "acm005318jsd" ], + "content" : [ "acm005189jsd", "acm005190jsd", "acm005191jsd", "acm005192jsd", "acm005193jsd", "acm005194jsd", "acm005195jsd", "acm005196jsd", "acm005197jsd", "acm005198jsd", "acm005199jsd", "acm005200jsd" ] + }, + "acm005202jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005202jsd", + "name" : "PdfPageCounter", + "parentId" : "acm005062jsd", + "content" : [ "acm005208jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005203jsd" : { + "type" : "CodePackage", + "id" : "acm005203jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005204jsd" ] + }, + "acm005204jsd" : { + "type" : "CodePackage", + "id" : "acm005204jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005205jsd" ] + }, + "acm005205jsd" : { + "type" : "CodePackage", + "id" : "acm005205jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005206jsd" ] + }, + "acm005206jsd" : { + "type" : "CodePackage", + "id" : "acm005206jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005202jsd" ] + }, + "acm005207jsd" : { + "type" : "ControlElement", + "id" : "acm005207jsd", + "name" : "countNumberOfPages" + }, + "acm005208jsd" : { + "type" : "ClassUnit", + "id" : "acm005208jsd", + "name" : "PdfPageCounter", + "compilationUnitId" : "acm005202jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004878jsd" ], + "datatypeReferencesIds" : [ "acm005043jsd", "acm005208jsd" ], + "content" : [ "acm005207jsd" ] + }, + "acm005209jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005209jsd", + "name" : "PdfPageDownscaler", + "parentId" : "acm005062jsd", + "content" : [ "acm005215jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005210jsd" : { + "type" : "CodePackage", + "id" : "acm005210jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005211jsd" ] + }, + "acm005211jsd" : { + "type" : "CodePackage", + "id" : "acm005211jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005212jsd" ] + }, + "acm005212jsd" : { + "type" : "CodePackage", + "id" : "acm005212jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005213jsd" ] + }, + "acm005213jsd" : { + "type" : "CodePackage", + "id" : "acm005213jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005209jsd" ] + }, + "acm005214jsd" : { + "type" : "ControlElement", + "id" : "acm005214jsd", + "name" : "downscale" + }, + "acm005215jsd" : { + "type" : "ClassUnit", + "id" : "acm005215jsd", + "name" : "PdfPageDownscaler", + "compilationUnitId" : "acm005209jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005087jsd" ], + "content" : [ "acm005214jsd" ] + }, + "acm005216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005216jsd", + "name" : "PdfSlidesGenerationService", + "parentId" : "acm005062jsd", + "content" : [ "acm005225jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005217jsd" : { + "type" : "CodePackage", + "id" : "acm005217jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005218jsd" ] + }, + "acm005218jsd" : { + "type" : "CodePackage", + "id" : "acm005218jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005219jsd" ] + }, + "acm005219jsd" : { + "type" : "CodePackage", + "id" : "acm005219jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005220jsd" ] + }, + "acm005220jsd" : { + "type" : "CodePackage", + "id" : "acm005220jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005216jsd" ] + }, + "acm005221jsd" : { + "type" : "ControlElement", + "id" : "acm005221jsd", + "name" : "PdfSlidesGenerationService" + }, + "acm005222jsd" : { + "type" : "ControlElement", + "id" : "acm005222jsd", + "name" : "process" + }, + "acm005223jsd" : { + "type" : "ControlElement", + "id" : "acm005223jsd", + "name" : "run" + }, + "acm005224jsd" : { + "type" : "ControlElement", + "id" : "acm005224jsd", + "name" : "setPresentationConversionCompletionService" + }, + "acm005225jsd" : { + "type" : "ClassUnit", + "id" : "acm005225jsd", + "name" : "PdfSlidesGenerationService", + "compilationUnitId" : "acm005216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005201jsd", "acm005225jsd", "acm005254jsd", "acm005442jsd" ], + "content" : [ "acm005221jsd", "acm005222jsd", "acm005223jsd", "acm005224jsd" ] + }, + "acm005226jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005226jsd", + "name" : "PngCreatorImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005240jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005227jsd" : { + "type" : "CodePackage", + "id" : "acm005227jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005228jsd" ] + }, + "acm005228jsd" : { + "type" : "CodePackage", + "id" : "acm005228jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005229jsd" ] + }, + "acm005229jsd" : { + "type" : "CodePackage", + "id" : "acm005229jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005230jsd" ] + }, + "acm005230jsd" : { + "type" : "CodePackage", + "id" : "acm005230jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005226jsd" ] + }, + "acm005231jsd" : { + "type" : "ControlElement", + "id" : "acm005231jsd", + "name" : "createPng" + }, + "acm005232jsd" : { + "type" : "ControlElement", + "id" : "acm005232jsd", + "name" : "generatePng" + }, + "acm005233jsd" : { + "type" : "ControlElement", + "id" : "acm005233jsd", + "name" : "determinePngDirectory" + }, + "acm005234jsd" : { + "type" : "ControlElement", + "id" : "acm005234jsd", + "name" : "renamePng" + }, + "acm005235jsd" : { + "type" : "ControlElement", + "id" : "acm005235jsd", + "name" : "createBlankPng" + }, + "acm005236jsd" : { + "type" : "ControlElement", + "id" : "acm005236jsd", + "name" : "copyBlankPng" + }, + "acm005237jsd" : { + "type" : "ControlElement", + "id" : "acm005237jsd", + "name" : "cleanDirectory" + }, + "acm005238jsd" : { + "type" : "ControlElement", + "id" : "acm005238jsd", + "name" : "setBlankPng" + }, + "acm005239jsd" : { + "type" : "ControlElement", + "id" : "acm005239jsd", + "name" : "setSlideWidth" + }, + "acm005240jsd" : { + "type" : "ClassUnit", + "id" : "acm005240jsd", + "name" : "PngCreatorImp", + "compilationUnitId" : "acm005226jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004890jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005049jsd", "acm005087jsd", "acm005240jsd" ], + "content" : [ "acm005231jsd", "acm005232jsd", "acm005233jsd", "acm005234jsd", "acm005235jsd", "acm005236jsd", "acm005237jsd", "acm005238jsd", "acm005239jsd" ] + }, + "acm005241jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005241jsd", + "name" : "PresentationConversionCompletionService", + "parentId" : "acm005062jsd", + "content" : [ "acm005254jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005242jsd" : { + "type" : "CodePackage", + "id" : "acm005242jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005243jsd" ] + }, + "acm005243jsd" : { + "type" : "CodePackage", + "id" : "acm005243jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005244jsd" ] + }, + "acm005244jsd" : { + "type" : "CodePackage", + "id" : "acm005244jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005245jsd" ] + }, + "acm005245jsd" : { + "type" : "CodePackage", + "id" : "acm005245jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005241jsd" ] + }, + "acm005246jsd" : { + "type" : "ControlElement", + "id" : "acm005246jsd", + "name" : "PresentationConversionCompletionService" + }, + "acm005247jsd" : { + "type" : "ControlElement", + "id" : "acm005247jsd", + "name" : "handle" + }, + "acm005248jsd" : { + "type" : "ControlElement", + "id" : "acm005248jsd", + "name" : "processMessage" + }, + "acm005249jsd" : { + "type" : "ControlElement", + "id" : "acm005249jsd", + "name" : "handleEndProcessing" + }, + "acm005250jsd" : { + "type" : "ControlElement", + "id" : "acm005250jsd", + "name" : "start" + }, + "acm005251jsd" : { + "type" : "ControlElement", + "id" : "acm005251jsd", + "name" : "run" + }, + "acm005252jsd" : { + "type" : "ControlElement", + "id" : "acm005252jsd", + "name" : "stop" + }, + "acm005253jsd" : { + "type" : "ControlElement", + "id" : "acm005253jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm005254jsd" : { + "type" : "ClassUnit", + "id" : "acm005254jsd", + "name" : "PresentationConversionCompletionService", + "compilationUnitId" : "acm005241jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005254jsd", "acm005299jsd", "acm005318jsd", "acm005435jsd", "acm005442jsd", "acm005456jsd" ], + "content" : [ "acm005246jsd", "acm005247jsd", "acm005248jsd", "acm005249jsd", "acm005250jsd", "acm005251jsd", "acm005252jsd", "acm005253jsd" ] + }, + "acm005255jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005255jsd", + "name" : "PresentationFileProcessor", + "parentId" : "acm005062jsd", + "content" : [ "acm005289jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005256jsd" : { + "type" : "CodePackage", + "id" : "acm005256jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005257jsd" ] + }, + "acm005257jsd" : { + "type" : "CodePackage", + "id" : "acm005257jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005258jsd" ] + }, + "acm005258jsd" : { + "type" : "CodePackage", + "id" : "acm005258jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005259jsd" ] + }, + "acm005259jsd" : { + "type" : "CodePackage", + "id" : "acm005259jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005255jsd" ] + }, + "acm005260jsd" : { + "type" : "ControlElement", + "id" : "acm005260jsd", + "name" : "PresentationFileProcessor" + }, + "acm005261jsd" : { + "type" : "ControlElement", + "id" : "acm005261jsd", + "name" : "process" + }, + "acm005262jsd" : { + "type" : "ControlElement", + "id" : "acm005262jsd", + "name" : "run" + }, + "acm005263jsd" : { + "type" : "ControlElement", + "id" : "acm005263jsd", + "name" : "processMakePresentationDownloadableMsg" + }, + "acm005264jsd" : { + "type" : "ControlElement", + "id" : "acm005264jsd", + "name" : "processUploadedPresentation" + }, + "acm005265jsd" : { + "type" : "ControlElement", + "id" : "acm005265jsd", + "name" : "extractIntoPages" + }, + "acm005266jsd" : { + "type" : "ControlElement", + "id" : "acm005266jsd", + "name" : "downscalePage" + }, + "acm005267jsd" : { + "type" : "ControlElement", + "id" : "acm005267jsd", + "name" : "extractPage" + }, + "acm005268jsd" : { + "type" : "ControlElement", + "id" : "acm005268jsd", + "name" : "determineNumberOfPages" + }, + "acm005269jsd" : { + "type" : "ControlElement", + "id" : "acm005269jsd", + "name" : "sendDocPageConversionStartedProgress" + }, + "acm005270jsd" : { + "type" : "ControlElement", + "id" : "acm005270jsd", + "name" : "sendFailedToCountPageMessage" + }, + "acm005271jsd" : { + "type" : "ControlElement", + "id" : "acm005271jsd", + "name" : "start" + }, + "acm005272jsd" : { + "type" : "ControlElement", + "id" : "acm005272jsd", + "name" : "run" + }, + "acm005273jsd" : { + "type" : "ControlElement", + "id" : "acm005273jsd", + "name" : "stop" + }, + "acm005274jsd" : { + "type" : "ControlElement", + "id" : "acm005274jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm005275jsd" : { + "type" : "ControlElement", + "id" : "acm005275jsd", + "name" : "setCounterService" + }, + "acm005276jsd" : { + "type" : "ControlElement", + "id" : "acm005276jsd", + "name" : "setPageExtractor" + }, + "acm005277jsd" : { + "type" : "ControlElement", + "id" : "acm005277jsd", + "name" : "setGeneratePngs" + }, + "acm005278jsd" : { + "type" : "ControlElement", + "id" : "acm005278jsd", + "name" : "setBigPdfSize" + }, + "acm005279jsd" : { + "type" : "ControlElement", + "id" : "acm005279jsd", + "name" : "setMaxBigPdfPageSize" + }, + "acm005280jsd" : { + "type" : "ControlElement", + "id" : "acm005280jsd", + "name" : "setSvgImagesRequired" + }, + "acm005281jsd" : { + "type" : "ControlElement", + "id" : "acm005281jsd", + "name" : "setThumbnailCreator" + }, + "acm005282jsd" : { + "type" : "ControlElement", + "id" : "acm005282jsd", + "name" : "setPngCreator" + }, + "acm005283jsd" : { + "type" : "ControlElement", + "id" : "acm005283jsd", + "name" : "setTextFileCreator" + }, + "acm005284jsd" : { + "type" : "ControlElement", + "id" : "acm005284jsd", + "name" : "setSvgImageCreator" + }, + "acm005285jsd" : { + "type" : "ControlElement", + "id" : "acm005285jsd", + "name" : "setMaxConversionTime" + }, + "acm005286jsd" : { + "type" : "ControlElement", + "id" : "acm005286jsd", + "name" : "setImageSlidesGenerationService" + }, + "acm005287jsd" : { + "type" : "ControlElement", + "id" : "acm005287jsd", + "name" : "setPresentationConversionCompletionService" + }, + "acm005288jsd" : { + "type" : "ControlElement", + "id" : "acm005288jsd", + "name" : "setPdfSlidesGenerationService" + }, + "acm005289jsd" : { + "type" : "ClassUnit", + "id" : "acm005289jsd", + "name" : "PresentationFileProcessor", + "compilationUnitId" : "acm005255jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004800jsd", "acm004884jsd", "acm004890jsd", "acm004937jsd", "acm004943jsd", "acm004949jsd", "acm004981jsd", "acm005078jsd", "acm005118jsd", "acm005176jsd", "acm005201jsd", "acm005215jsd", "acm005225jsd", "acm005254jsd", "acm005289jsd", "acm005318jsd", "acm005402jsd", "acm005409jsd", "acm005416jsd", "acm005456jsd" ], + "content" : [ "acm005260jsd", "acm005261jsd", "acm005262jsd", "acm005263jsd", "acm005264jsd", "acm005265jsd", "acm005266jsd", "acm005267jsd", "acm005268jsd", "acm005269jsd", "acm005270jsd", "acm005271jsd", "acm005272jsd", "acm005273jsd", "acm005274jsd", "acm005275jsd", "acm005276jsd", "acm005277jsd", "acm005278jsd", "acm005279jsd", "acm005280jsd", "acm005281jsd", "acm005282jsd", "acm005283jsd", "acm005284jsd", "acm005285jsd", "acm005286jsd", "acm005287jsd", "acm005288jsd" ] + }, + "acm005290jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005290jsd", + "name" : "PresentationToConvert", + "parentId" : "acm005062jsd", + "content" : [ "acm005299jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005291jsd" : { + "type" : "CodePackage", + "id" : "acm005291jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005292jsd" ] + }, + "acm005292jsd" : { + "type" : "CodePackage", + "id" : "acm005292jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005293jsd" ] + }, + "acm005293jsd" : { + "type" : "CodePackage", + "id" : "acm005293jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005294jsd" ] + }, + "acm005294jsd" : { + "type" : "CodePackage", + "id" : "acm005294jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005290jsd" ] + }, + "acm005295jsd" : { + "type" : "ControlElement", + "id" : "acm005295jsd", + "name" : "PresentationToConvert" + }, + "acm005296jsd" : { + "type" : "ControlElement", + "id" : "acm005296jsd", + "name" : "getKey" + }, + "acm005297jsd" : { + "type" : "ControlElement", + "id" : "acm005297jsd", + "name" : "getPagesCompleted" + }, + "acm005298jsd" : { + "type" : "ControlElement", + "id" : "acm005298jsd", + "name" : "incrementPagesCompleted" + }, + "acm005299jsd" : { + "type" : "ClassUnit", + "id" : "acm005299jsd", + "name" : "PresentationToConvert", + "compilationUnitId" : "acm005290jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm005295jsd", "acm005296jsd", "acm005297jsd", "acm005298jsd" ] + }, + "acm005300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005300jsd", + "name" : "SlidesGenerationProgressNotifier", + "parentId" : "acm005062jsd", + "content" : [ "acm005318jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005301jsd" : { + "type" : "CodePackage", + "id" : "acm005301jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005302jsd" ] + }, + "acm005302jsd" : { + "type" : "CodePackage", + "id" : "acm005302jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005303jsd" ] + }, + "acm005303jsd" : { + "type" : "CodePackage", + "id" : "acm005303jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005304jsd" ] + }, + "acm005304jsd" : { + "type" : "CodePackage", + "id" : "acm005304jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005300jsd" ] + }, + "acm005305jsd" : { + "type" : "ControlElement", + "id" : "acm005305jsd", + "name" : "sendDocConversionProgress" + }, + "acm005306jsd" : { + "type" : "ControlElement", + "id" : "acm005306jsd", + "name" : "sendUploadFileTooLargeMessage" + }, + "acm005307jsd" : { + "type" : "ControlElement", + "id" : "acm005307jsd", + "name" : "sendInvalidMimeTypeMessage" + }, + "acm005308jsd" : { + "type" : "ControlElement", + "id" : "acm005308jsd", + "name" : "sendUploadFileTimedout" + }, + "acm005309jsd" : { + "type" : "ControlElement", + "id" : "acm005309jsd", + "name" : "sendConversionUpdateMessage" + }, + "acm005310jsd" : { + "type" : "ControlElement", + "id" : "acm005310jsd", + "name" : "sendCreatingThumbnailsUpdateMessage" + }, + "acm005311jsd" : { + "type" : "ControlElement", + "id" : "acm005311jsd", + "name" : "sendConversionCompletedMessage" + }, + "acm005312jsd" : { + "type" : "ControlElement", + "id" : "acm005312jsd", + "name" : "generateBasePresUrl" + }, + "acm005313jsd" : { + "type" : "ControlElement", + "id" : "acm005313jsd", + "name" : "setMessagingService" + }, + "acm005314jsd" : { + "type" : "ControlElement", + "id" : "acm005314jsd", + "name" : "setMaxNumberOfAttempts" + }, + "acm005315jsd" : { + "type" : "ControlElement", + "id" : "acm005315jsd", + "name" : "setGeneratedSlidesInfoHelper" + }, + "acm005316jsd" : { + "type" : "ControlElement", + "id" : "acm005316jsd", + "name" : "sendCreatingTextFilesUpdateMessage" + }, + "acm005317jsd" : { + "type" : "ControlElement", + "id" : "acm005317jsd", + "name" : "sendCreatingSvgImagesUpdateMessage" + }, + "acm005318jsd" : { + "type" : "ClassUnit", + "id" : "acm005318jsd", + "name" : "SlidesGenerationProgressNotifier", + "compilationUnitId" : "acm005300jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003474jsd", "acm004639jsd", "acm004832jsd", "acm004981jsd", "acm005318jsd", "acm005374jsd", "acm005388jsd", "acm005395jsd", "acm005423jsd", "acm005429jsd", "acm005463jsd", "acm005470jsd" ], + "content" : [ "acm005305jsd", "acm005306jsd", "acm005307jsd", "acm005308jsd", "acm005309jsd", "acm005310jsd", "acm005311jsd", "acm005312jsd", "acm005313jsd", "acm005314jsd", "acm005315jsd", "acm005316jsd", "acm005317jsd" ] + }, + "acm005319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005319jsd", + "name" : "SvgImageCreatorImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005342jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005320jsd" : { + "type" : "CodePackage", + "id" : "acm005320jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005321jsd" ] + }, + "acm005321jsd" : { + "type" : "CodePackage", + "id" : "acm005321jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005322jsd" ] + }, + "acm005322jsd" : { + "type" : "CodePackage", + "id" : "acm005322jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005323jsd" ] + }, + "acm005323jsd" : { + "type" : "CodePackage", + "id" : "acm005323jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005319jsd" ] + }, + "acm005324jsd" : { + "type" : "ControlElement", + "id" : "acm005324jsd", + "name" : "createSvgImage" + }, + "acm005325jsd" : { + "type" : "ControlElement", + "id" : "acm005325jsd", + "name" : "createDetectFontType3tHandler" + }, + "acm005326jsd" : { + "type" : "ControlElement", + "id" : "acm005326jsd", + "name" : "generateSvgImage" + }, + "acm005327jsd" : { + "type" : "ControlElement", + "id" : "acm005327jsd", + "name" : "createConversionProcess" + }, + "acm005328jsd" : { + "type" : "ControlElement", + "id" : "acm005328jsd", + "name" : "createDetectFontType3Process" + }, + "acm005329jsd" : { + "type" : "ControlElement", + "id" : "acm005329jsd", + "name" : "determineSvgImagesDirectory" + }, + "acm005330jsd" : { + "type" : "ControlElement", + "id" : "acm005330jsd", + "name" : "copyBlankSvgs" + }, + "acm005331jsd" : { + "type" : "ControlElement", + "id" : "acm005331jsd", + "name" : "copyBlankSvg" + }, + "acm005332jsd" : { + "type" : "ControlElement", + "id" : "acm005332jsd", + "name" : "setBlankSvg" + }, + "acm005333jsd" : { + "type" : "ControlElement", + "id" : "acm005333jsd", + "name" : "setMaxNumberOfAttempts" + }, + "acm005334jsd" : { + "type" : "ControlElement", + "id" : "acm005334jsd", + "name" : "setPdfFontsTimeout" + }, + "acm005335jsd" : { + "type" : "ControlElement", + "id" : "acm005335jsd", + "name" : "setImageTagThreshold" + }, + "acm005336jsd" : { + "type" : "ControlElement", + "id" : "acm005336jsd", + "name" : "setPathsThreshold" + }, + "acm005337jsd" : { + "type" : "ControlElement", + "id" : "acm005337jsd", + "name" : "setSlidesGenerationProgressNotifier" + }, + "acm005338jsd" : { + "type" : "ControlElement", + "id" : "acm005338jsd", + "name" : "setConvPdfToSvgTimeout" + }, + "acm005339jsd" : { + "type" : "ControlElement", + "id" : "acm005339jsd", + "name" : "setSvgResolutionPpi" + }, + "acm005340jsd" : { + "type" : "ControlElement", + "id" : "acm005340jsd", + "name" : "setForceRasterizeSlides" + }, + "acm005341jsd" : { + "type" : "ControlElement", + "id" : "acm005341jsd", + "name" : "setPngWidthRasterizedSlides" + }, + "acm005342jsd" : { + "type" : "ClassUnit", + "id" : "acm005342jsd", + "name" : "SvgImageCreatorImp", + "compilationUnitId" : "acm005319jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004937jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005011jsd", "acm005029jsd", "acm005036jsd", "acm005049jsd", "acm005057jsd", "acm005318jsd", "acm005342jsd" ], + "content" : [ "acm005324jsd", "acm005325jsd", "acm005326jsd", "acm005327jsd", "acm005328jsd", "acm005329jsd", "acm005330jsd", "acm005331jsd", "acm005332jsd", "acm005333jsd", "acm005334jsd", "acm005335jsd", "acm005336jsd", "acm005337jsd", "acm005338jsd", "acm005339jsd", "acm005340jsd", "acm005341jsd" ] + }, + "acm005343jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005343jsd", + "name" : "TextFileCreatorImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005352jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005344jsd" : { + "type" : "CodePackage", + "id" : "acm005344jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005345jsd" ] + }, + "acm005345jsd" : { + "type" : "CodePackage", + "id" : "acm005345jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005346jsd" ] + }, + "acm005346jsd" : { + "type" : "CodePackage", + "id" : "acm005346jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005347jsd" ] + }, + "acm005347jsd" : { + "type" : "CodePackage", + "id" : "acm005347jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005343jsd" ] + }, + "acm005348jsd" : { + "type" : "ControlElement", + "id" : "acm005348jsd", + "name" : "createTextFile" + }, + "acm005349jsd" : { + "type" : "ControlElement", + "id" : "acm005349jsd", + "name" : "generateTextFile" + }, + "acm005350jsd" : { + "type" : "ControlElement", + "id" : "acm005350jsd", + "name" : "determineTextfilesDirectory" + }, + "acm005351jsd" : { + "type" : "ControlElement", + "id" : "acm005351jsd", + "name" : "cleanDirectory" + }, + "acm005352jsd" : { + "type" : "ClassUnit", + "id" : "acm005352jsd", + "name" : "TextFileCreatorImp", + "compilationUnitId" : "acm005343jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004943jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005087jsd", "acm005352jsd" ], + "content" : [ "acm005348jsd", "acm005349jsd", "acm005350jsd", "acm005351jsd" ] + }, + "acm005353jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005353jsd", + "name" : "ThumbnailCreatorImp", + "parentId" : "acm005062jsd", + "content" : [ "acm005367jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "imp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005354jsd" : { + "type" : "CodePackage", + "id" : "acm005354jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005355jsd" ] + }, + "acm005355jsd" : { + "type" : "CodePackage", + "id" : "acm005355jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005356jsd" ] + }, + "acm005356jsd" : { + "type" : "CodePackage", + "id" : "acm005356jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005357jsd" ] + }, + "acm005357jsd" : { + "type" : "CodePackage", + "id" : "acm005357jsd", + "name" : "imp", + "parentId" : null, + "content" : [ "acm005353jsd" ] + }, + "acm005358jsd" : { + "type" : "ControlElement", + "id" : "acm005358jsd", + "name" : "createThumbnail" + }, + "acm005359jsd" : { + "type" : "ControlElement", + "id" : "acm005359jsd", + "name" : "generateThumbnail" + }, + "acm005360jsd" : { + "type" : "ControlElement", + "id" : "acm005360jsd", + "name" : "determineThumbnailDirectory" + }, + "acm005361jsd" : { + "type" : "ControlElement", + "id" : "acm005361jsd", + "name" : "renameThumbnails" + }, + "acm005362jsd" : { + "type" : "ControlElement", + "id" : "acm005362jsd", + "name" : "createBlankThumbnail" + }, + "acm005363jsd" : { + "type" : "ControlElement", + "id" : "acm005363jsd", + "name" : "copyBlankThumbnail" + }, + "acm005364jsd" : { + "type" : "ControlElement", + "id" : "acm005364jsd", + "name" : "cleanDirectory" + }, + "acm005365jsd" : { + "type" : "ControlElement", + "id" : "acm005365jsd", + "name" : "setImageMagickDir" + }, + "acm005366jsd" : { + "type" : "ControlElement", + "id" : "acm005366jsd", + "name" : "setBlankThumbnail" + }, + "acm005367jsd" : { + "type" : "ClassUnit", + "id" : "acm005367jsd", + "name" : "ThumbnailCreatorImp", + "compilationUnitId" : "acm005353jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004949jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd", "acm005087jsd", "acm005367jsd" ], + "content" : [ "acm005358jsd", "acm005359jsd", "acm005360jsd", "acm005361jsd", "acm005362jsd", "acm005363jsd", "acm005364jsd", "acm005365jsd", "acm005366jsd" ] + }, + "acm005368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005368jsd", + "name" : "DocConversionProgress", + "parentId" : "acm005372jsd", + "content" : [ "acm005374jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005369jsd" : { + "type" : "CodePackage", + "id" : "acm005369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005370jsd" ] + }, + "acm005370jsd" : { + "type" : "CodePackage", + "id" : "acm005370jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005371jsd" ] + }, + "acm005371jsd" : { + "type" : "CodePackage", + "id" : "acm005371jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005372jsd" ] + }, + "acm005372jsd" : { + "type" : "CodePackage", + "id" : "acm005372jsd", + "name" : "messages", + "parentId" : "acm004768jsd", + "content" : [ "acm005368jsd", "acm005375jsd", "acm005382jsd", "acm005389jsd", "acm005396jsd", "acm005403jsd", "acm005410jsd", "acm005417jsd", "acm005424jsd", "acm005430jsd", "acm005436jsd", "acm005443jsd", "acm005450jsd", "acm005457jsd", "acm005464jsd" ] + }, + "acm005373jsd" : { + "type" : "ControlElement", + "id" : "acm005373jsd", + "name" : "DocConversionProgress" + }, + "acm005374jsd" : { + "type" : "ClassUnit", + "id" : "acm005374jsd", + "name" : "DocConversionProgress", + "compilationUnitId" : "acm005368jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005373jsd" ] + }, + "acm005375jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005375jsd", + "name" : "DocConversionRequestReceived", + "parentId" : "acm005372jsd", + "content" : [ "acm005381jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005376jsd" : { + "type" : "CodePackage", + "id" : "acm005376jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005377jsd" ] + }, + "acm005377jsd" : { + "type" : "CodePackage", + "id" : "acm005377jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005378jsd" ] + }, + "acm005378jsd" : { + "type" : "CodePackage", + "id" : "acm005378jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005379jsd" ] + }, + "acm005379jsd" : { + "type" : "CodePackage", + "id" : "acm005379jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005375jsd" ] + }, + "acm005380jsd" : { + "type" : "ControlElement", + "id" : "acm005380jsd", + "name" : "DocConversionRequestReceived" + }, + "acm005381jsd" : { + "type" : "ClassUnit", + "id" : "acm005381jsd", + "name" : "DocConversionRequestReceived", + "compilationUnitId" : "acm005375jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005380jsd" ] + }, + "acm005382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005382jsd", + "name" : "DocInvalidMimeType", + "parentId" : "acm005372jsd", + "content" : [ "acm005388jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005383jsd" : { + "type" : "CodePackage", + "id" : "acm005383jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005384jsd" ] + }, + "acm005384jsd" : { + "type" : "CodePackage", + "id" : "acm005384jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005385jsd" ] + }, + "acm005385jsd" : { + "type" : "CodePackage", + "id" : "acm005385jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005386jsd" ] + }, + "acm005386jsd" : { + "type" : "CodePackage", + "id" : "acm005386jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005382jsd" ] + }, + "acm005387jsd" : { + "type" : "ControlElement", + "id" : "acm005387jsd", + "name" : "DocInvalidMimeType" + }, + "acm005388jsd" : { + "type" : "ClassUnit", + "id" : "acm005388jsd", + "name" : "DocInvalidMimeType", + "compilationUnitId" : "acm005382jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005387jsd" ] + }, + "acm005389jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005389jsd", + "name" : "DocPageCompletedProgress", + "parentId" : "acm005372jsd", + "content" : [ "acm005395jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005390jsd" : { + "type" : "CodePackage", + "id" : "acm005390jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005391jsd" ] + }, + "acm005391jsd" : { + "type" : "CodePackage", + "id" : "acm005391jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005392jsd" ] + }, + "acm005392jsd" : { + "type" : "CodePackage", + "id" : "acm005392jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005393jsd" ] + }, + "acm005393jsd" : { + "type" : "CodePackage", + "id" : "acm005393jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005389jsd" ] + }, + "acm005394jsd" : { + "type" : "ControlElement", + "id" : "acm005394jsd", + "name" : "DocPageCompletedProgress" + }, + "acm005395jsd" : { + "type" : "ClassUnit", + "id" : "acm005395jsd", + "name" : "DocPageCompletedProgress", + "compilationUnitId" : "acm005389jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005394jsd" ] + }, + "acm005396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005396jsd", + "name" : "DocPageConversionStarted", + "parentId" : "acm005372jsd", + "content" : [ "acm005402jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005397jsd" : { + "type" : "CodePackage", + "id" : "acm005397jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005398jsd" ] + }, + "acm005398jsd" : { + "type" : "CodePackage", + "id" : "acm005398jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005399jsd" ] + }, + "acm005399jsd" : { + "type" : "CodePackage", + "id" : "acm005399jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005400jsd" ] + }, + "acm005400jsd" : { + "type" : "CodePackage", + "id" : "acm005400jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005396jsd" ] + }, + "acm005401jsd" : { + "type" : "ControlElement", + "id" : "acm005401jsd", + "name" : "DocPageConversionStarted" + }, + "acm005402jsd" : { + "type" : "ClassUnit", + "id" : "acm005402jsd", + "name" : "DocPageConversionStarted", + "compilationUnitId" : "acm005396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005401jsd" ] + }, + "acm005403jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005403jsd", + "name" : "DocPageCountExceeded", + "parentId" : "acm005372jsd", + "content" : [ "acm005409jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005404jsd" : { + "type" : "CodePackage", + "id" : "acm005404jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005405jsd" ] + }, + "acm005405jsd" : { + "type" : "CodePackage", + "id" : "acm005405jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005406jsd" ] + }, + "acm005406jsd" : { + "type" : "CodePackage", + "id" : "acm005406jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005407jsd" ] + }, + "acm005407jsd" : { + "type" : "CodePackage", + "id" : "acm005407jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005403jsd" ] + }, + "acm005408jsd" : { + "type" : "ControlElement", + "id" : "acm005408jsd", + "name" : "DocPageCountExceeded" + }, + "acm005409jsd" : { + "type" : "ClassUnit", + "id" : "acm005409jsd", + "name" : "DocPageCountExceeded", + "compilationUnitId" : "acm005403jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005408jsd" ] + }, + "acm005410jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005410jsd", + "name" : "DocPageCountFailed", + "parentId" : "acm005372jsd", + "content" : [ "acm005416jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005411jsd" : { + "type" : "CodePackage", + "id" : "acm005411jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005412jsd" ] + }, + "acm005412jsd" : { + "type" : "CodePackage", + "id" : "acm005412jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005413jsd" ] + }, + "acm005413jsd" : { + "type" : "CodePackage", + "id" : "acm005413jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005414jsd" ] + }, + "acm005414jsd" : { + "type" : "CodePackage", + "id" : "acm005414jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005410jsd" ] + }, + "acm005415jsd" : { + "type" : "ControlElement", + "id" : "acm005415jsd", + "name" : "DocPageCountFailed" + }, + "acm005416jsd" : { + "type" : "ClassUnit", + "id" : "acm005416jsd", + "name" : "DocPageCountFailed", + "compilationUnitId" : "acm005410jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005415jsd" ] + }, + "acm005417jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005417jsd", + "name" : "DocPageGeneratedProgress", + "parentId" : "acm005372jsd", + "content" : [ "acm005423jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005418jsd" : { + "type" : "CodePackage", + "id" : "acm005418jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005419jsd" ] + }, + "acm005419jsd" : { + "type" : "CodePackage", + "id" : "acm005419jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005420jsd" ] + }, + "acm005420jsd" : { + "type" : "CodePackage", + "id" : "acm005420jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005421jsd" ] + }, + "acm005421jsd" : { + "type" : "CodePackage", + "id" : "acm005421jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005417jsd" ] + }, + "acm005422jsd" : { + "type" : "ControlElement", + "id" : "acm005422jsd", + "name" : "DocPageGeneratedProgress" + }, + "acm005423jsd" : { + "type" : "ClassUnit", + "id" : "acm005423jsd", + "name" : "DocPageGeneratedProgress", + "compilationUnitId" : "acm005417jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005422jsd" ] + }, + "acm005424jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005424jsd", + "name" : "IDocConversionMsg", + "parentId" : "acm005372jsd", + "content" : [ "acm005429jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005425jsd" : { + "type" : "CodePackage", + "id" : "acm005425jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005426jsd" ] + }, + "acm005426jsd" : { + "type" : "CodePackage", + "id" : "acm005426jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005427jsd" ] + }, + "acm005427jsd" : { + "type" : "CodePackage", + "id" : "acm005427jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005428jsd" ] + }, + "acm005428jsd" : { + "type" : "CodePackage", + "id" : "acm005428jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005424jsd" ] + }, + "acm005429jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005429jsd", + "name" : "IDocConversionMsg", + "compilationUnitId" : "acm005424jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005430jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005430jsd", + "name" : "IPresentationCompletionMessage", + "parentId" : "acm005372jsd", + "content" : [ "acm005435jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005431jsd" : { + "type" : "CodePackage", + "id" : "acm005431jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005432jsd" ] + }, + "acm005432jsd" : { + "type" : "CodePackage", + "id" : "acm005432jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005433jsd" ] + }, + "acm005433jsd" : { + "type" : "CodePackage", + "id" : "acm005433jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005434jsd" ] + }, + "acm005434jsd" : { + "type" : "CodePackage", + "id" : "acm005434jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005430jsd" ] + }, + "acm005435jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005435jsd", + "name" : "IPresentationCompletionMessage", + "compilationUnitId" : "acm005430jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005436jsd", + "name" : "PageConvertProgressMessage", + "parentId" : "acm005372jsd", + "content" : [ "acm005442jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005437jsd" : { + "type" : "CodePackage", + "id" : "acm005437jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005438jsd" ] + }, + "acm005438jsd" : { + "type" : "CodePackage", + "id" : "acm005438jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005439jsd" ] + }, + "acm005439jsd" : { + "type" : "CodePackage", + "id" : "acm005439jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005440jsd" ] + }, + "acm005440jsd" : { + "type" : "CodePackage", + "id" : "acm005440jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005436jsd" ] + }, + "acm005441jsd" : { + "type" : "ControlElement", + "id" : "acm005441jsd", + "name" : "PageConvertProgressMessage" + }, + "acm005442jsd" : { + "type" : "ClassUnit", + "id" : "acm005442jsd", + "name" : "PageConvertProgressMessage", + "compilationUnitId" : "acm005436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005435jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005441jsd" ] + }, + "acm005443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005443jsd", + "name" : "PdfConversionInvalid", + "parentId" : "acm005372jsd", + "content" : [ "acm005449jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005444jsd" : { + "type" : "CodePackage", + "id" : "acm005444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005445jsd" ] + }, + "acm005445jsd" : { + "type" : "CodePackage", + "id" : "acm005445jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005446jsd" ] + }, + "acm005446jsd" : { + "type" : "CodePackage", + "id" : "acm005446jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005447jsd" ] + }, + "acm005447jsd" : { + "type" : "CodePackage", + "id" : "acm005447jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005443jsd" ] + }, + "acm005448jsd" : { + "type" : "ControlElement", + "id" : "acm005448jsd", + "name" : "PdfConversionInvalid" + }, + "acm005449jsd" : { + "type" : "ClassUnit", + "id" : "acm005449jsd", + "name" : "PdfConversionInvalid", + "compilationUnitId" : "acm005443jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005448jsd" ] + }, + "acm005450jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005450jsd", + "name" : "PresentationConvertMessage", + "parentId" : "acm005372jsd", + "content" : [ "acm005456jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005451jsd" : { + "type" : "CodePackage", + "id" : "acm005451jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005452jsd" ] + }, + "acm005452jsd" : { + "type" : "CodePackage", + "id" : "acm005452jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005453jsd" ] + }, + "acm005453jsd" : { + "type" : "CodePackage", + "id" : "acm005453jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005454jsd" ] + }, + "acm005454jsd" : { + "type" : "CodePackage", + "id" : "acm005454jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005450jsd" ] + }, + "acm005455jsd" : { + "type" : "ControlElement", + "id" : "acm005455jsd", + "name" : "PresentationConvertMessage" + }, + "acm005456jsd" : { + "type" : "ClassUnit", + "id" : "acm005456jsd", + "name" : "PresentationConvertMessage", + "compilationUnitId" : "acm005450jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005435jsd" ], + "datatypeReferencesIds" : [ "acm004981jsd" ], + "content" : [ "acm005455jsd" ] + }, + "acm005457jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005457jsd", + "name" : "UploadFileTimedoutMessage", + "parentId" : "acm005372jsd", + "content" : [ "acm005463jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005458jsd" : { + "type" : "CodePackage", + "id" : "acm005458jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005459jsd" ] + }, + "acm005459jsd" : { + "type" : "CodePackage", + "id" : "acm005459jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005460jsd" ] + }, + "acm005460jsd" : { + "type" : "CodePackage", + "id" : "acm005460jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005461jsd" ] + }, + "acm005461jsd" : { + "type" : "CodePackage", + "id" : "acm005461jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005457jsd" ] + }, + "acm005462jsd" : { + "type" : "ControlElement", + "id" : "acm005462jsd", + "name" : "UploadFileTimedoutMessage" + }, + "acm005463jsd" : { + "type" : "ClassUnit", + "id" : "acm005463jsd", + "name" : "UploadFileTimedoutMessage", + "compilationUnitId" : "acm005457jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005462jsd" ] + }, + "acm005464jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005464jsd", + "name" : "UploadFileTooLargeMessage", + "parentId" : "acm005372jsd", + "content" : [ "acm005470jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "presentation", "messages" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005465jsd" : { + "type" : "CodePackage", + "id" : "acm005465jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005466jsd" ] + }, + "acm005466jsd" : { + "type" : "CodePackage", + "id" : "acm005466jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005467jsd" ] + }, + "acm005467jsd" : { + "type" : "CodePackage", + "id" : "acm005467jsd", + "name" : "presentation", + "parentId" : null, + "content" : [ "acm005468jsd" ] + }, + "acm005468jsd" : { + "type" : "CodePackage", + "id" : "acm005468jsd", + "name" : "messages", + "parentId" : null, + "content" : [ "acm005464jsd" ] + }, + "acm005469jsd" : { + "type" : "ControlElement", + "id" : "acm005469jsd", + "name" : "UploadFileTooLargeMessage" + }, + "acm005470jsd" : { + "type" : "ClassUnit", + "id" : "acm005470jsd", + "name" : "UploadFileTooLargeMessage", + "compilationUnitId" : "acm005464jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005429jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005469jsd" ] + }, + "acm005471jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005471jsd", + "name" : "EnteredUserCleanupTimerTask", + "parentId" : "acm005475jsd", + "content" : [ "acm005481jsd", "acm005483jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005472jsd" : { + "type" : "CodePackage", + "id" : "acm005472jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005473jsd" ] + }, + "acm005473jsd" : { + "type" : "CodePackage", + "id" : "acm005473jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005474jsd" ] + }, + "acm005474jsd" : { + "type" : "CodePackage", + "id" : "acm005474jsd", + "name" : "web", + "parentId" : "acm001339jsd", + "content" : [ "acm005475jsd" ] + }, + "acm005475jsd" : { + "type" : "CodePackage", + "id" : "acm005475jsd", + "name" : "services", + "parentId" : "acm005474jsd", + "content" : [ "acm005471jsd", "acm005484jsd", "acm005494jsd", "acm005500jsd", "acm005507jsd", "acm005514jsd", "acm005537jsd", "acm005550jsd", "acm005568jsd", "acm005613jsd" ] + }, + "acm005476jsd" : { + "type" : "ControlElement", + "id" : "acm005476jsd", + "name" : "setMeetingService" + }, + "acm005477jsd" : { + "type" : "ControlElement", + "id" : "acm005477jsd", + "name" : "start" + }, + "acm005478jsd" : { + "type" : "ControlElement", + "id" : "acm005478jsd", + "name" : "stop" + }, + "acm005479jsd" : { + "type" : "ControlElement", + "id" : "acm005479jsd", + "name" : "setRunEvery" + }, + "acm005480jsd" : { + "type" : "ControlElement", + "id" : "acm005480jsd", + "name" : "run" + }, + "acm005481jsd" : { + "type" : "ClassUnit", + "id" : "acm005481jsd", + "name" : "EnteredUserCleanupTimerTask", + "compilationUnitId" : "acm005471jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm005483jsd" ], + "content" : [ "acm005476jsd", "acm005477jsd", "acm005478jsd", "acm005479jsd", "acm005480jsd" ] + }, + "acm005482jsd" : { + "type" : "ControlElement", + "id" : "acm005482jsd", + "name" : "run" + }, + "acm005483jsd" : { + "type" : "ClassUnit", + "id" : "acm005483jsd", + "name" : "CleanupTask", + "compilationUnitId" : "acm005471jsd", + "parentDatatypeId" : "acm005481jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005482jsd" ] + }, + "acm005484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005484jsd", + "name" : "IStorageService", + "parentId" : "acm005475jsd", + "content" : [ "acm005493jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005485jsd" : { + "type" : "CodePackage", + "id" : "acm005485jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005486jsd" ] + }, + "acm005486jsd" : { + "type" : "CodePackage", + "id" : "acm005486jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005487jsd" ] + }, + "acm005487jsd" : { + "type" : "CodePackage", + "id" : "acm005487jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005488jsd" ] + }, + "acm005488jsd" : { + "type" : "CodePackage", + "id" : "acm005488jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005484jsd" ] + }, + "acm005489jsd" : { + "type" : "ControlElement", + "id" : "acm005489jsd", + "name" : "generatePollID" + }, + "acm005490jsd" : { + "type" : "ControlElement", + "id" : "acm005490jsd", + "name" : "generatePollAnswerID" + }, + "acm005491jsd" : { + "type" : "ControlElement", + "id" : "acm005491jsd", + "name" : "storePoll" + }, + "acm005492jsd" : { + "type" : "ControlElement", + "id" : "acm005492jsd", + "name" : "storePollAnswers" + }, + "acm005493jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005493jsd", + "name" : "IStorageService", + "compilationUnitId" : "acm005484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003051jsd" ], + "content" : [ "acm005489jsd", "acm005490jsd", "acm005491jsd", "acm005492jsd" ] + }, + "acm005494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005494jsd", + "name" : "KeepAliveMessage", + "parentId" : "acm005475jsd", + "content" : [ "acm005499jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005495jsd" : { + "type" : "CodePackage", + "id" : "acm005495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005496jsd" ] + }, + "acm005496jsd" : { + "type" : "CodePackage", + "id" : "acm005496jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005497jsd" ] + }, + "acm005497jsd" : { + "type" : "CodePackage", + "id" : "acm005497jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005498jsd" ] + }, + "acm005498jsd" : { + "type" : "CodePackage", + "id" : "acm005498jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005494jsd" ] + }, + "acm005499jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005499jsd", + "name" : "KeepAliveMessage", + "compilationUnitId" : "acm005494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005500jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005500jsd", + "name" : "KeepAlivePing", + "parentId" : "acm005475jsd", + "content" : [ "acm005506jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005501jsd" : { + "type" : "CodePackage", + "id" : "acm005501jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005502jsd" ] + }, + "acm005502jsd" : { + "type" : "CodePackage", + "id" : "acm005502jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005503jsd" ] + }, + "acm005503jsd" : { + "type" : "CodePackage", + "id" : "acm005503jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005504jsd" ] + }, + "acm005504jsd" : { + "type" : "CodePackage", + "id" : "acm005504jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005500jsd" ] + }, + "acm005505jsd" : { + "type" : "ControlElement", + "id" : "acm005505jsd", + "name" : "KeepAlivePing" + }, + "acm005506jsd" : { + "type" : "ClassUnit", + "id" : "acm005506jsd", + "name" : "KeepAlivePing", + "compilationUnitId" : "acm005500jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005499jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005505jsd" ] + }, + "acm005507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005507jsd", + "name" : "KeepAlivePong", + "parentId" : "acm005475jsd", + "content" : [ "acm005513jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005508jsd" : { + "type" : "CodePackage", + "id" : "acm005508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005509jsd" ] + }, + "acm005509jsd" : { + "type" : "CodePackage", + "id" : "acm005509jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005510jsd" ] + }, + "acm005510jsd" : { + "type" : "CodePackage", + "id" : "acm005510jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005511jsd" ] + }, + "acm005511jsd" : { + "type" : "CodePackage", + "id" : "acm005511jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005507jsd" ] + }, + "acm005512jsd" : { + "type" : "ControlElement", + "id" : "acm005512jsd", + "name" : "KeepAlivePong" + }, + "acm005513jsd" : { + "type" : "ClassUnit", + "id" : "acm005513jsd", + "name" : "KeepAlivePong", + "compilationUnitId" : "acm005507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005499jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005512jsd" ] + }, + "acm005514jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005514jsd", + "name" : "KeepAliveService", + "parentId" : "acm005475jsd", + "content" : [ "acm005534jsd", "acm005536jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005515jsd" : { + "type" : "CodePackage", + "id" : "acm005515jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005516jsd" ] + }, + "acm005516jsd" : { + "type" : "CodePackage", + "id" : "acm005516jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005517jsd" ] + }, + "acm005517jsd" : { + "type" : "CodePackage", + "id" : "acm005517jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005518jsd" ] + }, + "acm005518jsd" : { + "type" : "CodePackage", + "id" : "acm005518jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005514jsd" ] + }, + "acm005519jsd" : { + "type" : "ControlElement", + "id" : "acm005519jsd", + "name" : "start" + }, + "acm005520jsd" : { + "type" : "ControlElement", + "id" : "acm005520jsd", + "name" : "stop" + }, + "acm005521jsd" : { + "type" : "ControlElement", + "id" : "acm005521jsd", + "name" : "setRunEvery" + }, + "acm005522jsd" : { + "type" : "ControlElement", + "id" : "acm005522jsd", + "name" : "setGw" + }, + "acm005523jsd" : { + "type" : "ControlElement", + "id" : "acm005523jsd", + "name" : "run" + }, + "acm005524jsd" : { + "type" : "ControlElement", + "id" : "acm005524jsd", + "name" : "isDown" + }, + "acm005525jsd" : { + "type" : "ControlElement", + "id" : "acm005525jsd", + "name" : "queueMessage" + }, + "acm005526jsd" : { + "type" : "ControlElement", + "id" : "acm005526jsd", + "name" : "processKeepAliveMessage" + }, + "acm005527jsd" : { + "type" : "ControlElement", + "id" : "acm005527jsd", + "name" : "run" + }, + "acm005528jsd" : { + "type" : "ControlElement", + "id" : "acm005528jsd", + "name" : "processMessage" + }, + "acm005529jsd" : { + "type" : "ControlElement", + "id" : "acm005529jsd", + "name" : "run" + }, + "acm005530jsd" : { + "type" : "ControlElement", + "id" : "acm005530jsd", + "name" : "processPing" + }, + "acm005531jsd" : { + "type" : "ControlElement", + "id" : "acm005531jsd", + "name" : "processPong" + }, + "acm005532jsd" : { + "type" : "ControlElement", + "id" : "acm005532jsd", + "name" : "handleKeepAliveReply" + }, + "acm005533jsd" : { + "type" : "ControlElement", + "id" : "acm005533jsd", + "name" : "handle" + }, + "acm005534jsd" : { + "type" : "ClassUnit", + "id" : "acm005534jsd", + "name" : "KeepAliveService", + "compilationUnitId" : "acm005514jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003245jsd" ], + "datatypeReferencesIds" : [ "acm003410jsd", "acm003418jsd", "acm004639jsd", "acm005499jsd", "acm005506jsd", "acm005513jsd", "acm005534jsd", "acm005536jsd" ], + "content" : [ "acm005519jsd", "acm005520jsd", "acm005521jsd", "acm005522jsd", "acm005523jsd", "acm005524jsd", "acm005525jsd", "acm005526jsd", "acm005527jsd", "acm005528jsd", "acm005529jsd", "acm005530jsd", "acm005531jsd", "acm005532jsd", "acm005533jsd" ] + }, + "acm005535jsd" : { + "type" : "ControlElement", + "id" : "acm005535jsd", + "name" : "run" + }, + "acm005536jsd" : { + "type" : "ClassUnit", + "id" : "acm005536jsd", + "name" : "KeepAliveTask", + "compilationUnitId" : "acm005514jsd", + "parentDatatypeId" : "acm005534jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005506jsd" ], + "content" : [ "acm005535jsd" ] + }, + "acm005537jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005537jsd", + "name" : "UserCleanupTimerTask", + "parentId" : "acm005475jsd", + "content" : [ "acm005547jsd", "acm005549jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005538jsd" : { + "type" : "CodePackage", + "id" : "acm005538jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005539jsd" ] + }, + "acm005539jsd" : { + "type" : "CodePackage", + "id" : "acm005539jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005540jsd" ] + }, + "acm005540jsd" : { + "type" : "CodePackage", + "id" : "acm005540jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005541jsd" ] + }, + "acm005541jsd" : { + "type" : "CodePackage", + "id" : "acm005541jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005537jsd" ] + }, + "acm005542jsd" : { + "type" : "ControlElement", + "id" : "acm005542jsd", + "name" : "setMeetingService" + }, + "acm005543jsd" : { + "type" : "ControlElement", + "id" : "acm005543jsd", + "name" : "start" + }, + "acm005544jsd" : { + "type" : "ControlElement", + "id" : "acm005544jsd", + "name" : "stop" + }, + "acm005545jsd" : { + "type" : "ControlElement", + "id" : "acm005545jsd", + "name" : "setRunEvery" + }, + "acm005546jsd" : { + "type" : "ControlElement", + "id" : "acm005546jsd", + "name" : "run" + }, + "acm005547jsd" : { + "type" : "ClassUnit", + "id" : "acm005547jsd", + "name" : "UserCleanupTimerTask", + "compilationUnitId" : "acm005537jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm005549jsd" ], + "content" : [ "acm005542jsd", "acm005543jsd", "acm005544jsd", "acm005545jsd", "acm005546jsd" ] + }, + "acm005548jsd" : { + "type" : "ControlElement", + "id" : "acm005548jsd", + "name" : "run" + }, + "acm005549jsd" : { + "type" : "ClassUnit", + "id" : "acm005549jsd", + "name" : "CleanupTask", + "compilationUnitId" : "acm005537jsd", + "parentDatatypeId" : "acm005547jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005548jsd" ] + }, + "acm005550jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005550jsd", + "name" : "WaitingGuestCleanupTimerTask", + "parentId" : "acm005475jsd", + "content" : [ "acm005560jsd", "acm005562jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005551jsd" : { + "type" : "CodePackage", + "id" : "acm005551jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005552jsd" ] + }, + "acm005552jsd" : { + "type" : "CodePackage", + "id" : "acm005552jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005553jsd" ] + }, + "acm005553jsd" : { + "type" : "CodePackage", + "id" : "acm005553jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005554jsd" ] + }, + "acm005554jsd" : { + "type" : "CodePackage", + "id" : "acm005554jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005550jsd" ] + }, + "acm005555jsd" : { + "type" : "ControlElement", + "id" : "acm005555jsd", + "name" : "setMeetingService" + }, + "acm005556jsd" : { + "type" : "ControlElement", + "id" : "acm005556jsd", + "name" : "start" + }, + "acm005557jsd" : { + "type" : "ControlElement", + "id" : "acm005557jsd", + "name" : "stop" + }, + "acm005558jsd" : { + "type" : "ControlElement", + "id" : "acm005558jsd", + "name" : "setRunEvery" + }, + "acm005559jsd" : { + "type" : "ControlElement", + "id" : "acm005559jsd", + "name" : "run" + }, + "acm005560jsd" : { + "type" : "ClassUnit", + "id" : "acm005560jsd", + "name" : "WaitingGuestCleanupTimerTask", + "compilationUnitId" : "acm005550jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002490jsd", "acm005562jsd" ], + "content" : [ "acm005555jsd", "acm005556jsd", "acm005557jsd", "acm005558jsd", "acm005559jsd" ] + }, + "acm005561jsd" : { + "type" : "ControlElement", + "id" : "acm005561jsd", + "name" : "run" + }, + "acm005562jsd" : { + "type" : "ClassUnit", + "id" : "acm005562jsd", + "name" : "CleanupTask", + "compilationUnitId" : "acm005550jsd", + "parentDatatypeId" : "acm005560jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005561jsd" ] + }, + "acm005563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005563jsd", + "name" : "CallbackUrlService", + "parentId" : "acm005568jsd", + "content" : [ "acm005580jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "callback" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005564jsd" : { + "type" : "CodePackage", + "id" : "acm005564jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005565jsd" ] + }, + "acm005565jsd" : { + "type" : "CodePackage", + "id" : "acm005565jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005566jsd" ] + }, + "acm005566jsd" : { + "type" : "CodePackage", + "id" : "acm005566jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005567jsd" ] + }, + "acm005567jsd" : { + "type" : "CodePackage", + "id" : "acm005567jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005568jsd" ] + }, + "acm005568jsd" : { + "type" : "CodePackage", + "id" : "acm005568jsd", + "name" : "callback", + "parentId" : "acm005475jsd", + "content" : [ "acm005563jsd", "acm005581jsd", "acm005591jsd", "acm005599jsd" ] + }, + "acm005569jsd" : { + "type" : "ControlElement", + "id" : "acm005569jsd", + "name" : "stop" + }, + "acm005570jsd" : { + "type" : "ControlElement", + "id" : "acm005570jsd", + "name" : "start" + }, + "acm005571jsd" : { + "type" : "ControlElement", + "id" : "acm005571jsd", + "name" : "run" + }, + "acm005572jsd" : { + "type" : "ControlElement", + "id" : "acm005572jsd", + "name" : "processMessage" + }, + "acm005573jsd" : { + "type" : "ControlElement", + "id" : "acm005573jsd", + "name" : "run" + }, + "acm005574jsd" : { + "type" : "ControlElement", + "id" : "acm005574jsd", + "name" : "schedCallback" + }, + "acm005575jsd" : { + "type" : "ControlElement", + "id" : "acm005575jsd", + "name" : "giveupCallback" + }, + "acm005576jsd" : { + "type" : "ControlElement", + "id" : "acm005576jsd", + "name" : "schedRetryCallback" + }, + "acm005577jsd" : { + "type" : "ControlElement", + "id" : "acm005577jsd", + "name" : "handleMessage" + }, + "acm005578jsd" : { + "type" : "ControlElement", + "id" : "acm005578jsd", + "name" : "followRedirect" + }, + "acm005579jsd" : { + "type" : "ControlElement", + "id" : "acm005579jsd", + "name" : "fetchCallbackUrl" + }, + "acm005580jsd" : { + "type" : "ClassUnit", + "id" : "acm005580jsd", + "name" : "CallbackUrlService", + "compilationUnitId" : "acm005563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005580jsd", "acm005590jsd", "acm005598jsd", "acm005607jsd" ], + "content" : [ "acm005569jsd", "acm005570jsd", "acm005571jsd", "acm005572jsd", "acm005573jsd", "acm005574jsd", "acm005575jsd", "acm005576jsd", "acm005577jsd", "acm005578jsd", "acm005579jsd" ] + }, + "acm005581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005581jsd", + "name" : "DelayCallback", + "parentId" : "acm005568jsd", + "content" : [ "acm005590jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "callback" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005582jsd" : { + "type" : "CodePackage", + "id" : "acm005582jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005583jsd" ] + }, + "acm005583jsd" : { + "type" : "CodePackage", + "id" : "acm005583jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005584jsd" ] + }, + "acm005584jsd" : { + "type" : "CodePackage", + "id" : "acm005584jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005585jsd" ] + }, + "acm005585jsd" : { + "type" : "CodePackage", + "id" : "acm005585jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005586jsd" ] + }, + "acm005586jsd" : { + "type" : "CodePackage", + "id" : "acm005586jsd", + "name" : "callback", + "parentId" : null, + "content" : [ "acm005581jsd" ] + }, + "acm005587jsd" : { + "type" : "ControlElement", + "id" : "acm005587jsd", + "name" : "DelayCallback" + }, + "acm005588jsd" : { + "type" : "ControlElement", + "id" : "acm005588jsd", + "name" : "getDelay" + }, + "acm005589jsd" : { + "type" : "ControlElement", + "id" : "acm005589jsd", + "name" : "compareTo" + }, + "acm005590jsd" : { + "type" : "ClassUnit", + "id" : "acm005590jsd", + "name" : "DelayCallback", + "compilationUnitId" : "acm005581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005590jsd", "acm005598jsd" ], + "content" : [ "acm005587jsd", "acm005588jsd", "acm005589jsd" ] + }, + "acm005591jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005591jsd", + "name" : "ICallbackEvent", + "parentId" : "acm005568jsd", + "content" : [ "acm005598jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "callback" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005592jsd" : { + "type" : "CodePackage", + "id" : "acm005592jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005593jsd" ] + }, + "acm005593jsd" : { + "type" : "CodePackage", + "id" : "acm005593jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005594jsd" ] + }, + "acm005594jsd" : { + "type" : "CodePackage", + "id" : "acm005594jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005595jsd" ] + }, + "acm005595jsd" : { + "type" : "CodePackage", + "id" : "acm005595jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005596jsd" ] + }, + "acm005596jsd" : { + "type" : "CodePackage", + "id" : "acm005596jsd", + "name" : "callback", + "parentId" : null, + "content" : [ "acm005591jsd" ] + }, + "acm005597jsd" : { + "type" : "ControlElement", + "id" : "acm005597jsd", + "name" : "getCallbackUrl" + }, + "acm005598jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005598jsd", + "name" : "ICallbackEvent", + "compilationUnitId" : "acm005591jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005597jsd" ] + }, + "acm005599jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005599jsd", + "name" : "MeetingEndedEvent", + "parentId" : "acm005568jsd", + "content" : [ "acm005607jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "callback" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005600jsd" : { + "type" : "CodePackage", + "id" : "acm005600jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005601jsd" ] + }, + "acm005601jsd" : { + "type" : "CodePackage", + "id" : "acm005601jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005602jsd" ] + }, + "acm005602jsd" : { + "type" : "CodePackage", + "id" : "acm005602jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005603jsd" ] + }, + "acm005603jsd" : { + "type" : "CodePackage", + "id" : "acm005603jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005604jsd" ] + }, + "acm005604jsd" : { + "type" : "CodePackage", + "id" : "acm005604jsd", + "name" : "callback", + "parentId" : null, + "content" : [ "acm005599jsd" ] + }, + "acm005605jsd" : { + "type" : "ControlElement", + "id" : "acm005605jsd", + "name" : "MeetingEndedEvent" + }, + "acm005606jsd" : { + "type" : "ControlElement", + "id" : "acm005606jsd", + "name" : "getCallbackUrl" + }, + "acm005607jsd" : { + "type" : "ClassUnit", + "id" : "acm005607jsd", + "name" : "MeetingEndedEvent", + "compilationUnitId" : "acm005599jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005598jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005605jsd", "acm005606jsd" ] + }, + "acm005608jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005608jsd", + "name" : "RemoteIceCandidate", + "parentId" : "acm005613jsd", + "content" : [ "acm005615jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "turn" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005609jsd" : { + "type" : "CodePackage", + "id" : "acm005609jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005610jsd" ] + }, + "acm005610jsd" : { + "type" : "CodePackage", + "id" : "acm005610jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005611jsd" ] + }, + "acm005611jsd" : { + "type" : "CodePackage", + "id" : "acm005611jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005612jsd" ] + }, + "acm005612jsd" : { + "type" : "CodePackage", + "id" : "acm005612jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005613jsd" ] + }, + "acm005613jsd" : { + "type" : "CodePackage", + "id" : "acm005613jsd", + "name" : "turn", + "parentId" : "acm005475jsd", + "content" : [ "acm005608jsd", "acm005616jsd", "acm005624jsd", "acm005637jsd", "acm005645jsd" ] + }, + "acm005614jsd" : { + "type" : "ControlElement", + "id" : "acm005614jsd", + "name" : "RemoteIceCandidate" + }, + "acm005615jsd" : { + "type" : "ClassUnit", + "id" : "acm005615jsd", + "name" : "RemoteIceCandidate", + "compilationUnitId" : "acm005608jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005614jsd" ] + }, + "acm005616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005616jsd", + "name" : "StunServer", + "parentId" : "acm005613jsd", + "content" : [ "acm005623jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "turn" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005617jsd" : { + "type" : "CodePackage", + "id" : "acm005617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005618jsd" ] + }, + "acm005618jsd" : { + "type" : "CodePackage", + "id" : "acm005618jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005619jsd" ] + }, + "acm005619jsd" : { + "type" : "CodePackage", + "id" : "acm005619jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005620jsd" ] + }, + "acm005620jsd" : { + "type" : "CodePackage", + "id" : "acm005620jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005621jsd" ] + }, + "acm005621jsd" : { + "type" : "CodePackage", + "id" : "acm005621jsd", + "name" : "turn", + "parentId" : null, + "content" : [ "acm005616jsd" ] + }, + "acm005622jsd" : { + "type" : "ControlElement", + "id" : "acm005622jsd", + "name" : "StunServer" + }, + "acm005623jsd" : { + "type" : "ClassUnit", + "id" : "acm005623jsd", + "name" : "StunServer", + "compilationUnitId" : "acm005616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005622jsd" ] + }, + "acm005624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005624jsd", + "name" : "StunTurnService", + "parentId" : "acm005613jsd", + "content" : [ "acm005636jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "turn" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005625jsd" : { + "type" : "CodePackage", + "id" : "acm005625jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005626jsd" ] + }, + "acm005626jsd" : { + "type" : "CodePackage", + "id" : "acm005626jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005627jsd" ] + }, + "acm005627jsd" : { + "type" : "CodePackage", + "id" : "acm005627jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005628jsd" ] + }, + "acm005628jsd" : { + "type" : "CodePackage", + "id" : "acm005628jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005629jsd" ] + }, + "acm005629jsd" : { + "type" : "CodePackage", + "id" : "acm005629jsd", + "name" : "turn", + "parentId" : null, + "content" : [ "acm005624jsd" ] + }, + "acm005630jsd" : { + "type" : "ControlElement", + "id" : "acm005630jsd", + "name" : "getStunServers" + }, + "acm005631jsd" : { + "type" : "ControlElement", + "id" : "acm005631jsd", + "name" : "getStunAndTurnServersFor" + }, + "acm005632jsd" : { + "type" : "ControlElement", + "id" : "acm005632jsd", + "name" : "getRemoteIceCandidates" + }, + "acm005633jsd" : { + "type" : "ControlElement", + "id" : "acm005633jsd", + "name" : "setStunServers" + }, + "acm005634jsd" : { + "type" : "ControlElement", + "id" : "acm005634jsd", + "name" : "setTurnServers" + }, + "acm005635jsd" : { + "type" : "ControlElement", + "id" : "acm005635jsd", + "name" : "setRemoteIceCandidates" + }, + "acm005636jsd" : { + "type" : "ClassUnit", + "id" : "acm005636jsd", + "name" : "StunTurnService", + "compilationUnitId" : "acm005624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005615jsd", "acm005623jsd", "acm005636jsd", "acm005644jsd", "acm005654jsd" ], + "content" : [ "acm005630jsd", "acm005631jsd", "acm005632jsd", "acm005633jsd", "acm005634jsd", "acm005635jsd" ] + }, + "acm005637jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005637jsd", + "name" : "TurnEntry", + "parentId" : "acm005613jsd", + "content" : [ "acm005644jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "turn" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005638jsd" : { + "type" : "CodePackage", + "id" : "acm005638jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005639jsd" ] + }, + "acm005639jsd" : { + "type" : "CodePackage", + "id" : "acm005639jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005640jsd" ] + }, + "acm005640jsd" : { + "type" : "CodePackage", + "id" : "acm005640jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005641jsd" ] + }, + "acm005641jsd" : { + "type" : "CodePackage", + "id" : "acm005641jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005642jsd" ] + }, + "acm005642jsd" : { + "type" : "CodePackage", + "id" : "acm005642jsd", + "name" : "turn", + "parentId" : null, + "content" : [ "acm005637jsd" ] + }, + "acm005643jsd" : { + "type" : "ControlElement", + "id" : "acm005643jsd", + "name" : "TurnEntry" + }, + "acm005644jsd" : { + "type" : "ClassUnit", + "id" : "acm005644jsd", + "name" : "TurnEntry", + "compilationUnitId" : "acm005637jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005643jsd" ] + }, + "acm005645jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005645jsd", + "name" : "TurnServer", + "parentId" : "acm005613jsd", + "content" : [ "acm005654jsd" ], + "pathElements" : [ "bbb-common-web", "src", "main", "java", "org", "bigbluebutton", "web", "services", "turn" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005646jsd" : { + "type" : "CodePackage", + "id" : "acm005646jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005647jsd" ] + }, + "acm005647jsd" : { + "type" : "CodePackage", + "id" : "acm005647jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm005648jsd" ] + }, + "acm005648jsd" : { + "type" : "CodePackage", + "id" : "acm005648jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm005649jsd" ] + }, + "acm005649jsd" : { + "type" : "CodePackage", + "id" : "acm005649jsd", + "name" : "services", + "parentId" : null, + "content" : [ "acm005650jsd" ] + }, + "acm005650jsd" : { + "type" : "CodePackage", + "id" : "acm005650jsd", + "name" : "turn", + "parentId" : null, + "content" : [ "acm005645jsd" ] + }, + "acm005651jsd" : { + "type" : "ControlElement", + "id" : "acm005651jsd", + "name" : "TurnServer" + }, + "acm005652jsd" : { + "type" : "ControlElement", + "id" : "acm005652jsd", + "name" : "generatePasswordFor" + }, + "acm005653jsd" : { + "type" : "ControlElement", + "id" : "acm005653jsd", + "name" : "calculateRFC2104HMAC" + }, + "acm005654jsd" : { + "type" : "ClassUnit", + "id" : "acm005654jsd", + "name" : "TurnServer", + "compilationUnitId" : "acm005645jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005644jsd" ], + "content" : [ "acm005651jsd", "acm005652jsd", "acm005653jsd" ] + }, + "acm005655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005655jsd", + "name" : "IEslEventListener", + "parentId" : "acm005659jsd", + "content" : [ "acm005672jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005656jsd" : { + "type" : "CodePackage", + "id" : "acm005656jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005657jsd" ] + }, + "acm005657jsd" : { + "type" : "CodePackage", + "id" : "acm005657jsd", + "name" : "freeswitch", + "parentId" : "acm001338jsd", + "content" : [ "acm005658jsd" ] + }, + "acm005658jsd" : { + "type" : "CodePackage", + "id" : "acm005658jsd", + "name" : "esl", + "parentId" : "acm005657jsd", + "content" : [ "acm005659jsd" ] + }, + "acm005659jsd" : { + "type" : "CodePackage", + "id" : "acm005659jsd", + "name" : "client", + "parentId" : "acm005658jsd", + "content" : [ "acm005655jsd", "acm005678jsd", "acm005721jsd", "acm005781jsd", "acm005848jsd", "acm005902jsd", "acm005952jsd" ] + }, + "acm005660jsd" : { + "type" : "ControlElement", + "id" : "acm005660jsd", + "name" : "eventReceived" + }, + "acm005661jsd" : { + "type" : "ControlElement", + "id" : "acm005661jsd", + "name" : "conferenceEventJoin" + }, + "acm005662jsd" : { + "type" : "ControlElement", + "id" : "acm005662jsd", + "name" : "conferenceEventLeave" + }, + "acm005663jsd" : { + "type" : "ControlElement", + "id" : "acm005663jsd", + "name" : "conferenceEventMute" + }, + "acm005664jsd" : { + "type" : "ControlElement", + "id" : "acm005664jsd", + "name" : "conferenceEventUnMute" + }, + "acm005665jsd" : { + "type" : "ControlElement", + "id" : "acm005665jsd", + "name" : "conferenceEventAction" + }, + "acm005666jsd" : { + "type" : "ControlElement", + "id" : "acm005666jsd", + "name" : "conferenceEventTransfer" + }, + "acm005667jsd" : { + "type" : "ControlElement", + "id" : "acm005667jsd", + "name" : "conferenceEventThreadRun" + }, + "acm005668jsd" : { + "type" : "ControlElement", + "id" : "acm005668jsd", + "name" : "conferenceEventRecord" + }, + "acm005669jsd" : { + "type" : "ControlElement", + "id" : "acm005669jsd", + "name" : "conferenceEventPlayFile" + }, + "acm005670jsd" : { + "type" : "ControlElement", + "id" : "acm005670jsd", + "name" : "backgroundJobResultReceived" + }, + "acm005671jsd" : { + "type" : "ControlElement", + "id" : "acm005671jsd", + "name" : "exceptionCaught" + }, + "acm005672jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005672jsd", + "name" : "IEslEventListener", + "compilationUnitId" : "acm005655jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005999jsd" ], + "content" : [ "acm005660jsd", "acm005661jsd", "acm005662jsd", "acm005663jsd", "acm005664jsd", "acm005665jsd", "acm005666jsd", "acm005667jsd", "acm005668jsd", "acm005669jsd", "acm005670jsd", "acm005671jsd" ] + }, + "acm005673jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005673jsd", + "name" : "EslEventListener", + "parentId" : "acm005678jsd", + "content" : [ "acm005691jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "example" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005674jsd" : { + "type" : "CodePackage", + "id" : "acm005674jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005675jsd" ] + }, + "acm005675jsd" : { + "type" : "CodePackage", + "id" : "acm005675jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005676jsd" ] + }, + "acm005676jsd" : { + "type" : "CodePackage", + "id" : "acm005676jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005677jsd" ] + }, + "acm005677jsd" : { + "type" : "CodePackage", + "id" : "acm005677jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005678jsd" ] + }, + "acm005678jsd" : { + "type" : "CodePackage", + "id" : "acm005678jsd", + "name" : "example", + "parentId" : "acm005659jsd", + "content" : [ "acm005673jsd", "acm005692jsd", "acm005704jsd" ] + }, + "acm005679jsd" : { + "type" : "ControlElement", + "id" : "acm005679jsd", + "name" : "eventReceived" + }, + "acm005680jsd" : { + "type" : "ControlElement", + "id" : "acm005680jsd", + "name" : "backgroundJobResultReceived" + }, + "acm005681jsd" : { + "type" : "ControlElement", + "id" : "acm005681jsd", + "name" : "conferenceEventJoin" + }, + "acm005682jsd" : { + "type" : "ControlElement", + "id" : "acm005682jsd", + "name" : "conferenceEventLeave" + }, + "acm005683jsd" : { + "type" : "ControlElement", + "id" : "acm005683jsd", + "name" : "conferenceEventMute" + }, + "acm005684jsd" : { + "type" : "ControlElement", + "id" : "acm005684jsd", + "name" : "conferenceEventUnMute" + }, + "acm005685jsd" : { + "type" : "ControlElement", + "id" : "acm005685jsd", + "name" : "conferenceEventAction" + }, + "acm005686jsd" : { + "type" : "ControlElement", + "id" : "acm005686jsd", + "name" : "conferenceEventTransfer" + }, + "acm005687jsd" : { + "type" : "ControlElement", + "id" : "acm005687jsd", + "name" : "conferenceEventRecord" + }, + "acm005688jsd" : { + "type" : "ControlElement", + "id" : "acm005688jsd", + "name" : "conferenceEventThreadRun" + }, + "acm005689jsd" : { + "type" : "ControlElement", + "id" : "acm005689jsd", + "name" : "conferenceEventPlayFile" + }, + "acm005690jsd" : { + "type" : "ControlElement", + "id" : "acm005690jsd", + "name" : "exceptionCaught" + }, + "acm005691jsd" : { + "type" : "ClassUnit", + "id" : "acm005691jsd", + "name" : "EslEventListener", + "compilationUnitId" : "acm005673jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005672jsd" ], + "datatypeReferencesIds" : [ "acm005999jsd" ], + "content" : [ "acm005679jsd", "acm005680jsd", "acm005681jsd", "acm005682jsd", "acm005683jsd", "acm005684jsd", "acm005685jsd", "acm005686jsd", "acm005687jsd", "acm005688jsd", "acm005689jsd", "acm005690jsd" ] + }, + "acm005692jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005692jsd", + "name" : "ExampleClient", + "parentId" : "acm005678jsd", + "content" : [ "acm005703jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "example" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005693jsd" : { + "type" : "CodePackage", + "id" : "acm005693jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005694jsd" ] + }, + "acm005694jsd" : { + "type" : "CodePackage", + "id" : "acm005694jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005695jsd" ] + }, + "acm005695jsd" : { + "type" : "CodePackage", + "id" : "acm005695jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005696jsd" ] + }, + "acm005696jsd" : { + "type" : "CodePackage", + "id" : "acm005696jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005697jsd" ] + }, + "acm005697jsd" : { + "type" : "CodePackage", + "id" : "acm005697jsd", + "name" : "example", + "parentId" : null, + "content" : [ "acm005692jsd" ] + }, + "acm005698jsd" : { + "type" : "ControlElement", + "id" : "acm005698jsd", + "name" : "do_connect" + }, + "acm005699jsd" : { + "type" : "ControlElement", + "id" : "acm005699jsd", + "name" : "close_client" + }, + "acm005700jsd" : { + "type" : "ControlElement", + "id" : "acm005700jsd", + "name" : "startHeartBeatThread" + }, + "acm005701jsd" : { + "type" : "ControlElement", + "id" : "acm005701jsd", + "name" : "stopHeartBeatThread" + }, + "acm005702jsd" : { + "type" : "ControlElement", + "id" : "acm005702jsd", + "name" : "main" + }, + "acm005703jsd" : { + "type" : "ClassUnit", + "id" : "acm005703jsd", + "name" : "ExampleClient", + "compilationUnitId" : "acm005692jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005691jsd", "acm005703jsd", "acm005715jsd", "acm005745jsd", "acm005766jsd" ], + "content" : [ "acm005698jsd", "acm005699jsd", "acm005700jsd", "acm005701jsd", "acm005702jsd" ] + }, + "acm005704jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005704jsd", + "name" : "HeartbeatThread", + "parentId" : "acm005678jsd", + "content" : [ "acm005715jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "example" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005705jsd" : { + "type" : "CodePackage", + "id" : "acm005705jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005706jsd" ] + }, + "acm005706jsd" : { + "type" : "CodePackage", + "id" : "acm005706jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005707jsd" ] + }, + "acm005707jsd" : { + "type" : "CodePackage", + "id" : "acm005707jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005708jsd" ] + }, + "acm005708jsd" : { + "type" : "CodePackage", + "id" : "acm005708jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005709jsd" ] + }, + "acm005709jsd" : { + "type" : "CodePackage", + "id" : "acm005709jsd", + "name" : "example", + "parentId" : null, + "content" : [ "acm005704jsd" ] + }, + "acm005710jsd" : { + "type" : "ControlElement", + "id" : "acm005710jsd", + "name" : "HeartbeatThread" + }, + "acm005711jsd" : { + "type" : "ControlElement", + "id" : "acm005711jsd", + "name" : "HeartbeatThread" + }, + "acm005712jsd" : { + "type" : "ControlElement", + "id" : "acm005712jsd", + "name" : "shutdown" + }, + "acm005713jsd" : { + "type" : "ControlElement", + "id" : "acm005713jsd", + "name" : "gotHeartbeatEvent" + }, + "acm005714jsd" : { + "type" : "ControlElement", + "id" : "acm005714jsd", + "name" : "run" + }, + "acm005715jsd" : { + "type" : "ClassUnit", + "id" : "acm005715jsd", + "name" : "HeartbeatThread", + "compilationUnitId" : "acm005704jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005715jsd", "acm005745jsd", "acm005766jsd" ], + "content" : [ "acm005710jsd", "acm005711jsd", "acm005712jsd", "acm005713jsd", "acm005714jsd" ] + }, + "acm005716jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005716jsd", + "name" : "Client", + "parentId" : "acm005721jsd", + "content" : [ "acm005745jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "inbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005717jsd" : { + "type" : "CodePackage", + "id" : "acm005717jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005718jsd" ] + }, + "acm005718jsd" : { + "type" : "CodePackage", + "id" : "acm005718jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005719jsd" ] + }, + "acm005719jsd" : { + "type" : "CodePackage", + "id" : "acm005719jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005720jsd" ] + }, + "acm005720jsd" : { + "type" : "CodePackage", + "id" : "acm005720jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005721jsd" ] + }, + "acm005721jsd" : { + "type" : "CodePackage", + "id" : "acm005721jsd", + "name" : "inbound", + "parentId" : "acm005659jsd", + "content" : [ "acm005716jsd", "acm005746jsd", "acm005758jsd", "acm005767jsd", "acm006057jsd" ] + }, + "acm005722jsd" : { + "type" : "ControlElement", + "id" : "acm005722jsd", + "name" : "newThread" + }, + "acm005723jsd" : { + "type" : "ControlElement", + "id" : "acm005723jsd", + "name" : "newThread" + }, + "acm005724jsd" : { + "type" : "ControlElement", + "id" : "acm005724jsd", + "name" : "canSend" + }, + "acm005725jsd" : { + "type" : "ControlElement", + "id" : "acm005725jsd", + "name" : "addEventListener" + }, + "acm005726jsd" : { + "type" : "ControlElement", + "id" : "acm005726jsd", + "name" : "connect" + }, + "acm005727jsd" : { + "type" : "ControlElement", + "id" : "acm005727jsd", + "name" : "sendSyncApiCommand" + }, + "acm005728jsd" : { + "type" : "ControlElement", + "id" : "acm005728jsd", + "name" : "sendAsyncApiCommand" + }, + "acm005729jsd" : { + "type" : "ControlElement", + "id" : "acm005729jsd", + "name" : "setEventSubscriptions" + }, + "acm005730jsd" : { + "type" : "ControlElement", + "id" : "acm005730jsd", + "name" : "cancelEventSubscriptions" + }, + "acm005731jsd" : { + "type" : "ControlElement", + "id" : "acm005731jsd", + "name" : "addEventFilter" + }, + "acm005732jsd" : { + "type" : "ControlElement", + "id" : "acm005732jsd", + "name" : "deleteEventFilter" + }, + "acm005733jsd" : { + "type" : "ControlElement", + "id" : "acm005733jsd", + "name" : "sendMessage" + }, + "acm005734jsd" : { + "type" : "ControlElement", + "id" : "acm005734jsd", + "name" : "setLoggingLevel" + }, + "acm005735jsd" : { + "type" : "ControlElement", + "id" : "acm005735jsd", + "name" : "cancelLogging" + }, + "acm005736jsd" : { + "type" : "ControlElement", + "id" : "acm005736jsd", + "name" : "close" + }, + "acm005737jsd" : { + "type" : "ControlElement", + "id" : "acm005737jsd", + "name" : "authResponseReceived" + }, + "acm005738jsd" : { + "type" : "ControlElement", + "id" : "acm005738jsd", + "name" : "eventReceived" + }, + "acm005739jsd" : { + "type" : "ControlElement", + "id" : "acm005739jsd", + "name" : "run" + }, + "acm005740jsd" : { + "type" : "ControlElement", + "id" : "acm005740jsd", + "name" : "run" + }, + "acm005741jsd" : { + "type" : "ControlElement", + "id" : "acm005741jsd", + "name" : "disconnected" + }, + "acm005742jsd" : { + "type" : "ControlElement", + "id" : "acm005742jsd", + "name" : "exceptionCaught" + }, + "acm005743jsd" : { + "type" : "ControlElement", + "id" : "acm005743jsd", + "name" : "run" + }, + "acm005744jsd" : { + "type" : "ControlElement", + "id" : "acm005744jsd", + "name" : "checkConnected" + }, + "acm005745jsd" : { + "type" : "ClassUnit", + "id" : "acm005745jsd", + "name" : "Client", + "compilationUnitId" : "acm005716jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005672jsd", "acm005757jsd", "acm005766jsd", "acm005775jsd", "acm005816jsd", "acm005958jsd", "acm005978jsd", "acm005999jsd", "acm006056jsd" ], + "content" : [ "acm005722jsd", "acm005723jsd", "acm005724jsd", "acm005725jsd", "acm005726jsd", "acm005727jsd", "acm005728jsd", "acm005729jsd", "acm005730jsd", "acm005731jsd", "acm005732jsd", "acm005733jsd", "acm005734jsd", "acm005735jsd", "acm005736jsd", "acm005737jsd", "acm005738jsd", "acm005739jsd", "acm005740jsd", "acm005741jsd", "acm005742jsd", "acm005743jsd", "acm005744jsd" ] + }, + "acm005746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005746jsd", + "name" : "InboundClientHandler", + "parentId" : "acm005721jsd", + "content" : [ "acm005757jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "inbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005747jsd" : { + "type" : "CodePackage", + "id" : "acm005747jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005748jsd" ] + }, + "acm005748jsd" : { + "type" : "CodePackage", + "id" : "acm005748jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005749jsd" ] + }, + "acm005749jsd" : { + "type" : "CodePackage", + "id" : "acm005749jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005750jsd" ] + }, + "acm005750jsd" : { + "type" : "CodePackage", + "id" : "acm005750jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005751jsd" ] + }, + "acm005751jsd" : { + "type" : "CodePackage", + "id" : "acm005751jsd", + "name" : "inbound", + "parentId" : null, + "content" : [ "acm005746jsd" ] + }, + "acm005752jsd" : { + "type" : "ControlElement", + "id" : "acm005752jsd", + "name" : "InboundClientHandler" + }, + "acm005753jsd" : { + "type" : "ControlElement", + "id" : "acm005753jsd", + "name" : "handleEslEvent" + }, + "acm005754jsd" : { + "type" : "ControlElement", + "id" : "acm005754jsd", + "name" : "handleAuthRequest" + }, + "acm005755jsd" : { + "type" : "ControlElement", + "id" : "acm005755jsd", + "name" : "handleDisconnectionNotice" + }, + "acm005756jsd" : { + "type" : "ControlElement", + "id" : "acm005756jsd", + "name" : "exceptionCaught" + }, + "acm005757jsd" : { + "type" : "ClassUnit", + "id" : "acm005757jsd", + "name" : "InboundClientHandler", + "compilationUnitId" : "acm005746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005792jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005816jsd", "acm005958jsd", "acm005999jsd", "acm006056jsd" ], + "content" : [ "acm005752jsd", "acm005753jsd", "acm005754jsd", "acm005755jsd", "acm005756jsd" ] + }, + "acm005758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005758jsd", + "name" : "InboundConnectionFailure", + "parentId" : "acm005721jsd", + "content" : [ "acm005766jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "inbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005759jsd" : { + "type" : "CodePackage", + "id" : "acm005759jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005760jsd" ] + }, + "acm005760jsd" : { + "type" : "CodePackage", + "id" : "acm005760jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005761jsd" ] + }, + "acm005761jsd" : { + "type" : "CodePackage", + "id" : "acm005761jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005762jsd" ] + }, + "acm005762jsd" : { + "type" : "CodePackage", + "id" : "acm005762jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005763jsd" ] + }, + "acm005763jsd" : { + "type" : "CodePackage", + "id" : "acm005763jsd", + "name" : "inbound", + "parentId" : null, + "content" : [ "acm005758jsd" ] + }, + "acm005764jsd" : { + "type" : "ControlElement", + "id" : "acm005764jsd", + "name" : "InboundConnectionFailure" + }, + "acm005765jsd" : { + "type" : "ControlElement", + "id" : "acm005765jsd", + "name" : "InboundConnectionFailure" + }, + "acm005766jsd" : { + "type" : "ClassUnit", + "id" : "acm005766jsd", + "name" : "InboundConnectionFailure", + "compilationUnitId" : "acm005758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005764jsd", "acm005765jsd" ] + }, + "acm005767jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005767jsd", + "name" : "InboundPipelineFactory", + "parentId" : "acm005721jsd", + "content" : [ "acm005775jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "inbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005768jsd" : { + "type" : "CodePackage", + "id" : "acm005768jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005769jsd" ] + }, + "acm005769jsd" : { + "type" : "CodePackage", + "id" : "acm005769jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005770jsd" ] + }, + "acm005770jsd" : { + "type" : "CodePackage", + "id" : "acm005770jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005771jsd" ] + }, + "acm005771jsd" : { + "type" : "CodePackage", + "id" : "acm005771jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005772jsd" ] + }, + "acm005772jsd" : { + "type" : "CodePackage", + "id" : "acm005772jsd", + "name" : "inbound", + "parentId" : null, + "content" : [ "acm005767jsd" ] + }, + "acm005773jsd" : { + "type" : "ControlElement", + "id" : "acm005773jsd", + "name" : "InboundPipelineFactory" + }, + "acm005774jsd" : { + "type" : "ControlElement", + "id" : "acm005774jsd", + "name" : "getPipeline" + }, + "acm005775jsd" : { + "type" : "ClassUnit", + "id" : "acm005775jsd", + "name" : "InboundPipelineFactory", + "compilationUnitId" : "acm005767jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005842jsd", "acm006021jsd" ], + "content" : [ "acm005773jsd", "acm005774jsd" ] + }, + "acm005776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005776jsd", + "name" : "AbstractEslClientHandler", + "parentId" : "acm005781jsd", + "content" : [ "acm005792jsd", "acm005795jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "internal" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005777jsd" : { + "type" : "CodePackage", + "id" : "acm005777jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005778jsd" ] + }, + "acm005778jsd" : { + "type" : "CodePackage", + "id" : "acm005778jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005779jsd" ] + }, + "acm005779jsd" : { + "type" : "CodePackage", + "id" : "acm005779jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005780jsd" ] + }, + "acm005780jsd" : { + "type" : "CodePackage", + "id" : "acm005780jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005781jsd" ] + }, + "acm005781jsd" : { + "type" : "CodePackage", + "id" : "acm005781jsd", + "name" : "internal", + "parentId" : "acm005659jsd", + "content" : [ "acm005776jsd", "acm005796jsd", "acm005806jsd", "acm005823jsd" ] + }, + "acm005782jsd" : { + "type" : "ControlElement", + "id" : "acm005782jsd", + "name" : "messageReceived" + }, + "acm005783jsd" : { + "type" : "ControlElement", + "id" : "acm005783jsd", + "name" : "sendSyncSingleLineCommand" + }, + "acm005784jsd" : { + "type" : "ControlElement", + "id" : "acm005784jsd", + "name" : "sendSyncMultiLineCommand" + }, + "acm005785jsd" : { + "type" : "ControlElement", + "id" : "acm005785jsd", + "name" : "sendAsyncCommand" + }, + "acm005786jsd" : { + "type" : "ControlElement", + "id" : "acm005786jsd", + "name" : "handleEslMessage" + }, + "acm005787jsd" : { + "type" : "ControlElement", + "id" : "acm005787jsd", + "name" : "handleEslEvent" + }, + "acm005788jsd" : { + "type" : "ControlElement", + "id" : "acm005788jsd", + "name" : "handleAuthRequest" + }, + "acm005789jsd" : { + "type" : "ControlElement", + "id" : "acm005789jsd", + "name" : "handleDisconnectionNotice" + }, + "acm005790jsd" : { + "type" : "ControlElement", + "id" : "acm005790jsd", + "name" : "get" + }, + "acm005791jsd" : { + "type" : "ControlElement", + "id" : "acm005791jsd", + "name" : "handle" + }, + "acm005792jsd" : { + "type" : "ClassUnit", + "id" : "acm005792jsd", + "name" : "AbstractEslClientHandler", + "compilationUnitId" : "acm005776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005795jsd", "acm005999jsd", "acm006056jsd" ], + "content" : [ "acm005782jsd", "acm005783jsd", "acm005784jsd", "acm005785jsd", "acm005786jsd", "acm005787jsd", "acm005788jsd", "acm005789jsd", "acm005790jsd", "acm005791jsd" ] + }, + "acm005793jsd" : { + "type" : "ControlElement", + "id" : "acm005793jsd", + "name" : "get" + }, + "acm005794jsd" : { + "type" : "ControlElement", + "id" : "acm005794jsd", + "name" : "handle" + }, + "acm005795jsd" : { + "type" : "ClassUnit", + "id" : "acm005795jsd", + "name" : "SyncCallback", + "compilationUnitId" : "acm005776jsd", + "parentDatatypeId" : "acm005792jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005795jsd", "acm006056jsd" ], + "content" : [ "acm005793jsd", "acm005794jsd" ] + }, + "acm005796jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005796jsd", + "name" : "HeaderParser", + "parentId" : "acm005781jsd", + "content" : [ "acm005805jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "internal" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005797jsd" : { + "type" : "CodePackage", + "id" : "acm005797jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005798jsd" ] + }, + "acm005798jsd" : { + "type" : "CodePackage", + "id" : "acm005798jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005799jsd" ] + }, + "acm005799jsd" : { + "type" : "CodePackage", + "id" : "acm005799jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005800jsd" ] + }, + "acm005800jsd" : { + "type" : "CodePackage", + "id" : "acm005800jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005801jsd" ] + }, + "acm005801jsd" : { + "type" : "CodePackage", + "id" : "acm005801jsd", + "name" : "internal", + "parentId" : null, + "content" : [ "acm005796jsd" ] + }, + "acm005802jsd" : { + "type" : "ControlElement", + "id" : "acm005802jsd", + "name" : "splitHeader" + }, + "acm005803jsd" : { + "type" : "ControlElement", + "id" : "acm005803jsd", + "name" : "findNonWhitespace" + }, + "acm005804jsd" : { + "type" : "ControlElement", + "id" : "acm005804jsd", + "name" : "findEndOfString" + }, + "acm005805jsd" : { + "type" : "ClassUnit", + "id" : "acm005805jsd", + "name" : "HeaderParser", + "compilationUnitId" : "acm005796jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005802jsd", "acm005803jsd", "acm005804jsd" ] + }, + "acm005806jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005806jsd", + "name" : "IEslProtocolListener", + "parentId" : "acm005781jsd", + "content" : [ "acm005816jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "internal" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005807jsd" : { + "type" : "CodePackage", + "id" : "acm005807jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005808jsd" ] + }, + "acm005808jsd" : { + "type" : "CodePackage", + "id" : "acm005808jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005809jsd" ] + }, + "acm005809jsd" : { + "type" : "CodePackage", + "id" : "acm005809jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005810jsd" ] + }, + "acm005810jsd" : { + "type" : "CodePackage", + "id" : "acm005810jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005811jsd" ] + }, + "acm005811jsd" : { + "type" : "CodePackage", + "id" : "acm005811jsd", + "name" : "internal", + "parentId" : null, + "content" : [ "acm005806jsd" ] + }, + "acm005812jsd" : { + "type" : "ControlElement", + "id" : "acm005812jsd", + "name" : "authResponseReceived" + }, + "acm005813jsd" : { + "type" : "ControlElement", + "id" : "acm005813jsd", + "name" : "eventReceived" + }, + "acm005814jsd" : { + "type" : "ControlElement", + "id" : "acm005814jsd", + "name" : "disconnected" + }, + "acm005815jsd" : { + "type" : "ControlElement", + "id" : "acm005815jsd", + "name" : "exceptionCaught" + }, + "acm005816jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005816jsd", + "name" : "IEslProtocolListener", + "compilationUnitId" : "acm005806jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005958jsd", "acm005999jsd" ], + "content" : [ "acm005812jsd", "acm005813jsd", "acm005814jsd", "acm005815jsd" ] + }, + "acm005817jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005817jsd", + "name" : "ChannelEventRunnable", + "parentId" : "acm005823jsd", + "content" : [ "acm005829jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "internal", "debug" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005818jsd" : { + "type" : "CodePackage", + "id" : "acm005818jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005819jsd" ] + }, + "acm005819jsd" : { + "type" : "CodePackage", + "id" : "acm005819jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005820jsd" ] + }, + "acm005820jsd" : { + "type" : "CodePackage", + "id" : "acm005820jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005821jsd" ] + }, + "acm005821jsd" : { + "type" : "CodePackage", + "id" : "acm005821jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005822jsd" ] + }, + "acm005822jsd" : { + "type" : "CodePackage", + "id" : "acm005822jsd", + "name" : "internal", + "parentId" : null, + "content" : [ "acm005823jsd" ] + }, + "acm005823jsd" : { + "type" : "CodePackage", + "id" : "acm005823jsd", + "name" : "debug", + "parentId" : "acm005781jsd", + "content" : [ "acm005817jsd", "acm005830jsd" ] + }, + "acm005824jsd" : { + "type" : "ControlElement", + "id" : "acm005824jsd", + "name" : "ChannelEventRunnable" + }, + "acm005825jsd" : { + "type" : "ControlElement", + "id" : "acm005825jsd", + "name" : "getContext" + }, + "acm005826jsd" : { + "type" : "ControlElement", + "id" : "acm005826jsd", + "name" : "getEvent" + }, + "acm005827jsd" : { + "type" : "ControlElement", + "id" : "acm005827jsd", + "name" : "run" + }, + "acm005828jsd" : { + "type" : "ControlElement", + "id" : "acm005828jsd", + "name" : "unwrap" + }, + "acm005829jsd" : { + "type" : "ClassUnit", + "id" : "acm005829jsd", + "name" : "ChannelEventRunnable", + "compilationUnitId" : "acm005817jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005824jsd", "acm005825jsd", "acm005826jsd", "acm005827jsd", "acm005828jsd" ] + }, + "acm005830jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005830jsd", + "name" : "ExecutionHandler", + "parentId" : "acm005823jsd", + "content" : [ "acm005842jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "internal", "debug" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005831jsd" : { + "type" : "CodePackage", + "id" : "acm005831jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005832jsd" ] + }, + "acm005832jsd" : { + "type" : "CodePackage", + "id" : "acm005832jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005833jsd" ] + }, + "acm005833jsd" : { + "type" : "CodePackage", + "id" : "acm005833jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005834jsd" ] + }, + "acm005834jsd" : { + "type" : "CodePackage", + "id" : "acm005834jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005835jsd" ] + }, + "acm005835jsd" : { + "type" : "CodePackage", + "id" : "acm005835jsd", + "name" : "internal", + "parentId" : null, + "content" : [ "acm005836jsd" ] + }, + "acm005836jsd" : { + "type" : "CodePackage", + "id" : "acm005836jsd", + "name" : "debug", + "parentId" : null, + "content" : [ "acm005830jsd" ] + }, + "acm005837jsd" : { + "type" : "ControlElement", + "id" : "acm005837jsd", + "name" : "ExecutionHandler" + }, + "acm005838jsd" : { + "type" : "ControlElement", + "id" : "acm005838jsd", + "name" : "getExecutor" + }, + "acm005839jsd" : { + "type" : "ControlElement", + "id" : "acm005839jsd", + "name" : "releaseExternalResources" + }, + "acm005840jsd" : { + "type" : "ControlElement", + "id" : "acm005840jsd", + "name" : "handleUpstream" + }, + "acm005841jsd" : { + "type" : "ControlElement", + "id" : "acm005841jsd", + "name" : "handleDownstream" + }, + "acm005842jsd" : { + "type" : "ClassUnit", + "id" : "acm005842jsd", + "name" : "ExecutionHandler", + "compilationUnitId" : "acm005830jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005829jsd" ], + "content" : [ "acm005837jsd", "acm005838jsd", "acm005839jsd", "acm005840jsd", "acm005841jsd" ] + }, + "acm005843jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005843jsd", + "name" : "DefaultManagerConnection", + "parentId" : "acm005848jsd", + "content" : [ "acm005864jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "manager" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005844jsd" : { + "type" : "CodePackage", + "id" : "acm005844jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005845jsd" ] + }, + "acm005845jsd" : { + "type" : "CodePackage", + "id" : "acm005845jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005846jsd" ] + }, + "acm005846jsd" : { + "type" : "CodePackage", + "id" : "acm005846jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005847jsd" ] + }, + "acm005847jsd" : { + "type" : "CodePackage", + "id" : "acm005847jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005848jsd" ] + }, + "acm005848jsd" : { + "type" : "CodePackage", + "id" : "acm005848jsd", + "name" : "manager", + "parentId" : "acm005659jsd", + "content" : [ "acm005843jsd", "acm005865jsd", "acm005884jsd" ] + }, + "acm005849jsd" : { + "type" : "ControlElement", + "id" : "acm005849jsd", + "name" : "DefaultManagerConnection" + }, + "acm005850jsd" : { + "type" : "ControlElement", + "id" : "acm005850jsd", + "name" : "DefaultManagerConnection" + }, + "acm005851jsd" : { + "type" : "ControlElement", + "id" : "acm005851jsd", + "name" : "DefaultManagerConnection" + }, + "acm005852jsd" : { + "type" : "ControlElement", + "id" : "acm005852jsd", + "name" : "DefaultManagerConnection" + }, + "acm005853jsd" : { + "type" : "ControlElement", + "id" : "acm005853jsd", + "name" : "setHostname" + }, + "acm005854jsd" : { + "type" : "ControlElement", + "id" : "acm005854jsd", + "name" : "setPort" + }, + "acm005855jsd" : { + "type" : "ControlElement", + "id" : "acm005855jsd", + "name" : "setTimeout" + }, + "acm005856jsd" : { + "type" : "ControlElement", + "id" : "acm005856jsd", + "name" : "setPassword" + }, + "acm005857jsd" : { + "type" : "ControlElement", + "id" : "acm005857jsd", + "name" : "getHostname" + }, + "acm005858jsd" : { + "type" : "ControlElement", + "id" : "acm005858jsd", + "name" : "getPort" + }, + "acm005859jsd" : { + "type" : "ControlElement", + "id" : "acm005859jsd", + "name" : "getPassword" + }, + "acm005860jsd" : { + "type" : "ControlElement", + "id" : "acm005860jsd", + "name" : "getESLClient" + }, + "acm005861jsd" : { + "type" : "ControlElement", + "id" : "acm005861jsd", + "name" : "toString" + }, + "acm005862jsd" : { + "type" : "ControlElement", + "id" : "acm005862jsd", + "name" : "connect" + }, + "acm005863jsd" : { + "type" : "ControlElement", + "id" : "acm005863jsd", + "name" : "disconnect" + }, + "acm005864jsd" : { + "type" : "ClassUnit", + "id" : "acm005864jsd", + "name" : "DefaultManagerConnection", + "compilationUnitId" : "acm005843jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005877jsd" ], + "datatypeReferencesIds" : [ "acm005745jsd", "acm005766jsd", "acm005896jsd" ], + "content" : [ "acm005849jsd", "acm005850jsd", "acm005851jsd", "acm005852jsd", "acm005853jsd", "acm005854jsd", "acm005855jsd", "acm005856jsd", "acm005857jsd", "acm005858jsd", "acm005859jsd", "acm005860jsd", "acm005861jsd", "acm005862jsd", "acm005863jsd" ] + }, + "acm005865jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005865jsd", + "name" : "ManagerConnection", + "parentId" : "acm005848jsd", + "content" : [ "acm005877jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "manager" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005866jsd" : { + "type" : "CodePackage", + "id" : "acm005866jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005867jsd" ] + }, + "acm005867jsd" : { + "type" : "CodePackage", + "id" : "acm005867jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005868jsd" ] + }, + "acm005868jsd" : { + "type" : "CodePackage", + "id" : "acm005868jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005869jsd" ] + }, + "acm005869jsd" : { + "type" : "CodePackage", + "id" : "acm005869jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005870jsd" ] + }, + "acm005870jsd" : { + "type" : "CodePackage", + "id" : "acm005870jsd", + "name" : "manager", + "parentId" : null, + "content" : [ "acm005865jsd" ] + }, + "acm005871jsd" : { + "type" : "ControlElement", + "id" : "acm005871jsd", + "name" : "getHostname" + }, + "acm005872jsd" : { + "type" : "ControlElement", + "id" : "acm005872jsd", + "name" : "getPort" + }, + "acm005873jsd" : { + "type" : "ControlElement", + "id" : "acm005873jsd", + "name" : "getPassword" + }, + "acm005874jsd" : { + "type" : "ControlElement", + "id" : "acm005874jsd", + "name" : "getESLClient" + }, + "acm005875jsd" : { + "type" : "ControlElement", + "id" : "acm005875jsd", + "name" : "connect" + }, + "acm005876jsd" : { + "type" : "ControlElement", + "id" : "acm005876jsd", + "name" : "disconnect" + }, + "acm005877jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005877jsd", + "name" : "ManagerConnection", + "compilationUnitId" : "acm005865jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005745jsd", "acm005766jsd" ], + "content" : [ "acm005871jsd", "acm005872jsd", "acm005873jsd", "acm005874jsd", "acm005875jsd", "acm005876jsd" ] + }, + "acm005878jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005878jsd", + "name" : "ManagerConnectionImpl", + "parentId" : "acm005884jsd", + "content" : [ "acm005896jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "manager", "internal" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005879jsd" : { + "type" : "CodePackage", + "id" : "acm005879jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005880jsd" ] + }, + "acm005880jsd" : { + "type" : "CodePackage", + "id" : "acm005880jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005881jsd" ] + }, + "acm005881jsd" : { + "type" : "CodePackage", + "id" : "acm005881jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005882jsd" ] + }, + "acm005882jsd" : { + "type" : "CodePackage", + "id" : "acm005882jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005883jsd" ] + }, + "acm005883jsd" : { + "type" : "CodePackage", + "id" : "acm005883jsd", + "name" : "manager", + "parentId" : null, + "content" : [ "acm005884jsd" ] + }, + "acm005884jsd" : { + "type" : "CodePackage", + "id" : "acm005884jsd", + "name" : "internal", + "parentId" : "acm005848jsd", + "content" : [ "acm005878jsd" ] + }, + "acm005885jsd" : { + "type" : "ControlElement", + "id" : "acm005885jsd", + "name" : "ManagerConnectionImpl" + }, + "acm005886jsd" : { + "type" : "ControlElement", + "id" : "acm005886jsd", + "name" : "setHostname" + }, + "acm005887jsd" : { + "type" : "ControlElement", + "id" : "acm005887jsd", + "name" : "setPort" + }, + "acm005888jsd" : { + "type" : "ControlElement", + "id" : "acm005888jsd", + "name" : "setPassword" + }, + "acm005889jsd" : { + "type" : "ControlElement", + "id" : "acm005889jsd", + "name" : "setTimeout" + }, + "acm005890jsd" : { + "type" : "ControlElement", + "id" : "acm005890jsd", + "name" : "getHostname" + }, + "acm005891jsd" : { + "type" : "ControlElement", + "id" : "acm005891jsd", + "name" : "getPort" + }, + "acm005892jsd" : { + "type" : "ControlElement", + "id" : "acm005892jsd", + "name" : "getPassword" + }, + "acm005893jsd" : { + "type" : "ControlElement", + "id" : "acm005893jsd", + "name" : "getESLClient" + }, + "acm005894jsd" : { + "type" : "ControlElement", + "id" : "acm005894jsd", + "name" : "connect" + }, + "acm005895jsd" : { + "type" : "ControlElement", + "id" : "acm005895jsd", + "name" : "disconnect" + }, + "acm005896jsd" : { + "type" : "ClassUnit", + "id" : "acm005896jsd", + "name" : "ManagerConnectionImpl", + "compilationUnitId" : "acm005878jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005877jsd" ], + "datatypeReferencesIds" : [ "acm005745jsd", "acm005766jsd", "acm005896jsd" ], + "content" : [ "acm005885jsd", "acm005886jsd", "acm005887jsd", "acm005888jsd", "acm005889jsd", "acm005890jsd", "acm005891jsd", "acm005892jsd", "acm005893jsd", "acm005894jsd", "acm005895jsd" ] + }, + "acm005897jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005897jsd", + "name" : "AbstractOutboundClientHandler", + "parentId" : "acm005902jsd", + "content" : [ "acm005907jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "outbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005898jsd" : { + "type" : "CodePackage", + "id" : "acm005898jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005899jsd" ] + }, + "acm005899jsd" : { + "type" : "CodePackage", + "id" : "acm005899jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005900jsd" ] + }, + "acm005900jsd" : { + "type" : "CodePackage", + "id" : "acm005900jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005901jsd" ] + }, + "acm005901jsd" : { + "type" : "CodePackage", + "id" : "acm005901jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005902jsd" ] + }, + "acm005902jsd" : { + "type" : "CodePackage", + "id" : "acm005902jsd", + "name" : "outbound", + "parentId" : "acm005659jsd", + "content" : [ "acm005897jsd", "acm005908jsd", "acm005917jsd", "acm006078jsd", "acm005933jsd" ] + }, + "acm005903jsd" : { + "type" : "ControlElement", + "id" : "acm005903jsd", + "name" : "channelConnected" + }, + "acm005904jsd" : { + "type" : "ControlElement", + "id" : "acm005904jsd", + "name" : "handleConnectResponse" + }, + "acm005905jsd" : { + "type" : "ControlElement", + "id" : "acm005905jsd", + "name" : "handleAuthRequest" + }, + "acm005906jsd" : { + "type" : "ControlElement", + "id" : "acm005906jsd", + "name" : "handleDisconnectionNotice" + }, + "acm005907jsd" : { + "type" : "ClassUnit", + "id" : "acm005907jsd", + "name" : "AbstractOutboundClientHandler", + "compilationUnitId" : "acm005897jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005792jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005999jsd", "acm006056jsd" ], + "content" : [ "acm005903jsd", "acm005904jsd", "acm005905jsd", "acm005906jsd" ] + }, + "acm005908jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005908jsd", + "name" : "AbstractOutboundPipelineFactory", + "parentId" : "acm005902jsd", + "content" : [ "acm005916jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "outbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005909jsd" : { + "type" : "CodePackage", + "id" : "acm005909jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005910jsd" ] + }, + "acm005910jsd" : { + "type" : "CodePackage", + "id" : "acm005910jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005911jsd" ] + }, + "acm005911jsd" : { + "type" : "CodePackage", + "id" : "acm005911jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005912jsd" ] + }, + "acm005912jsd" : { + "type" : "CodePackage", + "id" : "acm005912jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005913jsd" ] + }, + "acm005913jsd" : { + "type" : "CodePackage", + "id" : "acm005913jsd", + "name" : "outbound", + "parentId" : null, + "content" : [ "acm005908jsd" ] + }, + "acm005914jsd" : { + "type" : "ControlElement", + "id" : "acm005914jsd", + "name" : "getPipeline" + }, + "acm005915jsd" : { + "type" : "ControlElement", + "id" : "acm005915jsd", + "name" : "makeHandler" + }, + "acm005916jsd" : { + "type" : "ClassUnit", + "id" : "acm005916jsd", + "name" : "AbstractOutboundPipelineFactory", + "compilationUnitId" : "acm005908jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005842jsd", "acm005907jsd", "acm006021jsd" ], + "content" : [ "acm005914jsd", "acm005915jsd" ] + }, + "acm005917jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005917jsd", + "name" : "SocketClient", + "parentId" : "acm005902jsd", + "content" : [ "acm005926jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "outbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005918jsd" : { + "type" : "CodePackage", + "id" : "acm005918jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005919jsd" ] + }, + "acm005919jsd" : { + "type" : "CodePackage", + "id" : "acm005919jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005920jsd" ] + }, + "acm005920jsd" : { + "type" : "CodePackage", + "id" : "acm005920jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005921jsd" ] + }, + "acm005921jsd" : { + "type" : "CodePackage", + "id" : "acm005921jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005922jsd" ] + }, + "acm005922jsd" : { + "type" : "CodePackage", + "id" : "acm005922jsd", + "name" : "outbound", + "parentId" : null, + "content" : [ "acm005917jsd" ] + }, + "acm005923jsd" : { + "type" : "ControlElement", + "id" : "acm005923jsd", + "name" : "SocketClient" + }, + "acm005924jsd" : { + "type" : "ControlElement", + "id" : "acm005924jsd", + "name" : "start" + }, + "acm005925jsd" : { + "type" : "ControlElement", + "id" : "acm005925jsd", + "name" : "stop" + }, + "acm005926jsd" : { + "type" : "ClassUnit", + "id" : "acm005926jsd", + "name" : "SocketClient", + "compilationUnitId" : "acm005917jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005916jsd" ], + "content" : [ "acm005923jsd", "acm005924jsd", "acm005925jsd" ] + }, + "acm005927jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005927jsd", + "name" : "SimpleHangupOutboundHandler", + "parentId" : "acm005933jsd", + "content" : [ "acm005937jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "outbound", "example" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005928jsd" : { + "type" : "CodePackage", + "id" : "acm005928jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005929jsd" ] + }, + "acm005929jsd" : { + "type" : "CodePackage", + "id" : "acm005929jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005930jsd" ] + }, + "acm005930jsd" : { + "type" : "CodePackage", + "id" : "acm005930jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005931jsd" ] + }, + "acm005931jsd" : { + "type" : "CodePackage", + "id" : "acm005931jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005932jsd" ] + }, + "acm005932jsd" : { + "type" : "CodePackage", + "id" : "acm005932jsd", + "name" : "outbound", + "parentId" : null, + "content" : [ "acm005933jsd" ] + }, + "acm005933jsd" : { + "type" : "CodePackage", + "id" : "acm005933jsd", + "name" : "example", + "parentId" : "acm005902jsd", + "content" : [ "acm005927jsd", "acm005938jsd" ] + }, + "acm005934jsd" : { + "type" : "ControlElement", + "id" : "acm005934jsd", + "name" : "handleConnectResponse" + }, + "acm005935jsd" : { + "type" : "ControlElement", + "id" : "acm005935jsd", + "name" : "handleEslEvent" + }, + "acm005936jsd" : { + "type" : "ControlElement", + "id" : "acm005936jsd", + "name" : "hangupCall" + }, + "acm005937jsd" : { + "type" : "ClassUnit", + "id" : "acm005937jsd", + "name" : "SimpleHangupOutboundHandler", + "compilationUnitId" : "acm005927jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005907jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005978jsd", "acm005999jsd", "acm006056jsd" ], + "content" : [ "acm005934jsd", "acm005935jsd", "acm005936jsd" ] + }, + "acm005938jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005938jsd", + "name" : "SimpleHangupPipelineFactory", + "parentId" : "acm005933jsd", + "content" : [ "acm005946jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "outbound", "example" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005939jsd" : { + "type" : "CodePackage", + "id" : "acm005939jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005940jsd" ] + }, + "acm005940jsd" : { + "type" : "CodePackage", + "id" : "acm005940jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005941jsd" ] + }, + "acm005941jsd" : { + "type" : "CodePackage", + "id" : "acm005941jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005942jsd" ] + }, + "acm005942jsd" : { + "type" : "CodePackage", + "id" : "acm005942jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005943jsd" ] + }, + "acm005943jsd" : { + "type" : "CodePackage", + "id" : "acm005943jsd", + "name" : "outbound", + "parentId" : null, + "content" : [ "acm005944jsd" ] + }, + "acm005944jsd" : { + "type" : "CodePackage", + "id" : "acm005944jsd", + "name" : "example", + "parentId" : null, + "content" : [ "acm005938jsd" ] + }, + "acm005945jsd" : { + "type" : "ControlElement", + "id" : "acm005945jsd", + "name" : "makeHandler" + }, + "acm005946jsd" : { + "type" : "ClassUnit", + "id" : "acm005946jsd", + "name" : "SimpleHangupPipelineFactory", + "compilationUnitId" : "acm005938jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005916jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005907jsd", "acm005937jsd" ], + "content" : [ "acm005945jsd" ] + }, + "acm005947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005947jsd", + "name" : "CommandResponse", + "parentId" : "acm005952jsd", + "content" : [ "acm005958jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005948jsd" : { + "type" : "CodePackage", + "id" : "acm005948jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005949jsd" ] + }, + "acm005949jsd" : { + "type" : "CodePackage", + "id" : "acm005949jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005950jsd" ] + }, + "acm005950jsd" : { + "type" : "CodePackage", + "id" : "acm005950jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005951jsd" ] + }, + "acm005951jsd" : { + "type" : "CodePackage", + "id" : "acm005951jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005952jsd" ] + }, + "acm005952jsd" : { + "type" : "CodePackage", + "id" : "acm005952jsd", + "name" : "transport", + "parentId" : "acm005659jsd", + "content" : [ "acm005947jsd", "acm005959jsd", "acm005985jsd", "acm006015jsd" ] + }, + "acm005953jsd" : { + "type" : "ControlElement", + "id" : "acm005953jsd", + "name" : "CommandResponse" + }, + "acm005954jsd" : { + "type" : "ControlElement", + "id" : "acm005954jsd", + "name" : "getCommand" + }, + "acm005955jsd" : { + "type" : "ControlElement", + "id" : "acm005955jsd", + "name" : "isOk" + }, + "acm005956jsd" : { + "type" : "ControlElement", + "id" : "acm005956jsd", + "name" : "getReplyText" + }, + "acm005957jsd" : { + "type" : "ControlElement", + "id" : "acm005957jsd", + "name" : "getResponse" + }, + "acm005958jsd" : { + "type" : "ClassUnit", + "id" : "acm005958jsd", + "name" : "CommandResponse", + "compilationUnitId" : "acm005947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006056jsd" ], + "content" : [ "acm005953jsd", "acm005954jsd", "acm005955jsd", "acm005956jsd", "acm005957jsd" ] + }, + "acm005959jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005959jsd", + "name" : "SendMsg", + "parentId" : "acm005952jsd", + "content" : [ "acm005978jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005960jsd" : { + "type" : "CodePackage", + "id" : "acm005960jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005961jsd" ] + }, + "acm005961jsd" : { + "type" : "CodePackage", + "id" : "acm005961jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005962jsd" ] + }, + "acm005962jsd" : { + "type" : "CodePackage", + "id" : "acm005962jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005963jsd" ] + }, + "acm005963jsd" : { + "type" : "CodePackage", + "id" : "acm005963jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005964jsd" ] + }, + "acm005964jsd" : { + "type" : "CodePackage", + "id" : "acm005964jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm005959jsd" ] + }, + "acm005965jsd" : { + "type" : "ControlElement", + "id" : "acm005965jsd", + "name" : "SendMsg" + }, + "acm005966jsd" : { + "type" : "ControlElement", + "id" : "acm005966jsd", + "name" : "SendMsg" + }, + "acm005967jsd" : { + "type" : "ControlElement", + "id" : "acm005967jsd", + "name" : "addCallCommand" + }, + "acm005968jsd" : { + "type" : "ControlElement", + "id" : "acm005968jsd", + "name" : "addExecuteAppName" + }, + "acm005969jsd" : { + "type" : "ControlElement", + "id" : "acm005969jsd", + "name" : "addExecuteAppArg" + }, + "acm005970jsd" : { + "type" : "ControlElement", + "id" : "acm005970jsd", + "name" : "addLoops" + }, + "acm005971jsd" : { + "type" : "ControlElement", + "id" : "acm005971jsd", + "name" : "addHangupCause" + }, + "acm005972jsd" : { + "type" : "ControlElement", + "id" : "acm005972jsd", + "name" : "addNomediaUuid" + }, + "acm005973jsd" : { + "type" : "ControlElement", + "id" : "acm005973jsd", + "name" : "addEventLock" + }, + "acm005974jsd" : { + "type" : "ControlElement", + "id" : "acm005974jsd", + "name" : "addGenericLine" + }, + "acm005975jsd" : { + "type" : "ControlElement", + "id" : "acm005975jsd", + "name" : "getMsgLines" + }, + "acm005976jsd" : { + "type" : "ControlElement", + "id" : "acm005976jsd", + "name" : "hasUuid" + }, + "acm005977jsd" : { + "type" : "ControlElement", + "id" : "acm005977jsd", + "name" : "toString" + }, + "acm005978jsd" : { + "type" : "ClassUnit", + "id" : "acm005978jsd", + "name" : "SendMsg", + "compilationUnitId" : "acm005959jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005965jsd", "acm005966jsd", "acm005967jsd", "acm005968jsd", "acm005969jsd", "acm005970jsd", "acm005971jsd", "acm005972jsd", "acm005973jsd", "acm005974jsd", "acm005975jsd", "acm005976jsd", "acm005977jsd" ] + }, + "acm005979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005979jsd", + "name" : "EslEvent", + "parentId" : "acm005985jsd", + "content" : [ "acm005999jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005980jsd" : { + "type" : "CodePackage", + "id" : "acm005980jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005981jsd" ] + }, + "acm005981jsd" : { + "type" : "CodePackage", + "id" : "acm005981jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm005982jsd" ] + }, + "acm005982jsd" : { + "type" : "CodePackage", + "id" : "acm005982jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm005983jsd" ] + }, + "acm005983jsd" : { + "type" : "CodePackage", + "id" : "acm005983jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm005984jsd" ] + }, + "acm005984jsd" : { + "type" : "CodePackage", + "id" : "acm005984jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm005985jsd" ] + }, + "acm005985jsd" : { + "type" : "CodePackage", + "id" : "acm005985jsd", + "name" : "event", + "parentId" : "acm005952jsd", + "content" : [ "acm005979jsd", "acm006000jsd" ] + }, + "acm005986jsd" : { + "type" : "ControlElement", + "id" : "acm005986jsd", + "name" : "EslEvent" + }, + "acm005987jsd" : { + "type" : "ControlElement", + "id" : "acm005987jsd", + "name" : "EslEvent" + }, + "acm005988jsd" : { + "type" : "ControlElement", + "id" : "acm005988jsd", + "name" : "getMessageHeaders" + }, + "acm005989jsd" : { + "type" : "ControlElement", + "id" : "acm005989jsd", + "name" : "getEventHeaders" + }, + "acm005990jsd" : { + "type" : "ControlElement", + "id" : "acm005990jsd", + "name" : "getEventBodyLines" + }, + "acm005991jsd" : { + "type" : "ControlElement", + "id" : "acm005991jsd", + "name" : "getEventName" + }, + "acm005992jsd" : { + "type" : "ControlElement", + "id" : "acm005992jsd", + "name" : "getEventSubclass" + }, + "acm005993jsd" : { + "type" : "ControlElement", + "id" : "acm005993jsd", + "name" : "getEventDateTimestamp" + }, + "acm005994jsd" : { + "type" : "ControlElement", + "id" : "acm005994jsd", + "name" : "getEventDateLocal" + }, + "acm005995jsd" : { + "type" : "ControlElement", + "id" : "acm005995jsd", + "name" : "getEventDateGmt" + }, + "acm005996jsd" : { + "type" : "ControlElement", + "id" : "acm005996jsd", + "name" : "hasEventBody" + }, + "acm005997jsd" : { + "type" : "ControlElement", + "id" : "acm005997jsd", + "name" : "parsePlainBody" + }, + "acm005998jsd" : { + "type" : "ControlElement", + "id" : "acm005998jsd", + "name" : "toString" + }, + "acm005999jsd" : { + "type" : "ClassUnit", + "id" : "acm005999jsd", + "name" : "EslEvent", + "compilationUnitId" : "acm005979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006038jsd", "acm006056jsd" ], + "content" : [ "acm005986jsd", "acm005987jsd", "acm005988jsd", "acm005989jsd", "acm005990jsd", "acm005991jsd", "acm005992jsd", "acm005993jsd", "acm005994jsd", "acm005995jsd", "acm005996jsd", "acm005997jsd", "acm005998jsd" ] + }, + "acm006000jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006000jsd", + "name" : "EslEventHeaderNames", + "parentId" : "acm005985jsd", + "content" : [ "acm006008jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006001jsd" : { + "type" : "CodePackage", + "id" : "acm006001jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006002jsd" ] + }, + "acm006002jsd" : { + "type" : "CodePackage", + "id" : "acm006002jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006003jsd" ] + }, + "acm006003jsd" : { + "type" : "CodePackage", + "id" : "acm006003jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006004jsd" ] + }, + "acm006004jsd" : { + "type" : "CodePackage", + "id" : "acm006004jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006005jsd" ] + }, + "acm006005jsd" : { + "type" : "CodePackage", + "id" : "acm006005jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm006006jsd" ] + }, + "acm006006jsd" : { + "type" : "CodePackage", + "id" : "acm006006jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm006000jsd" ] + }, + "acm006007jsd" : { + "type" : "ControlElement", + "id" : "acm006007jsd", + "name" : "EslEventHeaderNames" + }, + "acm006008jsd" : { + "type" : "ClassUnit", + "id" : "acm006008jsd", + "name" : "EslEventHeaderNames", + "compilationUnitId" : "acm006000jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006007jsd" ] + }, + "acm006009jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006009jsd", + "name" : "EslFrameDecoder", + "parentId" : "acm006015jsd", + "content" : [ "acm006021jsd", "acm006022jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport", "message" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006010jsd" : { + "type" : "CodePackage", + "id" : "acm006010jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006011jsd" ] + }, + "acm006011jsd" : { + "type" : "CodePackage", + "id" : "acm006011jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006012jsd" ] + }, + "acm006012jsd" : { + "type" : "CodePackage", + "id" : "acm006012jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006013jsd" ] + }, + "acm006013jsd" : { + "type" : "CodePackage", + "id" : "acm006013jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006014jsd" ] + }, + "acm006014jsd" : { + "type" : "CodePackage", + "id" : "acm006014jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm006015jsd" ] + }, + "acm006015jsd" : { + "type" : "CodePackage", + "id" : "acm006015jsd", + "name" : "message", + "parentId" : "acm005952jsd", + "content" : [ "acm006009jsd", "acm006023jsd", "acm006039jsd", "acm006086jsd" ] + }, + "acm006016jsd" : { + "type" : "ControlElement", + "id" : "acm006016jsd", + "name" : "EslFrameDecoder" + }, + "acm006017jsd" : { + "type" : "ControlElement", + "id" : "acm006017jsd", + "name" : "EslFrameDecoder" + }, + "acm006018jsd" : { + "type" : "ControlElement", + "id" : "acm006018jsd", + "name" : "decode" + }, + "acm006019jsd" : { + "type" : "ControlElement", + "id" : "acm006019jsd", + "name" : "readToLineFeedOrFail" + }, + "acm006020jsd" : { + "type" : "ControlElement", + "id" : "acm006020jsd", + "name" : "readLine" + }, + "acm006021jsd" : { + "type" : "ClassUnit", + "id" : "acm006021jsd", + "name" : "EslFrameDecoder", + "compilationUnitId" : "acm006009jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006022jsd", "acm006038jsd", "acm006056jsd" ], + "content" : [ "acm006016jsd", "acm006017jsd", "acm006018jsd", "acm006019jsd", "acm006020jsd" ] + }, + "acm006022jsd" : { + "type" : "ClassUnit", + "id" : "acm006022jsd", + "name" : "State", + "compilationUnitId" : "acm006009jsd", + "parentDatatypeId" : "acm006021jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006023jsd", + "name" : "EslHeaders", + "parentId" : "acm006015jsd", + "content" : [ "acm006033jsd", "acm006034jsd", "acm006038jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport", "message" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006024jsd" : { + "type" : "CodePackage", + "id" : "acm006024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006025jsd" ] + }, + "acm006025jsd" : { + "type" : "CodePackage", + "id" : "acm006025jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006026jsd" ] + }, + "acm006026jsd" : { + "type" : "CodePackage", + "id" : "acm006026jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006027jsd" ] + }, + "acm006027jsd" : { + "type" : "CodePackage", + "id" : "acm006027jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006028jsd" ] + }, + "acm006028jsd" : { + "type" : "CodePackage", + "id" : "acm006028jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm006029jsd" ] + }, + "acm006029jsd" : { + "type" : "CodePackage", + "id" : "acm006029jsd", + "name" : "message", + "parentId" : null, + "content" : [ "acm006023jsd" ] + }, + "acm006030jsd" : { + "type" : "ControlElement", + "id" : "acm006030jsd", + "name" : "Name" + }, + "acm006031jsd" : { + "type" : "ControlElement", + "id" : "acm006031jsd", + "name" : "literal" + }, + "acm006032jsd" : { + "type" : "ControlElement", + "id" : "acm006032jsd", + "name" : "fromLiteral" + }, + "acm006033jsd" : { + "type" : "ClassUnit", + "id" : "acm006033jsd", + "name" : "EslHeaders", + "compilationUnitId" : "acm006023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006038jsd" ], + "content" : [ "acm006030jsd", "acm006031jsd", "acm006032jsd" ] + }, + "acm006034jsd" : { + "type" : "ClassUnit", + "id" : "acm006034jsd", + "name" : "Value", + "compilationUnitId" : "acm006023jsd", + "parentDatatypeId" : "acm006033jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006035jsd" : { + "type" : "ControlElement", + "id" : "acm006035jsd", + "name" : "Name" + }, + "acm006036jsd" : { + "type" : "ControlElement", + "id" : "acm006036jsd", + "name" : "literal" + }, + "acm006037jsd" : { + "type" : "ControlElement", + "id" : "acm006037jsd", + "name" : "fromLiteral" + }, + "acm006038jsd" : { + "type" : "ClassUnit", + "id" : "acm006038jsd", + "name" : "Name", + "compilationUnitId" : "acm006023jsd", + "parentDatatypeId" : "acm006033jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006038jsd" ], + "content" : [ "acm006035jsd", "acm006036jsd", "acm006037jsd" ] + }, + "acm006039jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006039jsd", + "name" : "EslMessage", + "parentId" : "acm006015jsd", + "content" : [ "acm006056jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "main", "java", "org", "freeswitch", "esl", "client", "transport", "message" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006040jsd" : { + "type" : "CodePackage", + "id" : "acm006040jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006041jsd" ] + }, + "acm006041jsd" : { + "type" : "CodePackage", + "id" : "acm006041jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006042jsd" ] + }, + "acm006042jsd" : { + "type" : "CodePackage", + "id" : "acm006042jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006043jsd" ] + }, + "acm006043jsd" : { + "type" : "CodePackage", + "id" : "acm006043jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006044jsd" ] + }, + "acm006044jsd" : { + "type" : "CodePackage", + "id" : "acm006044jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm006045jsd" ] + }, + "acm006045jsd" : { + "type" : "CodePackage", + "id" : "acm006045jsd", + "name" : "message", + "parentId" : null, + "content" : [ "acm006039jsd" ] + }, + "acm006046jsd" : { + "type" : "ControlElement", + "id" : "acm006046jsd", + "name" : "getHeaders" + }, + "acm006047jsd" : { + "type" : "ControlElement", + "id" : "acm006047jsd", + "name" : "hasHeader" + }, + "acm006048jsd" : { + "type" : "ControlElement", + "id" : "acm006048jsd", + "name" : "getHeaderValue" + }, + "acm006049jsd" : { + "type" : "ControlElement", + "id" : "acm006049jsd", + "name" : "hasContentLength" + }, + "acm006050jsd" : { + "type" : "ControlElement", + "id" : "acm006050jsd", + "name" : "getContentLength" + }, + "acm006051jsd" : { + "type" : "ControlElement", + "id" : "acm006051jsd", + "name" : "getContentType" + }, + "acm006052jsd" : { + "type" : "ControlElement", + "id" : "acm006052jsd", + "name" : "getBodyLines" + }, + "acm006053jsd" : { + "type" : "ControlElement", + "id" : "acm006053jsd", + "name" : "addHeader" + }, + "acm006054jsd" : { + "type" : "ControlElement", + "id" : "acm006054jsd", + "name" : "addBodyLine" + }, + "acm006055jsd" : { + "type" : "ControlElement", + "id" : "acm006055jsd", + "name" : "toString" + }, + "acm006056jsd" : { + "type" : "ClassUnit", + "id" : "acm006056jsd", + "name" : "EslMessage", + "compilationUnitId" : "acm006039jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006038jsd" ], + "content" : [ "acm006046jsd", "acm006047jsd", "acm006048jsd", "acm006049jsd", "acm006050jsd", "acm006051jsd", "acm006052jsd", "acm006053jsd", "acm006054jsd", "acm006055jsd" ] + }, + "acm006057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006057jsd", + "name" : "ClientTest", + "parentId" : "acm005721jsd", + "content" : [ "acm006077jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "test", "java", "org", "freeswitch", "esl", "client", "inbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006058jsd" : { + "type" : "CodePackage", + "id" : "acm006058jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006059jsd" ] + }, + "acm006059jsd" : { + "type" : "CodePackage", + "id" : "acm006059jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006060jsd" ] + }, + "acm006060jsd" : { + "type" : "CodePackage", + "id" : "acm006060jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006061jsd" ] + }, + "acm006061jsd" : { + "type" : "CodePackage", + "id" : "acm006061jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006062jsd" ] + }, + "acm006062jsd" : { + "type" : "CodePackage", + "id" : "acm006062jsd", + "name" : "inbound", + "parentId" : null, + "content" : [ "acm006057jsd" ] + }, + "acm006063jsd" : { + "type" : "ControlElement", + "id" : "acm006063jsd", + "name" : "do_connect" + }, + "acm006064jsd" : { + "type" : "ControlElement", + "id" : "acm006064jsd", + "name" : "eventReceived" + }, + "acm006065jsd" : { + "type" : "ControlElement", + "id" : "acm006065jsd", + "name" : "backgroundJobResultReceived" + }, + "acm006066jsd" : { + "type" : "ControlElement", + "id" : "acm006066jsd", + "name" : "conferenceEventJoin" + }, + "acm006067jsd" : { + "type" : "ControlElement", + "id" : "acm006067jsd", + "name" : "conferenceEventLeave" + }, + "acm006068jsd" : { + "type" : "ControlElement", + "id" : "acm006068jsd", + "name" : "conferenceEventMute" + }, + "acm006069jsd" : { + "type" : "ControlElement", + "id" : "acm006069jsd", + "name" : "conferenceEventUnMute" + }, + "acm006070jsd" : { + "type" : "ControlElement", + "id" : "acm006070jsd", + "name" : "conferenceEventAction" + }, + "acm006071jsd" : { + "type" : "ControlElement", + "id" : "acm006071jsd", + "name" : "conferenceEventTransfer" + }, + "acm006072jsd" : { + "type" : "ControlElement", + "id" : "acm006072jsd", + "name" : "conferenceEventThreadRun" + }, + "acm006073jsd" : { + "type" : "ControlElement", + "id" : "acm006073jsd", + "name" : "conferenceEventPlayFile" + }, + "acm006074jsd" : { + "type" : "ControlElement", + "id" : "acm006074jsd", + "name" : "exceptionCaught" + }, + "acm006075jsd" : { + "type" : "ControlElement", + "id" : "acm006075jsd", + "name" : "do_multi_connects" + }, + "acm006076jsd" : { + "type" : "ControlElement", + "id" : "acm006076jsd", + "name" : "sofia_contact" + }, + "acm006077jsd" : { + "type" : "ClassUnit", + "id" : "acm006077jsd", + "name" : "ClientTest", + "compilationUnitId" : "acm006057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005691jsd", "acm005745jsd", "acm005766jsd", "acm005999jsd", "acm006038jsd", "acm006056jsd" ], + "content" : [ "acm006063jsd", "acm006064jsd", "acm006065jsd", "acm006066jsd", "acm006067jsd", "acm006068jsd", "acm006069jsd", "acm006070jsd", "acm006071jsd", "acm006072jsd", "acm006073jsd", "acm006074jsd", "acm006075jsd", "acm006076jsd" ] + }, + "acm006078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006078jsd", + "name" : "SocketClientTest", + "parentId" : "acm005902jsd", + "content" : [ "acm006085jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "test", "java", "org", "freeswitch", "esl", "client", "outbound" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006079jsd" : { + "type" : "CodePackage", + "id" : "acm006079jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006080jsd" ] + }, + "acm006080jsd" : { + "type" : "CodePackage", + "id" : "acm006080jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006081jsd" ] + }, + "acm006081jsd" : { + "type" : "CodePackage", + "id" : "acm006081jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006082jsd" ] + }, + "acm006082jsd" : { + "type" : "CodePackage", + "id" : "acm006082jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006083jsd" ] + }, + "acm006083jsd" : { + "type" : "CodePackage", + "id" : "acm006083jsd", + "name" : "outbound", + "parentId" : null, + "content" : [ "acm006078jsd" ] + }, + "acm006084jsd" : { + "type" : "ControlElement", + "id" : "acm006084jsd", + "name" : "run_client" + }, + "acm006085jsd" : { + "type" : "ClassUnit", + "id" : "acm006085jsd", + "name" : "SocketClientTest", + "compilationUnitId" : "acm006078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005926jsd", "acm005946jsd" ], + "content" : [ "acm006084jsd" ] + }, + "acm006086jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006086jsd", + "name" : "EslFrameDecoderTest", + "parentId" : "acm006015jsd", + "content" : [ "acm006098jsd" ], + "pathElements" : [ "bbb-fsesl-client", "src", "test", "java", "org", "freeswitch", "esl", "client", "transport", "message" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006087jsd" : { + "type" : "CodePackage", + "id" : "acm006087jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006088jsd" ] + }, + "acm006088jsd" : { + "type" : "CodePackage", + "id" : "acm006088jsd", + "name" : "freeswitch", + "parentId" : null, + "content" : [ "acm006089jsd" ] + }, + "acm006089jsd" : { + "type" : "CodePackage", + "id" : "acm006089jsd", + "name" : "esl", + "parentId" : null, + "content" : [ "acm006090jsd" ] + }, + "acm006090jsd" : { + "type" : "CodePackage", + "id" : "acm006090jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm006091jsd" ] + }, + "acm006091jsd" : { + "type" : "CodePackage", + "id" : "acm006091jsd", + "name" : "transport", + "parentId" : null, + "content" : [ "acm006092jsd" ] + }, + "acm006092jsd" : { + "type" : "CodePackage", + "id" : "acm006092jsd", + "name" : "message", + "parentId" : null, + "content" : [ "acm006086jsd" ] + }, + "acm006093jsd" : { + "type" : "ControlElement", + "id" : "acm006093jsd", + "name" : "setupTest" + }, + "acm006094jsd" : { + "type" : "ControlElement", + "id" : "acm006094jsd", + "name" : "simpleMessage" + }, + "acm006095jsd" : { + "type" : "ControlElement", + "id" : "acm006095jsd", + "name" : "simpleMessageWithContent" + }, + "acm006096jsd" : { + "type" : "ControlElement", + "id" : "acm006096jsd", + "name" : "eventWithSecondContentLength" + }, + "acm006097jsd" : { + "type" : "ControlElement", + "id" : "acm006097jsd", + "name" : "createInputBuffer" + }, + "acm006098jsd" : { + "type" : "ClassUnit", + "id" : "acm006098jsd", + "name" : "EslFrameDecoderTest", + "compilationUnitId" : "acm006086jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006021jsd", "acm006056jsd" ], + "content" : [ "acm006093jsd", "acm006094jsd", "acm006095jsd", "acm006096jsd", "acm006097jsd" ] + }, + "acm006099jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006099jsd", + "name" : "RecordingApp", + "parentId" : "acm001339jsd", + "content" : [ "acm006114jsd" ], + "pathElements" : [ "bbb-recording-imex", "src", "main", "java", "org", "bigbluebutton" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006100jsd" : { + "type" : "CodePackage", + "id" : "acm006100jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006101jsd" ] + }, + "acm006101jsd" : { + "type" : "CodePackage", + "id" : "acm006101jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006099jsd" ] + }, + "acm006102jsd" : { + "type" : "ControlElement", + "id" : "acm006102jsd", + "name" : "main" + }, + "acm006103jsd" : { + "type" : "ControlElement", + "id" : "acm006103jsd", + "name" : "commandMode" + }, + "acm006104jsd" : { + "type" : "ControlElement", + "id" : "acm006104jsd", + "name" : "printUsage" + }, + "acm006105jsd" : { + "type" : "ControlElement", + "id" : "acm006105jsd", + "name" : "createDefaultDirectory" + }, + "acm006106jsd" : { + "type" : "ControlElement", + "id" : "acm006106jsd", + "name" : "executeCommands" + }, + "acm006107jsd" : { + "type" : "ControlElement", + "id" : "acm006107jsd", + "name" : "interactiveMode" + }, + "acm006108jsd" : { + "type" : "ControlElement", + "id" : "acm006108jsd", + "name" : "importRecordings" + }, + "acm006109jsd" : { + "type" : "ControlElement", + "id" : "acm006109jsd", + "name" : "exportRecordings" + }, + "acm006110jsd" : { + "type" : "ControlElement", + "id" : "acm006110jsd", + "name" : "getResponse" + }, + "acm006111jsd" : { + "type" : "ControlElement", + "id" : "acm006111jsd", + "name" : "getResponse" + }, + "acm006112jsd" : { + "type" : "ControlElement", + "id" : "acm006112jsd", + "name" : "parseResponse" + }, + "acm006113jsd" : { + "type" : "ControlElement", + "id" : "acm006113jsd", + "name" : "contains" + }, + "acm006114jsd" : { + "type" : "ClassUnit", + "id" : "acm006114jsd", + "name" : "RecordingApp", + "compilationUnitId" : "acm006099jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006123jsd", "acm006131jsd" ], + "content" : [ "acm006102jsd", "acm006103jsd", "acm006104jsd", "acm006105jsd", "acm006106jsd", "acm006107jsd", "acm006108jsd", "acm006109jsd", "acm006110jsd", "acm006111jsd", "acm006112jsd", "acm006113jsd" ] + }, + "acm006115jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006115jsd", + "name" : "RecordingExportHandler", + "parentId" : "acm001339jsd", + "content" : [ "acm006123jsd" ], + "pathElements" : [ "bbb-recording-imex", "src", "main", "java", "org", "bigbluebutton" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006116jsd" : { + "type" : "CodePackage", + "id" : "acm006116jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006117jsd" ] + }, + "acm006117jsd" : { + "type" : "CodePackage", + "id" : "acm006117jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006115jsd" ] + }, + "acm006118jsd" : { + "type" : "ControlElement", + "id" : "acm006118jsd", + "name" : "RecordingExportHandler" + }, + "acm006119jsd" : { + "type" : "ControlElement", + "id" : "acm006119jsd", + "name" : "getInstance" + }, + "acm006120jsd" : { + "type" : "ControlElement", + "id" : "acm006120jsd", + "name" : "exportRecordings" + }, + "acm006121jsd" : { + "type" : "ControlElement", + "id" : "acm006121jsd", + "name" : "exportRecording" + }, + "acm006122jsd" : { + "type" : "ControlElement", + "id" : "acm006122jsd", + "name" : "exportRecording" + }, + "acm006123jsd" : { + "type" : "ClassUnit", + "id" : "acm006123jsd", + "name" : "RecordingExportHandler", + "compilationUnitId" : "acm006115jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003833jsd", "acm004410jsd", "acm004530jsd", "acm004549jsd", "acm006123jsd" ], + "content" : [ "acm006118jsd", "acm006119jsd", "acm006120jsd", "acm006121jsd", "acm006122jsd" ] + }, + "acm006124jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006124jsd", + "name" : "RecordingImportHandler", + "parentId" : "acm001339jsd", + "content" : [ "acm006131jsd" ], + "pathElements" : [ "bbb-recording-imex", "src", "main", "java", "org", "bigbluebutton" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006125jsd" : { + "type" : "CodePackage", + "id" : "acm006125jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006126jsd" ] + }, + "acm006126jsd" : { + "type" : "CodePackage", + "id" : "acm006126jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006124jsd" ] + }, + "acm006127jsd" : { + "type" : "ControlElement", + "id" : "acm006127jsd", + "name" : "RecordingImportHandler" + }, + "acm006128jsd" : { + "type" : "ControlElement", + "id" : "acm006128jsd", + "name" : "getInstance" + }, + "acm006129jsd" : { + "type" : "ControlElement", + "id" : "acm006129jsd", + "name" : "importRecordings" + }, + "acm006130jsd" : { + "type" : "ControlElement", + "id" : "acm006130jsd", + "name" : "importRecording" + }, + "acm006131jsd" : { + "type" : "ClassUnit", + "id" : "acm006131jsd", + "name" : "RecordingImportHandler", + "compilationUnitId" : "acm006124jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003833jsd", "acm004410jsd", "acm004530jsd", "acm004549jsd", "acm006131jsd" ], + "content" : [ "acm006127jsd", "acm006128jsd", "acm006129jsd", "acm006130jsd" ] + }, + "acm006132jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006132jsd", + "name" : "RecordingImportHandlerTest", + "parentId" : "acm001339jsd", + "content" : [ "acm006136jsd" ], + "pathElements" : [ "bbb-recording-imex", "src", "test", "java", "org", "bigbluebutton" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006133jsd" : { + "type" : "CodePackage", + "id" : "acm006133jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006134jsd" ] + }, + "acm006134jsd" : { + "type" : "CodePackage", + "id" : "acm006134jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006132jsd" ] + }, + "acm006135jsd" : { + "type" : "ControlElement", + "id" : "acm006135jsd", + "name" : "testParseRecordId" + }, + "acm006136jsd" : { + "type" : "ClassUnit", + "id" : "acm006136jsd", + "name" : "RecordingImportHandlerTest", + "compilationUnitId" : "acm006132jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003833jsd", "acm006131jsd", "acm006136jsd" ], + "content" : [ "acm006135jsd" ] + }, + "acm006137jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006137jsd", + "name" : "RecordingStoreTest", + "parentId" : "acm001339jsd", + "content" : [ "acm006144jsd" ], + "pathElements" : [ "bbb-recording-imex", "src", "test", "java", "org", "bigbluebutton" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006138jsd" : { + "type" : "CodePackage", + "id" : "acm006138jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006139jsd" ] + }, + "acm006139jsd" : { + "type" : "CodePackage", + "id" : "acm006139jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006137jsd" ] + }, + "acm006140jsd" : { + "type" : "ControlElement", + "id" : "acm006140jsd", + "name" : "setup" + }, + "acm006141jsd" : { + "type" : "ControlElement", + "id" : "acm006141jsd", + "name" : "testPersist" + }, + "acm006142jsd" : { + "type" : "ControlElement", + "id" : "acm006142jsd", + "name" : "testFind" + }, + "acm006143jsd" : { + "type" : "ControlElement", + "id" : "acm006143jsd", + "name" : "testExportRecording" + }, + "acm006144jsd" : { + "type" : "ClassUnit", + "id" : "acm006144jsd", + "name" : "RecordingStoreTest", + "compilationUnitId" : "acm006137jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003833jsd", "acm004549jsd", "acm006123jsd", "acm006131jsd", "acm006144jsd" ], + "content" : [ "acm006140jsd", "acm006141jsd", "acm006142jsd", "acm006143jsd" ] + }, + "acm006145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006145jsd", + "name" : "Main", + "parentId" : "acm006148jsd", + "content" : [ "acm006157jsd", "acm006159jsd", "acm006161jsd", "acm006163jsd" ], + "pathElements" : [ "bigbluebutton-web", "pres-checker", "src", "main", "java", "org", "bigbluebutton", "prescheck" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006146jsd" : { + "type" : "CodePackage", + "id" : "acm006146jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006147jsd" ] + }, + "acm006147jsd" : { + "type" : "CodePackage", + "id" : "acm006147jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006148jsd" ] + }, + "acm006148jsd" : { + "type" : "CodePackage", + "id" : "acm006148jsd", + "name" : "prescheck", + "parentId" : "acm001339jsd", + "content" : [ "acm006145jsd" ] + }, + "acm006149jsd" : { + "type" : "ControlElement", + "id" : "acm006149jsd", + "name" : "main" + }, + "acm006150jsd" : { + "type" : "ControlElement", + "id" : "acm006150jsd", + "name" : "check" + }, + "acm006151jsd" : { + "type" : "ControlElement", + "id" : "acm006151jsd", + "name" : "embedsEmf" + }, + "acm006152jsd" : { + "type" : "ControlElement", + "id" : "acm006152jsd", + "name" : "containsTinyTileBackground" + }, + "acm006153jsd" : { + "type" : "ControlElement", + "id" : "acm006153jsd", + "name" : "allSlidesAreHidden" + }, + "acm006154jsd" : { + "type" : "ControlElement", + "id" : "acm006154jsd", + "name" : "evaluate" + }, + "acm006155jsd" : { + "type" : "ControlElement", + "id" : "acm006155jsd", + "name" : "evaluate" + }, + "acm006156jsd" : { + "type" : "ControlElement", + "id" : "acm006156jsd", + "name" : "evaluate" + }, + "acm006157jsd" : { + "type" : "ClassUnit", + "id" : "acm006157jsd", + "name" : "Main", + "compilationUnitId" : "acm006145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006157jsd", "acm006159jsd", "acm006161jsd", "acm006163jsd" ], + "content" : [ "acm006149jsd", "acm006150jsd", "acm006151jsd", "acm006152jsd", "acm006153jsd", "acm006154jsd", "acm006155jsd", "acm006156jsd" ] + }, + "acm006158jsd" : { + "type" : "ControlElement", + "id" : "acm006158jsd", + "name" : "evaluate" + }, + "acm006159jsd" : { + "type" : "ClassUnit", + "id" : "acm006159jsd", + "name" : "EmfPredicate", + "compilationUnitId" : "acm006145jsd", + "parentDatatypeId" : "acm006157jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006158jsd" ] + }, + "acm006160jsd" : { + "type" : "ControlElement", + "id" : "acm006160jsd", + "name" : "evaluate" + }, + "acm006161jsd" : { + "type" : "ClassUnit", + "id" : "acm006161jsd", + "name" : "TinyTileBackgroundPredicate", + "compilationUnitId" : "acm006145jsd", + "parentDatatypeId" : "acm006157jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006160jsd" ] + }, + "acm006162jsd" : { + "type" : "ControlElement", + "id" : "acm006162jsd", + "name" : "evaluate" + }, + "acm006163jsd" : { + "type" : "ClassUnit", + "id" : "acm006163jsd", + "name" : "HiddenSlidePredicate", + "compilationUnitId" : "acm006145jsd", + "parentDatatypeId" : "acm006157jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006162jsd" ] + }, + "acm006164jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006164jsd", + "name" : "ParamsProcessorUtilTest", + "parentId" : "acm002337jsd", + "content" : [ "acm006178jsd" ], + "pathElements" : [ "bigbluebutton-web", "test", "groovy", "org", "bigbluebutton", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006165jsd" : { + "type" : "CodePackage", + "id" : "acm006165jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006166jsd" ] + }, + "acm006166jsd" : { + "type" : "CodePackage", + "id" : "acm006166jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006167jsd" ] + }, + "acm006167jsd" : { + "type" : "CodePackage", + "id" : "acm006167jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006164jsd" ] + }, + "acm006168jsd" : { + "type" : "ControlElement", + "id" : "acm006168jsd", + "name" : "setUp" + }, + "acm006169jsd" : { + "type" : "ControlElement", + "id" : "acm006169jsd", + "name" : "testMetaParameter" + }, + "acm006170jsd" : { + "type" : "ControlElement", + "id" : "acm006170jsd", + "name" : "testInvalidMetaParameterUndescore" + }, + "acm006171jsd" : { + "type" : "ControlElement", + "id" : "acm006171jsd", + "name" : "testInvalidMetaParameterWrongStartsWith" + }, + "acm006172jsd" : { + "type" : "ControlElement", + "id" : "acm006172jsd", + "name" : "testInvalidMetaParameterNonAlphaNumChar" + }, + "acm006173jsd" : { + "type" : "ControlElement", + "id" : "acm006173jsd", + "name" : "testInvalidMetaParameterNonAlphaAfterMeta" + }, + "acm006174jsd" : { + "type" : "ControlElement", + "id" : "acm006174jsd", + "name" : "testStringMetaFromParameter" + }, + "acm006175jsd" : { + "type" : "ControlElement", + "id" : "acm006175jsd", + "name" : "testStringMetaFromParameterWithDash" + }, + "acm006176jsd" : { + "type" : "ControlElement", + "id" : "acm006176jsd", + "name" : "testProcessMetaParameters" + }, + "acm006177jsd" : { + "type" : "ControlElement", + "id" : "acm006177jsd", + "name" : "testProcessMetaParametersSkippingInvalid" + }, + "acm006178jsd" : { + "type" : "ClassUnit", + "id" : "acm006178jsd", + "name" : "ParamsProcessorUtilTest", + "compilationUnitId" : "acm006164jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006168jsd", "acm006169jsd", "acm006170jsd", "acm006171jsd", "acm006172jsd", "acm006173jsd", "acm006174jsd", "acm006175jsd", "acm006176jsd", "acm006177jsd" ] + }, + "acm006179jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006179jsd", + "name" : "NullMessagingService", + "parentId" : "acm003234jsd", + "content" : [ "acm006194jsd" ], + "pathElements" : [ "bigbluebutton-web", "test", "groovy", "org", "bigbluebutton", "api", "messaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006180jsd" : { + "type" : "CodePackage", + "id" : "acm006180jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006181jsd" ] + }, + "acm006181jsd" : { + "type" : "CodePackage", + "id" : "acm006181jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ "acm006182jsd" ] + }, + "acm006182jsd" : { + "type" : "CodePackage", + "id" : "acm006182jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006183jsd" ] + }, + "acm006183jsd" : { + "type" : "CodePackage", + "id" : "acm006183jsd", + "name" : "messaging", + "parentId" : null, + "content" : [ "acm006179jsd" ] + }, + "acm006184jsd" : { + "type" : "ControlElement", + "id" : "acm006184jsd", + "name" : "start" + }, + "acm006185jsd" : { + "type" : "ControlElement", + "id" : "acm006185jsd", + "name" : "stop" + }, + "acm006186jsd" : { + "type" : "ControlElement", + "id" : "acm006186jsd", + "name" : "recordMeetingInfo" + }, + "acm006187jsd" : { + "type" : "ControlElement", + "id" : "acm006187jsd", + "name" : "addListener" + }, + "acm006188jsd" : { + "type" : "ControlElement", + "id" : "acm006188jsd", + "name" : "removeListener" + }, + "acm006189jsd" : { + "type" : "ControlElement", + "id" : "acm006189jsd", + "name" : "destroyMeeting" + }, + "acm006190jsd" : { + "type" : "ControlElement", + "id" : "acm006190jsd", + "name" : "createMeeting" + }, + "acm006191jsd" : { + "type" : "ControlElement", + "id" : "acm006191jsd", + "name" : "sendPolls" + }, + "acm006192jsd" : { + "type" : "ControlElement", + "id" : "acm006192jsd", + "name" : "recordBreakoutInfo" + }, + "acm006193jsd" : { + "type" : "ControlElement", + "id" : "acm006193jsd", + "name" : "addBreakoutRoom" + }, + "acm006194jsd" : { + "type" : "ClassUnit", + "id" : "acm006194jsd", + "name" : "NullMessagingService", + "compilationUnitId" : "acm006179jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003254jsd" ], + "datatypeReferencesIds" : [ "acm003245jsd" ], + "content" : [ "acm006184jsd", "acm006185jsd", "acm006186jsd", "acm006187jsd", "acm006188jsd", "acm006189jsd", "acm006190jsd", "acm006191jsd", "acm006192jsd", "acm006193jsd" ] + }, + "acm006196jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006196jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-apps" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006197jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-apps" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006198jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006198jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-apps" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006199jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006199jsd", + "name" : "postrm", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-apps", "src", "debian", "DEBIAN" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006200jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006200jsd", + "name" : "preinst", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-apps", "src", "debian", "DEBIAN" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006201jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006201jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006202jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006202jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006203jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006203jsd", + "name" : "postinst", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl", "src", "debian", "DEBIAN" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006204jsd", + "name" : "postrm", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl", "src", "debian", "DEBIAN" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006205jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006205jsd", + "name" : "preinst", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl", "src", "debian", "DEBIAN" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006206jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006206jsd", + "name" : "wait-for-it", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "akka-bbb-fsesl" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006207jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006207jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-common-message" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006208jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-common-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006209jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006209jsd", + "name" : "docker-clean", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-common-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006210jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006210jsd", + "name" : "hibernate-cfg", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-common-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006211jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006211jsd", + "name" : "psql", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-common-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006212jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006212jsd", + "name" : "bbb-etherpad.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006213jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006213jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-fsesl-client" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006214jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006214jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-client-test" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006215jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006215jsd", + "name" : "build-and-run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006216jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006217jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006217jsd", + "name" : "run-watch", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware", "demo", "client" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006218jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006218jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware", "demo", "client" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006219jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006219jsd", + "name" : "stress-test", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware", "demo", "client" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006220jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006220jsd", + "name" : "install-graphql-middleware", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006221jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006221jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-middleware" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006222jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006222jsd", + "name" : "build_hasura", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006223jsd", + "name" : "install-hasura", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006224jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006224jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006225jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006225jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006226jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006226jsd", + "name" : "convert-local", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice", "assets" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006227jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006227jsd", + "name" : "convert-remote", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice", "assets" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006228jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006228jsd", + "name" : "etherpad-export", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice", "assets" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006229jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006229jsd", + "name" : "install-local", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006230jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006230jsd", + "name" : "install-remote", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006231jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006231jsd", + "name" : "uninstall-local", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006232jsd", + "name" : "uninstall-remote", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-libreoffice" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006233jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006233jsd", + "name" : "bbb-lti.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006234jsd", + "name" : "bbb-pads.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006235jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006235jsd", + "name" : "bbb-playback.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006236jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006236jsd", + "name" : "bbb-presentation-video.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006237jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006237jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-recording-imex" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006238jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006238jsd", + "name" : "get-recordings", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bbb-recording-imex" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006239jsd", + "name" : "bbb-webhooks.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006240jsd", + "name" : "bbb-webrtc-recorder.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006241jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006241jsd", + "name" : "bbb-webrtc-sfu.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006242jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006242jsd", + "name" : "apply-lib", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-config", "bin" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006243jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006243jsd", + "name" : "bbb-conf", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-config", "bin" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006244jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006244jsd", + "name" : "bbb-record", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-config", "bin" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006245jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006245jsd", + "name" : "bigbluebutton", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-config", "cron.daily" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006246jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006246jsd", + "name" : "bbb-resync-freeswitch", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-config", "cron.hourly" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006247jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006247jsd", + "name" : "deploy_to_usr_share", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006248jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006248jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006249jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006249jsd", + "name" : "test-html5", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006250jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006250jsd", + "name" : "transifex", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006251jsd", + "name" : "NPDC.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "gns3" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006252jsd", + "name" : "testclient", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "gns3" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006253jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006253jsd", + "name" : "testcreds", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "gns3" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006254jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006254jsd", + "name" : "testserver", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "gns3" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006255jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006255jsd", + "name" : "import-tests-ci-resources", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "puppeteer" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006256jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006256jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "puppeteer" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006257jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006257jsd", + "name" : "restart-network", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "puppeteer", "trigger" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006258jsd", + "name" : "stop-network", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-tests", "puppeteer", "trigger" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006259jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006260jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006260jsd", + "name" : "deploy_to_usr_share", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006261jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006261jsd", + "name" : "gradlew", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006262jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006262jsd", + "name" : "grailsw", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006263jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web", "pres-checker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006264jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006264jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web", "pres-checker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006265jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006265jsd", + "name" : "run-dev", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006266jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006266jsd", + "name" : "run", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "bigbluebutton-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006267jsd", + "name" : "change_detection", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006268jsd", + "name" : "deb-helper", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006269jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006269jsd", + "name" : "get_external_dependencies", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006270jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006270jsd", + "name" : "opts-global", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006271jsd", + "name" : "package-names.inc", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006272jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006272jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-apps-akka" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006273jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-config" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006274jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006274jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-config" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006275jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006275jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-config" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006276jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006276jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-config" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006277jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006277jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-config" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006278jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006278jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006279jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006280jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006281jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006281jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006282jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006282jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006283jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-etherpad" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006284jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006284jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-export-annotations" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006285jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006285jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-export-annotations" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006286jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-export-annotations" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006287jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-export-annotations" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006288jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006288jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006289jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006289jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006290jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006290jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006291jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006292jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006292jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006293jsd", + "name" : "fs_clibbb", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006294jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006294jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006295jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-sounds" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006296jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-freeswitch-sounds" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006297jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006297jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-fsesl-akka" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006298jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006298jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006299jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006300jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006301jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006301jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006302jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-graphql-server" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006303jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006303jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006304jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006305jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006306jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006306jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006307jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006307jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006308jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006308jsd", + "name" : "kill_mongo", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006309jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006309jsd", + "name" : "mongod_start_pre", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006310jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006311jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006311jsd", + "name" : "run_mongo", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006312jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006312jsd", + "name" : "systemd_start", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006313jsd", + "name" : "systemd_start_frontend", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006314jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006314jsd", + "name" : "workers-start", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006315jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006315jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-html5-nodejs" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006316jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006316jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006317jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006317jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006318jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006318jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006319jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006320jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006320jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-learning-dashboard" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006321jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-libreoffice-docker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006322jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006322jsd", + "name" : "after-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-libreoffice-docker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006323jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006323jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-libreoffice-docker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006324jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-libreoffice-docker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006325jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006325jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-libreoffice-docker" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006326jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006326jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-lti" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006327jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006327jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-lti" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006328jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006328jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-lti" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006329jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006329jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-lti" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006330jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006330jsd", + "name" : "run-prod", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-lti" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006331jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006331jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-mkclean" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006332jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006332jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-mkclean" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006333jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-pads" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006334jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006334jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-pads" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006335jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-pads" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006336jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006336jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-pads" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006337jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006338jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006338jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006339jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006339jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006340jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-notes" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006341jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006341jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-notes" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006342jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006342jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-notes" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006343jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006343jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-notes" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006344jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006344jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-podcast" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006345jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006345jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-podcast" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006346jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-podcast" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006347jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-presentation" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006348jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006348jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-presentation" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006349jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006349jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-presentation" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006350jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006350jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-screenshare" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006351jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006351jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-screenshare" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006352jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006352jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-screenshare" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006353jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006353jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-video" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006354jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-video" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006355jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-playback-video" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006356jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-record-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006357jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006357jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-record-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006358jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006358jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-record-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006359jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006359jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-record-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006360jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006360jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-record-core" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006361jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006362jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006362jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006363jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006363jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006364jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006365jsd", + "name" : "setenv", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-web" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006366jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006366jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webhooks" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006367jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006367jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webhooks" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006368jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webhooks" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006369jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006369jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webhooks" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006370jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006370jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webhooks" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006371jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-recorder" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006372jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006372jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-recorder" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006373jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006373jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-recorder" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006374jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006374jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-recorder" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006375jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006375jsd", + "name" : "after-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-sfu" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006376jsd", + "name" : "before-install", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-sfu" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006377jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006377jsd", + "name" : "before-remove", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-sfu" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006378jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006378jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-sfu" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006379jsd", + "name" : "opts-jammy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bbb-webrtc-sfu" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006380jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006380jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build", "packages-template", "bigbluebutton" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006381jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006381jsd", + "name" : "push_packages", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006382jsd", + "name" : "setup-inside-docker", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006383jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006383jsd", + "name" : "setup", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "build" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006384jsd", + "name" : "build", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "docs" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006385jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006385jsd", + "name" : "freeswitch.placeholder", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm006386jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006386jsd", + "name" : "bbb-test", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "labs", "stress-testing" ], + "extension" : "", + "language" : "SHELL" + }, + "acm006387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006387jsd", + "name" : "deploy", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "record-and-playback" ], + "extension" : "sh", + "language" : "SHELL" + } + } + }, + "content" : [ "acm001338jsd", "acm006196jsd", "acm006197jsd", "acm006198jsd", "acm006199jsd", "acm006200jsd", "acm006201jsd", "acm006202jsd", "acm006203jsd", "acm006204jsd", "acm006205jsd", "acm006206jsd", "acm006207jsd", "acm006208jsd", "acm006209jsd", "acm006210jsd", "acm006211jsd", "acm006212jsd", "acm006213jsd", "acm006214jsd", "acm006215jsd", "acm006216jsd", "acm006217jsd", "acm006218jsd", "acm006219jsd", "acm006220jsd", "acm006221jsd", "acm006222jsd", "acm006223jsd", "acm006224jsd", "acm006225jsd", "acm006226jsd", "acm006227jsd", "acm006228jsd", "acm006229jsd", "acm006230jsd", "acm006231jsd", "acm006232jsd", "acm006233jsd", "acm006234jsd", "acm006235jsd", "acm006236jsd", "acm006237jsd", "acm006238jsd", "acm006239jsd", "acm006240jsd", "acm006241jsd", "acm006242jsd", "acm006243jsd", "acm006244jsd", "acm006245jsd", "acm006246jsd", "acm006247jsd", "acm006248jsd", "acm006249jsd", "acm006250jsd", "acm006251jsd", "acm006252jsd", "acm006253jsd", "acm006254jsd", "acm006255jsd", "acm006256jsd", "acm006257jsd", "acm006258jsd", "acm006259jsd", "acm006260jsd", "acm006261jsd", "acm006262jsd", "acm006263jsd", "acm006264jsd", "acm006265jsd", "acm006266jsd", "acm006267jsd", "acm006268jsd", "acm006269jsd", "acm006270jsd", "acm006271jsd", "acm006272jsd", "acm006273jsd", "acm006274jsd", "acm006275jsd", "acm006276jsd", "acm006277jsd", "acm006278jsd", "acm006279jsd", "acm006280jsd", "acm006281jsd", "acm006282jsd", "acm006283jsd", "acm006284jsd", "acm006285jsd", "acm006286jsd", "acm006287jsd", "acm006288jsd", "acm006289jsd", "acm006290jsd", "acm006291jsd", "acm006292jsd", "acm006293jsd", "acm006294jsd", "acm006295jsd", "acm006296jsd", "acm006297jsd", "acm006298jsd", "acm006299jsd", "acm006300jsd", "acm006301jsd", "acm006302jsd", "acm006303jsd", "acm006304jsd", "acm006305jsd", "acm006306jsd", "acm006307jsd", "acm006308jsd", "acm006309jsd", "acm006310jsd", "acm006311jsd", "acm006312jsd", "acm006313jsd", "acm006314jsd", "acm006315jsd", "acm006316jsd", "acm006317jsd", "acm006318jsd", "acm006319jsd", "acm006320jsd", "acm006321jsd", "acm006322jsd", "acm006323jsd", "acm006324jsd", "acm006325jsd", "acm006326jsd", "acm006327jsd", "acm006328jsd", "acm006329jsd", "acm006330jsd", "acm006331jsd", "acm006332jsd", "acm006333jsd", "acm006334jsd", "acm006335jsd", "acm006336jsd", "acm006337jsd", "acm006338jsd", "acm006339jsd", "acm006340jsd", "acm006341jsd", "acm006342jsd", "acm006343jsd", "acm006344jsd", "acm006345jsd", "acm006346jsd", "acm006347jsd", "acm006348jsd", "acm006349jsd", "acm006350jsd", "acm006351jsd", "acm006352jsd", "acm006353jsd", "acm006354jsd", "acm006355jsd", "acm006356jsd", "acm006357jsd", "acm006358jsd", "acm006359jsd", "acm006360jsd", "acm006361jsd", "acm006362jsd", "acm006363jsd", "acm006364jsd", "acm006365jsd", "acm006366jsd", "acm006367jsd", "acm006368jsd", "acm006369jsd", "acm006370jsd", "acm006371jsd", "acm006372jsd", "acm006373jsd", "acm006374jsd", "acm006375jsd", "acm006376jsd", "acm006377jsd", "acm006378jsd", "acm006379jsd", "acm006380jsd", "acm006381jsd", "acm006382jsd", "acm006383jsd", "acm006384jsd", "acm006385jsd", "acm006386jsd", "acm006387jsd" ] +} \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/README.md b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/README.md new file mode 100644 index 000000000..33886d0a4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/README.md @@ -0,0 +1,22 @@ +# BigBlueButton 2015 + +The text was taken from https://github.com/bigbluebutton/bigbluebutton.github.io/blob/25582d381a27557d5e308f30a6e94a603b7438ba/_posts/2015-04-04-09architecture.md + +## Assumption + +* For the goldstandard it was assumed, that the text still fits to the model from 2021. + +Notes to the goldstandard: +* note 1: kurento = webrtc Media Server https://github.com/kurento/ +* note 2: if Flash Client !~ HTML5 Client -> remove all HTML5 Clients +* note 3: if webrtc !~ webrtc-sfu -> remove all webrtc-sfu + + +## Text Adaptation + +* Images were removed +* Captions were kept. A finalizing dot were added. + +## License +The [documentation of BBB](https://github.com/bigbluebutton/bigbluebutton.github.io/blob/25582d381a27557d5e308f30a6e94a603b7438ba/_posts/2015-04-04-09architecture.md) is licensed under LGPL. +Therefore, the text we extracted from their documentation is licensed according to the [license of BBB](https://bigbluebutton.org/open-source-project/open-source-license/) under LGPL. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt new file mode 100644 index 000000000..eea53cb5d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt @@ -0,0 +1,71 @@ +High-level Architecture Overview. +The following diagram provides a high-level overview of the BigBlueButton architecture. +We'll break down each component below. +Client. +The Client is a Flash application which runs inside the browser. +The client connects to Red5 using RTMP (port 1935) or RTMPT (port 80) if needs to tunnel. +When it needs to connect using RTMPT, it connects through Nginx which proxies the connection to Red5. +The Client also uploads presentations to Web API. +Third-party Applications. +Every access to BigBlueButton comes through a front-end portal (we refer to as a third-party application). +BigBlueButton integrates Moodle, Wordpress, Canvas, Sakai, and others (see third-party integrations). +From a learning management system (LMS) such as Moodle, teachers can setup BigBlueButton rooms within their course and students can access the rooms and their recordings. +The BigBlueButton comes with some simple API demos, but you really want to use an existing front-end or develop your own using the BigBlueButton API. +Nginx. +Nginx proxies calls to different server side applications through port 80. +Nginx also allows Flash client to connect using RTMPT for users behind a firewall that prevents their client from connecting directly to Red5 on port 1935. +It also front-ends the Web API which runs on Tomcat7 listening on port 8080. +For users joining the voice conference using WebRTC, nginx proxies the WebRTC connection to FreeSWITCH. +Web API. +The Web API provides the integration endpoint for third-party applications -- such as Moodle, Wordpress, Canvas, Sakai, etc. -- to control the BigBlueButton server. +Presentation Conversion. +Uploaded presentations undergoes conversion process in order to be displayed in the Flash client. +If the uploaded file is an Office document, it gets converted into PDF using LibreOffice and then converted to SWF using SWFTools. +The conversion process is described later in this page. +Redis PubSub. +Redis PubSub provides a communication channel between different server side applications. +Redis DB. +When a meeting is recorded, all events are stored in Redis DB. +When the meeting ends, the Recording Processor will take all the recorded events as well as the different raw (PDF, WAV, FLV) files for processing. +Red5 Apps (Deskshare, Apps, Voice, Video). +We think Red5 rocks, and we use it as the core server for handling all the real-time interaction with the client. +The Apps is the main BigBlueButton application that handles users, chat, whiteboard, presentation information shared by all users in a meeting. +The Deskshare application allows the presenter to share the desktop. +The Voice application allows the user to call into the voice conference using a headset or join listen-only. +The Video application provides a user to share his/her webcam to the users in the meeting. +FreeSWITCH. +FreeSWITCH provides the voice conferencing capability in BigBlueButton. +Users are able to join the voice conference through the headset. +Users joining through Google Chrome or Mozilla Firefox are able to take advantage of higher quality audio by connecting using WebRTC. +FreeSWITCH can also be integrated with VOIP providers so that users who are not able to join using the headset will be able to call in using their phone. +BigBlueButton Apps. +BigBlueButton Apps is the main application that pulls together the different applications to provide real-time collaboration in the meeting. +It provides the list of users, chat, whiteboard, presentations in a meeting. +Below is a diagram of the different components of BigBlueButton Apps. +BigBlueButton Apps has several components for it to communicate externally. +It has components to receive (Red5ClientMessageReceiver) and send (Red5ClientMessageSender) to the Flash client. +It subscribes to messages from the Redis PubSub as well as publishes events to Redis. +The VoiceService components allows it to communicate to FreeSWITCH. +When a meeting is recorded, events are stored into the Redis DB. +The meeting business logic is in the MeetingActor. +This is where information about the meeting is stored and where all messages for a meeting is processed. +Joining a Voice Conference. +In BigBlueButton, a user can join the voice conference in several ways. +Users can join using Flash, WebRTC, or phone. +When joining through Flash, the user can choose to join listen-only or listen-and-talk. +Users joined with Chrome and Firefox are able to join using WebRTC. +WebRTC provides higher-quality and lower delay. +If FreeSWITCH is integrated with a VOIP provider, users are able to call in using their phone by dialing a number and pressing the conference number on their keypad. +Uploading a Presentation. +Uploaded presentations go through a conversion process in order to be displayed inside the Flash client. +When the uploaded presentation is an Office document, it needs to be converted into PDF using LibreOffice. +The PDF document is then converted in SWF using SWFTools. +There are times when a PDF page fails to convert to SWF. +In this case, an image snapshot of the page is taken using ImageMagick/GhostScript and the image is converted to PDF then to SWF. +The conversion process sends progress messages to the client through the Redis pubsub. +BigBlueButton Client. +BigBlueButton client runs inside the browser. +The main application is in Flash. +There are Javascript libraries that provides connection to FreeSWITCH, launch the desktop sharing applet, etc. +The Flash client connects to BigBlueButton App to send and receive messages. +The client internally uses a event bus for the components to talk to each other. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/README.md b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/README.md new file mode 100644 index 000000000..124d72aa4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/README.md @@ -0,0 +1,13 @@ +# BigBlueButton 2021 + +The text was taken from [https://docs.bigbluebutton.org/2.4/architecture.html (Wayback Machine)](http://web.archive.org/web/20230315102607/https://docs.bigbluebutton.org/2.4/architecture.html) + + +## Text Adaptation + +* Images were removed +* Captions were kept. A finalizing dot were added. + +## License +The [documentation of BBB](https://docs.bigbluebutton.org/2.4/architecture.html) is licensed under LGPL. +Therefore, the text we extracted from their documentation is licensed according to the [license of BBB](https://bigbluebutton.org/open-source-project/open-source-license/) under LGPL. diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton.txt b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton.txt new file mode 100644 index 000000000..d2411c272 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton.txt @@ -0,0 +1,121 @@ +High-level architecture. +The following diagram provides a high-level view of how BigBlueButton's components work together. +We'll break down each component in more detail below. + + +HTML5 client. + +The HTML5 client is a single page, responsive web application that is built upon the following components: +React.js for rendering the user interface in an efficient manner, WebRTC for sending/receiving audio and video. +The HTML5 client connects directly with the BigBlueButton server over port 443 (SSL), from loading the BigBlueButton client to making a web socket connection. These connections are all handled by nginx. +The HTML5 server sits behind nginx. +The HTML5 server is built upon Meteor.js in ECMA2015 for communication between client and server and upon MongoDB for keeping the state of each BigBlueButton client consistent with the BigBlueButton server. +The MongoDB database contains information about all meetings on the server and, in turn, each client connected to a meeting. +Each user's client is only aware of the their meeting's state, such the user's public and private chat messages sent and received. The client side subscribes to the published collections on the server side. +Updates to MongoDB on the server side are automatically pushed to MiniMongo on the client side. +The following diagram gives an overview of the architecture of the HTML5 client and its communications with the other components in BigBlueButton. + + +Scalability of HTML5 server component. + +BigBlueButton 2.2 used a single nodejs process for all client-side communication. +This process would start to bottleneck (the nodejs process, running on a single CPU core, started to use 100% of the core). +Because nodejs was running on a single CPU core, having a 16 or 32 CPU core server for BigBlueButton 2.2 failed to yield much additional scalability. +BigBlueButton 2.3 moves away from a single nodejs process for bbb-html5 towards multiple nodejs processes handling incoming messages from clients. +This means that bbb-html5 could use multiple CPU cores for processing messages and handling browser sessions (each nodejs process runs on a single CPU core). +As of 2.3-alpha-7, bbb-html5 uses 2 "frontend" and two "backend" processes (this value is configurable in bbb-html5-with-roles.conf, see Configuration Files). +A restart of BigBlueButton is required if you make changes to these files. +The breakdown of functionality between front-end and back-end is as follows: +Frontends receive the ValidateAuthTokenResp event to complete authentication. +Frontends collection subscription and publishing. +Frontends other DDP events including method calls to send events to akka-apps +Frontends handle completely the Streamer redis events: Cursor, Annotations, External video share. +Frontends still require MeetingStarted and MeetingEnded events to create/destroy per-meeting event processing queues. +Backends handle all the non-streamer events. +If more than one backend is running, bbb-web splits the load in round-robin fashion by assigning an instanceId. +So individual backends only process redis events for the meetings matching the associated instanceId. +ValidateAuthTokenResp is passed to backends as well, which is needed for the cases where you only have a backend, no frontends - for example dev environments that do not need to care about scaling. +When you use sudo bbb-conf --setip or sudo bbb-conf --restart, bbb-conf will run /etc/bigbluebutton/bbb-conf/apply-config.sh between shutdown and restart of the BigBlueButton processes. +In this way, you can change configuration values of BigBlueButton, or use some of the helper functions in apply-lib.sh. +See "Automatically apply configuration changes on restart". + + +BBB web. + +BigBlueButton web application is a Java-based application written in Scala. It implements the BigBlueButton API and holds a copy of the meeting state. +The BigBlueButton API provides a third-party integration (such as the BigBlueButtonBN plugin for Moodle) with an endpoint to control the BigBlueButton server. +Every access to BigBlueButton comes through a front-end portal (we refer to as a third-party application). +BigBlueButton integrates Moodle, Wordpress, Canvas, Sakai, and others (see third-party integrations). +BigBlueButton comes with its own front-end called Greenlight. +When using a learning management system (LMS) such as Moodle, teachers can setup BigBlueButton rooms within their course and students can access the rooms and their recordings. + +The BigBlueButton comes with some simple API demos. Regardless of which front-end you use, they all use the API under the hood. + + +Redis PubSub. + +Redis PubSub provides a communication channel between different applications running on the BigBlueButton server. + + +Redis DB. + +When a meeting is recorded, all events are stored in Redis DB. +When the meeting ends, the Recording Processor will take all the recorded events as well as the different raw (PDF, WAV, FLV) files for processing. + + +Apps akka. + +BigBlueButton Apps is the main application that pulls together the different applications to provide real-time collaboration in the meeting. +It provides the list of users, chat, whiteboard, presentations in a meeting. +Below is a diagram of the different components of Apps Akka. +The meeting business logic is in the MeetingActor. +This is where information about the meeting is stored and where all messages for a meeting is processed. + + +FSESL akka. + +We have extracted out the component that integrates with FreeSWITCH into it’s own application. This allows others who are using voice conference systems other than FreeSWITCH to easily create their own integration. Communication between apps and FreeSWITCH Event Socket Layer (fsels) uses messages through redis pubsub. + + +FreeSWITCH. + +We think FreeSWITCH is an amazing piece of software for handling audio. +FreeSWITCH provides the voice conferencing capability in BigBlueButton. +Users are able to join the voice conference through the headset. +Users joining through Google Chrome or Mozilla Firefox are able to take advantage of higher quality audio by connecting using WebRTC. +FreeSWITCH can also be integrated with VOIP providers so that users who are not able to join using the headset will be able to call in using their phone. + + +Kurento and WebRTC-SFU. + +Kurento Media Server KMS is a media server that implements both SFU and MCU models. +KMS is responsible for streaming of webcams, listen-only audio, and screensharing. +The WebRTC-SFU acts as the media controller handling negotiations and to manage the media streams. + + +Joining a voice conference. + +A user can join the voice conference (running in FreeSWITCH) from the BigBlueButton HTML5 client or through the phone. +When joining through the client, the user can choose to join Microphone or Listen Only, and the BigBlueButton client will make an audio connection to the server via WebRTC. +WebRTC provides the user with high-quality audio with lower delay. + + +Uploading a presentation. + +Uploaded presentations go through a conversion process in order to be displayed inside the client. +When the uploaded presentation is an Office document, it needs to be converted into PDF using LibreOffice. +The PDF document is then converted into scalable vector graphics (SVG) via bbb-web. +The conversion process sends progress messages to the client through the Redis pubsub. + + +Presentation conversion flow. + +The diagram below describes the flow of the presentation conversion. +We take in consideration the configuration for enabling and disabling SWF, SVG and PNG conversion. +Then below the SVG conversion flow. It covers the conversion fallback. +Sometimes we detect that the generated SVG file is heavy to load by the browser, we use the fallback to put a rasterized image inside the SVG file and make its loading light for the browser. + + +Internal network connections. + +The following diagram shows how the various components of BigBlueButton connect to each other via sockets. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton_1SentPerLine.txt b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton_1SentPerLine.txt new file mode 100644 index 000000000..024f78701 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/bigbluebutton/text_2021/bigbluebutton_1SentPerLine.txt @@ -0,0 +1,85 @@ +High-level architecture. +The following diagram provides a high-level view of how BigBlueButton's components work together. +We'll break down each component in more detail below. +HTML5 client. +The HTML5 client is a single page, responsive web application that is built upon the following components: React.js for rendering the user interface in an efficient manner, WebRTC for sending/receiving audio and video. +The HTML5 client connects directly with the BigBlueButton server over port 443 (SSL), from loading the BigBlueButton client to making a web socket connection. +These connections are all handled by nginx. +The HTML5 server sits behind nginx. +The HTML5 server is built upon Meteor.js in ECMA2015 for communication between client and server and upon MongoDB for keeping the state of each BigBlueButton client consistent with the BigBlueButton server. +The MongoDB database contains information about all meetings on the server and, in turn, each client connected to a meeting. +Each user's client is only aware of the their meeting's state, such the user's public and private chat messages sent and received. +The client side subscribes to the published collections on the server side. +Updates to MongoDB on the server side are automatically pushed to MiniMongo on the client side. +The following diagram gives an overview of the architecture of the HTML5 client and its communications with the other components in BigBlueButton. +Scalability of HTML5 server component. +BigBlueButton 2.2 used a single nodejs process for all client-side communication. +This process would start to bottleneck (the nodejs process, running on a single CPU core, started to use 100% of the core). +Because nodejs was running on a single CPU core, having a 16 or 32 CPU core server for BigBlueButton 2.2 failed to yield much additional scalability. +BigBlueButton 2.3 moves away from a single nodejs process for bbb-html5 towards multiple nodejs processes handling incoming messages from clients. +This means that bbb-html5 could use multiple CPU cores for processing messages and handling browser sessions (each nodejs process runs on a single CPU core). +As of 2.3-alpha-7, bbb-html5 uses 2 "frontend" and two "backend" processes (this value is configurable in bbb-html5-with-roles.conf, see Configuration Files). +A restart of BigBlueButton is required if you make changes to these files. +The breakdown of functionality between front-end and back-end is as follows: Frontends receive the ValidateAuthTokenResp event to complete authentication. +Frontends collection subscription and publishing. +Frontends other DDP events including method calls to send events to akka-apps Frontends handle completely the Streamer redis events: Cursor, Annotations, External video share. +Frontends still require MeetingStarted and MeetingEnded events to create/destroy per-meeting event processing queues. +Backends handle all the non-streamer events. +If more than one backend is running, bbb-web splits the load in round-robin fashion by assigning an instanceId. +So individual backends only process redis events for the meetings matching the associated instanceId. +ValidateAuthTokenResp is passed to backends as well, which is needed for the cases where you only have a backend, no frontends - for example dev environments that do not need to care about scaling. +When you use sudo bbb-conf --setip or sudo bbb-conf --restart, bbb-conf will run /etc/bigbluebutton/bbb-conf/apply-config.sh between shutdown and restart of the BigBlueButton processes. +In this way, you can change configuration values of BigBlueButton, or use some of the helper functions in apply-lib.sh. +See "Automatically apply configuration changes on restart". +BBB web. +BigBlueButton web application is a Java-based application written in Scala. +It implements the BigBlueButton API and holds a copy of the meeting state. +The BigBlueButton API provides a third-party integration (such as the BigBlueButtonBN plugin for Moodle) with an endpoint to control the BigBlueButton server. +Every access to BigBlueButton comes through a front-end portal (we refer to as a third-party application). +BigBlueButton integrates Moodle, Wordpress, Canvas, Sakai, and others (see third-party integrations). +BigBlueButton comes with its own front-end called Greenlight. +When using a learning management system (LMS) such as Moodle, teachers can setup BigBlueButton rooms within their course and students can access the rooms and their recordings. +The BigBlueButton comes with some simple API demos. +Regardless of which front-end you use, they all use the API under the hood. +Redis PubSub. +Redis PubSub provides a communication channel between different applications running on the BigBlueButton server. +Redis DB. +When a meeting is recorded, all events are stored in Redis DB. +When the meeting ends, the Recording Processor will take all the recorded events as well as the different raw (PDF, WAV, FLV) files for processing. +Apps akka. +BigBlueButton Apps is the main application that pulls together the different applications to provide real-time collaboration in the meeting. +It provides the list of users, chat, whiteboard, presentations in a meeting. +Below is a diagram of the different components of Apps Akka. +The meeting business logic is in the MeetingActor. +This is where information about the meeting is stored and where all messages for a meeting is processed. +FSESL akka. +We have extracted out the component that integrates with FreeSWITCH into it’s own application. +This allows others who are using voice conference systems other than FreeSWITCH to easily create their own integration. +Communication between apps and FreeSWITCH Event Socket Layer (fsels) uses messages through redis pubsub. +FreeSWITCH. +We think FreeSWITCH is an amazing piece of software for handling audio. +FreeSWITCH provides the voice conferencing capability in BigBlueButton. +Users are able to join the voice conference through the headset. +Users joining through Google Chrome or Mozilla Firefox are able to take advantage of higher quality audio by connecting using WebRTC. +FreeSWITCH can also be integrated with VOIP providers so that users who are not able to join using the headset will be able to call in using their phone. +Kurento and WebRTC-SFU. +Kurento Media Server KMS is a media server that implements both SFU and MCU models. +KMS is responsible for streaming of webcams, listen-only audio, and screensharing. +The WebRTC-SFU acts as the media controller handling negotiations and to manage the media streams. +Joining a voice conference. +A user can join the voice conference (running in FreeSWITCH) from the BigBlueButton HTML5 client or through the phone. +When joining through the client, the user can choose to join Microphone or Listen Only, and the BigBlueButton client will make an audio connection to the server via WebRTC. +WebRTC provides the user with high-quality audio with lower delay. +Uploading a presentation. +Uploaded presentations go through a conversion process in order to be displayed inside the client. +When the uploaded presentation is an Office document, it needs to be converted into PDF using LibreOffice. +The PDF document is then converted into scalable vector graphics (SVG) via bbb-web. +The conversion process sends progress messages to the client through the Redis pubsub. +Presentation conversion flow. +The diagram below describes the flow of the presentation conversion. +We take in consideration the configuration for enabling and disabling SWF, SVG and PNG conversion. +Then below the SVG conversion flow. +It covers the conversion fallback. +Sometimes we detect that the generated SVG file is heavy to load by the browser, we use the fallback to put a rasterized image inside the SVG file and make its loading light for the browser. +Internal network connections. +The following diagram shows how the various components of BigBlueButton connect to each other via sockets. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/format_code_model.py b/tests-base/src/main/resources/benchmark/format_code_model.py new file mode 100644 index 000000000..04cb1dca4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/format_code_model.py @@ -0,0 +1,26 @@ +import os +import json + +def format_json_file(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + try: + json_content = json.load(file) + formatted_content = json.dumps(json_content, indent=2) + with open(file_path, 'w', encoding='utf-8') as output_file: + output_file.write(formatted_content) + print(f"Formatted: {file_path}") + except json.JSONDecodeError as e: + print(f"Error decoding JSON in {file_path}: {e}") + +def format_acm_files(directory): + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith('.acm'): + file_path = os.path.join(root, file) + format_json_file(file_path) + +# Use the current directory +directory_path = '.' + +# Call the function to format .acm files in the current directory +format_acm_files(directory_path) diff --git a/tests-base/src/main/resources/benchmark/jabref/README.md b/tests-base/src/main/resources/benchmark/jabref/README.md new file mode 100644 index 000000000..fe62bf9c2 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/README.md @@ -0,0 +1,20 @@ +# JabRef Statistics (cloc) +``` +------------------------------------------------------------------------------- +Language files blank comment code +------------------------------------------------------------------------------- +Java 1951 33377 20121 157288 +TeX 208 3174 484 14317 +XML 124 58 98 8999 +FXML 81 166 1 4642 +XSD 9 144 616 4562 +CSS 16 421 131 1634 +JSON 1 0 0 268 +SVG 1 8 1 112 +ANTLR Grammar 2 26 12 99 +YAML 2 0 0 33 +Bourne Shell 1 4 0 26 +------------------------------------------------------------------------------- +SUM: 2396 37378 21464 191980 +------------------------------------------------------------------------------- +``` diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv new file mode 100644 index 000000000..caa166ec4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv @@ -0,0 +1,10 @@ +modelElementID,sentence +_MFIzMEl4Ee243f2e4VWs6w,2 +_He3LoEl4Ee243f2e4VWs6w,2 +_Coy0kEl4Ee243f2e4VWs6w,2 +_MFIzMEl4Ee243f2e4VWs6w,5 +_He3LoEl4Ee243f2e4VWs6w,6 +_MFIzMEl4Ee243f2e4VWs6w,6 +_Coy0kEl4Ee243f2e4VWs6w,6 +_Coy0kEl4Ee243f2e4VWs6w,7 +_MFIzMEl4Ee243f2e4VWs6w,9 diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv new file mode 100644 index 000000000..ea3a6b821 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv @@ -0,0 +1,4 @@ +missingModelElementID +_EBiwMEl4Ee243f2e4VWs6w +_KsOfgEl4Ee243f2e4VWs6w +_NUdtEEl4Ee243f2e4VWs6w diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv new file mode 100644 index 000000000..6144ed423 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv @@ -0,0 +1,39 @@ +sentenceID,codeID +1,buildSrc/src/copied/java/org/jabref/logic/ +1,src/main/java/org/jabref/gui/ +1,src/main/java/org/jabref/logic/ +1,src/main/java/org/jabref/model/ +1,src/test/java/org/jabref/gui/ +1,src/test/java/org/jabref/logic/ +1,src/test/java/org/jabref/model/ +2,src/main/java/org/jabref/cli/ +2,src/main/java/org/jabref/preferences/ +2,src/test/java/org/jabref/cli/ +4,buildSrc/src/copied/java/org/jabref/logic/ +4,src/main/java/org/jabref/gui/ +4,src/main/java/org/jabref/logic/ +4,src/main/java/org/jabref/model/ +4,src/test/java/org/jabref/gui/ +4,src/test/java/org/jabref/logic/ +4,src/test/java/org/jabref/model/ +5,src/main/java/org/jabref/model/ +5,src/test/java/org/jabref/model/ +6,buildSrc/src/copied/java/org/jabref/logic/ +6,src/main/java/org/jabref/gui/ +6,src/main/java/org/jabref/logic/ +6,src/main/java/org/jabref/model/ +6,src/test/java/org/jabref/gui/ +6,src/test/java/org/jabref/logic/ +6,src/test/java/org/jabref/model/ +7,src/main/java/org/jabref/gui/ +7,src/test/java/org/jabref/gui/ +9,buildSrc/src/copied/java/org/jabref/logic/ +9,src/main/java/org/jabref/logic/ +9,src/main/java/org/jabref/model/ +9,src/test/java/org/jabref/logic/ +9,src/test/java/org/jabref/model/ +10,src/main/java/org/jabref/cli/ +10,src/test/java/org/jabref/cli/ +11,src/main/java/org/jabref/preferences/ +12,src/main/java/org/jabref/model/ +12,src/test/java/org/jabref/model/ diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv new file mode 100644 index 000000000..0455ff542 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv @@ -0,0 +1,19 @@ +modelElementID,sentence +_MFIzMEl4Ee243f2e4VWs6w,1 +_He3LoEl4Ee243f2e4VWs6w,1 +_Coy0kEl4Ee243f2e4VWs6w,1 +_NUdtEEl4Ee243f2e4VWs6w,2 +_EBiwMEl4Ee243f2e4VWs6w,2 +_He3LoEl4Ee243f2e4VWs6w,4 +_MFIzMEl4Ee243f2e4VWs6w,4 +_Coy0kEl4Ee243f2e4VWs6w,4 +_MFIzMEl4Ee243f2e4VWs6w,5 +_He3LoEl4Ee243f2e4VWs6w,6 +_MFIzMEl4Ee243f2e4VWs6w,6 +_Coy0kEl4Ee243f2e4VWs6w,6 +_Coy0kEl4Ee243f2e4VWs6w,7 +_MFIzMEl4Ee243f2e4VWs6w,9 +_He3LoEl4Ee243f2e4VWs6w,9 +_EBiwMEl4Ee243f2e4VWs6w,10 +_NUdtEEl4Ee243f2e4VWs6w,11 +_MFIzMEl4Ee243f2e4VWs6w,12 diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv new file mode 100644 index 000000000..e22fdbe87 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv @@ -0,0 +1,2 @@ +missingModelElementID +_KsOfgEl4Ee243f2e4VWs6w diff --git a/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv new file mode 100644 index 000000000..594e84011 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv @@ -0,0 +1,12 @@ +ae_id,ae_name,ce_ids +_Coy0kEl4Ee243f2e4VWs6w,Component: gui,src/main/java/org/jabref/gui/ +_Coy0kEl4Ee243f2e4VWs6w,Component: gui,src/test/java/org/jabref/gui/ +_EBiwMEl4Ee243f2e4VWs6w,Component: cli,src/main/java/org/jabref/cli/ +_EBiwMEl4Ee243f2e4VWs6w,Component: cli,src/test/java/org/jabref/cli/ +_He3LoEl4Ee243f2e4VWs6w,Component: logic,src/main/java/org/jabref/logic/ +_He3LoEl4Ee243f2e4VWs6w,Component: logic,src/test/java/org/jabref/logic/ +_He3LoEl4Ee243f2e4VWs6w,Component: logic,buildSrc/src/copied/java/org/jabref/logic/ +_KsOfgEl4Ee243f2e4VWs6w,Component: globals,src/main/java/org/jabref/gui/Globals.java +_MFIzMEl4Ee243f2e4VWs6w,Component: model,src/main/java/org/jabref/model/ +_MFIzMEl4Ee243f2e4VWs6w,Component: model,src/test/java/org/jabref/model/ +_NUdtEEl4Ee243f2e4VWs6w,Component: preferences,src/main/java/org/jabref/preferences/ diff --git a/tests-base/src/main/resources/benchmark/jabref/model_2021/pcm/jabref.repository b/tests-base/src/main/resources/benchmark/jabref/model_2021/pcm/jabref.repository new file mode 100644 index 000000000..480e20555 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/model_2021/pcm/jabref.repository @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/jabref/model_2021/uml/jabref.uml b/tests-base/src/main/resources/benchmark/jabref/model_2021/uml/jabref.uml new file mode 100644 index 000000000..1e029ea4b --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/model_2021/uml/jabref.uml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/jabref/model_2023/code/README.md b/tests-base/src/main/resources/benchmark/jabref/model_2023/code/README.md new file mode 100644 index 000000000..3e207262e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/model_2023/code/README.md @@ -0,0 +1,2 @@ +# JabRef Code Model +The code that was used is located at https://github.com/ArDoCo/jabref/commit/6269698cae437610ec79c38e6dd611eef7e88afe diff --git a/tests-base/src/main/resources/benchmark/jabref/model_2023/code/codeModel.acm b/tests-base/src/main/resources/benchmark/jabref/model_2023/code/codeModel.acm new file mode 100644 index 000000000..61ae8396c --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/model_2023/code/codeModel.acm @@ -0,0 +1,180175 @@ +{ + "id" : "acm029305jsd", + "codeItemRepository" : { + "repository" : { + "acm001337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001337jsd", + "name" : "Abbreviation", + "parentId" : "acm001341jsd", + "content" : [ "acm001355jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001338jsd" : { + "type" : "CodePackage", + "id" : "acm001338jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001339jsd" ] + }, + "acm001339jsd" : { + "type" : "CodePackage", + "id" : "acm001339jsd", + "name" : "jabref", + "parentId" : "acm001338jsd", + "content" : [ "acm021293jsd", "acm001340jsd", "acm001428jsd", "acm001446jsd", "acm001466jsd", "acm001569jsd", "acm017785jsd", "acm017861jsd", "acm020753jsd", "acm029239jsd", "acm029246jsd", "acm029257jsd" ] + }, + "acm001340jsd" : { + "type" : "CodePackage", + "id" : "acm001340jsd", + "name" : "logic", + "parentId" : "acm001339jsd", + "content" : [ "acm010356jsd", "acm010367jsd", "acm010376jsd", "acm022247jsd", "acm001341jsd", "acm010386jsd", "acm010422jsd", "acm010463jsd", "acm010673jsd", "acm010873jsd", "acm011016jsd", "acm011112jsd", "acm011280jsd", "acm011350jsd", "acm011391jsd", "acm011702jsd", "acm011725jsd", "acm012220jsd", "acm012247jsd", "acm012255jsd", "acm012263jsd", "acm014499jsd", "acm014898jsd", "acm014967jsd", "acm015732jsd", "acm015743jsd", "acm015837jsd", "acm015977jsd", "acm016468jsd", "acm016586jsd", "acm016646jsd", "acm016656jsd", "acm016721jsd", "acm016815jsd", "acm016854jsd", "acm017210jsd", "acm017243jsd", "acm017268jsd", "acm017682jsd" ] + }, + "acm001341jsd" : { + "type" : "CodePackage", + "id" : "acm001341jsd", + "name" : "journals", + "parentId" : "acm001340jsd", + "content" : [ "acm001337jsd", "acm001356jsd", "acm001364jsd", "acm001375jsd", "acm001383jsd", "acm001392jsd", "acm001404jsd", "acm014806jsd", "acm014825jsd", "acm014833jsd", "acm014844jsd", "acm014852jsd", "acm014861jsd", "acm014873jsd", "acm026305jsd", "acm026324jsd", "acm026332jsd", "acm026341jsd" ] + }, + "acm001342jsd" : { + "type" : "ControlElement", + "id" : "acm001342jsd", + "name" : "Abbreviation" + }, + "acm001343jsd" : { + "type" : "ControlElement", + "id" : "acm001343jsd", + "name" : "Abbreviation" + }, + "acm001344jsd" : { + "type" : "ControlElement", + "id" : "acm001344jsd", + "name" : "Abbreviation" + }, + "acm001345jsd" : { + "type" : "ControlElement", + "id" : "acm001345jsd", + "name" : "getName" + }, + "acm001346jsd" : { + "type" : "ControlElement", + "id" : "acm001346jsd", + "name" : "getAbbreviation" + }, + "acm001347jsd" : { + "type" : "ControlElement", + "id" : "acm001347jsd", + "name" : "getShortestUniqueAbbreviation" + }, + "acm001348jsd" : { + "type" : "ControlElement", + "id" : "acm001348jsd", + "name" : "isDefaultShortestUniqueAbbreviation" + }, + "acm001349jsd" : { + "type" : "ControlElement", + "id" : "acm001349jsd", + "name" : "getDotlessAbbreviation" + }, + "acm001350jsd" : { + "type" : "ControlElement", + "id" : "acm001350jsd", + "name" : "compareTo" + }, + "acm001351jsd" : { + "type" : "ControlElement", + "id" : "acm001351jsd", + "name" : "getNext" + }, + "acm001352jsd" : { + "type" : "ControlElement", + "id" : "acm001352jsd", + "name" : "toString" + }, + "acm001353jsd" : { + "type" : "ControlElement", + "id" : "acm001353jsd", + "name" : "equals" + }, + "acm001354jsd" : { + "type" : "ControlElement", + "id" : "acm001354jsd", + "name" : "hashCode" + }, + "acm001355jsd" : { + "type" : "ClassUnit", + "id" : "acm001355jsd", + "name" : "Abbreviation", + "compilationUnitId" : "acm001337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd" ], + "content" : [ "acm001342jsd", "acm001343jsd", "acm001344jsd", "acm001345jsd", "acm001346jsd", "acm001347jsd", "acm001348jsd", "acm001349jsd", "acm001350jsd", "acm001351jsd", "acm001352jsd", "acm001353jsd", "acm001354jsd" ] + }, + "acm001356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001356jsd", + "name" : "AbbreviationFormat", + "parentId" : "acm001341jsd", + "content" : [ "acm001363jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001357jsd" : { + "type" : "CodePackage", + "id" : "acm001357jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001358jsd" ] + }, + "acm001358jsd" : { + "type" : "CodePackage", + "id" : "acm001358jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001359jsd" ] + }, + "acm001359jsd" : { + "type" : "CodePackage", + "id" : "acm001359jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001360jsd" ] + }, + "acm001360jsd" : { + "type" : "CodePackage", + "id" : "acm001360jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001356jsd" ] + }, + "acm001361jsd" : { + "type" : "ControlElement", + "id" : "acm001361jsd", + "name" : "AbbreviationFormat" + }, + "acm001362jsd" : { + "type" : "ControlElement", + "id" : "acm001362jsd", + "name" : "getCSVFormat" + }, + "acm001363jsd" : { + "type" : "ClassUnit", + "id" : "acm001363jsd", + "name" : "AbbreviationFormat", + "compilationUnitId" : "acm001356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001361jsd", "acm001362jsd" ] + }, + "acm001364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001364jsd", + "name" : "AbbreviationParser", + "parentId" : "acm001341jsd", + "content" : [ "acm001374jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001365jsd" : { + "type" : "CodePackage", + "id" : "acm001365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001366jsd" ] + }, + "acm001366jsd" : { + "type" : "CodePackage", + "id" : "acm001366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001367jsd" ] + }, + "acm001367jsd" : { + "type" : "CodePackage", + "id" : "acm001367jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001368jsd" ] + }, + "acm001368jsd" : { + "type" : "CodePackage", + "id" : "acm001368jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001364jsd" ] + }, + "acm001369jsd" : { + "type" : "ControlElement", + "id" : "acm001369jsd", + "name" : "readJournalListFromResource" + }, + "acm001370jsd" : { + "type" : "ControlElement", + "id" : "acm001370jsd", + "name" : "readJournalListFromFile" + }, + "acm001371jsd" : { + "type" : "ControlElement", + "id" : "acm001371jsd", + "name" : "readJournalListFromFile" + }, + "acm001372jsd" : { + "type" : "ControlElement", + "id" : "acm001372jsd", + "name" : "readJournalList" + }, + "acm001373jsd" : { + "type" : "ControlElement", + "id" : "acm001373jsd", + "name" : "getAbbreviations" + }, + "acm001374jsd" : { + "type" : "ClassUnit", + "id" : "acm001374jsd", + "name" : "AbbreviationParser", + "compilationUnitId" : "acm001364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001374jsd", "acm001424jsd" ], + "content" : [ "acm001369jsd", "acm001370jsd", "acm001371jsd", "acm001372jsd", "acm001373jsd" ] + }, + "acm001375jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001375jsd", + "name" : "AbbreviationWriter", + "parentId" : "acm001341jsd", + "content" : [ "acm001382jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001376jsd" : { + "type" : "CodePackage", + "id" : "acm001376jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001377jsd" ] + }, + "acm001377jsd" : { + "type" : "CodePackage", + "id" : "acm001377jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001378jsd" ] + }, + "acm001378jsd" : { + "type" : "CodePackage", + "id" : "acm001378jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001379jsd" ] + }, + "acm001379jsd" : { + "type" : "CodePackage", + "id" : "acm001379jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001375jsd" ] + }, + "acm001380jsd" : { + "type" : "ControlElement", + "id" : "acm001380jsd", + "name" : "AbbreviationWriter" + }, + "acm001381jsd" : { + "type" : "ControlElement", + "id" : "acm001381jsd", + "name" : "writeOrCreate" + }, + "acm001382jsd" : { + "type" : "ClassUnit", + "id" : "acm001382jsd", + "name" : "AbbreviationWriter", + "compilationUnitId" : "acm001375jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd" ], + "content" : [ "acm001380jsd", "acm001381jsd" ] + }, + "acm001383jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001383jsd", + "name" : "JournalAbbreviationLoader", + "parentId" : "acm001341jsd", + "content" : [ "acm001391jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001384jsd" : { + "type" : "CodePackage", + "id" : "acm001384jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001385jsd" ] + }, + "acm001385jsd" : { + "type" : "CodePackage", + "id" : "acm001385jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001386jsd" ] + }, + "acm001386jsd" : { + "type" : "CodePackage", + "id" : "acm001386jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001387jsd" ] + }, + "acm001387jsd" : { + "type" : "CodePackage", + "id" : "acm001387jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001383jsd" ] + }, + "acm001388jsd" : { + "type" : "ControlElement", + "id" : "acm001388jsd", + "name" : "readJournalListFromFile" + }, + "acm001389jsd" : { + "type" : "ControlElement", + "id" : "acm001389jsd", + "name" : "loadRepository" + }, + "acm001390jsd" : { + "type" : "ControlElement", + "id" : "acm001390jsd", + "name" : "loadBuiltInRepository" + }, + "acm001391jsd" : { + "type" : "ClassUnit", + "id" : "acm001391jsd", + "name" : "JournalAbbreviationLoader", + "compilationUnitId" : "acm001383jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001374jsd", "acm001391jsd", "acm001403jsd", "acm001424jsd" ], + "content" : [ "acm001388jsd", "acm001389jsd", "acm001390jsd" ] + }, + "acm001392jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001392jsd", + "name" : "JournalAbbreviationPreferences", + "parentId" : "acm001341jsd", + "content" : [ "acm001403jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001393jsd" : { + "type" : "CodePackage", + "id" : "acm001393jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001394jsd" ] + }, + "acm001394jsd" : { + "type" : "CodePackage", + "id" : "acm001394jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001395jsd" ] + }, + "acm001395jsd" : { + "type" : "CodePackage", + "id" : "acm001395jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001396jsd" ] + }, + "acm001396jsd" : { + "type" : "CodePackage", + "id" : "acm001396jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001392jsd" ] + }, + "acm001397jsd" : { + "type" : "ControlElement", + "id" : "acm001397jsd", + "name" : "JournalAbbreviationPreferences" + }, + "acm001398jsd" : { + "type" : "ControlElement", + "id" : "acm001398jsd", + "name" : "getExternalJournalLists" + }, + "acm001399jsd" : { + "type" : "ControlElement", + "id" : "acm001399jsd", + "name" : "setExternalJournalLists" + }, + "acm001400jsd" : { + "type" : "ControlElement", + "id" : "acm001400jsd", + "name" : "getDefaultEncoding" + }, + "acm001401jsd" : { + "type" : "ControlElement", + "id" : "acm001401jsd", + "name" : "useAMSFJournalFieldForAbbrevAndUnabbrev" + }, + "acm001402jsd" : { + "type" : "ControlElement", + "id" : "acm001402jsd", + "name" : "setUseAMSFJournalFieldForAbbrevAndUnabbrev" + }, + "acm001403jsd" : { + "type" : "ClassUnit", + "id" : "acm001403jsd", + "name" : "JournalAbbreviationPreferences", + "compilationUnitId" : "acm001392jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001397jsd", "acm001398jsd", "acm001399jsd", "acm001400jsd", "acm001401jsd", "acm001402jsd" ] + }, + "acm001404jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001404jsd", + "name" : "JournalAbbreviationRepository", + "parentId" : "acm001341jsd", + "content" : [ "acm001424jsd" ], + "pathElements" : [ "buildSrc", "src", "copied", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001405jsd" : { + "type" : "CodePackage", + "id" : "acm001405jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001406jsd" ] + }, + "acm001406jsd" : { + "type" : "CodePackage", + "id" : "acm001406jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001407jsd" ] + }, + "acm001407jsd" : { + "type" : "CodePackage", + "id" : "acm001407jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm001408jsd" ] + }, + "acm001408jsd" : { + "type" : "CodePackage", + "id" : "acm001408jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm001404jsd" ] + }, + "acm001409jsd" : { + "type" : "ControlElement", + "id" : "acm001409jsd", + "name" : "JournalAbbreviationRepository" + }, + "acm001410jsd" : { + "type" : "ControlElement", + "id" : "acm001410jsd", + "name" : "isMatched" + }, + "acm001411jsd" : { + "type" : "ControlElement", + "id" : "acm001411jsd", + "name" : "isMatchedAbbreviated" + }, + "acm001412jsd" : { + "type" : "ControlElement", + "id" : "acm001412jsd", + "name" : "isKnownName" + }, + "acm001413jsd" : { + "type" : "ControlElement", + "id" : "acm001413jsd", + "name" : "isAbbreviatedName" + }, + "acm001414jsd" : { + "type" : "ControlElement", + "id" : "acm001414jsd", + "name" : "get" + }, + "acm001415jsd" : { + "type" : "ControlElement", + "id" : "acm001415jsd", + "name" : "addCustomAbbreviation" + }, + "acm001416jsd" : { + "type" : "ControlElement", + "id" : "acm001416jsd", + "name" : "getCustomAbbreviations" + }, + "acm001417jsd" : { + "type" : "ControlElement", + "id" : "acm001417jsd", + "name" : "addCustomAbbreviations" + }, + "acm001418jsd" : { + "type" : "ControlElement", + "id" : "acm001418jsd", + "name" : "getNextAbbreviation" + }, + "acm001419jsd" : { + "type" : "ControlElement", + "id" : "acm001419jsd", + "name" : "getDefaultAbbreviation" + }, + "acm001420jsd" : { + "type" : "ControlElement", + "id" : "acm001420jsd", + "name" : "getDotless" + }, + "acm001421jsd" : { + "type" : "ControlElement", + "id" : "acm001421jsd", + "name" : "getShortestUniqueAbbreviation" + }, + "acm001422jsd" : { + "type" : "ControlElement", + "id" : "acm001422jsd", + "name" : "getFullNames" + }, + "acm001423jsd" : { + "type" : "ControlElement", + "id" : "acm001423jsd", + "name" : "getAllLoaded" + }, + "acm001424jsd" : { + "type" : "ClassUnit", + "id" : "acm001424jsd", + "name" : "JournalAbbreviationRepository", + "compilationUnitId" : "acm001404jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd" ], + "content" : [ "acm001409jsd", "acm001410jsd", "acm001411jsd", "acm001412jsd", "acm001413jsd", "acm001414jsd", "acm001415jsd", "acm001416jsd", "acm001417jsd", "acm001418jsd", "acm001419jsd", "acm001420jsd", "acm001421jsd", "acm001422jsd", "acm001423jsd" ] + }, + "acm001425jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001425jsd", + "name" : "Benchmarks", + "parentId" : "acm001428jsd", + "content" : [ "acm001441jsd" ], + "pathElements" : [ "src", "jmh", "java", "org", "jabref", "benchmarks" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001426jsd" : { + "type" : "CodePackage", + "id" : "acm001426jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001427jsd" ] + }, + "acm001427jsd" : { + "type" : "CodePackage", + "id" : "acm001427jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001428jsd" ] + }, + "acm001428jsd" : { + "type" : "CodePackage", + "id" : "acm001428jsd", + "name" : "benchmarks", + "parentId" : "acm001339jsd", + "content" : [ "acm001425jsd" ] + }, + "acm001429jsd" : { + "type" : "ControlElement", + "id" : "acm001429jsd", + "name" : "init" + }, + "acm001430jsd" : { + "type" : "ControlElement", + "id" : "acm001430jsd", + "name" : "getOutputWriter" + }, + "acm001431jsd" : { + "type" : "ControlElement", + "id" : "acm001431jsd", + "name" : "parse" + }, + "acm001432jsd" : { + "type" : "ControlElement", + "id" : "acm001432jsd", + "name" : "write" + }, + "acm001433jsd" : { + "type" : "ControlElement", + "id" : "acm001433jsd", + "name" : "search" + }, + "acm001434jsd" : { + "type" : "ControlElement", + "id" : "acm001434jsd", + "name" : "parallelSearch" + }, + "acm001435jsd" : { + "type" : "ControlElement", + "id" : "acm001435jsd", + "name" : "inferBibDatabaseMode" + }, + "acm001436jsd" : { + "type" : "ControlElement", + "id" : "acm001436jsd", + "name" : "latexToUnicodeConversion" + }, + "acm001437jsd" : { + "type" : "ControlElement", + "id" : "acm001437jsd", + "name" : "latexToHTMLConversion" + }, + "acm001438jsd" : { + "type" : "ControlElement", + "id" : "acm001438jsd", + "name" : "htmlToLatexConversion" + }, + "acm001439jsd" : { + "type" : "ControlElement", + "id" : "acm001439jsd", + "name" : "keywordGroupContains" + }, + "acm001440jsd" : { + "type" : "ControlElement", + "id" : "acm001440jsd", + "name" : "main" + }, + "acm001441jsd" : { + "type" : "ClassUnit", + "id" : "acm001441jsd", + "name" : "Benchmarks", + "compilationUnitId" : "acm001425jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm010993jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm011828jsd", "acm012556jsd", "acm013761jsd", "acm015427jsd", "acm015489jsd", "acm016845jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd", "acm018813jsd", "acm019234jsd", "acm019315jsd", "acm019421jsd", "acm020473jsd", "acm020676jsd" ], + "content" : [ "acm001429jsd", "acm001430jsd", "acm001431jsd", "acm001432jsd", "acm001433jsd", "acm001434jsd", "acm001435jsd", "acm001436jsd", "acm001437jsd", "acm001438jsd", "acm001439jsd", "acm001440jsd" ] + }, + "acm001442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001442jsd", + "name" : "module-info", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "src", "main", "java" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001443jsd", + "name" : "AllowedToUseAwt", + "parentId" : "acm001446jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001444jsd" : { + "type" : "CodePackage", + "id" : "acm001444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001445jsd" ] + }, + "acm001445jsd" : { + "type" : "CodePackage", + "id" : "acm001445jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001446jsd" ] + }, + "acm001446jsd" : { + "type" : "CodePackage", + "id" : "acm001446jsd", + "name" : "architecture", + "parentId" : "acm001339jsd", + "content" : [ "acm001443jsd", "acm001447jsd", "acm001451jsd", "acm001455jsd", "acm001459jsd", "acm021298jsd", "acm021313jsd" ] + }, + "acm001447jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001447jsd", + "name" : "AllowedToUseLogic", + "parentId" : "acm001446jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001448jsd" : { + "type" : "CodePackage", + "id" : "acm001448jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001449jsd" ] + }, + "acm001449jsd" : { + "type" : "CodePackage", + "id" : "acm001449jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001450jsd" ] + }, + "acm001450jsd" : { + "type" : "CodePackage", + "id" : "acm001450jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm001447jsd" ] + }, + "acm001451jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001451jsd", + "name" : "AllowedToUseStandardStreams", + "parentId" : "acm001446jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001452jsd" : { + "type" : "CodePackage", + "id" : "acm001452jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001453jsd" ] + }, + "acm001453jsd" : { + "type" : "CodePackage", + "id" : "acm001453jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001454jsd" ] + }, + "acm001454jsd" : { + "type" : "CodePackage", + "id" : "acm001454jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm001451jsd" ] + }, + "acm001455jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001455jsd", + "name" : "AllowedToUseSwing", + "parentId" : "acm001446jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001456jsd" : { + "type" : "CodePackage", + "id" : "acm001456jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001457jsd" ] + }, + "acm001457jsd" : { + "type" : "CodePackage", + "id" : "acm001457jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001458jsd" ] + }, + "acm001458jsd" : { + "type" : "CodePackage", + "id" : "acm001458jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm001455jsd" ] + }, + "acm001459jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001459jsd", + "name" : "ApacheCommonsLang3Allowed", + "parentId" : "acm001446jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001460jsd" : { + "type" : "CodePackage", + "id" : "acm001460jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001461jsd" ] + }, + "acm001461jsd" : { + "type" : "CodePackage", + "id" : "acm001461jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001462jsd" ] + }, + "acm001462jsd" : { + "type" : "CodePackage", + "id" : "acm001462jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm001459jsd" ] + }, + "acm001463jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001463jsd", + "name" : "ArgumentProcessor", + "parentId" : "acm001466jsd", + "content" : [ "acm001492jsd", "acm001493jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001464jsd" : { + "type" : "CodePackage", + "id" : "acm001464jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001465jsd" ] + }, + "acm001465jsd" : { + "type" : "CodePackage", + "id" : "acm001465jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001466jsd" ] + }, + "acm001466jsd" : { + "type" : "CodePackage", + "id" : "acm001466jsd", + "name" : "cli", + "parentId" : "acm001339jsd", + "content" : [ "acm001463jsd", "acm001494jsd", "acm001501jsd", "acm001545jsd", "acm001558jsd", "acm021320jsd", "acm021328jsd", "acm021335jsd" ] + }, + "acm001467jsd" : { + "type" : "ControlElement", + "id" : "acm001467jsd", + "name" : "ArgumentProcessor" + }, + "acm001468jsd" : { + "type" : "ControlElement", + "id" : "acm001468jsd", + "name" : "importToOpenBase" + }, + "acm001469jsd" : { + "type" : "ControlElement", + "id" : "acm001469jsd", + "name" : "importBibtexToOpenBase" + }, + "acm001470jsd" : { + "type" : "ControlElement", + "id" : "acm001470jsd", + "name" : "importFile" + }, + "acm001471jsd" : { + "type" : "ControlElement", + "id" : "acm001471jsd", + "name" : "importFile" + }, + "acm001472jsd" : { + "type" : "ControlElement", + "id" : "acm001472jsd", + "name" : "getParserResults" + }, + "acm001473jsd" : { + "type" : "ControlElement", + "id" : "acm001473jsd", + "name" : "hasParserResults" + }, + "acm001474jsd" : { + "type" : "ControlElement", + "id" : "acm001474jsd", + "name" : "processArguments" + }, + "acm001475jsd" : { + "type" : "ControlElement", + "id" : "acm001475jsd", + "name" : "writeMetadatatoPdf" + }, + "acm001476jsd" : { + "type" : "ControlElement", + "id" : "acm001476jsd", + "name" : "writeMetadatatoPDFsOfEntry" + }, + "acm001477jsd" : { + "type" : "ControlElement", + "id" : "acm001477jsd", + "name" : "writeMetadatatoPdfByCitekey" + }, + "acm001478jsd" : { + "type" : "ControlElement", + "id" : "acm001478jsd", + "name" : "writeMetadatatoPdfByFileNames" + }, + "acm001479jsd" : { + "type" : "ControlElement", + "id" : "acm001479jsd", + "name" : "exportMatches" + }, + "acm001480jsd" : { + "type" : "ControlElement", + "id" : "acm001480jsd", + "name" : "doAuxImport" + }, + "acm001481jsd" : { + "type" : "ControlElement", + "id" : "acm001481jsd", + "name" : "importAndOpenFiles" + }, + "acm001482jsd" : { + "type" : "ControlElement", + "id" : "acm001482jsd", + "name" : "generateAux" + }, + "acm001483jsd" : { + "type" : "ControlElement", + "id" : "acm001483jsd", + "name" : "saveDatabase" + }, + "acm001484jsd" : { + "type" : "ControlElement", + "id" : "acm001484jsd", + "name" : "exportFile" + }, + "acm001485jsd" : { + "type" : "ControlElement", + "id" : "acm001485jsd", + "name" : "importPreferences" + }, + "acm001486jsd" : { + "type" : "ControlElement", + "id" : "acm001486jsd", + "name" : "resetPreferences" + }, + "acm001487jsd" : { + "type" : "ControlElement", + "id" : "acm001487jsd", + "name" : "automaticallySetFileLinks" + }, + "acm001488jsd" : { + "type" : "ControlElement", + "id" : "acm001488jsd", + "name" : "regenerateCitationKeys" + }, + "acm001489jsd" : { + "type" : "ControlElement", + "id" : "acm001489jsd", + "name" : "fetch" + }, + "acm001490jsd" : { + "type" : "ControlElement", + "id" : "acm001490jsd", + "name" : "isBlank" + }, + "acm001491jsd" : { + "type" : "ControlElement", + "id" : "acm001491jsd", + "name" : "shouldShutDown" + }, + "acm001492jsd" : { + "type" : "ClassUnit", + "id" : "acm001492jsd", + "name" : "ArgumentProcessor", + "compilationUnitId" : "acm001463jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001492jsd", "acm001493jsd", "acm001500jsd", "acm001544jsd", "acm004089jsd", "acm009381jsd", "acm010366jsd", "acm010497jsd", "acm010959jsd", "acm011415jsd", "acm011443jsd", "acm011455jsd", "acm011471jsd", "acm011487jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm011697jsd", "acm012314jsd", "acm012407jsd", "acm012430jsd", "acm012515jsd", "acm012556jsd", "acm012571jsd", "acm013761jsd", "acm015926jsd", "acm016818jsd", "acm016845jsd", "acm017193jsd", "acm017745jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd", "acm020676jsd", "acm020848jsd", "acm021206jsd", "acm021267jsd" ], + "content" : [ "acm001467jsd", "acm001468jsd", "acm001469jsd", "acm001470jsd", "acm001471jsd", "acm001472jsd", "acm001473jsd", "acm001474jsd", "acm001475jsd", "acm001476jsd", "acm001477jsd", "acm001478jsd", "acm001479jsd", "acm001480jsd", "acm001481jsd", "acm001482jsd", "acm001483jsd", "acm001484jsd", "acm001485jsd", "acm001486jsd", "acm001487jsd", "acm001488jsd", "acm001489jsd", "acm001490jsd", "acm001491jsd" ] + }, + "acm001493jsd" : { + "type" : "ClassUnit", + "id" : "acm001493jsd", + "name" : "Mode", + "compilationUnitId" : "acm001463jsd", + "parentDatatypeId" : "acm001492jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001494jsd", + "name" : "AuxCommandLine", + "parentId" : "acm001466jsd", + "content" : [ "acm001500jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001495jsd" : { + "type" : "CodePackage", + "id" : "acm001495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001496jsd" ] + }, + "acm001496jsd" : { + "type" : "CodePackage", + "id" : "acm001496jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001497jsd" ] + }, + "acm001497jsd" : { + "type" : "CodePackage", + "id" : "acm001497jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm001494jsd" ] + }, + "acm001498jsd" : { + "type" : "ControlElement", + "id" : "acm001498jsd", + "name" : "AuxCommandLine" + }, + "acm001499jsd" : { + "type" : "ControlElement", + "id" : "acm001499jsd", + "name" : "perform" + }, + "acm001500jsd" : { + "type" : "ClassUnit", + "id" : "acm001500jsd", + "name" : "AuxCommandLine", + "compilationUnitId" : "acm001494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002354jsd", "acm010424jsd", "acm010444jsd", "acm010458jsd", "acm017988jsd" ], + "content" : [ "acm001498jsd", "acm001499jsd" ] + }, + "acm001501jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001501jsd", + "name" : "JabRefCLI", + "parentId" : "acm001466jsd", + "content" : [ "acm001544jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001502jsd" : { + "type" : "CodePackage", + "id" : "acm001502jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001503jsd" ] + }, + "acm001503jsd" : { + "type" : "CodePackage", + "id" : "acm001503jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001504jsd" ] + }, + "acm001504jsd" : { + "type" : "CodePackage", + "id" : "acm001504jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm001501jsd" ] + }, + "acm001505jsd" : { + "type" : "ControlElement", + "id" : "acm001505jsd", + "name" : "JabRefCLI" + }, + "acm001506jsd" : { + "type" : "ControlElement", + "id" : "acm001506jsd", + "name" : "getExportMatchesSyntax" + }, + "acm001507jsd" : { + "type" : "ControlElement", + "id" : "acm001507jsd", + "name" : "isHelp" + }, + "acm001508jsd" : { + "type" : "ControlElement", + "id" : "acm001508jsd", + "name" : "isShowVersion" + }, + "acm001509jsd" : { + "type" : "ControlElement", + "id" : "acm001509jsd", + "name" : "isBlank" + }, + "acm001510jsd" : { + "type" : "ControlElement", + "id" : "acm001510jsd", + "name" : "isDisableGui" + }, + "acm001511jsd" : { + "type" : "ControlElement", + "id" : "acm001511jsd", + "name" : "isPreferencesExport" + }, + "acm001512jsd" : { + "type" : "ControlElement", + "id" : "acm001512jsd", + "name" : "getPreferencesExport" + }, + "acm001513jsd" : { + "type" : "ControlElement", + "id" : "acm001513jsd", + "name" : "isPreferencesImport" + }, + "acm001514jsd" : { + "type" : "ControlElement", + "id" : "acm001514jsd", + "name" : "getPreferencesImport" + }, + "acm001515jsd" : { + "type" : "ControlElement", + "id" : "acm001515jsd", + "name" : "isPreferencesReset" + }, + "acm001516jsd" : { + "type" : "ControlElement", + "id" : "acm001516jsd", + "name" : "getPreferencesReset" + }, + "acm001517jsd" : { + "type" : "ControlElement", + "id" : "acm001517jsd", + "name" : "isFileExport" + }, + "acm001518jsd" : { + "type" : "ControlElement", + "id" : "acm001518jsd", + "name" : "getFileExport" + }, + "acm001519jsd" : { + "type" : "ControlElement", + "id" : "acm001519jsd", + "name" : "isBibtexImport" + }, + "acm001520jsd" : { + "type" : "ControlElement", + "id" : "acm001520jsd", + "name" : "getBibtexImport" + }, + "acm001521jsd" : { + "type" : "ControlElement", + "id" : "acm001521jsd", + "name" : "isFileImport" + }, + "acm001522jsd" : { + "type" : "ControlElement", + "id" : "acm001522jsd", + "name" : "getFileImport" + }, + "acm001523jsd" : { + "type" : "ControlElement", + "id" : "acm001523jsd", + "name" : "isAuxImport" + }, + "acm001524jsd" : { + "type" : "ControlElement", + "id" : "acm001524jsd", + "name" : "getAuxImport" + }, + "acm001525jsd" : { + "type" : "ControlElement", + "id" : "acm001525jsd", + "name" : "isImportToOpenBase" + }, + "acm001526jsd" : { + "type" : "ControlElement", + "id" : "acm001526jsd", + "name" : "getImportToOpenBase" + }, + "acm001527jsd" : { + "type" : "ControlElement", + "id" : "acm001527jsd", + "name" : "isDebugLogging" + }, + "acm001528jsd" : { + "type" : "ControlElement", + "id" : "acm001528jsd", + "name" : "isFetcherEngine" + }, + "acm001529jsd" : { + "type" : "ControlElement", + "id" : "acm001529jsd", + "name" : "getFetcherEngine" + }, + "acm001530jsd" : { + "type" : "ControlElement", + "id" : "acm001530jsd", + "name" : "isExportMatches" + }, + "acm001531jsd" : { + "type" : "ControlElement", + "id" : "acm001531jsd", + "name" : "getExportMatches" + }, + "acm001532jsd" : { + "type" : "ControlElement", + "id" : "acm001532jsd", + "name" : "isGenerateCitationKeys" + }, + "acm001533jsd" : { + "type" : "ControlElement", + "id" : "acm001533jsd", + "name" : "isAutomaticallySetFileLinks" + }, + "acm001534jsd" : { + "type" : "ControlElement", + "id" : "acm001534jsd", + "name" : "isWriteXMPtoPdf" + }, + "acm001535jsd" : { + "type" : "ControlElement", + "id" : "acm001535jsd", + "name" : "isEmbeddBibfileInPdf" + }, + "acm001536jsd" : { + "type" : "ControlElement", + "id" : "acm001536jsd", + "name" : "isWriteMetadatatoPdf" + }, + "acm001537jsd" : { + "type" : "ControlElement", + "id" : "acm001537jsd", + "name" : "getWriteMetadatatoPdf" + }, + "acm001538jsd" : { + "type" : "ControlElement", + "id" : "acm001538jsd", + "name" : "getOptions" + }, + "acm001539jsd" : { + "type" : "ControlElement", + "id" : "acm001539jsd", + "name" : "displayVersion" + }, + "acm001540jsd" : { + "type" : "ControlElement", + "id" : "acm001540jsd", + "name" : "printUsage" + }, + "acm001541jsd" : { + "type" : "ControlElement", + "id" : "acm001541jsd", + "name" : "getVersionInfo" + }, + "acm001542jsd" : { + "type" : "ControlElement", + "id" : "acm001542jsd", + "name" : "getLeftOver" + }, + "acm001543jsd" : { + "type" : "ControlElement", + "id" : "acm001543jsd", + "name" : "wrapStringList" + }, + "acm001544jsd" : { + "type" : "ClassUnit", + "id" : "acm001544jsd", + "name" : "JabRefCLI", + "compilationUnitId" : "acm001501jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011513jsd", "acm021206jsd" ], + "content" : [ "acm001505jsd", "acm001506jsd", "acm001507jsd", "acm001508jsd", "acm001509jsd", "acm001510jsd", "acm001511jsd", "acm001512jsd", "acm001513jsd", "acm001514jsd", "acm001515jsd", "acm001516jsd", "acm001517jsd", "acm001518jsd", "acm001519jsd", "acm001520jsd", "acm001521jsd", "acm001522jsd", "acm001523jsd", "acm001524jsd", "acm001525jsd", "acm001526jsd", "acm001527jsd", "acm001528jsd", "acm001529jsd", "acm001530jsd", "acm001531jsd", "acm001532jsd", "acm001533jsd", "acm001534jsd", "acm001535jsd", "acm001536jsd", "acm001537jsd", "acm001538jsd", "acm001539jsd", "acm001540jsd", "acm001541jsd", "acm001542jsd", "acm001543jsd" ] + }, + "acm001545jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001545jsd", + "name" : "Launcher", + "parentId" : "acm001466jsd", + "content" : [ "acm001557jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001546jsd" : { + "type" : "CodePackage", + "id" : "acm001546jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001547jsd" ] + }, + "acm001547jsd" : { + "type" : "CodePackage", + "id" : "acm001547jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001548jsd" ] + }, + "acm001548jsd" : { + "type" : "CodePackage", + "id" : "acm001548jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm001545jsd" ] + }, + "acm001549jsd" : { + "type" : "ControlElement", + "id" : "acm001549jsd", + "name" : "main" + }, + "acm001550jsd" : { + "type" : "ControlElement", + "id" : "acm001550jsd", + "name" : "addLogToDisk" + }, + "acm001551jsd" : { + "type" : "ControlElement", + "id" : "acm001551jsd", + "name" : "initializeLogger" + }, + "acm001552jsd" : { + "type" : "ControlElement", + "id" : "acm001552jsd", + "name" : "handleMultipleAppInstances" + }, + "acm001553jsd" : { + "type" : "ControlElement", + "id" : "acm001553jsd", + "name" : "initGlobals" + }, + "acm001554jsd" : { + "type" : "ControlElement", + "id" : "acm001554jsd", + "name" : "configureProxy" + }, + "acm001555jsd" : { + "type" : "ControlElement", + "id" : "acm001555jsd", + "name" : "configureSSL" + }, + "acm001556jsd" : { + "type" : "ControlElement", + "id" : "acm001556jsd", + "name" : "clearOldSearchIndices" + }, + "acm001557jsd" : { + "type" : "ClassUnit", + "id" : "acm001557jsd", + "name" : "Launcher", + "compilationUnitId" : "acm001545jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001492jsd", "acm001988jsd", "acm015858jsd", "acm015885jsd", "acm015953jsd", "acm016690jsd", "acm016748jsd", "acm016767jsd", "acm017281jsd", "acm021095jsd", "acm021206jsd" ], + "content" : [ "acm001549jsd", "acm001550jsd", "acm001551jsd", "acm001552jsd", "acm001553jsd", "acm001554jsd", "acm001555jsd", "acm001556jsd" ] + }, + "acm001558jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001558jsd", + "name" : "SystemOutputPrinter", + "parentId" : "acm001466jsd", + "content" : [ "acm001565jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001559jsd" : { + "type" : "CodePackage", + "id" : "acm001559jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001560jsd" ] + }, + "acm001560jsd" : { + "type" : "CodePackage", + "id" : "acm001560jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001561jsd" ] + }, + "acm001561jsd" : { + "type" : "CodePackage", + "id" : "acm001561jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm001558jsd" ] + }, + "acm001562jsd" : { + "type" : "ControlElement", + "id" : "acm001562jsd", + "name" : "setStatus" + }, + "acm001563jsd" : { + "type" : "ControlElement", + "id" : "acm001563jsd", + "name" : "showMessage" + }, + "acm001564jsd" : { + "type" : "ControlElement", + "id" : "acm001564jsd", + "name" : "showMessage" + }, + "acm001565jsd" : { + "type" : "ClassUnit", + "id" : "acm001565jsd", + "name" : "SystemOutputPrinter", + "compilationUnitId" : "acm001558jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012485jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001562jsd", "acm001563jsd", "acm001564jsd" ] + }, + "acm001566jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001566jsd", + "name" : "AbstractViewModel", + "parentId" : "acm001569jsd", + "content" : [ "acm001570jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001567jsd" : { + "type" : "CodePackage", + "id" : "acm001567jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001568jsd" ] + }, + "acm001568jsd" : { + "type" : "CodePackage", + "id" : "acm001568jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001569jsd" ] + }, + "acm001569jsd" : { + "type" : "CodePackage", + "id" : "acm001569jsd", + "name" : "gui", + "parentId" : "acm001339jsd", + "content" : [ "acm001566jsd", "acm001571jsd", "acm001576jsd", "acm001592jsd", "acm001600jsd", "acm001606jsd", "acm001641jsd", "acm001646jsd", "acm001655jsd", "acm001668jsd", "acm001688jsd", "acm001701jsd", "acm001708jsd", "acm001724jsd", "acm001764jsd", "acm001787jsd", "acm001866jsd", "acm001879jsd", "acm001981jsd", "acm001989jsd", "acm001997jsd", "acm002005jsd", "acm002046jsd", "acm002053jsd", "acm021358jsd", "acm002065jsd", "acm002155jsd", "acm002351jsd", "acm002376jsd", "acm002383jsd", "acm002427jsd", "acm002449jsd", "acm002487jsd", "acm002792jsd", "acm002919jsd", "acm002985jsd", "acm003076jsd", "acm003094jsd", "acm003244jsd", "acm003284jsd", "acm003586jsd", "acm003918jsd", "acm003957jsd", "acm004070jsd", "acm004295jsd", "acm004375jsd", "acm004964jsd", "acm005266jsd", "acm005363jsd", "acm005465jsd", "acm005693jsd", "acm005721jsd", "acm005755jsd", "acm005814jsd", "acm006056jsd", "acm006108jsd", "acm006144jsd", "acm006464jsd", "acm006498jsd", "acm007122jsd", "acm007350jsd", "acm008498jsd", "acm008545jsd", "acm008704jsd", "acm008712jsd", "acm008869jsd", "acm008944jsd", "acm009035jsd", "acm009131jsd", "acm009187jsd", "acm009267jsd", "acm009351jsd", "acm009491jsd" ] + }, + "acm001570jsd" : { + "type" : "ClassUnit", + "id" : "acm001570jsd", + "name" : "AbstractViewModel", + "compilationUnitId" : "acm001566jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001571jsd", + "name" : "BasePanelMode", + "parentId" : "acm001569jsd", + "content" : [ "acm001575jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001572jsd" : { + "type" : "CodePackage", + "id" : "acm001572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001573jsd" ] + }, + "acm001573jsd" : { + "type" : "CodePackage", + "id" : "acm001573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001574jsd" ] + }, + "acm001574jsd" : { + "type" : "CodePackage", + "id" : "acm001574jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001571jsd" ] + }, + "acm001575jsd" : { + "type" : "ClassUnit", + "id" : "acm001575jsd", + "name" : "BasePanelMode", + "compilationUnitId" : "acm001571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001576jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001576jsd", + "name" : "ClipBoardManager", + "parentId" : "acm001569jsd", + "content" : [ "acm001591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001577jsd" : { + "type" : "CodePackage", + "id" : "acm001577jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001578jsd" ] + }, + "acm001578jsd" : { + "type" : "CodePackage", + "id" : "acm001578jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001579jsd" ] + }, + "acm001579jsd" : { + "type" : "CodePackage", + "id" : "acm001579jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001576jsd" ] + }, + "acm001580jsd" : { + "type" : "ControlElement", + "id" : "acm001580jsd", + "name" : "ClipBoardManager" + }, + "acm001581jsd" : { + "type" : "ControlElement", + "id" : "acm001581jsd", + "name" : "ClipBoardManager" + }, + "acm001582jsd" : { + "type" : "ControlElement", + "id" : "acm001582jsd", + "name" : "addX11Support" + }, + "acm001583jsd" : { + "type" : "ControlElement", + "id" : "acm001583jsd", + "name" : "getContents" + }, + "acm001584jsd" : { + "type" : "ControlElement", + "id" : "acm001584jsd", + "name" : "getBibTeXEntriesFromClipboard" + }, + "acm001585jsd" : { + "type" : "ControlElement", + "id" : "acm001585jsd", + "name" : "getContentsPrimary" + }, + "acm001586jsd" : { + "type" : "ControlElement", + "id" : "acm001586jsd", + "name" : "setContent" + }, + "acm001587jsd" : { + "type" : "ControlElement", + "id" : "acm001587jsd", + "name" : "setPrimaryClipboardContent" + }, + "acm001588jsd" : { + "type" : "ControlElement", + "id" : "acm001588jsd", + "name" : "setHtmlContent" + }, + "acm001589jsd" : { + "type" : "ControlElement", + "id" : "acm001589jsd", + "name" : "setContent" + }, + "acm001590jsd" : { + "type" : "ControlElement", + "id" : "acm001590jsd", + "name" : "setContent" + }, + "acm001591jsd" : { + "type" : "ClassUnit", + "id" : "acm001591jsd", + "name" : "ClipBoardManager", + "compilationUnitId" : "acm001576jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm010474jsd", "acm010513jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm001580jsd", "acm001581jsd", "acm001582jsd", "acm001583jsd", "acm001584jsd", "acm001585jsd", "acm001586jsd", "acm001587jsd", "acm001588jsd", "acm001589jsd", "acm001590jsd" ] + }, + "acm001592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001592jsd", + "name" : "DefaultInjector", + "parentId" : "acm001569jsd", + "content" : [ "acm001599jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001593jsd" : { + "type" : "CodePackage", + "id" : "acm001593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001594jsd" ] + }, + "acm001594jsd" : { + "type" : "CodePackage", + "id" : "acm001594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001595jsd" ] + }, + "acm001595jsd" : { + "type" : "CodePackage", + "id" : "acm001595jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001592jsd" ] + }, + "acm001596jsd" : { + "type" : "ControlElement", + "id" : "acm001596jsd", + "name" : "createDependency" + }, + "acm001597jsd" : { + "type" : "ControlElement", + "id" : "acm001597jsd", + "name" : "instantiatePresenter" + }, + "acm001598jsd" : { + "type" : "ControlElement", + "id" : "acm001598jsd", + "name" : "injectMembers" + }, + "acm001599jsd" : { + "type" : "ClassUnit", + "id" : "acm001599jsd", + "name" : "DefaultInjector", + "compilationUnitId" : "acm001592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001591jsd", "acm001599jsd", "acm001640jsd", "acm002045jsd", "acm005802jsd", "acm009346jsd", "acm009965jsd", "acm012428jsd", "acm016690jsd", "acm018333jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm001596jsd", "acm001597jsd", "acm001598jsd" ] + }, + "acm001600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001600jsd", + "name" : "Dialog", + "parentId" : "acm001569jsd", + "content" : [ "acm001605jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001601jsd" : { + "type" : "CodePackage", + "id" : "acm001601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001602jsd" ] + }, + "acm001602jsd" : { + "type" : "CodePackage", + "id" : "acm001602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001603jsd" ] + }, + "acm001603jsd" : { + "type" : "CodePackage", + "id" : "acm001603jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001600jsd" ] + }, + "acm001604jsd" : { + "type" : "ControlElement", + "id" : "acm001604jsd", + "name" : "showAndWait" + }, + "acm001605jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001605jsd", + "name" : "Dialog", + "compilationUnitId" : "acm001600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001604jsd" ] + }, + "acm001606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001606jsd", + "name" : "DialogService", + "parentId" : "acm001569jsd", + "content" : [ "acm001640jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001607jsd" : { + "type" : "CodePackage", + "id" : "acm001607jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001608jsd" ] + }, + "acm001608jsd" : { + "type" : "CodePackage", + "id" : "acm001608jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001609jsd" ] + }, + "acm001609jsd" : { + "type" : "CodePackage", + "id" : "acm001609jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001606jsd" ] + }, + "acm001610jsd" : { + "type" : "ControlElement", + "id" : "acm001610jsd", + "name" : "showChoiceDialogAndWait" + }, + "acm001611jsd" : { + "type" : "ControlElement", + "id" : "acm001611jsd", + "name" : "showChoiceDialogAndWait" + }, + "acm001612jsd" : { + "type" : "ControlElement", + "id" : "acm001612jsd", + "name" : "showInputDialogAndWait" + }, + "acm001613jsd" : { + "type" : "ControlElement", + "id" : "acm001613jsd", + "name" : "showInputDialogWithDefaultAndWait" + }, + "acm001614jsd" : { + "type" : "ControlElement", + "id" : "acm001614jsd", + "name" : "showInformationDialogAndWait" + }, + "acm001615jsd" : { + "type" : "ControlElement", + "id" : "acm001615jsd", + "name" : "showWarningDialogAndWait" + }, + "acm001616jsd" : { + "type" : "ControlElement", + "id" : "acm001616jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001617jsd" : { + "type" : "ControlElement", + "id" : "acm001617jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001618jsd" : { + "type" : "ControlElement", + "id" : "acm001618jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001619jsd" : { + "type" : "ControlElement", + "id" : "acm001619jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001620jsd" : { + "type" : "ControlElement", + "id" : "acm001620jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001621jsd" : { + "type" : "ControlElement", + "id" : "acm001621jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001622jsd" : { + "type" : "ControlElement", + "id" : "acm001622jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001623jsd" : { + "type" : "ControlElement", + "id" : "acm001623jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001624jsd" : { + "type" : "ControlElement", + "id" : "acm001624jsd", + "name" : "showConfirmationDialogWithOptOutAndWait" + }, + "acm001625jsd" : { + "type" : "ControlElement", + "id" : "acm001625jsd", + "name" : "showConfirmationDialogWithOptOutAndWait" + }, + "acm001626jsd" : { + "type" : "ControlElement", + "id" : "acm001626jsd", + "name" : "showPasswordDialogAndWait" + }, + "acm001627jsd" : { + "type" : "ControlElement", + "id" : "acm001627jsd", + "name" : "showCustomDialog" + }, + "acm001628jsd" : { + "type" : "ControlElement", + "id" : "acm001628jsd", + "name" : "showCustomButtonDialogAndWait" + }, + "acm001629jsd" : { + "type" : "ControlElement", + "id" : "acm001629jsd", + "name" : "showCustomDialogAndWait" + }, + "acm001630jsd" : { + "type" : "ControlElement", + "id" : "acm001630jsd", + "name" : "showCustomDialogAndWait" + }, + "acm001631jsd" : { + "type" : "ControlElement", + "id" : "acm001631jsd", + "name" : "showProgressDialog" + }, + "acm001632jsd" : { + "type" : "ControlElement", + "id" : "acm001632jsd", + "name" : "showBackgroundProgressDialogAndWait" + }, + "acm001633jsd" : { + "type" : "ControlElement", + "id" : "acm001633jsd", + "name" : "notify" + }, + "acm001634jsd" : { + "type" : "ControlElement", + "id" : "acm001634jsd", + "name" : "showFileSaveDialog" + }, + "acm001635jsd" : { + "type" : "ControlElement", + "id" : "acm001635jsd", + "name" : "showFileOpenDialog" + }, + "acm001636jsd" : { + "type" : "ControlElement", + "id" : "acm001636jsd", + "name" : "showFileOpenDialogAndGetMultipleFiles" + }, + "acm001637jsd" : { + "type" : "ControlElement", + "id" : "acm001637jsd", + "name" : "showDirectorySelectionDialog" + }, + "acm001638jsd" : { + "type" : "ControlElement", + "id" : "acm001638jsd", + "name" : "showPrintDialog" + }, + "acm001639jsd" : { + "type" : "ControlElement", + "id" : "acm001639jsd", + "name" : "showFileOpenFromArchiveDialog" + }, + "acm001640jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001640jsd", + "name" : "DialogService", + "compilationUnitId" : "acm001606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm009551jsd", "acm009752jsd", "acm009796jsd" ], + "content" : [ "acm001610jsd", "acm001611jsd", "acm001612jsd", "acm001613jsd", "acm001614jsd", "acm001615jsd", "acm001616jsd", "acm001617jsd", "acm001618jsd", "acm001619jsd", "acm001620jsd", "acm001621jsd", "acm001622jsd", "acm001623jsd", "acm001624jsd", "acm001625jsd", "acm001626jsd", "acm001627jsd", "acm001628jsd", "acm001629jsd", "acm001630jsd", "acm001631jsd", "acm001632jsd", "acm001633jsd", "acm001634jsd", "acm001635jsd", "acm001636jsd", "acm001637jsd", "acm001638jsd", "acm001639jsd" ] + }, + "acm001641jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001641jsd", + "name" : "DragAndDropDataFormats", + "parentId" : "acm001569jsd", + "content" : [ "acm001645jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001642jsd" : { + "type" : "CodePackage", + "id" : "acm001642jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001643jsd" ] + }, + "acm001643jsd" : { + "type" : "CodePackage", + "id" : "acm001643jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001644jsd" ] + }, + "acm001644jsd" : { + "type" : "CodePackage", + "id" : "acm001644jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001641jsd" ] + }, + "acm001645jsd" : { + "type" : "ClassUnit", + "id" : "acm001645jsd", + "name" : "DragAndDropDataFormats", + "compilationUnitId" : "acm001641jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016651jsd" ], + "content" : [ ] + }, + "acm001646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001646jsd", + "name" : "DragAndDropHelper", + "parentId" : "acm001569jsd", + "content" : [ "acm001654jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001647jsd" : { + "type" : "CodePackage", + "id" : "acm001647jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001648jsd" ] + }, + "acm001648jsd" : { + "type" : "CodePackage", + "id" : "acm001648jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001649jsd" ] + }, + "acm001649jsd" : { + "type" : "CodePackage", + "id" : "acm001649jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001646jsd" ] + }, + "acm001650jsd" : { + "type" : "ControlElement", + "id" : "acm001650jsd", + "name" : "hasBibFiles" + }, + "acm001651jsd" : { + "type" : "ControlElement", + "id" : "acm001651jsd", + "name" : "getBibFiles" + }, + "acm001652jsd" : { + "type" : "ControlElement", + "id" : "acm001652jsd", + "name" : "hasGroups" + }, + "acm001653jsd" : { + "type" : "ControlElement", + "id" : "acm001653jsd", + "name" : "getGroups" + }, + "acm001654jsd" : { + "type" : "ClassUnit", + "id" : "acm001654jsd", + "name" : "DragAndDropHelper", + "compilationUnitId" : "acm001646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001650jsd", "acm001651jsd", "acm001652jsd", "acm001653jsd" ] + }, + "acm001655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001655jsd", + "name" : "EntryTypeView", + "parentId" : "acm001569jsd", + "content" : [ "acm001667jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001656jsd" : { + "type" : "CodePackage", + "id" : "acm001656jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001657jsd" ] + }, + "acm001657jsd" : { + "type" : "CodePackage", + "id" : "acm001657jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001658jsd" ] + }, + "acm001658jsd" : { + "type" : "CodePackage", + "id" : "acm001658jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001655jsd" ] + }, + "acm001659jsd" : { + "type" : "ControlElement", + "id" : "acm001659jsd", + "name" : "EntryTypeView" + }, + "acm001660jsd" : { + "type" : "ControlElement", + "id" : "acm001660jsd", + "name" : "addEntriesToPane" + }, + "acm001661jsd" : { + "type" : "ControlElement", + "id" : "acm001661jsd", + "name" : "initialize" + }, + "acm001662jsd" : { + "type" : "ControlElement", + "id" : "acm001662jsd", + "name" : "getChoice" + }, + "acm001663jsd" : { + "type" : "ControlElement", + "id" : "acm001663jsd", + "name" : "runFetcherWorker" + }, + "acm001664jsd" : { + "type" : "ControlElement", + "id" : "acm001664jsd", + "name" : "focusTextField" + }, + "acm001665jsd" : { + "type" : "ControlElement", + "id" : "acm001665jsd", + "name" : "setEntryTypeForReturnAndClose" + }, + "acm001666jsd" : { + "type" : "ControlElement", + "id" : "acm001666jsd", + "name" : "getDescription" + }, + "acm001667jsd" : { + "type" : "ClassUnit", + "id" : "acm001667jsd", + "name" : "EntryTypeView", + "compilationUnitId" : "acm001655jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001685jsd", "acm001965jsd", "acm002045jsd", "acm009856jsd", "acm009965jsd", "acm010051jsd", "acm012360jsd", "acm012428jsd", "acm018032jsd", "acm018289jsd", "acm019005jsd", "acm019047jsd", "acm021206jsd" ], + "content" : [ "acm001659jsd", "acm001660jsd", "acm001661jsd", "acm001662jsd", "acm001663jsd", "acm001664jsd", "acm001665jsd", "acm001666jsd" ] + }, + "acm001668jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001668jsd", + "name" : "EntryTypeViewModel", + "parentId" : "acm001569jsd", + "content" : [ "acm001685jsd", "acm001687jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001669jsd" : { + "type" : "CodePackage", + "id" : "acm001669jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001670jsd" ] + }, + "acm001670jsd" : { + "type" : "CodePackage", + "id" : "acm001670jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001671jsd" ] + }, + "acm001671jsd" : { + "type" : "CodePackage", + "id" : "acm001671jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001668jsd" ] + }, + "acm001672jsd" : { + "type" : "ControlElement", + "id" : "acm001672jsd", + "name" : "EntryTypeViewModel" + }, + "acm001673jsd" : { + "type" : "ControlElement", + "id" : "acm001673jsd", + "name" : "searchSuccesfulProperty" + }, + "acm001674jsd" : { + "type" : "ControlElement", + "id" : "acm001674jsd", + "name" : "searchingProperty" + }, + "acm001675jsd" : { + "type" : "ControlElement", + "id" : "acm001675jsd", + "name" : "selectedItemProperty" + }, + "acm001676jsd" : { + "type" : "ControlElement", + "id" : "acm001676jsd", + "name" : "idFieldValidationStatus" + }, + "acm001677jsd" : { + "type" : "ControlElement", + "id" : "acm001677jsd", + "name" : "idTextProperty" + }, + "acm001678jsd" : { + "type" : "ControlElement", + "id" : "acm001678jsd", + "name" : "getFocusAndSelectAllProperty" + }, + "acm001679jsd" : { + "type" : "ControlElement", + "id" : "acm001679jsd", + "name" : "storeSelectedFetcher" + }, + "acm001680jsd" : { + "type" : "ControlElement", + "id" : "acm001680jsd", + "name" : "getLastSelectedFetcher" + }, + "acm001681jsd" : { + "type" : "ControlElement", + "id" : "acm001681jsd", + "name" : "fetcherItemsProperty" + }, + "acm001682jsd" : { + "type" : "ControlElement", + "id" : "acm001682jsd", + "name" : "stopFetching" + }, + "acm001683jsd" : { + "type" : "ControlElement", + "id" : "acm001683jsd", + "name" : "call" + }, + "acm001684jsd" : { + "type" : "ControlElement", + "id" : "acm001684jsd", + "name" : "runFetcherWorker" + }, + "acm001685jsd" : { + "type" : "ClassUnit", + "id" : "acm001685jsd", + "name" : "EntryTypeViewModel", + "compilationUnitId" : "acm001668jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001685jsd", "acm001687jsd", "acm001965jsd", "acm002045jsd", "acm009965jsd", "acm012314jsd", "acm012360jsd", "acm012428jsd", "acm013001jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm001672jsd", "acm001673jsd", "acm001674jsd", "acm001675jsd", "acm001676jsd", "acm001677jsd", "acm001678jsd", "acm001679jsd", "acm001680jsd", "acm001681jsd", "acm001682jsd", "acm001683jsd", "acm001684jsd" ] + }, + "acm001686jsd" : { + "type" : "ControlElement", + "id" : "acm001686jsd", + "name" : "call" + }, + "acm001687jsd" : { + "type" : "ClassUnit", + "id" : "acm001687jsd", + "name" : "FetcherWorker", + "compilationUnitId" : "acm001668jsd", + "parentDatatypeId" : "acm001685jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012360jsd", "acm018267jsd" ], + "content" : [ "acm001686jsd" ] + }, + "acm001688jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001688jsd", + "name" : "FXDialog", + "parentId" : "acm001569jsd", + "content" : [ "acm001700jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001689jsd" : { + "type" : "CodePackage", + "id" : "acm001689jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001690jsd" ] + }, + "acm001690jsd" : { + "type" : "CodePackage", + "id" : "acm001690jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001691jsd" ] + }, + "acm001691jsd" : { + "type" : "CodePackage", + "id" : "acm001691jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001688jsd" ] + }, + "acm001692jsd" : { + "type" : "ControlElement", + "id" : "acm001692jsd", + "name" : "FXDialog" + }, + "acm001693jsd" : { + "type" : "ControlElement", + "id" : "acm001693jsd", + "name" : "FXDialog" + }, + "acm001694jsd" : { + "type" : "ControlElement", + "id" : "acm001694jsd", + "name" : "FXDialog" + }, + "acm001695jsd" : { + "type" : "ControlElement", + "id" : "acm001695jsd", + "name" : "FXDialog" + }, + "acm001696jsd" : { + "type" : "ControlElement", + "id" : "acm001696jsd", + "name" : "FXDialog" + }, + "acm001697jsd" : { + "type" : "ControlElement", + "id" : "acm001697jsd", + "name" : "FXDialog" + }, + "acm001698jsd" : { + "type" : "ControlElement", + "id" : "acm001698jsd", + "name" : "setDialogIcon" + }, + "acm001699jsd" : { + "type" : "ControlElement", + "id" : "acm001699jsd", + "name" : "getDialogWindow" + }, + "acm001700jsd" : { + "type" : "ClassUnit", + "id" : "acm001700jsd", + "name" : "FXDialog", + "compilationUnitId" : "acm001688jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001692jsd", "acm001693jsd", "acm001694jsd", "acm001695jsd", "acm001696jsd", "acm001697jsd", "acm001698jsd", "acm001699jsd" ] + }, + "acm001701jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001701jsd", + "name" : "FallbackExceptionHandler", + "parentId" : "acm001569jsd", + "content" : [ "acm001707jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001702jsd" : { + "type" : "CodePackage", + "id" : "acm001702jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001703jsd" ] + }, + "acm001703jsd" : { + "type" : "CodePackage", + "id" : "acm001703jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001704jsd" ] + }, + "acm001704jsd" : { + "type" : "CodePackage", + "id" : "acm001704jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001701jsd" ] + }, + "acm001705jsd" : { + "type" : "ControlElement", + "id" : "acm001705jsd", + "name" : "installExceptionHandler" + }, + "acm001706jsd" : { + "type" : "ControlElement", + "id" : "acm001706jsd", + "name" : "uncaughtException" + }, + "acm001707jsd" : { + "type" : "ClassUnit", + "id" : "acm001707jsd", + "name" : "FallbackExceptionHandler", + "compilationUnitId" : "acm001701jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001707jsd" ], + "content" : [ "acm001705jsd", "acm001706jsd" ] + }, + "acm001708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001708jsd", + "name" : "Globals", + "parentId" : "acm001569jsd", + "content" : [ "acm001723jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001709jsd" : { + "type" : "CodePackage", + "id" : "acm001709jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001710jsd" ] + }, + "acm001710jsd" : { + "type" : "CodePackage", + "id" : "acm001710jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001711jsd" ] + }, + "acm001711jsd" : { + "type" : "CodePackage", + "id" : "acm001711jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001708jsd" ] + }, + "acm001712jsd" : { + "type" : "ControlElement", + "id" : "acm001712jsd", + "name" : "Globals" + }, + "acm001713jsd" : { + "type" : "ControlElement", + "id" : "acm001713jsd", + "name" : "getKeyPrefs" + }, + "acm001714jsd" : { + "type" : "ControlElement", + "id" : "acm001714jsd", + "name" : "getClipboardManager" + }, + "acm001715jsd" : { + "type" : "ControlElement", + "id" : "acm001715jsd", + "name" : "getThemeManager" + }, + "acm001716jsd" : { + "type" : "ControlElement", + "id" : "acm001716jsd", + "name" : "startBackgroundTasks" + }, + "acm001717jsd" : { + "type" : "ControlElement", + "id" : "acm001717jsd", + "name" : "stopTelemetryClient" + }, + "acm001718jsd" : { + "type" : "ControlElement", + "id" : "acm001718jsd", + "name" : "startTelemetryClient" + }, + "acm001719jsd" : { + "type" : "ControlElement", + "id" : "acm001719jsd", + "name" : "getFileUpdateMonitor" + }, + "acm001720jsd" : { + "type" : "ControlElement", + "id" : "acm001720jsd", + "name" : "shutdownThreadPools" + }, + "acm001721jsd" : { + "type" : "ControlElement", + "id" : "acm001721jsd", + "name" : "stopBackgroundTasks" + }, + "acm001722jsd" : { + "type" : "ControlElement", + "id" : "acm001722jsd", + "name" : "getTelemetryClient" + }, + "acm001723jsd" : { + "type" : "ClassUnit", + "id" : "acm001723jsd", + "name" : "Globals", + "compilationUnitId" : "acm001708jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001591jsd", "acm002045jsd", "acm005802jsd", "acm008707jsd", "acm009346jsd", "acm009369jsd", "acm009712jsd", "acm009730jsd", "acm009965jsd", "acm012428jsd", "acm016690jsd", "acm016748jsd", "acm016792jsd", "acm017281jsd", "acm018333jsd", "acm020693jsd", "acm021095jsd" ], + "content" : [ "acm001712jsd", "acm001713jsd", "acm001714jsd", "acm001715jsd", "acm001716jsd", "acm001717jsd", "acm001718jsd", "acm001719jsd", "acm001720jsd", "acm001721jsd", "acm001722jsd" ] + }, + "acm001724jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001724jsd", + "name" : "JabRefDialogService", + "parentId" : "acm001569jsd", + "content" : [ "acm001763jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001725jsd" : { + "type" : "CodePackage", + "id" : "acm001725jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001726jsd" ] + }, + "acm001726jsd" : { + "type" : "CodePackage", + "id" : "acm001726jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001727jsd" ] + }, + "acm001727jsd" : { + "type" : "CodePackage", + "id" : "acm001727jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001724jsd" ] + }, + "acm001728jsd" : { + "type" : "ControlElement", + "id" : "acm001728jsd", + "name" : "JabRefDialogService" + }, + "acm001729jsd" : { + "type" : "ControlElement", + "id" : "acm001729jsd", + "name" : "createDialog" + }, + "acm001730jsd" : { + "type" : "ControlElement", + "id" : "acm001730jsd", + "name" : "createDialogWithOptOut" + }, + "acm001731jsd" : { + "type" : "ControlElement", + "id" : "acm001731jsd", + "name" : "createDetailsButton" + }, + "acm001732jsd" : { + "type" : "ControlElement", + "id" : "acm001732jsd", + "name" : "shortenDialogMessage" + }, + "acm001733jsd" : { + "type" : "ControlElement", + "id" : "acm001733jsd", + "name" : "showChoiceDialogAndWait" + }, + "acm001734jsd" : { + "type" : "ControlElement", + "id" : "acm001734jsd", + "name" : "showInputDialogAndWait" + }, + "acm001735jsd" : { + "type" : "ControlElement", + "id" : "acm001735jsd", + "name" : "showInputDialogWithDefaultAndWait" + }, + "acm001736jsd" : { + "type" : "ControlElement", + "id" : "acm001736jsd", + "name" : "showInformationDialogAndWait" + }, + "acm001737jsd" : { + "type" : "ControlElement", + "id" : "acm001737jsd", + "name" : "showWarningDialogAndWait" + }, + "acm001738jsd" : { + "type" : "ControlElement", + "id" : "acm001738jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001739jsd" : { + "type" : "ControlElement", + "id" : "acm001739jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001740jsd" : { + "type" : "ControlElement", + "id" : "acm001740jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001741jsd" : { + "type" : "ControlElement", + "id" : "acm001741jsd", + "name" : "showErrorDialogAndWait" + }, + "acm001742jsd" : { + "type" : "ControlElement", + "id" : "acm001742jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001743jsd" : { + "type" : "ControlElement", + "id" : "acm001743jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001744jsd" : { + "type" : "ControlElement", + "id" : "acm001744jsd", + "name" : "showConfirmationDialogAndWait" + }, + "acm001745jsd" : { + "type" : "ControlElement", + "id" : "acm001745jsd", + "name" : "showConfirmationDialogWithOptOutAndWait" + }, + "acm001746jsd" : { + "type" : "ControlElement", + "id" : "acm001746jsd", + "name" : "showConfirmationDialogWithOptOutAndWait" + }, + "acm001747jsd" : { + "type" : "ControlElement", + "id" : "acm001747jsd", + "name" : "showCustomButtonDialogAndWait" + }, + "acm001748jsd" : { + "type" : "ControlElement", + "id" : "acm001748jsd", + "name" : "showCustomDialogAndWait" + }, + "acm001749jsd" : { + "type" : "ControlElement", + "id" : "acm001749jsd", + "name" : "showCustomDialogAndWait" + }, + "acm001750jsd" : { + "type" : "ControlElement", + "id" : "acm001750jsd", + "name" : "showPasswordDialogAndWait" + }, + "acm001751jsd" : { + "type" : "ControlElement", + "id" : "acm001751jsd", + "name" : "showProgressDialog" + }, + "acm001752jsd" : { + "type" : "ControlElement", + "id" : "acm001752jsd", + "name" : "showBackgroundProgressDialogAndWait" + }, + "acm001753jsd" : { + "type" : "ControlElement", + "id" : "acm001753jsd", + "name" : "notify" + }, + "acm001754jsd" : { + "type" : "ControlElement", + "id" : "acm001754jsd", + "name" : "showFileSaveDialog" + }, + "acm001755jsd" : { + "type" : "ControlElement", + "id" : "acm001755jsd", + "name" : "showFileOpenDialog" + }, + "acm001756jsd" : { + "type" : "ControlElement", + "id" : "acm001756jsd", + "name" : "showDirectorySelectionDialog" + }, + "acm001757jsd" : { + "type" : "ControlElement", + "id" : "acm001757jsd", + "name" : "showFileOpenDialogAndGetMultipleFiles" + }, + "acm001758jsd" : { + "type" : "ControlElement", + "id" : "acm001758jsd", + "name" : "getConfiguredDirectoryChooser" + }, + "acm001759jsd" : { + "type" : "ControlElement", + "id" : "acm001759jsd", + "name" : "getConfiguredFileChooser" + }, + "acm001760jsd" : { + "type" : "ControlElement", + "id" : "acm001760jsd", + "name" : "showPrintDialog" + }, + "acm001761jsd" : { + "type" : "ControlElement", + "id" : "acm001761jsd", + "name" : "showFileOpenFromArchiveDialog" + }, + "acm001762jsd" : { + "type" : "ControlElement", + "id" : "acm001762jsd", + "name" : "showCustomDialog" + }, + "acm001763jsd" : { + "type" : "ClassUnit", + "id" : "acm001763jsd", + "name" : "JabRefDialogService", + "compilationUnitId" : "acm001724jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001640jsd" ], + "datatypeReferencesIds" : [ "acm001700jsd", "acm001763jsd", "acm002045jsd", "acm009346jsd", "acm009551jsd", "acm009752jsd", "acm009796jsd", "acm010147jsd" ], + "content" : [ "acm001728jsd", "acm001729jsd", "acm001730jsd", "acm001731jsd", "acm001732jsd", "acm001733jsd", "acm001734jsd", "acm001735jsd", "acm001736jsd", "acm001737jsd", "acm001738jsd", "acm001739jsd", "acm001740jsd", "acm001741jsd", "acm001742jsd", "acm001743jsd", "acm001744jsd", "acm001745jsd", "acm001746jsd", "acm001747jsd", "acm001748jsd", "acm001749jsd", "acm001750jsd", "acm001751jsd", "acm001752jsd", "acm001753jsd", "acm001754jsd", "acm001755jsd", "acm001756jsd", "acm001757jsd", "acm001758jsd", "acm001759jsd", "acm001760jsd", "acm001761jsd", "acm001762jsd" ] + }, + "acm001764jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001764jsd", + "name" : "JabRefExecutorService", + "parentId" : "acm001569jsd", + "content" : [ "acm001783jsd", "acm001786jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001765jsd" : { + "type" : "CodePackage", + "id" : "acm001765jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001766jsd" ] + }, + "acm001766jsd" : { + "type" : "CodePackage", + "id" : "acm001766jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001767jsd" ] + }, + "acm001767jsd" : { + "type" : "CodePackage", + "id" : "acm001767jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001764jsd" ] + }, + "acm001768jsd" : { + "type" : "ControlElement", + "id" : "acm001768jsd", + "name" : "JabRefExecutorService" + }, + "acm001769jsd" : { + "type" : "ControlElement", + "id" : "acm001769jsd", + "name" : "execute" + }, + "acm001770jsd" : { + "type" : "ControlElement", + "id" : "acm001770jsd", + "name" : "executeAndWait" + }, + "acm001771jsd" : { + "type" : "ControlElement", + "id" : "acm001771jsd", + "name" : "execute" + }, + "acm001772jsd" : { + "type" : "ControlElement", + "id" : "acm001772jsd", + "name" : "executeAll" + }, + "acm001773jsd" : { + "type" : "ControlElement", + "id" : "acm001773jsd", + "name" : "executeAll" + }, + "acm001774jsd" : { + "type" : "ControlElement", + "id" : "acm001774jsd", + "name" : "executeInterruptableTask" + }, + "acm001775jsd" : { + "type" : "ControlElement", + "id" : "acm001775jsd", + "name" : "executeInterruptableTaskAndWait" + }, + "acm001776jsd" : { + "type" : "ControlElement", + "id" : "acm001776jsd", + "name" : "startRemoteThread" + }, + "acm001777jsd" : { + "type" : "ControlElement", + "id" : "acm001777jsd", + "name" : "stopRemoteThread" + }, + "acm001778jsd" : { + "type" : "ControlElement", + "id" : "acm001778jsd", + "name" : "submit" + }, + "acm001779jsd" : { + "type" : "ControlElement", + "id" : "acm001779jsd", + "name" : "shutdownEverything" + }, + "acm001780jsd" : { + "type" : "ControlElement", + "id" : "acm001780jsd", + "name" : "NamedRunnable" + }, + "acm001781jsd" : { + "type" : "ControlElement", + "id" : "acm001781jsd", + "name" : "run" + }, + "acm001782jsd" : { + "type" : "ControlElement", + "id" : "acm001782jsd", + "name" : "gracefullyShutdown" + }, + "acm001783jsd" : { + "type" : "ClassUnit", + "id" : "acm001783jsd", + "name" : "JabRefExecutorService", + "compilationUnitId" : "acm001764jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001783jsd", "acm001786jsd" ], + "content" : [ "acm001768jsd", "acm001769jsd", "acm001770jsd", "acm001771jsd", "acm001772jsd", "acm001773jsd", "acm001774jsd", "acm001775jsd", "acm001776jsd", "acm001777jsd", "acm001778jsd", "acm001779jsd", "acm001780jsd", "acm001781jsd", "acm001782jsd" ] + }, + "acm001784jsd" : { + "type" : "ControlElement", + "id" : "acm001784jsd", + "name" : "NamedRunnable" + }, + "acm001785jsd" : { + "type" : "ControlElement", + "id" : "acm001785jsd", + "name" : "run" + }, + "acm001786jsd" : { + "type" : "ClassUnit", + "id" : "acm001786jsd", + "name" : "NamedRunnable", + "compilationUnitId" : "acm001764jsd", + "parentDatatypeId" : "acm001783jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001784jsd", "acm001785jsd" ] + }, + "acm001787jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001787jsd", + "name" : "JabRefFrame", + "parentId" : "acm001569jsd", + "content" : [ "acm001847jsd", "acm001849jsd", "acm001853jsd", "acm001856jsd", "acm001858jsd", "acm001861jsd", "acm001865jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001788jsd" : { + "type" : "CodePackage", + "id" : "acm001788jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001789jsd" ] + }, + "acm001789jsd" : { + "type" : "CodePackage", + "id" : "acm001789jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001790jsd" ] + }, + "acm001790jsd" : { + "type" : "CodePackage", + "id" : "acm001790jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001787jsd" ] + }, + "acm001791jsd" : { + "type" : "ControlElement", + "id" : "acm001791jsd", + "name" : "JabRefFrame" + }, + "acm001792jsd" : { + "type" : "ControlElement", + "id" : "acm001792jsd", + "name" : "initDragAndDrop" + }, + "acm001793jsd" : { + "type" : "ControlElement", + "id" : "acm001793jsd", + "name" : "initKeyBindings" + }, + "acm001794jsd" : { + "type" : "ControlElement", + "id" : "acm001794jsd", + "name" : "initShowTrackingNotification" + }, + "acm001795jsd" : { + "type" : "ControlElement", + "id" : "acm001795jsd", + "name" : "run" + }, + "acm001796jsd" : { + "type" : "ControlElement", + "id" : "acm001796jsd", + "name" : "showTrackingNotification" + }, + "acm001797jsd" : { + "type" : "ControlElement", + "id" : "acm001797jsd", + "name" : "openAction" + }, + "acm001798jsd" : { + "type" : "ControlElement", + "id" : "acm001798jsd", + "name" : "about" + }, + "acm001799jsd" : { + "type" : "ControlElement", + "id" : "acm001799jsd", + "name" : "tearDownJabRef" + }, + "acm001800jsd" : { + "type" : "ControlElement", + "id" : "acm001800jsd", + "name" : "quit" + }, + "acm001801jsd" : { + "type" : "ControlElement", + "id" : "acm001801jsd", + "name" : "initLayout" + }, + "acm001802jsd" : { + "type" : "ControlElement", + "id" : "acm001802jsd", + "name" : "invalidated" + }, + "acm001803jsd" : { + "type" : "ControlElement", + "id" : "acm001803jsd", + "name" : "updateSidePane" + }, + "acm001804jsd" : { + "type" : "ControlElement", + "id" : "acm001804jsd", + "name" : "setDividerPosition" + }, + "acm001805jsd" : { + "type" : "ControlElement", + "id" : "acm001805jsd", + "name" : "createToolbar" + }, + "acm001806jsd" : { + "type" : "ControlElement", + "id" : "acm001806jsd", + "name" : "getLibraryTabAt" + }, + "acm001807jsd" : { + "type" : "ControlElement", + "id" : "acm001807jsd", + "name" : "getLibraryTabs" + }, + "acm001808jsd" : { + "type" : "ControlElement", + "id" : "acm001808jsd", + "name" : "showLibraryTabAt" + }, + "acm001809jsd" : { + "type" : "ControlElement", + "id" : "acm001809jsd", + "name" : "showLibraryTab" + }, + "acm001810jsd" : { + "type" : "ControlElement", + "id" : "acm001810jsd", + "name" : "init" + }, + "acm001811jsd" : { + "type" : "ControlElement", + "id" : "acm001811jsd", + "name" : "getCurrentLibraryTab" + }, + "acm001812jsd" : { + "type" : "ControlElement", + "id" : "acm001812jsd", + "name" : "getBasePanelCount" + }, + "acm001813jsd" : { + "type" : "ControlElement", + "id" : "acm001813jsd", + "name" : "getTabbedPane" + }, + "acm001814jsd" : { + "type" : "ControlElement", + "id" : "acm001814jsd", + "name" : "createMenu" + }, + "acm001815jsd" : { + "type" : "ControlElement", + "id" : "acm001815jsd", + "name" : "createNewEntryFromIdButton" + }, + "acm001816jsd" : { + "type" : "ControlElement", + "id" : "acm001816jsd", + "name" : "createTaskIndicator" + }, + "acm001817jsd" : { + "type" : "ControlElement", + "id" : "acm001817jsd", + "name" : "addParserResult" + }, + "acm001818jsd" : { + "type" : "ControlElement", + "id" : "acm001818jsd", + "name" : "setupAllTables" + }, + "acm001819jsd" : { + "type" : "ControlElement", + "id" : "acm001819jsd", + "name" : "createTabContextMenuFor" + }, + "acm001820jsd" : { + "type" : "ControlElement", + "id" : "acm001820jsd", + "name" : "addTab" + }, + "acm001821jsd" : { + "type" : "ControlElement", + "id" : "acm001821jsd", + "name" : "addTab" + }, + "acm001822jsd" : { + "type" : "ControlElement", + "id" : "acm001822jsd", + "name" : "addImportedEntries" + }, + "acm001823jsd" : { + "type" : "ControlElement", + "id" : "acm001823jsd", + "name" : "getFileHistory" + }, + "acm001824jsd" : { + "type" : "ControlElement", + "id" : "acm001824jsd", + "name" : "confirmClose" + }, + "acm001825jsd" : { + "type" : "ControlElement", + "id" : "acm001825jsd", + "name" : "confirmEmptyEntry" + }, + "acm001826jsd" : { + "type" : "ControlElement", + "id" : "acm001826jsd", + "name" : "closeTab" + }, + "acm001827jsd" : { + "type" : "ControlElement", + "id" : "acm001827jsd", + "name" : "removeTab" + }, + "acm001828jsd" : { + "type" : "ControlElement", + "id" : "acm001828jsd", + "name" : "closeCurrentTab" + }, + "acm001829jsd" : { + "type" : "ControlElement", + "id" : "acm001829jsd", + "name" : "getOpenDatabaseAction" + }, + "acm001830jsd" : { + "type" : "ControlElement", + "id" : "acm001830jsd", + "name" : "getGlobalSearchBar" + }, + "acm001831jsd" : { + "type" : "ControlElement", + "id" : "acm001831jsd", + "name" : "getUndoManager" + }, + "acm001832jsd" : { + "type" : "ControlElement", + "id" : "acm001832jsd", + "name" : "getDialogService" + }, + "acm001833jsd" : { + "type" : "ControlElement", + "id" : "acm001833jsd", + "name" : "copyGroupTreeNode" + }, + "acm001834jsd" : { + "type" : "ControlElement", + "id" : "acm001834jsd", + "name" : "copyRootNode" + }, + "acm001835jsd" : { + "type" : "ControlElement", + "id" : "acm001835jsd", + "name" : "execute" + }, + "acm001836jsd" : { + "type" : "ControlElement", + "id" : "acm001836jsd", + "name" : "CloseDatabaseAction" + }, + "acm001837jsd" : { + "type" : "ControlElement", + "id" : "acm001837jsd", + "name" : "CloseDatabaseAction" + }, + "acm001838jsd" : { + "type" : "ControlElement", + "id" : "acm001838jsd", + "name" : "execute" + }, + "acm001839jsd" : { + "type" : "ControlElement", + "id" : "acm001839jsd", + "name" : "CloseOthersDatabaseAction" + }, + "acm001840jsd" : { + "type" : "ControlElement", + "id" : "acm001840jsd", + "name" : "execute" + }, + "acm001841jsd" : { + "type" : "ControlElement", + "id" : "acm001841jsd", + "name" : "execute" + }, + "acm001842jsd" : { + "type" : "ControlElement", + "id" : "acm001842jsd", + "name" : "OpenDatabaseFolder" + }, + "acm001843jsd" : { + "type" : "ControlElement", + "id" : "acm001843jsd", + "name" : "execute" + }, + "acm001844jsd" : { + "type" : "ControlElement", + "id" : "acm001844jsd", + "name" : "listen" + }, + "acm001845jsd" : { + "type" : "ControlElement", + "id" : "acm001845jsd", + "name" : "listen" + }, + "acm001846jsd" : { + "type" : "ControlElement", + "id" : "acm001846jsd", + "name" : "updateTexts" + }, + "acm001847jsd" : { + "type" : "ClassUnit", + "id" : "acm001847jsd", + "name" : "JabRefFrame", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001763jsd", "acm001847jsd", "acm001849jsd", "acm001853jsd", "acm001856jsd", "acm001858jsd", "acm001861jsd", "acm001865jsd", "acm001965jsd", "acm001996jsd", "acm002004jsd", "acm002045jsd", "acm002060jsd", "acm002087jsd", "acm002126jsd", "acm002371jsd", "acm002414jsd", "acm002436jsd", "acm002455jsd", "acm002923jsd", "acm003239jsd", "acm003271jsd", "acm003303jsd", "acm003312jsd", "acm003320jsd", "acm003356jsd", "acm003364jsd", "acm003415jsd", "acm003731jsd", "acm003769jsd", "acm003983jsd", "acm003994jsd", "acm004013jsd", "acm004022jsd", "acm004040jsd", "acm004058jsd", "acm004075jsd", "acm004121jsd", "acm004183jsd", "acm005270jsd", "acm005322jsd", "acm005331jsd", "acm005346jsd", "acm005507jsd", "acm005539jsd", "acm005575jsd", "acm005585jsd", "acm005648jsd", "acm005663jsd", "acm005697jsd", "acm005726jsd", "acm005802jsd", "acm005828jsd", "acm006493jsd", "acm006559jsd", "acm007441jsd", "acm008507jsd", "acm008591jsd", "acm008733jsd", "acm008768jsd", "acm008872jsd", "acm008880jsd", "acm008960jsd", "acm008988jsd", "acm009038jsd", "acm009049jsd", "acm009110jsd", "acm009200jsd", "acm009346jsd", "acm009369jsd", "acm009389jsd", "acm009536jsd", "acm009965jsd", "acm012378jsd", "acm012398jsd", "acm012428jsd", "acm012556jsd", "acm017245jsd", "acm017256jsd", "acm017263jsd", "acm018022jsd", "acm018267jsd", "acm019221jsd", "acm021206jsd", "acm021292jsd" ], + "content" : [ "acm001791jsd", "acm001792jsd", "acm001793jsd", "acm001794jsd", "acm001795jsd", "acm001796jsd", "acm001797jsd", "acm001798jsd", "acm001799jsd", "acm001800jsd", "acm001801jsd", "acm001802jsd", "acm001803jsd", "acm001804jsd", "acm001805jsd", "acm001806jsd", "acm001807jsd", "acm001808jsd", "acm001809jsd", "acm001810jsd", "acm001811jsd", "acm001812jsd", "acm001813jsd", "acm001814jsd", "acm001815jsd", "acm001816jsd", "acm001817jsd", "acm001818jsd", "acm001819jsd", "acm001820jsd", "acm001821jsd", "acm001822jsd", "acm001823jsd", "acm001824jsd", "acm001825jsd", "acm001826jsd", "acm001827jsd", "acm001828jsd", "acm001829jsd", "acm001830jsd", "acm001831jsd", "acm001832jsd", "acm001833jsd", "acm001834jsd", "acm001835jsd", "acm001836jsd", "acm001837jsd", "acm001838jsd", "acm001839jsd", "acm001840jsd", "acm001841jsd", "acm001842jsd", "acm001843jsd", "acm001844jsd", "acm001845jsd", "acm001846jsd" ] + }, + "acm001848jsd" : { + "type" : "ControlElement", + "id" : "acm001848jsd", + "name" : "execute" + }, + "acm001849jsd" : { + "type" : "ClassUnit", + "id" : "acm001849jsd", + "name" : "CloseAction", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001848jsd" ] + }, + "acm001850jsd" : { + "type" : "ControlElement", + "id" : "acm001850jsd", + "name" : "CloseDatabaseAction" + }, + "acm001851jsd" : { + "type" : "ControlElement", + "id" : "acm001851jsd", + "name" : "CloseDatabaseAction" + }, + "acm001852jsd" : { + "type" : "ControlElement", + "id" : "acm001852jsd", + "name" : "execute" + }, + "acm001853jsd" : { + "type" : "ClassUnit", + "id" : "acm001853jsd", + "name" : "CloseDatabaseAction", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd" ], + "content" : [ "acm001850jsd", "acm001851jsd", "acm001852jsd" ] + }, + "acm001854jsd" : { + "type" : "ControlElement", + "id" : "acm001854jsd", + "name" : "CloseOthersDatabaseAction" + }, + "acm001855jsd" : { + "type" : "ControlElement", + "id" : "acm001855jsd", + "name" : "execute" + }, + "acm001856jsd" : { + "type" : "ClassUnit", + "id" : "acm001856jsd", + "name" : "CloseOthersDatabaseAction", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd" ], + "content" : [ "acm001854jsd", "acm001855jsd" ] + }, + "acm001857jsd" : { + "type" : "ControlElement", + "id" : "acm001857jsd", + "name" : "execute" + }, + "acm001858jsd" : { + "type" : "ClassUnit", + "id" : "acm001858jsd", + "name" : "CloseAllDatabaseAction", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd" ], + "content" : [ "acm001857jsd" ] + }, + "acm001859jsd" : { + "type" : "ControlElement", + "id" : "acm001859jsd", + "name" : "OpenDatabaseFolder" + }, + "acm001860jsd" : { + "type" : "ControlElement", + "id" : "acm001860jsd", + "name" : "execute" + }, + "acm001861jsd" : { + "type" : "ClassUnit", + "id" : "acm001861jsd", + "name" : "OpenDatabaseFolder", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm001859jsd", "acm001860jsd" ] + }, + "acm001862jsd" : { + "type" : "ControlElement", + "id" : "acm001862jsd", + "name" : "listen" + }, + "acm001863jsd" : { + "type" : "ControlElement", + "id" : "acm001863jsd", + "name" : "listen" + }, + "acm001864jsd" : { + "type" : "ControlElement", + "id" : "acm001864jsd", + "name" : "updateTexts" + }, + "acm001865jsd" : { + "type" : "ClassUnit", + "id" : "acm001865jsd", + "name" : "UndoRedoEventManager", + "compilationUnitId" : "acm001787jsd", + "parentDatatypeId" : "acm001847jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017245jsd", "acm017256jsd", "acm017263jsd" ], + "content" : [ "acm001862jsd", "acm001863jsd", "acm001864jsd" ] + }, + "acm001866jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001866jsd", + "name" : "JabRefGUI", + "parentId" : "acm001569jsd", + "content" : [ "acm001878jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001867jsd" : { + "type" : "CodePackage", + "id" : "acm001867jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001868jsd" ] + }, + "acm001868jsd" : { + "type" : "CodePackage", + "id" : "acm001868jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001869jsd" ] + }, + "acm001869jsd" : { + "type" : "CodePackage", + "id" : "acm001869jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001866jsd" ] + }, + "acm001870jsd" : { + "type" : "ControlElement", + "id" : "acm001870jsd", + "name" : "JabRefGUI" + }, + "acm001871jsd" : { + "type" : "ControlElement", + "id" : "acm001871jsd", + "name" : "openWindow" + }, + "acm001872jsd" : { + "type" : "ControlElement", + "id" : "acm001872jsd", + "name" : "openDatabases" + }, + "acm001873jsd" : { + "type" : "ControlElement", + "id" : "acm001873jsd", + "name" : "saveWindowState" + }, + "acm001874jsd" : { + "type" : "ControlElement", + "id" : "acm001874jsd", + "name" : "debugLogWindowState" + }, + "acm001875jsd" : { + "type" : "ControlElement", + "id" : "acm001875jsd", + "name" : "isWindowPositionOutOfBounds" + }, + "acm001876jsd" : { + "type" : "ControlElement", + "id" : "acm001876jsd", + "name" : "openLastEditedDatabases" + }, + "acm001877jsd" : { + "type" : "ControlElement", + "id" : "acm001877jsd", + "name" : "getMainFrame" + }, + "acm001878jsd" : { + "type" : "ClassUnit", + "id" : "acm001878jsd", + "name" : "JabRefGUI", + "compilationUnitId" : "acm001866jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001878jsd", "acm001965jsd", "acm005358jsd", "acm008939jsd", "acm012556jsd", "acm017016jsd", "acm017109jsd", "acm017117jsd", "acm020923jsd", "acm021206jsd" ], + "content" : [ "acm001870jsd", "acm001871jsd", "acm001872jsd", "acm001873jsd", "acm001874jsd", "acm001875jsd", "acm001876jsd", "acm001877jsd" ] + }, + "acm001879jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001879jsd", + "name" : "LibraryTab", + "parentId" : "acm001569jsd", + "content" : [ "acm001965jsd", "acm001967jsd", "acm001969jsd", "acm001973jsd", "acm001977jsd", "acm001980jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001880jsd" : { + "type" : "CodePackage", + "id" : "acm001880jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001881jsd" ] + }, + "acm001881jsd" : { + "type" : "CodePackage", + "id" : "acm001881jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001882jsd" ] + }, + "acm001882jsd" : { + "type" : "CodePackage", + "id" : "acm001882jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001879jsd" ] + }, + "acm001883jsd" : { + "type" : "ControlElement", + "id" : "acm001883jsd", + "name" : "LibraryTab" + }, + "acm001884jsd" : { + "type" : "ControlElement", + "id" : "acm001884jsd", + "name" : "addChangedInformation" + }, + "acm001885jsd" : { + "type" : "ControlElement", + "id" : "acm001885jsd", + "name" : "addModeInfo" + }, + "acm001886jsd" : { + "type" : "ControlElement", + "id" : "acm001886jsd", + "name" : "addSharedDbInformation" + }, + "acm001887jsd" : { + "type" : "ControlElement", + "id" : "acm001887jsd", + "name" : "setDataLoadingTask" + }, + "acm001888jsd" : { + "type" : "ControlElement", + "id" : "acm001888jsd", + "name" : "cancelLoading" + }, + "acm001889jsd" : { + "type" : "ControlElement", + "id" : "acm001889jsd", + "name" : "createLoadingAnimationLayout" + }, + "acm001890jsd" : { + "type" : "ControlElement", + "id" : "acm001890jsd", + "name" : "onDatabaseLoadingStarted" + }, + "acm001891jsd" : { + "type" : "ControlElement", + "id" : "acm001891jsd", + "name" : "onDatabaseLoadingSucceed" + }, + "acm001892jsd" : { + "type" : "ControlElement", + "id" : "acm001892jsd", + "name" : "onDatabaseLoadingFailed" + }, + "acm001893jsd" : { + "type" : "ControlElement", + "id" : "acm001893jsd", + "name" : "feedData" + }, + "acm001894jsd" : { + "type" : "ControlElement", + "id" : "acm001894jsd", + "name" : "installAutosaveManagerAndBackupManager" + }, + "acm001895jsd" : { + "type" : "ControlElement", + "id" : "acm001895jsd", + "name" : "isDatabaseReadyForAutoSave" + }, + "acm001896jsd" : { + "type" : "ControlElement", + "id" : "acm001896jsd", + "name" : "isDatabaseReadyForBackup" + }, + "acm001897jsd" : { + "type" : "ControlElement", + "id" : "acm001897jsd", + "name" : "updateTabTitle" + }, + "acm001898jsd" : { + "type" : "ControlElement", + "id" : "acm001898jsd", + "name" : "listen" + }, + "acm001899jsd" : { + "type" : "ControlElement", + "id" : "acm001899jsd", + "name" : "getSuggestionProviders" + }, + "acm001900jsd" : { + "type" : "ControlElement", + "id" : "acm001900jsd", + "name" : "getMode" + }, + "acm001901jsd" : { + "type" : "ControlElement", + "id" : "acm001901jsd", + "name" : "setMode" + }, + "acm001902jsd" : { + "type" : "ControlElement", + "id" : "acm001902jsd", + "name" : "frame" + }, + "acm001903jsd" : { + "type" : "ControlElement", + "id" : "acm001903jsd", + "name" : "delete" + }, + "acm001904jsd" : { + "type" : "ControlElement", + "id" : "acm001904jsd", + "name" : "delete" + }, + "acm001905jsd" : { + "type" : "ControlElement", + "id" : "acm001905jsd", + "name" : "delete" + }, + "acm001906jsd" : { + "type" : "ControlElement", + "id" : "acm001906jsd", + "name" : "registerUndoableChanges" + }, + "acm001907jsd" : { + "type" : "ControlElement", + "id" : "acm001907jsd", + "name" : "insertEntry" + }, + "acm001908jsd" : { + "type" : "ControlElement", + "id" : "acm001908jsd", + "name" : "insertEntries" + }, + "acm001909jsd" : { + "type" : "ControlElement", + "id" : "acm001909jsd", + "name" : "editEntryAndFocusField" + }, + "acm001910jsd" : { + "type" : "ControlElement", + "id" : "acm001910jsd", + "name" : "createMainTable" + }, + "acm001911jsd" : { + "type" : "ControlElement", + "id" : "acm001911jsd", + "name" : "setupMainPanel" + }, + "acm001912jsd" : { + "type" : "ControlElement", + "id" : "acm001912jsd", + "name" : "setupAutoCompletion" + }, + "acm001913jsd" : { + "type" : "ControlElement", + "id" : "acm001913jsd", + "name" : "updateSearchManager" + }, + "acm001914jsd" : { + "type" : "ControlElement", + "id" : "acm001914jsd", + "name" : "getEntryEditor" + }, + "acm001915jsd" : { + "type" : "ControlElement", + "id" : "acm001915jsd", + "name" : "showAndEdit" + }, + "acm001916jsd" : { + "type" : "ControlElement", + "id" : "acm001916jsd", + "name" : "showBottomPane" + }, + "acm001917jsd" : { + "type" : "ControlElement", + "id" : "acm001917jsd", + "name" : "closeBottomPane" + }, + "acm001918jsd" : { + "type" : "ControlElement", + "id" : "acm001918jsd", + "name" : "clearAndSelect" + }, + "acm001919jsd" : { + "type" : "ControlElement", + "id" : "acm001919jsd", + "name" : "selectPreviousEntry" + }, + "acm001920jsd" : { + "type" : "ControlElement", + "id" : "acm001920jsd", + "name" : "selectNextEntry" + }, + "acm001921jsd" : { + "type" : "ControlElement", + "id" : "acm001921jsd", + "name" : "entryEditorClosing" + }, + "acm001922jsd" : { + "type" : "ControlElement", + "id" : "acm001922jsd", + "name" : "ensureNotShowingBottomPanel" + }, + "acm001923jsd" : { + "type" : "ControlElement", + "id" : "acm001923jsd", + "name" : "updateEntryEditorIfShowing" + }, + "acm001924jsd" : { + "type" : "ControlElement", + "id" : "acm001924jsd", + "name" : "markChangedOrUnChanged" + }, + "acm001925jsd" : { + "type" : "ControlElement", + "id" : "acm001925jsd", + "name" : "getDatabase" + }, + "acm001926jsd" : { + "type" : "ControlElement", + "id" : "acm001926jsd", + "name" : "showDeleteConfirmationDialog" + }, + "acm001927jsd" : { + "type" : "ControlElement", + "id" : "acm001927jsd", + "name" : "saveDividerLocation" + }, + "acm001928jsd" : { + "type" : "ControlElement", + "id" : "acm001928jsd", + "name" : "cleanUp" + }, + "acm001929jsd" : { + "type" : "ControlElement", + "id" : "acm001929jsd", + "name" : "getSelectedEntries" + }, + "acm001930jsd" : { + "type" : "ControlElement", + "id" : "acm001930jsd", + "name" : "getBibDatabaseContext" + }, + "acm001931jsd" : { + "type" : "ControlElement", + "id" : "acm001931jsd", + "name" : "isSaving" + }, + "acm001932jsd" : { + "type" : "ControlElement", + "id" : "acm001932jsd", + "name" : "setSaving" + }, + "acm001933jsd" : { + "type" : "ControlElement", + "id" : "acm001933jsd", + "name" : "getShowing" + }, + "acm001934jsd" : { + "type" : "ControlElement", + "id" : "acm001934jsd", + "name" : "formatOutputMessage" + }, + "acm001935jsd" : { + "type" : "ControlElement", + "id" : "acm001935jsd", + "name" : "getUndoManager" + }, + "acm001936jsd" : { + "type" : "ControlElement", + "id" : "acm001936jsd", + "name" : "getMainTable" + }, + "acm001937jsd" : { + "type" : "ControlElement", + "id" : "acm001937jsd", + "name" : "getCurrentSearchQuery" + }, + "acm001938jsd" : { + "type" : "ControlElement", + "id" : "acm001938jsd", + "name" : "setCurrentSearchQuery" + }, + "acm001939jsd" : { + "type" : "ControlElement", + "id" : "acm001939jsd", + "name" : "getCitationStyleCache" + }, + "acm001940jsd" : { + "type" : "ControlElement", + "id" : "acm001940jsd", + "name" : "getAnnotationCache" + }, + "acm001941jsd" : { + "type" : "ControlElement", + "id" : "acm001941jsd", + "name" : "resetChangeMonitor" + }, + "acm001942jsd" : { + "type" : "ControlElement", + "id" : "acm001942jsd", + "name" : "copy" + }, + "acm001943jsd" : { + "type" : "ControlElement", + "id" : "acm001943jsd", + "name" : "paste" + }, + "acm001944jsd" : { + "type" : "ControlElement", + "id" : "acm001944jsd", + "name" : "dropEntry" + }, + "acm001945jsd" : { + "type" : "ControlElement", + "id" : "acm001945jsd", + "name" : "cut" + }, + "acm001946jsd" : { + "type" : "ControlElement", + "id" : "acm001946jsd", + "name" : "changedProperty" + }, + "acm001947jsd" : { + "type" : "ControlElement", + "id" : "acm001947jsd", + "name" : "isModified" + }, + "acm001948jsd" : { + "type" : "ControlElement", + "id" : "acm001948jsd", + "name" : "markBaseChanged" + }, + "acm001949jsd" : { + "type" : "ControlElement", + "id" : "acm001949jsd", + "name" : "nonUndoableChangeProperty" + }, + "acm001950jsd" : { + "type" : "ControlElement", + "id" : "acm001950jsd", + "name" : "markNonUndoableBaseChanged" + }, + "acm001951jsd" : { + "type" : "ControlElement", + "id" : "acm001951jsd", + "name" : "resetChangedProperties" + }, + "acm001952jsd" : { + "type" : "ControlElement", + "id" : "acm001952jsd", + "name" : "createLibraryTab" + }, + "acm001953jsd" : { + "type" : "ControlElement", + "id" : "acm001953jsd", + "name" : "listen" + }, + "acm001954jsd" : { + "type" : "ControlElement", + "id" : "acm001954jsd", + "name" : "listen" + }, + "acm001955jsd" : { + "type" : "ControlElement", + "id" : "acm001955jsd", + "name" : "listen" + }, + "acm001956jsd" : { + "type" : "ControlElement", + "id" : "acm001956jsd", + "name" : "listen" + }, + "acm001957jsd" : { + "type" : "ControlElement", + "id" : "acm001957jsd", + "name" : "listen" + }, + "acm001958jsd" : { + "type" : "ControlElement", + "id" : "acm001958jsd", + "name" : "listen" + }, + "acm001959jsd" : { + "type" : "ControlElement", + "id" : "acm001959jsd", + "name" : "listen" + }, + "acm001960jsd" : { + "type" : "ControlElement", + "id" : "acm001960jsd", + "name" : "listen" + }, + "acm001961jsd" : { + "type" : "ControlElement", + "id" : "acm001961jsd", + "name" : "getIndexingTaskManager" + }, + "acm001962jsd" : { + "type" : "ControlElement", + "id" : "acm001962jsd", + "name" : "DatabaseNotification" + }, + "acm001963jsd" : { + "type" : "ControlElement", + "id" : "acm001963jsd", + "name" : "notify" + }, + "acm001964jsd" : { + "type" : "ControlElement", + "id" : "acm001964jsd", + "name" : "getNotificationPane" + }, + "acm001965jsd" : { + "type" : "ClassUnit", + "id" : "acm001965jsd", + "name" : "LibraryTab", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001575jsd", "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm001967jsd", "acm001969jsd", "acm001973jsd", "acm001977jsd", "acm001980jsd", "acm002045jsd", "acm002052jsd", "acm002193jsd", "acm002300jsd", "acm002338jsd", "acm002546jsd", "acm003079jsd", "acm003613jsd", "acm006205jsd", "acm006269jsd", "acm009346jsd", "acm009369jsd", "acm009381jsd", "acm009411jsd", "acm009423jsd", "acm009466jsd", "acm009536jsd", "acm010394jsd", "acm011051jsd", "acm012556jsd", "acm016490jsd", "acm016548jsd", "acm016570jsd", "acm016845jsd", "acm017009jsd", "acm017884jsd", "acm017988jsd", "acm018022jsd", "acm018089jsd", "acm018106jsd", "acm018115jsd", "acm018267jsd", "acm018509jsd", "acm018580jsd", "acm018604jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm001883jsd", "acm001884jsd", "acm001885jsd", "acm001886jsd", "acm001887jsd", "acm001888jsd", "acm001889jsd", "acm001890jsd", "acm001891jsd", "acm001892jsd", "acm001893jsd", "acm001894jsd", "acm001895jsd", "acm001896jsd", "acm001897jsd", "acm001898jsd", "acm001899jsd", "acm001900jsd", "acm001901jsd", "acm001902jsd", "acm001903jsd", "acm001904jsd", "acm001905jsd", "acm001906jsd", "acm001907jsd", "acm001908jsd", "acm001909jsd", "acm001910jsd", "acm001911jsd", "acm001912jsd", "acm001913jsd", "acm001914jsd", "acm001915jsd", "acm001916jsd", "acm001917jsd", "acm001918jsd", "acm001919jsd", "acm001920jsd", "acm001921jsd", "acm001922jsd", "acm001923jsd", "acm001924jsd", "acm001925jsd", "acm001926jsd", "acm001927jsd", "acm001928jsd", "acm001929jsd", "acm001930jsd", "acm001931jsd", "acm001932jsd", "acm001933jsd", "acm001934jsd", "acm001935jsd", "acm001936jsd", "acm001937jsd", "acm001938jsd", "acm001939jsd", "acm001940jsd", "acm001941jsd", "acm001942jsd", "acm001943jsd", "acm001944jsd", "acm001945jsd", "acm001946jsd", "acm001947jsd", "acm001948jsd", "acm001949jsd", "acm001950jsd", "acm001951jsd", "acm001952jsd", "acm001953jsd", "acm001954jsd", "acm001955jsd", "acm001956jsd", "acm001957jsd", "acm001958jsd", "acm001959jsd", "acm001960jsd", "acm001961jsd", "acm001962jsd", "acm001963jsd", "acm001964jsd" ] + }, + "acm001966jsd" : { + "type" : "ControlElement", + "id" : "acm001966jsd", + "name" : "listen" + }, + "acm001967jsd" : { + "type" : "ClassUnit", + "id" : "acm001967jsd", + "name" : "GroupTreeListener", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : "acm001965jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018106jsd" ], + "content" : [ "acm001966jsd" ] + }, + "acm001968jsd" : { + "type" : "ControlElement", + "id" : "acm001968jsd", + "name" : "listen" + }, + "acm001969jsd" : { + "type" : "ClassUnit", + "id" : "acm001969jsd", + "name" : "EntriesRemovedListener", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : "acm001965jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018115jsd" ], + "content" : [ "acm001968jsd" ] + }, + "acm001970jsd" : { + "type" : "ControlElement", + "id" : "acm001970jsd", + "name" : "listen" + }, + "acm001971jsd" : { + "type" : "ControlElement", + "id" : "acm001971jsd", + "name" : "listen" + }, + "acm001972jsd" : { + "type" : "ControlElement", + "id" : "acm001972jsd", + "name" : "listen" + }, + "acm001973jsd" : { + "type" : "ClassUnit", + "id" : "acm001973jsd", + "name" : "SearchListener", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : "acm001965jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018106jsd", "acm018115jsd", "acm018580jsd" ], + "content" : [ "acm001970jsd", "acm001971jsd", "acm001972jsd" ] + }, + "acm001974jsd" : { + "type" : "ControlElement", + "id" : "acm001974jsd", + "name" : "listen" + }, + "acm001975jsd" : { + "type" : "ControlElement", + "id" : "acm001975jsd", + "name" : "listen" + }, + "acm001976jsd" : { + "type" : "ControlElement", + "id" : "acm001976jsd", + "name" : "listen" + }, + "acm001977jsd" : { + "type" : "ClassUnit", + "id" : "acm001977jsd", + "name" : "IndexUpdateListener", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : "acm001965jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016570jsd", "acm018106jsd", "acm018115jsd", "acm018267jsd", "acm018509jsd", "acm018604jsd" ], + "content" : [ "acm001974jsd", "acm001975jsd", "acm001976jsd" ] + }, + "acm001978jsd" : { + "type" : "ControlElement", + "id" : "acm001978jsd", + "name" : "DatabaseNotification" + }, + "acm001979jsd" : { + "type" : "ControlElement", + "id" : "acm001979jsd", + "name" : "notify" + }, + "acm001980jsd" : { + "type" : "ClassUnit", + "id" : "acm001980jsd", + "name" : "DatabaseNotification", + "compilationUnitId" : "acm001879jsd", + "parentDatatypeId" : "acm001965jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001978jsd", "acm001979jsd" ] + }, + "acm001981jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001981jsd", + "name" : "MainApplication", + "parentId" : "acm001569jsd", + "content" : [ "acm001988jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001982jsd" : { + "type" : "CodePackage", + "id" : "acm001982jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001983jsd" ] + }, + "acm001983jsd" : { + "type" : "CodePackage", + "id" : "acm001983jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001984jsd" ] + }, + "acm001984jsd" : { + "type" : "CodePackage", + "id" : "acm001984jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001981jsd" ] + }, + "acm001985jsd" : { + "type" : "ControlElement", + "id" : "acm001985jsd", + "name" : "main" + }, + "acm001986jsd" : { + "type" : "ControlElement", + "id" : "acm001986jsd", + "name" : "start" + }, + "acm001987jsd" : { + "type" : "ControlElement", + "id" : "acm001987jsd", + "name" : "stop" + }, + "acm001988jsd" : { + "type" : "ClassUnit", + "id" : "acm001988jsd", + "name" : "MainApplication", + "compilationUnitId" : "acm001981jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001878jsd", "acm012556jsd", "acm021095jsd" ], + "content" : [ "acm001985jsd", "acm001986jsd", "acm001987jsd" ] + }, + "acm001989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001989jsd", + "name" : "OpenConsoleAction", + "parentId" : "acm001569jsd", + "content" : [ "acm001996jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001990jsd" : { + "type" : "CodePackage", + "id" : "acm001990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001991jsd" ] + }, + "acm001991jsd" : { + "type" : "CodePackage", + "id" : "acm001991jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm001992jsd" ] + }, + "acm001992jsd" : { + "type" : "CodePackage", + "id" : "acm001992jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001989jsd" ] + }, + "acm001993jsd" : { + "type" : "ControlElement", + "id" : "acm001993jsd", + "name" : "OpenConsoleAction" + }, + "acm001994jsd" : { + "type" : "ControlElement", + "id" : "acm001994jsd", + "name" : "OpenConsoleAction" + }, + "acm001995jsd" : { + "type" : "ControlElement", + "id" : "acm001995jsd", + "name" : "execute" + }, + "acm001996jsd" : { + "type" : "ClassUnit", + "id" : "acm001996jsd", + "name" : "OpenConsoleAction", + "compilationUnitId" : "acm001989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001996jsd", "acm002045jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm001993jsd", "acm001994jsd", "acm001995jsd" ] + }, + "acm001997jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001997jsd", + "name" : "SendAsEMailAction", + "parentId" : "acm001569jsd", + "content" : [ "acm002004jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001998jsd" : { + "type" : "CodePackage", + "id" : "acm001998jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm001999jsd" ] + }, + "acm001999jsd" : { + "type" : "CodePackage", + "id" : "acm001999jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002000jsd" ] + }, + "acm002000jsd" : { + "type" : "CodePackage", + "id" : "acm002000jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm001997jsd" ] + }, + "acm002001jsd" : { + "type" : "ControlElement", + "id" : "acm002001jsd", + "name" : "SendAsEMailAction" + }, + "acm002002jsd" : { + "type" : "ControlElement", + "id" : "acm002002jsd", + "name" : "execute" + }, + "acm002003jsd" : { + "type" : "ControlElement", + "id" : "acm002003jsd", + "name" : "sendEmail" + }, + "acm002004jsd" : { + "type" : "ClassUnit", + "id" : "acm002004jsd", + "name" : "SendAsEMailAction", + "compilationUnitId" : "acm001997jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002004jsd", "acm002045jsd", "acm010474jsd", "acm010513jsd", "acm011455jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm002001jsd", "acm002002jsd", "acm002003jsd" ] + }, + "acm002005jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002005jsd", + "name" : "StateManager", + "parentId" : "acm001569jsd", + "content" : [ "acm002045jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002006jsd" : { + "type" : "CodePackage", + "id" : "acm002006jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002007jsd" ] + }, + "acm002007jsd" : { + "type" : "CodePackage", + "id" : "acm002007jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002008jsd" ] + }, + "acm002008jsd" : { + "type" : "CodePackage", + "id" : "acm002008jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002005jsd" ] + }, + "acm002009jsd" : { + "type" : "ControlElement", + "id" : "acm002009jsd", + "name" : "StateManager" + }, + "acm002010jsd" : { + "type" : "ControlElement", + "id" : "acm002010jsd", + "name" : "getVisibleSidePaneComponents" + }, + "acm002011jsd" : { + "type" : "ControlElement", + "id" : "acm002011jsd", + "name" : "getLocalDragboard" + }, + "acm002012jsd" : { + "type" : "ControlElement", + "id" : "acm002012jsd", + "name" : "getOpenDatabases" + }, + "acm002013jsd" : { + "type" : "ControlElement", + "id" : "acm002013jsd", + "name" : "activeDatabaseProperty" + }, + "acm002014jsd" : { + "type" : "ControlElement", + "id" : "acm002014jsd", + "name" : "activeSearchQueryProperty" + }, + "acm002015jsd" : { + "type" : "ControlElement", + "id" : "acm002015jsd", + "name" : "setActiveSearchResultSize" + }, + "acm002016jsd" : { + "type" : "ControlElement", + "id" : "acm002016jsd", + "name" : "getSearchResultSize" + }, + "acm002017jsd" : { + "type" : "ControlElement", + "id" : "acm002017jsd", + "name" : "activeGroupProperty" + }, + "acm002018jsd" : { + "type" : "ControlElement", + "id" : "acm002018jsd", + "name" : "getSelectedEntries" + }, + "acm002019jsd" : { + "type" : "ControlElement", + "id" : "acm002019jsd", + "name" : "setSelectedEntries" + }, + "acm002020jsd" : { + "type" : "ControlElement", + "id" : "acm002020jsd", + "name" : "setSelectedGroups" + }, + "acm002021jsd" : { + "type" : "ControlElement", + "id" : "acm002021jsd", + "name" : "getSelectedGroup" + }, + "acm002022jsd" : { + "type" : "ControlElement", + "id" : "acm002022jsd", + "name" : "clearSelectedGroups" + }, + "acm002023jsd" : { + "type" : "ControlElement", + "id" : "acm002023jsd", + "name" : "getActiveDatabase" + }, + "acm002024jsd" : { + "type" : "ControlElement", + "id" : "acm002024jsd", + "name" : "setActiveDatabase" + }, + "acm002025jsd" : { + "type" : "ControlElement", + "id" : "acm002025jsd", + "name" : "getEntriesInCurrentDatabase" + }, + "acm002026jsd" : { + "type" : "ControlElement", + "id" : "acm002026jsd", + "name" : "clearSearchQuery" + }, + "acm002027jsd" : { + "type" : "ControlElement", + "id" : "acm002027jsd", + "name" : "setSearchQuery" + }, + "acm002028jsd" : { + "type" : "ControlElement", + "id" : "acm002028jsd", + "name" : "focusOwnerProperty" + }, + "acm002029jsd" : { + "type" : "ControlElement", + "id" : "acm002029jsd", + "name" : "getFocusOwner" + }, + "acm002030jsd" : { + "type" : "ControlElement", + "id" : "acm002030jsd", + "name" : "getBackgroundTasks" + }, + "acm002031jsd" : { + "type" : "ControlElement", + "id" : "acm002031jsd", + "name" : "addBackgroundTask" + }, + "acm002032jsd" : { + "type" : "ControlElement", + "id" : "acm002032jsd", + "name" : "getAnyTaskRunning" + }, + "acm002033jsd" : { + "type" : "ControlElement", + "id" : "acm002033jsd", + "name" : "getAnyTasksThatWillNotBeRecoveredRunning" + }, + "acm002034jsd" : { + "type" : "ControlElement", + "id" : "acm002034jsd", + "name" : "getTasksProgress" + }, + "acm002035jsd" : { + "type" : "ControlElement", + "id" : "acm002035jsd", + "name" : "getDialogWindowState" + }, + "acm002036jsd" : { + "type" : "ControlElement", + "id" : "acm002036jsd", + "name" : "setDialogWindowState" + }, + "acm002037jsd" : { + "type" : "ControlElement", + "id" : "acm002037jsd", + "name" : "lastAutomaticFieldEditorEditProperty" + }, + "acm002038jsd" : { + "type" : "ControlElement", + "id" : "acm002038jsd", + "name" : "getLastAutomaticFieldEditorEdit" + }, + "acm002039jsd" : { + "type" : "ControlElement", + "id" : "acm002039jsd", + "name" : "setLastAutomaticFieldEditorEdit" + }, + "acm002040jsd" : { + "type" : "ControlElement", + "id" : "acm002040jsd", + "name" : "collectAllDatabasePaths" + }, + "acm002041jsd" : { + "type" : "ControlElement", + "id" : "acm002041jsd", + "name" : "addSearchHistory" + }, + "acm002042jsd" : { + "type" : "ControlElement", + "id" : "acm002042jsd", + "name" : "getWholeSearchHistory" + }, + "acm002043jsd" : { + "type" : "ControlElement", + "id" : "acm002043jsd", + "name" : "getLastSearchHistory" + }, + "acm002044jsd" : { + "type" : "ControlElement", + "id" : "acm002044jsd", + "name" : "clearSearchHistory" + }, + "acm002045jsd" : { + "type" : "ClassUnit", + "id" : "acm002045jsd", + "name" : "StateManager", + "compilationUnitId" : "acm002005jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003460jsd", "acm008988jsd", "acm009536jsd", "acm009670jsd", "acm009741jsd", "acm009916jsd", "acm016845jsd", "acm018022jsd", "acm018267jsd", "acm019221jsd" ], + "content" : [ "acm002009jsd", "acm002010jsd", "acm002011jsd", "acm002012jsd", "acm002013jsd", "acm002014jsd", "acm002015jsd", "acm002016jsd", "acm002017jsd", "acm002018jsd", "acm002019jsd", "acm002020jsd", "acm002021jsd", "acm002022jsd", "acm002023jsd", "acm002024jsd", "acm002025jsd", "acm002026jsd", "acm002027jsd", "acm002028jsd", "acm002029jsd", "acm002030jsd", "acm002031jsd", "acm002032jsd", "acm002033jsd", "acm002034jsd", "acm002035jsd", "acm002036jsd", "acm002037jsd", "acm002038jsd", "acm002039jsd", "acm002040jsd", "acm002041jsd", "acm002042jsd", "acm002043jsd", "acm002044jsd" ] + }, + "acm002046jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002046jsd", + "name" : "UpdateTimestampListener", + "parentId" : "acm001569jsd", + "content" : [ "acm002052jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002047jsd" : { + "type" : "CodePackage", + "id" : "acm002047jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002048jsd" ] + }, + "acm002048jsd" : { + "type" : "CodePackage", + "id" : "acm002048jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002049jsd" ] + }, + "acm002049jsd" : { + "type" : "CodePackage", + "id" : "acm002049jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002046jsd" ] + }, + "acm002050jsd" : { + "type" : "ControlElement", + "id" : "acm002050jsd", + "name" : "UpdateTimestampListener" + }, + "acm002051jsd" : { + "type" : "ControlElement", + "id" : "acm002051jsd", + "name" : "listen" + }, + "acm002052jsd" : { + "type" : "ClassUnit", + "id" : "acm002052jsd", + "name" : "UpdateTimestampListener", + "compilationUnitId" : "acm002046jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018580jsd", "acm021206jsd" ], + "content" : [ "acm002050jsd", "acm002051jsd" ] + }, + "acm002053jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002053jsd", + "name" : "WaitForSaveFinishedDialog", + "parentId" : "acm001569jsd", + "content" : [ "acm002060jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002054jsd" : { + "type" : "CodePackage", + "id" : "acm002054jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002055jsd" ] + }, + "acm002055jsd" : { + "type" : "CodePackage", + "id" : "acm002055jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002056jsd" ] + }, + "acm002056jsd" : { + "type" : "CodePackage", + "id" : "acm002056jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002053jsd" ] + }, + "acm002057jsd" : { + "type" : "ControlElement", + "id" : "acm002057jsd", + "name" : "WaitForSaveFinishedDialog" + }, + "acm002058jsd" : { + "type" : "ControlElement", + "id" : "acm002058jsd", + "name" : "showAndWait" + }, + "acm002059jsd" : { + "type" : "ControlElement", + "id" : "acm002059jsd", + "name" : "call" + }, + "acm002060jsd" : { + "type" : "ClassUnit", + "id" : "acm002060jsd", + "name" : "WaitForSaveFinishedDialog", + "compilationUnitId" : "acm002053jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd" ], + "content" : [ "acm002057jsd", "acm002058jsd", "acm002059jsd" ] + }, + "acm002061jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002061jsd", + "name" : "Action", + "parentId" : "acm002065jsd", + "content" : [ "acm002070jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002062jsd" : { + "type" : "CodePackage", + "id" : "acm002062jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002063jsd" ] + }, + "acm002063jsd" : { + "type" : "CodePackage", + "id" : "acm002063jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002064jsd" ] + }, + "acm002064jsd" : { + "type" : "CodePackage", + "id" : "acm002064jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002065jsd" ] + }, + "acm002065jsd" : { + "type" : "CodePackage", + "id" : "acm002065jsd", + "name" : "actions", + "parentId" : "acm001569jsd", + "content" : [ "acm002061jsd", "acm002071jsd", "acm002088jsd", "acm002104jsd", "acm002116jsd", "acm002127jsd", "acm002133jsd" ] + }, + "acm002066jsd" : { + "type" : "ControlElement", + "id" : "acm002066jsd", + "name" : "getIcon" + }, + "acm002067jsd" : { + "type" : "ControlElement", + "id" : "acm002067jsd", + "name" : "getKeyBinding" + }, + "acm002068jsd" : { + "type" : "ControlElement", + "id" : "acm002068jsd", + "name" : "getText" + }, + "acm002069jsd" : { + "type" : "ControlElement", + "id" : "acm002069jsd", + "name" : "getDescription" + }, + "acm002070jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002070jsd", + "name" : "Action", + "compilationUnitId" : "acm002061jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm005768jsd" ], + "content" : [ "acm002066jsd", "acm002067jsd", "acm002068jsd", "acm002069jsd" ] + }, + "acm002071jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002071jsd", + "name" : "ActionFactory", + "parentId" : "acm002065jsd", + "content" : [ "acm002087jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002072jsd" : { + "type" : "CodePackage", + "id" : "acm002072jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002073jsd" ] + }, + "acm002073jsd" : { + "type" : "CodePackage", + "id" : "acm002073jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002074jsd" ] + }, + "acm002074jsd" : { + "type" : "CodePackage", + "id" : "acm002074jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002075jsd" ] + }, + "acm002075jsd" : { + "type" : "CodePackage", + "id" : "acm002075jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002071jsd" ] + }, + "acm002076jsd" : { + "type" : "ControlElement", + "id" : "acm002076jsd", + "name" : "ActionFactory" + }, + "acm002077jsd" : { + "type" : "ControlElement", + "id" : "acm002077jsd", + "name" : "setGraphic" + }, + "acm002078jsd" : { + "type" : "ControlElement", + "id" : "acm002078jsd", + "name" : "getAssociatedNode" + }, + "acm002079jsd" : { + "type" : "ControlElement", + "id" : "acm002079jsd", + "name" : "configureMenuItem" + }, + "acm002080jsd" : { + "type" : "ControlElement", + "id" : "acm002080jsd", + "name" : "createMenuItem" + }, + "acm002081jsd" : { + "type" : "ControlElement", + "id" : "acm002081jsd", + "name" : "createCheckMenuItem" + }, + "acm002082jsd" : { + "type" : "ControlElement", + "id" : "acm002082jsd", + "name" : "createCheckMenuItem" + }, + "acm002083jsd" : { + "type" : "ControlElement", + "id" : "acm002083jsd", + "name" : "createMenu" + }, + "acm002084jsd" : { + "type" : "ControlElement", + "id" : "acm002084jsd", + "name" : "createSubMenu" + }, + "acm002085jsd" : { + "type" : "ControlElement", + "id" : "acm002085jsd", + "name" : "createIconButton" + }, + "acm002086jsd" : { + "type" : "ControlElement", + "id" : "acm002086jsd", + "name" : "configureIconButton" + }, + "acm002087jsd" : { + "type" : "ClassUnit", + "id" : "acm002087jsd", + "name" : "ActionFactory", + "compilationUnitId" : "acm002071jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm002087jsd", "acm002115jsd", "acm002126jsd", "acm005802jsd" ], + "content" : [ "acm002076jsd", "acm002077jsd", "acm002078jsd", "acm002079jsd", "acm002080jsd", "acm002081jsd", "acm002082jsd", "acm002083jsd", "acm002084jsd", "acm002085jsd", "acm002086jsd" ] + }, + "acm002088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002088jsd", + "name" : "ActionHelper", + "parentId" : "acm002065jsd", + "content" : [ "acm002103jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002089jsd" : { + "type" : "CodePackage", + "id" : "acm002089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002090jsd" ] + }, + "acm002090jsd" : { + "type" : "CodePackage", + "id" : "acm002090jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002091jsd" ] + }, + "acm002091jsd" : { + "type" : "CodePackage", + "id" : "acm002091jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002092jsd" ] + }, + "acm002092jsd" : { + "type" : "CodePackage", + "id" : "acm002092jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002088jsd" ] + }, + "acm002093jsd" : { + "type" : "ControlElement", + "id" : "acm002093jsd", + "name" : "needsDatabase" + }, + "acm002094jsd" : { + "type" : "ControlElement", + "id" : "acm002094jsd", + "name" : "needsSharedDatabase" + }, + "acm002095jsd" : { + "type" : "ControlElement", + "id" : "acm002095jsd", + "name" : "needsStudyDatabase" + }, + "acm002096jsd" : { + "type" : "ControlElement", + "id" : "acm002096jsd", + "name" : "needsEntriesSelected" + }, + "acm002097jsd" : { + "type" : "ControlElement", + "id" : "acm002097jsd", + "name" : "needsEntriesSelected" + }, + "acm002098jsd" : { + "type" : "ControlElement", + "id" : "acm002098jsd", + "name" : "isFieldSetForSelectedEntry" + }, + "acm002099jsd" : { + "type" : "ControlElement", + "id" : "acm002099jsd", + "name" : "isAnyFieldSetForSelectedEntry" + }, + "acm002100jsd" : { + "type" : "ControlElement", + "id" : "acm002100jsd", + "name" : "isFilePresentForSelectedEntry" + }, + "acm002101jsd" : { + "type" : "ControlElement", + "id" : "acm002101jsd", + "name" : "hasLinkedFileForSelectedEntries" + }, + "acm002102jsd" : { + "type" : "ControlElement", + "id" : "acm002102jsd", + "name" : "isOpenMultiDatabase" + }, + "acm002103jsd" : { + "type" : "ClassUnit", + "id" : "acm002103jsd", + "name" : "ActionHelper", + "compilationUnitId" : "acm002088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm002093jsd", "acm002094jsd", "acm002095jsd", "acm002096jsd", "acm002097jsd", "acm002098jsd", "acm002099jsd", "acm002100jsd", "acm002101jsd", "acm002102jsd" ] + }, + "acm002104jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002104jsd", + "name" : "JabRefAction", + "parentId" : "acm002065jsd", + "content" : [ "acm002115jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002105jsd" : { + "type" : "CodePackage", + "id" : "acm002105jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002106jsd" ] + }, + "acm002106jsd" : { + "type" : "CodePackage", + "id" : "acm002106jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002107jsd" ] + }, + "acm002107jsd" : { + "type" : "CodePackage", + "id" : "acm002107jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002108jsd" ] + }, + "acm002108jsd" : { + "type" : "CodePackage", + "id" : "acm002108jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002104jsd" ] + }, + "acm002109jsd" : { + "type" : "ControlElement", + "id" : "acm002109jsd", + "name" : "JabRefAction" + }, + "acm002110jsd" : { + "type" : "ControlElement", + "id" : "acm002110jsd", + "name" : "JabRefAction" + }, + "acm002111jsd" : { + "type" : "ControlElement", + "id" : "acm002111jsd", + "name" : "JabRefAction" + }, + "acm002112jsd" : { + "type" : "ControlElement", + "id" : "acm002112jsd", + "name" : "getActionName" + }, + "acm002113jsd" : { + "type" : "ControlElement", + "id" : "acm002113jsd", + "name" : "trackExecute" + }, + "acm002114jsd" : { + "type" : "ControlElement", + "id" : "acm002114jsd", + "name" : "trackUserActionSource" + }, + "acm002115jsd" : { + "type" : "ClassUnit", + "id" : "acm002115jsd", + "name" : "JabRefAction", + "compilationUnitId" : "acm002104jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm002126jsd", "acm002132jsd", "acm005802jsd" ], + "content" : [ "acm002109jsd", "acm002110jsd", "acm002111jsd", "acm002112jsd", "acm002113jsd", "acm002114jsd" ] + }, + "acm002116jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002116jsd", + "name" : "SimpleCommand", + "parentId" : "acm002065jsd", + "content" : [ "acm002126jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002117jsd" : { + "type" : "CodePackage", + "id" : "acm002117jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002118jsd" ] + }, + "acm002118jsd" : { + "type" : "CodePackage", + "id" : "acm002118jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002119jsd" ] + }, + "acm002119jsd" : { + "type" : "CodePackage", + "id" : "acm002119jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002120jsd" ] + }, + "acm002120jsd" : { + "type" : "CodePackage", + "id" : "acm002120jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002116jsd" ] + }, + "acm002121jsd" : { + "type" : "ControlElement", + "id" : "acm002121jsd", + "name" : "getStatusMessage" + }, + "acm002122jsd" : { + "type" : "ControlElement", + "id" : "acm002122jsd", + "name" : "statusMessageProperty" + }, + "acm002123jsd" : { + "type" : "ControlElement", + "id" : "acm002123jsd", + "name" : "getProgress" + }, + "acm002124jsd" : { + "type" : "ControlElement", + "id" : "acm002124jsd", + "name" : "progressProperty" + }, + "acm002125jsd" : { + "type" : "ControlElement", + "id" : "acm002125jsd", + "name" : "setExecutable" + }, + "acm002126jsd" : { + "type" : "ClassUnit", + "id" : "acm002126jsd", + "name" : "SimpleCommand", + "compilationUnitId" : "acm002116jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002121jsd", "acm002122jsd", "acm002123jsd", "acm002124jsd", "acm002125jsd" ] + }, + "acm002127jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002127jsd", + "name" : "Sources", + "parentId" : "acm002065jsd", + "content" : [ "acm002132jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002128jsd" : { + "type" : "CodePackage", + "id" : "acm002128jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002129jsd" ] + }, + "acm002129jsd" : { + "type" : "CodePackage", + "id" : "acm002129jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002130jsd" ] + }, + "acm002130jsd" : { + "type" : "CodePackage", + "id" : "acm002130jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002131jsd" ] + }, + "acm002131jsd" : { + "type" : "CodePackage", + "id" : "acm002131jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002127jsd" ] + }, + "acm002132jsd" : { + "type" : "ClassUnit", + "id" : "acm002132jsd", + "name" : "Sources", + "compilationUnitId" : "acm002127jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002133jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002133jsd", + "name" : "StandardActions", + "parentId" : "acm002065jsd", + "content" : [ "acm002150jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002134jsd" : { + "type" : "CodePackage", + "id" : "acm002134jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002135jsd" ] + }, + "acm002135jsd" : { + "type" : "CodePackage", + "id" : "acm002135jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002136jsd" ] + }, + "acm002136jsd" : { + "type" : "CodePackage", + "id" : "acm002136jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002137jsd" ] + }, + "acm002137jsd" : { + "type" : "CodePackage", + "id" : "acm002137jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm002133jsd" ] + }, + "acm002138jsd" : { + "type" : "ControlElement", + "id" : "acm002138jsd", + "name" : "StandardActions" + }, + "acm002139jsd" : { + "type" : "ControlElement", + "id" : "acm002139jsd", + "name" : "StandardActions" + }, + "acm002140jsd" : { + "type" : "ControlElement", + "id" : "acm002140jsd", + "name" : "StandardActions" + }, + "acm002141jsd" : { + "type" : "ControlElement", + "id" : "acm002141jsd", + "name" : "StandardActions" + }, + "acm002142jsd" : { + "type" : "ControlElement", + "id" : "acm002142jsd", + "name" : "StandardActions" + }, + "acm002143jsd" : { + "type" : "ControlElement", + "id" : "acm002143jsd", + "name" : "StandardActions" + }, + "acm002144jsd" : { + "type" : "ControlElement", + "id" : "acm002144jsd", + "name" : "StandardActions" + }, + "acm002145jsd" : { + "type" : "ControlElement", + "id" : "acm002145jsd", + "name" : "StandardActions" + }, + "acm002146jsd" : { + "type" : "ControlElement", + "id" : "acm002146jsd", + "name" : "getIcon" + }, + "acm002147jsd" : { + "type" : "ControlElement", + "id" : "acm002147jsd", + "name" : "getKeyBinding" + }, + "acm002148jsd" : { + "type" : "ControlElement", + "id" : "acm002148jsd", + "name" : "getText" + }, + "acm002149jsd" : { + "type" : "ControlElement", + "id" : "acm002149jsd", + "name" : "getDescription" + }, + "acm002150jsd" : { + "type" : "ClassUnit", + "id" : "acm002150jsd", + "name" : "StandardActions", + "compilationUnitId" : "acm002133jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002070jsd" ], + "datatypeReferencesIds" : [ "acm005389jsd", "acm005416jsd", "acm005768jsd" ], + "content" : [ "acm002138jsd", "acm002139jsd", "acm002140jsd", "acm002141jsd", "acm002142jsd", "acm002143jsd", "acm002144jsd", "acm002145jsd", "acm002146jsd", "acm002147jsd", "acm002148jsd", "acm002149jsd" ] + }, + "acm002151jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002151jsd", + "name" : "AppendPersonNamesStrategy", + "parentId" : "acm002155jsd", + "content" : [ "acm002159jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002152jsd" : { + "type" : "CodePackage", + "id" : "acm002152jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002153jsd" ] + }, + "acm002153jsd" : { + "type" : "CodePackage", + "id" : "acm002153jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002154jsd" ] + }, + "acm002154jsd" : { + "type" : "CodePackage", + "id" : "acm002154jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002155jsd" ] + }, + "acm002155jsd" : { + "type" : "CodePackage", + "id" : "acm002155jsd", + "name" : "autocompleter", + "parentId" : "acm001569jsd", + "content" : [ "acm002151jsd", "acm002160jsd", "acm002169jsd", "acm002176jsd", "acm002195jsd", "acm002204jsd", "acm002211jsd", "acm002232jsd", "acm002243jsd", "acm002252jsd", "acm002262jsd", "acm002270jsd", "acm002278jsd", "acm002288jsd", "acm002301jsd", "acm002308jsd", "acm002318jsd", "acm002330jsd", "acm002339jsd", "acm021366jsd", "acm021374jsd", "acm021383jsd", "acm021399jsd", "acm021414jsd", "acm021434jsd", "acm021456jsd", "acm021465jsd", "acm021489jsd" ] + }, + "acm002156jsd" : { + "type" : "ControlElement", + "id" : "acm002156jsd", + "name" : "AppendPersonNamesStrategy" + }, + "acm002157jsd" : { + "type" : "ControlElement", + "id" : "acm002157jsd", + "name" : "AppendPersonNamesStrategy" + }, + "acm002158jsd" : { + "type" : "ControlElement", + "id" : "acm002158jsd", + "name" : "getDelimiter" + }, + "acm002159jsd" : { + "type" : "ClassUnit", + "id" : "acm002159jsd", + "name" : "AppendPersonNamesStrategy", + "compilationUnitId" : "acm002151jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002168jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002156jsd", "acm002157jsd", "acm002158jsd" ] + }, + "acm002160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002160jsd", + "name" : "AppendWordsStrategy", + "parentId" : "acm002155jsd", + "content" : [ "acm002168jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002161jsd" : { + "type" : "CodePackage", + "id" : "acm002161jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002162jsd" ] + }, + "acm002162jsd" : { + "type" : "CodePackage", + "id" : "acm002162jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002163jsd" ] + }, + "acm002163jsd" : { + "type" : "CodePackage", + "id" : "acm002163jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002164jsd" ] + }, + "acm002164jsd" : { + "type" : "CodePackage", + "id" : "acm002164jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002160jsd" ] + }, + "acm002165jsd" : { + "type" : "ControlElement", + "id" : "acm002165jsd", + "name" : "getDelimiter" + }, + "acm002166jsd" : { + "type" : "ControlElement", + "id" : "acm002166jsd", + "name" : "analyze" + }, + "acm002167jsd" : { + "type" : "ControlElement", + "id" : "acm002167jsd", + "name" : "determinePrefixAndReturnRemainder" + }, + "acm002168jsd" : { + "type" : "ClassUnit", + "id" : "acm002168jsd", + "name" : "AppendWordsStrategy", + "compilationUnitId" : "acm002160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002210jsd" ], + "datatypeReferencesIds" : [ "acm002203jsd" ], + "content" : [ "acm002165jsd", "acm002166jsd", "acm002167jsd" ] + }, + "acm002169jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002169jsd", + "name" : "AutoCompleteFirstNameMode", + "parentId" : "acm002155jsd", + "content" : [ "acm002175jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002170jsd" : { + "type" : "CodePackage", + "id" : "acm002170jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002171jsd" ] + }, + "acm002171jsd" : { + "type" : "CodePackage", + "id" : "acm002171jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002172jsd" ] + }, + "acm002172jsd" : { + "type" : "CodePackage", + "id" : "acm002172jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002173jsd" ] + }, + "acm002173jsd" : { + "type" : "CodePackage", + "id" : "acm002173jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002169jsd" ] + }, + "acm002174jsd" : { + "type" : "ControlElement", + "id" : "acm002174jsd", + "name" : "parse" + }, + "acm002175jsd" : { + "type" : "ClassUnit", + "id" : "acm002175jsd", + "name" : "AutoCompleteFirstNameMode", + "compilationUnitId" : "acm002169jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002175jsd" ], + "content" : [ "acm002174jsd" ] + }, + "acm002176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002176jsd", + "name" : "AutoCompletePreferences", + "parentId" : "acm002155jsd", + "content" : [ "acm002193jsd", "acm002194jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002177jsd" : { + "type" : "CodePackage", + "id" : "acm002177jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002178jsd" ] + }, + "acm002178jsd" : { + "type" : "CodePackage", + "id" : "acm002178jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002179jsd" ] + }, + "acm002179jsd" : { + "type" : "CodePackage", + "id" : "acm002179jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002180jsd" ] + }, + "acm002180jsd" : { + "type" : "CodePackage", + "id" : "acm002180jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002176jsd" ] + }, + "acm002181jsd" : { + "type" : "ControlElement", + "id" : "acm002181jsd", + "name" : "AutoCompletePreferences" + }, + "acm002182jsd" : { + "type" : "ControlElement", + "id" : "acm002182jsd", + "name" : "shouldAutoComplete" + }, + "acm002183jsd" : { + "type" : "ControlElement", + "id" : "acm002183jsd", + "name" : "autoCompleteProperty" + }, + "acm002184jsd" : { + "type" : "ControlElement", + "id" : "acm002184jsd", + "name" : "setAutoComplete" + }, + "acm002185jsd" : { + "type" : "ControlElement", + "id" : "acm002185jsd", + "name" : "getFirstNameMode" + }, + "acm002186jsd" : { + "type" : "ControlElement", + "id" : "acm002186jsd", + "name" : "firstNameModeProperty" + }, + "acm002187jsd" : { + "type" : "ControlElement", + "id" : "acm002187jsd", + "name" : "setFirstNameMode" + }, + "acm002188jsd" : { + "type" : "ControlElement", + "id" : "acm002188jsd", + "name" : "getNameFormat" + }, + "acm002189jsd" : { + "type" : "ControlElement", + "id" : "acm002189jsd", + "name" : "nameFormatProperty" + }, + "acm002190jsd" : { + "type" : "ControlElement", + "id" : "acm002190jsd", + "name" : "setNameFormat" + }, + "acm002191jsd" : { + "type" : "ControlElement", + "id" : "acm002191jsd", + "name" : "getCompleteFields" + }, + "acm002192jsd" : { + "type" : "ControlElement", + "id" : "acm002192jsd", + "name" : "getCompleteNamesAsString" + }, + "acm002193jsd" : { + "type" : "ClassUnit", + "id" : "acm002193jsd", + "name" : "AutoCompletePreferences", + "compilationUnitId" : "acm002176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002175jsd", "acm002194jsd", "acm018673jsd" ], + "content" : [ "acm002181jsd", "acm002182jsd", "acm002183jsd", "acm002184jsd", "acm002185jsd", "acm002186jsd", "acm002187jsd", "acm002188jsd", "acm002189jsd", "acm002190jsd", "acm002191jsd", "acm002192jsd" ] + }, + "acm002194jsd" : { + "type" : "ClassUnit", + "id" : "acm002194jsd", + "name" : "NameFormat", + "compilationUnitId" : "acm002176jsd", + "parentDatatypeId" : "acm002193jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002195jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002195jsd", + "name" : "AutoCompletionInput", + "parentId" : "acm002155jsd", + "content" : [ "acm002203jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002196jsd" : { + "type" : "CodePackage", + "id" : "acm002196jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002197jsd" ] + }, + "acm002197jsd" : { + "type" : "CodePackage", + "id" : "acm002197jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002198jsd" ] + }, + "acm002198jsd" : { + "type" : "CodePackage", + "id" : "acm002198jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002199jsd" ] + }, + "acm002199jsd" : { + "type" : "CodePackage", + "id" : "acm002199jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002195jsd" ] + }, + "acm002200jsd" : { + "type" : "ControlElement", + "id" : "acm002200jsd", + "name" : "AutoCompletionInput" + }, + "acm002201jsd" : { + "type" : "ControlElement", + "id" : "acm002201jsd", + "name" : "getUnfinishedPart" + }, + "acm002202jsd" : { + "type" : "ControlElement", + "id" : "acm002202jsd", + "name" : "getPrefix" + }, + "acm002203jsd" : { + "type" : "ClassUnit", + "id" : "acm002203jsd", + "name" : "AutoCompletionInput", + "compilationUnitId" : "acm002195jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002200jsd", "acm002201jsd", "acm002202jsd" ] + }, + "acm002204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002204jsd", + "name" : "AutoCompletionStrategy", + "parentId" : "acm002155jsd", + "content" : [ "acm002210jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002205jsd" : { + "type" : "CodePackage", + "id" : "acm002205jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002206jsd" ] + }, + "acm002206jsd" : { + "type" : "CodePackage", + "id" : "acm002206jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002207jsd" ] + }, + "acm002207jsd" : { + "type" : "CodePackage", + "id" : "acm002207jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002208jsd" ] + }, + "acm002208jsd" : { + "type" : "CodePackage", + "id" : "acm002208jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002204jsd" ] + }, + "acm002209jsd" : { + "type" : "ControlElement", + "id" : "acm002209jsd", + "name" : "analyze" + }, + "acm002210jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002210jsd", + "name" : "AutoCompletionStrategy", + "compilationUnitId" : "acm002204jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002203jsd" ], + "content" : [ "acm002209jsd" ] + }, + "acm002211jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002211jsd", + "name" : "AutoCompletionTextInputBinding", + "parentId" : "acm002155jsd", + "content" : [ "acm002231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002212jsd" : { + "type" : "CodePackage", + "id" : "acm002212jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002213jsd" ] + }, + "acm002213jsd" : { + "type" : "CodePackage", + "id" : "acm002213jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002214jsd" ] + }, + "acm002214jsd" : { + "type" : "CodePackage", + "id" : "acm002214jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002215jsd" ] + }, + "acm002215jsd" : { + "type" : "CodePackage", + "id" : "acm002215jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002211jsd" ] + }, + "acm002216jsd" : { + "type" : "ControlElement", + "id" : "acm002216jsd", + "name" : "AutoCompletionTextInputBinding" + }, + "acm002217jsd" : { + "type" : "ControlElement", + "id" : "acm002217jsd", + "name" : "AutoCompletionTextInputBinding" + }, + "acm002218jsd" : { + "type" : "ControlElement", + "id" : "acm002218jsd", + "name" : "AutoCompletionTextInputBinding" + }, + "acm002219jsd" : { + "type" : "ControlElement", + "id" : "acm002219jsd", + "name" : "defaultStringConverter" + }, + "acm002220jsd" : { + "type" : "ControlElement", + "id" : "acm002220jsd", + "name" : "toString" + }, + "acm002221jsd" : { + "type" : "ControlElement", + "id" : "acm002221jsd", + "name" : "fromString" + }, + "acm002222jsd" : { + "type" : "ControlElement", + "id" : "acm002222jsd", + "name" : "autoComplete" + }, + "acm002223jsd" : { + "type" : "ControlElement", + "id" : "acm002223jsd", + "name" : "autoComplete" + }, + "acm002224jsd" : { + "type" : "ControlElement", + "id" : "acm002224jsd", + "name" : "autoComplete" + }, + "acm002225jsd" : { + "type" : "ControlElement", + "id" : "acm002225jsd", + "name" : "autoComplete" + }, + "acm002226jsd" : { + "type" : "ControlElement", + "id" : "acm002226jsd", + "name" : "setUserInputText" + }, + "acm002227jsd" : { + "type" : "ControlElement", + "id" : "acm002227jsd", + "name" : "getCompletionTarget" + }, + "acm002228jsd" : { + "type" : "ControlElement", + "id" : "acm002228jsd", + "name" : "dispose" + }, + "acm002229jsd" : { + "type" : "ControlElement", + "id" : "acm002229jsd", + "name" : "completeUserInput" + }, + "acm002230jsd" : { + "type" : "ControlElement", + "id" : "acm002230jsd", + "name" : "setShowOnFocus" + }, + "acm002231jsd" : { + "type" : "ClassUnit", + "id" : "acm002231jsd", + "name" : "AutoCompletionTextInputBinding", + "compilationUnitId" : "acm002211jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002203jsd", "acm002210jsd", "acm002231jsd", "acm002307jsd" ], + "content" : [ "acm002216jsd", "acm002217jsd", "acm002218jsd", "acm002219jsd", "acm002220jsd", "acm002221jsd", "acm002222jsd", "acm002223jsd", "acm002224jsd", "acm002225jsd", "acm002226jsd", "acm002227jsd", "acm002228jsd", "acm002229jsd", "acm002230jsd" ] + }, + "acm002232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002232jsd", + "name" : "BibEntrySuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002242jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002233jsd" : { + "type" : "CodePackage", + "id" : "acm002233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002234jsd" ] + }, + "acm002234jsd" : { + "type" : "CodePackage", + "id" : "acm002234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002235jsd" ] + }, + "acm002235jsd" : { + "type" : "CodePackage", + "id" : "acm002235jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002236jsd" ] + }, + "acm002236jsd" : { + "type" : "CodePackage", + "id" : "acm002236jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002232jsd" ] + }, + "acm002237jsd" : { + "type" : "ControlElement", + "id" : "acm002237jsd", + "name" : "BibEntrySuggestionProvider" + }, + "acm002238jsd" : { + "type" : "ControlElement", + "id" : "acm002238jsd", + "name" : "getEquivalence" + }, + "acm002239jsd" : { + "type" : "ControlElement", + "id" : "acm002239jsd", + "name" : "getComparator" + }, + "acm002240jsd" : { + "type" : "ControlElement", + "id" : "acm002240jsd", + "name" : "isMatch" + }, + "acm002241jsd" : { + "type" : "ControlElement", + "id" : "acm002241jsd", + "name" : "getSource" + }, + "acm002242jsd" : { + "type" : "ClassUnit", + "id" : "acm002242jsd", + "name" : "BibEntrySuggestionProvider", + "compilationUnitId" : "acm002232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002329jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010599jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm002237jsd", "acm002238jsd", "acm002239jsd", "acm002240jsd", "acm002241jsd" ] + }, + "acm002243jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002243jsd", + "name" : "ContentSelectorSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002251jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002244jsd" : { + "type" : "CodePackage", + "id" : "acm002244jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002245jsd" ] + }, + "acm002245jsd" : { + "type" : "CodePackage", + "id" : "acm002245jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002246jsd" ] + }, + "acm002246jsd" : { + "type" : "CodePackage", + "id" : "acm002246jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002247jsd" ] + }, + "acm002247jsd" : { + "type" : "CodePackage", + "id" : "acm002247jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002243jsd" ] + }, + "acm002248jsd" : { + "type" : "ControlElement", + "id" : "acm002248jsd", + "name" : "ContentSelectorSuggestionProvider" + }, + "acm002249jsd" : { + "type" : "ControlElement", + "id" : "acm002249jsd", + "name" : "getSource" + }, + "acm002250jsd" : { + "type" : "ControlElement", + "id" : "acm002250jsd", + "name" : "getPossibleSuggestions" + }, + "acm002251jsd" : { + "type" : "ClassUnit", + "id" : "acm002251jsd", + "name" : "ContentSelectorSuggestionProvider", + "compilationUnitId" : "acm002243jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002317jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002248jsd", "acm002249jsd", "acm002250jsd" ] + }, + "acm002252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002252jsd", + "name" : "EmptySuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002261jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002253jsd" : { + "type" : "CodePackage", + "id" : "acm002253jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002254jsd" ] + }, + "acm002254jsd" : { + "type" : "CodePackage", + "id" : "acm002254jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002255jsd" ] + }, + "acm002255jsd" : { + "type" : "CodePackage", + "id" : "acm002255jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002256jsd" ] + }, + "acm002256jsd" : { + "type" : "CodePackage", + "id" : "acm002256jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002252jsd" ] + }, + "acm002257jsd" : { + "type" : "ControlElement", + "id" : "acm002257jsd", + "name" : "getEquivalence" + }, + "acm002258jsd" : { + "type" : "ControlElement", + "id" : "acm002258jsd", + "name" : "getComparator" + }, + "acm002259jsd" : { + "type" : "ControlElement", + "id" : "acm002259jsd", + "name" : "isMatch" + }, + "acm002260jsd" : { + "type" : "ControlElement", + "id" : "acm002260jsd", + "name" : "getSource" + }, + "acm002261jsd" : { + "type" : "ClassUnit", + "id" : "acm002261jsd", + "name" : "EmptySuggestionProvider", + "compilationUnitId" : "acm002252jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002257jsd", "acm002258jsd", "acm002259jsd", "acm002260jsd" ] + }, + "acm002262jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002262jsd", + "name" : "FieldValueSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002269jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002263jsd" : { + "type" : "CodePackage", + "id" : "acm002263jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002264jsd" ] + }, + "acm002264jsd" : { + "type" : "CodePackage", + "id" : "acm002264jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002265jsd" ] + }, + "acm002265jsd" : { + "type" : "CodePackage", + "id" : "acm002265jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002266jsd" ] + }, + "acm002266jsd" : { + "type" : "CodePackage", + "id" : "acm002266jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002262jsd" ] + }, + "acm002267jsd" : { + "type" : "ControlElement", + "id" : "acm002267jsd", + "name" : "FieldValueSuggestionProvider" + }, + "acm002268jsd" : { + "type" : "ControlElement", + "id" : "acm002268jsd", + "name" : "getSource" + }, + "acm002269jsd" : { + "type" : "ClassUnit", + "id" : "acm002269jsd", + "name" : "FieldValueSuggestionProvider", + "compilationUnitId" : "acm002262jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002317jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018673jsd" ], + "content" : [ "acm002267jsd", "acm002268jsd" ] + }, + "acm002270jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002270jsd", + "name" : "JournalsSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002277jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002271jsd" : { + "type" : "CodePackage", + "id" : "acm002271jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002272jsd" ] + }, + "acm002272jsd" : { + "type" : "CodePackage", + "id" : "acm002272jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002273jsd" ] + }, + "acm002273jsd" : { + "type" : "CodePackage", + "id" : "acm002273jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002274jsd" ] + }, + "acm002274jsd" : { + "type" : "CodePackage", + "id" : "acm002274jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002270jsd" ] + }, + "acm002275jsd" : { + "type" : "ControlElement", + "id" : "acm002275jsd", + "name" : "JournalsSuggestionProvider" + }, + "acm002276jsd" : { + "type" : "ControlElement", + "id" : "acm002276jsd", + "name" : "getSource" + }, + "acm002277jsd" : { + "type" : "ClassUnit", + "id" : "acm002277jsd", + "name" : "JournalsSuggestionProvider", + "compilationUnitId" : "acm002270jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002269jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm017988jsd", "acm018673jsd" ], + "content" : [ "acm002275jsd", "acm002276jsd" ] + }, + "acm002278jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002278jsd", + "name" : "PersonNameStringConverter", + "parentId" : "acm002155jsd", + "content" : [ "acm002287jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002279jsd" : { + "type" : "CodePackage", + "id" : "acm002279jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002280jsd" ] + }, + "acm002280jsd" : { + "type" : "CodePackage", + "id" : "acm002280jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002281jsd" ] + }, + "acm002281jsd" : { + "type" : "CodePackage", + "id" : "acm002281jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002282jsd" ] + }, + "acm002282jsd" : { + "type" : "CodePackage", + "id" : "acm002282jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002278jsd" ] + }, + "acm002283jsd" : { + "type" : "ControlElement", + "id" : "acm002283jsd", + "name" : "PersonNameStringConverter" + }, + "acm002284jsd" : { + "type" : "ControlElement", + "id" : "acm002284jsd", + "name" : "PersonNameStringConverter" + }, + "acm002285jsd" : { + "type" : "ControlElement", + "id" : "acm002285jsd", + "name" : "toString" + }, + "acm002286jsd" : { + "type" : "ControlElement", + "id" : "acm002286jsd", + "name" : "fromString" + }, + "acm002287jsd" : { + "type" : "ClassUnit", + "id" : "acm002287jsd", + "name" : "PersonNameStringConverter", + "compilationUnitId" : "acm002278jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002175jsd", "acm002193jsd", "acm018138jsd" ], + "content" : [ "acm002283jsd", "acm002284jsd", "acm002285jsd", "acm002286jsd" ] + }, + "acm002288jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002288jsd", + "name" : "PersonNameSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002300jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002289jsd" : { + "type" : "CodePackage", + "id" : "acm002289jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002290jsd" ] + }, + "acm002290jsd" : { + "type" : "CodePackage", + "id" : "acm002290jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002291jsd" ] + }, + "acm002291jsd" : { + "type" : "CodePackage", + "id" : "acm002291jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002292jsd" ] + }, + "acm002292jsd" : { + "type" : "CodePackage", + "id" : "acm002292jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002288jsd" ] + }, + "acm002293jsd" : { + "type" : "ControlElement", + "id" : "acm002293jsd", + "name" : "PersonNameSuggestionProvider" + }, + "acm002294jsd" : { + "type" : "ControlElement", + "id" : "acm002294jsd", + "name" : "PersonNameSuggestionProvider" + }, + "acm002295jsd" : { + "type" : "ControlElement", + "id" : "acm002295jsd", + "name" : "getAuthors" + }, + "acm002296jsd" : { + "type" : "ControlElement", + "id" : "acm002296jsd", + "name" : "getEquivalence" + }, + "acm002297jsd" : { + "type" : "ControlElement", + "id" : "acm002297jsd", + "name" : "getComparator" + }, + "acm002298jsd" : { + "type" : "ControlElement", + "id" : "acm002298jsd", + "name" : "isMatch" + }, + "acm002299jsd" : { + "type" : "ControlElement", + "id" : "acm002299jsd", + "name" : "getSource" + }, + "acm002300jsd" : { + "type" : "ClassUnit", + "id" : "acm002300jsd", + "name" : "PersonNameSuggestionProvider", + "compilationUnitId" : "acm002288jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002329jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018138jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm002293jsd", "acm002294jsd", "acm002295jsd", "acm002296jsd", "acm002297jsd", "acm002298jsd", "acm002299jsd" ] + }, + "acm002301jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002301jsd", + "name" : "ReplaceStrategy", + "parentId" : "acm002155jsd", + "content" : [ "acm002307jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002302jsd" : { + "type" : "CodePackage", + "id" : "acm002302jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002303jsd" ] + }, + "acm002303jsd" : { + "type" : "CodePackage", + "id" : "acm002303jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002304jsd" ] + }, + "acm002304jsd" : { + "type" : "CodePackage", + "id" : "acm002304jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002305jsd" ] + }, + "acm002305jsd" : { + "type" : "CodePackage", + "id" : "acm002305jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002301jsd" ] + }, + "acm002306jsd" : { + "type" : "ControlElement", + "id" : "acm002306jsd", + "name" : "analyze" + }, + "acm002307jsd" : { + "type" : "ClassUnit", + "id" : "acm002307jsd", + "name" : "ReplaceStrategy", + "compilationUnitId" : "acm002301jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002210jsd" ], + "datatypeReferencesIds" : [ "acm002203jsd" ], + "content" : [ "acm002306jsd" ] + }, + "acm002308jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002308jsd", + "name" : "StringSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002317jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002309jsd" : { + "type" : "CodePackage", + "id" : "acm002309jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002310jsd" ] + }, + "acm002310jsd" : { + "type" : "CodePackage", + "id" : "acm002310jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002311jsd" ] + }, + "acm002311jsd" : { + "type" : "CodePackage", + "id" : "acm002311jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002312jsd" ] + }, + "acm002312jsd" : { + "type" : "CodePackage", + "id" : "acm002312jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002308jsd" ] + }, + "acm002313jsd" : { + "type" : "ControlElement", + "id" : "acm002313jsd", + "name" : "getEquivalence" + }, + "acm002314jsd" : { + "type" : "ControlElement", + "id" : "acm002314jsd", + "name" : "getComparator" + }, + "acm002315jsd" : { + "type" : "ControlElement", + "id" : "acm002315jsd", + "name" : "isMatch" + }, + "acm002316jsd" : { + "type" : "ControlElement", + "id" : "acm002316jsd", + "name" : "getSource" + }, + "acm002317jsd" : { + "type" : "ClassUnit", + "id" : "acm002317jsd", + "name" : "StringSuggestionProvider", + "compilationUnitId" : "acm002308jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002313jsd", "acm002314jsd", "acm002315jsd", "acm002316jsd" ] + }, + "acm002318jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002318jsd", + "name" : "SuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002329jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002319jsd" : { + "type" : "CodePackage", + "id" : "acm002319jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002320jsd" ] + }, + "acm002320jsd" : { + "type" : "CodePackage", + "id" : "acm002320jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002321jsd" ] + }, + "acm002321jsd" : { + "type" : "CodePackage", + "id" : "acm002321jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002322jsd" ] + }, + "acm002322jsd" : { + "type" : "CodePackage", + "id" : "acm002322jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002318jsd" ] + }, + "acm002323jsd" : { + "type" : "ControlElement", + "id" : "acm002323jsd", + "name" : "provideSuggestions" + }, + "acm002324jsd" : { + "type" : "ControlElement", + "id" : "acm002324jsd", + "name" : "getEquivalence" + }, + "acm002325jsd" : { + "type" : "ControlElement", + "id" : "acm002325jsd", + "name" : "getPossibleSuggestions" + }, + "acm002326jsd" : { + "type" : "ControlElement", + "id" : "acm002326jsd", + "name" : "getComparator" + }, + "acm002327jsd" : { + "type" : "ControlElement", + "id" : "acm002327jsd", + "name" : "isMatch" + }, + "acm002328jsd" : { + "type" : "ControlElement", + "id" : "acm002328jsd", + "name" : "getSource" + }, + "acm002329jsd" : { + "type" : "ClassUnit", + "id" : "acm002329jsd", + "name" : "SuggestionProvider", + "compilationUnitId" : "acm002318jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002323jsd", "acm002324jsd", "acm002325jsd", "acm002326jsd", "acm002327jsd", "acm002328jsd" ] + }, + "acm002330jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002330jsd", + "name" : "SuggestionProviders", + "parentId" : "acm002155jsd", + "content" : [ "acm002338jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002331jsd" : { + "type" : "CodePackage", + "id" : "acm002331jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002332jsd" ] + }, + "acm002332jsd" : { + "type" : "CodePackage", + "id" : "acm002332jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002333jsd" ] + }, + "acm002333jsd" : { + "type" : "CodePackage", + "id" : "acm002333jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002334jsd" ] + }, + "acm002334jsd" : { + "type" : "CodePackage", + "id" : "acm002334jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002330jsd" ] + }, + "acm002335jsd" : { + "type" : "ControlElement", + "id" : "acm002335jsd", + "name" : "SuggestionProviders" + }, + "acm002336jsd" : { + "type" : "ControlElement", + "id" : "acm002336jsd", + "name" : "SuggestionProviders" + }, + "acm002337jsd" : { + "type" : "ControlElement", + "id" : "acm002337jsd", + "name" : "getForField" + }, + "acm002338jsd" : { + "type" : "ClassUnit", + "id" : "acm002338jsd", + "name" : "SuggestionProviders", + "compilationUnitId" : "acm002330jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm002193jsd", "acm002242jsd", "acm002261jsd", "acm002277jsd", "acm002300jsd", "acm002329jsd", "acm002346jsd", "acm017988jsd", "acm018673jsd", "acm018716jsd" ], + "content" : [ "acm002335jsd", "acm002336jsd", "acm002337jsd" ] + }, + "acm002339jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002339jsd", + "name" : "WordSuggestionProvider", + "parentId" : "acm002155jsd", + "content" : [ "acm002346jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002340jsd" : { + "type" : "CodePackage", + "id" : "acm002340jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002341jsd" ] + }, + "acm002341jsd" : { + "type" : "CodePackage", + "id" : "acm002341jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002342jsd" ] + }, + "acm002342jsd" : { + "type" : "CodePackage", + "id" : "acm002342jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002343jsd" ] + }, + "acm002343jsd" : { + "type" : "CodePackage", + "id" : "acm002343jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm002339jsd" ] + }, + "acm002344jsd" : { + "type" : "ControlElement", + "id" : "acm002344jsd", + "name" : "WordSuggestionProvider" + }, + "acm002345jsd" : { + "type" : "ControlElement", + "id" : "acm002345jsd", + "name" : "getSource" + }, + "acm002346jsd" : { + "type" : "ClassUnit", + "id" : "acm002346jsd", + "name" : "WordSuggestionProvider", + "compilationUnitId" : "acm002339jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002317jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018673jsd" ], + "content" : [ "acm002344jsd", "acm002345jsd" ] + }, + "acm002347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002347jsd", + "name" : "AuxParserResultViewModel", + "parentId" : "acm002351jsd", + "content" : [ "acm002354jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "auximport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002348jsd" : { + "type" : "CodePackage", + "id" : "acm002348jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002349jsd" ] + }, + "acm002349jsd" : { + "type" : "CodePackage", + "id" : "acm002349jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002350jsd" ] + }, + "acm002350jsd" : { + "type" : "CodePackage", + "id" : "acm002350jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002351jsd" ] + }, + "acm002351jsd" : { + "type" : "CodePackage", + "id" : "acm002351jsd", + "name" : "auximport", + "parentId" : "acm001569jsd", + "content" : [ "acm002347jsd", "acm002355jsd", "acm002364jsd" ] + }, + "acm002352jsd" : { + "type" : "ControlElement", + "id" : "acm002352jsd", + "name" : "AuxParserResultViewModel" + }, + "acm002353jsd" : { + "type" : "ControlElement", + "id" : "acm002353jsd", + "name" : "getInformation" + }, + "acm002354jsd" : { + "type" : "ClassUnit", + "id" : "acm002354jsd", + "name" : "AuxParserResultViewModel", + "compilationUnitId" : "acm002347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010444jsd" ], + "content" : [ "acm002352jsd", "acm002353jsd" ] + }, + "acm002355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002355jsd", + "name" : "FromAuxDialog", + "parentId" : "acm002351jsd", + "content" : [ "acm002363jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "auximport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002356jsd" : { + "type" : "CodePackage", + "id" : "acm002356jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002357jsd" ] + }, + "acm002357jsd" : { + "type" : "CodePackage", + "id" : "acm002357jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002358jsd" ] + }, + "acm002358jsd" : { + "type" : "CodePackage", + "id" : "acm002358jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002359jsd" ] + }, + "acm002359jsd" : { + "type" : "CodePackage", + "id" : "acm002359jsd", + "name" : "auximport", + "parentId" : null, + "content" : [ "acm002355jsd" ] + }, + "acm002360jsd" : { + "type" : "ControlElement", + "id" : "acm002360jsd", + "name" : "FromAuxDialog" + }, + "acm002361jsd" : { + "type" : "ControlElement", + "id" : "acm002361jsd", + "name" : "parseActionPerformed" + }, + "acm002362jsd" : { + "type" : "ControlElement", + "id" : "acm002362jsd", + "name" : "browseButtonClicked" + }, + "acm002363jsd" : { + "type" : "ClassUnit", + "id" : "acm002363jsd", + "name" : "FromAuxDialog", + "compilationUnitId" : "acm002355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm002354jsd", "acm009346jsd", "acm009796jsd", "acm009809jsd", "acm010424jsd", "acm010444jsd", "acm010458jsd", "acm017988jsd", "acm021206jsd" ], + "content" : [ "acm002360jsd", "acm002361jsd", "acm002362jsd" ] + }, + "acm002364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002364jsd", + "name" : "NewSubLibraryAction", + "parentId" : "acm002351jsd", + "content" : [ "acm002371jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "auximport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002365jsd" : { + "type" : "CodePackage", + "id" : "acm002365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002366jsd" ] + }, + "acm002366jsd" : { + "type" : "CodePackage", + "id" : "acm002366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002367jsd" ] + }, + "acm002367jsd" : { + "type" : "CodePackage", + "id" : "acm002367jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002368jsd" ] + }, + "acm002368jsd" : { + "type" : "CodePackage", + "id" : "acm002368jsd", + "name" : "auximport", + "parentId" : null, + "content" : [ "acm002364jsd" ] + }, + "acm002369jsd" : { + "type" : "ControlElement", + "id" : "acm002369jsd", + "name" : "NewSubLibraryAction" + }, + "acm002370jsd" : { + "type" : "ControlElement", + "id" : "acm002370jsd", + "name" : "execute" + }, + "acm002371jsd" : { + "type" : "ClassUnit", + "id" : "acm002371jsd", + "name" : "NewSubLibraryAction", + "compilationUnitId" : "acm002364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002363jsd" ], + "content" : [ "acm002369jsd", "acm002370jsd" ] + }, + "acm002372jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002372jsd", + "name" : "BackupResolverDialog", + "parentId" : "acm002376jsd", + "content" : [ "acm002378jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "backup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002373jsd" : { + "type" : "CodePackage", + "id" : "acm002373jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002374jsd" ] + }, + "acm002374jsd" : { + "type" : "CodePackage", + "id" : "acm002374jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002375jsd" ] + }, + "acm002375jsd" : { + "type" : "CodePackage", + "id" : "acm002375jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002376jsd" ] + }, + "acm002376jsd" : { + "type" : "CodePackage", + "id" : "acm002376jsd", + "name" : "backup", + "parentId" : "acm001569jsd", + "content" : [ "acm002372jsd" ] + }, + "acm002377jsd" : { + "type" : "ControlElement", + "id" : "acm002377jsd", + "name" : "BackupResolverDialog" + }, + "acm002378jsd" : { + "type" : "ClassUnit", + "id" : "acm002378jsd", + "name" : "BackupResolverDialog", + "compilationUnitId" : "acm002372jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001700jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002378jsd" ], + "content" : [ "acm002377jsd" ] + }, + "acm002379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002379jsd", + "name" : "BibtexExtractor", + "parentId" : "acm002383jsd", + "content" : [ "acm002394jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "bibtexextractor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002380jsd" : { + "type" : "CodePackage", + "id" : "acm002380jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002381jsd" ] + }, + "acm002381jsd" : { + "type" : "CodePackage", + "id" : "acm002381jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002382jsd" ] + }, + "acm002382jsd" : { + "type" : "CodePackage", + "id" : "acm002382jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002383jsd" ] + }, + "acm002383jsd" : { + "type" : "CodePackage", + "id" : "acm002383jsd", + "name" : "bibtexextractor", + "parentId" : "acm001569jsd", + "content" : [ "acm002379jsd", "acm002395jsd", "acm002407jsd", "acm002415jsd" ] + }, + "acm002384jsd" : { + "type" : "ControlElement", + "id" : "acm002384jsd", + "name" : "extract" + }, + "acm002385jsd" : { + "type" : "ControlElement", + "id" : "acm002385jsd", + "name" : "generateEntity" + }, + "acm002386jsd" : { + "type" : "ControlElement", + "id" : "acm002386jsd", + "name" : "findUrls" + }, + "acm002387jsd" : { + "type" : "ControlElement", + "id" : "acm002387jsd", + "name" : "findYear" + }, + "acm002388jsd" : { + "type" : "ControlElement", + "id" : "acm002388jsd", + "name" : "findAuthors" + }, + "acm002389jsd" : { + "type" : "ControlElement", + "id" : "acm002389jsd", + "name" : "findAuthorsByPattern" + }, + "acm002390jsd" : { + "type" : "ControlElement", + "id" : "acm002390jsd", + "name" : "GenerateAuthor" + }, + "acm002391jsd" : { + "type" : "ControlElement", + "id" : "acm002391jsd", + "name" : "findPages" + }, + "acm002392jsd" : { + "type" : "ControlElement", + "id" : "acm002392jsd", + "name" : "fixSpaces" + }, + "acm002393jsd" : { + "type" : "ControlElement", + "id" : "acm002393jsd", + "name" : "findParts" + }, + "acm002394jsd" : { + "type" : "ClassUnit", + "id" : "acm002394jsd", + "name" : "BibtexExtractor", + "compilationUnitId" : "acm002379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm002384jsd", "acm002385jsd", "acm002386jsd", "acm002387jsd", "acm002388jsd", "acm002389jsd", "acm002390jsd", "acm002391jsd", "acm002392jsd", "acm002393jsd" ] + }, + "acm002395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002395jsd", + "name" : "BibtexExtractorViewModel", + "parentId" : "acm002383jsd", + "content" : [ "acm002406jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "bibtexextractor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002396jsd" : { + "type" : "CodePackage", + "id" : "acm002396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002397jsd" ] + }, + "acm002397jsd" : { + "type" : "CodePackage", + "id" : "acm002397jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002398jsd" ] + }, + "acm002398jsd" : { + "type" : "CodePackage", + "id" : "acm002398jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002399jsd" ] + }, + "acm002399jsd" : { + "type" : "CodePackage", + "id" : "acm002399jsd", + "name" : "bibtexextractor", + "parentId" : null, + "content" : [ "acm002395jsd" ] + }, + "acm002400jsd" : { + "type" : "ControlElement", + "id" : "acm002400jsd", + "name" : "BibtexExtractorViewModel" + }, + "acm002401jsd" : { + "type" : "ControlElement", + "id" : "acm002401jsd", + "name" : "inputTextProperty" + }, + "acm002402jsd" : { + "type" : "ControlElement", + "id" : "acm002402jsd", + "name" : "startParsing" + }, + "acm002403jsd" : { + "type" : "ControlElement", + "id" : "acm002403jsd", + "name" : "parseUsingBibtexExtractor" + }, + "acm002404jsd" : { + "type" : "ControlElement", + "id" : "acm002404jsd", + "name" : "parseUsingGrobid" + }, + "acm002405jsd" : { + "type" : "ControlElement", + "id" : "acm002405jsd", + "name" : "trackNewEntry" + }, + "acm002406jsd" : { + "type" : "ClassUnit", + "id" : "acm002406jsd", + "name" : "BibtexExtractorViewModel", + "compilationUnitId" : "acm002395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002394jsd", "acm002406jsd", "acm004223jsd", "acm009965jsd", "acm012428jsd", "acm013045jsd", "acm018022jsd", "acm018267jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm002400jsd", "acm002401jsd", "acm002402jsd", "acm002403jsd", "acm002404jsd", "acm002405jsd" ] + }, + "acm002407jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002407jsd", + "name" : "ExtractBibtexAction", + "parentId" : "acm002383jsd", + "content" : [ "acm002414jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "bibtexextractor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002408jsd" : { + "type" : "CodePackage", + "id" : "acm002408jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002409jsd" ] + }, + "acm002409jsd" : { + "type" : "CodePackage", + "id" : "acm002409jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002410jsd" ] + }, + "acm002410jsd" : { + "type" : "CodePackage", + "id" : "acm002410jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002411jsd" ] + }, + "acm002411jsd" : { + "type" : "CodePackage", + "id" : "acm002411jsd", + "name" : "bibtexextractor", + "parentId" : null, + "content" : [ "acm002407jsd" ] + }, + "acm002412jsd" : { + "type" : "ControlElement", + "id" : "acm002412jsd", + "name" : "ExtractBibtexAction" + }, + "acm002413jsd" : { + "type" : "ControlElement", + "id" : "acm002413jsd", + "name" : "execute" + }, + "acm002414jsd" : { + "type" : "ClassUnit", + "id" : "acm002414jsd", + "name" : "ExtractBibtexAction", + "compilationUnitId" : "acm002407jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002422jsd", "acm021206jsd" ], + "content" : [ "acm002412jsd", "acm002413jsd" ] + }, + "acm002415jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002415jsd", + "name" : "ExtractBibtexDialog", + "parentId" : "acm002383jsd", + "content" : [ "acm002422jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "bibtexextractor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002416jsd" : { + "type" : "CodePackage", + "id" : "acm002416jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002417jsd" ] + }, + "acm002417jsd" : { + "type" : "CodePackage", + "id" : "acm002417jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002418jsd" ] + }, + "acm002418jsd" : { + "type" : "CodePackage", + "id" : "acm002418jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002419jsd" ] + }, + "acm002419jsd" : { + "type" : "CodePackage", + "id" : "acm002419jsd", + "name" : "bibtexextractor", + "parentId" : null, + "content" : [ "acm002415jsd" ] + }, + "acm002420jsd" : { + "type" : "ControlElement", + "id" : "acm002420jsd", + "name" : "ExtractBibtexDialog" + }, + "acm002421jsd" : { + "type" : "ControlElement", + "id" : "acm002421jsd", + "name" : "initialize" + }, + "acm002422jsd" : { + "type" : "ClassUnit", + "id" : "acm002422jsd", + "name" : "ExtractBibtexDialog", + "compilationUnitId" : "acm002415jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002406jsd", "acm009965jsd", "acm012428jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm002420jsd", "acm002421jsd" ] + }, + "acm002423jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002423jsd", + "name" : "GenerateCitationKeyAction", + "parentId" : "acm002427jsd", + "content" : [ "acm002436jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002424jsd" : { + "type" : "CodePackage", + "id" : "acm002424jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002425jsd" ] + }, + "acm002425jsd" : { + "type" : "CodePackage", + "id" : "acm002425jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002426jsd" ] + }, + "acm002426jsd" : { + "type" : "CodePackage", + "id" : "acm002426jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002427jsd" ] + }, + "acm002427jsd" : { + "type" : "CodePackage", + "id" : "acm002427jsd", + "name" : "citationkeypattern", + "parentId" : "acm001569jsd", + "content" : [ "acm002423jsd", "acm002437jsd" ] + }, + "acm002428jsd" : { + "type" : "ControlElement", + "id" : "acm002428jsd", + "name" : "GenerateCitationKeyAction" + }, + "acm002429jsd" : { + "type" : "ControlElement", + "id" : "acm002429jsd", + "name" : "execute" + }, + "acm002430jsd" : { + "type" : "ControlElement", + "id" : "acm002430jsd", + "name" : "confirmOverwriteKeys" + }, + "acm002431jsd" : { + "type" : "ControlElement", + "id" : "acm002431jsd", + "name" : "checkOverwriteKeysChosen" + }, + "acm002432jsd" : { + "type" : "ControlElement", + "id" : "acm002432jsd", + "name" : "generateKeysInBackground" + }, + "acm002433jsd" : { + "type" : "ControlElement", + "id" : "acm002433jsd", + "name" : "call" + }, + "acm002434jsd" : { + "type" : "ControlElement", + "id" : "acm002434jsd", + "name" : "onSuccess" + }, + "acm002435jsd" : { + "type" : "ControlElement", + "id" : "acm002435jsd", + "name" : "formatOutputMessage" + }, + "acm002436jsd" : { + "type" : "ClassUnit", + "id" : "acm002436jsd", + "name" : "GenerateCitationKeyAction", + "compilationUnitId" : "acm002423jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm009381jsd", "acm009536jsd", "acm009965jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm002428jsd", "acm002429jsd", "acm002430jsd", "acm002431jsd", "acm002432jsd", "acm002433jsd", "acm002434jsd", "acm002435jsd" ] + }, + "acm002437jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002437jsd", + "name" : "GenerateCitationKeySingleAction", + "parentId" : "acm002427jsd", + "content" : [ "acm002444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002438jsd" : { + "type" : "CodePackage", + "id" : "acm002438jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002439jsd" ] + }, + "acm002439jsd" : { + "type" : "CodePackage", + "id" : "acm002439jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002440jsd" ] + }, + "acm002440jsd" : { + "type" : "CodePackage", + "id" : "acm002440jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002441jsd" ] + }, + "acm002441jsd" : { + "type" : "CodePackage", + "id" : "acm002441jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm002437jsd" ] + }, + "acm002442jsd" : { + "type" : "ControlElement", + "id" : "acm002442jsd", + "name" : "GenerateCitationKeySingleAction" + }, + "acm002443jsd" : { + "type" : "ControlElement", + "id" : "acm002443jsd", + "name" : "execute" + }, + "acm002444jsd" : { + "type" : "ClassUnit", + "id" : "acm002444jsd", + "name" : "GenerateCitationKeySingleAction", + "compilationUnitId" : "acm002437jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm010959jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm002442jsd", "acm002443jsd" ] + }, + "acm002445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002445jsd", + "name" : "CleanupAction", + "parentId" : "acm002449jsd", + "content" : [ "acm002455jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002446jsd" : { + "type" : "CodePackage", + "id" : "acm002446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002447jsd" ] + }, + "acm002447jsd" : { + "type" : "CodePackage", + "id" : "acm002447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002448jsd" ] + }, + "acm002448jsd" : { + "type" : "CodePackage", + "id" : "acm002448jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002449jsd" ] + }, + "acm002449jsd" : { + "type" : "CodePackage", + "id" : "acm002449jsd", + "name" : "cleanup", + "parentId" : "acm001569jsd", + "content" : [ "acm002445jsd", "acm002456jsd", "acm002463jsd", "acm002473jsd" ] + }, + "acm002450jsd" : { + "type" : "ControlElement", + "id" : "acm002450jsd", + "name" : "CleanupAction" + }, + "acm002451jsd" : { + "type" : "ControlElement", + "id" : "acm002451jsd", + "name" : "execute" + }, + "acm002452jsd" : { + "type" : "ControlElement", + "id" : "acm002452jsd", + "name" : "doCleanup" + }, + "acm002453jsd" : { + "type" : "ControlElement", + "id" : "acm002453jsd", + "name" : "showResults" + }, + "acm002454jsd" : { + "type" : "ControlElement", + "id" : "acm002454jsd", + "name" : "cleanup" + }, + "acm002455jsd" : { + "type" : "ClassUnit", + "id" : "acm002455jsd", + "name" : "CleanupAction", + "compilationUnitId" : "acm002445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002462jsd", "acm009381jsd", "acm009411jsd", "acm011124jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm020791jsd", "acm021206jsd" ], + "content" : [ "acm002450jsd", "acm002451jsd", "acm002452jsd", "acm002453jsd", "acm002454jsd" ] + }, + "acm002456jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002456jsd", + "name" : "CleanupDialog", + "parentId" : "acm002449jsd", + "content" : [ "acm002462jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002457jsd" : { + "type" : "CodePackage", + "id" : "acm002457jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002458jsd" ] + }, + "acm002458jsd" : { + "type" : "CodePackage", + "id" : "acm002458jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002459jsd" ] + }, + "acm002459jsd" : { + "type" : "CodePackage", + "id" : "acm002459jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002460jsd" ] + }, + "acm002460jsd" : { + "type" : "CodePackage", + "id" : "acm002460jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm002456jsd" ] + }, + "acm002461jsd" : { + "type" : "ControlElement", + "id" : "acm002461jsd", + "name" : "CleanupDialog" + }, + "acm002462jsd" : { + "type" : "ClassUnit", + "id" : "acm002462jsd", + "name" : "CleanupDialog", + "compilationUnitId" : "acm002456jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002472jsd", "acm018022jsd", "acm020791jsd", "acm020848jsd" ], + "content" : [ "acm002461jsd" ] + }, + "acm002463jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002463jsd", + "name" : "CleanupPresetPanel", + "parentId" : "acm002449jsd", + "content" : [ "acm002472jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002464jsd" : { + "type" : "CodePackage", + "id" : "acm002464jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002465jsd" ] + }, + "acm002465jsd" : { + "type" : "CodePackage", + "id" : "acm002465jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002466jsd" ] + }, + "acm002466jsd" : { + "type" : "CodePackage", + "id" : "acm002466jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002467jsd" ] + }, + "acm002467jsd" : { + "type" : "CodePackage", + "id" : "acm002467jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm002463jsd" ] + }, + "acm002468jsd" : { + "type" : "ControlElement", + "id" : "acm002468jsd", + "name" : "CleanupPresetPanel" + }, + "acm002469jsd" : { + "type" : "ControlElement", + "id" : "acm002469jsd", + "name" : "init" + }, + "acm002470jsd" : { + "type" : "ControlElement", + "id" : "acm002470jsd", + "name" : "updateDisplay" + }, + "acm002471jsd" : { + "type" : "ControlElement", + "id" : "acm002471jsd", + "name" : "getCleanupPreset" + }, + "acm002472jsd" : { + "type" : "ClassUnit", + "id" : "acm002472jsd", + "name" : "CleanupPresetPanel", + "compilationUnitId" : "acm002463jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002849jsd", "acm011188jsd", "acm018022jsd", "acm020791jsd", "acm020792jsd", "acm020848jsd" ], + "content" : [ "acm002468jsd", "acm002469jsd", "acm002470jsd", "acm002471jsd" ] + }, + "acm002473jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002473jsd", + "name" : "CleanupSingleAction", + "parentId" : "acm002449jsd", + "content" : [ "acm002482jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002474jsd" : { + "type" : "CodePackage", + "id" : "acm002474jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002475jsd" ] + }, + "acm002475jsd" : { + "type" : "CodePackage", + "id" : "acm002475jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002476jsd" ] + }, + "acm002476jsd" : { + "type" : "CodePackage", + "id" : "acm002476jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002477jsd" ] + }, + "acm002477jsd" : { + "type" : "CodePackage", + "id" : "acm002477jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm002473jsd" ] + }, + "acm002478jsd" : { + "type" : "ControlElement", + "id" : "acm002478jsd", + "name" : "CleanupSingleAction" + }, + "acm002479jsd" : { + "type" : "ControlElement", + "id" : "acm002479jsd", + "name" : "execute" + }, + "acm002480jsd" : { + "type" : "ControlElement", + "id" : "acm002480jsd", + "name" : "doCleanup" + }, + "acm002481jsd" : { + "type" : "ControlElement", + "id" : "acm002481jsd", + "name" : "cleanup" + }, + "acm002482jsd" : { + "type" : "ClassUnit", + "id" : "acm002482jsd", + "name" : "CleanupSingleAction", + "compilationUnitId" : "acm002473jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002462jsd", "acm009381jsd", "acm009411jsd", "acm011124jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm020791jsd", "acm021206jsd" ], + "content" : [ "acm002478jsd", "acm002479jsd", "acm002480jsd", "acm002481jsd" ] + }, + "acm002483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002483jsd", + "name" : "ChangeScanner", + "parentId" : "acm002487jsd", + "content" : [ "acm002490jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002484jsd" : { + "type" : "CodePackage", + "id" : "acm002484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002485jsd" ] + }, + "acm002485jsd" : { + "type" : "CodePackage", + "id" : "acm002485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002486jsd" ] + }, + "acm002486jsd" : { + "type" : "CodePackage", + "id" : "acm002486jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002487jsd" ] + }, + "acm002487jsd" : { + "type" : "CodePackage", + "id" : "acm002487jsd", + "name" : "collab", + "parentId" : "acm001569jsd", + "content" : [ "acm002483jsd", "acm002491jsd", "acm002506jsd", "acm002512jsd", "acm002520jsd", "acm002530jsd", "acm002537jsd", "acm002547jsd", "acm002555jsd", "acm002563jsd", "acm002574jsd", "acm002596jsd", "acm002606jsd", "acm002654jsd", "acm002664jsd", "acm002682jsd", "acm002701jsd", "acm002719jsd", "acm002737jsd", "acm002756jsd", "acm002774jsd" ] + }, + "acm002488jsd" : { + "type" : "ControlElement", + "id" : "acm002488jsd", + "name" : "ChangeScanner" + }, + "acm002489jsd" : { + "type" : "ControlElement", + "id" : "acm002489jsd", + "name" : "scanForChanges" + }, + "acm002490jsd" : { + "type" : "ClassUnit", + "id" : "acm002490jsd", + "name" : "ChangeScanner", + "compilationUnitId" : "acm002483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002490jsd", "acm002505jsd", "acm002562jsd", "acm012556jsd", "acm018022jsd", "acm020676jsd", "acm021206jsd" ], + "content" : [ "acm002488jsd", "acm002489jsd" ] + }, + "acm002491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002491jsd", + "name" : "DatabaseChange", + "parentId" : "acm002487jsd", + "content" : [ "acm002505jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002492jsd" : { + "type" : "CodePackage", + "id" : "acm002492jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002493jsd" ] + }, + "acm002493jsd" : { + "type" : "CodePackage", + "id" : "acm002493jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002494jsd" ] + }, + "acm002494jsd" : { + "type" : "CodePackage", + "id" : "acm002494jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002495jsd" ] + }, + "acm002495jsd" : { + "type" : "CodePackage", + "id" : "acm002495jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002491jsd" ] + }, + "acm002496jsd" : { + "type" : "ControlElement", + "id" : "acm002496jsd", + "name" : "DatabaseChange" + }, + "acm002497jsd" : { + "type" : "ControlElement", + "id" : "acm002497jsd", + "name" : "isAccepted" + }, + "acm002498jsd" : { + "type" : "ControlElement", + "id" : "acm002498jsd", + "name" : "acceptedProperty" + }, + "acm002499jsd" : { + "type" : "ControlElement", + "id" : "acm002499jsd", + "name" : "setAccepted" + }, + "acm002500jsd" : { + "type" : "ControlElement", + "id" : "acm002500jsd", + "name" : "accept" + }, + "acm002501jsd" : { + "type" : "ControlElement", + "id" : "acm002501jsd", + "name" : "getName" + }, + "acm002502jsd" : { + "type" : "ControlElement", + "id" : "acm002502jsd", + "name" : "setChangeName" + }, + "acm002503jsd" : { + "type" : "ControlElement", + "id" : "acm002503jsd", + "name" : "getExternalChangeResolver" + }, + "acm002504jsd" : { + "type" : "ControlElement", + "id" : "acm002504jsd", + "name" : "applyChange" + }, + "acm002505jsd" : { + "type" : "ClassUnit", + "id" : "acm002505jsd", + "name" : "DatabaseChange", + "compilationUnitId" : "acm002491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002554jsd", "acm002562jsd", "acm009381jsd", "acm009916jsd", "acm018022jsd" ], + "content" : [ "acm002496jsd", "acm002497jsd", "acm002498jsd", "acm002499jsd", "acm002500jsd", "acm002501jsd", "acm002502jsd", "acm002503jsd", "acm002504jsd" ] + }, + "acm002506jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002506jsd", + "name" : "DatabaseChangeDetailsView", + "parentId" : "acm002487jsd", + "content" : [ "acm002511jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002507jsd" : { + "type" : "CodePackage", + "id" : "acm002507jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002508jsd" ] + }, + "acm002508jsd" : { + "type" : "CodePackage", + "id" : "acm002508jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002509jsd" ] + }, + "acm002509jsd" : { + "type" : "CodePackage", + "id" : "acm002509jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002510jsd" ] + }, + "acm002510jsd" : { + "type" : "CodePackage", + "id" : "acm002510jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002506jsd" ] + }, + "acm002511jsd" : { + "type" : "ClassUnit", + "id" : "acm002511jsd", + "name" : "DatabaseChangeDetailsView", + "compilationUnitId" : "acm002506jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002512jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002512jsd", + "name" : "DatabaseChangeDetailsViewFactory", + "parentId" : "acm002487jsd", + "content" : [ "acm002519jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002513jsd" : { + "type" : "CodePackage", + "id" : "acm002513jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002514jsd" ] + }, + "acm002514jsd" : { + "type" : "CodePackage", + "id" : "acm002514jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002515jsd" ] + }, + "acm002515jsd" : { + "type" : "CodePackage", + "id" : "acm002515jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002516jsd" ] + }, + "acm002516jsd" : { + "type" : "CodePackage", + "id" : "acm002516jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002512jsd" ] + }, + "acm002517jsd" : { + "type" : "ControlElement", + "id" : "acm002517jsd", + "name" : "DatabaseChangeDetailsViewFactory" + }, + "acm002518jsd" : { + "type" : "ControlElement", + "id" : "acm002518jsd", + "name" : "create" + }, + "acm002519jsd" : { + "type" : "ClassUnit", + "id" : "acm002519jsd", + "name" : "DatabaseChangeDetailsViewFactory", + "compilationUnitId" : "acm002512jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002505jsd", "acm002511jsd", "acm002600jsd", "acm002612jsd", "acm002620jsd", "acm002638jsd", "acm002658jsd", "acm002668jsd", "acm002676jsd", "acm002686jsd", "acm002695jsd", "acm002705jsd", "acm002713jsd", "acm002723jsd", "acm002731jsd", "acm002742jsd", "acm002750jsd", "acm002760jsd", "acm002768jsd", "acm002779jsd", "acm002787jsd", "acm008540jsd", "acm009346jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm002517jsd", "acm002518jsd" ] + }, + "acm002520jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002520jsd", + "name" : "DatabaseChangeList", + "parentId" : "acm002487jsd", + "content" : [ "acm002529jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002521jsd" : { + "type" : "CodePackage", + "id" : "acm002521jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002522jsd" ] + }, + "acm002522jsd" : { + "type" : "CodePackage", + "id" : "acm002522jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002523jsd" ] + }, + "acm002523jsd" : { + "type" : "CodePackage", + "id" : "acm002523jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002524jsd" ] + }, + "acm002524jsd" : { + "type" : "CodePackage", + "id" : "acm002524jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002520jsd" ] + }, + "acm002525jsd" : { + "type" : "ControlElement", + "id" : "acm002525jsd", + "name" : "DatabaseChangeList" + }, + "acm002526jsd" : { + "type" : "ControlElement", + "id" : "acm002526jsd", + "name" : "compareAndGetChanges" + }, + "acm002527jsd" : { + "type" : "ControlElement", + "id" : "acm002527jsd", + "name" : "createBibStringDiff" + }, + "acm002528jsd" : { + "type" : "ControlElement", + "id" : "acm002528jsd", + "name" : "createBibEntryDiff" + }, + "acm002529jsd" : { + "type" : "ClassUnit", + "id" : "acm002529jsd", + "name" : "DatabaseChangeList", + "compilationUnitId" : "acm002520jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002505jsd", "acm002562jsd", "acm002600jsd", "acm002612jsd", "acm002658jsd", "acm002723jsd", "acm002742jsd", "acm002760jsd", "acm002779jsd", "acm010548jsd", "acm010558jsd", "acm010571jsd", "acm018022jsd" ], + "content" : [ "acm002525jsd", "acm002526jsd", "acm002527jsd", "acm002528jsd" ] + }, + "acm002530jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002530jsd", + "name" : "DatabaseChangeListener", + "parentId" : "acm002487jsd", + "content" : [ "acm002536jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002531jsd" : { + "type" : "CodePackage", + "id" : "acm002531jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002532jsd" ] + }, + "acm002532jsd" : { + "type" : "CodePackage", + "id" : "acm002532jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002533jsd" ] + }, + "acm002533jsd" : { + "type" : "CodePackage", + "id" : "acm002533jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002534jsd" ] + }, + "acm002534jsd" : { + "type" : "CodePackage", + "id" : "acm002534jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002530jsd" ] + }, + "acm002535jsd" : { + "type" : "ControlElement", + "id" : "acm002535jsd", + "name" : "databaseChanged" + }, + "acm002536jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002536jsd", + "name" : "DatabaseChangeListener", + "compilationUnitId" : "acm002530jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002505jsd" ], + "content" : [ "acm002535jsd" ] + }, + "acm002537jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002537jsd", + "name" : "DatabaseChangeMonitor", + "parentId" : "acm002487jsd", + "content" : [ "acm002546jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002538jsd" : { + "type" : "CodePackage", + "id" : "acm002538jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002539jsd" ] + }, + "acm002539jsd" : { + "type" : "CodePackage", + "id" : "acm002539jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002540jsd" ] + }, + "acm002540jsd" : { + "type" : "CodePackage", + "id" : "acm002540jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002541jsd" ] + }, + "acm002541jsd" : { + "type" : "CodePackage", + "id" : "acm002541jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002537jsd" ] + }, + "acm002542jsd" : { + "type" : "ControlElement", + "id" : "acm002542jsd", + "name" : "DatabaseChangeMonitor" + }, + "acm002543jsd" : { + "type" : "ControlElement", + "id" : "acm002543jsd", + "name" : "fileUpdated" + }, + "acm002544jsd" : { + "type" : "ControlElement", + "id" : "acm002544jsd", + "name" : "addListener" + }, + "acm002545jsd" : { + "type" : "ControlElement", + "id" : "acm002545jsd", + "name" : "unregister" + }, + "acm002546jsd" : { + "type" : "ClassUnit", + "id" : "acm002546jsd", + "name" : "DatabaseChangeMonitor", + "compilationUnitId" : "acm002537jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020683jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001980jsd", "acm002490jsd", "acm002536jsd", "acm002546jsd", "acm009965jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm002542jsd", "acm002543jsd", "acm002544jsd", "acm002545jsd" ] + }, + "acm002547jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002547jsd", + "name" : "DatabaseChangeResolver", + "parentId" : "acm002487jsd", + "content" : [ "acm002554jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002548jsd" : { + "type" : "CodePackage", + "id" : "acm002548jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002549jsd" ] + }, + "acm002549jsd" : { + "type" : "CodePackage", + "id" : "acm002549jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002550jsd" ] + }, + "acm002550jsd" : { + "type" : "CodePackage", + "id" : "acm002550jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002551jsd" ] + }, + "acm002551jsd" : { + "type" : "CodePackage", + "id" : "acm002551jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002547jsd" ] + }, + "acm002552jsd" : { + "type" : "ControlElement", + "id" : "acm002552jsd", + "name" : "DatabaseChangeResolver" + }, + "acm002553jsd" : { + "type" : "ControlElement", + "id" : "acm002553jsd", + "name" : "askUserToResolveChange" + }, + "acm002554jsd" : { + "type" : "ClassUnit", + "id" : "acm002554jsd", + "name" : "DatabaseChangeResolver", + "compilationUnitId" : "acm002547jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002505jsd" ], + "content" : [ "acm002552jsd", "acm002553jsd" ] + }, + "acm002555jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002555jsd", + "name" : "DatabaseChangeResolverFactory", + "parentId" : "acm002487jsd", + "content" : [ "acm002562jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002556jsd" : { + "type" : "CodePackage", + "id" : "acm002556jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002557jsd" ] + }, + "acm002557jsd" : { + "type" : "CodePackage", + "id" : "acm002557jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002558jsd" ] + }, + "acm002558jsd" : { + "type" : "CodePackage", + "id" : "acm002558jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002559jsd" ] + }, + "acm002559jsd" : { + "type" : "CodePackage", + "id" : "acm002559jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002555jsd" ] + }, + "acm002560jsd" : { + "type" : "ControlElement", + "id" : "acm002560jsd", + "name" : "DatabaseChangeResolverFactory" + }, + "acm002561jsd" : { + "type" : "ControlElement", + "id" : "acm002561jsd", + "name" : "create" + }, + "acm002562jsd" : { + "type" : "ClassUnit", + "id" : "acm002562jsd", + "name" : "DatabaseChangeResolverFactory", + "compilationUnitId" : "acm002555jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002505jsd", "acm002554jsd", "acm002612jsd", "acm002630jsd", "acm018022jsd", "acm020774jsd" ], + "content" : [ "acm002560jsd", "acm002561jsd" ] + }, + "acm002563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002563jsd", + "name" : "DatabaseChangesResolverDialog", + "parentId" : "acm002487jsd", + "content" : [ "acm002573jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002564jsd" : { + "type" : "CodePackage", + "id" : "acm002564jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002565jsd" ] + }, + "acm002565jsd" : { + "type" : "CodePackage", + "id" : "acm002565jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002566jsd" ] + }, + "acm002566jsd" : { + "type" : "CodePackage", + "id" : "acm002566jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002567jsd" ] + }, + "acm002567jsd" : { + "type" : "CodePackage", + "id" : "acm002567jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002563jsd" ] + }, + "acm002568jsd" : { + "type" : "ControlElement", + "id" : "acm002568jsd", + "name" : "DatabaseChangesResolverDialog" + }, + "acm002569jsd" : { + "type" : "ControlElement", + "id" : "acm002569jsd", + "name" : "initialize" + }, + "acm002570jsd" : { + "type" : "ControlElement", + "id" : "acm002570jsd", + "name" : "denyChanges" + }, + "acm002571jsd" : { + "type" : "ControlElement", + "id" : "acm002571jsd", + "name" : "acceptChanges" + }, + "acm002572jsd" : { + "type" : "ControlElement", + "id" : "acm002572jsd", + "name" : "askUserToResolveChange" + }, + "acm002573jsd" : { + "type" : "ClassUnit", + "id" : "acm002573jsd", + "name" : "DatabaseChangesResolverDialog", + "compilationUnitId" : "acm002563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002505jsd", "acm002511jsd", "acm002519jsd", "acm002573jsd", "acm002590jsd", "acm008540jsd", "acm009346jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm002568jsd", "acm002569jsd", "acm002570jsd", "acm002571jsd", "acm002572jsd" ] + }, + "acm002574jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002574jsd", + "name" : "ExternalChangesResolverViewModel", + "parentId" : "acm002487jsd", + "content" : [ "acm002590jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002575jsd" : { + "type" : "CodePackage", + "id" : "acm002575jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002576jsd" ] + }, + "acm002576jsd" : { + "type" : "CodePackage", + "id" : "acm002576jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002577jsd" ] + }, + "acm002577jsd" : { + "type" : "CodePackage", + "id" : "acm002577jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002578jsd" ] + }, + "acm002578jsd" : { + "type" : "CodePackage", + "id" : "acm002578jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002574jsd" ] + }, + "acm002579jsd" : { + "type" : "ControlElement", + "id" : "acm002579jsd", + "name" : "ExternalChangesResolverViewModel" + }, + "acm002580jsd" : { + "type" : "ControlElement", + "id" : "acm002580jsd", + "name" : "getVisibleChanges" + }, + "acm002581jsd" : { + "type" : "ControlElement", + "id" : "acm002581jsd", + "name" : "selectedChangeProperty" + }, + "acm002582jsd" : { + "type" : "ControlElement", + "id" : "acm002582jsd", + "name" : "getSelectedChange" + }, + "acm002583jsd" : { + "type" : "ControlElement", + "id" : "acm002583jsd", + "name" : "areAllChangesResolvedProperty" + }, + "acm002584jsd" : { + "type" : "ControlElement", + "id" : "acm002584jsd", + "name" : "areAllChangesResolved" + }, + "acm002585jsd" : { + "type" : "ControlElement", + "id" : "acm002585jsd", + "name" : "canAskUserToResolveChangeProperty" + }, + "acm002586jsd" : { + "type" : "ControlElement", + "id" : "acm002586jsd", + "name" : "acceptChange" + }, + "acm002587jsd" : { + "type" : "ControlElement", + "id" : "acm002587jsd", + "name" : "denyChange" + }, + "acm002588jsd" : { + "type" : "ControlElement", + "id" : "acm002588jsd", + "name" : "acceptMergedChange" + }, + "acm002589jsd" : { + "type" : "ControlElement", + "id" : "acm002589jsd", + "name" : "applyChanges" + }, + "acm002590jsd" : { + "type" : "ClassUnit", + "id" : "acm002590jsd", + "name" : "ExternalChangesResolverViewModel", + "compilationUnitId" : "acm002574jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002505jsd", "acm002590jsd", "acm009381jsd" ], + "content" : [ "acm002579jsd", "acm002580jsd", "acm002581jsd", "acm002582jsd", "acm002583jsd", "acm002584jsd", "acm002585jsd", "acm002586jsd", "acm002587jsd", "acm002588jsd", "acm002589jsd" ] + }, + "acm002591jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002591jsd", + "name" : "EntryAdd", + "parentId" : "acm002596jsd", + "content" : [ "acm002600jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entryadd" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002592jsd" : { + "type" : "CodePackage", + "id" : "acm002592jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002593jsd" ] + }, + "acm002593jsd" : { + "type" : "CodePackage", + "id" : "acm002593jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002594jsd" ] + }, + "acm002594jsd" : { + "type" : "CodePackage", + "id" : "acm002594jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002595jsd" ] + }, + "acm002595jsd" : { + "type" : "CodePackage", + "id" : "acm002595jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002596jsd" ] + }, + "acm002596jsd" : { + "type" : "CodePackage", + "id" : "acm002596jsd", + "name" : "entryadd", + "parentId" : "acm002487jsd", + "content" : [ "acm002591jsd" ] + }, + "acm002597jsd" : { + "type" : "ControlElement", + "id" : "acm002597jsd", + "name" : "EntryAdd" + }, + "acm002598jsd" : { + "type" : "ControlElement", + "id" : "acm002598jsd", + "name" : "applyChange" + }, + "acm002599jsd" : { + "type" : "ControlElement", + "id" : "acm002599jsd", + "name" : "getAddedEntry" + }, + "acm002600jsd" : { + "type" : "ClassUnit", + "id" : "acm002600jsd", + "name" : "EntryAdd", + "compilationUnitId" : "acm002591jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm009381jsd", "acm009423jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm002597jsd", "acm002598jsd", "acm002599jsd" ] + }, + "acm002601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002601jsd", + "name" : "EntryChange", + "parentId" : "acm002606jsd", + "content" : [ "acm002612jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrychange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002602jsd" : { + "type" : "CodePackage", + "id" : "acm002602jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002603jsd" ] + }, + "acm002603jsd" : { + "type" : "CodePackage", + "id" : "acm002603jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002604jsd" ] + }, + "acm002604jsd" : { + "type" : "CodePackage", + "id" : "acm002604jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002605jsd" ] + }, + "acm002605jsd" : { + "type" : "CodePackage", + "id" : "acm002605jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002606jsd" ] + }, + "acm002606jsd" : { + "type" : "CodePackage", + "id" : "acm002606jsd", + "name" : "entrychange", + "parentId" : "acm002487jsd", + "content" : [ "acm002601jsd", "acm002613jsd", "acm002621jsd", "acm002631jsd", "acm002639jsd" ] + }, + "acm002607jsd" : { + "type" : "ControlElement", + "id" : "acm002607jsd", + "name" : "EntryChange" + }, + "acm002608jsd" : { + "type" : "ControlElement", + "id" : "acm002608jsd", + "name" : "EntryChange" + }, + "acm002609jsd" : { + "type" : "ControlElement", + "id" : "acm002609jsd", + "name" : "getOldEntry" + }, + "acm002610jsd" : { + "type" : "ControlElement", + "id" : "acm002610jsd", + "name" : "getNewEntry" + }, + "acm002611jsd" : { + "type" : "ControlElement", + "id" : "acm002611jsd", + "name" : "applyChange" + }, + "acm002612jsd" : { + "type" : "ClassUnit", + "id" : "acm002612jsd", + "name" : "EntryChange", + "compilationUnitId" : "acm002601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm009381jsd", "acm009423jsd", "acm009466jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm002607jsd", "acm002608jsd", "acm002609jsd", "acm002610jsd", "acm002611jsd" ] + }, + "acm002613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002613jsd", + "name" : "EntryChangeDetailsView", + "parentId" : "acm002606jsd", + "content" : [ "acm002620jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrychange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002614jsd" : { + "type" : "CodePackage", + "id" : "acm002614jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002615jsd" ] + }, + "acm002615jsd" : { + "type" : "CodePackage", + "id" : "acm002615jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002616jsd" ] + }, + "acm002616jsd" : { + "type" : "CodePackage", + "id" : "acm002616jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002617jsd" ] + }, + "acm002617jsd" : { + "type" : "CodePackage", + "id" : "acm002617jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002618jsd" ] + }, + "acm002618jsd" : { + "type" : "CodePackage", + "id" : "acm002618jsd", + "name" : "entrychange", + "parentId" : null, + "content" : [ "acm002613jsd" ] + }, + "acm002619jsd" : { + "type" : "ControlElement", + "id" : "acm002619jsd", + "name" : "EntryChangeDetailsView" + }, + "acm002620jsd" : { + "type" : "ClassUnit", + "id" : "acm002620jsd", + "name" : "EntryChangeDetailsView", + "compilationUnitId" : "acm002613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002648jsd", "acm008540jsd", "acm009346jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm002619jsd" ] + }, + "acm002621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002621jsd", + "name" : "EntryChangeResolver", + "parentId" : "acm002606jsd", + "content" : [ "acm002630jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrychange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002622jsd" : { + "type" : "CodePackage", + "id" : "acm002622jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002623jsd" ] + }, + "acm002623jsd" : { + "type" : "CodePackage", + "id" : "acm002623jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002624jsd" ] + }, + "acm002624jsd" : { + "type" : "CodePackage", + "id" : "acm002624jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002625jsd" ] + }, + "acm002625jsd" : { + "type" : "CodePackage", + "id" : "acm002625jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002626jsd" ] + }, + "acm002626jsd" : { + "type" : "CodePackage", + "id" : "acm002626jsd", + "name" : "entrychange", + "parentId" : null, + "content" : [ "acm002621jsd" ] + }, + "acm002627jsd" : { + "type" : "ControlElement", + "id" : "acm002627jsd", + "name" : "EntryChangeResolver" + }, + "acm002628jsd" : { + "type" : "ControlElement", + "id" : "acm002628jsd", + "name" : "askUserToResolveChange" + }, + "acm002629jsd" : { + "type" : "ControlElement", + "id" : "acm002629jsd", + "name" : "mapMergeResultToExternalChange" + }, + "acm002630jsd" : { + "type" : "ClassUnit", + "id" : "acm002630jsd", + "name" : "EntryChangeResolver", + "compilationUnitId" : "acm002621jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002554jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002505jsd", "acm002612jsd", "acm006570jsd", "acm018022jsd", "acm020774jsd" ], + "content" : [ "acm002627jsd", "acm002628jsd", "acm002629jsd" ] + }, + "acm002631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002631jsd", + "name" : "EntryWithPreviewAndSourceDetailsView", + "parentId" : "acm002606jsd", + "content" : [ "acm002638jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrychange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002632jsd" : { + "type" : "CodePackage", + "id" : "acm002632jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002633jsd" ] + }, + "acm002633jsd" : { + "type" : "CodePackage", + "id" : "acm002633jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002634jsd" ] + }, + "acm002634jsd" : { + "type" : "CodePackage", + "id" : "acm002634jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002635jsd" ] + }, + "acm002635jsd" : { + "type" : "CodePackage", + "id" : "acm002635jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002636jsd" ] + }, + "acm002636jsd" : { + "type" : "CodePackage", + "id" : "acm002636jsd", + "name" : "entrychange", + "parentId" : null, + "content" : [ "acm002631jsd" ] + }, + "acm002637jsd" : { + "type" : "ControlElement", + "id" : "acm002637jsd", + "name" : "EntryWithPreviewAndSourceDetailsView" + }, + "acm002638jsd" : { + "type" : "ClassUnit", + "id" : "acm002638jsd", + "name" : "EntryWithPreviewAndSourceDetailsView", + "compilationUnitId" : "acm002631jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002648jsd", "acm008540jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm002637jsd" ] + }, + "acm002639jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002639jsd", + "name" : "PreviewWithSourceTab", + "parentId" : "acm002606jsd", + "content" : [ "acm002648jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrychange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002640jsd" : { + "type" : "CodePackage", + "id" : "acm002640jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002641jsd" ] + }, + "acm002641jsd" : { + "type" : "CodePackage", + "id" : "acm002641jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002642jsd" ] + }, + "acm002642jsd" : { + "type" : "CodePackage", + "id" : "acm002642jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002643jsd" ] + }, + "acm002643jsd" : { + "type" : "CodePackage", + "id" : "acm002643jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002644jsd" ] + }, + "acm002644jsd" : { + "type" : "CodePackage", + "id" : "acm002644jsd", + "name" : "entrychange", + "parentId" : null, + "content" : [ "acm002639jsd" ] + }, + "acm002645jsd" : { + "type" : "ControlElement", + "id" : "acm002645jsd", + "name" : "getPreviewWithSourceTab" + }, + "acm002646jsd" : { + "type" : "ControlElement", + "id" : "acm002646jsd", + "name" : "getPreviewWithSourceTab" + }, + "acm002647jsd" : { + "type" : "ControlElement", + "id" : "acm002647jsd", + "name" : "getSourceString" + }, + "acm002648jsd" : { + "type" : "ClassUnit", + "id" : "acm002648jsd", + "name" : "PreviewWithSourceTab", + "compilationUnitId" : "acm002639jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002648jsd", "acm008540jsd", "acm010474jsd", "acm010497jsd", "acm010513jsd", "acm011455jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm002645jsd", "acm002646jsd", "acm002647jsd" ] + }, + "acm002649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002649jsd", + "name" : "EntryDelete", + "parentId" : "acm002654jsd", + "content" : [ "acm002658jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "entrydelete" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002650jsd" : { + "type" : "CodePackage", + "id" : "acm002650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002651jsd" ] + }, + "acm002651jsd" : { + "type" : "CodePackage", + "id" : "acm002651jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002652jsd" ] + }, + "acm002652jsd" : { + "type" : "CodePackage", + "id" : "acm002652jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002653jsd" ] + }, + "acm002653jsd" : { + "type" : "CodePackage", + "id" : "acm002653jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002654jsd" ] + }, + "acm002654jsd" : { + "type" : "CodePackage", + "id" : "acm002654jsd", + "name" : "entrydelete", + "parentId" : "acm002487jsd", + "content" : [ "acm002649jsd" ] + }, + "acm002655jsd" : { + "type" : "ControlElement", + "id" : "acm002655jsd", + "name" : "EntryDelete" + }, + "acm002656jsd" : { + "type" : "ControlElement", + "id" : "acm002656jsd", + "name" : "applyChange" + }, + "acm002657jsd" : { + "type" : "ControlElement", + "id" : "acm002657jsd", + "name" : "getDeletedEntry" + }, + "acm002658jsd" : { + "type" : "ClassUnit", + "id" : "acm002658jsd", + "name" : "EntryDelete", + "compilationUnitId" : "acm002649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm009381jsd", "acm009466jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm002655jsd", "acm002656jsd", "acm002657jsd" ] + }, + "acm002659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002659jsd", + "name" : "GroupChange", + "parentId" : "acm002664jsd", + "content" : [ "acm002668jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "groupchange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002660jsd" : { + "type" : "CodePackage", + "id" : "acm002660jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002661jsd" ] + }, + "acm002661jsd" : { + "type" : "CodePackage", + "id" : "acm002661jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002662jsd" ] + }, + "acm002662jsd" : { + "type" : "CodePackage", + "id" : "acm002662jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002663jsd" ] + }, + "acm002663jsd" : { + "type" : "CodePackage", + "id" : "acm002663jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002664jsd" ] + }, + "acm002664jsd" : { + "type" : "CodePackage", + "id" : "acm002664jsd", + "name" : "groupchange", + "parentId" : "acm002487jsd", + "content" : [ "acm002659jsd", "acm002669jsd" ] + }, + "acm002665jsd" : { + "type" : "ControlElement", + "id" : "acm002665jsd", + "name" : "GroupChange" + }, + "acm002666jsd" : { + "type" : "ControlElement", + "id" : "acm002666jsd", + "name" : "applyChange" + }, + "acm002667jsd" : { + "type" : "ControlElement", + "id" : "acm002667jsd", + "name" : "getGroupDiff" + }, + "acm002668jsd" : { + "type" : "ClassUnit", + "id" : "acm002668jsd", + "name" : "GroupChange", + "compilationUnitId" : "acm002659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm005119jsd", "acm005251jsd", "acm009381jsd", "acm010634jsd", "acm018022jsd", "acm019221jsd" ], + "content" : [ "acm002665jsd", "acm002666jsd", "acm002667jsd" ] + }, + "acm002669jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002669jsd", + "name" : "GroupChangeDetailsView", + "parentId" : "acm002664jsd", + "content" : [ "acm002676jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "groupchange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002670jsd" : { + "type" : "CodePackage", + "id" : "acm002670jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002671jsd" ] + }, + "acm002671jsd" : { + "type" : "CodePackage", + "id" : "acm002671jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002672jsd" ] + }, + "acm002672jsd" : { + "type" : "CodePackage", + "id" : "acm002672jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002673jsd" ] + }, + "acm002673jsd" : { + "type" : "CodePackage", + "id" : "acm002673jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002674jsd" ] + }, + "acm002674jsd" : { + "type" : "CodePackage", + "id" : "acm002674jsd", + "name" : "groupchange", + "parentId" : null, + "content" : [ "acm002669jsd" ] + }, + "acm002675jsd" : { + "type" : "ControlElement", + "id" : "acm002675jsd", + "name" : "GroupChangeDetailsView" + }, + "acm002676jsd" : { + "type" : "ClassUnit", + "id" : "acm002676jsd", + "name" : "GroupChangeDetailsView", + "compilationUnitId" : "acm002669jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002668jsd" ], + "content" : [ "acm002675jsd" ] + }, + "acm002677jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002677jsd", + "name" : "MetadataChange", + "parentId" : "acm002682jsd", + "content" : [ "acm002686jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "metedatachange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002678jsd" : { + "type" : "CodePackage", + "id" : "acm002678jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002679jsd" ] + }, + "acm002679jsd" : { + "type" : "CodePackage", + "id" : "acm002679jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002680jsd" ] + }, + "acm002680jsd" : { + "type" : "CodePackage", + "id" : "acm002680jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002681jsd" ] + }, + "acm002681jsd" : { + "type" : "CodePackage", + "id" : "acm002681jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002682jsd" ] + }, + "acm002682jsd" : { + "type" : "CodePackage", + "id" : "acm002682jsd", + "name" : "metedatachange", + "parentId" : "acm002487jsd", + "content" : [ "acm002677jsd", "acm002687jsd" ] + }, + "acm002683jsd" : { + "type" : "ControlElement", + "id" : "acm002683jsd", + "name" : "MetadataChange" + }, + "acm002684jsd" : { + "type" : "ControlElement", + "id" : "acm002684jsd", + "name" : "applyChange" + }, + "acm002685jsd" : { + "type" : "ControlElement", + "id" : "acm002685jsd", + "name" : "getMetaDataDiff" + }, + "acm002686jsd" : { + "type" : "ClassUnit", + "id" : "acm002686jsd", + "name" : "MetadataChange", + "compilationUnitId" : "acm002677jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm009381jsd", "acm010654jsd", "acm018022jsd" ], + "content" : [ "acm002683jsd", "acm002684jsd", "acm002685jsd" ] + }, + "acm002687jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002687jsd", + "name" : "MetadataChangeDetailsView", + "parentId" : "acm002682jsd", + "content" : [ "acm002695jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "metedatachange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002688jsd" : { + "type" : "CodePackage", + "id" : "acm002688jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002689jsd" ] + }, + "acm002689jsd" : { + "type" : "CodePackage", + "id" : "acm002689jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002690jsd" ] + }, + "acm002690jsd" : { + "type" : "CodePackage", + "id" : "acm002690jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002691jsd" ] + }, + "acm002691jsd" : { + "type" : "CodePackage", + "id" : "acm002691jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002692jsd" ] + }, + "acm002692jsd" : { + "type" : "CodePackage", + "id" : "acm002692jsd", + "name" : "metedatachange", + "parentId" : null, + "content" : [ "acm002687jsd" ] + }, + "acm002693jsd" : { + "type" : "ControlElement", + "id" : "acm002693jsd", + "name" : "MetadataChangeDetailsView" + }, + "acm002694jsd" : { + "type" : "ControlElement", + "id" : "acm002694jsd", + "name" : "getDifferenceString" + }, + "acm002695jsd" : { + "type" : "ClassUnit", + "id" : "acm002695jsd", + "name" : "MetadataChangeDetailsView", + "compilationUnitId" : "acm002687jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002686jsd", "acm010655jsd", "acm021206jsd" ], + "content" : [ "acm002693jsd", "acm002694jsd" ] + }, + "acm002696jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002696jsd", + "name" : "PreambleChange", + "parentId" : "acm002701jsd", + "content" : [ "acm002705jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "preamblechange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002697jsd" : { + "type" : "CodePackage", + "id" : "acm002697jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002698jsd" ] + }, + "acm002698jsd" : { + "type" : "CodePackage", + "id" : "acm002698jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002699jsd" ] + }, + "acm002699jsd" : { + "type" : "CodePackage", + "id" : "acm002699jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002700jsd" ] + }, + "acm002700jsd" : { + "type" : "CodePackage", + "id" : "acm002700jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002701jsd" ] + }, + "acm002701jsd" : { + "type" : "CodePackage", + "id" : "acm002701jsd", + "name" : "preamblechange", + "parentId" : "acm002487jsd", + "content" : [ "acm002696jsd", "acm002706jsd" ] + }, + "acm002702jsd" : { + "type" : "ControlElement", + "id" : "acm002702jsd", + "name" : "PreambleChange" + }, + "acm002703jsd" : { + "type" : "ControlElement", + "id" : "acm002703jsd", + "name" : "applyChange" + }, + "acm002704jsd" : { + "type" : "ControlElement", + "id" : "acm002704jsd", + "name" : "getPreambleDiff" + }, + "acm002705jsd" : { + "type" : "ClassUnit", + "id" : "acm002705jsd", + "name" : "PreambleChange", + "compilationUnitId" : "acm002696jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm002705jsd", "acm009381jsd", "acm009454jsd", "acm010668jsd", "acm018022jsd" ], + "content" : [ "acm002702jsd", "acm002703jsd", "acm002704jsd" ] + }, + "acm002706jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002706jsd", + "name" : "PreambleChangeDetailsView", + "parentId" : "acm002701jsd", + "content" : [ "acm002713jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "preamblechange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002707jsd" : { + "type" : "CodePackage", + "id" : "acm002707jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002708jsd" ] + }, + "acm002708jsd" : { + "type" : "CodePackage", + "id" : "acm002708jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002709jsd" ] + }, + "acm002709jsd" : { + "type" : "CodePackage", + "id" : "acm002709jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002710jsd" ] + }, + "acm002710jsd" : { + "type" : "CodePackage", + "id" : "acm002710jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002711jsd" ] + }, + "acm002711jsd" : { + "type" : "CodePackage", + "id" : "acm002711jsd", + "name" : "preamblechange", + "parentId" : null, + "content" : [ "acm002706jsd" ] + }, + "acm002712jsd" : { + "type" : "ControlElement", + "id" : "acm002712jsd", + "name" : "PreambleChangeDetailsView" + }, + "acm002713jsd" : { + "type" : "ClassUnit", + "id" : "acm002713jsd", + "name" : "PreambleChangeDetailsView", + "compilationUnitId" : "acm002706jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002705jsd", "acm010668jsd" ], + "content" : [ "acm002712jsd" ] + }, + "acm002714jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002714jsd", + "name" : "BibTexStringAdd", + "parentId" : "acm002719jsd", + "content" : [ "acm002723jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringadd" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002715jsd" : { + "type" : "CodePackage", + "id" : "acm002715jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002716jsd" ] + }, + "acm002716jsd" : { + "type" : "CodePackage", + "id" : "acm002716jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002717jsd" ] + }, + "acm002717jsd" : { + "type" : "CodePackage", + "id" : "acm002717jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002718jsd" ] + }, + "acm002718jsd" : { + "type" : "CodePackage", + "id" : "acm002718jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002719jsd" ] + }, + "acm002719jsd" : { + "type" : "CodePackage", + "id" : "acm002719jsd", + "name" : "stringadd", + "parentId" : "acm002487jsd", + "content" : [ "acm002714jsd", "acm002724jsd" ] + }, + "acm002720jsd" : { + "type" : "ControlElement", + "id" : "acm002720jsd", + "name" : "BibTexStringAdd" + }, + "acm002721jsd" : { + "type" : "ControlElement", + "id" : "acm002721jsd", + "name" : "applyChange" + }, + "acm002722jsd" : { + "type" : "ControlElement", + "id" : "acm002722jsd", + "name" : "getAddedString" + }, + "acm002723jsd" : { + "type" : "ClassUnit", + "id" : "acm002723jsd", + "name" : "BibTexStringAdd", + "compilationUnitId" : "acm002714jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm002723jsd", "acm009381jsd", "acm009433jsd", "acm018022jsd", "acm018071jsd", "acm018367jsd" ], + "content" : [ "acm002720jsd", "acm002721jsd", "acm002722jsd" ] + }, + "acm002724jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002724jsd", + "name" : "BibTexStringAddDetailsView", + "parentId" : "acm002719jsd", + "content" : [ "acm002731jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringadd" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002725jsd" : { + "type" : "CodePackage", + "id" : "acm002725jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002726jsd" ] + }, + "acm002726jsd" : { + "type" : "CodePackage", + "id" : "acm002726jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002727jsd" ] + }, + "acm002727jsd" : { + "type" : "CodePackage", + "id" : "acm002727jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002728jsd" ] + }, + "acm002728jsd" : { + "type" : "CodePackage", + "id" : "acm002728jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002729jsd" ] + }, + "acm002729jsd" : { + "type" : "CodePackage", + "id" : "acm002729jsd", + "name" : "stringadd", + "parentId" : null, + "content" : [ "acm002724jsd" ] + }, + "acm002730jsd" : { + "type" : "ControlElement", + "id" : "acm002730jsd", + "name" : "BibTexStringAddDetailsView" + }, + "acm002731jsd" : { + "type" : "ClassUnit", + "id" : "acm002731jsd", + "name" : "BibTexStringAddDetailsView", + "compilationUnitId" : "acm002724jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002723jsd" ], + "content" : [ "acm002730jsd" ] + }, + "acm002732jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002732jsd", + "name" : "BibTexStringChange", + "parentId" : "acm002737jsd", + "content" : [ "acm002742jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringchange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002733jsd" : { + "type" : "CodePackage", + "id" : "acm002733jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002734jsd" ] + }, + "acm002734jsd" : { + "type" : "CodePackage", + "id" : "acm002734jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002735jsd" ] + }, + "acm002735jsd" : { + "type" : "CodePackage", + "id" : "acm002735jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002736jsd" ] + }, + "acm002736jsd" : { + "type" : "CodePackage", + "id" : "acm002736jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002737jsd" ] + }, + "acm002737jsd" : { + "type" : "CodePackage", + "id" : "acm002737jsd", + "name" : "stringchange", + "parentId" : "acm002487jsd", + "content" : [ "acm002732jsd", "acm002743jsd" ] + }, + "acm002738jsd" : { + "type" : "ControlElement", + "id" : "acm002738jsd", + "name" : "BibTexStringChange" + }, + "acm002739jsd" : { + "type" : "ControlElement", + "id" : "acm002739jsd", + "name" : "applyChange" + }, + "acm002740jsd" : { + "type" : "ControlElement", + "id" : "acm002740jsd", + "name" : "getOldString" + }, + "acm002741jsd" : { + "type" : "ControlElement", + "id" : "acm002741jsd", + "name" : "getNewString" + }, + "acm002742jsd" : { + "type" : "ClassUnit", + "id" : "acm002742jsd", + "name" : "BibTexStringChange", + "compilationUnitId" : "acm002732jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm002742jsd", "acm009381jsd", "acm009486jsd", "acm018022jsd", "acm018367jsd" ], + "content" : [ "acm002738jsd", "acm002739jsd", "acm002740jsd", "acm002741jsd" ] + }, + "acm002743jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002743jsd", + "name" : "BibTexStringChangeDetailsView", + "parentId" : "acm002737jsd", + "content" : [ "acm002750jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringchange" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002744jsd" : { + "type" : "CodePackage", + "id" : "acm002744jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002745jsd" ] + }, + "acm002745jsd" : { + "type" : "CodePackage", + "id" : "acm002745jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002746jsd" ] + }, + "acm002746jsd" : { + "type" : "CodePackage", + "id" : "acm002746jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002747jsd" ] + }, + "acm002747jsd" : { + "type" : "CodePackage", + "id" : "acm002747jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002748jsd" ] + }, + "acm002748jsd" : { + "type" : "CodePackage", + "id" : "acm002748jsd", + "name" : "stringchange", + "parentId" : null, + "content" : [ "acm002743jsd" ] + }, + "acm002749jsd" : { + "type" : "ControlElement", + "id" : "acm002749jsd", + "name" : "BibTexStringChangeDetailsView" + }, + "acm002750jsd" : { + "type" : "ClassUnit", + "id" : "acm002750jsd", + "name" : "BibTexStringChangeDetailsView", + "compilationUnitId" : "acm002743jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002742jsd" ], + "content" : [ "acm002749jsd" ] + }, + "acm002751jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002751jsd", + "name" : "BibTexStringDelete", + "parentId" : "acm002756jsd", + "content" : [ "acm002760jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringdelete" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002752jsd" : { + "type" : "CodePackage", + "id" : "acm002752jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002753jsd" ] + }, + "acm002753jsd" : { + "type" : "CodePackage", + "id" : "acm002753jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002754jsd" ] + }, + "acm002754jsd" : { + "type" : "CodePackage", + "id" : "acm002754jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002755jsd" ] + }, + "acm002755jsd" : { + "type" : "CodePackage", + "id" : "acm002755jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002756jsd" ] + }, + "acm002756jsd" : { + "type" : "CodePackage", + "id" : "acm002756jsd", + "name" : "stringdelete", + "parentId" : "acm002487jsd", + "content" : [ "acm002751jsd", "acm002761jsd" ] + }, + "acm002757jsd" : { + "type" : "ControlElement", + "id" : "acm002757jsd", + "name" : "BibTexStringDelete" + }, + "acm002758jsd" : { + "type" : "ControlElement", + "id" : "acm002758jsd", + "name" : "applyChange" + }, + "acm002759jsd" : { + "type" : "ControlElement", + "id" : "acm002759jsd", + "name" : "getDeletedString" + }, + "acm002760jsd" : { + "type" : "ClassUnit", + "id" : "acm002760jsd", + "name" : "BibTexStringDelete", + "compilationUnitId" : "acm002751jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm002760jsd", "acm009381jsd", "acm009476jsd", "acm018022jsd", "acm018367jsd" ], + "content" : [ "acm002757jsd", "acm002758jsd", "acm002759jsd" ] + }, + "acm002761jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002761jsd", + "name" : "BibTexStringDeleteDetailsView", + "parentId" : "acm002756jsd", + "content" : [ "acm002768jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringdelete" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002762jsd" : { + "type" : "CodePackage", + "id" : "acm002762jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002763jsd" ] + }, + "acm002763jsd" : { + "type" : "CodePackage", + "id" : "acm002763jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002764jsd" ] + }, + "acm002764jsd" : { + "type" : "CodePackage", + "id" : "acm002764jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002765jsd" ] + }, + "acm002765jsd" : { + "type" : "CodePackage", + "id" : "acm002765jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002766jsd" ] + }, + "acm002766jsd" : { + "type" : "CodePackage", + "id" : "acm002766jsd", + "name" : "stringdelete", + "parentId" : null, + "content" : [ "acm002761jsd" ] + }, + "acm002767jsd" : { + "type" : "ControlElement", + "id" : "acm002767jsd", + "name" : "BibTexStringDeleteDetailsView" + }, + "acm002768jsd" : { + "type" : "ClassUnit", + "id" : "acm002768jsd", + "name" : "BibTexStringDeleteDetailsView", + "compilationUnitId" : "acm002761jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002760jsd" ], + "content" : [ "acm002767jsd" ] + }, + "acm002769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002769jsd", + "name" : "BibTexStringRename", + "parentId" : "acm002774jsd", + "content" : [ "acm002779jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringrename" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002770jsd" : { + "type" : "CodePackage", + "id" : "acm002770jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002771jsd" ] + }, + "acm002771jsd" : { + "type" : "CodePackage", + "id" : "acm002771jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002772jsd" ] + }, + "acm002772jsd" : { + "type" : "CodePackage", + "id" : "acm002772jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002773jsd" ] + }, + "acm002773jsd" : { + "type" : "CodePackage", + "id" : "acm002773jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002774jsd" ] + }, + "acm002774jsd" : { + "type" : "CodePackage", + "id" : "acm002774jsd", + "name" : "stringrename", + "parentId" : "acm002487jsd", + "content" : [ "acm002769jsd", "acm002780jsd" ] + }, + "acm002775jsd" : { + "type" : "ControlElement", + "id" : "acm002775jsd", + "name" : "BibTexStringRename" + }, + "acm002776jsd" : { + "type" : "ControlElement", + "id" : "acm002776jsd", + "name" : "applyChange" + }, + "acm002777jsd" : { + "type" : "ControlElement", + "id" : "acm002777jsd", + "name" : "getOldString" + }, + "acm002778jsd" : { + "type" : "ControlElement", + "id" : "acm002778jsd", + "name" : "getNewString" + }, + "acm002779jsd" : { + "type" : "ClassUnit", + "id" : "acm002779jsd", + "name" : "BibTexStringRename", + "compilationUnitId" : "acm002769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002505jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002562jsd", "acm002779jsd", "acm009381jsd", "acm009486jsd", "acm018022jsd", "acm018367jsd" ], + "content" : [ "acm002775jsd", "acm002776jsd", "acm002777jsd", "acm002778jsd" ] + }, + "acm002780jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002780jsd", + "name" : "BibTexStringRenameDetailsView", + "parentId" : "acm002774jsd", + "content" : [ "acm002787jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "collab", "stringrename" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002781jsd" : { + "type" : "CodePackage", + "id" : "acm002781jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002782jsd" ] + }, + "acm002782jsd" : { + "type" : "CodePackage", + "id" : "acm002782jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002783jsd" ] + }, + "acm002783jsd" : { + "type" : "CodePackage", + "id" : "acm002783jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002784jsd" ] + }, + "acm002784jsd" : { + "type" : "CodePackage", + "id" : "acm002784jsd", + "name" : "collab", + "parentId" : null, + "content" : [ "acm002785jsd" ] + }, + "acm002785jsd" : { + "type" : "CodePackage", + "id" : "acm002785jsd", + "name" : "stringrename", + "parentId" : null, + "content" : [ "acm002780jsd" ] + }, + "acm002786jsd" : { + "type" : "ControlElement", + "id" : "acm002786jsd", + "name" : "BibTexStringRenameDetailsView" + }, + "acm002787jsd" : { + "type" : "ClassUnit", + "id" : "acm002787jsd", + "name" : "BibTexStringRenameDetailsView", + "compilationUnitId" : "acm002780jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002511jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002779jsd" ], + "content" : [ "acm002786jsd" ] + }, + "acm002788jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002788jsd", + "name" : "CitationKeyPatternPanel", + "parentId" : "acm002792jsd", + "content" : [ "acm002801jsd", "acm002803jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002789jsd" : { + "type" : "CodePackage", + "id" : "acm002789jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002790jsd" ] + }, + "acm002790jsd" : { + "type" : "CodePackage", + "id" : "acm002790jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002791jsd" ] + }, + "acm002791jsd" : { + "type" : "CodePackage", + "id" : "acm002791jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002792jsd" ] + }, + "acm002792jsd" : { + "type" : "CodePackage", + "id" : "acm002792jsd", + "name" : "commonfxcontrols", + "parentId" : "acm001569jsd", + "content" : [ "acm002788jsd", "acm002804jsd", "acm002817jsd", "acm002834jsd", "acm002850jsd", "acm002868jsd", "acm002889jsd", "acm002905jsd", "acm021499jsd" ] + }, + "acm002793jsd" : { + "type" : "ControlElement", + "id" : "acm002793jsd", + "name" : "CitationKeyPatternPanel" + }, + "acm002794jsd" : { + "type" : "ControlElement", + "id" : "acm002794jsd", + "name" : "initialize" + }, + "acm002795jsd" : { + "type" : "ControlElement", + "id" : "acm002795jsd", + "name" : "setValues" + }, + "acm002796jsd" : { + "type" : "ControlElement", + "id" : "acm002796jsd", + "name" : "resetAll" + }, + "acm002797jsd" : { + "type" : "ControlElement", + "id" : "acm002797jsd", + "name" : "patternListProperty" + }, + "acm002798jsd" : { + "type" : "ControlElement", + "id" : "acm002798jsd", + "name" : "defaultKeyPatternProperty" + }, + "acm002799jsd" : { + "type" : "ControlElement", + "id" : "acm002799jsd", + "name" : "jumpToSearchKey" + }, + "acm002800jsd" : { + "type" : "ControlElement", + "id" : "acm002800jsd", + "name" : "updateItem" + }, + "acm002801jsd" : { + "type" : "ClassUnit", + "id" : "acm002801jsd", + "name" : "CitationKeyPatternPanel", + "compilationUnitId" : "acm002788jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002816jsd", "acm002830jsd", "acm010025jsd", "acm010886jsd", "acm018289jsd", "acm019005jsd", "acm021206jsd" ], + "content" : [ "acm002793jsd", "acm002794jsd", "acm002795jsd", "acm002796jsd", "acm002797jsd", "acm002798jsd", "acm002799jsd", "acm002800jsd" ] + }, + "acm002802jsd" : { + "type" : "ControlElement", + "id" : "acm002802jsd", + "name" : "updateItem" + }, + "acm002803jsd" : { + "type" : "ClassUnit", + "id" : "acm002803jsd", + "name" : "HighlightTableRow", + "compilationUnitId" : "acm002788jsd", + "parentDatatypeId" : "acm002801jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002816jsd" ], + "content" : [ "acm002802jsd" ] + }, + "acm002804jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002804jsd", + "name" : "CitationKeyPatternPanelItemModel", + "parentId" : "acm002792jsd", + "content" : [ "acm002816jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002805jsd" : { + "type" : "CodePackage", + "id" : "acm002805jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002806jsd" ] + }, + "acm002806jsd" : { + "type" : "CodePackage", + "id" : "acm002806jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002807jsd" ] + }, + "acm002807jsd" : { + "type" : "CodePackage", + "id" : "acm002807jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002808jsd" ] + }, + "acm002808jsd" : { + "type" : "CodePackage", + "id" : "acm002808jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002804jsd" ] + }, + "acm002809jsd" : { + "type" : "ControlElement", + "id" : "acm002809jsd", + "name" : "CitationKeyPatternPanelItemModel" + }, + "acm002810jsd" : { + "type" : "ControlElement", + "id" : "acm002810jsd", + "name" : "getEntryType" + }, + "acm002811jsd" : { + "type" : "ControlElement", + "id" : "acm002811jsd", + "name" : "entryType" + }, + "acm002812jsd" : { + "type" : "ControlElement", + "id" : "acm002812jsd", + "name" : "setPattern" + }, + "acm002813jsd" : { + "type" : "ControlElement", + "id" : "acm002813jsd", + "name" : "getPattern" + }, + "acm002814jsd" : { + "type" : "ControlElement", + "id" : "acm002814jsd", + "name" : "pattern" + }, + "acm002815jsd" : { + "type" : "ControlElement", + "id" : "acm002815jsd", + "name" : "toString" + }, + "acm002816jsd" : { + "type" : "ClassUnit", + "id" : "acm002816jsd", + "name" : "CitationKeyPatternPanelItemModel", + "compilationUnitId" : "acm002804jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019005jsd" ], + "content" : [ "acm002809jsd", "acm002810jsd", "acm002811jsd", "acm002812jsd", "acm002813jsd", "acm002814jsd", "acm002815jsd" ] + }, + "acm002817jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002817jsd", + "name" : "CitationKeyPatternPanelViewModel", + "parentId" : "acm002792jsd", + "content" : [ "acm002830jsd", "acm002833jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002818jsd" : { + "type" : "CodePackage", + "id" : "acm002818jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002819jsd" ] + }, + "acm002819jsd" : { + "type" : "CodePackage", + "id" : "acm002819jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002820jsd" ] + }, + "acm002820jsd" : { + "type" : "CodePackage", + "id" : "acm002820jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002821jsd" ] + }, + "acm002821jsd" : { + "type" : "CodePackage", + "id" : "acm002821jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002817jsd" ] + }, + "acm002822jsd" : { + "type" : "ControlElement", + "id" : "acm002822jsd", + "name" : "CitationKeyPatternPanelViewModel" + }, + "acm002823jsd" : { + "type" : "ControlElement", + "id" : "acm002823jsd", + "name" : "setValues" + }, + "acm002824jsd" : { + "type" : "ControlElement", + "id" : "acm002824jsd", + "name" : "setItemToDefaultPattern" + }, + "acm002825jsd" : { + "type" : "ControlElement", + "id" : "acm002825jsd", + "name" : "resetAll" + }, + "acm002826jsd" : { + "type" : "ControlElement", + "id" : "acm002826jsd", + "name" : "patternListProperty" + }, + "acm002827jsd" : { + "type" : "ControlElement", + "id" : "acm002827jsd", + "name" : "defaultKeyPatternProperty" + }, + "acm002828jsd" : { + "type" : "ControlElement", + "id" : "acm002828jsd", + "name" : "getName" + }, + "acm002829jsd" : { + "type" : "ControlElement", + "id" : "acm002829jsd", + "name" : "getDisplayName" + }, + "acm002830jsd" : { + "type" : "ClassUnit", + "id" : "acm002830jsd", + "name" : "CitationKeyPatternPanelViewModel", + "compilationUnitId" : "acm002817jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002816jsd", "acm002833jsd", "acm010886jsd", "acm010993jsd", "acm018289jsd", "acm019005jsd" ], + "content" : [ "acm002822jsd", "acm002823jsd", "acm002824jsd", "acm002825jsd", "acm002826jsd", "acm002827jsd", "acm002828jsd", "acm002829jsd" ] + }, + "acm002831jsd" : { + "type" : "ControlElement", + "id" : "acm002831jsd", + "name" : "getName" + }, + "acm002832jsd" : { + "type" : "ControlElement", + "id" : "acm002832jsd", + "name" : "getDisplayName" + }, + "acm002833jsd" : { + "type" : "ClassUnit", + "id" : "acm002833jsd", + "name" : "DefaultEntryType", + "compilationUnitId" : "acm002817jsd", + "parentDatatypeId" : "acm002830jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002831jsd", "acm002832jsd" ] + }, + "acm002834jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002834jsd", + "name" : "FieldFormatterCleanupsPanel", + "parentId" : "acm002792jsd", + "content" : [ "acm002849jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002835jsd" : { + "type" : "CodePackage", + "id" : "acm002835jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002836jsd" ] + }, + "acm002836jsd" : { + "type" : "CodePackage", + "id" : "acm002836jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002837jsd" ] + }, + "acm002837jsd" : { + "type" : "CodePackage", + "id" : "acm002837jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002838jsd" ] + }, + "acm002838jsd" : { + "type" : "CodePackage", + "id" : "acm002838jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002834jsd" ] + }, + "acm002839jsd" : { + "type" : "ControlElement", + "id" : "acm002839jsd", + "name" : "FieldFormatterCleanupsPanel" + }, + "acm002840jsd" : { + "type" : "ControlElement", + "id" : "acm002840jsd", + "name" : "initialize" + }, + "acm002841jsd" : { + "type" : "ControlElement", + "id" : "acm002841jsd", + "name" : "setupTable" + }, + "acm002842jsd" : { + "type" : "ControlElement", + "id" : "acm002842jsd", + "name" : "setupCombos" + }, + "acm002843jsd" : { + "type" : "ControlElement", + "id" : "acm002843jsd", + "name" : "setupBindings" + }, + "acm002844jsd" : { + "type" : "ControlElement", + "id" : "acm002844jsd", + "name" : "resetToRecommended" + }, + "acm002845jsd" : { + "type" : "ControlElement", + "id" : "acm002845jsd", + "name" : "clearAll" + }, + "acm002846jsd" : { + "type" : "ControlElement", + "id" : "acm002846jsd", + "name" : "addCleanup" + }, + "acm002847jsd" : { + "type" : "ControlElement", + "id" : "acm002847jsd", + "name" : "cleanupsDisableProperty" + }, + "acm002848jsd" : { + "type" : "ControlElement", + "id" : "acm002848jsd", + "name" : "cleanupsProperty" + }, + "acm002849jsd" : { + "type" : "ClassUnit", + "id" : "acm002849jsd", + "name" : "FieldFormatterCleanupsPanel", + "compilationUnitId" : "acm002834jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002867jsd", "acm010025jsd", "acm010051jsd", "acm011169jsd", "acm011208jsd", "acm018673jsd" ], + "content" : [ "acm002839jsd", "acm002840jsd", "acm002841jsd", "acm002842jsd", "acm002843jsd", "acm002844jsd", "acm002845jsd", "acm002846jsd", "acm002847jsd", "acm002848jsd" ] + }, + "acm002850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002850jsd", + "name" : "FieldFormatterCleanupsPanelViewModel", + "parentId" : "acm002792jsd", + "content" : [ "acm002867jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002851jsd" : { + "type" : "CodePackage", + "id" : "acm002851jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002852jsd" ] + }, + "acm002852jsd" : { + "type" : "CodePackage", + "id" : "acm002852jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002853jsd" ] + }, + "acm002853jsd" : { + "type" : "CodePackage", + "id" : "acm002853jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002854jsd" ] + }, + "acm002854jsd" : { + "type" : "CodePackage", + "id" : "acm002854jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002850jsd" ] + }, + "acm002855jsd" : { + "type" : "ControlElement", + "id" : "acm002855jsd", + "name" : "FieldFormatterCleanupsPanelViewModel" + }, + "acm002856jsd" : { + "type" : "ControlElement", + "id" : "acm002856jsd", + "name" : "resetToRecommended" + }, + "acm002857jsd" : { + "type" : "ControlElement", + "id" : "acm002857jsd", + "name" : "clearAll" + }, + "acm002858jsd" : { + "type" : "ControlElement", + "id" : "acm002858jsd", + "name" : "addCleanup" + }, + "acm002859jsd" : { + "type" : "ControlElement", + "id" : "acm002859jsd", + "name" : "removeCleanup" + }, + "acm002860jsd" : { + "type" : "ControlElement", + "id" : "acm002860jsd", + "name" : "cleanupsDisableProperty" + }, + "acm002861jsd" : { + "type" : "ControlElement", + "id" : "acm002861jsd", + "name" : "cleanupsListProperty" + }, + "acm002862jsd" : { + "type" : "ControlElement", + "id" : "acm002862jsd", + "name" : "selectedCleanupProperty" + }, + "acm002863jsd" : { + "type" : "ControlElement", + "id" : "acm002863jsd", + "name" : "availableFieldsProperty" + }, + "acm002864jsd" : { + "type" : "ControlElement", + "id" : "acm002864jsd", + "name" : "selectedFieldProperty" + }, + "acm002865jsd" : { + "type" : "ControlElement", + "id" : "acm002865jsd", + "name" : "availableFormattersProperty" + }, + "acm002866jsd" : { + "type" : "ControlElement", + "id" : "acm002866jsd", + "name" : "selectedFormatterProperty" + }, + "acm002867jsd" : { + "type" : "ClassUnit", + "id" : "acm002867jsd", + "name" : "FieldFormatterCleanupsPanelViewModel", + "compilationUnitId" : "acm002850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009884jsd", "acm011169jsd", "acm011208jsd", "acm018673jsd" ], + "content" : [ "acm002855jsd", "acm002856jsd", "acm002857jsd", "acm002858jsd", "acm002859jsd", "acm002860jsd", "acm002861jsd", "acm002862jsd", "acm002863jsd", "acm002864jsd", "acm002865jsd", "acm002866jsd" ] + }, + "acm002868jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002868jsd", + "name" : "SaveOrderConfigPanel", + "parentId" : "acm002792jsd", + "content" : [ "acm002888jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002869jsd" : { + "type" : "CodePackage", + "id" : "acm002869jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002870jsd" ] + }, + "acm002870jsd" : { + "type" : "CodePackage", + "id" : "acm002870jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002871jsd" ] + }, + "acm002871jsd" : { + "type" : "CodePackage", + "id" : "acm002871jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002872jsd" ] + }, + "acm002872jsd" : { + "type" : "CodePackage", + "id" : "acm002872jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002868jsd" ] + }, + "acm002873jsd" : { + "type" : "ControlElement", + "id" : "acm002873jsd", + "name" : "SaveOrderConfigPanel" + }, + "acm002874jsd" : { + "type" : "ControlElement", + "id" : "acm002874jsd", + "name" : "initialize" + }, + "acm002875jsd" : { + "type" : "ControlElement", + "id" : "acm002875jsd", + "name" : "createCriterionRow" + }, + "acm002876jsd" : { + "type" : "ControlElement", + "id" : "acm002876jsd", + "name" : "createRowButtons" + }, + "acm002877jsd" : { + "type" : "ControlElement", + "id" : "acm002877jsd", + "name" : "clearCriterionRow" + }, + "acm002878jsd" : { + "type" : "ControlElement", + "id" : "acm002878jsd", + "name" : "setCriteriaLimit" + }, + "acm002879jsd" : { + "type" : "ControlElement", + "id" : "acm002879jsd", + "name" : "addCriterion" + }, + "acm002880jsd" : { + "type" : "ControlElement", + "id" : "acm002880jsd", + "name" : "moveCriterionUp" + }, + "acm002881jsd" : { + "type" : "ControlElement", + "id" : "acm002881jsd", + "name" : "moveCriterionDown" + }, + "acm002882jsd" : { + "type" : "ControlElement", + "id" : "acm002882jsd", + "name" : "removeCriterion" + }, + "acm002883jsd" : { + "type" : "ControlElement", + "id" : "acm002883jsd", + "name" : "saveInOriginalProperty" + }, + "acm002884jsd" : { + "type" : "ControlElement", + "id" : "acm002884jsd", + "name" : "saveInTableOrderProperty" + }, + "acm002885jsd" : { + "type" : "ControlElement", + "id" : "acm002885jsd", + "name" : "saveInSpecifiedOrderProperty" + }, + "acm002886jsd" : { + "type" : "ControlElement", + "id" : "acm002886jsd", + "name" : "sortableFieldsProperty" + }, + "acm002887jsd" : { + "type" : "ControlElement", + "id" : "acm002887jsd", + "name" : "sortCriteriaProperty" + }, + "acm002888jsd" : { + "type" : "ClassUnit", + "id" : "acm002888jsd", + "name" : "SaveOrderConfigPanel", + "compilationUnitId" : "acm002868jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002904jsd", "acm002914jsd", "acm005432jsd", "acm010051jsd", "acm018673jsd" ], + "content" : [ "acm002873jsd", "acm002874jsd", "acm002875jsd", "acm002876jsd", "acm002877jsd", "acm002878jsd", "acm002879jsd", "acm002880jsd", "acm002881jsd", "acm002882jsd", "acm002883jsd", "acm002884jsd", "acm002885jsd", "acm002886jsd", "acm002887jsd" ] + }, + "acm002889jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002889jsd", + "name" : "SaveOrderConfigPanelViewModel", + "parentId" : "acm002792jsd", + "content" : [ "acm002904jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002890jsd" : { + "type" : "CodePackage", + "id" : "acm002890jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002891jsd" ] + }, + "acm002891jsd" : { + "type" : "CodePackage", + "id" : "acm002891jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002892jsd" ] + }, + "acm002892jsd" : { + "type" : "CodePackage", + "id" : "acm002892jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002893jsd" ] + }, + "acm002893jsd" : { + "type" : "CodePackage", + "id" : "acm002893jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002889jsd" ] + }, + "acm002894jsd" : { + "type" : "ControlElement", + "id" : "acm002894jsd", + "name" : "SaveOrderConfigPanelViewModel" + }, + "acm002895jsd" : { + "type" : "ControlElement", + "id" : "acm002895jsd", + "name" : "addCriterion" + }, + "acm002896jsd" : { + "type" : "ControlElement", + "id" : "acm002896jsd", + "name" : "removeCriterion" + }, + "acm002897jsd" : { + "type" : "ControlElement", + "id" : "acm002897jsd", + "name" : "moveCriterionUp" + }, + "acm002898jsd" : { + "type" : "ControlElement", + "id" : "acm002898jsd", + "name" : "moveCriterionDown" + }, + "acm002899jsd" : { + "type" : "ControlElement", + "id" : "acm002899jsd", + "name" : "saveInOriginalProperty" + }, + "acm002900jsd" : { + "type" : "ControlElement", + "id" : "acm002900jsd", + "name" : "saveInTableOrderProperty" + }, + "acm002901jsd" : { + "type" : "ControlElement", + "id" : "acm002901jsd", + "name" : "saveInSpecifiedOrderProperty" + }, + "acm002902jsd" : { + "type" : "ControlElement", + "id" : "acm002902jsd", + "name" : "sortableFieldsProperty" + }, + "acm002903jsd" : { + "type" : "ControlElement", + "id" : "acm002903jsd", + "name" : "sortCriteriaProperty" + }, + "acm002904jsd" : { + "type" : "ClassUnit", + "id" : "acm002904jsd", + "name" : "SaveOrderConfigPanelViewModel", + "compilationUnitId" : "acm002889jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002914jsd", "acm018673jsd", "acm019454jsd" ], + "content" : [ "acm002894jsd", "acm002895jsd", "acm002896jsd", "acm002897jsd", "acm002898jsd", "acm002899jsd", "acm002900jsd", "acm002901jsd", "acm002902jsd", "acm002903jsd" ] + }, + "acm002905jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002905jsd", + "name" : "SortCriterionViewModel", + "parentId" : "acm002792jsd", + "content" : [ "acm002914jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002906jsd" : { + "type" : "CodePackage", + "id" : "acm002906jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002907jsd" ] + }, + "acm002907jsd" : { + "type" : "CodePackage", + "id" : "acm002907jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002908jsd" ] + }, + "acm002908jsd" : { + "type" : "CodePackage", + "id" : "acm002908jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002909jsd" ] + }, + "acm002909jsd" : { + "type" : "CodePackage", + "id" : "acm002909jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm002905jsd" ] + }, + "acm002910jsd" : { + "type" : "ControlElement", + "id" : "acm002910jsd", + "name" : "SortCriterionViewModel" + }, + "acm002911jsd" : { + "type" : "ControlElement", + "id" : "acm002911jsd", + "name" : "fieldProperty" + }, + "acm002912jsd" : { + "type" : "ControlElement", + "id" : "acm002912jsd", + "name" : "descendingProperty" + }, + "acm002913jsd" : { + "type" : "ControlElement", + "id" : "acm002913jsd", + "name" : "getCriterion" + }, + "acm002914jsd" : { + "type" : "ClassUnit", + "id" : "acm002914jsd", + "name" : "SortCriterionViewModel", + "compilationUnitId" : "acm002905jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019454jsd" ], + "content" : [ "acm002910jsd", "acm002911jsd", "acm002912jsd", "acm002913jsd" ] + }, + "acm002915jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002915jsd", + "name" : "CopyFilesAction", + "parentId" : "acm002919jsd", + "content" : [ "acm002923jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002916jsd" : { + "type" : "CodePackage", + "id" : "acm002916jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002917jsd" ] + }, + "acm002917jsd" : { + "type" : "CodePackage", + "id" : "acm002917jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002918jsd" ] + }, + "acm002918jsd" : { + "type" : "CodePackage", + "id" : "acm002918jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002919jsd" ] + }, + "acm002919jsd" : { + "type" : "CodePackage", + "id" : "acm002919jsd", + "name" : "copyfiles", + "parentId" : "acm001569jsd", + "content" : [ "acm002915jsd", "acm002924jsd", "acm002933jsd", "acm002941jsd", "acm002952jsd", "acm002962jsd", "acm002972jsd" ] + }, + "acm002920jsd" : { + "type" : "ControlElement", + "id" : "acm002920jsd", + "name" : "CopyFilesAction" + }, + "acm002921jsd" : { + "type" : "ControlElement", + "id" : "acm002921jsd", + "name" : "showDialog" + }, + "acm002922jsd" : { + "type" : "ControlElement", + "id" : "acm002922jsd", + "name" : "execute" + }, + "acm002923jsd" : { + "type" : "ClassUnit", + "id" : "acm002923jsd", + "name" : "CopyFilesAction", + "compilationUnitId" : "acm002915jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002932jsd", "acm002951jsd", "acm002961jsd", "acm009752jsd", "acm009756jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm002920jsd", "acm002921jsd", "acm002922jsd" ] + }, + "acm002924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002924jsd", + "name" : "CopyFilesDialogView", + "parentId" : "acm002919jsd", + "content" : [ "acm002932jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002925jsd" : { + "type" : "CodePackage", + "id" : "acm002925jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002926jsd" ] + }, + "acm002926jsd" : { + "type" : "CodePackage", + "id" : "acm002926jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002927jsd" ] + }, + "acm002927jsd" : { + "type" : "CodePackage", + "id" : "acm002927jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002928jsd" ] + }, + "acm002928jsd" : { + "type" : "CodePackage", + "id" : "acm002928jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002924jsd" ] + }, + "acm002929jsd" : { + "type" : "ControlElement", + "id" : "acm002929jsd", + "name" : "CopyFilesDialogView" + }, + "acm002930jsd" : { + "type" : "ControlElement", + "id" : "acm002930jsd", + "name" : "initialize" + }, + "acm002931jsd" : { + "type" : "ControlElement", + "id" : "acm002931jsd", + "name" : "setupTable" + }, + "acm002932jsd" : { + "type" : "ClassUnit", + "id" : "acm002932jsd", + "name" : "CopyFilesDialogView", + "compilationUnitId" : "acm002924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002940jsd", "acm002951jsd", "acm002961jsd", "acm005416jsd", "acm010025jsd" ], + "content" : [ "acm002929jsd", "acm002930jsd", "acm002931jsd" ] + }, + "acm002933jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002933jsd", + "name" : "CopyFilesDialogViewModel", + "parentId" : "acm002919jsd", + "content" : [ "acm002940jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002934jsd" : { + "type" : "CodePackage", + "id" : "acm002934jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002935jsd" ] + }, + "acm002935jsd" : { + "type" : "CodePackage", + "id" : "acm002935jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002936jsd" ] + }, + "acm002936jsd" : { + "type" : "CodePackage", + "id" : "acm002936jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002937jsd" ] + }, + "acm002937jsd" : { + "type" : "CodePackage", + "id" : "acm002937jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002933jsd" ] + }, + "acm002938jsd" : { + "type" : "ControlElement", + "id" : "acm002938jsd", + "name" : "CopyFilesDialogViewModel" + }, + "acm002939jsd" : { + "type" : "ControlElement", + "id" : "acm002939jsd", + "name" : "copyFilesResultListProperty" + }, + "acm002940jsd" : { + "type" : "ClassUnit", + "id" : "acm002940jsd", + "name" : "CopyFilesDialogViewModel", + "compilationUnitId" : "acm002933jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002951jsd", "acm002961jsd" ], + "content" : [ "acm002938jsd", "acm002939jsd" ] + }, + "acm002941jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002941jsd", + "name" : "CopyFilesResultItemViewModel", + "parentId" : "acm002919jsd", + "content" : [ "acm002951jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002942jsd" : { + "type" : "CodePackage", + "id" : "acm002942jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002943jsd" ] + }, + "acm002943jsd" : { + "type" : "CodePackage", + "id" : "acm002943jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002944jsd" ] + }, + "acm002944jsd" : { + "type" : "CodePackage", + "id" : "acm002944jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002945jsd" ] + }, + "acm002945jsd" : { + "type" : "CodePackage", + "id" : "acm002945jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002941jsd" ] + }, + "acm002946jsd" : { + "type" : "ControlElement", + "id" : "acm002946jsd", + "name" : "CopyFilesResultItemViewModel" + }, + "acm002947jsd" : { + "type" : "ControlElement", + "id" : "acm002947jsd", + "name" : "getFile" + }, + "acm002948jsd" : { + "type" : "ControlElement", + "id" : "acm002948jsd", + "name" : "getMessage" + }, + "acm002949jsd" : { + "type" : "ControlElement", + "id" : "acm002949jsd", + "name" : "getIcon" + }, + "acm002950jsd" : { + "type" : "ControlElement", + "id" : "acm002950jsd", + "name" : "toString" + }, + "acm002951jsd" : { + "type" : "ClassUnit", + "id" : "acm002951jsd", + "name" : "CopyFilesResultItemViewModel", + "compilationUnitId" : "acm002941jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm002946jsd", "acm002947jsd", "acm002948jsd", "acm002949jsd", "acm002950jsd" ] + }, + "acm002952jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002952jsd", + "name" : "CopyFilesResultListDependency", + "parentId" : "acm002919jsd", + "content" : [ "acm002961jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002953jsd" : { + "type" : "CodePackage", + "id" : "acm002953jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002954jsd" ] + }, + "acm002954jsd" : { + "type" : "CodePackage", + "id" : "acm002954jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002955jsd" ] + }, + "acm002955jsd" : { + "type" : "CodePackage", + "id" : "acm002955jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002956jsd" ] + }, + "acm002956jsd" : { + "type" : "CodePackage", + "id" : "acm002956jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002952jsd" ] + }, + "acm002957jsd" : { + "type" : "ControlElement", + "id" : "acm002957jsd", + "name" : "CopyFilesResultListDependency" + }, + "acm002958jsd" : { + "type" : "ControlElement", + "id" : "acm002958jsd", + "name" : "CopyFilesResultListDependency" + }, + "acm002959jsd" : { + "type" : "ControlElement", + "id" : "acm002959jsd", + "name" : "getResults" + }, + "acm002960jsd" : { + "type" : "ControlElement", + "id" : "acm002960jsd", + "name" : "toString" + }, + "acm002961jsd" : { + "type" : "ClassUnit", + "id" : "acm002961jsd", + "name" : "CopyFilesResultListDependency", + "compilationUnitId" : "acm002952jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002951jsd" ], + "content" : [ "acm002957jsd", "acm002958jsd", "acm002959jsd", "acm002960jsd" ] + }, + "acm002962jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002962jsd", + "name" : "CopyFilesTask", + "parentId" : "acm002919jsd", + "content" : [ "acm002971jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002963jsd" : { + "type" : "CodePackage", + "id" : "acm002963jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002964jsd" ] + }, + "acm002964jsd" : { + "type" : "CodePackage", + "id" : "acm002964jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002965jsd" ] + }, + "acm002965jsd" : { + "type" : "CodePackage", + "id" : "acm002965jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002966jsd" ] + }, + "acm002966jsd" : { + "type" : "CodePackage", + "id" : "acm002966jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002962jsd" ] + }, + "acm002967jsd" : { + "type" : "ControlElement", + "id" : "acm002967jsd", + "name" : "CopyFilesTask" + }, + "acm002968jsd" : { + "type" : "ControlElement", + "id" : "acm002968jsd", + "name" : "call" + }, + "acm002969jsd" : { + "type" : "ControlElement", + "id" : "acm002969jsd", + "name" : "writeLogMessage" + }, + "acm002970jsd" : { + "type" : "ControlElement", + "id" : "acm002970jsd", + "name" : "addResultToList" + }, + "acm002971jsd" : { + "type" : "ClassUnit", + "id" : "acm002971jsd", + "name" : "CopyFilesTask", + "compilationUnitId" : "acm002962jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002923jsd", "acm002951jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm002967jsd", "acm002968jsd", "acm002969jsd", "acm002970jsd" ] + }, + "acm002972jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002972jsd", + "name" : "CopySingleFileAction", + "parentId" : "acm002919jsd", + "content" : [ "acm002980jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "copyfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002973jsd" : { + "type" : "CodePackage", + "id" : "acm002973jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002974jsd" ] + }, + "acm002974jsd" : { + "type" : "CodePackage", + "id" : "acm002974jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002975jsd" ] + }, + "acm002975jsd" : { + "type" : "CodePackage", + "id" : "acm002975jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002976jsd" ] + }, + "acm002976jsd" : { + "type" : "CodePackage", + "id" : "acm002976jsd", + "name" : "copyfiles", + "parentId" : null, + "content" : [ "acm002972jsd" ] + }, + "acm002977jsd" : { + "type" : "ControlElement", + "id" : "acm002977jsd", + "name" : "CopySingleFileAction" + }, + "acm002978jsd" : { + "type" : "ControlElement", + "id" : "acm002978jsd", + "name" : "execute" + }, + "acm002979jsd" : { + "type" : "ControlElement", + "id" : "acm002979jsd", + "name" : "copyFileToDestination" + }, + "acm002980jsd" : { + "type" : "ClassUnit", + "id" : "acm002980jsd", + "name" : "CopySingleFileAction", + "compilationUnitId" : "acm002972jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009752jsd", "acm009756jsd", "acm018022jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm002977jsd", "acm002978jsd", "acm002979jsd" ] + }, + "acm002981jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002981jsd", + "name" : "JabRefDesktop", + "parentId" : "acm002985jsd", + "content" : [ "acm002998jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002982jsd" : { + "type" : "CodePackage", + "id" : "acm002982jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm002983jsd" ] + }, + "acm002983jsd" : { + "type" : "CodePackage", + "id" : "acm002983jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm002984jsd" ] + }, + "acm002984jsd" : { + "type" : "CodePackage", + "id" : "acm002984jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm002985jsd" ] + }, + "acm002985jsd" : { + "type" : "CodePackage", + "id" : "acm002985jsd", + "name" : "desktop", + "parentId" : "acm001569jsd", + "content" : [ "acm002981jsd", "acm003004jsd" ] + }, + "acm002986jsd" : { + "type" : "ControlElement", + "id" : "acm002986jsd", + "name" : "JabRefDesktop" + }, + "acm002987jsd" : { + "type" : "ControlElement", + "id" : "acm002987jsd", + "name" : "openExternalViewer" + }, + "acm002988jsd" : { + "type" : "ControlElement", + "id" : "acm002988jsd", + "name" : "openDoi" + }, + "acm002989jsd" : { + "type" : "ControlElement", + "id" : "acm002989jsd", + "name" : "openCustomDoi" + }, + "acm002990jsd" : { + "type" : "ControlElement", + "id" : "acm002990jsd", + "name" : "openExternalFileAnyFormat" + }, + "acm002991jsd" : { + "type" : "ControlElement", + "id" : "acm002991jsd", + "name" : "openExternalFilePlatformIndependent" + }, + "acm002992jsd" : { + "type" : "ControlElement", + "id" : "acm002992jsd", + "name" : "openFolderAndSelectFile" + }, + "acm002993jsd" : { + "type" : "ControlElement", + "id" : "acm002993jsd", + "name" : "openBrowser" + }, + "acm002994jsd" : { + "type" : "ControlElement", + "id" : "acm002994jsd", + "name" : "openBrowser" + }, + "acm002995jsd" : { + "type" : "ControlElement", + "id" : "acm002995jsd", + "name" : "openBrowserShowPopup" + }, + "acm002996jsd" : { + "type" : "ControlElement", + "id" : "acm002996jsd", + "name" : "openConsole" + }, + "acm002997jsd" : { + "type" : "ControlElement", + "id" : "acm002997jsd", + "name" : "getNativeDesktop" + }, + "acm002998jsd" : { + "type" : "ClassUnit", + "id" : "acm002998jsd", + "name" : "JabRefDesktop", + "compilationUnitId" : "acm002981jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002998jsd", "acm003012jsd", "acm003027jsd", "acm003042jsd", "acm003056jsd", "acm003071jsd", "acm004328jsd", "acm014442jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm002986jsd", "acm002987jsd", "acm002988jsd", "acm002989jsd", "acm002990jsd", "acm002991jsd", "acm002992jsd", "acm002993jsd", "acm002994jsd", "acm002995jsd", "acm002996jsd", "acm002997jsd" ] + }, + "acm002999jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002999jsd", + "name" : "DefaultDesktop", + "parentId" : "acm003004jsd", + "content" : [ "acm003012jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop", "os" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003000jsd" : { + "type" : "CodePackage", + "id" : "acm003000jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003001jsd" ] + }, + "acm003001jsd" : { + "type" : "CodePackage", + "id" : "acm003001jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003002jsd" ] + }, + "acm003002jsd" : { + "type" : "CodePackage", + "id" : "acm003002jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003003jsd" ] + }, + "acm003003jsd" : { + "type" : "CodePackage", + "id" : "acm003003jsd", + "name" : "desktop", + "parentId" : null, + "content" : [ "acm003004jsd" ] + }, + "acm003004jsd" : { + "type" : "CodePackage", + "id" : "acm003004jsd", + "name" : "os", + "parentId" : "acm002985jsd", + "content" : [ "acm002999jsd", "acm003013jsd", "acm003028jsd", "acm003043jsd", "acm003057jsd" ] + }, + "acm003005jsd" : { + "type" : "ControlElement", + "id" : "acm003005jsd", + "name" : "openFile" + }, + "acm003006jsd" : { + "type" : "ControlElement", + "id" : "acm003006jsd", + "name" : "openFileWithApplication" + }, + "acm003007jsd" : { + "type" : "ControlElement", + "id" : "acm003007jsd", + "name" : "openFolderAndSelectFile" + }, + "acm003008jsd" : { + "type" : "ControlElement", + "id" : "acm003008jsd", + "name" : "openConsole" + }, + "acm003009jsd" : { + "type" : "ControlElement", + "id" : "acm003009jsd", + "name" : "detectProgramPath" + }, + "acm003010jsd" : { + "type" : "ControlElement", + "id" : "acm003010jsd", + "name" : "getApplicationDirectory" + }, + "acm003011jsd" : { + "type" : "ControlElement", + "id" : "acm003011jsd", + "name" : "getDefaultFileChooserDirectory" + }, + "acm003012jsd" : { + "type" : "ClassUnit", + "id" : "acm003012jsd", + "name" : "DefaultDesktop", + "compilationUnitId" : "acm002999jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003042jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003042jsd" ], + "content" : [ "acm003005jsd", "acm003006jsd", "acm003007jsd", "acm003008jsd", "acm003009jsd", "acm003010jsd", "acm003011jsd" ] + }, + "acm003013jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003013jsd", + "name" : "Linux", + "parentId" : "acm003004jsd", + "content" : [ "acm003027jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop", "os" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003014jsd" : { + "type" : "CodePackage", + "id" : "acm003014jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003015jsd" ] + }, + "acm003015jsd" : { + "type" : "CodePackage", + "id" : "acm003015jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003016jsd" ] + }, + "acm003016jsd" : { + "type" : "CodePackage", + "id" : "acm003016jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003017jsd" ] + }, + "acm003017jsd" : { + "type" : "CodePackage", + "id" : "acm003017jsd", + "name" : "desktop", + "parentId" : null, + "content" : [ "acm003018jsd" ] + }, + "acm003018jsd" : { + "type" : "CodePackage", + "id" : "acm003018jsd", + "name" : "os", + "parentId" : null, + "content" : [ "acm003013jsd" ] + }, + "acm003019jsd" : { + "type" : "ControlElement", + "id" : "acm003019jsd", + "name" : "nativeOpenFile" + }, + "acm003020jsd" : { + "type" : "ControlElement", + "id" : "acm003020jsd", + "name" : "openFile" + }, + "acm003021jsd" : { + "type" : "ControlElement", + "id" : "acm003021jsd", + "name" : "openFileWithApplication" + }, + "acm003022jsd" : { + "type" : "ControlElement", + "id" : "acm003022jsd", + "name" : "openFolderAndSelectFile" + }, + "acm003023jsd" : { + "type" : "ControlElement", + "id" : "acm003023jsd", + "name" : "openConsole" + }, + "acm003024jsd" : { + "type" : "ControlElement", + "id" : "acm003024jsd", + "name" : "detectProgramPath" + }, + "acm003025jsd" : { + "type" : "ControlElement", + "id" : "acm003025jsd", + "name" : "getApplicationDirectory" + }, + "acm003026jsd" : { + "type" : "ControlElement", + "id" : "acm003026jsd", + "name" : "getDefaultFileChooserDirectory" + }, + "acm003027jsd" : { + "type" : "ClassUnit", + "id" : "acm003027jsd", + "name" : "Linux", + "compilationUnitId" : "acm003013jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003042jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003027jsd", "acm004328jsd", "acm009954jsd" ], + "content" : [ "acm003019jsd", "acm003020jsd", "acm003021jsd", "acm003022jsd", "acm003023jsd", "acm003024jsd", "acm003025jsd", "acm003026jsd" ] + }, + "acm003028jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003028jsd", + "name" : "NativeDesktop", + "parentId" : "acm003004jsd", + "content" : [ "acm003042jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop", "os" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003029jsd" : { + "type" : "CodePackage", + "id" : "acm003029jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003030jsd" ] + }, + "acm003030jsd" : { + "type" : "CodePackage", + "id" : "acm003030jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003031jsd" ] + }, + "acm003031jsd" : { + "type" : "CodePackage", + "id" : "acm003031jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003032jsd" ] + }, + "acm003032jsd" : { + "type" : "CodePackage", + "id" : "acm003032jsd", + "name" : "desktop", + "parentId" : null, + "content" : [ "acm003033jsd" ] + }, + "acm003033jsd" : { + "type" : "CodePackage", + "id" : "acm003033jsd", + "name" : "os", + "parentId" : null, + "content" : [ "acm003028jsd" ] + }, + "acm003034jsd" : { + "type" : "ControlElement", + "id" : "acm003034jsd", + "name" : "openFile" + }, + "acm003035jsd" : { + "type" : "ControlElement", + "id" : "acm003035jsd", + "name" : "openFileWithApplication" + }, + "acm003036jsd" : { + "type" : "ControlElement", + "id" : "acm003036jsd", + "name" : "openFolderAndSelectFile" + }, + "acm003037jsd" : { + "type" : "ControlElement", + "id" : "acm003037jsd", + "name" : "openConsole" + }, + "acm003038jsd" : { + "type" : "ControlElement", + "id" : "acm003038jsd", + "name" : "detectProgramPath" + }, + "acm003039jsd" : { + "type" : "ControlElement", + "id" : "acm003039jsd", + "name" : "getApplicationDirectory" + }, + "acm003040jsd" : { + "type" : "ControlElement", + "id" : "acm003040jsd", + "name" : "getDefaultFileChooserDirectory" + }, + "acm003041jsd" : { + "type" : "ControlElement", + "id" : "acm003041jsd", + "name" : "getUserDirectory" + }, + "acm003042jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003042jsd", + "name" : "NativeDesktop", + "compilationUnitId" : "acm003028jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd" ], + "content" : [ "acm003034jsd", "acm003035jsd", "acm003036jsd", "acm003037jsd", "acm003038jsd", "acm003039jsd", "acm003040jsd", "acm003041jsd" ] + }, + "acm003043jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003043jsd", + "name" : "OSX", + "parentId" : "acm003004jsd", + "content" : [ "acm003056jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop", "os" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003044jsd" : { + "type" : "CodePackage", + "id" : "acm003044jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003045jsd" ] + }, + "acm003045jsd" : { + "type" : "CodePackage", + "id" : "acm003045jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003046jsd" ] + }, + "acm003046jsd" : { + "type" : "CodePackage", + "id" : "acm003046jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003047jsd" ] + }, + "acm003047jsd" : { + "type" : "CodePackage", + "id" : "acm003047jsd", + "name" : "desktop", + "parentId" : null, + "content" : [ "acm003048jsd" ] + }, + "acm003048jsd" : { + "type" : "CodePackage", + "id" : "acm003048jsd", + "name" : "os", + "parentId" : null, + "content" : [ "acm003043jsd" ] + }, + "acm003049jsd" : { + "type" : "ControlElement", + "id" : "acm003049jsd", + "name" : "openFile" + }, + "acm003050jsd" : { + "type" : "ControlElement", + "id" : "acm003050jsd", + "name" : "openFileWithApplication" + }, + "acm003051jsd" : { + "type" : "ControlElement", + "id" : "acm003051jsd", + "name" : "openFolderAndSelectFile" + }, + "acm003052jsd" : { + "type" : "ControlElement", + "id" : "acm003052jsd", + "name" : "openConsole" + }, + "acm003053jsd" : { + "type" : "ControlElement", + "id" : "acm003053jsd", + "name" : "detectProgramPath" + }, + "acm003054jsd" : { + "type" : "ControlElement", + "id" : "acm003054jsd", + "name" : "getApplicationDirectory" + }, + "acm003055jsd" : { + "type" : "ControlElement", + "id" : "acm003055jsd", + "name" : "getDefaultFileChooserDirectory" + }, + "acm003056jsd" : { + "type" : "ClassUnit", + "id" : "acm003056jsd", + "name" : "OSX", + "compilationUnitId" : "acm003043jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003042jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd" ], + "content" : [ "acm003049jsd", "acm003050jsd", "acm003051jsd", "acm003052jsd", "acm003053jsd", "acm003054jsd", "acm003055jsd" ] + }, + "acm003057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003057jsd", + "name" : "Windows", + "parentId" : "acm003004jsd", + "content" : [ "acm003071jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "desktop", "os" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003058jsd" : { + "type" : "CodePackage", + "id" : "acm003058jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003059jsd" ] + }, + "acm003059jsd" : { + "type" : "CodePackage", + "id" : "acm003059jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003060jsd" ] + }, + "acm003060jsd" : { + "type" : "CodePackage", + "id" : "acm003060jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003061jsd" ] + }, + "acm003061jsd" : { + "type" : "CodePackage", + "id" : "acm003061jsd", + "name" : "desktop", + "parentId" : null, + "content" : [ "acm003062jsd" ] + }, + "acm003062jsd" : { + "type" : "CodePackage", + "id" : "acm003062jsd", + "name" : "os", + "parentId" : null, + "content" : [ "acm003057jsd" ] + }, + "acm003063jsd" : { + "type" : "ControlElement", + "id" : "acm003063jsd", + "name" : "openFile" + }, + "acm003064jsd" : { + "type" : "ControlElement", + "id" : "acm003064jsd", + "name" : "detectProgramPath" + }, + "acm003065jsd" : { + "type" : "ControlElement", + "id" : "acm003065jsd", + "name" : "getProgramPath" + }, + "acm003066jsd" : { + "type" : "ControlElement", + "id" : "acm003066jsd", + "name" : "getApplicationDirectory" + }, + "acm003067jsd" : { + "type" : "ControlElement", + "id" : "acm003067jsd", + "name" : "getDefaultFileChooserDirectory" + }, + "acm003068jsd" : { + "type" : "ControlElement", + "id" : "acm003068jsd", + "name" : "openFileWithApplication" + }, + "acm003069jsd" : { + "type" : "ControlElement", + "id" : "acm003069jsd", + "name" : "openFolderAndSelectFile" + }, + "acm003070jsd" : { + "type" : "ControlElement", + "id" : "acm003070jsd", + "name" : "openConsole" + }, + "acm003071jsd" : { + "type" : "ClassUnit", + "id" : "acm003071jsd", + "name" : "Windows", + "compilationUnitId" : "acm003057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003042jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003071jsd", "acm004328jsd" ], + "content" : [ "acm003063jsd", "acm003064jsd", "acm003065jsd", "acm003066jsd", "acm003067jsd", "acm003068jsd", "acm003069jsd", "acm003070jsd" ] + }, + "acm003072jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003072jsd", + "name" : "AutosaveUiManager", + "parentId" : "acm003076jsd", + "content" : [ "acm003079jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "dialogs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003073jsd" : { + "type" : "CodePackage", + "id" : "acm003073jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003074jsd" ] + }, + "acm003074jsd" : { + "type" : "CodePackage", + "id" : "acm003074jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003075jsd" ] + }, + "acm003075jsd" : { + "type" : "CodePackage", + "id" : "acm003075jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003076jsd" ] + }, + "acm003076jsd" : { + "type" : "CodePackage", + "id" : "acm003076jsd", + "name" : "dialogs", + "parentId" : "acm001569jsd", + "content" : [ "acm003072jsd", "acm003080jsd" ] + }, + "acm003077jsd" : { + "type" : "ControlElement", + "id" : "acm003077jsd", + "name" : "AutosaveUiManager" + }, + "acm003078jsd" : { + "type" : "ControlElement", + "id" : "acm003078jsd", + "name" : "listen" + }, + "acm003079jsd" : { + "type" : "ClassUnit", + "id" : "acm003079jsd", + "name" : "AutosaveUiManager", + "compilationUnitId" : "acm003072jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm003079jsd", "acm004040jsd", "acm018078jsd" ], + "content" : [ "acm003077jsd", "acm003078jsd" ] + }, + "acm003080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003080jsd", + "name" : "BackupUIManager", + "parentId" : "acm003076jsd", + "content" : [ "acm003089jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "dialogs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003081jsd" : { + "type" : "CodePackage", + "id" : "acm003081jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003082jsd" ] + }, + "acm003082jsd" : { + "type" : "CodePackage", + "id" : "acm003082jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003083jsd" ] + }, + "acm003083jsd" : { + "type" : "CodePackage", + "id" : "acm003083jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003084jsd" ] + }, + "acm003084jsd" : { + "type" : "CodePackage", + "id" : "acm003084jsd", + "name" : "dialogs", + "parentId" : null, + "content" : [ "acm003080jsd" ] + }, + "acm003085jsd" : { + "type" : "ControlElement", + "id" : "acm003085jsd", + "name" : "BackupUIManager" + }, + "acm003086jsd" : { + "type" : "ControlElement", + "id" : "acm003086jsd", + "name" : "showRestoreBackupDialog" + }, + "acm003087jsd" : { + "type" : "ControlElement", + "id" : "acm003087jsd", + "name" : "showBackupResolverDialog" + }, + "acm003088jsd" : { + "type" : "ControlElement", + "id" : "acm003088jsd", + "name" : "showReviewBackupDialog" + }, + "acm003089jsd" : { + "type" : "ClassUnit", + "id" : "acm003089jsd", + "name" : "BackupUIManager", + "compilationUnitId" : "acm003080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002562jsd", "acm003089jsd", "acm012556jsd", "acm018022jsd", "acm020676jsd", "acm021206jsd" ], + "content" : [ "acm003085jsd", "acm003086jsd", "acm003087jsd", "acm003088jsd" ] + }, + "acm003090jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003090jsd", + "name" : "DocumentPageViewModel", + "parentId" : "acm003094jsd", + "content" : [ "acm003098jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003091jsd" : { + "type" : "CodePackage", + "id" : "acm003091jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003092jsd" ] + }, + "acm003092jsd" : { + "type" : "CodePackage", + "id" : "acm003092jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003093jsd" ] + }, + "acm003093jsd" : { + "type" : "CodePackage", + "id" : "acm003093jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003094jsd" ] + }, + "acm003094jsd" : { + "type" : "CodePackage", + "id" : "acm003094jsd", + "name" : "documentviewer", + "parentId" : "acm001569jsd", + "content" : [ "acm003090jsd", "acm003099jsd", "acm003108jsd", "acm003145jsd", "acm003166jsd", "acm003187jsd", "acm003213jsd", "acm003224jsd", "acm003232jsd", "acm021510jsd" ] + }, + "acm003095jsd" : { + "type" : "ControlElement", + "id" : "acm003095jsd", + "name" : "render" + }, + "acm003096jsd" : { + "type" : "ControlElement", + "id" : "acm003096jsd", + "name" : "getPageNumber" + }, + "acm003097jsd" : { + "type" : "ControlElement", + "id" : "acm003097jsd", + "name" : "getAspectRatio" + }, + "acm003098jsd" : { + "type" : "ClassUnit", + "id" : "acm003098jsd", + "name" : "DocumentPageViewModel", + "compilationUnitId" : "acm003090jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003095jsd", "acm003096jsd", "acm003097jsd" ] + }, + "acm003099jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003099jsd", + "name" : "DocumentViewModel", + "parentId" : "acm003094jsd", + "content" : [ "acm003107jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003100jsd" : { + "type" : "CodePackage", + "id" : "acm003100jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003101jsd" ] + }, + "acm003101jsd" : { + "type" : "CodePackage", + "id" : "acm003101jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003102jsd" ] + }, + "acm003102jsd" : { + "type" : "CodePackage", + "id" : "acm003102jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003103jsd" ] + }, + "acm003103jsd" : { + "type" : "CodePackage", + "id" : "acm003103jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003099jsd" ] + }, + "acm003104jsd" : { + "type" : "ControlElement", + "id" : "acm003104jsd", + "name" : "getPages" + }, + "acm003105jsd" : { + "type" : "ControlElement", + "id" : "acm003105jsd", + "name" : "getMaxPages" + }, + "acm003106jsd" : { + "type" : "ControlElement", + "id" : "acm003106jsd", + "name" : "maxPagesProperty" + }, + "acm003107jsd" : { + "type" : "ClassUnit", + "id" : "acm003107jsd", + "name" : "DocumentViewModel", + "compilationUnitId" : "acm003099jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003098jsd" ], + "content" : [ "acm003104jsd", "acm003105jsd", "acm003106jsd" ] + }, + "acm003108jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003108jsd", + "name" : "DocumentViewerControl", + "parentId" : "acm003094jsd", + "content" : [ "acm003134jsd", "acm003144jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003109jsd" : { + "type" : "CodePackage", + "id" : "acm003109jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003110jsd" ] + }, + "acm003110jsd" : { + "type" : "CodePackage", + "id" : "acm003110jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003111jsd" ] + }, + "acm003111jsd" : { + "type" : "CodePackage", + "id" : "acm003111jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003112jsd" ] + }, + "acm003112jsd" : { + "type" : "CodePackage", + "id" : "acm003112jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003108jsd" ] + }, + "acm003113jsd" : { + "type" : "ControlElement", + "id" : "acm003113jsd", + "name" : "DocumentViewerControl" + }, + "acm003114jsd" : { + "type" : "ControlElement", + "id" : "acm003114jsd", + "name" : "scrollYMaxProperty" + }, + "acm003115jsd" : { + "type" : "ControlElement", + "id" : "acm003115jsd", + "name" : "scrollYProperty" + }, + "acm003116jsd" : { + "type" : "ControlElement", + "id" : "acm003116jsd", + "name" : "getCurrentPage" + }, + "acm003117jsd" : { + "type" : "ControlElement", + "id" : "acm003117jsd", + "name" : "currentPageProperty" + }, + "acm003118jsd" : { + "type" : "ControlElement", + "id" : "acm003118jsd", + "name" : "showPage" + }, + "acm003119jsd" : { + "type" : "ControlElement", + "id" : "acm003119jsd", + "name" : "show" + }, + "acm003120jsd" : { + "type" : "ControlElement", + "id" : "acm003120jsd", + "name" : "updateCurrentPage" + }, + "acm003121jsd" : { + "type" : "ControlElement", + "id" : "acm003121jsd", + "name" : "setPageWidth" + }, + "acm003122jsd" : { + "type" : "ControlElement", + "id" : "acm003122jsd", + "name" : "setPageHeight" + }, + "acm003123jsd" : { + "type" : "ControlElement", + "id" : "acm003123jsd", + "name" : "updateSizeOfDisplayedPages" + }, + "acm003124jsd" : { + "type" : "ControlElement", + "id" : "acm003124jsd", + "name" : "changePageWidth" + }, + "acm003125jsd" : { + "type" : "ControlElement", + "id" : "acm003125jsd", + "name" : "DocumentViewerPage" + }, + "acm003126jsd" : { + "type" : "ControlElement", + "id" : "acm003126jsd", + "name" : "getDesiredHeight" + }, + "acm003127jsd" : { + "type" : "ControlElement", + "id" : "acm003127jsd", + "name" : "getDesiredWidth" + }, + "acm003128jsd" : { + "type" : "ControlElement", + "id" : "acm003128jsd", + "name" : "getNode" + }, + "acm003129jsd" : { + "type" : "ControlElement", + "id" : "acm003129jsd", + "name" : "isReusable" + }, + "acm003130jsd" : { + "type" : "ControlElement", + "id" : "acm003130jsd", + "name" : "updateItem" + }, + "acm003131jsd" : { + "type" : "ControlElement", + "id" : "acm003131jsd", + "name" : "renderPage" + }, + "acm003132jsd" : { + "type" : "ControlElement", + "id" : "acm003132jsd", + "name" : "getPageNumber" + }, + "acm003133jsd" : { + "type" : "ControlElement", + "id" : "acm003133jsd", + "name" : "updateSize" + }, + "acm003134jsd" : { + "type" : "ClassUnit", + "id" : "acm003134jsd", + "name" : "DocumentViewerControl", + "compilationUnitId" : "acm003108jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003098jsd", "acm003107jsd", "acm003144jsd", "acm003204jsd", "acm009965jsd" ], + "content" : [ "acm003113jsd", "acm003114jsd", "acm003115jsd", "acm003116jsd", "acm003117jsd", "acm003118jsd", "acm003119jsd", "acm003120jsd", "acm003121jsd", "acm003122jsd", "acm003123jsd", "acm003124jsd", "acm003125jsd", "acm003126jsd", "acm003127jsd", "acm003128jsd", "acm003129jsd", "acm003130jsd", "acm003131jsd", "acm003132jsd", "acm003133jsd" ] + }, + "acm003135jsd" : { + "type" : "ControlElement", + "id" : "acm003135jsd", + "name" : "DocumentViewerPage" + }, + "acm003136jsd" : { + "type" : "ControlElement", + "id" : "acm003136jsd", + "name" : "getDesiredHeight" + }, + "acm003137jsd" : { + "type" : "ControlElement", + "id" : "acm003137jsd", + "name" : "getDesiredWidth" + }, + "acm003138jsd" : { + "type" : "ControlElement", + "id" : "acm003138jsd", + "name" : "getNode" + }, + "acm003139jsd" : { + "type" : "ControlElement", + "id" : "acm003139jsd", + "name" : "isReusable" + }, + "acm003140jsd" : { + "type" : "ControlElement", + "id" : "acm003140jsd", + "name" : "updateItem" + }, + "acm003141jsd" : { + "type" : "ControlElement", + "id" : "acm003141jsd", + "name" : "renderPage" + }, + "acm003142jsd" : { + "type" : "ControlElement", + "id" : "acm003142jsd", + "name" : "getPageNumber" + }, + "acm003143jsd" : { + "type" : "ControlElement", + "id" : "acm003143jsd", + "name" : "updateSize" + }, + "acm003144jsd" : { + "type" : "ClassUnit", + "id" : "acm003144jsd", + "name" : "DocumentViewerPage", + "compilationUnitId" : "acm003108jsd", + "parentDatatypeId" : "acm003134jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003098jsd" ], + "content" : [ "acm003135jsd", "acm003136jsd", "acm003137jsd", "acm003138jsd", "acm003139jsd", "acm003140jsd", "acm003141jsd", "acm003142jsd", "acm003143jsd" ] + }, + "acm003145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003145jsd", + "name" : "DocumentViewerView", + "parentId" : "acm003094jsd", + "content" : [ "acm003165jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003146jsd" : { + "type" : "CodePackage", + "id" : "acm003146jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003147jsd" ] + }, + "acm003147jsd" : { + "type" : "CodePackage", + "id" : "acm003147jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003148jsd" ] + }, + "acm003148jsd" : { + "type" : "CodePackage", + "id" : "acm003148jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003149jsd" ] + }, + "acm003149jsd" : { + "type" : "CodePackage", + "id" : "acm003149jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003145jsd" ] + }, + "acm003150jsd" : { + "type" : "ControlElement", + "id" : "acm003150jsd", + "name" : "DocumentViewerView" + }, + "acm003151jsd" : { + "type" : "ControlElement", + "id" : "acm003151jsd", + "name" : "initialize" + }, + "acm003152jsd" : { + "type" : "ControlElement", + "id" : "acm003152jsd", + "name" : "setupModeButtons" + }, + "acm003153jsd" : { + "type" : "ControlElement", + "id" : "acm003153jsd", + "name" : "setupScrollbar" + }, + "acm003154jsd" : { + "type" : "ControlElement", + "id" : "acm003154jsd", + "name" : "setupPageControls" + }, + "acm003155jsd" : { + "type" : "ControlElement", + "id" : "acm003155jsd", + "name" : "setupFileChoice" + }, + "acm003156jsd" : { + "type" : "ControlElement", + "id" : "acm003156jsd", + "name" : "setupViewer" + }, + "acm003157jsd" : { + "type" : "ControlElement", + "id" : "acm003157jsd", + "name" : "setLiveMode" + }, + "acm003158jsd" : { + "type" : "ControlElement", + "id" : "acm003158jsd", + "name" : "gotoPage" + }, + "acm003159jsd" : { + "type" : "ControlElement", + "id" : "acm003159jsd", + "name" : "nextPage" + }, + "acm003160jsd" : { + "type" : "ControlElement", + "id" : "acm003160jsd", + "name" : "previousPage" + }, + "acm003161jsd" : { + "type" : "ControlElement", + "id" : "acm003161jsd", + "name" : "fitWidth" + }, + "acm003162jsd" : { + "type" : "ControlElement", + "id" : "acm003162jsd", + "name" : "zoomIn" + }, + "acm003163jsd" : { + "type" : "ControlElement", + "id" : "acm003163jsd", + "name" : "zoomOut" + }, + "acm003164jsd" : { + "type" : "ControlElement", + "id" : "acm003164jsd", + "name" : "fitSinglePage" + }, + "acm003165jsd" : { + "type" : "ClassUnit", + "id" : "acm003165jsd", + "name" : "DocumentViewerView", + "compilationUnitId" : "acm003145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003134jsd", "acm003186jsd", "acm009893jsd", "acm009965jsd", "acm010051jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm003150jsd", "acm003151jsd", "acm003152jsd", "acm003153jsd", "acm003154jsd", "acm003155jsd", "acm003156jsd", "acm003157jsd", "acm003158jsd", "acm003159jsd", "acm003160jsd", "acm003161jsd", "acm003162jsd", "acm003163jsd", "acm003164jsd" ] + }, + "acm003166jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003166jsd", + "name" : "DocumentViewerViewModel", + "parentId" : "acm003094jsd", + "content" : [ "acm003186jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003167jsd" : { + "type" : "CodePackage", + "id" : "acm003167jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003168jsd" ] + }, + "acm003168jsd" : { + "type" : "CodePackage", + "id" : "acm003168jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003169jsd" ] + }, + "acm003169jsd" : { + "type" : "CodePackage", + "id" : "acm003169jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003170jsd" ] + }, + "acm003170jsd" : { + "type" : "CodePackage", + "id" : "acm003170jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003166jsd" ] + }, + "acm003171jsd" : { + "type" : "ControlElement", + "id" : "acm003171jsd", + "name" : "DocumentViewerViewModel" + }, + "acm003172jsd" : { + "type" : "ControlElement", + "id" : "acm003172jsd", + "name" : "getCurrentPage" + }, + "acm003173jsd" : { + "type" : "ControlElement", + "id" : "acm003173jsd", + "name" : "currentPageProperty" + }, + "acm003174jsd" : { + "type" : "ControlElement", + "id" : "acm003174jsd", + "name" : "maxPagesProperty" + }, + "acm003175jsd" : { + "type" : "ControlElement", + "id" : "acm003175jsd", + "name" : "isLiveMode" + }, + "acm003176jsd" : { + "type" : "ControlElement", + "id" : "acm003176jsd", + "name" : "currentDocumentProperty" + }, + "acm003177jsd" : { + "type" : "ControlElement", + "id" : "acm003177jsd", + "name" : "filesProperty" + }, + "acm003178jsd" : { + "type" : "ControlElement", + "id" : "acm003178jsd", + "name" : "setCurrentEntries" + }, + "acm003179jsd" : { + "type" : "ControlElement", + "id" : "acm003179jsd", + "name" : "setCurrentEntry" + }, + "acm003180jsd" : { + "type" : "ControlElement", + "id" : "acm003180jsd", + "name" : "setCurrentDocument" + }, + "acm003181jsd" : { + "type" : "ControlElement", + "id" : "acm003181jsd", + "name" : "switchToFile" + }, + "acm003182jsd" : { + "type" : "ControlElement", + "id" : "acm003182jsd", + "name" : "liveModeProperty" + }, + "acm003183jsd" : { + "type" : "ControlElement", + "id" : "acm003183jsd", + "name" : "showPage" + }, + "acm003184jsd" : { + "type" : "ControlElement", + "id" : "acm003184jsd", + "name" : "showNextPage" + }, + "acm003185jsd" : { + "type" : "ControlElement", + "id" : "acm003185jsd", + "name" : "showPreviousPage" + }, + "acm003186jsd" : { + "type" : "ClassUnit", + "id" : "acm003186jsd", + "name" : "DocumentViewerViewModel", + "compilationUnitId" : "acm003166jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003107jsd", "acm003186jsd", "acm003231jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm003171jsd", "acm003172jsd", "acm003173jsd", "acm003174jsd", "acm003175jsd", "acm003176jsd", "acm003177jsd", "acm003178jsd", "acm003179jsd", "acm003180jsd", "acm003181jsd", "acm003182jsd", "acm003183jsd", "acm003184jsd", "acm003185jsd" ] + }, + "acm003187jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003187jsd", + "name" : "PageDimension", + "parentId" : "acm003094jsd", + "content" : [ "acm003204jsd", "acm003208jsd", "acm003212jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003188jsd" : { + "type" : "CodePackage", + "id" : "acm003188jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003189jsd" ] + }, + "acm003189jsd" : { + "type" : "CodePackage", + "id" : "acm003189jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003190jsd" ] + }, + "acm003190jsd" : { + "type" : "CodePackage", + "id" : "acm003190jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003191jsd" ] + }, + "acm003191jsd" : { + "type" : "CodePackage", + "id" : "acm003191jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003187jsd" ] + }, + "acm003192jsd" : { + "type" : "ControlElement", + "id" : "acm003192jsd", + "name" : "ofFixedWidth" + }, + "acm003193jsd" : { + "type" : "ControlElement", + "id" : "acm003193jsd", + "name" : "ofFixedHeight" + }, + "acm003194jsd" : { + "type" : "ControlElement", + "id" : "acm003194jsd", + "name" : "ofFixedWidth" + }, + "acm003195jsd" : { + "type" : "ControlElement", + "id" : "acm003195jsd", + "name" : "ofFixedHeight" + }, + "acm003196jsd" : { + "type" : "ControlElement", + "id" : "acm003196jsd", + "name" : "getWidth" + }, + "acm003197jsd" : { + "type" : "ControlElement", + "id" : "acm003197jsd", + "name" : "getHeight" + }, + "acm003198jsd" : { + "type" : "ControlElement", + "id" : "acm003198jsd", + "name" : "FixedWidthPageDimension" + }, + "acm003199jsd" : { + "type" : "ControlElement", + "id" : "acm003199jsd", + "name" : "getWidth" + }, + "acm003200jsd" : { + "type" : "ControlElement", + "id" : "acm003200jsd", + "name" : "getHeight" + }, + "acm003201jsd" : { + "type" : "ControlElement", + "id" : "acm003201jsd", + "name" : "FixedHeightPageDimension" + }, + "acm003202jsd" : { + "type" : "ControlElement", + "id" : "acm003202jsd", + "name" : "getWidth" + }, + "acm003203jsd" : { + "type" : "ControlElement", + "id" : "acm003203jsd", + "name" : "getHeight" + }, + "acm003204jsd" : { + "type" : "ClassUnit", + "id" : "acm003204jsd", + "name" : "PageDimension", + "compilationUnitId" : "acm003187jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003204jsd", "acm003208jsd", "acm003212jsd" ], + "content" : [ "acm003192jsd", "acm003193jsd", "acm003194jsd", "acm003195jsd", "acm003196jsd", "acm003197jsd", "acm003198jsd", "acm003199jsd", "acm003200jsd", "acm003201jsd", "acm003202jsd", "acm003203jsd" ] + }, + "acm003205jsd" : { + "type" : "ControlElement", + "id" : "acm003205jsd", + "name" : "FixedWidthPageDimension" + }, + "acm003206jsd" : { + "type" : "ControlElement", + "id" : "acm003206jsd", + "name" : "getWidth" + }, + "acm003207jsd" : { + "type" : "ControlElement", + "id" : "acm003207jsd", + "name" : "getHeight" + }, + "acm003208jsd" : { + "type" : "ClassUnit", + "id" : "acm003208jsd", + "name" : "FixedWidthPageDimension", + "compilationUnitId" : "acm003187jsd", + "parentDatatypeId" : "acm003204jsd", + "extendedDataTypesIds" : [ "acm003204jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003205jsd", "acm003206jsd", "acm003207jsd" ] + }, + "acm003209jsd" : { + "type" : "ControlElement", + "id" : "acm003209jsd", + "name" : "FixedHeightPageDimension" + }, + "acm003210jsd" : { + "type" : "ControlElement", + "id" : "acm003210jsd", + "name" : "getWidth" + }, + "acm003211jsd" : { + "type" : "ControlElement", + "id" : "acm003211jsd", + "name" : "getHeight" + }, + "acm003212jsd" : { + "type" : "ClassUnit", + "id" : "acm003212jsd", + "name" : "FixedHeightPageDimension", + "compilationUnitId" : "acm003187jsd", + "parentDatatypeId" : "acm003204jsd", + "extendedDataTypesIds" : [ "acm003204jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003209jsd", "acm003210jsd", "acm003211jsd" ] + }, + "acm003213jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003213jsd", + "name" : "PdfDocumentPageViewModel", + "parentId" : "acm003094jsd", + "content" : [ "acm003223jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003214jsd" : { + "type" : "CodePackage", + "id" : "acm003214jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003215jsd" ] + }, + "acm003215jsd" : { + "type" : "CodePackage", + "id" : "acm003215jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003216jsd" ] + }, + "acm003216jsd" : { + "type" : "CodePackage", + "id" : "acm003216jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003217jsd" ] + }, + "acm003217jsd" : { + "type" : "CodePackage", + "id" : "acm003217jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003213jsd" ] + }, + "acm003218jsd" : { + "type" : "ControlElement", + "id" : "acm003218jsd", + "name" : "PdfDocumentPageViewModel" + }, + "acm003219jsd" : { + "type" : "ControlElement", + "id" : "acm003219jsd", + "name" : "resize" + }, + "acm003220jsd" : { + "type" : "ControlElement", + "id" : "acm003220jsd", + "name" : "render" + }, + "acm003221jsd" : { + "type" : "ControlElement", + "id" : "acm003221jsd", + "name" : "getPageNumber" + }, + "acm003222jsd" : { + "type" : "ControlElement", + "id" : "acm003222jsd", + "name" : "getAspectRatio" + }, + "acm003223jsd" : { + "type" : "ClassUnit", + "id" : "acm003223jsd", + "name" : "PdfDocumentPageViewModel", + "compilationUnitId" : "acm003213jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003098jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003218jsd", "acm003219jsd", "acm003220jsd", "acm003221jsd", "acm003222jsd" ] + }, + "acm003224jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003224jsd", + "name" : "PdfDocumentViewModel", + "parentId" : "acm003094jsd", + "content" : [ "acm003231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003225jsd" : { + "type" : "CodePackage", + "id" : "acm003225jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003226jsd" ] + }, + "acm003226jsd" : { + "type" : "CodePackage", + "id" : "acm003226jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003227jsd" ] + }, + "acm003227jsd" : { + "type" : "CodePackage", + "id" : "acm003227jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003228jsd" ] + }, + "acm003228jsd" : { + "type" : "CodePackage", + "id" : "acm003228jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003224jsd" ] + }, + "acm003229jsd" : { + "type" : "ControlElement", + "id" : "acm003229jsd", + "name" : "PdfDocumentViewModel" + }, + "acm003230jsd" : { + "type" : "ControlElement", + "id" : "acm003230jsd", + "name" : "getPages" + }, + "acm003231jsd" : { + "type" : "ClassUnit", + "id" : "acm003231jsd", + "name" : "PdfDocumentViewModel", + "compilationUnitId" : "acm003224jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003098jsd", "acm003223jsd" ], + "content" : [ "acm003229jsd", "acm003230jsd" ] + }, + "acm003232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003232jsd", + "name" : "ShowDocumentViewerAction", + "parentId" : "acm003094jsd", + "content" : [ "acm003239jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003233jsd" : { + "type" : "CodePackage", + "id" : "acm003233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003234jsd" ] + }, + "acm003234jsd" : { + "type" : "CodePackage", + "id" : "acm003234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003235jsd" ] + }, + "acm003235jsd" : { + "type" : "CodePackage", + "id" : "acm003235jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003236jsd" ] + }, + "acm003236jsd" : { + "type" : "CodePackage", + "id" : "acm003236jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm003232jsd" ] + }, + "acm003237jsd" : { + "type" : "ControlElement", + "id" : "acm003237jsd", + "name" : "ShowDocumentViewerAction" + }, + "acm003238jsd" : { + "type" : "ControlElement", + "id" : "acm003238jsd", + "name" : "execute" + }, + "acm003239jsd" : { + "type" : "ClassUnit", + "id" : "acm003239jsd", + "name" : "ShowDocumentViewerAction", + "compilationUnitId" : "acm003232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003165jsd", "acm021206jsd" ], + "content" : [ "acm003237jsd", "acm003238jsd" ] + }, + "acm003240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003240jsd", + "name" : "DuplicateResolverDialog", + "parentId" : "acm003244jsd", + "content" : [ "acm003250jsd", "acm003251jsd", "acm003252jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "duplicationFinder" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003241jsd" : { + "type" : "CodePackage", + "id" : "acm003241jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003242jsd" ] + }, + "acm003242jsd" : { + "type" : "CodePackage", + "id" : "acm003242jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003243jsd" ] + }, + "acm003243jsd" : { + "type" : "CodePackage", + "id" : "acm003243jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003244jsd" ] + }, + "acm003244jsd" : { + "type" : "CodePackage", + "id" : "acm003244jsd", + "name" : "duplicationFinder", + "parentId" : "acm001569jsd", + "content" : [ "acm003240jsd", "acm003253jsd" ] + }, + "acm003245jsd" : { + "type" : "ControlElement", + "id" : "acm003245jsd", + "name" : "DuplicateResolverDialog" + }, + "acm003246jsd" : { + "type" : "ControlElement", + "id" : "acm003246jsd", + "name" : "init" + }, + "acm003247jsd" : { + "type" : "ControlElement", + "id" : "acm003247jsd", + "name" : "getMergedEntry" + }, + "acm003248jsd" : { + "type" : "ControlElement", + "id" : "acm003248jsd", + "name" : "getNewLeftEntry" + }, + "acm003249jsd" : { + "type" : "ControlElement", + "id" : "acm003249jsd", + "name" : "getNewRightEntry" + }, + "acm003250jsd" : { + "type" : "ClassUnit", + "id" : "acm003250jsd", + "name" : "DuplicateResolverDialog", + "compilationUnitId" : "acm003240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm003251jsd", "acm005331jsd", "acm006775jsd", "acm009741jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003245jsd", "acm003246jsd", "acm003247jsd", "acm003248jsd", "acm003249jsd" ] + }, + "acm003251jsd" : { + "type" : "ClassUnit", + "id" : "acm003251jsd", + "name" : "DuplicateResolverType", + "compilationUnitId" : "acm003240jsd", + "parentDatatypeId" : "acm003250jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003252jsd" : { + "type" : "ClassUnit", + "id" : "acm003252jsd", + "name" : "DuplicateResolverResult", + "compilationUnitId" : "acm003240jsd", + "parentDatatypeId" : "acm003250jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003253jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003253jsd", + "name" : "DuplicateSearch", + "parentId" : "acm003244jsd", + "content" : [ "acm003271jsd", "acm003279jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "duplicationFinder" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003254jsd" : { + "type" : "CodePackage", + "id" : "acm003254jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003255jsd" ] + }, + "acm003255jsd" : { + "type" : "CodePackage", + "id" : "acm003255jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003256jsd" ] + }, + "acm003256jsd" : { + "type" : "CodePackage", + "id" : "acm003256jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003257jsd" ] + }, + "acm003257jsd" : { + "type" : "CodePackage", + "id" : "acm003257jsd", + "name" : "duplicationFinder", + "parentId" : null, + "content" : [ "acm003253jsd" ] + }, + "acm003258jsd" : { + "type" : "ControlElement", + "id" : "acm003258jsd", + "name" : "DuplicateSearch" + }, + "acm003259jsd" : { + "type" : "ControlElement", + "id" : "acm003259jsd", + "name" : "execute" + }, + "acm003260jsd" : { + "type" : "ControlElement", + "id" : "acm003260jsd", + "name" : "searchPossibleDuplicates" + }, + "acm003261jsd" : { + "type" : "ControlElement", + "id" : "acm003261jsd", + "name" : "verifyDuplicates" + }, + "acm003262jsd" : { + "type" : "ControlElement", + "id" : "acm003262jsd", + "name" : "askResolveStrategy" + }, + "acm003263jsd" : { + "type" : "ControlElement", + "id" : "acm003263jsd", + "name" : "handleDuplicates" + }, + "acm003264jsd" : { + "type" : "ControlElement", + "id" : "acm003264jsd", + "name" : "getToRemove" + }, + "acm003265jsd" : { + "type" : "ControlElement", + "id" : "acm003265jsd", + "name" : "getToAdd" + }, + "acm003266jsd" : { + "type" : "ControlElement", + "id" : "acm003266jsd", + "name" : "remove" + }, + "acm003267jsd" : { + "type" : "ControlElement", + "id" : "acm003267jsd", + "name" : "replace" + }, + "acm003268jsd" : { + "type" : "ControlElement", + "id" : "acm003268jsd", + "name" : "replace" + }, + "acm003269jsd" : { + "type" : "ControlElement", + "id" : "acm003269jsd", + "name" : "isToRemove" + }, + "acm003270jsd" : { + "type" : "ControlElement", + "id" : "acm003270jsd", + "name" : "getDuplicateCount" + }, + "acm003271jsd" : { + "type" : "ClassUnit", + "id" : "acm003271jsd", + "name" : "DuplicateSearch", + "compilationUnitId" : "acm003253jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm002045jsd", "acm003250jsd", "acm003251jsd", "acm003252jsd", "acm003279jsd", "acm009381jsd", "acm009423jsd", "acm009466jsd", "acm011386jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003258jsd", "acm003259jsd", "acm003260jsd", "acm003261jsd", "acm003262jsd", "acm003263jsd", "acm003264jsd", "acm003265jsd", "acm003266jsd", "acm003267jsd", "acm003268jsd", "acm003269jsd", "acm003270jsd" ] + }, + "acm003272jsd" : { + "type" : "ControlElement", + "id" : "acm003272jsd", + "name" : "getToRemove" + }, + "acm003273jsd" : { + "type" : "ControlElement", + "id" : "acm003273jsd", + "name" : "getToAdd" + }, + "acm003274jsd" : { + "type" : "ControlElement", + "id" : "acm003274jsd", + "name" : "remove" + }, + "acm003275jsd" : { + "type" : "ControlElement", + "id" : "acm003275jsd", + "name" : "replace" + }, + "acm003276jsd" : { + "type" : "ControlElement", + "id" : "acm003276jsd", + "name" : "replace" + }, + "acm003277jsd" : { + "type" : "ControlElement", + "id" : "acm003277jsd", + "name" : "isToRemove" + }, + "acm003278jsd" : { + "type" : "ControlElement", + "id" : "acm003278jsd", + "name" : "getDuplicateCount" + }, + "acm003279jsd" : { + "type" : "ClassUnit", + "id" : "acm003279jsd", + "name" : "DuplicateSearchResult", + "compilationUnitId" : "acm003253jsd", + "parentDatatypeId" : "acm003271jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm003272jsd", "acm003273jsd", "acm003274jsd", "acm003275jsd", "acm003276jsd", "acm003277jsd", "acm003278jsd" ] + }, + "acm003280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003280jsd", + "name" : "CopyDoiUrlAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003288jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003281jsd" : { + "type" : "CodePackage", + "id" : "acm003281jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003282jsd" ] + }, + "acm003282jsd" : { + "type" : "CodePackage", + "id" : "acm003282jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003283jsd" ] + }, + "acm003283jsd" : { + "type" : "CodePackage", + "id" : "acm003283jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003284jsd" ] + }, + "acm003284jsd" : { + "type" : "CodePackage", + "id" : "acm003284jsd", + "name" : "edit", + "parentId" : "acm001569jsd", + "content" : [ "acm003280jsd", "acm003289jsd", "acm003304jsd", "acm003313jsd", "acm003321jsd", "acm003329jsd", "acm003335jsd", "acm003349jsd", "acm003357jsd", "acm003365jsd", "acm003374jsd", "acm021517jsd", "acm021534jsd", "acm021547jsd", "acm021563jsd", "acm021572jsd", "acm021584jsd", "acm003394jsd" ] + }, + "acm003285jsd" : { + "type" : "ControlElement", + "id" : "acm003285jsd", + "name" : "CopyDoiUrlAction" + }, + "acm003286jsd" : { + "type" : "ControlElement", + "id" : "acm003286jsd", + "name" : "execute" + }, + "acm003287jsd" : { + "type" : "ControlElement", + "id" : "acm003287jsd", + "name" : "copy" + }, + "acm003288jsd" : { + "type" : "ClassUnit", + "id" : "acm003288jsd", + "name" : "CopyDoiUrlAction", + "compilationUnitId" : "acm003280jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd" ], + "content" : [ "acm003285jsd", "acm003286jsd", "acm003287jsd" ] + }, + "acm003289jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003289jsd", + "name" : "CopyMoreAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003303jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003290jsd" : { + "type" : "CodePackage", + "id" : "acm003290jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003291jsd" ] + }, + "acm003291jsd" : { + "type" : "CodePackage", + "id" : "acm003291jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003292jsd" ] + }, + "acm003292jsd" : { + "type" : "CodePackage", + "id" : "acm003292jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003293jsd" ] + }, + "acm003293jsd" : { + "type" : "CodePackage", + "id" : "acm003293jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003289jsd" ] + }, + "acm003294jsd" : { + "type" : "ControlElement", + "id" : "acm003294jsd", + "name" : "CopyMoreAction" + }, + "acm003295jsd" : { + "type" : "ControlElement", + "id" : "acm003295jsd", + "name" : "execute" + }, + "acm003296jsd" : { + "type" : "ControlElement", + "id" : "acm003296jsd", + "name" : "copyTitle" + }, + "acm003297jsd" : { + "type" : "ControlElement", + "id" : "acm003297jsd", + "name" : "copyKey" + }, + "acm003298jsd" : { + "type" : "ControlElement", + "id" : "acm003298jsd", + "name" : "copyDoi" + }, + "acm003299jsd" : { + "type" : "ControlElement", + "id" : "acm003299jsd", + "name" : "copyDoiList" + }, + "acm003300jsd" : { + "type" : "ControlElement", + "id" : "acm003300jsd", + "name" : "copyCiteKey" + }, + "acm003301jsd" : { + "type" : "ControlElement", + "id" : "acm003301jsd", + "name" : "copyKeyAndTitle" + }, + "acm003302jsd" : { + "type" : "ControlElement", + "id" : "acm003302jsd", + "name" : "copyKeyAndLink" + }, + "acm003303jsd" : { + "type" : "ClassUnit", + "id" : "acm003303jsd", + "name" : "CopyMoreAction", + "compilationUnitId" : "acm003289jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm002150jsd", "acm003303jsd", "acm014982jsd", "acm015052jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003294jsd", "acm003295jsd", "acm003296jsd", "acm003297jsd", "acm003298jsd", "acm003299jsd", "acm003300jsd", "acm003301jsd", "acm003302jsd" ] + }, + "acm003304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003304jsd", + "name" : "EditAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003312jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003305jsd" : { + "type" : "CodePackage", + "id" : "acm003305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003306jsd" ] + }, + "acm003306jsd" : { + "type" : "CodePackage", + "id" : "acm003306jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003307jsd" ] + }, + "acm003307jsd" : { + "type" : "CodePackage", + "id" : "acm003307jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003308jsd" ] + }, + "acm003308jsd" : { + "type" : "CodePackage", + "id" : "acm003308jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003304jsd" ] + }, + "acm003309jsd" : { + "type" : "ControlElement", + "id" : "acm003309jsd", + "name" : "EditAction" + }, + "acm003310jsd" : { + "type" : "ControlElement", + "id" : "acm003310jsd", + "name" : "toString" + }, + "acm003311jsd" : { + "type" : "ControlElement", + "id" : "acm003311jsd", + "name" : "execute" + }, + "acm003312jsd" : { + "type" : "ClassUnit", + "id" : "acm003312jsd", + "name" : "EditAction", + "compilationUnitId" : "acm003304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd", "acm002150jsd", "acm003312jsd" ], + "content" : [ "acm003309jsd", "acm003310jsd", "acm003311jsd" ] + }, + "acm003313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003313jsd", + "name" : "ManageKeywordsAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003320jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003314jsd" : { + "type" : "CodePackage", + "id" : "acm003314jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003315jsd" ] + }, + "acm003315jsd" : { + "type" : "CodePackage", + "id" : "acm003315jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003316jsd" ] + }, + "acm003316jsd" : { + "type" : "CodePackage", + "id" : "acm003316jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003317jsd" ] + }, + "acm003317jsd" : { + "type" : "CodePackage", + "id" : "acm003317jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003313jsd" ] + }, + "acm003318jsd" : { + "type" : "ControlElement", + "id" : "acm003318jsd", + "name" : "ManageKeywordsAction" + }, + "acm003319jsd" : { + "type" : "ControlElement", + "id" : "acm003319jsd", + "name" : "execute" + }, + "acm003320jsd" : { + "type" : "ClassUnit", + "id" : "acm003320jsd", + "name" : "ManageKeywordsAction", + "compilationUnitId" : "acm003313jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003328jsd" ], + "content" : [ "acm003318jsd", "acm003319jsd" ] + }, + "acm003321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003321jsd", + "name" : "ManageKeywordsDialog", + "parentId" : "acm003284jsd", + "content" : [ "acm003328jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003322jsd" : { + "type" : "CodePackage", + "id" : "acm003322jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003323jsd" ] + }, + "acm003323jsd" : { + "type" : "CodePackage", + "id" : "acm003323jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003324jsd" ] + }, + "acm003324jsd" : { + "type" : "CodePackage", + "id" : "acm003324jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003325jsd" ] + }, + "acm003325jsd" : { + "type" : "CodePackage", + "id" : "acm003325jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003321jsd" ] + }, + "acm003326jsd" : { + "type" : "ControlElement", + "id" : "acm003326jsd", + "name" : "ManageKeywordsDialog" + }, + "acm003327jsd" : { + "type" : "ControlElement", + "id" : "acm003327jsd", + "name" : "initialize" + }, + "acm003328jsd" : { + "type" : "ClassUnit", + "id" : "acm003328jsd", + "name" : "ManageKeywordsDialog", + "compilationUnitId" : "acm003321jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003348jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003326jsd", "acm003327jsd" ] + }, + "acm003329jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003329jsd", + "name" : "ManageKeywordsDisplayType", + "parentId" : "acm003284jsd", + "content" : [ "acm003334jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003330jsd" : { + "type" : "CodePackage", + "id" : "acm003330jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003331jsd" ] + }, + "acm003331jsd" : { + "type" : "CodePackage", + "id" : "acm003331jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003332jsd" ] + }, + "acm003332jsd" : { + "type" : "CodePackage", + "id" : "acm003332jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003333jsd" ] + }, + "acm003333jsd" : { + "type" : "CodePackage", + "id" : "acm003333jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003329jsd" ] + }, + "acm003334jsd" : { + "type" : "ClassUnit", + "id" : "acm003334jsd", + "name" : "ManageKeywordsDisplayType", + "compilationUnitId" : "acm003329jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003335jsd", + "name" : "ManageKeywordsViewModel", + "parentId" : "acm003284jsd", + "content" : [ "acm003348jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003336jsd" : { + "type" : "CodePackage", + "id" : "acm003336jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003337jsd" ] + }, + "acm003337jsd" : { + "type" : "CodePackage", + "id" : "acm003337jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003338jsd" ] + }, + "acm003338jsd" : { + "type" : "CodePackage", + "id" : "acm003338jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003339jsd" ] + }, + "acm003339jsd" : { + "type" : "CodePackage", + "id" : "acm003339jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003335jsd" ] + }, + "acm003340jsd" : { + "type" : "ControlElement", + "id" : "acm003340jsd", + "name" : "ManageKeywordsViewModel" + }, + "acm003341jsd" : { + "type" : "ControlElement", + "id" : "acm003341jsd", + "name" : "getDisplayType" + }, + "acm003342jsd" : { + "type" : "ControlElement", + "id" : "acm003342jsd", + "name" : "displayTypeProperty" + }, + "acm003343jsd" : { + "type" : "ControlElement", + "id" : "acm003343jsd", + "name" : "fillKeywordsList" + }, + "acm003344jsd" : { + "type" : "ControlElement", + "id" : "acm003344jsd", + "name" : "getKeywords" + }, + "acm003345jsd" : { + "type" : "ControlElement", + "id" : "acm003345jsd", + "name" : "removeKeyword" + }, + "acm003346jsd" : { + "type" : "ControlElement", + "id" : "acm003346jsd", + "name" : "saveChanges" + }, + "acm003347jsd" : { + "type" : "ControlElement", + "id" : "acm003347jsd", + "name" : "updateKeywords" + }, + "acm003348jsd" : { + "type" : "ClassUnit", + "id" : "acm003348jsd", + "name" : "ManageKeywordsViewModel", + "compilationUnitId" : "acm003335jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003334jsd", "acm009381jsd", "acm017884jsd", "acm018267jsd", "acm018443jsd", "acm018479jsd", "acm020774jsd" ], + "content" : [ "acm003340jsd", "acm003341jsd", "acm003342jsd", "acm003343jsd", "acm003344jsd", "acm003345jsd", "acm003346jsd", "acm003347jsd" ] + }, + "acm003349jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003349jsd", + "name" : "OpenBrowserAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003356jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003350jsd" : { + "type" : "CodePackage", + "id" : "acm003350jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003351jsd" ] + }, + "acm003351jsd" : { + "type" : "CodePackage", + "id" : "acm003351jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003352jsd" ] + }, + "acm003352jsd" : { + "type" : "CodePackage", + "id" : "acm003352jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003353jsd" ] + }, + "acm003353jsd" : { + "type" : "CodePackage", + "id" : "acm003353jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003349jsd" ] + }, + "acm003354jsd" : { + "type" : "ControlElement", + "id" : "acm003354jsd", + "name" : "OpenBrowserAction" + }, + "acm003355jsd" : { + "type" : "ControlElement", + "id" : "acm003355jsd", + "name" : "execute" + }, + "acm003356jsd" : { + "type" : "ClassUnit", + "id" : "acm003356jsd", + "name" : "OpenBrowserAction", + "compilationUnitId" : "acm003349jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd" ], + "content" : [ "acm003354jsd", "acm003355jsd" ] + }, + "acm003357jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003357jsd", + "name" : "ReplaceStringAction", + "parentId" : "acm003284jsd", + "content" : [ "acm003364jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003358jsd" : { + "type" : "CodePackage", + "id" : "acm003358jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003359jsd" ] + }, + "acm003359jsd" : { + "type" : "CodePackage", + "id" : "acm003359jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003360jsd" ] + }, + "acm003360jsd" : { + "type" : "CodePackage", + "id" : "acm003360jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003361jsd" ] + }, + "acm003361jsd" : { + "type" : "CodePackage", + "id" : "acm003361jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003357jsd" ] + }, + "acm003362jsd" : { + "type" : "ControlElement", + "id" : "acm003362jsd", + "name" : "ReplaceStringAction" + }, + "acm003363jsd" : { + "type" : "ControlElement", + "id" : "acm003363jsd", + "name" : "execute" + }, + "acm003364jsd" : { + "type" : "ClassUnit", + "id" : "acm003364jsd", + "name" : "ReplaceStringAction", + "compilationUnitId" : "acm003357jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm003373jsd" ], + "content" : [ "acm003362jsd", "acm003363jsd" ] + }, + "acm003365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003365jsd", + "name" : "ReplaceStringView", + "parentId" : "acm003284jsd", + "content" : [ "acm003373jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003366jsd" : { + "type" : "CodePackage", + "id" : "acm003366jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003367jsd" ] + }, + "acm003367jsd" : { + "type" : "CodePackage", + "id" : "acm003367jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003368jsd" ] + }, + "acm003368jsd" : { + "type" : "CodePackage", + "id" : "acm003368jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003369jsd" ] + }, + "acm003369jsd" : { + "type" : "CodePackage", + "id" : "acm003369jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003365jsd" ] + }, + "acm003370jsd" : { + "type" : "ControlElement", + "id" : "acm003370jsd", + "name" : "ReplaceStringView" + }, + "acm003371jsd" : { + "type" : "ControlElement", + "id" : "acm003371jsd", + "name" : "initialize" + }, + "acm003372jsd" : { + "type" : "ControlElement", + "id" : "acm003372jsd", + "name" : "buttonReplace" + }, + "acm003373jsd" : { + "type" : "ClassUnit", + "id" : "acm003373jsd", + "name" : "ReplaceStringView", + "compilationUnitId" : "acm003365jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm003388jsd", "acm009856jsd" ], + "content" : [ "acm003370jsd", "acm003371jsd", "acm003372jsd" ] + }, + "acm003374jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003374jsd", + "name" : "ReplaceStringViewModel", + "parentId" : "acm003284jsd", + "content" : [ "acm003388jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003375jsd" : { + "type" : "CodePackage", + "id" : "acm003375jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003376jsd" ] + }, + "acm003376jsd" : { + "type" : "CodePackage", + "id" : "acm003376jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003377jsd" ] + }, + "acm003377jsd" : { + "type" : "CodePackage", + "id" : "acm003377jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003378jsd" ] + }, + "acm003378jsd" : { + "type" : "CodePackage", + "id" : "acm003378jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003374jsd" ] + }, + "acm003379jsd" : { + "type" : "ControlElement", + "id" : "acm003379jsd", + "name" : "ReplaceStringViewModel" + }, + "acm003380jsd" : { + "type" : "ControlElement", + "id" : "acm003380jsd", + "name" : "replace" + }, + "acm003381jsd" : { + "type" : "ControlElement", + "id" : "acm003381jsd", + "name" : "replaceItem" + }, + "acm003382jsd" : { + "type" : "ControlElement", + "id" : "acm003382jsd", + "name" : "replaceField" + }, + "acm003383jsd" : { + "type" : "ControlElement", + "id" : "acm003383jsd", + "name" : "allFieldReplaceProperty" + }, + "acm003384jsd" : { + "type" : "ControlElement", + "id" : "acm003384jsd", + "name" : "selectOnlyProperty" + }, + "acm003385jsd" : { + "type" : "ControlElement", + "id" : "acm003385jsd", + "name" : "fieldStringProperty" + }, + "acm003386jsd" : { + "type" : "ControlElement", + "id" : "acm003386jsd", + "name" : "findStringProperty" + }, + "acm003387jsd" : { + "type" : "ControlElement", + "id" : "acm003387jsd", + "name" : "replaceStringProperty" + }, + "acm003388jsd" : { + "type" : "ClassUnit", + "id" : "acm003388jsd", + "name" : "ReplaceStringViewModel", + "compilationUnitId" : "acm003374jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm009381jsd", "acm009411jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003379jsd", "acm003380jsd", "acm003381jsd", "acm003382jsd", "acm003383jsd", "acm003384jsd", "acm003385jsd", "acm003386jsd", "acm003387jsd" ] + }, + "acm003389jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003389jsd", + "name" : "AbstractAutomaticFieldEditorTabView", + "parentId" : "acm003394jsd", + "content" : [ "acm003396jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003390jsd" : { + "type" : "CodePackage", + "id" : "acm003390jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003391jsd" ] + }, + "acm003391jsd" : { + "type" : "CodePackage", + "id" : "acm003391jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003392jsd" ] + }, + "acm003392jsd" : { + "type" : "CodePackage", + "id" : "acm003392jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003393jsd" ] + }, + "acm003393jsd" : { + "type" : "CodePackage", + "id" : "acm003393jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003394jsd" ] + }, + "acm003394jsd" : { + "type" : "CodePackage", + "id" : "acm003394jsd", + "name" : "automaticfiededitor", + "parentId" : "acm003284jsd", + "content" : [ "acm003389jsd", "acm003397jsd", "acm003407jsd", "acm003416jsd", "acm003427jsd", "acm003436jsd", "acm003448jsd", "acm003461jsd", "acm003472jsd", "acm003487jsd", "acm003524jsd", "acm003557jsd" ] + }, + "acm003395jsd" : { + "type" : "ControlElement", + "id" : "acm003395jsd", + "name" : "getContent" + }, + "acm003396jsd" : { + "type" : "ClassUnit", + "id" : "acm003396jsd", + "name" : "AbstractAutomaticFieldEditorTabView", + "compilationUnitId" : "acm003389jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003435jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003395jsd" ] + }, + "acm003397jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003397jsd", + "name" : "AbstractAutomaticFieldEditorTabViewModel", + "parentId" : "acm003394jsd", + "content" : [ "acm003406jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003398jsd" : { + "type" : "CodePackage", + "id" : "acm003398jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003399jsd" ] + }, + "acm003399jsd" : { + "type" : "CodePackage", + "id" : "acm003399jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003400jsd" ] + }, + "acm003400jsd" : { + "type" : "CodePackage", + "id" : "acm003400jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003401jsd" ] + }, + "acm003401jsd" : { + "type" : "CodePackage", + "id" : "acm003401jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003402jsd" ] + }, + "acm003402jsd" : { + "type" : "CodePackage", + "id" : "acm003402jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003397jsd" ] + }, + "acm003403jsd" : { + "type" : "ControlElement", + "id" : "acm003403jsd", + "name" : "AbstractAutomaticFieldEditorTabViewModel" + }, + "acm003404jsd" : { + "type" : "ControlElement", + "id" : "acm003404jsd", + "name" : "getAllFields" + }, + "acm003405jsd" : { + "type" : "ControlElement", + "id" : "acm003405jsd", + "name" : "addFields" + }, + "acm003406jsd" : { + "type" : "ClassUnit", + "id" : "acm003406jsd", + "name" : "AbstractAutomaticFieldEditorTabViewModel", + "compilationUnitId" : "acm003397jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003406jsd", "acm017988jsd", "acm018673jsd", "acm018798jsd" ], + "content" : [ "acm003403jsd", "acm003404jsd", "acm003405jsd" ] + }, + "acm003407jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003407jsd", + "name" : "AutomaticFieldEditorAction", + "parentId" : "acm003394jsd", + "content" : [ "acm003415jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003408jsd" : { + "type" : "CodePackage", + "id" : "acm003408jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003409jsd" ] + }, + "acm003409jsd" : { + "type" : "CodePackage", + "id" : "acm003409jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003410jsd" ] + }, + "acm003410jsd" : { + "type" : "CodePackage", + "id" : "acm003410jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003411jsd" ] + }, + "acm003411jsd" : { + "type" : "CodePackage", + "id" : "acm003411jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003412jsd" ] + }, + "acm003412jsd" : { + "type" : "CodePackage", + "id" : "acm003412jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003407jsd" ] + }, + "acm003413jsd" : { + "type" : "ControlElement", + "id" : "acm003413jsd", + "name" : "AutomaticFieldEditorAction" + }, + "acm003414jsd" : { + "type" : "ControlElement", + "id" : "acm003414jsd", + "name" : "execute" + }, + "acm003415jsd" : { + "type" : "ClassUnit", + "id" : "acm003415jsd", + "name" : "AutomaticFieldEditorAction", + "compilationUnitId" : "acm003407jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003426jsd" ], + "content" : [ "acm003413jsd", "acm003414jsd" ] + }, + "acm003416jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003416jsd", + "name" : "AutomaticFieldEditorDialog", + "parentId" : "acm003394jsd", + "content" : [ "acm003426jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003417jsd" : { + "type" : "CodePackage", + "id" : "acm003417jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003418jsd" ] + }, + "acm003418jsd" : { + "type" : "CodePackage", + "id" : "acm003418jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003419jsd" ] + }, + "acm003419jsd" : { + "type" : "CodePackage", + "id" : "acm003419jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003420jsd" ] + }, + "acm003420jsd" : { + "type" : "CodePackage", + "id" : "acm003420jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003421jsd" ] + }, + "acm003421jsd" : { + "type" : "CodePackage", + "id" : "acm003421jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003416jsd" ] + }, + "acm003422jsd" : { + "type" : "ControlElement", + "id" : "acm003422jsd", + "name" : "AutomaticFieldEditorDialog" + }, + "acm003423jsd" : { + "type" : "ControlElement", + "id" : "acm003423jsd", + "name" : "initialize" + }, + "acm003424jsd" : { + "type" : "ControlElement", + "id" : "acm003424jsd", + "name" : "saveChanges" + }, + "acm003425jsd" : { + "type" : "ControlElement", + "id" : "acm003425jsd", + "name" : "cancelChanges" + }, + "acm003426jsd" : { + "type" : "ClassUnit", + "id" : "acm003426jsd", + "name" : "AutomaticFieldEditorDialog", + "compilationUnitId" : "acm003416jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003426jsd", "acm003435jsd", "acm003447jsd", "acm003480jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm003422jsd", "acm003423jsd", "acm003424jsd", "acm003425jsd" ] + }, + "acm003427jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003427jsd", + "name" : "AutomaticFieldEditorTab", + "parentId" : "acm003394jsd", + "content" : [ "acm003435jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003428jsd" : { + "type" : "CodePackage", + "id" : "acm003428jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003429jsd" ] + }, + "acm003429jsd" : { + "type" : "CodePackage", + "id" : "acm003429jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003430jsd" ] + }, + "acm003430jsd" : { + "type" : "CodePackage", + "id" : "acm003430jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003431jsd" ] + }, + "acm003431jsd" : { + "type" : "CodePackage", + "id" : "acm003431jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003432jsd" ] + }, + "acm003432jsd" : { + "type" : "CodePackage", + "id" : "acm003432jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003427jsd" ] + }, + "acm003433jsd" : { + "type" : "ControlElement", + "id" : "acm003433jsd", + "name" : "getContent" + }, + "acm003434jsd" : { + "type" : "ControlElement", + "id" : "acm003434jsd", + "name" : "getTabName" + }, + "acm003435jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003435jsd", + "name" : "AutomaticFieldEditorTab", + "compilationUnitId" : "acm003427jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003433jsd", "acm003434jsd" ] + }, + "acm003436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003436jsd", + "name" : "AutomaticFieldEditorViewModel", + "parentId" : "acm003394jsd", + "content" : [ "acm003447jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003437jsd" : { + "type" : "CodePackage", + "id" : "acm003437jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003438jsd" ] + }, + "acm003438jsd" : { + "type" : "CodePackage", + "id" : "acm003438jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003439jsd" ] + }, + "acm003439jsd" : { + "type" : "CodePackage", + "id" : "acm003439jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003440jsd" ] + }, + "acm003440jsd" : { + "type" : "CodePackage", + "id" : "acm003440jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003441jsd" ] + }, + "acm003441jsd" : { + "type" : "CodePackage", + "id" : "acm003441jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003436jsd" ] + }, + "acm003442jsd" : { + "type" : "ControlElement", + "id" : "acm003442jsd", + "name" : "AutomaticFieldEditorViewModel" + }, + "acm003443jsd" : { + "type" : "ControlElement", + "id" : "acm003443jsd", + "name" : "getDialogEdits" + }, + "acm003444jsd" : { + "type" : "ControlElement", + "id" : "acm003444jsd", + "name" : "getFieldEditorTabs" + }, + "acm003445jsd" : { + "type" : "ControlElement", + "id" : "acm003445jsd", + "name" : "saveChanges" + }, + "acm003446jsd" : { + "type" : "ControlElement", + "id" : "acm003446jsd", + "name" : "cancelChanges" + }, + "acm003447jsd" : { + "type" : "ClassUnit", + "id" : "acm003447jsd", + "name" : "AutomaticFieldEditorViewModel", + "compilationUnitId" : "acm003436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003435jsd", "acm003495jsd", "acm003531jsd", "acm003562jsd", "acm009381jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm003442jsd", "acm003443jsd", "acm003444jsd", "acm003445jsd", "acm003446jsd" ] + }, + "acm003448jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003448jsd", + "name" : "LastAutomaticFieldEditorEdit", + "parentId" : "acm003394jsd", + "content" : [ "acm003460jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003449jsd" : { + "type" : "CodePackage", + "id" : "acm003449jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003450jsd" ] + }, + "acm003450jsd" : { + "type" : "CodePackage", + "id" : "acm003450jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003451jsd" ] + }, + "acm003451jsd" : { + "type" : "CodePackage", + "id" : "acm003451jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003452jsd" ] + }, + "acm003452jsd" : { + "type" : "CodePackage", + "id" : "acm003452jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003453jsd" ] + }, + "acm003453jsd" : { + "type" : "CodePackage", + "id" : "acm003453jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003448jsd" ] + }, + "acm003454jsd" : { + "type" : "ControlElement", + "id" : "acm003454jsd", + "name" : "LastAutomaticFieldEditorEdit" + }, + "acm003455jsd" : { + "type" : "ControlElement", + "id" : "acm003455jsd", + "name" : "getAffectedEntries" + }, + "acm003456jsd" : { + "type" : "ControlElement", + "id" : "acm003456jsd", + "name" : "getEdit" + }, + "acm003457jsd" : { + "type" : "ControlElement", + "id" : "acm003457jsd", + "name" : "getTabIndex" + }, + "acm003458jsd" : { + "type" : "ControlElement", + "id" : "acm003458jsd", + "name" : "undo" + }, + "acm003459jsd" : { + "type" : "ControlElement", + "id" : "acm003459jsd", + "name" : "redo" + }, + "acm003460jsd" : { + "type" : "ClassUnit", + "id" : "acm003460jsd", + "name" : "LastAutomaticFieldEditorEdit", + "compilationUnitId" : "acm003448jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009381jsd" ], + "content" : [ "acm003454jsd", "acm003455jsd", "acm003456jsd", "acm003457jsd", "acm003458jsd", "acm003459jsd" ] + }, + "acm003461jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003461jsd", + "name" : "MoveFieldValueAction", + "parentId" : "acm003394jsd", + "content" : [ "acm003471jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003462jsd" : { + "type" : "CodePackage", + "id" : "acm003462jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003463jsd" ] + }, + "acm003463jsd" : { + "type" : "CodePackage", + "id" : "acm003463jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003464jsd" ] + }, + "acm003464jsd" : { + "type" : "CodePackage", + "id" : "acm003464jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003465jsd" ] + }, + "acm003465jsd" : { + "type" : "CodePackage", + "id" : "acm003465jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003466jsd" ] + }, + "acm003466jsd" : { + "type" : "CodePackage", + "id" : "acm003466jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003461jsd" ] + }, + "acm003467jsd" : { + "type" : "ControlElement", + "id" : "acm003467jsd", + "name" : "MoveFieldValueAction" + }, + "acm003468jsd" : { + "type" : "ControlElement", + "id" : "acm003468jsd", + "name" : "MoveFieldValueAction" + }, + "acm003469jsd" : { + "type" : "ControlElement", + "id" : "acm003469jsd", + "name" : "execute" + }, + "acm003470jsd" : { + "type" : "ControlElement", + "id" : "acm003470jsd", + "name" : "executeAndGetAffectedEntriesCount" + }, + "acm003471jsd" : { + "type" : "ClassUnit", + "id" : "acm003471jsd", + "name" : "MoveFieldValueAction", + "compilationUnitId" : "acm003461jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009381jsd", "acm009411jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003467jsd", "acm003468jsd", "acm003469jsd", "acm003470jsd" ] + }, + "acm003472jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003472jsd", + "name" : "NotificationPaneAdapter", + "parentId" : "acm003394jsd", + "content" : [ "acm003480jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003473jsd" : { + "type" : "CodePackage", + "id" : "acm003473jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003474jsd" ] + }, + "acm003474jsd" : { + "type" : "CodePackage", + "id" : "acm003474jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003475jsd" ] + }, + "acm003475jsd" : { + "type" : "CodePackage", + "id" : "acm003475jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003476jsd" ] + }, + "acm003476jsd" : { + "type" : "CodePackage", + "id" : "acm003476jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003477jsd" ] + }, + "acm003477jsd" : { + "type" : "CodePackage", + "id" : "acm003477jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003472jsd" ] + }, + "acm003478jsd" : { + "type" : "ControlElement", + "id" : "acm003478jsd", + "name" : "NotificationPaneAdapter" + }, + "acm003479jsd" : { + "type" : "ControlElement", + "id" : "acm003479jsd", + "name" : "notify" + }, + "acm003480jsd" : { + "type" : "ClassUnit", + "id" : "acm003480jsd", + "name" : "NotificationPaneAdapter", + "compilationUnitId" : "acm003472jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001980jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003478jsd", "acm003479jsd" ] + }, + "acm003481jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003481jsd", + "name" : "CopyOrMoveFieldContentTabView", + "parentId" : "acm003487jsd", + "content" : [ "acm003495jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "copyormovecontent" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003482jsd" : { + "type" : "CodePackage", + "id" : "acm003482jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003483jsd" ] + }, + "acm003483jsd" : { + "type" : "CodePackage", + "id" : "acm003483jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003484jsd" ] + }, + "acm003484jsd" : { + "type" : "CodePackage", + "id" : "acm003484jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003485jsd" ] + }, + "acm003485jsd" : { + "type" : "CodePackage", + "id" : "acm003485jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003486jsd" ] + }, + "acm003486jsd" : { + "type" : "CodePackage", + "id" : "acm003486jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003487jsd" ] + }, + "acm003487jsd" : { + "type" : "CodePackage", + "id" : "acm003487jsd", + "name" : "copyormovecontent", + "parentId" : "acm003394jsd", + "content" : [ "acm003481jsd", "acm003496jsd" ] + }, + "acm003488jsd" : { + "type" : "ControlElement", + "id" : "acm003488jsd", + "name" : "CopyOrMoveFieldContentTabView" + }, + "acm003489jsd" : { + "type" : "ControlElement", + "id" : "acm003489jsd", + "name" : "initialize" + }, + "acm003490jsd" : { + "type" : "ControlElement", + "id" : "acm003490jsd", + "name" : "initializeFromAndToComboBox" + }, + "acm003491jsd" : { + "type" : "ControlElement", + "id" : "acm003491jsd", + "name" : "getTabName" + }, + "acm003492jsd" : { + "type" : "ControlElement", + "id" : "acm003492jsd", + "name" : "copyContent" + }, + "acm003493jsd" : { + "type" : "ControlElement", + "id" : "acm003493jsd", + "name" : "moveContent" + }, + "acm003494jsd" : { + "type" : "ControlElement", + "id" : "acm003494jsd", + "name" : "swapContent" + }, + "acm003495jsd" : { + "type" : "ClassUnit", + "id" : "acm003495jsd", + "name" : "CopyOrMoveFieldContentTabView", + "compilationUnitId" : "acm003481jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003396jsd" ], + "implementedDataTypesIds" : [ "acm003435jsd" ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003517jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003488jsd", "acm003489jsd", "acm003490jsd", "acm003491jsd", "acm003492jsd", "acm003493jsd", "acm003494jsd" ] + }, + "acm003496jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003496jsd", + "name" : "CopyOrMoveFieldContentTabViewModel", + "parentId" : "acm003487jsd", + "content" : [ "acm003517jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "copyormovecontent" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003497jsd" : { + "type" : "CodePackage", + "id" : "acm003497jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003498jsd" ] + }, + "acm003498jsd" : { + "type" : "CodePackage", + "id" : "acm003498jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003499jsd" ] + }, + "acm003499jsd" : { + "type" : "CodePackage", + "id" : "acm003499jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003500jsd" ] + }, + "acm003500jsd" : { + "type" : "CodePackage", + "id" : "acm003500jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003501jsd" ] + }, + "acm003501jsd" : { + "type" : "CodePackage", + "id" : "acm003501jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003502jsd" ] + }, + "acm003502jsd" : { + "type" : "CodePackage", + "id" : "acm003502jsd", + "name" : "copyormovecontent", + "parentId" : null, + "content" : [ "acm003496jsd" ] + }, + "acm003503jsd" : { + "type" : "ControlElement", + "id" : "acm003503jsd", + "name" : "CopyOrMoveFieldContentTabViewModel" + }, + "acm003504jsd" : { + "type" : "ControlElement", + "id" : "acm003504jsd", + "name" : "toFieldValidationStatus" + }, + "acm003505jsd" : { + "type" : "ControlElement", + "id" : "acm003505jsd", + "name" : "canMoveProperty" + }, + "acm003506jsd" : { + "type" : "ControlElement", + "id" : "acm003506jsd", + "name" : "canSwapProperty" + }, + "acm003507jsd" : { + "type" : "ControlElement", + "id" : "acm003507jsd", + "name" : "getFromField" + }, + "acm003508jsd" : { + "type" : "ControlElement", + "id" : "acm003508jsd", + "name" : "fromFieldProperty" + }, + "acm003509jsd" : { + "type" : "ControlElement", + "id" : "acm003509jsd", + "name" : "getToField" + }, + "acm003510jsd" : { + "type" : "ControlElement", + "id" : "acm003510jsd", + "name" : "toFieldProperty" + }, + "acm003511jsd" : { + "type" : "ControlElement", + "id" : "acm003511jsd", + "name" : "isOverwriteFieldContent" + }, + "acm003512jsd" : { + "type" : "ControlElement", + "id" : "acm003512jsd", + "name" : "overwriteFieldContentProperty" + }, + "acm003513jsd" : { + "type" : "ControlElement", + "id" : "acm003513jsd", + "name" : "copyValue" + }, + "acm003514jsd" : { + "type" : "ControlElement", + "id" : "acm003514jsd", + "name" : "moveValue" + }, + "acm003515jsd" : { + "type" : "ControlElement", + "id" : "acm003515jsd", + "name" : "swapValues" + }, + "acm003516jsd" : { + "type" : "ControlElement", + "id" : "acm003516jsd", + "name" : "getSelectedEntries" + }, + "acm003517jsd" : { + "type" : "ClassUnit", + "id" : "acm003517jsd", + "name" : "CopyOrMoveFieldContentTabViewModel", + "compilationUnitId" : "acm003496jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003406jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003460jsd", "acm003471jsd", "acm009381jsd", "acm009411jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003503jsd", "acm003504jsd", "acm003505jsd", "acm003506jsd", "acm003507jsd", "acm003508jsd", "acm003509jsd", "acm003510jsd", "acm003511jsd", "acm003512jsd", "acm003513jsd", "acm003514jsd", "acm003515jsd", "acm003516jsd" ] + }, + "acm003518jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003518jsd", + "name" : "EditFieldContentTabView", + "parentId" : "acm003524jsd", + "content" : [ "acm003531jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "editfieldcontent" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003519jsd" : { + "type" : "CodePackage", + "id" : "acm003519jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003520jsd" ] + }, + "acm003520jsd" : { + "type" : "CodePackage", + "id" : "acm003520jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003521jsd" ] + }, + "acm003521jsd" : { + "type" : "CodePackage", + "id" : "acm003521jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003522jsd" ] + }, + "acm003522jsd" : { + "type" : "CodePackage", + "id" : "acm003522jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003523jsd" ] + }, + "acm003523jsd" : { + "type" : "CodePackage", + "id" : "acm003523jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003524jsd" ] + }, + "acm003524jsd" : { + "type" : "CodePackage", + "id" : "acm003524jsd", + "name" : "editfieldcontent", + "parentId" : "acm003394jsd", + "content" : [ "acm003518jsd", "acm003532jsd" ] + }, + "acm003525jsd" : { + "type" : "ControlElement", + "id" : "acm003525jsd", + "name" : "EditFieldContentTabView" + }, + "acm003526jsd" : { + "type" : "ControlElement", + "id" : "acm003526jsd", + "name" : "initialize" + }, + "acm003527jsd" : { + "type" : "ControlElement", + "id" : "acm003527jsd", + "name" : "getTabName" + }, + "acm003528jsd" : { + "type" : "ControlElement", + "id" : "acm003528jsd", + "name" : "appendToFieldValue" + }, + "acm003529jsd" : { + "type" : "ControlElement", + "id" : "acm003529jsd", + "name" : "clearField" + }, + "acm003530jsd" : { + "type" : "ControlElement", + "id" : "acm003530jsd", + "name" : "setFieldValue" + }, + "acm003531jsd" : { + "type" : "ClassUnit", + "id" : "acm003531jsd", + "name" : "EditFieldContentTabView", + "compilationUnitId" : "acm003518jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003396jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003550jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003525jsd", "acm003526jsd", "acm003527jsd", "acm003528jsd", "acm003529jsd", "acm003530jsd" ] + }, + "acm003532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003532jsd", + "name" : "EditFieldContentViewModel", + "parentId" : "acm003524jsd", + "content" : [ "acm003550jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "editfieldcontent" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003533jsd" : { + "type" : "CodePackage", + "id" : "acm003533jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003534jsd" ] + }, + "acm003534jsd" : { + "type" : "CodePackage", + "id" : "acm003534jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003535jsd" ] + }, + "acm003535jsd" : { + "type" : "CodePackage", + "id" : "acm003535jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003536jsd" ] + }, + "acm003536jsd" : { + "type" : "CodePackage", + "id" : "acm003536jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003537jsd" ] + }, + "acm003537jsd" : { + "type" : "CodePackage", + "id" : "acm003537jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003538jsd" ] + }, + "acm003538jsd" : { + "type" : "CodePackage", + "id" : "acm003538jsd", + "name" : "editfieldcontent", + "parentId" : null, + "content" : [ "acm003532jsd" ] + }, + "acm003539jsd" : { + "type" : "ControlElement", + "id" : "acm003539jsd", + "name" : "EditFieldContentViewModel" + }, + "acm003540jsd" : { + "type" : "ControlElement", + "id" : "acm003540jsd", + "name" : "fieldValidationStatus" + }, + "acm003541jsd" : { + "type" : "ControlElement", + "id" : "acm003541jsd", + "name" : "canAppendProperty" + }, + "acm003542jsd" : { + "type" : "ControlElement", + "id" : "acm003542jsd", + "name" : "clearSelectedField" + }, + "acm003543jsd" : { + "type" : "ControlElement", + "id" : "acm003543jsd", + "name" : "setFieldValue" + }, + "acm003544jsd" : { + "type" : "ControlElement", + "id" : "acm003544jsd", + "name" : "appendToFieldValue" + }, + "acm003545jsd" : { + "type" : "ControlElement", + "id" : "acm003545jsd", + "name" : "selectedFieldProperty" + }, + "acm003546jsd" : { + "type" : "ControlElement", + "id" : "acm003546jsd", + "name" : "getSelectedField" + }, + "acm003547jsd" : { + "type" : "ControlElement", + "id" : "acm003547jsd", + "name" : "getFieldValue" + }, + "acm003548jsd" : { + "type" : "ControlElement", + "id" : "acm003548jsd", + "name" : "fieldValueProperty" + }, + "acm003549jsd" : { + "type" : "ControlElement", + "id" : "acm003549jsd", + "name" : "overwriteFieldContentProperty" + }, + "acm003550jsd" : { + "type" : "ClassUnit", + "id" : "acm003550jsd", + "name" : "EditFieldContentViewModel", + "compilationUnitId" : "acm003532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003406jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003460jsd", "acm009381jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003539jsd", "acm003540jsd", "acm003541jsd", "acm003542jsd", "acm003543jsd", "acm003544jsd", "acm003545jsd", "acm003546jsd", "acm003547jsd", "acm003548jsd", "acm003549jsd" ] + }, + "acm003551jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003551jsd", + "name" : "RenameFieldTabView", + "parentId" : "acm003557jsd", + "content" : [ "acm003562jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "renamefield" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003552jsd" : { + "type" : "CodePackage", + "id" : "acm003552jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003553jsd" ] + }, + "acm003553jsd" : { + "type" : "CodePackage", + "id" : "acm003553jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003554jsd" ] + }, + "acm003554jsd" : { + "type" : "CodePackage", + "id" : "acm003554jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003555jsd" ] + }, + "acm003555jsd" : { + "type" : "CodePackage", + "id" : "acm003555jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003556jsd" ] + }, + "acm003556jsd" : { + "type" : "CodePackage", + "id" : "acm003556jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003557jsd" ] + }, + "acm003557jsd" : { + "type" : "CodePackage", + "id" : "acm003557jsd", + "name" : "renamefield", + "parentId" : "acm003394jsd", + "content" : [ "acm003551jsd", "acm003563jsd" ] + }, + "acm003558jsd" : { + "type" : "ControlElement", + "id" : "acm003558jsd", + "name" : "RenameFieldTabView" + }, + "acm003559jsd" : { + "type" : "ControlElement", + "id" : "acm003559jsd", + "name" : "initialize" + }, + "acm003560jsd" : { + "type" : "ControlElement", + "id" : "acm003560jsd", + "name" : "getTabName" + }, + "acm003561jsd" : { + "type" : "ControlElement", + "id" : "acm003561jsd", + "name" : "renameField" + }, + "acm003562jsd" : { + "type" : "ClassUnit", + "id" : "acm003562jsd", + "name" : "RenameFieldTabView", + "compilationUnitId" : "acm003551jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003396jsd" ], + "implementedDataTypesIds" : [ "acm003435jsd" ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003581jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003558jsd", "acm003559jsd", "acm003560jsd", "acm003561jsd" ] + }, + "acm003563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003563jsd", + "name" : "RenameFieldViewModel", + "parentId" : "acm003557jsd", + "content" : [ "acm003581jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "edit", "automaticfiededitor", "renamefield" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003564jsd" : { + "type" : "CodePackage", + "id" : "acm003564jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003565jsd" ] + }, + "acm003565jsd" : { + "type" : "CodePackage", + "id" : "acm003565jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003566jsd" ] + }, + "acm003566jsd" : { + "type" : "CodePackage", + "id" : "acm003566jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003567jsd" ] + }, + "acm003567jsd" : { + "type" : "CodePackage", + "id" : "acm003567jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm003568jsd" ] + }, + "acm003568jsd" : { + "type" : "CodePackage", + "id" : "acm003568jsd", + "name" : "automaticfiededitor", + "parentId" : null, + "content" : [ "acm003569jsd" ] + }, + "acm003569jsd" : { + "type" : "CodePackage", + "id" : "acm003569jsd", + "name" : "renamefield", + "parentId" : null, + "content" : [ "acm003563jsd" ] + }, + "acm003570jsd" : { + "type" : "ControlElement", + "id" : "acm003570jsd", + "name" : "RenameFieldViewModel" + }, + "acm003571jsd" : { + "type" : "ControlElement", + "id" : "acm003571jsd", + "name" : "fieldValidationStatus" + }, + "acm003572jsd" : { + "type" : "ControlElement", + "id" : "acm003572jsd", + "name" : "fieldNameValidationStatus" + }, + "acm003573jsd" : { + "type" : "ControlElement", + "id" : "acm003573jsd", + "name" : "canRenameProperty" + }, + "acm003574jsd" : { + "type" : "ControlElement", + "id" : "acm003574jsd", + "name" : "getNewFieldName" + }, + "acm003575jsd" : { + "type" : "ControlElement", + "id" : "acm003575jsd", + "name" : "newFieldNameProperty" + }, + "acm003576jsd" : { + "type" : "ControlElement", + "id" : "acm003576jsd", + "name" : "setNewFieldName" + }, + "acm003577jsd" : { + "type" : "ControlElement", + "id" : "acm003577jsd", + "name" : "getSelectedField" + }, + "acm003578jsd" : { + "type" : "ControlElement", + "id" : "acm003578jsd", + "name" : "selectedFieldProperty" + }, + "acm003579jsd" : { + "type" : "ControlElement", + "id" : "acm003579jsd", + "name" : "selectField" + }, + "acm003580jsd" : { + "type" : "ControlElement", + "id" : "acm003580jsd", + "name" : "renameField" + }, + "acm003581jsd" : { + "type" : "ClassUnit", + "id" : "acm003581jsd", + "name" : "RenameFieldViewModel", + "compilationUnitId" : "acm003563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003406jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003460jsd", "acm003471jsd", "acm009381jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm003570jsd", "acm003571jsd", "acm003572jsd", "acm003573jsd", "acm003574jsd", "acm003575jsd", "acm003576jsd", "acm003577jsd", "acm003578jsd", "acm003579jsd", "acm003580jsd" ] + }, + "acm003582jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003582jsd", + "name" : "DeprecatedFieldsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003589jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003583jsd" : { + "type" : "CodePackage", + "id" : "acm003583jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003584jsd" ] + }, + "acm003584jsd" : { + "type" : "CodePackage", + "id" : "acm003584jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003585jsd" ] + }, + "acm003585jsd" : { + "type" : "CodePackage", + "id" : "acm003585jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003586jsd" ] + }, + "acm003586jsd" : { + "type" : "CodePackage", + "id" : "acm003586jsd", + "name" : "entryeditor", + "parentId" : "acm001569jsd", + "content" : [ "acm003582jsd", "acm003590jsd", "acm003614jsd", "acm003648jsd", "acm003660jsd", "acm003680jsd", "acm003694jsd", "acm003713jsd", "acm003724jsd", "acm003732jsd", "acm003739jsd", "acm003746jsd", "acm003754jsd", "acm003762jsd", "acm003771jsd", "acm003782jsd", "acm003795jsd", "acm003803jsd", "acm003832jsd", "acm021592jsd", "acm003845jsd" ] + }, + "acm003587jsd" : { + "type" : "ControlElement", + "id" : "acm003587jsd", + "name" : "DeprecatedFieldsTab" + }, + "acm003588jsd" : { + "type" : "ControlElement", + "id" : "acm003588jsd", + "name" : "determineFieldsToShow" + }, + "acm003589jsd" : { + "type" : "ClassUnit", + "id" : "acm003589jsd", + "name" : "DeprecatedFieldsTab", + "compilationUnitId" : "acm003582jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003679jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm003587jsd", "acm003588jsd" ] + }, + "acm003590jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003590jsd", + "name" : "EntryEditor", + "parentId" : "acm003586jsd", + "content" : [ "acm003613jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003591jsd" : { + "type" : "CodePackage", + "id" : "acm003591jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003592jsd" ] + }, + "acm003592jsd" : { + "type" : "CodePackage", + "id" : "acm003592jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003593jsd" ] + }, + "acm003593jsd" : { + "type" : "CodePackage", + "id" : "acm003593jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003594jsd" ] + }, + "acm003594jsd" : { + "type" : "CodePackage", + "id" : "acm003594jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003590jsd" ] + }, + "acm003595jsd" : { + "type" : "ControlElement", + "id" : "acm003595jsd", + "name" : "EntryEditor" + }, + "acm003596jsd" : { + "type" : "ControlElement", + "id" : "acm003596jsd", + "name" : "setupKeyBindings" + }, + "acm003597jsd" : { + "type" : "ControlElement", + "id" : "acm003597jsd", + "name" : "close" + }, + "acm003598jsd" : { + "type" : "ControlElement", + "id" : "acm003598jsd", + "name" : "deleteEntry" + }, + "acm003599jsd" : { + "type" : "ControlElement", + "id" : "acm003599jsd", + "name" : "generateCiteKeyButton" + }, + "acm003600jsd" : { + "type" : "ControlElement", + "id" : "acm003600jsd", + "name" : "generateCleanupButton" + }, + "acm003601jsd" : { + "type" : "ControlElement", + "id" : "acm003601jsd", + "name" : "navigateToPreviousEntry" + }, + "acm003602jsd" : { + "type" : "ControlElement", + "id" : "acm003602jsd", + "name" : "navigateToNextEntry" + }, + "acm003603jsd" : { + "type" : "ControlElement", + "id" : "acm003603jsd", + "name" : "createTabs" + }, + "acm003604jsd" : { + "type" : "ControlElement", + "id" : "acm003604jsd", + "name" : "recalculateVisibleTabs" + }, + "acm003605jsd" : { + "type" : "ControlElement", + "id" : "acm003605jsd", + "name" : "getEntry" + }, + "acm003606jsd" : { + "type" : "ControlElement", + "id" : "acm003606jsd", + "name" : "setEntry" + }, + "acm003607jsd" : { + "type" : "ControlElement", + "id" : "acm003607jsd", + "name" : "getSelectedTab" + }, + "acm003608jsd" : { + "type" : "ControlElement", + "id" : "acm003608jsd", + "name" : "setupToolBar" + }, + "acm003609jsd" : { + "type" : "ControlElement", + "id" : "acm003609jsd", + "name" : "fetchAndMerge" + }, + "acm003610jsd" : { + "type" : "ControlElement", + "id" : "acm003610jsd", + "name" : "setFocusToField" + }, + "acm003611jsd" : { + "type" : "ControlElement", + "id" : "acm003611jsd", + "name" : "nextPreviewStyle" + }, + "acm003612jsd" : { + "type" : "ControlElement", + "id" : "acm003612jsd", + "name" : "previousPreviewStyle" + }, + "acm003613jsd" : { + "type" : "ClassUnit", + "id" : "acm003613jsd", + "name" : "EntryEditor", + "compilationUnitId" : "acm003590jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm002444jsd", "acm002482jsd", "acm003589jsd", "acm003613jsd", "acm003647jsd", "acm003659jsd", "acm003693jsd", "acm003723jsd", "acm003738jsd", "acm003745jsd", "acm003761jsd", "acm003781jsd", "acm003794jsd", "acm003802jsd", "acm003823jsd", "acm003839jsd", "acm003849jsd", "acm003913jsd", "acm004142jsd", "acm005802jsd", "acm006481jsd", "acm006551jsd", "acm009346jsd", "acm009369jsd", "acm009965jsd", "acm010375jsd", "acm012286jsd", "acm014217jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm018673jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm003595jsd", "acm003596jsd", "acm003597jsd", "acm003598jsd", "acm003599jsd", "acm003600jsd", "acm003601jsd", "acm003602jsd", "acm003603jsd", "acm003604jsd", "acm003605jsd", "acm003606jsd", "acm003607jsd", "acm003608jsd", "acm003609jsd", "acm003610jsd", "acm003611jsd", "acm003612jsd" ] + }, + "acm003614jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003614jsd", + "name" : "EntryEditorPreferences", + "parentId" : "acm003586jsd", + "content" : [ "acm003647jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003615jsd" : { + "type" : "CodePackage", + "id" : "acm003615jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003616jsd" ] + }, + "acm003616jsd" : { + "type" : "CodePackage", + "id" : "acm003616jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003617jsd" ] + }, + "acm003617jsd" : { + "type" : "CodePackage", + "id" : "acm003617jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003618jsd" ] + }, + "acm003618jsd" : { + "type" : "CodePackage", + "id" : "acm003618jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003614jsd" ] + }, + "acm003619jsd" : { + "type" : "ControlElement", + "id" : "acm003619jsd", + "name" : "EntryEditorPreferences" + }, + "acm003620jsd" : { + "type" : "ControlElement", + "id" : "acm003620jsd", + "name" : "getEntryEditorTabList" + }, + "acm003621jsd" : { + "type" : "ControlElement", + "id" : "acm003621jsd", + "name" : "entryEditorTabListProperty" + }, + "acm003622jsd" : { + "type" : "ControlElement", + "id" : "acm003622jsd", + "name" : "setEntryEditorTabList" + }, + "acm003623jsd" : { + "type" : "ControlElement", + "id" : "acm003623jsd", + "name" : "shouldOpenOnNewEntry" + }, + "acm003624jsd" : { + "type" : "ControlElement", + "id" : "acm003624jsd", + "name" : "shouldOpenOnNewEntryProperty" + }, + "acm003625jsd" : { + "type" : "ControlElement", + "id" : "acm003625jsd", + "name" : "setShouldOpenOnNewEntry" + }, + "acm003626jsd" : { + "type" : "ControlElement", + "id" : "acm003626jsd", + "name" : "shouldShowRecommendationsTab" + }, + "acm003627jsd" : { + "type" : "ControlElement", + "id" : "acm003627jsd", + "name" : "shouldShowRecommendationsTabProperty" + }, + "acm003628jsd" : { + "type" : "ControlElement", + "id" : "acm003628jsd", + "name" : "setShouldShowRecommendationsTab" + }, + "acm003629jsd" : { + "type" : "ControlElement", + "id" : "acm003629jsd", + "name" : "isMrdlibAccepted" + }, + "acm003630jsd" : { + "type" : "ControlElement", + "id" : "acm003630jsd", + "name" : "isMrdlibAcceptedProperty" + }, + "acm003631jsd" : { + "type" : "ControlElement", + "id" : "acm003631jsd", + "name" : "setIsMrdlibAccepted" + }, + "acm003632jsd" : { + "type" : "ControlElement", + "id" : "acm003632jsd", + "name" : "shouldShowLatexCitationsTab" + }, + "acm003633jsd" : { + "type" : "ControlElement", + "id" : "acm003633jsd", + "name" : "shouldShowLatexCitationsTabProperty" + }, + "acm003634jsd" : { + "type" : "ControlElement", + "id" : "acm003634jsd", + "name" : "setShouldShowLatexCitationsTab" + }, + "acm003635jsd" : { + "type" : "ControlElement", + "id" : "acm003635jsd", + "name" : "showSourceTabByDefault" + }, + "acm003636jsd" : { + "type" : "ControlElement", + "id" : "acm003636jsd", + "name" : "showSourceTabByDefaultProperty" + }, + "acm003637jsd" : { + "type" : "ControlElement", + "id" : "acm003637jsd", + "name" : "setShowSourceTabByDefault" + }, + "acm003638jsd" : { + "type" : "ControlElement", + "id" : "acm003638jsd", + "name" : "shouldEnableValidation" + }, + "acm003639jsd" : { + "type" : "ControlElement", + "id" : "acm003639jsd", + "name" : "enableValidationProperty" + }, + "acm003640jsd" : { + "type" : "ControlElement", + "id" : "acm003640jsd", + "name" : "setEnableValidation" + }, + "acm003641jsd" : { + "type" : "ControlElement", + "id" : "acm003641jsd", + "name" : "shouldAllowIntegerEditionBibtex" + }, + "acm003642jsd" : { + "type" : "ControlElement", + "id" : "acm003642jsd", + "name" : "allowIntegerEditionBibtexProperty" + }, + "acm003643jsd" : { + "type" : "ControlElement", + "id" : "acm003643jsd", + "name" : "setAllowIntegerEditionBibtex" + }, + "acm003644jsd" : { + "type" : "ControlElement", + "id" : "acm003644jsd", + "name" : "getDividerPosition" + }, + "acm003645jsd" : { + "type" : "ControlElement", + "id" : "acm003645jsd", + "name" : "dividerPositionProperty" + }, + "acm003646jsd" : { + "type" : "ControlElement", + "id" : "acm003646jsd", + "name" : "setDividerPosition" + }, + "acm003647jsd" : { + "type" : "ClassUnit", + "id" : "acm003647jsd", + "name" : "EntryEditorPreferences", + "compilationUnitId" : "acm003614jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm003619jsd", "acm003620jsd", "acm003621jsd", "acm003622jsd", "acm003623jsd", "acm003624jsd", "acm003625jsd", "acm003626jsd", "acm003627jsd", "acm003628jsd", "acm003629jsd", "acm003630jsd", "acm003631jsd", "acm003632jsd", "acm003633jsd", "acm003634jsd", "acm003635jsd", "acm003636jsd", "acm003637jsd", "acm003638jsd", "acm003639jsd", "acm003640jsd", "acm003641jsd", "acm003642jsd", "acm003643jsd", "acm003644jsd", "acm003645jsd", "acm003646jsd" ] + }, + "acm003648jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003648jsd", + "name" : "EntryEditorTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003659jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003649jsd" : { + "type" : "CodePackage", + "id" : "acm003649jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003650jsd" ] + }, + "acm003650jsd" : { + "type" : "CodePackage", + "id" : "acm003650jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003651jsd" ] + }, + "acm003651jsd" : { + "type" : "CodePackage", + "id" : "acm003651jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003652jsd" ] + }, + "acm003652jsd" : { + "type" : "CodePackage", + "id" : "acm003652jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003648jsd" ] + }, + "acm003653jsd" : { + "type" : "ControlElement", + "id" : "acm003653jsd", + "name" : "shouldShow" + }, + "acm003654jsd" : { + "type" : "ControlElement", + "id" : "acm003654jsd", + "name" : "bindToEntry" + }, + "acm003655jsd" : { + "type" : "ControlElement", + "id" : "acm003655jsd", + "name" : "handleFocus" + }, + "acm003656jsd" : { + "type" : "ControlElement", + "id" : "acm003656jsd", + "name" : "notifyAboutFocus" + }, + "acm003657jsd" : { + "type" : "ControlElement", + "id" : "acm003657jsd", + "name" : "nextPreviewStyle" + }, + "acm003658jsd" : { + "type" : "ControlElement", + "id" : "acm003658jsd", + "name" : "previousPreviewStyle" + }, + "acm003659jsd" : { + "type" : "ClassUnit", + "id" : "acm003659jsd", + "name" : "EntryEditorTab", + "compilationUnitId" : "acm003648jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm003653jsd", "acm003654jsd", "acm003655jsd", "acm003656jsd", "acm003657jsd", "acm003658jsd" ] + }, + "acm003660jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003660jsd", + "name" : "FieldsEditorTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003679jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003661jsd" : { + "type" : "CodePackage", + "id" : "acm003661jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003662jsd" ] + }, + "acm003662jsd" : { + "type" : "CodePackage", + "id" : "acm003662jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003663jsd" ] + }, + "acm003663jsd" : { + "type" : "CodePackage", + "id" : "acm003663jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003664jsd" ] + }, + "acm003664jsd" : { + "type" : "CodePackage", + "id" : "acm003664jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003660jsd" ] + }, + "acm003665jsd" : { + "type" : "ControlElement", + "id" : "acm003665jsd", + "name" : "FieldsEditorTab" + }, + "acm003666jsd" : { + "type" : "ControlElement", + "id" : "acm003666jsd", + "name" : "addColumn" + }, + "acm003667jsd" : { + "type" : "ControlElement", + "id" : "acm003667jsd", + "name" : "addColumn" + }, + "acm003668jsd" : { + "type" : "ControlElement", + "id" : "acm003668jsd", + "name" : "setupPanel" + }, + "acm003669jsd" : { + "type" : "ControlElement", + "id" : "acm003669jsd", + "name" : "setRegularRowLayout" + }, + "acm003670jsd" : { + "type" : "ControlElement", + "id" : "acm003670jsd", + "name" : "setCompressedRowLayout" + }, + "acm003671jsd" : { + "type" : "ControlElement", + "id" : "acm003671jsd", + "name" : "requestFocus" + }, + "acm003672jsd" : { + "type" : "ControlElement", + "id" : "acm003672jsd", + "name" : "shouldShow" + }, + "acm003673jsd" : { + "type" : "ControlElement", + "id" : "acm003673jsd", + "name" : "bindToEntry" + }, + "acm003674jsd" : { + "type" : "ControlElement", + "id" : "acm003674jsd", + "name" : "nextPreviewStyle" + }, + "acm003675jsd" : { + "type" : "ControlElement", + "id" : "acm003675jsd", + "name" : "previousPreviewStyle" + }, + "acm003676jsd" : { + "type" : "ControlElement", + "id" : "acm003676jsd", + "name" : "determineFieldsToShow" + }, + "acm003677jsd" : { + "type" : "ControlElement", + "id" : "acm003677jsd", + "name" : "getShownFields" + }, + "acm003678jsd" : { + "type" : "ControlElement", + "id" : "acm003678jsd", + "name" : "initPanel" + }, + "acm003679jsd" : { + "type" : "ClassUnit", + "id" : "acm003679jsd", + "name" : "FieldsEditorTab", + "compilationUnitId" : "acm003660jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm004479jsd", "acm004495jsd", "acm008521jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm003665jsd", "acm003666jsd", "acm003667jsd", "acm003668jsd", "acm003669jsd", "acm003670jsd", "acm003671jsd", "acm003672jsd", "acm003673jsd", "acm003674jsd", "acm003675jsd", "acm003676jsd", "acm003677jsd", "acm003678jsd" ] + }, + "acm003680jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003680jsd", + "name" : "LatexCitationsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003693jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003681jsd" : { + "type" : "CodePackage", + "id" : "acm003681jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003682jsd" ] + }, + "acm003682jsd" : { + "type" : "CodePackage", + "id" : "acm003682jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003683jsd" ] + }, + "acm003683jsd" : { + "type" : "CodePackage", + "id" : "acm003683jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003684jsd" ] + }, + "acm003684jsd" : { + "type" : "CodePackage", + "id" : "acm003684jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003680jsd" ] + }, + "acm003685jsd" : { + "type" : "ControlElement", + "id" : "acm003685jsd", + "name" : "LatexCitationsTab" + }, + "acm003686jsd" : { + "type" : "ControlElement", + "id" : "acm003686jsd", + "name" : "setSearchPane" + }, + "acm003687jsd" : { + "type" : "ControlElement", + "id" : "acm003687jsd", + "name" : "getLatexDirectoryBox" + }, + "acm003688jsd" : { + "type" : "ControlElement", + "id" : "acm003688jsd", + "name" : "getCitationsPane" + }, + "acm003689jsd" : { + "type" : "ControlElement", + "id" : "acm003689jsd", + "name" : "getNotFoundPane" + }, + "acm003690jsd" : { + "type" : "ControlElement", + "id" : "acm003690jsd", + "name" : "getErrorPane" + }, + "acm003691jsd" : { + "type" : "ControlElement", + "id" : "acm003691jsd", + "name" : "bindToEntry" + }, + "acm003692jsd" : { + "type" : "ControlElement", + "id" : "acm003692jsd", + "name" : "shouldShow" + }, + "acm003693jsd" : { + "type" : "ClassUnit", + "id" : "acm003693jsd", + "name" : "LatexCitationsTab", + "compilationUnitId" : "acm003680jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003711jsd", "acm009192jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003685jsd", "acm003686jsd", "acm003687jsd", "acm003688jsd", "acm003689jsd", "acm003690jsd", "acm003691jsd", "acm003692jsd" ] + }, + "acm003694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003694jsd", + "name" : "LatexCitationsTabViewModel", + "parentId" : "acm003586jsd", + "content" : [ "acm003711jsd", "acm003712jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003695jsd" : { + "type" : "CodePackage", + "id" : "acm003695jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003696jsd" ] + }, + "acm003696jsd" : { + "type" : "CodePackage", + "id" : "acm003696jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003697jsd" ] + }, + "acm003697jsd" : { + "type" : "CodePackage", + "id" : "acm003697jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003698jsd" ] + }, + "acm003698jsd" : { + "type" : "CodePackage", + "id" : "acm003698jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003694jsd" ] + }, + "acm003699jsd" : { + "type" : "ControlElement", + "id" : "acm003699jsd", + "name" : "LatexCitationsTabViewModel" + }, + "acm003700jsd" : { + "type" : "ControlElement", + "id" : "acm003700jsd", + "name" : "init" + }, + "acm003701jsd" : { + "type" : "ControlElement", + "id" : "acm003701jsd", + "name" : "directoryProperty" + }, + "acm003702jsd" : { + "type" : "ControlElement", + "id" : "acm003702jsd", + "name" : "getCitationList" + }, + "acm003703jsd" : { + "type" : "ControlElement", + "id" : "acm003703jsd", + "name" : "statusProperty" + }, + "acm003704jsd" : { + "type" : "ControlElement", + "id" : "acm003704jsd", + "name" : "searchErrorProperty" + }, + "acm003705jsd" : { + "type" : "ControlElement", + "id" : "acm003705jsd", + "name" : "startSearch" + }, + "acm003706jsd" : { + "type" : "ControlElement", + "id" : "acm003706jsd", + "name" : "cancelSearch" + }, + "acm003707jsd" : { + "type" : "ControlElement", + "id" : "acm003707jsd", + "name" : "searchAndParse" + }, + "acm003708jsd" : { + "type" : "ControlElement", + "id" : "acm003708jsd", + "name" : "searchDirectory" + }, + "acm003709jsd" : { + "type" : "ControlElement", + "id" : "acm003709jsd", + "name" : "setLatexDirectory" + }, + "acm003710jsd" : { + "type" : "ControlElement", + "id" : "acm003710jsd", + "name" : "shouldShow" + }, + "acm003711jsd" : { + "type" : "ClassUnit", + "id" : "acm003711jsd", + "name" : "LatexCitationsTabViewModel", + "compilationUnitId" : "acm003694jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003711jsd", "acm003712jsd", "acm009752jsd", "acm009756jsd", "acm009965jsd", "acm017219jsd", "acm018022jsd", "acm018267jsd", "acm020631jsd", "acm020666jsd", "acm021206jsd" ], + "content" : [ "acm003699jsd", "acm003700jsd", "acm003701jsd", "acm003702jsd", "acm003703jsd", "acm003704jsd", "acm003705jsd", "acm003706jsd", "acm003707jsd", "acm003708jsd", "acm003709jsd", "acm003710jsd" ] + }, + "acm003712jsd" : { + "type" : "ClassUnit", + "id" : "acm003712jsd", + "name" : "Status", + "compilationUnitId" : "acm003694jsd", + "parentDatatypeId" : "acm003711jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003713jsd", + "name" : "MathSciNetTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003723jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003714jsd" : { + "type" : "CodePackage", + "id" : "acm003714jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003715jsd" ] + }, + "acm003715jsd" : { + "type" : "CodePackage", + "id" : "acm003715jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003716jsd" ] + }, + "acm003716jsd" : { + "type" : "CodePackage", + "id" : "acm003716jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003717jsd" ] + }, + "acm003717jsd" : { + "type" : "CodePackage", + "id" : "acm003717jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003713jsd" ] + }, + "acm003718jsd" : { + "type" : "ControlElement", + "id" : "acm003718jsd", + "name" : "MathSciNetTab" + }, + "acm003719jsd" : { + "type" : "ControlElement", + "id" : "acm003719jsd", + "name" : "getMathSciNetId" + }, + "acm003720jsd" : { + "type" : "ControlElement", + "id" : "acm003720jsd", + "name" : "getPane" + }, + "acm003721jsd" : { + "type" : "ControlElement", + "id" : "acm003721jsd", + "name" : "shouldShow" + }, + "acm003722jsd" : { + "type" : "ControlElement", + "id" : "acm003722jsd", + "name" : "bindToEntry" + }, + "acm003723jsd" : { + "type" : "ClassUnit", + "id" : "acm003723jsd", + "name" : "MathSciNetTab", + "compilationUnitId" : "acm003713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018945jsd" ], + "content" : [ "acm003718jsd", "acm003719jsd", "acm003720jsd", "acm003721jsd", "acm003722jsd" ] + }, + "acm003724jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003724jsd", + "name" : "OpenEntryEditorAction", + "parentId" : "acm003586jsd", + "content" : [ "acm003731jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003725jsd" : { + "type" : "CodePackage", + "id" : "acm003725jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003726jsd" ] + }, + "acm003726jsd" : { + "type" : "CodePackage", + "id" : "acm003726jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003727jsd" ] + }, + "acm003727jsd" : { + "type" : "CodePackage", + "id" : "acm003727jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003728jsd" ] + }, + "acm003728jsd" : { + "type" : "CodePackage", + "id" : "acm003728jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003724jsd" ] + }, + "acm003729jsd" : { + "type" : "ControlElement", + "id" : "acm003729jsd", + "name" : "OpenEntryEditorAction" + }, + "acm003730jsd" : { + "type" : "ControlElement", + "id" : "acm003730jsd", + "name" : "execute" + }, + "acm003731jsd" : { + "type" : "ClassUnit", + "id" : "acm003731jsd", + "name" : "OpenEntryEditorAction", + "compilationUnitId" : "acm003724jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd" ], + "content" : [ "acm003729jsd", "acm003730jsd" ] + }, + "acm003732jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003732jsd", + "name" : "OptionalFields2Tab", + "parentId" : "acm003586jsd", + "content" : [ "acm003738jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003733jsd" : { + "type" : "CodePackage", + "id" : "acm003733jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003734jsd" ] + }, + "acm003734jsd" : { + "type" : "CodePackage", + "id" : "acm003734jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003735jsd" ] + }, + "acm003735jsd" : { + "type" : "CodePackage", + "id" : "acm003735jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003736jsd" ] + }, + "acm003736jsd" : { + "type" : "CodePackage", + "id" : "acm003736jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003732jsd" ] + }, + "acm003737jsd" : { + "type" : "ControlElement", + "id" : "acm003737jsd", + "name" : "OptionalFields2Tab" + }, + "acm003738jsd" : { + "type" : "ClassUnit", + "id" : "acm003738jsd", + "name" : "OptionalFields2Tab", + "compilationUnitId" : "acm003732jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003753jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm003737jsd" ] + }, + "acm003739jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003739jsd", + "name" : "OptionalFieldsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003745jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003740jsd" : { + "type" : "CodePackage", + "id" : "acm003740jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003741jsd" ] + }, + "acm003741jsd" : { + "type" : "CodePackage", + "id" : "acm003741jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003742jsd" ] + }, + "acm003742jsd" : { + "type" : "CodePackage", + "id" : "acm003742jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003743jsd" ] + }, + "acm003743jsd" : { + "type" : "CodePackage", + "id" : "acm003743jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003739jsd" ] + }, + "acm003744jsd" : { + "type" : "ControlElement", + "id" : "acm003744jsd", + "name" : "OptionalFieldsTab" + }, + "acm003745jsd" : { + "type" : "ClassUnit", + "id" : "acm003745jsd", + "name" : "OptionalFieldsTab", + "compilationUnitId" : "acm003739jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003753jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm003744jsd" ] + }, + "acm003746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003746jsd", + "name" : "OptionalFieldsTabBase", + "parentId" : "acm003586jsd", + "content" : [ "acm003753jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003747jsd" : { + "type" : "CodePackage", + "id" : "acm003747jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003748jsd" ] + }, + "acm003748jsd" : { + "type" : "CodePackage", + "id" : "acm003748jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003749jsd" ] + }, + "acm003749jsd" : { + "type" : "CodePackage", + "id" : "acm003749jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003750jsd" ] + }, + "acm003750jsd" : { + "type" : "CodePackage", + "id" : "acm003750jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003746jsd" ] + }, + "acm003751jsd" : { + "type" : "ControlElement", + "id" : "acm003751jsd", + "name" : "OptionalFieldsTabBase" + }, + "acm003752jsd" : { + "type" : "ControlElement", + "id" : "acm003752jsd", + "name" : "determineFieldsToShow" + }, + "acm003753jsd" : { + "type" : "ClassUnit", + "id" : "acm003753jsd", + "name" : "OptionalFieldsTabBase", + "compilationUnitId" : "acm003746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003679jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm003751jsd", "acm003752jsd" ] + }, + "acm003754jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003754jsd", + "name" : "OtherFieldsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003761jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003755jsd" : { + "type" : "CodePackage", + "id" : "acm003755jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003756jsd" ] + }, + "acm003756jsd" : { + "type" : "CodePackage", + "id" : "acm003756jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003757jsd" ] + }, + "acm003757jsd" : { + "type" : "CodePackage", + "id" : "acm003757jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003758jsd" ] + }, + "acm003758jsd" : { + "type" : "CodePackage", + "id" : "acm003758jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003754jsd" ] + }, + "acm003759jsd" : { + "type" : "ControlElement", + "id" : "acm003759jsd", + "name" : "OtherFieldsTab" + }, + "acm003760jsd" : { + "type" : "ControlElement", + "id" : "acm003760jsd", + "name" : "determineFieldsToShow" + }, + "acm003761jsd" : { + "type" : "ClassUnit", + "id" : "acm003761jsd", + "name" : "OtherFieldsTab", + "compilationUnitId" : "acm003754jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003679jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm003759jsd", "acm003760jsd" ] + }, + "acm003762jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003762jsd", + "name" : "PreviewSwitchAction", + "parentId" : "acm003586jsd", + "content" : [ "acm003769jsd", "acm003770jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003763jsd" : { + "type" : "CodePackage", + "id" : "acm003763jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003764jsd" ] + }, + "acm003764jsd" : { + "type" : "CodePackage", + "id" : "acm003764jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003765jsd" ] + }, + "acm003765jsd" : { + "type" : "CodePackage", + "id" : "acm003765jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003766jsd" ] + }, + "acm003766jsd" : { + "type" : "CodePackage", + "id" : "acm003766jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003762jsd" ] + }, + "acm003767jsd" : { + "type" : "ControlElement", + "id" : "acm003767jsd", + "name" : "PreviewSwitchAction" + }, + "acm003768jsd" : { + "type" : "ControlElement", + "id" : "acm003768jsd", + "name" : "execute" + }, + "acm003769jsd" : { + "type" : "ClassUnit", + "id" : "acm003769jsd", + "name" : "PreviewSwitchAction", + "compilationUnitId" : "acm003762jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd", "acm003770jsd" ], + "content" : [ "acm003767jsd", "acm003768jsd" ] + }, + "acm003770jsd" : { + "type" : "ClassUnit", + "id" : "acm003770jsd", + "name" : "Direction", + "compilationUnitId" : "acm003762jsd", + "parentDatatypeId" : "acm003769jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003771jsd", + "name" : "PreviewTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003781jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003772jsd" : { + "type" : "CodePackage", + "id" : "acm003772jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003773jsd" ] + }, + "acm003773jsd" : { + "type" : "CodePackage", + "id" : "acm003773jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003774jsd" ] + }, + "acm003774jsd" : { + "type" : "CodePackage", + "id" : "acm003774jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003775jsd" ] + }, + "acm003775jsd" : { + "type" : "CodePackage", + "id" : "acm003775jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003771jsd" ] + }, + "acm003776jsd" : { + "type" : "ControlElement", + "id" : "acm003776jsd", + "name" : "PreviewTab" + }, + "acm003777jsd" : { + "type" : "ControlElement", + "id" : "acm003777jsd", + "name" : "nextPreviewStyle" + }, + "acm003778jsd" : { + "type" : "ControlElement", + "id" : "acm003778jsd", + "name" : "previousPreviewStyle" + }, + "acm003779jsd" : { + "type" : "ControlElement", + "id" : "acm003779jsd", + "name" : "shouldShow" + }, + "acm003780jsd" : { + "type" : "ControlElement", + "id" : "acm003780jsd", + "name" : "bindToEntry" + }, + "acm003781jsd" : { + "type" : "ClassUnit", + "id" : "acm003781jsd", + "name" : "PreviewTab", + "compilationUnitId" : "acm003771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm008521jsd", "acm009346jsd", "acm016548jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003776jsd", "acm003777jsd", "acm003778jsd", "acm003779jsd", "acm003780jsd" ] + }, + "acm003782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003782jsd", + "name" : "RelatedArticlesTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003794jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003783jsd" : { + "type" : "CodePackage", + "id" : "acm003783jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003784jsd" ] + }, + "acm003784jsd" : { + "type" : "CodePackage", + "id" : "acm003784jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003785jsd" ] + }, + "acm003785jsd" : { + "type" : "CodePackage", + "id" : "acm003785jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003786jsd" ] + }, + "acm003786jsd" : { + "type" : "CodePackage", + "id" : "acm003786jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003782jsd" ] + }, + "acm003787jsd" : { + "type" : "ControlElement", + "id" : "acm003787jsd", + "name" : "RelatedArticlesTab" + }, + "acm003788jsd" : { + "type" : "ControlElement", + "id" : "acm003788jsd", + "name" : "getRelatedArticlesPane" + }, + "acm003789jsd" : { + "type" : "ControlElement", + "id" : "acm003789jsd", + "name" : "getRelatedArticleInfo" + }, + "acm003790jsd" : { + "type" : "ControlElement", + "id" : "acm003790jsd", + "name" : "getErrorInfo" + }, + "acm003791jsd" : { + "type" : "ControlElement", + "id" : "acm003791jsd", + "name" : "getPrivacyDialog" + }, + "acm003792jsd" : { + "type" : "ControlElement", + "id" : "acm003792jsd", + "name" : "shouldShow" + }, + "acm003793jsd" : { + "type" : "ControlElement", + "id" : "acm003793jsd", + "name" : "bindToEntry" + }, + "acm003794jsd" : { + "type" : "ClassUnit", + "id" : "acm003794jsd", + "name" : "RelatedArticlesTab", + "compilationUnitId" : "acm003782jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003613jsd", "acm003647jsd", "acm003794jsd", "acm013210jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003787jsd", "acm003788jsd", "acm003789jsd", "acm003790jsd", "acm003791jsd", "acm003792jsd", "acm003793jsd" ] + }, + "acm003795jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003795jsd", + "name" : "RequiredFieldsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003802jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003796jsd" : { + "type" : "CodePackage", + "id" : "acm003796jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003797jsd" ] + }, + "acm003797jsd" : { + "type" : "CodePackage", + "id" : "acm003797jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003798jsd" ] + }, + "acm003798jsd" : { + "type" : "CodePackage", + "id" : "acm003798jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003799jsd" ] + }, + "acm003799jsd" : { + "type" : "CodePackage", + "id" : "acm003799jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003795jsd" ] + }, + "acm003800jsd" : { + "type" : "ControlElement", + "id" : "acm003800jsd", + "name" : "RequiredFieldsTab" + }, + "acm003801jsd" : { + "type" : "ControlElement", + "id" : "acm003801jsd", + "name" : "determineFieldsToShow" + }, + "acm003802jsd" : { + "type" : "ClassUnit", + "id" : "acm003802jsd", + "name" : "RequiredFieldsTab", + "compilationUnitId" : "acm003795jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003679jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm018754jsd", "acm021206jsd" ], + "content" : [ "acm003800jsd", "acm003801jsd" ] + }, + "acm003803jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003803jsd", + "name" : "SourceTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003823jsd", "acm003826jsd", "acm003831jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003804jsd" : { + "type" : "CodePackage", + "id" : "acm003804jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003805jsd" ] + }, + "acm003805jsd" : { + "type" : "CodePackage", + "id" : "acm003805jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003806jsd" ] + }, + "acm003806jsd" : { + "type" : "CodePackage", + "id" : "acm003806jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003807jsd" ] + }, + "acm003807jsd" : { + "type" : "CodePackage", + "id" : "acm003807jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003803jsd" ] + }, + "acm003808jsd" : { + "type" : "ControlElement", + "id" : "acm003808jsd", + "name" : "EditAction" + }, + "acm003809jsd" : { + "type" : "ControlElement", + "id" : "acm003809jsd", + "name" : "execute" + }, + "acm003810jsd" : { + "type" : "ControlElement", + "id" : "acm003810jsd", + "name" : "SourceTab" + }, + "acm003811jsd" : { + "type" : "ControlElement", + "id" : "acm003811jsd", + "name" : "highlightSearchPattern" + }, + "acm003812jsd" : { + "type" : "ControlElement", + "id" : "acm003812jsd", + "name" : "getSourceString" + }, + "acm003813jsd" : { + "type" : "ControlElement", + "id" : "acm003813jsd", + "name" : "getSelectedText" + }, + "acm003814jsd" : { + "type" : "ControlElement", + "id" : "acm003814jsd", + "name" : "getLocationOffset" + }, + "acm003815jsd" : { + "type" : "ControlElement", + "id" : "acm003815jsd", + "name" : "cancelLatestCommittedText" + }, + "acm003816jsd" : { + "type" : "ControlElement", + "id" : "acm003816jsd", + "name" : "getTextLocation" + }, + "acm003817jsd" : { + "type" : "ControlElement", + "id" : "acm003817jsd", + "name" : "setupSourceEditor" + }, + "acm003818jsd" : { + "type" : "ControlElement", + "id" : "acm003818jsd", + "name" : "shouldShow" + }, + "acm003819jsd" : { + "type" : "ControlElement", + "id" : "acm003819jsd", + "name" : "updateCodeArea" + }, + "acm003820jsd" : { + "type" : "ControlElement", + "id" : "acm003820jsd", + "name" : "bindToEntry" + }, + "acm003821jsd" : { + "type" : "ControlElement", + "id" : "acm003821jsd", + "name" : "storeSource" + }, + "acm003822jsd" : { + "type" : "ControlElement", + "id" : "acm003822jsd", + "name" : "listenForSaveKeybinding" + }, + "acm003823jsd" : { + "type" : "ClassUnit", + "id" : "acm003823jsd", + "name" : "SourceTab", + "compilationUnitId" : "acm003803jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm003823jsd", "acm003826jsd", "acm003831jsd", "acm005802jsd", "acm009369jsd", "acm009381jsd", "acm009400jsd", "acm009411jsd", "acm010474jsd", "acm010497jsd", "acm010513jsd", "acm010532jsd", "acm011455jsd", "acm012556jsd", "acm013761jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018673jsd", "acm020693jsd" ], + "content" : [ "acm003808jsd", "acm003809jsd", "acm003810jsd", "acm003811jsd", "acm003812jsd", "acm003813jsd", "acm003814jsd", "acm003815jsd", "acm003816jsd", "acm003817jsd", "acm003818jsd", "acm003819jsd", "acm003820jsd", "acm003821jsd", "acm003822jsd" ] + }, + "acm003824jsd" : { + "type" : "ControlElement", + "id" : "acm003824jsd", + "name" : "EditAction" + }, + "acm003825jsd" : { + "type" : "ControlElement", + "id" : "acm003825jsd", + "name" : "execute" + }, + "acm003826jsd" : { + "type" : "ClassUnit", + "id" : "acm003826jsd", + "name" : "EditAction", + "compilationUnitId" : "acm003803jsd", + "parentDatatypeId" : "acm003823jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd" ], + "content" : [ "acm003824jsd", "acm003825jsd" ] + }, + "acm003827jsd" : { + "type" : "ControlElement", + "id" : "acm003827jsd", + "name" : "getSelectedText" + }, + "acm003828jsd" : { + "type" : "ControlElement", + "id" : "acm003828jsd", + "name" : "getLocationOffset" + }, + "acm003829jsd" : { + "type" : "ControlElement", + "id" : "acm003829jsd", + "name" : "cancelLatestCommittedText" + }, + "acm003830jsd" : { + "type" : "ControlElement", + "id" : "acm003830jsd", + "name" : "getTextLocation" + }, + "acm003831jsd" : { + "type" : "ClassUnit", + "id" : "acm003831jsd", + "name" : "InputMethodRequestsObject", + "compilationUnitId" : "acm003803jsd", + "parentDatatypeId" : "acm003823jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003827jsd", "acm003828jsd", "acm003829jsd", "acm003830jsd" ] + }, + "acm003832jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003832jsd", + "name" : "UserDefinedFieldsTab", + "parentId" : "acm003586jsd", + "content" : [ "acm003839jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003833jsd" : { + "type" : "CodePackage", + "id" : "acm003833jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003834jsd" ] + }, + "acm003834jsd" : { + "type" : "CodePackage", + "id" : "acm003834jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003835jsd" ] + }, + "acm003835jsd" : { + "type" : "CodePackage", + "id" : "acm003835jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003836jsd" ] + }, + "acm003836jsd" : { + "type" : "CodePackage", + "id" : "acm003836jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003832jsd" ] + }, + "acm003837jsd" : { + "type" : "ControlElement", + "id" : "acm003837jsd", + "name" : "UserDefinedFieldsTab" + }, + "acm003838jsd" : { + "type" : "ControlElement", + "id" : "acm003838jsd", + "name" : "determineFieldsToShow" + }, + "acm003839jsd" : { + "type" : "ClassUnit", + "id" : "acm003839jsd", + "name" : "UserDefinedFieldsTab", + "compilationUnitId" : "acm003832jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003679jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002045jsd", "acm002338jsd", "acm009346jsd", "acm009965jsd", "acm016548jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm003837jsd", "acm003838jsd" ] + }, + "acm003840jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003840jsd", + "name" : "FileAnnotationTab", + "parentId" : "acm003845jsd", + "content" : [ "acm003849jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003841jsd" : { + "type" : "CodePackage", + "id" : "acm003841jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003842jsd" ] + }, + "acm003842jsd" : { + "type" : "CodePackage", + "id" : "acm003842jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003843jsd" ] + }, + "acm003843jsd" : { + "type" : "CodePackage", + "id" : "acm003843jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003844jsd" ] + }, + "acm003844jsd" : { + "type" : "CodePackage", + "id" : "acm003844jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003845jsd" ] + }, + "acm003845jsd" : { + "type" : "CodePackage", + "id" : "acm003845jsd", + "name" : "fileannotationtab", + "parentId" : "acm003586jsd", + "content" : [ "acm003840jsd", "acm003850jsd", "acm003861jsd", "acm003878jsd", "acm003899jsd", "acm021600jsd" ] + }, + "acm003846jsd" : { + "type" : "ControlElement", + "id" : "acm003846jsd", + "name" : "FileAnnotationTab" + }, + "acm003847jsd" : { + "type" : "ControlElement", + "id" : "acm003847jsd", + "name" : "shouldShow" + }, + "acm003848jsd" : { + "type" : "ControlElement", + "id" : "acm003848jsd", + "name" : "bindToEntry" + }, + "acm003849jsd" : { + "type" : "ClassUnit", + "id" : "acm003849jsd", + "name" : "FileAnnotationTab", + "compilationUnitId" : "acm003840jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003860jsd", "acm016490jsd", "acm018267jsd" ], + "content" : [ "acm003846jsd", "acm003847jsd", "acm003848jsd" ] + }, + "acm003850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003850jsd", + "name" : "FileAnnotationTabView", + "parentId" : "acm003845jsd", + "content" : [ "acm003860jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003851jsd" : { + "type" : "CodePackage", + "id" : "acm003851jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003852jsd" ] + }, + "acm003852jsd" : { + "type" : "CodePackage", + "id" : "acm003852jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003853jsd" ] + }, + "acm003853jsd" : { + "type" : "CodePackage", + "id" : "acm003853jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003854jsd" ] + }, + "acm003854jsd" : { + "type" : "CodePackage", + "id" : "acm003854jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003855jsd" ] + }, + "acm003855jsd" : { + "type" : "CodePackage", + "id" : "acm003855jsd", + "name" : "fileannotationtab", + "parentId" : null, + "content" : [ "acm003850jsd" ] + }, + "acm003856jsd" : { + "type" : "ControlElement", + "id" : "acm003856jsd", + "name" : "FileAnnotationTabView" + }, + "acm003857jsd" : { + "type" : "ControlElement", + "id" : "acm003857jsd", + "name" : "initialize" + }, + "acm003858jsd" : { + "type" : "ControlElement", + "id" : "acm003858jsd", + "name" : "createFileAnnotationNode" + }, + "acm003859jsd" : { + "type" : "ControlElement", + "id" : "acm003859jsd", + "name" : "copy" + }, + "acm003860jsd" : { + "type" : "ClassUnit", + "id" : "acm003860jsd", + "name" : "FileAnnotationTabView", + "compilationUnitId" : "acm003850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003877jsd", "acm003898jsd", "acm010051jsd", "acm016490jsd", "acm018267jsd", "acm020693jsd" ], + "content" : [ "acm003856jsd", "acm003857jsd", "acm003858jsd", "acm003859jsd" ] + }, + "acm003861jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003861jsd", + "name" : "FileAnnotationTabViewModel", + "parentId" : "acm003845jsd", + "content" : [ "acm003877jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003862jsd" : { + "type" : "CodePackage", + "id" : "acm003862jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003863jsd" ] + }, + "acm003863jsd" : { + "type" : "CodePackage", + "id" : "acm003863jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003864jsd" ] + }, + "acm003864jsd" : { + "type" : "CodePackage", + "id" : "acm003864jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003865jsd" ] + }, + "acm003865jsd" : { + "type" : "CodePackage", + "id" : "acm003865jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003866jsd" ] + }, + "acm003866jsd" : { + "type" : "CodePackage", + "id" : "acm003866jsd", + "name" : "fileannotationtab", + "parentId" : null, + "content" : [ "acm003861jsd" ] + }, + "acm003867jsd" : { + "type" : "ControlElement", + "id" : "acm003867jsd", + "name" : "FileAnnotationTabViewModel" + }, + "acm003868jsd" : { + "type" : "ControlElement", + "id" : "acm003868jsd", + "name" : "currentAnnotationProperty" + }, + "acm003869jsd" : { + "type" : "ControlElement", + "id" : "acm003869jsd", + "name" : "isAnnotationsEmpty" + }, + "acm003870jsd" : { + "type" : "ControlElement", + "id" : "acm003870jsd", + "name" : "annotationsProperty" + }, + "acm003871jsd" : { + "type" : "ControlElement", + "id" : "acm003871jsd", + "name" : "filesProperty" + }, + "acm003872jsd" : { + "type" : "ControlElement", + "id" : "acm003872jsd", + "name" : "notifyNewSelectedAnnotation" + }, + "acm003873jsd" : { + "type" : "ControlElement", + "id" : "acm003873jsd", + "name" : "notifyNewSelectedFile" + }, + "acm003874jsd" : { + "type" : "ControlElement", + "id" : "acm003874jsd", + "name" : "reloadAnnotations" + }, + "acm003875jsd" : { + "type" : "ControlElement", + "id" : "acm003875jsd", + "name" : "copyCurrentAnnotation" + }, + "acm003876jsd" : { + "type" : "ControlElement", + "id" : "acm003876jsd", + "name" : "getCurrentAnnotation" + }, + "acm003877jsd" : { + "type" : "ClassUnit", + "id" : "acm003877jsd", + "name" : "FileAnnotationTabViewModel", + "compilationUnitId" : "acm003861jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003877jsd", "acm003898jsd", "acm016490jsd", "acm018267jsd", "acm020244jsd", "acm020683jsd", "acm020693jsd" ], + "content" : [ "acm003867jsd", "acm003868jsd", "acm003869jsd", "acm003870jsd", "acm003871jsd", "acm003872jsd", "acm003873jsd", "acm003874jsd", "acm003875jsd", "acm003876jsd" ] + }, + "acm003878jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003878jsd", + "name" : "FileAnnotationViewModel", + "parentId" : "acm003845jsd", + "content" : [ "acm003898jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003879jsd" : { + "type" : "CodePackage", + "id" : "acm003879jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003880jsd" ] + }, + "acm003880jsd" : { + "type" : "CodePackage", + "id" : "acm003880jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003881jsd" ] + }, + "acm003881jsd" : { + "type" : "CodePackage", + "id" : "acm003881jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003882jsd" ] + }, + "acm003882jsd" : { + "type" : "CodePackage", + "id" : "acm003882jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003883jsd" ] + }, + "acm003883jsd" : { + "type" : "CodePackage", + "id" : "acm003883jsd", + "name" : "fileannotationtab", + "parentId" : null, + "content" : [ "acm003878jsd" ] + }, + "acm003884jsd" : { + "type" : "ControlElement", + "id" : "acm003884jsd", + "name" : "FileAnnotationViewModel" + }, + "acm003885jsd" : { + "type" : "ControlElement", + "id" : "acm003885jsd", + "name" : "setupContentProperties" + }, + "acm003886jsd" : { + "type" : "ControlElement", + "id" : "acm003886jsd", + "name" : "removePunctuationMark" + }, + "acm003887jsd" : { + "type" : "ControlElement", + "id" : "acm003887jsd", + "name" : "getAuthor" + }, + "acm003888jsd" : { + "type" : "ControlElement", + "id" : "acm003888jsd", + "name" : "getPage" + }, + "acm003889jsd" : { + "type" : "ControlElement", + "id" : "acm003889jsd", + "name" : "getDate" + }, + "acm003890jsd" : { + "type" : "ControlElement", + "id" : "acm003890jsd", + "name" : "getContent" + }, + "acm003891jsd" : { + "type" : "ControlElement", + "id" : "acm003891jsd", + "name" : "pageProperty" + }, + "acm003892jsd" : { + "type" : "ControlElement", + "id" : "acm003892jsd", + "name" : "dateProperty" + }, + "acm003893jsd" : { + "type" : "ControlElement", + "id" : "acm003893jsd", + "name" : "contentProperty" + }, + "acm003894jsd" : { + "type" : "ControlElement", + "id" : "acm003894jsd", + "name" : "markingProperty" + }, + "acm003895jsd" : { + "type" : "ControlElement", + "id" : "acm003895jsd", + "name" : "authorProperty" + }, + "acm003896jsd" : { + "type" : "ControlElement", + "id" : "acm003896jsd", + "name" : "toString" + }, + "acm003897jsd" : { + "type" : "ControlElement", + "id" : "acm003897jsd", + "name" : "getMarking" + }, + "acm003898jsd" : { + "type" : "ClassUnit", + "id" : "acm003898jsd", + "name" : "FileAnnotationViewModel", + "compilationUnitId" : "acm003878jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011975jsd", "acm020244jsd" ], + "content" : [ "acm003884jsd", "acm003885jsd", "acm003886jsd", "acm003887jsd", "acm003888jsd", "acm003889jsd", "acm003890jsd", "acm003891jsd", "acm003892jsd", "acm003893jsd", "acm003894jsd", "acm003895jsd", "acm003896jsd", "acm003897jsd" ] + }, + "acm003899jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003899jsd", + "name" : "FulltextSearchResultsTab", + "parentId" : "acm003845jsd", + "content" : [ "acm003913jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003900jsd" : { + "type" : "CodePackage", + "id" : "acm003900jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003901jsd" ] + }, + "acm003901jsd" : { + "type" : "CodePackage", + "id" : "acm003901jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003902jsd" ] + }, + "acm003902jsd" : { + "type" : "CodePackage", + "id" : "acm003902jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003903jsd" ] + }, + "acm003903jsd" : { + "type" : "CodePackage", + "id" : "acm003903jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm003904jsd" ] + }, + "acm003904jsd" : { + "type" : "CodePackage", + "id" : "acm003904jsd", + "name" : "fileannotationtab", + "parentId" : null, + "content" : [ "acm003899jsd" ] + }, + "acm003905jsd" : { + "type" : "ControlElement", + "id" : "acm003905jsd", + "name" : "FulltextSearchResultsTab" + }, + "acm003906jsd" : { + "type" : "ControlElement", + "id" : "acm003906jsd", + "name" : "shouldShow" + }, + "acm003907jsd" : { + "type" : "ControlElement", + "id" : "acm003907jsd", + "name" : "bindToEntry" + }, + "acm003908jsd" : { + "type" : "ControlElement", + "id" : "acm003908jsd", + "name" : "createFileLink" + }, + "acm003909jsd" : { + "type" : "ControlElement", + "id" : "acm003909jsd", + "name" : "createPageLink" + }, + "acm003910jsd" : { + "type" : "ControlElement", + "id" : "acm003910jsd", + "name" : "getFileContextMenu" + }, + "acm003911jsd" : { + "type" : "ControlElement", + "id" : "acm003911jsd", + "name" : "lineSeparator" + }, + "acm003912jsd" : { + "type" : "ControlElement", + "id" : "acm003912jsd", + "name" : "lineSeparator" + }, + "acm003913jsd" : { + "type" : "ClassUnit", + "id" : "acm003913jsd", + "name" : "FulltextSearchResultsTab", + "compilationUnitId" : "acm003899jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003659jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm003165jsd", "acm003913jsd", "acm006341jsd", "acm006350jsd", "acm018267jsd", "acm018509jsd", "acm020276jsd", "acm020299jsd", "acm021206jsd" ], + "content" : [ "acm003905jsd", "acm003906jsd", "acm003907jsd", "acm003908jsd", "acm003909jsd", "acm003910jsd", "acm003911jsd", "acm003912jsd" ] + }, + "acm003914jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003914jsd", + "name" : "ErrorConsoleView", + "parentId" : "acm003918jsd", + "content" : [ "acm003927jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "errorconsole" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003915jsd" : { + "type" : "CodePackage", + "id" : "acm003915jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003916jsd" ] + }, + "acm003916jsd" : { + "type" : "CodePackage", + "id" : "acm003916jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003917jsd" ] + }, + "acm003917jsd" : { + "type" : "CodePackage", + "id" : "acm003917jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003918jsd" ] + }, + "acm003918jsd" : { + "type" : "CodePackage", + "id" : "acm003918jsd", + "name" : "errorconsole", + "parentId" : "acm001569jsd", + "content" : [ "acm003914jsd", "acm003928jsd", "acm003941jsd" ] + }, + "acm003919jsd" : { + "type" : "ControlElement", + "id" : "acm003919jsd", + "name" : "ErrorConsoleView" + }, + "acm003920jsd" : { + "type" : "ControlElement", + "id" : "acm003920jsd", + "name" : "initialize" + }, + "acm003921jsd" : { + "type" : "ControlElement", + "id" : "acm003921jsd", + "name" : "createCellFactory" + }, + "acm003922jsd" : { + "type" : "ControlElement", + "id" : "acm003922jsd", + "name" : "updateItem" + }, + "acm003923jsd" : { + "type" : "ControlElement", + "id" : "acm003923jsd", + "name" : "copySelectedLogEntries" + }, + "acm003924jsd" : { + "type" : "ControlElement", + "id" : "acm003924jsd", + "name" : "copyLog" + }, + "acm003925jsd" : { + "type" : "ControlElement", + "id" : "acm003925jsd", + "name" : "clearLog" + }, + "acm003926jsd" : { + "type" : "ControlElement", + "id" : "acm003926jsd", + "name" : "createIssue" + }, + "acm003927jsd" : { + "type" : "ClassUnit", + "id" : "acm003927jsd", + "name" : "ErrorConsoleView", + "compilationUnitId" : "acm003914jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm003940jsd", "acm003952jsd", "acm005802jsd", "acm009346jsd", "acm017281jsd" ], + "content" : [ "acm003919jsd", "acm003920jsd", "acm003921jsd", "acm003922jsd", "acm003923jsd", "acm003924jsd", "acm003925jsd", "acm003926jsd" ] + }, + "acm003928jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003928jsd", + "name" : "ErrorConsoleViewModel", + "parentId" : "acm003918jsd", + "content" : [ "acm003940jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "errorconsole" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003929jsd" : { + "type" : "CodePackage", + "id" : "acm003929jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003930jsd" ] + }, + "acm003930jsd" : { + "type" : "CodePackage", + "id" : "acm003930jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003931jsd" ] + }, + "acm003931jsd" : { + "type" : "CodePackage", + "id" : "acm003931jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003932jsd" ] + }, + "acm003932jsd" : { + "type" : "CodePackage", + "id" : "acm003932jsd", + "name" : "errorconsole", + "parentId" : null, + "content" : [ "acm003928jsd" ] + }, + "acm003933jsd" : { + "type" : "ControlElement", + "id" : "acm003933jsd", + "name" : "ErrorConsoleViewModel" + }, + "acm003934jsd" : { + "type" : "ControlElement", + "id" : "acm003934jsd", + "name" : "allMessagesDataProperty" + }, + "acm003935jsd" : { + "type" : "ControlElement", + "id" : "acm003935jsd", + "name" : "getLogMessagesAsString" + }, + "acm003936jsd" : { + "type" : "ControlElement", + "id" : "acm003936jsd", + "name" : "copyLog" + }, + "acm003937jsd" : { + "type" : "ControlElement", + "id" : "acm003937jsd", + "name" : "copyLog" + }, + "acm003938jsd" : { + "type" : "ControlElement", + "id" : "acm003938jsd", + "name" : "clearLog" + }, + "acm003939jsd" : { + "type" : "ControlElement", + "id" : "acm003939jsd", + "name" : "reportIssue" + }, + "acm003940jsd" : { + "type" : "ClassUnit", + "id" : "acm003940jsd", + "name" : "ErrorConsoleViewModel", + "compilationUnitId" : "acm003928jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm003940jsd", "acm003952jsd", "acm017281jsd" ], + "content" : [ "acm003933jsd", "acm003934jsd", "acm003935jsd", "acm003936jsd", "acm003937jsd", "acm003938jsd", "acm003939jsd" ] + }, + "acm003941jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003941jsd", + "name" : "LogEventViewModel", + "parentId" : "acm003918jsd", + "content" : [ "acm003952jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "errorconsole" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003942jsd" : { + "type" : "CodePackage", + "id" : "acm003942jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003943jsd" ] + }, + "acm003943jsd" : { + "type" : "CodePackage", + "id" : "acm003943jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003944jsd" ] + }, + "acm003944jsd" : { + "type" : "CodePackage", + "id" : "acm003944jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003945jsd" ] + }, + "acm003945jsd" : { + "type" : "CodePackage", + "id" : "acm003945jsd", + "name" : "errorconsole", + "parentId" : null, + "content" : [ "acm003941jsd" ] + }, + "acm003946jsd" : { + "type" : "ControlElement", + "id" : "acm003946jsd", + "name" : "LogEventViewModel" + }, + "acm003947jsd" : { + "type" : "ControlElement", + "id" : "acm003947jsd", + "name" : "getDisplayText" + }, + "acm003948jsd" : { + "type" : "ControlElement", + "id" : "acm003948jsd", + "name" : "getStyleClass" + }, + "acm003949jsd" : { + "type" : "ControlElement", + "id" : "acm003949jsd", + "name" : "getIcon" + }, + "acm003950jsd" : { + "type" : "ControlElement", + "id" : "acm003950jsd", + "name" : "getStackTrace" + }, + "acm003951jsd" : { + "type" : "ControlElement", + "id" : "acm003951jsd", + "name" : "getDetailedText" + }, + "acm003952jsd" : { + "type" : "ClassUnit", + "id" : "acm003952jsd", + "name" : "LogEventViewModel", + "compilationUnitId" : "acm003941jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm003946jsd", "acm003947jsd", "acm003948jsd", "acm003949jsd", "acm003950jsd", "acm003951jsd" ] + }, + "acm003953jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003953jsd", + "name" : "CreateModifyExporterDialogView", + "parentId" : "acm003957jsd", + "content" : [ "acm003961jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003954jsd" : { + "type" : "CodePackage", + "id" : "acm003954jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003955jsd" ] + }, + "acm003955jsd" : { + "type" : "CodePackage", + "id" : "acm003955jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003956jsd" ] + }, + "acm003956jsd" : { + "type" : "CodePackage", + "id" : "acm003956jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003957jsd" ] + }, + "acm003957jsd" : { + "type" : "CodePackage", + "id" : "acm003957jsd", + "name" : "exporter", + "parentId" : "acm001569jsd", + "content" : [ "acm003953jsd", "acm003962jsd", "acm003974jsd", "acm003985jsd", "acm003995jsd", "acm004006jsd", "acm004015jsd", "acm004023jsd", "acm004042jsd", "acm021615jsd", "acm021625jsd" ] + }, + "acm003958jsd" : { + "type" : "ControlElement", + "id" : "acm003958jsd", + "name" : "CreateModifyExporterDialogView" + }, + "acm003959jsd" : { + "type" : "ControlElement", + "id" : "acm003959jsd", + "name" : "initialize" + }, + "acm003960jsd" : { + "type" : "ControlElement", + "id" : "acm003960jsd", + "name" : "browse" + }, + "acm003961jsd" : { + "type" : "ClassUnit", + "id" : "acm003961jsd", + "name" : "CreateModifyExporterDialogView", + "compilationUnitId" : "acm003953jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm003973jsd", "acm004005jsd", "acm021206jsd" ], + "content" : [ "acm003958jsd", "acm003959jsd", "acm003960jsd" ] + }, + "acm003962jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003962jsd", + "name" : "CreateModifyExporterDialogViewModel", + "parentId" : "acm003957jsd", + "content" : [ "acm003973jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003963jsd" : { + "type" : "CodePackage", + "id" : "acm003963jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003964jsd" ] + }, + "acm003964jsd" : { + "type" : "CodePackage", + "id" : "acm003964jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003965jsd" ] + }, + "acm003965jsd" : { + "type" : "CodePackage", + "id" : "acm003965jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003966jsd" ] + }, + "acm003966jsd" : { + "type" : "CodePackage", + "id" : "acm003966jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm003962jsd" ] + }, + "acm003967jsd" : { + "type" : "ControlElement", + "id" : "acm003967jsd", + "name" : "CreateModifyExporterDialogViewModel" + }, + "acm003968jsd" : { + "type" : "ControlElement", + "id" : "acm003968jsd", + "name" : "saveExporter" + }, + "acm003969jsd" : { + "type" : "ControlElement", + "id" : "acm003969jsd", + "name" : "browse" + }, + "acm003970jsd" : { + "type" : "ControlElement", + "id" : "acm003970jsd", + "name" : "getName" + }, + "acm003971jsd" : { + "type" : "ControlElement", + "id" : "acm003971jsd", + "name" : "getLayoutFileName" + }, + "acm003972jsd" : { + "type" : "ControlElement", + "id" : "acm003972jsd", + "name" : "getExtension" + }, + "acm003973jsd" : { + "type" : "ClassUnit", + "id" : "acm003973jsd", + "name" : "CreateModifyExporterDialogViewModel", + "compilationUnitId" : "acm003962jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm003973jsd", "acm004005jsd", "acm009796jsd", "acm009809jsd", "acm011645jsd", "acm011680jsd", "acm015033jsd", "acm021206jsd" ], + "content" : [ "acm003967jsd", "acm003968jsd", "acm003969jsd", "acm003970jsd", "acm003971jsd", "acm003972jsd" ] + }, + "acm003974jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003974jsd", + "name" : "ExportCommand", + "parentId" : "acm003957jsd", + "content" : [ "acm003983jsd", "acm003984jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003975jsd" : { + "type" : "CodePackage", + "id" : "acm003975jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003976jsd" ] + }, + "acm003976jsd" : { + "type" : "CodePackage", + "id" : "acm003976jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003977jsd" ] + }, + "acm003977jsd" : { + "type" : "CodePackage", + "id" : "acm003977jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003978jsd" ] + }, + "acm003978jsd" : { + "type" : "CodePackage", + "id" : "acm003978jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm003974jsd" ] + }, + "acm003979jsd" : { + "type" : "ControlElement", + "id" : "acm003979jsd", + "name" : "ExportCommand" + }, + "acm003980jsd" : { + "type" : "ControlElement", + "id" : "acm003980jsd", + "name" : "execute" + }, + "acm003981jsd" : { + "type" : "ControlElement", + "id" : "acm003981jsd", + "name" : "export" + }, + "acm003982jsd" : { + "type" : "ControlElement", + "id" : "acm003982jsd", + "name" : "handleError" + }, + "acm003983jsd" : { + "type" : "ClassUnit", + "id" : "acm003983jsd", + "name" : "ExportCommand", + "compilationUnitId" : "acm003974jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm003983jsd", "acm003984jsd", "acm009796jsd", "acm009809jsd", "acm011502jsd", "acm011513jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003979jsd", "acm003980jsd", "acm003981jsd", "acm003982jsd" ] + }, + "acm003984jsd" : { + "type" : "ClassUnit", + "id" : "acm003984jsd", + "name" : "ExportMethod", + "compilationUnitId" : "acm003974jsd", + "parentDatatypeId" : "acm003983jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm003985jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003985jsd", + "name" : "ExportToClipboardAction", + "parentId" : "acm003957jsd", + "content" : [ "acm003994jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003986jsd" : { + "type" : "CodePackage", + "id" : "acm003986jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003987jsd" ] + }, + "acm003987jsd" : { + "type" : "CodePackage", + "id" : "acm003987jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003988jsd" ] + }, + "acm003988jsd" : { + "type" : "CodePackage", + "id" : "acm003988jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003989jsd" ] + }, + "acm003989jsd" : { + "type" : "CodePackage", + "id" : "acm003989jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm003985jsd" ] + }, + "acm003990jsd" : { + "type" : "ControlElement", + "id" : "acm003990jsd", + "name" : "ExportToClipboardAction" + }, + "acm003991jsd" : { + "type" : "ControlElement", + "id" : "acm003991jsd", + "name" : "execute" + }, + "acm003992jsd" : { + "type" : "ControlElement", + "id" : "acm003992jsd", + "name" : "exportToClipboard" + }, + "acm003993jsd" : { + "type" : "ControlElement", + "id" : "acm003993jsd", + "name" : "setContentToClipboard" + }, + "acm003994jsd" : { + "type" : "ClassUnit", + "id" : "acm003994jsd", + "name" : "ExportToClipboardAction", + "compilationUnitId" : "acm003985jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm003994jsd", "acm009965jsd", "acm011502jsd", "acm011513jsd", "acm017320jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm003990jsd", "acm003991jsd", "acm003992jsd", "acm003993jsd" ] + }, + "acm003995jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003995jsd", + "name" : "ExporterViewModel", + "parentId" : "acm003957jsd", + "content" : [ "acm004005jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003996jsd" : { + "type" : "CodePackage", + "id" : "acm003996jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm003997jsd" ] + }, + "acm003997jsd" : { + "type" : "CodePackage", + "id" : "acm003997jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm003998jsd" ] + }, + "acm003998jsd" : { + "type" : "CodePackage", + "id" : "acm003998jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm003999jsd" ] + }, + "acm003999jsd" : { + "type" : "CodePackage", + "id" : "acm003999jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm003995jsd" ] + }, + "acm004000jsd" : { + "type" : "ControlElement", + "id" : "acm004000jsd", + "name" : "ExporterViewModel" + }, + "acm004001jsd" : { + "type" : "ControlElement", + "id" : "acm004001jsd", + "name" : "getLogic" + }, + "acm004002jsd" : { + "type" : "ControlElement", + "id" : "acm004002jsd", + "name" : "name" + }, + "acm004003jsd" : { + "type" : "ControlElement", + "id" : "acm004003jsd", + "name" : "layoutFileName" + }, + "acm004004jsd" : { + "type" : "ControlElement", + "id" : "acm004004jsd", + "name" : "extension" + }, + "acm004005jsd" : { + "type" : "ClassUnit", + "id" : "acm004005jsd", + "name" : "ExporterViewModel", + "compilationUnitId" : "acm003995jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011680jsd" ], + "content" : [ "acm004000jsd", "acm004001jsd", "acm004002jsd", "acm004003jsd", "acm004004jsd" ] + }, + "acm004006jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004006jsd", + "name" : "SaveAction", + "parentId" : "acm003957jsd", + "content" : [ "acm004013jsd", "acm004014jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004007jsd" : { + "type" : "CodePackage", + "id" : "acm004007jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004008jsd" ] + }, + "acm004008jsd" : { + "type" : "CodePackage", + "id" : "acm004008jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004009jsd" ] + }, + "acm004009jsd" : { + "type" : "CodePackage", + "id" : "acm004009jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004010jsd" ] + }, + "acm004010jsd" : { + "type" : "CodePackage", + "id" : "acm004010jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm004006jsd" ] + }, + "acm004011jsd" : { + "type" : "ControlElement", + "id" : "acm004011jsd", + "name" : "SaveAction" + }, + "acm004012jsd" : { + "type" : "ControlElement", + "id" : "acm004012jsd", + "name" : "execute" + }, + "acm004013jsd" : { + "type" : "ClassUnit", + "id" : "acm004013jsd", + "name" : "SaveAction", + "compilationUnitId" : "acm004006jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd", "acm004014jsd", "acm004040jsd", "acm021206jsd" ], + "content" : [ "acm004011jsd", "acm004012jsd" ] + }, + "acm004014jsd" : { + "type" : "ClassUnit", + "id" : "acm004014jsd", + "name" : "SaveMethod", + "compilationUnitId" : "acm004006jsd", + "parentDatatypeId" : "acm004013jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004015jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004015jsd", + "name" : "SaveAllAction", + "parentId" : "acm003957jsd", + "content" : [ "acm004022jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004016jsd" : { + "type" : "CodePackage", + "id" : "acm004016jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004017jsd" ] + }, + "acm004017jsd" : { + "type" : "CodePackage", + "id" : "acm004017jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004018jsd" ] + }, + "acm004018jsd" : { + "type" : "CodePackage", + "id" : "acm004018jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004019jsd" ] + }, + "acm004019jsd" : { + "type" : "CodePackage", + "id" : "acm004019jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm004015jsd" ] + }, + "acm004020jsd" : { + "type" : "ControlElement", + "id" : "acm004020jsd", + "name" : "SaveAllAction" + }, + "acm004021jsd" : { + "type" : "ControlElement", + "id" : "acm004021jsd", + "name" : "execute" + }, + "acm004022jsd" : { + "type" : "ClassUnit", + "id" : "acm004022jsd", + "name" : "SaveAllAction", + "compilationUnitId" : "acm004015jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm004040jsd", "acm021206jsd" ], + "content" : [ "acm004020jsd", "acm004021jsd" ] + }, + "acm004023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004023jsd", + "name" : "SaveDatabaseAction", + "parentId" : "acm003957jsd", + "content" : [ "acm004040jsd", "acm004041jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004024jsd" : { + "type" : "CodePackage", + "id" : "acm004024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004025jsd" ] + }, + "acm004025jsd" : { + "type" : "CodePackage", + "id" : "acm004025jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004026jsd" ] + }, + "acm004026jsd" : { + "type" : "CodePackage", + "id" : "acm004026jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004027jsd" ] + }, + "acm004027jsd" : { + "type" : "CodePackage", + "id" : "acm004027jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm004023jsd" ] + }, + "acm004028jsd" : { + "type" : "ControlElement", + "id" : "acm004028jsd", + "name" : "SaveDatabaseAction" + }, + "acm004029jsd" : { + "type" : "ControlElement", + "id" : "acm004029jsd", + "name" : "save" + }, + "acm004030jsd" : { + "type" : "ControlElement", + "id" : "acm004030jsd", + "name" : "save" + }, + "acm004031jsd" : { + "type" : "ControlElement", + "id" : "acm004031jsd", + "name" : "saveAs" + }, + "acm004032jsd" : { + "type" : "ControlElement", + "id" : "acm004032jsd", + "name" : "saveAs" + }, + "acm004033jsd" : { + "type" : "ControlElement", + "id" : "acm004033jsd", + "name" : "saveSelectedAsPlain" + }, + "acm004034jsd" : { + "type" : "ControlElement", + "id" : "acm004034jsd", + "name" : "saveAs" + }, + "acm004035jsd" : { + "type" : "ControlElement", + "id" : "acm004035jsd", + "name" : "askForSavePath" + }, + "acm004036jsd" : { + "type" : "ControlElement", + "id" : "acm004036jsd", + "name" : "save" + }, + "acm004037jsd" : { + "type" : "ControlElement", + "id" : "acm004037jsd", + "name" : "save" + }, + "acm004038jsd" : { + "type" : "ControlElement", + "id" : "acm004038jsd", + "name" : "saveDatabase" + }, + "acm004039jsd" : { + "type" : "ControlElement", + "id" : "acm004039jsd", + "name" : "saveWithDifferentEncoding" + }, + "acm004040jsd" : { + "type" : "ClassUnit", + "id" : "acm004040jsd", + "name" : "SaveDatabaseAction", + "compilationUnitId" : "acm004023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm004040jsd", "acm004041jsd", "acm009796jsd", "acm009809jsd", "acm011415jsd", "acm011444jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm011663jsd", "acm017193jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm004028jsd", "acm004029jsd", "acm004030jsd", "acm004031jsd", "acm004032jsd", "acm004033jsd", "acm004034jsd", "acm004035jsd", "acm004036jsd", "acm004037jsd", "acm004038jsd", "acm004039jsd" ] + }, + "acm004041jsd" : { + "type" : "ClassUnit", + "id" : "acm004041jsd", + "name" : "SaveDatabaseMode", + "compilationUnitId" : "acm004023jsd", + "parentDatatypeId" : "acm004040jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004042jsd", + "name" : "WriteMetadataToPdfAction", + "parentId" : "acm003957jsd", + "content" : [ "acm004058jsd", "acm004065jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004043jsd" : { + "type" : "CodePackage", + "id" : "acm004043jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004044jsd" ] + }, + "acm004044jsd" : { + "type" : "CodePackage", + "id" : "acm004044jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004045jsd" ] + }, + "acm004045jsd" : { + "type" : "CodePackage", + "id" : "acm004045jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004046jsd" ] + }, + "acm004046jsd" : { + "type" : "CodePackage", + "id" : "acm004046jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm004042jsd" ] + }, + "acm004047jsd" : { + "type" : "ControlElement", + "id" : "acm004047jsd", + "name" : "WriteMetadataToPdfAction" + }, + "acm004048jsd" : { + "type" : "ControlElement", + "id" : "acm004048jsd", + "name" : "execute" + }, + "acm004049jsd" : { + "type" : "ControlElement", + "id" : "acm004049jsd", + "name" : "init" + }, + "acm004050jsd" : { + "type" : "ControlElement", + "id" : "acm004050jsd", + "name" : "writeMetadata" + }, + "acm004051jsd" : { + "type" : "ControlElement", + "id" : "acm004051jsd", + "name" : "writeMetadataToFile" + }, + "acm004052jsd" : { + "type" : "ControlElement", + "id" : "acm004052jsd", + "name" : "OptionsDialog" + }, + "acm004053jsd" : { + "type" : "ControlElement", + "id" : "acm004053jsd", + "name" : "dispose" + }, + "acm004054jsd" : { + "type" : "ControlElement", + "id" : "acm004054jsd", + "name" : "done" + }, + "acm004055jsd" : { + "type" : "ControlElement", + "id" : "acm004055jsd", + "name" : "open" + }, + "acm004056jsd" : { + "type" : "ControlElement", + "id" : "acm004056jsd", + "name" : "isCanceled" + }, + "acm004057jsd" : { + "type" : "ControlElement", + "id" : "acm004057jsd", + "name" : "getProgressArea" + }, + "acm004058jsd" : { + "type" : "ClassUnit", + "id" : "acm004058jsd", + "name" : "WriteMetadataToPdfAction", + "compilationUnitId" : "acm004042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001700jsd", "acm002045jsd", "acm004065jsd", "acm009965jsd", "acm010497jsd", "acm011487jsd", "acm017745jsd", "acm017781jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm020848jsd" ], + "content" : [ "acm004047jsd", "acm004048jsd", "acm004049jsd", "acm004050jsd", "acm004051jsd", "acm004052jsd", "acm004053jsd", "acm004054jsd", "acm004055jsd", "acm004056jsd", "acm004057jsd" ] + }, + "acm004059jsd" : { + "type" : "ControlElement", + "id" : "acm004059jsd", + "name" : "OptionsDialog" + }, + "acm004060jsd" : { + "type" : "ControlElement", + "id" : "acm004060jsd", + "name" : "dispose" + }, + "acm004061jsd" : { + "type" : "ControlElement", + "id" : "acm004061jsd", + "name" : "done" + }, + "acm004062jsd" : { + "type" : "ControlElement", + "id" : "acm004062jsd", + "name" : "open" + }, + "acm004063jsd" : { + "type" : "ControlElement", + "id" : "acm004063jsd", + "name" : "isCanceled" + }, + "acm004064jsd" : { + "type" : "ControlElement", + "id" : "acm004064jsd", + "name" : "getProgressArea" + }, + "acm004065jsd" : { + "type" : "ClassUnit", + "id" : "acm004065jsd", + "name" : "OptionsDialog", + "compilationUnitId" : "acm004042jsd", + "parentDatatypeId" : "acm004058jsd", + "extendedDataTypesIds" : [ "acm001700jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004059jsd", "acm004060jsd", "acm004061jsd", "acm004062jsd", "acm004063jsd", "acm004064jsd" ] + }, + "acm004066jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004066jsd", + "name" : "AutoLinkFilesAction", + "parentId" : "acm004070jsd", + "content" : [ "acm004075jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004067jsd" : { + "type" : "CodePackage", + "id" : "acm004067jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004068jsd" ] + }, + "acm004068jsd" : { + "type" : "CodePackage", + "id" : "acm004068jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004069jsd" ] + }, + "acm004069jsd" : { + "type" : "CodePackage", + "id" : "acm004069jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004070jsd" ] + }, + "acm004070jsd" : { + "type" : "CodePackage", + "id" : "acm004070jsd", + "name" : "externalfiles", + "parentId" : "acm001569jsd", + "content" : [ "acm004066jsd", "acm004076jsd", "acm004095jsd", "acm004103jsd", "acm004111jsd", "acm004122jsd", "acm004130jsd", "acm004143jsd", "acm004151jsd", "acm004161jsd", "acm004176jsd", "acm004184jsd", "acm004192jsd", "acm004203jsd", "acm004224jsd", "acm004233jsd", "acm004256jsd", "acm004283jsd", "acm021638jsd", "acm021647jsd", "acm021675jsd", "acm021685jsd", "acm021692jsd" ] + }, + "acm004071jsd" : { + "type" : "ControlElement", + "id" : "acm004071jsd", + "name" : "AutoLinkFilesAction" + }, + "acm004072jsd" : { + "type" : "ControlElement", + "id" : "acm004072jsd", + "name" : "execute" + }, + "acm004073jsd" : { + "type" : "ControlElement", + "id" : "acm004073jsd", + "name" : "call" + }, + "acm004074jsd" : { + "type" : "ControlElement", + "id" : "acm004074jsd", + "name" : "succeeded" + }, + "acm004075jsd" : { + "type" : "ClassUnit", + "id" : "acm004075jsd", + "name" : "AutoLinkFilesAction", + "compilationUnitId" : "acm004066jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004089jsd", "acm004094jsd", "acm009381jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm004071jsd", "acm004072jsd", "acm004073jsd", "acm004074jsd" ] + }, + "acm004076jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004076jsd", + "name" : "AutoSetFileLinksUtil", + "parentId" : "acm004070jsd", + "content" : [ "acm004089jsd", "acm004094jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004077jsd" : { + "type" : "CodePackage", + "id" : "acm004077jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004078jsd" ] + }, + "acm004078jsd" : { + "type" : "CodePackage", + "id" : "acm004078jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004079jsd" ] + }, + "acm004079jsd" : { + "type" : "CodePackage", + "id" : "acm004079jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004080jsd" ] + }, + "acm004080jsd" : { + "type" : "CodePackage", + "id" : "acm004080jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004076jsd" ] + }, + "acm004081jsd" : { + "type" : "ControlElement", + "id" : "acm004081jsd", + "name" : "addBibEntry" + }, + "acm004082jsd" : { + "type" : "ControlElement", + "id" : "acm004082jsd", + "name" : "addFileException" + }, + "acm004083jsd" : { + "type" : "ControlElement", + "id" : "acm004083jsd", + "name" : "getChangedEntries" + }, + "acm004084jsd" : { + "type" : "ControlElement", + "id" : "acm004084jsd", + "name" : "getFileExceptions" + }, + "acm004085jsd" : { + "type" : "ControlElement", + "id" : "acm004085jsd", + "name" : "AutoSetFileLinksUtil" + }, + "acm004086jsd" : { + "type" : "ControlElement", + "id" : "acm004086jsd", + "name" : "AutoSetFileLinksUtil" + }, + "acm004087jsd" : { + "type" : "ControlElement", + "id" : "acm004087jsd", + "name" : "linkAssociatedFiles" + }, + "acm004088jsd" : { + "type" : "ControlElement", + "id" : "acm004088jsd", + "name" : "findAssociatedNotLinkedFiles" + }, + "acm004089jsd" : { + "type" : "ClassUnit", + "id" : "acm004089jsd", + "name" : "AutoSetFileLinksUtil", + "compilationUnitId" : "acm004076jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004089jsd", "acm004094jsd", "acm004328jsd", "acm004370jsd", "acm009381jsd", "acm009411jsd", "acm017440jsd", "acm017483jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm004081jsd", "acm004082jsd", "acm004083jsd", "acm004084jsd", "acm004085jsd", "acm004086jsd", "acm004087jsd", "acm004088jsd" ] + }, + "acm004090jsd" : { + "type" : "ControlElement", + "id" : "acm004090jsd", + "name" : "addBibEntry" + }, + "acm004091jsd" : { + "type" : "ControlElement", + "id" : "acm004091jsd", + "name" : "addFileException" + }, + "acm004092jsd" : { + "type" : "ControlElement", + "id" : "acm004092jsd", + "name" : "getChangedEntries" + }, + "acm004093jsd" : { + "type" : "ControlElement", + "id" : "acm004093jsd", + "name" : "getFileExceptions" + }, + "acm004094jsd" : { + "type" : "ClassUnit", + "id" : "acm004094jsd", + "name" : "LinkFilesResult", + "compilationUnitId" : "acm004076jsd", + "parentDatatypeId" : "acm004089jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm004090jsd", "acm004091jsd", "acm004092jsd", "acm004093jsd" ] + }, + "acm004095jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004095jsd", + "name" : "ChainedFilters", + "parentId" : "acm004070jsd", + "content" : [ "acm004102jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004096jsd" : { + "type" : "CodePackage", + "id" : "acm004096jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004097jsd" ] + }, + "acm004097jsd" : { + "type" : "CodePackage", + "id" : "acm004097jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004098jsd" ] + }, + "acm004098jsd" : { + "type" : "CodePackage", + "id" : "acm004098jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004099jsd" ] + }, + "acm004099jsd" : { + "type" : "CodePackage", + "id" : "acm004099jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004095jsd" ] + }, + "acm004100jsd" : { + "type" : "ControlElement", + "id" : "acm004100jsd", + "name" : "ChainedFilters" + }, + "acm004101jsd" : { + "type" : "ControlElement", + "id" : "acm004101jsd", + "name" : "accept" + }, + "acm004102jsd" : { + "type" : "ClassUnit", + "id" : "acm004102jsd", + "name" : "ChainedFilters", + "compilationUnitId" : "acm004095jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004102jsd" ], + "content" : [ "acm004100jsd", "acm004101jsd" ] + }, + "acm004103jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004103jsd", + "name" : "DateRange", + "parentId" : "acm004070jsd", + "content" : [ "acm004110jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004104jsd" : { + "type" : "CodePackage", + "id" : "acm004104jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004105jsd" ] + }, + "acm004105jsd" : { + "type" : "CodePackage", + "id" : "acm004105jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004106jsd" ] + }, + "acm004106jsd" : { + "type" : "CodePackage", + "id" : "acm004106jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004107jsd" ] + }, + "acm004107jsd" : { + "type" : "CodePackage", + "id" : "acm004107jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004103jsd" ] + }, + "acm004108jsd" : { + "type" : "ControlElement", + "id" : "acm004108jsd", + "name" : "DateRange" + }, + "acm004109jsd" : { + "type" : "ControlElement", + "id" : "acm004109jsd", + "name" : "getDateRange" + }, + "acm004110jsd" : { + "type" : "ClassUnit", + "id" : "acm004110jsd", + "name" : "DateRange", + "compilationUnitId" : "acm004103jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004108jsd", "acm004109jsd" ] + }, + "acm004111jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004111jsd", + "name" : "DownloadFullTextAction", + "parentId" : "acm004070jsd", + "content" : [ "acm004121jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004112jsd" : { + "type" : "CodePackage", + "id" : "acm004112jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004113jsd" ] + }, + "acm004113jsd" : { + "type" : "CodePackage", + "id" : "acm004113jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004114jsd" ] + }, + "acm004114jsd" : { + "type" : "CodePackage", + "id" : "acm004114jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004115jsd" ] + }, + "acm004115jsd" : { + "type" : "CodePackage", + "id" : "acm004115jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004111jsd" ] + }, + "acm004116jsd" : { + "type" : "ControlElement", + "id" : "acm004116jsd", + "name" : "DownloadFullTextAction" + }, + "acm004117jsd" : { + "type" : "ControlElement", + "id" : "acm004117jsd", + "name" : "execute" + }, + "acm004118jsd" : { + "type" : "ControlElement", + "id" : "acm004118jsd", + "name" : "call" + }, + "acm004119jsd" : { + "type" : "ControlElement", + "id" : "acm004119jsd", + "name" : "downloadFullTexts" + }, + "acm004120jsd" : { + "type" : "ControlElement", + "id" : "acm004120jsd", + "name" : "addLinkedFileFromURL" + }, + "acm004121jsd" : { + "type" : "ClassUnit", + "id" : "acm004121jsd", + "name" : "DownloadFullTextAction", + "compilationUnitId" : "acm004111jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004121jsd", "acm004599jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm004116jsd", "acm004117jsd", "acm004118jsd", "acm004119jsd", "acm004120jsd" ] + }, + "acm004122jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004122jsd", + "name" : "ExternalFileSorter", + "parentId" : "acm004070jsd", + "content" : [ "acm004129jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004123jsd" : { + "type" : "CodePackage", + "id" : "acm004123jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004124jsd" ] + }, + "acm004124jsd" : { + "type" : "CodePackage", + "id" : "acm004124jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004125jsd" ] + }, + "acm004125jsd" : { + "type" : "CodePackage", + "id" : "acm004125jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004126jsd" ] + }, + "acm004126jsd" : { + "type" : "CodePackage", + "id" : "acm004126jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004122jsd" ] + }, + "acm004127jsd" : { + "type" : "ControlElement", + "id" : "acm004127jsd", + "name" : "ExternalFileSorter" + }, + "acm004128jsd" : { + "type" : "ControlElement", + "id" : "acm004128jsd", + "name" : "getSorter" + }, + "acm004129jsd" : { + "type" : "ClassUnit", + "id" : "acm004129jsd", + "name" : "ExternalFileSorter", + "compilationUnitId" : "acm004122jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004127jsd", "acm004128jsd" ] + }, + "acm004130jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004130jsd", + "name" : "ExternalFilesEntryLinker", + "parentId" : "acm004070jsd", + "content" : [ "acm004142jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004131jsd" : { + "type" : "CodePackage", + "id" : "acm004131jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004132jsd" ] + }, + "acm004132jsd" : { + "type" : "CodePackage", + "id" : "acm004132jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004133jsd" ] + }, + "acm004133jsd" : { + "type" : "CodePackage", + "id" : "acm004133jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004134jsd" ] + }, + "acm004134jsd" : { + "type" : "CodePackage", + "id" : "acm004134jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004130jsd" ] + }, + "acm004135jsd" : { + "type" : "ControlElement", + "id" : "acm004135jsd", + "name" : "ExternalFilesEntryLinker" + }, + "acm004136jsd" : { + "type" : "ControlElement", + "id" : "acm004136jsd", + "name" : "copyFileToFileDir" + }, + "acm004137jsd" : { + "type" : "ControlElement", + "id" : "acm004137jsd", + "name" : "renameLinkedFilesToPattern" + }, + "acm004138jsd" : { + "type" : "ControlElement", + "id" : "acm004138jsd", + "name" : "moveLinkedFilesToFileDir" + }, + "acm004139jsd" : { + "type" : "ControlElement", + "id" : "acm004139jsd", + "name" : "addFilesToEntry" + }, + "acm004140jsd" : { + "type" : "ControlElement", + "id" : "acm004140jsd", + "name" : "moveFilesToFileDirAndAddToEntry" + }, + "acm004141jsd" : { + "type" : "ControlElement", + "id" : "acm004141jsd", + "name" : "copyFilesToFileDirAndAddToEntry" + }, + "acm004142jsd" : { + "type" : "ClassUnit", + "id" : "acm004142jsd", + "name" : "ExternalFilesEntryLinker", + "compilationUnitId" : "acm004130jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004142jsd", "acm011231jsd", "acm011247jsd", "acm016548jsd", "acm018022jsd", "acm018267jsd", "acm020848jsd" ], + "content" : [ "acm004135jsd", "acm004136jsd", "acm004137jsd", "acm004138jsd", "acm004139jsd", "acm004140jsd", "acm004141jsd" ] + }, + "acm004143jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004143jsd", + "name" : "FileDownloadTask", + "parentId" : "acm004070jsd", + "content" : [ "acm004150jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004144jsd" : { + "type" : "CodePackage", + "id" : "acm004144jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004145jsd" ] + }, + "acm004145jsd" : { + "type" : "CodePackage", + "id" : "acm004145jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004146jsd" ] + }, + "acm004146jsd" : { + "type" : "CodePackage", + "id" : "acm004146jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004147jsd" ] + }, + "acm004147jsd" : { + "type" : "CodePackage", + "id" : "acm004147jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004143jsd" ] + }, + "acm004148jsd" : { + "type" : "ControlElement", + "id" : "acm004148jsd", + "name" : "FileDownloadTask" + }, + "acm004149jsd" : { + "type" : "ControlElement", + "id" : "acm004149jsd", + "name" : "call" + }, + "acm004150jsd" : { + "type" : "ClassUnit", + "id" : "acm004150jsd", + "name" : "FileDownloadTask", + "compilationUnitId" : "acm004143jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015851jsd", "acm015926jsd" ], + "content" : [ "acm004148jsd", "acm004149jsd" ] + }, + "acm004151jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004151jsd", + "name" : "FileExtensionViewModel", + "parentId" : "acm004070jsd", + "content" : [ "acm004160jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004152jsd" : { + "type" : "CodePackage", + "id" : "acm004152jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004153jsd" ] + }, + "acm004153jsd" : { + "type" : "CodePackage", + "id" : "acm004153jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004154jsd" ] + }, + "acm004154jsd" : { + "type" : "CodePackage", + "id" : "acm004154jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004155jsd" ] + }, + "acm004155jsd" : { + "type" : "CodePackage", + "id" : "acm004155jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004151jsd" ] + }, + "acm004156jsd" : { + "type" : "ControlElement", + "id" : "acm004156jsd", + "name" : "FileExtensionViewModel" + }, + "acm004157jsd" : { + "type" : "ControlElement", + "id" : "acm004157jsd", + "name" : "getDescription" + }, + "acm004158jsd" : { + "type" : "ControlElement", + "id" : "acm004158jsd", + "name" : "getIcon" + }, + "acm004159jsd" : { + "type" : "ControlElement", + "id" : "acm004159jsd", + "name" : "dirFilter" + }, + "acm004160jsd" : { + "type" : "ClassUnit", + "id" : "acm004160jsd", + "name" : "FileExtensionViewModel", + "compilationUnitId" : "acm004151jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm017320jsd", "acm020848jsd" ], + "content" : [ "acm004156jsd", "acm004157jsd", "acm004158jsd", "acm004159jsd" ] + }, + "acm004161jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004161jsd", + "name" : "FileFilterUtils", + "parentId" : "acm004070jsd", + "content" : [ "acm004175jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004162jsd" : { + "type" : "CodePackage", + "id" : "acm004162jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004163jsd" ] + }, + "acm004163jsd" : { + "type" : "CodePackage", + "id" : "acm004163jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004164jsd" ] + }, + "acm004164jsd" : { + "type" : "CodePackage", + "id" : "acm004164jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004165jsd" ] + }, + "acm004165jsd" : { + "type" : "CodePackage", + "id" : "acm004165jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004161jsd" ] + }, + "acm004166jsd" : { + "type" : "ControlElement", + "id" : "acm004166jsd", + "name" : "getFileTime" + }, + "acm004167jsd" : { + "type" : "ControlElement", + "id" : "acm004167jsd", + "name" : "isDuringLastDay" + }, + "acm004168jsd" : { + "type" : "ControlElement", + "id" : "acm004168jsd", + "name" : "isDuringLastWeek" + }, + "acm004169jsd" : { + "type" : "ControlElement", + "id" : "acm004169jsd", + "name" : "isDuringLastMonth" + }, + "acm004170jsd" : { + "type" : "ControlElement", + "id" : "acm004170jsd", + "name" : "isDuringLastYear" + }, + "acm004171jsd" : { + "type" : "ControlElement", + "id" : "acm004171jsd", + "name" : "filterByDate" + }, + "acm004172jsd" : { + "type" : "ControlElement", + "id" : "acm004172jsd", + "name" : "sortByDateAscending" + }, + "acm004173jsd" : { + "type" : "ControlElement", + "id" : "acm004173jsd", + "name" : "sortByDateDescending" + }, + "acm004174jsd" : { + "type" : "ControlElement", + "id" : "acm004174jsd", + "name" : "sortByDate" + }, + "acm004175jsd" : { + "type" : "ClassUnit", + "id" : "acm004175jsd", + "name" : "FileFilterUtils", + "compilationUnitId" : "acm004161jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004110jsd", "acm004129jsd", "acm004175jsd" ], + "content" : [ "acm004166jsd", "acm004167jsd", "acm004168jsd", "acm004169jsd", "acm004170jsd", "acm004171jsd", "acm004172jsd", "acm004173jsd", "acm004174jsd" ] + }, + "acm004176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004176jsd", + "name" : "FindUnlinkedFilesAction", + "parentId" : "acm004070jsd", + "content" : [ "acm004183jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004177jsd" : { + "type" : "CodePackage", + "id" : "acm004177jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004178jsd" ] + }, + "acm004178jsd" : { + "type" : "CodePackage", + "id" : "acm004178jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004179jsd" ] + }, + "acm004179jsd" : { + "type" : "CodePackage", + "id" : "acm004179jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004180jsd" ] + }, + "acm004180jsd" : { + "type" : "CodePackage", + "id" : "acm004180jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004176jsd" ] + }, + "acm004181jsd" : { + "type" : "ControlElement", + "id" : "acm004181jsd", + "name" : "FindUnlinkedFilesAction" + }, + "acm004182jsd" : { + "type" : "ControlElement", + "id" : "acm004182jsd", + "name" : "execute" + }, + "acm004183jsd" : { + "type" : "ClassUnit", + "id" : "acm004183jsd", + "name" : "FindUnlinkedFilesAction", + "compilationUnitId" : "acm004176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004252jsd" ], + "content" : [ "acm004181jsd", "acm004182jsd" ] + }, + "acm004184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004184jsd", + "name" : "GitIgnoreFileFilter", + "parentId" : "acm004070jsd", + "content" : [ "acm004191jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004185jsd" : { + "type" : "CodePackage", + "id" : "acm004185jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004186jsd" ] + }, + "acm004186jsd" : { + "type" : "CodePackage", + "id" : "acm004186jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004187jsd" ] + }, + "acm004187jsd" : { + "type" : "CodePackage", + "id" : "acm004187jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004188jsd" ] + }, + "acm004188jsd" : { + "type" : "CodePackage", + "id" : "acm004188jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004184jsd" ] + }, + "acm004189jsd" : { + "type" : "ControlElement", + "id" : "acm004189jsd", + "name" : "GitIgnoreFileFilter" + }, + "acm004190jsd" : { + "type" : "ControlElement", + "id" : "acm004190jsd", + "name" : "accept" + }, + "acm004191jsd" : { + "type" : "ClassUnit", + "id" : "acm004191jsd", + "name" : "GitIgnoreFileFilter", + "compilationUnitId" : "acm004184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004191jsd" ], + "content" : [ "acm004189jsd", "acm004190jsd" ] + }, + "acm004192jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004192jsd", + "name" : "ImportFilesResultItemViewModel", + "parentId" : "acm004070jsd", + "content" : [ "acm004202jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004193jsd" : { + "type" : "CodePackage", + "id" : "acm004193jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004194jsd" ] + }, + "acm004194jsd" : { + "type" : "CodePackage", + "id" : "acm004194jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004195jsd" ] + }, + "acm004195jsd" : { + "type" : "CodePackage", + "id" : "acm004195jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004196jsd" ] + }, + "acm004196jsd" : { + "type" : "CodePackage", + "id" : "acm004196jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004192jsd" ] + }, + "acm004197jsd" : { + "type" : "ControlElement", + "id" : "acm004197jsd", + "name" : "ImportFilesResultItemViewModel" + }, + "acm004198jsd" : { + "type" : "ControlElement", + "id" : "acm004198jsd", + "name" : "icon" + }, + "acm004199jsd" : { + "type" : "ControlElement", + "id" : "acm004199jsd", + "name" : "file" + }, + "acm004200jsd" : { + "type" : "ControlElement", + "id" : "acm004200jsd", + "name" : "message" + }, + "acm004201jsd" : { + "type" : "ControlElement", + "id" : "acm004201jsd", + "name" : "toString" + }, + "acm004202jsd" : { + "type" : "ClassUnit", + "id" : "acm004202jsd", + "name" : "ImportFilesResultItemViewModel", + "compilationUnitId" : "acm004192jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm004197jsd", "acm004198jsd", "acm004199jsd", "acm004200jsd", "acm004201jsd" ] + }, + "acm004203jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004203jsd", + "name" : "ImportHandler", + "parentId" : "acm004070jsd", + "content" : [ "acm004223jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004204jsd" : { + "type" : "CodePackage", + "id" : "acm004204jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004205jsd" ] + }, + "acm004205jsd" : { + "type" : "CodePackage", + "id" : "acm004205jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004206jsd" ] + }, + "acm004206jsd" : { + "type" : "CodePackage", + "id" : "acm004206jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004207jsd" ] + }, + "acm004207jsd" : { + "type" : "CodePackage", + "id" : "acm004207jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004203jsd" ] + }, + "acm004208jsd" : { + "type" : "ControlElement", + "id" : "acm004208jsd", + "name" : "ImportHandler" + }, + "acm004209jsd" : { + "type" : "ControlElement", + "id" : "acm004209jsd", + "name" : "getLinker" + }, + "acm004210jsd" : { + "type" : "ControlElement", + "id" : "acm004210jsd", + "name" : "importFilesInBackground" + }, + "acm004211jsd" : { + "type" : "ControlElement", + "id" : "acm004211jsd", + "name" : "call" + }, + "acm004212jsd" : { + "type" : "ControlElement", + "id" : "acm004212jsd", + "name" : "addResultToList" + }, + "acm004213jsd" : { + "type" : "ControlElement", + "id" : "acm004213jsd", + "name" : "createEmptyEntryWithLink" + }, + "acm004214jsd" : { + "type" : "ControlElement", + "id" : "acm004214jsd", + "name" : "importEntries" + }, + "acm004215jsd" : { + "type" : "ControlElement", + "id" : "acm004215jsd", + "name" : "importEntryWithDuplicateCheck" + }, + "acm004216jsd" : { + "type" : "ControlElement", + "id" : "acm004216jsd", + "name" : "addToGroups" + }, + "acm004217jsd" : { + "type" : "ControlElement", + "id" : "acm004217jsd", + "name" : "generateKeys" + }, + "acm004218jsd" : { + "type" : "ControlElement", + "id" : "acm004218jsd", + "name" : "handleBibTeXData" + }, + "acm004219jsd" : { + "type" : "ControlElement", + "id" : "acm004219jsd", + "name" : "handleStringData" + }, + "acm004220jsd" : { + "type" : "ControlElement", + "id" : "acm004220jsd", + "name" : "tryImportFormats" + }, + "acm004221jsd" : { + "type" : "ControlElement", + "id" : "acm004221jsd", + "name" : "fetchByDOI" + }, + "acm004222jsd" : { + "type" : "ControlElement", + "id" : "acm004222jsd", + "name" : "fetchByArXiv" + }, + "acm004223jsd" : { + "type" : "ClassUnit", + "id" : "acm004223jsd", + "name" : "ImportHandler", + "compilationUnitId" : "acm004203jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003250jsd", "acm004142jsd", "acm004202jsd", "acm004223jsd", "acm009423jsd", "acm009965jsd", "acm010959jsd", "acm011386jsd", "acm011706jsd", "acm012314jsd", "acm012398jsd", "acm012407jsd", "acm012428jsd", "acm012430jsd", "acm012515jsd", "acm012702jsd", "acm013001jsd", "acm013761jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm018843jsd", "acm018865jsd", "acm019181jsd", "acm019221jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm004208jsd", "acm004209jsd", "acm004210jsd", "acm004211jsd", "acm004212jsd", "acm004213jsd", "acm004214jsd", "acm004215jsd", "acm004216jsd", "acm004217jsd", "acm004218jsd", "acm004219jsd", "acm004220jsd", "acm004221jsd", "acm004222jsd" ] + }, + "acm004224jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004224jsd", + "name" : "UnlinkedFilesCrawler", + "parentId" : "acm004070jsd", + "content" : [ "acm004232jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004225jsd" : { + "type" : "CodePackage", + "id" : "acm004225jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004226jsd" ] + }, + "acm004226jsd" : { + "type" : "CodePackage", + "id" : "acm004226jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004227jsd" ] + }, + "acm004227jsd" : { + "type" : "CodePackage", + "id" : "acm004227jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004228jsd" ] + }, + "acm004228jsd" : { + "type" : "CodePackage", + "id" : "acm004228jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004224jsd" ] + }, + "acm004229jsd" : { + "type" : "ControlElement", + "id" : "acm004229jsd", + "name" : "UnlinkedFilesCrawler" + }, + "acm004230jsd" : { + "type" : "ControlElement", + "id" : "acm004230jsd", + "name" : "call" + }, + "acm004231jsd" : { + "type" : "ControlElement", + "id" : "acm004231jsd", + "name" : "searchDirectory" + }, + "acm004232jsd" : { + "type" : "ClassUnit", + "id" : "acm004232jsd", + "name" : "UnlinkedFilesCrawler", + "compilationUnitId" : "acm004224jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009536jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004102jsd", "acm004110jsd", "acm004129jsd", "acm004191jsd", "acm004232jsd", "acm004290jsd", "acm009843jsd", "acm018022jsd", "acm020848jsd" ], + "content" : [ "acm004229jsd", "acm004230jsd", "acm004231jsd" ] + }, + "acm004233jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004233jsd", + "name" : "UnlinkedFilesDialogView", + "parentId" : "acm004070jsd", + "content" : [ "acm004252jsd", "acm004255jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004234jsd" : { + "type" : "CodePackage", + "id" : "acm004234jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004235jsd" ] + }, + "acm004235jsd" : { + "type" : "CodePackage", + "id" : "acm004235jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004236jsd" ] + }, + "acm004236jsd" : { + "type" : "CodePackage", + "id" : "acm004236jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004237jsd" ] + }, + "acm004237jsd" : { + "type" : "CodePackage", + "id" : "acm004237jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004233jsd" ] + }, + "acm004238jsd" : { + "type" : "ControlElement", + "id" : "acm004238jsd", + "name" : "UnlinkedFilesDialogView" + }, + "acm004239jsd" : { + "type" : "ControlElement", + "id" : "acm004239jsd", + "name" : "initialize" + }, + "acm004240jsd" : { + "type" : "ControlElement", + "id" : "acm004240jsd", + "name" : "initDirectorySelection" + }, + "acm004241jsd" : { + "type" : "ControlElement", + "id" : "acm004241jsd", + "name" : "initUnlinkedFilesList" + }, + "acm004242jsd" : { + "type" : "ControlElement", + "id" : "acm004242jsd", + "name" : "initResultTable" + }, + "acm004243jsd" : { + "type" : "ControlElement", + "id" : "acm004243jsd", + "name" : "initButtons" + }, + "acm004244jsd" : { + "type" : "ControlElement", + "id" : "acm004244jsd", + "name" : "browseFileDirectory" + }, + "acm004245jsd" : { + "type" : "ControlElement", + "id" : "acm004245jsd", + "name" : "scanFiles" + }, + "acm004246jsd" : { + "type" : "ControlElement", + "id" : "acm004246jsd", + "name" : "startImport" + }, + "acm004247jsd" : { + "type" : "ControlElement", + "id" : "acm004247jsd", + "name" : "exportSelected" + }, + "acm004248jsd" : { + "type" : "ControlElement", + "id" : "acm004248jsd", + "name" : "expandTree" + }, + "acm004249jsd" : { + "type" : "ControlElement", + "id" : "acm004249jsd", + "name" : "createSearchContextMenu" + }, + "acm004250jsd" : { + "type" : "ControlElement", + "id" : "acm004250jsd", + "name" : "SearchContextAction" + }, + "acm004251jsd" : { + "type" : "ControlElement", + "id" : "acm004251jsd", + "name" : "execute" + }, + "acm004252jsd" : { + "type" : "ClassUnit", + "id" : "acm004252jsd", + "name" : "UnlinkedFilesDialogView", + "compilationUnitId" : "acm004233jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm004110jsd", "acm004129jsd", "acm004160jsd", "acm004202jsd", "acm004255jsd", "acm004282jsd", "acm005416jsd", "acm009346jsd", "acm009843jsd", "acm009856jsd", "acm009965jsd", "acm010025jsd", "acm010051jsd", "acm010100jsd", "acm012428jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm004238jsd", "acm004239jsd", "acm004240jsd", "acm004241jsd", "acm004242jsd", "acm004243jsd", "acm004244jsd", "acm004245jsd", "acm004246jsd", "acm004247jsd", "acm004248jsd", "acm004249jsd", "acm004250jsd", "acm004251jsd" ] + }, + "acm004253jsd" : { + "type" : "ControlElement", + "id" : "acm004253jsd", + "name" : "SearchContextAction" + }, + "acm004254jsd" : { + "type" : "ControlElement", + "id" : "acm004254jsd", + "name" : "execute" + }, + "acm004255jsd" : { + "type" : "ClassUnit", + "id" : "acm004255jsd", + "name" : "SearchContextAction", + "compilationUnitId" : "acm004233jsd", + "parentDatatypeId" : "acm004252jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd" ], + "content" : [ "acm004253jsd", "acm004254jsd" ] + }, + "acm004256jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004256jsd", + "name" : "UnlinkedFilesDialogViewModel", + "parentId" : "acm004070jsd", + "content" : [ "acm004282jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004257jsd" : { + "type" : "CodePackage", + "id" : "acm004257jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004258jsd" ] + }, + "acm004258jsd" : { + "type" : "CodePackage", + "id" : "acm004258jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004259jsd" ] + }, + "acm004259jsd" : { + "type" : "CodePackage", + "id" : "acm004259jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004260jsd" ] + }, + "acm004260jsd" : { + "type" : "CodePackage", + "id" : "acm004260jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004256jsd" ] + }, + "acm004261jsd" : { + "type" : "ControlElement", + "id" : "acm004261jsd", + "name" : "UnlinkedFilesDialogViewModel" + }, + "acm004262jsd" : { + "type" : "ControlElement", + "id" : "acm004262jsd", + "name" : "startSearch" + }, + "acm004263jsd" : { + "type" : "ControlElement", + "id" : "acm004263jsd", + "name" : "startImport" + }, + "acm004264jsd" : { + "type" : "ControlElement", + "id" : "acm004264jsd", + "name" : "startExport" + }, + "acm004265jsd" : { + "type" : "ControlElement", + "id" : "acm004265jsd", + "name" : "getFileFilters" + }, + "acm004266jsd" : { + "type" : "ControlElement", + "id" : "acm004266jsd", + "name" : "getDateFilters" + }, + "acm004267jsd" : { + "type" : "ControlElement", + "id" : "acm004267jsd", + "name" : "getSorters" + }, + "acm004268jsd" : { + "type" : "ControlElement", + "id" : "acm004268jsd", + "name" : "cancelTasks" + }, + "acm004269jsd" : { + "type" : "ControlElement", + "id" : "acm004269jsd", + "name" : "browseFileDirectory" + }, + "acm004270jsd" : { + "type" : "ControlElement", + "id" : "acm004270jsd", + "name" : "getSearchDirectory" + }, + "acm004271jsd" : { + "type" : "ControlElement", + "id" : "acm004271jsd", + "name" : "resultTableItems" + }, + "acm004272jsd" : { + "type" : "ControlElement", + "id" : "acm004272jsd", + "name" : "treeRootProperty" + }, + "acm004273jsd" : { + "type" : "ControlElement", + "id" : "acm004273jsd", + "name" : "selectedExtensionProperty" + }, + "acm004274jsd" : { + "type" : "ControlElement", + "id" : "acm004274jsd", + "name" : "selectedDateProperty" + }, + "acm004275jsd" : { + "type" : "ControlElement", + "id" : "acm004275jsd", + "name" : "selectedSortProperty" + }, + "acm004276jsd" : { + "type" : "ControlElement", + "id" : "acm004276jsd", + "name" : "directoryPathProperty" + }, + "acm004277jsd" : { + "type" : "ControlElement", + "id" : "acm004277jsd", + "name" : "directoryPathValidationStatus" + }, + "acm004278jsd" : { + "type" : "ControlElement", + "id" : "acm004278jsd", + "name" : "progressValueProperty" + }, + "acm004279jsd" : { + "type" : "ControlElement", + "id" : "acm004279jsd", + "name" : "progressTextProperty" + }, + "acm004280jsd" : { + "type" : "ControlElement", + "id" : "acm004280jsd", + "name" : "taskActiveProperty" + }, + "acm004281jsd" : { + "type" : "ControlElement", + "id" : "acm004281jsd", + "name" : "checkedFileListProperty" + }, + "acm004282jsd" : { + "type" : "ClassUnit", + "id" : "acm004282jsd", + "name" : "UnlinkedFilesDialogViewModel", + "compilationUnitId" : "acm004256jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004110jsd", "acm004129jsd", "acm004160jsd", "acm004202jsd", "acm004223jsd", "acm004232jsd", "acm004282jsd", "acm009536jsd", "acm009752jsd", "acm009756jsd", "acm009796jsd", "acm009809jsd", "acm009843jsd", "acm009965jsd", "acm012428jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm004261jsd", "acm004262jsd", "acm004263jsd", "acm004264jsd", "acm004265jsd", "acm004266jsd", "acm004267jsd", "acm004268jsd", "acm004269jsd", "acm004270jsd", "acm004271jsd", "acm004272jsd", "acm004273jsd", "acm004274jsd", "acm004275jsd", "acm004276jsd", "acm004277jsd", "acm004278jsd", "acm004279jsd", "acm004280jsd", "acm004281jsd" ] + }, + "acm004283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004283jsd", + "name" : "UnlinkedPDFFileFilter", + "parentId" : "acm004070jsd", + "content" : [ "acm004290jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004284jsd" : { + "type" : "CodePackage", + "id" : "acm004284jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004285jsd" ] + }, + "acm004285jsd" : { + "type" : "CodePackage", + "id" : "acm004285jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004286jsd" ] + }, + "acm004286jsd" : { + "type" : "CodePackage", + "id" : "acm004286jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004287jsd" ] + }, + "acm004287jsd" : { + "type" : "CodePackage", + "id" : "acm004287jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm004283jsd" ] + }, + "acm004288jsd" : { + "type" : "ControlElement", + "id" : "acm004288jsd", + "name" : "UnlinkedPDFFileFilter" + }, + "acm004289jsd" : { + "type" : "ControlElement", + "id" : "acm004289jsd", + "name" : "accept" + }, + "acm004290jsd" : { + "type" : "ClassUnit", + "id" : "acm004290jsd", + "name" : "UnlinkedPDFFileFilter", + "compilationUnitId" : "acm004283jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017475jsd", "acm018022jsd", "acm020848jsd" ], + "content" : [ "acm004288jsd", "acm004289jsd" ] + }, + "acm004291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004291jsd", + "name" : "CustomExternalFileType", + "parentId" : "acm004295jsd", + "content" : [ "acm004315jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004292jsd" : { + "type" : "CodePackage", + "id" : "acm004292jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004293jsd" ] + }, + "acm004293jsd" : { + "type" : "CodePackage", + "id" : "acm004293jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004294jsd" ] + }, + "acm004294jsd" : { + "type" : "CodePackage", + "id" : "acm004294jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004295jsd" ] + }, + "acm004295jsd" : { + "type" : "CodePackage", + "id" : "acm004295jsd", + "name" : "externalfiletype", + "parentId" : "acm001569jsd", + "content" : [ "acm004291jsd", "acm004316jsd", "acm004329jsd", "acm004346jsd", "acm004358jsd", "acm021700jsd" ] + }, + "acm004296jsd" : { + "type" : "ControlElement", + "id" : "acm004296jsd", + "name" : "CustomExternalFileType" + }, + "acm004297jsd" : { + "type" : "ControlElement", + "id" : "acm004297jsd", + "name" : "CustomExternalFileType" + }, + "acm004298jsd" : { + "type" : "ControlElement", + "id" : "acm004298jsd", + "name" : "buildFromArgs" + }, + "acm004299jsd" : { + "type" : "ControlElement", + "id" : "acm004299jsd", + "name" : "getName" + }, + "acm004300jsd" : { + "type" : "ControlElement", + "id" : "acm004300jsd", + "name" : "setName" + }, + "acm004301jsd" : { + "type" : "ControlElement", + "id" : "acm004301jsd", + "name" : "getExtension" + }, + "acm004302jsd" : { + "type" : "ControlElement", + "id" : "acm004302jsd", + "name" : "setExtension" + }, + "acm004303jsd" : { + "type" : "ControlElement", + "id" : "acm004303jsd", + "name" : "getMimeType" + }, + "acm004304jsd" : { + "type" : "ControlElement", + "id" : "acm004304jsd", + "name" : "setMimeType" + }, + "acm004305jsd" : { + "type" : "ControlElement", + "id" : "acm004305jsd", + "name" : "getOpenWithApplication" + }, + "acm004306jsd" : { + "type" : "ControlElement", + "id" : "acm004306jsd", + "name" : "setOpenWith" + }, + "acm004307jsd" : { + "type" : "ControlElement", + "id" : "acm004307jsd", + "name" : "getIconName" + }, + "acm004308jsd" : { + "type" : "ControlElement", + "id" : "acm004308jsd", + "name" : "setIconName" + }, + "acm004309jsd" : { + "type" : "ControlElement", + "id" : "acm004309jsd", + "name" : "getIcon" + }, + "acm004310jsd" : { + "type" : "ControlElement", + "id" : "acm004310jsd", + "name" : "setIcon" + }, + "acm004311jsd" : { + "type" : "ControlElement", + "id" : "acm004311jsd", + "name" : "toString" + }, + "acm004312jsd" : { + "type" : "ControlElement", + "id" : "acm004312jsd", + "name" : "copy" + }, + "acm004313jsd" : { + "type" : "ControlElement", + "id" : "acm004313jsd", + "name" : "hashCode" + }, + "acm004314jsd" : { + "type" : "ControlElement", + "id" : "acm004314jsd", + "name" : "equals" + }, + "acm004315jsd" : { + "type" : "ClassUnit", + "id" : "acm004315jsd", + "name" : "CustomExternalFileType", + "compilationUnitId" : "acm004291jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004328jsd" ], + "datatypeReferencesIds" : [ "acm004315jsd", "acm004328jsd", "acm005416jsd" ], + "content" : [ "acm004296jsd", "acm004297jsd", "acm004298jsd", "acm004299jsd", "acm004300jsd", "acm004301jsd", "acm004302jsd", "acm004303jsd", "acm004304jsd", "acm004305jsd", "acm004306jsd", "acm004307jsd", "acm004308jsd", "acm004309jsd", "acm004310jsd", "acm004311jsd", "acm004312jsd", "acm004313jsd", "acm004314jsd" ] + }, + "acm004316jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004316jsd", + "name" : "ExternalFileType", + "parentId" : "acm004295jsd", + "content" : [ "acm004328jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004317jsd" : { + "type" : "CodePackage", + "id" : "acm004317jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004318jsd" ] + }, + "acm004318jsd" : { + "type" : "CodePackage", + "id" : "acm004318jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004319jsd" ] + }, + "acm004319jsd" : { + "type" : "CodePackage", + "id" : "acm004319jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004320jsd" ] + }, + "acm004320jsd" : { + "type" : "CodePackage", + "id" : "acm004320jsd", + "name" : "externalfiletype", + "parentId" : null, + "content" : [ "acm004316jsd" ] + }, + "acm004321jsd" : { + "type" : "ControlElement", + "id" : "acm004321jsd", + "name" : "getName" + }, + "acm004322jsd" : { + "type" : "ControlElement", + "id" : "acm004322jsd", + "name" : "getExtension" + }, + "acm004323jsd" : { + "type" : "ControlElement", + "id" : "acm004323jsd", + "name" : "getMimeType" + }, + "acm004324jsd" : { + "type" : "ControlElement", + "id" : "acm004324jsd", + "name" : "getOpenWithApplication" + }, + "acm004325jsd" : { + "type" : "ControlElement", + "id" : "acm004325jsd", + "name" : "getIcon" + }, + "acm004326jsd" : { + "type" : "ControlElement", + "id" : "acm004326jsd", + "name" : "getField" + }, + "acm004327jsd" : { + "type" : "ControlElement", + "id" : "acm004327jsd", + "name" : "toStringArray" + }, + "acm004328jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004328jsd", + "name" : "ExternalFileType", + "compilationUnitId" : "acm004316jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm018673jsd" ], + "content" : [ "acm004321jsd", "acm004322jsd", "acm004323jsd", "acm004324jsd", "acm004325jsd", "acm004326jsd", "acm004327jsd" ] + }, + "acm004329jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004329jsd", + "name" : "ExternalFileTypes", + "parentId" : "acm004295jsd", + "content" : [ "acm004345jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004330jsd" : { + "type" : "CodePackage", + "id" : "acm004330jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004331jsd" ] + }, + "acm004331jsd" : { + "type" : "CodePackage", + "id" : "acm004331jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004332jsd" ] + }, + "acm004332jsd" : { + "type" : "CodePackage", + "id" : "acm004332jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004333jsd" ] + }, + "acm004333jsd" : { + "type" : "CodePackage", + "id" : "acm004333jsd", + "name" : "externalfiletype", + "parentId" : null, + "content" : [ "acm004329jsd" ] + }, + "acm004334jsd" : { + "type" : "ControlElement", + "id" : "acm004334jsd", + "name" : "ExternalFileTypes" + }, + "acm004335jsd" : { + "type" : "ControlElement", + "id" : "acm004335jsd", + "name" : "getDefaultExternalFileTypes" + }, + "acm004336jsd" : { + "type" : "ControlElement", + "id" : "acm004336jsd", + "name" : "getExternalFileTypeByName" + }, + "acm004337jsd" : { + "type" : "ControlElement", + "id" : "acm004337jsd", + "name" : "getExternalFileTypeByExt" + }, + "acm004338jsd" : { + "type" : "ControlElement", + "id" : "acm004338jsd", + "name" : "isExternalFileTypeByExt" + }, + "acm004339jsd" : { + "type" : "ControlElement", + "id" : "acm004339jsd", + "name" : "getExternalFileTypeForName" + }, + "acm004340jsd" : { + "type" : "ControlElement", + "id" : "acm004340jsd", + "name" : "getExternalFileTypeByMimeType" + }, + "acm004341jsd" : { + "type" : "ControlElement", + "id" : "acm004341jsd", + "name" : "getExternalFileTypeByFile" + }, + "acm004342jsd" : { + "type" : "ControlElement", + "id" : "acm004342jsd", + "name" : "getExternalFileTypeByLinkedFile" + }, + "acm004343jsd" : { + "type" : "ControlElement", + "id" : "acm004343jsd", + "name" : "toStringList" + }, + "acm004344jsd" : { + "type" : "ControlElement", + "id" : "acm004344jsd", + "name" : "fromString" + }, + "acm004345jsd" : { + "type" : "ClassUnit", + "id" : "acm004345jsd", + "name" : "ExternalFileTypes", + "compilationUnitId" : "acm004329jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004328jsd", "acm004370jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm004334jsd", "acm004335jsd", "acm004336jsd", "acm004337jsd", "acm004338jsd", "acm004339jsd", "acm004340jsd", "acm004341jsd", "acm004342jsd", "acm004343jsd", "acm004344jsd" ] + }, + "acm004346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004346jsd", + "name" : "StandardExternalFileType", + "parentId" : "acm004295jsd", + "content" : [ "acm004357jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004347jsd" : { + "type" : "CodePackage", + "id" : "acm004347jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004348jsd" ] + }, + "acm004348jsd" : { + "type" : "CodePackage", + "id" : "acm004348jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004349jsd" ] + }, + "acm004349jsd" : { + "type" : "CodePackage", + "id" : "acm004349jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004350jsd" ] + }, + "acm004350jsd" : { + "type" : "CodePackage", + "id" : "acm004350jsd", + "name" : "externalfiletype", + "parentId" : null, + "content" : [ "acm004346jsd" ] + }, + "acm004351jsd" : { + "type" : "ControlElement", + "id" : "acm004351jsd", + "name" : "StandardExternalFileType" + }, + "acm004352jsd" : { + "type" : "ControlElement", + "id" : "acm004352jsd", + "name" : "getName" + }, + "acm004353jsd" : { + "type" : "ControlElement", + "id" : "acm004353jsd", + "name" : "getExtension" + }, + "acm004354jsd" : { + "type" : "ControlElement", + "id" : "acm004354jsd", + "name" : "getMimeType" + }, + "acm004355jsd" : { + "type" : "ControlElement", + "id" : "acm004355jsd", + "name" : "getOpenWithApplication" + }, + "acm004356jsd" : { + "type" : "ControlElement", + "id" : "acm004356jsd", + "name" : "getIcon" + }, + "acm004357jsd" : { + "type" : "ClassUnit", + "id" : "acm004357jsd", + "name" : "StandardExternalFileType", + "compilationUnitId" : "acm004346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004328jsd" ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm004351jsd", "acm004352jsd", "acm004353jsd", "acm004354jsd", "acm004355jsd", "acm004356jsd" ] + }, + "acm004358jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004358jsd", + "name" : "UnknownExternalFileType", + "parentId" : "acm004295jsd", + "content" : [ "acm004370jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004359jsd" : { + "type" : "CodePackage", + "id" : "acm004359jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004360jsd" ] + }, + "acm004360jsd" : { + "type" : "CodePackage", + "id" : "acm004360jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004361jsd" ] + }, + "acm004361jsd" : { + "type" : "CodePackage", + "id" : "acm004361jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004362jsd" ] + }, + "acm004362jsd" : { + "type" : "CodePackage", + "id" : "acm004362jsd", + "name" : "externalfiletype", + "parentId" : null, + "content" : [ "acm004358jsd" ] + }, + "acm004363jsd" : { + "type" : "ControlElement", + "id" : "acm004363jsd", + "name" : "UnknownExternalFileType" + }, + "acm004364jsd" : { + "type" : "ControlElement", + "id" : "acm004364jsd", + "name" : "UnknownExternalFileType" + }, + "acm004365jsd" : { + "type" : "ControlElement", + "id" : "acm004365jsd", + "name" : "getName" + }, + "acm004366jsd" : { + "type" : "ControlElement", + "id" : "acm004366jsd", + "name" : "getExtension" + }, + "acm004367jsd" : { + "type" : "ControlElement", + "id" : "acm004367jsd", + "name" : "getMimeType" + }, + "acm004368jsd" : { + "type" : "ControlElement", + "id" : "acm004368jsd", + "name" : "getOpenWithApplication" + }, + "acm004369jsd" : { + "type" : "ControlElement", + "id" : "acm004369jsd", + "name" : "getIcon" + }, + "acm004370jsd" : { + "type" : "ClassUnit", + "id" : "acm004370jsd", + "name" : "UnknownExternalFileType", + "compilationUnitId" : "acm004358jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004328jsd" ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm004363jsd", "acm004364jsd", "acm004365jsd", "acm004366jsd", "acm004367jsd", "acm004368jsd", "acm004369jsd" ] + }, + "acm004371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004371jsd", + "name" : "AbstractEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004381jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004372jsd" : { + "type" : "CodePackage", + "id" : "acm004372jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004373jsd" ] + }, + "acm004373jsd" : { + "type" : "CodePackage", + "id" : "acm004373jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004374jsd" ] + }, + "acm004374jsd" : { + "type" : "CodePackage", + "id" : "acm004374jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004375jsd" ] + }, + "acm004375jsd" : { + "type" : "CodePackage", + "id" : "acm004375jsd", + "name" : "fieldeditors", + "parentId" : "acm001569jsd", + "content" : [ "acm004371jsd", "acm004382jsd", "acm004392jsd", "acm004400jsd", "acm004407jsd", "acm004417jsd", "acm004427jsd", "acm004442jsd", "acm004452jsd", "acm004461jsd", "acm004469jsd", "acm004480jsd", "acm004488jsd", "acm004496jsd", "acm004505jsd", "acm004516jsd", "acm004524jsd", "acm004532jsd", "acm004542jsd", "acm004554jsd", "acm004600jsd", "acm004626jsd", "acm004649jsd", "acm004662jsd", "acm004674jsd", "acm004684jsd", "acm004694jsd", "acm004705jsd", "acm004713jsd", "acm004722jsd", "acm004731jsd", "acm004741jsd", "acm004751jsd", "acm004762jsd", "acm004770jsd", "acm004778jsd", "acm004787jsd", "acm004797jsd", "acm004808jsd", "acm004818jsd", "acm004826jsd", "acm021717jsd", "acm021740jsd", "acm004840jsd", "acm004899jsd" ] + }, + "acm004376jsd" : { + "type" : "ControlElement", + "id" : "acm004376jsd", + "name" : "AbstractEditorViewModel" + }, + "acm004377jsd" : { + "type" : "ControlElement", + "id" : "acm004377jsd", + "name" : "getFieldValidator" + }, + "acm004378jsd" : { + "type" : "ControlElement", + "id" : "acm004378jsd", + "name" : "textProperty" + }, + "acm004379jsd" : { + "type" : "ControlElement", + "id" : "acm004379jsd", + "name" : "bindToEntry" + }, + "acm004380jsd" : { + "type" : "ControlElement", + "id" : "acm004380jsd", + "name" : "complete" + }, + "acm004381jsd" : { + "type" : "ClassUnit", + "id" : "acm004381jsd", + "name" : "AbstractEditorViewModel", + "compilationUnitId" : "acm004371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm014798jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm004376jsd", "acm004377jsd", "acm004378jsd", "acm004379jsd", "acm004380jsd" ] + }, + "acm004382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004382jsd", + "name" : "CitationKeyEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004391jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004383jsd" : { + "type" : "CodePackage", + "id" : "acm004383jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004384jsd" ] + }, + "acm004384jsd" : { + "type" : "CodePackage", + "id" : "acm004384jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004385jsd" ] + }, + "acm004385jsd" : { + "type" : "CodePackage", + "id" : "acm004385jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004386jsd" ] + }, + "acm004386jsd" : { + "type" : "CodePackage", + "id" : "acm004386jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004382jsd" ] + }, + "acm004387jsd" : { + "type" : "ControlElement", + "id" : "acm004387jsd", + "name" : "CitationKeyEditor" + }, + "acm004388jsd" : { + "type" : "ControlElement", + "id" : "acm004388jsd", + "name" : "getViewModel" + }, + "acm004389jsd" : { + "type" : "ControlElement", + "id" : "acm004389jsd", + "name" : "bindToEntry" + }, + "acm004390jsd" : { + "type" : "ControlElement", + "id" : "acm004390jsd", + "name" : "getNode" + }, + "acm004391jsd" : { + "type" : "ClassUnit", + "id" : "acm004391jsd", + "name" : "CitationKeyEditor", + "compilationUnitId" : "acm004382jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002087jsd", "acm002329jsd", "acm004399jsd", "acm004451jsd", "acm004468jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004387jsd", "acm004388jsd", "acm004389jsd", "acm004390jsd" ] + }, + "acm004392jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004392jsd", + "name" : "CitationKeyEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004399jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004393jsd" : { + "type" : "CodePackage", + "id" : "acm004393jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004394jsd" ] + }, + "acm004394jsd" : { + "type" : "CodePackage", + "id" : "acm004394jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004395jsd" ] + }, + "acm004395jsd" : { + "type" : "CodePackage", + "id" : "acm004395jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004396jsd" ] + }, + "acm004396jsd" : { + "type" : "CodePackage", + "id" : "acm004396jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004392jsd" ] + }, + "acm004397jsd" : { + "type" : "ControlElement", + "id" : "acm004397jsd", + "name" : "CitationKeyEditorViewModel" + }, + "acm004398jsd" : { + "type" : "ControlElement", + "id" : "acm004398jsd", + "name" : "getGenerateCiteKeyCommand" + }, + "acm004399jsd" : { + "type" : "ClassUnit", + "id" : "acm004399jsd", + "name" : "CitationKeyEditorViewModel", + "compilationUnitId" : "acm004392jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm002444jsd", "acm014644jsd", "acm018022jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004397jsd", "acm004398jsd" ] + }, + "acm004400jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004400jsd", + "name" : "ContextMenuAddable", + "parentId" : "acm004375jsd", + "content" : [ "acm004406jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004401jsd" : { + "type" : "CodePackage", + "id" : "acm004401jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004402jsd" ] + }, + "acm004402jsd" : { + "type" : "CodePackage", + "id" : "acm004402jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004403jsd" ] + }, + "acm004403jsd" : { + "type" : "CodePackage", + "id" : "acm004403jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004404jsd" ] + }, + "acm004404jsd" : { + "type" : "CodePackage", + "id" : "acm004404jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004400jsd" ] + }, + "acm004405jsd" : { + "type" : "ControlElement", + "id" : "acm004405jsd", + "name" : "initContextMenu" + }, + "acm004406jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004406jsd", + "name" : "ContextMenuAddable", + "compilationUnitId" : "acm004400jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004405jsd" ] + }, + "acm004407jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004407jsd", + "name" : "DateEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004416jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004408jsd" : { + "type" : "CodePackage", + "id" : "acm004408jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004409jsd" ] + }, + "acm004409jsd" : { + "type" : "CodePackage", + "id" : "acm004409jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004410jsd" ] + }, + "acm004410jsd" : { + "type" : "CodePackage", + "id" : "acm004410jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004411jsd" ] + }, + "acm004411jsd" : { + "type" : "CodePackage", + "id" : "acm004411jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004407jsd" ] + }, + "acm004412jsd" : { + "type" : "ControlElement", + "id" : "acm004412jsd", + "name" : "DateEditor" + }, + "acm004413jsd" : { + "type" : "ControlElement", + "id" : "acm004413jsd", + "name" : "getViewModel" + }, + "acm004414jsd" : { + "type" : "ControlElement", + "id" : "acm004414jsd", + "name" : "bindToEntry" + }, + "acm004415jsd" : { + "type" : "ControlElement", + "id" : "acm004415jsd", + "name" : "getNode" + }, + "acm004416jsd" : { + "type" : "ClassUnit", + "id" : "acm004416jsd", + "name" : "DateEditor", + "compilationUnitId" : "acm004407jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004426jsd", "acm004468jsd", "acm010234jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004412jsd", "acm004413jsd", "acm004414jsd", "acm004415jsd" ] + }, + "acm004417jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004417jsd", + "name" : "DateEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004426jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004418jsd" : { + "type" : "CodePackage", + "id" : "acm004418jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004419jsd" ] + }, + "acm004419jsd" : { + "type" : "CodePackage", + "id" : "acm004419jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004420jsd" ] + }, + "acm004420jsd" : { + "type" : "CodePackage", + "id" : "acm004420jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004421jsd" ] + }, + "acm004421jsd" : { + "type" : "CodePackage", + "id" : "acm004421jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004417jsd" ] + }, + "acm004422jsd" : { + "type" : "ControlElement", + "id" : "acm004422jsd", + "name" : "DateEditorViewModel" + }, + "acm004423jsd" : { + "type" : "ControlElement", + "id" : "acm004423jsd", + "name" : "getDateToStringConverter" + }, + "acm004424jsd" : { + "type" : "ControlElement", + "id" : "acm004424jsd", + "name" : "toString" + }, + "acm004425jsd" : { + "type" : "ControlElement", + "id" : "acm004425jsd", + "name" : "fromString" + }, + "acm004426jsd" : { + "type" : "ClassUnit", + "id" : "acm004426jsd", + "name" : "DateEditorViewModel", + "compilationUnitId" : "acm004417jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004426jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004422jsd", "acm004423jsd", "acm004424jsd", "acm004425jsd" ] + }, + "acm004427jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004427jsd", + "name" : "EditorTextArea", + "parentId" : "acm004375jsd", + "content" : [ "acm004439jsd", "acm004441jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004428jsd" : { + "type" : "CodePackage", + "id" : "acm004428jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004429jsd" ] + }, + "acm004429jsd" : { + "type" : "CodePackage", + "id" : "acm004429jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004430jsd" ] + }, + "acm004430jsd" : { + "type" : "CodePackage", + "id" : "acm004430jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004431jsd" ] + }, + "acm004431jsd" : { + "type" : "CodePackage", + "id" : "acm004431jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004427jsd" ] + }, + "acm004432jsd" : { + "type" : "ControlElement", + "id" : "acm004432jsd", + "name" : "EditorTextArea" + }, + "acm004433jsd" : { + "type" : "ControlElement", + "id" : "acm004433jsd", + "name" : "EditorTextArea" + }, + "acm004434jsd" : { + "type" : "ControlElement", + "id" : "acm004434jsd", + "name" : "initContextMenu" + }, + "acm004435jsd" : { + "type" : "ControlElement", + "id" : "acm004435jsd", + "name" : "initialize" + }, + "acm004436jsd" : { + "type" : "ControlElement", + "id" : "acm004436jsd", + "name" : "setPasteActionHandler" + }, + "acm004437jsd" : { + "type" : "ControlElement", + "id" : "acm004437jsd", + "name" : "paste" + }, + "acm004438jsd" : { + "type" : "ControlElement", + "id" : "acm004438jsd", + "name" : "handle" + }, + "acm004439jsd" : { + "type" : "ClassUnit", + "id" : "acm004439jsd", + "name" : "EditorTextArea", + "compilationUnitId" : "acm004427jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004406jsd" ], + "datatypeReferencesIds" : [ "acm004441jsd" ], + "content" : [ "acm004432jsd", "acm004433jsd", "acm004434jsd", "acm004435jsd", "acm004436jsd", "acm004437jsd", "acm004438jsd" ] + }, + "acm004440jsd" : { + "type" : "ControlElement", + "id" : "acm004440jsd", + "name" : "handle" + }, + "acm004441jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004441jsd", + "name" : "PasteActionHandler", + "compilationUnitId" : "acm004427jsd", + "parentDatatypeId" : "acm004439jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004440jsd" ] + }, + "acm004442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004442jsd", + "name" : "EditorTextField", + "parentId" : "acm004375jsd", + "content" : [ "acm004451jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004443jsd" : { + "type" : "CodePackage", + "id" : "acm004443jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004444jsd" ] + }, + "acm004444jsd" : { + "type" : "CodePackage", + "id" : "acm004444jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004445jsd" ] + }, + "acm004445jsd" : { + "type" : "CodePackage", + "id" : "acm004445jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004446jsd" ] + }, + "acm004446jsd" : { + "type" : "CodePackage", + "id" : "acm004446jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004442jsd" ] + }, + "acm004447jsd" : { + "type" : "ControlElement", + "id" : "acm004447jsd", + "name" : "EditorTextField" + }, + "acm004448jsd" : { + "type" : "ControlElement", + "id" : "acm004448jsd", + "name" : "EditorTextField" + }, + "acm004449jsd" : { + "type" : "ControlElement", + "id" : "acm004449jsd", + "name" : "initContextMenu" + }, + "acm004450jsd" : { + "type" : "ControlElement", + "id" : "acm004450jsd", + "name" : "initialize" + }, + "acm004451jsd" : { + "type" : "ClassUnit", + "id" : "acm004451jsd", + "name" : "EditorTextField", + "compilationUnitId" : "acm004442jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004406jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004447jsd", "acm004448jsd", "acm004449jsd", "acm004450jsd" ] + }, + "acm004452jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004452jsd", + "name" : "EditorTypeEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004460jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004453jsd" : { + "type" : "CodePackage", + "id" : "acm004453jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004454jsd" ] + }, + "acm004454jsd" : { + "type" : "CodePackage", + "id" : "acm004454jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004455jsd" ] + }, + "acm004455jsd" : { + "type" : "CodePackage", + "id" : "acm004455jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004456jsd" ] + }, + "acm004456jsd" : { + "type" : "CodePackage", + "id" : "acm004456jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004452jsd" ] + }, + "acm004457jsd" : { + "type" : "ControlElement", + "id" : "acm004457jsd", + "name" : "EditorTypeEditorViewModel" + }, + "acm004458jsd" : { + "type" : "ControlElement", + "id" : "acm004458jsd", + "name" : "getItemMap" + }, + "acm004459jsd" : { + "type" : "ControlElement", + "id" : "acm004459jsd", + "name" : "convertToDisplayText" + }, + "acm004460jsd" : { + "type" : "ClassUnit", + "id" : "acm004460jsd", + "name" : "EditorTypeEditorViewModel", + "compilationUnitId" : "acm004452jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004457jsd", "acm004458jsd", "acm004459jsd" ] + }, + "acm004461jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004461jsd", + "name" : "EditorValidator", + "parentId" : "acm004375jsd", + "content" : [ "acm004468jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004462jsd" : { + "type" : "CodePackage", + "id" : "acm004462jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004463jsd" ] + }, + "acm004463jsd" : { + "type" : "CodePackage", + "id" : "acm004463jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004464jsd" ] + }, + "acm004464jsd" : { + "type" : "CodePackage", + "id" : "acm004464jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004465jsd" ] + }, + "acm004465jsd" : { + "type" : "CodePackage", + "id" : "acm004465jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004461jsd" ] + }, + "acm004466jsd" : { + "type" : "ControlElement", + "id" : "acm004466jsd", + "name" : "EditorValidator" + }, + "acm004467jsd" : { + "type" : "ControlElement", + "id" : "acm004467jsd", + "name" : "configureValidation" + }, + "acm004468jsd" : { + "type" : "ClassUnit", + "id" : "acm004468jsd", + "name" : "EditorValidator", + "compilationUnitId" : "acm004461jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009856jsd", "acm021206jsd" ], + "content" : [ "acm004466jsd", "acm004467jsd" ] + }, + "acm004469jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004469jsd", + "name" : "FieldEditorFX", + "parentId" : "acm004375jsd", + "content" : [ "acm004479jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004470jsd" : { + "type" : "CodePackage", + "id" : "acm004470jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004471jsd" ] + }, + "acm004471jsd" : { + "type" : "CodePackage", + "id" : "acm004471jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004472jsd" ] + }, + "acm004472jsd" : { + "type" : "CodePackage", + "id" : "acm004472jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004473jsd" ] + }, + "acm004473jsd" : { + "type" : "CodePackage", + "id" : "acm004473jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004469jsd" ] + }, + "acm004474jsd" : { + "type" : "ControlElement", + "id" : "acm004474jsd", + "name" : "bindToEntry" + }, + "acm004475jsd" : { + "type" : "ControlElement", + "id" : "acm004475jsd", + "name" : "getNode" + }, + "acm004476jsd" : { + "type" : "ControlElement", + "id" : "acm004476jsd", + "name" : "focus" + }, + "acm004477jsd" : { + "type" : "ControlElement", + "id" : "acm004477jsd", + "name" : "childIsFocused" + }, + "acm004478jsd" : { + "type" : "ControlElement", + "id" : "acm004478jsd", + "name" : "getWeight" + }, + "acm004479jsd" : { + "type" : "InterfaceUnit", + "id" : "acm004479jsd", + "name" : "FieldEditorFX", + "compilationUnitId" : "acm004469jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm004474jsd", "acm004475jsd", "acm004476jsd", "acm004477jsd", "acm004478jsd" ] + }, + "acm004480jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004480jsd", + "name" : "FieldEditors", + "parentId" : "acm004375jsd", + "content" : [ "acm004487jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004481jsd" : { + "type" : "CodePackage", + "id" : "acm004481jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004482jsd" ] + }, + "acm004482jsd" : { + "type" : "CodePackage", + "id" : "acm004482jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004483jsd" ] + }, + "acm004483jsd" : { + "type" : "CodePackage", + "id" : "acm004483jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004484jsd" ] + }, + "acm004484jsd" : { + "type" : "CodePackage", + "id" : "acm004484jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004480jsd" ] + }, + "acm004485jsd" : { + "type" : "ControlElement", + "id" : "acm004485jsd", + "name" : "getForField" + }, + "acm004486jsd" : { + "type" : "ControlElement", + "id" : "acm004486jsd", + "name" : "getSuggestionProvider" + }, + "acm004487jsd" : { + "type" : "ClassUnit", + "id" : "acm004487jsd", + "name" : "FieldEditors", + "compilationUnitId" : "acm004480jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm002251jsd", "acm002329jsd", "acm002338jsd", "acm004391jsd", "acm004416jsd", "acm004460jsd", "acm004479jsd", "acm004487jsd", "acm004504jsd", "acm004515jsd", "acm004531jsd", "acm004541jsd", "acm004622jsd", "acm004673jsd", "acm004683jsd", "acm004704jsd", "acm004721jsd", "acm004730jsd", "acm004740jsd", "acm004761jsd", "acm004786jsd", "acm004807jsd", "acm004834jsd", "acm004959jsd", "acm009965jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm018716jsd", "acm019005jsd", "acm019421jsd", "acm021206jsd" ], + "content" : [ "acm004485jsd", "acm004486jsd" ] + }, + "acm004488jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004488jsd", + "name" : "FieldNameLabel", + "parentId" : "acm004375jsd", + "content" : [ "acm004495jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004489jsd" : { + "type" : "CodePackage", + "id" : "acm004489jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004490jsd" ] + }, + "acm004490jsd" : { + "type" : "CodePackage", + "id" : "acm004490jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004491jsd" ] + }, + "acm004491jsd" : { + "type" : "CodePackage", + "id" : "acm004491jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004492jsd" ] + }, + "acm004492jsd" : { + "type" : "CodePackage", + "id" : "acm004492jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004488jsd" ] + }, + "acm004493jsd" : { + "type" : "ControlElement", + "id" : "acm004493jsd", + "name" : "FieldNameLabel" + }, + "acm004494jsd" : { + "type" : "ControlElement", + "id" : "acm004494jsd", + "name" : "getDescription" + }, + "acm004495jsd" : { + "type" : "ClassUnit", + "id" : "acm004495jsd", + "name" : "FieldNameLabel", + "compilationUnitId" : "acm004488jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018741jsd", "acm018770jsd", "acm018798jsd" ], + "content" : [ "acm004493jsd", "acm004494jsd" ] + }, + "acm004496jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004496jsd", + "name" : "GenderEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004504jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004497jsd" : { + "type" : "CodePackage", + "id" : "acm004497jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004498jsd" ] + }, + "acm004498jsd" : { + "type" : "CodePackage", + "id" : "acm004498jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004499jsd" ] + }, + "acm004499jsd" : { + "type" : "CodePackage", + "id" : "acm004499jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004500jsd" ] + }, + "acm004500jsd" : { + "type" : "CodePackage", + "id" : "acm004500jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004496jsd" ] + }, + "acm004501jsd" : { + "type" : "ControlElement", + "id" : "acm004501jsd", + "name" : "GenderEditorViewModel" + }, + "acm004502jsd" : { + "type" : "ControlElement", + "id" : "acm004502jsd", + "name" : "getItemMap" + }, + "acm004503jsd" : { + "type" : "ControlElement", + "id" : "acm004503jsd", + "name" : "convertToDisplayText" + }, + "acm004504jsd" : { + "type" : "ClassUnit", + "id" : "acm004504jsd", + "name" : "GenderEditorViewModel", + "compilationUnitId" : "acm004496jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004501jsd", "acm004502jsd", "acm004503jsd" ] + }, + "acm004505jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004505jsd", + "name" : "JournalEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004515jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004506jsd" : { + "type" : "CodePackage", + "id" : "acm004506jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004507jsd" ] + }, + "acm004507jsd" : { + "type" : "CodePackage", + "id" : "acm004507jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004508jsd" ] + }, + "acm004508jsd" : { + "type" : "CodePackage", + "id" : "acm004508jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004509jsd" ] + }, + "acm004509jsd" : { + "type" : "CodePackage", + "id" : "acm004509jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004505jsd" ] + }, + "acm004510jsd" : { + "type" : "ControlElement", + "id" : "acm004510jsd", + "name" : "JournalEditor" + }, + "acm004511jsd" : { + "type" : "ControlElement", + "id" : "acm004511jsd", + "name" : "getViewModel" + }, + "acm004512jsd" : { + "type" : "ControlElement", + "id" : "acm004512jsd", + "name" : "bindToEntry" + }, + "acm004513jsd" : { + "type" : "ControlElement", + "id" : "acm004513jsd", + "name" : "getNode" + }, + "acm004514jsd" : { + "type" : "ControlElement", + "id" : "acm004514jsd", + "name" : "toggleAbbreviation" + }, + "acm004515jsd" : { + "type" : "ClassUnit", + "id" : "acm004515jsd", + "name" : "JournalEditor", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm002329jsd", "acm004451jsd", "acm004468jsd", "acm004523jsd", "acm004846jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004510jsd", "acm004511jsd", "acm004512jsd", "acm004513jsd", "acm004514jsd" ] + }, + "acm004516jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004516jsd", + "name" : "JournalEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004523jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004517jsd" : { + "type" : "CodePackage", + "id" : "acm004517jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004518jsd" ] + }, + "acm004518jsd" : { + "type" : "CodePackage", + "id" : "acm004518jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004519jsd" ] + }, + "acm004519jsd" : { + "type" : "CodePackage", + "id" : "acm004519jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004520jsd" ] + }, + "acm004520jsd" : { + "type" : "CodePackage", + "id" : "acm004520jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004516jsd" ] + }, + "acm004521jsd" : { + "type" : "ControlElement", + "id" : "acm004521jsd", + "name" : "JournalEditorViewModel" + }, + "acm004522jsd" : { + "type" : "ControlElement", + "id" : "acm004522jsd", + "name" : "toggleAbbreviation" + }, + "acm004523jsd" : { + "type" : "ClassUnit", + "id" : "acm004523jsd", + "name" : "JournalEditorViewModel", + "compilationUnitId" : "acm004516jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004521jsd", "acm004522jsd" ] + }, + "acm004524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004524jsd", + "name" : "KeywordsEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004531jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004525jsd" : { + "type" : "CodePackage", + "id" : "acm004525jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004526jsd" ] + }, + "acm004526jsd" : { + "type" : "CodePackage", + "id" : "acm004526jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004527jsd" ] + }, + "acm004527jsd" : { + "type" : "CodePackage", + "id" : "acm004527jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004528jsd" ] + }, + "acm004528jsd" : { + "type" : "CodePackage", + "id" : "acm004528jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004524jsd" ] + }, + "acm004529jsd" : { + "type" : "ControlElement", + "id" : "acm004529jsd", + "name" : "KeywordsEditor" + }, + "acm004530jsd" : { + "type" : "ControlElement", + "id" : "acm004530jsd", + "name" : "getWeight" + }, + "acm004531jsd" : { + "type" : "ClassUnit", + "id" : "acm004531jsd", + "name" : "KeywordsEditor", + "compilationUnitId" : "acm004524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004761jsd" ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004529jsd", "acm004530jsd" ] + }, + "acm004532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004532jsd", + "name" : "LinkedEntriesEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004541jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004533jsd" : { + "type" : "CodePackage", + "id" : "acm004533jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004534jsd" ] + }, + "acm004534jsd" : { + "type" : "CodePackage", + "id" : "acm004534jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004535jsd" ] + }, + "acm004535jsd" : { + "type" : "CodePackage", + "id" : "acm004535jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004536jsd" ] + }, + "acm004536jsd" : { + "type" : "CodePackage", + "id" : "acm004536jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004532jsd" ] + }, + "acm004537jsd" : { + "type" : "ControlElement", + "id" : "acm004537jsd", + "name" : "LinkedEntriesEditor" + }, + "acm004538jsd" : { + "type" : "ControlElement", + "id" : "acm004538jsd", + "name" : "getViewModel" + }, + "acm004539jsd" : { + "type" : "ControlElement", + "id" : "acm004539jsd", + "name" : "bindToEntry" + }, + "acm004540jsd" : { + "type" : "ControlElement", + "id" : "acm004540jsd", + "name" : "getNode" + }, + "acm004541jsd" : { + "type" : "ClassUnit", + "id" : "acm004541jsd", + "name" : "LinkedEntriesEditor", + "compilationUnitId" : "acm004532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004553jsd", "acm010051jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm018539jsd", "acm018673jsd" ], + "content" : [ "acm004537jsd", "acm004538jsd", "acm004539jsd", "acm004540jsd" ] + }, + "acm004542jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004542jsd", + "name" : "LinkedEntriesEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004553jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004543jsd" : { + "type" : "CodePackage", + "id" : "acm004543jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004544jsd" ] + }, + "acm004544jsd" : { + "type" : "CodePackage", + "id" : "acm004544jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004545jsd" ] + }, + "acm004545jsd" : { + "type" : "CodePackage", + "id" : "acm004545jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004546jsd" ] + }, + "acm004546jsd" : { + "type" : "CodePackage", + "id" : "acm004546jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004542jsd" ] + }, + "acm004547jsd" : { + "type" : "ControlElement", + "id" : "acm004547jsd", + "name" : "LinkedEntriesEditorViewModel" + }, + "acm004548jsd" : { + "type" : "ControlElement", + "id" : "acm004548jsd", + "name" : "linkedEntriesProperty" + }, + "acm004549jsd" : { + "type" : "ControlElement", + "id" : "acm004549jsd", + "name" : "getStringConverter" + }, + "acm004550jsd" : { + "type" : "ControlElement", + "id" : "acm004550jsd", + "name" : "toString" + }, + "acm004551jsd" : { + "type" : "ControlElement", + "id" : "acm004551jsd", + "name" : "fromString" + }, + "acm004552jsd" : { + "type" : "ControlElement", + "id" : "acm004552jsd", + "name" : "jumpToEntry" + }, + "acm004553jsd" : { + "type" : "ClassUnit", + "id" : "acm004553jsd", + "name" : "LinkedEntriesEditorViewModel", + "compilationUnitId" : "acm004542jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018022jsd", "acm018539jsd", "acm018673jsd" ], + "content" : [ "acm004547jsd", "acm004548jsd", "acm004549jsd", "acm004550jsd", "acm004551jsd", "acm004552jsd" ] + }, + "acm004554jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004554jsd", + "name" : "LinkedFileViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004599jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004555jsd" : { + "type" : "CodePackage", + "id" : "acm004555jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004556jsd" ] + }, + "acm004556jsd" : { + "type" : "CodePackage", + "id" : "acm004556jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004557jsd" ] + }, + "acm004557jsd" : { + "type" : "CodePackage", + "id" : "acm004557jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004558jsd" ] + }, + "acm004558jsd" : { + "type" : "CodePackage", + "id" : "acm004558jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004554jsd" ] + }, + "acm004559jsd" : { + "type" : "ControlElement", + "id" : "acm004559jsd", + "name" : "LinkedFileViewModel" + }, + "acm004560jsd" : { + "type" : "ControlElement", + "id" : "acm004560jsd", + "name" : "isOfflinePdfProperty" + }, + "acm004561jsd" : { + "type" : "ControlElement", + "id" : "acm004561jsd", + "name" : "isAutomaticallyFound" + }, + "acm004562jsd" : { + "type" : "ControlElement", + "id" : "acm004562jsd", + "name" : "isAutomaticallyFoundProperty" + }, + "acm004563jsd" : { + "type" : "ControlElement", + "id" : "acm004563jsd", + "name" : "downloadOngoingProperty" + }, + "acm004564jsd" : { + "type" : "ControlElement", + "id" : "acm004564jsd", + "name" : "downloadProgressProperty" + }, + "acm004565jsd" : { + "type" : "ControlElement", + "id" : "acm004565jsd", + "name" : "linkProperty" + }, + "acm004566jsd" : { + "type" : "ControlElement", + "id" : "acm004566jsd", + "name" : "descriptionProperty" + }, + "acm004567jsd" : { + "type" : "ControlElement", + "id" : "acm004567jsd", + "name" : "getDescription" + }, + "acm004568jsd" : { + "type" : "ControlElement", + "id" : "acm004568jsd", + "name" : "getDescriptionAndLink" + }, + "acm004569jsd" : { + "type" : "ControlElement", + "id" : "acm004569jsd", + "name" : "getTruncatedDescriptionAndLink" + }, + "acm004570jsd" : { + "type" : "ControlElement", + "id" : "acm004570jsd", + "name" : "findIn" + }, + "acm004571jsd" : { + "type" : "ControlElement", + "id" : "acm004571jsd", + "name" : "getTypeIcon" + }, + "acm004572jsd" : { + "type" : "ControlElement", + "id" : "acm004572jsd", + "name" : "typeIconProperty" + }, + "acm004573jsd" : { + "type" : "ControlElement", + "id" : "acm004573jsd", + "name" : "markAsAutomaticallyFound" + }, + "acm004574jsd" : { + "type" : "ControlElement", + "id" : "acm004574jsd", + "name" : "acceptAsLinked" + }, + "acm004575jsd" : { + "type" : "ControlElement", + "id" : "acm004575jsd", + "name" : "getObservables" + }, + "acm004576jsd" : { + "type" : "ControlElement", + "id" : "acm004576jsd", + "name" : "open" + }, + "acm004577jsd" : { + "type" : "ControlElement", + "id" : "acm004577jsd", + "name" : "openFolder" + }, + "acm004578jsd" : { + "type" : "ControlElement", + "id" : "acm004578jsd", + "name" : "renameToSuggestion" + }, + "acm004579jsd" : { + "type" : "ControlElement", + "id" : "acm004579jsd", + "name" : "askForNameAndRename" + }, + "acm004580jsd" : { + "type" : "ControlElement", + "id" : "acm004580jsd", + "name" : "renameFileToName" + }, + "acm004581jsd" : { + "type" : "ControlElement", + "id" : "acm004581jsd", + "name" : "performRenameWithConflictCheck" + }, + "acm004582jsd" : { + "type" : "ControlElement", + "id" : "acm004582jsd", + "name" : "moveToDefaultDirectory" + }, + "acm004583jsd" : { + "type" : "ControlElement", + "id" : "acm004583jsd", + "name" : "isGeneratedNameSameAsOriginal" + }, + "acm004584jsd" : { + "type" : "ControlElement", + "id" : "acm004584jsd", + "name" : "isGeneratedPathSameAsOriginal" + }, + "acm004585jsd" : { + "type" : "ControlElement", + "id" : "acm004585jsd", + "name" : "moveToDefaultDirectoryAndRename" + }, + "acm004586jsd" : { + "type" : "ControlElement", + "id" : "acm004586jsd", + "name" : "delete" + }, + "acm004587jsd" : { + "type" : "ControlElement", + "id" : "acm004587jsd", + "name" : "edit" + }, + "acm004588jsd" : { + "type" : "ControlElement", + "id" : "acm004588jsd", + "name" : "createWriteMetadataToPdfCommand" + }, + "acm004589jsd" : { + "type" : "ControlElement", + "id" : "acm004589jsd", + "name" : "download" + }, + "acm004590jsd" : { + "type" : "ControlElement", + "id" : "acm004590jsd", + "name" : "checkSSLHandshake" + }, + "acm004591jsd" : { + "type" : "ControlElement", + "id" : "acm004591jsd", + "name" : "prepareDownloadTask" + }, + "acm004592jsd" : { + "type" : "ControlElement", + "id" : "acm004592jsd", + "name" : "inferFileType" + }, + "acm004593jsd" : { + "type" : "ControlElement", + "id" : "acm004593jsd", + "name" : "inferFileTypeFromMimeType" + }, + "acm004594jsd" : { + "type" : "ControlElement", + "id" : "acm004594jsd", + "name" : "inferFileTypeFromURL" + }, + "acm004595jsd" : { + "type" : "ControlElement", + "id" : "acm004595jsd", + "name" : "getFile" + }, + "acm004596jsd" : { + "type" : "ControlElement", + "id" : "acm004596jsd", + "name" : "fileExistsValidationStatus" + }, + "acm004597jsd" : { + "type" : "ControlElement", + "id" : "acm004597jsd", + "name" : "parsePdfMetadataAndShowMergeDialog" + }, + "acm004598jsd" : { + "type" : "ControlElement", + "id" : "acm004598jsd", + "name" : "wrapImporterToSupplier" + }, + "acm004599jsd" : { + "type" : "ClassUnit", + "id" : "acm004599jsd", + "name" : "LinkedFileViewModel", + "compilationUnitId" : "acm004554jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm004599jsd", "acm004825jsd", "acm005416jsd", "acm006087jsd", "acm009965jsd", "acm011720jsd", "acm012455jsd", "acm015926jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm004559jsd", "acm004560jsd", "acm004561jsd", "acm004562jsd", "acm004563jsd", "acm004564jsd", "acm004565jsd", "acm004566jsd", "acm004567jsd", "acm004568jsd", "acm004569jsd", "acm004570jsd", "acm004571jsd", "acm004572jsd", "acm004573jsd", "acm004574jsd", "acm004575jsd", "acm004576jsd", "acm004577jsd", "acm004578jsd", "acm004579jsd", "acm004580jsd", "acm004581jsd", "acm004582jsd", "acm004583jsd", "acm004584jsd", "acm004585jsd", "acm004586jsd", "acm004587jsd", "acm004588jsd", "acm004589jsd", "acm004590jsd", "acm004591jsd", "acm004592jsd", "acm004593jsd", "acm004594jsd", "acm004595jsd", "acm004596jsd", "acm004597jsd", "acm004598jsd" ] + }, + "acm004600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004600jsd", + "name" : "LinkedFilesEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004622jsd", "acm004625jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004601jsd" : { + "type" : "CodePackage", + "id" : "acm004601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004602jsd" ] + }, + "acm004602jsd" : { + "type" : "CodePackage", + "id" : "acm004602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004603jsd" ] + }, + "acm004603jsd" : { + "type" : "CodePackage", + "id" : "acm004603jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004604jsd" ] + }, + "acm004604jsd" : { + "type" : "CodePackage", + "id" : "acm004604jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004600jsd" ] + }, + "acm004605jsd" : { + "type" : "ControlElement", + "id" : "acm004605jsd", + "name" : "LinkedFilesEditor" + }, + "acm004606jsd" : { + "type" : "ControlElement", + "id" : "acm004606jsd", + "name" : "handleOnDragOver" + }, + "acm004607jsd" : { + "type" : "ControlElement", + "id" : "acm004607jsd", + "name" : "handleOnDragDetected" + }, + "acm004608jsd" : { + "type" : "ControlElement", + "id" : "acm004608jsd", + "name" : "handleOnDragDropped" + }, + "acm004609jsd" : { + "type" : "ControlElement", + "id" : "acm004609jsd", + "name" : "createFileDisplay" + }, + "acm004610jsd" : { + "type" : "ControlElement", + "id" : "acm004610jsd", + "name" : "setUpKeyBindings" + }, + "acm004611jsd" : { + "type" : "ControlElement", + "id" : "acm004611jsd", + "name" : "getViewModel" + }, + "acm004612jsd" : { + "type" : "ControlElement", + "id" : "acm004612jsd", + "name" : "bindToEntry" + }, + "acm004613jsd" : { + "type" : "ControlElement", + "id" : "acm004613jsd", + "name" : "getNode" + }, + "acm004614jsd" : { + "type" : "ControlElement", + "id" : "acm004614jsd", + "name" : "addNewFile" + }, + "acm004615jsd" : { + "type" : "ControlElement", + "id" : "acm004615jsd", + "name" : "fetchFulltext" + }, + "acm004616jsd" : { + "type" : "ControlElement", + "id" : "acm004616jsd", + "name" : "addFromURL" + }, + "acm004617jsd" : { + "type" : "ControlElement", + "id" : "acm004617jsd", + "name" : "handleItemMouseClick" + }, + "acm004618jsd" : { + "type" : "ControlElement", + "id" : "acm004618jsd", + "name" : "getWeight" + }, + "acm004619jsd" : { + "type" : "ControlElement", + "id" : "acm004619jsd", + "name" : "createContextMenuForFile" + }, + "acm004620jsd" : { + "type" : "ControlElement", + "id" : "acm004620jsd", + "name" : "ContextAction" + }, + "acm004621jsd" : { + "type" : "ControlElement", + "id" : "acm004621jsd", + "name" : "execute" + }, + "acm004622jsd" : { + "type" : "ClassUnit", + "id" : "acm004622jsd", + "name" : "LinkedFilesEditor", + "compilationUnitId" : "acm004600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm002329jsd", "acm002980jsd", "acm004599jsd", "acm004625jsd", "acm004648jsd", "acm004825jsd", "acm009965jsd", "acm010051jsd", "acm010336jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004605jsd", "acm004606jsd", "acm004607jsd", "acm004608jsd", "acm004609jsd", "acm004610jsd", "acm004611jsd", "acm004612jsd", "acm004613jsd", "acm004614jsd", "acm004615jsd", "acm004616jsd", "acm004617jsd", "acm004618jsd", "acm004619jsd", "acm004620jsd", "acm004621jsd" ] + }, + "acm004623jsd" : { + "type" : "ControlElement", + "id" : "acm004623jsd", + "name" : "ContextAction" + }, + "acm004624jsd" : { + "type" : "ControlElement", + "id" : "acm004624jsd", + "name" : "execute" + }, + "acm004625jsd" : { + "type" : "ClassUnit", + "id" : "acm004625jsd", + "name" : "ContextAction", + "compilationUnitId" : "acm004600jsd", + "parentDatatypeId" : "acm004622jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd", "acm004599jsd", "acm021206jsd" ], + "content" : [ "acm004623jsd", "acm004624jsd" ] + }, + "acm004626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004626jsd", + "name" : "LinkedFilesEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004648jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004627jsd" : { + "type" : "CodePackage", + "id" : "acm004627jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004628jsd" ] + }, + "acm004628jsd" : { + "type" : "CodePackage", + "id" : "acm004628jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004629jsd" ] + }, + "acm004629jsd" : { + "type" : "CodePackage", + "id" : "acm004629jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004630jsd" ] + }, + "acm004630jsd" : { + "type" : "CodePackage", + "id" : "acm004630jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004626jsd" ] + }, + "acm004631jsd" : { + "type" : "ControlElement", + "id" : "acm004631jsd", + "name" : "LinkedFilesEditorViewModel" + }, + "acm004632jsd" : { + "type" : "ControlElement", + "id" : "acm004632jsd", + "name" : "getStringRepresentation" + }, + "acm004633jsd" : { + "type" : "ControlElement", + "id" : "acm004633jsd", + "name" : "fromFile" + }, + "acm004634jsd" : { + "type" : "ControlElement", + "id" : "acm004634jsd", + "name" : "fromFile" + }, + "acm004635jsd" : { + "type" : "ControlElement", + "id" : "acm004635jsd", + "name" : "isFulltextLookupInProgress" + }, + "acm004636jsd" : { + "type" : "ControlElement", + "id" : "acm004636jsd", + "name" : "parseToFileViewModel" + }, + "acm004637jsd" : { + "type" : "ControlElement", + "id" : "acm004637jsd", + "name" : "getFiles" + }, + "acm004638jsd" : { + "type" : "ControlElement", + "id" : "acm004638jsd", + "name" : "filesProperty" + }, + "acm004639jsd" : { + "type" : "ControlElement", + "id" : "acm004639jsd", + "name" : "addNewFile" + }, + "acm004640jsd" : { + "type" : "ControlElement", + "id" : "acm004640jsd", + "name" : "bindToEntry" + }, + "acm004641jsd" : { + "type" : "ControlElement", + "id" : "acm004641jsd", + "name" : "findAssociatedNotLinkedFiles" + }, + "acm004642jsd" : { + "type" : "ControlElement", + "id" : "acm004642jsd", + "name" : "downloadFile" + }, + "acm004643jsd" : { + "type" : "ControlElement", + "id" : "acm004643jsd", + "name" : "fetchFulltext" + }, + "acm004644jsd" : { + "type" : "ControlElement", + "id" : "acm004644jsd", + "name" : "addFromURL" + }, + "acm004645jsd" : { + "type" : "ControlElement", + "id" : "acm004645jsd", + "name" : "addFromURLAndDownload" + }, + "acm004646jsd" : { + "type" : "ControlElement", + "id" : "acm004646jsd", + "name" : "deleteFile" + }, + "acm004647jsd" : { + "type" : "ControlElement", + "id" : "acm004647jsd", + "name" : "removeFileLink" + }, + "acm004648jsd" : { + "type" : "ClassUnit", + "id" : "acm004648jsd", + "name" : "LinkedFilesEditorViewModel", + "compilationUnitId" : "acm004626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm004089jsd", "acm004328jsd", "acm004370jsd", "acm004599jsd", "acm009796jsd", "acm009809jsd", "acm009965jsd", "acm012353jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm018673jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm004631jsd", "acm004632jsd", "acm004633jsd", "acm004634jsd", "acm004635jsd", "acm004636jsd", "acm004637jsd", "acm004638jsd", "acm004639jsd", "acm004640jsd", "acm004641jsd", "acm004642jsd", "acm004643jsd", "acm004644jsd", "acm004645jsd", "acm004646jsd", "acm004647jsd" ] + }, + "acm004649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004649jsd", + "name" : "MapBasedEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004661jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004650jsd" : { + "type" : "CodePackage", + "id" : "acm004650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004651jsd" ] + }, + "acm004651jsd" : { + "type" : "CodePackage", + "id" : "acm004651jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004652jsd" ] + }, + "acm004652jsd" : { + "type" : "CodePackage", + "id" : "acm004652jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004653jsd" ] + }, + "acm004653jsd" : { + "type" : "CodePackage", + "id" : "acm004653jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004649jsd" ] + }, + "acm004654jsd" : { + "type" : "ControlElement", + "id" : "acm004654jsd", + "name" : "MapBasedEditorViewModel" + }, + "acm004655jsd" : { + "type" : "ControlElement", + "id" : "acm004655jsd", + "name" : "getItemMap" + }, + "acm004656jsd" : { + "type" : "ControlElement", + "id" : "acm004656jsd", + "name" : "getStringConverter" + }, + "acm004657jsd" : { + "type" : "ControlElement", + "id" : "acm004657jsd", + "name" : "toString" + }, + "acm004658jsd" : { + "type" : "ControlElement", + "id" : "acm004658jsd", + "name" : "fromString" + }, + "acm004659jsd" : { + "type" : "ControlElement", + "id" : "acm004659jsd", + "name" : "getValueFromString" + }, + "acm004660jsd" : { + "type" : "ControlElement", + "id" : "acm004660jsd", + "name" : "getItems" + }, + "acm004661jsd" : { + "type" : "ClassUnit", + "id" : "acm004661jsd", + "name" : "MapBasedEditorViewModel", + "compilationUnitId" : "acm004649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004693jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004661jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004654jsd", "acm004655jsd", "acm004656jsd", "acm004657jsd", "acm004658jsd", "acm004659jsd", "acm004660jsd" ] + }, + "acm004662jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004662jsd", + "name" : "MonthEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004673jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004663jsd" : { + "type" : "CodePackage", + "id" : "acm004663jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004664jsd" ] + }, + "acm004664jsd" : { + "type" : "CodePackage", + "id" : "acm004664jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004665jsd" ] + }, + "acm004665jsd" : { + "type" : "CodePackage", + "id" : "acm004665jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004666jsd" ] + }, + "acm004666jsd" : { + "type" : "CodePackage", + "id" : "acm004666jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004662jsd" ] + }, + "acm004667jsd" : { + "type" : "ControlElement", + "id" : "acm004667jsd", + "name" : "MonthEditorViewModel" + }, + "acm004668jsd" : { + "type" : "ControlElement", + "id" : "acm004668jsd", + "name" : "getStringConverter" + }, + "acm004669jsd" : { + "type" : "ControlElement", + "id" : "acm004669jsd", + "name" : "toString" + }, + "acm004670jsd" : { + "type" : "ControlElement", + "id" : "acm004670jsd", + "name" : "fromString" + }, + "acm004671jsd" : { + "type" : "ControlElement", + "id" : "acm004671jsd", + "name" : "getItems" + }, + "acm004672jsd" : { + "type" : "ControlElement", + "id" : "acm004672jsd", + "name" : "convertToDisplayText" + }, + "acm004673jsd" : { + "type" : "ClassUnit", + "id" : "acm004673jsd", + "name" : "MonthEditorViewModel", + "compilationUnitId" : "acm004662jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004693jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018032jsd", "acm018525jsd", "acm018673jsd" ], + "content" : [ "acm004667jsd", "acm004668jsd", "acm004669jsd", "acm004670jsd", "acm004671jsd", "acm004672jsd" ] + }, + "acm004674jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004674jsd", + "name" : "OptionEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004683jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004675jsd" : { + "type" : "CodePackage", + "id" : "acm004675jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004676jsd" ] + }, + "acm004676jsd" : { + "type" : "CodePackage", + "id" : "acm004676jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004677jsd" ] + }, + "acm004677jsd" : { + "type" : "CodePackage", + "id" : "acm004677jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004678jsd" ] + }, + "acm004678jsd" : { + "type" : "CodePackage", + "id" : "acm004678jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004674jsd" ] + }, + "acm004679jsd" : { + "type" : "ControlElement", + "id" : "acm004679jsd", + "name" : "OptionEditor" + }, + "acm004680jsd" : { + "type" : "ControlElement", + "id" : "acm004680jsd", + "name" : "getViewModel" + }, + "acm004681jsd" : { + "type" : "ControlElement", + "id" : "acm004681jsd", + "name" : "bindToEntry" + }, + "acm004682jsd" : { + "type" : "ControlElement", + "id" : "acm004682jsd", + "name" : "getNode" + }, + "acm004683jsd" : { + "type" : "ClassUnit", + "id" : "acm004683jsd", + "name" : "OptionEditor", + "compilationUnitId" : "acm004674jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm004693jsd", "acm010051jsd", "acm018267jsd" ], + "content" : [ "acm004679jsd", "acm004680jsd", "acm004681jsd", "acm004682jsd" ] + }, + "acm004684jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004684jsd", + "name" : "OptionEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004693jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004685jsd" : { + "type" : "CodePackage", + "id" : "acm004685jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004686jsd" ] + }, + "acm004686jsd" : { + "type" : "CodePackage", + "id" : "acm004686jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004687jsd" ] + }, + "acm004687jsd" : { + "type" : "CodePackage", + "id" : "acm004687jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004688jsd" ] + }, + "acm004688jsd" : { + "type" : "CodePackage", + "id" : "acm004688jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004684jsd" ] + }, + "acm004689jsd" : { + "type" : "ControlElement", + "id" : "acm004689jsd", + "name" : "OptionEditorViewModel" + }, + "acm004690jsd" : { + "type" : "ControlElement", + "id" : "acm004690jsd", + "name" : "getStringConverter" + }, + "acm004691jsd" : { + "type" : "ControlElement", + "id" : "acm004691jsd", + "name" : "getItems" + }, + "acm004692jsd" : { + "type" : "ControlElement", + "id" : "acm004692jsd", + "name" : "convertToDisplayText" + }, + "acm004693jsd" : { + "type" : "ClassUnit", + "id" : "acm004693jsd", + "name" : "OptionEditorViewModel", + "compilationUnitId" : "acm004684jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004689jsd", "acm004690jsd", "acm004691jsd", "acm004692jsd" ] + }, + "acm004694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004694jsd", + "name" : "OwnerEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004704jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004695jsd" : { + "type" : "CodePackage", + "id" : "acm004695jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004696jsd" ] + }, + "acm004696jsd" : { + "type" : "CodePackage", + "id" : "acm004696jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004697jsd" ] + }, + "acm004697jsd" : { + "type" : "CodePackage", + "id" : "acm004697jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004698jsd" ] + }, + "acm004698jsd" : { + "type" : "CodePackage", + "id" : "acm004698jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004694jsd" ] + }, + "acm004699jsd" : { + "type" : "ControlElement", + "id" : "acm004699jsd", + "name" : "OwnerEditor" + }, + "acm004700jsd" : { + "type" : "ControlElement", + "id" : "acm004700jsd", + "name" : "getViewModel" + }, + "acm004701jsd" : { + "type" : "ControlElement", + "id" : "acm004701jsd", + "name" : "bindToEntry" + }, + "acm004702jsd" : { + "type" : "ControlElement", + "id" : "acm004702jsd", + "name" : "getNode" + }, + "acm004703jsd" : { + "type" : "ControlElement", + "id" : "acm004703jsd", + "name" : "setOwner" + }, + "acm004704jsd" : { + "type" : "ClassUnit", + "id" : "acm004704jsd", + "name" : "OwnerEditor", + "compilationUnitId" : "acm004694jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004439jsd", "acm004468jsd", "acm004712jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004699jsd", "acm004700jsd", "acm004701jsd", "acm004702jsd", "acm004703jsd" ] + }, + "acm004705jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004705jsd", + "name" : "OwnerEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004712jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004706jsd" : { + "type" : "CodePackage", + "id" : "acm004706jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004707jsd" ] + }, + "acm004707jsd" : { + "type" : "CodePackage", + "id" : "acm004707jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004708jsd" ] + }, + "acm004708jsd" : { + "type" : "CodePackage", + "id" : "acm004708jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004709jsd" ] + }, + "acm004709jsd" : { + "type" : "CodePackage", + "id" : "acm004709jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004705jsd" ] + }, + "acm004710jsd" : { + "type" : "ControlElement", + "id" : "acm004710jsd", + "name" : "OwnerEditorViewModel" + }, + "acm004711jsd" : { + "type" : "ControlElement", + "id" : "acm004711jsd", + "name" : "setOwner" + }, + "acm004712jsd" : { + "type" : "ClassUnit", + "id" : "acm004712jsd", + "name" : "OwnerEditorViewModel", + "compilationUnitId" : "acm004705jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004710jsd", "acm004711jsd" ] + }, + "acm004713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004713jsd", + "name" : "PaginationEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004721jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004714jsd" : { + "type" : "CodePackage", + "id" : "acm004714jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004715jsd" ] + }, + "acm004715jsd" : { + "type" : "CodePackage", + "id" : "acm004715jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004716jsd" ] + }, + "acm004716jsd" : { + "type" : "CodePackage", + "id" : "acm004716jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004717jsd" ] + }, + "acm004717jsd" : { + "type" : "CodePackage", + "id" : "acm004717jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004713jsd" ] + }, + "acm004718jsd" : { + "type" : "ControlElement", + "id" : "acm004718jsd", + "name" : "PaginationEditorViewModel" + }, + "acm004719jsd" : { + "type" : "ControlElement", + "id" : "acm004719jsd", + "name" : "getItemMap" + }, + "acm004720jsd" : { + "type" : "ControlElement", + "id" : "acm004720jsd", + "name" : "convertToDisplayText" + }, + "acm004721jsd" : { + "type" : "ClassUnit", + "id" : "acm004721jsd", + "name" : "PaginationEditorViewModel", + "compilationUnitId" : "acm004713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004718jsd", "acm004719jsd", "acm004720jsd" ] + }, + "acm004722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004722jsd", + "name" : "PatentTypeEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004730jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004723jsd" : { + "type" : "CodePackage", + "id" : "acm004723jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004724jsd" ] + }, + "acm004724jsd" : { + "type" : "CodePackage", + "id" : "acm004724jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004725jsd" ] + }, + "acm004725jsd" : { + "type" : "CodePackage", + "id" : "acm004725jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004726jsd" ] + }, + "acm004726jsd" : { + "type" : "CodePackage", + "id" : "acm004726jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004722jsd" ] + }, + "acm004727jsd" : { + "type" : "ControlElement", + "id" : "acm004727jsd", + "name" : "PatentTypeEditorViewModel" + }, + "acm004728jsd" : { + "type" : "ControlElement", + "id" : "acm004728jsd", + "name" : "getItemMap" + }, + "acm004729jsd" : { + "type" : "ControlElement", + "id" : "acm004729jsd", + "name" : "convertToDisplayText" + }, + "acm004730jsd" : { + "type" : "ClassUnit", + "id" : "acm004730jsd", + "name" : "PatentTypeEditorViewModel", + "compilationUnitId" : "acm004722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004727jsd", "acm004728jsd", "acm004729jsd" ] + }, + "acm004731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004731jsd", + "name" : "PersonsEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004740jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004732jsd" : { + "type" : "CodePackage", + "id" : "acm004732jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004733jsd" ] + }, + "acm004733jsd" : { + "type" : "CodePackage", + "id" : "acm004733jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004734jsd" ] + }, + "acm004734jsd" : { + "type" : "CodePackage", + "id" : "acm004734jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004735jsd" ] + }, + "acm004735jsd" : { + "type" : "CodePackage", + "id" : "acm004735jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004731jsd" ] + }, + "acm004736jsd" : { + "type" : "ControlElement", + "id" : "acm004736jsd", + "name" : "PersonsEditor" + }, + "acm004737jsd" : { + "type" : "ControlElement", + "id" : "acm004737jsd", + "name" : "bindToEntry" + }, + "acm004738jsd" : { + "type" : "ControlElement", + "id" : "acm004738jsd", + "name" : "getNode" + }, + "acm004739jsd" : { + "type" : "ControlElement", + "id" : "acm004739jsd", + "name" : "requestFocus" + }, + "acm004740jsd" : { + "type" : "ClassUnit", + "id" : "acm004740jsd", + "name" : "PersonsEditor", + "compilationUnitId" : "acm004731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm004406jsd", "acm004439jsd", "acm004451jsd", "acm004468jsd", "acm004750jsd", "acm010355jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004736jsd", "acm004737jsd", "acm004738jsd", "acm004739jsd" ] + }, + "acm004741jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004741jsd", + "name" : "PersonsEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004750jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004742jsd" : { + "type" : "CodePackage", + "id" : "acm004742jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004743jsd" ] + }, + "acm004743jsd" : { + "type" : "CodePackage", + "id" : "acm004743jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004744jsd" ] + }, + "acm004744jsd" : { + "type" : "CodePackage", + "id" : "acm004744jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004745jsd" ] + }, + "acm004745jsd" : { + "type" : "CodePackage", + "id" : "acm004745jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004741jsd" ] + }, + "acm004746jsd" : { + "type" : "ControlElement", + "id" : "acm004746jsd", + "name" : "PersonsEditorViewModel" + }, + "acm004747jsd" : { + "type" : "ControlElement", + "id" : "acm004747jsd", + "name" : "getAutoCompletionConverter" + }, + "acm004748jsd" : { + "type" : "ControlElement", + "id" : "acm004748jsd", + "name" : "complete" + }, + "acm004749jsd" : { + "type" : "ControlElement", + "id" : "acm004749jsd", + "name" : "getAutoCompletionStrategy" + }, + "acm004750jsd" : { + "type" : "ClassUnit", + "id" : "acm004750jsd", + "name" : "PersonsEditorViewModel", + "compilationUnitId" : "acm004741jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002159jsd", "acm002193jsd", "acm002210jsd", "acm002287jsd", "acm002329jsd", "acm014644jsd", "acm018138jsd", "acm018673jsd" ], + "content" : [ "acm004746jsd", "acm004747jsd", "acm004748jsd", "acm004749jsd" ] + }, + "acm004751jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004751jsd", + "name" : "SimpleEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004761jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004752jsd" : { + "type" : "CodePackage", + "id" : "acm004752jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004753jsd" ] + }, + "acm004753jsd" : { + "type" : "CodePackage", + "id" : "acm004753jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004754jsd" ] + }, + "acm004754jsd" : { + "type" : "CodePackage", + "id" : "acm004754jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004755jsd" ] + }, + "acm004755jsd" : { + "type" : "CodePackage", + "id" : "acm004755jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004751jsd" ] + }, + "acm004756jsd" : { + "type" : "ControlElement", + "id" : "acm004756jsd", + "name" : "SimpleEditor" + }, + "acm004757jsd" : { + "type" : "ControlElement", + "id" : "acm004757jsd", + "name" : "SimpleEditor" + }, + "acm004758jsd" : { + "type" : "ControlElement", + "id" : "acm004758jsd", + "name" : "bindToEntry" + }, + "acm004759jsd" : { + "type" : "ControlElement", + "id" : "acm004759jsd", + "name" : "getNode" + }, + "acm004760jsd" : { + "type" : "ControlElement", + "id" : "acm004760jsd", + "name" : "requestFocus" + }, + "acm004761jsd" : { + "type" : "ClassUnit", + "id" : "acm004761jsd", + "name" : "SimpleEditor", + "compilationUnitId" : "acm004751jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm002231jsd", "acm002251jsd", "acm002329jsd", "acm004406jsd", "acm004439jsd", "acm004451jsd", "acm004468jsd", "acm004769jsd", "acm004846jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004756jsd", "acm004757jsd", "acm004758jsd", "acm004759jsd", "acm004760jsd" ] + }, + "acm004762jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004762jsd", + "name" : "SimpleEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004769jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004763jsd" : { + "type" : "CodePackage", + "id" : "acm004763jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004764jsd" ] + }, + "acm004764jsd" : { + "type" : "CodePackage", + "id" : "acm004764jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004765jsd" ] + }, + "acm004765jsd" : { + "type" : "CodePackage", + "id" : "acm004765jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004766jsd" ] + }, + "acm004766jsd" : { + "type" : "CodePackage", + "id" : "acm004766jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004762jsd" ] + }, + "acm004767jsd" : { + "type" : "ControlElement", + "id" : "acm004767jsd", + "name" : "SimpleEditorViewModel" + }, + "acm004768jsd" : { + "type" : "ControlElement", + "id" : "acm004768jsd", + "name" : "getAutoCompletionStrategy" + }, + "acm004769jsd" : { + "type" : "ClassUnit", + "id" : "acm004769jsd", + "name" : "SimpleEditorViewModel", + "compilationUnitId" : "acm004762jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002168jsd", "acm002210jsd", "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004767jsd", "acm004768jsd" ] + }, + "acm004770jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004770jsd", + "name" : "TextInputControlBehavior", + "parentId" : "acm004375jsd", + "content" : [ "acm004777jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004771jsd" : { + "type" : "CodePackage", + "id" : "acm004771jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004772jsd" ] + }, + "acm004772jsd" : { + "type" : "CodePackage", + "id" : "acm004772jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004773jsd" ] + }, + "acm004773jsd" : { + "type" : "CodePackage", + "id" : "acm004773jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004774jsd" ] + }, + "acm004774jsd" : { + "type" : "CodePackage", + "id" : "acm004774jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004770jsd" ] + }, + "acm004775jsd" : { + "type" : "ControlElement", + "id" : "acm004775jsd", + "name" : "showContextMenu" + }, + "acm004776jsd" : { + "type" : "ControlElement", + "id" : "acm004776jsd", + "name" : "showContextMenu" + }, + "acm004777jsd" : { + "type" : "ClassUnit", + "id" : "acm004777jsd", + "name" : "TextInputControlBehavior", + "compilationUnitId" : "acm004770jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004775jsd", "acm004776jsd" ] + }, + "acm004778jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004778jsd", + "name" : "TypeEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004786jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004779jsd" : { + "type" : "CodePackage", + "id" : "acm004779jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004780jsd" ] + }, + "acm004780jsd" : { + "type" : "CodePackage", + "id" : "acm004780jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004781jsd" ] + }, + "acm004781jsd" : { + "type" : "CodePackage", + "id" : "acm004781jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004782jsd" ] + }, + "acm004782jsd" : { + "type" : "CodePackage", + "id" : "acm004782jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004778jsd" ] + }, + "acm004783jsd" : { + "type" : "ControlElement", + "id" : "acm004783jsd", + "name" : "TypeEditorViewModel" + }, + "acm004784jsd" : { + "type" : "ControlElement", + "id" : "acm004784jsd", + "name" : "getItemMap" + }, + "acm004785jsd" : { + "type" : "ControlElement", + "id" : "acm004785jsd", + "name" : "convertToDisplayText" + }, + "acm004786jsd" : { + "type" : "ClassUnit", + "id" : "acm004786jsd", + "name" : "TypeEditorViewModel", + "compilationUnitId" : "acm004778jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004783jsd", "acm004784jsd", "acm004785jsd" ] + }, + "acm004787jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004787jsd", + "name" : "URLUtil", + "parentId" : "acm004375jsd", + "content" : [ "acm004796jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004788jsd" : { + "type" : "CodePackage", + "id" : "acm004788jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004789jsd" ] + }, + "acm004789jsd" : { + "type" : "CodePackage", + "id" : "acm004789jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004790jsd" ] + }, + "acm004790jsd" : { + "type" : "CodePackage", + "id" : "acm004790jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004791jsd" ] + }, + "acm004791jsd" : { + "type" : "CodePackage", + "id" : "acm004791jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004787jsd" ] + }, + "acm004792jsd" : { + "type" : "ControlElement", + "id" : "acm004792jsd", + "name" : "URLUtil" + }, + "acm004793jsd" : { + "type" : "ControlElement", + "id" : "acm004793jsd", + "name" : "cleanGoogleSearchURL" + }, + "acm004794jsd" : { + "type" : "ControlElement", + "id" : "acm004794jsd", + "name" : "isURL" + }, + "acm004795jsd" : { + "type" : "ControlElement", + "id" : "acm004795jsd", + "name" : "getSuffix" + }, + "acm004796jsd" : { + "type" : "ClassUnit", + "id" : "acm004796jsd", + "name" : "URLUtil", + "compilationUnitId" : "acm004787jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020848jsd" ], + "content" : [ "acm004792jsd", "acm004793jsd", "acm004794jsd", "acm004795jsd" ] + }, + "acm004797jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004797jsd", + "name" : "UrlEditor", + "parentId" : "acm004375jsd", + "content" : [ "acm004807jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004798jsd" : { + "type" : "CodePackage", + "id" : "acm004798jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004799jsd" ] + }, + "acm004799jsd" : { + "type" : "CodePackage", + "id" : "acm004799jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004800jsd" ] + }, + "acm004800jsd" : { + "type" : "CodePackage", + "id" : "acm004800jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004801jsd" ] + }, + "acm004801jsd" : { + "type" : "CodePackage", + "id" : "acm004801jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004797jsd" ] + }, + "acm004802jsd" : { + "type" : "ControlElement", + "id" : "acm004802jsd", + "name" : "UrlEditor" + }, + "acm004803jsd" : { + "type" : "ControlElement", + "id" : "acm004803jsd", + "name" : "getViewModel" + }, + "acm004804jsd" : { + "type" : "ControlElement", + "id" : "acm004804jsd", + "name" : "bindToEntry" + }, + "acm004805jsd" : { + "type" : "ControlElement", + "id" : "acm004805jsd", + "name" : "getNode" + }, + "acm004806jsd" : { + "type" : "ControlElement", + "id" : "acm004806jsd", + "name" : "openExternalLink" + }, + "acm004807jsd" : { + "type" : "ClassUnit", + "id" : "acm004807jsd", + "name" : "UrlEditor", + "compilationUnitId" : "acm004797jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm004439jsd", "acm004468jsd", "acm004817jsd", "acm011767jsd", "acm012035jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004802jsd", "acm004803jsd", "acm004804jsd", "acm004805jsd", "acm004806jsd" ] + }, + "acm004808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004808jsd", + "name" : "UrlEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004817jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004809jsd" : { + "type" : "CodePackage", + "id" : "acm004809jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004810jsd" ] + }, + "acm004810jsd" : { + "type" : "CodePackage", + "id" : "acm004810jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004811jsd" ] + }, + "acm004811jsd" : { + "type" : "CodePackage", + "id" : "acm004811jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004812jsd" ] + }, + "acm004812jsd" : { + "type" : "CodePackage", + "id" : "acm004812jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004808jsd" ] + }, + "acm004813jsd" : { + "type" : "ControlElement", + "id" : "acm004813jsd", + "name" : "UrlEditorViewModel" + }, + "acm004814jsd" : { + "type" : "ControlElement", + "id" : "acm004814jsd", + "name" : "isValidUrlIsNotPresent" + }, + "acm004815jsd" : { + "type" : "ControlElement", + "id" : "acm004815jsd", + "name" : "validUrlIsNotPresentProperty" + }, + "acm004816jsd" : { + "type" : "ControlElement", + "id" : "acm004816jsd", + "name" : "openExternalLink" + }, + "acm004817jsd" : { + "type" : "ClassUnit", + "id" : "acm004817jsd", + "name" : "UrlEditorViewModel", + "compilationUnitId" : "acm004808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004813jsd", "acm004814jsd", "acm004815jsd", "acm004816jsd" ] + }, + "acm004818jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004818jsd", + "name" : "WriteMetadataToPdfCommand", + "parentId" : "acm004375jsd", + "content" : [ "acm004825jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004819jsd" : { + "type" : "CodePackage", + "id" : "acm004819jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004820jsd" ] + }, + "acm004820jsd" : { + "type" : "CodePackage", + "id" : "acm004820jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004821jsd" ] + }, + "acm004821jsd" : { + "type" : "CodePackage", + "id" : "acm004821jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004822jsd" ] + }, + "acm004822jsd" : { + "type" : "CodePackage", + "id" : "acm004822jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004818jsd" ] + }, + "acm004823jsd" : { + "type" : "ControlElement", + "id" : "acm004823jsd", + "name" : "WriteMetadataToPdfCommand" + }, + "acm004824jsd" : { + "type" : "ControlElement", + "id" : "acm004824jsd", + "name" : "execute" + }, + "acm004825jsd" : { + "type" : "ClassUnit", + "id" : "acm004825jsd", + "name" : "WriteMetadataToPdfCommand", + "compilationUnitId" : "acm004818jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm004823jsd", "acm004824jsd" ] + }, + "acm004826jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004826jsd", + "name" : "YesNoEditorViewModel", + "parentId" : "acm004375jsd", + "content" : [ "acm004834jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004827jsd" : { + "type" : "CodePackage", + "id" : "acm004827jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004828jsd" ] + }, + "acm004828jsd" : { + "type" : "CodePackage", + "id" : "acm004828jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004829jsd" ] + }, + "acm004829jsd" : { + "type" : "CodePackage", + "id" : "acm004829jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004830jsd" ] + }, + "acm004830jsd" : { + "type" : "CodePackage", + "id" : "acm004830jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004826jsd" ] + }, + "acm004831jsd" : { + "type" : "ControlElement", + "id" : "acm004831jsd", + "name" : "YesNoEditorViewModel" + }, + "acm004832jsd" : { + "type" : "ControlElement", + "id" : "acm004832jsd", + "name" : "getItemMap" + }, + "acm004833jsd" : { + "type" : "ControlElement", + "id" : "acm004833jsd", + "name" : "convertToDisplayText" + }, + "acm004834jsd" : { + "type" : "ClassUnit", + "id" : "acm004834jsd", + "name" : "YesNoEditorViewModel", + "compilationUnitId" : "acm004826jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002329jsd", "acm014644jsd", "acm018673jsd" ], + "content" : [ "acm004831jsd", "acm004832jsd", "acm004833jsd" ] + }, + "acm004835jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004835jsd", + "name" : "DefaultMenu", + "parentId" : "acm004840jsd", + "content" : [ "acm004846jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "contextmenu" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004836jsd" : { + "type" : "CodePackage", + "id" : "acm004836jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004837jsd" ] + }, + "acm004837jsd" : { + "type" : "CodePackage", + "id" : "acm004837jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004838jsd" ] + }, + "acm004838jsd" : { + "type" : "CodePackage", + "id" : "acm004838jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004839jsd" ] + }, + "acm004839jsd" : { + "type" : "CodePackage", + "id" : "acm004839jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004840jsd" ] + }, + "acm004840jsd" : { + "type" : "CodePackage", + "id" : "acm004840jsd", + "name" : "contextmenu", + "parentId" : "acm004375jsd", + "content" : [ "acm004835jsd", "acm004847jsd", "acm004857jsd", "acm004867jsd" ] + }, + "acm004841jsd" : { + "type" : "ControlElement", + "id" : "acm004841jsd", + "name" : "DefaultMenu" + }, + "acm004842jsd" : { + "type" : "ControlElement", + "id" : "acm004842jsd", + "name" : "get" + }, + "acm004843jsd" : { + "type" : "ControlElement", + "id" : "acm004843jsd", + "name" : "getCaseChangeMenu" + }, + "acm004844jsd" : { + "type" : "ControlElement", + "id" : "acm004844jsd", + "name" : "getConversionMenu" + }, + "acm004845jsd" : { + "type" : "ControlElement", + "id" : "acm004845jsd", + "name" : "getClearFieldMenuItem" + }, + "acm004846jsd" : { + "type" : "ClassUnit", + "id" : "acm004846jsd", + "name" : "DefaultMenu", + "compilationUnitId" : "acm004835jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004884jsd", "acm011208jsd" ], + "content" : [ "acm004841jsd", "acm004842jsd", "acm004843jsd", "acm004844jsd", "acm004845jsd" ] + }, + "acm004847jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004847jsd", + "name" : "EditorContextAction", + "parentId" : "acm004840jsd", + "content" : [ "acm004856jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "contextmenu" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004848jsd" : { + "type" : "CodePackage", + "id" : "acm004848jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004849jsd" ] + }, + "acm004849jsd" : { + "type" : "CodePackage", + "id" : "acm004849jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004850jsd" ] + }, + "acm004850jsd" : { + "type" : "CodePackage", + "id" : "acm004850jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004851jsd" ] + }, + "acm004851jsd" : { + "type" : "CodePackage", + "id" : "acm004851jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004852jsd" ] + }, + "acm004852jsd" : { + "type" : "CodePackage", + "id" : "acm004852jsd", + "name" : "contextmenu", + "parentId" : null, + "content" : [ "acm004847jsd" ] + }, + "acm004853jsd" : { + "type" : "ControlElement", + "id" : "acm004853jsd", + "name" : "EditorContextAction" + }, + "acm004854jsd" : { + "type" : "ControlElement", + "id" : "acm004854jsd", + "name" : "execute" + }, + "acm004855jsd" : { + "type" : "ControlElement", + "id" : "acm004855jsd", + "name" : "getDefaultContextMenuItems" + }, + "acm004856jsd" : { + "type" : "ClassUnit", + "id" : "acm004856jsd", + "name" : "EditorContextAction", + "compilationUnitId" : "acm004847jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm002150jsd", "acm004856jsd", "acm005802jsd" ], + "content" : [ "acm004853jsd", "acm004854jsd", "acm004855jsd" ] + }, + "acm004857jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004857jsd", + "name" : "EditorMenus", + "parentId" : "acm004840jsd", + "content" : [ "acm004866jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "contextmenu" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004858jsd" : { + "type" : "CodePackage", + "id" : "acm004858jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004859jsd" ] + }, + "acm004859jsd" : { + "type" : "CodePackage", + "id" : "acm004859jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004860jsd" ] + }, + "acm004860jsd" : { + "type" : "CodePackage", + "id" : "acm004860jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004861jsd" ] + }, + "acm004861jsd" : { + "type" : "CodePackage", + "id" : "acm004861jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004862jsd" ] + }, + "acm004862jsd" : { + "type" : "CodePackage", + "id" : "acm004862jsd", + "name" : "contextmenu", + "parentId" : null, + "content" : [ "acm004857jsd" ] + }, + "acm004863jsd" : { + "type" : "ControlElement", + "id" : "acm004863jsd", + "name" : "getNameMenu" + }, + "acm004864jsd" : { + "type" : "ControlElement", + "id" : "acm004864jsd", + "name" : "getDOIMenu" + }, + "acm004865jsd" : { + "type" : "ControlElement", + "id" : "acm004865jsd", + "name" : "getCleanupUrlMenu" + }, + "acm004866jsd" : { + "type" : "ClassUnit", + "id" : "acm004866jsd", + "name" : "EditorMenus", + "compilationUnitId" : "acm004857jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004863jsd", "acm004864jsd", "acm004865jsd" ] + }, + "acm004867jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004867jsd", + "name" : "ProtectedTermsMenu", + "parentId" : "acm004840jsd", + "content" : [ "acm004884jsd", "acm004887jsd", "acm004890jsd", "acm004893jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "contextmenu" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004868jsd" : { + "type" : "CodePackage", + "id" : "acm004868jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004869jsd" ] + }, + "acm004869jsd" : { + "type" : "CodePackage", + "id" : "acm004869jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004870jsd" ] + }, + "acm004870jsd" : { + "type" : "CodePackage", + "id" : "acm004870jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004871jsd" ] + }, + "acm004871jsd" : { + "type" : "CodePackage", + "id" : "acm004871jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004872jsd" ] + }, + "acm004872jsd" : { + "type" : "CodePackage", + "id" : "acm004872jsd", + "name" : "contextmenu", + "parentId" : null, + "content" : [ "acm004867jsd" ] + }, + "acm004873jsd" : { + "type" : "ControlElement", + "id" : "acm004873jsd", + "name" : "getText" + }, + "acm004874jsd" : { + "type" : "ControlElement", + "id" : "acm004874jsd", + "name" : "getIcon" + }, + "acm004875jsd" : { + "type" : "ControlElement", + "id" : "acm004875jsd", + "name" : "getDescription" + }, + "acm004876jsd" : { + "type" : "ControlElement", + "id" : "acm004876jsd", + "name" : "ProtectSelectionAction" + }, + "acm004877jsd" : { + "type" : "ControlElement", + "id" : "acm004877jsd", + "name" : "execute" + }, + "acm004878jsd" : { + "type" : "ControlElement", + "id" : "acm004878jsd", + "name" : "FormatFieldAction" + }, + "acm004879jsd" : { + "type" : "ControlElement", + "id" : "acm004879jsd", + "name" : "execute" + }, + "acm004880jsd" : { + "type" : "ControlElement", + "id" : "acm004880jsd", + "name" : "AddToProtectedTermsAction" + }, + "acm004881jsd" : { + "type" : "ControlElement", + "id" : "acm004881jsd", + "name" : "execute" + }, + "acm004882jsd" : { + "type" : "ControlElement", + "id" : "acm004882jsd", + "name" : "ProtectedTermsMenu" + }, + "acm004883jsd" : { + "type" : "ControlElement", + "id" : "acm004883jsd", + "name" : "getExternalFilesMenu" + }, + "acm004884jsd" : { + "type" : "ClassUnit", + "id" : "acm004884jsd", + "name" : "ProtectedTermsMenu", + "compilationUnitId" : "acm004867jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm002087jsd", "acm002126jsd", "acm004887jsd", "acm004890jsd", "acm005416jsd", "acm011208jsd", "acm012098jsd", "acm016672jsd" ], + "content" : [ "acm004873jsd", "acm004874jsd", "acm004875jsd", "acm004876jsd", "acm004877jsd", "acm004878jsd", "acm004879jsd", "acm004880jsd", "acm004881jsd", "acm004882jsd", "acm004883jsd" ] + }, + "acm004885jsd" : { + "type" : "ControlElement", + "id" : "acm004885jsd", + "name" : "ProtectSelectionAction" + }, + "acm004886jsd" : { + "type" : "ControlElement", + "id" : "acm004886jsd", + "name" : "execute" + }, + "acm004887jsd" : { + "type" : "ClassUnit", + "id" : "acm004887jsd", + "name" : "ProtectSelectionAction", + "compilationUnitId" : "acm004867jsd", + "parentDatatypeId" : "acm004884jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004885jsd", "acm004886jsd" ] + }, + "acm004888jsd" : { + "type" : "ControlElement", + "id" : "acm004888jsd", + "name" : "FormatFieldAction" + }, + "acm004889jsd" : { + "type" : "ControlElement", + "id" : "acm004889jsd", + "name" : "execute" + }, + "acm004890jsd" : { + "type" : "ClassUnit", + "id" : "acm004890jsd", + "name" : "FormatFieldAction", + "compilationUnitId" : "acm004867jsd", + "parentDatatypeId" : "acm004884jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004888jsd", "acm004889jsd" ] + }, + "acm004891jsd" : { + "type" : "ControlElement", + "id" : "acm004891jsd", + "name" : "AddToProtectedTermsAction" + }, + "acm004892jsd" : { + "type" : "ControlElement", + "id" : "acm004892jsd", + "name" : "execute" + }, + "acm004893jsd" : { + "type" : "ClassUnit", + "id" : "acm004893jsd", + "name" : "AddToProtectedTermsAction", + "compilationUnitId" : "acm004867jsd", + "parentDatatypeId" : "acm004884jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd" ], + "content" : [ "acm004891jsd", "acm004892jsd" ] + }, + "acm004894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004894jsd", + "name" : "BaseIdentifierEditorViewModel", + "parentId" : "acm004899jsd", + "content" : [ "acm004916jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004895jsd" : { + "type" : "CodePackage", + "id" : "acm004895jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004896jsd" ] + }, + "acm004896jsd" : { + "type" : "CodePackage", + "id" : "acm004896jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004897jsd" ] + }, + "acm004897jsd" : { + "type" : "CodePackage", + "id" : "acm004897jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004898jsd" ] + }, + "acm004898jsd" : { + "type" : "CodePackage", + "id" : "acm004898jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004899jsd" ] + }, + "acm004899jsd" : { + "type" : "CodePackage", + "id" : "acm004899jsd", + "name" : "identifier", + "parentId" : "acm004375jsd", + "content" : [ "acm004894jsd", "acm004917jsd", "acm004928jsd", "acm004937jsd", "acm004946jsd" ] + }, + "acm004900jsd" : { + "type" : "ControlElement", + "id" : "acm004900jsd", + "name" : "BaseIdentifierEditorViewModel" + }, + "acm004901jsd" : { + "type" : "ControlElement", + "id" : "acm004901jsd", + "name" : "configure" + }, + "acm004902jsd" : { + "type" : "ControlElement", + "id" : "acm004902jsd", + "name" : "updateIdentifier" + }, + "acm004903jsd" : { + "type" : "ControlElement", + "id" : "acm004903jsd", + "name" : "handleIdentifierFetchingError" + }, + "acm004904jsd" : { + "type" : "ControlElement", + "id" : "acm004904jsd", + "name" : "canFetchBibliographyInformationByIdProperty" + }, + "acm004905jsd" : { + "type" : "ControlElement", + "id" : "acm004905jsd", + "name" : "getCanFetchBibliographyInformationById" + }, + "acm004906jsd" : { + "type" : "ControlElement", + "id" : "acm004906jsd", + "name" : "canLookupIdentifierProperty" + }, + "acm004907jsd" : { + "type" : "ControlElement", + "id" : "acm004907jsd", + "name" : "getCanLookupIdentifier" + }, + "acm004908jsd" : { + "type" : "ControlElement", + "id" : "acm004908jsd", + "name" : "isInvalidIdentifierProperty" + }, + "acm004909jsd" : { + "type" : "ControlElement", + "id" : "acm004909jsd", + "name" : "getIsInvalidIdentifier" + }, + "acm004910jsd" : { + "type" : "ControlElement", + "id" : "acm004910jsd", + "name" : "getIdentifierLookupInProgress" + }, + "acm004911jsd" : { + "type" : "ControlElement", + "id" : "acm004911jsd", + "name" : "identifierLookupInProgressProperty" + }, + "acm004912jsd" : { + "type" : "ControlElement", + "id" : "acm004912jsd", + "name" : "fetchBibliographyInformation" + }, + "acm004913jsd" : { + "type" : "ControlElement", + "id" : "acm004913jsd", + "name" : "lookupIdentifier" + }, + "acm004914jsd" : { + "type" : "ControlElement", + "id" : "acm004914jsd", + "name" : "openExternalLink" + }, + "acm004915jsd" : { + "type" : "ControlElement", + "id" : "acm004915jsd", + "name" : "bindToEntry" + }, + "acm004916jsd" : { + "type" : "ClassUnit", + "id" : "acm004916jsd", + "name" : "BaseIdentifierEditorViewModel", + "compilationUnitId" : "acm004894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004381jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm004916jsd", "acm009965jsd", "acm012305jsd", "acm012332jsd", "acm012378jsd", "acm014442jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm018930jsd", "acm021206jsd" ], + "content" : [ "acm004900jsd", "acm004901jsd", "acm004902jsd", "acm004903jsd", "acm004904jsd", "acm004905jsd", "acm004906jsd", "acm004907jsd", "acm004908jsd", "acm004909jsd", "acm004910jsd", "acm004911jsd", "acm004912jsd", "acm004913jsd", "acm004914jsd", "acm004915jsd" ] + }, + "acm004917jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004917jsd", + "name" : "DoiIdentifierEditorViewModel", + "parentId" : "acm004899jsd", + "content" : [ "acm004927jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004918jsd" : { + "type" : "CodePackage", + "id" : "acm004918jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004919jsd" ] + }, + "acm004919jsd" : { + "type" : "CodePackage", + "id" : "acm004919jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004920jsd" ] + }, + "acm004920jsd" : { + "type" : "CodePackage", + "id" : "acm004920jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004921jsd" ] + }, + "acm004921jsd" : { + "type" : "CodePackage", + "id" : "acm004921jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004922jsd" ] + }, + "acm004922jsd" : { + "type" : "CodePackage", + "id" : "acm004922jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm004917jsd" ] + }, + "acm004923jsd" : { + "type" : "ControlElement", + "id" : "acm004923jsd", + "name" : "DoiIdentifierEditorViewModel" + }, + "acm004924jsd" : { + "type" : "ControlElement", + "id" : "acm004924jsd", + "name" : "lookupIdentifier" + }, + "acm004925jsd" : { + "type" : "ControlElement", + "id" : "acm004925jsd", + "name" : "fetchBibliographyInformation" + }, + "acm004926jsd" : { + "type" : "ControlElement", + "id" : "acm004926jsd", + "name" : "openExternalLink" + }, + "acm004927jsd" : { + "type" : "ClassUnit", + "id" : "acm004927jsd", + "name" : "DoiIdentifierEditorViewModel", + "compilationUnitId" : "acm004917jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004916jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm004927jsd", "acm006551jsd", "acm009965jsd", "acm012920jsd", "acm014644jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm004923jsd", "acm004924jsd", "acm004925jsd", "acm004926jsd" ] + }, + "acm004928jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004928jsd", + "name" : "EprintIdentifierEditorViewModel", + "parentId" : "acm004899jsd", + "content" : [ "acm004936jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004929jsd" : { + "type" : "CodePackage", + "id" : "acm004929jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004930jsd" ] + }, + "acm004930jsd" : { + "type" : "CodePackage", + "id" : "acm004930jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004931jsd" ] + }, + "acm004931jsd" : { + "type" : "CodePackage", + "id" : "acm004931jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004932jsd" ] + }, + "acm004932jsd" : { + "type" : "CodePackage", + "id" : "acm004932jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004933jsd" ] + }, + "acm004933jsd" : { + "type" : "CodePackage", + "id" : "acm004933jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm004928jsd" ] + }, + "acm004934jsd" : { + "type" : "ControlElement", + "id" : "acm004934jsd", + "name" : "EprintIdentifierEditorViewModel" + }, + "acm004935jsd" : { + "type" : "ControlElement", + "id" : "acm004935jsd", + "name" : "bindToEntry" + }, + "acm004936jsd" : { + "type" : "ClassUnit", + "id" : "acm004936jsd", + "name" : "EprintIdentifierEditorViewModel", + "compilationUnitId" : "acm004928jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004916jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm009965jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004934jsd", "acm004935jsd" ] + }, + "acm004937jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004937jsd", + "name" : "ISBNIdentifierEditorViewModel", + "parentId" : "acm004899jsd", + "content" : [ "acm004945jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004938jsd" : { + "type" : "CodePackage", + "id" : "acm004938jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004939jsd" ] + }, + "acm004939jsd" : { + "type" : "CodePackage", + "id" : "acm004939jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004940jsd" ] + }, + "acm004940jsd" : { + "type" : "CodePackage", + "id" : "acm004940jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004941jsd" ] + }, + "acm004941jsd" : { + "type" : "CodePackage", + "id" : "acm004941jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004942jsd" ] + }, + "acm004942jsd" : { + "type" : "CodePackage", + "id" : "acm004942jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm004937jsd" ] + }, + "acm004943jsd" : { + "type" : "ControlElement", + "id" : "acm004943jsd", + "name" : "ISBNIdentifierEditorViewModel" + }, + "acm004944jsd" : { + "type" : "ControlElement", + "id" : "acm004944jsd", + "name" : "fetchBibliographyInformation" + }, + "acm004945jsd" : { + "type" : "ClassUnit", + "id" : "acm004945jsd", + "name" : "ISBNIdentifierEditorViewModel", + "compilationUnitId" : "acm004937jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004916jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm006551jsd", "acm009965jsd", "acm014644jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm004943jsd", "acm004944jsd" ] + }, + "acm004946jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004946jsd", + "name" : "IdentifierEditor", + "parentId" : "acm004899jsd", + "content" : [ "acm004959jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "fieldeditors", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004947jsd" : { + "type" : "CodePackage", + "id" : "acm004947jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004948jsd" ] + }, + "acm004948jsd" : { + "type" : "CodePackage", + "id" : "acm004948jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004949jsd" ] + }, + "acm004949jsd" : { + "type" : "CodePackage", + "id" : "acm004949jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004950jsd" ] + }, + "acm004950jsd" : { + "type" : "CodePackage", + "id" : "acm004950jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm004951jsd" ] + }, + "acm004951jsd" : { + "type" : "CodePackage", + "id" : "acm004951jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm004946jsd" ] + }, + "acm004952jsd" : { + "type" : "ControlElement", + "id" : "acm004952jsd", + "name" : "IdentifierEditor" + }, + "acm004953jsd" : { + "type" : "ControlElement", + "id" : "acm004953jsd", + "name" : "getViewModel" + }, + "acm004954jsd" : { + "type" : "ControlElement", + "id" : "acm004954jsd", + "name" : "bindToEntry" + }, + "acm004955jsd" : { + "type" : "ControlElement", + "id" : "acm004955jsd", + "name" : "getNode" + }, + "acm004956jsd" : { + "type" : "ControlElement", + "id" : "acm004956jsd", + "name" : "fetchInformationByIdentifier" + }, + "acm004957jsd" : { + "type" : "ControlElement", + "id" : "acm004957jsd", + "name" : "lookupIdentifier" + }, + "acm004958jsd" : { + "type" : "ControlElement", + "id" : "acm004958jsd", + "name" : "openExternalLink" + }, + "acm004959jsd" : { + "type" : "ClassUnit", + "id" : "acm004959jsd", + "name" : "IdentifierEditor", + "compilationUnitId" : "acm004946jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm004479jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002329jsd", "acm004439jsd", "acm004468jsd", "acm004846jsd", "acm004916jsd", "acm004927jsd", "acm004936jsd", "acm004945jsd", "acm009965jsd", "acm014644jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm004952jsd", "acm004953jsd", "acm004954jsd", "acm004955jsd", "acm004956jsd", "acm004957jsd", "acm004958jsd" ] + }, + "acm004960jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004960jsd", + "name" : "GroupDescriptions", + "parentId" : "acm004964jsd", + "content" : [ "acm004970jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004961jsd" : { + "type" : "CodePackage", + "id" : "acm004961jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004962jsd" ] + }, + "acm004962jsd" : { + "type" : "CodePackage", + "id" : "acm004962jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004963jsd" ] + }, + "acm004963jsd" : { + "type" : "CodePackage", + "id" : "acm004963jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004964jsd" ] + }, + "acm004964jsd" : { + "type" : "CodePackage", + "id" : "acm004964jsd", + "name" : "groups", + "parentId" : "acm001569jsd", + "content" : [ "acm004960jsd", "acm004971jsd", "acm004977jsd", "acm004991jsd", "acm005040jsd", "acm005049jsd", "acm005091jsd", "acm005120jsd", "acm005154jsd", "acm005187jsd", "acm005193jsd", "acm005212jsd", "acm005223jsd", "acm005234jsd", "acm005242jsd", "acm005252jsd", "acm021747jsd", "acm021759jsd", "acm021777jsd" ] + }, + "acm004965jsd" : { + "type" : "ControlElement", + "id" : "acm004965jsd", + "name" : "GroupDescriptions" + }, + "acm004966jsd" : { + "type" : "ControlElement", + "id" : "acm004966jsd", + "name" : "getShortDescriptionKeywordGroup" + }, + "acm004967jsd" : { + "type" : "ControlElement", + "id" : "acm004967jsd", + "name" : "getShortDescriptionExplicitGroup" + }, + "acm004968jsd" : { + "type" : "ControlElement", + "id" : "acm004968jsd", + "name" : "getShortDescriptionAllEntriesGroup" + }, + "acm004969jsd" : { + "type" : "ControlElement", + "id" : "acm004969jsd", + "name" : "getShortDescription" + }, + "acm004970jsd" : { + "type" : "ClassUnit", + "id" : "acm004970jsd", + "name" : "GroupDescriptions", + "compilationUnitId" : "acm004960jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019171jsd", "acm019234jsd", "acm019271jsd" ], + "content" : [ "acm004965jsd", "acm004966jsd", "acm004967jsd", "acm004968jsd", "acm004969jsd" ] + }, + "acm004971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004971jsd", + "name" : "GroupDialogHeader", + "parentId" : "acm004964jsd", + "content" : [ "acm004976jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004972jsd" : { + "type" : "CodePackage", + "id" : "acm004972jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004973jsd" ] + }, + "acm004973jsd" : { + "type" : "CodePackage", + "id" : "acm004973jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004974jsd" ] + }, + "acm004974jsd" : { + "type" : "CodePackage", + "id" : "acm004974jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004975jsd" ] + }, + "acm004975jsd" : { + "type" : "CodePackage", + "id" : "acm004975jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm004971jsd" ] + }, + "acm004976jsd" : { + "type" : "ClassUnit", + "id" : "acm004976jsd", + "name" : "GroupDialogHeader", + "compilationUnitId" : "acm004971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004977jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004977jsd", + "name" : "GroupDialogView", + "parentId" : "acm004964jsd", + "content" : [ "acm004988jsd", "acm004990jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004978jsd" : { + "type" : "CodePackage", + "id" : "acm004978jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004979jsd" ] + }, + "acm004979jsd" : { + "type" : "CodePackage", + "id" : "acm004979jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004980jsd" ] + }, + "acm004980jsd" : { + "type" : "CodePackage", + "id" : "acm004980jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004981jsd" ] + }, + "acm004981jsd" : { + "type" : "CodePackage", + "id" : "acm004981jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm004977jsd" ] + }, + "acm004982jsd" : { + "type" : "ControlElement", + "id" : "acm004982jsd", + "name" : "GroupDialogView" + }, + "acm004983jsd" : { + "type" : "ControlElement", + "id" : "acm004983jsd", + "name" : "initialize" + }, + "acm004984jsd" : { + "type" : "ControlElement", + "id" : "acm004984jsd", + "name" : "texGroupBrowse" + }, + "acm004985jsd" : { + "type" : "ControlElement", + "id" : "acm004985jsd", + "name" : "openHelp" + }, + "acm004986jsd" : { + "type" : "ControlElement", + "id" : "acm004986jsd", + "name" : "openIconPicker" + }, + "acm004987jsd" : { + "type" : "ControlElement", + "id" : "acm004987jsd", + "name" : "updateItem" + }, + "acm004988jsd" : { + "type" : "ClassUnit", + "id" : "acm004988jsd", + "name" : "GroupDialogView", + "compilationUnitId" : "acm004977jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004976jsd", "acm005039jsd", "acm005460jsd", "acm009856jsd", "acm010051jsd", "acm018022jsd", "acm019107jsd", "acm019190jsd", "acm021206jsd" ], + "content" : [ "acm004982jsd", "acm004983jsd", "acm004984jsd", "acm004985jsd", "acm004986jsd", "acm004987jsd" ] + }, + "acm004989jsd" : { + "type" : "ControlElement", + "id" : "acm004989jsd", + "name" : "updateItem" + }, + "acm004990jsd" : { + "type" : "ClassUnit", + "id" : "acm004990jsd", + "name" : "IkonliCell", + "compilationUnitId" : "acm004977jsd", + "parentDatatypeId" : "acm004988jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004989jsd" ] + }, + "acm004991jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004991jsd", + "name" : "GroupDialogViewModel", + "parentId" : "acm004964jsd", + "content" : [ "acm005039jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004992jsd" : { + "type" : "CodePackage", + "id" : "acm004992jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm004993jsd" ] + }, + "acm004993jsd" : { + "type" : "CodePackage", + "id" : "acm004993jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm004994jsd" ] + }, + "acm004994jsd" : { + "type" : "CodePackage", + "id" : "acm004994jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm004995jsd" ] + }, + "acm004995jsd" : { + "type" : "CodePackage", + "id" : "acm004995jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm004991jsd" ] + }, + "acm004996jsd" : { + "type" : "ControlElement", + "id" : "acm004996jsd", + "name" : "GroupDialogViewModel" + }, + "acm004997jsd" : { + "type" : "ControlElement", + "id" : "acm004997jsd", + "name" : "setupValidation" + }, + "acm004998jsd" : { + "type" : "ControlElement", + "id" : "acm004998jsd", + "name" : "getAbsoluteTexGroupPath" + }, + "acm004999jsd" : { + "type" : "ControlElement", + "id" : "acm004999jsd", + "name" : "validationHandler" + }, + "acm005000jsd" : { + "type" : "ControlElement", + "id" : "acm005000jsd", + "name" : "resultConverter" + }, + "acm005001jsd" : { + "type" : "ControlElement", + "id" : "acm005001jsd", + "name" : "setValues" + }, + "acm005002jsd" : { + "type" : "ControlElement", + "id" : "acm005002jsd", + "name" : "texGroupBrowse" + }, + "acm005003jsd" : { + "type" : "ControlElement", + "id" : "acm005003jsd", + "name" : "openHelpPage" + }, + "acm005004jsd" : { + "type" : "ControlElement", + "id" : "acm005004jsd", + "name" : "getFileDirectoriesAsPaths" + }, + "acm005005jsd" : { + "type" : "ControlElement", + "id" : "acm005005jsd", + "name" : "validationStatus" + }, + "acm005006jsd" : { + "type" : "ControlElement", + "id" : "acm005006jsd", + "name" : "nameValidationStatus" + }, + "acm005007jsd" : { + "type" : "ControlElement", + "id" : "acm005007jsd", + "name" : "nameContainsDelimiterValidationStatus" + }, + "acm005008jsd" : { + "type" : "ControlElement", + "id" : "acm005008jsd", + "name" : "sameNameValidationStatus" + }, + "acm005009jsd" : { + "type" : "ControlElement", + "id" : "acm005009jsd", + "name" : "searchRegexValidationStatus" + }, + "acm005010jsd" : { + "type" : "ControlElement", + "id" : "acm005010jsd", + "name" : "searchSearchTermEmptyValidationStatus" + }, + "acm005011jsd" : { + "type" : "ControlElement", + "id" : "acm005011jsd", + "name" : "keywordRegexValidationStatus" + }, + "acm005012jsd" : { + "type" : "ControlElement", + "id" : "acm005012jsd", + "name" : "keywordFieldEmptyValidationStatus" + }, + "acm005013jsd" : { + "type" : "ControlElement", + "id" : "acm005013jsd", + "name" : "keywordSearchTermEmptyValidationStatus" + }, + "acm005014jsd" : { + "type" : "ControlElement", + "id" : "acm005014jsd", + "name" : "texGroupFilePathValidatonStatus" + }, + "acm005015jsd" : { + "type" : "ControlElement", + "id" : "acm005015jsd", + "name" : "nameProperty" + }, + "acm005016jsd" : { + "type" : "ControlElement", + "id" : "acm005016jsd", + "name" : "descriptionProperty" + }, + "acm005017jsd" : { + "type" : "ControlElement", + "id" : "acm005017jsd", + "name" : "iconProperty" + }, + "acm005018jsd" : { + "type" : "ControlElement", + "id" : "acm005018jsd", + "name" : "colorFieldProperty" + }, + "acm005019jsd" : { + "type" : "ControlElement", + "id" : "acm005019jsd", + "name" : "groupHierarchyListProperty" + }, + "acm005020jsd" : { + "type" : "ControlElement", + "id" : "acm005020jsd", + "name" : "groupHierarchySelectedProperty" + }, + "acm005021jsd" : { + "type" : "ControlElement", + "id" : "acm005021jsd", + "name" : "typeExplicitProperty" + }, + "acm005022jsd" : { + "type" : "ControlElement", + "id" : "acm005022jsd", + "name" : "typeKeywordsProperty" + }, + "acm005023jsd" : { + "type" : "ControlElement", + "id" : "acm005023jsd", + "name" : "typeSearchProperty" + }, + "acm005024jsd" : { + "type" : "ControlElement", + "id" : "acm005024jsd", + "name" : "typeAutoProperty" + }, + "acm005025jsd" : { + "type" : "ControlElement", + "id" : "acm005025jsd", + "name" : "typeTexProperty" + }, + "acm005026jsd" : { + "type" : "ControlElement", + "id" : "acm005026jsd", + "name" : "keywordGroupSearchTermProperty" + }, + "acm005027jsd" : { + "type" : "ControlElement", + "id" : "acm005027jsd", + "name" : "keywordGroupSearchFieldProperty" + }, + "acm005028jsd" : { + "type" : "ControlElement", + "id" : "acm005028jsd", + "name" : "keywordGroupCaseSensitiveProperty" + }, + "acm005029jsd" : { + "type" : "ControlElement", + "id" : "acm005029jsd", + "name" : "keywordGroupRegexProperty" + }, + "acm005030jsd" : { + "type" : "ControlElement", + "id" : "acm005030jsd", + "name" : "searchGroupSearchTermProperty" + }, + "acm005031jsd" : { + "type" : "ControlElement", + "id" : "acm005031jsd", + "name" : "searchFlagsProperty" + }, + "acm005032jsd" : { + "type" : "ControlElement", + "id" : "acm005032jsd", + "name" : "autoGroupKeywordsOptionProperty" + }, + "acm005033jsd" : { + "type" : "ControlElement", + "id" : "acm005033jsd", + "name" : "autoGroupKeywordsFieldProperty" + }, + "acm005034jsd" : { + "type" : "ControlElement", + "id" : "acm005034jsd", + "name" : "autoGroupKeywordsDeliminatorProperty" + }, + "acm005035jsd" : { + "type" : "ControlElement", + "id" : "acm005035jsd", + "name" : "autoGroupKeywordsHierarchicalDeliminatorProperty" + }, + "acm005036jsd" : { + "type" : "ControlElement", + "id" : "acm005036jsd", + "name" : "autoGroupPersonsOptionProperty" + }, + "acm005037jsd" : { + "type" : "ControlElement", + "id" : "acm005037jsd", + "name" : "autoGroupPersonsFieldProperty" + }, + "acm005038jsd" : { + "type" : "ControlElement", + "id" : "acm005038jsd", + "name" : "texGroupFilePathProperty" + }, + "acm005039jsd" : { + "type" : "ClassUnit", + "id" : "acm005039jsd", + "name" : "GroupDialogViewModel", + "compilationUnitId" : "acm004991jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004976jsd", "acm005331jsd", "acm009796jsd", "acm009809jsd", "acm010458jsd", "acm017988jsd", "acm018022jsd", "acm019107jsd", "acm019130jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019190jsd", "acm019256jsd", "acm019271jsd", "acm019293jsd", "acm019315jsd", "acm019421jsd", "acm020473jsd", "acm021206jsd" ], + "content" : [ "acm004996jsd", "acm004997jsd", "acm004998jsd", "acm004999jsd", "acm005000jsd", "acm005001jsd", "acm005002jsd", "acm005003jsd", "acm005004jsd", "acm005005jsd", "acm005006jsd", "acm005007jsd", "acm005008jsd", "acm005009jsd", "acm005010jsd", "acm005011jsd", "acm005012jsd", "acm005013jsd", "acm005014jsd", "acm005015jsd", "acm005016jsd", "acm005017jsd", "acm005018jsd", "acm005019jsd", "acm005020jsd", "acm005021jsd", "acm005022jsd", "acm005023jsd", "acm005024jsd", "acm005025jsd", "acm005026jsd", "acm005027jsd", "acm005028jsd", "acm005029jsd", "acm005030jsd", "acm005031jsd", "acm005032jsd", "acm005033jsd", "acm005034jsd", "acm005035jsd", "acm005036jsd", "acm005037jsd", "acm005038jsd" ] + }, + "acm005040jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005040jsd", + "name" : "GroupModeViewModel", + "parentId" : "acm004964jsd", + "content" : [ "acm005048jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005041jsd" : { + "type" : "CodePackage", + "id" : "acm005041jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005042jsd" ] + }, + "acm005042jsd" : { + "type" : "CodePackage", + "id" : "acm005042jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005043jsd" ] + }, + "acm005043jsd" : { + "type" : "CodePackage", + "id" : "acm005043jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005044jsd" ] + }, + "acm005044jsd" : { + "type" : "CodePackage", + "id" : "acm005044jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005040jsd" ] + }, + "acm005045jsd" : { + "type" : "ControlElement", + "id" : "acm005045jsd", + "name" : "GroupModeViewModel" + }, + "acm005046jsd" : { + "type" : "ControlElement", + "id" : "acm005046jsd", + "name" : "getUnionIntersectionGraphic" + }, + "acm005047jsd" : { + "type" : "ControlElement", + "id" : "acm005047jsd", + "name" : "getUnionIntersectionTooltip" + }, + "acm005048jsd" : { + "type" : "ClassUnit", + "id" : "acm005048jsd", + "name" : "GroupModeViewModel", + "compilationUnitId" : "acm005040jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005192jsd" ], + "content" : [ "acm005045jsd", "acm005046jsd", "acm005047jsd" ] + }, + "acm005049jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005049jsd", + "name" : "GroupNodeViewModel", + "parentId" : "acm004964jsd", + "content" : [ "acm005090jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005050jsd" : { + "type" : "CodePackage", + "id" : "acm005050jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005051jsd" ] + }, + "acm005051jsd" : { + "type" : "CodePackage", + "id" : "acm005051jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005052jsd" ] + }, + "acm005052jsd" : { + "type" : "CodePackage", + "id" : "acm005052jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005053jsd" ] + }, + "acm005053jsd" : { + "type" : "CodePackage", + "id" : "acm005053jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005049jsd" ] + }, + "acm005054jsd" : { + "type" : "ControlElement", + "id" : "acm005054jsd", + "name" : "GroupNodeViewModel" + }, + "acm005055jsd" : { + "type" : "ControlElement", + "id" : "acm005055jsd", + "name" : "GroupNodeViewModel" + }, + "acm005056jsd" : { + "type" : "ControlElement", + "id" : "acm005056jsd", + "name" : "getAllEntriesGroup" + }, + "acm005057jsd" : { + "type" : "ControlElement", + "id" : "acm005057jsd", + "name" : "toViewModel" + }, + "acm005058jsd" : { + "type" : "ControlElement", + "id" : "acm005058jsd", + "name" : "addEntriesToGroup" + }, + "acm005059jsd" : { + "type" : "ControlElement", + "id" : "acm005059jsd", + "name" : "expandedProperty" + }, + "acm005060jsd" : { + "type" : "ControlElement", + "id" : "acm005060jsd", + "name" : "anySelectedEntriesMatchedProperty" + }, + "acm005061jsd" : { + "type" : "ControlElement", + "id" : "acm005061jsd", + "name" : "allSelectedEntriesMatchedProperty" + }, + "acm005062jsd" : { + "type" : "ControlElement", + "id" : "acm005062jsd", + "name" : "hasChildrenProperty" + }, + "acm005063jsd" : { + "type" : "ControlElement", + "id" : "acm005063jsd", + "name" : "getDisplayName" + }, + "acm005064jsd" : { + "type" : "ControlElement", + "id" : "acm005064jsd", + "name" : "isRoot" + }, + "acm005065jsd" : { + "type" : "ControlElement", + "id" : "acm005065jsd", + "name" : "getDescription" + }, + "acm005066jsd" : { + "type" : "ControlElement", + "id" : "acm005066jsd", + "name" : "getHits" + }, + "acm005067jsd" : { + "type" : "ControlElement", + "id" : "acm005067jsd", + "name" : "equals" + }, + "acm005068jsd" : { + "type" : "ControlElement", + "id" : "acm005068jsd", + "name" : "toString" + }, + "acm005069jsd" : { + "type" : "ControlElement", + "id" : "acm005069jsd", + "name" : "hashCode" + }, + "acm005070jsd" : { + "type" : "ControlElement", + "id" : "acm005070jsd", + "name" : "getIcon" + }, + "acm005071jsd" : { + "type" : "ControlElement", + "id" : "acm005071jsd", + "name" : "createDefaultIcon" + }, + "acm005072jsd" : { + "type" : "ControlElement", + "id" : "acm005072jsd", + "name" : "parseIcon" + }, + "acm005073jsd" : { + "type" : "ControlElement", + "id" : "acm005073jsd", + "name" : "getChildren" + }, + "acm005074jsd" : { + "type" : "ControlElement", + "id" : "acm005074jsd", + "name" : "getGroupNode" + }, + "acm005075jsd" : { + "type" : "ControlElement", + "id" : "acm005075jsd", + "name" : "onDatabaseChanged" + }, + "acm005076jsd" : { + "type" : "ControlElement", + "id" : "acm005076jsd", + "name" : "refreshGroup" + }, + "acm005077jsd" : { + "type" : "ControlElement", + "id" : "acm005077jsd", + "name" : "updateMatchedEntries" + }, + "acm005078jsd" : { + "type" : "ControlElement", + "id" : "acm005078jsd", + "name" : "addSubgroup" + }, + "acm005079jsd" : { + "type" : "ControlElement", + "id" : "acm005079jsd", + "name" : "toggleExpansion" + }, + "acm005080jsd" : { + "type" : "ControlElement", + "id" : "acm005080jsd", + "name" : "isMatchedBy" + }, + "acm005081jsd" : { + "type" : "ControlElement", + "id" : "acm005081jsd", + "name" : "getColor" + }, + "acm005082jsd" : { + "type" : "ControlElement", + "id" : "acm005082jsd", + "name" : "getPath" + }, + "acm005083jsd" : { + "type" : "ControlElement", + "id" : "acm005083jsd", + "name" : "getChildByPath" + }, + "acm005084jsd" : { + "type" : "ControlElement", + "id" : "acm005084jsd", + "name" : "acceptableDrop" + }, + "acm005085jsd" : { + "type" : "ControlElement", + "id" : "acm005085jsd", + "name" : "moveTo" + }, + "acm005086jsd" : { + "type" : "ControlElement", + "id" : "acm005086jsd", + "name" : "moveTo" + }, + "acm005087jsd" : { + "type" : "ControlElement", + "id" : "acm005087jsd", + "name" : "getParent" + }, + "acm005088jsd" : { + "type" : "ControlElement", + "id" : "acm005088jsd", + "name" : "draggedOn" + }, + "acm005089jsd" : { + "type" : "ControlElement", + "id" : "acm005089jsd", + "name" : "getPositionInParent" + }, + "acm005090jsd" : { + "type" : "ClassUnit", + "id" : "acm005090jsd", + "name" : "GroupNodeViewModel", + "compilationUnitId" : "acm005049jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm005090jsd", "acm005416jsd", "acm009670jsd", "acm009762jsd", "acm009965jsd", "acm015489jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm019107jsd", "acm019130jsd", "acm019181jsd", "acm019221jsd", "acm019293jsd", "acm021206jsd" ], + "content" : [ "acm005054jsd", "acm005055jsd", "acm005056jsd", "acm005057jsd", "acm005058jsd", "acm005059jsd", "acm005060jsd", "acm005061jsd", "acm005062jsd", "acm005063jsd", "acm005064jsd", "acm005065jsd", "acm005066jsd", "acm005067jsd", "acm005068jsd", "acm005069jsd", "acm005070jsd", "acm005071jsd", "acm005072jsd", "acm005073jsd", "acm005074jsd", "acm005075jsd", "acm005076jsd", "acm005077jsd", "acm005078jsd", "acm005079jsd", "acm005080jsd", "acm005081jsd", "acm005082jsd", "acm005083jsd", "acm005084jsd", "acm005085jsd", "acm005086jsd", "acm005087jsd", "acm005088jsd", "acm005089jsd" ] + }, + "acm005091jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005091jsd", + "name" : "GroupTreeNodeViewModel", + "parentId" : "acm004964jsd", + "content" : [ "acm005119jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005092jsd" : { + "type" : "CodePackage", + "id" : "acm005092jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005093jsd" ] + }, + "acm005093jsd" : { + "type" : "CodePackage", + "id" : "acm005093jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005094jsd" ] + }, + "acm005094jsd" : { + "type" : "CodePackage", + "id" : "acm005094jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005095jsd" ] + }, + "acm005095jsd" : { + "type" : "CodePackage", + "id" : "acm005095jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005091jsd" ] + }, + "acm005096jsd" : { + "type" : "ControlElement", + "id" : "acm005096jsd", + "name" : "GroupTreeNodeViewModel" + }, + "acm005097jsd" : { + "type" : "ControlElement", + "id" : "acm005097jsd", + "name" : "toString" + }, + "acm005098jsd" : { + "type" : "ControlElement", + "id" : "acm005098jsd", + "name" : "getNode" + }, + "acm005099jsd" : { + "type" : "ControlElement", + "id" : "acm005099jsd", + "name" : "getChildren" + }, + "acm005100jsd" : { + "type" : "ControlElement", + "id" : "acm005100jsd", + "name" : "printInItalics" + }, + "acm005101jsd" : { + "type" : "ControlElement", + "id" : "acm005101jsd", + "name" : "getDescription" + }, + "acm005102jsd" : { + "type" : "ControlElement", + "id" : "acm005102jsd", + "name" : "canAddEntries" + }, + "acm005103jsd" : { + "type" : "ControlElement", + "id" : "acm005103jsd", + "name" : "canRemoveEntries" + }, + "acm005104jsd" : { + "type" : "ControlElement", + "id" : "acm005104jsd", + "name" : "sortChildrenByName" + }, + "acm005105jsd" : { + "type" : "ControlElement", + "id" : "acm005105jsd", + "name" : "equals" + }, + "acm005106jsd" : { + "type" : "ControlElement", + "id" : "acm005106jsd", + "name" : "hashCode" + }, + "acm005107jsd" : { + "type" : "ControlElement", + "id" : "acm005107jsd", + "name" : "getName" + }, + "acm005108jsd" : { + "type" : "ControlElement", + "id" : "acm005108jsd", + "name" : "canBeEdited" + }, + "acm005109jsd" : { + "type" : "ControlElement", + "id" : "acm005109jsd", + "name" : "canMoveUp" + }, + "acm005110jsd" : { + "type" : "ControlElement", + "id" : "acm005110jsd", + "name" : "canMoveDown" + }, + "acm005111jsd" : { + "type" : "ControlElement", + "id" : "acm005111jsd", + "name" : "canMoveLeft" + }, + "acm005112jsd" : { + "type" : "ControlElement", + "id" : "acm005112jsd", + "name" : "canMoveRight" + }, + "acm005113jsd" : { + "type" : "ControlElement", + "id" : "acm005113jsd", + "name" : "changeEntriesTo" + }, + "acm005114jsd" : { + "type" : "ControlElement", + "id" : "acm005114jsd", + "name" : "removeEntriesFromGroup" + }, + "acm005115jsd" : { + "type" : "ControlElement", + "id" : "acm005115jsd", + "name" : "isAllEntriesGroup" + }, + "acm005116jsd" : { + "type" : "ControlElement", + "id" : "acm005116jsd", + "name" : "addNewGroup" + }, + "acm005117jsd" : { + "type" : "ControlElement", + "id" : "acm005117jsd", + "name" : "addEntriesToGroup" + }, + "acm005118jsd" : { + "type" : "ControlElement", + "id" : "acm005118jsd", + "name" : "subscribeToDescendantChanged" + }, + "acm005119jsd" : { + "type" : "ClassUnit", + "id" : "acm005119jsd", + "name" : "GroupTreeNodeViewModel", + "compilationUnitId" : "acm005091jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005119jsd", "acm005233jsd", "acm009369jsd", "acm017884jsd", "acm018267jsd", "acm019107jsd", "acm019119jsd", "acm019171jsd", "acm019181jsd", "acm019221jsd", "acm019234jsd", "acm019271jsd" ], + "content" : [ "acm005096jsd", "acm005097jsd", "acm005098jsd", "acm005099jsd", "acm005100jsd", "acm005101jsd", "acm005102jsd", "acm005103jsd", "acm005104jsd", "acm005105jsd", "acm005106jsd", "acm005107jsd", "acm005108jsd", "acm005109jsd", "acm005110jsd", "acm005111jsd", "acm005112jsd", "acm005113jsd", "acm005114jsd", "acm005115jsd", "acm005116jsd", "acm005117jsd", "acm005118jsd" ] + }, + "acm005120jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005120jsd", + "name" : "GroupTreeView", + "parentId" : "acm004964jsd", + "content" : [ "acm005148jsd", "acm005150jsd", "acm005153jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005121jsd" : { + "type" : "CodePackage", + "id" : "acm005121jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005122jsd" ] + }, + "acm005122jsd" : { + "type" : "CodePackage", + "id" : "acm005122jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005123jsd" ] + }, + "acm005123jsd" : { + "type" : "CodePackage", + "id" : "acm005123jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005124jsd" ] + }, + "acm005124jsd" : { + "type" : "CodePackage", + "id" : "acm005124jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005120jsd" ] + }, + "acm005125jsd" : { + "type" : "ControlElement", + "id" : "acm005125jsd", + "name" : "GroupTreeView" + }, + "acm005126jsd" : { + "type" : "ControlElement", + "id" : "acm005126jsd", + "name" : "createNodes" + }, + "acm005127jsd" : { + "type" : "ControlElement", + "id" : "acm005127jsd", + "name" : "initialize" + }, + "acm005128jsd" : { + "type" : "ControlElement", + "id" : "acm005128jsd", + "name" : "getArrowCell" + }, + "acm005129jsd" : { + "type" : "ControlElement", + "id" : "acm005129jsd", + "name" : "createNumberCell" + }, + "acm005130jsd" : { + "type" : "ControlElement", + "id" : "acm005130jsd", + "name" : "handleOnDragExited" + }, + "acm005131jsd" : { + "type" : "ControlElement", + "id" : "acm005131jsd", + "name" : "handleOnDragDetected" + }, + "acm005132jsd" : { + "type" : "ControlElement", + "id" : "acm005132jsd", + "name" : "handleOnDragDropped" + }, + "acm005133jsd" : { + "type" : "ControlElement", + "id" : "acm005133jsd", + "name" : "handleOnDragOver" + }, + "acm005134jsd" : { + "type" : "ControlElement", + "id" : "acm005134jsd", + "name" : "updateSelection" + }, + "acm005135jsd" : { + "type" : "ControlElement", + "id" : "acm005135jsd", + "name" : "selectNode" + }, + "acm005136jsd" : { + "type" : "ControlElement", + "id" : "acm005136jsd", + "name" : "selectNode" + }, + "acm005137jsd" : { + "type" : "ControlElement", + "id" : "acm005137jsd", + "name" : "getTreeItemByValue" + }, + "acm005138jsd" : { + "type" : "ControlElement", + "id" : "acm005138jsd", + "name" : "getTreeItemByValue" + }, + "acm005139jsd" : { + "type" : "ControlElement", + "id" : "acm005139jsd", + "name" : "setupDragScrolling" + }, + "acm005140jsd" : { + "type" : "ControlElement", + "id" : "acm005140jsd", + "name" : "getVerticalScrollbar" + }, + "acm005141jsd" : { + "type" : "ControlElement", + "id" : "acm005141jsd", + "name" : "createContextMenuForGroup" + }, + "acm005142jsd" : { + "type" : "ControlElement", + "id" : "acm005142jsd", + "name" : "addNewGroup" + }, + "acm005143jsd" : { + "type" : "ControlElement", + "id" : "acm005143jsd", + "name" : "getFormattedNumber" + }, + "acm005144jsd" : { + "type" : "ControlElement", + "id" : "acm005144jsd", + "name" : "setupClearButtonField" + }, + "acm005145jsd" : { + "type" : "ControlElement", + "id" : "acm005145jsd", + "name" : "expandGroup" + }, + "acm005146jsd" : { + "type" : "ControlElement", + "id" : "acm005146jsd", + "name" : "ContextAction" + }, + "acm005147jsd" : { + "type" : "ControlElement", + "id" : "acm005147jsd", + "name" : "execute" + }, + "acm005148jsd" : { + "type" : "ClassUnit", + "id" : "acm005148jsd", + "name" : "GroupTreeView", + "compilationUnitId" : "acm005120jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm005090jsd", "acm005148jsd", "acm005150jsd", "acm005153jsd", "acm005186jsd", "acm009670jsd", "acm009965jsd", "acm010114jsd", "acm010139jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm005125jsd", "acm005126jsd", "acm005127jsd", "acm005128jsd", "acm005129jsd", "acm005130jsd", "acm005131jsd", "acm005132jsd", "acm005133jsd", "acm005134jsd", "acm005135jsd", "acm005136jsd", "acm005137jsd", "acm005138jsd", "acm005139jsd", "acm005140jsd", "acm005141jsd", "acm005142jsd", "acm005143jsd", "acm005144jsd", "acm005145jsd", "acm005146jsd", "acm005147jsd" ] + }, + "acm005149jsd" : { + "type" : "ControlElement", + "id" : "acm005149jsd", + "name" : "expandGroup" + }, + "acm005150jsd" : { + "type" : "ClassUnit", + "id" : "acm005150jsd", + "name" : "DragExpansionHandler", + "compilationUnitId" : "acm005120jsd", + "parentDatatypeId" : "acm005148jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005090jsd" ], + "content" : [ "acm005149jsd" ] + }, + "acm005151jsd" : { + "type" : "ControlElement", + "id" : "acm005151jsd", + "name" : "ContextAction" + }, + "acm005152jsd" : { + "type" : "ControlElement", + "id" : "acm005152jsd", + "name" : "execute" + }, + "acm005153jsd" : { + "type" : "ClassUnit", + "id" : "acm005153jsd", + "name" : "ContextAction", + "compilationUnitId" : "acm005120jsd", + "parentDatatypeId" : "acm005148jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd", "acm005090jsd" ], + "content" : [ "acm005151jsd", "acm005152jsd" ] + }, + "acm005154jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005154jsd", + "name" : "GroupTreeViewModel", + "parentId" : "acm004964jsd", + "content" : [ "acm005186jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005155jsd" : { + "type" : "CodePackage", + "id" : "acm005155jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005156jsd" ] + }, + "acm005156jsd" : { + "type" : "CodePackage", + "id" : "acm005156jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005157jsd" ] + }, + "acm005157jsd" : { + "type" : "CodePackage", + "id" : "acm005157jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005158jsd" ] + }, + "acm005158jsd" : { + "type" : "CodePackage", + "id" : "acm005158jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005154jsd" ] + }, + "acm005159jsd" : { + "type" : "ControlElement", + "id" : "acm005159jsd", + "name" : "GroupTreeViewModel" + }, + "acm005160jsd" : { + "type" : "ControlElement", + "id" : "acm005160jsd", + "name" : "refresh" + }, + "acm005161jsd" : { + "type" : "ControlElement", + "id" : "acm005161jsd", + "name" : "rootGroupProperty" + }, + "acm005162jsd" : { + "type" : "ControlElement", + "id" : "acm005162jsd", + "name" : "selectedGroupsProperty" + }, + "acm005163jsd" : { + "type" : "ControlElement", + "id" : "acm005163jsd", + "name" : "filterPredicateProperty" + }, + "acm005164jsd" : { + "type" : "ControlElement", + "id" : "acm005164jsd", + "name" : "filterTextProperty" + }, + "acm005165jsd" : { + "type" : "ControlElement", + "id" : "acm005165jsd", + "name" : "onSelectedGroupChanged" + }, + "acm005166jsd" : { + "type" : "ControlElement", + "id" : "acm005166jsd", + "name" : "addNewGroupToRoot" + }, + "acm005167jsd" : { + "type" : "ControlElement", + "id" : "acm005167jsd", + "name" : "onActiveDatabaseChanged" + }, + "acm005168jsd" : { + "type" : "ControlElement", + "id" : "acm005168jsd", + "name" : "addNewSubgroup" + }, + "acm005169jsd" : { + "type" : "ControlElement", + "id" : "acm005169jsd", + "name" : "writeGroupChangesToMetaData" + }, + "acm005170jsd" : { + "type" : "ControlElement", + "id" : "acm005170jsd", + "name" : "isGroupTypeEqual" + }, + "acm005171jsd" : { + "type" : "ControlElement", + "id" : "acm005171jsd", + "name" : "onlyMinorChanges" + }, + "acm005172jsd" : { + "type" : "ControlElement", + "id" : "acm005172jsd", + "name" : "editGroup" + }, + "acm005173jsd" : { + "type" : "ControlElement", + "id" : "acm005173jsd", + "name" : "removeSubgroups" + }, + "acm005174jsd" : { + "type" : "ControlElement", + "id" : "acm005174jsd", + "name" : "removeGroupKeepSubgroups" + }, + "acm005175jsd" : { + "type" : "ControlElement", + "id" : "acm005175jsd", + "name" : "removeGroupAndSubgroups" + }, + "acm005176jsd" : { + "type" : "ControlElement", + "id" : "acm005176jsd", + "name" : "removeGroupNoSubgroups" + }, + "acm005177jsd" : { + "type" : "ControlElement", + "id" : "acm005177jsd", + "name" : "removeGroupsAndSubGroupsFromEntries" + }, + "acm005178jsd" : { + "type" : "ControlElement", + "id" : "acm005178jsd", + "name" : "addSelectedEntries" + }, + "acm005179jsd" : { + "type" : "ControlElement", + "id" : "acm005179jsd", + "name" : "removeSelectedEntries" + }, + "acm005180jsd" : { + "type" : "ControlElement", + "id" : "acm005180jsd", + "name" : "sortAlphabeticallyRecursive" + }, + "acm005181jsd" : { + "type" : "ControlElement", + "id" : "acm005181jsd", + "name" : "canBeDragged" + }, + "acm005182jsd" : { + "type" : "ControlElement", + "id" : "acm005182jsd", + "name" : "canAddGroupsIn" + }, + "acm005183jsd" : { + "type" : "ControlElement", + "id" : "acm005183jsd", + "name" : "hasSubgroups" + }, + "acm005184jsd" : { + "type" : "ControlElement", + "id" : "acm005184jsd", + "name" : "canAddEntriesIn" + }, + "acm005185jsd" : { + "type" : "ControlElement", + "id" : "acm005185jsd", + "name" : "isEditable" + }, + "acm005186jsd" : { + "type" : "ClassUnit", + "id" : "acm005186jsd", + "name" : "GroupTreeViewModel", + "compilationUnitId" : "acm005154jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004976jsd", "acm005090jsd", "acm009670jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm019107jsd", "acm019119jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019221jsd", "acm019234jsd", "acm019244jsd", "acm019256jsd", "acm019271jsd", "acm019293jsd", "acm019315jsd", "acm021206jsd" ], + "content" : [ "acm005159jsd", "acm005160jsd", "acm005161jsd", "acm005162jsd", "acm005163jsd", "acm005164jsd", "acm005165jsd", "acm005166jsd", "acm005167jsd", "acm005168jsd", "acm005169jsd", "acm005170jsd", "acm005171jsd", "acm005172jsd", "acm005173jsd", "acm005174jsd", "acm005175jsd", "acm005176jsd", "acm005177jsd", "acm005178jsd", "acm005179jsd", "acm005180jsd", "acm005181jsd", "acm005182jsd", "acm005183jsd", "acm005184jsd", "acm005185jsd" ] + }, + "acm005187jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005187jsd", + "name" : "GroupViewMode", + "parentId" : "acm004964jsd", + "content" : [ "acm005192jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005188jsd" : { + "type" : "CodePackage", + "id" : "acm005188jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005189jsd" ] + }, + "acm005189jsd" : { + "type" : "CodePackage", + "id" : "acm005189jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005190jsd" ] + }, + "acm005190jsd" : { + "type" : "CodePackage", + "id" : "acm005190jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005191jsd" ] + }, + "acm005191jsd" : { + "type" : "CodePackage", + "id" : "acm005191jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005187jsd" ] + }, + "acm005192jsd" : { + "type" : "ClassUnit", + "id" : "acm005192jsd", + "name" : "GroupViewMode", + "compilationUnitId" : "acm005187jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005193jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005193jsd", + "name" : "GroupsPreferences", + "parentId" : "acm004964jsd", + "content" : [ "acm005211jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005194jsd" : { + "type" : "CodePackage", + "id" : "acm005194jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005195jsd" ] + }, + "acm005195jsd" : { + "type" : "CodePackage", + "id" : "acm005195jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005196jsd" ] + }, + "acm005196jsd" : { + "type" : "CodePackage", + "id" : "acm005196jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005197jsd" ] + }, + "acm005197jsd" : { + "type" : "CodePackage", + "id" : "acm005197jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005193jsd" ] + }, + "acm005198jsd" : { + "type" : "ControlElement", + "id" : "acm005198jsd", + "name" : "GroupsPreferences" + }, + "acm005199jsd" : { + "type" : "ControlElement", + "id" : "acm005199jsd", + "name" : "getGroupViewMode" + }, + "acm005200jsd" : { + "type" : "ControlElement", + "id" : "acm005200jsd", + "name" : "groupViewModeProperty" + }, + "acm005201jsd" : { + "type" : "ControlElement", + "id" : "acm005201jsd", + "name" : "setGroupViewMode" + }, + "acm005202jsd" : { + "type" : "ControlElement", + "id" : "acm005202jsd", + "name" : "shouldAutoAssignGroup" + }, + "acm005203jsd" : { + "type" : "ControlElement", + "id" : "acm005203jsd", + "name" : "autoAssignGroupProperty" + }, + "acm005204jsd" : { + "type" : "ControlElement", + "id" : "acm005204jsd", + "name" : "setAutoAssignGroup" + }, + "acm005205jsd" : { + "type" : "ControlElement", + "id" : "acm005205jsd", + "name" : "shouldDisplayGroupCount" + }, + "acm005206jsd" : { + "type" : "ControlElement", + "id" : "acm005206jsd", + "name" : "displayGroupCountProperty" + }, + "acm005207jsd" : { + "type" : "ControlElement", + "id" : "acm005207jsd", + "name" : "setDisplayGroupCount" + }, + "acm005208jsd" : { + "type" : "ControlElement", + "id" : "acm005208jsd", + "name" : "getDefaultHierarchicalContext" + }, + "acm005209jsd" : { + "type" : "ControlElement", + "id" : "acm005209jsd", + "name" : "defaultHierarchicalContextProperty" + }, + "acm005210jsd" : { + "type" : "ControlElement", + "id" : "acm005210jsd", + "name" : "setDefaultHierarchicalContext" + }, + "acm005211jsd" : { + "type" : "ClassUnit", + "id" : "acm005211jsd", + "name" : "GroupsPreferences", + "compilationUnitId" : "acm005193jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005192jsd", "acm019190jsd" ], + "content" : [ "acm005198jsd", "acm005199jsd", "acm005200jsd", "acm005201jsd", "acm005202jsd", "acm005203jsd", "acm005204jsd", "acm005205jsd", "acm005206jsd", "acm005207jsd", "acm005208jsd", "acm005209jsd", "acm005210jsd" ] + }, + "acm005212jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005212jsd", + "name" : "MoveGroupChange", + "parentId" : "acm004964jsd", + "content" : [ "acm005222jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005213jsd" : { + "type" : "CodePackage", + "id" : "acm005213jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005214jsd" ] + }, + "acm005214jsd" : { + "type" : "CodePackage", + "id" : "acm005214jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005215jsd" ] + }, + "acm005215jsd" : { + "type" : "CodePackage", + "id" : "acm005215jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005216jsd" ] + }, + "acm005216jsd" : { + "type" : "CodePackage", + "id" : "acm005216jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005212jsd" ] + }, + "acm005217jsd" : { + "type" : "ControlElement", + "id" : "acm005217jsd", + "name" : "MoveGroupChange" + }, + "acm005218jsd" : { + "type" : "ControlElement", + "id" : "acm005218jsd", + "name" : "getOldParent" + }, + "acm005219jsd" : { + "type" : "ControlElement", + "id" : "acm005219jsd", + "name" : "getOldChildIndex" + }, + "acm005220jsd" : { + "type" : "ControlElement", + "id" : "acm005220jsd", + "name" : "getNewParent" + }, + "acm005221jsd" : { + "type" : "ControlElement", + "id" : "acm005221jsd", + "name" : "getNewChildIndex" + }, + "acm005222jsd" : { + "type" : "ClassUnit", + "id" : "acm005222jsd", + "name" : "MoveGroupChange", + "compilationUnitId" : "acm005212jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019221jsd" ], + "content" : [ "acm005217jsd", "acm005218jsd", "acm005219jsd", "acm005220jsd", "acm005221jsd" ] + }, + "acm005223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005223jsd", + "name" : "UndoableAddOrRemoveGroup", + "parentId" : "acm004964jsd", + "content" : [ "acm005233jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005224jsd" : { + "type" : "CodePackage", + "id" : "acm005224jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005225jsd" ] + }, + "acm005225jsd" : { + "type" : "CodePackage", + "id" : "acm005225jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005226jsd" ] + }, + "acm005226jsd" : { + "type" : "CodePackage", + "id" : "acm005226jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005227jsd" ] + }, + "acm005227jsd" : { + "type" : "CodePackage", + "id" : "acm005227jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005223jsd" ] + }, + "acm005228jsd" : { + "type" : "ControlElement", + "id" : "acm005228jsd", + "name" : "UndoableAddOrRemoveGroup" + }, + "acm005229jsd" : { + "type" : "ControlElement", + "id" : "acm005229jsd", + "name" : "getPresentationName" + }, + "acm005230jsd" : { + "type" : "ControlElement", + "id" : "acm005230jsd", + "name" : "undo" + }, + "acm005231jsd" : { + "type" : "ControlElement", + "id" : "acm005231jsd", + "name" : "redo" + }, + "acm005232jsd" : { + "type" : "ControlElement", + "id" : "acm005232jsd", + "name" : "doOperation" + }, + "acm005233jsd" : { + "type" : "ClassUnit", + "id" : "acm005233jsd", + "name" : "UndoableAddOrRemoveGroup", + "compilationUnitId" : "acm005223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005119jsd", "acm019221jsd" ], + "content" : [ "acm005228jsd", "acm005229jsd", "acm005230jsd", "acm005231jsd", "acm005232jsd" ] + }, + "acm005234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005234jsd", + "name" : "UndoableChangeEntriesOfGroup", + "parentId" : "acm004964jsd", + "content" : [ "acm005241jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005235jsd" : { + "type" : "CodePackage", + "id" : "acm005235jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005236jsd" ] + }, + "acm005236jsd" : { + "type" : "CodePackage", + "id" : "acm005236jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005237jsd" ] + }, + "acm005237jsd" : { + "type" : "CodePackage", + "id" : "acm005237jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005238jsd" ] + }, + "acm005238jsd" : { + "type" : "CodePackage", + "id" : "acm005238jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005234jsd" ] + }, + "acm005239jsd" : { + "type" : "ControlElement", + "id" : "acm005239jsd", + "name" : "UndoableChangeEntriesOfGroup" + }, + "acm005240jsd" : { + "type" : "ControlElement", + "id" : "acm005240jsd", + "name" : "getUndoableEdit" + }, + "acm005241jsd" : { + "type" : "ClassUnit", + "id" : "acm005241jsd", + "name" : "UndoableChangeEntriesOfGroup", + "compilationUnitId" : "acm005234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005119jsd", "acm009381jsd", "acm009411jsd", "acm017884jsd" ], + "content" : [ "acm005239jsd", "acm005240jsd" ] + }, + "acm005242jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005242jsd", + "name" : "UndoableModifySubtree", + "parentId" : "acm004964jsd", + "content" : [ "acm005251jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005243jsd" : { + "type" : "CodePackage", + "id" : "acm005243jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005244jsd" ] + }, + "acm005244jsd" : { + "type" : "CodePackage", + "id" : "acm005244jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005245jsd" ] + }, + "acm005245jsd" : { + "type" : "CodePackage", + "id" : "acm005245jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005246jsd" ] + }, + "acm005246jsd" : { + "type" : "CodePackage", + "id" : "acm005246jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005242jsd" ] + }, + "acm005247jsd" : { + "type" : "ControlElement", + "id" : "acm005247jsd", + "name" : "UndoableModifySubtree" + }, + "acm005248jsd" : { + "type" : "ControlElement", + "id" : "acm005248jsd", + "name" : "getPresentationName" + }, + "acm005249jsd" : { + "type" : "ControlElement", + "id" : "acm005249jsd", + "name" : "undo" + }, + "acm005250jsd" : { + "type" : "ControlElement", + "id" : "acm005250jsd", + "name" : "redo" + }, + "acm005251jsd" : { + "type" : "ClassUnit", + "id" : "acm005251jsd", + "name" : "UndoableModifySubtree", + "compilationUnitId" : "acm005242jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005119jsd", "acm019221jsd" ], + "content" : [ "acm005247jsd", "acm005248jsd", "acm005249jsd", "acm005250jsd" ] + }, + "acm005252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005252jsd", + "name" : "UndoableMoveGroup", + "parentId" : "acm004964jsd", + "content" : [ "acm005261jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005253jsd" : { + "type" : "CodePackage", + "id" : "acm005253jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005254jsd" ] + }, + "acm005254jsd" : { + "type" : "CodePackage", + "id" : "acm005254jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005255jsd" ] + }, + "acm005255jsd" : { + "type" : "CodePackage", + "id" : "acm005255jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005256jsd" ] + }, + "acm005256jsd" : { + "type" : "CodePackage", + "id" : "acm005256jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm005252jsd" ] + }, + "acm005257jsd" : { + "type" : "ControlElement", + "id" : "acm005257jsd", + "name" : "UndoableMoveGroup" + }, + "acm005258jsd" : { + "type" : "ControlElement", + "id" : "acm005258jsd", + "name" : "getPresentationName" + }, + "acm005259jsd" : { + "type" : "ControlElement", + "id" : "acm005259jsd", + "name" : "undo" + }, + "acm005260jsd" : { + "type" : "ControlElement", + "id" : "acm005260jsd", + "name" : "redo" + }, + "acm005261jsd" : { + "type" : "ClassUnit", + "id" : "acm005261jsd", + "name" : "UndoableMoveGroup", + "compilationUnitId" : "acm005252jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005119jsd", "acm005222jsd", "acm019221jsd" ], + "content" : [ "acm005257jsd", "acm005258jsd", "acm005259jsd", "acm005260jsd" ] + }, + "acm005262jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005262jsd", + "name" : "AboutAction", + "parentId" : "acm005266jsd", + "content" : [ "acm005270jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005263jsd" : { + "type" : "CodePackage", + "id" : "acm005263jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005264jsd" ] + }, + "acm005264jsd" : { + "type" : "CodePackage", + "id" : "acm005264jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005265jsd" ] + }, + "acm005265jsd" : { + "type" : "CodePackage", + "id" : "acm005265jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005266jsd" ] + }, + "acm005266jsd" : { + "type" : "CodePackage", + "id" : "acm005266jsd", + "name" : "help", + "parentId" : "acm001569jsd", + "content" : [ "acm005262jsd", "acm005271jsd", "acm005288jsd", "acm005316jsd", "acm005323jsd", "acm005332jsd", "acm005339jsd", "acm005347jsd" ] + }, + "acm005267jsd" : { + "type" : "ControlElement", + "id" : "acm005267jsd", + "name" : "AboutAction" + }, + "acm005268jsd" : { + "type" : "ControlElement", + "id" : "acm005268jsd", + "name" : "execute" + }, + "acm005269jsd" : { + "type" : "ControlElement", + "id" : "acm005269jsd", + "name" : "getAboutDialogView" + }, + "acm005270jsd" : { + "type" : "ClassUnit", + "id" : "acm005270jsd", + "name" : "AboutAction", + "compilationUnitId" : "acm005262jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005287jsd" ], + "content" : [ "acm005267jsd", "acm005268jsd", "acm005269jsd" ] + }, + "acm005271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005271jsd", + "name" : "AboutDialogView", + "parentId" : "acm005266jsd", + "content" : [ "acm005287jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005272jsd" : { + "type" : "CodePackage", + "id" : "acm005272jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005273jsd" ] + }, + "acm005273jsd" : { + "type" : "CodePackage", + "id" : "acm005273jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005274jsd" ] + }, + "acm005274jsd" : { + "type" : "CodePackage", + "id" : "acm005274jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005275jsd" ] + }, + "acm005275jsd" : { + "type" : "CodePackage", + "id" : "acm005275jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005271jsd" ] + }, + "acm005276jsd" : { + "type" : "ControlElement", + "id" : "acm005276jsd", + "name" : "AboutDialogView" + }, + "acm005277jsd" : { + "type" : "ControlElement", + "id" : "acm005277jsd", + "name" : "getViewModel" + }, + "acm005278jsd" : { + "type" : "ControlElement", + "id" : "acm005278jsd", + "name" : "initialize" + }, + "acm005279jsd" : { + "type" : "ControlElement", + "id" : "acm005279jsd", + "name" : "copyVersionToClipboard" + }, + "acm005280jsd" : { + "type" : "ControlElement", + "id" : "acm005280jsd", + "name" : "openJabrefWebsite" + }, + "acm005281jsd" : { + "type" : "ControlElement", + "id" : "acm005281jsd", + "name" : "openExternalLibrariesWebsite" + }, + "acm005282jsd" : { + "type" : "ControlElement", + "id" : "acm005282jsd", + "name" : "openGithub" + }, + "acm005283jsd" : { + "type" : "ControlElement", + "id" : "acm005283jsd", + "name" : "openChangeLog" + }, + "acm005284jsd" : { + "type" : "ControlElement", + "id" : "acm005284jsd", + "name" : "openLicense" + }, + "acm005285jsd" : { + "type" : "ControlElement", + "id" : "acm005285jsd", + "name" : "openContributors" + }, + "acm005286jsd" : { + "type" : "ControlElement", + "id" : "acm005286jsd", + "name" : "openDonation" + }, + "acm005287jsd" : { + "type" : "ClassUnit", + "id" : "acm005287jsd", + "name" : "AboutDialogView", + "compilationUnitId" : "acm005271jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm005315jsd", "acm017281jsd" ], + "content" : [ "acm005276jsd", "acm005277jsd", "acm005278jsd", "acm005279jsd", "acm005280jsd", "acm005281jsd", "acm005282jsd", "acm005283jsd", "acm005284jsd", "acm005285jsd", "acm005286jsd" ] + }, + "acm005288jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005288jsd", + "name" : "AboutDialogViewModel", + "parentId" : "acm005266jsd", + "content" : [ "acm005315jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005289jsd" : { + "type" : "CodePackage", + "id" : "acm005289jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005290jsd" ] + }, + "acm005290jsd" : { + "type" : "CodePackage", + "id" : "acm005290jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005291jsd" ] + }, + "acm005291jsd" : { + "type" : "CodePackage", + "id" : "acm005291jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005292jsd" ] + }, + "acm005292jsd" : { + "type" : "CodePackage", + "id" : "acm005292jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005288jsd" ] + }, + "acm005293jsd" : { + "type" : "ControlElement", + "id" : "acm005293jsd", + "name" : "AboutDialogViewModel" + }, + "acm005294jsd" : { + "type" : "ControlElement", + "id" : "acm005294jsd", + "name" : "getDevelopmentVersion" + }, + "acm005295jsd" : { + "type" : "ControlElement", + "id" : "acm005295jsd", + "name" : "developmentVersionProperty" + }, + "acm005296jsd" : { + "type" : "ControlElement", + "id" : "acm005296jsd", + "name" : "isIsDevelopmentVersion" + }, + "acm005297jsd" : { + "type" : "ControlElement", + "id" : "acm005297jsd", + "name" : "isDevelopmentVersionProperty" + }, + "acm005298jsd" : { + "type" : "ControlElement", + "id" : "acm005298jsd", + "name" : "getVersionInfo" + }, + "acm005299jsd" : { + "type" : "ControlElement", + "id" : "acm005299jsd", + "name" : "maintainersProperty" + }, + "acm005300jsd" : { + "type" : "ControlElement", + "id" : "acm005300jsd", + "name" : "getMaintainers" + }, + "acm005301jsd" : { + "type" : "ControlElement", + "id" : "acm005301jsd", + "name" : "headingProperty" + }, + "acm005302jsd" : { + "type" : "ControlElement", + "id" : "acm005302jsd", + "name" : "getHeading" + }, + "acm005303jsd" : { + "type" : "ControlElement", + "id" : "acm005303jsd", + "name" : "licenseProperty" + }, + "acm005304jsd" : { + "type" : "ControlElement", + "id" : "acm005304jsd", + "name" : "getLicense" + }, + "acm005305jsd" : { + "type" : "ControlElement", + "id" : "acm005305jsd", + "name" : "getEnvironmentInfo" + }, + "acm005306jsd" : { + "type" : "ControlElement", + "id" : "acm005306jsd", + "name" : "copyVersionToClipboard" + }, + "acm005307jsd" : { + "type" : "ControlElement", + "id" : "acm005307jsd", + "name" : "openJabrefWebsite" + }, + "acm005308jsd" : { + "type" : "ControlElement", + "id" : "acm005308jsd", + "name" : "openExternalLibrariesWebsite" + }, + "acm005309jsd" : { + "type" : "ControlElement", + "id" : "acm005309jsd", + "name" : "openGithub" + }, + "acm005310jsd" : { + "type" : "ControlElement", + "id" : "acm005310jsd", + "name" : "openChangeLog" + }, + "acm005311jsd" : { + "type" : "ControlElement", + "id" : "acm005311jsd", + "name" : "openLicense" + }, + "acm005312jsd" : { + "type" : "ControlElement", + "id" : "acm005312jsd", + "name" : "openContributors" + }, + "acm005313jsd" : { + "type" : "ControlElement", + "id" : "acm005313jsd", + "name" : "openDonation" + }, + "acm005314jsd" : { + "type" : "ControlElement", + "id" : "acm005314jsd", + "name" : "openWebsite" + }, + "acm005315jsd" : { + "type" : "ClassUnit", + "id" : "acm005315jsd", + "name" : "AboutDialogViewModel", + "compilationUnitId" : "acm005288jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm005315jsd", "acm017281jsd" ], + "content" : [ "acm005293jsd", "acm005294jsd", "acm005295jsd", "acm005296jsd", "acm005297jsd", "acm005298jsd", "acm005299jsd", "acm005300jsd", "acm005301jsd", "acm005302jsd", "acm005303jsd", "acm005304jsd", "acm005305jsd", "acm005306jsd", "acm005307jsd", "acm005308jsd", "acm005309jsd", "acm005310jsd", "acm005311jsd", "acm005312jsd", "acm005313jsd", "acm005314jsd" ] + }, + "acm005316jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005316jsd", + "name" : "ErrorConsoleAction", + "parentId" : "acm005266jsd", + "content" : [ "acm005322jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005317jsd" : { + "type" : "CodePackage", + "id" : "acm005317jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005318jsd" ] + }, + "acm005318jsd" : { + "type" : "CodePackage", + "id" : "acm005318jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005319jsd" ] + }, + "acm005319jsd" : { + "type" : "CodePackage", + "id" : "acm005319jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005320jsd" ] + }, + "acm005320jsd" : { + "type" : "CodePackage", + "id" : "acm005320jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005316jsd" ] + }, + "acm005321jsd" : { + "type" : "ControlElement", + "id" : "acm005321jsd", + "name" : "execute" + }, + "acm005322jsd" : { + "type" : "ClassUnit", + "id" : "acm005322jsd", + "name" : "ErrorConsoleAction", + "compilationUnitId" : "acm005316jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003927jsd" ], + "content" : [ "acm005321jsd" ] + }, + "acm005323jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005323jsd", + "name" : "HelpAction", + "parentId" : "acm005266jsd", + "content" : [ "acm005331jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005324jsd" : { + "type" : "CodePackage", + "id" : "acm005324jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005325jsd" ] + }, + "acm005325jsd" : { + "type" : "CodePackage", + "id" : "acm005325jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005326jsd" ] + }, + "acm005326jsd" : { + "type" : "CodePackage", + "id" : "acm005326jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005327jsd" ] + }, + "acm005327jsd" : { + "type" : "CodePackage", + "id" : "acm005327jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005323jsd" ] + }, + "acm005328jsd" : { + "type" : "ControlElement", + "id" : "acm005328jsd", + "name" : "HelpAction" + }, + "acm005329jsd" : { + "type" : "ControlElement", + "id" : "acm005329jsd", + "name" : "openHelpPage" + }, + "acm005330jsd" : { + "type" : "ControlElement", + "id" : "acm005330jsd", + "name" : "execute" + }, + "acm005331jsd" : { + "type" : "ClassUnit", + "id" : "acm005331jsd", + "name" : "HelpAction", + "compilationUnitId" : "acm005323jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm012258jsd" ], + "content" : [ "acm005328jsd", "acm005329jsd", "acm005330jsd" ] + }, + "acm005332jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005332jsd", + "name" : "NewVersionDialog", + "parentId" : "acm005266jsd", + "content" : [ "acm005338jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005333jsd" : { + "type" : "CodePackage", + "id" : "acm005333jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005334jsd" ] + }, + "acm005334jsd" : { + "type" : "CodePackage", + "id" : "acm005334jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005335jsd" ] + }, + "acm005335jsd" : { + "type" : "CodePackage", + "id" : "acm005335jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005336jsd" ] + }, + "acm005336jsd" : { + "type" : "CodePackage", + "id" : "acm005336jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005332jsd" ] + }, + "acm005337jsd" : { + "type" : "ControlElement", + "id" : "acm005337jsd", + "name" : "NewVersionDialog" + }, + "acm005338jsd" : { + "type" : "ClassUnit", + "id" : "acm005338jsd", + "name" : "NewVersionDialog", + "compilationUnitId" : "acm005332jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm017404jsd" ], + "content" : [ "acm005337jsd" ] + }, + "acm005339jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005339jsd", + "name" : "SearchForUpdateAction", + "parentId" : "acm005266jsd", + "content" : [ "acm005346jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005340jsd" : { + "type" : "CodePackage", + "id" : "acm005340jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005341jsd" ] + }, + "acm005341jsd" : { + "type" : "CodePackage", + "id" : "acm005341jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005342jsd" ] + }, + "acm005342jsd" : { + "type" : "CodePackage", + "id" : "acm005342jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005343jsd" ] + }, + "acm005343jsd" : { + "type" : "CodePackage", + "id" : "acm005343jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005339jsd" ] + }, + "acm005344jsd" : { + "type" : "ControlElement", + "id" : "acm005344jsd", + "name" : "SearchForUpdateAction" + }, + "acm005345jsd" : { + "type" : "ControlElement", + "id" : "acm005345jsd", + "name" : "execute" + }, + "acm005346jsd" : { + "type" : "ClassUnit", + "id" : "acm005346jsd", + "name" : "SearchForUpdateAction", + "compilationUnitId" : "acm005339jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005358jsd", "acm009965jsd", "acm017281jsd", "acm020963jsd" ], + "content" : [ "acm005344jsd", "acm005345jsd" ] + }, + "acm005347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005347jsd", + "name" : "VersionWorker", + "parentId" : "acm005266jsd", + "content" : [ "acm005358jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005348jsd" : { + "type" : "CodePackage", + "id" : "acm005348jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005349jsd" ] + }, + "acm005349jsd" : { + "type" : "CodePackage", + "id" : "acm005349jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005350jsd" ] + }, + "acm005350jsd" : { + "type" : "CodePackage", + "id" : "acm005350jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005351jsd" ] + }, + "acm005351jsd" : { + "type" : "CodePackage", + "id" : "acm005351jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm005347jsd" ] + }, + "acm005352jsd" : { + "type" : "ControlElement", + "id" : "acm005352jsd", + "name" : "VersionWorker" + }, + "acm005353jsd" : { + "type" : "ControlElement", + "id" : "acm005353jsd", + "name" : "getNewVersion" + }, + "acm005354jsd" : { + "type" : "ControlElement", + "id" : "acm005354jsd", + "name" : "checkForNewVersionAsync" + }, + "acm005355jsd" : { + "type" : "ControlElement", + "id" : "acm005355jsd", + "name" : "checkForNewVersionDelayed" + }, + "acm005356jsd" : { + "type" : "ControlElement", + "id" : "acm005356jsd", + "name" : "showConnectionError" + }, + "acm005357jsd" : { + "type" : "ControlElement", + "id" : "acm005357jsd", + "name" : "showUpdateInfo" + }, + "acm005358jsd" : { + "type" : "ClassUnit", + "id" : "acm005358jsd", + "name" : "VersionWorker", + "compilationUnitId" : "acm005347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005338jsd", "acm005358jsd", "acm009965jsd", "acm017404jsd", "acm020963jsd" ], + "content" : [ "acm005352jsd", "acm005353jsd", "acm005354jsd", "acm005355jsd", "acm005356jsd", "acm005357jsd" ] + }, + "acm005359jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005359jsd", + "name" : "IconTheme", + "parentId" : "acm005363jsd", + "content" : [ "acm005380jsd", "acm005389jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005360jsd" : { + "type" : "CodePackage", + "id" : "acm005360jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005361jsd" ] + }, + "acm005361jsd" : { + "type" : "CodePackage", + "id" : "acm005361jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005362jsd" ] + }, + "acm005362jsd" : { + "type" : "CodePackage", + "id" : "acm005362jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005363jsd" ] + }, + "acm005363jsd" : { + "type" : "CodePackage", + "id" : "acm005363jsd", + "name" : "icon", + "parentId" : "acm001569jsd", + "content" : [ "acm005359jsd", "acm005390jsd", "acm005406jsd", "acm005417jsd", "acm005433jsd", "acm005444jsd", "acm005454jsd" ] + }, + "acm005364jsd" : { + "type" : "ControlElement", + "id" : "acm005364jsd", + "name" : "getDefaultGroupColor" + }, + "acm005365jsd" : { + "type" : "ControlElement", + "id" : "acm005365jsd", + "name" : "findIcon" + }, + "acm005366jsd" : { + "type" : "ControlElement", + "id" : "acm005366jsd", + "name" : "getJabRefImage" + }, + "acm005367jsd" : { + "type" : "ControlElement", + "id" : "acm005367jsd", + "name" : "loadAllIkons" + }, + "acm005368jsd" : { + "type" : "ControlElement", + "id" : "acm005368jsd", + "name" : "getImageFX" + }, + "acm005369jsd" : { + "type" : "ControlElement", + "id" : "acm005369jsd", + "name" : "getIconUrl" + }, + "acm005370jsd" : { + "type" : "ControlElement", + "id" : "acm005370jsd", + "name" : "readIconThemeFile" + }, + "acm005371jsd" : { + "type" : "ControlElement", + "id" : "acm005371jsd", + "name" : "getLogoSetFX" + }, + "acm005372jsd" : { + "type" : "ControlElement", + "id" : "acm005372jsd", + "name" : "JabRefIcons" + }, + "acm005373jsd" : { + "type" : "ControlElement", + "id" : "acm005373jsd", + "name" : "JabRefIcons" + }, + "acm005374jsd" : { + "type" : "ControlElement", + "id" : "acm005374jsd", + "name" : "getIkon" + }, + "acm005375jsd" : { + "type" : "ControlElement", + "id" : "acm005375jsd", + "name" : "getGraphicNode" + }, + "acm005376jsd" : { + "type" : "ControlElement", + "id" : "acm005376jsd", + "name" : "asButton" + }, + "acm005377jsd" : { + "type" : "ControlElement", + "id" : "acm005377jsd", + "name" : "asToggleButton" + }, + "acm005378jsd" : { + "type" : "ControlElement", + "id" : "acm005378jsd", + "name" : "withColor" + }, + "acm005379jsd" : { + "type" : "ControlElement", + "id" : "acm005379jsd", + "name" : "disabled" + }, + "acm005380jsd" : { + "type" : "ClassUnit", + "id" : "acm005380jsd", + "name" : "IconTheme", + "compilationUnitId" : "acm005359jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005380jsd", "acm005405jsd", "acm005416jsd" ], + "content" : [ "acm005364jsd", "acm005365jsd", "acm005366jsd", "acm005367jsd", "acm005368jsd", "acm005369jsd", "acm005370jsd", "acm005371jsd", "acm005372jsd", "acm005373jsd", "acm005374jsd", "acm005375jsd", "acm005376jsd", "acm005377jsd", "acm005378jsd", "acm005379jsd" ] + }, + "acm005381jsd" : { + "type" : "ControlElement", + "id" : "acm005381jsd", + "name" : "JabRefIcons" + }, + "acm005382jsd" : { + "type" : "ControlElement", + "id" : "acm005382jsd", + "name" : "JabRefIcons" + }, + "acm005383jsd" : { + "type" : "ControlElement", + "id" : "acm005383jsd", + "name" : "getIkon" + }, + "acm005384jsd" : { + "type" : "ControlElement", + "id" : "acm005384jsd", + "name" : "getGraphicNode" + }, + "acm005385jsd" : { + "type" : "ControlElement", + "id" : "acm005385jsd", + "name" : "asButton" + }, + "acm005386jsd" : { + "type" : "ControlElement", + "id" : "acm005386jsd", + "name" : "asToggleButton" + }, + "acm005387jsd" : { + "type" : "ControlElement", + "id" : "acm005387jsd", + "name" : "withColor" + }, + "acm005388jsd" : { + "type" : "ControlElement", + "id" : "acm005388jsd", + "name" : "disabled" + }, + "acm005389jsd" : { + "type" : "ClassUnit", + "id" : "acm005389jsd", + "name" : "JabRefIcons", + "compilationUnitId" : "acm005359jsd", + "parentDatatypeId" : "acm005380jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005416jsd" ], + "datatypeReferencesIds" : [ "acm005405jsd", "acm005416jsd" ], + "content" : [ "acm005381jsd", "acm005382jsd", "acm005383jsd", "acm005384jsd", "acm005385jsd", "acm005386jsd", "acm005387jsd", "acm005388jsd" ] + }, + "acm005390jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005390jsd", + "name" : "InternalMaterialDesignIcon", + "parentId" : "acm005363jsd", + "content" : [ "acm005405jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005391jsd" : { + "type" : "CodePackage", + "id" : "acm005391jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005392jsd" ] + }, + "acm005392jsd" : { + "type" : "CodePackage", + "id" : "acm005392jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005393jsd" ] + }, + "acm005393jsd" : { + "type" : "CodePackage", + "id" : "acm005393jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005394jsd" ] + }, + "acm005394jsd" : { + "type" : "CodePackage", + "id" : "acm005394jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005390jsd" ] + }, + "acm005395jsd" : { + "type" : "ControlElement", + "id" : "acm005395jsd", + "name" : "InternalMaterialDesignIcon" + }, + "acm005396jsd" : { + "type" : "ControlElement", + "id" : "acm005396jsd", + "name" : "InternalMaterialDesignIcon" + }, + "acm005397jsd" : { + "type" : "ControlElement", + "id" : "acm005397jsd", + "name" : "InternalMaterialDesignIcon" + }, + "acm005398jsd" : { + "type" : "ControlElement", + "id" : "acm005398jsd", + "name" : "InternalMaterialDesignIcon" + }, + "acm005399jsd" : { + "type" : "ControlElement", + "id" : "acm005399jsd", + "name" : "getGraphicNode" + }, + "acm005400jsd" : { + "type" : "ControlElement", + "id" : "acm005400jsd", + "name" : "disabled" + }, + "acm005401jsd" : { + "type" : "ControlElement", + "id" : "acm005401jsd", + "name" : "withColor" + }, + "acm005402jsd" : { + "type" : "ControlElement", + "id" : "acm005402jsd", + "name" : "name" + }, + "acm005403jsd" : { + "type" : "ControlElement", + "id" : "acm005403jsd", + "name" : "getCode" + }, + "acm005404jsd" : { + "type" : "ControlElement", + "id" : "acm005404jsd", + "name" : "getIkon" + }, + "acm005405jsd" : { + "type" : "ClassUnit", + "id" : "acm005405jsd", + "name" : "InternalMaterialDesignIcon", + "compilationUnitId" : "acm005390jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005416jsd" ], + "datatypeReferencesIds" : [ "acm005405jsd", "acm005416jsd" ], + "content" : [ "acm005395jsd", "acm005396jsd", "acm005397jsd", "acm005398jsd", "acm005399jsd", "acm005400jsd", "acm005401jsd", "acm005402jsd", "acm005403jsd", "acm005404jsd" ] + }, + "acm005406jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005406jsd", + "name" : "JabRefIcon", + "parentId" : "acm005363jsd", + "content" : [ "acm005416jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005407jsd" : { + "type" : "CodePackage", + "id" : "acm005407jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005408jsd" ] + }, + "acm005408jsd" : { + "type" : "CodePackage", + "id" : "acm005408jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005409jsd" ] + }, + "acm005409jsd" : { + "type" : "CodePackage", + "id" : "acm005409jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005410jsd" ] + }, + "acm005410jsd" : { + "type" : "CodePackage", + "id" : "acm005410jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005406jsd" ] + }, + "acm005411jsd" : { + "type" : "ControlElement", + "id" : "acm005411jsd", + "name" : "getGraphicNode" + }, + "acm005412jsd" : { + "type" : "ControlElement", + "id" : "acm005412jsd", + "name" : "name" + }, + "acm005413jsd" : { + "type" : "ControlElement", + "id" : "acm005413jsd", + "name" : "withColor" + }, + "acm005414jsd" : { + "type" : "ControlElement", + "id" : "acm005414jsd", + "name" : "disabled" + }, + "acm005415jsd" : { + "type" : "ControlElement", + "id" : "acm005415jsd", + "name" : "getIkon" + }, + "acm005416jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005416jsd", + "name" : "JabRefIcon", + "compilationUnitId" : "acm005406jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd" ], + "content" : [ "acm005411jsd", "acm005412jsd", "acm005413jsd", "acm005414jsd", "acm005415jsd" ] + }, + "acm005417jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005417jsd", + "name" : "JabRefIconView", + "parentId" : "acm005363jsd", + "content" : [ "acm005432jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005418jsd" : { + "type" : "CodePackage", + "id" : "acm005418jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005419jsd" ] + }, + "acm005419jsd" : { + "type" : "CodePackage", + "id" : "acm005419jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005420jsd" ] + }, + "acm005420jsd" : { + "type" : "CodePackage", + "id" : "acm005420jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005421jsd" ] + }, + "acm005421jsd" : { + "type" : "CodePackage", + "id" : "acm005421jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005417jsd" ] + }, + "acm005422jsd" : { + "type" : "ControlElement", + "id" : "acm005422jsd", + "name" : "JabRefIconView" + }, + "acm005423jsd" : { + "type" : "ControlElement", + "id" : "acm005423jsd", + "name" : "JabRefIconView" + }, + "acm005424jsd" : { + "type" : "ControlElement", + "id" : "acm005424jsd", + "name" : "JabRefIconView" + }, + "acm005425jsd" : { + "type" : "ControlElement", + "id" : "acm005425jsd", + "name" : "getDefaultGlyph" + }, + "acm005426jsd" : { + "type" : "ControlElement", + "id" : "acm005426jsd", + "name" : "getGlyph" + }, + "acm005427jsd" : { + "type" : "ControlElement", + "id" : "acm005427jsd", + "name" : "setGlyph" + }, + "acm005428jsd" : { + "type" : "ControlElement", + "id" : "acm005428jsd", + "name" : "glyphProperty" + }, + "acm005429jsd" : { + "type" : "ControlElement", + "id" : "acm005429jsd", + "name" : "setGlyphSize" + }, + "acm005430jsd" : { + "type" : "ControlElement", + "id" : "acm005430jsd", + "name" : "glyphSizeProperty" + }, + "acm005431jsd" : { + "type" : "ControlElement", + "id" : "acm005431jsd", + "name" : "getGlyphSize" + }, + "acm005432jsd" : { + "type" : "ClassUnit", + "id" : "acm005432jsd", + "name" : "JabRefIconView", + "compilationUnitId" : "acm005417jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005389jsd" ], + "content" : [ "acm005422jsd", "acm005423jsd", "acm005424jsd", "acm005425jsd", "acm005426jsd", "acm005427jsd", "acm005428jsd", "acm005429jsd", "acm005430jsd", "acm005431jsd" ] + }, + "acm005433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005433jsd", + "name" : "JabRefIkonHandler", + "parentId" : "acm005363jsd", + "content" : [ "acm005443jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005434jsd" : { + "type" : "CodePackage", + "id" : "acm005434jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005435jsd" ] + }, + "acm005435jsd" : { + "type" : "CodePackage", + "id" : "acm005435jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005436jsd" ] + }, + "acm005436jsd" : { + "type" : "CodePackage", + "id" : "acm005436jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005437jsd" ] + }, + "acm005437jsd" : { + "type" : "CodePackage", + "id" : "acm005437jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005433jsd" ] + }, + "acm005438jsd" : { + "type" : "ControlElement", + "id" : "acm005438jsd", + "name" : "supports" + }, + "acm005439jsd" : { + "type" : "ControlElement", + "id" : "acm005439jsd", + "name" : "resolve" + }, + "acm005440jsd" : { + "type" : "ControlElement", + "id" : "acm005440jsd", + "name" : "getFontResource" + }, + "acm005441jsd" : { + "type" : "ControlElement", + "id" : "acm005441jsd", + "name" : "getFontResourceAsStream" + }, + "acm005442jsd" : { + "type" : "ControlElement", + "id" : "acm005442jsd", + "name" : "getFontFamily" + }, + "acm005443jsd" : { + "type" : "ClassUnit", + "id" : "acm005443jsd", + "name" : "JabRefIkonHandler", + "compilationUnitId" : "acm005433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005438jsd", "acm005439jsd", "acm005440jsd", "acm005441jsd", "acm005442jsd" ] + }, + "acm005444jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005444jsd", + "name" : "JabRefMaterialDesignIcon", + "parentId" : "acm005363jsd", + "content" : [ "acm005453jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005445jsd" : { + "type" : "CodePackage", + "id" : "acm005445jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005446jsd" ] + }, + "acm005446jsd" : { + "type" : "CodePackage", + "id" : "acm005446jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005447jsd" ] + }, + "acm005447jsd" : { + "type" : "CodePackage", + "id" : "acm005447jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005448jsd" ] + }, + "acm005448jsd" : { + "type" : "CodePackage", + "id" : "acm005448jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005444jsd" ] + }, + "acm005449jsd" : { + "type" : "ControlElement", + "id" : "acm005449jsd", + "name" : "JabRefMaterialDesignIcon" + }, + "acm005450jsd" : { + "type" : "ControlElement", + "id" : "acm005450jsd", + "name" : "findByDescription" + }, + "acm005451jsd" : { + "type" : "ControlElement", + "id" : "acm005451jsd", + "name" : "getDescription" + }, + "acm005452jsd" : { + "type" : "ControlElement", + "id" : "acm005452jsd", + "name" : "getCode" + }, + "acm005453jsd" : { + "type" : "ClassUnit", + "id" : "acm005453jsd", + "name" : "JabRefMaterialDesignIcon", + "compilationUnitId" : "acm005444jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005453jsd" ], + "content" : [ "acm005449jsd", "acm005450jsd", "acm005451jsd", "acm005452jsd" ] + }, + "acm005454jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005454jsd", + "name" : "JabrefIconProvider", + "parentId" : "acm005363jsd", + "content" : [ "acm005460jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "icon" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005455jsd" : { + "type" : "CodePackage", + "id" : "acm005455jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005456jsd" ] + }, + "acm005456jsd" : { + "type" : "CodePackage", + "id" : "acm005456jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005457jsd" ] + }, + "acm005457jsd" : { + "type" : "CodePackage", + "id" : "acm005457jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005458jsd" ] + }, + "acm005458jsd" : { + "type" : "CodePackage", + "id" : "acm005458jsd", + "name" : "icon", + "parentId" : null, + "content" : [ "acm005454jsd" ] + }, + "acm005459jsd" : { + "type" : "ControlElement", + "id" : "acm005459jsd", + "name" : "getIkon" + }, + "acm005460jsd" : { + "type" : "ClassUnit", + "id" : "acm005460jsd", + "name" : "JabrefIconProvider", + "compilationUnitId" : "acm005454jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005453jsd" ], + "content" : [ "acm005459jsd" ] + }, + "acm005461jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005461jsd", + "name" : "GenerateEntryFromIdAction", + "parentId" : "acm005465jsd", + "content" : [ "acm005470jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005462jsd" : { + "type" : "CodePackage", + "id" : "acm005462jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005463jsd" ] + }, + "acm005463jsd" : { + "type" : "CodePackage", + "id" : "acm005463jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005464jsd" ] + }, + "acm005464jsd" : { + "type" : "CodePackage", + "id" : "acm005464jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005465jsd" ] + }, + "acm005465jsd" : { + "type" : "CodePackage", + "id" : "acm005465jsd", + "name" : "importer", + "parentId" : "acm001569jsd", + "content" : [ "acm005461jsd", "acm005471jsd", "acm005481jsd", "acm005488jsd", "acm005499jsd", "acm005508jsd", "acm005517jsd", "acm005527jsd", "acm005540jsd", "acm005557jsd", "acm005568jsd", "acm005576jsd", "acm005586jsd", "acm021792jsd", "acm005600jsd", "acm005654jsd" ] + }, + "acm005466jsd" : { + "type" : "ControlElement", + "id" : "acm005466jsd", + "name" : "GenerateEntryFromIdAction" + }, + "acm005467jsd" : { + "type" : "ControlElement", + "id" : "acm005467jsd", + "name" : "execute" + }, + "acm005468jsd" : { + "type" : "ControlElement", + "id" : "acm005468jsd", + "name" : "searchAndImportEntryInBackground" + }, + "acm005469jsd" : { + "type" : "ControlElement", + "id" : "acm005469jsd", + "name" : "call" + }, + "acm005470jsd" : { + "type" : "ClassUnit", + "id" : "acm005470jsd", + "name" : "GenerateEntryFromIdAction", + "compilationUnitId" : "acm005461jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm005470jsd", "acm009965jsd", "acm012279jsd", "acm012314jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm005466jsd", "acm005467jsd", "acm005468jsd", "acm005469jsd" ] + }, + "acm005471jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005471jsd", + "name" : "GenerateEntryFromIdDialog", + "parentId" : "acm005465jsd", + "content" : [ "acm005480jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005472jsd" : { + "type" : "CodePackage", + "id" : "acm005472jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005473jsd" ] + }, + "acm005473jsd" : { + "type" : "CodePackage", + "id" : "acm005473jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005474jsd" ] + }, + "acm005474jsd" : { + "type" : "CodePackage", + "id" : "acm005474jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005475jsd" ] + }, + "acm005475jsd" : { + "type" : "CodePackage", + "id" : "acm005475jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005471jsd" ] + }, + "acm005476jsd" : { + "type" : "ControlElement", + "id" : "acm005476jsd", + "name" : "GenerateEntryFromIdDialog" + }, + "acm005477jsd" : { + "type" : "ControlElement", + "id" : "acm005477jsd", + "name" : "generateEntry" + }, + "acm005478jsd" : { + "type" : "ControlElement", + "id" : "acm005478jsd", + "name" : "setEntryFromIdPopOver" + }, + "acm005479jsd" : { + "type" : "ControlElement", + "id" : "acm005479jsd", + "name" : "getDialogPane" + }, + "acm005480jsd" : { + "type" : "ClassUnit", + "id" : "acm005480jsd", + "name" : "GenerateEntryFromIdDialog", + "compilationUnitId" : "acm005471jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm005470jsd", "acm009965jsd", "acm021206jsd" ], + "content" : [ "acm005476jsd", "acm005477jsd", "acm005478jsd", "acm005479jsd" ] + }, + "acm005481jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005481jsd", + "name" : "GrobidOptInDialogHelper", + "parentId" : "acm005465jsd", + "content" : [ "acm005487jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005482jsd" : { + "type" : "CodePackage", + "id" : "acm005482jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005483jsd" ] + }, + "acm005483jsd" : { + "type" : "CodePackage", + "id" : "acm005483jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005484jsd" ] + }, + "acm005484jsd" : { + "type" : "CodePackage", + "id" : "acm005484jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005485jsd" ] + }, + "acm005485jsd" : { + "type" : "CodePackage", + "id" : "acm005485jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005481jsd" ] + }, + "acm005486jsd" : { + "type" : "ControlElement", + "id" : "acm005486jsd", + "name" : "showAndWaitIfUserIsUndecided" + }, + "acm005487jsd" : { + "type" : "ClassUnit", + "id" : "acm005487jsd", + "name" : "GrobidOptInDialogHelper", + "compilationUnitId" : "acm005481jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm013062jsd" ], + "content" : [ "acm005486jsd" ] + }, + "acm005488jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005488jsd", + "name" : "ImportAction", + "parentId" : "acm005465jsd", + "content" : [ "acm005498jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005489jsd" : { + "type" : "CodePackage", + "id" : "acm005489jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005490jsd" ] + }, + "acm005490jsd" : { + "type" : "CodePackage", + "id" : "acm005490jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005491jsd" ] + }, + "acm005491jsd" : { + "type" : "CodePackage", + "id" : "acm005491jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005492jsd" ] + }, + "acm005492jsd" : { + "type" : "CodePackage", + "id" : "acm005492jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005488jsd" ] + }, + "acm005493jsd" : { + "type" : "ControlElement", + "id" : "acm005493jsd", + "name" : "ImportAction" + }, + "acm005494jsd" : { + "type" : "ControlElement", + "id" : "acm005494jsd", + "name" : "automatedImport" + }, + "acm005495jsd" : { + "type" : "ControlElement", + "id" : "acm005495jsd", + "name" : "fileIsPdf" + }, + "acm005496jsd" : { + "type" : "ControlElement", + "id" : "acm005496jsd", + "name" : "doImport" + }, + "acm005497jsd" : { + "type" : "ControlElement", + "id" : "acm005497jsd", + "name" : "mergeImportResults" + }, + "acm005498jsd" : { + "type" : "ClassUnit", + "id" : "acm005498jsd", + "name" : "ImportAction", + "compilationUnitId" : "acm005488jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm005498jsd", "acm005539jsd", "acm009536jsd", "acm009965jsd", "acm011359jsd", "acm012407jsd", "acm012430jsd", "acm012455jsd", "acm012556jsd", "acm017988jsd", "acm021206jsd" ], + "content" : [ "acm005493jsd", "acm005494jsd", "acm005495jsd", "acm005496jsd", "acm005497jsd" ] + }, + "acm005499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005499jsd", + "name" : "ImportCommand", + "parentId" : "acm005465jsd", + "content" : [ "acm005507jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005500jsd" : { + "type" : "CodePackage", + "id" : "acm005500jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005501jsd" ] + }, + "acm005501jsd" : { + "type" : "CodePackage", + "id" : "acm005501jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005502jsd" ] + }, + "acm005502jsd" : { + "type" : "CodePackage", + "id" : "acm005502jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005503jsd" ] + }, + "acm005503jsd" : { + "type" : "CodePackage", + "id" : "acm005503jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005499jsd" ] + }, + "acm005504jsd" : { + "type" : "ControlElement", + "id" : "acm005504jsd", + "name" : "ImportCommand" + }, + "acm005505jsd" : { + "type" : "ControlElement", + "id" : "acm005505jsd", + "name" : "execute" + }, + "acm005506jsd" : { + "type" : "ControlElement", + "id" : "acm005506jsd", + "name" : "doImport" + }, + "acm005507jsd" : { + "type" : "ClassUnit", + "id" : "acm005507jsd", + "name" : "ImportCommand", + "compilationUnitId" : "acm005499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm005498jsd", "acm009796jsd", "acm009809jsd", "acm012455jsd", "acm021206jsd" ], + "content" : [ "acm005504jsd", "acm005505jsd", "acm005506jsd" ] + }, + "acm005508jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005508jsd", + "name" : "ImportCustomEntryTypesDialog", + "parentId" : "acm005465jsd", + "content" : [ "acm005516jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005509jsd" : { + "type" : "CodePackage", + "id" : "acm005509jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005510jsd" ] + }, + "acm005510jsd" : { + "type" : "CodePackage", + "id" : "acm005510jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005511jsd" ] + }, + "acm005511jsd" : { + "type" : "CodePackage", + "id" : "acm005511jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005512jsd" ] + }, + "acm005512jsd" : { + "type" : "CodePackage", + "id" : "acm005512jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005508jsd" ] + }, + "acm005513jsd" : { + "type" : "ControlElement", + "id" : "acm005513jsd", + "name" : "ImportCustomEntryTypesDialog" + }, + "acm005514jsd" : { + "type" : "ControlElement", + "id" : "acm005514jsd", + "name" : "initialize" + }, + "acm005515jsd" : { + "type" : "ControlElement", + "id" : "acm005515jsd", + "name" : "updateItem" + }, + "acm005516jsd" : { + "type" : "ClassUnit", + "id" : "acm005516jsd", + "name" : "ImportCustomEntryTypesDialog", + "compilationUnitId" : "acm005508jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005526jsd", "acm018032jsd", "acm018289jsd", "acm021206jsd" ], + "content" : [ "acm005513jsd", "acm005514jsd", "acm005515jsd" ] + }, + "acm005517jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005517jsd", + "name" : "ImportCustomEntryTypesDialogViewModel", + "parentId" : "acm005465jsd", + "content" : [ "acm005526jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005518jsd" : { + "type" : "CodePackage", + "id" : "acm005518jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005519jsd" ] + }, + "acm005519jsd" : { + "type" : "CodePackage", + "id" : "acm005519jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005520jsd" ] + }, + "acm005520jsd" : { + "type" : "CodePackage", + "id" : "acm005520jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005521jsd" ] + }, + "acm005521jsd" : { + "type" : "CodePackage", + "id" : "acm005521jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005517jsd" ] + }, + "acm005522jsd" : { + "type" : "ControlElement", + "id" : "acm005522jsd", + "name" : "ImportCustomEntryTypesDialogViewModel" + }, + "acm005523jsd" : { + "type" : "ControlElement", + "id" : "acm005523jsd", + "name" : "newTypes" + }, + "acm005524jsd" : { + "type" : "ControlElement", + "id" : "acm005524jsd", + "name" : "differentCustomizations" + }, + "acm005525jsd" : { + "type" : "ControlElement", + "id" : "acm005525jsd", + "name" : "importBibEntryTypes" + }, + "acm005526jsd" : { + "type" : "ClassUnit", + "id" : "acm005526jsd", + "name" : "ImportCustomEntryTypesDialogViewModel", + "compilationUnitId" : "acm005517jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd", "acm018289jsd", "acm021206jsd" ], + "content" : [ "acm005522jsd", "acm005523jsd", "acm005524jsd", "acm005525jsd" ] + }, + "acm005527jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005527jsd", + "name" : "ImportEntriesDialog", + "parentId" : "acm005465jsd", + "content" : [ "acm005539jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005528jsd" : { + "type" : "CodePackage", + "id" : "acm005528jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005529jsd" ] + }, + "acm005529jsd" : { + "type" : "CodePackage", + "id" : "acm005529jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005530jsd" ] + }, + "acm005530jsd" : { + "type" : "CodePackage", + "id" : "acm005530jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005531jsd" ] + }, + "acm005531jsd" : { + "type" : "CodePackage", + "id" : "acm005531jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005527jsd" ] + }, + "acm005532jsd" : { + "type" : "ControlElement", + "id" : "acm005532jsd", + "name" : "ImportEntriesDialog" + }, + "acm005533jsd" : { + "type" : "ControlElement", + "id" : "acm005533jsd", + "name" : "initialize" + }, + "acm005534jsd" : { + "type" : "ControlElement", + "id" : "acm005534jsd", + "name" : "getEntryNode" + }, + "acm005535jsd" : { + "type" : "ControlElement", + "id" : "acm005535jsd", + "name" : "getIcon" + }, + "acm005536jsd" : { + "type" : "ControlElement", + "id" : "acm005536jsd", + "name" : "unselectAll" + }, + "acm005537jsd" : { + "type" : "ControlElement", + "id" : "acm005537jsd", + "name" : "selectAllNewEntries" + }, + "acm005538jsd" : { + "type" : "ControlElement", + "id" : "acm005538jsd", + "name" : "selectAllEntries" + }, + "acm005539jsd" : { + "type" : "ClassUnit", + "id" : "acm005539jsd", + "name" : "ImportEntriesDialog", + "compilationUnitId" : "acm005527jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005389jsd", "acm005556jsd", "acm009536jsd", "acm009884jsd", "acm009965jsd", "acm010051jsd", "acm012556jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm019005jsd", "acm019047jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm005532jsd", "acm005533jsd", "acm005534jsd", "acm005535jsd", "acm005536jsd", "acm005537jsd", "acm005538jsd" ] + }, + "acm005540jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005540jsd", + "name" : "ImportEntriesViewModel", + "parentId" : "acm005465jsd", + "content" : [ "acm005556jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005541jsd" : { + "type" : "CodePackage", + "id" : "acm005541jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005542jsd" ] + }, + "acm005542jsd" : { + "type" : "CodePackage", + "id" : "acm005542jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005543jsd" ] + }, + "acm005543jsd" : { + "type" : "CodePackage", + "id" : "acm005543jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005544jsd" ] + }, + "acm005544jsd" : { + "type" : "CodePackage", + "id" : "acm005544jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005540jsd" ] + }, + "acm005545jsd" : { + "type" : "ControlElement", + "id" : "acm005545jsd", + "name" : "ImportEntriesViewModel" + }, + "acm005546jsd" : { + "type" : "ControlElement", + "id" : "acm005546jsd", + "name" : "getMessage" + }, + "acm005547jsd" : { + "type" : "ControlElement", + "id" : "acm005547jsd", + "name" : "messageProperty" + }, + "acm005548jsd" : { + "type" : "ControlElement", + "id" : "acm005548jsd", + "name" : "selectedDbProperty" + }, + "acm005549jsd" : { + "type" : "ControlElement", + "id" : "acm005549jsd", + "name" : "getSelectedDb" + }, + "acm005550jsd" : { + "type" : "ControlElement", + "id" : "acm005550jsd", + "name" : "getEntries" + }, + "acm005551jsd" : { + "type" : "ControlElement", + "id" : "acm005551jsd", + "name" : "hasDuplicate" + }, + "acm005552jsd" : { + "type" : "ControlElement", + "id" : "acm005552jsd", + "name" : "importEntries" + }, + "acm005553jsd" : { + "type" : "ControlElement", + "id" : "acm005553jsd", + "name" : "buildImportHandlerThenImportEntries" + }, + "acm005554jsd" : { + "type" : "ControlElement", + "id" : "acm005554jsd", + "name" : "findInternalDuplicate" + }, + "acm005555jsd" : { + "type" : "ControlElement", + "id" : "acm005555jsd", + "name" : "resolveDuplicate" + }, + "acm005556jsd" : { + "type" : "ClassUnit", + "id" : "acm005556jsd", + "name" : "ImportEntriesViewModel", + "compilationUnitId" : "acm005540jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003250jsd", "acm003252jsd", "acm004223jsd", "acm005498jsd", "acm009536jsd", "acm009965jsd", "acm011359jsd", "acm011386jsd", "acm012556jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm005545jsd", "acm005546jsd", "acm005547jsd", "acm005548jsd", "acm005549jsd", "acm005550jsd", "acm005551jsd", "acm005552jsd", "acm005553jsd", "acm005554jsd", "acm005555jsd" ] + }, + "acm005557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005557jsd", + "name" : "ImporterViewModel", + "parentId" : "acm005465jsd", + "content" : [ "acm005567jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005558jsd" : { + "type" : "CodePackage", + "id" : "acm005558jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005559jsd" ] + }, + "acm005559jsd" : { + "type" : "CodePackage", + "id" : "acm005559jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005560jsd" ] + }, + "acm005560jsd" : { + "type" : "CodePackage", + "id" : "acm005560jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005561jsd" ] + }, + "acm005561jsd" : { + "type" : "CodePackage", + "id" : "acm005561jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005557jsd" ] + }, + "acm005562jsd" : { + "type" : "ControlElement", + "id" : "acm005562jsd", + "name" : "ImporterViewModel" + }, + "acm005563jsd" : { + "type" : "ControlElement", + "id" : "acm005563jsd", + "name" : "getLogic" + }, + "acm005564jsd" : { + "type" : "ControlElement", + "id" : "acm005564jsd", + "name" : "name" + }, + "acm005565jsd" : { + "type" : "ControlElement", + "id" : "acm005565jsd", + "name" : "className" + }, + "acm005566jsd" : { + "type" : "ControlElement", + "id" : "acm005566jsd", + "name" : "basePath" + }, + "acm005567jsd" : { + "type" : "ClassUnit", + "id" : "acm005567jsd", + "name" : "ImporterViewModel", + "compilationUnitId" : "acm005557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013876jsd" ], + "content" : [ "acm005562jsd", "acm005563jsd", "acm005564jsd", "acm005565jsd", "acm005566jsd" ] + }, + "acm005568jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005568jsd", + "name" : "NewDatabaseAction", + "parentId" : "acm005465jsd", + "content" : [ "acm005575jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005569jsd" : { + "type" : "CodePackage", + "id" : "acm005569jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005570jsd" ] + }, + "acm005570jsd" : { + "type" : "CodePackage", + "id" : "acm005570jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005571jsd" ] + }, + "acm005571jsd" : { + "type" : "CodePackage", + "id" : "acm005571jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005572jsd" ] + }, + "acm005572jsd" : { + "type" : "CodePackage", + "id" : "acm005572jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005568jsd" ] + }, + "acm005573jsd" : { + "type" : "ControlElement", + "id" : "acm005573jsd", + "name" : "NewDatabaseAction" + }, + "acm005574jsd" : { + "type" : "ControlElement", + "id" : "acm005574jsd", + "name" : "execute" + }, + "acm005575jsd" : { + "type" : "ClassUnit", + "id" : "acm005575jsd", + "name" : "NewDatabaseAction", + "compilationUnitId" : "acm005568jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm005573jsd", "acm005574jsd" ] + }, + "acm005576jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005576jsd", + "name" : "NewEntryAction", + "parentId" : "acm005465jsd", + "content" : [ "acm005585jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005577jsd" : { + "type" : "CodePackage", + "id" : "acm005577jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005578jsd" ] + }, + "acm005578jsd" : { + "type" : "CodePackage", + "id" : "acm005578jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005579jsd" ] + }, + "acm005579jsd" : { + "type" : "CodePackage", + "id" : "acm005579jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005580jsd" ] + }, + "acm005580jsd" : { + "type" : "CodePackage", + "id" : "acm005580jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005576jsd" ] + }, + "acm005581jsd" : { + "type" : "ControlElement", + "id" : "acm005581jsd", + "name" : "NewEntryAction" + }, + "acm005582jsd" : { + "type" : "ControlElement", + "id" : "acm005582jsd", + "name" : "NewEntryAction" + }, + "acm005583jsd" : { + "type" : "ControlElement", + "id" : "acm005583jsd", + "name" : "execute" + }, + "acm005584jsd" : { + "type" : "ControlElement", + "id" : "acm005584jsd", + "name" : "trackNewEntry" + }, + "acm005585jsd" : { + "type" : "ClassUnit", + "id" : "acm005585jsd", + "name" : "NewEntryAction", + "compilationUnitId" : "acm005576jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001667jsd", "acm001847jsd", "acm002045jsd", "acm005585jsd", "acm018267jsd", "acm019005jsd", "acm021206jsd" ], + "content" : [ "acm005581jsd", "acm005582jsd", "acm005583jsd", "acm005584jsd" ] + }, + "acm005586jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005586jsd", + "name" : "ParserResultWarningDialog", + "parentId" : "acm005465jsd", + "content" : [ "acm005594jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005587jsd" : { + "type" : "CodePackage", + "id" : "acm005587jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005588jsd" ] + }, + "acm005588jsd" : { + "type" : "CodePackage", + "id" : "acm005588jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005589jsd" ] + }, + "acm005589jsd" : { + "type" : "CodePackage", + "id" : "acm005589jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005590jsd" ] + }, + "acm005590jsd" : { + "type" : "CodePackage", + "id" : "acm005590jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005586jsd" ] + }, + "acm005591jsd" : { + "type" : "ControlElement", + "id" : "acm005591jsd", + "name" : "ParserResultWarningDialog" + }, + "acm005592jsd" : { + "type" : "ControlElement", + "id" : "acm005592jsd", + "name" : "showParserResultWarningDialog" + }, + "acm005593jsd" : { + "type" : "ControlElement", + "id" : "acm005593jsd", + "name" : "showParserResultWarningDialog" + }, + "acm005594jsd" : { + "type" : "ClassUnit", + "id" : "acm005594jsd", + "name" : "ParserResultWarningDialog", + "compilationUnitId" : "acm005586jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm012556jsd" ], + "content" : [ "acm005591jsd", "acm005592jsd", "acm005593jsd" ] + }, + "acm005595jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005595jsd", + "name" : "CheckForNewEntryTypesAction", + "parentId" : "acm005600jsd", + "content" : [ "acm005605jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005596jsd" : { + "type" : "CodePackage", + "id" : "acm005596jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005597jsd" ] + }, + "acm005597jsd" : { + "type" : "CodePackage", + "id" : "acm005597jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005598jsd" ] + }, + "acm005598jsd" : { + "type" : "CodePackage", + "id" : "acm005598jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005599jsd" ] + }, + "acm005599jsd" : { + "type" : "CodePackage", + "id" : "acm005599jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005600jsd" ] + }, + "acm005600jsd" : { + "type" : "CodePackage", + "id" : "acm005600jsd", + "name" : "actions", + "parentId" : "acm005465jsd", + "content" : [ "acm005595jsd", "acm005606jsd", "acm005615jsd", "acm005624jsd", "acm005633jsd" ] + }, + "acm005601jsd" : { + "type" : "ControlElement", + "id" : "acm005601jsd", + "name" : "isActionNecessary" + }, + "acm005602jsd" : { + "type" : "ControlElement", + "id" : "acm005602jsd", + "name" : "performAction" + }, + "acm005603jsd" : { + "type" : "ControlElement", + "id" : "acm005603jsd", + "name" : "getListOfUnknownAndUnequalCustomizations" + }, + "acm005604jsd" : { + "type" : "ControlElement", + "id" : "acm005604jsd", + "name" : "getBibDatabaseModeFromParserResult" + }, + "acm005605jsd" : { + "type" : "ClassUnit", + "id" : "acm005605jsd", + "name" : "CheckForNewEntryTypesAction", + "compilationUnitId" : "acm005595jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005614jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm005516jsd", "acm012556jsd", "acm018032jsd", "acm018289jsd" ], + "content" : [ "acm005601jsd", "acm005602jsd", "acm005603jsd", "acm005604jsd" ] + }, + "acm005606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005606jsd", + "name" : "GUIPostOpenAction", + "parentId" : "acm005600jsd", + "content" : [ "acm005614jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005607jsd" : { + "type" : "CodePackage", + "id" : "acm005607jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005608jsd" ] + }, + "acm005608jsd" : { + "type" : "CodePackage", + "id" : "acm005608jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005609jsd" ] + }, + "acm005609jsd" : { + "type" : "CodePackage", + "id" : "acm005609jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005610jsd" ] + }, + "acm005610jsd" : { + "type" : "CodePackage", + "id" : "acm005610jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005611jsd" ] + }, + "acm005611jsd" : { + "type" : "CodePackage", + "id" : "acm005611jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm005606jsd" ] + }, + "acm005612jsd" : { + "type" : "ControlElement", + "id" : "acm005612jsd", + "name" : "isActionNecessary" + }, + "acm005613jsd" : { + "type" : "ControlElement", + "id" : "acm005613jsd", + "name" : "performAction" + }, + "acm005614jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005614jsd", + "name" : "GUIPostOpenAction", + "compilationUnitId" : "acm005606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm012556jsd" ], + "content" : [ "acm005612jsd", "acm005613jsd" ] + }, + "acm005615jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005615jsd", + "name" : "MergeReviewIntoCommentAction", + "parentId" : "acm005600jsd", + "content" : [ "acm005623jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005616jsd" : { + "type" : "CodePackage", + "id" : "acm005616jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005617jsd" ] + }, + "acm005617jsd" : { + "type" : "CodePackage", + "id" : "acm005617jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005618jsd" ] + }, + "acm005618jsd" : { + "type" : "CodePackage", + "id" : "acm005618jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005619jsd" ] + }, + "acm005619jsd" : { + "type" : "CodePackage", + "id" : "acm005619jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005620jsd" ] + }, + "acm005620jsd" : { + "type" : "CodePackage", + "id" : "acm005620jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm005615jsd" ] + }, + "acm005621jsd" : { + "type" : "ControlElement", + "id" : "acm005621jsd", + "name" : "isActionNecessary" + }, + "acm005622jsd" : { + "type" : "ControlElement", + "id" : "acm005622jsd", + "name" : "performAction" + }, + "acm005623jsd" : { + "type" : "ClassUnit", + "id" : "acm005623jsd", + "name" : "MergeReviewIntoCommentAction", + "compilationUnitId" : "acm005615jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005614jsd" ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm005632jsd", "acm012556jsd", "acm017818jsd", "acm018267jsd" ], + "content" : [ "acm005621jsd", "acm005622jsd" ] + }, + "acm005624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005624jsd", + "name" : "MergeReviewIntoCommentConfirmationDialog", + "parentId" : "acm005600jsd", + "content" : [ "acm005632jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005625jsd" : { + "type" : "CodePackage", + "id" : "acm005625jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005626jsd" ] + }, + "acm005626jsd" : { + "type" : "CodePackage", + "id" : "acm005626jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005627jsd" ] + }, + "acm005627jsd" : { + "type" : "CodePackage", + "id" : "acm005627jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005628jsd" ] + }, + "acm005628jsd" : { + "type" : "CodePackage", + "id" : "acm005628jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005629jsd" ] + }, + "acm005629jsd" : { + "type" : "CodePackage", + "id" : "acm005629jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm005624jsd" ] + }, + "acm005630jsd" : { + "type" : "ControlElement", + "id" : "acm005630jsd", + "name" : "MergeReviewIntoCommentConfirmationDialog" + }, + "acm005631jsd" : { + "type" : "ControlElement", + "id" : "acm005631jsd", + "name" : "askUserForMerge" + }, + "acm005632jsd" : { + "type" : "ClassUnit", + "id" : "acm005632jsd", + "name" : "MergeReviewIntoCommentConfirmationDialog", + "compilationUnitId" : "acm005624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm018267jsd" ], + "content" : [ "acm005630jsd", "acm005631jsd" ] + }, + "acm005633jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005633jsd", + "name" : "OpenDatabaseAction", + "parentId" : "acm005600jsd", + "content" : [ "acm005648jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "actions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005634jsd" : { + "type" : "CodePackage", + "id" : "acm005634jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005635jsd" ] + }, + "acm005635jsd" : { + "type" : "CodePackage", + "id" : "acm005635jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005636jsd" ] + }, + "acm005636jsd" : { + "type" : "CodePackage", + "id" : "acm005636jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005637jsd" ] + }, + "acm005637jsd" : { + "type" : "CodePackage", + "id" : "acm005637jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005638jsd" ] + }, + "acm005638jsd" : { + "type" : "CodePackage", + "id" : "acm005638jsd", + "name" : "actions", + "parentId" : null, + "content" : [ "acm005633jsd" ] + }, + "acm005639jsd" : { + "type" : "ControlElement", + "id" : "acm005639jsd", + "name" : "OpenDatabaseAction" + }, + "acm005640jsd" : { + "type" : "ControlElement", + "id" : "acm005640jsd", + "name" : "performPostOpenActions" + }, + "acm005641jsd" : { + "type" : "ControlElement", + "id" : "acm005641jsd", + "name" : "execute" + }, + "acm005642jsd" : { + "type" : "ControlElement", + "id" : "acm005642jsd", + "name" : "getInitialDirectory" + }, + "acm005643jsd" : { + "type" : "ControlElement", + "id" : "acm005643jsd", + "name" : "openFile" + }, + "acm005644jsd" : { + "type" : "ControlElement", + "id" : "acm005644jsd", + "name" : "openFiles" + }, + "acm005645jsd" : { + "type" : "ControlElement", + "id" : "acm005645jsd", + "name" : "openTheFile" + }, + "acm005646jsd" : { + "type" : "ControlElement", + "id" : "acm005646jsd", + "name" : "loadDatabase" + }, + "acm005647jsd" : { + "type" : "ControlElement", + "id" : "acm005647jsd", + "name" : "trackOpenNewDatabase" + }, + "acm005648jsd" : { + "type" : "ClassUnit", + "id" : "acm005648jsd", + "name" : "OpenDatabaseAction", + "compilationUnitId" : "acm005633jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm002045jsd", "acm005605jsd", "acm005614jsd", "acm005623jsd", "acm005648jsd", "acm006493jsd", "acm008939jsd", "acm009346jsd", "acm009536jsd", "acm009796jsd", "acm009809jsd", "acm012556jsd", "acm017016jsd", "acm017109jsd", "acm017117jsd", "acm021206jsd" ], + "content" : [ "acm005639jsd", "acm005640jsd", "acm005641jsd", "acm005642jsd", "acm005643jsd", "acm005644jsd", "acm005645jsd", "acm005646jsd", "acm005647jsd" ] + }, + "acm005649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005649jsd", + "name" : "LookupIdentifierAction", + "parentId" : "acm005654jsd", + "content" : [ "acm005663jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005650jsd" : { + "type" : "CodePackage", + "id" : "acm005650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005651jsd" ] + }, + "acm005651jsd" : { + "type" : "CodePackage", + "id" : "acm005651jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005652jsd" ] + }, + "acm005652jsd" : { + "type" : "CodePackage", + "id" : "acm005652jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005653jsd" ] + }, + "acm005653jsd" : { + "type" : "CodePackage", + "id" : "acm005653jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005654jsd" ] + }, + "acm005654jsd" : { + "type" : "CodePackage", + "id" : "acm005654jsd", + "name" : "fetcher", + "parentId" : "acm005465jsd", + "content" : [ "acm005649jsd", "acm005664jsd", "acm005673jsd", "acm021801jsd" ] + }, + "acm005655jsd" : { + "type" : "ControlElement", + "id" : "acm005655jsd", + "name" : "LookupIdentifierAction" + }, + "acm005656jsd" : { + "type" : "ControlElement", + "id" : "acm005656jsd", + "name" : "execute" + }, + "acm005657jsd" : { + "type" : "ControlElement", + "id" : "acm005657jsd", + "name" : "getAction" + }, + "acm005658jsd" : { + "type" : "ControlElement", + "id" : "acm005658jsd", + "name" : "getIcon" + }, + "acm005659jsd" : { + "type" : "ControlElement", + "id" : "acm005659jsd", + "name" : "getKeyBinding" + }, + "acm005660jsd" : { + "type" : "ControlElement", + "id" : "acm005660jsd", + "name" : "getText" + }, + "acm005661jsd" : { + "type" : "ControlElement", + "id" : "acm005661jsd", + "name" : "getDescription" + }, + "acm005662jsd" : { + "type" : "ControlElement", + "id" : "acm005662jsd", + "name" : "lookupIdentifiers" + }, + "acm005663jsd" : { + "type" : "ClassUnit", + "id" : "acm005663jsd", + "name" : "LookupIdentifierAction", + "compilationUnitId" : "acm005649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd", "acm002070jsd", "acm005416jsd", "acm005663jsd", "acm005768jsd", "acm009381jsd", "acm009411jsd", "acm012314jsd", "acm012378jsd", "acm017884jsd", "acm018267jsd", "acm018930jsd" ], + "content" : [ "acm005655jsd", "acm005656jsd", "acm005657jsd", "acm005658jsd", "acm005659jsd", "acm005660jsd", "acm005661jsd", "acm005662jsd" ] + }, + "acm005664jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005664jsd", + "name" : "WebSearchPaneView", + "parentId" : "acm005654jsd", + "content" : [ "acm005672jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005665jsd" : { + "type" : "CodePackage", + "id" : "acm005665jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005666jsd" ] + }, + "acm005666jsd" : { + "type" : "CodePackage", + "id" : "acm005666jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005667jsd" ] + }, + "acm005667jsd" : { + "type" : "CodePackage", + "id" : "acm005667jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005668jsd" ] + }, + "acm005668jsd" : { + "type" : "CodePackage", + "id" : "acm005668jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005669jsd" ] + }, + "acm005669jsd" : { + "type" : "CodePackage", + "id" : "acm005669jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm005664jsd" ] + }, + "acm005670jsd" : { + "type" : "ControlElement", + "id" : "acm005670jsd", + "name" : "WebSearchPaneView" + }, + "acm005671jsd" : { + "type" : "ControlElement", + "id" : "acm005671jsd", + "name" : "initialize" + }, + "acm005672jsd" : { + "type" : "ClassUnit", + "id" : "acm005672jsd", + "name" : "WebSearchPaneView", + "compilationUnitId" : "acm005664jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm005688jsd", "acm010051jsd", "acm012571jsd", "acm021206jsd" ], + "content" : [ "acm005670jsd", "acm005671jsd" ] + }, + "acm005673jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005673jsd", + "name" : "WebSearchPaneViewModel", + "parentId" : "acm005654jsd", + "content" : [ "acm005688jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005674jsd" : { + "type" : "CodePackage", + "id" : "acm005674jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005675jsd" ] + }, + "acm005675jsd" : { + "type" : "CodePackage", + "id" : "acm005675jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005676jsd" ] + }, + "acm005676jsd" : { + "type" : "CodePackage", + "id" : "acm005676jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005677jsd" ] + }, + "acm005677jsd" : { + "type" : "CodePackage", + "id" : "acm005677jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm005678jsd" ] + }, + "acm005678jsd" : { + "type" : "CodePackage", + "id" : "acm005678jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm005673jsd" ] + }, + "acm005679jsd" : { + "type" : "ControlElement", + "id" : "acm005679jsd", + "name" : "WebSearchPaneViewModel" + }, + "acm005680jsd" : { + "type" : "ControlElement", + "id" : "acm005680jsd", + "name" : "getFetchers" + }, + "acm005681jsd" : { + "type" : "ControlElement", + "id" : "acm005681jsd", + "name" : "fetchersProperty" + }, + "acm005682jsd" : { + "type" : "ControlElement", + "id" : "acm005682jsd", + "name" : "getSelectedFetcher" + }, + "acm005683jsd" : { + "type" : "ControlElement", + "id" : "acm005683jsd", + "name" : "selectedFetcherProperty" + }, + "acm005684jsd" : { + "type" : "ControlElement", + "id" : "acm005684jsd", + "name" : "getQuery" + }, + "acm005685jsd" : { + "type" : "ControlElement", + "id" : "acm005685jsd", + "name" : "queryProperty" + }, + "acm005686jsd" : { + "type" : "ControlElement", + "id" : "acm005686jsd", + "name" : "search" + }, + "acm005687jsd" : { + "type" : "ControlElement", + "id" : "acm005687jsd", + "name" : "queryValidationStatus" + }, + "acm005688jsd" : { + "type" : "ClassUnit", + "id" : "acm005688jsd", + "name" : "WebSearchPaneViewModel", + "compilationUnitId" : "acm005673jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005539jsd", "acm009536jsd", "acm012556jsd", "acm012571jsd", "acm021206jsd", "acm021279jsd" ], + "content" : [ "acm005679jsd", "acm005680jsd", "acm005681jsd", "acm005682jsd", "acm005683jsd", "acm005684jsd", "acm005685jsd", "acm005686jsd", "acm005687jsd" ] + }, + "acm005689jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005689jsd", + "name" : "IntegrityCheckAction", + "parentId" : "acm005693jsd", + "content" : [ "acm005697jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005690jsd" : { + "type" : "CodePackage", + "id" : "acm005690jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005691jsd" ] + }, + "acm005691jsd" : { + "type" : "CodePackage", + "id" : "acm005691jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005692jsd" ] + }, + "acm005692jsd" : { + "type" : "CodePackage", + "id" : "acm005692jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005693jsd" ] + }, + "acm005693jsd" : { + "type" : "CodePackage", + "id" : "acm005693jsd", + "name" : "integrity", + "parentId" : "acm001569jsd", + "content" : [ "acm005689jsd", "acm005698jsd", "acm005709jsd" ] + }, + "acm005694jsd" : { + "type" : "ControlElement", + "id" : "acm005694jsd", + "name" : "IntegrityCheckAction" + }, + "acm005695jsd" : { + "type" : "ControlElement", + "id" : "acm005695jsd", + "name" : "execute" + }, + "acm005696jsd" : { + "type" : "ControlElement", + "id" : "acm005696jsd", + "name" : "call" + }, + "acm005697jsd" : { + "type" : "ClassUnit", + "id" : "acm005697jsd", + "name" : "IntegrityCheckAction", + "compilationUnitId" : "acm005689jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm009965jsd", "acm014691jsd", "acm014705jsd", "acm018022jsd" ], + "content" : [ "acm005694jsd", "acm005695jsd", "acm005696jsd" ] + }, + "acm005698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005698jsd", + "name" : "IntegrityCheckDialog", + "parentId" : "acm005693jsd", + "content" : [ "acm005708jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005699jsd" : { + "type" : "CodePackage", + "id" : "acm005699jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005700jsd" ] + }, + "acm005700jsd" : { + "type" : "CodePackage", + "id" : "acm005700jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005701jsd" ] + }, + "acm005701jsd" : { + "type" : "CodePackage", + "id" : "acm005701jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005702jsd" ] + }, + "acm005702jsd" : { + "type" : "CodePackage", + "id" : "acm005702jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm005698jsd" ] + }, + "acm005703jsd" : { + "type" : "ControlElement", + "id" : "acm005703jsd", + "name" : "IntegrityCheckDialog" + }, + "acm005704jsd" : { + "type" : "ControlElement", + "id" : "acm005704jsd", + "name" : "onSelectionChanged" + }, + "acm005705jsd" : { + "type" : "ControlElement", + "id" : "acm005705jsd", + "name" : "getViewModel" + }, + "acm005706jsd" : { + "type" : "ControlElement", + "id" : "acm005706jsd", + "name" : "initialize" + }, + "acm005707jsd" : { + "type" : "ControlElement", + "id" : "acm005707jsd", + "name" : "clearFilters" + }, + "acm005708jsd" : { + "type" : "ClassUnit", + "id" : "acm005708jsd", + "name" : "IntegrityCheckDialog", + "compilationUnitId" : "acm005698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm005716jsd", "acm009346jsd", "acm014705jsd" ], + "content" : [ "acm005703jsd", "acm005704jsd", "acm005705jsd", "acm005706jsd", "acm005707jsd" ] + }, + "acm005709jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005709jsd", + "name" : "IntegrityCheckDialogViewModel", + "parentId" : "acm005693jsd", + "content" : [ "acm005716jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005710jsd" : { + "type" : "CodePackage", + "id" : "acm005710jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005711jsd" ] + }, + "acm005711jsd" : { + "type" : "CodePackage", + "id" : "acm005711jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005712jsd" ] + }, + "acm005712jsd" : { + "type" : "CodePackage", + "id" : "acm005712jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005713jsd" ] + }, + "acm005713jsd" : { + "type" : "CodePackage", + "id" : "acm005713jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm005709jsd" ] + }, + "acm005714jsd" : { + "type" : "ControlElement", + "id" : "acm005714jsd", + "name" : "IntegrityCheckDialogViewModel" + }, + "acm005715jsd" : { + "type" : "ControlElement", + "id" : "acm005715jsd", + "name" : "getMessages" + }, + "acm005716jsd" : { + "type" : "ClassUnit", + "id" : "acm005716jsd", + "name" : "IntegrityCheckDialogViewModel", + "compilationUnitId" : "acm005709jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd" ], + "content" : [ "acm005714jsd", "acm005715jsd" ] + }, + "acm005717jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005717jsd", + "name" : "AbbreviateAction", + "parentId" : "acm005721jsd", + "content" : [ "acm005726jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005718jsd" : { + "type" : "CodePackage", + "id" : "acm005718jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005719jsd" ] + }, + "acm005719jsd" : { + "type" : "CodePackage", + "id" : "acm005719jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005720jsd" ] + }, + "acm005720jsd" : { + "type" : "CodePackage", + "id" : "acm005720jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005721jsd" ] + }, + "acm005721jsd" : { + "type" : "CodePackage", + "id" : "acm005721jsd", + "name" : "journals", + "parentId" : "acm001569jsd", + "content" : [ "acm005717jsd", "acm005727jsd", "acm005733jsd", "acm005742jsd" ] + }, + "acm005722jsd" : { + "type" : "ControlElement", + "id" : "acm005722jsd", + "name" : "AbbreviateAction" + }, + "acm005723jsd" : { + "type" : "ControlElement", + "id" : "acm005723jsd", + "name" : "execute" + }, + "acm005724jsd" : { + "type" : "ControlElement", + "id" : "acm005724jsd", + "name" : "abbreviate" + }, + "acm005725jsd" : { + "type" : "ControlElement", + "id" : "acm005725jsd", + "name" : "unabbreviate" + }, + "acm005726jsd" : { + "type" : "ClassUnit", + "id" : "acm005726jsd", + "name" : "AbbreviateAction", + "compilationUnitId" : "acm005717jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001403jsd", "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002150jsd", "acm005726jsd", "acm005732jsd", "acm005741jsd", "acm005750jsd", "acm009381jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm005722jsd", "acm005723jsd", "acm005724jsd", "acm005725jsd" ] + }, + "acm005727jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005727jsd", + "name" : "AbbreviationType", + "parentId" : "acm005721jsd", + "content" : [ "acm005732jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005728jsd" : { + "type" : "CodePackage", + "id" : "acm005728jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005729jsd" ] + }, + "acm005729jsd" : { + "type" : "CodePackage", + "id" : "acm005729jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005730jsd" ] + }, + "acm005730jsd" : { + "type" : "CodePackage", + "id" : "acm005730jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005731jsd" ] + }, + "acm005731jsd" : { + "type" : "CodePackage", + "id" : "acm005731jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm005727jsd" ] + }, + "acm005732jsd" : { + "type" : "ClassUnit", + "id" : "acm005732jsd", + "name" : "AbbreviationType", + "compilationUnitId" : "acm005727jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm005733jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005733jsd", + "name" : "UndoableAbbreviator", + "parentId" : "acm005721jsd", + "content" : [ "acm005741jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005734jsd" : { + "type" : "CodePackage", + "id" : "acm005734jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005735jsd" ] + }, + "acm005735jsd" : { + "type" : "CodePackage", + "id" : "acm005735jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005736jsd" ] + }, + "acm005736jsd" : { + "type" : "CodePackage", + "id" : "acm005736jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005737jsd" ] + }, + "acm005737jsd" : { + "type" : "CodePackage", + "id" : "acm005737jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm005733jsd" ] + }, + "acm005738jsd" : { + "type" : "ControlElement", + "id" : "acm005738jsd", + "name" : "UndoableAbbreviator" + }, + "acm005739jsd" : { + "type" : "ControlElement", + "id" : "acm005739jsd", + "name" : "abbreviate" + }, + "acm005740jsd" : { + "type" : "ControlElement", + "id" : "acm005740jsd", + "name" : "getAbbreviatedName" + }, + "acm005741jsd" : { + "type" : "ClassUnit", + "id" : "acm005741jsd", + "name" : "UndoableAbbreviator", + "compilationUnitId" : "acm005733jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001424jsd", "acm005732jsd", "acm009411jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm005738jsd", "acm005739jsd", "acm005740jsd" ] + }, + "acm005742jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005742jsd", + "name" : "UndoableUnabbreviator", + "parentId" : "acm005721jsd", + "content" : [ "acm005750jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005743jsd" : { + "type" : "CodePackage", + "id" : "acm005743jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005744jsd" ] + }, + "acm005744jsd" : { + "type" : "CodePackage", + "id" : "acm005744jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005745jsd" ] + }, + "acm005745jsd" : { + "type" : "CodePackage", + "id" : "acm005745jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005746jsd" ] + }, + "acm005746jsd" : { + "type" : "CodePackage", + "id" : "acm005746jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm005742jsd" ] + }, + "acm005747jsd" : { + "type" : "ControlElement", + "id" : "acm005747jsd", + "name" : "UndoableUnabbreviator" + }, + "acm005748jsd" : { + "type" : "ControlElement", + "id" : "acm005748jsd", + "name" : "unabbreviate" + }, + "acm005749jsd" : { + "type" : "ControlElement", + "id" : "acm005749jsd", + "name" : "restoreFromFJournal" + }, + "acm005750jsd" : { + "type" : "ClassUnit", + "id" : "acm005750jsd", + "name" : "UndoableUnabbreviator", + "compilationUnitId" : "acm005742jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001424jsd", "acm009411jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm005747jsd", "acm005748jsd", "acm005749jsd" ] + }, + "acm005751jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005751jsd", + "name" : "CodeAreaKeyBindings", + "parentId" : "acm005755jsd", + "content" : [ "acm005757jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005752jsd" : { + "type" : "CodePackage", + "id" : "acm005752jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005753jsd" ] + }, + "acm005753jsd" : { + "type" : "CodePackage", + "id" : "acm005753jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005754jsd" ] + }, + "acm005754jsd" : { + "type" : "CodePackage", + "id" : "acm005754jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005755jsd" ] + }, + "acm005755jsd" : { + "type" : "CodePackage", + "id" : "acm005755jsd", + "name" : "keyboard", + "parentId" : "acm001569jsd", + "content" : [ "acm005751jsd", "acm005758jsd", "acm005769jsd", "acm005777jsd", "acm005803jsd", "acm021814jsd" ] + }, + "acm005756jsd" : { + "type" : "ControlElement", + "id" : "acm005756jsd", + "name" : "call" + }, + "acm005757jsd" : { + "type" : "ClassUnit", + "id" : "acm005757jsd", + "name" : "CodeAreaKeyBindings", + "compilationUnitId" : "acm005751jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005802jsd" ], + "content" : [ "acm005756jsd" ] + }, + "acm005758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005758jsd", + "name" : "KeyBinding", + "parentId" : "acm005755jsd", + "content" : [ "acm005768jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005759jsd" : { + "type" : "CodePackage", + "id" : "acm005759jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005760jsd" ] + }, + "acm005760jsd" : { + "type" : "CodePackage", + "id" : "acm005760jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005761jsd" ] + }, + "acm005761jsd" : { + "type" : "CodePackage", + "id" : "acm005761jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005762jsd" ] + }, + "acm005762jsd" : { + "type" : "CodePackage", + "id" : "acm005762jsd", + "name" : "keyboard", + "parentId" : null, + "content" : [ "acm005758jsd" ] + }, + "acm005763jsd" : { + "type" : "ControlElement", + "id" : "acm005763jsd", + "name" : "KeyBinding" + }, + "acm005764jsd" : { + "type" : "ControlElement", + "id" : "acm005764jsd", + "name" : "getConstant" + }, + "acm005765jsd" : { + "type" : "ControlElement", + "id" : "acm005765jsd", + "name" : "getLocalization" + }, + "acm005766jsd" : { + "type" : "ControlElement", + "id" : "acm005766jsd", + "name" : "getDefaultKeyBinding" + }, + "acm005767jsd" : { + "type" : "ControlElement", + "id" : "acm005767jsd", + "name" : "getCategory" + }, + "acm005768jsd" : { + "type" : "ClassUnit", + "id" : "acm005768jsd", + "name" : "KeyBinding", + "compilationUnitId" : "acm005758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005776jsd" ], + "content" : [ "acm005763jsd", "acm005764jsd", "acm005765jsd", "acm005766jsd", "acm005767jsd" ] + }, + "acm005769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005769jsd", + "name" : "KeyBindingCategory", + "parentId" : "acm005755jsd", + "content" : [ "acm005776jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005770jsd" : { + "type" : "CodePackage", + "id" : "acm005770jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005771jsd" ] + }, + "acm005771jsd" : { + "type" : "CodePackage", + "id" : "acm005771jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005772jsd" ] + }, + "acm005772jsd" : { + "type" : "CodePackage", + "id" : "acm005772jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005773jsd" ] + }, + "acm005773jsd" : { + "type" : "CodePackage", + "id" : "acm005773jsd", + "name" : "keyboard", + "parentId" : null, + "content" : [ "acm005769jsd" ] + }, + "acm005774jsd" : { + "type" : "ControlElement", + "id" : "acm005774jsd", + "name" : "KeyBindingCategory" + }, + "acm005775jsd" : { + "type" : "ControlElement", + "id" : "acm005775jsd", + "name" : "getName" + }, + "acm005776jsd" : { + "type" : "ClassUnit", + "id" : "acm005776jsd", + "name" : "KeyBindingCategory", + "compilationUnitId" : "acm005769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005774jsd", "acm005775jsd" ] + }, + "acm005777jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005777jsd", + "name" : "KeyBindingRepository", + "parentId" : "acm005755jsd", + "content" : [ "acm005802jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005778jsd" : { + "type" : "CodePackage", + "id" : "acm005778jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005779jsd" ] + }, + "acm005779jsd" : { + "type" : "CodePackage", + "id" : "acm005779jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005780jsd" ] + }, + "acm005780jsd" : { + "type" : "CodePackage", + "id" : "acm005780jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005781jsd" ] + }, + "acm005781jsd" : { + "type" : "CodePackage", + "id" : "acm005781jsd", + "name" : "keyboard", + "parentId" : null, + "content" : [ "acm005777jsd" ] + }, + "acm005782jsd" : { + "type" : "ControlElement", + "id" : "acm005782jsd", + "name" : "KeyBindingRepository" + }, + "acm005783jsd" : { + "type" : "ControlElement", + "id" : "acm005783jsd", + "name" : "KeyBindingRepository" + }, + "acm005784jsd" : { + "type" : "ControlElement", + "id" : "acm005784jsd", + "name" : "KeyBindingRepository" + }, + "acm005785jsd" : { + "type" : "ControlElement", + "id" : "acm005785jsd", + "name" : "checkKeyCombinationEquality" + }, + "acm005786jsd" : { + "type" : "ControlElement", + "id" : "acm005786jsd", + "name" : "get" + }, + "acm005787jsd" : { + "type" : "ControlElement", + "id" : "acm005787jsd", + "name" : "get" + }, + "acm005788jsd" : { + "type" : "ControlElement", + "id" : "acm005788jsd", + "name" : "getKeyBindings" + }, + "acm005789jsd" : { + "type" : "ControlElement", + "id" : "acm005789jsd", + "name" : "put" + }, + "acm005790jsd" : { + "type" : "ControlElement", + "id" : "acm005790jsd", + "name" : "put" + }, + "acm005791jsd" : { + "type" : "ControlElement", + "id" : "acm005791jsd", + "name" : "getKeyBinding" + }, + "acm005792jsd" : { + "type" : "ControlElement", + "id" : "acm005792jsd", + "name" : "resetToDefault" + }, + "acm005793jsd" : { + "type" : "ControlElement", + "id" : "acm005793jsd", + "name" : "resetToDefault" + }, + "acm005794jsd" : { + "type" : "ControlElement", + "id" : "acm005794jsd", + "name" : "size" + }, + "acm005795jsd" : { + "type" : "ControlElement", + "id" : "acm005795jsd", + "name" : "mapToKeyBinding" + }, + "acm005796jsd" : { + "type" : "ControlElement", + "id" : "acm005796jsd", + "name" : "getKeyCombination" + }, + "acm005797jsd" : { + "type" : "ControlElement", + "id" : "acm005797jsd", + "name" : "checkKeyCombinationEquality" + }, + "acm005798jsd" : { + "type" : "ControlElement", + "id" : "acm005798jsd", + "name" : "getBindNames" + }, + "acm005799jsd" : { + "type" : "ControlElement", + "id" : "acm005799jsd", + "name" : "getBindings" + }, + "acm005800jsd" : { + "type" : "ControlElement", + "id" : "acm005800jsd", + "name" : "equals" + }, + "acm005801jsd" : { + "type" : "ControlElement", + "id" : "acm005801jsd", + "name" : "hashCode" + }, + "acm005802jsd" : { + "type" : "ClassUnit", + "id" : "acm005802jsd", + "name" : "KeyBindingRepository", + "compilationUnitId" : "acm005777jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005768jsd", "acm005802jsd" ], + "content" : [ "acm005782jsd", "acm005783jsd", "acm005784jsd", "acm005785jsd", "acm005786jsd", "acm005787jsd", "acm005788jsd", "acm005789jsd", "acm005790jsd", "acm005791jsd", "acm005792jsd", "acm005793jsd", "acm005794jsd", "acm005795jsd", "acm005796jsd", "acm005797jsd", "acm005798jsd", "acm005799jsd", "acm005800jsd", "acm005801jsd" ] + }, + "acm005803jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005803jsd", + "name" : "TextInputKeyBindings", + "parentId" : "acm005755jsd", + "content" : [ "acm005809jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005804jsd" : { + "type" : "CodePackage", + "id" : "acm005804jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005805jsd" ] + }, + "acm005805jsd" : { + "type" : "CodePackage", + "id" : "acm005805jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005806jsd" ] + }, + "acm005806jsd" : { + "type" : "CodePackage", + "id" : "acm005806jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005807jsd" ] + }, + "acm005807jsd" : { + "type" : "CodePackage", + "id" : "acm005807jsd", + "name" : "keyboard", + "parentId" : null, + "content" : [ "acm005803jsd" ] + }, + "acm005808jsd" : { + "type" : "ControlElement", + "id" : "acm005808jsd", + "name" : "call" + }, + "acm005809jsd" : { + "type" : "ClassUnit", + "id" : "acm005809jsd", + "name" : "TextInputKeyBindings", + "compilationUnitId" : "acm005803jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005802jsd" ], + "content" : [ "acm005808jsd" ] + }, + "acm005810jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005810jsd", + "name" : "AbstractPropertiesTabView", + "parentId" : "acm005814jsd", + "content" : [ "acm005819jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005811jsd" : { + "type" : "CodePackage", + "id" : "acm005811jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005812jsd" ] + }, + "acm005812jsd" : { + "type" : "CodePackage", + "id" : "acm005812jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005813jsd" ] + }, + "acm005813jsd" : { + "type" : "CodePackage", + "id" : "acm005813jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005814jsd" ] + }, + "acm005814jsd" : { + "type" : "CodePackage", + "id" : "acm005814jsd", + "name" : "libraryproperties", + "parentId" : "acm001569jsd", + "content" : [ "acm005810jsd", "acm005820jsd", "acm005829jsd", "acm005838jsd", "acm005848jsd", "acm005859jsd", "acm005873jsd", "acm005920jsd", "acm005969jsd", "acm006004jsd", "acm006028jsd" ] + }, + "acm005815jsd" : { + "type" : "ControlElement", + "id" : "acm005815jsd", + "name" : "getBuilder" + }, + "acm005816jsd" : { + "type" : "ControlElement", + "id" : "acm005816jsd", + "name" : "setValues" + }, + "acm005817jsd" : { + "type" : "ControlElement", + "id" : "acm005817jsd", + "name" : "storeSettings" + }, + "acm005818jsd" : { + "type" : "ControlElement", + "id" : "acm005818jsd", + "name" : "validateSettings" + }, + "acm005819jsd" : { + "type" : "ClassUnit", + "id" : "acm005819jsd", + "name" : "AbstractPropertiesTabView", + "compilationUnitId" : "acm005810jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005858jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005867jsd", "acm018022jsd" ], + "content" : [ "acm005815jsd", "acm005816jsd", "acm005817jsd", "acm005818jsd" ] + }, + "acm005820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005820jsd", + "name" : "LibraryPropertiesAction", + "parentId" : "acm005814jsd", + "content" : [ "acm005828jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005821jsd" : { + "type" : "CodePackage", + "id" : "acm005821jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005822jsd" ] + }, + "acm005822jsd" : { + "type" : "CodePackage", + "id" : "acm005822jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005823jsd" ] + }, + "acm005823jsd" : { + "type" : "CodePackage", + "id" : "acm005823jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005824jsd" ] + }, + "acm005824jsd" : { + "type" : "CodePackage", + "id" : "acm005824jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005820jsd" ] + }, + "acm005825jsd" : { + "type" : "ControlElement", + "id" : "acm005825jsd", + "name" : "LibraryPropertiesAction" + }, + "acm005826jsd" : { + "type" : "ControlElement", + "id" : "acm005826jsd", + "name" : "LibraryPropertiesAction" + }, + "acm005827jsd" : { + "type" : "ControlElement", + "id" : "acm005827jsd", + "name" : "execute" + }, + "acm005828jsd" : { + "type" : "ClassUnit", + "id" : "acm005828jsd", + "name" : "LibraryPropertiesAction", + "compilationUnitId" : "acm005820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005828jsd", "acm005837jsd", "acm018022jsd" ], + "content" : [ "acm005825jsd", "acm005826jsd", "acm005827jsd" ] + }, + "acm005829jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005829jsd", + "name" : "LibraryPropertiesView", + "parentId" : "acm005814jsd", + "content" : [ "acm005837jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005830jsd" : { + "type" : "CodePackage", + "id" : "acm005830jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005831jsd" ] + }, + "acm005831jsd" : { + "type" : "CodePackage", + "id" : "acm005831jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005832jsd" ] + }, + "acm005832jsd" : { + "type" : "CodePackage", + "id" : "acm005832jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005833jsd" ] + }, + "acm005833jsd" : { + "type" : "CodePackage", + "id" : "acm005833jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005829jsd" ] + }, + "acm005834jsd" : { + "type" : "ControlElement", + "id" : "acm005834jsd", + "name" : "LibraryPropertiesView" + }, + "acm005835jsd" : { + "type" : "ControlElement", + "id" : "acm005835jsd", + "name" : "initialize" + }, + "acm005836jsd" : { + "type" : "ControlElement", + "id" : "acm005836jsd", + "name" : "savePreferencesAndCloseDialog" + }, + "acm005837jsd" : { + "type" : "ClassUnit", + "id" : "acm005837jsd", + "name" : "LibraryPropertiesView", + "compilationUnitId" : "acm005829jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005819jsd", "acm005847jsd", "acm005858jsd", "acm009346jsd", "acm018022jsd" ], + "content" : [ "acm005834jsd", "acm005835jsd", "acm005836jsd" ] + }, + "acm005838jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005838jsd", + "name" : "LibraryPropertiesViewModel", + "parentId" : "acm005814jsd", + "content" : [ "acm005847jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005839jsd" : { + "type" : "CodePackage", + "id" : "acm005839jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005840jsd" ] + }, + "acm005840jsd" : { + "type" : "CodePackage", + "id" : "acm005840jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005841jsd" ] + }, + "acm005841jsd" : { + "type" : "CodePackage", + "id" : "acm005841jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005842jsd" ] + }, + "acm005842jsd" : { + "type" : "CodePackage", + "id" : "acm005842jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005838jsd" ] + }, + "acm005843jsd" : { + "type" : "ControlElement", + "id" : "acm005843jsd", + "name" : "LibraryPropertiesViewModel" + }, + "acm005844jsd" : { + "type" : "ControlElement", + "id" : "acm005844jsd", + "name" : "setValues" + }, + "acm005845jsd" : { + "type" : "ControlElement", + "id" : "acm005845jsd", + "name" : "storeAllSettings" + }, + "acm005846jsd" : { + "type" : "ControlElement", + "id" : "acm005846jsd", + "name" : "getPropertiesTabs" + }, + "acm005847jsd" : { + "type" : "ClassUnit", + "id" : "acm005847jsd", + "name" : "LibraryPropertiesViewModel", + "compilationUnitId" : "acm005838jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005858jsd", "acm005896jsd", "acm005933jsd", "acm005976jsd", "acm006010jsd", "acm006032jsd", "acm018022jsd" ], + "content" : [ "acm005843jsd", "acm005844jsd", "acm005845jsd", "acm005846jsd" ] + }, + "acm005848jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005848jsd", + "name" : "PropertiesTab", + "parentId" : "acm005814jsd", + "content" : [ "acm005858jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005849jsd" : { + "type" : "CodePackage", + "id" : "acm005849jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005850jsd" ] + }, + "acm005850jsd" : { + "type" : "CodePackage", + "id" : "acm005850jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005851jsd" ] + }, + "acm005851jsd" : { + "type" : "CodePackage", + "id" : "acm005851jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005852jsd" ] + }, + "acm005852jsd" : { + "type" : "CodePackage", + "id" : "acm005852jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005848jsd" ] + }, + "acm005853jsd" : { + "type" : "ControlElement", + "id" : "acm005853jsd", + "name" : "getBuilder" + }, + "acm005854jsd" : { + "type" : "ControlElement", + "id" : "acm005854jsd", + "name" : "getTabName" + }, + "acm005855jsd" : { + "type" : "ControlElement", + "id" : "acm005855jsd", + "name" : "setValues" + }, + "acm005856jsd" : { + "type" : "ControlElement", + "id" : "acm005856jsd", + "name" : "storeSettings" + }, + "acm005857jsd" : { + "type" : "ControlElement", + "id" : "acm005857jsd", + "name" : "validateSettings" + }, + "acm005858jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005858jsd", + "name" : "PropertiesTab", + "compilationUnitId" : "acm005848jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005853jsd", "acm005854jsd", "acm005855jsd", "acm005856jsd", "acm005857jsd" ] + }, + "acm005859jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005859jsd", + "name" : "PropertiesTabViewModel", + "parentId" : "acm005814jsd", + "content" : [ "acm005867jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005860jsd" : { + "type" : "CodePackage", + "id" : "acm005860jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005861jsd" ] + }, + "acm005861jsd" : { + "type" : "CodePackage", + "id" : "acm005861jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005862jsd" ] + }, + "acm005862jsd" : { + "type" : "CodePackage", + "id" : "acm005862jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005863jsd" ] + }, + "acm005863jsd" : { + "type" : "CodePackage", + "id" : "acm005863jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005859jsd" ] + }, + "acm005864jsd" : { + "type" : "ControlElement", + "id" : "acm005864jsd", + "name" : "setValues" + }, + "acm005865jsd" : { + "type" : "ControlElement", + "id" : "acm005865jsd", + "name" : "storeSettings" + }, + "acm005866jsd" : { + "type" : "ControlElement", + "id" : "acm005866jsd", + "name" : "validateSettings" + }, + "acm005867jsd" : { + "type" : "InterfaceUnit", + "id" : "acm005867jsd", + "name" : "PropertiesTabViewModel", + "compilationUnitId" : "acm005859jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005864jsd", "acm005865jsd", "acm005866jsd" ] + }, + "acm005868jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005868jsd", + "name" : "ConstantsItemModel", + "parentId" : "acm005873jsd", + "content" : [ "acm005884jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005869jsd" : { + "type" : "CodePackage", + "id" : "acm005869jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005870jsd" ] + }, + "acm005870jsd" : { + "type" : "CodePackage", + "id" : "acm005870jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005871jsd" ] + }, + "acm005871jsd" : { + "type" : "CodePackage", + "id" : "acm005871jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005872jsd" ] + }, + "acm005872jsd" : { + "type" : "CodePackage", + "id" : "acm005872jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005873jsd" ] + }, + "acm005873jsd" : { + "type" : "CodePackage", + "id" : "acm005873jsd", + "name" : "constants", + "parentId" : "acm005814jsd", + "content" : [ "acm005868jsd", "acm005885jsd", "acm005897jsd" ] + }, + "acm005874jsd" : { + "type" : "ControlElement", + "id" : "acm005874jsd", + "name" : "ConstantsItemModel" + }, + "acm005875jsd" : { + "type" : "ControlElement", + "id" : "acm005875jsd", + "name" : "labelValidation" + }, + "acm005876jsd" : { + "type" : "ControlElement", + "id" : "acm005876jsd", + "name" : "contentValidation" + }, + "acm005877jsd" : { + "type" : "ControlElement", + "id" : "acm005877jsd", + "name" : "combinedValidationValidProperty" + }, + "acm005878jsd" : { + "type" : "ControlElement", + "id" : "acm005878jsd", + "name" : "labelProperty" + }, + "acm005879jsd" : { + "type" : "ControlElement", + "id" : "acm005879jsd", + "name" : "contentProperty" + }, + "acm005880jsd" : { + "type" : "ControlElement", + "id" : "acm005880jsd", + "name" : "setLabel" + }, + "acm005881jsd" : { + "type" : "ControlElement", + "id" : "acm005881jsd", + "name" : "setContent" + }, + "acm005882jsd" : { + "type" : "ControlElement", + "id" : "acm005882jsd", + "name" : "validateLabel" + }, + "acm005883jsd" : { + "type" : "ControlElement", + "id" : "acm005883jsd", + "name" : "validateContent" + }, + "acm005884jsd" : { + "type" : "ClassUnit", + "id" : "acm005884jsd", + "name" : "ConstantsItemModel", + "compilationUnitId" : "acm005868jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005874jsd", "acm005875jsd", "acm005876jsd", "acm005877jsd", "acm005878jsd", "acm005879jsd", "acm005880jsd", "acm005881jsd", "acm005882jsd", "acm005883jsd" ] + }, + "acm005885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005885jsd", + "name" : "ConstantsPropertiesView", + "parentId" : "acm005873jsd", + "content" : [ "acm005896jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005886jsd" : { + "type" : "CodePackage", + "id" : "acm005886jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005887jsd" ] + }, + "acm005887jsd" : { + "type" : "CodePackage", + "id" : "acm005887jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005888jsd" ] + }, + "acm005888jsd" : { + "type" : "CodePackage", + "id" : "acm005888jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005889jsd" ] + }, + "acm005889jsd" : { + "type" : "CodePackage", + "id" : "acm005889jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005890jsd" ] + }, + "acm005890jsd" : { + "type" : "CodePackage", + "id" : "acm005890jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm005885jsd" ] + }, + "acm005891jsd" : { + "type" : "ControlElement", + "id" : "acm005891jsd", + "name" : "ConstantsPropertiesView" + }, + "acm005892jsd" : { + "type" : "ControlElement", + "id" : "acm005892jsd", + "name" : "getTabName" + }, + "acm005893jsd" : { + "type" : "ControlElement", + "id" : "acm005893jsd", + "name" : "initialize" + }, + "acm005894jsd" : { + "type" : "ControlElement", + "id" : "acm005894jsd", + "name" : "addString" + }, + "acm005895jsd" : { + "type" : "ControlElement", + "id" : "acm005895jsd", + "name" : "openHelp" + }, + "acm005896jsd" : { + "type" : "ClassUnit", + "id" : "acm005896jsd", + "name" : "ConstantsPropertiesView", + "compilationUnitId" : "acm005885jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005819jsd" ], + "implementedDataTypesIds" : [ "acm005858jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005884jsd", "acm005914jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm005891jsd", "acm005892jsd", "acm005893jsd", "acm005894jsd", "acm005895jsd" ] + }, + "acm005897jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005897jsd", + "name" : "ConstantsPropertiesViewModel", + "parentId" : "acm005873jsd", + "content" : [ "acm005914jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005898jsd" : { + "type" : "CodePackage", + "id" : "acm005898jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005899jsd" ] + }, + "acm005899jsd" : { + "type" : "CodePackage", + "id" : "acm005899jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005900jsd" ] + }, + "acm005900jsd" : { + "type" : "CodePackage", + "id" : "acm005900jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005901jsd" ] + }, + "acm005901jsd" : { + "type" : "CodePackage", + "id" : "acm005901jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005902jsd" ] + }, + "acm005902jsd" : { + "type" : "CodePackage", + "id" : "acm005902jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm005897jsd" ] + }, + "acm005903jsd" : { + "type" : "ControlElement", + "id" : "acm005903jsd", + "name" : "ConstantsPropertiesViewModel" + }, + "acm005904jsd" : { + "type" : "ControlElement", + "id" : "acm005904jsd", + "name" : "setValues" + }, + "acm005905jsd" : { + "type" : "ControlElement", + "id" : "acm005905jsd", + "name" : "addNewString" + }, + "acm005906jsd" : { + "type" : "ControlElement", + "id" : "acm005906jsd", + "name" : "removeString" + }, + "acm005907jsd" : { + "type" : "ControlElement", + "id" : "acm005907jsd", + "name" : "convertFromBibTexString" + }, + "acm005908jsd" : { + "type" : "ControlElement", + "id" : "acm005908jsd", + "name" : "storeSettings" + }, + "acm005909jsd" : { + "type" : "ControlElement", + "id" : "acm005909jsd", + "name" : "fromBibtexStringViewModel" + }, + "acm005910jsd" : { + "type" : "ControlElement", + "id" : "acm005910jsd", + "name" : "labelAlreadyExists" + }, + "acm005911jsd" : { + "type" : "ControlElement", + "id" : "acm005911jsd", + "name" : "openHelpPage" + }, + "acm005912jsd" : { + "type" : "ControlElement", + "id" : "acm005912jsd", + "name" : "stringsListProperty" + }, + "acm005913jsd" : { + "type" : "ControlElement", + "id" : "acm005913jsd", + "name" : "validProperty" + }, + "acm005914jsd" : { + "type" : "ClassUnit", + "id" : "acm005914jsd", + "name" : "ConstantsPropertiesViewModel", + "compilationUnitId" : "acm005897jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005867jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005331jsd", "acm005884jsd", "acm010580jsd", "acm018022jsd", "acm018367jsd" ], + "content" : [ "acm005903jsd", "acm005904jsd", "acm005905jsd", "acm005906jsd", "acm005907jsd", "acm005908jsd", "acm005909jsd", "acm005910jsd", "acm005911jsd", "acm005912jsd", "acm005913jsd" ] + }, + "acm005915jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005915jsd", + "name" : "ContentSelectorView", + "parentId" : "acm005920jsd", + "content" : [ "acm005933jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "contentselectors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005916jsd" : { + "type" : "CodePackage", + "id" : "acm005916jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005917jsd" ] + }, + "acm005917jsd" : { + "type" : "CodePackage", + "id" : "acm005917jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005918jsd" ] + }, + "acm005918jsd" : { + "type" : "CodePackage", + "id" : "acm005918jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005919jsd" ] + }, + "acm005919jsd" : { + "type" : "CodePackage", + "id" : "acm005919jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005920jsd" ] + }, + "acm005920jsd" : { + "type" : "CodePackage", + "id" : "acm005920jsd", + "name" : "contentselectors", + "parentId" : "acm005814jsd", + "content" : [ "acm005915jsd", "acm005934jsd", "acm021831jsd" ] + }, + "acm005921jsd" : { + "type" : "ControlElement", + "id" : "acm005921jsd", + "name" : "ContentSelectorView" + }, + "acm005922jsd" : { + "type" : "ControlElement", + "id" : "acm005922jsd", + "name" : "getTabName" + }, + "acm005923jsd" : { + "type" : "ControlElement", + "id" : "acm005923jsd", + "name" : "initialize" + }, + "acm005924jsd" : { + "type" : "ControlElement", + "id" : "acm005924jsd", + "name" : "initFieldNameComponents" + }, + "acm005925jsd" : { + "type" : "ControlElement", + "id" : "acm005925jsd", + "name" : "initKeywordsComponents" + }, + "acm005926jsd" : { + "type" : "ControlElement", + "id" : "acm005926jsd", + "name" : "addNewFieldName" + }, + "acm005927jsd" : { + "type" : "ControlElement", + "id" : "acm005927jsd", + "name" : "removeFieldName" + }, + "acm005928jsd" : { + "type" : "ControlElement", + "id" : "acm005928jsd", + "name" : "addNewKeyword" + }, + "acm005929jsd" : { + "type" : "ControlElement", + "id" : "acm005929jsd", + "name" : "removeKeyword" + }, + "acm005930jsd" : { + "type" : "ControlElement", + "id" : "acm005930jsd", + "name" : "initListView" + }, + "acm005931jsd" : { + "type" : "ControlElement", + "id" : "acm005931jsd", + "name" : "getSelectedField" + }, + "acm005932jsd" : { + "type" : "ControlElement", + "id" : "acm005932jsd", + "name" : "getSelectedKeyword" + }, + "acm005933jsd" : { + "type" : "ClassUnit", + "id" : "acm005933jsd", + "name" : "ContentSelectorView", + "compilationUnitId" : "acm005915jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005819jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005963jsd", "acm010051jsd", "acm018022jsd", "acm018673jsd" ], + "content" : [ "acm005921jsd", "acm005922jsd", "acm005923jsd", "acm005924jsd", "acm005925jsd", "acm005926jsd", "acm005927jsd", "acm005928jsd", "acm005929jsd", "acm005930jsd", "acm005931jsd", "acm005932jsd" ] + }, + "acm005934jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005934jsd", + "name" : "ContentSelectorViewModel", + "parentId" : "acm005920jsd", + "content" : [ "acm005963jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "contentselectors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005935jsd" : { + "type" : "CodePackage", + "id" : "acm005935jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005936jsd" ] + }, + "acm005936jsd" : { + "type" : "CodePackage", + "id" : "acm005936jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005937jsd" ] + }, + "acm005937jsd" : { + "type" : "CodePackage", + "id" : "acm005937jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005938jsd" ] + }, + "acm005938jsd" : { + "type" : "CodePackage", + "id" : "acm005938jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005939jsd" ] + }, + "acm005939jsd" : { + "type" : "CodePackage", + "id" : "acm005939jsd", + "name" : "contentselectors", + "parentId" : null, + "content" : [ "acm005934jsd" ] + }, + "acm005940jsd" : { + "type" : "ControlElement", + "id" : "acm005940jsd", + "name" : "ContentSelectorViewModel" + }, + "acm005941jsd" : { + "type" : "ControlElement", + "id" : "acm005941jsd", + "name" : "setValues" + }, + "acm005942jsd" : { + "type" : "ControlElement", + "id" : "acm005942jsd", + "name" : "storeSettings" + }, + "acm005943jsd" : { + "type" : "ControlElement", + "id" : "acm005943jsd", + "name" : "getFieldNamesBackingList" + }, + "acm005944jsd" : { + "type" : "ControlElement", + "id" : "acm005944jsd", + "name" : "selectedFieldProperty" + }, + "acm005945jsd" : { + "type" : "ControlElement", + "id" : "acm005945jsd", + "name" : "isFieldNameListEmpty" + }, + "acm005946jsd" : { + "type" : "ControlElement", + "id" : "acm005946jsd", + "name" : "isNoFieldNameSelected" + }, + "acm005947jsd" : { + "type" : "ControlElement", + "id" : "acm005947jsd", + "name" : "getKeywordsBackingList" + }, + "acm005948jsd" : { + "type" : "ControlElement", + "id" : "acm005948jsd", + "name" : "selectedKeywordProperty" + }, + "acm005949jsd" : { + "type" : "ControlElement", + "id" : "acm005949jsd", + "name" : "isNoKeywordSelected" + }, + "acm005950jsd" : { + "type" : "ControlElement", + "id" : "acm005950jsd", + "name" : "showInputFieldNameDialog" + }, + "acm005951jsd" : { + "type" : "ControlElement", + "id" : "acm005951jsd", + "name" : "addFieldIfUnique" + }, + "acm005952jsd" : { + "type" : "ControlElement", + "id" : "acm005952jsd", + "name" : "showRemoveFieldNameConfirmationDialog" + }, + "acm005953jsd" : { + "type" : "ControlElement", + "id" : "acm005953jsd", + "name" : "removeFieldName" + }, + "acm005954jsd" : { + "type" : "ControlElement", + "id" : "acm005954jsd", + "name" : "populateKeywords" + }, + "acm005955jsd" : { + "type" : "ControlElement", + "id" : "acm005955jsd", + "name" : "showInputKeywordDialog" + }, + "acm005956jsd" : { + "type" : "ControlElement", + "id" : "acm005956jsd", + "name" : "addKeywordIfUnique" + }, + "acm005957jsd" : { + "type" : "ControlElement", + "id" : "acm005957jsd", + "name" : "showRemoveKeywordConfirmationDialog" + }, + "acm005958jsd" : { + "type" : "ControlElement", + "id" : "acm005958jsd", + "name" : "removeKeyword" + }, + "acm005959jsd" : { + "type" : "ControlElement", + "id" : "acm005959jsd", + "name" : "filterFieldsToRemove" + }, + "acm005960jsd" : { + "type" : "ControlElement", + "id" : "acm005960jsd", + "name" : "updateMetaDataContentSelector" + }, + "acm005961jsd" : { + "type" : "ControlElement", + "id" : "acm005961jsd", + "name" : "keywordsHaveChanged" + }, + "acm005962jsd" : { + "type" : "ControlElement", + "id" : "acm005962jsd", + "name" : "asHashSet" + }, + "acm005963jsd" : { + "type" : "ClassUnit", + "id" : "acm005963jsd", + "name" : "ContentSelectorViewModel", + "compilationUnitId" : "acm005934jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005867jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm018022jsd", "acm018673jsd", "acm019348jsd", "acm019421jsd" ], + "content" : [ "acm005940jsd", "acm005941jsd", "acm005942jsd", "acm005943jsd", "acm005944jsd", "acm005945jsd", "acm005946jsd", "acm005947jsd", "acm005948jsd", "acm005949jsd", "acm005950jsd", "acm005951jsd", "acm005952jsd", "acm005953jsd", "acm005954jsd", "acm005955jsd", "acm005956jsd", "acm005957jsd", "acm005958jsd", "acm005959jsd", "acm005960jsd", "acm005961jsd", "acm005962jsd" ] + }, + "acm005964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005964jsd", + "name" : "GeneralPropertiesView", + "parentId" : "acm005969jsd", + "content" : [ "acm005976jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "general" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005965jsd" : { + "type" : "CodePackage", + "id" : "acm005965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005966jsd" ] + }, + "acm005966jsd" : { + "type" : "CodePackage", + "id" : "acm005966jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005967jsd" ] + }, + "acm005967jsd" : { + "type" : "CodePackage", + "id" : "acm005967jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005968jsd" ] + }, + "acm005968jsd" : { + "type" : "CodePackage", + "id" : "acm005968jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005969jsd" ] + }, + "acm005969jsd" : { + "type" : "CodePackage", + "id" : "acm005969jsd", + "name" : "general", + "parentId" : "acm005814jsd", + "content" : [ "acm005964jsd", "acm005977jsd" ] + }, + "acm005970jsd" : { + "type" : "ControlElement", + "id" : "acm005970jsd", + "name" : "GeneralPropertiesView" + }, + "acm005971jsd" : { + "type" : "ControlElement", + "id" : "acm005971jsd", + "name" : "getTabName" + }, + "acm005972jsd" : { + "type" : "ControlElement", + "id" : "acm005972jsd", + "name" : "initialize" + }, + "acm005973jsd" : { + "type" : "ControlElement", + "id" : "acm005973jsd", + "name" : "browseGeneralFileDirectory" + }, + "acm005974jsd" : { + "type" : "ControlElement", + "id" : "acm005974jsd", + "name" : "browseUserSpecificFileDirectory" + }, + "acm005975jsd" : { + "type" : "ControlElement", + "id" : "acm005975jsd", + "name" : "browseLatexFileDirectory" + }, + "acm005976jsd" : { + "type" : "ClassUnit", + "id" : "acm005976jsd", + "name" : "GeneralPropertiesView", + "compilationUnitId" : "acm005964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005819jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005998jsd", "acm010051jsd", "acm018022jsd", "acm018032jsd", "acm021206jsd" ], + "content" : [ "acm005970jsd", "acm005971jsd", "acm005972jsd", "acm005973jsd", "acm005974jsd", "acm005975jsd" ] + }, + "acm005977jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005977jsd", + "name" : "GeneralPropertiesViewModel", + "parentId" : "acm005969jsd", + "content" : [ "acm005998jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "general" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005978jsd" : { + "type" : "CodePackage", + "id" : "acm005978jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm005979jsd" ] + }, + "acm005979jsd" : { + "type" : "CodePackage", + "id" : "acm005979jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm005980jsd" ] + }, + "acm005980jsd" : { + "type" : "CodePackage", + "id" : "acm005980jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm005981jsd" ] + }, + "acm005981jsd" : { + "type" : "CodePackage", + "id" : "acm005981jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm005982jsd" ] + }, + "acm005982jsd" : { + "type" : "CodePackage", + "id" : "acm005982jsd", + "name" : "general", + "parentId" : null, + "content" : [ "acm005977jsd" ] + }, + "acm005983jsd" : { + "type" : "ControlElement", + "id" : "acm005983jsd", + "name" : "GeneralPropertiesViewModel" + }, + "acm005984jsd" : { + "type" : "ControlElement", + "id" : "acm005984jsd", + "name" : "setValues" + }, + "acm005985jsd" : { + "type" : "ControlElement", + "id" : "acm005985jsd", + "name" : "storeSettings" + }, + "acm005986jsd" : { + "type" : "ControlElement", + "id" : "acm005986jsd", + "name" : "browseGeneralDir" + }, + "acm005987jsd" : { + "type" : "ControlElement", + "id" : "acm005987jsd", + "name" : "browseUserDir" + }, + "acm005988jsd" : { + "type" : "ControlElement", + "id" : "acm005988jsd", + "name" : "browseLatexDir" + }, + "acm005989jsd" : { + "type" : "ControlElement", + "id" : "acm005989jsd", + "name" : "encodingDisableProperty" + }, + "acm005990jsd" : { + "type" : "ControlElement", + "id" : "acm005990jsd", + "name" : "encodingsProperty" + }, + "acm005991jsd" : { + "type" : "ControlElement", + "id" : "acm005991jsd", + "name" : "selectedEncodingProperty" + }, + "acm005992jsd" : { + "type" : "ControlElement", + "id" : "acm005992jsd", + "name" : "databaseModesProperty" + }, + "acm005993jsd" : { + "type" : "ControlElement", + "id" : "acm005993jsd", + "name" : "selectedDatabaseModeProperty" + }, + "acm005994jsd" : { + "type" : "ControlElement", + "id" : "acm005994jsd", + "name" : "generalFileDirectoryPropertyProperty" + }, + "acm005995jsd" : { + "type" : "ControlElement", + "id" : "acm005995jsd", + "name" : "userSpecificFileDirectoryProperty" + }, + "acm005996jsd" : { + "type" : "ControlElement", + "id" : "acm005996jsd", + "name" : "laTexFileDirectoryProperty" + }, + "acm005997jsd" : { + "type" : "ControlElement", + "id" : "acm005997jsd", + "name" : "preambleProperty" + }, + "acm005998jsd" : { + "type" : "ClassUnit", + "id" : "acm005998jsd", + "name" : "GeneralPropertiesViewModel", + "compilationUnitId" : "acm005977jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005867jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009454jsd", "acm009752jsd", "acm009756jsd", "acm018022jsd", "acm018032jsd", "acm019421jsd", "acm021206jsd" ], + "content" : [ "acm005983jsd", "acm005984jsd", "acm005985jsd", "acm005986jsd", "acm005987jsd", "acm005988jsd", "acm005989jsd", "acm005990jsd", "acm005991jsd", "acm005992jsd", "acm005993jsd", "acm005994jsd", "acm005995jsd", "acm005996jsd", "acm005997jsd" ] + }, + "acm005999jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005999jsd", + "name" : "KeyPatternPropertiesView", + "parentId" : "acm006004jsd", + "content" : [ "acm006010jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "keypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006000jsd" : { + "type" : "CodePackage", + "id" : "acm006000jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006001jsd" ] + }, + "acm006001jsd" : { + "type" : "CodePackage", + "id" : "acm006001jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006002jsd" ] + }, + "acm006002jsd" : { + "type" : "CodePackage", + "id" : "acm006002jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006003jsd" ] + }, + "acm006003jsd" : { + "type" : "CodePackage", + "id" : "acm006003jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm006004jsd" ] + }, + "acm006004jsd" : { + "type" : "CodePackage", + "id" : "acm006004jsd", + "name" : "keypattern", + "parentId" : "acm005814jsd", + "content" : [ "acm005999jsd", "acm006011jsd" ] + }, + "acm006005jsd" : { + "type" : "ControlElement", + "id" : "acm006005jsd", + "name" : "KeyPatternPropertiesView" + }, + "acm006006jsd" : { + "type" : "ControlElement", + "id" : "acm006006jsd", + "name" : "getTabName" + }, + "acm006007jsd" : { + "type" : "ControlElement", + "id" : "acm006007jsd", + "name" : "initialize" + }, + "acm006008jsd" : { + "type" : "ControlElement", + "id" : "acm006008jsd", + "name" : "setValues" + }, + "acm006009jsd" : { + "type" : "ControlElement", + "id" : "acm006009jsd", + "name" : "resetAllKeyPatterns" + }, + "acm006010jsd" : { + "type" : "ClassUnit", + "id" : "acm006010jsd", + "name" : "KeyPatternPropertiesView", + "compilationUnitId" : "acm005999jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005819jsd" ], + "implementedDataTypesIds" : [ "acm005858jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm002801jsd", "acm005331jsd", "acm006022jsd", "acm018022jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm006005jsd", "acm006006jsd", "acm006007jsd", "acm006008jsd", "acm006009jsd" ] + }, + "acm006011jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006011jsd", + "name" : "KeyPatternPropertiesViewModel", + "parentId" : "acm006004jsd", + "content" : [ "acm006022jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "keypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006012jsd" : { + "type" : "CodePackage", + "id" : "acm006012jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006013jsd" ] + }, + "acm006013jsd" : { + "type" : "CodePackage", + "id" : "acm006013jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006014jsd" ] + }, + "acm006014jsd" : { + "type" : "CodePackage", + "id" : "acm006014jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006015jsd" ] + }, + "acm006015jsd" : { + "type" : "CodePackage", + "id" : "acm006015jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm006016jsd" ] + }, + "acm006016jsd" : { + "type" : "CodePackage", + "id" : "acm006016jsd", + "name" : "keypattern", + "parentId" : null, + "content" : [ "acm006011jsd" ] + }, + "acm006017jsd" : { + "type" : "ControlElement", + "id" : "acm006017jsd", + "name" : "KeyPatternPropertiesViewModel" + }, + "acm006018jsd" : { + "type" : "ControlElement", + "id" : "acm006018jsd", + "name" : "setValues" + }, + "acm006019jsd" : { + "type" : "ControlElement", + "id" : "acm006019jsd", + "name" : "storeSettings" + }, + "acm006020jsd" : { + "type" : "ControlElement", + "id" : "acm006020jsd", + "name" : "patternListProperty" + }, + "acm006021jsd" : { + "type" : "ControlElement", + "id" : "acm006021jsd", + "name" : "defaultKeyPatternProperty" + }, + "acm006022jsd" : { + "type" : "ClassUnit", + "id" : "acm006022jsd", + "name" : "KeyPatternPropertiesViewModel", + "compilationUnitId" : "acm006011jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005867jsd" ], + "datatypeReferencesIds" : [ "acm002816jsd", "acm002833jsd", "acm011002jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm006017jsd", "acm006018jsd", "acm006019jsd", "acm006020jsd", "acm006021jsd" ] + }, + "acm006023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006023jsd", + "name" : "SavingPropertiesView", + "parentId" : "acm006028jsd", + "content" : [ "acm006032jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "saving" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006024jsd" : { + "type" : "CodePackage", + "id" : "acm006024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006025jsd" ] + }, + "acm006025jsd" : { + "type" : "CodePackage", + "id" : "acm006025jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006026jsd" ] + }, + "acm006026jsd" : { + "type" : "CodePackage", + "id" : "acm006026jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006027jsd" ] + }, + "acm006027jsd" : { + "type" : "CodePackage", + "id" : "acm006027jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm006028jsd" ] + }, + "acm006028jsd" : { + "type" : "CodePackage", + "id" : "acm006028jsd", + "name" : "saving", + "parentId" : "acm005814jsd", + "content" : [ "acm006023jsd", "acm006033jsd" ] + }, + "acm006029jsd" : { + "type" : "ControlElement", + "id" : "acm006029jsd", + "name" : "SavingPropertiesView" + }, + "acm006030jsd" : { + "type" : "ControlElement", + "id" : "acm006030jsd", + "name" : "getTabName" + }, + "acm006031jsd" : { + "type" : "ControlElement", + "id" : "acm006031jsd", + "name" : "initialize" + }, + "acm006032jsd" : { + "type" : "ClassUnit", + "id" : "acm006032jsd", + "name" : "SavingPropertiesView", + "compilationUnitId" : "acm006023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005819jsd" ], + "implementedDataTypesIds" : [ "acm005858jsd" ], + "datatypeReferencesIds" : [ "acm002849jsd", "acm002888jsd", "acm006051jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm006029jsd", "acm006030jsd", "acm006031jsd" ] + }, + "acm006033jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006033jsd", + "name" : "SavingPropertiesViewModel", + "parentId" : "acm006028jsd", + "content" : [ "acm006051jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "libraryproperties", "saving" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006034jsd" : { + "type" : "CodePackage", + "id" : "acm006034jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006035jsd" ] + }, + "acm006035jsd" : { + "type" : "CodePackage", + "id" : "acm006035jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006036jsd" ] + }, + "acm006036jsd" : { + "type" : "CodePackage", + "id" : "acm006036jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006037jsd" ] + }, + "acm006037jsd" : { + "type" : "CodePackage", + "id" : "acm006037jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm006038jsd" ] + }, + "acm006038jsd" : { + "type" : "CodePackage", + "id" : "acm006038jsd", + "name" : "saving", + "parentId" : null, + "content" : [ "acm006033jsd" ] + }, + "acm006039jsd" : { + "type" : "ControlElement", + "id" : "acm006039jsd", + "name" : "SavingPropertiesViewModel" + }, + "acm006040jsd" : { + "type" : "ControlElement", + "id" : "acm006040jsd", + "name" : "setValues" + }, + "acm006041jsd" : { + "type" : "ControlElement", + "id" : "acm006041jsd", + "name" : "storeSettings" + }, + "acm006042jsd" : { + "type" : "ControlElement", + "id" : "acm006042jsd", + "name" : "protectDisableProperty" + }, + "acm006043jsd" : { + "type" : "ControlElement", + "id" : "acm006043jsd", + "name" : "libraryProtectedProperty" + }, + "acm006044jsd" : { + "type" : "ControlElement", + "id" : "acm006044jsd", + "name" : "saveInOriginalProperty" + }, + "acm006045jsd" : { + "type" : "ControlElement", + "id" : "acm006045jsd", + "name" : "saveInTableOrderProperty" + }, + "acm006046jsd" : { + "type" : "ControlElement", + "id" : "acm006046jsd", + "name" : "saveInSpecifiedOrderProperty" + }, + "acm006047jsd" : { + "type" : "ControlElement", + "id" : "acm006047jsd", + "name" : "sortableFieldsProperty" + }, + "acm006048jsd" : { + "type" : "ControlElement", + "id" : "acm006048jsd", + "name" : "sortCriteriaProperty" + }, + "acm006049jsd" : { + "type" : "ControlElement", + "id" : "acm006049jsd", + "name" : "cleanupsDisableProperty" + }, + "acm006050jsd" : { + "type" : "ControlElement", + "id" : "acm006050jsd", + "name" : "cleanupsProperty" + }, + "acm006051jsd" : { + "type" : "ClassUnit", + "id" : "acm006051jsd", + "name" : "SavingPropertiesViewModel", + "compilationUnitId" : "acm006033jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm005867jsd" ], + "datatypeReferencesIds" : [ "acm002914jsd", "acm011169jsd", "acm011188jsd", "acm018022jsd", "acm018673jsd", "acm019421jsd", "acm019447jsd", "acm021206jsd" ], + "content" : [ "acm006039jsd", "acm006040jsd", "acm006041jsd", "acm006042jsd", "acm006043jsd", "acm006044jsd", "acm006045jsd", "acm006046jsd", "acm006047jsd", "acm006048jsd", "acm006049jsd", "acm006050jsd" ] + }, + "acm006052jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006052jsd", + "name" : "AttachFileAction", + "parentId" : "acm006056jsd", + "content" : [ "acm006059jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "linkedfile" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006053jsd" : { + "type" : "CodePackage", + "id" : "acm006053jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006054jsd" ] + }, + "acm006054jsd" : { + "type" : "CodePackage", + "id" : "acm006054jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006055jsd" ] + }, + "acm006055jsd" : { + "type" : "CodePackage", + "id" : "acm006055jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006056jsd" ] + }, + "acm006056jsd" : { + "type" : "CodePackage", + "id" : "acm006056jsd", + "name" : "linkedfile", + "parentId" : "acm001569jsd", + "content" : [ "acm006052jsd", "acm006060jsd", "acm006069jsd", "acm006079jsd", "acm006088jsd" ] + }, + "acm006057jsd" : { + "type" : "ControlElement", + "id" : "acm006057jsd", + "name" : "AttachFileAction" + }, + "acm006058jsd" : { + "type" : "ControlElement", + "id" : "acm006058jsd", + "name" : "execute" + }, + "acm006059jsd" : { + "type" : "ClassUnit", + "id" : "acm006059jsd", + "name" : "AttachFileAction", + "compilationUnitId" : "acm006052jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm009796jsd", "acm009809jsd", "acm018022jsd", "acm018267jsd", "acm020848jsd" ], + "content" : [ "acm006057jsd", "acm006058jsd" ] + }, + "acm006060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006060jsd", + "name" : "AttachFileFromURLAction", + "parentId" : "acm006056jsd", + "content" : [ "acm006068jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "linkedfile" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006061jsd" : { + "type" : "CodePackage", + "id" : "acm006061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006062jsd" ] + }, + "acm006062jsd" : { + "type" : "CodePackage", + "id" : "acm006062jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006063jsd" ] + }, + "acm006063jsd" : { + "type" : "CodePackage", + "id" : "acm006063jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006064jsd" ] + }, + "acm006064jsd" : { + "type" : "CodePackage", + "id" : "acm006064jsd", + "name" : "linkedfile", + "parentId" : null, + "content" : [ "acm006060jsd" ] + }, + "acm006065jsd" : { + "type" : "ControlElement", + "id" : "acm006065jsd", + "name" : "AttachFileFromURLAction" + }, + "acm006066jsd" : { + "type" : "ControlElement", + "id" : "acm006066jsd", + "name" : "execute" + }, + "acm006067jsd" : { + "type" : "ControlElement", + "id" : "acm006067jsd", + "name" : "getUrlForDownloadFromClipBoardOrEntry" + }, + "acm006068jsd" : { + "type" : "ClassUnit", + "id" : "acm006068jsd", + "name" : "AttachFileFromURLAction", + "compilationUnitId" : "acm006060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004599jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006065jsd", "acm006066jsd", "acm006067jsd" ] + }, + "acm006069jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006069jsd", + "name" : "DeleteFileAction", + "parentId" : "acm006056jsd", + "content" : [ "acm006078jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "linkedfile" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006070jsd" : { + "type" : "CodePackage", + "id" : "acm006070jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006071jsd" ] + }, + "acm006071jsd" : { + "type" : "CodePackage", + "id" : "acm006071jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006072jsd" ] + }, + "acm006072jsd" : { + "type" : "CodePackage", + "id" : "acm006072jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006073jsd" ] + }, + "acm006073jsd" : { + "type" : "CodePackage", + "id" : "acm006073jsd", + "name" : "linkedfile", + "parentId" : null, + "content" : [ "acm006069jsd" ] + }, + "acm006074jsd" : { + "type" : "ControlElement", + "id" : "acm006074jsd", + "name" : "DeleteFileAction" + }, + "acm006075jsd" : { + "type" : "ControlElement", + "id" : "acm006075jsd", + "name" : "execute" + }, + "acm006076jsd" : { + "type" : "ControlElement", + "id" : "acm006076jsd", + "name" : "deleteFiles" + }, + "acm006077jsd" : { + "type" : "ControlElement", + "id" : "acm006077jsd", + "name" : "deleteFileFromDisk" + }, + "acm006078jsd" : { + "type" : "ClassUnit", + "id" : "acm006078jsd", + "name" : "DeleteFileAction", + "compilationUnitId" : "acm006069jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004599jsd", "acm004648jsd", "acm006078jsd", "acm018022jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006074jsd", "acm006075jsd", "acm006076jsd", "acm006077jsd" ] + }, + "acm006079jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006079jsd", + "name" : "LinkedFileEditDialogView", + "parentId" : "acm006056jsd", + "content" : [ "acm006087jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "linkedfile" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006080jsd" : { + "type" : "CodePackage", + "id" : "acm006080jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006081jsd" ] + }, + "acm006081jsd" : { + "type" : "CodePackage", + "id" : "acm006081jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006082jsd" ] + }, + "acm006082jsd" : { + "type" : "CodePackage", + "id" : "acm006082jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006083jsd" ] + }, + "acm006083jsd" : { + "type" : "CodePackage", + "id" : "acm006083jsd", + "name" : "linkedfile", + "parentId" : null, + "content" : [ "acm006079jsd" ] + }, + "acm006084jsd" : { + "type" : "ControlElement", + "id" : "acm006084jsd", + "name" : "LinkedFileEditDialogView" + }, + "acm006085jsd" : { + "type" : "ControlElement", + "id" : "acm006085jsd", + "name" : "initialize" + }, + "acm006086jsd" : { + "type" : "ControlElement", + "id" : "acm006086jsd", + "name" : "openBrowseDialog" + }, + "acm006087jsd" : { + "type" : "ClassUnit", + "id" : "acm006087jsd", + "name" : "LinkedFileEditDialogView", + "compilationUnitId" : "acm006079jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004328jsd", "acm006103jsd", "acm010051jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006084jsd", "acm006085jsd", "acm006086jsd" ] + }, + "acm006088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006088jsd", + "name" : "LinkedFilesEditDialogViewModel", + "parentId" : "acm006056jsd", + "content" : [ "acm006103jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "linkedfile" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006089jsd" : { + "type" : "CodePackage", + "id" : "acm006089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006090jsd" ] + }, + "acm006090jsd" : { + "type" : "CodePackage", + "id" : "acm006090jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006091jsd" ] + }, + "acm006091jsd" : { + "type" : "CodePackage", + "id" : "acm006091jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006092jsd" ] + }, + "acm006092jsd" : { + "type" : "CodePackage", + "id" : "acm006092jsd", + "name" : "linkedfile", + "parentId" : null, + "content" : [ "acm006088jsd" ] + }, + "acm006093jsd" : { + "type" : "ControlElement", + "id" : "acm006093jsd", + "name" : "LinkedFilesEditDialogViewModel" + }, + "acm006094jsd" : { + "type" : "ControlElement", + "id" : "acm006094jsd", + "name" : "setExternalFileTypeByExtension" + }, + "acm006095jsd" : { + "type" : "ControlElement", + "id" : "acm006095jsd", + "name" : "openBrowseDialog" + }, + "acm006096jsd" : { + "type" : "ControlElement", + "id" : "acm006096jsd", + "name" : "setValues" + }, + "acm006097jsd" : { + "type" : "ControlElement", + "id" : "acm006097jsd", + "name" : "linkProperty" + }, + "acm006098jsd" : { + "type" : "ControlElement", + "id" : "acm006098jsd", + "name" : "descriptionProperty" + }, + "acm006099jsd" : { + "type" : "ControlElement", + "id" : "acm006099jsd", + "name" : "externalFileTypeProperty" + }, + "acm006100jsd" : { + "type" : "ControlElement", + "id" : "acm006100jsd", + "name" : "selectedExternalFileTypeProperty" + }, + "acm006101jsd" : { + "type" : "ControlElement", + "id" : "acm006101jsd", + "name" : "getNewLinkedFile" + }, + "acm006102jsd" : { + "type" : "ControlElement", + "id" : "acm006102jsd", + "name" : "relativize" + }, + "acm006103jsd" : { + "type" : "ClassUnit", + "id" : "acm006103jsd", + "name" : "LinkedFilesEditDialogViewModel", + "compilationUnitId" : "acm006088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm004370jsd", "acm009796jsd", "acm009809jsd", "acm018022jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm006093jsd", "acm006094jsd", "acm006095jsd", "acm006096jsd", "acm006097jsd", "acm006098jsd", "acm006099jsd", "acm006100jsd", "acm006101jsd", "acm006102jsd" ] + }, + "acm006104jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006104jsd", + "name" : "ApplicationInsightsLogEvent", + "parentId" : "acm006108jsd", + "content" : [ "acm006115jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "logging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006105jsd" : { + "type" : "CodePackage", + "id" : "acm006105jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006106jsd" ] + }, + "acm006106jsd" : { + "type" : "CodePackage", + "id" : "acm006106jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006107jsd" ] + }, + "acm006107jsd" : { + "type" : "CodePackage", + "id" : "acm006107jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006108jsd" ] + }, + "acm006108jsd" : { + "type" : "CodePackage", + "id" : "acm006108jsd", + "name" : "logging", + "parentId" : "acm001569jsd", + "content" : [ "acm006104jsd", "acm006116jsd", "acm006128jsd" ] + }, + "acm006109jsd" : { + "type" : "ControlElement", + "id" : "acm006109jsd", + "name" : "ApplicationInsightsLogEvent" + }, + "acm006110jsd" : { + "type" : "ControlElement", + "id" : "acm006110jsd", + "name" : "getMessage" + }, + "acm006111jsd" : { + "type" : "ControlElement", + "id" : "acm006111jsd", + "name" : "isException" + }, + "acm006112jsd" : { + "type" : "ControlElement", + "id" : "acm006112jsd", + "name" : "getException" + }, + "acm006113jsd" : { + "type" : "ControlElement", + "id" : "acm006113jsd", + "name" : "getCustomParameters" + }, + "acm006114jsd" : { + "type" : "ControlElement", + "id" : "acm006114jsd", + "name" : "getNormalizedSeverityLevel" + }, + "acm006115jsd" : { + "type" : "ClassUnit", + "id" : "acm006115jsd", + "name" : "ApplicationInsightsLogEvent", + "compilationUnitId" : "acm006104jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006109jsd", "acm006110jsd", "acm006111jsd", "acm006112jsd", "acm006113jsd", "acm006114jsd" ] + }, + "acm006116jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006116jsd", + "name" : "ApplicationInsightsWriter", + "parentId" : "acm006108jsd", + "content" : [ "acm006127jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "logging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006117jsd" : { + "type" : "CodePackage", + "id" : "acm006117jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006118jsd" ] + }, + "acm006118jsd" : { + "type" : "CodePackage", + "id" : "acm006118jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006119jsd" ] + }, + "acm006119jsd" : { + "type" : "CodePackage", + "id" : "acm006119jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006120jsd" ] + }, + "acm006120jsd" : { + "type" : "CodePackage", + "id" : "acm006120jsd", + "name" : "logging", + "parentId" : null, + "content" : [ "acm006116jsd" ] + }, + "acm006121jsd" : { + "type" : "ControlElement", + "id" : "acm006121jsd", + "name" : "ApplicationInsightsWriter" + }, + "acm006122jsd" : { + "type" : "ControlElement", + "id" : "acm006122jsd", + "name" : "ApplicationInsightsWriter" + }, + "acm006123jsd" : { + "type" : "ControlElement", + "id" : "acm006123jsd", + "name" : "getRequiredLogEntryValues" + }, + "acm006124jsd" : { + "type" : "ControlElement", + "id" : "acm006124jsd", + "name" : "write" + }, + "acm006125jsd" : { + "type" : "ControlElement", + "id" : "acm006125jsd", + "name" : "flush" + }, + "acm006126jsd" : { + "type" : "ControlElement", + "id" : "acm006126jsd", + "name" : "close" + }, + "acm006127jsd" : { + "type" : "ClassUnit", + "id" : "acm006127jsd", + "name" : "ApplicationInsightsWriter", + "compilationUnitId" : "acm006116jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006115jsd" ], + "content" : [ "acm006121jsd", "acm006122jsd", "acm006123jsd", "acm006124jsd", "acm006125jsd", "acm006126jsd" ] + }, + "acm006128jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006128jsd", + "name" : "GuiWriter", + "parentId" : "acm006108jsd", + "content" : [ "acm006139jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "logging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006129jsd" : { + "type" : "CodePackage", + "id" : "acm006129jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006130jsd" ] + }, + "acm006130jsd" : { + "type" : "CodePackage", + "id" : "acm006130jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006131jsd" ] + }, + "acm006131jsd" : { + "type" : "CodePackage", + "id" : "acm006131jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006132jsd" ] + }, + "acm006132jsd" : { + "type" : "CodePackage", + "id" : "acm006132jsd", + "name" : "logging", + "parentId" : null, + "content" : [ "acm006128jsd" ] + }, + "acm006133jsd" : { + "type" : "ControlElement", + "id" : "acm006133jsd", + "name" : "GuiWriter" + }, + "acm006134jsd" : { + "type" : "ControlElement", + "id" : "acm006134jsd", + "name" : "GuiWriter" + }, + "acm006135jsd" : { + "type" : "ControlElement", + "id" : "acm006135jsd", + "name" : "getRequiredLogEntryValues" + }, + "acm006136jsd" : { + "type" : "ControlElement", + "id" : "acm006136jsd", + "name" : "write" + }, + "acm006137jsd" : { + "type" : "ControlElement", + "id" : "acm006137jsd", + "name" : "flush" + }, + "acm006138jsd" : { + "type" : "ControlElement", + "id" : "acm006138jsd", + "name" : "close" + }, + "acm006139jsd" : { + "type" : "ClassUnit", + "id" : "acm006139jsd", + "name" : "GuiWriter", + "compilationUnitId" : "acm006128jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006133jsd", "acm006134jsd", "acm006135jsd", "acm006136jsd", "acm006137jsd", "acm006138jsd" ] + }, + "acm006140jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006140jsd", + "name" : "BibEntryTableViewModel", + "parentId" : "acm006144jsd", + "content" : [ "acm006156jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006141jsd" : { + "type" : "CodePackage", + "id" : "acm006141jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006142jsd" ] + }, + "acm006142jsd" : { + "type" : "CodePackage", + "id" : "acm006142jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006143jsd" ] + }, + "acm006143jsd" : { + "type" : "CodePackage", + "id" : "acm006143jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006144jsd" ] + }, + "acm006144jsd" : { + "type" : "CodePackage", + "id" : "acm006144jsd", + "name" : "maintable", + "parentId" : "acm001569jsd", + "content" : [ "acm006140jsd", "acm006157jsd", "acm006165jsd", "acm006176jsd", "acm006206jsd", "acm006225jsd", "acm006257jsd", "acm006270jsd", "acm006279jsd", "acm006304jsd", "acm006318jsd", "acm006333jsd", "acm006342jsd", "acm006351jsd", "acm006359jsd", "acm006368jsd", "acm006376jsd", "acm006384jsd", "acm021851jsd", "acm006401jsd" ] + }, + "acm006145jsd" : { + "type" : "ControlElement", + "id" : "acm006145jsd", + "name" : "BibEntryTableViewModel" + }, + "acm006146jsd" : { + "type" : "ControlElement", + "id" : "acm006146jsd", + "name" : "createLinkedIdentifiersBinding" + }, + "acm006147jsd" : { + "type" : "ControlElement", + "id" : "acm006147jsd", + "name" : "getEntry" + }, + "acm006148jsd" : { + "type" : "ControlElement", + "id" : "acm006148jsd", + "name" : "createMatchedGroupsBinding" + }, + "acm006149jsd" : { + "type" : "ControlElement", + "id" : "acm006149jsd", + "name" : "getField" + }, + "acm006150jsd" : { + "type" : "ControlElement", + "id" : "acm006150jsd", + "name" : "getLinkedFiles" + }, + "acm006151jsd" : { + "type" : "ControlElement", + "id" : "acm006151jsd", + "name" : "getLinkedIdentifiers" + }, + "acm006152jsd" : { + "type" : "ControlElement", + "id" : "acm006152jsd", + "name" : "getMatchedGroups" + }, + "acm006153jsd" : { + "type" : "ControlElement", + "id" : "acm006153jsd", + "name" : "getSpecialField" + }, + "acm006154jsd" : { + "type" : "ControlElement", + "id" : "acm006154jsd", + "name" : "getFields" + }, + "acm006155jsd" : { + "type" : "ControlElement", + "id" : "acm006155jsd", + "name" : "bibDatabaseContextProperty" + }, + "acm006156jsd" : { + "type" : "ClassUnit", + "id" : "acm006156jsd", + "name" : "BibEntryTableViewModel", + "compilationUnitId" : "acm006140jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006278jsd", "acm009156jsd", "acm010254jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm018673jsd", "acm018754jsd", "acm018770jsd", "acm019107jsd" ], + "content" : [ "acm006145jsd", "acm006146jsd", "acm006147jsd", "acm006148jsd", "acm006149jsd", "acm006150jsd", "acm006151jsd", "acm006152jsd", "acm006153jsd", "acm006154jsd", "acm006155jsd" ] + }, + "acm006157jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006157jsd", + "name" : "CellFactory", + "parentId" : "acm006144jsd", + "content" : [ "acm006164jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006158jsd" : { + "type" : "CodePackage", + "id" : "acm006158jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006159jsd" ] + }, + "acm006159jsd" : { + "type" : "CodePackage", + "id" : "acm006159jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006160jsd" ] + }, + "acm006160jsd" : { + "type" : "CodePackage", + "id" : "acm006160jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006161jsd" ] + }, + "acm006161jsd" : { + "type" : "CodePackage", + "id" : "acm006161jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006157jsd" ] + }, + "acm006162jsd" : { + "type" : "ControlElement", + "id" : "acm006162jsd", + "name" : "CellFactory" + }, + "acm006163jsd" : { + "type" : "ControlElement", + "id" : "acm006163jsd", + "name" : "getTableIcon" + }, + "acm006164jsd" : { + "type" : "ClassUnit", + "id" : "acm006164jsd", + "name" : "CellFactory", + "compilationUnitId" : "acm006157jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004328jsd", "acm005416jsd", "acm009172jsd", "acm018673jsd", "acm018813jsd", "acm021206jsd" ], + "content" : [ "acm006162jsd", "acm006163jsd" ] + }, + "acm006165jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006165jsd", + "name" : "ColumnPreferences", + "parentId" : "acm006144jsd", + "content" : [ "acm006175jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006166jsd" : { + "type" : "CodePackage", + "id" : "acm006166jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006167jsd" ] + }, + "acm006167jsd" : { + "type" : "CodePackage", + "id" : "acm006167jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006168jsd" ] + }, + "acm006168jsd" : { + "type" : "CodePackage", + "id" : "acm006168jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006169jsd" ] + }, + "acm006169jsd" : { + "type" : "CodePackage", + "id" : "acm006169jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006165jsd" ] + }, + "acm006170jsd" : { + "type" : "ControlElement", + "id" : "acm006170jsd", + "name" : "ColumnPreferences" + }, + "acm006171jsd" : { + "type" : "ControlElement", + "id" : "acm006171jsd", + "name" : "getColumns" + }, + "acm006172jsd" : { + "type" : "ControlElement", + "id" : "acm006172jsd", + "name" : "getColumnSortOrder" + }, + "acm006173jsd" : { + "type" : "ControlElement", + "id" : "acm006173jsd", + "name" : "setColumns" + }, + "acm006174jsd" : { + "type" : "ControlElement", + "id" : "acm006174jsd", + "name" : "setColumnSortOrder" + }, + "acm006175jsd" : { + "type" : "ClassUnit", + "id" : "acm006175jsd", + "name" : "ColumnPreferences", + "compilationUnitId" : "acm006165jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006250jsd" ], + "content" : [ "acm006170jsd", "acm006171jsd", "acm006172jsd", "acm006173jsd", "acm006174jsd" ] + }, + "acm006176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006176jsd", + "name" : "MainTable", + "parentId" : "acm006144jsd", + "content" : [ "acm006205jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006177jsd" : { + "type" : "CodePackage", + "id" : "acm006177jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006178jsd" ] + }, + "acm006178jsd" : { + "type" : "CodePackage", + "id" : "acm006178jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006179jsd" ] + }, + "acm006179jsd" : { + "type" : "CodePackage", + "id" : "acm006179jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006180jsd" ] + }, + "acm006180jsd" : { + "type" : "CodePackage", + "id" : "acm006180jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006176jsd" ] + }, + "acm006181jsd" : { + "type" : "ControlElement", + "id" : "acm006181jsd", + "name" : "MainTable" + }, + "acm006182jsd" : { + "type" : "ControlElement", + "id" : "acm006182jsd", + "name" : "jumpToSearchKey" + }, + "acm006183jsd" : { + "type" : "ControlElement", + "id" : "acm006183jsd", + "name" : "listen" + }, + "acm006184jsd" : { + "type" : "ControlElement", + "id" : "acm006184jsd", + "name" : "clearAndSelect" + }, + "acm006185jsd" : { + "type" : "ControlElement", + "id" : "acm006185jsd", + "name" : "copy" + }, + "acm006186jsd" : { + "type" : "ControlElement", + "id" : "acm006186jsd", + "name" : "cut" + }, + "acm006187jsd" : { + "type" : "ControlElement", + "id" : "acm006187jsd", + "name" : "setupKeyBindings" + }, + "acm006188jsd" : { + "type" : "ControlElement", + "id" : "acm006188jsd", + "name" : "clearAndSelectFirst" + }, + "acm006189jsd" : { + "type" : "ControlElement", + "id" : "acm006189jsd", + "name" : "clearAndSelectLast" + }, + "acm006190jsd" : { + "type" : "ControlElement", + "id" : "acm006190jsd", + "name" : "paste" + }, + "acm006191jsd" : { + "type" : "ControlElement", + "id" : "acm006191jsd", + "name" : "handleNonBibTeXStringData" + }, + "acm006192jsd" : { + "type" : "ControlElement", + "id" : "acm006192jsd", + "name" : "dropEntry" + }, + "acm006193jsd" : { + "type" : "ControlElement", + "id" : "acm006193jsd", + "name" : "handleOnDragOver" + }, + "acm006194jsd" : { + "type" : "ControlElement", + "id" : "acm006194jsd", + "name" : "handleOnDragOverTableView" + }, + "acm006195jsd" : { + "type" : "ControlElement", + "id" : "acm006195jsd", + "name" : "handleOnDragEntered" + }, + "acm006196jsd" : { + "type" : "ControlElement", + "id" : "acm006196jsd", + "name" : "handleOnDragExited" + }, + "acm006197jsd" : { + "type" : "ControlElement", + "id" : "acm006197jsd", + "name" : "handleOnDragDetected" + }, + "acm006198jsd" : { + "type" : "ControlElement", + "id" : "acm006198jsd", + "name" : "handleOnDragDropped" + }, + "acm006199jsd" : { + "type" : "ControlElement", + "id" : "acm006199jsd", + "name" : "handleOnDragDroppedTableView" + }, + "acm006200jsd" : { + "type" : "ControlElement", + "id" : "acm006200jsd", + "name" : "addSelectionListener" + }, + "acm006201jsd" : { + "type" : "ControlElement", + "id" : "acm006201jsd", + "name" : "getTableModel" + }, + "acm006202jsd" : { + "type" : "ControlElement", + "id" : "acm006202jsd", + "name" : "getEntryAt" + }, + "acm006203jsd" : { + "type" : "ControlElement", + "id" : "acm006203jsd", + "name" : "getSelectedEntries" + }, + "acm006204jsd" : { + "type" : "ControlElement", + "id" : "acm006204jsd", + "name" : "findEntry" + }, + "acm006205jsd" : { + "type" : "ClassUnit", + "id" : "acm006205jsd", + "name" : "MainTable", + "compilationUnitId" : "acm006176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm004223jsd", "acm005802jsd", "acm006156jsd", "acm006205jsd", "acm006224jsd", "acm006269jsd", "acm006298jsd", "acm006317jsd", "acm006367jsd", "acm006395jsd", "acm009670jsd", "acm009965jsd", "acm010073jsd", "acm012305jsd", "acm012314jsd", "acm012332jsd", "acm012428jsd", "acm018022jsd", "acm018106jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm006181jsd", "acm006182jsd", "acm006183jsd", "acm006184jsd", "acm006185jsd", "acm006186jsd", "acm006187jsd", "acm006188jsd", "acm006189jsd", "acm006190jsd", "acm006191jsd", "acm006192jsd", "acm006193jsd", "acm006194jsd", "acm006195jsd", "acm006196jsd", "acm006197jsd", "acm006198jsd", "acm006199jsd", "acm006200jsd", "acm006201jsd", "acm006202jsd", "acm006203jsd", "acm006204jsd" ] + }, + "acm006206jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006206jsd", + "name" : "MainTableColumnFactory", + "parentId" : "acm006144jsd", + "content" : [ "acm006224jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006207jsd" : { + "type" : "CodePackage", + "id" : "acm006207jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006208jsd" ] + }, + "acm006208jsd" : { + "type" : "CodePackage", + "id" : "acm006208jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006209jsd" ] + }, + "acm006209jsd" : { + "type" : "CodePackage", + "id" : "acm006209jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006210jsd" ] + }, + "acm006210jsd" : { + "type" : "CodePackage", + "id" : "acm006210jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006206jsd" ] + }, + "acm006211jsd" : { + "type" : "ControlElement", + "id" : "acm006211jsd", + "name" : "MainTableColumnFactory" + }, + "acm006212jsd" : { + "type" : "ControlElement", + "id" : "acm006212jsd", + "name" : "createColumn" + }, + "acm006213jsd" : { + "type" : "ControlElement", + "id" : "acm006213jsd", + "name" : "createColumns" + }, + "acm006214jsd" : { + "type" : "ControlElement", + "id" : "acm006214jsd", + "name" : "setExactWidth" + }, + "acm006215jsd" : { + "type" : "ControlElement", + "id" : "acm006215jsd", + "name" : "createIndexColumn" + }, + "acm006216jsd" : { + "type" : "ControlElement", + "id" : "acm006216jsd", + "name" : "createGroupColumn" + }, + "acm006217jsd" : { + "type" : "ControlElement", + "id" : "acm006217jsd", + "name" : "createGroupColorRegion" + }, + "acm006218jsd" : { + "type" : "ControlElement", + "id" : "acm006218jsd", + "name" : "createFieldColumn" + }, + "acm006219jsd" : { + "type" : "ControlElement", + "id" : "acm006219jsd", + "name" : "createIdentifierColumn" + }, + "acm006220jsd" : { + "type" : "ControlElement", + "id" : "acm006220jsd", + "name" : "createSpecialFieldColumn" + }, + "acm006221jsd" : { + "type" : "ControlElement", + "id" : "acm006221jsd", + "name" : "createFilesColumn" + }, + "acm006222jsd" : { + "type" : "ControlElement", + "id" : "acm006222jsd", + "name" : "createExtraFileColumn" + }, + "acm006223jsd" : { + "type" : "ControlElement", + "id" : "acm006223jsd", + "name" : "createLibraryColumn" + }, + "acm006224jsd" : { + "type" : "ClassUnit", + "id" : "acm006224jsd", + "name" : "MainTableColumnFactory", + "compilationUnitId" : "acm006206jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm006156jsd", "acm006164jsd", "acm006175jsd", "acm006224jsd", "acm006250jsd", "acm006405jsd", "acm006418jsd", "acm006427jsd", "acm006438jsd", "acm006448jsd", "acm006459jsd", "acm009156jsd", "acm018022jsd", "acm018509jsd", "acm018673jsd", "acm018770jsd", "acm019107jsd", "acm021206jsd" ], + "content" : [ "acm006211jsd", "acm006212jsd", "acm006213jsd", "acm006214jsd", "acm006215jsd", "acm006216jsd", "acm006217jsd", "acm006218jsd", "acm006219jsd", "acm006220jsd", "acm006221jsd", "acm006222jsd", "acm006223jsd" ] + }, + "acm006225jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006225jsd", + "name" : "MainTableColumnModel", + "parentId" : "acm006144jsd", + "content" : [ "acm006250jsd", "acm006256jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006226jsd" : { + "type" : "CodePackage", + "id" : "acm006226jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006227jsd" ] + }, + "acm006227jsd" : { + "type" : "CodePackage", + "id" : "acm006227jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006228jsd" ] + }, + "acm006228jsd" : { + "type" : "CodePackage", + "id" : "acm006228jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006229jsd" ] + }, + "acm006229jsd" : { + "type" : "CodePackage", + "id" : "acm006229jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006225jsd" ] + }, + "acm006230jsd" : { + "type" : "ControlElement", + "id" : "acm006230jsd", + "name" : "Type" + }, + "acm006231jsd" : { + "type" : "ControlElement", + "id" : "acm006231jsd", + "name" : "Type" + }, + "acm006232jsd" : { + "type" : "ControlElement", + "id" : "acm006232jsd", + "name" : "getName" + }, + "acm006233jsd" : { + "type" : "ControlElement", + "id" : "acm006233jsd", + "name" : "getDisplayName" + }, + "acm006234jsd" : { + "type" : "ControlElement", + "id" : "acm006234jsd", + "name" : "fromString" + }, + "acm006235jsd" : { + "type" : "ControlElement", + "id" : "acm006235jsd", + "name" : "MainTableColumnModel" + }, + "acm006236jsd" : { + "type" : "ControlElement", + "id" : "acm006236jsd", + "name" : "MainTableColumnModel" + }, + "acm006237jsd" : { + "type" : "ControlElement", + "id" : "acm006237jsd", + "name" : "MainTableColumnModel" + }, + "acm006238jsd" : { + "type" : "ControlElement", + "id" : "acm006238jsd", + "name" : "getType" + }, + "acm006239jsd" : { + "type" : "ControlElement", + "id" : "acm006239jsd", + "name" : "getQualifier" + }, + "acm006240jsd" : { + "type" : "ControlElement", + "id" : "acm006240jsd", + "name" : "getName" + }, + "acm006241jsd" : { + "type" : "ControlElement", + "id" : "acm006241jsd", + "name" : "getDisplayName" + }, + "acm006242jsd" : { + "type" : "ControlElement", + "id" : "acm006242jsd", + "name" : "nameProperty" + }, + "acm006243jsd" : { + "type" : "ControlElement", + "id" : "acm006243jsd", + "name" : "getWidth" + }, + "acm006244jsd" : { + "type" : "ControlElement", + "id" : "acm006244jsd", + "name" : "widthProperty" + }, + "acm006245jsd" : { + "type" : "ControlElement", + "id" : "acm006245jsd", + "name" : "getSortType" + }, + "acm006246jsd" : { + "type" : "ControlElement", + "id" : "acm006246jsd", + "name" : "sortTypeProperty" + }, + "acm006247jsd" : { + "type" : "ControlElement", + "id" : "acm006247jsd", + "name" : "equals" + }, + "acm006248jsd" : { + "type" : "ControlElement", + "id" : "acm006248jsd", + "name" : "hashCode" + }, + "acm006249jsd" : { + "type" : "ControlElement", + "id" : "acm006249jsd", + "name" : "parse" + }, + "acm006250jsd" : { + "type" : "ClassUnit", + "id" : "acm006250jsd", + "name" : "MainTableColumnModel", + "compilationUnitId" : "acm006225jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006250jsd", "acm006256jsd" ], + "content" : [ "acm006230jsd", "acm006231jsd", "acm006232jsd", "acm006233jsd", "acm006234jsd", "acm006235jsd", "acm006236jsd", "acm006237jsd", "acm006238jsd", "acm006239jsd", "acm006240jsd", "acm006241jsd", "acm006242jsd", "acm006243jsd", "acm006244jsd", "acm006245jsd", "acm006246jsd", "acm006247jsd", "acm006248jsd", "acm006249jsd" ] + }, + "acm006251jsd" : { + "type" : "ControlElement", + "id" : "acm006251jsd", + "name" : "Type" + }, + "acm006252jsd" : { + "type" : "ControlElement", + "id" : "acm006252jsd", + "name" : "Type" + }, + "acm006253jsd" : { + "type" : "ControlElement", + "id" : "acm006253jsd", + "name" : "getName" + }, + "acm006254jsd" : { + "type" : "ControlElement", + "id" : "acm006254jsd", + "name" : "getDisplayName" + }, + "acm006255jsd" : { + "type" : "ControlElement", + "id" : "acm006255jsd", + "name" : "fromString" + }, + "acm006256jsd" : { + "type" : "ClassUnit", + "id" : "acm006256jsd", + "name" : "Type", + "compilationUnitId" : "acm006225jsd", + "parentDatatypeId" : "acm006250jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006256jsd" ], + "content" : [ "acm006251jsd", "acm006252jsd", "acm006253jsd", "acm006254jsd", "acm006255jsd" ] + }, + "acm006257jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006257jsd", + "name" : "MainTableDataModel", + "parentId" : "acm006144jsd", + "content" : [ "acm006269jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006258jsd" : { + "type" : "CodePackage", + "id" : "acm006258jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006259jsd" ] + }, + "acm006259jsd" : { + "type" : "CodePackage", + "id" : "acm006259jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006260jsd" ] + }, + "acm006260jsd" : { + "type" : "CodePackage", + "id" : "acm006260jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006261jsd" ] + }, + "acm006261jsd" : { + "type" : "CodePackage", + "id" : "acm006261jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006257jsd" ] + }, + "acm006262jsd" : { + "type" : "ControlElement", + "id" : "acm006262jsd", + "name" : "MainTableDataModel" + }, + "acm006263jsd" : { + "type" : "ControlElement", + "id" : "acm006263jsd", + "name" : "isMatched" + }, + "acm006264jsd" : { + "type" : "ControlElement", + "id" : "acm006264jsd", + "name" : "isMatchedBySearch" + }, + "acm006265jsd" : { + "type" : "ControlElement", + "id" : "acm006265jsd", + "name" : "isMatchedByGroup" + }, + "acm006266jsd" : { + "type" : "ControlElement", + "id" : "acm006266jsd", + "name" : "createGroupMatcher" + }, + "acm006267jsd" : { + "type" : "ControlElement", + "id" : "acm006267jsd", + "name" : "getEntriesFilteredAndSorted" + }, + "acm006268jsd" : { + "type" : "ControlElement", + "id" : "acm006268jsd", + "name" : "refresh" + }, + "acm006269jsd" : { + "type" : "ClassUnit", + "id" : "acm006269jsd", + "name" : "MainTableDataModel", + "compilationUnitId" : "acm006257jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm005211jsd", "acm006156jsd", "acm006278jsd", "acm006330jsd", "acm016845jsd", "acm018022jsd", "acm018267jsd", "acm019221jsd", "acm020349jsd", "acm021206jsd" ], + "content" : [ "acm006262jsd", "acm006263jsd", "acm006264jsd", "acm006265jsd", "acm006266jsd", "acm006267jsd", "acm006268jsd" ] + }, + "acm006270jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006270jsd", + "name" : "MainTableFieldValueFormatter", + "parentId" : "acm006144jsd", + "content" : [ "acm006278jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006271jsd" : { + "type" : "CodePackage", + "id" : "acm006271jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006272jsd" ] + }, + "acm006272jsd" : { + "type" : "CodePackage", + "id" : "acm006272jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006273jsd" ] + }, + "acm006273jsd" : { + "type" : "CodePackage", + "id" : "acm006273jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006274jsd" ] + }, + "acm006274jsd" : { + "type" : "CodePackage", + "id" : "acm006274jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006270jsd" ] + }, + "acm006275jsd" : { + "type" : "ControlElement", + "id" : "acm006275jsd", + "name" : "MainTableFieldValueFormatter" + }, + "acm006276jsd" : { + "type" : "ControlElement", + "id" : "acm006276jsd", + "name" : "formatFieldsValues" + }, + "acm006277jsd" : { + "type" : "ControlElement", + "id" : "acm006277jsd", + "name" : "formatFieldWithAuthorValue" + }, + "acm006278jsd" : { + "type" : "ClassUnit", + "id" : "acm006278jsd", + "name" : "MainTableFieldValueFormatter", + "compilationUnitId" : "acm006270jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006330jsd", "acm006331jsd", "acm006332jsd", "acm017988jsd", "acm018022jsd", "acm018175jsd", "acm018267jsd", "acm018673jsd", "acm018754jsd" ], + "content" : [ "acm006275jsd", "acm006276jsd", "acm006277jsd" ] + }, + "acm006279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006279jsd", + "name" : "MainTableHeaderContextMenu", + "parentId" : "acm006144jsd", + "content" : [ "acm006298jsd", "acm006303jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006280jsd" : { + "type" : "CodePackage", + "id" : "acm006280jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006281jsd" ] + }, + "acm006281jsd" : { + "type" : "CodePackage", + "id" : "acm006281jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006282jsd" ] + }, + "acm006282jsd" : { + "type" : "CodePackage", + "id" : "acm006282jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006283jsd" ] + }, + "acm006283jsd" : { + "type" : "CodePackage", + "id" : "acm006283jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006279jsd" ] + }, + "acm006284jsd" : { + "type" : "ControlElement", + "id" : "acm006284jsd", + "name" : "MainTableHeaderContextMenu" + }, + "acm006285jsd" : { + "type" : "ControlElement", + "id" : "acm006285jsd", + "name" : "show" + }, + "acm006286jsd" : { + "type" : "ControlElement", + "id" : "acm006286jsd", + "name" : "constructItems" + }, + "acm006287jsd" : { + "type" : "ControlElement", + "id" : "acm006287jsd", + "name" : "createMenuItem" + }, + "acm006288jsd" : { + "type" : "ControlElement", + "id" : "acm006288jsd", + "name" : "obtainIndexOfColumn" + }, + "acm006289jsd" : { + "type" : "ControlElement", + "id" : "acm006289jsd", + "name" : "addColumn" + }, + "acm006290jsd" : { + "type" : "ControlElement", + "id" : "acm006290jsd", + "name" : "removeColumn" + }, + "acm006291jsd" : { + "type" : "ControlElement", + "id" : "acm006291jsd", + "name" : "isACommonColumn" + }, + "acm006292jsd" : { + "type" : "ControlElement", + "id" : "acm006292jsd", + "name" : "isColumnInList" + }, + "acm006293jsd" : { + "type" : "ControlElement", + "id" : "acm006293jsd", + "name" : "commonColumns" + }, + "acm006294jsd" : { + "type" : "ControlElement", + "id" : "acm006294jsd", + "name" : "RightClickMenuItem" + }, + "acm006295jsd" : { + "type" : "ControlElement", + "id" : "acm006295jsd", + "name" : "setIndex" + }, + "acm006296jsd" : { + "type" : "ControlElement", + "id" : "acm006296jsd", + "name" : "setVisibleInTable" + }, + "acm006297jsd" : { + "type" : "ControlElement", + "id" : "acm006297jsd", + "name" : "isVisibleInTable" + }, + "acm006298jsd" : { + "type" : "ClassUnit", + "id" : "acm006298jsd", + "name" : "MainTableHeaderContextMenu", + "compilationUnitId" : "acm006279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006205jsd", "acm006224jsd", "acm006250jsd", "acm006303jsd", "acm006448jsd" ], + "content" : [ "acm006284jsd", "acm006285jsd", "acm006286jsd", "acm006287jsd", "acm006288jsd", "acm006289jsd", "acm006290jsd", "acm006291jsd", "acm006292jsd", "acm006293jsd", "acm006294jsd", "acm006295jsd", "acm006296jsd", "acm006297jsd" ] + }, + "acm006299jsd" : { + "type" : "ControlElement", + "id" : "acm006299jsd", + "name" : "RightClickMenuItem" + }, + "acm006300jsd" : { + "type" : "ControlElement", + "id" : "acm006300jsd", + "name" : "setIndex" + }, + "acm006301jsd" : { + "type" : "ControlElement", + "id" : "acm006301jsd", + "name" : "setVisibleInTable" + }, + "acm006302jsd" : { + "type" : "ControlElement", + "id" : "acm006302jsd", + "name" : "isVisibleInTable" + }, + "acm006303jsd" : { + "type" : "ClassUnit", + "id" : "acm006303jsd", + "name" : "RightClickMenuItem", + "compilationUnitId" : "acm006279jsd", + "parentDatatypeId" : "acm006298jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006448jsd" ], + "content" : [ "acm006299jsd", "acm006300jsd", "acm006301jsd", "acm006302jsd" ] + }, + "acm006304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006304jsd", + "name" : "MainTablePreferences", + "parentId" : "acm006144jsd", + "content" : [ "acm006317jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006305jsd" : { + "type" : "CodePackage", + "id" : "acm006305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006306jsd" ] + }, + "acm006306jsd" : { + "type" : "CodePackage", + "id" : "acm006306jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006307jsd" ] + }, + "acm006307jsd" : { + "type" : "CodePackage", + "id" : "acm006307jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006308jsd" ] + }, + "acm006308jsd" : { + "type" : "CodePackage", + "id" : "acm006308jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006304jsd" ] + }, + "acm006309jsd" : { + "type" : "ControlElement", + "id" : "acm006309jsd", + "name" : "MainTablePreferences" + }, + "acm006310jsd" : { + "type" : "ControlElement", + "id" : "acm006310jsd", + "name" : "getColumnPreferences" + }, + "acm006311jsd" : { + "type" : "ControlElement", + "id" : "acm006311jsd", + "name" : "getResizeColumnsToFit" + }, + "acm006312jsd" : { + "type" : "ControlElement", + "id" : "acm006312jsd", + "name" : "resizeColumnsToFitProperty" + }, + "acm006313jsd" : { + "type" : "ControlElement", + "id" : "acm006313jsd", + "name" : "setResizeColumnsToFit" + }, + "acm006314jsd" : { + "type" : "ControlElement", + "id" : "acm006314jsd", + "name" : "getExtraFileColumnsEnabled" + }, + "acm006315jsd" : { + "type" : "ControlElement", + "id" : "acm006315jsd", + "name" : "extraFileColumnsEnabledProperty" + }, + "acm006316jsd" : { + "type" : "ControlElement", + "id" : "acm006316jsd", + "name" : "setExtraFileColumnsEnabled" + }, + "acm006317jsd" : { + "type" : "ClassUnit", + "id" : "acm006317jsd", + "name" : "MainTablePreferences", + "compilationUnitId" : "acm006304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006175jsd" ], + "content" : [ "acm006309jsd", "acm006310jsd", "acm006311jsd", "acm006312jsd", "acm006313jsd", "acm006314jsd", "acm006315jsd", "acm006316jsd" ] + }, + "acm006318jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006318jsd", + "name" : "NameDisplayPreferences", + "parentId" : "acm006144jsd", + "content" : [ "acm006330jsd", "acm006331jsd", "acm006332jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006319jsd" : { + "type" : "CodePackage", + "id" : "acm006319jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006320jsd" ] + }, + "acm006320jsd" : { + "type" : "CodePackage", + "id" : "acm006320jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006321jsd" ] + }, + "acm006321jsd" : { + "type" : "CodePackage", + "id" : "acm006321jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006322jsd" ] + }, + "acm006322jsd" : { + "type" : "CodePackage", + "id" : "acm006322jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006318jsd" ] + }, + "acm006323jsd" : { + "type" : "ControlElement", + "id" : "acm006323jsd", + "name" : "NameDisplayPreferences" + }, + "acm006324jsd" : { + "type" : "ControlElement", + "id" : "acm006324jsd", + "name" : "getDisplayStyle" + }, + "acm006325jsd" : { + "type" : "ControlElement", + "id" : "acm006325jsd", + "name" : "displayStyleProperty" + }, + "acm006326jsd" : { + "type" : "ControlElement", + "id" : "acm006326jsd", + "name" : "setDisplayStyle" + }, + "acm006327jsd" : { + "type" : "ControlElement", + "id" : "acm006327jsd", + "name" : "getAbbreviationStyle" + }, + "acm006328jsd" : { + "type" : "ControlElement", + "id" : "acm006328jsd", + "name" : "abbreviationStyleProperty" + }, + "acm006329jsd" : { + "type" : "ControlElement", + "id" : "acm006329jsd", + "name" : "setAbbreviationStyle" + }, + "acm006330jsd" : { + "type" : "ClassUnit", + "id" : "acm006330jsd", + "name" : "NameDisplayPreferences", + "compilationUnitId" : "acm006318jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006331jsd", "acm006332jsd" ], + "content" : [ "acm006323jsd", "acm006324jsd", "acm006325jsd", "acm006326jsd", "acm006327jsd", "acm006328jsd", "acm006329jsd" ] + }, + "acm006331jsd" : { + "type" : "ClassUnit", + "id" : "acm006331jsd", + "name" : "DisplayStyle", + "compilationUnitId" : "acm006318jsd", + "parentDatatypeId" : "acm006330jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006332jsd" : { + "type" : "ClassUnit", + "id" : "acm006332jsd", + "name" : "AbbreviationStyle", + "compilationUnitId" : "acm006318jsd", + "parentDatatypeId" : "acm006330jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006333jsd", + "name" : "OpenExternalFileAction", + "parentId" : "acm006144jsd", + "content" : [ "acm006341jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006334jsd" : { + "type" : "CodePackage", + "id" : "acm006334jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006335jsd" ] + }, + "acm006335jsd" : { + "type" : "CodePackage", + "id" : "acm006335jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006336jsd" ] + }, + "acm006336jsd" : { + "type" : "CodePackage", + "id" : "acm006336jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006337jsd" ] + }, + "acm006337jsd" : { + "type" : "CodePackage", + "id" : "acm006337jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006333jsd" ] + }, + "acm006338jsd" : { + "type" : "ControlElement", + "id" : "acm006338jsd", + "name" : "OpenExternalFileAction" + }, + "acm006339jsd" : { + "type" : "ControlElement", + "id" : "acm006339jsd", + "name" : "OpenExternalFileAction" + }, + "acm006340jsd" : { + "type" : "ControlElement", + "id" : "acm006340jsd", + "name" : "execute" + }, + "acm006341jsd" : { + "type" : "ClassUnit", + "id" : "acm006341jsd", + "name" : "OpenExternalFileAction", + "compilationUnitId" : "acm006333jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006338jsd", "acm006339jsd", "acm006340jsd" ] + }, + "acm006342jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006342jsd", + "name" : "OpenFolderAction", + "parentId" : "acm006144jsd", + "content" : [ "acm006350jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006343jsd" : { + "type" : "CodePackage", + "id" : "acm006343jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006344jsd" ] + }, + "acm006344jsd" : { + "type" : "CodePackage", + "id" : "acm006344jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006345jsd" ] + }, + "acm006345jsd" : { + "type" : "CodePackage", + "id" : "acm006345jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006346jsd" ] + }, + "acm006346jsd" : { + "type" : "CodePackage", + "id" : "acm006346jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006342jsd" ] + }, + "acm006347jsd" : { + "type" : "ControlElement", + "id" : "acm006347jsd", + "name" : "OpenFolderAction" + }, + "acm006348jsd" : { + "type" : "ControlElement", + "id" : "acm006348jsd", + "name" : "OpenFolderAction" + }, + "acm006349jsd" : { + "type" : "ControlElement", + "id" : "acm006349jsd", + "name" : "execute" + }, + "acm006350jsd" : { + "type" : "ClassUnit", + "id" : "acm006350jsd", + "name" : "OpenFolderAction", + "compilationUnitId" : "acm006342jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm018267jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006347jsd", "acm006348jsd", "acm006349jsd" ] + }, + "acm006351jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006351jsd", + "name" : "OpenUrlAction", + "parentId" : "acm006144jsd", + "content" : [ "acm006358jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006352jsd" : { + "type" : "CodePackage", + "id" : "acm006352jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006353jsd" ] + }, + "acm006353jsd" : { + "type" : "CodePackage", + "id" : "acm006353jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006354jsd" ] + }, + "acm006354jsd" : { + "type" : "CodePackage", + "id" : "acm006354jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006355jsd" ] + }, + "acm006355jsd" : { + "type" : "CodePackage", + "id" : "acm006355jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006351jsd" ] + }, + "acm006356jsd" : { + "type" : "ControlElement", + "id" : "acm006356jsd", + "name" : "OpenUrlAction" + }, + "acm006357jsd" : { + "type" : "ControlElement", + "id" : "acm006357jsd", + "name" : "execute" + }, + "acm006358jsd" : { + "type" : "ClassUnit", + "id" : "acm006358jsd", + "name" : "OpenUrlAction", + "compilationUnitId" : "acm006351jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm021206jsd" ], + "content" : [ "acm006356jsd", "acm006357jsd" ] + }, + "acm006359jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006359jsd", + "name" : "PersistenceVisualStateTable", + "parentId" : "acm006144jsd", + "content" : [ "acm006367jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006360jsd" : { + "type" : "CodePackage", + "id" : "acm006360jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006361jsd" ] + }, + "acm006361jsd" : { + "type" : "CodePackage", + "id" : "acm006361jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006362jsd" ] + }, + "acm006362jsd" : { + "type" : "CodePackage", + "id" : "acm006362jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006363jsd" ] + }, + "acm006363jsd" : { + "type" : "CodePackage", + "id" : "acm006363jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006359jsd" ] + }, + "acm006364jsd" : { + "type" : "ControlElement", + "id" : "acm006364jsd", + "name" : "PersistenceVisualStateTable" + }, + "acm006365jsd" : { + "type" : "ControlElement", + "id" : "acm006365jsd", + "name" : "updateColumns" + }, + "acm006366jsd" : { + "type" : "ControlElement", + "id" : "acm006366jsd", + "name" : "updateSortOrder" + }, + "acm006367jsd" : { + "type" : "ClassUnit", + "id" : "acm006367jsd", + "name" : "PersistenceVisualStateTable", + "compilationUnitId" : "acm006359jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006175jsd" ], + "content" : [ "acm006364jsd", "acm006365jsd", "acm006366jsd" ] + }, + "acm006368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006368jsd", + "name" : "RightClickMenu", + "parentId" : "acm006144jsd", + "content" : [ "acm006375jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006369jsd" : { + "type" : "CodePackage", + "id" : "acm006369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006370jsd" ] + }, + "acm006370jsd" : { + "type" : "CodePackage", + "id" : "acm006370jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006371jsd" ] + }, + "acm006371jsd" : { + "type" : "CodePackage", + "id" : "acm006371jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006372jsd" ] + }, + "acm006372jsd" : { + "type" : "CodePackage", + "id" : "acm006372jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006368jsd" ] + }, + "acm006373jsd" : { + "type" : "ControlElement", + "id" : "acm006373jsd", + "name" : "create" + }, + "acm006374jsd" : { + "type" : "ControlElement", + "id" : "acm006374jsd", + "name" : "createCopySubMenu" + }, + "acm006375jsd" : { + "type" : "ClassUnit", + "id" : "acm006375jsd", + "name" : "RightClickMenu", + "compilationUnitId" : "acm006368jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm001965jsd", "acm002004jsd", "acm002045jsd", "acm002087jsd", "acm003303jsd", "acm003312jsd", "acm003994jsd", "acm005802jsd", "acm006059jsd", "acm006068jsd", "acm006156jsd", "acm006341jsd", "acm006350jsd", "acm006358jsd", "acm006383jsd", "acm006481jsd", "acm006559jsd", "acm006591jsd", "acm008507jsd", "acm009965jsd", "acm011087jsd", "acm018333jsd", "acm021206jsd", "acm021224jsd" ], + "content" : [ "acm006373jsd", "acm006374jsd" ] + }, + "acm006376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006376jsd", + "name" : "SearchShortScienceAction", + "parentId" : "acm006144jsd", + "content" : [ "acm006383jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006377jsd" : { + "type" : "CodePackage", + "id" : "acm006377jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006378jsd" ] + }, + "acm006378jsd" : { + "type" : "CodePackage", + "id" : "acm006378jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006379jsd" ] + }, + "acm006379jsd" : { + "type" : "CodePackage", + "id" : "acm006379jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006380jsd" ] + }, + "acm006380jsd" : { + "type" : "CodePackage", + "id" : "acm006380jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006376jsd" ] + }, + "acm006381jsd" : { + "type" : "ControlElement", + "id" : "acm006381jsd", + "name" : "SearchShortScienceAction" + }, + "acm006382jsd" : { + "type" : "ControlElement", + "id" : "acm006382jsd", + "name" : "execute" + }, + "acm006383jsd" : { + "type" : "ClassUnit", + "id" : "acm006383jsd", + "name" : "SearchShortScienceAction", + "compilationUnitId" : "acm006376jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm021206jsd" ], + "content" : [ "acm006381jsd", "acm006382jsd" ] + }, + "acm006384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006384jsd", + "name" : "SmartConstrainedResizePolicy", + "parentId" : "acm006144jsd", + "content" : [ "acm006395jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006385jsd" : { + "type" : "CodePackage", + "id" : "acm006385jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006386jsd" ] + }, + "acm006386jsd" : { + "type" : "CodePackage", + "id" : "acm006386jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006387jsd" ] + }, + "acm006387jsd" : { + "type" : "CodePackage", + "id" : "acm006387jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006388jsd" ] + }, + "acm006388jsd" : { + "type" : "CodePackage", + "id" : "acm006388jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006384jsd" ] + }, + "acm006389jsd" : { + "type" : "ControlElement", + "id" : "acm006389jsd", + "name" : "call" + }, + "acm006390jsd" : { + "type" : "ControlElement", + "id" : "acm006390jsd", + "name" : "initColumnSize" + }, + "acm006391jsd" : { + "type" : "ControlElement", + "id" : "acm006391jsd", + "name" : "resize" + }, + "acm006392jsd" : { + "type" : "ControlElement", + "id" : "acm006392jsd", + "name" : "constrainedResize" + }, + "acm006393jsd" : { + "type" : "ControlElement", + "id" : "acm006393jsd", + "name" : "constrainedResize" + }, + "acm006394jsd" : { + "type" : "ControlElement", + "id" : "acm006394jsd", + "name" : "getContentWidth" + }, + "acm006395jsd" : { + "type" : "ClassUnit", + "id" : "acm006395jsd", + "name" : "SmartConstrainedResizePolicy", + "compilationUnitId" : "acm006384jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006395jsd" ], + "content" : [ "acm006389jsd", "acm006390jsd", "acm006391jsd", "acm006392jsd", "acm006393jsd", "acm006394jsd" ] + }, + "acm006396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006396jsd", + "name" : "FieldColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006405jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006397jsd" : { + "type" : "CodePackage", + "id" : "acm006397jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006398jsd" ] + }, + "acm006398jsd" : { + "type" : "CodePackage", + "id" : "acm006398jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006399jsd" ] + }, + "acm006399jsd" : { + "type" : "CodePackage", + "id" : "acm006399jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006400jsd" ] + }, + "acm006400jsd" : { + "type" : "CodePackage", + "id" : "acm006400jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006401jsd" ] + }, + "acm006401jsd" : { + "type" : "CodePackage", + "id" : "acm006401jsd", + "name" : "columns", + "parentId" : "acm006144jsd", + "content" : [ "acm006396jsd", "acm006406jsd", "acm006419jsd", "acm006428jsd", "acm006439jsd", "acm006449jsd" ] + }, + "acm006402jsd" : { + "type" : "ControlElement", + "id" : "acm006402jsd", + "name" : "FieldColumn" + }, + "acm006403jsd" : { + "type" : "ControlElement", + "id" : "acm006403jsd", + "name" : "getDisplayName" + }, + "acm006404jsd" : { + "type" : "ControlElement", + "id" : "acm006404jsd", + "name" : "getFieldValue" + }, + "acm006405jsd" : { + "type" : "ClassUnit", + "id" : "acm006405jsd", + "name" : "FieldColumn", + "compilationUnitId" : "acm006396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006250jsd", "acm010157jsd", "acm018673jsd", "acm018754jsd", "acm018813jsd" ], + "content" : [ "acm006402jsd", "acm006403jsd", "acm006404jsd" ] + }, + "acm006406jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006406jsd", + "name" : "FileColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006418jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006407jsd" : { + "type" : "CodePackage", + "id" : "acm006407jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006408jsd" ] + }, + "acm006408jsd" : { + "type" : "CodePackage", + "id" : "acm006408jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006409jsd" ] + }, + "acm006409jsd" : { + "type" : "CodePackage", + "id" : "acm006409jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006410jsd" ] + }, + "acm006410jsd" : { + "type" : "CodePackage", + "id" : "acm006410jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006411jsd" ] + }, + "acm006411jsd" : { + "type" : "CodePackage", + "id" : "acm006411jsd", + "name" : "columns", + "parentId" : null, + "content" : [ "acm006406jsd" ] + }, + "acm006412jsd" : { + "type" : "ControlElement", + "id" : "acm006412jsd", + "name" : "FileColumn" + }, + "acm006413jsd" : { + "type" : "ControlElement", + "id" : "acm006413jsd", + "name" : "FileColumn" + }, + "acm006414jsd" : { + "type" : "ControlElement", + "id" : "acm006414jsd", + "name" : "setCommonSettings" + }, + "acm006415jsd" : { + "type" : "ControlElement", + "id" : "acm006415jsd", + "name" : "createFileTooltip" + }, + "acm006416jsd" : { + "type" : "ControlElement", + "id" : "acm006416jsd", + "name" : "createFileMenu" + }, + "acm006417jsd" : { + "type" : "ControlElement", + "id" : "acm006417jsd", + "name" : "createFileIcon" + }, + "acm006418jsd" : { + "type" : "ClassUnit", + "id" : "acm006418jsd", + "name" : "FileColumn", + "compilationUnitId" : "acm006406jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004599jsd", "acm006156jsd", "acm006250jsd", "acm018022jsd", "acm018509jsd", "acm021206jsd" ], + "content" : [ "acm006412jsd", "acm006413jsd", "acm006414jsd", "acm006415jsd", "acm006416jsd", "acm006417jsd" ] + }, + "acm006419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006419jsd", + "name" : "LibraryColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006427jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006420jsd" : { + "type" : "CodePackage", + "id" : "acm006420jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006421jsd" ] + }, + "acm006421jsd" : { + "type" : "CodePackage", + "id" : "acm006421jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006422jsd" ] + }, + "acm006422jsd" : { + "type" : "CodePackage", + "id" : "acm006422jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006423jsd" ] + }, + "acm006423jsd" : { + "type" : "CodePackage", + "id" : "acm006423jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006424jsd" ] + }, + "acm006424jsd" : { + "type" : "CodePackage", + "id" : "acm006424jsd", + "name" : "columns", + "parentId" : null, + "content" : [ "acm006419jsd" ] + }, + "acm006425jsd" : { + "type" : "ControlElement", + "id" : "acm006425jsd", + "name" : "LibraryColumn" + }, + "acm006426jsd" : { + "type" : "ControlElement", + "id" : "acm006426jsd", + "name" : "LibraryColumn" + }, + "acm006427jsd" : { + "type" : "ClassUnit", + "id" : "acm006427jsd", + "name" : "LibraryColumn", + "compilationUnitId" : "acm006419jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006250jsd" ], + "content" : [ "acm006425jsd", "acm006426jsd" ] + }, + "acm006428jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006428jsd", + "name" : "LinkedIdentifierColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006438jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006429jsd" : { + "type" : "CodePackage", + "id" : "acm006429jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006430jsd" ] + }, + "acm006430jsd" : { + "type" : "CodePackage", + "id" : "acm006430jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006431jsd" ] + }, + "acm006431jsd" : { + "type" : "CodePackage", + "id" : "acm006431jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006432jsd" ] + }, + "acm006432jsd" : { + "type" : "CodePackage", + "id" : "acm006432jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006433jsd" ] + }, + "acm006433jsd" : { + "type" : "CodePackage", + "id" : "acm006433jsd", + "name" : "columns", + "parentId" : null, + "content" : [ "acm006428jsd" ] + }, + "acm006434jsd" : { + "type" : "ControlElement", + "id" : "acm006434jsd", + "name" : "LinkedIdentifierColumn" + }, + "acm006435jsd" : { + "type" : "ControlElement", + "id" : "acm006435jsd", + "name" : "createIdentifierGraphic" + }, + "acm006436jsd" : { + "type" : "ControlElement", + "id" : "acm006436jsd", + "name" : "createIdentifierTooltip" + }, + "acm006437jsd" : { + "type" : "ControlElement", + "id" : "acm006437jsd", + "name" : "createIdentifierMenu" + }, + "acm006438jsd" : { + "type" : "ClassUnit", + "id" : "acm006438jsd", + "name" : "LinkedIdentifierColumn", + "compilationUnitId" : "acm006428jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm006156jsd", "acm006164jsd", "acm006250jsd", "acm018022jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm006434jsd", "acm006435jsd", "acm006436jsd", "acm006437jsd" ] + }, + "acm006439jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006439jsd", + "name" : "MainTableColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006448jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006440jsd" : { + "type" : "CodePackage", + "id" : "acm006440jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006441jsd" ] + }, + "acm006441jsd" : { + "type" : "CodePackage", + "id" : "acm006441jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006442jsd" ] + }, + "acm006442jsd" : { + "type" : "CodePackage", + "id" : "acm006442jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006443jsd" ] + }, + "acm006443jsd" : { + "type" : "CodePackage", + "id" : "acm006443jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006444jsd" ] + }, + "acm006444jsd" : { + "type" : "CodePackage", + "id" : "acm006444jsd", + "name" : "columns", + "parentId" : null, + "content" : [ "acm006439jsd" ] + }, + "acm006445jsd" : { + "type" : "ControlElement", + "id" : "acm006445jsd", + "name" : "MainTableColumn" + }, + "acm006446jsd" : { + "type" : "ControlElement", + "id" : "acm006446jsd", + "name" : "getModel" + }, + "acm006447jsd" : { + "type" : "ControlElement", + "id" : "acm006447jsd", + "name" : "getDisplayName" + }, + "acm006448jsd" : { + "type" : "ClassUnit", + "id" : "acm006448jsd", + "name" : "MainTableColumn", + "compilationUnitId" : "acm006439jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006250jsd" ], + "content" : [ "acm006445jsd", "acm006446jsd", "acm006447jsd" ] + }, + "acm006449jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006449jsd", + "name" : "SpecialFieldColumn", + "parentId" : "acm006401jsd", + "content" : [ "acm006459jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "maintable", "columns" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006450jsd" : { + "type" : "CodePackage", + "id" : "acm006450jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006451jsd" ] + }, + "acm006451jsd" : { + "type" : "CodePackage", + "id" : "acm006451jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006452jsd" ] + }, + "acm006452jsd" : { + "type" : "CodePackage", + "id" : "acm006452jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006453jsd" ] + }, + "acm006453jsd" : { + "type" : "CodePackage", + "id" : "acm006453jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm006454jsd" ] + }, + "acm006454jsd" : { + "type" : "CodePackage", + "id" : "acm006454jsd", + "name" : "columns", + "parentId" : null, + "content" : [ "acm006449jsd" ] + }, + "acm006455jsd" : { + "type" : "ControlElement", + "id" : "acm006455jsd", + "name" : "SpecialFieldColumn" + }, + "acm006456jsd" : { + "type" : "ControlElement", + "id" : "acm006456jsd", + "name" : "createSpecialRating" + }, + "acm006457jsd" : { + "type" : "ControlElement", + "id" : "acm006457jsd", + "name" : "createSpecialFieldMenu" + }, + "acm006458jsd" : { + "type" : "ControlElement", + "id" : "acm006458jsd", + "name" : "createSpecialFieldIcon" + }, + "acm006459jsd" : { + "type" : "ClassUnit", + "id" : "acm006459jsd", + "name" : "SpecialFieldColumn", + "compilationUnitId" : "acm006449jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006250jsd", "acm009156jsd", "acm009172jsd", "acm009925jsd", "acm010165jsd", "acm010173jsd", "acm018267jsd", "acm018770jsd", "acm021206jsd" ], + "content" : [ "acm006455jsd", "acm006456jsd", "acm006457jsd", "acm006458jsd" ] + }, + "acm006460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006460jsd", + "name" : "ChangeEntryTypeAction", + "parentId" : "acm006464jsd", + "content" : [ "acm006469jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "menus" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006461jsd" : { + "type" : "CodePackage", + "id" : "acm006461jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006462jsd" ] + }, + "acm006462jsd" : { + "type" : "CodePackage", + "id" : "acm006462jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006463jsd" ] + }, + "acm006463jsd" : { + "type" : "CodePackage", + "id" : "acm006463jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006464jsd" ] + }, + "acm006464jsd" : { + "type" : "CodePackage", + "id" : "acm006464jsd", + "name" : "menus", + "parentId" : "acm001569jsd", + "content" : [ "acm006460jsd", "acm006470jsd", "acm006482jsd" ] + }, + "acm006465jsd" : { + "type" : "ControlElement", + "id" : "acm006465jsd", + "name" : "ChangeEntryTypeAction" + }, + "acm006466jsd" : { + "type" : "ControlElement", + "id" : "acm006466jsd", + "name" : "execute" + }, + "acm006467jsd" : { + "type" : "ControlElement", + "id" : "acm006467jsd", + "name" : "getStatusMessage" + }, + "acm006468jsd" : { + "type" : "ControlElement", + "id" : "acm006468jsd", + "name" : "statusMessageProperty" + }, + "acm006469jsd" : { + "type" : "ClassUnit", + "id" : "acm006469jsd", + "name" : "ChangeEntryTypeAction", + "compilationUnitId" : "acm006460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009381jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm006465jsd", "acm006466jsd", "acm006467jsd", "acm006468jsd" ] + }, + "acm006470jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006470jsd", + "name" : "ChangeEntryTypeMenu", + "parentId" : "acm006464jsd", + "content" : [ "acm006481jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "menus" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006471jsd" : { + "type" : "CodePackage", + "id" : "acm006471jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006472jsd" ] + }, + "acm006472jsd" : { + "type" : "CodePackage", + "id" : "acm006472jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006473jsd" ] + }, + "acm006473jsd" : { + "type" : "CodePackage", + "id" : "acm006473jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006474jsd" ] + }, + "acm006474jsd" : { + "type" : "CodePackage", + "id" : "acm006474jsd", + "name" : "menus", + "parentId" : null, + "content" : [ "acm006470jsd" ] + }, + "acm006475jsd" : { + "type" : "ControlElement", + "id" : "acm006475jsd", + "name" : "ChangeEntryTypeMenu" + }, + "acm006476jsd" : { + "type" : "ControlElement", + "id" : "acm006476jsd", + "name" : "asContextMenu" + }, + "acm006477jsd" : { + "type" : "ControlElement", + "id" : "acm006477jsd", + "name" : "asSubMenu" + }, + "acm006478jsd" : { + "type" : "ControlElement", + "id" : "acm006478jsd", + "name" : "getMenuItems" + }, + "acm006479jsd" : { + "type" : "ControlElement", + "id" : "acm006479jsd", + "name" : "createSubMenu" + }, + "acm006480jsd" : { + "type" : "ControlElement", + "id" : "acm006480jsd", + "name" : "fromEntryTypes" + }, + "acm006481jsd" : { + "type" : "ClassUnit", + "id" : "acm006481jsd", + "name" : "ChangeEntryTypeMenu", + "compilationUnitId" : "acm006470jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005802jsd", "acm018022jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd" ], + "content" : [ "acm006475jsd", "acm006476jsd", "acm006477jsd", "acm006478jsd", "acm006479jsd", "acm006480jsd" ] + }, + "acm006482jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006482jsd", + "name" : "FileHistoryMenu", + "parentId" : "acm006464jsd", + "content" : [ "acm006493jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "menus" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006483jsd" : { + "type" : "CodePackage", + "id" : "acm006483jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006484jsd" ] + }, + "acm006484jsd" : { + "type" : "CodePackage", + "id" : "acm006484jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006485jsd" ] + }, + "acm006485jsd" : { + "type" : "CodePackage", + "id" : "acm006485jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006486jsd" ] + }, + "acm006486jsd" : { + "type" : "CodePackage", + "id" : "acm006486jsd", + "name" : "menus", + "parentId" : null, + "content" : [ "acm006482jsd" ] + }, + "acm006487jsd" : { + "type" : "ControlElement", + "id" : "acm006487jsd", + "name" : "FileHistoryMenu" + }, + "acm006488jsd" : { + "type" : "ControlElement", + "id" : "acm006488jsd", + "name" : "openFileByKey" + }, + "acm006489jsd" : { + "type" : "ControlElement", + "id" : "acm006489jsd", + "name" : "newFile" + }, + "acm006490jsd" : { + "type" : "ControlElement", + "id" : "acm006490jsd", + "name" : "setItems" + }, + "acm006491jsd" : { + "type" : "ControlElement", + "id" : "acm006491jsd", + "name" : "addItem" + }, + "acm006492jsd" : { + "type" : "ControlElement", + "id" : "acm006492jsd", + "name" : "openFile" + }, + "acm006493jsd" : { + "type" : "ClassUnit", + "id" : "acm006493jsd", + "name" : "FileHistoryMenu", + "compilationUnitId" : "acm006482jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005648jsd", "acm017507jsd" ], + "content" : [ "acm006487jsd", "acm006488jsd", "acm006489jsd", "acm006490jsd", "acm006491jsd", "acm006492jsd" ] + }, + "acm006494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006494jsd", + "name" : "DiffHighlighting", + "parentId" : "acm006498jsd", + "content" : [ "acm006506jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006495jsd" : { + "type" : "CodePackage", + "id" : "acm006495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006496jsd" ] + }, + "acm006496jsd" : { + "type" : "CodePackage", + "id" : "acm006496jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006497jsd" ] + }, + "acm006497jsd" : { + "type" : "CodePackage", + "id" : "acm006497jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006498jsd" ] + }, + "acm006498jsd" : { + "type" : "CodePackage", + "id" : "acm006498jsd", + "name" : "mergeentries", + "parentId" : "acm001569jsd", + "content" : [ "acm006494jsd", "acm006507jsd", "acm006526jsd", "acm006535jsd", "acm006540jsd", "acm006552jsd", "acm006560jsd", "acm006571jsd", "acm006576jsd", "acm006584jsd", "acm006592jsd", "acm006618jsd", "acm021863jsd", "acm021883jsd", "acm021906jsd", "acm021915jsd", "acm021930jsd", "acm006646jsd" ] + }, + "acm006499jsd" : { + "type" : "ControlElement", + "id" : "acm006499jsd", + "name" : "DiffHighlighting" + }, + "acm006500jsd" : { + "type" : "ControlElement", + "id" : "acm006500jsd", + "name" : "generateDiffHighlighting" + }, + "acm006501jsd" : { + "type" : "ControlElement", + "id" : "acm006501jsd", + "name" : "forChanged" + }, + "acm006502jsd" : { + "type" : "ControlElement", + "id" : "acm006502jsd", + "name" : "forUnchanged" + }, + "acm006503jsd" : { + "type" : "ControlElement", + "id" : "acm006503jsd", + "name" : "forAdded" + }, + "acm006504jsd" : { + "type" : "ControlElement", + "id" : "acm006504jsd", + "name" : "forRemoved" + }, + "acm006505jsd" : { + "type" : "ControlElement", + "id" : "acm006505jsd", + "name" : "generateSymmetricHighlighting" + }, + "acm006506jsd" : { + "type" : "ClassUnit", + "id" : "acm006506jsd", + "name" : "DiffHighlighting", + "compilationUnitId" : "acm006494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006506jsd" ], + "content" : [ "acm006499jsd", "acm006500jsd", "acm006501jsd", "acm006502jsd", "acm006503jsd", "acm006504jsd", "acm006505jsd" ] + }, + "acm006507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006507jsd", + "name" : "DiffHighlightingEllipsingTextFlow", + "parentId" : "acm006498jsd", + "content" : [ "acm006525jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006508jsd" : { + "type" : "CodePackage", + "id" : "acm006508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006509jsd" ] + }, + "acm006509jsd" : { + "type" : "CodePackage", + "id" : "acm006509jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006510jsd" ] + }, + "acm006510jsd" : { + "type" : "CodePackage", + "id" : "acm006510jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006511jsd" ] + }, + "acm006511jsd" : { + "type" : "CodePackage", + "id" : "acm006511jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006507jsd" ] + }, + "acm006512jsd" : { + "type" : "ControlElement", + "id" : "acm006512jsd", + "name" : "DiffHighlightingEllipsingTextFlow" + }, + "acm006513jsd" : { + "type" : "ControlElement", + "id" : "acm006513jsd", + "name" : "getChildren" + }, + "acm006514jsd" : { + "type" : "ControlElement", + "id" : "acm006514jsd", + "name" : "adjustChildren" + }, + "acm006515jsd" : { + "type" : "ControlElement", + "id" : "acm006515jsd", + "name" : "adjustText" + }, + "acm006516jsd" : { + "type" : "ControlElement", + "id" : "acm006516jsd", + "name" : "removeUntilTextFits" + }, + "acm006517jsd" : { + "type" : "ControlElement", + "id" : "acm006517jsd", + "name" : "fillUntilOverflowing" + }, + "acm006518jsd" : { + "type" : "ControlElement", + "id" : "acm006518jsd", + "name" : "ellipseUntilTextFits" + }, + "acm006519jsd" : { + "type" : "ControlElement", + "id" : "acm006519jsd", + "name" : "highlightDiff" + }, + "acm006520jsd" : { + "type" : "ControlElement", + "id" : "acm006520jsd", + "name" : "ellipseString" + }, + "acm006521jsd" : { + "type" : "ControlElement", + "id" : "acm006521jsd", + "name" : "setEllipsisString" + }, + "acm006522jsd" : { + "type" : "ControlElement", + "id" : "acm006522jsd", + "name" : "getEllipsisString" + }, + "acm006523jsd" : { + "type" : "ControlElement", + "id" : "acm006523jsd", + "name" : "ellipsisStringProperty" + }, + "acm006524jsd" : { + "type" : "ControlElement", + "id" : "acm006524jsd", + "name" : "getFullText" + }, + "acm006525jsd" : { + "type" : "ClassUnit", + "id" : "acm006525jsd", + "name" : "DiffHighlightingEllipsingTextFlow", + "compilationUnitId" : "acm006507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006534jsd" ], + "content" : [ "acm006512jsd", "acm006513jsd", "acm006514jsd", "acm006515jsd", "acm006516jsd", "acm006517jsd", "acm006518jsd", "acm006519jsd", "acm006520jsd", "acm006521jsd", "acm006522jsd", "acm006523jsd", "acm006524jsd" ] + }, + "acm006526jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006526jsd", + "name" : "DiffMode", + "parentId" : "acm006498jsd", + "content" : [ "acm006534jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006527jsd" : { + "type" : "CodePackage", + "id" : "acm006527jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006528jsd" ] + }, + "acm006528jsd" : { + "type" : "CodePackage", + "id" : "acm006528jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006529jsd" ] + }, + "acm006529jsd" : { + "type" : "CodePackage", + "id" : "acm006529jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006530jsd" ] + }, + "acm006530jsd" : { + "type" : "CodePackage", + "id" : "acm006530jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006526jsd" ] + }, + "acm006531jsd" : { + "type" : "ControlElement", + "id" : "acm006531jsd", + "name" : "DiffMode" + }, + "acm006532jsd" : { + "type" : "ControlElement", + "id" : "acm006532jsd", + "name" : "parse" + }, + "acm006533jsd" : { + "type" : "ControlElement", + "id" : "acm006533jsd", + "name" : "getDisplayText" + }, + "acm006534jsd" : { + "type" : "ClassUnit", + "id" : "acm006534jsd", + "name" : "DiffMode", + "compilationUnitId" : "acm006526jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006534jsd" ], + "content" : [ "acm006531jsd", "acm006532jsd", "acm006533jsd" ] + }, + "acm006535jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006535jsd", + "name" : "EntriesMergeResult", + "parentId" : "acm006498jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006536jsd" : { + "type" : "CodePackage", + "id" : "acm006536jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006537jsd" ] + }, + "acm006537jsd" : { + "type" : "CodePackage", + "id" : "acm006537jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006538jsd" ] + }, + "acm006538jsd" : { + "type" : "CodePackage", + "id" : "acm006538jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006539jsd" ] + }, + "acm006539jsd" : { + "type" : "CodePackage", + "id" : "acm006539jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006535jsd" ] + }, + "acm006540jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006540jsd", + "name" : "FetchAndMergeEntry", + "parentId" : "acm006498jsd", + "content" : [ "acm006551jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006541jsd" : { + "type" : "CodePackage", + "id" : "acm006541jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006542jsd" ] + }, + "acm006542jsd" : { + "type" : "CodePackage", + "id" : "acm006542jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006543jsd" ] + }, + "acm006543jsd" : { + "type" : "CodePackage", + "id" : "acm006543jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006544jsd" ] + }, + "acm006544jsd" : { + "type" : "CodePackage", + "id" : "acm006544jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006540jsd" ] + }, + "acm006545jsd" : { + "type" : "ControlElement", + "id" : "acm006545jsd", + "name" : "FetchAndMergeEntry" + }, + "acm006546jsd" : { + "type" : "ControlElement", + "id" : "acm006546jsd", + "name" : "fetchAndMerge" + }, + "acm006547jsd" : { + "type" : "ControlElement", + "id" : "acm006547jsd", + "name" : "fetchAndMerge" + }, + "acm006548jsd" : { + "type" : "ControlElement", + "id" : "acm006548jsd", + "name" : "fetchAndMerge" + }, + "acm006549jsd" : { + "type" : "ControlElement", + "id" : "acm006549jsd", + "name" : "showMergeDialog" + }, + "acm006550jsd" : { + "type" : "ControlElement", + "id" : "acm006550jsd", + "name" : "fetchAndMerge" + }, + "acm006551jsd" : { + "type" : "ClassUnit", + "id" : "acm006551jsd", + "name" : "FetchAndMergeEntry", + "compilationUnitId" : "acm006540jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm006551jsd", "acm006570jsd", "acm009381jsd", "acm009400jsd", "acm009411jsd", "acm009965jsd", "acm012286jsd", "acm012360jsd", "acm012591jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd", "acm020774jsd", "acm021206jsd" ], + "content" : [ "acm006545jsd", "acm006546jsd", "acm006547jsd", "acm006548jsd", "acm006549jsd", "acm006550jsd" ] + }, + "acm006552jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006552jsd", + "name" : "MergeEntriesAction", + "parentId" : "acm006498jsd", + "content" : [ "acm006559jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006553jsd" : { + "type" : "CodePackage", + "id" : "acm006553jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006554jsd" ] + }, + "acm006554jsd" : { + "type" : "CodePackage", + "id" : "acm006554jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006555jsd" ] + }, + "acm006555jsd" : { + "type" : "CodePackage", + "id" : "acm006555jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006556jsd" ] + }, + "acm006556jsd" : { + "type" : "CodePackage", + "id" : "acm006556jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006552jsd" ] + }, + "acm006557jsd" : { + "type" : "ControlElement", + "id" : "acm006557jsd", + "name" : "MergeEntriesAction" + }, + "acm006558jsd" : { + "type" : "ControlElement", + "id" : "acm006558jsd", + "name" : "execute" + }, + "acm006559jsd" : { + "type" : "ClassUnit", + "id" : "acm006559jsd", + "name" : "MergeEntriesAction", + "compilationUnitId" : "acm006552jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm006570jsd", "acm010599jsd", "acm018267jsd", "acm020774jsd" ], + "content" : [ "acm006557jsd", "acm006558jsd" ] + }, + "acm006560jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006560jsd", + "name" : "MergeEntriesDialog", + "parentId" : "acm006498jsd", + "content" : [ "acm006570jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006561jsd" : { + "type" : "CodePackage", + "id" : "acm006561jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006562jsd" ] + }, + "acm006562jsd" : { + "type" : "CodePackage", + "id" : "acm006562jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006563jsd" ] + }, + "acm006563jsd" : { + "type" : "CodePackage", + "id" : "acm006563jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006564jsd" ] + }, + "acm006564jsd" : { + "type" : "CodePackage", + "id" : "acm006564jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006560jsd" ] + }, + "acm006565jsd" : { + "type" : "ControlElement", + "id" : "acm006565jsd", + "name" : "MergeEntriesDialog" + }, + "acm006566jsd" : { + "type" : "ControlElement", + "id" : "acm006566jsd", + "name" : "init" + }, + "acm006567jsd" : { + "type" : "ControlElement", + "id" : "acm006567jsd", + "name" : "setLeftHeaderText" + }, + "acm006568jsd" : { + "type" : "ControlElement", + "id" : "acm006568jsd", + "name" : "setRightHeaderText" + }, + "acm006569jsd" : { + "type" : "ControlElement", + "id" : "acm006569jsd", + "name" : "configureDiff" + }, + "acm006570jsd" : { + "type" : "ClassUnit", + "id" : "acm006570jsd", + "name" : "MergeEntriesDialog", + "compilationUnitId" : "acm006560jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006775jsd", "acm018267jsd", "acm020774jsd" ], + "content" : [ "acm006565jsd", "acm006566jsd", "acm006567jsd", "acm006568jsd", "acm006569jsd" ] + }, + "acm006571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006571jsd", + "name" : "MergeResult", + "parentId" : "acm006498jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006572jsd" : { + "type" : "CodePackage", + "id" : "acm006572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006573jsd" ] + }, + "acm006573jsd" : { + "type" : "CodePackage", + "id" : "acm006573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006574jsd" ] + }, + "acm006574jsd" : { + "type" : "CodePackage", + "id" : "acm006574jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006575jsd" ] + }, + "acm006575jsd" : { + "type" : "CodePackage", + "id" : "acm006575jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006571jsd" ] + }, + "acm006576jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006576jsd", + "name" : "MergeTwoEntriesAction", + "parentId" : "acm006498jsd", + "content" : [ "acm006583jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006577jsd" : { + "type" : "CodePackage", + "id" : "acm006577jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006578jsd" ] + }, + "acm006578jsd" : { + "type" : "CodePackage", + "id" : "acm006578jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006579jsd" ] + }, + "acm006579jsd" : { + "type" : "CodePackage", + "id" : "acm006579jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006580jsd" ] + }, + "acm006580jsd" : { + "type" : "CodePackage", + "id" : "acm006580jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006576jsd" ] + }, + "acm006581jsd" : { + "type" : "ControlElement", + "id" : "acm006581jsd", + "name" : "MergeTwoEntriesAction" + }, + "acm006582jsd" : { + "type" : "ControlElement", + "id" : "acm006582jsd", + "name" : "execute" + }, + "acm006583jsd" : { + "type" : "ClassUnit", + "id" : "acm006583jsd", + "name" : "MergeTwoEntriesAction", + "compilationUnitId" : "acm006576jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm009381jsd", "acm009423jsd", "acm009466jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm006581jsd", "acm006582jsd" ] + }, + "acm006584jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006584jsd", + "name" : "MergeWithFetchedEntryAction", + "parentId" : "acm006498jsd", + "content" : [ "acm006591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006585jsd" : { + "type" : "CodePackage", + "id" : "acm006585jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006586jsd" ] + }, + "acm006586jsd" : { + "type" : "CodePackage", + "id" : "acm006586jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006587jsd" ] + }, + "acm006587jsd" : { + "type" : "CodePackage", + "id" : "acm006587jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006588jsd" ] + }, + "acm006588jsd" : { + "type" : "CodePackage", + "id" : "acm006588jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006584jsd" ] + }, + "acm006589jsd" : { + "type" : "ControlElement", + "id" : "acm006589jsd", + "name" : "MergeWithFetchedEntryAction" + }, + "acm006590jsd" : { + "type" : "ControlElement", + "id" : "acm006590jsd", + "name" : "execute" + }, + "acm006591jsd" : { + "type" : "ClassUnit", + "id" : "acm006591jsd", + "name" : "MergeWithFetchedEntryAction", + "compilationUnitId" : "acm006584jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm006551jsd", "acm009965jsd", "acm018267jsd", "acm018754jsd", "acm021206jsd" ], + "content" : [ "acm006589jsd", "acm006590jsd" ] + }, + "acm006592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006592jsd", + "name" : "MultiMergeEntriesView", + "parentId" : "acm006498jsd", + "content" : [ "acm006611jsd", "acm006614jsd", "acm006617jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006593jsd" : { + "type" : "CodePackage", + "id" : "acm006593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006594jsd" ] + }, + "acm006594jsd" : { + "type" : "CodePackage", + "id" : "acm006594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006595jsd" ] + }, + "acm006595jsd" : { + "type" : "CodePackage", + "id" : "acm006595jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006596jsd" ] + }, + "acm006596jsd" : { + "type" : "CodePackage", + "id" : "acm006596jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006592jsd" ] + }, + "acm006597jsd" : { + "type" : "ControlElement", + "id" : "acm006597jsd", + "name" : "MultiMergeEntriesView" + }, + "acm006598jsd" : { + "type" : "ControlElement", + "id" : "acm006598jsd", + "name" : "initialize" + }, + "acm006599jsd" : { + "type" : "ControlElement", + "id" : "acm006599jsd", + "name" : "fillDiffModes" + }, + "acm006600jsd" : { + "type" : "ControlElement", + "id" : "acm006600jsd", + "name" : "addColumn" + }, + "acm006601jsd" : { + "type" : "ControlElement", + "id" : "acm006601jsd", + "name" : "generateEntryHeader" + }, + "acm006602jsd" : { + "type" : "ControlElement", + "id" : "acm006602jsd", + "name" : "writeBibEntryToColumn" + }, + "acm006603jsd" : { + "type" : "ControlElement", + "id" : "acm006603jsd", + "name" : "setupSourceButtonAction" + }, + "acm006604jsd" : { + "type" : "ControlElement", + "id" : "acm006604jsd", + "name" : "isMultilineField" + }, + "acm006605jsd" : { + "type" : "ControlElement", + "id" : "acm006605jsd", + "name" : "Cell" + }, + "acm006606jsd" : { + "type" : "ControlElement", + "id" : "acm006606jsd", + "name" : "getContent" + }, + "acm006607jsd" : { + "type" : "ControlElement", + "id" : "acm006607jsd", + "name" : "addSource" + }, + "acm006608jsd" : { + "type" : "ControlElement", + "id" : "acm006608jsd", + "name" : "addSource" + }, + "acm006609jsd" : { + "type" : "ControlElement", + "id" : "acm006609jsd", + "name" : "FieldRow" + }, + "acm006610jsd" : { + "type" : "ControlElement", + "id" : "acm006610jsd", + "name" : "addRow" + }, + "acm006611jsd" : { + "type" : "ClassUnit", + "id" : "acm006611jsd", + "name" : "MultiMergeEntriesView", + "compilationUnitId" : "acm006592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006534jsd", "acm006611jsd", "acm006614jsd", "acm006617jsd", "acm006634jsd", "acm006640jsd", "acm009965jsd", "acm010051jsd", "acm018267jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm006597jsd", "acm006598jsd", "acm006599jsd", "acm006600jsd", "acm006601jsd", "acm006602jsd", "acm006603jsd", "acm006604jsd", "acm006605jsd", "acm006606jsd", "acm006607jsd", "acm006608jsd", "acm006609jsd", "acm006610jsd" ] + }, + "acm006612jsd" : { + "type" : "ControlElement", + "id" : "acm006612jsd", + "name" : "Cell" + }, + "acm006613jsd" : { + "type" : "ControlElement", + "id" : "acm006613jsd", + "name" : "getContent" + }, + "acm006614jsd" : { + "type" : "ClassUnit", + "id" : "acm006614jsd", + "name" : "Cell", + "compilationUnitId" : "acm006592jsd", + "parentDatatypeId" : "acm006611jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm006612jsd", "acm006613jsd" ] + }, + "acm006615jsd" : { + "type" : "ControlElement", + "id" : "acm006615jsd", + "name" : "FieldRow" + }, + "acm006616jsd" : { + "type" : "ControlElement", + "id" : "acm006616jsd", + "name" : "addRow" + }, + "acm006617jsd" : { + "type" : "ClassUnit", + "id" : "acm006617jsd", + "name" : "FieldRow", + "compilationUnitId" : "acm006592jsd", + "parentDatatypeId" : "acm006611jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm006615jsd", "acm006616jsd" ] + }, + "acm006618jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006618jsd", + "name" : "MultiMergeEntriesViewModel", + "parentId" : "acm006498jsd", + "content" : [ "acm006634jsd", "acm006640jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006619jsd" : { + "type" : "CodePackage", + "id" : "acm006619jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006620jsd" ] + }, + "acm006620jsd" : { + "type" : "CodePackage", + "id" : "acm006620jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006621jsd" ] + }, + "acm006621jsd" : { + "type" : "CodePackage", + "id" : "acm006621jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006622jsd" ] + }, + "acm006622jsd" : { + "type" : "CodePackage", + "id" : "acm006622jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006618jsd" ] + }, + "acm006623jsd" : { + "type" : "ControlElement", + "id" : "acm006623jsd", + "name" : "addSource" + }, + "acm006624jsd" : { + "type" : "ControlElement", + "id" : "acm006624jsd", + "name" : "updateFields" + }, + "acm006625jsd" : { + "type" : "ControlElement", + "id" : "acm006625jsd", + "name" : "resultConverter" + }, + "acm006626jsd" : { + "type" : "ControlElement", + "id" : "acm006626jsd", + "name" : "entriesProperty" + }, + "acm006627jsd" : { + "type" : "ControlElement", + "id" : "acm006627jsd", + "name" : "mergedEntryProperty" + }, + "acm006628jsd" : { + "type" : "ControlElement", + "id" : "acm006628jsd", + "name" : "failedSuppliersProperty" + }, + "acm006629jsd" : { + "type" : "ControlElement", + "id" : "acm006629jsd", + "name" : "EntrySource" + }, + "acm006630jsd" : { + "type" : "ControlElement", + "id" : "acm006630jsd", + "name" : "EntrySource" + }, + "acm006631jsd" : { + "type" : "ControlElement", + "id" : "acm006631jsd", + "name" : "titleProperty" + }, + "acm006632jsd" : { + "type" : "ControlElement", + "id" : "acm006632jsd", + "name" : "entryProperty" + }, + "acm006633jsd" : { + "type" : "ControlElement", + "id" : "acm006633jsd", + "name" : "isLoadingProperty" + }, + "acm006634jsd" : { + "type" : "ClassUnit", + "id" : "acm006634jsd", + "name" : "MultiMergeEntriesViewModel", + "compilationUnitId" : "acm006618jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006640jsd", "acm009965jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm006623jsd", "acm006624jsd", "acm006625jsd", "acm006626jsd", "acm006627jsd", "acm006628jsd", "acm006629jsd", "acm006630jsd", "acm006631jsd", "acm006632jsd", "acm006633jsd" ] + }, + "acm006635jsd" : { + "type" : "ControlElement", + "id" : "acm006635jsd", + "name" : "EntrySource" + }, + "acm006636jsd" : { + "type" : "ControlElement", + "id" : "acm006636jsd", + "name" : "EntrySource" + }, + "acm006637jsd" : { + "type" : "ControlElement", + "id" : "acm006637jsd", + "name" : "titleProperty" + }, + "acm006638jsd" : { + "type" : "ControlElement", + "id" : "acm006638jsd", + "name" : "entryProperty" + }, + "acm006639jsd" : { + "type" : "ControlElement", + "id" : "acm006639jsd", + "name" : "isLoadingProperty" + }, + "acm006640jsd" : { + "type" : "ClassUnit", + "id" : "acm006640jsd", + "name" : "EntrySource", + "compilationUnitId" : "acm006618jsd", + "parentDatatypeId" : "acm006634jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009965jsd", "acm018267jsd" ], + "content" : [ "acm006635jsd", "acm006636jsd", "acm006637jsd", "acm006638jsd", "acm006639jsd" ] + }, + "acm006641jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006641jsd", + "name" : "DiffMethod", + "parentId" : "acm006646jsd", + "content" : [ "acm006648jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006642jsd" : { + "type" : "CodePackage", + "id" : "acm006642jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006643jsd" ] + }, + "acm006643jsd" : { + "type" : "CodePackage", + "id" : "acm006643jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006644jsd" ] + }, + "acm006644jsd" : { + "type" : "CodePackage", + "id" : "acm006644jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006645jsd" ] + }, + "acm006645jsd" : { + "type" : "CodePackage", + "id" : "acm006645jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006646jsd" ] + }, + "acm006646jsd" : { + "type" : "CodePackage", + "id" : "acm006646jsd", + "name" : "newmergedialog", + "parentId" : "acm006498jsd", + "content" : [ "acm006641jsd", "acm006649jsd", "acm006672jsd", "acm006715jsd", "acm006724jsd", "acm006733jsd", "acm006739jsd", "acm006749jsd", "acm006776jsd", "acm006804jsd", "acm006975jsd", "acm007019jsd", "acm007076jsd" ] + }, + "acm006647jsd" : { + "type" : "ControlElement", + "id" : "acm006647jsd", + "name" : "separator" + }, + "acm006648jsd" : { + "type" : "InterfaceUnit", + "id" : "acm006648jsd", + "name" : "DiffMethod", + "compilationUnitId" : "acm006641jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006647jsd" ] + }, + "acm006649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006649jsd", + "name" : "FieldRowView", + "parentId" : "acm006646jsd", + "content" : [ "acm006671jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006650jsd" : { + "type" : "CodePackage", + "id" : "acm006650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006651jsd" ] + }, + "acm006651jsd" : { + "type" : "CodePackage", + "id" : "acm006651jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006652jsd" ] + }, + "acm006652jsd" : { + "type" : "CodePackage", + "id" : "acm006652jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006653jsd" ] + }, + "acm006653jsd" : { + "type" : "CodePackage", + "id" : "acm006653jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006654jsd" ] + }, + "acm006654jsd" : { + "type" : "CodePackage", + "id" : "acm006654jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006649jsd" ] + }, + "acm006655jsd" : { + "type" : "ControlElement", + "id" : "acm006655jsd", + "name" : "FieldRowView" + }, + "acm006656jsd" : { + "type" : "ControlElement", + "id" : "acm006656jsd", + "name" : "selectLeftValue" + }, + "acm006657jsd" : { + "type" : "ControlElement", + "id" : "acm006657jsd", + "name" : "selectRightValue" + }, + "acm006658jsd" : { + "type" : "ControlElement", + "id" : "acm006658jsd", + "name" : "selectNone" + }, + "acm006659jsd" : { + "type" : "ControlElement", + "id" : "acm006659jsd", + "name" : "getMergedValue" + }, + "acm006660jsd" : { + "type" : "ControlElement", + "id" : "acm006660jsd", + "name" : "mergedValueProperty" + }, + "acm006661jsd" : { + "type" : "ControlElement", + "id" : "acm006661jsd", + "name" : "getFieldNameCell" + }, + "acm006662jsd" : { + "type" : "ControlElement", + "id" : "acm006662jsd", + "name" : "getLeftValueCell" + }, + "acm006663jsd" : { + "type" : "ControlElement", + "id" : "acm006663jsd", + "name" : "getRightValueCell" + }, + "acm006664jsd" : { + "type" : "ControlElement", + "id" : "acm006664jsd", + "name" : "getMergedValueCell" + }, + "acm006665jsd" : { + "type" : "ControlElement", + "id" : "acm006665jsd", + "name" : "showDiff" + }, + "acm006666jsd" : { + "type" : "ControlElement", + "id" : "acm006666jsd", + "name" : "hide" + }, + "acm006667jsd" : { + "type" : "ControlElement", + "id" : "acm006667jsd", + "name" : "show" + }, + "acm006668jsd" : { + "type" : "ControlElement", + "id" : "acm006668jsd", + "name" : "hideDiff" + }, + "acm006669jsd" : { + "type" : "ControlElement", + "id" : "acm006669jsd", + "name" : "hasEqualLeftAndRightValues" + }, + "acm006670jsd" : { + "type" : "ControlElement", + "id" : "acm006670jsd", + "name" : "toString" + }, + "acm006671jsd" : { + "type" : "ClassUnit", + "id" : "acm006671jsd", + "name" : "FieldRowView", + "compilationUnitId" : "acm006649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006671jsd", "acm006709jsd", "acm006819jsd", "acm006843jsd", "acm006883jsd", "acm006961jsd", "acm007000jsd", "acm007012jsd", "acm007041jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm006655jsd", "acm006656jsd", "acm006657jsd", "acm006658jsd", "acm006659jsd", "acm006660jsd", "acm006661jsd", "acm006662jsd", "acm006663jsd", "acm006664jsd", "acm006665jsd", "acm006666jsd", "acm006667jsd", "acm006668jsd", "acm006669jsd", "acm006670jsd" ] + }, + "acm006672jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006672jsd", + "name" : "FieldRowViewModel", + "parentId" : "acm006646jsd", + "content" : [ "acm006709jsd", "acm006713jsd", "acm006714jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006673jsd" : { + "type" : "CodePackage", + "id" : "acm006673jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006674jsd" ] + }, + "acm006674jsd" : { + "type" : "CodePackage", + "id" : "acm006674jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006675jsd" ] + }, + "acm006675jsd" : { + "type" : "CodePackage", + "id" : "acm006675jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006676jsd" ] + }, + "acm006676jsd" : { + "type" : "CodePackage", + "id" : "acm006676jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006677jsd" ] + }, + "acm006677jsd" : { + "type" : "CodePackage", + "id" : "acm006677jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006672jsd" ] + }, + "acm006678jsd" : { + "type" : "ControlElement", + "id" : "acm006678jsd", + "name" : "FieldRowViewModel" + }, + "acm006679jsd" : { + "type" : "ControlElement", + "id" : "acm006679jsd", + "name" : "selectNonEmptyValue" + }, + "acm006680jsd" : { + "type" : "ControlElement", + "id" : "acm006680jsd", + "name" : "hasEqualLeftAndRightValues" + }, + "acm006681jsd" : { + "type" : "ControlElement", + "id" : "acm006681jsd", + "name" : "selectLeftValue" + }, + "acm006682jsd" : { + "type" : "ControlElement", + "id" : "acm006682jsd", + "name" : "selectRightValue" + }, + "acm006683jsd" : { + "type" : "ControlElement", + "id" : "acm006683jsd", + "name" : "selectNone" + }, + "acm006684jsd" : { + "type" : "ControlElement", + "id" : "acm006684jsd", + "name" : "setMergedFieldValue" + }, + "acm006685jsd" : { + "type" : "ControlElement", + "id" : "acm006685jsd", + "name" : "mergedFieldValueProperty" + }, + "acm006686jsd" : { + "type" : "ControlElement", + "id" : "acm006686jsd", + "name" : "getMergedFieldValue" + }, + "acm006687jsd" : { + "type" : "ControlElement", + "id" : "acm006687jsd", + "name" : "mergeFields" + }, + "acm006688jsd" : { + "type" : "ControlElement", + "id" : "acm006688jsd", + "name" : "unmergeFields" + }, + "acm006689jsd" : { + "type" : "ControlElement", + "id" : "acm006689jsd", + "name" : "hasEqualLeftAndRightBinding" + }, + "acm006690jsd" : { + "type" : "ControlElement", + "id" : "acm006690jsd", + "name" : "selectionProperty" + }, + "acm006691jsd" : { + "type" : "ControlElement", + "id" : "acm006691jsd", + "name" : "setSelection" + }, + "acm006692jsd" : { + "type" : "ControlElement", + "id" : "acm006692jsd", + "name" : "getSelection" + }, + "acm006693jsd" : { + "type" : "ControlElement", + "id" : "acm006693jsd", + "name" : "isFieldsMerged" + }, + "acm006694jsd" : { + "type" : "ControlElement", + "id" : "acm006694jsd", + "name" : "isFieldsMergedProperty" + }, + "acm006695jsd" : { + "type" : "ControlElement", + "id" : "acm006695jsd", + "name" : "setIsFieldsMerged" + }, + "acm006696jsd" : { + "type" : "ControlElement", + "id" : "acm006696jsd", + "name" : "getLeftFieldValue" + }, + "acm006697jsd" : { + "type" : "ControlElement", + "id" : "acm006697jsd", + "name" : "leftFieldValueProperty" + }, + "acm006698jsd" : { + "type" : "ControlElement", + "id" : "acm006698jsd", + "name" : "setLeftFieldValue" + }, + "acm006699jsd" : { + "type" : "ControlElement", + "id" : "acm006699jsd", + "name" : "getRightFieldValue" + }, + "acm006700jsd" : { + "type" : "ControlElement", + "id" : "acm006700jsd", + "name" : "rightFieldValueProperty" + }, + "acm006701jsd" : { + "type" : "ControlElement", + "id" : "acm006701jsd", + "name" : "setRightFieldValue" + }, + "acm006702jsd" : { + "type" : "ControlElement", + "id" : "acm006702jsd", + "name" : "getField" + }, + "acm006703jsd" : { + "type" : "ControlElement", + "id" : "acm006703jsd", + "name" : "getLeftEntry" + }, + "acm006704jsd" : { + "type" : "ControlElement", + "id" : "acm006704jsd", + "name" : "getRightEntry" + }, + "acm006705jsd" : { + "type" : "ControlElement", + "id" : "acm006705jsd", + "name" : "getMergedEntry" + }, + "acm006706jsd" : { + "type" : "ControlElement", + "id" : "acm006706jsd", + "name" : "MergeFieldsUndo" + }, + "acm006707jsd" : { + "type" : "ControlElement", + "id" : "acm006707jsd", + "name" : "undo" + }, + "acm006708jsd" : { + "type" : "ControlElement", + "id" : "acm006708jsd", + "name" : "redo" + }, + "acm006709jsd" : { + "type" : "ClassUnit", + "id" : "acm006709jsd", + "name" : "FieldRowViewModel", + "compilationUnitId" : "acm006672jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006709jsd", "acm006713jsd", "acm006714jsd", "acm007030jsd", "acm007041jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm006678jsd", "acm006679jsd", "acm006680jsd", "acm006681jsd", "acm006682jsd", "acm006683jsd", "acm006684jsd", "acm006685jsd", "acm006686jsd", "acm006687jsd", "acm006688jsd", "acm006689jsd", "acm006690jsd", "acm006691jsd", "acm006692jsd", "acm006693jsd", "acm006694jsd", "acm006695jsd", "acm006696jsd", "acm006697jsd", "acm006698jsd", "acm006699jsd", "acm006700jsd", "acm006701jsd", "acm006702jsd", "acm006703jsd", "acm006704jsd", "acm006705jsd", "acm006706jsd", "acm006707jsd", "acm006708jsd" ] + }, + "acm006710jsd" : { + "type" : "ControlElement", + "id" : "acm006710jsd", + "name" : "MergeFieldsUndo" + }, + "acm006711jsd" : { + "type" : "ControlElement", + "id" : "acm006711jsd", + "name" : "undo" + }, + "acm006712jsd" : { + "type" : "ControlElement", + "id" : "acm006712jsd", + "name" : "redo" + }, + "acm006713jsd" : { + "type" : "ClassUnit", + "id" : "acm006713jsd", + "name" : "MergeFieldsUndo", + "compilationUnitId" : "acm006672jsd", + "parentDatatypeId" : "acm006709jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006710jsd", "acm006711jsd", "acm006712jsd" ] + }, + "acm006714jsd" : { + "type" : "ClassUnit", + "id" : "acm006714jsd", + "name" : "Selection", + "compilationUnitId" : "acm006672jsd", + "parentDatatypeId" : "acm006709jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006715jsd", + "name" : "GroupDiffMode", + "parentId" : "acm006646jsd", + "content" : [ "acm006723jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006716jsd" : { + "type" : "CodePackage", + "id" : "acm006716jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006717jsd" ] + }, + "acm006717jsd" : { + "type" : "CodePackage", + "id" : "acm006717jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006718jsd" ] + }, + "acm006718jsd" : { + "type" : "CodePackage", + "id" : "acm006718jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006719jsd" ] + }, + "acm006719jsd" : { + "type" : "CodePackage", + "id" : "acm006719jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006720jsd" ] + }, + "acm006720jsd" : { + "type" : "CodePackage", + "id" : "acm006720jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006715jsd" ] + }, + "acm006721jsd" : { + "type" : "ControlElement", + "id" : "acm006721jsd", + "name" : "GroupDiffMode" + }, + "acm006722jsd" : { + "type" : "ControlElement", + "id" : "acm006722jsd", + "name" : "separator" + }, + "acm006723jsd" : { + "type" : "ClassUnit", + "id" : "acm006723jsd", + "name" : "GroupDiffMode", + "compilationUnitId" : "acm006715jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm006648jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006721jsd", "acm006722jsd" ] + }, + "acm006724jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006724jsd", + "name" : "PersonsNameFieldRowView", + "parentId" : "acm006646jsd", + "content" : [ "acm006732jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006725jsd" : { + "type" : "CodePackage", + "id" : "acm006725jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006726jsd" ] + }, + "acm006726jsd" : { + "type" : "CodePackage", + "id" : "acm006726jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006727jsd" ] + }, + "acm006727jsd" : { + "type" : "CodePackage", + "id" : "acm006727jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006728jsd" ] + }, + "acm006728jsd" : { + "type" : "CodePackage", + "id" : "acm006728jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006729jsd" ] + }, + "acm006729jsd" : { + "type" : "CodePackage", + "id" : "acm006729jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006724jsd" ] + }, + "acm006730jsd" : { + "type" : "ControlElement", + "id" : "acm006730jsd", + "name" : "PersonsNameFieldRowView" + }, + "acm006731jsd" : { + "type" : "ControlElement", + "id" : "acm006731jsd", + "name" : "showPersonsNamesAreTheSameInfo" + }, + "acm006732jsd" : { + "type" : "ClassUnit", + "id" : "acm006732jsd", + "name" : "PersonsNameFieldRowView", + "compilationUnitId" : "acm006724jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006671jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006938jsd", "acm007041jsd", "acm012269jsd", "acm018175jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm006730jsd", "acm006731jsd" ] + }, + "acm006733jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006733jsd", + "name" : "ShowDiffConfig", + "parentId" : "acm006646jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006734jsd" : { + "type" : "CodePackage", + "id" : "acm006734jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006735jsd" ] + }, + "acm006735jsd" : { + "type" : "CodePackage", + "id" : "acm006735jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006736jsd" ] + }, + "acm006736jsd" : { + "type" : "CodePackage", + "id" : "acm006736jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006737jsd" ] + }, + "acm006737jsd" : { + "type" : "CodePackage", + "id" : "acm006737jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006738jsd" ] + }, + "acm006738jsd" : { + "type" : "CodePackage", + "id" : "acm006738jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006733jsd" ] + }, + "acm006739jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006739jsd", + "name" : "ThreeWayMergeHeaderView", + "parentId" : "acm006646jsd", + "content" : [ "acm006748jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006740jsd" : { + "type" : "CodePackage", + "id" : "acm006740jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006741jsd" ] + }, + "acm006741jsd" : { + "type" : "CodePackage", + "id" : "acm006741jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006742jsd" ] + }, + "acm006742jsd" : { + "type" : "CodePackage", + "id" : "acm006742jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006743jsd" ] + }, + "acm006743jsd" : { + "type" : "CodePackage", + "id" : "acm006743jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006744jsd" ] + }, + "acm006744jsd" : { + "type" : "CodePackage", + "id" : "acm006744jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006739jsd" ] + }, + "acm006745jsd" : { + "type" : "ControlElement", + "id" : "acm006745jsd", + "name" : "ThreeWayMergeHeaderView" + }, + "acm006746jsd" : { + "type" : "ControlElement", + "id" : "acm006746jsd", + "name" : "setLeftHeader" + }, + "acm006747jsd" : { + "type" : "ControlElement", + "id" : "acm006747jsd", + "name" : "setRightHeader" + }, + "acm006748jsd" : { + "type" : "ClassUnit", + "id" : "acm006748jsd", + "name" : "ThreeWayMergeHeaderView", + "compilationUnitId" : "acm006739jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006872jsd" ], + "content" : [ "acm006745jsd", "acm006746jsd", "acm006747jsd" ] + }, + "acm006749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006749jsd", + "name" : "ThreeWayMergeView", + "parentId" : "acm006646jsd", + "content" : [ "acm006775jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006750jsd" : { + "type" : "CodePackage", + "id" : "acm006750jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006751jsd" ] + }, + "acm006751jsd" : { + "type" : "CodePackage", + "id" : "acm006751jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006752jsd" ] + }, + "acm006752jsd" : { + "type" : "CodePackage", + "id" : "acm006752jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006753jsd" ] + }, + "acm006753jsd" : { + "type" : "CodePackage", + "id" : "acm006753jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006754jsd" ] + }, + "acm006754jsd" : { + "type" : "CodePackage", + "id" : "acm006754jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006749jsd" ] + }, + "acm006755jsd" : { + "type" : "ControlElement", + "id" : "acm006755jsd", + "name" : "ThreeWayMergeView" + }, + "acm006756jsd" : { + "type" : "ControlElement", + "id" : "acm006756jsd", + "name" : "ThreeWayMergeView" + }, + "acm006757jsd" : { + "type" : "ControlElement", + "id" : "acm006757jsd", + "name" : "initializeToolbar" + }, + "acm006758jsd" : { + "type" : "ControlElement", + "id" : "acm006758jsd", + "name" : "showOrHideEqualFields" + }, + "acm006759jsd" : { + "type" : "ControlElement", + "id" : "acm006759jsd", + "name" : "updateDiff" + }, + "acm006760jsd" : { + "type" : "ControlElement", + "id" : "acm006760jsd", + "name" : "initializeHeaderView" + }, + "acm006761jsd" : { + "type" : "ControlElement", + "id" : "acm006761jsd", + "name" : "initializeScrollPane" + }, + "acm006762jsd" : { + "type" : "ControlElement", + "id" : "acm006762jsd", + "name" : "initializeColumnConstraints" + }, + "acm006763jsd" : { + "type" : "ControlElement", + "id" : "acm006763jsd", + "name" : "initializeMergeGridPane" + }, + "acm006764jsd" : { + "type" : "ControlElement", + "id" : "acm006764jsd", + "name" : "getFieldAtIndex" + }, + "acm006765jsd" : { + "type" : "ControlElement", + "id" : "acm006765jsd", + "name" : "addRow" + }, + "acm006766jsd" : { + "type" : "ControlElement", + "id" : "acm006766jsd", + "name" : "getMergedEntry" + }, + "acm006767jsd" : { + "type" : "ControlElement", + "id" : "acm006767jsd", + "name" : "setLeftHeader" + }, + "acm006768jsd" : { + "type" : "ControlElement", + "id" : "acm006768jsd", + "name" : "setRightHeader" + }, + "acm006769jsd" : { + "type" : "ControlElement", + "id" : "acm006769jsd", + "name" : "selectLeftEntryValues" + }, + "acm006770jsd" : { + "type" : "ControlElement", + "id" : "acm006770jsd", + "name" : "selectRightEntryValues" + }, + "acm006771jsd" : { + "type" : "ControlElement", + "id" : "acm006771jsd", + "name" : "showDiff" + }, + "acm006772jsd" : { + "type" : "ControlElement", + "id" : "acm006772jsd", + "name" : "getLeftEntry" + }, + "acm006773jsd" : { + "type" : "ControlElement", + "id" : "acm006773jsd", + "name" : "getRightEntry" + }, + "acm006774jsd" : { + "type" : "ControlElement", + "id" : "acm006774jsd", + "name" : "saveConfiguration" + }, + "acm006775jsd" : { + "type" : "ClassUnit", + "id" : "acm006775jsd", + "name" : "ThreeWayMergeView", + "compilationUnitId" : "acm006749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006671jsd", "acm006723jsd", "acm006732jsd", "acm006748jsd", "acm006775jsd", "acm006797jsd", "acm007041jsd", "acm007107jsd", "acm018267jsd", "acm018673jsd", "acm020774jsd" ], + "content" : [ "acm006755jsd", "acm006756jsd", "acm006757jsd", "acm006758jsd", "acm006759jsd", "acm006760jsd", "acm006761jsd", "acm006762jsd", "acm006763jsd", "acm006764jsd", "acm006765jsd", "acm006766jsd", "acm006767jsd", "acm006768jsd", "acm006769jsd", "acm006770jsd", "acm006771jsd", "acm006772jsd", "acm006773jsd", "acm006774jsd" ] + }, + "acm006776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006776jsd", + "name" : "ThreeWayMergeViewModel", + "parentId" : "acm006646jsd", + "content" : [ "acm006797jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006777jsd" : { + "type" : "CodePackage", + "id" : "acm006777jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006778jsd" ] + }, + "acm006778jsd" : { + "type" : "CodePackage", + "id" : "acm006778jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006779jsd" ] + }, + "acm006779jsd" : { + "type" : "CodePackage", + "id" : "acm006779jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006780jsd" ] + }, + "acm006780jsd" : { + "type" : "CodePackage", + "id" : "acm006780jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006781jsd" ] + }, + "acm006781jsd" : { + "type" : "CodePackage", + "id" : "acm006781jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006776jsd" ] + }, + "acm006782jsd" : { + "type" : "ControlElement", + "id" : "acm006782jsd", + "name" : "ThreeWayMergeViewModel" + }, + "acm006783jsd" : { + "type" : "ControlElement", + "id" : "acm006783jsd", + "name" : "leftHeaderProperty" + }, + "acm006784jsd" : { + "type" : "ControlElement", + "id" : "acm006784jsd", + "name" : "getLeftHeader" + }, + "acm006785jsd" : { + "type" : "ControlElement", + "id" : "acm006785jsd", + "name" : "setLeftHeader" + }, + "acm006786jsd" : { + "type" : "ControlElement", + "id" : "acm006786jsd", + "name" : "rightHeaderProperty" + }, + "acm006787jsd" : { + "type" : "ControlElement", + "id" : "acm006787jsd", + "name" : "getRightHeader" + }, + "acm006788jsd" : { + "type" : "ControlElement", + "id" : "acm006788jsd", + "name" : "setRightHeader" + }, + "acm006789jsd" : { + "type" : "ControlElement", + "id" : "acm006789jsd", + "name" : "getLeftEntry" + }, + "acm006790jsd" : { + "type" : "ControlElement", + "id" : "acm006790jsd", + "name" : "setLeftEntry" + }, + "acm006791jsd" : { + "type" : "ControlElement", + "id" : "acm006791jsd", + "name" : "getRightEntry" + }, + "acm006792jsd" : { + "type" : "ControlElement", + "id" : "acm006792jsd", + "name" : "setRightEntry" + }, + "acm006793jsd" : { + "type" : "ControlElement", + "id" : "acm006793jsd", + "name" : "getMergedEntry" + }, + "acm006794jsd" : { + "type" : "ControlElement", + "id" : "acm006794jsd", + "name" : "getVisibleFields" + }, + "acm006795jsd" : { + "type" : "ControlElement", + "id" : "acm006795jsd", + "name" : "numberOfVisibleFields" + }, + "acm006796jsd" : { + "type" : "ControlElement", + "id" : "acm006796jsd", + "name" : "setVisibleFields" + }, + "acm006797jsd" : { + "type" : "ClassUnit", + "id" : "acm006797jsd", + "name" : "ThreeWayMergeViewModel", + "compilationUnitId" : "acm006776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm006782jsd", "acm006783jsd", "acm006784jsd", "acm006785jsd", "acm006786jsd", "acm006787jsd", "acm006788jsd", "acm006789jsd", "acm006790jsd", "acm006791jsd", "acm006792jsd", "acm006793jsd", "acm006794jsd", "acm006795jsd", "acm006796jsd" ] + }, + "acm006798jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006798jsd", + "name" : "CopyFieldValueCommand", + "parentId" : "acm006804jsd", + "content" : [ "acm006807jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006799jsd" : { + "type" : "CodePackage", + "id" : "acm006799jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006800jsd" ] + }, + "acm006800jsd" : { + "type" : "CodePackage", + "id" : "acm006800jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006801jsd" ] + }, + "acm006801jsd" : { + "type" : "CodePackage", + "id" : "acm006801jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006802jsd" ] + }, + "acm006802jsd" : { + "type" : "CodePackage", + "id" : "acm006802jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006803jsd" ] + }, + "acm006803jsd" : { + "type" : "CodePackage", + "id" : "acm006803jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006804jsd" ] + }, + "acm006804jsd" : { + "type" : "CodePackage", + "id" : "acm006804jsd", + "name" : "cell", + "parentId" : "acm006646jsd", + "content" : [ "acm006798jsd", "acm006808jsd", "acm006820jsd", "acm006844jsd", "acm006862jsd", "acm006873jsd", "acm006884jsd", "acm006894jsd", "acm006907jsd", "acm006932jsd" ] + }, + "acm006805jsd" : { + "type" : "ControlElement", + "id" : "acm006805jsd", + "name" : "CopyFieldValueCommand" + }, + "acm006806jsd" : { + "type" : "ControlElement", + "id" : "acm006806jsd", + "name" : "execute" + }, + "acm006807jsd" : { + "type" : "ClassUnit", + "id" : "acm006807jsd", + "name" : "CopyFieldValueCommand", + "compilationUnitId" : "acm006798jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm021206jsd" ], + "content" : [ "acm006805jsd", "acm006806jsd" ] + }, + "acm006808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006808jsd", + "name" : "FieldNameCell", + "parentId" : "acm006804jsd", + "content" : [ "acm006819jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006809jsd" : { + "type" : "CodePackage", + "id" : "acm006809jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006810jsd" ] + }, + "acm006810jsd" : { + "type" : "CodePackage", + "id" : "acm006810jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006811jsd" ] + }, + "acm006811jsd" : { + "type" : "CodePackage", + "id" : "acm006811jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006812jsd" ] + }, + "acm006812jsd" : { + "type" : "CodePackage", + "id" : "acm006812jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006813jsd" ] + }, + "acm006813jsd" : { + "type" : "CodePackage", + "id" : "acm006813jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006814jsd" ] + }, + "acm006814jsd" : { + "type" : "CodePackage", + "id" : "acm006814jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006808jsd" ] + }, + "acm006815jsd" : { + "type" : "ControlElement", + "id" : "acm006815jsd", + "name" : "FieldNameCell" + }, + "acm006816jsd" : { + "type" : "ControlElement", + "id" : "acm006816jsd", + "name" : "initialize" + }, + "acm006817jsd" : { + "type" : "ControlElement", + "id" : "acm006817jsd", + "name" : "initializeLabel" + }, + "acm006818jsd" : { + "type" : "ControlElement", + "id" : "acm006818jsd", + "name" : "addSideButton" + }, + "acm006819jsd" : { + "type" : "ClassUnit", + "id" : "acm006819jsd", + "name" : "FieldNameCell", + "compilationUnitId" : "acm006808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006906jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006815jsd", "acm006816jsd", "acm006817jsd", "acm006818jsd" ] + }, + "acm006820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006820jsd", + "name" : "FieldValueCell", + "parentId" : "acm006804jsd", + "content" : [ "acm006843jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006821jsd" : { + "type" : "CodePackage", + "id" : "acm006821jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006822jsd" ] + }, + "acm006822jsd" : { + "type" : "CodePackage", + "id" : "acm006822jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006823jsd" ] + }, + "acm006823jsd" : { + "type" : "CodePackage", + "id" : "acm006823jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006824jsd" ] + }, + "acm006824jsd" : { + "type" : "CodePackage", + "id" : "acm006824jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006825jsd" ] + }, + "acm006825jsd" : { + "type" : "CodePackage", + "id" : "acm006825jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006826jsd" ] + }, + "acm006826jsd" : { + "type" : "CodePackage", + "id" : "acm006826jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006820jsd" ] + }, + "acm006827jsd" : { + "type" : "ControlElement", + "id" : "acm006827jsd", + "name" : "FieldValueCell" + }, + "acm006828jsd" : { + "type" : "ControlElement", + "id" : "acm006828jsd", + "name" : "initialize" + }, + "acm006829jsd" : { + "type" : "ControlElement", + "id" : "acm006829jsd", + "name" : "initializeLabel" + }, + "acm006830jsd" : { + "type" : "ControlElement", + "id" : "acm006830jsd", + "name" : "initializeActions" + }, + "acm006831jsd" : { + "type" : "ControlElement", + "id" : "acm006831jsd", + "name" : "initializeSelectionBox" + }, + "acm006832jsd" : { + "type" : "ControlElement", + "id" : "acm006832jsd", + "name" : "createCopyButton" + }, + "acm006833jsd" : { + "type" : "ControlElement", + "id" : "acm006833jsd", + "name" : "createOpenLinkButton" + }, + "acm006834jsd" : { + "type" : "ControlElement", + "id" : "acm006834jsd", + "name" : "initializeScrollPane" + }, + "acm006835jsd" : { + "type" : "ControlElement", + "id" : "acm006835jsd", + "name" : "preventTextSelectionViaMouseEvents" + }, + "acm006836jsd" : { + "type" : "ControlElement", + "id" : "acm006836jsd", + "name" : "getToggleGroup" + }, + "acm006837jsd" : { + "type" : "ControlElement", + "id" : "acm006837jsd", + "name" : "setToggleGroup" + }, + "acm006838jsd" : { + "type" : "ControlElement", + "id" : "acm006838jsd", + "name" : "toggleGroupProperty" + }, + "acm006839jsd" : { + "type" : "ControlElement", + "id" : "acm006839jsd", + "name" : "isSelected" + }, + "acm006840jsd" : { + "type" : "ControlElement", + "id" : "acm006840jsd", + "name" : "setSelected" + }, + "acm006841jsd" : { + "type" : "ControlElement", + "id" : "acm006841jsd", + "name" : "selectedProperty" + }, + "acm006842jsd" : { + "type" : "ControlElement", + "id" : "acm006842jsd", + "name" : "getStyleClassedLabel" + }, + "acm006843jsd" : { + "type" : "ClassUnit", + "id" : "acm006843jsd", + "name" : "FieldValueCell", + "compilationUnitId" : "acm006820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006906jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm006807jsd", "acm006843jsd", "acm006861jsd", "acm006893jsd" ], + "content" : [ "acm006827jsd", "acm006828jsd", "acm006829jsd", "acm006830jsd", "acm006831jsd", "acm006832jsd", "acm006833jsd", "acm006834jsd", "acm006835jsd", "acm006836jsd", "acm006837jsd", "acm006838jsd", "acm006839jsd", "acm006840jsd", "acm006841jsd", "acm006842jsd" ] + }, + "acm006844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006844jsd", + "name" : "FieldValueCellViewModel", + "parentId" : "acm006804jsd", + "content" : [ "acm006861jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006845jsd" : { + "type" : "CodePackage", + "id" : "acm006845jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006846jsd" ] + }, + "acm006846jsd" : { + "type" : "CodePackage", + "id" : "acm006846jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006847jsd" ] + }, + "acm006847jsd" : { + "type" : "CodePackage", + "id" : "acm006847jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006848jsd" ] + }, + "acm006848jsd" : { + "type" : "CodePackage", + "id" : "acm006848jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006849jsd" ] + }, + "acm006849jsd" : { + "type" : "CodePackage", + "id" : "acm006849jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006850jsd" ] + }, + "acm006850jsd" : { + "type" : "CodePackage", + "id" : "acm006850jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006844jsd" ] + }, + "acm006851jsd" : { + "type" : "ControlElement", + "id" : "acm006851jsd", + "name" : "FieldValueCellViewModel" + }, + "acm006852jsd" : { + "type" : "ControlElement", + "id" : "acm006852jsd", + "name" : "getFieldValue" + }, + "acm006853jsd" : { + "type" : "ControlElement", + "id" : "acm006853jsd", + "name" : "fieldValueProperty" + }, + "acm006854jsd" : { + "type" : "ControlElement", + "id" : "acm006854jsd", + "name" : "setFieldValue" + }, + "acm006855jsd" : { + "type" : "ControlElement", + "id" : "acm006855jsd", + "name" : "isSelected" + }, + "acm006856jsd" : { + "type" : "ControlElement", + "id" : "acm006856jsd", + "name" : "selectedProperty" + }, + "acm006857jsd" : { + "type" : "ControlElement", + "id" : "acm006857jsd", + "name" : "setSelected" + }, + "acm006858jsd" : { + "type" : "ControlElement", + "id" : "acm006858jsd", + "name" : "getToggleGroup" + }, + "acm006859jsd" : { + "type" : "ControlElement", + "id" : "acm006859jsd", + "name" : "toggleGroupProperty" + }, + "acm006860jsd" : { + "type" : "ControlElement", + "id" : "acm006860jsd", + "name" : "setToggleGroup" + }, + "acm006861jsd" : { + "type" : "ClassUnit", + "id" : "acm006861jsd", + "name" : "FieldValueCellViewModel", + "compilationUnitId" : "acm006844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006843jsd" ], + "content" : [ "acm006851jsd", "acm006852jsd", "acm006853jsd", "acm006854jsd", "acm006855jsd", "acm006856jsd", "acm006857jsd", "acm006858jsd", "acm006859jsd", "acm006860jsd" ] + }, + "acm006862jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006862jsd", + "name" : "HeaderCell", + "parentId" : "acm006804jsd", + "content" : [ "acm006872jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006863jsd" : { + "type" : "CodePackage", + "id" : "acm006863jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006864jsd" ] + }, + "acm006864jsd" : { + "type" : "CodePackage", + "id" : "acm006864jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006865jsd" ] + }, + "acm006865jsd" : { + "type" : "CodePackage", + "id" : "acm006865jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006866jsd" ] + }, + "acm006866jsd" : { + "type" : "CodePackage", + "id" : "acm006866jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006867jsd" ] + }, + "acm006867jsd" : { + "type" : "CodePackage", + "id" : "acm006867jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006868jsd" ] + }, + "acm006868jsd" : { + "type" : "CodePackage", + "id" : "acm006868jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006862jsd" ] + }, + "acm006869jsd" : { + "type" : "ControlElement", + "id" : "acm006869jsd", + "name" : "HeaderCell" + }, + "acm006870jsd" : { + "type" : "ControlElement", + "id" : "acm006870jsd", + "name" : "initialize" + }, + "acm006871jsd" : { + "type" : "ControlElement", + "id" : "acm006871jsd", + "name" : "initializeLabel" + }, + "acm006872jsd" : { + "type" : "ClassUnit", + "id" : "acm006872jsd", + "name" : "HeaderCell", + "compilationUnitId" : "acm006862jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006906jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006869jsd", "acm006870jsd", "acm006871jsd" ] + }, + "acm006873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006873jsd", + "name" : "MergedFieldCell", + "parentId" : "acm006804jsd", + "content" : [ "acm006883jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006874jsd" : { + "type" : "CodePackage", + "id" : "acm006874jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006875jsd" ] + }, + "acm006875jsd" : { + "type" : "CodePackage", + "id" : "acm006875jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006876jsd" ] + }, + "acm006876jsd" : { + "type" : "CodePackage", + "id" : "acm006876jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006877jsd" ] + }, + "acm006877jsd" : { + "type" : "CodePackage", + "id" : "acm006877jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006878jsd" ] + }, + "acm006878jsd" : { + "type" : "CodePackage", + "id" : "acm006878jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006879jsd" ] + }, + "acm006879jsd" : { + "type" : "CodePackage", + "id" : "acm006879jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006873jsd" ] + }, + "acm006880jsd" : { + "type" : "ControlElement", + "id" : "acm006880jsd", + "name" : "MergedFieldCell" + }, + "acm006881jsd" : { + "type" : "ControlElement", + "id" : "acm006881jsd", + "name" : "initialize" + }, + "acm006882jsd" : { + "type" : "ControlElement", + "id" : "acm006882jsd", + "name" : "initializeTextArea" + }, + "acm006883jsd" : { + "type" : "ClassUnit", + "id" : "acm006883jsd", + "name" : "MergedFieldCell", + "compilationUnitId" : "acm006873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006906jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006880jsd", "acm006881jsd", "acm006882jsd" ] + }, + "acm006884jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006884jsd", + "name" : "OpenExternalLinkAction", + "parentId" : "acm006804jsd", + "content" : [ "acm006893jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006885jsd" : { + "type" : "CodePackage", + "id" : "acm006885jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006886jsd" ] + }, + "acm006886jsd" : { + "type" : "CodePackage", + "id" : "acm006886jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006887jsd" ] + }, + "acm006887jsd" : { + "type" : "CodePackage", + "id" : "acm006887jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006888jsd" ] + }, + "acm006888jsd" : { + "type" : "CodePackage", + "id" : "acm006888jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006889jsd" ] + }, + "acm006889jsd" : { + "type" : "CodePackage", + "id" : "acm006889jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006890jsd" ] + }, + "acm006890jsd" : { + "type" : "CodePackage", + "id" : "acm006890jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006884jsd" ] + }, + "acm006891jsd" : { + "type" : "ControlElement", + "id" : "acm006891jsd", + "name" : "OpenExternalLinkAction" + }, + "acm006892jsd" : { + "type" : "ControlElement", + "id" : "acm006892jsd", + "name" : "execute" + }, + "acm006893jsd" : { + "type" : "ClassUnit", + "id" : "acm006893jsd", + "name" : "OpenExternalLinkAction", + "compilationUnitId" : "acm006884jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006893jsd" ], + "content" : [ "acm006891jsd", "acm006892jsd" ] + }, + "acm006894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006894jsd", + "name" : "ThreeWayMergeCell", + "parentId" : "acm006804jsd", + "content" : [ "acm006906jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006895jsd" : { + "type" : "CodePackage", + "id" : "acm006895jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006896jsd" ] + }, + "acm006896jsd" : { + "type" : "CodePackage", + "id" : "acm006896jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006897jsd" ] + }, + "acm006897jsd" : { + "type" : "CodePackage", + "id" : "acm006897jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006898jsd" ] + }, + "acm006898jsd" : { + "type" : "CodePackage", + "id" : "acm006898jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006899jsd" ] + }, + "acm006899jsd" : { + "type" : "CodePackage", + "id" : "acm006899jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006900jsd" ] + }, + "acm006900jsd" : { + "type" : "CodePackage", + "id" : "acm006900jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006894jsd" ] + }, + "acm006901jsd" : { + "type" : "ControlElement", + "id" : "acm006901jsd", + "name" : "ThreeWayMergeCell" + }, + "acm006902jsd" : { + "type" : "ControlElement", + "id" : "acm006902jsd", + "name" : "getText" + }, + "acm006903jsd" : { + "type" : "ControlElement", + "id" : "acm006903jsd", + "name" : "textProperty" + }, + "acm006904jsd" : { + "type" : "ControlElement", + "id" : "acm006904jsd", + "name" : "setText" + }, + "acm006905jsd" : { + "type" : "ControlElement", + "id" : "acm006905jsd", + "name" : "toString" + }, + "acm006906jsd" : { + "type" : "ClassUnit", + "id" : "acm006906jsd", + "name" : "ThreeWayMergeCell", + "compilationUnitId" : "acm006894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006924jsd" ], + "content" : [ "acm006901jsd", "acm006902jsd", "acm006903jsd", "acm006904jsd", "acm006905jsd" ] + }, + "acm006907jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006907jsd", + "name" : "ThreeWayMergeCellViewModel", + "parentId" : "acm006804jsd", + "content" : [ "acm006924jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006908jsd" : { + "type" : "CodePackage", + "id" : "acm006908jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006909jsd" ] + }, + "acm006909jsd" : { + "type" : "CodePackage", + "id" : "acm006909jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006910jsd" ] + }, + "acm006910jsd" : { + "type" : "CodePackage", + "id" : "acm006910jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006911jsd" ] + }, + "acm006911jsd" : { + "type" : "CodePackage", + "id" : "acm006911jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006912jsd" ] + }, + "acm006912jsd" : { + "type" : "CodePackage", + "id" : "acm006912jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006913jsd" ] + }, + "acm006913jsd" : { + "type" : "CodePackage", + "id" : "acm006913jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006907jsd" ] + }, + "acm006914jsd" : { + "type" : "ControlElement", + "id" : "acm006914jsd", + "name" : "ThreeWayMergeCellViewModel" + }, + "acm006915jsd" : { + "type" : "ControlElement", + "id" : "acm006915jsd", + "name" : "getText" + }, + "acm006916jsd" : { + "type" : "ControlElement", + "id" : "acm006916jsd", + "name" : "textProperty" + }, + "acm006917jsd" : { + "type" : "ControlElement", + "id" : "acm006917jsd", + "name" : "setText" + }, + "acm006918jsd" : { + "type" : "ControlElement", + "id" : "acm006918jsd", + "name" : "isOdd" + }, + "acm006919jsd" : { + "type" : "ControlElement", + "id" : "acm006919jsd", + "name" : "oddProperty" + }, + "acm006920jsd" : { + "type" : "ControlElement", + "id" : "acm006920jsd", + "name" : "setOdd" + }, + "acm006921jsd" : { + "type" : "ControlElement", + "id" : "acm006921jsd", + "name" : "isEven" + }, + "acm006922jsd" : { + "type" : "ControlElement", + "id" : "acm006922jsd", + "name" : "evenProperty" + }, + "acm006923jsd" : { + "type" : "ControlElement", + "id" : "acm006923jsd", + "name" : "setEven" + }, + "acm006924jsd" : { + "type" : "ClassUnit", + "id" : "acm006924jsd", + "name" : "ThreeWayMergeCellViewModel", + "compilationUnitId" : "acm006907jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006906jsd" ], + "content" : [ "acm006914jsd", "acm006915jsd", "acm006916jsd", "acm006917jsd", "acm006918jsd", "acm006919jsd", "acm006920jsd", "acm006921jsd", "acm006922jsd", "acm006923jsd" ] + }, + "acm006925jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006925jsd", + "name" : "InfoButton", + "parentId" : "acm006932jsd", + "content" : [ "acm006938jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell", "sidebuttons" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006926jsd" : { + "type" : "CodePackage", + "id" : "acm006926jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006927jsd" ] + }, + "acm006927jsd" : { + "type" : "CodePackage", + "id" : "acm006927jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006928jsd" ] + }, + "acm006928jsd" : { + "type" : "CodePackage", + "id" : "acm006928jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006929jsd" ] + }, + "acm006929jsd" : { + "type" : "CodePackage", + "id" : "acm006929jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006930jsd" ] + }, + "acm006930jsd" : { + "type" : "CodePackage", + "id" : "acm006930jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006931jsd" ] + }, + "acm006931jsd" : { + "type" : "CodePackage", + "id" : "acm006931jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006932jsd" ] + }, + "acm006932jsd" : { + "type" : "CodePackage", + "id" : "acm006932jsd", + "name" : "sidebuttons", + "parentId" : "acm006804jsd", + "content" : [ "acm006925jsd", "acm006939jsd" ] + }, + "acm006933jsd" : { + "type" : "ControlElement", + "id" : "acm006933jsd", + "name" : "getIcon" + }, + "acm006934jsd" : { + "type" : "ControlElement", + "id" : "acm006934jsd", + "name" : "getText" + }, + "acm006935jsd" : { + "type" : "ControlElement", + "id" : "acm006935jsd", + "name" : "InfoButton" + }, + "acm006936jsd" : { + "type" : "ControlElement", + "id" : "acm006936jsd", + "name" : "configureButton" + }, + "acm006937jsd" : { + "type" : "ControlElement", + "id" : "acm006937jsd", + "name" : "execute" + }, + "acm006938jsd" : { + "type" : "ClassUnit", + "id" : "acm006938jsd", + "name" : "InfoButton", + "compilationUnitId" : "acm006925jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm002087jsd", "acm002126jsd", "acm005416jsd" ], + "content" : [ "acm006933jsd", "acm006934jsd", "acm006935jsd", "acm006936jsd", "acm006937jsd" ] + }, + "acm006939jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006939jsd", + "name" : "ToggleMergeUnmergeButton", + "parentId" : "acm006932jsd", + "content" : [ "acm006961jsd", "acm006967jsd", "acm006968jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "cell", "sidebuttons" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006940jsd" : { + "type" : "CodePackage", + "id" : "acm006940jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006941jsd" ] + }, + "acm006941jsd" : { + "type" : "CodePackage", + "id" : "acm006941jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006942jsd" ] + }, + "acm006942jsd" : { + "type" : "CodePackage", + "id" : "acm006942jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006943jsd" ] + }, + "acm006943jsd" : { + "type" : "CodePackage", + "id" : "acm006943jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006944jsd" ] + }, + "acm006944jsd" : { + "type" : "CodePackage", + "id" : "acm006944jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006945jsd" ] + }, + "acm006945jsd" : { + "type" : "CodePackage", + "id" : "acm006945jsd", + "name" : "cell", + "parentId" : null, + "content" : [ "acm006946jsd" ] + }, + "acm006946jsd" : { + "type" : "CodePackage", + "id" : "acm006946jsd", + "name" : "sidebuttons", + "parentId" : null, + "content" : [ "acm006939jsd" ] + }, + "acm006947jsd" : { + "type" : "ControlElement", + "id" : "acm006947jsd", + "name" : "ToggleMergeUnmergeButton" + }, + "acm006948jsd" : { + "type" : "ControlElement", + "id" : "acm006948jsd", + "name" : "configureMergeButton" + }, + "acm006949jsd" : { + "type" : "ControlElement", + "id" : "acm006949jsd", + "name" : "configureUnmergeButton" + }, + "acm006950jsd" : { + "type" : "ControlElement", + "id" : "acm006950jsd", + "name" : "fieldStateProperty" + }, + "acm006951jsd" : { + "type" : "ControlElement", + "id" : "acm006951jsd", + "name" : "setFieldState" + }, + "acm006952jsd" : { + "type" : "ControlElement", + "id" : "acm006952jsd", + "name" : "getFieldState" + }, + "acm006953jsd" : { + "type" : "ControlElement", + "id" : "acm006953jsd", + "name" : "canMergeProperty" + }, + "acm006954jsd" : { + "type" : "ControlElement", + "id" : "acm006954jsd", + "name" : "canMerge" + }, + "acm006955jsd" : { + "type" : "ControlElement", + "id" : "acm006955jsd", + "name" : "setCanMerge" + }, + "acm006956jsd" : { + "type" : "ControlElement", + "id" : "acm006956jsd", + "name" : "getIcon" + }, + "acm006957jsd" : { + "type" : "ControlElement", + "id" : "acm006957jsd", + "name" : "getText" + }, + "acm006958jsd" : { + "type" : "ControlElement", + "id" : "acm006958jsd", + "name" : "getIcon" + }, + "acm006959jsd" : { + "type" : "ControlElement", + "id" : "acm006959jsd", + "name" : "getText" + }, + "acm006960jsd" : { + "type" : "ControlElement", + "id" : "acm006960jsd", + "name" : "execute" + }, + "acm006961jsd" : { + "type" : "ClassUnit", + "id" : "acm006961jsd", + "name" : "ToggleMergeUnmergeButton", + "compilationUnitId" : "acm006939jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm002087jsd", "acm002126jsd", "acm005416jsd", "acm006967jsd", "acm006968jsd", "acm018673jsd" ], + "content" : [ "acm006947jsd", "acm006948jsd", "acm006949jsd", "acm006950jsd", "acm006951jsd", "acm006952jsd", "acm006953jsd", "acm006954jsd", "acm006955jsd", "acm006956jsd", "acm006957jsd", "acm006958jsd", "acm006959jsd", "acm006960jsd" ] + }, + "acm006962jsd" : { + "type" : "ControlElement", + "id" : "acm006962jsd", + "name" : "getIcon" + }, + "acm006963jsd" : { + "type" : "ControlElement", + "id" : "acm006963jsd", + "name" : "getText" + }, + "acm006964jsd" : { + "type" : "ControlElement", + "id" : "acm006964jsd", + "name" : "getIcon" + }, + "acm006965jsd" : { + "type" : "ControlElement", + "id" : "acm006965jsd", + "name" : "getText" + }, + "acm006966jsd" : { + "type" : "ControlElement", + "id" : "acm006966jsd", + "name" : "execute" + }, + "acm006967jsd" : { + "type" : "ClassUnit", + "id" : "acm006967jsd", + "name" : "ToggleMergeCommand", + "compilationUnitId" : "acm006939jsd", + "parentDatatypeId" : "acm006961jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm005416jsd" ], + "content" : [ "acm006962jsd", "acm006963jsd", "acm006964jsd", "acm006965jsd", "acm006966jsd" ] + }, + "acm006968jsd" : { + "type" : "ClassUnit", + "id" : "acm006968jsd", + "name" : "FieldState", + "compilationUnitId" : "acm006939jsd", + "parentDatatypeId" : "acm006961jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006969jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006969jsd", + "name" : "DiffHighlighter", + "parentId" : "acm006975jsd", + "content" : [ "acm006985jsd", "acm006988jsd", "acm006989jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "diffhighlighter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006970jsd" : { + "type" : "CodePackage", + "id" : "acm006970jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006971jsd" ] + }, + "acm006971jsd" : { + "type" : "CodePackage", + "id" : "acm006971jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006972jsd" ] + }, + "acm006972jsd" : { + "type" : "CodePackage", + "id" : "acm006972jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006973jsd" ] + }, + "acm006973jsd" : { + "type" : "CodePackage", + "id" : "acm006973jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006974jsd" ] + }, + "acm006974jsd" : { + "type" : "CodePackage", + "id" : "acm006974jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006975jsd" ] + }, + "acm006975jsd" : { + "type" : "CodePackage", + "id" : "acm006975jsd", + "name" : "diffhighlighter", + "parentId" : "acm006646jsd", + "content" : [ "acm006969jsd", "acm006990jsd", "acm007001jsd" ] + }, + "acm006976jsd" : { + "type" : "ControlElement", + "id" : "acm006976jsd", + "name" : "DiffHighlighter" + }, + "acm006977jsd" : { + "type" : "ControlElement", + "id" : "acm006977jsd", + "name" : "highlight" + }, + "acm006978jsd" : { + "type" : "ControlElement", + "id" : "acm006978jsd", + "name" : "splitString" + }, + "acm006979jsd" : { + "type" : "ControlElement", + "id" : "acm006979jsd", + "name" : "setDiffMethod" + }, + "acm006980jsd" : { + "type" : "ControlElement", + "id" : "acm006980jsd", + "name" : "getDiffMethod" + }, + "acm006981jsd" : { + "type" : "ControlElement", + "id" : "acm006981jsd", + "name" : "getSeparator" + }, + "acm006982jsd" : { + "type" : "ControlElement", + "id" : "acm006982jsd", + "name" : "BasicDiffMethod" + }, + "acm006983jsd" : { + "type" : "ControlElement", + "id" : "acm006983jsd", + "name" : "separator" + }, + "acm006984jsd" : { + "type" : "ControlElement", + "id" : "acm006984jsd", + "name" : "join" + }, + "acm006985jsd" : { + "type" : "ClassUnit", + "id" : "acm006985jsd", + "name" : "DiffHighlighter", + "compilationUnitId" : "acm006969jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006648jsd", "acm006989jsd" ], + "content" : [ "acm006976jsd", "acm006977jsd", "acm006978jsd", "acm006979jsd", "acm006980jsd", "acm006981jsd", "acm006982jsd", "acm006983jsd", "acm006984jsd" ] + }, + "acm006986jsd" : { + "type" : "ControlElement", + "id" : "acm006986jsd", + "name" : "BasicDiffMethod" + }, + "acm006987jsd" : { + "type" : "ControlElement", + "id" : "acm006987jsd", + "name" : "separator" + }, + "acm006988jsd" : { + "type" : "ClassUnit", + "id" : "acm006988jsd", + "name" : "BasicDiffMethod", + "compilationUnitId" : "acm006969jsd", + "parentDatatypeId" : "acm006985jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm006648jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006986jsd", "acm006987jsd" ] + }, + "acm006989jsd" : { + "type" : "ClassUnit", + "id" : "acm006989jsd", + "name" : "ChangeType", + "compilationUnitId" : "acm006969jsd", + "parentDatatypeId" : "acm006985jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006990jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006990jsd", + "name" : "SplitDiffHighlighter", + "parentId" : "acm006975jsd", + "content" : [ "acm007000jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "diffhighlighter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006991jsd" : { + "type" : "CodePackage", + "id" : "acm006991jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm006992jsd" ] + }, + "acm006992jsd" : { + "type" : "CodePackage", + "id" : "acm006992jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm006993jsd" ] + }, + "acm006993jsd" : { + "type" : "CodePackage", + "id" : "acm006993jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm006994jsd" ] + }, + "acm006994jsd" : { + "type" : "CodePackage", + "id" : "acm006994jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm006995jsd" ] + }, + "acm006995jsd" : { + "type" : "CodePackage", + "id" : "acm006995jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm006996jsd" ] + }, + "acm006996jsd" : { + "type" : "CodePackage", + "id" : "acm006996jsd", + "name" : "diffhighlighter", + "parentId" : null, + "content" : [ "acm006990jsd" ] + }, + "acm006997jsd" : { + "type" : "ControlElement", + "id" : "acm006997jsd", + "name" : "SplitDiffHighlighter" + }, + "acm006998jsd" : { + "type" : "ControlElement", + "id" : "acm006998jsd", + "name" : "highlight" + }, + "acm006999jsd" : { + "type" : "ControlElement", + "id" : "acm006999jsd", + "name" : "getPositionInText" + }, + "acm007000jsd" : { + "type" : "ClassUnit", + "id" : "acm007000jsd", + "name" : "SplitDiffHighlighter", + "compilationUnitId" : "acm006990jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006985jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006648jsd" ], + "content" : [ "acm006997jsd", "acm006998jsd", "acm006999jsd" ] + }, + "acm007001jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007001jsd", + "name" : "UnifiedDiffHighlighter", + "parentId" : "acm006975jsd", + "content" : [ "acm007012jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "diffhighlighter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007002jsd" : { + "type" : "CodePackage", + "id" : "acm007002jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007003jsd" ] + }, + "acm007003jsd" : { + "type" : "CodePackage", + "id" : "acm007003jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007004jsd" ] + }, + "acm007004jsd" : { + "type" : "CodePackage", + "id" : "acm007004jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007005jsd" ] + }, + "acm007005jsd" : { + "type" : "CodePackage", + "id" : "acm007005jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007006jsd" ] + }, + "acm007006jsd" : { + "type" : "CodePackage", + "id" : "acm007006jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007007jsd" ] + }, + "acm007007jsd" : { + "type" : "CodePackage", + "id" : "acm007007jsd", + "name" : "diffhighlighter", + "parentId" : null, + "content" : [ "acm007001jsd" ] + }, + "acm007008jsd" : { + "type" : "ControlElement", + "id" : "acm007008jsd", + "name" : "UnifiedDiffHighlighter" + }, + "acm007009jsd" : { + "type" : "ControlElement", + "id" : "acm007009jsd", + "name" : "highlight" + }, + "acm007010jsd" : { + "type" : "ControlElement", + "id" : "acm007010jsd", + "name" : "appendToTextArea" + }, + "acm007011jsd" : { + "type" : "ControlElement", + "id" : "acm007011jsd", + "name" : "findChange" + }, + "acm007012jsd" : { + "type" : "ClassUnit", + "id" : "acm007012jsd", + "name" : "UnifiedDiffHighlighter", + "compilationUnitId" : "acm007001jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006985jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006648jsd" ], + "content" : [ "acm007008jsd", "acm007009jsd", "acm007010jsd", "acm007011jsd" ] + }, + "acm007013jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007013jsd", + "name" : "CommentMerger", + "parentId" : "acm007019jsd", + "content" : [ "acm007021jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007014jsd" : { + "type" : "CodePackage", + "id" : "acm007014jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007015jsd" ] + }, + "acm007015jsd" : { + "type" : "CodePackage", + "id" : "acm007015jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007016jsd" ] + }, + "acm007016jsd" : { + "type" : "CodePackage", + "id" : "acm007016jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007017jsd" ] + }, + "acm007017jsd" : { + "type" : "CodePackage", + "id" : "acm007017jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007018jsd" ] + }, + "acm007018jsd" : { + "type" : "CodePackage", + "id" : "acm007018jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007019jsd" ] + }, + "acm007019jsd" : { + "type" : "CodePackage", + "id" : "acm007019jsd", + "name" : "fieldsmerger", + "parentId" : "acm006646jsd", + "content" : [ "acm007013jsd", "acm007022jsd", "acm007031jsd", "acm007042jsd", "acm007051jsd", "acm007060jsd" ] + }, + "acm007020jsd" : { + "type" : "ControlElement", + "id" : "acm007020jsd", + "name" : "merge" + }, + "acm007021jsd" : { + "type" : "ClassUnit", + "id" : "acm007021jsd", + "name" : "CommentMerger", + "compilationUnitId" : "acm007013jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007030jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007020jsd" ] + }, + "acm007022jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007022jsd", + "name" : "FieldMerger", + "parentId" : "acm007019jsd", + "content" : [ "acm007030jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007023jsd" : { + "type" : "CodePackage", + "id" : "acm007023jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007024jsd" ] + }, + "acm007024jsd" : { + "type" : "CodePackage", + "id" : "acm007024jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007025jsd" ] + }, + "acm007025jsd" : { + "type" : "CodePackage", + "id" : "acm007025jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007026jsd" ] + }, + "acm007026jsd" : { + "type" : "CodePackage", + "id" : "acm007026jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007027jsd" ] + }, + "acm007027jsd" : { + "type" : "CodePackage", + "id" : "acm007027jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007028jsd" ] + }, + "acm007028jsd" : { + "type" : "CodePackage", + "id" : "acm007028jsd", + "name" : "fieldsmerger", + "parentId" : null, + "content" : [ "acm007022jsd" ] + }, + "acm007029jsd" : { + "type" : "ControlElement", + "id" : "acm007029jsd", + "name" : "merge" + }, + "acm007030jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007030jsd", + "name" : "FieldMerger", + "compilationUnitId" : "acm007022jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007029jsd" ] + }, + "acm007031jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007031jsd", + "name" : "FieldMergerFactory", + "parentId" : "acm007019jsd", + "content" : [ "acm007041jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007032jsd" : { + "type" : "CodePackage", + "id" : "acm007032jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007033jsd" ] + }, + "acm007033jsd" : { + "type" : "CodePackage", + "id" : "acm007033jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007034jsd" ] + }, + "acm007034jsd" : { + "type" : "CodePackage", + "id" : "acm007034jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007035jsd" ] + }, + "acm007035jsd" : { + "type" : "CodePackage", + "id" : "acm007035jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007036jsd" ] + }, + "acm007036jsd" : { + "type" : "CodePackage", + "id" : "acm007036jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007037jsd" ] + }, + "acm007037jsd" : { + "type" : "CodePackage", + "id" : "acm007037jsd", + "name" : "fieldsmerger", + "parentId" : null, + "content" : [ "acm007031jsd" ] + }, + "acm007038jsd" : { + "type" : "ControlElement", + "id" : "acm007038jsd", + "name" : "FieldMergerFactory" + }, + "acm007039jsd" : { + "type" : "ControlElement", + "id" : "acm007039jsd", + "name" : "create" + }, + "acm007040jsd" : { + "type" : "ControlElement", + "id" : "acm007040jsd", + "name" : "canMerge" + }, + "acm007041jsd" : { + "type" : "ClassUnit", + "id" : "acm007041jsd", + "name" : "FieldMergerFactory", + "compilationUnitId" : "acm007031jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007021jsd", "acm007030jsd", "acm007050jsd", "acm007059jsd", "acm007069jsd", "acm018673jsd", "acm020774jsd" ], + "content" : [ "acm007038jsd", "acm007039jsd", "acm007040jsd" ] + }, + "acm007042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007042jsd", + "name" : "FileMerger", + "parentId" : "acm007019jsd", + "content" : [ "acm007050jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007043jsd" : { + "type" : "CodePackage", + "id" : "acm007043jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007044jsd" ] + }, + "acm007044jsd" : { + "type" : "CodePackage", + "id" : "acm007044jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007045jsd" ] + }, + "acm007045jsd" : { + "type" : "CodePackage", + "id" : "acm007045jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007046jsd" ] + }, + "acm007046jsd" : { + "type" : "CodePackage", + "id" : "acm007046jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007047jsd" ] + }, + "acm007047jsd" : { + "type" : "CodePackage", + "id" : "acm007047jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007048jsd" ] + }, + "acm007048jsd" : { + "type" : "CodePackage", + "id" : "acm007048jsd", + "name" : "fieldsmerger", + "parentId" : null, + "content" : [ "acm007042jsd" ] + }, + "acm007049jsd" : { + "type" : "ControlElement", + "id" : "acm007049jsd", + "name" : "merge" + }, + "acm007050jsd" : { + "type" : "ClassUnit", + "id" : "acm007050jsd", + "name" : "FileMerger", + "compilationUnitId" : "acm007042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007030jsd" ], + "datatypeReferencesIds" : [ "acm018509jsd" ], + "content" : [ "acm007049jsd" ] + }, + "acm007051jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007051jsd", + "name" : "GroupMerger", + "parentId" : "acm007019jsd", + "content" : [ "acm007059jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007052jsd" : { + "type" : "CodePackage", + "id" : "acm007052jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007053jsd" ] + }, + "acm007053jsd" : { + "type" : "CodePackage", + "id" : "acm007053jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007054jsd" ] + }, + "acm007054jsd" : { + "type" : "CodePackage", + "id" : "acm007054jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007055jsd" ] + }, + "acm007055jsd" : { + "type" : "CodePackage", + "id" : "acm007055jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007056jsd" ] + }, + "acm007056jsd" : { + "type" : "CodePackage", + "id" : "acm007056jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007057jsd" ] + }, + "acm007057jsd" : { + "type" : "CodePackage", + "id" : "acm007057jsd", + "name" : "fieldsmerger", + "parentId" : null, + "content" : [ "acm007051jsd" ] + }, + "acm007058jsd" : { + "type" : "ControlElement", + "id" : "acm007058jsd", + "name" : "merge" + }, + "acm007059jsd" : { + "type" : "ClassUnit", + "id" : "acm007059jsd", + "name" : "GroupMerger", + "compilationUnitId" : "acm007051jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007030jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007058jsd" ] + }, + "acm007060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007060jsd", + "name" : "KeywordMerger", + "parentId" : "acm007019jsd", + "content" : [ "acm007069jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "fieldsmerger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007061jsd" : { + "type" : "CodePackage", + "id" : "acm007061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007062jsd" ] + }, + "acm007062jsd" : { + "type" : "CodePackage", + "id" : "acm007062jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007063jsd" ] + }, + "acm007063jsd" : { + "type" : "CodePackage", + "id" : "acm007063jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007064jsd" ] + }, + "acm007064jsd" : { + "type" : "CodePackage", + "id" : "acm007064jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007065jsd" ] + }, + "acm007065jsd" : { + "type" : "CodePackage", + "id" : "acm007065jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007066jsd" ] + }, + "acm007066jsd" : { + "type" : "CodePackage", + "id" : "acm007066jsd", + "name" : "fieldsmerger", + "parentId" : null, + "content" : [ "acm007060jsd" ] + }, + "acm007067jsd" : { + "type" : "ControlElement", + "id" : "acm007067jsd", + "name" : "KeywordMerger" + }, + "acm007068jsd" : { + "type" : "ControlElement", + "id" : "acm007068jsd", + "name" : "merge" + }, + "acm007069jsd" : { + "type" : "ClassUnit", + "id" : "acm007069jsd", + "name" : "KeywordMerger", + "compilationUnitId" : "acm007060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007030jsd" ], + "datatypeReferencesIds" : [ "acm020774jsd" ], + "content" : [ "acm007067jsd", "acm007068jsd" ] + }, + "acm007070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007070jsd", + "name" : "ThreeWayMergeToolbar", + "parentId" : "acm007076jsd", + "content" : [ "acm007107jsd", "acm007112jsd", "acm007117jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "mergeentries", "newmergedialog", "toolbar" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007071jsd" : { + "type" : "CodePackage", + "id" : "acm007071jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007072jsd" ] + }, + "acm007072jsd" : { + "type" : "CodePackage", + "id" : "acm007072jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007073jsd" ] + }, + "acm007073jsd" : { + "type" : "CodePackage", + "id" : "acm007073jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007074jsd" ] + }, + "acm007074jsd" : { + "type" : "CodePackage", + "id" : "acm007074jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm007075jsd" ] + }, + "acm007075jsd" : { + "type" : "CodePackage", + "id" : "acm007075jsd", + "name" : "newmergedialog", + "parentId" : null, + "content" : [ "acm007076jsd" ] + }, + "acm007076jsd" : { + "type" : "CodePackage", + "id" : "acm007076jsd", + "name" : "toolbar", + "parentId" : "acm006646jsd", + "content" : [ "acm007070jsd" ] + }, + "acm007077jsd" : { + "type" : "ControlElement", + "id" : "acm007077jsd", + "name" : "ThreeWayMergeToolbar" + }, + "acm007078jsd" : { + "type" : "ControlElement", + "id" : "acm007078jsd", + "name" : "initialize" + }, + "acm007079jsd" : { + "type" : "ControlElement", + "id" : "acm007079jsd", + "name" : "toString" + }, + "acm007080jsd" : { + "type" : "ControlElement", + "id" : "acm007080jsd", + "name" : "fromString" + }, + "acm007081jsd" : { + "type" : "ControlElement", + "id" : "acm007081jsd", + "name" : "toString" + }, + "acm007082jsd" : { + "type" : "ControlElement", + "id" : "acm007082jsd", + "name" : "fromString" + }, + "acm007083jsd" : { + "type" : "ControlElement", + "id" : "acm007083jsd", + "name" : "loadSavedConfiguration" + }, + "acm007084jsd" : { + "type" : "ControlElement", + "id" : "acm007084jsd", + "name" : "saveToolbarConfiguration" + }, + "acm007085jsd" : { + "type" : "ControlElement", + "id" : "acm007085jsd", + "name" : "diffViewProperty" + }, + "acm007086jsd" : { + "type" : "ControlElement", + "id" : "acm007086jsd", + "name" : "getDiffView" + }, + "acm007087jsd" : { + "type" : "ControlElement", + "id" : "acm007087jsd", + "name" : "setDiffView" + }, + "acm007088jsd" : { + "type" : "ControlElement", + "id" : "acm007088jsd", + "name" : "showDiffProperty" + }, + "acm007089jsd" : { + "type" : "ControlElement", + "id" : "acm007089jsd", + "name" : "setShowDiff" + }, + "acm007090jsd" : { + "type" : "ControlElement", + "id" : "acm007090jsd", + "name" : "hideEqualFieldsProperty" + }, + "acm007091jsd" : { + "type" : "ControlElement", + "id" : "acm007091jsd", + "name" : "shouldHideEqualFields" + }, + "acm007092jsd" : { + "type" : "ControlElement", + "id" : "acm007092jsd", + "name" : "notShowDiffProperty" + }, + "acm007093jsd" : { + "type" : "ControlElement", + "id" : "acm007093jsd", + "name" : "shouldShowDiffs" + }, + "acm007094jsd" : { + "type" : "ControlElement", + "id" : "acm007094jsd", + "name" : "diffHighlightingMethodProperty" + }, + "acm007095jsd" : { + "type" : "ControlElement", + "id" : "acm007095jsd", + "name" : "getDiffHighlightingMethod" + }, + "acm007096jsd" : { + "type" : "ControlElement", + "id" : "acm007096jsd", + "name" : "setDiffHighlightingMethod" + }, + "acm007097jsd" : { + "type" : "ControlElement", + "id" : "acm007097jsd", + "name" : "setOnSelectLeftEntryValuesButtonClicked" + }, + "acm007098jsd" : { + "type" : "ControlElement", + "id" : "acm007098jsd", + "name" : "setOnSelectRightEntryValuesButtonClicked" + }, + "acm007099jsd" : { + "type" : "ControlElement", + "id" : "acm007099jsd", + "name" : "PlainTextOrDiff" + }, + "acm007100jsd" : { + "type" : "ControlElement", + "id" : "acm007100jsd", + "name" : "parse" + }, + "acm007101jsd" : { + "type" : "ControlElement", + "id" : "acm007101jsd", + "name" : "getValue" + }, + "acm007102jsd" : { + "type" : "ControlElement", + "id" : "acm007102jsd", + "name" : "fromString" + }, + "acm007103jsd" : { + "type" : "ControlElement", + "id" : "acm007103jsd", + "name" : "DiffView" + }, + "acm007104jsd" : { + "type" : "ControlElement", + "id" : "acm007104jsd", + "name" : "parse" + }, + "acm007105jsd" : { + "type" : "ControlElement", + "id" : "acm007105jsd", + "name" : "getValue" + }, + "acm007106jsd" : { + "type" : "ControlElement", + "id" : "acm007106jsd", + "name" : "fromString" + }, + "acm007107jsd" : { + "type" : "ClassUnit", + "id" : "acm007107jsd", + "name" : "ThreeWayMergeToolbar", + "compilationUnitId" : "acm007070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006648jsd", "acm007112jsd", "acm007117jsd", "acm020923jsd", "acm021206jsd" ], + "content" : [ "acm007077jsd", "acm007078jsd", "acm007079jsd", "acm007080jsd", "acm007081jsd", "acm007082jsd", "acm007083jsd", "acm007084jsd", "acm007085jsd", "acm007086jsd", "acm007087jsd", "acm007088jsd", "acm007089jsd", "acm007090jsd", "acm007091jsd", "acm007092jsd", "acm007093jsd", "acm007094jsd", "acm007095jsd", "acm007096jsd", "acm007097jsd", "acm007098jsd", "acm007099jsd", "acm007100jsd", "acm007101jsd", "acm007102jsd", "acm007103jsd", "acm007104jsd", "acm007105jsd", "acm007106jsd" ] + }, + "acm007108jsd" : { + "type" : "ControlElement", + "id" : "acm007108jsd", + "name" : "PlainTextOrDiff" + }, + "acm007109jsd" : { + "type" : "ControlElement", + "id" : "acm007109jsd", + "name" : "parse" + }, + "acm007110jsd" : { + "type" : "ControlElement", + "id" : "acm007110jsd", + "name" : "getValue" + }, + "acm007111jsd" : { + "type" : "ControlElement", + "id" : "acm007111jsd", + "name" : "fromString" + }, + "acm007112jsd" : { + "type" : "ClassUnit", + "id" : "acm007112jsd", + "name" : "PlainTextOrDiff", + "compilationUnitId" : "acm007070jsd", + "parentDatatypeId" : "acm007107jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007112jsd" ], + "content" : [ "acm007108jsd", "acm007109jsd", "acm007110jsd", "acm007111jsd" ] + }, + "acm007113jsd" : { + "type" : "ControlElement", + "id" : "acm007113jsd", + "name" : "DiffView" + }, + "acm007114jsd" : { + "type" : "ControlElement", + "id" : "acm007114jsd", + "name" : "parse" + }, + "acm007115jsd" : { + "type" : "ControlElement", + "id" : "acm007115jsd", + "name" : "getValue" + }, + "acm007116jsd" : { + "type" : "ControlElement", + "id" : "acm007116jsd", + "name" : "fromString" + }, + "acm007117jsd" : { + "type" : "ClassUnit", + "id" : "acm007117jsd", + "name" : "DiffView", + "compilationUnitId" : "acm007070jsd", + "parentDatatypeId" : "acm007107jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007117jsd" ], + "content" : [ "acm007113jsd", "acm007114jsd", "acm007115jsd", "acm007116jsd" ] + }, + "acm007118jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007118jsd", + "name" : "AdvancedCiteDialogView", + "parentId" : "acm007122jsd", + "content" : [ "acm007125jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007119jsd" : { + "type" : "CodePackage", + "id" : "acm007119jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007120jsd" ] + }, + "acm007120jsd" : { + "type" : "CodePackage", + "id" : "acm007120jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007121jsd" ] + }, + "acm007121jsd" : { + "type" : "CodePackage", + "id" : "acm007121jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007122jsd" ] + }, + "acm007122jsd" : { + "type" : "CodePackage", + "id" : "acm007122jsd", + "name" : "openoffice", + "parentId" : "acm001569jsd", + "content" : [ "acm007118jsd", "acm007126jsd", "acm007135jsd", "acm007154jsd", "acm007166jsd", "acm007178jsd", "acm007188jsd", "acm007197jsd", "acm007234jsd", "acm007259jsd", "acm007281jsd", "acm007304jsd", "acm007314jsd", "acm007332jsd" ] + }, + "acm007123jsd" : { + "type" : "ControlElement", + "id" : "acm007123jsd", + "name" : "AdvancedCiteDialogView" + }, + "acm007124jsd" : { + "type" : "ControlElement", + "id" : "acm007124jsd", + "name" : "initialize" + }, + "acm007125jsd" : { + "type" : "ClassUnit", + "id" : "acm007125jsd", + "name" : "AdvancedCiteDialogView", + "compilationUnitId" : "acm007118jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007134jsd" ], + "content" : [ "acm007123jsd", "acm007124jsd" ] + }, + "acm007126jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007126jsd", + "name" : "AdvancedCiteDialogViewModel", + "parentId" : "acm007122jsd", + "content" : [ "acm007134jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007127jsd" : { + "type" : "CodePackage", + "id" : "acm007127jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007128jsd" ] + }, + "acm007128jsd" : { + "type" : "CodePackage", + "id" : "acm007128jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007129jsd" ] + }, + "acm007129jsd" : { + "type" : "CodePackage", + "id" : "acm007129jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007130jsd" ] + }, + "acm007130jsd" : { + "type" : "CodePackage", + "id" : "acm007130jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007126jsd" ] + }, + "acm007131jsd" : { + "type" : "ControlElement", + "id" : "acm007131jsd", + "name" : "pageInfoProperty" + }, + "acm007132jsd" : { + "type" : "ControlElement", + "id" : "acm007132jsd", + "name" : "citeInParProperty" + }, + "acm007133jsd" : { + "type" : "ControlElement", + "id" : "acm007133jsd", + "name" : "citeInTextProperty" + }, + "acm007134jsd" : { + "type" : "ClassUnit", + "id" : "acm007134jsd", + "name" : "AdvancedCiteDialogViewModel", + "compilationUnitId" : "acm007126jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007131jsd", "acm007132jsd", "acm007133jsd" ] + }, + "acm007135jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007135jsd", + "name" : "Bootstrap", + "parentId" : "acm007122jsd", + "content" : [ "acm007153jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007136jsd" : { + "type" : "CodePackage", + "id" : "acm007136jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007137jsd" ] + }, + "acm007137jsd" : { + "type" : "CodePackage", + "id" : "acm007137jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007138jsd" ] + }, + "acm007138jsd" : { + "type" : "CodePackage", + "id" : "acm007138jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007139jsd" ] + }, + "acm007139jsd" : { + "type" : "CodePackage", + "id" : "acm007139jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007135jsd" ] + }, + "acm007140jsd" : { + "type" : "ControlElement", + "id" : "acm007140jsd", + "name" : "insertBasicFactories" + }, + "acm007141jsd" : { + "type" : "ControlElement", + "id" : "acm007141jsd", + "name" : "getDefaultOptions" + }, + "acm007142jsd" : { + "type" : "ControlElement", + "id" : "acm007142jsd", + "name" : "createInitialComponentContext" + }, + "acm007143jsd" : { + "type" : "ControlElement", + "id" : "acm007143jsd", + "name" : "createInitialComponentContext" + }, + "acm007144jsd" : { + "type" : "ControlElement", + "id" : "acm007144jsd", + "name" : "createSimpleServiceManager" + }, + "acm007145jsd" : { + "type" : "ControlElement", + "id" : "acm007145jsd", + "name" : "defaultBootstrap_InitialComponentContext" + }, + "acm007146jsd" : { + "type" : "ControlElement", + "id" : "acm007146jsd", + "name" : "defaultBootstrap_InitialComponentContext" + }, + "acm007147jsd" : { + "type" : "ControlElement", + "id" : "acm007147jsd", + "name" : "defaultBootstrap_InitialComponentContext" + }, + "acm007148jsd" : { + "type" : "ControlElement", + "id" : "acm007148jsd", + "name" : "cppuhelper_bootstrap" + }, + "acm007149jsd" : { + "type" : "ControlElement", + "id" : "acm007149jsd", + "name" : "bootstrap" + }, + "acm007150jsd" : { + "type" : "ControlElement", + "id" : "acm007150jsd", + "name" : "bootstrap" + }, + "acm007151jsd" : { + "type" : "ControlElement", + "id" : "acm007151jsd", + "name" : "pipe" + }, + "acm007152jsd" : { + "type" : "ControlElement", + "id" : "acm007152jsd", + "name" : "run" + }, + "acm007153jsd" : { + "type" : "ClassUnit", + "id" : "acm007153jsd", + "name" : "Bootstrap", + "compilationUnitId" : "acm007135jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007153jsd" ], + "content" : [ "acm007140jsd", "acm007141jsd", "acm007142jsd", "acm007143jsd", "acm007144jsd", "acm007145jsd", "acm007146jsd", "acm007147jsd", "acm007148jsd", "acm007149jsd", "acm007150jsd", "acm007151jsd", "acm007152jsd" ] + }, + "acm007154jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007154jsd", + "name" : "CitationEntryViewModel", + "parentId" : "acm007122jsd", + "content" : [ "acm007165jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007155jsd" : { + "type" : "CodePackage", + "id" : "acm007155jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007156jsd" ] + }, + "acm007156jsd" : { + "type" : "CodePackage", + "id" : "acm007156jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007157jsd" ] + }, + "acm007157jsd" : { + "type" : "CodePackage", + "id" : "acm007157jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007158jsd" ] + }, + "acm007158jsd" : { + "type" : "CodePackage", + "id" : "acm007158jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007154jsd" ] + }, + "acm007159jsd" : { + "type" : "ControlElement", + "id" : "acm007159jsd", + "name" : "CitationEntryViewModel" + }, + "acm007160jsd" : { + "type" : "ControlElement", + "id" : "acm007160jsd", + "name" : "CitationEntryViewModel" + }, + "acm007161jsd" : { + "type" : "ControlElement", + "id" : "acm007161jsd", + "name" : "toCitationEntry" + }, + "acm007162jsd" : { + "type" : "ControlElement", + "id" : "acm007162jsd", + "name" : "citationProperty" + }, + "acm007163jsd" : { + "type" : "ControlElement", + "id" : "acm007163jsd", + "name" : "extraInformationProperty" + }, + "acm007164jsd" : { + "type" : "ControlElement", + "id" : "acm007164jsd", + "name" : "setExtraInfo" + }, + "acm007165jsd" : { + "type" : "ClassUnit", + "id" : "acm007165jsd", + "name" : "CitationEntryViewModel", + "compilationUnitId" : "acm007154jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019482jsd" ], + "content" : [ "acm007159jsd", "acm007160jsd", "acm007161jsd", "acm007162jsd", "acm007163jsd", "acm007164jsd" ] + }, + "acm007166jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007166jsd", + "name" : "DetectOpenOfficeInstallation", + "parentId" : "acm007122jsd", + "content" : [ "acm007177jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007167jsd" : { + "type" : "CodePackage", + "id" : "acm007167jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007168jsd" ] + }, + "acm007168jsd" : { + "type" : "CodePackage", + "id" : "acm007168jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007169jsd" ] + }, + "acm007169jsd" : { + "type" : "CodePackage", + "id" : "acm007169jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007170jsd" ] + }, + "acm007170jsd" : { + "type" : "CodePackage", + "id" : "acm007170jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007166jsd" ] + }, + "acm007171jsd" : { + "type" : "ControlElement", + "id" : "acm007171jsd", + "name" : "DetectOpenOfficeInstallation" + }, + "acm007172jsd" : { + "type" : "ControlElement", + "id" : "acm007172jsd", + "name" : "isExecutablePathDefined" + }, + "acm007173jsd" : { + "type" : "ControlElement", + "id" : "acm007173jsd", + "name" : "selectInstallationPath" + }, + "acm007174jsd" : { + "type" : "ControlElement", + "id" : "acm007174jsd", + "name" : "checkAutoDetectedPaths" + }, + "acm007175jsd" : { + "type" : "ControlElement", + "id" : "acm007175jsd", + "name" : "setOpenOfficePreferences" + }, + "acm007176jsd" : { + "type" : "ControlElement", + "id" : "acm007176jsd", + "name" : "chooseAmongInstallations" + }, + "acm007177jsd" : { + "type" : "ClassUnit", + "id" : "acm007177jsd", + "name" : "DetectOpenOfficeInstallation", + "compilationUnitId" : "acm007166jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003042jsd", "acm009752jsd", "acm009756jsd", "acm016014jsd" ], + "content" : [ "acm007171jsd", "acm007172jsd", "acm007173jsd", "acm007174jsd", "acm007175jsd", "acm007176jsd" ] + }, + "acm007178jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007178jsd", + "name" : "ManageCitationsDialogView", + "parentId" : "acm007122jsd", + "content" : [ "acm007187jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007179jsd" : { + "type" : "CodePackage", + "id" : "acm007179jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007180jsd" ] + }, + "acm007180jsd" : { + "type" : "CodePackage", + "id" : "acm007180jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007181jsd" ] + }, + "acm007181jsd" : { + "type" : "CodePackage", + "id" : "acm007181jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007182jsd" ] + }, + "acm007182jsd" : { + "type" : "CodePackage", + "id" : "acm007182jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007178jsd" ] + }, + "acm007183jsd" : { + "type" : "ControlElement", + "id" : "acm007183jsd", + "name" : "ManageCitationsDialogView" + }, + "acm007184jsd" : { + "type" : "ControlElement", + "id" : "acm007184jsd", + "name" : "initialize" + }, + "acm007185jsd" : { + "type" : "ControlElement", + "id" : "acm007185jsd", + "name" : "getText" + }, + "acm007186jsd" : { + "type" : "ControlElement", + "id" : "acm007186jsd", + "name" : "isOkToShowThisDialog" + }, + "acm007187jsd" : { + "type" : "ClassUnit", + "id" : "acm007187jsd", + "name" : "ManageCitationsDialogView", + "compilationUnitId" : "acm007178jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007165jsd", "acm007196jsd", "acm007233jsd" ], + "content" : [ "acm007183jsd", "acm007184jsd", "acm007185jsd", "acm007186jsd" ] + }, + "acm007188jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007188jsd", + "name" : "ManageCitationsDialogViewModel", + "parentId" : "acm007122jsd", + "content" : [ "acm007196jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007189jsd" : { + "type" : "CodePackage", + "id" : "acm007189jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007190jsd" ] + }, + "acm007190jsd" : { + "type" : "CodePackage", + "id" : "acm007190jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007191jsd" ] + }, + "acm007191jsd" : { + "type" : "CodePackage", + "id" : "acm007191jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007192jsd" ] + }, + "acm007192jsd" : { + "type" : "CodePackage", + "id" : "acm007192jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007188jsd" ] + }, + "acm007193jsd" : { + "type" : "ControlElement", + "id" : "acm007193jsd", + "name" : "ManageCitationsDialogViewModel" + }, + "acm007194jsd" : { + "type" : "ControlElement", + "id" : "acm007194jsd", + "name" : "storeSettings" + }, + "acm007195jsd" : { + "type" : "ControlElement", + "id" : "acm007195jsd", + "name" : "citationsProperty" + }, + "acm007196jsd" : { + "type" : "ClassUnit", + "id" : "acm007196jsd", + "name" : "ManageCitationsDialogViewModel", + "compilationUnitId" : "acm007188jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007165jsd", "acm007233jsd", "acm019482jsd" ], + "content" : [ "acm007193jsd", "acm007194jsd", "acm007195jsd" ] + }, + "acm007197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007197jsd", + "name" : "OOBibBase", + "parentId" : "acm007122jsd", + "content" : [ "acm007233jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007198jsd" : { + "type" : "CodePackage", + "id" : "acm007198jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007199jsd" ] + }, + "acm007199jsd" : { + "type" : "CodePackage", + "id" : "acm007199jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007200jsd" ] + }, + "acm007200jsd" : { + "type" : "CodePackage", + "id" : "acm007200jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007201jsd" ] + }, + "acm007201jsd" : { + "type" : "CodePackage", + "id" : "acm007201jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007197jsd" ] + }, + "acm007202jsd" : { + "type" : "ControlElement", + "id" : "acm007202jsd", + "name" : "OOBibBase" + }, + "acm007203jsd" : { + "type" : "ControlElement", + "id" : "acm007203jsd", + "name" : "guiActionSelectDocument" + }, + "acm007204jsd" : { + "type" : "ControlElement", + "id" : "acm007204jsd", + "name" : "isConnectedToDocument" + }, + "acm007205jsd" : { + "type" : "ControlElement", + "id" : "acm007205jsd", + "name" : "isDocumentConnectionMissing" + }, + "acm007206jsd" : { + "type" : "ControlElement", + "id" : "acm007206jsd", + "name" : "getXTextDocument" + }, + "acm007207jsd" : { + "type" : "ControlElement", + "id" : "acm007207jsd", + "name" : "getCurrentDocumentTitle" + }, + "acm007208jsd" : { + "type" : "ControlElement", + "id" : "acm007208jsd", + "name" : "showDialog" + }, + "acm007209jsd" : { + "type" : "ControlElement", + "id" : "acm007209jsd", + "name" : "showDialog" + }, + "acm007210jsd" : { + "type" : "ControlElement", + "id" : "acm007210jsd", + "name" : "collectResults" + }, + "acm007211jsd" : { + "type" : "ControlElement", + "id" : "acm007211jsd", + "name" : "testDialog" + }, + "acm007212jsd" : { + "type" : "ControlElement", + "id" : "acm007212jsd", + "name" : "testDialog" + }, + "acm007213jsd" : { + "type" : "ControlElement", + "id" : "acm007213jsd", + "name" : "testDialog" + }, + "acm007214jsd" : { + "type" : "ControlElement", + "id" : "acm007214jsd", + "name" : "testDialog" + }, + "acm007215jsd" : { + "type" : "ControlElement", + "id" : "acm007215jsd", + "name" : "getUserCursorForTextInsertion" + }, + "acm007216jsd" : { + "type" : "ControlElement", + "id" : "acm007216jsd", + "name" : "getFunctionalTextViewCursor" + }, + "acm007217jsd" : { + "type" : "ControlElement", + "id" : "acm007217jsd", + "name" : "checkRangeOverlaps" + }, + "acm007218jsd" : { + "type" : "ControlElement", + "id" : "acm007218jsd", + "name" : "checkRangeOverlapsWithCursor" + }, + "acm007219jsd" : { + "type" : "ControlElement", + "id" : "acm007219jsd", + "name" : "checkIfOpenOfficeIsRecordingChanges" + }, + "acm007220jsd" : { + "type" : "ControlElement", + "id" : "acm007220jsd", + "name" : "styleIsRequired" + }, + "acm007221jsd" : { + "type" : "ControlElement", + "id" : "acm007221jsd", + "name" : "getFrontend" + }, + "acm007222jsd" : { + "type" : "ControlElement", + "id" : "acm007222jsd", + "name" : "databaseIsRequired" + }, + "acm007223jsd" : { + "type" : "ControlElement", + "id" : "acm007223jsd", + "name" : "selectedBibEntryIsRequired" + }, + "acm007224jsd" : { + "type" : "ControlElement", + "id" : "acm007224jsd", + "name" : "checkStyleExistsInTheDocument" + }, + "acm007225jsd" : { + "type" : "ControlElement", + "id" : "acm007225jsd", + "name" : "checkStylesExistInTheDocument" + }, + "acm007226jsd" : { + "type" : "ControlElement", + "id" : "acm007226jsd", + "name" : "guiActionGetCitationEntries" + }, + "acm007227jsd" : { + "type" : "ControlElement", + "id" : "acm007227jsd", + "name" : "guiActionApplyCitationEntries" + }, + "acm007228jsd" : { + "type" : "ControlElement", + "id" : "acm007228jsd", + "name" : "guiActionInsertEntry" + }, + "acm007229jsd" : { + "type" : "ControlElement", + "id" : "acm007229jsd", + "name" : "guiActionMergeCitationGroups" + }, + "acm007230jsd" : { + "type" : "ControlElement", + "id" : "acm007230jsd", + "name" : "guiActionSeparateCitations" + }, + "acm007231jsd" : { + "type" : "ControlElement", + "id" : "acm007231jsd", + "name" : "exportCitedHelper" + }, + "acm007232jsd" : { + "type" : "ControlElement", + "id" : "acm007232jsd", + "name" : "guiActionUpdateDocument" + }, + "acm007233jsd" : { + "type" : "ClassUnit", + "id" : "acm007233jsd", + "name" : "OOBibBase", + "compilationUnitId" : "acm007197jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007233jsd", "acm007254jsd", "acm007280jsd", "acm010366jsd", "acm015980jsd", "acm016065jsd", "acm016093jsd", "acm016204jsd", "acm016214jsd", "acm016334jsd", "acm017988jsd", "acm018267jsd", "acm019482jsd", "acm019580jsd", "acm019739jsd", "acm019831jsd", "acm019938jsd", "acm019947jsd", "acm020187jsd", "acm020210jsd" ], + "content" : [ "acm007202jsd", "acm007203jsd", "acm007204jsd", "acm007205jsd", "acm007206jsd", "acm007207jsd", "acm007208jsd", "acm007209jsd", "acm007210jsd", "acm007211jsd", "acm007212jsd", "acm007213jsd", "acm007214jsd", "acm007215jsd", "acm007216jsd", "acm007217jsd", "acm007218jsd", "acm007219jsd", "acm007220jsd", "acm007221jsd", "acm007222jsd", "acm007223jsd", "acm007224jsd", "acm007225jsd", "acm007226jsd", "acm007227jsd", "acm007228jsd", "acm007229jsd", "acm007230jsd", "acm007231jsd", "acm007232jsd" ] + }, + "acm007234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007234jsd", + "name" : "OOBibBaseConnect", + "parentId" : "acm007122jsd", + "content" : [ "acm007254jsd", "acm007258jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007235jsd" : { + "type" : "CodePackage", + "id" : "acm007235jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007236jsd" ] + }, + "acm007236jsd" : { + "type" : "CodePackage", + "id" : "acm007236jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007237jsd" ] + }, + "acm007237jsd" : { + "type" : "CodePackage", + "id" : "acm007237jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007238jsd" ] + }, + "acm007238jsd" : { + "type" : "CodePackage", + "id" : "acm007238jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007234jsd" ] + }, + "acm007239jsd" : { + "type" : "ControlElement", + "id" : "acm007239jsd", + "name" : "OOBibBaseConnect" + }, + "acm007240jsd" : { + "type" : "ControlElement", + "id" : "acm007240jsd", + "name" : "simpleBootstrap" + }, + "acm007241jsd" : { + "type" : "ControlElement", + "id" : "acm007241jsd", + "name" : "closeOfficeConnection" + }, + "acm007242jsd" : { + "type" : "ControlElement", + "id" : "acm007242jsd", + "name" : "getTextDocuments" + }, + "acm007243jsd" : { + "type" : "ControlElement", + "id" : "acm007243jsd", + "name" : "selectDocumentDialog" + }, + "acm007244jsd" : { + "type" : "ControlElement", + "id" : "acm007244jsd", + "name" : "DocumentTitleViewModel" + }, + "acm007245jsd" : { + "type" : "ControlElement", + "id" : "acm007245jsd", + "name" : "getXtextDocument" + }, + "acm007246jsd" : { + "type" : "ControlElement", + "id" : "acm007246jsd", + "name" : "toString" + }, + "acm007247jsd" : { + "type" : "ControlElement", + "id" : "acm007247jsd", + "name" : "selectDocument" + }, + "acm007248jsd" : { + "type" : "ControlElement", + "id" : "acm007248jsd", + "name" : "forgetDocument" + }, + "acm007249jsd" : { + "type" : "ControlElement", + "id" : "acm007249jsd", + "name" : "isConnectedToDocument" + }, + "acm007250jsd" : { + "type" : "ControlElement", + "id" : "acm007250jsd", + "name" : "isDocumentConnectionMissing" + }, + "acm007251jsd" : { + "type" : "ControlElement", + "id" : "acm007251jsd", + "name" : "getXTextDocumentOrThrow" + }, + "acm007252jsd" : { + "type" : "ControlElement", + "id" : "acm007252jsd", + "name" : "getXTextDocument" + }, + "acm007253jsd" : { + "type" : "ControlElement", + "id" : "acm007253jsd", + "name" : "getCurrentDocumentTitle" + }, + "acm007254jsd" : { + "type" : "ClassUnit", + "id" : "acm007254jsd", + "name" : "OOBibBaseConnect", + "compilationUnitId" : "acm007234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007254jsd", "acm007258jsd", "acm007280jsd", "acm015980jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm007239jsd", "acm007240jsd", "acm007241jsd", "acm007242jsd", "acm007243jsd", "acm007244jsd", "acm007245jsd", "acm007246jsd", "acm007247jsd", "acm007248jsd", "acm007249jsd", "acm007250jsd", "acm007251jsd", "acm007252jsd", "acm007253jsd" ] + }, + "acm007255jsd" : { + "type" : "ControlElement", + "id" : "acm007255jsd", + "name" : "DocumentTitleViewModel" + }, + "acm007256jsd" : { + "type" : "ControlElement", + "id" : "acm007256jsd", + "name" : "getXtextDocument" + }, + "acm007257jsd" : { + "type" : "ControlElement", + "id" : "acm007257jsd", + "name" : "toString" + }, + "acm007258jsd" : { + "type" : "ClassUnit", + "id" : "acm007258jsd", + "name" : "DocumentTitleViewModel", + "compilationUnitId" : "acm007234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007255jsd", "acm007256jsd", "acm007257jsd" ] + }, + "acm007259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007259jsd", + "name" : "OOError", + "parentId" : "acm007122jsd", + "content" : [ "acm007280jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007260jsd" : { + "type" : "CodePackage", + "id" : "acm007260jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007261jsd" ] + }, + "acm007261jsd" : { + "type" : "CodePackage", + "id" : "acm007261jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007262jsd" ] + }, + "acm007262jsd" : { + "type" : "CodePackage", + "id" : "acm007262jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007263jsd" ] + }, + "acm007263jsd" : { + "type" : "CodePackage", + "id" : "acm007263jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007259jsd" ] + }, + "acm007264jsd" : { + "type" : "ControlElement", + "id" : "acm007264jsd", + "name" : "OOError" + }, + "acm007265jsd" : { + "type" : "ControlElement", + "id" : "acm007265jsd", + "name" : "OOError" + }, + "acm007266jsd" : { + "type" : "ControlElement", + "id" : "acm007266jsd", + "name" : "getTitle" + }, + "acm007267jsd" : { + "type" : "ControlElement", + "id" : "acm007267jsd", + "name" : "setTitle" + }, + "acm007268jsd" : { + "type" : "ControlElement", + "id" : "acm007268jsd", + "name" : "showErrorDialog" + }, + "acm007269jsd" : { + "type" : "ControlElement", + "id" : "acm007269jsd", + "name" : "from" + }, + "acm007270jsd" : { + "type" : "ControlElement", + "id" : "acm007270jsd", + "name" : "from" + }, + "acm007271jsd" : { + "type" : "ControlElement", + "id" : "acm007271jsd", + "name" : "from" + }, + "acm007272jsd" : { + "type" : "ControlElement", + "id" : "acm007272jsd", + "name" : "from" + }, + "acm007273jsd" : { + "type" : "ControlElement", + "id" : "acm007273jsd", + "name" : "fromMisc" + }, + "acm007274jsd" : { + "type" : "ControlElement", + "id" : "acm007274jsd", + "name" : "noDataBaseIsOpenForCiting" + }, + "acm007275jsd" : { + "type" : "ControlElement", + "id" : "acm007275jsd", + "name" : "noDataBaseIsOpenForSyncingAfterCitation" + }, + "acm007276jsd" : { + "type" : "ControlElement", + "id" : "acm007276jsd", + "name" : "noDataBaseIsOpenForExport" + }, + "acm007277jsd" : { + "type" : "ControlElement", + "id" : "acm007277jsd", + "name" : "noDataBaseIsOpen" + }, + "acm007278jsd" : { + "type" : "ControlElement", + "id" : "acm007278jsd", + "name" : "noValidStyleSelected" + }, + "acm007279jsd" : { + "type" : "ControlElement", + "id" : "acm007279jsd", + "name" : "noEntriesSelectedForCitation" + }, + "acm007280jsd" : { + "type" : "ClassUnit", + "id" : "acm007280jsd", + "name" : "OOError", + "compilationUnitId" : "acm007259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010366jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007280jsd", "acm010366jsd", "acm015980jsd", "acm019947jsd" ], + "content" : [ "acm007264jsd", "acm007265jsd", "acm007266jsd", "acm007267jsd", "acm007268jsd", "acm007269jsd", "acm007270jsd", "acm007271jsd", "acm007272jsd", "acm007273jsd", "acm007274jsd", "acm007275jsd", "acm007276jsd", "acm007277jsd", "acm007278jsd", "acm007279jsd" ] + }, + "acm007281jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007281jsd", + "name" : "OpenOfficePanel", + "parentId" : "acm007122jsd", + "content" : [ "acm007303jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007282jsd" : { + "type" : "CodePackage", + "id" : "acm007282jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007283jsd" ] + }, + "acm007283jsd" : { + "type" : "CodePackage", + "id" : "acm007283jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007284jsd" ] + }, + "acm007284jsd" : { + "type" : "CodePackage", + "id" : "acm007284jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007285jsd" ] + }, + "acm007285jsd" : { + "type" : "CodePackage", + "id" : "acm007285jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007281jsd" ] + }, + "acm007286jsd" : { + "type" : "ControlElement", + "id" : "acm007286jsd", + "name" : "OpenOfficePanel" + }, + "acm007287jsd" : { + "type" : "ControlElement", + "id" : "acm007287jsd", + "name" : "getContent" + }, + "acm007288jsd" : { + "type" : "ControlElement", + "id" : "acm007288jsd", + "name" : "getOrUpdateTheStyle" + }, + "acm007289jsd" : { + "type" : "ControlElement", + "id" : "acm007289jsd", + "name" : "initPanel" + }, + "acm007290jsd" : { + "type" : "ControlElement", + "id" : "acm007290jsd", + "name" : "exportEntries" + }, + "acm007291jsd" : { + "type" : "ControlElement", + "id" : "acm007291jsd", + "name" : "getBaseList" + }, + "acm007292jsd" : { + "type" : "ControlElement", + "id" : "acm007292jsd", + "name" : "connectAutomatically" + }, + "acm007293jsd" : { + "type" : "ControlElement", + "id" : "acm007293jsd", + "name" : "call" + }, + "acm007294jsd" : { + "type" : "ControlElement", + "id" : "acm007294jsd", + "name" : "connectManually" + }, + "acm007295jsd" : { + "type" : "ControlElement", + "id" : "acm007295jsd", + "name" : "updateButtonAvailability" + }, + "acm007296jsd" : { + "type" : "ControlElement", + "id" : "acm007296jsd", + "name" : "connect" + }, + "acm007297jsd" : { + "type" : "ControlElement", + "id" : "acm007297jsd", + "name" : "call" + }, + "acm007298jsd" : { + "type" : "ControlElement", + "id" : "acm007298jsd", + "name" : "createBibBase" + }, + "acm007299jsd" : { + "type" : "ControlElement", + "id" : "acm007299jsd", + "name" : "citationTypeFromOptions" + }, + "acm007300jsd" : { + "type" : "ControlElement", + "id" : "acm007300jsd", + "name" : "pushEntries" + }, + "acm007301jsd" : { + "type" : "ControlElement", + "id" : "acm007301jsd", + "name" : "checkThatEntriesHaveKeys" + }, + "acm007302jsd" : { + "type" : "ControlElement", + "id" : "acm007302jsd", + "name" : "createSettingsPopup" + }, + "acm007303jsd" : { + "type" : "ClassUnit", + "id" : "acm007303jsd", + "name" : "OpenOfficePanel", + "compilationUnitId" : "acm007281jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002087jsd", "acm005331jsd", "acm005802jsd", "acm007125jsd", "acm007134jsd", "acm007177jsd", "acm007233jsd", "acm007280jsd", "acm007303jsd", "acm009381jsd", "acm009756jsd", "acm009965jsd", "acm010959jsd", "acm010993jsd", "acm016014jsd", "acm016093jsd", "acm016334jsd", "acm016463jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm019831jsd", "acm019938jsd", "acm021206jsd" ], + "content" : [ "acm007286jsd", "acm007287jsd", "acm007288jsd", "acm007289jsd", "acm007290jsd", "acm007291jsd", "acm007292jsd", "acm007293jsd", "acm007294jsd", "acm007295jsd", "acm007296jsd", "acm007297jsd", "acm007298jsd", "acm007299jsd", "acm007300jsd", "acm007301jsd", "acm007302jsd" ] + }, + "acm007304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007304jsd", + "name" : "StyleSelectDialogView", + "parentId" : "acm007122jsd", + "content" : [ "acm007313jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007305jsd" : { + "type" : "CodePackage", + "id" : "acm007305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007306jsd" ] + }, + "acm007306jsd" : { + "type" : "CodePackage", + "id" : "acm007306jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007307jsd" ] + }, + "acm007307jsd" : { + "type" : "CodePackage", + "id" : "acm007307jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007308jsd" ] + }, + "acm007308jsd" : { + "type" : "CodePackage", + "id" : "acm007308jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007304jsd" ] + }, + "acm007309jsd" : { + "type" : "ControlElement", + "id" : "acm007309jsd", + "name" : "StyleSelectDialogView" + }, + "acm007310jsd" : { + "type" : "ControlElement", + "id" : "acm007310jsd", + "name" : "initialize" + }, + "acm007311jsd" : { + "type" : "ControlElement", + "id" : "acm007311jsd", + "name" : "createContextMenu" + }, + "acm007312jsd" : { + "type" : "ControlElement", + "id" : "acm007312jsd", + "name" : "addStyleFile" + }, + "acm007313jsd" : { + "type" : "ClassUnit", + "id" : "acm007313jsd", + "name" : "StyleSelectDialogView", + "compilationUnitId" : "acm007304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm007331jsd", "acm007345jsd", "acm008540jsd", "acm009346jsd", "acm010073jsd", "acm016463jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm007309jsd", "acm007310jsd", "acm007311jsd", "acm007312jsd" ] + }, + "acm007314jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007314jsd", + "name" : "StyleSelectDialogViewModel", + "parentId" : "acm007122jsd", + "content" : [ "acm007331jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007315jsd" : { + "type" : "CodePackage", + "id" : "acm007315jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007316jsd" ] + }, + "acm007316jsd" : { + "type" : "CodePackage", + "id" : "acm007316jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007317jsd" ] + }, + "acm007317jsd" : { + "type" : "CodePackage", + "id" : "acm007317jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007318jsd" ] + }, + "acm007318jsd" : { + "type" : "CodePackage", + "id" : "acm007318jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007314jsd" ] + }, + "acm007319jsd" : { + "type" : "ControlElement", + "id" : "acm007319jsd", + "name" : "StyleSelectDialogViewModel" + }, + "acm007320jsd" : { + "type" : "ControlElement", + "id" : "acm007320jsd", + "name" : "fromOOBibStyle" + }, + "acm007321jsd" : { + "type" : "ControlElement", + "id" : "acm007321jsd", + "name" : "toOOBibStyle" + }, + "acm007322jsd" : { + "type" : "ControlElement", + "id" : "acm007322jsd", + "name" : "addStyleFile" + }, + "acm007323jsd" : { + "type" : "ControlElement", + "id" : "acm007323jsd", + "name" : "loadStyles" + }, + "acm007324jsd" : { + "type" : "ControlElement", + "id" : "acm007324jsd", + "name" : "stylesProperty" + }, + "acm007325jsd" : { + "type" : "ControlElement", + "id" : "acm007325jsd", + "name" : "deleteStyle" + }, + "acm007326jsd" : { + "type" : "ControlElement", + "id" : "acm007326jsd", + "name" : "editStyle" + }, + "acm007327jsd" : { + "type" : "ControlElement", + "id" : "acm007327jsd", + "name" : "viewStyle" + }, + "acm007328jsd" : { + "type" : "ControlElement", + "id" : "acm007328jsd", + "name" : "selectedItemProperty" + }, + "acm007329jsd" : { + "type" : "ControlElement", + "id" : "acm007329jsd", + "name" : "storePrefs" + }, + "acm007330jsd" : { + "type" : "ControlElement", + "id" : "acm007330jsd", + "name" : "getStyleOrDefault" + }, + "acm007331jsd" : { + "type" : "ClassUnit", + "id" : "acm007331jsd", + "name" : "StyleSelectDialogViewModel", + "compilationUnitId" : "acm007314jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm007345jsd", "acm009796jsd", "acm009809jsd", "acm016014jsd", "acm016334jsd", "acm016463jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm007319jsd", "acm007320jsd", "acm007321jsd", "acm007322jsd", "acm007323jsd", "acm007324jsd", "acm007325jsd", "acm007326jsd", "acm007327jsd", "acm007328jsd", "acm007329jsd", "acm007330jsd" ] + }, + "acm007332jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007332jsd", + "name" : "StyleSelectItemViewModel", + "parentId" : "acm007122jsd", + "content" : [ "acm007345jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007333jsd" : { + "type" : "CodePackage", + "id" : "acm007333jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007334jsd" ] + }, + "acm007334jsd" : { + "type" : "CodePackage", + "id" : "acm007334jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007335jsd" ] + }, + "acm007335jsd" : { + "type" : "CodePackage", + "id" : "acm007335jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007336jsd" ] + }, + "acm007336jsd" : { + "type" : "CodePackage", + "id" : "acm007336jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm007332jsd" ] + }, + "acm007337jsd" : { + "type" : "ControlElement", + "id" : "acm007337jsd", + "name" : "StyleSelectItemViewModel" + }, + "acm007338jsd" : { + "type" : "ControlElement", + "id" : "acm007338jsd", + "name" : "nameProperty" + }, + "acm007339jsd" : { + "type" : "ControlElement", + "id" : "acm007339jsd", + "name" : "journalsProperty" + }, + "acm007340jsd" : { + "type" : "ControlElement", + "id" : "acm007340jsd", + "name" : "iconProperty" + }, + "acm007341jsd" : { + "type" : "ControlElement", + "id" : "acm007341jsd", + "name" : "fileProperty" + }, + "acm007342jsd" : { + "type" : "ControlElement", + "id" : "acm007342jsd", + "name" : "getStyle" + }, + "acm007343jsd" : { + "type" : "ControlElement", + "id" : "acm007343jsd", + "name" : "internalStyleProperty" + }, + "acm007344jsd" : { + "type" : "ControlElement", + "id" : "acm007344jsd", + "name" : "getStylePath" + }, + "acm007345jsd" : { + "type" : "ClassUnit", + "id" : "acm007345jsd", + "name" : "StyleSelectItemViewModel", + "compilationUnitId" : "acm007332jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd" ], + "content" : [ "acm007337jsd", "acm007338jsd", "acm007339jsd", "acm007340jsd", "acm007341jsd", "acm007342jsd", "acm007343jsd", "acm007344jsd" ] + }, + "acm007346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007346jsd", + "name" : "AbstractPreferenceTabView", + "parentId" : "acm007350jsd", + "content" : [ "acm007356jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007347jsd" : { + "type" : "CodePackage", + "id" : "acm007347jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007348jsd" ] + }, + "acm007348jsd" : { + "type" : "CodePackage", + "id" : "acm007348jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007349jsd" ] + }, + "acm007349jsd" : { + "type" : "CodePackage", + "id" : "acm007349jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007350jsd" ] + }, + "acm007350jsd" : { + "type" : "CodePackage", + "id" : "acm007350jsd", + "name" : "preferences", + "parentId" : "acm001569jsd", + "content" : [ "acm007346jsd", "acm007357jsd", "acm007367jsd", "acm007382jsd", "acm007398jsd", "acm007407jsd", "acm007422jsd", "acm007434jsd", "acm007447jsd", "acm007478jsd", "acm007512jsd", "acm007599jsd", "acm007627jsd", "acm007654jsd", "acm007680jsd", "acm007716jsd", "acm007740jsd", "acm007778jsd", "acm007848jsd", "acm007874jsd", "acm007905jsd", "acm007929jsd", "acm007966jsd", "acm008063jsd", "acm008144jsd", "acm008179jsd", "acm008222jsd", "acm008298jsd", "acm008361jsd", "acm008417jsd", "acm008470jsd" ] + }, + "acm007351jsd" : { + "type" : "ControlElement", + "id" : "acm007351jsd", + "name" : "getBuilder" + }, + "acm007352jsd" : { + "type" : "ControlElement", + "id" : "acm007352jsd", + "name" : "setValues" + }, + "acm007353jsd" : { + "type" : "ControlElement", + "id" : "acm007353jsd", + "name" : "storeSettings" + }, + "acm007354jsd" : { + "type" : "ControlElement", + "id" : "acm007354jsd", + "name" : "validateSettings" + }, + "acm007355jsd" : { + "type" : "ControlElement", + "id" : "acm007355jsd", + "name" : "getRestartWarnings" + }, + "acm007356jsd" : { + "type" : "ClassUnit", + "id" : "acm007356jsd", + "name" : "AbstractPreferenceTabView", + "compilationUnitId" : "acm007346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007366jsd", "acm009965jsd", "acm021206jsd" ], + "content" : [ "acm007351jsd", "acm007352jsd", "acm007353jsd", "acm007354jsd", "acm007355jsd" ] + }, + "acm007357jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007357jsd", + "name" : "PreferenceTabViewModel", + "parentId" : "acm007350jsd", + "content" : [ "acm007366jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007358jsd" : { + "type" : "CodePackage", + "id" : "acm007358jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007359jsd" ] + }, + "acm007359jsd" : { + "type" : "CodePackage", + "id" : "acm007359jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007360jsd" ] + }, + "acm007360jsd" : { + "type" : "CodePackage", + "id" : "acm007360jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007361jsd" ] + }, + "acm007361jsd" : { + "type" : "CodePackage", + "id" : "acm007361jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007357jsd" ] + }, + "acm007362jsd" : { + "type" : "ControlElement", + "id" : "acm007362jsd", + "name" : "setValues" + }, + "acm007363jsd" : { + "type" : "ControlElement", + "id" : "acm007363jsd", + "name" : "storeSettings" + }, + "acm007364jsd" : { + "type" : "ControlElement", + "id" : "acm007364jsd", + "name" : "validateSettings" + }, + "acm007365jsd" : { + "type" : "ControlElement", + "id" : "acm007365jsd", + "name" : "getRestartWarnings" + }, + "acm007366jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007366jsd", + "name" : "PreferenceTabViewModel", + "compilationUnitId" : "acm007357jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007362jsd", "acm007363jsd", "acm007364jsd", "acm007365jsd" ] + }, + "acm007367jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007367jsd", + "name" : "PreferencesDialogView", + "parentId" : "acm007350jsd", + "content" : [ "acm007381jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007368jsd" : { + "type" : "CodePackage", + "id" : "acm007368jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007369jsd" ] + }, + "acm007369jsd" : { + "type" : "CodePackage", + "id" : "acm007369jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007370jsd" ] + }, + "acm007370jsd" : { + "type" : "CodePackage", + "id" : "acm007370jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007371jsd" ] + }, + "acm007371jsd" : { + "type" : "CodePackage", + "id" : "acm007371jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007367jsd" ] + }, + "acm007372jsd" : { + "type" : "ControlElement", + "id" : "acm007372jsd", + "name" : "PreferencesDialogView" + }, + "acm007373jsd" : { + "type" : "ControlElement", + "id" : "acm007373jsd", + "name" : "getViewModel" + }, + "acm007374jsd" : { + "type" : "ControlElement", + "id" : "acm007374jsd", + "name" : "initialize" + }, + "acm007375jsd" : { + "type" : "ControlElement", + "id" : "acm007375jsd", + "name" : "closeDialog" + }, + "acm007376jsd" : { + "type" : "ControlElement", + "id" : "acm007376jsd", + "name" : "savePreferencesAndCloseDialog" + }, + "acm007377jsd" : { + "type" : "ControlElement", + "id" : "acm007377jsd", + "name" : "exportPreferences" + }, + "acm007378jsd" : { + "type" : "ControlElement", + "id" : "acm007378jsd", + "name" : "importPreferences" + }, + "acm007379jsd" : { + "type" : "ControlElement", + "id" : "acm007379jsd", + "name" : "showAllPreferences" + }, + "acm007380jsd" : { + "type" : "ControlElement", + "id" : "acm007380jsd", + "name" : "resetPreferences" + }, + "acm007381jsd" : { + "type" : "ClassUnit", + "id" : "acm007381jsd", + "name" : "PreferencesDialogView", + "compilationUnitId" : "acm007367jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm007397jsd", "acm007421jsd", "acm007433jsd", "acm009346jsd", "acm010051jsd", "acm021206jsd" ], + "content" : [ "acm007372jsd", "acm007373jsd", "acm007374jsd", "acm007375jsd", "acm007376jsd", "acm007377jsd", "acm007378jsd", "acm007379jsd", "acm007380jsd" ] + }, + "acm007382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007382jsd", + "name" : "PreferencesDialogViewModel", + "parentId" : "acm007350jsd", + "content" : [ "acm007397jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007383jsd" : { + "type" : "CodePackage", + "id" : "acm007383jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007384jsd" ] + }, + "acm007384jsd" : { + "type" : "CodePackage", + "id" : "acm007384jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007385jsd" ] + }, + "acm007385jsd" : { + "type" : "CodePackage", + "id" : "acm007385jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007386jsd" ] + }, + "acm007386jsd" : { + "type" : "CodePackage", + "id" : "acm007386jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007382jsd" ] + }, + "acm007387jsd" : { + "type" : "ControlElement", + "id" : "acm007387jsd", + "name" : "PreferencesDialogViewModel" + }, + "acm007388jsd" : { + "type" : "ControlElement", + "id" : "acm007388jsd", + "name" : "getPreferenceTabs" + }, + "acm007389jsd" : { + "type" : "ControlElement", + "id" : "acm007389jsd", + "name" : "importPreferences" + }, + "acm007390jsd" : { + "type" : "ControlElement", + "id" : "acm007390jsd", + "name" : "exportPreferences" + }, + "acm007391jsd" : { + "type" : "ControlElement", + "id" : "acm007391jsd", + "name" : "showPreferences" + }, + "acm007392jsd" : { + "type" : "ControlElement", + "id" : "acm007392jsd", + "name" : "resetPreferences" + }, + "acm007393jsd" : { + "type" : "ControlElement", + "id" : "acm007393jsd", + "name" : "updateAfterPreferenceChanges" + }, + "acm007394jsd" : { + "type" : "ControlElement", + "id" : "acm007394jsd", + "name" : "validSettings" + }, + "acm007395jsd" : { + "type" : "ControlElement", + "id" : "acm007395jsd", + "name" : "storeAllSettings" + }, + "acm007396jsd" : { + "type" : "ControlElement", + "id" : "acm007396jsd", + "name" : "setValues" + }, + "acm007397jsd" : { + "type" : "ClassUnit", + "id" : "acm007397jsd", + "name" : "PreferencesDialogViewModel", + "compilationUnitId" : "acm007382jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm007397jsd", "acm007406jsd", "acm007433jsd", "acm007452jsd", "acm007485jsd", "acm007534jsd", "acm007606jsd", "acm007633jsd", "acm007658jsd", "acm007684jsd", "acm007721jsd", "acm007747jsd", "acm007826jsd", "acm007852jsd", "acm007878jsd", "acm007909jsd", "acm007935jsd", "acm008023jsd", "acm008091jsd", "acm008149jsd", "acm008201jsd", "acm008257jsd", "acm008317jsd", "acm008391jsd", "acm008427jsd", "acm008475jsd", "acm009796jsd", "acm009809jsd", "acm021131jsd", "acm021206jsd" ], + "content" : [ "acm007387jsd", "acm007388jsd", "acm007389jsd", "acm007390jsd", "acm007391jsd", "acm007392jsd", "acm007393jsd", "acm007394jsd", "acm007395jsd", "acm007396jsd" ] + }, + "acm007398jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007398jsd", + "name" : "PreferencesFilterDialog", + "parentId" : "acm007350jsd", + "content" : [ "acm007406jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007399jsd" : { + "type" : "CodePackage", + "id" : "acm007399jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007400jsd" ] + }, + "acm007400jsd" : { + "type" : "CodePackage", + "id" : "acm007400jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007401jsd" ] + }, + "acm007401jsd" : { + "type" : "CodePackage", + "id" : "acm007401jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007402jsd" ] + }, + "acm007402jsd" : { + "type" : "CodePackage", + "id" : "acm007402jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007398jsd" ] + }, + "acm007403jsd" : { + "type" : "ControlElement", + "id" : "acm007403jsd", + "name" : "PreferencesFilterDialog" + }, + "acm007404jsd" : { + "type" : "ControlElement", + "id" : "acm007404jsd", + "name" : "initialize" + }, + "acm007405jsd" : { + "type" : "ControlElement", + "id" : "acm007405jsd", + "name" : "updateModel" + }, + "acm007406jsd" : { + "type" : "ClassUnit", + "id" : "acm007406jsd", + "name" : "PreferencesFilterDialog", + "compilationUnitId" : "acm007398jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm021131jsd", "acm021142jsd", "acm021143jsd" ], + "content" : [ "acm007403jsd", "acm007404jsd", "acm007405jsd" ] + }, + "acm007407jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007407jsd", + "name" : "PreferencesSearchHandler", + "parentId" : "acm007350jsd", + "content" : [ "acm007421jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007408jsd" : { + "type" : "CodePackage", + "id" : "acm007408jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007409jsd" ] + }, + "acm007409jsd" : { + "type" : "CodePackage", + "id" : "acm007409jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007410jsd" ] + }, + "acm007410jsd" : { + "type" : "CodePackage", + "id" : "acm007410jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007411jsd" ] + }, + "acm007411jsd" : { + "type" : "CodePackage", + "id" : "acm007411jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007407jsd" ] + }, + "acm007412jsd" : { + "type" : "ControlElement", + "id" : "acm007412jsd", + "name" : "PreferencesSearchHandler" + }, + "acm007413jsd" : { + "type" : "ControlElement", + "id" : "acm007413jsd", + "name" : "filterTabs" + }, + "acm007414jsd" : { + "type" : "ControlElement", + "id" : "acm007414jsd", + "name" : "labelContainsText" + }, + "acm007415jsd" : { + "type" : "ControlElement", + "id" : "acm007415jsd", + "name" : "highlightLabel" + }, + "acm007416jsd" : { + "type" : "ControlElement", + "id" : "acm007416jsd", + "name" : "clearHighlights" + }, + "acm007417jsd" : { + "type" : "ControlElement", + "id" : "acm007417jsd", + "name" : "clearSearch" + }, + "acm007418jsd" : { + "type" : "ControlElement", + "id" : "acm007418jsd", + "name" : "getPrefsTabLabelMap" + }, + "acm007419jsd" : { + "type" : "ControlElement", + "id" : "acm007419jsd", + "name" : "filteredPreferenceTabsProperty" + }, + "acm007420jsd" : { + "type" : "ControlElement", + "id" : "acm007420jsd", + "name" : "scanLabeledControls" + }, + "acm007421jsd" : { + "type" : "ClassUnit", + "id" : "acm007421jsd", + "name" : "PreferencesSearchHandler", + "compilationUnitId" : "acm007407jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007433jsd" ], + "content" : [ "acm007412jsd", "acm007413jsd", "acm007414jsd", "acm007415jsd", "acm007416jsd", "acm007417jsd", "acm007418jsd", "acm007419jsd", "acm007420jsd" ] + }, + "acm007422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007422jsd", + "name" : "PreferencesTab", + "parentId" : "acm007350jsd", + "content" : [ "acm007433jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007423jsd" : { + "type" : "CodePackage", + "id" : "acm007423jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007424jsd" ] + }, + "acm007424jsd" : { + "type" : "CodePackage", + "id" : "acm007424jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007425jsd" ] + }, + "acm007425jsd" : { + "type" : "CodePackage", + "id" : "acm007425jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007426jsd" ] + }, + "acm007426jsd" : { + "type" : "CodePackage", + "id" : "acm007426jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007422jsd" ] + }, + "acm007427jsd" : { + "type" : "ControlElement", + "id" : "acm007427jsd", + "name" : "getBuilder" + }, + "acm007428jsd" : { + "type" : "ControlElement", + "id" : "acm007428jsd", + "name" : "getTabName" + }, + "acm007429jsd" : { + "type" : "ControlElement", + "id" : "acm007429jsd", + "name" : "setValues" + }, + "acm007430jsd" : { + "type" : "ControlElement", + "id" : "acm007430jsd", + "name" : "storeSettings" + }, + "acm007431jsd" : { + "type" : "ControlElement", + "id" : "acm007431jsd", + "name" : "validateSettings" + }, + "acm007432jsd" : { + "type" : "ControlElement", + "id" : "acm007432jsd", + "name" : "getRestartWarnings" + }, + "acm007433jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007433jsd", + "name" : "PreferencesTab", + "compilationUnitId" : "acm007422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007427jsd", "acm007428jsd", "acm007429jsd", "acm007430jsd", "acm007431jsd", "acm007432jsd" ] + }, + "acm007434jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007434jsd", + "name" : "ShowPreferencesAction", + "parentId" : "acm007350jsd", + "content" : [ "acm007441jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007435jsd" : { + "type" : "CodePackage", + "id" : "acm007435jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007436jsd" ] + }, + "acm007436jsd" : { + "type" : "CodePackage", + "id" : "acm007436jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007437jsd" ] + }, + "acm007437jsd" : { + "type" : "CodePackage", + "id" : "acm007437jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007438jsd" ] + }, + "acm007438jsd" : { + "type" : "CodePackage", + "id" : "acm007438jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007434jsd" ] + }, + "acm007439jsd" : { + "type" : "ControlElement", + "id" : "acm007439jsd", + "name" : "ShowPreferencesAction" + }, + "acm007440jsd" : { + "type" : "ControlElement", + "id" : "acm007440jsd", + "name" : "execute" + }, + "acm007441jsd" : { + "type" : "ClassUnit", + "id" : "acm007441jsd", + "name" : "ShowPreferencesAction", + "compilationUnitId" : "acm007434jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm007381jsd", "acm009965jsd" ], + "content" : [ "acm007439jsd", "acm007440jsd" ] + }, + "acm007442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007442jsd", + "name" : "AppearanceTab", + "parentId" : "acm007447jsd", + "content" : [ "acm007452jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "appearance" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007443jsd" : { + "type" : "CodePackage", + "id" : "acm007443jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007444jsd" ] + }, + "acm007444jsd" : { + "type" : "CodePackage", + "id" : "acm007444jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007445jsd" ] + }, + "acm007445jsd" : { + "type" : "CodePackage", + "id" : "acm007445jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007446jsd" ] + }, + "acm007446jsd" : { + "type" : "CodePackage", + "id" : "acm007446jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007447jsd" ] + }, + "acm007447jsd" : { + "type" : "CodePackage", + "id" : "acm007447jsd", + "name" : "appearance", + "parentId" : "acm007350jsd", + "content" : [ "acm007442jsd", "acm007453jsd" ] + }, + "acm007448jsd" : { + "type" : "ControlElement", + "id" : "acm007448jsd", + "name" : "AppearanceTab" + }, + "acm007449jsd" : { + "type" : "ControlElement", + "id" : "acm007449jsd", + "name" : "getTabName" + }, + "acm007450jsd" : { + "type" : "ControlElement", + "id" : "acm007450jsd", + "name" : "initialize" + }, + "acm007451jsd" : { + "type" : "ControlElement", + "id" : "acm007451jsd", + "name" : "importTheme" + }, + "acm007452jsd" : { + "type" : "ClassUnit", + "id" : "acm007452jsd", + "name" : "AppearanceTab", + "compilationUnitId" : "acm007442jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm007472jsd", "acm009856jsd" ], + "content" : [ "acm007448jsd", "acm007449jsd", "acm007450jsd", "acm007451jsd" ] + }, + "acm007453jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007453jsd", + "name" : "AppearanceTabViewModel", + "parentId" : "acm007447jsd", + "content" : [ "acm007472jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "appearance" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007454jsd" : { + "type" : "CodePackage", + "id" : "acm007454jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007455jsd" ] + }, + "acm007455jsd" : { + "type" : "CodePackage", + "id" : "acm007455jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007456jsd" ] + }, + "acm007456jsd" : { + "type" : "CodePackage", + "id" : "acm007456jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007457jsd" ] + }, + "acm007457jsd" : { + "type" : "CodePackage", + "id" : "acm007457jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007458jsd" ] + }, + "acm007458jsd" : { + "type" : "CodePackage", + "id" : "acm007458jsd", + "name" : "appearance", + "parentId" : null, + "content" : [ "acm007453jsd" ] + }, + "acm007459jsd" : { + "type" : "ControlElement", + "id" : "acm007459jsd", + "name" : "AppearanceTabViewModel" + }, + "acm007460jsd" : { + "type" : "ControlElement", + "id" : "acm007460jsd", + "name" : "setValues" + }, + "acm007461jsd" : { + "type" : "ControlElement", + "id" : "acm007461jsd", + "name" : "storeSettings" + }, + "acm007462jsd" : { + "type" : "ControlElement", + "id" : "acm007462jsd", + "name" : "fontSizeValidationStatus" + }, + "acm007463jsd" : { + "type" : "ControlElement", + "id" : "acm007463jsd", + "name" : "customPathToThemeValidationStatus" + }, + "acm007464jsd" : { + "type" : "ControlElement", + "id" : "acm007464jsd", + "name" : "validateSettings" + }, + "acm007465jsd" : { + "type" : "ControlElement", + "id" : "acm007465jsd", + "name" : "fontOverrideProperty" + }, + "acm007466jsd" : { + "type" : "ControlElement", + "id" : "acm007466jsd", + "name" : "fontSizeProperty" + }, + "acm007467jsd" : { + "type" : "ControlElement", + "id" : "acm007467jsd", + "name" : "themeLightProperty" + }, + "acm007468jsd" : { + "type" : "ControlElement", + "id" : "acm007468jsd", + "name" : "themeDarkProperty" + }, + "acm007469jsd" : { + "type" : "ControlElement", + "id" : "acm007469jsd", + "name" : "customThemeProperty" + }, + "acm007470jsd" : { + "type" : "ControlElement", + "id" : "acm007470jsd", + "name" : "customPathToThemeProperty" + }, + "acm007471jsd" : { + "type" : "ControlElement", + "id" : "acm007471jsd", + "name" : "importCSSFile" + }, + "acm007472jsd" : { + "type" : "ClassUnit", + "id" : "acm007472jsd", + "name" : "AppearanceTabViewModel", + "compilationUnitId" : "acm007453jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009325jsd", "acm009796jsd", "acm009809jsd", "acm020765jsd", "acm021206jsd" ], + "content" : [ "acm007459jsd", "acm007460jsd", "acm007461jsd", "acm007462jsd", "acm007463jsd", "acm007464jsd", "acm007465jsd", "acm007466jsd", "acm007467jsd", "acm007468jsd", "acm007469jsd", "acm007470jsd", "acm007471jsd" ] + }, + "acm007473jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007473jsd", + "name" : "CitationKeyPatternTab", + "parentId" : "acm007478jsd", + "content" : [ "acm007485jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007474jsd" : { + "type" : "CodePackage", + "id" : "acm007474jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007475jsd" ] + }, + "acm007475jsd" : { + "type" : "CodePackage", + "id" : "acm007475jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007476jsd" ] + }, + "acm007476jsd" : { + "type" : "CodePackage", + "id" : "acm007476jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007477jsd" ] + }, + "acm007477jsd" : { + "type" : "CodePackage", + "id" : "acm007477jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007478jsd" ] + }, + "acm007478jsd" : { + "type" : "CodePackage", + "id" : "acm007478jsd", + "name" : "citationkeypattern", + "parentId" : "acm007350jsd", + "content" : [ "acm007473jsd", "acm007486jsd" ] + }, + "acm007479jsd" : { + "type" : "ControlElement", + "id" : "acm007479jsd", + "name" : "CitationKeyPatternTab" + }, + "acm007480jsd" : { + "type" : "ControlElement", + "id" : "acm007480jsd", + "name" : "getTabName" + }, + "acm007481jsd" : { + "type" : "ControlElement", + "id" : "acm007481jsd", + "name" : "initialize" + }, + "acm007482jsd" : { + "type" : "ControlElement", + "id" : "acm007482jsd", + "name" : "setValues" + }, + "acm007483jsd" : { + "type" : "ControlElement", + "id" : "acm007483jsd", + "name" : "storeSettings" + }, + "acm007484jsd" : { + "type" : "ControlElement", + "id" : "acm007484jsd", + "name" : "resetAllKeyPatterns" + }, + "acm007485jsd" : { + "type" : "ClassUnit", + "id" : "acm007485jsd", + "name" : "CitationKeyPatternTab", + "compilationUnitId" : "acm007473jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm002801jsd", "acm005331jsd", "acm007506jsd" ], + "content" : [ "acm007479jsd", "acm007480jsd", "acm007481jsd", "acm007482jsd", "acm007483jsd", "acm007484jsd" ] + }, + "acm007486jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007486jsd", + "name" : "CitationKeyPatternTabViewModel", + "parentId" : "acm007478jsd", + "content" : [ "acm007506jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007487jsd" : { + "type" : "CodePackage", + "id" : "acm007487jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007488jsd" ] + }, + "acm007488jsd" : { + "type" : "CodePackage", + "id" : "acm007488jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007489jsd" ] + }, + "acm007489jsd" : { + "type" : "CodePackage", + "id" : "acm007489jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007490jsd" ] + }, + "acm007490jsd" : { + "type" : "CodePackage", + "id" : "acm007490jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007491jsd" ] + }, + "acm007491jsd" : { + "type" : "CodePackage", + "id" : "acm007491jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm007486jsd" ] + }, + "acm007492jsd" : { + "type" : "ControlElement", + "id" : "acm007492jsd", + "name" : "CitationKeyPatternTabViewModel" + }, + "acm007493jsd" : { + "type" : "ControlElement", + "id" : "acm007493jsd", + "name" : "setValues" + }, + "acm007494jsd" : { + "type" : "ControlElement", + "id" : "acm007494jsd", + "name" : "storeSettings" + }, + "acm007495jsd" : { + "type" : "ControlElement", + "id" : "acm007495jsd", + "name" : "overwriteAllowProperty" + }, + "acm007496jsd" : { + "type" : "ControlElement", + "id" : "acm007496jsd", + "name" : "overwriteWarningProperty" + }, + "acm007497jsd" : { + "type" : "ControlElement", + "id" : "acm007497jsd", + "name" : "generateOnSaveProperty" + }, + "acm007498jsd" : { + "type" : "ControlElement", + "id" : "acm007498jsd", + "name" : "letterStartAProperty" + }, + "acm007499jsd" : { + "type" : "ControlElement", + "id" : "acm007499jsd", + "name" : "letterStartBProperty" + }, + "acm007500jsd" : { + "type" : "ControlElement", + "id" : "acm007500jsd", + "name" : "letterAlwaysAddProperty" + }, + "acm007501jsd" : { + "type" : "ControlElement", + "id" : "acm007501jsd", + "name" : "keyPatternRegexProperty" + }, + "acm007502jsd" : { + "type" : "ControlElement", + "id" : "acm007502jsd", + "name" : "keyPatternReplacementProperty" + }, + "acm007503jsd" : { + "type" : "ControlElement", + "id" : "acm007503jsd", + "name" : "patternListProperty" + }, + "acm007504jsd" : { + "type" : "ControlElement", + "id" : "acm007504jsd", + "name" : "defaultKeyPatternProperty" + }, + "acm007505jsd" : { + "type" : "ControlElement", + "id" : "acm007505jsd", + "name" : "unwantedCharactersProperty" + }, + "acm007506jsd" : { + "type" : "ClassUnit", + "id" : "acm007506jsd", + "name" : "CitationKeyPatternTabViewModel", + "compilationUnitId" : "acm007486jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm002816jsd", "acm002833jsd", "acm010993jsd", "acm010994jsd", "acm011011jsd" ], + "content" : [ "acm007492jsd", "acm007493jsd", "acm007494jsd", "acm007495jsd", "acm007496jsd", "acm007497jsd", "acm007498jsd", "acm007499jsd", "acm007500jsd", "acm007501jsd", "acm007502jsd", "acm007503jsd", "acm007504jsd", "acm007505jsd" ] + }, + "acm007507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007507jsd", + "name" : "CustomEntryTypeViewModel", + "parentId" : "acm007512jsd", + "content" : [ "acm007514jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customentrytypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007508jsd" : { + "type" : "CodePackage", + "id" : "acm007508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007509jsd" ] + }, + "acm007509jsd" : { + "type" : "CodePackage", + "id" : "acm007509jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007510jsd" ] + }, + "acm007510jsd" : { + "type" : "CodePackage", + "id" : "acm007510jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007511jsd" ] + }, + "acm007511jsd" : { + "type" : "CodePackage", + "id" : "acm007511jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007512jsd" ] + }, + "acm007512jsd" : { + "type" : "CodePackage", + "id" : "acm007512jsd", + "name" : "customentrytypes", + "parentId" : "acm007350jsd", + "content" : [ "acm007507jsd", "acm007515jsd", "acm007535jsd", "acm007557jsd", "acm007572jsd" ] + }, + "acm007513jsd" : { + "type" : "ControlElement", + "id" : "acm007513jsd", + "name" : "CustomEntryTypeViewModel" + }, + "acm007514jsd" : { + "type" : "ClassUnit", + "id" : "acm007514jsd", + "name" : "CustomEntryTypeViewModel", + "compilationUnitId" : "acm007507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007571jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018673jsd" ], + "content" : [ "acm007513jsd" ] + }, + "acm007515jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007515jsd", + "name" : "CustomEntryTypesTab", + "parentId" : "acm007512jsd", + "content" : [ "acm007534jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customentrytypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007516jsd" : { + "type" : "CodePackage", + "id" : "acm007516jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007517jsd" ] + }, + "acm007517jsd" : { + "type" : "CodePackage", + "id" : "acm007517jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007518jsd" ] + }, + "acm007518jsd" : { + "type" : "CodePackage", + "id" : "acm007518jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007519jsd" ] + }, + "acm007519jsd" : { + "type" : "CodePackage", + "id" : "acm007519jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007520jsd" ] + }, + "acm007520jsd" : { + "type" : "CodePackage", + "id" : "acm007520jsd", + "name" : "customentrytypes", + "parentId" : null, + "content" : [ "acm007515jsd" ] + }, + "acm007521jsd" : { + "type" : "ControlElement", + "id" : "acm007521jsd", + "name" : "CustomEntryTypesTab" + }, + "acm007522jsd" : { + "type" : "ControlElement", + "id" : "acm007522jsd", + "name" : "getTabName" + }, + "acm007523jsd" : { + "type" : "ControlElement", + "id" : "acm007523jsd", + "name" : "initialize" + }, + "acm007524jsd" : { + "type" : "ControlElement", + "id" : "acm007524jsd", + "name" : "setupEntryTypesTable" + }, + "acm007525jsd" : { + "type" : "ControlElement", + "id" : "acm007525jsd", + "name" : "setupFieldsTable" + }, + "acm007526jsd" : { + "type" : "ControlElement", + "id" : "acm007526jsd", + "name" : "makeRotatedColumnHeader" + }, + "acm007527jsd" : { + "type" : "ControlElement", + "id" : "acm007527jsd", + "name" : "handleOnDragOver" + }, + "acm007528jsd" : { + "type" : "ControlElement", + "id" : "acm007528jsd", + "name" : "handleOnDragDetected" + }, + "acm007529jsd" : { + "type" : "ControlElement", + "id" : "acm007529jsd", + "name" : "handleOnDragDropped" + }, + "acm007530jsd" : { + "type" : "ControlElement", + "id" : "acm007530jsd", + "name" : "handleOnDragExited" + }, + "acm007531jsd" : { + "type" : "ControlElement", + "id" : "acm007531jsd", + "name" : "addEntryType" + }, + "acm007532jsd" : { + "type" : "ControlElement", + "id" : "acm007532jsd", + "name" : "addNewField" + }, + "acm007533jsd" : { + "type" : "ControlElement", + "id" : "acm007533jsd", + "name" : "resetEntryTypes" + }, + "acm007534jsd" : { + "type" : "ClassUnit", + "id" : "acm007534jsd", + "name" : "CustomEntryTypesTab", + "compilationUnitId" : "acm007515jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm007556jsd", "acm007571jsd", "acm007590jsd", "acm009670jsd", "acm010073jsd", "acm018032jsd", "acm018333jsd", "acm018673jsd" ], + "content" : [ "acm007521jsd", "acm007522jsd", "acm007523jsd", "acm007524jsd", "acm007525jsd", "acm007526jsd", "acm007527jsd", "acm007528jsd", "acm007529jsd", "acm007530jsd", "acm007531jsd", "acm007532jsd", "acm007533jsd" ] + }, + "acm007535jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007535jsd", + "name" : "CustomEntryTypesTabViewModel", + "parentId" : "acm007512jsd", + "content" : [ "acm007556jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customentrytypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007536jsd" : { + "type" : "CodePackage", + "id" : "acm007536jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007537jsd" ] + }, + "acm007537jsd" : { + "type" : "CodePackage", + "id" : "acm007537jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007538jsd" ] + }, + "acm007538jsd" : { + "type" : "CodePackage", + "id" : "acm007538jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007539jsd" ] + }, + "acm007539jsd" : { + "type" : "CodePackage", + "id" : "acm007539jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007540jsd" ] + }, + "acm007540jsd" : { + "type" : "CodePackage", + "id" : "acm007540jsd", + "name" : "customentrytypes", + "parentId" : null, + "content" : [ "acm007535jsd" ] + }, + "acm007541jsd" : { + "type" : "ControlElement", + "id" : "acm007541jsd", + "name" : "CustomEntryTypesTabViewModel" + }, + "acm007542jsd" : { + "type" : "ControlElement", + "id" : "acm007542jsd", + "name" : "setValues" + }, + "acm007543jsd" : { + "type" : "ControlElement", + "id" : "acm007543jsd", + "name" : "storeSettings" + }, + "acm007544jsd" : { + "type" : "ControlElement", + "id" : "acm007544jsd", + "name" : "addNewCustomEntryType" + }, + "acm007545jsd" : { + "type" : "ControlElement", + "id" : "acm007545jsd", + "name" : "removeEntryType" + }, + "acm007546jsd" : { + "type" : "ControlElement", + "id" : "acm007546jsd", + "name" : "addNewField" + }, + "acm007547jsd" : { + "type" : "ControlElement", + "id" : "acm007547jsd", + "name" : "removeField" + }, + "acm007548jsd" : { + "type" : "ControlElement", + "id" : "acm007548jsd", + "name" : "resetAllCustomEntryTypes" + }, + "acm007549jsd" : { + "type" : "ControlElement", + "id" : "acm007549jsd", + "name" : "selectedEntryTypeProperty" + }, + "acm007550jsd" : { + "type" : "ControlElement", + "id" : "acm007550jsd", + "name" : "entryTypeToAddProperty" + }, + "acm007551jsd" : { + "type" : "ControlElement", + "id" : "acm007551jsd", + "name" : "newFieldToAddProperty" + }, + "acm007552jsd" : { + "type" : "ControlElement", + "id" : "acm007552jsd", + "name" : "entryTypes" + }, + "acm007553jsd" : { + "type" : "ControlElement", + "id" : "acm007553jsd", + "name" : "fieldsForAdding" + }, + "acm007554jsd" : { + "type" : "ControlElement", + "id" : "acm007554jsd", + "name" : "entryTypeValidationStatus" + }, + "acm007555jsd" : { + "type" : "ControlElement", + "id" : "acm007555jsd", + "name" : "fieldValidationStatus" + }, + "acm007556jsd" : { + "type" : "ClassUnit", + "id" : "acm007556jsd", + "name" : "CustomEntryTypesTabViewModel", + "compilationUnitId" : "acm007535jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm007514jsd", "acm007571jsd", "acm007590jsd", "acm018032jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm018754jsd", "acm019005jsd", "acm019079jsd", "acm021206jsd" ], + "content" : [ "acm007541jsd", "acm007542jsd", "acm007543jsd", "acm007544jsd", "acm007545jsd", "acm007546jsd", "acm007547jsd", "acm007548jsd", "acm007549jsd", "acm007550jsd", "acm007551jsd", "acm007552jsd", "acm007553jsd", "acm007554jsd", "acm007555jsd" ] + }, + "acm007557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007557jsd", + "name" : "EntryTypeViewModel", + "parentId" : "acm007512jsd", + "content" : [ "acm007571jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customentrytypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007558jsd" : { + "type" : "CodePackage", + "id" : "acm007558jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007559jsd" ] + }, + "acm007559jsd" : { + "type" : "CodePackage", + "id" : "acm007559jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007560jsd" ] + }, + "acm007560jsd" : { + "type" : "CodePackage", + "id" : "acm007560jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007561jsd" ] + }, + "acm007561jsd" : { + "type" : "CodePackage", + "id" : "acm007561jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007562jsd" ] + }, + "acm007562jsd" : { + "type" : "CodePackage", + "id" : "acm007562jsd", + "name" : "customentrytypes", + "parentId" : null, + "content" : [ "acm007557jsd" ] + }, + "acm007563jsd" : { + "type" : "ControlElement", + "id" : "acm007563jsd", + "name" : "EntryTypeViewModel" + }, + "acm007564jsd" : { + "type" : "ControlElement", + "id" : "acm007564jsd", + "name" : "hashCode" + }, + "acm007565jsd" : { + "type" : "ControlElement", + "id" : "acm007565jsd", + "name" : "equals" + }, + "acm007566jsd" : { + "type" : "ControlElement", + "id" : "acm007566jsd", + "name" : "addField" + }, + "acm007567jsd" : { + "type" : "ControlElement", + "id" : "acm007567jsd", + "name" : "fields" + }, + "acm007568jsd" : { + "type" : "ControlElement", + "id" : "acm007568jsd", + "name" : "entryType" + }, + "acm007569jsd" : { + "type" : "ControlElement", + "id" : "acm007569jsd", + "name" : "removeField" + }, + "acm007570jsd" : { + "type" : "ControlElement", + "id" : "acm007570jsd", + "name" : "toString" + }, + "acm007571jsd" : { + "type" : "ClassUnit", + "id" : "acm007571jsd", + "name" : "EntryTypeViewModel", + "compilationUnitId" : "acm007557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007571jsd", "acm007590jsd", "acm018289jsd", "acm018673jsd" ], + "content" : [ "acm007563jsd", "acm007564jsd", "acm007565jsd", "acm007566jsd", "acm007567jsd", "acm007568jsd", "acm007569jsd", "acm007570jsd" ] + }, + "acm007572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007572jsd", + "name" : "FieldViewModel", + "parentId" : "acm007512jsd", + "content" : [ "acm007590jsd", "acm007593jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customentrytypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007573jsd" : { + "type" : "CodePackage", + "id" : "acm007573jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007574jsd" ] + }, + "acm007574jsd" : { + "type" : "CodePackage", + "id" : "acm007574jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007575jsd" ] + }, + "acm007575jsd" : { + "type" : "CodePackage", + "id" : "acm007575jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007576jsd" ] + }, + "acm007576jsd" : { + "type" : "CodePackage", + "id" : "acm007576jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007577jsd" ] + }, + "acm007577jsd" : { + "type" : "CodePackage", + "id" : "acm007577jsd", + "name" : "customentrytypes", + "parentId" : null, + "content" : [ "acm007572jsd" ] + }, + "acm007578jsd" : { + "type" : "ControlElement", + "id" : "acm007578jsd", + "name" : "FieldViewModel" + }, + "acm007579jsd" : { + "type" : "ControlElement", + "id" : "acm007579jsd", + "name" : "getField" + }, + "acm007580jsd" : { + "type" : "ControlElement", + "id" : "acm007580jsd", + "name" : "nameProperty" + }, + "acm007581jsd" : { + "type" : "ControlElement", + "id" : "acm007581jsd", + "name" : "requiredProperty" + }, + "acm007582jsd" : { + "type" : "ControlElement", + "id" : "acm007582jsd", + "name" : "isRequired" + }, + "acm007583jsd" : { + "type" : "ControlElement", + "id" : "acm007583jsd", + "name" : "multilineProperty" + }, + "acm007584jsd" : { + "type" : "ControlElement", + "id" : "acm007584jsd", + "name" : "isMultiline" + }, + "acm007585jsd" : { + "type" : "ControlElement", + "id" : "acm007585jsd", + "name" : "getPriority" + }, + "acm007586jsd" : { + "type" : "ControlElement", + "id" : "acm007586jsd", + "name" : "toBibField" + }, + "acm007587jsd" : { + "type" : "ControlElement", + "id" : "acm007587jsd", + "name" : "toString" + }, + "acm007588jsd" : { + "type" : "ControlElement", + "id" : "acm007588jsd", + "name" : "Mandatory" + }, + "acm007589jsd" : { + "type" : "ControlElement", + "id" : "acm007589jsd", + "name" : "getDisplayName" + }, + "acm007590jsd" : { + "type" : "ClassUnit", + "id" : "acm007590jsd", + "name" : "FieldViewModel", + "compilationUnitId" : "acm007572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007593jsd", "acm018673jsd", "acm018709jsd" ], + "content" : [ "acm007578jsd", "acm007579jsd", "acm007580jsd", "acm007581jsd", "acm007582jsd", "acm007583jsd", "acm007584jsd", "acm007585jsd", "acm007586jsd", "acm007587jsd", "acm007588jsd", "acm007589jsd" ] + }, + "acm007591jsd" : { + "type" : "ControlElement", + "id" : "acm007591jsd", + "name" : "Mandatory" + }, + "acm007592jsd" : { + "type" : "ControlElement", + "id" : "acm007592jsd", + "name" : "getDisplayName" + }, + "acm007593jsd" : { + "type" : "ClassUnit", + "id" : "acm007593jsd", + "name" : "Mandatory", + "compilationUnitId" : "acm007572jsd", + "parentDatatypeId" : "acm007590jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007591jsd", "acm007592jsd" ] + }, + "acm007594jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007594jsd", + "name" : "CustomExporterTab", + "parentId" : "acm007599jsd", + "content" : [ "acm007606jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customexporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007595jsd" : { + "type" : "CodePackage", + "id" : "acm007595jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007596jsd" ] + }, + "acm007596jsd" : { + "type" : "CodePackage", + "id" : "acm007596jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007597jsd" ] + }, + "acm007597jsd" : { + "type" : "CodePackage", + "id" : "acm007597jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007598jsd" ] + }, + "acm007598jsd" : { + "type" : "CodePackage", + "id" : "acm007598jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007599jsd" ] + }, + "acm007599jsd" : { + "type" : "CodePackage", + "id" : "acm007599jsd", + "name" : "customexporter", + "parentId" : "acm007350jsd", + "content" : [ "acm007594jsd", "acm007607jsd" ] + }, + "acm007600jsd" : { + "type" : "ControlElement", + "id" : "acm007600jsd", + "name" : "CustomExporterTab" + }, + "acm007601jsd" : { + "type" : "ControlElement", + "id" : "acm007601jsd", + "name" : "getTabName" + }, + "acm007602jsd" : { + "type" : "ControlElement", + "id" : "acm007602jsd", + "name" : "initialize" + }, + "acm007603jsd" : { + "type" : "ControlElement", + "id" : "acm007603jsd", + "name" : "add" + }, + "acm007604jsd" : { + "type" : "ControlElement", + "id" : "acm007604jsd", + "name" : "modify" + }, + "acm007605jsd" : { + "type" : "ControlElement", + "id" : "acm007605jsd", + "name" : "remove" + }, + "acm007606jsd" : { + "type" : "ClassUnit", + "id" : "acm007606jsd", + "name" : "CustomExporterTab", + "compilationUnitId" : "acm007594jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm004005jsd", "acm007621jsd" ], + "content" : [ "acm007600jsd", "acm007601jsd", "acm007602jsd", "acm007603jsd", "acm007604jsd", "acm007605jsd" ] + }, + "acm007607jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007607jsd", + "name" : "CustomExporterTabViewModel", + "parentId" : "acm007599jsd", + "content" : [ "acm007621jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customexporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007608jsd" : { + "type" : "CodePackage", + "id" : "acm007608jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007609jsd" ] + }, + "acm007609jsd" : { + "type" : "CodePackage", + "id" : "acm007609jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007610jsd" ] + }, + "acm007610jsd" : { + "type" : "CodePackage", + "id" : "acm007610jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007611jsd" ] + }, + "acm007611jsd" : { + "type" : "CodePackage", + "id" : "acm007611jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007612jsd" ] + }, + "acm007612jsd" : { + "type" : "CodePackage", + "id" : "acm007612jsd", + "name" : "customexporter", + "parentId" : null, + "content" : [ "acm007607jsd" ] + }, + "acm007613jsd" : { + "type" : "ControlElement", + "id" : "acm007613jsd", + "name" : "CustomExporterTabViewModel" + }, + "acm007614jsd" : { + "type" : "ControlElement", + "id" : "acm007614jsd", + "name" : "setValues" + }, + "acm007615jsd" : { + "type" : "ControlElement", + "id" : "acm007615jsd", + "name" : "storeSettings" + }, + "acm007616jsd" : { + "type" : "ControlElement", + "id" : "acm007616jsd", + "name" : "addExporter" + }, + "acm007617jsd" : { + "type" : "ControlElement", + "id" : "acm007617jsd", + "name" : "modifyExporter" + }, + "acm007618jsd" : { + "type" : "ControlElement", + "id" : "acm007618jsd", + "name" : "removeExporters" + }, + "acm007619jsd" : { + "type" : "ControlElement", + "id" : "acm007619jsd", + "name" : "selectedExportersProperty" + }, + "acm007620jsd" : { + "type" : "ControlElement", + "id" : "acm007620jsd", + "name" : "exportersProperty" + }, + "acm007621jsd" : { + "type" : "ClassUnit", + "id" : "acm007621jsd", + "name" : "CustomExporterTabViewModel", + "compilationUnitId" : "acm007607jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm001640jsd", "acm003961jsd", "acm004005jsd", "acm011680jsd", "acm021206jsd" ], + "content" : [ "acm007613jsd", "acm007614jsd", "acm007615jsd", "acm007616jsd", "acm007617jsd", "acm007618jsd", "acm007619jsd", "acm007620jsd" ] + }, + "acm007622jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007622jsd", + "name" : "CustomImporterTab", + "parentId" : "acm007627jsd", + "content" : [ "acm007633jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customimporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007623jsd" : { + "type" : "CodePackage", + "id" : "acm007623jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007624jsd" ] + }, + "acm007624jsd" : { + "type" : "CodePackage", + "id" : "acm007624jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007625jsd" ] + }, + "acm007625jsd" : { + "type" : "CodePackage", + "id" : "acm007625jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007626jsd" ] + }, + "acm007626jsd" : { + "type" : "CodePackage", + "id" : "acm007626jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007627jsd" ] + }, + "acm007627jsd" : { + "type" : "CodePackage", + "id" : "acm007627jsd", + "name" : "customimporter", + "parentId" : "acm007350jsd", + "content" : [ "acm007622jsd", "acm007634jsd" ] + }, + "acm007628jsd" : { + "type" : "ControlElement", + "id" : "acm007628jsd", + "name" : "CustomImporterTab" + }, + "acm007629jsd" : { + "type" : "ControlElement", + "id" : "acm007629jsd", + "name" : "getTabName" + }, + "acm007630jsd" : { + "type" : "ControlElement", + "id" : "acm007630jsd", + "name" : "initialize" + }, + "acm007631jsd" : { + "type" : "ControlElement", + "id" : "acm007631jsd", + "name" : "add" + }, + "acm007632jsd" : { + "type" : "ControlElement", + "id" : "acm007632jsd", + "name" : "remove" + }, + "acm007633jsd" : { + "type" : "ClassUnit", + "id" : "acm007633jsd", + "name" : "CustomImporterTab", + "compilationUnitId" : "acm007622jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm005567jsd", "acm007648jsd", "acm010073jsd" ], + "content" : [ "acm007628jsd", "acm007629jsd", "acm007630jsd", "acm007631jsd", "acm007632jsd" ] + }, + "acm007634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007634jsd", + "name" : "CustomImporterTabViewModel", + "parentId" : "acm007627jsd", + "content" : [ "acm007648jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "customimporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007635jsd" : { + "type" : "CodePackage", + "id" : "acm007635jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007636jsd" ] + }, + "acm007636jsd" : { + "type" : "CodePackage", + "id" : "acm007636jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007637jsd" ] + }, + "acm007637jsd" : { + "type" : "CodePackage", + "id" : "acm007637jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007638jsd" ] + }, + "acm007638jsd" : { + "type" : "CodePackage", + "id" : "acm007638jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007639jsd" ] + }, + "acm007639jsd" : { + "type" : "CodePackage", + "id" : "acm007639jsd", + "name" : "customimporter", + "parentId" : null, + "content" : [ "acm007634jsd" ] + }, + "acm007640jsd" : { + "type" : "ControlElement", + "id" : "acm007640jsd", + "name" : "CustomImporterTabViewModel" + }, + "acm007641jsd" : { + "type" : "ControlElement", + "id" : "acm007641jsd", + "name" : "setValues" + }, + "acm007642jsd" : { + "type" : "ControlElement", + "id" : "acm007642jsd", + "name" : "storeSettings" + }, + "acm007643jsd" : { + "type" : "ControlElement", + "id" : "acm007643jsd", + "name" : "pathToClass" + }, + "acm007644jsd" : { + "type" : "ControlElement", + "id" : "acm007644jsd", + "name" : "addImporter" + }, + "acm007645jsd" : { + "type" : "ControlElement", + "id" : "acm007645jsd", + "name" : "removeSelectedImporter" + }, + "acm007646jsd" : { + "type" : "ControlElement", + "id" : "acm007646jsd", + "name" : "selectedImportersProperty" + }, + "acm007647jsd" : { + "type" : "ControlElement", + "id" : "acm007647jsd", + "name" : "importersProperty" + }, + "acm007648jsd" : { + "type" : "ClassUnit", + "id" : "acm007648jsd", + "name" : "CustomImporterTabViewModel", + "compilationUnitId" : "acm007634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005567jsd", "acm007648jsd", "acm009796jsd", "acm009809jsd", "acm013876jsd", "acm021206jsd" ], + "content" : [ "acm007640jsd", "acm007641jsd", "acm007642jsd", "acm007643jsd", "acm007644jsd", "acm007645jsd", "acm007646jsd", "acm007647jsd" ] + }, + "acm007649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007649jsd", + "name" : "EntryTab", + "parentId" : "acm007654jsd", + "content" : [ "acm007658jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007650jsd" : { + "type" : "CodePackage", + "id" : "acm007650jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007651jsd" ] + }, + "acm007651jsd" : { + "type" : "CodePackage", + "id" : "acm007651jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007652jsd" ] + }, + "acm007652jsd" : { + "type" : "CodePackage", + "id" : "acm007652jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007653jsd" ] + }, + "acm007653jsd" : { + "type" : "CodePackage", + "id" : "acm007653jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007654jsd" ] + }, + "acm007654jsd" : { + "type" : "CodePackage", + "id" : "acm007654jsd", + "name" : "entry", + "parentId" : "acm007350jsd", + "content" : [ "acm007649jsd", "acm007659jsd" ] + }, + "acm007655jsd" : { + "type" : "ControlElement", + "id" : "acm007655jsd", + "name" : "EntryTab" + }, + "acm007656jsd" : { + "type" : "ControlElement", + "id" : "acm007656jsd", + "name" : "initialize" + }, + "acm007657jsd" : { + "type" : "ControlElement", + "id" : "acm007657jsd", + "name" : "getTabName" + }, + "acm007658jsd" : { + "type" : "ClassUnit", + "id" : "acm007658jsd", + "name" : "EntryTab", + "compilationUnitId" : "acm007649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm005802jsd", "acm007674jsd" ], + "content" : [ "acm007655jsd", "acm007656jsd", "acm007657jsd" ] + }, + "acm007659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007659jsd", + "name" : "EntryTabViewModel", + "parentId" : "acm007654jsd", + "content" : [ "acm007674jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007660jsd" : { + "type" : "CodePackage", + "id" : "acm007660jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007661jsd" ] + }, + "acm007661jsd" : { + "type" : "CodePackage", + "id" : "acm007661jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007662jsd" ] + }, + "acm007662jsd" : { + "type" : "CodePackage", + "id" : "acm007662jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007663jsd" ] + }, + "acm007663jsd" : { + "type" : "CodePackage", + "id" : "acm007663jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007664jsd" ] + }, + "acm007664jsd" : { + "type" : "CodePackage", + "id" : "acm007664jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm007659jsd" ] + }, + "acm007665jsd" : { + "type" : "ControlElement", + "id" : "acm007665jsd", + "name" : "EntryTabViewModel" + }, + "acm007666jsd" : { + "type" : "ControlElement", + "id" : "acm007666jsd", + "name" : "setValues" + }, + "acm007667jsd" : { + "type" : "ControlElement", + "id" : "acm007667jsd", + "name" : "storeSettings" + }, + "acm007668jsd" : { + "type" : "ControlElement", + "id" : "acm007668jsd", + "name" : "keywordSeparatorProperty" + }, + "acm007669jsd" : { + "type" : "ControlElement", + "id" : "acm007669jsd", + "name" : "markOwnerProperty" + }, + "acm007670jsd" : { + "type" : "ControlElement", + "id" : "acm007670jsd", + "name" : "markOwnerNameProperty" + }, + "acm007671jsd" : { + "type" : "ControlElement", + "id" : "acm007671jsd", + "name" : "markOwnerOverwriteProperty" + }, + "acm007672jsd" : { + "type" : "ControlElement", + "id" : "acm007672jsd", + "name" : "addCreationDateProperty" + }, + "acm007673jsd" : { + "type" : "ControlElement", + "id" : "acm007673jsd", + "name" : "addModificationDateProperty" + }, + "acm007674jsd" : { + "type" : "ClassUnit", + "id" : "acm007674jsd", + "name" : "EntryTabViewModel", + "compilationUnitId" : "acm007659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm016624jsd", "acm016641jsd", "acm020774jsd" ], + "content" : [ "acm007665jsd", "acm007666jsd", "acm007667jsd", "acm007668jsd", "acm007669jsd", "acm007670jsd", "acm007671jsd", "acm007672jsd", "acm007673jsd" ] + }, + "acm007675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007675jsd", + "name" : "EntryEditorTab", + "parentId" : "acm007680jsd", + "content" : [ "acm007684jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007676jsd" : { + "type" : "CodePackage", + "id" : "acm007676jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007677jsd" ] + }, + "acm007677jsd" : { + "type" : "CodePackage", + "id" : "acm007677jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007678jsd" ] + }, + "acm007678jsd" : { + "type" : "CodePackage", + "id" : "acm007678jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007679jsd" ] + }, + "acm007679jsd" : { + "type" : "CodePackage", + "id" : "acm007679jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007680jsd" ] + }, + "acm007680jsd" : { + "type" : "CodePackage", + "id" : "acm007680jsd", + "name" : "entryeditor", + "parentId" : "acm007350jsd", + "content" : [ "acm007675jsd", "acm007685jsd" ] + }, + "acm007681jsd" : { + "type" : "ControlElement", + "id" : "acm007681jsd", + "name" : "EntryEditorTab" + }, + "acm007682jsd" : { + "type" : "ControlElement", + "id" : "acm007682jsd", + "name" : "getTabName" + }, + "acm007683jsd" : { + "type" : "ControlElement", + "id" : "acm007683jsd", + "name" : "initialize" + }, + "acm007684jsd" : { + "type" : "ClassUnit", + "id" : "acm007684jsd", + "name" : "EntryEditorTab", + "compilationUnitId" : "acm007675jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm007710jsd" ], + "content" : [ "acm007681jsd", "acm007682jsd", "acm007683jsd" ] + }, + "acm007685jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007685jsd", + "name" : "EntryEditorTabViewModel", + "parentId" : "acm007680jsd", + "content" : [ "acm007710jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007686jsd" : { + "type" : "CodePackage", + "id" : "acm007686jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007687jsd" ] + }, + "acm007687jsd" : { + "type" : "CodePackage", + "id" : "acm007687jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007688jsd" ] + }, + "acm007688jsd" : { + "type" : "CodePackage", + "id" : "acm007688jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007689jsd" ] + }, + "acm007689jsd" : { + "type" : "CodePackage", + "id" : "acm007689jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007690jsd" ] + }, + "acm007690jsd" : { + "type" : "CodePackage", + "id" : "acm007690jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm007685jsd" ] + }, + "acm007691jsd" : { + "type" : "ControlElement", + "id" : "acm007691jsd", + "name" : "EntryEditorTabViewModel" + }, + "acm007692jsd" : { + "type" : "ControlElement", + "id" : "acm007692jsd", + "name" : "setValues" + }, + "acm007693jsd" : { + "type" : "ControlElement", + "id" : "acm007693jsd", + "name" : "storeSettings" + }, + "acm007694jsd" : { + "type" : "ControlElement", + "id" : "acm007694jsd", + "name" : "getRestartWarnings" + }, + "acm007695jsd" : { + "type" : "ControlElement", + "id" : "acm007695jsd", + "name" : "openOnNewEntryProperty" + }, + "acm007696jsd" : { + "type" : "ControlElement", + "id" : "acm007696jsd", + "name" : "defaultSourceProperty" + }, + "acm007697jsd" : { + "type" : "ControlElement", + "id" : "acm007697jsd", + "name" : "enableRelatedArticlesTabProperty" + }, + "acm007698jsd" : { + "type" : "ControlElement", + "id" : "acm007698jsd", + "name" : "acceptRecommendationsProperty" + }, + "acm007699jsd" : { + "type" : "ControlElement", + "id" : "acm007699jsd", + "name" : "enableLatexCitationsTabProperty" + }, + "acm007700jsd" : { + "type" : "ControlElement", + "id" : "acm007700jsd", + "name" : "enableValidationProperty" + }, + "acm007701jsd" : { + "type" : "ControlElement", + "id" : "acm007701jsd", + "name" : "allowIntegerEditionProperty" + }, + "acm007702jsd" : { + "type" : "ControlElement", + "id" : "acm007702jsd", + "name" : "enableAutoCompleteProperty" + }, + "acm007703jsd" : { + "type" : "ControlElement", + "id" : "acm007703jsd", + "name" : "autoCompleteFieldsProperty" + }, + "acm007704jsd" : { + "type" : "ControlElement", + "id" : "acm007704jsd", + "name" : "autoCompleteFirstLastProperty" + }, + "acm007705jsd" : { + "type" : "ControlElement", + "id" : "acm007705jsd", + "name" : "autoCompleteLastFirstProperty" + }, + "acm007706jsd" : { + "type" : "ControlElement", + "id" : "acm007706jsd", + "name" : "autoCompleteBothProperty" + }, + "acm007707jsd" : { + "type" : "ControlElement", + "id" : "acm007707jsd", + "name" : "firstNameModeAbbreviatedProperty" + }, + "acm007708jsd" : { + "type" : "ControlElement", + "id" : "acm007708jsd", + "name" : "firstNameModeFullProperty" + }, + "acm007709jsd" : { + "type" : "ControlElement", + "id" : "acm007709jsd", + "name" : "firstNameModeBothProperty" + }, + "acm007710jsd" : { + "type" : "ClassUnit", + "id" : "acm007710jsd", + "name" : "EntryEditorTabViewModel", + "compilationUnitId" : "acm007685jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm002193jsd", "acm003647jsd" ], + "content" : [ "acm007691jsd", "acm007692jsd", "acm007693jsd", "acm007694jsd", "acm007695jsd", "acm007696jsd", "acm007697jsd", "acm007698jsd", "acm007699jsd", "acm007700jsd", "acm007701jsd", "acm007702jsd", "acm007703jsd", "acm007704jsd", "acm007705jsd", "acm007706jsd", "acm007707jsd", "acm007708jsd", "acm007709jsd" ] + }, + "acm007711jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007711jsd", + "name" : "CustomEditorFieldsTab", + "parentId" : "acm007716jsd", + "content" : [ "acm007721jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entryeditortabs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007712jsd" : { + "type" : "CodePackage", + "id" : "acm007712jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007713jsd" ] + }, + "acm007713jsd" : { + "type" : "CodePackage", + "id" : "acm007713jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007714jsd" ] + }, + "acm007714jsd" : { + "type" : "CodePackage", + "id" : "acm007714jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007715jsd" ] + }, + "acm007715jsd" : { + "type" : "CodePackage", + "id" : "acm007715jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007716jsd" ] + }, + "acm007716jsd" : { + "type" : "CodePackage", + "id" : "acm007716jsd", + "name" : "entryeditortabs", + "parentId" : "acm007350jsd", + "content" : [ "acm007711jsd", "acm007722jsd" ] + }, + "acm007717jsd" : { + "type" : "ControlElement", + "id" : "acm007717jsd", + "name" : "CustomEditorFieldsTab" + }, + "acm007718jsd" : { + "type" : "ControlElement", + "id" : "acm007718jsd", + "name" : "getTabName" + }, + "acm007719jsd" : { + "type" : "ControlElement", + "id" : "acm007719jsd", + "name" : "initialize" + }, + "acm007720jsd" : { + "type" : "ControlElement", + "id" : "acm007720jsd", + "name" : "resetToDefaults" + }, + "acm007721jsd" : { + "type" : "ClassUnit", + "id" : "acm007721jsd", + "name" : "CustomEditorFieldsTab", + "compilationUnitId" : "acm007711jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm007734jsd" ], + "content" : [ "acm007717jsd", "acm007718jsd", "acm007719jsd", "acm007720jsd" ] + }, + "acm007722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007722jsd", + "name" : "CustomEditorFieldsTabViewModel", + "parentId" : "acm007716jsd", + "content" : [ "acm007734jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "entryeditortabs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007723jsd" : { + "type" : "CodePackage", + "id" : "acm007723jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007724jsd" ] + }, + "acm007724jsd" : { + "type" : "CodePackage", + "id" : "acm007724jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007725jsd" ] + }, + "acm007725jsd" : { + "type" : "CodePackage", + "id" : "acm007725jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007726jsd" ] + }, + "acm007726jsd" : { + "type" : "CodePackage", + "id" : "acm007726jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007727jsd" ] + }, + "acm007727jsd" : { + "type" : "CodePackage", + "id" : "acm007727jsd", + "name" : "entryeditortabs", + "parentId" : null, + "content" : [ "acm007722jsd" ] + }, + "acm007728jsd" : { + "type" : "ControlElement", + "id" : "acm007728jsd", + "name" : "CustomEditorFieldsTabViewModel" + }, + "acm007729jsd" : { + "type" : "ControlElement", + "id" : "acm007729jsd", + "name" : "setValues" + }, + "acm007730jsd" : { + "type" : "ControlElement", + "id" : "acm007730jsd", + "name" : "resetToDefaults" + }, + "acm007731jsd" : { + "type" : "ControlElement", + "id" : "acm007731jsd", + "name" : "setFields" + }, + "acm007732jsd" : { + "type" : "ControlElement", + "id" : "acm007732jsd", + "name" : "storeSettings" + }, + "acm007733jsd" : { + "type" : "ControlElement", + "id" : "acm007733jsd", + "name" : "fieldsProperty" + }, + "acm007734jsd" : { + "type" : "ClassUnit", + "id" : "acm007734jsd", + "name" : "CustomEditorFieldsTabViewModel", + "compilationUnitId" : "acm007722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003647jsd", "acm018673jsd", "acm021206jsd" ], + "content" : [ "acm007728jsd", "acm007729jsd", "acm007730jsd", "acm007731jsd", "acm007732jsd", "acm007733jsd" ] + }, + "acm007735jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007735jsd", + "name" : "ExternalTab", + "parentId" : "acm007740jsd", + "content" : [ "acm007747jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007736jsd" : { + "type" : "CodePackage", + "id" : "acm007736jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007737jsd" ] + }, + "acm007737jsd" : { + "type" : "CodePackage", + "id" : "acm007737jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007738jsd" ] + }, + "acm007738jsd" : { + "type" : "CodePackage", + "id" : "acm007738jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007739jsd" ] + }, + "acm007739jsd" : { + "type" : "CodePackage", + "id" : "acm007739jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007740jsd" ] + }, + "acm007740jsd" : { + "type" : "CodePackage", + "id" : "acm007740jsd", + "name" : "external", + "parentId" : "acm007350jsd", + "content" : [ "acm007735jsd", "acm007748jsd" ] + }, + "acm007741jsd" : { + "type" : "ControlElement", + "id" : "acm007741jsd", + "name" : "ExternalTab" + }, + "acm007742jsd" : { + "type" : "ControlElement", + "id" : "acm007742jsd", + "name" : "getTabName" + }, + "acm007743jsd" : { + "type" : "ControlElement", + "id" : "acm007743jsd", + "name" : "initialize" + }, + "acm007744jsd" : { + "type" : "ControlElement", + "id" : "acm007744jsd", + "name" : "pushToApplicationSettings" + }, + "acm007745jsd" : { + "type" : "ControlElement", + "id" : "acm007745jsd", + "name" : "useTerminalCommandBrowse" + }, + "acm007746jsd" : { + "type" : "ControlElement", + "id" : "acm007746jsd", + "name" : "useFileBrowserSpecialCommandBrowse" + }, + "acm007747jsd" : { + "type" : "ClassUnit", + "id" : "acm007747jsd", + "name" : "ExternalTab", + "compilationUnitId" : "acm007735jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm007772jsd", "acm008578jsd", "acm009856jsd", "acm010051jsd" ], + "content" : [ "acm007741jsd", "acm007742jsd", "acm007743jsd", "acm007744jsd", "acm007745jsd", "acm007746jsd" ] + }, + "acm007748jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007748jsd", + "name" : "ExternalTabViewModel", + "parentId" : "acm007740jsd", + "content" : [ "acm007772jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007749jsd" : { + "type" : "CodePackage", + "id" : "acm007749jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007750jsd" ] + }, + "acm007750jsd" : { + "type" : "CodePackage", + "id" : "acm007750jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007751jsd" ] + }, + "acm007751jsd" : { + "type" : "CodePackage", + "id" : "acm007751jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007752jsd" ] + }, + "acm007752jsd" : { + "type" : "CodePackage", + "id" : "acm007752jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007753jsd" ] + }, + "acm007753jsd" : { + "type" : "CodePackage", + "id" : "acm007753jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007748jsd" ] + }, + "acm007754jsd" : { + "type" : "ControlElement", + "id" : "acm007754jsd", + "name" : "ExternalTabViewModel" + }, + "acm007755jsd" : { + "type" : "ControlElement", + "id" : "acm007755jsd", + "name" : "setValues" + }, + "acm007756jsd" : { + "type" : "ControlElement", + "id" : "acm007756jsd", + "name" : "storeSettings" + }, + "acm007757jsd" : { + "type" : "ControlElement", + "id" : "acm007757jsd", + "name" : "terminalCommandValidationStatus" + }, + "acm007758jsd" : { + "type" : "ControlElement", + "id" : "acm007758jsd", + "name" : "fileBrowserCommandValidationStatus" + }, + "acm007759jsd" : { + "type" : "ControlElement", + "id" : "acm007759jsd", + "name" : "validateSettings" + }, + "acm007760jsd" : { + "type" : "ControlElement", + "id" : "acm007760jsd", + "name" : "pushToApplicationSettings" + }, + "acm007761jsd" : { + "type" : "ControlElement", + "id" : "acm007761jsd", + "name" : "customTerminalBrowse" + }, + "acm007762jsd" : { + "type" : "ControlElement", + "id" : "acm007762jsd", + "name" : "customFileBrowserBrowse" + }, + "acm007763jsd" : { + "type" : "ControlElement", + "id" : "acm007763jsd", + "name" : "eMailReferenceSubjectProperty" + }, + "acm007764jsd" : { + "type" : "ControlElement", + "id" : "acm007764jsd", + "name" : "autoOpenAttachedFoldersProperty" + }, + "acm007765jsd" : { + "type" : "ControlElement", + "id" : "acm007765jsd", + "name" : "pushToApplicationsListProperty" + }, + "acm007766jsd" : { + "type" : "ControlElement", + "id" : "acm007766jsd", + "name" : "selectedPushToApplication" + }, + "acm007767jsd" : { + "type" : "ControlElement", + "id" : "acm007767jsd", + "name" : "citeCommandProperty" + }, + "acm007768jsd" : { + "type" : "ControlElement", + "id" : "acm007768jsd", + "name" : "useCustomTerminalProperty" + }, + "acm007769jsd" : { + "type" : "ControlElement", + "id" : "acm007769jsd", + "name" : "customTerminalCommandProperty" + }, + "acm007770jsd" : { + "type" : "ControlElement", + "id" : "acm007770jsd", + "name" : "useCustomFileBrowserProperty" + }, + "acm007771jsd" : { + "type" : "ControlElement", + "id" : "acm007771jsd", + "name" : "customFileBrowserCommandProperty" + }, + "acm007772jsd" : { + "type" : "ClassUnit", + "id" : "acm007772jsd", + "name" : "ExternalTabViewModel", + "compilationUnitId" : "acm007748jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008578jsd", "acm008600jsd", "acm008622jsd", "acm009796jsd", "acm009809jsd", "acm020819jsd", "acm021206jsd", "acm021241jsd" ], + "content" : [ "acm007754jsd", "acm007755jsd", "acm007756jsd", "acm007757jsd", "acm007758jsd", "acm007759jsd", "acm007760jsd", "acm007761jsd", "acm007762jsd", "acm007763jsd", "acm007764jsd", "acm007765jsd", "acm007766jsd", "acm007767jsd", "acm007768jsd", "acm007769jsd", "acm007770jsd", "acm007771jsd" ] + }, + "acm007773jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007773jsd", + "name" : "EditExternalFileTypeEntryDialog", + "parentId" : "acm007778jsd", + "content" : [ "acm007782jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "externalfiletypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007774jsd" : { + "type" : "CodePackage", + "id" : "acm007774jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007775jsd" ] + }, + "acm007775jsd" : { + "type" : "CodePackage", + "id" : "acm007775jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007776jsd" ] + }, + "acm007776jsd" : { + "type" : "CodePackage", + "id" : "acm007776jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007777jsd" ] + }, + "acm007777jsd" : { + "type" : "CodePackage", + "id" : "acm007777jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007778jsd" ] + }, + "acm007778jsd" : { + "type" : "CodePackage", + "id" : "acm007778jsd", + "name" : "externalfiletypes", + "parentId" : "acm007350jsd", + "content" : [ "acm007773jsd", "acm007783jsd", "acm007799jsd", "acm007815jsd", "acm007827jsd" ] + }, + "acm007779jsd" : { + "type" : "ControlElement", + "id" : "acm007779jsd", + "name" : "EditExternalFileTypeEntryDialog" + }, + "acm007780jsd" : { + "type" : "ControlElement", + "id" : "acm007780jsd", + "name" : "initialize" + }, + "acm007781jsd" : { + "type" : "ControlElement", + "id" : "acm007781jsd", + "name" : "openFileChooser" + }, + "acm007782jsd" : { + "type" : "ClassUnit", + "id" : "acm007782jsd", + "name" : "EditExternalFileTypeEntryDialog", + "compilationUnitId" : "acm007773jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm003042jsd", "acm007798jsd", "acm007814jsd", "acm009796jsd", "acm009809jsd" ], + "content" : [ "acm007779jsd", "acm007780jsd", "acm007781jsd" ] + }, + "acm007783jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007783jsd", + "name" : "EditExternalFileTypeViewModel", + "parentId" : "acm007778jsd", + "content" : [ "acm007798jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "externalfiletypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007784jsd" : { + "type" : "CodePackage", + "id" : "acm007784jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007785jsd" ] + }, + "acm007785jsd" : { + "type" : "CodePackage", + "id" : "acm007785jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007786jsd" ] + }, + "acm007786jsd" : { + "type" : "CodePackage", + "id" : "acm007786jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007787jsd" ] + }, + "acm007787jsd" : { + "type" : "CodePackage", + "id" : "acm007787jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007788jsd" ] + }, + "acm007788jsd" : { + "type" : "CodePackage", + "id" : "acm007788jsd", + "name" : "externalfiletypes", + "parentId" : null, + "content" : [ "acm007783jsd" ] + }, + "acm007789jsd" : { + "type" : "ControlElement", + "id" : "acm007789jsd", + "name" : "EditExternalFileTypeViewModel" + }, + "acm007790jsd" : { + "type" : "ControlElement", + "id" : "acm007790jsd", + "name" : "getIcon" + }, + "acm007791jsd" : { + "type" : "ControlElement", + "id" : "acm007791jsd", + "name" : "nameProperty" + }, + "acm007792jsd" : { + "type" : "ControlElement", + "id" : "acm007792jsd", + "name" : "extensionProperty" + }, + "acm007793jsd" : { + "type" : "ControlElement", + "id" : "acm007793jsd", + "name" : "mimeTypeProperty" + }, + "acm007794jsd" : { + "type" : "ControlElement", + "id" : "acm007794jsd", + "name" : "selectedApplicationProperty" + }, + "acm007795jsd" : { + "type" : "ControlElement", + "id" : "acm007795jsd", + "name" : "defaultApplicationSelectedProperty" + }, + "acm007796jsd" : { + "type" : "ControlElement", + "id" : "acm007796jsd", + "name" : "customApplicationSelectedProperty" + }, + "acm007797jsd" : { + "type" : "ControlElement", + "id" : "acm007797jsd", + "name" : "storeSettings" + }, + "acm007798jsd" : { + "type" : "ClassUnit", + "id" : "acm007798jsd", + "name" : "EditExternalFileTypeViewModel", + "compilationUnitId" : "acm007783jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007814jsd" ], + "content" : [ "acm007789jsd", "acm007790jsd", "acm007791jsd", "acm007792jsd", "acm007793jsd", "acm007794jsd", "acm007795jsd", "acm007796jsd", "acm007797jsd" ] + }, + "acm007799jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007799jsd", + "name" : "ExternalFileTypeItemViewModel", + "parentId" : "acm007778jsd", + "content" : [ "acm007814jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "externalfiletypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007800jsd" : { + "type" : "CodePackage", + "id" : "acm007800jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007801jsd" ] + }, + "acm007801jsd" : { + "type" : "CodePackage", + "id" : "acm007801jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007802jsd" ] + }, + "acm007802jsd" : { + "type" : "CodePackage", + "id" : "acm007802jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007803jsd" ] + }, + "acm007803jsd" : { + "type" : "CodePackage", + "id" : "acm007803jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007804jsd" ] + }, + "acm007804jsd" : { + "type" : "CodePackage", + "id" : "acm007804jsd", + "name" : "externalfiletypes", + "parentId" : null, + "content" : [ "acm007799jsd" ] + }, + "acm007805jsd" : { + "type" : "ControlElement", + "id" : "acm007805jsd", + "name" : "ExternalFileTypeItemViewModel" + }, + "acm007806jsd" : { + "type" : "ControlElement", + "id" : "acm007806jsd", + "name" : "ExternalFileTypeItemViewModel" + }, + "acm007807jsd" : { + "type" : "ControlElement", + "id" : "acm007807jsd", + "name" : "iconProperty" + }, + "acm007808jsd" : { + "type" : "ControlElement", + "id" : "acm007808jsd", + "name" : "getName" + }, + "acm007809jsd" : { + "type" : "ControlElement", + "id" : "acm007809jsd", + "name" : "nameProperty" + }, + "acm007810jsd" : { + "type" : "ControlElement", + "id" : "acm007810jsd", + "name" : "extensionProperty" + }, + "acm007811jsd" : { + "type" : "ControlElement", + "id" : "acm007811jsd", + "name" : "mimetypeProperty" + }, + "acm007812jsd" : { + "type" : "ControlElement", + "id" : "acm007812jsd", + "name" : "applicationProperty" + }, + "acm007813jsd" : { + "type" : "ControlElement", + "id" : "acm007813jsd", + "name" : "toExternalFileType" + }, + "acm007814jsd" : { + "type" : "ClassUnit", + "id" : "acm007814jsd", + "name" : "ExternalFileTypeItemViewModel", + "compilationUnitId" : "acm007799jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004315jsd", "acm004328jsd", "acm005416jsd" ], + "content" : [ "acm007805jsd", "acm007806jsd", "acm007807jsd", "acm007808jsd", "acm007809jsd", "acm007810jsd", "acm007811jsd", "acm007812jsd", "acm007813jsd" ] + }, + "acm007815jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007815jsd", + "name" : "ExternalFileTypesTab", + "parentId" : "acm007778jsd", + "content" : [ "acm007826jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "externalfiletypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007816jsd" : { + "type" : "CodePackage", + "id" : "acm007816jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007817jsd" ] + }, + "acm007817jsd" : { + "type" : "CodePackage", + "id" : "acm007817jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007818jsd" ] + }, + "acm007818jsd" : { + "type" : "CodePackage", + "id" : "acm007818jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007819jsd" ] + }, + "acm007819jsd" : { + "type" : "CodePackage", + "id" : "acm007819jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007820jsd" ] + }, + "acm007820jsd" : { + "type" : "CodePackage", + "id" : "acm007820jsd", + "name" : "externalfiletypes", + "parentId" : null, + "content" : [ "acm007815jsd" ] + }, + "acm007821jsd" : { + "type" : "ControlElement", + "id" : "acm007821jsd", + "name" : "ExternalFileTypesTab" + }, + "acm007822jsd" : { + "type" : "ControlElement", + "id" : "acm007822jsd", + "name" : "getTabName" + }, + "acm007823jsd" : { + "type" : "ControlElement", + "id" : "acm007823jsd", + "name" : "initialize" + }, + "acm007824jsd" : { + "type" : "ControlElement", + "id" : "acm007824jsd", + "name" : "addNewType" + }, + "acm007825jsd" : { + "type" : "ControlElement", + "id" : "acm007825jsd", + "name" : "resetToDefault" + }, + "acm007826jsd" : { + "type" : "ClassUnit", + "id" : "acm007826jsd", + "name" : "ExternalFileTypesTab", + "compilationUnitId" : "acm007815jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm007814jsd", "acm007842jsd", "acm010025jsd" ], + "content" : [ "acm007821jsd", "acm007822jsd", "acm007823jsd", "acm007824jsd", "acm007825jsd" ] + }, + "acm007827jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007827jsd", + "name" : "ExternalFileTypesTabViewModel", + "parentId" : "acm007778jsd", + "content" : [ "acm007842jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "externalfiletypes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007828jsd" : { + "type" : "CodePackage", + "id" : "acm007828jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007829jsd" ] + }, + "acm007829jsd" : { + "type" : "CodePackage", + "id" : "acm007829jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007830jsd" ] + }, + "acm007830jsd" : { + "type" : "CodePackage", + "id" : "acm007830jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007831jsd" ] + }, + "acm007831jsd" : { + "type" : "CodePackage", + "id" : "acm007831jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007832jsd" ] + }, + "acm007832jsd" : { + "type" : "CodePackage", + "id" : "acm007832jsd", + "name" : "externalfiletypes", + "parentId" : null, + "content" : [ "acm007827jsd" ] + }, + "acm007833jsd" : { + "type" : "ControlElement", + "id" : "acm007833jsd", + "name" : "ExternalFileTypesTabViewModel" + }, + "acm007834jsd" : { + "type" : "ControlElement", + "id" : "acm007834jsd", + "name" : "setValues" + }, + "acm007835jsd" : { + "type" : "ControlElement", + "id" : "acm007835jsd", + "name" : "storeSettings" + }, + "acm007836jsd" : { + "type" : "ControlElement", + "id" : "acm007836jsd", + "name" : "resetToDefaults" + }, + "acm007837jsd" : { + "type" : "ControlElement", + "id" : "acm007837jsd", + "name" : "addNewType" + }, + "acm007838jsd" : { + "type" : "ControlElement", + "id" : "acm007838jsd", + "name" : "getFileTypes" + }, + "acm007839jsd" : { + "type" : "ControlElement", + "id" : "acm007839jsd", + "name" : "showEditDialog" + }, + "acm007840jsd" : { + "type" : "ControlElement", + "id" : "acm007840jsd", + "name" : "edit" + }, + "acm007841jsd" : { + "type" : "ControlElement", + "id" : "acm007841jsd", + "name" : "remove" + }, + "acm007842jsd" : { + "type" : "ClassUnit", + "id" : "acm007842jsd", + "name" : "ExternalFileTypesTabViewModel", + "compilationUnitId" : "acm007827jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm007782jsd", "acm007814jsd", "acm020848jsd" ], + "content" : [ "acm007833jsd", "acm007834jsd", "acm007835jsd", "acm007836jsd", "acm007837jsd", "acm007838jsd", "acm007839jsd", "acm007840jsd", "acm007841jsd" ] + }, + "acm007843jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007843jsd", + "name" : "FileTab", + "parentId" : "acm007848jsd", + "content" : [ "acm007852jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "file" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007844jsd" : { + "type" : "CodePackage", + "id" : "acm007844jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007845jsd" ] + }, + "acm007845jsd" : { + "type" : "CodePackage", + "id" : "acm007845jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007846jsd" ] + }, + "acm007846jsd" : { + "type" : "CodePackage", + "id" : "acm007846jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007847jsd" ] + }, + "acm007847jsd" : { + "type" : "CodePackage", + "id" : "acm007847jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007848jsd" ] + }, + "acm007848jsd" : { + "type" : "CodePackage", + "id" : "acm007848jsd", + "name" : "file", + "parentId" : "acm007350jsd", + "content" : [ "acm007843jsd", "acm007853jsd" ] + }, + "acm007849jsd" : { + "type" : "ControlElement", + "id" : "acm007849jsd", + "name" : "FileTab" + }, + "acm007850jsd" : { + "type" : "ControlElement", + "id" : "acm007850jsd", + "name" : "initialize" + }, + "acm007851jsd" : { + "type" : "ControlElement", + "id" : "acm007851jsd", + "name" : "getTabName" + }, + "acm007852jsd" : { + "type" : "ClassUnit", + "id" : "acm007852jsd", + "name" : "FileTab", + "compilationUnitId" : "acm007843jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm007868jsd" ], + "content" : [ "acm007849jsd", "acm007850jsd", "acm007851jsd" ] + }, + "acm007853jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007853jsd", + "name" : "FileTabViewModel", + "parentId" : "acm007848jsd", + "content" : [ "acm007868jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "file" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007854jsd" : { + "type" : "CodePackage", + "id" : "acm007854jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007855jsd" ] + }, + "acm007855jsd" : { + "type" : "CodePackage", + "id" : "acm007855jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007856jsd" ] + }, + "acm007856jsd" : { + "type" : "CodePackage", + "id" : "acm007856jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007857jsd" ] + }, + "acm007857jsd" : { + "type" : "CodePackage", + "id" : "acm007857jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007858jsd" ] + }, + "acm007858jsd" : { + "type" : "CodePackage", + "id" : "acm007858jsd", + "name" : "file", + "parentId" : null, + "content" : [ "acm007853jsd" ] + }, + "acm007859jsd" : { + "type" : "ControlElement", + "id" : "acm007859jsd", + "name" : "FileTabViewModel" + }, + "acm007860jsd" : { + "type" : "ControlElement", + "id" : "acm007860jsd", + "name" : "setValues" + }, + "acm007861jsd" : { + "type" : "ControlElement", + "id" : "acm007861jsd", + "name" : "storeSettings" + }, + "acm007862jsd" : { + "type" : "ControlElement", + "id" : "acm007862jsd", + "name" : "noWrapFilesProperty" + }, + "acm007863jsd" : { + "type" : "ControlElement", + "id" : "acm007863jsd", + "name" : "doNotResolveStringsProperty" + }, + "acm007864jsd" : { + "type" : "ControlElement", + "id" : "acm007864jsd", + "name" : "resolveStringsProperty" + }, + "acm007865jsd" : { + "type" : "ControlElement", + "id" : "acm007865jsd", + "name" : "resolveStringsForFieldsProperty" + }, + "acm007866jsd" : { + "type" : "ControlElement", + "id" : "acm007866jsd", + "name" : "alwaysReformatBibProperty" + }, + "acm007867jsd" : { + "type" : "ControlElement", + "id" : "acm007867jsd", + "name" : "autosaveLocalLibrariesProperty" + }, + "acm007868jsd" : { + "type" : "ClassUnit", + "id" : "acm007868jsd", + "name" : "FileTabViewModel", + "compilationUnitId" : "acm007853jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm020950jsd" ], + "content" : [ "acm007859jsd", "acm007860jsd", "acm007861jsd", "acm007862jsd", "acm007863jsd", "acm007864jsd", "acm007865jsd", "acm007866jsd", "acm007867jsd" ] + }, + "acm007869jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007869jsd", + "name" : "GeneralTab", + "parentId" : "acm007874jsd", + "content" : [ "acm007878jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "general" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007870jsd" : { + "type" : "CodePackage", + "id" : "acm007870jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007871jsd" ] + }, + "acm007871jsd" : { + "type" : "CodePackage", + "id" : "acm007871jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007872jsd" ] + }, + "acm007872jsd" : { + "type" : "CodePackage", + "id" : "acm007872jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007873jsd" ] + }, + "acm007873jsd" : { + "type" : "CodePackage", + "id" : "acm007873jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007874jsd" ] + }, + "acm007874jsd" : { + "type" : "CodePackage", + "id" : "acm007874jsd", + "name" : "general", + "parentId" : "acm007350jsd", + "content" : [ "acm007869jsd", "acm007879jsd" ] + }, + "acm007875jsd" : { + "type" : "ControlElement", + "id" : "acm007875jsd", + "name" : "GeneralTab" + }, + "acm007876jsd" : { + "type" : "ControlElement", + "id" : "acm007876jsd", + "name" : "getTabName" + }, + "acm007877jsd" : { + "type" : "ControlElement", + "id" : "acm007877jsd", + "name" : "initialize" + }, + "acm007878jsd" : { + "type" : "ClassUnit", + "id" : "acm007878jsd", + "name" : "GeneralTab", + "compilationUnitId" : "acm007869jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm007899jsd", "acm010051jsd", "acm014911jsd", "acm018032jsd" ], + "content" : [ "acm007875jsd", "acm007876jsd", "acm007877jsd" ] + }, + "acm007879jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007879jsd", + "name" : "GeneralTabViewModel", + "parentId" : "acm007874jsd", + "content" : [ "acm007899jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "general" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007880jsd" : { + "type" : "CodePackage", + "id" : "acm007880jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007881jsd" ] + }, + "acm007881jsd" : { + "type" : "CodePackage", + "id" : "acm007881jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007882jsd" ] + }, + "acm007882jsd" : { + "type" : "CodePackage", + "id" : "acm007882jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007883jsd" ] + }, + "acm007883jsd" : { + "type" : "CodePackage", + "id" : "acm007883jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007884jsd" ] + }, + "acm007884jsd" : { + "type" : "CodePackage", + "id" : "acm007884jsd", + "name" : "general", + "parentId" : null, + "content" : [ "acm007879jsd" ] + }, + "acm007885jsd" : { + "type" : "ControlElement", + "id" : "acm007885jsd", + "name" : "GeneralTabViewModel" + }, + "acm007886jsd" : { + "type" : "ControlElement", + "id" : "acm007886jsd", + "name" : "setValues" + }, + "acm007887jsd" : { + "type" : "ControlElement", + "id" : "acm007887jsd", + "name" : "storeSettings" + }, + "acm007888jsd" : { + "type" : "ControlElement", + "id" : "acm007888jsd", + "name" : "getRestartWarnings" + }, + "acm007889jsd" : { + "type" : "ControlElement", + "id" : "acm007889jsd", + "name" : "languagesListProperty" + }, + "acm007890jsd" : { + "type" : "ControlElement", + "id" : "acm007890jsd", + "name" : "selectedLanguageProperty" + }, + "acm007891jsd" : { + "type" : "ControlElement", + "id" : "acm007891jsd", + "name" : "biblatexModeListProperty" + }, + "acm007892jsd" : { + "type" : "ControlElement", + "id" : "acm007892jsd", + "name" : "selectedBiblatexModeProperty" + }, + "acm007893jsd" : { + "type" : "ControlElement", + "id" : "acm007893jsd", + "name" : "inspectionWarningDuplicateProperty" + }, + "acm007894jsd" : { + "type" : "ControlElement", + "id" : "acm007894jsd", + "name" : "confirmDeleteProperty" + }, + "acm007895jsd" : { + "type" : "ControlElement", + "id" : "acm007895jsd", + "name" : "memoryStickModeProperty" + }, + "acm007896jsd" : { + "type" : "ControlElement", + "id" : "acm007896jsd", + "name" : "collectTelemetryProperty" + }, + "acm007897jsd" : { + "type" : "ControlElement", + "id" : "acm007897jsd", + "name" : "openLastStartupProperty" + }, + "acm007898jsd" : { + "type" : "ControlElement", + "id" : "acm007898jsd", + "name" : "showAdvancedHintsProperty" + }, + "acm007899jsd" : { + "type" : "ClassUnit", + "id" : "acm007899jsd", + "name" : "GeneralTabViewModel", + "compilationUnitId" : "acm007879jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm014911jsd", "acm018032jsd", "acm020875jsd", "acm021292jsd" ], + "content" : [ "acm007885jsd", "acm007886jsd", "acm007887jsd", "acm007888jsd", "acm007889jsd", "acm007890jsd", "acm007891jsd", "acm007892jsd", "acm007893jsd", "acm007894jsd", "acm007895jsd", "acm007896jsd", "acm007897jsd", "acm007898jsd" ] + }, + "acm007900jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007900jsd", + "name" : "GroupsTab", + "parentId" : "acm007905jsd", + "content" : [ "acm007909jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007901jsd" : { + "type" : "CodePackage", + "id" : "acm007901jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007902jsd" ] + }, + "acm007902jsd" : { + "type" : "CodePackage", + "id" : "acm007902jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007903jsd" ] + }, + "acm007903jsd" : { + "type" : "CodePackage", + "id" : "acm007903jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007904jsd" ] + }, + "acm007904jsd" : { + "type" : "CodePackage", + "id" : "acm007904jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007905jsd" ] + }, + "acm007905jsd" : { + "type" : "CodePackage", + "id" : "acm007905jsd", + "name" : "groups", + "parentId" : "acm007350jsd", + "content" : [ "acm007900jsd", "acm007910jsd" ] + }, + "acm007906jsd" : { + "type" : "ControlElement", + "id" : "acm007906jsd", + "name" : "GroupsTab" + }, + "acm007907jsd" : { + "type" : "ControlElement", + "id" : "acm007907jsd", + "name" : "getTabName" + }, + "acm007908jsd" : { + "type" : "ControlElement", + "id" : "acm007908jsd", + "name" : "initialize" + }, + "acm007909jsd" : { + "type" : "ClassUnit", + "id" : "acm007909jsd", + "name" : "GroupsTab", + "compilationUnitId" : "acm007900jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm007923jsd" ], + "content" : [ "acm007906jsd", "acm007907jsd", "acm007908jsd" ] + }, + "acm007910jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007910jsd", + "name" : "GroupsTabViewModel", + "parentId" : "acm007905jsd", + "content" : [ "acm007923jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007911jsd" : { + "type" : "CodePackage", + "id" : "acm007911jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007912jsd" ] + }, + "acm007912jsd" : { + "type" : "CodePackage", + "id" : "acm007912jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007913jsd" ] + }, + "acm007913jsd" : { + "type" : "CodePackage", + "id" : "acm007913jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007914jsd" ] + }, + "acm007914jsd" : { + "type" : "CodePackage", + "id" : "acm007914jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007915jsd" ] + }, + "acm007915jsd" : { + "type" : "CodePackage", + "id" : "acm007915jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm007910jsd" ] + }, + "acm007916jsd" : { + "type" : "ControlElement", + "id" : "acm007916jsd", + "name" : "GroupsTabViewModel" + }, + "acm007917jsd" : { + "type" : "ControlElement", + "id" : "acm007917jsd", + "name" : "setValues" + }, + "acm007918jsd" : { + "type" : "ControlElement", + "id" : "acm007918jsd", + "name" : "storeSettings" + }, + "acm007919jsd" : { + "type" : "ControlElement", + "id" : "acm007919jsd", + "name" : "groupViewModeIntersectionProperty" + }, + "acm007920jsd" : { + "type" : "ControlElement", + "id" : "acm007920jsd", + "name" : "groupViewModeUnionProperty" + }, + "acm007921jsd" : { + "type" : "ControlElement", + "id" : "acm007921jsd", + "name" : "autoAssignGroupProperty" + }, + "acm007922jsd" : { + "type" : "ControlElement", + "id" : "acm007922jsd", + "name" : "displayGroupCount" + }, + "acm007923jsd" : { + "type" : "ClassUnit", + "id" : "acm007923jsd", + "name" : "GroupsTabViewModel", + "compilationUnitId" : "acm007910jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm005211jsd" ], + "content" : [ "acm007916jsd", "acm007917jsd", "acm007918jsd", "acm007919jsd", "acm007920jsd", "acm007921jsd", "acm007922jsd" ] + }, + "acm007924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007924jsd", + "name" : "ImportExportTab", + "parentId" : "acm007929jsd", + "content" : [ "acm007935jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "importexport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007925jsd" : { + "type" : "CodePackage", + "id" : "acm007925jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007926jsd" ] + }, + "acm007926jsd" : { + "type" : "CodePackage", + "id" : "acm007926jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007927jsd" ] + }, + "acm007927jsd" : { + "type" : "CodePackage", + "id" : "acm007927jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007928jsd" ] + }, + "acm007928jsd" : { + "type" : "CodePackage", + "id" : "acm007928jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007929jsd" ] + }, + "acm007929jsd" : { + "type" : "CodePackage", + "id" : "acm007929jsd", + "name" : "importexport", + "parentId" : "acm007350jsd", + "content" : [ "acm007924jsd", "acm007936jsd" ] + }, + "acm007930jsd" : { + "type" : "ControlElement", + "id" : "acm007930jsd", + "name" : "ImportExportTab" + }, + "acm007931jsd" : { + "type" : "ControlElement", + "id" : "acm007931jsd", + "name" : "getTabName" + }, + "acm007932jsd" : { + "type" : "ControlElement", + "id" : "acm007932jsd", + "name" : "initialize" + }, + "acm007933jsd" : { + "type" : "ControlElement", + "id" : "acm007933jsd", + "name" : "updateFetcherApiKey" + }, + "acm007934jsd" : { + "type" : "ControlElement", + "id" : "acm007934jsd", + "name" : "checkCustomApiKey" + }, + "acm007935jsd" : { + "type" : "ClassUnit", + "id" : "acm007935jsd", + "name" : "ImportExportTab", + "compilationUnitId" : "acm007924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002888jsd", "acm007960jsd", "acm010051jsd", "acm016608jsd" ], + "content" : [ "acm007930jsd", "acm007931jsd", "acm007932jsd", "acm007933jsd", "acm007934jsd" ] + }, + "acm007936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007936jsd", + "name" : "ImportExportTabViewModel", + "parentId" : "acm007929jsd", + "content" : [ "acm007960jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "importexport" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007937jsd" : { + "type" : "CodePackage", + "id" : "acm007937jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007938jsd" ] + }, + "acm007938jsd" : { + "type" : "CodePackage", + "id" : "acm007938jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007939jsd" ] + }, + "acm007939jsd" : { + "type" : "CodePackage", + "id" : "acm007939jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007940jsd" ] + }, + "acm007940jsd" : { + "type" : "CodePackage", + "id" : "acm007940jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007941jsd" ] + }, + "acm007941jsd" : { + "type" : "CodePackage", + "id" : "acm007941jsd", + "name" : "importexport", + "parentId" : null, + "content" : [ "acm007936jsd" ] + }, + "acm007942jsd" : { + "type" : "ControlElement", + "id" : "acm007942jsd", + "name" : "ImportExportTabViewModel" + }, + "acm007943jsd" : { + "type" : "ControlElement", + "id" : "acm007943jsd", + "name" : "setValues" + }, + "acm007944jsd" : { + "type" : "ControlElement", + "id" : "acm007944jsd", + "name" : "storeSettings" + }, + "acm007945jsd" : { + "type" : "ControlElement", + "id" : "acm007945jsd", + "name" : "generateKeyOnImportProperty" + }, + "acm007946jsd" : { + "type" : "ControlElement", + "id" : "acm007946jsd", + "name" : "useCustomDOIProperty" + }, + "acm007947jsd" : { + "type" : "ControlElement", + "id" : "acm007947jsd", + "name" : "useCustomDOINameProperty" + }, + "acm007948jsd" : { + "type" : "ControlElement", + "id" : "acm007948jsd", + "name" : "saveInOriginalProperty" + }, + "acm007949jsd" : { + "type" : "ControlElement", + "id" : "acm007949jsd", + "name" : "saveInTableOrderProperty" + }, + "acm007950jsd" : { + "type" : "ControlElement", + "id" : "acm007950jsd", + "name" : "saveInSpecifiedOrderProperty" + }, + "acm007951jsd" : { + "type" : "ControlElement", + "id" : "acm007951jsd", + "name" : "sortableFieldsProperty" + }, + "acm007952jsd" : { + "type" : "ControlElement", + "id" : "acm007952jsd", + "name" : "sortCriteriaProperty" + }, + "acm007953jsd" : { + "type" : "ControlElement", + "id" : "acm007953jsd", + "name" : "grobidEnabledProperty" + }, + "acm007954jsd" : { + "type" : "ControlElement", + "id" : "acm007954jsd", + "name" : "grobidURLProperty" + }, + "acm007955jsd" : { + "type" : "ControlElement", + "id" : "acm007955jsd", + "name" : "fetcherApiKeys" + }, + "acm007956jsd" : { + "type" : "ControlElement", + "id" : "acm007956jsd", + "name" : "selectedApiKeyProperty" + }, + "acm007957jsd" : { + "type" : "ControlElement", + "id" : "acm007957jsd", + "name" : "warnAboutDuplicatesOnImportProperty" + }, + "acm007958jsd" : { + "type" : "ControlElement", + "id" : "acm007958jsd", + "name" : "shouldDownloadLinkedOnlineFiles" + }, + "acm007959jsd" : { + "type" : "ControlElement", + "id" : "acm007959jsd", + "name" : "checkCustomApiKey" + }, + "acm007960jsd" : { + "type" : "ClassUnit", + "id" : "acm007960jsd", + "name" : "ImportExportTabViewModel", + "compilationUnitId" : "acm007936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002914jsd", "acm012467jsd", "acm012928jsd", "acm013062jsd", "acm015926jsd", "acm016594jsd", "acm016608jsd", "acm018673jsd", "acm019447jsd", "acm020848jsd", "acm020950jsd", "acm021206jsd" ], + "content" : [ "acm007942jsd", "acm007943jsd", "acm007944jsd", "acm007945jsd", "acm007946jsd", "acm007947jsd", "acm007948jsd", "acm007949jsd", "acm007950jsd", "acm007951jsd", "acm007952jsd", "acm007953jsd", "acm007954jsd", "acm007955jsd", "acm007956jsd", "acm007957jsd", "acm007958jsd", "acm007959jsd" ] + }, + "acm007961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007961jsd", + "name" : "AbbreviationViewModel", + "parentId" : "acm007966jsd", + "content" : [ "acm007983jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007962jsd" : { + "type" : "CodePackage", + "id" : "acm007962jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007963jsd" ] + }, + "acm007963jsd" : { + "type" : "CodePackage", + "id" : "acm007963jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007964jsd" ] + }, + "acm007964jsd" : { + "type" : "CodePackage", + "id" : "acm007964jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007965jsd" ] + }, + "acm007965jsd" : { + "type" : "CodePackage", + "id" : "acm007965jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007966jsd" ] + }, + "acm007966jsd" : { + "type" : "CodePackage", + "id" : "acm007966jsd", + "name" : "journals", + "parentId" : "acm007350jsd", + "content" : [ "acm007961jsd", "acm007984jsd", "acm008002jsd", "acm008024jsd", "acm021943jsd", "acm021954jsd" ] + }, + "acm007967jsd" : { + "type" : "ControlElement", + "id" : "acm007967jsd", + "name" : "AbbreviationViewModel" + }, + "acm007968jsd" : { + "type" : "ControlElement", + "id" : "acm007968jsd", + "name" : "getAbbreviationObject" + }, + "acm007969jsd" : { + "type" : "ControlElement", + "id" : "acm007969jsd", + "name" : "getName" + }, + "acm007970jsd" : { + "type" : "ControlElement", + "id" : "acm007970jsd", + "name" : "setName" + }, + "acm007971jsd" : { + "type" : "ControlElement", + "id" : "acm007971jsd", + "name" : "getAbbreviation" + }, + "acm007972jsd" : { + "type" : "ControlElement", + "id" : "acm007972jsd", + "name" : "setAbbreviation" + }, + "acm007973jsd" : { + "type" : "ControlElement", + "id" : "acm007973jsd", + "name" : "getShortestUniqueAbbreviation" + }, + "acm007974jsd" : { + "type" : "ControlElement", + "id" : "acm007974jsd", + "name" : "setShortestUniqueAbbreviation" + }, + "acm007975jsd" : { + "type" : "ControlElement", + "id" : "acm007975jsd", + "name" : "isPseudoAbbreviation" + }, + "acm007976jsd" : { + "type" : "ControlElement", + "id" : "acm007976jsd", + "name" : "nameProperty" + }, + "acm007977jsd" : { + "type" : "ControlElement", + "id" : "acm007977jsd", + "name" : "abbreviationProperty" + }, + "acm007978jsd" : { + "type" : "ControlElement", + "id" : "acm007978jsd", + "name" : "shortestUniqueAbbreviationProperty" + }, + "acm007979jsd" : { + "type" : "ControlElement", + "id" : "acm007979jsd", + "name" : "isPseudoAbbreviationProperty" + }, + "acm007980jsd" : { + "type" : "ControlElement", + "id" : "acm007980jsd", + "name" : "equals" + }, + "acm007981jsd" : { + "type" : "ControlElement", + "id" : "acm007981jsd", + "name" : "hashCode" + }, + "acm007982jsd" : { + "type" : "ControlElement", + "id" : "acm007982jsd", + "name" : "containsCaseIndependent" + }, + "acm007983jsd" : { + "type" : "ClassUnit", + "id" : "acm007983jsd", + "name" : "AbbreviationViewModel", + "compilationUnitId" : "acm007961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm007983jsd" ], + "content" : [ "acm007967jsd", "acm007968jsd", "acm007969jsd", "acm007970jsd", "acm007971jsd", "acm007972jsd", "acm007973jsd", "acm007974jsd", "acm007975jsd", "acm007976jsd", "acm007977jsd", "acm007978jsd", "acm007979jsd", "acm007980jsd", "acm007981jsd", "acm007982jsd" ] + }, + "acm007984jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007984jsd", + "name" : "AbbreviationsFileViewModel", + "parentId" : "acm007966jsd", + "content" : [ "acm008001jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007985jsd" : { + "type" : "CodePackage", + "id" : "acm007985jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm007986jsd" ] + }, + "acm007986jsd" : { + "type" : "CodePackage", + "id" : "acm007986jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm007987jsd" ] + }, + "acm007987jsd" : { + "type" : "CodePackage", + "id" : "acm007987jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm007988jsd" ] + }, + "acm007988jsd" : { + "type" : "CodePackage", + "id" : "acm007988jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm007989jsd" ] + }, + "acm007989jsd" : { + "type" : "CodePackage", + "id" : "acm007989jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm007984jsd" ] + }, + "acm007990jsd" : { + "type" : "ControlElement", + "id" : "acm007990jsd", + "name" : "AbbreviationsFileViewModel" + }, + "acm007991jsd" : { + "type" : "ControlElement", + "id" : "acm007991jsd", + "name" : "AbbreviationsFileViewModel" + }, + "acm007992jsd" : { + "type" : "ControlElement", + "id" : "acm007992jsd", + "name" : "readAbbreviations" + }, + "acm007993jsd" : { + "type" : "ControlElement", + "id" : "acm007993jsd", + "name" : "writeOrCreate" + }, + "acm007994jsd" : { + "type" : "ControlElement", + "id" : "acm007994jsd", + "name" : "abbreviationsProperty" + }, + "acm007995jsd" : { + "type" : "ControlElement", + "id" : "acm007995jsd", + "name" : "exists" + }, + "acm007996jsd" : { + "type" : "ControlElement", + "id" : "acm007996jsd", + "name" : "getAbsolutePath" + }, + "acm007997jsd" : { + "type" : "ControlElement", + "id" : "acm007997jsd", + "name" : "isBuiltInListProperty" + }, + "acm007998jsd" : { + "type" : "ControlElement", + "id" : "acm007998jsd", + "name" : "toString" + }, + "acm007999jsd" : { + "type" : "ControlElement", + "id" : "acm007999jsd", + "name" : "hashCode" + }, + "acm008000jsd" : { + "type" : "ControlElement", + "id" : "acm008000jsd", + "name" : "equals" + }, + "acm008001jsd" : { + "type" : "ClassUnit", + "id" : "acm008001jsd", + "name" : "AbbreviationsFileViewModel", + "compilationUnitId" : "acm007984jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm007983jsd", "acm008001jsd" ], + "content" : [ "acm007990jsd", "acm007991jsd", "acm007992jsd", "acm007993jsd", "acm007994jsd", "acm007995jsd", "acm007996jsd", "acm007997jsd", "acm007998jsd", "acm007999jsd", "acm008000jsd" ] + }, + "acm008002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008002jsd", + "name" : "JournalAbbreviationsTab", + "parentId" : "acm007966jsd", + "content" : [ "acm008023jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008003jsd" : { + "type" : "CodePackage", + "id" : "acm008003jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008004jsd" ] + }, + "acm008004jsd" : { + "type" : "CodePackage", + "id" : "acm008004jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008005jsd" ] + }, + "acm008005jsd" : { + "type" : "CodePackage", + "id" : "acm008005jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008006jsd" ] + }, + "acm008006jsd" : { + "type" : "CodePackage", + "id" : "acm008006jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008007jsd" ] + }, + "acm008007jsd" : { + "type" : "CodePackage", + "id" : "acm008007jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm008002jsd" ] + }, + "acm008008jsd" : { + "type" : "ControlElement", + "id" : "acm008008jsd", + "name" : "JournalAbbreviationsTab" + }, + "acm008009jsd" : { + "type" : "ControlElement", + "id" : "acm008009jsd", + "name" : "initialize" + }, + "acm008010jsd" : { + "type" : "ControlElement", + "id" : "acm008010jsd", + "name" : "setUpTable" + }, + "acm008011jsd" : { + "type" : "ControlElement", + "id" : "acm008011jsd", + "name" : "setBindings" + }, + "acm008012jsd" : { + "type" : "ControlElement", + "id" : "acm008012jsd", + "name" : "setAnimations" + }, + "acm008013jsd" : { + "type" : "ControlElement", + "id" : "acm008013jsd", + "name" : "addList" + }, + "acm008014jsd" : { + "type" : "ControlElement", + "id" : "acm008014jsd", + "name" : "openList" + }, + "acm008015jsd" : { + "type" : "ControlElement", + "id" : "acm008015jsd", + "name" : "removeList" + }, + "acm008016jsd" : { + "type" : "ControlElement", + "id" : "acm008016jsd", + "name" : "addAbbreviation" + }, + "acm008017jsd" : { + "type" : "ControlElement", + "id" : "acm008017jsd", + "name" : "addAbbreviationActions" + }, + "acm008018jsd" : { + "type" : "ControlElement", + "id" : "acm008018jsd", + "name" : "createFlashingColorStringProperty" + }, + "acm008019jsd" : { + "type" : "ControlElement", + "id" : "acm008019jsd", + "name" : "setColorStringFromColor" + }, + "acm008020jsd" : { + "type" : "ControlElement", + "id" : "acm008020jsd", + "name" : "editAbbreviation" + }, + "acm008021jsd" : { + "type" : "ControlElement", + "id" : "acm008021jsd", + "name" : "selectNewAbbreviation" + }, + "acm008022jsd" : { + "type" : "ControlElement", + "id" : "acm008022jsd", + "name" : "getTabName" + }, + "acm008023jsd" : { + "type" : "ClassUnit", + "id" : "acm008023jsd", + "name" : "JournalAbbreviationsTab", + "compilationUnitId" : "acm008002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm007983jsd", "acm008001jsd", "acm008057jsd", "acm009965jsd" ], + "content" : [ "acm008008jsd", "acm008009jsd", "acm008010jsd", "acm008011jsd", "acm008012jsd", "acm008013jsd", "acm008014jsd", "acm008015jsd", "acm008016jsd", "acm008017jsd", "acm008018jsd", "acm008019jsd", "acm008020jsd", "acm008021jsd", "acm008022jsd" ] + }, + "acm008024jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008024jsd", + "name" : "JournalAbbreviationsTabViewModel", + "parentId" : "acm007966jsd", + "content" : [ "acm008057jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008025jsd" : { + "type" : "CodePackage", + "id" : "acm008025jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008026jsd" ] + }, + "acm008026jsd" : { + "type" : "CodePackage", + "id" : "acm008026jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008027jsd" ] + }, + "acm008027jsd" : { + "type" : "CodePackage", + "id" : "acm008027jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008028jsd" ] + }, + "acm008028jsd" : { + "type" : "CodePackage", + "id" : "acm008028jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008029jsd" ] + }, + "acm008029jsd" : { + "type" : "CodePackage", + "id" : "acm008029jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm008024jsd" ] + }, + "acm008030jsd" : { + "type" : "ControlElement", + "id" : "acm008030jsd", + "name" : "JournalAbbreviationsTabViewModel" + }, + "acm008031jsd" : { + "type" : "ControlElement", + "id" : "acm008031jsd", + "name" : "setValues" + }, + "acm008032jsd" : { + "type" : "ControlElement", + "id" : "acm008032jsd", + "name" : "createFileObjects" + }, + "acm008033jsd" : { + "type" : "ControlElement", + "id" : "acm008033jsd", + "name" : "selectLastJournalFile" + }, + "acm008034jsd" : { + "type" : "ControlElement", + "id" : "acm008034jsd", + "name" : "addBuiltInList" + }, + "acm008035jsd" : { + "type" : "ControlElement", + "id" : "acm008035jsd", + "name" : "addNewFile" + }, + "acm008036jsd" : { + "type" : "ControlElement", + "id" : "acm008036jsd", + "name" : "openFile" + }, + "acm008037jsd" : { + "type" : "ControlElement", + "id" : "acm008037jsd", + "name" : "openFile" + }, + "acm008038jsd" : { + "type" : "ControlElement", + "id" : "acm008038jsd", + "name" : "removeCurrentFile" + }, + "acm008039jsd" : { + "type" : "ControlElement", + "id" : "acm008039jsd", + "name" : "addAbbreviation" + }, + "acm008040jsd" : { + "type" : "ControlElement", + "id" : "acm008040jsd", + "name" : "addAbbreviation" + }, + "acm008041jsd" : { + "type" : "ControlElement", + "id" : "acm008041jsd", + "name" : "editAbbreviation" + }, + "acm008042jsd" : { + "type" : "ControlElement", + "id" : "acm008042jsd", + "name" : "setCurrentAbbreviationNameAndAbbreviationIfValid" + }, + "acm008043jsd" : { + "type" : "ControlElement", + "id" : "acm008043jsd", + "name" : "deleteAbbreviation" + }, + "acm008044jsd" : { + "type" : "ControlElement", + "id" : "acm008044jsd", + "name" : "removeAbbreviation" + }, + "acm008045jsd" : { + "type" : "ControlElement", + "id" : "acm008045jsd", + "name" : "saveJournalAbbreviationFiles" + }, + "acm008046jsd" : { + "type" : "ControlElement", + "id" : "acm008046jsd", + "name" : "storeSettings" + }, + "acm008047jsd" : { + "type" : "ControlElement", + "id" : "acm008047jsd", + "name" : "isLoadingProperty" + }, + "acm008048jsd" : { + "type" : "ControlElement", + "id" : "acm008048jsd", + "name" : "journalFilesProperty" + }, + "acm008049jsd" : { + "type" : "ControlElement", + "id" : "acm008049jsd", + "name" : "abbreviationsProperty" + }, + "acm008050jsd" : { + "type" : "ControlElement", + "id" : "acm008050jsd", + "name" : "abbreviationsCountProperty" + }, + "acm008051jsd" : { + "type" : "ControlElement", + "id" : "acm008051jsd", + "name" : "currentFileProperty" + }, + "acm008052jsd" : { + "type" : "ControlElement", + "id" : "acm008052jsd", + "name" : "currentAbbreviationProperty" + }, + "acm008053jsd" : { + "type" : "ControlElement", + "id" : "acm008053jsd", + "name" : "isEditableAndRemovableProperty" + }, + "acm008054jsd" : { + "type" : "ControlElement", + "id" : "acm008054jsd", + "name" : "isAbbreviationEditableAndRemovable" + }, + "acm008055jsd" : { + "type" : "ControlElement", + "id" : "acm008055jsd", + "name" : "isFileRemovableProperty" + }, + "acm008056jsd" : { + "type" : "ControlElement", + "id" : "acm008056jsd", + "name" : "useFJournalProperty" + }, + "acm008057jsd" : { + "type" : "ClassUnit", + "id" : "acm008057jsd", + "name" : "JournalAbbreviationsTabViewModel", + "compilationUnitId" : "acm008024jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001403jsd", "acm001424jsd", "acm001640jsd", "acm007983jsd", "acm008001jsd", "acm008057jsd", "acm009796jsd", "acm009809jsd", "acm009965jsd" ], + "content" : [ "acm008030jsd", "acm008031jsd", "acm008032jsd", "acm008033jsd", "acm008034jsd", "acm008035jsd", "acm008036jsd", "acm008037jsd", "acm008038jsd", "acm008039jsd", "acm008040jsd", "acm008041jsd", "acm008042jsd", "acm008043jsd", "acm008044jsd", "acm008045jsd", "acm008046jsd", "acm008047jsd", "acm008048jsd", "acm008049jsd", "acm008050jsd", "acm008051jsd", "acm008052jsd", "acm008053jsd", "acm008054jsd", "acm008055jsd", "acm008056jsd" ] + }, + "acm008058jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008058jsd", + "name" : "KeyBindingViewModel", + "parentId" : "acm008063jsd", + "content" : [ "acm008079jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008059jsd" : { + "type" : "CodePackage", + "id" : "acm008059jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008060jsd" ] + }, + "acm008060jsd" : { + "type" : "CodePackage", + "id" : "acm008060jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008061jsd" ] + }, + "acm008061jsd" : { + "type" : "CodePackage", + "id" : "acm008061jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008062jsd" ] + }, + "acm008062jsd" : { + "type" : "CodePackage", + "id" : "acm008062jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008063jsd" ] + }, + "acm008063jsd" : { + "type" : "CodePackage", + "id" : "acm008063jsd", + "name" : "keybindings", + "parentId" : "acm007350jsd", + "content" : [ "acm008058jsd", "acm008080jsd", "acm008092jsd", "acm021999jsd", "acm008115jsd" ] + }, + "acm008064jsd" : { + "type" : "ControlElement", + "id" : "acm008064jsd", + "name" : "KeyBindingViewModel" + }, + "acm008065jsd" : { + "type" : "ControlElement", + "id" : "acm008065jsd", + "name" : "KeyBindingViewModel" + }, + "acm008066jsd" : { + "type" : "ControlElement", + "id" : "acm008066jsd", + "name" : "getChildren" + }, + "acm008067jsd" : { + "type" : "ControlElement", + "id" : "acm008067jsd", + "name" : "getKeyBinding" + }, + "acm008068jsd" : { + "type" : "ControlElement", + "id" : "acm008068jsd", + "name" : "shownBindingProperty" + }, + "acm008069jsd" : { + "type" : "ControlElement", + "id" : "acm008069jsd", + "name" : "getBinding" + }, + "acm008070jsd" : { + "type" : "ControlElement", + "id" : "acm008070jsd", + "name" : "setBinding" + }, + "acm008071jsd" : { + "type" : "ControlElement", + "id" : "acm008071jsd", + "name" : "setDisplayName" + }, + "acm008072jsd" : { + "type" : "ControlElement", + "id" : "acm008072jsd", + "name" : "nameProperty" + }, + "acm008073jsd" : { + "type" : "ControlElement", + "id" : "acm008073jsd", + "name" : "isCategory" + }, + "acm008074jsd" : { + "type" : "ControlElement", + "id" : "acm008074jsd", + "name" : "setNewBinding" + }, + "acm008075jsd" : { + "type" : "ControlElement", + "id" : "acm008075jsd", + "name" : "resetToDefault" + }, + "acm008076jsd" : { + "type" : "ControlElement", + "id" : "acm008076jsd", + "name" : "clear" + }, + "acm008077jsd" : { + "type" : "ControlElement", + "id" : "acm008077jsd", + "name" : "getResetIcon" + }, + "acm008078jsd" : { + "type" : "ControlElement", + "id" : "acm008078jsd", + "name" : "getClearIcon" + }, + "acm008079jsd" : { + "type" : "ClassUnit", + "id" : "acm008079jsd", + "name" : "KeyBindingViewModel", + "compilationUnitId" : "acm008058jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm005768jsd", "acm005776jsd", "acm005802jsd", "acm008079jsd" ], + "content" : [ "acm008064jsd", "acm008065jsd", "acm008066jsd", "acm008067jsd", "acm008068jsd", "acm008069jsd", "acm008070jsd", "acm008071jsd", "acm008072jsd", "acm008073jsd", "acm008074jsd", "acm008075jsd", "acm008076jsd", "acm008077jsd", "acm008078jsd" ] + }, + "acm008080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008080jsd", + "name" : "KeyBindingsTab", + "parentId" : "acm008063jsd", + "content" : [ "acm008091jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008081jsd" : { + "type" : "CodePackage", + "id" : "acm008081jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008082jsd" ] + }, + "acm008082jsd" : { + "type" : "CodePackage", + "id" : "acm008082jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008083jsd" ] + }, + "acm008083jsd" : { + "type" : "CodePackage", + "id" : "acm008083jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008084jsd" ] + }, + "acm008084jsd" : { + "type" : "CodePackage", + "id" : "acm008084jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008085jsd" ] + }, + "acm008085jsd" : { + "type" : "CodePackage", + "id" : "acm008085jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm008080jsd" ] + }, + "acm008086jsd" : { + "type" : "ControlElement", + "id" : "acm008086jsd", + "name" : "KeyBindingsTab" + }, + "acm008087jsd" : { + "type" : "ControlElement", + "id" : "acm008087jsd", + "name" : "getTabName" + }, + "acm008088jsd" : { + "type" : "ControlElement", + "id" : "acm008088jsd", + "name" : "initialize" + }, + "acm008089jsd" : { + "type" : "ControlElement", + "id" : "acm008089jsd", + "name" : "createMenuItem" + }, + "acm008090jsd" : { + "type" : "ControlElement", + "id" : "acm008090jsd", + "name" : "resetBindings" + }, + "acm008091jsd" : { + "type" : "ClassUnit", + "id" : "acm008091jsd", + "name" : "KeyBindingsTab", + "compilationUnitId" : "acm008080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm005802jsd", "acm008079jsd", "acm008108jsd", "acm008128jsd", "acm010114jsd" ], + "content" : [ "acm008086jsd", "acm008087jsd", "acm008088jsd", "acm008089jsd", "acm008090jsd" ] + }, + "acm008092jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008092jsd", + "name" : "KeyBindingsTabViewModel", + "parentId" : "acm008063jsd", + "content" : [ "acm008108jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008093jsd" : { + "type" : "CodePackage", + "id" : "acm008093jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008094jsd" ] + }, + "acm008094jsd" : { + "type" : "CodePackage", + "id" : "acm008094jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008095jsd" ] + }, + "acm008095jsd" : { + "type" : "CodePackage", + "id" : "acm008095jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008096jsd" ] + }, + "acm008096jsd" : { + "type" : "CodePackage", + "id" : "acm008096jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008097jsd" ] + }, + "acm008097jsd" : { + "type" : "CodePackage", + "id" : "acm008097jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm008092jsd" ] + }, + "acm008098jsd" : { + "type" : "ControlElement", + "id" : "acm008098jsd", + "name" : "KeyBindingsTabViewModel" + }, + "acm008099jsd" : { + "type" : "ControlElement", + "id" : "acm008099jsd", + "name" : "setValues" + }, + "acm008100jsd" : { + "type" : "ControlElement", + "id" : "acm008100jsd", + "name" : "setNewBindingForCurrent" + }, + "acm008101jsd" : { + "type" : "ControlElement", + "id" : "acm008101jsd", + "name" : "storeSettings" + }, + "acm008102jsd" : { + "type" : "ControlElement", + "id" : "acm008102jsd", + "name" : "resetToDefault" + }, + "acm008103jsd" : { + "type" : "ControlElement", + "id" : "acm008103jsd", + "name" : "loadPreset" + }, + "acm008104jsd" : { + "type" : "ControlElement", + "id" : "acm008104jsd", + "name" : "keyBindingPresets" + }, + "acm008105jsd" : { + "type" : "ControlElement", + "id" : "acm008105jsd", + "name" : "getRestartWarnings" + }, + "acm008106jsd" : { + "type" : "ControlElement", + "id" : "acm008106jsd", + "name" : "selectedKeyBindingProperty" + }, + "acm008107jsd" : { + "type" : "ControlElement", + "id" : "acm008107jsd", + "name" : "rootKeyBindingProperty" + }, + "acm008108jsd" : { + "type" : "ClassUnit", + "id" : "acm008108jsd", + "name" : "KeyBindingsTabViewModel", + "compilationUnitId" : "acm008092jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005776jsd", "acm005802jsd", "acm008079jsd", "acm008118jsd", "acm008128jsd", "acm008138jsd", "acm009916jsd", "acm021206jsd" ], + "content" : [ "acm008098jsd", "acm008099jsd", "acm008100jsd", "acm008101jsd", "acm008102jsd", "acm008103jsd", "acm008104jsd", "acm008105jsd", "acm008106jsd", "acm008107jsd" ] + }, + "acm008109jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008109jsd", + "name" : "BashKeyBindingPreset", + "parentId" : "acm008115jsd", + "content" : [ "acm008118jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings", "presets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008110jsd" : { + "type" : "CodePackage", + "id" : "acm008110jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008111jsd" ] + }, + "acm008111jsd" : { + "type" : "CodePackage", + "id" : "acm008111jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008112jsd" ] + }, + "acm008112jsd" : { + "type" : "CodePackage", + "id" : "acm008112jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008113jsd" ] + }, + "acm008113jsd" : { + "type" : "CodePackage", + "id" : "acm008113jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008114jsd" ] + }, + "acm008114jsd" : { + "type" : "CodePackage", + "id" : "acm008114jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm008115jsd" ] + }, + "acm008115jsd" : { + "type" : "CodePackage", + "id" : "acm008115jsd", + "name" : "presets", + "parentId" : "acm008063jsd", + "content" : [ "acm008109jsd", "acm008119jsd", "acm008129jsd" ] + }, + "acm008116jsd" : { + "type" : "ControlElement", + "id" : "acm008116jsd", + "name" : "getName" + }, + "acm008117jsd" : { + "type" : "ControlElement", + "id" : "acm008117jsd", + "name" : "getKeyBindings" + }, + "acm008118jsd" : { + "type" : "ClassUnit", + "id" : "acm008118jsd", + "name" : "BashKeyBindingPreset", + "compilationUnitId" : "acm008109jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm008128jsd" ], + "datatypeReferencesIds" : [ "acm005768jsd" ], + "content" : [ "acm008116jsd", "acm008117jsd" ] + }, + "acm008119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008119jsd", + "name" : "KeyBindingPreset", + "parentId" : "acm008115jsd", + "content" : [ "acm008128jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings", "presets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008120jsd" : { + "type" : "CodePackage", + "id" : "acm008120jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008121jsd" ] + }, + "acm008121jsd" : { + "type" : "CodePackage", + "id" : "acm008121jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008122jsd" ] + }, + "acm008122jsd" : { + "type" : "CodePackage", + "id" : "acm008122jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008123jsd" ] + }, + "acm008123jsd" : { + "type" : "CodePackage", + "id" : "acm008123jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008124jsd" ] + }, + "acm008124jsd" : { + "type" : "CodePackage", + "id" : "acm008124jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm008125jsd" ] + }, + "acm008125jsd" : { + "type" : "CodePackage", + "id" : "acm008125jsd", + "name" : "presets", + "parentId" : null, + "content" : [ "acm008119jsd" ] + }, + "acm008126jsd" : { + "type" : "ControlElement", + "id" : "acm008126jsd", + "name" : "getName" + }, + "acm008127jsd" : { + "type" : "ControlElement", + "id" : "acm008127jsd", + "name" : "getKeyBindings" + }, + "acm008128jsd" : { + "type" : "InterfaceUnit", + "id" : "acm008128jsd", + "name" : "KeyBindingPreset", + "compilationUnitId" : "acm008119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005768jsd" ], + "content" : [ "acm008126jsd", "acm008127jsd" ] + }, + "acm008129jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008129jsd", + "name" : "NewEntryBindingPreset", + "parentId" : "acm008115jsd", + "content" : [ "acm008138jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "keybindings", "presets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008130jsd" : { + "type" : "CodePackage", + "id" : "acm008130jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008131jsd" ] + }, + "acm008131jsd" : { + "type" : "CodePackage", + "id" : "acm008131jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008132jsd" ] + }, + "acm008132jsd" : { + "type" : "CodePackage", + "id" : "acm008132jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008133jsd" ] + }, + "acm008133jsd" : { + "type" : "CodePackage", + "id" : "acm008133jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008134jsd" ] + }, + "acm008134jsd" : { + "type" : "CodePackage", + "id" : "acm008134jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm008135jsd" ] + }, + "acm008135jsd" : { + "type" : "CodePackage", + "id" : "acm008135jsd", + "name" : "presets", + "parentId" : null, + "content" : [ "acm008129jsd" ] + }, + "acm008136jsd" : { + "type" : "ControlElement", + "id" : "acm008136jsd", + "name" : "getName" + }, + "acm008137jsd" : { + "type" : "ControlElement", + "id" : "acm008137jsd", + "name" : "getKeyBindings" + }, + "acm008138jsd" : { + "type" : "ClassUnit", + "id" : "acm008138jsd", + "name" : "NewEntryBindingPreset", + "compilationUnitId" : "acm008129jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm008128jsd" ], + "datatypeReferencesIds" : [ "acm005768jsd" ], + "content" : [ "acm008136jsd", "acm008137jsd" ] + }, + "acm008139jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008139jsd", + "name" : "LinkedFilesTab", + "parentId" : "acm008144jsd", + "content" : [ "acm008149jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "linkedfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008140jsd" : { + "type" : "CodePackage", + "id" : "acm008140jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008141jsd" ] + }, + "acm008141jsd" : { + "type" : "CodePackage", + "id" : "acm008141jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008142jsd" ] + }, + "acm008142jsd" : { + "type" : "CodePackage", + "id" : "acm008142jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008143jsd" ] + }, + "acm008143jsd" : { + "type" : "CodePackage", + "id" : "acm008143jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008144jsd" ] + }, + "acm008144jsd" : { + "type" : "CodePackage", + "id" : "acm008144jsd", + "name" : "linkedfiles", + "parentId" : "acm007350jsd", + "content" : [ "acm008139jsd", "acm008150jsd" ] + }, + "acm008145jsd" : { + "type" : "ControlElement", + "id" : "acm008145jsd", + "name" : "LinkedFilesTab" + }, + "acm008146jsd" : { + "type" : "ControlElement", + "id" : "acm008146jsd", + "name" : "getTabName" + }, + "acm008147jsd" : { + "type" : "ControlElement", + "id" : "acm008147jsd", + "name" : "initialize" + }, + "acm008148jsd" : { + "type" : "ControlElement", + "id" : "acm008148jsd", + "name" : "mainFileDirBrowse" + }, + "acm008149jsd" : { + "type" : "ClassUnit", + "id" : "acm008149jsd", + "name" : "LinkedFilesTab", + "compilationUnitId" : "acm008139jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm008173jsd", "acm009856jsd" ], + "content" : [ "acm008145jsd", "acm008146jsd", "acm008147jsd", "acm008148jsd" ] + }, + "acm008150jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008150jsd", + "name" : "LinkedFilesTabViewModel", + "parentId" : "acm008144jsd", + "content" : [ "acm008173jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "linkedfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008151jsd" : { + "type" : "CodePackage", + "id" : "acm008151jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008152jsd" ] + }, + "acm008152jsd" : { + "type" : "CodePackage", + "id" : "acm008152jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008153jsd" ] + }, + "acm008153jsd" : { + "type" : "CodePackage", + "id" : "acm008153jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008154jsd" ] + }, + "acm008154jsd" : { + "type" : "CodePackage", + "id" : "acm008154jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008155jsd" ] + }, + "acm008155jsd" : { + "type" : "CodePackage", + "id" : "acm008155jsd", + "name" : "linkedfiles", + "parentId" : null, + "content" : [ "acm008150jsd" ] + }, + "acm008156jsd" : { + "type" : "ControlElement", + "id" : "acm008156jsd", + "name" : "LinkedFilesTabViewModel" + }, + "acm008157jsd" : { + "type" : "ControlElement", + "id" : "acm008157jsd", + "name" : "setValues" + }, + "acm008158jsd" : { + "type" : "ControlElement", + "id" : "acm008158jsd", + "name" : "storeSettings" + }, + "acm008159jsd" : { + "type" : "ControlElement", + "id" : "acm008159jsd", + "name" : "mainFileDirValidationStatus" + }, + "acm008160jsd" : { + "type" : "ControlElement", + "id" : "acm008160jsd", + "name" : "validateSettings" + }, + "acm008161jsd" : { + "type" : "ControlElement", + "id" : "acm008161jsd", + "name" : "mainFileDirBrowse" + }, + "acm008162jsd" : { + "type" : "ControlElement", + "id" : "acm008162jsd", + "name" : "mainFileDirectoryProperty" + }, + "acm008163jsd" : { + "type" : "ControlElement", + "id" : "acm008163jsd", + "name" : "useBibLocationAsPrimaryProperty" + }, + "acm008164jsd" : { + "type" : "ControlElement", + "id" : "acm008164jsd", + "name" : "autolinkFileStartsBibtexProperty" + }, + "acm008165jsd" : { + "type" : "ControlElement", + "id" : "acm008165jsd", + "name" : "autolinkFileExactBibtexProperty" + }, + "acm008166jsd" : { + "type" : "ControlElement", + "id" : "acm008166jsd", + "name" : "autolinkUseRegexProperty" + }, + "acm008167jsd" : { + "type" : "ControlElement", + "id" : "acm008167jsd", + "name" : "autolinkRegexKeyProperty" + }, + "acm008168jsd" : { + "type" : "ControlElement", + "id" : "acm008168jsd", + "name" : "fulltextIndexProperty" + }, + "acm008169jsd" : { + "type" : "ControlElement", + "id" : "acm008169jsd", + "name" : "defaultFileNamePatternsProperty" + }, + "acm008170jsd" : { + "type" : "ControlElement", + "id" : "acm008170jsd", + "name" : "fileNamePatternProperty" + }, + "acm008171jsd" : { + "type" : "ControlElement", + "id" : "acm008171jsd", + "name" : "fileDirectoryPatternProperty" + }, + "acm008172jsd" : { + "type" : "ControlElement", + "id" : "acm008172jsd", + "name" : "useMainFileDirectoryProperty" + }, + "acm008173jsd" : { + "type" : "ClassUnit", + "id" : "acm008173jsd", + "name" : "LinkedFilesTabViewModel", + "compilationUnitId" : "acm008150jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009752jsd", "acm009756jsd", "acm017440jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm008156jsd", "acm008157jsd", "acm008158jsd", "acm008159jsd", "acm008160jsd", "acm008161jsd", "acm008162jsd", "acm008163jsd", "acm008164jsd", "acm008165jsd", "acm008166jsd", "acm008167jsd", "acm008168jsd", "acm008169jsd", "acm008170jsd", "acm008171jsd", "acm008172jsd" ] + }, + "acm008174jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008174jsd", + "name" : "NameFormatterItemModel", + "parentId" : "acm008179jsd", + "content" : [ "acm008190jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "nameformatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008175jsd" : { + "type" : "CodePackage", + "id" : "acm008175jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008176jsd" ] + }, + "acm008176jsd" : { + "type" : "CodePackage", + "id" : "acm008176jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008177jsd" ] + }, + "acm008177jsd" : { + "type" : "CodePackage", + "id" : "acm008177jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008178jsd" ] + }, + "acm008178jsd" : { + "type" : "CodePackage", + "id" : "acm008178jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008179jsd" ] + }, + "acm008179jsd" : { + "type" : "CodePackage", + "id" : "acm008179jsd", + "name" : "nameformatter", + "parentId" : "acm007350jsd", + "content" : [ "acm008174jsd", "acm008191jsd", "acm008202jsd" ] + }, + "acm008180jsd" : { + "type" : "ControlElement", + "id" : "acm008180jsd", + "name" : "NameFormatterItemModel" + }, + "acm008181jsd" : { + "type" : "ControlElement", + "id" : "acm008181jsd", + "name" : "NameFormatterItemModel" + }, + "acm008182jsd" : { + "type" : "ControlElement", + "id" : "acm008182jsd", + "name" : "NameFormatterItemModel" + }, + "acm008183jsd" : { + "type" : "ControlElement", + "id" : "acm008183jsd", + "name" : "setName" + }, + "acm008184jsd" : { + "type" : "ControlElement", + "id" : "acm008184jsd", + "name" : "getName" + }, + "acm008185jsd" : { + "type" : "ControlElement", + "id" : "acm008185jsd", + "name" : "nameProperty" + }, + "acm008186jsd" : { + "type" : "ControlElement", + "id" : "acm008186jsd", + "name" : "setFormat" + }, + "acm008187jsd" : { + "type" : "ControlElement", + "id" : "acm008187jsd", + "name" : "getFormat" + }, + "acm008188jsd" : { + "type" : "ControlElement", + "id" : "acm008188jsd", + "name" : "formatProperty" + }, + "acm008189jsd" : { + "type" : "ControlElement", + "id" : "acm008189jsd", + "name" : "toString" + }, + "acm008190jsd" : { + "type" : "ClassUnit", + "id" : "acm008190jsd", + "name" : "NameFormatterItemModel", + "compilationUnitId" : "acm008174jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008180jsd", "acm008181jsd", "acm008182jsd", "acm008183jsd", "acm008184jsd", "acm008185jsd", "acm008186jsd", "acm008187jsd", "acm008188jsd", "acm008189jsd" ] + }, + "acm008191jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008191jsd", + "name" : "NameFormatterTab", + "parentId" : "acm008179jsd", + "content" : [ "acm008201jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "nameformatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008192jsd" : { + "type" : "CodePackage", + "id" : "acm008192jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008193jsd" ] + }, + "acm008193jsd" : { + "type" : "CodePackage", + "id" : "acm008193jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008194jsd" ] + }, + "acm008194jsd" : { + "type" : "CodePackage", + "id" : "acm008194jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008195jsd" ] + }, + "acm008195jsd" : { + "type" : "CodePackage", + "id" : "acm008195jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008196jsd" ] + }, + "acm008196jsd" : { + "type" : "CodePackage", + "id" : "acm008196jsd", + "name" : "nameformatter", + "parentId" : null, + "content" : [ "acm008191jsd" ] + }, + "acm008197jsd" : { + "type" : "ControlElement", + "id" : "acm008197jsd", + "name" : "NameFormatterTab" + }, + "acm008198jsd" : { + "type" : "ControlElement", + "id" : "acm008198jsd", + "name" : "getTabName" + }, + "acm008199jsd" : { + "type" : "ControlElement", + "id" : "acm008199jsd", + "name" : "initialize" + }, + "acm008200jsd" : { + "type" : "ControlElement", + "id" : "acm008200jsd", + "name" : "addFormatter" + }, + "acm008201jsd" : { + "type" : "ClassUnit", + "id" : "acm008201jsd", + "name" : "NameFormatterTab", + "compilationUnitId" : "acm008191jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm008190jsd", "acm008216jsd" ], + "content" : [ "acm008197jsd", "acm008198jsd", "acm008199jsd", "acm008200jsd" ] + }, + "acm008202jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008202jsd", + "name" : "NameFormatterTabViewModel", + "parentId" : "acm008179jsd", + "content" : [ "acm008216jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "nameformatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008203jsd" : { + "type" : "CodePackage", + "id" : "acm008203jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008204jsd" ] + }, + "acm008204jsd" : { + "type" : "CodePackage", + "id" : "acm008204jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008205jsd" ] + }, + "acm008205jsd" : { + "type" : "CodePackage", + "id" : "acm008205jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008206jsd" ] + }, + "acm008206jsd" : { + "type" : "CodePackage", + "id" : "acm008206jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008207jsd" ] + }, + "acm008207jsd" : { + "type" : "CodePackage", + "id" : "acm008207jsd", + "name" : "nameformatter", + "parentId" : null, + "content" : [ "acm008202jsd" ] + }, + "acm008208jsd" : { + "type" : "ControlElement", + "id" : "acm008208jsd", + "name" : "NameFormatterTabViewModel" + }, + "acm008209jsd" : { + "type" : "ControlElement", + "id" : "acm008209jsd", + "name" : "setValues" + }, + "acm008210jsd" : { + "type" : "ControlElement", + "id" : "acm008210jsd", + "name" : "storeSettings" + }, + "acm008211jsd" : { + "type" : "ControlElement", + "id" : "acm008211jsd", + "name" : "addFormatter" + }, + "acm008212jsd" : { + "type" : "ControlElement", + "id" : "acm008212jsd", + "name" : "removeFormatter" + }, + "acm008213jsd" : { + "type" : "ControlElement", + "id" : "acm008213jsd", + "name" : "formatterListProperty" + }, + "acm008214jsd" : { + "type" : "ControlElement", + "id" : "acm008214jsd", + "name" : "addFormatterNameProperty" + }, + "acm008215jsd" : { + "type" : "ControlElement", + "id" : "acm008215jsd", + "name" : "addFormatterStringProperty" + }, + "acm008216jsd" : { + "type" : "ClassUnit", + "id" : "acm008216jsd", + "name" : "NameFormatterTabViewModel", + "compilationUnitId" : "acm008202jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm008190jsd", "acm015522jsd" ], + "content" : [ "acm008208jsd", "acm008209jsd", "acm008210jsd", "acm008211jsd", "acm008212jsd", "acm008213jsd", "acm008214jsd", "acm008215jsd" ] + }, + "acm008217jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008217jsd", + "name" : "CustomCertificateViewModel", + "parentId" : "acm008222jsd", + "content" : [ "acm008241jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "network" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008218jsd" : { + "type" : "CodePackage", + "id" : "acm008218jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008219jsd" ] + }, + "acm008219jsd" : { + "type" : "CodePackage", + "id" : "acm008219jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008220jsd" ] + }, + "acm008220jsd" : { + "type" : "CodePackage", + "id" : "acm008220jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008221jsd" ] + }, + "acm008221jsd" : { + "type" : "CodePackage", + "id" : "acm008221jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008222jsd" ] + }, + "acm008222jsd" : { + "type" : "CodePackage", + "id" : "acm008222jsd", + "name" : "network", + "parentId" : "acm007350jsd", + "content" : [ "acm008217jsd", "acm008242jsd", "acm008258jsd" ] + }, + "acm008223jsd" : { + "type" : "ControlElement", + "id" : "acm008223jsd", + "name" : "CustomCertificateViewModel" + }, + "acm008224jsd" : { + "type" : "ControlElement", + "id" : "acm008224jsd", + "name" : "serialNumberProperty" + }, + "acm008225jsd" : { + "type" : "ControlElement", + "id" : "acm008225jsd", + "name" : "issuerProperty" + }, + "acm008226jsd" : { + "type" : "ControlElement", + "id" : "acm008226jsd", + "name" : "validFromProperty" + }, + "acm008227jsd" : { + "type" : "ControlElement", + "id" : "acm008227jsd", + "name" : "validToProperty" + }, + "acm008228jsd" : { + "type" : "ControlElement", + "id" : "acm008228jsd", + "name" : "signatureAlgorithmProperty" + }, + "acm008229jsd" : { + "type" : "ControlElement", + "id" : "acm008229jsd", + "name" : "versionProperty" + }, + "acm008230jsd" : { + "type" : "ControlElement", + "id" : "acm008230jsd", + "name" : "getVersion" + }, + "acm008231jsd" : { + "type" : "ControlElement", + "id" : "acm008231jsd", + "name" : "getThumbprint" + }, + "acm008232jsd" : { + "type" : "ControlElement", + "id" : "acm008232jsd", + "name" : "getValidFrom" + }, + "acm008233jsd" : { + "type" : "ControlElement", + "id" : "acm008233jsd", + "name" : "getValidTo" + }, + "acm008234jsd" : { + "type" : "ControlElement", + "id" : "acm008234jsd", + "name" : "pathPropertyProperty" + }, + "acm008235jsd" : { + "type" : "ControlElement", + "id" : "acm008235jsd", + "name" : "getPath" + }, + "acm008236jsd" : { + "type" : "ControlElement", + "id" : "acm008236jsd", + "name" : "setPath" + }, + "acm008237jsd" : { + "type" : "ControlElement", + "id" : "acm008237jsd", + "name" : "getSerialNumber" + }, + "acm008238jsd" : { + "type" : "ControlElement", + "id" : "acm008238jsd", + "name" : "getIssuer" + }, + "acm008239jsd" : { + "type" : "ControlElement", + "id" : "acm008239jsd", + "name" : "getSignatureAlgorithm" + }, + "acm008240jsd" : { + "type" : "ControlElement", + "id" : "acm008240jsd", + "name" : "fromSSLCertificate" + }, + "acm008241jsd" : { + "type" : "ClassUnit", + "id" : "acm008241jsd", + "name" : "CustomCertificateViewModel", + "compilationUnitId" : "acm008217jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008241jsd", "acm015943jsd" ], + "content" : [ "acm008223jsd", "acm008224jsd", "acm008225jsd", "acm008226jsd", "acm008227jsd", "acm008228jsd", "acm008229jsd", "acm008230jsd", "acm008231jsd", "acm008232jsd", "acm008233jsd", "acm008234jsd", "acm008235jsd", "acm008236jsd", "acm008237jsd", "acm008238jsd", "acm008239jsd", "acm008240jsd" ] + }, + "acm008242jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008242jsd", + "name" : "NetworkTab", + "parentId" : "acm008222jsd", + "content" : [ "acm008257jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "network" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008243jsd" : { + "type" : "CodePackage", + "id" : "acm008243jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008244jsd" ] + }, + "acm008244jsd" : { + "type" : "CodePackage", + "id" : "acm008244jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008245jsd" ] + }, + "acm008245jsd" : { + "type" : "CodePackage", + "id" : "acm008245jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008246jsd" ] + }, + "acm008246jsd" : { + "type" : "CodePackage", + "id" : "acm008246jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008247jsd" ] + }, + "acm008247jsd" : { + "type" : "CodePackage", + "id" : "acm008247jsd", + "name" : "network", + "parentId" : null, + "content" : [ "acm008242jsd" ] + }, + "acm008248jsd" : { + "type" : "ControlElement", + "id" : "acm008248jsd", + "name" : "NetworkTab" + }, + "acm008249jsd" : { + "type" : "ControlElement", + "id" : "acm008249jsd", + "name" : "getTabName" + }, + "acm008250jsd" : { + "type" : "ControlElement", + "id" : "acm008250jsd", + "name" : "initialize" + }, + "acm008251jsd" : { + "type" : "ControlElement", + "id" : "acm008251jsd", + "name" : "formatDate" + }, + "acm008252jsd" : { + "type" : "ControlElement", + "id" : "acm008252jsd", + "name" : "formatVersion" + }, + "acm008253jsd" : { + "type" : "ControlElement", + "id" : "acm008253jsd", + "name" : "proxyPasswordReveal" + }, + "acm008254jsd" : { + "type" : "ControlElement", + "id" : "acm008254jsd", + "name" : "proxyPasswordMask" + }, + "acm008255jsd" : { + "type" : "ControlElement", + "id" : "acm008255jsd", + "name" : "checkConnection" + }, + "acm008256jsd" : { + "type" : "ControlElement", + "id" : "acm008256jsd", + "name" : "addCertificateFile" + }, + "acm008257jsd" : { + "type" : "ClassUnit", + "id" : "acm008257jsd", + "name" : "NetworkTab", + "compilationUnitId" : "acm008242jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm008241jsd", "acm008292jsd", "acm009856jsd" ], + "content" : [ "acm008248jsd", "acm008249jsd", "acm008250jsd", "acm008251jsd", "acm008252jsd", "acm008253jsd", "acm008254jsd", "acm008255jsd", "acm008256jsd" ] + }, + "acm008258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008258jsd", + "name" : "NetworkTabViewModel", + "parentId" : "acm008222jsd", + "content" : [ "acm008292jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "network" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008259jsd" : { + "type" : "CodePackage", + "id" : "acm008259jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008260jsd" ] + }, + "acm008260jsd" : { + "type" : "CodePackage", + "id" : "acm008260jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008261jsd" ] + }, + "acm008261jsd" : { + "type" : "CodePackage", + "id" : "acm008261jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008262jsd" ] + }, + "acm008262jsd" : { + "type" : "CodePackage", + "id" : "acm008262jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008263jsd" ] + }, + "acm008263jsd" : { + "type" : "CodePackage", + "id" : "acm008263jsd", + "name" : "network", + "parentId" : null, + "content" : [ "acm008258jsd" ] + }, + "acm008264jsd" : { + "type" : "ControlElement", + "id" : "acm008264jsd", + "name" : "NetworkTabViewModel" + }, + "acm008265jsd" : { + "type" : "ControlElement", + "id" : "acm008265jsd", + "name" : "setValues" + }, + "acm008266jsd" : { + "type" : "ControlElement", + "id" : "acm008266jsd", + "name" : "setProxyValues" + }, + "acm008267jsd" : { + "type" : "ControlElement", + "id" : "acm008267jsd", + "name" : "setSSLValues" + }, + "acm008268jsd" : { + "type" : "ControlElement", + "id" : "acm008268jsd", + "name" : "storeSettings" + }, + "acm008269jsd" : { + "type" : "ControlElement", + "id" : "acm008269jsd", + "name" : "storeRemoteSettings" + }, + "acm008270jsd" : { + "type" : "ControlElement", + "id" : "acm008270jsd", + "name" : "storeProxySettings" + }, + "acm008271jsd" : { + "type" : "ControlElement", + "id" : "acm008271jsd", + "name" : "storeSSLSettings" + }, + "acm008272jsd" : { + "type" : "ControlElement", + "id" : "acm008272jsd", + "name" : "getPortAsInt" + }, + "acm008273jsd" : { + "type" : "ControlElement", + "id" : "acm008273jsd", + "name" : "remotePortValidationStatus" + }, + "acm008274jsd" : { + "type" : "ControlElement", + "id" : "acm008274jsd", + "name" : "proxyHostnameValidationStatus" + }, + "acm008275jsd" : { + "type" : "ControlElement", + "id" : "acm008275jsd", + "name" : "proxyPortValidationStatus" + }, + "acm008276jsd" : { + "type" : "ControlElement", + "id" : "acm008276jsd", + "name" : "proxyUsernameValidationStatus" + }, + "acm008277jsd" : { + "type" : "ControlElement", + "id" : "acm008277jsd", + "name" : "proxyPasswordValidationStatus" + }, + "acm008278jsd" : { + "type" : "ControlElement", + "id" : "acm008278jsd", + "name" : "validateSettings" + }, + "acm008279jsd" : { + "type" : "ControlElement", + "id" : "acm008279jsd", + "name" : "checkConnection" + }, + "acm008280jsd" : { + "type" : "ControlElement", + "id" : "acm008280jsd", + "name" : "getRestartWarnings" + }, + "acm008281jsd" : { + "type" : "ControlElement", + "id" : "acm008281jsd", + "name" : "remoteServerProperty" + }, + "acm008282jsd" : { + "type" : "ControlElement", + "id" : "acm008282jsd", + "name" : "remotePortProperty" + }, + "acm008283jsd" : { + "type" : "ControlElement", + "id" : "acm008283jsd", + "name" : "proxyUseProperty" + }, + "acm008284jsd" : { + "type" : "ControlElement", + "id" : "acm008284jsd", + "name" : "proxyHostnameProperty" + }, + "acm008285jsd" : { + "type" : "ControlElement", + "id" : "acm008285jsd", + "name" : "proxyPortProperty" + }, + "acm008286jsd" : { + "type" : "ControlElement", + "id" : "acm008286jsd", + "name" : "proxyUseAuthenticationProperty" + }, + "acm008287jsd" : { + "type" : "ControlElement", + "id" : "acm008287jsd", + "name" : "proxyUsernameProperty" + }, + "acm008288jsd" : { + "type" : "ControlElement", + "id" : "acm008288jsd", + "name" : "proxyPasswordProperty" + }, + "acm008289jsd" : { + "type" : "ControlElement", + "id" : "acm008289jsd", + "name" : "customCertificateListProperty" + }, + "acm008290jsd" : { + "type" : "ControlElement", + "id" : "acm008290jsd", + "name" : "addCertificateFile" + }, + "acm008291jsd" : { + "type" : "ControlElement", + "id" : "acm008291jsd", + "name" : "formatCustomAlias" + }, + "acm008292jsd" : { + "type" : "ClassUnit", + "id" : "acm008292jsd", + "name" : "NetworkTabViewModel", + "compilationUnitId" : "acm008258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008241jsd", "acm008292jsd", "acm008707jsd", "acm009796jsd", "acm009809jsd", "acm015885jsd", "acm015926jsd", "acm015953jsd", "acm015972jsd", "acm016748jsd", "acm021206jsd" ], + "content" : [ "acm008264jsd", "acm008265jsd", "acm008266jsd", "acm008267jsd", "acm008268jsd", "acm008269jsd", "acm008270jsd", "acm008271jsd", "acm008272jsd", "acm008273jsd", "acm008274jsd", "acm008275jsd", "acm008276jsd", "acm008277jsd", "acm008278jsd", "acm008279jsd", "acm008280jsd", "acm008281jsd", "acm008282jsd", "acm008283jsd", "acm008284jsd", "acm008285jsd", "acm008286jsd", "acm008287jsd", "acm008288jsd", "acm008289jsd", "acm008290jsd", "acm008291jsd" ] + }, + "acm008293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008293jsd", + "name" : "PreviewTab", + "parentId" : "acm008298jsd", + "content" : [ "acm008317jsd", "acm008320jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008294jsd" : { + "type" : "CodePackage", + "id" : "acm008294jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008295jsd" ] + }, + "acm008295jsd" : { + "type" : "CodePackage", + "id" : "acm008295jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008296jsd" ] + }, + "acm008296jsd" : { + "type" : "CodePackage", + "id" : "acm008296jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008297jsd" ] + }, + "acm008297jsd" : { + "type" : "CodePackage", + "id" : "acm008297jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008298jsd" ] + }, + "acm008298jsd" : { + "type" : "CodePackage", + "id" : "acm008298jsd", + "name" : "preview", + "parentId" : "acm007350jsd", + "content" : [ "acm008293jsd", "acm008321jsd" ] + }, + "acm008299jsd" : { + "type" : "ControlElement", + "id" : "acm008299jsd", + "name" : "PreviewTab" + }, + "acm008300jsd" : { + "type" : "ControlElement", + "id" : "acm008300jsd", + "name" : "EditAction" + }, + "acm008301jsd" : { + "type" : "ControlElement", + "id" : "acm008301jsd", + "name" : "execute" + }, + "acm008302jsd" : { + "type" : "ControlElement", + "id" : "acm008302jsd", + "name" : "getTabName" + }, + "acm008303jsd" : { + "type" : "ControlElement", + "id" : "acm008303jsd", + "name" : "initialize" + }, + "acm008304jsd" : { + "type" : "ControlElement", + "id" : "acm008304jsd", + "name" : "jumpToSearchKey" + }, + "acm008305jsd" : { + "type" : "ControlElement", + "id" : "acm008305jsd", + "name" : "dragOver" + }, + "acm008306jsd" : { + "type" : "ControlElement", + "id" : "acm008306jsd", + "name" : "dragDetectedInAvailable" + }, + "acm008307jsd" : { + "type" : "ControlElement", + "id" : "acm008307jsd", + "name" : "dragDetectedInChosen" + }, + "acm008308jsd" : { + "type" : "ControlElement", + "id" : "acm008308jsd", + "name" : "dragDropped" + }, + "acm008309jsd" : { + "type" : "ControlElement", + "id" : "acm008309jsd", + "name" : "dragDroppedInChosenCell" + }, + "acm008310jsd" : { + "type" : "ControlElement", + "id" : "acm008310jsd", + "name" : "toRightButtonAction" + }, + "acm008311jsd" : { + "type" : "ControlElement", + "id" : "acm008311jsd", + "name" : "toLeftButtonAction" + }, + "acm008312jsd" : { + "type" : "ControlElement", + "id" : "acm008312jsd", + "name" : "sortUpButtonAction" + }, + "acm008313jsd" : { + "type" : "ControlElement", + "id" : "acm008313jsd", + "name" : "sortDownButtonAction" + }, + "acm008314jsd" : { + "type" : "ControlElement", + "id" : "acm008314jsd", + "name" : "resetDefaultButtonAction" + }, + "acm008315jsd" : { + "type" : "ControlElement", + "id" : "acm008315jsd", + "name" : "mouseClickedAvailable" + }, + "acm008316jsd" : { + "type" : "ControlElement", + "id" : "acm008316jsd", + "name" : "mouseClickedChosen" + }, + "acm008317jsd" : { + "type" : "ClassUnit", + "id" : "acm008317jsd", + "name" : "PreviewTab", + "compilationUnitId" : "acm008293jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm008320jsd", "acm008355jsd", "acm008540jsd", "acm009346jsd", "acm009856jsd", "acm010051jsd", "acm016651jsd", "acm018022jsd" ], + "content" : [ "acm008299jsd", "acm008300jsd", "acm008301jsd", "acm008302jsd", "acm008303jsd", "acm008304jsd", "acm008305jsd", "acm008306jsd", "acm008307jsd", "acm008308jsd", "acm008309jsd", "acm008310jsd", "acm008311jsd", "acm008312jsd", "acm008313jsd", "acm008314jsd", "acm008315jsd", "acm008316jsd" ] + }, + "acm008318jsd" : { + "type" : "ControlElement", + "id" : "acm008318jsd", + "name" : "EditAction" + }, + "acm008319jsd" : { + "type" : "ControlElement", + "id" : "acm008319jsd", + "name" : "execute" + }, + "acm008320jsd" : { + "type" : "ClassUnit", + "id" : "acm008320jsd", + "name" : "EditAction", + "compilationUnitId" : "acm008293jsd", + "parentDatatypeId" : "acm008317jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd" ], + "content" : [ "acm008318jsd", "acm008319jsd" ] + }, + "acm008321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008321jsd", + "name" : "PreviewTabViewModel", + "parentId" : "acm008298jsd", + "content" : [ "acm008355jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008322jsd" : { + "type" : "CodePackage", + "id" : "acm008322jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008323jsd" ] + }, + "acm008323jsd" : { + "type" : "CodePackage", + "id" : "acm008323jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008324jsd" ] + }, + "acm008324jsd" : { + "type" : "CodePackage", + "id" : "acm008324jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008325jsd" ] + }, + "acm008325jsd" : { + "type" : "CodePackage", + "id" : "acm008325jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008326jsd" ] + }, + "acm008326jsd" : { + "type" : "CodePackage", + "id" : "acm008326jsd", + "name" : "preview", + "parentId" : null, + "content" : [ "acm008321jsd" ] + }, + "acm008327jsd" : { + "type" : "ControlElement", + "id" : "acm008327jsd", + "name" : "PreviewTabViewModel" + }, + "acm008328jsd" : { + "type" : "ControlElement", + "id" : "acm008328jsd", + "name" : "setValues" + }, + "acm008329jsd" : { + "type" : "ControlElement", + "id" : "acm008329jsd", + "name" : "setPreviewLayout" + }, + "acm008330jsd" : { + "type" : "ControlElement", + "id" : "acm008330jsd", + "name" : "refreshPreview" + }, + "acm008331jsd" : { + "type" : "ControlElement", + "id" : "acm008331jsd", + "name" : "findLayoutByName" + }, + "acm008332jsd" : { + "type" : "ControlElement", + "id" : "acm008332jsd", + "name" : "storeSettings" + }, + "acm008333jsd" : { + "type" : "ControlElement", + "id" : "acm008333jsd", + "name" : "chosenListValidationStatus" + }, + "acm008334jsd" : { + "type" : "ControlElement", + "id" : "acm008334jsd", + "name" : "validateSettings" + }, + "acm008335jsd" : { + "type" : "ControlElement", + "id" : "acm008335jsd", + "name" : "addToChosen" + }, + "acm008336jsd" : { + "type" : "ControlElement", + "id" : "acm008336jsd", + "name" : "removeFromChosen" + }, + "acm008337jsd" : { + "type" : "ControlElement", + "id" : "acm008337jsd", + "name" : "selectedInChosenUp" + }, + "acm008338jsd" : { + "type" : "ControlElement", + "id" : "acm008338jsd", + "name" : "selectedInChosenDown" + }, + "acm008339jsd" : { + "type" : "ControlElement", + "id" : "acm008339jsd", + "name" : "resetDefaultLayout" + }, + "acm008340jsd" : { + "type" : "ControlElement", + "id" : "acm008340jsd", + "name" : "computeHighlighting" + }, + "acm008341jsd" : { + "type" : "ControlElement", + "id" : "acm008341jsd", + "name" : "dragOver" + }, + "acm008342jsd" : { + "type" : "ControlElement", + "id" : "acm008342jsd", + "name" : "dragDetected" + }, + "acm008343jsd" : { + "type" : "ControlElement", + "id" : "acm008343jsd", + "name" : "dragDropped" + }, + "acm008344jsd" : { + "type" : "ControlElement", + "id" : "acm008344jsd", + "name" : "dragDroppedInChosenCell" + }, + "acm008345jsd" : { + "type" : "ControlElement", + "id" : "acm008345jsd", + "name" : "showAsExtraTabProperty" + }, + "acm008346jsd" : { + "type" : "ControlElement", + "id" : "acm008346jsd", + "name" : "availableListProperty" + }, + "acm008347jsd" : { + "type" : "ControlElement", + "id" : "acm008347jsd", + "name" : "getFilteredAvailableLayouts" + }, + "acm008348jsd" : { + "type" : "ControlElement", + "id" : "acm008348jsd", + "name" : "setAvailableFilter" + }, + "acm008349jsd" : { + "type" : "ControlElement", + "id" : "acm008349jsd", + "name" : "availableSelectionModelProperty" + }, + "acm008350jsd" : { + "type" : "ControlElement", + "id" : "acm008350jsd", + "name" : "chosenListProperty" + }, + "acm008351jsd" : { + "type" : "ControlElement", + "id" : "acm008351jsd", + "name" : "chosenSelectionModelProperty" + }, + "acm008352jsd" : { + "type" : "ControlElement", + "id" : "acm008352jsd", + "name" : "selectedIsEditableProperty" + }, + "acm008353jsd" : { + "type" : "ControlElement", + "id" : "acm008353jsd", + "name" : "selectedLayoutProperty" + }, + "acm008354jsd" : { + "type" : "ControlElement", + "id" : "acm008354jsd", + "name" : "sourceTextProperty" + }, + "acm008355jsd" : { + "type" : "ClassUnit", + "id" : "acm008355jsd", + "name" : "PreviewTabViewModel", + "compilationUnitId" : "acm008321jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm008355jsd", "acm009670jsd", "acm009884jsd", "acm009965jsd", "acm011087jsd", "acm015079jsd", "acm016651jsd", "acm021224jsd" ], + "content" : [ "acm008327jsd", "acm008328jsd", "acm008329jsd", "acm008330jsd", "acm008331jsd", "acm008332jsd", "acm008333jsd", "acm008334jsd", "acm008335jsd", "acm008336jsd", "acm008337jsd", "acm008338jsd", "acm008339jsd", "acm008340jsd", "acm008341jsd", "acm008342jsd", "acm008343jsd", "acm008344jsd", "acm008345jsd", "acm008346jsd", "acm008347jsd", "acm008348jsd", "acm008349jsd", "acm008350jsd", "acm008351jsd", "acm008352jsd", "acm008353jsd", "acm008354jsd" ] + }, + "acm008356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008356jsd", + "name" : "NewProtectedTermsFileDialog", + "parentId" : "acm008361jsd", + "content" : [ "acm008363jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008357jsd" : { + "type" : "CodePackage", + "id" : "acm008357jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008358jsd" ] + }, + "acm008358jsd" : { + "type" : "CodePackage", + "id" : "acm008358jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008359jsd" ] + }, + "acm008359jsd" : { + "type" : "CodePackage", + "id" : "acm008359jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008360jsd" ] + }, + "acm008360jsd" : { + "type" : "CodePackage", + "id" : "acm008360jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008361jsd" ] + }, + "acm008361jsd" : { + "type" : "CodePackage", + "id" : "acm008361jsd", + "name" : "protectedterms", + "parentId" : "acm007350jsd", + "content" : [ "acm008356jsd", "acm008364jsd", "acm008377jsd", "acm008395jsd" ] + }, + "acm008362jsd" : { + "type" : "ControlElement", + "id" : "acm008362jsd", + "name" : "NewProtectedTermsFileDialog" + }, + "acm008363jsd" : { + "type" : "ClassUnit", + "id" : "acm008363jsd", + "name" : "NewProtectedTermsFileDialog", + "compilationUnitId" : "acm008356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008376jsd", "acm009796jsd", "acm009809jsd", "acm020848jsd" ], + "content" : [ "acm008362jsd" ] + }, + "acm008364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008364jsd", + "name" : "ProtectedTermsListItemModel", + "parentId" : "acm008361jsd", + "content" : [ "acm008376jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008365jsd" : { + "type" : "CodePackage", + "id" : "acm008365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008366jsd" ] + }, + "acm008366jsd" : { + "type" : "CodePackage", + "id" : "acm008366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008367jsd" ] + }, + "acm008367jsd" : { + "type" : "CodePackage", + "id" : "acm008367jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008368jsd" ] + }, + "acm008368jsd" : { + "type" : "CodePackage", + "id" : "acm008368jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008369jsd" ] + }, + "acm008369jsd" : { + "type" : "CodePackage", + "id" : "acm008369jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm008364jsd" ] + }, + "acm008370jsd" : { + "type" : "ControlElement", + "id" : "acm008370jsd", + "name" : "ProtectedTermsListItemModel" + }, + "acm008371jsd" : { + "type" : "ControlElement", + "id" : "acm008371jsd", + "name" : "getTermsList" + }, + "acm008372jsd" : { + "type" : "ControlElement", + "id" : "acm008372jsd", + "name" : "descriptionProperty" + }, + "acm008373jsd" : { + "type" : "ControlElement", + "id" : "acm008373jsd", + "name" : "locationProperty" + }, + "acm008374jsd" : { + "type" : "ControlElement", + "id" : "acm008374jsd", + "name" : "internalProperty" + }, + "acm008375jsd" : { + "type" : "ControlElement", + "id" : "acm008375jsd", + "name" : "enabledProperty" + }, + "acm008376jsd" : { + "type" : "ClassUnit", + "id" : "acm008376jsd", + "name" : "ProtectedTermsListItemModel", + "compilationUnitId" : "acm008364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd" ], + "content" : [ "acm008370jsd", "acm008371jsd", "acm008372jsd", "acm008373jsd", "acm008374jsd", "acm008375jsd" ] + }, + "acm008377jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008377jsd", + "name" : "ProtectedTermsTab", + "parentId" : "acm008361jsd", + "content" : [ "acm008391jsd", "acm008394jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008378jsd" : { + "type" : "CodePackage", + "id" : "acm008378jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008379jsd" ] + }, + "acm008379jsd" : { + "type" : "CodePackage", + "id" : "acm008379jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008380jsd" ] + }, + "acm008380jsd" : { + "type" : "CodePackage", + "id" : "acm008380jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008381jsd" ] + }, + "acm008381jsd" : { + "type" : "CodePackage", + "id" : "acm008381jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008382jsd" ] + }, + "acm008382jsd" : { + "type" : "CodePackage", + "id" : "acm008382jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm008377jsd" ] + }, + "acm008383jsd" : { + "type" : "ControlElement", + "id" : "acm008383jsd", + "name" : "ProtectedTermsTab" + }, + "acm008384jsd" : { + "type" : "ControlElement", + "id" : "acm008384jsd", + "name" : "getTabName" + }, + "acm008385jsd" : { + "type" : "ControlElement", + "id" : "acm008385jsd", + "name" : "initialize" + }, + "acm008386jsd" : { + "type" : "ControlElement", + "id" : "acm008386jsd", + "name" : "createContextMenu" + }, + "acm008387jsd" : { + "type" : "ControlElement", + "id" : "acm008387jsd", + "name" : "addFile" + }, + "acm008388jsd" : { + "type" : "ControlElement", + "id" : "acm008388jsd", + "name" : "createNewFile" + }, + "acm008389jsd" : { + "type" : "ControlElement", + "id" : "acm008389jsd", + "name" : "ContextAction" + }, + "acm008390jsd" : { + "type" : "ControlElement", + "id" : "acm008390jsd", + "name" : "execute" + }, + "acm008391jsd" : { + "type" : "ClassUnit", + "id" : "acm008391jsd", + "name" : "ProtectedTermsTab", + "compilationUnitId" : "acm008377jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm002126jsd", "acm002150jsd", "acm008376jsd", "acm008394jsd", "acm008411jsd", "acm010073jsd", "acm016690jsd" ], + "content" : [ "acm008383jsd", "acm008384jsd", "acm008385jsd", "acm008386jsd", "acm008387jsd", "acm008388jsd", "acm008389jsd", "acm008390jsd" ] + }, + "acm008392jsd" : { + "type" : "ControlElement", + "id" : "acm008392jsd", + "name" : "ContextAction" + }, + "acm008393jsd" : { + "type" : "ControlElement", + "id" : "acm008393jsd", + "name" : "execute" + }, + "acm008394jsd" : { + "type" : "ClassUnit", + "id" : "acm008394jsd", + "name" : "ContextAction", + "compilationUnitId" : "acm008377jsd", + "parentDatatypeId" : "acm008391jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002150jsd", "acm008376jsd" ], + "content" : [ "acm008392jsd", "acm008393jsd" ] + }, + "acm008395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008395jsd", + "name" : "ProtectedTermsTabViewModel", + "parentId" : "acm008361jsd", + "content" : [ "acm008411jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008396jsd" : { + "type" : "CodePackage", + "id" : "acm008396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008397jsd" ] + }, + "acm008397jsd" : { + "type" : "CodePackage", + "id" : "acm008397jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008398jsd" ] + }, + "acm008398jsd" : { + "type" : "CodePackage", + "id" : "acm008398jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008399jsd" ] + }, + "acm008399jsd" : { + "type" : "CodePackage", + "id" : "acm008399jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008400jsd" ] + }, + "acm008400jsd" : { + "type" : "CodePackage", + "id" : "acm008400jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm008395jsd" ] + }, + "acm008401jsd" : { + "type" : "ControlElement", + "id" : "acm008401jsd", + "name" : "ProtectedTermsTabViewModel" + }, + "acm008402jsd" : { + "type" : "ControlElement", + "id" : "acm008402jsd", + "name" : "setValues" + }, + "acm008403jsd" : { + "type" : "ControlElement", + "id" : "acm008403jsd", + "name" : "storeSettings" + }, + "acm008404jsd" : { + "type" : "ControlElement", + "id" : "acm008404jsd", + "name" : "addFile" + }, + "acm008405jsd" : { + "type" : "ControlElement", + "id" : "acm008405jsd", + "name" : "removeList" + }, + "acm008406jsd" : { + "type" : "ControlElement", + "id" : "acm008406jsd", + "name" : "createNewFile" + }, + "acm008407jsd" : { + "type" : "ControlElement", + "id" : "acm008407jsd", + "name" : "edit" + }, + "acm008408jsd" : { + "type" : "ControlElement", + "id" : "acm008408jsd", + "name" : "displayContent" + }, + "acm008409jsd" : { + "type" : "ControlElement", + "id" : "acm008409jsd", + "name" : "reloadList" + }, + "acm008410jsd" : { + "type" : "ControlElement", + "id" : "acm008410jsd", + "name" : "termsFilesProperty" + }, + "acm008411jsd" : { + "type" : "ClassUnit", + "id" : "acm008411jsd", + "name" : "ProtectedTermsTabViewModel", + "compilationUnitId" : "acm008395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm008363jsd", "acm008376jsd", "acm008411jsd", "acm009796jsd", "acm009809jsd", "acm016672jsd", "acm016690jsd", "acm016716jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm008401jsd", "acm008402jsd", "acm008403jsd", "acm008404jsd", "acm008405jsd", "acm008406jsd", "acm008407jsd", "acm008408jsd", "acm008409jsd", "acm008410jsd" ] + }, + "acm008412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008412jsd", + "name" : "TableTab", + "parentId" : "acm008417jsd", + "content" : [ "acm008427jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "table" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008413jsd" : { + "type" : "CodePackage", + "id" : "acm008413jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008414jsd" ] + }, + "acm008414jsd" : { + "type" : "CodePackage", + "id" : "acm008414jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008415jsd" ] + }, + "acm008415jsd" : { + "type" : "CodePackage", + "id" : "acm008415jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008416jsd" ] + }, + "acm008416jsd" : { + "type" : "CodePackage", + "id" : "acm008416jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008417jsd" ] + }, + "acm008417jsd" : { + "type" : "CodePackage", + "id" : "acm008417jsd", + "name" : "table", + "parentId" : "acm007350jsd", + "content" : [ "acm008412jsd", "acm008428jsd" ] + }, + "acm008418jsd" : { + "type" : "ControlElement", + "id" : "acm008418jsd", + "name" : "TableTab" + }, + "acm008419jsd" : { + "type" : "ControlElement", + "id" : "acm008419jsd", + "name" : "getTabName" + }, + "acm008420jsd" : { + "type" : "ControlElement", + "id" : "acm008420jsd", + "name" : "initialize" + }, + "acm008421jsd" : { + "type" : "ControlElement", + "id" : "acm008421jsd", + "name" : "setupTable" + }, + "acm008422jsd" : { + "type" : "ControlElement", + "id" : "acm008422jsd", + "name" : "setupBindings" + }, + "acm008423jsd" : { + "type" : "ControlElement", + "id" : "acm008423jsd", + "name" : "updateToCurrentColumnOrder" + }, + "acm008424jsd" : { + "type" : "ControlElement", + "id" : "acm008424jsd", + "name" : "sortColumnUp" + }, + "acm008425jsd" : { + "type" : "ControlElement", + "id" : "acm008425jsd", + "name" : "sortColumnDown" + }, + "acm008426jsd" : { + "type" : "ControlElement", + "id" : "acm008426jsd", + "name" : "addColumn" + }, + "acm008427jsd" : { + "type" : "ClassUnit", + "id" : "acm008427jsd", + "name" : "TableTab", + "compilationUnitId" : "acm008412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm002087jsd", "acm005331jsd", "acm006250jsd", "acm008464jsd", "acm009856jsd", "acm010051jsd" ], + "content" : [ "acm008418jsd", "acm008419jsd", "acm008420jsd", "acm008421jsd", "acm008422jsd", "acm008423jsd", "acm008424jsd", "acm008425jsd", "acm008426jsd" ] + }, + "acm008428jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008428jsd", + "name" : "TableTabViewModel", + "parentId" : "acm008417jsd", + "content" : [ "acm008464jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "table" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008429jsd" : { + "type" : "CodePackage", + "id" : "acm008429jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008430jsd" ] + }, + "acm008430jsd" : { + "type" : "CodePackage", + "id" : "acm008430jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008431jsd" ] + }, + "acm008431jsd" : { + "type" : "CodePackage", + "id" : "acm008431jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008432jsd" ] + }, + "acm008432jsd" : { + "type" : "CodePackage", + "id" : "acm008432jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008433jsd" ] + }, + "acm008433jsd" : { + "type" : "CodePackage", + "id" : "acm008433jsd", + "name" : "table", + "parentId" : null, + "content" : [ "acm008428jsd" ] + }, + "acm008434jsd" : { + "type" : "ControlElement", + "id" : "acm008434jsd", + "name" : "toString" + }, + "acm008435jsd" : { + "type" : "ControlElement", + "id" : "acm008435jsd", + "name" : "fromString" + }, + "acm008436jsd" : { + "type" : "ControlElement", + "id" : "acm008436jsd", + "name" : "TableTabViewModel" + }, + "acm008437jsd" : { + "type" : "ControlElement", + "id" : "acm008437jsd", + "name" : "setValues" + }, + "acm008438jsd" : { + "type" : "ControlElement", + "id" : "acm008438jsd", + "name" : "fillColumnList" + }, + "acm008439jsd" : { + "type" : "ControlElement", + "id" : "acm008439jsd", + "name" : "insertSpecialFieldColumns" + }, + "acm008440jsd" : { + "type" : "ControlElement", + "id" : "acm008440jsd", + "name" : "removeSpecialFieldColumns" + }, + "acm008441jsd" : { + "type" : "ControlElement", + "id" : "acm008441jsd", + "name" : "insertExtraFileColumns" + }, + "acm008442jsd" : { + "type" : "ControlElement", + "id" : "acm008442jsd", + "name" : "removeExtraFileColumns" + }, + "acm008443jsd" : { + "type" : "ControlElement", + "id" : "acm008443jsd", + "name" : "insertColumnInList" + }, + "acm008444jsd" : { + "type" : "ControlElement", + "id" : "acm008444jsd", + "name" : "removeColumn" + }, + "acm008445jsd" : { + "type" : "ControlElement", + "id" : "acm008445jsd", + "name" : "moveColumnUp" + }, + "acm008446jsd" : { + "type" : "ControlElement", + "id" : "acm008446jsd", + "name" : "moveColumnDown" + }, + "acm008447jsd" : { + "type" : "ControlElement", + "id" : "acm008447jsd", + "name" : "storeSettings" + }, + "acm008448jsd" : { + "type" : "ControlElement", + "id" : "acm008448jsd", + "name" : "columnsListValidationStatus" + }, + "acm008449jsd" : { + "type" : "ControlElement", + "id" : "acm008449jsd", + "name" : "validateSettings" + }, + "acm008450jsd" : { + "type" : "ControlElement", + "id" : "acm008450jsd", + "name" : "columnsListProperty" + }, + "acm008451jsd" : { + "type" : "ControlElement", + "id" : "acm008451jsd", + "name" : "selectedColumnModelProperty" + }, + "acm008452jsd" : { + "type" : "ControlElement", + "id" : "acm008452jsd", + "name" : "availableColumnsProperty" + }, + "acm008453jsd" : { + "type" : "ControlElement", + "id" : "acm008453jsd", + "name" : "addColumnProperty" + }, + "acm008454jsd" : { + "type" : "ControlElement", + "id" : "acm008454jsd", + "name" : "specialFieldsEnabledProperty" + }, + "acm008455jsd" : { + "type" : "ControlElement", + "id" : "acm008455jsd", + "name" : "extraFileColumnsEnabledProperty" + }, + "acm008456jsd" : { + "type" : "ControlElement", + "id" : "acm008456jsd", + "name" : "autoResizeColumnsProperty" + }, + "acm008457jsd" : { + "type" : "ControlElement", + "id" : "acm008457jsd", + "name" : "namesNatbibProperty" + }, + "acm008458jsd" : { + "type" : "ControlElement", + "id" : "acm008458jsd", + "name" : "nameAsIsProperty" + }, + "acm008459jsd" : { + "type" : "ControlElement", + "id" : "acm008459jsd", + "name" : "nameFirstLastProperty" + }, + "acm008460jsd" : { + "type" : "ControlElement", + "id" : "acm008460jsd", + "name" : "nameLastFirstProperty" + }, + "acm008461jsd" : { + "type" : "ControlElement", + "id" : "acm008461jsd", + "name" : "abbreviationDisabledProperty" + }, + "acm008462jsd" : { + "type" : "ControlElement", + "id" : "acm008462jsd", + "name" : "abbreviationEnabledProperty" + }, + "acm008463jsd" : { + "type" : "ControlElement", + "id" : "acm008463jsd", + "name" : "abbreviationLastNameOnlyProperty" + }, + "acm008464jsd" : { + "type" : "ClassUnit", + "id" : "acm008464jsd", + "name" : "TableTabViewModel", + "compilationUnitId" : "acm008428jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm006175jsd", "acm006250jsd", "acm006317jsd", "acm006330jsd", "acm009182jsd", "acm009884jsd", "acm018770jsd", "acm018798jsd", "acm021206jsd" ], + "content" : [ "acm008434jsd", "acm008435jsd", "acm008436jsd", "acm008437jsd", "acm008438jsd", "acm008439jsd", "acm008440jsd", "acm008441jsd", "acm008442jsd", "acm008443jsd", "acm008444jsd", "acm008445jsd", "acm008446jsd", "acm008447jsd", "acm008448jsd", "acm008449jsd", "acm008450jsd", "acm008451jsd", "acm008452jsd", "acm008453jsd", "acm008454jsd", "acm008455jsd", "acm008456jsd", "acm008457jsd", "acm008458jsd", "acm008459jsd", "acm008460jsd", "acm008461jsd", "acm008462jsd", "acm008463jsd" ] + }, + "acm008465jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008465jsd", + "name" : "XmpPrivacyTab", + "parentId" : "acm008470jsd", + "content" : [ "acm008475jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008466jsd" : { + "type" : "CodePackage", + "id" : "acm008466jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008467jsd" ] + }, + "acm008467jsd" : { + "type" : "CodePackage", + "id" : "acm008467jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008468jsd" ] + }, + "acm008468jsd" : { + "type" : "CodePackage", + "id" : "acm008468jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008469jsd" ] + }, + "acm008469jsd" : { + "type" : "CodePackage", + "id" : "acm008469jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008470jsd" ] + }, + "acm008470jsd" : { + "type" : "CodePackage", + "id" : "acm008470jsd", + "name" : "xmp", + "parentId" : "acm007350jsd", + "content" : [ "acm008465jsd", "acm008476jsd" ] + }, + "acm008471jsd" : { + "type" : "ControlElement", + "id" : "acm008471jsd", + "name" : "XmpPrivacyTab" + }, + "acm008472jsd" : { + "type" : "ControlElement", + "id" : "acm008472jsd", + "name" : "getTabName" + }, + "acm008473jsd" : { + "type" : "ControlElement", + "id" : "acm008473jsd", + "name" : "initialize" + }, + "acm008474jsd" : { + "type" : "ControlElement", + "id" : "acm008474jsd", + "name" : "addField" + }, + "acm008475jsd" : { + "type" : "ClassUnit", + "id" : "acm008475jsd", + "name" : "XmpPrivacyTab", + "compilationUnitId" : "acm008465jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007356jsd" ], + "implementedDataTypesIds" : [ "acm007433jsd" ], + "datatypeReferencesIds" : [ "acm008493jsd", "acm009856jsd", "acm010025jsd", "acm010051jsd", "acm018673jsd" ], + "content" : [ "acm008471jsd", "acm008472jsd", "acm008473jsd", "acm008474jsd" ] + }, + "acm008476jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008476jsd", + "name" : "XmpPrivacyTabViewModel", + "parentId" : "acm008470jsd", + "content" : [ "acm008493jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preferences", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008477jsd" : { + "type" : "CodePackage", + "id" : "acm008477jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008478jsd" ] + }, + "acm008478jsd" : { + "type" : "CodePackage", + "id" : "acm008478jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008479jsd" ] + }, + "acm008479jsd" : { + "type" : "CodePackage", + "id" : "acm008479jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008480jsd" ] + }, + "acm008480jsd" : { + "type" : "CodePackage", + "id" : "acm008480jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm008481jsd" ] + }, + "acm008481jsd" : { + "type" : "CodePackage", + "id" : "acm008481jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm008476jsd" ] + }, + "acm008482jsd" : { + "type" : "ControlElement", + "id" : "acm008482jsd", + "name" : "XmpPrivacyTabViewModel" + }, + "acm008483jsd" : { + "type" : "ControlElement", + "id" : "acm008483jsd", + "name" : "setValues" + }, + "acm008484jsd" : { + "type" : "ControlElement", + "id" : "acm008484jsd", + "name" : "storeSettings" + }, + "acm008485jsd" : { + "type" : "ControlElement", + "id" : "acm008485jsd", + "name" : "addField" + }, + "acm008486jsd" : { + "type" : "ControlElement", + "id" : "acm008486jsd", + "name" : "removeFilter" + }, + "acm008487jsd" : { + "type" : "ControlElement", + "id" : "acm008487jsd", + "name" : "xmpFilterListValidationStatus" + }, + "acm008488jsd" : { + "type" : "ControlElement", + "id" : "acm008488jsd", + "name" : "validateSettings" + }, + "acm008489jsd" : { + "type" : "ControlElement", + "id" : "acm008489jsd", + "name" : "xmpFilterEnabledProperty" + }, + "acm008490jsd" : { + "type" : "ControlElement", + "id" : "acm008490jsd", + "name" : "filterListProperty" + }, + "acm008491jsd" : { + "type" : "ControlElement", + "id" : "acm008491jsd", + "name" : "availableFieldsProperty" + }, + "acm008492jsd" : { + "type" : "ControlElement", + "id" : "acm008492jsd", + "name" : "addFieldNameProperty" + }, + "acm008493jsd" : { + "type" : "ClassUnit", + "id" : "acm008493jsd", + "name" : "XmpPrivacyTabViewModel", + "compilationUnitId" : "acm008476jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007366jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm017745jsd", "acm018673jsd" ], + "content" : [ "acm008482jsd", "acm008483jsd", "acm008484jsd", "acm008485jsd", "acm008486jsd", "acm008487jsd", "acm008488jsd", "acm008489jsd", "acm008490jsd", "acm008491jsd", "acm008492jsd" ] + }, + "acm008494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008494jsd", + "name" : "CopyCitationAction", + "parentId" : "acm008498jsd", + "content" : [ "acm008507jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008495jsd" : { + "type" : "CodePackage", + "id" : "acm008495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008496jsd" ] + }, + "acm008496jsd" : { + "type" : "CodePackage", + "id" : "acm008496jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008497jsd" ] + }, + "acm008497jsd" : { + "type" : "CodePackage", + "id" : "acm008497jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008498jsd" ] + }, + "acm008498jsd" : { + "type" : "CodePackage", + "id" : "acm008498jsd", + "name" : "preview", + "parentId" : "acm001569jsd", + "content" : [ "acm008494jsd", "acm008508jsd", "acm008522jsd", "acm022007jsd" ] + }, + "acm008499jsd" : { + "type" : "ControlElement", + "id" : "acm008499jsd", + "name" : "CopyCitationAction" + }, + "acm008500jsd" : { + "type" : "ControlElement", + "id" : "acm008500jsd", + "name" : "execute" + }, + "acm008501jsd" : { + "type" : "ControlElement", + "id" : "acm008501jsd", + "name" : "generateCitations" + }, + "acm008502jsd" : { + "type" : "ControlElement", + "id" : "acm008502jsd", + "name" : "generateTextBasedPreviewLayoutCitations" + }, + "acm008503jsd" : { + "type" : "ControlElement", + "id" : "acm008503jsd", + "name" : "processPreview" + }, + "acm008504jsd" : { + "type" : "ControlElement", + "id" : "acm008504jsd", + "name" : "processText" + }, + "acm008505jsd" : { + "type" : "ControlElement", + "id" : "acm008505jsd", + "name" : "processHtml" + }, + "acm008506jsd" : { + "type" : "ControlElement", + "id" : "acm008506jsd", + "name" : "setClipBoardContent" + }, + "acm008507jsd" : { + "type" : "ClassUnit", + "id" : "acm008507jsd", + "name" : "CopyCitationAction", + "compilationUnitId" : "acm008494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm008507jsd", "acm009965jsd", "acm011075jsd", "acm011087jsd", "acm014982jsd", "acm015033jsd", "acm015052jsd", "acm015079jsd", "acm016651jsd", "acm018267jsd", "acm021224jsd" ], + "content" : [ "acm008499jsd", "acm008500jsd", "acm008501jsd", "acm008502jsd", "acm008503jsd", "acm008504jsd", "acm008505jsd", "acm008506jsd" ] + }, + "acm008508jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008508jsd", + "name" : "PreviewPanel", + "parentId" : "acm008498jsd", + "content" : [ "acm008521jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008509jsd" : { + "type" : "CodePackage", + "id" : "acm008509jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008510jsd" ] + }, + "acm008510jsd" : { + "type" : "CodePackage", + "id" : "acm008510jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008511jsd" ] + }, + "acm008511jsd" : { + "type" : "CodePackage", + "id" : "acm008511jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008512jsd" ] + }, + "acm008512jsd" : { + "type" : "CodePackage", + "id" : "acm008512jsd", + "name" : "preview", + "parentId" : null, + "content" : [ "acm008508jsd" ] + }, + "acm008513jsd" : { + "type" : "ControlElement", + "id" : "acm008513jsd", + "name" : "PreviewPanel" + }, + "acm008514jsd" : { + "type" : "ControlElement", + "id" : "acm008514jsd", + "name" : "createKeyBindings" + }, + "acm008515jsd" : { + "type" : "ControlElement", + "id" : "acm008515jsd", + "name" : "createPopupMenu" + }, + "acm008516jsd" : { + "type" : "ControlElement", + "id" : "acm008516jsd", + "name" : "setEntry" + }, + "acm008517jsd" : { + "type" : "ControlElement", + "id" : "acm008517jsd", + "name" : "print" + }, + "acm008518jsd" : { + "type" : "ControlElement", + "id" : "acm008518jsd", + "name" : "nextPreviewStyle" + }, + "acm008519jsd" : { + "type" : "ControlElement", + "id" : "acm008519jsd", + "name" : "previousPreviewStyle" + }, + "acm008520jsd" : { + "type" : "ControlElement", + "id" : "acm008520jsd", + "name" : "cyclePreview" + }, + "acm008521jsd" : { + "type" : "ClassUnit", + "id" : "acm008521jsd", + "name" : "PreviewPanel", + "compilationUnitId" : "acm008508jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004142jsd", "acm005802jsd", "acm008521jsd", "acm008540jsd", "acm009346jsd", "acm016548jsd", "acm016651jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd", "acm021224jsd" ], + "content" : [ "acm008513jsd", "acm008514jsd", "acm008515jsd", "acm008516jsd", "acm008517jsd", "acm008518jsd", "acm008519jsd", "acm008520jsd" ] + }, + "acm008522jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008522jsd", + "name" : "PreviewViewer", + "parentId" : "acm008498jsd", + "content" : [ "acm008540jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008523jsd" : { + "type" : "CodePackage", + "id" : "acm008523jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008524jsd" ] + }, + "acm008524jsd" : { + "type" : "CodePackage", + "id" : "acm008524jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008525jsd" ] + }, + "acm008525jsd" : { + "type" : "CodePackage", + "id" : "acm008525jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008526jsd" ] + }, + "acm008526jsd" : { + "type" : "CodePackage", + "id" : "acm008526jsd", + "name" : "preview", + "parentId" : null, + "content" : [ "acm008522jsd" ] + }, + "acm008527jsd" : { + "type" : "ControlElement", + "id" : "acm008527jsd", + "name" : "PreviewViewer" + }, + "acm008528jsd" : { + "type" : "ControlElement", + "id" : "acm008528jsd", + "name" : "highlightSearchPattern" + }, + "acm008529jsd" : { + "type" : "ControlElement", + "id" : "acm008529jsd", + "name" : "createJavaScriptRegex" + }, + "acm008530jsd" : { + "type" : "ControlElement", + "id" : "acm008530jsd", + "name" : "setLayout" + }, + "acm008531jsd" : { + "type" : "ControlElement", + "id" : "acm008531jsd", + "name" : "setEntry" + }, + "acm008532jsd" : { + "type" : "ControlElement", + "id" : "acm008532jsd", + "name" : "update" + }, + "acm008533jsd" : { + "type" : "ControlElement", + "id" : "acm008533jsd", + "name" : "setPreviewText" + }, + "acm008534jsd" : { + "type" : "ControlElement", + "id" : "acm008534jsd", + "name" : "print" + }, + "acm008535jsd" : { + "type" : "ControlElement", + "id" : "acm008535jsd", + "name" : "copyPreviewToClipBoard" + }, + "acm008536jsd" : { + "type" : "ControlElement", + "id" : "acm008536jsd", + "name" : "copySelectionToClipBoard" + }, + "acm008537jsd" : { + "type" : "ControlElement", + "id" : "acm008537jsd", + "name" : "invalidated" + }, + "acm008538jsd" : { + "type" : "ControlElement", + "id" : "acm008538jsd", + "name" : "getSelectionTextContent" + }, + "acm008539jsd" : { + "type" : "ControlElement", + "id" : "acm008539jsd", + "name" : "getSelectionHtmlContent" + }, + "acm008540jsd" : { + "type" : "ClassUnit", + "id" : "acm008540jsd", + "name" : "PreviewViewer", + "compilationUnitId" : "acm008522jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm008540jsd", "acm009346jsd", "acm009965jsd", "acm016651jsd", "acm016845jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm008527jsd", "acm008528jsd", "acm008529jsd", "acm008530jsd", "acm008531jsd", "acm008532jsd", "acm008533jsd", "acm008534jsd", "acm008535jsd", "acm008536jsd", "acm008537jsd", "acm008538jsd", "acm008539jsd" ] + }, + "acm008541jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008541jsd", + "name" : "AbstractPushToApplication", + "parentId" : "acm008545jsd", + "content" : [ "acm008560jsd", "acm008564jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008542jsd" : { + "type" : "CodePackage", + "id" : "acm008542jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008543jsd" ] + }, + "acm008543jsd" : { + "type" : "CodePackage", + "id" : "acm008543jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008544jsd" ] + }, + "acm008544jsd" : { + "type" : "CodePackage", + "id" : "acm008544jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008545jsd" ] + }, + "acm008545jsd" : { + "type" : "CodePackage", + "id" : "acm008545jsd", + "name" : "push", + "parentId" : "acm001569jsd", + "content" : [ "acm008541jsd", "acm008565jsd", "acm008579jsd", "acm008592jsd", "acm008601jsd", "acm008610jsd", "acm008623jsd", "acm008631jsd", "acm008643jsd", "acm008650jsd", "acm008660jsd", "acm008670jsd", "acm008682jsd", "acm008690jsd" ] + }, + "acm008546jsd" : { + "type" : "ControlElement", + "id" : "acm008546jsd", + "name" : "AbstractPushToApplication" + }, + "acm008547jsd" : { + "type" : "ControlElement", + "id" : "acm008547jsd", + "name" : "getApplicationIcon" + }, + "acm008548jsd" : { + "type" : "ControlElement", + "id" : "acm008548jsd", + "name" : "getTooltip" + }, + "acm008549jsd" : { + "type" : "ControlElement", + "id" : "acm008549jsd", + "name" : "getAction" + }, + "acm008550jsd" : { + "type" : "ControlElement", + "id" : "acm008550jsd", + "name" : "pushEntries" + }, + "acm008551jsd" : { + "type" : "ControlElement", + "id" : "acm008551jsd", + "name" : "onOperationCompleted" + }, + "acm008552jsd" : { + "type" : "ControlElement", + "id" : "acm008552jsd", + "name" : "requiresCitationKeys" + }, + "acm008553jsd" : { + "type" : "ControlElement", + "id" : "acm008553jsd", + "name" : "getCommandLine" + }, + "acm008554jsd" : { + "type" : "ControlElement", + "id" : "acm008554jsd", + "name" : "getCommandName" + }, + "acm008555jsd" : { + "type" : "ControlElement", + "id" : "acm008555jsd", + "name" : "getCiteCommand" + }, + "acm008556jsd" : { + "type" : "ControlElement", + "id" : "acm008556jsd", + "name" : "getSettings" + }, + "acm008557jsd" : { + "type" : "ControlElement", + "id" : "acm008557jsd", + "name" : "getText" + }, + "acm008558jsd" : { + "type" : "ControlElement", + "id" : "acm008558jsd", + "name" : "getIcon" + }, + "acm008559jsd" : { + "type" : "ControlElement", + "id" : "acm008559jsd", + "name" : "getKeyBinding" + }, + "acm008560jsd" : { + "type" : "ClassUnit", + "id" : "acm008560jsd", + "name" : "AbstractPushToApplication", + "compilationUnitId" : "acm008541jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm008578jsd" ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002070jsd", "acm005416jsd", "acm005768jsd", "acm008560jsd", "acm008564jsd", "acm008578jsd", "acm008600jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd", "acm021241jsd" ], + "content" : [ "acm008546jsd", "acm008547jsd", "acm008548jsd", "acm008549jsd", "acm008550jsd", "acm008551jsd", "acm008552jsd", "acm008553jsd", "acm008554jsd", "acm008555jsd", "acm008556jsd", "acm008557jsd", "acm008558jsd", "acm008559jsd" ] + }, + "acm008561jsd" : { + "type" : "ControlElement", + "id" : "acm008561jsd", + "name" : "getText" + }, + "acm008562jsd" : { + "type" : "ControlElement", + "id" : "acm008562jsd", + "name" : "getIcon" + }, + "acm008563jsd" : { + "type" : "ControlElement", + "id" : "acm008563jsd", + "name" : "getKeyBinding" + }, + "acm008564jsd" : { + "type" : "ClassUnit", + "id" : "acm008564jsd", + "name" : "PushToApplicationAction", + "compilationUnitId" : "acm008541jsd", + "parentDatatypeId" : "acm008560jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002070jsd" ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm005768jsd" ], + "content" : [ "acm008561jsd", "acm008562jsd", "acm008563jsd" ] + }, + "acm008565jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008565jsd", + "name" : "PushToApplication", + "parentId" : "acm008545jsd", + "content" : [ "acm008578jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008566jsd" : { + "type" : "CodePackage", + "id" : "acm008566jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008567jsd" ] + }, + "acm008567jsd" : { + "type" : "CodePackage", + "id" : "acm008567jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008568jsd" ] + }, + "acm008568jsd" : { + "type" : "CodePackage", + "id" : "acm008568jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008569jsd" ] + }, + "acm008569jsd" : { + "type" : "CodePackage", + "id" : "acm008569jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008565jsd" ] + }, + "acm008570jsd" : { + "type" : "ControlElement", + "id" : "acm008570jsd", + "name" : "getDisplayName" + }, + "acm008571jsd" : { + "type" : "ControlElement", + "id" : "acm008571jsd", + "name" : "getTooltip" + }, + "acm008572jsd" : { + "type" : "ControlElement", + "id" : "acm008572jsd", + "name" : "getApplicationIcon" + }, + "acm008573jsd" : { + "type" : "ControlElement", + "id" : "acm008573jsd", + "name" : "pushEntries" + }, + "acm008574jsd" : { + "type" : "ControlElement", + "id" : "acm008574jsd", + "name" : "onOperationCompleted" + }, + "acm008575jsd" : { + "type" : "ControlElement", + "id" : "acm008575jsd", + "name" : "requiresCitationKeys" + }, + "acm008576jsd" : { + "type" : "ControlElement", + "id" : "acm008576jsd", + "name" : "getAction" + }, + "acm008577jsd" : { + "type" : "ControlElement", + "id" : "acm008577jsd", + "name" : "getSettings" + }, + "acm008578jsd" : { + "type" : "InterfaceUnit", + "id" : "acm008578jsd", + "name" : "PushToApplication", + "compilationUnitId" : "acm008565jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm005416jsd", "acm008578jsd", "acm008600jsd", "acm018022jsd", "acm018267jsd", "acm021241jsd" ], + "content" : [ "acm008570jsd", "acm008571jsd", "acm008572jsd", "acm008573jsd", "acm008574jsd", "acm008575jsd", "acm008576jsd", "acm008577jsd" ] + }, + "acm008579jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008579jsd", + "name" : "PushToApplicationCommand", + "parentId" : "acm008545jsd", + "content" : [ "acm008591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008580jsd" : { + "type" : "CodePackage", + "id" : "acm008580jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008581jsd" ] + }, + "acm008581jsd" : { + "type" : "CodePackage", + "id" : "acm008581jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008582jsd" ] + }, + "acm008582jsd" : { + "type" : "CodePackage", + "id" : "acm008582jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008583jsd" ] + }, + "acm008583jsd" : { + "type" : "CodePackage", + "id" : "acm008583jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008579jsd" ] + }, + "acm008584jsd" : { + "type" : "ControlElement", + "id" : "acm008584jsd", + "name" : "PushToApplicationCommand" + }, + "acm008585jsd" : { + "type" : "ControlElement", + "id" : "acm008585jsd", + "name" : "registerReconfigurable" + }, + "acm008586jsd" : { + "type" : "ControlElement", + "id" : "acm008586jsd", + "name" : "setApplication" + }, + "acm008587jsd" : { + "type" : "ControlElement", + "id" : "acm008587jsd", + "name" : "getAction" + }, + "acm008588jsd" : { + "type" : "ControlElement", + "id" : "acm008588jsd", + "name" : "getKeyString" + }, + "acm008589jsd" : { + "type" : "ControlElement", + "id" : "acm008589jsd", + "name" : "execute" + }, + "acm008590jsd" : { + "type" : "ControlElement", + "id" : "acm008590jsd", + "name" : "pushEntries" + }, + "acm008591jsd" : { + "type" : "ClassUnit", + "id" : "acm008591jsd", + "name" : "PushToApplicationCommand", + "compilationUnitId" : "acm008579jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002070jsd", "acm002087jsd", "acm008578jsd", "acm008591jsd", "acm008622jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm008584jsd", "acm008585jsd", "acm008586jsd", "acm008587jsd", "acm008588jsd", "acm008589jsd", "acm008590jsd" ] + }, + "acm008592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008592jsd", + "name" : "PushToApplicationSettings", + "parentId" : "acm008545jsd", + "content" : [ "acm008600jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008593jsd" : { + "type" : "CodePackage", + "id" : "acm008593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008594jsd" ] + }, + "acm008594jsd" : { + "type" : "CodePackage", + "id" : "acm008594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008595jsd" ] + }, + "acm008595jsd" : { + "type" : "CodePackage", + "id" : "acm008595jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008596jsd" ] + }, + "acm008596jsd" : { + "type" : "CodePackage", + "id" : "acm008596jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008592jsd" ] + }, + "acm008597jsd" : { + "type" : "ControlElement", + "id" : "acm008597jsd", + "name" : "PushToApplicationSettings" + }, + "acm008598jsd" : { + "type" : "ControlElement", + "id" : "acm008598jsd", + "name" : "storeSettings" + }, + "acm008599jsd" : { + "type" : "ControlElement", + "id" : "acm008599jsd", + "name" : "getSettingsPane" + }, + "acm008600jsd" : { + "type" : "ClassUnit", + "id" : "acm008600jsd", + "name" : "PushToApplicationSettings", + "compilationUnitId" : "acm008592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008560jsd", "acm008578jsd", "acm009796jsd", "acm009809jsd", "acm020848jsd", "acm021241jsd" ], + "content" : [ "acm008597jsd", "acm008598jsd", "acm008599jsd" ] + }, + "acm008601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008601jsd", + "name" : "PushToApplications", + "parentId" : "acm008545jsd", + "content" : [ "acm008609jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008602jsd" : { + "type" : "CodePackage", + "id" : "acm008602jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008603jsd" ] + }, + "acm008603jsd" : { + "type" : "CodePackage", + "id" : "acm008603jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008604jsd" ] + }, + "acm008604jsd" : { + "type" : "CodePackage", + "id" : "acm008604jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008605jsd" ] + }, + "acm008605jsd" : { + "type" : "CodePackage", + "id" : "acm008605jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008601jsd" ] + }, + "acm008606jsd" : { + "type" : "ControlElement", + "id" : "acm008606jsd", + "name" : "PushToApplications" + }, + "acm008607jsd" : { + "type" : "ControlElement", + "id" : "acm008607jsd", + "name" : "getAllApplications" + }, + "acm008608jsd" : { + "type" : "ControlElement", + "id" : "acm008608jsd", + "name" : "getApplicationByName" + }, + "acm008609jsd" : { + "type" : "ClassUnit", + "id" : "acm008609jsd", + "name" : "PushToApplications", + "compilationUnitId" : "acm008601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008578jsd", "acm008622jsd", "acm008642jsd", "acm008659jsd", "acm008669jsd", "acm008681jsd", "acm008699jsd", "acm021206jsd" ], + "content" : [ "acm008606jsd", "acm008607jsd", "acm008608jsd" ] + }, + "acm008610jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008610jsd", + "name" : "PushToEmacs", + "parentId" : "acm008545jsd", + "content" : [ "acm008622jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008611jsd" : { + "type" : "CodePackage", + "id" : "acm008611jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008612jsd" ] + }, + "acm008612jsd" : { + "type" : "CodePackage", + "id" : "acm008612jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008613jsd" ] + }, + "acm008613jsd" : { + "type" : "CodePackage", + "id" : "acm008613jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008614jsd" ] + }, + "acm008614jsd" : { + "type" : "CodePackage", + "id" : "acm008614jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008610jsd" ] + }, + "acm008615jsd" : { + "type" : "ControlElement", + "id" : "acm008615jsd", + "name" : "PushToEmacs" + }, + "acm008616jsd" : { + "type" : "ControlElement", + "id" : "acm008616jsd", + "name" : "getDisplayName" + }, + "acm008617jsd" : { + "type" : "ControlElement", + "id" : "acm008617jsd", + "name" : "getApplicationIcon" + }, + "acm008618jsd" : { + "type" : "ControlElement", + "id" : "acm008618jsd", + "name" : "pushEntries" + }, + "acm008619jsd" : { + "type" : "ControlElement", + "id" : "acm008619jsd", + "name" : "onOperationCompleted" + }, + "acm008620jsd" : { + "type" : "ControlElement", + "id" : "acm008620jsd", + "name" : "getCommandName" + }, + "acm008621jsd" : { + "type" : "ControlElement", + "id" : "acm008621jsd", + "name" : "getSettings" + }, + "acm008622jsd" : { + "type" : "ClassUnit", + "id" : "acm008622jsd", + "name" : "PushToEmacs", + "compilationUnitId" : "acm008610jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm008578jsd", "acm008600jsd", "acm008622jsd", "acm008630jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd", "acm021241jsd" ], + "content" : [ "acm008615jsd", "acm008616jsd", "acm008617jsd", "acm008618jsd", "acm008619jsd", "acm008620jsd", "acm008621jsd" ] + }, + "acm008623jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008623jsd", + "name" : "PushToEmacsSettings", + "parentId" : "acm008545jsd", + "content" : [ "acm008630jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008624jsd" : { + "type" : "CodePackage", + "id" : "acm008624jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008625jsd" ] + }, + "acm008625jsd" : { + "type" : "CodePackage", + "id" : "acm008625jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008626jsd" ] + }, + "acm008626jsd" : { + "type" : "CodePackage", + "id" : "acm008626jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008627jsd" ] + }, + "acm008627jsd" : { + "type" : "CodePackage", + "id" : "acm008627jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008623jsd" ] + }, + "acm008628jsd" : { + "type" : "ControlElement", + "id" : "acm008628jsd", + "name" : "PushToEmacsSettings" + }, + "acm008629jsd" : { + "type" : "ControlElement", + "id" : "acm008629jsd", + "name" : "storeSettings" + }, + "acm008630jsd" : { + "type" : "ClassUnit", + "id" : "acm008630jsd", + "name" : "PushToEmacsSettings", + "compilationUnitId" : "acm008623jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008578jsd", "acm020848jsd", "acm021241jsd" ], + "content" : [ "acm008628jsd", "acm008629jsd" ] + }, + "acm008631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008631jsd", + "name" : "PushToLyx", + "parentId" : "acm008545jsd", + "content" : [ "acm008642jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008632jsd" : { + "type" : "CodePackage", + "id" : "acm008632jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008633jsd" ] + }, + "acm008633jsd" : { + "type" : "CodePackage", + "id" : "acm008633jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008634jsd" ] + }, + "acm008634jsd" : { + "type" : "CodePackage", + "id" : "acm008634jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008635jsd" ] + }, + "acm008635jsd" : { + "type" : "CodePackage", + "id" : "acm008635jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008631jsd" ] + }, + "acm008636jsd" : { + "type" : "ControlElement", + "id" : "acm008636jsd", + "name" : "PushToLyx" + }, + "acm008637jsd" : { + "type" : "ControlElement", + "id" : "acm008637jsd", + "name" : "getDisplayName" + }, + "acm008638jsd" : { + "type" : "ControlElement", + "id" : "acm008638jsd", + "name" : "getApplicationIcon" + }, + "acm008639jsd" : { + "type" : "ControlElement", + "id" : "acm008639jsd", + "name" : "onOperationCompleted" + }, + "acm008640jsd" : { + "type" : "ControlElement", + "id" : "acm008640jsd", + "name" : "getSettings" + }, + "acm008641jsd" : { + "type" : "ControlElement", + "id" : "acm008641jsd", + "name" : "pushEntries" + }, + "acm008642jsd" : { + "type" : "ClassUnit", + "id" : "acm008642jsd", + "name" : "PushToLyx", + "compilationUnitId" : "acm008631jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm008578jsd", "acm008600jsd", "acm008642jsd", "acm008649jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd", "acm021241jsd" ], + "content" : [ "acm008636jsd", "acm008637jsd", "acm008638jsd", "acm008639jsd", "acm008640jsd", "acm008641jsd" ] + }, + "acm008643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008643jsd", + "name" : "PushToLyxSettings", + "parentId" : "acm008545jsd", + "content" : [ "acm008649jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008644jsd" : { + "type" : "CodePackage", + "id" : "acm008644jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008645jsd" ] + }, + "acm008645jsd" : { + "type" : "CodePackage", + "id" : "acm008645jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008646jsd" ] + }, + "acm008646jsd" : { + "type" : "CodePackage", + "id" : "acm008646jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008647jsd" ] + }, + "acm008647jsd" : { + "type" : "CodePackage", + "id" : "acm008647jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008643jsd" ] + }, + "acm008648jsd" : { + "type" : "ControlElement", + "id" : "acm008648jsd", + "name" : "PushToLyxSettings" + }, + "acm008649jsd" : { + "type" : "ClassUnit", + "id" : "acm008649jsd", + "name" : "PushToLyxSettings", + "compilationUnitId" : "acm008643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008578jsd", "acm020848jsd", "acm021241jsd" ], + "content" : [ "acm008648jsd" ] + }, + "acm008650jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008650jsd", + "name" : "PushToTeXstudio", + "parentId" : "acm008545jsd", + "content" : [ "acm008659jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008651jsd" : { + "type" : "CodePackage", + "id" : "acm008651jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008652jsd" ] + }, + "acm008652jsd" : { + "type" : "CodePackage", + "id" : "acm008652jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008653jsd" ] + }, + "acm008653jsd" : { + "type" : "CodePackage", + "id" : "acm008653jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008654jsd" ] + }, + "acm008654jsd" : { + "type" : "CodePackage", + "id" : "acm008654jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008650jsd" ] + }, + "acm008655jsd" : { + "type" : "ControlElement", + "id" : "acm008655jsd", + "name" : "PushToTeXstudio" + }, + "acm008656jsd" : { + "type" : "ControlElement", + "id" : "acm008656jsd", + "name" : "getDisplayName" + }, + "acm008657jsd" : { + "type" : "ControlElement", + "id" : "acm008657jsd", + "name" : "getApplicationIcon" + }, + "acm008658jsd" : { + "type" : "ControlElement", + "id" : "acm008658jsd", + "name" : "getCommandLine" + }, + "acm008659jsd" : { + "type" : "ClassUnit", + "id" : "acm008659jsd", + "name" : "PushToTeXstudio", + "compilationUnitId" : "acm008650jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm021206jsd" ], + "content" : [ "acm008655jsd", "acm008656jsd", "acm008657jsd", "acm008658jsd" ] + }, + "acm008660jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008660jsd", + "name" : "PushToTexmaker", + "parentId" : "acm008545jsd", + "content" : [ "acm008669jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008661jsd" : { + "type" : "CodePackage", + "id" : "acm008661jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008662jsd" ] + }, + "acm008662jsd" : { + "type" : "CodePackage", + "id" : "acm008662jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008663jsd" ] + }, + "acm008663jsd" : { + "type" : "CodePackage", + "id" : "acm008663jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008664jsd" ] + }, + "acm008664jsd" : { + "type" : "CodePackage", + "id" : "acm008664jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008660jsd" ] + }, + "acm008665jsd" : { + "type" : "ControlElement", + "id" : "acm008665jsd", + "name" : "PushToTexmaker" + }, + "acm008666jsd" : { + "type" : "ControlElement", + "id" : "acm008666jsd", + "name" : "getDisplayName" + }, + "acm008667jsd" : { + "type" : "ControlElement", + "id" : "acm008667jsd", + "name" : "getApplicationIcon" + }, + "acm008668jsd" : { + "type" : "ControlElement", + "id" : "acm008668jsd", + "name" : "getCommandLine" + }, + "acm008669jsd" : { + "type" : "ClassUnit", + "id" : "acm008669jsd", + "name" : "PushToTexmaker", + "compilationUnitId" : "acm008660jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm021206jsd" ], + "content" : [ "acm008665jsd", "acm008666jsd", "acm008667jsd", "acm008668jsd" ] + }, + "acm008670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008670jsd", + "name" : "PushToVim", + "parentId" : "acm008545jsd", + "content" : [ "acm008681jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008671jsd" : { + "type" : "CodePackage", + "id" : "acm008671jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008672jsd" ] + }, + "acm008672jsd" : { + "type" : "CodePackage", + "id" : "acm008672jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008673jsd" ] + }, + "acm008673jsd" : { + "type" : "CodePackage", + "id" : "acm008673jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008674jsd" ] + }, + "acm008674jsd" : { + "type" : "CodePackage", + "id" : "acm008674jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008670jsd" ] + }, + "acm008675jsd" : { + "type" : "ControlElement", + "id" : "acm008675jsd", + "name" : "PushToVim" + }, + "acm008676jsd" : { + "type" : "ControlElement", + "id" : "acm008676jsd", + "name" : "getDisplayName" + }, + "acm008677jsd" : { + "type" : "ControlElement", + "id" : "acm008677jsd", + "name" : "getApplicationIcon" + }, + "acm008678jsd" : { + "type" : "ControlElement", + "id" : "acm008678jsd", + "name" : "getSettings" + }, + "acm008679jsd" : { + "type" : "ControlElement", + "id" : "acm008679jsd", + "name" : "pushEntries" + }, + "acm008680jsd" : { + "type" : "ControlElement", + "id" : "acm008680jsd", + "name" : "onOperationCompleted" + }, + "acm008681jsd" : { + "type" : "ClassUnit", + "id" : "acm008681jsd", + "name" : "PushToVim", + "compilationUnitId" : "acm008670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm008578jsd", "acm008600jsd", "acm008681jsd", "acm008689jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd", "acm021241jsd" ], + "content" : [ "acm008675jsd", "acm008676jsd", "acm008677jsd", "acm008678jsd", "acm008679jsd", "acm008680jsd" ] + }, + "acm008682jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008682jsd", + "name" : "PushToVimSettings", + "parentId" : "acm008545jsd", + "content" : [ "acm008689jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008683jsd" : { + "type" : "CodePackage", + "id" : "acm008683jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008684jsd" ] + }, + "acm008684jsd" : { + "type" : "CodePackage", + "id" : "acm008684jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008685jsd" ] + }, + "acm008685jsd" : { + "type" : "CodePackage", + "id" : "acm008685jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008686jsd" ] + }, + "acm008686jsd" : { + "type" : "CodePackage", + "id" : "acm008686jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008682jsd" ] + }, + "acm008687jsd" : { + "type" : "ControlElement", + "id" : "acm008687jsd", + "name" : "PushToVimSettings" + }, + "acm008688jsd" : { + "type" : "ControlElement", + "id" : "acm008688jsd", + "name" : "storeSettings" + }, + "acm008689jsd" : { + "type" : "ClassUnit", + "id" : "acm008689jsd", + "name" : "PushToVimSettings", + "compilationUnitId" : "acm008682jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm008578jsd", "acm020848jsd", "acm021241jsd" ], + "content" : [ "acm008687jsd", "acm008688jsd" ] + }, + "acm008690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008690jsd", + "name" : "PushToWinEdt", + "parentId" : "acm008545jsd", + "content" : [ "acm008699jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "push" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008691jsd" : { + "type" : "CodePackage", + "id" : "acm008691jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008692jsd" ] + }, + "acm008692jsd" : { + "type" : "CodePackage", + "id" : "acm008692jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008693jsd" ] + }, + "acm008693jsd" : { + "type" : "CodePackage", + "id" : "acm008693jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008694jsd" ] + }, + "acm008694jsd" : { + "type" : "CodePackage", + "id" : "acm008694jsd", + "name" : "push", + "parentId" : null, + "content" : [ "acm008690jsd" ] + }, + "acm008695jsd" : { + "type" : "ControlElement", + "id" : "acm008695jsd", + "name" : "PushToWinEdt" + }, + "acm008696jsd" : { + "type" : "ControlElement", + "id" : "acm008696jsd", + "name" : "getDisplayName" + }, + "acm008697jsd" : { + "type" : "ControlElement", + "id" : "acm008697jsd", + "name" : "getApplicationIcon" + }, + "acm008698jsd" : { + "type" : "ControlElement", + "id" : "acm008698jsd", + "name" : "getCommandLine" + }, + "acm008699jsd" : { + "type" : "ClassUnit", + "id" : "acm008699jsd", + "name" : "PushToWinEdt", + "compilationUnitId" : "acm008690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008560jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005416jsd", "acm021206jsd" ], + "content" : [ "acm008695jsd", "acm008696jsd", "acm008697jsd", "acm008698jsd" ] + }, + "acm008700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008700jsd", + "name" : "CLIMessageHandler", + "parentId" : "acm008704jsd", + "content" : [ "acm008707jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008701jsd" : { + "type" : "CodePackage", + "id" : "acm008701jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008702jsd" ] + }, + "acm008702jsd" : { + "type" : "CodePackage", + "id" : "acm008702jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008703jsd" ] + }, + "acm008703jsd" : { + "type" : "CodePackage", + "id" : "acm008703jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008704jsd" ] + }, + "acm008704jsd" : { + "type" : "CodePackage", + "id" : "acm008704jsd", + "name" : "remote", + "parentId" : "acm001569jsd", + "content" : [ "acm008700jsd" ] + }, + "acm008705jsd" : { + "type" : "ControlElement", + "id" : "acm008705jsd", + "name" : "CLIMessageHandler" + }, + "acm008706jsd" : { + "type" : "ControlElement", + "id" : "acm008706jsd", + "name" : "handleCommandLineArguments" + }, + "acm008707jsd" : { + "type" : "ClassUnit", + "id" : "acm008707jsd", + "name" : "CLIMessageHandler", + "compilationUnitId" : "acm008700jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016810jsd" ], + "datatypeReferencesIds" : [ "acm001492jsd", "acm008707jsd", "acm012556jsd", "acm021206jsd" ], + "content" : [ "acm008705jsd", "acm008706jsd" ] + }, + "acm008708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008708jsd", + "name" : "GlobalSearchBar", + "parentId" : "acm008712jsd", + "content" : [ "acm008733jsd", "acm008740jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008709jsd" : { + "type" : "CodePackage", + "id" : "acm008709jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008710jsd" ] + }, + "acm008710jsd" : { + "type" : "CodePackage", + "id" : "acm008710jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008711jsd" ] + }, + "acm008711jsd" : { + "type" : "CodePackage", + "id" : "acm008711jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008712jsd" ] + }, + "acm008712jsd" : { + "type" : "CodePackage", + "id" : "acm008712jsd", + "name" : "search", + "parentId" : "acm001569jsd", + "content" : [ "acm008708jsd", "acm008741jsd", "acm008749jsd", "acm008758jsd", "acm008771jsd", "acm008780jsd", "acm008790jsd", "acm008797jsd", "acm008807jsd", "acm022017jsd", "acm022029jsd", "acm022039jsd", "acm022048jsd", "acm022064jsd", "acm008819jsd" ] + }, + "acm008713jsd" : { + "type" : "ControlElement", + "id" : "acm008713jsd", + "name" : "GlobalSearchBar" + }, + "acm008714jsd" : { + "type" : "ControlElement", + "id" : "acm008714jsd", + "name" : "updateSearchResultsForQuery" + }, + "acm008715jsd" : { + "type" : "ControlElement", + "id" : "acm008715jsd", + "name" : "initSearchModifierButtons" + }, + "acm008716jsd" : { + "type" : "ControlElement", + "id" : "acm008716jsd", + "name" : "initSearchModifierButton" + }, + "acm008717jsd" : { + "type" : "ControlElement", + "id" : "acm008717jsd", + "name" : "focus" + }, + "acm008718jsd" : { + "type" : "ControlElement", + "id" : "acm008718jsd", + "name" : "performSearch" + }, + "acm008719jsd" : { + "type" : "ControlElement", + "id" : "acm008719jsd", + "name" : "validRegex" + }, + "acm008720jsd" : { + "type" : "ControlElement", + "id" : "acm008720jsd", + "name" : "informUserAboutInvalidSearchQuery" + }, + "acm008721jsd" : { + "type" : "ControlElement", + "id" : "acm008721jsd", + "name" : "setAutoCompleter" + }, + "acm008722jsd" : { + "type" : "ControlElement", + "id" : "acm008722jsd", + "name" : "getPopup" + }, + "acm008723jsd" : { + "type" : "ControlElement", + "id" : "acm008723jsd", + "name" : "updateResults" + }, + "acm008724jsd" : { + "type" : "ControlElement", + "id" : "acm008724jsd", + "name" : "setSearchFieldHintTooltip" + }, + "acm008725jsd" : { + "type" : "ControlElement", + "id" : "acm008725jsd", + "name" : "updateHintVisibility" + }, + "acm008726jsd" : { + "type" : "ControlElement", + "id" : "acm008726jsd", + "name" : "setSearchTerm" + }, + "acm008727jsd" : { + "type" : "ControlElement", + "id" : "acm008727jsd", + "name" : "SearchPopupSkin" + }, + "acm008728jsd" : { + "type" : "ControlElement", + "id" : "acm008728jsd", + "name" : "registerEventListener" + }, + "acm008729jsd" : { + "type" : "ControlElement", + "id" : "acm008729jsd", + "name" : "onSuggestionChosen" + }, + "acm008730jsd" : { + "type" : "ControlElement", + "id" : "acm008730jsd", + "name" : "getNode" + }, + "acm008731jsd" : { + "type" : "ControlElement", + "id" : "acm008731jsd", + "name" : "getSkinnable" + }, + "acm008732jsd" : { + "type" : "ControlElement", + "id" : "acm008732jsd", + "name" : "dispose" + }, + "acm008733jsd" : { + "type" : "ClassUnit", + "id" : "acm008733jsd", + "name" : "GlobalSearchBar", + "compilationUnitId" : "acm008708jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002159jsd", "acm002231jsd", "acm002287jsd", "acm002329jsd", "acm005802jsd", "acm008733jsd", "acm008740jsd", "acm008748jsd", "acm009369jsd", "acm009856jsd", "acm016845jsd", "acm018138jsd", "acm021206jsd", "acm021267jsd" ], + "content" : [ "acm008713jsd", "acm008714jsd", "acm008715jsd", "acm008716jsd", "acm008717jsd", "acm008718jsd", "acm008719jsd", "acm008720jsd", "acm008721jsd", "acm008722jsd", "acm008723jsd", "acm008724jsd", "acm008725jsd", "acm008726jsd", "acm008727jsd", "acm008728jsd", "acm008729jsd", "acm008730jsd", "acm008731jsd", "acm008732jsd" ] + }, + "acm008734jsd" : { + "type" : "ControlElement", + "id" : "acm008734jsd", + "name" : "SearchPopupSkin" + }, + "acm008735jsd" : { + "type" : "ControlElement", + "id" : "acm008735jsd", + "name" : "registerEventListener" + }, + "acm008736jsd" : { + "type" : "ControlElement", + "id" : "acm008736jsd", + "name" : "onSuggestionChosen" + }, + "acm008737jsd" : { + "type" : "ControlElement", + "id" : "acm008737jsd", + "name" : "getNode" + }, + "acm008738jsd" : { + "type" : "ControlElement", + "id" : "acm008738jsd", + "name" : "getSkinnable" + }, + "acm008739jsd" : { + "type" : "ControlElement", + "id" : "acm008739jsd", + "name" : "dispose" + }, + "acm008740jsd" : { + "type" : "ClassUnit", + "id" : "acm008740jsd", + "name" : "SearchPopupSkin", + "compilationUnitId" : "acm008708jsd", + "parentDatatypeId" : "acm008733jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008734jsd", "acm008735jsd", "acm008736jsd", "acm008737jsd", "acm008738jsd", "acm008739jsd" ] + }, + "acm008741jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008741jsd", + "name" : "GlobalSearchResultDialog", + "parentId" : "acm008712jsd", + "content" : [ "acm008748jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008742jsd" : { + "type" : "CodePackage", + "id" : "acm008742jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008743jsd" ] + }, + "acm008743jsd" : { + "type" : "CodePackage", + "id" : "acm008743jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008744jsd" ] + }, + "acm008744jsd" : { + "type" : "CodePackage", + "id" : "acm008744jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008745jsd" ] + }, + "acm008745jsd" : { + "type" : "CodePackage", + "id" : "acm008745jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008741jsd" ] + }, + "acm008746jsd" : { + "type" : "ControlElement", + "id" : "acm008746jsd", + "name" : "GlobalSearchResultDialog" + }, + "acm008747jsd" : { + "type" : "ControlElement", + "id" : "acm008747jsd", + "name" : "initialize" + }, + "acm008748jsd" : { + "type" : "ClassUnit", + "id" : "acm008748jsd", + "name" : "GlobalSearchResultDialog", + "compilationUnitId" : "acm008741jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm008540jsd", "acm008757jsd", "acm008796jsd", "acm008806jsd", "acm009346jsd", "acm021206jsd" ], + "content" : [ "acm008746jsd", "acm008747jsd" ] + }, + "acm008749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008749jsd", + "name" : "GlobalSearchResultDialogViewModel", + "parentId" : "acm008712jsd", + "content" : [ "acm008757jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008750jsd" : { + "type" : "CodePackage", + "id" : "acm008750jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008751jsd" ] + }, + "acm008751jsd" : { + "type" : "CodePackage", + "id" : "acm008751jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008752jsd" ] + }, + "acm008752jsd" : { + "type" : "CodePackage", + "id" : "acm008752jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008753jsd" ] + }, + "acm008753jsd" : { + "type" : "CodePackage", + "id" : "acm008753jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008749jsd" ] + }, + "acm008754jsd" : { + "type" : "ControlElement", + "id" : "acm008754jsd", + "name" : "GlobalSearchResultDialogViewModel" + }, + "acm008755jsd" : { + "type" : "ControlElement", + "id" : "acm008755jsd", + "name" : "getSearchDatabaseContext" + }, + "acm008756jsd" : { + "type" : "ControlElement", + "id" : "acm008756jsd", + "name" : "keepOnTop" + }, + "acm008757jsd" : { + "type" : "ClassUnit", + "id" : "acm008757jsd", + "name" : "GlobalSearchResultDialogViewModel", + "compilationUnitId" : "acm008749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm021206jsd", "acm021267jsd" ], + "content" : [ "acm008754jsd", "acm008755jsd", "acm008756jsd" ] + }, + "acm008758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008758jsd", + "name" : "RebuildFulltextSearchIndexAction", + "parentId" : "acm008712jsd", + "content" : [ "acm008768jsd", "acm008770jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008759jsd" : { + "type" : "CodePackage", + "id" : "acm008759jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008760jsd" ] + }, + "acm008760jsd" : { + "type" : "CodePackage", + "id" : "acm008760jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008761jsd" ] + }, + "acm008761jsd" : { + "type" : "CodePackage", + "id" : "acm008761jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008762jsd" ] + }, + "acm008762jsd" : { + "type" : "CodePackage", + "id" : "acm008762jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008758jsd" ] + }, + "acm008763jsd" : { + "type" : "ControlElement", + "id" : "acm008763jsd", + "name" : "RebuildFulltextSearchIndexAction" + }, + "acm008764jsd" : { + "type" : "ControlElement", + "id" : "acm008764jsd", + "name" : "execute" + }, + "acm008765jsd" : { + "type" : "ControlElement", + "id" : "acm008765jsd", + "name" : "init" + }, + "acm008766jsd" : { + "type" : "ControlElement", + "id" : "acm008766jsd", + "name" : "rebuildIndex" + }, + "acm008767jsd" : { + "type" : "ControlElement", + "id" : "acm008767jsd", + "name" : "get" + }, + "acm008768jsd" : { + "type" : "ClassUnit", + "id" : "acm008768jsd", + "name" : "RebuildFulltextSearchIndexAction", + "compilationUnitId" : "acm008758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001965jsd", "acm002045jsd", "acm008770jsd", "acm018022jsd", "acm020848jsd" ], + "content" : [ "acm008763jsd", "acm008764jsd", "acm008765jsd", "acm008766jsd", "acm008767jsd" ] + }, + "acm008769jsd" : { + "type" : "ControlElement", + "id" : "acm008769jsd", + "name" : "get" + }, + "acm008770jsd" : { + "type" : "InterfaceUnit", + "id" : "acm008770jsd", + "name" : "GetCurrentLibraryTab", + "compilationUnitId" : "acm008758jsd", + "parentDatatypeId" : "acm008768jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd" ], + "content" : [ "acm008769jsd" ] + }, + "acm008771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008771jsd", + "name" : "SearchDisplayMode", + "parentId" : "acm008712jsd", + "content" : [ "acm008779jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008772jsd" : { + "type" : "CodePackage", + "id" : "acm008772jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008773jsd" ] + }, + "acm008773jsd" : { + "type" : "CodePackage", + "id" : "acm008773jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008774jsd" ] + }, + "acm008774jsd" : { + "type" : "CodePackage", + "id" : "acm008774jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008775jsd" ] + }, + "acm008775jsd" : { + "type" : "CodePackage", + "id" : "acm008775jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008771jsd" ] + }, + "acm008776jsd" : { + "type" : "ControlElement", + "id" : "acm008776jsd", + "name" : "SearchDisplayMode" + }, + "acm008777jsd" : { + "type" : "ControlElement", + "id" : "acm008777jsd", + "name" : "getDisplayName" + }, + "acm008778jsd" : { + "type" : "ControlElement", + "id" : "acm008778jsd", + "name" : "getToolTipText" + }, + "acm008779jsd" : { + "type" : "ClassUnit", + "id" : "acm008779jsd", + "name" : "SearchDisplayMode", + "compilationUnitId" : "acm008771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008776jsd", "acm008777jsd", "acm008778jsd" ] + }, + "acm008780jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008780jsd", + "name" : "SearchFieldRightClickMenu", + "parentId" : "acm008712jsd", + "content" : [ "acm008789jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008781jsd" : { + "type" : "CodePackage", + "id" : "acm008781jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008782jsd" ] + }, + "acm008782jsd" : { + "type" : "CodePackage", + "id" : "acm008782jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008783jsd" ] + }, + "acm008783jsd" : { + "type" : "CodePackage", + "id" : "acm008783jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008784jsd" ] + }, + "acm008784jsd" : { + "type" : "CodePackage", + "id" : "acm008784jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008780jsd" ] + }, + "acm008785jsd" : { + "type" : "ControlElement", + "id" : "acm008785jsd", + "name" : "create" + }, + "acm008786jsd" : { + "type" : "ControlElement", + "id" : "acm008786jsd", + "name" : "createSearchFromHistorySubMenu" + }, + "acm008787jsd" : { + "type" : "ControlElement", + "id" : "acm008787jsd", + "name" : "execute" + }, + "acm008788jsd" : { + "type" : "ControlElement", + "id" : "acm008788jsd", + "name" : "execute" + }, + "acm008789jsd" : { + "type" : "ClassUnit", + "id" : "acm008789jsd", + "name" : "SearchFieldRightClickMenu", + "compilationUnitId" : "acm008780jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm002087jsd", "acm002126jsd", "acm003312jsd", "acm005802jsd" ], + "content" : [ "acm008785jsd", "acm008786jsd", "acm008787jsd", "acm008788jsd" ] + }, + "acm008790jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008790jsd", + "name" : "SearchResultsTable", + "parentId" : "acm008712jsd", + "content" : [ "acm008796jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008791jsd" : { + "type" : "CodePackage", + "id" : "acm008791jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008792jsd" ] + }, + "acm008792jsd" : { + "type" : "CodePackage", + "id" : "acm008792jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008793jsd" ] + }, + "acm008793jsd" : { + "type" : "CodePackage", + "id" : "acm008793jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008794jsd" ] + }, + "acm008794jsd" : { + "type" : "CodePackage", + "id" : "acm008794jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008790jsd" ] + }, + "acm008795jsd" : { + "type" : "ControlElement", + "id" : "acm008795jsd", + "name" : "SearchResultsTable" + }, + "acm008796jsd" : { + "type" : "ClassUnit", + "id" : "acm008796jsd", + "name" : "SearchResultsTable", + "compilationUnitId" : "acm008790jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm006156jsd", "acm006205jsd", "acm006224jsd", "acm006317jsd", "acm006367jsd", "acm006395jsd", "acm006427jsd", "acm008806jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm008795jsd" ] + }, + "acm008797jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008797jsd", + "name" : "SearchResultsTableDataModel", + "parentId" : "acm008712jsd", + "content" : [ "acm008806jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008798jsd" : { + "type" : "CodePackage", + "id" : "acm008798jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008799jsd" ] + }, + "acm008799jsd" : { + "type" : "CodePackage", + "id" : "acm008799jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008800jsd" ] + }, + "acm008800jsd" : { + "type" : "CodePackage", + "id" : "acm008800jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008801jsd" ] + }, + "acm008801jsd" : { + "type" : "CodePackage", + "id" : "acm008801jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008797jsd" ] + }, + "acm008802jsd" : { + "type" : "ControlElement", + "id" : "acm008802jsd", + "name" : "SearchResultsTableDataModel" + }, + "acm008803jsd" : { + "type" : "ControlElement", + "id" : "acm008803jsd", + "name" : "isMatchedBySearch" + }, + "acm008804jsd" : { + "type" : "ControlElement", + "id" : "acm008804jsd", + "name" : "getEntriesFilteredAndSorted" + }, + "acm008805jsd" : { + "type" : "ControlElement", + "id" : "acm008805jsd", + "name" : "refresh" + }, + "acm008806jsd" : { + "type" : "ClassUnit", + "id" : "acm008806jsd", + "name" : "SearchResultsTableDataModel", + "compilationUnitId" : "acm008797jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm006156jsd", "acm006278jsd", "acm006330jsd", "acm016845jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm008802jsd", "acm008803jsd", "acm008804jsd", "acm008805jsd" ] + }, + "acm008807jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008807jsd", + "name" : "SearchTextField", + "parentId" : "acm008712jsd", + "content" : [ "acm008813jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008808jsd" : { + "type" : "CodePackage", + "id" : "acm008808jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008809jsd" ] + }, + "acm008809jsd" : { + "type" : "CodePackage", + "id" : "acm008809jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008810jsd" ] + }, + "acm008810jsd" : { + "type" : "CodePackage", + "id" : "acm008810jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008811jsd" ] + }, + "acm008811jsd" : { + "type" : "CodePackage", + "id" : "acm008811jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008807jsd" ] + }, + "acm008812jsd" : { + "type" : "ControlElement", + "id" : "acm008812jsd", + "name" : "create" + }, + "acm008813jsd" : { + "type" : "ClassUnit", + "id" : "acm008813jsd", + "name" : "SearchTextField", + "compilationUnitId" : "acm008807jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008812jsd" ] + }, + "acm008814jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008814jsd", + "name" : "ContainsAndRegexBasedSearchRuleDescriber", + "parentId" : "acm008820jsd", + "content" : [ "acm008824jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search", "rules", "describer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008815jsd" : { + "type" : "CodePackage", + "id" : "acm008815jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008816jsd" ] + }, + "acm008816jsd" : { + "type" : "CodePackage", + "id" : "acm008816jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008817jsd" ] + }, + "acm008817jsd" : { + "type" : "CodePackage", + "id" : "acm008817jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008818jsd" ] + }, + "acm008818jsd" : { + "type" : "CodePackage", + "id" : "acm008818jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008819jsd" ] + }, + "acm008819jsd" : { + "type" : "CodePackage", + "id" : "acm008819jsd", + "name" : "rules", + "parentId" : "acm008712jsd", + "content" : [ "acm008820jsd" ] + }, + "acm008820jsd" : { + "type" : "CodePackage", + "id" : "acm008820jsd", + "name" : "describer", + "parentId" : "acm008819jsd", + "content" : [ "acm008814jsd", "acm008825jsd", "acm008846jsd", "acm008855jsd" ] + }, + "acm008821jsd" : { + "type" : "ControlElement", + "id" : "acm008821jsd", + "name" : "ContainsAndRegexBasedSearchRuleDescriber" + }, + "acm008822jsd" : { + "type" : "ControlElement", + "id" : "acm008822jsd", + "name" : "getDescription" + }, + "acm008823jsd" : { + "type" : "ControlElement", + "id" : "acm008823jsd", + "name" : "getCaseSensitiveDescription" + }, + "acm008824jsd" : { + "type" : "ClassUnit", + "id" : "acm008824jsd", + "name" : "ContainsAndRegexBasedSearchRuleDescriber", + "compilationUnitId" : "acm008814jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm008854jsd" ], + "datatypeReferencesIds" : [ "acm009992jsd", "acm020473jsd", "acm020482jsd" ], + "content" : [ "acm008821jsd", "acm008822jsd", "acm008823jsd" ] + }, + "acm008825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008825jsd", + "name" : "GrammarBasedSearchRuleDescriber", + "parentId" : "acm008820jsd", + "content" : [ "acm008839jsd", "acm008845jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search", "rules", "describer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008826jsd" : { + "type" : "CodePackage", + "id" : "acm008826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008827jsd" ] + }, + "acm008827jsd" : { + "type" : "CodePackage", + "id" : "acm008827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008828jsd" ] + }, + "acm008828jsd" : { + "type" : "CodePackage", + "id" : "acm008828jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008829jsd" ] + }, + "acm008829jsd" : { + "type" : "CodePackage", + "id" : "acm008829jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008830jsd" ] + }, + "acm008830jsd" : { + "type" : "CodePackage", + "id" : "acm008830jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm008831jsd" ] + }, + "acm008831jsd" : { + "type" : "CodePackage", + "id" : "acm008831jsd", + "name" : "describer", + "parentId" : null, + "content" : [ "acm008825jsd" ] + }, + "acm008832jsd" : { + "type" : "ControlElement", + "id" : "acm008832jsd", + "name" : "GrammarBasedSearchRuleDescriber" + }, + "acm008833jsd" : { + "type" : "ControlElement", + "id" : "acm008833jsd", + "name" : "getDescription" + }, + "acm008834jsd" : { + "type" : "ControlElement", + "id" : "acm008834jsd", + "name" : "visitStart" + }, + "acm008835jsd" : { + "type" : "ControlElement", + "id" : "acm008835jsd", + "name" : "visitUnaryExpression" + }, + "acm008836jsd" : { + "type" : "ControlElement", + "id" : "acm008836jsd", + "name" : "visitParenExpression" + }, + "acm008837jsd" : { + "type" : "ControlElement", + "id" : "acm008837jsd", + "name" : "visitBinaryExpression" + }, + "acm008838jsd" : { + "type" : "ControlElement", + "id" : "acm008838jsd", + "name" : "visitComparison" + }, + "acm008839jsd" : { + "type" : "ClassUnit", + "id" : "acm008839jsd", + "name" : "GrammarBasedSearchRuleDescriber", + "compilationUnitId" : "acm008825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm008854jsd" ], + "datatypeReferencesIds" : [ "acm008824jsd", "acm008845jsd", "acm009992jsd", "acm020441jsd", "acm020473jsd" ], + "content" : [ "acm008832jsd", "acm008833jsd", "acm008834jsd", "acm008835jsd", "acm008836jsd", "acm008837jsd", "acm008838jsd" ] + }, + "acm008840jsd" : { + "type" : "ControlElement", + "id" : "acm008840jsd", + "name" : "visitStart" + }, + "acm008841jsd" : { + "type" : "ControlElement", + "id" : "acm008841jsd", + "name" : "visitUnaryExpression" + }, + "acm008842jsd" : { + "type" : "ControlElement", + "id" : "acm008842jsd", + "name" : "visitParenExpression" + }, + "acm008843jsd" : { + "type" : "ControlElement", + "id" : "acm008843jsd", + "name" : "visitBinaryExpression" + }, + "acm008844jsd" : { + "type" : "ControlElement", + "id" : "acm008844jsd", + "name" : "visitComparison" + }, + "acm008845jsd" : { + "type" : "ClassUnit", + "id" : "acm008845jsd", + "name" : "DescriptionSearchBaseVisitor", + "compilationUnitId" : "acm008825jsd", + "parentDatatypeId" : "acm008839jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008824jsd", "acm009992jsd", "acm020441jsd" ], + "content" : [ "acm008840jsd", "acm008841jsd", "acm008842jsd", "acm008843jsd", "acm008844jsd" ] + }, + "acm008846jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008846jsd", + "name" : "SearchDescriber", + "parentId" : "acm008820jsd", + "content" : [ "acm008854jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search", "rules", "describer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008847jsd" : { + "type" : "CodePackage", + "id" : "acm008847jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008848jsd" ] + }, + "acm008848jsd" : { + "type" : "CodePackage", + "id" : "acm008848jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008849jsd" ] + }, + "acm008849jsd" : { + "type" : "CodePackage", + "id" : "acm008849jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008850jsd" ] + }, + "acm008850jsd" : { + "type" : "CodePackage", + "id" : "acm008850jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008851jsd" ] + }, + "acm008851jsd" : { + "type" : "CodePackage", + "id" : "acm008851jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm008852jsd" ] + }, + "acm008852jsd" : { + "type" : "CodePackage", + "id" : "acm008852jsd", + "name" : "describer", + "parentId" : null, + "content" : [ "acm008846jsd" ] + }, + "acm008853jsd" : { + "type" : "ControlElement", + "id" : "acm008853jsd", + "name" : "getDescription" + }, + "acm008854jsd" : { + "type" : "InterfaceUnit", + "id" : "acm008854jsd", + "name" : "SearchDescriber", + "compilationUnitId" : "acm008846jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008853jsd" ] + }, + "acm008855jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008855jsd", + "name" : "SearchDescribers", + "parentId" : "acm008820jsd", + "content" : [ "acm008864jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "search", "rules", "describer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008856jsd" : { + "type" : "CodePackage", + "id" : "acm008856jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008857jsd" ] + }, + "acm008857jsd" : { + "type" : "CodePackage", + "id" : "acm008857jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008858jsd" ] + }, + "acm008858jsd" : { + "type" : "CodePackage", + "id" : "acm008858jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008859jsd" ] + }, + "acm008859jsd" : { + "type" : "CodePackage", + "id" : "acm008859jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008860jsd" ] + }, + "acm008860jsd" : { + "type" : "CodePackage", + "id" : "acm008860jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm008861jsd" ] + }, + "acm008861jsd" : { + "type" : "CodePackage", + "id" : "acm008861jsd", + "name" : "describer", + "parentId" : null, + "content" : [ "acm008855jsd" ] + }, + "acm008862jsd" : { + "type" : "ControlElement", + "id" : "acm008862jsd", + "name" : "SearchDescribers" + }, + "acm008863jsd" : { + "type" : "ControlElement", + "id" : "acm008863jsd", + "name" : "getSearchDescriberFor" + }, + "acm008864jsd" : { + "type" : "ClassUnit", + "id" : "acm008864jsd", + "name" : "SearchDescribers", + "compilationUnitId" : "acm008855jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008824jsd", "acm008839jsd", "acm008854jsd", "acm016845jsd", "acm020385jsd", "acm020424jsd", "acm020451jsd" ], + "content" : [ "acm008862jsd", "acm008863jsd" ] + }, + "acm008865jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008865jsd", + "name" : "ConnectToSharedDatabaseCommand", + "parentId" : "acm008869jsd", + "content" : [ "acm008872jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008866jsd" : { + "type" : "CodePackage", + "id" : "acm008866jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008867jsd" ] + }, + "acm008867jsd" : { + "type" : "CodePackage", + "id" : "acm008867jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008868jsd" ] + }, + "acm008868jsd" : { + "type" : "CodePackage", + "id" : "acm008868jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008869jsd" ] + }, + "acm008869jsd" : { + "type" : "CodePackage", + "id" : "acm008869jsd", + "name" : "shared", + "parentId" : "acm001569jsd", + "content" : [ "acm008865jsd", "acm008873jsd", "acm008881jsd", "acm008892jsd", "acm008928jsd" ] + }, + "acm008870jsd" : { + "type" : "ControlElement", + "id" : "acm008870jsd", + "name" : "ConnectToSharedDatabaseCommand" + }, + "acm008871jsd" : { + "type" : "ControlElement", + "id" : "acm008871jsd", + "name" : "execute" + }, + "acm008872jsd" : { + "type" : "ClassUnit", + "id" : "acm008872jsd", + "name" : "ConnectToSharedDatabaseCommand", + "compilationUnitId" : "acm008865jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm008891jsd" ], + "content" : [ "acm008870jsd", "acm008871jsd" ] + }, + "acm008873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008873jsd", + "name" : "PullChangesFromSharedAction", + "parentId" : "acm008869jsd", + "content" : [ "acm008880jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008874jsd" : { + "type" : "CodePackage", + "id" : "acm008874jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008875jsd" ] + }, + "acm008875jsd" : { + "type" : "CodePackage", + "id" : "acm008875jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008876jsd" ] + }, + "acm008876jsd" : { + "type" : "CodePackage", + "id" : "acm008876jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008877jsd" ] + }, + "acm008877jsd" : { + "type" : "CodePackage", + "id" : "acm008877jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm008873jsd" ] + }, + "acm008878jsd" : { + "type" : "ControlElement", + "id" : "acm008878jsd", + "name" : "PullChangesFromSharedAction" + }, + "acm008879jsd" : { + "type" : "ControlElement", + "id" : "acm008879jsd", + "name" : "execute" + }, + "acm008880jsd" : { + "type" : "ClassUnit", + "id" : "acm008880jsd", + "name" : "PullChangesFromSharedAction", + "compilationUnitId" : "acm008873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd" ], + "content" : [ "acm008878jsd", "acm008879jsd" ] + }, + "acm008881jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008881jsd", + "name" : "SharedDatabaseLoginDialogView", + "parentId" : "acm008869jsd", + "content" : [ "acm008891jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008882jsd" : { + "type" : "CodePackage", + "id" : "acm008882jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008883jsd" ] + }, + "acm008883jsd" : { + "type" : "CodePackage", + "id" : "acm008883jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008884jsd" ] + }, + "acm008884jsd" : { + "type" : "CodePackage", + "id" : "acm008884jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008885jsd" ] + }, + "acm008885jsd" : { + "type" : "CodePackage", + "id" : "acm008885jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm008881jsd" ] + }, + "acm008886jsd" : { + "type" : "ControlElement", + "id" : "acm008886jsd", + "name" : "SharedDatabaseLoginDialogView" + }, + "acm008887jsd" : { + "type" : "ControlElement", + "id" : "acm008887jsd", + "name" : "openDatabase" + }, + "acm008888jsd" : { + "type" : "ControlElement", + "id" : "acm008888jsd", + "name" : "initialize" + }, + "acm008889jsd" : { + "type" : "ControlElement", + "id" : "acm008889jsd", + "name" : "showSaveDbToFileDialog" + }, + "acm008890jsd" : { + "type" : "ControlElement", + "id" : "acm008890jsd", + "name" : "showOpenKeystoreFileDialog" + }, + "acm008891jsd" : { + "type" : "ClassUnit", + "id" : "acm008891jsd", + "name" : "SharedDatabaseLoginDialogView", + "compilationUnitId" : "acm008881jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm008927jsd", "acm009856jsd", "acm016978jsd", "acm021206jsd" ], + "content" : [ "acm008886jsd", "acm008887jsd", "acm008888jsd", "acm008889jsd", "acm008890jsd" ] + }, + "acm008892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008892jsd", + "name" : "SharedDatabaseLoginDialogViewModel", + "parentId" : "acm008869jsd", + "content" : [ "acm008927jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008893jsd" : { + "type" : "CodePackage", + "id" : "acm008893jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008894jsd" ] + }, + "acm008894jsd" : { + "type" : "CodePackage", + "id" : "acm008894jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008895jsd" ] + }, + "acm008895jsd" : { + "type" : "CodePackage", + "id" : "acm008895jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008896jsd" ] + }, + "acm008896jsd" : { + "type" : "CodePackage", + "id" : "acm008896jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm008892jsd" ] + }, + "acm008897jsd" : { + "type" : "ControlElement", + "id" : "acm008897jsd", + "name" : "SharedDatabaseLoginDialogViewModel" + }, + "acm008898jsd" : { + "type" : "ControlElement", + "id" : "acm008898jsd", + "name" : "openDatabase" + }, + "acm008899jsd" : { + "type" : "ControlElement", + "id" : "acm008899jsd", + "name" : "setupKeyStore" + }, + "acm008900jsd" : { + "type" : "ControlElement", + "id" : "acm008900jsd", + "name" : "openSharedDatabase" + }, + "acm008901jsd" : { + "type" : "ControlElement", + "id" : "acm008901jsd", + "name" : "setPreferences" + }, + "acm008902jsd" : { + "type" : "ControlElement", + "id" : "acm008902jsd", + "name" : "applyPreferences" + }, + "acm008903jsd" : { + "type" : "ControlElement", + "id" : "acm008903jsd", + "name" : "isSharedDatabaseAlreadyPresent" + }, + "acm008904jsd" : { + "type" : "ControlElement", + "id" : "acm008904jsd", + "name" : "showSaveDbToFileDialog" + }, + "acm008905jsd" : { + "type" : "ControlElement", + "id" : "acm008905jsd", + "name" : "showOpenKeystoreFileDialog" + }, + "acm008906jsd" : { + "type" : "ControlElement", + "id" : "acm008906jsd", + "name" : "databaseproperty" + }, + "acm008907jsd" : { + "type" : "ControlElement", + "id" : "acm008907jsd", + "name" : "hostProperty" + }, + "acm008908jsd" : { + "type" : "ControlElement", + "id" : "acm008908jsd", + "name" : "portProperty" + }, + "acm008909jsd" : { + "type" : "ControlElement", + "id" : "acm008909jsd", + "name" : "userProperty" + }, + "acm008910jsd" : { + "type" : "ControlElement", + "id" : "acm008910jsd", + "name" : "passwordProperty" + }, + "acm008911jsd" : { + "type" : "ControlElement", + "id" : "acm008911jsd", + "name" : "autosaveProperty" + }, + "acm008912jsd" : { + "type" : "ControlElement", + "id" : "acm008912jsd", + "name" : "rememberPasswordProperty" + }, + "acm008913jsd" : { + "type" : "ControlElement", + "id" : "acm008913jsd", + "name" : "folderProperty" + }, + "acm008914jsd" : { + "type" : "ControlElement", + "id" : "acm008914jsd", + "name" : "keyStoreProperty" + }, + "acm008915jsd" : { + "type" : "ControlElement", + "id" : "acm008915jsd", + "name" : "keyStorePasswordProperty" + }, + "acm008916jsd" : { + "type" : "ControlElement", + "id" : "acm008916jsd", + "name" : "useSSLProperty" + }, + "acm008917jsd" : { + "type" : "ControlElement", + "id" : "acm008917jsd", + "name" : "selectedDbmstypeProperty" + }, + "acm008918jsd" : { + "type" : "ControlElement", + "id" : "acm008918jsd", + "name" : "loadingProperty" + }, + "acm008919jsd" : { + "type" : "ControlElement", + "id" : "acm008919jsd", + "name" : "dbValidation" + }, + "acm008920jsd" : { + "type" : "ControlElement", + "id" : "acm008920jsd", + "name" : "hostValidation" + }, + "acm008921jsd" : { + "type" : "ControlElement", + "id" : "acm008921jsd", + "name" : "portValidation" + }, + "acm008922jsd" : { + "type" : "ControlElement", + "id" : "acm008922jsd", + "name" : "userValidation" + }, + "acm008923jsd" : { + "type" : "ControlElement", + "id" : "acm008923jsd", + "name" : "folderValidation" + }, + "acm008924jsd" : { + "type" : "ControlElement", + "id" : "acm008924jsd", + "name" : "keystoreValidation" + }, + "acm008925jsd" : { + "type" : "ControlElement", + "id" : "acm008925jsd", + "name" : "formValidation" + }, + "acm008926jsd" : { + "type" : "ControlElement", + "id" : "acm008926jsd", + "name" : "serverTimezoneProperty" + }, + "acm008927jsd" : { + "type" : "ClassUnit", + "id" : "acm008927jsd", + "name" : "SharedDatabaseLoginDialogViewModel", + "compilationUnitId" : "acm008892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm004040jsd", "acm008927jsd", "acm008939jsd", "acm009796jsd", "acm009809jsd", "acm016882jsd", "acm016899jsd", "acm016978jsd", "acm017016jsd", "acm017109jsd", "acm017193jsd", "acm017205jsd", "acm021206jsd" ], + "content" : [ "acm008897jsd", "acm008898jsd", "acm008899jsd", "acm008900jsd", "acm008901jsd", "acm008902jsd", "acm008903jsd", "acm008904jsd", "acm008905jsd", "acm008906jsd", "acm008907jsd", "acm008908jsd", "acm008909jsd", "acm008910jsd", "acm008911jsd", "acm008912jsd", "acm008913jsd", "acm008914jsd", "acm008915jsd", "acm008916jsd", "acm008917jsd", "acm008918jsd", "acm008919jsd", "acm008920jsd", "acm008921jsd", "acm008922jsd", "acm008923jsd", "acm008924jsd", "acm008925jsd", "acm008926jsd" ] + }, + "acm008928jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008928jsd", + "name" : "SharedDatabaseUIManager", + "parentId" : "acm008869jsd", + "content" : [ "acm008939jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008929jsd" : { + "type" : "CodePackage", + "id" : "acm008929jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008930jsd" ] + }, + "acm008930jsd" : { + "type" : "CodePackage", + "id" : "acm008930jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008931jsd" ] + }, + "acm008931jsd" : { + "type" : "CodePackage", + "id" : "acm008931jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008932jsd" ] + }, + "acm008932jsd" : { + "type" : "CodePackage", + "id" : "acm008932jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm008928jsd" ] + }, + "acm008933jsd" : { + "type" : "ControlElement", + "id" : "acm008933jsd", + "name" : "SharedDatabaseUIManager" + }, + "acm008934jsd" : { + "type" : "ControlElement", + "id" : "acm008934jsd", + "name" : "listen" + }, + "acm008935jsd" : { + "type" : "ControlElement", + "id" : "acm008935jsd", + "name" : "listen" + }, + "acm008936jsd" : { + "type" : "ControlElement", + "id" : "acm008936jsd", + "name" : "listen" + }, + "acm008937jsd" : { + "type" : "ControlElement", + "id" : "acm008937jsd", + "name" : "openNewSharedDatabaseTab" + }, + "acm008938jsd" : { + "type" : "ControlElement", + "id" : "acm008938jsd", + "name" : "openSharedDatabaseFromParserResult" + }, + "acm008939jsd" : { + "type" : "ClassUnit", + "id" : "acm008939jsd", + "name" : "SharedDatabaseUIManager", + "compilationUnitId" : "acm008928jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm003613jsd", "acm006570jsd", "acm008891jsd", "acm009466jsd", "acm012556jsd", "acm016859jsd", "acm016882jsd", "acm016966jsd", "acm017016jsd", "acm017030jsd", "acm017081jsd", "acm017090jsd", "acm017101jsd", "acm017109jsd", "acm017117jsd", "acm017193jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm008933jsd", "acm008934jsd", "acm008935jsd", "acm008936jsd", "acm008937jsd", "acm008938jsd" ] + }, + "acm008940jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008940jsd", + "name" : "GroupsSidePaneComponent", + "parentId" : "acm008944jsd", + "content" : [ "acm008948jsd", "acm008950jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008941jsd" : { + "type" : "CodePackage", + "id" : "acm008941jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008942jsd" ] + }, + "acm008942jsd" : { + "type" : "CodePackage", + "id" : "acm008942jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008943jsd" ] + }, + "acm008943jsd" : { + "type" : "CodePackage", + "id" : "acm008943jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008944jsd" ] + }, + "acm008944jsd" : { + "type" : "CodePackage", + "id" : "acm008944jsd", + "name" : "sidepane", + "parentId" : "acm001569jsd", + "content" : [ "acm008940jsd", "acm008951jsd", "acm008961jsd", "acm008971jsd", "acm008979jsd", "acm008989jsd", "acm009023jsd", "acm022072jsd" ] + }, + "acm008945jsd" : { + "type" : "ControlElement", + "id" : "acm008945jsd", + "name" : "GroupsSidePaneComponent" + }, + "acm008946jsd" : { + "type" : "ControlElement", + "id" : "acm008946jsd", + "name" : "setupIntersectionUnionToggle" + }, + "acm008947jsd" : { + "type" : "ControlElement", + "id" : "acm008947jsd", + "name" : "execute" + }, + "acm008948jsd" : { + "type" : "ClassUnit", + "id" : "acm008948jsd", + "name" : "GroupsSidePaneComponent", + "compilationUnitId" : "acm008940jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002126jsd", "acm005192jsd", "acm005211jsd", "acm008978jsd" ], + "content" : [ "acm008945jsd", "acm008946jsd", "acm008947jsd" ] + }, + "acm008949jsd" : { + "type" : "ControlElement", + "id" : "acm008949jsd", + "name" : "execute" + }, + "acm008950jsd" : { + "type" : "ClassUnit", + "id" : "acm008950jsd", + "name" : "ToggleUnionIntersectionAction", + "compilationUnitId" : "acm008940jsd", + "parentDatatypeId" : "acm008948jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005192jsd" ], + "content" : [ "acm008949jsd" ] + }, + "acm008951jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008951jsd", + "name" : "SidePane", + "parentId" : "acm008944jsd", + "content" : [ "acm008960jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008952jsd" : { + "type" : "CodePackage", + "id" : "acm008952jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008953jsd" ] + }, + "acm008953jsd" : { + "type" : "CodePackage", + "id" : "acm008953jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008954jsd" ] + }, + "acm008954jsd" : { + "type" : "CodePackage", + "id" : "acm008954jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008955jsd" ] + }, + "acm008955jsd" : { + "type" : "CodePackage", + "id" : "acm008955jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm008951jsd" ] + }, + "acm008956jsd" : { + "type" : "ControlElement", + "id" : "acm008956jsd", + "name" : "SidePane" + }, + "acm008957jsd" : { + "type" : "ControlElement", + "id" : "acm008957jsd", + "name" : "updateView" + }, + "acm008958jsd" : { + "type" : "ControlElement", + "id" : "acm008958jsd", + "name" : "paneVisibleBinding" + }, + "acm008959jsd" : { + "type" : "ControlElement", + "id" : "acm008959jsd", + "name" : "getToggleCommandFor" + }, + "acm008960jsd" : { + "type" : "ClassUnit", + "id" : "acm008960jsd", + "name" : "SidePane", + "compilationUnitId" : "acm008951jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002126jsd", "acm008970jsd", "acm008988jsd", "acm009010jsd", "acm009030jsd", "acm009965jsd", "acm021206jsd" ], + "content" : [ "acm008956jsd", "acm008957jsd", "acm008958jsd", "acm008959jsd" ] + }, + "acm008961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008961jsd", + "name" : "SidePaneComponent", + "parentId" : "acm008944jsd", + "content" : [ "acm008970jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008962jsd" : { + "type" : "CodePackage", + "id" : "acm008962jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008963jsd" ] + }, + "acm008963jsd" : { + "type" : "CodePackage", + "id" : "acm008963jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008964jsd" ] + }, + "acm008964jsd" : { + "type" : "CodePackage", + "id" : "acm008964jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008965jsd" ] + }, + "acm008965jsd" : { + "type" : "CodePackage", + "id" : "acm008965jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm008961jsd" ] + }, + "acm008966jsd" : { + "type" : "ControlElement", + "id" : "acm008966jsd", + "name" : "SidePaneComponent" + }, + "acm008967jsd" : { + "type" : "ControlElement", + "id" : "acm008967jsd", + "name" : "initialize" + }, + "acm008968jsd" : { + "type" : "ControlElement", + "id" : "acm008968jsd", + "name" : "createHeaderView" + }, + "acm008969jsd" : { + "type" : "ControlElement", + "id" : "acm008969jsd", + "name" : "addExtraButtonToHeader" + }, + "acm008970jsd" : { + "type" : "ClassUnit", + "id" : "acm008970jsd", + "name" : "SidePaneComponent", + "compilationUnitId" : "acm008961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002126jsd", "acm008978jsd", "acm008988jsd" ], + "content" : [ "acm008966jsd", "acm008967jsd", "acm008968jsd", "acm008969jsd" ] + }, + "acm008971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008971jsd", + "name" : "SidePaneContentFactory", + "parentId" : "acm008944jsd", + "content" : [ "acm008978jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008972jsd" : { + "type" : "CodePackage", + "id" : "acm008972jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008973jsd" ] + }, + "acm008973jsd" : { + "type" : "CodePackage", + "id" : "acm008973jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008974jsd" ] + }, + "acm008974jsd" : { + "type" : "CodePackage", + "id" : "acm008974jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008975jsd" ] + }, + "acm008975jsd" : { + "type" : "CodePackage", + "id" : "acm008975jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm008971jsd" ] + }, + "acm008976jsd" : { + "type" : "ControlElement", + "id" : "acm008976jsd", + "name" : "SidePaneContentFactory" + }, + "acm008977jsd" : { + "type" : "ControlElement", + "id" : "acm008977jsd", + "name" : "create" + }, + "acm008978jsd" : { + "type" : "ClassUnit", + "id" : "acm008978jsd", + "name" : "SidePaneContentFactory", + "compilationUnitId" : "acm008971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005148jsd", "acm005672jsd", "acm007303jsd", "acm008988jsd", "acm009965jsd", "acm021206jsd" ], + "content" : [ "acm008976jsd", "acm008977jsd" ] + }, + "acm008979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008979jsd", + "name" : "SidePaneType", + "parentId" : "acm008944jsd", + "content" : [ "acm008988jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008980jsd" : { + "type" : "CodePackage", + "id" : "acm008980jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008981jsd" ] + }, + "acm008981jsd" : { + "type" : "CodePackage", + "id" : "acm008981jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008982jsd" ] + }, + "acm008982jsd" : { + "type" : "CodePackage", + "id" : "acm008982jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008983jsd" ] + }, + "acm008983jsd" : { + "type" : "CodePackage", + "id" : "acm008983jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm008979jsd" ] + }, + "acm008984jsd" : { + "type" : "ControlElement", + "id" : "acm008984jsd", + "name" : "SidePaneType" + }, + "acm008985jsd" : { + "type" : "ControlElement", + "id" : "acm008985jsd", + "name" : "getTitle" + }, + "acm008986jsd" : { + "type" : "ControlElement", + "id" : "acm008986jsd", + "name" : "getIcon" + }, + "acm008987jsd" : { + "type" : "ControlElement", + "id" : "acm008987jsd", + "name" : "getToggleAction" + }, + "acm008988jsd" : { + "type" : "ClassUnit", + "id" : "acm008988jsd", + "name" : "SidePaneType", + "compilationUnitId" : "acm008979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm005416jsd" ], + "content" : [ "acm008984jsd", "acm008985jsd", "acm008986jsd", "acm008987jsd" ] + }, + "acm008989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008989jsd", + "name" : "SidePaneViewModel", + "parentId" : "acm008944jsd", + "content" : [ "acm009010jsd", "acm009013jsd", "acm009016jsd", "acm009019jsd", "acm009022jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008990jsd" : { + "type" : "CodePackage", + "id" : "acm008990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm008991jsd" ] + }, + "acm008991jsd" : { + "type" : "CodePackage", + "id" : "acm008991jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm008992jsd" ] + }, + "acm008992jsd" : { + "type" : "CodePackage", + "id" : "acm008992jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm008993jsd" ] + }, + "acm008993jsd" : { + "type" : "CodePackage", + "id" : "acm008993jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm008989jsd" ] + }, + "acm008994jsd" : { + "type" : "ControlElement", + "id" : "acm008994jsd", + "name" : "SidePaneViewModel" + }, + "acm008995jsd" : { + "type" : "ControlElement", + "id" : "acm008995jsd", + "name" : "getSidePaneComponent" + }, + "acm008996jsd" : { + "type" : "ControlElement", + "id" : "acm008996jsd", + "name" : "updatePreferredPositions" + }, + "acm008997jsd" : { + "type" : "ControlElement", + "id" : "acm008997jsd", + "name" : "moveUp" + }, + "acm008998jsd" : { + "type" : "ControlElement", + "id" : "acm008998jsd", + "name" : "moveDown" + }, + "acm008999jsd" : { + "type" : "ControlElement", + "id" : "acm008999jsd", + "name" : "show" + }, + "acm009000jsd" : { + "type" : "ControlElement", + "id" : "acm009000jsd", + "name" : "getPanes" + }, + "acm009001jsd" : { + "type" : "ControlElement", + "id" : "acm009001jsd", + "name" : "swap" + }, + "acm009002jsd" : { + "type" : "ControlElement", + "id" : "acm009002jsd", + "name" : "PreferredIndexSort" + }, + "acm009003jsd" : { + "type" : "ControlElement", + "id" : "acm009003jsd", + "name" : "compare" + }, + "acm009004jsd" : { + "type" : "ControlElement", + "id" : "acm009004jsd", + "name" : "MoveUpAction" + }, + "acm009005jsd" : { + "type" : "ControlElement", + "id" : "acm009005jsd", + "name" : "execute" + }, + "acm009006jsd" : { + "type" : "ControlElement", + "id" : "acm009006jsd", + "name" : "MoveDownAction" + }, + "acm009007jsd" : { + "type" : "ControlElement", + "id" : "acm009007jsd", + "name" : "execute" + }, + "acm009008jsd" : { + "type" : "ControlElement", + "id" : "acm009008jsd", + "name" : "ClosePaneAction" + }, + "acm009009jsd" : { + "type" : "ControlElement", + "id" : "acm009009jsd", + "name" : "execute" + }, + "acm009010jsd" : { + "type" : "ClassUnit", + "id" : "acm009010jsd", + "name" : "SidePaneViewModel", + "compilationUnitId" : "acm008989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm002126jsd", "acm008948jsd", "acm008970jsd", "acm008978jsd", "acm008988jsd", "acm009010jsd", "acm009013jsd", "acm009016jsd", "acm009019jsd", "acm009022jsd", "acm009965jsd", "acm021206jsd", "acm021279jsd" ], + "content" : [ "acm008994jsd", "acm008995jsd", "acm008996jsd", "acm008997jsd", "acm008998jsd", "acm008999jsd", "acm009000jsd", "acm009001jsd", "acm009002jsd", "acm009003jsd", "acm009004jsd", "acm009005jsd", "acm009006jsd", "acm009007jsd", "acm009008jsd", "acm009009jsd" ] + }, + "acm009011jsd" : { + "type" : "ControlElement", + "id" : "acm009011jsd", + "name" : "PreferredIndexSort" + }, + "acm009012jsd" : { + "type" : "ControlElement", + "id" : "acm009012jsd", + "name" : "compare" + }, + "acm009013jsd" : { + "type" : "ClassUnit", + "id" : "acm009013jsd", + "name" : "PreferredIndexSort", + "compilationUnitId" : "acm008989jsd", + "parentDatatypeId" : "acm009010jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008988jsd", "acm021279jsd" ], + "content" : [ "acm009011jsd", "acm009012jsd" ] + }, + "acm009014jsd" : { + "type" : "ControlElement", + "id" : "acm009014jsd", + "name" : "MoveUpAction" + }, + "acm009015jsd" : { + "type" : "ControlElement", + "id" : "acm009015jsd", + "name" : "execute" + }, + "acm009016jsd" : { + "type" : "ClassUnit", + "id" : "acm009016jsd", + "name" : "MoveUpAction", + "compilationUnitId" : "acm008989jsd", + "parentDatatypeId" : "acm009010jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008988jsd" ], + "content" : [ "acm009014jsd", "acm009015jsd" ] + }, + "acm009017jsd" : { + "type" : "ControlElement", + "id" : "acm009017jsd", + "name" : "MoveDownAction" + }, + "acm009018jsd" : { + "type" : "ControlElement", + "id" : "acm009018jsd", + "name" : "execute" + }, + "acm009019jsd" : { + "type" : "ClassUnit", + "id" : "acm009019jsd", + "name" : "MoveDownAction", + "compilationUnitId" : "acm008989jsd", + "parentDatatypeId" : "acm009010jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008988jsd" ], + "content" : [ "acm009017jsd", "acm009018jsd" ] + }, + "acm009020jsd" : { + "type" : "ControlElement", + "id" : "acm009020jsd", + "name" : "ClosePaneAction" + }, + "acm009021jsd" : { + "type" : "ControlElement", + "id" : "acm009021jsd", + "name" : "execute" + }, + "acm009022jsd" : { + "type" : "ClassUnit", + "id" : "acm009022jsd", + "name" : "ClosePaneAction", + "compilationUnitId" : "acm008989jsd", + "parentDatatypeId" : "acm009010jsd", + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008988jsd" ], + "content" : [ "acm009020jsd", "acm009021jsd" ] + }, + "acm009023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009023jsd", + "name" : "TogglePaneAction", + "parentId" : "acm008944jsd", + "content" : [ "acm009030jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009024jsd" : { + "type" : "CodePackage", + "id" : "acm009024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009025jsd" ] + }, + "acm009025jsd" : { + "type" : "CodePackage", + "id" : "acm009025jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009026jsd" ] + }, + "acm009026jsd" : { + "type" : "CodePackage", + "id" : "acm009026jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009027jsd" ] + }, + "acm009027jsd" : { + "type" : "CodePackage", + "id" : "acm009027jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm009023jsd" ] + }, + "acm009028jsd" : { + "type" : "ControlElement", + "id" : "acm009028jsd", + "name" : "TogglePaneAction" + }, + "acm009029jsd" : { + "type" : "ControlElement", + "id" : "acm009029jsd", + "name" : "execute" + }, + "acm009030jsd" : { + "type" : "ClassUnit", + "id" : "acm009030jsd", + "name" : "TogglePaneAction", + "compilationUnitId" : "acm009023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm008988jsd", "acm009013jsd", "acm021279jsd" ], + "content" : [ "acm009028jsd", "acm009029jsd" ] + }, + "acm009031jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009031jsd", + "name" : "EditExistingStudyAction", + "parentId" : "acm009035jsd", + "content" : [ "acm009038jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009032jsd" : { + "type" : "CodePackage", + "id" : "acm009032jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009033jsd" ] + }, + "acm009033jsd" : { + "type" : "CodePackage", + "id" : "acm009033jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009034jsd" ] + }, + "acm009034jsd" : { + "type" : "CodePackage", + "id" : "acm009034jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009035jsd" ] + }, + "acm009035jsd" : { + "type" : "CodePackage", + "id" : "acm009035jsd", + "name" : "slr", + "parentId" : "acm001569jsd", + "content" : [ "acm009031jsd", "acm009039jsd", "acm009050jsd", "acm009070jsd", "acm009093jsd", "acm009102jsd", "acm009111jsd", "acm022084jsd" ] + }, + "acm009036jsd" : { + "type" : "ControlElement", + "id" : "acm009036jsd", + "name" : "EditExistingStudyAction" + }, + "acm009037jsd" : { + "type" : "ControlElement", + "id" : "acm009037jsd", + "name" : "execute" + }, + "acm009038jsd" : { + "type" : "ClassUnit", + "id" : "acm009038jsd", + "name" : "EditExistingStudyAction", + "compilationUnitId" : "acm009031jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm009038jsd", "acm009069jsd", "acm011345jsd", "acm018022jsd", "acm020587jsd" ], + "content" : [ "acm009036jsd", "acm009037jsd" ] + }, + "acm009039jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009039jsd", + "name" : "ExistingStudySearchAction", + "parentId" : "acm009035jsd", + "content" : [ "acm009049jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009040jsd" : { + "type" : "CodePackage", + "id" : "acm009040jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009041jsd" ] + }, + "acm009041jsd" : { + "type" : "CodePackage", + "id" : "acm009041jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009042jsd" ] + }, + "acm009042jsd" : { + "type" : "CodePackage", + "id" : "acm009042jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009043jsd" ] + }, + "acm009043jsd" : { + "type" : "CodePackage", + "id" : "acm009043jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009039jsd" ] + }, + "acm009044jsd" : { + "type" : "ControlElement", + "id" : "acm009044jsd", + "name" : "ExistingStudySearchAction" + }, + "acm009045jsd" : { + "type" : "ControlElement", + "id" : "acm009045jsd", + "name" : "ExistingStudySearchAction" + }, + "acm009046jsd" : { + "type" : "ControlElement", + "id" : "acm009046jsd", + "name" : "execute" + }, + "acm009047jsd" : { + "type" : "ControlElement", + "id" : "acm009047jsd", + "name" : "crawl" + }, + "acm009048jsd" : { + "type" : "ControlElement", + "id" : "acm009048jsd", + "name" : "crawlPreparation" + }, + "acm009049jsd" : { + "type" : "ClassUnit", + "id" : "acm009049jsd", + "name" : "ExistingStudySearchAction", + "compilationUnitId" : "acm009039jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm005648jsd", "acm009049jsd", "acm009965jsd", "acm011283jsd", "acm012242jsd", "acm012515jsd", "acm018022jsd", "acm018333jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm009044jsd", "acm009045jsd", "acm009046jsd", "acm009047jsd", "acm009048jsd" ] + }, + "acm009050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009050jsd", + "name" : "ManageStudyDefinitionView", + "parentId" : "acm009035jsd", + "content" : [ "acm009069jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009051jsd" : { + "type" : "CodePackage", + "id" : "acm009051jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009052jsd" ] + }, + "acm009052jsd" : { + "type" : "CodePackage", + "id" : "acm009052jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009053jsd" ] + }, + "acm009053jsd" : { + "type" : "CodePackage", + "id" : "acm009053jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009054jsd" ] + }, + "acm009054jsd" : { + "type" : "CodePackage", + "id" : "acm009054jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009050jsd" ] + }, + "acm009055jsd" : { + "type" : "ControlElement", + "id" : "acm009055jsd", + "name" : "ManageStudyDefinitionView" + }, + "acm009056jsd" : { + "type" : "ControlElement", + "id" : "acm009056jsd", + "name" : "ManageStudyDefinitionView" + }, + "acm009057jsd" : { + "type" : "ControlElement", + "id" : "acm009057jsd", + "name" : "setupSaveSurveyButton" + }, + "acm009058jsd" : { + "type" : "ControlElement", + "id" : "acm009058jsd", + "name" : "initialize" + }, + "acm009059jsd" : { + "type" : "ControlElement", + "id" : "acm009059jsd", + "name" : "initAuthorTab" + }, + "acm009060jsd" : { + "type" : "ControlElement", + "id" : "acm009060jsd", + "name" : "initQuestionsTab" + }, + "acm009061jsd" : { + "type" : "ControlElement", + "id" : "acm009061jsd", + "name" : "initQueriesTab" + }, + "acm009062jsd" : { + "type" : "ControlElement", + "id" : "acm009062jsd", + "name" : "initDatabasesTab" + }, + "acm009063jsd" : { + "type" : "ControlElement", + "id" : "acm009063jsd", + "name" : "setupCommonPropertiesForTables" + }, + "acm009064jsd" : { + "type" : "ControlElement", + "id" : "acm009064jsd", + "name" : "setupCellFactories" + }, + "acm009065jsd" : { + "type" : "ControlElement", + "id" : "acm009065jsd", + "name" : "addAuthor" + }, + "acm009066jsd" : { + "type" : "ControlElement", + "id" : "acm009066jsd", + "name" : "addResearchQuestion" + }, + "acm009067jsd" : { + "type" : "ControlElement", + "id" : "acm009067jsd", + "name" : "addQuery" + }, + "acm009068jsd" : { + "type" : "ControlElement", + "id" : "acm009068jsd", + "name" : "selectStudyDirectory" + }, + "acm009069jsd" : { + "type" : "ClassUnit", + "id" : "acm009069jsd", + "name" : "ManageStudyDefinitionView", + "compilationUnitId" : "acm009050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009551jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009069jsd", "acm009092jsd", "acm009126jsd", "acm009346jsd", "acm009752jsd", "acm009756jsd", "acm010073jsd", "acm020587jsd", "acm021206jsd" ], + "content" : [ "acm009055jsd", "acm009056jsd", "acm009057jsd", "acm009058jsd", "acm009059jsd", "acm009060jsd", "acm009061jsd", "acm009062jsd", "acm009063jsd", "acm009064jsd", "acm009065jsd", "acm009066jsd", "acm009067jsd", "acm009068jsd" ] + }, + "acm009070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009070jsd", + "name" : "ManageStudyDefinitionViewModel", + "parentId" : "acm009035jsd", + "content" : [ "acm009092jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009071jsd" : { + "type" : "CodePackage", + "id" : "acm009071jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009072jsd" ] + }, + "acm009072jsd" : { + "type" : "CodePackage", + "id" : "acm009072jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009073jsd" ] + }, + "acm009073jsd" : { + "type" : "CodePackage", + "id" : "acm009073jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009074jsd" ] + }, + "acm009074jsd" : { + "type" : "CodePackage", + "id" : "acm009074jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009070jsd" ] + }, + "acm009075jsd" : { + "type" : "ControlElement", + "id" : "acm009075jsd", + "name" : "ManageStudyDefinitionViewModel" + }, + "acm009076jsd" : { + "type" : "ControlElement", + "id" : "acm009076jsd", + "name" : "ManageStudyDefinitionViewModel" + }, + "acm009077jsd" : { + "type" : "ControlElement", + "id" : "acm009077jsd", + "name" : "getTitle" + }, + "acm009078jsd" : { + "type" : "ControlElement", + "id" : "acm009078jsd", + "name" : "getDirectory" + }, + "acm009079jsd" : { + "type" : "ControlElement", + "id" : "acm009079jsd", + "name" : "getAuthors" + }, + "acm009080jsd" : { + "type" : "ControlElement", + "id" : "acm009080jsd", + "name" : "getResearchQuestions" + }, + "acm009081jsd" : { + "type" : "ControlElement", + "id" : "acm009081jsd", + "name" : "getQueries" + }, + "acm009082jsd" : { + "type" : "ControlElement", + "id" : "acm009082jsd", + "name" : "getDatabases" + }, + "acm009083jsd" : { + "type" : "ControlElement", + "id" : "acm009083jsd", + "name" : "addAuthor" + }, + "acm009084jsd" : { + "type" : "ControlElement", + "id" : "acm009084jsd", + "name" : "addResearchQuestion" + }, + "acm009085jsd" : { + "type" : "ControlElement", + "id" : "acm009085jsd", + "name" : "addQuery" + }, + "acm009086jsd" : { + "type" : "ControlElement", + "id" : "acm009086jsd", + "name" : "saveStudy" + }, + "acm009087jsd" : { + "type" : "ControlElement", + "id" : "acm009087jsd", + "name" : "titleProperty" + }, + "acm009088jsd" : { + "type" : "ControlElement", + "id" : "acm009088jsd", + "name" : "setStudyDirectory" + }, + "acm009089jsd" : { + "type" : "ControlElement", + "id" : "acm009089jsd", + "name" : "deleteAuthor" + }, + "acm009090jsd" : { + "type" : "ControlElement", + "id" : "acm009090jsd", + "name" : "deleteQuestion" + }, + "acm009091jsd" : { + "type" : "ControlElement", + "id" : "acm009091jsd", + "name" : "deleteQuery" + }, + "acm009092jsd" : { + "type" : "ClassUnit", + "id" : "acm009092jsd", + "name" : "ManageStudyDefinitionViewModel", + "compilationUnitId" : "acm009070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009092jsd", "acm009101jsd", "acm009126jsd", "acm011345jsd", "acm012231jsd", "acm012467jsd", "acm020587jsd", "acm020602jsd", "acm020615jsd" ], + "content" : [ "acm009075jsd", "acm009076jsd", "acm009077jsd", "acm009078jsd", "acm009079jsd", "acm009080jsd", "acm009081jsd", "acm009082jsd", "acm009083jsd", "acm009084jsd", "acm009085jsd", "acm009086jsd", "acm009087jsd", "acm009088jsd", "acm009089jsd", "acm009090jsd", "acm009091jsd" ] + }, + "acm009093jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009093jsd", + "name" : "SlrStudyAndDirectory", + "parentId" : "acm009035jsd", + "content" : [ "acm009101jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009094jsd" : { + "type" : "CodePackage", + "id" : "acm009094jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009095jsd" ] + }, + "acm009095jsd" : { + "type" : "CodePackage", + "id" : "acm009095jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009096jsd" ] + }, + "acm009096jsd" : { + "type" : "CodePackage", + "id" : "acm009096jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009097jsd" ] + }, + "acm009097jsd" : { + "type" : "CodePackage", + "id" : "acm009097jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009093jsd" ] + }, + "acm009098jsd" : { + "type" : "ControlElement", + "id" : "acm009098jsd", + "name" : "SlrStudyAndDirectory" + }, + "acm009099jsd" : { + "type" : "ControlElement", + "id" : "acm009099jsd", + "name" : "getStudyDirectory" + }, + "acm009100jsd" : { + "type" : "ControlElement", + "id" : "acm009100jsd", + "name" : "getStudy" + }, + "acm009101jsd" : { + "type" : "ClassUnit", + "id" : "acm009101jsd", + "name" : "SlrStudyAndDirectory", + "compilationUnitId" : "acm009093jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020587jsd" ], + "content" : [ "acm009098jsd", "acm009099jsd", "acm009100jsd" ] + }, + "acm009102jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009102jsd", + "name" : "StartNewStudyAction", + "parentId" : "acm009035jsd", + "content" : [ "acm009110jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009103jsd" : { + "type" : "CodePackage", + "id" : "acm009103jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009104jsd" ] + }, + "acm009104jsd" : { + "type" : "CodePackage", + "id" : "acm009104jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009105jsd" ] + }, + "acm009105jsd" : { + "type" : "CodePackage", + "id" : "acm009105jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009106jsd" ] + }, + "acm009106jsd" : { + "type" : "CodePackage", + "id" : "acm009106jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009102jsd" ] + }, + "acm009107jsd" : { + "type" : "ControlElement", + "id" : "acm009107jsd", + "name" : "StartNewStudyAction" + }, + "acm009108jsd" : { + "type" : "ControlElement", + "id" : "acm009108jsd", + "name" : "crawlPreparation" + }, + "acm009109jsd" : { + "type" : "ControlElement", + "id" : "acm009109jsd", + "name" : "execute" + }, + "acm009110jsd" : { + "type" : "ClassUnit", + "id" : "acm009110jsd", + "name" : "StartNewStudyAction", + "compilationUnitId" : "acm009102jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009049jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm002045jsd", "acm009069jsd", "acm009101jsd", "acm009110jsd", "acm009965jsd", "acm011345jsd", "acm012231jsd", "acm020587jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm009107jsd", "acm009108jsd", "acm009109jsd" ] + }, + "acm009111jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009111jsd", + "name" : "StudyDatabaseItem", + "parentId" : "acm009035jsd", + "content" : [ "acm009126jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009112jsd" : { + "type" : "CodePackage", + "id" : "acm009112jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009113jsd" ] + }, + "acm009113jsd" : { + "type" : "CodePackage", + "id" : "acm009113jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009114jsd" ] + }, + "acm009114jsd" : { + "type" : "CodePackage", + "id" : "acm009114jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009115jsd" ] + }, + "acm009115jsd" : { + "type" : "CodePackage", + "id" : "acm009115jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm009111jsd" ] + }, + "acm009116jsd" : { + "type" : "ControlElement", + "id" : "acm009116jsd", + "name" : "StudyDatabaseItem" + }, + "acm009117jsd" : { + "type" : "ControlElement", + "id" : "acm009117jsd", + "name" : "getName" + }, + "acm009118jsd" : { + "type" : "ControlElement", + "id" : "acm009118jsd", + "name" : "setName" + }, + "acm009119jsd" : { + "type" : "ControlElement", + "id" : "acm009119jsd", + "name" : "nameProperty" + }, + "acm009120jsd" : { + "type" : "ControlElement", + "id" : "acm009120jsd", + "name" : "isEnabled" + }, + "acm009121jsd" : { + "type" : "ControlElement", + "id" : "acm009121jsd", + "name" : "setEnabled" + }, + "acm009122jsd" : { + "type" : "ControlElement", + "id" : "acm009122jsd", + "name" : "enabledProperty" + }, + "acm009123jsd" : { + "type" : "ControlElement", + "id" : "acm009123jsd", + "name" : "toString" + }, + "acm009124jsd" : { + "type" : "ControlElement", + "id" : "acm009124jsd", + "name" : "equals" + }, + "acm009125jsd" : { + "type" : "ControlElement", + "id" : "acm009125jsd", + "name" : "hashCode" + }, + "acm009126jsd" : { + "type" : "ClassUnit", + "id" : "acm009126jsd", + "name" : "StudyDatabaseItem", + "compilationUnitId" : "acm009111jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009126jsd" ], + "content" : [ "acm009116jsd", "acm009117jsd", "acm009118jsd", "acm009119jsd", "acm009120jsd", "acm009121jsd", "acm009122jsd", "acm009123jsd", "acm009124jsd", "acm009125jsd" ] + }, + "acm009127jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009127jsd", + "name" : "SpecialFieldAction", + "parentId" : "acm009131jsd", + "content" : [ "acm009135jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "specialfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009128jsd" : { + "type" : "CodePackage", + "id" : "acm009128jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009129jsd" ] + }, + "acm009129jsd" : { + "type" : "CodePackage", + "id" : "acm009129jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009130jsd" ] + }, + "acm009130jsd" : { + "type" : "CodePackage", + "id" : "acm009130jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009131jsd" ] + }, + "acm009131jsd" : { + "type" : "CodePackage", + "id" : "acm009131jsd", + "name" : "specialfields", + "parentId" : "acm001569jsd", + "content" : [ "acm009127jsd", "acm009136jsd", "acm009145jsd", "acm009157jsd", "acm009173jsd" ] + }, + "acm009132jsd" : { + "type" : "ControlElement", + "id" : "acm009132jsd", + "name" : "SpecialFieldAction" + }, + "acm009133jsd" : { + "type" : "ControlElement", + "id" : "acm009133jsd", + "name" : "execute" + }, + "acm009134jsd" : { + "type" : "ControlElement", + "id" : "acm009134jsd", + "name" : "getTextDone" + }, + "acm009135jsd" : { + "type" : "ClassUnit", + "id" : "acm009135jsd", + "name" : "SpecialFieldAction", + "compilationUnitId" : "acm009127jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm009135jsd", "acm009172jsd", "acm009381jsd", "acm017884jsd", "acm018267jsd", "acm018770jsd", "acm021206jsd" ], + "content" : [ "acm009132jsd", "acm009133jsd", "acm009134jsd" ] + }, + "acm009136jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009136jsd", + "name" : "SpecialFieldMenuItemFactory", + "parentId" : "acm009131jsd", + "content" : [ "acm009144jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "specialfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009137jsd" : { + "type" : "CodePackage", + "id" : "acm009137jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009138jsd" ] + }, + "acm009138jsd" : { + "type" : "CodePackage", + "id" : "acm009138jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009139jsd" ] + }, + "acm009139jsd" : { + "type" : "CodePackage", + "id" : "acm009139jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009140jsd" ] + }, + "acm009140jsd" : { + "type" : "CodePackage", + "id" : "acm009140jsd", + "name" : "specialfields", + "parentId" : null, + "content" : [ "acm009136jsd" ] + }, + "acm009141jsd" : { + "type" : "ControlElement", + "id" : "acm009141jsd", + "name" : "getSpecialFieldSingleItem" + }, + "acm009142jsd" : { + "type" : "ControlElement", + "id" : "acm009142jsd", + "name" : "createSpecialFieldMenu" + }, + "acm009143jsd" : { + "type" : "ControlElement", + "id" : "acm009143jsd", + "name" : "createSpecialFieldMenu" + }, + "acm009144jsd" : { + "type" : "ClassUnit", + "id" : "acm009144jsd", + "name" : "SpecialFieldMenuItemFactory", + "compilationUnitId" : "acm009136jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002087jsd", "acm009156jsd", "acm009172jsd", "acm018770jsd", "acm018782jsd", "acm021206jsd" ], + "content" : [ "acm009141jsd", "acm009142jsd", "acm009143jsd" ] + }, + "acm009145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009145jsd", + "name" : "SpecialFieldValueViewModel", + "parentId" : "acm009131jsd", + "content" : [ "acm009156jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "specialfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009146jsd" : { + "type" : "CodePackage", + "id" : "acm009146jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009147jsd" ] + }, + "acm009147jsd" : { + "type" : "CodePackage", + "id" : "acm009147jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009148jsd" ] + }, + "acm009148jsd" : { + "type" : "CodePackage", + "id" : "acm009148jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009149jsd" ] + }, + "acm009149jsd" : { + "type" : "CodePackage", + "id" : "acm009149jsd", + "name" : "specialfields", + "parentId" : null, + "content" : [ "acm009145jsd" ] + }, + "acm009150jsd" : { + "type" : "ControlElement", + "id" : "acm009150jsd", + "name" : "SpecialFieldValueViewModel" + }, + "acm009151jsd" : { + "type" : "ControlElement", + "id" : "acm009151jsd", + "name" : "getValue" + }, + "acm009152jsd" : { + "type" : "ControlElement", + "id" : "acm009152jsd", + "name" : "getIcon" + }, + "acm009153jsd" : { + "type" : "ControlElement", + "id" : "acm009153jsd", + "name" : "getMenuString" + }, + "acm009154jsd" : { + "type" : "ControlElement", + "id" : "acm009154jsd", + "name" : "getToolTipText" + }, + "acm009155jsd" : { + "type" : "ControlElement", + "id" : "acm009155jsd", + "name" : "getAction" + }, + "acm009156jsd" : { + "type" : "ClassUnit", + "id" : "acm009156jsd", + "name" : "SpecialFieldValueViewModel", + "compilationUnitId" : "acm009145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002070jsd", "acm005416jsd", "acm018782jsd" ], + "content" : [ "acm009150jsd", "acm009151jsd", "acm009152jsd", "acm009153jsd", "acm009154jsd", "acm009155jsd" ] + }, + "acm009157jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009157jsd", + "name" : "SpecialFieldViewModel", + "parentId" : "acm009131jsd", + "content" : [ "acm009172jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "specialfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009158jsd" : { + "type" : "CodePackage", + "id" : "acm009158jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009159jsd" ] + }, + "acm009159jsd" : { + "type" : "CodePackage", + "id" : "acm009159jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009160jsd" ] + }, + "acm009160jsd" : { + "type" : "CodePackage", + "id" : "acm009160jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009161jsd" ] + }, + "acm009161jsd" : { + "type" : "CodePackage", + "id" : "acm009161jsd", + "name" : "specialfields", + "parentId" : null, + "content" : [ "acm009157jsd" ] + }, + "acm009162jsd" : { + "type" : "ControlElement", + "id" : "acm009162jsd", + "name" : "SpecialFieldViewModel" + }, + "acm009163jsd" : { + "type" : "ControlElement", + "id" : "acm009163jsd", + "name" : "getField" + }, + "acm009164jsd" : { + "type" : "ControlElement", + "id" : "acm009164jsd", + "name" : "getSpecialFieldAction" + }, + "acm009165jsd" : { + "type" : "ControlElement", + "id" : "acm009165jsd", + "name" : "getIcon" + }, + "acm009166jsd" : { + "type" : "ControlElement", + "id" : "acm009166jsd", + "name" : "getLocalization" + }, + "acm009167jsd" : { + "type" : "ControlElement", + "id" : "acm009167jsd", + "name" : "getAction" + }, + "acm009168jsd" : { + "type" : "ControlElement", + "id" : "acm009168jsd", + "name" : "getEmptyIcon" + }, + "acm009169jsd" : { + "type" : "ControlElement", + "id" : "acm009169jsd", + "name" : "getValues" + }, + "acm009170jsd" : { + "type" : "ControlElement", + "id" : "acm009170jsd", + "name" : "setSpecialFieldValue" + }, + "acm009171jsd" : { + "type" : "ControlElement", + "id" : "acm009171jsd", + "name" : "toggle" + }, + "acm009172jsd" : { + "type" : "ClassUnit", + "id" : "acm009172jsd", + "name" : "SpecialFieldViewModel", + "compilationUnitId" : "acm009157jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm002070jsd", "acm005416jsd", "acm009135jsd", "acm009156jsd", "acm017884jsd", "acm018267jsd", "acm018770jsd", "acm018782jsd", "acm021206jsd" ], + "content" : [ "acm009162jsd", "acm009163jsd", "acm009164jsd", "acm009165jsd", "acm009166jsd", "acm009167jsd", "acm009168jsd", "acm009169jsd", "acm009170jsd", "acm009171jsd" ] + }, + "acm009173jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009173jsd", + "name" : "SpecialFieldsPreferences", + "parentId" : "acm009131jsd", + "content" : [ "acm009182jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "specialfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009174jsd" : { + "type" : "CodePackage", + "id" : "acm009174jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009175jsd" ] + }, + "acm009175jsd" : { + "type" : "CodePackage", + "id" : "acm009175jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009176jsd" ] + }, + "acm009176jsd" : { + "type" : "CodePackage", + "id" : "acm009176jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009177jsd" ] + }, + "acm009177jsd" : { + "type" : "CodePackage", + "id" : "acm009177jsd", + "name" : "specialfields", + "parentId" : null, + "content" : [ "acm009173jsd" ] + }, + "acm009178jsd" : { + "type" : "ControlElement", + "id" : "acm009178jsd", + "name" : "SpecialFieldsPreferences" + }, + "acm009179jsd" : { + "type" : "ControlElement", + "id" : "acm009179jsd", + "name" : "isSpecialFieldsEnabled" + }, + "acm009180jsd" : { + "type" : "ControlElement", + "id" : "acm009180jsd", + "name" : "specialFieldsEnabledProperty" + }, + "acm009181jsd" : { + "type" : "ControlElement", + "id" : "acm009181jsd", + "name" : "setSpecialFieldsEnabled" + }, + "acm009182jsd" : { + "type" : "ClassUnit", + "id" : "acm009182jsd", + "name" : "SpecialFieldsPreferences", + "compilationUnitId" : "acm009173jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009178jsd", "acm009179jsd", "acm009180jsd", "acm009181jsd" ] + }, + "acm009183jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009183jsd", + "name" : "CitationsDisplay", + "parentId" : "acm009187jsd", + "content" : [ "acm009192jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009184jsd" : { + "type" : "CodePackage", + "id" : "acm009184jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009185jsd" ] + }, + "acm009185jsd" : { + "type" : "CodePackage", + "id" : "acm009185jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009186jsd" ] + }, + "acm009186jsd" : { + "type" : "CodePackage", + "id" : "acm009186jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009187jsd" ] + }, + "acm009187jsd" : { + "type" : "CodePackage", + "id" : "acm009187jsd", + "name" : "texparser", + "parentId" : "acm001569jsd", + "content" : [ "acm009183jsd", "acm009193jsd", "acm009201jsd", "acm009213jsd", "acm009232jsd", "acm009240jsd", "acm009252jsd" ] + }, + "acm009188jsd" : { + "type" : "ControlElement", + "id" : "acm009188jsd", + "name" : "CitationsDisplay" + }, + "acm009189jsd" : { + "type" : "ControlElement", + "id" : "acm009189jsd", + "name" : "basePathProperty" + }, + "acm009190jsd" : { + "type" : "ControlElement", + "id" : "acm009190jsd", + "name" : "getDisplayGraphic" + }, + "acm009191jsd" : { + "type" : "ControlElement", + "id" : "acm009191jsd", + "name" : "getDisplayTooltip" + }, + "acm009192jsd" : { + "type" : "ClassUnit", + "id" : "acm009192jsd", + "name" : "CitationsDisplay", + "compilationUnitId" : "acm009183jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010051jsd", "acm020631jsd" ], + "content" : [ "acm009188jsd", "acm009189jsd", "acm009190jsd", "acm009191jsd" ] + }, + "acm009193jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009193jsd", + "name" : "ParseLatexAction", + "parentId" : "acm009187jsd", + "content" : [ "acm009200jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009194jsd" : { + "type" : "CodePackage", + "id" : "acm009194jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009195jsd" ] + }, + "acm009195jsd" : { + "type" : "CodePackage", + "id" : "acm009195jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009196jsd" ] + }, + "acm009196jsd" : { + "type" : "CodePackage", + "id" : "acm009196jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009197jsd" ] + }, + "acm009197jsd" : { + "type" : "CodePackage", + "id" : "acm009197jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009193jsd" ] + }, + "acm009198jsd" : { + "type" : "ControlElement", + "id" : "acm009198jsd", + "name" : "ParseLatexAction" + }, + "acm009199jsd" : { + "type" : "ControlElement", + "id" : "acm009199jsd", + "name" : "execute" + }, + "acm009200jsd" : { + "type" : "ClassUnit", + "id" : "acm009200jsd", + "name" : "ParseLatexAction", + "compilationUnitId" : "acm009193jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm009212jsd", "acm018022jsd" ], + "content" : [ "acm009198jsd", "acm009199jsd" ] + }, + "acm009201jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009201jsd", + "name" : "ParseLatexDialogView", + "parentId" : "acm009187jsd", + "content" : [ "acm009212jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009202jsd" : { + "type" : "CodePackage", + "id" : "acm009202jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009203jsd" ] + }, + "acm009203jsd" : { + "type" : "CodePackage", + "id" : "acm009203jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009204jsd" ] + }, + "acm009204jsd" : { + "type" : "CodePackage", + "id" : "acm009204jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009205jsd" ] + }, + "acm009205jsd" : { + "type" : "CodePackage", + "id" : "acm009205jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009201jsd" ] + }, + "acm009206jsd" : { + "type" : "ControlElement", + "id" : "acm009206jsd", + "name" : "ParseLatexDialogView" + }, + "acm009207jsd" : { + "type" : "ControlElement", + "id" : "acm009207jsd", + "name" : "initialize" + }, + "acm009208jsd" : { + "type" : "ControlElement", + "id" : "acm009208jsd", + "name" : "browseButtonClicked" + }, + "acm009209jsd" : { + "type" : "ControlElement", + "id" : "acm009209jsd", + "name" : "searchButtonClicked" + }, + "acm009210jsd" : { + "type" : "ControlElement", + "id" : "acm009210jsd", + "name" : "selectAll" + }, + "acm009211jsd" : { + "type" : "ControlElement", + "id" : "acm009211jsd", + "name" : "unselectAll" + }, + "acm009212jsd" : { + "type" : "ClassUnit", + "id" : "acm009212jsd", + "name" : "ParseLatexDialogView", + "compilationUnitId" : "acm009201jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009231jsd", "acm009346jsd", "acm009843jsd", "acm009856jsd", "acm009965jsd", "acm010100jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm009206jsd", "acm009207jsd", "acm009208jsd", "acm009209jsd", "acm009210jsd", "acm009211jsd" ] + }, + "acm009213jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009213jsd", + "name" : "ParseLatexDialogViewModel", + "parentId" : "acm009187jsd", + "content" : [ "acm009231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009214jsd" : { + "type" : "CodePackage", + "id" : "acm009214jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009215jsd" ] + }, + "acm009215jsd" : { + "type" : "CodePackage", + "id" : "acm009215jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009216jsd" ] + }, + "acm009216jsd" : { + "type" : "CodePackage", + "id" : "acm009216jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009217jsd" ] + }, + "acm009217jsd" : { + "type" : "CodePackage", + "id" : "acm009217jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009213jsd" ] + }, + "acm009218jsd" : { + "type" : "ControlElement", + "id" : "acm009218jsd", + "name" : "ParseLatexDialogViewModel" + }, + "acm009219jsd" : { + "type" : "ControlElement", + "id" : "acm009219jsd", + "name" : "latexFileDirectoryProperty" + }, + "acm009220jsd" : { + "type" : "ControlElement", + "id" : "acm009220jsd", + "name" : "latexDirectoryValidation" + }, + "acm009221jsd" : { + "type" : "ControlElement", + "id" : "acm009221jsd", + "name" : "rootProperty" + }, + "acm009222jsd" : { + "type" : "ControlElement", + "id" : "acm009222jsd", + "name" : "getCheckedFileList" + }, + "acm009223jsd" : { + "type" : "ControlElement", + "id" : "acm009223jsd", + "name" : "noFilesFoundProperty" + }, + "acm009224jsd" : { + "type" : "ControlElement", + "id" : "acm009224jsd", + "name" : "searchInProgressProperty" + }, + "acm009225jsd" : { + "type" : "ControlElement", + "id" : "acm009225jsd", + "name" : "successfulSearchProperty" + }, + "acm009226jsd" : { + "type" : "ControlElement", + "id" : "acm009226jsd", + "name" : "browseButtonClicked" + }, + "acm009227jsd" : { + "type" : "ControlElement", + "id" : "acm009227jsd", + "name" : "searchButtonClicked" + }, + "acm009228jsd" : { + "type" : "ControlElement", + "id" : "acm009228jsd", + "name" : "handleFailure" + }, + "acm009229jsd" : { + "type" : "ControlElement", + "id" : "acm009229jsd", + "name" : "searchDirectory" + }, + "acm009230jsd" : { + "type" : "ControlElement", + "id" : "acm009230jsd", + "name" : "parseButtonClicked" + }, + "acm009231jsd" : { + "type" : "ClassUnit", + "id" : "acm009231jsd", + "name" : "ParseLatexDialogViewModel", + "compilationUnitId" : "acm009213jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009231jsd", "acm009752jsd", "acm009756jsd", "acm009843jsd", "acm009965jsd", "acm017238jsd", "acm018022jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm009218jsd", "acm009219jsd", "acm009220jsd", "acm009221jsd", "acm009222jsd", "acm009223jsd", "acm009224jsd", "acm009225jsd", "acm009226jsd", "acm009227jsd", "acm009228jsd", "acm009229jsd", "acm009230jsd" ] + }, + "acm009232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009232jsd", + "name" : "ParseLatexResultView", + "parentId" : "acm009187jsd", + "content" : [ "acm009239jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009233jsd" : { + "type" : "CodePackage", + "id" : "acm009233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009234jsd" ] + }, + "acm009234jsd" : { + "type" : "CodePackage", + "id" : "acm009234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009235jsd" ] + }, + "acm009235jsd" : { + "type" : "CodePackage", + "id" : "acm009235jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009236jsd" ] + }, + "acm009236jsd" : { + "type" : "CodePackage", + "id" : "acm009236jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009232jsd" ] + }, + "acm009237jsd" : { + "type" : "ControlElement", + "id" : "acm009237jsd", + "name" : "ParseLatexResultView" + }, + "acm009238jsd" : { + "type" : "ControlElement", + "id" : "acm009238jsd", + "name" : "initialize" + }, + "acm009239jsd" : { + "type" : "ClassUnit", + "id" : "acm009239jsd", + "name" : "ParseLatexResultView", + "compilationUnitId" : "acm009232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009192jsd", "acm009251jsd", "acm009262jsd", "acm009346jsd", "acm010051jsd", "acm018022jsd", "acm020646jsd" ], + "content" : [ "acm009237jsd", "acm009238jsd" ] + }, + "acm009240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009240jsd", + "name" : "ParseLatexResultViewModel", + "parentId" : "acm009187jsd", + "content" : [ "acm009251jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009241jsd" : { + "type" : "CodePackage", + "id" : "acm009241jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009242jsd" ] + }, + "acm009242jsd" : { + "type" : "CodePackage", + "id" : "acm009242jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009243jsd" ] + }, + "acm009243jsd" : { + "type" : "CodePackage", + "id" : "acm009243jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009244jsd" ] + }, + "acm009244jsd" : { + "type" : "CodePackage", + "id" : "acm009244jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009240jsd" ] + }, + "acm009245jsd" : { + "type" : "ControlElement", + "id" : "acm009245jsd", + "name" : "ParseLatexResultViewModel" + }, + "acm009246jsd" : { + "type" : "ControlElement", + "id" : "acm009246jsd", + "name" : "getReferenceList" + }, + "acm009247jsd" : { + "type" : "ControlElement", + "id" : "acm009247jsd", + "name" : "getCitationListByReference" + }, + "acm009248jsd" : { + "type" : "ControlElement", + "id" : "acm009248jsd", + "name" : "importButtonDisabledProperty" + }, + "acm009249jsd" : { + "type" : "ControlElement", + "id" : "acm009249jsd", + "name" : "activeReferenceChanged" + }, + "acm009250jsd" : { + "type" : "ControlElement", + "id" : "acm009250jsd", + "name" : "importButtonClicked" + }, + "acm009251jsd" : { + "type" : "ClassUnit", + "id" : "acm009251jsd", + "name" : "ParseLatexResultViewModel", + "compilationUnitId" : "acm009240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001570jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005539jsd", "acm009262jsd", "acm018022jsd", "acm020631jsd", "acm020646jsd" ], + "content" : [ "acm009245jsd", "acm009246jsd", "acm009247jsd", "acm009248jsd", "acm009249jsd", "acm009250jsd" ] + }, + "acm009252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009252jsd", + "name" : "ReferenceViewModel", + "parentId" : "acm009187jsd", + "content" : [ "acm009262jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009253jsd" : { + "type" : "CodePackage", + "id" : "acm009253jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009254jsd" ] + }, + "acm009254jsd" : { + "type" : "CodePackage", + "id" : "acm009254jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009255jsd" ] + }, + "acm009255jsd" : { + "type" : "CodePackage", + "id" : "acm009255jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009256jsd" ] + }, + "acm009256jsd" : { + "type" : "CodePackage", + "id" : "acm009256jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm009252jsd" ] + }, + "acm009257jsd" : { + "type" : "ControlElement", + "id" : "acm009257jsd", + "name" : "ReferenceViewModel" + }, + "acm009258jsd" : { + "type" : "ControlElement", + "id" : "acm009258jsd", + "name" : "isHighlighted" + }, + "acm009259jsd" : { + "type" : "ControlElement", + "id" : "acm009259jsd", + "name" : "getCitationList" + }, + "acm009260jsd" : { + "type" : "ControlElement", + "id" : "acm009260jsd", + "name" : "getDisplayText" + }, + "acm009261jsd" : { + "type" : "ControlElement", + "id" : "acm009261jsd", + "name" : "toString" + }, + "acm009262jsd" : { + "type" : "ClassUnit", + "id" : "acm009262jsd", + "name" : "ReferenceViewModel", + "compilationUnitId" : "acm009252jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020631jsd" ], + "content" : [ "acm009257jsd", "acm009258jsd", "acm009259jsd", "acm009260jsd", "acm009261jsd" ] + }, + "acm009263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009263jsd", + "name" : "StyleSheet", + "parentId" : "acm009267jsd", + "content" : [ "acm009274jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009264jsd" : { + "type" : "CodePackage", + "id" : "acm009264jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009265jsd" ] + }, + "acm009265jsd" : { + "type" : "CodePackage", + "id" : "acm009265jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009266jsd" ] + }, + "acm009266jsd" : { + "type" : "CodePackage", + "id" : "acm009266jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009267jsd" ] + }, + "acm009267jsd" : { + "type" : "CodePackage", + "id" : "acm009267jsd", + "name" : "theme", + "parentId" : "acm001569jsd", + "content" : [ "acm009263jsd", "acm009275jsd", "acm009286jsd", "acm009299jsd", "acm009310jsd", "acm009327jsd", "acm022093jsd", "acm022107jsd" ] + }, + "acm009268jsd" : { + "type" : "ControlElement", + "id" : "acm009268jsd", + "name" : "getSceneStylesheet" + }, + "acm009269jsd" : { + "type" : "ControlElement", + "id" : "acm009269jsd", + "name" : "getWebEngineStylesheet" + }, + "acm009270jsd" : { + "type" : "ControlElement", + "id" : "acm009270jsd", + "name" : "getWatchPath" + }, + "acm009271jsd" : { + "type" : "ControlElement", + "id" : "acm009271jsd", + "name" : "reload" + }, + "acm009272jsd" : { + "type" : "ControlElement", + "id" : "acm009272jsd", + "name" : "create" + }, + "acm009273jsd" : { + "type" : "ControlElement", + "id" : "acm009273jsd", + "name" : "toString" + }, + "acm009274jsd" : { + "type" : "ClassUnit", + "id" : "acm009274jsd", + "name" : "StyleSheet", + "compilationUnitId" : "acm009263jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001847jsd", "acm009274jsd", "acm009285jsd", "acm009298jsd", "acm009309jsd" ], + "content" : [ "acm009268jsd", "acm009269jsd", "acm009270jsd", "acm009271jsd", "acm009272jsd", "acm009273jsd" ] + }, + "acm009275jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009275jsd", + "name" : "StyleSheetDataUrl", + "parentId" : "acm009267jsd", + "content" : [ "acm009285jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009276jsd" : { + "type" : "CodePackage", + "id" : "acm009276jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009277jsd" ] + }, + "acm009277jsd" : { + "type" : "CodePackage", + "id" : "acm009277jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009278jsd" ] + }, + "acm009278jsd" : { + "type" : "CodePackage", + "id" : "acm009278jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009279jsd" ] + }, + "acm009279jsd" : { + "type" : "CodePackage", + "id" : "acm009279jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm009275jsd" ] + }, + "acm009280jsd" : { + "type" : "ControlElement", + "id" : "acm009280jsd", + "name" : "StyleSheetDataUrl" + }, + "acm009281jsd" : { + "type" : "ControlElement", + "id" : "acm009281jsd", + "name" : "getSceneStylesheet" + }, + "acm009282jsd" : { + "type" : "ControlElement", + "id" : "acm009282jsd", + "name" : "getWebEngineStylesheet" + }, + "acm009283jsd" : { + "type" : "ControlElement", + "id" : "acm009283jsd", + "name" : "reload" + }, + "acm009284jsd" : { + "type" : "ControlElement", + "id" : "acm009284jsd", + "name" : "toString" + }, + "acm009285jsd" : { + "type" : "ClassUnit", + "id" : "acm009285jsd", + "name" : "StyleSheetDataUrl", + "compilationUnitId" : "acm009275jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009274jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009280jsd", "acm009281jsd", "acm009282jsd", "acm009283jsd", "acm009284jsd" ] + }, + "acm009286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009286jsd", + "name" : "StyleSheetFile", + "parentId" : "acm009267jsd", + "content" : [ "acm009298jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009287jsd" : { + "type" : "CodePackage", + "id" : "acm009287jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009288jsd" ] + }, + "acm009288jsd" : { + "type" : "CodePackage", + "id" : "acm009288jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009289jsd" ] + }, + "acm009289jsd" : { + "type" : "CodePackage", + "id" : "acm009289jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009290jsd" ] + }, + "acm009290jsd" : { + "type" : "CodePackage", + "id" : "acm009290jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm009286jsd" ] + }, + "acm009291jsd" : { + "type" : "ControlElement", + "id" : "acm009291jsd", + "name" : "StyleSheetFile" + }, + "acm009292jsd" : { + "type" : "ControlElement", + "id" : "acm009292jsd", + "name" : "getWatchPath" + }, + "acm009293jsd" : { + "type" : "ControlElement", + "id" : "acm009293jsd", + "name" : "reload" + }, + "acm009294jsd" : { + "type" : "ControlElement", + "id" : "acm009294jsd", + "name" : "getSceneStylesheet" + }, + "acm009295jsd" : { + "type" : "ControlElement", + "id" : "acm009295jsd", + "name" : "getWebEngineStylesheet" + }, + "acm009296jsd" : { + "type" : "ControlElement", + "id" : "acm009296jsd", + "name" : "getDataUrl" + }, + "acm009297jsd" : { + "type" : "ControlElement", + "id" : "acm009297jsd", + "name" : "toString" + }, + "acm009298jsd" : { + "type" : "ClassUnit", + "id" : "acm009298jsd", + "name" : "StyleSheetFile", + "compilationUnitId" : "acm009286jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009274jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009298jsd" ], + "content" : [ "acm009291jsd", "acm009292jsd", "acm009293jsd", "acm009294jsd", "acm009295jsd", "acm009296jsd", "acm009297jsd" ] + }, + "acm009299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009299jsd", + "name" : "StyleSheetResource", + "parentId" : "acm009267jsd", + "content" : [ "acm009309jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009300jsd" : { + "type" : "CodePackage", + "id" : "acm009300jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009301jsd" ] + }, + "acm009301jsd" : { + "type" : "CodePackage", + "id" : "acm009301jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009302jsd" ] + }, + "acm009302jsd" : { + "type" : "CodePackage", + "id" : "acm009302jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009303jsd" ] + }, + "acm009303jsd" : { + "type" : "CodePackage", + "id" : "acm009303jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm009299jsd" ] + }, + "acm009304jsd" : { + "type" : "ControlElement", + "id" : "acm009304jsd", + "name" : "StyleSheetResource" + }, + "acm009305jsd" : { + "type" : "ControlElement", + "id" : "acm009305jsd", + "name" : "getSceneStylesheet" + }, + "acm009306jsd" : { + "type" : "ControlElement", + "id" : "acm009306jsd", + "name" : "getWebEngineStylesheet" + }, + "acm009307jsd" : { + "type" : "ControlElement", + "id" : "acm009307jsd", + "name" : "reload" + }, + "acm009308jsd" : { + "type" : "ControlElement", + "id" : "acm009308jsd", + "name" : "toString" + }, + "acm009309jsd" : { + "type" : "ClassUnit", + "id" : "acm009309jsd", + "name" : "StyleSheetResource", + "compilationUnitId" : "acm009299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009274jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009304jsd", "acm009305jsd", "acm009306jsd", "acm009307jsd", "acm009308jsd" ] + }, + "acm009310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009310jsd", + "name" : "Theme", + "parentId" : "acm009267jsd", + "content" : [ "acm009325jsd", "acm009326jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009311jsd" : { + "type" : "CodePackage", + "id" : "acm009311jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009312jsd" ] + }, + "acm009312jsd" : { + "type" : "CodePackage", + "id" : "acm009312jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009313jsd" ] + }, + "acm009313jsd" : { + "type" : "CodePackage", + "id" : "acm009313jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009314jsd" ] + }, + "acm009314jsd" : { + "type" : "CodePackage", + "id" : "acm009314jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm009310jsd" ] + }, + "acm009315jsd" : { + "type" : "ControlElement", + "id" : "acm009315jsd", + "name" : "Theme" + }, + "acm009316jsd" : { + "type" : "ControlElement", + "id" : "acm009316jsd", + "name" : "light" + }, + "acm009317jsd" : { + "type" : "ControlElement", + "id" : "acm009317jsd", + "name" : "dark" + }, + "acm009318jsd" : { + "type" : "ControlElement", + "id" : "acm009318jsd", + "name" : "custom" + }, + "acm009319jsd" : { + "type" : "ControlElement", + "id" : "acm009319jsd", + "name" : "getType" + }, + "acm009320jsd" : { + "type" : "ControlElement", + "id" : "acm009320jsd", + "name" : "getName" + }, + "acm009321jsd" : { + "type" : "ControlElement", + "id" : "acm009321jsd", + "name" : "getAdditionalStylesheet" + }, + "acm009322jsd" : { + "type" : "ControlElement", + "id" : "acm009322jsd", + "name" : "equals" + }, + "acm009323jsd" : { + "type" : "ControlElement", + "id" : "acm009323jsd", + "name" : "hashCode" + }, + "acm009324jsd" : { + "type" : "ControlElement", + "id" : "acm009324jsd", + "name" : "toString" + }, + "acm009325jsd" : { + "type" : "ClassUnit", + "id" : "acm009325jsd", + "name" : "Theme", + "compilationUnitId" : "acm009310jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009274jsd", "acm009325jsd", "acm009326jsd" ], + "content" : [ "acm009315jsd", "acm009316jsd", "acm009317jsd", "acm009318jsd", "acm009319jsd", "acm009320jsd", "acm009321jsd", "acm009322jsd", "acm009323jsd", "acm009324jsd" ] + }, + "acm009326jsd" : { + "type" : "ClassUnit", + "id" : "acm009326jsd", + "name" : "Type", + "compilationUnitId" : "acm009310jsd", + "parentDatatypeId" : "acm009325jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009327jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009327jsd", + "name" : "ThemeManager", + "parentId" : "acm009267jsd", + "content" : [ "acm009346jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009328jsd" : { + "type" : "CodePackage", + "id" : "acm009328jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009329jsd" ] + }, + "acm009329jsd" : { + "type" : "CodePackage", + "id" : "acm009329jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009330jsd" ] + }, + "acm009330jsd" : { + "type" : "CodePackage", + "id" : "acm009330jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009331jsd" ] + }, + "acm009331jsd" : { + "type" : "CodePackage", + "id" : "acm009331jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm009327jsd" ] + }, + "acm009332jsd" : { + "type" : "ControlElement", + "id" : "acm009332jsd", + "name" : "ThemeManager" + }, + "acm009333jsd" : { + "type" : "ControlElement", + "id" : "acm009333jsd", + "name" : "updateThemeSettings" + }, + "acm009334jsd" : { + "type" : "ControlElement", + "id" : "acm009334jsd", + "name" : "updateFontSettings" + }, + "acm009335jsd" : { + "type" : "ControlElement", + "id" : "acm009335jsd", + "name" : "removeStylesheetFromWatchList" + }, + "acm009336jsd" : { + "type" : "ControlElement", + "id" : "acm009336jsd", + "name" : "addStylesheetToWatchlist" + }, + "acm009337jsd" : { + "type" : "ControlElement", + "id" : "acm009337jsd", + "name" : "baseCssLiveUpdate" + }, + "acm009338jsd" : { + "type" : "ControlElement", + "id" : "acm009338jsd", + "name" : "additionalCssLiveUpdate" + }, + "acm009339jsd" : { + "type" : "ControlElement", + "id" : "acm009339jsd", + "name" : "updateBaseCss" + }, + "acm009340jsd" : { + "type" : "ControlElement", + "id" : "acm009340jsd", + "name" : "updateAdditionalCss" + }, + "acm009341jsd" : { + "type" : "ControlElement", + "id" : "acm009341jsd", + "name" : "installCss" + }, + "acm009342jsd" : { + "type" : "ControlElement", + "id" : "acm009342jsd", + "name" : "installCss" + }, + "acm009343jsd" : { + "type" : "ControlElement", + "id" : "acm009343jsd", + "name" : "updateFontStyle" + }, + "acm009344jsd" : { + "type" : "ControlElement", + "id" : "acm009344jsd", + "name" : "getActiveTheme" + }, + "acm009345jsd" : { + "type" : "ControlElement", + "id" : "acm009345jsd", + "name" : "getMainWindowScene" + }, + "acm009346jsd" : { + "type" : "ClassUnit", + "id" : "acm009346jsd", + "name" : "ThemeManager", + "compilationUnitId" : "acm009327jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009274jsd", "acm009325jsd", "acm009346jsd", "acm020683jsd", "acm020693jsd", "acm020765jsd" ], + "content" : [ "acm009332jsd", "acm009333jsd", "acm009334jsd", "acm009335jsd", "acm009336jsd", "acm009337jsd", "acm009338jsd", "acm009339jsd", "acm009340jsd", "acm009341jsd", "acm009342jsd", "acm009343jsd", "acm009344jsd", "acm009345jsd" ] + }, + "acm009347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009347jsd", + "name" : "AbstractUndoableJabRefEdit", + "parentId" : "acm009351jsd", + "content" : [ "acm009354jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009348jsd" : { + "type" : "CodePackage", + "id" : "acm009348jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009349jsd" ] + }, + "acm009349jsd" : { + "type" : "CodePackage", + "id" : "acm009349jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009350jsd" ] + }, + "acm009350jsd" : { + "type" : "CodePackage", + "id" : "acm009350jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009351jsd" ] + }, + "acm009351jsd" : { + "type" : "CodePackage", + "id" : "acm009351jsd", + "name" : "undo", + "parentId" : "acm001569jsd", + "content" : [ "acm009347jsd", "acm009355jsd", "acm009370jsd", "acm009382jsd", "acm009390jsd", "acm009401jsd", "acm009412jsd", "acm009424jsd", "acm009434jsd", "acm009445jsd", "acm009455jsd", "acm009467jsd", "acm009477jsd" ] + }, + "acm009352jsd" : { + "type" : "ControlElement", + "id" : "acm009352jsd", + "name" : "getUndoPresentationName" + }, + "acm009353jsd" : { + "type" : "ControlElement", + "id" : "acm009353jsd", + "name" : "getRedoPresentationName" + }, + "acm009354jsd" : { + "type" : "ClassUnit", + "id" : "acm009354jsd", + "name" : "AbstractUndoableJabRefEdit", + "compilationUnitId" : "acm009347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009352jsd", "acm009353jsd" ] + }, + "acm009355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009355jsd", + "name" : "CountingUndoManager", + "parentId" : "acm009351jsd", + "content" : [ "acm009369jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009356jsd" : { + "type" : "CodePackage", + "id" : "acm009356jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009357jsd" ] + }, + "acm009357jsd" : { + "type" : "CodePackage", + "id" : "acm009357jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009358jsd" ] + }, + "acm009358jsd" : { + "type" : "CodePackage", + "id" : "acm009358jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009359jsd" ] + }, + "acm009359jsd" : { + "type" : "CodePackage", + "id" : "acm009359jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009355jsd" ] + }, + "acm009360jsd" : { + "type" : "ControlElement", + "id" : "acm009360jsd", + "name" : "addEdit" + }, + "acm009361jsd" : { + "type" : "ControlElement", + "id" : "acm009361jsd", + "name" : "undo" + }, + "acm009362jsd" : { + "type" : "ControlElement", + "id" : "acm009362jsd", + "name" : "redo" + }, + "acm009363jsd" : { + "type" : "ControlElement", + "id" : "acm009363jsd", + "name" : "markUnchanged" + }, + "acm009364jsd" : { + "type" : "ControlElement", + "id" : "acm009364jsd", + "name" : "hasChanged" + }, + "acm009365jsd" : { + "type" : "ControlElement", + "id" : "acm009365jsd", + "name" : "registerListener" + }, + "acm009366jsd" : { + "type" : "ControlElement", + "id" : "acm009366jsd", + "name" : "unregisterListener" + }, + "acm009367jsd" : { + "type" : "ControlElement", + "id" : "acm009367jsd", + "name" : "postUndoRedoEvent" + }, + "acm009368jsd" : { + "type" : "ControlElement", + "id" : "acm009368jsd", + "name" : "postAddUndoEvent" + }, + "acm009369jsd" : { + "type" : "ClassUnit", + "id" : "acm009369jsd", + "name" : "CountingUndoManager", + "compilationUnitId" : "acm009355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017245jsd", "acm017263jsd" ], + "content" : [ "acm009360jsd", "acm009361jsd", "acm009362jsd", "acm009363jsd", "acm009364jsd", "acm009365jsd", "acm009366jsd", "acm009367jsd", "acm009368jsd" ] + }, + "acm009370jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009370jsd", + "name" : "NamedCompound", + "parentId" : "acm009351jsd", + "content" : [ "acm009381jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009371jsd" : { + "type" : "CodePackage", + "id" : "acm009371jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009372jsd" ] + }, + "acm009372jsd" : { + "type" : "CodePackage", + "id" : "acm009372jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009373jsd" ] + }, + "acm009373jsd" : { + "type" : "CodePackage", + "id" : "acm009373jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009374jsd" ] + }, + "acm009374jsd" : { + "type" : "CodePackage", + "id" : "acm009374jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009370jsd" ] + }, + "acm009375jsd" : { + "type" : "ControlElement", + "id" : "acm009375jsd", + "name" : "NamedCompound" + }, + "acm009376jsd" : { + "type" : "ControlElement", + "id" : "acm009376jsd", + "name" : "addEdit" + }, + "acm009377jsd" : { + "type" : "ControlElement", + "id" : "acm009377jsd", + "name" : "hasEdits" + }, + "acm009378jsd" : { + "type" : "ControlElement", + "id" : "acm009378jsd", + "name" : "getUndoPresentationName" + }, + "acm009379jsd" : { + "type" : "ControlElement", + "id" : "acm009379jsd", + "name" : "getRedoPresentationName" + }, + "acm009380jsd" : { + "type" : "ControlElement", + "id" : "acm009380jsd", + "name" : "getPresentationName" + }, + "acm009381jsd" : { + "type" : "ClassUnit", + "id" : "acm009381jsd", + "name" : "NamedCompound", + "compilationUnitId" : "acm009370jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009375jsd", "acm009376jsd", "acm009377jsd", "acm009378jsd", "acm009379jsd", "acm009380jsd" ] + }, + "acm009382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009382jsd", + "name" : "UndoRedoAction", + "parentId" : "acm009351jsd", + "content" : [ "acm009389jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009383jsd" : { + "type" : "CodePackage", + "id" : "acm009383jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009384jsd" ] + }, + "acm009384jsd" : { + "type" : "CodePackage", + "id" : "acm009384jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009385jsd" ] + }, + "acm009385jsd" : { + "type" : "CodePackage", + "id" : "acm009385jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009386jsd" ] + }, + "acm009386jsd" : { + "type" : "CodePackage", + "id" : "acm009386jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009382jsd" ] + }, + "acm009387jsd" : { + "type" : "ControlElement", + "id" : "acm009387jsd", + "name" : "UndoRedoAction" + }, + "acm009388jsd" : { + "type" : "ControlElement", + "id" : "acm009388jsd", + "name" : "execute" + }, + "acm009389jsd" : { + "type" : "ClassUnit", + "id" : "acm009389jsd", + "name" : "UndoRedoAction", + "compilationUnitId" : "acm009382jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002126jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm002045jsd", "acm002150jsd", "acm009389jsd" ], + "content" : [ "acm009387jsd", "acm009388jsd" ] + }, + "acm009390jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009390jsd", + "name" : "UndoableChangeType", + "parentId" : "acm009351jsd", + "content" : [ "acm009400jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009391jsd" : { + "type" : "CodePackage", + "id" : "acm009391jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009392jsd" ] + }, + "acm009392jsd" : { + "type" : "CodePackage", + "id" : "acm009392jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009393jsd" ] + }, + "acm009393jsd" : { + "type" : "CodePackage", + "id" : "acm009393jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009394jsd" ] + }, + "acm009394jsd" : { + "type" : "CodePackage", + "id" : "acm009394jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009390jsd" ] + }, + "acm009395jsd" : { + "type" : "ControlElement", + "id" : "acm009395jsd", + "name" : "UndoableChangeType" + }, + "acm009396jsd" : { + "type" : "ControlElement", + "id" : "acm009396jsd", + "name" : "UndoableChangeType" + }, + "acm009397jsd" : { + "type" : "ControlElement", + "id" : "acm009397jsd", + "name" : "getPresentationName" + }, + "acm009398jsd" : { + "type" : "ControlElement", + "id" : "acm009398jsd", + "name" : "undo" + }, + "acm009399jsd" : { + "type" : "ControlElement", + "id" : "acm009399jsd", + "name" : "redo" + }, + "acm009400jsd" : { + "type" : "ClassUnit", + "id" : "acm009400jsd", + "name" : "UndoableChangeType", + "compilationUnitId" : "acm009390jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm009395jsd", "acm009396jsd", "acm009397jsd", "acm009398jsd", "acm009399jsd" ] + }, + "acm009401jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009401jsd", + "name" : "UndoableFieldChange", + "parentId" : "acm009351jsd", + "content" : [ "acm009411jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009402jsd" : { + "type" : "CodePackage", + "id" : "acm009402jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009403jsd" ] + }, + "acm009403jsd" : { + "type" : "CodePackage", + "id" : "acm009403jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009404jsd" ] + }, + "acm009404jsd" : { + "type" : "CodePackage", + "id" : "acm009404jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009405jsd" ] + }, + "acm009405jsd" : { + "type" : "CodePackage", + "id" : "acm009405jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009401jsd" ] + }, + "acm009406jsd" : { + "type" : "ControlElement", + "id" : "acm009406jsd", + "name" : "UndoableFieldChange" + }, + "acm009407jsd" : { + "type" : "ControlElement", + "id" : "acm009407jsd", + "name" : "UndoableFieldChange" + }, + "acm009408jsd" : { + "type" : "ControlElement", + "id" : "acm009408jsd", + "name" : "getPresentationName" + }, + "acm009409jsd" : { + "type" : "ControlElement", + "id" : "acm009409jsd", + "name" : "undo" + }, + "acm009410jsd" : { + "type" : "ControlElement", + "id" : "acm009410jsd", + "name" : "redo" + }, + "acm009411jsd" : { + "type" : "ClassUnit", + "id" : "acm009411jsd", + "name" : "UndoableFieldChange", + "compilationUnitId" : "acm009401jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009411jsd", "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm009406jsd", "acm009407jsd", "acm009408jsd", "acm009409jsd", "acm009410jsd" ] + }, + "acm009412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009412jsd", + "name" : "UndoableInsertEntries", + "parentId" : "acm009351jsd", + "content" : [ "acm009423jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009413jsd" : { + "type" : "CodePackage", + "id" : "acm009413jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009414jsd" ] + }, + "acm009414jsd" : { + "type" : "CodePackage", + "id" : "acm009414jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009415jsd" ] + }, + "acm009415jsd" : { + "type" : "CodePackage", + "id" : "acm009415jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009416jsd" ] + }, + "acm009416jsd" : { + "type" : "CodePackage", + "id" : "acm009416jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009412jsd" ] + }, + "acm009417jsd" : { + "type" : "ControlElement", + "id" : "acm009417jsd", + "name" : "UndoableInsertEntries" + }, + "acm009418jsd" : { + "type" : "ControlElement", + "id" : "acm009418jsd", + "name" : "UndoableInsertEntries" + }, + "acm009419jsd" : { + "type" : "ControlElement", + "id" : "acm009419jsd", + "name" : "UndoableInsertEntries" + }, + "acm009420jsd" : { + "type" : "ControlElement", + "id" : "acm009420jsd", + "name" : "getPresentationName" + }, + "acm009421jsd" : { + "type" : "ControlElement", + "id" : "acm009421jsd", + "name" : "undo" + }, + "acm009422jsd" : { + "type" : "ControlElement", + "id" : "acm009422jsd", + "name" : "redo" + }, + "acm009423jsd" : { + "type" : "ClassUnit", + "id" : "acm009423jsd", + "name" : "UndoableInsertEntries", + "compilationUnitId" : "acm009412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009423jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm009417jsd", "acm009418jsd", "acm009419jsd", "acm009420jsd", "acm009421jsd", "acm009422jsd" ] + }, + "acm009424jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009424jsd", + "name" : "UndoableInsertString", + "parentId" : "acm009351jsd", + "content" : [ "acm009433jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009425jsd" : { + "type" : "CodePackage", + "id" : "acm009425jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009426jsd" ] + }, + "acm009426jsd" : { + "type" : "CodePackage", + "id" : "acm009426jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009427jsd" ] + }, + "acm009427jsd" : { + "type" : "CodePackage", + "id" : "acm009427jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009428jsd" ] + }, + "acm009428jsd" : { + "type" : "CodePackage", + "id" : "acm009428jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009424jsd" ] + }, + "acm009429jsd" : { + "type" : "ControlElement", + "id" : "acm009429jsd", + "name" : "UndoableInsertString" + }, + "acm009430jsd" : { + "type" : "ControlElement", + "id" : "acm009430jsd", + "name" : "getPresentationName" + }, + "acm009431jsd" : { + "type" : "ControlElement", + "id" : "acm009431jsd", + "name" : "undo" + }, + "acm009432jsd" : { + "type" : "ControlElement", + "id" : "acm009432jsd", + "name" : "redo" + }, + "acm009433jsd" : { + "type" : "ClassUnit", + "id" : "acm009433jsd", + "name" : "UndoableInsertString", + "compilationUnitId" : "acm009424jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009433jsd", "acm017988jsd", "acm018071jsd", "acm018367jsd" ], + "content" : [ "acm009429jsd", "acm009430jsd", "acm009431jsd", "acm009432jsd" ] + }, + "acm009434jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009434jsd", + "name" : "UndoableKeyChange", + "parentId" : "acm009351jsd", + "content" : [ "acm009444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009435jsd" : { + "type" : "CodePackage", + "id" : "acm009435jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009436jsd" ] + }, + "acm009436jsd" : { + "type" : "CodePackage", + "id" : "acm009436jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009437jsd" ] + }, + "acm009437jsd" : { + "type" : "CodePackage", + "id" : "acm009437jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009438jsd" ] + }, + "acm009438jsd" : { + "type" : "CodePackage", + "id" : "acm009438jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009434jsd" ] + }, + "acm009439jsd" : { + "type" : "ControlElement", + "id" : "acm009439jsd", + "name" : "UndoableKeyChange" + }, + "acm009440jsd" : { + "type" : "ControlElement", + "id" : "acm009440jsd", + "name" : "UndoableKeyChange" + }, + "acm009441jsd" : { + "type" : "ControlElement", + "id" : "acm009441jsd", + "name" : "getPresentationName" + }, + "acm009442jsd" : { + "type" : "ControlElement", + "id" : "acm009442jsd", + "name" : "undo" + }, + "acm009443jsd" : { + "type" : "ControlElement", + "id" : "acm009443jsd", + "name" : "redo" + }, + "acm009444jsd" : { + "type" : "ClassUnit", + "id" : "acm009444jsd", + "name" : "UndoableKeyChange", + "compilationUnitId" : "acm009434jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd" ], + "content" : [ "acm009439jsd", "acm009440jsd", "acm009441jsd", "acm009442jsd", "acm009443jsd" ] + }, + "acm009445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009445jsd", + "name" : "UndoablePreambleChange", + "parentId" : "acm009351jsd", + "content" : [ "acm009454jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009446jsd" : { + "type" : "CodePackage", + "id" : "acm009446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009447jsd" ] + }, + "acm009447jsd" : { + "type" : "CodePackage", + "id" : "acm009447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009448jsd" ] + }, + "acm009448jsd" : { + "type" : "CodePackage", + "id" : "acm009448jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009449jsd" ] + }, + "acm009449jsd" : { + "type" : "CodePackage", + "id" : "acm009449jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009445jsd" ] + }, + "acm009450jsd" : { + "type" : "ControlElement", + "id" : "acm009450jsd", + "name" : "UndoablePreambleChange" + }, + "acm009451jsd" : { + "type" : "ControlElement", + "id" : "acm009451jsd", + "name" : "getPresentationName" + }, + "acm009452jsd" : { + "type" : "ControlElement", + "id" : "acm009452jsd", + "name" : "undo" + }, + "acm009453jsd" : { + "type" : "ControlElement", + "id" : "acm009453jsd", + "name" : "redo" + }, + "acm009454jsd" : { + "type" : "ClassUnit", + "id" : "acm009454jsd", + "name" : "UndoablePreambleChange", + "compilationUnitId" : "acm009445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd" ], + "content" : [ "acm009450jsd", "acm009451jsd", "acm009452jsd", "acm009453jsd" ] + }, + "acm009455jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009455jsd", + "name" : "UndoableRemoveEntries", + "parentId" : "acm009351jsd", + "content" : [ "acm009466jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009456jsd" : { + "type" : "CodePackage", + "id" : "acm009456jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009457jsd" ] + }, + "acm009457jsd" : { + "type" : "CodePackage", + "id" : "acm009457jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009458jsd" ] + }, + "acm009458jsd" : { + "type" : "CodePackage", + "id" : "acm009458jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009459jsd" ] + }, + "acm009459jsd" : { + "type" : "CodePackage", + "id" : "acm009459jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009455jsd" ] + }, + "acm009460jsd" : { + "type" : "ControlElement", + "id" : "acm009460jsd", + "name" : "UndoableRemoveEntries" + }, + "acm009461jsd" : { + "type" : "ControlElement", + "id" : "acm009461jsd", + "name" : "UndoableRemoveEntries" + }, + "acm009462jsd" : { + "type" : "ControlElement", + "id" : "acm009462jsd", + "name" : "UndoableRemoveEntries" + }, + "acm009463jsd" : { + "type" : "ControlElement", + "id" : "acm009463jsd", + "name" : "getPresentationName" + }, + "acm009464jsd" : { + "type" : "ControlElement", + "id" : "acm009464jsd", + "name" : "undo" + }, + "acm009465jsd" : { + "type" : "ControlElement", + "id" : "acm009465jsd", + "name" : "redo" + }, + "acm009466jsd" : { + "type" : "ClassUnit", + "id" : "acm009466jsd", + "name" : "UndoableRemoveEntries", + "compilationUnitId" : "acm009455jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009466jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm009460jsd", "acm009461jsd", "acm009462jsd", "acm009463jsd", "acm009464jsd", "acm009465jsd" ] + }, + "acm009467jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009467jsd", + "name" : "UndoableRemoveString", + "parentId" : "acm009351jsd", + "content" : [ "acm009476jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009468jsd" : { + "type" : "CodePackage", + "id" : "acm009468jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009469jsd" ] + }, + "acm009469jsd" : { + "type" : "CodePackage", + "id" : "acm009469jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009470jsd" ] + }, + "acm009470jsd" : { + "type" : "CodePackage", + "id" : "acm009470jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009471jsd" ] + }, + "acm009471jsd" : { + "type" : "CodePackage", + "id" : "acm009471jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009467jsd" ] + }, + "acm009472jsd" : { + "type" : "ControlElement", + "id" : "acm009472jsd", + "name" : "UndoableRemoveString" + }, + "acm009473jsd" : { + "type" : "ControlElement", + "id" : "acm009473jsd", + "name" : "getPresentationName" + }, + "acm009474jsd" : { + "type" : "ControlElement", + "id" : "acm009474jsd", + "name" : "undo" + }, + "acm009475jsd" : { + "type" : "ControlElement", + "id" : "acm009475jsd", + "name" : "redo" + }, + "acm009476jsd" : { + "type" : "ClassUnit", + "id" : "acm009476jsd", + "name" : "UndoableRemoveString", + "compilationUnitId" : "acm009467jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009476jsd", "acm017988jsd", "acm018071jsd", "acm018367jsd" ], + "content" : [ "acm009472jsd", "acm009473jsd", "acm009474jsd", "acm009475jsd" ] + }, + "acm009477jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009477jsd", + "name" : "UndoableStringChange", + "parentId" : "acm009351jsd", + "content" : [ "acm009486jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009478jsd" : { + "type" : "CodePackage", + "id" : "acm009478jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009479jsd" ] + }, + "acm009479jsd" : { + "type" : "CodePackage", + "id" : "acm009479jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009480jsd" ] + }, + "acm009480jsd" : { + "type" : "CodePackage", + "id" : "acm009480jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009481jsd" ] + }, + "acm009481jsd" : { + "type" : "CodePackage", + "id" : "acm009481jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm009477jsd" ] + }, + "acm009482jsd" : { + "type" : "ControlElement", + "id" : "acm009482jsd", + "name" : "UndoableStringChange" + }, + "acm009483jsd" : { + "type" : "ControlElement", + "id" : "acm009483jsd", + "name" : "getPresentationName" + }, + "acm009484jsd" : { + "type" : "ControlElement", + "id" : "acm009484jsd", + "name" : "undo" + }, + "acm009485jsd" : { + "type" : "ControlElement", + "id" : "acm009485jsd", + "name" : "redo" + }, + "acm009486jsd" : { + "type" : "ClassUnit", + "id" : "acm009486jsd", + "name" : "UndoableStringChange", + "compilationUnitId" : "acm009477jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009354jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018367jsd" ], + "content" : [ "acm009482jsd", "acm009483jsd", "acm009484jsd", "acm009485jsd" ] + }, + "acm009487jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009487jsd", + "name" : "BackgroundTask", + "parentId" : "acm009491jsd", + "content" : [ "acm009536jsd", "acm009541jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009488jsd" : { + "type" : "CodePackage", + "id" : "acm009488jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009489jsd" ] + }, + "acm009489jsd" : { + "type" : "CodePackage", + "id" : "acm009489jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009490jsd" ] + }, + "acm009490jsd" : { + "type" : "CodePackage", + "id" : "acm009490jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009491jsd" ] + }, + "acm009491jsd" : { + "type" : "CodePackage", + "id" : "acm009491jsd", + "name" : "util", + "parentId" : "acm001569jsd", + "content" : [ "acm009487jsd", "acm009542jsd", "acm009552jsd", "acm009606jsd", "acm009615jsd", "acm009631jsd", "acm009655jsd", "acm009671jsd", "acm009679jsd", "acm009701jsd", "acm009713jsd", "acm009731jsd", "acm009742jsd", "acm009757jsd", "acm009763jsd", "acm009772jsd", "acm009810jsd", "acm009827jsd", "acm009844jsd", "acm009857jsd", "acm009864jsd", "acm009885jsd", "acm009896jsd", "acm009905jsd", "acm009917jsd", "acm009926jsd", "acm009934jsd", "acm009947jsd", "acm009955jsd", "acm009966jsd", "acm009977jsd", "acm009994jsd", "acm010006jsd", "acm010026jsd", "acm010052jsd", "acm010074jsd", "acm010086jsd", "acm010101jsd", "acm010115jsd", "acm010140jsd", "acm022119jsd", "acm022129jsd", "acm022141jsd", "acm022154jsd", "acm022164jsd", "acm022174jsd", "acm010153jsd", "acm010179jsd", "acm010243jsd" ] + }, + "acm009492jsd" : { + "type" : "ControlElement", + "id" : "acm009492jsd", + "name" : "BackgroundTask" + }, + "acm009493jsd" : { + "type" : "ControlElement", + "id" : "acm009493jsd", + "name" : "wrap" + }, + "acm009494jsd" : { + "type" : "ControlElement", + "id" : "acm009494jsd", + "name" : "call" + }, + "acm009495jsd" : { + "type" : "ControlElement", + "id" : "acm009495jsd", + "name" : "wrap" + }, + "acm009496jsd" : { + "type" : "ControlElement", + "id" : "acm009496jsd", + "name" : "call" + }, + "acm009497jsd" : { + "type" : "ControlElement", + "id" : "acm009497jsd", + "name" : "chain" + }, + "acm009498jsd" : { + "type" : "ControlElement", + "id" : "acm009498jsd", + "name" : "isCanceled" + }, + "acm009499jsd" : { + "type" : "ControlElement", + "id" : "acm009499jsd", + "name" : "cancel" + }, + "acm009500jsd" : { + "type" : "ControlElement", + "id" : "acm009500jsd", + "name" : "isCanceledProperty" + }, + "acm009501jsd" : { + "type" : "ControlElement", + "id" : "acm009501jsd", + "name" : "messageProperty" + }, + "acm009502jsd" : { + "type" : "ControlElement", + "id" : "acm009502jsd", + "name" : "titleProperty" + }, + "acm009503jsd" : { + "type" : "ControlElement", + "id" : "acm009503jsd", + "name" : "getWorkDonePercentage" + }, + "acm009504jsd" : { + "type" : "ControlElement", + "id" : "acm009504jsd", + "name" : "workDonePercentageProperty" + }, + "acm009505jsd" : { + "type" : "ControlElement", + "id" : "acm009505jsd", + "name" : "getProgress" + }, + "acm009506jsd" : { + "type" : "ControlElement", + "id" : "acm009506jsd", + "name" : "progressProperty" + }, + "acm009507jsd" : { + "type" : "ControlElement", + "id" : "acm009507jsd", + "name" : "showToUser" + }, + "acm009508jsd" : { + "type" : "ControlElement", + "id" : "acm009508jsd", + "name" : "showToUser" + }, + "acm009509jsd" : { + "type" : "ControlElement", + "id" : "acm009509jsd", + "name" : "willBeRecoveredAutomatically" + }, + "acm009510jsd" : { + "type" : "ControlElement", + "id" : "acm009510jsd", + "name" : "willBeRecoveredAutomatically" + }, + "acm009511jsd" : { + "type" : "ControlElement", + "id" : "acm009511jsd", + "name" : "onRunning" + }, + "acm009512jsd" : { + "type" : "ControlElement", + "id" : "acm009512jsd", + "name" : "onSuccess" + }, + "acm009513jsd" : { + "type" : "ControlElement", + "id" : "acm009513jsd", + "name" : "call" + }, + "acm009514jsd" : { + "type" : "ControlElement", + "id" : "acm009514jsd", + "name" : "getOnRunning" + }, + "acm009515jsd" : { + "type" : "ControlElement", + "id" : "acm009515jsd", + "name" : "getOnSuccess" + }, + "acm009516jsd" : { + "type" : "ControlElement", + "id" : "acm009516jsd", + "name" : "getOnException" + }, + "acm009517jsd" : { + "type" : "ControlElement", + "id" : "acm009517jsd", + "name" : "onFailure" + }, + "acm009518jsd" : { + "type" : "ControlElement", + "id" : "acm009518jsd", + "name" : "executeWith" + }, + "acm009519jsd" : { + "type" : "ControlElement", + "id" : "acm009519jsd", + "name" : "scheduleWith" + }, + "acm009520jsd" : { + "type" : "ControlElement", + "id" : "acm009520jsd", + "name" : "onFinished" + }, + "acm009521jsd" : { + "type" : "ControlElement", + "id" : "acm009521jsd", + "name" : "then" + }, + "acm009522jsd" : { + "type" : "ControlElement", + "id" : "acm009522jsd", + "name" : "call" + }, + "acm009523jsd" : { + "type" : "ControlElement", + "id" : "acm009523jsd", + "name" : "thenRun" + }, + "acm009524jsd" : { + "type" : "ControlElement", + "id" : "acm009524jsd", + "name" : "call" + }, + "acm009525jsd" : { + "type" : "ControlElement", + "id" : "acm009525jsd", + "name" : "thenRun" + }, + "acm009526jsd" : { + "type" : "ControlElement", + "id" : "acm009526jsd", + "name" : "call" + }, + "acm009527jsd" : { + "type" : "ControlElement", + "id" : "acm009527jsd", + "name" : "updateProgress" + }, + "acm009528jsd" : { + "type" : "ControlElement", + "id" : "acm009528jsd", + "name" : "updateProgress" + }, + "acm009529jsd" : { + "type" : "ControlElement", + "id" : "acm009529jsd", + "name" : "updateMessage" + }, + "acm009530jsd" : { + "type" : "ControlElement", + "id" : "acm009530jsd", + "name" : "withInitialMessage" + }, + "acm009531jsd" : { + "type" : "ControlElement", + "id" : "acm009531jsd", + "name" : "getIcon" + }, + "acm009532jsd" : { + "type" : "ControlElement", + "id" : "acm009532jsd", + "name" : "BackgroundProgress" + }, + "acm009533jsd" : { + "type" : "ControlElement", + "id" : "acm009533jsd", + "name" : "getWorkDone" + }, + "acm009534jsd" : { + "type" : "ControlElement", + "id" : "acm009534jsd", + "name" : "getMax" + }, + "acm009535jsd" : { + "type" : "ControlElement", + "id" : "acm009535jsd", + "name" : "getWorkDonePercentage" + }, + "acm009536jsd" : { + "type" : "ClassUnit", + "id" : "acm009536jsd", + "name" : "BackgroundTask", + "compilationUnitId" : "acm009487jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009536jsd", "acm009541jsd", "acm009965jsd" ], + "content" : [ "acm009492jsd", "acm009493jsd", "acm009494jsd", "acm009495jsd", "acm009496jsd", "acm009497jsd", "acm009498jsd", "acm009499jsd", "acm009500jsd", "acm009501jsd", "acm009502jsd", "acm009503jsd", "acm009504jsd", "acm009505jsd", "acm009506jsd", "acm009507jsd", "acm009508jsd", "acm009509jsd", "acm009510jsd", "acm009511jsd", "acm009512jsd", "acm009513jsd", "acm009514jsd", "acm009515jsd", "acm009516jsd", "acm009517jsd", "acm009518jsd", "acm009519jsd", "acm009520jsd", "acm009521jsd", "acm009522jsd", "acm009523jsd", "acm009524jsd", "acm009525jsd", "acm009526jsd", "acm009527jsd", "acm009528jsd", "acm009529jsd", "acm009530jsd", "acm009531jsd", "acm009532jsd", "acm009533jsd", "acm009534jsd", "acm009535jsd" ] + }, + "acm009537jsd" : { + "type" : "ControlElement", + "id" : "acm009537jsd", + "name" : "BackgroundProgress" + }, + "acm009538jsd" : { + "type" : "ControlElement", + "id" : "acm009538jsd", + "name" : "getWorkDone" + }, + "acm009539jsd" : { + "type" : "ControlElement", + "id" : "acm009539jsd", + "name" : "getMax" + }, + "acm009540jsd" : { + "type" : "ControlElement", + "id" : "acm009540jsd", + "name" : "getWorkDonePercentage" + }, + "acm009541jsd" : { + "type" : "ClassUnit", + "id" : "acm009541jsd", + "name" : "BackgroundProgress", + "compilationUnitId" : "acm009487jsd", + "parentDatatypeId" : "acm009536jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009537jsd", "acm009538jsd", "acm009539jsd", "acm009540jsd" ] + }, + "acm009542jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009542jsd", + "name" : "BaseDialog", + "parentId" : "acm009491jsd", + "content" : [ "acm009551jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009543jsd" : { + "type" : "CodePackage", + "id" : "acm009543jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009544jsd" ] + }, + "acm009544jsd" : { + "type" : "CodePackage", + "id" : "acm009544jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009545jsd" ] + }, + "acm009545jsd" : { + "type" : "CodePackage", + "id" : "acm009545jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009546jsd" ] + }, + "acm009546jsd" : { + "type" : "CodePackage", + "id" : "acm009546jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009542jsd" ] + }, + "acm009547jsd" : { + "type" : "ControlElement", + "id" : "acm009547jsd", + "name" : "BaseDialog" + }, + "acm009548jsd" : { + "type" : "ControlElement", + "id" : "acm009548jsd", + "name" : "getDefaultButton" + }, + "acm009549jsd" : { + "type" : "ControlElement", + "id" : "acm009549jsd", + "name" : "getDefaultButtonType" + }, + "acm009550jsd" : { + "type" : "ControlElement", + "id" : "acm009550jsd", + "name" : "setDialogIcon" + }, + "acm009551jsd" : { + "type" : "ClassUnit", + "id" : "acm009551jsd", + "name" : "BaseDialog", + "compilationUnitId" : "acm009542jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001605jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009547jsd", "acm009548jsd", "acm009549jsd", "acm009550jsd" ] + }, + "acm009552jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009552jsd", + "name" : "BindingsHelper", + "parentId" : "acm009491jsd", + "content" : [ "acm009590jsd", "acm009597jsd", "acm009601jsd", "acm009605jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009553jsd" : { + "type" : "CodePackage", + "id" : "acm009553jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009554jsd" ] + }, + "acm009554jsd" : { + "type" : "CodePackage", + "id" : "acm009554jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009555jsd" ] + }, + "acm009555jsd" : { + "type" : "CodePackage", + "id" : "acm009555jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009556jsd" ] + }, + "acm009556jsd" : { + "type" : "CodePackage", + "id" : "acm009556jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009552jsd" ] + }, + "acm009557jsd" : { + "type" : "ControlElement", + "id" : "acm009557jsd", + "name" : "BindingsHelper" + }, + "acm009558jsd" : { + "type" : "ControlElement", + "id" : "acm009558jsd", + "name" : "includePseudoClassWhen" + }, + "acm009559jsd" : { + "type" : "ControlElement", + "id" : "acm009559jsd", + "name" : "map" + }, + "acm009560jsd" : { + "type" : "ControlElement", + "id" : "acm009560jsd", + "name" : "computeValue" + }, + "acm009561jsd" : { + "type" : "ControlElement", + "id" : "acm009561jsd", + "name" : "bindBidirectional" + }, + "acm009562jsd" : { + "type" : "ControlElement", + "id" : "acm009562jsd", + "name" : "bindBidirectional" + }, + "acm009563jsd" : { + "type" : "ControlElement", + "id" : "acm009563jsd", + "name" : "bindBidirectional" + }, + "acm009564jsd" : { + "type" : "ControlElement", + "id" : "acm009564jsd", + "name" : "bindContentBidirectional" + }, + "acm009565jsd" : { + "type" : "ControlElement", + "id" : "acm009565jsd", + "name" : "bindContentBidirectional" + }, + "acm009566jsd" : { + "type" : "ControlElement", + "id" : "acm009566jsd", + "name" : "bindContentBidirectional" + }, + "acm009567jsd" : { + "type" : "ControlElement", + "id" : "acm009567jsd", + "name" : "bindContentBidirectional" + }, + "acm009568jsd" : { + "type" : "ControlElement", + "id" : "acm009568jsd", + "name" : "bindContentBidirectional" + }, + "acm009569jsd" : { + "type" : "ControlElement", + "id" : "acm009569jsd", + "name" : "constantOf" + }, + "acm009570jsd" : { + "type" : "ControlElement", + "id" : "acm009570jsd", + "name" : "computeValue" + }, + "acm009571jsd" : { + "type" : "ControlElement", + "id" : "acm009571jsd", + "name" : "constantOf" + }, + "acm009572jsd" : { + "type" : "ControlElement", + "id" : "acm009572jsd", + "name" : "computeValue" + }, + "acm009573jsd" : { + "type" : "ControlElement", + "id" : "acm009573jsd", + "name" : "emptyString" + }, + "acm009574jsd" : { + "type" : "ControlElement", + "id" : "acm009574jsd", + "name" : "computeValue" + }, + "acm009575jsd" : { + "type" : "ControlElement", + "id" : "acm009575jsd", + "name" : "forUI" + }, + "acm009576jsd" : { + "type" : "ControlElement", + "id" : "acm009576jsd", + "name" : "ifThenElse" + }, + "acm009577jsd" : { + "type" : "ControlElement", + "id" : "acm009577jsd", + "name" : "subscribeFuture" + }, + "acm009578jsd" : { + "type" : "ControlElement", + "id" : "acm009578jsd", + "name" : "BidirectionalBinding" + }, + "acm009579jsd" : { + "type" : "ControlElement", + "id" : "acm009579jsd", + "name" : "getChangeListenerA" + }, + "acm009580jsd" : { + "type" : "ControlElement", + "id" : "acm009580jsd", + "name" : "getChangeListenerB" + }, + "acm009581jsd" : { + "type" : "ControlElement", + "id" : "acm009581jsd", + "name" : "changedA" + }, + "acm009582jsd" : { + "type" : "ControlElement", + "id" : "acm009582jsd", + "name" : "changedB" + }, + "acm009583jsd" : { + "type" : "ControlElement", + "id" : "acm009583jsd", + "name" : "updateLocked" + }, + "acm009584jsd" : { + "type" : "ControlElement", + "id" : "acm009584jsd", + "name" : "BidirectionalListBinding" + }, + "acm009585jsd" : { + "type" : "ControlElement", + "id" : "acm009585jsd", + "name" : "changed" + }, + "acm009586jsd" : { + "type" : "ControlElement", + "id" : "acm009586jsd", + "name" : "onChanged" + }, + "acm009587jsd" : { + "type" : "ControlElement", + "id" : "acm009587jsd", + "name" : "BidirectionalMapBinding" + }, + "acm009588jsd" : { + "type" : "ControlElement", + "id" : "acm009588jsd", + "name" : "changed" + }, + "acm009589jsd" : { + "type" : "ControlElement", + "id" : "acm009589jsd", + "name" : "onChanged" + }, + "acm009590jsd" : { + "type" : "ClassUnit", + "id" : "acm009590jsd", + "name" : "BindingsHelper", + "compilationUnitId" : "acm009552jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009597jsd", "acm009601jsd", "acm009605jsd", "acm010005jsd" ], + "content" : [ "acm009557jsd", "acm009558jsd", "acm009559jsd", "acm009560jsd", "acm009561jsd", "acm009562jsd", "acm009563jsd", "acm009564jsd", "acm009565jsd", "acm009566jsd", "acm009567jsd", "acm009568jsd", "acm009569jsd", "acm009570jsd", "acm009571jsd", "acm009572jsd", "acm009573jsd", "acm009574jsd", "acm009575jsd", "acm009576jsd", "acm009577jsd", "acm009578jsd", "acm009579jsd", "acm009580jsd", "acm009581jsd", "acm009582jsd", "acm009583jsd", "acm009584jsd", "acm009585jsd", "acm009586jsd", "acm009587jsd", "acm009588jsd", "acm009589jsd" ] + }, + "acm009591jsd" : { + "type" : "ControlElement", + "id" : "acm009591jsd", + "name" : "BidirectionalBinding" + }, + "acm009592jsd" : { + "type" : "ControlElement", + "id" : "acm009592jsd", + "name" : "getChangeListenerA" + }, + "acm009593jsd" : { + "type" : "ControlElement", + "id" : "acm009593jsd", + "name" : "getChangeListenerB" + }, + "acm009594jsd" : { + "type" : "ControlElement", + "id" : "acm009594jsd", + "name" : "changedA" + }, + "acm009595jsd" : { + "type" : "ControlElement", + "id" : "acm009595jsd", + "name" : "changedB" + }, + "acm009596jsd" : { + "type" : "ControlElement", + "id" : "acm009596jsd", + "name" : "updateLocked" + }, + "acm009597jsd" : { + "type" : "ClassUnit", + "id" : "acm009597jsd", + "name" : "BidirectionalBinding", + "compilationUnitId" : "acm009552jsd", + "parentDatatypeId" : "acm009590jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009591jsd", "acm009592jsd", "acm009593jsd", "acm009594jsd", "acm009595jsd", "acm009596jsd" ] + }, + "acm009598jsd" : { + "type" : "ControlElement", + "id" : "acm009598jsd", + "name" : "BidirectionalListBinding" + }, + "acm009599jsd" : { + "type" : "ControlElement", + "id" : "acm009599jsd", + "name" : "changed" + }, + "acm009600jsd" : { + "type" : "ControlElement", + "id" : "acm009600jsd", + "name" : "onChanged" + }, + "acm009601jsd" : { + "type" : "ClassUnit", + "id" : "acm009601jsd", + "name" : "BidirectionalListBinding", + "compilationUnitId" : "acm009552jsd", + "parentDatatypeId" : "acm009590jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009598jsd", "acm009599jsd", "acm009600jsd" ] + }, + "acm009602jsd" : { + "type" : "ControlElement", + "id" : "acm009602jsd", + "name" : "BidirectionalMapBinding" + }, + "acm009603jsd" : { + "type" : "ControlElement", + "id" : "acm009603jsd", + "name" : "changed" + }, + "acm009604jsd" : { + "type" : "ControlElement", + "id" : "acm009604jsd", + "name" : "onChanged" + }, + "acm009605jsd" : { + "type" : "ClassUnit", + "id" : "acm009605jsd", + "name" : "BidirectionalMapBinding", + "compilationUnitId" : "acm009552jsd", + "parentDatatypeId" : "acm009590jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009602jsd", "acm009603jsd", "acm009604jsd" ] + }, + "acm009606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009606jsd", + "name" : "ColorUtil", + "parentId" : "acm009491jsd", + "content" : [ "acm009614jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009607jsd" : { + "type" : "CodePackage", + "id" : "acm009607jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009608jsd" ] + }, + "acm009608jsd" : { + "type" : "CodePackage", + "id" : "acm009608jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009609jsd" ] + }, + "acm009609jsd" : { + "type" : "CodePackage", + "id" : "acm009609jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009610jsd" ] + }, + "acm009610jsd" : { + "type" : "CodePackage", + "id" : "acm009610jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009606jsd" ] + }, + "acm009611jsd" : { + "type" : "ControlElement", + "id" : "acm009611jsd", + "name" : "toRGBCode" + }, + "acm009612jsd" : { + "type" : "ControlElement", + "id" : "acm009612jsd", + "name" : "toRGBACode" + }, + "acm009613jsd" : { + "type" : "ControlElement", + "id" : "acm009613jsd", + "name" : "toHex" + }, + "acm009614jsd" : { + "type" : "ClassUnit", + "id" : "acm009614jsd", + "name" : "ColorUtil", + "compilationUnitId" : "acm009606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009611jsd", "acm009612jsd", "acm009613jsd" ] + }, + "acm009615jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009615jsd", + "name" : "ControlHelper", + "parentId" : "acm009491jsd", + "content" : [ "acm009629jsd", "acm009630jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009616jsd" : { + "type" : "CodePackage", + "id" : "acm009616jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009617jsd" ] + }, + "acm009617jsd" : { + "type" : "CodePackage", + "id" : "acm009617jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009618jsd" ] + }, + "acm009618jsd" : { + "type" : "CodePackage", + "id" : "acm009618jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009619jsd" ] + }, + "acm009619jsd" : { + "type" : "CodePackage", + "id" : "acm009619jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009615jsd" ] + }, + "acm009620jsd" : { + "type" : "ControlElement", + "id" : "acm009620jsd", + "name" : "setAction" + }, + "acm009621jsd" : { + "type" : "ControlElement", + "id" : "acm009621jsd", + "name" : "childIsFocused" + }, + "acm009622jsd" : { + "type" : "ControlElement", + "id" : "acm009622jsd", + "name" : "getIntegerTextFormatter" + }, + "acm009623jsd" : { + "type" : "ControlElement", + "id" : "acm009623jsd", + "name" : "removePseudoClasses" + }, + "acm009624jsd" : { + "type" : "ControlElement", + "id" : "acm009624jsd", + "name" : "getDroppingMouseLocation" + }, + "acm009625jsd" : { + "type" : "ControlElement", + "id" : "acm009625jsd", + "name" : "setDroppingPseudoClasses" + }, + "acm009626jsd" : { + "type" : "ControlElement", + "id" : "acm009626jsd", + "name" : "setDroppingPseudoClasses" + }, + "acm009627jsd" : { + "type" : "ControlElement", + "id" : "acm009627jsd", + "name" : "removeDroppingPseudoClasses" + }, + "acm009628jsd" : { + "type" : "ControlElement", + "id" : "acm009628jsd", + "name" : "truncateString" + }, + "acm009629jsd" : { + "type" : "ClassUnit", + "id" : "acm009629jsd", + "name" : "ControlHelper", + "compilationUnitId" : "acm009615jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009630jsd", "acm009762jsd" ], + "content" : [ "acm009620jsd", "acm009621jsd", "acm009622jsd", "acm009623jsd", "acm009624jsd", "acm009625jsd", "acm009626jsd", "acm009627jsd", "acm009628jsd" ] + }, + "acm009630jsd" : { + "type" : "ClassUnit", + "id" : "acm009630jsd", + "name" : "EllipsisPosition", + "compilationUnitId" : "acm009615jsd", + "parentDatatypeId" : "acm009629jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009631jsd", + "name" : "CurrentThreadTaskExecutor", + "parentId" : "acm009491jsd", + "content" : [ "acm009647jsd", "acm009654jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009632jsd" : { + "type" : "CodePackage", + "id" : "acm009632jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009633jsd" ] + }, + "acm009633jsd" : { + "type" : "CodePackage", + "id" : "acm009633jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009634jsd" ] + }, + "acm009634jsd" : { + "type" : "CodePackage", + "id" : "acm009634jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009635jsd" ] + }, + "acm009635jsd" : { + "type" : "CodePackage", + "id" : "acm009635jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009631jsd" ] + }, + "acm009636jsd" : { + "type" : "ControlElement", + "id" : "acm009636jsd", + "name" : "execute" + }, + "acm009637jsd" : { + "type" : "ControlElement", + "id" : "acm009637jsd", + "name" : "execute" + }, + "acm009638jsd" : { + "type" : "ControlElement", + "id" : "acm009638jsd", + "name" : "schedule" + }, + "acm009639jsd" : { + "type" : "ControlElement", + "id" : "acm009639jsd", + "name" : "shutdown" + }, + "acm009640jsd" : { + "type" : "ControlElement", + "id" : "acm009640jsd", + "name" : "createThrottler" + }, + "acm009641jsd" : { + "type" : "ControlElement", + "id" : "acm009641jsd", + "name" : "FailedFuture" + }, + "acm009642jsd" : { + "type" : "ControlElement", + "id" : "acm009642jsd", + "name" : "get" + }, + "acm009643jsd" : { + "type" : "ControlElement", + "id" : "acm009643jsd", + "name" : "get" + }, + "acm009644jsd" : { + "type" : "ControlElement", + "id" : "acm009644jsd", + "name" : "cancel" + }, + "acm009645jsd" : { + "type" : "ControlElement", + "id" : "acm009645jsd", + "name" : "isCancelled" + }, + "acm009646jsd" : { + "type" : "ControlElement", + "id" : "acm009646jsd", + "name" : "isDone" + }, + "acm009647jsd" : { + "type" : "ClassUnit", + "id" : "acm009647jsd", + "name" : "CurrentThreadTaskExecutor", + "compilationUnitId" : "acm009631jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm009965jsd" ], + "datatypeReferencesIds" : [ "acm009536jsd", "acm009647jsd", "acm009654jsd", "acm017304jsd" ], + "content" : [ "acm009636jsd", "acm009637jsd", "acm009638jsd", "acm009639jsd", "acm009640jsd", "acm009641jsd", "acm009642jsd", "acm009643jsd", "acm009644jsd", "acm009645jsd", "acm009646jsd" ] + }, + "acm009648jsd" : { + "type" : "ControlElement", + "id" : "acm009648jsd", + "name" : "FailedFuture" + }, + "acm009649jsd" : { + "type" : "ControlElement", + "id" : "acm009649jsd", + "name" : "get" + }, + "acm009650jsd" : { + "type" : "ControlElement", + "id" : "acm009650jsd", + "name" : "get" + }, + "acm009651jsd" : { + "type" : "ControlElement", + "id" : "acm009651jsd", + "name" : "cancel" + }, + "acm009652jsd" : { + "type" : "ControlElement", + "id" : "acm009652jsd", + "name" : "isCancelled" + }, + "acm009653jsd" : { + "type" : "ControlElement", + "id" : "acm009653jsd", + "name" : "isDone" + }, + "acm009654jsd" : { + "type" : "ClassUnit", + "id" : "acm009654jsd", + "name" : "FailedFuture", + "compilationUnitId" : "acm009631jsd", + "parentDatatypeId" : "acm009647jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009648jsd", "acm009649jsd", "acm009650jsd", "acm009651jsd", "acm009652jsd", "acm009653jsd" ] + }, + "acm009655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009655jsd", + "name" : "CustomLocalDragboard", + "parentId" : "acm009491jsd", + "content" : [ "acm009670jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009656jsd" : { + "type" : "CodePackage", + "id" : "acm009656jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009657jsd" ] + }, + "acm009657jsd" : { + "type" : "CodePackage", + "id" : "acm009657jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009658jsd" ] + }, + "acm009658jsd" : { + "type" : "CodePackage", + "id" : "acm009658jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009659jsd" ] + }, + "acm009659jsd" : { + "type" : "CodePackage", + "id" : "acm009659jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009655jsd" ] + }, + "acm009660jsd" : { + "type" : "ControlElement", + "id" : "acm009660jsd", + "name" : "putValue" + }, + "acm009661jsd" : { + "type" : "ControlElement", + "id" : "acm009661jsd", + "name" : "getValue" + }, + "acm009662jsd" : { + "type" : "ControlElement", + "id" : "acm009662jsd", + "name" : "hasType" + }, + "acm009663jsd" : { + "type" : "ControlElement", + "id" : "acm009663jsd", + "name" : "clear" + }, + "acm009664jsd" : { + "type" : "ControlElement", + "id" : "acm009664jsd", + "name" : "clearAll" + }, + "acm009665jsd" : { + "type" : "ControlElement", + "id" : "acm009665jsd", + "name" : "putBibEntries" + }, + "acm009666jsd" : { + "type" : "ControlElement", + "id" : "acm009666jsd", + "name" : "getBibEntries" + }, + "acm009667jsd" : { + "type" : "ControlElement", + "id" : "acm009667jsd", + "name" : "hasBibEntries" + }, + "acm009668jsd" : { + "type" : "ControlElement", + "id" : "acm009668jsd", + "name" : "putPreviewLayouts" + }, + "acm009669jsd" : { + "type" : "ControlElement", + "id" : "acm009669jsd", + "name" : "getPreviewLayouts" + }, + "acm009670jsd" : { + "type" : "ClassUnit", + "id" : "acm009670jsd", + "name" : "CustomLocalDragboard", + "compilationUnitId" : "acm009655jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016651jsd", "acm018267jsd" ], + "content" : [ "acm009660jsd", "acm009661jsd", "acm009662jsd", "acm009663jsd", "acm009664jsd", "acm009665jsd", "acm009666jsd", "acm009667jsd", "acm009668jsd", "acm009669jsd" ] + }, + "acm009671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009671jsd", + "name" : "CustomRatingSkin", + "parentId" : "acm009491jsd", + "content" : [ "acm009678jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009672jsd" : { + "type" : "CodePackage", + "id" : "acm009672jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009673jsd" ] + }, + "acm009673jsd" : { + "type" : "CodePackage", + "id" : "acm009673jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009674jsd" ] + }, + "acm009674jsd" : { + "type" : "CodePackage", + "id" : "acm009674jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009675jsd" ] + }, + "acm009675jsd" : { + "type" : "CodePackage", + "id" : "acm009675jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009671jsd" ] + }, + "acm009676jsd" : { + "type" : "ControlElement", + "id" : "acm009676jsd", + "name" : "CustomRatingSkin" + }, + "acm009677jsd" : { + "type" : "ControlElement", + "id" : "acm009677jsd", + "name" : "createButtonNode" + }, + "acm009678jsd" : { + "type" : "ClassUnit", + "id" : "acm009678jsd", + "name" : "CustomRatingSkin", + "compilationUnitId" : "acm009671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009676jsd", "acm009677jsd" ] + }, + "acm009679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009679jsd", + "name" : "CustomTitledPaneSkin", + "parentId" : "acm009491jsd", + "content" : [ "acm009696jsd", "acm009699jsd", "acm009700jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009680jsd" : { + "type" : "CodePackage", + "id" : "acm009680jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009681jsd" ] + }, + "acm009681jsd" : { + "type" : "CodePackage", + "id" : "acm009681jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009682jsd" ] + }, + "acm009682jsd" : { + "type" : "CodePackage", + "id" : "acm009682jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009683jsd" ] + }, + "acm009683jsd" : { + "type" : "CodePackage", + "id" : "acm009683jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009679jsd" ] + }, + "acm009684jsd" : { + "type" : "ControlElement", + "id" : "acm009684jsd", + "name" : "invalidated" + }, + "acm009685jsd" : { + "type" : "ControlElement", + "id" : "acm009685jsd", + "name" : "setArrowSide" + }, + "acm009686jsd" : { + "type" : "ControlElement", + "id" : "acm009686jsd", + "name" : "getArrowSide" + }, + "acm009687jsd" : { + "type" : "ControlElement", + "id" : "acm009687jsd", + "name" : "arrowSideProperty" + }, + "acm009688jsd" : { + "type" : "ControlElement", + "id" : "acm009688jsd", + "name" : "CustomTitledPaneSkin" + }, + "acm009689jsd" : { + "type" : "ControlElement", + "id" : "acm009689jsd", + "name" : "adjustTitleLayout" + }, + "acm009690jsd" : { + "type" : "ControlElement", + "id" : "acm009690jsd", + "name" : "clearBindings" + }, + "acm009691jsd" : { + "type" : "ControlElement", + "id" : "acm009691jsd", + "name" : "dispose" + }, + "acm009692jsd" : { + "type" : "ControlElement", + "id" : "acm009692jsd", + "name" : "getClassCssMetaData" + }, + "acm009693jsd" : { + "type" : "ControlElement", + "id" : "acm009693jsd", + "name" : "getCssMetaData" + }, + "acm009694jsd" : { + "type" : "ControlElement", + "id" : "acm009694jsd", + "name" : "isSettable" + }, + "acm009695jsd" : { + "type" : "ControlElement", + "id" : "acm009695jsd", + "name" : "getStyleableProperty" + }, + "acm009696jsd" : { + "type" : "ClassUnit", + "id" : "acm009696jsd", + "name" : "CustomTitledPaneSkin", + "compilationUnitId" : "acm009679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009700jsd" ], + "content" : [ "acm009684jsd", "acm009685jsd", "acm009686jsd", "acm009687jsd", "acm009688jsd", "acm009689jsd", "acm009690jsd", "acm009691jsd", "acm009692jsd", "acm009693jsd", "acm009694jsd", "acm009695jsd" ] + }, + "acm009697jsd" : { + "type" : "ControlElement", + "id" : "acm009697jsd", + "name" : "isSettable" + }, + "acm009698jsd" : { + "type" : "ControlElement", + "id" : "acm009698jsd", + "name" : "getStyleableProperty" + }, + "acm009699jsd" : { + "type" : "ClassUnit", + "id" : "acm009699jsd", + "name" : "StyleableProperties", + "compilationUnitId" : "acm009679jsd", + "parentDatatypeId" : "acm009696jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009700jsd" ], + "content" : [ "acm009697jsd", "acm009698jsd" ] + }, + "acm009700jsd" : { + "type" : "ClassUnit", + "id" : "acm009700jsd", + "name" : "ArrowSide", + "compilationUnitId" : "acm009679jsd", + "parentDatatypeId" : "acm009696jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009701jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009701jsd", + "name" : "DefaultFileUpdateMonitor", + "parentId" : "acm009491jsd", + "content" : [ "acm009712jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009702jsd" : { + "type" : "CodePackage", + "id" : "acm009702jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009703jsd" ] + }, + "acm009703jsd" : { + "type" : "CodePackage", + "id" : "acm009703jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009704jsd" ] + }, + "acm009704jsd" : { + "type" : "CodePackage", + "id" : "acm009704jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009705jsd" ] + }, + "acm009705jsd" : { + "type" : "CodePackage", + "id" : "acm009705jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009701jsd" ] + }, + "acm009706jsd" : { + "type" : "ControlElement", + "id" : "acm009706jsd", + "name" : "run" + }, + "acm009707jsd" : { + "type" : "ControlElement", + "id" : "acm009707jsd", + "name" : "isActive" + }, + "acm009708jsd" : { + "type" : "ControlElement", + "id" : "acm009708jsd", + "name" : "notifyAboutChange" + }, + "acm009709jsd" : { + "type" : "ControlElement", + "id" : "acm009709jsd", + "name" : "addListenerForFile" + }, + "acm009710jsd" : { + "type" : "ControlElement", + "id" : "acm009710jsd", + "name" : "removeListener" + }, + "acm009711jsd" : { + "type" : "ControlElement", + "id" : "acm009711jsd", + "name" : "shutdown" + }, + "acm009712jsd" : { + "type" : "ClassUnit", + "id" : "acm009712jsd", + "name" : "DefaultFileUpdateMonitor", + "compilationUnitId" : "acm009701jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020693jsd" ], + "datatypeReferencesIds" : [ "acm009712jsd", "acm010366jsd", "acm010381jsd", "acm020683jsd" ], + "content" : [ "acm009706jsd", "acm009707jsd", "acm009708jsd", "acm009709jsd", "acm009710jsd", "acm009711jsd" ] + }, + "acm009713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009713jsd", + "name" : "DefaultTaskExecutor", + "parentId" : "acm009491jsd", + "content" : [ "acm009730jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009714jsd" : { + "type" : "CodePackage", + "id" : "acm009714jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009715jsd" ] + }, + "acm009715jsd" : { + "type" : "CodePackage", + "id" : "acm009715jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009716jsd" ] + }, + "acm009716jsd" : { + "type" : "CodePackage", + "id" : "acm009716jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009717jsd" ] + }, + "acm009717jsd" : { + "type" : "CodePackage", + "id" : "acm009717jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009713jsd" ] + }, + "acm009718jsd" : { + "type" : "ControlElement", + "id" : "acm009718jsd", + "name" : "DefaultTaskExecutor" + }, + "acm009719jsd" : { + "type" : "ControlElement", + "id" : "acm009719jsd", + "name" : "runInJavaFXThread" + }, + "acm009720jsd" : { + "type" : "ControlElement", + "id" : "acm009720jsd", + "name" : "runAndWaitInJavaFXThread" + }, + "acm009721jsd" : { + "type" : "ControlElement", + "id" : "acm009721jsd", + "name" : "runInJavaFXThread" + }, + "acm009722jsd" : { + "type" : "ControlElement", + "id" : "acm009722jsd", + "name" : "execute" + }, + "acm009723jsd" : { + "type" : "ControlElement", + "id" : "acm009723jsd", + "name" : "execute" + }, + "acm009724jsd" : { + "type" : "ControlElement", + "id" : "acm009724jsd", + "name" : "schedule" + }, + "acm009725jsd" : { + "type" : "ControlElement", + "id" : "acm009725jsd", + "name" : "shutdown" + }, + "acm009726jsd" : { + "type" : "ControlElement", + "id" : "acm009726jsd", + "name" : "createThrottler" + }, + "acm009727jsd" : { + "type" : "ControlElement", + "id" : "acm009727jsd", + "name" : "getJavaFXTask" + }, + "acm009728jsd" : { + "type" : "ControlElement", + "id" : "acm009728jsd", + "name" : "call" + }, + "acm009729jsd" : { + "type" : "ControlElement", + "id" : "acm009729jsd", + "name" : "convertToException" + }, + "acm009730jsd" : { + "type" : "ClassUnit", + "id" : "acm009730jsd", + "name" : "DefaultTaskExecutor", + "compilationUnitId" : "acm009713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm009965jsd" ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm009536jsd", "acm009730jsd", "acm017304jsd" ], + "content" : [ "acm009718jsd", "acm009719jsd", "acm009720jsd", "acm009721jsd", "acm009722jsd", "acm009723jsd", "acm009724jsd", "acm009725jsd", "acm009726jsd", "acm009727jsd", "acm009728jsd", "acm009729jsd" ] + }, + "acm009731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009731jsd", + "name" : "DialogWindowState", + "parentId" : "acm009491jsd", + "content" : [ "acm009741jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009732jsd" : { + "type" : "CodePackage", + "id" : "acm009732jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009733jsd" ] + }, + "acm009733jsd" : { + "type" : "CodePackage", + "id" : "acm009733jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009734jsd" ] + }, + "acm009734jsd" : { + "type" : "CodePackage", + "id" : "acm009734jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009735jsd" ] + }, + "acm009735jsd" : { + "type" : "CodePackage", + "id" : "acm009735jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009731jsd" ] + }, + "acm009736jsd" : { + "type" : "ControlElement", + "id" : "acm009736jsd", + "name" : "DialogWindowState" + }, + "acm009737jsd" : { + "type" : "ControlElement", + "id" : "acm009737jsd", + "name" : "getX" + }, + "acm009738jsd" : { + "type" : "ControlElement", + "id" : "acm009738jsd", + "name" : "getY" + }, + "acm009739jsd" : { + "type" : "ControlElement", + "id" : "acm009739jsd", + "name" : "getHeight" + }, + "acm009740jsd" : { + "type" : "ControlElement", + "id" : "acm009740jsd", + "name" : "getWidth" + }, + "acm009741jsd" : { + "type" : "ClassUnit", + "id" : "acm009741jsd", + "name" : "DialogWindowState", + "compilationUnitId" : "acm009731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009736jsd", "acm009737jsd", "acm009738jsd", "acm009739jsd", "acm009740jsd" ] + }, + "acm009742jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009742jsd", + "name" : "DirectoryDialogConfiguration", + "parentId" : "acm009491jsd", + "content" : [ "acm009752jsd", "acm009756jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009743jsd" : { + "type" : "CodePackage", + "id" : "acm009743jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009744jsd" ] + }, + "acm009744jsd" : { + "type" : "CodePackage", + "id" : "acm009744jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009745jsd" ] + }, + "acm009745jsd" : { + "type" : "CodePackage", + "id" : "acm009745jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009746jsd" ] + }, + "acm009746jsd" : { + "type" : "CodePackage", + "id" : "acm009746jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009742jsd" ] + }, + "acm009747jsd" : { + "type" : "ControlElement", + "id" : "acm009747jsd", + "name" : "DirectoryDialogConfiguration" + }, + "acm009748jsd" : { + "type" : "ControlElement", + "id" : "acm009748jsd", + "name" : "getInitialDirectory" + }, + "acm009749jsd" : { + "type" : "ControlElement", + "id" : "acm009749jsd", + "name" : "build" + }, + "acm009750jsd" : { + "type" : "ControlElement", + "id" : "acm009750jsd", + "name" : "withInitialDirectory" + }, + "acm009751jsd" : { + "type" : "ControlElement", + "id" : "acm009751jsd", + "name" : "withInitialDirectory" + }, + "acm009752jsd" : { + "type" : "ClassUnit", + "id" : "acm009752jsd", + "name" : "DirectoryDialogConfiguration", + "compilationUnitId" : "acm009742jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009752jsd", "acm009756jsd" ], + "content" : [ "acm009747jsd", "acm009748jsd", "acm009749jsd", "acm009750jsd", "acm009751jsd" ] + }, + "acm009753jsd" : { + "type" : "ControlElement", + "id" : "acm009753jsd", + "name" : "build" + }, + "acm009754jsd" : { + "type" : "ControlElement", + "id" : "acm009754jsd", + "name" : "withInitialDirectory" + }, + "acm009755jsd" : { + "type" : "ControlElement", + "id" : "acm009755jsd", + "name" : "withInitialDirectory" + }, + "acm009756jsd" : { + "type" : "ClassUnit", + "id" : "acm009756jsd", + "name" : "Builder", + "compilationUnitId" : "acm009742jsd", + "parentDatatypeId" : "acm009752jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009752jsd", "acm009756jsd" ], + "content" : [ "acm009753jsd", "acm009754jsd", "acm009755jsd" ] + }, + "acm009757jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009757jsd", + "name" : "DroppingMouseLocation", + "parentId" : "acm009491jsd", + "content" : [ "acm009762jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009758jsd" : { + "type" : "CodePackage", + "id" : "acm009758jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009759jsd" ] + }, + "acm009759jsd" : { + "type" : "CodePackage", + "id" : "acm009759jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009760jsd" ] + }, + "acm009760jsd" : { + "type" : "CodePackage", + "id" : "acm009760jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009761jsd" ] + }, + "acm009761jsd" : { + "type" : "CodePackage", + "id" : "acm009761jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009757jsd" ] + }, + "acm009762jsd" : { + "type" : "ClassUnit", + "id" : "acm009762jsd", + "name" : "DroppingMouseLocation", + "compilationUnitId" : "acm009757jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009763jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009763jsd", + "name" : "FieldsUtil", + "parentId" : "acm009491jsd", + "content" : [ "acm009771jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009764jsd" : { + "type" : "CodePackage", + "id" : "acm009764jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009765jsd" ] + }, + "acm009765jsd" : { + "type" : "CodePackage", + "id" : "acm009765jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009766jsd" ] + }, + "acm009766jsd" : { + "type" : "CodePackage", + "id" : "acm009766jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009767jsd" ] + }, + "acm009767jsd" : { + "type" : "CodePackage", + "id" : "acm009767jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009763jsd" ] + }, + "acm009768jsd" : { + "type" : "ControlElement", + "id" : "acm009768jsd", + "name" : "toString" + }, + "acm009769jsd" : { + "type" : "ControlElement", + "id" : "acm009769jsd", + "name" : "fromString" + }, + "acm009770jsd" : { + "type" : "ControlElement", + "id" : "acm009770jsd", + "name" : "getNameWithType" + }, + "acm009771jsd" : { + "type" : "ClassUnit", + "id" : "acm009771jsd", + "name" : "FieldsUtil", + "compilationUnitId" : "acm009763jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009172jsd", "acm018673jsd", "acm018728jsd", "acm018741jsd", "acm018770jsd", "acm018813jsd" ], + "content" : [ "acm009768jsd", "acm009769jsd", "acm009770jsd" ] + }, + "acm009772jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009772jsd", + "name" : "FileDialogConfiguration", + "parentId" : "acm009491jsd", + "content" : [ "acm009796jsd", "acm009809jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009773jsd" : { + "type" : "CodePackage", + "id" : "acm009773jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009774jsd" ] + }, + "acm009774jsd" : { + "type" : "CodePackage", + "id" : "acm009774jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009775jsd" ] + }, + "acm009775jsd" : { + "type" : "CodePackage", + "id" : "acm009775jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009776jsd" ] + }, + "acm009776jsd" : { + "type" : "CodePackage", + "id" : "acm009776jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009772jsd" ] + }, + "acm009777jsd" : { + "type" : "ControlElement", + "id" : "acm009777jsd", + "name" : "FileDialogConfiguration" + }, + "acm009778jsd" : { + "type" : "ControlElement", + "id" : "acm009778jsd", + "name" : "getInitialDirectory" + }, + "acm009779jsd" : { + "type" : "ControlElement", + "id" : "acm009779jsd", + "name" : "getDefaultExtension" + }, + "acm009780jsd" : { + "type" : "ControlElement", + "id" : "acm009780jsd", + "name" : "getInitialFileName" + }, + "acm009781jsd" : { + "type" : "ControlElement", + "id" : "acm009781jsd", + "name" : "getExtensionFilters" + }, + "acm009782jsd" : { + "type" : "ControlElement", + "id" : "acm009782jsd", + "name" : "getSelectedExtensionFilter" + }, + "acm009783jsd" : { + "type" : "ControlElement", + "id" : "acm009783jsd", + "name" : "setSelectedExtensionFilter" + }, + "acm009784jsd" : { + "type" : "ControlElement", + "id" : "acm009784jsd", + "name" : "build" + }, + "acm009785jsd" : { + "type" : "ControlElement", + "id" : "acm009785jsd", + "name" : "withInitialDirectory" + }, + "acm009786jsd" : { + "type" : "ControlElement", + "id" : "acm009786jsd", + "name" : "withInitialDirectory" + }, + "acm009787jsd" : { + "type" : "ControlElement", + "id" : "acm009787jsd", + "name" : "withInitialFileName" + }, + "acm009788jsd" : { + "type" : "ControlElement", + "id" : "acm009788jsd", + "name" : "withDefaultExtension" + }, + "acm009789jsd" : { + "type" : "ControlElement", + "id" : "acm009789jsd", + "name" : "withDefaultExtension" + }, + "acm009790jsd" : { + "type" : "ControlElement", + "id" : "acm009790jsd", + "name" : "withDefaultExtension" + }, + "acm009791jsd" : { + "type" : "ControlElement", + "id" : "acm009791jsd", + "name" : "withDefaultExtension" + }, + "acm009792jsd" : { + "type" : "ControlElement", + "id" : "acm009792jsd", + "name" : "addExtensionFilter" + }, + "acm009793jsd" : { + "type" : "ControlElement", + "id" : "acm009793jsd", + "name" : "addExtensionFilter" + }, + "acm009794jsd" : { + "type" : "ControlElement", + "id" : "acm009794jsd", + "name" : "addExtensionFilter" + }, + "acm009795jsd" : { + "type" : "ControlElement", + "id" : "acm009795jsd", + "name" : "addExtensionFilter" + }, + "acm009796jsd" : { + "type" : "ClassUnit", + "id" : "acm009796jsd", + "name" : "FileDialogConfiguration", + "compilationUnitId" : "acm009772jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009796jsd", "acm009809jsd", "acm017320jsd" ], + "content" : [ "acm009777jsd", "acm009778jsd", "acm009779jsd", "acm009780jsd", "acm009781jsd", "acm009782jsd", "acm009783jsd", "acm009784jsd", "acm009785jsd", "acm009786jsd", "acm009787jsd", "acm009788jsd", "acm009789jsd", "acm009790jsd", "acm009791jsd", "acm009792jsd", "acm009793jsd", "acm009794jsd", "acm009795jsd" ] + }, + "acm009797jsd" : { + "type" : "ControlElement", + "id" : "acm009797jsd", + "name" : "build" + }, + "acm009798jsd" : { + "type" : "ControlElement", + "id" : "acm009798jsd", + "name" : "withInitialDirectory" + }, + "acm009799jsd" : { + "type" : "ControlElement", + "id" : "acm009799jsd", + "name" : "withInitialDirectory" + }, + "acm009800jsd" : { + "type" : "ControlElement", + "id" : "acm009800jsd", + "name" : "withInitialFileName" + }, + "acm009801jsd" : { + "type" : "ControlElement", + "id" : "acm009801jsd", + "name" : "withDefaultExtension" + }, + "acm009802jsd" : { + "type" : "ControlElement", + "id" : "acm009802jsd", + "name" : "withDefaultExtension" + }, + "acm009803jsd" : { + "type" : "ControlElement", + "id" : "acm009803jsd", + "name" : "withDefaultExtension" + }, + "acm009804jsd" : { + "type" : "ControlElement", + "id" : "acm009804jsd", + "name" : "withDefaultExtension" + }, + "acm009805jsd" : { + "type" : "ControlElement", + "id" : "acm009805jsd", + "name" : "addExtensionFilter" + }, + "acm009806jsd" : { + "type" : "ControlElement", + "id" : "acm009806jsd", + "name" : "addExtensionFilter" + }, + "acm009807jsd" : { + "type" : "ControlElement", + "id" : "acm009807jsd", + "name" : "addExtensionFilter" + }, + "acm009808jsd" : { + "type" : "ControlElement", + "id" : "acm009808jsd", + "name" : "addExtensionFilter" + }, + "acm009809jsd" : { + "type" : "ClassUnit", + "id" : "acm009809jsd", + "name" : "Builder", + "compilationUnitId" : "acm009772jsd", + "parentDatatypeId" : "acm009796jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009796jsd", "acm009809jsd", "acm017320jsd" ], + "content" : [ "acm009797jsd", "acm009798jsd", "acm009799jsd", "acm009800jsd", "acm009801jsd", "acm009802jsd", "acm009803jsd", "acm009804jsd", "acm009805jsd", "acm009806jsd", "acm009807jsd", "acm009808jsd" ] + }, + "acm009810jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009810jsd", + "name" : "FileFilterConverter", + "parentId" : "acm009491jsd", + "content" : [ "acm009826jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009811jsd" : { + "type" : "CodePackage", + "id" : "acm009811jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009812jsd" ] + }, + "acm009812jsd" : { + "type" : "CodePackage", + "id" : "acm009812jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009813jsd" ] + }, + "acm009813jsd" : { + "type" : "CodePackage", + "id" : "acm009813jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009814jsd" ] + }, + "acm009814jsd" : { + "type" : "CodePackage", + "id" : "acm009814jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009810jsd" ] + }, + "acm009815jsd" : { + "type" : "ControlElement", + "id" : "acm009815jsd", + "name" : "FileFilterConverter" + }, + "acm009816jsd" : { + "type" : "ControlElement", + "id" : "acm009816jsd", + "name" : "toExtensionFilter" + }, + "acm009817jsd" : { + "type" : "ControlElement", + "id" : "acm009817jsd", + "name" : "toExtensionFilter" + }, + "acm009818jsd" : { + "type" : "ControlElement", + "id" : "acm009818jsd", + "name" : "getImporter" + }, + "acm009819jsd" : { + "type" : "ControlElement", + "id" : "acm009819jsd", + "name" : "getExporter" + }, + "acm009820jsd" : { + "type" : "ControlElement", + "id" : "acm009820jsd", + "name" : "forAllImporters" + }, + "acm009821jsd" : { + "type" : "ControlElement", + "id" : "acm009821jsd", + "name" : "importerToExtensionFilter" + }, + "acm009822jsd" : { + "type" : "ControlElement", + "id" : "acm009822jsd", + "name" : "exporterToExtensionFilter" + }, + "acm009823jsd" : { + "type" : "ControlElement", + "id" : "acm009823jsd", + "name" : "toFileFilter" + }, + "acm009824jsd" : { + "type" : "ControlElement", + "id" : "acm009824jsd", + "name" : "toFileFilter" + }, + "acm009825jsd" : { + "type" : "ControlElement", + "id" : "acm009825jsd", + "name" : "toDirFilter" + }, + "acm009826jsd" : { + "type" : "ClassUnit", + "id" : "acm009826jsd", + "name" : "FileFilterConverter", + "compilationUnitId" : "acm009810jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011502jsd", "acm012455jsd", "acm017320jsd" ], + "content" : [ "acm009815jsd", "acm009816jsd", "acm009817jsd", "acm009818jsd", "acm009819jsd", "acm009820jsd", "acm009821jsd", "acm009822jsd", "acm009823jsd", "acm009824jsd", "acm009825jsd" ] + }, + "acm009827jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009827jsd", + "name" : "FileNodeViewModel", + "parentId" : "acm009491jsd", + "content" : [ "acm009843jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009828jsd" : { + "type" : "CodePackage", + "id" : "acm009828jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009829jsd" ] + }, + "acm009829jsd" : { + "type" : "CodePackage", + "id" : "acm009829jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009830jsd" ] + }, + "acm009830jsd" : { + "type" : "CodePackage", + "id" : "acm009830jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009831jsd" ] + }, + "acm009831jsd" : { + "type" : "CodePackage", + "id" : "acm009831jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009827jsd" ] + }, + "acm009832jsd" : { + "type" : "ControlElement", + "id" : "acm009832jsd", + "name" : "FileNodeViewModel" + }, + "acm009833jsd" : { + "type" : "ControlElement", + "id" : "acm009833jsd", + "name" : "getPath" + }, + "acm009834jsd" : { + "type" : "ControlElement", + "id" : "acm009834jsd", + "name" : "getChildren" + }, + "acm009835jsd" : { + "type" : "ControlElement", + "id" : "acm009835jsd", + "name" : "getFileCount" + }, + "acm009836jsd" : { + "type" : "ControlElement", + "id" : "acm009836jsd", + "name" : "setFileCount" + }, + "acm009837jsd" : { + "type" : "ControlElement", + "id" : "acm009837jsd", + "name" : "formatDateTime" + }, + "acm009838jsd" : { + "type" : "ControlElement", + "id" : "acm009838jsd", + "name" : "getDisplayText" + }, + "acm009839jsd" : { + "type" : "ControlElement", + "id" : "acm009839jsd", + "name" : "getDisplayTextWithEditDate" + }, + "acm009840jsd" : { + "type" : "ControlElement", + "id" : "acm009840jsd", + "name" : "toString" + }, + "acm009841jsd" : { + "type" : "ControlElement", + "id" : "acm009841jsd", + "name" : "hashCode" + }, + "acm009842jsd" : { + "type" : "ControlElement", + "id" : "acm009842jsd", + "name" : "equals" + }, + "acm009843jsd" : { + "type" : "ClassUnit", + "id" : "acm009843jsd", + "name" : "FileNodeViewModel", + "compilationUnitId" : "acm009827jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009843jsd" ], + "content" : [ "acm009832jsd", "acm009833jsd", "acm009834jsd", "acm009835jsd", "acm009836jsd", "acm009837jsd", "acm009838jsd", "acm009839jsd", "acm009840jsd", "acm009841jsd", "acm009842jsd" ] + }, + "acm009844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009844jsd", + "name" : "IconValidationDecorator", + "parentId" : "acm009491jsd", + "content" : [ "acm009856jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009845jsd" : { + "type" : "CodePackage", + "id" : "acm009845jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009846jsd" ] + }, + "acm009846jsd" : { + "type" : "CodePackage", + "id" : "acm009846jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009847jsd" ] + }, + "acm009847jsd" : { + "type" : "CodePackage", + "id" : "acm009847jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009848jsd" ] + }, + "acm009848jsd" : { + "type" : "CodePackage", + "id" : "acm009848jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009844jsd" ] + }, + "acm009849jsd" : { + "type" : "ControlElement", + "id" : "acm009849jsd", + "name" : "IconValidationDecorator" + }, + "acm009850jsd" : { + "type" : "ControlElement", + "id" : "acm009850jsd", + "name" : "IconValidationDecorator" + }, + "acm009851jsd" : { + "type" : "ControlElement", + "id" : "acm009851jsd", + "name" : "createErrorNode" + }, + "acm009852jsd" : { + "type" : "ControlElement", + "id" : "acm009852jsd", + "name" : "createWarningNode" + }, + "acm009853jsd" : { + "type" : "ControlElement", + "id" : "acm009853jsd", + "name" : "createDecorationNode" + }, + "acm009854jsd" : { + "type" : "ControlElement", + "id" : "acm009854jsd", + "name" : "createTooltip" + }, + "acm009855jsd" : { + "type" : "ControlElement", + "id" : "acm009855jsd", + "name" : "createValidationDecorations" + }, + "acm009856jsd" : { + "type" : "ClassUnit", + "id" : "acm009856jsd", + "name" : "IconValidationDecorator", + "compilationUnitId" : "acm009844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009849jsd", "acm009850jsd", "acm009851jsd", "acm009852jsd", "acm009853jsd", "acm009854jsd", "acm009855jsd" ] + }, + "acm009857jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009857jsd", + "name" : "JabRefResourceLocator", + "parentId" : "acm009491jsd", + "content" : [ "acm009863jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009858jsd" : { + "type" : "CodePackage", + "id" : "acm009858jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009859jsd" ] + }, + "acm009859jsd" : { + "type" : "CodePackage", + "id" : "acm009859jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009860jsd" ] + }, + "acm009860jsd" : { + "type" : "CodePackage", + "id" : "acm009860jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009861jsd" ] + }, + "acm009861jsd" : { + "type" : "CodePackage", + "id" : "acm009861jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009857jsd" ] + }, + "acm009862jsd" : { + "type" : "ControlElement", + "id" : "acm009862jsd", + "name" : "getResourceBundle" + }, + "acm009863jsd" : { + "type" : "ClassUnit", + "id" : "acm009863jsd", + "name" : "JabRefResourceLocator", + "compilationUnitId" : "acm009857jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009863jsd" ], + "content" : [ "acm009862jsd" ] + }, + "acm009864jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009864jsd", + "name" : "NoSelectionModel", + "parentId" : "acm009491jsd", + "content" : [ "acm009884jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009865jsd" : { + "type" : "CodePackage", + "id" : "acm009865jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009866jsd" ] + }, + "acm009866jsd" : { + "type" : "CodePackage", + "id" : "acm009866jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009867jsd" ] + }, + "acm009867jsd" : { + "type" : "CodePackage", + "id" : "acm009867jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009868jsd" ] + }, + "acm009868jsd" : { + "type" : "CodePackage", + "id" : "acm009868jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009864jsd" ] + }, + "acm009869jsd" : { + "type" : "ControlElement", + "id" : "acm009869jsd", + "name" : "getSelectedIndices" + }, + "acm009870jsd" : { + "type" : "ControlElement", + "id" : "acm009870jsd", + "name" : "getSelectedItems" + }, + "acm009871jsd" : { + "type" : "ControlElement", + "id" : "acm009871jsd", + "name" : "selectIndices" + }, + "acm009872jsd" : { + "type" : "ControlElement", + "id" : "acm009872jsd", + "name" : "selectAll" + }, + "acm009873jsd" : { + "type" : "ControlElement", + "id" : "acm009873jsd", + "name" : "selectFirst" + }, + "acm009874jsd" : { + "type" : "ControlElement", + "id" : "acm009874jsd", + "name" : "selectLast" + }, + "acm009875jsd" : { + "type" : "ControlElement", + "id" : "acm009875jsd", + "name" : "clearAndSelect" + }, + "acm009876jsd" : { + "type" : "ControlElement", + "id" : "acm009876jsd", + "name" : "select" + }, + "acm009877jsd" : { + "type" : "ControlElement", + "id" : "acm009877jsd", + "name" : "select" + }, + "acm009878jsd" : { + "type" : "ControlElement", + "id" : "acm009878jsd", + "name" : "clearSelection" + }, + "acm009879jsd" : { + "type" : "ControlElement", + "id" : "acm009879jsd", + "name" : "clearSelection" + }, + "acm009880jsd" : { + "type" : "ControlElement", + "id" : "acm009880jsd", + "name" : "isSelected" + }, + "acm009881jsd" : { + "type" : "ControlElement", + "id" : "acm009881jsd", + "name" : "isEmpty" + }, + "acm009882jsd" : { + "type" : "ControlElement", + "id" : "acm009882jsd", + "name" : "selectPrevious" + }, + "acm009883jsd" : { + "type" : "ControlElement", + "id" : "acm009883jsd", + "name" : "selectNext" + }, + "acm009884jsd" : { + "type" : "ClassUnit", + "id" : "acm009884jsd", + "name" : "NoSelectionModel", + "compilationUnitId" : "acm009864jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009869jsd", "acm009870jsd", "acm009871jsd", "acm009872jsd", "acm009873jsd", "acm009874jsd", "acm009875jsd", "acm009876jsd", "acm009877jsd", "acm009878jsd", "acm009879jsd", "acm009880jsd", "acm009881jsd", "acm009882jsd", "acm009883jsd" ] + }, + "acm009885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009885jsd", + "name" : "OnlyIntegerFormatter", + "parentId" : "acm009491jsd", + "content" : [ "acm009893jsd", "acm009895jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009886jsd" : { + "type" : "CodePackage", + "id" : "acm009886jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009887jsd" ] + }, + "acm009887jsd" : { + "type" : "CodePackage", + "id" : "acm009887jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009888jsd" ] + }, + "acm009888jsd" : { + "type" : "CodePackage", + "id" : "acm009888jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009889jsd" ] + }, + "acm009889jsd" : { + "type" : "CodePackage", + "id" : "acm009889jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009885jsd" ] + }, + "acm009890jsd" : { + "type" : "ControlElement", + "id" : "acm009890jsd", + "name" : "OnlyIntegerFormatter" + }, + "acm009891jsd" : { + "type" : "ControlElement", + "id" : "acm009891jsd", + "name" : "OnlyIntegerFormatter" + }, + "acm009892jsd" : { + "type" : "ControlElement", + "id" : "acm009892jsd", + "name" : "apply" + }, + "acm009893jsd" : { + "type" : "ClassUnit", + "id" : "acm009893jsd", + "name" : "OnlyIntegerFormatter", + "compilationUnitId" : "acm009885jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009895jsd" ], + "content" : [ "acm009890jsd", "acm009891jsd", "acm009892jsd" ] + }, + "acm009894jsd" : { + "type" : "ControlElement", + "id" : "acm009894jsd", + "name" : "apply" + }, + "acm009895jsd" : { + "type" : "ClassUnit", + "id" : "acm009895jsd", + "name" : "IntegerFilter", + "compilationUnitId" : "acm009885jsd", + "parentDatatypeId" : "acm009893jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009894jsd" ] + }, + "acm009896jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009896jsd", + "name" : "OpenHyperlinksInExternalBrowser", + "parentId" : "acm009491jsd", + "content" : [ "acm009904jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009897jsd" : { + "type" : "CodePackage", + "id" : "acm009897jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009898jsd" ] + }, + "acm009898jsd" : { + "type" : "CodePackage", + "id" : "acm009898jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009899jsd" ] + }, + "acm009899jsd" : { + "type" : "CodePackage", + "id" : "acm009899jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009900jsd" ] + }, + "acm009900jsd" : { + "type" : "CodePackage", + "id" : "acm009900jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009896jsd" ] + }, + "acm009901jsd" : { + "type" : "ControlElement", + "id" : "acm009901jsd", + "name" : "OpenHyperlinksInExternalBrowser" + }, + "acm009902jsd" : { + "type" : "ControlElement", + "id" : "acm009902jsd", + "name" : "changed" + }, + "acm009903jsd" : { + "type" : "ControlElement", + "id" : "acm009903jsd", + "name" : "handleEvent" + }, + "acm009904jsd" : { + "type" : "ClassUnit", + "id" : "acm009904jsd", + "name" : "OpenHyperlinksInExternalBrowser", + "compilationUnitId" : "acm009896jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009904jsd" ], + "content" : [ "acm009901jsd", "acm009902jsd", "acm009903jsd" ] + }, + "acm009905jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009905jsd", + "name" : "OptionalObjectProperty", + "parentId" : "acm009491jsd", + "content" : [ "acm009916jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009906jsd" : { + "type" : "CodePackage", + "id" : "acm009906jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009907jsd" ] + }, + "acm009907jsd" : { + "type" : "CodePackage", + "id" : "acm009907jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009908jsd" ] + }, + "acm009908jsd" : { + "type" : "CodePackage", + "id" : "acm009908jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009909jsd" ] + }, + "acm009909jsd" : { + "type" : "CodePackage", + "id" : "acm009909jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009905jsd" ] + }, + "acm009910jsd" : { + "type" : "ControlElement", + "id" : "acm009910jsd", + "name" : "OptionalObjectProperty" + }, + "acm009911jsd" : { + "type" : "ControlElement", + "id" : "acm009911jsd", + "name" : "empty" + }, + "acm009912jsd" : { + "type" : "ControlElement", + "id" : "acm009912jsd", + "name" : "orElseOpt" + }, + "acm009913jsd" : { + "type" : "ControlElement", + "id" : "acm009913jsd", + "name" : "computeValue" + }, + "acm009914jsd" : { + "type" : "ControlElement", + "id" : "acm009914jsd", + "name" : "isPresent" + }, + "acm009915jsd" : { + "type" : "ControlElement", + "id" : "acm009915jsd", + "name" : "computeValue" + }, + "acm009916jsd" : { + "type" : "ClassUnit", + "id" : "acm009916jsd", + "name" : "OptionalObjectProperty", + "compilationUnitId" : "acm009905jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009916jsd" ], + "content" : [ "acm009910jsd", "acm009911jsd", "acm009912jsd", "acm009913jsd", "acm009914jsd", "acm009915jsd" ] + }, + "acm009917jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009917jsd", + "name" : "OptionalValueTableCellFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm009925jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009918jsd" : { + "type" : "CodePackage", + "id" : "acm009918jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009919jsd" ] + }, + "acm009919jsd" : { + "type" : "CodePackage", + "id" : "acm009919jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009920jsd" ] + }, + "acm009920jsd" : { + "type" : "CodePackage", + "id" : "acm009920jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009921jsd" ] + }, + "acm009921jsd" : { + "type" : "CodePackage", + "id" : "acm009921jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009917jsd" ] + }, + "acm009922jsd" : { + "type" : "ControlElement", + "id" : "acm009922jsd", + "name" : "withGraphicIfPresent" + }, + "acm009923jsd" : { + "type" : "ControlElement", + "id" : "acm009923jsd", + "name" : "withDefaultGraphic" + }, + "acm009924jsd" : { + "type" : "ControlElement", + "id" : "acm009924jsd", + "name" : "setToGraphic" + }, + "acm009925jsd" : { + "type" : "ClassUnit", + "id" : "acm009925jsd", + "name" : "OptionalValueTableCellFactory", + "compilationUnitId" : "acm009917jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009925jsd" ], + "content" : [ "acm009922jsd", "acm009923jsd", "acm009924jsd" ] + }, + "acm009926jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009926jsd", + "name" : "RadioButtonCell", + "parentId" : "acm009491jsd", + "content" : [ "acm009933jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009927jsd" : { + "type" : "CodePackage", + "id" : "acm009927jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009928jsd" ] + }, + "acm009928jsd" : { + "type" : "CodePackage", + "id" : "acm009928jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009929jsd" ] + }, + "acm009929jsd" : { + "type" : "CodePackage", + "id" : "acm009929jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009930jsd" ] + }, + "acm009930jsd" : { + "type" : "CodePackage", + "id" : "acm009930jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009926jsd" ] + }, + "acm009931jsd" : { + "type" : "ControlElement", + "id" : "acm009931jsd", + "name" : "RadioButtonCell" + }, + "acm009932jsd" : { + "type" : "ControlElement", + "id" : "acm009932jsd", + "name" : "updateItem" + }, + "acm009933jsd" : { + "type" : "ClassUnit", + "id" : "acm009933jsd", + "name" : "RadioButtonCell", + "compilationUnitId" : "acm009926jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009931jsd", "acm009932jsd" ] + }, + "acm009934jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009934jsd", + "name" : "RecursiveTreeItem", + "parentId" : "acm009491jsd", + "content" : [ "acm009946jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009935jsd" : { + "type" : "CodePackage", + "id" : "acm009935jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009936jsd" ] + }, + "acm009936jsd" : { + "type" : "CodePackage", + "id" : "acm009936jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009937jsd" ] + }, + "acm009937jsd" : { + "type" : "CodePackage", + "id" : "acm009937jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009938jsd" ] + }, + "acm009938jsd" : { + "type" : "CodePackage", + "id" : "acm009938jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009934jsd" ] + }, + "acm009939jsd" : { + "type" : "ControlElement", + "id" : "acm009939jsd", + "name" : "RecursiveTreeItem" + }, + "acm009940jsd" : { + "type" : "ControlElement", + "id" : "acm009940jsd", + "name" : "RecursiveTreeItem" + }, + "acm009941jsd" : { + "type" : "ControlElement", + "id" : "acm009941jsd", + "name" : "RecursiveTreeItem" + }, + "acm009942jsd" : { + "type" : "ControlElement", + "id" : "acm009942jsd", + "name" : "RecursiveTreeItem" + }, + "acm009943jsd" : { + "type" : "ControlElement", + "id" : "acm009943jsd", + "name" : "bindExpandedProperty" + }, + "acm009944jsd" : { + "type" : "ControlElement", + "id" : "acm009944jsd", + "name" : "addChildrenListener" + }, + "acm009945jsd" : { + "type" : "ControlElement", + "id" : "acm009945jsd", + "name" : "showNode" + }, + "acm009946jsd" : { + "type" : "ClassUnit", + "id" : "acm009946jsd", + "name" : "RecursiveTreeItem", + "compilationUnitId" : "acm009934jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009946jsd" ], + "content" : [ "acm009939jsd", "acm009940jsd", "acm009941jsd", "acm009942jsd", "acm009943jsd", "acm009944jsd", "acm009945jsd" ] + }, + "acm009947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009947jsd", + "name" : "StreamGobbler", + "parentId" : "acm009491jsd", + "content" : [ "acm009954jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009948jsd" : { + "type" : "CodePackage", + "id" : "acm009948jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009949jsd" ] + }, + "acm009949jsd" : { + "type" : "CodePackage", + "id" : "acm009949jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009950jsd" ] + }, + "acm009950jsd" : { + "type" : "CodePackage", + "id" : "acm009950jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009951jsd" ] + }, + "acm009951jsd" : { + "type" : "CodePackage", + "id" : "acm009951jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009947jsd" ] + }, + "acm009952jsd" : { + "type" : "ControlElement", + "id" : "acm009952jsd", + "name" : "StreamGobbler" + }, + "acm009953jsd" : { + "type" : "ControlElement", + "id" : "acm009953jsd", + "name" : "run" + }, + "acm009954jsd" : { + "type" : "ClassUnit", + "id" : "acm009954jsd", + "name" : "StreamGobbler", + "compilationUnitId" : "acm009947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009954jsd" ], + "content" : [ "acm009952jsd", "acm009953jsd" ] + }, + "acm009955jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009955jsd", + "name" : "TaskExecutor", + "parentId" : "acm009491jsd", + "content" : [ "acm009965jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009956jsd" : { + "type" : "CodePackage", + "id" : "acm009956jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009957jsd" ] + }, + "acm009957jsd" : { + "type" : "CodePackage", + "id" : "acm009957jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009958jsd" ] + }, + "acm009958jsd" : { + "type" : "CodePackage", + "id" : "acm009958jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009959jsd" ] + }, + "acm009959jsd" : { + "type" : "CodePackage", + "id" : "acm009959jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009955jsd" ] + }, + "acm009960jsd" : { + "type" : "ControlElement", + "id" : "acm009960jsd", + "name" : "execute" + }, + "acm009961jsd" : { + "type" : "ControlElement", + "id" : "acm009961jsd", + "name" : "execute" + }, + "acm009962jsd" : { + "type" : "ControlElement", + "id" : "acm009962jsd", + "name" : "schedule" + }, + "acm009963jsd" : { + "type" : "ControlElement", + "id" : "acm009963jsd", + "name" : "shutdown" + }, + "acm009964jsd" : { + "type" : "ControlElement", + "id" : "acm009964jsd", + "name" : "createThrottler" + }, + "acm009965jsd" : { + "type" : "InterfaceUnit", + "id" : "acm009965jsd", + "name" : "TaskExecutor", + "compilationUnitId" : "acm009955jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009536jsd", "acm017304jsd" ], + "content" : [ "acm009960jsd", "acm009961jsd", "acm009962jsd", "acm009963jsd", "acm009964jsd" ] + }, + "acm009966jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009966jsd", + "name" : "TextFlowLimited", + "parentId" : "acm009491jsd", + "content" : [ "acm009976jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009967jsd" : { + "type" : "CodePackage", + "id" : "acm009967jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009968jsd" ] + }, + "acm009968jsd" : { + "type" : "CodePackage", + "id" : "acm009968jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009969jsd" ] + }, + "acm009969jsd" : { + "type" : "CodePackage", + "id" : "acm009969jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009970jsd" ] + }, + "acm009970jsd" : { + "type" : "CodePackage", + "id" : "acm009970jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009966jsd" ] + }, + "acm009971jsd" : { + "type" : "ControlElement", + "id" : "acm009971jsd", + "name" : "TextFlowLimited" + }, + "acm009972jsd" : { + "type" : "ControlElement", + "id" : "acm009972jsd", + "name" : "expand" + }, + "acm009973jsd" : { + "type" : "ControlElement", + "id" : "acm009973jsd", + "name" : "interpolate" + }, + "acm009974jsd" : { + "type" : "ControlElement", + "id" : "acm009974jsd", + "name" : "computePrefHeight" + }, + "acm009975jsd" : { + "type" : "ControlElement", + "id" : "acm009975jsd", + "name" : "layoutChildren" + }, + "acm009976jsd" : { + "type" : "ClassUnit", + "id" : "acm009976jsd", + "name" : "TextFlowLimited", + "compilationUnitId" : "acm009966jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009971jsd", "acm009972jsd", "acm009973jsd", "acm009974jsd", "acm009975jsd" ] + }, + "acm009977jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009977jsd", + "name" : "TooltipTextUtil", + "parentId" : "acm009491jsd", + "content" : [ "acm009990jsd", "acm009992jsd", "acm009993jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009978jsd" : { + "type" : "CodePackage", + "id" : "acm009978jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009979jsd" ] + }, + "acm009979jsd" : { + "type" : "CodePackage", + "id" : "acm009979jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009980jsd" ] + }, + "acm009980jsd" : { + "type" : "CodePackage", + "id" : "acm009980jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009981jsd" ] + }, + "acm009981jsd" : { + "type" : "CodePackage", + "id" : "acm009981jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009977jsd" ] + }, + "acm009982jsd" : { + "type" : "ControlElement", + "id" : "acm009982jsd", + "name" : "createText" + }, + "acm009983jsd" : { + "type" : "ControlElement", + "id" : "acm009983jsd", + "name" : "createText" + }, + "acm009984jsd" : { + "type" : "ControlElement", + "id" : "acm009984jsd", + "name" : "createTextsFromHtml" + }, + "acm009985jsd" : { + "type" : "ControlElement", + "id" : "acm009985jsd", + "name" : "convertHtmlBold" + }, + "acm009986jsd" : { + "type" : "ControlElement", + "id" : "acm009986jsd", + "name" : "formatToTexts" + }, + "acm009987jsd" : { + "type" : "ControlElement", + "id" : "acm009987jsd", + "name" : "splitReplace" + }, + "acm009988jsd" : { + "type" : "ControlElement", + "id" : "acm009988jsd", + "name" : "TextReplacement" + }, + "acm009989jsd" : { + "type" : "ControlElement", + "id" : "acm009989jsd", + "name" : "textToHtmlString" + }, + "acm009990jsd" : { + "type" : "ClassUnit", + "id" : "acm009990jsd", + "name" : "TooltipTextUtil", + "compilationUnitId" : "acm009977jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009992jsd", "acm009993jsd" ], + "content" : [ "acm009982jsd", "acm009983jsd", "acm009984jsd", "acm009985jsd", "acm009986jsd", "acm009987jsd", "acm009988jsd", "acm009989jsd" ] + }, + "acm009991jsd" : { + "type" : "ControlElement", + "id" : "acm009991jsd", + "name" : "TextReplacement" + }, + "acm009992jsd" : { + "type" : "ClassUnit", + "id" : "acm009992jsd", + "name" : "TextReplacement", + "compilationUnitId" : "acm009977jsd", + "parentDatatypeId" : "acm009990jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009993jsd" ], + "content" : [ "acm009991jsd" ] + }, + "acm009993jsd" : { + "type" : "ClassUnit", + "id" : "acm009993jsd", + "name" : "TextType", + "compilationUnitId" : "acm009977jsd", + "parentDatatypeId" : "acm009990jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009994jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009994jsd", + "name" : "UiThreadList", + "parentId" : "acm009491jsd", + "content" : [ "acm010005jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009995jsd" : { + "type" : "CodePackage", + "id" : "acm009995jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm009996jsd" ] + }, + "acm009996jsd" : { + "type" : "CodePackage", + "id" : "acm009996jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm009997jsd" ] + }, + "acm009997jsd" : { + "type" : "CodePackage", + "id" : "acm009997jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm009998jsd" ] + }, + "acm009998jsd" : { + "type" : "CodePackage", + "id" : "acm009998jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm009994jsd" ] + }, + "acm009999jsd" : { + "type" : "ControlElement", + "id" : "acm009999jsd", + "name" : "UiThreadList" + }, + "acm010000jsd" : { + "type" : "ControlElement", + "id" : "acm010000jsd", + "name" : "sourceChanged" + }, + "acm010001jsd" : { + "type" : "ControlElement", + "id" : "acm010001jsd", + "name" : "getSourceIndex" + }, + "acm010002jsd" : { + "type" : "ControlElement", + "id" : "acm010002jsd", + "name" : "getViewIndex" + }, + "acm010003jsd" : { + "type" : "ControlElement", + "id" : "acm010003jsd", + "name" : "get" + }, + "acm010004jsd" : { + "type" : "ControlElement", + "id" : "acm010004jsd", + "name" : "size" + }, + "acm010005jsd" : { + "type" : "ClassUnit", + "id" : "acm010005jsd", + "name" : "UiThreadList", + "compilationUnitId" : "acm009994jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010005jsd" ], + "content" : [ "acm009999jsd", "acm010000jsd", "acm010001jsd", "acm010002jsd", "acm010003jsd", "acm010004jsd" ] + }, + "acm010006jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010006jsd", + "name" : "ValueTableCellFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010025jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010007jsd" : { + "type" : "CodePackage", + "id" : "acm010007jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010008jsd" ] + }, + "acm010008jsd" : { + "type" : "CodePackage", + "id" : "acm010008jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010009jsd" ] + }, + "acm010009jsd" : { + "type" : "CodePackage", + "id" : "acm010009jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010010jsd" ] + }, + "acm010010jsd" : { + "type" : "CodePackage", + "id" : "acm010010jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010006jsd" ] + }, + "acm010011jsd" : { + "type" : "ControlElement", + "id" : "acm010011jsd", + "name" : "withText" + }, + "acm010012jsd" : { + "type" : "ControlElement", + "id" : "acm010012jsd", + "name" : "withGraphic" + }, + "acm010013jsd" : { + "type" : "ControlElement", + "id" : "acm010013jsd", + "name" : "withGraphic" + }, + "acm010014jsd" : { + "type" : "ControlElement", + "id" : "acm010014jsd", + "name" : "withTooltip" + }, + "acm010015jsd" : { + "type" : "ControlElement", + "id" : "acm010015jsd", + "name" : "withTooltip" + }, + "acm010016jsd" : { + "type" : "ControlElement", + "id" : "acm010016jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010017jsd" : { + "type" : "ControlElement", + "id" : "acm010017jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010018jsd" : { + "type" : "ControlElement", + "id" : "acm010018jsd", + "name" : "withDisableExpression" + }, + "acm010019jsd" : { + "type" : "ControlElement", + "id" : "acm010019jsd", + "name" : "withVisibleExpression" + }, + "acm010020jsd" : { + "type" : "ControlElement", + "id" : "acm010020jsd", + "name" : "withContextMenu" + }, + "acm010021jsd" : { + "type" : "ControlElement", + "id" : "acm010021jsd", + "name" : "withMenu" + }, + "acm010022jsd" : { + "type" : "ControlElement", + "id" : "acm010022jsd", + "name" : "call" + }, + "acm010023jsd" : { + "type" : "ControlElement", + "id" : "acm010023jsd", + "name" : "updateItem" + }, + "acm010024jsd" : { + "type" : "ControlElement", + "id" : "acm010024jsd", + "name" : "install" + }, + "acm010025jsd" : { + "type" : "ClassUnit", + "id" : "acm010025jsd", + "name" : "ValueTableCellFactory", + "compilationUnitId" : "acm010006jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010025jsd" ], + "content" : [ "acm010011jsd", "acm010012jsd", "acm010013jsd", "acm010014jsd", "acm010015jsd", "acm010016jsd", "acm010017jsd", "acm010018jsd", "acm010019jsd", "acm010020jsd", "acm010021jsd", "acm010022jsd", "acm010023jsd", "acm010024jsd" ] + }, + "acm010026jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010026jsd", + "name" : "ViewModelListCellFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010051jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010027jsd" : { + "type" : "CodePackage", + "id" : "acm010027jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010028jsd" ] + }, + "acm010028jsd" : { + "type" : "CodePackage", + "id" : "acm010028jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010029jsd" ] + }, + "acm010029jsd" : { + "type" : "CodePackage", + "id" : "acm010029jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010030jsd" ] + }, + "acm010030jsd" : { + "type" : "CodePackage", + "id" : "acm010030jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010026jsd" ] + }, + "acm010031jsd" : { + "type" : "ControlElement", + "id" : "acm010031jsd", + "name" : "withText" + }, + "acm010032jsd" : { + "type" : "ControlElement", + "id" : "acm010032jsd", + "name" : "withGraphic" + }, + "acm010033jsd" : { + "type" : "ControlElement", + "id" : "acm010033jsd", + "name" : "withIcon" + }, + "acm010034jsd" : { + "type" : "ControlElement", + "id" : "acm010034jsd", + "name" : "withIcon" + }, + "acm010035jsd" : { + "type" : "ControlElement", + "id" : "acm010035jsd", + "name" : "withStringTooltip" + }, + "acm010036jsd" : { + "type" : "ControlElement", + "id" : "acm010036jsd", + "name" : "withTooltip" + }, + "acm010037jsd" : { + "type" : "ControlElement", + "id" : "acm010037jsd", + "name" : "withContextMenu" + }, + "acm010038jsd" : { + "type" : "ControlElement", + "id" : "acm010038jsd", + "name" : "withStyleClass" + }, + "acm010039jsd" : { + "type" : "ControlElement", + "id" : "acm010039jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010040jsd" : { + "type" : "ControlElement", + "id" : "acm010040jsd", + "name" : "setOnDragDetected" + }, + "acm010041jsd" : { + "type" : "ControlElement", + "id" : "acm010041jsd", + "name" : "setOnDragDropped" + }, + "acm010042jsd" : { + "type" : "ControlElement", + "id" : "acm010042jsd", + "name" : "setOnDragEntered" + }, + "acm010043jsd" : { + "type" : "ControlElement", + "id" : "acm010043jsd", + "name" : "setOnDragExited" + }, + "acm010044jsd" : { + "type" : "ControlElement", + "id" : "acm010044jsd", + "name" : "setOnDragOver" + }, + "acm010045jsd" : { + "type" : "ControlElement", + "id" : "acm010045jsd", + "name" : "withPseudoClass" + }, + "acm010046jsd" : { + "type" : "ControlElement", + "id" : "acm010046jsd", + "name" : "withValidation" + }, + "acm010047jsd" : { + "type" : "ControlElement", + "id" : "acm010047jsd", + "name" : "install" + }, + "acm010048jsd" : { + "type" : "ControlElement", + "id" : "acm010048jsd", + "name" : "install" + }, + "acm010049jsd" : { + "type" : "ControlElement", + "id" : "acm010049jsd", + "name" : "call" + }, + "acm010050jsd" : { + "type" : "ControlElement", + "id" : "acm010050jsd", + "name" : "updateItem" + }, + "acm010051jsd" : { + "type" : "ClassUnit", + "id" : "acm010051jsd", + "name" : "ViewModelListCellFactory", + "compilationUnitId" : "acm010026jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm010051jsd" ], + "content" : [ "acm010031jsd", "acm010032jsd", "acm010033jsd", "acm010034jsd", "acm010035jsd", "acm010036jsd", "acm010037jsd", "acm010038jsd", "acm010039jsd", "acm010040jsd", "acm010041jsd", "acm010042jsd", "acm010043jsd", "acm010044jsd", "acm010045jsd", "acm010046jsd", "acm010047jsd", "acm010048jsd", "acm010049jsd", "acm010050jsd" ] + }, + "acm010052jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010052jsd", + "name" : "ViewModelTableRowFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010073jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010053jsd" : { + "type" : "CodePackage", + "id" : "acm010053jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010054jsd" ] + }, + "acm010054jsd" : { + "type" : "CodePackage", + "id" : "acm010054jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010055jsd" ] + }, + "acm010055jsd" : { + "type" : "CodePackage", + "id" : "acm010055jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010056jsd" ] + }, + "acm010056jsd" : { + "type" : "CodePackage", + "id" : "acm010056jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010052jsd" ] + }, + "acm010057jsd" : { + "type" : "ControlElement", + "id" : "acm010057jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010058jsd" : { + "type" : "ControlElement", + "id" : "acm010058jsd", + "name" : "withContextMenu" + }, + "acm010059jsd" : { + "type" : "ControlElement", + "id" : "acm010059jsd", + "name" : "setOnDragDetected" + }, + "acm010060jsd" : { + "type" : "ControlElement", + "id" : "acm010060jsd", + "name" : "setOnDragDetected" + }, + "acm010061jsd" : { + "type" : "ControlElement", + "id" : "acm010061jsd", + "name" : "setOnDragDropped" + }, + "acm010062jsd" : { + "type" : "ControlElement", + "id" : "acm010062jsd", + "name" : "setOnDragDropped" + }, + "acm010063jsd" : { + "type" : "ControlElement", + "id" : "acm010063jsd", + "name" : "setOnDragEntered" + }, + "acm010064jsd" : { + "type" : "ControlElement", + "id" : "acm010064jsd", + "name" : "setOnMouseDragEntered" + }, + "acm010065jsd" : { + "type" : "ControlElement", + "id" : "acm010065jsd", + "name" : "setOnMouseDragEntered" + }, + "acm010066jsd" : { + "type" : "ControlElement", + "id" : "acm010066jsd", + "name" : "setOnDragExited" + }, + "acm010067jsd" : { + "type" : "ControlElement", + "id" : "acm010067jsd", + "name" : "setOnDragExited" + }, + "acm010068jsd" : { + "type" : "ControlElement", + "id" : "acm010068jsd", + "name" : "setOnDragOver" + }, + "acm010069jsd" : { + "type" : "ControlElement", + "id" : "acm010069jsd", + "name" : "setOnDragOver" + }, + "acm010070jsd" : { + "type" : "ControlElement", + "id" : "acm010070jsd", + "name" : "withTooltip" + }, + "acm010071jsd" : { + "type" : "ControlElement", + "id" : "acm010071jsd", + "name" : "call" + }, + "acm010072jsd" : { + "type" : "ControlElement", + "id" : "acm010072jsd", + "name" : "install" + }, + "acm010073jsd" : { + "type" : "ClassUnit", + "id" : "acm010073jsd", + "name" : "ViewModelTableRowFactory", + "compilationUnitId" : "acm010052jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010073jsd" ], + "content" : [ "acm010057jsd", "acm010058jsd", "acm010059jsd", "acm010060jsd", "acm010061jsd", "acm010062jsd", "acm010063jsd", "acm010064jsd", "acm010065jsd", "acm010066jsd", "acm010067jsd", "acm010068jsd", "acm010069jsd", "acm010070jsd", "acm010071jsd", "acm010072jsd" ] + }, + "acm010074jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010074jsd", + "name" : "ViewModelTextFieldTableCellVisualizationFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010085jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010075jsd" : { + "type" : "CodePackage", + "id" : "acm010075jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010076jsd" ] + }, + "acm010076jsd" : { + "type" : "CodePackage", + "id" : "acm010076jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010077jsd" ] + }, + "acm010077jsd" : { + "type" : "CodePackage", + "id" : "acm010077jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010078jsd" ] + }, + "acm010078jsd" : { + "type" : "CodePackage", + "id" : "acm010078jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010074jsd" ] + }, + "acm010079jsd" : { + "type" : "ControlElement", + "id" : "acm010079jsd", + "name" : "withValidation" + }, + "acm010080jsd" : { + "type" : "ControlElement", + "id" : "acm010080jsd", + "name" : "install" + }, + "acm010081jsd" : { + "type" : "ControlElement", + "id" : "acm010081jsd", + "name" : "call" + }, + "acm010082jsd" : { + "type" : "ControlElement", + "id" : "acm010082jsd", + "name" : "startEdit" + }, + "acm010083jsd" : { + "type" : "ControlElement", + "id" : "acm010083jsd", + "name" : "lookupTextField" + }, + "acm010084jsd" : { + "type" : "ControlElement", + "id" : "acm010084jsd", + "name" : "updateItem" + }, + "acm010085jsd" : { + "type" : "ClassUnit", + "id" : "acm010085jsd", + "name" : "ViewModelTextFieldTableCellVisualizationFactory", + "compilationUnitId" : "acm010074jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010085jsd" ], + "content" : [ "acm010079jsd", "acm010080jsd", "acm010081jsd", "acm010082jsd", "acm010083jsd", "acm010084jsd" ] + }, + "acm010086jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010086jsd", + "name" : "ViewModelTreeCellFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010100jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010087jsd" : { + "type" : "CodePackage", + "id" : "acm010087jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010088jsd" ] + }, + "acm010088jsd" : { + "type" : "CodePackage", + "id" : "acm010088jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010089jsd" ] + }, + "acm010089jsd" : { + "type" : "CodePackage", + "id" : "acm010089jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010090jsd" ] + }, + "acm010090jsd" : { + "type" : "CodePackage", + "id" : "acm010090jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010086jsd" ] + }, + "acm010091jsd" : { + "type" : "ControlElement", + "id" : "acm010091jsd", + "name" : "withText" + }, + "acm010092jsd" : { + "type" : "ControlElement", + "id" : "acm010092jsd", + "name" : "withGraphic" + }, + "acm010093jsd" : { + "type" : "ControlElement", + "id" : "acm010093jsd", + "name" : "withIcon" + }, + "acm010094jsd" : { + "type" : "ControlElement", + "id" : "acm010094jsd", + "name" : "withTooltip" + }, + "acm010095jsd" : { + "type" : "ControlElement", + "id" : "acm010095jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010096jsd" : { + "type" : "ControlElement", + "id" : "acm010096jsd", + "name" : "install" + }, + "acm010097jsd" : { + "type" : "ControlElement", + "id" : "acm010097jsd", + "name" : "call" + }, + "acm010098jsd" : { + "type" : "ControlElement", + "id" : "acm010098jsd", + "name" : "toString" + }, + "acm010099jsd" : { + "type" : "ControlElement", + "id" : "acm010099jsd", + "name" : "fromString" + }, + "acm010100jsd" : { + "type" : "ClassUnit", + "id" : "acm010100jsd", + "name" : "ViewModelTreeCellFactory", + "compilationUnitId" : "acm010086jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm010100jsd" ], + "content" : [ "acm010091jsd", "acm010092jsd", "acm010093jsd", "acm010094jsd", "acm010095jsd", "acm010096jsd", "acm010097jsd", "acm010098jsd", "acm010099jsd" ] + }, + "acm010101jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010101jsd", + "name" : "ViewModelTreeTableCellFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010114jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010102jsd" : { + "type" : "CodePackage", + "id" : "acm010102jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010103jsd" ] + }, + "acm010103jsd" : { + "type" : "CodePackage", + "id" : "acm010103jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010104jsd" ] + }, + "acm010104jsd" : { + "type" : "CodePackage", + "id" : "acm010104jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010105jsd" ] + }, + "acm010105jsd" : { + "type" : "CodePackage", + "id" : "acm010105jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010101jsd" ] + }, + "acm010106jsd" : { + "type" : "ControlElement", + "id" : "acm010106jsd", + "name" : "withText" + }, + "acm010107jsd" : { + "type" : "ControlElement", + "id" : "acm010107jsd", + "name" : "withGraphic" + }, + "acm010108jsd" : { + "type" : "ControlElement", + "id" : "acm010108jsd", + "name" : "withIcon" + }, + "acm010109jsd" : { + "type" : "ControlElement", + "id" : "acm010109jsd", + "name" : "withTooltip" + }, + "acm010110jsd" : { + "type" : "ControlElement", + "id" : "acm010110jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010111jsd" : { + "type" : "ControlElement", + "id" : "acm010111jsd", + "name" : "call" + }, + "acm010112jsd" : { + "type" : "ControlElement", + "id" : "acm010112jsd", + "name" : "updateItem" + }, + "acm010113jsd" : { + "type" : "ControlElement", + "id" : "acm010113jsd", + "name" : "install" + }, + "acm010114jsd" : { + "type" : "ClassUnit", + "id" : "acm010114jsd", + "name" : "ViewModelTreeTableCellFactory", + "compilationUnitId" : "acm010101jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005416jsd", "acm010114jsd" ], + "content" : [ "acm010106jsd", "acm010107jsd", "acm010108jsd", "acm010109jsd", "acm010110jsd", "acm010111jsd", "acm010112jsd", "acm010113jsd" ] + }, + "acm010115jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010115jsd", + "name" : "ViewModelTreeTableRowFactory", + "parentId" : "acm009491jsd", + "content" : [ "acm010139jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010116jsd" : { + "type" : "CodePackage", + "id" : "acm010116jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010117jsd" ] + }, + "acm010117jsd" : { + "type" : "CodePackage", + "id" : "acm010117jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010118jsd" ] + }, + "acm010118jsd" : { + "type" : "CodePackage", + "id" : "acm010118jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010119jsd" ] + }, + "acm010119jsd" : { + "type" : "CodePackage", + "id" : "acm010119jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010115jsd" ] + }, + "acm010120jsd" : { + "type" : "ControlElement", + "id" : "acm010120jsd", + "name" : "withOnMouseClickedEvent" + }, + "acm010121jsd" : { + "type" : "ControlElement", + "id" : "acm010121jsd", + "name" : "withOnMousePressedEvent" + }, + "acm010122jsd" : { + "type" : "ControlElement", + "id" : "acm010122jsd", + "name" : "withCustomInitializer" + }, + "acm010123jsd" : { + "type" : "ControlElement", + "id" : "acm010123jsd", + "name" : "withContextMenu" + }, + "acm010124jsd" : { + "type" : "ControlElement", + "id" : "acm010124jsd", + "name" : "setOnDragDetected" + }, + "acm010125jsd" : { + "type" : "ControlElement", + "id" : "acm010125jsd", + "name" : "setOnDragDetected" + }, + "acm010126jsd" : { + "type" : "ControlElement", + "id" : "acm010126jsd", + "name" : "setOnDragDropped" + }, + "acm010127jsd" : { + "type" : "ControlElement", + "id" : "acm010127jsd", + "name" : "setOnDragDropped" + }, + "acm010128jsd" : { + "type" : "ControlElement", + "id" : "acm010128jsd", + "name" : "setOnDragEntered" + }, + "acm010129jsd" : { + "type" : "ControlElement", + "id" : "acm010129jsd", + "name" : "setOnMouseDragEntered" + }, + "acm010130jsd" : { + "type" : "ControlElement", + "id" : "acm010130jsd", + "name" : "setOnMouseDragEntered" + }, + "acm010131jsd" : { + "type" : "ControlElement", + "id" : "acm010131jsd", + "name" : "setOnDragExited" + }, + "acm010132jsd" : { + "type" : "ControlElement", + "id" : "acm010132jsd", + "name" : "setOnDragExited" + }, + "acm010133jsd" : { + "type" : "ControlElement", + "id" : "acm010133jsd", + "name" : "setOnDragOver" + }, + "acm010134jsd" : { + "type" : "ControlElement", + "id" : "acm010134jsd", + "name" : "setOnDragOver" + }, + "acm010135jsd" : { + "type" : "ControlElement", + "id" : "acm010135jsd", + "name" : "withPseudoClass" + }, + "acm010136jsd" : { + "type" : "ControlElement", + "id" : "acm010136jsd", + "name" : "install" + }, + "acm010137jsd" : { + "type" : "ControlElement", + "id" : "acm010137jsd", + "name" : "call" + }, + "acm010138jsd" : { + "type" : "ControlElement", + "id" : "acm010138jsd", + "name" : "updateItem" + }, + "acm010139jsd" : { + "type" : "ClassUnit", + "id" : "acm010139jsd", + "name" : "ViewModelTreeTableRowFactory", + "compilationUnitId" : "acm010115jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010139jsd" ], + "content" : [ "acm010120jsd", "acm010121jsd", "acm010122jsd", "acm010123jsd", "acm010124jsd", "acm010125jsd", "acm010126jsd", "acm010127jsd", "acm010128jsd", "acm010129jsd", "acm010130jsd", "acm010131jsd", "acm010132jsd", "acm010133jsd", "acm010134jsd", "acm010135jsd", "acm010136jsd", "acm010137jsd", "acm010138jsd" ] + }, + "acm010140jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010140jsd", + "name" : "ZipFileChooser", + "parentId" : "acm009491jsd", + "content" : [ "acm010147jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010141jsd" : { + "type" : "CodePackage", + "id" : "acm010141jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010142jsd" ] + }, + "acm010142jsd" : { + "type" : "CodePackage", + "id" : "acm010142jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010143jsd" ] + }, + "acm010143jsd" : { + "type" : "CodePackage", + "id" : "acm010143jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010144jsd" ] + }, + "acm010144jsd" : { + "type" : "CodePackage", + "id" : "acm010144jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010140jsd" ] + }, + "acm010145jsd" : { + "type" : "ControlElement", + "id" : "acm010145jsd", + "name" : "ZipFileChooser" + }, + "acm010146jsd" : { + "type" : "ControlElement", + "id" : "acm010146jsd", + "name" : "getSelectableZipEntries" + }, + "acm010147jsd" : { + "type" : "ClassUnit", + "id" : "acm010147jsd", + "name" : "ZipFileChooser", + "compilationUnitId" : "acm010140jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010145jsd", "acm010146jsd" ] + }, + "acm010148jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010148jsd", + "name" : "NumericFieldComparator", + "parentId" : "acm010153jsd", + "content" : [ "acm010157jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010149jsd" : { + "type" : "CodePackage", + "id" : "acm010149jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010150jsd" ] + }, + "acm010150jsd" : { + "type" : "CodePackage", + "id" : "acm010150jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010151jsd" ] + }, + "acm010151jsd" : { + "type" : "CodePackage", + "id" : "acm010151jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010152jsd" ] + }, + "acm010152jsd" : { + "type" : "CodePackage", + "id" : "acm010152jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010153jsd" ] + }, + "acm010153jsd" : { + "type" : "CodePackage", + "id" : "acm010153jsd", + "name" : "comparator", + "parentId" : "acm009491jsd", + "content" : [ "acm010148jsd", "acm010158jsd", "acm010166jsd", "acm022198jsd", "acm022218jsd", "acm022232jsd" ] + }, + "acm010154jsd" : { + "type" : "ControlElement", + "id" : "acm010154jsd", + "name" : "compare" + }, + "acm010155jsd" : { + "type" : "ControlElement", + "id" : "acm010155jsd", + "name" : "parseInt" + }, + "acm010156jsd" : { + "type" : "ControlElement", + "id" : "acm010156jsd", + "name" : "isNumber" + }, + "acm010157jsd" : { + "type" : "ClassUnit", + "id" : "acm010157jsd", + "name" : "NumericFieldComparator", + "compilationUnitId" : "acm010148jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010154jsd", "acm010155jsd", "acm010156jsd" ] + }, + "acm010158jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010158jsd", + "name" : "RankingFieldComparator", + "parentId" : "acm010153jsd", + "content" : [ "acm010165jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010159jsd" : { + "type" : "CodePackage", + "id" : "acm010159jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010160jsd" ] + }, + "acm010160jsd" : { + "type" : "CodePackage", + "id" : "acm010160jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010161jsd" ] + }, + "acm010161jsd" : { + "type" : "CodePackage", + "id" : "acm010161jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010162jsd" ] + }, + "acm010162jsd" : { + "type" : "CodePackage", + "id" : "acm010162jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010163jsd" ] + }, + "acm010163jsd" : { + "type" : "CodePackage", + "id" : "acm010163jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010158jsd" ] + }, + "acm010164jsd" : { + "type" : "ControlElement", + "id" : "acm010164jsd", + "name" : "compare" + }, + "acm010165jsd" : { + "type" : "ClassUnit", + "id" : "acm010165jsd", + "name" : "RankingFieldComparator", + "compilationUnitId" : "acm010158jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009156jsd" ], + "content" : [ "acm010164jsd" ] + }, + "acm010166jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010166jsd", + "name" : "SpecialFieldComparator", + "parentId" : "acm010153jsd", + "content" : [ "acm010173jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010167jsd" : { + "type" : "CodePackage", + "id" : "acm010167jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010168jsd" ] + }, + "acm010168jsd" : { + "type" : "CodePackage", + "id" : "acm010168jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010169jsd" ] + }, + "acm010169jsd" : { + "type" : "CodePackage", + "id" : "acm010169jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010170jsd" ] + }, + "acm010170jsd" : { + "type" : "CodePackage", + "id" : "acm010170jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010171jsd" ] + }, + "acm010171jsd" : { + "type" : "CodePackage", + "id" : "acm010171jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010166jsd" ] + }, + "acm010172jsd" : { + "type" : "ControlElement", + "id" : "acm010172jsd", + "name" : "compare" + }, + "acm010173jsd" : { + "type" : "ClassUnit", + "id" : "acm010173jsd", + "name" : "SpecialFieldComparator", + "compilationUnitId" : "acm010166jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009156jsd" ], + "content" : [ "acm010172jsd" ] + }, + "acm010174jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010174jsd", + "name" : "DiffHighlightingTextPane", + "parentId" : "acm010179jsd", + "content" : [ "acm010181jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "component" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010175jsd" : { + "type" : "CodePackage", + "id" : "acm010175jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010176jsd" ] + }, + "acm010176jsd" : { + "type" : "CodePackage", + "id" : "acm010176jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010177jsd" ] + }, + "acm010177jsd" : { + "type" : "CodePackage", + "id" : "acm010177jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010178jsd" ] + }, + "acm010178jsd" : { + "type" : "CodePackage", + "id" : "acm010178jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010179jsd" ] + }, + "acm010179jsd" : { + "type" : "CodePackage", + "id" : "acm010179jsd", + "name" : "component", + "parentId" : "acm009491jsd", + "content" : [ "acm010174jsd", "acm010182jsd", "acm010196jsd", "acm010214jsd" ] + }, + "acm010180jsd" : { + "type" : "ControlElement", + "id" : "acm010180jsd", + "name" : "DiffHighlightingTextPane" + }, + "acm010181jsd" : { + "type" : "ClassUnit", + "id" : "acm010181jsd", + "name" : "DiffHighlightingTextPane", + "compilationUnitId" : "acm010174jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010180jsd" ] + }, + "acm010182jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010182jsd", + "name" : "Tag", + "parentId" : "acm010179jsd", + "content" : [ "acm010195jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "component" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010183jsd" : { + "type" : "CodePackage", + "id" : "acm010183jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010184jsd" ] + }, + "acm010184jsd" : { + "type" : "CodePackage", + "id" : "acm010184jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010185jsd" ] + }, + "acm010185jsd" : { + "type" : "CodePackage", + "id" : "acm010185jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010186jsd" ] + }, + "acm010186jsd" : { + "type" : "CodePackage", + "id" : "acm010186jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010187jsd" ] + }, + "acm010187jsd" : { + "type" : "CodePackage", + "id" : "acm010187jsd", + "name" : "component", + "parentId" : null, + "content" : [ "acm010182jsd" ] + }, + "acm010188jsd" : { + "type" : "ControlElement", + "id" : "acm010188jsd", + "name" : "Tag" + }, + "acm010189jsd" : { + "type" : "ControlElement", + "id" : "acm010189jsd", + "name" : "Tag" + }, + "acm010190jsd" : { + "type" : "ControlElement", + "id" : "acm010190jsd", + "name" : "getValue" + }, + "acm010191jsd" : { + "type" : "ControlElement", + "id" : "acm010191jsd", + "name" : "setValue" + }, + "acm010192jsd" : { + "type" : "ControlElement", + "id" : "acm010192jsd", + "name" : "valueProperty" + }, + "acm010193jsd" : { + "type" : "ControlElement", + "id" : "acm010193jsd", + "name" : "removeButtonClicked" + }, + "acm010194jsd" : { + "type" : "ControlElement", + "id" : "acm010194jsd", + "name" : "setOnTagRemoved" + }, + "acm010195jsd" : { + "type" : "ClassUnit", + "id" : "acm010195jsd", + "name" : "Tag", + "compilationUnitId" : "acm010182jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010188jsd", "acm010189jsd", "acm010190jsd", "acm010191jsd", "acm010192jsd", "acm010193jsd", "acm010194jsd" ] + }, + "acm010196jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010196jsd", + "name" : "TagBar", + "parentId" : "acm010179jsd", + "content" : [ "acm010213jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "component" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010197jsd" : { + "type" : "CodePackage", + "id" : "acm010197jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010198jsd" ] + }, + "acm010198jsd" : { + "type" : "CodePackage", + "id" : "acm010198jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010199jsd" ] + }, + "acm010199jsd" : { + "type" : "CodePackage", + "id" : "acm010199jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010200jsd" ] + }, + "acm010200jsd" : { + "type" : "CodePackage", + "id" : "acm010200jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010201jsd" ] + }, + "acm010201jsd" : { + "type" : "CodePackage", + "id" : "acm010201jsd", + "name" : "component", + "parentId" : null, + "content" : [ "acm010196jsd" ] + }, + "acm010202jsd" : { + "type" : "ControlElement", + "id" : "acm010202jsd", + "name" : "TagBar" + }, + "acm010203jsd" : { + "type" : "ControlElement", + "id" : "acm010203jsd", + "name" : "getInputTextField" + }, + "acm010204jsd" : { + "type" : "ControlElement", + "id" : "acm010204jsd", + "name" : "getTags" + }, + "acm010205jsd" : { + "type" : "ControlElement", + "id" : "acm010205jsd", + "name" : "setTags" + }, + "acm010206jsd" : { + "type" : "ControlElement", + "id" : "acm010206jsd", + "name" : "tagsProperty" + }, + "acm010207jsd" : { + "type" : "ControlElement", + "id" : "acm010207jsd", + "name" : "onTagsChanged" + }, + "acm010208jsd" : { + "type" : "ControlElement", + "id" : "acm010208jsd", + "name" : "createTag" + }, + "acm010209jsd" : { + "type" : "ControlElement", + "id" : "acm010209jsd", + "name" : "addTextAsNewTag" + }, + "acm010210jsd" : { + "type" : "ControlElement", + "id" : "acm010210jsd", + "name" : "setStringConverter" + }, + "acm010211jsd" : { + "type" : "ControlElement", + "id" : "acm010211jsd", + "name" : "setOnTagClicked" + }, + "acm010212jsd" : { + "type" : "ControlElement", + "id" : "acm010212jsd", + "name" : "setFieldProperties" + }, + "acm010213jsd" : { + "type" : "ClassUnit", + "id" : "acm010213jsd", + "name" : "TagBar", + "compilationUnitId" : "acm010196jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010195jsd", "acm010213jsd", "acm018716jsd" ], + "content" : [ "acm010202jsd", "acm010203jsd", "acm010204jsd", "acm010205jsd", "acm010206jsd", "acm010207jsd", "acm010208jsd", "acm010209jsd", "acm010210jsd", "acm010211jsd", "acm010212jsd" ] + }, + "acm010214jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010214jsd", + "name" : "TemporalAccessorPicker", + "parentId" : "acm010179jsd", + "content" : [ "acm010234jsd", "acm010237jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "component" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010215jsd" : { + "type" : "CodePackage", + "id" : "acm010215jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010216jsd" ] + }, + "acm010216jsd" : { + "type" : "CodePackage", + "id" : "acm010216jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010217jsd" ] + }, + "acm010217jsd" : { + "type" : "CodePackage", + "id" : "acm010217jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010218jsd" ] + }, + "acm010218jsd" : { + "type" : "CodePackage", + "id" : "acm010218jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010219jsd" ] + }, + "acm010219jsd" : { + "type" : "CodePackage", + "id" : "acm010219jsd", + "name" : "component", + "parentId" : null, + "content" : [ "acm010214jsd" ] + }, + "acm010220jsd" : { + "type" : "ControlElement", + "id" : "acm010220jsd", + "name" : "TemporalAccessorPicker" + }, + "acm010221jsd" : { + "type" : "ControlElement", + "id" : "acm010221jsd", + "name" : "addCurrentTime" + }, + "acm010222jsd" : { + "type" : "ControlElement", + "id" : "acm010222jsd", + "name" : "getDate" + }, + "acm010223jsd" : { + "type" : "ControlElement", + "id" : "acm010223jsd", + "name" : "getLocalDate" + }, + "acm010224jsd" : { + "type" : "ControlElement", + "id" : "acm010224jsd", + "name" : "stringConverterProperty" + }, + "acm010225jsd" : { + "type" : "ControlElement", + "id" : "acm010225jsd", + "name" : "getStringConverter" + }, + "acm010226jsd" : { + "type" : "ControlElement", + "id" : "acm010226jsd", + "name" : "toString" + }, + "acm010227jsd" : { + "type" : "ControlElement", + "id" : "acm010227jsd", + "name" : "fromString" + }, + "acm010228jsd" : { + "type" : "ControlElement", + "id" : "acm010228jsd", + "name" : "setStringConverter" + }, + "acm010229jsd" : { + "type" : "ControlElement", + "id" : "acm010229jsd", + "name" : "getTemporalAccessorValue" + }, + "acm010230jsd" : { + "type" : "ControlElement", + "id" : "acm010230jsd", + "name" : "setTemporalAccessorValue" + }, + "acm010231jsd" : { + "type" : "ControlElement", + "id" : "acm010231jsd", + "name" : "temporalAccessorValueProperty" + }, + "acm010232jsd" : { + "type" : "ControlElement", + "id" : "acm010232jsd", + "name" : "toString" + }, + "acm010233jsd" : { + "type" : "ControlElement", + "id" : "acm010233jsd", + "name" : "fromString" + }, + "acm010234jsd" : { + "type" : "ClassUnit", + "id" : "acm010234jsd", + "name" : "TemporalAccessorPicker", + "compilationUnitId" : "acm010214jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010237jsd" ], + "content" : [ "acm010220jsd", "acm010221jsd", "acm010222jsd", "acm010223jsd", "acm010224jsd", "acm010225jsd", "acm010226jsd", "acm010227jsd", "acm010228jsd", "acm010229jsd", "acm010230jsd", "acm010231jsd", "acm010232jsd", "acm010233jsd" ] + }, + "acm010235jsd" : { + "type" : "ControlElement", + "id" : "acm010235jsd", + "name" : "toString" + }, + "acm010236jsd" : { + "type" : "ControlElement", + "id" : "acm010236jsd", + "name" : "fromString" + }, + "acm010237jsd" : { + "type" : "ClassUnit", + "id" : "acm010237jsd", + "name" : "InternalConverter", + "compilationUnitId" : "acm010214jsd", + "parentDatatypeId" : "acm010234jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010235jsd", "acm010236jsd" ] + }, + "acm010238jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010238jsd", + "name" : "UiThreadBinding", + "parentId" : "acm010243jsd", + "content" : [ "acm010254jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010239jsd" : { + "type" : "CodePackage", + "id" : "acm010239jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010240jsd" ] + }, + "acm010240jsd" : { + "type" : "CodePackage", + "id" : "acm010240jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010241jsd" ] + }, + "acm010241jsd" : { + "type" : "CodePackage", + "id" : "acm010241jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010242jsd" ] + }, + "acm010242jsd" : { + "type" : "CodePackage", + "id" : "acm010242jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010243jsd" ] + }, + "acm010243jsd" : { + "type" : "CodePackage", + "id" : "acm010243jsd", + "name" : "uithreadaware", + "parentId" : "acm009491jsd", + "content" : [ "acm010238jsd", "acm010255jsd", "acm010266jsd", "acm010274jsd", "acm010285jsd", "acm010296jsd", "acm010337jsd" ] + }, + "acm010244jsd" : { + "type" : "ControlElement", + "id" : "acm010244jsd", + "name" : "UiThreadBinding" + }, + "acm010245jsd" : { + "type" : "ControlElement", + "id" : "acm010245jsd", + "name" : "addListener" + }, + "acm010246jsd" : { + "type" : "ControlElement", + "id" : "acm010246jsd", + "name" : "removeListener" + }, + "acm010247jsd" : { + "type" : "ControlElement", + "id" : "acm010247jsd", + "name" : "addListener" + }, + "acm010248jsd" : { + "type" : "ControlElement", + "id" : "acm010248jsd", + "name" : "removeListener" + }, + "acm010249jsd" : { + "type" : "ControlElement", + "id" : "acm010249jsd", + "name" : "getValue" + }, + "acm010250jsd" : { + "type" : "ControlElement", + "id" : "acm010250jsd", + "name" : "isValid" + }, + "acm010251jsd" : { + "type" : "ControlElement", + "id" : "acm010251jsd", + "name" : "invalidate" + }, + "acm010252jsd" : { + "type" : "ControlElement", + "id" : "acm010252jsd", + "name" : "getDependencies" + }, + "acm010253jsd" : { + "type" : "ControlElement", + "id" : "acm010253jsd", + "name" : "dispose" + }, + "acm010254jsd" : { + "type" : "ClassUnit", + "id" : "acm010254jsd", + "name" : "UiThreadBinding", + "compilationUnitId" : "acm010238jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010265jsd", "acm010284jsd" ], + "content" : [ "acm010244jsd", "acm010245jsd", "acm010246jsd", "acm010247jsd", "acm010248jsd", "acm010249jsd", "acm010250jsd", "acm010251jsd", "acm010252jsd", "acm010253jsd" ] + }, + "acm010255jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010255jsd", + "name" : "UiThreadChangeListener", + "parentId" : "acm010243jsd", + "content" : [ "acm010265jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010256jsd" : { + "type" : "CodePackage", + "id" : "acm010256jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010257jsd" ] + }, + "acm010257jsd" : { + "type" : "CodePackage", + "id" : "acm010257jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010258jsd" ] + }, + "acm010258jsd" : { + "type" : "CodePackage", + "id" : "acm010258jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010259jsd" ] + }, + "acm010259jsd" : { + "type" : "CodePackage", + "id" : "acm010259jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010260jsd" ] + }, + "acm010260jsd" : { + "type" : "CodePackage", + "id" : "acm010260jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010255jsd" ] + }, + "acm010261jsd" : { + "type" : "ControlElement", + "id" : "acm010261jsd", + "name" : "UiThreadChangeListener" + }, + "acm010262jsd" : { + "type" : "ControlElement", + "id" : "acm010262jsd", + "name" : "changed" + }, + "acm010263jsd" : { + "type" : "ControlElement", + "id" : "acm010263jsd", + "name" : "equals" + }, + "acm010264jsd" : { + "type" : "ControlElement", + "id" : "acm010264jsd", + "name" : "hashCode" + }, + "acm010265jsd" : { + "type" : "ClassUnit", + "id" : "acm010265jsd", + "name" : "UiThreadChangeListener", + "compilationUnitId" : "acm010255jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010261jsd", "acm010262jsd", "acm010263jsd", "acm010264jsd" ] + }, + "acm010266jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010266jsd", + "name" : "UiThreadHelper", + "parentId" : "acm010243jsd", + "content" : [ "acm010273jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010267jsd" : { + "type" : "CodePackage", + "id" : "acm010267jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010268jsd" ] + }, + "acm010268jsd" : { + "type" : "CodePackage", + "id" : "acm010268jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010269jsd" ] + }, + "acm010269jsd" : { + "type" : "CodePackage", + "id" : "acm010269jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010270jsd" ] + }, + "acm010270jsd" : { + "type" : "CodePackage", + "id" : "acm010270jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010271jsd" ] + }, + "acm010271jsd" : { + "type" : "CodePackage", + "id" : "acm010271jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010266jsd" ] + }, + "acm010272jsd" : { + "type" : "ControlElement", + "id" : "acm010272jsd", + "name" : "ensureUiThreadExecution" + }, + "acm010273jsd" : { + "type" : "ClassUnit", + "id" : "acm010273jsd", + "name" : "UiThreadHelper", + "compilationUnitId" : "acm010266jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010272jsd" ] + }, + "acm010274jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010274jsd", + "name" : "UiThreadInvalidationListener", + "parentId" : "acm010243jsd", + "content" : [ "acm010284jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010275jsd" : { + "type" : "CodePackage", + "id" : "acm010275jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010276jsd" ] + }, + "acm010276jsd" : { + "type" : "CodePackage", + "id" : "acm010276jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010277jsd" ] + }, + "acm010277jsd" : { + "type" : "CodePackage", + "id" : "acm010277jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010278jsd" ] + }, + "acm010278jsd" : { + "type" : "CodePackage", + "id" : "acm010278jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010279jsd" ] + }, + "acm010279jsd" : { + "type" : "CodePackage", + "id" : "acm010279jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010274jsd" ] + }, + "acm010280jsd" : { + "type" : "ControlElement", + "id" : "acm010280jsd", + "name" : "UiThreadInvalidationListener" + }, + "acm010281jsd" : { + "type" : "ControlElement", + "id" : "acm010281jsd", + "name" : "invalidated" + }, + "acm010282jsd" : { + "type" : "ControlElement", + "id" : "acm010282jsd", + "name" : "equals" + }, + "acm010283jsd" : { + "type" : "ControlElement", + "id" : "acm010283jsd", + "name" : "hashCode" + }, + "acm010284jsd" : { + "type" : "ClassUnit", + "id" : "acm010284jsd", + "name" : "UiThreadInvalidationListener", + "compilationUnitId" : "acm010274jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010280jsd", "acm010281jsd", "acm010282jsd", "acm010283jsd" ] + }, + "acm010285jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010285jsd", + "name" : "UiThreadListChangeListener", + "parentId" : "acm010243jsd", + "content" : [ "acm010295jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010286jsd" : { + "type" : "CodePackage", + "id" : "acm010286jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010287jsd" ] + }, + "acm010287jsd" : { + "type" : "CodePackage", + "id" : "acm010287jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010288jsd" ] + }, + "acm010288jsd" : { + "type" : "CodePackage", + "id" : "acm010288jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010289jsd" ] + }, + "acm010289jsd" : { + "type" : "CodePackage", + "id" : "acm010289jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010290jsd" ] + }, + "acm010290jsd" : { + "type" : "CodePackage", + "id" : "acm010290jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010285jsd" ] + }, + "acm010291jsd" : { + "type" : "ControlElement", + "id" : "acm010291jsd", + "name" : "UiThreadListChangeListener" + }, + "acm010292jsd" : { + "type" : "ControlElement", + "id" : "acm010292jsd", + "name" : "onChanged" + }, + "acm010293jsd" : { + "type" : "ControlElement", + "id" : "acm010293jsd", + "name" : "equals" + }, + "acm010294jsd" : { + "type" : "ControlElement", + "id" : "acm010294jsd", + "name" : "hashCode" + }, + "acm010295jsd" : { + "type" : "ClassUnit", + "id" : "acm010295jsd", + "name" : "UiThreadListChangeListener", + "compilationUnitId" : "acm010285jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010291jsd", "acm010292jsd", "acm010293jsd", "acm010294jsd" ] + }, + "acm010296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010296jsd", + "name" : "UiThreadObservableList", + "parentId" : "acm010243jsd", + "content" : [ "acm010336jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010297jsd" : { + "type" : "CodePackage", + "id" : "acm010297jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010298jsd" ] + }, + "acm010298jsd" : { + "type" : "CodePackage", + "id" : "acm010298jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010299jsd" ] + }, + "acm010299jsd" : { + "type" : "CodePackage", + "id" : "acm010299jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010300jsd" ] + }, + "acm010300jsd" : { + "type" : "CodePackage", + "id" : "acm010300jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010301jsd" ] + }, + "acm010301jsd" : { + "type" : "CodePackage", + "id" : "acm010301jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010296jsd" ] + }, + "acm010302jsd" : { + "type" : "ControlElement", + "id" : "acm010302jsd", + "name" : "UiThreadObservableList" + }, + "acm010303jsd" : { + "type" : "ControlElement", + "id" : "acm010303jsd", + "name" : "addListener" + }, + "acm010304jsd" : { + "type" : "ControlElement", + "id" : "acm010304jsd", + "name" : "removeListener" + }, + "acm010305jsd" : { + "type" : "ControlElement", + "id" : "acm010305jsd", + "name" : "addAll" + }, + "acm010306jsd" : { + "type" : "ControlElement", + "id" : "acm010306jsd", + "name" : "setAll" + }, + "acm010307jsd" : { + "type" : "ControlElement", + "id" : "acm010307jsd", + "name" : "setAll" + }, + "acm010308jsd" : { + "type" : "ControlElement", + "id" : "acm010308jsd", + "name" : "removeAll" + }, + "acm010309jsd" : { + "type" : "ControlElement", + "id" : "acm010309jsd", + "name" : "retainAll" + }, + "acm010310jsd" : { + "type" : "ControlElement", + "id" : "acm010310jsd", + "name" : "remove" + }, + "acm010311jsd" : { + "type" : "ControlElement", + "id" : "acm010311jsd", + "name" : "size" + }, + "acm010312jsd" : { + "type" : "ControlElement", + "id" : "acm010312jsd", + "name" : "isEmpty" + }, + "acm010313jsd" : { + "type" : "ControlElement", + "id" : "acm010313jsd", + "name" : "contains" + }, + "acm010314jsd" : { + "type" : "ControlElement", + "id" : "acm010314jsd", + "name" : "iterator" + }, + "acm010315jsd" : { + "type" : "ControlElement", + "id" : "acm010315jsd", + "name" : "toArray" + }, + "acm010316jsd" : { + "type" : "ControlElement", + "id" : "acm010316jsd", + "name" : "toArray" + }, + "acm010317jsd" : { + "type" : "ControlElement", + "id" : "acm010317jsd", + "name" : "add" + }, + "acm010318jsd" : { + "type" : "ControlElement", + "id" : "acm010318jsd", + "name" : "remove" + }, + "acm010319jsd" : { + "type" : "ControlElement", + "id" : "acm010319jsd", + "name" : "containsAll" + }, + "acm010320jsd" : { + "type" : "ControlElement", + "id" : "acm010320jsd", + "name" : "addAll" + }, + "acm010321jsd" : { + "type" : "ControlElement", + "id" : "acm010321jsd", + "name" : "addAll" + }, + "acm010322jsd" : { + "type" : "ControlElement", + "id" : "acm010322jsd", + "name" : "removeAll" + }, + "acm010323jsd" : { + "type" : "ControlElement", + "id" : "acm010323jsd", + "name" : "retainAll" + }, + "acm010324jsd" : { + "type" : "ControlElement", + "id" : "acm010324jsd", + "name" : "clear" + }, + "acm010325jsd" : { + "type" : "ControlElement", + "id" : "acm010325jsd", + "name" : "get" + }, + "acm010326jsd" : { + "type" : "ControlElement", + "id" : "acm010326jsd", + "name" : "set" + }, + "acm010327jsd" : { + "type" : "ControlElement", + "id" : "acm010327jsd", + "name" : "add" + }, + "acm010328jsd" : { + "type" : "ControlElement", + "id" : "acm010328jsd", + "name" : "remove" + }, + "acm010329jsd" : { + "type" : "ControlElement", + "id" : "acm010329jsd", + "name" : "indexOf" + }, + "acm010330jsd" : { + "type" : "ControlElement", + "id" : "acm010330jsd", + "name" : "lastIndexOf" + }, + "acm010331jsd" : { + "type" : "ControlElement", + "id" : "acm010331jsd", + "name" : "listIterator" + }, + "acm010332jsd" : { + "type" : "ControlElement", + "id" : "acm010332jsd", + "name" : "listIterator" + }, + "acm010333jsd" : { + "type" : "ControlElement", + "id" : "acm010333jsd", + "name" : "subList" + }, + "acm010334jsd" : { + "type" : "ControlElement", + "id" : "acm010334jsd", + "name" : "addListener" + }, + "acm010335jsd" : { + "type" : "ControlElement", + "id" : "acm010335jsd", + "name" : "removeListener" + }, + "acm010336jsd" : { + "type" : "ClassUnit", + "id" : "acm010336jsd", + "name" : "UiThreadObservableList", + "compilationUnitId" : "acm010296jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010284jsd", "acm010295jsd" ], + "content" : [ "acm010302jsd", "acm010303jsd", "acm010304jsd", "acm010305jsd", "acm010306jsd", "acm010307jsd", "acm010308jsd", "acm010309jsd", "acm010310jsd", "acm010311jsd", "acm010312jsd", "acm010313jsd", "acm010314jsd", "acm010315jsd", "acm010316jsd", "acm010317jsd", "acm010318jsd", "acm010319jsd", "acm010320jsd", "acm010321jsd", "acm010322jsd", "acm010323jsd", "acm010324jsd", "acm010325jsd", "acm010326jsd", "acm010327jsd", "acm010328jsd", "acm010329jsd", "acm010330jsd", "acm010331jsd", "acm010332jsd", "acm010333jsd", "acm010334jsd", "acm010335jsd" ] + }, + "acm010337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010337jsd", + "name" : "UiThreadStringProperty", + "parentId" : "acm010243jsd", + "content" : [ "acm010355jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "gui", "util", "uithreadaware" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010338jsd" : { + "type" : "CodePackage", + "id" : "acm010338jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010339jsd" ] + }, + "acm010339jsd" : { + "type" : "CodePackage", + "id" : "acm010339jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010340jsd" ] + }, + "acm010340jsd" : { + "type" : "CodePackage", + "id" : "acm010340jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm010341jsd" ] + }, + "acm010341jsd" : { + "type" : "CodePackage", + "id" : "acm010341jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010342jsd" ] + }, + "acm010342jsd" : { + "type" : "CodePackage", + "id" : "acm010342jsd", + "name" : "uithreadaware", + "parentId" : null, + "content" : [ "acm010337jsd" ] + }, + "acm010343jsd" : { + "type" : "ControlElement", + "id" : "acm010343jsd", + "name" : "UiThreadStringProperty" + }, + "acm010344jsd" : { + "type" : "ControlElement", + "id" : "acm010344jsd", + "name" : "bind" + }, + "acm010345jsd" : { + "type" : "ControlElement", + "id" : "acm010345jsd", + "name" : "unbind" + }, + "acm010346jsd" : { + "type" : "ControlElement", + "id" : "acm010346jsd", + "name" : "isBound" + }, + "acm010347jsd" : { + "type" : "ControlElement", + "id" : "acm010347jsd", + "name" : "getBean" + }, + "acm010348jsd" : { + "type" : "ControlElement", + "id" : "acm010348jsd", + "name" : "getName" + }, + "acm010349jsd" : { + "type" : "ControlElement", + "id" : "acm010349jsd", + "name" : "get" + }, + "acm010350jsd" : { + "type" : "ControlElement", + "id" : "acm010350jsd", + "name" : "set" + }, + "acm010351jsd" : { + "type" : "ControlElement", + "id" : "acm010351jsd", + "name" : "addListener" + }, + "acm010352jsd" : { + "type" : "ControlElement", + "id" : "acm010352jsd", + "name" : "removeListener" + }, + "acm010353jsd" : { + "type" : "ControlElement", + "id" : "acm010353jsd", + "name" : "addListener" + }, + "acm010354jsd" : { + "type" : "ControlElement", + "id" : "acm010354jsd", + "name" : "removeListener" + }, + "acm010355jsd" : { + "type" : "ClassUnit", + "id" : "acm010355jsd", + "name" : "UiThreadStringProperty", + "compilationUnitId" : "acm010337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010265jsd", "acm010284jsd" ], + "content" : [ "acm010343jsd", "acm010344jsd", "acm010345jsd", "acm010346jsd", "acm010347jsd", "acm010348jsd", "acm010349jsd", "acm010350jsd", "acm010351jsd", "acm010352jsd", "acm010353jsd", "acm010354jsd" ] + }, + "acm010356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010356jsd", + "name" : "JabRefException", + "parentId" : "acm001340jsd", + "content" : [ "acm010366jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010357jsd" : { + "type" : "CodePackage", + "id" : "acm010357jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010358jsd" ] + }, + "acm010358jsd" : { + "type" : "CodePackage", + "id" : "acm010358jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010359jsd" ] + }, + "acm010359jsd" : { + "type" : "CodePackage", + "id" : "acm010359jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010356jsd" ] + }, + "acm010360jsd" : { + "type" : "ControlElement", + "id" : "acm010360jsd", + "name" : "JabRefException" + }, + "acm010361jsd" : { + "type" : "ControlElement", + "id" : "acm010361jsd", + "name" : "JabRefException" + }, + "acm010362jsd" : { + "type" : "ControlElement", + "id" : "acm010362jsd", + "name" : "JabRefException" + }, + "acm010363jsd" : { + "type" : "ControlElement", + "id" : "acm010363jsd", + "name" : "JabRefException" + }, + "acm010364jsd" : { + "type" : "ControlElement", + "id" : "acm010364jsd", + "name" : "JabRefException" + }, + "acm010365jsd" : { + "type" : "ControlElement", + "id" : "acm010365jsd", + "name" : "getLocalizedMessage" + }, + "acm010366jsd" : { + "type" : "ClassUnit", + "id" : "acm010366jsd", + "name" : "JabRefException", + "compilationUnitId" : "acm010356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010366jsd" ], + "content" : [ "acm010360jsd", "acm010361jsd", "acm010362jsd", "acm010363jsd", "acm010364jsd", "acm010365jsd" ] + }, + "acm010367jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010367jsd", + "name" : "TypedBibEntry", + "parentId" : "acm001340jsd", + "content" : [ "acm010375jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010368jsd" : { + "type" : "CodePackage", + "id" : "acm010368jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010369jsd" ] + }, + "acm010369jsd" : { + "type" : "CodePackage", + "id" : "acm010369jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010370jsd" ] + }, + "acm010370jsd" : { + "type" : "CodePackage", + "id" : "acm010370jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010367jsd" ] + }, + "acm010371jsd" : { + "type" : "ControlElement", + "id" : "acm010371jsd", + "name" : "TypedBibEntry" + }, + "acm010372jsd" : { + "type" : "ControlElement", + "id" : "acm010372jsd", + "name" : "TypedBibEntry" + }, + "acm010373jsd" : { + "type" : "ControlElement", + "id" : "acm010373jsd", + "name" : "hasAllRequiredFields" + }, + "acm010374jsd" : { + "type" : "ControlElement", + "id" : "acm010374jsd", + "name" : "getTypeForDisplay" + }, + "acm010375jsd" : { + "type" : "ClassUnit", + "id" : "acm010375jsd", + "name" : "TypedBibEntry", + "compilationUnitId" : "acm010367jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd" ], + "content" : [ "acm010371jsd", "acm010372jsd", "acm010373jsd", "acm010374jsd" ] + }, + "acm010376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010376jsd", + "name" : "WatchServiceUnavailableException", + "parentId" : "acm001340jsd", + "content" : [ "acm010381jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010377jsd" : { + "type" : "CodePackage", + "id" : "acm010377jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010378jsd" ] + }, + "acm010378jsd" : { + "type" : "CodePackage", + "id" : "acm010378jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010379jsd" ] + }, + "acm010379jsd" : { + "type" : "CodePackage", + "id" : "acm010379jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010376jsd" ] + }, + "acm010380jsd" : { + "type" : "ControlElement", + "id" : "acm010380jsd", + "name" : "WatchServiceUnavailableException" + }, + "acm010381jsd" : { + "type" : "ClassUnit", + "id" : "acm010381jsd", + "name" : "WatchServiceUnavailableException", + "compilationUnitId" : "acm010376jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010366jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010380jsd" ] + }, + "acm010382jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010382jsd", + "name" : "AutosaveManager", + "parentId" : "acm010386jsd", + "content" : [ "acm010394jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "autosaveandbackup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010383jsd" : { + "type" : "CodePackage", + "id" : "acm010383jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010384jsd" ] + }, + "acm010384jsd" : { + "type" : "CodePackage", + "id" : "acm010384jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010385jsd" ] + }, + "acm010385jsd" : { + "type" : "CodePackage", + "id" : "acm010385jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010386jsd" ] + }, + "acm010386jsd" : { + "type" : "CodePackage", + "id" : "acm010386jsd", + "name" : "autosaveandbackup", + "parentId" : "acm001340jsd", + "content" : [ "acm010382jsd", "acm010395jsd", "acm022258jsd", "acm022271jsd" ] + }, + "acm010387jsd" : { + "type" : "ControlElement", + "id" : "acm010387jsd", + "name" : "AutosaveManager" + }, + "acm010388jsd" : { + "type" : "ControlElement", + "id" : "acm010388jsd", + "name" : "listen" + }, + "acm010389jsd" : { + "type" : "ControlElement", + "id" : "acm010389jsd", + "name" : "shutdown" + }, + "acm010390jsd" : { + "type" : "ControlElement", + "id" : "acm010390jsd", + "name" : "start" + }, + "acm010391jsd" : { + "type" : "ControlElement", + "id" : "acm010391jsd", + "name" : "shutdown" + }, + "acm010392jsd" : { + "type" : "ControlElement", + "id" : "acm010392jsd", + "name" : "registerListener" + }, + "acm010393jsd" : { + "type" : "ControlElement", + "id" : "acm010393jsd", + "name" : "unregisterListener" + }, + "acm010394jsd" : { + "type" : "ClassUnit", + "id" : "acm010394jsd", + "name" : "AutosaveManager", + "compilationUnitId" : "acm010382jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010394jsd", "acm017292jsd", "acm018022jsd", "acm018089jsd" ], + "content" : [ "acm010387jsd", "acm010388jsd", "acm010389jsd", "acm010390jsd", "acm010391jsd", "acm010392jsd", "acm010393jsd" ] + }, + "acm010395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010395jsd", + "name" : "BackupManager", + "parentId" : "acm010386jsd", + "content" : [ "acm010417jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "autosaveandbackup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010396jsd" : { + "type" : "CodePackage", + "id" : "acm010396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010397jsd" ] + }, + "acm010397jsd" : { + "type" : "CodePackage", + "id" : "acm010397jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010398jsd" ] + }, + "acm010398jsd" : { + "type" : "CodePackage", + "id" : "acm010398jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010399jsd" ] + }, + "acm010399jsd" : { + "type" : "CodePackage", + "id" : "acm010399jsd", + "name" : "autosaveandbackup", + "parentId" : null, + "content" : [ "acm010395jsd" ] + }, + "acm010400jsd" : { + "type" : "ControlElement", + "id" : "acm010400jsd", + "name" : "BackupManager" + }, + "acm010401jsd" : { + "type" : "ControlElement", + "id" : "acm010401jsd", + "name" : "getBackupPathForNewBackup" + }, + "acm010402jsd" : { + "type" : "ControlElement", + "id" : "acm010402jsd", + "name" : "getLatestBackupPath" + }, + "acm010403jsd" : { + "type" : "ControlElement", + "id" : "acm010403jsd", + "name" : "start" + }, + "acm010404jsd" : { + "type" : "ControlElement", + "id" : "acm010404jsd", + "name" : "discardBackup" + }, + "acm010405jsd" : { + "type" : "ControlElement", + "id" : "acm010405jsd", + "name" : "shutdown" + }, + "acm010406jsd" : { + "type" : "ControlElement", + "id" : "acm010406jsd", + "name" : "backupFileDiffers" + }, + "acm010407jsd" : { + "type" : "ControlElement", + "id" : "acm010407jsd", + "name" : "restoreBackup" + }, + "acm010408jsd" : { + "type" : "ControlElement", + "id" : "acm010408jsd", + "name" : "determineBackupPathForNewBackup" + }, + "acm010409jsd" : { + "type" : "ControlElement", + "id" : "acm010409jsd", + "name" : "performBackup" + }, + "acm010410jsd" : { + "type" : "ControlElement", + "id" : "acm010410jsd", + "name" : "determineDiscardedFile" + }, + "acm010411jsd" : { + "type" : "ControlElement", + "id" : "acm010411jsd", + "name" : "discardBackup" + }, + "acm010412jsd" : { + "type" : "ControlElement", + "id" : "acm010412jsd", + "name" : "logIfCritical" + }, + "acm010413jsd" : { + "type" : "ControlElement", + "id" : "acm010413jsd", + "name" : "listen" + }, + "acm010414jsd" : { + "type" : "ControlElement", + "id" : "acm010414jsd", + "name" : "startBackupTask" + }, + "acm010415jsd" : { + "type" : "ControlElement", + "id" : "acm010415jsd", + "name" : "fillQueue" + }, + "acm010416jsd" : { + "type" : "ControlElement", + "id" : "acm010416jsd", + "name" : "shutdown" + }, + "acm010417jsd" : { + "type" : "ClassUnit", + "id" : "acm010417jsd", + "name" : "BackupManager", + "compilationUnitId" : "acm010395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010417jsd", "acm010532jsd", "acm011415jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm017292jsd", "acm018022jsd", "acm018089jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm010400jsd", "acm010401jsd", "acm010402jsd", "acm010403jsd", "acm010404jsd", "acm010405jsd", "acm010406jsd", "acm010407jsd", "acm010408jsd", "acm010409jsd", "acm010410jsd", "acm010411jsd", "acm010412jsd", "acm010413jsd", "acm010414jsd", "acm010415jsd", "acm010416jsd" ] + }, + "acm010418jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010418jsd", + "name" : "AuxParser", + "parentId" : "acm010422jsd", + "content" : [ "acm010424jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "auxparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010419jsd" : { + "type" : "CodePackage", + "id" : "acm010419jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010420jsd" ] + }, + "acm010420jsd" : { + "type" : "CodePackage", + "id" : "acm010420jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010421jsd" ] + }, + "acm010421jsd" : { + "type" : "CodePackage", + "id" : "acm010421jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010422jsd" ] + }, + "acm010422jsd" : { + "type" : "CodePackage", + "id" : "acm010422jsd", + "name" : "auxparser", + "parentId" : "acm001340jsd", + "content" : [ "acm010418jsd", "acm010425jsd", "acm010445jsd", "acm022284jsd", "acm022299jsd" ] + }, + "acm010423jsd" : { + "type" : "ControlElement", + "id" : "acm010423jsd", + "name" : "parse" + }, + "acm010424jsd" : { + "type" : "InterfaceUnit", + "id" : "acm010424jsd", + "name" : "AuxParser", + "compilationUnitId" : "acm010418jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010444jsd" ], + "content" : [ "acm010423jsd" ] + }, + "acm010425jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010425jsd", + "name" : "AuxParserResult", + "parentId" : "acm010422jsd", + "content" : [ "acm010444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "auxparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010426jsd" : { + "type" : "CodePackage", + "id" : "acm010426jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010427jsd" ] + }, + "acm010427jsd" : { + "type" : "CodePackage", + "id" : "acm010427jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010428jsd" ] + }, + "acm010428jsd" : { + "type" : "CodePackage", + "id" : "acm010428jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010429jsd" ] + }, + "acm010429jsd" : { + "type" : "CodePackage", + "id" : "acm010429jsd", + "name" : "auxparser", + "parentId" : null, + "content" : [ "acm010425jsd" ] + }, + "acm010430jsd" : { + "type" : "ControlElement", + "id" : "acm010430jsd", + "name" : "AuxParserResult" + }, + "acm010431jsd" : { + "type" : "ControlElement", + "id" : "acm010431jsd", + "name" : "getGeneratedBibDatabase" + }, + "acm010432jsd" : { + "type" : "ControlElement", + "id" : "acm010432jsd", + "name" : "getUnresolvedKeys" + }, + "acm010433jsd" : { + "type" : "ControlElement", + "id" : "acm010433jsd", + "name" : "getFoundKeysInAux" + }, + "acm010434jsd" : { + "type" : "ControlElement", + "id" : "acm010434jsd", + "name" : "getResolvedKeysCount" + }, + "acm010435jsd" : { + "type" : "ControlElement", + "id" : "acm010435jsd", + "name" : "getUnresolvedKeysCount" + }, + "acm010436jsd" : { + "type" : "ControlElement", + "id" : "acm010436jsd", + "name" : "getCrossRefEntriesCount" + }, + "acm010437jsd" : { + "type" : "ControlElement", + "id" : "acm010437jsd", + "name" : "increaseCrossRefEntriesCounter" + }, + "acm010438jsd" : { + "type" : "ControlElement", + "id" : "acm010438jsd", + "name" : "increaseNestedAuxFilesCounter" + }, + "acm010439jsd" : { + "type" : "ControlElement", + "id" : "acm010439jsd", + "name" : "insertStrings" + }, + "acm010440jsd" : { + "type" : "ControlElement", + "id" : "acm010440jsd", + "name" : "getMasterDatabase" + }, + "acm010441jsd" : { + "type" : "ControlElement", + "id" : "acm010441jsd", + "name" : "getNestedAuxCount" + }, + "acm010442jsd" : { + "type" : "ControlElement", + "id" : "acm010442jsd", + "name" : "getInsertedStrings" + }, + "acm010443jsd" : { + "type" : "ControlElement", + "id" : "acm010443jsd", + "name" : "getUniqueKeys" + }, + "acm010444jsd" : { + "type" : "ClassUnit", + "id" : "acm010444jsd", + "name" : "AuxParserResult", + "compilationUnitId" : "acm010425jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018367jsd" ], + "content" : [ "acm010430jsd", "acm010431jsd", "acm010432jsd", "acm010433jsd", "acm010434jsd", "acm010435jsd", "acm010436jsd", "acm010437jsd", "acm010438jsd", "acm010439jsd", "acm010440jsd", "acm010441jsd", "acm010442jsd", "acm010443jsd" ] + }, + "acm010445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010445jsd", + "name" : "DefaultAuxParser", + "parentId" : "acm010422jsd", + "content" : [ "acm010458jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "auxparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010446jsd" : { + "type" : "CodePackage", + "id" : "acm010446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010447jsd" ] + }, + "acm010447jsd" : { + "type" : "CodePackage", + "id" : "acm010447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010448jsd" ] + }, + "acm010448jsd" : { + "type" : "CodePackage", + "id" : "acm010448jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010449jsd" ] + }, + "acm010449jsd" : { + "type" : "CodePackage", + "id" : "acm010449jsd", + "name" : "auxparser", + "parentId" : null, + "content" : [ "acm010445jsd" ] + }, + "acm010450jsd" : { + "type" : "ControlElement", + "id" : "acm010450jsd", + "name" : "DefaultAuxParser" + }, + "acm010451jsd" : { + "type" : "ControlElement", + "id" : "acm010451jsd", + "name" : "parse" + }, + "acm010452jsd" : { + "type" : "ControlElement", + "id" : "acm010452jsd", + "name" : "parseAuxFile" + }, + "acm010453jsd" : { + "type" : "ControlElement", + "id" : "acm010453jsd", + "name" : "matchNestedAux" + }, + "acm010454jsd" : { + "type" : "ControlElement", + "id" : "acm010454jsd", + "name" : "matchCitation" + }, + "acm010455jsd" : { + "type" : "ControlElement", + "id" : "acm010455jsd", + "name" : "resolveTags" + }, + "acm010456jsd" : { + "type" : "ControlElement", + "id" : "acm010456jsd", + "name" : "resolveCrossReferences" + }, + "acm010457jsd" : { + "type" : "ControlElement", + "id" : "acm010457jsd", + "name" : "insertEntries" + }, + "acm010458jsd" : { + "type" : "ClassUnit", + "id" : "acm010458jsd", + "name" : "DefaultAuxParser", + "compilationUnitId" : "acm010445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm010424jsd" ], + "datatypeReferencesIds" : [ "acm010444jsd", "acm010458jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm010450jsd", "acm010451jsd", "acm010452jsd", "acm010453jsd", "acm010454jsd", "acm010455jsd", "acm010456jsd", "acm010457jsd" ] + }, + "acm010459jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010459jsd", + "name" : "BibEntryWriter", + "parentId" : "acm010463jsd", + "content" : [ "acm010474jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010460jsd" : { + "type" : "CodePackage", + "id" : "acm010460jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010461jsd" ] + }, + "acm010461jsd" : { + "type" : "CodePackage", + "id" : "acm010461jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010462jsd" ] + }, + "acm010462jsd" : { + "type" : "CodePackage", + "id" : "acm010462jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010463jsd" ] + }, + "acm010463jsd" : { + "type" : "CodePackage", + "id" : "acm010463jsd", + "name" : "bibtex", + "parentId" : "acm001340jsd", + "content" : [ "acm010459jsd", "acm010475jsd", "acm010484jsd", "acm010498jsd", "acm010514jsd", "acm010526jsd", "acm022305jsd", "acm022321jsd", "acm022364jsd", "acm022374jsd", "acm022393jsd", "acm010538jsd" ] + }, + "acm010464jsd" : { + "type" : "ControlElement", + "id" : "acm010464jsd", + "name" : "BibEntryWriter" + }, + "acm010465jsd" : { + "type" : "ControlElement", + "id" : "acm010465jsd", + "name" : "serializeAll" + }, + "acm010466jsd" : { + "type" : "ControlElement", + "id" : "acm010466jsd", + "name" : "write" + }, + "acm010467jsd" : { + "type" : "ControlElement", + "id" : "acm010467jsd", + "name" : "write" + }, + "acm010468jsd" : { + "type" : "ControlElement", + "id" : "acm010468jsd", + "name" : "writeUserComments" + }, + "acm010469jsd" : { + "type" : "ControlElement", + "id" : "acm010469jsd", + "name" : "writeRequiredFieldsFirstRemainingFieldsSecond" + }, + "acm010470jsd" : { + "type" : "ControlElement", + "id" : "acm010470jsd", + "name" : "writeKeyField" + }, + "acm010471jsd" : { + "type" : "ControlElement", + "id" : "acm010471jsd", + "name" : "writeField" + }, + "acm010472jsd" : { + "type" : "ControlElement", + "id" : "acm010472jsd", + "name" : "getLengthOfLongestFieldName" + }, + "acm010473jsd" : { + "type" : "ControlElement", + "id" : "acm010473jsd", + "name" : "getFormattedFieldName" + }, + "acm010474jsd" : { + "type" : "ClassUnit", + "id" : "acm010474jsd", + "name" : "BibEntryWriter", + "compilationUnitId" : "acm010459jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010375jsd", "acm010474jsd", "acm010513jsd", "acm010532jsd", "acm011455jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd" ], + "content" : [ "acm010464jsd", "acm010465jsd", "acm010466jsd", "acm010467jsd", "acm010468jsd", "acm010469jsd", "acm010470jsd", "acm010471jsd", "acm010472jsd", "acm010473jsd" ] + }, + "acm010475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010475jsd", + "name" : "FieldContentFormatter", + "parentId" : "acm010463jsd", + "content" : [ "acm010483jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010476jsd" : { + "type" : "CodePackage", + "id" : "acm010476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010477jsd" ] + }, + "acm010477jsd" : { + "type" : "CodePackage", + "id" : "acm010477jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010478jsd" ] + }, + "acm010478jsd" : { + "type" : "CodePackage", + "id" : "acm010478jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010479jsd" ] + }, + "acm010479jsd" : { + "type" : "CodePackage", + "id" : "acm010479jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010475jsd" ] + }, + "acm010480jsd" : { + "type" : "ControlElement", + "id" : "acm010480jsd", + "name" : "FieldContentFormatter" + }, + "acm010481jsd" : { + "type" : "ControlElement", + "id" : "acm010481jsd", + "name" : "format" + }, + "acm010482jsd" : { + "type" : "ControlElement", + "id" : "acm010482jsd", + "name" : "format" + }, + "acm010483jsd" : { + "type" : "ClassUnit", + "id" : "acm010483jsd", + "name" : "FieldContentFormatter", + "compilationUnitId" : "acm010475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm018673jsd" ], + "content" : [ "acm010480jsd", "acm010481jsd", "acm010482jsd" ] + }, + "acm010484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010484jsd", + "name" : "FieldPreferences", + "parentId" : "acm010463jsd", + "content" : [ "acm010497jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010485jsd" : { + "type" : "CodePackage", + "id" : "acm010485jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010486jsd" ] + }, + "acm010486jsd" : { + "type" : "CodePackage", + "id" : "acm010486jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010487jsd" ] + }, + "acm010487jsd" : { + "type" : "CodePackage", + "id" : "acm010487jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010488jsd" ] + }, + "acm010488jsd" : { + "type" : "CodePackage", + "id" : "acm010488jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010484jsd" ] + }, + "acm010489jsd" : { + "type" : "ControlElement", + "id" : "acm010489jsd", + "name" : "FieldPreferences" + }, + "acm010490jsd" : { + "type" : "ControlElement", + "id" : "acm010490jsd", + "name" : "shouldResolveStrings" + }, + "acm010491jsd" : { + "type" : "ControlElement", + "id" : "acm010491jsd", + "name" : "resolveStringsProperty" + }, + "acm010492jsd" : { + "type" : "ControlElement", + "id" : "acm010492jsd", + "name" : "setResolveStrings" + }, + "acm010493jsd" : { + "type" : "ControlElement", + "id" : "acm010493jsd", + "name" : "getResolvableFields" + }, + "acm010494jsd" : { + "type" : "ControlElement", + "id" : "acm010494jsd", + "name" : "setResolvableFields" + }, + "acm010495jsd" : { + "type" : "ControlElement", + "id" : "acm010495jsd", + "name" : "getNonWrappableFields" + }, + "acm010496jsd" : { + "type" : "ControlElement", + "id" : "acm010496jsd", + "name" : "setNonWrappableFields" + }, + "acm010497jsd" : { + "type" : "ClassUnit", + "id" : "acm010497jsd", + "name" : "FieldPreferences", + "compilationUnitId" : "acm010484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm010489jsd", "acm010490jsd", "acm010491jsd", "acm010492jsd", "acm010493jsd", "acm010494jsd", "acm010495jsd", "acm010496jsd" ] + }, + "acm010498jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010498jsd", + "name" : "FieldWriter", + "parentId" : "acm010463jsd", + "content" : [ "acm010513jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010499jsd" : { + "type" : "CodePackage", + "id" : "acm010499jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010500jsd" ] + }, + "acm010500jsd" : { + "type" : "CodePackage", + "id" : "acm010500jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010501jsd" ] + }, + "acm010501jsd" : { + "type" : "CodePackage", + "id" : "acm010501jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010502jsd" ] + }, + "acm010502jsd" : { + "type" : "CodePackage", + "id" : "acm010502jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010498jsd" ] + }, + "acm010503jsd" : { + "type" : "ControlElement", + "id" : "acm010503jsd", + "name" : "FieldWriter" + }, + "acm010504jsd" : { + "type" : "ControlElement", + "id" : "acm010504jsd", + "name" : "FieldWriter" + }, + "acm010505jsd" : { + "type" : "ControlElement", + "id" : "acm010505jsd", + "name" : "buildIgnoreHashes" + }, + "acm010506jsd" : { + "type" : "ControlElement", + "id" : "acm010506jsd", + "name" : "checkBraces" + }, + "acm010507jsd" : { + "type" : "ControlElement", + "id" : "acm010507jsd", + "name" : "write" + }, + "acm010508jsd" : { + "type" : "ControlElement", + "id" : "acm010508jsd", + "name" : "formatAndResolveStrings" + }, + "acm010509jsd" : { + "type" : "ControlElement", + "id" : "acm010509jsd", + "name" : "shouldResolveStrings" + }, + "acm010510jsd" : { + "type" : "ControlElement", + "id" : "acm010510jsd", + "name" : "formatWithoutResolvingStrings" + }, + "acm010511jsd" : { + "type" : "ControlElement", + "id" : "acm010511jsd", + "name" : "writeText" + }, + "acm010512jsd" : { + "type" : "ControlElement", + "id" : "acm010512jsd", + "name" : "writeStringLabel" + }, + "acm010513jsd" : { + "type" : "ClassUnit", + "id" : "acm010513jsd", + "name" : "FieldWriter", + "compilationUnitId" : "acm010498jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010483jsd", "acm010497jsd", "acm010513jsd", "acm010532jsd", "acm018673jsd" ], + "content" : [ "acm010503jsd", "acm010504jsd", "acm010505jsd", "acm010506jsd", "acm010507jsd", "acm010508jsd", "acm010509jsd", "acm010510jsd", "acm010511jsd", "acm010512jsd" ] + }, + "acm010514jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010514jsd", + "name" : "FileFieldWriter", + "parentId" : "acm010463jsd", + "content" : [ "acm010525jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010515jsd" : { + "type" : "CodePackage", + "id" : "acm010515jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010516jsd" ] + }, + "acm010516jsd" : { + "type" : "CodePackage", + "id" : "acm010516jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010517jsd" ] + }, + "acm010517jsd" : { + "type" : "CodePackage", + "id" : "acm010517jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010518jsd" ] + }, + "acm010518jsd" : { + "type" : "CodePackage", + "id" : "acm010518jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010514jsd" ] + }, + "acm010519jsd" : { + "type" : "ControlElement", + "id" : "acm010519jsd", + "name" : "FileFieldWriter" + }, + "acm010520jsd" : { + "type" : "ControlElement", + "id" : "acm010520jsd", + "name" : "getStringRepresentation" + }, + "acm010521jsd" : { + "type" : "ControlElement", + "id" : "acm010521jsd", + "name" : "getStringRepresentation" + }, + "acm010522jsd" : { + "type" : "ControlElement", + "id" : "acm010522jsd", + "name" : "encodeStringArray" + }, + "acm010523jsd" : { + "type" : "ControlElement", + "id" : "acm010523jsd", + "name" : "encodeStringArray" + }, + "acm010524jsd" : { + "type" : "ControlElement", + "id" : "acm010524jsd", + "name" : "quote" + }, + "acm010525jsd" : { + "type" : "ClassUnit", + "id" : "acm010525jsd", + "name" : "FileFieldWriter", + "compilationUnitId" : "acm010514jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018509jsd" ], + "content" : [ "acm010519jsd", "acm010520jsd", "acm010521jsd", "acm010522jsd", "acm010523jsd", "acm010524jsd" ] + }, + "acm010526jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010526jsd", + "name" : "InvalidFieldValueException", + "parentId" : "acm010463jsd", + "content" : [ "acm010532jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010527jsd" : { + "type" : "CodePackage", + "id" : "acm010527jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010528jsd" ] + }, + "acm010528jsd" : { + "type" : "CodePackage", + "id" : "acm010528jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010529jsd" ] + }, + "acm010529jsd" : { + "type" : "CodePackage", + "id" : "acm010529jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010530jsd" ] + }, + "acm010530jsd" : { + "type" : "CodePackage", + "id" : "acm010530jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010526jsd" ] + }, + "acm010531jsd" : { + "type" : "ControlElement", + "id" : "acm010531jsd", + "name" : "InvalidFieldValueException" + }, + "acm010532jsd" : { + "type" : "ClassUnit", + "id" : "acm010532jsd", + "name" : "InvalidFieldValueException", + "compilationUnitId" : "acm010526jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010531jsd" ] + }, + "acm010533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010533jsd", + "name" : "BibDatabaseDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010548jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010534jsd" : { + "type" : "CodePackage", + "id" : "acm010534jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010535jsd" ] + }, + "acm010535jsd" : { + "type" : "CodePackage", + "id" : "acm010535jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010536jsd" ] + }, + "acm010536jsd" : { + "type" : "CodePackage", + "id" : "acm010536jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010537jsd" ] + }, + "acm010537jsd" : { + "type" : "CodePackage", + "id" : "acm010537jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010538jsd" ] + }, + "acm010538jsd" : { + "type" : "CodePackage", + "id" : "acm010538jsd", + "name" : "comparator", + "parentId" : "acm010463jsd", + "content" : [ "acm010533jsd", "acm010549jsd", "acm010559jsd", "acm010572jsd", "acm010581jsd", "acm010589jsd", "acm010600jsd", "acm010615jsd", "acm010624jsd", "acm010635jsd", "acm010643jsd", "acm010656jsd", "acm022406jsd", "acm022423jsd", "acm022443jsd", "acm022451jsd", "acm022464jsd", "acm022483jsd", "acm022510jsd", "acm022521jsd", "acm022529jsd" ] + }, + "acm010539jsd" : { + "type" : "ControlElement", + "id" : "acm010539jsd", + "name" : "BibDatabaseDiff" + }, + "acm010540jsd" : { + "type" : "ControlElement", + "id" : "acm010540jsd", + "name" : "getEntryComparator" + }, + "acm010541jsd" : { + "type" : "ControlElement", + "id" : "acm010541jsd", + "name" : "compareEntries" + }, + "acm010542jsd" : { + "type" : "ControlElement", + "id" : "acm010542jsd", + "name" : "hasEqualCitationKey" + }, + "acm010543jsd" : { + "type" : "ControlElement", + "id" : "acm010543jsd", + "name" : "compare" + }, + "acm010544jsd" : { + "type" : "ControlElement", + "id" : "acm010544jsd", + "name" : "getMetaDataDifferences" + }, + "acm010545jsd" : { + "type" : "ControlElement", + "id" : "acm010545jsd", + "name" : "getPreambleDifferences" + }, + "acm010546jsd" : { + "type" : "ControlElement", + "id" : "acm010546jsd", + "name" : "getBibStringDifferences" + }, + "acm010547jsd" : { + "type" : "ControlElement", + "id" : "acm010547jsd", + "name" : "getEntryDifferences" + }, + "acm010548jsd" : { + "type" : "ClassUnit", + "id" : "acm010548jsd", + "name" : "BibDatabaseDiff", + "compilationUnitId" : "acm010533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010548jsd", "acm010558jsd", "acm010571jsd", "acm010599jsd", "acm010654jsd", "acm010668jsd", "acm011386jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm010539jsd", "acm010540jsd", "acm010541jsd", "acm010542jsd", "acm010543jsd", "acm010544jsd", "acm010545jsd", "acm010546jsd", "acm010547jsd" ] + }, + "acm010549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010549jsd", + "name" : "BibEntryDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010558jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010550jsd" : { + "type" : "CodePackage", + "id" : "acm010550jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010551jsd" ] + }, + "acm010551jsd" : { + "type" : "CodePackage", + "id" : "acm010551jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010552jsd" ] + }, + "acm010552jsd" : { + "type" : "CodePackage", + "id" : "acm010552jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010553jsd" ] + }, + "acm010553jsd" : { + "type" : "CodePackage", + "id" : "acm010553jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010554jsd" ] + }, + "acm010554jsd" : { + "type" : "CodePackage", + "id" : "acm010554jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010549jsd" ] + }, + "acm010555jsd" : { + "type" : "ControlElement", + "id" : "acm010555jsd", + "name" : "BibEntryDiff" + }, + "acm010556jsd" : { + "type" : "ControlElement", + "id" : "acm010556jsd", + "name" : "getOriginalEntry" + }, + "acm010557jsd" : { + "type" : "ControlElement", + "id" : "acm010557jsd", + "name" : "getNewEntry" + }, + "acm010558jsd" : { + "type" : "ClassUnit", + "id" : "acm010558jsd", + "name" : "BibEntryDiff", + "compilationUnitId" : "acm010549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm010555jsd", "acm010556jsd", "acm010557jsd" ] + }, + "acm010559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010559jsd", + "name" : "BibStringDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010571jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010560jsd" : { + "type" : "CodePackage", + "id" : "acm010560jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010561jsd" ] + }, + "acm010561jsd" : { + "type" : "CodePackage", + "id" : "acm010561jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010562jsd" ] + }, + "acm010562jsd" : { + "type" : "CodePackage", + "id" : "acm010562jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010563jsd" ] + }, + "acm010563jsd" : { + "type" : "CodePackage", + "id" : "acm010563jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010564jsd" ] + }, + "acm010564jsd" : { + "type" : "CodePackage", + "id" : "acm010564jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010559jsd" ] + }, + "acm010565jsd" : { + "type" : "ControlElement", + "id" : "acm010565jsd", + "name" : "BibStringDiff" + }, + "acm010566jsd" : { + "type" : "ControlElement", + "id" : "acm010566jsd", + "name" : "compare" + }, + "acm010567jsd" : { + "type" : "ControlElement", + "id" : "acm010567jsd", + "name" : "getOriginalString" + }, + "acm010568jsd" : { + "type" : "ControlElement", + "id" : "acm010568jsd", + "name" : "getNewString" + }, + "acm010569jsd" : { + "type" : "ControlElement", + "id" : "acm010569jsd", + "name" : "equals" + }, + "acm010570jsd" : { + "type" : "ControlElement", + "id" : "acm010570jsd", + "name" : "hashCode" + }, + "acm010571jsd" : { + "type" : "ClassUnit", + "id" : "acm010571jsd", + "name" : "BibStringDiff", + "compilationUnitId" : "acm010559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010571jsd", "acm017988jsd", "acm018367jsd" ], + "content" : [ "acm010565jsd", "acm010566jsd", "acm010567jsd", "acm010568jsd", "acm010569jsd", "acm010570jsd" ] + }, + "acm010572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010572jsd", + "name" : "BibtexStringComparator", + "parentId" : "acm010538jsd", + "content" : [ "acm010580jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010573jsd" : { + "type" : "CodePackage", + "id" : "acm010573jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010574jsd" ] + }, + "acm010574jsd" : { + "type" : "CodePackage", + "id" : "acm010574jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010575jsd" ] + }, + "acm010575jsd" : { + "type" : "CodePackage", + "id" : "acm010575jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010576jsd" ] + }, + "acm010576jsd" : { + "type" : "CodePackage", + "id" : "acm010576jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010577jsd" ] + }, + "acm010577jsd" : { + "type" : "CodePackage", + "id" : "acm010577jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010572jsd" ] + }, + "acm010578jsd" : { + "type" : "ControlElement", + "id" : "acm010578jsd", + "name" : "BibtexStringComparator" + }, + "acm010579jsd" : { + "type" : "ControlElement", + "id" : "acm010579jsd", + "name" : "compare" + }, + "acm010580jsd" : { + "type" : "ClassUnit", + "id" : "acm010580jsd", + "name" : "BibtexStringComparator", + "compilationUnitId" : "acm010572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018367jsd" ], + "content" : [ "acm010578jsd", "acm010579jsd" ] + }, + "acm010581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010581jsd", + "name" : "CrossRefEntryComparator", + "parentId" : "acm010538jsd", + "content" : [ "acm010588jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010582jsd" : { + "type" : "CodePackage", + "id" : "acm010582jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010583jsd" ] + }, + "acm010583jsd" : { + "type" : "CodePackage", + "id" : "acm010583jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010584jsd" ] + }, + "acm010584jsd" : { + "type" : "CodePackage", + "id" : "acm010584jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010585jsd" ] + }, + "acm010585jsd" : { + "type" : "CodePackage", + "id" : "acm010585jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010586jsd" ] + }, + "acm010586jsd" : { + "type" : "CodePackage", + "id" : "acm010586jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010581jsd" ] + }, + "acm010587jsd" : { + "type" : "ControlElement", + "id" : "acm010587jsd", + "name" : "compare" + }, + "acm010588jsd" : { + "type" : "ClassUnit", + "id" : "acm010588jsd", + "name" : "CrossRefEntryComparator", + "compilationUnitId" : "acm010581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm010587jsd" ] + }, + "acm010589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010589jsd", + "name" : "EntryComparator", + "parentId" : "acm010538jsd", + "content" : [ "acm010599jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010590jsd" : { + "type" : "CodePackage", + "id" : "acm010590jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010591jsd" ] + }, + "acm010591jsd" : { + "type" : "CodePackage", + "id" : "acm010591jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010592jsd" ] + }, + "acm010592jsd" : { + "type" : "CodePackage", + "id" : "acm010592jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010593jsd" ] + }, + "acm010593jsd" : { + "type" : "CodePackage", + "id" : "acm010593jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010594jsd" ] + }, + "acm010594jsd" : { + "type" : "CodePackage", + "id" : "acm010594jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010589jsd" ] + }, + "acm010595jsd" : { + "type" : "ControlElement", + "id" : "acm010595jsd", + "name" : "EntryComparator" + }, + "acm010596jsd" : { + "type" : "ControlElement", + "id" : "acm010596jsd", + "name" : "EntryComparator" + }, + "acm010597jsd" : { + "type" : "ControlElement", + "id" : "acm010597jsd", + "name" : "compare" + }, + "acm010598jsd" : { + "type" : "ControlElement", + "id" : "acm010598jsd", + "name" : "idCompare" + }, + "acm010599jsd" : { + "type" : "ClassUnit", + "id" : "acm010599jsd", + "name" : "EntryComparator", + "compilationUnitId" : "acm010589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm010595jsd", "acm010596jsd", "acm010597jsd", "acm010598jsd" ] + }, + "acm010600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010600jsd", + "name" : "FieldComparator", + "parentId" : "acm010538jsd", + "content" : [ "acm010613jsd", "acm010614jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010601jsd" : { + "type" : "CodePackage", + "id" : "acm010601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010602jsd" ] + }, + "acm010602jsd" : { + "type" : "CodePackage", + "id" : "acm010602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010603jsd" ] + }, + "acm010603jsd" : { + "type" : "CodePackage", + "id" : "acm010603jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010604jsd" ] + }, + "acm010604jsd" : { + "type" : "CodePackage", + "id" : "acm010604jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010605jsd" ] + }, + "acm010605jsd" : { + "type" : "CodePackage", + "id" : "acm010605jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010600jsd" ] + }, + "acm010606jsd" : { + "type" : "ControlElement", + "id" : "acm010606jsd", + "name" : "FieldComparator" + }, + "acm010607jsd" : { + "type" : "ControlElement", + "id" : "acm010607jsd", + "name" : "FieldComparator" + }, + "acm010608jsd" : { + "type" : "ControlElement", + "id" : "acm010608jsd", + "name" : "FieldComparator" + }, + "acm010609jsd" : { + "type" : "ControlElement", + "id" : "acm010609jsd", + "name" : "getCollator" + }, + "acm010610jsd" : { + "type" : "ControlElement", + "id" : "acm010610jsd", + "name" : "determineFieldType" + }, + "acm010611jsd" : { + "type" : "ControlElement", + "id" : "acm010611jsd", + "name" : "getFieldValue" + }, + "acm010612jsd" : { + "type" : "ControlElement", + "id" : "acm010612jsd", + "name" : "compare" + }, + "acm010613jsd" : { + "type" : "ClassUnit", + "id" : "acm010613jsd", + "name" : "FieldComparator", + "compilationUnitId" : "acm010600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010614jsd", "acm018267jsd", "acm018673jsd", "acm018754jsd", "acm019454jsd" ], + "content" : [ "acm010606jsd", "acm010607jsd", "acm010608jsd", "acm010609jsd", "acm010610jsd", "acm010611jsd", "acm010612jsd" ] + }, + "acm010614jsd" : { + "type" : "ClassUnit", + "id" : "acm010614jsd", + "name" : "FieldType", + "compilationUnitId" : "acm010600jsd", + "parentDatatypeId" : "acm010613jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm010615jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010615jsd", + "name" : "FieldComparatorStack", + "parentId" : "acm010538jsd", + "content" : [ "acm010623jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010616jsd" : { + "type" : "CodePackage", + "id" : "acm010616jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010617jsd" ] + }, + "acm010617jsd" : { + "type" : "CodePackage", + "id" : "acm010617jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010618jsd" ] + }, + "acm010618jsd" : { + "type" : "CodePackage", + "id" : "acm010618jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010619jsd" ] + }, + "acm010619jsd" : { + "type" : "CodePackage", + "id" : "acm010619jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010620jsd" ] + }, + "acm010620jsd" : { + "type" : "CodePackage", + "id" : "acm010620jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010615jsd" ] + }, + "acm010621jsd" : { + "type" : "ControlElement", + "id" : "acm010621jsd", + "name" : "FieldComparatorStack" + }, + "acm010622jsd" : { + "type" : "ControlElement", + "id" : "acm010622jsd", + "name" : "compare" + }, + "acm010623jsd" : { + "type" : "ClassUnit", + "id" : "acm010623jsd", + "name" : "FieldComparatorStack", + "compilationUnitId" : "acm010615jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010621jsd", "acm010622jsd" ] + }, + "acm010624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010624jsd", + "name" : "GroupDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010634jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010625jsd" : { + "type" : "CodePackage", + "id" : "acm010625jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010626jsd" ] + }, + "acm010626jsd" : { + "type" : "CodePackage", + "id" : "acm010626jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010627jsd" ] + }, + "acm010627jsd" : { + "type" : "CodePackage", + "id" : "acm010627jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010628jsd" ] + }, + "acm010628jsd" : { + "type" : "CodePackage", + "id" : "acm010628jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010629jsd" ] + }, + "acm010629jsd" : { + "type" : "CodePackage", + "id" : "acm010629jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010624jsd" ] + }, + "acm010630jsd" : { + "type" : "ControlElement", + "id" : "acm010630jsd", + "name" : "GroupDiff" + }, + "acm010631jsd" : { + "type" : "ControlElement", + "id" : "acm010631jsd", + "name" : "compare" + }, + "acm010632jsd" : { + "type" : "ControlElement", + "id" : "acm010632jsd", + "name" : "getOriginalGroupRoot" + }, + "acm010633jsd" : { + "type" : "ControlElement", + "id" : "acm010633jsd", + "name" : "getNewGroupRoot" + }, + "acm010634jsd" : { + "type" : "ClassUnit", + "id" : "acm010634jsd", + "name" : "GroupDiff", + "compilationUnitId" : "acm010624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010634jsd", "acm019221jsd", "acm019421jsd" ], + "content" : [ "acm010630jsd", "acm010631jsd", "acm010632jsd", "acm010633jsd" ] + }, + "acm010635jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010635jsd", + "name" : "IdComparator", + "parentId" : "acm010538jsd", + "content" : [ "acm010642jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010636jsd" : { + "type" : "CodePackage", + "id" : "acm010636jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010637jsd" ] + }, + "acm010637jsd" : { + "type" : "CodePackage", + "id" : "acm010637jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010638jsd" ] + }, + "acm010638jsd" : { + "type" : "CodePackage", + "id" : "acm010638jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010639jsd" ] + }, + "acm010639jsd" : { + "type" : "CodePackage", + "id" : "acm010639jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010640jsd" ] + }, + "acm010640jsd" : { + "type" : "CodePackage", + "id" : "acm010640jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010635jsd" ] + }, + "acm010641jsd" : { + "type" : "ControlElement", + "id" : "acm010641jsd", + "name" : "compare" + }, + "acm010642jsd" : { + "type" : "ClassUnit", + "id" : "acm010642jsd", + "name" : "IdComparator", + "compilationUnitId" : "acm010635jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm010641jsd" ] + }, + "acm010643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010643jsd", + "name" : "MetaDataDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010654jsd", "acm010655jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010644jsd" : { + "type" : "CodePackage", + "id" : "acm010644jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010645jsd" ] + }, + "acm010645jsd" : { + "type" : "CodePackage", + "id" : "acm010645jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010646jsd" ] + }, + "acm010646jsd" : { + "type" : "CodePackage", + "id" : "acm010646jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010647jsd" ] + }, + "acm010647jsd" : { + "type" : "CodePackage", + "id" : "acm010647jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010648jsd" ] + }, + "acm010648jsd" : { + "type" : "CodePackage", + "id" : "acm010648jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010643jsd" ] + }, + "acm010649jsd" : { + "type" : "ControlElement", + "id" : "acm010649jsd", + "name" : "MetaDataDiff" + }, + "acm010650jsd" : { + "type" : "ControlElement", + "id" : "acm010650jsd", + "name" : "compare" + }, + "acm010651jsd" : { + "type" : "ControlElement", + "id" : "acm010651jsd", + "name" : "getDifferences" + }, + "acm010652jsd" : { + "type" : "ControlElement", + "id" : "acm010652jsd", + "name" : "getNewMetaData" + }, + "acm010653jsd" : { + "type" : "ControlElement", + "id" : "acm010653jsd", + "name" : "getGroupDifferences" + }, + "acm010654jsd" : { + "type" : "ClassUnit", + "id" : "acm010654jsd", + "name" : "MetaDataDiff", + "compilationUnitId" : "acm010643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010634jsd", "acm010654jsd", "acm010655jsd", "acm019421jsd", "acm021206jsd" ], + "content" : [ "acm010649jsd", "acm010650jsd", "acm010651jsd", "acm010652jsd", "acm010653jsd" ] + }, + "acm010655jsd" : { + "type" : "ClassUnit", + "id" : "acm010655jsd", + "name" : "Difference", + "compilationUnitId" : "acm010643jsd", + "parentDatatypeId" : "acm010654jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm010656jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010656jsd", + "name" : "PreambleDiff", + "parentId" : "acm010538jsd", + "content" : [ "acm010668jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010657jsd" : { + "type" : "CodePackage", + "id" : "acm010657jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010658jsd" ] + }, + "acm010658jsd" : { + "type" : "CodePackage", + "id" : "acm010658jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010659jsd" ] + }, + "acm010659jsd" : { + "type" : "CodePackage", + "id" : "acm010659jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010660jsd" ] + }, + "acm010660jsd" : { + "type" : "CodePackage", + "id" : "acm010660jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm010661jsd" ] + }, + "acm010661jsd" : { + "type" : "CodePackage", + "id" : "acm010661jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm010656jsd" ] + }, + "acm010662jsd" : { + "type" : "ControlElement", + "id" : "acm010662jsd", + "name" : "PreambleDiff" + }, + "acm010663jsd" : { + "type" : "ControlElement", + "id" : "acm010663jsd", + "name" : "compare" + }, + "acm010664jsd" : { + "type" : "ControlElement", + "id" : "acm010664jsd", + "name" : "getNewPreamble" + }, + "acm010665jsd" : { + "type" : "ControlElement", + "id" : "acm010665jsd", + "name" : "getOriginalPreamble" + }, + "acm010666jsd" : { + "type" : "ControlElement", + "id" : "acm010666jsd", + "name" : "equals" + }, + "acm010667jsd" : { + "type" : "ControlElement", + "id" : "acm010667jsd", + "name" : "hashCode" + }, + "acm010668jsd" : { + "type" : "ClassUnit", + "id" : "acm010668jsd", + "name" : "PreambleDiff", + "compilationUnitId" : "acm010656jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010668jsd", "acm018022jsd" ], + "content" : [ "acm010662jsd", "acm010663jsd", "acm010664jsd", "acm010665jsd", "acm010666jsd", "acm010667jsd" ] + }, + "acm010669jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010669jsd", + "name" : "BstEntry", + "parentId" : "acm010673jsd", + "content" : [ "acm010675jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010670jsd" : { + "type" : "CodePackage", + "id" : "acm010670jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010671jsd" ] + }, + "acm010671jsd" : { + "type" : "CodePackage", + "id" : "acm010671jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010672jsd" ] + }, + "acm010672jsd" : { + "type" : "CodePackage", + "id" : "acm010672jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010673jsd" ] + }, + "acm010673jsd" : { + "type" : "CodePackage", + "id" : "acm010673jsd", + "name" : "bst", + "parentId" : "acm001340jsd", + "content" : [ "acm010669jsd", "acm010676jsd", "acm010743jsd", "acm010753jsd", "acm010770jsd", "acm010775jsd", "acm010782jsd", "acm022539jsd", "acm022571jsd", "acm022582jsd", "acm022598jsd", "acm010808jsd" ] + }, + "acm010674jsd" : { + "type" : "ControlElement", + "id" : "acm010674jsd", + "name" : "BstEntry" + }, + "acm010675jsd" : { + "type" : "ClassUnit", + "id" : "acm010675jsd", + "name" : "BstEntry", + "compilationUnitId" : "acm010669jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm010674jsd" ] + }, + "acm010676jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010676jsd", + "name" : "BstFunctions", + "parentId" : "acm010673jsd", + "content" : [ "acm010727jsd", "acm010730jsd", "acm010733jsd", "acm010736jsd", "acm010739jsd", "acm010742jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010677jsd" : { + "type" : "CodePackage", + "id" : "acm010677jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010678jsd" ] + }, + "acm010678jsd" : { + "type" : "CodePackage", + "id" : "acm010678jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010679jsd" ] + }, + "acm010679jsd" : { + "type" : "CodePackage", + "id" : "acm010679jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010680jsd" ] + }, + "acm010680jsd" : { + "type" : "CodePackage", + "id" : "acm010680jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010676jsd" ] + }, + "acm010681jsd" : { + "type" : "ControlElement", + "id" : "acm010681jsd", + "name" : "execute" + }, + "acm010682jsd" : { + "type" : "ControlElement", + "id" : "acm010682jsd", + "name" : "execute" + }, + "acm010683jsd" : { + "type" : "ControlElement", + "id" : "acm010683jsd", + "name" : "BstFunctions" + }, + "acm010684jsd" : { + "type" : "ControlElement", + "id" : "acm010684jsd", + "name" : "getBuiltInFunctions" + }, + "acm010685jsd" : { + "type" : "ControlElement", + "id" : "acm010685jsd", + "name" : "bstIsGreaterThan" + }, + "acm010686jsd" : { + "type" : "ControlElement", + "id" : "acm010686jsd", + "name" : "bstIsLowerThan" + }, + "acm010687jsd" : { + "type" : "ControlElement", + "id" : "acm010687jsd", + "name" : "bstEquals" + }, + "acm010688jsd" : { + "type" : "ControlElement", + "id" : "acm010688jsd", + "name" : "bstAdd" + }, + "acm010689jsd" : { + "type" : "ControlElement", + "id" : "acm010689jsd", + "name" : "bstSubtract" + }, + "acm010690jsd" : { + "type" : "ControlElement", + "id" : "acm010690jsd", + "name" : "bstConcat" + }, + "acm010691jsd" : { + "type" : "ControlElement", + "id" : "acm010691jsd", + "name" : "execute" + }, + "acm010692jsd" : { + "type" : "ControlElement", + "id" : "acm010692jsd", + "name" : "execute" + }, + "acm010693jsd" : { + "type" : "ControlElement", + "id" : "acm010693jsd", + "name" : "bstAddPeriod" + }, + "acm010694jsd" : { + "type" : "ControlElement", + "id" : "acm010694jsd", + "name" : "execute" + }, + "acm010695jsd" : { + "type" : "ControlElement", + "id" : "acm010695jsd", + "name" : "execute" + }, + "acm010696jsd" : { + "type" : "ControlElement", + "id" : "acm010696jsd", + "name" : "bstChangeCase" + }, + "acm010697jsd" : { + "type" : "ControlElement", + "id" : "acm010697jsd", + "name" : "bstChrToInt" + }, + "acm010698jsd" : { + "type" : "ControlElement", + "id" : "acm010698jsd", + "name" : "execute" + }, + "acm010699jsd" : { + "type" : "ControlElement", + "id" : "acm010699jsd", + "name" : "execute" + }, + "acm010700jsd" : { + "type" : "ControlElement", + "id" : "acm010700jsd", + "name" : "bstDuplicate" + }, + "acm010701jsd" : { + "type" : "ControlElement", + "id" : "acm010701jsd", + "name" : "bstEmpty" + }, + "acm010702jsd" : { + "type" : "ControlElement", + "id" : "acm010702jsd", + "name" : "bstFormatName" + }, + "acm010703jsd" : { + "type" : "ControlElement", + "id" : "acm010703jsd", + "name" : "bstIf" + }, + "acm010704jsd" : { + "type" : "ControlElement", + "id" : "acm010704jsd", + "name" : "callIdentifierOrTree" + }, + "acm010705jsd" : { + "type" : "ControlElement", + "id" : "acm010705jsd", + "name" : "bstIntToChr" + }, + "acm010706jsd" : { + "type" : "ControlElement", + "id" : "acm010706jsd", + "name" : "bstIntToStr" + }, + "acm010707jsd" : { + "type" : "ControlElement", + "id" : "acm010707jsd", + "name" : "bstMissing" + }, + "acm010708jsd" : { + "type" : "ControlElement", + "id" : "acm010708jsd", + "name" : "bstNewLine" + }, + "acm010709jsd" : { + "type" : "ControlElement", + "id" : "acm010709jsd", + "name" : "bstNumNames" + }, + "acm010710jsd" : { + "type" : "ControlElement", + "id" : "acm010710jsd", + "name" : "bstPop" + }, + "acm010711jsd" : { + "type" : "ControlElement", + "id" : "acm010711jsd", + "name" : "bstPreamble" + }, + "acm010712jsd" : { + "type" : "ControlElement", + "id" : "acm010712jsd", + "name" : "bstPurify" + }, + "acm010713jsd" : { + "type" : "ControlElement", + "id" : "acm010713jsd", + "name" : "bstQuote" + }, + "acm010714jsd" : { + "type" : "ControlElement", + "id" : "acm010714jsd", + "name" : "bstSkip" + }, + "acm010715jsd" : { + "type" : "ControlElement", + "id" : "acm010715jsd", + "name" : "bstStack" + }, + "acm010716jsd" : { + "type" : "ControlElement", + "id" : "acm010716jsd", + "name" : "bstSubstring" + }, + "acm010717jsd" : { + "type" : "ControlElement", + "id" : "acm010717jsd", + "name" : "bstSwap" + }, + "acm010718jsd" : { + "type" : "ControlElement", + "id" : "acm010718jsd", + "name" : "bstTextLength" + }, + "acm010719jsd" : { + "type" : "ControlElement", + "id" : "acm010719jsd", + "name" : "bstTextPrefix" + }, + "acm010720jsd" : { + "type" : "ControlElement", + "id" : "acm010720jsd", + "name" : "bstTop" + }, + "acm010721jsd" : { + "type" : "ControlElement", + "id" : "acm010721jsd", + "name" : "execute" + }, + "acm010722jsd" : { + "type" : "ControlElement", + "id" : "acm010722jsd", + "name" : "execute" + }, + "acm010723jsd" : { + "type" : "ControlElement", + "id" : "acm010723jsd", + "name" : "bstWarning" + }, + "acm010724jsd" : { + "type" : "ControlElement", + "id" : "acm010724jsd", + "name" : "bstWhile" + }, + "acm010725jsd" : { + "type" : "ControlElement", + "id" : "acm010725jsd", + "name" : "bstWidth" + }, + "acm010726jsd" : { + "type" : "ControlElement", + "id" : "acm010726jsd", + "name" : "bstWrite" + }, + "acm010727jsd" : { + "type" : "ClassUnit", + "id" : "acm010727jsd", + "name" : "BstFunctions", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010727jsd", "acm010730jsd", "acm010733jsd", "acm010736jsd", "acm010739jsd", "acm010742jsd", "acm010781jsd", "acm010802jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm010681jsd", "acm010682jsd", "acm010683jsd", "acm010684jsd", "acm010685jsd", "acm010686jsd", "acm010687jsd", "acm010688jsd", "acm010689jsd", "acm010690jsd", "acm010691jsd", "acm010692jsd", "acm010693jsd", "acm010694jsd", "acm010695jsd", "acm010696jsd", "acm010697jsd", "acm010698jsd", "acm010699jsd", "acm010700jsd", "acm010701jsd", "acm010702jsd", "acm010703jsd", "acm010704jsd", "acm010705jsd", "acm010706jsd", "acm010707jsd", "acm010708jsd", "acm010709jsd", "acm010710jsd", "acm010711jsd", "acm010712jsd", "acm010713jsd", "acm010714jsd", "acm010715jsd", "acm010716jsd", "acm010717jsd", "acm010718jsd", "acm010719jsd", "acm010720jsd", "acm010721jsd", "acm010722jsd", "acm010723jsd", "acm010724jsd", "acm010725jsd", "acm010726jsd" ] + }, + "acm010728jsd" : { + "type" : "ControlElement", + "id" : "acm010728jsd", + "name" : "execute" + }, + "acm010729jsd" : { + "type" : "ControlElement", + "id" : "acm010729jsd", + "name" : "execute" + }, + "acm010730jsd" : { + "type" : "InterfaceUnit", + "id" : "acm010730jsd", + "name" : "BstFunction", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : "acm010727jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010802jsd" ], + "content" : [ "acm010728jsd", "acm010729jsd" ] + }, + "acm010731jsd" : { + "type" : "ControlElement", + "id" : "acm010731jsd", + "name" : "execute" + }, + "acm010732jsd" : { + "type" : "ControlElement", + "id" : "acm010732jsd", + "name" : "execute" + }, + "acm010733jsd" : { + "type" : "ClassUnit", + "id" : "acm010733jsd", + "name" : "BstAssignFunction", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : "acm010727jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm010730jsd" ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010781jsd", "acm010802jsd" ], + "content" : [ "acm010731jsd", "acm010732jsd" ] + }, + "acm010734jsd" : { + "type" : "ControlElement", + "id" : "acm010734jsd", + "name" : "execute" + }, + "acm010735jsd" : { + "type" : "ControlElement", + "id" : "acm010735jsd", + "name" : "execute" + }, + "acm010736jsd" : { + "type" : "ClassUnit", + "id" : "acm010736jsd", + "name" : "BstCallTypeFunction", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : "acm010727jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm010730jsd" ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010781jsd", "acm010802jsd" ], + "content" : [ "acm010734jsd", "acm010735jsd" ] + }, + "acm010737jsd" : { + "type" : "ControlElement", + "id" : "acm010737jsd", + "name" : "execute" + }, + "acm010738jsd" : { + "type" : "ControlElement", + "id" : "acm010738jsd", + "name" : "execute" + }, + "acm010739jsd" : { + "type" : "ClassUnit", + "id" : "acm010739jsd", + "name" : "BstCiteFunction", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : "acm010727jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm010730jsd" ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010781jsd", "acm010802jsd" ], + "content" : [ "acm010737jsd", "acm010738jsd" ] + }, + "acm010740jsd" : { + "type" : "ControlElement", + "id" : "acm010740jsd", + "name" : "execute" + }, + "acm010741jsd" : { + "type" : "ControlElement", + "id" : "acm010741jsd", + "name" : "execute" + }, + "acm010742jsd" : { + "type" : "ClassUnit", + "id" : "acm010742jsd", + "name" : "BstTypeFunction", + "compilationUnitId" : "acm010676jsd", + "parentDatatypeId" : "acm010727jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm010730jsd" ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010781jsd", "acm010802jsd" ], + "content" : [ "acm010740jsd", "acm010741jsd" ] + }, + "acm010743jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010743jsd", + "name" : "BstPreviewLayout", + "parentId" : "acm010673jsd", + "content" : [ "acm010752jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010744jsd" : { + "type" : "CodePackage", + "id" : "acm010744jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010745jsd" ] + }, + "acm010745jsd" : { + "type" : "CodePackage", + "id" : "acm010745jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010746jsd" ] + }, + "acm010746jsd" : { + "type" : "CodePackage", + "id" : "acm010746jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010747jsd" ] + }, + "acm010747jsd" : { + "type" : "CodePackage", + "id" : "acm010747jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010743jsd" ] + }, + "acm010748jsd" : { + "type" : "ControlElement", + "id" : "acm010748jsd", + "name" : "BstPreviewLayout" + }, + "acm010749jsd" : { + "type" : "ControlElement", + "id" : "acm010749jsd", + "name" : "generatePreview" + }, + "acm010750jsd" : { + "type" : "ControlElement", + "id" : "acm010750jsd", + "name" : "getDisplayName" + }, + "acm010751jsd" : { + "type" : "ControlElement", + "id" : "acm010751jsd", + "name" : "getName" + }, + "acm010752jsd" : { + "type" : "ClassUnit", + "id" : "acm010752jsd", + "name" : "BstPreviewLayout", + "compilationUnitId" : "acm010743jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016651jsd" ], + "datatypeReferencesIds" : [ "acm010752jsd", "acm010767jsd", "acm011138jsd", "acm011987jsd", "acm015489jsd", "acm015591jsd", "acm015599jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm010748jsd", "acm010749jsd", "acm010750jsd", "acm010751jsd" ] + }, + "acm010753jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010753jsd", + "name" : "BstVM", + "parentId" : "acm010673jsd", + "content" : [ "acm010767jsd", "acm010769jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010754jsd" : { + "type" : "CodePackage", + "id" : "acm010754jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010755jsd" ] + }, + "acm010755jsd" : { + "type" : "CodePackage", + "id" : "acm010755jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010756jsd" ] + }, + "acm010756jsd" : { + "type" : "CodePackage", + "id" : "acm010756jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010757jsd" ] + }, + "acm010757jsd" : { + "type" : "CodePackage", + "id" : "acm010757jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010753jsd" ] + }, + "acm010758jsd" : { + "type" : "ControlElement", + "id" : "acm010758jsd", + "name" : "BstVM" + }, + "acm010759jsd" : { + "type" : "ControlElement", + "id" : "acm010759jsd", + "name" : "BstVM" + }, + "acm010760jsd" : { + "type" : "ControlElement", + "id" : "acm010760jsd", + "name" : "BstVM" + }, + "acm010761jsd" : { + "type" : "ControlElement", + "id" : "acm010761jsd", + "name" : "BstVM" + }, + "acm010762jsd" : { + "type" : "ControlElement", + "id" : "acm010762jsd", + "name" : "charStream2CommonTree" + }, + "acm010763jsd" : { + "type" : "ControlElement", + "id" : "acm010763jsd", + "name" : "render" + }, + "acm010764jsd" : { + "type" : "ControlElement", + "id" : "acm010764jsd", + "name" : "render" + }, + "acm010765jsd" : { + "type" : "ControlElement", + "id" : "acm010765jsd", + "name" : "getStack" + }, + "acm010766jsd" : { + "type" : "ControlElement", + "id" : "acm010766jsd", + "name" : "syntaxError" + }, + "acm010767jsd" : { + "type" : "ClassUnit", + "id" : "acm010767jsd", + "name" : "BstVM", + "compilationUnitId" : "acm010753jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010727jsd", "acm010769jsd", "acm010781jsd", "acm010802jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm010758jsd", "acm010759jsd", "acm010760jsd", "acm010761jsd", "acm010762jsd", "acm010763jsd", "acm010764jsd", "acm010765jsd", "acm010766jsd" ] + }, + "acm010768jsd" : { + "type" : "ControlElement", + "id" : "acm010768jsd", + "name" : "syntaxError" + }, + "acm010769jsd" : { + "type" : "ClassUnit", + "id" : "acm010769jsd", + "name" : "ThrowingErrorListener", + "compilationUnitId" : "acm010753jsd", + "parentDatatypeId" : "acm010767jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010769jsd" ], + "content" : [ "acm010768jsd" ] + }, + "acm010770jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010770jsd", + "name" : "BstVMContext", + "parentId" : "acm010673jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010771jsd" : { + "type" : "CodePackage", + "id" : "acm010771jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010772jsd" ] + }, + "acm010772jsd" : { + "type" : "CodePackage", + "id" : "acm010772jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010773jsd" ] + }, + "acm010773jsd" : { + "type" : "CodePackage", + "id" : "acm010773jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010774jsd" ] + }, + "acm010774jsd" : { + "type" : "CodePackage", + "id" : "acm010774jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010770jsd" ] + }, + "acm010775jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010775jsd", + "name" : "BstVMException", + "parentId" : "acm010673jsd", + "content" : [ "acm010781jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010776jsd" : { + "type" : "CodePackage", + "id" : "acm010776jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010777jsd" ] + }, + "acm010777jsd" : { + "type" : "CodePackage", + "id" : "acm010777jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010778jsd" ] + }, + "acm010778jsd" : { + "type" : "CodePackage", + "id" : "acm010778jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010779jsd" ] + }, + "acm010779jsd" : { + "type" : "CodePackage", + "id" : "acm010779jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010775jsd" ] + }, + "acm010780jsd" : { + "type" : "ControlElement", + "id" : "acm010780jsd", + "name" : "BstVMException" + }, + "acm010781jsd" : { + "type" : "ClassUnit", + "id" : "acm010781jsd", + "name" : "BstVMException", + "compilationUnitId" : "acm010775jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010780jsd" ] + }, + "acm010782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010782jsd", + "name" : "BstVMVisitor", + "parentId" : "acm010673jsd", + "content" : [ "acm010802jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010783jsd" : { + "type" : "CodePackage", + "id" : "acm010783jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010784jsd" ] + }, + "acm010784jsd" : { + "type" : "CodePackage", + "id" : "acm010784jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010785jsd" ] + }, + "acm010785jsd" : { + "type" : "CodePackage", + "id" : "acm010785jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010786jsd" ] + }, + "acm010786jsd" : { + "type" : "CodePackage", + "id" : "acm010786jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010782jsd" ] + }, + "acm010787jsd" : { + "type" : "ControlElement", + "id" : "acm010787jsd", + "name" : "BstVMVisitor" + }, + "acm010788jsd" : { + "type" : "ControlElement", + "id" : "acm010788jsd", + "name" : "visitStringsCommand" + }, + "acm010789jsd" : { + "type" : "ControlElement", + "id" : "acm010789jsd", + "name" : "visitIntegersCommand" + }, + "acm010790jsd" : { + "type" : "ControlElement", + "id" : "acm010790jsd", + "name" : "visitFunctionCommand" + }, + "acm010791jsd" : { + "type" : "ControlElement", + "id" : "acm010791jsd", + "name" : "visitMacroCommand" + }, + "acm010792jsd" : { + "type" : "ControlElement", + "id" : "acm010792jsd", + "name" : "visitReadCommand" + }, + "acm010793jsd" : { + "type" : "ControlElement", + "id" : "acm010793jsd", + "name" : "visitExecuteCommand" + }, + "acm010794jsd" : { + "type" : "ControlElement", + "id" : "acm010794jsd", + "name" : "visitIterateCommand" + }, + "acm010795jsd" : { + "type" : "ControlElement", + "id" : "acm010795jsd", + "name" : "visitReverseCommand" + }, + "acm010796jsd" : { + "type" : "ControlElement", + "id" : "acm010796jsd", + "name" : "visitEntryCommand" + }, + "acm010797jsd" : { + "type" : "ControlElement", + "id" : "acm010797jsd", + "name" : "visitSortCommand" + }, + "acm010798jsd" : { + "type" : "ControlElement", + "id" : "acm010798jsd", + "name" : "visitIdentifier" + }, + "acm010799jsd" : { + "type" : "ControlElement", + "id" : "acm010799jsd", + "name" : "resolveIdentifier" + }, + "acm010800jsd" : { + "type" : "ControlElement", + "id" : "acm010800jsd", + "name" : "visitBstFunction" + }, + "acm010801jsd" : { + "type" : "ControlElement", + "id" : "acm010801jsd", + "name" : "visitStackitem" + }, + "acm010802jsd" : { + "type" : "ClassUnit", + "id" : "acm010802jsd", + "name" : "BstVMVisitor", + "compilationUnitId" : "acm010782jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm010513jsd", "acm010675jsd", "acm010781jsd", "acm010802jsd", "acm018673jsd" ], + "content" : [ "acm010787jsd", "acm010788jsd", "acm010789jsd", "acm010790jsd", "acm010791jsd", "acm010792jsd", "acm010793jsd", "acm010794jsd", "acm010795jsd", "acm010796jsd", "acm010797jsd", "acm010798jsd", "acm010799jsd", "acm010800jsd", "acm010801jsd" ] + }, + "acm010803jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010803jsd", + "name" : "BstCaseChanger", + "parentId" : "acm010808jsd", + "content" : [ "acm010821jsd", "acm010826jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010804jsd" : { + "type" : "CodePackage", + "id" : "acm010804jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010805jsd" ] + }, + "acm010805jsd" : { + "type" : "CodePackage", + "id" : "acm010805jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010806jsd" ] + }, + "acm010806jsd" : { + "type" : "CodePackage", + "id" : "acm010806jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010807jsd" ] + }, + "acm010807jsd" : { + "type" : "CodePackage", + "id" : "acm010807jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010808jsd" ] + }, + "acm010808jsd" : { + "type" : "CodePackage", + "id" : "acm010808jsd", + "name" : "util", + "parentId" : "acm010673jsd", + "content" : [ "acm010803jsd", "acm010827jsd", "acm010840jsd", "acm010849jsd", "acm010858jsd", "acm022616jsd", "acm022632jsd", "acm022652jsd", "acm022661jsd", "acm022670jsd" ] + }, + "acm010809jsd" : { + "type" : "ControlElement", + "id" : "acm010809jsd", + "name" : "FormatMode" + }, + "acm010810jsd" : { + "type" : "ControlElement", + "id" : "acm010810jsd", + "name" : "asChar" + }, + "acm010811jsd" : { + "type" : "ControlElement", + "id" : "acm010811jsd", + "name" : "of" + }, + "acm010812jsd" : { + "type" : "ControlElement", + "id" : "acm010812jsd", + "name" : "of" + }, + "acm010813jsd" : { + "type" : "ControlElement", + "id" : "acm010813jsd", + "name" : "BstCaseChanger" + }, + "acm010814jsd" : { + "type" : "ControlElement", + "id" : "acm010814jsd", + "name" : "changeCase" + }, + "acm010815jsd" : { + "type" : "ControlElement", + "id" : "acm010815jsd", + "name" : "doChangeCase" + }, + "acm010816jsd" : { + "type" : "ControlElement", + "id" : "acm010816jsd", + "name" : "convertSpecialChar" + }, + "acm010817jsd" : { + "type" : "ControlElement", + "id" : "acm010817jsd", + "name" : "convertAccented" + }, + "acm010818jsd" : { + "type" : "ControlElement", + "id" : "acm010818jsd", + "name" : "convertNonControl" + }, + "acm010819jsd" : { + "type" : "ControlElement", + "id" : "acm010819jsd", + "name" : "convertCharIfBraceLevelIsZero" + }, + "acm010820jsd" : { + "type" : "ControlElement", + "id" : "acm010820jsd", + "name" : "findSpecialChar" + }, + "acm010821jsd" : { + "type" : "ClassUnit", + "id" : "acm010821jsd", + "name" : "BstCaseChanger", + "compilationUnitId" : "acm010803jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010821jsd", "acm010826jsd" ], + "content" : [ "acm010809jsd", "acm010810jsd", "acm010811jsd", "acm010812jsd", "acm010813jsd", "acm010814jsd", "acm010815jsd", "acm010816jsd", "acm010817jsd", "acm010818jsd", "acm010819jsd", "acm010820jsd" ] + }, + "acm010822jsd" : { + "type" : "ControlElement", + "id" : "acm010822jsd", + "name" : "FormatMode" + }, + "acm010823jsd" : { + "type" : "ControlElement", + "id" : "acm010823jsd", + "name" : "asChar" + }, + "acm010824jsd" : { + "type" : "ControlElement", + "id" : "acm010824jsd", + "name" : "of" + }, + "acm010825jsd" : { + "type" : "ControlElement", + "id" : "acm010825jsd", + "name" : "of" + }, + "acm010826jsd" : { + "type" : "ClassUnit", + "id" : "acm010826jsd", + "name" : "FormatMode", + "compilationUnitId" : "acm010803jsd", + "parentDatatypeId" : "acm010821jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010826jsd" ], + "content" : [ "acm010822jsd", "acm010823jsd", "acm010824jsd", "acm010825jsd" ] + }, + "acm010827jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010827jsd", + "name" : "BstNameFormatter", + "parentId" : "acm010808jsd", + "content" : [ "acm010839jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010828jsd" : { + "type" : "CodePackage", + "id" : "acm010828jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010829jsd" ] + }, + "acm010829jsd" : { + "type" : "CodePackage", + "id" : "acm010829jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010830jsd" ] + }, + "acm010830jsd" : { + "type" : "CodePackage", + "id" : "acm010830jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010831jsd" ] + }, + "acm010831jsd" : { + "type" : "CodePackage", + "id" : "acm010831jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010832jsd" ] + }, + "acm010832jsd" : { + "type" : "CodePackage", + "id" : "acm010832jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010827jsd" ] + }, + "acm010833jsd" : { + "type" : "ControlElement", + "id" : "acm010833jsd", + "name" : "BstNameFormatter" + }, + "acm010834jsd" : { + "type" : "ControlElement", + "id" : "acm010834jsd", + "name" : "formatName" + }, + "acm010835jsd" : { + "type" : "ControlElement", + "id" : "acm010835jsd", + "name" : "formatName" + }, + "acm010836jsd" : { + "type" : "ControlElement", + "id" : "acm010836jsd", + "name" : "consumeToMatchingBrace" + }, + "acm010837jsd" : { + "type" : "ControlElement", + "id" : "acm010837jsd", + "name" : "getFirstCharOfString" + }, + "acm010838jsd" : { + "type" : "ControlElement", + "id" : "acm010838jsd", + "name" : "numberOfChars" + }, + "acm010839jsd" : { + "type" : "ClassUnit", + "id" : "acm010839jsd", + "name" : "BstNameFormatter", + "compilationUnitId" : "acm010827jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010781jsd", "acm010839jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm010833jsd", "acm010834jsd", "acm010835jsd", "acm010836jsd", "acm010837jsd", "acm010838jsd" ] + }, + "acm010840jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010840jsd", + "name" : "BstPurifier", + "parentId" : "acm010808jsd", + "content" : [ "acm010848jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010841jsd" : { + "type" : "CodePackage", + "id" : "acm010841jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010842jsd" ] + }, + "acm010842jsd" : { + "type" : "CodePackage", + "id" : "acm010842jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010843jsd" ] + }, + "acm010843jsd" : { + "type" : "CodePackage", + "id" : "acm010843jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010844jsd" ] + }, + "acm010844jsd" : { + "type" : "CodePackage", + "id" : "acm010844jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010845jsd" ] + }, + "acm010845jsd" : { + "type" : "CodePackage", + "id" : "acm010845jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010840jsd" ] + }, + "acm010846jsd" : { + "type" : "ControlElement", + "id" : "acm010846jsd", + "name" : "BstPurifier" + }, + "acm010847jsd" : { + "type" : "ControlElement", + "id" : "acm010847jsd", + "name" : "purify" + }, + "acm010848jsd" : { + "type" : "ClassUnit", + "id" : "acm010848jsd", + "name" : "BstPurifier", + "compilationUnitId" : "acm010840jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010848jsd" ], + "content" : [ "acm010846jsd", "acm010847jsd" ] + }, + "acm010849jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010849jsd", + "name" : "BstTextPrefixer", + "parentId" : "acm010808jsd", + "content" : [ "acm010857jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010850jsd" : { + "type" : "CodePackage", + "id" : "acm010850jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010851jsd" ] + }, + "acm010851jsd" : { + "type" : "CodePackage", + "id" : "acm010851jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010852jsd" ] + }, + "acm010852jsd" : { + "type" : "CodePackage", + "id" : "acm010852jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010853jsd" ] + }, + "acm010853jsd" : { + "type" : "CodePackage", + "id" : "acm010853jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010854jsd" ] + }, + "acm010854jsd" : { + "type" : "CodePackage", + "id" : "acm010854jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010849jsd" ] + }, + "acm010855jsd" : { + "type" : "ControlElement", + "id" : "acm010855jsd", + "name" : "BstTextPrefixer" + }, + "acm010856jsd" : { + "type" : "ControlElement", + "id" : "acm010856jsd", + "name" : "textPrefix" + }, + "acm010857jsd" : { + "type" : "ClassUnit", + "id" : "acm010857jsd", + "name" : "BstTextPrefixer", + "compilationUnitId" : "acm010849jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010857jsd" ], + "content" : [ "acm010855jsd", "acm010856jsd" ] + }, + "acm010858jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010858jsd", + "name" : "BstWidthCalculator", + "parentId" : "acm010808jsd", + "content" : [ "acm010868jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010859jsd" : { + "type" : "CodePackage", + "id" : "acm010859jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010860jsd" ] + }, + "acm010860jsd" : { + "type" : "CodePackage", + "id" : "acm010860jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010861jsd" ] + }, + "acm010861jsd" : { + "type" : "CodePackage", + "id" : "acm010861jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010862jsd" ] + }, + "acm010862jsd" : { + "type" : "CodePackage", + "id" : "acm010862jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm010863jsd" ] + }, + "acm010863jsd" : { + "type" : "CodePackage", + "id" : "acm010863jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm010858jsd" ] + }, + "acm010864jsd" : { + "type" : "ControlElement", + "id" : "acm010864jsd", + "name" : "BstWidthCalculator" + }, + "acm010865jsd" : { + "type" : "ControlElement", + "id" : "acm010865jsd", + "name" : "getSpecialCharWidth" + }, + "acm010866jsd" : { + "type" : "ControlElement", + "id" : "acm010866jsd", + "name" : "getCharWidth" + }, + "acm010867jsd" : { + "type" : "ControlElement", + "id" : "acm010867jsd", + "name" : "width" + }, + "acm010868jsd" : { + "type" : "ClassUnit", + "id" : "acm010868jsd", + "name" : "BstWidthCalculator", + "compilationUnitId" : "acm010858jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010868jsd" ], + "content" : [ "acm010864jsd", "acm010865jsd", "acm010866jsd", "acm010867jsd" ] + }, + "acm010869jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010869jsd", + "name" : "AbstractCitationKeyPattern", + "parentId" : "acm010873jsd", + "content" : [ "acm010886jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010870jsd" : { + "type" : "CodePackage", + "id" : "acm010870jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010871jsd" ] + }, + "acm010871jsd" : { + "type" : "CodePackage", + "id" : "acm010871jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010872jsd" ] + }, + "acm010872jsd" : { + "type" : "CodePackage", + "id" : "acm010872jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010873jsd" ] + }, + "acm010873jsd" : { + "type" : "CodePackage", + "id" : "acm010873jsd", + "name" : "citationkeypattern", + "parentId" : "acm001340jsd", + "content" : [ "acm010869jsd", "acm010887jsd", "acm010942jsd", "acm010960jsd", "acm010995jsd", "acm011003jsd", "acm022681jsd", "acm022689jsd", "acm022758jsd", "acm022849jsd", "acm022906jsd" ] + }, + "acm010874jsd" : { + "type" : "ControlElement", + "id" : "acm010874jsd", + "name" : "split" + }, + "acm010875jsd" : { + "type" : "ControlElement", + "id" : "acm010875jsd", + "name" : "addCitationKeyPattern" + }, + "acm010876jsd" : { + "type" : "ControlElement", + "id" : "acm010876jsd", + "name" : "toString" + }, + "acm010877jsd" : { + "type" : "ControlElement", + "id" : "acm010877jsd", + "name" : "equals" + }, + "acm010878jsd" : { + "type" : "ControlElement", + "id" : "acm010878jsd", + "name" : "hashCode" + }, + "acm010879jsd" : { + "type" : "ControlElement", + "id" : "acm010879jsd", + "name" : "getValue" + }, + "acm010880jsd" : { + "type" : "ControlElement", + "id" : "acm010880jsd", + "name" : "isDefaultValue" + }, + "acm010881jsd" : { + "type" : "ControlElement", + "id" : "acm010881jsd", + "name" : "getDefaultValue" + }, + "acm010882jsd" : { + "type" : "ControlElement", + "id" : "acm010882jsd", + "name" : "setDefaultValue" + }, + "acm010883jsd" : { + "type" : "ControlElement", + "id" : "acm010883jsd", + "name" : "getAllKeys" + }, + "acm010884jsd" : { + "type" : "ControlElement", + "id" : "acm010884jsd", + "name" : "getPatterns" + }, + "acm010885jsd" : { + "type" : "ControlElement", + "id" : "acm010885jsd", + "name" : "getLastLevelCitationKeyPattern" + }, + "acm010886jsd" : { + "type" : "ClassUnit", + "id" : "acm010886jsd", + "name" : "AbstractCitationKeyPattern", + "compilationUnitId" : "acm010869jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm019005jsd" ], + "content" : [ "acm010874jsd", "acm010875jsd", "acm010876jsd", "acm010877jsd", "acm010878jsd", "acm010879jsd", "acm010880jsd", "acm010881jsd", "acm010882jsd", "acm010883jsd", "acm010884jsd", "acm010885jsd" ] + }, + "acm010887jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010887jsd", + "name" : "BracketedPattern", + "parentId" : "acm010873jsd", + "content" : [ "acm010939jsd", "acm010941jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010888jsd" : { + "type" : "CodePackage", + "id" : "acm010888jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010889jsd" ] + }, + "acm010889jsd" : { + "type" : "CodePackage", + "id" : "acm010889jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010890jsd" ] + }, + "acm010890jsd" : { + "type" : "CodePackage", + "id" : "acm010890jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010891jsd" ] + }, + "acm010891jsd" : { + "type" : "CodePackage", + "id" : "acm010891jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm010887jsd" ] + }, + "acm010892jsd" : { + "type" : "ControlElement", + "id" : "acm010892jsd", + "name" : "findTypes" + }, + "acm010893jsd" : { + "type" : "ControlElement", + "id" : "acm010893jsd", + "name" : "BracketedPattern" + }, + "acm010894jsd" : { + "type" : "ControlElement", + "id" : "acm010894jsd", + "name" : "BracketedPattern" + }, + "acm010895jsd" : { + "type" : "ControlElement", + "id" : "acm010895jsd", + "name" : "toString" + }, + "acm010896jsd" : { + "type" : "ControlElement", + "id" : "acm010896jsd", + "name" : "expand" + }, + "acm010897jsd" : { + "type" : "ControlElement", + "id" : "acm010897jsd", + "name" : "expand" + }, + "acm010898jsd" : { + "type" : "ControlElement", + "id" : "acm010898jsd", + "name" : "expand" + }, + "acm010899jsd" : { + "type" : "ControlElement", + "id" : "acm010899jsd", + "name" : "expandBrackets" + }, + "acm010900jsd" : { + "type" : "ControlElement", + "id" : "acm010900jsd", + "name" : "expandBracketContent" + }, + "acm010901jsd" : { + "type" : "ControlElement", + "id" : "acm010901jsd", + "name" : "expandBrackets" + }, + "acm010902jsd" : { + "type" : "ControlElement", + "id" : "acm010902jsd", + "name" : "contentBetweenBrackets" + }, + "acm010903jsd" : { + "type" : "ControlElement", + "id" : "acm010903jsd", + "name" : "appendQuote" + }, + "acm010904jsd" : { + "type" : "ControlElement", + "id" : "acm010904jsd", + "name" : "getFieldValue" + }, + "acm010905jsd" : { + "type" : "ControlElement", + "id" : "acm010905jsd", + "name" : "createAuthorList" + }, + "acm010906jsd" : { + "type" : "ControlElement", + "id" : "acm010906jsd", + "name" : "isInstitution" + }, + "acm010907jsd" : { + "type" : "ControlElement", + "id" : "acm010907jsd", + "name" : "applyModifiers" + }, + "acm010908jsd" : { + "type" : "ControlElement", + "id" : "acm010908jsd", + "name" : "getTitleWords" + }, + "acm010909jsd" : { + "type" : "ControlElement", + "id" : "acm010909jsd", + "name" : "formatTitle" + }, + "acm010910jsd" : { + "type" : "ControlElement", + "id" : "acm010910jsd", + "name" : "getCamelizedTitle" + }, + "acm010911jsd" : { + "type" : "ControlElement", + "id" : "acm010911jsd", + "name" : "camelizeTitle" + }, + "acm010912jsd" : { + "type" : "ControlElement", + "id" : "acm010912jsd", + "name" : "camelizeSignificantWordsInTitle" + }, + "acm010913jsd" : { + "type" : "ControlElement", + "id" : "acm010913jsd", + "name" : "removeSmallWords" + }, + "acm010914jsd" : { + "type" : "ControlElement", + "id" : "acm010914jsd", + "name" : "getTitleWordsWithSpaces" + }, + "acm010915jsd" : { + "type" : "ControlElement", + "id" : "acm010915jsd", + "name" : "keepLettersAndDigitsOnly" + }, + "acm010916jsd" : { + "type" : "ControlElement", + "id" : "acm010916jsd", + "name" : "firstAuthor" + }, + "acm010917jsd" : { + "type" : "ControlElement", + "id" : "acm010917jsd", + "name" : "firstAuthorForenameInitials" + }, + "acm010918jsd" : { + "type" : "ControlElement", + "id" : "acm010918jsd", + "name" : "firstAuthorVonAndLast" + }, + "acm010919jsd" : { + "type" : "ControlElement", + "id" : "acm010919jsd", + "name" : "lastAuthor" + }, + "acm010920jsd" : { + "type" : "ControlElement", + "id" : "acm010920jsd", + "name" : "lastAuthorForenameInitials" + }, + "acm010921jsd" : { + "type" : "ControlElement", + "id" : "acm010921jsd", + "name" : "allAuthors" + }, + "acm010922jsd" : { + "type" : "ControlElement", + "id" : "acm010922jsd", + "name" : "authorsAlpha" + }, + "acm010923jsd" : { + "type" : "ControlElement", + "id" : "acm010923jsd", + "name" : "joinAuthorsOnLastName" + }, + "acm010924jsd" : { + "type" : "ControlElement", + "id" : "acm010924jsd", + "name" : "nAuthors" + }, + "acm010925jsd" : { + "type" : "ControlElement", + "id" : "acm010925jsd", + "name" : "oneAuthorPlusInitials" + }, + "acm010926jsd" : { + "type" : "ControlElement", + "id" : "acm010926jsd", + "name" : "authAuthEa" + }, + "acm010927jsd" : { + "type" : "ControlElement", + "id" : "acm010927jsd", + "name" : "authEtal" + }, + "acm010928jsd" : { + "type" : "ControlElement", + "id" : "acm010928jsd", + "name" : "authNofMth" + }, + "acm010929jsd" : { + "type" : "ControlElement", + "id" : "acm010929jsd", + "name" : "authN" + }, + "acm010930jsd" : { + "type" : "ControlElement", + "id" : "acm010930jsd", + "name" : "authShort" + }, + "acm010931jsd" : { + "type" : "ControlElement", + "id" : "acm010931jsd", + "name" : "authIniN" + }, + "acm010932jsd" : { + "type" : "ControlElement", + "id" : "acm010932jsd", + "name" : "firstPage" + }, + "acm010933jsd" : { + "type" : "ControlElement", + "id" : "acm010933jsd", + "name" : "pagePrefix" + }, + "acm010934jsd" : { + "type" : "ControlElement", + "id" : "acm010934jsd", + "name" : "lastPage" + }, + "acm010935jsd" : { + "type" : "ControlElement", + "id" : "acm010935jsd", + "name" : "parseFieldAndModifiers" + }, + "acm010936jsd" : { + "type" : "ControlElement", + "id" : "acm010936jsd", + "name" : "generateInstitutionKey" + }, + "acm010937jsd" : { + "type" : "ControlElement", + "id" : "acm010937jsd", + "name" : "noOtherInstitutionKeyWord" + }, + "acm010938jsd" : { + "type" : "ControlElement", + "id" : "acm010938jsd", + "name" : "getValidInstitutionNameParts" + }, + "acm010939jsd" : { + "type" : "ClassUnit", + "id" : "acm010939jsd", + "name" : "BracketedPattern", + "compilationUnitId" : "acm010887jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010939jsd", "acm010941jsd", "acm011208jsd", "acm015591jsd", "acm017988jsd", "acm018138jsd", "acm018175jsd", "acm018267jsd", "acm018443jsd", "acm018479jsd" ], + "content" : [ "acm010892jsd", "acm010893jsd", "acm010894jsd", "acm010895jsd", "acm010896jsd", "acm010897jsd", "acm010898jsd", "acm010899jsd", "acm010900jsd", "acm010901jsd", "acm010902jsd", "acm010903jsd", "acm010904jsd", "acm010905jsd", "acm010906jsd", "acm010907jsd", "acm010908jsd", "acm010909jsd", "acm010910jsd", "acm010911jsd", "acm010912jsd", "acm010913jsd", "acm010914jsd", "acm010915jsd", "acm010916jsd", "acm010917jsd", "acm010918jsd", "acm010919jsd", "acm010920jsd", "acm010921jsd", "acm010922jsd", "acm010923jsd", "acm010924jsd", "acm010925jsd", "acm010926jsd", "acm010927jsd", "acm010928jsd", "acm010929jsd", "acm010930jsd", "acm010931jsd", "acm010932jsd", "acm010933jsd", "acm010934jsd", "acm010935jsd", "acm010936jsd", "acm010937jsd", "acm010938jsd" ] + }, + "acm010940jsd" : { + "type" : "ControlElement", + "id" : "acm010940jsd", + "name" : "findTypes" + }, + "acm010941jsd" : { + "type" : "ClassUnit", + "id" : "acm010941jsd", + "name" : "Institution", + "compilationUnitId" : "acm010887jsd", + "parentDatatypeId" : "acm010939jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010941jsd" ], + "content" : [ "acm010940jsd" ] + }, + "acm010942jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010942jsd", + "name" : "CitationKeyGenerator", + "parentId" : "acm010873jsd", + "content" : [ "acm010959jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010943jsd" : { + "type" : "CodePackage", + "id" : "acm010943jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010944jsd" ] + }, + "acm010944jsd" : { + "type" : "CodePackage", + "id" : "acm010944jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010945jsd" ] + }, + "acm010945jsd" : { + "type" : "CodePackage", + "id" : "acm010945jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010946jsd" ] + }, + "acm010946jsd" : { + "type" : "CodePackage", + "id" : "acm010946jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm010942jsd" ] + }, + "acm010947jsd" : { + "type" : "ControlElement", + "id" : "acm010947jsd", + "name" : "CitationKeyGenerator" + }, + "acm010948jsd" : { + "type" : "ControlElement", + "id" : "acm010948jsd", + "name" : "CitationKeyGenerator" + }, + "acm010949jsd" : { + "type" : "ControlElement", + "id" : "acm010949jsd", + "name" : "getAppendix" + }, + "acm010950jsd" : { + "type" : "ControlElement", + "id" : "acm010950jsd", + "name" : "removeDefaultUnwantedCharacters" + }, + "acm010951jsd" : { + "type" : "ControlElement", + "id" : "acm010951jsd", + "name" : "removeUnwantedCharacters" + }, + "acm010952jsd" : { + "type" : "ControlElement", + "id" : "acm010952jsd", + "name" : "cleanKey" + }, + "acm010953jsd" : { + "type" : "ControlElement", + "id" : "acm010953jsd", + "name" : "generateKey" + }, + "acm010954jsd" : { + "type" : "ControlElement", + "id" : "acm010954jsd", + "name" : "appendLettersToKey" + }, + "acm010955jsd" : { + "type" : "ControlElement", + "id" : "acm010955jsd", + "name" : "replaceWithRegex" + }, + "acm010956jsd" : { + "type" : "ControlElement", + "id" : "acm010956jsd", + "name" : "createCitationKeyFromPattern" + }, + "acm010957jsd" : { + "type" : "ControlElement", + "id" : "acm010957jsd", + "name" : "expandBracketContent" + }, + "acm010958jsd" : { + "type" : "ControlElement", + "id" : "acm010958jsd", + "name" : "generateAndSetKey" + }, + "acm010959jsd" : { + "type" : "ClassUnit", + "id" : "acm010959jsd", + "name" : "CitationKeyGenerator", + "compilationUnitId" : "acm010942jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010939jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm010959jsd", "acm010993jsd", "acm017884jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm010947jsd", "acm010948jsd", "acm010949jsd", "acm010950jsd", "acm010951jsd", "acm010952jsd", "acm010953jsd", "acm010954jsd", "acm010955jsd", "acm010956jsd", "acm010957jsd", "acm010958jsd" ] + }, + "acm010960jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010960jsd", + "name" : "CitationKeyPatternPreferences", + "parentId" : "acm010873jsd", + "content" : [ "acm010993jsd", "acm010994jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010961jsd" : { + "type" : "CodePackage", + "id" : "acm010961jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010962jsd" ] + }, + "acm010962jsd" : { + "type" : "CodePackage", + "id" : "acm010962jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010963jsd" ] + }, + "acm010963jsd" : { + "type" : "CodePackage", + "id" : "acm010963jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010964jsd" ] + }, + "acm010964jsd" : { + "type" : "CodePackage", + "id" : "acm010964jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm010960jsd" ] + }, + "acm010965jsd" : { + "type" : "ControlElement", + "id" : "acm010965jsd", + "name" : "CitationKeyPatternPreferences" + }, + "acm010966jsd" : { + "type" : "ControlElement", + "id" : "acm010966jsd", + "name" : "CitationKeyPatternPreferences" + }, + "acm010967jsd" : { + "type" : "ControlElement", + "id" : "acm010967jsd", + "name" : "shouldAvoidOverwriteCiteKey" + }, + "acm010968jsd" : { + "type" : "ControlElement", + "id" : "acm010968jsd", + "name" : "shouldAvoidOverwriteCiteKeyProperty" + }, + "acm010969jsd" : { + "type" : "ControlElement", + "id" : "acm010969jsd", + "name" : "setAvoidOverwriteCiteKey" + }, + "acm010970jsd" : { + "type" : "ControlElement", + "id" : "acm010970jsd", + "name" : "shouldWarnBeforeOverwriteCiteKey" + }, + "acm010971jsd" : { + "type" : "ControlElement", + "id" : "acm010971jsd", + "name" : "shouldWarnBeforeOverwriteCiteKeyProperty" + }, + "acm010972jsd" : { + "type" : "ControlElement", + "id" : "acm010972jsd", + "name" : "setWarnBeforeOverwriteCiteKey" + }, + "acm010973jsd" : { + "type" : "ControlElement", + "id" : "acm010973jsd", + "name" : "shouldGenerateCiteKeysBeforeSaving" + }, + "acm010974jsd" : { + "type" : "ControlElement", + "id" : "acm010974jsd", + "name" : "shouldGenerateCiteKeysBeforeSavingProperty" + }, + "acm010975jsd" : { + "type" : "ControlElement", + "id" : "acm010975jsd", + "name" : "setGenerateCiteKeysBeforeSaving" + }, + "acm010976jsd" : { + "type" : "ControlElement", + "id" : "acm010976jsd", + "name" : "getKeySuffix" + }, + "acm010977jsd" : { + "type" : "ControlElement", + "id" : "acm010977jsd", + "name" : "keySuffixProperty" + }, + "acm010978jsd" : { + "type" : "ControlElement", + "id" : "acm010978jsd", + "name" : "setKeySuffix" + }, + "acm010979jsd" : { + "type" : "ControlElement", + "id" : "acm010979jsd", + "name" : "getKeyPatternRegex" + }, + "acm010980jsd" : { + "type" : "ControlElement", + "id" : "acm010980jsd", + "name" : "keyPatternRegexProperty" + }, + "acm010981jsd" : { + "type" : "ControlElement", + "id" : "acm010981jsd", + "name" : "setKeyPatternRegex" + }, + "acm010982jsd" : { + "type" : "ControlElement", + "id" : "acm010982jsd", + "name" : "getKeyPatternReplacement" + }, + "acm010983jsd" : { + "type" : "ControlElement", + "id" : "acm010983jsd", + "name" : "keyPatternReplacementProperty" + }, + "acm010984jsd" : { + "type" : "ControlElement", + "id" : "acm010984jsd", + "name" : "setKeyPatternReplacement" + }, + "acm010985jsd" : { + "type" : "ControlElement", + "id" : "acm010985jsd", + "name" : "getUnwantedCharacters" + }, + "acm010986jsd" : { + "type" : "ControlElement", + "id" : "acm010986jsd", + "name" : "unwantedCharactersProperty" + }, + "acm010987jsd" : { + "type" : "ControlElement", + "id" : "acm010987jsd", + "name" : "setUnwantedCharacters" + }, + "acm010988jsd" : { + "type" : "ControlElement", + "id" : "acm010988jsd", + "name" : "getKeyPattern" + }, + "acm010989jsd" : { + "type" : "ControlElement", + "id" : "acm010989jsd", + "name" : "keyPatternProperty" + }, + "acm010990jsd" : { + "type" : "ControlElement", + "id" : "acm010990jsd", + "name" : "setKeyPattern" + }, + "acm010991jsd" : { + "type" : "ControlElement", + "id" : "acm010991jsd", + "name" : "getDefaultPattern" + }, + "acm010992jsd" : { + "type" : "ControlElement", + "id" : "acm010992jsd", + "name" : "getKeywordDelimiter" + }, + "acm010993jsd" : { + "type" : "ClassUnit", + "id" : "acm010993jsd", + "name" : "CitationKeyPatternPreferences", + "compilationUnitId" : "acm010960jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010994jsd", "acm011011jsd" ], + "content" : [ "acm010965jsd", "acm010966jsd", "acm010967jsd", "acm010968jsd", "acm010969jsd", "acm010970jsd", "acm010971jsd", "acm010972jsd", "acm010973jsd", "acm010974jsd", "acm010975jsd", "acm010976jsd", "acm010977jsd", "acm010978jsd", "acm010979jsd", "acm010980jsd", "acm010981jsd", "acm010982jsd", "acm010983jsd", "acm010984jsd", "acm010985jsd", "acm010986jsd", "acm010987jsd", "acm010988jsd", "acm010989jsd", "acm010990jsd", "acm010991jsd", "acm010992jsd" ] + }, + "acm010994jsd" : { + "type" : "ClassUnit", + "id" : "acm010994jsd", + "name" : "KeySuffix", + "compilationUnitId" : "acm010960jsd", + "parentDatatypeId" : "acm010993jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm010995jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010995jsd", + "name" : "DatabaseCitationKeyPattern", + "parentId" : "acm010873jsd", + "content" : [ "acm011002jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010996jsd" : { + "type" : "CodePackage", + "id" : "acm010996jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm010997jsd" ] + }, + "acm010997jsd" : { + "type" : "CodePackage", + "id" : "acm010997jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm010998jsd" ] + }, + "acm010998jsd" : { + "type" : "CodePackage", + "id" : "acm010998jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm010999jsd" ] + }, + "acm010999jsd" : { + "type" : "CodePackage", + "id" : "acm010999jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm010995jsd" ] + }, + "acm011000jsd" : { + "type" : "ControlElement", + "id" : "acm011000jsd", + "name" : "DatabaseCitationKeyPattern" + }, + "acm011001jsd" : { + "type" : "ControlElement", + "id" : "acm011001jsd", + "name" : "getLastLevelCitationKeyPattern" + }, + "acm011002jsd" : { + "type" : "ClassUnit", + "id" : "acm011002jsd", + "name" : "DatabaseCitationKeyPattern", + "compilationUnitId" : "acm010995jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010886jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm019005jsd" ], + "content" : [ "acm011000jsd", "acm011001jsd" ] + }, + "acm011003jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011003jsd", + "name" : "GlobalCitationKeyPattern", + "parentId" : "acm010873jsd", + "content" : [ "acm011011jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011004jsd" : { + "type" : "CodePackage", + "id" : "acm011004jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011005jsd" ] + }, + "acm011005jsd" : { + "type" : "CodePackage", + "id" : "acm011005jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011006jsd" ] + }, + "acm011006jsd" : { + "type" : "CodePackage", + "id" : "acm011006jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011007jsd" ] + }, + "acm011007jsd" : { + "type" : "CodePackage", + "id" : "acm011007jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm011003jsd" ] + }, + "acm011008jsd" : { + "type" : "ControlElement", + "id" : "acm011008jsd", + "name" : "GlobalCitationKeyPattern" + }, + "acm011009jsd" : { + "type" : "ControlElement", + "id" : "acm011009jsd", + "name" : "fromPattern" + }, + "acm011010jsd" : { + "type" : "ControlElement", + "id" : "acm011010jsd", + "name" : "getLastLevelCitationKeyPattern" + }, + "acm011011jsd" : { + "type" : "ClassUnit", + "id" : "acm011011jsd", + "name" : "GlobalCitationKeyPattern", + "compilationUnitId" : "acm011003jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010886jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm019005jsd" ], + "content" : [ "acm011008jsd", "acm011009jsd", "acm011010jsd" ] + }, + "acm011012jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011012jsd", + "name" : "CSLAdapter", + "parentId" : "acm011016jsd", + "content" : [ "acm011019jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011013jsd" : { + "type" : "CodePackage", + "id" : "acm011013jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011014jsd" ] + }, + "acm011014jsd" : { + "type" : "CodePackage", + "id" : "acm011014jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011015jsd" ] + }, + "acm011015jsd" : { + "type" : "CodePackage", + "id" : "acm011015jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011016jsd" ] + }, + "acm011016jsd" : { + "type" : "CodePackage", + "id" : "acm011016jsd", + "name" : "citationstyle", + "parentId" : "acm001340jsd", + "content" : [ "acm011012jsd", "acm011020jsd", "acm011040jsd", "acm011055jsd", "acm011066jsd", "acm011076jsd", "acm011088jsd", "acm011101jsd", "acm022915jsd", "acm022922jsd", "acm022940jsd" ] + }, + "acm011017jsd" : { + "type" : "ControlElement", + "id" : "acm011017jsd", + "name" : "makeBibliography" + }, + "acm011018jsd" : { + "type" : "ControlElement", + "id" : "acm011018jsd", + "name" : "initialize" + }, + "acm011019jsd" : { + "type" : "ClassUnit", + "id" : "acm011019jsd", + "name" : "CSLAdapter", + "compilationUnitId" : "acm011012jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011075jsd", "acm011100jsd", "acm011107jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm011017jsd", "acm011018jsd" ] + }, + "acm011020jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011020jsd", + "name" : "CitationStyle", + "parentId" : "acm011016jsd", + "content" : [ "acm011039jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011021jsd" : { + "type" : "CodePackage", + "id" : "acm011021jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011022jsd" ] + }, + "acm011022jsd" : { + "type" : "CodePackage", + "id" : "acm011022jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011023jsd" ] + }, + "acm011023jsd" : { + "type" : "CodePackage", + "id" : "acm011023jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011024jsd" ] + }, + "acm011024jsd" : { + "type" : "CodePackage", + "id" : "acm011024jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011020jsd" ] + }, + "acm011025jsd" : { + "type" : "ControlElement", + "id" : "acm011025jsd", + "name" : "CitationStyle" + }, + "acm011026jsd" : { + "type" : "ControlElement", + "id" : "acm011026jsd", + "name" : "createCitationStyleFromSource" + }, + "acm011027jsd" : { + "type" : "ControlElement", + "id" : "acm011027jsd", + "name" : "stripInvalidProlog" + }, + "acm011028jsd" : { + "type" : "ControlElement", + "id" : "acm011028jsd", + "name" : "createCitationStyleFromFile" + }, + "acm011029jsd" : { + "type" : "ControlElement", + "id" : "acm011029jsd", + "name" : "getDefault" + }, + "acm011030jsd" : { + "type" : "ControlElement", + "id" : "acm011030jsd", + "name" : "discoverCitationStyles" + }, + "acm011031jsd" : { + "type" : "ControlElement", + "id" : "acm011031jsd", + "name" : "discoverCitationStylesInPath" + }, + "acm011032jsd" : { + "type" : "ControlElement", + "id" : "acm011032jsd", + "name" : "isCitationStyleFile" + }, + "acm011033jsd" : { + "type" : "ControlElement", + "id" : "acm011033jsd", + "name" : "getTitle" + }, + "acm011034jsd" : { + "type" : "ControlElement", + "id" : "acm011034jsd", + "name" : "getSource" + }, + "acm011035jsd" : { + "type" : "ControlElement", + "id" : "acm011035jsd", + "name" : "getFilePath" + }, + "acm011036jsd" : { + "type" : "ControlElement", + "id" : "acm011036jsd", + "name" : "toString" + }, + "acm011037jsd" : { + "type" : "ControlElement", + "id" : "acm011037jsd", + "name" : "equals" + }, + "acm011038jsd" : { + "type" : "ControlElement", + "id" : "acm011038jsd", + "name" : "hashCode" + }, + "acm011039jsd" : { + "type" : "ClassUnit", + "id" : "acm011039jsd", + "name" : "CitationStyle", + "compilationUnitId" : "acm011020jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011039jsd" ], + "content" : [ "acm011025jsd", "acm011026jsd", "acm011027jsd", "acm011028jsd", "acm011029jsd", "acm011030jsd", "acm011031jsd", "acm011032jsd", "acm011033jsd", "acm011034jsd", "acm011035jsd", "acm011036jsd", "acm011037jsd", "acm011038jsd" ] + }, + "acm011040jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011040jsd", + "name" : "CitationStyleCache", + "parentId" : "acm011016jsd", + "content" : [ "acm011051jsd", "acm011054jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011041jsd" : { + "type" : "CodePackage", + "id" : "acm011041jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011042jsd" ] + }, + "acm011042jsd" : { + "type" : "CodePackage", + "id" : "acm011042jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011043jsd" ] + }, + "acm011043jsd" : { + "type" : "CodePackage", + "id" : "acm011043jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011044jsd" ] + }, + "acm011044jsd" : { + "type" : "CodePackage", + "id" : "acm011044jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011040jsd" ] + }, + "acm011045jsd" : { + "type" : "ControlElement", + "id" : "acm011045jsd", + "name" : "CitationStyleCache" + }, + "acm011046jsd" : { + "type" : "ControlElement", + "id" : "acm011046jsd", + "name" : "load" + }, + "acm011047jsd" : { + "type" : "ControlElement", + "id" : "acm011047jsd", + "name" : "getCitationFor" + }, + "acm011048jsd" : { + "type" : "ControlElement", + "id" : "acm011048jsd", + "name" : "setCitationStyle" + }, + "acm011049jsd" : { + "type" : "ControlElement", + "id" : "acm011049jsd", + "name" : "listen" + }, + "acm011050jsd" : { + "type" : "ControlElement", + "id" : "acm011050jsd", + "name" : "listen" + }, + "acm011051jsd" : { + "type" : "ClassUnit", + "id" : "acm011051jsd", + "name" : "CitationStyleCache", + "compilationUnitId" : "acm011040jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011054jsd", "acm016651jsd", "acm018022jsd", "acm018115jsd", "acm018267jsd", "acm018580jsd" ], + "content" : [ "acm011045jsd", "acm011046jsd", "acm011047jsd", "acm011048jsd", "acm011049jsd", "acm011050jsd" ] + }, + "acm011052jsd" : { + "type" : "ControlElement", + "id" : "acm011052jsd", + "name" : "listen" + }, + "acm011053jsd" : { + "type" : "ControlElement", + "id" : "acm011053jsd", + "name" : "listen" + }, + "acm011054jsd" : { + "type" : "ClassUnit", + "id" : "acm011054jsd", + "name" : "BibDatabaseEntryListener", + "compilationUnitId" : "acm011040jsd", + "parentDatatypeId" : "acm011051jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018115jsd", "acm018267jsd", "acm018580jsd" ], + "content" : [ "acm011052jsd", "acm011053jsd" ] + }, + "acm011055jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011055jsd", + "name" : "CitationStyleGenerator", + "parentId" : "acm011016jsd", + "content" : [ "acm011065jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011056jsd" : { + "type" : "CodePackage", + "id" : "acm011056jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011057jsd" ] + }, + "acm011057jsd" : { + "type" : "CodePackage", + "id" : "acm011057jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011058jsd" ] + }, + "acm011058jsd" : { + "type" : "CodePackage", + "id" : "acm011058jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011059jsd" ] + }, + "acm011059jsd" : { + "type" : "CodePackage", + "id" : "acm011059jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011055jsd" ] + }, + "acm011060jsd" : { + "type" : "ControlElement", + "id" : "acm011060jsd", + "name" : "CitationStyleGenerator" + }, + "acm011061jsd" : { + "type" : "ControlElement", + "id" : "acm011061jsd", + "name" : "generateCitation" + }, + "acm011062jsd" : { + "type" : "ControlElement", + "id" : "acm011062jsd", + "name" : "generateCitation" + }, + "acm011063jsd" : { + "type" : "ControlElement", + "id" : "acm011063jsd", + "name" : "generateCitation" + }, + "acm011064jsd" : { + "type" : "ControlElement", + "id" : "acm011064jsd", + "name" : "generateCitations" + }, + "acm011065jsd" : { + "type" : "ClassUnit", + "id" : "acm011065jsd", + "name" : "CitationStyleGenerator", + "compilationUnitId" : "acm011055jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011019jsd", "acm011039jsd", "acm011065jsd", "acm011075jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm011060jsd", "acm011061jsd", "acm011062jsd", "acm011063jsd", "acm011064jsd" ] + }, + "acm011066jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011066jsd", + "name" : "CitationStyleOutputFormat", + "parentId" : "acm011016jsd", + "content" : [ "acm011075jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011067jsd" : { + "type" : "CodePackage", + "id" : "acm011067jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011068jsd" ] + }, + "acm011068jsd" : { + "type" : "CodePackage", + "id" : "acm011068jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011069jsd" ] + }, + "acm011069jsd" : { + "type" : "CodePackage", + "id" : "acm011069jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011070jsd" ] + }, + "acm011070jsd" : { + "type" : "CodePackage", + "id" : "acm011070jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011066jsd" ] + }, + "acm011071jsd" : { + "type" : "ControlElement", + "id" : "acm011071jsd", + "name" : "CitationStyleOutputFormat" + }, + "acm011072jsd" : { + "type" : "ControlElement", + "id" : "acm011072jsd", + "name" : "getFormat" + }, + "acm011073jsd" : { + "type" : "ControlElement", + "id" : "acm011073jsd", + "name" : "getLineSeparator" + }, + "acm011074jsd" : { + "type" : "ControlElement", + "id" : "acm011074jsd", + "name" : "toString" + }, + "acm011075jsd" : { + "type" : "ClassUnit", + "id" : "acm011075jsd", + "name" : "CitationStyleOutputFormat", + "compilationUnitId" : "acm011066jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011071jsd", "acm011072jsd", "acm011073jsd", "acm011074jsd" ] + }, + "acm011076jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011076jsd", + "name" : "CitationStylePreviewLayout", + "parentId" : "acm011016jsd", + "content" : [ "acm011087jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011077jsd" : { + "type" : "CodePackage", + "id" : "acm011077jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011078jsd" ] + }, + "acm011078jsd" : { + "type" : "CodePackage", + "id" : "acm011078jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011079jsd" ] + }, + "acm011079jsd" : { + "type" : "CodePackage", + "id" : "acm011079jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011080jsd" ] + }, + "acm011080jsd" : { + "type" : "CodePackage", + "id" : "acm011080jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011076jsd" ] + }, + "acm011081jsd" : { + "type" : "ControlElement", + "id" : "acm011081jsd", + "name" : "CitationStylePreviewLayout" + }, + "acm011082jsd" : { + "type" : "ControlElement", + "id" : "acm011082jsd", + "name" : "generatePreview" + }, + "acm011083jsd" : { + "type" : "ControlElement", + "id" : "acm011083jsd", + "name" : "getDisplayName" + }, + "acm011084jsd" : { + "type" : "ControlElement", + "id" : "acm011084jsd", + "name" : "getSource" + }, + "acm011085jsd" : { + "type" : "ControlElement", + "id" : "acm011085jsd", + "name" : "getFilePath" + }, + "acm011086jsd" : { + "type" : "ControlElement", + "id" : "acm011086jsd", + "name" : "getName" + }, + "acm011087jsd" : { + "type" : "ClassUnit", + "id" : "acm011087jsd", + "name" : "CitationStylePreviewLayout", + "compilationUnitId" : "acm011076jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016651jsd" ], + "datatypeReferencesIds" : [ "acm011039jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm011081jsd", "acm011082jsd", "acm011083jsd", "acm011084jsd", "acm011085jsd", "acm011086jsd" ] + }, + "acm011088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011088jsd", + "name" : "JabRefItemDataProvider", + "parentId" : "acm011016jsd", + "content" : [ "acm011100jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011089jsd" : { + "type" : "CodePackage", + "id" : "acm011089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011090jsd" ] + }, + "acm011090jsd" : { + "type" : "CodePackage", + "id" : "acm011090jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011091jsd" ] + }, + "acm011091jsd" : { + "type" : "CodePackage", + "id" : "acm011091jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011092jsd" ] + }, + "acm011092jsd" : { + "type" : "CodePackage", + "id" : "acm011092jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011088jsd" ] + }, + "acm011093jsd" : { + "type" : "ControlElement", + "id" : "acm011093jsd", + "name" : "JabRefItemDataProvider" + }, + "acm011094jsd" : { + "type" : "ControlElement", + "id" : "acm011094jsd", + "name" : "bibEntryToCSLItemData" + }, + "acm011095jsd" : { + "type" : "ControlElement", + "id" : "acm011095jsd", + "name" : "setData" + }, + "acm011096jsd" : { + "type" : "ControlElement", + "id" : "acm011096jsd", + "name" : "setData" + }, + "acm011097jsd" : { + "type" : "ControlElement", + "id" : "acm011097jsd", + "name" : "toJson" + }, + "acm011098jsd" : { + "type" : "ControlElement", + "id" : "acm011098jsd", + "name" : "retrieveItem" + }, + "acm011099jsd" : { + "type" : "ControlElement", + "id" : "acm011099jsd", + "name" : "getIds" + }, + "acm011100jsd" : { + "type" : "ClassUnit", + "id" : "acm011100jsd", + "name" : "JabRefItemDataProvider", + "compilationUnitId" : "acm011088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011987jsd", "acm014745jsd", "acm018022jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd" ], + "content" : [ "acm011093jsd", "acm011094jsd", "acm011095jsd", "acm011096jsd", "acm011097jsd", "acm011098jsd", "acm011099jsd" ] + }, + "acm011101jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011101jsd", + "name" : "JabRefLocaleProvider", + "parentId" : "acm011016jsd", + "content" : [ "acm011107jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011102jsd" : { + "type" : "CodePackage", + "id" : "acm011102jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011103jsd" ] + }, + "acm011103jsd" : { + "type" : "CodePackage", + "id" : "acm011103jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011104jsd" ] + }, + "acm011104jsd" : { + "type" : "CodePackage", + "id" : "acm011104jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011105jsd" ] + }, + "acm011105jsd" : { + "type" : "CodePackage", + "id" : "acm011105jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm011101jsd" ] + }, + "acm011106jsd" : { + "type" : "ControlElement", + "id" : "acm011106jsd", + "name" : "retrieveLocale" + }, + "acm011107jsd" : { + "type" : "ClassUnit", + "id" : "acm011107jsd", + "name" : "JabRefLocaleProvider", + "compilationUnitId" : "acm011101jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011106jsd" ] + }, + "acm011108jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011108jsd", + "name" : "CleanupJob", + "parentId" : "acm011112jsd", + "content" : [ "acm011114jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011109jsd" : { + "type" : "CodePackage", + "id" : "acm011109jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011110jsd" ] + }, + "acm011110jsd" : { + "type" : "CodePackage", + "id" : "acm011110jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011111jsd" ] + }, + "acm011111jsd" : { + "type" : "CodePackage", + "id" : "acm011111jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011112jsd" ] + }, + "acm011112jsd" : { + "type" : "CodePackage", + "id" : "acm011112jsd", + "name" : "cleanup", + "parentId" : "acm001340jsd", + "content" : [ "acm011108jsd", "acm011115jsd", "acm011125jsd", "acm011132jsd", "acm011139jsd", "acm011147jsd", "acm011154jsd", "acm011170jsd", "acm011189jsd", "acm011196jsd", "acm011209jsd", "acm011216jsd", "acm011224jsd", "acm011232jsd", "acm011240jsd", "acm011248jsd", "acm011258jsd", "acm011268jsd", "acm022949jsd", "acm022958jsd", "acm022988jsd", "acm023001jsd", "acm023012jsd", "acm023020jsd", "acm023028jsd", "acm023035jsd", "acm023047jsd", "acm023057jsd", "acm023070jsd", "acm023081jsd", "acm023095jsd" ] + }, + "acm011113jsd" : { + "type" : "ControlElement", + "id" : "acm011113jsd", + "name" : "cleanup" + }, + "acm011114jsd" : { + "type" : "InterfaceUnit", + "id" : "acm011114jsd", + "name" : "CleanupJob", + "compilationUnitId" : "acm011108jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd" ], + "content" : [ "acm011113jsd" ] + }, + "acm011115jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011115jsd", + "name" : "CleanupWorker", + "parentId" : "acm011112jsd", + "content" : [ "acm011124jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011116jsd" : { + "type" : "CodePackage", + "id" : "acm011116jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011117jsd" ] + }, + "acm011117jsd" : { + "type" : "CodePackage", + "id" : "acm011117jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011118jsd" ] + }, + "acm011118jsd" : { + "type" : "CodePackage", + "id" : "acm011118jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011119jsd" ] + }, + "acm011119jsd" : { + "type" : "CodePackage", + "id" : "acm011119jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011115jsd" ] + }, + "acm011120jsd" : { + "type" : "ControlElement", + "id" : "acm011120jsd", + "name" : "CleanupWorker" + }, + "acm011121jsd" : { + "type" : "ControlElement", + "id" : "acm011121jsd", + "name" : "cleanup" + }, + "acm011122jsd" : { + "type" : "ControlElement", + "id" : "acm011122jsd", + "name" : "determineCleanupActions" + }, + "acm011123jsd" : { + "type" : "ControlElement", + "id" : "acm011123jsd", + "name" : "toJob" + }, + "acm011124jsd" : { + "type" : "ClassUnit", + "id" : "acm011124jsd", + "name" : "CleanupWorker", + "compilationUnitId" : "acm011115jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011114jsd", "acm011131jsd", "acm011138jsd", "acm011146jsd", "acm011153jsd", "acm011195jsd", "acm011215jsd", "acm011231jsd", "acm011239jsd", "acm011247jsd", "acm011257jsd", "acm011267jsd", "acm011275jsd", "acm016641jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm020791jsd", "acm020792jsd", "acm020848jsd" ], + "content" : [ "acm011120jsd", "acm011121jsd", "acm011122jsd", "acm011123jsd" ] + }, + "acm011125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011125jsd", + "name" : "ConvertToBiblatexCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011131jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011126jsd" : { + "type" : "CodePackage", + "id" : "acm011126jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011127jsd" ] + }, + "acm011127jsd" : { + "type" : "CodePackage", + "id" : "acm011127jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011128jsd" ] + }, + "acm011128jsd" : { + "type" : "CodePackage", + "id" : "acm011128jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011129jsd" ] + }, + "acm011129jsd" : { + "type" : "CodePackage", + "id" : "acm011129jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011125jsd" ] + }, + "acm011130jsd" : { + "type" : "ControlElement", + "id" : "acm011130jsd", + "name" : "cleanup" + }, + "acm011131jsd" : { + "type" : "ClassUnit", + "id" : "acm011131jsd", + "name" : "ConvertToBiblatexCleanup", + "compilationUnitId" : "acm011125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm011130jsd" ] + }, + "acm011132jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011132jsd", + "name" : "ConvertToBibtexCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011138jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011133jsd" : { + "type" : "CodePackage", + "id" : "acm011133jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011134jsd" ] + }, + "acm011134jsd" : { + "type" : "CodePackage", + "id" : "acm011134jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011135jsd" ] + }, + "acm011135jsd" : { + "type" : "CodePackage", + "id" : "acm011135jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011136jsd" ] + }, + "acm011136jsd" : { + "type" : "CodePackage", + "id" : "acm011136jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011132jsd" ] + }, + "acm011137jsd" : { + "type" : "ControlElement", + "id" : "acm011137jsd", + "name" : "cleanup" + }, + "acm011138jsd" : { + "type" : "ClassUnit", + "id" : "acm011138jsd", + "name" : "ConvertToBibtexCleanup", + "compilationUnitId" : "acm011132jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm011137jsd" ] + }, + "acm011139jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011139jsd", + "name" : "DoiCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011146jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011140jsd" : { + "type" : "CodePackage", + "id" : "acm011140jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011141jsd" ] + }, + "acm011141jsd" : { + "type" : "CodePackage", + "id" : "acm011141jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011142jsd" ] + }, + "acm011142jsd" : { + "type" : "CodePackage", + "id" : "acm011142jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011143jsd" ] + }, + "acm011143jsd" : { + "type" : "CodePackage", + "id" : "acm011143jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011139jsd" ] + }, + "acm011144jsd" : { + "type" : "ControlElement", + "id" : "acm011144jsd", + "name" : "cleanup" + }, + "acm011145jsd" : { + "type" : "ControlElement", + "id" : "acm011145jsd", + "name" : "removeFieldValue" + }, + "acm011146jsd" : { + "type" : "ClassUnit", + "id" : "acm011146jsd", + "name" : "DoiCleanup", + "compilationUnitId" : "acm011139jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm011114jsd", "acm011169jsd", "acm011779jsd", "acm017884jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm018865jsd" ], + "content" : [ "acm011144jsd", "acm011145jsd" ] + }, + "acm011147jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011147jsd", + "name" : "EprintCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011153jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011148jsd" : { + "type" : "CodePackage", + "id" : "acm011148jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011149jsd" ] + }, + "acm011149jsd" : { + "type" : "CodePackage", + "id" : "acm011149jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011150jsd" ] + }, + "acm011150jsd" : { + "type" : "CodePackage", + "id" : "acm011150jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011151jsd" ] + }, + "acm011151jsd" : { + "type" : "CodePackage", + "id" : "acm011151jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011147jsd" ] + }, + "acm011152jsd" : { + "type" : "ControlElement", + "id" : "acm011152jsd", + "name" : "cleanup" + }, + "acm011153jsd" : { + "type" : "ClassUnit", + "id" : "acm011153jsd", + "name" : "EprintCleanup", + "compilationUnitId" : "acm011147jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018673jsd", "acm018843jsd" ], + "content" : [ "acm011152jsd" ] + }, + "acm011154jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011154jsd", + "name" : "FieldFormatterCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011169jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011155jsd" : { + "type" : "CodePackage", + "id" : "acm011155jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011156jsd" ] + }, + "acm011156jsd" : { + "type" : "CodePackage", + "id" : "acm011156jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011157jsd" ] + }, + "acm011157jsd" : { + "type" : "CodePackage", + "id" : "acm011157jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011158jsd" ] + }, + "acm011158jsd" : { + "type" : "CodePackage", + "id" : "acm011158jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011154jsd" ] + }, + "acm011159jsd" : { + "type" : "ControlElement", + "id" : "acm011159jsd", + "name" : "FieldFormatterCleanup" + }, + "acm011160jsd" : { + "type" : "ControlElement", + "id" : "acm011160jsd", + "name" : "cleanup" + }, + "acm011161jsd" : { + "type" : "ControlElement", + "id" : "acm011161jsd", + "name" : "cleanupSingleField" + }, + "acm011162jsd" : { + "type" : "ControlElement", + "id" : "acm011162jsd", + "name" : "cleanupAllFields" + }, + "acm011163jsd" : { + "type" : "ControlElement", + "id" : "acm011163jsd", + "name" : "cleanupAllTextFields" + }, + "acm011164jsd" : { + "type" : "ControlElement", + "id" : "acm011164jsd", + "name" : "getField" + }, + "acm011165jsd" : { + "type" : "ControlElement", + "id" : "acm011165jsd", + "name" : "getFormatter" + }, + "acm011166jsd" : { + "type" : "ControlElement", + "id" : "acm011166jsd", + "name" : "equals" + }, + "acm011167jsd" : { + "type" : "ControlElement", + "id" : "acm011167jsd", + "name" : "hashCode" + }, + "acm011168jsd" : { + "type" : "ControlElement", + "id" : "acm011168jsd", + "name" : "toString" + }, + "acm011169jsd" : { + "type" : "ClassUnit", + "id" : "acm011169jsd", + "name" : "FieldFormatterCleanup", + "compilationUnitId" : "acm011154jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011208jsd", "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm011159jsd", "acm011160jsd", "acm011161jsd", "acm011162jsd", "acm011163jsd", "acm011164jsd", "acm011165jsd", "acm011166jsd", "acm011167jsd", "acm011168jsd" ] + }, + "acm011170jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011170jsd", + "name" : "FieldFormatterCleanups", + "parentId" : "acm011112jsd", + "content" : [ "acm011188jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011171jsd" : { + "type" : "CodePackage", + "id" : "acm011171jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011172jsd" ] + }, + "acm011172jsd" : { + "type" : "CodePackage", + "id" : "acm011172jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011173jsd" ] + }, + "acm011173jsd" : { + "type" : "CodePackage", + "id" : "acm011173jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011174jsd" ] + }, + "acm011174jsd" : { + "type" : "CodePackage", + "id" : "acm011174jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011170jsd" ] + }, + "acm011175jsd" : { + "type" : "ControlElement", + "id" : "acm011175jsd", + "name" : "FieldFormatterCleanups" + }, + "acm011176jsd" : { + "type" : "ControlElement", + "id" : "acm011176jsd", + "name" : "getMetaDataString" + }, + "acm011177jsd" : { + "type" : "ControlElement", + "id" : "acm011177jsd", + "name" : "isEnabled" + }, + "acm011178jsd" : { + "type" : "ControlElement", + "id" : "acm011178jsd", + "name" : "getConfiguredActions" + }, + "acm011179jsd" : { + "type" : "ControlElement", + "id" : "acm011179jsd", + "name" : "applySaveActions" + }, + "acm011180jsd" : { + "type" : "ControlElement", + "id" : "acm011180jsd", + "name" : "applyAllActions" + }, + "acm011181jsd" : { + "type" : "ControlElement", + "id" : "acm011181jsd", + "name" : "getAsStringList" + }, + "acm011182jsd" : { + "type" : "ControlElement", + "id" : "acm011182jsd", + "name" : "parse" + }, + "acm011183jsd" : { + "type" : "ControlElement", + "id" : "acm011183jsd", + "name" : "parse" + }, + "acm011184jsd" : { + "type" : "ControlElement", + "id" : "acm011184jsd", + "name" : "getFormatterFromString" + }, + "acm011185jsd" : { + "type" : "ControlElement", + "id" : "acm011185jsd", + "name" : "hashCode" + }, + "acm011186jsd" : { + "type" : "ControlElement", + "id" : "acm011186jsd", + "name" : "equals" + }, + "acm011187jsd" : { + "type" : "ControlElement", + "id" : "acm011187jsd", + "name" : "toString" + }, + "acm011188jsd" : { + "type" : "ClassUnit", + "id" : "acm011188jsd", + "name" : "FieldFormatterCleanups", + "compilationUnitId" : "acm011170jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011188jsd", "acm011208jsd", "acm011743jsd", "acm011828jsd", "acm011840jsd", "acm011864jsd", "acm011888jsd", "acm011912jsd", "acm011924jsd", "acm012047jsd", "acm015489jsd", "acm015629jsd", "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm011175jsd", "acm011176jsd", "acm011177jsd", "acm011178jsd", "acm011179jsd", "acm011180jsd", "acm011181jsd", "acm011182jsd", "acm011183jsd", "acm011184jsd", "acm011185jsd", "acm011186jsd", "acm011187jsd" ] + }, + "acm011189jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011189jsd", + "name" : "FileLinksCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011195jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011190jsd" : { + "type" : "CodePackage", + "id" : "acm011190jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011191jsd" ] + }, + "acm011191jsd" : { + "type" : "CodePackage", + "id" : "acm011191jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011192jsd" ] + }, + "acm011192jsd" : { + "type" : "CodePackage", + "id" : "acm011192jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011193jsd" ] + }, + "acm011193jsd" : { + "type" : "CodePackage", + "id" : "acm011193jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011189jsd" ] + }, + "acm011194jsd" : { + "type" : "ControlElement", + "id" : "acm011194jsd", + "name" : "cleanup" + }, + "acm011195jsd" : { + "type" : "ClassUnit", + "id" : "acm011195jsd", + "name" : "FileLinksCleanup", + "compilationUnitId" : "acm011189jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018509jsd" ], + "content" : [ "acm011194jsd" ] + }, + "acm011196jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011196jsd", + "name" : "Formatter", + "parentId" : "acm011112jsd", + "content" : [ "acm011208jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011197jsd" : { + "type" : "CodePackage", + "id" : "acm011197jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011198jsd" ] + }, + "acm011198jsd" : { + "type" : "CodePackage", + "id" : "acm011198jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011199jsd" ] + }, + "acm011199jsd" : { + "type" : "CodePackage", + "id" : "acm011199jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011200jsd" ] + }, + "acm011200jsd" : { + "type" : "CodePackage", + "id" : "acm011200jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011196jsd" ] + }, + "acm011201jsd" : { + "type" : "ControlElement", + "id" : "acm011201jsd", + "name" : "getName" + }, + "acm011202jsd" : { + "type" : "ControlElement", + "id" : "acm011202jsd", + "name" : "getKey" + }, + "acm011203jsd" : { + "type" : "ControlElement", + "id" : "acm011203jsd", + "name" : "format" + }, + "acm011204jsd" : { + "type" : "ControlElement", + "id" : "acm011204jsd", + "name" : "getDescription" + }, + "acm011205jsd" : { + "type" : "ControlElement", + "id" : "acm011205jsd", + "name" : "getExampleInput" + }, + "acm011206jsd" : { + "type" : "ControlElement", + "id" : "acm011206jsd", + "name" : "hashCode" + }, + "acm011207jsd" : { + "type" : "ControlElement", + "id" : "acm011207jsd", + "name" : "equals" + }, + "acm011208jsd" : { + "type" : "ClassUnit", + "id" : "acm011208jsd", + "name" : "Formatter", + "compilationUnitId" : "acm011196jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011208jsd" ], + "content" : [ "acm011201jsd", "acm011202jsd", "acm011203jsd", "acm011204jsd", "acm011205jsd", "acm011206jsd", "acm011207jsd" ] + }, + "acm011209jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011209jsd", + "name" : "ISSNCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011215jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011210jsd" : { + "type" : "CodePackage", + "id" : "acm011210jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011211jsd" ] + }, + "acm011211jsd" : { + "type" : "CodePackage", + "id" : "acm011211jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011212jsd" ] + }, + "acm011212jsd" : { + "type" : "CodePackage", + "id" : "acm011212jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011213jsd" ] + }, + "acm011213jsd" : { + "type" : "CodePackage", + "id" : "acm011213jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011209jsd" ] + }, + "acm011214jsd" : { + "type" : "ControlElement", + "id" : "acm011214jsd", + "name" : "cleanup" + }, + "acm011215jsd" : { + "type" : "ClassUnit", + "id" : "acm011215jsd", + "name" : "ISSNCleanup", + "compilationUnitId" : "acm011209jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018906jsd" ], + "content" : [ "acm011214jsd" ] + }, + "acm011216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011216jsd", + "name" : "MoveFieldCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011223jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011217jsd" : { + "type" : "CodePackage", + "id" : "acm011217jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011218jsd" ] + }, + "acm011218jsd" : { + "type" : "CodePackage", + "id" : "acm011218jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011219jsd" ] + }, + "acm011219jsd" : { + "type" : "CodePackage", + "id" : "acm011219jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011220jsd" ] + }, + "acm011220jsd" : { + "type" : "CodePackage", + "id" : "acm011220jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011216jsd" ] + }, + "acm011221jsd" : { + "type" : "ControlElement", + "id" : "acm011221jsd", + "name" : "MoveFieldCleanup" + }, + "acm011222jsd" : { + "type" : "ControlElement", + "id" : "acm011222jsd", + "name" : "cleanup" + }, + "acm011223jsd" : { + "type" : "ClassUnit", + "id" : "acm011223jsd", + "name" : "MoveFieldCleanup", + "compilationUnitId" : "acm011216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm011221jsd", "acm011222jsd" ] + }, + "acm011224jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011224jsd", + "name" : "MoveFilesCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011225jsd" : { + "type" : "CodePackage", + "id" : "acm011225jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011226jsd" ] + }, + "acm011226jsd" : { + "type" : "CodePackage", + "id" : "acm011226jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011227jsd" ] + }, + "acm011227jsd" : { + "type" : "CodePackage", + "id" : "acm011227jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011228jsd" ] + }, + "acm011228jsd" : { + "type" : "CodePackage", + "id" : "acm011228jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011224jsd" ] + }, + "acm011229jsd" : { + "type" : "ControlElement", + "id" : "acm011229jsd", + "name" : "MoveFilesCleanup" + }, + "acm011230jsd" : { + "type" : "ControlElement", + "id" : "acm011230jsd", + "name" : "cleanup" + }, + "acm011231jsd" : { + "type" : "ClassUnit", + "id" : "acm011231jsd", + "name" : "MoveFilesCleanup", + "compilationUnitId" : "acm011224jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm011231jsd", "acm011720jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm011229jsd", "acm011230jsd" ] + }, + "acm011232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011232jsd", + "name" : "RelativePathsCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011239jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011233jsd" : { + "type" : "CodePackage", + "id" : "acm011233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011234jsd" ] + }, + "acm011234jsd" : { + "type" : "CodePackage", + "id" : "acm011234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011235jsd" ] + }, + "acm011235jsd" : { + "type" : "CodePackage", + "id" : "acm011235jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011236jsd" ] + }, + "acm011236jsd" : { + "type" : "CodePackage", + "id" : "acm011236jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011232jsd" ] + }, + "acm011237jsd" : { + "type" : "ControlElement", + "id" : "acm011237jsd", + "name" : "RelativePathsCleanup" + }, + "acm011238jsd" : { + "type" : "ControlElement", + "id" : "acm011238jsd", + "name" : "cleanup" + }, + "acm011239jsd" : { + "type" : "ClassUnit", + "id" : "acm011239jsd", + "name" : "RelativePathsCleanup", + "compilationUnitId" : "acm011232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm011237jsd", "acm011238jsd" ] + }, + "acm011240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011240jsd", + "name" : "RenamePdfCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011247jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011241jsd" : { + "type" : "CodePackage", + "id" : "acm011241jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011242jsd" ] + }, + "acm011242jsd" : { + "type" : "CodePackage", + "id" : "acm011242jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011243jsd" ] + }, + "acm011243jsd" : { + "type" : "CodePackage", + "id" : "acm011243jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011244jsd" ] + }, + "acm011244jsd" : { + "type" : "CodePackage", + "id" : "acm011244jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011240jsd" ] + }, + "acm011245jsd" : { + "type" : "ControlElement", + "id" : "acm011245jsd", + "name" : "RenamePdfCleanup" + }, + "acm011246jsd" : { + "type" : "ControlElement", + "id" : "acm011246jsd", + "name" : "cleanup" + }, + "acm011247jsd" : { + "type" : "ClassUnit", + "id" : "acm011247jsd", + "name" : "RenamePdfCleanup", + "compilationUnitId" : "acm011240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm011247jsd", "acm011720jsd", "acm017884jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm011245jsd", "acm011246jsd" ] + }, + "acm011248jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011248jsd", + "name" : "TimeStampToCreationDate", + "parentId" : "acm011112jsd", + "content" : [ "acm011257jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011249jsd" : { + "type" : "CodePackage", + "id" : "acm011249jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011250jsd" ] + }, + "acm011250jsd" : { + "type" : "CodePackage", + "id" : "acm011250jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011251jsd" ] + }, + "acm011251jsd" : { + "type" : "CodePackage", + "id" : "acm011251jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011252jsd" ] + }, + "acm011252jsd" : { + "type" : "CodePackage", + "id" : "acm011252jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011248jsd" ] + }, + "acm011253jsd" : { + "type" : "ControlElement", + "id" : "acm011253jsd", + "name" : "TimeStampToCreationDate" + }, + "acm011254jsd" : { + "type" : "ControlElement", + "id" : "acm011254jsd", + "name" : "formatTimeStamp" + }, + "acm011255jsd" : { + "type" : "ControlElement", + "id" : "acm011255jsd", + "name" : "getMonth" + }, + "acm011256jsd" : { + "type" : "ControlElement", + "id" : "acm011256jsd", + "name" : "cleanup" + }, + "acm011257jsd" : { + "type" : "ClassUnit", + "id" : "acm011257jsd", + "name" : "TimeStampToCreationDate", + "compilationUnitId" : "acm011248jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm016641jsd", "acm017884jsd", "acm018267jsd", "acm018401jsd", "acm018673jsd" ], + "content" : [ "acm011253jsd", "acm011254jsd", "acm011255jsd", "acm011256jsd" ] + }, + "acm011258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011258jsd", + "name" : "TimeStampToModificationDate", + "parentId" : "acm011112jsd", + "content" : [ "acm011267jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011259jsd" : { + "type" : "CodePackage", + "id" : "acm011259jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011260jsd" ] + }, + "acm011260jsd" : { + "type" : "CodePackage", + "id" : "acm011260jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011261jsd" ] + }, + "acm011261jsd" : { + "type" : "CodePackage", + "id" : "acm011261jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011262jsd" ] + }, + "acm011262jsd" : { + "type" : "CodePackage", + "id" : "acm011262jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011258jsd" ] + }, + "acm011263jsd" : { + "type" : "ControlElement", + "id" : "acm011263jsd", + "name" : "TimeStampToModificationDate" + }, + "acm011264jsd" : { + "type" : "ControlElement", + "id" : "acm011264jsd", + "name" : "formatTimeStamp" + }, + "acm011265jsd" : { + "type" : "ControlElement", + "id" : "acm011265jsd", + "name" : "getMonth" + }, + "acm011266jsd" : { + "type" : "ControlElement", + "id" : "acm011266jsd", + "name" : "cleanup" + }, + "acm011267jsd" : { + "type" : "ClassUnit", + "id" : "acm011267jsd", + "name" : "TimeStampToModificationDate", + "compilationUnitId" : "acm011258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm016641jsd", "acm017884jsd", "acm018267jsd", "acm018401jsd", "acm018673jsd" ], + "content" : [ "acm011263jsd", "acm011264jsd", "acm011265jsd", "acm011266jsd" ] + }, + "acm011268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011268jsd", + "name" : "UpgradePdfPsToFileCleanup", + "parentId" : "acm011112jsd", + "content" : [ "acm011275jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011269jsd" : { + "type" : "CodePackage", + "id" : "acm011269jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011270jsd" ] + }, + "acm011270jsd" : { + "type" : "CodePackage", + "id" : "acm011270jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011271jsd" ] + }, + "acm011271jsd" : { + "type" : "CodePackage", + "id" : "acm011271jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011272jsd" ] + }, + "acm011272jsd" : { + "type" : "CodePackage", + "id" : "acm011272jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm011268jsd" ] + }, + "acm011273jsd" : { + "type" : "ControlElement", + "id" : "acm011273jsd", + "name" : "UpgradePdfPsToFileCleanup" + }, + "acm011274jsd" : { + "type" : "ControlElement", + "id" : "acm011274jsd", + "name" : "cleanup" + }, + "acm011275jsd" : { + "type" : "ClassUnit", + "id" : "acm011275jsd", + "name" : "UpgradePdfPsToFileCleanup", + "compilationUnitId" : "acm011268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm011114jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018509jsd", "acm018673jsd" ], + "content" : [ "acm011273jsd", "acm011274jsd" ] + }, + "acm011276jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011276jsd", + "name" : "Crawler", + "parentId" : "acm011280jsd", + "content" : [ "acm011283jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011277jsd" : { + "type" : "CodePackage", + "id" : "acm011277jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011278jsd" ] + }, + "acm011278jsd" : { + "type" : "CodePackage", + "id" : "acm011278jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011279jsd" ] + }, + "acm011279jsd" : { + "type" : "CodePackage", + "id" : "acm011279jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011280jsd" ] + }, + "acm011280jsd" : { + "type" : "CodePackage", + "id" : "acm011280jsd", + "name" : "crawler", + "parentId" : "acm001340jsd", + "content" : [ "acm011276jsd", "acm011284jsd", "acm011294jsd", "acm011305jsd", "acm011338jsd", "acm023107jsd", "acm023118jsd", "acm023127jsd", "acm023149jsd" ] + }, + "acm011281jsd" : { + "type" : "ControlElement", + "id" : "acm011281jsd", + "name" : "Crawler" + }, + "acm011282jsd" : { + "type" : "ControlElement", + "id" : "acm011282jsd", + "name" : "performCrawl" + }, + "acm011283jsd" : { + "type" : "ClassUnit", + "id" : "acm011283jsd", + "name" : "Crawler", + "compilationUnitId" : "acm011276jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011293jsd", "acm011304jsd", "acm011337jsd", "acm011663jsd", "acm012242jsd", "acm012515jsd", "acm018333jsd", "acm020566jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm011281jsd", "acm011282jsd" ] + }, + "acm011284jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011284jsd", + "name" : "StudyDatabaseToFetcherConverter", + "parentId" : "acm011280jsd", + "content" : [ "acm011293jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011285jsd" : { + "type" : "CodePackage", + "id" : "acm011285jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011286jsd" ] + }, + "acm011286jsd" : { + "type" : "CodePackage", + "id" : "acm011286jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011287jsd" ] + }, + "acm011287jsd" : { + "type" : "CodePackage", + "id" : "acm011287jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011288jsd" ] + }, + "acm011288jsd" : { + "type" : "CodePackage", + "id" : "acm011288jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm011284jsd" ] + }, + "acm011289jsd" : { + "type" : "ControlElement", + "id" : "acm011289jsd", + "name" : "StudyDatabaseToFetcherConverter" + }, + "acm011290jsd" : { + "type" : "ControlElement", + "id" : "acm011290jsd", + "name" : "getActiveFetchers" + }, + "acm011291jsd" : { + "type" : "ControlElement", + "id" : "acm011291jsd", + "name" : "getFetchersFromLibraryEntries" + }, + "acm011292jsd" : { + "type" : "ControlElement", + "id" : "acm011292jsd", + "name" : "createFetcherFromLibraryEntry" + }, + "acm011293jsd" : { + "type" : "ClassUnit", + "id" : "acm011293jsd", + "name" : "StudyDatabaseToFetcherConverter", + "compilationUnitId" : "acm011284jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm012571jsd", "acm020602jsd" ], + "content" : [ "acm011289jsd", "acm011290jsd", "acm011291jsd", "acm011292jsd" ] + }, + "acm011294jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011294jsd", + "name" : "StudyFetcher", + "parentId" : "acm011280jsd", + "content" : [ "acm011304jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011295jsd" : { + "type" : "CodePackage", + "id" : "acm011295jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011296jsd" ] + }, + "acm011296jsd" : { + "type" : "CodePackage", + "id" : "acm011296jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011297jsd" ] + }, + "acm011297jsd" : { + "type" : "CodePackage", + "id" : "acm011297jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011298jsd" ] + }, + "acm011298jsd" : { + "type" : "CodePackage", + "id" : "acm011298jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm011294jsd" ] + }, + "acm011299jsd" : { + "type" : "ControlElement", + "id" : "acm011299jsd", + "name" : "StudyFetcher" + }, + "acm011300jsd" : { + "type" : "ControlElement", + "id" : "acm011300jsd", + "name" : "crawl" + }, + "acm011301jsd" : { + "type" : "ControlElement", + "id" : "acm011301jsd", + "name" : "getQueryResult" + }, + "acm011302jsd" : { + "type" : "ControlElement", + "id" : "acm011302jsd", + "name" : "performSearchOnQuery" + }, + "acm011303jsd" : { + "type" : "ControlElement", + "id" : "acm011303jsd", + "name" : "performSearchOnQueryForFetcher" + }, + "acm011304jsd" : { + "type" : "ClassUnit", + "id" : "acm011304jsd", + "name" : "StudyFetcher", + "compilationUnitId" : "acm011294jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011304jsd", "acm012314jsd", "acm012495jsd", "acm012571jsd", "acm017988jsd", "acm018267jsd", "acm020557jsd", "acm020566jsd" ], + "content" : [ "acm011299jsd", "acm011300jsd", "acm011301jsd", "acm011302jsd", "acm011303jsd" ] + }, + "acm011305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011305jsd", + "name" : "StudyRepository", + "parentId" : "acm011280jsd", + "content" : [ "acm011337jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011306jsd" : { + "type" : "CodePackage", + "id" : "acm011306jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011307jsd" ] + }, + "acm011307jsd" : { + "type" : "CodePackage", + "id" : "acm011307jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011308jsd" ] + }, + "acm011308jsd" : { + "type" : "CodePackage", + "id" : "acm011308jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011309jsd" ] + }, + "acm011309jsd" : { + "type" : "CodePackage", + "id" : "acm011309jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm011305jsd" ] + }, + "acm011310jsd" : { + "type" : "ControlElement", + "id" : "acm011310jsd", + "name" : "StudyRepository" + }, + "acm011311jsd" : { + "type" : "ControlElement", + "id" : "acm011311jsd", + "name" : "getFetcherResultEntries" + }, + "acm011312jsd" : { + "type" : "ControlElement", + "id" : "acm011312jsd", + "name" : "getQueryResultEntries" + }, + "acm011313jsd" : { + "type" : "ControlElement", + "id" : "acm011313jsd", + "name" : "getStudyResultEntries" + }, + "acm011314jsd" : { + "type" : "ControlElement", + "id" : "acm011314jsd", + "name" : "parseStudyFile" + }, + "acm011315jsd" : { + "type" : "ControlElement", + "id" : "acm011315jsd", + "name" : "getSearchQueryStrings" + }, + "acm011316jsd" : { + "type" : "ControlElement", + "id" : "acm011316jsd", + "name" : "getActiveLibraryEntries" + }, + "acm011317jsd" : { + "type" : "ControlElement", + "id" : "acm011317jsd", + "name" : "getStudy" + }, + "acm011318jsd" : { + "type" : "ControlElement", + "id" : "acm011318jsd", + "name" : "persist" + }, + "acm011319jsd" : { + "type" : "ControlElement", + "id" : "acm011319jsd", + "name" : "updateRemoteSearchAndWorkBranch" + }, + "acm011320jsd" : { + "type" : "ControlElement", + "id" : "acm011320jsd", + "name" : "updateWorkAndSearchBranch" + }, + "acm011321jsd" : { + "type" : "ControlElement", + "id" : "acm011321jsd", + "name" : "setUpRepositoryStructureForQueriesAndFetchers" + }, + "acm011322jsd" : { + "type" : "ControlElement", + "id" : "acm011322jsd", + "name" : "createQueryResultFolder" + }, + "acm011323jsd" : { + "type" : "ControlElement", + "id" : "acm011323jsd", + "name" : "createFolder" + }, + "acm011324jsd" : { + "type" : "ControlElement", + "id" : "acm011324jsd", + "name" : "createFetcherResultFile" + }, + "acm011325jsd" : { + "type" : "ControlElement", + "id" : "acm011325jsd", + "name" : "createQueryResultFile" + }, + "acm011326jsd" : { + "type" : "ControlElement", + "id" : "acm011326jsd", + "name" : "createStudyResultFile" + }, + "acm011327jsd" : { + "type" : "ControlElement", + "id" : "acm011327jsd", + "name" : "createBibFile" + }, + "acm011328jsd" : { + "type" : "ControlElement", + "id" : "acm011328jsd", + "name" : "trimNameAndAddID" + }, + "acm011329jsd" : { + "type" : "ControlElement", + "id" : "acm011329jsd", + "name" : "computeIDForQuery" + }, + "acm011330jsd" : { + "type" : "ControlElement", + "id" : "acm011330jsd", + "name" : "persistResults" + }, + "acm011331jsd" : { + "type" : "ControlElement", + "id" : "acm011331jsd", + "name" : "generateCiteKeys" + }, + "acm011332jsd" : { + "type" : "ControlElement", + "id" : "acm011332jsd", + "name" : "writeResultToFile" + }, + "acm011333jsd" : { + "type" : "ControlElement", + "id" : "acm011333jsd", + "name" : "getPathToFetcherResultFile" + }, + "acm011334jsd" : { + "type" : "ControlElement", + "id" : "acm011334jsd", + "name" : "getPathToQueryResultFile" + }, + "acm011335jsd" : { + "type" : "ControlElement", + "id" : "acm011335jsd", + "name" : "getPathToStudyResultFile" + }, + "acm011336jsd" : { + "type" : "ControlElement", + "id" : "acm011336jsd", + "name" : "getPathToQueryDirectory" + }, + "acm011337jsd" : { + "type" : "ClassUnit", + "id" : "acm011337jsd", + "name" : "StudyRepository", + "compilationUnitId" : "acm011305jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm011293jsd", "acm011337jsd", "acm011345jsd", "acm011359jsd", "acm011415jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm011663jsd", "acm012242jsd", "acm012571jsd", "acm017988jsd", "acm018022jsd", "acm018333jsd", "acm020557jsd", "acm020566jsd", "acm020587jsd", "acm020602jsd", "acm020693jsd", "acm021206jsd" ], + "content" : [ "acm011310jsd", "acm011311jsd", "acm011312jsd", "acm011313jsd", "acm011314jsd", "acm011315jsd", "acm011316jsd", "acm011317jsd", "acm011318jsd", "acm011319jsd", "acm011320jsd", "acm011321jsd", "acm011322jsd", "acm011323jsd", "acm011324jsd", "acm011325jsd", "acm011326jsd", "acm011327jsd", "acm011328jsd", "acm011329jsd", "acm011330jsd", "acm011331jsd", "acm011332jsd", "acm011333jsd", "acm011334jsd", "acm011335jsd", "acm011336jsd" ] + }, + "acm011338jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011338jsd", + "name" : "StudyYamlParser", + "parentId" : "acm011280jsd", + "content" : [ "acm011345jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011339jsd" : { + "type" : "CodePackage", + "id" : "acm011339jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011340jsd" ] + }, + "acm011340jsd" : { + "type" : "CodePackage", + "id" : "acm011340jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011341jsd" ] + }, + "acm011341jsd" : { + "type" : "CodePackage", + "id" : "acm011341jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011342jsd" ] + }, + "acm011342jsd" : { + "type" : "CodePackage", + "id" : "acm011342jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm011338jsd" ] + }, + "acm011343jsd" : { + "type" : "ControlElement", + "id" : "acm011343jsd", + "name" : "parseStudyYamlFile" + }, + "acm011344jsd" : { + "type" : "ControlElement", + "id" : "acm011344jsd", + "name" : "writeStudyYamlFile" + }, + "acm011345jsd" : { + "type" : "ClassUnit", + "id" : "acm011345jsd", + "name" : "StudyYamlParser", + "compilationUnitId" : "acm011338jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020587jsd" ], + "content" : [ "acm011343jsd", "acm011344jsd" ] + }, + "acm011346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011346jsd", + "name" : "DatabaseMerger", + "parentId" : "acm011350jsd", + "content" : [ "acm011359jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011347jsd" : { + "type" : "CodePackage", + "id" : "acm011347jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011348jsd" ] + }, + "acm011348jsd" : { + "type" : "CodePackage", + "id" : "acm011348jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011349jsd" ] + }, + "acm011349jsd" : { + "type" : "CodePackage", + "id" : "acm011349jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011350jsd" ] + }, + "acm011350jsd" : { + "type" : "CodePackage", + "id" : "acm011350jsd", + "name" : "database", + "parentId" : "acm001340jsd", + "content" : [ "acm011346jsd", "acm011360jsd", "acm023159jsd", "acm023181jsd" ] + }, + "acm011351jsd" : { + "type" : "ControlElement", + "id" : "acm011351jsd", + "name" : "DatabaseMerger" + }, + "acm011352jsd" : { + "type" : "ControlElement", + "id" : "acm011352jsd", + "name" : "merge" + }, + "acm011353jsd" : { + "type" : "ControlElement", + "id" : "acm011353jsd", + "name" : "merge" + }, + "acm011354jsd" : { + "type" : "ControlElement", + "id" : "acm011354jsd", + "name" : "mergeEntries" + }, + "acm011355jsd" : { + "type" : "ControlElement", + "id" : "acm011355jsd", + "name" : "mergeStrings" + }, + "acm011356jsd" : { + "type" : "ControlElement", + "id" : "acm011356jsd", + "name" : "mergeMetaData" + }, + "acm011357jsd" : { + "type" : "ControlElement", + "id" : "acm011357jsd", + "name" : "mergeGroups" + }, + "acm011358jsd" : { + "type" : "ControlElement", + "id" : "acm011358jsd", + "name" : "mergeContentSelectors" + }, + "acm011359jsd" : { + "type" : "ClassUnit", + "id" : "acm011359jsd", + "name" : "DatabaseMerger", + "compilationUnitId" : "acm011346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011359jsd", "acm011386jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm018367jsd", "acm019348jsd", "acm019421jsd" ], + "content" : [ "acm011351jsd", "acm011352jsd", "acm011353jsd", "acm011354jsd", "acm011355jsd", "acm011356jsd", "acm011357jsd", "acm011358jsd" ] + }, + "acm011360jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011360jsd", + "name" : "DuplicateCheck", + "parentId" : "acm011350jsd", + "content" : [ "acm011386jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011361jsd" : { + "type" : "CodePackage", + "id" : "acm011361jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011362jsd" ] + }, + "acm011362jsd" : { + "type" : "CodePackage", + "id" : "acm011362jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011363jsd" ] + }, + "acm011363jsd" : { + "type" : "CodePackage", + "id" : "acm011363jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011364jsd" ] + }, + "acm011364jsd" : { + "type" : "CodePackage", + "id" : "acm011364jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm011360jsd" ] + }, + "acm011365jsd" : { + "type" : "ControlElement", + "id" : "acm011365jsd", + "name" : "DuplicateCheck" + }, + "acm011366jsd" : { + "type" : "ControlElement", + "id" : "acm011366jsd", + "name" : "haveSameIdentifier" + }, + "acm011367jsd" : { + "type" : "ControlElement", + "id" : "acm011367jsd", + "name" : "haveDifferentEntryType" + }, + "acm011368jsd" : { + "type" : "ControlElement", + "id" : "acm011368jsd", + "name" : "haveDifferentEditions" + }, + "acm011369jsd" : { + "type" : "ControlElement", + "id" : "acm011369jsd", + "name" : "haveDifferentChaptersOrPagesOfTheSameBook" + }, + "acm011370jsd" : { + "type" : "ControlElement", + "id" : "acm011370jsd", + "name" : "compareRequiredFields" + }, + "acm011371jsd" : { + "type" : "ControlElement", + "id" : "acm011371jsd", + "name" : "isFarFromThreshold" + }, + "acm011372jsd" : { + "type" : "ControlElement", + "id" : "acm011372jsd", + "name" : "compareOptionalFields" + }, + "acm011373jsd" : { + "type" : "ControlElement", + "id" : "acm011373jsd", + "name" : "compareFieldSet" + }, + "acm011374jsd" : { + "type" : "ControlElement", + "id" : "acm011374jsd", + "name" : "compareSingleField" + }, + "acm011375jsd" : { + "type" : "ControlElement", + "id" : "acm011375jsd", + "name" : "compareAuthorField" + }, + "acm011376jsd" : { + "type" : "ControlElement", + "id" : "acm011376jsd", + "name" : "comparePagesField" + }, + "acm011377jsd" : { + "type" : "ControlElement", + "id" : "acm011377jsd", + "name" : "compareJournalField" + }, + "acm011378jsd" : { + "type" : "ControlElement", + "id" : "acm011378jsd", + "name" : "compareChapterField" + }, + "acm011379jsd" : { + "type" : "ControlElement", + "id" : "acm011379jsd", + "name" : "compareField" + }, + "acm011380jsd" : { + "type" : "ControlElement", + "id" : "acm011380jsd", + "name" : "compareEntriesStrictly" + }, + "acm011381jsd" : { + "type" : "ControlElement", + "id" : "acm011381jsd", + "name" : "isSingleFieldEqual" + }, + "acm011382jsd" : { + "type" : "ControlElement", + "id" : "acm011382jsd", + "name" : "correlateByWords" + }, + "acm011383jsd" : { + "type" : "ControlElement", + "id" : "acm011383jsd", + "name" : "similarity" + }, + "acm011384jsd" : { + "type" : "ControlElement", + "id" : "acm011384jsd", + "name" : "isDuplicate" + }, + "acm011385jsd" : { + "type" : "ControlElement", + "id" : "acm011385jsd", + "name" : "containsDuplicate" + }, + "acm011386jsd" : { + "type" : "ClassUnit", + "id" : "acm011386jsd", + "name" : "DuplicateCheck", + "compilationUnitId" : "acm011360jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011386jsd", "acm017661jsd", "acm017988jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm018754jsd", "acm018865jsd", "acm018894jsd" ], + "content" : [ "acm011365jsd", "acm011366jsd", "acm011367jsd", "acm011368jsd", "acm011369jsd", "acm011370jsd", "acm011371jsd", "acm011372jsd", "acm011373jsd", "acm011374jsd", "acm011375jsd", "acm011376jsd", "acm011377jsd", "acm011378jsd", "acm011379jsd", "acm011380jsd", "acm011381jsd", "acm011382jsd", "acm011383jsd", "acm011384jsd", "acm011385jsd" ] + }, + "acm011387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011387jsd", + "name" : "AtomicFileOutputStream", + "parentId" : "acm011391jsd", + "content" : [ "acm011404jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011388jsd" : { + "type" : "CodePackage", + "id" : "acm011388jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011389jsd" ] + }, + "acm011389jsd" : { + "type" : "CodePackage", + "id" : "acm011389jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011390jsd" ] + }, + "acm011390jsd" : { + "type" : "CodePackage", + "id" : "acm011390jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011391jsd" ] + }, + "acm011391jsd" : { + "type" : "CodePackage", + "id" : "acm011391jsd", + "name" : "exporter", + "parentId" : "acm001340jsd", + "content" : [ "acm011387jsd", "acm011405jsd", "acm011416jsd", "acm011445jsd", "acm011456jsd", "acm011472jsd", "acm011478jsd", "acm011488jsd", "acm011503jsd", "acm011514jsd", "acm011531jsd", "acm011539jsd", "acm011551jsd", "acm011578jsd", "acm011592jsd", "acm011602jsd", "acm011615jsd", "acm011628jsd", "acm011646jsd", "acm011664jsd", "acm011681jsd", "acm011690jsd", "acm023211jsd", "acm023219jsd", "acm023279jsd", "acm023291jsd", "acm023299jsd", "acm023308jsd", "acm023325jsd", "acm023335jsd", "acm023360jsd", "acm023380jsd", "acm023389jsd", "acm023398jsd", "acm023410jsd", "acm023421jsd", "acm023429jsd", "acm023437jsd", "acm023447jsd", "acm023458jsd", "acm023475jsd" ] + }, + "acm011392jsd" : { + "type" : "ControlElement", + "id" : "acm011392jsd", + "name" : "AtomicFileOutputStream" + }, + "acm011393jsd" : { + "type" : "ControlElement", + "id" : "acm011393jsd", + "name" : "AtomicFileOutputStream" + }, + "acm011394jsd" : { + "type" : "ControlElement", + "id" : "acm011394jsd", + "name" : "AtomicFileOutputStream" + }, + "acm011395jsd" : { + "type" : "ControlElement", + "id" : "acm011395jsd", + "name" : "getPathOfTemporaryFile" + }, + "acm011396jsd" : { + "type" : "ControlElement", + "id" : "acm011396jsd", + "name" : "getPathOfSaveBackupFile" + }, + "acm011397jsd" : { + "type" : "ControlElement", + "id" : "acm011397jsd", + "name" : "getBackup" + }, + "acm011398jsd" : { + "type" : "ControlElement", + "id" : "acm011398jsd", + "name" : "write" + }, + "acm011399jsd" : { + "type" : "ControlElement", + "id" : "acm011399jsd", + "name" : "abort" + }, + "acm011400jsd" : { + "type" : "ControlElement", + "id" : "acm011400jsd", + "name" : "cleanup" + }, + "acm011401jsd" : { + "type" : "ControlElement", + "id" : "acm011401jsd", + "name" : "close" + }, + "acm011402jsd" : { + "type" : "ControlElement", + "id" : "acm011402jsd", + "name" : "flush" + }, + "acm011403jsd" : { + "type" : "ControlElement", + "id" : "acm011403jsd", + "name" : "write" + }, + "acm011404jsd" : { + "type" : "ClassUnit", + "id" : "acm011404jsd", + "name" : "AtomicFileOutputStream", + "compilationUnitId" : "acm011387jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011404jsd" ], + "content" : [ "acm011392jsd", "acm011393jsd", "acm011394jsd", "acm011395jsd", "acm011396jsd", "acm011397jsd", "acm011398jsd", "acm011399jsd", "acm011400jsd", "acm011401jsd", "acm011402jsd", "acm011403jsd" ] + }, + "acm011405jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011405jsd", + "name" : "AtomicFileWriter", + "parentId" : "acm011391jsd", + "content" : [ "acm011415jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011406jsd" : { + "type" : "CodePackage", + "id" : "acm011406jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011407jsd" ] + }, + "acm011407jsd" : { + "type" : "CodePackage", + "id" : "acm011407jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011408jsd" ] + }, + "acm011408jsd" : { + "type" : "CodePackage", + "id" : "acm011408jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011409jsd" ] + }, + "acm011409jsd" : { + "type" : "CodePackage", + "id" : "acm011409jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011405jsd" ] + }, + "acm011410jsd" : { + "type" : "ControlElement", + "id" : "acm011410jsd", + "name" : "AtomicFileWriter" + }, + "acm011411jsd" : { + "type" : "ControlElement", + "id" : "acm011411jsd", + "name" : "AtomicFileWriter" + }, + "acm011412jsd" : { + "type" : "ControlElement", + "id" : "acm011412jsd", + "name" : "write" + }, + "acm011413jsd" : { + "type" : "ControlElement", + "id" : "acm011413jsd", + "name" : "hasEncodingProblems" + }, + "acm011414jsd" : { + "type" : "ControlElement", + "id" : "acm011414jsd", + "name" : "getEncodingProblems" + }, + "acm011415jsd" : { + "type" : "ClassUnit", + "id" : "acm011415jsd", + "name" : "AtomicFileWriter", + "compilationUnitId" : "acm011405jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011404jsd" ], + "content" : [ "acm011410jsd", "acm011411jsd", "acm011412jsd", "acm011413jsd", "acm011414jsd" ] + }, + "acm011416jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011416jsd", + "name" : "BibDatabaseWriter", + "parentId" : "acm011391jsd", + "content" : [ "acm011443jsd", "acm011444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011417jsd" : { + "type" : "CodePackage", + "id" : "acm011417jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011418jsd" ] + }, + "acm011418jsd" : { + "type" : "CodePackage", + "id" : "acm011418jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011419jsd" ] + }, + "acm011419jsd" : { + "type" : "CodePackage", + "id" : "acm011419jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011420jsd" ] + }, + "acm011420jsd" : { + "type" : "CodePackage", + "id" : "acm011420jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011416jsd" ] + }, + "acm011421jsd" : { + "type" : "ControlElement", + "id" : "acm011421jsd", + "name" : "BibDatabaseWriter" + }, + "acm011422jsd" : { + "type" : "ControlElement", + "id" : "acm011422jsd", + "name" : "applySaveActions" + }, + "acm011423jsd" : { + "type" : "ControlElement", + "id" : "acm011423jsd", + "name" : "applySaveActions" + }, + "acm011424jsd" : { + "type" : "ControlElement", + "id" : "acm011424jsd", + "name" : "getSaveComparators" + }, + "acm011425jsd" : { + "type" : "ControlElement", + "id" : "acm011425jsd", + "name" : "getSortedEntries" + }, + "acm011426jsd" : { + "type" : "ControlElement", + "id" : "acm011426jsd", + "name" : "getSaveOrder" + }, + "acm011427jsd" : { + "type" : "ControlElement", + "id" : "acm011427jsd", + "name" : "getSaveActionsFieldChanges" + }, + "acm011428jsd" : { + "type" : "ControlElement", + "id" : "acm011428jsd", + "name" : "saveDatabase" + }, + "acm011429jsd" : { + "type" : "ControlElement", + "id" : "acm011429jsd", + "name" : "savePartOfDatabase" + }, + "acm011430jsd" : { + "type" : "ControlElement", + "id" : "acm011430jsd", + "name" : "writeProlog" + }, + "acm011431jsd" : { + "type" : "ControlElement", + "id" : "acm011431jsd", + "name" : "writeEntry" + }, + "acm011432jsd" : { + "type" : "ControlElement", + "id" : "acm011432jsd", + "name" : "writeEpilogue" + }, + "acm011433jsd" : { + "type" : "ControlElement", + "id" : "acm011433jsd", + "name" : "writeMetaData" + }, + "acm011434jsd" : { + "type" : "ControlElement", + "id" : "acm011434jsd", + "name" : "writeMetaDataItem" + }, + "acm011435jsd" : { + "type" : "ControlElement", + "id" : "acm011435jsd", + "name" : "writePreamble" + }, + "acm011436jsd" : { + "type" : "ControlElement", + "id" : "acm011436jsd", + "name" : "writeDatabaseID" + }, + "acm011437jsd" : { + "type" : "ControlElement", + "id" : "acm011437jsd", + "name" : "writeStrings" + }, + "acm011438jsd" : { + "type" : "ControlElement", + "id" : "acm011438jsd", + "name" : "writeString" + }, + "acm011439jsd" : { + "type" : "ControlElement", + "id" : "acm011439jsd", + "name" : "writeString" + }, + "acm011440jsd" : { + "type" : "ControlElement", + "id" : "acm011440jsd", + "name" : "writeEntryTypeDefinitions" + }, + "acm011441jsd" : { + "type" : "ControlElement", + "id" : "acm011441jsd", + "name" : "writeEntryTypeDefinition" + }, + "acm011442jsd" : { + "type" : "ControlElement", + "id" : "acm011442jsd", + "name" : "generateCitationKeys" + }, + "acm011443jsd" : { + "type" : "ClassUnit", + "id" : "acm011443jsd", + "name" : "BibDatabaseWriter", + "compilationUnitId" : "acm011416jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010580jsd", "acm010588jsd", "acm010613jsd", "acm010623jsd", "acm010642jsd", "acm010959jsd", "acm010993jsd", "acm011011jsd", "acm011169jsd", "acm011188jsd", "acm011455jsd", "acm011645jsd", "acm012035jsd", "acm017884jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018367jsd", "acm018370jsd", "acm019421jsd", "acm019447jsd" ], + "content" : [ "acm011421jsd", "acm011422jsd", "acm011423jsd", "acm011424jsd", "acm011425jsd", "acm011426jsd", "acm011427jsd", "acm011428jsd", "acm011429jsd", "acm011430jsd", "acm011431jsd", "acm011432jsd", "acm011433jsd", "acm011434jsd", "acm011435jsd", "acm011436jsd", "acm011437jsd", "acm011438jsd", "acm011439jsd", "acm011440jsd", "acm011441jsd", "acm011442jsd" ] + }, + "acm011444jsd" : { + "type" : "ClassUnit", + "id" : "acm011444jsd", + "name" : "SaveType", + "compilationUnitId" : "acm011416jsd", + "parentDatatypeId" : "acm011443jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm011445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011445jsd", + "name" : "BibWriter", + "parentId" : "acm011391jsd", + "content" : [ "acm011455jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011446jsd" : { + "type" : "CodePackage", + "id" : "acm011446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011447jsd" ] + }, + "acm011447jsd" : { + "type" : "CodePackage", + "id" : "acm011447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011448jsd" ] + }, + "acm011448jsd" : { + "type" : "CodePackage", + "id" : "acm011448jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011449jsd" ] + }, + "acm011449jsd" : { + "type" : "CodePackage", + "id" : "acm011449jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011445jsd" ] + }, + "acm011450jsd" : { + "type" : "ControlElement", + "id" : "acm011450jsd", + "name" : "BibWriter" + }, + "acm011451jsd" : { + "type" : "ControlElement", + "id" : "acm011451jsd", + "name" : "write" + }, + "acm011452jsd" : { + "type" : "ControlElement", + "id" : "acm011452jsd", + "name" : "writeLine" + }, + "acm011453jsd" : { + "type" : "ControlElement", + "id" : "acm011453jsd", + "name" : "finishLine" + }, + "acm011454jsd" : { + "type" : "ControlElement", + "id" : "acm011454jsd", + "name" : "finishBlock" + }, + "acm011455jsd" : { + "type" : "ClassUnit", + "id" : "acm011455jsd", + "name" : "BibWriter", + "compilationUnitId" : "acm011445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011450jsd", "acm011451jsd", "acm011452jsd", "acm011453jsd", "acm011454jsd" ] + }, + "acm011456jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011456jsd", + "name" : "BibtexDatabaseWriter", + "parentId" : "acm011391jsd", + "content" : [ "acm011471jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011457jsd" : { + "type" : "CodePackage", + "id" : "acm011457jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011458jsd" ] + }, + "acm011458jsd" : { + "type" : "CodePackage", + "id" : "acm011458jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011459jsd" ] + }, + "acm011459jsd" : { + "type" : "CodePackage", + "id" : "acm011459jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011460jsd" ] + }, + "acm011460jsd" : { + "type" : "CodePackage", + "id" : "acm011460jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011456jsd" ] + }, + "acm011461jsd" : { + "type" : "ControlElement", + "id" : "acm011461jsd", + "name" : "BibtexDatabaseWriter" + }, + "acm011462jsd" : { + "type" : "ControlElement", + "id" : "acm011462jsd", + "name" : "BibtexDatabaseWriter" + }, + "acm011463jsd" : { + "type" : "ControlElement", + "id" : "acm011463jsd", + "name" : "writeEpilogue" + }, + "acm011464jsd" : { + "type" : "ControlElement", + "id" : "acm011464jsd", + "name" : "writeMetaDataItem" + }, + "acm011465jsd" : { + "type" : "ControlElement", + "id" : "acm011465jsd", + "name" : "writePreamble" + }, + "acm011466jsd" : { + "type" : "ControlElement", + "id" : "acm011466jsd", + "name" : "writeString" + }, + "acm011467jsd" : { + "type" : "ControlElement", + "id" : "acm011467jsd", + "name" : "writeEntryTypeDefinition" + }, + "acm011468jsd" : { + "type" : "ControlElement", + "id" : "acm011468jsd", + "name" : "writeProlog" + }, + "acm011469jsd" : { + "type" : "ControlElement", + "id" : "acm011469jsd", + "name" : "writeDatabaseID" + }, + "acm011470jsd" : { + "type" : "ControlElement", + "id" : "acm011470jsd", + "name" : "writeEntry" + }, + "acm011471jsd" : { + "type" : "ClassUnit", + "id" : "acm011471jsd", + "name" : "BibtexDatabaseWriter", + "compilationUnitId" : "acm011456jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011443jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010474jsd", "acm010497jsd", "acm010513jsd", "acm010532jsd", "acm010993jsd", "acm011455jsd", "acm011645jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018367jsd" ], + "content" : [ "acm011461jsd", "acm011462jsd", "acm011463jsd", "acm011464jsd", "acm011465jsd", "acm011466jsd", "acm011467jsd", "acm011468jsd", "acm011469jsd", "acm011470jsd" ] + }, + "acm011472jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011472jsd", + "name" : "BlankLineBehaviour", + "parentId" : "acm011391jsd", + "content" : [ "acm011477jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011473jsd" : { + "type" : "CodePackage", + "id" : "acm011473jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011474jsd" ] + }, + "acm011474jsd" : { + "type" : "CodePackage", + "id" : "acm011474jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011475jsd" ] + }, + "acm011475jsd" : { + "type" : "CodePackage", + "id" : "acm011475jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011476jsd" ] + }, + "acm011476jsd" : { + "type" : "CodePackage", + "id" : "acm011476jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011472jsd" ] + }, + "acm011477jsd" : { + "type" : "ClassUnit", + "id" : "acm011477jsd", + "name" : "BlankLineBehaviour", + "compilationUnitId" : "acm011472jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm011478jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011478jsd", + "name" : "EmbeddedBibFilePdfExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011487jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011479jsd" : { + "type" : "CodePackage", + "id" : "acm011479jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011480jsd" ] + }, + "acm011480jsd" : { + "type" : "CodePackage", + "id" : "acm011480jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011481jsd" ] + }, + "acm011481jsd" : { + "type" : "CodePackage", + "id" : "acm011481jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011482jsd" ] + }, + "acm011482jsd" : { + "type" : "CodePackage", + "id" : "acm011482jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011478jsd" ] + }, + "acm011483jsd" : { + "type" : "ControlElement", + "id" : "acm011483jsd", + "name" : "EmbeddedBibFilePdfExporter" + }, + "acm011484jsd" : { + "type" : "ControlElement", + "id" : "acm011484jsd", + "name" : "export" + }, + "acm011485jsd" : { + "type" : "ControlElement", + "id" : "acm011485jsd", + "name" : "embedBibTex" + }, + "acm011486jsd" : { + "type" : "ControlElement", + "id" : "acm011486jsd", + "name" : "getBibString" + }, + "acm011487jsd" : { + "type" : "ClassUnit", + "id" : "acm011487jsd", + "name" : "EmbeddedBibFilePdfExporter", + "compilationUnitId" : "acm011478jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010474jsd", "acm010497jsd", "acm010513jsd", "acm011455jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm011483jsd", "acm011484jsd", "acm011485jsd", "acm011486jsd" ] + }, + "acm011488jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011488jsd", + "name" : "Exporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011502jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011489jsd" : { + "type" : "CodePackage", + "id" : "acm011489jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011490jsd" ] + }, + "acm011490jsd" : { + "type" : "CodePackage", + "id" : "acm011490jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011491jsd" ] + }, + "acm011491jsd" : { + "type" : "CodePackage", + "id" : "acm011491jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011492jsd" ] + }, + "acm011492jsd" : { + "type" : "CodePackage", + "id" : "acm011492jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011488jsd" ] + }, + "acm011493jsd" : { + "type" : "ControlElement", + "id" : "acm011493jsd", + "name" : "Exporter" + }, + "acm011494jsd" : { + "type" : "ControlElement", + "id" : "acm011494jsd", + "name" : "getId" + }, + "acm011495jsd" : { + "type" : "ControlElement", + "id" : "acm011495jsd", + "name" : "getName" + }, + "acm011496jsd" : { + "type" : "ControlElement", + "id" : "acm011496jsd", + "name" : "getFileType" + }, + "acm011497jsd" : { + "type" : "ControlElement", + "id" : "acm011497jsd", + "name" : "toString" + }, + "acm011498jsd" : { + "type" : "ControlElement", + "id" : "acm011498jsd", + "name" : "export" + }, + "acm011499jsd" : { + "type" : "ControlElement", + "id" : "acm011499jsd", + "name" : "export" + }, + "acm011500jsd" : { + "type" : "ControlElement", + "id" : "acm011500jsd", + "name" : "exportToAllFilesOfEntry" + }, + "acm011501jsd" : { + "type" : "ControlElement", + "id" : "acm011501jsd", + "name" : "exportToFileByPath" + }, + "acm011502jsd" : { + "type" : "ClassUnit", + "id" : "acm011502jsd", + "name" : "Exporter", + "compilationUnitId" : "acm011488jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017320jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm011493jsd", "acm011494jsd", "acm011495jsd", "acm011496jsd", "acm011497jsd", "acm011498jsd", "acm011499jsd", "acm011500jsd", "acm011501jsd" ] + }, + "acm011503jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011503jsd", + "name" : "ExporterFactory", + "parentId" : "acm011391jsd", + "content" : [ "acm011513jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011504jsd" : { + "type" : "CodePackage", + "id" : "acm011504jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011505jsd" ] + }, + "acm011505jsd" : { + "type" : "CodePackage", + "id" : "acm011505jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011506jsd" ] + }, + "acm011506jsd" : { + "type" : "CodePackage", + "id" : "acm011506jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011507jsd" ] + }, + "acm011507jsd" : { + "type" : "CodePackage", + "id" : "acm011507jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011503jsd" ] + }, + "acm011508jsd" : { + "type" : "ControlElement", + "id" : "acm011508jsd", + "name" : "ExporterFactory" + }, + "acm011509jsd" : { + "type" : "ControlElement", + "id" : "acm011509jsd", + "name" : "create" + }, + "acm011510jsd" : { + "type" : "ControlElement", + "id" : "acm011510jsd", + "name" : "create" + }, + "acm011511jsd" : { + "type" : "ControlElement", + "id" : "acm011511jsd", + "name" : "getExporters" + }, + "acm011512jsd" : { + "type" : "ControlElement", + "id" : "acm011512jsd", + "name" : "getExporterByName" + }, + "acm011513jsd" : { + "type" : "ClassUnit", + "id" : "acm011513jsd", + "name" : "ExporterFactory", + "compilationUnitId" : "acm011503jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm010497jsd", "acm011487jsd", "acm011502jsd", "acm011513jsd", "acm011538jsd", "acm011577jsd", "acm011614jsd", "acm011627jsd", "acm011645jsd", "acm011680jsd", "acm011689jsd", "acm011697jsd", "acm015033jsd", "acm017745jsd", "acm018032jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm011508jsd", "acm011509jsd", "acm011510jsd", "acm011511jsd", "acm011512jsd" ] + }, + "acm011514jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011514jsd", + "name" : "GroupSerializer", + "parentId" : "acm011391jsd", + "content" : [ "acm011530jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011515jsd" : { + "type" : "CodePackage", + "id" : "acm011515jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011516jsd" ] + }, + "acm011516jsd" : { + "type" : "CodePackage", + "id" : "acm011516jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011517jsd" ] + }, + "acm011517jsd" : { + "type" : "CodePackage", + "id" : "acm011517jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011518jsd" ] + }, + "acm011518jsd" : { + "type" : "CodePackage", + "id" : "acm011518jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011514jsd" ] + }, + "acm011519jsd" : { + "type" : "ControlElement", + "id" : "acm011519jsd", + "name" : "serializeAllEntriesGroup" + }, + "acm011520jsd" : { + "type" : "ControlElement", + "id" : "acm011520jsd", + "name" : "serializeExplicitGroup" + }, + "acm011521jsd" : { + "type" : "ControlElement", + "id" : "acm011521jsd", + "name" : "serializeKeywordGroup" + }, + "acm011522jsd" : { + "type" : "ControlElement", + "id" : "acm011522jsd", + "name" : "serializeSearchGroup" + }, + "acm011523jsd" : { + "type" : "ControlElement", + "id" : "acm011523jsd", + "name" : "appendGroupDetails" + }, + "acm011524jsd" : { + "type" : "ControlElement", + "id" : "acm011524jsd", + "name" : "serializeTree" + }, + "acm011525jsd" : { + "type" : "ControlElement", + "id" : "acm011525jsd", + "name" : "serializeGroup" + }, + "acm011526jsd" : { + "type" : "ControlElement", + "id" : "acm011526jsd", + "name" : "serializeTexGroup" + }, + "acm011527jsd" : { + "type" : "ControlElement", + "id" : "acm011527jsd", + "name" : "serializeAutomaticPersonsGroup" + }, + "acm011528jsd" : { + "type" : "ControlElement", + "id" : "acm011528jsd", + "name" : "appendAutomaticGroupDetails" + }, + "acm011529jsd" : { + "type" : "ControlElement", + "id" : "acm011529jsd", + "name" : "serializeAutomaticKeywordGroup" + }, + "acm011530jsd" : { + "type" : "ClassUnit", + "id" : "acm011530jsd", + "name" : "GroupSerializer", + "compilationUnitId" : "acm011514jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019107jsd", "acm019119jsd", "acm019130jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019221jsd", "acm019234jsd", "acm019256jsd", "acm019271jsd", "acm019293jsd" ], + "content" : [ "acm011519jsd", "acm011520jsd", "acm011521jsd", "acm011522jsd", "acm011523jsd", "acm011524jsd", "acm011525jsd", "acm011526jsd", "acm011527jsd", "acm011528jsd", "acm011529jsd" ] + }, + "acm011531jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011531jsd", + "name" : "MSBibExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011538jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011532jsd" : { + "type" : "CodePackage", + "id" : "acm011532jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011533jsd" ] + }, + "acm011533jsd" : { + "type" : "CodePackage", + "id" : "acm011533jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011534jsd" ] + }, + "acm011534jsd" : { + "type" : "CodePackage", + "id" : "acm011534jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011535jsd" ] + }, + "acm011535jsd" : { + "type" : "CodePackage", + "id" : "acm011535jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011531jsd" ] + }, + "acm011536jsd" : { + "type" : "ControlElement", + "id" : "acm011536jsd", + "name" : "MSBibExporter" + }, + "acm011537jsd" : { + "type" : "ControlElement", + "id" : "acm011537jsd", + "name" : "export" + }, + "acm011538jsd" : { + "type" : "ClassUnit", + "id" : "acm011538jsd", + "name" : "MSBibExporter", + "compilationUnitId" : "acm011531jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011415jsd", "acm011663jsd", "acm015769jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm011536jsd", "acm011537jsd" ] + }, + "acm011539jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011539jsd", + "name" : "MetaDataSerializer", + "parentId" : "acm011391jsd", + "content" : [ "acm011550jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011540jsd" : { + "type" : "CodePackage", + "id" : "acm011540jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011541jsd" ] + }, + "acm011541jsd" : { + "type" : "CodePackage", + "id" : "acm011541jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011542jsd" ] + }, + "acm011542jsd" : { + "type" : "CodePackage", + "id" : "acm011542jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011543jsd" ] + }, + "acm011543jsd" : { + "type" : "CodePackage", + "id" : "acm011543jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011539jsd" ] + }, + "acm011544jsd" : { + "type" : "ControlElement", + "id" : "acm011544jsd", + "name" : "MetaDataSerializer" + }, + "acm011545jsd" : { + "type" : "ControlElement", + "id" : "acm011545jsd", + "name" : "getSerializedStringMap" + }, + "acm011546jsd" : { + "type" : "ControlElement", + "id" : "acm011546jsd", + "name" : "serializeMetaData" + }, + "acm011547jsd" : { + "type" : "ControlElement", + "id" : "acm011547jsd", + "name" : "serializeCiteKeyPattern" + }, + "acm011548jsd" : { + "type" : "ControlElement", + "id" : "acm011548jsd", + "name" : "serializeGroups" + }, + "acm011549jsd" : { + "type" : "ControlElement", + "id" : "acm011549jsd", + "name" : "serializeCustomEntryTypes" + }, + "acm011550jsd" : { + "type" : "ClassUnit", + "id" : "acm011550jsd", + "name" : "MetaDataSerializer", + "compilationUnitId" : "acm011539jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm011011jsd", "acm011530jsd", "acm018289jsd", "acm019005jsd", "acm019221jsd", "acm019348jsd", "acm019421jsd" ], + "content" : [ "acm011544jsd", "acm011545jsd", "acm011546jsd", "acm011547jsd", "acm011548jsd", "acm011549jsd" ] + }, + "acm011551jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011551jsd", + "name" : "ModsExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011577jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011552jsd" : { + "type" : "CodePackage", + "id" : "acm011552jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011553jsd" ] + }, + "acm011553jsd" : { + "type" : "CodePackage", + "id" : "acm011553jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011554jsd" ] + }, + "acm011554jsd" : { + "type" : "CodePackage", + "id" : "acm011554jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011555jsd" ] + }, + "acm011555jsd" : { + "type" : "CodePackage", + "id" : "acm011555jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011551jsd" ] + }, + "acm011556jsd" : { + "type" : "ControlElement", + "id" : "acm011556jsd", + "name" : "ModsExporter" + }, + "acm011557jsd" : { + "type" : "ControlElement", + "id" : "acm011557jsd", + "name" : "export" + }, + "acm011558jsd" : { + "type" : "ControlElement", + "id" : "acm011558jsd", + "name" : "createMarshallerAndWriteToFile" + }, + "acm011559jsd" : { + "type" : "ControlElement", + "id" : "acm011559jsd", + "name" : "addRelatedAndOriginInfoToModsGroup" + }, + "acm011560jsd" : { + "type" : "ControlElement", + "id" : "acm011560jsd", + "name" : "addGenre" + }, + "acm011561jsd" : { + "type" : "ControlElement", + "id" : "acm011561jsd", + "name" : "addAbstract" + }, + "acm011562jsd" : { + "type" : "ControlElement", + "id" : "acm011562jsd", + "name" : "addTitle" + }, + "acm011563jsd" : { + "type" : "ControlElement", + "id" : "acm011563jsd", + "name" : "addAffiliation" + }, + "acm011564jsd" : { + "type" : "ControlElement", + "id" : "acm011564jsd", + "name" : "addLocation" + }, + "acm011565jsd" : { + "type" : "ControlElement", + "id" : "acm011565jsd", + "name" : "addNote" + }, + "acm011566jsd" : { + "type" : "ControlElement", + "id" : "acm011566jsd", + "name" : "addUrl" + }, + "acm011567jsd" : { + "type" : "ControlElement", + "id" : "acm011567jsd", + "name" : "addJournal" + }, + "acm011568jsd" : { + "type" : "ControlElement", + "id" : "acm011568jsd", + "name" : "addLanguage" + }, + "acm011569jsd" : { + "type" : "ControlElement", + "id" : "acm011569jsd", + "name" : "addPages" + }, + "acm011570jsd" : { + "type" : "ControlElement", + "id" : "acm011570jsd", + "name" : "addKeyWords" + }, + "acm011571jsd" : { + "type" : "ControlElement", + "id" : "acm011571jsd", + "name" : "handleAuthors" + }, + "acm011572jsd" : { + "type" : "ControlElement", + "id" : "acm011572jsd", + "name" : "addIdentifier" + }, + "acm011573jsd" : { + "type" : "ControlElement", + "id" : "acm011573jsd", + "name" : "addStartAndEndPage" + }, + "acm011574jsd" : { + "type" : "ControlElement", + "id" : "acm011574jsd", + "name" : "addDetail" + }, + "acm011575jsd" : { + "type" : "ControlElement", + "id" : "acm011575jsd", + "name" : "addOriginInformation" + }, + "acm011576jsd" : { + "type" : "ControlElement", + "id" : "acm011576jsd", + "name" : "addDate" + }, + "acm011577jsd" : { + "type" : "ClassUnit", + "id" : "acm011577jsd", + "name" : "ModsExporter", + "compilationUnitId" : "acm011551jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011663jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm011556jsd", "acm011557jsd", "acm011558jsd", "acm011559jsd", "acm011560jsd", "acm011561jsd", "acm011562jsd", "acm011563jsd", "acm011564jsd", "acm011565jsd", "acm011566jsd", "acm011567jsd", "acm011568jsd", "acm011569jsd", "acm011570jsd", "acm011571jsd", "acm011572jsd", "acm011573jsd", "acm011574jsd", "acm011575jsd", "acm011576jsd" ] + }, + "acm011578jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011578jsd", + "name" : "OOCalcDatabase", + "parentId" : "acm011391jsd", + "content" : [ "acm011591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011579jsd" : { + "type" : "CodePackage", + "id" : "acm011579jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011580jsd" ] + }, + "acm011580jsd" : { + "type" : "CodePackage", + "id" : "acm011580jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011581jsd" ] + }, + "acm011581jsd" : { + "type" : "CodePackage", + "id" : "acm011581jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011582jsd" ] + }, + "acm011582jsd" : { + "type" : "CodePackage", + "id" : "acm011582jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011578jsd" ] + }, + "acm011583jsd" : { + "type" : "ControlElement", + "id" : "acm011583jsd", + "name" : "OOCalcDatabase" + }, + "acm011584jsd" : { + "type" : "ControlElement", + "id" : "acm011584jsd", + "name" : "getField" + }, + "acm011585jsd" : { + "type" : "ControlElement", + "id" : "acm011585jsd", + "name" : "getDOMrepresentation" + }, + "acm011586jsd" : { + "type" : "ControlElement", + "id" : "acm011586jsd", + "name" : "addEntryRow" + }, + "acm011587jsd" : { + "type" : "ControlElement", + "id" : "acm011587jsd", + "name" : "createTableElement" + }, + "acm011588jsd" : { + "type" : "ControlElement", + "id" : "acm011588jsd", + "name" : "createRootElement" + }, + "acm011589jsd" : { + "type" : "ControlElement", + "id" : "acm011589jsd", + "name" : "addTableCell" + }, + "acm011590jsd" : { + "type" : "ControlElement", + "id" : "acm011590jsd", + "name" : "addTableHeader" + }, + "acm011591jsd" : { + "type" : "ClassUnit", + "id" : "acm011591jsd", + "name" : "OOCalcDatabase", + "compilationUnitId" : "acm011578jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010613jsd", "acm010623jsd", "acm011591jsd", "acm015418jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm011583jsd", "acm011584jsd", "acm011585jsd", "acm011586jsd", "acm011587jsd", "acm011588jsd", "acm011589jsd", "acm011590jsd" ] + }, + "acm011592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011592jsd", + "name" : "OpenDocumentRepresentation", + "parentId" : "acm011391jsd", + "content" : [ "acm011601jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011593jsd" : { + "type" : "CodePackage", + "id" : "acm011593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011594jsd" ] + }, + "acm011594jsd" : { + "type" : "CodePackage", + "id" : "acm011594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011595jsd" ] + }, + "acm011595jsd" : { + "type" : "CodePackage", + "id" : "acm011595jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011596jsd" ] + }, + "acm011596jsd" : { + "type" : "CodePackage", + "id" : "acm011596jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011592jsd" ] + }, + "acm011597jsd" : { + "type" : "ControlElement", + "id" : "acm011597jsd", + "name" : "OpenDocumentRepresentation" + }, + "acm011598jsd" : { + "type" : "ControlElement", + "id" : "acm011598jsd", + "name" : "getDOMrepresentation" + }, + "acm011599jsd" : { + "type" : "ControlElement", + "id" : "acm011599jsd", + "name" : "getField" + }, + "acm011600jsd" : { + "type" : "ControlElement", + "id" : "acm011600jsd", + "name" : "addTableCell" + }, + "acm011601jsd" : { + "type" : "ClassUnit", + "id" : "acm011601jsd", + "name" : "OpenDocumentRepresentation", + "compilationUnitId" : "acm011592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010613jsd", "acm010623jsd", "acm011601jsd", "acm015418jsd", "acm015575jsd", "acm015607jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm011597jsd", "acm011598jsd", "acm011599jsd", "acm011600jsd" ] + }, + "acm011602jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011602jsd", + "name" : "OpenDocumentSpreadsheetCreator", + "parentId" : "acm011391jsd", + "content" : [ "acm011614jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011603jsd" : { + "type" : "CodePackage", + "id" : "acm011603jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011604jsd" ] + }, + "acm011604jsd" : { + "type" : "CodePackage", + "id" : "acm011604jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011605jsd" ] + }, + "acm011605jsd" : { + "type" : "CodePackage", + "id" : "acm011605jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011606jsd" ] + }, + "acm011606jsd" : { + "type" : "CodePackage", + "id" : "acm011606jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011602jsd" ] + }, + "acm011607jsd" : { + "type" : "ControlElement", + "id" : "acm011607jsd", + "name" : "OpenDocumentSpreadsheetCreator" + }, + "acm011608jsd" : { + "type" : "ControlElement", + "id" : "acm011608jsd", + "name" : "storeOpenDocumentSpreadsheetFile" + }, + "acm011609jsd" : { + "type" : "ControlElement", + "id" : "acm011609jsd", + "name" : "exportOpenDocumentSpreadsheet" + }, + "acm011610jsd" : { + "type" : "ControlElement", + "id" : "acm011610jsd", + "name" : "export" + }, + "acm011611jsd" : { + "type" : "ControlElement", + "id" : "acm011611jsd", + "name" : "exportOpenDocumentSpreadsheetXML" + }, + "acm011612jsd" : { + "type" : "ControlElement", + "id" : "acm011612jsd", + "name" : "addResourceFile" + }, + "acm011613jsd" : { + "type" : "ControlElement", + "id" : "acm011613jsd", + "name" : "addFromResource" + }, + "acm011614jsd" : { + "type" : "ClassUnit", + "id" : "acm011614jsd", + "name" : "OpenDocumentSpreadsheetCreator", + "compilationUnitId" : "acm011602jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011601jsd", "acm011614jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm011607jsd", "acm011608jsd", "acm011609jsd", "acm011610jsd", "acm011611jsd", "acm011612jsd", "acm011613jsd" ] + }, + "acm011615jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011615jsd", + "name" : "OpenOfficeDocumentCreator", + "parentId" : "acm011391jsd", + "content" : [ "acm011627jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011616jsd" : { + "type" : "CodePackage", + "id" : "acm011616jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011617jsd" ] + }, + "acm011617jsd" : { + "type" : "CodePackage", + "id" : "acm011617jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011618jsd" ] + }, + "acm011618jsd" : { + "type" : "CodePackage", + "id" : "acm011618jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011619jsd" ] + }, + "acm011619jsd" : { + "type" : "CodePackage", + "id" : "acm011619jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011615jsd" ] + }, + "acm011620jsd" : { + "type" : "ControlElement", + "id" : "acm011620jsd", + "name" : "OpenOfficeDocumentCreator" + }, + "acm011621jsd" : { + "type" : "ControlElement", + "id" : "acm011621jsd", + "name" : "storeOpenOfficeFile" + }, + "acm011622jsd" : { + "type" : "ControlElement", + "id" : "acm011622jsd", + "name" : "exportOpenOfficeCalc" + }, + "acm011623jsd" : { + "type" : "ControlElement", + "id" : "acm011623jsd", + "name" : "export" + }, + "acm011624jsd" : { + "type" : "ControlElement", + "id" : "acm011624jsd", + "name" : "exportOpenOfficeCalcXML" + }, + "acm011625jsd" : { + "type" : "ControlElement", + "id" : "acm011625jsd", + "name" : "addResourceFile" + }, + "acm011626jsd" : { + "type" : "ControlElement", + "id" : "acm011626jsd", + "name" : "addFromResource" + }, + "acm011627jsd" : { + "type" : "ClassUnit", + "id" : "acm011627jsd", + "name" : "OpenOfficeDocumentCreator", + "compilationUnitId" : "acm011615jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011591jsd", "acm011627jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm011620jsd", "acm011621jsd", "acm011622jsd", "acm011623jsd", "acm011624jsd", "acm011625jsd", "acm011626jsd" ] + }, + "acm011628jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011628jsd", + "name" : "SaveConfiguration", + "parentId" : "acm011391jsd", + "content" : [ "acm011645jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011629jsd" : { + "type" : "CodePackage", + "id" : "acm011629jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011630jsd" ] + }, + "acm011630jsd" : { + "type" : "CodePackage", + "id" : "acm011630jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011631jsd" ] + }, + "acm011631jsd" : { + "type" : "CodePackage", + "id" : "acm011631jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011632jsd" ] + }, + "acm011632jsd" : { + "type" : "CodePackage", + "id" : "acm011632jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011628jsd" ] + }, + "acm011633jsd" : { + "type" : "ControlElement", + "id" : "acm011633jsd", + "name" : "SaveConfiguration" + }, + "acm011634jsd" : { + "type" : "ControlElement", + "id" : "acm011634jsd", + "name" : "SaveConfiguration" + }, + "acm011635jsd" : { + "type" : "ControlElement", + "id" : "acm011635jsd", + "name" : "useMetadataSaveOrder" + }, + "acm011636jsd" : { + "type" : "ControlElement", + "id" : "acm011636jsd", + "name" : "withMetadataSaveOrder" + }, + "acm011637jsd" : { + "type" : "ControlElement", + "id" : "acm011637jsd", + "name" : "getSaveOrder" + }, + "acm011638jsd" : { + "type" : "ControlElement", + "id" : "acm011638jsd", + "name" : "withSaveOrder" + }, + "acm011639jsd" : { + "type" : "ControlElement", + "id" : "acm011639jsd", + "name" : "shouldMakeBackup" + }, + "acm011640jsd" : { + "type" : "ControlElement", + "id" : "acm011640jsd", + "name" : "withMakeBackup" + }, + "acm011641jsd" : { + "type" : "ControlElement", + "id" : "acm011641jsd", + "name" : "getSaveType" + }, + "acm011642jsd" : { + "type" : "ControlElement", + "id" : "acm011642jsd", + "name" : "withSaveType" + }, + "acm011643jsd" : { + "type" : "ControlElement", + "id" : "acm011643jsd", + "name" : "shouldReformatFile" + }, + "acm011644jsd" : { + "type" : "ControlElement", + "id" : "acm011644jsd", + "name" : "withReformatOnSave" + }, + "acm011645jsd" : { + "type" : "ClassUnit", + "id" : "acm011645jsd", + "name" : "SaveConfiguration", + "compilationUnitId" : "acm011628jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011444jsd", "acm011645jsd", "acm019447jsd" ], + "content" : [ "acm011633jsd", "acm011634jsd", "acm011635jsd", "acm011636jsd", "acm011637jsd", "acm011638jsd", "acm011639jsd", "acm011640jsd", "acm011641jsd", "acm011642jsd", "acm011643jsd", "acm011644jsd" ] + }, + "acm011646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011646jsd", + "name" : "SaveException", + "parentId" : "acm011391jsd", + "content" : [ "acm011663jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011647jsd" : { + "type" : "CodePackage", + "id" : "acm011647jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011648jsd" ] + }, + "acm011648jsd" : { + "type" : "CodePackage", + "id" : "acm011648jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011649jsd" ] + }, + "acm011649jsd" : { + "type" : "CodePackage", + "id" : "acm011649jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011650jsd" ] + }, + "acm011650jsd" : { + "type" : "CodePackage", + "id" : "acm011650jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011646jsd" ] + }, + "acm011651jsd" : { + "type" : "ControlElement", + "id" : "acm011651jsd", + "name" : "SaveException" + }, + "acm011652jsd" : { + "type" : "ControlElement", + "id" : "acm011652jsd", + "name" : "SaveException" + }, + "acm011653jsd" : { + "type" : "ControlElement", + "id" : "acm011653jsd", + "name" : "SaveException" + }, + "acm011654jsd" : { + "type" : "ControlElement", + "id" : "acm011654jsd", + "name" : "SaveException" + }, + "acm011655jsd" : { + "type" : "ControlElement", + "id" : "acm011655jsd", + "name" : "SaveException" + }, + "acm011656jsd" : { + "type" : "ControlElement", + "id" : "acm011656jsd", + "name" : "SaveException" + }, + "acm011657jsd" : { + "type" : "ControlElement", + "id" : "acm011657jsd", + "name" : "SaveException" + }, + "acm011658jsd" : { + "type" : "ControlElement", + "id" : "acm011658jsd", + "name" : "SaveException" + }, + "acm011659jsd" : { + "type" : "ControlElement", + "id" : "acm011659jsd", + "name" : "getStatus" + }, + "acm011660jsd" : { + "type" : "ControlElement", + "id" : "acm011660jsd", + "name" : "getEntry" + }, + "acm011661jsd" : { + "type" : "ControlElement", + "id" : "acm011661jsd", + "name" : "specificEntry" + }, + "acm011662jsd" : { + "type" : "ControlElement", + "id" : "acm011662jsd", + "name" : "getLocalizedMessage" + }, + "acm011663jsd" : { + "type" : "ClassUnit", + "id" : "acm011663jsd", + "name" : "SaveException", + "compilationUnitId" : "acm011646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011663jsd", "acm018267jsd" ], + "content" : [ "acm011651jsd", "acm011652jsd", "acm011653jsd", "acm011654jsd", "acm011655jsd", "acm011656jsd", "acm011657jsd", "acm011658jsd", "acm011659jsd", "acm011660jsd", "acm011661jsd", "acm011662jsd" ] + }, + "acm011664jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011664jsd", + "name" : "TemplateExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011680jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011665jsd" : { + "type" : "CodePackage", + "id" : "acm011665jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011666jsd" ] + }, + "acm011666jsd" : { + "type" : "CodePackage", + "id" : "acm011666jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011667jsd" ] + }, + "acm011667jsd" : { + "type" : "CodePackage", + "id" : "acm011667jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011668jsd" ] + }, + "acm011668jsd" : { + "type" : "CodePackage", + "id" : "acm011668jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011664jsd" ] + }, + "acm011669jsd" : { + "type" : "ControlElement", + "id" : "acm011669jsd", + "name" : "TemplateExporter" + }, + "acm011670jsd" : { + "type" : "ControlElement", + "id" : "acm011670jsd", + "name" : "TemplateExporter" + }, + "acm011671jsd" : { + "type" : "ControlElement", + "id" : "acm011671jsd", + "name" : "TemplateExporter" + }, + "acm011672jsd" : { + "type" : "ControlElement", + "id" : "acm011672jsd", + "name" : "TemplateExporter" + }, + "acm011673jsd" : { + "type" : "ControlElement", + "id" : "acm011673jsd", + "name" : "setCustomExport" + }, + "acm011674jsd" : { + "type" : "ControlElement", + "id" : "acm011674jsd", + "name" : "getReader" + }, + "acm011675jsd" : { + "type" : "ControlElement", + "id" : "acm011675jsd", + "name" : "export" + }, + "acm011676jsd" : { + "type" : "ControlElement", + "id" : "acm011676jsd", + "name" : "export" + }, + "acm011677jsd" : { + "type" : "ControlElement", + "id" : "acm011677jsd", + "name" : "readFormatterFile" + }, + "acm011678jsd" : { + "type" : "ControlElement", + "id" : "acm011678jsd", + "name" : "getLayoutFileName" + }, + "acm011679jsd" : { + "type" : "ControlElement", + "id" : "acm011679jsd", + "name" : "getLayoutFileNameWithExtension" + }, + "acm011680jsd" : { + "type" : "ClassUnit", + "id" : "acm011680jsd", + "name" : "TemplateExporter", + "compilationUnitId" : "acm011664jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011415jsd", "acm011477jsd", "acm011645jsd", "acm011680jsd", "acm014982jsd", "acm015033jsd", "acm015052jsd", "acm017320jsd", "acm018022jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm011669jsd", "acm011670jsd", "acm011671jsd", "acm011672jsd", "acm011673jsd", "acm011674jsd", "acm011675jsd", "acm011676jsd", "acm011677jsd", "acm011678jsd", "acm011679jsd" ] + }, + "acm011681jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011681jsd", + "name" : "XmpExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011689jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011682jsd" : { + "type" : "CodePackage", + "id" : "acm011682jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011683jsd" ] + }, + "acm011683jsd" : { + "type" : "CodePackage", + "id" : "acm011683jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011684jsd" ] + }, + "acm011684jsd" : { + "type" : "CodePackage", + "id" : "acm011684jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011685jsd" ] + }, + "acm011685jsd" : { + "type" : "CodePackage", + "id" : "acm011685jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011681jsd" ] + }, + "acm011686jsd" : { + "type" : "ControlElement", + "id" : "acm011686jsd", + "name" : "XmpExporter" + }, + "acm011687jsd" : { + "type" : "ControlElement", + "id" : "acm011687jsd", + "name" : "export" + }, + "acm011688jsd" : { + "type" : "ControlElement", + "id" : "acm011688jsd", + "name" : "writeBibToXmp" + }, + "acm011689jsd" : { + "type" : "ClassUnit", + "id" : "acm011689jsd", + "name" : "XmpExporter", + "compilationUnitId" : "acm011681jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017745jsd", "acm017781jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm011686jsd", "acm011687jsd", "acm011688jsd" ] + }, + "acm011690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011690jsd", + "name" : "XmpPdfExporter", + "parentId" : "acm011391jsd", + "content" : [ "acm011697jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011691jsd" : { + "type" : "CodePackage", + "id" : "acm011691jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011692jsd" ] + }, + "acm011692jsd" : { + "type" : "CodePackage", + "id" : "acm011692jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011693jsd" ] + }, + "acm011693jsd" : { + "type" : "CodePackage", + "id" : "acm011693jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011694jsd" ] + }, + "acm011694jsd" : { + "type" : "CodePackage", + "id" : "acm011694jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm011690jsd" ] + }, + "acm011695jsd" : { + "type" : "ControlElement", + "id" : "acm011695jsd", + "name" : "XmpPdfExporter" + }, + "acm011696jsd" : { + "type" : "ControlElement", + "id" : "acm011696jsd", + "name" : "export" + }, + "acm011697jsd" : { + "type" : "ClassUnit", + "id" : "acm011697jsd", + "name" : "XmpPdfExporter", + "compilationUnitId" : "acm011690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011502jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017745jsd", "acm017781jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm011695jsd", "acm011696jsd" ] + }, + "acm011698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011698jsd", + "name" : "ExternalFilesContentImporter", + "parentId" : "acm011702jsd", + "content" : [ "acm011706jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011699jsd" : { + "type" : "CodePackage", + "id" : "acm011699jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011700jsd" ] + }, + "acm011700jsd" : { + "type" : "CodePackage", + "id" : "acm011700jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011701jsd" ] + }, + "acm011701jsd" : { + "type" : "CodePackage", + "id" : "acm011701jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011702jsd" ] + }, + "acm011702jsd" : { + "type" : "CodePackage", + "id" : "acm011702jsd", + "name" : "externalfiles", + "parentId" : "acm001340jsd", + "content" : [ "acm011698jsd", "acm011707jsd" ] + }, + "acm011703jsd" : { + "type" : "ControlElement", + "id" : "acm011703jsd", + "name" : "ExternalFilesContentImporter" + }, + "acm011704jsd" : { + "type" : "ControlElement", + "id" : "acm011704jsd", + "name" : "importPDFContent" + }, + "acm011705jsd" : { + "type" : "ControlElement", + "id" : "acm011705jsd", + "name" : "importFromBibFile" + }, + "acm011706jsd" : { + "type" : "ClassUnit", + "id" : "acm011706jsd", + "name" : "ExternalFilesContentImporter", + "compilationUnitId" : "acm011698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014214jsd", "acm020693jsd" ], + "content" : [ "acm011703jsd", "acm011704jsd", "acm011705jsd" ] + }, + "acm011707jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011707jsd", + "name" : "LinkedFileHandler", + "parentId" : "acm011702jsd", + "content" : [ "acm011720jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011708jsd" : { + "type" : "CodePackage", + "id" : "acm011708jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011709jsd" ] + }, + "acm011709jsd" : { + "type" : "CodePackage", + "id" : "acm011709jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011710jsd" ] + }, + "acm011710jsd" : { + "type" : "CodePackage", + "id" : "acm011710jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011711jsd" ] + }, + "acm011711jsd" : { + "type" : "CodePackage", + "id" : "acm011711jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm011707jsd" ] + }, + "acm011712jsd" : { + "type" : "ControlElement", + "id" : "acm011712jsd", + "name" : "LinkedFileHandler" + }, + "acm011713jsd" : { + "type" : "ControlElement", + "id" : "acm011713jsd", + "name" : "moveToDefaultDirectory" + }, + "acm011714jsd" : { + "type" : "ControlElement", + "id" : "acm011714jsd", + "name" : "renameToSuggestedName" + }, + "acm011715jsd" : { + "type" : "ControlElement", + "id" : "acm011715jsd", + "name" : "renameToName" + }, + "acm011716jsd" : { + "type" : "ControlElement", + "id" : "acm011716jsd", + "name" : "relativize" + }, + "acm011717jsd" : { + "type" : "ControlElement", + "id" : "acm011717jsd", + "name" : "getSuggestedFileName" + }, + "acm011718jsd" : { + "type" : "ControlElement", + "id" : "acm011718jsd", + "name" : "getSuggestedFileName" + }, + "acm011719jsd" : { + "type" : "ControlElement", + "id" : "acm011719jsd", + "name" : "findExistingFile" + }, + "acm011720jsd" : { + "type" : "ClassUnit", + "id" : "acm011720jsd", + "name" : "LinkedFileHandler", + "compilationUnitId" : "acm011707jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011720jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm011712jsd", "acm011713jsd", "acm011714jsd", "acm011715jsd", "acm011716jsd", "acm011717jsd", "acm011718jsd", "acm011719jsd" ] + }, + "acm011721jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011721jsd", + "name" : "Formatters", + "parentId" : "acm011725jsd", + "content" : [ "acm011732jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011722jsd" : { + "type" : "CodePackage", + "id" : "acm011722jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011723jsd" ] + }, + "acm011723jsd" : { + "type" : "CodePackage", + "id" : "acm011723jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011724jsd" ] + }, + "acm011724jsd" : { + "type" : "CodePackage", + "id" : "acm011724jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011725jsd" ] + }, + "acm011725jsd" : { + "type" : "CodePackage", + "id" : "acm011725jsd", + "name" : "formatter", + "parentId" : "acm001340jsd", + "content" : [ "acm011721jsd", "acm011733jsd", "acm023487jsd", "acm023505jsd", "acm011749jsd", "acm012066jsd", "acm012195jsd" ] + }, + "acm011726jsd" : { + "type" : "ControlElement", + "id" : "acm011726jsd", + "name" : "Formatters" + }, + "acm011727jsd" : { + "type" : "ControlElement", + "id" : "acm011727jsd", + "name" : "getConverters" + }, + "acm011728jsd" : { + "type" : "ControlElement", + "id" : "acm011728jsd", + "name" : "getCaseChangers" + }, + "acm011729jsd" : { + "type" : "ControlElement", + "id" : "acm011729jsd", + "name" : "getOthers" + }, + "acm011730jsd" : { + "type" : "ControlElement", + "id" : "acm011730jsd", + "name" : "getAll" + }, + "acm011731jsd" : { + "type" : "ControlElement", + "id" : "acm011731jsd", + "name" : "getFormatterForModifier" + }, + "acm011732jsd" : { + "type" : "ClassUnit", + "id" : "acm011732jsd", + "name" : "Formatters", + "compilationUnitId" : "acm011721jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011208jsd", "acm011767jsd", "acm011779jsd", "acm011791jsd", "acm011803jsd", "acm011815jsd", "acm011828jsd", "acm011840jsd", "acm011852jsd", "acm011864jsd", "acm011888jsd", "acm011900jsd", "acm011912jsd", "acm011924jsd", "acm011938jsd", "acm011951jsd", "acm012023jsd", "acm012047jsd", "acm012060jsd", "acm012072jsd", "acm012084jsd", "acm012110jsd", "acm012134jsd", "acm012157jsd", "acm012169jsd", "acm012202jsd", "acm012215jsd", "acm015489jsd" ], + "content" : [ "acm011726jsd", "acm011727jsd", "acm011728jsd", "acm011729jsd", "acm011730jsd", "acm011731jsd" ] + }, + "acm011733jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011733jsd", + "name" : "IdentityFormatter", + "parentId" : "acm011725jsd", + "content" : [ "acm011743jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011734jsd" : { + "type" : "CodePackage", + "id" : "acm011734jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011735jsd" ] + }, + "acm011735jsd" : { + "type" : "CodePackage", + "id" : "acm011735jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011736jsd" ] + }, + "acm011736jsd" : { + "type" : "CodePackage", + "id" : "acm011736jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011737jsd" ] + }, + "acm011737jsd" : { + "type" : "CodePackage", + "id" : "acm011737jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011733jsd" ] + }, + "acm011738jsd" : { + "type" : "ControlElement", + "id" : "acm011738jsd", + "name" : "getName" + }, + "acm011739jsd" : { + "type" : "ControlElement", + "id" : "acm011739jsd", + "name" : "getKey" + }, + "acm011740jsd" : { + "type" : "ControlElement", + "id" : "acm011740jsd", + "name" : "format" + }, + "acm011741jsd" : { + "type" : "ControlElement", + "id" : "acm011741jsd", + "name" : "getDescription" + }, + "acm011742jsd" : { + "type" : "ControlElement", + "id" : "acm011742jsd", + "name" : "getExampleInput" + }, + "acm011743jsd" : { + "type" : "ClassUnit", + "id" : "acm011743jsd", + "name" : "IdentityFormatter", + "compilationUnitId" : "acm011733jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011738jsd", "acm011739jsd", "acm011740jsd", "acm011741jsd", "acm011742jsd" ] + }, + "acm011744jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011744jsd", + "name" : "AddBracesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011755jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011745jsd" : { + "type" : "CodePackage", + "id" : "acm011745jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011746jsd" ] + }, + "acm011746jsd" : { + "type" : "CodePackage", + "id" : "acm011746jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011747jsd" ] + }, + "acm011747jsd" : { + "type" : "CodePackage", + "id" : "acm011747jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011748jsd" ] + }, + "acm011748jsd" : { + "type" : "CodePackage", + "id" : "acm011748jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011749jsd" ] + }, + "acm011749jsd" : { + "type" : "CodePackage", + "id" : "acm011749jsd", + "name" : "bibtexfields", + "parentId" : "acm011725jsd", + "content" : [ "acm011744jsd", "acm011756jsd", "acm011768jsd", "acm011780jsd", "acm011792jsd", "acm011804jsd", "acm011816jsd", "acm011829jsd", "acm011841jsd", "acm011853jsd", "acm011865jsd", "acm011877jsd", "acm011889jsd", "acm011901jsd", "acm011913jsd", "acm011925jsd", "acm011939jsd", "acm011952jsd", "acm011964jsd", "acm011976jsd", "acm011988jsd", "acm012000jsd", "acm012012jsd", "acm012024jsd", "acm012036jsd", "acm012048jsd", "acm023513jsd", "acm023533jsd", "acm023548jsd", "acm023559jsd", "acm023572jsd", "acm023582jsd", "acm023593jsd", "acm023610jsd", "acm023620jsd", "acm023633jsd", "acm023665jsd", "acm023680jsd", "acm023690jsd", "acm023725jsd", "acm023735jsd", "acm023750jsd", "acm023769jsd", "acm023789jsd", "acm023800jsd", "acm023811jsd", "acm023824jsd", "acm023836jsd", "acm023847jsd", "acm023859jsd", "acm023869jsd", "acm023883jsd", "acm023895jsd", "acm023905jsd" ] + }, + "acm011750jsd" : { + "type" : "ControlElement", + "id" : "acm011750jsd", + "name" : "getName" + }, + "acm011751jsd" : { + "type" : "ControlElement", + "id" : "acm011751jsd", + "name" : "getKey" + }, + "acm011752jsd" : { + "type" : "ControlElement", + "id" : "acm011752jsd", + "name" : "format" + }, + "acm011753jsd" : { + "type" : "ControlElement", + "id" : "acm011753jsd", + "name" : "getDescription" + }, + "acm011754jsd" : { + "type" : "ControlElement", + "id" : "acm011754jsd", + "name" : "getExampleInput" + }, + "acm011755jsd" : { + "type" : "ClassUnit", + "id" : "acm011755jsd", + "name" : "AddBracesFormatter", + "compilationUnitId" : "acm011744jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011750jsd", "acm011751jsd", "acm011752jsd", "acm011753jsd", "acm011754jsd" ] + }, + "acm011756jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011756jsd", + "name" : "CleanupUrlFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011767jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011757jsd" : { + "type" : "CodePackage", + "id" : "acm011757jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011758jsd" ] + }, + "acm011758jsd" : { + "type" : "CodePackage", + "id" : "acm011758jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011759jsd" ] + }, + "acm011759jsd" : { + "type" : "CodePackage", + "id" : "acm011759jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011760jsd" ] + }, + "acm011760jsd" : { + "type" : "CodePackage", + "id" : "acm011760jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011761jsd" ] + }, + "acm011761jsd" : { + "type" : "CodePackage", + "id" : "acm011761jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011756jsd" ] + }, + "acm011762jsd" : { + "type" : "ControlElement", + "id" : "acm011762jsd", + "name" : "getName" + }, + "acm011763jsd" : { + "type" : "ControlElement", + "id" : "acm011763jsd", + "name" : "getKey" + }, + "acm011764jsd" : { + "type" : "ControlElement", + "id" : "acm011764jsd", + "name" : "format" + }, + "acm011765jsd" : { + "type" : "ControlElement", + "id" : "acm011765jsd", + "name" : "getDescription" + }, + "acm011766jsd" : { + "type" : "ControlElement", + "id" : "acm011766jsd", + "name" : "getExampleInput" + }, + "acm011767jsd" : { + "type" : "ClassUnit", + "id" : "acm011767jsd", + "name" : "CleanupUrlFormatter", + "compilationUnitId" : "acm011756jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011762jsd", "acm011763jsd", "acm011764jsd", "acm011765jsd", "acm011766jsd" ] + }, + "acm011768jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011768jsd", + "name" : "ClearFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011779jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011769jsd" : { + "type" : "CodePackage", + "id" : "acm011769jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011770jsd" ] + }, + "acm011770jsd" : { + "type" : "CodePackage", + "id" : "acm011770jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011771jsd" ] + }, + "acm011771jsd" : { + "type" : "CodePackage", + "id" : "acm011771jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011772jsd" ] + }, + "acm011772jsd" : { + "type" : "CodePackage", + "id" : "acm011772jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011773jsd" ] + }, + "acm011773jsd" : { + "type" : "CodePackage", + "id" : "acm011773jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011768jsd" ] + }, + "acm011774jsd" : { + "type" : "ControlElement", + "id" : "acm011774jsd", + "name" : "getName" + }, + "acm011775jsd" : { + "type" : "ControlElement", + "id" : "acm011775jsd", + "name" : "getKey" + }, + "acm011776jsd" : { + "type" : "ControlElement", + "id" : "acm011776jsd", + "name" : "format" + }, + "acm011777jsd" : { + "type" : "ControlElement", + "id" : "acm011777jsd", + "name" : "getDescription" + }, + "acm011778jsd" : { + "type" : "ControlElement", + "id" : "acm011778jsd", + "name" : "getExampleInput" + }, + "acm011779jsd" : { + "type" : "ClassUnit", + "id" : "acm011779jsd", + "name" : "ClearFormatter", + "compilationUnitId" : "acm011768jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011774jsd", "acm011775jsd", "acm011776jsd", "acm011777jsd", "acm011778jsd" ] + }, + "acm011780jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011780jsd", + "name" : "EscapeAmpersandsFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011791jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011781jsd" : { + "type" : "CodePackage", + "id" : "acm011781jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011782jsd" ] + }, + "acm011782jsd" : { + "type" : "CodePackage", + "id" : "acm011782jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011783jsd" ] + }, + "acm011783jsd" : { + "type" : "CodePackage", + "id" : "acm011783jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011784jsd" ] + }, + "acm011784jsd" : { + "type" : "CodePackage", + "id" : "acm011784jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011785jsd" ] + }, + "acm011785jsd" : { + "type" : "CodePackage", + "id" : "acm011785jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011780jsd" ] + }, + "acm011786jsd" : { + "type" : "ControlElement", + "id" : "acm011786jsd", + "name" : "getName" + }, + "acm011787jsd" : { + "type" : "ControlElement", + "id" : "acm011787jsd", + "name" : "getKey" + }, + "acm011788jsd" : { + "type" : "ControlElement", + "id" : "acm011788jsd", + "name" : "format" + }, + "acm011789jsd" : { + "type" : "ControlElement", + "id" : "acm011789jsd", + "name" : "getDescription" + }, + "acm011790jsd" : { + "type" : "ControlElement", + "id" : "acm011790jsd", + "name" : "getExampleInput" + }, + "acm011791jsd" : { + "type" : "ClassUnit", + "id" : "acm011791jsd", + "name" : "EscapeAmpersandsFormatter", + "compilationUnitId" : "acm011780jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011786jsd", "acm011787jsd", "acm011788jsd", "acm011789jsd", "acm011790jsd" ] + }, + "acm011792jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011792jsd", + "name" : "EscapeDollarSignFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011803jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011793jsd" : { + "type" : "CodePackage", + "id" : "acm011793jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011794jsd" ] + }, + "acm011794jsd" : { + "type" : "CodePackage", + "id" : "acm011794jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011795jsd" ] + }, + "acm011795jsd" : { + "type" : "CodePackage", + "id" : "acm011795jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011796jsd" ] + }, + "acm011796jsd" : { + "type" : "CodePackage", + "id" : "acm011796jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011797jsd" ] + }, + "acm011797jsd" : { + "type" : "CodePackage", + "id" : "acm011797jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011792jsd" ] + }, + "acm011798jsd" : { + "type" : "ControlElement", + "id" : "acm011798jsd", + "name" : "getName" + }, + "acm011799jsd" : { + "type" : "ControlElement", + "id" : "acm011799jsd", + "name" : "getKey" + }, + "acm011800jsd" : { + "type" : "ControlElement", + "id" : "acm011800jsd", + "name" : "format" + }, + "acm011801jsd" : { + "type" : "ControlElement", + "id" : "acm011801jsd", + "name" : "getDescription" + }, + "acm011802jsd" : { + "type" : "ControlElement", + "id" : "acm011802jsd", + "name" : "getExampleInput" + }, + "acm011803jsd" : { + "type" : "ClassUnit", + "id" : "acm011803jsd", + "name" : "EscapeDollarSignFormatter", + "compilationUnitId" : "acm011792jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011798jsd", "acm011799jsd", "acm011800jsd", "acm011801jsd", "acm011802jsd" ] + }, + "acm011804jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011804jsd", + "name" : "EscapeUnderscoresFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011815jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011805jsd" : { + "type" : "CodePackage", + "id" : "acm011805jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011806jsd" ] + }, + "acm011806jsd" : { + "type" : "CodePackage", + "id" : "acm011806jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011807jsd" ] + }, + "acm011807jsd" : { + "type" : "CodePackage", + "id" : "acm011807jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011808jsd" ] + }, + "acm011808jsd" : { + "type" : "CodePackage", + "id" : "acm011808jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011809jsd" ] + }, + "acm011809jsd" : { + "type" : "CodePackage", + "id" : "acm011809jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011804jsd" ] + }, + "acm011810jsd" : { + "type" : "ControlElement", + "id" : "acm011810jsd", + "name" : "getName" + }, + "acm011811jsd" : { + "type" : "ControlElement", + "id" : "acm011811jsd", + "name" : "getKey" + }, + "acm011812jsd" : { + "type" : "ControlElement", + "id" : "acm011812jsd", + "name" : "format" + }, + "acm011813jsd" : { + "type" : "ControlElement", + "id" : "acm011813jsd", + "name" : "getDescription" + }, + "acm011814jsd" : { + "type" : "ControlElement", + "id" : "acm011814jsd", + "name" : "getExampleInput" + }, + "acm011815jsd" : { + "type" : "ClassUnit", + "id" : "acm011815jsd", + "name" : "EscapeUnderscoresFormatter", + "compilationUnitId" : "acm011804jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011810jsd", "acm011811jsd", "acm011812jsd", "acm011813jsd", "acm011814jsd" ] + }, + "acm011816jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011816jsd", + "name" : "HtmlToLatexFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011828jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011817jsd" : { + "type" : "CodePackage", + "id" : "acm011817jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011818jsd" ] + }, + "acm011818jsd" : { + "type" : "CodePackage", + "id" : "acm011818jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011819jsd" ] + }, + "acm011819jsd" : { + "type" : "CodePackage", + "id" : "acm011819jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011820jsd" ] + }, + "acm011820jsd" : { + "type" : "CodePackage", + "id" : "acm011820jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011821jsd" ] + }, + "acm011821jsd" : { + "type" : "CodePackage", + "id" : "acm011821jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011816jsd" ] + }, + "acm011822jsd" : { + "type" : "ControlElement", + "id" : "acm011822jsd", + "name" : "format" + }, + "acm011823jsd" : { + "type" : "ControlElement", + "id" : "acm011823jsd", + "name" : "getDescription" + }, + "acm011824jsd" : { + "type" : "ControlElement", + "id" : "acm011824jsd", + "name" : "getExampleInput" + }, + "acm011825jsd" : { + "type" : "ControlElement", + "id" : "acm011825jsd", + "name" : "readTag" + }, + "acm011826jsd" : { + "type" : "ControlElement", + "id" : "acm011826jsd", + "name" : "getName" + }, + "acm011827jsd" : { + "type" : "ControlElement", + "id" : "acm011827jsd", + "name" : "getKey" + }, + "acm011828jsd" : { + "type" : "ClassUnit", + "id" : "acm011828jsd", + "name" : "HtmlToLatexFormatter", + "compilationUnitId" : "acm011816jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm011828jsd" ], + "content" : [ "acm011822jsd", "acm011823jsd", "acm011824jsd", "acm011825jsd", "acm011826jsd", "acm011827jsd" ] + }, + "acm011829jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011829jsd", + "name" : "HtmlToUnicodeFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011840jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011830jsd" : { + "type" : "CodePackage", + "id" : "acm011830jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011831jsd" ] + }, + "acm011831jsd" : { + "type" : "CodePackage", + "id" : "acm011831jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011832jsd" ] + }, + "acm011832jsd" : { + "type" : "CodePackage", + "id" : "acm011832jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011833jsd" ] + }, + "acm011833jsd" : { + "type" : "CodePackage", + "id" : "acm011833jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011834jsd" ] + }, + "acm011834jsd" : { + "type" : "CodePackage", + "id" : "acm011834jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011829jsd" ] + }, + "acm011835jsd" : { + "type" : "ControlElement", + "id" : "acm011835jsd", + "name" : "getName" + }, + "acm011836jsd" : { + "type" : "ControlElement", + "id" : "acm011836jsd", + "name" : "getKey" + }, + "acm011837jsd" : { + "type" : "ControlElement", + "id" : "acm011837jsd", + "name" : "getDescription" + }, + "acm011838jsd" : { + "type" : "ControlElement", + "id" : "acm011838jsd", + "name" : "getExampleInput" + }, + "acm011839jsd" : { + "type" : "ControlElement", + "id" : "acm011839jsd", + "name" : "format" + }, + "acm011840jsd" : { + "type" : "ClassUnit", + "id" : "acm011840jsd", + "name" : "HtmlToUnicodeFormatter", + "compilationUnitId" : "acm011829jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011835jsd", "acm011836jsd", "acm011837jsd", "acm011838jsd", "acm011839jsd" ] + }, + "acm011841jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011841jsd", + "name" : "LatexCleanupFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011852jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011842jsd" : { + "type" : "CodePackage", + "id" : "acm011842jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011843jsd" ] + }, + "acm011843jsd" : { + "type" : "CodePackage", + "id" : "acm011843jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011844jsd" ] + }, + "acm011844jsd" : { + "type" : "CodePackage", + "id" : "acm011844jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011845jsd" ] + }, + "acm011845jsd" : { + "type" : "CodePackage", + "id" : "acm011845jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011846jsd" ] + }, + "acm011846jsd" : { + "type" : "CodePackage", + "id" : "acm011846jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011841jsd" ] + }, + "acm011847jsd" : { + "type" : "ControlElement", + "id" : "acm011847jsd", + "name" : "getName" + }, + "acm011848jsd" : { + "type" : "ControlElement", + "id" : "acm011848jsd", + "name" : "getKey" + }, + "acm011849jsd" : { + "type" : "ControlElement", + "id" : "acm011849jsd", + "name" : "format" + }, + "acm011850jsd" : { + "type" : "ControlElement", + "id" : "acm011850jsd", + "name" : "getDescription" + }, + "acm011851jsd" : { + "type" : "ControlElement", + "id" : "acm011851jsd", + "name" : "getExampleInput" + }, + "acm011852jsd" : { + "type" : "ClassUnit", + "id" : "acm011852jsd", + "name" : "LatexCleanupFormatter", + "compilationUnitId" : "acm011841jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011847jsd", "acm011848jsd", "acm011849jsd", "acm011850jsd", "acm011851jsd" ] + }, + "acm011853jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011853jsd", + "name" : "NormalizeDateFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011864jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011854jsd" : { + "type" : "CodePackage", + "id" : "acm011854jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011855jsd" ] + }, + "acm011855jsd" : { + "type" : "CodePackage", + "id" : "acm011855jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011856jsd" ] + }, + "acm011856jsd" : { + "type" : "CodePackage", + "id" : "acm011856jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011857jsd" ] + }, + "acm011857jsd" : { + "type" : "CodePackage", + "id" : "acm011857jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011858jsd" ] + }, + "acm011858jsd" : { + "type" : "CodePackage", + "id" : "acm011858jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011853jsd" ] + }, + "acm011859jsd" : { + "type" : "ControlElement", + "id" : "acm011859jsd", + "name" : "getName" + }, + "acm011860jsd" : { + "type" : "ControlElement", + "id" : "acm011860jsd", + "name" : "getKey" + }, + "acm011861jsd" : { + "type" : "ControlElement", + "id" : "acm011861jsd", + "name" : "format" + }, + "acm011862jsd" : { + "type" : "ControlElement", + "id" : "acm011862jsd", + "name" : "getDescription" + }, + "acm011863jsd" : { + "type" : "ControlElement", + "id" : "acm011863jsd", + "name" : "getExampleInput" + }, + "acm011864jsd" : { + "type" : "ClassUnit", + "id" : "acm011864jsd", + "name" : "NormalizeDateFormatter", + "compilationUnitId" : "acm011853jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018401jsd" ], + "content" : [ "acm011859jsd", "acm011860jsd", "acm011861jsd", "acm011862jsd", "acm011863jsd" ] + }, + "acm011865jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011865jsd", + "name" : "NormalizeEnDashesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011876jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011866jsd" : { + "type" : "CodePackage", + "id" : "acm011866jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011867jsd" ] + }, + "acm011867jsd" : { + "type" : "CodePackage", + "id" : "acm011867jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011868jsd" ] + }, + "acm011868jsd" : { + "type" : "CodePackage", + "id" : "acm011868jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011869jsd" ] + }, + "acm011869jsd" : { + "type" : "CodePackage", + "id" : "acm011869jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011870jsd" ] + }, + "acm011870jsd" : { + "type" : "CodePackage", + "id" : "acm011870jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011865jsd" ] + }, + "acm011871jsd" : { + "type" : "ControlElement", + "id" : "acm011871jsd", + "name" : "getName" + }, + "acm011872jsd" : { + "type" : "ControlElement", + "id" : "acm011872jsd", + "name" : "getKey" + }, + "acm011873jsd" : { + "type" : "ControlElement", + "id" : "acm011873jsd", + "name" : "format" + }, + "acm011874jsd" : { + "type" : "ControlElement", + "id" : "acm011874jsd", + "name" : "getDescription" + }, + "acm011875jsd" : { + "type" : "ControlElement", + "id" : "acm011875jsd", + "name" : "getExampleInput" + }, + "acm011876jsd" : { + "type" : "ClassUnit", + "id" : "acm011876jsd", + "name" : "NormalizeEnDashesFormatter", + "compilationUnitId" : "acm011865jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011871jsd", "acm011872jsd", "acm011873jsd", "acm011874jsd", "acm011875jsd" ] + }, + "acm011877jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011877jsd", + "name" : "NormalizeMonthFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011888jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011878jsd" : { + "type" : "CodePackage", + "id" : "acm011878jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011879jsd" ] + }, + "acm011879jsd" : { + "type" : "CodePackage", + "id" : "acm011879jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011880jsd" ] + }, + "acm011880jsd" : { + "type" : "CodePackage", + "id" : "acm011880jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011881jsd" ] + }, + "acm011881jsd" : { + "type" : "CodePackage", + "id" : "acm011881jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011882jsd" ] + }, + "acm011882jsd" : { + "type" : "CodePackage", + "id" : "acm011882jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011877jsd" ] + }, + "acm011883jsd" : { + "type" : "ControlElement", + "id" : "acm011883jsd", + "name" : "getName" + }, + "acm011884jsd" : { + "type" : "ControlElement", + "id" : "acm011884jsd", + "name" : "getKey" + }, + "acm011885jsd" : { + "type" : "ControlElement", + "id" : "acm011885jsd", + "name" : "format" + }, + "acm011886jsd" : { + "type" : "ControlElement", + "id" : "acm011886jsd", + "name" : "getDescription" + }, + "acm011887jsd" : { + "type" : "ControlElement", + "id" : "acm011887jsd", + "name" : "getExampleInput" + }, + "acm011888jsd" : { + "type" : "ClassUnit", + "id" : "acm011888jsd", + "name" : "NormalizeMonthFormatter", + "compilationUnitId" : "acm011877jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018525jsd" ], + "content" : [ "acm011883jsd", "acm011884jsd", "acm011885jsd", "acm011886jsd", "acm011887jsd" ] + }, + "acm011889jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011889jsd", + "name" : "NormalizeNamesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011900jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011890jsd" : { + "type" : "CodePackage", + "id" : "acm011890jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011891jsd" ] + }, + "acm011891jsd" : { + "type" : "CodePackage", + "id" : "acm011891jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011892jsd" ] + }, + "acm011892jsd" : { + "type" : "CodePackage", + "id" : "acm011892jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011893jsd" ] + }, + "acm011893jsd" : { + "type" : "CodePackage", + "id" : "acm011893jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011894jsd" ] + }, + "acm011894jsd" : { + "type" : "CodePackage", + "id" : "acm011894jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011889jsd" ] + }, + "acm011895jsd" : { + "type" : "ControlElement", + "id" : "acm011895jsd", + "name" : "getName" + }, + "acm011896jsd" : { + "type" : "ControlElement", + "id" : "acm011896jsd", + "name" : "getKey" + }, + "acm011897jsd" : { + "type" : "ControlElement", + "id" : "acm011897jsd", + "name" : "format" + }, + "acm011898jsd" : { + "type" : "ControlElement", + "id" : "acm011898jsd", + "name" : "getDescription" + }, + "acm011899jsd" : { + "type" : "ControlElement", + "id" : "acm011899jsd", + "name" : "getExampleInput" + }, + "acm011900jsd" : { + "type" : "ClassUnit", + "id" : "acm011900jsd", + "name" : "NormalizeNamesFormatter", + "compilationUnitId" : "acm011889jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018175jsd" ], + "content" : [ "acm011895jsd", "acm011896jsd", "acm011897jsd", "acm011898jsd", "acm011899jsd" ] + }, + "acm011901jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011901jsd", + "name" : "NormalizePagesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011912jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011902jsd" : { + "type" : "CodePackage", + "id" : "acm011902jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011903jsd" ] + }, + "acm011903jsd" : { + "type" : "CodePackage", + "id" : "acm011903jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011904jsd" ] + }, + "acm011904jsd" : { + "type" : "CodePackage", + "id" : "acm011904jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011905jsd" ] + }, + "acm011905jsd" : { + "type" : "CodePackage", + "id" : "acm011905jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011906jsd" ] + }, + "acm011906jsd" : { + "type" : "CodePackage", + "id" : "acm011906jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011901jsd" ] + }, + "acm011907jsd" : { + "type" : "ControlElement", + "id" : "acm011907jsd", + "name" : "getName" + }, + "acm011908jsd" : { + "type" : "ControlElement", + "id" : "acm011908jsd", + "name" : "getKey" + }, + "acm011909jsd" : { + "type" : "ControlElement", + "id" : "acm011909jsd", + "name" : "format" + }, + "acm011910jsd" : { + "type" : "ControlElement", + "id" : "acm011910jsd", + "name" : "getDescription" + }, + "acm011911jsd" : { + "type" : "ControlElement", + "id" : "acm011911jsd", + "name" : "getExampleInput" + }, + "acm011912jsd" : { + "type" : "ClassUnit", + "id" : "acm011912jsd", + "name" : "NormalizePagesFormatter", + "compilationUnitId" : "acm011901jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011208jsd", "acm012157jsd" ], + "content" : [ "acm011907jsd", "acm011908jsd", "acm011909jsd", "acm011910jsd", "acm011911jsd" ] + }, + "acm011913jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011913jsd", + "name" : "OrdinalsToSuperscriptFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011924jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011914jsd" : { + "type" : "CodePackage", + "id" : "acm011914jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011915jsd" ] + }, + "acm011915jsd" : { + "type" : "CodePackage", + "id" : "acm011915jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011916jsd" ] + }, + "acm011916jsd" : { + "type" : "CodePackage", + "id" : "acm011916jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011917jsd" ] + }, + "acm011917jsd" : { + "type" : "CodePackage", + "id" : "acm011917jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011918jsd" ] + }, + "acm011918jsd" : { + "type" : "CodePackage", + "id" : "acm011918jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011913jsd" ] + }, + "acm011919jsd" : { + "type" : "ControlElement", + "id" : "acm011919jsd", + "name" : "getName" + }, + "acm011920jsd" : { + "type" : "ControlElement", + "id" : "acm011920jsd", + "name" : "getKey" + }, + "acm011921jsd" : { + "type" : "ControlElement", + "id" : "acm011921jsd", + "name" : "format" + }, + "acm011922jsd" : { + "type" : "ControlElement", + "id" : "acm011922jsd", + "name" : "getDescription" + }, + "acm011923jsd" : { + "type" : "ControlElement", + "id" : "acm011923jsd", + "name" : "getExampleInput" + }, + "acm011924jsd" : { + "type" : "ClassUnit", + "id" : "acm011924jsd", + "name" : "OrdinalsToSuperscriptFormatter", + "compilationUnitId" : "acm011913jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011919jsd", "acm011920jsd", "acm011921jsd", "acm011922jsd", "acm011923jsd" ] + }, + "acm011925jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011925jsd", + "name" : "RegexFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011938jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011926jsd" : { + "type" : "CodePackage", + "id" : "acm011926jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011927jsd" ] + }, + "acm011927jsd" : { + "type" : "CodePackage", + "id" : "acm011927jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011928jsd" ] + }, + "acm011928jsd" : { + "type" : "CodePackage", + "id" : "acm011928jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011929jsd" ] + }, + "acm011929jsd" : { + "type" : "CodePackage", + "id" : "acm011929jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011930jsd" ] + }, + "acm011930jsd" : { + "type" : "CodePackage", + "id" : "acm011930jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011925jsd" ] + }, + "acm011931jsd" : { + "type" : "ControlElement", + "id" : "acm011931jsd", + "name" : "RegexFormatter" + }, + "acm011932jsd" : { + "type" : "ControlElement", + "id" : "acm011932jsd", + "name" : "getName" + }, + "acm011933jsd" : { + "type" : "ControlElement", + "id" : "acm011933jsd", + "name" : "getKey" + }, + "acm011934jsd" : { + "type" : "ControlElement", + "id" : "acm011934jsd", + "name" : "replaceHonoringProtectedGroups" + }, + "acm011935jsd" : { + "type" : "ControlElement", + "id" : "acm011935jsd", + "name" : "format" + }, + "acm011936jsd" : { + "type" : "ControlElement", + "id" : "acm011936jsd", + "name" : "getDescription" + }, + "acm011937jsd" : { + "type" : "ControlElement", + "id" : "acm011937jsd", + "name" : "getExampleInput" + }, + "acm011938jsd" : { + "type" : "ClassUnit", + "id" : "acm011938jsd", + "name" : "RegexFormatter", + "compilationUnitId" : "acm011925jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011938jsd" ], + "content" : [ "acm011931jsd", "acm011932jsd", "acm011933jsd", "acm011934jsd", "acm011935jsd", "acm011936jsd", "acm011937jsd" ] + }, + "acm011939jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011939jsd", + "name" : "RemoveBracesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011951jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011940jsd" : { + "type" : "CodePackage", + "id" : "acm011940jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011941jsd" ] + }, + "acm011941jsd" : { + "type" : "CodePackage", + "id" : "acm011941jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011942jsd" ] + }, + "acm011942jsd" : { + "type" : "CodePackage", + "id" : "acm011942jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011943jsd" ] + }, + "acm011943jsd" : { + "type" : "CodePackage", + "id" : "acm011943jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011944jsd" ] + }, + "acm011944jsd" : { + "type" : "CodePackage", + "id" : "acm011944jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011939jsd" ] + }, + "acm011945jsd" : { + "type" : "ControlElement", + "id" : "acm011945jsd", + "name" : "getName" + }, + "acm011946jsd" : { + "type" : "ControlElement", + "id" : "acm011946jsd", + "name" : "getKey" + }, + "acm011947jsd" : { + "type" : "ControlElement", + "id" : "acm011947jsd", + "name" : "format" + }, + "acm011948jsd" : { + "type" : "ControlElement", + "id" : "acm011948jsd", + "name" : "getDescription" + }, + "acm011949jsd" : { + "type" : "ControlElement", + "id" : "acm011949jsd", + "name" : "getExampleInput" + }, + "acm011950jsd" : { + "type" : "ControlElement", + "id" : "acm011950jsd", + "name" : "hasNegativeBraceCount" + }, + "acm011951jsd" : { + "type" : "ClassUnit", + "id" : "acm011951jsd", + "name" : "RemoveBracesFormatter", + "compilationUnitId" : "acm011939jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011945jsd", "acm011946jsd", "acm011947jsd", "acm011948jsd", "acm011949jsd", "acm011950jsd" ] + }, + "acm011952jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011952jsd", + "name" : "RemoveDigitsFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011963jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011953jsd" : { + "type" : "CodePackage", + "id" : "acm011953jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011954jsd" ] + }, + "acm011954jsd" : { + "type" : "CodePackage", + "id" : "acm011954jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011955jsd" ] + }, + "acm011955jsd" : { + "type" : "CodePackage", + "id" : "acm011955jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011956jsd" ] + }, + "acm011956jsd" : { + "type" : "CodePackage", + "id" : "acm011956jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011957jsd" ] + }, + "acm011957jsd" : { + "type" : "CodePackage", + "id" : "acm011957jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011952jsd" ] + }, + "acm011958jsd" : { + "type" : "ControlElement", + "id" : "acm011958jsd", + "name" : "getName" + }, + "acm011959jsd" : { + "type" : "ControlElement", + "id" : "acm011959jsd", + "name" : "getKey" + }, + "acm011960jsd" : { + "type" : "ControlElement", + "id" : "acm011960jsd", + "name" : "format" + }, + "acm011961jsd" : { + "type" : "ControlElement", + "id" : "acm011961jsd", + "name" : "getDescription" + }, + "acm011962jsd" : { + "type" : "ControlElement", + "id" : "acm011962jsd", + "name" : "getExampleInput" + }, + "acm011963jsd" : { + "type" : "ClassUnit", + "id" : "acm011963jsd", + "name" : "RemoveDigitsFormatter", + "compilationUnitId" : "acm011952jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011958jsd", "acm011959jsd", "acm011960jsd", "acm011961jsd", "acm011962jsd" ] + }, + "acm011964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011964jsd", + "name" : "RemoveHyphenatedNewlinesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011975jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011965jsd" : { + "type" : "CodePackage", + "id" : "acm011965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011966jsd" ] + }, + "acm011966jsd" : { + "type" : "CodePackage", + "id" : "acm011966jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011967jsd" ] + }, + "acm011967jsd" : { + "type" : "CodePackage", + "id" : "acm011967jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011968jsd" ] + }, + "acm011968jsd" : { + "type" : "CodePackage", + "id" : "acm011968jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011969jsd" ] + }, + "acm011969jsd" : { + "type" : "CodePackage", + "id" : "acm011969jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011964jsd" ] + }, + "acm011970jsd" : { + "type" : "ControlElement", + "id" : "acm011970jsd", + "name" : "getName" + }, + "acm011971jsd" : { + "type" : "ControlElement", + "id" : "acm011971jsd", + "name" : "getKey" + }, + "acm011972jsd" : { + "type" : "ControlElement", + "id" : "acm011972jsd", + "name" : "format" + }, + "acm011973jsd" : { + "type" : "ControlElement", + "id" : "acm011973jsd", + "name" : "getDescription" + }, + "acm011974jsd" : { + "type" : "ControlElement", + "id" : "acm011974jsd", + "name" : "getExampleInput" + }, + "acm011975jsd" : { + "type" : "ClassUnit", + "id" : "acm011975jsd", + "name" : "RemoveHyphenatedNewlinesFormatter", + "compilationUnitId" : "acm011964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011970jsd", "acm011971jsd", "acm011972jsd", "acm011973jsd", "acm011974jsd" ] + }, + "acm011976jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011976jsd", + "name" : "RemoveNewlinesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011987jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011977jsd" : { + "type" : "CodePackage", + "id" : "acm011977jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011978jsd" ] + }, + "acm011978jsd" : { + "type" : "CodePackage", + "id" : "acm011978jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011979jsd" ] + }, + "acm011979jsd" : { + "type" : "CodePackage", + "id" : "acm011979jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011980jsd" ] + }, + "acm011980jsd" : { + "type" : "CodePackage", + "id" : "acm011980jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011981jsd" ] + }, + "acm011981jsd" : { + "type" : "CodePackage", + "id" : "acm011981jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011976jsd" ] + }, + "acm011982jsd" : { + "type" : "ControlElement", + "id" : "acm011982jsd", + "name" : "getName" + }, + "acm011983jsd" : { + "type" : "ControlElement", + "id" : "acm011983jsd", + "name" : "getKey" + }, + "acm011984jsd" : { + "type" : "ControlElement", + "id" : "acm011984jsd", + "name" : "format" + }, + "acm011985jsd" : { + "type" : "ControlElement", + "id" : "acm011985jsd", + "name" : "getDescription" + }, + "acm011986jsd" : { + "type" : "ControlElement", + "id" : "acm011986jsd", + "name" : "getExampleInput" + }, + "acm011987jsd" : { + "type" : "ClassUnit", + "id" : "acm011987jsd", + "name" : "RemoveNewlinesFormatter", + "compilationUnitId" : "acm011976jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011982jsd", "acm011983jsd", "acm011984jsd", "acm011985jsd", "acm011986jsd" ] + }, + "acm011988jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011988jsd", + "name" : "RemoveRedundantSpacesFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm011999jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011989jsd" : { + "type" : "CodePackage", + "id" : "acm011989jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm011990jsd" ] + }, + "acm011990jsd" : { + "type" : "CodePackage", + "id" : "acm011990jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm011991jsd" ] + }, + "acm011991jsd" : { + "type" : "CodePackage", + "id" : "acm011991jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011992jsd" ] + }, + "acm011992jsd" : { + "type" : "CodePackage", + "id" : "acm011992jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm011993jsd" ] + }, + "acm011993jsd" : { + "type" : "CodePackage", + "id" : "acm011993jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm011988jsd" ] + }, + "acm011994jsd" : { + "type" : "ControlElement", + "id" : "acm011994jsd", + "name" : "getName" + }, + "acm011995jsd" : { + "type" : "ControlElement", + "id" : "acm011995jsd", + "name" : "getKey" + }, + "acm011996jsd" : { + "type" : "ControlElement", + "id" : "acm011996jsd", + "name" : "format" + }, + "acm011997jsd" : { + "type" : "ControlElement", + "id" : "acm011997jsd", + "name" : "getDescription" + }, + "acm011998jsd" : { + "type" : "ControlElement", + "id" : "acm011998jsd", + "name" : "getExampleInput" + }, + "acm011999jsd" : { + "type" : "ClassUnit", + "id" : "acm011999jsd", + "name" : "RemoveRedundantSpacesFormatter", + "compilationUnitId" : "acm011988jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011994jsd", "acm011995jsd", "acm011996jsd", "acm011997jsd", "acm011998jsd" ] + }, + "acm012000jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012000jsd", + "name" : "ReplaceTabsBySpaceFormater", + "parentId" : "acm011749jsd", + "content" : [ "acm012011jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012001jsd" : { + "type" : "CodePackage", + "id" : "acm012001jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012002jsd" ] + }, + "acm012002jsd" : { + "type" : "CodePackage", + "id" : "acm012002jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012003jsd" ] + }, + "acm012003jsd" : { + "type" : "CodePackage", + "id" : "acm012003jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012004jsd" ] + }, + "acm012004jsd" : { + "type" : "CodePackage", + "id" : "acm012004jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012005jsd" ] + }, + "acm012005jsd" : { + "type" : "CodePackage", + "id" : "acm012005jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm012000jsd" ] + }, + "acm012006jsd" : { + "type" : "ControlElement", + "id" : "acm012006jsd", + "name" : "getName" + }, + "acm012007jsd" : { + "type" : "ControlElement", + "id" : "acm012007jsd", + "name" : "getKey" + }, + "acm012008jsd" : { + "type" : "ControlElement", + "id" : "acm012008jsd", + "name" : "format" + }, + "acm012009jsd" : { + "type" : "ControlElement", + "id" : "acm012009jsd", + "name" : "getDescription" + }, + "acm012010jsd" : { + "type" : "ControlElement", + "id" : "acm012010jsd", + "name" : "getExampleInput" + }, + "acm012011jsd" : { + "type" : "ClassUnit", + "id" : "acm012011jsd", + "name" : "ReplaceTabsBySpaceFormater", + "compilationUnitId" : "acm012000jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012006jsd", "acm012007jsd", "acm012008jsd", "acm012009jsd", "acm012010jsd" ] + }, + "acm012012jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012012jsd", + "name" : "ShortenDOIFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm012023jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012013jsd" : { + "type" : "CodePackage", + "id" : "acm012013jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012014jsd" ] + }, + "acm012014jsd" : { + "type" : "CodePackage", + "id" : "acm012014jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012015jsd" ] + }, + "acm012015jsd" : { + "type" : "CodePackage", + "id" : "acm012015jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012016jsd" ] + }, + "acm012016jsd" : { + "type" : "CodePackage", + "id" : "acm012016jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012017jsd" ] + }, + "acm012017jsd" : { + "type" : "CodePackage", + "id" : "acm012017jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm012012jsd" ] + }, + "acm012018jsd" : { + "type" : "ControlElement", + "id" : "acm012018jsd", + "name" : "getName" + }, + "acm012019jsd" : { + "type" : "ControlElement", + "id" : "acm012019jsd", + "name" : "getKey" + }, + "acm012020jsd" : { + "type" : "ControlElement", + "id" : "acm012020jsd", + "name" : "format" + }, + "acm012021jsd" : { + "type" : "ControlElement", + "id" : "acm012021jsd", + "name" : "getDescription" + }, + "acm012022jsd" : { + "type" : "ControlElement", + "id" : "acm012022jsd", + "name" : "getExampleInput" + }, + "acm012023jsd" : { + "type" : "ClassUnit", + "id" : "acm012023jsd", + "name" : "ShortenDOIFormatter", + "compilationUnitId" : "acm012012jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012023jsd" ], + "content" : [ "acm012018jsd", "acm012019jsd", "acm012020jsd", "acm012021jsd", "acm012022jsd" ] + }, + "acm012024jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012024jsd", + "name" : "TrimWhitespaceFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm012035jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012025jsd" : { + "type" : "CodePackage", + "id" : "acm012025jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012026jsd" ] + }, + "acm012026jsd" : { + "type" : "CodePackage", + "id" : "acm012026jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012027jsd" ] + }, + "acm012027jsd" : { + "type" : "CodePackage", + "id" : "acm012027jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012028jsd" ] + }, + "acm012028jsd" : { + "type" : "CodePackage", + "id" : "acm012028jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012029jsd" ] + }, + "acm012029jsd" : { + "type" : "CodePackage", + "id" : "acm012029jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm012024jsd" ] + }, + "acm012030jsd" : { + "type" : "ControlElement", + "id" : "acm012030jsd", + "name" : "getName" + }, + "acm012031jsd" : { + "type" : "ControlElement", + "id" : "acm012031jsd", + "name" : "getKey" + }, + "acm012032jsd" : { + "type" : "ControlElement", + "id" : "acm012032jsd", + "name" : "format" + }, + "acm012033jsd" : { + "type" : "ControlElement", + "id" : "acm012033jsd", + "name" : "getDescription" + }, + "acm012034jsd" : { + "type" : "ControlElement", + "id" : "acm012034jsd", + "name" : "getExampleInput" + }, + "acm012035jsd" : { + "type" : "ClassUnit", + "id" : "acm012035jsd", + "name" : "TrimWhitespaceFormatter", + "compilationUnitId" : "acm012024jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012030jsd", "acm012031jsd", "acm012032jsd", "acm012033jsd", "acm012034jsd" ] + }, + "acm012036jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012036jsd", + "name" : "UnicodeToLatexFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm012047jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012037jsd" : { + "type" : "CodePackage", + "id" : "acm012037jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012038jsd" ] + }, + "acm012038jsd" : { + "type" : "CodePackage", + "id" : "acm012038jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012039jsd" ] + }, + "acm012039jsd" : { + "type" : "CodePackage", + "id" : "acm012039jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012040jsd" ] + }, + "acm012040jsd" : { + "type" : "CodePackage", + "id" : "acm012040jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012041jsd" ] + }, + "acm012041jsd" : { + "type" : "CodePackage", + "id" : "acm012041jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm012036jsd" ] + }, + "acm012042jsd" : { + "type" : "ControlElement", + "id" : "acm012042jsd", + "name" : "format" + }, + "acm012043jsd" : { + "type" : "ControlElement", + "id" : "acm012043jsd", + "name" : "getDescription" + }, + "acm012044jsd" : { + "type" : "ControlElement", + "id" : "acm012044jsd", + "name" : "getExampleInput" + }, + "acm012045jsd" : { + "type" : "ControlElement", + "id" : "acm012045jsd", + "name" : "getName" + }, + "acm012046jsd" : { + "type" : "ControlElement", + "id" : "acm012046jsd", + "name" : "getKey" + }, + "acm012047jsd" : { + "type" : "ClassUnit", + "id" : "acm012047jsd", + "name" : "UnicodeToLatexFormatter", + "compilationUnitId" : "acm012036jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm012047jsd" ], + "content" : [ "acm012042jsd", "acm012043jsd", "acm012044jsd", "acm012045jsd", "acm012046jsd" ] + }, + "acm012048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012048jsd", + "name" : "UnitsToLatexFormatter", + "parentId" : "acm011749jsd", + "content" : [ "acm012060jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012049jsd" : { + "type" : "CodePackage", + "id" : "acm012049jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012050jsd" ] + }, + "acm012050jsd" : { + "type" : "CodePackage", + "id" : "acm012050jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012051jsd" ] + }, + "acm012051jsd" : { + "type" : "CodePackage", + "id" : "acm012051jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012052jsd" ] + }, + "acm012052jsd" : { + "type" : "CodePackage", + "id" : "acm012052jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012053jsd" ] + }, + "acm012053jsd" : { + "type" : "CodePackage", + "id" : "acm012053jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm012048jsd" ] + }, + "acm012054jsd" : { + "type" : "ControlElement", + "id" : "acm012054jsd", + "name" : "UnitsToLatexFormatter" + }, + "acm012055jsd" : { + "type" : "ControlElement", + "id" : "acm012055jsd", + "name" : "format" + }, + "acm012056jsd" : { + "type" : "ControlElement", + "id" : "acm012056jsd", + "name" : "getDescription" + }, + "acm012057jsd" : { + "type" : "ControlElement", + "id" : "acm012057jsd", + "name" : "getExampleInput" + }, + "acm012058jsd" : { + "type" : "ControlElement", + "id" : "acm012058jsd", + "name" : "getName" + }, + "acm012059jsd" : { + "type" : "ControlElement", + "id" : "acm012059jsd", + "name" : "getKey" + }, + "acm012060jsd" : { + "type" : "ClassUnit", + "id" : "acm012060jsd", + "name" : "UnitsToLatexFormatter", + "compilationUnitId" : "acm012048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017633jsd" ], + "content" : [ "acm012054jsd", "acm012055jsd", "acm012056jsd", "acm012057jsd", "acm012058jsd", "acm012059jsd" ] + }, + "acm012061jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012061jsd", + "name" : "CapitalizeFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012072jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012062jsd" : { + "type" : "CodePackage", + "id" : "acm012062jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012063jsd" ] + }, + "acm012063jsd" : { + "type" : "CodePackage", + "id" : "acm012063jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012064jsd" ] + }, + "acm012064jsd" : { + "type" : "CodePackage", + "id" : "acm012064jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012065jsd" ] + }, + "acm012065jsd" : { + "type" : "CodePackage", + "id" : "acm012065jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012066jsd" ] + }, + "acm012066jsd" : { + "type" : "CodePackage", + "id" : "acm012066jsd", + "name" : "casechanger", + "parentId" : "acm011725jsd", + "content" : [ "acm012061jsd", "acm012073jsd", "acm012085jsd", "acm012099jsd", "acm012111jsd", "acm012123jsd", "acm012135jsd", "acm012146jsd", "acm012158jsd", "acm012170jsd", "acm023915jsd", "acm023925jsd", "acm023936jsd", "acm023950jsd", "acm023960jsd", "acm023970jsd", "acm023980jsd" ] + }, + "acm012067jsd" : { + "type" : "ControlElement", + "id" : "acm012067jsd", + "name" : "getName" + }, + "acm012068jsd" : { + "type" : "ControlElement", + "id" : "acm012068jsd", + "name" : "getKey" + }, + "acm012069jsd" : { + "type" : "ControlElement", + "id" : "acm012069jsd", + "name" : "format" + }, + "acm012070jsd" : { + "type" : "ControlElement", + "id" : "acm012070jsd", + "name" : "getDescription" + }, + "acm012071jsd" : { + "type" : "ControlElement", + "id" : "acm012071jsd", + "name" : "getExampleInput" + }, + "acm012072jsd" : { + "type" : "ClassUnit", + "id" : "acm012072jsd", + "name" : "CapitalizeFormatter", + "compilationUnitId" : "acm012061jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012122jsd" ], + "content" : [ "acm012067jsd", "acm012068jsd", "acm012069jsd", "acm012070jsd", "acm012071jsd" ] + }, + "acm012073jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012073jsd", + "name" : "LowerCaseFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012084jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012074jsd" : { + "type" : "CodePackage", + "id" : "acm012074jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012075jsd" ] + }, + "acm012075jsd" : { + "type" : "CodePackage", + "id" : "acm012075jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012076jsd" ] + }, + "acm012076jsd" : { + "type" : "CodePackage", + "id" : "acm012076jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012077jsd" ] + }, + "acm012077jsd" : { + "type" : "CodePackage", + "id" : "acm012077jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012078jsd" ] + }, + "acm012078jsd" : { + "type" : "CodePackage", + "id" : "acm012078jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012073jsd" ] + }, + "acm012079jsd" : { + "type" : "ControlElement", + "id" : "acm012079jsd", + "name" : "getName" + }, + "acm012080jsd" : { + "type" : "ControlElement", + "id" : "acm012080jsd", + "name" : "getKey" + }, + "acm012081jsd" : { + "type" : "ControlElement", + "id" : "acm012081jsd", + "name" : "format" + }, + "acm012082jsd" : { + "type" : "ControlElement", + "id" : "acm012082jsd", + "name" : "getDescription" + }, + "acm012083jsd" : { + "type" : "ControlElement", + "id" : "acm012083jsd", + "name" : "getExampleInput" + }, + "acm012084jsd" : { + "type" : "ClassUnit", + "id" : "acm012084jsd", + "name" : "LowerCaseFormatter", + "compilationUnitId" : "acm012073jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012122jsd" ], + "content" : [ "acm012079jsd", "acm012080jsd", "acm012081jsd", "acm012082jsd", "acm012083jsd" ] + }, + "acm012085jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012085jsd", + "name" : "ProtectTermsFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012098jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012086jsd" : { + "type" : "CodePackage", + "id" : "acm012086jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012087jsd" ] + }, + "acm012087jsd" : { + "type" : "CodePackage", + "id" : "acm012087jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012088jsd" ] + }, + "acm012088jsd" : { + "type" : "CodePackage", + "id" : "acm012088jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012089jsd" ] + }, + "acm012089jsd" : { + "type" : "CodePackage", + "id" : "acm012089jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012090jsd" ] + }, + "acm012090jsd" : { + "type" : "CodePackage", + "id" : "acm012090jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012085jsd" ] + }, + "acm012091jsd" : { + "type" : "ControlElement", + "id" : "acm012091jsd", + "name" : "ProtectTermsFormatter" + }, + "acm012092jsd" : { + "type" : "ControlElement", + "id" : "acm012092jsd", + "name" : "format" + }, + "acm012093jsd" : { + "type" : "ControlElement", + "id" : "acm012093jsd", + "name" : "format" + }, + "acm012094jsd" : { + "type" : "ControlElement", + "id" : "acm012094jsd", + "name" : "getDescription" + }, + "acm012095jsd" : { + "type" : "ControlElement", + "id" : "acm012095jsd", + "name" : "getExampleInput" + }, + "acm012096jsd" : { + "type" : "ControlElement", + "id" : "acm012096jsd", + "name" : "getName" + }, + "acm012097jsd" : { + "type" : "ControlElement", + "id" : "acm012097jsd", + "name" : "getKey" + }, + "acm012098jsd" : { + "type" : "ClassUnit", + "id" : "acm012098jsd", + "name" : "ProtectTermsFormatter", + "compilationUnitId" : "acm012085jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016690jsd", "acm017633jsd" ], + "content" : [ "acm012091jsd", "acm012092jsd", "acm012093jsd", "acm012094jsd", "acm012095jsd", "acm012096jsd", "acm012097jsd" ] + }, + "acm012099jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012099jsd", + "name" : "SentenceCaseFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012110jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012100jsd" : { + "type" : "CodePackage", + "id" : "acm012100jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012101jsd" ] + }, + "acm012101jsd" : { + "type" : "CodePackage", + "id" : "acm012101jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012102jsd" ] + }, + "acm012102jsd" : { + "type" : "CodePackage", + "id" : "acm012102jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012103jsd" ] + }, + "acm012103jsd" : { + "type" : "CodePackage", + "id" : "acm012103jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012104jsd" ] + }, + "acm012104jsd" : { + "type" : "CodePackage", + "id" : "acm012104jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012099jsd" ] + }, + "acm012105jsd" : { + "type" : "ControlElement", + "id" : "acm012105jsd", + "name" : "getName" + }, + "acm012106jsd" : { + "type" : "ControlElement", + "id" : "acm012106jsd", + "name" : "getKey" + }, + "acm012107jsd" : { + "type" : "ControlElement", + "id" : "acm012107jsd", + "name" : "format" + }, + "acm012108jsd" : { + "type" : "ControlElement", + "id" : "acm012108jsd", + "name" : "getDescription" + }, + "acm012109jsd" : { + "type" : "ControlElement", + "id" : "acm012109jsd", + "name" : "getExampleInput" + }, + "acm012110jsd" : { + "type" : "ClassUnit", + "id" : "acm012110jsd", + "name" : "SentenceCaseFormatter", + "compilationUnitId" : "acm012099jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012084jsd", "acm012122jsd" ], + "content" : [ "acm012105jsd", "acm012106jsd", "acm012107jsd", "acm012108jsd", "acm012109jsd" ] + }, + "acm012111jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012111jsd", + "name" : "Title", + "parentId" : "acm012066jsd", + "content" : [ "acm012122jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012112jsd" : { + "type" : "CodePackage", + "id" : "acm012112jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012113jsd" ] + }, + "acm012113jsd" : { + "type" : "CodePackage", + "id" : "acm012113jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012114jsd" ] + }, + "acm012114jsd" : { + "type" : "CodePackage", + "id" : "acm012114jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012115jsd" ] + }, + "acm012115jsd" : { + "type" : "CodePackage", + "id" : "acm012115jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012116jsd" ] + }, + "acm012116jsd" : { + "type" : "CodePackage", + "id" : "acm012116jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012111jsd" ] + }, + "acm012117jsd" : { + "type" : "ControlElement", + "id" : "acm012117jsd", + "name" : "Title" + }, + "acm012118jsd" : { + "type" : "ControlElement", + "id" : "acm012118jsd", + "name" : "getWords" + }, + "acm012119jsd" : { + "type" : "ControlElement", + "id" : "acm012119jsd", + "name" : "getFirstWord" + }, + "acm012120jsd" : { + "type" : "ControlElement", + "id" : "acm012120jsd", + "name" : "getLastWord" + }, + "acm012121jsd" : { + "type" : "ControlElement", + "id" : "acm012121jsd", + "name" : "toString" + }, + "acm012122jsd" : { + "type" : "ClassUnit", + "id" : "acm012122jsd", + "name" : "Title", + "compilationUnitId" : "acm012111jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012145jsd", "acm012189jsd" ], + "content" : [ "acm012117jsd", "acm012118jsd", "acm012119jsd", "acm012120jsd", "acm012121jsd" ] + }, + "acm012123jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012123jsd", + "name" : "TitleCaseFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012134jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012124jsd" : { + "type" : "CodePackage", + "id" : "acm012124jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012125jsd" ] + }, + "acm012125jsd" : { + "type" : "CodePackage", + "id" : "acm012125jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012126jsd" ] + }, + "acm012126jsd" : { + "type" : "CodePackage", + "id" : "acm012126jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012127jsd" ] + }, + "acm012127jsd" : { + "type" : "CodePackage", + "id" : "acm012127jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012128jsd" ] + }, + "acm012128jsd" : { + "type" : "CodePackage", + "id" : "acm012128jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012123jsd" ] + }, + "acm012129jsd" : { + "type" : "ControlElement", + "id" : "acm012129jsd", + "name" : "getName" + }, + "acm012130jsd" : { + "type" : "ControlElement", + "id" : "acm012130jsd", + "name" : "getKey" + }, + "acm012131jsd" : { + "type" : "ControlElement", + "id" : "acm012131jsd", + "name" : "format" + }, + "acm012132jsd" : { + "type" : "ControlElement", + "id" : "acm012132jsd", + "name" : "getDescription" + }, + "acm012133jsd" : { + "type" : "ControlElement", + "id" : "acm012133jsd", + "name" : "getExampleInput" + }, + "acm012134jsd" : { + "type" : "ClassUnit", + "id" : "acm012134jsd", + "name" : "TitleCaseFormatter", + "compilationUnitId" : "acm012123jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012129jsd", "acm012130jsd", "acm012131jsd", "acm012132jsd", "acm012133jsd" ] + }, + "acm012135jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012135jsd", + "name" : "TitleParser", + "parentId" : "acm012066jsd", + "content" : [ "acm012145jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012136jsd" : { + "type" : "CodePackage", + "id" : "acm012136jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012137jsd" ] + }, + "acm012137jsd" : { + "type" : "CodePackage", + "id" : "acm012137jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012138jsd" ] + }, + "acm012138jsd" : { + "type" : "CodePackage", + "id" : "acm012138jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012139jsd" ] + }, + "acm012139jsd" : { + "type" : "CodePackage", + "id" : "acm012139jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012140jsd" ] + }, + "acm012140jsd" : { + "type" : "CodePackage", + "id" : "acm012140jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012135jsd" ] + }, + "acm012141jsd" : { + "type" : "ControlElement", + "id" : "acm012141jsd", + "name" : "parse" + }, + "acm012142jsd" : { + "type" : "ControlElement", + "id" : "acm012142jsd", + "name" : "createWord" + }, + "acm012143jsd" : { + "type" : "ControlElement", + "id" : "acm012143jsd", + "name" : "reset" + }, + "acm012144jsd" : { + "type" : "ControlElement", + "id" : "acm012144jsd", + "name" : "determineProtectedChars" + }, + "acm012145jsd" : { + "type" : "ClassUnit", + "id" : "acm012145jsd", + "name" : "TitleParser", + "compilationUnitId" : "acm012135jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012189jsd" ], + "content" : [ "acm012141jsd", "acm012142jsd", "acm012143jsd", "acm012144jsd" ] + }, + "acm012146jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012146jsd", + "name" : "UnprotectTermsFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012157jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012147jsd" : { + "type" : "CodePackage", + "id" : "acm012147jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012148jsd" ] + }, + "acm012148jsd" : { + "type" : "CodePackage", + "id" : "acm012148jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012149jsd" ] + }, + "acm012149jsd" : { + "type" : "CodePackage", + "id" : "acm012149jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012150jsd" ] + }, + "acm012150jsd" : { + "type" : "CodePackage", + "id" : "acm012150jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012151jsd" ] + }, + "acm012151jsd" : { + "type" : "CodePackage", + "id" : "acm012151jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012146jsd" ] + }, + "acm012152jsd" : { + "type" : "ControlElement", + "id" : "acm012152jsd", + "name" : "format" + }, + "acm012153jsd" : { + "type" : "ControlElement", + "id" : "acm012153jsd", + "name" : "getDescription" + }, + "acm012154jsd" : { + "type" : "ControlElement", + "id" : "acm012154jsd", + "name" : "getExampleInput" + }, + "acm012155jsd" : { + "type" : "ControlElement", + "id" : "acm012155jsd", + "name" : "getName" + }, + "acm012156jsd" : { + "type" : "ControlElement", + "id" : "acm012156jsd", + "name" : "getKey" + }, + "acm012157jsd" : { + "type" : "ClassUnit", + "id" : "acm012157jsd", + "name" : "UnprotectTermsFormatter", + "compilationUnitId" : "acm012146jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012152jsd", "acm012153jsd", "acm012154jsd", "acm012155jsd", "acm012156jsd" ] + }, + "acm012158jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012158jsd", + "name" : "UpperCaseFormatter", + "parentId" : "acm012066jsd", + "content" : [ "acm012169jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012159jsd" : { + "type" : "CodePackage", + "id" : "acm012159jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012160jsd" ] + }, + "acm012160jsd" : { + "type" : "CodePackage", + "id" : "acm012160jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012161jsd" ] + }, + "acm012161jsd" : { + "type" : "CodePackage", + "id" : "acm012161jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012162jsd" ] + }, + "acm012162jsd" : { + "type" : "CodePackage", + "id" : "acm012162jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012163jsd" ] + }, + "acm012163jsd" : { + "type" : "CodePackage", + "id" : "acm012163jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012158jsd" ] + }, + "acm012164jsd" : { + "type" : "ControlElement", + "id" : "acm012164jsd", + "name" : "getName" + }, + "acm012165jsd" : { + "type" : "ControlElement", + "id" : "acm012165jsd", + "name" : "getKey" + }, + "acm012166jsd" : { + "type" : "ControlElement", + "id" : "acm012166jsd", + "name" : "format" + }, + "acm012167jsd" : { + "type" : "ControlElement", + "id" : "acm012167jsd", + "name" : "getDescription" + }, + "acm012168jsd" : { + "type" : "ControlElement", + "id" : "acm012168jsd", + "name" : "getExampleInput" + }, + "acm012169jsd" : { + "type" : "ClassUnit", + "id" : "acm012169jsd", + "name" : "UpperCaseFormatter", + "compilationUnitId" : "acm012158jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012122jsd" ], + "content" : [ "acm012164jsd", "acm012165jsd", "acm012166jsd", "acm012167jsd", "acm012168jsd" ] + }, + "acm012170jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012170jsd", + "name" : "Word", + "parentId" : "acm012066jsd", + "content" : [ "acm012189jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012171jsd" : { + "type" : "CodePackage", + "id" : "acm012171jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012172jsd" ] + }, + "acm012172jsd" : { + "type" : "CodePackage", + "id" : "acm012172jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012173jsd" ] + }, + "acm012173jsd" : { + "type" : "CodePackage", + "id" : "acm012173jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012174jsd" ] + }, + "acm012174jsd" : { + "type" : "CodePackage", + "id" : "acm012174jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012175jsd" ] + }, + "acm012175jsd" : { + "type" : "CodePackage", + "id" : "acm012175jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm012170jsd" ] + }, + "acm012176jsd" : { + "type" : "ControlElement", + "id" : "acm012176jsd", + "name" : "Word" + }, + "acm012177jsd" : { + "type" : "ControlElement", + "id" : "acm012177jsd", + "name" : "isSmallerWord" + }, + "acm012178jsd" : { + "type" : "ControlElement", + "id" : "acm012178jsd", + "name" : "toUpperCase" + }, + "acm012179jsd" : { + "type" : "ControlElement", + "id" : "acm012179jsd", + "name" : "toLowerCase" + }, + "acm012180jsd" : { + "type" : "ControlElement", + "id" : "acm012180jsd", + "name" : "toUpperFirst" + }, + "acm012181jsd" : { + "type" : "ControlElement", + "id" : "acm012181jsd", + "name" : "toUpperFirstIgnoreHyphen" + }, + "acm012182jsd" : { + "type" : "ControlElement", + "id" : "acm012182jsd", + "name" : "toUpperFirstTitle" + }, + "acm012183jsd" : { + "type" : "ControlElement", + "id" : "acm012183jsd", + "name" : "isConjunction" + }, + "acm012184jsd" : { + "type" : "ControlElement", + "id" : "acm012184jsd", + "name" : "stripConsonants" + }, + "acm012185jsd" : { + "type" : "ControlElement", + "id" : "acm012185jsd", + "name" : "isSmallerWord" + }, + "acm012186jsd" : { + "type" : "ControlElement", + "id" : "acm012186jsd", + "name" : "isLargerWord" + }, + "acm012187jsd" : { + "type" : "ControlElement", + "id" : "acm012187jsd", + "name" : "toString" + }, + "acm012188jsd" : { + "type" : "ControlElement", + "id" : "acm012188jsd", + "name" : "endsWithColon" + }, + "acm012189jsd" : { + "type" : "ClassUnit", + "id" : "acm012189jsd", + "name" : "Word", + "compilationUnitId" : "acm012170jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012176jsd", "acm012177jsd", "acm012178jsd", "acm012179jsd", "acm012180jsd", "acm012181jsd", "acm012182jsd", "acm012183jsd", "acm012184jsd", "acm012185jsd", "acm012186jsd", "acm012187jsd", "acm012188jsd" ] + }, + "acm012190jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012190jsd", + "name" : "MinifyNameListFormatter", + "parentId" : "acm012195jsd", + "content" : [ "acm012202jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "minifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012191jsd" : { + "type" : "CodePackage", + "id" : "acm012191jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012192jsd" ] + }, + "acm012192jsd" : { + "type" : "CodePackage", + "id" : "acm012192jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012193jsd" ] + }, + "acm012193jsd" : { + "type" : "CodePackage", + "id" : "acm012193jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012194jsd" ] + }, + "acm012194jsd" : { + "type" : "CodePackage", + "id" : "acm012194jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012195jsd" ] + }, + "acm012195jsd" : { + "type" : "CodePackage", + "id" : "acm012195jsd", + "name" : "minifier", + "parentId" : "acm011725jsd", + "content" : [ "acm012190jsd", "acm012203jsd", "acm023990jsd", "acm024000jsd" ] + }, + "acm012196jsd" : { + "type" : "ControlElement", + "id" : "acm012196jsd", + "name" : "getName" + }, + "acm012197jsd" : { + "type" : "ControlElement", + "id" : "acm012197jsd", + "name" : "getKey" + }, + "acm012198jsd" : { + "type" : "ControlElement", + "id" : "acm012198jsd", + "name" : "format" + }, + "acm012199jsd" : { + "type" : "ControlElement", + "id" : "acm012199jsd", + "name" : "getDescription" + }, + "acm012200jsd" : { + "type" : "ControlElement", + "id" : "acm012200jsd", + "name" : "getExampleInput" + }, + "acm012201jsd" : { + "type" : "ControlElement", + "id" : "acm012201jsd", + "name" : "abbreviateAuthor" + }, + "acm012202jsd" : { + "type" : "ClassUnit", + "id" : "acm012202jsd", + "name" : "MinifyNameListFormatter", + "compilationUnitId" : "acm012190jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012196jsd", "acm012197jsd", "acm012198jsd", "acm012199jsd", "acm012200jsd", "acm012201jsd" ] + }, + "acm012203jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012203jsd", + "name" : "TruncateFormatter", + "parentId" : "acm012195jsd", + "content" : [ "acm012215jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "formatter", "minifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012204jsd" : { + "type" : "CodePackage", + "id" : "acm012204jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012205jsd" ] + }, + "acm012205jsd" : { + "type" : "CodePackage", + "id" : "acm012205jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012206jsd" ] + }, + "acm012206jsd" : { + "type" : "CodePackage", + "id" : "acm012206jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012207jsd" ] + }, + "acm012207jsd" : { + "type" : "CodePackage", + "id" : "acm012207jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm012208jsd" ] + }, + "acm012208jsd" : { + "type" : "CodePackage", + "id" : "acm012208jsd", + "name" : "minifier", + "parentId" : null, + "content" : [ "acm012203jsd" ] + }, + "acm012209jsd" : { + "type" : "ControlElement", + "id" : "acm012209jsd", + "name" : "TruncateFormatter" + }, + "acm012210jsd" : { + "type" : "ControlElement", + "id" : "acm012210jsd", + "name" : "getName" + }, + "acm012211jsd" : { + "type" : "ControlElement", + "id" : "acm012211jsd", + "name" : "getKey" + }, + "acm012212jsd" : { + "type" : "ControlElement", + "id" : "acm012212jsd", + "name" : "format" + }, + "acm012213jsd" : { + "type" : "ControlElement", + "id" : "acm012213jsd", + "name" : "getDescription" + }, + "acm012214jsd" : { + "type" : "ControlElement", + "id" : "acm012214jsd", + "name" : "getExampleInput" + }, + "acm012215jsd" : { + "type" : "ClassUnit", + "id" : "acm012215jsd", + "name" : "TruncateFormatter", + "compilationUnitId" : "acm012203jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012209jsd", "acm012210jsd", "acm012211jsd", "acm012212jsd", "acm012213jsd", "acm012214jsd" ] + }, + "acm012216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012216jsd", + "name" : "GitHandler", + "parentId" : "acm012220jsd", + "content" : [ "acm012231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "git" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012217jsd" : { + "type" : "CodePackage", + "id" : "acm012217jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012218jsd" ] + }, + "acm012218jsd" : { + "type" : "CodePackage", + "id" : "acm012218jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012219jsd" ] + }, + "acm012219jsd" : { + "type" : "CodePackage", + "id" : "acm012219jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012220jsd" ] + }, + "acm012220jsd" : { + "type" : "CodePackage", + "id" : "acm012220jsd", + "name" : "git", + "parentId" : "acm001340jsd", + "content" : [ "acm012216jsd", "acm012232jsd", "acm024014jsd", "acm024024jsd" ] + }, + "acm012221jsd" : { + "type" : "ControlElement", + "id" : "acm012221jsd", + "name" : "GitHandler" + }, + "acm012222jsd" : { + "type" : "ControlElement", + "id" : "acm012222jsd", + "name" : "setupGitIgnore" + }, + "acm012223jsd" : { + "type" : "ControlElement", + "id" : "acm012223jsd", + "name" : "isGitRepository" + }, + "acm012224jsd" : { + "type" : "ControlElement", + "id" : "acm012224jsd", + "name" : "checkoutBranch" + }, + "acm012225jsd" : { + "type" : "ControlElement", + "id" : "acm012225jsd", + "name" : "getRefForBranch" + }, + "acm012226jsd" : { + "type" : "ControlElement", + "id" : "acm012226jsd", + "name" : "createCommitOnCurrentBranch" + }, + "acm012227jsd" : { + "type" : "ControlElement", + "id" : "acm012227jsd", + "name" : "mergeBranches" + }, + "acm012228jsd" : { + "type" : "ControlElement", + "id" : "acm012228jsd", + "name" : "pushCommitsToRemoteRepository" + }, + "acm012229jsd" : { + "type" : "ControlElement", + "id" : "acm012229jsd", + "name" : "pullOnCurrentBranch" + }, + "acm012230jsd" : { + "type" : "ControlElement", + "id" : "acm012230jsd", + "name" : "getCurrentlyCheckedOutBranch" + }, + "acm012231jsd" : { + "type" : "ClassUnit", + "id" : "acm012231jsd", + "name" : "GitHandler", + "compilationUnitId" : "acm012216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012231jsd" ], + "content" : [ "acm012221jsd", "acm012222jsd", "acm012223jsd", "acm012224jsd", "acm012225jsd", "acm012226jsd", "acm012227jsd", "acm012228jsd", "acm012229jsd", "acm012230jsd" ] + }, + "acm012232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012232jsd", + "name" : "SlrGitHandler", + "parentId" : "acm012220jsd", + "content" : [ "acm012242jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "git" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012233jsd" : { + "type" : "CodePackage", + "id" : "acm012233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012234jsd" ] + }, + "acm012234jsd" : { + "type" : "CodePackage", + "id" : "acm012234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012235jsd" ] + }, + "acm012235jsd" : { + "type" : "CodePackage", + "id" : "acm012235jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012236jsd" ] + }, + "acm012236jsd" : { + "type" : "CodePackage", + "id" : "acm012236jsd", + "name" : "git", + "parentId" : null, + "content" : [ "acm012232jsd" ] + }, + "acm012237jsd" : { + "type" : "ControlElement", + "id" : "acm012237jsd", + "name" : "SlrGitHandler" + }, + "acm012238jsd" : { + "type" : "ControlElement", + "id" : "acm012238jsd", + "name" : "appendLatestSearchResultsOntoCurrentBranch" + }, + "acm012239jsd" : { + "type" : "ControlElement", + "id" : "acm012239jsd", + "name" : "calculatePatchOfNewSearchResults" + }, + "acm012240jsd" : { + "type" : "ControlElement", + "id" : "acm012240jsd", + "name" : "parsePatchForAddedEntries" + }, + "acm012241jsd" : { + "type" : "ControlElement", + "id" : "acm012241jsd", + "name" : "applyPatch" + }, + "acm012242jsd" : { + "type" : "ClassUnit", + "id" : "acm012242jsd", + "name" : "SlrGitHandler", + "compilationUnitId" : "acm012232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012231jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012237jsd", "acm012238jsd", "acm012239jsd", "acm012240jsd", "acm012241jsd" ] + }, + "acm012243jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012243jsd", + "name" : "DefaultGroupsFactory", + "parentId" : "acm012247jsd", + "content" : [ "acm012250jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012244jsd" : { + "type" : "CodePackage", + "id" : "acm012244jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012245jsd" ] + }, + "acm012245jsd" : { + "type" : "CodePackage", + "id" : "acm012245jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012246jsd" ] + }, + "acm012246jsd" : { + "type" : "CodePackage", + "id" : "acm012246jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012247jsd" ] + }, + "acm012247jsd" : { + "type" : "CodePackage", + "id" : "acm012247jsd", + "name" : "groups", + "parentId" : "acm001340jsd", + "content" : [ "acm012243jsd" ] + }, + "acm012248jsd" : { + "type" : "ControlElement", + "id" : "acm012248jsd", + "name" : "DefaultGroupsFactory" + }, + "acm012249jsd" : { + "type" : "ControlElement", + "id" : "acm012249jsd", + "name" : "getAllEntriesGroup" + }, + "acm012250jsd" : { + "type" : "ClassUnit", + "id" : "acm012250jsd", + "name" : "DefaultGroupsFactory", + "compilationUnitId" : "acm012243jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019119jsd" ], + "content" : [ "acm012248jsd", "acm012249jsd" ] + }, + "acm012251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012251jsd", + "name" : "HelpFile", + "parentId" : "acm012255jsd", + "content" : [ "acm012258jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012252jsd" : { + "type" : "CodePackage", + "id" : "acm012252jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012253jsd" ] + }, + "acm012253jsd" : { + "type" : "CodePackage", + "id" : "acm012253jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012254jsd" ] + }, + "acm012254jsd" : { + "type" : "CodePackage", + "id" : "acm012254jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012255jsd" ] + }, + "acm012255jsd" : { + "type" : "CodePackage", + "id" : "acm012255jsd", + "name" : "help", + "parentId" : "acm001340jsd", + "content" : [ "acm012251jsd", "acm024034jsd" ] + }, + "acm012256jsd" : { + "type" : "ControlElement", + "id" : "acm012256jsd", + "name" : "HelpFile" + }, + "acm012257jsd" : { + "type" : "ControlElement", + "id" : "acm012257jsd", + "name" : "getPageName" + }, + "acm012258jsd" : { + "type" : "ClassUnit", + "id" : "acm012258jsd", + "name" : "HelpFile", + "compilationUnitId" : "acm012251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012256jsd", "acm012257jsd" ] + }, + "acm012259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012259jsd", + "name" : "AuthorListParser", + "parentId" : "acm012263jsd", + "content" : [ "acm012269jsd", "acm012270jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012260jsd" : { + "type" : "CodePackage", + "id" : "acm012260jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012261jsd" ] + }, + "acm012261jsd" : { + "type" : "CodePackage", + "id" : "acm012261jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012262jsd" ] + }, + "acm012262jsd" : { + "type" : "CodePackage", + "id" : "acm012262jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012263jsd" ] + }, + "acm012263jsd" : { + "type" : "CodePackage", + "id" : "acm012263jsd", + "name" : "importer", + "parentId" : "acm001340jsd", + "content" : [ "acm012259jsd", "acm012271jsd", "acm012280jsd", "acm012287jsd", "acm012297jsd", "acm012306jsd", "acm012315jsd", "acm012324jsd", "acm012333jsd", "acm012341jsd", "acm012354jsd", "acm012361jsd", "acm012371jsd", "acm012379jsd", "acm012390jsd", "acm012399jsd", "acm012408jsd", "acm012413jsd", "acm012433jsd", "acm012456jsd", "acm012468jsd", "acm012477jsd", "acm012486jsd", "acm012496jsd", "acm012507jsd", "acm012516jsd", "acm012524jsd", "acm012557jsd", "acm012564jsd", "acm012572jsd", "acm012583jsd", "acm012592jsd", "acm024042jsd", "acm024052jsd", "acm024060jsd", "acm024068jsd", "acm024078jsd", "acm024085jsd", "acm024096jsd", "acm024107jsd", "acm024124jsd", "acm024140jsd", "acm024148jsd", "acm024163jsd", "acm012613jsd", "acm013673jsd", "acm014380jsd" ] + }, + "acm012264jsd" : { + "type" : "ControlElement", + "id" : "acm012264jsd", + "name" : "buildWithAffix" + }, + "acm012265jsd" : { + "type" : "ControlElement", + "id" : "acm012265jsd", + "name" : "parse" + }, + "acm012266jsd" : { + "type" : "ControlElement", + "id" : "acm012266jsd", + "name" : "getAuthor" + }, + "acm012267jsd" : { + "type" : "ControlElement", + "id" : "acm012267jsd", + "name" : "concatTokens" + }, + "acm012268jsd" : { + "type" : "ControlElement", + "id" : "acm012268jsd", + "name" : "getToken" + }, + "acm012269jsd" : { + "type" : "ClassUnit", + "id" : "acm012269jsd", + "name" : "AuthorListParser", + "compilationUnitId" : "acm012259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012270jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm012264jsd", "acm012265jsd", "acm012266jsd", "acm012267jsd", "acm012268jsd" ] + }, + "acm012270jsd" : { + "type" : "ClassUnit", + "id" : "acm012270jsd", + "name" : "Token", + "compilationUnitId" : "acm012259jsd", + "parentDatatypeId" : "acm012269jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm012271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012271jsd", + "name" : "CompositeIdFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012279jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012272jsd" : { + "type" : "CodePackage", + "id" : "acm012272jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012273jsd" ] + }, + "acm012273jsd" : { + "type" : "CodePackage", + "id" : "acm012273jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012274jsd" ] + }, + "acm012274jsd" : { + "type" : "CodePackage", + "id" : "acm012274jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012275jsd" ] + }, + "acm012275jsd" : { + "type" : "CodePackage", + "id" : "acm012275jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012271jsd" ] + }, + "acm012276jsd" : { + "type" : "ControlElement", + "id" : "acm012276jsd", + "name" : "CompositeIdFetcher" + }, + "acm012277jsd" : { + "type" : "ControlElement", + "id" : "acm012277jsd", + "name" : "performSearchById" + }, + "acm012278jsd" : { + "type" : "ControlElement", + "id" : "acm012278jsd", + "name" : "getName" + }, + "acm012279jsd" : { + "type" : "ClassUnit", + "id" : "acm012279jsd", + "name" : "CompositeIdFetcher", + "compilationUnitId" : "acm012271jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012702jsd", "acm013001jsd", "acm013367jsd", "acm013382jsd", "acm018267jsd", "acm018843jsd", "acm018865jsd", "acm018894jsd" ], + "content" : [ "acm012276jsd", "acm012277jsd", "acm012278jsd" ] + }, + "acm012280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012280jsd", + "name" : "EntryBasedFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012286jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012281jsd" : { + "type" : "CodePackage", + "id" : "acm012281jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012282jsd" ] + }, + "acm012282jsd" : { + "type" : "CodePackage", + "id" : "acm012282jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012283jsd" ] + }, + "acm012283jsd" : { + "type" : "CodePackage", + "id" : "acm012283jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012284jsd" ] + }, + "acm012284jsd" : { + "type" : "CodePackage", + "id" : "acm012284jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012280jsd" ] + }, + "acm012285jsd" : { + "type" : "ControlElement", + "id" : "acm012285jsd", + "name" : "performSearch" + }, + "acm012286jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012286jsd", + "name" : "EntryBasedFetcher", + "compilationUnitId" : "acm012280jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012591jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm018267jsd" ], + "content" : [ "acm012285jsd" ] + }, + "acm012287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012287jsd", + "name" : "EntryBasedParserFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012296jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012288jsd" : { + "type" : "CodePackage", + "id" : "acm012288jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012289jsd" ] + }, + "acm012289jsd" : { + "type" : "CodePackage", + "id" : "acm012289jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012290jsd" ] + }, + "acm012290jsd" : { + "type" : "CodePackage", + "id" : "acm012290jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012291jsd" ] + }, + "acm012291jsd" : { + "type" : "CodePackage", + "id" : "acm012291jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012287jsd" ] + }, + "acm012292jsd" : { + "type" : "ControlElement", + "id" : "acm012292jsd", + "name" : "getURLForEntry" + }, + "acm012293jsd" : { + "type" : "ControlElement", + "id" : "acm012293jsd", + "name" : "getParser" + }, + "acm012294jsd" : { + "type" : "ControlElement", + "id" : "acm012294jsd", + "name" : "doPostCleanup" + }, + "acm012295jsd" : { + "type" : "ControlElement", + "id" : "acm012295jsd", + "name" : "performSearch" + }, + "acm012296jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012296jsd", + "name" : "EntryBasedParserFetcher", + "compilationUnitId" : "acm012287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm018267jsd" ], + "content" : [ "acm012292jsd", "acm012293jsd", "acm012294jsd", "acm012295jsd" ] + }, + "acm012297jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012297jsd", + "name" : "FetcherClientException", + "parentId" : "acm012263jsd", + "content" : [ "acm012305jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012298jsd" : { + "type" : "CodePackage", + "id" : "acm012298jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012299jsd" ] + }, + "acm012299jsd" : { + "type" : "CodePackage", + "id" : "acm012299jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012300jsd" ] + }, + "acm012300jsd" : { + "type" : "CodePackage", + "id" : "acm012300jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012301jsd" ] + }, + "acm012301jsd" : { + "type" : "CodePackage", + "id" : "acm012301jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012297jsd" ] + }, + "acm012302jsd" : { + "type" : "ControlElement", + "id" : "acm012302jsd", + "name" : "FetcherClientException" + }, + "acm012303jsd" : { + "type" : "ControlElement", + "id" : "acm012303jsd", + "name" : "FetcherClientException" + }, + "acm012304jsd" : { + "type" : "ControlElement", + "id" : "acm012304jsd", + "name" : "FetcherClientException" + }, + "acm012305jsd" : { + "type" : "ClassUnit", + "id" : "acm012305jsd", + "name" : "FetcherClientException", + "compilationUnitId" : "acm012297jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012314jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012302jsd", "acm012303jsd", "acm012304jsd" ] + }, + "acm012306jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012306jsd", + "name" : "FetcherException", + "parentId" : "acm012263jsd", + "content" : [ "acm012314jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012307jsd" : { + "type" : "CodePackage", + "id" : "acm012307jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012308jsd" ] + }, + "acm012308jsd" : { + "type" : "CodePackage", + "id" : "acm012308jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012309jsd" ] + }, + "acm012309jsd" : { + "type" : "CodePackage", + "id" : "acm012309jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012310jsd" ] + }, + "acm012310jsd" : { + "type" : "CodePackage", + "id" : "acm012310jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012306jsd" ] + }, + "acm012311jsd" : { + "type" : "ControlElement", + "id" : "acm012311jsd", + "name" : "FetcherException" + }, + "acm012312jsd" : { + "type" : "ControlElement", + "id" : "acm012312jsd", + "name" : "FetcherException" + }, + "acm012313jsd" : { + "type" : "ControlElement", + "id" : "acm012313jsd", + "name" : "FetcherException" + }, + "acm012314jsd" : { + "type" : "ClassUnit", + "id" : "acm012314jsd", + "name" : "FetcherException", + "compilationUnitId" : "acm012306jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010366jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012311jsd", "acm012312jsd", "acm012313jsd" ] + }, + "acm012315jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012315jsd", + "name" : "FetcherResult", + "parentId" : "acm012263jsd", + "content" : [ "acm012323jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012316jsd" : { + "type" : "CodePackage", + "id" : "acm012316jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012317jsd" ] + }, + "acm012317jsd" : { + "type" : "CodePackage", + "id" : "acm012317jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012318jsd" ] + }, + "acm012318jsd" : { + "type" : "CodePackage", + "id" : "acm012318jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012319jsd" ] + }, + "acm012319jsd" : { + "type" : "CodePackage", + "id" : "acm012319jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012315jsd" ] + }, + "acm012320jsd" : { + "type" : "ControlElement", + "id" : "acm012320jsd", + "name" : "FetcherResult" + }, + "acm012321jsd" : { + "type" : "ControlElement", + "id" : "acm012321jsd", + "name" : "getTrust" + }, + "acm012322jsd" : { + "type" : "ControlElement", + "id" : "acm012322jsd", + "name" : "getSource" + }, + "acm012323jsd" : { + "type" : "ClassUnit", + "id" : "acm012323jsd", + "name" : "FetcherResult", + "compilationUnitId" : "acm012315jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013325jsd" ], + "content" : [ "acm012320jsd", "acm012321jsd", "acm012322jsd" ] + }, + "acm012324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012324jsd", + "name" : "FetcherServerException", + "parentId" : "acm012263jsd", + "content" : [ "acm012332jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012325jsd" : { + "type" : "CodePackage", + "id" : "acm012325jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012326jsd" ] + }, + "acm012326jsd" : { + "type" : "CodePackage", + "id" : "acm012326jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012327jsd" ] + }, + "acm012327jsd" : { + "type" : "CodePackage", + "id" : "acm012327jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012328jsd" ] + }, + "acm012328jsd" : { + "type" : "CodePackage", + "id" : "acm012328jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012324jsd" ] + }, + "acm012329jsd" : { + "type" : "ControlElement", + "id" : "acm012329jsd", + "name" : "FetcherServerException" + }, + "acm012330jsd" : { + "type" : "ControlElement", + "id" : "acm012330jsd", + "name" : "FetcherServerException" + }, + "acm012331jsd" : { + "type" : "ControlElement", + "id" : "acm012331jsd", + "name" : "FetcherServerException" + }, + "acm012332jsd" : { + "type" : "ClassUnit", + "id" : "acm012332jsd", + "name" : "FetcherServerException", + "compilationUnitId" : "acm012324jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012314jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012329jsd", "acm012330jsd", "acm012331jsd" ] + }, + "acm012333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012333jsd", + "name" : "FulltextFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012340jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012334jsd" : { + "type" : "CodePackage", + "id" : "acm012334jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012335jsd" ] + }, + "acm012335jsd" : { + "type" : "CodePackage", + "id" : "acm012335jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012336jsd" ] + }, + "acm012336jsd" : { + "type" : "CodePackage", + "id" : "acm012336jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012337jsd" ] + }, + "acm012337jsd" : { + "type" : "CodePackage", + "id" : "acm012337jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012333jsd" ] + }, + "acm012338jsd" : { + "type" : "ControlElement", + "id" : "acm012338jsd", + "name" : "findFullText" + }, + "acm012339jsd" : { + "type" : "ControlElement", + "id" : "acm012339jsd", + "name" : "getTrustLevel" + }, + "acm012340jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012340jsd", + "name" : "FulltextFetcher", + "compilationUnitId" : "acm012333jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013325jsd", "acm018267jsd" ], + "content" : [ "acm012338jsd", "acm012339jsd" ] + }, + "acm012341jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012341jsd", + "name" : "FulltextFetchers", + "parentId" : "acm012263jsd", + "content" : [ "acm012353jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012342jsd" : { + "type" : "CodePackage", + "id" : "acm012342jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012343jsd" ] + }, + "acm012343jsd" : { + "type" : "CodePackage", + "id" : "acm012343jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012344jsd" ] + }, + "acm012344jsd" : { + "type" : "CodePackage", + "id" : "acm012344jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012345jsd" ] + }, + "acm012345jsd" : { + "type" : "CodePackage", + "id" : "acm012345jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012341jsd" ] + }, + "acm012346jsd" : { + "type" : "ControlElement", + "id" : "acm012346jsd", + "name" : "FulltextFetchers" + }, + "acm012347jsd" : { + "type" : "ControlElement", + "id" : "acm012347jsd", + "name" : "FulltextFetchers" + }, + "acm012348jsd" : { + "type" : "ControlElement", + "id" : "acm012348jsd", + "name" : "findFullTextPDF" + }, + "acm012349jsd" : { + "type" : "ControlElement", + "id" : "acm012349jsd", + "name" : "findDoiForEntry" + }, + "acm012350jsd" : { + "type" : "ControlElement", + "id" : "acm012350jsd", + "name" : "getResults" + }, + "acm012351jsd" : { + "type" : "ControlElement", + "id" : "acm012351jsd", + "name" : "getCallable" + }, + "acm012352jsd" : { + "type" : "ControlElement", + "id" : "acm012352jsd", + "name" : "getCallables" + }, + "acm012353jsd" : { + "type" : "ClassUnit", + "id" : "acm012353jsd", + "name" : "FulltextFetchers", + "compilationUnitId" : "acm012341jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012323jsd", "acm012340jsd", "acm012353jsd", "acm012467jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm012346jsd", "acm012347jsd", "acm012348jsd", "acm012349jsd", "acm012350jsd", "acm012351jsd", "acm012352jsd" ] + }, + "acm012354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012354jsd", + "name" : "IdBasedFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012360jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012355jsd" : { + "type" : "CodePackage", + "id" : "acm012355jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012356jsd" ] + }, + "acm012356jsd" : { + "type" : "CodePackage", + "id" : "acm012356jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012357jsd" ] + }, + "acm012357jsd" : { + "type" : "CodePackage", + "id" : "acm012357jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012358jsd" ] + }, + "acm012358jsd" : { + "type" : "CodePackage", + "id" : "acm012358jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012354jsd" ] + }, + "acm012359jsd" : { + "type" : "ControlElement", + "id" : "acm012359jsd", + "name" : "performSearchById" + }, + "acm012360jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012360jsd", + "name" : "IdBasedFetcher", + "compilationUnitId" : "acm012354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012591jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm018267jsd" ], + "content" : [ "acm012359jsd" ] + }, + "acm012361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012361jsd", + "name" : "IdBasedParserFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012370jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012362jsd" : { + "type" : "CodePackage", + "id" : "acm012362jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012363jsd" ] + }, + "acm012363jsd" : { + "type" : "CodePackage", + "id" : "acm012363jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012364jsd" ] + }, + "acm012364jsd" : { + "type" : "CodePackage", + "id" : "acm012364jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012365jsd" ] + }, + "acm012365jsd" : { + "type" : "CodePackage", + "id" : "acm012365jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012361jsd" ] + }, + "acm012366jsd" : { + "type" : "ControlElement", + "id" : "acm012366jsd", + "name" : "getUrlForIdentifier" + }, + "acm012367jsd" : { + "type" : "ControlElement", + "id" : "acm012367jsd", + "name" : "getParser" + }, + "acm012368jsd" : { + "type" : "ControlElement", + "id" : "acm012368jsd", + "name" : "doPostCleanup" + }, + "acm012369jsd" : { + "type" : "ControlElement", + "id" : "acm012369jsd", + "name" : "performSearchById" + }, + "acm012370jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012370jsd", + "name" : "IdBasedParserFetcher", + "compilationUnitId" : "acm012361jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012360jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012370jsd", "acm012515jsd", "acm012523jsd", "acm018267jsd" ], + "content" : [ "acm012366jsd", "acm012367jsd", "acm012368jsd", "acm012369jsd" ] + }, + "acm012371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012371jsd", + "name" : "IdFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012378jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012372jsd" : { + "type" : "CodePackage", + "id" : "acm012372jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012373jsd" ] + }, + "acm012373jsd" : { + "type" : "CodePackage", + "id" : "acm012373jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012374jsd" ] + }, + "acm012374jsd" : { + "type" : "CodePackage", + "id" : "acm012374jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012375jsd" ] + }, + "acm012375jsd" : { + "type" : "CodePackage", + "id" : "acm012375jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012371jsd" ] + }, + "acm012376jsd" : { + "type" : "ControlElement", + "id" : "acm012376jsd", + "name" : "findIdentifier" + }, + "acm012377jsd" : { + "type" : "ControlElement", + "id" : "acm012377jsd", + "name" : "getIdentifierName" + }, + "acm012378jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012378jsd", + "name" : "IdFetcher", + "compilationUnitId" : "acm012371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012591jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm018267jsd", "acm018930jsd" ], + "content" : [ "acm012376jsd", "acm012377jsd" ] + }, + "acm012379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012379jsd", + "name" : "IdParserFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012389jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012380jsd" : { + "type" : "CodePackage", + "id" : "acm012380jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012381jsd" ] + }, + "acm012381jsd" : { + "type" : "CodePackage", + "id" : "acm012381jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012382jsd" ] + }, + "acm012382jsd" : { + "type" : "CodePackage", + "id" : "acm012382jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012383jsd" ] + }, + "acm012383jsd" : { + "type" : "CodePackage", + "id" : "acm012383jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012379jsd" ] + }, + "acm012384jsd" : { + "type" : "ControlElement", + "id" : "acm012384jsd", + "name" : "getURLForEntry" + }, + "acm012385jsd" : { + "type" : "ControlElement", + "id" : "acm012385jsd", + "name" : "getParser" + }, + "acm012386jsd" : { + "type" : "ControlElement", + "id" : "acm012386jsd", + "name" : "doPostCleanup" + }, + "acm012387jsd" : { + "type" : "ControlElement", + "id" : "acm012387jsd", + "name" : "extractIdentifier" + }, + "acm012388jsd" : { + "type" : "ControlElement", + "id" : "acm012388jsd", + "name" : "findIdentifier" + }, + "acm012389jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012389jsd", + "name" : "IdParserFetcher", + "compilationUnitId" : "acm012379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012378jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012389jsd", "acm012515jsd", "acm012523jsd", "acm018267jsd", "acm018930jsd" ], + "content" : [ "acm012384jsd", "acm012385jsd", "acm012386jsd", "acm012387jsd", "acm012388jsd" ] + }, + "acm012390jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012390jsd", + "name" : "ImportCleanup", + "parentId" : "acm012263jsd", + "content" : [ "acm012398jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012391jsd" : { + "type" : "CodePackage", + "id" : "acm012391jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012392jsd" ] + }, + "acm012392jsd" : { + "type" : "CodePackage", + "id" : "acm012392jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012393jsd" ] + }, + "acm012393jsd" : { + "type" : "CodePackage", + "id" : "acm012393jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012394jsd" ] + }, + "acm012394jsd" : { + "type" : "CodePackage", + "id" : "acm012394jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012390jsd" ] + }, + "acm012395jsd" : { + "type" : "ControlElement", + "id" : "acm012395jsd", + "name" : "ImportCleanup" + }, + "acm012396jsd" : { + "type" : "ControlElement", + "id" : "acm012396jsd", + "name" : "doPostCleanup" + }, + "acm012397jsd" : { + "type" : "ControlElement", + "id" : "acm012397jsd", + "name" : "doPostCleanup" + }, + "acm012398jsd" : { + "type" : "ClassUnit", + "id" : "acm012398jsd", + "name" : "ImportCleanup", + "compilationUnitId" : "acm012390jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011131jsd", "acm011138jsd", "acm018032jsd", "acm018267jsd" ], + "content" : [ "acm012395jsd", "acm012396jsd", "acm012397jsd" ] + }, + "acm012399jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012399jsd", + "name" : "ImportException", + "parentId" : "acm012263jsd", + "content" : [ "acm012407jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012400jsd" : { + "type" : "CodePackage", + "id" : "acm012400jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012401jsd" ] + }, + "acm012401jsd" : { + "type" : "CodePackage", + "id" : "acm012401jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012402jsd" ] + }, + "acm012402jsd" : { + "type" : "CodePackage", + "id" : "acm012402jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012403jsd" ] + }, + "acm012403jsd" : { + "type" : "CodePackage", + "id" : "acm012403jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012399jsd" ] + }, + "acm012404jsd" : { + "type" : "ControlElement", + "id" : "acm012404jsd", + "name" : "ImportException" + }, + "acm012405jsd" : { + "type" : "ControlElement", + "id" : "acm012405jsd", + "name" : "ImportException" + }, + "acm012406jsd" : { + "type" : "ControlElement", + "id" : "acm012406jsd", + "name" : "ImportException" + }, + "acm012407jsd" : { + "type" : "ClassUnit", + "id" : "acm012407jsd", + "name" : "ImportException", + "compilationUnitId" : "acm012399jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010366jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012404jsd", "acm012405jsd", "acm012406jsd" ] + }, + "acm012408jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012408jsd", + "name" : "ImportFormatPreferences", + "parentId" : "acm012263jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012409jsd" : { + "type" : "CodePackage", + "id" : "acm012409jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012410jsd" ] + }, + "acm012410jsd" : { + "type" : "CodePackage", + "id" : "acm012410jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012411jsd" ] + }, + "acm012411jsd" : { + "type" : "CodePackage", + "id" : "acm012411jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012412jsd" ] + }, + "acm012412jsd" : { + "type" : "CodePackage", + "id" : "acm012412jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012408jsd" ] + }, + "acm012413jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012413jsd", + "name" : "ImportFormatReader", + "parentId" : "acm012263jsd", + "content" : [ "acm012428jsd", "acm012430jsd", "acm012432jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012414jsd" : { + "type" : "CodePackage", + "id" : "acm012414jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012415jsd" ] + }, + "acm012415jsd" : { + "type" : "CodePackage", + "id" : "acm012415jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012416jsd" ] + }, + "acm012416jsd" : { + "type" : "CodePackage", + "id" : "acm012416jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012417jsd" ] + }, + "acm012417jsd" : { + "type" : "CodePackage", + "id" : "acm012417jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012413jsd" ] + }, + "acm012418jsd" : { + "type" : "ControlElement", + "id" : "acm012418jsd", + "name" : "resetImportFormats" + }, + "acm012419jsd" : { + "type" : "ControlElement", + "id" : "acm012419jsd", + "name" : "getByCliId" + }, + "acm012420jsd" : { + "type" : "ControlElement", + "id" : "acm012420jsd", + "name" : "importFromFile" + }, + "acm012421jsd" : { + "type" : "ControlElement", + "id" : "acm012421jsd", + "name" : "getImportFormats" + }, + "acm012422jsd" : { + "type" : "ControlElement", + "id" : "acm012422jsd", + "name" : "getImportFormatList" + }, + "acm012423jsd" : { + "type" : "ControlElement", + "id" : "acm012423jsd", + "name" : "UnknownFormatImport" + }, + "acm012424jsd" : { + "type" : "ControlElement", + "id" : "acm012424jsd", + "name" : "importUnknownFormat" + }, + "acm012425jsd" : { + "type" : "ControlElement", + "id" : "acm012425jsd", + "name" : "importUnknownFormat" + }, + "acm012426jsd" : { + "type" : "ControlElement", + "id" : "acm012426jsd", + "name" : "apply" + }, + "acm012427jsd" : { + "type" : "ControlElement", + "id" : "acm012427jsd", + "name" : "importUnknownFormat" + }, + "acm012428jsd" : { + "type" : "ClassUnit", + "id" : "acm012428jsd", + "name" : "ImportFormatReader", + "compilationUnitId" : "acm012413jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012407jsd", "acm012430jsd", "acm012432jsd", "acm012455jsd", "acm012467jsd", "acm012556jsd", "acm013692jsd", "acm013709jsd", "acm013781jsd", "acm013828jsd", "acm013855jsd", "acm013891jsd", "acm013918jsd", "acm013930jsd", "acm013950jsd", "acm014026jsd", "acm014049jsd", "acm014085jsd", "acm014124jsd", "acm014137jsd", "acm014161jsd", "acm014180jsd", "acm014197jsd", "acm014214jsd", "acm014233jsd", "acm014250jsd", "acm014286jsd", "acm014299jsd", "acm014311jsd", "acm018267jsd", "acm020693jsd" ], + "content" : [ "acm012418jsd", "acm012419jsd", "acm012420jsd", "acm012421jsd", "acm012422jsd", "acm012423jsd", "acm012424jsd", "acm012425jsd", "acm012426jsd", "acm012427jsd" ] + }, + "acm012429jsd" : { + "type" : "ControlElement", + "id" : "acm012429jsd", + "name" : "UnknownFormatImport" + }, + "acm012430jsd" : { + "type" : "ClassUnit", + "id" : "acm012430jsd", + "name" : "UnknownFormatImport", + "compilationUnitId" : "acm012413jsd", + "parentDatatypeId" : "acm012428jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd" ], + "content" : [ "acm012429jsd" ] + }, + "acm012431jsd" : { + "type" : "ControlElement", + "id" : "acm012431jsd", + "name" : "apply" + }, + "acm012432jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012432jsd", + "name" : "CheckedFunction", + "compilationUnitId" : "acm012413jsd", + "parentDatatypeId" : "acm012428jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012431jsd" ] + }, + "acm012433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012433jsd", + "name" : "Importer", + "parentId" : "acm012263jsd", + "content" : [ "acm012455jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012434jsd" : { + "type" : "CodePackage", + "id" : "acm012434jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012435jsd" ] + }, + "acm012435jsd" : { + "type" : "CodePackage", + "id" : "acm012435jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012436jsd" ] + }, + "acm012436jsd" : { + "type" : "CodePackage", + "id" : "acm012436jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012437jsd" ] + }, + "acm012437jsd" : { + "type" : "CodePackage", + "id" : "acm012437jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012433jsd" ] + }, + "acm012438jsd" : { + "type" : "ControlElement", + "id" : "acm012438jsd", + "name" : "isRecognizedFormat" + }, + "acm012439jsd" : { + "type" : "ControlElement", + "id" : "acm012439jsd", + "name" : "isRecognizedFormat" + }, + "acm012440jsd" : { + "type" : "ControlElement", + "id" : "acm012440jsd", + "name" : "isRecognizedFormat" + }, + "acm012441jsd" : { + "type" : "ControlElement", + "id" : "acm012441jsd", + "name" : "importDatabase" + }, + "acm012442jsd" : { + "type" : "ControlElement", + "id" : "acm012442jsd", + "name" : "importDatabase" + }, + "acm012443jsd" : { + "type" : "ControlElement", + "id" : "acm012443jsd", + "name" : "getCharset" + }, + "acm012444jsd" : { + "type" : "ControlElement", + "id" : "acm012444jsd", + "name" : "importDatabase" + }, + "acm012445jsd" : { + "type" : "ControlElement", + "id" : "acm012445jsd", + "name" : "getReader" + }, + "acm012446jsd" : { + "type" : "ControlElement", + "id" : "acm012446jsd", + "name" : "getReader" + }, + "acm012447jsd" : { + "type" : "ControlElement", + "id" : "acm012447jsd", + "name" : "getName" + }, + "acm012448jsd" : { + "type" : "ControlElement", + "id" : "acm012448jsd", + "name" : "getFileType" + }, + "acm012449jsd" : { + "type" : "ControlElement", + "id" : "acm012449jsd", + "name" : "getId" + }, + "acm012450jsd" : { + "type" : "ControlElement", + "id" : "acm012450jsd", + "name" : "getDescription" + }, + "acm012451jsd" : { + "type" : "ControlElement", + "id" : "acm012451jsd", + "name" : "hashCode" + }, + "acm012452jsd" : { + "type" : "ControlElement", + "id" : "acm012452jsd", + "name" : "equals" + }, + "acm012453jsd" : { + "type" : "ControlElement", + "id" : "acm012453jsd", + "name" : "toString" + }, + "acm012454jsd" : { + "type" : "ControlElement", + "id" : "acm012454jsd", + "name" : "compareTo" + }, + "acm012455jsd" : { + "type" : "ClassUnit", + "id" : "acm012455jsd", + "name" : "Importer", + "compilationUnitId" : "acm012433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm012556jsd", "acm017320jsd" ], + "content" : [ "acm012438jsd", "acm012439jsd", "acm012440jsd", "acm012441jsd", "acm012442jsd", "acm012443jsd", "acm012444jsd", "acm012445jsd", "acm012446jsd", "acm012447jsd", "acm012448jsd", "acm012449jsd", "acm012450jsd", "acm012451jsd", "acm012452jsd", "acm012453jsd", "acm012454jsd" ] + }, + "acm012456jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012456jsd", + "name" : "ImporterPreferences", + "parentId" : "acm012263jsd", + "content" : [ "acm012467jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012457jsd" : { + "type" : "CodePackage", + "id" : "acm012457jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012458jsd" ] + }, + "acm012458jsd" : { + "type" : "CodePackage", + "id" : "acm012458jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012459jsd" ] + }, + "acm012459jsd" : { + "type" : "CodePackage", + "id" : "acm012459jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012460jsd" ] + }, + "acm012460jsd" : { + "type" : "CodePackage", + "id" : "acm012460jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012456jsd" ] + }, + "acm012461jsd" : { + "type" : "ControlElement", + "id" : "acm012461jsd", + "name" : "ImporterPreferences" + }, + "acm012462jsd" : { + "type" : "ControlElement", + "id" : "acm012462jsd", + "name" : "isGenerateNewKeyOnImport" + }, + "acm012463jsd" : { + "type" : "ControlElement", + "id" : "acm012463jsd", + "name" : "generateNewKeyOnImportProperty" + }, + "acm012464jsd" : { + "type" : "ControlElement", + "id" : "acm012464jsd", + "name" : "setGenerateNewKeyOnImport" + }, + "acm012465jsd" : { + "type" : "ControlElement", + "id" : "acm012465jsd", + "name" : "getApiKeys" + }, + "acm012466jsd" : { + "type" : "ControlElement", + "id" : "acm012466jsd", + "name" : "getCustomImportList" + }, + "acm012467jsd" : { + "type" : "ClassUnit", + "id" : "acm012467jsd", + "name" : "ImporterPreferences", + "compilationUnitId" : "acm012456jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013876jsd", "acm016608jsd" ], + "content" : [ "acm012461jsd", "acm012462jsd", "acm012463jsd", "acm012464jsd", "acm012465jsd", "acm012466jsd" ] + }, + "acm012468jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012468jsd", + "name" : "OpenDatabase", + "parentId" : "acm012263jsd", + "content" : [ "acm012476jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012469jsd" : { + "type" : "CodePackage", + "id" : "acm012469jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012470jsd" ] + }, + "acm012470jsd" : { + "type" : "CodePackage", + "id" : "acm012470jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012471jsd" ] + }, + "acm012471jsd" : { + "type" : "CodePackage", + "id" : "acm012471jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012472jsd" ] + }, + "acm012472jsd" : { + "type" : "CodePackage", + "id" : "acm012472jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012468jsd" ] + }, + "acm012473jsd" : { + "type" : "ControlElement", + "id" : "acm012473jsd", + "name" : "OpenDatabase" + }, + "acm012474jsd" : { + "type" : "ControlElement", + "id" : "acm012474jsd", + "name" : "loadDatabase" + }, + "acm012475jsd" : { + "type" : "ControlElement", + "id" : "acm012475jsd", + "name" : "performLoadDatabaseMigrations" + }, + "acm012476jsd" : { + "type" : "ClassUnit", + "id" : "acm012476jsd", + "name" : "OpenDatabase", + "compilationUnitId" : "acm012468jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013709jsd", "acm017788jsd", "acm017796jsd", "acm017824jsd", "acm017857jsd", "acm020693jsd" ], + "content" : [ "acm012473jsd", "acm012474jsd", "acm012475jsd" ] + }, + "acm012477jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012477jsd", + "name" : "OutputPrinter", + "parentId" : "acm012263jsd", + "content" : [ "acm012485jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012478jsd" : { + "type" : "CodePackage", + "id" : "acm012478jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012479jsd" ] + }, + "acm012479jsd" : { + "type" : "CodePackage", + "id" : "acm012479jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012480jsd" ] + }, + "acm012480jsd" : { + "type" : "CodePackage", + "id" : "acm012480jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012481jsd" ] + }, + "acm012481jsd" : { + "type" : "CodePackage", + "id" : "acm012481jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012477jsd" ] + }, + "acm012482jsd" : { + "type" : "ControlElement", + "id" : "acm012482jsd", + "name" : "setStatus" + }, + "acm012483jsd" : { + "type" : "ControlElement", + "id" : "acm012483jsd", + "name" : "showMessage" + }, + "acm012484jsd" : { + "type" : "ControlElement", + "id" : "acm012484jsd", + "name" : "showMessage" + }, + "acm012485jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012485jsd", + "name" : "OutputPrinter", + "compilationUnitId" : "acm012477jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012482jsd", "acm012483jsd", "acm012484jsd" ] + }, + "acm012486jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012486jsd", + "name" : "PagedSearchBasedFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012495jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012487jsd" : { + "type" : "CodePackage", + "id" : "acm012487jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012488jsd" ] + }, + "acm012488jsd" : { + "type" : "CodePackage", + "id" : "acm012488jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012489jsd" ] + }, + "acm012489jsd" : { + "type" : "CodePackage", + "id" : "acm012489jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012490jsd" ] + }, + "acm012490jsd" : { + "type" : "CodePackage", + "id" : "acm012490jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012486jsd" ] + }, + "acm012491jsd" : { + "type" : "ControlElement", + "id" : "acm012491jsd", + "name" : "performSearchPaged" + }, + "acm012492jsd" : { + "type" : "ControlElement", + "id" : "acm012492jsd", + "name" : "performSearchPaged" + }, + "acm012493jsd" : { + "type" : "ControlElement", + "id" : "acm012493jsd", + "name" : "getPageSize" + }, + "acm012494jsd" : { + "type" : "ControlElement", + "id" : "acm012494jsd", + "name" : "performSearch" + }, + "acm012495jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012495jsd", + "name" : "PagedSearchBasedFetcher", + "compilationUnitId" : "acm012486jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012571jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm018267jsd", "acm020222jsd" ], + "content" : [ "acm012491jsd", "acm012492jsd", "acm012493jsd", "acm012494jsd" ] + }, + "acm012496jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012496jsd", + "name" : "PagedSearchBasedParserFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012506jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012497jsd" : { + "type" : "CodePackage", + "id" : "acm012497jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012498jsd" ] + }, + "acm012498jsd" : { + "type" : "CodePackage", + "id" : "acm012498jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012499jsd" ] + }, + "acm012499jsd" : { + "type" : "CodePackage", + "id" : "acm012499jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012500jsd" ] + }, + "acm012500jsd" : { + "type" : "CodePackage", + "id" : "acm012500jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012496jsd" ] + }, + "acm012501jsd" : { + "type" : "ControlElement", + "id" : "acm012501jsd", + "name" : "performSearchPaged" + }, + "acm012502jsd" : { + "type" : "ControlElement", + "id" : "acm012502jsd", + "name" : "getBibEntries" + }, + "acm012503jsd" : { + "type" : "ControlElement", + "id" : "acm012503jsd", + "name" : "getURLForQuery" + }, + "acm012504jsd" : { + "type" : "ControlElement", + "id" : "acm012504jsd", + "name" : "getURLForQuery" + }, + "acm012505jsd" : { + "type" : "ControlElement", + "id" : "acm012505jsd", + "name" : "performSearch" + }, + "acm012506jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012506jsd", + "name" : "PagedSearchBasedParserFetcher", + "compilationUnitId" : "acm012496jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012495jsd", "acm012582jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm018267jsd", "acm020222jsd" ], + "content" : [ "acm012501jsd", "acm012502jsd", "acm012503jsd", "acm012504jsd", "acm012505jsd" ] + }, + "acm012507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012507jsd", + "name" : "ParseException", + "parentId" : "acm012263jsd", + "content" : [ "acm012515jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012508jsd" : { + "type" : "CodePackage", + "id" : "acm012508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012509jsd" ] + }, + "acm012509jsd" : { + "type" : "CodePackage", + "id" : "acm012509jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012510jsd" ] + }, + "acm012510jsd" : { + "type" : "CodePackage", + "id" : "acm012510jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012511jsd" ] + }, + "acm012511jsd" : { + "type" : "CodePackage", + "id" : "acm012511jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012507jsd" ] + }, + "acm012512jsd" : { + "type" : "ControlElement", + "id" : "acm012512jsd", + "name" : "ParseException" + }, + "acm012513jsd" : { + "type" : "ControlElement", + "id" : "acm012513jsd", + "name" : "ParseException" + }, + "acm012514jsd" : { + "type" : "ControlElement", + "id" : "acm012514jsd", + "name" : "ParseException" + }, + "acm012515jsd" : { + "type" : "ClassUnit", + "id" : "acm012515jsd", + "name" : "ParseException", + "compilationUnitId" : "acm012507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012512jsd", "acm012513jsd", "acm012514jsd" ] + }, + "acm012516jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012516jsd", + "name" : "Parser", + "parentId" : "acm012263jsd", + "content" : [ "acm012523jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012517jsd" : { + "type" : "CodePackage", + "id" : "acm012517jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012518jsd" ] + }, + "acm012518jsd" : { + "type" : "CodePackage", + "id" : "acm012518jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012519jsd" ] + }, + "acm012519jsd" : { + "type" : "CodePackage", + "id" : "acm012519jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012520jsd" ] + }, + "acm012520jsd" : { + "type" : "CodePackage", + "id" : "acm012520jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012516jsd" ] + }, + "acm012521jsd" : { + "type" : "ControlElement", + "id" : "acm012521jsd", + "name" : "parseEntries" + }, + "acm012522jsd" : { + "type" : "ControlElement", + "id" : "acm012522jsd", + "name" : "parseEntries" + }, + "acm012523jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012523jsd", + "name" : "Parser", + "compilationUnitId" : "acm012516jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm018267jsd" ], + "content" : [ "acm012521jsd", "acm012522jsd" ] + }, + "acm012524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012524jsd", + "name" : "ParserResult", + "parentId" : "acm012263jsd", + "content" : [ "acm012556jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012525jsd" : { + "type" : "CodePackage", + "id" : "acm012525jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012526jsd" ] + }, + "acm012526jsd" : { + "type" : "CodePackage", + "id" : "acm012526jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012527jsd" ] + }, + "acm012527jsd" : { + "type" : "CodePackage", + "id" : "acm012527jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012528jsd" ] + }, + "acm012528jsd" : { + "type" : "CodePackage", + "id" : "acm012528jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012524jsd" ] + }, + "acm012529jsd" : { + "type" : "ControlElement", + "id" : "acm012529jsd", + "name" : "ParserResult" + }, + "acm012530jsd" : { + "type" : "ControlElement", + "id" : "acm012530jsd", + "name" : "ParserResult" + }, + "acm012531jsd" : { + "type" : "ControlElement", + "id" : "acm012531jsd", + "name" : "ParserResult" + }, + "acm012532jsd" : { + "type" : "ControlElement", + "id" : "acm012532jsd", + "name" : "ParserResult" + }, + "acm012533jsd" : { + "type" : "ControlElement", + "id" : "acm012533jsd", + "name" : "fromErrorMessage" + }, + "acm012534jsd" : { + "type" : "ControlElement", + "id" : "acm012534jsd", + "name" : "getErrorMessage" + }, + "acm012535jsd" : { + "type" : "ControlElement", + "id" : "acm012535jsd", + "name" : "fromError" + }, + "acm012536jsd" : { + "type" : "ControlElement", + "id" : "acm012536jsd", + "name" : "toOpenTab" + }, + "acm012537jsd" : { + "type" : "ControlElement", + "id" : "acm012537jsd", + "name" : "setToOpenTab" + }, + "acm012538jsd" : { + "type" : "ControlElement", + "id" : "acm012538jsd", + "name" : "getDatabase" + }, + "acm012539jsd" : { + "type" : "ControlElement", + "id" : "acm012539jsd", + "name" : "getMetaData" + }, + "acm012540jsd" : { + "type" : "ControlElement", + "id" : "acm012540jsd", + "name" : "setMetaData" + }, + "acm012541jsd" : { + "type" : "ControlElement", + "id" : "acm012541jsd", + "name" : "getEntryTypes" + }, + "acm012542jsd" : { + "type" : "ControlElement", + "id" : "acm012542jsd", + "name" : "getPath" + }, + "acm012543jsd" : { + "type" : "ControlElement", + "id" : "acm012543jsd", + "name" : "setPath" + }, + "acm012544jsd" : { + "type" : "ControlElement", + "id" : "acm012544jsd", + "name" : "addWarning" + }, + "acm012545jsd" : { + "type" : "ControlElement", + "id" : "acm012545jsd", + "name" : "addException" + }, + "acm012546jsd" : { + "type" : "ControlElement", + "id" : "acm012546jsd", + "name" : "hasWarnings" + }, + "acm012547jsd" : { + "type" : "ControlElement", + "id" : "acm012547jsd", + "name" : "warnings" + }, + "acm012548jsd" : { + "type" : "ControlElement", + "id" : "acm012548jsd", + "name" : "isInvalid" + }, + "acm012549jsd" : { + "type" : "ControlElement", + "id" : "acm012549jsd", + "name" : "setInvalid" + }, + "acm012550jsd" : { + "type" : "ControlElement", + "id" : "acm012550jsd", + "name" : "getErrorMessage" + }, + "acm012551jsd" : { + "type" : "ControlElement", + "id" : "acm012551jsd", + "name" : "getDatabaseContext" + }, + "acm012552jsd" : { + "type" : "ControlElement", + "id" : "acm012552jsd", + "name" : "setDatabaseContext" + }, + "acm012553jsd" : { + "type" : "ControlElement", + "id" : "acm012553jsd", + "name" : "isEmpty" + }, + "acm012554jsd" : { + "type" : "ControlElement", + "id" : "acm012554jsd", + "name" : "wasChangedOnMigration" + }, + "acm012555jsd" : { + "type" : "ControlElement", + "id" : "acm012555jsd", + "name" : "setChangedOnMigration" + }, + "acm012556jsd" : { + "type" : "ClassUnit", + "id" : "acm012556jsd", + "name" : "ParserResult", + "compilationUnitId" : "acm012524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018289jsd", "acm019421jsd" ], + "content" : [ "acm012529jsd", "acm012530jsd", "acm012531jsd", "acm012532jsd", "acm012533jsd", "acm012534jsd", "acm012535jsd", "acm012536jsd", "acm012537jsd", "acm012538jsd", "acm012539jsd", "acm012540jsd", "acm012541jsd", "acm012542jsd", "acm012543jsd", "acm012544jsd", "acm012545jsd", "acm012546jsd", "acm012547jsd", "acm012548jsd", "acm012549jsd", "acm012550jsd", "acm012551jsd", "acm012552jsd", "acm012553jsd", "acm012554jsd", "acm012555jsd" ] + }, + "acm012557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012557jsd", + "name" : "QueryParser", + "parentId" : "acm012263jsd", + "content" : [ "acm012563jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012558jsd" : { + "type" : "CodePackage", + "id" : "acm012558jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012559jsd" ] + }, + "acm012559jsd" : { + "type" : "CodePackage", + "id" : "acm012559jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012560jsd" ] + }, + "acm012560jsd" : { + "type" : "CodePackage", + "id" : "acm012560jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012561jsd" ] + }, + "acm012561jsd" : { + "type" : "CodePackage", + "id" : "acm012561jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012557jsd" ] + }, + "acm012562jsd" : { + "type" : "ControlElement", + "id" : "acm012562jsd", + "name" : "parseQueryStringIntoComplexQuery" + }, + "acm012563jsd" : { + "type" : "ClassUnit", + "id" : "acm012563jsd", + "name" : "QueryParser", + "compilationUnitId" : "acm012557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012875jsd" ], + "content" : [ "acm012562jsd" ] + }, + "acm012564jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012564jsd", + "name" : "SearchBasedFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012571jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012565jsd" : { + "type" : "CodePackage", + "id" : "acm012565jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012566jsd" ] + }, + "acm012566jsd" : { + "type" : "CodePackage", + "id" : "acm012566jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012567jsd" ] + }, + "acm012567jsd" : { + "type" : "CodePackage", + "id" : "acm012567jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012568jsd" ] + }, + "acm012568jsd" : { + "type" : "CodePackage", + "id" : "acm012568jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012564jsd" ] + }, + "acm012569jsd" : { + "type" : "ControlElement", + "id" : "acm012569jsd", + "name" : "performSearch" + }, + "acm012570jsd" : { + "type" : "ControlElement", + "id" : "acm012570jsd", + "name" : "performSearch" + }, + "acm012571jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012571jsd", + "name" : "SearchBasedFetcher", + "compilationUnitId" : "acm012564jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012591jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm018267jsd" ], + "content" : [ "acm012569jsd", "acm012570jsd" ] + }, + "acm012572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012572jsd", + "name" : "SearchBasedParserFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012582jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012573jsd" : { + "type" : "CodePackage", + "id" : "acm012573jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012574jsd" ] + }, + "acm012574jsd" : { + "type" : "CodePackage", + "id" : "acm012574jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012575jsd" ] + }, + "acm012575jsd" : { + "type" : "CodePackage", + "id" : "acm012575jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012576jsd" ] + }, + "acm012576jsd" : { + "type" : "CodePackage", + "id" : "acm012576jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012572jsd" ] + }, + "acm012577jsd" : { + "type" : "ControlElement", + "id" : "acm012577jsd", + "name" : "performSearch" + }, + "acm012578jsd" : { + "type" : "ControlElement", + "id" : "acm012578jsd", + "name" : "getBibEntries" + }, + "acm012579jsd" : { + "type" : "ControlElement", + "id" : "acm012579jsd", + "name" : "getParser" + }, + "acm012580jsd" : { + "type" : "ControlElement", + "id" : "acm012580jsd", + "name" : "getURLForQuery" + }, + "acm012581jsd" : { + "type" : "ControlElement", + "id" : "acm012581jsd", + "name" : "doPostCleanup" + }, + "acm012582jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012582jsd", + "name" : "SearchBasedParserFetcher", + "compilationUnitId" : "acm012572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012571jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm018267jsd" ], + "content" : [ "acm012577jsd", "acm012578jsd", "acm012579jsd", "acm012580jsd", "acm012581jsd" ] + }, + "acm012583jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012583jsd", + "name" : "WebFetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012584jsd" : { + "type" : "CodePackage", + "id" : "acm012584jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012585jsd" ] + }, + "acm012585jsd" : { + "type" : "CodePackage", + "id" : "acm012585jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012586jsd" ] + }, + "acm012586jsd" : { + "type" : "CodePackage", + "id" : "acm012586jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012587jsd" ] + }, + "acm012587jsd" : { + "type" : "CodePackage", + "id" : "acm012587jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012583jsd" ] + }, + "acm012588jsd" : { + "type" : "ControlElement", + "id" : "acm012588jsd", + "name" : "getName" + }, + "acm012589jsd" : { + "type" : "ControlElement", + "id" : "acm012589jsd", + "name" : "getHelpPage" + }, + "acm012590jsd" : { + "type" : "ControlElement", + "id" : "acm012590jsd", + "name" : "getUrlDownload" + }, + "acm012591jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012591jsd", + "name" : "WebFetcher", + "compilationUnitId" : "acm012583jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm015926jsd" ], + "content" : [ "acm012588jsd", "acm012589jsd", "acm012590jsd" ] + }, + "acm012592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012592jsd", + "name" : "WebFetchers", + "parentId" : "acm012263jsd", + "content" : [ "acm012607jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012593jsd" : { + "type" : "CodePackage", + "id" : "acm012593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012594jsd" ] + }, + "acm012594jsd" : { + "type" : "CodePackage", + "id" : "acm012594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012595jsd" ] + }, + "acm012595jsd" : { + "type" : "CodePackage", + "id" : "acm012595jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012596jsd" ] + }, + "acm012596jsd" : { + "type" : "CodePackage", + "id" : "acm012596jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012592jsd" ] + }, + "acm012597jsd" : { + "type" : "ControlElement", + "id" : "acm012597jsd", + "name" : "WebFetchers" + }, + "acm012598jsd" : { + "type" : "ControlElement", + "id" : "acm012598jsd", + "name" : "getIdBasedFetcherForField" + }, + "acm012599jsd" : { + "type" : "ControlElement", + "id" : "acm012599jsd", + "name" : "getIdFetcherForIdentifier" + }, + "acm012600jsd" : { + "type" : "ControlElement", + "id" : "acm012600jsd", + "name" : "getIdFetcherForField" + }, + "acm012601jsd" : { + "type" : "ControlElement", + "id" : "acm012601jsd", + "name" : "getSearchBasedFetchers" + }, + "acm012602jsd" : { + "type" : "ControlElement", + "id" : "acm012602jsd", + "name" : "getIdBasedFetchers" + }, + "acm012603jsd" : { + "type" : "ControlElement", + "id" : "acm012603jsd", + "name" : "getEntryBasedFetchers" + }, + "acm012604jsd" : { + "type" : "ControlElement", + "id" : "acm012604jsd", + "name" : "getIdFetchers" + }, + "acm012605jsd" : { + "type" : "ControlElement", + "id" : "acm012605jsd", + "name" : "getFullTextFetchers" + }, + "acm012606jsd" : { + "type" : "ControlElement", + "id" : "acm012606jsd", + "name" : "getCustomizableKeyFetchers" + }, + "acm012607jsd" : { + "type" : "ClassUnit", + "id" : "acm012607jsd", + "name" : "WebFetchers", + "compilationUnitId" : "acm012592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012286jsd", "acm012340jsd", "acm012360jsd", "acm012378jsd", "acm012467jsd", "acm012571jsd", "acm012620jsd", "acm012629jsd", "acm012650jsd", "acm012702jsd", "acm012761jsd", "acm012790jsd", "acm012801jsd", "acm012827jsd", "acm012902jsd", "acm012920jsd", "acm012928jsd", "acm012941jsd", "acm012954jsd", "acm012969jsd", "acm012982jsd", "acm013001jsd", "acm013014jsd", "acm013073jsd", "acm013090jsd", "acm013105jsd", "acm013125jsd", "acm013151jsd", "acm013165jsd", "acm013181jsd", "acm013196jsd", "acm013220jsd", "acm013238jsd", "acm013250jsd", "acm013263jsd", "acm013278jsd", "acm013294jsd", "acm013305jsd", "acm013316jsd", "acm013339jsd", "acm013367jsd", "acm013382jsd", "acm014217jsd", "acm018022jsd", "acm018673jsd", "acm018865jsd", "acm018930jsd", "acm020848jsd" ], + "content" : [ "acm012597jsd", "acm012598jsd", "acm012599jsd", "acm012600jsd", "acm012601jsd", "acm012602jsd", "acm012603jsd", "acm012604jsd", "acm012605jsd", "acm012606jsd" ] + }, + "acm012608jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012608jsd", + "name" : "ACMPortalFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012620jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012609jsd" : { + "type" : "CodePackage", + "id" : "acm012609jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012610jsd" ] + }, + "acm012610jsd" : { + "type" : "CodePackage", + "id" : "acm012610jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012611jsd" ] + }, + "acm012611jsd" : { + "type" : "CodePackage", + "id" : "acm012611jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012612jsd" ] + }, + "acm012612jsd" : { + "type" : "CodePackage", + "id" : "acm012612jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012613jsd" ] + }, + "acm012613jsd" : { + "type" : "CodePackage", + "id" : "acm012613jsd", + "name" : "fetcher", + "parentId" : "acm012263jsd", + "content" : [ "acm012608jsd", "acm012621jsd", "acm012630jsd", "acm012641jsd", "acm012651jsd", "acm012737jsd", "acm012762jsd", "acm012771jsd", "acm012791jsd", "acm012802jsd", "acm012816jsd", "acm012828jsd", "acm012839jsd", "acm012892jsd", "acm012903jsd", "acm012921jsd", "acm012929jsd", "acm012942jsd", "acm012955jsd", "acm012970jsd", "acm012983jsd", "acm013002jsd", "acm013015jsd", "acm013033jsd", "acm013046jsd", "acm013063jsd", "acm013074jsd", "acm013091jsd", "acm013106jsd", "acm013126jsd", "acm013141jsd", "acm013152jsd", "acm013166jsd", "acm013182jsd", "acm013197jsd", "acm013211jsd", "acm013221jsd", "acm013239jsd", "acm013251jsd", "acm013264jsd", "acm013279jsd", "acm013295jsd", "acm013306jsd", "acm013317jsd", "acm013326jsd", "acm024177jsd", "acm024188jsd", "acm024200jsd", "acm024215jsd", "acm024227jsd", "acm024283jsd", "acm024304jsd", "acm024319jsd", "acm024333jsd", "acm024342jsd", "acm024354jsd", "acm024365jsd", "acm024376jsd", "acm024388jsd", "acm024411jsd", "acm024422jsd", "acm024432jsd", "acm024447jsd", "acm024460jsd", "acm024477jsd", "acm024493jsd", "acm024503jsd", "acm024519jsd", "acm024533jsd", "acm024548jsd", "acm024570jsd", "acm024581jsd", "acm024607jsd", "acm024624jsd", "acm024635jsd", "acm024647jsd", "acm024666jsd", "acm024678jsd", "acm024689jsd", "acm024701jsd", "acm024710jsd", "acm024722jsd", "acm024739jsd", "acm024755jsd", "acm024767jsd", "acm024782jsd", "acm024806jsd", "acm024825jsd", "acm024839jsd", "acm024851jsd", "acm013346jsd", "acm013407jsd" ] + }, + "acm012614jsd" : { + "type" : "ControlElement", + "id" : "acm012614jsd", + "name" : "ACMPortalFetcher" + }, + "acm012615jsd" : { + "type" : "ControlElement", + "id" : "acm012615jsd", + "name" : "getName" + }, + "acm012616jsd" : { + "type" : "ControlElement", + "id" : "acm012616jsd", + "name" : "getHelpPage" + }, + "acm012617jsd" : { + "type" : "ControlElement", + "id" : "acm012617jsd", + "name" : "createQueryString" + }, + "acm012618jsd" : { + "type" : "ControlElement", + "id" : "acm012618jsd", + "name" : "getURLForQuery" + }, + "acm012619jsd" : { + "type" : "ControlElement", + "id" : "acm012619jsd", + "name" : "getParser" + }, + "acm012620jsd" : { + "type" : "ClassUnit", + "id" : "acm012620jsd", + "name" : "ACMPortalFetcher", + "compilationUnitId" : "acm012608jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013517jsd", "acm013680jsd" ], + "content" : [ "acm012614jsd", "acm012615jsd", "acm012616jsd", "acm012617jsd", "acm012618jsd", "acm012619jsd" ] + }, + "acm012621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012621jsd", + "name" : "ACS", + "parentId" : "acm012613jsd", + "content" : [ "acm012629jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012622jsd" : { + "type" : "CodePackage", + "id" : "acm012622jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012623jsd" ] + }, + "acm012623jsd" : { + "type" : "CodePackage", + "id" : "acm012623jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012624jsd" ] + }, + "acm012624jsd" : { + "type" : "CodePackage", + "id" : "acm012624jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012625jsd" ] + }, + "acm012625jsd" : { + "type" : "CodePackage", + "id" : "acm012625jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012626jsd" ] + }, + "acm012626jsd" : { + "type" : "CodePackage", + "id" : "acm012626jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012621jsd" ] + }, + "acm012627jsd" : { + "type" : "ControlElement", + "id" : "acm012627jsd", + "name" : "findFullText" + }, + "acm012628jsd" : { + "type" : "ControlElement", + "id" : "acm012628jsd", + "name" : "getTrustLevel" + }, + "acm012629jsd" : { + "type" : "ClassUnit", + "id" : "acm012629jsd", + "name" : "ACS", + "compilationUnitId" : "acm012621jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd" ], + "datatypeReferencesIds" : [ "acm012629jsd", "acm013325jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm012627jsd", "acm012628jsd" ] + }, + "acm012630jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012630jsd", + "name" : "AbstractIsbnFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012640jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012631jsd" : { + "type" : "CodePackage", + "id" : "acm012631jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012632jsd" ] + }, + "acm012632jsd" : { + "type" : "CodePackage", + "id" : "acm012632jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012633jsd" ] + }, + "acm012633jsd" : { + "type" : "CodePackage", + "id" : "acm012633jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012634jsd" ] + }, + "acm012634jsd" : { + "type" : "CodePackage", + "id" : "acm012634jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012635jsd" ] + }, + "acm012635jsd" : { + "type" : "CodePackage", + "id" : "acm012635jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012630jsd" ] + }, + "acm012636jsd" : { + "type" : "ControlElement", + "id" : "acm012636jsd", + "name" : "AbstractIsbnFetcher" + }, + "acm012637jsd" : { + "type" : "ControlElement", + "id" : "acm012637jsd", + "name" : "getHelpPage" + }, + "acm012638jsd" : { + "type" : "ControlElement", + "id" : "acm012638jsd", + "name" : "ensureThatIsbnIsValid" + }, + "acm012639jsd" : { + "type" : "ControlElement", + "id" : "acm012639jsd", + "name" : "getParser" + }, + "acm012640jsd" : { + "type" : "ClassUnit", + "id" : "acm012640jsd", + "name" : "AbstractIsbnFetcher", + "compilationUnitId" : "acm012630jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013761jsd", "acm018894jsd", "acm020676jsd" ], + "content" : [ "acm012636jsd", "acm012637jsd", "acm012638jsd", "acm012639jsd" ] + }, + "acm012641jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012641jsd", + "name" : "ApsFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012650jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012642jsd" : { + "type" : "CodePackage", + "id" : "acm012642jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012643jsd" ] + }, + "acm012643jsd" : { + "type" : "CodePackage", + "id" : "acm012643jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012644jsd" ] + }, + "acm012644jsd" : { + "type" : "CodePackage", + "id" : "acm012644jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012645jsd" ] + }, + "acm012645jsd" : { + "type" : "CodePackage", + "id" : "acm012645jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012646jsd" ] + }, + "acm012646jsd" : { + "type" : "CodePackage", + "id" : "acm012646jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012641jsd" ] + }, + "acm012647jsd" : { + "type" : "ControlElement", + "id" : "acm012647jsd", + "name" : "findFullText" + }, + "acm012648jsd" : { + "type" : "ControlElement", + "id" : "acm012648jsd", + "name" : "getTrustLevel" + }, + "acm012649jsd" : { + "type" : "ControlElement", + "id" : "acm012649jsd", + "name" : "getId" + }, + "acm012650jsd" : { + "type" : "ClassUnit", + "id" : "acm012650jsd", + "name" : "ApsFetcher", + "compilationUnitId" : "acm012641jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd" ], + "datatypeReferencesIds" : [ "acm012650jsd", "acm013325jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm012647jsd", "acm012648jsd", "acm012649jsd" ] + }, + "acm012651jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012651jsd", + "name" : "ArXivFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012702jsd", "acm012728jsd", "acm012736jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012652jsd" : { + "type" : "CodePackage", + "id" : "acm012652jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012653jsd" ] + }, + "acm012653jsd" : { + "type" : "CodePackage", + "id" : "acm012653jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012654jsd" ] + }, + "acm012654jsd" : { + "type" : "CodePackage", + "id" : "acm012654jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012655jsd" ] + }, + "acm012655jsd" : { + "type" : "CodePackage", + "id" : "acm012655jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012656jsd" ] + }, + "acm012656jsd" : { + "type" : "CodePackage", + "id" : "acm012656jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012651jsd" ] + }, + "acm012657jsd" : { + "type" : "ControlElement", + "id" : "acm012657jsd", + "name" : "ArXivFetcher" + }, + "acm012658jsd" : { + "type" : "ControlElement", + "id" : "acm012658jsd", + "name" : "ArXivFetcher" + }, + "acm012659jsd" : { + "type" : "ControlElement", + "id" : "acm012659jsd", + "name" : "findFullText" + }, + "acm012660jsd" : { + "type" : "ControlElement", + "id" : "acm012660jsd", + "name" : "getTrustLevel" + }, + "acm012661jsd" : { + "type" : "ControlElement", + "id" : "acm012661jsd", + "name" : "getName" + }, + "acm012662jsd" : { + "type" : "ControlElement", + "id" : "acm012662jsd", + "name" : "getHelpPage" + }, + "acm012663jsd" : { + "type" : "ControlElement", + "id" : "acm012663jsd", + "name" : "adaptKeywordsFrom" + }, + "acm012664jsd" : { + "type" : "ControlElement", + "id" : "acm012664jsd", + "name" : "getAutomaticDoi" + }, + "acm012665jsd" : { + "type" : "ControlElement", + "id" : "acm012665jsd", + "name" : "getAutomaticDoi" + }, + "acm012666jsd" : { + "type" : "ControlElement", + "id" : "acm012666jsd", + "name" : "getAutomaticDoi" + }, + "acm012667jsd" : { + "type" : "ControlElement", + "id" : "acm012667jsd", + "name" : "isManualDoi" + }, + "acm012668jsd" : { + "type" : "ControlElement", + "id" : "acm012668jsd", + "name" : "getManualDoi" + }, + "acm012669jsd" : { + "type" : "ControlElement", + "id" : "acm012669jsd", + "name" : "waitForBibEntryRetrieval" + }, + "acm012670jsd" : { + "type" : "ControlElement", + "id" : "acm012670jsd", + "name" : "mergeArXivEntryWithFutureDoiEntry" + }, + "acm012671jsd" : { + "type" : "ControlElement", + "id" : "acm012671jsd", + "name" : "inplaceAsyncInfuseArXivWithDoi" + }, + "acm012672jsd" : { + "type" : "ControlElement", + "id" : "acm012672jsd", + "name" : "inplaceAsyncInfuseArXivWithDoi" + }, + "acm012673jsd" : { + "type" : "ControlElement", + "id" : "acm012673jsd", + "name" : "performSearchPaged" + }, + "acm012674jsd" : { + "type" : "ControlElement", + "id" : "acm012674jsd", + "name" : "performSearchById" + }, + "acm012675jsd" : { + "type" : "ControlElement", + "id" : "acm012675jsd", + "name" : "findIdentifier" + }, + "acm012676jsd" : { + "type" : "ControlElement", + "id" : "acm012676jsd", + "name" : "getIdentifierName" + }, + "acm012677jsd" : { + "type" : "ControlElement", + "id" : "acm012677jsd", + "name" : "ArXiv" + }, + "acm012678jsd" : { + "type" : "ControlElement", + "id" : "acm012678jsd", + "name" : "findFullText" + }, + "acm012679jsd" : { + "type" : "ControlElement", + "id" : "acm012679jsd", + "name" : "getTrustLevel" + }, + "acm012680jsd" : { + "type" : "ControlElement", + "id" : "acm012680jsd", + "name" : "searchForEntry" + }, + "acm012681jsd" : { + "type" : "ControlElement", + "id" : "acm012681jsd", + "name" : "searchForEntryById" + }, + "acm012682jsd" : { + "type" : "ControlElement", + "id" : "acm012682jsd", + "name" : "searchForEntries" + }, + "acm012683jsd" : { + "type" : "ControlElement", + "id" : "acm012683jsd", + "name" : "searchForEntries" + }, + "acm012684jsd" : { + "type" : "ControlElement", + "id" : "acm012684jsd", + "name" : "queryApi" + }, + "acm012685jsd" : { + "type" : "ControlElement", + "id" : "acm012685jsd", + "name" : "callApi" + }, + "acm012686jsd" : { + "type" : "ControlElement", + "id" : "acm012686jsd", + "name" : "getException" + }, + "acm012687jsd" : { + "type" : "ControlElement", + "id" : "acm012687jsd", + "name" : "getName" + }, + "acm012688jsd" : { + "type" : "ControlElement", + "id" : "acm012688jsd", + "name" : "getHelpPage" + }, + "acm012689jsd" : { + "type" : "ControlElement", + "id" : "acm012689jsd", + "name" : "performSearchPaged" + }, + "acm012690jsd" : { + "type" : "ControlElement", + "id" : "acm012690jsd", + "name" : "filterYears" + }, + "acm012691jsd" : { + "type" : "ControlElement", + "id" : "acm012691jsd", + "name" : "asyncPerformSearchById" + }, + "acm012692jsd" : { + "type" : "ControlElement", + "id" : "acm012692jsd", + "name" : "performSearchById" + }, + "acm012693jsd" : { + "type" : "ControlElement", + "id" : "acm012693jsd", + "name" : "findIdentifier" + }, + "acm012694jsd" : { + "type" : "ControlElement", + "id" : "acm012694jsd", + "name" : "getIdentifierName" + }, + "acm012695jsd" : { + "type" : "ControlElement", + "id" : "acm012695jsd", + "name" : "ArXivEntry" + }, + "acm012696jsd" : { + "type" : "ControlElement", + "id" : "acm012696jsd", + "name" : "correctLineBreaks" + }, + "acm012697jsd" : { + "type" : "ControlElement", + "id" : "acm012697jsd", + "name" : "getPdfUrl" + }, + "acm012698jsd" : { + "type" : "ControlElement", + "id" : "acm012698jsd", + "name" : "getIdString" + }, + "acm012699jsd" : { + "type" : "ControlElement", + "id" : "acm012699jsd", + "name" : "getId" + }, + "acm012700jsd" : { + "type" : "ControlElement", + "id" : "acm012700jsd", + "name" : "getDate" + }, + "acm012701jsd" : { + "type" : "ControlElement", + "id" : "acm012701jsd", + "name" : "toBibEntry" + }, + "acm012702jsd" : { + "type" : "ClassUnit", + "id" : "acm012702jsd", + "name" : "ArXivFetcher", + "compilationUnitId" : "acm012651jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012360jsd", "acm012378jsd", "acm012495jsd" ], + "datatypeReferencesIds" : [ "acm011153jsd", "acm012258jsd", "acm012314jsd", "acm012340jsd", "acm012360jsd", "acm012378jsd", "acm012495jsd", "acm012702jsd", "acm012728jsd", "acm012736jsd", "acm013001jsd", "acm013325jsd", "acm013444jsd", "acm017661jsd", "acm018267jsd", "acm018673jsd", "acm018843jsd", "acm020222jsd" ], + "content" : [ "acm012657jsd", "acm012658jsd", "acm012659jsd", "acm012660jsd", "acm012661jsd", "acm012662jsd", "acm012663jsd", "acm012664jsd", "acm012665jsd", "acm012666jsd", "acm012667jsd", "acm012668jsd", "acm012669jsd", "acm012670jsd", "acm012671jsd", "acm012672jsd", "acm012673jsd", "acm012674jsd", "acm012675jsd", "acm012676jsd", "acm012677jsd", "acm012678jsd", "acm012679jsd", "acm012680jsd", "acm012681jsd", "acm012682jsd", "acm012683jsd", "acm012684jsd", "acm012685jsd", "acm012686jsd", "acm012687jsd", "acm012688jsd", "acm012689jsd", "acm012690jsd", "acm012691jsd", "acm012692jsd", "acm012693jsd", "acm012694jsd", "acm012695jsd", "acm012696jsd", "acm012697jsd", "acm012698jsd", "acm012699jsd", "acm012700jsd", "acm012701jsd" ] + }, + "acm012703jsd" : { + "type" : "ControlElement", + "id" : "acm012703jsd", + "name" : "ArXiv" + }, + "acm012704jsd" : { + "type" : "ControlElement", + "id" : "acm012704jsd", + "name" : "findFullText" + }, + "acm012705jsd" : { + "type" : "ControlElement", + "id" : "acm012705jsd", + "name" : "getTrustLevel" + }, + "acm012706jsd" : { + "type" : "ControlElement", + "id" : "acm012706jsd", + "name" : "searchForEntry" + }, + "acm012707jsd" : { + "type" : "ControlElement", + "id" : "acm012707jsd", + "name" : "searchForEntryById" + }, + "acm012708jsd" : { + "type" : "ControlElement", + "id" : "acm012708jsd", + "name" : "searchForEntries" + }, + "acm012709jsd" : { + "type" : "ControlElement", + "id" : "acm012709jsd", + "name" : "searchForEntries" + }, + "acm012710jsd" : { + "type" : "ControlElement", + "id" : "acm012710jsd", + "name" : "queryApi" + }, + "acm012711jsd" : { + "type" : "ControlElement", + "id" : "acm012711jsd", + "name" : "callApi" + }, + "acm012712jsd" : { + "type" : "ControlElement", + "id" : "acm012712jsd", + "name" : "getException" + }, + "acm012713jsd" : { + "type" : "ControlElement", + "id" : "acm012713jsd", + "name" : "getName" + }, + "acm012714jsd" : { + "type" : "ControlElement", + "id" : "acm012714jsd", + "name" : "getHelpPage" + }, + "acm012715jsd" : { + "type" : "ControlElement", + "id" : "acm012715jsd", + "name" : "performSearchPaged" + }, + "acm012716jsd" : { + "type" : "ControlElement", + "id" : "acm012716jsd", + "name" : "filterYears" + }, + "acm012717jsd" : { + "type" : "ControlElement", + "id" : "acm012717jsd", + "name" : "asyncPerformSearchById" + }, + "acm012718jsd" : { + "type" : "ControlElement", + "id" : "acm012718jsd", + "name" : "performSearchById" + }, + "acm012719jsd" : { + "type" : "ControlElement", + "id" : "acm012719jsd", + "name" : "findIdentifier" + }, + "acm012720jsd" : { + "type" : "ControlElement", + "id" : "acm012720jsd", + "name" : "getIdentifierName" + }, + "acm012721jsd" : { + "type" : "ControlElement", + "id" : "acm012721jsd", + "name" : "ArXivEntry" + }, + "acm012722jsd" : { + "type" : "ControlElement", + "id" : "acm012722jsd", + "name" : "correctLineBreaks" + }, + "acm012723jsd" : { + "type" : "ControlElement", + "id" : "acm012723jsd", + "name" : "getPdfUrl" + }, + "acm012724jsd" : { + "type" : "ControlElement", + "id" : "acm012724jsd", + "name" : "getIdString" + }, + "acm012725jsd" : { + "type" : "ControlElement", + "id" : "acm012725jsd", + "name" : "getId" + }, + "acm012726jsd" : { + "type" : "ControlElement", + "id" : "acm012726jsd", + "name" : "getDate" + }, + "acm012727jsd" : { + "type" : "ControlElement", + "id" : "acm012727jsd", + "name" : "toBibEntry" + }, + "acm012728jsd" : { + "type" : "ClassUnit", + "id" : "acm012728jsd", + "name" : "ArXiv", + "compilationUnitId" : "acm012651jsd", + "parentDatatypeId" : "acm012702jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012360jsd", "acm012378jsd", "acm012495jsd" ], + "datatypeReferencesIds" : [ "acm011153jsd", "acm012258jsd", "acm012314jsd", "acm012728jsd", "acm012736jsd", "acm013325jsd", "acm013444jsd", "acm017661jsd", "acm018267jsd", "acm018843jsd", "acm020222jsd" ], + "content" : [ "acm012703jsd", "acm012704jsd", "acm012705jsd", "acm012706jsd", "acm012707jsd", "acm012708jsd", "acm012709jsd", "acm012710jsd", "acm012711jsd", "acm012712jsd", "acm012713jsd", "acm012714jsd", "acm012715jsd", "acm012716jsd", "acm012717jsd", "acm012718jsd", "acm012719jsd", "acm012720jsd", "acm012721jsd", "acm012722jsd", "acm012723jsd", "acm012724jsd", "acm012725jsd", "acm012726jsd", "acm012727jsd" ] + }, + "acm012729jsd" : { + "type" : "ControlElement", + "id" : "acm012729jsd", + "name" : "ArXivEntry" + }, + "acm012730jsd" : { + "type" : "ControlElement", + "id" : "acm012730jsd", + "name" : "correctLineBreaks" + }, + "acm012731jsd" : { + "type" : "ControlElement", + "id" : "acm012731jsd", + "name" : "getPdfUrl" + }, + "acm012732jsd" : { + "type" : "ControlElement", + "id" : "acm012732jsd", + "name" : "getIdString" + }, + "acm012733jsd" : { + "type" : "ControlElement", + "id" : "acm012733jsd", + "name" : "getId" + }, + "acm012734jsd" : { + "type" : "ControlElement", + "id" : "acm012734jsd", + "name" : "getDate" + }, + "acm012735jsd" : { + "type" : "ControlElement", + "id" : "acm012735jsd", + "name" : "toBibEntry" + }, + "acm012736jsd" : { + "type" : "ClassUnit", + "id" : "acm012736jsd", + "name" : "ArXivEntry", + "compilationUnitId" : "acm012651jsd", + "parentDatatypeId" : "acm012728jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018843jsd" ], + "content" : [ "acm012729jsd", "acm012730jsd", "acm012731jsd", "acm012732jsd", "acm012733jsd", "acm012734jsd", "acm012735jsd" ] + }, + "acm012737jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012737jsd", + "name" : "AstrophysicsDataSystem", + "parentId" : "acm012613jsd", + "content" : [ "acm012761jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012738jsd" : { + "type" : "CodePackage", + "id" : "acm012738jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012739jsd" ] + }, + "acm012739jsd" : { + "type" : "CodePackage", + "id" : "acm012739jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012740jsd" ] + }, + "acm012740jsd" : { + "type" : "CodePackage", + "id" : "acm012740jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012741jsd" ] + }, + "acm012741jsd" : { + "type" : "CodePackage", + "id" : "acm012741jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012742jsd" ] + }, + "acm012742jsd" : { + "type" : "CodePackage", + "id" : "acm012742jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012737jsd" ] + }, + "acm012743jsd" : { + "type" : "ControlElement", + "id" : "acm012743jsd", + "name" : "AstrophysicsDataSystem" + }, + "acm012744jsd" : { + "type" : "ControlElement", + "id" : "acm012744jsd", + "name" : "buildPostData" + }, + "acm012745jsd" : { + "type" : "ControlElement", + "id" : "acm012745jsd", + "name" : "getURLforExport" + }, + "acm012746jsd" : { + "type" : "ControlElement", + "id" : "acm012746jsd", + "name" : "getName" + }, + "acm012747jsd" : { + "type" : "ControlElement", + "id" : "acm012747jsd", + "name" : "getApiKey" + }, + "acm012748jsd" : { + "type" : "ControlElement", + "id" : "acm012748jsd", + "name" : "getURLForQuery" + }, + "acm012749jsd" : { + "type" : "ControlElement", + "id" : "acm012749jsd", + "name" : "getURLForEntry" + }, + "acm012750jsd" : { + "type" : "ControlElement", + "id" : "acm012750jsd", + "name" : "getUrlForIdentifier" + }, + "acm012751jsd" : { + "type" : "ControlElement", + "id" : "acm012751jsd", + "name" : "getHelpPage" + }, + "acm012752jsd" : { + "type" : "ControlElement", + "id" : "acm012752jsd", + "name" : "getParser" + }, + "acm012753jsd" : { + "type" : "ControlElement", + "id" : "acm012753jsd", + "name" : "doPostCleanup" + }, + "acm012754jsd" : { + "type" : "ControlElement", + "id" : "acm012754jsd", + "name" : "performSearch" + }, + "acm012755jsd" : { + "type" : "ControlElement", + "id" : "acm012755jsd", + "name" : "fetchBibcodes" + }, + "acm012756jsd" : { + "type" : "ControlElement", + "id" : "acm012756jsd", + "name" : "performSearchById" + }, + "acm012757jsd" : { + "type" : "ControlElement", + "id" : "acm012757jsd", + "name" : "performSearchByIds" + }, + "acm012758jsd" : { + "type" : "ControlElement", + "id" : "acm012758jsd", + "name" : "performSearch" + }, + "acm012759jsd" : { + "type" : "ControlElement", + "id" : "acm012759jsd", + "name" : "performSearchPaged" + }, + "acm012760jsd" : { + "type" : "ControlElement", + "id" : "acm012760jsd", + "name" : "getUrlDownload" + }, + "acm012761jsd" : { + "type" : "ClassUnit", + "id" : "acm012761jsd", + "name" : "AstrophysicsDataSystem", + "compilationUnitId" : "acm012737jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012296jsd", "acm012370jsd", "acm012506jsd", "acm012928jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011223jsd", "acm011779jsd", "acm011888jsd", "acm011900jsd", "acm011951jsd", "acm011987jsd", "acm012258jsd", "acm012314jsd", "acm012467jsd", "acm012515jsd", "acm012523jsd", "acm013517jsd", "acm013761jsd", "acm015926jsd", "acm017281jsd", "acm018267jsd", "acm018813jsd", "acm020222jsd", "acm020676jsd" ], + "content" : [ "acm012743jsd", "acm012744jsd", "acm012745jsd", "acm012746jsd", "acm012747jsd", "acm012748jsd", "acm012749jsd", "acm012750jsd", "acm012751jsd", "acm012752jsd", "acm012753jsd", "acm012754jsd", "acm012755jsd", "acm012756jsd", "acm012757jsd", "acm012758jsd", "acm012759jsd", "acm012760jsd" ] + }, + "acm012762jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012762jsd", + "name" : "BibsonomyScraper", + "parentId" : "acm012613jsd", + "content" : [ "acm012770jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012763jsd" : { + "type" : "CodePackage", + "id" : "acm012763jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012764jsd" ] + }, + "acm012764jsd" : { + "type" : "CodePackage", + "id" : "acm012764jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012765jsd" ] + }, + "acm012765jsd" : { + "type" : "CodePackage", + "id" : "acm012765jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012766jsd" ] + }, + "acm012766jsd" : { + "type" : "CodePackage", + "id" : "acm012766jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012767jsd" ] + }, + "acm012767jsd" : { + "type" : "CodePackage", + "id" : "acm012767jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012762jsd" ] + }, + "acm012768jsd" : { + "type" : "ControlElement", + "id" : "acm012768jsd", + "name" : "BibsonomyScraper" + }, + "acm012769jsd" : { + "type" : "ControlElement", + "id" : "acm012769jsd", + "name" : "getEntry" + }, + "acm012770jsd" : { + "type" : "ClassUnit", + "id" : "acm012770jsd", + "name" : "BibsonomyScraper", + "compilationUnitId" : "acm012762jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm012770jsd", "acm015926jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm012768jsd", "acm012769jsd" ] + }, + "acm012771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012771jsd", + "name" : "BiodiversityLibrary", + "parentId" : "acm012613jsd", + "content" : [ "acm012790jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012772jsd" : { + "type" : "CodePackage", + "id" : "acm012772jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012773jsd" ] + }, + "acm012773jsd" : { + "type" : "CodePackage", + "id" : "acm012773jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012774jsd" ] + }, + "acm012774jsd" : { + "type" : "CodePackage", + "id" : "acm012774jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012775jsd" ] + }, + "acm012775jsd" : { + "type" : "CodePackage", + "id" : "acm012775jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012776jsd" ] + }, + "acm012776jsd" : { + "type" : "CodePackage", + "id" : "acm012776jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012771jsd" ] + }, + "acm012777jsd" : { + "type" : "ControlElement", + "id" : "acm012777jsd", + "name" : "BiodiversityLibrary" + }, + "acm012778jsd" : { + "type" : "ControlElement", + "id" : "acm012778jsd", + "name" : "getName" + }, + "acm012779jsd" : { + "type" : "ControlElement", + "id" : "acm012779jsd", + "name" : "getTestUrl" + }, + "acm012780jsd" : { + "type" : "ControlElement", + "id" : "acm012780jsd", + "name" : "getBaseURL" + }, + "acm012781jsd" : { + "type" : "ControlElement", + "id" : "acm012781jsd", + "name" : "getItemMetadataURL" + }, + "acm012782jsd" : { + "type" : "ControlElement", + "id" : "acm012782jsd", + "name" : "getPartMetadataURL" + }, + "acm012783jsd" : { + "type" : "ControlElement", + "id" : "acm012783jsd", + "name" : "getDetails" + }, + "acm012784jsd" : { + "type" : "ControlElement", + "id" : "acm012784jsd", + "name" : "parseBibJSONtoBibtex" + }, + "acm012785jsd" : { + "type" : "ControlElement", + "id" : "acm012785jsd", + "name" : "jsonResultToBibEntry" + }, + "acm012786jsd" : { + "type" : "ControlElement", + "id" : "acm012786jsd", + "name" : "toAuthors" + }, + "acm012787jsd" : { + "type" : "ControlElement", + "id" : "acm012787jsd", + "name" : "getParser" + }, + "acm012788jsd" : { + "type" : "ControlElement", + "id" : "acm012788jsd", + "name" : "getURLForQuery" + }, + "acm012789jsd" : { + "type" : "ControlElement", + "id" : "acm012789jsd", + "name" : "getApiKey" + }, + "acm012790jsd" : { + "type" : "ClassUnit", + "id" : "acm012790jsd", + "name" : "BiodiversityLibrary", + "compilationUnitId" : "acm012771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd", "acm012928jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012467jsd", "acm012515jsd", "acm012523jsd", "acm013459jsd", "acm015926jsd", "acm017281jsd", "acm018267jsd" ], + "content" : [ "acm012777jsd", "acm012778jsd", "acm012779jsd", "acm012780jsd", "acm012781jsd", "acm012782jsd", "acm012783jsd", "acm012784jsd", "acm012785jsd", "acm012786jsd", "acm012787jsd", "acm012788jsd", "acm012789jsd" ] + }, + "acm012791jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012791jsd", + "name" : "BvbFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012801jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012792jsd" : { + "type" : "CodePackage", + "id" : "acm012792jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012793jsd" ] + }, + "acm012793jsd" : { + "type" : "CodePackage", + "id" : "acm012793jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012794jsd" ] + }, + "acm012794jsd" : { + "type" : "CodePackage", + "id" : "acm012794jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012795jsd" ] + }, + "acm012795jsd" : { + "type" : "CodePackage", + "id" : "acm012795jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012796jsd" ] + }, + "acm012796jsd" : { + "type" : "CodePackage", + "id" : "acm012796jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012791jsd" ] + }, + "acm012797jsd" : { + "type" : "ControlElement", + "id" : "acm012797jsd", + "name" : "getName" + }, + "acm012798jsd" : { + "type" : "ControlElement", + "id" : "acm012798jsd", + "name" : "getHelpPage" + }, + "acm012799jsd" : { + "type" : "ControlElement", + "id" : "acm012799jsd", + "name" : "getURLForQuery" + }, + "acm012800jsd" : { + "type" : "ControlElement", + "id" : "acm012800jsd", + "name" : "getParser" + }, + "acm012801jsd" : { + "type" : "ClassUnit", + "id" : "acm012801jsd", + "name" : "BvbFetcher", + "compilationUnitId" : "acm012791jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012523jsd", "acm013517jsd", "acm013975jsd" ], + "content" : [ "acm012797jsd", "acm012798jsd", "acm012799jsd", "acm012800jsd" ] + }, + "acm012802jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012802jsd", + "name" : "CiteSeer", + "parentId" : "acm012613jsd", + "content" : [ "acm012815jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012803jsd" : { + "type" : "CodePackage", + "id" : "acm012803jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012804jsd" ] + }, + "acm012804jsd" : { + "type" : "CodePackage", + "id" : "acm012804jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012805jsd" ] + }, + "acm012805jsd" : { + "type" : "CodePackage", + "id" : "acm012805jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012806jsd" ] + }, + "acm012806jsd" : { + "type" : "CodePackage", + "id" : "acm012806jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012807jsd" ] + }, + "acm012807jsd" : { + "type" : "CodePackage", + "id" : "acm012807jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012802jsd" ] + }, + "acm012808jsd" : { + "type" : "ControlElement", + "id" : "acm012808jsd", + "name" : "CiteSeer" + }, + "acm012809jsd" : { + "type" : "ControlElement", + "id" : "acm012809jsd", + "name" : "getName" + }, + "acm012810jsd" : { + "type" : "ControlElement", + "id" : "acm012810jsd", + "name" : "getHelpPage" + }, + "acm012811jsd" : { + "type" : "ControlElement", + "id" : "acm012811jsd", + "name" : "getURLForQuery" + }, + "acm012812jsd" : { + "type" : "ControlElement", + "id" : "acm012812jsd", + "name" : "getParser" + }, + "acm012813jsd" : { + "type" : "ControlElement", + "id" : "acm012813jsd", + "name" : "doPostCleanup" + }, + "acm012814jsd" : { + "type" : "ControlElement", + "id" : "acm012814jsd", + "name" : "format" + }, + "acm012815jsd" : { + "type" : "ClassUnit", + "id" : "acm012815jsd", + "name" : "CiteSeer", + "compilationUnitId" : "acm012802jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011208jsd", "acm011840jsd", "acm012134jsd", "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013517jsd", "acm013841jsd", "acm018267jsd" ], + "content" : [ "acm012808jsd", "acm012809jsd", "acm012810jsd", "acm012811jsd", "acm012812jsd", "acm012813jsd", "acm012814jsd" ] + }, + "acm012816jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012816jsd", + "name" : "CollectionOfComputerScienceBibliographiesFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012827jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012817jsd" : { + "type" : "CodePackage", + "id" : "acm012817jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012818jsd" ] + }, + "acm012818jsd" : { + "type" : "CodePackage", + "id" : "acm012818jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012819jsd" ] + }, + "acm012819jsd" : { + "type" : "CodePackage", + "id" : "acm012819jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012820jsd" ] + }, + "acm012820jsd" : { + "type" : "CodePackage", + "id" : "acm012820jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012821jsd" ] + }, + "acm012821jsd" : { + "type" : "CodePackage", + "id" : "acm012821jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012816jsd" ] + }, + "acm012822jsd" : { + "type" : "ControlElement", + "id" : "acm012822jsd", + "name" : "CollectionOfComputerScienceBibliographiesFetcher" + }, + "acm012823jsd" : { + "type" : "ControlElement", + "id" : "acm012823jsd", + "name" : "getURLForQuery" + }, + "acm012824jsd" : { + "type" : "ControlElement", + "id" : "acm012824jsd", + "name" : "getParser" + }, + "acm012825jsd" : { + "type" : "ControlElement", + "id" : "acm012825jsd", + "name" : "getName" + }, + "acm012826jsd" : { + "type" : "ControlElement", + "id" : "acm012826jsd", + "name" : "doPostCleanup" + }, + "acm012827jsd" : { + "type" : "ClassUnit", + "id" : "acm012827jsd", + "name" : "CollectionOfComputerScienceBibliographiesFetcher", + "compilationUnitId" : "acm012816jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011963jsd", "acm011987jsd", "acm011999jsd", "acm012011jsd", "acm012314jsd", "acm012523jsd", "acm012838jsd", "acm013474jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm012822jsd", "acm012823jsd", "acm012824jsd", "acm012825jsd", "acm012826jsd" ] + }, + "acm012828jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012828jsd", + "name" : "CollectionOfComputerScienceBibliographiesParser", + "parentId" : "acm012613jsd", + "content" : [ "acm012838jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012829jsd" : { + "type" : "CodePackage", + "id" : "acm012829jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012830jsd" ] + }, + "acm012830jsd" : { + "type" : "CodePackage", + "id" : "acm012830jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012831jsd" ] + }, + "acm012831jsd" : { + "type" : "CodePackage", + "id" : "acm012831jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012832jsd" ] + }, + "acm012832jsd" : { + "type" : "CodePackage", + "id" : "acm012832jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012833jsd" ] + }, + "acm012833jsd" : { + "type" : "CodePackage", + "id" : "acm012833jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012828jsd" ] + }, + "acm012834jsd" : { + "type" : "ControlElement", + "id" : "acm012834jsd", + "name" : "CollectionOfComputerScienceBibliographiesParser" + }, + "acm012835jsd" : { + "type" : "ControlElement", + "id" : "acm012835jsd", + "name" : "parseEntries" + }, + "acm012836jsd" : { + "type" : "ControlElement", + "id" : "acm012836jsd", + "name" : "matchRegexFromInputStreamHtml" + }, + "acm012837jsd" : { + "type" : "ControlElement", + "id" : "acm012837jsd", + "name" : "parseBibtexStringsFromLinks" + }, + "acm012838jsd" : { + "type" : "ClassUnit", + "id" : "acm012838jsd", + "name" : "CollectionOfComputerScienceBibliographiesParser", + "compilationUnitId" : "acm012828jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm011840jsd", "acm012515jsd", "acm013761jsd", "acm015926jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm012834jsd", "acm012835jsd", "acm012836jsd", "acm012837jsd" ] + }, + "acm012839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012839jsd", + "name" : "ComplexSearchQuery", + "parentId" : "acm012613jsd", + "content" : [ "acm012875jsd", "acm012891jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012840jsd" : { + "type" : "CodePackage", + "id" : "acm012840jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012841jsd" ] + }, + "acm012841jsd" : { + "type" : "CodePackage", + "id" : "acm012841jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012842jsd" ] + }, + "acm012842jsd" : { + "type" : "CodePackage", + "id" : "acm012842jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012843jsd" ] + }, + "acm012843jsd" : { + "type" : "CodePackage", + "id" : "acm012843jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012844jsd" ] + }, + "acm012844jsd" : { + "type" : "CodePackage", + "id" : "acm012844jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012839jsd" ] + }, + "acm012845jsd" : { + "type" : "ControlElement", + "id" : "acm012845jsd", + "name" : "ComplexSearchQuery" + }, + "acm012846jsd" : { + "type" : "ControlElement", + "id" : "acm012846jsd", + "name" : "fromTerms" + }, + "acm012847jsd" : { + "type" : "ControlElement", + "id" : "acm012847jsd", + "name" : "getDefaultFieldPhrases" + }, + "acm012848jsd" : { + "type" : "ControlElement", + "id" : "acm012848jsd", + "name" : "getAuthors" + }, + "acm012849jsd" : { + "type" : "ControlElement", + "id" : "acm012849jsd", + "name" : "getTitlePhrases" + }, + "acm012850jsd" : { + "type" : "ControlElement", + "id" : "acm012850jsd", + "name" : "getAbstractPhrases" + }, + "acm012851jsd" : { + "type" : "ControlElement", + "id" : "acm012851jsd", + "name" : "getFromYear" + }, + "acm012852jsd" : { + "type" : "ControlElement", + "id" : "acm012852jsd", + "name" : "getToYear" + }, + "acm012853jsd" : { + "type" : "ControlElement", + "id" : "acm012853jsd", + "name" : "getSingleYear" + }, + "acm012854jsd" : { + "type" : "ControlElement", + "id" : "acm012854jsd", + "name" : "getJournal" + }, + "acm012855jsd" : { + "type" : "ControlElement", + "id" : "acm012855jsd", + "name" : "getDOI" + }, + "acm012856jsd" : { + "type" : "ControlElement", + "id" : "acm012856jsd", + "name" : "builder" + }, + "acm012857jsd" : { + "type" : "ControlElement", + "id" : "acm012857jsd", + "name" : "equals" + }, + "acm012858jsd" : { + "type" : "ControlElement", + "id" : "acm012858jsd", + "name" : "hashCode" + }, + "acm012859jsd" : { + "type" : "ControlElement", + "id" : "acm012859jsd", + "name" : "toString" + }, + "acm012860jsd" : { + "type" : "ControlElement", + "id" : "acm012860jsd", + "name" : "ComplexSearchQueryBuilder" + }, + "acm012861jsd" : { + "type" : "ControlElement", + "id" : "acm012861jsd", + "name" : "defaultFieldPhrase" + }, + "acm012862jsd" : { + "type" : "ControlElement", + "id" : "acm012862jsd", + "name" : "author" + }, + "acm012863jsd" : { + "type" : "ControlElement", + "id" : "acm012863jsd", + "name" : "titlePhrase" + }, + "acm012864jsd" : { + "type" : "ControlElement", + "id" : "acm012864jsd", + "name" : "abstractPhrase" + }, + "acm012865jsd" : { + "type" : "ControlElement", + "id" : "acm012865jsd", + "name" : "fromYearAndToYear" + }, + "acm012866jsd" : { + "type" : "ControlElement", + "id" : "acm012866jsd", + "name" : "singleYear" + }, + "acm012867jsd" : { + "type" : "ControlElement", + "id" : "acm012867jsd", + "name" : "journal" + }, + "acm012868jsd" : { + "type" : "ControlElement", + "id" : "acm012868jsd", + "name" : "DOI" + }, + "acm012869jsd" : { + "type" : "ControlElement", + "id" : "acm012869jsd", + "name" : "terms" + }, + "acm012870jsd" : { + "type" : "ControlElement", + "id" : "acm012870jsd", + "name" : "build" + }, + "acm012871jsd" : { + "type" : "ControlElement", + "id" : "acm012871jsd", + "name" : "parseYearRange" + }, + "acm012872jsd" : { + "type" : "ControlElement", + "id" : "acm012872jsd", + "name" : "textSearchFieldsAndYearFieldsAreEmpty" + }, + "acm012873jsd" : { + "type" : "ControlElement", + "id" : "acm012873jsd", + "name" : "yearFieldsAreEmpty" + }, + "acm012874jsd" : { + "type" : "ControlElement", + "id" : "acm012874jsd", + "name" : "stringListIsBlank" + }, + "acm012875jsd" : { + "type" : "ClassUnit", + "id" : "acm012875jsd", + "name" : "ComplexSearchQuery", + "compilationUnitId" : "acm012839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012875jsd", "acm012891jsd" ], + "content" : [ "acm012845jsd", "acm012846jsd", "acm012847jsd", "acm012848jsd", "acm012849jsd", "acm012850jsd", "acm012851jsd", "acm012852jsd", "acm012853jsd", "acm012854jsd", "acm012855jsd", "acm012856jsd", "acm012857jsd", "acm012858jsd", "acm012859jsd", "acm012860jsd", "acm012861jsd", "acm012862jsd", "acm012863jsd", "acm012864jsd", "acm012865jsd", "acm012866jsd", "acm012867jsd", "acm012868jsd", "acm012869jsd", "acm012870jsd", "acm012871jsd", "acm012872jsd", "acm012873jsd", "acm012874jsd" ] + }, + "acm012876jsd" : { + "type" : "ControlElement", + "id" : "acm012876jsd", + "name" : "ComplexSearchQueryBuilder" + }, + "acm012877jsd" : { + "type" : "ControlElement", + "id" : "acm012877jsd", + "name" : "defaultFieldPhrase" + }, + "acm012878jsd" : { + "type" : "ControlElement", + "id" : "acm012878jsd", + "name" : "author" + }, + "acm012879jsd" : { + "type" : "ControlElement", + "id" : "acm012879jsd", + "name" : "titlePhrase" + }, + "acm012880jsd" : { + "type" : "ControlElement", + "id" : "acm012880jsd", + "name" : "abstractPhrase" + }, + "acm012881jsd" : { + "type" : "ControlElement", + "id" : "acm012881jsd", + "name" : "fromYearAndToYear" + }, + "acm012882jsd" : { + "type" : "ControlElement", + "id" : "acm012882jsd", + "name" : "singleYear" + }, + "acm012883jsd" : { + "type" : "ControlElement", + "id" : "acm012883jsd", + "name" : "journal" + }, + "acm012884jsd" : { + "type" : "ControlElement", + "id" : "acm012884jsd", + "name" : "DOI" + }, + "acm012885jsd" : { + "type" : "ControlElement", + "id" : "acm012885jsd", + "name" : "terms" + }, + "acm012886jsd" : { + "type" : "ControlElement", + "id" : "acm012886jsd", + "name" : "build" + }, + "acm012887jsd" : { + "type" : "ControlElement", + "id" : "acm012887jsd", + "name" : "parseYearRange" + }, + "acm012888jsd" : { + "type" : "ControlElement", + "id" : "acm012888jsd", + "name" : "textSearchFieldsAndYearFieldsAreEmpty" + }, + "acm012889jsd" : { + "type" : "ControlElement", + "id" : "acm012889jsd", + "name" : "yearFieldsAreEmpty" + }, + "acm012890jsd" : { + "type" : "ControlElement", + "id" : "acm012890jsd", + "name" : "stringListIsBlank" + }, + "acm012891jsd" : { + "type" : "ClassUnit", + "id" : "acm012891jsd", + "name" : "ComplexSearchQueryBuilder", + "compilationUnitId" : "acm012839jsd", + "parentDatatypeId" : "acm012875jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012875jsd", "acm012891jsd" ], + "content" : [ "acm012876jsd", "acm012877jsd", "acm012878jsd", "acm012879jsd", "acm012880jsd", "acm012881jsd", "acm012882jsd", "acm012883jsd", "acm012884jsd", "acm012885jsd", "acm012886jsd", "acm012887jsd", "acm012888jsd", "acm012889jsd", "acm012890jsd" ] + }, + "acm012892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012892jsd", + "name" : "CompositeSearchBasedFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012902jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012893jsd" : { + "type" : "CodePackage", + "id" : "acm012893jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012894jsd" ] + }, + "acm012894jsd" : { + "type" : "CodePackage", + "id" : "acm012894jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012895jsd" ] + }, + "acm012895jsd" : { + "type" : "CodePackage", + "id" : "acm012895jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012896jsd" ] + }, + "acm012896jsd" : { + "type" : "CodePackage", + "id" : "acm012896jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012897jsd" ] + }, + "acm012897jsd" : { + "type" : "CodePackage", + "id" : "acm012897jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012892jsd" ] + }, + "acm012898jsd" : { + "type" : "ControlElement", + "id" : "acm012898jsd", + "name" : "CompositeSearchBasedFetcher" + }, + "acm012899jsd" : { + "type" : "ControlElement", + "id" : "acm012899jsd", + "name" : "getName" + }, + "acm012900jsd" : { + "type" : "ControlElement", + "id" : "acm012900jsd", + "name" : "getHelpPage" + }, + "acm012901jsd" : { + "type" : "ControlElement", + "id" : "acm012901jsd", + "name" : "performSearch" + }, + "acm012902jsd" : { + "type" : "ClassUnit", + "id" : "acm012902jsd", + "name" : "CompositeSearchBasedFetcher", + "compilationUnitId" : "acm012892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012571jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012571jsd", "acm012902jsd", "acm018267jsd" ], + "content" : [ "acm012898jsd", "acm012899jsd", "acm012900jsd", "acm012901jsd" ] + }, + "acm012903jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012903jsd", + "name" : "CrossRef", + "parentId" : "acm012613jsd", + "content" : [ "acm012920jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012904jsd" : { + "type" : "CodePackage", + "id" : "acm012904jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012905jsd" ] + }, + "acm012905jsd" : { + "type" : "CodePackage", + "id" : "acm012905jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012906jsd" ] + }, + "acm012906jsd" : { + "type" : "CodePackage", + "id" : "acm012906jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012907jsd" ] + }, + "acm012907jsd" : { + "type" : "CodePackage", + "id" : "acm012907jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012908jsd" ] + }, + "acm012908jsd" : { + "type" : "CodePackage", + "id" : "acm012908jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012903jsd" ] + }, + "acm012909jsd" : { + "type" : "ControlElement", + "id" : "acm012909jsd", + "name" : "getName" + }, + "acm012910jsd" : { + "type" : "ControlElement", + "id" : "acm012910jsd", + "name" : "getURLForEntry" + }, + "acm012911jsd" : { + "type" : "ControlElement", + "id" : "acm012911jsd", + "name" : "getURLForQuery" + }, + "acm012912jsd" : { + "type" : "ControlElement", + "id" : "acm012912jsd", + "name" : "getUrlForIdentifier" + }, + "acm012913jsd" : { + "type" : "ControlElement", + "id" : "acm012913jsd", + "name" : "getParser" + }, + "acm012914jsd" : { + "type" : "ControlElement", + "id" : "acm012914jsd", + "name" : "doPostCleanup" + }, + "acm012915jsd" : { + "type" : "ControlElement", + "id" : "acm012915jsd", + "name" : "jsonItemToBibEntry" + }, + "acm012916jsd" : { + "type" : "ControlElement", + "id" : "acm012916jsd", + "name" : "toAuthors" + }, + "acm012917jsd" : { + "type" : "ControlElement", + "id" : "acm012917jsd", + "name" : "convertType" + }, + "acm012918jsd" : { + "type" : "ControlElement", + "id" : "acm012918jsd", + "name" : "extractIdentifier" + }, + "acm012919jsd" : { + "type" : "ControlElement", + "id" : "acm012919jsd", + "name" : "getIdentifierName" + }, + "acm012920jsd" : { + "type" : "ClassUnit", + "id" : "acm012920jsd", + "name" : "CrossRef", + "compilationUnitId" : "acm012903jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012296jsd", "acm012370jsd", "acm012389jsd", "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011779jsd", "acm011951jsd", "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm013517jsd", "acm017661jsd", "acm018267jsd", "acm018865jsd", "acm019005jsd" ], + "content" : [ "acm012909jsd", "acm012910jsd", "acm012911jsd", "acm012912jsd", "acm012913jsd", "acm012914jsd", "acm012915jsd", "acm012916jsd", "acm012917jsd", "acm012918jsd", "acm012919jsd" ] + }, + "acm012921jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012921jsd", + "name" : "CustomizableKeyFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012928jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012922jsd" : { + "type" : "CodePackage", + "id" : "acm012922jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012923jsd" ] + }, + "acm012923jsd" : { + "type" : "CodePackage", + "id" : "acm012923jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012924jsd" ] + }, + "acm012924jsd" : { + "type" : "CodePackage", + "id" : "acm012924jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012925jsd" ] + }, + "acm012925jsd" : { + "type" : "CodePackage", + "id" : "acm012925jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012926jsd" ] + }, + "acm012926jsd" : { + "type" : "CodePackage", + "id" : "acm012926jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012921jsd" ] + }, + "acm012927jsd" : { + "type" : "ControlElement", + "id" : "acm012927jsd", + "name" : "getTestUrl" + }, + "acm012928jsd" : { + "type" : "InterfaceUnit", + "id" : "acm012928jsd", + "name" : "CustomizableKeyFetcher", + "compilationUnitId" : "acm012921jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012591jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012927jsd" ] + }, + "acm012929jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012929jsd", + "name" : "DBLPFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012941jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012930jsd" : { + "type" : "CodePackage", + "id" : "acm012930jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012931jsd" ] + }, + "acm012931jsd" : { + "type" : "CodePackage", + "id" : "acm012931jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012932jsd" ] + }, + "acm012932jsd" : { + "type" : "CodePackage", + "id" : "acm012932jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012933jsd" ] + }, + "acm012933jsd" : { + "type" : "CodePackage", + "id" : "acm012933jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012934jsd" ] + }, + "acm012934jsd" : { + "type" : "CodePackage", + "id" : "acm012934jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012929jsd" ] + }, + "acm012935jsd" : { + "type" : "ControlElement", + "id" : "acm012935jsd", + "name" : "DBLPFetcher" + }, + "acm012936jsd" : { + "type" : "ControlElement", + "id" : "acm012936jsd", + "name" : "getURLForQuery" + }, + "acm012937jsd" : { + "type" : "ControlElement", + "id" : "acm012937jsd", + "name" : "getParser" + }, + "acm012938jsd" : { + "type" : "ControlElement", + "id" : "acm012938jsd", + "name" : "doPostCleanup" + }, + "acm012939jsd" : { + "type" : "ControlElement", + "id" : "acm012939jsd", + "name" : "getName" + }, + "acm012940jsd" : { + "type" : "ControlElement", + "id" : "acm012940jsd", + "name" : "getHelpPage" + }, + "acm012941jsd" : { + "type" : "ClassUnit", + "id" : "acm012941jsd", + "name" : "DBLPFetcher", + "compilationUnitId" : "acm012929jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011146jsd", "acm011169jsd", "acm011188jsd", "acm011779jsd", "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013488jsd", "acm013761jsd", "acm015020jsd", "acm015591jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm012935jsd", "acm012936jsd", "acm012937jsd", "acm012938jsd", "acm012939jsd", "acm012940jsd" ] + }, + "acm012942jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012942jsd", + "name" : "DOABFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012954jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012943jsd" : { + "type" : "CodePackage", + "id" : "acm012943jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012944jsd" ] + }, + "acm012944jsd" : { + "type" : "CodePackage", + "id" : "acm012944jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012945jsd" ] + }, + "acm012945jsd" : { + "type" : "CodePackage", + "id" : "acm012945jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012946jsd" ] + }, + "acm012946jsd" : { + "type" : "CodePackage", + "id" : "acm012946jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012947jsd" ] + }, + "acm012947jsd" : { + "type" : "CodePackage", + "id" : "acm012947jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012942jsd" ] + }, + "acm012948jsd" : { + "type" : "ControlElement", + "id" : "acm012948jsd", + "name" : "getName" + }, + "acm012949jsd" : { + "type" : "ControlElement", + "id" : "acm012949jsd", + "name" : "getURLForQuery" + }, + "acm012950jsd" : { + "type" : "ControlElement", + "id" : "acm012950jsd", + "name" : "getParser" + }, + "acm012951jsd" : { + "type" : "ControlElement", + "id" : "acm012951jsd", + "name" : "jsonToBibEntry" + }, + "acm012952jsd" : { + "type" : "ControlElement", + "id" : "acm012952jsd", + "name" : "toAuthor" + }, + "acm012953jsd" : { + "type" : "ControlElement", + "id" : "acm012953jsd", + "name" : "namePreprocessing" + }, + "acm012954jsd" : { + "type" : "ClassUnit", + "id" : "acm012954jsd", + "name" : "DOABFetcher", + "compilationUnitId" : "acm012942jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012523jsd", "acm013517jsd", "acm018138jsd", "acm018267jsd" ], + "content" : [ "acm012948jsd", "acm012949jsd", "acm012950jsd", "acm012951jsd", "acm012952jsd", "acm012953jsd" ] + }, + "acm012955jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012955jsd", + "name" : "DOAJFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm012969jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012956jsd" : { + "type" : "CodePackage", + "id" : "acm012956jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012957jsd" ] + }, + "acm012957jsd" : { + "type" : "CodePackage", + "id" : "acm012957jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012958jsd" ] + }, + "acm012958jsd" : { + "type" : "CodePackage", + "id" : "acm012958jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012959jsd" ] + }, + "acm012959jsd" : { + "type" : "CodePackage", + "id" : "acm012959jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012960jsd" ] + }, + "acm012960jsd" : { + "type" : "CodePackage", + "id" : "acm012960jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012955jsd" ] + }, + "acm012961jsd" : { + "type" : "ControlElement", + "id" : "acm012961jsd", + "name" : "DOAJFetcher" + }, + "acm012962jsd" : { + "type" : "ControlElement", + "id" : "acm012962jsd", + "name" : "parseBibJSONtoBibtex" + }, + "acm012963jsd" : { + "type" : "ControlElement", + "id" : "acm012963jsd", + "name" : "addPath" + }, + "acm012964jsd" : { + "type" : "ControlElement", + "id" : "acm012964jsd", + "name" : "appendSegmentToPath" + }, + "acm012965jsd" : { + "type" : "ControlElement", + "id" : "acm012965jsd", + "name" : "getName" + }, + "acm012966jsd" : { + "type" : "ControlElement", + "id" : "acm012966jsd", + "name" : "getHelpPage" + }, + "acm012967jsd" : { + "type" : "ControlElement", + "id" : "acm012967jsd", + "name" : "getURLForQuery" + }, + "acm012968jsd" : { + "type" : "ControlElement", + "id" : "acm012968jsd", + "name" : "getParser" + }, + "acm012969jsd" : { + "type" : "ClassUnit", + "id" : "acm012969jsd", + "name" : "DOAJFetcher", + "compilationUnitId" : "acm012955jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm012969jsd", "acm013503jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm012961jsd", "acm012962jsd", "acm012963jsd", "acm012964jsd", "acm012965jsd", "acm012966jsd", "acm012967jsd", "acm012968jsd" ] + }, + "acm012970jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012970jsd", + "name" : "DiVA", + "parentId" : "acm012613jsd", + "content" : [ "acm012982jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012971jsd" : { + "type" : "CodePackage", + "id" : "acm012971jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012972jsd" ] + }, + "acm012972jsd" : { + "type" : "CodePackage", + "id" : "acm012972jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012973jsd" ] + }, + "acm012973jsd" : { + "type" : "CodePackage", + "id" : "acm012973jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012974jsd" ] + }, + "acm012974jsd" : { + "type" : "CodePackage", + "id" : "acm012974jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012975jsd" ] + }, + "acm012975jsd" : { + "type" : "CodePackage", + "id" : "acm012975jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012970jsd" ] + }, + "acm012976jsd" : { + "type" : "ControlElement", + "id" : "acm012976jsd", + "name" : "DiVA" + }, + "acm012977jsd" : { + "type" : "ControlElement", + "id" : "acm012977jsd", + "name" : "getName" + }, + "acm012978jsd" : { + "type" : "ControlElement", + "id" : "acm012978jsd", + "name" : "getHelpPage" + }, + "acm012979jsd" : { + "type" : "ControlElement", + "id" : "acm012979jsd", + "name" : "getUrlForIdentifier" + }, + "acm012980jsd" : { + "type" : "ControlElement", + "id" : "acm012980jsd", + "name" : "getParser" + }, + "acm012981jsd" : { + "type" : "ControlElement", + "id" : "acm012981jsd", + "name" : "isValidId" + }, + "acm012982jsd" : { + "type" : "ClassUnit", + "id" : "acm012982jsd", + "name" : "DiVA", + "compilationUnitId" : "acm012970jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013761jsd", "acm020676jsd" ], + "content" : [ "acm012976jsd", "acm012977jsd", "acm012978jsd", "acm012979jsd", "acm012980jsd", "acm012981jsd" ] + }, + "acm012983jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012983jsd", + "name" : "DoiFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013001jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012984jsd" : { + "type" : "CodePackage", + "id" : "acm012984jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm012985jsd" ] + }, + "acm012985jsd" : { + "type" : "CodePackage", + "id" : "acm012985jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm012986jsd" ] + }, + "acm012986jsd" : { + "type" : "CodePackage", + "id" : "acm012986jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm012987jsd" ] + }, + "acm012987jsd" : { + "type" : "CodePackage", + "id" : "acm012987jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm012988jsd" ] + }, + "acm012988jsd" : { + "type" : "CodePackage", + "id" : "acm012988jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm012983jsd" ] + }, + "acm012989jsd" : { + "type" : "ControlElement", + "id" : "acm012989jsd", + "name" : "DoiFetcher" + }, + "acm012990jsd" : { + "type" : "ControlElement", + "id" : "acm012990jsd", + "name" : "getName" + }, + "acm012991jsd" : { + "type" : "ControlElement", + "id" : "acm012991jsd", + "name" : "getHelpPage" + }, + "acm012992jsd" : { + "type" : "ControlElement", + "id" : "acm012992jsd", + "name" : "doAPILimiting" + }, + "acm012993jsd" : { + "type" : "ControlElement", + "id" : "acm012993jsd", + "name" : "asyncPerformSearchById" + }, + "acm012994jsd" : { + "type" : "ControlElement", + "id" : "acm012994jsd", + "name" : "performSearchById" + }, + "acm012995jsd" : { + "type" : "ControlElement", + "id" : "acm012995jsd", + "name" : "doPostCleanup" + }, + "acm012996jsd" : { + "type" : "ControlElement", + "id" : "acm012996jsd", + "name" : "updateCrossrefAPIRate" + }, + "acm012997jsd" : { + "type" : "ControlElement", + "id" : "acm012997jsd", + "name" : "performSearch" + }, + "acm012998jsd" : { + "type" : "ControlElement", + "id" : "acm012998jsd", + "name" : "getAgency" + }, + "acm012999jsd" : { + "type" : "ControlElement", + "id" : "acm012999jsd", + "name" : "setPageCountToArticleId" + }, + "acm013000jsd" : { + "type" : "ControlElement", + "id" : "acm013000jsd", + "name" : "isAPSJournal" + }, + "acm013001jsd" : { + "type" : "ClassUnit", + "id" : "acm013001jsd", + "name" : "DoiFetcher", + "compilationUnitId" : "acm012983jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd", "acm012360jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011779jsd", "acm011912jsd", "acm012258jsd", "acm012314jsd", "acm012515jsd", "acm013001jsd", "acm013196jsd", "acm015926jsd", "acm018267jsd", "acm018865jsd", "acm020676jsd" ], + "content" : [ "acm012989jsd", "acm012990jsd", "acm012991jsd", "acm012992jsd", "acm012993jsd", "acm012994jsd", "acm012995jsd", "acm012996jsd", "acm012997jsd", "acm012998jsd", "acm012999jsd", "acm013000jsd" ] + }, + "acm013002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013002jsd", + "name" : "DoiResolution", + "parentId" : "acm012613jsd", + "content" : [ "acm013014jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013003jsd" : { + "type" : "CodePackage", + "id" : "acm013003jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013004jsd" ] + }, + "acm013004jsd" : { + "type" : "CodePackage", + "id" : "acm013004jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013005jsd" ] + }, + "acm013005jsd" : { + "type" : "CodePackage", + "id" : "acm013005jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013006jsd" ] + }, + "acm013006jsd" : { + "type" : "CodePackage", + "id" : "acm013006jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013007jsd" ] + }, + "acm013007jsd" : { + "type" : "CodePackage", + "id" : "acm013007jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013002jsd" ] + }, + "acm013008jsd" : { + "type" : "ControlElement", + "id" : "acm013008jsd", + "name" : "DoiResolution" + }, + "acm013009jsd" : { + "type" : "ControlElement", + "id" : "acm013009jsd", + "name" : "findFullText" + }, + "acm013010jsd" : { + "type" : "ControlElement", + "id" : "acm013010jsd", + "name" : "citationMetaTag" + }, + "acm013011jsd" : { + "type" : "ControlElement", + "id" : "acm013011jsd", + "name" : "findEmbeddedLink" + }, + "acm013012jsd" : { + "type" : "ControlElement", + "id" : "acm013012jsd", + "name" : "findDistinctLinks" + }, + "acm013013jsd" : { + "type" : "ControlElement", + "id" : "acm013013jsd", + "name" : "getTrustLevel" + }, + "acm013014jsd" : { + "type" : "ClassUnit", + "id" : "acm013014jsd", + "name" : "DoiResolution", + "compilationUnitId" : "acm013002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd" ], + "datatypeReferencesIds" : [ "acm013014jsd", "acm013325jsd", "acm015926jsd", "acm016594jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm013008jsd", "acm013009jsd", "acm013010jsd", "acm013011jsd", "acm013012jsd", "acm013013jsd" ] + }, + "acm013015jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013015jsd", + "name" : "GoogleScholar", + "parentId" : "acm012613jsd", + "content" : [ "acm013032jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013016jsd" : { + "type" : "CodePackage", + "id" : "acm013016jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013017jsd" ] + }, + "acm013017jsd" : { + "type" : "CodePackage", + "id" : "acm013017jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013018jsd" ] + }, + "acm013018jsd" : { + "type" : "CodePackage", + "id" : "acm013018jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013019jsd" ] + }, + "acm013019jsd" : { + "type" : "CodePackage", + "id" : "acm013019jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013020jsd" ] + }, + "acm013020jsd" : { + "type" : "CodePackage", + "id" : "acm013020jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013015jsd" ] + }, + "acm013021jsd" : { + "type" : "ControlElement", + "id" : "acm013021jsd", + "name" : "GoogleScholar" + }, + "acm013022jsd" : { + "type" : "ControlElement", + "id" : "acm013022jsd", + "name" : "findFullText" + }, + "acm013023jsd" : { + "type" : "ControlElement", + "id" : "acm013023jsd", + "name" : "getTrustLevel" + }, + "acm013024jsd" : { + "type" : "ControlElement", + "id" : "acm013024jsd", + "name" : "search" + }, + "acm013025jsd" : { + "type" : "ControlElement", + "id" : "acm013025jsd", + "name" : "needsCaptcha" + }, + "acm013026jsd" : { + "type" : "ControlElement", + "id" : "acm013026jsd", + "name" : "getName" + }, + "acm013027jsd" : { + "type" : "ControlElement", + "id" : "acm013027jsd", + "name" : "getHelpPage" + }, + "acm013028jsd" : { + "type" : "ControlElement", + "id" : "acm013028jsd", + "name" : "addHitsFromQuery" + }, + "acm013029jsd" : { + "type" : "ControlElement", + "id" : "acm013029jsd", + "name" : "downloadEntry" + }, + "acm013030jsd" : { + "type" : "ControlElement", + "id" : "acm013030jsd", + "name" : "obtainAndModifyCookie" + }, + "acm013031jsd" : { + "type" : "ControlElement", + "id" : "acm013031jsd", + "name" : "performSearchPaged" + }, + "acm013032jsd" : { + "type" : "ClassUnit", + "id" : "acm013032jsd", + "name" : "GoogleScholar", + "compilationUnitId" : "acm013015jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012495jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012556jsd", "acm013032jsd", "acm013325jsd", "acm013615jsd", "acm013761jsd", "acm015926jsd", "acm018267jsd", "acm020222jsd", "acm020676jsd" ], + "content" : [ "acm013021jsd", "acm013022jsd", "acm013023jsd", "acm013024jsd", "acm013025jsd", "acm013026jsd", "acm013027jsd", "acm013028jsd", "acm013029jsd", "acm013030jsd", "acm013031jsd" ] + }, + "acm013033jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013033jsd", + "name" : "GrobidCitationFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013045jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013034jsd" : { + "type" : "CodePackage", + "id" : "acm013034jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013035jsd" ] + }, + "acm013035jsd" : { + "type" : "CodePackage", + "id" : "acm013035jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013036jsd" ] + }, + "acm013036jsd" : { + "type" : "CodePackage", + "id" : "acm013036jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013037jsd" ] + }, + "acm013037jsd" : { + "type" : "CodePackage", + "id" : "acm013037jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013038jsd" ] + }, + "acm013038jsd" : { + "type" : "CodePackage", + "id" : "acm013038jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013033jsd" ] + }, + "acm013039jsd" : { + "type" : "ControlElement", + "id" : "acm013039jsd", + "name" : "GrobidCitationFetcher" + }, + "acm013040jsd" : { + "type" : "ControlElement", + "id" : "acm013040jsd", + "name" : "GrobidCitationFetcher" + }, + "acm013041jsd" : { + "type" : "ControlElement", + "id" : "acm013041jsd", + "name" : "parseUsingGrobid" + }, + "acm013042jsd" : { + "type" : "ControlElement", + "id" : "acm013042jsd", + "name" : "getName" + }, + "acm013043jsd" : { + "type" : "ControlElement", + "id" : "acm013043jsd", + "name" : "performSearch" + }, + "acm013044jsd" : { + "type" : "ControlElement", + "id" : "acm013044jsd", + "name" : "performSearch" + }, + "acm013045jsd" : { + "type" : "ClassUnit", + "id" : "acm013045jsd", + "name" : "GrobidCitationFetcher", + "compilationUnitId" : "acm013033jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012571jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm013045jsd", "acm013062jsd", "acm014398jsd", "acm018267jsd" ], + "content" : [ "acm013039jsd", "acm013040jsd", "acm013041jsd", "acm013042jsd", "acm013043jsd", "acm013044jsd" ] + }, + "acm013046jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013046jsd", + "name" : "GrobidPreferences", + "parentId" : "acm012613jsd", + "content" : [ "acm013062jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013047jsd" : { + "type" : "CodePackage", + "id" : "acm013047jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013048jsd" ] + }, + "acm013048jsd" : { + "type" : "CodePackage", + "id" : "acm013048jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013049jsd" ] + }, + "acm013049jsd" : { + "type" : "CodePackage", + "id" : "acm013049jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013050jsd" ] + }, + "acm013050jsd" : { + "type" : "CodePackage", + "id" : "acm013050jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013051jsd" ] + }, + "acm013051jsd" : { + "type" : "CodePackage", + "id" : "acm013051jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013046jsd" ] + }, + "acm013052jsd" : { + "type" : "ControlElement", + "id" : "acm013052jsd", + "name" : "GrobidPreferences" + }, + "acm013053jsd" : { + "type" : "ControlElement", + "id" : "acm013053jsd", + "name" : "isGrobidEnabled" + }, + "acm013054jsd" : { + "type" : "ControlElement", + "id" : "acm013054jsd", + "name" : "grobidEnabledProperty" + }, + "acm013055jsd" : { + "type" : "ControlElement", + "id" : "acm013055jsd", + "name" : "setGrobidEnabled" + }, + "acm013056jsd" : { + "type" : "ControlElement", + "id" : "acm013056jsd", + "name" : "isGrobidOptOut" + }, + "acm013057jsd" : { + "type" : "ControlElement", + "id" : "acm013057jsd", + "name" : "grobidOptOutProperty" + }, + "acm013058jsd" : { + "type" : "ControlElement", + "id" : "acm013058jsd", + "name" : "setGrobidOptOut" + }, + "acm013059jsd" : { + "type" : "ControlElement", + "id" : "acm013059jsd", + "name" : "getGrobidURL" + }, + "acm013060jsd" : { + "type" : "ControlElement", + "id" : "acm013060jsd", + "name" : "grobidURLProperty" + }, + "acm013061jsd" : { + "type" : "ControlElement", + "id" : "acm013061jsd", + "name" : "setGrobidURL" + }, + "acm013062jsd" : { + "type" : "ClassUnit", + "id" : "acm013062jsd", + "name" : "GrobidPreferences", + "compilationUnitId" : "acm013046jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013052jsd", "acm013053jsd", "acm013054jsd", "acm013055jsd", "acm013056jsd", "acm013057jsd", "acm013058jsd", "acm013059jsd", "acm013060jsd", "acm013061jsd" ] + }, + "acm013063jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013063jsd", + "name" : "GvkFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013073jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013064jsd" : { + "type" : "CodePackage", + "id" : "acm013064jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013065jsd" ] + }, + "acm013065jsd" : { + "type" : "CodePackage", + "id" : "acm013065jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013066jsd" ] + }, + "acm013066jsd" : { + "type" : "CodePackage", + "id" : "acm013066jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013067jsd" ] + }, + "acm013067jsd" : { + "type" : "CodePackage", + "id" : "acm013067jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013068jsd" ] + }, + "acm013068jsd" : { + "type" : "CodePackage", + "id" : "acm013068jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013063jsd" ] + }, + "acm013069jsd" : { + "type" : "ControlElement", + "id" : "acm013069jsd", + "name" : "getName" + }, + "acm013070jsd" : { + "type" : "ControlElement", + "id" : "acm013070jsd", + "name" : "getHelpPage" + }, + "acm013071jsd" : { + "type" : "ControlElement", + "id" : "acm013071jsd", + "name" : "getURLForQuery" + }, + "acm013072jsd" : { + "type" : "ControlElement", + "id" : "acm013072jsd", + "name" : "getParser" + }, + "acm013073jsd" : { + "type" : "ClassUnit", + "id" : "acm013073jsd", + "name" : "GvkFetcher", + "compilationUnitId" : "acm013063jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013534jsd", "acm014264jsd" ], + "content" : [ "acm013069jsd", "acm013070jsd", "acm013071jsd", "acm013072jsd" ] + }, + "acm013074jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013074jsd", + "name" : "IEEE", + "parentId" : "acm012613jsd", + "content" : [ "acm013090jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013075jsd" : { + "type" : "CodePackage", + "id" : "acm013075jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013076jsd" ] + }, + "acm013076jsd" : { + "type" : "CodePackage", + "id" : "acm013076jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013077jsd" ] + }, + "acm013077jsd" : { + "type" : "CodePackage", + "id" : "acm013077jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013078jsd" ] + }, + "acm013078jsd" : { + "type" : "CodePackage", + "id" : "acm013078jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013079jsd" ] + }, + "acm013079jsd" : { + "type" : "CodePackage", + "id" : "acm013079jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013074jsd" ] + }, + "acm013080jsd" : { + "type" : "ControlElement", + "id" : "acm013080jsd", + "name" : "IEEE" + }, + "acm013081jsd" : { + "type" : "ControlElement", + "id" : "acm013081jsd", + "name" : "parseJsonResponse" + }, + "acm013082jsd" : { + "type" : "ControlElement", + "id" : "acm013082jsd", + "name" : "findFullText" + }, + "acm013083jsd" : { + "type" : "ControlElement", + "id" : "acm013083jsd", + "name" : "getTrustLevel" + }, + "acm013084jsd" : { + "type" : "ControlElement", + "id" : "acm013084jsd", + "name" : "getParser" + }, + "acm013085jsd" : { + "type" : "ControlElement", + "id" : "acm013085jsd", + "name" : "getName" + }, + "acm013086jsd" : { + "type" : "ControlElement", + "id" : "acm013086jsd", + "name" : "getHelpPage" + }, + "acm013087jsd" : { + "type" : "ControlElement", + "id" : "acm013087jsd", + "name" : "getApiKey" + }, + "acm013088jsd" : { + "type" : "ControlElement", + "id" : "acm013088jsd", + "name" : "getTestUrl" + }, + "acm013089jsd" : { + "type" : "ControlElement", + "id" : "acm013089jsd", + "name" : "getURLForQuery" + }, + "acm013090jsd" : { + "type" : "ClassUnit", + "id" : "acm013090jsd", + "name" : "IEEE", + "compilationUnitId" : "acm013074jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012506jsd", "acm012928jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012467jsd", "acm012523jsd", "acm013090jsd", "acm013325jsd", "acm013554jsd", "acm015926jsd", "acm017281jsd", "acm018267jsd", "acm018509jsd", "acm018865jsd" ], + "content" : [ "acm013080jsd", "acm013081jsd", "acm013082jsd", "acm013083jsd", "acm013084jsd", "acm013085jsd", "acm013086jsd", "acm013087jsd", "acm013088jsd", "acm013089jsd" ] + }, + "acm013091jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013091jsd", + "name" : "INSPIREFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013105jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013092jsd" : { + "type" : "CodePackage", + "id" : "acm013092jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013093jsd" ] + }, + "acm013093jsd" : { + "type" : "CodePackage", + "id" : "acm013093jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013094jsd" ] + }, + "acm013094jsd" : { + "type" : "CodePackage", + "id" : "acm013094jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013095jsd" ] + }, + "acm013095jsd" : { + "type" : "CodePackage", + "id" : "acm013095jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013096jsd" ] + }, + "acm013096jsd" : { + "type" : "CodePackage", + "id" : "acm013096jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013091jsd" ] + }, + "acm013097jsd" : { + "type" : "ControlElement", + "id" : "acm013097jsd", + "name" : "INSPIREFetcher" + }, + "acm013098jsd" : { + "type" : "ControlElement", + "id" : "acm013098jsd", + "name" : "getName" + }, + "acm013099jsd" : { + "type" : "ControlElement", + "id" : "acm013099jsd", + "name" : "getHelpPage" + }, + "acm013100jsd" : { + "type" : "ControlElement", + "id" : "acm013100jsd", + "name" : "getURLForQuery" + }, + "acm013101jsd" : { + "type" : "ControlElement", + "id" : "acm013101jsd", + "name" : "getUrlDownload" + }, + "acm013102jsd" : { + "type" : "ControlElement", + "id" : "acm013102jsd", + "name" : "doPostCleanup" + }, + "acm013103jsd" : { + "type" : "ControlElement", + "id" : "acm013103jsd", + "name" : "getParser" + }, + "acm013104jsd" : { + "type" : "ControlElement", + "id" : "acm013104jsd", + "name" : "performSearch" + }, + "acm013105jsd" : { + "type" : "ClassUnit", + "id" : "acm013105jsd", + "name" : "INSPIREFetcher", + "compilationUnitId" : "acm013091jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd", "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011779jsd", "acm011951jsd", "acm012258jsd", "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm013503jsd", "acm013761jsd", "acm015489jsd", "acm015926jsd", "acm018267jsd", "acm018813jsd", "acm020676jsd" ], + "content" : [ "acm013097jsd", "acm013098jsd", "acm013099jsd", "acm013100jsd", "acm013101jsd", "acm013102jsd", "acm013103jsd", "acm013104jsd" ] + }, + "acm013106jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013106jsd", + "name" : "IacrEprintFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013125jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013107jsd" : { + "type" : "CodePackage", + "id" : "acm013107jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013108jsd" ] + }, + "acm013108jsd" : { + "type" : "CodePackage", + "id" : "acm013108jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013109jsd" ] + }, + "acm013109jsd" : { + "type" : "CodePackage", + "id" : "acm013109jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013110jsd" ] + }, + "acm013110jsd" : { + "type" : "CodePackage", + "id" : "acm013110jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013111jsd" ] + }, + "acm013111jsd" : { + "type" : "CodePackage", + "id" : "acm013111jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013106jsd" ] + }, + "acm013112jsd" : { + "type" : "ControlElement", + "id" : "acm013112jsd", + "name" : "IacrEprintFetcher" + }, + "acm013113jsd" : { + "type" : "ControlElement", + "id" : "acm013113jsd", + "name" : "performSearchById" + }, + "acm013114jsd" : { + "type" : "ControlElement", + "id" : "acm013114jsd", + "name" : "createEntryFromIacrCitation" + }, + "acm013115jsd" : { + "type" : "ControlElement", + "id" : "acm013115jsd", + "name" : "setAdditionalFields" + }, + "acm013116jsd" : { + "type" : "ControlElement", + "id" : "acm013116jsd", + "name" : "getVersion" + }, + "acm013117jsd" : { + "type" : "ControlElement", + "id" : "acm013117jsd", + "name" : "getAbstract" + }, + "acm013118jsd" : { + "type" : "ControlElement", + "id" : "acm013118jsd", + "name" : "getDate" + }, + "acm013119jsd" : { + "type" : "ControlElement", + "id" : "acm013119jsd", + "name" : "getHtml" + }, + "acm013120jsd" : { + "type" : "ControlElement", + "id" : "acm013120jsd", + "name" : "getRequiredValueBetween" + }, + "acm013121jsd" : { + "type" : "ControlElement", + "id" : "acm013121jsd", + "name" : "isFromOrAfterYear2000" + }, + "acm013122jsd" : { + "type" : "ControlElement", + "id" : "acm013122jsd", + "name" : "getName" + }, + "acm013123jsd" : { + "type" : "ControlElement", + "id" : "acm013123jsd", + "name" : "findFullText" + }, + "acm013124jsd" : { + "type" : "ControlElement", + "id" : "acm013124jsd", + "name" : "getTrustLevel" + }, + "acm013125jsd" : { + "type" : "ClassUnit", + "id" : "acm013125jsd", + "name" : "IacrEprintFetcher", + "compilationUnitId" : "acm013106jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012360jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm013325jsd", "acm015926jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm013112jsd", "acm013113jsd", "acm013114jsd", "acm013115jsd", "acm013116jsd", "acm013117jsd", "acm013118jsd", "acm013119jsd", "acm013120jsd", "acm013121jsd", "acm013122jsd", "acm013123jsd", "acm013124jsd" ] + }, + "acm013126jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013126jsd", + "name" : "JstorFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013140jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013127jsd" : { + "type" : "CodePackage", + "id" : "acm013127jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013128jsd" ] + }, + "acm013128jsd" : { + "type" : "CodePackage", + "id" : "acm013128jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013129jsd" ] + }, + "acm013129jsd" : { + "type" : "CodePackage", + "id" : "acm013129jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013130jsd" ] + }, + "acm013130jsd" : { + "type" : "CodePackage", + "id" : "acm013130jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013131jsd" ] + }, + "acm013131jsd" : { + "type" : "CodePackage", + "id" : "acm013131jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013126jsd" ] + }, + "acm013132jsd" : { + "type" : "ControlElement", + "id" : "acm013132jsd", + "name" : "JstorFetcher" + }, + "acm013133jsd" : { + "type" : "ControlElement", + "id" : "acm013133jsd", + "name" : "getURLForQuery" + }, + "acm013134jsd" : { + "type" : "ControlElement", + "id" : "acm013134jsd", + "name" : "getUrlForIdentifier" + }, + "acm013135jsd" : { + "type" : "ControlElement", + "id" : "acm013135jsd", + "name" : "getParser" + }, + "acm013136jsd" : { + "type" : "ControlElement", + "id" : "acm013136jsd", + "name" : "getName" + }, + "acm013137jsd" : { + "type" : "ControlElement", + "id" : "acm013137jsd", + "name" : "findFullText" + }, + "acm013138jsd" : { + "type" : "ControlElement", + "id" : "acm013138jsd", + "name" : "getTrustLevel" + }, + "acm013139jsd" : { + "type" : "ControlElement", + "id" : "acm013139jsd", + "name" : "doPostCleanup" + }, + "acm013140jsd" : { + "type" : "ClassUnit", + "id" : "acm013140jsd", + "name" : "JstorFetcher", + "compilationUnitId" : "acm013126jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012370jsd", "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm013325jsd", "acm013570jsd", "acm013761jsd", "acm015926jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm013132jsd", "acm013133jsd", "acm013134jsd", "acm013135jsd", "acm013136jsd", "acm013137jsd", "acm013138jsd", "acm013139jsd" ] + }, + "acm013141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013141jsd", + "name" : "LibraryOfCongress", + "parentId" : "acm012613jsd", + "content" : [ "acm013151jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013142jsd" : { + "type" : "CodePackage", + "id" : "acm013142jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013143jsd" ] + }, + "acm013143jsd" : { + "type" : "CodePackage", + "id" : "acm013143jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013144jsd" ] + }, + "acm013144jsd" : { + "type" : "CodePackage", + "id" : "acm013144jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013145jsd" ] + }, + "acm013145jsd" : { + "type" : "CodePackage", + "id" : "acm013145jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013146jsd" ] + }, + "acm013146jsd" : { + "type" : "CodePackage", + "id" : "acm013146jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013141jsd" ] + }, + "acm013147jsd" : { + "type" : "ControlElement", + "id" : "acm013147jsd", + "name" : "LibraryOfCongress" + }, + "acm013148jsd" : { + "type" : "ControlElement", + "id" : "acm013148jsd", + "name" : "getName" + }, + "acm013149jsd" : { + "type" : "ControlElement", + "id" : "acm013149jsd", + "name" : "getUrlForIdentifier" + }, + "acm013150jsd" : { + "type" : "ControlElement", + "id" : "acm013150jsd", + "name" : "getParser" + }, + "acm013151jsd" : { + "type" : "ClassUnit", + "id" : "acm013151jsd", + "name" : "LibraryOfCongress", + "compilationUnitId" : "acm013141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012523jsd", "acm014085jsd" ], + "content" : [ "acm013147jsd", "acm013148jsd", "acm013149jsd", "acm013150jsd" ] + }, + "acm013152jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013152jsd", + "name" : "MathSciNet", + "parentId" : "acm012613jsd", + "content" : [ "acm013165jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013153jsd" : { + "type" : "CodePackage", + "id" : "acm013153jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013154jsd" ] + }, + "acm013154jsd" : { + "type" : "CodePackage", + "id" : "acm013154jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013155jsd" ] + }, + "acm013155jsd" : { + "type" : "CodePackage", + "id" : "acm013155jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013156jsd" ] + }, + "acm013156jsd" : { + "type" : "CodePackage", + "id" : "acm013156jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013157jsd" ] + }, + "acm013157jsd" : { + "type" : "CodePackage", + "id" : "acm013157jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013152jsd" ] + }, + "acm013158jsd" : { + "type" : "ControlElement", + "id" : "acm013158jsd", + "name" : "MathSciNet" + }, + "acm013159jsd" : { + "type" : "ControlElement", + "id" : "acm013159jsd", + "name" : "getName" + }, + "acm013160jsd" : { + "type" : "ControlElement", + "id" : "acm013160jsd", + "name" : "getURLForEntry" + }, + "acm013161jsd" : { + "type" : "ControlElement", + "id" : "acm013161jsd", + "name" : "getURLForQuery" + }, + "acm013162jsd" : { + "type" : "ControlElement", + "id" : "acm013162jsd", + "name" : "getUrlForIdentifier" + }, + "acm013163jsd" : { + "type" : "ControlElement", + "id" : "acm013163jsd", + "name" : "getParser" + }, + "acm013164jsd" : { + "type" : "ControlElement", + "id" : "acm013164jsd", + "name" : "doPostCleanup" + }, + "acm013165jsd" : { + "type" : "ClassUnit", + "id" : "acm013165jsd", + "name" : "MathSciNet", + "compilationUnitId" : "acm013152jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012296jsd", "acm012370jsd", "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011146jsd", "acm011169jsd", "acm011223jsd", "acm011779jsd", "acm012314jsd", "acm012523jsd", "acm013517jsd", "acm013761jsd", "acm018267jsd", "acm018813jsd", "acm020676jsd" ], + "content" : [ "acm013158jsd", "acm013159jsd", "acm013160jsd", "acm013161jsd", "acm013162jsd", "acm013163jsd", "acm013164jsd" ] + }, + "acm013166jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013166jsd", + "name" : "MedlineFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013181jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013167jsd" : { + "type" : "CodePackage", + "id" : "acm013167jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013168jsd" ] + }, + "acm013168jsd" : { + "type" : "CodePackage", + "id" : "acm013168jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013169jsd" ] + }, + "acm013169jsd" : { + "type" : "CodePackage", + "id" : "acm013169jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013170jsd" ] + }, + "acm013170jsd" : { + "type" : "CodePackage", + "id" : "acm013170jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013171jsd" ] + }, + "acm013171jsd" : { + "type" : "CodePackage", + "id" : "acm013171jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013166jsd" ] + }, + "acm013172jsd" : { + "type" : "ControlElement", + "id" : "acm013172jsd", + "name" : "getPubMedIdsFromQuery" + }, + "acm013173jsd" : { + "type" : "ControlElement", + "id" : "acm013173jsd", + "name" : "getName" + }, + "acm013174jsd" : { + "type" : "ControlElement", + "id" : "acm013174jsd", + "name" : "getHelpPage" + }, + "acm013175jsd" : { + "type" : "ControlElement", + "id" : "acm013175jsd", + "name" : "getUrlForIdentifier" + }, + "acm013176jsd" : { + "type" : "ControlElement", + "id" : "acm013176jsd", + "name" : "getParser" + }, + "acm013177jsd" : { + "type" : "ControlElement", + "id" : "acm013177jsd", + "name" : "doPostCleanup" + }, + "acm013178jsd" : { + "type" : "ControlElement", + "id" : "acm013178jsd", + "name" : "createSearchUrl" + }, + "acm013179jsd" : { + "type" : "ControlElement", + "id" : "acm013179jsd", + "name" : "fetchMedline" + }, + "acm013180jsd" : { + "type" : "ControlElement", + "id" : "acm013180jsd", + "name" : "performSearch" + }, + "acm013181jsd" : { + "type" : "ClassUnit", + "id" : "acm013181jsd", + "name" : "MedlineFetcher", + "compilationUnitId" : "acm013166jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd", "acm012571jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011779jsd", "acm011888jsd", "acm011900jsd", "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm012556jsd", "acm013181jsd", "acm013586jsd", "acm014026jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm013172jsd", "acm013173jsd", "acm013174jsd", "acm013175jsd", "acm013176jsd", "acm013177jsd", "acm013178jsd", "acm013179jsd", "acm013180jsd" ] + }, + "acm013182jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013182jsd", + "name" : "Medra", + "parentId" : "acm012613jsd", + "content" : [ "acm013196jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013183jsd" : { + "type" : "CodePackage", + "id" : "acm013183jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013184jsd" ] + }, + "acm013184jsd" : { + "type" : "CodePackage", + "id" : "acm013184jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013185jsd" ] + }, + "acm013185jsd" : { + "type" : "CodePackage", + "id" : "acm013185jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013186jsd" ] + }, + "acm013186jsd" : { + "type" : "CodePackage", + "id" : "acm013186jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013187jsd" ] + }, + "acm013187jsd" : { + "type" : "CodePackage", + "id" : "acm013187jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013182jsd" ] + }, + "acm013188jsd" : { + "type" : "ControlElement", + "id" : "acm013188jsd", + "name" : "getName" + }, + "acm013189jsd" : { + "type" : "ControlElement", + "id" : "acm013189jsd", + "name" : "getParser" + }, + "acm013190jsd" : { + "type" : "ControlElement", + "id" : "acm013190jsd", + "name" : "jsonItemToBibEntry" + }, + "acm013191jsd" : { + "type" : "ControlElement", + "id" : "acm013191jsd", + "name" : "convertType" + }, + "acm013192jsd" : { + "type" : "ControlElement", + "id" : "acm013192jsd", + "name" : "toAuthors" + }, + "acm013193jsd" : { + "type" : "ControlElement", + "id" : "acm013193jsd", + "name" : "getUrlDownload" + }, + "acm013194jsd" : { + "type" : "ControlElement", + "id" : "acm013194jsd", + "name" : "getUrlForIdentifier" + }, + "acm013195jsd" : { + "type" : "ControlElement", + "id" : "acm013195jsd", + "name" : "doPostCleanup" + }, + "acm013196jsd" : { + "type" : "ClassUnit", + "id" : "acm013196jsd", + "name" : "Medra", + "compilationUnitId" : "acm013182jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd" ], + "datatypeReferencesIds" : [ "acm011146jsd", "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm015926jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm013188jsd", "acm013189jsd", "acm013190jsd", "acm013191jsd", "acm013192jsd", "acm013193jsd", "acm013194jsd", "acm013195jsd" ] + }, + "acm013197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013197jsd", + "name" : "MrDLibFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013210jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013198jsd" : { + "type" : "CodePackage", + "id" : "acm013198jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013199jsd" ] + }, + "acm013199jsd" : { + "type" : "CodePackage", + "id" : "acm013199jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013200jsd" ] + }, + "acm013200jsd" : { + "type" : "CodePackage", + "id" : "acm013200jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013201jsd" ] + }, + "acm013201jsd" : { + "type" : "CodePackage", + "id" : "acm013201jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013202jsd" ] + }, + "acm013202jsd" : { + "type" : "CodePackage", + "id" : "acm013202jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013197jsd" ] + }, + "acm013203jsd" : { + "type" : "ControlElement", + "id" : "acm013203jsd", + "name" : "MrDLibFetcher" + }, + "acm013204jsd" : { + "type" : "ControlElement", + "id" : "acm013204jsd", + "name" : "getName" + }, + "acm013205jsd" : { + "type" : "ControlElement", + "id" : "acm013205jsd", + "name" : "performSearch" + }, + "acm013206jsd" : { + "type" : "ControlElement", + "id" : "acm013206jsd", + "name" : "getHeading" + }, + "acm013207jsd" : { + "type" : "ControlElement", + "id" : "acm013207jsd", + "name" : "getDescription" + }, + "acm013208jsd" : { + "type" : "ControlElement", + "id" : "acm013208jsd", + "name" : "makeServerRequest" + }, + "acm013209jsd" : { + "type" : "ControlElement", + "id" : "acm013209jsd", + "name" : "constructQuery" + }, + "acm013210jsd" : { + "type" : "ClassUnit", + "id" : "acm013210jsd", + "name" : "MrDLibFetcher", + "compilationUnitId" : "acm013197jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012556jsd", "acm013210jsd", "acm014106jsd", "acm015926jsd", "acm017404jsd", "acm017988jsd", "acm018267jsd", "acm021113jsd" ], + "content" : [ "acm013203jsd", "acm013204jsd", "acm013205jsd", "acm013206jsd", "acm013207jsd", "acm013208jsd", "acm013209jsd" ] + }, + "acm013211jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013211jsd", + "name" : "OpenAccessDoi", + "parentId" : "acm012613jsd", + "content" : [ "acm013220jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013212jsd" : { + "type" : "CodePackage", + "id" : "acm013212jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013213jsd" ] + }, + "acm013213jsd" : { + "type" : "CodePackage", + "id" : "acm013213jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013214jsd" ] + }, + "acm013214jsd" : { + "type" : "CodePackage", + "id" : "acm013214jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013215jsd" ] + }, + "acm013215jsd" : { + "type" : "CodePackage", + "id" : "acm013215jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013216jsd" ] + }, + "acm013216jsd" : { + "type" : "CodePackage", + "id" : "acm013216jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013211jsd" ] + }, + "acm013217jsd" : { + "type" : "ControlElement", + "id" : "acm013217jsd", + "name" : "findFullText" + }, + "acm013218jsd" : { + "type" : "ControlElement", + "id" : "acm013218jsd", + "name" : "getTrustLevel" + }, + "acm013219jsd" : { + "type" : "ControlElement", + "id" : "acm013219jsd", + "name" : "findFullText" + }, + "acm013220jsd" : { + "type" : "ClassUnit", + "id" : "acm013220jsd", + "name" : "OpenAccessDoi", + "compilationUnitId" : "acm013211jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd" ], + "datatypeReferencesIds" : [ "acm012340jsd", "acm013325jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm013217jsd", "acm013218jsd", "acm013219jsd" ] + }, + "acm013221jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013221jsd", + "name" : "ResearchGate", + "parentId" : "acm012613jsd", + "content" : [ "acm013238jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013222jsd" : { + "type" : "CodePackage", + "id" : "acm013222jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013223jsd" ] + }, + "acm013223jsd" : { + "type" : "CodePackage", + "id" : "acm013223jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013224jsd" ] + }, + "acm013224jsd" : { + "type" : "CodePackage", + "id" : "acm013224jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013225jsd" ] + }, + "acm013225jsd" : { + "type" : "CodePackage", + "id" : "acm013225jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013226jsd" ] + }, + "acm013226jsd" : { + "type" : "CodePackage", + "id" : "acm013226jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013221jsd" ] + }, + "acm013227jsd" : { + "type" : "ControlElement", + "id" : "acm013227jsd", + "name" : "ResearchGate" + }, + "acm013228jsd" : { + "type" : "ControlElement", + "id" : "acm013228jsd", + "name" : "findFullText" + }, + "acm013229jsd" : { + "type" : "ControlElement", + "id" : "acm013229jsd", + "name" : "getHTML" + }, + "acm013230jsd" : { + "type" : "ControlElement", + "id" : "acm013230jsd", + "name" : "getURLByString" + }, + "acm013231jsd" : { + "type" : "ControlElement", + "id" : "acm013231jsd", + "name" : "getURLByDoi" + }, + "acm013232jsd" : { + "type" : "ControlElement", + "id" : "acm013232jsd", + "name" : "getPage" + }, + "acm013233jsd" : { + "type" : "ControlElement", + "id" : "acm013233jsd", + "name" : "getTrustLevel" + }, + "acm013234jsd" : { + "type" : "ControlElement", + "id" : "acm013234jsd", + "name" : "performSearch" + }, + "acm013235jsd" : { + "type" : "ControlElement", + "id" : "acm013235jsd", + "name" : "getInputStream" + }, + "acm013236jsd" : { + "type" : "ControlElement", + "id" : "acm013236jsd", + "name" : "getName" + }, + "acm013237jsd" : { + "type" : "ControlElement", + "id" : "acm013237jsd", + "name" : "performSearch" + }, + "acm013238jsd" : { + "type" : "ClassUnit", + "id" : "acm013238jsd", + "name" : "ResearchGate", + "compilationUnitId" : "acm013221jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd", "acm012340jsd", "acm012571jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm013238jsd", "acm013325jsd", "acm013517jsd", "acm013761jsd", "acm015567jsd", "acm015926jsd", "acm018267jsd", "acm018865jsd", "acm020676jsd" ], + "content" : [ "acm013227jsd", "acm013228jsd", "acm013229jsd", "acm013230jsd", "acm013231jsd", "acm013232jsd", "acm013233jsd", "acm013234jsd", "acm013235jsd", "acm013236jsd", "acm013237jsd" ] + }, + "acm013239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013239jsd", + "name" : "RfcFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013250jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013240jsd" : { + "type" : "CodePackage", + "id" : "acm013240jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013241jsd" ] + }, + "acm013241jsd" : { + "type" : "CodePackage", + "id" : "acm013241jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013242jsd" ] + }, + "acm013242jsd" : { + "type" : "CodePackage", + "id" : "acm013242jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013243jsd" ] + }, + "acm013243jsd" : { + "type" : "CodePackage", + "id" : "acm013243jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013244jsd" ] + }, + "acm013244jsd" : { + "type" : "CodePackage", + "id" : "acm013244jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013239jsd" ] + }, + "acm013245jsd" : { + "type" : "ControlElement", + "id" : "acm013245jsd", + "name" : "RfcFetcher" + }, + "acm013246jsd" : { + "type" : "ControlElement", + "id" : "acm013246jsd", + "name" : "getName" + }, + "acm013247jsd" : { + "type" : "ControlElement", + "id" : "acm013247jsd", + "name" : "getHelpPage" + }, + "acm013248jsd" : { + "type" : "ControlElement", + "id" : "acm013248jsd", + "name" : "getUrlForIdentifier" + }, + "acm013249jsd" : { + "type" : "ControlElement", + "id" : "acm013249jsd", + "name" : "getParser" + }, + "acm013250jsd" : { + "type" : "ClassUnit", + "id" : "acm013250jsd", + "name" : "RfcFetcher", + "compilationUnitId" : "acm013239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012370jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012523jsd", "acm013761jsd", "acm020676jsd" ], + "content" : [ "acm013245jsd", "acm013246jsd", "acm013247jsd", "acm013248jsd", "acm013249jsd" ] + }, + "acm013251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013251jsd", + "name" : "ScienceDirect", + "parentId" : "acm012613jsd", + "content" : [ "acm013263jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013252jsd" : { + "type" : "CodePackage", + "id" : "acm013252jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013253jsd" ] + }, + "acm013253jsd" : { + "type" : "CodePackage", + "id" : "acm013253jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013254jsd" ] + }, + "acm013254jsd" : { + "type" : "CodePackage", + "id" : "acm013254jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013255jsd" ] + }, + "acm013255jsd" : { + "type" : "CodePackage", + "id" : "acm013255jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013256jsd" ] + }, + "acm013256jsd" : { + "type" : "CodePackage", + "id" : "acm013256jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013251jsd" ] + }, + "acm013257jsd" : { + "type" : "ControlElement", + "id" : "acm013257jsd", + "name" : "ScienceDirect" + }, + "acm013258jsd" : { + "type" : "ControlElement", + "id" : "acm013258jsd", + "name" : "findFullText" + }, + "acm013259jsd" : { + "type" : "ControlElement", + "id" : "acm013259jsd", + "name" : "getTrustLevel" + }, + "acm013260jsd" : { + "type" : "ControlElement", + "id" : "acm013260jsd", + "name" : "getUrlByDoi" + }, + "acm013261jsd" : { + "type" : "ControlElement", + "id" : "acm013261jsd", + "name" : "getName" + }, + "acm013262jsd" : { + "type" : "ControlElement", + "id" : "acm013262jsd", + "name" : "getApiKey" + }, + "acm013263jsd" : { + "type" : "ClassUnit", + "id" : "acm013263jsd", + "name" : "ScienceDirect", + "compilationUnitId" : "acm013251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd", "acm012928jsd" ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm013263jsd", "acm013325jsd", "acm017281jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm013257jsd", "acm013258jsd", "acm013259jsd", "acm013260jsd", "acm013261jsd", "acm013262jsd" ] + }, + "acm013264jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013264jsd", + "name" : "SemanticScholar", + "parentId" : "acm012613jsd", + "content" : [ "acm013278jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013265jsd" : { + "type" : "CodePackage", + "id" : "acm013265jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013266jsd" ] + }, + "acm013266jsd" : { + "type" : "CodePackage", + "id" : "acm013266jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013267jsd" ] + }, + "acm013267jsd" : { + "type" : "CodePackage", + "id" : "acm013267jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013268jsd" ] + }, + "acm013268jsd" : { + "type" : "CodePackage", + "id" : "acm013268jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013269jsd" ] + }, + "acm013269jsd" : { + "type" : "CodePackage", + "id" : "acm013269jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013264jsd" ] + }, + "acm013270jsd" : { + "type" : "ControlElement", + "id" : "acm013270jsd", + "name" : "findFullText" + }, + "acm013271jsd" : { + "type" : "ControlElement", + "id" : "acm013271jsd", + "name" : "getTrustLevel" + }, + "acm013272jsd" : { + "type" : "ControlElement", + "id" : "acm013272jsd", + "name" : "getURLBySource" + }, + "acm013273jsd" : { + "type" : "ControlElement", + "id" : "acm013273jsd", + "name" : "getURLForQuery" + }, + "acm013274jsd" : { + "type" : "ControlElement", + "id" : "acm013274jsd", + "name" : "getParser" + }, + "acm013275jsd" : { + "type" : "ControlElement", + "id" : "acm013275jsd", + "name" : "jsonItemToBibEntry" + }, + "acm013276jsd" : { + "type" : "ControlElement", + "id" : "acm013276jsd", + "name" : "getName" + }, + "acm013277jsd" : { + "type" : "ControlElement", + "id" : "acm013277jsd", + "name" : "performSearch" + }, + "acm013278jsd" : { + "type" : "ClassUnit", + "id" : "acm013278jsd", + "name" : "SemanticScholar", + "compilationUnitId" : "acm013264jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd", "acm012340jsd", "acm012506jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm013278jsd", "acm013325jsd", "acm013517jsd", "acm015926jsd", "acm018267jsd", "acm018843jsd", "acm018865jsd" ], + "content" : [ "acm013270jsd", "acm013271jsd", "acm013272jsd", "acm013273jsd", "acm013274jsd", "acm013275jsd", "acm013276jsd", "acm013277jsd" ] + }, + "acm013279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013279jsd", + "name" : "SpringerFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013294jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013280jsd" : { + "type" : "CodePackage", + "id" : "acm013280jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013281jsd" ] + }, + "acm013281jsd" : { + "type" : "CodePackage", + "id" : "acm013281jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013282jsd" ] + }, + "acm013282jsd" : { + "type" : "CodePackage", + "id" : "acm013282jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013283jsd" ] + }, + "acm013283jsd" : { + "type" : "CodePackage", + "id" : "acm013283jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013284jsd" ] + }, + "acm013284jsd" : { + "type" : "CodePackage", + "id" : "acm013284jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013279jsd" ] + }, + "acm013285jsd" : { + "type" : "ControlElement", + "id" : "acm013285jsd", + "name" : "SpringerFetcher" + }, + "acm013286jsd" : { + "type" : "ControlElement", + "id" : "acm013286jsd", + "name" : "parseSpringerJSONtoBibtex" + }, + "acm013287jsd" : { + "type" : "ControlElement", + "id" : "acm013287jsd", + "name" : "getName" + }, + "acm013288jsd" : { + "type" : "ControlElement", + "id" : "acm013288jsd", + "name" : "getHelpPage" + }, + "acm013289jsd" : { + "type" : "ControlElement", + "id" : "acm013289jsd", + "name" : "getApiKey" + }, + "acm013290jsd" : { + "type" : "ControlElement", + "id" : "acm013290jsd", + "name" : "getTestUrl" + }, + "acm013291jsd" : { + "type" : "ControlElement", + "id" : "acm013291jsd", + "name" : "getURLForQuery" + }, + "acm013292jsd" : { + "type" : "ControlElement", + "id" : "acm013292jsd", + "name" : "constructComplexQueryString" + }, + "acm013293jsd" : { + "type" : "ControlElement", + "id" : "acm013293jsd", + "name" : "getParser" + }, + "acm013294jsd" : { + "type" : "ClassUnit", + "id" : "acm013294jsd", + "name" : "SpringerFetcher", + "compilationUnitId" : "acm013279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012506jsd", "acm012928jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012467jsd", "acm012523jsd", "acm012875jsd", "acm013294jsd", "acm013630jsd", "acm017281jsd", "acm018267jsd", "acm018525jsd", "acm018673jsd" ], + "content" : [ "acm013285jsd", "acm013286jsd", "acm013287jsd", "acm013288jsd", "acm013289jsd", "acm013290jsd", "acm013291jsd", "acm013292jsd", "acm013293jsd" ] + }, + "acm013295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013295jsd", + "name" : "SpringerLink", + "parentId" : "acm012613jsd", + "content" : [ "acm013305jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013296jsd" : { + "type" : "CodePackage", + "id" : "acm013296jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013297jsd" ] + }, + "acm013297jsd" : { + "type" : "CodePackage", + "id" : "acm013297jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013298jsd" ] + }, + "acm013298jsd" : { + "type" : "CodePackage", + "id" : "acm013298jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013299jsd" ] + }, + "acm013299jsd" : { + "type" : "CodePackage", + "id" : "acm013299jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013300jsd" ] + }, + "acm013300jsd" : { + "type" : "CodePackage", + "id" : "acm013300jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013295jsd" ] + }, + "acm013301jsd" : { + "type" : "ControlElement", + "id" : "acm013301jsd", + "name" : "SpringerLink" + }, + "acm013302jsd" : { + "type" : "ControlElement", + "id" : "acm013302jsd", + "name" : "getApiKey" + }, + "acm013303jsd" : { + "type" : "ControlElement", + "id" : "acm013303jsd", + "name" : "findFullText" + }, + "acm013304jsd" : { + "type" : "ControlElement", + "id" : "acm013304jsd", + "name" : "getTrustLevel" + }, + "acm013305jsd" : { + "type" : "ClassUnit", + "id" : "acm013305jsd", + "name" : "SpringerLink", + "compilationUnitId" : "acm013295jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012340jsd" ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm013305jsd", "acm013325jsd", "acm017281jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm013301jsd", "acm013302jsd", "acm013303jsd", "acm013304jsd" ] + }, + "acm013306jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013306jsd", + "name" : "TitleFetcher", + "parentId" : "acm012613jsd", + "content" : [ "acm013316jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013307jsd" : { + "type" : "CodePackage", + "id" : "acm013307jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013308jsd" ] + }, + "acm013308jsd" : { + "type" : "CodePackage", + "id" : "acm013308jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013309jsd" ] + }, + "acm013309jsd" : { + "type" : "CodePackage", + "id" : "acm013309jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013310jsd" ] + }, + "acm013310jsd" : { + "type" : "CodePackage", + "id" : "acm013310jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013311jsd" ] + }, + "acm013311jsd" : { + "type" : "CodePackage", + "id" : "acm013311jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013306jsd" ] + }, + "acm013312jsd" : { + "type" : "ControlElement", + "id" : "acm013312jsd", + "name" : "TitleFetcher" + }, + "acm013313jsd" : { + "type" : "ControlElement", + "id" : "acm013313jsd", + "name" : "getName" + }, + "acm013314jsd" : { + "type" : "ControlElement", + "id" : "acm013314jsd", + "name" : "getHelpPage" + }, + "acm013315jsd" : { + "type" : "ControlElement", + "id" : "acm013315jsd", + "name" : "performSearchById" + }, + "acm013316jsd" : { + "type" : "ClassUnit", + "id" : "acm013316jsd", + "name" : "TitleFetcher", + "compilationUnitId" : "acm013306jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012360jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm013001jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm013312jsd", "acm013313jsd", "acm013314jsd", "acm013315jsd" ] + }, + "acm013317jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013317jsd", + "name" : "TrustLevel", + "parentId" : "acm012613jsd", + "content" : [ "acm013325jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013318jsd" : { + "type" : "CodePackage", + "id" : "acm013318jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013319jsd" ] + }, + "acm013319jsd" : { + "type" : "CodePackage", + "id" : "acm013319jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013320jsd" ] + }, + "acm013320jsd" : { + "type" : "CodePackage", + "id" : "acm013320jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013321jsd" ] + }, + "acm013321jsd" : { + "type" : "CodePackage", + "id" : "acm013321jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013322jsd" ] + }, + "acm013322jsd" : { + "type" : "CodePackage", + "id" : "acm013322jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013317jsd" ] + }, + "acm013323jsd" : { + "type" : "ControlElement", + "id" : "acm013323jsd", + "name" : "TrustLevel" + }, + "acm013324jsd" : { + "type" : "ControlElement", + "id" : "acm013324jsd", + "name" : "getTrustScore" + }, + "acm013325jsd" : { + "type" : "ClassUnit", + "id" : "acm013325jsd", + "name" : "TrustLevel", + "compilationUnitId" : "acm013317jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013323jsd", "acm013324jsd" ] + }, + "acm013326jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013326jsd", + "name" : "ZbMATH", + "parentId" : "acm012613jsd", + "content" : [ "acm013339jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013327jsd" : { + "type" : "CodePackage", + "id" : "acm013327jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013328jsd" ] + }, + "acm013328jsd" : { + "type" : "CodePackage", + "id" : "acm013328jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013329jsd" ] + }, + "acm013329jsd" : { + "type" : "CodePackage", + "id" : "acm013329jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013330jsd" ] + }, + "acm013330jsd" : { + "type" : "CodePackage", + "id" : "acm013330jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013331jsd" ] + }, + "acm013331jsd" : { + "type" : "CodePackage", + "id" : "acm013331jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013326jsd" ] + }, + "acm013332jsd" : { + "type" : "ControlElement", + "id" : "acm013332jsd", + "name" : "ZbMATH" + }, + "acm013333jsd" : { + "type" : "ControlElement", + "id" : "acm013333jsd", + "name" : "getName" + }, + "acm013334jsd" : { + "type" : "ControlElement", + "id" : "acm013334jsd", + "name" : "getURLForEntry" + }, + "acm013335jsd" : { + "type" : "ControlElement", + "id" : "acm013335jsd", + "name" : "getURLForQuery" + }, + "acm013336jsd" : { + "type" : "ControlElement", + "id" : "acm013336jsd", + "name" : "getUrlForIdentifier" + }, + "acm013337jsd" : { + "type" : "ControlElement", + "id" : "acm013337jsd", + "name" : "getParser" + }, + "acm013338jsd" : { + "type" : "ControlElement", + "id" : "acm013338jsd", + "name" : "doPostCleanup" + }, + "acm013339jsd" : { + "type" : "ClassUnit", + "id" : "acm013339jsd", + "name" : "ZbMATH", + "compilationUnitId" : "acm013326jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012296jsd", "acm012370jsd", "acm012582jsd" ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011223jsd", "acm011951jsd", "acm012314jsd", "acm012523jsd", "acm013667jsd", "acm013761jsd", "acm018175jsd", "acm018267jsd", "acm018813jsd", "acm020676jsd" ], + "content" : [ "acm013332jsd", "acm013333jsd", "acm013334jsd", "acm013335jsd", "acm013336jsd", "acm013337jsd", "acm013338jsd" ] + }, + "acm013340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013340jsd", + "name" : "DoiToBibtexConverterComIsbnFetcher", + "parentId" : "acm013346jsd", + "content" : [ "acm013355jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013341jsd" : { + "type" : "CodePackage", + "id" : "acm013341jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013342jsd" ] + }, + "acm013342jsd" : { + "type" : "CodePackage", + "id" : "acm013342jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013343jsd" ] + }, + "acm013343jsd" : { + "type" : "CodePackage", + "id" : "acm013343jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013344jsd" ] + }, + "acm013344jsd" : { + "type" : "CodePackage", + "id" : "acm013344jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013345jsd" ] + }, + "acm013345jsd" : { + "type" : "CodePackage", + "id" : "acm013345jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013346jsd" ] + }, + "acm013346jsd" : { + "type" : "CodePackage", + "id" : "acm013346jsd", + "name" : "isbntobibtex", + "parentId" : "acm012613jsd", + "content" : [ "acm013340jsd", "acm013356jsd", "acm013368jsd", "acm013383jsd", "acm024864jsd", "acm024880jsd", "acm024894jsd", "acm024912jsd" ] + }, + "acm013347jsd" : { + "type" : "ControlElement", + "id" : "acm013347jsd", + "name" : "DoiToBibtexConverterComIsbnFetcher" + }, + "acm013348jsd" : { + "type" : "ControlElement", + "id" : "acm013348jsd", + "name" : "getName" + }, + "acm013349jsd" : { + "type" : "ControlElement", + "id" : "acm013349jsd", + "name" : "getUrlForIdentifier" + }, + "acm013350jsd" : { + "type" : "ControlElement", + "id" : "acm013350jsd", + "name" : "getParser" + }, + "acm013351jsd" : { + "type" : "ControlElement", + "id" : "acm013351jsd", + "name" : "doPostCleanup" + }, + "acm013352jsd" : { + "type" : "ControlElement", + "id" : "acm013352jsd", + "name" : "jsonItemToBibEntry" + }, + "acm013353jsd" : { + "type" : "ControlElement", + "id" : "acm013353jsd", + "name" : "getElementFromJSONArrayByKey" + }, + "acm013354jsd" : { + "type" : "ControlElement", + "id" : "acm013354jsd", + "name" : "evaluateBibEntryTypeFromString" + }, + "acm013355jsd" : { + "type" : "ClassUnit", + "id" : "acm013355jsd", + "name" : "DoiToBibtexConverterComIsbnFetcher", + "compilationUnitId" : "acm013340jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012640jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm018267jsd", "acm019047jsd" ], + "content" : [ "acm013347jsd", "acm013348jsd", "acm013349jsd", "acm013350jsd", "acm013351jsd", "acm013352jsd", "acm013353jsd", "acm013354jsd" ] + }, + "acm013356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013356jsd", + "name" : "EbookDeIsbnFetcher", + "parentId" : "acm013346jsd", + "content" : [ "acm013367jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013357jsd" : { + "type" : "CodePackage", + "id" : "acm013357jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013358jsd" ] + }, + "acm013358jsd" : { + "type" : "CodePackage", + "id" : "acm013358jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013359jsd" ] + }, + "acm013359jsd" : { + "type" : "CodePackage", + "id" : "acm013359jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013360jsd" ] + }, + "acm013360jsd" : { + "type" : "CodePackage", + "id" : "acm013360jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013361jsd" ] + }, + "acm013361jsd" : { + "type" : "CodePackage", + "id" : "acm013361jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013362jsd" ] + }, + "acm013362jsd" : { + "type" : "CodePackage", + "id" : "acm013362jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm013356jsd" ] + }, + "acm013363jsd" : { + "type" : "ControlElement", + "id" : "acm013363jsd", + "name" : "EbookDeIsbnFetcher" + }, + "acm013364jsd" : { + "type" : "ControlElement", + "id" : "acm013364jsd", + "name" : "getName" + }, + "acm013365jsd" : { + "type" : "ControlElement", + "id" : "acm013365jsd", + "name" : "getUrlForIdentifier" + }, + "acm013366jsd" : { + "type" : "ControlElement", + "id" : "acm013366jsd", + "name" : "doPostCleanup" + }, + "acm013367jsd" : { + "type" : "ClassUnit", + "id" : "acm013367jsd", + "name" : "EbookDeIsbnFetcher", + "compilationUnitId" : "acm013356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012640jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011900jsd", "acm011912jsd", "acm012314jsd", "acm018267jsd" ], + "content" : [ "acm013363jsd", "acm013364jsd", "acm013365jsd", "acm013366jsd" ] + }, + "acm013368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013368jsd", + "name" : "IsbnFetcher", + "parentId" : "acm013346jsd", + "content" : [ "acm013382jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013369jsd" : { + "type" : "CodePackage", + "id" : "acm013369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013370jsd" ] + }, + "acm013370jsd" : { + "type" : "CodePackage", + "id" : "acm013370jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013371jsd" ] + }, + "acm013371jsd" : { + "type" : "CodePackage", + "id" : "acm013371jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013372jsd" ] + }, + "acm013372jsd" : { + "type" : "CodePackage", + "id" : "acm013372jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013373jsd" ] + }, + "acm013373jsd" : { + "type" : "CodePackage", + "id" : "acm013373jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013374jsd" ] + }, + "acm013374jsd" : { + "type" : "CodePackage", + "id" : "acm013374jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm013368jsd" ] + }, + "acm013375jsd" : { + "type" : "ControlElement", + "id" : "acm013375jsd", + "name" : "IsbnFetcher" + }, + "acm013376jsd" : { + "type" : "ControlElement", + "id" : "acm013376jsd", + "name" : "getName" + }, + "acm013377jsd" : { + "type" : "ControlElement", + "id" : "acm013377jsd", + "name" : "getHelpPage" + }, + "acm013378jsd" : { + "type" : "ControlElement", + "id" : "acm013378jsd", + "name" : "performSearchById" + }, + "acm013379jsd" : { + "type" : "ControlElement", + "id" : "acm013379jsd", + "name" : "performSearch" + }, + "acm013380jsd" : { + "type" : "ControlElement", + "id" : "acm013380jsd", + "name" : "addRetryFetcher" + }, + "acm013381jsd" : { + "type" : "ControlElement", + "id" : "acm013381jsd", + "name" : "removeNewlinesAndSpacesFromIdentifier" + }, + "acm013382jsd" : { + "type" : "ClassUnit", + "id" : "acm013382jsd", + "name" : "IsbnFetcher", + "compilationUnitId" : "acm013368jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012286jsd", "acm012360jsd" ], + "datatypeReferencesIds" : [ "acm012258jsd", "acm012314jsd", "acm012640jsd", "acm013382jsd", "acm013400jsd", "acm018267jsd" ], + "content" : [ "acm013375jsd", "acm013376jsd", "acm013377jsd", "acm013378jsd", "acm013379jsd", "acm013380jsd", "acm013381jsd" ] + }, + "acm013383jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013383jsd", + "name" : "OpenLibraryIsbnFetcher", + "parentId" : "acm013346jsd", + "content" : [ "acm013400jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013384jsd" : { + "type" : "CodePackage", + "id" : "acm013384jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013385jsd" ] + }, + "acm013385jsd" : { + "type" : "CodePackage", + "id" : "acm013385jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013386jsd" ] + }, + "acm013386jsd" : { + "type" : "CodePackage", + "id" : "acm013386jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013387jsd" ] + }, + "acm013387jsd" : { + "type" : "CodePackage", + "id" : "acm013387jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013388jsd" ] + }, + "acm013388jsd" : { + "type" : "CodePackage", + "id" : "acm013388jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013389jsd" ] + }, + "acm013389jsd" : { + "type" : "CodePackage", + "id" : "acm013389jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm013383jsd" ] + }, + "acm013390jsd" : { + "type" : "ControlElement", + "id" : "acm013390jsd", + "name" : "OpenLibraryIsbnFetcher" + }, + "acm013391jsd" : { + "type" : "ControlElement", + "id" : "acm013391jsd", + "name" : "getName" + }, + "acm013392jsd" : { + "type" : "ControlElement", + "id" : "acm013392jsd", + "name" : "getUrlForIdentifier" + }, + "acm013393jsd" : { + "type" : "ControlElement", + "id" : "acm013393jsd", + "name" : "getParser" + }, + "acm013394jsd" : { + "type" : "ControlElement", + "id" : "acm013394jsd", + "name" : "doPostCleanup" + }, + "acm013395jsd" : { + "type" : "ControlElement", + "id" : "acm013395jsd", + "name" : "jsonItemToBibEntry" + }, + "acm013396jsd" : { + "type" : "ControlElement", + "id" : "acm013396jsd", + "name" : "toAuthors" + }, + "acm013397jsd" : { + "type" : "ControlElement", + "id" : "acm013397jsd", + "name" : "toAuthor" + }, + "acm013398jsd" : { + "type" : "ControlElement", + "id" : "acm013398jsd", + "name" : "fromWorksToAuthors" + }, + "acm013399jsd" : { + "type" : "ControlElement", + "id" : "acm013399jsd", + "name" : "fromWorkToAuthors" + }, + "acm013400jsd" : { + "type" : "ClassUnit", + "id" : "acm013400jsd", + "name" : "OpenLibraryIsbnFetcher", + "compilationUnitId" : "acm013383jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012640jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012269jsd", "acm012314jsd", "acm012515jsd", "acm012523jsd", "acm013400jsd", "acm018138jsd", "acm018175jsd", "acm018267jsd" ], + "content" : [ "acm013390jsd", "acm013391jsd", "acm013392jsd", "acm013393jsd", "acm013394jsd", "acm013395jsd", "acm013396jsd", "acm013397jsd", "acm013398jsd", "acm013399jsd" ] + }, + "acm013401jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013401jsd", + "name" : "AbstractQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013428jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013402jsd" : { + "type" : "CodePackage", + "id" : "acm013402jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013403jsd" ] + }, + "acm013403jsd" : { + "type" : "CodePackage", + "id" : "acm013403jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013404jsd" ] + }, + "acm013404jsd" : { + "type" : "CodePackage", + "id" : "acm013404jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013405jsd" ] + }, + "acm013405jsd" : { + "type" : "CodePackage", + "id" : "acm013405jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013406jsd" ] + }, + "acm013406jsd" : { + "type" : "CodePackage", + "id" : "acm013406jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013407jsd" ] + }, + "acm013407jsd" : { + "type" : "CodePackage", + "id" : "acm013407jsd", + "name" : "transformers", + "parentId" : "acm012613jsd", + "content" : [ "acm013401jsd", "acm013429jsd", "acm013445jsd", "acm013460jsd", "acm013475jsd", "acm013489jsd", "acm013504jsd", "acm013518jsd", "acm013535jsd", "acm013555jsd", "acm013571jsd", "acm013587jsd", "acm013602jsd", "acm013616jsd", "acm013631jsd", "acm013640jsd", "acm013651jsd", "acm024926jsd", "acm024940jsd", "acm024955jsd", "acm024970jsd", "acm024983jsd", "acm024998jsd", "acm025016jsd", "acm025038jsd", "acm025053jsd", "acm025066jsd", "acm025081jsd", "acm025103jsd", "acm025112jsd", "acm025121jsd" ] + }, + "acm013408jsd" : { + "type" : "ControlElement", + "id" : "acm013408jsd", + "name" : "transform" + }, + "acm013409jsd" : { + "type" : "ControlElement", + "id" : "acm013409jsd", + "name" : "getLogicalAndOperator" + }, + "acm013410jsd" : { + "type" : "ControlElement", + "id" : "acm013410jsd", + "name" : "getLogicalOrOperator" + }, + "acm013411jsd" : { + "type" : "ControlElement", + "id" : "acm013411jsd", + "name" : "getLogicalNotOperator" + }, + "acm013412jsd" : { + "type" : "ControlElement", + "id" : "acm013412jsd", + "name" : "transform" + }, + "acm013413jsd" : { + "type" : "ControlElement", + "id" : "acm013413jsd", + "name" : "handleDoi" + }, + "acm013414jsd" : { + "type" : "ControlElement", + "id" : "acm013414jsd", + "name" : "transform" + }, + "acm013415jsd" : { + "type" : "ControlElement", + "id" : "acm013415jsd", + "name" : "handleAuthor" + }, + "acm013416jsd" : { + "type" : "ControlElement", + "id" : "acm013416jsd", + "name" : "handleTitle" + }, + "acm013417jsd" : { + "type" : "ControlElement", + "id" : "acm013417jsd", + "name" : "handleJournal" + }, + "acm013418jsd" : { + "type" : "ControlElement", + "id" : "acm013418jsd", + "name" : "handleYear" + }, + "acm013419jsd" : { + "type" : "ControlElement", + "id" : "acm013419jsd", + "name" : "parseYearRange" + }, + "acm013420jsd" : { + "type" : "ControlElement", + "id" : "acm013420jsd", + "name" : "handleYearRange" + }, + "acm013421jsd" : { + "type" : "ControlElement", + "id" : "acm013421jsd", + "name" : "handleUnFieldedTerm" + }, + "acm013422jsd" : { + "type" : "ControlElement", + "id" : "acm013422jsd", + "name" : "createKeyValuePair" + }, + "acm013423jsd" : { + "type" : "ControlElement", + "id" : "acm013423jsd", + "name" : "createKeyValuePair" + }, + "acm013424jsd" : { + "type" : "ControlElement", + "id" : "acm013424jsd", + "name" : "handleOtherField" + }, + "acm013425jsd" : { + "type" : "ControlElement", + "id" : "acm013425jsd", + "name" : "transform" + }, + "acm013426jsd" : { + "type" : "ControlElement", + "id" : "acm013426jsd", + "name" : "transformLuceneQuery" + }, + "acm013427jsd" : { + "type" : "ControlElement", + "id" : "acm013427jsd", + "name" : "removeOuterBraces" + }, + "acm013428jsd" : { + "type" : "ClassUnit", + "id" : "acm013428jsd", + "name" : "AbstractQueryTransformer", + "compilationUnitId" : "acm013401jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013428jsd" ], + "content" : [ "acm013408jsd", "acm013409jsd", "acm013410jsd", "acm013411jsd", "acm013412jsd", "acm013413jsd", "acm013414jsd", "acm013415jsd", "acm013416jsd", "acm013417jsd", "acm013418jsd", "acm013419jsd", "acm013420jsd", "acm013421jsd", "acm013422jsd", "acm013423jsd", "acm013424jsd", "acm013425jsd", "acm013426jsd", "acm013427jsd" ] + }, + "acm013429jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013429jsd", + "name" : "ArXivQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013430jsd" : { + "type" : "CodePackage", + "id" : "acm013430jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013431jsd" ] + }, + "acm013431jsd" : { + "type" : "CodePackage", + "id" : "acm013431jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013432jsd" ] + }, + "acm013432jsd" : { + "type" : "CodePackage", + "id" : "acm013432jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013433jsd" ] + }, + "acm013433jsd" : { + "type" : "CodePackage", + "id" : "acm013433jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013434jsd" ] + }, + "acm013434jsd" : { + "type" : "CodePackage", + "id" : "acm013434jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013435jsd" ] + }, + "acm013435jsd" : { + "type" : "CodePackage", + "id" : "acm013435jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013429jsd" ] + }, + "acm013436jsd" : { + "type" : "ControlElement", + "id" : "acm013436jsd", + "name" : "getLogicalAndOperator" + }, + "acm013437jsd" : { + "type" : "ControlElement", + "id" : "acm013437jsd", + "name" : "getLogicalOrOperator" + }, + "acm013438jsd" : { + "type" : "ControlElement", + "id" : "acm013438jsd", + "name" : "getLogicalNotOperator" + }, + "acm013439jsd" : { + "type" : "ControlElement", + "id" : "acm013439jsd", + "name" : "handleAuthor" + }, + "acm013440jsd" : { + "type" : "ControlElement", + "id" : "acm013440jsd", + "name" : "handleTitle" + }, + "acm013441jsd" : { + "type" : "ControlElement", + "id" : "acm013441jsd", + "name" : "handleJournal" + }, + "acm013442jsd" : { + "type" : "ControlElement", + "id" : "acm013442jsd", + "name" : "handleYear" + }, + "acm013443jsd" : { + "type" : "ControlElement", + "id" : "acm013443jsd", + "name" : "handleUnFieldedTerm" + }, + "acm013444jsd" : { + "type" : "ClassUnit", + "id" : "acm013444jsd", + "name" : "ArXivQueryTransformer", + "compilationUnitId" : "acm013429jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013650jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013436jsd", "acm013437jsd", "acm013438jsd", "acm013439jsd", "acm013440jsd", "acm013441jsd", "acm013442jsd", "acm013443jsd" ] + }, + "acm013445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013445jsd", + "name" : "BiodiversityLibraryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013459jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013446jsd" : { + "type" : "CodePackage", + "id" : "acm013446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013447jsd" ] + }, + "acm013447jsd" : { + "type" : "CodePackage", + "id" : "acm013447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013448jsd" ] + }, + "acm013448jsd" : { + "type" : "CodePackage", + "id" : "acm013448jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013449jsd" ] + }, + "acm013449jsd" : { + "type" : "CodePackage", + "id" : "acm013449jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013450jsd" ] + }, + "acm013450jsd" : { + "type" : "CodePackage", + "id" : "acm013450jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013451jsd" ] + }, + "acm013451jsd" : { + "type" : "CodePackage", + "id" : "acm013451jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013445jsd" ] + }, + "acm013452jsd" : { + "type" : "ControlElement", + "id" : "acm013452jsd", + "name" : "getLogicalAndOperator" + }, + "acm013453jsd" : { + "type" : "ControlElement", + "id" : "acm013453jsd", + "name" : "getLogicalOrOperator" + }, + "acm013454jsd" : { + "type" : "ControlElement", + "id" : "acm013454jsd", + "name" : "getLogicalNotOperator" + }, + "acm013455jsd" : { + "type" : "ControlElement", + "id" : "acm013455jsd", + "name" : "handleAuthor" + }, + "acm013456jsd" : { + "type" : "ControlElement", + "id" : "acm013456jsd", + "name" : "handleTitle" + }, + "acm013457jsd" : { + "type" : "ControlElement", + "id" : "acm013457jsd", + "name" : "handleJournal" + }, + "acm013458jsd" : { + "type" : "ControlElement", + "id" : "acm013458jsd", + "name" : "handleYear" + }, + "acm013459jsd" : { + "type" : "ClassUnit", + "id" : "acm013459jsd", + "name" : "BiodiversityLibraryTransformer", + "compilationUnitId" : "acm013445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013452jsd", "acm013453jsd", "acm013454jsd", "acm013455jsd", "acm013456jsd", "acm013457jsd", "acm013458jsd" ] + }, + "acm013460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013460jsd", + "name" : "CollectionOfComputerScienceBibliographiesQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013474jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013461jsd" : { + "type" : "CodePackage", + "id" : "acm013461jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013462jsd" ] + }, + "acm013462jsd" : { + "type" : "CodePackage", + "id" : "acm013462jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013463jsd" ] + }, + "acm013463jsd" : { + "type" : "CodePackage", + "id" : "acm013463jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013464jsd" ] + }, + "acm013464jsd" : { + "type" : "CodePackage", + "id" : "acm013464jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013465jsd" ] + }, + "acm013465jsd" : { + "type" : "CodePackage", + "id" : "acm013465jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013466jsd" ] + }, + "acm013466jsd" : { + "type" : "CodePackage", + "id" : "acm013466jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013460jsd" ] + }, + "acm013467jsd" : { + "type" : "ControlElement", + "id" : "acm013467jsd", + "name" : "getLogicalAndOperator" + }, + "acm013468jsd" : { + "type" : "ControlElement", + "id" : "acm013468jsd", + "name" : "getLogicalOrOperator" + }, + "acm013469jsd" : { + "type" : "ControlElement", + "id" : "acm013469jsd", + "name" : "getLogicalNotOperator" + }, + "acm013470jsd" : { + "type" : "ControlElement", + "id" : "acm013470jsd", + "name" : "handleAuthor" + }, + "acm013471jsd" : { + "type" : "ControlElement", + "id" : "acm013471jsd", + "name" : "handleTitle" + }, + "acm013472jsd" : { + "type" : "ControlElement", + "id" : "acm013472jsd", + "name" : "handleJournal" + }, + "acm013473jsd" : { + "type" : "ControlElement", + "id" : "acm013473jsd", + "name" : "handleYear" + }, + "acm013474jsd" : { + "type" : "ClassUnit", + "id" : "acm013474jsd", + "name" : "CollectionOfComputerScienceBibliographiesQueryTransformer", + "compilationUnitId" : "acm013460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013467jsd", "acm013468jsd", "acm013469jsd", "acm013470jsd", "acm013471jsd", "acm013472jsd", "acm013473jsd" ] + }, + "acm013475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013475jsd", + "name" : "DBLPQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013488jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013476jsd" : { + "type" : "CodePackage", + "id" : "acm013476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013477jsd" ] + }, + "acm013477jsd" : { + "type" : "CodePackage", + "id" : "acm013477jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013478jsd" ] + }, + "acm013478jsd" : { + "type" : "CodePackage", + "id" : "acm013478jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013479jsd" ] + }, + "acm013479jsd" : { + "type" : "CodePackage", + "id" : "acm013479jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013480jsd" ] + }, + "acm013480jsd" : { + "type" : "CodePackage", + "id" : "acm013480jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013481jsd" ] + }, + "acm013481jsd" : { + "type" : "CodePackage", + "id" : "acm013481jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013475jsd" ] + }, + "acm013482jsd" : { + "type" : "ControlElement", + "id" : "acm013482jsd", + "name" : "getLogicalAndOperator" + }, + "acm013483jsd" : { + "type" : "ControlElement", + "id" : "acm013483jsd", + "name" : "getLogicalOrOperator" + }, + "acm013484jsd" : { + "type" : "ControlElement", + "id" : "acm013484jsd", + "name" : "getLogicalNotOperator" + }, + "acm013485jsd" : { + "type" : "ControlElement", + "id" : "acm013485jsd", + "name" : "handleAuthor" + }, + "acm013486jsd" : { + "type" : "ControlElement", + "id" : "acm013486jsd", + "name" : "handleTitle" + }, + "acm013487jsd" : { + "type" : "ControlElement", + "id" : "acm013487jsd", + "name" : "handleJournal" + }, + "acm013488jsd" : { + "type" : "ClassUnit", + "id" : "acm013488jsd", + "name" : "DBLPQueryTransformer", + "compilationUnitId" : "acm013475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013639jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013488jsd" ], + "content" : [ "acm013482jsd", "acm013483jsd", "acm013484jsd", "acm013485jsd", "acm013486jsd", "acm013487jsd" ] + }, + "acm013489jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013489jsd", + "name" : "DefaultLuceneQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013503jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013490jsd" : { + "type" : "CodePackage", + "id" : "acm013490jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013491jsd" ] + }, + "acm013491jsd" : { + "type" : "CodePackage", + "id" : "acm013491jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013492jsd" ] + }, + "acm013492jsd" : { + "type" : "CodePackage", + "id" : "acm013492jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013493jsd" ] + }, + "acm013493jsd" : { + "type" : "CodePackage", + "id" : "acm013493jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013494jsd" ] + }, + "acm013494jsd" : { + "type" : "CodePackage", + "id" : "acm013494jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013495jsd" ] + }, + "acm013495jsd" : { + "type" : "CodePackage", + "id" : "acm013495jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013489jsd" ] + }, + "acm013496jsd" : { + "type" : "ControlElement", + "id" : "acm013496jsd", + "name" : "getLogicalAndOperator" + }, + "acm013497jsd" : { + "type" : "ControlElement", + "id" : "acm013497jsd", + "name" : "getLogicalOrOperator" + }, + "acm013498jsd" : { + "type" : "ControlElement", + "id" : "acm013498jsd", + "name" : "getLogicalNotOperator" + }, + "acm013499jsd" : { + "type" : "ControlElement", + "id" : "acm013499jsd", + "name" : "handleAuthor" + }, + "acm013500jsd" : { + "type" : "ControlElement", + "id" : "acm013500jsd", + "name" : "handleTitle" + }, + "acm013501jsd" : { + "type" : "ControlElement", + "id" : "acm013501jsd", + "name" : "handleJournal" + }, + "acm013502jsd" : { + "type" : "ControlElement", + "id" : "acm013502jsd", + "name" : "handleYear" + }, + "acm013503jsd" : { + "type" : "ClassUnit", + "id" : "acm013503jsd", + "name" : "DefaultLuceneQueryTransformer", + "compilationUnitId" : "acm013489jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013496jsd", "acm013497jsd", "acm013498jsd", "acm013499jsd", "acm013500jsd", "acm013501jsd", "acm013502jsd" ] + }, + "acm013504jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013504jsd", + "name" : "DefaultQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013517jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013505jsd" : { + "type" : "CodePackage", + "id" : "acm013505jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013506jsd" ] + }, + "acm013506jsd" : { + "type" : "CodePackage", + "id" : "acm013506jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013507jsd" ] + }, + "acm013507jsd" : { + "type" : "CodePackage", + "id" : "acm013507jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013508jsd" ] + }, + "acm013508jsd" : { + "type" : "CodePackage", + "id" : "acm013508jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013509jsd" ] + }, + "acm013509jsd" : { + "type" : "CodePackage", + "id" : "acm013509jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013510jsd" ] + }, + "acm013510jsd" : { + "type" : "CodePackage", + "id" : "acm013510jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013504jsd" ] + }, + "acm013511jsd" : { + "type" : "ControlElement", + "id" : "acm013511jsd", + "name" : "getLogicalAndOperator" + }, + "acm013512jsd" : { + "type" : "ControlElement", + "id" : "acm013512jsd", + "name" : "getLogicalOrOperator" + }, + "acm013513jsd" : { + "type" : "ControlElement", + "id" : "acm013513jsd", + "name" : "getLogicalNotOperator" + }, + "acm013514jsd" : { + "type" : "ControlElement", + "id" : "acm013514jsd", + "name" : "handleAuthor" + }, + "acm013515jsd" : { + "type" : "ControlElement", + "id" : "acm013515jsd", + "name" : "handleTitle" + }, + "acm013516jsd" : { + "type" : "ControlElement", + "id" : "acm013516jsd", + "name" : "handleJournal" + }, + "acm013517jsd" : { + "type" : "ClassUnit", + "id" : "acm013517jsd", + "name" : "DefaultQueryTransformer", + "compilationUnitId" : "acm013504jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013639jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013511jsd", "acm013512jsd", "acm013513jsd", "acm013514jsd", "acm013515jsd", "acm013516jsd" ] + }, + "acm013518jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013518jsd", + "name" : "GVKQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013534jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013519jsd" : { + "type" : "CodePackage", + "id" : "acm013519jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013520jsd" ] + }, + "acm013520jsd" : { + "type" : "CodePackage", + "id" : "acm013520jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013521jsd" ] + }, + "acm013521jsd" : { + "type" : "CodePackage", + "id" : "acm013521jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013522jsd" ] + }, + "acm013522jsd" : { + "type" : "CodePackage", + "id" : "acm013522jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013523jsd" ] + }, + "acm013523jsd" : { + "type" : "CodePackage", + "id" : "acm013523jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013524jsd" ] + }, + "acm013524jsd" : { + "type" : "CodePackage", + "id" : "acm013524jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013518jsd" ] + }, + "acm013525jsd" : { + "type" : "ControlElement", + "id" : "acm013525jsd", + "name" : "getLogicalAndOperator" + }, + "acm013526jsd" : { + "type" : "ControlElement", + "id" : "acm013526jsd", + "name" : "getLogicalOrOperator" + }, + "acm013527jsd" : { + "type" : "ControlElement", + "id" : "acm013527jsd", + "name" : "getLogicalNotOperator" + }, + "acm013528jsd" : { + "type" : "ControlElement", + "id" : "acm013528jsd", + "name" : "handleAuthor" + }, + "acm013529jsd" : { + "type" : "ControlElement", + "id" : "acm013529jsd", + "name" : "handleTitle" + }, + "acm013530jsd" : { + "type" : "ControlElement", + "id" : "acm013530jsd", + "name" : "handleJournal" + }, + "acm013531jsd" : { + "type" : "ControlElement", + "id" : "acm013531jsd", + "name" : "handleYear" + }, + "acm013532jsd" : { + "type" : "ControlElement", + "id" : "acm013532jsd", + "name" : "handleUnFieldedTerm" + }, + "acm013533jsd" : { + "type" : "ControlElement", + "id" : "acm013533jsd", + "name" : "handleOtherField" + }, + "acm013534jsd" : { + "type" : "ClassUnit", + "id" : "acm013534jsd", + "name" : "GVKQueryTransformer", + "compilationUnitId" : "acm013518jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013650jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013534jsd" ], + "content" : [ "acm013525jsd", "acm013526jsd", "acm013527jsd", "acm013528jsd", "acm013529jsd", "acm013530jsd", "acm013531jsd", "acm013532jsd", "acm013533jsd" ] + }, + "acm013535jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013535jsd", + "name" : "IEEEQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013554jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013536jsd" : { + "type" : "CodePackage", + "id" : "acm013536jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013537jsd" ] + }, + "acm013537jsd" : { + "type" : "CodePackage", + "id" : "acm013537jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013538jsd" ] + }, + "acm013538jsd" : { + "type" : "CodePackage", + "id" : "acm013538jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013539jsd" ] + }, + "acm013539jsd" : { + "type" : "CodePackage", + "id" : "acm013539jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013540jsd" ] + }, + "acm013540jsd" : { + "type" : "CodePackage", + "id" : "acm013540jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013541jsd" ] + }, + "acm013541jsd" : { + "type" : "CodePackage", + "id" : "acm013541jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013535jsd" ] + }, + "acm013542jsd" : { + "type" : "ControlElement", + "id" : "acm013542jsd", + "name" : "getLogicalAndOperator" + }, + "acm013543jsd" : { + "type" : "ControlElement", + "id" : "acm013543jsd", + "name" : "getLogicalOrOperator" + }, + "acm013544jsd" : { + "type" : "ControlElement", + "id" : "acm013544jsd", + "name" : "getLogicalNotOperator" + }, + "acm013545jsd" : { + "type" : "ControlElement", + "id" : "acm013545jsd", + "name" : "handleAuthor" + }, + "acm013546jsd" : { + "type" : "ControlElement", + "id" : "acm013546jsd", + "name" : "handleTitle" + }, + "acm013547jsd" : { + "type" : "ControlElement", + "id" : "acm013547jsd", + "name" : "handleJournal" + }, + "acm013548jsd" : { + "type" : "ControlElement", + "id" : "acm013548jsd", + "name" : "handleYear" + }, + "acm013549jsd" : { + "type" : "ControlElement", + "id" : "acm013549jsd", + "name" : "handleOtherField" + }, + "acm013550jsd" : { + "type" : "ControlElement", + "id" : "acm013550jsd", + "name" : "handleUnFieldedTerm" + }, + "acm013551jsd" : { + "type" : "ControlElement", + "id" : "acm013551jsd", + "name" : "handleArticleNumber" + }, + "acm013552jsd" : { + "type" : "ControlElement", + "id" : "acm013552jsd", + "name" : "getJournal" + }, + "acm013553jsd" : { + "type" : "ControlElement", + "id" : "acm013553jsd", + "name" : "getArticleNumber" + }, + "acm013554jsd" : { + "type" : "ClassUnit", + "id" : "acm013554jsd", + "name" : "IEEEQueryTransformer", + "compilationUnitId" : "acm013535jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013650jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013542jsd", "acm013543jsd", "acm013544jsd", "acm013545jsd", "acm013546jsd", "acm013547jsd", "acm013548jsd", "acm013549jsd", "acm013550jsd", "acm013551jsd", "acm013552jsd", "acm013553jsd" ] + }, + "acm013555jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013555jsd", + "name" : "JstorQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013570jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013556jsd" : { + "type" : "CodePackage", + "id" : "acm013556jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013557jsd" ] + }, + "acm013557jsd" : { + "type" : "CodePackage", + "id" : "acm013557jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013558jsd" ] + }, + "acm013558jsd" : { + "type" : "CodePackage", + "id" : "acm013558jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013559jsd" ] + }, + "acm013559jsd" : { + "type" : "CodePackage", + "id" : "acm013559jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013560jsd" ] + }, + "acm013560jsd" : { + "type" : "CodePackage", + "id" : "acm013560jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013561jsd" ] + }, + "acm013561jsd" : { + "type" : "CodePackage", + "id" : "acm013561jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013555jsd" ] + }, + "acm013562jsd" : { + "type" : "ControlElement", + "id" : "acm013562jsd", + "name" : "getLogicalAndOperator" + }, + "acm013563jsd" : { + "type" : "ControlElement", + "id" : "acm013563jsd", + "name" : "getLogicalOrOperator" + }, + "acm013564jsd" : { + "type" : "ControlElement", + "id" : "acm013564jsd", + "name" : "getLogicalNotOperator" + }, + "acm013565jsd" : { + "type" : "ControlElement", + "id" : "acm013565jsd", + "name" : "handleAuthor" + }, + "acm013566jsd" : { + "type" : "ControlElement", + "id" : "acm013566jsd", + "name" : "handleTitle" + }, + "acm013567jsd" : { + "type" : "ControlElement", + "id" : "acm013567jsd", + "name" : "handleJournal" + }, + "acm013568jsd" : { + "type" : "ControlElement", + "id" : "acm013568jsd", + "name" : "handleYear" + }, + "acm013569jsd" : { + "type" : "ControlElement", + "id" : "acm013569jsd", + "name" : "handleYearRange" + }, + "acm013570jsd" : { + "type" : "ClassUnit", + "id" : "acm013570jsd", + "name" : "JstorQueryTransformer", + "compilationUnitId" : "acm013555jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013562jsd", "acm013563jsd", "acm013564jsd", "acm013565jsd", "acm013566jsd", "acm013567jsd", "acm013568jsd", "acm013569jsd" ] + }, + "acm013571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013571jsd", + "name" : "MedlineQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013586jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013572jsd" : { + "type" : "CodePackage", + "id" : "acm013572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013573jsd" ] + }, + "acm013573jsd" : { + "type" : "CodePackage", + "id" : "acm013573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013574jsd" ] + }, + "acm013574jsd" : { + "type" : "CodePackage", + "id" : "acm013574jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013575jsd" ] + }, + "acm013575jsd" : { + "type" : "CodePackage", + "id" : "acm013575jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013576jsd" ] + }, + "acm013576jsd" : { + "type" : "CodePackage", + "id" : "acm013576jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013577jsd" ] + }, + "acm013577jsd" : { + "type" : "CodePackage", + "id" : "acm013577jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013571jsd" ] + }, + "acm013578jsd" : { + "type" : "ControlElement", + "id" : "acm013578jsd", + "name" : "getLogicalAndOperator" + }, + "acm013579jsd" : { + "type" : "ControlElement", + "id" : "acm013579jsd", + "name" : "getLogicalOrOperator" + }, + "acm013580jsd" : { + "type" : "ControlElement", + "id" : "acm013580jsd", + "name" : "getLogicalNotOperator" + }, + "acm013581jsd" : { + "type" : "ControlElement", + "id" : "acm013581jsd", + "name" : "handleAuthor" + }, + "acm013582jsd" : { + "type" : "ControlElement", + "id" : "acm013582jsd", + "name" : "handleTitle" + }, + "acm013583jsd" : { + "type" : "ControlElement", + "id" : "acm013583jsd", + "name" : "handleJournal" + }, + "acm013584jsd" : { + "type" : "ControlElement", + "id" : "acm013584jsd", + "name" : "handleYear" + }, + "acm013585jsd" : { + "type" : "ControlElement", + "id" : "acm013585jsd", + "name" : "handleYearRange" + }, + "acm013586jsd" : { + "type" : "ClassUnit", + "id" : "acm013586jsd", + "name" : "MedlineQueryTransformer", + "compilationUnitId" : "acm013571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013578jsd", "acm013579jsd", "acm013580jsd", "acm013581jsd", "acm013582jsd", "acm013583jsd", "acm013584jsd", "acm013585jsd" ] + }, + "acm013587jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013587jsd", + "name" : "ResearchGateQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013601jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013588jsd" : { + "type" : "CodePackage", + "id" : "acm013588jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013589jsd" ] + }, + "acm013589jsd" : { + "type" : "CodePackage", + "id" : "acm013589jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013590jsd" ] + }, + "acm013590jsd" : { + "type" : "CodePackage", + "id" : "acm013590jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013591jsd" ] + }, + "acm013591jsd" : { + "type" : "CodePackage", + "id" : "acm013591jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013592jsd" ] + }, + "acm013592jsd" : { + "type" : "CodePackage", + "id" : "acm013592jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013593jsd" ] + }, + "acm013593jsd" : { + "type" : "CodePackage", + "id" : "acm013593jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013587jsd" ] + }, + "acm013594jsd" : { + "type" : "ControlElement", + "id" : "acm013594jsd", + "name" : "getLogicalAndOperator" + }, + "acm013595jsd" : { + "type" : "ControlElement", + "id" : "acm013595jsd", + "name" : "getLogicalOrOperator" + }, + "acm013596jsd" : { + "type" : "ControlElement", + "id" : "acm013596jsd", + "name" : "getLogicalNotOperator" + }, + "acm013597jsd" : { + "type" : "ControlElement", + "id" : "acm013597jsd", + "name" : "handleAuthor" + }, + "acm013598jsd" : { + "type" : "ControlElement", + "id" : "acm013598jsd", + "name" : "handleTitle" + }, + "acm013599jsd" : { + "type" : "ControlElement", + "id" : "acm013599jsd", + "name" : "handleJournal" + }, + "acm013600jsd" : { + "type" : "ControlElement", + "id" : "acm013600jsd", + "name" : "handleYear" + }, + "acm013601jsd" : { + "type" : "ClassUnit", + "id" : "acm013601jsd", + "name" : "ResearchGateQueryTransformer", + "compilationUnitId" : "acm013587jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013594jsd", "acm013595jsd", "acm013596jsd", "acm013597jsd", "acm013598jsd", "acm013599jsd", "acm013600jsd" ] + }, + "acm013602jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013602jsd", + "name" : "ScholarQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013615jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013603jsd" : { + "type" : "CodePackage", + "id" : "acm013603jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013604jsd" ] + }, + "acm013604jsd" : { + "type" : "CodePackage", + "id" : "acm013604jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013605jsd" ] + }, + "acm013605jsd" : { + "type" : "CodePackage", + "id" : "acm013605jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013606jsd" ] + }, + "acm013606jsd" : { + "type" : "CodePackage", + "id" : "acm013606jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013607jsd" ] + }, + "acm013607jsd" : { + "type" : "CodePackage", + "id" : "acm013607jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013608jsd" ] + }, + "acm013608jsd" : { + "type" : "CodePackage", + "id" : "acm013608jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013602jsd" ] + }, + "acm013609jsd" : { + "type" : "ControlElement", + "id" : "acm013609jsd", + "name" : "getLogicalAndOperator" + }, + "acm013610jsd" : { + "type" : "ControlElement", + "id" : "acm013610jsd", + "name" : "getLogicalOrOperator" + }, + "acm013611jsd" : { + "type" : "ControlElement", + "id" : "acm013611jsd", + "name" : "getLogicalNotOperator" + }, + "acm013612jsd" : { + "type" : "ControlElement", + "id" : "acm013612jsd", + "name" : "handleAuthor" + }, + "acm013613jsd" : { + "type" : "ControlElement", + "id" : "acm013613jsd", + "name" : "handleTitle" + }, + "acm013614jsd" : { + "type" : "ControlElement", + "id" : "acm013614jsd", + "name" : "handleJournal" + }, + "acm013615jsd" : { + "type" : "ClassUnit", + "id" : "acm013615jsd", + "name" : "ScholarQueryTransformer", + "compilationUnitId" : "acm013602jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013639jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013609jsd", "acm013610jsd", "acm013611jsd", "acm013612jsd", "acm013613jsd", "acm013614jsd" ] + }, + "acm013616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013616jsd", + "name" : "SpringerQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013630jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013617jsd" : { + "type" : "CodePackage", + "id" : "acm013617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013618jsd" ] + }, + "acm013618jsd" : { + "type" : "CodePackage", + "id" : "acm013618jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013619jsd" ] + }, + "acm013619jsd" : { + "type" : "CodePackage", + "id" : "acm013619jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013620jsd" ] + }, + "acm013620jsd" : { + "type" : "CodePackage", + "id" : "acm013620jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013621jsd" ] + }, + "acm013621jsd" : { + "type" : "CodePackage", + "id" : "acm013621jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013622jsd" ] + }, + "acm013622jsd" : { + "type" : "CodePackage", + "id" : "acm013622jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013616jsd" ] + }, + "acm013623jsd" : { + "type" : "ControlElement", + "id" : "acm013623jsd", + "name" : "getLogicalAndOperator" + }, + "acm013624jsd" : { + "type" : "ControlElement", + "id" : "acm013624jsd", + "name" : "getLogicalOrOperator" + }, + "acm013625jsd" : { + "type" : "ControlElement", + "id" : "acm013625jsd", + "name" : "getLogicalNotOperator" + }, + "acm013626jsd" : { + "type" : "ControlElement", + "id" : "acm013626jsd", + "name" : "handleAuthor" + }, + "acm013627jsd" : { + "type" : "ControlElement", + "id" : "acm013627jsd", + "name" : "handleTitle" + }, + "acm013628jsd" : { + "type" : "ControlElement", + "id" : "acm013628jsd", + "name" : "handleJournal" + }, + "acm013629jsd" : { + "type" : "ControlElement", + "id" : "acm013629jsd", + "name" : "handleYear" + }, + "acm013630jsd" : { + "type" : "ClassUnit", + "id" : "acm013630jsd", + "name" : "SpringerQueryTransformer", + "compilationUnitId" : "acm013616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013623jsd", "acm013624jsd", "acm013625jsd", "acm013626jsd", "acm013627jsd", "acm013628jsd", "acm013629jsd" ] + }, + "acm013631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013631jsd", + "name" : "YearAndYearRangeByFilteringQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013639jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013632jsd" : { + "type" : "CodePackage", + "id" : "acm013632jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013633jsd" ] + }, + "acm013633jsd" : { + "type" : "CodePackage", + "id" : "acm013633jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013634jsd" ] + }, + "acm013634jsd" : { + "type" : "CodePackage", + "id" : "acm013634jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013635jsd" ] + }, + "acm013635jsd" : { + "type" : "CodePackage", + "id" : "acm013635jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013636jsd" ] + }, + "acm013636jsd" : { + "type" : "CodePackage", + "id" : "acm013636jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013637jsd" ] + }, + "acm013637jsd" : { + "type" : "CodePackage", + "id" : "acm013637jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013631jsd" ] + }, + "acm013638jsd" : { + "type" : "ControlElement", + "id" : "acm013638jsd", + "name" : "handleYear" + }, + "acm013639jsd" : { + "type" : "ClassUnit", + "id" : "acm013639jsd", + "name" : "YearAndYearRangeByFilteringQueryTransformer", + "compilationUnitId" : "acm013631jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013650jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013638jsd" ] + }, + "acm013640jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013640jsd", + "name" : "YearRangeByFilteringQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013650jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013641jsd" : { + "type" : "CodePackage", + "id" : "acm013641jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013642jsd" ] + }, + "acm013642jsd" : { + "type" : "CodePackage", + "id" : "acm013642jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013643jsd" ] + }, + "acm013643jsd" : { + "type" : "CodePackage", + "id" : "acm013643jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013644jsd" ] + }, + "acm013644jsd" : { + "type" : "CodePackage", + "id" : "acm013644jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013645jsd" ] + }, + "acm013645jsd" : { + "type" : "CodePackage", + "id" : "acm013645jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013646jsd" ] + }, + "acm013646jsd" : { + "type" : "CodePackage", + "id" : "acm013646jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013640jsd" ] + }, + "acm013647jsd" : { + "type" : "ControlElement", + "id" : "acm013647jsd", + "name" : "getStartYear" + }, + "acm013648jsd" : { + "type" : "ControlElement", + "id" : "acm013648jsd", + "name" : "getEndYear" + }, + "acm013649jsd" : { + "type" : "ControlElement", + "id" : "acm013649jsd", + "name" : "handleYearRange" + }, + "acm013650jsd" : { + "type" : "ClassUnit", + "id" : "acm013650jsd", + "name" : "YearRangeByFilteringQueryTransformer", + "compilationUnitId" : "acm013640jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013647jsd", "acm013648jsd", "acm013649jsd" ] + }, + "acm013651jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013651jsd", + "name" : "ZbMathQueryTransformer", + "parentId" : "acm013407jsd", + "content" : [ "acm013667jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013652jsd" : { + "type" : "CodePackage", + "id" : "acm013652jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013653jsd" ] + }, + "acm013653jsd" : { + "type" : "CodePackage", + "id" : "acm013653jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013654jsd" ] + }, + "acm013654jsd" : { + "type" : "CodePackage", + "id" : "acm013654jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013655jsd" ] + }, + "acm013655jsd" : { + "type" : "CodePackage", + "id" : "acm013655jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013656jsd" ] + }, + "acm013656jsd" : { + "type" : "CodePackage", + "id" : "acm013656jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm013657jsd" ] + }, + "acm013657jsd" : { + "type" : "CodePackage", + "id" : "acm013657jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm013651jsd" ] + }, + "acm013658jsd" : { + "type" : "ControlElement", + "id" : "acm013658jsd", + "name" : "getLogicalAndOperator" + }, + "acm013659jsd" : { + "type" : "ControlElement", + "id" : "acm013659jsd", + "name" : "getLogicalOrOperator" + }, + "acm013660jsd" : { + "type" : "ControlElement", + "id" : "acm013660jsd", + "name" : "getLogicalNotOperator" + }, + "acm013661jsd" : { + "type" : "ControlElement", + "id" : "acm013661jsd", + "name" : "handleAuthor" + }, + "acm013662jsd" : { + "type" : "ControlElement", + "id" : "acm013662jsd", + "name" : "handleTitle" + }, + "acm013663jsd" : { + "type" : "ControlElement", + "id" : "acm013663jsd", + "name" : "handleJournal" + }, + "acm013664jsd" : { + "type" : "ControlElement", + "id" : "acm013664jsd", + "name" : "handleYear" + }, + "acm013665jsd" : { + "type" : "ControlElement", + "id" : "acm013665jsd", + "name" : "handleYearRange" + }, + "acm013666jsd" : { + "type" : "ControlElement", + "id" : "acm013666jsd", + "name" : "handleUnFieldedTerm" + }, + "acm013667jsd" : { + "type" : "ClassUnit", + "id" : "acm013667jsd", + "name" : "ZbMathQueryTransformer", + "compilationUnitId" : "acm013651jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm013428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013658jsd", "acm013659jsd", "acm013660jsd", "acm013661jsd", "acm013662jsd", "acm013663jsd", "acm013664jsd", "acm013665jsd", "acm013666jsd" ] + }, + "acm013668jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013668jsd", + "name" : "ACMPortalParser", + "parentId" : "acm013673jsd", + "content" : [ "acm013680jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013669jsd" : { + "type" : "CodePackage", + "id" : "acm013669jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013670jsd" ] + }, + "acm013670jsd" : { + "type" : "CodePackage", + "id" : "acm013670jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013671jsd" ] + }, + "acm013671jsd" : { + "type" : "CodePackage", + "id" : "acm013671jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013672jsd" ] + }, + "acm013672jsd" : { + "type" : "CodePackage", + "id" : "acm013672jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013673jsd" ] + }, + "acm013673jsd" : { + "type" : "CodePackage", + "id" : "acm013673jsd", + "name" : "fileformat", + "parentId" : "acm012263jsd", + "content" : [ "acm013668jsd", "acm013681jsd", "acm013693jsd", "acm013710jsd", "acm013762jsd", "acm013790jsd", "acm013833jsd", "acm013842jsd", "acm013856jsd", "acm013877jsd", "acm013892jsd", "acm013919jsd", "acm013931jsd", "acm013951jsd", "acm013976jsd", "acm014027jsd", "acm014050jsd", "acm014086jsd", "acm014109jsd", "acm014125jsd", "acm014138jsd", "acm014162jsd", "acm014181jsd", "acm014198jsd", "acm014218jsd", "acm014234jsd", "acm014251jsd", "acm014265jsd", "acm014287jsd", "acm014300jsd", "acm025136jsd", "acm025150jsd", "acm025160jsd", "acm025173jsd", "acm025182jsd", "acm025204jsd", "acm025346jsd", "acm025368jsd", "acm025380jsd", "acm025389jsd", "acm025401jsd", "acm025412jsd", "acm025432jsd", "acm025449jsd", "acm025462jsd", "acm025475jsd", "acm025494jsd", "acm025522jsd", "acm025536jsd", "acm025548jsd", "acm025575jsd", "acm025586jsd", "acm025600jsd", "acm025612jsd", "acm025626jsd", "acm025646jsd", "acm025656jsd", "acm025670jsd", "acm025682jsd", "acm025695jsd", "acm025707jsd", "acm025719jsd", "acm025736jsd", "acm025746jsd", "acm025759jsd", "acm025776jsd", "acm014318jsd", "acm014353jsd" ] + }, + "acm013674jsd" : { + "type" : "ControlElement", + "id" : "acm013674jsd", + "name" : "parseEntries" + }, + "acm013675jsd" : { + "type" : "ControlElement", + "id" : "acm013675jsd", + "name" : "parseDoiSearchPage" + }, + "acm013676jsd" : { + "type" : "ControlElement", + "id" : "acm013676jsd", + "name" : "getBibEntriesFromDoiList" + }, + "acm013677jsd" : { + "type" : "ControlElement", + "id" : "acm013677jsd", + "name" : "getUrlFromDoiList" + }, + "acm013678jsd" : { + "type" : "ControlElement", + "id" : "acm013678jsd", + "name" : "typeStrToEnum" + }, + "acm013679jsd" : { + "type" : "ControlElement", + "id" : "acm013679jsd", + "name" : "parseBibEntry" + }, + "acm013680jsd" : { + "type" : "ClassUnit", + "id" : "acm013680jsd", + "name" : "ACMPortalParser", + "compilationUnitId" : "acm013668jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm015926jsd", "acm018267jsd", "acm018798jsd", "acm019047jsd" ], + "content" : [ "acm013674jsd", "acm013675jsd", "acm013676jsd", "acm013677jsd", "acm013678jsd", "acm013679jsd" ] + }, + "acm013681jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013681jsd", + "name" : "BiblioscapeImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013692jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013682jsd" : { + "type" : "CodePackage", + "id" : "acm013682jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013683jsd" ] + }, + "acm013683jsd" : { + "type" : "CodePackage", + "id" : "acm013683jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013684jsd" ] + }, + "acm013684jsd" : { + "type" : "CodePackage", + "id" : "acm013684jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013685jsd" ] + }, + "acm013685jsd" : { + "type" : "CodePackage", + "id" : "acm013685jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013686jsd" ] + }, + "acm013686jsd" : { + "type" : "CodePackage", + "id" : "acm013686jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013681jsd" ] + }, + "acm013687jsd" : { + "type" : "ControlElement", + "id" : "acm013687jsd", + "name" : "getName" + }, + "acm013688jsd" : { + "type" : "ControlElement", + "id" : "acm013688jsd", + "name" : "getFileType" + }, + "acm013689jsd" : { + "type" : "ControlElement", + "id" : "acm013689jsd", + "name" : "getDescription" + }, + "acm013690jsd" : { + "type" : "ControlElement", + "id" : "acm013690jsd", + "name" : "isRecognizedFormat" + }, + "acm013691jsd" : { + "type" : "ControlElement", + "id" : "acm013691jsd", + "name" : "importDatabase" + }, + "acm013692jsd" : { + "type" : "ClassUnit", + "id" : "acm013692jsd", + "name" : "BiblioscapeImporter", + "compilationUnitId" : "acm013681jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd" ], + "content" : [ "acm013687jsd", "acm013688jsd", "acm013689jsd", "acm013690jsd", "acm013691jsd" ] + }, + "acm013693jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013693jsd", + "name" : "BibtexImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013709jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013694jsd" : { + "type" : "CodePackage", + "id" : "acm013694jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013695jsd" ] + }, + "acm013695jsd" : { + "type" : "CodePackage", + "id" : "acm013695jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013696jsd" ] + }, + "acm013696jsd" : { + "type" : "CodePackage", + "id" : "acm013696jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013697jsd" ] + }, + "acm013697jsd" : { + "type" : "CodePackage", + "id" : "acm013697jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013698jsd" ] + }, + "acm013698jsd" : { + "type" : "CodePackage", + "id" : "acm013698jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013693jsd" ] + }, + "acm013699jsd" : { + "type" : "ControlElement", + "id" : "acm013699jsd", + "name" : "BibtexImporter" + }, + "acm013700jsd" : { + "type" : "ControlElement", + "id" : "acm013700jsd", + "name" : "isRecognizedFormat" + }, + "acm013701jsd" : { + "type" : "ControlElement", + "id" : "acm013701jsd", + "name" : "importDatabase" + }, + "acm013702jsd" : { + "type" : "ControlElement", + "id" : "acm013702jsd", + "name" : "getEncoding" + }, + "acm013703jsd" : { + "type" : "ControlElement", + "id" : "acm013703jsd", + "name" : "getEncodingResult" + }, + "acm013704jsd" : { + "type" : "ControlElement", + "id" : "acm013704jsd", + "name" : "importDatabase" + }, + "acm013705jsd" : { + "type" : "ControlElement", + "id" : "acm013705jsd", + "name" : "getName" + }, + "acm013706jsd" : { + "type" : "ControlElement", + "id" : "acm013706jsd", + "name" : "getFileType" + }, + "acm013707jsd" : { + "type" : "ControlElement", + "id" : "acm013707jsd", + "name" : "getDescription" + }, + "acm013708jsd" : { + "type" : "ControlElement", + "id" : "acm013708jsd", + "name" : "getSuppliedEncoding" + }, + "acm013709jsd" : { + "type" : "ClassUnit", + "id" : "acm013709jsd", + "name" : "BibtexImporter", + "compilationUnitId" : "acm013693jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013709jsd", "acm013761jsd", "acm017344jsd", "acm020693jsd" ], + "content" : [ "acm013699jsd", "acm013700jsd", "acm013701jsd", "acm013702jsd", "acm013703jsd", "acm013704jsd", "acm013705jsd", "acm013706jsd", "acm013707jsd", "acm013708jsd" ] + }, + "acm013710jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013710jsd", + "name" : "BibtexParser", + "parentId" : "acm013673jsd", + "content" : [ "acm013761jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013711jsd" : { + "type" : "CodePackage", + "id" : "acm013711jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013712jsd" ] + }, + "acm013712jsd" : { + "type" : "CodePackage", + "id" : "acm013712jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013713jsd" ] + }, + "acm013713jsd" : { + "type" : "CodePackage", + "id" : "acm013713jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013714jsd" ] + }, + "acm013714jsd" : { + "type" : "CodePackage", + "id" : "acm013714jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013715jsd" ] + }, + "acm013715jsd" : { + "type" : "CodePackage", + "id" : "acm013715jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013710jsd" ] + }, + "acm013716jsd" : { + "type" : "ControlElement", + "id" : "acm013716jsd", + "name" : "BibtexParser" + }, + "acm013717jsd" : { + "type" : "ControlElement", + "id" : "acm013717jsd", + "name" : "singleFromString" + }, + "acm013718jsd" : { + "type" : "ControlElement", + "id" : "acm013718jsd", + "name" : "parseEntries" + }, + "acm013719jsd" : { + "type" : "ControlElement", + "id" : "acm013719jsd", + "name" : "parseSingleEntry" + }, + "acm013720jsd" : { + "type" : "ControlElement", + "id" : "acm013720jsd", + "name" : "parse" + }, + "acm013721jsd" : { + "type" : "ControlElement", + "id" : "acm013721jsd", + "name" : "determineNewLineSeparator" + }, + "acm013722jsd" : { + "type" : "ControlElement", + "id" : "acm013722jsd", + "name" : "initializeParserResult" + }, + "acm013723jsd" : { + "type" : "ControlElement", + "id" : "acm013723jsd", + "name" : "parseDatabaseID" + }, + "acm013724jsd" : { + "type" : "ControlElement", + "id" : "acm013724jsd", + "name" : "parseFileContent" + }, + "acm013725jsd" : { + "type" : "ControlElement", + "id" : "acm013725jsd", + "name" : "checkEpilog" + }, + "acm013726jsd" : { + "type" : "ControlElement", + "id" : "acm013726jsd", + "name" : "parseRemainingContent" + }, + "acm013727jsd" : { + "type" : "ControlElement", + "id" : "acm013727jsd", + "name" : "parseAndAddEntry" + }, + "acm013728jsd" : { + "type" : "ControlElement", + "id" : "acm013728jsd", + "name" : "parseJabRefComment" + }, + "acm013729jsd" : { + "type" : "ControlElement", + "id" : "acm013729jsd", + "name" : "parseBibtexString" + }, + "acm013730jsd" : { + "type" : "ControlElement", + "id" : "acm013730jsd", + "name" : "dumpTextReadSoFarToString" + }, + "acm013731jsd" : { + "type" : "ControlElement", + "id" : "acm013731jsd", + "name" : "purge" + }, + "acm013732jsd" : { + "type" : "ControlElement", + "id" : "acm013732jsd", + "name" : "getPureTextFromFile" + }, + "acm013733jsd" : { + "type" : "ControlElement", + "id" : "acm013733jsd", + "name" : "purgeEOFCharacters" + }, + "acm013734jsd" : { + "type" : "ControlElement", + "id" : "acm013734jsd", + "name" : "skipWhitespace" + }, + "acm013735jsd" : { + "type" : "ControlElement", + "id" : "acm013735jsd", + "name" : "skipSpace" + }, + "acm013736jsd" : { + "type" : "ControlElement", + "id" : "acm013736jsd", + "name" : "skipOneNewline" + }, + "acm013737jsd" : { + "type" : "ControlElement", + "id" : "acm013737jsd", + "name" : "isEOFCharacter" + }, + "acm013738jsd" : { + "type" : "ControlElement", + "id" : "acm013738jsd", + "name" : "skipAndRecordWhitespace" + }, + "acm013739jsd" : { + "type" : "ControlElement", + "id" : "acm013739jsd", + "name" : "peek" + }, + "acm013740jsd" : { + "type" : "ControlElement", + "id" : "acm013740jsd", + "name" : "peekTwoCharacters" + }, + "acm013741jsd" : { + "type" : "ControlElement", + "id" : "acm013741jsd", + "name" : "read" + }, + "acm013742jsd" : { + "type" : "ControlElement", + "id" : "acm013742jsd", + "name" : "unread" + }, + "acm013743jsd" : { + "type" : "ControlElement", + "id" : "acm013743jsd", + "name" : "parseString" + }, + "acm013744jsd" : { + "type" : "ControlElement", + "id" : "acm013744jsd", + "name" : "parsePreamble" + }, + "acm013745jsd" : { + "type" : "ControlElement", + "id" : "acm013745jsd", + "name" : "parseEntry" + }, + "acm013746jsd" : { + "type" : "ControlElement", + "id" : "acm013746jsd", + "name" : "parseField" + }, + "acm013747jsd" : { + "type" : "ControlElement", + "id" : "acm013747jsd", + "name" : "parseFieldContent" + }, + "acm013748jsd" : { + "type" : "ControlElement", + "id" : "acm013748jsd", + "name" : "parseTextToken" + }, + "acm013749jsd" : { + "type" : "ControlElement", + "id" : "acm013749jsd", + "name" : "fixKey" + }, + "acm013750jsd" : { + "type" : "ControlElement", + "id" : "acm013750jsd", + "name" : "removeWhitespaces" + }, + "acm013751jsd" : { + "type" : "ControlElement", + "id" : "acm013751jsd", + "name" : "unreadBuffer" + }, + "acm013752jsd" : { + "type" : "ControlElement", + "id" : "acm013752jsd", + "name" : "parseKey" + }, + "acm013753jsd" : { + "type" : "ControlElement", + "id" : "acm013753jsd", + "name" : "parseBracketedText" + }, + "acm013754jsd" : { + "type" : "ControlElement", + "id" : "acm013754jsd", + "name" : "isClosingBracketNext" + }, + "acm013755jsd" : { + "type" : "ControlElement", + "id" : "acm013755jsd", + "name" : "parseBracketedFieldContent" + }, + "acm013756jsd" : { + "type" : "ControlElement", + "id" : "acm013756jsd", + "name" : "isEscapeSymbol" + }, + "acm013757jsd" : { + "type" : "ControlElement", + "id" : "acm013757jsd", + "name" : "parseQuotedFieldExactly" + }, + "acm013758jsd" : { + "type" : "ControlElement", + "id" : "acm013758jsd", + "name" : "consume" + }, + "acm013759jsd" : { + "type" : "ControlElement", + "id" : "acm013759jsd", + "name" : "consumeUncritically" + }, + "acm013760jsd" : { + "type" : "ControlElement", + "id" : "acm013760jsd", + "name" : "consume" + }, + "acm013761jsd" : { + "type" : "ClassUnit", + "id" : "acm013761jsd", + "name" : "BibtexParser", + "compilationUnitId" : "acm013710jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm010483jsd", "acm012515jsd", "acm012556jsd", "acm013761jsd", "acm014473jsd", "acm017988jsd", "acm018071jsd", "acm018267jsd", "acm018289jsd", "acm018367jsd", "acm018673jsd", "acm019421jsd", "acm020693jsd" ], + "content" : [ "acm013716jsd", "acm013717jsd", "acm013718jsd", "acm013719jsd", "acm013720jsd", "acm013721jsd", "acm013722jsd", "acm013723jsd", "acm013724jsd", "acm013725jsd", "acm013726jsd", "acm013727jsd", "acm013728jsd", "acm013729jsd", "acm013730jsd", "acm013731jsd", "acm013732jsd", "acm013733jsd", "acm013734jsd", "acm013735jsd", "acm013736jsd", "acm013737jsd", "acm013738jsd", "acm013739jsd", "acm013740jsd", "acm013741jsd", "acm013742jsd", "acm013743jsd", "acm013744jsd", "acm013745jsd", "acm013746jsd", "acm013747jsd", "acm013748jsd", "acm013749jsd", "acm013750jsd", "acm013751jsd", "acm013752jsd", "acm013753jsd", "acm013754jsd", "acm013755jsd", "acm013756jsd", "acm013757jsd", "acm013758jsd", "acm013759jsd", "acm013760jsd" ] + }, + "acm013762jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013762jsd", + "name" : "CffImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013781jsd", "acm013784jsd", "acm013787jsd", "acm013789jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013763jsd" : { + "type" : "CodePackage", + "id" : "acm013763jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013764jsd" ] + }, + "acm013764jsd" : { + "type" : "CodePackage", + "id" : "acm013764jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013765jsd" ] + }, + "acm013765jsd" : { + "type" : "CodePackage", + "id" : "acm013765jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013766jsd" ] + }, + "acm013766jsd" : { + "type" : "CodePackage", + "id" : "acm013766jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013767jsd" ] + }, + "acm013767jsd" : { + "type" : "CodePackage", + "id" : "acm013767jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013762jsd" ] + }, + "acm013768jsd" : { + "type" : "ControlElement", + "id" : "acm013768jsd", + "name" : "getName" + }, + "acm013769jsd" : { + "type" : "ControlElement", + "id" : "acm013769jsd", + "name" : "getFileType" + }, + "acm013770jsd" : { + "type" : "ControlElement", + "id" : "acm013770jsd", + "name" : "getId" + }, + "acm013771jsd" : { + "type" : "ControlElement", + "id" : "acm013771jsd", + "name" : "getDescription" + }, + "acm013772jsd" : { + "type" : "ControlElement", + "id" : "acm013772jsd", + "name" : "CffFormat" + }, + "acm013773jsd" : { + "type" : "ControlElement", + "id" : "acm013773jsd", + "name" : "setValues" + }, + "acm013774jsd" : { + "type" : "ControlElement", + "id" : "acm013774jsd", + "name" : "CffAuthor" + }, + "acm013775jsd" : { + "type" : "ControlElement", + "id" : "acm013775jsd", + "name" : "setValues" + }, + "acm013776jsd" : { + "type" : "ControlElement", + "id" : "acm013776jsd", + "name" : "CffIdentifier" + }, + "acm013777jsd" : { + "type" : "ControlElement", + "id" : "acm013777jsd", + "name" : "importDatabase" + }, + "acm013778jsd" : { + "type" : "ControlElement", + "id" : "acm013778jsd", + "name" : "isRecognizedFormat" + }, + "acm013779jsd" : { + "type" : "ControlElement", + "id" : "acm013779jsd", + "name" : "getFieldMappings" + }, + "acm013780jsd" : { + "type" : "ControlElement", + "id" : "acm013780jsd", + "name" : "getUnmappedFields" + }, + "acm013781jsd" : { + "type" : "ClassUnit", + "id" : "acm013781jsd", + "name" : "CffImporter", + "compilationUnitId" : "acm013762jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013784jsd", "acm013787jsd", "acm013789jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm019047jsd" ], + "content" : [ "acm013768jsd", "acm013769jsd", "acm013770jsd", "acm013771jsd", "acm013772jsd", "acm013773jsd", "acm013774jsd", "acm013775jsd", "acm013776jsd", "acm013777jsd", "acm013778jsd", "acm013779jsd", "acm013780jsd" ] + }, + "acm013782jsd" : { + "type" : "ControlElement", + "id" : "acm013782jsd", + "name" : "CffFormat" + }, + "acm013783jsd" : { + "type" : "ControlElement", + "id" : "acm013783jsd", + "name" : "setValues" + }, + "acm013784jsd" : { + "type" : "ClassUnit", + "id" : "acm013784jsd", + "name" : "CffFormat", + "compilationUnitId" : "acm013762jsd", + "parentDatatypeId" : "acm013781jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013787jsd", "acm013789jsd" ], + "content" : [ "acm013782jsd", "acm013783jsd" ] + }, + "acm013785jsd" : { + "type" : "ControlElement", + "id" : "acm013785jsd", + "name" : "CffAuthor" + }, + "acm013786jsd" : { + "type" : "ControlElement", + "id" : "acm013786jsd", + "name" : "setValues" + }, + "acm013787jsd" : { + "type" : "ClassUnit", + "id" : "acm013787jsd", + "name" : "CffAuthor", + "compilationUnitId" : "acm013762jsd", + "parentDatatypeId" : "acm013781jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013785jsd", "acm013786jsd" ] + }, + "acm013788jsd" : { + "type" : "ControlElement", + "id" : "acm013788jsd", + "name" : "CffIdentifier" + }, + "acm013789jsd" : { + "type" : "ClassUnit", + "id" : "acm013789jsd", + "name" : "CffIdentifier", + "compilationUnitId" : "acm013762jsd", + "parentDatatypeId" : "acm013781jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013788jsd" ] + }, + "acm013790jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013790jsd", + "name" : "CitaviXmlImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013828jsd", "acm013832jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013791jsd" : { + "type" : "CodePackage", + "id" : "acm013791jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013792jsd" ] + }, + "acm013792jsd" : { + "type" : "CodePackage", + "id" : "acm013792jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013793jsd" ] + }, + "acm013793jsd" : { + "type" : "CodePackage", + "id" : "acm013793jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013794jsd" ] + }, + "acm013794jsd" : { + "type" : "CodePackage", + "id" : "acm013794jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013795jsd" ] + }, + "acm013795jsd" : { + "type" : "CodePackage", + "id" : "acm013795jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013790jsd" ] + }, + "acm013796jsd" : { + "type" : "ControlElement", + "id" : "acm013796jsd", + "name" : "getName" + }, + "acm013797jsd" : { + "type" : "ControlElement", + "id" : "acm013797jsd", + "name" : "getFileType" + }, + "acm013798jsd" : { + "type" : "ControlElement", + "id" : "acm013798jsd", + "name" : "getId" + }, + "acm013799jsd" : { + "type" : "ControlElement", + "id" : "acm013799jsd", + "name" : "getDescription" + }, + "acm013800jsd" : { + "type" : "ControlElement", + "id" : "acm013800jsd", + "name" : "isRecognizedFormat" + }, + "acm013801jsd" : { + "type" : "ControlElement", + "id" : "acm013801jsd", + "name" : "isRecognizedFormat" + }, + "acm013802jsd" : { + "type" : "ControlElement", + "id" : "acm013802jsd", + "name" : "importDatabase" + }, + "acm013803jsd" : { + "type" : "ControlElement", + "id" : "acm013803jsd", + "name" : "parseDataList" + }, + "acm013804jsd" : { + "type" : "ControlElement", + "id" : "acm013804jsd", + "name" : "parseData" + }, + "acm013805jsd" : { + "type" : "ControlElement", + "id" : "acm013805jsd", + "name" : "getType" + }, + "acm013806jsd" : { + "type" : "ControlElement", + "id" : "acm013806jsd", + "name" : "convertRefNameToType" + }, + "acm013807jsd" : { + "type" : "ControlElement", + "id" : "acm013807jsd", + "name" : "getPages" + }, + "acm013808jsd" : { + "type" : "ControlElement", + "id" : "acm013808jsd", + "name" : "getAuthorName" + }, + "acm013809jsd" : { + "type" : "ControlElement", + "id" : "acm013809jsd", + "name" : "buildPersonList" + }, + "acm013810jsd" : { + "type" : "ControlElement", + "id" : "acm013810jsd", + "name" : "buildKeywordList" + }, + "acm013811jsd" : { + "type" : "ControlElement", + "id" : "acm013811jsd", + "name" : "buildPublisherList" + }, + "acm013812jsd" : { + "type" : "ControlElement", + "id" : "acm013812jsd", + "name" : "getEditorName" + }, + "acm013813jsd" : { + "type" : "ControlElement", + "id" : "acm013813jsd", + "name" : "getKeywords" + }, + "acm013814jsd" : { + "type" : "ControlElement", + "id" : "acm013814jsd", + "name" : "getPublisher" + }, + "acm013815jsd" : { + "type" : "ControlElement", + "id" : "acm013815jsd", + "name" : "getKnowledgeItem" + }, + "acm013816jsd" : { + "type" : "ControlElement", + "id" : "acm013816jsd", + "name" : "cleanUpText" + }, + "acm013817jsd" : { + "type" : "ControlElement", + "id" : "acm013817jsd", + "name" : "removeSpacesBeforeLineBreak" + }, + "acm013818jsd" : { + "type" : "ControlElement", + "id" : "acm013818jsd", + "name" : "initUnmarshaller" + }, + "acm013819jsd" : { + "type" : "ControlElement", + "id" : "acm013819jsd", + "name" : "unmarshallRoot" + }, + "acm013820jsd" : { + "type" : "ControlElement", + "id" : "acm013820jsd", + "name" : "importDatabase" + }, + "acm013821jsd" : { + "type" : "ControlElement", + "id" : "acm013821jsd", + "name" : "parseEntries" + }, + "acm013822jsd" : { + "type" : "ControlElement", + "id" : "acm013822jsd", + "name" : "getReaderFromZip" + }, + "acm013823jsd" : { + "type" : "ControlElement", + "id" : "acm013823jsd", + "name" : "checkForUtf8BOMAndDiscardIfAny" + }, + "acm013824jsd" : { + "type" : "ControlElement", + "id" : "acm013824jsd", + "name" : "clean" + }, + "acm013825jsd" : { + "type" : "ControlElement", + "id" : "acm013825jsd", + "name" : "QuotationTypeMapping" + }, + "acm013826jsd" : { + "type" : "ControlElement", + "id" : "acm013826jsd", + "name" : "getName" + }, + "acm013827jsd" : { + "type" : "ControlElement", + "id" : "acm013827jsd", + "name" : "getCitaviIndexType" + }, + "acm013828jsd" : { + "type" : "ClassUnit", + "id" : "acm013828jsd", + "name" : "CitaviXmlImporter", + "compilationUnitId" : "acm013790jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm011828jsd", "acm011912jsd", "acm012556jsd", "acm013828jsd", "acm013832jsd", "acm017344jsd", "acm018138jsd", "acm018267jsd", "acm018443jsd", "acm018479jsd", "acm019005jsd" ], + "content" : [ "acm013796jsd", "acm013797jsd", "acm013798jsd", "acm013799jsd", "acm013800jsd", "acm013801jsd", "acm013802jsd", "acm013803jsd", "acm013804jsd", "acm013805jsd", "acm013806jsd", "acm013807jsd", "acm013808jsd", "acm013809jsd", "acm013810jsd", "acm013811jsd", "acm013812jsd", "acm013813jsd", "acm013814jsd", "acm013815jsd", "acm013816jsd", "acm013817jsd", "acm013818jsd", "acm013819jsd", "acm013820jsd", "acm013821jsd", "acm013822jsd", "acm013823jsd", "acm013824jsd", "acm013825jsd", "acm013826jsd", "acm013827jsd" ] + }, + "acm013829jsd" : { + "type" : "ControlElement", + "id" : "acm013829jsd", + "name" : "QuotationTypeMapping" + }, + "acm013830jsd" : { + "type" : "ControlElement", + "id" : "acm013830jsd", + "name" : "getName" + }, + "acm013831jsd" : { + "type" : "ControlElement", + "id" : "acm013831jsd", + "name" : "getCitaviIndexType" + }, + "acm013832jsd" : { + "type" : "ClassUnit", + "id" : "acm013832jsd", + "name" : "QuotationTypeMapping", + "compilationUnitId" : "acm013790jsd", + "parentDatatypeId" : "acm013828jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm013829jsd", "acm013830jsd", "acm013831jsd" ] + }, + "acm013833jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013833jsd", + "name" : "CoinsParser", + "parentId" : "acm013673jsd", + "content" : [ "acm013841jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013834jsd" : { + "type" : "CodePackage", + "id" : "acm013834jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013835jsd" ] + }, + "acm013835jsd" : { + "type" : "CodePackage", + "id" : "acm013835jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013836jsd" ] + }, + "acm013836jsd" : { + "type" : "CodePackage", + "id" : "acm013836jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013837jsd" ] + }, + "acm013837jsd" : { + "type" : "CodePackage", + "id" : "acm013837jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013838jsd" ] + }, + "acm013838jsd" : { + "type" : "CodePackage", + "id" : "acm013838jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013833jsd" ] + }, + "acm013839jsd" : { + "type" : "ControlElement", + "id" : "acm013839jsd", + "name" : "parseEntries" + }, + "acm013840jsd" : { + "type" : "ControlElement", + "id" : "acm013840jsd", + "name" : "appendData" + }, + "acm013841jsd" : { + "type" : "ClassUnit", + "id" : "acm013841jsd", + "name" : "CoinsParser", + "compilationUnitId" : "acm013833jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm013839jsd", "acm013840jsd" ] + }, + "acm013842jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013842jsd", + "name" : "CopacImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013855jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013843jsd" : { + "type" : "CodePackage", + "id" : "acm013843jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013844jsd" ] + }, + "acm013844jsd" : { + "type" : "CodePackage", + "id" : "acm013844jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013845jsd" ] + }, + "acm013845jsd" : { + "type" : "CodePackage", + "id" : "acm013845jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013846jsd" ] + }, + "acm013846jsd" : { + "type" : "CodePackage", + "id" : "acm013846jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013847jsd" ] + }, + "acm013847jsd" : { + "type" : "CodePackage", + "id" : "acm013847jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013842jsd" ] + }, + "acm013848jsd" : { + "type" : "ControlElement", + "id" : "acm013848jsd", + "name" : "getName" + }, + "acm013849jsd" : { + "type" : "ControlElement", + "id" : "acm013849jsd", + "name" : "getFileType" + }, + "acm013850jsd" : { + "type" : "ControlElement", + "id" : "acm013850jsd", + "name" : "getId" + }, + "acm013851jsd" : { + "type" : "ControlElement", + "id" : "acm013851jsd", + "name" : "getDescription" + }, + "acm013852jsd" : { + "type" : "ControlElement", + "id" : "acm013852jsd", + "name" : "isRecognizedFormat" + }, + "acm013853jsd" : { + "type" : "ControlElement", + "id" : "acm013853jsd", + "name" : "setOrAppend" + }, + "acm013854jsd" : { + "type" : "ControlElement", + "id" : "acm013854jsd", + "name" : "importDatabase" + }, + "acm013855jsd" : { + "type" : "ClassUnit", + "id" : "acm013855jsd", + "name" : "CopacImporter", + "compilationUnitId" : "acm013842jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm013848jsd", "acm013849jsd", "acm013850jsd", "acm013851jsd", "acm013852jsd", "acm013853jsd", "acm013854jsd" ] + }, + "acm013856jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013856jsd", + "name" : "CustomImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013876jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013857jsd" : { + "type" : "CodePackage", + "id" : "acm013857jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013858jsd" ] + }, + "acm013858jsd" : { + "type" : "CodePackage", + "id" : "acm013858jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013859jsd" ] + }, + "acm013859jsd" : { + "type" : "CodePackage", + "id" : "acm013859jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013860jsd" ] + }, + "acm013860jsd" : { + "type" : "CodePackage", + "id" : "acm013860jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013861jsd" ] + }, + "acm013861jsd" : { + "type" : "CodePackage", + "id" : "acm013861jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013856jsd" ] + }, + "acm013862jsd" : { + "type" : "ControlElement", + "id" : "acm013862jsd", + "name" : "CustomImporter" + }, + "acm013863jsd" : { + "type" : "ControlElement", + "id" : "acm013863jsd", + "name" : "load" + }, + "acm013864jsd" : { + "type" : "ControlElement", + "id" : "acm013864jsd", + "name" : "getAsStringList" + }, + "acm013865jsd" : { + "type" : "ControlElement", + "id" : "acm013865jsd", + "name" : "getClassName" + }, + "acm013866jsd" : { + "type" : "ControlElement", + "id" : "acm013866jsd", + "name" : "getBasePath" + }, + "acm013867jsd" : { + "type" : "ControlElement", + "id" : "acm013867jsd", + "name" : "equals" + }, + "acm013868jsd" : { + "type" : "ControlElement", + "id" : "acm013868jsd", + "name" : "isRecognizedFormat" + }, + "acm013869jsd" : { + "type" : "ControlElement", + "id" : "acm013869jsd", + "name" : "importDatabase" + }, + "acm013870jsd" : { + "type" : "ControlElement", + "id" : "acm013870jsd", + "name" : "getName" + }, + "acm013871jsd" : { + "type" : "ControlElement", + "id" : "acm013871jsd", + "name" : "getFileType" + }, + "acm013872jsd" : { + "type" : "ControlElement", + "id" : "acm013872jsd", + "name" : "getId" + }, + "acm013873jsd" : { + "type" : "ControlElement", + "id" : "acm013873jsd", + "name" : "getDescription" + }, + "acm013874jsd" : { + "type" : "ControlElement", + "id" : "acm013874jsd", + "name" : "hashCode" + }, + "acm013875jsd" : { + "type" : "ControlElement", + "id" : "acm013875jsd", + "name" : "toString" + }, + "acm013876jsd" : { + "type" : "ClassUnit", + "id" : "acm013876jsd", + "name" : "CustomImporter", + "compilationUnitId" : "acm013856jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm012556jsd", "acm013876jsd", "acm017320jsd" ], + "content" : [ "acm013862jsd", "acm013863jsd", "acm013864jsd", "acm013865jsd", "acm013866jsd", "acm013867jsd", "acm013868jsd", "acm013869jsd", "acm013870jsd", "acm013871jsd", "acm013872jsd", "acm013873jsd", "acm013874jsd", "acm013875jsd" ] + }, + "acm013877jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013877jsd", + "name" : "EndnoteImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013891jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013878jsd" : { + "type" : "CodePackage", + "id" : "acm013878jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013879jsd" ] + }, + "acm013879jsd" : { + "type" : "CodePackage", + "id" : "acm013879jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013880jsd" ] + }, + "acm013880jsd" : { + "type" : "CodePackage", + "id" : "acm013880jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013881jsd" ] + }, + "acm013881jsd" : { + "type" : "CodePackage", + "id" : "acm013881jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013882jsd" ] + }, + "acm013882jsd" : { + "type" : "CodePackage", + "id" : "acm013882jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013877jsd" ] + }, + "acm013883jsd" : { + "type" : "ControlElement", + "id" : "acm013883jsd", + "name" : "EndnoteImporter" + }, + "acm013884jsd" : { + "type" : "ControlElement", + "id" : "acm013884jsd", + "name" : "getName" + }, + "acm013885jsd" : { + "type" : "ControlElement", + "id" : "acm013885jsd", + "name" : "getFileType" + }, + "acm013886jsd" : { + "type" : "ControlElement", + "id" : "acm013886jsd", + "name" : "getId" + }, + "acm013887jsd" : { + "type" : "ControlElement", + "id" : "acm013887jsd", + "name" : "getDescription" + }, + "acm013888jsd" : { + "type" : "ControlElement", + "id" : "acm013888jsd", + "name" : "isRecognizedFormat" + }, + "acm013889jsd" : { + "type" : "ControlElement", + "id" : "acm013889jsd", + "name" : "importDatabase" + }, + "acm013890jsd" : { + "type" : "ControlElement", + "id" : "acm013890jsd", + "name" : "fixAuthor" + }, + "acm013891jsd" : { + "type" : "ClassUnit", + "id" : "acm013891jsd", + "name" : "EndnoteImporter", + "compilationUnitId" : "acm013877jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd" ], + "content" : [ "acm013883jsd", "acm013884jsd", "acm013885jsd", "acm013886jsd", "acm013887jsd", "acm013888jsd", "acm013889jsd", "acm013890jsd" ] + }, + "acm013892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013892jsd", + "name" : "EndnoteXmlImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013918jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013893jsd" : { + "type" : "CodePackage", + "id" : "acm013893jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013894jsd" ] + }, + "acm013894jsd" : { + "type" : "CodePackage", + "id" : "acm013894jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013895jsd" ] + }, + "acm013895jsd" : { + "type" : "CodePackage", + "id" : "acm013895jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013896jsd" ] + }, + "acm013896jsd" : { + "type" : "CodePackage", + "id" : "acm013896jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013897jsd" ] + }, + "acm013897jsd" : { + "type" : "CodePackage", + "id" : "acm013897jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013892jsd" ] + }, + "acm013898jsd" : { + "type" : "ControlElement", + "id" : "acm013898jsd", + "name" : "EndnoteXmlImporter" + }, + "acm013899jsd" : { + "type" : "ControlElement", + "id" : "acm013899jsd", + "name" : "getName" + }, + "acm013900jsd" : { + "type" : "ControlElement", + "id" : "acm013900jsd", + "name" : "getFileType" + }, + "acm013901jsd" : { + "type" : "ControlElement", + "id" : "acm013901jsd", + "name" : "getId" + }, + "acm013902jsd" : { + "type" : "ControlElement", + "id" : "acm013902jsd", + "name" : "getDescription" + }, + "acm013903jsd" : { + "type" : "ControlElement", + "id" : "acm013903jsd", + "name" : "isRecognizedFormat" + }, + "acm013904jsd" : { + "type" : "ControlElement", + "id" : "acm013904jsd", + "name" : "importDatabase" + }, + "acm013905jsd" : { + "type" : "ControlElement", + "id" : "acm013905jsd", + "name" : "unmarshallRoot" + }, + "acm013906jsd" : { + "type" : "ControlElement", + "id" : "acm013906jsd", + "name" : "initUnmarshaller" + }, + "acm013907jsd" : { + "type" : "ControlElement", + "id" : "acm013907jsd", + "name" : "convertRefNameToType" + }, + "acm013908jsd" : { + "type" : "ControlElement", + "id" : "acm013908jsd", + "name" : "parseRecord" + }, + "acm013909jsd" : { + "type" : "ControlElement", + "id" : "acm013909jsd", + "name" : "getType" + }, + "acm013910jsd" : { + "type" : "ControlElement", + "id" : "acm013910jsd", + "name" : "getLinkedFiles" + }, + "acm013911jsd" : { + "type" : "ControlElement", + "id" : "acm013911jsd", + "name" : "getUrl" + }, + "acm013912jsd" : { + "type" : "ControlElement", + "id" : "acm013912jsd", + "name" : "mergeStyleContents" + }, + "acm013913jsd" : { + "type" : "ControlElement", + "id" : "acm013913jsd", + "name" : "getUrlValue" + }, + "acm013914jsd" : { + "type" : "ControlElement", + "id" : "acm013914jsd", + "name" : "getKeywords" + }, + "acm013915jsd" : { + "type" : "ControlElement", + "id" : "acm013915jsd", + "name" : "getAuthors" + }, + "acm013916jsd" : { + "type" : "ControlElement", + "id" : "acm013916jsd", + "name" : "clean" + }, + "acm013917jsd" : { + "type" : "ControlElement", + "id" : "acm013917jsd", + "name" : "parseEntries" + }, + "acm013918jsd" : { + "type" : "ClassUnit", + "id" : "acm013918jsd", + "name" : "EndnoteXmlImporter", + "compilationUnitId" : "acm013892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013918jsd", "acm017344jsd", "acm018267jsd", "acm018509jsd", "acm019005jsd" ], + "content" : [ "acm013898jsd", "acm013899jsd", "acm013900jsd", "acm013901jsd", "acm013902jsd", "acm013903jsd", "acm013904jsd", "acm013905jsd", "acm013906jsd", "acm013907jsd", "acm013908jsd", "acm013909jsd", "acm013910jsd", "acm013911jsd", "acm013912jsd", "acm013913jsd", "acm013914jsd", "acm013915jsd", "acm013916jsd", "acm013917jsd" ] + }, + "acm013919jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013919jsd", + "name" : "InspecImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013930jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013920jsd" : { + "type" : "CodePackage", + "id" : "acm013920jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013921jsd" ] + }, + "acm013921jsd" : { + "type" : "CodePackage", + "id" : "acm013921jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013922jsd" ] + }, + "acm013922jsd" : { + "type" : "CodePackage", + "id" : "acm013922jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013923jsd" ] + }, + "acm013923jsd" : { + "type" : "CodePackage", + "id" : "acm013923jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013924jsd" ] + }, + "acm013924jsd" : { + "type" : "CodePackage", + "id" : "acm013924jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013919jsd" ] + }, + "acm013925jsd" : { + "type" : "ControlElement", + "id" : "acm013925jsd", + "name" : "getName" + }, + "acm013926jsd" : { + "type" : "ControlElement", + "id" : "acm013926jsd", + "name" : "getFileType" + }, + "acm013927jsd" : { + "type" : "ControlElement", + "id" : "acm013927jsd", + "name" : "getDescription" + }, + "acm013928jsd" : { + "type" : "ControlElement", + "id" : "acm013928jsd", + "name" : "isRecognizedFormat" + }, + "acm013929jsd" : { + "type" : "ControlElement", + "id" : "acm013929jsd", + "name" : "importDatabase" + }, + "acm013930jsd" : { + "type" : "ClassUnit", + "id" : "acm013930jsd", + "name" : "InspecImporter", + "compilationUnitId" : "acm013919jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd" ], + "content" : [ "acm013925jsd", "acm013926jsd", "acm013927jsd", "acm013928jsd", "acm013929jsd" ] + }, + "acm013931jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013931jsd", + "name" : "IsiImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm013950jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013932jsd" : { + "type" : "CodePackage", + "id" : "acm013932jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013933jsd" ] + }, + "acm013933jsd" : { + "type" : "CodePackage", + "id" : "acm013933jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013934jsd" ] + }, + "acm013934jsd" : { + "type" : "CodePackage", + "id" : "acm013934jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013935jsd" ] + }, + "acm013935jsd" : { + "type" : "CodePackage", + "id" : "acm013935jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013936jsd" ] + }, + "acm013936jsd" : { + "type" : "CodePackage", + "id" : "acm013936jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013931jsd" ] + }, + "acm013937jsd" : { + "type" : "ControlElement", + "id" : "acm013937jsd", + "name" : "getName" + }, + "acm013938jsd" : { + "type" : "ControlElement", + "id" : "acm013938jsd", + "name" : "getFileType" + }, + "acm013939jsd" : { + "type" : "ControlElement", + "id" : "acm013939jsd", + "name" : "getId" + }, + "acm013940jsd" : { + "type" : "ControlElement", + "id" : "acm013940jsd", + "name" : "getDescription" + }, + "acm013941jsd" : { + "type" : "ControlElement", + "id" : "acm013941jsd", + "name" : "isRecognizedFormat" + }, + "acm013942jsd" : { + "type" : "ControlElement", + "id" : "acm013942jsd", + "name" : "processSubSup" + }, + "acm013943jsd" : { + "type" : "ControlElement", + "id" : "acm013943jsd", + "name" : "processCapitalization" + }, + "acm013944jsd" : { + "type" : "ControlElement", + "id" : "acm013944jsd", + "name" : "importDatabase" + }, + "acm013945jsd" : { + "type" : "ControlElement", + "id" : "acm013945jsd", + "name" : "parsePages" + }, + "acm013946jsd" : { + "type" : "ControlElement", + "id" : "acm013946jsd", + "name" : "parseMonth" + }, + "acm013947jsd" : { + "type" : "ControlElement", + "id" : "acm013947jsd", + "name" : "isiAuthorConvert" + }, + "acm013948jsd" : { + "type" : "ControlElement", + "id" : "acm013948jsd", + "name" : "isiAuthorsConvert" + }, + "acm013949jsd" : { + "type" : "ControlElement", + "id" : "acm013949jsd", + "name" : "isiAuthorsConvert" + }, + "acm013950jsd" : { + "type" : "ClassUnit", + "id" : "acm013950jsd", + "name" : "IsiImporter", + "compilationUnitId" : "acm013931jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012134jsd", "acm012556jsd", "acm013950jsd", "acm017344jsd", "acm018267jsd", "acm018525jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm013937jsd", "acm013938jsd", "acm013939jsd", "acm013940jsd", "acm013941jsd", "acm013942jsd", "acm013943jsd", "acm013944jsd", "acm013945jsd", "acm013946jsd", "acm013947jsd", "acm013948jsd", "acm013949jsd" ] + }, + "acm013951jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013951jsd", + "name" : "MarcXmlParser", + "parentId" : "acm013673jsd", + "content" : [ "acm013975jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013952jsd" : { + "type" : "CodePackage", + "id" : "acm013952jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013953jsd" ] + }, + "acm013953jsd" : { + "type" : "CodePackage", + "id" : "acm013953jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013954jsd" ] + }, + "acm013954jsd" : { + "type" : "CodePackage", + "id" : "acm013954jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013955jsd" ] + }, + "acm013955jsd" : { + "type" : "CodePackage", + "id" : "acm013955jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013956jsd" ] + }, + "acm013956jsd" : { + "type" : "CodePackage", + "id" : "acm013956jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013951jsd" ] + }, + "acm013957jsd" : { + "type" : "ControlElement", + "id" : "acm013957jsd", + "name" : "parseEntries" + }, + "acm013958jsd" : { + "type" : "ControlElement", + "id" : "acm013958jsd", + "name" : "parseEntries" + }, + "acm013959jsd" : { + "type" : "ControlElement", + "id" : "acm013959jsd", + "name" : "parseEntry" + }, + "acm013960jsd" : { + "type" : "ControlElement", + "id" : "acm013960jsd", + "name" : "putIsbn" + }, + "acm013961jsd" : { + "type" : "ControlElement", + "id" : "acm013961jsd", + "name" : "putPersonalName" + }, + "acm013962jsd" : { + "type" : "ControlElement", + "id" : "acm013962jsd", + "name" : "putTitle" + }, + "acm013963jsd" : { + "type" : "ControlElement", + "id" : "acm013963jsd", + "name" : "putEdition" + }, + "acm013964jsd" : { + "type" : "ControlElement", + "id" : "acm013964jsd", + "name" : "putPublication" + }, + "acm013965jsd" : { + "type" : "ControlElement", + "id" : "acm013965jsd", + "name" : "putPhysicalDescription" + }, + "acm013966jsd" : { + "type" : "ControlElement", + "id" : "acm013966jsd", + "name" : "putSeries" + }, + "acm013967jsd" : { + "type" : "ControlElement", + "id" : "acm013967jsd", + "name" : "putSummary" + }, + "acm013968jsd" : { + "type" : "ControlElement", + "id" : "acm013968jsd", + "name" : "putKeywords" + }, + "acm013969jsd" : { + "type" : "ControlElement", + "id" : "acm013969jsd", + "name" : "putDoi" + }, + "acm013970jsd" : { + "type" : "ControlElement", + "id" : "acm013970jsd", + "name" : "putElectronicLocation" + }, + "acm013971jsd" : { + "type" : "ControlElement", + "id" : "acm013971jsd", + "name" : "putNotes" + }, + "acm013972jsd" : { + "type" : "ControlElement", + "id" : "acm013972jsd", + "name" : "getSubfield" + }, + "acm013973jsd" : { + "type" : "ControlElement", + "id" : "acm013973jsd", + "name" : "getChild" + }, + "acm013974jsd" : { + "type" : "ControlElement", + "id" : "acm013974jsd", + "name" : "getChildren" + }, + "acm013975jsd" : { + "type" : "ClassUnit", + "id" : "acm013975jsd", + "name" : "MarcXmlParser", + "compilationUnitId" : "acm013951jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012269jsd", "acm012515jsd", "acm013975jsd", "acm018175jsd", "acm018267jsd", "acm018509jsd", "acm018798jsd" ], + "content" : [ "acm013957jsd", "acm013958jsd", "acm013959jsd", "acm013960jsd", "acm013961jsd", "acm013962jsd", "acm013963jsd", "acm013964jsd", "acm013965jsd", "acm013966jsd", "acm013967jsd", "acm013968jsd", "acm013969jsd", "acm013970jsd", "acm013971jsd", "acm013972jsd", "acm013973jsd", "acm013974jsd" ] + }, + "acm013976jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013976jsd", + "name" : "MedlineImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014026jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013977jsd" : { + "type" : "CodePackage", + "id" : "acm013977jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm013978jsd" ] + }, + "acm013978jsd" : { + "type" : "CodePackage", + "id" : "acm013978jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm013979jsd" ] + }, + "acm013979jsd" : { + "type" : "CodePackage", + "id" : "acm013979jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm013980jsd" ] + }, + "acm013980jsd" : { + "type" : "CodePackage", + "id" : "acm013980jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm013981jsd" ] + }, + "acm013981jsd" : { + "type" : "CodePackage", + "id" : "acm013981jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm013976jsd" ] + }, + "acm013982jsd" : { + "type" : "ControlElement", + "id" : "acm013982jsd", + "name" : "join" + }, + "acm013983jsd" : { + "type" : "ControlElement", + "id" : "acm013983jsd", + "name" : "getName" + }, + "acm013984jsd" : { + "type" : "ControlElement", + "id" : "acm013984jsd", + "name" : "getFileType" + }, + "acm013985jsd" : { + "type" : "ControlElement", + "id" : "acm013985jsd", + "name" : "getId" + }, + "acm013986jsd" : { + "type" : "ControlElement", + "id" : "acm013986jsd", + "name" : "getDescription" + }, + "acm013987jsd" : { + "type" : "ControlElement", + "id" : "acm013987jsd", + "name" : "isRecognizedFormat" + }, + "acm013988jsd" : { + "type" : "ControlElement", + "id" : "acm013988jsd", + "name" : "importDatabase" + }, + "acm013989jsd" : { + "type" : "ControlElement", + "id" : "acm013989jsd", + "name" : "parseBookArticle" + }, + "acm013990jsd" : { + "type" : "ControlElement", + "id" : "acm013990jsd", + "name" : "parseBookDocument" + }, + "acm013991jsd" : { + "type" : "ControlElement", + "id" : "acm013991jsd", + "name" : "parseBookInformation" + }, + "acm013992jsd" : { + "type" : "ControlElement", + "id" : "acm013992jsd", + "name" : "handleElocationId" + }, + "acm013993jsd" : { + "type" : "ControlElement", + "id" : "acm013993jsd", + "name" : "parseSections" + }, + "acm013994jsd" : { + "type" : "ControlElement", + "id" : "acm013994jsd", + "name" : "parseArticle" + }, + "acm013995jsd" : { + "type" : "ControlElement", + "id" : "acm013995jsd", + "name" : "parsePubmedData" + }, + "acm013996jsd" : { + "type" : "ControlElement", + "id" : "acm013996jsd", + "name" : "parseMedlineCitation" + }, + "acm013997jsd" : { + "type" : "ControlElement", + "id" : "acm013997jsd", + "name" : "parseInvestigator" + }, + "acm013998jsd" : { + "type" : "ControlElement", + "id" : "acm013998jsd", + "name" : "parsePersonalNameSubject" + }, + "acm013999jsd" : { + "type" : "ControlElement", + "id" : "acm013999jsd", + "name" : "parseMeshHeading" + }, + "acm014000jsd" : { + "type" : "ControlElement", + "id" : "acm014000jsd", + "name" : "parseGeneSymbolList" + }, + "acm014001jsd" : { + "type" : "ControlElement", + "id" : "acm014001jsd", + "name" : "parseChemicalList" + }, + "acm014002jsd" : { + "type" : "ControlElement", + "id" : "acm014002jsd", + "name" : "parseMedlineJournalInfo" + }, + "acm014003jsd" : { + "type" : "ControlElement", + "id" : "acm014003jsd", + "name" : "parseArticleInformation" + }, + "acm014004jsd" : { + "type" : "ControlElement", + "id" : "acm014004jsd", + "name" : "parseJournal" + }, + "acm014005jsd" : { + "type" : "ControlElement", + "id" : "acm014005jsd", + "name" : "parseDate" + }, + "acm014006jsd" : { + "type" : "ControlElement", + "id" : "acm014006jsd", + "name" : "addArticleIdList" + }, + "acm014007jsd" : { + "type" : "ControlElement", + "id" : "acm014007jsd", + "name" : "addNotes" + }, + "acm014008jsd" : { + "type" : "ControlElement", + "id" : "acm014008jsd", + "name" : "addInvestigators" + }, + "acm014009jsd" : { + "type" : "ControlElement", + "id" : "acm014009jsd", + "name" : "addKeywords" + }, + "acm014010jsd" : { + "type" : "ControlElement", + "id" : "acm014010jsd", + "name" : "addOtherId" + }, + "acm014011jsd" : { + "type" : "ControlElement", + "id" : "acm014011jsd", + "name" : "addPersonalNames" + }, + "acm014012jsd" : { + "type" : "ControlElement", + "id" : "acm014012jsd", + "name" : "addMeshHeading" + }, + "acm014013jsd" : { + "type" : "ControlElement", + "id" : "acm014013jsd", + "name" : "addPubDate" + }, + "acm014014jsd" : { + "type" : "ControlElement", + "id" : "acm014014jsd", + "name" : "addAbstract" + }, + "acm014015jsd" : { + "type" : "ControlElement", + "id" : "acm014015jsd", + "name" : "handleTextElement" + }, + "acm014016jsd" : { + "type" : "ControlElement", + "id" : "acm014016jsd", + "name" : "addPagination" + }, + "acm014017jsd" : { + "type" : "ControlElement", + "id" : "acm014017jsd", + "name" : "extractYear" + }, + "acm014018jsd" : { + "type" : "ControlElement", + "id" : "acm014018jsd", + "name" : "handleAuthorList" + }, + "acm014019jsd" : { + "type" : "ControlElement", + "id" : "acm014019jsd", + "name" : "parseAuthor" + }, + "acm014020jsd" : { + "type" : "ControlElement", + "id" : "acm014020jsd", + "name" : "putIfValueNotNull" + }, + "acm014021jsd" : { + "type" : "ControlElement", + "id" : "acm014021jsd", + "name" : "fixPageRange" + }, + "acm014022jsd" : { + "type" : "ControlElement", + "id" : "acm014022jsd", + "name" : "isCharacterXMLEvent" + }, + "acm014023jsd" : { + "type" : "ControlElement", + "id" : "acm014023jsd", + "name" : "isStartXMLEvent" + }, + "acm014024jsd" : { + "type" : "ControlElement", + "id" : "acm014024jsd", + "name" : "isEndXMLEvent" + }, + "acm014025jsd" : { + "type" : "ControlElement", + "id" : "acm014025jsd", + "name" : "parseEntries" + }, + "acm014026jsd" : { + "type" : "ClassUnit", + "id" : "acm014026jsd", + "name" : "MedlineImporter", + "compilationUnitId" : "acm013976jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm012556jsd", "acm014026jsd", "acm017344jsd", "acm018267jsd", "acm018401jsd", "acm018525jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm013982jsd", "acm013983jsd", "acm013984jsd", "acm013985jsd", "acm013986jsd", "acm013987jsd", "acm013988jsd", "acm013989jsd", "acm013990jsd", "acm013991jsd", "acm013992jsd", "acm013993jsd", "acm013994jsd", "acm013995jsd", "acm013996jsd", "acm013997jsd", "acm013998jsd", "acm013999jsd", "acm014000jsd", "acm014001jsd", "acm014002jsd", "acm014003jsd", "acm014004jsd", "acm014005jsd", "acm014006jsd", "acm014007jsd", "acm014008jsd", "acm014009jsd", "acm014010jsd", "acm014011jsd", "acm014012jsd", "acm014013jsd", "acm014014jsd", "acm014015jsd", "acm014016jsd", "acm014017jsd", "acm014018jsd", "acm014019jsd", "acm014020jsd", "acm014021jsd", "acm014022jsd", "acm014023jsd", "acm014024jsd", "acm014025jsd" ] + }, + "acm014027jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014027jsd", + "name" : "MedlinePlainImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014049jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014028jsd" : { + "type" : "CodePackage", + "id" : "acm014028jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014029jsd" ] + }, + "acm014029jsd" : { + "type" : "CodePackage", + "id" : "acm014029jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014030jsd" ] + }, + "acm014030jsd" : { + "type" : "CodePackage", + "id" : "acm014030jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014031jsd" ] + }, + "acm014031jsd" : { + "type" : "CodePackage", + "id" : "acm014031jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014032jsd" ] + }, + "acm014032jsd" : { + "type" : "CodePackage", + "id" : "acm014032jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014027jsd" ] + }, + "acm014033jsd" : { + "type" : "ControlElement", + "id" : "acm014033jsd", + "name" : "getName" + }, + "acm014034jsd" : { + "type" : "ControlElement", + "id" : "acm014034jsd", + "name" : "getFileType" + }, + "acm014035jsd" : { + "type" : "ControlElement", + "id" : "acm014035jsd", + "name" : "getDescription" + }, + "acm014036jsd" : { + "type" : "ControlElement", + "id" : "acm014036jsd", + "name" : "getId" + }, + "acm014037jsd" : { + "type" : "ControlElement", + "id" : "acm014037jsd", + "name" : "isRecognizedFormat" + }, + "acm014038jsd" : { + "type" : "ControlElement", + "id" : "acm014038jsd", + "name" : "importDatabase" + }, + "acm014039jsd" : { + "type" : "ControlElement", + "id" : "acm014039jsd", + "name" : "checkLineValidity" + }, + "acm014040jsd" : { + "type" : "ControlElement", + "id" : "acm014040jsd", + "name" : "addSourceType" + }, + "acm014041jsd" : { + "type" : "ControlElement", + "id" : "acm014041jsd", + "name" : "addStandardNumber" + }, + "acm014042jsd" : { + "type" : "ControlElement", + "id" : "acm014042jsd", + "name" : "fixAuthors" + }, + "acm014043jsd" : { + "type" : "ControlElement", + "id" : "acm014043jsd", + "name" : "addIDs" + }, + "acm014044jsd" : { + "type" : "ControlElement", + "id" : "acm014044jsd", + "name" : "addTitles" + }, + "acm014045jsd" : { + "type" : "ControlElement", + "id" : "acm014045jsd", + "name" : "addAbstract" + }, + "acm014046jsd" : { + "type" : "ControlElement", + "id" : "acm014046jsd", + "name" : "addDates" + }, + "acm014047jsd" : { + "type" : "ControlElement", + "id" : "acm014047jsd", + "name" : "isCreateDateFormat" + }, + "acm014048jsd" : { + "type" : "ControlElement", + "id" : "acm014048jsd", + "name" : "isDateFormat" + }, + "acm014049jsd" : { + "type" : "ClassUnit", + "id" : "acm014049jsd", + "name" : "MedlinePlainImporter", + "compilationUnitId" : "acm014027jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm014033jsd", "acm014034jsd", "acm014035jsd", "acm014036jsd", "acm014037jsd", "acm014038jsd", "acm014039jsd", "acm014040jsd", "acm014041jsd", "acm014042jsd", "acm014043jsd", "acm014044jsd", "acm014045jsd", "acm014046jsd", "acm014047jsd", "acm014048jsd" ] + }, + "acm014050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014050jsd", + "name" : "ModsImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014085jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014051jsd" : { + "type" : "CodePackage", + "id" : "acm014051jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014052jsd" ] + }, + "acm014052jsd" : { + "type" : "CodePackage", + "id" : "acm014052jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014053jsd" ] + }, + "acm014053jsd" : { + "type" : "CodePackage", + "id" : "acm014053jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014054jsd" ] + }, + "acm014054jsd" : { + "type" : "CodePackage", + "id" : "acm014054jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014055jsd" ] + }, + "acm014055jsd" : { + "type" : "CodePackage", + "id" : "acm014055jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014050jsd" ] + }, + "acm014056jsd" : { + "type" : "ControlElement", + "id" : "acm014056jsd", + "name" : "ModsImporter" + }, + "acm014057jsd" : { + "type" : "ControlElement", + "id" : "acm014057jsd", + "name" : "isRecognizedFormat" + }, + "acm014058jsd" : { + "type" : "ControlElement", + "id" : "acm014058jsd", + "name" : "importDatabase" + }, + "acm014059jsd" : { + "type" : "ControlElement", + "id" : "acm014059jsd", + "name" : "parseModsCollection" + }, + "acm014060jsd" : { + "type" : "ControlElement", + "id" : "acm014060jsd", + "name" : "parseModsGroup" + }, + "acm014061jsd" : { + "type" : "ControlElement", + "id" : "acm014061jsd", + "name" : "parseRelatedItem" + }, + "acm014062jsd" : { + "type" : "ControlElement", + "id" : "acm014062jsd", + "name" : "handleExtent" + }, + "acm014063jsd" : { + "type" : "ControlElement", + "id" : "acm014063jsd", + "name" : "handleDetail" + }, + "acm014064jsd" : { + "type" : "ControlElement", + "id" : "acm014064jsd", + "name" : "parseName" + }, + "acm014065jsd" : { + "type" : "ControlElement", + "id" : "acm014065jsd", + "name" : "parseOriginInfo" + }, + "acm014066jsd" : { + "type" : "ControlElement", + "id" : "acm014066jsd", + "name" : "parseSubject" + }, + "acm014067jsd" : { + "type" : "ControlElement", + "id" : "acm014067jsd", + "name" : "parseRecordInfo" + }, + "acm014068jsd" : { + "type" : "ControlElement", + "id" : "acm014068jsd", + "name" : "parseLanguage" + }, + "acm014069jsd" : { + "type" : "ControlElement", + "id" : "acm014069jsd", + "name" : "parseTitle" + }, + "acm014070jsd" : { + "type" : "ControlElement", + "id" : "acm014070jsd", + "name" : "parseLocationAndUrl" + }, + "acm014071jsd" : { + "type" : "ControlElement", + "id" : "acm014071jsd", + "name" : "mapGenre" + }, + "acm014072jsd" : { + "type" : "ControlElement", + "id" : "acm014072jsd", + "name" : "parseIdentifier" + }, + "acm014073jsd" : { + "type" : "ControlElement", + "id" : "acm014073jsd", + "name" : "putDate" + }, + "acm014074jsd" : { + "type" : "ControlElement", + "id" : "acm014074jsd", + "name" : "putIfListIsNotEmpty" + }, + "acm014075jsd" : { + "type" : "ControlElement", + "id" : "acm014075jsd", + "name" : "handleAuthorsInNamePart" + }, + "acm014076jsd" : { + "type" : "ControlElement", + "id" : "acm014076jsd", + "name" : "putIfValueNotNull" + }, + "acm014077jsd" : { + "type" : "ControlElement", + "id" : "acm014077jsd", + "name" : "appendIfValueNotNullOrBlank" + }, + "acm014078jsd" : { + "type" : "ControlElement", + "id" : "acm014078jsd", + "name" : "isCharacterXMLEvent" + }, + "acm014079jsd" : { + "type" : "ControlElement", + "id" : "acm014079jsd", + "name" : "isStartXMLEvent" + }, + "acm014080jsd" : { + "type" : "ControlElement", + "id" : "acm014080jsd", + "name" : "isEndXMLEvent" + }, + "acm014081jsd" : { + "type" : "ControlElement", + "id" : "acm014081jsd", + "name" : "getName" + }, + "acm014082jsd" : { + "type" : "ControlElement", + "id" : "acm014082jsd", + "name" : "getFileType" + }, + "acm014083jsd" : { + "type" : "ControlElement", + "id" : "acm014083jsd", + "name" : "getDescription" + }, + "acm014084jsd" : { + "type" : "ControlElement", + "id" : "acm014084jsd", + "name" : "parseEntries" + }, + "acm014085jsd" : { + "type" : "ClassUnit", + "id" : "acm014085jsd", + "name" : "ModsImporter", + "compilationUnitId" : "acm014050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm012556jsd", "acm014085jsd", "acm017344jsd", "acm018267jsd", "acm018401jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm014056jsd", "acm014057jsd", "acm014058jsd", "acm014059jsd", "acm014060jsd", "acm014061jsd", "acm014062jsd", "acm014063jsd", "acm014064jsd", "acm014065jsd", "acm014066jsd", "acm014067jsd", "acm014068jsd", "acm014069jsd", "acm014070jsd", "acm014071jsd", "acm014072jsd", "acm014073jsd", "acm014074jsd", "acm014075jsd", "acm014076jsd", "acm014077jsd", "acm014078jsd", "acm014079jsd", "acm014080jsd", "acm014081jsd", "acm014082jsd", "acm014083jsd", "acm014084jsd" ] + }, + "acm014086jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014086jsd", + "name" : "MrDLibImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014106jsd", "acm014108jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014087jsd" : { + "type" : "CodePackage", + "id" : "acm014087jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014088jsd" ] + }, + "acm014088jsd" : { + "type" : "CodePackage", + "id" : "acm014088jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014089jsd" ] + }, + "acm014089jsd" : { + "type" : "CodePackage", + "id" : "acm014089jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014090jsd" ] + }, + "acm014090jsd" : { + "type" : "CodePackage", + "id" : "acm014090jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014091jsd" ] + }, + "acm014091jsd" : { + "type" : "CodePackage", + "id" : "acm014091jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014086jsd" ] + }, + "acm014092jsd" : { + "type" : "ControlElement", + "id" : "acm014092jsd", + "name" : "isRecognizedFormat" + }, + "acm014093jsd" : { + "type" : "ControlElement", + "id" : "acm014093jsd", + "name" : "importDatabase" + }, + "acm014094jsd" : { + "type" : "ControlElement", + "id" : "acm014094jsd", + "name" : "getName" + }, + "acm014095jsd" : { + "type" : "ControlElement", + "id" : "acm014095jsd", + "name" : "getFileType" + }, + "acm014096jsd" : { + "type" : "ControlElement", + "id" : "acm014096jsd", + "name" : "getDescription" + }, + "acm014097jsd" : { + "type" : "ControlElement", + "id" : "acm014097jsd", + "name" : "convertToString" + }, + "acm014098jsd" : { + "type" : "ControlElement", + "id" : "acm014098jsd", + "name" : "RankedBibEntry" + }, + "acm014099jsd" : { + "type" : "ControlElement", + "id" : "acm014099jsd", + "name" : "parse" + }, + "acm014100jsd" : { + "type" : "ControlElement", + "id" : "acm014100jsd", + "name" : "populateBibEntry" + }, + "acm014101jsd" : { + "type" : "ControlElement", + "id" : "acm014101jsd", + "name" : "isRecommendationFieldPresent" + }, + "acm014102jsd" : { + "type" : "ControlElement", + "id" : "acm014102jsd", + "name" : "getParserResult" + }, + "acm014103jsd" : { + "type" : "ControlElement", + "id" : "acm014103jsd", + "name" : "getRecommendationsHeading" + }, + "acm014104jsd" : { + "type" : "ControlElement", + "id" : "acm014104jsd", + "name" : "getRecommendationsDescription" + }, + "acm014105jsd" : { + "type" : "ControlElement", + "id" : "acm014105jsd", + "name" : "getRecommendationSetId" + }, + "acm014106jsd" : { + "type" : "ClassUnit", + "id" : "acm014106jsd", + "name" : "MrDLibImporter", + "compilationUnitId" : "acm014086jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014106jsd", "acm014108jsd", "acm017344jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm014092jsd", "acm014093jsd", "acm014094jsd", "acm014095jsd", "acm014096jsd", "acm014097jsd", "acm014098jsd", "acm014099jsd", "acm014100jsd", "acm014101jsd", "acm014102jsd", "acm014103jsd", "acm014104jsd", "acm014105jsd" ] + }, + "acm014107jsd" : { + "type" : "ControlElement", + "id" : "acm014107jsd", + "name" : "RankedBibEntry" + }, + "acm014108jsd" : { + "type" : "ClassUnit", + "id" : "acm014108jsd", + "name" : "RankedBibEntry", + "compilationUnitId" : "acm014086jsd", + "parentDatatypeId" : "acm014106jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm014107jsd" ] + }, + "acm014109jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014109jsd", + "name" : "MsBibImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014124jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014110jsd" : { + "type" : "CodePackage", + "id" : "acm014110jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014111jsd" ] + }, + "acm014111jsd" : { + "type" : "CodePackage", + "id" : "acm014111jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014112jsd" ] + }, + "acm014112jsd" : { + "type" : "CodePackage", + "id" : "acm014112jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014113jsd" ] + }, + "acm014113jsd" : { + "type" : "CodePackage", + "id" : "acm014113jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014114jsd" ] + }, + "acm014114jsd" : { + "type" : "CodePackage", + "id" : "acm014114jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014109jsd" ] + }, + "acm014115jsd" : { + "type" : "ControlElement", + "id" : "acm014115jsd", + "name" : "isRecognizedFormat" + }, + "acm014116jsd" : { + "type" : "ControlElement", + "id" : "acm014116jsd", + "name" : "warning" + }, + "acm014117jsd" : { + "type" : "ControlElement", + "id" : "acm014117jsd", + "name" : "fatalError" + }, + "acm014118jsd" : { + "type" : "ControlElement", + "id" : "acm014118jsd", + "name" : "error" + }, + "acm014119jsd" : { + "type" : "ControlElement", + "id" : "acm014119jsd", + "name" : "importDatabase" + }, + "acm014120jsd" : { + "type" : "ControlElement", + "id" : "acm014120jsd", + "name" : "getName" + }, + "acm014121jsd" : { + "type" : "ControlElement", + "id" : "acm014121jsd", + "name" : "getFileType" + }, + "acm014122jsd" : { + "type" : "ControlElement", + "id" : "acm014122jsd", + "name" : "getDescription" + }, + "acm014123jsd" : { + "type" : "ControlElement", + "id" : "acm014123jsd", + "name" : "makeSafeDocBuilderFactory" + }, + "acm014124jsd" : { + "type" : "ClassUnit", + "id" : "acm014124jsd", + "name" : "MsBibImporter", + "compilationUnitId" : "acm014109jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014124jsd", "acm015769jsd", "acm017344jsd" ], + "content" : [ "acm014115jsd", "acm014116jsd", "acm014117jsd", "acm014118jsd", "acm014119jsd", "acm014120jsd", "acm014121jsd", "acm014122jsd", "acm014123jsd" ] + }, + "acm014125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014125jsd", + "name" : "OvidImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014137jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014126jsd" : { + "type" : "CodePackage", + "id" : "acm014126jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014127jsd" ] + }, + "acm014127jsd" : { + "type" : "CodePackage", + "id" : "acm014127jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014128jsd" ] + }, + "acm014128jsd" : { + "type" : "CodePackage", + "id" : "acm014128jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014129jsd" ] + }, + "acm014129jsd" : { + "type" : "CodePackage", + "id" : "acm014129jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014130jsd" ] + }, + "acm014130jsd" : { + "type" : "CodePackage", + "id" : "acm014130jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014125jsd" ] + }, + "acm014131jsd" : { + "type" : "ControlElement", + "id" : "acm014131jsd", + "name" : "getName" + }, + "acm014132jsd" : { + "type" : "ControlElement", + "id" : "acm014132jsd", + "name" : "getFileType" + }, + "acm014133jsd" : { + "type" : "ControlElement", + "id" : "acm014133jsd", + "name" : "getDescription" + }, + "acm014134jsd" : { + "type" : "ControlElement", + "id" : "acm014134jsd", + "name" : "isRecognizedFormat" + }, + "acm014135jsd" : { + "type" : "ControlElement", + "id" : "acm014135jsd", + "name" : "importDatabase" + }, + "acm014136jsd" : { + "type" : "ControlElement", + "id" : "acm014136jsd", + "name" : "fixNames" + }, + "acm014137jsd" : { + "type" : "ClassUnit", + "id" : "acm014137jsd", + "name" : "OvidImporter", + "compilationUnitId" : "acm014125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm014131jsd", "acm014132jsd", "acm014133jsd", "acm014134jsd", "acm014135jsd", "acm014136jsd" ] + }, + "acm014138jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014138jsd", + "name" : "PdfContentImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014161jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014139jsd" : { + "type" : "CodePackage", + "id" : "acm014139jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014140jsd" ] + }, + "acm014140jsd" : { + "type" : "CodePackage", + "id" : "acm014140jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014141jsd" ] + }, + "acm014141jsd" : { + "type" : "CodePackage", + "id" : "acm014141jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014142jsd" ] + }, + "acm014142jsd" : { + "type" : "CodePackage", + "id" : "acm014142jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014143jsd" ] + }, + "acm014143jsd" : { + "type" : "CodePackage", + "id" : "acm014143jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014138jsd" ] + }, + "acm014144jsd" : { + "type" : "ControlElement", + "id" : "acm014144jsd", + "name" : "PdfContentImporter" + }, + "acm014145jsd" : { + "type" : "ControlElement", + "id" : "acm014145jsd", + "name" : "removeNonLettersAtEnd" + }, + "acm014146jsd" : { + "type" : "ControlElement", + "id" : "acm014146jsd", + "name" : "streamlineNames" + }, + "acm014147jsd" : { + "type" : "ControlElement", + "id" : "acm014147jsd", + "name" : "streamlineTitle" + }, + "acm014148jsd" : { + "type" : "ControlElement", + "id" : "acm014148jsd", + "name" : "isRecognizedFormat" + }, + "acm014149jsd" : { + "type" : "ControlElement", + "id" : "acm014149jsd", + "name" : "importDatabase" + }, + "acm014150jsd" : { + "type" : "ControlElement", + "id" : "acm014150jsd", + "name" : "importDatabase" + }, + "acm014151jsd" : { + "type" : "ControlElement", + "id" : "acm014151jsd", + "name" : "importDatabase" + }, + "acm014152jsd" : { + "type" : "ControlElement", + "id" : "acm014152jsd", + "name" : "getEntryFromPDFContent" + }, + "acm014153jsd" : { + "type" : "ControlElement", + "id" : "acm014153jsd", + "name" : "getFirstPageContents" + }, + "acm014154jsd" : { + "type" : "ControlElement", + "id" : "acm014154jsd", + "name" : "extractYear" + }, + "acm014155jsd" : { + "type" : "ControlElement", + "id" : "acm014155jsd", + "name" : "proceedToNextNonEmptyLine" + }, + "acm014156jsd" : { + "type" : "ControlElement", + "id" : "acm014156jsd", + "name" : "fillCurStringWithNonEmptyLines" + }, + "acm014157jsd" : { + "type" : "ControlElement", + "id" : "acm014157jsd", + "name" : "readLastBlock" + }, + "acm014158jsd" : { + "type" : "ControlElement", + "id" : "acm014158jsd", + "name" : "getName" + }, + "acm014159jsd" : { + "type" : "ControlElement", + "id" : "acm014159jsd", + "name" : "getFileType" + }, + "acm014160jsd" : { + "type" : "ControlElement", + "id" : "acm014160jsd", + "name" : "getDescription" + }, + "acm014161jsd" : { + "type" : "ClassUnit", + "id" : "acm014161jsd", + "name" : "PdfContentImporter", + "compilationUnitId" : "acm014138jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm017733jsd", "acm017756jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm014144jsd", "acm014145jsd", "acm014146jsd", "acm014147jsd", "acm014148jsd", "acm014149jsd", "acm014150jsd", "acm014151jsd", "acm014152jsd", "acm014153jsd", "acm014154jsd", "acm014155jsd", "acm014156jsd", "acm014157jsd", "acm014158jsd", "acm014159jsd", "acm014160jsd" ] + }, + "acm014162jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014162jsd", + "name" : "PdfEmbeddedBibFileImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014180jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014163jsd" : { + "type" : "CodePackage", + "id" : "acm014163jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014164jsd" ] + }, + "acm014164jsd" : { + "type" : "CodePackage", + "id" : "acm014164jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014165jsd" ] + }, + "acm014165jsd" : { + "type" : "CodePackage", + "id" : "acm014165jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014166jsd" ] + }, + "acm014166jsd" : { + "type" : "CodePackage", + "id" : "acm014166jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014167jsd" ] + }, + "acm014167jsd" : { + "type" : "CodePackage", + "id" : "acm014167jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014162jsd" ] + }, + "acm014168jsd" : { + "type" : "ControlElement", + "id" : "acm014168jsd", + "name" : "PdfEmbeddedBibFileImporter" + }, + "acm014169jsd" : { + "type" : "ControlElement", + "id" : "acm014169jsd", + "name" : "isRecognizedFormat" + }, + "acm014170jsd" : { + "type" : "ControlElement", + "id" : "acm014170jsd", + "name" : "importDatabase" + }, + "acm014171jsd" : { + "type" : "ControlElement", + "id" : "acm014171jsd", + "name" : "importDatabase" + }, + "acm014172jsd" : { + "type" : "ControlElement", + "id" : "acm014172jsd", + "name" : "importDatabase" + }, + "acm014173jsd" : { + "type" : "ControlElement", + "id" : "acm014173jsd", + "name" : "getEmbeddedBibFileEntries" + }, + "acm014174jsd" : { + "type" : "ControlElement", + "id" : "acm014174jsd", + "name" : "extractAndParseFiles" + }, + "acm014175jsd" : { + "type" : "ControlElement", + "id" : "acm014175jsd", + "name" : "extractAndParseFile" + }, + "acm014176jsd" : { + "type" : "ControlElement", + "id" : "acm014176jsd", + "name" : "getEmbeddedFile" + }, + "acm014177jsd" : { + "type" : "ControlElement", + "id" : "acm014177jsd", + "name" : "getName" + }, + "acm014178jsd" : { + "type" : "ControlElement", + "id" : "acm014178jsd", + "name" : "getFileType" + }, + "acm014179jsd" : { + "type" : "ControlElement", + "id" : "acm014179jsd", + "name" : "getDescription" + }, + "acm014180jsd" : { + "type" : "ClassUnit", + "id" : "acm014180jsd", + "name" : "PdfEmbeddedBibFileImporter", + "compilationUnitId" : "acm014162jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm012556jsd", "acm013761jsd", "acm017344jsd", "acm017733jsd", "acm017756jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm014168jsd", "acm014169jsd", "acm014170jsd", "acm014171jsd", "acm014172jsd", "acm014173jsd", "acm014174jsd", "acm014175jsd", "acm014176jsd", "acm014177jsd", "acm014178jsd", "acm014179jsd" ] + }, + "acm014181jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014181jsd", + "name" : "PdfGrobidImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014197jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014182jsd" : { + "type" : "CodePackage", + "id" : "acm014182jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014183jsd" ] + }, + "acm014183jsd" : { + "type" : "CodePackage", + "id" : "acm014183jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014184jsd" ] + }, + "acm014184jsd" : { + "type" : "CodePackage", + "id" : "acm014184jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014185jsd" ] + }, + "acm014185jsd" : { + "type" : "CodePackage", + "id" : "acm014185jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014186jsd" ] + }, + "acm014186jsd" : { + "type" : "CodePackage", + "id" : "acm014186jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014181jsd" ] + }, + "acm014187jsd" : { + "type" : "ControlElement", + "id" : "acm014187jsd", + "name" : "PdfGrobidImporter" + }, + "acm014188jsd" : { + "type" : "ControlElement", + "id" : "acm014188jsd", + "name" : "getName" + }, + "acm014189jsd" : { + "type" : "ControlElement", + "id" : "acm014189jsd", + "name" : "getFileType" + }, + "acm014190jsd" : { + "type" : "ControlElement", + "id" : "acm014190jsd", + "name" : "importDatabase" + }, + "acm014191jsd" : { + "type" : "ControlElement", + "id" : "acm014191jsd", + "name" : "importDatabase" + }, + "acm014192jsd" : { + "type" : "ControlElement", + "id" : "acm014192jsd", + "name" : "importDatabase" + }, + "acm014193jsd" : { + "type" : "ControlElement", + "id" : "acm014193jsd", + "name" : "isRecognizedFormat" + }, + "acm014194jsd" : { + "type" : "ControlElement", + "id" : "acm014194jsd", + "name" : "isRecognizedFormat" + }, + "acm014195jsd" : { + "type" : "ControlElement", + "id" : "acm014195jsd", + "name" : "getId" + }, + "acm014196jsd" : { + "type" : "ControlElement", + "id" : "acm014196jsd", + "name" : "getDescription" + }, + "acm014197jsd" : { + "type" : "ClassUnit", + "id" : "acm014197jsd", + "name" : "PdfGrobidImporter", + "compilationUnitId" : "acm014181jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014398jsd", "acm017344jsd", "acm018267jsd" ], + "content" : [ "acm014187jsd", "acm014188jsd", "acm014189jsd", "acm014190jsd", "acm014191jsd", "acm014192jsd", "acm014193jsd", "acm014194jsd", "acm014195jsd", "acm014196jsd" ] + }, + "acm014198jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014198jsd", + "name" : "PdfMergeMetadataImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014214jsd", "acm014217jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014199jsd" : { + "type" : "CodePackage", + "id" : "acm014199jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014200jsd" ] + }, + "acm014200jsd" : { + "type" : "CodePackage", + "id" : "acm014200jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014201jsd" ] + }, + "acm014201jsd" : { + "type" : "CodePackage", + "id" : "acm014201jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014202jsd" ] + }, + "acm014202jsd" : { + "type" : "CodePackage", + "id" : "acm014202jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014203jsd" ] + }, + "acm014203jsd" : { + "type" : "CodePackage", + "id" : "acm014203jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014198jsd" ] + }, + "acm014204jsd" : { + "type" : "ControlElement", + "id" : "acm014204jsd", + "name" : "PdfMergeMetadataImporter" + }, + "acm014205jsd" : { + "type" : "ControlElement", + "id" : "acm014205jsd", + "name" : "isRecognizedFormat" + }, + "acm014206jsd" : { + "type" : "ControlElement", + "id" : "acm014206jsd", + "name" : "importDatabase" + }, + "acm014207jsd" : { + "type" : "ControlElement", + "id" : "acm014207jsd", + "name" : "importDatabase" + }, + "acm014208jsd" : { + "type" : "ControlElement", + "id" : "acm014208jsd", + "name" : "importDatabase" + }, + "acm014209jsd" : { + "type" : "ControlElement", + "id" : "acm014209jsd", + "name" : "getName" + }, + "acm014210jsd" : { + "type" : "ControlElement", + "id" : "acm014210jsd", + "name" : "getFileType" + }, + "acm014211jsd" : { + "type" : "ControlElement", + "id" : "acm014211jsd", + "name" : "getDescription" + }, + "acm014212jsd" : { + "type" : "ControlElement", + "id" : "acm014212jsd", + "name" : "EntryBasedFetcherWrapper" + }, + "acm014213jsd" : { + "type" : "ControlElement", + "id" : "acm014213jsd", + "name" : "performSearch" + }, + "acm014214jsd" : { + "type" : "ClassUnit", + "id" : "acm014214jsd", + "name" : "PdfMergeMetadataImporter", + "compilationUnitId" : "acm014198jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012286jsd", "acm012314jsd", "acm012455jsd", "acm012556jsd", "acm013001jsd", "acm013367jsd", "acm013382jsd", "acm014161jsd", "acm014180jsd", "acm014197jsd", "acm014214jsd", "acm014217jsd", "acm014233jsd", "acm014250jsd", "acm017344jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm018673jsd", "acm020848jsd" ], + "content" : [ "acm014204jsd", "acm014205jsd", "acm014206jsd", "acm014207jsd", "acm014208jsd", "acm014209jsd", "acm014210jsd", "acm014211jsd", "acm014212jsd", "acm014213jsd" ] + }, + "acm014215jsd" : { + "type" : "ControlElement", + "id" : "acm014215jsd", + "name" : "EntryBasedFetcherWrapper" + }, + "acm014216jsd" : { + "type" : "ControlElement", + "id" : "acm014216jsd", + "name" : "performSearch" + }, + "acm014217jsd" : { + "type" : "ClassUnit", + "id" : "acm014217jsd", + "name" : "EntryBasedFetcherWrapper", + "compilationUnitId" : "acm014198jsd", + "parentDatatypeId" : "acm014214jsd", + "extendedDataTypesIds" : [ "acm014214jsd" ], + "implementedDataTypesIds" : [ "acm012286jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012556jsd", "acm014217jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm014215jsd", "acm014216jsd" ] + }, + "acm014218jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014218jsd", + "name" : "PdfVerbatimBibTextImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014233jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014219jsd" : { + "type" : "CodePackage", + "id" : "acm014219jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014220jsd" ] + }, + "acm014220jsd" : { + "type" : "CodePackage", + "id" : "acm014220jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014221jsd" ] + }, + "acm014221jsd" : { + "type" : "CodePackage", + "id" : "acm014221jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014222jsd" ] + }, + "acm014222jsd" : { + "type" : "CodePackage", + "id" : "acm014222jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014223jsd" ] + }, + "acm014223jsd" : { + "type" : "CodePackage", + "id" : "acm014223jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014218jsd" ] + }, + "acm014224jsd" : { + "type" : "ControlElement", + "id" : "acm014224jsd", + "name" : "PdfVerbatimBibTextImporter" + }, + "acm014225jsd" : { + "type" : "ControlElement", + "id" : "acm014225jsd", + "name" : "isRecognizedFormat" + }, + "acm014226jsd" : { + "type" : "ControlElement", + "id" : "acm014226jsd", + "name" : "importDatabase" + }, + "acm014227jsd" : { + "type" : "ControlElement", + "id" : "acm014227jsd", + "name" : "importDatabase" + }, + "acm014228jsd" : { + "type" : "ControlElement", + "id" : "acm014228jsd", + "name" : "importDatabase" + }, + "acm014229jsd" : { + "type" : "ControlElement", + "id" : "acm014229jsd", + "name" : "getFirstPageContents" + }, + "acm014230jsd" : { + "type" : "ControlElement", + "id" : "acm014230jsd", + "name" : "getName" + }, + "acm014231jsd" : { + "type" : "ControlElement", + "id" : "acm014231jsd", + "name" : "getFileType" + }, + "acm014232jsd" : { + "type" : "ControlElement", + "id" : "acm014232jsd", + "name" : "getDescription" + }, + "acm014233jsd" : { + "type" : "ClassUnit", + "id" : "acm014233jsd", + "name" : "PdfVerbatimBibTextImporter", + "compilationUnitId" : "acm014218jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm012556jsd", "acm013761jsd", "acm017344jsd", "acm017733jsd", "acm017756jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm014224jsd", "acm014225jsd", "acm014226jsd", "acm014227jsd", "acm014228jsd", "acm014229jsd", "acm014230jsd", "acm014231jsd", "acm014232jsd" ] + }, + "acm014234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014234jsd", + "name" : "PdfXmpImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014250jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014235jsd" : { + "type" : "CodePackage", + "id" : "acm014235jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014236jsd" ] + }, + "acm014236jsd" : { + "type" : "CodePackage", + "id" : "acm014236jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014237jsd" ] + }, + "acm014237jsd" : { + "type" : "CodePackage", + "id" : "acm014237jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014238jsd" ] + }, + "acm014238jsd" : { + "type" : "CodePackage", + "id" : "acm014238jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014239jsd" ] + }, + "acm014239jsd" : { + "type" : "CodePackage", + "id" : "acm014239jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014234jsd" ] + }, + "acm014240jsd" : { + "type" : "ControlElement", + "id" : "acm014240jsd", + "name" : "PdfXmpImporter" + }, + "acm014241jsd" : { + "type" : "ControlElement", + "id" : "acm014241jsd", + "name" : "getName" + }, + "acm014242jsd" : { + "type" : "ControlElement", + "id" : "acm014242jsd", + "name" : "getFileType" + }, + "acm014243jsd" : { + "type" : "ControlElement", + "id" : "acm014243jsd", + "name" : "importDatabase" + }, + "acm014244jsd" : { + "type" : "ControlElement", + "id" : "acm014244jsd", + "name" : "importDatabase" + }, + "acm014245jsd" : { + "type" : "ControlElement", + "id" : "acm014245jsd", + "name" : "importDatabase" + }, + "acm014246jsd" : { + "type" : "ControlElement", + "id" : "acm014246jsd", + "name" : "isRecognizedFormat" + }, + "acm014247jsd" : { + "type" : "ControlElement", + "id" : "acm014247jsd", + "name" : "isRecognizedFormat" + }, + "acm014248jsd" : { + "type" : "ControlElement", + "id" : "acm014248jsd", + "name" : "getId" + }, + "acm014249jsd" : { + "type" : "ControlElement", + "id" : "acm014249jsd", + "name" : "getDescription" + }, + "acm014250jsd" : { + "type" : "ClassUnit", + "id" : "acm014250jsd", + "name" : "PdfXmpImporter", + "compilationUnitId" : "acm014234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm017745jsd", "acm017756jsd" ], + "content" : [ "acm014240jsd", "acm014241jsd", "acm014242jsd", "acm014243jsd", "acm014244jsd", "acm014245jsd", "acm014246jsd", "acm014247jsd", "acm014248jsd", "acm014249jsd" ] + }, + "acm014251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014251jsd", + "name" : "PicaXmlParser", + "parentId" : "acm013673jsd", + "content" : [ "acm014264jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014252jsd" : { + "type" : "CodePackage", + "id" : "acm014252jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014253jsd" ] + }, + "acm014253jsd" : { + "type" : "CodePackage", + "id" : "acm014253jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014254jsd" ] + }, + "acm014254jsd" : { + "type" : "CodePackage", + "id" : "acm014254jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014255jsd" ] + }, + "acm014255jsd" : { + "type" : "CodePackage", + "id" : "acm014255jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014256jsd" ] + }, + "acm014256jsd" : { + "type" : "CodePackage", + "id" : "acm014256jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014251jsd" ] + }, + "acm014257jsd" : { + "type" : "ControlElement", + "id" : "acm014257jsd", + "name" : "parseEntries" + }, + "acm014258jsd" : { + "type" : "ControlElement", + "id" : "acm014258jsd", + "name" : "parseEntries" + }, + "acm014259jsd" : { + "type" : "ControlElement", + "id" : "acm014259jsd", + "name" : "parseEntry" + }, + "acm014260jsd" : { + "type" : "ControlElement", + "id" : "acm014260jsd", + "name" : "getSubfield" + }, + "acm014261jsd" : { + "type" : "ControlElement", + "id" : "acm014261jsd", + "name" : "getChild" + }, + "acm014262jsd" : { + "type" : "ControlElement", + "id" : "acm014262jsd", + "name" : "getChildren" + }, + "acm014263jsd" : { + "type" : "ControlElement", + "id" : "acm014263jsd", + "name" : "removeSortCharacters" + }, + "acm014264jsd" : { + "type" : "ClassUnit", + "id" : "acm014264jsd", + "name" : "PicaXmlParser", + "compilationUnitId" : "acm014251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm012523jsd" ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm014264jsd", "acm018267jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm014257jsd", "acm014258jsd", "acm014259jsd", "acm014260jsd", "acm014261jsd", "acm014262jsd", "acm014263jsd" ] + }, + "acm014265jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014265jsd", + "name" : "RepecNepImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014286jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014266jsd" : { + "type" : "CodePackage", + "id" : "acm014266jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014267jsd" ] + }, + "acm014267jsd" : { + "type" : "CodePackage", + "id" : "acm014267jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014268jsd" ] + }, + "acm014268jsd" : { + "type" : "CodePackage", + "id" : "acm014268jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014269jsd" ] + }, + "acm014269jsd" : { + "type" : "CodePackage", + "id" : "acm014269jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014270jsd" ] + }, + "acm014270jsd" : { + "type" : "CodePackage", + "id" : "acm014270jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014265jsd" ] + }, + "acm014271jsd" : { + "type" : "ControlElement", + "id" : "acm014271jsd", + "name" : "RepecNepImporter" + }, + "acm014272jsd" : { + "type" : "ControlElement", + "id" : "acm014272jsd", + "name" : "getName" + }, + "acm014273jsd" : { + "type" : "ControlElement", + "id" : "acm014273jsd", + "name" : "getId" + }, + "acm014274jsd" : { + "type" : "ControlElement", + "id" : "acm014274jsd", + "name" : "getFileType" + }, + "acm014275jsd" : { + "type" : "ControlElement", + "id" : "acm014275jsd", + "name" : "getDescription" + }, + "acm014276jsd" : { + "type" : "ControlElement", + "id" : "acm014276jsd", + "name" : "isRecognizedFormat" + }, + "acm014277jsd" : { + "type" : "ControlElement", + "id" : "acm014277jsd", + "name" : "startsWithKeyword" + }, + "acm014278jsd" : { + "type" : "ControlElement", + "id" : "acm014278jsd", + "name" : "readLine" + }, + "acm014279jsd" : { + "type" : "ControlElement", + "id" : "acm014279jsd", + "name" : "readMultipleLines" + }, + "acm014280jsd" : { + "type" : "ControlElement", + "id" : "acm014280jsd", + "name" : "parseTitleString" + }, + "acm014281jsd" : { + "type" : "ControlElement", + "id" : "acm014281jsd", + "name" : "parseAuthors" + }, + "acm014282jsd" : { + "type" : "ControlElement", + "id" : "acm014282jsd", + "name" : "parseAbstract" + }, + "acm014283jsd" : { + "type" : "ControlElement", + "id" : "acm014283jsd", + "name" : "parseAdditionalFields" + }, + "acm014284jsd" : { + "type" : "ControlElement", + "id" : "acm014284jsd", + "name" : "isStartOfWorkingPaper" + }, + "acm014285jsd" : { + "type" : "ControlElement", + "id" : "acm014285jsd", + "name" : "importDatabase" + }, + "acm014286jsd" : { + "type" : "ClassUnit", + "id" : "acm014286jsd", + "name" : "RepecNepImporter", + "compilationUnitId" : "acm014265jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014286jsd", "acm017344jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm014271jsd", "acm014272jsd", "acm014273jsd", "acm014274jsd", "acm014275jsd", "acm014276jsd", "acm014277jsd", "acm014278jsd", "acm014279jsd", "acm014280jsd", "acm014281jsd", "acm014282jsd", "acm014283jsd", "acm014284jsd", "acm014285jsd" ] + }, + "acm014287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014287jsd", + "name" : "RisImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014299jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014288jsd" : { + "type" : "CodePackage", + "id" : "acm014288jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014289jsd" ] + }, + "acm014289jsd" : { + "type" : "CodePackage", + "id" : "acm014289jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014290jsd" ] + }, + "acm014290jsd" : { + "type" : "CodePackage", + "id" : "acm014290jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014291jsd" ] + }, + "acm014291jsd" : { + "type" : "CodePackage", + "id" : "acm014291jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014292jsd" ] + }, + "acm014292jsd" : { + "type" : "CodePackage", + "id" : "acm014292jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014287jsd" ] + }, + "acm014293jsd" : { + "type" : "ControlElement", + "id" : "acm014293jsd", + "name" : "getName" + }, + "acm014294jsd" : { + "type" : "ControlElement", + "id" : "acm014294jsd", + "name" : "getFileType" + }, + "acm014295jsd" : { + "type" : "ControlElement", + "id" : "acm014295jsd", + "name" : "getDescription" + }, + "acm014296jsd" : { + "type" : "ControlElement", + "id" : "acm014296jsd", + "name" : "isRecognizedFormat" + }, + "acm014297jsd" : { + "type" : "ControlElement", + "id" : "acm014297jsd", + "name" : "importDatabase" + }, + "acm014298jsd" : { + "type" : "ControlElement", + "id" : "acm014298jsd", + "name" : "addDoi" + }, + "acm014299jsd" : { + "type" : "ClassUnit", + "id" : "acm014299jsd", + "name" : "RisImporter", + "compilationUnitId" : "acm014287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018525jsd", "acm018673jsd", "acm018813jsd", "acm018865jsd", "acm019005jsd" ], + "content" : [ "acm014293jsd", "acm014294jsd", "acm014295jsd", "acm014296jsd", "acm014297jsd", "acm014298jsd" ] + }, + "acm014300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014300jsd", + "name" : "SilverPlatterImporter", + "parentId" : "acm013673jsd", + "content" : [ "acm014311jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014301jsd" : { + "type" : "CodePackage", + "id" : "acm014301jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014302jsd" ] + }, + "acm014302jsd" : { + "type" : "CodePackage", + "id" : "acm014302jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014303jsd" ] + }, + "acm014303jsd" : { + "type" : "CodePackage", + "id" : "acm014303jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014304jsd" ] + }, + "acm014304jsd" : { + "type" : "CodePackage", + "id" : "acm014304jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014305jsd" ] + }, + "acm014305jsd" : { + "type" : "CodePackage", + "id" : "acm014305jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014300jsd" ] + }, + "acm014306jsd" : { + "type" : "ControlElement", + "id" : "acm014306jsd", + "name" : "getName" + }, + "acm014307jsd" : { + "type" : "ControlElement", + "id" : "acm014307jsd", + "name" : "getFileType" + }, + "acm014308jsd" : { + "type" : "ControlElement", + "id" : "acm014308jsd", + "name" : "getDescription" + }, + "acm014309jsd" : { + "type" : "ControlElement", + "id" : "acm014309jsd", + "name" : "isRecognizedFormat" + }, + "acm014310jsd" : { + "type" : "ControlElement", + "id" : "acm014310jsd", + "name" : "importDatabase" + }, + "acm014311jsd" : { + "type" : "ClassUnit", + "id" : "acm014311jsd", + "name" : "SilverPlatterImporter", + "compilationUnitId" : "acm014300jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012455jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017344jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd" ], + "content" : [ "acm014306jsd", "acm014307jsd", "acm014308jsd", "acm014309jsd", "acm014310jsd" ] + }, + "acm014312jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014312jsd", + "name" : "ArticleId", + "parentId" : "acm014318jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "medline" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014313jsd" : { + "type" : "CodePackage", + "id" : "acm014313jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014314jsd" ] + }, + "acm014314jsd" : { + "type" : "CodePackage", + "id" : "acm014314jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014315jsd" ] + }, + "acm014315jsd" : { + "type" : "CodePackage", + "id" : "acm014315jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014316jsd" ] + }, + "acm014316jsd" : { + "type" : "CodePackage", + "id" : "acm014316jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014317jsd" ] + }, + "acm014317jsd" : { + "type" : "CodePackage", + "id" : "acm014317jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014318jsd" ] + }, + "acm014318jsd" : { + "type" : "CodePackage", + "id" : "acm014318jsd", + "name" : "medline", + "parentId" : "acm013673jsd", + "content" : [ "acm014312jsd", "acm014319jsd", "acm014326jsd", "acm014333jsd", "acm014340jsd" ] + }, + "acm014319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014319jsd", + "name" : "Investigator", + "parentId" : "acm014318jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "medline" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014320jsd" : { + "type" : "CodePackage", + "id" : "acm014320jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014321jsd" ] + }, + "acm014321jsd" : { + "type" : "CodePackage", + "id" : "acm014321jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014322jsd" ] + }, + "acm014322jsd" : { + "type" : "CodePackage", + "id" : "acm014322jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014323jsd" ] + }, + "acm014323jsd" : { + "type" : "CodePackage", + "id" : "acm014323jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014324jsd" ] + }, + "acm014324jsd" : { + "type" : "CodePackage", + "id" : "acm014324jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014325jsd" ] + }, + "acm014325jsd" : { + "type" : "CodePackage", + "id" : "acm014325jsd", + "name" : "medline", + "parentId" : null, + "content" : [ "acm014319jsd" ] + }, + "acm014326jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014326jsd", + "name" : "MeshHeading", + "parentId" : "acm014318jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "medline" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014327jsd" : { + "type" : "CodePackage", + "id" : "acm014327jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014328jsd" ] + }, + "acm014328jsd" : { + "type" : "CodePackage", + "id" : "acm014328jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014329jsd" ] + }, + "acm014329jsd" : { + "type" : "CodePackage", + "id" : "acm014329jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014330jsd" ] + }, + "acm014330jsd" : { + "type" : "CodePackage", + "id" : "acm014330jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014331jsd" ] + }, + "acm014331jsd" : { + "type" : "CodePackage", + "id" : "acm014331jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014332jsd" ] + }, + "acm014332jsd" : { + "type" : "CodePackage", + "id" : "acm014332jsd", + "name" : "medline", + "parentId" : null, + "content" : [ "acm014326jsd" ] + }, + "acm014333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014333jsd", + "name" : "OtherId", + "parentId" : "acm014318jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "medline" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014334jsd" : { + "type" : "CodePackage", + "id" : "acm014334jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014335jsd" ] + }, + "acm014335jsd" : { + "type" : "CodePackage", + "id" : "acm014335jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014336jsd" ] + }, + "acm014336jsd" : { + "type" : "CodePackage", + "id" : "acm014336jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014337jsd" ] + }, + "acm014337jsd" : { + "type" : "CodePackage", + "id" : "acm014337jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014338jsd" ] + }, + "acm014338jsd" : { + "type" : "CodePackage", + "id" : "acm014338jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014339jsd" ] + }, + "acm014339jsd" : { + "type" : "CodePackage", + "id" : "acm014339jsd", + "name" : "medline", + "parentId" : null, + "content" : [ "acm014333jsd" ] + }, + "acm014340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014340jsd", + "name" : "PersonalNameSubject", + "parentId" : "acm014318jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "medline" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014341jsd" : { + "type" : "CodePackage", + "id" : "acm014341jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014342jsd" ] + }, + "acm014342jsd" : { + "type" : "CodePackage", + "id" : "acm014342jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014343jsd" ] + }, + "acm014343jsd" : { + "type" : "CodePackage", + "id" : "acm014343jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014344jsd" ] + }, + "acm014344jsd" : { + "type" : "CodePackage", + "id" : "acm014344jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014345jsd" ] + }, + "acm014345jsd" : { + "type" : "CodePackage", + "id" : "acm014345jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014346jsd" ] + }, + "acm014346jsd" : { + "type" : "CodePackage", + "id" : "acm014346jsd", + "name" : "medline", + "parentId" : null, + "content" : [ "acm014340jsd" ] + }, + "acm014347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014347jsd", + "name" : "Identifier", + "parentId" : "acm014353jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "mods" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014348jsd" : { + "type" : "CodePackage", + "id" : "acm014348jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014349jsd" ] + }, + "acm014349jsd" : { + "type" : "CodePackage", + "id" : "acm014349jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014350jsd" ] + }, + "acm014350jsd" : { + "type" : "CodePackage", + "id" : "acm014350jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014351jsd" ] + }, + "acm014351jsd" : { + "type" : "CodePackage", + "id" : "acm014351jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014352jsd" ] + }, + "acm014352jsd" : { + "type" : "CodePackage", + "id" : "acm014352jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014353jsd" ] + }, + "acm014353jsd" : { + "type" : "CodePackage", + "id" : "acm014353jsd", + "name" : "mods", + "parentId" : "acm013673jsd", + "content" : [ "acm014347jsd", "acm014354jsd", "acm014361jsd", "acm014368jsd" ] + }, + "acm014354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014354jsd", + "name" : "Name", + "parentId" : "acm014353jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "mods" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014355jsd" : { + "type" : "CodePackage", + "id" : "acm014355jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014356jsd" ] + }, + "acm014356jsd" : { + "type" : "CodePackage", + "id" : "acm014356jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014357jsd" ] + }, + "acm014357jsd" : { + "type" : "CodePackage", + "id" : "acm014357jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014358jsd" ] + }, + "acm014358jsd" : { + "type" : "CodePackage", + "id" : "acm014358jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014359jsd" ] + }, + "acm014359jsd" : { + "type" : "CodePackage", + "id" : "acm014359jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014360jsd" ] + }, + "acm014360jsd" : { + "type" : "CodePackage", + "id" : "acm014360jsd", + "name" : "mods", + "parentId" : null, + "content" : [ "acm014354jsd" ] + }, + "acm014361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014361jsd", + "name" : "RecordInfo", + "parentId" : "acm014353jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "mods" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014362jsd" : { + "type" : "CodePackage", + "id" : "acm014362jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014363jsd" ] + }, + "acm014363jsd" : { + "type" : "CodePackage", + "id" : "acm014363jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014364jsd" ] + }, + "acm014364jsd" : { + "type" : "CodePackage", + "id" : "acm014364jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014365jsd" ] + }, + "acm014365jsd" : { + "type" : "CodePackage", + "id" : "acm014365jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014366jsd" ] + }, + "acm014366jsd" : { + "type" : "CodePackage", + "id" : "acm014366jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014367jsd" ] + }, + "acm014367jsd" : { + "type" : "CodePackage", + "id" : "acm014367jsd", + "name" : "mods", + "parentId" : null, + "content" : [ "acm014361jsd" ] + }, + "acm014368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014368jsd", + "name" : "package-info", + "parentId" : "acm014353jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "fileformat", "mods" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014369jsd" : { + "type" : "CodePackage", + "id" : "acm014369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014370jsd" ] + }, + "acm014370jsd" : { + "type" : "CodePackage", + "id" : "acm014370jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014371jsd" ] + }, + "acm014371jsd" : { + "type" : "CodePackage", + "id" : "acm014371jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014372jsd" ] + }, + "acm014372jsd" : { + "type" : "CodePackage", + "id" : "acm014372jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014373jsd" ] + }, + "acm014373jsd" : { + "type" : "CodePackage", + "id" : "acm014373jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm014374jsd" ] + }, + "acm014374jsd" : { + "type" : "CodePackage", + "id" : "acm014374jsd", + "name" : "mods", + "parentId" : null, + "content" : [ "acm014368jsd" ] + }, + "acm014375jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014375jsd", + "name" : "FileFieldParser", + "parentId" : "acm014380jsd", + "content" : [ "acm014386jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014376jsd" : { + "type" : "CodePackage", + "id" : "acm014376jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014377jsd" ] + }, + "acm014377jsd" : { + "type" : "CodePackage", + "id" : "acm014377jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014378jsd" ] + }, + "acm014378jsd" : { + "type" : "CodePackage", + "id" : "acm014378jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014379jsd" ] + }, + "acm014379jsd" : { + "type" : "CodePackage", + "id" : "acm014379jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014380jsd" ] + }, + "acm014380jsd" : { + "type" : "CodePackage", + "id" : "acm014380jsd", + "name" : "util", + "parentId" : "acm012263jsd", + "content" : [ "acm014375jsd", "acm014387jsd", "acm014402jsd", "acm014422jsd", "acm014433jsd", "acm014443jsd", "acm014452jsd", "acm014459jsd", "acm014474jsd", "acm014483jsd", "acm025791jsd", "acm025802jsd", "acm025815jsd", "acm025834jsd", "acm025846jsd" ] + }, + "acm014381jsd" : { + "type" : "ControlElement", + "id" : "acm014381jsd", + "name" : "FileFieldParser" + }, + "acm014382jsd" : { + "type" : "ControlElement", + "id" : "acm014382jsd", + "name" : "parse" + }, + "acm014383jsd" : { + "type" : "ControlElement", + "id" : "acm014383jsd", + "name" : "parse" + }, + "acm014384jsd" : { + "type" : "ControlElement", + "id" : "acm014384jsd", + "name" : "resetDataStructuresForNextElement" + }, + "acm014385jsd" : { + "type" : "ControlElement", + "id" : "acm014385jsd", + "name" : "convert" + }, + "acm014386jsd" : { + "type" : "ClassUnit", + "id" : "acm014386jsd", + "name" : "FileFieldParser", + "compilationUnitId" : "acm014375jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014386jsd", "acm018509jsd" ], + "content" : [ "acm014381jsd", "acm014382jsd", "acm014383jsd", "acm014384jsd", "acm014385jsd" ] + }, + "acm014387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014387jsd", + "name" : "GrobidService", + "parentId" : "acm014380jsd", + "content" : [ "acm014398jsd", "acm014401jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014388jsd" : { + "type" : "CodePackage", + "id" : "acm014388jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014389jsd" ] + }, + "acm014389jsd" : { + "type" : "CodePackage", + "id" : "acm014389jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014390jsd" ] + }, + "acm014390jsd" : { + "type" : "CodePackage", + "id" : "acm014390jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014391jsd" ] + }, + "acm014391jsd" : { + "type" : "CodePackage", + "id" : "acm014391jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014392jsd" ] + }, + "acm014392jsd" : { + "type" : "CodePackage", + "id" : "acm014392jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014387jsd" ] + }, + "acm014393jsd" : { + "type" : "ControlElement", + "id" : "acm014393jsd", + "name" : "ConsolidateCitations" + }, + "acm014394jsd" : { + "type" : "ControlElement", + "id" : "acm014394jsd", + "name" : "getCode" + }, + "acm014395jsd" : { + "type" : "ControlElement", + "id" : "acm014395jsd", + "name" : "GrobidService" + }, + "acm014396jsd" : { + "type" : "ControlElement", + "id" : "acm014396jsd", + "name" : "processCitation" + }, + "acm014397jsd" : { + "type" : "ControlElement", + "id" : "acm014397jsd", + "name" : "processPDF" + }, + "acm014398jsd" : { + "type" : "ClassUnit", + "id" : "acm014398jsd", + "name" : "GrobidService", + "compilationUnitId" : "acm014387jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm013062jsd", "acm013761jsd", "acm014401jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm014393jsd", "acm014394jsd", "acm014395jsd", "acm014396jsd", "acm014397jsd" ] + }, + "acm014399jsd" : { + "type" : "ControlElement", + "id" : "acm014399jsd", + "name" : "ConsolidateCitations" + }, + "acm014400jsd" : { + "type" : "ControlElement", + "id" : "acm014400jsd", + "name" : "getCode" + }, + "acm014401jsd" : { + "type" : "ClassUnit", + "id" : "acm014401jsd", + "name" : "ConsolidateCitations", + "compilationUnitId" : "acm014387jsd", + "parentDatatypeId" : "acm014398jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014399jsd", "acm014400jsd" ] + }, + "acm014402jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014402jsd", + "name" : "GroupsParser", + "parentId" : "acm014380jsd", + "content" : [ "acm014421jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014403jsd" : { + "type" : "CodePackage", + "id" : "acm014403jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014404jsd" ] + }, + "acm014404jsd" : { + "type" : "CodePackage", + "id" : "acm014404jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014405jsd" ] + }, + "acm014405jsd" : { + "type" : "CodePackage", + "id" : "acm014405jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014406jsd" ] + }, + "acm014406jsd" : { + "type" : "CodePackage", + "id" : "acm014406jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014407jsd" ] + }, + "acm014407jsd" : { + "type" : "CodePackage", + "id" : "acm014407jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014402jsd" ] + }, + "acm014408jsd" : { + "type" : "ControlElement", + "id" : "acm014408jsd", + "name" : "GroupsParser" + }, + "acm014409jsd" : { + "type" : "ControlElement", + "id" : "acm014409jsd", + "name" : "importGroups" + }, + "acm014410jsd" : { + "type" : "ControlElement", + "id" : "acm014410jsd", + "name" : "fromString" + }, + "acm014411jsd" : { + "type" : "ControlElement", + "id" : "acm014411jsd", + "name" : "texGroupFromString" + }, + "acm014412jsd" : { + "type" : "ControlElement", + "id" : "acm014412jsd", + "name" : "automaticPersonsGroupFromString" + }, + "acm014413jsd" : { + "type" : "ControlElement", + "id" : "acm014413jsd", + "name" : "automaticKeywordGroupFromString" + }, + "acm014414jsd" : { + "type" : "ControlElement", + "id" : "acm014414jsd", + "name" : "keywordGroupFromString" + }, + "acm014415jsd" : { + "type" : "ControlElement", + "id" : "acm014415jsd", + "name" : "explicitGroupFromString" + }, + "acm014416jsd" : { + "type" : "ControlElement", + "id" : "acm014416jsd", + "name" : "legacyExplicitGroupFromString" + }, + "acm014417jsd" : { + "type" : "ControlElement", + "id" : "acm014417jsd", + "name" : "addLegacyEntryKeys" + }, + "acm014418jsd" : { + "type" : "ControlElement", + "id" : "acm014418jsd", + "name" : "allEntriesGroupFromString" + }, + "acm014419jsd" : { + "type" : "ControlElement", + "id" : "acm014419jsd", + "name" : "searchGroupFromString" + }, + "acm014420jsd" : { + "type" : "ControlElement", + "id" : "acm014420jsd", + "name" : "addGroupDetails" + }, + "acm014421jsd" : { + "type" : "ClassUnit", + "id" : "acm014421jsd", + "name" : "GroupsParser", + "compilationUnitId" : "acm014402jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010458jsd", "acm012515jsd", "acm014421jsd", "acm017615jsd", "acm017988jsd", "acm018673jsd", "acm019107jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019190jsd", "acm019221jsd", "acm019234jsd", "acm019256jsd", "acm019271jsd", "acm019293jsd", "acm019315jsd", "acm019421jsd", "acm020473jsd", "acm020693jsd" ], + "content" : [ "acm014408jsd", "acm014409jsd", "acm014410jsd", "acm014411jsd", "acm014412jsd", "acm014413jsd", "acm014414jsd", "acm014415jsd", "acm014416jsd", "acm014417jsd", "acm014418jsd", "acm014419jsd", "acm014420jsd" ] + }, + "acm014422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014422jsd", + "name" : "INSPIREBibtexFilterReader", + "parentId" : "acm014380jsd", + "content" : [ "acm014432jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014423jsd" : { + "type" : "CodePackage", + "id" : "acm014423jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014424jsd" ] + }, + "acm014424jsd" : { + "type" : "CodePackage", + "id" : "acm014424jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014425jsd" ] + }, + "acm014425jsd" : { + "type" : "CodePackage", + "id" : "acm014425jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014426jsd" ] + }, + "acm014426jsd" : { + "type" : "CodePackage", + "id" : "acm014426jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014427jsd" ] + }, + "acm014427jsd" : { + "type" : "CodePackage", + "id" : "acm014427jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014422jsd" ] + }, + "acm014428jsd" : { + "type" : "ControlElement", + "id" : "acm014428jsd", + "name" : "INSPIREBibtexFilterReader" + }, + "acm014429jsd" : { + "type" : "ControlElement", + "id" : "acm014429jsd", + "name" : "readpreLine" + }, + "acm014430jsd" : { + "type" : "ControlElement", + "id" : "acm014430jsd", + "name" : "fixBibkey" + }, + "acm014431jsd" : { + "type" : "ControlElement", + "id" : "acm014431jsd", + "name" : "read" + }, + "acm014432jsd" : { + "type" : "ClassUnit", + "id" : "acm014432jsd", + "name" : "INSPIREBibtexFilterReader", + "compilationUnitId" : "acm014422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014428jsd", "acm014429jsd", "acm014430jsd", "acm014431jsd" ] + }, + "acm014433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014433jsd", + "name" : "IdentifierParser", + "parentId" : "acm014380jsd", + "content" : [ "acm014442jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014434jsd" : { + "type" : "CodePackage", + "id" : "acm014434jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014435jsd" ] + }, + "acm014435jsd" : { + "type" : "CodePackage", + "id" : "acm014435jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014436jsd" ] + }, + "acm014436jsd" : { + "type" : "CodePackage", + "id" : "acm014436jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014437jsd" ] + }, + "acm014437jsd" : { + "type" : "CodePackage", + "id" : "acm014437jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014438jsd" ] + }, + "acm014438jsd" : { + "type" : "CodePackage", + "id" : "acm014438jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014433jsd" ] + }, + "acm014439jsd" : { + "type" : "ControlElement", + "id" : "acm014439jsd", + "name" : "IdentifierParser" + }, + "acm014440jsd" : { + "type" : "ControlElement", + "id" : "acm014440jsd", + "name" : "parse" + }, + "acm014441jsd" : { + "type" : "ControlElement", + "id" : "acm014441jsd", + "name" : "parseEprint" + }, + "acm014442jsd" : { + "type" : "ClassUnit", + "id" : "acm014442jsd", + "name" : "IdentifierParser", + "compilationUnitId" : "acm014433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm018930jsd" ], + "content" : [ "acm014439jsd", "acm014440jsd", "acm014441jsd" ] + }, + "acm014443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014443jsd", + "name" : "JsonReader", + "parentId" : "acm014380jsd", + "content" : [ "acm014451jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014444jsd" : { + "type" : "CodePackage", + "id" : "acm014444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014445jsd" ] + }, + "acm014445jsd" : { + "type" : "CodePackage", + "id" : "acm014445jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014446jsd" ] + }, + "acm014446jsd" : { + "type" : "CodePackage", + "id" : "acm014446jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014447jsd" ] + }, + "acm014447jsd" : { + "type" : "CodePackage", + "id" : "acm014447jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014448jsd" ] + }, + "acm014448jsd" : { + "type" : "CodePackage", + "id" : "acm014448jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014443jsd" ] + }, + "acm014449jsd" : { + "type" : "ControlElement", + "id" : "acm014449jsd", + "name" : "toJsonObject" + }, + "acm014450jsd" : { + "type" : "ControlElement", + "id" : "acm014450jsd", + "name" : "toJsonArray" + }, + "acm014451jsd" : { + "type" : "ClassUnit", + "id" : "acm014451jsd", + "name" : "JsonReader", + "compilationUnitId" : "acm014443jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd" ], + "content" : [ "acm014449jsd", "acm014450jsd" ] + }, + "acm014452jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014452jsd", + "name" : "MediaTypes", + "parentId" : "acm014380jsd", + "content" : [ "acm014458jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014453jsd" : { + "type" : "CodePackage", + "id" : "acm014453jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014454jsd" ] + }, + "acm014454jsd" : { + "type" : "CodePackage", + "id" : "acm014454jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014455jsd" ] + }, + "acm014455jsd" : { + "type" : "CodePackage", + "id" : "acm014455jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014456jsd" ] + }, + "acm014456jsd" : { + "type" : "CodePackage", + "id" : "acm014456jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014457jsd" ] + }, + "acm014457jsd" : { + "type" : "CodePackage", + "id" : "acm014457jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014452jsd" ] + }, + "acm014458jsd" : { + "type" : "ClassUnit", + "id" : "acm014458jsd", + "name" : "MediaTypes", + "compilationUnitId" : "acm014452jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm014459jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014459jsd", + "name" : "MetaDataParser", + "parentId" : "acm014380jsd", + "content" : [ "acm014473jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014460jsd" : { + "type" : "CodePackage", + "id" : "acm014460jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014461jsd" ] + }, + "acm014461jsd" : { + "type" : "CodePackage", + "id" : "acm014461jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014462jsd" ] + }, + "acm014462jsd" : { + "type" : "CodePackage", + "id" : "acm014462jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014463jsd" ] + }, + "acm014463jsd" : { + "type" : "CodePackage", + "id" : "acm014463jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014464jsd" ] + }, + "acm014464jsd" : { + "type" : "CodePackage", + "id" : "acm014464jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014459jsd" ] + }, + "acm014465jsd" : { + "type" : "ControlElement", + "id" : "acm014465jsd", + "name" : "MetaDataParser" + }, + "acm014466jsd" : { + "type" : "ControlElement", + "id" : "acm014466jsd", + "name" : "parseCustomEntryType" + }, + "acm014467jsd" : { + "type" : "ControlElement", + "id" : "acm014467jsd", + "name" : "parse" + }, + "acm014468jsd" : { + "type" : "ControlElement", + "id" : "acm014468jsd", + "name" : "parse" + }, + "acm014469jsd" : { + "type" : "ControlElement", + "id" : "acm014469jsd", + "name" : "groupsLast" + }, + "acm014470jsd" : { + "type" : "ControlElement", + "id" : "acm014470jsd", + "name" : "getSingleItem" + }, + "acm014471jsd" : { + "type" : "ControlElement", + "id" : "acm014471jsd", + "name" : "getAsList" + }, + "acm014472jsd" : { + "type" : "ControlElement", + "id" : "acm014472jsd", + "name" : "getNextUnit" + }, + "acm014473jsd" : { + "type" : "ClassUnit", + "id" : "acm014473jsd", + "name" : "MetaDataParser", + "compilationUnitId" : "acm014459jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm014473jsd", "acm018289jsd", "acm018306jsd", "acm019005jsd", "acm019421jsd", "acm020693jsd" ], + "content" : [ "acm014465jsd", "acm014466jsd", "acm014467jsd", "acm014468jsd", "acm014469jsd", "acm014470jsd", "acm014471jsd", "acm014472jsd" ] + }, + "acm014474jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014474jsd", + "name" : "ShortDOIService", + "parentId" : "acm014380jsd", + "content" : [ "acm014482jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014475jsd" : { + "type" : "CodePackage", + "id" : "acm014475jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014476jsd" ] + }, + "acm014476jsd" : { + "type" : "CodePackage", + "id" : "acm014476jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014477jsd" ] + }, + "acm014477jsd" : { + "type" : "CodePackage", + "id" : "acm014477jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014478jsd" ] + }, + "acm014478jsd" : { + "type" : "CodePackage", + "id" : "acm014478jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014479jsd" ] + }, + "acm014479jsd" : { + "type" : "CodePackage", + "id" : "acm014479jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014474jsd" ] + }, + "acm014480jsd" : { + "type" : "ControlElement", + "id" : "acm014480jsd", + "name" : "getShortDOI" + }, + "acm014481jsd" : { + "type" : "ControlElement", + "id" : "acm014481jsd", + "name" : "makeRequest" + }, + "acm014482jsd" : { + "type" : "ClassUnit", + "id" : "acm014482jsd", + "name" : "ShortDOIService", + "compilationUnitId" : "acm014474jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm014494jsd", "acm015926jsd", "acm018865jsd" ], + "content" : [ "acm014480jsd", "acm014481jsd" ] + }, + "acm014483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014483jsd", + "name" : "ShortDOIServiceException", + "parentId" : "acm014380jsd", + "content" : [ "acm014494jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014484jsd" : { + "type" : "CodePackage", + "id" : "acm014484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014485jsd" ] + }, + "acm014485jsd" : { + "type" : "CodePackage", + "id" : "acm014485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014486jsd" ] + }, + "acm014486jsd" : { + "type" : "CodePackage", + "id" : "acm014486jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014487jsd" ] + }, + "acm014487jsd" : { + "type" : "CodePackage", + "id" : "acm014487jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm014488jsd" ] + }, + "acm014488jsd" : { + "type" : "CodePackage", + "id" : "acm014488jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm014483jsd" ] + }, + "acm014489jsd" : { + "type" : "ControlElement", + "id" : "acm014489jsd", + "name" : "ShortDOIServiceException" + }, + "acm014490jsd" : { + "type" : "ControlElement", + "id" : "acm014490jsd", + "name" : "ShortDOIServiceException" + }, + "acm014491jsd" : { + "type" : "ControlElement", + "id" : "acm014491jsd", + "name" : "ShortDOIServiceException" + }, + "acm014492jsd" : { + "type" : "ControlElement", + "id" : "acm014492jsd", + "name" : "ShortDOIServiceException" + }, + "acm014493jsd" : { + "type" : "ControlElement", + "id" : "acm014493jsd", + "name" : "ShortDOIServiceException" + }, + "acm014494jsd" : { + "type" : "ClassUnit", + "id" : "acm014494jsd", + "name" : "ShortDOIServiceException", + "compilationUnitId" : "acm014483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010366jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014489jsd", "acm014490jsd", "acm014491jsd", "acm014492jsd", "acm014493jsd" ] + }, + "acm014495jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014495jsd", + "name" : "ASCIICharacterChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014501jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014496jsd" : { + "type" : "CodePackage", + "id" : "acm014496jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014497jsd" ] + }, + "acm014497jsd" : { + "type" : "CodePackage", + "id" : "acm014497jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014498jsd" ] + }, + "acm014498jsd" : { + "type" : "CodePackage", + "id" : "acm014498jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014499jsd" ] + }, + "acm014499jsd" : { + "type" : "CodePackage", + "id" : "acm014499jsd", + "name" : "integrity", + "parentId" : "acm001340jsd", + "content" : [ "acm014495jsd", "acm014502jsd", "acm014510jsd", "acm014517jsd", "acm014524jsd", "acm014531jsd", "acm014538jsd", "acm014545jsd", "acm014552jsd", "acm014559jsd", "acm014567jsd", "acm014575jsd", "acm014582jsd", "acm014589jsd", "acm014596jsd", "acm014603jsd", "acm014612jsd", "acm014619jsd", "acm014627jsd", "acm014635jsd", "acm014645jsd", "acm014653jsd", "acm014660jsd", "acm014668jsd", "acm014675jsd", "acm014682jsd", "acm014692jsd", "acm014706jsd", "acm014714jsd", "acm014722jsd", "acm014730jsd", "acm014738jsd", "acm014746jsd", "acm014754jsd", "acm014762jsd", "acm014769jsd", "acm014778jsd", "acm014785jsd", "acm014792jsd", "acm014799jsd", "acm025856jsd", "acm025867jsd", "acm025880jsd", "acm025892jsd", "acm025902jsd", "acm025911jsd", "acm025925jsd", "acm025941jsd", "acm025951jsd", "acm025959jsd", "acm025967jsd", "acm025976jsd", "acm025985jsd", "acm025998jsd", "acm026023jsd", "acm026037jsd", "acm026050jsd", "acm026063jsd", "acm026075jsd", "acm026088jsd", "acm026112jsd", "acm026123jsd", "acm026141jsd", "acm026150jsd", "acm026163jsd", "acm026174jsd", "acm026185jsd", "acm026199jsd", "acm026245jsd", "acm026253jsd", "acm026263jsd", "acm026275jsd", "acm026283jsd" ] + }, + "acm014500jsd" : { + "type" : "ControlElement", + "id" : "acm014500jsd", + "name" : "check" + }, + "acm014501jsd" : { + "type" : "ClassUnit", + "id" : "acm014501jsd", + "name" : "ASCIICharacterChecker", + "compilationUnitId" : "acm014495jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014500jsd" ] + }, + "acm014502jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014502jsd", + "name" : "AbbreviationChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014509jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014503jsd" : { + "type" : "CodePackage", + "id" : "acm014503jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014504jsd" ] + }, + "acm014504jsd" : { + "type" : "CodePackage", + "id" : "acm014504jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014505jsd" ] + }, + "acm014505jsd" : { + "type" : "CodePackage", + "id" : "acm014505jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014506jsd" ] + }, + "acm014506jsd" : { + "type" : "CodePackage", + "id" : "acm014506jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014502jsd" ] + }, + "acm014507jsd" : { + "type" : "ControlElement", + "id" : "acm014507jsd", + "name" : "AbbreviationChecker" + }, + "acm014508jsd" : { + "type" : "ControlElement", + "id" : "acm014508jsd", + "name" : "check" + }, + "acm014509jsd" : { + "type" : "ClassUnit", + "id" : "acm014509jsd", + "name" : "AbbreviationChecker", + "compilationUnitId" : "acm014502jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014507jsd", "acm014508jsd" ] + }, + "acm014510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014510jsd", + "name" : "AmpersandChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014516jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014511jsd" : { + "type" : "CodePackage", + "id" : "acm014511jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014512jsd" ] + }, + "acm014512jsd" : { + "type" : "CodePackage", + "id" : "acm014512jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014513jsd" ] + }, + "acm014513jsd" : { + "type" : "CodePackage", + "id" : "acm014513jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014514jsd" ] + }, + "acm014514jsd" : { + "type" : "CodePackage", + "id" : "acm014514jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014510jsd" ] + }, + "acm014515jsd" : { + "type" : "ControlElement", + "id" : "acm014515jsd", + "name" : "check" + }, + "acm014516jsd" : { + "type" : "ClassUnit", + "id" : "acm014516jsd", + "name" : "AmpersandChecker", + "compilationUnitId" : "acm014510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014515jsd" ] + }, + "acm014517jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014517jsd", + "name" : "BibStringChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014523jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014518jsd" : { + "type" : "CodePackage", + "id" : "acm014518jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014519jsd" ] + }, + "acm014519jsd" : { + "type" : "CodePackage", + "id" : "acm014519jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014520jsd" ] + }, + "acm014520jsd" : { + "type" : "CodePackage", + "id" : "acm014520jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014521jsd" ] + }, + "acm014521jsd" : { + "type" : "CodePackage", + "id" : "acm014521jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014517jsd" ] + }, + "acm014522jsd" : { + "type" : "ControlElement", + "id" : "acm014522jsd", + "name" : "check" + }, + "acm014523jsd" : { + "type" : "ClassUnit", + "id" : "acm014523jsd", + "name" : "BibStringChecker", + "compilationUnitId" : "acm014517jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014522jsd" ] + }, + "acm014524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014524jsd", + "name" : "BibTeXEntryTypeChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014530jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014525jsd" : { + "type" : "CodePackage", + "id" : "acm014525jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014526jsd" ] + }, + "acm014526jsd" : { + "type" : "CodePackage", + "id" : "acm014526jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014527jsd" ] + }, + "acm014527jsd" : { + "type" : "CodePackage", + "id" : "acm014527jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014528jsd" ] + }, + "acm014528jsd" : { + "type" : "CodePackage", + "id" : "acm014528jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014524jsd" ] + }, + "acm014529jsd" : { + "type" : "ControlElement", + "id" : "acm014529jsd", + "name" : "check" + }, + "acm014530jsd" : { + "type" : "ClassUnit", + "id" : "acm014530jsd", + "name" : "BibTeXEntryTypeChecker", + "compilationUnitId" : "acm014524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm014529jsd" ] + }, + "acm014531jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014531jsd", + "name" : "BooktitleChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014537jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014532jsd" : { + "type" : "CodePackage", + "id" : "acm014532jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014533jsd" ] + }, + "acm014533jsd" : { + "type" : "CodePackage", + "id" : "acm014533jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014534jsd" ] + }, + "acm014534jsd" : { + "type" : "CodePackage", + "id" : "acm014534jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014535jsd" ] + }, + "acm014535jsd" : { + "type" : "CodePackage", + "id" : "acm014535jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014531jsd" ] + }, + "acm014536jsd" : { + "type" : "ControlElement", + "id" : "acm014536jsd", + "name" : "checkValue" + }, + "acm014537jsd" : { + "type" : "ClassUnit", + "id" : "acm014537jsd", + "name" : "BooktitleChecker", + "compilationUnitId" : "acm014531jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014536jsd" ] + }, + "acm014538jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014538jsd", + "name" : "BracesCorrector", + "parentId" : "acm014499jsd", + "content" : [ "acm014544jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014539jsd" : { + "type" : "CodePackage", + "id" : "acm014539jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014540jsd" ] + }, + "acm014540jsd" : { + "type" : "CodePackage", + "id" : "acm014540jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014541jsd" ] + }, + "acm014541jsd" : { + "type" : "CodePackage", + "id" : "acm014541jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014542jsd" ] + }, + "acm014542jsd" : { + "type" : "CodePackage", + "id" : "acm014542jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014538jsd" ] + }, + "acm014543jsd" : { + "type" : "ControlElement", + "id" : "acm014543jsd", + "name" : "apply" + }, + "acm014544jsd" : { + "type" : "ClassUnit", + "id" : "acm014544jsd", + "name" : "BracesCorrector", + "compilationUnitId" : "acm014538jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014543jsd" ] + }, + "acm014545jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014545jsd", + "name" : "BracketChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014551jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014546jsd" : { + "type" : "CodePackage", + "id" : "acm014546jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014547jsd" ] + }, + "acm014547jsd" : { + "type" : "CodePackage", + "id" : "acm014547jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014548jsd" ] + }, + "acm014548jsd" : { + "type" : "CodePackage", + "id" : "acm014548jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014549jsd" ] + }, + "acm014549jsd" : { + "type" : "CodePackage", + "id" : "acm014549jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014545jsd" ] + }, + "acm014550jsd" : { + "type" : "ControlElement", + "id" : "acm014550jsd", + "name" : "checkValue" + }, + "acm014551jsd" : { + "type" : "ClassUnit", + "id" : "acm014551jsd", + "name" : "BracketChecker", + "compilationUnitId" : "acm014545jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014550jsd" ] + }, + "acm014552jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014552jsd", + "name" : "CitationKeyChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014558jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014553jsd" : { + "type" : "CodePackage", + "id" : "acm014553jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014554jsd" ] + }, + "acm014554jsd" : { + "type" : "CodePackage", + "id" : "acm014554jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014555jsd" ] + }, + "acm014555jsd" : { + "type" : "CodePackage", + "id" : "acm014555jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014556jsd" ] + }, + "acm014556jsd" : { + "type" : "CodePackage", + "id" : "acm014556jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014552jsd" ] + }, + "acm014557jsd" : { + "type" : "ControlElement", + "id" : "acm014557jsd", + "name" : "check" + }, + "acm014558jsd" : { + "type" : "ClassUnit", + "id" : "acm014558jsd", + "name" : "CitationKeyChecker", + "compilationUnitId" : "acm014552jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm014557jsd" ] + }, + "acm014559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014559jsd", + "name" : "CitationKeyDeviationChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014566jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014560jsd" : { + "type" : "CodePackage", + "id" : "acm014560jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014561jsd" ] + }, + "acm014561jsd" : { + "type" : "CodePackage", + "id" : "acm014561jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014562jsd" ] + }, + "acm014562jsd" : { + "type" : "CodePackage", + "id" : "acm014562jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014563jsd" ] + }, + "acm014563jsd" : { + "type" : "CodePackage", + "id" : "acm014563jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014559jsd" ] + }, + "acm014564jsd" : { + "type" : "ControlElement", + "id" : "acm014564jsd", + "name" : "CitationKeyDeviationChecker" + }, + "acm014565jsd" : { + "type" : "ControlElement", + "id" : "acm014565jsd", + "name" : "check" + }, + "acm014566jsd" : { + "type" : "ClassUnit", + "id" : "acm014566jsd", + "name" : "CitationKeyDeviationChecker", + "compilationUnitId" : "acm014559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm010993jsd", "acm014705jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm014564jsd", "acm014565jsd" ] + }, + "acm014567jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014567jsd", + "name" : "CitationKeyDuplicationChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014574jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014568jsd" : { + "type" : "CodePackage", + "id" : "acm014568jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014569jsd" ] + }, + "acm014569jsd" : { + "type" : "CodePackage", + "id" : "acm014569jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014570jsd" ] + }, + "acm014570jsd" : { + "type" : "CodePackage", + "id" : "acm014570jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014571jsd" ] + }, + "acm014571jsd" : { + "type" : "CodePackage", + "id" : "acm014571jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014567jsd" ] + }, + "acm014572jsd" : { + "type" : "ControlElement", + "id" : "acm014572jsd", + "name" : "CitationKeyDuplicationChecker" + }, + "acm014573jsd" : { + "type" : "ControlElement", + "id" : "acm014573jsd", + "name" : "check" + }, + "acm014574jsd" : { + "type" : "ClassUnit", + "id" : "acm014574jsd", + "name" : "CitationKeyDuplicationChecker", + "compilationUnitId" : "acm014567jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm014572jsd", "acm014573jsd" ] + }, + "acm014575jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014575jsd", + "name" : "DatabaseChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014581jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014576jsd" : { + "type" : "CodePackage", + "id" : "acm014576jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014577jsd" ] + }, + "acm014577jsd" : { + "type" : "CodePackage", + "id" : "acm014577jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014578jsd" ] + }, + "acm014578jsd" : { + "type" : "CodePackage", + "id" : "acm014578jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014579jsd" ] + }, + "acm014579jsd" : { + "type" : "CodePackage", + "id" : "acm014579jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014575jsd" ] + }, + "acm014580jsd" : { + "type" : "ControlElement", + "id" : "acm014580jsd", + "name" : "check" + }, + "acm014581jsd" : { + "type" : "InterfaceUnit", + "id" : "acm014581jsd", + "name" : "DatabaseChecker", + "compilationUnitId" : "acm014575jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm017988jsd" ], + "content" : [ "acm014580jsd" ] + }, + "acm014582jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014582jsd", + "name" : "DateChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014588jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014583jsd" : { + "type" : "CodePackage", + "id" : "acm014583jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014584jsd" ] + }, + "acm014584jsd" : { + "type" : "CodePackage", + "id" : "acm014584jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014585jsd" ] + }, + "acm014585jsd" : { + "type" : "CodePackage", + "id" : "acm014585jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014586jsd" ] + }, + "acm014586jsd" : { + "type" : "CodePackage", + "id" : "acm014586jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014582jsd" ] + }, + "acm014587jsd" : { + "type" : "ControlElement", + "id" : "acm014587jsd", + "name" : "checkValue" + }, + "acm014588jsd" : { + "type" : "ClassUnit", + "id" : "acm014588jsd", + "name" : "DateChecker", + "compilationUnitId" : "acm014582jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018401jsd" ], + "content" : [ "acm014587jsd" ] + }, + "acm014589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014589jsd", + "name" : "DoiDuplicationChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014595jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014590jsd" : { + "type" : "CodePackage", + "id" : "acm014590jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014591jsd" ] + }, + "acm014591jsd" : { + "type" : "CodePackage", + "id" : "acm014591jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014592jsd" ] + }, + "acm014592jsd" : { + "type" : "CodePackage", + "id" : "acm014592jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014593jsd" ] + }, + "acm014593jsd" : { + "type" : "CodePackage", + "id" : "acm014593jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014589jsd" ] + }, + "acm014594jsd" : { + "type" : "ControlElement", + "id" : "acm014594jsd", + "name" : "check" + }, + "acm014595jsd" : { + "type" : "ClassUnit", + "id" : "acm014595jsd", + "name" : "DoiDuplicationChecker", + "compilationUnitId" : "acm014589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014581jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm017988jsd", "acm018267jsd", "acm018865jsd" ], + "content" : [ "acm014594jsd" ] + }, + "acm014596jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014596jsd", + "name" : "DoiValidityChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014602jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014597jsd" : { + "type" : "CodePackage", + "id" : "acm014597jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014598jsd" ] + }, + "acm014598jsd" : { + "type" : "CodePackage", + "id" : "acm014598jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014599jsd" ] + }, + "acm014599jsd" : { + "type" : "CodePackage", + "id" : "acm014599jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014600jsd" ] + }, + "acm014600jsd" : { + "type" : "CodePackage", + "id" : "acm014600jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014596jsd" ] + }, + "acm014601jsd" : { + "type" : "ControlElement", + "id" : "acm014601jsd", + "name" : "checkValue" + }, + "acm014602jsd" : { + "type" : "ClassUnit", + "id" : "acm014602jsd", + "name" : "DoiValidityChecker", + "compilationUnitId" : "acm014596jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014601jsd" ] + }, + "acm014603jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014603jsd", + "name" : "EditionChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014611jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014604jsd" : { + "type" : "CodePackage", + "id" : "acm014604jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014605jsd" ] + }, + "acm014605jsd" : { + "type" : "CodePackage", + "id" : "acm014605jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014606jsd" ] + }, + "acm014606jsd" : { + "type" : "CodePackage", + "id" : "acm014606jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014607jsd" ] + }, + "acm014607jsd" : { + "type" : "CodePackage", + "id" : "acm014607jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014603jsd" ] + }, + "acm014608jsd" : { + "type" : "ControlElement", + "id" : "acm014608jsd", + "name" : "EditionChecker" + }, + "acm014609jsd" : { + "type" : "ControlElement", + "id" : "acm014609jsd", + "name" : "checkValue" + }, + "acm014610jsd" : { + "type" : "ControlElement", + "id" : "acm014610jsd", + "name" : "isFirstCharDigit" + }, + "acm014611jsd" : { + "type" : "ClassUnit", + "id" : "acm014611jsd", + "name" : "EditionChecker", + "compilationUnitId" : "acm014603jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014608jsd", "acm014609jsd", "acm014610jsd" ] + }, + "acm014612jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014612jsd", + "name" : "EntryChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014618jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014613jsd" : { + "type" : "CodePackage", + "id" : "acm014613jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014614jsd" ] + }, + "acm014614jsd" : { + "type" : "CodePackage", + "id" : "acm014614jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014615jsd" ] + }, + "acm014615jsd" : { + "type" : "CodePackage", + "id" : "acm014615jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014616jsd" ] + }, + "acm014616jsd" : { + "type" : "CodePackage", + "id" : "acm014616jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014612jsd" ] + }, + "acm014617jsd" : { + "type" : "ControlElement", + "id" : "acm014617jsd", + "name" : "check" + }, + "acm014618jsd" : { + "type" : "InterfaceUnit", + "id" : "acm014618jsd", + "name" : "EntryChecker", + "compilationUnitId" : "acm014612jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm014617jsd" ] + }, + "acm014619jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014619jsd", + "name" : "EntryLinkChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014626jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014620jsd" : { + "type" : "CodePackage", + "id" : "acm014620jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014621jsd" ] + }, + "acm014621jsd" : { + "type" : "CodePackage", + "id" : "acm014621jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014622jsd" ] + }, + "acm014622jsd" : { + "type" : "CodePackage", + "id" : "acm014622jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014623jsd" ] + }, + "acm014623jsd" : { + "type" : "CodePackage", + "id" : "acm014623jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014619jsd" ] + }, + "acm014624jsd" : { + "type" : "ControlElement", + "id" : "acm014624jsd", + "name" : "EntryLinkChecker" + }, + "acm014625jsd" : { + "type" : "ControlElement", + "id" : "acm014625jsd", + "name" : "check" + }, + "acm014626jsd" : { + "type" : "ClassUnit", + "id" : "acm014626jsd", + "name" : "EntryLinkChecker", + "compilationUnitId" : "acm014619jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd", "acm018716jsd" ], + "content" : [ "acm014624jsd", "acm014625jsd" ] + }, + "acm014627jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014627jsd", + "name" : "FieldChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014634jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014628jsd" : { + "type" : "CodePackage", + "id" : "acm014628jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014629jsd" ] + }, + "acm014629jsd" : { + "type" : "CodePackage", + "id" : "acm014629jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014630jsd" ] + }, + "acm014630jsd" : { + "type" : "CodePackage", + "id" : "acm014630jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014631jsd" ] + }, + "acm014631jsd" : { + "type" : "CodePackage", + "id" : "acm014631jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014627jsd" ] + }, + "acm014632jsd" : { + "type" : "ControlElement", + "id" : "acm014632jsd", + "name" : "FieldChecker" + }, + "acm014633jsd" : { + "type" : "ControlElement", + "id" : "acm014633jsd", + "name" : "check" + }, + "acm014634jsd" : { + "type" : "ClassUnit", + "id" : "acm014634jsd", + "name" : "FieldChecker", + "compilationUnitId" : "acm014627jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm014798jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014632jsd", "acm014633jsd" ] + }, + "acm014635jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014635jsd", + "name" : "FieldCheckers", + "parentId" : "acm014499jsd", + "content" : [ "acm014644jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014636jsd" : { + "type" : "CodePackage", + "id" : "acm014636jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014637jsd" ] + }, + "acm014637jsd" : { + "type" : "CodePackage", + "id" : "acm014637jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014638jsd" ] + }, + "acm014638jsd" : { + "type" : "CodePackage", + "id" : "acm014638jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014639jsd" ] + }, + "acm014639jsd" : { + "type" : "CodePackage", + "id" : "acm014639jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014635jsd" ] + }, + "acm014640jsd" : { + "type" : "ControlElement", + "id" : "acm014640jsd", + "name" : "FieldCheckers" + }, + "acm014641jsd" : { + "type" : "ControlElement", + "id" : "acm014641jsd", + "name" : "getAllMap" + }, + "acm014642jsd" : { + "type" : "ControlElement", + "id" : "acm014642jsd", + "name" : "getAll" + }, + "acm014643jsd" : { + "type" : "ControlElement", + "id" : "acm014643jsd", + "name" : "getForField" + }, + "acm014644jsd" : { + "type" : "ClassUnit", + "id" : "acm014644jsd", + "name" : "FieldCheckers", + "compilationUnitId" : "acm014635jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm014537jsd", "acm014551jsd", "acm014588jsd", "acm014602jsd", "acm014611jsd", "acm014634jsd", "acm014652jsd", "acm014667jsd", "acm014674jsd", "acm014681jsd", "acm014721jsd", "acm014737jsd", "acm014745jsd", "acm014753jsd", "acm014761jsd", "acm014784jsd", "acm014791jsd", "acm014798jsd", "acm014805jsd", "acm018022jsd", "acm018673jsd", "acm020848jsd" ], + "content" : [ "acm014640jsd", "acm014641jsd", "acm014642jsd", "acm014643jsd" ] + }, + "acm014645jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014645jsd", + "name" : "FileChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014652jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014646jsd" : { + "type" : "CodePackage", + "id" : "acm014646jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014647jsd" ] + }, + "acm014647jsd" : { + "type" : "CodePackage", + "id" : "acm014647jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014648jsd" ] + }, + "acm014648jsd" : { + "type" : "CodePackage", + "id" : "acm014648jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014649jsd" ] + }, + "acm014649jsd" : { + "type" : "CodePackage", + "id" : "acm014649jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014645jsd" ] + }, + "acm014650jsd" : { + "type" : "ControlElement", + "id" : "acm014650jsd", + "name" : "FileChecker" + }, + "acm014651jsd" : { + "type" : "ControlElement", + "id" : "acm014651jsd", + "name" : "checkValue" + }, + "acm014652jsd" : { + "type" : "ClassUnit", + "id" : "acm014652jsd", + "name" : "FileChecker", + "compilationUnitId" : "acm014645jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm014650jsd", "acm014651jsd" ] + }, + "acm014653jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014653jsd", + "name" : "HTMLCharacterChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014659jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014654jsd" : { + "type" : "CodePackage", + "id" : "acm014654jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014655jsd" ] + }, + "acm014655jsd" : { + "type" : "CodePackage", + "id" : "acm014655jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014656jsd" ] + }, + "acm014656jsd" : { + "type" : "CodePackage", + "id" : "acm014656jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014657jsd" ] + }, + "acm014657jsd" : { + "type" : "CodePackage", + "id" : "acm014657jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014653jsd" ] + }, + "acm014658jsd" : { + "type" : "ControlElement", + "id" : "acm014658jsd", + "name" : "check" + }, + "acm014659jsd" : { + "type" : "ClassUnit", + "id" : "acm014659jsd", + "name" : "HTMLCharacterChecker", + "compilationUnitId" : "acm014653jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014658jsd" ] + }, + "acm014660jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014660jsd", + "name" : "HowPublishedChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014667jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014661jsd" : { + "type" : "CodePackage", + "id" : "acm014661jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014662jsd" ] + }, + "acm014662jsd" : { + "type" : "CodePackage", + "id" : "acm014662jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014663jsd" ] + }, + "acm014663jsd" : { + "type" : "CodePackage", + "id" : "acm014663jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014664jsd" ] + }, + "acm014664jsd" : { + "type" : "CodePackage", + "id" : "acm014664jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014660jsd" ] + }, + "acm014665jsd" : { + "type" : "ControlElement", + "id" : "acm014665jsd", + "name" : "HowPublishedChecker" + }, + "acm014666jsd" : { + "type" : "ControlElement", + "id" : "acm014666jsd", + "name" : "checkValue" + }, + "acm014667jsd" : { + "type" : "ClassUnit", + "id" : "acm014667jsd", + "name" : "HowPublishedChecker", + "compilationUnitId" : "acm014660jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014665jsd", "acm014666jsd" ] + }, + "acm014668jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014668jsd", + "name" : "ISBNChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014674jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014669jsd" : { + "type" : "CodePackage", + "id" : "acm014669jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014670jsd" ] + }, + "acm014670jsd" : { + "type" : "CodePackage", + "id" : "acm014670jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014671jsd" ] + }, + "acm014671jsd" : { + "type" : "CodePackage", + "id" : "acm014671jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014672jsd" ] + }, + "acm014672jsd" : { + "type" : "CodePackage", + "id" : "acm014672jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014668jsd" ] + }, + "acm014673jsd" : { + "type" : "ControlElement", + "id" : "acm014673jsd", + "name" : "checkValue" + }, + "acm014674jsd" : { + "type" : "ClassUnit", + "id" : "acm014674jsd", + "name" : "ISBNChecker", + "compilationUnitId" : "acm014668jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018894jsd" ], + "content" : [ "acm014673jsd" ] + }, + "acm014675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014675jsd", + "name" : "ISSNChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014681jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014676jsd" : { + "type" : "CodePackage", + "id" : "acm014676jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014677jsd" ] + }, + "acm014677jsd" : { + "type" : "CodePackage", + "id" : "acm014677jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014678jsd" ] + }, + "acm014678jsd" : { + "type" : "CodePackage", + "id" : "acm014678jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014679jsd" ] + }, + "acm014679jsd" : { + "type" : "CodePackage", + "id" : "acm014679jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014675jsd" ] + }, + "acm014680jsd" : { + "type" : "ControlElement", + "id" : "acm014680jsd", + "name" : "checkValue" + }, + "acm014681jsd" : { + "type" : "ClassUnit", + "id" : "acm014681jsd", + "name" : "ISSNChecker", + "compilationUnitId" : "acm014675jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018906jsd" ], + "content" : [ "acm014680jsd" ] + }, + "acm014682jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014682jsd", + "name" : "IntegrityCheck", + "parentId" : "acm014499jsd", + "content" : [ "acm014691jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014683jsd" : { + "type" : "CodePackage", + "id" : "acm014683jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014684jsd" ] + }, + "acm014684jsd" : { + "type" : "CodePackage", + "id" : "acm014684jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014685jsd" ] + }, + "acm014685jsd" : { + "type" : "CodePackage", + "id" : "acm014685jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014686jsd" ] + }, + "acm014686jsd" : { + "type" : "CodePackage", + "id" : "acm014686jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014682jsd" ] + }, + "acm014687jsd" : { + "type" : "ControlElement", + "id" : "acm014687jsd", + "name" : "IntegrityCheck" + }, + "acm014688jsd" : { + "type" : "ControlElement", + "id" : "acm014688jsd", + "name" : "check" + }, + "acm014689jsd" : { + "type" : "ControlElement", + "id" : "acm014689jsd", + "name" : "checkEntry" + }, + "acm014690jsd" : { + "type" : "ControlElement", + "id" : "acm014690jsd", + "name" : "checkDatabase" + }, + "acm014691jsd" : { + "type" : "ClassUnit", + "id" : "acm014691jsd", + "name" : "IntegrityCheck", + "compilationUnitId" : "acm014682jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm010993jsd", "acm014501jsd", "acm014516jsd", "acm014523jsd", "acm014530jsd", "acm014558jsd", "acm014566jsd", "acm014574jsd", "acm014595jsd", "acm014618jsd", "acm014626jsd", "acm014634jsd", "acm014644jsd", "acm014659jsd", "acm014705jsd", "acm014713jsd", "acm014729jsd", "acm014768jsd", "acm014777jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm020848jsd" ], + "content" : [ "acm014687jsd", "acm014688jsd", "acm014689jsd", "acm014690jsd" ] + }, + "acm014692jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014692jsd", + "name" : "IntegrityMessage", + "parentId" : "acm014499jsd", + "content" : [ "acm014705jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014693jsd" : { + "type" : "CodePackage", + "id" : "acm014693jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014694jsd" ] + }, + "acm014694jsd" : { + "type" : "CodePackage", + "id" : "acm014694jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014695jsd" ] + }, + "acm014695jsd" : { + "type" : "CodePackage", + "id" : "acm014695jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014696jsd" ] + }, + "acm014696jsd" : { + "type" : "CodePackage", + "id" : "acm014696jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014692jsd" ] + }, + "acm014697jsd" : { + "type" : "ControlElement", + "id" : "acm014697jsd", + "name" : "IntegrityMessage" + }, + "acm014698jsd" : { + "type" : "ControlElement", + "id" : "acm014698jsd", + "name" : "toString" + }, + "acm014699jsd" : { + "type" : "ControlElement", + "id" : "acm014699jsd", + "name" : "getMessage" + }, + "acm014700jsd" : { + "type" : "ControlElement", + "id" : "acm014700jsd", + "name" : "getEntry" + }, + "acm014701jsd" : { + "type" : "ControlElement", + "id" : "acm014701jsd", + "name" : "getField" + }, + "acm014702jsd" : { + "type" : "ControlElement", + "id" : "acm014702jsd", + "name" : "clone" + }, + "acm014703jsd" : { + "type" : "ControlElement", + "id" : "acm014703jsd", + "name" : "equals" + }, + "acm014704jsd" : { + "type" : "ControlElement", + "id" : "acm014704jsd", + "name" : "hashCode" + }, + "acm014705jsd" : { + "type" : "ClassUnit", + "id" : "acm014705jsd", + "name" : "IntegrityMessage", + "compilationUnitId" : "acm014692jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014697jsd", "acm014698jsd", "acm014699jsd", "acm014700jsd", "acm014701jsd", "acm014702jsd", "acm014703jsd", "acm014704jsd" ] + }, + "acm014706jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014706jsd", + "name" : "JournalInAbbreviationListChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014713jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014707jsd" : { + "type" : "CodePackage", + "id" : "acm014707jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014708jsd" ] + }, + "acm014708jsd" : { + "type" : "CodePackage", + "id" : "acm014708jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014709jsd" ] + }, + "acm014709jsd" : { + "type" : "CodePackage", + "id" : "acm014709jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014710jsd" ] + }, + "acm014710jsd" : { + "type" : "CodePackage", + "id" : "acm014710jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014706jsd" ] + }, + "acm014711jsd" : { + "type" : "ControlElement", + "id" : "acm014711jsd", + "name" : "JournalInAbbreviationListChecker" + }, + "acm014712jsd" : { + "type" : "ControlElement", + "id" : "acm014712jsd", + "name" : "check" + }, + "acm014713jsd" : { + "type" : "ClassUnit", + "id" : "acm014713jsd", + "name" : "JournalInAbbreviationListChecker", + "compilationUnitId" : "acm014706jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014711jsd", "acm014712jsd" ] + }, + "acm014714jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014714jsd", + "name" : "MonthChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014721jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014715jsd" : { + "type" : "CodePackage", + "id" : "acm014715jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014716jsd" ] + }, + "acm014716jsd" : { + "type" : "CodePackage", + "id" : "acm014716jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014717jsd" ] + }, + "acm014717jsd" : { + "type" : "CodePackage", + "id" : "acm014717jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014718jsd" ] + }, + "acm014718jsd" : { + "type" : "CodePackage", + "id" : "acm014718jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014714jsd" ] + }, + "acm014719jsd" : { + "type" : "ControlElement", + "id" : "acm014719jsd", + "name" : "MonthChecker" + }, + "acm014720jsd" : { + "type" : "ControlElement", + "id" : "acm014720jsd", + "name" : "checkValue" + }, + "acm014721jsd" : { + "type" : "ClassUnit", + "id" : "acm014721jsd", + "name" : "MonthChecker", + "compilationUnitId" : "acm014714jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014719jsd", "acm014720jsd" ] + }, + "acm014722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014722jsd", + "name" : "NoBibtexFieldChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014729jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014723jsd" : { + "type" : "CodePackage", + "id" : "acm014723jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014724jsd" ] + }, + "acm014724jsd" : { + "type" : "CodePackage", + "id" : "acm014724jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014725jsd" ] + }, + "acm014725jsd" : { + "type" : "CodePackage", + "id" : "acm014725jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014726jsd" ] + }, + "acm014726jsd" : { + "type" : "CodePackage", + "id" : "acm014726jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014722jsd" ] + }, + "acm014727jsd" : { + "type" : "ControlElement", + "id" : "acm014727jsd", + "name" : "getAllBiblatexOnlyFields" + }, + "acm014728jsd" : { + "type" : "ControlElement", + "id" : "acm014728jsd", + "name" : "check" + }, + "acm014729jsd" : { + "type" : "ClassUnit", + "id" : "acm014729jsd", + "name" : "NoBibtexFieldChecker", + "compilationUnitId" : "acm014722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014727jsd", "acm014728jsd" ] + }, + "acm014730jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014730jsd", + "name" : "NoteChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014737jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014731jsd" : { + "type" : "CodePackage", + "id" : "acm014731jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014732jsd" ] + }, + "acm014732jsd" : { + "type" : "CodePackage", + "id" : "acm014732jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014733jsd" ] + }, + "acm014733jsd" : { + "type" : "CodePackage", + "id" : "acm014733jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014734jsd" ] + }, + "acm014734jsd" : { + "type" : "CodePackage", + "id" : "acm014734jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014730jsd" ] + }, + "acm014735jsd" : { + "type" : "ControlElement", + "id" : "acm014735jsd", + "name" : "NoteChecker" + }, + "acm014736jsd" : { + "type" : "ControlElement", + "id" : "acm014736jsd", + "name" : "checkValue" + }, + "acm014737jsd" : { + "type" : "ClassUnit", + "id" : "acm014737jsd", + "name" : "NoteChecker", + "compilationUnitId" : "acm014730jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014735jsd", "acm014736jsd" ] + }, + "acm014738jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014738jsd", + "name" : "PagesChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014745jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014739jsd" : { + "type" : "CodePackage", + "id" : "acm014739jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014740jsd" ] + }, + "acm014740jsd" : { + "type" : "CodePackage", + "id" : "acm014740jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014741jsd" ] + }, + "acm014741jsd" : { + "type" : "CodePackage", + "id" : "acm014741jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014742jsd" ] + }, + "acm014742jsd" : { + "type" : "CodePackage", + "id" : "acm014742jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014738jsd" ] + }, + "acm014743jsd" : { + "type" : "ControlElement", + "id" : "acm014743jsd", + "name" : "PagesChecker" + }, + "acm014744jsd" : { + "type" : "ControlElement", + "id" : "acm014744jsd", + "name" : "checkValue" + }, + "acm014745jsd" : { + "type" : "ClassUnit", + "id" : "acm014745jsd", + "name" : "PagesChecker", + "compilationUnitId" : "acm014738jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014743jsd", "acm014744jsd" ] + }, + "acm014746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014746jsd", + "name" : "PersonNamesChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014753jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014747jsd" : { + "type" : "CodePackage", + "id" : "acm014747jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014748jsd" ] + }, + "acm014748jsd" : { + "type" : "CodePackage", + "id" : "acm014748jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014749jsd" ] + }, + "acm014749jsd" : { + "type" : "CodePackage", + "id" : "acm014749jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014750jsd" ] + }, + "acm014750jsd" : { + "type" : "CodePackage", + "id" : "acm014750jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014746jsd" ] + }, + "acm014751jsd" : { + "type" : "ControlElement", + "id" : "acm014751jsd", + "name" : "PersonNamesChecker" + }, + "acm014752jsd" : { + "type" : "ControlElement", + "id" : "acm014752jsd", + "name" : "checkValue" + }, + "acm014753jsd" : { + "type" : "ClassUnit", + "id" : "acm014753jsd", + "name" : "PersonNamesChecker", + "compilationUnitId" : "acm014746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm015575jsd", "acm018022jsd", "acm018032jsd", "acm018175jsd" ], + "content" : [ "acm014751jsd", "acm014752jsd" ] + }, + "acm014754jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014754jsd", + "name" : "TitleChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014761jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014755jsd" : { + "type" : "CodePackage", + "id" : "acm014755jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014756jsd" ] + }, + "acm014756jsd" : { + "type" : "CodePackage", + "id" : "acm014756jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014757jsd" ] + }, + "acm014757jsd" : { + "type" : "CodePackage", + "id" : "acm014757jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014758jsd" ] + }, + "acm014758jsd" : { + "type" : "CodePackage", + "id" : "acm014758jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014754jsd" ] + }, + "acm014759jsd" : { + "type" : "ControlElement", + "id" : "acm014759jsd", + "name" : "TitleChecker" + }, + "acm014760jsd" : { + "type" : "ControlElement", + "id" : "acm014760jsd", + "name" : "checkValue" + }, + "acm014761jsd" : { + "type" : "ClassUnit", + "id" : "acm014761jsd", + "name" : "TitleChecker", + "compilationUnitId" : "acm014754jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm014759jsd", "acm014760jsd" ] + }, + "acm014762jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014762jsd", + "name" : "TypeChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014768jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014763jsd" : { + "type" : "CodePackage", + "id" : "acm014763jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014764jsd" ] + }, + "acm014764jsd" : { + "type" : "CodePackage", + "id" : "acm014764jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014765jsd" ] + }, + "acm014765jsd" : { + "type" : "CodePackage", + "id" : "acm014765jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014766jsd" ] + }, + "acm014766jsd" : { + "type" : "CodePackage", + "id" : "acm014766jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014762jsd" ] + }, + "acm014767jsd" : { + "type" : "ControlElement", + "id" : "acm014767jsd", + "name" : "check" + }, + "acm014768jsd" : { + "type" : "ClassUnit", + "id" : "acm014768jsd", + "name" : "TypeChecker", + "compilationUnitId" : "acm014762jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm014767jsd" ] + }, + "acm014769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014769jsd", + "name" : "UTF8Checker", + "parentId" : "acm014499jsd", + "content" : [ "acm014777jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014770jsd" : { + "type" : "CodePackage", + "id" : "acm014770jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014771jsd" ] + }, + "acm014771jsd" : { + "type" : "CodePackage", + "id" : "acm014771jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014772jsd" ] + }, + "acm014772jsd" : { + "type" : "CodePackage", + "id" : "acm014772jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014773jsd" ] + }, + "acm014773jsd" : { + "type" : "CodePackage", + "id" : "acm014773jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014769jsd" ] + }, + "acm014774jsd" : { + "type" : "ControlElement", + "id" : "acm014774jsd", + "name" : "UTF8Checker" + }, + "acm014775jsd" : { + "type" : "ControlElement", + "id" : "acm014775jsd", + "name" : "check" + }, + "acm014776jsd" : { + "type" : "ControlElement", + "id" : "acm014776jsd", + "name" : "UTF8EncodingChecker" + }, + "acm014777jsd" : { + "type" : "ClassUnit", + "id" : "acm014777jsd", + "name" : "UTF8Checker", + "compilationUnitId" : "acm014769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014618jsd" ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm014774jsd", "acm014775jsd", "acm014776jsd" ] + }, + "acm014778jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014778jsd", + "name" : "UrlChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014784jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014779jsd" : { + "type" : "CodePackage", + "id" : "acm014779jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014780jsd" ] + }, + "acm014780jsd" : { + "type" : "CodePackage", + "id" : "acm014780jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014781jsd" ] + }, + "acm014781jsd" : { + "type" : "CodePackage", + "id" : "acm014781jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014782jsd" ] + }, + "acm014782jsd" : { + "type" : "CodePackage", + "id" : "acm014782jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014778jsd" ] + }, + "acm014783jsd" : { + "type" : "ControlElement", + "id" : "acm014783jsd", + "name" : "checkValue" + }, + "acm014784jsd" : { + "type" : "ClassUnit", + "id" : "acm014784jsd", + "name" : "UrlChecker", + "compilationUnitId" : "acm014778jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014783jsd" ] + }, + "acm014785jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014785jsd", + "name" : "ValidCitationKeyChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014791jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014786jsd" : { + "type" : "CodePackage", + "id" : "acm014786jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014787jsd" ] + }, + "acm014787jsd" : { + "type" : "CodePackage", + "id" : "acm014787jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014788jsd" ] + }, + "acm014788jsd" : { + "type" : "CodePackage", + "id" : "acm014788jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014789jsd" ] + }, + "acm014789jsd" : { + "type" : "CodePackage", + "id" : "acm014789jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014785jsd" ] + }, + "acm014790jsd" : { + "type" : "ControlElement", + "id" : "acm014790jsd", + "name" : "checkValue" + }, + "acm014791jsd" : { + "type" : "ClassUnit", + "id" : "acm014791jsd", + "name" : "ValidCitationKeyChecker", + "compilationUnitId" : "acm014785jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014790jsd" ] + }, + "acm014792jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014792jsd", + "name" : "ValueChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014798jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014793jsd" : { + "type" : "CodePackage", + "id" : "acm014793jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014794jsd" ] + }, + "acm014794jsd" : { + "type" : "CodePackage", + "id" : "acm014794jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014795jsd" ] + }, + "acm014795jsd" : { + "type" : "CodePackage", + "id" : "acm014795jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014796jsd" ] + }, + "acm014796jsd" : { + "type" : "CodePackage", + "id" : "acm014796jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014792jsd" ] + }, + "acm014797jsd" : { + "type" : "ControlElement", + "id" : "acm014797jsd", + "name" : "checkValue" + }, + "acm014798jsd" : { + "type" : "InterfaceUnit", + "id" : "acm014798jsd", + "name" : "ValueChecker", + "compilationUnitId" : "acm014792jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014797jsd" ] + }, + "acm014799jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014799jsd", + "name" : "YearChecker", + "parentId" : "acm014499jsd", + "content" : [ "acm014805jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014800jsd" : { + "type" : "CodePackage", + "id" : "acm014800jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014801jsd" ] + }, + "acm014801jsd" : { + "type" : "CodePackage", + "id" : "acm014801jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014802jsd" ] + }, + "acm014802jsd" : { + "type" : "CodePackage", + "id" : "acm014802jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014803jsd" ] + }, + "acm014803jsd" : { + "type" : "CodePackage", + "id" : "acm014803jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm014799jsd" ] + }, + "acm014804jsd" : { + "type" : "ControlElement", + "id" : "acm014804jsd", + "name" : "checkValue" + }, + "acm014805jsd" : { + "type" : "ClassUnit", + "id" : "acm014805jsd", + "name" : "YearChecker", + "compilationUnitId" : "acm014799jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm014798jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014804jsd" ] + }, + "acm014806jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014806jsd", + "name" : "Abbreviation", + "parentId" : "acm001341jsd", + "content" : [ "acm014824jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014807jsd" : { + "type" : "CodePackage", + "id" : "acm014807jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014808jsd" ] + }, + "acm014808jsd" : { + "type" : "CodePackage", + "id" : "acm014808jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014809jsd" ] + }, + "acm014809jsd" : { + "type" : "CodePackage", + "id" : "acm014809jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014810jsd" ] + }, + "acm014810jsd" : { + "type" : "CodePackage", + "id" : "acm014810jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014806jsd" ] + }, + "acm014811jsd" : { + "type" : "ControlElement", + "id" : "acm014811jsd", + "name" : "Abbreviation" + }, + "acm014812jsd" : { + "type" : "ControlElement", + "id" : "acm014812jsd", + "name" : "Abbreviation" + }, + "acm014813jsd" : { + "type" : "ControlElement", + "id" : "acm014813jsd", + "name" : "Abbreviation" + }, + "acm014814jsd" : { + "type" : "ControlElement", + "id" : "acm014814jsd", + "name" : "getName" + }, + "acm014815jsd" : { + "type" : "ControlElement", + "id" : "acm014815jsd", + "name" : "getAbbreviation" + }, + "acm014816jsd" : { + "type" : "ControlElement", + "id" : "acm014816jsd", + "name" : "getShortestUniqueAbbreviation" + }, + "acm014817jsd" : { + "type" : "ControlElement", + "id" : "acm014817jsd", + "name" : "isDefaultShortestUniqueAbbreviation" + }, + "acm014818jsd" : { + "type" : "ControlElement", + "id" : "acm014818jsd", + "name" : "getDotlessAbbreviation" + }, + "acm014819jsd" : { + "type" : "ControlElement", + "id" : "acm014819jsd", + "name" : "compareTo" + }, + "acm014820jsd" : { + "type" : "ControlElement", + "id" : "acm014820jsd", + "name" : "getNext" + }, + "acm014821jsd" : { + "type" : "ControlElement", + "id" : "acm014821jsd", + "name" : "toString" + }, + "acm014822jsd" : { + "type" : "ControlElement", + "id" : "acm014822jsd", + "name" : "equals" + }, + "acm014823jsd" : { + "type" : "ControlElement", + "id" : "acm014823jsd", + "name" : "hashCode" + }, + "acm014824jsd" : { + "type" : "ClassUnit", + "id" : "acm014824jsd", + "name" : "Abbreviation", + "compilationUnitId" : "acm014806jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014811jsd", "acm014812jsd", "acm014813jsd", "acm014814jsd", "acm014815jsd", "acm014816jsd", "acm014817jsd", "acm014818jsd", "acm014819jsd", "acm014820jsd", "acm014821jsd", "acm014822jsd", "acm014823jsd" ] + }, + "acm014825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014825jsd", + "name" : "AbbreviationFormat", + "parentId" : "acm001341jsd", + "content" : [ "acm014832jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014826jsd" : { + "type" : "CodePackage", + "id" : "acm014826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014827jsd" ] + }, + "acm014827jsd" : { + "type" : "CodePackage", + "id" : "acm014827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014828jsd" ] + }, + "acm014828jsd" : { + "type" : "CodePackage", + "id" : "acm014828jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014829jsd" ] + }, + "acm014829jsd" : { + "type" : "CodePackage", + "id" : "acm014829jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014825jsd" ] + }, + "acm014830jsd" : { + "type" : "ControlElement", + "id" : "acm014830jsd", + "name" : "AbbreviationFormat" + }, + "acm014831jsd" : { + "type" : "ControlElement", + "id" : "acm014831jsd", + "name" : "getCSVFormat" + }, + "acm014832jsd" : { + "type" : "ClassUnit", + "id" : "acm014832jsd", + "name" : "AbbreviationFormat", + "compilationUnitId" : "acm014825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014830jsd", "acm014831jsd" ] + }, + "acm014833jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014833jsd", + "name" : "AbbreviationParser", + "parentId" : "acm001341jsd", + "content" : [ "acm014843jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014834jsd" : { + "type" : "CodePackage", + "id" : "acm014834jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014835jsd" ] + }, + "acm014835jsd" : { + "type" : "CodePackage", + "id" : "acm014835jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014836jsd" ] + }, + "acm014836jsd" : { + "type" : "CodePackage", + "id" : "acm014836jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014837jsd" ] + }, + "acm014837jsd" : { + "type" : "CodePackage", + "id" : "acm014837jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014833jsd" ] + }, + "acm014838jsd" : { + "type" : "ControlElement", + "id" : "acm014838jsd", + "name" : "readJournalListFromResource" + }, + "acm014839jsd" : { + "type" : "ControlElement", + "id" : "acm014839jsd", + "name" : "readJournalListFromFile" + }, + "acm014840jsd" : { + "type" : "ControlElement", + "id" : "acm014840jsd", + "name" : "readJournalListFromFile" + }, + "acm014841jsd" : { + "type" : "ControlElement", + "id" : "acm014841jsd", + "name" : "readJournalList" + }, + "acm014842jsd" : { + "type" : "ControlElement", + "id" : "acm014842jsd", + "name" : "getAbbreviations" + }, + "acm014843jsd" : { + "type" : "ClassUnit", + "id" : "acm014843jsd", + "name" : "AbbreviationParser", + "compilationUnitId" : "acm014833jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014838jsd", "acm014839jsd", "acm014840jsd", "acm014841jsd", "acm014842jsd" ] + }, + "acm014844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014844jsd", + "name" : "AbbreviationWriter", + "parentId" : "acm001341jsd", + "content" : [ "acm014851jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014845jsd" : { + "type" : "CodePackage", + "id" : "acm014845jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014846jsd" ] + }, + "acm014846jsd" : { + "type" : "CodePackage", + "id" : "acm014846jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014847jsd" ] + }, + "acm014847jsd" : { + "type" : "CodePackage", + "id" : "acm014847jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014848jsd" ] + }, + "acm014848jsd" : { + "type" : "CodePackage", + "id" : "acm014848jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014844jsd" ] + }, + "acm014849jsd" : { + "type" : "ControlElement", + "id" : "acm014849jsd", + "name" : "AbbreviationWriter" + }, + "acm014850jsd" : { + "type" : "ControlElement", + "id" : "acm014850jsd", + "name" : "writeOrCreate" + }, + "acm014851jsd" : { + "type" : "ClassUnit", + "id" : "acm014851jsd", + "name" : "AbbreviationWriter", + "compilationUnitId" : "acm014844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014849jsd", "acm014850jsd" ] + }, + "acm014852jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014852jsd", + "name" : "JournalAbbreviationLoader", + "parentId" : "acm001341jsd", + "content" : [ "acm014860jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014853jsd" : { + "type" : "CodePackage", + "id" : "acm014853jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014854jsd" ] + }, + "acm014854jsd" : { + "type" : "CodePackage", + "id" : "acm014854jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014855jsd" ] + }, + "acm014855jsd" : { + "type" : "CodePackage", + "id" : "acm014855jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014856jsd" ] + }, + "acm014856jsd" : { + "type" : "CodePackage", + "id" : "acm014856jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014852jsd" ] + }, + "acm014857jsd" : { + "type" : "ControlElement", + "id" : "acm014857jsd", + "name" : "readJournalListFromFile" + }, + "acm014858jsd" : { + "type" : "ControlElement", + "id" : "acm014858jsd", + "name" : "loadRepository" + }, + "acm014859jsd" : { + "type" : "ControlElement", + "id" : "acm014859jsd", + "name" : "loadBuiltInRepository" + }, + "acm014860jsd" : { + "type" : "ClassUnit", + "id" : "acm014860jsd", + "name" : "JournalAbbreviationLoader", + "compilationUnitId" : "acm014852jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014857jsd", "acm014858jsd", "acm014859jsd" ] + }, + "acm014861jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014861jsd", + "name" : "JournalAbbreviationPreferences", + "parentId" : "acm001341jsd", + "content" : [ "acm014872jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014862jsd" : { + "type" : "CodePackage", + "id" : "acm014862jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014863jsd" ] + }, + "acm014863jsd" : { + "type" : "CodePackage", + "id" : "acm014863jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014864jsd" ] + }, + "acm014864jsd" : { + "type" : "CodePackage", + "id" : "acm014864jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014865jsd" ] + }, + "acm014865jsd" : { + "type" : "CodePackage", + "id" : "acm014865jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014861jsd" ] + }, + "acm014866jsd" : { + "type" : "ControlElement", + "id" : "acm014866jsd", + "name" : "JournalAbbreviationPreferences" + }, + "acm014867jsd" : { + "type" : "ControlElement", + "id" : "acm014867jsd", + "name" : "getExternalJournalLists" + }, + "acm014868jsd" : { + "type" : "ControlElement", + "id" : "acm014868jsd", + "name" : "setExternalJournalLists" + }, + "acm014869jsd" : { + "type" : "ControlElement", + "id" : "acm014869jsd", + "name" : "shouldUseFJournalField" + }, + "acm014870jsd" : { + "type" : "ControlElement", + "id" : "acm014870jsd", + "name" : "useFJournalFieldProperty" + }, + "acm014871jsd" : { + "type" : "ControlElement", + "id" : "acm014871jsd", + "name" : "setUseFJournalField" + }, + "acm014872jsd" : { + "type" : "ClassUnit", + "id" : "acm014872jsd", + "name" : "JournalAbbreviationPreferences", + "compilationUnitId" : "acm014861jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014866jsd", "acm014867jsd", "acm014868jsd", "acm014869jsd", "acm014870jsd", "acm014871jsd" ] + }, + "acm014873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014873jsd", + "name" : "JournalAbbreviationRepository", + "parentId" : "acm001341jsd", + "content" : [ "acm014893jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014874jsd" : { + "type" : "CodePackage", + "id" : "acm014874jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014875jsd" ] + }, + "acm014875jsd" : { + "type" : "CodePackage", + "id" : "acm014875jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014876jsd" ] + }, + "acm014876jsd" : { + "type" : "CodePackage", + "id" : "acm014876jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014877jsd" ] + }, + "acm014877jsd" : { + "type" : "CodePackage", + "id" : "acm014877jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm014873jsd" ] + }, + "acm014878jsd" : { + "type" : "ControlElement", + "id" : "acm014878jsd", + "name" : "JournalAbbreviationRepository" + }, + "acm014879jsd" : { + "type" : "ControlElement", + "id" : "acm014879jsd", + "name" : "isMatched" + }, + "acm014880jsd" : { + "type" : "ControlElement", + "id" : "acm014880jsd", + "name" : "isMatchedAbbreviated" + }, + "acm014881jsd" : { + "type" : "ControlElement", + "id" : "acm014881jsd", + "name" : "isKnownName" + }, + "acm014882jsd" : { + "type" : "ControlElement", + "id" : "acm014882jsd", + "name" : "isAbbreviatedName" + }, + "acm014883jsd" : { + "type" : "ControlElement", + "id" : "acm014883jsd", + "name" : "get" + }, + "acm014884jsd" : { + "type" : "ControlElement", + "id" : "acm014884jsd", + "name" : "addCustomAbbreviation" + }, + "acm014885jsd" : { + "type" : "ControlElement", + "id" : "acm014885jsd", + "name" : "getCustomAbbreviations" + }, + "acm014886jsd" : { + "type" : "ControlElement", + "id" : "acm014886jsd", + "name" : "addCustomAbbreviations" + }, + "acm014887jsd" : { + "type" : "ControlElement", + "id" : "acm014887jsd", + "name" : "getNextAbbreviation" + }, + "acm014888jsd" : { + "type" : "ControlElement", + "id" : "acm014888jsd", + "name" : "getDefaultAbbreviation" + }, + "acm014889jsd" : { + "type" : "ControlElement", + "id" : "acm014889jsd", + "name" : "getDotless" + }, + "acm014890jsd" : { + "type" : "ControlElement", + "id" : "acm014890jsd", + "name" : "getShortestUniqueAbbreviation" + }, + "acm014891jsd" : { + "type" : "ControlElement", + "id" : "acm014891jsd", + "name" : "getFullNames" + }, + "acm014892jsd" : { + "type" : "ControlElement", + "id" : "acm014892jsd", + "name" : "getAllLoaded" + }, + "acm014893jsd" : { + "type" : "ClassUnit", + "id" : "acm014893jsd", + "name" : "JournalAbbreviationRepository", + "compilationUnitId" : "acm014873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014878jsd", "acm014879jsd", "acm014880jsd", "acm014881jsd", "acm014882jsd", "acm014883jsd", "acm014884jsd", "acm014885jsd", "acm014886jsd", "acm014887jsd", "acm014888jsd", "acm014889jsd", "acm014890jsd", "acm014891jsd", "acm014892jsd" ] + }, + "acm014894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014894jsd", + "name" : "Encodings", + "parentId" : "acm014898jsd", + "content" : [ "acm014901jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014895jsd" : { + "type" : "CodePackage", + "id" : "acm014895jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014896jsd" ] + }, + "acm014896jsd" : { + "type" : "CodePackage", + "id" : "acm014896jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014897jsd" ] + }, + "acm014897jsd" : { + "type" : "CodePackage", + "id" : "acm014897jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014898jsd" ] + }, + "acm014898jsd" : { + "type" : "CodePackage", + "id" : "acm014898jsd", + "name" : "l10n", + "parentId" : "acm001340jsd", + "content" : [ "acm014894jsd", "acm014902jsd", "acm014912jsd", "acm014936jsd", "acm014948jsd", "acm014956jsd", "acm026371jsd", "acm026381jsd", "acm026390jsd", "acm026404jsd", "acm026413jsd", "acm026419jsd", "acm026443jsd", "acm026458jsd", "acm026467jsd", "acm026475jsd", "acm026498jsd" ] + }, + "acm014899jsd" : { + "type" : "ControlElement", + "id" : "acm014899jsd", + "name" : "Encodings" + }, + "acm014900jsd" : { + "type" : "ControlElement", + "id" : "acm014900jsd", + "name" : "getCharsets" + }, + "acm014901jsd" : { + "type" : "ClassUnit", + "id" : "acm014901jsd", + "name" : "Encodings", + "compilationUnitId" : "acm014894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014899jsd", "acm014900jsd" ] + }, + "acm014902jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014902jsd", + "name" : "Language", + "parentId" : "acm014898jsd", + "content" : [ "acm014911jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014903jsd" : { + "type" : "CodePackage", + "id" : "acm014903jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014904jsd" ] + }, + "acm014904jsd" : { + "type" : "CodePackage", + "id" : "acm014904jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014905jsd" ] + }, + "acm014905jsd" : { + "type" : "CodePackage", + "id" : "acm014905jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014906jsd" ] + }, + "acm014906jsd" : { + "type" : "CodePackage", + "id" : "acm014906jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm014902jsd" ] + }, + "acm014907jsd" : { + "type" : "ControlElement", + "id" : "acm014907jsd", + "name" : "Language" + }, + "acm014908jsd" : { + "type" : "ControlElement", + "id" : "acm014908jsd", + "name" : "convertToSupportedLocale" + }, + "acm014909jsd" : { + "type" : "ControlElement", + "id" : "acm014909jsd", + "name" : "getDisplayName" + }, + "acm014910jsd" : { + "type" : "ControlElement", + "id" : "acm014910jsd", + "name" : "getId" + }, + "acm014911jsd" : { + "type" : "ClassUnit", + "id" : "acm014911jsd", + "name" : "Language", + "compilationUnitId" : "acm014902jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014911jsd" ], + "content" : [ "acm014907jsd", "acm014908jsd", "acm014909jsd", "acm014910jsd" ] + }, + "acm014912jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014912jsd", + "name" : "Localization", + "parentId" : "acm014898jsd", + "content" : [ "acm014929jsd", "acm014935jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014913jsd" : { + "type" : "CodePackage", + "id" : "acm014913jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014914jsd" ] + }, + "acm014914jsd" : { + "type" : "CodePackage", + "id" : "acm014914jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014915jsd" ] + }, + "acm014915jsd" : { + "type" : "CodePackage", + "id" : "acm014915jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014916jsd" ] + }, + "acm014916jsd" : { + "type" : "CodePackage", + "id" : "acm014916jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm014912jsd" ] + }, + "acm014917jsd" : { + "type" : "ControlElement", + "id" : "acm014917jsd", + "name" : "Localization" + }, + "acm014918jsd" : { + "type" : "ControlElement", + "id" : "acm014918jsd", + "name" : "lang" + }, + "acm014919jsd" : { + "type" : "ControlElement", + "id" : "acm014919jsd", + "name" : "setLanguage" + }, + "acm014920jsd" : { + "type" : "ControlElement", + "id" : "acm014920jsd", + "name" : "getMessages" + }, + "acm014921jsd" : { + "type" : "ControlElement", + "id" : "acm014921jsd", + "name" : "createResourceBundles" + }, + "acm014922jsd" : { + "type" : "ControlElement", + "id" : "acm014922jsd", + "name" : "createLookupMap" + }, + "acm014923jsd" : { + "type" : "ControlElement", + "id" : "acm014923jsd", + "name" : "lookup" + }, + "acm014924jsd" : { + "type" : "ControlElement", + "id" : "acm014924jsd", + "name" : "LocalizationBundle" + }, + "acm014925jsd" : { + "type" : "ControlElement", + "id" : "acm014925jsd", + "name" : "handleGetObject" + }, + "acm014926jsd" : { + "type" : "ControlElement", + "id" : "acm014926jsd", + "name" : "getKeys" + }, + "acm014927jsd" : { + "type" : "ControlElement", + "id" : "acm014927jsd", + "name" : "handleKeySet" + }, + "acm014928jsd" : { + "type" : "ControlElement", + "id" : "acm014928jsd", + "name" : "containsKey" + }, + "acm014929jsd" : { + "type" : "ClassUnit", + "id" : "acm014929jsd", + "name" : "Localization", + "compilationUnitId" : "acm014912jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014911jsd", "acm014929jsd", "acm014935jsd", "acm014955jsd" ], + "content" : [ "acm014917jsd", "acm014918jsd", "acm014919jsd", "acm014920jsd", "acm014921jsd", "acm014922jsd", "acm014923jsd", "acm014924jsd", "acm014925jsd", "acm014926jsd", "acm014927jsd", "acm014928jsd" ] + }, + "acm014930jsd" : { + "type" : "ControlElement", + "id" : "acm014930jsd", + "name" : "LocalizationBundle" + }, + "acm014931jsd" : { + "type" : "ControlElement", + "id" : "acm014931jsd", + "name" : "handleGetObject" + }, + "acm014932jsd" : { + "type" : "ControlElement", + "id" : "acm014932jsd", + "name" : "getKeys" + }, + "acm014933jsd" : { + "type" : "ControlElement", + "id" : "acm014933jsd", + "name" : "handleKeySet" + }, + "acm014934jsd" : { + "type" : "ControlElement", + "id" : "acm014934jsd", + "name" : "containsKey" + }, + "acm014935jsd" : { + "type" : "ClassUnit", + "id" : "acm014935jsd", + "name" : "LocalizationBundle", + "compilationUnitId" : "acm014912jsd", + "parentDatatypeId" : "acm014929jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014930jsd", "acm014931jsd", "acm014932jsd", "acm014933jsd", "acm014934jsd" ] + }, + "acm014936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014936jsd", + "name" : "LocalizationKey", + "parentId" : "acm014898jsd", + "content" : [ "acm014947jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014937jsd" : { + "type" : "CodePackage", + "id" : "acm014937jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014938jsd" ] + }, + "acm014938jsd" : { + "type" : "CodePackage", + "id" : "acm014938jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014939jsd" ] + }, + "acm014939jsd" : { + "type" : "CodePackage", + "id" : "acm014939jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014940jsd" ] + }, + "acm014940jsd" : { + "type" : "CodePackage", + "id" : "acm014940jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm014936jsd" ] + }, + "acm014941jsd" : { + "type" : "ControlElement", + "id" : "acm014941jsd", + "name" : "LocalizationKey" + }, + "acm014942jsd" : { + "type" : "ControlElement", + "id" : "acm014942jsd", + "name" : "fromKey" + }, + "acm014943jsd" : { + "type" : "ControlElement", + "id" : "acm014943jsd", + "name" : "fromEscapedJavaString" + }, + "acm014944jsd" : { + "type" : "ControlElement", + "id" : "acm014944jsd", + "name" : "getEscapedPropertiesKey" + }, + "acm014945jsd" : { + "type" : "ControlElement", + "id" : "acm014945jsd", + "name" : "getValueForEnglishPropertiesFile" + }, + "acm014946jsd" : { + "type" : "ControlElement", + "id" : "acm014946jsd", + "name" : "getKey" + }, + "acm014947jsd" : { + "type" : "ClassUnit", + "id" : "acm014947jsd", + "name" : "LocalizationKey", + "compilationUnitId" : "acm014936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014947jsd" ], + "content" : [ "acm014941jsd", "acm014942jsd", "acm014943jsd", "acm014944jsd", "acm014945jsd", "acm014946jsd" ] + }, + "acm014948jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014948jsd", + "name" : "LocalizationKeyParams", + "parentId" : "acm014898jsd", + "content" : [ "acm014955jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014949jsd" : { + "type" : "CodePackage", + "id" : "acm014949jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014950jsd" ] + }, + "acm014950jsd" : { + "type" : "CodePackage", + "id" : "acm014950jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014951jsd" ] + }, + "acm014951jsd" : { + "type" : "CodePackage", + "id" : "acm014951jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014952jsd" ] + }, + "acm014952jsd" : { + "type" : "CodePackage", + "id" : "acm014952jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm014948jsd" ] + }, + "acm014953jsd" : { + "type" : "ControlElement", + "id" : "acm014953jsd", + "name" : "LocalizationKeyParams" + }, + "acm014954jsd" : { + "type" : "ControlElement", + "id" : "acm014954jsd", + "name" : "replacePlaceholders" + }, + "acm014955jsd" : { + "type" : "ClassUnit", + "id" : "acm014955jsd", + "name" : "LocalizationKeyParams", + "compilationUnitId" : "acm014948jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014947jsd" ], + "content" : [ "acm014953jsd", "acm014954jsd" ] + }, + "acm014956jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014956jsd", + "name" : "LocalizationLocator", + "parentId" : "acm014898jsd", + "content" : [ "acm014962jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014957jsd" : { + "type" : "CodePackage", + "id" : "acm014957jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014958jsd" ] + }, + "acm014958jsd" : { + "type" : "CodePackage", + "id" : "acm014958jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014959jsd" ] + }, + "acm014959jsd" : { + "type" : "CodePackage", + "id" : "acm014959jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014960jsd" ] + }, + "acm014960jsd" : { + "type" : "CodePackage", + "id" : "acm014960jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm014956jsd" ] + }, + "acm014961jsd" : { + "type" : "ControlElement", + "id" : "acm014961jsd", + "name" : "getResourceBundle" + }, + "acm014962jsd" : { + "type" : "ClassUnit", + "id" : "acm014962jsd", + "name" : "LocalizationLocator", + "compilationUnitId" : "acm014956jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014961jsd" ] + }, + "acm014963jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014963jsd", + "name" : "AbstractParamLayoutFormatter", + "parentId" : "acm014967jsd", + "content" : [ "acm014970jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014964jsd" : { + "type" : "CodePackage", + "id" : "acm014964jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014965jsd" ] + }, + "acm014965jsd" : { + "type" : "CodePackage", + "id" : "acm014965jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014966jsd" ] + }, + "acm014966jsd" : { + "type" : "CodePackage", + "id" : "acm014966jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014967jsd" ] + }, + "acm014967jsd" : { + "type" : "CodePackage", + "id" : "acm014967jsd", + "name" : "layout", + "parentId" : "acm001340jsd", + "content" : [ "acm014963jsd", "acm014971jsd", "acm014983jsd", "acm015002jsd", "acm015009jsd", "acm015021jsd", "acm015034jsd", "acm015053jsd", "acm015060jsd", "acm015067jsd", "acm026514jsd", "acm026523jsd", "acm026532jsd", "acm015085jsd" ] + }, + "acm014968jsd" : { + "type" : "ControlElement", + "id" : "acm014968jsd", + "name" : "AbstractParamLayoutFormatter" + }, + "acm014969jsd" : { + "type" : "ControlElement", + "id" : "acm014969jsd", + "name" : "parseArgument" + }, + "acm014970jsd" : { + "type" : "ClassUnit", + "id" : "acm014970jsd", + "name" : "AbstractParamLayoutFormatter", + "compilationUnitId" : "acm014963jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm014968jsd", "acm014969jsd" ] + }, + "acm014971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014971jsd", + "name" : "Layout", + "parentId" : "acm014967jsd", + "content" : [ "acm014982jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014972jsd" : { + "type" : "CodePackage", + "id" : "acm014972jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014973jsd" ] + }, + "acm014973jsd" : { + "type" : "CodePackage", + "id" : "acm014973jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014974jsd" ] + }, + "acm014974jsd" : { + "type" : "CodePackage", + "id" : "acm014974jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014975jsd" ] + }, + "acm014975jsd" : { + "type" : "CodePackage", + "id" : "acm014975jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm014971jsd" ] + }, + "acm014976jsd" : { + "type" : "ControlElement", + "id" : "acm014976jsd", + "name" : "Layout" + }, + "acm014977jsd" : { + "type" : "ControlElement", + "id" : "acm014977jsd", + "name" : "setPostFormatter" + }, + "acm014978jsd" : { + "type" : "ControlElement", + "id" : "acm014978jsd", + "name" : "getText" + }, + "acm014979jsd" : { + "type" : "ControlElement", + "id" : "acm014979jsd", + "name" : "doLayout" + }, + "acm014980jsd" : { + "type" : "ControlElement", + "id" : "acm014980jsd", + "name" : "doLayout" + }, + "acm014981jsd" : { + "type" : "ControlElement", + "id" : "acm014981jsd", + "name" : "getMissingFormatters" + }, + "acm014982jsd" : { + "type" : "ClassUnit", + "id" : "acm014982jsd", + "name" : "Layout", + "compilationUnitId" : "acm014971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015001jsd", "acm015008jsd", "acm015033jsd", "acm015066jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm014976jsd", "acm014977jsd", "acm014978jsd", "acm014979jsd", "acm014980jsd", "acm014981jsd" ] + }, + "acm014983jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm014983jsd", + "name" : "LayoutEntry", + "parentId" : "acm014967jsd", + "content" : [ "acm015001jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm014984jsd" : { + "type" : "CodePackage", + "id" : "acm014984jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm014985jsd" ] + }, + "acm014985jsd" : { + "type" : "CodePackage", + "id" : "acm014985jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm014986jsd" ] + }, + "acm014986jsd" : { + "type" : "CodePackage", + "id" : "acm014986jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm014987jsd" ] + }, + "acm014987jsd" : { + "type" : "CodePackage", + "id" : "acm014987jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm014983jsd" ] + }, + "acm014988jsd" : { + "type" : "ControlElement", + "id" : "acm014988jsd", + "name" : "LayoutEntry" + }, + "acm014989jsd" : { + "type" : "ControlElement", + "id" : "acm014989jsd", + "name" : "LayoutEntry" + }, + "acm014990jsd" : { + "type" : "ControlElement", + "id" : "acm014990jsd", + "name" : "setPostFormatter" + }, + "acm014991jsd" : { + "type" : "ControlElement", + "id" : "acm014991jsd", + "name" : "doLayout" + }, + "acm014992jsd" : { + "type" : "ControlElement", + "id" : "acm014992jsd", + "name" : "handleOptionField" + }, + "acm014993jsd" : { + "type" : "ControlElement", + "id" : "acm014993jsd", + "name" : "handleFieldOrGroupStart" + }, + "acm014994jsd" : { + "type" : "ControlElement", + "id" : "acm014994jsd", + "name" : "doLayout" + }, + "acm014995jsd" : { + "type" : "ControlElement", + "id" : "acm014995jsd", + "name" : "doOptionField" + }, + "acm014996jsd" : { + "type" : "ControlElement", + "id" : "acm014996jsd", + "name" : "getLayoutFormatterByName" + }, + "acm014997jsd" : { + "type" : "ControlElement", + "id" : "acm014997jsd", + "name" : "getOptionalLayout" + }, + "acm014998jsd" : { + "type" : "ControlElement", + "id" : "acm014998jsd", + "name" : "getInvalidFormatters" + }, + "acm014999jsd" : { + "type" : "ControlElement", + "id" : "acm014999jsd", + "name" : "parseMethodsCalls" + }, + "acm015000jsd" : { + "type" : "ControlElement", + "id" : "acm015000jsd", + "name" : "getText" + }, + "acm015001jsd" : { + "type" : "ClassUnit", + "id" : "acm015001jsd", + "name" : "LayoutEntry", + "compilationUnitId" : "acm014983jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011828jsd", "acm012047jsd", "acm015001jsd", "acm015008jsd", "acm015033jsd", "acm015059jsd", "acm015066jsd", "acm015087jsd", "acm015095jsd", "acm015103jsd", "acm015111jsd", "acm015119jsd", "acm015127jsd", "acm015135jsd", "acm015143jsd", "acm015151jsd", "acm015159jsd", "acm015167jsd", "acm015175jsd", "acm015183jsd", "acm015191jsd", "acm015199jsd", "acm015207jsd", "acm015215jsd", "acm015223jsd", "acm015231jsd", "acm015239jsd", "acm015251jsd", "acm015259jsd", "acm015270jsd", "acm015279jsd", "acm015287jsd", "acm015295jsd", "acm015303jsd", "acm015311jsd", "acm015319jsd", "acm015327jsd", "acm015335jsd", "acm015344jsd", "acm015353jsd", "acm015376jsd", "acm015386jsd", "acm015394jsd", "acm015402jsd", "acm015410jsd", "acm015418jsd", "acm015427jsd", "acm015435jsd", "acm015444jsd", "acm015452jsd", "acm015460jsd", "acm015469jsd", "acm015477jsd", "acm015489jsd", "acm015498jsd", "acm015510jsd", "acm015530jsd", "acm015540jsd", "acm015549jsd", "acm015557jsd", "acm015567jsd", "acm015575jsd", "acm015583jsd", "acm015591jsd", "acm015599jsd", "acm015607jsd", "acm015616jsd", "acm015637jsd", "acm015646jsd", "acm015654jsd", "acm015662jsd", "acm015670jsd", "acm015678jsd", "acm015686jsd", "acm015695jsd", "acm015711jsd", "acm015727jsd", "acm016406jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm014988jsd", "acm014989jsd", "acm014990jsd", "acm014991jsd", "acm014992jsd", "acm014993jsd", "acm014994jsd", "acm014995jsd", "acm014996jsd", "acm014997jsd", "acm014998jsd", "acm014999jsd", "acm015000jsd" ] + }, + "acm015002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015002jsd", + "name" : "LayoutFormatter", + "parentId" : "acm014967jsd", + "content" : [ "acm015008jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015003jsd" : { + "type" : "CodePackage", + "id" : "acm015003jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015004jsd" ] + }, + "acm015004jsd" : { + "type" : "CodePackage", + "id" : "acm015004jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015005jsd" ] + }, + "acm015005jsd" : { + "type" : "CodePackage", + "id" : "acm015005jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015006jsd" ] + }, + "acm015006jsd" : { + "type" : "CodePackage", + "id" : "acm015006jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015002jsd" ] + }, + "acm015007jsd" : { + "type" : "ControlElement", + "id" : "acm015007jsd", + "name" : "format" + }, + "acm015008jsd" : { + "type" : "InterfaceUnit", + "id" : "acm015008jsd", + "name" : "LayoutFormatter", + "compilationUnitId" : "acm015002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015007jsd" ] + }, + "acm015009jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015009jsd", + "name" : "LayoutFormatterBasedFormatter", + "parentId" : "acm014967jsd", + "content" : [ "acm015020jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015010jsd" : { + "type" : "CodePackage", + "id" : "acm015010jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015011jsd" ] + }, + "acm015011jsd" : { + "type" : "CodePackage", + "id" : "acm015011jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015012jsd" ] + }, + "acm015012jsd" : { + "type" : "CodePackage", + "id" : "acm015012jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015013jsd" ] + }, + "acm015013jsd" : { + "type" : "CodePackage", + "id" : "acm015013jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015009jsd" ] + }, + "acm015014jsd" : { + "type" : "ControlElement", + "id" : "acm015014jsd", + "name" : "LayoutFormatterBasedFormatter" + }, + "acm015015jsd" : { + "type" : "ControlElement", + "id" : "acm015015jsd", + "name" : "getName" + }, + "acm015016jsd" : { + "type" : "ControlElement", + "id" : "acm015016jsd", + "name" : "getKey" + }, + "acm015017jsd" : { + "type" : "ControlElement", + "id" : "acm015017jsd", + "name" : "format" + }, + "acm015018jsd" : { + "type" : "ControlElement", + "id" : "acm015018jsd", + "name" : "getDescription" + }, + "acm015019jsd" : { + "type" : "ControlElement", + "id" : "acm015019jsd", + "name" : "getExampleInput" + }, + "acm015020jsd" : { + "type" : "ClassUnit", + "id" : "acm015020jsd", + "name" : "LayoutFormatterBasedFormatter", + "compilationUnitId" : "acm015009jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd" ], + "content" : [ "acm015014jsd", "acm015015jsd", "acm015016jsd", "acm015017jsd", "acm015018jsd", "acm015019jsd" ] + }, + "acm015021jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015021jsd", + "name" : "LayoutFormatterPreferences", + "parentId" : "acm014967jsd", + "content" : [ "acm015033jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015022jsd" : { + "type" : "CodePackage", + "id" : "acm015022jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015023jsd" ] + }, + "acm015023jsd" : { + "type" : "CodePackage", + "id" : "acm015023jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015024jsd" ] + }, + "acm015024jsd" : { + "type" : "CodePackage", + "id" : "acm015024jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015025jsd" ] + }, + "acm015025jsd" : { + "type" : "CodePackage", + "id" : "acm015025jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015021jsd" ] + }, + "acm015026jsd" : { + "type" : "ControlElement", + "id" : "acm015026jsd", + "name" : "LayoutFormatterPreferences" + }, + "acm015027jsd" : { + "type" : "ControlElement", + "id" : "acm015027jsd", + "name" : "getNameFormatterPreferences" + }, + "acm015028jsd" : { + "type" : "ControlElement", + "id" : "acm015028jsd", + "name" : "getMainFileDirectory" + }, + "acm015029jsd" : { + "type" : "ControlElement", + "id" : "acm015029jsd", + "name" : "getJournalAbbreviationRepository" + }, + "acm015030jsd" : { + "type" : "ControlElement", + "id" : "acm015030jsd", + "name" : "clearCustomExportNameFormatters" + }, + "acm015031jsd" : { + "type" : "ControlElement", + "id" : "acm015031jsd", + "name" : "putCustomExportNameFormatter" + }, + "acm015032jsd" : { + "type" : "ControlElement", + "id" : "acm015032jsd", + "name" : "getCustomExportNameFormatter" + }, + "acm015033jsd" : { + "type" : "ClassUnit", + "id" : "acm015033jsd", + "name" : "LayoutFormatterPreferences", + "compilationUnitId" : "acm015021jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm015522jsd" ], + "content" : [ "acm015026jsd", "acm015027jsd", "acm015028jsd", "acm015029jsd", "acm015030jsd", "acm015031jsd", "acm015032jsd" ] + }, + "acm015034jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015034jsd", + "name" : "LayoutHelper", + "parentId" : "acm014967jsd", + "content" : [ "acm015052jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015035jsd" : { + "type" : "CodePackage", + "id" : "acm015035jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015036jsd" ] + }, + "acm015036jsd" : { + "type" : "CodePackage", + "id" : "acm015036jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015037jsd" ] + }, + "acm015037jsd" : { + "type" : "CodePackage", + "id" : "acm015037jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015038jsd" ] + }, + "acm015038jsd" : { + "type" : "CodePackage", + "id" : "acm015038jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015034jsd" ] + }, + "acm015039jsd" : { + "type" : "ControlElement", + "id" : "acm015039jsd", + "name" : "LayoutHelper" + }, + "acm015040jsd" : { + "type" : "ControlElement", + "id" : "acm015040jsd", + "name" : "LayoutHelper" + }, + "acm015041jsd" : { + "type" : "ControlElement", + "id" : "acm015041jsd", + "name" : "getLayoutFromText" + }, + "acm015042jsd" : { + "type" : "ControlElement", + "id" : "acm015042jsd", + "name" : "getCurrentGroup" + }, + "acm015043jsd" : { + "type" : "ControlElement", + "id" : "acm015043jsd", + "name" : "setCurrentGroup" + }, + "acm015044jsd" : { + "type" : "ControlElement", + "id" : "acm015044jsd", + "name" : "doBracketedField" + }, + "acm015045jsd" : { + "type" : "ControlElement", + "id" : "acm015045jsd", + "name" : "doBracketedOptionField" + }, + "acm015046jsd" : { + "type" : "ControlElement", + "id" : "acm015046jsd", + "name" : "parse" + }, + "acm015047jsd" : { + "type" : "ControlElement", + "id" : "acm015047jsd", + "name" : "parseField" + }, + "acm015048jsd" : { + "type" : "ControlElement", + "id" : "acm015048jsd", + "name" : "peek" + }, + "acm015049jsd" : { + "type" : "ControlElement", + "id" : "acm015049jsd", + "name" : "read" + }, + "acm015050jsd" : { + "type" : "ControlElement", + "id" : "acm015050jsd", + "name" : "skipWhitespace" + }, + "acm015051jsd" : { + "type" : "ControlElement", + "id" : "acm015051jsd", + "name" : "unread" + }, + "acm015052jsd" : { + "type" : "ClassUnit", + "id" : "acm015052jsd", + "name" : "LayoutHelper", + "compilationUnitId" : "acm015034jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015033jsd", "acm015066jsd" ], + "content" : [ "acm015039jsd", "acm015040jsd", "acm015041jsd", "acm015042jsd", "acm015043jsd", "acm015044jsd", "acm015045jsd", "acm015046jsd", "acm015047jsd", "acm015048jsd", "acm015049jsd", "acm015050jsd", "acm015051jsd" ] + }, + "acm015053jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015053jsd", + "name" : "ParamLayoutFormatter", + "parentId" : "acm014967jsd", + "content" : [ "acm015059jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015054jsd" : { + "type" : "CodePackage", + "id" : "acm015054jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015055jsd" ] + }, + "acm015055jsd" : { + "type" : "CodePackage", + "id" : "acm015055jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015056jsd" ] + }, + "acm015056jsd" : { + "type" : "CodePackage", + "id" : "acm015056jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015057jsd" ] + }, + "acm015057jsd" : { + "type" : "CodePackage", + "id" : "acm015057jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015053jsd" ] + }, + "acm015058jsd" : { + "type" : "ControlElement", + "id" : "acm015058jsd", + "name" : "setArgument" + }, + "acm015059jsd" : { + "type" : "InterfaceUnit", + "id" : "acm015059jsd", + "name" : "ParamLayoutFormatter", + "compilationUnitId" : "acm015053jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm015008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015058jsd" ] + }, + "acm015060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015060jsd", + "name" : "StringInt", + "parentId" : "acm014967jsd", + "content" : [ "acm015066jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015061jsd" : { + "type" : "CodePackage", + "id" : "acm015061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015062jsd" ] + }, + "acm015062jsd" : { + "type" : "CodePackage", + "id" : "acm015062jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015063jsd" ] + }, + "acm015063jsd" : { + "type" : "CodePackage", + "id" : "acm015063jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015064jsd" ] + }, + "acm015064jsd" : { + "type" : "CodePackage", + "id" : "acm015064jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015060jsd" ] + }, + "acm015065jsd" : { + "type" : "ControlElement", + "id" : "acm015065jsd", + "name" : "StringInt" + }, + "acm015066jsd" : { + "type" : "ClassUnit", + "id" : "acm015066jsd", + "name" : "StringInt", + "compilationUnitId" : "acm015060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015065jsd" ] + }, + "acm015067jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015067jsd", + "name" : "TextBasedPreviewLayout", + "parentId" : "acm014967jsd", + "content" : [ "acm015079jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015068jsd" : { + "type" : "CodePackage", + "id" : "acm015068jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015069jsd" ] + }, + "acm015069jsd" : { + "type" : "CodePackage", + "id" : "acm015069jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015070jsd" ] + }, + "acm015070jsd" : { + "type" : "CodePackage", + "id" : "acm015070jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015071jsd" ] + }, + "acm015071jsd" : { + "type" : "CodePackage", + "id" : "acm015071jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015067jsd" ] + }, + "acm015072jsd" : { + "type" : "ControlElement", + "id" : "acm015072jsd", + "name" : "TextBasedPreviewLayout" + }, + "acm015073jsd" : { + "type" : "ControlElement", + "id" : "acm015073jsd", + "name" : "TextBasedPreviewLayout" + }, + "acm015074jsd" : { + "type" : "ControlElement", + "id" : "acm015074jsd", + "name" : "setText" + }, + "acm015075jsd" : { + "type" : "ControlElement", + "id" : "acm015075jsd", + "name" : "generatePreview" + }, + "acm015076jsd" : { + "type" : "ControlElement", + "id" : "acm015076jsd", + "name" : "getText" + }, + "acm015077jsd" : { + "type" : "ControlElement", + "id" : "acm015077jsd", + "name" : "getName" + }, + "acm015078jsd" : { + "type" : "ControlElement", + "id" : "acm015078jsd", + "name" : "getDisplayName" + }, + "acm015079jsd" : { + "type" : "ClassUnit", + "id" : "acm015079jsd", + "name" : "TextBasedPreviewLayout", + "compilationUnitId" : "acm015067jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016651jsd" ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015033jsd", "acm015052jsd", "acm015079jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm015072jsd", "acm015073jsd", "acm015074jsd", "acm015075jsd", "acm015076jsd", "acm015077jsd", "acm015078jsd" ] + }, + "acm015080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015080jsd", + "name" : "AuthorAbbreviator", + "parentId" : "acm015085jsd", + "content" : [ "acm015087jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015081jsd" : { + "type" : "CodePackage", + "id" : "acm015081jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015082jsd" ] + }, + "acm015082jsd" : { + "type" : "CodePackage", + "id" : "acm015082jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015083jsd" ] + }, + "acm015083jsd" : { + "type" : "CodePackage", + "id" : "acm015083jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015084jsd" ] + }, + "acm015084jsd" : { + "type" : "CodePackage", + "id" : "acm015084jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015085jsd" ] + }, + "acm015085jsd" : { + "type" : "CodePackage", + "id" : "acm015085jsd", + "name" : "format", + "parentId" : "acm014967jsd", + "content" : [ "acm015080jsd", "acm015088jsd", "acm015096jsd", "acm015104jsd", "acm015112jsd", "acm015120jsd", "acm015128jsd", "acm015136jsd", "acm015144jsd", "acm015152jsd", "acm015160jsd", "acm015168jsd", "acm015176jsd", "acm015184jsd", "acm015192jsd", "acm015200jsd", "acm015208jsd", "acm015216jsd", "acm015224jsd", "acm015232jsd", "acm015240jsd", "acm015252jsd", "acm015260jsd", "acm015271jsd", "acm015280jsd", "acm015288jsd", "acm015296jsd", "acm015304jsd", "acm015312jsd", "acm015320jsd", "acm015328jsd", "acm015336jsd", "acm015345jsd", "acm015354jsd", "acm015362jsd", "acm015369jsd", "acm015377jsd", "acm015387jsd", "acm015395jsd", "acm015403jsd", "acm015411jsd", "acm015419jsd", "acm015428jsd", "acm015436jsd", "acm015445jsd", "acm015453jsd", "acm015461jsd", "acm015470jsd", "acm015478jsd", "acm015490jsd", "acm015499jsd", "acm015511jsd", "acm015523jsd", "acm015531jsd", "acm015541jsd", "acm015550jsd", "acm015558jsd", "acm015568jsd", "acm015576jsd", "acm015584jsd", "acm015592jsd", "acm015600jsd", "acm015608jsd", "acm015617jsd", "acm015630jsd", "acm015638jsd", "acm015647jsd", "acm015655jsd", "acm015663jsd", "acm015671jsd", "acm015679jsd", "acm015687jsd", "acm015696jsd", "acm015717jsd", "acm026552jsd", "acm026560jsd", "acm026569jsd", "acm026577jsd", "acm026585jsd", "acm026593jsd", "acm026601jsd", "acm026609jsd", "acm026617jsd", "acm026626jsd", "acm026634jsd", "acm026642jsd", "acm026650jsd", "acm026658jsd", "acm026666jsd", "acm026679jsd", "acm026687jsd", "acm026695jsd", "acm026703jsd", "acm026712jsd", "acm026723jsd", "acm026753jsd", "acm026763jsd", "acm026772jsd", "acm026781jsd", "acm026792jsd", "acm026801jsd", "acm026810jsd", "acm026820jsd", "acm026829jsd", "acm026845jsd", "acm026854jsd", "acm026867jsd", "acm026876jsd", "acm026917jsd", "acm026929jsd", "acm026938jsd", "acm026947jsd", "acm026961jsd", "acm026982jsd", "acm026992jsd", "acm027005jsd", "acm027022jsd", "acm027032jsd", "acm027044jsd", "acm027057jsd", "acm027069jsd", "acm027081jsd", "acm027092jsd", "acm027103jsd", "acm027113jsd", "acm027122jsd", "acm027131jsd" ] + }, + "acm015086jsd" : { + "type" : "ControlElement", + "id" : "acm015086jsd", + "name" : "format" + }, + "acm015087jsd" : { + "type" : "ClassUnit", + "id" : "acm015087jsd", + "name" : "AuthorAbbreviator", + "compilationUnitId" : "acm015080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018175jsd" ], + "content" : [ "acm015086jsd" ] + }, + "acm015088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015088jsd", + "name" : "AuthorAndToSemicolonReplacer", + "parentId" : "acm015085jsd", + "content" : [ "acm015095jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015089jsd" : { + "type" : "CodePackage", + "id" : "acm015089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015090jsd" ] + }, + "acm015090jsd" : { + "type" : "CodePackage", + "id" : "acm015090jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015091jsd" ] + }, + "acm015091jsd" : { + "type" : "CodePackage", + "id" : "acm015091jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015092jsd" ] + }, + "acm015092jsd" : { + "type" : "CodePackage", + "id" : "acm015092jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015093jsd" ] + }, + "acm015093jsd" : { + "type" : "CodePackage", + "id" : "acm015093jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015088jsd" ] + }, + "acm015094jsd" : { + "type" : "ControlElement", + "id" : "acm015094jsd", + "name" : "format" + }, + "acm015095jsd" : { + "type" : "ClassUnit", + "id" : "acm015095jsd", + "name" : "AuthorAndToSemicolonReplacer", + "compilationUnitId" : "acm015088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015094jsd" ] + }, + "acm015096jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015096jsd", + "name" : "AuthorAndsCommaReplacer", + "parentId" : "acm015085jsd", + "content" : [ "acm015103jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015097jsd" : { + "type" : "CodePackage", + "id" : "acm015097jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015098jsd" ] + }, + "acm015098jsd" : { + "type" : "CodePackage", + "id" : "acm015098jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015099jsd" ] + }, + "acm015099jsd" : { + "type" : "CodePackage", + "id" : "acm015099jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015100jsd" ] + }, + "acm015100jsd" : { + "type" : "CodePackage", + "id" : "acm015100jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015101jsd" ] + }, + "acm015101jsd" : { + "type" : "CodePackage", + "id" : "acm015101jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015096jsd" ] + }, + "acm015102jsd" : { + "type" : "ControlElement", + "id" : "acm015102jsd", + "name" : "format" + }, + "acm015103jsd" : { + "type" : "ClassUnit", + "id" : "acm015103jsd", + "name" : "AuthorAndsCommaReplacer", + "compilationUnitId" : "acm015096jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015102jsd" ] + }, + "acm015104jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015104jsd", + "name" : "AuthorAndsReplacer", + "parentId" : "acm015085jsd", + "content" : [ "acm015111jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015105jsd" : { + "type" : "CodePackage", + "id" : "acm015105jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015106jsd" ] + }, + "acm015106jsd" : { + "type" : "CodePackage", + "id" : "acm015106jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015107jsd" ] + }, + "acm015107jsd" : { + "type" : "CodePackage", + "id" : "acm015107jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015108jsd" ] + }, + "acm015108jsd" : { + "type" : "CodePackage", + "id" : "acm015108jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015109jsd" ] + }, + "acm015109jsd" : { + "type" : "CodePackage", + "id" : "acm015109jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015104jsd" ] + }, + "acm015110jsd" : { + "type" : "ControlElement", + "id" : "acm015110jsd", + "name" : "format" + }, + "acm015111jsd" : { + "type" : "ClassUnit", + "id" : "acm015111jsd", + "name" : "AuthorAndsReplacer", + "compilationUnitId" : "acm015104jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015110jsd" ] + }, + "acm015112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015112jsd", + "name" : "AuthorFirstAbbrLastCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015119jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015113jsd" : { + "type" : "CodePackage", + "id" : "acm015113jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015114jsd" ] + }, + "acm015114jsd" : { + "type" : "CodePackage", + "id" : "acm015114jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015115jsd" ] + }, + "acm015115jsd" : { + "type" : "CodePackage", + "id" : "acm015115jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015116jsd" ] + }, + "acm015116jsd" : { + "type" : "CodePackage", + "id" : "acm015116jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015117jsd" ] + }, + "acm015117jsd" : { + "type" : "CodePackage", + "id" : "acm015117jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015112jsd" ] + }, + "acm015118jsd" : { + "type" : "ControlElement", + "id" : "acm015118jsd", + "name" : "format" + }, + "acm015119jsd" : { + "type" : "ClassUnit", + "id" : "acm015119jsd", + "name" : "AuthorFirstAbbrLastCommas", + "compilationUnitId" : "acm015112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015118jsd" ] + }, + "acm015120jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015120jsd", + "name" : "AuthorFirstAbbrLastOxfordCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015127jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015121jsd" : { + "type" : "CodePackage", + "id" : "acm015121jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015122jsd" ] + }, + "acm015122jsd" : { + "type" : "CodePackage", + "id" : "acm015122jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015123jsd" ] + }, + "acm015123jsd" : { + "type" : "CodePackage", + "id" : "acm015123jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015124jsd" ] + }, + "acm015124jsd" : { + "type" : "CodePackage", + "id" : "acm015124jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015125jsd" ] + }, + "acm015125jsd" : { + "type" : "CodePackage", + "id" : "acm015125jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015120jsd" ] + }, + "acm015126jsd" : { + "type" : "ControlElement", + "id" : "acm015126jsd", + "name" : "format" + }, + "acm015127jsd" : { + "type" : "ClassUnit", + "id" : "acm015127jsd", + "name" : "AuthorFirstAbbrLastOxfordCommas", + "compilationUnitId" : "acm015120jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015126jsd" ] + }, + "acm015128jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015128jsd", + "name" : "AuthorFirstFirst", + "parentId" : "acm015085jsd", + "content" : [ "acm015135jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015129jsd" : { + "type" : "CodePackage", + "id" : "acm015129jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015130jsd" ] + }, + "acm015130jsd" : { + "type" : "CodePackage", + "id" : "acm015130jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015131jsd" ] + }, + "acm015131jsd" : { + "type" : "CodePackage", + "id" : "acm015131jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015132jsd" ] + }, + "acm015132jsd" : { + "type" : "CodePackage", + "id" : "acm015132jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015133jsd" ] + }, + "acm015133jsd" : { + "type" : "CodePackage", + "id" : "acm015133jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015128jsd" ] + }, + "acm015134jsd" : { + "type" : "ControlElement", + "id" : "acm015134jsd", + "name" : "format" + }, + "acm015135jsd" : { + "type" : "ClassUnit", + "id" : "acm015135jsd", + "name" : "AuthorFirstFirst", + "compilationUnitId" : "acm015128jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015134jsd" ] + }, + "acm015136jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015136jsd", + "name" : "AuthorFirstFirstCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015143jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015137jsd" : { + "type" : "CodePackage", + "id" : "acm015137jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015138jsd" ] + }, + "acm015138jsd" : { + "type" : "CodePackage", + "id" : "acm015138jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015139jsd" ] + }, + "acm015139jsd" : { + "type" : "CodePackage", + "id" : "acm015139jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015140jsd" ] + }, + "acm015140jsd" : { + "type" : "CodePackage", + "id" : "acm015140jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015141jsd" ] + }, + "acm015141jsd" : { + "type" : "CodePackage", + "id" : "acm015141jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015136jsd" ] + }, + "acm015142jsd" : { + "type" : "ControlElement", + "id" : "acm015142jsd", + "name" : "format" + }, + "acm015143jsd" : { + "type" : "ClassUnit", + "id" : "acm015143jsd", + "name" : "AuthorFirstFirstCommas", + "compilationUnitId" : "acm015136jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015142jsd" ] + }, + "acm015144jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015144jsd", + "name" : "AuthorFirstLastCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015151jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015145jsd" : { + "type" : "CodePackage", + "id" : "acm015145jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015146jsd" ] + }, + "acm015146jsd" : { + "type" : "CodePackage", + "id" : "acm015146jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015147jsd" ] + }, + "acm015147jsd" : { + "type" : "CodePackage", + "id" : "acm015147jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015148jsd" ] + }, + "acm015148jsd" : { + "type" : "CodePackage", + "id" : "acm015148jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015149jsd" ] + }, + "acm015149jsd" : { + "type" : "CodePackage", + "id" : "acm015149jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015144jsd" ] + }, + "acm015150jsd" : { + "type" : "ControlElement", + "id" : "acm015150jsd", + "name" : "format" + }, + "acm015151jsd" : { + "type" : "ClassUnit", + "id" : "acm015151jsd", + "name" : "AuthorFirstLastCommas", + "compilationUnitId" : "acm015144jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015150jsd" ] + }, + "acm015152jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015152jsd", + "name" : "AuthorFirstLastOxfordCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015159jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015153jsd" : { + "type" : "CodePackage", + "id" : "acm015153jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015154jsd" ] + }, + "acm015154jsd" : { + "type" : "CodePackage", + "id" : "acm015154jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015155jsd" ] + }, + "acm015155jsd" : { + "type" : "CodePackage", + "id" : "acm015155jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015156jsd" ] + }, + "acm015156jsd" : { + "type" : "CodePackage", + "id" : "acm015156jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015157jsd" ] + }, + "acm015157jsd" : { + "type" : "CodePackage", + "id" : "acm015157jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015152jsd" ] + }, + "acm015158jsd" : { + "type" : "ControlElement", + "id" : "acm015158jsd", + "name" : "format" + }, + "acm015159jsd" : { + "type" : "ClassUnit", + "id" : "acm015159jsd", + "name" : "AuthorFirstLastOxfordCommas", + "compilationUnitId" : "acm015152jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015158jsd" ] + }, + "acm015160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015160jsd", + "name" : "AuthorLF_FF", + "parentId" : "acm015085jsd", + "content" : [ "acm015167jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015161jsd" : { + "type" : "CodePackage", + "id" : "acm015161jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015162jsd" ] + }, + "acm015162jsd" : { + "type" : "CodePackage", + "id" : "acm015162jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015163jsd" ] + }, + "acm015163jsd" : { + "type" : "CodePackage", + "id" : "acm015163jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015164jsd" ] + }, + "acm015164jsd" : { + "type" : "CodePackage", + "id" : "acm015164jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015165jsd" ] + }, + "acm015165jsd" : { + "type" : "CodePackage", + "id" : "acm015165jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015160jsd" ] + }, + "acm015166jsd" : { + "type" : "ControlElement", + "id" : "acm015166jsd", + "name" : "format" + }, + "acm015167jsd" : { + "type" : "ClassUnit", + "id" : "acm015167jsd", + "name" : "AuthorLF_FF", + "compilationUnitId" : "acm015160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018175jsd" ], + "content" : [ "acm015166jsd" ] + }, + "acm015168jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015168jsd", + "name" : "AuthorLF_FFAbbr", + "parentId" : "acm015085jsd", + "content" : [ "acm015175jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015169jsd" : { + "type" : "CodePackage", + "id" : "acm015169jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015170jsd" ] + }, + "acm015170jsd" : { + "type" : "CodePackage", + "id" : "acm015170jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015171jsd" ] + }, + "acm015171jsd" : { + "type" : "CodePackage", + "id" : "acm015171jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015172jsd" ] + }, + "acm015172jsd" : { + "type" : "CodePackage", + "id" : "acm015172jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015173jsd" ] + }, + "acm015173jsd" : { + "type" : "CodePackage", + "id" : "acm015173jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015168jsd" ] + }, + "acm015174jsd" : { + "type" : "ControlElement", + "id" : "acm015174jsd", + "name" : "format" + }, + "acm015175jsd" : { + "type" : "ClassUnit", + "id" : "acm015175jsd", + "name" : "AuthorLF_FFAbbr", + "compilationUnitId" : "acm015168jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018175jsd" ], + "content" : [ "acm015174jsd" ] + }, + "acm015176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015176jsd", + "name" : "AuthorLastFirst", + "parentId" : "acm015085jsd", + "content" : [ "acm015183jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015177jsd" : { + "type" : "CodePackage", + "id" : "acm015177jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015178jsd" ] + }, + "acm015178jsd" : { + "type" : "CodePackage", + "id" : "acm015178jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015179jsd" ] + }, + "acm015179jsd" : { + "type" : "CodePackage", + "id" : "acm015179jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015180jsd" ] + }, + "acm015180jsd" : { + "type" : "CodePackage", + "id" : "acm015180jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015181jsd" ] + }, + "acm015181jsd" : { + "type" : "CodePackage", + "id" : "acm015181jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015176jsd" ] + }, + "acm015182jsd" : { + "type" : "ControlElement", + "id" : "acm015182jsd", + "name" : "format" + }, + "acm015183jsd" : { + "type" : "ClassUnit", + "id" : "acm015183jsd", + "name" : "AuthorLastFirst", + "compilationUnitId" : "acm015176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015182jsd" ] + }, + "acm015184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015184jsd", + "name" : "AuthorLastFirstAbbrCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015191jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015185jsd" : { + "type" : "CodePackage", + "id" : "acm015185jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015186jsd" ] + }, + "acm015186jsd" : { + "type" : "CodePackage", + "id" : "acm015186jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015187jsd" ] + }, + "acm015187jsd" : { + "type" : "CodePackage", + "id" : "acm015187jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015188jsd" ] + }, + "acm015188jsd" : { + "type" : "CodePackage", + "id" : "acm015188jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015189jsd" ] + }, + "acm015189jsd" : { + "type" : "CodePackage", + "id" : "acm015189jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015184jsd" ] + }, + "acm015190jsd" : { + "type" : "ControlElement", + "id" : "acm015190jsd", + "name" : "format" + }, + "acm015191jsd" : { + "type" : "ClassUnit", + "id" : "acm015191jsd", + "name" : "AuthorLastFirstAbbrCommas", + "compilationUnitId" : "acm015184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015190jsd" ] + }, + "acm015192jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015192jsd", + "name" : "AuthorLastFirstAbbrOxfordCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015199jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015193jsd" : { + "type" : "CodePackage", + "id" : "acm015193jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015194jsd" ] + }, + "acm015194jsd" : { + "type" : "CodePackage", + "id" : "acm015194jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015195jsd" ] + }, + "acm015195jsd" : { + "type" : "CodePackage", + "id" : "acm015195jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015196jsd" ] + }, + "acm015196jsd" : { + "type" : "CodePackage", + "id" : "acm015196jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015197jsd" ] + }, + "acm015197jsd" : { + "type" : "CodePackage", + "id" : "acm015197jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015192jsd" ] + }, + "acm015198jsd" : { + "type" : "ControlElement", + "id" : "acm015198jsd", + "name" : "format" + }, + "acm015199jsd" : { + "type" : "ClassUnit", + "id" : "acm015199jsd", + "name" : "AuthorLastFirstAbbrOxfordCommas", + "compilationUnitId" : "acm015192jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015198jsd" ] + }, + "acm015200jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015200jsd", + "name" : "AuthorLastFirstAbbreviator", + "parentId" : "acm015085jsd", + "content" : [ "acm015207jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015201jsd" : { + "type" : "CodePackage", + "id" : "acm015201jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015202jsd" ] + }, + "acm015202jsd" : { + "type" : "CodePackage", + "id" : "acm015202jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015203jsd" ] + }, + "acm015203jsd" : { + "type" : "CodePackage", + "id" : "acm015203jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015204jsd" ] + }, + "acm015204jsd" : { + "type" : "CodePackage", + "id" : "acm015204jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015205jsd" ] + }, + "acm015205jsd" : { + "type" : "CodePackage", + "id" : "acm015205jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015200jsd" ] + }, + "acm015206jsd" : { + "type" : "ControlElement", + "id" : "acm015206jsd", + "name" : "format" + }, + "acm015207jsd" : { + "type" : "ClassUnit", + "id" : "acm015207jsd", + "name" : "AuthorLastFirstAbbreviator", + "compilationUnitId" : "acm015200jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015087jsd" ], + "content" : [ "acm015206jsd" ] + }, + "acm015208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015208jsd", + "name" : "AuthorLastFirstCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015215jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015209jsd" : { + "type" : "CodePackage", + "id" : "acm015209jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015210jsd" ] + }, + "acm015210jsd" : { + "type" : "CodePackage", + "id" : "acm015210jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015211jsd" ] + }, + "acm015211jsd" : { + "type" : "CodePackage", + "id" : "acm015211jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015212jsd" ] + }, + "acm015212jsd" : { + "type" : "CodePackage", + "id" : "acm015212jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015213jsd" ] + }, + "acm015213jsd" : { + "type" : "CodePackage", + "id" : "acm015213jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015208jsd" ] + }, + "acm015214jsd" : { + "type" : "ControlElement", + "id" : "acm015214jsd", + "name" : "format" + }, + "acm015215jsd" : { + "type" : "ClassUnit", + "id" : "acm015215jsd", + "name" : "AuthorLastFirstCommas", + "compilationUnitId" : "acm015208jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015214jsd" ] + }, + "acm015216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015216jsd", + "name" : "AuthorLastFirstOxfordCommas", + "parentId" : "acm015085jsd", + "content" : [ "acm015223jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015217jsd" : { + "type" : "CodePackage", + "id" : "acm015217jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015218jsd" ] + }, + "acm015218jsd" : { + "type" : "CodePackage", + "id" : "acm015218jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015219jsd" ] + }, + "acm015219jsd" : { + "type" : "CodePackage", + "id" : "acm015219jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015220jsd" ] + }, + "acm015220jsd" : { + "type" : "CodePackage", + "id" : "acm015220jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015221jsd" ] + }, + "acm015221jsd" : { + "type" : "CodePackage", + "id" : "acm015221jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015216jsd" ] + }, + "acm015222jsd" : { + "type" : "ControlElement", + "id" : "acm015222jsd", + "name" : "format" + }, + "acm015223jsd" : { + "type" : "ClassUnit", + "id" : "acm015223jsd", + "name" : "AuthorLastFirstOxfordCommas", + "compilationUnitId" : "acm015216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015222jsd" ] + }, + "acm015224jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015224jsd", + "name" : "AuthorNatBib", + "parentId" : "acm015085jsd", + "content" : [ "acm015231jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015225jsd" : { + "type" : "CodePackage", + "id" : "acm015225jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015226jsd" ] + }, + "acm015226jsd" : { + "type" : "CodePackage", + "id" : "acm015226jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015227jsd" ] + }, + "acm015227jsd" : { + "type" : "CodePackage", + "id" : "acm015227jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015228jsd" ] + }, + "acm015228jsd" : { + "type" : "CodePackage", + "id" : "acm015228jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015229jsd" ] + }, + "acm015229jsd" : { + "type" : "CodePackage", + "id" : "acm015229jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015224jsd" ] + }, + "acm015230jsd" : { + "type" : "ControlElement", + "id" : "acm015230jsd", + "name" : "format" + }, + "acm015231jsd" : { + "type" : "ClassUnit", + "id" : "acm015231jsd", + "name" : "AuthorNatBib", + "compilationUnitId" : "acm015224jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015230jsd" ] + }, + "acm015232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015232jsd", + "name" : "AuthorOrgSci", + "parentId" : "acm015085jsd", + "content" : [ "acm015239jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015233jsd" : { + "type" : "CodePackage", + "id" : "acm015233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015234jsd" ] + }, + "acm015234jsd" : { + "type" : "CodePackage", + "id" : "acm015234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015235jsd" ] + }, + "acm015235jsd" : { + "type" : "CodePackage", + "id" : "acm015235jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015236jsd" ] + }, + "acm015236jsd" : { + "type" : "CodePackage", + "id" : "acm015236jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015237jsd" ] + }, + "acm015237jsd" : { + "type" : "CodePackage", + "id" : "acm015237jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015232jsd" ] + }, + "acm015238jsd" : { + "type" : "ControlElement", + "id" : "acm015238jsd", + "name" : "format" + }, + "acm015239jsd" : { + "type" : "ClassUnit", + "id" : "acm015239jsd", + "name" : "AuthorOrgSci", + "compilationUnitId" : "acm015232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm015238jsd" ] + }, + "acm015240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015240jsd", + "name" : "Authors", + "parentId" : "acm015085jsd", + "content" : [ "acm015251jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015241jsd" : { + "type" : "CodePackage", + "id" : "acm015241jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015242jsd" ] + }, + "acm015242jsd" : { + "type" : "CodePackage", + "id" : "acm015242jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015243jsd" ] + }, + "acm015243jsd" : { + "type" : "CodePackage", + "id" : "acm015243jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015244jsd" ] + }, + "acm015244jsd" : { + "type" : "CodePackage", + "id" : "acm015244jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015245jsd" ] + }, + "acm015245jsd" : { + "type" : "CodePackage", + "id" : "acm015245jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015240jsd" ] + }, + "acm015246jsd" : { + "type" : "ControlElement", + "id" : "acm015246jsd", + "name" : "setArgument" + }, + "acm015247jsd" : { + "type" : "ControlElement", + "id" : "acm015247jsd", + "name" : "handleArgument" + }, + "acm015248jsd" : { + "type" : "ControlElement", + "id" : "acm015248jsd", + "name" : "comp" + }, + "acm015249jsd" : { + "type" : "ControlElement", + "id" : "acm015249jsd", + "name" : "format" + }, + "acm015250jsd" : { + "type" : "ControlElement", + "id" : "acm015250jsd", + "name" : "addSingleName" + }, + "acm015251jsd" : { + "type" : "ClassUnit", + "id" : "acm015251jsd", + "name" : "Authors", + "compilationUnitId" : "acm015240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm014970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm015246jsd", "acm015247jsd", "acm015248jsd", "acm015249jsd", "acm015250jsd" ] + }, + "acm015252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015252jsd", + "name" : "CSLType", + "parentId" : "acm015085jsd", + "content" : [ "acm015259jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015253jsd" : { + "type" : "CodePackage", + "id" : "acm015253jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015254jsd" ] + }, + "acm015254jsd" : { + "type" : "CodePackage", + "id" : "acm015254jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015255jsd" ] + }, + "acm015255jsd" : { + "type" : "CodePackage", + "id" : "acm015255jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015256jsd" ] + }, + "acm015256jsd" : { + "type" : "CodePackage", + "id" : "acm015256jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015257jsd" ] + }, + "acm015257jsd" : { + "type" : "CodePackage", + "id" : "acm015257jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015252jsd" ] + }, + "acm015258jsd" : { + "type" : "ControlElement", + "id" : "acm015258jsd", + "name" : "format" + }, + "acm015259jsd" : { + "type" : "ClassUnit", + "id" : "acm015259jsd", + "name" : "CSLType", + "compilationUnitId" : "acm015252jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015258jsd" ] + }, + "acm015260jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015260jsd", + "name" : "CompositeFormat", + "parentId" : "acm015085jsd", + "content" : [ "acm015270jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015261jsd" : { + "type" : "CodePackage", + "id" : "acm015261jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015262jsd" ] + }, + "acm015262jsd" : { + "type" : "CodePackage", + "id" : "acm015262jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015263jsd" ] + }, + "acm015263jsd" : { + "type" : "CodePackage", + "id" : "acm015263jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015264jsd" ] + }, + "acm015264jsd" : { + "type" : "CodePackage", + "id" : "acm015264jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015265jsd" ] + }, + "acm015265jsd" : { + "type" : "CodePackage", + "id" : "acm015265jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015260jsd" ] + }, + "acm015266jsd" : { + "type" : "ControlElement", + "id" : "acm015266jsd", + "name" : "CompositeFormat" + }, + "acm015267jsd" : { + "type" : "ControlElement", + "id" : "acm015267jsd", + "name" : "CompositeFormat" + }, + "acm015268jsd" : { + "type" : "ControlElement", + "id" : "acm015268jsd", + "name" : "CompositeFormat" + }, + "acm015269jsd" : { + "type" : "ControlElement", + "id" : "acm015269jsd", + "name" : "format" + }, + "acm015270jsd" : { + "type" : "ClassUnit", + "id" : "acm015270jsd", + "name" : "CompositeFormat", + "compilationUnitId" : "acm015260jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015008jsd" ], + "content" : [ "acm015266jsd", "acm015267jsd", "acm015268jsd", "acm015269jsd" ] + }, + "acm015271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015271jsd", + "name" : "CreateBibORDFAuthors", + "parentId" : "acm015085jsd", + "content" : [ "acm015279jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015272jsd" : { + "type" : "CodePackage", + "id" : "acm015272jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015273jsd" ] + }, + "acm015273jsd" : { + "type" : "CodePackage", + "id" : "acm015273jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015274jsd" ] + }, + "acm015274jsd" : { + "type" : "CodePackage", + "id" : "acm015274jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015275jsd" ] + }, + "acm015275jsd" : { + "type" : "CodePackage", + "id" : "acm015275jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015276jsd" ] + }, + "acm015276jsd" : { + "type" : "CodePackage", + "id" : "acm015276jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015271jsd" ] + }, + "acm015277jsd" : { + "type" : "ControlElement", + "id" : "acm015277jsd", + "name" : "format" + }, + "acm015278jsd" : { + "type" : "ControlElement", + "id" : "acm015278jsd", + "name" : "singleAuthor" + }, + "acm015279jsd" : { + "type" : "ClassUnit", + "id" : "acm015279jsd", + "name" : "CreateBibORDFAuthors", + "compilationUnitId" : "acm015271jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015277jsd", "acm015278jsd" ] + }, + "acm015280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015280jsd", + "name" : "CreateDocBook4Authors", + "parentId" : "acm015085jsd", + "content" : [ "acm015287jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015281jsd" : { + "type" : "CodePackage", + "id" : "acm015281jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015282jsd" ] + }, + "acm015282jsd" : { + "type" : "CodePackage", + "id" : "acm015282jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015283jsd" ] + }, + "acm015283jsd" : { + "type" : "CodePackage", + "id" : "acm015283jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015284jsd" ] + }, + "acm015284jsd" : { + "type" : "CodePackage", + "id" : "acm015284jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015285jsd" ] + }, + "acm015285jsd" : { + "type" : "CodePackage", + "id" : "acm015285jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015280jsd" ] + }, + "acm015286jsd" : { + "type" : "ControlElement", + "id" : "acm015286jsd", + "name" : "format" + }, + "acm015287jsd" : { + "type" : "ClassUnit", + "id" : "acm015287jsd", + "name" : "CreateDocBook4Authors", + "compilationUnitId" : "acm015280jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015361jsd", "acm018175jsd" ], + "content" : [ "acm015286jsd" ] + }, + "acm015288jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015288jsd", + "name" : "CreateDocBook4Editors", + "parentId" : "acm015085jsd", + "content" : [ "acm015295jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015289jsd" : { + "type" : "CodePackage", + "id" : "acm015289jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015290jsd" ] + }, + "acm015290jsd" : { + "type" : "CodePackage", + "id" : "acm015290jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015291jsd" ] + }, + "acm015291jsd" : { + "type" : "CodePackage", + "id" : "acm015291jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015292jsd" ] + }, + "acm015292jsd" : { + "type" : "CodePackage", + "id" : "acm015292jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015293jsd" ] + }, + "acm015293jsd" : { + "type" : "CodePackage", + "id" : "acm015293jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015288jsd" ] + }, + "acm015294jsd" : { + "type" : "ControlElement", + "id" : "acm015294jsd", + "name" : "format" + }, + "acm015295jsd" : { + "type" : "ClassUnit", + "id" : "acm015295jsd", + "name" : "CreateDocBook4Editors", + "compilationUnitId" : "acm015288jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015361jsd", "acm018175jsd" ], + "content" : [ "acm015294jsd" ] + }, + "acm015296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015296jsd", + "name" : "CreateDocBook5Authors", + "parentId" : "acm015085jsd", + "content" : [ "acm015303jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015297jsd" : { + "type" : "CodePackage", + "id" : "acm015297jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015298jsd" ] + }, + "acm015298jsd" : { + "type" : "CodePackage", + "id" : "acm015298jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015299jsd" ] + }, + "acm015299jsd" : { + "type" : "CodePackage", + "id" : "acm015299jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015300jsd" ] + }, + "acm015300jsd" : { + "type" : "CodePackage", + "id" : "acm015300jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015301jsd" ] + }, + "acm015301jsd" : { + "type" : "CodePackage", + "id" : "acm015301jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015296jsd" ] + }, + "acm015302jsd" : { + "type" : "ControlElement", + "id" : "acm015302jsd", + "name" : "format" + }, + "acm015303jsd" : { + "type" : "ClassUnit", + "id" : "acm015303jsd", + "name" : "CreateDocBook5Authors", + "compilationUnitId" : "acm015296jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015361jsd", "acm018175jsd" ], + "content" : [ "acm015302jsd" ] + }, + "acm015304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015304jsd", + "name" : "CreateDocBook5Editors", + "parentId" : "acm015085jsd", + "content" : [ "acm015311jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015305jsd" : { + "type" : "CodePackage", + "id" : "acm015305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015306jsd" ] + }, + "acm015306jsd" : { + "type" : "CodePackage", + "id" : "acm015306jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015307jsd" ] + }, + "acm015307jsd" : { + "type" : "CodePackage", + "id" : "acm015307jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015308jsd" ] + }, + "acm015308jsd" : { + "type" : "CodePackage", + "id" : "acm015308jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015309jsd" ] + }, + "acm015309jsd" : { + "type" : "CodePackage", + "id" : "acm015309jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015304jsd" ] + }, + "acm015310jsd" : { + "type" : "ControlElement", + "id" : "acm015310jsd", + "name" : "format" + }, + "acm015311jsd" : { + "type" : "ClassUnit", + "id" : "acm015311jsd", + "name" : "CreateDocBook5Editors", + "compilationUnitId" : "acm015304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015361jsd", "acm018175jsd" ], + "content" : [ "acm015310jsd" ] + }, + "acm015312jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015312jsd", + "name" : "CurrentDate", + "parentId" : "acm015085jsd", + "content" : [ "acm015319jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015313jsd" : { + "type" : "CodePackage", + "id" : "acm015313jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015314jsd" ] + }, + "acm015314jsd" : { + "type" : "CodePackage", + "id" : "acm015314jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015315jsd" ] + }, + "acm015315jsd" : { + "type" : "CodePackage", + "id" : "acm015315jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015316jsd" ] + }, + "acm015316jsd" : { + "type" : "CodePackage", + "id" : "acm015316jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015317jsd" ] + }, + "acm015317jsd" : { + "type" : "CodePackage", + "id" : "acm015317jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015312jsd" ] + }, + "acm015318jsd" : { + "type" : "ControlElement", + "id" : "acm015318jsd", + "name" : "format" + }, + "acm015319jsd" : { + "type" : "ClassUnit", + "id" : "acm015319jsd", + "name" : "CurrentDate", + "compilationUnitId" : "acm015312jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015318jsd" ] + }, + "acm015320jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015320jsd", + "name" : "DOICheck", + "parentId" : "acm015085jsd", + "content" : [ "acm015327jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015321jsd" : { + "type" : "CodePackage", + "id" : "acm015321jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015322jsd" ] + }, + "acm015322jsd" : { + "type" : "CodePackage", + "id" : "acm015322jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015323jsd" ] + }, + "acm015323jsd" : { + "type" : "CodePackage", + "id" : "acm015323jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015324jsd" ] + }, + "acm015324jsd" : { + "type" : "CodePackage", + "id" : "acm015324jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015325jsd" ] + }, + "acm015325jsd" : { + "type" : "CodePackage", + "id" : "acm015325jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015320jsd" ] + }, + "acm015326jsd" : { + "type" : "ControlElement", + "id" : "acm015326jsd", + "name" : "format" + }, + "acm015327jsd" : { + "type" : "ClassUnit", + "id" : "acm015327jsd", + "name" : "DOICheck", + "compilationUnitId" : "acm015320jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015326jsd" ] + }, + "acm015328jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015328jsd", + "name" : "DOIStrip", + "parentId" : "acm015085jsd", + "content" : [ "acm015335jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015329jsd" : { + "type" : "CodePackage", + "id" : "acm015329jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015330jsd" ] + }, + "acm015330jsd" : { + "type" : "CodePackage", + "id" : "acm015330jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015331jsd" ] + }, + "acm015331jsd" : { + "type" : "CodePackage", + "id" : "acm015331jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015332jsd" ] + }, + "acm015332jsd" : { + "type" : "CodePackage", + "id" : "acm015332jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015333jsd" ] + }, + "acm015333jsd" : { + "type" : "CodePackage", + "id" : "acm015333jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015328jsd" ] + }, + "acm015334jsd" : { + "type" : "ControlElement", + "id" : "acm015334jsd", + "name" : "format" + }, + "acm015335jsd" : { + "type" : "ClassUnit", + "id" : "acm015335jsd", + "name" : "DOIStrip", + "compilationUnitId" : "acm015328jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015334jsd" ] + }, + "acm015336jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015336jsd", + "name" : "DateFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015344jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015337jsd" : { + "type" : "CodePackage", + "id" : "acm015337jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015338jsd" ] + }, + "acm015338jsd" : { + "type" : "CodePackage", + "id" : "acm015338jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015339jsd" ] + }, + "acm015339jsd" : { + "type" : "CodePackage", + "id" : "acm015339jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015340jsd" ] + }, + "acm015340jsd" : { + "type" : "CodePackage", + "id" : "acm015340jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015341jsd" ] + }, + "acm015341jsd" : { + "type" : "CodePackage", + "id" : "acm015341jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015336jsd" ] + }, + "acm015342jsd" : { + "type" : "ControlElement", + "id" : "acm015342jsd", + "name" : "format" + }, + "acm015343jsd" : { + "type" : "ControlElement", + "id" : "acm015343jsd", + "name" : "setArgument" + }, + "acm015344jsd" : { + "type" : "ClassUnit", + "id" : "acm015344jsd", + "name" : "DateFormatter", + "compilationUnitId" : "acm015336jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015342jsd", "acm015343jsd" ] + }, + "acm015345jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015345jsd", + "name" : "Default", + "parentId" : "acm015085jsd", + "content" : [ "acm015353jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015346jsd" : { + "type" : "CodePackage", + "id" : "acm015346jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015347jsd" ] + }, + "acm015347jsd" : { + "type" : "CodePackage", + "id" : "acm015347jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015348jsd" ] + }, + "acm015348jsd" : { + "type" : "CodePackage", + "id" : "acm015348jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015349jsd" ] + }, + "acm015349jsd" : { + "type" : "CodePackage", + "id" : "acm015349jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015350jsd" ] + }, + "acm015350jsd" : { + "type" : "CodePackage", + "id" : "acm015350jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015345jsd" ] + }, + "acm015351jsd" : { + "type" : "ControlElement", + "id" : "acm015351jsd", + "name" : "setArgument" + }, + "acm015352jsd" : { + "type" : "ControlElement", + "id" : "acm015352jsd", + "name" : "format" + }, + "acm015353jsd" : { + "type" : "ClassUnit", + "id" : "acm015353jsd", + "name" : "Default", + "compilationUnitId" : "acm015345jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015351jsd", "acm015352jsd" ] + }, + "acm015354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015354jsd", + "name" : "DocBookAuthorFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015361jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015355jsd" : { + "type" : "CodePackage", + "id" : "acm015355jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015356jsd" ] + }, + "acm015356jsd" : { + "type" : "CodePackage", + "id" : "acm015356jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015357jsd" ] + }, + "acm015357jsd" : { + "type" : "CodePackage", + "id" : "acm015357jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015358jsd" ] + }, + "acm015358jsd" : { + "type" : "CodePackage", + "id" : "acm015358jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015359jsd" ] + }, + "acm015359jsd" : { + "type" : "CodePackage", + "id" : "acm015359jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015354jsd" ] + }, + "acm015360jsd" : { + "type" : "ControlElement", + "id" : "acm015360jsd", + "name" : "addBody" + }, + "acm015361jsd" : { + "type" : "ClassUnit", + "id" : "acm015361jsd", + "name" : "DocBookAuthorFormatter", + "compilationUnitId" : "acm015354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015368jsd", "acm015727jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm015360jsd" ] + }, + "acm015362jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015362jsd", + "name" : "DocBookVersion", + "parentId" : "acm015085jsd", + "content" : [ "acm015368jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015363jsd" : { + "type" : "CodePackage", + "id" : "acm015363jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015364jsd" ] + }, + "acm015364jsd" : { + "type" : "CodePackage", + "id" : "acm015364jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015365jsd" ] + }, + "acm015365jsd" : { + "type" : "CodePackage", + "id" : "acm015365jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015366jsd" ] + }, + "acm015366jsd" : { + "type" : "CodePackage", + "id" : "acm015366jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015367jsd" ] + }, + "acm015367jsd" : { + "type" : "CodePackage", + "id" : "acm015367jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015362jsd" ] + }, + "acm015368jsd" : { + "type" : "ClassUnit", + "id" : "acm015368jsd", + "name" : "DocBookVersion", + "compilationUnitId" : "acm015362jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm015369jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015369jsd", + "name" : "EntryTypeFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015376jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015370jsd" : { + "type" : "CodePackage", + "id" : "acm015370jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015371jsd" ] + }, + "acm015371jsd" : { + "type" : "CodePackage", + "id" : "acm015371jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015372jsd" ] + }, + "acm015372jsd" : { + "type" : "CodePackage", + "id" : "acm015372jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015373jsd" ] + }, + "acm015373jsd" : { + "type" : "CodePackage", + "id" : "acm015373jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015374jsd" ] + }, + "acm015374jsd" : { + "type" : "CodePackage", + "id" : "acm015374jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015369jsd" ] + }, + "acm015375jsd" : { + "type" : "ControlElement", + "id" : "acm015375jsd", + "name" : "format" + }, + "acm015376jsd" : { + "type" : "ClassUnit", + "id" : "acm015376jsd", + "name" : "EntryTypeFormatter", + "compilationUnitId" : "acm015369jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015375jsd" ] + }, + "acm015377jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015377jsd", + "name" : "FileLink", + "parentId" : "acm015085jsd", + "content" : [ "acm015386jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015378jsd" : { + "type" : "CodePackage", + "id" : "acm015378jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015379jsd" ] + }, + "acm015379jsd" : { + "type" : "CodePackage", + "id" : "acm015379jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015380jsd" ] + }, + "acm015380jsd" : { + "type" : "CodePackage", + "id" : "acm015380jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015381jsd" ] + }, + "acm015381jsd" : { + "type" : "CodePackage", + "id" : "acm015381jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015382jsd" ] + }, + "acm015382jsd" : { + "type" : "CodePackage", + "id" : "acm015382jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015377jsd" ] + }, + "acm015383jsd" : { + "type" : "ControlElement", + "id" : "acm015383jsd", + "name" : "FileLink" + }, + "acm015384jsd" : { + "type" : "ControlElement", + "id" : "acm015384jsd", + "name" : "format" + }, + "acm015385jsd" : { + "type" : "ControlElement", + "id" : "acm015385jsd", + "name" : "setArgument" + }, + "acm015386jsd" : { + "type" : "ClassUnit", + "id" : "acm015386jsd", + "name" : "FileLink", + "compilationUnitId" : "acm015377jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ "acm018509jsd" ], + "content" : [ "acm015383jsd", "acm015384jsd", "acm015385jsd" ] + }, + "acm015387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015387jsd", + "name" : "FirstPage", + "parentId" : "acm015085jsd", + "content" : [ "acm015394jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015388jsd" : { + "type" : "CodePackage", + "id" : "acm015388jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015389jsd" ] + }, + "acm015389jsd" : { + "type" : "CodePackage", + "id" : "acm015389jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015390jsd" ] + }, + "acm015390jsd" : { + "type" : "CodePackage", + "id" : "acm015390jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015391jsd" ] + }, + "acm015391jsd" : { + "type" : "CodePackage", + "id" : "acm015391jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015392jsd" ] + }, + "acm015392jsd" : { + "type" : "CodePackage", + "id" : "acm015392jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015387jsd" ] + }, + "acm015393jsd" : { + "type" : "ControlElement", + "id" : "acm015393jsd", + "name" : "format" + }, + "acm015394jsd" : { + "type" : "ClassUnit", + "id" : "acm015394jsd", + "name" : "FirstPage", + "compilationUnitId" : "acm015387jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015393jsd" ] + }, + "acm015395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015395jsd", + "name" : "FormatPagesForHTML", + "parentId" : "acm015085jsd", + "content" : [ "acm015402jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015396jsd" : { + "type" : "CodePackage", + "id" : "acm015396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015397jsd" ] + }, + "acm015397jsd" : { + "type" : "CodePackage", + "id" : "acm015397jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015398jsd" ] + }, + "acm015398jsd" : { + "type" : "CodePackage", + "id" : "acm015398jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015399jsd" ] + }, + "acm015399jsd" : { + "type" : "CodePackage", + "id" : "acm015399jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015400jsd" ] + }, + "acm015400jsd" : { + "type" : "CodePackage", + "id" : "acm015400jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015395jsd" ] + }, + "acm015401jsd" : { + "type" : "ControlElement", + "id" : "acm015401jsd", + "name" : "format" + }, + "acm015402jsd" : { + "type" : "ClassUnit", + "id" : "acm015402jsd", + "name" : "FormatPagesForHTML", + "compilationUnitId" : "acm015395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015401jsd" ] + }, + "acm015403jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015403jsd", + "name" : "FormatPagesForXML", + "parentId" : "acm015085jsd", + "content" : [ "acm015410jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015404jsd" : { + "type" : "CodePackage", + "id" : "acm015404jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015405jsd" ] + }, + "acm015405jsd" : { + "type" : "CodePackage", + "id" : "acm015405jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015406jsd" ] + }, + "acm015406jsd" : { + "type" : "CodePackage", + "id" : "acm015406jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015407jsd" ] + }, + "acm015407jsd" : { + "type" : "CodePackage", + "id" : "acm015407jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015408jsd" ] + }, + "acm015408jsd" : { + "type" : "CodePackage", + "id" : "acm015408jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015403jsd" ] + }, + "acm015409jsd" : { + "type" : "ControlElement", + "id" : "acm015409jsd", + "name" : "format" + }, + "acm015410jsd" : { + "type" : "ClassUnit", + "id" : "acm015410jsd", + "name" : "FormatPagesForXML", + "compilationUnitId" : "acm015403jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015409jsd" ] + }, + "acm015411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015411jsd", + "name" : "GetOpenOfficeType", + "parentId" : "acm015085jsd", + "content" : [ "acm015418jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015412jsd" : { + "type" : "CodePackage", + "id" : "acm015412jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015413jsd" ] + }, + "acm015413jsd" : { + "type" : "CodePackage", + "id" : "acm015413jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015414jsd" ] + }, + "acm015414jsd" : { + "type" : "CodePackage", + "id" : "acm015414jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015415jsd" ] + }, + "acm015415jsd" : { + "type" : "CodePackage", + "id" : "acm015415jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015416jsd" ] + }, + "acm015416jsd" : { + "type" : "CodePackage", + "id" : "acm015416jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015411jsd" ] + }, + "acm015417jsd" : { + "type" : "ControlElement", + "id" : "acm015417jsd", + "name" : "format" + }, + "acm015418jsd" : { + "type" : "ClassUnit", + "id" : "acm015418jsd", + "name" : "GetOpenOfficeType", + "compilationUnitId" : "acm015411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015417jsd" ] + }, + "acm015419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015419jsd", + "name" : "HTMLChars", + "parentId" : "acm015085jsd", + "content" : [ "acm015427jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015420jsd" : { + "type" : "CodePackage", + "id" : "acm015420jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015421jsd" ] + }, + "acm015421jsd" : { + "type" : "CodePackage", + "id" : "acm015421jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015422jsd" ] + }, + "acm015422jsd" : { + "type" : "CodePackage", + "id" : "acm015422jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015423jsd" ] + }, + "acm015423jsd" : { + "type" : "CodePackage", + "id" : "acm015423jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015424jsd" ] + }, + "acm015424jsd" : { + "type" : "CodePackage", + "id" : "acm015424jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015419jsd" ] + }, + "acm015425jsd" : { + "type" : "ControlElement", + "id" : "acm015425jsd", + "name" : "format" + }, + "acm015426jsd" : { + "type" : "ControlElement", + "id" : "acm015426jsd", + "name" : "getHTMLTag" + }, + "acm015427jsd" : { + "type" : "ClassUnit", + "id" : "acm015427jsd", + "name" : "HTMLChars", + "compilationUnitId" : "acm015419jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015425jsd", "acm015426jsd" ] + }, + "acm015428jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015428jsd", + "name" : "HTMLParagraphs", + "parentId" : "acm015085jsd", + "content" : [ "acm015435jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015429jsd" : { + "type" : "CodePackage", + "id" : "acm015429jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015430jsd" ] + }, + "acm015430jsd" : { + "type" : "CodePackage", + "id" : "acm015430jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015431jsd" ] + }, + "acm015431jsd" : { + "type" : "CodePackage", + "id" : "acm015431jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015432jsd" ] + }, + "acm015432jsd" : { + "type" : "CodePackage", + "id" : "acm015432jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015433jsd" ] + }, + "acm015433jsd" : { + "type" : "CodePackage", + "id" : "acm015433jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015428jsd" ] + }, + "acm015434jsd" : { + "type" : "ControlElement", + "id" : "acm015434jsd", + "name" : "format" + }, + "acm015435jsd" : { + "type" : "ClassUnit", + "id" : "acm015435jsd", + "name" : "HTMLParagraphs", + "compilationUnitId" : "acm015428jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015434jsd" ] + }, + "acm015436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015436jsd", + "name" : "IfPlural", + "parentId" : "acm015085jsd", + "content" : [ "acm015444jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015437jsd" : { + "type" : "CodePackage", + "id" : "acm015437jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015438jsd" ] + }, + "acm015438jsd" : { + "type" : "CodePackage", + "id" : "acm015438jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015439jsd" ] + }, + "acm015439jsd" : { + "type" : "CodePackage", + "id" : "acm015439jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015440jsd" ] + }, + "acm015440jsd" : { + "type" : "CodePackage", + "id" : "acm015440jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015441jsd" ] + }, + "acm015441jsd" : { + "type" : "CodePackage", + "id" : "acm015441jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015436jsd" ] + }, + "acm015442jsd" : { + "type" : "ControlElement", + "id" : "acm015442jsd", + "name" : "setArgument" + }, + "acm015443jsd" : { + "type" : "ControlElement", + "id" : "acm015443jsd", + "name" : "format" + }, + "acm015444jsd" : { + "type" : "ClassUnit", + "id" : "acm015444jsd", + "name" : "IfPlural", + "compilationUnitId" : "acm015436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm014970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015442jsd", "acm015443jsd" ] + }, + "acm015445jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015445jsd", + "name" : "Iso690FormatDate", + "parentId" : "acm015085jsd", + "content" : [ "acm015452jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015446jsd" : { + "type" : "CodePackage", + "id" : "acm015446jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015447jsd" ] + }, + "acm015447jsd" : { + "type" : "CodePackage", + "id" : "acm015447jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015448jsd" ] + }, + "acm015448jsd" : { + "type" : "CodePackage", + "id" : "acm015448jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015449jsd" ] + }, + "acm015449jsd" : { + "type" : "CodePackage", + "id" : "acm015449jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015450jsd" ] + }, + "acm015450jsd" : { + "type" : "CodePackage", + "id" : "acm015450jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015445jsd" ] + }, + "acm015451jsd" : { + "type" : "ControlElement", + "id" : "acm015451jsd", + "name" : "format" + }, + "acm015452jsd" : { + "type" : "ClassUnit", + "id" : "acm015452jsd", + "name" : "Iso690FormatDate", + "compilationUnitId" : "acm015445jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015451jsd" ] + }, + "acm015453jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015453jsd", + "name" : "Iso690NamesAuthors", + "parentId" : "acm015085jsd", + "content" : [ "acm015460jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015454jsd" : { + "type" : "CodePackage", + "id" : "acm015454jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015455jsd" ] + }, + "acm015455jsd" : { + "type" : "CodePackage", + "id" : "acm015455jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015456jsd" ] + }, + "acm015456jsd" : { + "type" : "CodePackage", + "id" : "acm015456jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015457jsd" ] + }, + "acm015457jsd" : { + "type" : "CodePackage", + "id" : "acm015457jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015458jsd" ] + }, + "acm015458jsd" : { + "type" : "CodePackage", + "id" : "acm015458jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015453jsd" ] + }, + "acm015459jsd" : { + "type" : "ControlElement", + "id" : "acm015459jsd", + "name" : "format" + }, + "acm015460jsd" : { + "type" : "ClassUnit", + "id" : "acm015460jsd", + "name" : "Iso690NamesAuthors", + "compilationUnitId" : "acm015453jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015459jsd" ] + }, + "acm015461jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015461jsd", + "name" : "JournalAbbreviator", + "parentId" : "acm015085jsd", + "content" : [ "acm015469jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015462jsd" : { + "type" : "CodePackage", + "id" : "acm015462jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015463jsd" ] + }, + "acm015463jsd" : { + "type" : "CodePackage", + "id" : "acm015463jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015464jsd" ] + }, + "acm015464jsd" : { + "type" : "CodePackage", + "id" : "acm015464jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015465jsd" ] + }, + "acm015465jsd" : { + "type" : "CodePackage", + "id" : "acm015465jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015466jsd" ] + }, + "acm015466jsd" : { + "type" : "CodePackage", + "id" : "acm015466jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015461jsd" ] + }, + "acm015467jsd" : { + "type" : "ControlElement", + "id" : "acm015467jsd", + "name" : "JournalAbbreviator" + }, + "acm015468jsd" : { + "type" : "ControlElement", + "id" : "acm015468jsd", + "name" : "format" + }, + "acm015469jsd" : { + "type" : "ClassUnit", + "id" : "acm015469jsd", + "name" : "JournalAbbreviator", + "compilationUnitId" : "acm015461jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm001424jsd" ], + "content" : [ "acm015467jsd", "acm015468jsd" ] + }, + "acm015470jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015470jsd", + "name" : "LastPage", + "parentId" : "acm015085jsd", + "content" : [ "acm015477jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015471jsd" : { + "type" : "CodePackage", + "id" : "acm015471jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015472jsd" ] + }, + "acm015472jsd" : { + "type" : "CodePackage", + "id" : "acm015472jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015473jsd" ] + }, + "acm015473jsd" : { + "type" : "CodePackage", + "id" : "acm015473jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015474jsd" ] + }, + "acm015474jsd" : { + "type" : "CodePackage", + "id" : "acm015474jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015475jsd" ] + }, + "acm015475jsd" : { + "type" : "CodePackage", + "id" : "acm015475jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015470jsd" ] + }, + "acm015476jsd" : { + "type" : "ControlElement", + "id" : "acm015476jsd", + "name" : "format" + }, + "acm015477jsd" : { + "type" : "ClassUnit", + "id" : "acm015477jsd", + "name" : "LastPage", + "compilationUnitId" : "acm015470jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015476jsd" ] + }, + "acm015478jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015478jsd", + "name" : "LatexToUnicodeFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015489jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015479jsd" : { + "type" : "CodePackage", + "id" : "acm015479jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015480jsd" ] + }, + "acm015480jsd" : { + "type" : "CodePackage", + "id" : "acm015480jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015481jsd" ] + }, + "acm015481jsd" : { + "type" : "CodePackage", + "id" : "acm015481jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015482jsd" ] + }, + "acm015482jsd" : { + "type" : "CodePackage", + "id" : "acm015482jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015483jsd" ] + }, + "acm015483jsd" : { + "type" : "CodePackage", + "id" : "acm015483jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015478jsd" ] + }, + "acm015484jsd" : { + "type" : "ControlElement", + "id" : "acm015484jsd", + "name" : "getName" + }, + "acm015485jsd" : { + "type" : "ControlElement", + "id" : "acm015485jsd", + "name" : "getKey" + }, + "acm015486jsd" : { + "type" : "ControlElement", + "id" : "acm015486jsd", + "name" : "format" + }, + "acm015487jsd" : { + "type" : "ControlElement", + "id" : "acm015487jsd", + "name" : "getDescription" + }, + "acm015488jsd" : { + "type" : "ControlElement", + "id" : "acm015488jsd", + "name" : "getExampleInput" + }, + "acm015489jsd" : { + "type" : "ClassUnit", + "id" : "acm015489jsd", + "name" : "LatexToUnicodeFormatter", + "compilationUnitId" : "acm015478jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015484jsd", "acm015485jsd", "acm015486jsd", "acm015487jsd", "acm015488jsd" ] + }, + "acm015490jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015490jsd", + "name" : "MarkdownFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015498jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015491jsd" : { + "type" : "CodePackage", + "id" : "acm015491jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015492jsd" ] + }, + "acm015492jsd" : { + "type" : "CodePackage", + "id" : "acm015492jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015493jsd" ] + }, + "acm015493jsd" : { + "type" : "CodePackage", + "id" : "acm015493jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015494jsd" ] + }, + "acm015494jsd" : { + "type" : "CodePackage", + "id" : "acm015494jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015495jsd" ] + }, + "acm015495jsd" : { + "type" : "CodePackage", + "id" : "acm015495jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015490jsd" ] + }, + "acm015496jsd" : { + "type" : "ControlElement", + "id" : "acm015496jsd", + "name" : "MarkdownFormatter" + }, + "acm015497jsd" : { + "type" : "ControlElement", + "id" : "acm015497jsd", + "name" : "format" + }, + "acm015498jsd" : { + "type" : "ClassUnit", + "id" : "acm015498jsd", + "name" : "MarkdownFormatter", + "compilationUnitId" : "acm015490jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015496jsd", "acm015497jsd" ] + }, + "acm015499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015499jsd", + "name" : "NameFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015510jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015500jsd" : { + "type" : "CodePackage", + "id" : "acm015500jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015501jsd" ] + }, + "acm015501jsd" : { + "type" : "CodePackage", + "id" : "acm015501jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015502jsd" ] + }, + "acm015502jsd" : { + "type" : "CodePackage", + "id" : "acm015502jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015503jsd" ] + }, + "acm015503jsd" : { + "type" : "CodePackage", + "id" : "acm015503jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015504jsd" ] + }, + "acm015504jsd" : { + "type" : "CodePackage", + "id" : "acm015504jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015499jsd" ] + }, + "acm015505jsd" : { + "type" : "ControlElement", + "id" : "acm015505jsd", + "name" : "format" + }, + "acm015506jsd" : { + "type" : "ControlElement", + "id" : "acm015506jsd", + "name" : "format" + }, + "acm015507jsd" : { + "type" : "ControlElement", + "id" : "acm015507jsd", + "name" : "format" + }, + "acm015508jsd" : { + "type" : "ControlElement", + "id" : "acm015508jsd", + "name" : "setParameter" + }, + "acm015509jsd" : { + "type" : "ControlElement", + "id" : "acm015509jsd", + "name" : "getNameFormatters" + }, + "acm015510jsd" : { + "type" : "ClassUnit", + "id" : "acm015510jsd", + "name" : "NameFormatter", + "compilationUnitId" : "acm015499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015522jsd", "acm018175jsd" ], + "content" : [ "acm015505jsd", "acm015506jsd", "acm015507jsd", "acm015508jsd", "acm015509jsd" ] + }, + "acm015511jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015511jsd", + "name" : "NameFormatterPreferences", + "parentId" : "acm015085jsd", + "content" : [ "acm015522jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015512jsd" : { + "type" : "CodePackage", + "id" : "acm015512jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015513jsd" ] + }, + "acm015513jsd" : { + "type" : "CodePackage", + "id" : "acm015513jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015514jsd" ] + }, + "acm015514jsd" : { + "type" : "CodePackage", + "id" : "acm015514jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015515jsd" ] + }, + "acm015515jsd" : { + "type" : "CodePackage", + "id" : "acm015515jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015516jsd" ] + }, + "acm015516jsd" : { + "type" : "CodePackage", + "id" : "acm015516jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015511jsd" ] + }, + "acm015517jsd" : { + "type" : "ControlElement", + "id" : "acm015517jsd", + "name" : "NameFormatterPreferences" + }, + "acm015518jsd" : { + "type" : "ControlElement", + "id" : "acm015518jsd", + "name" : "getNameFormatterKey" + }, + "acm015519jsd" : { + "type" : "ControlElement", + "id" : "acm015519jsd", + "name" : "getNameFormatterValue" + }, + "acm015520jsd" : { + "type" : "ControlElement", + "id" : "acm015520jsd", + "name" : "setNameFormatterKey" + }, + "acm015521jsd" : { + "type" : "ControlElement", + "id" : "acm015521jsd", + "name" : "setNameFormatterValue" + }, + "acm015522jsd" : { + "type" : "ClassUnit", + "id" : "acm015522jsd", + "name" : "NameFormatterPreferences", + "compilationUnitId" : "acm015511jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015517jsd", "acm015518jsd", "acm015519jsd", "acm015520jsd", "acm015521jsd" ] + }, + "acm015523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015523jsd", + "name" : "NoSpaceBetweenAbbreviations", + "parentId" : "acm015085jsd", + "content" : [ "acm015530jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015524jsd" : { + "type" : "CodePackage", + "id" : "acm015524jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015525jsd" ] + }, + "acm015525jsd" : { + "type" : "CodePackage", + "id" : "acm015525jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015526jsd" ] + }, + "acm015526jsd" : { + "type" : "CodePackage", + "id" : "acm015526jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015527jsd" ] + }, + "acm015527jsd" : { + "type" : "CodePackage", + "id" : "acm015527jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015528jsd" ] + }, + "acm015528jsd" : { + "type" : "CodePackage", + "id" : "acm015528jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015523jsd" ] + }, + "acm015529jsd" : { + "type" : "ControlElement", + "id" : "acm015529jsd", + "name" : "format" + }, + "acm015530jsd" : { + "type" : "ClassUnit", + "id" : "acm015530jsd", + "name" : "NoSpaceBetweenAbbreviations", + "compilationUnitId" : "acm015523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015529jsd" ] + }, + "acm015531jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015531jsd", + "name" : "NotFoundFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015540jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015532jsd" : { + "type" : "CodePackage", + "id" : "acm015532jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015533jsd" ] + }, + "acm015533jsd" : { + "type" : "CodePackage", + "id" : "acm015533jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015534jsd" ] + }, + "acm015534jsd" : { + "type" : "CodePackage", + "id" : "acm015534jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015535jsd" ] + }, + "acm015535jsd" : { + "type" : "CodePackage", + "id" : "acm015535jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015536jsd" ] + }, + "acm015536jsd" : { + "type" : "CodePackage", + "id" : "acm015536jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015531jsd" ] + }, + "acm015537jsd" : { + "type" : "ControlElement", + "id" : "acm015537jsd", + "name" : "NotFoundFormatter" + }, + "acm015538jsd" : { + "type" : "ControlElement", + "id" : "acm015538jsd", + "name" : "getNotFound" + }, + "acm015539jsd" : { + "type" : "ControlElement", + "id" : "acm015539jsd", + "name" : "format" + }, + "acm015540jsd" : { + "type" : "ClassUnit", + "id" : "acm015540jsd", + "name" : "NotFoundFormatter", + "compilationUnitId" : "acm015531jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015537jsd", "acm015538jsd", "acm015539jsd" ] + }, + "acm015541jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015541jsd", + "name" : "Number", + "parentId" : "acm015085jsd", + "content" : [ "acm015549jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015542jsd" : { + "type" : "CodePackage", + "id" : "acm015542jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015543jsd" ] + }, + "acm015543jsd" : { + "type" : "CodePackage", + "id" : "acm015543jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015544jsd" ] + }, + "acm015544jsd" : { + "type" : "CodePackage", + "id" : "acm015544jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015545jsd" ] + }, + "acm015545jsd" : { + "type" : "CodePackage", + "id" : "acm015545jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015546jsd" ] + }, + "acm015546jsd" : { + "type" : "CodePackage", + "id" : "acm015546jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015541jsd" ] + }, + "acm015547jsd" : { + "type" : "ControlElement", + "id" : "acm015547jsd", + "name" : "setArgument" + }, + "acm015548jsd" : { + "type" : "ControlElement", + "id" : "acm015548jsd", + "name" : "format" + }, + "acm015549jsd" : { + "type" : "ClassUnit", + "id" : "acm015549jsd", + "name" : "Number", + "compilationUnitId" : "acm015541jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015547jsd", "acm015548jsd" ] + }, + "acm015550jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015550jsd", + "name" : "Ordinal", + "parentId" : "acm015085jsd", + "content" : [ "acm015557jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015551jsd" : { + "type" : "CodePackage", + "id" : "acm015551jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015552jsd" ] + }, + "acm015552jsd" : { + "type" : "CodePackage", + "id" : "acm015552jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015553jsd" ] + }, + "acm015553jsd" : { + "type" : "CodePackage", + "id" : "acm015553jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015554jsd" ] + }, + "acm015554jsd" : { + "type" : "CodePackage", + "id" : "acm015554jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015555jsd" ] + }, + "acm015555jsd" : { + "type" : "CodePackage", + "id" : "acm015555jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015550jsd" ] + }, + "acm015556jsd" : { + "type" : "ControlElement", + "id" : "acm015556jsd", + "name" : "format" + }, + "acm015557jsd" : { + "type" : "ClassUnit", + "id" : "acm015557jsd", + "name" : "Ordinal", + "compilationUnitId" : "acm015550jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015556jsd" ] + }, + "acm015558jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015558jsd", + "name" : "RTFChars", + "parentId" : "acm015085jsd", + "content" : [ "acm015567jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015559jsd" : { + "type" : "CodePackage", + "id" : "acm015559jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015560jsd" ] + }, + "acm015560jsd" : { + "type" : "CodePackage", + "id" : "acm015560jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015561jsd" ] + }, + "acm015561jsd" : { + "type" : "CodePackage", + "id" : "acm015561jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015562jsd" ] + }, + "acm015562jsd" : { + "type" : "CodePackage", + "id" : "acm015562jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015563jsd" ] + }, + "acm015563jsd" : { + "type" : "CodePackage", + "id" : "acm015563jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015558jsd" ] + }, + "acm015564jsd" : { + "type" : "ControlElement", + "id" : "acm015564jsd", + "name" : "format" + }, + "acm015565jsd" : { + "type" : "ControlElement", + "id" : "acm015565jsd", + "name" : "getPart" + }, + "acm015566jsd" : { + "type" : "ControlElement", + "id" : "acm015566jsd", + "name" : "transformSpecialCharacter" + }, + "acm015567jsd" : { + "type" : "ClassUnit", + "id" : "acm015567jsd", + "name" : "RTFChars", + "compilationUnitId" : "acm015558jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015066jsd", "acm017625jsd" ], + "content" : [ "acm015564jsd", "acm015565jsd", "acm015566jsd" ] + }, + "acm015568jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015568jsd", + "name" : "RemoveBrackets", + "parentId" : "acm015085jsd", + "content" : [ "acm015575jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015569jsd" : { + "type" : "CodePackage", + "id" : "acm015569jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015570jsd" ] + }, + "acm015570jsd" : { + "type" : "CodePackage", + "id" : "acm015570jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015571jsd" ] + }, + "acm015571jsd" : { + "type" : "CodePackage", + "id" : "acm015571jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015572jsd" ] + }, + "acm015572jsd" : { + "type" : "CodePackage", + "id" : "acm015572jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015573jsd" ] + }, + "acm015573jsd" : { + "type" : "CodePackage", + "id" : "acm015573jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015568jsd" ] + }, + "acm015574jsd" : { + "type" : "ControlElement", + "id" : "acm015574jsd", + "name" : "format" + }, + "acm015575jsd" : { + "type" : "ClassUnit", + "id" : "acm015575jsd", + "name" : "RemoveBrackets", + "compilationUnitId" : "acm015568jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015574jsd" ] + }, + "acm015576jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015576jsd", + "name" : "RemoveBracketsAddComma", + "parentId" : "acm015085jsd", + "content" : [ "acm015583jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015577jsd" : { + "type" : "CodePackage", + "id" : "acm015577jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015578jsd" ] + }, + "acm015578jsd" : { + "type" : "CodePackage", + "id" : "acm015578jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015579jsd" ] + }, + "acm015579jsd" : { + "type" : "CodePackage", + "id" : "acm015579jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015580jsd" ] + }, + "acm015580jsd" : { + "type" : "CodePackage", + "id" : "acm015580jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015581jsd" ] + }, + "acm015581jsd" : { + "type" : "CodePackage", + "id" : "acm015581jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015576jsd" ] + }, + "acm015582jsd" : { + "type" : "ControlElement", + "id" : "acm015582jsd", + "name" : "format" + }, + "acm015583jsd" : { + "type" : "ClassUnit", + "id" : "acm015583jsd", + "name" : "RemoveBracketsAddComma", + "compilationUnitId" : "acm015576jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015582jsd" ] + }, + "acm015584jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015584jsd", + "name" : "RemoveLatexCommandsFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015591jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015585jsd" : { + "type" : "CodePackage", + "id" : "acm015585jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015586jsd" ] + }, + "acm015586jsd" : { + "type" : "CodePackage", + "id" : "acm015586jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015587jsd" ] + }, + "acm015587jsd" : { + "type" : "CodePackage", + "id" : "acm015587jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015588jsd" ] + }, + "acm015588jsd" : { + "type" : "CodePackage", + "id" : "acm015588jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015589jsd" ] + }, + "acm015589jsd" : { + "type" : "CodePackage", + "id" : "acm015589jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015584jsd" ] + }, + "acm015590jsd" : { + "type" : "ControlElement", + "id" : "acm015590jsd", + "name" : "format" + }, + "acm015591jsd" : { + "type" : "ClassUnit", + "id" : "acm015591jsd", + "name" : "RemoveLatexCommandsFormatter", + "compilationUnitId" : "acm015584jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015590jsd" ] + }, + "acm015592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015592jsd", + "name" : "RemoveTilde", + "parentId" : "acm015085jsd", + "content" : [ "acm015599jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015593jsd" : { + "type" : "CodePackage", + "id" : "acm015593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015594jsd" ] + }, + "acm015594jsd" : { + "type" : "CodePackage", + "id" : "acm015594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015595jsd" ] + }, + "acm015595jsd" : { + "type" : "CodePackage", + "id" : "acm015595jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015596jsd" ] + }, + "acm015596jsd" : { + "type" : "CodePackage", + "id" : "acm015596jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015597jsd" ] + }, + "acm015597jsd" : { + "type" : "CodePackage", + "id" : "acm015597jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015592jsd" ] + }, + "acm015598jsd" : { + "type" : "ControlElement", + "id" : "acm015598jsd", + "name" : "format" + }, + "acm015599jsd" : { + "type" : "ClassUnit", + "id" : "acm015599jsd", + "name" : "RemoveTilde", + "compilationUnitId" : "acm015592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015598jsd" ] + }, + "acm015600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015600jsd", + "name" : "RemoveWhitespace", + "parentId" : "acm015085jsd", + "content" : [ "acm015607jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015601jsd" : { + "type" : "CodePackage", + "id" : "acm015601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015602jsd" ] + }, + "acm015602jsd" : { + "type" : "CodePackage", + "id" : "acm015602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015603jsd" ] + }, + "acm015603jsd" : { + "type" : "CodePackage", + "id" : "acm015603jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015604jsd" ] + }, + "acm015604jsd" : { + "type" : "CodePackage", + "id" : "acm015604jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015605jsd" ] + }, + "acm015605jsd" : { + "type" : "CodePackage", + "id" : "acm015605jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015600jsd" ] + }, + "acm015606jsd" : { + "type" : "ControlElement", + "id" : "acm015606jsd", + "name" : "format" + }, + "acm015607jsd" : { + "type" : "ClassUnit", + "id" : "acm015607jsd", + "name" : "RemoveWhitespace", + "compilationUnitId" : "acm015600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015606jsd" ] + }, + "acm015608jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015608jsd", + "name" : "Replace", + "parentId" : "acm015085jsd", + "content" : [ "acm015616jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015609jsd" : { + "type" : "CodePackage", + "id" : "acm015609jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015610jsd" ] + }, + "acm015610jsd" : { + "type" : "CodePackage", + "id" : "acm015610jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015611jsd" ] + }, + "acm015611jsd" : { + "type" : "CodePackage", + "id" : "acm015611jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015612jsd" ] + }, + "acm015612jsd" : { + "type" : "CodePackage", + "id" : "acm015612jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015613jsd" ] + }, + "acm015613jsd" : { + "type" : "CodePackage", + "id" : "acm015613jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015608jsd" ] + }, + "acm015614jsd" : { + "type" : "ControlElement", + "id" : "acm015614jsd", + "name" : "setArgument" + }, + "acm015615jsd" : { + "type" : "ControlElement", + "id" : "acm015615jsd", + "name" : "format" + }, + "acm015616jsd" : { + "type" : "ClassUnit", + "id" : "acm015616jsd", + "name" : "Replace", + "compilationUnitId" : "acm015608jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm014970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015614jsd", "acm015615jsd" ] + }, + "acm015617jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015617jsd", + "name" : "ReplaceUnicodeLigaturesFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015629jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015618jsd" : { + "type" : "CodePackage", + "id" : "acm015618jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015619jsd" ] + }, + "acm015619jsd" : { + "type" : "CodePackage", + "id" : "acm015619jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015620jsd" ] + }, + "acm015620jsd" : { + "type" : "CodePackage", + "id" : "acm015620jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015621jsd" ] + }, + "acm015621jsd" : { + "type" : "CodePackage", + "id" : "acm015621jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015622jsd" ] + }, + "acm015622jsd" : { + "type" : "CodePackage", + "id" : "acm015622jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015617jsd" ] + }, + "acm015623jsd" : { + "type" : "ControlElement", + "id" : "acm015623jsd", + "name" : "ReplaceUnicodeLigaturesFormatter" + }, + "acm015624jsd" : { + "type" : "ControlElement", + "id" : "acm015624jsd", + "name" : "getName" + }, + "acm015625jsd" : { + "type" : "ControlElement", + "id" : "acm015625jsd", + "name" : "getKey" + }, + "acm015626jsd" : { + "type" : "ControlElement", + "id" : "acm015626jsd", + "name" : "format" + }, + "acm015627jsd" : { + "type" : "ControlElement", + "id" : "acm015627jsd", + "name" : "getDescription" + }, + "acm015628jsd" : { + "type" : "ControlElement", + "id" : "acm015628jsd", + "name" : "getExampleInput" + }, + "acm015629jsd" : { + "type" : "ClassUnit", + "id" : "acm015629jsd", + "name" : "ReplaceUnicodeLigaturesFormatter", + "compilationUnitId" : "acm015617jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011208jsd" ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm017669jsd" ], + "content" : [ "acm015623jsd", "acm015624jsd", "acm015625jsd", "acm015626jsd", "acm015627jsd", "acm015628jsd" ] + }, + "acm015630jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015630jsd", + "name" : "ReplaceWithEscapedDoubleQuotes", + "parentId" : "acm015085jsd", + "content" : [ "acm015637jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015631jsd" : { + "type" : "CodePackage", + "id" : "acm015631jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015632jsd" ] + }, + "acm015632jsd" : { + "type" : "CodePackage", + "id" : "acm015632jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015633jsd" ] + }, + "acm015633jsd" : { + "type" : "CodePackage", + "id" : "acm015633jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015634jsd" ] + }, + "acm015634jsd" : { + "type" : "CodePackage", + "id" : "acm015634jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015635jsd" ] + }, + "acm015635jsd" : { + "type" : "CodePackage", + "id" : "acm015635jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015630jsd" ] + }, + "acm015636jsd" : { + "type" : "ControlElement", + "id" : "acm015636jsd", + "name" : "format" + }, + "acm015637jsd" : { + "type" : "ClassUnit", + "id" : "acm015637jsd", + "name" : "ReplaceWithEscapedDoubleQuotes", + "compilationUnitId" : "acm015630jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015636jsd" ] + }, + "acm015638jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015638jsd", + "name" : "RisAuthors", + "parentId" : "acm015085jsd", + "content" : [ "acm015646jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015639jsd" : { + "type" : "CodePackage", + "id" : "acm015639jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015640jsd" ] + }, + "acm015640jsd" : { + "type" : "CodePackage", + "id" : "acm015640jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015641jsd" ] + }, + "acm015641jsd" : { + "type" : "CodePackage", + "id" : "acm015641jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015642jsd" ] + }, + "acm015642jsd" : { + "type" : "CodePackage", + "id" : "acm015642jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015643jsd" ] + }, + "acm015643jsd" : { + "type" : "CodePackage", + "id" : "acm015643jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015638jsd" ] + }, + "acm015644jsd" : { + "type" : "ControlElement", + "id" : "acm015644jsd", + "name" : "format" + }, + "acm015645jsd" : { + "type" : "ControlElement", + "id" : "acm015645jsd", + "name" : "setArgument" + }, + "acm015646jsd" : { + "type" : "ClassUnit", + "id" : "acm015646jsd", + "name" : "RisAuthors", + "compilationUnitId" : "acm015638jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015059jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015644jsd", "acm015645jsd" ] + }, + "acm015647jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015647jsd", + "name" : "RisKeywords", + "parentId" : "acm015085jsd", + "content" : [ "acm015654jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015648jsd" : { + "type" : "CodePackage", + "id" : "acm015648jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015649jsd" ] + }, + "acm015649jsd" : { + "type" : "CodePackage", + "id" : "acm015649jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015650jsd" ] + }, + "acm015650jsd" : { + "type" : "CodePackage", + "id" : "acm015650jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015651jsd" ] + }, + "acm015651jsd" : { + "type" : "CodePackage", + "id" : "acm015651jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015652jsd" ] + }, + "acm015652jsd" : { + "type" : "CodePackage", + "id" : "acm015652jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015647jsd" ] + }, + "acm015653jsd" : { + "type" : "ControlElement", + "id" : "acm015653jsd", + "name" : "format" + }, + "acm015654jsd" : { + "type" : "ClassUnit", + "id" : "acm015654jsd", + "name" : "RisKeywords", + "compilationUnitId" : "acm015647jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018443jsd", "acm018479jsd" ], + "content" : [ "acm015653jsd" ] + }, + "acm015655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015655jsd", + "name" : "RisMonth", + "parentId" : "acm015085jsd", + "content" : [ "acm015662jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015656jsd" : { + "type" : "CodePackage", + "id" : "acm015656jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015657jsd" ] + }, + "acm015657jsd" : { + "type" : "CodePackage", + "id" : "acm015657jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015658jsd" ] + }, + "acm015658jsd" : { + "type" : "CodePackage", + "id" : "acm015658jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015659jsd" ] + }, + "acm015659jsd" : { + "type" : "CodePackage", + "id" : "acm015659jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015660jsd" ] + }, + "acm015660jsd" : { + "type" : "CodePackage", + "id" : "acm015660jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015655jsd" ] + }, + "acm015661jsd" : { + "type" : "ControlElement", + "id" : "acm015661jsd", + "name" : "format" + }, + "acm015662jsd" : { + "type" : "ClassUnit", + "id" : "acm015662jsd", + "name" : "RisMonth", + "compilationUnitId" : "acm015655jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018525jsd" ], + "content" : [ "acm015661jsd" ] + }, + "acm015663jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015663jsd", + "name" : "ShortMonthFormatter", + "parentId" : "acm015085jsd", + "content" : [ "acm015670jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015664jsd" : { + "type" : "CodePackage", + "id" : "acm015664jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015665jsd" ] + }, + "acm015665jsd" : { + "type" : "CodePackage", + "id" : "acm015665jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015666jsd" ] + }, + "acm015666jsd" : { + "type" : "CodePackage", + "id" : "acm015666jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015667jsd" ] + }, + "acm015667jsd" : { + "type" : "CodePackage", + "id" : "acm015667jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015668jsd" ] + }, + "acm015668jsd" : { + "type" : "CodePackage", + "id" : "acm015668jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015663jsd" ] + }, + "acm015669jsd" : { + "type" : "ControlElement", + "id" : "acm015669jsd", + "name" : "format" + }, + "acm015670jsd" : { + "type" : "ClassUnit", + "id" : "acm015670jsd", + "name" : "ShortMonthFormatter", + "compilationUnitId" : "acm015663jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm018525jsd" ], + "content" : [ "acm015669jsd" ] + }, + "acm015671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015671jsd", + "name" : "ToLowerCase", + "parentId" : "acm015085jsd", + "content" : [ "acm015678jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015672jsd" : { + "type" : "CodePackage", + "id" : "acm015672jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015673jsd" ] + }, + "acm015673jsd" : { + "type" : "CodePackage", + "id" : "acm015673jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015674jsd" ] + }, + "acm015674jsd" : { + "type" : "CodePackage", + "id" : "acm015674jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015675jsd" ] + }, + "acm015675jsd" : { + "type" : "CodePackage", + "id" : "acm015675jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015676jsd" ] + }, + "acm015676jsd" : { + "type" : "CodePackage", + "id" : "acm015676jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015671jsd" ] + }, + "acm015677jsd" : { + "type" : "ControlElement", + "id" : "acm015677jsd", + "name" : "format" + }, + "acm015678jsd" : { + "type" : "ClassUnit", + "id" : "acm015678jsd", + "name" : "ToLowerCase", + "compilationUnitId" : "acm015671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015677jsd" ] + }, + "acm015679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015679jsd", + "name" : "ToUpperCase", + "parentId" : "acm015085jsd", + "content" : [ "acm015686jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015680jsd" : { + "type" : "CodePackage", + "id" : "acm015680jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015681jsd" ] + }, + "acm015681jsd" : { + "type" : "CodePackage", + "id" : "acm015681jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015682jsd" ] + }, + "acm015682jsd" : { + "type" : "CodePackage", + "id" : "acm015682jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015683jsd" ] + }, + "acm015683jsd" : { + "type" : "CodePackage", + "id" : "acm015683jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015684jsd" ] + }, + "acm015684jsd" : { + "type" : "CodePackage", + "id" : "acm015684jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015679jsd" ] + }, + "acm015685jsd" : { + "type" : "ControlElement", + "id" : "acm015685jsd", + "name" : "format" + }, + "acm015686jsd" : { + "type" : "ClassUnit", + "id" : "acm015686jsd", + "name" : "ToUpperCase", + "compilationUnitId" : "acm015679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015685jsd" ] + }, + "acm015687jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015687jsd", + "name" : "WrapContent", + "parentId" : "acm015085jsd", + "content" : [ "acm015695jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015688jsd" : { + "type" : "CodePackage", + "id" : "acm015688jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015689jsd" ] + }, + "acm015689jsd" : { + "type" : "CodePackage", + "id" : "acm015689jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015690jsd" ] + }, + "acm015690jsd" : { + "type" : "CodePackage", + "id" : "acm015690jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015691jsd" ] + }, + "acm015691jsd" : { + "type" : "CodePackage", + "id" : "acm015691jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015692jsd" ] + }, + "acm015692jsd" : { + "type" : "CodePackage", + "id" : "acm015692jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015687jsd" ] + }, + "acm015693jsd" : { + "type" : "ControlElement", + "id" : "acm015693jsd", + "name" : "setArgument" + }, + "acm015694jsd" : { + "type" : "ControlElement", + "id" : "acm015694jsd", + "name" : "format" + }, + "acm015695jsd" : { + "type" : "ClassUnit", + "id" : "acm015695jsd", + "name" : "WrapContent", + "compilationUnitId" : "acm015687jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm014970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015693jsd", "acm015694jsd" ] + }, + "acm015696jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015696jsd", + "name" : "WrapFileLinks", + "parentId" : "acm015085jsd", + "content" : [ "acm015711jsd", "acm015716jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015697jsd" : { + "type" : "CodePackage", + "id" : "acm015697jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015698jsd" ] + }, + "acm015698jsd" : { + "type" : "CodePackage", + "id" : "acm015698jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015699jsd" ] + }, + "acm015699jsd" : { + "type" : "CodePackage", + "id" : "acm015699jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015700jsd" ] + }, + "acm015700jsd" : { + "type" : "CodePackage", + "id" : "acm015700jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015701jsd" ] + }, + "acm015701jsd" : { + "type" : "CodePackage", + "id" : "acm015701jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015696jsd" ] + }, + "acm015702jsd" : { + "type" : "ControlElement", + "id" : "acm015702jsd", + "name" : "WrapFileLinks" + }, + "acm015703jsd" : { + "type" : "ControlElement", + "id" : "acm015703jsd", + "name" : "parseFormatString" + }, + "acm015704jsd" : { + "type" : "ControlElement", + "id" : "acm015704jsd", + "name" : "setArgument" + }, + "acm015705jsd" : { + "type" : "ControlElement", + "id" : "acm015705jsd", + "name" : "format" + }, + "acm015706jsd" : { + "type" : "ControlElement", + "id" : "acm015706jsd", + "name" : "replaceStrings" + }, + "acm015707jsd" : { + "type" : "ControlElement", + "id" : "acm015707jsd", + "name" : "FormatEntry" + }, + "acm015708jsd" : { + "type" : "ControlElement", + "id" : "acm015708jsd", + "name" : "FormatEntry" + }, + "acm015709jsd" : { + "type" : "ControlElement", + "id" : "acm015709jsd", + "name" : "getType" + }, + "acm015710jsd" : { + "type" : "ControlElement", + "id" : "acm015710jsd", + "name" : "getString" + }, + "acm015711jsd" : { + "type" : "ClassUnit", + "id" : "acm015711jsd", + "name" : "WrapFileLinks", + "compilationUnitId" : "acm015696jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm014970jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015716jsd", "acm018509jsd" ], + "content" : [ "acm015702jsd", "acm015703jsd", "acm015704jsd", "acm015705jsd", "acm015706jsd", "acm015707jsd", "acm015708jsd", "acm015709jsd", "acm015710jsd" ] + }, + "acm015712jsd" : { + "type" : "ControlElement", + "id" : "acm015712jsd", + "name" : "FormatEntry" + }, + "acm015713jsd" : { + "type" : "ControlElement", + "id" : "acm015713jsd", + "name" : "FormatEntry" + }, + "acm015714jsd" : { + "type" : "ControlElement", + "id" : "acm015714jsd", + "name" : "getType" + }, + "acm015715jsd" : { + "type" : "ControlElement", + "id" : "acm015715jsd", + "name" : "getString" + }, + "acm015716jsd" : { + "type" : "ClassUnit", + "id" : "acm015716jsd", + "name" : "FormatEntry", + "compilationUnitId" : "acm015696jsd", + "parentDatatypeId" : "acm015711jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015712jsd", "acm015713jsd", "acm015714jsd", "acm015715jsd" ] + }, + "acm015717jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015717jsd", + "name" : "XMLChars", + "parentId" : "acm015085jsd", + "content" : [ "acm015727jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015718jsd" : { + "type" : "CodePackage", + "id" : "acm015718jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015719jsd" ] + }, + "acm015719jsd" : { + "type" : "CodePackage", + "id" : "acm015719jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015720jsd" ] + }, + "acm015720jsd" : { + "type" : "CodePackage", + "id" : "acm015720jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015721jsd" ] + }, + "acm015721jsd" : { + "type" : "CodePackage", + "id" : "acm015721jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm015722jsd" ] + }, + "acm015722jsd" : { + "type" : "CodePackage", + "id" : "acm015722jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm015717jsd" ] + }, + "acm015723jsd" : { + "type" : "ControlElement", + "id" : "acm015723jsd", + "name" : "format" + }, + "acm015724jsd" : { + "type" : "ControlElement", + "id" : "acm015724jsd", + "name" : "removeLatexCommands" + }, + "acm015725jsd" : { + "type" : "ControlElement", + "id" : "acm015725jsd", + "name" : "firstFormat" + }, + "acm015726jsd" : { + "type" : "ControlElement", + "id" : "acm015726jsd", + "name" : "restFormat" + }, + "acm015727jsd" : { + "type" : "ClassUnit", + "id" : "acm015727jsd", + "name" : "XMLChars", + "compilationUnitId" : "acm015717jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ "acm015489jsd", "acm017677jsd" ], + "content" : [ "acm015723jsd", "acm015724jsd", "acm015725jsd", "acm015726jsd" ] + }, + "acm015728jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015728jsd", + "name" : "LogMessages", + "parentId" : "acm015732jsd", + "content" : [ "acm015738jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "logging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015729jsd" : { + "type" : "CodePackage", + "id" : "acm015729jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015730jsd" ] + }, + "acm015730jsd" : { + "type" : "CodePackage", + "id" : "acm015730jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015731jsd" ] + }, + "acm015731jsd" : { + "type" : "CodePackage", + "id" : "acm015731jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015732jsd" ] + }, + "acm015732jsd" : { + "type" : "CodePackage", + "id" : "acm015732jsd", + "name" : "logging", + "parentId" : "acm001340jsd", + "content" : [ "acm015728jsd" ] + }, + "acm015733jsd" : { + "type" : "ControlElement", + "id" : "acm015733jsd", + "name" : "LogMessages" + }, + "acm015734jsd" : { + "type" : "ControlElement", + "id" : "acm015734jsd", + "name" : "getInstance" + }, + "acm015735jsd" : { + "type" : "ControlElement", + "id" : "acm015735jsd", + "name" : "getMessages" + }, + "acm015736jsd" : { + "type" : "ControlElement", + "id" : "acm015736jsd", + "name" : "add" + }, + "acm015737jsd" : { + "type" : "ControlElement", + "id" : "acm015737jsd", + "name" : "clear" + }, + "acm015738jsd" : { + "type" : "ClassUnit", + "id" : "acm015738jsd", + "name" : "LogMessages", + "compilationUnitId" : "acm015728jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015738jsd" ], + "content" : [ "acm015733jsd", "acm015734jsd", "acm015735jsd", "acm015736jsd", "acm015737jsd" ] + }, + "acm015739jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015739jsd", + "name" : "BibTeXConverter", + "parentId" : "acm015743jsd", + "content" : [ "acm015749jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015740jsd" : { + "type" : "CodePackage", + "id" : "acm015740jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015741jsd" ] + }, + "acm015741jsd" : { + "type" : "CodePackage", + "id" : "acm015741jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015742jsd" ] + }, + "acm015742jsd" : { + "type" : "CodePackage", + "id" : "acm015742jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015743jsd" ] + }, + "acm015743jsd" : { + "type" : "CodePackage", + "id" : "acm015743jsd", + "name" : "msbib", + "parentId" : "acm001340jsd", + "content" : [ "acm015739jsd", "acm015750jsd", "acm015759jsd", "acm015770jsd", "acm015789jsd", "acm015795jsd", "acm015808jsd", "acm015822jsd", "acm027156jsd", "acm027163jsd", "acm027175jsd" ] + }, + "acm015744jsd" : { + "type" : "ControlElement", + "id" : "acm015744jsd", + "name" : "BibTeXConverter" + }, + "acm015745jsd" : { + "type" : "ControlElement", + "id" : "acm015745jsd", + "name" : "convert" + }, + "acm015746jsd" : { + "type" : "ControlElement", + "id" : "acm015746jsd", + "name" : "addAuthor" + }, + "acm015747jsd" : { + "type" : "ControlElement", + "id" : "acm015747jsd", + "name" : "parseSingleStandardNumber" + }, + "acm015748jsd" : { + "type" : "ControlElement", + "id" : "acm015748jsd", + "name" : "parseStandardNumber" + }, + "acm015749jsd" : { + "type" : "ClassUnit", + "id" : "acm015749jsd", + "name" : "BibTeXConverter", + "compilationUnitId" : "acm015739jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015788jsd", "acm015821jsd", "acm018267jsd", "acm018525jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm015744jsd", "acm015745jsd", "acm015746jsd", "acm015747jsd", "acm015748jsd" ] + }, + "acm015750jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015750jsd", + "name" : "MSBibConverter", + "parentId" : "acm015743jsd", + "content" : [ "acm015758jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015751jsd" : { + "type" : "CodePackage", + "id" : "acm015751jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015752jsd" ] + }, + "acm015752jsd" : { + "type" : "CodePackage", + "id" : "acm015752jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015753jsd" ] + }, + "acm015753jsd" : { + "type" : "CodePackage", + "id" : "acm015753jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015754jsd" ] + }, + "acm015754jsd" : { + "type" : "CodePackage", + "id" : "acm015754jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015750jsd" ] + }, + "acm015755jsd" : { + "type" : "ControlElement", + "id" : "acm015755jsd", + "name" : "MSBibConverter" + }, + "acm015756jsd" : { + "type" : "ControlElement", + "id" : "acm015756jsd", + "name" : "convert" + }, + "acm015757jsd" : { + "type" : "ControlElement", + "id" : "acm015757jsd", + "name" : "getAuthors" + }, + "acm015758jsd" : { + "type" : "ClassUnit", + "id" : "acm015758jsd", + "name" : "MSBibConverter", + "compilationUnitId" : "acm015750jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015788jsd", "acm015821jsd", "acm018138jsd", "acm018175jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm015755jsd", "acm015756jsd", "acm015757jsd" ] + }, + "acm015759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015759jsd", + "name" : "MSBibDatabase", + "parentId" : "acm015743jsd", + "content" : [ "acm015769jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015760jsd" : { + "type" : "CodePackage", + "id" : "acm015760jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015761jsd" ] + }, + "acm015761jsd" : { + "type" : "CodePackage", + "id" : "acm015761jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015762jsd" ] + }, + "acm015762jsd" : { + "type" : "CodePackage", + "id" : "acm015762jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015763jsd" ] + }, + "acm015763jsd" : { + "type" : "CodePackage", + "id" : "acm015763jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015759jsd" ] + }, + "acm015764jsd" : { + "type" : "ControlElement", + "id" : "acm015764jsd", + "name" : "MSBibDatabase" + }, + "acm015765jsd" : { + "type" : "ControlElement", + "id" : "acm015765jsd", + "name" : "MSBibDatabase" + }, + "acm015766jsd" : { + "type" : "ControlElement", + "id" : "acm015766jsd", + "name" : "importEntriesFromXml" + }, + "acm015767jsd" : { + "type" : "ControlElement", + "id" : "acm015767jsd", + "name" : "addEntriesForExport" + }, + "acm015768jsd" : { + "type" : "ControlElement", + "id" : "acm015768jsd", + "name" : "getDomForExport" + }, + "acm015769jsd" : { + "type" : "ClassUnit", + "id" : "acm015769jsd", + "name" : "MSBibDatabase", + "compilationUnitId" : "acm015759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015769jsd", "acm015788jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm015764jsd", "acm015765jsd", "acm015766jsd", "acm015767jsd", "acm015768jsd" ] + }, + "acm015770jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015770jsd", + "name" : "MSBibEntry", + "parentId" : "acm015743jsd", + "content" : [ "acm015788jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015771jsd" : { + "type" : "CodePackage", + "id" : "acm015771jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015772jsd" ] + }, + "acm015772jsd" : { + "type" : "CodePackage", + "id" : "acm015772jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015773jsd" ] + }, + "acm015773jsd" : { + "type" : "CodePackage", + "id" : "acm015773jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015774jsd" ] + }, + "acm015774jsd" : { + "type" : "CodePackage", + "id" : "acm015774jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015770jsd" ] + }, + "acm015775jsd" : { + "type" : "ControlElement", + "id" : "acm015775jsd", + "name" : "MSBibEntry" + }, + "acm015776jsd" : { + "type" : "ControlElement", + "id" : "acm015776jsd", + "name" : "MSBibEntry" + }, + "acm015777jsd" : { + "type" : "ControlElement", + "id" : "acm015777jsd", + "name" : "getType" + }, + "acm015778jsd" : { + "type" : "ControlElement", + "id" : "acm015778jsd", + "name" : "getCiteKey" + }, + "acm015779jsd" : { + "type" : "ControlElement", + "id" : "acm015779jsd", + "name" : "getXmlElementTextContent" + }, + "acm015780jsd" : { + "type" : "ControlElement", + "id" : "acm015780jsd", + "name" : "populateFromXml" + }, + "acm015781jsd" : { + "type" : "ControlElement", + "id" : "acm015781jsd", + "name" : "getAuthors" + }, + "acm015782jsd" : { + "type" : "ControlElement", + "id" : "acm015782jsd", + "name" : "getSpecificAuthors" + }, + "acm015783jsd" : { + "type" : "ControlElement", + "id" : "acm015783jsd", + "name" : "getEntryDom" + }, + "acm015784jsd" : { + "type" : "ControlElement", + "id" : "acm015784jsd", + "name" : "addField" + }, + "acm015785jsd" : { + "type" : "ControlElement", + "id" : "acm015785jsd", + "name" : "addAuthor" + }, + "acm015786jsd" : { + "type" : "ControlElement", + "id" : "acm015786jsd", + "name" : "addDateAcessedFields" + }, + "acm015787jsd" : { + "type" : "ControlElement", + "id" : "acm015787jsd", + "name" : "addAddress" + }, + "acm015788jsd" : { + "type" : "ClassUnit", + "id" : "acm015788jsd", + "name" : "MSBibEntry", + "compilationUnitId" : "acm015770jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015821jsd", "acm015832jsd", "acm018138jsd", "acm018175jsd", "acm018401jsd" ], + "content" : [ "acm015775jsd", "acm015776jsd", "acm015777jsd", "acm015778jsd", "acm015779jsd", "acm015780jsd", "acm015781jsd", "acm015782jsd", "acm015783jsd", "acm015784jsd", "acm015785jsd", "acm015786jsd", "acm015787jsd" ] + }, + "acm015789jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015789jsd", + "name" : "MSBibEntryType", + "parentId" : "acm015743jsd", + "content" : [ "acm015794jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015790jsd" : { + "type" : "CodePackage", + "id" : "acm015790jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015791jsd" ] + }, + "acm015791jsd" : { + "type" : "CodePackage", + "id" : "acm015791jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015792jsd" ] + }, + "acm015792jsd" : { + "type" : "CodePackage", + "id" : "acm015792jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015793jsd" ] + }, + "acm015793jsd" : { + "type" : "CodePackage", + "id" : "acm015793jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015789jsd" ] + }, + "acm015794jsd" : { + "type" : "ClassUnit", + "id" : "acm015794jsd", + "name" : "MSBibEntryType", + "compilationUnitId" : "acm015789jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm015795jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015795jsd", + "name" : "MSBibMapping", + "parentId" : "acm015743jsd", + "content" : [ "acm015807jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015796jsd" : { + "type" : "CodePackage", + "id" : "acm015796jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015797jsd" ] + }, + "acm015797jsd" : { + "type" : "CodePackage", + "id" : "acm015797jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015798jsd" ] + }, + "acm015798jsd" : { + "type" : "CodePackage", + "id" : "acm015798jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015799jsd" ] + }, + "acm015799jsd" : { + "type" : "CodePackage", + "id" : "acm015799jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015795jsd" ] + }, + "acm015800jsd" : { + "type" : "ControlElement", + "id" : "acm015800jsd", + "name" : "MSBibMapping" + }, + "acm015801jsd" : { + "type" : "ControlElement", + "id" : "acm015801jsd", + "name" : "getBiblatexEntryType" + }, + "acm015802jsd" : { + "type" : "ControlElement", + "id" : "acm015802jsd", + "name" : "getMSBibEntryType" + }, + "acm015803jsd" : { + "type" : "ControlElement", + "id" : "acm015803jsd", + "name" : "getLCID" + }, + "acm015804jsd" : { + "type" : "ControlElement", + "id" : "acm015804jsd", + "name" : "getLanguage" + }, + "acm015805jsd" : { + "type" : "ControlElement", + "id" : "acm015805jsd", + "name" : "getMSBibField" + }, + "acm015806jsd" : { + "type" : "ControlElement", + "id" : "acm015806jsd", + "name" : "getBibTeXField" + }, + "acm015807jsd" : { + "type" : "ClassUnit", + "id" : "acm015807jsd", + "name" : "MSBibMapping", + "compilationUnitId" : "acm015795jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015794jsd", "acm018673jsd", "acm018813jsd", "acm019005jsd" ], + "content" : [ "acm015800jsd", "acm015801jsd", "acm015802jsd", "acm015803jsd", "acm015804jsd", "acm015805jsd", "acm015806jsd" ] + }, + "acm015808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015808jsd", + "name" : "MsBibAuthor", + "parentId" : "acm015743jsd", + "content" : [ "acm015821jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015809jsd" : { + "type" : "CodePackage", + "id" : "acm015809jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015810jsd" ] + }, + "acm015810jsd" : { + "type" : "CodePackage", + "id" : "acm015810jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015811jsd" ] + }, + "acm015811jsd" : { + "type" : "CodePackage", + "id" : "acm015811jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015812jsd" ] + }, + "acm015812jsd" : { + "type" : "CodePackage", + "id" : "acm015812jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015808jsd" ] + }, + "acm015813jsd" : { + "type" : "ControlElement", + "id" : "acm015813jsd", + "name" : "MsBibAuthor" + }, + "acm015814jsd" : { + "type" : "ControlElement", + "id" : "acm015814jsd", + "name" : "MsBibAuthor" + }, + "acm015815jsd" : { + "type" : "ControlElement", + "id" : "acm015815jsd", + "name" : "getFirstName" + }, + "acm015816jsd" : { + "type" : "ControlElement", + "id" : "acm015816jsd", + "name" : "getMiddleName" + }, + "acm015817jsd" : { + "type" : "ControlElement", + "id" : "acm015817jsd", + "name" : "getLastName" + }, + "acm015818jsd" : { + "type" : "ControlElement", + "id" : "acm015818jsd", + "name" : "getFirstLast" + }, + "acm015819jsd" : { + "type" : "ControlElement", + "id" : "acm015819jsd", + "name" : "getLastFirst" + }, + "acm015820jsd" : { + "type" : "ControlElement", + "id" : "acm015820jsd", + "name" : "isCorporate" + }, + "acm015821jsd" : { + "type" : "ClassUnit", + "id" : "acm015821jsd", + "name" : "MsBibAuthor", + "compilationUnitId" : "acm015808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018138jsd" ], + "content" : [ "acm015813jsd", "acm015814jsd", "acm015815jsd", "acm015816jsd", "acm015817jsd", "acm015818jsd", "acm015819jsd", "acm015820jsd" ] + }, + "acm015822jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015822jsd", + "name" : "PageNumbers", + "parentId" : "acm015743jsd", + "content" : [ "acm015832jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015823jsd" : { + "type" : "CodePackage", + "id" : "acm015823jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015824jsd" ] + }, + "acm015824jsd" : { + "type" : "CodePackage", + "id" : "acm015824jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015825jsd" ] + }, + "acm015825jsd" : { + "type" : "CodePackage", + "id" : "acm015825jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015826jsd" ] + }, + "acm015826jsd" : { + "type" : "CodePackage", + "id" : "acm015826jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm015822jsd" ] + }, + "acm015827jsd" : { + "type" : "ControlElement", + "id" : "acm015827jsd", + "name" : "PageNumbers" + }, + "acm015828jsd" : { + "type" : "ControlElement", + "id" : "acm015828jsd", + "name" : "parsePageNums" + }, + "acm015829jsd" : { + "type" : "ControlElement", + "id" : "acm015829jsd", + "name" : "getDOMrepresentation" + }, + "acm015830jsd" : { + "type" : "ControlElement", + "id" : "acm015830jsd", + "name" : "toString" + }, + "acm015831jsd" : { + "type" : "ControlElement", + "id" : "acm015831jsd", + "name" : "toString" + }, + "acm015832jsd" : { + "type" : "ClassUnit", + "id" : "acm015832jsd", + "name" : "PageNumbers", + "compilationUnitId" : "acm015822jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015827jsd", "acm015828jsd", "acm015829jsd", "acm015830jsd", "acm015831jsd" ] + }, + "acm015833jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015833jsd", + "name" : "ProgressInputStream", + "parentId" : "acm015837jsd", + "content" : [ "acm015851jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015834jsd" : { + "type" : "CodePackage", + "id" : "acm015834jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015835jsd" ] + }, + "acm015835jsd" : { + "type" : "CodePackage", + "id" : "acm015835jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015836jsd" ] + }, + "acm015836jsd" : { + "type" : "CodePackage", + "id" : "acm015836jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015837jsd" ] + }, + "acm015837jsd" : { + "type" : "CodePackage", + "id" : "acm015837jsd", + "name" : "net", + "parentId" : "acm001340jsd", + "content" : [ "acm015833jsd", "acm015852jsd", "acm015859jsd", "acm015886jsd", "acm015894jsd", "acm027185jsd", "acm027190jsd", "acm027197jsd", "acm027217jsd", "acm015932jsd" ] + }, + "acm015838jsd" : { + "type" : "ControlElement", + "id" : "acm015838jsd", + "name" : "ProgressInputStream" + }, + "acm015839jsd" : { + "type" : "ControlElement", + "id" : "acm015839jsd", + "name" : "getTotalNumBytesRead" + }, + "acm015840jsd" : { + "type" : "ControlElement", + "id" : "acm015840jsd", + "name" : "totalNumBytesReadProperty" + }, + "acm015841jsd" : { + "type" : "ControlElement", + "id" : "acm015841jsd", + "name" : "getProgress" + }, + "acm015842jsd" : { + "type" : "ControlElement", + "id" : "acm015842jsd", + "name" : "progressProperty" + }, + "acm015843jsd" : { + "type" : "ControlElement", + "id" : "acm015843jsd", + "name" : "getMaxNumBytes" + }, + "acm015844jsd" : { + "type" : "ControlElement", + "id" : "acm015844jsd", + "name" : "read" + }, + "acm015845jsd" : { + "type" : "ControlElement", + "id" : "acm015845jsd", + "name" : "read" + }, + "acm015846jsd" : { + "type" : "ControlElement", + "id" : "acm015846jsd", + "name" : "skip" + }, + "acm015847jsd" : { + "type" : "ControlElement", + "id" : "acm015847jsd", + "name" : "mark" + }, + "acm015848jsd" : { + "type" : "ControlElement", + "id" : "acm015848jsd", + "name" : "reset" + }, + "acm015849jsd" : { + "type" : "ControlElement", + "id" : "acm015849jsd", + "name" : "markSupported" + }, + "acm015850jsd" : { + "type" : "ControlElement", + "id" : "acm015850jsd", + "name" : "updateProgress" + }, + "acm015851jsd" : { + "type" : "ClassUnit", + "id" : "acm015851jsd", + "name" : "ProgressInputStream", + "compilationUnitId" : "acm015833jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015838jsd", "acm015839jsd", "acm015840jsd", "acm015841jsd", "acm015842jsd", "acm015843jsd", "acm015844jsd", "acm015845jsd", "acm015846jsd", "acm015847jsd", "acm015848jsd", "acm015849jsd", "acm015850jsd" ] + }, + "acm015852jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015852jsd", + "name" : "ProxyAuthenticator", + "parentId" : "acm015837jsd", + "content" : [ "acm015858jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015853jsd" : { + "type" : "CodePackage", + "id" : "acm015853jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015854jsd" ] + }, + "acm015854jsd" : { + "type" : "CodePackage", + "id" : "acm015854jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015855jsd" ] + }, + "acm015855jsd" : { + "type" : "CodePackage", + "id" : "acm015855jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015856jsd" ] + }, + "acm015856jsd" : { + "type" : "CodePackage", + "id" : "acm015856jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015852jsd" ] + }, + "acm015857jsd" : { + "type" : "ControlElement", + "id" : "acm015857jsd", + "name" : "getPasswordAuthentication" + }, + "acm015858jsd" : { + "type" : "ClassUnit", + "id" : "acm015858jsd", + "name" : "ProxyAuthenticator", + "compilationUnitId" : "acm015852jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015857jsd" ] + }, + "acm015859jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015859jsd", + "name" : "ProxyPreferences", + "parentId" : "acm015837jsd", + "content" : [ "acm015885jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015860jsd" : { + "type" : "CodePackage", + "id" : "acm015860jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015861jsd" ] + }, + "acm015861jsd" : { + "type" : "CodePackage", + "id" : "acm015861jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015862jsd" ] + }, + "acm015862jsd" : { + "type" : "CodePackage", + "id" : "acm015862jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015863jsd" ] + }, + "acm015863jsd" : { + "type" : "CodePackage", + "id" : "acm015863jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015859jsd" ] + }, + "acm015864jsd" : { + "type" : "ControlElement", + "id" : "acm015864jsd", + "name" : "ProxyPreferences" + }, + "acm015865jsd" : { + "type" : "ControlElement", + "id" : "acm015865jsd", + "name" : "shouldUseProxy" + }, + "acm015866jsd" : { + "type" : "ControlElement", + "id" : "acm015866jsd", + "name" : "useProxyProperty" + }, + "acm015867jsd" : { + "type" : "ControlElement", + "id" : "acm015867jsd", + "name" : "setUseProxy" + }, + "acm015868jsd" : { + "type" : "ControlElement", + "id" : "acm015868jsd", + "name" : "getHostname" + }, + "acm015869jsd" : { + "type" : "ControlElement", + "id" : "acm015869jsd", + "name" : "hostnameProperty" + }, + "acm015870jsd" : { + "type" : "ControlElement", + "id" : "acm015870jsd", + "name" : "setHostname" + }, + "acm015871jsd" : { + "type" : "ControlElement", + "id" : "acm015871jsd", + "name" : "getPort" + }, + "acm015872jsd" : { + "type" : "ControlElement", + "id" : "acm015872jsd", + "name" : "portProperty" + }, + "acm015873jsd" : { + "type" : "ControlElement", + "id" : "acm015873jsd", + "name" : "setPort" + }, + "acm015874jsd" : { + "type" : "ControlElement", + "id" : "acm015874jsd", + "name" : "shouldUseAuthentication" + }, + "acm015875jsd" : { + "type" : "ControlElement", + "id" : "acm015875jsd", + "name" : "useAuthenticationProperty" + }, + "acm015876jsd" : { + "type" : "ControlElement", + "id" : "acm015876jsd", + "name" : "setUseAuthentication" + }, + "acm015877jsd" : { + "type" : "ControlElement", + "id" : "acm015877jsd", + "name" : "getUsername" + }, + "acm015878jsd" : { + "type" : "ControlElement", + "id" : "acm015878jsd", + "name" : "usernameProperty" + }, + "acm015879jsd" : { + "type" : "ControlElement", + "id" : "acm015879jsd", + "name" : "setUsername" + }, + "acm015880jsd" : { + "type" : "ControlElement", + "id" : "acm015880jsd", + "name" : "getPassword" + }, + "acm015881jsd" : { + "type" : "ControlElement", + "id" : "acm015881jsd", + "name" : "passwordProperty" + }, + "acm015882jsd" : { + "type" : "ControlElement", + "id" : "acm015882jsd", + "name" : "setPassword" + }, + "acm015883jsd" : { + "type" : "ControlElement", + "id" : "acm015883jsd", + "name" : "equals" + }, + "acm015884jsd" : { + "type" : "ControlElement", + "id" : "acm015884jsd", + "name" : "hashCode" + }, + "acm015885jsd" : { + "type" : "ClassUnit", + "id" : "acm015885jsd", + "name" : "ProxyPreferences", + "compilationUnitId" : "acm015859jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015885jsd" ], + "content" : [ "acm015864jsd", "acm015865jsd", "acm015866jsd", "acm015867jsd", "acm015868jsd", "acm015869jsd", "acm015870jsd", "acm015871jsd", "acm015872jsd", "acm015873jsd", "acm015874jsd", "acm015875jsd", "acm015876jsd", "acm015877jsd", "acm015878jsd", "acm015879jsd", "acm015880jsd", "acm015881jsd", "acm015882jsd", "acm015883jsd", "acm015884jsd" ] + }, + "acm015886jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015886jsd", + "name" : "ProxyRegisterer", + "parentId" : "acm015837jsd", + "content" : [ "acm015893jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015887jsd" : { + "type" : "CodePackage", + "id" : "acm015887jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015888jsd" ] + }, + "acm015888jsd" : { + "type" : "CodePackage", + "id" : "acm015888jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015889jsd" ] + }, + "acm015889jsd" : { + "type" : "CodePackage", + "id" : "acm015889jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015890jsd" ] + }, + "acm015890jsd" : { + "type" : "CodePackage", + "id" : "acm015890jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015886jsd" ] + }, + "acm015891jsd" : { + "type" : "ControlElement", + "id" : "acm015891jsd", + "name" : "ProxyRegisterer" + }, + "acm015892jsd" : { + "type" : "ControlElement", + "id" : "acm015892jsd", + "name" : "register" + }, + "acm015893jsd" : { + "type" : "ClassUnit", + "id" : "acm015893jsd", + "name" : "ProxyRegisterer", + "compilationUnitId" : "acm015886jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015885jsd" ], + "content" : [ "acm015891jsd", "acm015892jsd" ] + }, + "acm015894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015894jsd", + "name" : "URLDownload", + "parentId" : "acm015837jsd", + "content" : [ "acm015926jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015895jsd" : { + "type" : "CodePackage", + "id" : "acm015895jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015896jsd" ] + }, + "acm015896jsd" : { + "type" : "CodePackage", + "id" : "acm015896jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015897jsd" ] + }, + "acm015897jsd" : { + "type" : "CodePackage", + "id" : "acm015897jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015898jsd" ] + }, + "acm015898jsd" : { + "type" : "CodePackage", + "id" : "acm015898jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015894jsd" ] + }, + "acm015899jsd" : { + "type" : "ControlElement", + "id" : "acm015899jsd", + "name" : "URLDownload" + }, + "acm015900jsd" : { + "type" : "ControlElement", + "id" : "acm015900jsd", + "name" : "URLDownload" + }, + "acm015901jsd" : { + "type" : "ControlElement", + "id" : "acm015901jsd", + "name" : "bypassSSLVerification" + }, + "acm015902jsd" : { + "type" : "ControlElement", + "id" : "acm015902jsd", + "name" : "checkClientTrusted" + }, + "acm015903jsd" : { + "type" : "ControlElement", + "id" : "acm015903jsd", + "name" : "checkServerTrusted" + }, + "acm015904jsd" : { + "type" : "ControlElement", + "id" : "acm015904jsd", + "name" : "getAcceptedIssuers" + }, + "acm015905jsd" : { + "type" : "ControlElement", + "id" : "acm015905jsd", + "name" : "setSSLVerification" + }, + "acm015906jsd" : { + "type" : "ControlElement", + "id" : "acm015906jsd", + "name" : "getSource" + }, + "acm015907jsd" : { + "type" : "ControlElement", + "id" : "acm015907jsd", + "name" : "getMimeType" + }, + "acm015908jsd" : { + "type" : "ControlElement", + "id" : "acm015908jsd", + "name" : "canBeReached" + }, + "acm015909jsd" : { + "type" : "ControlElement", + "id" : "acm015909jsd", + "name" : "isMimeType" + }, + "acm015910jsd" : { + "type" : "ControlElement", + "id" : "acm015910jsd", + "name" : "isPdf" + }, + "acm015911jsd" : { + "type" : "ControlElement", + "id" : "acm015911jsd", + "name" : "addHeader" + }, + "acm015912jsd" : { + "type" : "ControlElement", + "id" : "acm015912jsd", + "name" : "setPostData" + }, + "acm015913jsd" : { + "type" : "ControlElement", + "id" : "acm015913jsd", + "name" : "asString" + }, + "acm015914jsd" : { + "type" : "ControlElement", + "id" : "acm015914jsd", + "name" : "asString" + }, + "acm015915jsd" : { + "type" : "ControlElement", + "id" : "acm015915jsd", + "name" : "asString" + }, + "acm015916jsd" : { + "type" : "ControlElement", + "id" : "acm015916jsd", + "name" : "asString" + }, + "acm015917jsd" : { + "type" : "ControlElement", + "id" : "acm015917jsd", + "name" : "getCookieFromUrl" + }, + "acm015918jsd" : { + "type" : "ControlElement", + "id" : "acm015918jsd", + "name" : "toFile" + }, + "acm015919jsd" : { + "type" : "ControlElement", + "id" : "acm015919jsd", + "name" : "asInputStream" + }, + "acm015920jsd" : { + "type" : "ControlElement", + "id" : "acm015920jsd", + "name" : "toTemporaryFile" + }, + "acm015921jsd" : { + "type" : "ControlElement", + "id" : "acm015921jsd", + "name" : "toString" + }, + "acm015922jsd" : { + "type" : "ControlElement", + "id" : "acm015922jsd", + "name" : "copy" + }, + "acm015923jsd" : { + "type" : "ControlElement", + "id" : "acm015923jsd", + "name" : "openConnection" + }, + "acm015924jsd" : { + "type" : "ControlElement", + "id" : "acm015924jsd", + "name" : "setConnectTimeout" + }, + "acm015925jsd" : { + "type" : "ControlElement", + "id" : "acm015925jsd", + "name" : "getConnectTimeout" + }, + "acm015926jsd" : { + "type" : "ClassUnit", + "id" : "acm015926jsd", + "name" : "URLDownload", + "compilationUnitId" : "acm015894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012332jsd", "acm015851jsd", "acm015926jsd" ], + "content" : [ "acm015899jsd", "acm015900jsd", "acm015901jsd", "acm015902jsd", "acm015903jsd", "acm015904jsd", "acm015905jsd", "acm015906jsd", "acm015907jsd", "acm015908jsd", "acm015909jsd", "acm015910jsd", "acm015911jsd", "acm015912jsd", "acm015913jsd", "acm015914jsd", "acm015915jsd", "acm015916jsd", "acm015917jsd", "acm015918jsd", "acm015919jsd", "acm015920jsd", "acm015921jsd", "acm015922jsd", "acm015923jsd", "acm015924jsd", "acm015925jsd" ] + }, + "acm015927jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015927jsd", + "name" : "SSLCertificate", + "parentId" : "acm015932jsd", + "content" : [ "acm015943jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net", "ssl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015928jsd" : { + "type" : "CodePackage", + "id" : "acm015928jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015929jsd" ] + }, + "acm015929jsd" : { + "type" : "CodePackage", + "id" : "acm015929jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015930jsd" ] + }, + "acm015930jsd" : { + "type" : "CodePackage", + "id" : "acm015930jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015931jsd" ] + }, + "acm015931jsd" : { + "type" : "CodePackage", + "id" : "acm015931jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015932jsd" ] + }, + "acm015932jsd" : { + "type" : "CodePackage", + "id" : "acm015932jsd", + "name" : "ssl", + "parentId" : "acm015837jsd", + "content" : [ "acm015927jsd", "acm015944jsd", "acm015954jsd" ] + }, + "acm015933jsd" : { + "type" : "ControlElement", + "id" : "acm015933jsd", + "name" : "SSLCertificate" + }, + "acm015934jsd" : { + "type" : "ControlElement", + "id" : "acm015934jsd", + "name" : "getSerialNumber" + }, + "acm015935jsd" : { + "type" : "ControlElement", + "id" : "acm015935jsd", + "name" : "getIssuer" + }, + "acm015936jsd" : { + "type" : "ControlElement", + "id" : "acm015936jsd", + "name" : "getValidFrom" + }, + "acm015937jsd" : { + "type" : "ControlElement", + "id" : "acm015937jsd", + "name" : "getValidTo" + }, + "acm015938jsd" : { + "type" : "ControlElement", + "id" : "acm015938jsd", + "name" : "getSignatureAlgorithm" + }, + "acm015939jsd" : { + "type" : "ControlElement", + "id" : "acm015939jsd", + "name" : "getVersion" + }, + "acm015940jsd" : { + "type" : "ControlElement", + "id" : "acm015940jsd", + "name" : "getSHA256Thumbprint" + }, + "acm015941jsd" : { + "type" : "ControlElement", + "id" : "acm015941jsd", + "name" : "fromX509" + }, + "acm015942jsd" : { + "type" : "ControlElement", + "id" : "acm015942jsd", + "name" : "fromPath" + }, + "acm015943jsd" : { + "type" : "ClassUnit", + "id" : "acm015943jsd", + "name" : "SSLCertificate", + "compilationUnitId" : "acm015927jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015943jsd" ], + "content" : [ "acm015933jsd", "acm015934jsd", "acm015935jsd", "acm015936jsd", "acm015937jsd", "acm015938jsd", "acm015939jsd", "acm015940jsd", "acm015941jsd", "acm015942jsd" ] + }, + "acm015944jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015944jsd", + "name" : "SSLPreferences", + "parentId" : "acm015932jsd", + "content" : [ "acm015953jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net", "ssl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015945jsd" : { + "type" : "CodePackage", + "id" : "acm015945jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015946jsd" ] + }, + "acm015946jsd" : { + "type" : "CodePackage", + "id" : "acm015946jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015947jsd" ] + }, + "acm015947jsd" : { + "type" : "CodePackage", + "id" : "acm015947jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015948jsd" ] + }, + "acm015948jsd" : { + "type" : "CodePackage", + "id" : "acm015948jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015949jsd" ] + }, + "acm015949jsd" : { + "type" : "CodePackage", + "id" : "acm015949jsd", + "name" : "ssl", + "parentId" : null, + "content" : [ "acm015944jsd" ] + }, + "acm015950jsd" : { + "type" : "ControlElement", + "id" : "acm015950jsd", + "name" : "SSLPreferences" + }, + "acm015951jsd" : { + "type" : "ControlElement", + "id" : "acm015951jsd", + "name" : "truststorePathProperty" + }, + "acm015952jsd" : { + "type" : "ControlElement", + "id" : "acm015952jsd", + "name" : "getTruststorePath" + }, + "acm015953jsd" : { + "type" : "ClassUnit", + "id" : "acm015953jsd", + "name" : "SSLPreferences", + "compilationUnitId" : "acm015944jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015950jsd", "acm015951jsd", "acm015952jsd" ] + }, + "acm015954jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015954jsd", + "name" : "TrustStoreManager", + "parentId" : "acm015932jsd", + "content" : [ "acm015972jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "net", "ssl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015955jsd" : { + "type" : "CodePackage", + "id" : "acm015955jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015956jsd" ] + }, + "acm015956jsd" : { + "type" : "CodePackage", + "id" : "acm015956jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015957jsd" ] + }, + "acm015957jsd" : { + "type" : "CodePackage", + "id" : "acm015957jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015958jsd" ] + }, + "acm015958jsd" : { + "type" : "CodePackage", + "id" : "acm015958jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm015959jsd" ] + }, + "acm015959jsd" : { + "type" : "CodePackage", + "id" : "acm015959jsd", + "name" : "ssl", + "parentId" : null, + "content" : [ "acm015954jsd" ] + }, + "acm015960jsd" : { + "type" : "ControlElement", + "id" : "acm015960jsd", + "name" : "TrustStoreManager" + }, + "acm015961jsd" : { + "type" : "ControlElement", + "id" : "acm015961jsd", + "name" : "addCertificate" + }, + "acm015962jsd" : { + "type" : "ControlElement", + "id" : "acm015962jsd", + "name" : "deleteCertificate" + }, + "acm015963jsd" : { + "type" : "ControlElement", + "id" : "acm015963jsd", + "name" : "certificateExists" + }, + "acm015964jsd" : { + "type" : "ControlElement", + "id" : "acm015964jsd", + "name" : "aliases" + }, + "acm015965jsd" : { + "type" : "ControlElement", + "id" : "acm015965jsd", + "name" : "certsCount" + }, + "acm015966jsd" : { + "type" : "ControlElement", + "id" : "acm015966jsd", + "name" : "flush" + }, + "acm015967jsd" : { + "type" : "ControlElement", + "id" : "acm015967jsd", + "name" : "isCustomCertificate" + }, + "acm015968jsd" : { + "type" : "ControlElement", + "id" : "acm015968jsd", + "name" : "clearCustomCertificates" + }, + "acm015969jsd" : { + "type" : "ControlElement", + "id" : "acm015969jsd", + "name" : "getCustomCertificates" + }, + "acm015970jsd" : { + "type" : "ControlElement", + "id" : "acm015970jsd", + "name" : "getCertificate" + }, + "acm015971jsd" : { + "type" : "ControlElement", + "id" : "acm015971jsd", + "name" : "createTruststoreFileIfNotExist" + }, + "acm015972jsd" : { + "type" : "ClassUnit", + "id" : "acm015972jsd", + "name" : "TrustStoreManager", + "compilationUnitId" : "acm015954jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015943jsd", "acm015972jsd" ], + "content" : [ "acm015960jsd", "acm015961jsd", "acm015962jsd", "acm015963jsd", "acm015964jsd", "acm015965jsd", "acm015966jsd", "acm015967jsd", "acm015968jsd", "acm015969jsd", "acm015970jsd", "acm015971jsd" ] + }, + "acm015973jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015973jsd", + "name" : "NoDocumentFoundException", + "parentId" : "acm015977jsd", + "content" : [ "acm015980jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015974jsd" : { + "type" : "CodePackage", + "id" : "acm015974jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015975jsd" ] + }, + "acm015975jsd" : { + "type" : "CodePackage", + "id" : "acm015975jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015976jsd" ] + }, + "acm015976jsd" : { + "type" : "CodePackage", + "id" : "acm015976jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015977jsd" ] + }, + "acm015977jsd" : { + "type" : "CodePackage", + "id" : "acm015977jsd", + "name" : "openoffice", + "parentId" : "acm001340jsd", + "content" : [ "acm015973jsd", "acm015981jsd", "acm015992jsd", "acm016020jsd", "acm016099jsd", "acm016180jsd", "acm016244jsd" ] + }, + "acm015978jsd" : { + "type" : "ControlElement", + "id" : "acm015978jsd", + "name" : "NoDocumentFoundException" + }, + "acm015979jsd" : { + "type" : "ControlElement", + "id" : "acm015979jsd", + "name" : "NoDocumentFoundException" + }, + "acm015980jsd" : { + "type" : "ClassUnit", + "id" : "acm015980jsd", + "name" : "NoDocumentFoundException", + "compilationUnitId" : "acm015973jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015978jsd", "acm015979jsd" ] + }, + "acm015981jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015981jsd", + "name" : "OpenOfficeFileSearch", + "parentId" : "acm015977jsd", + "content" : [ "acm015991jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015982jsd" : { + "type" : "CodePackage", + "id" : "acm015982jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015983jsd" ] + }, + "acm015983jsd" : { + "type" : "CodePackage", + "id" : "acm015983jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015984jsd" ] + }, + "acm015984jsd" : { + "type" : "CodePackage", + "id" : "acm015984jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015985jsd" ] + }, + "acm015985jsd" : { + "type" : "CodePackage", + "id" : "acm015985jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm015981jsd" ] + }, + "acm015986jsd" : { + "type" : "ControlElement", + "id" : "acm015986jsd", + "name" : "detectInstallations" + }, + "acm015987jsd" : { + "type" : "ControlElement", + "id" : "acm015987jsd", + "name" : "findOpenOfficeDirectories" + }, + "acm015988jsd" : { + "type" : "ControlElement", + "id" : "acm015988jsd", + "name" : "findWindowsOpenOfficeDirs" + }, + "acm015989jsd" : { + "type" : "ControlElement", + "id" : "acm015989jsd", + "name" : "findOSXOpenOfficeDirs" + }, + "acm015990jsd" : { + "type" : "ControlElement", + "id" : "acm015990jsd", + "name" : "findLinuxOpenOfficeDirs" + }, + "acm015991jsd" : { + "type" : "ClassUnit", + "id" : "acm015991jsd", + "name" : "OpenOfficeFileSearch", + "compilationUnitId" : "acm015981jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015991jsd" ], + "content" : [ "acm015986jsd", "acm015987jsd", "acm015988jsd", "acm015989jsd", "acm015990jsd" ] + }, + "acm015992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm015992jsd", + "name" : "OpenOfficePreferences", + "parentId" : "acm015977jsd", + "content" : [ "acm016014jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm015993jsd" : { + "type" : "CodePackage", + "id" : "acm015993jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm015994jsd" ] + }, + "acm015994jsd" : { + "type" : "CodePackage", + "id" : "acm015994jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm015995jsd" ] + }, + "acm015995jsd" : { + "type" : "CodePackage", + "id" : "acm015995jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm015996jsd" ] + }, + "acm015996jsd" : { + "type" : "CodePackage", + "id" : "acm015996jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm015992jsd" ] + }, + "acm015997jsd" : { + "type" : "ControlElement", + "id" : "acm015997jsd", + "name" : "OpenOfficePreferences" + }, + "acm015998jsd" : { + "type" : "ControlElement", + "id" : "acm015998jsd", + "name" : "clearConnectionSettings" + }, + "acm015999jsd" : { + "type" : "ControlElement", + "id" : "acm015999jsd", + "name" : "clearCurrentStyle" + }, + "acm016000jsd" : { + "type" : "ControlElement", + "id" : "acm016000jsd", + "name" : "getExecutablePath" + }, + "acm016001jsd" : { + "type" : "ControlElement", + "id" : "acm016001jsd", + "name" : "executablePathProperty" + }, + "acm016002jsd" : { + "type" : "ControlElement", + "id" : "acm016002jsd", + "name" : "setExecutablePath" + }, + "acm016003jsd" : { + "type" : "ControlElement", + "id" : "acm016003jsd", + "name" : "getUseAllDatabases" + }, + "acm016004jsd" : { + "type" : "ControlElement", + "id" : "acm016004jsd", + "name" : "useAllDatabasesProperty" + }, + "acm016005jsd" : { + "type" : "ControlElement", + "id" : "acm016005jsd", + "name" : "setUseAllDatabases" + }, + "acm016006jsd" : { + "type" : "ControlElement", + "id" : "acm016006jsd", + "name" : "getSyncWhenCiting" + }, + "acm016007jsd" : { + "type" : "ControlElement", + "id" : "acm016007jsd", + "name" : "syncWhenCitingProperty" + }, + "acm016008jsd" : { + "type" : "ControlElement", + "id" : "acm016008jsd", + "name" : "setSyncWhenCiting" + }, + "acm016009jsd" : { + "type" : "ControlElement", + "id" : "acm016009jsd", + "name" : "getExternalStyles" + }, + "acm016010jsd" : { + "type" : "ControlElement", + "id" : "acm016010jsd", + "name" : "setExternalStyles" + }, + "acm016011jsd" : { + "type" : "ControlElement", + "id" : "acm016011jsd", + "name" : "getCurrentStyle" + }, + "acm016012jsd" : { + "type" : "ControlElement", + "id" : "acm016012jsd", + "name" : "currentStyleProperty" + }, + "acm016013jsd" : { + "type" : "ControlElement", + "id" : "acm016013jsd", + "name" : "setCurrentStyle" + }, + "acm016014jsd" : { + "type" : "ClassUnit", + "id" : "acm016014jsd", + "name" : "OpenOfficePreferences", + "compilationUnitId" : "acm015992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm015997jsd", "acm015998jsd", "acm015999jsd", "acm016000jsd", "acm016001jsd", "acm016002jsd", "acm016003jsd", "acm016004jsd", "acm016005jsd", "acm016006jsd", "acm016007jsd", "acm016008jsd", "acm016009jsd", "acm016010jsd", "acm016011jsd", "acm016012jsd", "acm016013jsd" ] + }, + "acm016015jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016015jsd", + "name" : "EditInsert", + "parentId" : "acm016020jsd", + "content" : [ "acm016024jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016016jsd" : { + "type" : "CodePackage", + "id" : "acm016016jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016017jsd" ] + }, + "acm016017jsd" : { + "type" : "CodePackage", + "id" : "acm016017jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016018jsd" ] + }, + "acm016018jsd" : { + "type" : "CodePackage", + "id" : "acm016018jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016019jsd" ] + }, + "acm016019jsd" : { + "type" : "CodePackage", + "id" : "acm016019jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016020jsd" ] + }, + "acm016020jsd" : { + "type" : "CodePackage", + "id" : "acm016020jsd", + "name" : "action", + "parentId" : "acm015977jsd", + "content" : [ "acm016015jsd", "acm016025jsd", "acm016045jsd", "acm016054jsd", "acm016066jsd", "acm016076jsd" ] + }, + "acm016021jsd" : { + "type" : "ControlElement", + "id" : "acm016021jsd", + "name" : "EditInsert" + }, + "acm016022jsd" : { + "type" : "ControlElement", + "id" : "acm016022jsd", + "name" : "insertEntryGetCitationKey" + }, + "acm016023jsd" : { + "type" : "ControlElement", + "id" : "acm016023jsd", + "name" : "insertCitationGroup" + }, + "acm016024jsd" : { + "type" : "ClassUnit", + "id" : "acm016024jsd", + "name" : "EditInsert", + "compilationUnitId" : "acm016015jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016204jsd", "acm016334jsd", "acm017988jsd", "acm018267jsd", "acm019532jsd", "acm019712jsd", "acm019786jsd", "acm019831jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016021jsd", "acm016022jsd", "acm016023jsd" ] + }, + "acm016025jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016025jsd", + "name" : "EditMerge", + "parentId" : "acm016020jsd", + "content" : [ "acm016039jsd", "acm016041jsd", "acm016044jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016026jsd" : { + "type" : "CodePackage", + "id" : "acm016026jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016027jsd" ] + }, + "acm016027jsd" : { + "type" : "CodePackage", + "id" : "acm016027jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016028jsd" ] + }, + "acm016028jsd" : { + "type" : "CodePackage", + "id" : "acm016028jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016029jsd" ] + }, + "acm016029jsd" : { + "type" : "CodePackage", + "id" : "acm016029jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016030jsd" ] + }, + "acm016030jsd" : { + "type" : "CodePackage", + "id" : "acm016030jsd", + "name" : "action", + "parentId" : null, + "content" : [ "acm016025jsd" ] + }, + "acm016031jsd" : { + "type" : "ControlElement", + "id" : "acm016031jsd", + "name" : "EditMerge" + }, + "acm016032jsd" : { + "type" : "ControlElement", + "id" : "acm016032jsd", + "name" : "mergeCitationGroups" + }, + "acm016033jsd" : { + "type" : "ControlElement", + "id" : "acm016033jsd", + "name" : "JoinableGroupData" + }, + "acm016034jsd" : { + "type" : "ControlElement", + "id" : "acm016034jsd", + "name" : "ScanState" + }, + "acm016035jsd" : { + "type" : "ControlElement", + "id" : "acm016035jsd", + "name" : "reset" + }, + "acm016036jsd" : { + "type" : "ControlElement", + "id" : "acm016036jsd", + "name" : "checkAddToGroup" + }, + "acm016037jsd" : { + "type" : "ControlElement", + "id" : "acm016037jsd", + "name" : "addToCurrentGroup" + }, + "acm016038jsd" : { + "type" : "ControlElement", + "id" : "acm016038jsd", + "name" : "scan" + }, + "acm016039jsd" : { + "type" : "ClassUnit", + "id" : "acm016039jsd", + "name" : "EditMerge", + "compilationUnitId" : "acm016025jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016039jsd", "acm016041jsd", "acm016044jsd", "acm016204jsd", "acm016334jsd", "acm019532jsd", "acm019712jsd", "acm019730jsd", "acm019831jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016031jsd", "acm016032jsd", "acm016033jsd", "acm016034jsd", "acm016035jsd", "acm016036jsd", "acm016037jsd", "acm016038jsd" ] + }, + "acm016040jsd" : { + "type" : "ControlElement", + "id" : "acm016040jsd", + "name" : "JoinableGroupData" + }, + "acm016041jsd" : { + "type" : "ClassUnit", + "id" : "acm016041jsd", + "name" : "JoinableGroupData", + "compilationUnitId" : "acm016025jsd", + "parentDatatypeId" : "acm016039jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019730jsd" ], + "content" : [ "acm016040jsd" ] + }, + "acm016042jsd" : { + "type" : "ControlElement", + "id" : "acm016042jsd", + "name" : "ScanState" + }, + "acm016043jsd" : { + "type" : "ControlElement", + "id" : "acm016043jsd", + "name" : "reset" + }, + "acm016044jsd" : { + "type" : "ClassUnit", + "id" : "acm016044jsd", + "name" : "ScanState", + "compilationUnitId" : "acm016025jsd", + "parentDatatypeId" : "acm016039jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019730jsd" ], + "content" : [ "acm016042jsd", "acm016043jsd" ] + }, + "acm016045jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016045jsd", + "name" : "EditSeparate", + "parentId" : "acm016020jsd", + "content" : [ "acm016053jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016046jsd" : { + "type" : "CodePackage", + "id" : "acm016046jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016047jsd" ] + }, + "acm016047jsd" : { + "type" : "CodePackage", + "id" : "acm016047jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016048jsd" ] + }, + "acm016048jsd" : { + "type" : "CodePackage", + "id" : "acm016048jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016049jsd" ] + }, + "acm016049jsd" : { + "type" : "CodePackage", + "id" : "acm016049jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016050jsd" ] + }, + "acm016050jsd" : { + "type" : "CodePackage", + "id" : "acm016050jsd", + "name" : "action", + "parentId" : null, + "content" : [ "acm016045jsd" ] + }, + "acm016051jsd" : { + "type" : "ControlElement", + "id" : "acm016051jsd", + "name" : "EditSeparate" + }, + "acm016052jsd" : { + "type" : "ControlElement", + "id" : "acm016052jsd", + "name" : "separateCitations" + }, + "acm016053jsd" : { + "type" : "ClassUnit", + "id" : "acm016053jsd", + "name" : "EditSeparate", + "compilationUnitId" : "acm016045jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016204jsd", "acm016334jsd", "acm017988jsd", "acm019712jsd", "acm019730jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016051jsd", "acm016052jsd" ] + }, + "acm016054jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016054jsd", + "name" : "ExportCited", + "parentId" : "acm016020jsd", + "content" : [ "acm016063jsd", "acm016065jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016055jsd" : { + "type" : "CodePackage", + "id" : "acm016055jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016056jsd" ] + }, + "acm016056jsd" : { + "type" : "CodePackage", + "id" : "acm016056jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016057jsd" ] + }, + "acm016057jsd" : { + "type" : "CodePackage", + "id" : "acm016057jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016058jsd" ] + }, + "acm016058jsd" : { + "type" : "CodePackage", + "id" : "acm016058jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016059jsd" ] + }, + "acm016059jsd" : { + "type" : "CodePackage", + "id" : "acm016059jsd", + "name" : "action", + "parentId" : null, + "content" : [ "acm016054jsd" ] + }, + "acm016060jsd" : { + "type" : "ControlElement", + "id" : "acm016060jsd", + "name" : "ExportCited" + }, + "acm016061jsd" : { + "type" : "ControlElement", + "id" : "acm016061jsd", + "name" : "GenerateDatabaseResult" + }, + "acm016062jsd" : { + "type" : "ControlElement", + "id" : "acm016062jsd", + "name" : "generateDatabase" + }, + "acm016063jsd" : { + "type" : "ClassUnit", + "id" : "acm016063jsd", + "name" : "ExportCited", + "compilationUnitId" : "acm016054jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016065jsd", "acm016204jsd", "acm017988jsd", "acm018267jsd", "acm019854jsd", "acm019870jsd", "acm019947jsd" ], + "content" : [ "acm016060jsd", "acm016061jsd", "acm016062jsd" ] + }, + "acm016064jsd" : { + "type" : "ControlElement", + "id" : "acm016064jsd", + "name" : "GenerateDatabaseResult" + }, + "acm016065jsd" : { + "type" : "ClassUnit", + "id" : "acm016065jsd", + "name" : "GenerateDatabaseResult", + "compilationUnitId" : "acm016054jsd", + "parentDatatypeId" : "acm016063jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd" ], + "content" : [ "acm016064jsd" ] + }, + "acm016066jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016066jsd", + "name" : "ManageCitations", + "parentId" : "acm016020jsd", + "content" : [ "acm016075jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016067jsd" : { + "type" : "CodePackage", + "id" : "acm016067jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016068jsd" ] + }, + "acm016068jsd" : { + "type" : "CodePackage", + "id" : "acm016068jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016069jsd" ] + }, + "acm016069jsd" : { + "type" : "CodePackage", + "id" : "acm016069jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016070jsd" ] + }, + "acm016070jsd" : { + "type" : "CodePackage", + "id" : "acm016070jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016071jsd" ] + }, + "acm016071jsd" : { + "type" : "CodePackage", + "id" : "acm016071jsd", + "name" : "action", + "parentId" : null, + "content" : [ "acm016066jsd" ] + }, + "acm016072jsd" : { + "type" : "ControlElement", + "id" : "acm016072jsd", + "name" : "ManageCitations" + }, + "acm016073jsd" : { + "type" : "ControlElement", + "id" : "acm016073jsd", + "name" : "getCitationEntries" + }, + "acm016074jsd" : { + "type" : "ControlElement", + "id" : "acm016074jsd", + "name" : "applyCitationEntries" + }, + "acm016075jsd" : { + "type" : "ClassUnit", + "id" : "acm016075jsd", + "name" : "ManageCitations", + "compilationUnitId" : "acm016066jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016204jsd", "acm019482jsd", "acm019947jsd" ], + "content" : [ "acm016072jsd", "acm016073jsd", "acm016074jsd" ] + }, + "acm016076jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016076jsd", + "name" : "Update", + "parentId" : "acm016020jsd", + "content" : [ "acm016089jsd", "acm016093jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "action" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016077jsd" : { + "type" : "CodePackage", + "id" : "acm016077jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016078jsd" ] + }, + "acm016078jsd" : { + "type" : "CodePackage", + "id" : "acm016078jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016079jsd" ] + }, + "acm016079jsd" : { + "type" : "CodePackage", + "id" : "acm016079jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016080jsd" ] + }, + "acm016080jsd" : { + "type" : "CodePackage", + "id" : "acm016080jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016081jsd" ] + }, + "acm016081jsd" : { + "type" : "CodePackage", + "id" : "acm016081jsd", + "name" : "action", + "parentId" : null, + "content" : [ "acm016076jsd" ] + }, + "acm016082jsd" : { + "type" : "ControlElement", + "id" : "acm016082jsd", + "name" : "Update" + }, + "acm016083jsd" : { + "type" : "ControlElement", + "id" : "acm016083jsd", + "name" : "updateDocument" + }, + "acm016084jsd" : { + "type" : "ControlElement", + "id" : "acm016084jsd", + "name" : "SyncOptions" + }, + "acm016085jsd" : { + "type" : "ControlElement", + "id" : "acm016085jsd", + "name" : "setUpdateBibliography" + }, + "acm016086jsd" : { + "type" : "ControlElement", + "id" : "acm016086jsd", + "name" : "setAlwaysAddCitedOnPages" + }, + "acm016087jsd" : { + "type" : "ControlElement", + "id" : "acm016087jsd", + "name" : "synchronizeDocument" + }, + "acm016088jsd" : { + "type" : "ControlElement", + "id" : "acm016088jsd", + "name" : "resyncDocument" + }, + "acm016089jsd" : { + "type" : "ClassUnit", + "id" : "acm016089jsd", + "name" : "Update", + "compilationUnitId" : "acm016076jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016093jsd", "acm016204jsd", "acm016334jsd", "acm017988jsd", "acm019580jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016082jsd", "acm016083jsd", "acm016084jsd", "acm016085jsd", "acm016086jsd", "acm016087jsd", "acm016088jsd" ] + }, + "acm016090jsd" : { + "type" : "ControlElement", + "id" : "acm016090jsd", + "name" : "SyncOptions" + }, + "acm016091jsd" : { + "type" : "ControlElement", + "id" : "acm016091jsd", + "name" : "setUpdateBibliography" + }, + "acm016092jsd" : { + "type" : "ControlElement", + "id" : "acm016092jsd", + "name" : "setAlwaysAddCitedOnPages" + }, + "acm016093jsd" : { + "type" : "ClassUnit", + "id" : "acm016093jsd", + "name" : "SyncOptions", + "compilationUnitId" : "acm016076jsd", + "parentDatatypeId" : "acm016089jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016093jsd", "acm017988jsd" ], + "content" : [ "acm016090jsd", "acm016091jsd", "acm016092jsd" ] + }, + "acm016094jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016094jsd", + "name" : "Backend52", + "parentId" : "acm016099jsd", + "content" : [ "acm016118jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016095jsd" : { + "type" : "CodePackage", + "id" : "acm016095jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016096jsd" ] + }, + "acm016096jsd" : { + "type" : "CodePackage", + "id" : "acm016096jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016097jsd" ] + }, + "acm016097jsd" : { + "type" : "CodePackage", + "id" : "acm016097jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016098jsd" ] + }, + "acm016098jsd" : { + "type" : "CodePackage", + "id" : "acm016098jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016099jsd" ] + }, + "acm016099jsd" : { + "type" : "CodePackage", + "id" : "acm016099jsd", + "name" : "backend", + "parentId" : "acm015977jsd", + "content" : [ "acm016094jsd", "acm016119jsd", "acm016136jsd", "acm016145jsd", "acm016155jsd" ] + }, + "acm016100jsd" : { + "type" : "ControlElement", + "id" : "acm016100jsd", + "name" : "Backend52" + }, + "acm016101jsd" : { + "type" : "ControlElement", + "id" : "acm016101jsd", + "name" : "getJabRefReferenceMarkNames" + }, + "acm016102jsd" : { + "type" : "ControlElement", + "id" : "acm016102jsd", + "name" : "findUnusedJabrefPropertyNames" + }, + "acm016103jsd" : { + "type" : "ControlElement", + "id" : "acm016103jsd", + "name" : "healthReport" + }, + "acm016104jsd" : { + "type" : "ControlElement", + "id" : "acm016104jsd", + "name" : "setPageInfoInDataInitial" + }, + "acm016105jsd" : { + "type" : "ControlElement", + "id" : "acm016105jsd", + "name" : "getPageInfoFromData" + }, + "acm016106jsd" : { + "type" : "ControlElement", + "id" : "acm016106jsd", + "name" : "readCitationGroupFromDocumentOrThrow" + }, + "acm016107jsd" : { + "type" : "ControlElement", + "id" : "acm016107jsd", + "name" : "createCitationGroup" + }, + "acm016108jsd" : { + "type" : "ControlElement", + "id" : "acm016108jsd", + "name" : "combinePageInfosCommon" + }, + "acm016109jsd" : { + "type" : "ControlElement", + "id" : "acm016109jsd", + "name" : "combinePageInfos" + }, + "acm016110jsd" : { + "type" : "ControlElement", + "id" : "acm016110jsd", + "name" : "getNamedRangeOrThrow" + }, + "acm016111jsd" : { + "type" : "ControlElement", + "id" : "acm016111jsd", + "name" : "removeCitationGroup" + }, + "acm016112jsd" : { + "type" : "ControlElement", + "id" : "acm016112jsd", + "name" : "getMarkRange" + }, + "acm016113jsd" : { + "type" : "ControlElement", + "id" : "acm016113jsd", + "name" : "getRawCursorForCitationGroup" + }, + "acm016114jsd" : { + "type" : "ControlElement", + "id" : "acm016114jsd", + "name" : "getFillCursorForCitationGroup" + }, + "acm016115jsd" : { + "type" : "ControlElement", + "id" : "acm016115jsd", + "name" : "cleanFillCursorForCitationGroup" + }, + "acm016116jsd" : { + "type" : "ControlElement", + "id" : "acm016116jsd", + "name" : "getCitationEntries" + }, + "acm016117jsd" : { + "type" : "ControlElement", + "id" : "acm016117jsd", + "name" : "applyCitationEntries" + }, + "acm016118jsd" : { + "type" : "ClassUnit", + "id" : "acm016118jsd", + "name" : "Backend52", + "compilationUnitId" : "acm016094jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016118jsd", "acm016135jsd", "acm016154jsd", "acm019482jsd", "acm019495jsd", "acm019505jsd", "acm019532jsd", "acm019712jsd", "acm019730jsd", "acm019739jsd", "acm019766jsd", "acm019831jsd", "acm019920jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016100jsd", "acm016101jsd", "acm016102jsd", "acm016103jsd", "acm016104jsd", "acm016105jsd", "acm016106jsd", "acm016107jsd", "acm016108jsd", "acm016109jsd", "acm016110jsd", "acm016111jsd", "acm016112jsd", "acm016113jsd", "acm016114jsd", "acm016115jsd", "acm016116jsd", "acm016117jsd" ] + }, + "acm016119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016119jsd", + "name" : "Codec52", + "parentId" : "acm016099jsd", + "content" : [ "acm016133jsd", "acm016135jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016120jsd" : { + "type" : "CodePackage", + "id" : "acm016120jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016121jsd" ] + }, + "acm016121jsd" : { + "type" : "CodePackage", + "id" : "acm016121jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016122jsd" ] + }, + "acm016122jsd" : { + "type" : "CodePackage", + "id" : "acm016122jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016123jsd" ] + }, + "acm016123jsd" : { + "type" : "CodePackage", + "id" : "acm016123jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016124jsd" ] + }, + "acm016124jsd" : { + "type" : "CodePackage", + "id" : "acm016124jsd", + "name" : "backend", + "parentId" : null, + "content" : [ "acm016119jsd" ] + }, + "acm016125jsd" : { + "type" : "ControlElement", + "id" : "acm016125jsd", + "name" : "Codec52" + }, + "acm016126jsd" : { + "type" : "ControlElement", + "id" : "acm016126jsd", + "name" : "ParsedMarkName" + }, + "acm016127jsd" : { + "type" : "ControlElement", + "id" : "acm016127jsd", + "name" : "citationTypeFromInt" + }, + "acm016128jsd" : { + "type" : "ControlElement", + "id" : "acm016128jsd", + "name" : "citationTypeToInt" + }, + "acm016129jsd" : { + "type" : "ControlElement", + "id" : "acm016129jsd", + "name" : "getUniqueMarkName" + }, + "acm016130jsd" : { + "type" : "ControlElement", + "id" : "acm016130jsd", + "name" : "parseMarkName" + }, + "acm016131jsd" : { + "type" : "ControlElement", + "id" : "acm016131jsd", + "name" : "isJabRefReferenceMarkName" + }, + "acm016132jsd" : { + "type" : "ControlElement", + "id" : "acm016132jsd", + "name" : "filterIsJabRefReferenceMarkName" + }, + "acm016133jsd" : { + "type" : "ClassUnit", + "id" : "acm016133jsd", + "name" : "Codec52", + "compilationUnitId" : "acm016119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016135jsd", "acm019831jsd" ], + "content" : [ "acm016125jsd", "acm016126jsd", "acm016127jsd", "acm016128jsd", "acm016129jsd", "acm016130jsd", "acm016131jsd", "acm016132jsd" ] + }, + "acm016134jsd" : { + "type" : "ControlElement", + "id" : "acm016134jsd", + "name" : "ParsedMarkName" + }, + "acm016135jsd" : { + "type" : "ClassUnit", + "id" : "acm016135jsd", + "name" : "ParsedMarkName", + "compilationUnitId" : "acm016119jsd", + "parentDatatypeId" : "acm016133jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019831jsd" ], + "content" : [ "acm016134jsd" ] + }, + "acm016136jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016136jsd", + "name" : "GetContext", + "parentId" : "acm016099jsd", + "content" : [ "acm016144jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016137jsd" : { + "type" : "CodePackage", + "id" : "acm016137jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016138jsd" ] + }, + "acm016138jsd" : { + "type" : "CodePackage", + "id" : "acm016138jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016139jsd" ] + }, + "acm016139jsd" : { + "type" : "CodePackage", + "id" : "acm016139jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016140jsd" ] + }, + "acm016140jsd" : { + "type" : "CodePackage", + "id" : "acm016140jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016141jsd" ] + }, + "acm016141jsd" : { + "type" : "CodePackage", + "id" : "acm016141jsd", + "name" : "backend", + "parentId" : null, + "content" : [ "acm016136jsd" ] + }, + "acm016142jsd" : { + "type" : "ControlElement", + "id" : "acm016142jsd", + "name" : "GetContext" + }, + "acm016143jsd" : { + "type" : "ControlElement", + "id" : "acm016143jsd", + "name" : "getCursorStringWithContext" + }, + "acm016144jsd" : { + "type" : "ClassUnit", + "id" : "acm016144jsd", + "name" : "GetContext", + "compilationUnitId" : "acm016136jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016144jsd" ], + "content" : [ "acm016142jsd", "acm016143jsd" ] + }, + "acm016145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016145jsd", + "name" : "NamedRangeManagerReferenceMark", + "parentId" : "acm016099jsd", + "content" : [ "acm016154jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016146jsd" : { + "type" : "CodePackage", + "id" : "acm016146jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016147jsd" ] + }, + "acm016147jsd" : { + "type" : "CodePackage", + "id" : "acm016147jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016148jsd" ] + }, + "acm016148jsd" : { + "type" : "CodePackage", + "id" : "acm016148jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016149jsd" ] + }, + "acm016149jsd" : { + "type" : "CodePackage", + "id" : "acm016149jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016150jsd" ] + }, + "acm016150jsd" : { + "type" : "CodePackage", + "id" : "acm016150jsd", + "name" : "backend", + "parentId" : null, + "content" : [ "acm016145jsd" ] + }, + "acm016151jsd" : { + "type" : "ControlElement", + "id" : "acm016151jsd", + "name" : "createNamedRange" + }, + "acm016152jsd" : { + "type" : "ControlElement", + "id" : "acm016152jsd", + "name" : "getUsedNames" + }, + "acm016153jsd" : { + "type" : "ControlElement", + "id" : "acm016153jsd", + "name" : "getNamedRangeFromDocument" + }, + "acm016154jsd" : { + "type" : "ClassUnit", + "id" : "acm016154jsd", + "name" : "NamedRangeManagerReferenceMark", + "compilationUnitId" : "acm016145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019505jsd" ], + "datatypeReferencesIds" : [ "acm019495jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016151jsd", "acm016152jsd", "acm016153jsd" ] + }, + "acm016155jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016155jsd", + "name" : "NamedRangeReferenceMark", + "parentId" : "acm016099jsd", + "content" : [ "acm016174jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016156jsd" : { + "type" : "CodePackage", + "id" : "acm016156jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016157jsd" ] + }, + "acm016157jsd" : { + "type" : "CodePackage", + "id" : "acm016157jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016158jsd" ] + }, + "acm016158jsd" : { + "type" : "CodePackage", + "id" : "acm016158jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016159jsd" ] + }, + "acm016159jsd" : { + "type" : "CodePackage", + "id" : "acm016159jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016160jsd" ] + }, + "acm016160jsd" : { + "type" : "CodePackage", + "id" : "acm016160jsd", + "name" : "backend", + "parentId" : null, + "content" : [ "acm016155jsd" ] + }, + "acm016161jsd" : { + "type" : "ControlElement", + "id" : "acm016161jsd", + "name" : "NamedRangeReferenceMark" + }, + "acm016162jsd" : { + "type" : "ControlElement", + "id" : "acm016162jsd", + "name" : "getId" + }, + "acm016163jsd" : { + "type" : "ControlElement", + "id" : "acm016163jsd", + "name" : "safeInsertSpacesBetweenReferenceMarks" + }, + "acm016164jsd" : { + "type" : "ControlElement", + "id" : "acm016164jsd", + "name" : "createReprInDocument" + }, + "acm016165jsd" : { + "type" : "ControlElement", + "id" : "acm016165jsd", + "name" : "create" + }, + "acm016166jsd" : { + "type" : "ControlElement", + "id" : "acm016166jsd", + "name" : "getFromDocument" + }, + "acm016167jsd" : { + "type" : "ControlElement", + "id" : "acm016167jsd", + "name" : "removeFromDocument" + }, + "acm016168jsd" : { + "type" : "ControlElement", + "id" : "acm016168jsd", + "name" : "getRangeName" + }, + "acm016169jsd" : { + "type" : "ControlElement", + "id" : "acm016169jsd", + "name" : "getMarkRange" + }, + "acm016170jsd" : { + "type" : "ControlElement", + "id" : "acm016170jsd", + "name" : "getRawCursor" + }, + "acm016171jsd" : { + "type" : "ControlElement", + "id" : "acm016171jsd", + "name" : "getFillCursor" + }, + "acm016172jsd" : { + "type" : "ControlElement", + "id" : "acm016172jsd", + "name" : "checkFillCursor" + }, + "acm016173jsd" : { + "type" : "ControlElement", + "id" : "acm016173jsd", + "name" : "cleanFillCursor" + }, + "acm016174jsd" : { + "type" : "ClassUnit", + "id" : "acm016174jsd", + "name" : "NamedRangeReferenceMark", + "compilationUnitId" : "acm016155jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019495jsd" ], + "datatypeReferencesIds" : [ "acm016174jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016161jsd", "acm016162jsd", "acm016163jsd", "acm016164jsd", "acm016165jsd", "acm016166jsd", "acm016167jsd", "acm016168jsd", "acm016169jsd", "acm016170jsd", "acm016171jsd", "acm016172jsd", "acm016173jsd" ] + }, + "acm016175jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016175jsd", + "name" : "OOFrontend", + "parentId" : "acm016180jsd", + "content" : [ "acm016204jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "frontend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016176jsd" : { + "type" : "CodePackage", + "id" : "acm016176jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016177jsd" ] + }, + "acm016177jsd" : { + "type" : "CodePackage", + "id" : "acm016177jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016178jsd" ] + }, + "acm016178jsd" : { + "type" : "CodePackage", + "id" : "acm016178jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016179jsd" ] + }, + "acm016179jsd" : { + "type" : "CodePackage", + "id" : "acm016179jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016180jsd" ] + }, + "acm016180jsd" : { + "type" : "CodePackage", + "id" : "acm016180jsd", + "name" : "frontend", + "parentId" : "acm015977jsd", + "content" : [ "acm016175jsd", "acm016205jsd", "acm016215jsd", "acm016228jsd" ] + }, + "acm016181jsd" : { + "type" : "ControlElement", + "id" : "acm016181jsd", + "name" : "OOFrontend" + }, + "acm016182jsd" : { + "type" : "ControlElement", + "id" : "acm016182jsd", + "name" : "getDataModel" + }, + "acm016183jsd" : { + "type" : "ControlElement", + "id" : "acm016183jsd", + "name" : "healthReport" + }, + "acm016184jsd" : { + "type" : "ControlElement", + "id" : "acm016184jsd", + "name" : "readCitationGroupsFromDocument" + }, + "acm016185jsd" : { + "type" : "ControlElement", + "id" : "acm016185jsd", + "name" : "createVisualSortInput" + }, + "acm016186jsd" : { + "type" : "ControlElement", + "id" : "acm016186jsd", + "name" : "getVisuallySortedCitationGroups" + }, + "acm016187jsd" : { + "type" : "ControlElement", + "id" : "acm016187jsd", + "name" : "getCitationGroupsSortedWithinPartitions" + }, + "acm016188jsd" : { + "type" : "ControlElement", + "id" : "acm016188jsd", + "name" : "createCitationGroup" + }, + "acm016189jsd" : { + "type" : "ControlElement", + "id" : "acm016189jsd", + "name" : "removeCitationGroup" + }, + "acm016190jsd" : { + "type" : "ControlElement", + "id" : "acm016190jsd", + "name" : "removeCitationGroups" + }, + "acm016191jsd" : { + "type" : "ControlElement", + "id" : "acm016191jsd", + "name" : "getMarkRange" + }, + "acm016192jsd" : { + "type" : "ControlElement", + "id" : "acm016192jsd", + "name" : "getFillCursorForCitationGroup" + }, + "acm016193jsd" : { + "type" : "ControlElement", + "id" : "acm016193jsd", + "name" : "cleanFillCursorForCitationGroup" + }, + "acm016194jsd" : { + "type" : "ControlElement", + "id" : "acm016194jsd", + "name" : "citationRanges" + }, + "acm016195jsd" : { + "type" : "ControlElement", + "id" : "acm016195jsd", + "name" : "bibliographyRanges" + }, + "acm016196jsd" : { + "type" : "ControlElement", + "id" : "acm016196jsd", + "name" : "viewCursorRanges" + }, + "acm016197jsd" : { + "type" : "ControlElement", + "id" : "acm016197jsd", + "name" : "footnoteMarkRanges" + }, + "acm016198jsd" : { + "type" : "ControlElement", + "id" : "acm016198jsd", + "name" : "rangeOverlapsToMessage" + }, + "acm016199jsd" : { + "type" : "ControlElement", + "id" : "acm016199jsd", + "name" : "checkRangeOverlapsWithCursor" + }, + "acm016200jsd" : { + "type" : "ControlElement", + "id" : "acm016200jsd", + "name" : "checkRangeOverlaps" + }, + "acm016201jsd" : { + "type" : "ControlElement", + "id" : "acm016201jsd", + "name" : "getCitationEntries" + }, + "acm016202jsd" : { + "type" : "ControlElement", + "id" : "acm016202jsd", + "name" : "applyCitationEntries" + }, + "acm016203jsd" : { + "type" : "ControlElement", + "id" : "acm016203jsd", + "name" : "imposeGlobalOrder" + }, + "acm016204jsd" : { + "type" : "ClassUnit", + "id" : "acm016204jsd", + "name" : "OOFrontend", + "compilationUnitId" : "acm016175jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010366jsd", "acm016118jsd", "acm016214jsd", "acm019482jsd", "acm019532jsd", "acm019580jsd", "acm019596jsd", "acm019645jsd", "acm019658jsd", "acm019684jsd", "acm019730jsd", "acm019739jsd", "acm019766jsd", "acm019831jsd", "acm019920jsd", "acm019938jsd", "acm019947jsd", "acm020210jsd" ], + "content" : [ "acm016181jsd", "acm016182jsd", "acm016183jsd", "acm016184jsd", "acm016185jsd", "acm016186jsd", "acm016187jsd", "acm016188jsd", "acm016189jsd", "acm016190jsd", "acm016191jsd", "acm016192jsd", "acm016193jsd", "acm016194jsd", "acm016195jsd", "acm016196jsd", "acm016197jsd", "acm016198jsd", "acm016199jsd", "acm016200jsd", "acm016201jsd", "acm016202jsd", "acm016203jsd" ] + }, + "acm016205jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016205jsd", + "name" : "RangeForOverlapCheck", + "parentId" : "acm016180jsd", + "content" : [ "acm016214jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "frontend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016206jsd" : { + "type" : "CodePackage", + "id" : "acm016206jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016207jsd" ] + }, + "acm016207jsd" : { + "type" : "CodePackage", + "id" : "acm016207jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016208jsd" ] + }, + "acm016208jsd" : { + "type" : "CodePackage", + "id" : "acm016208jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016209jsd" ] + }, + "acm016209jsd" : { + "type" : "CodePackage", + "id" : "acm016209jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016210jsd" ] + }, + "acm016210jsd" : { + "type" : "CodePackage", + "id" : "acm016210jsd", + "name" : "frontend", + "parentId" : null, + "content" : [ "acm016205jsd" ] + }, + "acm016211jsd" : { + "type" : "ControlElement", + "id" : "acm016211jsd", + "name" : "RangeForOverlapCheck" + }, + "acm016212jsd" : { + "type" : "ControlElement", + "id" : "acm016212jsd", + "name" : "format" + }, + "acm016213jsd" : { + "type" : "ControlElement", + "id" : "acm016213jsd", + "name" : "getRange" + }, + "acm016214jsd" : { + "type" : "ClassUnit", + "id" : "acm016214jsd", + "name" : "RangeForOverlapCheck", + "compilationUnitId" : "acm016205jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019588jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016211jsd", "acm016212jsd", "acm016213jsd" ] + }, + "acm016215jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016215jsd", + "name" : "UpdateBibliography", + "parentId" : "acm016180jsd", + "content" : [ "acm016227jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "frontend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016216jsd" : { + "type" : "CodePackage", + "id" : "acm016216jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016217jsd" ] + }, + "acm016217jsd" : { + "type" : "CodePackage", + "id" : "acm016217jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016218jsd" ] + }, + "acm016218jsd" : { + "type" : "CodePackage", + "id" : "acm016218jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016219jsd" ] + }, + "acm016219jsd" : { + "type" : "CodePackage", + "id" : "acm016219jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016220jsd" ] + }, + "acm016220jsd" : { + "type" : "CodePackage", + "id" : "acm016220jsd", + "name" : "frontend", + "parentId" : null, + "content" : [ "acm016215jsd" ] + }, + "acm016221jsd" : { + "type" : "ControlElement", + "id" : "acm016221jsd", + "name" : "UpdateBibliography" + }, + "acm016222jsd" : { + "type" : "ControlElement", + "id" : "acm016222jsd", + "name" : "getBibliographyRange" + }, + "acm016223jsd" : { + "type" : "ControlElement", + "id" : "acm016223jsd", + "name" : "rebuildBibTextSection" + }, + "acm016224jsd" : { + "type" : "ControlElement", + "id" : "acm016224jsd", + "name" : "createBibTextSection2" + }, + "acm016225jsd" : { + "type" : "ControlElement", + "id" : "acm016225jsd", + "name" : "clearBibTextSectionContent2" + }, + "acm016226jsd" : { + "type" : "ControlElement", + "id" : "acm016226jsd", + "name" : "populateBibTextSection" + }, + "acm016227jsd" : { + "type" : "ClassUnit", + "id" : "acm016227jsd", + "name" : "UpdateBibliography", + "compilationUnitId" : "acm016215jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016204jsd", "acm016334jsd", "acm019532jsd", "acm019870jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016221jsd", "acm016222jsd", "acm016223jsd", "acm016224jsd", "acm016225jsd", "acm016226jsd" ] + }, + "acm016228jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016228jsd", + "name" : "UpdateCitationMarkers", + "parentId" : "acm016180jsd", + "content" : [ "acm016238jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "frontend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016229jsd" : { + "type" : "CodePackage", + "id" : "acm016229jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016230jsd" ] + }, + "acm016230jsd" : { + "type" : "CodePackage", + "id" : "acm016230jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016231jsd" ] + }, + "acm016231jsd" : { + "type" : "CodePackage", + "id" : "acm016231jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016232jsd" ] + }, + "acm016232jsd" : { + "type" : "CodePackage", + "id" : "acm016232jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016233jsd" ] + }, + "acm016233jsd" : { + "type" : "CodePackage", + "id" : "acm016233jsd", + "name" : "frontend", + "parentId" : null, + "content" : [ "acm016228jsd" ] + }, + "acm016234jsd" : { + "type" : "ControlElement", + "id" : "acm016234jsd", + "name" : "UpdateCitationMarkers" + }, + "acm016235jsd" : { + "type" : "ControlElement", + "id" : "acm016235jsd", + "name" : "applyNewCitationMarkers" + }, + "acm016236jsd" : { + "type" : "ControlElement", + "id" : "acm016236jsd", + "name" : "fillCitationMarkInCursor" + }, + "acm016237jsd" : { + "type" : "ControlElement", + "id" : "acm016237jsd", + "name" : "createAndFillCitationGroup" + }, + "acm016238jsd" : { + "type" : "ClassUnit", + "id" : "acm016238jsd", + "name" : "UpdateCitationMarkers", + "compilationUnitId" : "acm016228jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016204jsd", "acm016238jsd", "acm016334jsd", "acm019532jsd", "acm019730jsd", "acm019766jsd", "acm019831jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm016234jsd", "acm016235jsd", "acm016236jsd", "acm016237jsd" ] + }, + "acm016239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016239jsd", + "name" : "OOBibStyle", + "parentId" : "acm016244jsd", + "content" : [ "acm016334jsd", "acm016335jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016240jsd" : { + "type" : "CodePackage", + "id" : "acm016240jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016241jsd" ] + }, + "acm016241jsd" : { + "type" : "CodePackage", + "id" : "acm016241jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016242jsd" ] + }, + "acm016242jsd" : { + "type" : "CodePackage", + "id" : "acm016242jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016243jsd" ] + }, + "acm016243jsd" : { + "type" : "CodePackage", + "id" : "acm016243jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016244jsd" ] + }, + "acm016244jsd" : { + "type" : "CodePackage", + "id" : "acm016244jsd", + "name" : "style", + "parentId" : "acm015977jsd", + "content" : [ "acm016239jsd", "acm016336jsd", "acm016372jsd", "acm016384jsd", "acm016398jsd", "acm016407jsd", "acm016419jsd", "acm016431jsd", "acm016440jsd", "acm016449jsd", "acm027227jsd", "acm027268jsd", "acm027300jsd", "acm027314jsd" ] + }, + "acm016245jsd" : { + "type" : "ControlElement", + "id" : "acm016245jsd", + "name" : "OOBibStyle" + }, + "acm016246jsd" : { + "type" : "ControlElement", + "id" : "acm016246jsd", + "name" : "OOBibStyle" + }, + "acm016247jsd" : { + "type" : "ControlElement", + "id" : "acm016247jsd", + "name" : "getDefaultBibLayout" + }, + "acm016248jsd" : { + "type" : "ControlElement", + "id" : "acm016248jsd", + "name" : "setDefaultProperties" + }, + "acm016249jsd" : { + "type" : "ControlElement", + "id" : "acm016249jsd", + "name" : "getName" + }, + "acm016250jsd" : { + "type" : "ControlElement", + "id" : "acm016250jsd", + "name" : "getPath" + }, + "acm016251jsd" : { + "type" : "ControlElement", + "id" : "acm016251jsd", + "name" : "getFile" + }, + "acm016252jsd" : { + "type" : "ControlElement", + "id" : "acm016252jsd", + "name" : "getJournals" + }, + "acm016253jsd" : { + "type" : "ControlElement", + "id" : "acm016253jsd", + "name" : "initialize" + }, + "acm016254jsd" : { + "type" : "ControlElement", + "id" : "acm016254jsd", + "name" : "ensureUpToDate" + }, + "acm016255jsd" : { + "type" : "ControlElement", + "id" : "acm016255jsd", + "name" : "reload" + }, + "acm016256jsd" : { + "type" : "ControlElement", + "id" : "acm016256jsd", + "name" : "isUpToDate" + }, + "acm016257jsd" : { + "type" : "ControlElement", + "id" : "acm016257jsd", + "name" : "readFormatFile" + }, + "acm016258jsd" : { + "type" : "ControlElement", + "id" : "acm016258jsd", + "name" : "isValid" + }, + "acm016259jsd" : { + "type" : "ControlElement", + "id" : "acm016259jsd", + "name" : "handleStructureLine" + }, + "acm016260jsd" : { + "type" : "ControlElement", + "id" : "acm016260jsd", + "name" : "handlePropertiesLine" + }, + "acm016261jsd" : { + "type" : "ControlElement", + "id" : "acm016261jsd", + "name" : "handleJournalsLine" + }, + "acm016262jsd" : { + "type" : "ControlElement", + "id" : "acm016262jsd", + "name" : "getReferenceFormat" + }, + "acm016263jsd" : { + "type" : "ControlElement", + "id" : "acm016263jsd", + "name" : "isNumberEntries" + }, + "acm016264jsd" : { + "type" : "ControlElement", + "id" : "acm016264jsd", + "name" : "isSortByPosition" + }, + "acm016265jsd" : { + "type" : "ControlElement", + "id" : "acm016265jsd", + "name" : "isItalicCitations" + }, + "acm016266jsd" : { + "type" : "ControlElement", + "id" : "acm016266jsd", + "name" : "isBoldCitations" + }, + "acm016267jsd" : { + "type" : "ControlElement", + "id" : "acm016267jsd", + "name" : "isFormatCitations" + }, + "acm016268jsd" : { + "type" : "ControlElement", + "id" : "acm016268jsd", + "name" : "isCitationKeyCiteMarkers" + }, + "acm016269jsd" : { + "type" : "ControlElement", + "id" : "acm016269jsd", + "name" : "getBooleanCitProperty" + }, + "acm016270jsd" : { + "type" : "ControlElement", + "id" : "acm016270jsd", + "name" : "getIntCitProperty" + }, + "acm016271jsd" : { + "type" : "ControlElement", + "id" : "acm016271jsd", + "name" : "getStringCitProperty" + }, + "acm016272jsd" : { + "type" : "ControlElement", + "id" : "acm016272jsd", + "name" : "getCitationCharacterFormat" + }, + "acm016273jsd" : { + "type" : "ControlElement", + "id" : "acm016273jsd", + "name" : "getProperty" + }, + "acm016274jsd" : { + "type" : "ControlElement", + "id" : "acm016274jsd", + "name" : "isInternalStyle" + }, + "acm016275jsd" : { + "type" : "ControlElement", + "id" : "acm016275jsd", + "name" : "getLocalCopy" + }, + "acm016276jsd" : { + "type" : "ControlElement", + "id" : "acm016276jsd", + "name" : "compareTo" + }, + "acm016277jsd" : { + "type" : "ControlElement", + "id" : "acm016277jsd", + "name" : "equals" + }, + "acm016278jsd" : { + "type" : "ControlElement", + "id" : "acm016278jsd", + "name" : "hashCode" + }, + "acm016279jsd" : { + "type" : "ControlElement", + "id" : "acm016279jsd", + "name" : "getEtAlString" + }, + "acm016280jsd" : { + "type" : "ControlElement", + "id" : "acm016280jsd", + "name" : "getAuthorSeparator" + }, + "acm016281jsd" : { + "type" : "ControlElement", + "id" : "acm016281jsd", + "name" : "getOxfordComma" + }, + "acm016282jsd" : { + "type" : "ControlElement", + "id" : "acm016282jsd", + "name" : "getReferenceHeaderText" + }, + "acm016283jsd" : { + "type" : "ControlElement", + "id" : "acm016283jsd", + "name" : "getReferenceHeaderParagraphFormat" + }, + "acm016284jsd" : { + "type" : "ControlElement", + "id" : "acm016284jsd", + "name" : "getReferenceParagraphFormat" + }, + "acm016285jsd" : { + "type" : "ControlElement", + "id" : "acm016285jsd", + "name" : "getFieldFormatter" + }, + "acm016286jsd" : { + "type" : "ControlElement", + "id" : "acm016286jsd", + "name" : "getBibLayout" + }, + "acm016287jsd" : { + "type" : "ControlElement", + "id" : "acm016287jsd", + "name" : "getProperties" + }, + "acm016288jsd" : { + "type" : "ControlElement", + "id" : "acm016288jsd", + "name" : "getCitProperties" + }, + "acm016289jsd" : { + "type" : "ControlElement", + "id" : "acm016289jsd", + "name" : "addJournal" + }, + "acm016290jsd" : { + "type" : "ControlElement", + "id" : "acm016290jsd", + "name" : "setLocalCopy" + }, + "acm016291jsd" : { + "type" : "ControlElement", + "id" : "acm016291jsd", + "name" : "setName" + }, + "acm016292jsd" : { + "type" : "ControlElement", + "id" : "acm016292jsd", + "name" : "getIsDefaultLayoutPresent" + }, + "acm016293jsd" : { + "type" : "ControlElement", + "id" : "acm016293jsd", + "name" : "setIsDefaultLayoutPresent" + }, + "acm016294jsd" : { + "type" : "ControlElement", + "id" : "acm016294jsd", + "name" : "setValid" + }, + "acm016295jsd" : { + "type" : "ControlElement", + "id" : "acm016295jsd", + "name" : "getPrefs" + }, + "acm016296jsd" : { + "type" : "ControlElement", + "id" : "acm016296jsd", + "name" : "setDefaultBibLayout" + }, + "acm016297jsd" : { + "type" : "ControlElement", + "id" : "acm016297jsd", + "name" : "getNumCitationMarker2" + }, + "acm016298jsd" : { + "type" : "ControlElement", + "id" : "acm016298jsd", + "name" : "getNumCitationMarker2" + }, + "acm016299jsd" : { + "type" : "ControlElement", + "id" : "acm016299jsd", + "name" : "getNumCitationMarkerForBibliography" + }, + "acm016300jsd" : { + "type" : "ControlElement", + "id" : "acm016300jsd", + "name" : "getNormalizedCitationMarker" + }, + "acm016301jsd" : { + "type" : "ControlElement", + "id" : "acm016301jsd", + "name" : "createCitationMarker" + }, + "acm016302jsd" : { + "type" : "ControlElement", + "id" : "acm016302jsd", + "name" : "decorateCitationMarker" + }, + "acm016303jsd" : { + "type" : "ControlElement", + "id" : "acm016303jsd", + "name" : "getMinimumGroupingCount" + }, + "acm016304jsd" : { + "type" : "ControlElement", + "id" : "acm016304jsd", + "name" : "getGroupedNumbersSeparator" + }, + "acm016305jsd" : { + "type" : "ControlElement", + "id" : "acm016305jsd", + "name" : "getStringProperty" + }, + "acm016306jsd" : { + "type" : "ControlElement", + "id" : "acm016306jsd", + "name" : "getCitationGroupMarkupBefore" + }, + "acm016307jsd" : { + "type" : "ControlElement", + "id" : "acm016307jsd", + "name" : "getCitationGroupMarkupAfter" + }, + "acm016308jsd" : { + "type" : "ControlElement", + "id" : "acm016308jsd", + "name" : "getAuthorsPartMarkupBefore" + }, + "acm016309jsd" : { + "type" : "ControlElement", + "id" : "acm016309jsd", + "name" : "getAuthorsPartMarkupAfter" + }, + "acm016310jsd" : { + "type" : "ControlElement", + "id" : "acm016310jsd", + "name" : "getAuthorNamesListMarkupBefore" + }, + "acm016311jsd" : { + "type" : "ControlElement", + "id" : "acm016311jsd", + "name" : "getAuthorNamesListMarkupAfter" + }, + "acm016312jsd" : { + "type" : "ControlElement", + "id" : "acm016312jsd", + "name" : "getAuthorNameMarkupBefore" + }, + "acm016313jsd" : { + "type" : "ControlElement", + "id" : "acm016313jsd", + "name" : "getAuthorNameMarkupAfter" + }, + "acm016314jsd" : { + "type" : "ControlElement", + "id" : "acm016314jsd", + "name" : "getMultiCiteChronological" + }, + "acm016315jsd" : { + "type" : "ControlElement", + "id" : "acm016315jsd", + "name" : "getItalicEtAl" + }, + "acm016316jsd" : { + "type" : "ControlElement", + "id" : "acm016316jsd", + "name" : "getAuthorFieldNames" + }, + "acm016317jsd" : { + "type" : "ControlElement", + "id" : "acm016317jsd", + "name" : "getYearFieldNames" + }, + "acm016318jsd" : { + "type" : "ControlElement", + "id" : "acm016318jsd", + "name" : "getAuthorLastSeparator" + }, + "acm016319jsd" : { + "type" : "ControlElement", + "id" : "acm016319jsd", + "name" : "getAuthorLastSeparatorInTextWithFallBack" + }, + "acm016320jsd" : { + "type" : "ControlElement", + "id" : "acm016320jsd", + "name" : "getPageInfoSeparator" + }, + "acm016321jsd" : { + "type" : "ControlElement", + "id" : "acm016321jsd", + "name" : "getUniquefierSeparator" + }, + "acm016322jsd" : { + "type" : "ControlElement", + "id" : "acm016322jsd", + "name" : "getCitationSeparator" + }, + "acm016323jsd" : { + "type" : "ControlElement", + "id" : "acm016323jsd", + "name" : "getYearSeparator" + }, + "acm016324jsd" : { + "type" : "ControlElement", + "id" : "acm016324jsd", + "name" : "getYearSeparatorInText" + }, + "acm016325jsd" : { + "type" : "ControlElement", + "id" : "acm016325jsd", + "name" : "getMaxAuthors" + }, + "acm016326jsd" : { + "type" : "ControlElement", + "id" : "acm016326jsd", + "name" : "getMaxAuthorsFirst" + }, + "acm016327jsd" : { + "type" : "ControlElement", + "id" : "acm016327jsd", + "name" : "getBracketBefore" + }, + "acm016328jsd" : { + "type" : "ControlElement", + "id" : "acm016328jsd", + "name" : "getBracketAfter" + }, + "acm016329jsd" : { + "type" : "ControlElement", + "id" : "acm016329jsd", + "name" : "getBracketBeforeInList" + }, + "acm016330jsd" : { + "type" : "ControlElement", + "id" : "acm016330jsd", + "name" : "getBracketBeforeInListWithFallBack" + }, + "acm016331jsd" : { + "type" : "ControlElement", + "id" : "acm016331jsd", + "name" : "getBracketAfterInList" + }, + "acm016332jsd" : { + "type" : "ControlElement", + "id" : "acm016332jsd", + "name" : "getBracketAfterInListWithFallBack" + }, + "acm016333jsd" : { + "type" : "ControlElement", + "id" : "acm016333jsd", + "name" : "getFormattedBibliographyTitle" + }, + "acm016334jsd" : { + "type" : "ClassUnit", + "id" : "acm016334jsd", + "name" : "OOBibStyle", + "compilationUnitId" : "acm016239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015008jsd", "acm015033jsd", "acm015052jsd", "acm016334jsd", "acm016335jsd", "acm016406jsd", "acm018754jsd", "acm019005jsd", "acm019532jsd", "acm019786jsd", "acm019795jsd", "acm019804jsd", "acm019814jsd", "acm019912jsd" ], + "content" : [ "acm016245jsd", "acm016246jsd", "acm016247jsd", "acm016248jsd", "acm016249jsd", "acm016250jsd", "acm016251jsd", "acm016252jsd", "acm016253jsd", "acm016254jsd", "acm016255jsd", "acm016256jsd", "acm016257jsd", "acm016258jsd", "acm016259jsd", "acm016260jsd", "acm016261jsd", "acm016262jsd", "acm016263jsd", "acm016264jsd", "acm016265jsd", "acm016266jsd", "acm016267jsd", "acm016268jsd", "acm016269jsd", "acm016270jsd", "acm016271jsd", "acm016272jsd", "acm016273jsd", "acm016274jsd", "acm016275jsd", "acm016276jsd", "acm016277jsd", "acm016278jsd", "acm016279jsd", "acm016280jsd", "acm016281jsd", "acm016282jsd", "acm016283jsd", "acm016284jsd", "acm016285jsd", "acm016286jsd", "acm016287jsd", "acm016288jsd", "acm016289jsd", "acm016290jsd", "acm016291jsd", "acm016292jsd", "acm016293jsd", "acm016294jsd", "acm016295jsd", "acm016296jsd", "acm016297jsd", "acm016298jsd", "acm016299jsd", "acm016300jsd", "acm016301jsd", "acm016302jsd", "acm016303jsd", "acm016304jsd", "acm016305jsd", "acm016306jsd", "acm016307jsd", "acm016308jsd", "acm016309jsd", "acm016310jsd", "acm016311jsd", "acm016312jsd", "acm016313jsd", "acm016314jsd", "acm016315jsd", "acm016316jsd", "acm016317jsd", "acm016318jsd", "acm016319jsd", "acm016320jsd", "acm016321jsd", "acm016322jsd", "acm016323jsd", "acm016324jsd", "acm016325jsd", "acm016326jsd", "acm016327jsd", "acm016328jsd", "acm016329jsd", "acm016330jsd", "acm016331jsd", "acm016332jsd", "acm016333jsd" ] + }, + "acm016335jsd" : { + "type" : "ClassUnit", + "id" : "acm016335jsd", + "name" : "BibStyleMode", + "compilationUnitId" : "acm016239jsd", + "parentDatatypeId" : "acm016334jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm016336jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016336jsd", + "name" : "OOBibStyleGetCitationMarker", + "parentId" : "acm016244jsd", + "content" : [ "acm016361jsd", "acm016363jsd", "acm016370jsd", "acm016371jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016337jsd" : { + "type" : "CodePackage", + "id" : "acm016337jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016338jsd" ] + }, + "acm016338jsd" : { + "type" : "CodePackage", + "id" : "acm016338jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016339jsd" ] + }, + "acm016339jsd" : { + "type" : "CodePackage", + "id" : "acm016339jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016340jsd" ] + }, + "acm016340jsd" : { + "type" : "CodePackage", + "id" : "acm016340jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016341jsd" ] + }, + "acm016341jsd" : { + "type" : "CodePackage", + "id" : "acm016341jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016336jsd" ] + }, + "acm016342jsd" : { + "type" : "ControlElement", + "id" : "acm016342jsd", + "name" : "OOBibStyleGetCitationMarker" + }, + "acm016343jsd" : { + "type" : "ControlElement", + "id" : "acm016343jsd", + "name" : "getAuthorLastName" + }, + "acm016344jsd" : { + "type" : "ControlElement", + "id" : "acm016344jsd", + "name" : "markupAuthorName" + }, + "acm016345jsd" : { + "type" : "ControlElement", + "id" : "acm016345jsd", + "name" : "formatAuthorList" + }, + "acm016346jsd" : { + "type" : "ControlElement", + "id" : "acm016346jsd", + "name" : "FieldAndContent" + }, + "acm016347jsd" : { + "type" : "ControlElement", + "id" : "acm016347jsd", + "name" : "getRawCitationMarkerField" + }, + "acm016348jsd" : { + "type" : "ControlElement", + "id" : "acm016348jsd", + "name" : "getCitationMarkerField" + }, + "acm016349jsd" : { + "type" : "ControlElement", + "id" : "acm016349jsd", + "name" : "getAuthorList" + }, + "acm016350jsd" : { + "type" : "ControlElement", + "id" : "acm016350jsd", + "name" : "calculateNAuthorsToEmit" + }, + "acm016351jsd" : { + "type" : "ControlElement", + "id" : "acm016351jsd", + "name" : "getAuthorYearParenthesisMarker2" + }, + "acm016352jsd" : { + "type" : "ControlElement", + "id" : "acm016352jsd", + "name" : "CitationMarkerNormEntryWrap" + }, + "acm016353jsd" : { + "type" : "ControlElement", + "id" : "acm016353jsd", + "name" : "getCitationKey" + }, + "acm016354jsd" : { + "type" : "ControlElement", + "id" : "acm016354jsd", + "name" : "getLookupResult" + }, + "acm016355jsd" : { + "type" : "ControlElement", + "id" : "acm016355jsd", + "name" : "getUniqueLetter" + }, + "acm016356jsd" : { + "type" : "ControlElement", + "id" : "acm016356jsd", + "name" : "getPageInfo" + }, + "acm016357jsd" : { + "type" : "ControlElement", + "id" : "acm016357jsd", + "name" : "getIsFirstAppearanceOfSource" + }, + "acm016358jsd" : { + "type" : "ControlElement", + "id" : "acm016358jsd", + "name" : "getNormalizedCitationMarker" + }, + "acm016359jsd" : { + "type" : "ControlElement", + "id" : "acm016359jsd", + "name" : "getNormalizedCitationMarkers" + }, + "acm016360jsd" : { + "type" : "ControlElement", + "id" : "acm016360jsd", + "name" : "createCitationMarker" + }, + "acm016361jsd" : { + "type" : "ClassUnit", + "id" : "acm016361jsd", + "name" : "OOBibStyleGetCitationMarker", + "compilationUnitId" : "acm016336jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm016363jsd", "acm016370jsd", "acm016371jsd", "acm017988jsd", "acm018138jsd", "acm018175jsd", "acm018267jsd", "acm018673jsd", "acm018754jsd", "acm019532jsd", "acm019776jsd", "acm019786jsd", "acm019795jsd", "acm019912jsd" ], + "content" : [ "acm016342jsd", "acm016343jsd", "acm016344jsd", "acm016345jsd", "acm016346jsd", "acm016347jsd", "acm016348jsd", "acm016349jsd", "acm016350jsd", "acm016351jsd", "acm016352jsd", "acm016353jsd", "acm016354jsd", "acm016355jsd", "acm016356jsd", "acm016357jsd", "acm016358jsd", "acm016359jsd", "acm016360jsd" ] + }, + "acm016362jsd" : { + "type" : "ControlElement", + "id" : "acm016362jsd", + "name" : "FieldAndContent" + }, + "acm016363jsd" : { + "type" : "ClassUnit", + "id" : "acm016363jsd", + "name" : "FieldAndContent", + "compilationUnitId" : "acm016336jsd", + "parentDatatypeId" : "acm016361jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm016362jsd" ] + }, + "acm016364jsd" : { + "type" : "ControlElement", + "id" : "acm016364jsd", + "name" : "CitationMarkerNormEntryWrap" + }, + "acm016365jsd" : { + "type" : "ControlElement", + "id" : "acm016365jsd", + "name" : "getCitationKey" + }, + "acm016366jsd" : { + "type" : "ControlElement", + "id" : "acm016366jsd", + "name" : "getLookupResult" + }, + "acm016367jsd" : { + "type" : "ControlElement", + "id" : "acm016367jsd", + "name" : "getUniqueLetter" + }, + "acm016368jsd" : { + "type" : "ControlElement", + "id" : "acm016368jsd", + "name" : "getPageInfo" + }, + "acm016369jsd" : { + "type" : "ControlElement", + "id" : "acm016369jsd", + "name" : "getIsFirstAppearanceOfSource" + }, + "acm016370jsd" : { + "type" : "ClassUnit", + "id" : "acm016370jsd", + "name" : "CitationMarkerNormEntryWrap", + "compilationUnitId" : "acm016336jsd", + "parentDatatypeId" : "acm016361jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019786jsd" ], + "datatypeReferencesIds" : [ "acm019532jsd", "acm019776jsd", "acm019795jsd" ], + "content" : [ "acm016364jsd", "acm016365jsd", "acm016366jsd", "acm016367jsd", "acm016368jsd", "acm016369jsd" ] + }, + "acm016371jsd" : { + "type" : "ClassUnit", + "id" : "acm016371jsd", + "name" : "AuthorYearMarkerPurpose", + "compilationUnitId" : "acm016336jsd", + "parentDatatypeId" : "acm016361jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm016372jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016372jsd", + "name" : "OOBibStyleGetNumCitationMarker", + "parentId" : "acm016244jsd", + "content" : [ "acm016383jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016373jsd" : { + "type" : "CodePackage", + "id" : "acm016373jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016374jsd" ] + }, + "acm016374jsd" : { + "type" : "CodePackage", + "id" : "acm016374jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016375jsd" ] + }, + "acm016375jsd" : { + "type" : "CodePackage", + "id" : "acm016375jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016376jsd" ] + }, + "acm016376jsd" : { + "type" : "CodePackage", + "id" : "acm016376jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016377jsd" ] + }, + "acm016377jsd" : { + "type" : "CodePackage", + "id" : "acm016377jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016372jsd" ] + }, + "acm016378jsd" : { + "type" : "ControlElement", + "id" : "acm016378jsd", + "name" : "OOBibStyleGetNumCitationMarker" + }, + "acm016379jsd" : { + "type" : "ControlElement", + "id" : "acm016379jsd", + "name" : "compareCitationMarkerNumericEntry" + }, + "acm016380jsd" : { + "type" : "ControlElement", + "id" : "acm016380jsd", + "name" : "getNumCitationMarkerForBibliography" + }, + "acm016381jsd" : { + "type" : "ControlElement", + "id" : "acm016381jsd", + "name" : "emitBlock" + }, + "acm016382jsd" : { + "type" : "ControlElement", + "id" : "acm016382jsd", + "name" : "getNumCitationMarker2" + }, + "acm016383jsd" : { + "type" : "ClassUnit", + "id" : "acm016383jsd", + "name" : "OOBibStyleGetNumCitationMarker", + "compilationUnitId" : "acm016372jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm019532jsd", "acm019804jsd", "acm019814jsd" ], + "content" : [ "acm016378jsd", "acm016379jsd", "acm016380jsd", "acm016381jsd", "acm016382jsd" ] + }, + "acm016384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016384jsd", + "name" : "OOFormatBibliography", + "parentId" : "acm016244jsd", + "content" : [ "acm016397jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016385jsd" : { + "type" : "CodePackage", + "id" : "acm016385jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016386jsd" ] + }, + "acm016386jsd" : { + "type" : "CodePackage", + "id" : "acm016386jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016387jsd" ] + }, + "acm016387jsd" : { + "type" : "CodePackage", + "id" : "acm016387jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016388jsd" ] + }, + "acm016388jsd" : { + "type" : "CodePackage", + "id" : "acm016388jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016389jsd" ] + }, + "acm016389jsd" : { + "type" : "CodePackage", + "id" : "acm016389jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016384jsd" ] + }, + "acm016390jsd" : { + "type" : "ControlElement", + "id" : "acm016390jsd", + "name" : "OOFormatBibliography" + }, + "acm016391jsd" : { + "type" : "ControlElement", + "id" : "acm016391jsd", + "name" : "formatBibliography" + }, + "acm016392jsd" : { + "type" : "ControlElement", + "id" : "acm016392jsd", + "name" : "formatBibliographyBody" + }, + "acm016393jsd" : { + "type" : "ControlElement", + "id" : "acm016393jsd", + "name" : "formatBibliographyEntry" + }, + "acm016394jsd" : { + "type" : "ControlElement", + "id" : "acm016394jsd", + "name" : "formatBibliographyEntryBody" + }, + "acm016395jsd" : { + "type" : "ControlElement", + "id" : "acm016395jsd", + "name" : "formatFullReferenceOfBibEntry" + }, + "acm016396jsd" : { + "type" : "ControlElement", + "id" : "acm016396jsd", + "name" : "formatCitedOnPages" + }, + "acm016397jsd" : { + "type" : "ClassUnit", + "id" : "acm016397jsd", + "name" : "OOFormatBibliography", + "compilationUnitId" : "acm016384jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm016334jsd", "acm016406jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm019532jsd", "acm019730jsd", "acm019739jsd", "acm019766jsd", "acm019822jsd", "acm019854jsd", "acm019870jsd" ], + "content" : [ "acm016390jsd", "acm016391jsd", "acm016392jsd", "acm016393jsd", "acm016394jsd", "acm016395jsd", "acm016396jsd" ] + }, + "acm016398jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016398jsd", + "name" : "OOPreFormatter", + "parentId" : "acm016244jsd", + "content" : [ "acm016406jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016399jsd" : { + "type" : "CodePackage", + "id" : "acm016399jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016400jsd" ] + }, + "acm016400jsd" : { + "type" : "CodePackage", + "id" : "acm016400jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016401jsd" ] + }, + "acm016401jsd" : { + "type" : "CodePackage", + "id" : "acm016401jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016402jsd" ] + }, + "acm016402jsd" : { + "type" : "CodePackage", + "id" : "acm016402jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016403jsd" ] + }, + "acm016403jsd" : { + "type" : "CodePackage", + "id" : "acm016403jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016398jsd" ] + }, + "acm016404jsd" : { + "type" : "ControlElement", + "id" : "acm016404jsd", + "name" : "format" + }, + "acm016405jsd" : { + "type" : "ControlElement", + "id" : "acm016405jsd", + "name" : "getHTMLTag" + }, + "acm016406jsd" : { + "type" : "ClassUnit", + "id" : "acm016406jsd", + "name" : "OOPreFormatter", + "compilationUnitId" : "acm016398jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm015008jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016404jsd", "acm016405jsd" ] + }, + "acm016407jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016407jsd", + "name" : "OOProcess", + "parentId" : "acm016244jsd", + "content" : [ "acm016418jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016408jsd" : { + "type" : "CodePackage", + "id" : "acm016408jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016409jsd" ] + }, + "acm016409jsd" : { + "type" : "CodePackage", + "id" : "acm016409jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016410jsd" ] + }, + "acm016410jsd" : { + "type" : "CodePackage", + "id" : "acm016410jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016411jsd" ] + }, + "acm016411jsd" : { + "type" : "CodePackage", + "id" : "acm016411jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016412jsd" ] + }, + "acm016412jsd" : { + "type" : "CodePackage", + "id" : "acm016412jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016407jsd" ] + }, + "acm016413jsd" : { + "type" : "ControlElement", + "id" : "acm016413jsd", + "name" : "OOProcess" + }, + "acm016414jsd" : { + "type" : "ControlElement", + "id" : "acm016414jsd", + "name" : "makeAuthorYearTitleComparator" + }, + "acm016415jsd" : { + "type" : "ControlElement", + "id" : "acm016415jsd", + "name" : "makeYearAuthorTitleComparator" + }, + "acm016416jsd" : { + "type" : "ControlElement", + "id" : "acm016416jsd", + "name" : "comparatorForMulticite" + }, + "acm016417jsd" : { + "type" : "ControlElement", + "id" : "acm016417jsd", + "name" : "produceCitationMarkers" + }, + "acm016418jsd" : { + "type" : "ClassUnit", + "id" : "acm016418jsd", + "name" : "OOProcess", + "compilationUnitId" : "acm016407jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010613jsd", "acm010623jsd", "acm016334jsd", "acm017988jsd", "acm018267jsd", "acm019766jsd" ], + "content" : [ "acm016413jsd", "acm016414jsd", "acm016415jsd", "acm016416jsd", "acm016417jsd" ] + }, + "acm016419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016419jsd", + "name" : "OOProcessAuthorYearMarkers", + "parentId" : "acm016244jsd", + "content" : [ "acm016430jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016420jsd" : { + "type" : "CodePackage", + "id" : "acm016420jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016421jsd" ] + }, + "acm016421jsd" : { + "type" : "CodePackage", + "id" : "acm016421jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016422jsd" ] + }, + "acm016422jsd" : { + "type" : "CodePackage", + "id" : "acm016422jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016423jsd" ] + }, + "acm016423jsd" : { + "type" : "CodePackage", + "id" : "acm016423jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016424jsd" ] + }, + "acm016424jsd" : { + "type" : "CodePackage", + "id" : "acm016424jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016419jsd" ] + }, + "acm016425jsd" : { + "type" : "ControlElement", + "id" : "acm016425jsd", + "name" : "OOProcessAuthorYearMarkers" + }, + "acm016426jsd" : { + "type" : "ControlElement", + "id" : "acm016426jsd", + "name" : "createNormalizedCitationMarkers" + }, + "acm016427jsd" : { + "type" : "ControlElement", + "id" : "acm016427jsd", + "name" : "createUniqueLetters" + }, + "acm016428jsd" : { + "type" : "ControlElement", + "id" : "acm016428jsd", + "name" : "setIsFirstAppearanceOfSourceInCitations" + }, + "acm016429jsd" : { + "type" : "ControlElement", + "id" : "acm016429jsd", + "name" : "produceCitationMarkers" + }, + "acm016430jsd" : { + "type" : "ClassUnit", + "id" : "acm016430jsd", + "name" : "OOProcessAuthorYearMarkers", + "compilationUnitId" : "acm016419jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm019532jsd", "acm019712jsd", "acm019730jsd", "acm019766jsd", "acm019786jsd", "acm019854jsd", "acm019870jsd", "acm019912jsd" ], + "content" : [ "acm016425jsd", "acm016426jsd", "acm016427jsd", "acm016428jsd", "acm016429jsd" ] + }, + "acm016431jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016431jsd", + "name" : "OOProcessCitationKeyMarkers", + "parentId" : "acm016244jsd", + "content" : [ "acm016439jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016432jsd" : { + "type" : "CodePackage", + "id" : "acm016432jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016433jsd" ] + }, + "acm016433jsd" : { + "type" : "CodePackage", + "id" : "acm016433jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016434jsd" ] + }, + "acm016434jsd" : { + "type" : "CodePackage", + "id" : "acm016434jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016435jsd" ] + }, + "acm016435jsd" : { + "type" : "CodePackage", + "id" : "acm016435jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016436jsd" ] + }, + "acm016436jsd" : { + "type" : "CodePackage", + "id" : "acm016436jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016431jsd" ] + }, + "acm016437jsd" : { + "type" : "ControlElement", + "id" : "acm016437jsd", + "name" : "OOProcessCitationKeyMarkers" + }, + "acm016438jsd" : { + "type" : "ControlElement", + "id" : "acm016438jsd", + "name" : "produceCitationMarkers" + }, + "acm016439jsd" : { + "type" : "ClassUnit", + "id" : "acm016439jsd", + "name" : "OOProcessCitationKeyMarkers", + "compilationUnitId" : "acm016431jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm019730jsd", "acm019766jsd" ], + "content" : [ "acm016437jsd", "acm016438jsd" ] + }, + "acm016440jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016440jsd", + "name" : "OOProcessNumericMarkers", + "parentId" : "acm016244jsd", + "content" : [ "acm016448jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016441jsd" : { + "type" : "CodePackage", + "id" : "acm016441jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016442jsd" ] + }, + "acm016442jsd" : { + "type" : "CodePackage", + "id" : "acm016442jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016443jsd" ] + }, + "acm016443jsd" : { + "type" : "CodePackage", + "id" : "acm016443jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016444jsd" ] + }, + "acm016444jsd" : { + "type" : "CodePackage", + "id" : "acm016444jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016445jsd" ] + }, + "acm016445jsd" : { + "type" : "CodePackage", + "id" : "acm016445jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016440jsd" ] + }, + "acm016446jsd" : { + "type" : "ControlElement", + "id" : "acm016446jsd", + "name" : "OOProcessNumericMarkers" + }, + "acm016447jsd" : { + "type" : "ControlElement", + "id" : "acm016447jsd", + "name" : "produceCitationMarkers" + }, + "acm016448jsd" : { + "type" : "ClassUnit", + "id" : "acm016448jsd", + "name" : "OOProcessNumericMarkers", + "compilationUnitId" : "acm016440jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm019532jsd", "acm019730jsd", "acm019766jsd", "acm019814jsd" ], + "content" : [ "acm016446jsd", "acm016447jsd" ] + }, + "acm016449jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016449jsd", + "name" : "StyleLoader", + "parentId" : "acm016244jsd", + "content" : [ "acm016463jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016450jsd" : { + "type" : "CodePackage", + "id" : "acm016450jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016451jsd" ] + }, + "acm016451jsd" : { + "type" : "CodePackage", + "id" : "acm016451jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016452jsd" ] + }, + "acm016452jsd" : { + "type" : "CodePackage", + "id" : "acm016452jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016453jsd" ] + }, + "acm016453jsd" : { + "type" : "CodePackage", + "id" : "acm016453jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm016454jsd" ] + }, + "acm016454jsd" : { + "type" : "CodePackage", + "id" : "acm016454jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm016449jsd" ] + }, + "acm016455jsd" : { + "type" : "ControlElement", + "id" : "acm016455jsd", + "name" : "StyleLoader" + }, + "acm016456jsd" : { + "type" : "ControlElement", + "id" : "acm016456jsd", + "name" : "getStyles" + }, + "acm016457jsd" : { + "type" : "ControlElement", + "id" : "acm016457jsd", + "name" : "addStyleIfValid" + }, + "acm016458jsd" : { + "type" : "ControlElement", + "id" : "acm016458jsd", + "name" : "loadExternalStyles" + }, + "acm016459jsd" : { + "type" : "ControlElement", + "id" : "acm016459jsd", + "name" : "loadInternalStyles" + }, + "acm016460jsd" : { + "type" : "ControlElement", + "id" : "acm016460jsd", + "name" : "storeExternalStyles" + }, + "acm016461jsd" : { + "type" : "ControlElement", + "id" : "acm016461jsd", + "name" : "removeStyle" + }, + "acm016462jsd" : { + "type" : "ControlElement", + "id" : "acm016462jsd", + "name" : "getUsedStyle" + }, + "acm016463jsd" : { + "type" : "ClassUnit", + "id" : "acm016463jsd", + "name" : "StyleLoader", + "compilationUnitId" : "acm016449jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015033jsd", "acm016014jsd", "acm016334jsd", "acm016463jsd" ], + "content" : [ "acm016455jsd", "acm016456jsd", "acm016457jsd", "acm016458jsd", "acm016459jsd", "acm016460jsd", "acm016461jsd", "acm016462jsd" ] + }, + "acm016464jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016464jsd", + "name" : "AnnotationImporter", + "parentId" : "acm016468jsd", + "content" : [ "acm016470jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016465jsd" : { + "type" : "CodePackage", + "id" : "acm016465jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016466jsd" ] + }, + "acm016466jsd" : { + "type" : "CodePackage", + "id" : "acm016466jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016467jsd" ] + }, + "acm016467jsd" : { + "type" : "CodePackage", + "id" : "acm016467jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016468jsd" ] + }, + "acm016468jsd" : { + "type" : "CodePackage", + "id" : "acm016468jsd", + "name" : "pdf", + "parentId" : "acm001340jsd", + "content" : [ "acm016464jsd", "acm016471jsd", "acm016480jsd", "acm016491jsd", "acm016501jsd", "acm027337jsd", "acm027345jsd", "acm016516jsd" ] + }, + "acm016469jsd" : { + "type" : "ControlElement", + "id" : "acm016469jsd", + "name" : "importAnnotations" + }, + "acm016470jsd" : { + "type" : "InterfaceUnit", + "id" : "acm016470jsd", + "name" : "AnnotationImporter", + "compilationUnitId" : "acm016464jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020244jsd" ], + "content" : [ "acm016469jsd" ] + }, + "acm016471jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016471jsd", + "name" : "EntryAnnotationImporter", + "parentId" : "acm016468jsd", + "content" : [ "acm016479jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016472jsd" : { + "type" : "CodePackage", + "id" : "acm016472jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016473jsd" ] + }, + "acm016473jsd" : { + "type" : "CodePackage", + "id" : "acm016473jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016474jsd" ] + }, + "acm016474jsd" : { + "type" : "CodePackage", + "id" : "acm016474jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016475jsd" ] + }, + "acm016475jsd" : { + "type" : "CodePackage", + "id" : "acm016475jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016471jsd" ] + }, + "acm016476jsd" : { + "type" : "ControlElement", + "id" : "acm016476jsd", + "name" : "EntryAnnotationImporter" + }, + "acm016477jsd" : { + "type" : "ControlElement", + "id" : "acm016477jsd", + "name" : "getFilteredFileList" + }, + "acm016478jsd" : { + "type" : "ControlElement", + "id" : "acm016478jsd", + "name" : "importAnnotationsFromFiles" + }, + "acm016479jsd" : { + "type" : "ClassUnit", + "id" : "acm016479jsd", + "name" : "EntryAnnotationImporter", + "compilationUnitId" : "acm016471jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016470jsd", "acm016500jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020244jsd", "acm020848jsd" ], + "content" : [ "acm016476jsd", "acm016477jsd", "acm016478jsd" ] + }, + "acm016480jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016480jsd", + "name" : "FileAnnotationCache", + "parentId" : "acm016468jsd", + "content" : [ "acm016490jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016481jsd" : { + "type" : "CodePackage", + "id" : "acm016481jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016482jsd" ] + }, + "acm016482jsd" : { + "type" : "CodePackage", + "id" : "acm016482jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016483jsd" ] + }, + "acm016483jsd" : { + "type" : "CodePackage", + "id" : "acm016483jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016484jsd" ] + }, + "acm016484jsd" : { + "type" : "CodePackage", + "id" : "acm016484jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016480jsd" ] + }, + "acm016485jsd" : { + "type" : "ControlElement", + "id" : "acm016485jsd", + "name" : "FileAnnotationCache" + }, + "acm016486jsd" : { + "type" : "ControlElement", + "id" : "acm016486jsd", + "name" : "FileAnnotationCache" + }, + "acm016487jsd" : { + "type" : "ControlElement", + "id" : "acm016487jsd", + "name" : "load" + }, + "acm016488jsd" : { + "type" : "ControlElement", + "id" : "acm016488jsd", + "name" : "getFromCache" + }, + "acm016489jsd" : { + "type" : "ControlElement", + "id" : "acm016489jsd", + "name" : "remove" + }, + "acm016490jsd" : { + "type" : "ClassUnit", + "id" : "acm016490jsd", + "name" : "FileAnnotationCache", + "compilationUnitId" : "acm016480jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016479jsd", "acm018022jsd", "acm018267jsd", "acm020244jsd", "acm020848jsd" ], + "content" : [ "acm016485jsd", "acm016486jsd", "acm016487jsd", "acm016488jsd", "acm016489jsd" ] + }, + "acm016491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016491jsd", + "name" : "PdfAnnotationImporter", + "parentId" : "acm016468jsd", + "content" : [ "acm016500jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016492jsd" : { + "type" : "CodePackage", + "id" : "acm016492jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016493jsd" ] + }, + "acm016493jsd" : { + "type" : "CodePackage", + "id" : "acm016493jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016494jsd" ] + }, + "acm016494jsd" : { + "type" : "CodePackage", + "id" : "acm016494jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016495jsd" ] + }, + "acm016495jsd" : { + "type" : "CodePackage", + "id" : "acm016495jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016491jsd" ] + }, + "acm016496jsd" : { + "type" : "ControlElement", + "id" : "acm016496jsd", + "name" : "importAnnotations" + }, + "acm016497jsd" : { + "type" : "ControlElement", + "id" : "acm016497jsd", + "name" : "isSupportedAnnotationType" + }, + "acm016498jsd" : { + "type" : "ControlElement", + "id" : "acm016498jsd", + "name" : "createMarkedAnnotations" + }, + "acm016499jsd" : { + "type" : "ControlElement", + "id" : "acm016499jsd", + "name" : "validatePath" + }, + "acm016500jsd" : { + "type" : "ClassUnit", + "id" : "acm016500jsd", + "name" : "PdfAnnotationImporter", + "compilationUnitId" : "acm016491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016470jsd" ], + "datatypeReferencesIds" : [ "acm016500jsd", "acm016510jsd", "acm020244jsd" ], + "content" : [ "acm016496jsd", "acm016497jsd", "acm016498jsd", "acm016499jsd" ] + }, + "acm016501jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016501jsd", + "name" : "TextExtractor", + "parentId" : "acm016468jsd", + "content" : [ "acm016510jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016502jsd" : { + "type" : "CodePackage", + "id" : "acm016502jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016503jsd" ] + }, + "acm016503jsd" : { + "type" : "CodePackage", + "id" : "acm016503jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016504jsd" ] + }, + "acm016504jsd" : { + "type" : "CodePackage", + "id" : "acm016504jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016505jsd" ] + }, + "acm016505jsd" : { + "type" : "CodePackage", + "id" : "acm016505jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016501jsd" ] + }, + "acm016506jsd" : { + "type" : "ControlElement", + "id" : "acm016506jsd", + "name" : "TextExtractor" + }, + "acm016507jsd" : { + "type" : "ControlElement", + "id" : "acm016507jsd", + "name" : "extractMarkedText" + }, + "acm016508jsd" : { + "type" : "ControlElement", + "id" : "acm016508jsd", + "name" : "calculateSegmentBoundingBox" + }, + "acm016509jsd" : { + "type" : "ControlElement", + "id" : "acm016509jsd", + "name" : "toFloat" + }, + "acm016510jsd" : { + "type" : "ClassUnit", + "id" : "acm016510jsd", + "name" : "TextExtractor", + "compilationUnitId" : "acm016501jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016506jsd", "acm016507jsd", "acm016508jsd", "acm016509jsd" ] + }, + "acm016511jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016511jsd", + "name" : "DocumentReader", + "parentId" : "acm016517jsd", + "content" : [ "acm016528jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf", "search", "indexing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016512jsd" : { + "type" : "CodePackage", + "id" : "acm016512jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016513jsd" ] + }, + "acm016513jsd" : { + "type" : "CodePackage", + "id" : "acm016513jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016514jsd" ] + }, + "acm016514jsd" : { + "type" : "CodePackage", + "id" : "acm016514jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016515jsd" ] + }, + "acm016515jsd" : { + "type" : "CodePackage", + "id" : "acm016515jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016516jsd" ] + }, + "acm016516jsd" : { + "type" : "CodePackage", + "id" : "acm016516jsd", + "name" : "search", + "parentId" : "acm016468jsd", + "content" : [ "acm016517jsd", "acm016577jsd" ] + }, + "acm016517jsd" : { + "type" : "CodePackage", + "id" : "acm016517jsd", + "name" : "indexing", + "parentId" : "acm016516jsd", + "content" : [ "acm016511jsd", "acm016529jsd", "acm016549jsd", "acm027367jsd", "acm027379jsd" ] + }, + "acm016518jsd" : { + "type" : "ControlElement", + "id" : "acm016518jsd", + "name" : "DocumentReader" + }, + "acm016519jsd" : { + "type" : "ControlElement", + "id" : "acm016519jsd", + "name" : "readLinkedPdf" + }, + "acm016520jsd" : { + "type" : "ControlElement", + "id" : "acm016520jsd", + "name" : "readLinkedPdfs" + }, + "acm016521jsd" : { + "type" : "ControlElement", + "id" : "acm016521jsd", + "name" : "readPdfContents" + }, + "acm016522jsd" : { + "type" : "ControlElement", + "id" : "acm016522jsd", + "name" : "addMetaData" + }, + "acm016523jsd" : { + "type" : "ControlElement", + "id" : "acm016523jsd", + "name" : "addStringField" + }, + "acm016524jsd" : { + "type" : "ControlElement", + "id" : "acm016524jsd", + "name" : "isValidField" + }, + "acm016525jsd" : { + "type" : "ControlElement", + "id" : "acm016525jsd", + "name" : "mergeLines" + }, + "acm016526jsd" : { + "type" : "ControlElement", + "id" : "acm016526jsd", + "name" : "addContentIfNotEmpty" + }, + "acm016527jsd" : { + "type" : "ControlElement", + "id" : "acm016527jsd", + "name" : "addIdentifiers" + }, + "acm016528jsd" : { + "type" : "ClassUnit", + "id" : "acm016528jsd", + "name" : "DocumentReader", + "compilationUnitId" : "acm016511jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm016518jsd", "acm016519jsd", "acm016520jsd", "acm016521jsd", "acm016522jsd", "acm016523jsd", "acm016524jsd", "acm016525jsd", "acm016526jsd", "acm016527jsd" ] + }, + "acm016529jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016529jsd", + "name" : "IndexingTaskManager", + "parentId" : "acm016517jsd", + "content" : [ "acm016548jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf", "search", "indexing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016530jsd" : { + "type" : "CodePackage", + "id" : "acm016530jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016531jsd" ] + }, + "acm016531jsd" : { + "type" : "CodePackage", + "id" : "acm016531jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016532jsd" ] + }, + "acm016532jsd" : { + "type" : "CodePackage", + "id" : "acm016532jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016533jsd" ] + }, + "acm016533jsd" : { + "type" : "CodePackage", + "id" : "acm016533jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016534jsd" ] + }, + "acm016534jsd" : { + "type" : "CodePackage", + "id" : "acm016534jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm016535jsd" ] + }, + "acm016535jsd" : { + "type" : "CodePackage", + "id" : "acm016535jsd", + "name" : "indexing", + "parentId" : null, + "content" : [ "acm016529jsd" ] + }, + "acm016536jsd" : { + "type" : "ControlElement", + "id" : "acm016536jsd", + "name" : "IndexingTaskManager" + }, + "acm016537jsd" : { + "type" : "ControlElement", + "id" : "acm016537jsd", + "name" : "call" + }, + "acm016538jsd" : { + "type" : "ControlElement", + "id" : "acm016538jsd", + "name" : "updateProgress" + }, + "acm016539jsd" : { + "type" : "ControlElement", + "id" : "acm016539jsd", + "name" : "enqueueTask" + }, + "acm016540jsd" : { + "type" : "ControlElement", + "id" : "acm016540jsd", + "name" : "blockNewTasks" + }, + "acm016541jsd" : { + "type" : "ControlElement", + "id" : "acm016541jsd", + "name" : "createIndex" + }, + "acm016542jsd" : { + "type" : "ControlElement", + "id" : "acm016542jsd", + "name" : "updateIndex" + }, + "acm016543jsd" : { + "type" : "ControlElement", + "id" : "acm016543jsd", + "name" : "addToIndex" + }, + "acm016544jsd" : { + "type" : "ControlElement", + "id" : "acm016544jsd", + "name" : "addToIndex" + }, + "acm016545jsd" : { + "type" : "ControlElement", + "id" : "acm016545jsd", + "name" : "removeFromIndex" + }, + "acm016546jsd" : { + "type" : "ControlElement", + "id" : "acm016546jsd", + "name" : "removeFromIndex" + }, + "acm016547jsd" : { + "type" : "ControlElement", + "id" : "acm016547jsd", + "name" : "updateDatabaseName" + }, + "acm016548jsd" : { + "type" : "ClassUnit", + "id" : "acm016548jsd", + "name" : "IndexingTaskManager", + "compilationUnitId" : "acm016529jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009965jsd", "acm016570jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd" ], + "content" : [ "acm016536jsd", "acm016537jsd", "acm016538jsd", "acm016539jsd", "acm016540jsd", "acm016541jsd", "acm016542jsd", "acm016543jsd", "acm016544jsd", "acm016545jsd", "acm016546jsd", "acm016547jsd" ] + }, + "acm016549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016549jsd", + "name" : "PdfIndexer", + "parentId" : "acm016517jsd", + "content" : [ "acm016570jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf", "search", "indexing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016550jsd" : { + "type" : "CodePackage", + "id" : "acm016550jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016551jsd" ] + }, + "acm016551jsd" : { + "type" : "CodePackage", + "id" : "acm016551jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016552jsd" ] + }, + "acm016552jsd" : { + "type" : "CodePackage", + "id" : "acm016552jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016553jsd" ] + }, + "acm016553jsd" : { + "type" : "CodePackage", + "id" : "acm016553jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016554jsd" ] + }, + "acm016554jsd" : { + "type" : "CodePackage", + "id" : "acm016554jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm016555jsd" ] + }, + "acm016555jsd" : { + "type" : "CodePackage", + "id" : "acm016555jsd", + "name" : "indexing", + "parentId" : null, + "content" : [ "acm016549jsd" ] + }, + "acm016556jsd" : { + "type" : "ControlElement", + "id" : "acm016556jsd", + "name" : "PdfIndexer" + }, + "acm016557jsd" : { + "type" : "ControlElement", + "id" : "acm016557jsd", + "name" : "of" + }, + "acm016558jsd" : { + "type" : "ControlElement", + "id" : "acm016558jsd", + "name" : "createIndex" + }, + "acm016559jsd" : { + "type" : "ControlElement", + "id" : "acm016559jsd", + "name" : "addToIndex" + }, + "acm016560jsd" : { + "type" : "ControlElement", + "id" : "acm016560jsd", + "name" : "addToIndex" + }, + "acm016561jsd" : { + "type" : "ControlElement", + "id" : "acm016561jsd", + "name" : "addToIndex" + }, + "acm016562jsd" : { + "type" : "ControlElement", + "id" : "acm016562jsd", + "name" : "addToIndex" + }, + "acm016563jsd" : { + "type" : "ControlElement", + "id" : "acm016563jsd", + "name" : "removeFromIndex" + }, + "acm016564jsd" : { + "type" : "ControlElement", + "id" : "acm016564jsd", + "name" : "removeFromIndex" + }, + "acm016565jsd" : { + "type" : "ControlElement", + "id" : "acm016565jsd", + "name" : "removeFromIndex" + }, + "acm016566jsd" : { + "type" : "ControlElement", + "id" : "acm016566jsd", + "name" : "flushIndex" + }, + "acm016567jsd" : { + "type" : "ControlElement", + "id" : "acm016567jsd", + "name" : "writeToIndex" + }, + "acm016568jsd" : { + "type" : "ControlElement", + "id" : "acm016568jsd", + "name" : "writeToIndex" + }, + "acm016569jsd" : { + "type" : "ControlElement", + "id" : "acm016569jsd", + "name" : "getListOfFilePaths" + }, + "acm016570jsd" : { + "type" : "ClassUnit", + "id" : "acm016570jsd", + "name" : "PdfIndexer", + "compilationUnitId" : "acm016549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm016528jsd", "acm016570jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020263jsd", "acm020848jsd" ], + "content" : [ "acm016556jsd", "acm016557jsd", "acm016558jsd", "acm016559jsd", "acm016560jsd", "acm016561jsd", "acm016562jsd", "acm016563jsd", "acm016564jsd", "acm016565jsd", "acm016566jsd", "acm016567jsd", "acm016568jsd", "acm016569jsd" ] + }, + "acm016571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016571jsd", + "name" : "PdfSearcher", + "parentId" : "acm016577jsd", + "content" : [ "acm016581jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "pdf", "search", "retrieval" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016572jsd" : { + "type" : "CodePackage", + "id" : "acm016572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016573jsd" ] + }, + "acm016573jsd" : { + "type" : "CodePackage", + "id" : "acm016573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016574jsd" ] + }, + "acm016574jsd" : { + "type" : "CodePackage", + "id" : "acm016574jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016575jsd" ] + }, + "acm016575jsd" : { + "type" : "CodePackage", + "id" : "acm016575jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm016576jsd" ] + }, + "acm016576jsd" : { + "type" : "CodePackage", + "id" : "acm016576jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm016577jsd" ] + }, + "acm016577jsd" : { + "type" : "CodePackage", + "id" : "acm016577jsd", + "name" : "retrieval", + "parentId" : "acm016516jsd", + "content" : [ "acm016571jsd", "acm027395jsd" ] + }, + "acm016578jsd" : { + "type" : "ControlElement", + "id" : "acm016578jsd", + "name" : "PdfSearcher" + }, + "acm016579jsd" : { + "type" : "ControlElement", + "id" : "acm016579jsd", + "name" : "of" + }, + "acm016580jsd" : { + "type" : "ControlElement", + "id" : "acm016580jsd", + "name" : "search" + }, + "acm016581jsd" : { + "type" : "ClassUnit", + "id" : "acm016581jsd", + "name" : "PdfSearcher", + "compilationUnitId" : "acm016571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm016581jsd", "acm018022jsd", "acm020263jsd", "acm020276jsd", "acm020299jsd" ], + "content" : [ "acm016578jsd", "acm016579jsd", "acm016580jsd" ] + }, + "acm016582jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016582jsd", + "name" : "DOIPreferences", + "parentId" : "acm016586jsd", + "content" : [ "acm016594jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016583jsd" : { + "type" : "CodePackage", + "id" : "acm016583jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016584jsd" ] + }, + "acm016584jsd" : { + "type" : "CodePackage", + "id" : "acm016584jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016585jsd" ] + }, + "acm016585jsd" : { + "type" : "CodePackage", + "id" : "acm016585jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016586jsd" ] + }, + "acm016586jsd" : { + "type" : "CodePackage", + "id" : "acm016586jsd", + "name" : "preferences", + "parentId" : "acm001340jsd", + "content" : [ "acm016582jsd", "acm016595jsd", "acm016609jsd", "acm016625jsd" ] + }, + "acm016587jsd" : { + "type" : "ControlElement", + "id" : "acm016587jsd", + "name" : "DOIPreferences" + }, + "acm016588jsd" : { + "type" : "ControlElement", + "id" : "acm016588jsd", + "name" : "isUseCustom" + }, + "acm016589jsd" : { + "type" : "ControlElement", + "id" : "acm016589jsd", + "name" : "useCustomProperty" + }, + "acm016590jsd" : { + "type" : "ControlElement", + "id" : "acm016590jsd", + "name" : "setUseCustom" + }, + "acm016591jsd" : { + "type" : "ControlElement", + "id" : "acm016591jsd", + "name" : "getDefaultBaseURI" + }, + "acm016592jsd" : { + "type" : "ControlElement", + "id" : "acm016592jsd", + "name" : "defaultBaseURIProperty" + }, + "acm016593jsd" : { + "type" : "ControlElement", + "id" : "acm016593jsd", + "name" : "setDefaultBaseURI" + }, + "acm016594jsd" : { + "type" : "ClassUnit", + "id" : "acm016594jsd", + "name" : "DOIPreferences", + "compilationUnitId" : "acm016582jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016587jsd", "acm016588jsd", "acm016589jsd", "acm016590jsd", "acm016591jsd", "acm016592jsd", "acm016593jsd" ] + }, + "acm016595jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016595jsd", + "name" : "FetcherApiKey", + "parentId" : "acm016586jsd", + "content" : [ "acm016608jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016596jsd" : { + "type" : "CodePackage", + "id" : "acm016596jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016597jsd" ] + }, + "acm016597jsd" : { + "type" : "CodePackage", + "id" : "acm016597jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016598jsd" ] + }, + "acm016598jsd" : { + "type" : "CodePackage", + "id" : "acm016598jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016599jsd" ] + }, + "acm016599jsd" : { + "type" : "CodePackage", + "id" : "acm016599jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm016595jsd" ] + }, + "acm016600jsd" : { + "type" : "ControlElement", + "id" : "acm016600jsd", + "name" : "FetcherApiKey" + }, + "acm016601jsd" : { + "type" : "ControlElement", + "id" : "acm016601jsd", + "name" : "getName" + }, + "acm016602jsd" : { + "type" : "ControlElement", + "id" : "acm016602jsd", + "name" : "shouldUse" + }, + "acm016603jsd" : { + "type" : "ControlElement", + "id" : "acm016603jsd", + "name" : "useProperty" + }, + "acm016604jsd" : { + "type" : "ControlElement", + "id" : "acm016604jsd", + "name" : "setUse" + }, + "acm016605jsd" : { + "type" : "ControlElement", + "id" : "acm016605jsd", + "name" : "getKey" + }, + "acm016606jsd" : { + "type" : "ControlElement", + "id" : "acm016606jsd", + "name" : "keyProperty" + }, + "acm016607jsd" : { + "type" : "ControlElement", + "id" : "acm016607jsd", + "name" : "setKey" + }, + "acm016608jsd" : { + "type" : "ClassUnit", + "id" : "acm016608jsd", + "name" : "FetcherApiKey", + "compilationUnitId" : "acm016595jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016600jsd", "acm016601jsd", "acm016602jsd", "acm016603jsd", "acm016604jsd", "acm016605jsd", "acm016606jsd", "acm016607jsd" ] + }, + "acm016609jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016609jsd", + "name" : "OwnerPreferences", + "parentId" : "acm016586jsd", + "content" : [ "acm016624jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016610jsd" : { + "type" : "CodePackage", + "id" : "acm016610jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016611jsd" ] + }, + "acm016611jsd" : { + "type" : "CodePackage", + "id" : "acm016611jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016612jsd" ] + }, + "acm016612jsd" : { + "type" : "CodePackage", + "id" : "acm016612jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016613jsd" ] + }, + "acm016613jsd" : { + "type" : "CodePackage", + "id" : "acm016613jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm016609jsd" ] + }, + "acm016614jsd" : { + "type" : "ControlElement", + "id" : "acm016614jsd", + "name" : "OwnerPreferences" + }, + "acm016615jsd" : { + "type" : "ControlElement", + "id" : "acm016615jsd", + "name" : "isUseOwner" + }, + "acm016616jsd" : { + "type" : "ControlElement", + "id" : "acm016616jsd", + "name" : "useOwnerProperty" + }, + "acm016617jsd" : { + "type" : "ControlElement", + "id" : "acm016617jsd", + "name" : "setUseOwner" + }, + "acm016618jsd" : { + "type" : "ControlElement", + "id" : "acm016618jsd", + "name" : "getDefaultOwner" + }, + "acm016619jsd" : { + "type" : "ControlElement", + "id" : "acm016619jsd", + "name" : "defaultOwnerProperty" + }, + "acm016620jsd" : { + "type" : "ControlElement", + "id" : "acm016620jsd", + "name" : "setDefaultOwner" + }, + "acm016621jsd" : { + "type" : "ControlElement", + "id" : "acm016621jsd", + "name" : "isOverwriteOwner" + }, + "acm016622jsd" : { + "type" : "ControlElement", + "id" : "acm016622jsd", + "name" : "overwriteOwnerProperty" + }, + "acm016623jsd" : { + "type" : "ControlElement", + "id" : "acm016623jsd", + "name" : "setOverwriteOwner" + }, + "acm016624jsd" : { + "type" : "ClassUnit", + "id" : "acm016624jsd", + "name" : "OwnerPreferences", + "compilationUnitId" : "acm016609jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016614jsd", "acm016615jsd", "acm016616jsd", "acm016617jsd", "acm016618jsd", "acm016619jsd", "acm016620jsd", "acm016621jsd", "acm016622jsd", "acm016623jsd" ] + }, + "acm016625jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016625jsd", + "name" : "TimestampPreferences", + "parentId" : "acm016586jsd", + "content" : [ "acm016641jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016626jsd" : { + "type" : "CodePackage", + "id" : "acm016626jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016627jsd" ] + }, + "acm016627jsd" : { + "type" : "CodePackage", + "id" : "acm016627jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016628jsd" ] + }, + "acm016628jsd" : { + "type" : "CodePackage", + "id" : "acm016628jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016629jsd" ] + }, + "acm016629jsd" : { + "type" : "CodePackage", + "id" : "acm016629jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm016625jsd" ] + }, + "acm016630jsd" : { + "type" : "ControlElement", + "id" : "acm016630jsd", + "name" : "TimestampPreferences" + }, + "acm016631jsd" : { + "type" : "ControlElement", + "id" : "acm016631jsd", + "name" : "now" + }, + "acm016632jsd" : { + "type" : "ControlElement", + "id" : "acm016632jsd", + "name" : "shouldAddCreationDate" + }, + "acm016633jsd" : { + "type" : "ControlElement", + "id" : "acm016633jsd", + "name" : "addCreationDateProperty" + }, + "acm016634jsd" : { + "type" : "ControlElement", + "id" : "acm016634jsd", + "name" : "setAddCreationDate" + }, + "acm016635jsd" : { + "type" : "ControlElement", + "id" : "acm016635jsd", + "name" : "shouldAddModificationDate" + }, + "acm016636jsd" : { + "type" : "ControlElement", + "id" : "acm016636jsd", + "name" : "addModificationDateProperty" + }, + "acm016637jsd" : { + "type" : "ControlElement", + "id" : "acm016637jsd", + "name" : "setAddModificationDate" + }, + "acm016638jsd" : { + "type" : "ControlElement", + "id" : "acm016638jsd", + "name" : "shouldUpdateTimestamp" + }, + "acm016639jsd" : { + "type" : "ControlElement", + "id" : "acm016639jsd", + "name" : "getTimestampField" + }, + "acm016640jsd" : { + "type" : "ControlElement", + "id" : "acm016640jsd", + "name" : "getTimestampFormat" + }, + "acm016641jsd" : { + "type" : "ClassUnit", + "id" : "acm016641jsd", + "name" : "TimestampPreferences", + "compilationUnitId" : "acm016625jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm016630jsd", "acm016631jsd", "acm016632jsd", "acm016633jsd", "acm016634jsd", "acm016635jsd", "acm016636jsd", "acm016637jsd", "acm016638jsd", "acm016639jsd", "acm016640jsd" ] + }, + "acm016642jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016642jsd", + "name" : "PreviewLayout", + "parentId" : "acm016646jsd", + "content" : [ "acm016651jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016643jsd" : { + "type" : "CodePackage", + "id" : "acm016643jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016644jsd" ] + }, + "acm016644jsd" : { + "type" : "CodePackage", + "id" : "acm016644jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016645jsd" ] + }, + "acm016645jsd" : { + "type" : "CodePackage", + "id" : "acm016645jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016646jsd" ] + }, + "acm016646jsd" : { + "type" : "CodePackage", + "id" : "acm016646jsd", + "name" : "preview", + "parentId" : "acm001340jsd", + "content" : [ "acm016642jsd" ] + }, + "acm016647jsd" : { + "type" : "ControlElement", + "id" : "acm016647jsd", + "name" : "generatePreview" + }, + "acm016648jsd" : { + "type" : "ControlElement", + "id" : "acm016648jsd", + "name" : "getDisplayName" + }, + "acm016649jsd" : { + "type" : "ControlElement", + "id" : "acm016649jsd", + "name" : "getName" + }, + "acm016650jsd" : { + "type" : "ControlElement", + "id" : "acm016650jsd", + "name" : "containsCaseIndependent" + }, + "acm016651jsd" : { + "type" : "InterfaceUnit", + "id" : "acm016651jsd", + "name" : "PreviewLayout", + "compilationUnitId" : "acm016642jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm016647jsd", "acm016648jsd", "acm016649jsd", "acm016650jsd" ] + }, + "acm016652jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016652jsd", + "name" : "ProtectedTermsList", + "parentId" : "acm016656jsd", + "content" : [ "acm016672jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016653jsd" : { + "type" : "CodePackage", + "id" : "acm016653jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016654jsd" ] + }, + "acm016654jsd" : { + "type" : "CodePackage", + "id" : "acm016654jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016655jsd" ] + }, + "acm016655jsd" : { + "type" : "CodePackage", + "id" : "acm016655jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016656jsd" ] + }, + "acm016656jsd" : { + "type" : "CodePackage", + "id" : "acm016656jsd", + "name" : "protectedterms", + "parentId" : "acm001340jsd", + "content" : [ "acm016652jsd", "acm016673jsd", "acm016691jsd", "acm016702jsd", "acm027412jsd", "acm027432jsd" ] + }, + "acm016657jsd" : { + "type" : "ControlElement", + "id" : "acm016657jsd", + "name" : "ProtectedTermsList" + }, + "acm016658jsd" : { + "type" : "ControlElement", + "id" : "acm016658jsd", + "name" : "ProtectedTermsList" + }, + "acm016659jsd" : { + "type" : "ControlElement", + "id" : "acm016659jsd", + "name" : "getDescription" + }, + "acm016660jsd" : { + "type" : "ControlElement", + "id" : "acm016660jsd", + "name" : "getTermList" + }, + "acm016661jsd" : { + "type" : "ControlElement", + "id" : "acm016661jsd", + "name" : "getLocation" + }, + "acm016662jsd" : { + "type" : "ControlElement", + "id" : "acm016662jsd", + "name" : "getTermListing" + }, + "acm016663jsd" : { + "type" : "ControlElement", + "id" : "acm016663jsd", + "name" : "compareTo" + }, + "acm016664jsd" : { + "type" : "ControlElement", + "id" : "acm016664jsd", + "name" : "isInternalList" + }, + "acm016665jsd" : { + "type" : "ControlElement", + "id" : "acm016665jsd", + "name" : "setEnabled" + }, + "acm016666jsd" : { + "type" : "ControlElement", + "id" : "acm016666jsd", + "name" : "isEnabled" + }, + "acm016667jsd" : { + "type" : "ControlElement", + "id" : "acm016667jsd", + "name" : "createAndWriteHeading" + }, + "acm016668jsd" : { + "type" : "ControlElement", + "id" : "acm016668jsd", + "name" : "addProtectedTerm" + }, + "acm016669jsd" : { + "type" : "ControlElement", + "id" : "acm016669jsd", + "name" : "addProtectedTerm" + }, + "acm016670jsd" : { + "type" : "ControlElement", + "id" : "acm016670jsd", + "name" : "equals" + }, + "acm016671jsd" : { + "type" : "ControlElement", + "id" : "acm016671jsd", + "name" : "hashCode" + }, + "acm016672jsd" : { + "type" : "ClassUnit", + "id" : "acm016672jsd", + "name" : "ProtectedTermsList", + "compilationUnitId" : "acm016652jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd" ], + "content" : [ "acm016657jsd", "acm016658jsd", "acm016659jsd", "acm016660jsd", "acm016661jsd", "acm016662jsd", "acm016663jsd", "acm016664jsd", "acm016665jsd", "acm016666jsd", "acm016667jsd", "acm016668jsd", "acm016669jsd", "acm016670jsd", "acm016671jsd" ] + }, + "acm016673jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016673jsd", + "name" : "ProtectedTermsLoader", + "parentId" : "acm016656jsd", + "content" : [ "acm016690jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016674jsd" : { + "type" : "CodePackage", + "id" : "acm016674jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016675jsd" ] + }, + "acm016675jsd" : { + "type" : "CodePackage", + "id" : "acm016675jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016676jsd" ] + }, + "acm016676jsd" : { + "type" : "CodePackage", + "id" : "acm016676jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016677jsd" ] + }, + "acm016677jsd" : { + "type" : "CodePackage", + "id" : "acm016677jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm016673jsd" ] + }, + "acm016678jsd" : { + "type" : "ControlElement", + "id" : "acm016678jsd", + "name" : "ProtectedTermsLoader" + }, + "acm016679jsd" : { + "type" : "ControlElement", + "id" : "acm016679jsd", + "name" : "getInternalLists" + }, + "acm016680jsd" : { + "type" : "ControlElement", + "id" : "acm016680jsd", + "name" : "update" + }, + "acm016681jsd" : { + "type" : "ControlElement", + "id" : "acm016681jsd", + "name" : "reloadProtectedTermsList" + }, + "acm016682jsd" : { + "type" : "ControlElement", + "id" : "acm016682jsd", + "name" : "getProtectedTermsLists" + }, + "acm016683jsd" : { + "type" : "ControlElement", + "id" : "acm016683jsd", + "name" : "getProtectedTerms" + }, + "acm016684jsd" : { + "type" : "ControlElement", + "id" : "acm016684jsd", + "name" : "addProtectedTermsListFromFile" + }, + "acm016685jsd" : { + "type" : "ControlElement", + "id" : "acm016685jsd", + "name" : "readProtectedTermsListFromResource" + }, + "acm016686jsd" : { + "type" : "ControlElement", + "id" : "acm016686jsd", + "name" : "readProtectedTermsListFromFile" + }, + "acm016687jsd" : { + "type" : "ControlElement", + "id" : "acm016687jsd", + "name" : "removeProtectedTermsList" + }, + "acm016688jsd" : { + "type" : "ControlElement", + "id" : "acm016688jsd", + "name" : "addNewProtectedTermsList" + }, + "acm016689jsd" : { + "type" : "ControlElement", + "id" : "acm016689jsd", + "name" : "addNewProtectedTermsList" + }, + "acm016690jsd" : { + "type" : "ClassUnit", + "id" : "acm016690jsd", + "name" : "ProtectedTermsLoader", + "compilationUnitId" : "acm016673jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd", "acm016690jsd", "acm016701jsd", "acm016716jsd" ], + "content" : [ "acm016678jsd", "acm016679jsd", "acm016680jsd", "acm016681jsd", "acm016682jsd", "acm016683jsd", "acm016684jsd", "acm016685jsd", "acm016686jsd", "acm016687jsd", "acm016688jsd", "acm016689jsd" ] + }, + "acm016691jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016691jsd", + "name" : "ProtectedTermsParser", + "parentId" : "acm016656jsd", + "content" : [ "acm016701jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016692jsd" : { + "type" : "CodePackage", + "id" : "acm016692jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016693jsd" ] + }, + "acm016693jsd" : { + "type" : "CodePackage", + "id" : "acm016693jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016694jsd" ] + }, + "acm016694jsd" : { + "type" : "CodePackage", + "id" : "acm016694jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016695jsd" ] + }, + "acm016695jsd" : { + "type" : "CodePackage", + "id" : "acm016695jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm016691jsd" ] + }, + "acm016696jsd" : { + "type" : "ControlElement", + "id" : "acm016696jsd", + "name" : "readTermsFromResource" + }, + "acm016697jsd" : { + "type" : "ControlElement", + "id" : "acm016697jsd", + "name" : "readTermsFromFile" + }, + "acm016698jsd" : { + "type" : "ControlElement", + "id" : "acm016698jsd", + "name" : "readTermsList" + }, + "acm016699jsd" : { + "type" : "ControlElement", + "id" : "acm016699jsd", + "name" : "setDescription" + }, + "acm016700jsd" : { + "type" : "ControlElement", + "id" : "acm016700jsd", + "name" : "getProtectTermsList" + }, + "acm016701jsd" : { + "type" : "ClassUnit", + "id" : "acm016701jsd", + "name" : "ProtectedTermsParser", + "compilationUnitId" : "acm016691jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd", "acm016690jsd", "acm016701jsd" ], + "content" : [ "acm016696jsd", "acm016697jsd", "acm016698jsd", "acm016699jsd", "acm016700jsd" ] + }, + "acm016702jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016702jsd", + "name" : "ProtectedTermsPreferences", + "parentId" : "acm016656jsd", + "content" : [ "acm016716jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016703jsd" : { + "type" : "CodePackage", + "id" : "acm016703jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016704jsd" ] + }, + "acm016704jsd" : { + "type" : "CodePackage", + "id" : "acm016704jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016705jsd" ] + }, + "acm016705jsd" : { + "type" : "CodePackage", + "id" : "acm016705jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016706jsd" ] + }, + "acm016706jsd" : { + "type" : "CodePackage", + "id" : "acm016706jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm016702jsd" ] + }, + "acm016707jsd" : { + "type" : "ControlElement", + "id" : "acm016707jsd", + "name" : "ProtectedTermsPreferences" + }, + "acm016708jsd" : { + "type" : "ControlElement", + "id" : "acm016708jsd", + "name" : "getEnabledInternalTermLists" + }, + "acm016709jsd" : { + "type" : "ControlElement", + "id" : "acm016709jsd", + "name" : "getEnabledExternalTermLists" + }, + "acm016710jsd" : { + "type" : "ControlElement", + "id" : "acm016710jsd", + "name" : "getDisabledInternalTermLists" + }, + "acm016711jsd" : { + "type" : "ControlElement", + "id" : "acm016711jsd", + "name" : "getDisabledExternalTermLists" + }, + "acm016712jsd" : { + "type" : "ControlElement", + "id" : "acm016712jsd", + "name" : "setEnabledInternalTermLists" + }, + "acm016713jsd" : { + "type" : "ControlElement", + "id" : "acm016713jsd", + "name" : "setEnabledExternalTermLists" + }, + "acm016714jsd" : { + "type" : "ControlElement", + "id" : "acm016714jsd", + "name" : "setDisabledInternalTermLists" + }, + "acm016715jsd" : { + "type" : "ControlElement", + "id" : "acm016715jsd", + "name" : "setDisabledExternalTermLists" + }, + "acm016716jsd" : { + "type" : "ClassUnit", + "id" : "acm016716jsd", + "name" : "ProtectedTermsPreferences", + "compilationUnitId" : "acm016702jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016707jsd", "acm016708jsd", "acm016709jsd", "acm016710jsd", "acm016711jsd", "acm016712jsd", "acm016713jsd", "acm016714jsd", "acm016715jsd" ] + }, + "acm016717jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016717jsd", + "name" : "Protocol", + "parentId" : "acm016721jsd", + "content" : [ "acm016727jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016718jsd" : { + "type" : "CodePackage", + "id" : "acm016718jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016719jsd" ] + }, + "acm016719jsd" : { + "type" : "CodePackage", + "id" : "acm016719jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016720jsd" ] + }, + "acm016720jsd" : { + "type" : "CodePackage", + "id" : "acm016720jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016721jsd" ] + }, + "acm016721jsd" : { + "type" : "CodePackage", + "id" : "acm016721jsd", + "name" : "remote", + "parentId" : "acm001340jsd", + "content" : [ "acm016717jsd", "acm016728jsd", "acm016734jsd", "acm016749jsd", "acm027457jsd", "acm027470jsd", "acm027483jsd", "acm027497jsd", "acm016762jsd", "acm016773jsd" ] + }, + "acm016722jsd" : { + "type" : "ControlElement", + "id" : "acm016722jsd", + "name" : "Protocol" + }, + "acm016723jsd" : { + "type" : "ControlElement", + "id" : "acm016723jsd", + "name" : "sendMessage" + }, + "acm016724jsd" : { + "type" : "ControlElement", + "id" : "acm016724jsd", + "name" : "sendMessage" + }, + "acm016725jsd" : { + "type" : "ControlElement", + "id" : "acm016725jsd", + "name" : "receiveMessage" + }, + "acm016726jsd" : { + "type" : "ControlElement", + "id" : "acm016726jsd", + "name" : "close" + }, + "acm016727jsd" : { + "type" : "ClassUnit", + "id" : "acm016727jsd", + "name" : "Protocol", + "compilationUnitId" : "acm016717jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016727jsd", "acm016733jsd" ], + "content" : [ "acm016722jsd", "acm016723jsd", "acm016724jsd", "acm016725jsd", "acm016726jsd" ] + }, + "acm016728jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016728jsd", + "name" : "RemoteMessage", + "parentId" : "acm016721jsd", + "content" : [ "acm016733jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016729jsd" : { + "type" : "CodePackage", + "id" : "acm016729jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016730jsd" ] + }, + "acm016730jsd" : { + "type" : "CodePackage", + "id" : "acm016730jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016731jsd" ] + }, + "acm016731jsd" : { + "type" : "CodePackage", + "id" : "acm016731jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016732jsd" ] + }, + "acm016732jsd" : { + "type" : "CodePackage", + "id" : "acm016732jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016728jsd" ] + }, + "acm016733jsd" : { + "type" : "ClassUnit", + "id" : "acm016733jsd", + "name" : "RemoteMessage", + "compilationUnitId" : "acm016728jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm016734jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016734jsd", + "name" : "RemotePreferences", + "parentId" : "acm016721jsd", + "content" : [ "acm016748jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016735jsd" : { + "type" : "CodePackage", + "id" : "acm016735jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016736jsd" ] + }, + "acm016736jsd" : { + "type" : "CodePackage", + "id" : "acm016736jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016737jsd" ] + }, + "acm016737jsd" : { + "type" : "CodePackage", + "id" : "acm016737jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016738jsd" ] + }, + "acm016738jsd" : { + "type" : "CodePackage", + "id" : "acm016738jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016734jsd" ] + }, + "acm016739jsd" : { + "type" : "ControlElement", + "id" : "acm016739jsd", + "name" : "RemotePreferences" + }, + "acm016740jsd" : { + "type" : "ControlElement", + "id" : "acm016740jsd", + "name" : "getPort" + }, + "acm016741jsd" : { + "type" : "ControlElement", + "id" : "acm016741jsd", + "name" : "portProperty" + }, + "acm016742jsd" : { + "type" : "ControlElement", + "id" : "acm016742jsd", + "name" : "setPort" + }, + "acm016743jsd" : { + "type" : "ControlElement", + "id" : "acm016743jsd", + "name" : "useRemoteServer" + }, + "acm016744jsd" : { + "type" : "ControlElement", + "id" : "acm016744jsd", + "name" : "useRemoteServerProperty" + }, + "acm016745jsd" : { + "type" : "ControlElement", + "id" : "acm016745jsd", + "name" : "setUseRemoteServer" + }, + "acm016746jsd" : { + "type" : "ControlElement", + "id" : "acm016746jsd", + "name" : "isDifferentPort" + }, + "acm016747jsd" : { + "type" : "ControlElement", + "id" : "acm016747jsd", + "name" : "getIpAddress" + }, + "acm016748jsd" : { + "type" : "ClassUnit", + "id" : "acm016748jsd", + "name" : "RemotePreferences", + "compilationUnitId" : "acm016734jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016739jsd", "acm016740jsd", "acm016741jsd", "acm016742jsd", "acm016743jsd", "acm016744jsd", "acm016745jsd", "acm016746jsd", "acm016747jsd" ] + }, + "acm016749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016749jsd", + "name" : "RemoteUtil", + "parentId" : "acm016721jsd", + "content" : [ "acm016756jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016750jsd" : { + "type" : "CodePackage", + "id" : "acm016750jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016751jsd" ] + }, + "acm016751jsd" : { + "type" : "CodePackage", + "id" : "acm016751jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016752jsd" ] + }, + "acm016752jsd" : { + "type" : "CodePackage", + "id" : "acm016752jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016753jsd" ] + }, + "acm016753jsd" : { + "type" : "CodePackage", + "id" : "acm016753jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016749jsd" ] + }, + "acm016754jsd" : { + "type" : "ControlElement", + "id" : "acm016754jsd", + "name" : "RemoteUtil" + }, + "acm016755jsd" : { + "type" : "ControlElement", + "id" : "acm016755jsd", + "name" : "isUserPort" + }, + "acm016756jsd" : { + "type" : "ClassUnit", + "id" : "acm016756jsd", + "name" : "RemoteUtil", + "compilationUnitId" : "acm016749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016754jsd", "acm016755jsd" ] + }, + "acm016757jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016757jsd", + "name" : "RemoteClient", + "parentId" : "acm016762jsd", + "content" : [ "acm016767jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote", "client" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016758jsd" : { + "type" : "CodePackage", + "id" : "acm016758jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016759jsd" ] + }, + "acm016759jsd" : { + "type" : "CodePackage", + "id" : "acm016759jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016760jsd" ] + }, + "acm016760jsd" : { + "type" : "CodePackage", + "id" : "acm016760jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016761jsd" ] + }, + "acm016761jsd" : { + "type" : "CodePackage", + "id" : "acm016761jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016762jsd" ] + }, + "acm016762jsd" : { + "type" : "CodePackage", + "id" : "acm016762jsd", + "name" : "client", + "parentId" : "acm016721jsd", + "content" : [ "acm016757jsd" ] + }, + "acm016763jsd" : { + "type" : "ControlElement", + "id" : "acm016763jsd", + "name" : "RemoteClient" + }, + "acm016764jsd" : { + "type" : "ControlElement", + "id" : "acm016764jsd", + "name" : "ping" + }, + "acm016765jsd" : { + "type" : "ControlElement", + "id" : "acm016765jsd", + "name" : "sendCommandLineArguments" + }, + "acm016766jsd" : { + "type" : "ControlElement", + "id" : "acm016766jsd", + "name" : "openNewConnection" + }, + "acm016767jsd" : { + "type" : "ClassUnit", + "id" : "acm016767jsd", + "name" : "RemoteClient", + "compilationUnitId" : "acm016757jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016727jsd", "acm016733jsd", "acm016767jsd" ], + "content" : [ "acm016763jsd", "acm016764jsd", "acm016765jsd", "acm016766jsd" ] + }, + "acm016768jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016768jsd", + "name" : "RemoteListenerServer", + "parentId" : "acm016773jsd", + "content" : [ "acm016778jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote", "server" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016769jsd" : { + "type" : "CodePackage", + "id" : "acm016769jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016770jsd" ] + }, + "acm016770jsd" : { + "type" : "CodePackage", + "id" : "acm016770jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016771jsd" ] + }, + "acm016771jsd" : { + "type" : "CodePackage", + "id" : "acm016771jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016772jsd" ] + }, + "acm016772jsd" : { + "type" : "CodePackage", + "id" : "acm016772jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016773jsd" ] + }, + "acm016773jsd" : { + "type" : "CodePackage", + "id" : "acm016773jsd", + "name" : "server", + "parentId" : "acm016721jsd", + "content" : [ "acm016768jsd", "acm016779jsd", "acm016793jsd", "acm016803jsd" ] + }, + "acm016774jsd" : { + "type" : "ControlElement", + "id" : "acm016774jsd", + "name" : "RemoteListenerServer" + }, + "acm016775jsd" : { + "type" : "ControlElement", + "id" : "acm016775jsd", + "name" : "run" + }, + "acm016776jsd" : { + "type" : "ControlElement", + "id" : "acm016776jsd", + "name" : "handleMessage" + }, + "acm016777jsd" : { + "type" : "ControlElement", + "id" : "acm016777jsd", + "name" : "closeServerSocket" + }, + "acm016778jsd" : { + "type" : "ClassUnit", + "id" : "acm016778jsd", + "name" : "RemoteListenerServer", + "compilationUnitId" : "acm016768jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016727jsd", "acm016733jsd", "acm016778jsd", "acm016810jsd" ], + "content" : [ "acm016774jsd", "acm016775jsd", "acm016776jsd", "acm016777jsd" ] + }, + "acm016779jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016779jsd", + "name" : "RemoteListenerServerManager", + "parentId" : "acm016773jsd", + "content" : [ "acm016792jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote", "server" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016780jsd" : { + "type" : "CodePackage", + "id" : "acm016780jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016781jsd" ] + }, + "acm016781jsd" : { + "type" : "CodePackage", + "id" : "acm016781jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016782jsd" ] + }, + "acm016782jsd" : { + "type" : "CodePackage", + "id" : "acm016782jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016783jsd" ] + }, + "acm016783jsd" : { + "type" : "CodePackage", + "id" : "acm016783jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016784jsd" ] + }, + "acm016784jsd" : { + "type" : "CodePackage", + "id" : "acm016784jsd", + "name" : "server", + "parentId" : null, + "content" : [ "acm016779jsd" ] + }, + "acm016785jsd" : { + "type" : "ControlElement", + "id" : "acm016785jsd", + "name" : "stop" + }, + "acm016786jsd" : { + "type" : "ControlElement", + "id" : "acm016786jsd", + "name" : "open" + }, + "acm016787jsd" : { + "type" : "ControlElement", + "id" : "acm016787jsd", + "name" : "isOpen" + }, + "acm016788jsd" : { + "type" : "ControlElement", + "id" : "acm016788jsd", + "name" : "start" + }, + "acm016789jsd" : { + "type" : "ControlElement", + "id" : "acm016789jsd", + "name" : "isNotStartedBefore" + }, + "acm016790jsd" : { + "type" : "ControlElement", + "id" : "acm016790jsd", + "name" : "openAndStart" + }, + "acm016791jsd" : { + "type" : "ControlElement", + "id" : "acm016791jsd", + "name" : "close" + }, + "acm016792jsd" : { + "type" : "ClassUnit", + "id" : "acm016792jsd", + "name" : "RemoteListenerServerManager", + "compilationUnitId" : "acm016779jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016792jsd", "acm016802jsd", "acm016810jsd" ], + "content" : [ "acm016785jsd", "acm016786jsd", "acm016787jsd", "acm016788jsd", "acm016789jsd", "acm016790jsd", "acm016791jsd" ] + }, + "acm016793jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016793jsd", + "name" : "RemoteListenerServerThread", + "parentId" : "acm016773jsd", + "content" : [ "acm016802jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote", "server" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016794jsd" : { + "type" : "CodePackage", + "id" : "acm016794jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016795jsd" ] + }, + "acm016795jsd" : { + "type" : "CodePackage", + "id" : "acm016795jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016796jsd" ] + }, + "acm016796jsd" : { + "type" : "CodePackage", + "id" : "acm016796jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016797jsd" ] + }, + "acm016797jsd" : { + "type" : "CodePackage", + "id" : "acm016797jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016798jsd" ] + }, + "acm016798jsd" : { + "type" : "CodePackage", + "id" : "acm016798jsd", + "name" : "server", + "parentId" : null, + "content" : [ "acm016793jsd" ] + }, + "acm016799jsd" : { + "type" : "ControlElement", + "id" : "acm016799jsd", + "name" : "RemoteListenerServerThread" + }, + "acm016800jsd" : { + "type" : "ControlElement", + "id" : "acm016800jsd", + "name" : "interrupt" + }, + "acm016801jsd" : { + "type" : "ControlElement", + "id" : "acm016801jsd", + "name" : "run" + }, + "acm016802jsd" : { + "type" : "ClassUnit", + "id" : "acm016802jsd", + "name" : "RemoteListenerServerThread", + "compilationUnitId" : "acm016793jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016778jsd", "acm016802jsd", "acm016810jsd" ], + "content" : [ "acm016799jsd", "acm016800jsd", "acm016801jsd" ] + }, + "acm016803jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016803jsd", + "name" : "RemoteMessageHandler", + "parentId" : "acm016773jsd", + "content" : [ "acm016810jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "remote", "server" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016804jsd" : { + "type" : "CodePackage", + "id" : "acm016804jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016805jsd" ] + }, + "acm016805jsd" : { + "type" : "CodePackage", + "id" : "acm016805jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016806jsd" ] + }, + "acm016806jsd" : { + "type" : "CodePackage", + "id" : "acm016806jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016807jsd" ] + }, + "acm016807jsd" : { + "type" : "CodePackage", + "id" : "acm016807jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm016808jsd" ] + }, + "acm016808jsd" : { + "type" : "CodePackage", + "id" : "acm016808jsd", + "name" : "server", + "parentId" : null, + "content" : [ "acm016803jsd" ] + }, + "acm016809jsd" : { + "type" : "ControlElement", + "id" : "acm016809jsd", + "name" : "handleCommandLineArguments" + }, + "acm016810jsd" : { + "type" : "InterfaceUnit", + "id" : "acm016810jsd", + "name" : "RemoteMessageHandler", + "compilationUnitId" : "acm016803jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016809jsd" ] + }, + "acm016811jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016811jsd", + "name" : "DatabaseSearcher", + "parentId" : "acm016815jsd", + "content" : [ "acm016818jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016812jsd" : { + "type" : "CodePackage", + "id" : "acm016812jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016813jsd" ] + }, + "acm016813jsd" : { + "type" : "CodePackage", + "id" : "acm016813jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016814jsd" ] + }, + "acm016814jsd" : { + "type" : "CodePackage", + "id" : "acm016814jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016815jsd" ] + }, + "acm016815jsd" : { + "type" : "CodePackage", + "id" : "acm016815jsd", + "name" : "search", + "parentId" : "acm001340jsd", + "content" : [ "acm016811jsd", "acm016819jsd", "acm027507jsd", "acm027524jsd" ] + }, + "acm016816jsd" : { + "type" : "ControlElement", + "id" : "acm016816jsd", + "name" : "DatabaseSearcher" + }, + "acm016817jsd" : { + "type" : "ControlElement", + "id" : "acm016817jsd", + "name" : "getMatches" + }, + "acm016818jsd" : { + "type" : "ClassUnit", + "id" : "acm016818jsd", + "name" : "DatabaseSearcher", + "compilationUnitId" : "acm016811jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016818jsd", "acm016845jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm016816jsd", "acm016817jsd" ] + }, + "acm016819jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016819jsd", + "name" : "SearchQuery", + "parentId" : "acm016815jsd", + "content" : [ "acm016845jsd", "acm016849jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016820jsd" : { + "type" : "CodePackage", + "id" : "acm016820jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016821jsd" ] + }, + "acm016821jsd" : { + "type" : "CodePackage", + "id" : "acm016821jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016822jsd" ] + }, + "acm016822jsd" : { + "type" : "CodePackage", + "id" : "acm016822jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016823jsd" ] + }, + "acm016823jsd" : { + "type" : "CodePackage", + "id" : "acm016823jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm016819jsd" ] + }, + "acm016824jsd" : { + "type" : "ControlElement", + "id" : "acm016824jsd", + "name" : "format" + }, + "acm016825jsd" : { + "type" : "ControlElement", + "id" : "acm016825jsd", + "name" : "format" + }, + "acm016826jsd" : { + "type" : "ControlElement", + "id" : "acm016826jsd", + "name" : "format" + }, + "acm016827jsd" : { + "type" : "ControlElement", + "id" : "acm016827jsd", + "name" : "SearchQuery" + }, + "acm016828jsd" : { + "type" : "ControlElement", + "id" : "acm016828jsd", + "name" : "toString" + }, + "acm016829jsd" : { + "type" : "ControlElement", + "id" : "acm016829jsd", + "name" : "isMatch" + }, + "acm016830jsd" : { + "type" : "ControlElement", + "id" : "acm016830jsd", + "name" : "isValid" + }, + "acm016831jsd" : { + "type" : "ControlElement", + "id" : "acm016831jsd", + "name" : "isContainsBasedSearch" + }, + "acm016832jsd" : { + "type" : "ControlElement", + "id" : "acm016832jsd", + "name" : "getCaseSensitiveDescription" + }, + "acm016833jsd" : { + "type" : "ControlElement", + "id" : "acm016833jsd", + "name" : "getRegularExpressionDescription" + }, + "acm016834jsd" : { + "type" : "ControlElement", + "id" : "acm016834jsd", + "name" : "localize" + }, + "acm016835jsd" : { + "type" : "ControlElement", + "id" : "acm016835jsd", + "name" : "getLocalizedCaseSensitiveDescription" + }, + "acm016836jsd" : { + "type" : "ControlElement", + "id" : "acm016836jsd", + "name" : "getLocalizedRegularExpressionDescription" + }, + "acm016837jsd" : { + "type" : "ControlElement", + "id" : "acm016837jsd", + "name" : "isGrammarBasedSearch" + }, + "acm016838jsd" : { + "type" : "ControlElement", + "id" : "acm016838jsd", + "name" : "getQuery" + }, + "acm016839jsd" : { + "type" : "ControlElement", + "id" : "acm016839jsd", + "name" : "getSearchFlags" + }, + "acm016840jsd" : { + "type" : "ControlElement", + "id" : "acm016840jsd", + "name" : "getSearchWords" + }, + "acm016841jsd" : { + "type" : "ControlElement", + "id" : "acm016841jsd", + "name" : "getPatternForWords" + }, + "acm016842jsd" : { + "type" : "ControlElement", + "id" : "acm016842jsd", + "name" : "getJavaScriptPatternForWords" + }, + "acm016843jsd" : { + "type" : "ControlElement", + "id" : "acm016843jsd", + "name" : "joinWordsToPattern" + }, + "acm016844jsd" : { + "type" : "ControlElement", + "id" : "acm016844jsd", + "name" : "getRule" + }, + "acm016845jsd" : { + "type" : "ClassUnit", + "id" : "acm016845jsd", + "name" : "SearchQuery", + "compilationUnitId" : "acm016819jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm016849jsd", "acm018267jsd", "acm020385jsd", "acm020424jsd", "acm020461jsd", "acm020473jsd", "acm020482jsd" ], + "content" : [ "acm016824jsd", "acm016825jsd", "acm016826jsd", "acm016827jsd", "acm016828jsd", "acm016829jsd", "acm016830jsd", "acm016831jsd", "acm016832jsd", "acm016833jsd", "acm016834jsd", "acm016835jsd", "acm016836jsd", "acm016837jsd", "acm016838jsd", "acm016839jsd", "acm016840jsd", "acm016841jsd", "acm016842jsd", "acm016843jsd", "acm016844jsd" ] + }, + "acm016846jsd" : { + "type" : "ControlElement", + "id" : "acm016846jsd", + "name" : "format" + }, + "acm016847jsd" : { + "type" : "ControlElement", + "id" : "acm016847jsd", + "name" : "format" + }, + "acm016848jsd" : { + "type" : "ControlElement", + "id" : "acm016848jsd", + "name" : "format" + }, + "acm016849jsd" : { + "type" : "ClassUnit", + "id" : "acm016849jsd", + "name" : "EscapeMode", + "compilationUnitId" : "acm016819jsd", + "parentDatatypeId" : "acm016845jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm016846jsd", "acm016847jsd", "acm016848jsd" ] + }, + "acm016850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016850jsd", + "name" : "DBMSConnection", + "parentId" : "acm016854jsd", + "content" : [ "acm016859jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016851jsd" : { + "type" : "CodePackage", + "id" : "acm016851jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016852jsd" ] + }, + "acm016852jsd" : { + "type" : "CodePackage", + "id" : "acm016852jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016853jsd" ] + }, + "acm016853jsd" : { + "type" : "CodePackage", + "id" : "acm016853jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016854jsd" ] + }, + "acm016854jsd" : { + "type" : "CodePackage", + "id" : "acm016854jsd", + "name" : "shared", + "parentId" : "acm001340jsd", + "content" : [ "acm016850jsd", "acm016860jsd", "acm016883jsd", "acm016900jsd", "acm016936jsd", "acm016967jsd", "acm016979jsd", "acm016987jsd", "acm017004jsd", "acm017010jsd", "acm017017jsd", "acm017031jsd", "acm017042jsd", "acm017058jsd", "acm027560jsd", "acm027568jsd", "acm027576jsd", "acm027583jsd", "acm027622jsd", "acm027641jsd", "acm027668jsd", "acm027678jsd", "acm027692jsd", "acm017078jsd", "acm017107jsd", "acm017142jsd", "acm017161jsd", "acm017199jsd" ] + }, + "acm016855jsd" : { + "type" : "ControlElement", + "id" : "acm016855jsd", + "name" : "DBMSConnection" + }, + "acm016856jsd" : { + "type" : "ControlElement", + "id" : "acm016856jsd", + "name" : "getConnection" + }, + "acm016857jsd" : { + "type" : "ControlElement", + "id" : "acm016857jsd", + "name" : "getProperties" + }, + "acm016858jsd" : { + "type" : "ControlElement", + "id" : "acm016858jsd", + "name" : "getAvailableDBMSTypes" + }, + "acm016859jsd" : { + "type" : "ClassUnit", + "id" : "acm016859jsd", + "name" : "DBMSConnection", + "compilationUnitId" : "acm016850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm016986jsd" ], + "datatypeReferencesIds" : [ "acm016859jsd", "acm016882jsd", "acm016978jsd", "acm017109jsd" ], + "content" : [ "acm016855jsd", "acm016856jsd", "acm016857jsd", "acm016858jsd" ] + }, + "acm016860jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016860jsd", + "name" : "DBMSConnectionProperties", + "parentId" : "acm016854jsd", + "content" : [ "acm016882jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016861jsd" : { + "type" : "CodePackage", + "id" : "acm016861jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016862jsd" ] + }, + "acm016862jsd" : { + "type" : "CodePackage", + "id" : "acm016862jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016863jsd" ] + }, + "acm016863jsd" : { + "type" : "CodePackage", + "id" : "acm016863jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016864jsd" ] + }, + "acm016864jsd" : { + "type" : "CodePackage", + "id" : "acm016864jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016860jsd" ] + }, + "acm016865jsd" : { + "type" : "ControlElement", + "id" : "acm016865jsd", + "name" : "DBMSConnectionProperties" + }, + "acm016866jsd" : { + "type" : "ControlElement", + "id" : "acm016866jsd", + "name" : "DBMSConnectionProperties" + }, + "acm016867jsd" : { + "type" : "ControlElement", + "id" : "acm016867jsd", + "name" : "getType" + }, + "acm016868jsd" : { + "type" : "ControlElement", + "id" : "acm016868jsd", + "name" : "getHost" + }, + "acm016869jsd" : { + "type" : "ControlElement", + "id" : "acm016869jsd", + "name" : "getPort" + }, + "acm016870jsd" : { + "type" : "ControlElement", + "id" : "acm016870jsd", + "name" : "getDatabase" + }, + "acm016871jsd" : { + "type" : "ControlElement", + "id" : "acm016871jsd", + "name" : "getUser" + }, + "acm016872jsd" : { + "type" : "ControlElement", + "id" : "acm016872jsd", + "name" : "getPassword" + }, + "acm016873jsd" : { + "type" : "ControlElement", + "id" : "acm016873jsd", + "name" : "isUseSSL" + }, + "acm016874jsd" : { + "type" : "ControlElement", + "id" : "acm016874jsd", + "name" : "isAllowPublicKeyRetrieval" + }, + "acm016875jsd" : { + "type" : "ControlElement", + "id" : "acm016875jsd", + "name" : "getServerTimezone" + }, + "acm016876jsd" : { + "type" : "ControlElement", + "id" : "acm016876jsd", + "name" : "getUrl" + }, + "acm016877jsd" : { + "type" : "ControlElement", + "id" : "acm016877jsd", + "name" : "asProperties" + }, + "acm016878jsd" : { + "type" : "ControlElement", + "id" : "acm016878jsd", + "name" : "getKeyStore" + }, + "acm016879jsd" : { + "type" : "ControlElement", + "id" : "acm016879jsd", + "name" : "equals" + }, + "acm016880jsd" : { + "type" : "ControlElement", + "id" : "acm016880jsd", + "name" : "hashCode" + }, + "acm016881jsd" : { + "type" : "ControlElement", + "id" : "acm016881jsd", + "name" : "isValid" + }, + "acm016882jsd" : { + "type" : "ClassUnit", + "id" : "acm016882jsd", + "name" : "DBMSConnectionProperties", + "compilationUnitId" : "acm016860jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017003jsd" ], + "datatypeReferencesIds" : [ "acm016882jsd", "acm016978jsd", "acm017193jsd", "acm017205jsd" ], + "content" : [ "acm016865jsd", "acm016866jsd", "acm016867jsd", "acm016868jsd", "acm016869jsd", "acm016870jsd", "acm016871jsd", "acm016872jsd", "acm016873jsd", "acm016874jsd", "acm016875jsd", "acm016876jsd", "acm016877jsd", "acm016878jsd", "acm016879jsd", "acm016880jsd", "acm016881jsd" ] + }, + "acm016883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016883jsd", + "name" : "DBMSConnectionPropertiesBuilder", + "parentId" : "acm016854jsd", + "content" : [ "acm016899jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016884jsd" : { + "type" : "CodePackage", + "id" : "acm016884jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016885jsd" ] + }, + "acm016885jsd" : { + "type" : "CodePackage", + "id" : "acm016885jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016886jsd" ] + }, + "acm016886jsd" : { + "type" : "CodePackage", + "id" : "acm016886jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016887jsd" ] + }, + "acm016887jsd" : { + "type" : "CodePackage", + "id" : "acm016887jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016883jsd" ] + }, + "acm016888jsd" : { + "type" : "ControlElement", + "id" : "acm016888jsd", + "name" : "setType" + }, + "acm016889jsd" : { + "type" : "ControlElement", + "id" : "acm016889jsd", + "name" : "setHost" + }, + "acm016890jsd" : { + "type" : "ControlElement", + "id" : "acm016890jsd", + "name" : "setPort" + }, + "acm016891jsd" : { + "type" : "ControlElement", + "id" : "acm016891jsd", + "name" : "setDatabase" + }, + "acm016892jsd" : { + "type" : "ControlElement", + "id" : "acm016892jsd", + "name" : "setUser" + }, + "acm016893jsd" : { + "type" : "ControlElement", + "id" : "acm016893jsd", + "name" : "setPassword" + }, + "acm016894jsd" : { + "type" : "ControlElement", + "id" : "acm016894jsd", + "name" : "setUseSSL" + }, + "acm016895jsd" : { + "type" : "ControlElement", + "id" : "acm016895jsd", + "name" : "setAllowPublicKeyRetrieval" + }, + "acm016896jsd" : { + "type" : "ControlElement", + "id" : "acm016896jsd", + "name" : "setServerTimezone" + }, + "acm016897jsd" : { + "type" : "ControlElement", + "id" : "acm016897jsd", + "name" : "setKeyStore" + }, + "acm016898jsd" : { + "type" : "ControlElement", + "id" : "acm016898jsd", + "name" : "createDBMSConnectionProperties" + }, + "acm016899jsd" : { + "type" : "ClassUnit", + "id" : "acm016899jsd", + "name" : "DBMSConnectionPropertiesBuilder", + "compilationUnitId" : "acm016883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016882jsd", "acm016899jsd", "acm016978jsd" ], + "content" : [ "acm016888jsd", "acm016889jsd", "acm016890jsd", "acm016891jsd", "acm016892jsd", "acm016893jsd", "acm016894jsd", "acm016895jsd", "acm016896jsd", "acm016897jsd", "acm016898jsd" ] + }, + "acm016900jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016900jsd", + "name" : "DBMSProcessor", + "parentId" : "acm016854jsd", + "content" : [ "acm016935jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016901jsd" : { + "type" : "CodePackage", + "id" : "acm016901jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016902jsd" ] + }, + "acm016902jsd" : { + "type" : "CodePackage", + "id" : "acm016902jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016903jsd" ] + }, + "acm016903jsd" : { + "type" : "CodePackage", + "id" : "acm016903jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016904jsd" ] + }, + "acm016904jsd" : { + "type" : "CodePackage", + "id" : "acm016904jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016900jsd" ] + }, + "acm016905jsd" : { + "type" : "ControlElement", + "id" : "acm016905jsd", + "name" : "DBMSProcessor" + }, + "acm016906jsd" : { + "type" : "ControlElement", + "id" : "acm016906jsd", + "name" : "checkBaseIntegrity" + }, + "acm016907jsd" : { + "type" : "ControlElement", + "id" : "acm016907jsd", + "name" : "databaseIsAtMostJabRef35" + }, + "acm016908jsd" : { + "type" : "ControlElement", + "id" : "acm016908jsd", + "name" : "checkTableAvailability" + }, + "acm016909jsd" : { + "type" : "ControlElement", + "id" : "acm016909jsd", + "name" : "setupSharedDatabase" + }, + "acm016910jsd" : { + "type" : "ControlElement", + "id" : "acm016910jsd", + "name" : "setUp" + }, + "acm016911jsd" : { + "type" : "ControlElement", + "id" : "acm016911jsd", + "name" : "escape" + }, + "acm016912jsd" : { + "type" : "ControlElement", + "id" : "acm016912jsd", + "name" : "escape_Table" + }, + "acm016913jsd" : { + "type" : "ControlElement", + "id" : "acm016913jsd", + "name" : "getCURRENT_VERSION_DB_STRUCT" + }, + "acm016914jsd" : { + "type" : "ControlElement", + "id" : "acm016914jsd", + "name" : "insertEntry" + }, + "acm016915jsd" : { + "type" : "ControlElement", + "id" : "acm016915jsd", + "name" : "insertEntries" + }, + "acm016916jsd" : { + "type" : "ControlElement", + "id" : "acm016916jsd", + "name" : "insertIntoEntryTable" + }, + "acm016917jsd" : { + "type" : "ControlElement", + "id" : "acm016917jsd", + "name" : "getNotYetExistingEntries" + }, + "acm016918jsd" : { + "type" : "ControlElement", + "id" : "acm016918jsd", + "name" : "insertIntoFieldTable" + }, + "acm016919jsd" : { + "type" : "ControlElement", + "id" : "acm016919jsd", + "name" : "updateEntry" + }, + "acm016920jsd" : { + "type" : "ControlElement", + "id" : "acm016920jsd", + "name" : "removeSharedFieldsByDifference" + }, + "acm016921jsd" : { + "type" : "ControlElement", + "id" : "acm016921jsd", + "name" : "insertOrUpdateFields" + }, + "acm016922jsd" : { + "type" : "ControlElement", + "id" : "acm016922jsd", + "name" : "removeEntries" + }, + "acm016923jsd" : { + "type" : "ControlElement", + "id" : "acm016923jsd", + "name" : "getSharedEntry" + }, + "acm016924jsd" : { + "type" : "ControlElement", + "id" : "acm016924jsd", + "name" : "partitionAndGetSharedEntries" + }, + "acm016925jsd" : { + "type" : "ControlElement", + "id" : "acm016925jsd", + "name" : "getSharedEntries" + }, + "acm016926jsd" : { + "type" : "ControlElement", + "id" : "acm016926jsd", + "name" : "getSharedEntries" + }, + "acm016927jsd" : { + "type" : "ControlElement", + "id" : "acm016927jsd", + "name" : "getSharedIDVersionMapping" + }, + "acm016928jsd" : { + "type" : "ControlElement", + "id" : "acm016928jsd", + "name" : "getSharedMetaData" + }, + "acm016929jsd" : { + "type" : "ControlElement", + "id" : "acm016929jsd", + "name" : "setSharedMetaData" + }, + "acm016930jsd" : { + "type" : "ControlElement", + "id" : "acm016930jsd", + "name" : "getProcessorInstance" + }, + "acm016931jsd" : { + "type" : "ControlElement", + "id" : "acm016931jsd", + "name" : "getDBMSConnectionProperties" + }, + "acm016932jsd" : { + "type" : "ControlElement", + "id" : "acm016932jsd", + "name" : "startNotificationListener" + }, + "acm016933jsd" : { + "type" : "ControlElement", + "id" : "acm016933jsd", + "name" : "stopNotificationListener" + }, + "acm016934jsd" : { + "type" : "ControlElement", + "id" : "acm016934jsd", + "name" : "notifyClients" + }, + "acm016935jsd" : { + "type" : "ClassUnit", + "id" : "acm016935jsd", + "name" : "DBMSProcessor", + "compilationUnitId" : "acm016900jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016935jsd", "acm016966jsd", "acm016978jsd", "acm016986jsd", "acm017003jsd", "acm017041jsd", "acm017057jsd", "acm017072jsd", "acm017127jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm016905jsd", "acm016906jsd", "acm016907jsd", "acm016908jsd", "acm016909jsd", "acm016910jsd", "acm016911jsd", "acm016912jsd", "acm016913jsd", "acm016914jsd", "acm016915jsd", "acm016916jsd", "acm016917jsd", "acm016918jsd", "acm016919jsd", "acm016920jsd", "acm016921jsd", "acm016922jsd", "acm016923jsd", "acm016924jsd", "acm016925jsd", "acm016926jsd", "acm016927jsd", "acm016928jsd", "acm016929jsd", "acm016930jsd", "acm016931jsd", "acm016932jsd", "acm016933jsd", "acm016934jsd" ] + }, + "acm016936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016936jsd", + "name" : "DBMSSynchronizer", + "parentId" : "acm016854jsd", + "content" : [ "acm016966jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016937jsd" : { + "type" : "CodePackage", + "id" : "acm016937jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016938jsd" ] + }, + "acm016938jsd" : { + "type" : "CodePackage", + "id" : "acm016938jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016939jsd" ] + }, + "acm016939jsd" : { + "type" : "CodePackage", + "id" : "acm016939jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016940jsd" ] + }, + "acm016940jsd" : { + "type" : "CodePackage", + "id" : "acm016940jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016936jsd" ] + }, + "acm016941jsd" : { + "type" : "ControlElement", + "id" : "acm016941jsd", + "name" : "DBMSSynchronizer" + }, + "acm016942jsd" : { + "type" : "ControlElement", + "id" : "acm016942jsd", + "name" : "listen" + }, + "acm016943jsd" : { + "type" : "ControlElement", + "id" : "acm016943jsd", + "name" : "listen" + }, + "acm016944jsd" : { + "type" : "ControlElement", + "id" : "acm016944jsd", + "name" : "listen" + }, + "acm016945jsd" : { + "type" : "ControlElement", + "id" : "acm016945jsd", + "name" : "listen" + }, + "acm016946jsd" : { + "type" : "ControlElement", + "id" : "acm016946jsd", + "name" : "initializeDatabases" + }, + "acm016947jsd" : { + "type" : "ControlElement", + "id" : "acm016947jsd", + "name" : "synchronizeLocalDatabase" + }, + "acm016948jsd" : { + "type" : "ControlElement", + "id" : "acm016948jsd", + "name" : "removeNotSharedEntries" + }, + "acm016949jsd" : { + "type" : "ControlElement", + "id" : "acm016949jsd", + "name" : "synchronizeSharedEntry" + }, + "acm016950jsd" : { + "type" : "ControlElement", + "id" : "acm016950jsd", + "name" : "synchronizeLocalMetaData" + }, + "acm016951jsd" : { + "type" : "ControlElement", + "id" : "acm016951jsd", + "name" : "synchronizeSharedMetaData" + }, + "acm016952jsd" : { + "type" : "ControlElement", + "id" : "acm016952jsd", + "name" : "applyMetaData" + }, + "acm016953jsd" : { + "type" : "ControlElement", + "id" : "acm016953jsd", + "name" : "pullChanges" + }, + "acm016954jsd" : { + "type" : "ControlElement", + "id" : "acm016954jsd", + "name" : "pullLastEntryChanges" + }, + "acm016955jsd" : { + "type" : "ControlElement", + "id" : "acm016955jsd", + "name" : "pullWithLastEntry" + }, + "acm016956jsd" : { + "type" : "ControlElement", + "id" : "acm016956jsd", + "name" : "checkCurrentConnection" + }, + "acm016957jsd" : { + "type" : "ControlElement", + "id" : "acm016957jsd", + "name" : "isEventSourceAccepted" + }, + "acm016958jsd" : { + "type" : "ControlElement", + "id" : "acm016958jsd", + "name" : "openSharedDatabase" + }, + "acm016959jsd" : { + "type" : "ControlElement", + "id" : "acm016959jsd", + "name" : "closeSharedDatabase" + }, + "acm016960jsd" : { + "type" : "ControlElement", + "id" : "acm016960jsd", + "name" : "isPresentLocalBibEntry" + }, + "acm016961jsd" : { + "type" : "ControlElement", + "id" : "acm016961jsd", + "name" : "getDBName" + }, + "acm016962jsd" : { + "type" : "ControlElement", + "id" : "acm016962jsd", + "name" : "getDBProcessor" + }, + "acm016963jsd" : { + "type" : "ControlElement", + "id" : "acm016963jsd", + "name" : "getConnectionProperties" + }, + "acm016964jsd" : { + "type" : "ControlElement", + "id" : "acm016964jsd", + "name" : "setMetaData" + }, + "acm016965jsd" : { + "type" : "ControlElement", + "id" : "acm016965jsd", + "name" : "registerListener" + }, + "acm016966jsd" : { + "type" : "ClassUnit", + "id" : "acm016966jsd", + "name" : "DBMSSynchronizer", + "compilationUnitId" : "acm016936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017030jsd" ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm012515jsd", "acm014473jsd", "acm016935jsd", "acm016966jsd", "acm016986jsd", "acm017003jsd", "acm017016jsd", "acm017081jsd", "acm017090jsd", "acm017101jsd", "acm017127jsd", "acm017988jsd", "acm018022jsd", "acm018106jsd", "acm018115jsd", "acm018267jsd", "acm018563jsd", "acm018570jsd", "acm018604jsd", "acm019421jsd", "acm019467jsd", "acm020693jsd" ], + "content" : [ "acm016941jsd", "acm016942jsd", "acm016943jsd", "acm016944jsd", "acm016945jsd", "acm016946jsd", "acm016947jsd", "acm016948jsd", "acm016949jsd", "acm016950jsd", "acm016951jsd", "acm016952jsd", "acm016953jsd", "acm016954jsd", "acm016955jsd", "acm016956jsd", "acm016957jsd", "acm016958jsd", "acm016959jsd", "acm016960jsd", "acm016961jsd", "acm016962jsd", "acm016963jsd", "acm016964jsd", "acm016965jsd" ] + }, + "acm016967jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016967jsd", + "name" : "DBMSType", + "parentId" : "acm016854jsd", + "content" : [ "acm016978jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016968jsd" : { + "type" : "CodePackage", + "id" : "acm016968jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016969jsd" ] + }, + "acm016969jsd" : { + "type" : "CodePackage", + "id" : "acm016969jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016970jsd" ] + }, + "acm016970jsd" : { + "type" : "CodePackage", + "id" : "acm016970jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016971jsd" ] + }, + "acm016971jsd" : { + "type" : "CodePackage", + "id" : "acm016971jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016967jsd" ] + }, + "acm016972jsd" : { + "type" : "ControlElement", + "id" : "acm016972jsd", + "name" : "DBMSType" + }, + "acm016973jsd" : { + "type" : "ControlElement", + "id" : "acm016973jsd", + "name" : "fromString" + }, + "acm016974jsd" : { + "type" : "ControlElement", + "id" : "acm016974jsd", + "name" : "toString" + }, + "acm016975jsd" : { + "type" : "ControlElement", + "id" : "acm016975jsd", + "name" : "getDriverClassPath" + }, + "acm016976jsd" : { + "type" : "ControlElement", + "id" : "acm016976jsd", + "name" : "getUrl" + }, + "acm016977jsd" : { + "type" : "ControlElement", + "id" : "acm016977jsd", + "name" : "getDefaultPort" + }, + "acm016978jsd" : { + "type" : "ClassUnit", + "id" : "acm016978jsd", + "name" : "DBMSType", + "compilationUnitId" : "acm016967jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016978jsd" ], + "content" : [ "acm016972jsd", "acm016973jsd", "acm016974jsd", "acm016975jsd", "acm016976jsd", "acm016977jsd" ] + }, + "acm016979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016979jsd", + "name" : "DatabaseConnection", + "parentId" : "acm016854jsd", + "content" : [ "acm016986jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016980jsd" : { + "type" : "CodePackage", + "id" : "acm016980jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016981jsd" ] + }, + "acm016981jsd" : { + "type" : "CodePackage", + "id" : "acm016981jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016982jsd" ] + }, + "acm016982jsd" : { + "type" : "CodePackage", + "id" : "acm016982jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016983jsd" ] + }, + "acm016983jsd" : { + "type" : "CodePackage", + "id" : "acm016983jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016979jsd" ] + }, + "acm016984jsd" : { + "type" : "ControlElement", + "id" : "acm016984jsd", + "name" : "getProperties" + }, + "acm016985jsd" : { + "type" : "ControlElement", + "id" : "acm016985jsd", + "name" : "getConnection" + }, + "acm016986jsd" : { + "type" : "InterfaceUnit", + "id" : "acm016986jsd", + "name" : "DatabaseConnection", + "compilationUnitId" : "acm016979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017003jsd" ], + "content" : [ "acm016984jsd", "acm016985jsd" ] + }, + "acm016987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm016987jsd", + "name" : "DatabaseConnectionProperties", + "parentId" : "acm016854jsd", + "content" : [ "acm017003jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm016988jsd" : { + "type" : "CodePackage", + "id" : "acm016988jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm016989jsd" ] + }, + "acm016989jsd" : { + "type" : "CodePackage", + "id" : "acm016989jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm016990jsd" ] + }, + "acm016990jsd" : { + "type" : "CodePackage", + "id" : "acm016990jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm016991jsd" ] + }, + "acm016991jsd" : { + "type" : "CodePackage", + "id" : "acm016991jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm016987jsd" ] + }, + "acm016992jsd" : { + "type" : "ControlElement", + "id" : "acm016992jsd", + "name" : "getType" + }, + "acm016993jsd" : { + "type" : "ControlElement", + "id" : "acm016993jsd", + "name" : "getDatabase" + }, + "acm016994jsd" : { + "type" : "ControlElement", + "id" : "acm016994jsd", + "name" : "getPort" + }, + "acm016995jsd" : { + "type" : "ControlElement", + "id" : "acm016995jsd", + "name" : "getHost" + }, + "acm016996jsd" : { + "type" : "ControlElement", + "id" : "acm016996jsd", + "name" : "getUser" + }, + "acm016997jsd" : { + "type" : "ControlElement", + "id" : "acm016997jsd", + "name" : "getPassword" + }, + "acm016998jsd" : { + "type" : "ControlElement", + "id" : "acm016998jsd", + "name" : "isValid" + }, + "acm016999jsd" : { + "type" : "ControlElement", + "id" : "acm016999jsd", + "name" : "getKeyStore" + }, + "acm017000jsd" : { + "type" : "ControlElement", + "id" : "acm017000jsd", + "name" : "isUseSSL" + }, + "acm017001jsd" : { + "type" : "ControlElement", + "id" : "acm017001jsd", + "name" : "isAllowPublicKeyRetrieval" + }, + "acm017002jsd" : { + "type" : "ControlElement", + "id" : "acm017002jsd", + "name" : "getServerTimezone" + }, + "acm017003jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017003jsd", + "name" : "DatabaseConnectionProperties", + "compilationUnitId" : "acm016987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016978jsd" ], + "content" : [ "acm016992jsd", "acm016993jsd", "acm016994jsd", "acm016995jsd", "acm016996jsd", "acm016997jsd", "acm016998jsd", "acm016999jsd", "acm017000jsd", "acm017001jsd", "acm017002jsd" ] + }, + "acm017004jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017004jsd", + "name" : "DatabaseLocation", + "parentId" : "acm016854jsd", + "content" : [ "acm017009jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017005jsd" : { + "type" : "CodePackage", + "id" : "acm017005jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017006jsd" ] + }, + "acm017006jsd" : { + "type" : "CodePackage", + "id" : "acm017006jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017007jsd" ] + }, + "acm017007jsd" : { + "type" : "CodePackage", + "id" : "acm017007jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017008jsd" ] + }, + "acm017008jsd" : { + "type" : "CodePackage", + "id" : "acm017008jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017004jsd" ] + }, + "acm017009jsd" : { + "type" : "ClassUnit", + "id" : "acm017009jsd", + "name" : "DatabaseLocation", + "compilationUnitId" : "acm017004jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm017010jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017010jsd", + "name" : "DatabaseNotSupportedException", + "parentId" : "acm016854jsd", + "content" : [ "acm017016jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017011jsd" : { + "type" : "CodePackage", + "id" : "acm017011jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017012jsd" ] + }, + "acm017012jsd" : { + "type" : "CodePackage", + "id" : "acm017012jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017013jsd" ] + }, + "acm017013jsd" : { + "type" : "CodePackage", + "id" : "acm017013jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017014jsd" ] + }, + "acm017014jsd" : { + "type" : "CodePackage", + "id" : "acm017014jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017010jsd" ] + }, + "acm017015jsd" : { + "type" : "ControlElement", + "id" : "acm017015jsd", + "name" : "DatabaseNotSupportedException" + }, + "acm017016jsd" : { + "type" : "ClassUnit", + "id" : "acm017016jsd", + "name" : "DatabaseNotSupportedException", + "compilationUnitId" : "acm017010jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017015jsd" ] + }, + "acm017017jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017017jsd", + "name" : "DatabaseSynchronizer", + "parentId" : "acm016854jsd", + "content" : [ "acm017030jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017018jsd" : { + "type" : "CodePackage", + "id" : "acm017018jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017019jsd" ] + }, + "acm017019jsd" : { + "type" : "CodePackage", + "id" : "acm017019jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017020jsd" ] + }, + "acm017020jsd" : { + "type" : "CodePackage", + "id" : "acm017020jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017021jsd" ] + }, + "acm017021jsd" : { + "type" : "CodePackage", + "id" : "acm017021jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017017jsd" ] + }, + "acm017022jsd" : { + "type" : "ControlElement", + "id" : "acm017022jsd", + "name" : "getDBName" + }, + "acm017023jsd" : { + "type" : "ControlElement", + "id" : "acm017023jsd", + "name" : "pullChanges" + }, + "acm017024jsd" : { + "type" : "ControlElement", + "id" : "acm017024jsd", + "name" : "closeSharedDatabase" + }, + "acm017025jsd" : { + "type" : "ControlElement", + "id" : "acm017025jsd", + "name" : "registerListener" + }, + "acm017026jsd" : { + "type" : "ControlElement", + "id" : "acm017026jsd", + "name" : "openSharedDatabase" + }, + "acm017027jsd" : { + "type" : "ControlElement", + "id" : "acm017027jsd", + "name" : "synchronizeSharedEntry" + }, + "acm017028jsd" : { + "type" : "ControlElement", + "id" : "acm017028jsd", + "name" : "synchronizeLocalDatabase" + }, + "acm017029jsd" : { + "type" : "ControlElement", + "id" : "acm017029jsd", + "name" : "getConnectionProperties" + }, + "acm017030jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017030jsd", + "name" : "DatabaseSynchronizer", + "compilationUnitId" : "acm017017jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016986jsd", "acm017003jsd", "acm017016jsd", "acm018267jsd" ], + "content" : [ "acm017022jsd", "acm017023jsd", "acm017024jsd", "acm017025jsd", "acm017026jsd", "acm017027jsd", "acm017028jsd", "acm017029jsd" ] + }, + "acm017031jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017031jsd", + "name" : "MySQLProcessor", + "parentId" : "acm016854jsd", + "content" : [ "acm017041jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017032jsd" : { + "type" : "CodePackage", + "id" : "acm017032jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017033jsd" ] + }, + "acm017033jsd" : { + "type" : "CodePackage", + "id" : "acm017033jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017034jsd" ] + }, + "acm017034jsd" : { + "type" : "CodePackage", + "id" : "acm017034jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017035jsd" ] + }, + "acm017035jsd" : { + "type" : "CodePackage", + "id" : "acm017035jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017031jsd" ] + }, + "acm017036jsd" : { + "type" : "ControlElement", + "id" : "acm017036jsd", + "name" : "MySQLProcessor" + }, + "acm017037jsd" : { + "type" : "ControlElement", + "id" : "acm017037jsd", + "name" : "setUp" + }, + "acm017038jsd" : { + "type" : "ControlElement", + "id" : "acm017038jsd", + "name" : "escape" + }, + "acm017039jsd" : { + "type" : "ControlElement", + "id" : "acm017039jsd", + "name" : "escape_Table" + }, + "acm017040jsd" : { + "type" : "ControlElement", + "id" : "acm017040jsd", + "name" : "getCURRENT_VERSION_DB_STRUCT" + }, + "acm017041jsd" : { + "type" : "ClassUnit", + "id" : "acm017041jsd", + "name" : "MySQLProcessor", + "compilationUnitId" : "acm017031jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm016935jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016986jsd" ], + "content" : [ "acm017036jsd", "acm017037jsd", "acm017038jsd", "acm017039jsd", "acm017040jsd" ] + }, + "acm017042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017042jsd", + "name" : "OracleProcessor", + "parentId" : "acm016854jsd", + "content" : [ "acm017057jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017043jsd" : { + "type" : "CodePackage", + "id" : "acm017043jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017044jsd" ] + }, + "acm017044jsd" : { + "type" : "CodePackage", + "id" : "acm017044jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017045jsd" ] + }, + "acm017045jsd" : { + "type" : "CodePackage", + "id" : "acm017045jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017046jsd" ] + }, + "acm017046jsd" : { + "type" : "CodePackage", + "id" : "acm017046jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017042jsd" ] + }, + "acm017047jsd" : { + "type" : "ControlElement", + "id" : "acm017047jsd", + "name" : "OracleProcessor" + }, + "acm017048jsd" : { + "type" : "ControlElement", + "id" : "acm017048jsd", + "name" : "setUp" + }, + "acm017049jsd" : { + "type" : "ControlElement", + "id" : "acm017049jsd", + "name" : "escape" + }, + "acm017050jsd" : { + "type" : "ControlElement", + "id" : "acm017050jsd", + "name" : "escape_Table" + }, + "acm017051jsd" : { + "type" : "ControlElement", + "id" : "acm017051jsd", + "name" : "getCURRENT_VERSION_DB_STRUCT" + }, + "acm017052jsd" : { + "type" : "ControlElement", + "id" : "acm017052jsd", + "name" : "startNotificationListener" + }, + "acm017053jsd" : { + "type" : "ControlElement", + "id" : "acm017053jsd", + "name" : "insertIntoEntryTable" + }, + "acm017054jsd" : { + "type" : "ControlElement", + "id" : "acm017054jsd", + "name" : "insertIntoFieldTable" + }, + "acm017055jsd" : { + "type" : "ControlElement", + "id" : "acm017055jsd", + "name" : "stopNotificationListener" + }, + "acm017056jsd" : { + "type" : "ControlElement", + "id" : "acm017056jsd", + "name" : "notifyClients" + }, + "acm017057jsd" : { + "type" : "ClassUnit", + "id" : "acm017057jsd", + "name" : "OracleProcessor", + "compilationUnitId" : "acm017042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm016935jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016966jsd", "acm016986jsd", "acm017145jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm017047jsd", "acm017048jsd", "acm017049jsd", "acm017050jsd", "acm017051jsd", "acm017052jsd", "acm017053jsd", "acm017054jsd", "acm017055jsd", "acm017056jsd" ] + }, + "acm017058jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017058jsd", + "name" : "PostgreSQLProcessor", + "parentId" : "acm016854jsd", + "content" : [ "acm017072jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017059jsd" : { + "type" : "CodePackage", + "id" : "acm017059jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017060jsd" ] + }, + "acm017060jsd" : { + "type" : "CodePackage", + "id" : "acm017060jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017061jsd" ] + }, + "acm017061jsd" : { + "type" : "CodePackage", + "id" : "acm017061jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017062jsd" ] + }, + "acm017062jsd" : { + "type" : "CodePackage", + "id" : "acm017062jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017058jsd" ] + }, + "acm017063jsd" : { + "type" : "ControlElement", + "id" : "acm017063jsd", + "name" : "PostgreSQLProcessor" + }, + "acm017064jsd" : { + "type" : "ControlElement", + "id" : "acm017064jsd", + "name" : "setUp" + }, + "acm017065jsd" : { + "type" : "ControlElement", + "id" : "acm017065jsd", + "name" : "insertIntoEntryTable" + }, + "acm017066jsd" : { + "type" : "ControlElement", + "id" : "acm017066jsd", + "name" : "escape" + }, + "acm017067jsd" : { + "type" : "ControlElement", + "id" : "acm017067jsd", + "name" : "escape_Table" + }, + "acm017068jsd" : { + "type" : "ControlElement", + "id" : "acm017068jsd", + "name" : "getCURRENT_VERSION_DB_STRUCT" + }, + "acm017069jsd" : { + "type" : "ControlElement", + "id" : "acm017069jsd", + "name" : "startNotificationListener" + }, + "acm017070jsd" : { + "type" : "ControlElement", + "id" : "acm017070jsd", + "name" : "stopNotificationListener" + }, + "acm017071jsd" : { + "type" : "ControlElement", + "id" : "acm017071jsd", + "name" : "notifyClients" + }, + "acm017072jsd" : { + "type" : "ClassUnit", + "id" : "acm017072jsd", + "name" : "PostgreSQLProcessor", + "compilationUnitId" : "acm017058jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm016935jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016966jsd", "acm016986jsd", "acm017155jsd", "acm018267jsd" ], + "content" : [ "acm017063jsd", "acm017064jsd", "acm017065jsd", "acm017066jsd", "acm017067jsd", "acm017068jsd", "acm017069jsd", "acm017070jsd", "acm017071jsd" ] + }, + "acm017073jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017073jsd", + "name" : "ConnectionLostEvent", + "parentId" : "acm017078jsd", + "content" : [ "acm017081jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017074jsd" : { + "type" : "CodePackage", + "id" : "acm017074jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017075jsd" ] + }, + "acm017075jsd" : { + "type" : "CodePackage", + "id" : "acm017075jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017076jsd" ] + }, + "acm017076jsd" : { + "type" : "CodePackage", + "id" : "acm017076jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017077jsd" ] + }, + "acm017077jsd" : { + "type" : "CodePackage", + "id" : "acm017077jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017078jsd" ] + }, + "acm017078jsd" : { + "type" : "CodePackage", + "id" : "acm017078jsd", + "name" : "event", + "parentId" : "acm016854jsd", + "content" : [ "acm017073jsd", "acm017082jsd", "acm017091jsd" ] + }, + "acm017079jsd" : { + "type" : "ControlElement", + "id" : "acm017079jsd", + "name" : "ConnectionLostEvent" + }, + "acm017080jsd" : { + "type" : "ControlElement", + "id" : "acm017080jsd", + "name" : "getBibDatabaseContext" + }, + "acm017081jsd" : { + "type" : "ClassUnit", + "id" : "acm017081jsd", + "name" : "ConnectionLostEvent", + "compilationUnitId" : "acm017073jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd" ], + "content" : [ "acm017079jsd", "acm017080jsd" ] + }, + "acm017082jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017082jsd", + "name" : "SharedEntriesNotPresentEvent", + "parentId" : "acm017078jsd", + "content" : [ "acm017090jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017083jsd" : { + "type" : "CodePackage", + "id" : "acm017083jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017084jsd" ] + }, + "acm017084jsd" : { + "type" : "CodePackage", + "id" : "acm017084jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017085jsd" ] + }, + "acm017085jsd" : { + "type" : "CodePackage", + "id" : "acm017085jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017086jsd" ] + }, + "acm017086jsd" : { + "type" : "CodePackage", + "id" : "acm017086jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017087jsd" ] + }, + "acm017087jsd" : { + "type" : "CodePackage", + "id" : "acm017087jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm017082jsd" ] + }, + "acm017088jsd" : { + "type" : "ControlElement", + "id" : "acm017088jsd", + "name" : "SharedEntriesNotPresentEvent" + }, + "acm017089jsd" : { + "type" : "ControlElement", + "id" : "acm017089jsd", + "name" : "getBibEntries" + }, + "acm017090jsd" : { + "type" : "ClassUnit", + "id" : "acm017090jsd", + "name" : "SharedEntriesNotPresentEvent", + "compilationUnitId" : "acm017082jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017088jsd", "acm017089jsd" ] + }, + "acm017091jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017091jsd", + "name" : "UpdateRefusedEvent", + "parentId" : "acm017078jsd", + "content" : [ "acm017101jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017092jsd" : { + "type" : "CodePackage", + "id" : "acm017092jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017093jsd" ] + }, + "acm017093jsd" : { + "type" : "CodePackage", + "id" : "acm017093jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017094jsd" ] + }, + "acm017094jsd" : { + "type" : "CodePackage", + "id" : "acm017094jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017095jsd" ] + }, + "acm017095jsd" : { + "type" : "CodePackage", + "id" : "acm017095jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017096jsd" ] + }, + "acm017096jsd" : { + "type" : "CodePackage", + "id" : "acm017096jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm017091jsd" ] + }, + "acm017097jsd" : { + "type" : "ControlElement", + "id" : "acm017097jsd", + "name" : "UpdateRefusedEvent" + }, + "acm017098jsd" : { + "type" : "ControlElement", + "id" : "acm017098jsd", + "name" : "getBibDatabaseContext" + }, + "acm017099jsd" : { + "type" : "ControlElement", + "id" : "acm017099jsd", + "name" : "getLocalBibEntry" + }, + "acm017100jsd" : { + "type" : "ControlElement", + "id" : "acm017100jsd", + "name" : "getSharedBibEntry" + }, + "acm017101jsd" : { + "type" : "ClassUnit", + "id" : "acm017101jsd", + "name" : "UpdateRefusedEvent", + "compilationUnitId" : "acm017091jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm017097jsd", "acm017098jsd", "acm017099jsd", "acm017100jsd" ] + }, + "acm017102jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017102jsd", + "name" : "InvalidDBMSConnectionPropertiesException", + "parentId" : "acm017107jsd", + "content" : [ "acm017109jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017103jsd" : { + "type" : "CodePackage", + "id" : "acm017103jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017104jsd" ] + }, + "acm017104jsd" : { + "type" : "CodePackage", + "id" : "acm017104jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017105jsd" ] + }, + "acm017105jsd" : { + "type" : "CodePackage", + "id" : "acm017105jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017106jsd" ] + }, + "acm017106jsd" : { + "type" : "CodePackage", + "id" : "acm017106jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017107jsd" ] + }, + "acm017107jsd" : { + "type" : "CodePackage", + "id" : "acm017107jsd", + "name" : "exception", + "parentId" : "acm016854jsd", + "content" : [ "acm017102jsd", "acm017110jsd", "acm017118jsd", "acm017128jsd" ] + }, + "acm017108jsd" : { + "type" : "ControlElement", + "id" : "acm017108jsd", + "name" : "InvalidDBMSConnectionPropertiesException" + }, + "acm017109jsd" : { + "type" : "ClassUnit", + "id" : "acm017109jsd", + "name" : "InvalidDBMSConnectionPropertiesException", + "compilationUnitId" : "acm017102jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017108jsd" ] + }, + "acm017110jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017110jsd", + "name" : "NotASharedDatabaseException", + "parentId" : "acm017107jsd", + "content" : [ "acm017117jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017111jsd" : { + "type" : "CodePackage", + "id" : "acm017111jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017112jsd" ] + }, + "acm017112jsd" : { + "type" : "CodePackage", + "id" : "acm017112jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017113jsd" ] + }, + "acm017113jsd" : { + "type" : "CodePackage", + "id" : "acm017113jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017114jsd" ] + }, + "acm017114jsd" : { + "type" : "CodePackage", + "id" : "acm017114jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017115jsd" ] + }, + "acm017115jsd" : { + "type" : "CodePackage", + "id" : "acm017115jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm017110jsd" ] + }, + "acm017116jsd" : { + "type" : "ControlElement", + "id" : "acm017116jsd", + "name" : "NotASharedDatabaseException" + }, + "acm017117jsd" : { + "type" : "ClassUnit", + "id" : "acm017117jsd", + "name" : "NotASharedDatabaseException", + "compilationUnitId" : "acm017110jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017116jsd" ] + }, + "acm017118jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017118jsd", + "name" : "OfflineLockException", + "parentId" : "acm017107jsd", + "content" : [ "acm017127jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017119jsd" : { + "type" : "CodePackage", + "id" : "acm017119jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017120jsd" ] + }, + "acm017120jsd" : { + "type" : "CodePackage", + "id" : "acm017120jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017121jsd" ] + }, + "acm017121jsd" : { + "type" : "CodePackage", + "id" : "acm017121jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017122jsd" ] + }, + "acm017122jsd" : { + "type" : "CodePackage", + "id" : "acm017122jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017123jsd" ] + }, + "acm017123jsd" : { + "type" : "CodePackage", + "id" : "acm017123jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm017118jsd" ] + }, + "acm017124jsd" : { + "type" : "ControlElement", + "id" : "acm017124jsd", + "name" : "OfflineLockException" + }, + "acm017125jsd" : { + "type" : "ControlElement", + "id" : "acm017125jsd", + "name" : "getLocalBibEntry" + }, + "acm017126jsd" : { + "type" : "ControlElement", + "id" : "acm017126jsd", + "name" : "getSharedBibEntry" + }, + "acm017127jsd" : { + "type" : "ClassUnit", + "id" : "acm017127jsd", + "name" : "OfflineLockException", + "compilationUnitId" : "acm017118jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017124jsd", "acm017125jsd", "acm017126jsd" ] + }, + "acm017128jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017128jsd", + "name" : "SharedEntryNotPresentException", + "parentId" : "acm017107jsd", + "content" : [ "acm017136jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017129jsd" : { + "type" : "CodePackage", + "id" : "acm017129jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017130jsd" ] + }, + "acm017130jsd" : { + "type" : "CodePackage", + "id" : "acm017130jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017131jsd" ] + }, + "acm017131jsd" : { + "type" : "CodePackage", + "id" : "acm017131jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017132jsd" ] + }, + "acm017132jsd" : { + "type" : "CodePackage", + "id" : "acm017132jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017133jsd" ] + }, + "acm017133jsd" : { + "type" : "CodePackage", + "id" : "acm017133jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm017128jsd" ] + }, + "acm017134jsd" : { + "type" : "ControlElement", + "id" : "acm017134jsd", + "name" : "SharedEntryNotPresentException" + }, + "acm017135jsd" : { + "type" : "ControlElement", + "id" : "acm017135jsd", + "name" : "getNonPresentBibEntry" + }, + "acm017136jsd" : { + "type" : "ClassUnit", + "id" : "acm017136jsd", + "name" : "SharedEntryNotPresentException", + "compilationUnitId" : "acm017128jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017134jsd", "acm017135jsd" ] + }, + "acm017137jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017137jsd", + "name" : "OracleNotificationListener", + "parentId" : "acm017142jsd", + "content" : [ "acm017145jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "listener" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017138jsd" : { + "type" : "CodePackage", + "id" : "acm017138jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017139jsd" ] + }, + "acm017139jsd" : { + "type" : "CodePackage", + "id" : "acm017139jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017140jsd" ] + }, + "acm017140jsd" : { + "type" : "CodePackage", + "id" : "acm017140jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017141jsd" ] + }, + "acm017141jsd" : { + "type" : "CodePackage", + "id" : "acm017141jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017142jsd" ] + }, + "acm017142jsd" : { + "type" : "CodePackage", + "id" : "acm017142jsd", + "name" : "listener", + "parentId" : "acm016854jsd", + "content" : [ "acm017137jsd", "acm017146jsd" ] + }, + "acm017143jsd" : { + "type" : "ControlElement", + "id" : "acm017143jsd", + "name" : "OracleNotificationListener" + }, + "acm017144jsd" : { + "type" : "ControlElement", + "id" : "acm017144jsd", + "name" : "onDatabaseChangeNotification" + }, + "acm017145jsd" : { + "type" : "ClassUnit", + "id" : "acm017145jsd", + "name" : "OracleNotificationListener", + "compilationUnitId" : "acm017137jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016966jsd" ], + "content" : [ "acm017143jsd", "acm017144jsd" ] + }, + "acm017146jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017146jsd", + "name" : "PostgresSQLNotificationListener", + "parentId" : "acm017142jsd", + "content" : [ "acm017155jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "listener" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017147jsd" : { + "type" : "CodePackage", + "id" : "acm017147jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017148jsd" ] + }, + "acm017148jsd" : { + "type" : "CodePackage", + "id" : "acm017148jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017149jsd" ] + }, + "acm017149jsd" : { + "type" : "CodePackage", + "id" : "acm017149jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017150jsd" ] + }, + "acm017150jsd" : { + "type" : "CodePackage", + "id" : "acm017150jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017151jsd" ] + }, + "acm017151jsd" : { + "type" : "CodePackage", + "id" : "acm017151jsd", + "name" : "listener", + "parentId" : null, + "content" : [ "acm017146jsd" ] + }, + "acm017152jsd" : { + "type" : "ControlElement", + "id" : "acm017152jsd", + "name" : "PostgresSQLNotificationListener" + }, + "acm017153jsd" : { + "type" : "ControlElement", + "id" : "acm017153jsd", + "name" : "run" + }, + "acm017154jsd" : { + "type" : "ControlElement", + "id" : "acm017154jsd", + "name" : "stop" + }, + "acm017155jsd" : { + "type" : "ClassUnit", + "id" : "acm017155jsd", + "name" : "PostgresSQLNotificationListener", + "compilationUnitId" : "acm017146jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016966jsd", "acm017155jsd" ], + "content" : [ "acm017152jsd", "acm017153jsd", "acm017154jsd" ] + }, + "acm017156jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017156jsd", + "name" : "SharedDatabasePreferences", + "parentId" : "acm017161jsd", + "content" : [ "acm017193jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "prefs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017157jsd" : { + "type" : "CodePackage", + "id" : "acm017157jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017158jsd" ] + }, + "acm017158jsd" : { + "type" : "CodePackage", + "id" : "acm017158jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017159jsd" ] + }, + "acm017159jsd" : { + "type" : "CodePackage", + "id" : "acm017159jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017160jsd" ] + }, + "acm017160jsd" : { + "type" : "CodePackage", + "id" : "acm017160jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017161jsd" ] + }, + "acm017161jsd" : { + "type" : "CodePackage", + "id" : "acm017161jsd", + "name" : "prefs", + "parentId" : "acm016854jsd", + "content" : [ "acm017156jsd" ] + }, + "acm017162jsd" : { + "type" : "ControlElement", + "id" : "acm017162jsd", + "name" : "SharedDatabasePreferences" + }, + "acm017163jsd" : { + "type" : "ControlElement", + "id" : "acm017163jsd", + "name" : "SharedDatabasePreferences" + }, + "acm017164jsd" : { + "type" : "ControlElement", + "id" : "acm017164jsd", + "name" : "getType" + }, + "acm017165jsd" : { + "type" : "ControlElement", + "id" : "acm017165jsd", + "name" : "getHost" + }, + "acm017166jsd" : { + "type" : "ControlElement", + "id" : "acm017166jsd", + "name" : "getPort" + }, + "acm017167jsd" : { + "type" : "ControlElement", + "id" : "acm017167jsd", + "name" : "getName" + }, + "acm017168jsd" : { + "type" : "ControlElement", + "id" : "acm017168jsd", + "name" : "getUser" + }, + "acm017169jsd" : { + "type" : "ControlElement", + "id" : "acm017169jsd", + "name" : "getPassword" + }, + "acm017170jsd" : { + "type" : "ControlElement", + "id" : "acm017170jsd", + "name" : "getKeyStoreFile" + }, + "acm017171jsd" : { + "type" : "ControlElement", + "id" : "acm017171jsd", + "name" : "getServerTimezone" + }, + "acm017172jsd" : { + "type" : "ControlElement", + "id" : "acm017172jsd", + "name" : "getRememberPassword" + }, + "acm017173jsd" : { + "type" : "ControlElement", + "id" : "acm017173jsd", + "name" : "getFolder" + }, + "acm017174jsd" : { + "type" : "ControlElement", + "id" : "acm017174jsd", + "name" : "getAutosave" + }, + "acm017175jsd" : { + "type" : "ControlElement", + "id" : "acm017175jsd", + "name" : "isUseSSL" + }, + "acm017176jsd" : { + "type" : "ControlElement", + "id" : "acm017176jsd", + "name" : "setType" + }, + "acm017177jsd" : { + "type" : "ControlElement", + "id" : "acm017177jsd", + "name" : "setHost" + }, + "acm017178jsd" : { + "type" : "ControlElement", + "id" : "acm017178jsd", + "name" : "setPort" + }, + "acm017179jsd" : { + "type" : "ControlElement", + "id" : "acm017179jsd", + "name" : "setName" + }, + "acm017180jsd" : { + "type" : "ControlElement", + "id" : "acm017180jsd", + "name" : "setUser" + }, + "acm017181jsd" : { + "type" : "ControlElement", + "id" : "acm017181jsd", + "name" : "setPassword" + }, + "acm017182jsd" : { + "type" : "ControlElement", + "id" : "acm017182jsd", + "name" : "setRememberPassword" + }, + "acm017183jsd" : { + "type" : "ControlElement", + "id" : "acm017183jsd", + "name" : "setFolder" + }, + "acm017184jsd" : { + "type" : "ControlElement", + "id" : "acm017184jsd", + "name" : "setAutosave" + }, + "acm017185jsd" : { + "type" : "ControlElement", + "id" : "acm017185jsd", + "name" : "setUseSSL" + }, + "acm017186jsd" : { + "type" : "ControlElement", + "id" : "acm017186jsd", + "name" : "setKeystoreFile" + }, + "acm017187jsd" : { + "type" : "ControlElement", + "id" : "acm017187jsd", + "name" : "setServerTimezone" + }, + "acm017188jsd" : { + "type" : "ControlElement", + "id" : "acm017188jsd", + "name" : "clearPassword" + }, + "acm017189jsd" : { + "type" : "ControlElement", + "id" : "acm017189jsd", + "name" : "clear" + }, + "acm017190jsd" : { + "type" : "ControlElement", + "id" : "acm017190jsd", + "name" : "getOptionalValue" + }, + "acm017191jsd" : { + "type" : "ControlElement", + "id" : "acm017191jsd", + "name" : "clearAll" + }, + "acm017192jsd" : { + "type" : "ControlElement", + "id" : "acm017192jsd", + "name" : "putAllDBMSConnectionProperties" + }, + "acm017193jsd" : { + "type" : "ClassUnit", + "id" : "acm017193jsd", + "name" : "SharedDatabasePreferences", + "compilationUnitId" : "acm017156jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017003jsd", "acm017193jsd", "acm017205jsd" ], + "content" : [ "acm017162jsd", "acm017163jsd", "acm017164jsd", "acm017165jsd", "acm017166jsd", "acm017167jsd", "acm017168jsd", "acm017169jsd", "acm017170jsd", "acm017171jsd", "acm017172jsd", "acm017173jsd", "acm017174jsd", "acm017175jsd", "acm017176jsd", "acm017177jsd", "acm017178jsd", "acm017179jsd", "acm017180jsd", "acm017181jsd", "acm017182jsd", "acm017183jsd", "acm017184jsd", "acm017185jsd", "acm017186jsd", "acm017187jsd", "acm017188jsd", "acm017189jsd", "acm017190jsd", "acm017191jsd", "acm017192jsd" ] + }, + "acm017194jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017194jsd", + "name" : "Password", + "parentId" : "acm017199jsd", + "content" : [ "acm017205jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "shared", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017195jsd" : { + "type" : "CodePackage", + "id" : "acm017195jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017196jsd" ] + }, + "acm017196jsd" : { + "type" : "CodePackage", + "id" : "acm017196jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017197jsd" ] + }, + "acm017197jsd" : { + "type" : "CodePackage", + "id" : "acm017197jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017198jsd" ] + }, + "acm017198jsd" : { + "type" : "CodePackage", + "id" : "acm017198jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm017199jsd" ] + }, + "acm017199jsd" : { + "type" : "CodePackage", + "id" : "acm017199jsd", + "name" : "security", + "parentId" : "acm016854jsd", + "content" : [ "acm017194jsd", "acm027700jsd" ] + }, + "acm017200jsd" : { + "type" : "ControlElement", + "id" : "acm017200jsd", + "name" : "Password" + }, + "acm017201jsd" : { + "type" : "ControlElement", + "id" : "acm017201jsd", + "name" : "Password" + }, + "acm017202jsd" : { + "type" : "ControlElement", + "id" : "acm017202jsd", + "name" : "encrypt" + }, + "acm017203jsd" : { + "type" : "ControlElement", + "id" : "acm017203jsd", + "name" : "decrypt" + }, + "acm017204jsd" : { + "type" : "ControlElement", + "id" : "acm017204jsd", + "name" : "get128BitHash" + }, + "acm017205jsd" : { + "type" : "ClassUnit", + "id" : "acm017205jsd", + "name" : "Password", + "compilationUnitId" : "acm017194jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017200jsd", "acm017201jsd", "acm017202jsd", "acm017203jsd", "acm017204jsd" ] + }, + "acm017206jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017206jsd", + "name" : "DefaultLatexParser", + "parentId" : "acm017210jsd", + "content" : [ "acm017219jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017207jsd" : { + "type" : "CodePackage", + "id" : "acm017207jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017208jsd" ] + }, + "acm017208jsd" : { + "type" : "CodePackage", + "id" : "acm017208jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017209jsd" ] + }, + "acm017209jsd" : { + "type" : "CodePackage", + "id" : "acm017209jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017210jsd" ] + }, + "acm017210jsd" : { + "type" : "CodePackage", + "id" : "acm017210jsd", + "name" : "texparser", + "parentId" : "acm001340jsd", + "content" : [ "acm017206jsd", "acm017220jsd", "acm017229jsd", "acm027709jsd", "acm027729jsd", "acm027738jsd" ] + }, + "acm017211jsd" : { + "type" : "ControlElement", + "id" : "acm017211jsd", + "name" : "DefaultLatexParser" + }, + "acm017212jsd" : { + "type" : "ControlElement", + "id" : "acm017212jsd", + "name" : "getLatexParserResult" + }, + "acm017213jsd" : { + "type" : "ControlElement", + "id" : "acm017213jsd", + "name" : "parse" + }, + "acm017214jsd" : { + "type" : "ControlElement", + "id" : "acm017214jsd", + "name" : "parse" + }, + "acm017215jsd" : { + "type" : "ControlElement", + "id" : "acm017215jsd", + "name" : "parse" + }, + "acm017216jsd" : { + "type" : "ControlElement", + "id" : "acm017216jsd", + "name" : "matchCitation" + }, + "acm017217jsd" : { + "type" : "ControlElement", + "id" : "acm017217jsd", + "name" : "matchBibFile" + }, + "acm017218jsd" : { + "type" : "ControlElement", + "id" : "acm017218jsd", + "name" : "matchNestedFile" + }, + "acm017219jsd" : { + "type" : "ClassUnit", + "id" : "acm017219jsd", + "name" : "DefaultLatexParser", + "compilationUnitId" : "acm017206jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017228jsd" ], + "datatypeReferencesIds" : [ "acm017219jsd", "acm020666jsd" ], + "content" : [ "acm017211jsd", "acm017212jsd", "acm017213jsd", "acm017214jsd", "acm017215jsd", "acm017216jsd", "acm017217jsd", "acm017218jsd" ] + }, + "acm017220jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017220jsd", + "name" : "LatexParser", + "parentId" : "acm017210jsd", + "content" : [ "acm017228jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017221jsd" : { + "type" : "CodePackage", + "id" : "acm017221jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017222jsd" ] + }, + "acm017222jsd" : { + "type" : "CodePackage", + "id" : "acm017222jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017223jsd" ] + }, + "acm017223jsd" : { + "type" : "CodePackage", + "id" : "acm017223jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017224jsd" ] + }, + "acm017224jsd" : { + "type" : "CodePackage", + "id" : "acm017224jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm017220jsd" ] + }, + "acm017225jsd" : { + "type" : "ControlElement", + "id" : "acm017225jsd", + "name" : "parse" + }, + "acm017226jsd" : { + "type" : "ControlElement", + "id" : "acm017226jsd", + "name" : "parse" + }, + "acm017227jsd" : { + "type" : "ControlElement", + "id" : "acm017227jsd", + "name" : "parse" + }, + "acm017228jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017228jsd", + "name" : "LatexParser", + "compilationUnitId" : "acm017220jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020666jsd" ], + "content" : [ "acm017225jsd", "acm017226jsd", "acm017227jsd" ] + }, + "acm017229jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017229jsd", + "name" : "TexBibEntriesResolver", + "parentId" : "acm017210jsd", + "content" : [ "acm017238jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017230jsd" : { + "type" : "CodePackage", + "id" : "acm017230jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017231jsd" ] + }, + "acm017231jsd" : { + "type" : "CodePackage", + "id" : "acm017231jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017232jsd" ] + }, + "acm017232jsd" : { + "type" : "CodePackage", + "id" : "acm017232jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017233jsd" ] + }, + "acm017233jsd" : { + "type" : "CodePackage", + "id" : "acm017233jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm017229jsd" ] + }, + "acm017234jsd" : { + "type" : "ControlElement", + "id" : "acm017234jsd", + "name" : "TexBibEntriesResolver" + }, + "acm017235jsd" : { + "type" : "ControlElement", + "id" : "acm017235jsd", + "name" : "resolve" + }, + "acm017236jsd" : { + "type" : "ControlElement", + "id" : "acm017236jsd", + "name" : "apply" + }, + "acm017237jsd" : { + "type" : "ControlElement", + "id" : "acm017237jsd", + "name" : "addCrossReferencingData" + }, + "acm017238jsd" : { + "type" : "ClassUnit", + "id" : "acm017238jsd", + "name" : "TexBibEntriesResolver", + "compilationUnitId" : "acm017229jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017238jsd", "acm017988jsd", "acm018267jsd", "acm020631jsd", "acm020646jsd", "acm020666jsd", "acm020693jsd", "acm020875jsd" ], + "content" : [ "acm017234jsd", "acm017235jsd", "acm017236jsd", "acm017237jsd" ] + }, + "acm017239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017239jsd", + "name" : "AddUndoableActionEvent", + "parentId" : "acm017243jsd", + "content" : [ "acm017245jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017240jsd" : { + "type" : "CodePackage", + "id" : "acm017240jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017241jsd" ] + }, + "acm017241jsd" : { + "type" : "CodePackage", + "id" : "acm017241jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017242jsd" ] + }, + "acm017242jsd" : { + "type" : "CodePackage", + "id" : "acm017242jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017243jsd" ] + }, + "acm017243jsd" : { + "type" : "CodePackage", + "id" : "acm017243jsd", + "name" : "undo", + "parentId" : "acm001340jsd", + "content" : [ "acm017239jsd", "acm017246jsd", "acm017257jsd" ] + }, + "acm017244jsd" : { + "type" : "ControlElement", + "id" : "acm017244jsd", + "name" : "AddUndoableActionEvent" + }, + "acm017245jsd" : { + "type" : "ClassUnit", + "id" : "acm017245jsd", + "name" : "AddUndoableActionEvent", + "compilationUnitId" : "acm017239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm017256jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017244jsd" ] + }, + "acm017246jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017246jsd", + "name" : "UndoChangeEvent", + "parentId" : "acm017243jsd", + "content" : [ "acm017256jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017247jsd" : { + "type" : "CodePackage", + "id" : "acm017247jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017248jsd" ] + }, + "acm017248jsd" : { + "type" : "CodePackage", + "id" : "acm017248jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017249jsd" ] + }, + "acm017249jsd" : { + "type" : "CodePackage", + "id" : "acm017249jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017250jsd" ] + }, + "acm017250jsd" : { + "type" : "CodePackage", + "id" : "acm017250jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm017246jsd" ] + }, + "acm017251jsd" : { + "type" : "ControlElement", + "id" : "acm017251jsd", + "name" : "UndoChangeEvent" + }, + "acm017252jsd" : { + "type" : "ControlElement", + "id" : "acm017252jsd", + "name" : "isCanUndo" + }, + "acm017253jsd" : { + "type" : "ControlElement", + "id" : "acm017253jsd", + "name" : "getUndoDescription" + }, + "acm017254jsd" : { + "type" : "ControlElement", + "id" : "acm017254jsd", + "name" : "isCanRedo" + }, + "acm017255jsd" : { + "type" : "ControlElement", + "id" : "acm017255jsd", + "name" : "getRedoDescription" + }, + "acm017256jsd" : { + "type" : "ClassUnit", + "id" : "acm017256jsd", + "name" : "UndoChangeEvent", + "compilationUnitId" : "acm017246jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017251jsd", "acm017252jsd", "acm017253jsd", "acm017254jsd", "acm017255jsd" ] + }, + "acm017257jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017257jsd", + "name" : "UndoRedoEvent", + "parentId" : "acm017243jsd", + "content" : [ "acm017263jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "undo" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017258jsd" : { + "type" : "CodePackage", + "id" : "acm017258jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017259jsd" ] + }, + "acm017259jsd" : { + "type" : "CodePackage", + "id" : "acm017259jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017260jsd" ] + }, + "acm017260jsd" : { + "type" : "CodePackage", + "id" : "acm017260jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017261jsd" ] + }, + "acm017261jsd" : { + "type" : "CodePackage", + "id" : "acm017261jsd", + "name" : "undo", + "parentId" : null, + "content" : [ "acm017257jsd" ] + }, + "acm017262jsd" : { + "type" : "ControlElement", + "id" : "acm017262jsd", + "name" : "UndoRedoEvent" + }, + "acm017263jsd" : { + "type" : "ClassUnit", + "id" : "acm017263jsd", + "name" : "UndoRedoEvent", + "compilationUnitId" : "acm017257jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm017256jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017262jsd" ] + }, + "acm017264jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017264jsd", + "name" : "BackupFileType", + "parentId" : "acm017268jsd", + "content" : [ "acm017272jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017265jsd" : { + "type" : "CodePackage", + "id" : "acm017265jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017266jsd" ] + }, + "acm017266jsd" : { + "type" : "CodePackage", + "id" : "acm017266jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017267jsd" ] + }, + "acm017267jsd" : { + "type" : "CodePackage", + "id" : "acm017267jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017268jsd" ] + }, + "acm017268jsd" : { + "type" : "CodePackage", + "id" : "acm017268jsd", + "name" : "util", + "parentId" : "acm001340jsd", + "content" : [ "acm017264jsd", "acm017273jsd", "acm017282jsd", "acm017293jsd", "acm017305jsd", "acm017312jsd", "acm017321jsd", "acm017328jsd", "acm017335jsd", "acm017345jsd", "acm017354jsd", "acm017365jsd", "acm017379jsd", "acm017409jsd", "acm027751jsd", "acm027760jsd", "acm027770jsd", "acm027780jsd", "acm027790jsd", "acm027825jsd", "acm017427jsd", "acm017601jsd" ] + }, + "acm017269jsd" : { + "type" : "ControlElement", + "id" : "acm017269jsd", + "name" : "BackupFileType" + }, + "acm017270jsd" : { + "type" : "ControlElement", + "id" : "acm017270jsd", + "name" : "getExtensions" + }, + "acm017271jsd" : { + "type" : "ControlElement", + "id" : "acm017271jsd", + "name" : "getName" + }, + "acm017272jsd" : { + "type" : "ClassUnit", + "id" : "acm017272jsd", + "name" : "BackupFileType", + "compilationUnitId" : "acm017264jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017320jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017269jsd", "acm017270jsd", "acm017271jsd" ] + }, + "acm017273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017273jsd", + "name" : "BuildInfo", + "parentId" : "acm017268jsd", + "content" : [ "acm017281jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017274jsd" : { + "type" : "CodePackage", + "id" : "acm017274jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017275jsd" ] + }, + "acm017275jsd" : { + "type" : "CodePackage", + "id" : "acm017275jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017276jsd" ] + }, + "acm017276jsd" : { + "type" : "CodePackage", + "id" : "acm017276jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017277jsd" ] + }, + "acm017277jsd" : { + "type" : "CodePackage", + "id" : "acm017277jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017273jsd" ] + }, + "acm017278jsd" : { + "type" : "ControlElement", + "id" : "acm017278jsd", + "name" : "BuildInfo" + }, + "acm017279jsd" : { + "type" : "ControlElement", + "id" : "acm017279jsd", + "name" : "BuildInfo" + }, + "acm017280jsd" : { + "type" : "ControlElement", + "id" : "acm017280jsd", + "name" : "getValue" + }, + "acm017281jsd" : { + "type" : "ClassUnit", + "id" : "acm017281jsd", + "name" : "BuildInfo", + "compilationUnitId" : "acm017273jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017281jsd", "acm017404jsd" ], + "content" : [ "acm017278jsd", "acm017279jsd", "acm017280jsd" ] + }, + "acm017282jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017282jsd", + "name" : "CoarseChangeFilter", + "parentId" : "acm017268jsd", + "content" : [ "acm017292jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017283jsd" : { + "type" : "CodePackage", + "id" : "acm017283jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017284jsd" ] + }, + "acm017284jsd" : { + "type" : "CodePackage", + "id" : "acm017284jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017285jsd" ] + }, + "acm017285jsd" : { + "type" : "CodePackage", + "id" : "acm017285jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017286jsd" ] + }, + "acm017286jsd" : { + "type" : "CodePackage", + "id" : "acm017286jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017282jsd" ] + }, + "acm017287jsd" : { + "type" : "ControlElement", + "id" : "acm017287jsd", + "name" : "CoarseChangeFilter" + }, + "acm017288jsd" : { + "type" : "ControlElement", + "id" : "acm017288jsd", + "name" : "listen" + }, + "acm017289jsd" : { + "type" : "ControlElement", + "id" : "acm017289jsd", + "name" : "registerListener" + }, + "acm017290jsd" : { + "type" : "ControlElement", + "id" : "acm017290jsd", + "name" : "unregisterListener" + }, + "acm017291jsd" : { + "type" : "ControlElement", + "id" : "acm017291jsd", + "name" : "shutdown" + }, + "acm017292jsd" : { + "type" : "ClassUnit", + "id" : "acm017292jsd", + "name" : "CoarseChangeFilter", + "compilationUnitId" : "acm017282jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018089jsd", "acm018267jsd", "acm018604jsd", "acm018673jsd" ], + "content" : [ "acm017287jsd", "acm017288jsd", "acm017289jsd", "acm017290jsd", "acm017291jsd" ] + }, + "acm017293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017293jsd", + "name" : "DelayTaskThrottler", + "parentId" : "acm017268jsd", + "content" : [ "acm017304jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017294jsd" : { + "type" : "CodePackage", + "id" : "acm017294jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017295jsd" ] + }, + "acm017295jsd" : { + "type" : "CodePackage", + "id" : "acm017295jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017296jsd" ] + }, + "acm017296jsd" : { + "type" : "CodePackage", + "id" : "acm017296jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017297jsd" ] + }, + "acm017297jsd" : { + "type" : "CodePackage", + "id" : "acm017297jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017293jsd" ] + }, + "acm017298jsd" : { + "type" : "ControlElement", + "id" : "acm017298jsd", + "name" : "DelayTaskThrottler" + }, + "acm017299jsd" : { + "type" : "ControlElement", + "id" : "acm017299jsd", + "name" : "schedule" + }, + "acm017300jsd" : { + "type" : "ControlElement", + "id" : "acm017300jsd", + "name" : "scheduleTask" + }, + "acm017301jsd" : { + "type" : "ControlElement", + "id" : "acm017301jsd", + "name" : "execute" + }, + "acm017302jsd" : { + "type" : "ControlElement", + "id" : "acm017302jsd", + "name" : "cancel" + }, + "acm017303jsd" : { + "type" : "ControlElement", + "id" : "acm017303jsd", + "name" : "shutdown" + }, + "acm017304jsd" : { + "type" : "ClassUnit", + "id" : "acm017304jsd", + "name" : "DelayTaskThrottler", + "compilationUnitId" : "acm017293jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017304jsd" ], + "content" : [ "acm017298jsd", "acm017299jsd", "acm017300jsd", "acm017301jsd", "acm017302jsd", "acm017303jsd" ] + }, + "acm017305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017305jsd", + "name" : "ExternalLinkCreator", + "parentId" : "acm017268jsd", + "content" : [ "acm017311jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017306jsd" : { + "type" : "CodePackage", + "id" : "acm017306jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017307jsd" ] + }, + "acm017307jsd" : { + "type" : "CodePackage", + "id" : "acm017307jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017308jsd" ] + }, + "acm017308jsd" : { + "type" : "CodePackage", + "id" : "acm017308jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017309jsd" ] + }, + "acm017309jsd" : { + "type" : "CodePackage", + "id" : "acm017309jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017305jsd" ] + }, + "acm017310jsd" : { + "type" : "ControlElement", + "id" : "acm017310jsd", + "name" : "getShortScienceSearchURL" + }, + "acm017311jsd" : { + "type" : "ClassUnit", + "id" : "acm017311jsd", + "name" : "ExternalLinkCreator", + "compilationUnitId" : "acm017305jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017310jsd" ] + }, + "acm017312jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017312jsd", + "name" : "FileType", + "parentId" : "acm017268jsd", + "content" : [ "acm017320jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017313jsd" : { + "type" : "CodePackage", + "id" : "acm017313jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017314jsd" ] + }, + "acm017314jsd" : { + "type" : "CodePackage", + "id" : "acm017314jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017315jsd" ] + }, + "acm017315jsd" : { + "type" : "CodePackage", + "id" : "acm017315jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017316jsd" ] + }, + "acm017316jsd" : { + "type" : "CodePackage", + "id" : "acm017316jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017312jsd" ] + }, + "acm017317jsd" : { + "type" : "ControlElement", + "id" : "acm017317jsd", + "name" : "getExtensionsWithAsteriskAndDot" + }, + "acm017318jsd" : { + "type" : "ControlElement", + "id" : "acm017318jsd", + "name" : "getExtensions" + }, + "acm017319jsd" : { + "type" : "ControlElement", + "id" : "acm017319jsd", + "name" : "getName" + }, + "acm017320jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017320jsd", + "name" : "FileType", + "compilationUnitId" : "acm017312jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017317jsd", "acm017318jsd", "acm017319jsd" ] + }, + "acm017321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017321jsd", + "name" : "MetadataSerializationConfiguration", + "parentId" : "acm017268jsd", + "content" : [ "acm017327jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017322jsd" : { + "type" : "CodePackage", + "id" : "acm017322jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017323jsd" ] + }, + "acm017323jsd" : { + "type" : "CodePackage", + "id" : "acm017323jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017324jsd" ] + }, + "acm017324jsd" : { + "type" : "CodePackage", + "id" : "acm017324jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017325jsd" ] + }, + "acm017325jsd" : { + "type" : "CodePackage", + "id" : "acm017325jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017321jsd" ] + }, + "acm017326jsd" : { + "type" : "ControlElement", + "id" : "acm017326jsd", + "name" : "MetadataSerializationConfiguration" + }, + "acm017327jsd" : { + "type" : "ClassUnit", + "id" : "acm017327jsd", + "name" : "MetadataSerializationConfiguration", + "compilationUnitId" : "acm017321jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017326jsd" ] + }, + "acm017328jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017328jsd", + "name" : "OS", + "parentId" : "acm017268jsd", + "content" : [ "acm017334jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017329jsd" : { + "type" : "CodePackage", + "id" : "acm017329jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017330jsd" ] + }, + "acm017330jsd" : { + "type" : "CodePackage", + "id" : "acm017330jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017331jsd" ] + }, + "acm017331jsd" : { + "type" : "CodePackage", + "id" : "acm017331jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017332jsd" ] + }, + "acm017332jsd" : { + "type" : "CodePackage", + "id" : "acm017332jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017328jsd" ] + }, + "acm017333jsd" : { + "type" : "ControlElement", + "id" : "acm017333jsd", + "name" : "OS" + }, + "acm017334jsd" : { + "type" : "ClassUnit", + "id" : "acm017334jsd", + "name" : "OS", + "compilationUnitId" : "acm017328jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017333jsd" ] + }, + "acm017335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017335jsd", + "name" : "StandardFileType", + "parentId" : "acm017268jsd", + "content" : [ "acm017344jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017336jsd" : { + "type" : "CodePackage", + "id" : "acm017336jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017337jsd" ] + }, + "acm017337jsd" : { + "type" : "CodePackage", + "id" : "acm017337jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017338jsd" ] + }, + "acm017338jsd" : { + "type" : "CodePackage", + "id" : "acm017338jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017339jsd" ] + }, + "acm017339jsd" : { + "type" : "CodePackage", + "id" : "acm017339jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017335jsd" ] + }, + "acm017340jsd" : { + "type" : "ControlElement", + "id" : "acm017340jsd", + "name" : "StandardFileType" + }, + "acm017341jsd" : { + "type" : "ControlElement", + "id" : "acm017341jsd", + "name" : "getExtensions" + }, + "acm017342jsd" : { + "type" : "ControlElement", + "id" : "acm017342jsd", + "name" : "getName" + }, + "acm017343jsd" : { + "type" : "ControlElement", + "id" : "acm017343jsd", + "name" : "fromExtensions" + }, + "acm017344jsd" : { + "type" : "ClassUnit", + "id" : "acm017344jsd", + "name" : "StandardFileType", + "compilationUnitId" : "acm017335jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017320jsd" ], + "datatypeReferencesIds" : [ "acm017320jsd", "acm017364jsd" ], + "content" : [ "acm017340jsd", "acm017341jsd", "acm017342jsd", "acm017343jsd" ] + }, + "acm017345jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017345jsd", + "name" : "TestEntry", + "parentId" : "acm017268jsd", + "content" : [ "acm017353jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017346jsd" : { + "type" : "CodePackage", + "id" : "acm017346jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017347jsd" ] + }, + "acm017347jsd" : { + "type" : "CodePackage", + "id" : "acm017347jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017348jsd" ] + }, + "acm017348jsd" : { + "type" : "CodePackage", + "id" : "acm017348jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017349jsd" ] + }, + "acm017349jsd" : { + "type" : "CodePackage", + "id" : "acm017349jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017345jsd" ] + }, + "acm017350jsd" : { + "type" : "ControlElement", + "id" : "acm017350jsd", + "name" : "TestEntry" + }, + "acm017351jsd" : { + "type" : "ControlElement", + "id" : "acm017351jsd", + "name" : "getTestEntry" + }, + "acm017352jsd" : { + "type" : "ControlElement", + "id" : "acm017352jsd", + "name" : "getTestEntryBook" + }, + "acm017353jsd" : { + "type" : "ClassUnit", + "id" : "acm017353jsd", + "name" : "TestEntry", + "compilationUnitId" : "acm017345jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017350jsd", "acm017351jsd", "acm017352jsd" ] + }, + "acm017354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017354jsd", + "name" : "UnknownFileType", + "parentId" : "acm017268jsd", + "content" : [ "acm017364jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017355jsd" : { + "type" : "CodePackage", + "id" : "acm017355jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017356jsd" ] + }, + "acm017356jsd" : { + "type" : "CodePackage", + "id" : "acm017356jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017357jsd" ] + }, + "acm017357jsd" : { + "type" : "CodePackage", + "id" : "acm017357jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017358jsd" ] + }, + "acm017358jsd" : { + "type" : "CodePackage", + "id" : "acm017358jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017354jsd" ] + }, + "acm017359jsd" : { + "type" : "ControlElement", + "id" : "acm017359jsd", + "name" : "UnknownFileType" + }, + "acm017360jsd" : { + "type" : "ControlElement", + "id" : "acm017360jsd", + "name" : "getExtensions" + }, + "acm017361jsd" : { + "type" : "ControlElement", + "id" : "acm017361jsd", + "name" : "equals" + }, + "acm017362jsd" : { + "type" : "ControlElement", + "id" : "acm017362jsd", + "name" : "hashCode" + }, + "acm017363jsd" : { + "type" : "ControlElement", + "id" : "acm017363jsd", + "name" : "getName" + }, + "acm017364jsd" : { + "type" : "ClassUnit", + "id" : "acm017364jsd", + "name" : "UnknownFileType", + "compilationUnitId" : "acm017354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017320jsd" ], + "datatypeReferencesIds" : [ "acm017320jsd" ], + "content" : [ "acm017359jsd", "acm017360jsd", "acm017361jsd", "acm017362jsd", "acm017363jsd" ] + }, + "acm017365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017365jsd", + "name" : "UpdateField", + "parentId" : "acm017268jsd", + "content" : [ "acm017378jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017366jsd" : { + "type" : "CodePackage", + "id" : "acm017366jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017367jsd" ] + }, + "acm017367jsd" : { + "type" : "CodePackage", + "id" : "acm017367jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017368jsd" ] + }, + "acm017368jsd" : { + "type" : "CodePackage", + "id" : "acm017368jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017369jsd" ] + }, + "acm017369jsd" : { + "type" : "CodePackage", + "id" : "acm017369jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017365jsd" ] + }, + "acm017370jsd" : { + "type" : "ControlElement", + "id" : "acm017370jsd", + "name" : "UpdateField" + }, + "acm017371jsd" : { + "type" : "ControlElement", + "id" : "acm017371jsd", + "name" : "updateField" + }, + "acm017372jsd" : { + "type" : "ControlElement", + "id" : "acm017372jsd", + "name" : "updateNonDisplayableField" + }, + "acm017373jsd" : { + "type" : "ControlElement", + "id" : "acm017373jsd", + "name" : "updateField" + }, + "acm017374jsd" : { + "type" : "ControlElement", + "id" : "acm017374jsd", + "name" : "setAutomaticFields" + }, + "acm017375jsd" : { + "type" : "ControlElement", + "id" : "acm017375jsd", + "name" : "setAutomaticFields" + }, + "acm017376jsd" : { + "type" : "ControlElement", + "id" : "acm017376jsd", + "name" : "setAutomaticFields" + }, + "acm017377jsd" : { + "type" : "ControlElement", + "id" : "acm017377jsd", + "name" : "setAutomaticFields" + }, + "acm017378jsd" : { + "type" : "ClassUnit", + "id" : "acm017378jsd", + "name" : "UpdateField", + "compilationUnitId" : "acm017365jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016624jsd", "acm016641jsd", "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm017370jsd", "acm017371jsd", "acm017372jsd", "acm017373jsd", "acm017374jsd", "acm017375jsd", "acm017376jsd", "acm017377jsd" ] + }, + "acm017379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017379jsd", + "name" : "Version", + "parentId" : "acm017268jsd", + "content" : [ "acm017404jsd", "acm017408jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017380jsd" : { + "type" : "CodePackage", + "id" : "acm017380jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017381jsd" ] + }, + "acm017381jsd" : { + "type" : "CodePackage", + "id" : "acm017381jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017382jsd" ] + }, + "acm017382jsd" : { + "type" : "CodePackage", + "id" : "acm017382jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017383jsd" ] + }, + "acm017383jsd" : { + "type" : "CodePackage", + "id" : "acm017383jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017379jsd" ] + }, + "acm017384jsd" : { + "type" : "ControlElement", + "id" : "acm017384jsd", + "name" : "Version" + }, + "acm017385jsd" : { + "type" : "ControlElement", + "id" : "acm017385jsd", + "name" : "getLogger" + }, + "acm017386jsd" : { + "type" : "ControlElement", + "id" : "acm017386jsd", + "name" : "parse" + }, + "acm017387jsd" : { + "type" : "ControlElement", + "id" : "acm017387jsd", + "name" : "getAllAvailableVersions" + }, + "acm017388jsd" : { + "type" : "ControlElement", + "id" : "acm017388jsd", + "name" : "isNewerThan" + }, + "acm017389jsd" : { + "type" : "ControlElement", + "id" : "acm017389jsd", + "name" : "shouldBeUpdatedTo" + }, + "acm017390jsd" : { + "type" : "ControlElement", + "id" : "acm017390jsd", + "name" : "shouldBeUpdatedTo" + }, + "acm017391jsd" : { + "type" : "ControlElement", + "id" : "acm017391jsd", + "name" : "getFullVersion" + }, + "acm017392jsd" : { + "type" : "ControlElement", + "id" : "acm017392jsd", + "name" : "getMajor" + }, + "acm017393jsd" : { + "type" : "ControlElement", + "id" : "acm017393jsd", + "name" : "getMinor" + }, + "acm017394jsd" : { + "type" : "ControlElement", + "id" : "acm017394jsd", + "name" : "getPatch" + }, + "acm017395jsd" : { + "type" : "ControlElement", + "id" : "acm017395jsd", + "name" : "getDevelopmentNum" + }, + "acm017396jsd" : { + "type" : "ControlElement", + "id" : "acm017396jsd", + "name" : "isDevelopmentVersion" + }, + "acm017397jsd" : { + "type" : "ControlElement", + "id" : "acm017397jsd", + "name" : "getChangelogUrl" + }, + "acm017398jsd" : { + "type" : "ControlElement", + "id" : "acm017398jsd", + "name" : "equals" + }, + "acm017399jsd" : { + "type" : "ControlElement", + "id" : "acm017399jsd", + "name" : "hashCode" + }, + "acm017400jsd" : { + "type" : "ControlElement", + "id" : "acm017400jsd", + "name" : "toString" + }, + "acm017401jsd" : { + "type" : "ControlElement", + "id" : "acm017401jsd", + "name" : "DevelopmentStage" + }, + "acm017402jsd" : { + "type" : "ControlElement", + "id" : "acm017402jsd", + "name" : "parse" + }, + "acm017403jsd" : { + "type" : "ControlElement", + "id" : "acm017403jsd", + "name" : "isMoreStableThan" + }, + "acm017404jsd" : { + "type" : "ClassUnit", + "id" : "acm017404jsd", + "name" : "Version", + "compilationUnitId" : "acm017379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017404jsd", "acm017408jsd" ], + "content" : [ "acm017384jsd", "acm017385jsd", "acm017386jsd", "acm017387jsd", "acm017388jsd", "acm017389jsd", "acm017390jsd", "acm017391jsd", "acm017392jsd", "acm017393jsd", "acm017394jsd", "acm017395jsd", "acm017396jsd", "acm017397jsd", "acm017398jsd", "acm017399jsd", "acm017400jsd", "acm017401jsd", "acm017402jsd", "acm017403jsd" ] + }, + "acm017405jsd" : { + "type" : "ControlElement", + "id" : "acm017405jsd", + "name" : "DevelopmentStage" + }, + "acm017406jsd" : { + "type" : "ControlElement", + "id" : "acm017406jsd", + "name" : "parse" + }, + "acm017407jsd" : { + "type" : "ControlElement", + "id" : "acm017407jsd", + "name" : "isMoreStableThan" + }, + "acm017408jsd" : { + "type" : "ClassUnit", + "id" : "acm017408jsd", + "name" : "DevelopmentStage", + "compilationUnitId" : "acm017379jsd", + "parentDatatypeId" : "acm017404jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017408jsd" ], + "content" : [ "acm017405jsd", "acm017406jsd", "acm017407jsd" ] + }, + "acm017409jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017409jsd", + "name" : "WebViewStore", + "parentId" : "acm017268jsd", + "content" : [ "acm017421jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017410jsd" : { + "type" : "CodePackage", + "id" : "acm017410jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017411jsd" ] + }, + "acm017411jsd" : { + "type" : "CodePackage", + "id" : "acm017411jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017412jsd" ] + }, + "acm017412jsd" : { + "type" : "CodePackage", + "id" : "acm017412jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017413jsd" ] + }, + "acm017413jsd" : { + "type" : "CodePackage", + "id" : "acm017413jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017409jsd" ] + }, + "acm017414jsd" : { + "type" : "ControlElement", + "id" : "acm017414jsd", + "name" : "init" + }, + "acm017415jsd" : { + "type" : "ControlElement", + "id" : "acm017415jsd", + "name" : "init" + }, + "acm017416jsd" : { + "type" : "ControlElement", + "id" : "acm017416jsd", + "name" : "get" + }, + "acm017417jsd" : { + "type" : "ControlElement", + "id" : "acm017417jsd", + "name" : "addWebViewLater" + }, + "acm017418jsd" : { + "type" : "ControlElement", + "id" : "acm017418jsd", + "name" : "hasMore" + }, + "acm017419jsd" : { + "type" : "ControlElement", + "id" : "acm017419jsd", + "name" : "getNumberOfPreloadedInstances" + }, + "acm017420jsd" : { + "type" : "ControlElement", + "id" : "acm017420jsd", + "name" : "getMinimumNumberOfInstances" + }, + "acm017421jsd" : { + "type" : "ClassUnit", + "id" : "acm017421jsd", + "name" : "WebViewStore", + "compilationUnitId" : "acm017409jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017421jsd" ], + "content" : [ "acm017414jsd", "acm017415jsd", "acm017416jsd", "acm017417jsd", "acm017418jsd", "acm017419jsd", "acm017420jsd" ] + }, + "acm017422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017422jsd", + "name" : "AutoLinkPreferences", + "parentId" : "acm017427jsd", + "content" : [ "acm017440jsd", "acm017441jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017423jsd" : { + "type" : "CodePackage", + "id" : "acm017423jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017424jsd" ] + }, + "acm017424jsd" : { + "type" : "CodePackage", + "id" : "acm017424jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017425jsd" ] + }, + "acm017425jsd" : { + "type" : "CodePackage", + "id" : "acm017425jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017426jsd" ] + }, + "acm017426jsd" : { + "type" : "CodePackage", + "id" : "acm017426jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017427jsd" ] + }, + "acm017427jsd" : { + "type" : "CodePackage", + "id" : "acm017427jsd", + "name" : "io", + "parentId" : "acm017268jsd", + "content" : [ "acm017422jsd", "acm017442jsd", "acm017454jsd", "acm017465jsd", "acm017476jsd", "acm017484jsd", "acm017492jsd", "acm017508jsd", "acm017518jsd", "acm017528jsd", "acm017561jsd", "acm017575jsd", "acm027873jsd", "acm027883jsd", "acm027897jsd", "acm027911jsd", "acm027927jsd", "acm027989jsd" ] + }, + "acm017428jsd" : { + "type" : "ControlElement", + "id" : "acm017428jsd", + "name" : "AutoLinkPreferences" + }, + "acm017429jsd" : { + "type" : "ControlElement", + "id" : "acm017429jsd", + "name" : "AutoLinkPreferences" + }, + "acm017430jsd" : { + "type" : "ControlElement", + "id" : "acm017430jsd", + "name" : "getCitationKeyDependency" + }, + "acm017431jsd" : { + "type" : "ControlElement", + "id" : "acm017431jsd", + "name" : "citationKeyDependencyProperty" + }, + "acm017432jsd" : { + "type" : "ControlElement", + "id" : "acm017432jsd", + "name" : "setCitationKeyDependency" + }, + "acm017433jsd" : { + "type" : "ControlElement", + "id" : "acm017433jsd", + "name" : "getRegularExpression" + }, + "acm017434jsd" : { + "type" : "ControlElement", + "id" : "acm017434jsd", + "name" : "regularExpressionProperty" + }, + "acm017435jsd" : { + "type" : "ControlElement", + "id" : "acm017435jsd", + "name" : "setRegularExpression" + }, + "acm017436jsd" : { + "type" : "ControlElement", + "id" : "acm017436jsd", + "name" : "shouldAskAutoNamingPdfs" + }, + "acm017437jsd" : { + "type" : "ControlElement", + "id" : "acm017437jsd", + "name" : "askAutoNamingPdfsProperty" + }, + "acm017438jsd" : { + "type" : "ControlElement", + "id" : "acm017438jsd", + "name" : "setAskAutoNamingPdfs" + }, + "acm017439jsd" : { + "type" : "ControlElement", + "id" : "acm017439jsd", + "name" : "getKeywordSeparator" + }, + "acm017440jsd" : { + "type" : "ClassUnit", + "id" : "acm017440jsd", + "name" : "AutoLinkPreferences", + "compilationUnitId" : "acm017422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017441jsd" ], + "content" : [ "acm017428jsd", "acm017429jsd", "acm017430jsd", "acm017431jsd", "acm017432jsd", "acm017433jsd", "acm017434jsd", "acm017435jsd", "acm017436jsd", "acm017437jsd", "acm017438jsd", "acm017439jsd" ] + }, + "acm017441jsd" : { + "type" : "ClassUnit", + "id" : "acm017441jsd", + "name" : "CitationKeyDependency", + "compilationUnitId" : "acm017422jsd", + "parentDatatypeId" : "acm017440jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm017442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017442jsd", + "name" : "BackupFileUtil", + "parentId" : "acm017427jsd", + "content" : [ "acm017453jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017443jsd" : { + "type" : "CodePackage", + "id" : "acm017443jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017444jsd" ] + }, + "acm017444jsd" : { + "type" : "CodePackage", + "id" : "acm017444jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017445jsd" ] + }, + "acm017445jsd" : { + "type" : "CodePackage", + "id" : "acm017445jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017446jsd" ] + }, + "acm017446jsd" : { + "type" : "CodePackage", + "id" : "acm017446jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017447jsd" ] + }, + "acm017447jsd" : { + "type" : "CodePackage", + "id" : "acm017447jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017442jsd" ] + }, + "acm017448jsd" : { + "type" : "ControlElement", + "id" : "acm017448jsd", + "name" : "BackupFileUtil" + }, + "acm017449jsd" : { + "type" : "ControlElement", + "id" : "acm017449jsd", + "name" : "getAppDataBackupDir" + }, + "acm017450jsd" : { + "type" : "ControlElement", + "id" : "acm017450jsd", + "name" : "getPathForNewBackupFileAndCreateDirectory" + }, + "acm017451jsd" : { + "type" : "ControlElement", + "id" : "acm017451jsd", + "name" : "getPathOfLatestExistingBackupFile" + }, + "acm017452jsd" : { + "type" : "ControlElement", + "id" : "acm017452jsd", + "name" : "getUniqueFilePrefix" + }, + "acm017453jsd" : { + "type" : "ClassUnit", + "id" : "acm017453jsd", + "name" : "BackupFileUtil", + "compilationUnitId" : "acm017442jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017272jsd", "acm017453jsd" ], + "content" : [ "acm017448jsd", "acm017449jsd", "acm017450jsd", "acm017451jsd", "acm017452jsd" ] + }, + "acm017454jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017454jsd", + "name" : "CitationKeyBasedFileFinder", + "parentId" : "acm017427jsd", + "content" : [ "acm017464jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017455jsd" : { + "type" : "CodePackage", + "id" : "acm017455jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017456jsd" ] + }, + "acm017456jsd" : { + "type" : "CodePackage", + "id" : "acm017456jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017457jsd" ] + }, + "acm017457jsd" : { + "type" : "CodePackage", + "id" : "acm017457jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017458jsd" ] + }, + "acm017458jsd" : { + "type" : "CodePackage", + "id" : "acm017458jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017459jsd" ] + }, + "acm017459jsd" : { + "type" : "CodePackage", + "id" : "acm017459jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017454jsd" ] + }, + "acm017460jsd" : { + "type" : "ControlElement", + "id" : "acm017460jsd", + "name" : "CitationKeyBasedFileFinder" + }, + "acm017461jsd" : { + "type" : "ControlElement", + "id" : "acm017461jsd", + "name" : "findAssociatedFiles" + }, + "acm017462jsd" : { + "type" : "ControlElement", + "id" : "acm017462jsd", + "name" : "matches" + }, + "acm017463jsd" : { + "type" : "ControlElement", + "id" : "acm017463jsd", + "name" : "findFilesByExtension" + }, + "acm017464jsd" : { + "type" : "ClassUnit", + "id" : "acm017464jsd", + "name" : "CitationKeyBasedFileFinder", + "compilationUnitId" : "acm017454jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017483jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017460jsd", "acm017461jsd", "acm017462jsd", "acm017463jsd" ] + }, + "acm017465jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017465jsd", + "name" : "DatabaseFileLookup", + "parentId" : "acm017427jsd", + "content" : [ "acm017475jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017466jsd" : { + "type" : "CodePackage", + "id" : "acm017466jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017467jsd" ] + }, + "acm017467jsd" : { + "type" : "CodePackage", + "id" : "acm017467jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017468jsd" ] + }, + "acm017468jsd" : { + "type" : "CodePackage", + "id" : "acm017468jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017469jsd" ] + }, + "acm017469jsd" : { + "type" : "CodePackage", + "id" : "acm017469jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017470jsd" ] + }, + "acm017470jsd" : { + "type" : "CodePackage", + "id" : "acm017470jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017465jsd" ] + }, + "acm017471jsd" : { + "type" : "ControlElement", + "id" : "acm017471jsd", + "name" : "DatabaseFileLookup" + }, + "acm017472jsd" : { + "type" : "ControlElement", + "id" : "acm017472jsd", + "name" : "lookupDatabase" + }, + "acm017473jsd" : { + "type" : "ControlElement", + "id" : "acm017473jsd", + "name" : "parseFileField" + }, + "acm017474jsd" : { + "type" : "ControlElement", + "id" : "acm017474jsd", + "name" : "getPathOfDatabase" + }, + "acm017475jsd" : { + "type" : "ClassUnit", + "id" : "acm017475jsd", + "name" : "DatabaseFileLookup", + "compilationUnitId" : "acm017465jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018267jsd", "acm020848jsd" ], + "content" : [ "acm017471jsd", "acm017472jsd", "acm017473jsd", "acm017474jsd" ] + }, + "acm017476jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017476jsd", + "name" : "FileFinder", + "parentId" : "acm017427jsd", + "content" : [ "acm017483jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017477jsd" : { + "type" : "CodePackage", + "id" : "acm017477jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017478jsd" ] + }, + "acm017478jsd" : { + "type" : "CodePackage", + "id" : "acm017478jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017479jsd" ] + }, + "acm017479jsd" : { + "type" : "CodePackage", + "id" : "acm017479jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017480jsd" ] + }, + "acm017480jsd" : { + "type" : "CodePackage", + "id" : "acm017480jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017481jsd" ] + }, + "acm017481jsd" : { + "type" : "CodePackage", + "id" : "acm017481jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017476jsd" ] + }, + "acm017482jsd" : { + "type" : "ControlElement", + "id" : "acm017482jsd", + "name" : "findAssociatedFiles" + }, + "acm017483jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017483jsd", + "name" : "FileFinder", + "compilationUnitId" : "acm017476jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017482jsd" ] + }, + "acm017484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017484jsd", + "name" : "FileFinders", + "parentId" : "acm017427jsd", + "content" : [ "acm017491jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017485jsd" : { + "type" : "CodePackage", + "id" : "acm017485jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017486jsd" ] + }, + "acm017486jsd" : { + "type" : "CodePackage", + "id" : "acm017486jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017487jsd" ] + }, + "acm017487jsd" : { + "type" : "CodePackage", + "id" : "acm017487jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017488jsd" ] + }, + "acm017488jsd" : { + "type" : "CodePackage", + "id" : "acm017488jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017489jsd" ] + }, + "acm017489jsd" : { + "type" : "CodePackage", + "id" : "acm017489jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017484jsd" ] + }, + "acm017490jsd" : { + "type" : "ControlElement", + "id" : "acm017490jsd", + "name" : "constructFromConfiguration" + }, + "acm017491jsd" : { + "type" : "ClassUnit", + "id" : "acm017491jsd", + "name" : "FileFinders", + "compilationUnitId" : "acm017484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017440jsd", "acm017464jsd", "acm017483jsd", "acm017574jsd" ], + "content" : [ "acm017490jsd" ] + }, + "acm017492jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017492jsd", + "name" : "FileHistory", + "parentId" : "acm017427jsd", + "content" : [ "acm017507jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017493jsd" : { + "type" : "CodePackage", + "id" : "acm017493jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017494jsd" ] + }, + "acm017494jsd" : { + "type" : "CodePackage", + "id" : "acm017494jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017495jsd" ] + }, + "acm017495jsd" : { + "type" : "CodePackage", + "id" : "acm017495jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017496jsd" ] + }, + "acm017496jsd" : { + "type" : "CodePackage", + "id" : "acm017496jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017497jsd" ] + }, + "acm017497jsd" : { + "type" : "CodePackage", + "id" : "acm017497jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017492jsd" ] + }, + "acm017498jsd" : { + "type" : "ControlElement", + "id" : "acm017498jsd", + "name" : "FileHistory" + }, + "acm017499jsd" : { + "type" : "ControlElement", + "id" : "acm017499jsd", + "name" : "get" + }, + "acm017500jsd" : { + "type" : "ControlElement", + "id" : "acm017500jsd", + "name" : "size" + }, + "acm017501jsd" : { + "type" : "ControlElement", + "id" : "acm017501jsd", + "name" : "doAdd" + }, + "acm017502jsd" : { + "type" : "ControlElement", + "id" : "acm017502jsd", + "name" : "doSet" + }, + "acm017503jsd" : { + "type" : "ControlElement", + "id" : "acm017503jsd", + "name" : "doRemove" + }, + "acm017504jsd" : { + "type" : "ControlElement", + "id" : "acm017504jsd", + "name" : "newFile" + }, + "acm017505jsd" : { + "type" : "ControlElement", + "id" : "acm017505jsd", + "name" : "removeItem" + }, + "acm017506jsd" : { + "type" : "ControlElement", + "id" : "acm017506jsd", + "name" : "of" + }, + "acm017507jsd" : { + "type" : "ClassUnit", + "id" : "acm017507jsd", + "name" : "FileHistory", + "compilationUnitId" : "acm017492jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017507jsd" ], + "content" : [ "acm017498jsd", "acm017499jsd", "acm017500jsd", "acm017501jsd", "acm017502jsd", "acm017503jsd", "acm017504jsd", "acm017505jsd", "acm017506jsd" ] + }, + "acm017508jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017508jsd", + "name" : "FileNameCleaner", + "parentId" : "acm017427jsd", + "content" : [ "acm017517jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017509jsd" : { + "type" : "CodePackage", + "id" : "acm017509jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017510jsd" ] + }, + "acm017510jsd" : { + "type" : "CodePackage", + "id" : "acm017510jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017511jsd" ] + }, + "acm017511jsd" : { + "type" : "CodePackage", + "id" : "acm017511jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017512jsd" ] + }, + "acm017512jsd" : { + "type" : "CodePackage", + "id" : "acm017512jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017513jsd" ] + }, + "acm017513jsd" : { + "type" : "CodePackage", + "id" : "acm017513jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017508jsd" ] + }, + "acm017514jsd" : { + "type" : "ControlElement", + "id" : "acm017514jsd", + "name" : "FileNameCleaner" + }, + "acm017515jsd" : { + "type" : "ControlElement", + "id" : "acm017515jsd", + "name" : "cleanFileName" + }, + "acm017516jsd" : { + "type" : "ControlElement", + "id" : "acm017516jsd", + "name" : "cleanDirectoryName" + }, + "acm017517jsd" : { + "type" : "ClassUnit", + "id" : "acm017517jsd", + "name" : "FileNameCleaner", + "compilationUnitId" : "acm017508jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017514jsd", "acm017515jsd", "acm017516jsd" ] + }, + "acm017518jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017518jsd", + "name" : "FileNameUniqueness", + "parentId" : "acm017427jsd", + "content" : [ "acm017527jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017519jsd" : { + "type" : "CodePackage", + "id" : "acm017519jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017520jsd" ] + }, + "acm017520jsd" : { + "type" : "CodePackage", + "id" : "acm017520jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017521jsd" ] + }, + "acm017521jsd" : { + "type" : "CodePackage", + "id" : "acm017521jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017522jsd" ] + }, + "acm017522jsd" : { + "type" : "CodePackage", + "id" : "acm017522jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017523jsd" ] + }, + "acm017523jsd" : { + "type" : "CodePackage", + "id" : "acm017523jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017518jsd" ] + }, + "acm017524jsd" : { + "type" : "ControlElement", + "id" : "acm017524jsd", + "name" : "getNonOverWritingFileName" + }, + "acm017525jsd" : { + "type" : "ControlElement", + "id" : "acm017525jsd", + "name" : "isDuplicatedFile" + }, + "acm017526jsd" : { + "type" : "ControlElement", + "id" : "acm017526jsd", + "name" : "eraseDuplicateMarks" + }, + "acm017527jsd" : { + "type" : "ClassUnit", + "id" : "acm017527jsd", + "name" : "FileNameUniqueness", + "compilationUnitId" : "acm017518jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd" ], + "content" : [ "acm017524jsd", "acm017525jsd", "acm017526jsd" ] + }, + "acm017528jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017528jsd", + "name" : "FileUtil", + "parentId" : "acm017427jsd", + "content" : [ "acm017560jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017529jsd" : { + "type" : "CodePackage", + "id" : "acm017529jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017530jsd" ] + }, + "acm017530jsd" : { + "type" : "CodePackage", + "id" : "acm017530jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017531jsd" ] + }, + "acm017531jsd" : { + "type" : "CodePackage", + "id" : "acm017531jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017532jsd" ] + }, + "acm017532jsd" : { + "type" : "CodePackage", + "id" : "acm017532jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017533jsd" ] + }, + "acm017533jsd" : { + "type" : "CodePackage", + "id" : "acm017533jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017528jsd" ] + }, + "acm017534jsd" : { + "type" : "ControlElement", + "id" : "acm017534jsd", + "name" : "FileUtil" + }, + "acm017535jsd" : { + "type" : "ControlElement", + "id" : "acm017535jsd", + "name" : "getFileExtension" + }, + "acm017536jsd" : { + "type" : "ControlElement", + "id" : "acm017536jsd", + "name" : "getFileExtension" + }, + "acm017537jsd" : { + "type" : "ControlElement", + "id" : "acm017537jsd", + "name" : "getBaseName" + }, + "acm017538jsd" : { + "type" : "ControlElement", + "id" : "acm017538jsd", + "name" : "getBaseName" + }, + "acm017539jsd" : { + "type" : "ControlElement", + "id" : "acm017539jsd", + "name" : "getValidFileName" + }, + "acm017540jsd" : { + "type" : "ControlElement", + "id" : "acm017540jsd", + "name" : "addExtension" + }, + "acm017541jsd" : { + "type" : "ControlElement", + "id" : "acm017541jsd", + "name" : "getUniquePathDirectory" + }, + "acm017542jsd" : { + "type" : "ControlElement", + "id" : "acm017542jsd", + "name" : "getUniquePathFragment" + }, + "acm017543jsd" : { + "type" : "ControlElement", + "id" : "acm017543jsd", + "name" : "uniquePathSubstrings" + }, + "acm017544jsd" : { + "type" : "ControlElement", + "id" : "acm017544jsd", + "name" : "copyFile" + }, + "acm017545jsd" : { + "type" : "ControlElement", + "id" : "acm017545jsd", + "name" : "relativize" + }, + "acm017546jsd" : { + "type" : "ControlElement", + "id" : "acm017546jsd", + "name" : "getListOfLinkedFiles" + }, + "acm017547jsd" : { + "type" : "ControlElement", + "id" : "acm017547jsd", + "name" : "createFileNameFromPattern" + }, + "acm017548jsd" : { + "type" : "ControlElement", + "id" : "acm017548jsd", + "name" : "createDirNameFromPattern" + }, + "acm017549jsd" : { + "type" : "ControlElement", + "id" : "acm017549jsd", + "name" : "findSingleFileRecursively" + }, + "acm017550jsd" : { + "type" : "ControlElement", + "id" : "acm017550jsd", + "name" : "find" + }, + "acm017551jsd" : { + "type" : "ControlElement", + "id" : "acm017551jsd", + "name" : "find" + }, + "acm017552jsd" : { + "type" : "ControlElement", + "id" : "acm017552jsd", + "name" : "find" + }, + "acm017553jsd" : { + "type" : "ControlElement", + "id" : "acm017553jsd", + "name" : "findListOfFiles" + }, + "acm017554jsd" : { + "type" : "ControlElement", + "id" : "acm017554jsd", + "name" : "toPortableString" + }, + "acm017555jsd" : { + "type" : "ControlElement", + "id" : "acm017555jsd", + "name" : "isBibFile" + }, + "acm017556jsd" : { + "type" : "ControlElement", + "id" : "acm017556jsd", + "name" : "isPDFFile" + }, + "acm017557jsd" : { + "type" : "ControlElement", + "id" : "acm017557jsd", + "name" : "getInitialDirectory" + }, + "acm017558jsd" : { + "type" : "ControlElement", + "id" : "acm017558jsd", + "name" : "detectBadFileName" + }, + "acm017559jsd" : { + "type" : "ControlElement", + "id" : "acm017559jsd", + "name" : "isCharLegal" + }, + "acm017560jsd" : { + "type" : "ClassUnit", + "id" : "acm017560jsd", + "name" : "FileUtil", + "compilationUnitId" : "acm017528jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017560jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm020848jsd" ], + "content" : [ "acm017534jsd", "acm017535jsd", "acm017536jsd", "acm017537jsd", "acm017538jsd", "acm017539jsd", "acm017540jsd", "acm017541jsd", "acm017542jsd", "acm017543jsd", "acm017544jsd", "acm017545jsd", "acm017546jsd", "acm017547jsd", "acm017548jsd", "acm017549jsd", "acm017550jsd", "acm017551jsd", "acm017552jsd", "acm017553jsd", "acm017554jsd", "acm017555jsd", "acm017556jsd", "acm017557jsd", "acm017558jsd", "acm017559jsd" ] + }, + "acm017561jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017561jsd", + "name" : "RegExpBasedFileFinder", + "parentId" : "acm017427jsd", + "content" : [ "acm017574jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017562jsd" : { + "type" : "CodePackage", + "id" : "acm017562jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017563jsd" ] + }, + "acm017563jsd" : { + "type" : "CodePackage", + "id" : "acm017563jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017564jsd" ] + }, + "acm017564jsd" : { + "type" : "CodePackage", + "id" : "acm017564jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017565jsd" ] + }, + "acm017565jsd" : { + "type" : "CodePackage", + "id" : "acm017565jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017566jsd" ] + }, + "acm017566jsd" : { + "type" : "CodePackage", + "id" : "acm017566jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017561jsd" ] + }, + "acm017567jsd" : { + "type" : "ControlElement", + "id" : "acm017567jsd", + "name" : "RegExpBasedFileFinder" + }, + "acm017568jsd" : { + "type" : "ControlElement", + "id" : "acm017568jsd", + "name" : "createFileNamePattern" + }, + "acm017569jsd" : { + "type" : "ControlElement", + "id" : "acm017569jsd", + "name" : "toFileNameRegex" + }, + "acm017570jsd" : { + "type" : "ControlElement", + "id" : "acm017570jsd", + "name" : "findAssociatedFiles" + }, + "acm017571jsd" : { + "type" : "ControlElement", + "id" : "acm017571jsd", + "name" : "findFile" + }, + "acm017572jsd" : { + "type" : "ControlElement", + "id" : "acm017572jsd", + "name" : "findFile" + }, + "acm017573jsd" : { + "type" : "ControlElement", + "id" : "acm017573jsd", + "name" : "isSubDirectory" + }, + "acm017574jsd" : { + "type" : "ClassUnit", + "id" : "acm017574jsd", + "name" : "RegExpBasedFileFinder", + "compilationUnitId" : "acm017561jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017483jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm017567jsd", "acm017568jsd", "acm017569jsd", "acm017570jsd", "acm017571jsd", "acm017572jsd", "acm017573jsd" ] + }, + "acm017575jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017575jsd", + "name" : "XMLUtil", + "parentId" : "acm017427jsd", + "content" : [ "acm017591jsd", "acm017595jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017576jsd" : { + "type" : "CodePackage", + "id" : "acm017576jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017577jsd" ] + }, + "acm017577jsd" : { + "type" : "CodePackage", + "id" : "acm017577jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017578jsd" ] + }, + "acm017578jsd" : { + "type" : "CodePackage", + "id" : "acm017578jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017579jsd" ] + }, + "acm017579jsd" : { + "type" : "CodePackage", + "id" : "acm017579jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017580jsd" ] + }, + "acm017580jsd" : { + "type" : "CodePackage", + "id" : "acm017580jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm017575jsd" ] + }, + "acm017581jsd" : { + "type" : "ControlElement", + "id" : "acm017581jsd", + "name" : "XMLUtil" + }, + "acm017582jsd" : { + "type" : "ControlElement", + "id" : "acm017582jsd", + "name" : "printDocument" + }, + "acm017583jsd" : { + "type" : "ControlElement", + "id" : "acm017583jsd", + "name" : "asList" + }, + "acm017584jsd" : { + "type" : "ControlElement", + "id" : "acm017584jsd", + "name" : "getNodeContent" + }, + "acm017585jsd" : { + "type" : "ControlElement", + "id" : "acm017585jsd", + "name" : "getAttributeContent" + }, + "acm017586jsd" : { + "type" : "ControlElement", + "id" : "acm017586jsd", + "name" : "getNodesByName" + }, + "acm017587jsd" : { + "type" : "ControlElement", + "id" : "acm017587jsd", + "name" : "getNode" + }, + "acm017588jsd" : { + "type" : "ControlElement", + "id" : "acm017588jsd", + "name" : "NodeListWrapper" + }, + "acm017589jsd" : { + "type" : "ControlElement", + "id" : "acm017589jsd", + "name" : "get" + }, + "acm017590jsd" : { + "type" : "ControlElement", + "id" : "acm017590jsd", + "name" : "size" + }, + "acm017591jsd" : { + "type" : "ClassUnit", + "id" : "acm017591jsd", + "name" : "XMLUtil", + "compilationUnitId" : "acm017575jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017591jsd", "acm017595jsd" ], + "content" : [ "acm017581jsd", "acm017582jsd", "acm017583jsd", "acm017584jsd", "acm017585jsd", "acm017586jsd", "acm017587jsd", "acm017588jsd", "acm017589jsd", "acm017590jsd" ] + }, + "acm017592jsd" : { + "type" : "ControlElement", + "id" : "acm017592jsd", + "name" : "NodeListWrapper" + }, + "acm017593jsd" : { + "type" : "ControlElement", + "id" : "acm017593jsd", + "name" : "get" + }, + "acm017594jsd" : { + "type" : "ControlElement", + "id" : "acm017594jsd", + "name" : "size" + }, + "acm017595jsd" : { + "type" : "ClassUnit", + "id" : "acm017595jsd", + "name" : "NodeListWrapper", + "compilationUnitId" : "acm017575jsd", + "parentDatatypeId" : "acm017591jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017592jsd", "acm017593jsd", "acm017594jsd" ] + }, + "acm017596jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017596jsd", + "name" : "HTMLUnicodeConversionMaps", + "parentId" : "acm017601jsd", + "content" : [ "acm017604jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017597jsd" : { + "type" : "CodePackage", + "id" : "acm017597jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017598jsd" ] + }, + "acm017598jsd" : { + "type" : "CodePackage", + "id" : "acm017598jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017599jsd" ] + }, + "acm017599jsd" : { + "type" : "CodePackage", + "id" : "acm017599jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017600jsd" ] + }, + "acm017600jsd" : { + "type" : "CodePackage", + "id" : "acm017600jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017601jsd" ] + }, + "acm017601jsd" : { + "type" : "CodePackage", + "id" : "acm017601jsd", + "name" : "strings", + "parentId" : "acm017268jsd", + "content" : [ "acm017596jsd", "acm017605jsd", "acm017616jsd", "acm017626jsd", "acm017634jsd", "acm017653jsd", "acm017662jsd", "acm017670jsd", "acm028005jsd", "acm028015jsd", "acm028037jsd" ] + }, + "acm017602jsd" : { + "type" : "ControlElement", + "id" : "acm017602jsd", + "name" : "HTMLUnicodeConversionMaps" + }, + "acm017603jsd" : { + "type" : "ControlElement", + "id" : "acm017603jsd", + "name" : "cleanLaTeX" + }, + "acm017604jsd" : { + "type" : "ClassUnit", + "id" : "acm017604jsd", + "name" : "HTMLUnicodeConversionMaps", + "compilationUnitId" : "acm017596jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017602jsd", "acm017603jsd" ] + }, + "acm017605jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017605jsd", + "name" : "QuotedStringTokenizer", + "parentId" : "acm017601jsd", + "content" : [ "acm017615jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017606jsd" : { + "type" : "CodePackage", + "id" : "acm017606jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017607jsd" ] + }, + "acm017607jsd" : { + "type" : "CodePackage", + "id" : "acm017607jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017608jsd" ] + }, + "acm017608jsd" : { + "type" : "CodePackage", + "id" : "acm017608jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017609jsd" ] + }, + "acm017609jsd" : { + "type" : "CodePackage", + "id" : "acm017609jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017610jsd" ] + }, + "acm017610jsd" : { + "type" : "CodePackage", + "id" : "acm017610jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017605jsd" ] + }, + "acm017611jsd" : { + "type" : "ControlElement", + "id" : "acm017611jsd", + "name" : "QuotedStringTokenizer" + }, + "acm017612jsd" : { + "type" : "ControlElement", + "id" : "acm017612jsd", + "name" : "nextToken" + }, + "acm017613jsd" : { + "type" : "ControlElement", + "id" : "acm017613jsd", + "name" : "isDelimiter" + }, + "acm017614jsd" : { + "type" : "ControlElement", + "id" : "acm017614jsd", + "name" : "hasMoreTokens" + }, + "acm017615jsd" : { + "type" : "ClassUnit", + "id" : "acm017615jsd", + "name" : "QuotedStringTokenizer", + "compilationUnitId" : "acm017605jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017611jsd", "acm017612jsd", "acm017613jsd", "acm017614jsd" ] + }, + "acm017616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017616jsd", + "name" : "RtfCharMap", + "parentId" : "acm017601jsd", + "content" : [ "acm017625jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017617jsd" : { + "type" : "CodePackage", + "id" : "acm017617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017618jsd" ] + }, + "acm017618jsd" : { + "type" : "CodePackage", + "id" : "acm017618jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017619jsd" ] + }, + "acm017619jsd" : { + "type" : "CodePackage", + "id" : "acm017619jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017620jsd" ] + }, + "acm017620jsd" : { + "type" : "CodePackage", + "id" : "acm017620jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017621jsd" ] + }, + "acm017621jsd" : { + "type" : "CodePackage", + "id" : "acm017621jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017616jsd" ] + }, + "acm017622jsd" : { + "type" : "ControlElement", + "id" : "acm017622jsd", + "name" : "RtfCharMap" + }, + "acm017623jsd" : { + "type" : "ControlElement", + "id" : "acm017623jsd", + "name" : "put" + }, + "acm017624jsd" : { + "type" : "ControlElement", + "id" : "acm017624jsd", + "name" : "get" + }, + "acm017625jsd" : { + "type" : "ClassUnit", + "id" : "acm017625jsd", + "name" : "RtfCharMap", + "compilationUnitId" : "acm017616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017622jsd", "acm017623jsd", "acm017624jsd" ] + }, + "acm017626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017626jsd", + "name" : "StringLengthComparator", + "parentId" : "acm017601jsd", + "content" : [ "acm017633jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017627jsd" : { + "type" : "CodePackage", + "id" : "acm017627jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017628jsd" ] + }, + "acm017628jsd" : { + "type" : "CodePackage", + "id" : "acm017628jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017629jsd" ] + }, + "acm017629jsd" : { + "type" : "CodePackage", + "id" : "acm017629jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017630jsd" ] + }, + "acm017630jsd" : { + "type" : "CodePackage", + "id" : "acm017630jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017631jsd" ] + }, + "acm017631jsd" : { + "type" : "CodePackage", + "id" : "acm017631jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017626jsd" ] + }, + "acm017632jsd" : { + "type" : "ControlElement", + "id" : "acm017632jsd", + "name" : "compare" + }, + "acm017633jsd" : { + "type" : "ClassUnit", + "id" : "acm017633jsd", + "name" : "StringLengthComparator", + "compilationUnitId" : "acm017626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017632jsd" ] + }, + "acm017634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017634jsd", + "name" : "StringManipulator", + "parentId" : "acm017601jsd", + "content" : [ "acm017649jsd", "acm017650jsd", "acm017652jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017635jsd" : { + "type" : "CodePackage", + "id" : "acm017635jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017636jsd" ] + }, + "acm017636jsd" : { + "type" : "CodePackage", + "id" : "acm017636jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017637jsd" ] + }, + "acm017637jsd" : { + "type" : "CodePackage", + "id" : "acm017637jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017638jsd" ] + }, + "acm017638jsd" : { + "type" : "CodePackage", + "id" : "acm017638jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017639jsd" ] + }, + "acm017639jsd" : { + "type" : "CodePackage", + "id" : "acm017639jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017634jsd" ] + }, + "acm017640jsd" : { + "type" : "ControlElement", + "id" : "acm017640jsd", + "name" : "Direction" + }, + "acm017641jsd" : { + "type" : "ControlElement", + "id" : "acm017641jsd", + "name" : "setWordCase" + }, + "acm017642jsd" : { + "type" : "ControlElement", + "id" : "acm017642jsd", + "name" : "deleteUntilWordBoundary" + }, + "acm017643jsd" : { + "type" : "ControlElement", + "id" : "acm017643jsd", + "name" : "getNextWordBoundary" + }, + "acm017644jsd" : { + "type" : "ControlElement", + "id" : "acm017644jsd", + "name" : "capitalize" + }, + "acm017645jsd" : { + "type" : "ControlElement", + "id" : "acm017645jsd", + "name" : "uppercase" + }, + "acm017646jsd" : { + "type" : "ControlElement", + "id" : "acm017646jsd", + "name" : "lowercase" + }, + "acm017647jsd" : { + "type" : "ControlElement", + "id" : "acm017647jsd", + "name" : "killWord" + }, + "acm017648jsd" : { + "type" : "ControlElement", + "id" : "acm017648jsd", + "name" : "backwardKillWord" + }, + "acm017649jsd" : { + "type" : "ClassUnit", + "id" : "acm017649jsd", + "name" : "StringManipulator", + "compilationUnitId" : "acm017634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012072jsd", "acm012084jsd", "acm012169jsd", "acm017650jsd", "acm017652jsd", "acm020735jsd" ], + "content" : [ "acm017640jsd", "acm017641jsd", "acm017642jsd", "acm017643jsd", "acm017644jsd", "acm017645jsd", "acm017646jsd", "acm017647jsd", "acm017648jsd" ] + }, + "acm017650jsd" : { + "type" : "ClassUnit", + "id" : "acm017650jsd", + "name" : "LetterCase", + "compilationUnitId" : "acm017634jsd", + "parentDatatypeId" : "acm017649jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm017651jsd" : { + "type" : "ControlElement", + "id" : "acm017651jsd", + "name" : "Direction" + }, + "acm017652jsd" : { + "type" : "ClassUnit", + "id" : "acm017652jsd", + "name" : "Direction", + "compilationUnitId" : "acm017634jsd", + "parentDatatypeId" : "acm017649jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017651jsd" ] + }, + "acm017653jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017653jsd", + "name" : "StringSimilarity", + "parentId" : "acm017601jsd", + "content" : [ "acm017661jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017654jsd" : { + "type" : "CodePackage", + "id" : "acm017654jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017655jsd" ] + }, + "acm017655jsd" : { + "type" : "CodePackage", + "id" : "acm017655jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017656jsd" ] + }, + "acm017656jsd" : { + "type" : "CodePackage", + "id" : "acm017656jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017657jsd" ] + }, + "acm017657jsd" : { + "type" : "CodePackage", + "id" : "acm017657jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017658jsd" ] + }, + "acm017658jsd" : { + "type" : "CodePackage", + "id" : "acm017658jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017653jsd" ] + }, + "acm017659jsd" : { + "type" : "ControlElement", + "id" : "acm017659jsd", + "name" : "isSimilar" + }, + "acm017660jsd" : { + "type" : "ControlElement", + "id" : "acm017660jsd", + "name" : "editDistanceIgnoreCase" + }, + "acm017661jsd" : { + "type" : "ClassUnit", + "id" : "acm017661jsd", + "name" : "StringSimilarity", + "compilationUnitId" : "acm017653jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017659jsd", "acm017660jsd" ] + }, + "acm017662jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017662jsd", + "name" : "UnicodeLigaturesMap", + "parentId" : "acm017601jsd", + "content" : [ "acm017669jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017663jsd" : { + "type" : "CodePackage", + "id" : "acm017663jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017664jsd" ] + }, + "acm017664jsd" : { + "type" : "CodePackage", + "id" : "acm017664jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017665jsd" ] + }, + "acm017665jsd" : { + "type" : "CodePackage", + "id" : "acm017665jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017666jsd" ] + }, + "acm017666jsd" : { + "type" : "CodePackage", + "id" : "acm017666jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017667jsd" ] + }, + "acm017667jsd" : { + "type" : "CodePackage", + "id" : "acm017667jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017662jsd" ] + }, + "acm017668jsd" : { + "type" : "ControlElement", + "id" : "acm017668jsd", + "name" : "UnicodeLigaturesMap" + }, + "acm017669jsd" : { + "type" : "ClassUnit", + "id" : "acm017669jsd", + "name" : "UnicodeLigaturesMap", + "compilationUnitId" : "acm017662jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017668jsd" ] + }, + "acm017670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017670jsd", + "name" : "XmlCharsMap", + "parentId" : "acm017601jsd", + "content" : [ "acm017677jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017671jsd" : { + "type" : "CodePackage", + "id" : "acm017671jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017672jsd" ] + }, + "acm017672jsd" : { + "type" : "CodePackage", + "id" : "acm017672jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017673jsd" ] + }, + "acm017673jsd" : { + "type" : "CodePackage", + "id" : "acm017673jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017674jsd" ] + }, + "acm017674jsd" : { + "type" : "CodePackage", + "id" : "acm017674jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm017675jsd" ] + }, + "acm017675jsd" : { + "type" : "CodePackage", + "id" : "acm017675jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm017670jsd" ] + }, + "acm017676jsd" : { + "type" : "ControlElement", + "id" : "acm017676jsd", + "name" : "XmlCharsMap" + }, + "acm017677jsd" : { + "type" : "ClassUnit", + "id" : "acm017677jsd", + "name" : "XmlCharsMap", + "compilationUnitId" : "acm017670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm017676jsd" ] + }, + "acm017678jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017678jsd", + "name" : "DocumentInformationExtractor", + "parentId" : "acm017682jsd", + "content" : [ "acm017690jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017679jsd" : { + "type" : "CodePackage", + "id" : "acm017679jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017680jsd" ] + }, + "acm017680jsd" : { + "type" : "CodePackage", + "id" : "acm017680jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017681jsd" ] + }, + "acm017681jsd" : { + "type" : "CodePackage", + "id" : "acm017681jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017682jsd" ] + }, + "acm017682jsd" : { + "type" : "CodePackage", + "id" : "acm017682jsd", + "name" : "xmp", + "parentId" : "acm001340jsd", + "content" : [ "acm017678jsd", "acm017691jsd", "acm017728jsd", "acm017734jsd", "acm017746jsd", "acm017757jsd", "acm017766jsd", "acm028045jsd", "acm028058jsd" ] + }, + "acm017683jsd" : { + "type" : "ControlElement", + "id" : "acm017683jsd", + "name" : "DocumentInformationExtractor" + }, + "acm017684jsd" : { + "type" : "ControlElement", + "id" : "acm017684jsd", + "name" : "extractAuthor" + }, + "acm017685jsd" : { + "type" : "ControlElement", + "id" : "acm017685jsd", + "name" : "extractTitle" + }, + "acm017686jsd" : { + "type" : "ControlElement", + "id" : "acm017686jsd", + "name" : "extractKeywords" + }, + "acm017687jsd" : { + "type" : "ControlElement", + "id" : "acm017687jsd", + "name" : "extractSubject" + }, + "acm017688jsd" : { + "type" : "ControlElement", + "id" : "acm017688jsd", + "name" : "extractOtherFields" + }, + "acm017689jsd" : { + "type" : "ControlElement", + "id" : "acm017689jsd", + "name" : "extractBibtexEntry" + }, + "acm017690jsd" : { + "type" : "ClassUnit", + "id" : "acm017690jsd", + "name" : "DocumentInformationExtractor", + "compilationUnitId" : "acm017678jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm017683jsd", "acm017684jsd", "acm017685jsd", "acm017686jsd", "acm017687jsd", "acm017688jsd", "acm017689jsd" ] + }, + "acm017691jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017691jsd", + "name" : "DublinCoreExtractor", + "parentId" : "acm017682jsd", + "content" : [ "acm017727jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017692jsd" : { + "type" : "CodePackage", + "id" : "acm017692jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017693jsd" ] + }, + "acm017693jsd" : { + "type" : "CodePackage", + "id" : "acm017693jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017694jsd" ] + }, + "acm017694jsd" : { + "type" : "CodePackage", + "id" : "acm017694jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017695jsd" ] + }, + "acm017695jsd" : { + "type" : "CodePackage", + "id" : "acm017695jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017691jsd" ] + }, + "acm017696jsd" : { + "type" : "ControlElement", + "id" : "acm017696jsd", + "name" : "DublinCoreExtractor" + }, + "acm017697jsd" : { + "type" : "ControlElement", + "id" : "acm017697jsd", + "name" : "extractEditor" + }, + "acm017698jsd" : { + "type" : "ControlElement", + "id" : "acm017698jsd", + "name" : "extractAuthor" + }, + "acm017699jsd" : { + "type" : "ControlElement", + "id" : "acm017699jsd", + "name" : "extractDate" + }, + "acm017700jsd" : { + "type" : "ControlElement", + "id" : "acm017700jsd", + "name" : "extractAbstract" + }, + "acm017701jsd" : { + "type" : "ControlElement", + "id" : "acm017701jsd", + "name" : "extractDOI" + }, + "acm017702jsd" : { + "type" : "ControlElement", + "id" : "acm017702jsd", + "name" : "extractPublisher" + }, + "acm017703jsd" : { + "type" : "ControlElement", + "id" : "acm017703jsd", + "name" : "extractBibTexFields" + }, + "acm017704jsd" : { + "type" : "ControlElement", + "id" : "acm017704jsd", + "name" : "extractRights" + }, + "acm017705jsd" : { + "type" : "ControlElement", + "id" : "acm017705jsd", + "name" : "extractSource" + }, + "acm017706jsd" : { + "type" : "ControlElement", + "id" : "acm017706jsd", + "name" : "extractSubject" + }, + "acm017707jsd" : { + "type" : "ControlElement", + "id" : "acm017707jsd", + "name" : "extractTitle" + }, + "acm017708jsd" : { + "type" : "ControlElement", + "id" : "acm017708jsd", + "name" : "extractType" + }, + "acm017709jsd" : { + "type" : "ControlElement", + "id" : "acm017709jsd", + "name" : "extractCoverage" + }, + "acm017710jsd" : { + "type" : "ControlElement", + "id" : "acm017710jsd", + "name" : "extractLanguages" + }, + "acm017711jsd" : { + "type" : "ControlElement", + "id" : "acm017711jsd", + "name" : "extractBibtexEntry" + }, + "acm017712jsd" : { + "type" : "ControlElement", + "id" : "acm017712jsd", + "name" : "fillContributor" + }, + "acm017713jsd" : { + "type" : "ControlElement", + "id" : "acm017713jsd", + "name" : "fillCreator" + }, + "acm017714jsd" : { + "type" : "ControlElement", + "id" : "acm017714jsd", + "name" : "fillDate" + }, + "acm017715jsd" : { + "type" : "ControlElement", + "id" : "acm017715jsd", + "name" : "fillDescription" + }, + "acm017716jsd" : { + "type" : "ControlElement", + "id" : "acm017716jsd", + "name" : "fillIdentifier" + }, + "acm017717jsd" : { + "type" : "ControlElement", + "id" : "acm017717jsd", + "name" : "fillPublisher" + }, + "acm017718jsd" : { + "type" : "ControlElement", + "id" : "acm017718jsd", + "name" : "fillKeywords" + }, + "acm017719jsd" : { + "type" : "ControlElement", + "id" : "acm017719jsd", + "name" : "fillTitle" + }, + "acm017720jsd" : { + "type" : "ControlElement", + "id" : "acm017720jsd", + "name" : "fillCoverage" + }, + "acm017721jsd" : { + "type" : "ControlElement", + "id" : "acm017721jsd", + "name" : "fillLanguages" + }, + "acm017722jsd" : { + "type" : "ControlElement", + "id" : "acm017722jsd", + "name" : "fillRights" + }, + "acm017723jsd" : { + "type" : "ControlElement", + "id" : "acm017723jsd", + "name" : "fillSource" + }, + "acm017724jsd" : { + "type" : "ControlElement", + "id" : "acm017724jsd", + "name" : "fillCustomField" + }, + "acm017725jsd" : { + "type" : "ControlElement", + "id" : "acm017725jsd", + "name" : "fillType" + }, + "acm017726jsd" : { + "type" : "ControlElement", + "id" : "acm017726jsd", + "name" : "fillDublinCoreSchema" + }, + "acm017727jsd" : { + "type" : "ClassUnit", + "id" : "acm017727jsd", + "name" : "DublinCoreExtractor", + "compilationUnitId" : "acm017691jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010375jsd", "acm012157jsd", "acm017727jsd", "acm017745jsd", "acm018138jsd", "acm018175jsd", "acm018267jsd", "acm018673jsd", "acm018798jsd", "acm018813jsd" ], + "content" : [ "acm017696jsd", "acm017697jsd", "acm017698jsd", "acm017699jsd", "acm017700jsd", "acm017701jsd", "acm017702jsd", "acm017703jsd", "acm017704jsd", "acm017705jsd", "acm017706jsd", "acm017707jsd", "acm017708jsd", "acm017709jsd", "acm017710jsd", "acm017711jsd", "acm017712jsd", "acm017713jsd", "acm017714jsd", "acm017715jsd", "acm017716jsd", "acm017717jsd", "acm017718jsd", "acm017719jsd", "acm017720jsd", "acm017721jsd", "acm017722jsd", "acm017723jsd", "acm017724jsd", "acm017725jsd", "acm017726jsd" ] + }, + "acm017728jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017728jsd", + "name" : "EncryptedPdfsNotSupportedException", + "parentId" : "acm017682jsd", + "content" : [ "acm017733jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017729jsd" : { + "type" : "CodePackage", + "id" : "acm017729jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017730jsd" ] + }, + "acm017730jsd" : { + "type" : "CodePackage", + "id" : "acm017730jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017731jsd" ] + }, + "acm017731jsd" : { + "type" : "CodePackage", + "id" : "acm017731jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017732jsd" ] + }, + "acm017732jsd" : { + "type" : "CodePackage", + "id" : "acm017732jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017728jsd" ] + }, + "acm017733jsd" : { + "type" : "ClassUnit", + "id" : "acm017733jsd", + "name" : "EncryptedPdfsNotSupportedException", + "compilationUnitId" : "acm017728jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm017734jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017734jsd", + "name" : "XmpPreferences", + "parentId" : "acm017682jsd", + "content" : [ "acm017745jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017735jsd" : { + "type" : "CodePackage", + "id" : "acm017735jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017736jsd" ] + }, + "acm017736jsd" : { + "type" : "CodePackage", + "id" : "acm017736jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017737jsd" ] + }, + "acm017737jsd" : { + "type" : "CodePackage", + "id" : "acm017737jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017738jsd" ] + }, + "acm017738jsd" : { + "type" : "CodePackage", + "id" : "acm017738jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017734jsd" ] + }, + "acm017739jsd" : { + "type" : "ControlElement", + "id" : "acm017739jsd", + "name" : "XmpPreferences" + }, + "acm017740jsd" : { + "type" : "ControlElement", + "id" : "acm017740jsd", + "name" : "shouldUseXmpPrivacyFilter" + }, + "acm017741jsd" : { + "type" : "ControlElement", + "id" : "acm017741jsd", + "name" : "useXmpPrivacyFilterProperty" + }, + "acm017742jsd" : { + "type" : "ControlElement", + "id" : "acm017742jsd", + "name" : "setUseXmpPrivacyFilter" + }, + "acm017743jsd" : { + "type" : "ControlElement", + "id" : "acm017743jsd", + "name" : "getXmpPrivacyFilter" + }, + "acm017744jsd" : { + "type" : "ControlElement", + "id" : "acm017744jsd", + "name" : "getKeywordSeparator" + }, + "acm017745jsd" : { + "type" : "ClassUnit", + "id" : "acm017745jsd", + "name" : "XmpPreferences", + "compilationUnitId" : "acm017734jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm017739jsd", "acm017740jsd", "acm017741jsd", "acm017742jsd", "acm017743jsd", "acm017744jsd" ] + }, + "acm017746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017746jsd", + "name" : "XmpUtilReader", + "parentId" : "acm017682jsd", + "content" : [ "acm017756jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017747jsd" : { + "type" : "CodePackage", + "id" : "acm017747jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017748jsd" ] + }, + "acm017748jsd" : { + "type" : "CodePackage", + "id" : "acm017748jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017749jsd" ] + }, + "acm017749jsd" : { + "type" : "CodePackage", + "id" : "acm017749jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017750jsd" ] + }, + "acm017750jsd" : { + "type" : "CodePackage", + "id" : "acm017750jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017746jsd" ] + }, + "acm017751jsd" : { + "type" : "ControlElement", + "id" : "acm017751jsd", + "name" : "XmpUtilReader" + }, + "acm017752jsd" : { + "type" : "ControlElement", + "id" : "acm017752jsd", + "name" : "readRawXmp" + }, + "acm017753jsd" : { + "type" : "ControlElement", + "id" : "acm017753jsd", + "name" : "readXmp" + }, + "acm017754jsd" : { + "type" : "ControlElement", + "id" : "acm017754jsd", + "name" : "getXmpMetadata" + }, + "acm017755jsd" : { + "type" : "ControlElement", + "id" : "acm017755jsd", + "name" : "loadWithAutomaticDecryption" + }, + "acm017756jsd" : { + "type" : "ClassUnit", + "id" : "acm017756jsd", + "name" : "XmpUtilReader", + "compilationUnitId" : "acm017746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017690jsd", "acm017727jsd", "acm017745jsd", "acm017756jsd", "acm018267jsd" ], + "content" : [ "acm017751jsd", "acm017752jsd", "acm017753jsd", "acm017754jsd", "acm017755jsd" ] + }, + "acm017757jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017757jsd", + "name" : "XmpUtilShared", + "parentId" : "acm017682jsd", + "content" : [ "acm017765jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017758jsd" : { + "type" : "CodePackage", + "id" : "acm017758jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017759jsd" ] + }, + "acm017759jsd" : { + "type" : "CodePackage", + "id" : "acm017759jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017760jsd" ] + }, + "acm017760jsd" : { + "type" : "CodePackage", + "id" : "acm017760jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017761jsd" ] + }, + "acm017761jsd" : { + "type" : "CodePackage", + "id" : "acm017761jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017757jsd" ] + }, + "acm017762jsd" : { + "type" : "ControlElement", + "id" : "acm017762jsd", + "name" : "XmpUtilShared" + }, + "acm017763jsd" : { + "type" : "ControlElement", + "id" : "acm017763jsd", + "name" : "parseXmpMetadata" + }, + "acm017764jsd" : { + "type" : "ControlElement", + "id" : "acm017764jsd", + "name" : "hasMetadata" + }, + "acm017765jsd" : { + "type" : "ClassUnit", + "id" : "acm017765jsd", + "name" : "XmpUtilShared", + "compilationUnitId" : "acm017757jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017733jsd", "acm017745jsd", "acm017756jsd", "acm017765jsd", "acm018267jsd" ], + "content" : [ "acm017762jsd", "acm017763jsd", "acm017764jsd" ] + }, + "acm017766jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017766jsd", + "name" : "XmpUtilWriter", + "parentId" : "acm017682jsd", + "content" : [ "acm017781jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017767jsd" : { + "type" : "CodePackage", + "id" : "acm017767jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017768jsd" ] + }, + "acm017768jsd" : { + "type" : "CodePackage", + "id" : "acm017768jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017769jsd" ] + }, + "acm017769jsd" : { + "type" : "CodePackage", + "id" : "acm017769jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm017770jsd" ] + }, + "acm017770jsd" : { + "type" : "CodePackage", + "id" : "acm017770jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm017766jsd" ] + }, + "acm017771jsd" : { + "type" : "ControlElement", + "id" : "acm017771jsd", + "name" : "XmpUtilWriter" + }, + "acm017772jsd" : { + "type" : "ControlElement", + "id" : "acm017772jsd", + "name" : "writeXmp" + }, + "acm017773jsd" : { + "type" : "ControlElement", + "id" : "acm017773jsd", + "name" : "writeToDCSchema" + }, + "acm017774jsd" : { + "type" : "ControlElement", + "id" : "acm017774jsd", + "name" : "writeToDCSchema" + }, + "acm017775jsd" : { + "type" : "ControlElement", + "id" : "acm017775jsd", + "name" : "writeDublinCore" + }, + "acm017776jsd" : { + "type" : "ControlElement", + "id" : "acm017776jsd", + "name" : "generateXmpStringWithXmpDeclaration" + }, + "acm017777jsd" : { + "type" : "ControlElement", + "id" : "acm017777jsd", + "name" : "generateXmpStringWithoutXmpDeclaration" + }, + "acm017778jsd" : { + "type" : "ControlElement", + "id" : "acm017778jsd", + "name" : "writeDocumentInformation" + }, + "acm017779jsd" : { + "type" : "ControlElement", + "id" : "acm017779jsd", + "name" : "writeXmp" + }, + "acm017780jsd" : { + "type" : "ControlElement", + "id" : "acm017780jsd", + "name" : "getDefaultOrDatabaseEntry" + }, + "acm017781jsd" : { + "type" : "ClassUnit", + "id" : "acm017781jsd", + "name" : "XmpUtilWriter", + "compilationUnitId" : "acm017766jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012157jsd", "acm017727jsd", "acm017733jsd", "acm017745jsd", "acm017781jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm017771jsd", "acm017772jsd", "acm017773jsd", "acm017774jsd", "acm017775jsd", "acm017776jsd", "acm017777jsd", "acm017778jsd", "acm017779jsd", "acm017780jsd" ] + }, + "acm017782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017782jsd", + "name" : "ConvertLegacyExplicitGroups", + "parentId" : "acm017785jsd", + "content" : [ "acm017788jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017783jsd" : { + "type" : "CodePackage", + "id" : "acm017783jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017784jsd" ] + }, + "acm017784jsd" : { + "type" : "CodePackage", + "id" : "acm017784jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017785jsd" ] + }, + "acm017785jsd" : { + "type" : "CodePackage", + "id" : "acm017785jsd", + "name" : "migrations", + "parentId" : "acm001339jsd", + "content" : [ "acm017782jsd", "acm017789jsd", "acm017797jsd", "acm017805jsd", "acm017819jsd", "acm017825jsd", "acm017849jsd", "acm028076jsd", "acm028086jsd", "acm028092jsd", "acm028104jsd", "acm028121jsd" ] + }, + "acm017786jsd" : { + "type" : "ControlElement", + "id" : "acm017786jsd", + "name" : "performMigration" + }, + "acm017787jsd" : { + "type" : "ControlElement", + "id" : "acm017787jsd", + "name" : "getExplicitGroupsWithLegacyKeys" + }, + "acm017788jsd" : { + "type" : "ClassUnit", + "id" : "acm017788jsd", + "name" : "ConvertLegacyExplicitGroups", + "compilationUnitId" : "acm017782jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017824jsd" ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm018267jsd", "acm019171jsd", "acm019221jsd" ], + "content" : [ "acm017786jsd", "acm017787jsd" ] + }, + "acm017789jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017789jsd", + "name" : "ConvertMarkingToGroups", + "parentId" : "acm017785jsd", + "content" : [ "acm017796jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017790jsd" : { + "type" : "CodePackage", + "id" : "acm017790jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017791jsd" ] + }, + "acm017791jsd" : { + "type" : "CodePackage", + "id" : "acm017791jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017792jsd" ] + }, + "acm017792jsd" : { + "type" : "CodePackage", + "id" : "acm017792jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017789jsd" ] + }, + "acm017793jsd" : { + "type" : "ControlElement", + "id" : "acm017793jsd", + "name" : "performMigration" + }, + "acm017794jsd" : { + "type" : "ControlElement", + "id" : "acm017794jsd", + "name" : "getMarkingWithEntries" + }, + "acm017795jsd" : { + "type" : "ControlElement", + "id" : "acm017795jsd", + "name" : "clearMarkings" + }, + "acm017796jsd" : { + "type" : "ClassUnit", + "id" : "acm017796jsd", + "name" : "ConvertMarkingToGroups", + "compilationUnitId" : "acm017789jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017824jsd" ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm018267jsd", "acm019171jsd", "acm019221jsd" ], + "content" : [ "acm017793jsd", "acm017794jsd", "acm017795jsd" ] + }, + "acm017797jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017797jsd", + "name" : "CustomEntryTypePreferenceMigration", + "parentId" : "acm017785jsd", + "content" : [ "acm017804jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017798jsd" : { + "type" : "CodePackage", + "id" : "acm017798jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017799jsd" ] + }, + "acm017799jsd" : { + "type" : "CodePackage", + "id" : "acm017799jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017800jsd" ] + }, + "acm017800jsd" : { + "type" : "CodePackage", + "id" : "acm017800jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017797jsd" ] + }, + "acm017801jsd" : { + "type" : "ControlElement", + "id" : "acm017801jsd", + "name" : "CustomEntryTypePreferenceMigration" + }, + "acm017802jsd" : { + "type" : "ControlElement", + "id" : "acm017802jsd", + "name" : "upgradeStoredBibEntryTypes" + }, + "acm017803jsd" : { + "type" : "ControlElement", + "id" : "acm017803jsd", + "name" : "getBibEntryType" + }, + "acm017804jsd" : { + "type" : "ClassUnit", + "id" : "acm017804jsd", + "name" : "CustomEntryTypePreferenceMigration", + "compilationUnitId" : "acm017797jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd", "acm018289jsd", "acm018306jsd", "acm021095jsd" ], + "content" : [ "acm017801jsd", "acm017802jsd", "acm017803jsd" ] + }, + "acm017805jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017805jsd", + "name" : "MergeReviewIntoCommentMigration", + "parentId" : "acm017785jsd", + "content" : [ "acm017818jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017806jsd" : { + "type" : "CodePackage", + "id" : "acm017806jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017807jsd" ] + }, + "acm017807jsd" : { + "type" : "CodePackage", + "id" : "acm017807jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017808jsd" ] + }, + "acm017808jsd" : { + "type" : "CodePackage", + "id" : "acm017808jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017805jsd" ] + }, + "acm017809jsd" : { + "type" : "ControlElement", + "id" : "acm017809jsd", + "name" : "needsMigration" + }, + "acm017810jsd" : { + "type" : "ControlElement", + "id" : "acm017810jsd", + "name" : "performMigration" + }, + "acm017811jsd" : { + "type" : "ControlElement", + "id" : "acm017811jsd", + "name" : "collectConflicts" + }, + "acm017812jsd" : { + "type" : "ControlElement", + "id" : "acm017812jsd", + "name" : "performConflictingMigration" + }, + "acm017813jsd" : { + "type" : "ControlElement", + "id" : "acm017813jsd", + "name" : "hasCommentField" + }, + "acm017814jsd" : { + "type" : "ControlElement", + "id" : "acm017814jsd", + "name" : "hasReviewField" + }, + "acm017815jsd" : { + "type" : "ControlElement", + "id" : "acm017815jsd", + "name" : "mergeCommentFieldIfPresent" + }, + "acm017816jsd" : { + "type" : "ControlElement", + "id" : "acm017816jsd", + "name" : "migrate" + }, + "acm017817jsd" : { + "type" : "ControlElement", + "id" : "acm017817jsd", + "name" : "updateFields" + }, + "acm017818jsd" : { + "type" : "ClassUnit", + "id" : "acm017818jsd", + "name" : "MergeReviewIntoCommentMigration", + "compilationUnitId" : "acm017805jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017818jsd", "acm018267jsd" ], + "content" : [ "acm017809jsd", "acm017810jsd", "acm017811jsd", "acm017812jsd", "acm017813jsd", "acm017814jsd", "acm017815jsd", "acm017816jsd", "acm017817jsd" ] + }, + "acm017819jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017819jsd", + "name" : "PostOpenMigration", + "parentId" : "acm017785jsd", + "content" : [ "acm017824jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017820jsd" : { + "type" : "CodePackage", + "id" : "acm017820jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017821jsd" ] + }, + "acm017821jsd" : { + "type" : "CodePackage", + "id" : "acm017821jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017822jsd" ] + }, + "acm017822jsd" : { + "type" : "CodePackage", + "id" : "acm017822jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017819jsd" ] + }, + "acm017823jsd" : { + "type" : "ControlElement", + "id" : "acm017823jsd", + "name" : "performMigration" + }, + "acm017824jsd" : { + "type" : "InterfaceUnit", + "id" : "acm017824jsd", + "name" : "PostOpenMigration", + "compilationUnitId" : "acm017819jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd" ], + "content" : [ "acm017823jsd" ] + }, + "acm017825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017825jsd", + "name" : "PreferencesMigrations", + "parentId" : "acm017785jsd", + "content" : [ "acm017848jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017826jsd" : { + "type" : "CodePackage", + "id" : "acm017826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017827jsd" ] + }, + "acm017827jsd" : { + "type" : "CodePackage", + "id" : "acm017827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017828jsd" ] + }, + "acm017828jsd" : { + "type" : "CodePackage", + "id" : "acm017828jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017825jsd" ] + }, + "acm017829jsd" : { + "type" : "ControlElement", + "id" : "acm017829jsd", + "name" : "PreferencesMigrations" + }, + "acm017830jsd" : { + "type" : "ControlElement", + "id" : "acm017830jsd", + "name" : "runMigrations" + }, + "acm017831jsd" : { + "type" : "ControlElement", + "id" : "acm017831jsd", + "name" : "upgradePrefsToOrgJabRef" + }, + "acm017832jsd" : { + "type" : "ControlElement", + "id" : "acm017832jsd", + "name" : "copyPrefsRecursively" + }, + "acm017833jsd" : { + "type" : "ControlElement", + "id" : "acm017833jsd", + "name" : "upgradeFaultyEncodingStrings" + }, + "acm017834jsd" : { + "type" : "ControlElement", + "id" : "acm017834jsd", + "name" : "upgradeSortOrder" + }, + "acm017835jsd" : { + "type" : "ControlElement", + "id" : "acm017835jsd", + "name" : "upgradeStoredBibEntryTypes" + }, + "acm017836jsd" : { + "type" : "ControlElement", + "id" : "acm017836jsd", + "name" : "upgradeLabelPatternToCitationKeyPattern" + }, + "acm017837jsd" : { + "type" : "ControlElement", + "id" : "acm017837jsd", + "name" : "migrateFileImportPattern" + }, + "acm017838jsd" : { + "type" : "ControlElement", + "id" : "acm017838jsd", + "name" : "upgradeImportFileAndDirePatterns" + }, + "acm017839jsd" : { + "type" : "ControlElement", + "id" : "acm017839jsd", + "name" : "upgradeKeyBindingsToJavaFX" + }, + "acm017840jsd" : { + "type" : "ControlElement", + "id" : "acm017840jsd", + "name" : "addCrossRefRelatedFieldsForAutoComplete" + }, + "acm017841jsd" : { + "type" : "ControlElement", + "id" : "acm017841jsd", + "name" : "migrateTypedKeyPrefs" + }, + "acm017842jsd" : { + "type" : "ControlElement", + "id" : "acm017842jsd", + "name" : "upgradePreviewStyleFromReviewToComment" + }, + "acm017843jsd" : { + "type" : "ControlElement", + "id" : "acm017843jsd", + "name" : "upgradePreviewStyleAllowMarkdown" + }, + "acm017844jsd" : { + "type" : "ControlElement", + "id" : "acm017844jsd", + "name" : "upgradeColumnPreferences" + }, + "acm017845jsd" : { + "type" : "ControlElement", + "id" : "acm017845jsd", + "name" : "changeColumnVariableNamesFor51" + }, + "acm017846jsd" : { + "type" : "ControlElement", + "id" : "acm017846jsd", + "name" : "restoreVariablesForBackwardCompatibility" + }, + "acm017847jsd" : { + "type" : "ControlElement", + "id" : "acm017847jsd", + "name" : "upgradeCleanups" + }, + "acm017848jsd" : { + "type" : "ClassUnit", + "id" : "acm017848jsd", + "name" : "PreferencesMigrations", + "compilationUnitId" : "acm017825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006250jsd", "acm006256jsd", "acm011011jsd", "acm017848jsd", "acm020792jsd", "acm021095jsd" ], + "content" : [ "acm017829jsd", "acm017830jsd", "acm017831jsd", "acm017832jsd", "acm017833jsd", "acm017834jsd", "acm017835jsd", "acm017836jsd", "acm017837jsd", "acm017838jsd", "acm017839jsd", "acm017840jsd", "acm017841jsd", "acm017842jsd", "acm017843jsd", "acm017844jsd", "acm017845jsd", "acm017846jsd", "acm017847jsd" ] + }, + "acm017849jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017849jsd", + "name" : "SpecialFieldsToSeparateFields", + "parentId" : "acm017785jsd", + "content" : [ "acm017857jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017850jsd" : { + "type" : "CodePackage", + "id" : "acm017850jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017851jsd" ] + }, + "acm017851jsd" : { + "type" : "CodePackage", + "id" : "acm017851jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017852jsd" ] + }, + "acm017852jsd" : { + "type" : "CodePackage", + "id" : "acm017852jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm017849jsd" ] + }, + "acm017853jsd" : { + "type" : "ControlElement", + "id" : "acm017853jsd", + "name" : "SpecialFieldsToSeparateFields" + }, + "acm017854jsd" : { + "type" : "ControlElement", + "id" : "acm017854jsd", + "name" : "performMigration" + }, + "acm017855jsd" : { + "type" : "ControlElement", + "id" : "acm017855jsd", + "name" : "migrateEntry" + }, + "acm017856jsd" : { + "type" : "ControlElement", + "id" : "acm017856jsd", + "name" : "getMigrationTable" + }, + "acm017857jsd" : { + "type" : "ClassUnit", + "id" : "acm017857jsd", + "name" : "SpecialFieldsToSeparateFields", + "compilationUnitId" : "acm017849jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm017824jsd" ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm018267jsd", "acm018443jsd", "acm018479jsd", "acm018770jsd", "acm018782jsd" ], + "content" : [ "acm017853jsd", "acm017854jsd", "acm017855jsd", "acm017856jsd" ] + }, + "acm017858jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017858jsd", + "name" : "ChainNode", + "parentId" : "acm017861jsd", + "content" : [ "acm017871jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017859jsd" : { + "type" : "CodePackage", + "id" : "acm017859jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017860jsd" ] + }, + "acm017860jsd" : { + "type" : "CodePackage", + "id" : "acm017860jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017861jsd" ] + }, + "acm017861jsd" : { + "type" : "CodePackage", + "id" : "acm017861jsd", + "name" : "model", + "parentId" : "acm001339jsd", + "content" : [ "acm017858jsd", "acm017872jsd", "acm017885jsd", "acm028132jsd", "acm028147jsd", "acm028228jsd", "acm017932jsd", "acm018120jsd", "acm019084jsd", "acm019340jsd", "acm019472jsd", "acm020215jsd", "acm020227jsd", "acm020304jsd", "acm020313jsd", "acm020487jsd", "acm020553jsd", "acm020620jsd", "acm020671jsd", "acm028942jsd" ] + }, + "acm017862jsd" : { + "type" : "ControlElement", + "id" : "acm017862jsd", + "name" : "ChainNode" + }, + "acm017863jsd" : { + "type" : "ControlElement", + "id" : "acm017863jsd", + "name" : "getParent" + }, + "acm017864jsd" : { + "type" : "ControlElement", + "id" : "acm017864jsd", + "name" : "setParent" + }, + "acm017865jsd" : { + "type" : "ControlElement", + "id" : "acm017865jsd", + "name" : "getChild" + }, + "acm017866jsd" : { + "type" : "ControlElement", + "id" : "acm017866jsd", + "name" : "setChild" + }, + "acm017867jsd" : { + "type" : "ControlElement", + "id" : "acm017867jsd", + "name" : "moveTo" + }, + "acm017868jsd" : { + "type" : "ControlElement", + "id" : "acm017868jsd", + "name" : "removeChild" + }, + "acm017869jsd" : { + "type" : "ControlElement", + "id" : "acm017869jsd", + "name" : "isAncestorOf" + }, + "acm017870jsd" : { + "type" : "ControlElement", + "id" : "acm017870jsd", + "name" : "addAtEnd" + }, + "acm017871jsd" : { + "type" : "ClassUnit", + "id" : "acm017871jsd", + "name" : "ChainNode", + "compilationUnitId" : "acm017858jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017871jsd" ], + "content" : [ "acm017862jsd", "acm017863jsd", "acm017864jsd", "acm017865jsd", "acm017866jsd", "acm017867jsd", "acm017868jsd", "acm017869jsd", "acm017870jsd" ] + }, + "acm017872jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017872jsd", + "name" : "FieldChange", + "parentId" : "acm017861jsd", + "content" : [ "acm017884jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017873jsd" : { + "type" : "CodePackage", + "id" : "acm017873jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017874jsd" ] + }, + "acm017874jsd" : { + "type" : "CodePackage", + "id" : "acm017874jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017875jsd" ] + }, + "acm017875jsd" : { + "type" : "CodePackage", + "id" : "acm017875jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm017872jsd" ] + }, + "acm017876jsd" : { + "type" : "ControlElement", + "id" : "acm017876jsd", + "name" : "FieldChange" + }, + "acm017877jsd" : { + "type" : "ControlElement", + "id" : "acm017877jsd", + "name" : "getEntry" + }, + "acm017878jsd" : { + "type" : "ControlElement", + "id" : "acm017878jsd", + "name" : "getField" + }, + "acm017879jsd" : { + "type" : "ControlElement", + "id" : "acm017879jsd", + "name" : "getOldValue" + }, + "acm017880jsd" : { + "type" : "ControlElement", + "id" : "acm017880jsd", + "name" : "getNewValue" + }, + "acm017881jsd" : { + "type" : "ControlElement", + "id" : "acm017881jsd", + "name" : "hashCode" + }, + "acm017882jsd" : { + "type" : "ControlElement", + "id" : "acm017882jsd", + "name" : "equals" + }, + "acm017883jsd" : { + "type" : "ControlElement", + "id" : "acm017883jsd", + "name" : "toString" + }, + "acm017884jsd" : { + "type" : "ClassUnit", + "id" : "acm017884jsd", + "name" : "FieldChange", + "compilationUnitId" : "acm017872jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm017876jsd", "acm017877jsd", "acm017878jsd", "acm017879jsd", "acm017880jsd", "acm017881jsd", "acm017882jsd", "acm017883jsd" ] + }, + "acm017885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017885jsd", + "name" : "TreeNode", + "parentId" : "acm017861jsd", + "content" : [ "acm017927jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017886jsd" : { + "type" : "CodePackage", + "id" : "acm017886jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017887jsd" ] + }, + "acm017887jsd" : { + "type" : "CodePackage", + "id" : "acm017887jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017888jsd" ] + }, + "acm017888jsd" : { + "type" : "CodePackage", + "id" : "acm017888jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm017885jsd" ] + }, + "acm017889jsd" : { + "type" : "ControlElement", + "id" : "acm017889jsd", + "name" : "TreeNode" + }, + "acm017890jsd" : { + "type" : "ControlElement", + "id" : "acm017890jsd", + "name" : "getIndexedPathFromRoot" + }, + "acm017891jsd" : { + "type" : "ControlElement", + "id" : "acm017891jsd", + "name" : "getDescendant" + }, + "acm017892jsd" : { + "type" : "ControlElement", + "id" : "acm017892jsd", + "name" : "getPositionInParent" + }, + "acm017893jsd" : { + "type" : "ControlElement", + "id" : "acm017893jsd", + "name" : "getIndexOfChild" + }, + "acm017894jsd" : { + "type" : "ControlElement", + "id" : "acm017894jsd", + "name" : "getLevel" + }, + "acm017895jsd" : { + "type" : "ControlElement", + "id" : "acm017895jsd", + "name" : "getNumberOfChildren" + }, + "acm017896jsd" : { + "type" : "ControlElement", + "id" : "acm017896jsd", + "name" : "moveTo" + }, + "acm017897jsd" : { + "type" : "ControlElement", + "id" : "acm017897jsd", + "name" : "getPathFromRoot" + }, + "acm017898jsd" : { + "type" : "ControlElement", + "id" : "acm017898jsd", + "name" : "getNextSibling" + }, + "acm017899jsd" : { + "type" : "ControlElement", + "id" : "acm017899jsd", + "name" : "getPreviousSibling" + }, + "acm017900jsd" : { + "type" : "ControlElement", + "id" : "acm017900jsd", + "name" : "getRelativeSibling" + }, + "acm017901jsd" : { + "type" : "ControlElement", + "id" : "acm017901jsd", + "name" : "getParent" + }, + "acm017902jsd" : { + "type" : "ControlElement", + "id" : "acm017902jsd", + "name" : "setParent" + }, + "acm017903jsd" : { + "type" : "ControlElement", + "id" : "acm017903jsd", + "name" : "getChildAt" + }, + "acm017904jsd" : { + "type" : "ControlElement", + "id" : "acm017904jsd", + "name" : "childIndexExists" + }, + "acm017905jsd" : { + "type" : "ControlElement", + "id" : "acm017905jsd", + "name" : "isRoot" + }, + "acm017906jsd" : { + "type" : "ControlElement", + "id" : "acm017906jsd", + "name" : "isAncestorOf" + }, + "acm017907jsd" : { + "type" : "ControlElement", + "id" : "acm017907jsd", + "name" : "getRoot" + }, + "acm017908jsd" : { + "type" : "ControlElement", + "id" : "acm017908jsd", + "name" : "isLeaf" + }, + "acm017909jsd" : { + "type" : "ControlElement", + "id" : "acm017909jsd", + "name" : "removeFromParent" + }, + "acm017910jsd" : { + "type" : "ControlElement", + "id" : "acm017910jsd", + "name" : "removeAllChildren" + }, + "acm017911jsd" : { + "type" : "ControlElement", + "id" : "acm017911jsd", + "name" : "getFirstChild" + }, + "acm017912jsd" : { + "type" : "ControlElement", + "id" : "acm017912jsd", + "name" : "getLastChild" + }, + "acm017913jsd" : { + "type" : "ControlElement", + "id" : "acm017913jsd", + "name" : "isNodeDescendant" + }, + "acm017914jsd" : { + "type" : "ControlElement", + "id" : "acm017914jsd", + "name" : "getChildren" + }, + "acm017915jsd" : { + "type" : "ControlElement", + "id" : "acm017915jsd", + "name" : "removeChild" + }, + "acm017916jsd" : { + "type" : "ControlElement", + "id" : "acm017916jsd", + "name" : "removeChild" + }, + "acm017917jsd" : { + "type" : "ControlElement", + "id" : "acm017917jsd", + "name" : "addChild" + }, + "acm017918jsd" : { + "type" : "ControlElement", + "id" : "acm017918jsd", + "name" : "addChild" + }, + "acm017919jsd" : { + "type" : "ControlElement", + "id" : "acm017919jsd", + "name" : "moveAllChildrenTo" + }, + "acm017920jsd" : { + "type" : "ControlElement", + "id" : "acm017920jsd", + "name" : "sortChildren" + }, + "acm017921jsd" : { + "type" : "ControlElement", + "id" : "acm017921jsd", + "name" : "moveTo" + }, + "acm017922jsd" : { + "type" : "ControlElement", + "id" : "acm017922jsd", + "name" : "copySubtree" + }, + "acm017923jsd" : { + "type" : "ControlElement", + "id" : "acm017923jsd", + "name" : "copyNode" + }, + "acm017924jsd" : { + "type" : "ControlElement", + "id" : "acm017924jsd", + "name" : "subscribeToDescendantChanged" + }, + "acm017925jsd" : { + "type" : "ControlElement", + "id" : "acm017925jsd", + "name" : "notifyAboutDescendantChange" + }, + "acm017926jsd" : { + "type" : "ControlElement", + "id" : "acm017926jsd", + "name" : "findChildrenSatisfying" + }, + "acm017927jsd" : { + "type" : "ClassUnit", + "id" : "acm017927jsd", + "name" : "TreeNode", + "compilationUnitId" : "acm017885jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017927jsd" ], + "content" : [ "acm017889jsd", "acm017890jsd", "acm017891jsd", "acm017892jsd", "acm017893jsd", "acm017894jsd", "acm017895jsd", "acm017896jsd", "acm017897jsd", "acm017898jsd", "acm017899jsd", "acm017900jsd", "acm017901jsd", "acm017902jsd", "acm017903jsd", "acm017904jsd", "acm017905jsd", "acm017906jsd", "acm017907jsd", "acm017908jsd", "acm017909jsd", "acm017910jsd", "acm017911jsd", "acm017912jsd", "acm017913jsd", "acm017914jsd", "acm017915jsd", "acm017916jsd", "acm017917jsd", "acm017918jsd", "acm017919jsd", "acm017920jsd", "acm017921jsd", "acm017922jsd", "acm017923jsd", "acm017924jsd", "acm017925jsd", "acm017926jsd" ] + }, + "acm017928jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017928jsd", + "name" : "BibDatabase", + "parentId" : "acm017932jsd", + "content" : [ "acm017988jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017929jsd" : { + "type" : "CodePackage", + "id" : "acm017929jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017930jsd" ] + }, + "acm017930jsd" : { + "type" : "CodePackage", + "id" : "acm017930jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017931jsd" ] + }, + "acm017931jsd" : { + "type" : "CodePackage", + "id" : "acm017931jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm017932jsd" ] + }, + "acm017932jsd" : { + "type" : "CodePackage", + "id" : "acm017932jsd", + "name" : "database", + "parentId" : "acm017861jsd", + "content" : [ "acm017928jsd", "acm017989jsd", "acm018023jsd", "acm018033jsd", "acm018041jsd", "acm018049jsd", "acm018061jsd", "acm028251jsd", "acm028270jsd", "acm028282jsd", "acm028336jsd", "acm028350jsd", "acm018077jsd" ] + }, + "acm017933jsd" : { + "type" : "ControlElement", + "id" : "acm017933jsd", + "name" : "BibDatabase" + }, + "acm017934jsd" : { + "type" : "ControlElement", + "id" : "acm017934jsd", + "name" : "BibDatabase" + }, + "acm017935jsd" : { + "type" : "ControlElement", + "id" : "acm017935jsd", + "name" : "BibDatabase" + }, + "acm017936jsd" : { + "type" : "ControlElement", + "id" : "acm017936jsd", + "name" : "getText" + }, + "acm017937jsd" : { + "type" : "ControlElement", + "id" : "acm017937jsd", + "name" : "getEntryCount" + }, + "acm017938jsd" : { + "type" : "ControlElement", + "id" : "acm017938jsd", + "name" : "hasEntries" + }, + "acm017939jsd" : { + "type" : "ControlElement", + "id" : "acm017939jsd", + "name" : "getEntriesSorted" + }, + "acm017940jsd" : { + "type" : "ControlElement", + "id" : "acm017940jsd", + "name" : "containsEntryWithId" + }, + "acm017941jsd" : { + "type" : "ControlElement", + "id" : "acm017941jsd", + "name" : "getEntries" + }, + "acm017942jsd" : { + "type" : "ControlElement", + "id" : "acm017942jsd", + "name" : "getAllVisibleFields" + }, + "acm017943jsd" : { + "type" : "ControlElement", + "id" : "acm017943jsd", + "name" : "getEntryByCitationKey" + }, + "acm017944jsd" : { + "type" : "ControlElement", + "id" : "acm017944jsd", + "name" : "getEntriesByCitationKey" + }, + "acm017945jsd" : { + "type" : "ControlElement", + "id" : "acm017945jsd", + "name" : "insertEntry" + }, + "acm017946jsd" : { + "type" : "ControlElement", + "id" : "acm017946jsd", + "name" : "insertEntry" + }, + "acm017947jsd" : { + "type" : "ControlElement", + "id" : "acm017947jsd", + "name" : "insertEntries" + }, + "acm017948jsd" : { + "type" : "ControlElement", + "id" : "acm017948jsd", + "name" : "insertEntries" + }, + "acm017949jsd" : { + "type" : "ControlElement", + "id" : "acm017949jsd", + "name" : "insertEntries" + }, + "acm017950jsd" : { + "type" : "ControlElement", + "id" : "acm017950jsd", + "name" : "removeEntry" + }, + "acm017951jsd" : { + "type" : "ControlElement", + "id" : "acm017951jsd", + "name" : "removeEntry" + }, + "acm017952jsd" : { + "type" : "ControlElement", + "id" : "acm017952jsd", + "name" : "removeEntries" + }, + "acm017953jsd" : { + "type" : "ControlElement", + "id" : "acm017953jsd", + "name" : "removeEntries" + }, + "acm017954jsd" : { + "type" : "ControlElement", + "id" : "acm017954jsd", + "name" : "getPreamble" + }, + "acm017955jsd" : { + "type" : "ControlElement", + "id" : "acm017955jsd", + "name" : "setPreamble" + }, + "acm017956jsd" : { + "type" : "ControlElement", + "id" : "acm017956jsd", + "name" : "addString" + }, + "acm017957jsd" : { + "type" : "ControlElement", + "id" : "acm017957jsd", + "name" : "setStrings" + }, + "acm017958jsd" : { + "type" : "ControlElement", + "id" : "acm017958jsd", + "name" : "removeString" + }, + "acm017959jsd" : { + "type" : "ControlElement", + "id" : "acm017959jsd", + "name" : "getStringKeySet" + }, + "acm017960jsd" : { + "type" : "ControlElement", + "id" : "acm017960jsd", + "name" : "getStringValues" + }, + "acm017961jsd" : { + "type" : "ControlElement", + "id" : "acm017961jsd", + "name" : "getString" + }, + "acm017962jsd" : { + "type" : "ControlElement", + "id" : "acm017962jsd", + "name" : "getStringByName" + }, + "acm017963jsd" : { + "type" : "ControlElement", + "id" : "acm017963jsd", + "name" : "getStringCount" + }, + "acm017964jsd" : { + "type" : "ControlElement", + "id" : "acm017964jsd", + "name" : "hasNoStrings" + }, + "acm017965jsd" : { + "type" : "ControlElement", + "id" : "acm017965jsd", + "name" : "copyPreamble" + }, + "acm017966jsd" : { + "type" : "ControlElement", + "id" : "acm017966jsd", + "name" : "hasStringByName" + }, + "acm017967jsd" : { + "type" : "ControlElement", + "id" : "acm017967jsd", + "name" : "resolveForStrings" + }, + "acm017968jsd" : { + "type" : "ControlElement", + "id" : "acm017968jsd", + "name" : "getUsedStrings" + }, + "acm017969jsd" : { + "type" : "ControlElement", + "id" : "acm017969jsd", + "name" : "resolveForStrings" + }, + "acm017970jsd" : { + "type" : "ControlElement", + "id" : "acm017970jsd", + "name" : "resolveForStrings" + }, + "acm017971jsd" : { + "type" : "ControlElement", + "id" : "acm017971jsd", + "name" : "resolveString" + }, + "acm017972jsd" : { + "type" : "ControlElement", + "id" : "acm017972jsd", + "name" : "resolveContent" + }, + "acm017973jsd" : { + "type" : "ControlElement", + "id" : "acm017973jsd", + "name" : "getEpilog" + }, + "acm017974jsd" : { + "type" : "ControlElement", + "id" : "acm017974jsd", + "name" : "setEpilog" + }, + "acm017975jsd" : { + "type" : "ControlElement", + "id" : "acm017975jsd", + "name" : "registerListener" + }, + "acm017976jsd" : { + "type" : "ControlElement", + "id" : "acm017976jsd", + "name" : "unregisterListener" + }, + "acm017977jsd" : { + "type" : "ControlElement", + "id" : "acm017977jsd", + "name" : "relayEntryChangeEvent" + }, + "acm017978jsd" : { + "type" : "ControlElement", + "id" : "acm017978jsd", + "name" : "getReferencedEntry" + }, + "acm017979jsd" : { + "type" : "ControlElement", + "id" : "acm017979jsd", + "name" : "getSharedDatabaseID" + }, + "acm017980jsd" : { + "type" : "ControlElement", + "id" : "acm017980jsd", + "name" : "setSharedDatabaseID" + }, + "acm017981jsd" : { + "type" : "ControlElement", + "id" : "acm017981jsd", + "name" : "isShared" + }, + "acm017982jsd" : { + "type" : "ControlElement", + "id" : "acm017982jsd", + "name" : "clearSharedDatabaseID" + }, + "acm017983jsd" : { + "type" : "ControlElement", + "id" : "acm017983jsd", + "name" : "generateSharedDatabaseID" + }, + "acm017984jsd" : { + "type" : "ControlElement", + "id" : "acm017984jsd", + "name" : "getNumberOfCitationKeyOccurrences" + }, + "acm017985jsd" : { + "type" : "ControlElement", + "id" : "acm017985jsd", + "name" : "isDuplicateCitationKeyExisting" + }, + "acm017986jsd" : { + "type" : "ControlElement", + "id" : "acm017986jsd", + "name" : "setNewLineSeparator" + }, + "acm017987jsd" : { + "type" : "ControlElement", + "id" : "acm017987jsd", + "name" : "getNewLineSeparator" + }, + "acm017988jsd" : { + "type" : "ClassUnit", + "id" : "acm017988jsd", + "name" : "BibDatabase", + "compilationUnitId" : "acm017928jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018060jsd", "acm018071jsd", "acm018106jsd", "acm018115jsd", "acm018267jsd", "acm018367jsd", "acm018525jsd", "acm018570jsd", "acm018604jsd", "acm018673jsd" ], + "content" : [ "acm017933jsd", "acm017934jsd", "acm017935jsd", "acm017936jsd", "acm017937jsd", "acm017938jsd", "acm017939jsd", "acm017940jsd", "acm017941jsd", "acm017942jsd", "acm017943jsd", "acm017944jsd", "acm017945jsd", "acm017946jsd", "acm017947jsd", "acm017948jsd", "acm017949jsd", "acm017950jsd", "acm017951jsd", "acm017952jsd", "acm017953jsd", "acm017954jsd", "acm017955jsd", "acm017956jsd", "acm017957jsd", "acm017958jsd", "acm017959jsd", "acm017960jsd", "acm017961jsd", "acm017962jsd", "acm017963jsd", "acm017964jsd", "acm017965jsd", "acm017966jsd", "acm017967jsd", "acm017968jsd", "acm017969jsd", "acm017970jsd", "acm017971jsd", "acm017972jsd", "acm017973jsd", "acm017974jsd", "acm017975jsd", "acm017976jsd", "acm017977jsd", "acm017978jsd", "acm017979jsd", "acm017980jsd", "acm017981jsd", "acm017982jsd", "acm017983jsd", "acm017984jsd", "acm017985jsd", "acm017986jsd", "acm017987jsd" ] + }, + "acm017989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm017989jsd", + "name" : "BibDatabaseContext", + "parentId" : "acm017932jsd", + "content" : [ "acm018022jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm017990jsd" : { + "type" : "CodePackage", + "id" : "acm017990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm017991jsd" ] + }, + "acm017991jsd" : { + "type" : "CodePackage", + "id" : "acm017991jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm017992jsd" ] + }, + "acm017992jsd" : { + "type" : "CodePackage", + "id" : "acm017992jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm017993jsd" ] + }, + "acm017993jsd" : { + "type" : "CodePackage", + "id" : "acm017993jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm017989jsd" ] + }, + "acm017994jsd" : { + "type" : "ControlElement", + "id" : "acm017994jsd", + "name" : "BibDatabaseContext" + }, + "acm017995jsd" : { + "type" : "ControlElement", + "id" : "acm017995jsd", + "name" : "BibDatabaseContext" + }, + "acm017996jsd" : { + "type" : "ControlElement", + "id" : "acm017996jsd", + "name" : "BibDatabaseContext" + }, + "acm017997jsd" : { + "type" : "ControlElement", + "id" : "acm017997jsd", + "name" : "BibDatabaseContext" + }, + "acm017998jsd" : { + "type" : "ControlElement", + "id" : "acm017998jsd", + "name" : "BibDatabaseContext" + }, + "acm017999jsd" : { + "type" : "ControlElement", + "id" : "acm017999jsd", + "name" : "getMode" + }, + "acm018000jsd" : { + "type" : "ControlElement", + "id" : "acm018000jsd", + "name" : "setMode" + }, + "acm018001jsd" : { + "type" : "ControlElement", + "id" : "acm018001jsd", + "name" : "setDatabasePath" + }, + "acm018002jsd" : { + "type" : "ControlElement", + "id" : "acm018002jsd", + "name" : "getDatabasePath" + }, + "acm018003jsd" : { + "type" : "ControlElement", + "id" : "acm018003jsd", + "name" : "clearDatabasePath" + }, + "acm018004jsd" : { + "type" : "ControlElement", + "id" : "acm018004jsd", + "name" : "getDatabase" + }, + "acm018005jsd" : { + "type" : "ControlElement", + "id" : "acm018005jsd", + "name" : "getMetaData" + }, + "acm018006jsd" : { + "type" : "ControlElement", + "id" : "acm018006jsd", + "name" : "setMetaData" + }, + "acm018007jsd" : { + "type" : "ControlElement", + "id" : "acm018007jsd", + "name" : "isBiblatexMode" + }, + "acm018008jsd" : { + "type" : "ControlElement", + "id" : "acm018008jsd", + "name" : "isStudy" + }, + "acm018009jsd" : { + "type" : "ControlElement", + "id" : "acm018009jsd", + "name" : "getFileDirectories" + }, + "acm018010jsd" : { + "type" : "ControlElement", + "id" : "acm018010jsd", + "name" : "getFirstExistingFileDir" + }, + "acm018011jsd" : { + "type" : "ControlElement", + "id" : "acm018011jsd", + "name" : "getFileDirectoryPath" + }, + "acm018012jsd" : { + "type" : "ControlElement", + "id" : "acm018012jsd", + "name" : "getDBMSSynchronizer" + }, + "acm018013jsd" : { + "type" : "ControlElement", + "id" : "acm018013jsd", + "name" : "clearDBMSSynchronizer" + }, + "acm018014jsd" : { + "type" : "ControlElement", + "id" : "acm018014jsd", + "name" : "getLocation" + }, + "acm018015jsd" : { + "type" : "ControlElement", + "id" : "acm018015jsd", + "name" : "convertToSharedDatabase" + }, + "acm018016jsd" : { + "type" : "ControlElement", + "id" : "acm018016jsd", + "name" : "convertToLocalDatabase" + }, + "acm018017jsd" : { + "type" : "ControlElement", + "id" : "acm018017jsd", + "name" : "getEntries" + }, + "acm018018jsd" : { + "type" : "ControlElement", + "id" : "acm018018jsd", + "name" : "hasEmptyEntries" + }, + "acm018019jsd" : { + "type" : "ControlElement", + "id" : "acm018019jsd", + "name" : "getFulltextIndexBasePath" + }, + "acm018020jsd" : { + "type" : "ControlElement", + "id" : "acm018020jsd", + "name" : "getFulltextIndexPath" + }, + "acm018021jsd" : { + "type" : "ControlElement", + "id" : "acm018021jsd", + "name" : "toString" + }, + "acm018022jsd" : { + "type" : "ClassUnit", + "id" : "acm018022jsd", + "name" : "BibDatabaseContext", + "compilationUnitId" : "acm017989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm017009jsd", "acm017030jsd", "acm017292jsd", "acm017988jsd", "acm018032jsd", "acm018267jsd", "acm019421jsd", "acm020848jsd" ], + "content" : [ "acm017994jsd", "acm017995jsd", "acm017996jsd", "acm017997jsd", "acm017998jsd", "acm017999jsd", "acm018000jsd", "acm018001jsd", "acm018002jsd", "acm018003jsd", "acm018004jsd", "acm018005jsd", "acm018006jsd", "acm018007jsd", "acm018008jsd", "acm018009jsd", "acm018010jsd", "acm018011jsd", "acm018012jsd", "acm018013jsd", "acm018014jsd", "acm018015jsd", "acm018016jsd", "acm018017jsd", "acm018018jsd", "acm018019jsd", "acm018020jsd", "acm018021jsd" ] + }, + "acm018023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018023jsd", + "name" : "BibDatabaseMode", + "parentId" : "acm017932jsd", + "content" : [ "acm018032jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018024jsd" : { + "type" : "CodePackage", + "id" : "acm018024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018025jsd" ] + }, + "acm018025jsd" : { + "type" : "CodePackage", + "id" : "acm018025jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018026jsd" ] + }, + "acm018026jsd" : { + "type" : "CodePackage", + "id" : "acm018026jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018027jsd" ] + }, + "acm018027jsd" : { + "type" : "CodePackage", + "id" : "acm018027jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018023jsd" ] + }, + "acm018028jsd" : { + "type" : "ControlElement", + "id" : "acm018028jsd", + "name" : "getFormattedName" + }, + "acm018029jsd" : { + "type" : "ControlElement", + "id" : "acm018029jsd", + "name" : "getOppositeMode" + }, + "acm018030jsd" : { + "type" : "ControlElement", + "id" : "acm018030jsd", + "name" : "parse" + }, + "acm018031jsd" : { + "type" : "ControlElement", + "id" : "acm018031jsd", + "name" : "getAsString" + }, + "acm018032jsd" : { + "type" : "ClassUnit", + "id" : "acm018032jsd", + "name" : "BibDatabaseMode", + "compilationUnitId" : "acm018023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd" ], + "content" : [ "acm018028jsd", "acm018029jsd", "acm018030jsd", "acm018031jsd" ] + }, + "acm018033jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018033jsd", + "name" : "BibDatabaseModeDetection", + "parentId" : "acm017932jsd", + "content" : [ "acm018040jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018034jsd" : { + "type" : "CodePackage", + "id" : "acm018034jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018035jsd" ] + }, + "acm018035jsd" : { + "type" : "CodePackage", + "id" : "acm018035jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018036jsd" ] + }, + "acm018036jsd" : { + "type" : "CodePackage", + "id" : "acm018036jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018037jsd" ] + }, + "acm018037jsd" : { + "type" : "CodePackage", + "id" : "acm018037jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018033jsd" ] + }, + "acm018038jsd" : { + "type" : "ControlElement", + "id" : "acm018038jsd", + "name" : "BibDatabaseModeDetection" + }, + "acm018039jsd" : { + "type" : "ControlElement", + "id" : "acm018039jsd", + "name" : "inferMode" + }, + "acm018040jsd" : { + "type" : "ClassUnit", + "id" : "acm018040jsd", + "name" : "BibDatabaseModeDetection", + "compilationUnitId" : "acm018033jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018032jsd", "acm019005jsd" ], + "content" : [ "acm018038jsd", "acm018039jsd" ] + }, + "acm018041jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018041jsd", + "name" : "BibDatabases", + "parentId" : "acm017932jsd", + "content" : [ "acm018048jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018042jsd" : { + "type" : "CodePackage", + "id" : "acm018042jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018043jsd" ] + }, + "acm018043jsd" : { + "type" : "CodePackage", + "id" : "acm018043jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018044jsd" ] + }, + "acm018044jsd" : { + "type" : "CodePackage", + "id" : "acm018044jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018045jsd" ] + }, + "acm018045jsd" : { + "type" : "CodePackage", + "id" : "acm018045jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018041jsd" ] + }, + "acm018046jsd" : { + "type" : "ControlElement", + "id" : "acm018046jsd", + "name" : "BibDatabases" + }, + "acm018047jsd" : { + "type" : "ControlElement", + "id" : "acm018047jsd", + "name" : "purgeEmptyEntries" + }, + "acm018048jsd" : { + "type" : "ClassUnit", + "id" : "acm018048jsd", + "name" : "BibDatabases", + "compilationUnitId" : "acm018041jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm018046jsd", "acm018047jsd" ] + }, + "acm018049jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018049jsd", + "name" : "KeyChangeListener", + "parentId" : "acm017932jsd", + "content" : [ "acm018060jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018050jsd" : { + "type" : "CodePackage", + "id" : "acm018050jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018051jsd" ] + }, + "acm018051jsd" : { + "type" : "CodePackage", + "id" : "acm018051jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018052jsd" ] + }, + "acm018052jsd" : { + "type" : "CodePackage", + "id" : "acm018052jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018053jsd" ] + }, + "acm018053jsd" : { + "type" : "CodePackage", + "id" : "acm018053jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018049jsd" ] + }, + "acm018054jsd" : { + "type" : "ControlElement", + "id" : "acm018054jsd", + "name" : "KeyChangeListener" + }, + "acm018055jsd" : { + "type" : "ControlElement", + "id" : "acm018055jsd", + "name" : "listen" + }, + "acm018056jsd" : { + "type" : "ControlElement", + "id" : "acm018056jsd", + "name" : "listen" + }, + "acm018057jsd" : { + "type" : "ControlElement", + "id" : "acm018057jsd", + "name" : "updateEntryLinks" + }, + "acm018058jsd" : { + "type" : "ControlElement", + "id" : "acm018058jsd", + "name" : "replaceKeyInMultiplesKeyField" + }, + "acm018059jsd" : { + "type" : "ControlElement", + "id" : "acm018059jsd", + "name" : "replaceSingleKeyInField" + }, + "acm018060jsd" : { + "type" : "ClassUnit", + "id" : "acm018060jsd", + "name" : "KeyChangeListener", + "compilationUnitId" : "acm018049jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018115jsd", "acm018267jsd", "acm018604jsd", "acm018673jsd" ], + "content" : [ "acm018054jsd", "acm018055jsd", "acm018056jsd", "acm018057jsd", "acm018058jsd", "acm018059jsd" ] + }, + "acm018061jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018061jsd", + "name" : "KeyCollisionException", + "parentId" : "acm017932jsd", + "content" : [ "acm018071jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018062jsd" : { + "type" : "CodePackage", + "id" : "acm018062jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018063jsd" ] + }, + "acm018063jsd" : { + "type" : "CodePackage", + "id" : "acm018063jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018064jsd" ] + }, + "acm018064jsd" : { + "type" : "CodePackage", + "id" : "acm018064jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018065jsd" ] + }, + "acm018065jsd" : { + "type" : "CodePackage", + "id" : "acm018065jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018061jsd" ] + }, + "acm018066jsd" : { + "type" : "ControlElement", + "id" : "acm018066jsd", + "name" : "KeyCollisionException" + }, + "acm018067jsd" : { + "type" : "ControlElement", + "id" : "acm018067jsd", + "name" : "KeyCollisionException" + }, + "acm018068jsd" : { + "type" : "ControlElement", + "id" : "acm018068jsd", + "name" : "KeyCollisionException" + }, + "acm018069jsd" : { + "type" : "ControlElement", + "id" : "acm018069jsd", + "name" : "KeyCollisionException" + }, + "acm018070jsd" : { + "type" : "ControlElement", + "id" : "acm018070jsd", + "name" : "getId" + }, + "acm018071jsd" : { + "type" : "ClassUnit", + "id" : "acm018071jsd", + "name" : "KeyCollisionException", + "compilationUnitId" : "acm018061jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm018066jsd", "acm018067jsd", "acm018068jsd", "acm018069jsd", "acm018070jsd" ] + }, + "acm018072jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018072jsd", + "name" : "AutosaveEvent", + "parentId" : "acm018077jsd", + "content" : [ "acm018078jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018073jsd" : { + "type" : "CodePackage", + "id" : "acm018073jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018074jsd" ] + }, + "acm018074jsd" : { + "type" : "CodePackage", + "id" : "acm018074jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018075jsd" ] + }, + "acm018075jsd" : { + "type" : "CodePackage", + "id" : "acm018075jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018076jsd" ] + }, + "acm018076jsd" : { + "type" : "CodePackage", + "id" : "acm018076jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018077jsd" ] + }, + "acm018077jsd" : { + "type" : "CodePackage", + "id" : "acm018077jsd", + "name" : "event", + "parentId" : "acm017932jsd", + "content" : [ "acm018072jsd", "acm018079jsd", "acm018090jsd", "acm018097jsd", "acm018107jsd" ] + }, + "acm018078jsd" : { + "type" : "ClassUnit", + "id" : "acm018078jsd", + "name" : "AutosaveEvent", + "compilationUnitId" : "acm018072jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm018079jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018079jsd", + "name" : "BibDatabaseContextChangedEvent", + "parentId" : "acm018077jsd", + "content" : [ "acm018089jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018080jsd" : { + "type" : "CodePackage", + "id" : "acm018080jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018081jsd" ] + }, + "acm018081jsd" : { + "type" : "CodePackage", + "id" : "acm018081jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018082jsd" ] + }, + "acm018082jsd" : { + "type" : "CodePackage", + "id" : "acm018082jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018083jsd" ] + }, + "acm018083jsd" : { + "type" : "CodePackage", + "id" : "acm018083jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018084jsd" ] + }, + "acm018084jsd" : { + "type" : "CodePackage", + "id" : "acm018084jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018079jsd" ] + }, + "acm018085jsd" : { + "type" : "ControlElement", + "id" : "acm018085jsd", + "name" : "BibDatabaseContextChangedEvent" + }, + "acm018086jsd" : { + "type" : "ControlElement", + "id" : "acm018086jsd", + "name" : "BibDatabaseContextChangedEvent" + }, + "acm018087jsd" : { + "type" : "ControlElement", + "id" : "acm018087jsd", + "name" : "isFilteredOut" + }, + "acm018088jsd" : { + "type" : "ControlElement", + "id" : "acm018088jsd", + "name" : "setFilteredOut" + }, + "acm018089jsd" : { + "type" : "ClassUnit", + "id" : "acm018089jsd", + "name" : "BibDatabaseContextChangedEvent", + "compilationUnitId" : "acm018079jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm018085jsd", "acm018086jsd", "acm018087jsd", "acm018088jsd" ] + }, + "acm018090jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018090jsd", + "name" : "ChangePropagation", + "parentId" : "acm018077jsd", + "content" : [ "acm018096jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018091jsd" : { + "type" : "CodePackage", + "id" : "acm018091jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018092jsd" ] + }, + "acm018092jsd" : { + "type" : "CodePackage", + "id" : "acm018092jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018093jsd" ] + }, + "acm018093jsd" : { + "type" : "CodePackage", + "id" : "acm018093jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018094jsd" ] + }, + "acm018094jsd" : { + "type" : "CodePackage", + "id" : "acm018094jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018095jsd" ] + }, + "acm018095jsd" : { + "type" : "CodePackage", + "id" : "acm018095jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018090jsd" ] + }, + "acm018096jsd" : { + "type" : "ClassUnit", + "id" : "acm018096jsd", + "name" : "ChangePropagation", + "compilationUnitId" : "acm018090jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm018097jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018097jsd", + "name" : "EntriesAddedEvent", + "parentId" : "acm018077jsd", + "content" : [ "acm018106jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018098jsd" : { + "type" : "CodePackage", + "id" : "acm018098jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018099jsd" ] + }, + "acm018099jsd" : { + "type" : "CodePackage", + "id" : "acm018099jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018100jsd" ] + }, + "acm018100jsd" : { + "type" : "CodePackage", + "id" : "acm018100jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018101jsd" ] + }, + "acm018101jsd" : { + "type" : "CodePackage", + "id" : "acm018101jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018102jsd" ] + }, + "acm018102jsd" : { + "type" : "CodePackage", + "id" : "acm018102jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018097jsd" ] + }, + "acm018103jsd" : { + "type" : "ControlElement", + "id" : "acm018103jsd", + "name" : "EntriesAddedEvent" + }, + "acm018104jsd" : { + "type" : "ControlElement", + "id" : "acm018104jsd", + "name" : "EntriesAddedEvent" + }, + "acm018105jsd" : { + "type" : "ControlElement", + "id" : "acm018105jsd", + "name" : "getFirstEntry" + }, + "acm018106jsd" : { + "type" : "ClassUnit", + "id" : "acm018106jsd", + "name" : "EntriesAddedEvent", + "compilationUnitId" : "acm018097jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018563jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018570jsd" ], + "content" : [ "acm018103jsd", "acm018104jsd", "acm018105jsd" ] + }, + "acm018107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018107jsd", + "name" : "EntriesRemovedEvent", + "parentId" : "acm018077jsd", + "content" : [ "acm018115jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "database", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018108jsd" : { + "type" : "CodePackage", + "id" : "acm018108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018109jsd" ] + }, + "acm018109jsd" : { + "type" : "CodePackage", + "id" : "acm018109jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018110jsd" ] + }, + "acm018110jsd" : { + "type" : "CodePackage", + "id" : "acm018110jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018111jsd" ] + }, + "acm018111jsd" : { + "type" : "CodePackage", + "id" : "acm018111jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm018112jsd" ] + }, + "acm018112jsd" : { + "type" : "CodePackage", + "id" : "acm018112jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018107jsd" ] + }, + "acm018113jsd" : { + "type" : "ControlElement", + "id" : "acm018113jsd", + "name" : "EntriesRemovedEvent" + }, + "acm018114jsd" : { + "type" : "ControlElement", + "id" : "acm018114jsd", + "name" : "EntriesRemovedEvent" + }, + "acm018115jsd" : { + "type" : "ClassUnit", + "id" : "acm018115jsd", + "name" : "EntriesRemovedEvent", + "compilationUnitId" : "acm018107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018563jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018570jsd" ], + "content" : [ "acm018113jsd", "acm018114jsd" ] + }, + "acm018116jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018116jsd", + "name" : "Author", + "parentId" : "acm018120jsd", + "content" : [ "acm018138jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018117jsd" : { + "type" : "CodePackage", + "id" : "acm018117jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018118jsd" ] + }, + "acm018118jsd" : { + "type" : "CodePackage", + "id" : "acm018118jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018119jsd" ] + }, + "acm018119jsd" : { + "type" : "CodePackage", + "id" : "acm018119jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018120jsd" ] + }, + "acm018120jsd" : { + "type" : "CodePackage", + "id" : "acm018120jsd", + "name" : "entry", + "parentId" : "acm017861jsd", + "content" : [ "acm018116jsd", "acm018139jsd", "acm018176jsd", "acm018268jsd", "acm018290jsd", "acm018307jsd", "acm018344jsd", "acm018371jsd", "acm018379jsd", "acm018402jsd", "acm018409jsd", "acm018418jsd", "acm018426jsd", "acm018444jsd", "acm018480jsd", "acm018510jsd", "acm018526jsd", "acm018540jsd", "acm028364jsd", "acm028494jsd", "acm028511jsd", "acm028609jsd", "acm028630jsd", "acm028648jsd", "acm028657jsd", "acm028677jsd", "acm028690jsd", "acm028706jsd", "acm028713jsd", "acm028720jsd", "acm028744jsd", "acm028752jsd", "acm018558jsd", "acm018610jsd", "acm018819jsd", "acm018951jsd" ] + }, + "acm018121jsd" : { + "type" : "ControlElement", + "id" : "acm018121jsd", + "name" : "Author" + }, + "acm018122jsd" : { + "type" : "ControlElement", + "id" : "acm018122jsd", + "name" : "addDotIfAbbreviation" + }, + "acm018123jsd" : { + "type" : "ControlElement", + "id" : "acm018123jsd", + "name" : "hashCode" + }, + "acm018124jsd" : { + "type" : "ControlElement", + "id" : "acm018124jsd", + "name" : "equals" + }, + "acm018125jsd" : { + "type" : "ControlElement", + "id" : "acm018125jsd", + "name" : "properBrackets" + }, + "acm018126jsd" : { + "type" : "ControlElement", + "id" : "acm018126jsd", + "name" : "removeStartAndEndBraces" + }, + "acm018127jsd" : { + "type" : "ControlElement", + "id" : "acm018127jsd", + "name" : "getFirst" + }, + "acm018128jsd" : { + "type" : "ControlElement", + "id" : "acm018128jsd", + "name" : "getFirstAbbr" + }, + "acm018129jsd" : { + "type" : "ControlElement", + "id" : "acm018129jsd", + "name" : "getVon" + }, + "acm018130jsd" : { + "type" : "ControlElement", + "id" : "acm018130jsd", + "name" : "getLast" + }, + "acm018131jsd" : { + "type" : "ControlElement", + "id" : "acm018131jsd", + "name" : "getJr" + }, + "acm018132jsd" : { + "type" : "ControlElement", + "id" : "acm018132jsd", + "name" : "getLastOnly" + }, + "acm018133jsd" : { + "type" : "ControlElement", + "id" : "acm018133jsd", + "name" : "getLastFirst" + }, + "acm018134jsd" : { + "type" : "ControlElement", + "id" : "acm018134jsd", + "name" : "getFirstLast" + }, + "acm018135jsd" : { + "type" : "ControlElement", + "id" : "acm018135jsd", + "name" : "toString" + }, + "acm018136jsd" : { + "type" : "ControlElement", + "id" : "acm018136jsd", + "name" : "getNameForAlphabetization" + }, + "acm018137jsd" : { + "type" : "ControlElement", + "id" : "acm018137jsd", + "name" : "latexFree" + }, + "acm018138jsd" : { + "type" : "ClassUnit", + "id" : "acm018138jsd", + "name" : "Author", + "compilationUnitId" : "acm018116jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018138jsd" ], + "content" : [ "acm018121jsd", "acm018122jsd", "acm018123jsd", "acm018124jsd", "acm018125jsd", "acm018126jsd", "acm018127jsd", "acm018128jsd", "acm018129jsd", "acm018130jsd", "acm018131jsd", "acm018132jsd", "acm018133jsd", "acm018134jsd", "acm018135jsd", "acm018136jsd", "acm018137jsd" ] + }, + "acm018139jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018139jsd", + "name" : "AuthorList", + "parentId" : "acm018120jsd", + "content" : [ "acm018175jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018140jsd" : { + "type" : "CodePackage", + "id" : "acm018140jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018141jsd" ] + }, + "acm018141jsd" : { + "type" : "CodePackage", + "id" : "acm018141jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018142jsd" ] + }, + "acm018142jsd" : { + "type" : "CodePackage", + "id" : "acm018142jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018143jsd" ] + }, + "acm018143jsd" : { + "type" : "CodePackage", + "id" : "acm018143jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018139jsd" ] + }, + "acm018144jsd" : { + "type" : "ControlElement", + "id" : "acm018144jsd", + "name" : "AuthorList" + }, + "acm018145jsd" : { + "type" : "ControlElement", + "id" : "acm018145jsd", + "name" : "of" + }, + "acm018146jsd" : { + "type" : "ControlElement", + "id" : "acm018146jsd", + "name" : "of" + }, + "acm018147jsd" : { + "type" : "ControlElement", + "id" : "acm018147jsd", + "name" : "collect" + }, + "acm018148jsd" : { + "type" : "ControlElement", + "id" : "acm018148jsd", + "name" : "andCoordinatedConjunction" + }, + "acm018149jsd" : { + "type" : "ControlElement", + "id" : "acm018149jsd", + "name" : "andCoordinatedConjunction" + }, + "acm018150jsd" : { + "type" : "ControlElement", + "id" : "acm018150jsd", + "name" : "parse" + }, + "acm018151jsd" : { + "type" : "ControlElement", + "id" : "acm018151jsd", + "name" : "fixAuthorFirstNameFirstCommas" + }, + "acm018152jsd" : { + "type" : "ControlElement", + "id" : "acm018152jsd", + "name" : "fixAuthorFirstNameFirst" + }, + "acm018153jsd" : { + "type" : "ControlElement", + "id" : "acm018153jsd", + "name" : "fixAuthorLastNameFirstCommas" + }, + "acm018154jsd" : { + "type" : "ControlElement", + "id" : "acm018154jsd", + "name" : "fixAuthorLastNameFirst" + }, + "acm018155jsd" : { + "type" : "ControlElement", + "id" : "acm018155jsd", + "name" : "fixAuthorLastNameFirst" + }, + "acm018156jsd" : { + "type" : "ControlElement", + "id" : "acm018156jsd", + "name" : "fixAuthorLastNameOnlyCommas" + }, + "acm018157jsd" : { + "type" : "ControlElement", + "id" : "acm018157jsd", + "name" : "fixAuthorForAlphabetization" + }, + "acm018158jsd" : { + "type" : "ControlElement", + "id" : "acm018158jsd", + "name" : "fixAuthorNatbib" + }, + "acm018159jsd" : { + "type" : "ControlElement", + "id" : "acm018159jsd", + "name" : "getNumberOfAuthors" + }, + "acm018160jsd" : { + "type" : "ControlElement", + "id" : "acm018160jsd", + "name" : "isEmpty" + }, + "acm018161jsd" : { + "type" : "ControlElement", + "id" : "acm018161jsd", + "name" : "getAuthor" + }, + "acm018162jsd" : { + "type" : "ControlElement", + "id" : "acm018162jsd", + "name" : "getAuthors" + }, + "acm018163jsd" : { + "type" : "ControlElement", + "id" : "acm018163jsd", + "name" : "latexFree" + }, + "acm018164jsd" : { + "type" : "ControlElement", + "id" : "acm018164jsd", + "name" : "getAsNatbib" + }, + "acm018165jsd" : { + "type" : "ControlElement", + "id" : "acm018165jsd", + "name" : "getAsLastNames" + }, + "acm018166jsd" : { + "type" : "ControlElement", + "id" : "acm018166jsd", + "name" : "getAsLastFirstNames" + }, + "acm018167jsd" : { + "type" : "ControlElement", + "id" : "acm018167jsd", + "name" : "toString" + }, + "acm018168jsd" : { + "type" : "ControlElement", + "id" : "acm018168jsd", + "name" : "getAsLastFirstNamesWithAnd" + }, + "acm018169jsd" : { + "type" : "ControlElement", + "id" : "acm018169jsd", + "name" : "getAsLastFirstFirstLastNamesWithAnd" + }, + "acm018170jsd" : { + "type" : "ControlElement", + "id" : "acm018170jsd", + "name" : "getAsFirstLastNames" + }, + "acm018171jsd" : { + "type" : "ControlElement", + "id" : "acm018171jsd", + "name" : "equals" + }, + "acm018172jsd" : { + "type" : "ControlElement", + "id" : "acm018172jsd", + "name" : "hashCode" + }, + "acm018173jsd" : { + "type" : "ControlElement", + "id" : "acm018173jsd", + "name" : "getAsFirstLastNamesWithAnd" + }, + "acm018174jsd" : { + "type" : "ControlElement", + "id" : "acm018174jsd", + "name" : "getForAlphabetization" + }, + "acm018175jsd" : { + "type" : "ClassUnit", + "id" : "acm018175jsd", + "name" : "AuthorList", + "compilationUnitId" : "acm018139jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012269jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm018144jsd", "acm018145jsd", "acm018146jsd", "acm018147jsd", "acm018148jsd", "acm018149jsd", "acm018150jsd", "acm018151jsd", "acm018152jsd", "acm018153jsd", "acm018154jsd", "acm018155jsd", "acm018156jsd", "acm018157jsd", "acm018158jsd", "acm018159jsd", "acm018160jsd", "acm018161jsd", "acm018162jsd", "acm018163jsd", "acm018164jsd", "acm018165jsd", "acm018166jsd", "acm018167jsd", "acm018168jsd", "acm018169jsd", "acm018170jsd", "acm018171jsd", "acm018172jsd", "acm018173jsd", "acm018174jsd" ] + }, + "acm018176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018176jsd", + "name" : "BibEntry", + "parentId" : "acm018120jsd", + "content" : [ "acm018267jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018177jsd" : { + "type" : "CodePackage", + "id" : "acm018177jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018178jsd" ] + }, + "acm018178jsd" : { + "type" : "CodePackage", + "id" : "acm018178jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018179jsd" ] + }, + "acm018179jsd" : { + "type" : "CodePackage", + "id" : "acm018179jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018180jsd" ] + }, + "acm018180jsd" : { + "type" : "CodePackage", + "id" : "acm018180jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018176jsd" ] + }, + "acm018181jsd" : { + "type" : "ControlElement", + "id" : "acm018181jsd", + "name" : "BibEntry" + }, + "acm018182jsd" : { + "type" : "ControlElement", + "id" : "acm018182jsd", + "name" : "BibEntry" + }, + "acm018183jsd" : { + "type" : "ControlElement", + "id" : "acm018183jsd", + "name" : "setMonth" + }, + "acm018184jsd" : { + "type" : "ControlElement", + "id" : "acm018184jsd", + "name" : "getResolvedFieldOrAlias" + }, + "acm018185jsd" : { + "type" : "ControlElement", + "id" : "acm018185jsd", + "name" : "getSourceField" + }, + "acm018186jsd" : { + "type" : "ControlElement", + "id" : "acm018186jsd", + "name" : "getResolvedFieldOrAlias" + }, + "acm018187jsd" : { + "type" : "ControlElement", + "id" : "acm018187jsd", + "name" : "getResolvedFieldOrAliasLatexFree" + }, + "acm018188jsd" : { + "type" : "ControlElement", + "id" : "acm018188jsd", + "name" : "genericGetResolvedFieldOrAlias" + }, + "acm018189jsd" : { + "type" : "ControlElement", + "id" : "acm018189jsd", + "name" : "getId" + }, + "acm018190jsd" : { + "type" : "ControlElement", + "id" : "acm018190jsd", + "name" : "setId" + }, + "acm018191jsd" : { + "type" : "ControlElement", + "id" : "acm018191jsd", + "name" : "setCitationKey" + }, + "acm018192jsd" : { + "type" : "ControlElement", + "id" : "acm018192jsd", + "name" : "withCitationKey" + }, + "acm018193jsd" : { + "type" : "ControlElement", + "id" : "acm018193jsd", + "name" : "getCitationKey" + }, + "acm018194jsd" : { + "type" : "ControlElement", + "id" : "acm018194jsd", + "name" : "hasCitationKey" + }, + "acm018195jsd" : { + "type" : "ControlElement", + "id" : "acm018195jsd", + "name" : "getType" + }, + "acm018196jsd" : { + "type" : "ControlElement", + "id" : "acm018196jsd", + "name" : "typeProperty" + }, + "acm018197jsd" : { + "type" : "ControlElement", + "id" : "acm018197jsd", + "name" : "setType" + }, + "acm018198jsd" : { + "type" : "ControlElement", + "id" : "acm018198jsd", + "name" : "setType" + }, + "acm018199jsd" : { + "type" : "ControlElement", + "id" : "acm018199jsd", + "name" : "getFields" + }, + "acm018200jsd" : { + "type" : "ControlElement", + "id" : "acm018200jsd", + "name" : "getField" + }, + "acm018201jsd" : { + "type" : "ControlElement", + "id" : "acm018201jsd", + "name" : "hasField" + }, + "acm018202jsd" : { + "type" : "ControlElement", + "id" : "acm018202jsd", + "name" : "genericGetFieldOrAlias" + }, + "acm018203jsd" : { + "type" : "ControlElement", + "id" : "acm018203jsd", + "name" : "getDOI" + }, + "acm018204jsd" : { + "type" : "ControlElement", + "id" : "acm018204jsd", + "name" : "getISBN" + }, + "acm018205jsd" : { + "type" : "ControlElement", + "id" : "acm018205jsd", + "name" : "getFieldOrAliasLatexFree" + }, + "acm018206jsd" : { + "type" : "ControlElement", + "id" : "acm018206jsd", + "name" : "getFieldOrAlias" + }, + "acm018207jsd" : { + "type" : "ControlElement", + "id" : "acm018207jsd", + "name" : "setField" + }, + "acm018208jsd" : { + "type" : "ControlElement", + "id" : "acm018208jsd", + "name" : "setField" + }, + "acm018209jsd" : { + "type" : "ControlElement", + "id" : "acm018209jsd", + "name" : "setField" + }, + "acm018210jsd" : { + "type" : "ControlElement", + "id" : "acm018210jsd", + "name" : "clearField" + }, + "acm018211jsd" : { + "type" : "ControlElement", + "id" : "acm018211jsd", + "name" : "clearField" + }, + "acm018212jsd" : { + "type" : "ControlElement", + "id" : "acm018212jsd", + "name" : "allFieldsPresent" + }, + "acm018213jsd" : { + "type" : "ControlElement", + "id" : "acm018213jsd", + "name" : "clone" + }, + "acm018214jsd" : { + "type" : "ControlElement", + "id" : "acm018214jsd", + "name" : "toString" + }, + "acm018215jsd" : { + "type" : "ControlElement", + "id" : "acm018215jsd", + "name" : "getAuthorTitleYear" + }, + "acm018216jsd" : { + "type" : "ControlElement", + "id" : "acm018216jsd", + "name" : "getTitle" + }, + "acm018217jsd" : { + "type" : "ControlElement", + "id" : "acm018217jsd", + "name" : "getPublicationDate" + }, + "acm018218jsd" : { + "type" : "ControlElement", + "id" : "acm018218jsd", + "name" : "getParsedSerialization" + }, + "acm018219jsd" : { + "type" : "ControlElement", + "id" : "acm018219jsd", + "name" : "setParsedSerialization" + }, + "acm018220jsd" : { + "type" : "ControlElement", + "id" : "acm018220jsd", + "name" : "setCommentsBeforeEntry" + }, + "acm018221jsd" : { + "type" : "ControlElement", + "id" : "acm018221jsd", + "name" : "hasChanged" + }, + "acm018222jsd" : { + "type" : "ControlElement", + "id" : "acm018222jsd", + "name" : "setChanged" + }, + "acm018223jsd" : { + "type" : "ControlElement", + "id" : "acm018223jsd", + "name" : "putKeywords" + }, + "acm018224jsd" : { + "type" : "ControlElement", + "id" : "acm018224jsd", + "name" : "putKeywords" + }, + "acm018225jsd" : { + "type" : "ControlElement", + "id" : "acm018225jsd", + "name" : "addKeyword" + }, + "acm018226jsd" : { + "type" : "ControlElement", + "id" : "acm018226jsd", + "name" : "addKeyword" + }, + "acm018227jsd" : { + "type" : "ControlElement", + "id" : "acm018227jsd", + "name" : "addKeywords" + }, + "acm018228jsd" : { + "type" : "ControlElement", + "id" : "acm018228jsd", + "name" : "getKeywords" + }, + "acm018229jsd" : { + "type" : "ControlElement", + "id" : "acm018229jsd", + "name" : "getResolvedKeywords" + }, + "acm018230jsd" : { + "type" : "ControlElement", + "id" : "acm018230jsd", + "name" : "removeKeywords" + }, + "acm018231jsd" : { + "type" : "ControlElement", + "id" : "acm018231jsd", + "name" : "replaceKeywords" + }, + "acm018232jsd" : { + "type" : "ControlElement", + "id" : "acm018232jsd", + "name" : "getFieldValues" + }, + "acm018233jsd" : { + "type" : "ControlElement", + "id" : "acm018233jsd", + "name" : "getFieldMap" + }, + "acm018234jsd" : { + "type" : "ControlElement", + "id" : "acm018234jsd", + "name" : "getSharedBibEntryData" + }, + "acm018235jsd" : { + "type" : "ControlElement", + "id" : "acm018235jsd", + "name" : "withSharedBibEntryData" + }, + "acm018236jsd" : { + "type" : "ControlElement", + "id" : "acm018236jsd", + "name" : "withSharedBibEntryData" + }, + "acm018237jsd" : { + "type" : "ControlElement", + "id" : "acm018237jsd", + "name" : "equals" + }, + "acm018238jsd" : { + "type" : "ControlElement", + "id" : "acm018238jsd", + "name" : "hashCode" + }, + "acm018239jsd" : { + "type" : "ControlElement", + "id" : "acm018239jsd", + "name" : "registerListener" + }, + "acm018240jsd" : { + "type" : "ControlElement", + "id" : "acm018240jsd", + "name" : "unregisterListener" + }, + "acm018241jsd" : { + "type" : "ControlElement", + "id" : "acm018241jsd", + "name" : "withField" + }, + "acm018242jsd" : { + "type" : "ControlElement", + "id" : "acm018242jsd", + "name" : "withFields" + }, + "acm018243jsd" : { + "type" : "ControlElement", + "id" : "acm018243jsd", + "name" : "withDate" + }, + "acm018244jsd" : { + "type" : "ControlElement", + "id" : "acm018244jsd", + "name" : "withMonth" + }, + "acm018245jsd" : { + "type" : "ControlElement", + "id" : "acm018245jsd", + "name" : "getUserComments" + }, + "acm018246jsd" : { + "type" : "ControlElement", + "id" : "acm018246jsd", + "name" : "withUserComments" + }, + "acm018247jsd" : { + "type" : "ControlElement", + "id" : "acm018247jsd", + "name" : "getEntryLinkList" + }, + "acm018248jsd" : { + "type" : "ControlElement", + "id" : "acm018248jsd", + "name" : "setEntryLinkList" + }, + "acm018249jsd" : { + "type" : "ControlElement", + "id" : "acm018249jsd", + "name" : "getFieldAsWords" + }, + "acm018250jsd" : { + "type" : "ControlElement", + "id" : "acm018250jsd", + "name" : "getFieldAsKeywords" + }, + "acm018251jsd" : { + "type" : "ControlElement", + "id" : "acm018251jsd", + "name" : "clearCiteKey" + }, + "acm018252jsd" : { + "type" : "ControlElement", + "id" : "acm018252jsd", + "name" : "invalidateFieldCache" + }, + "acm018253jsd" : { + "type" : "ControlElement", + "id" : "acm018253jsd", + "name" : "getLatexFreeField" + }, + "acm018254jsd" : { + "type" : "ControlElement", + "id" : "acm018254jsd", + "name" : "setFiles" + }, + "acm018255jsd" : { + "type" : "ControlElement", + "id" : "acm018255jsd", + "name" : "getFiles" + }, + "acm018256jsd" : { + "type" : "ControlElement", + "id" : "acm018256jsd", + "name" : "setDate" + }, + "acm018257jsd" : { + "type" : "ControlElement", + "id" : "acm018257jsd", + "name" : "getMonth" + }, + "acm018258jsd" : { + "type" : "ControlElement", + "id" : "acm018258jsd", + "name" : "getFieldBinding" + }, + "acm018259jsd" : { + "type" : "ControlElement", + "id" : "acm018259jsd", + "name" : "getCiteKeyBinding" + }, + "acm018260jsd" : { + "type" : "ControlElement", + "id" : "acm018260jsd", + "name" : "addFile" + }, + "acm018261jsd" : { + "type" : "ControlElement", + "id" : "acm018261jsd", + "name" : "addFile" + }, + "acm018262jsd" : { + "type" : "ControlElement", + "id" : "acm018262jsd", + "name" : "getFieldsObservable" + }, + "acm018263jsd" : { + "type" : "ControlElement", + "id" : "acm018263jsd", + "name" : "getObservables" + }, + "acm018264jsd" : { + "type" : "ControlElement", + "id" : "acm018264jsd", + "name" : "replaceDownloadedFile" + }, + "acm018265jsd" : { + "type" : "ControlElement", + "id" : "acm018265jsd", + "name" : "mergeWith" + }, + "acm018266jsd" : { + "type" : "ControlElement", + "id" : "acm018266jsd", + "name" : "mergeWith" + }, + "acm018267jsd" : { + "type" : "ClassUnit", + "id" : "acm018267jsd", + "name" : "BibEntry", + "compilationUnitId" : "acm018176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm017988jsd", "acm018267jsd", "acm018401jsd", "acm018443jsd", "acm018479jsd", "acm018509jsd", "acm018525jsd", "acm018539jsd", "acm018552jsd", "acm018570jsd", "acm018588jsd", "acm018604jsd", "acm018673jsd", "acm018754jsd", "acm018798jsd", "acm018865jsd", "acm018894jsd", "acm019005jsd", "acm020711jsd" ], + "content" : [ "acm018181jsd", "acm018182jsd", "acm018183jsd", "acm018184jsd", "acm018185jsd", "acm018186jsd", "acm018187jsd", "acm018188jsd", "acm018189jsd", "acm018190jsd", "acm018191jsd", "acm018192jsd", "acm018193jsd", "acm018194jsd", "acm018195jsd", "acm018196jsd", "acm018197jsd", "acm018198jsd", "acm018199jsd", "acm018200jsd", "acm018201jsd", "acm018202jsd", "acm018203jsd", "acm018204jsd", "acm018205jsd", "acm018206jsd", "acm018207jsd", "acm018208jsd", "acm018209jsd", "acm018210jsd", "acm018211jsd", "acm018212jsd", "acm018213jsd", "acm018214jsd", "acm018215jsd", "acm018216jsd", "acm018217jsd", "acm018218jsd", "acm018219jsd", "acm018220jsd", "acm018221jsd", "acm018222jsd", "acm018223jsd", "acm018224jsd", "acm018225jsd", "acm018226jsd", "acm018227jsd", "acm018228jsd", "acm018229jsd", "acm018230jsd", "acm018231jsd", "acm018232jsd", "acm018233jsd", "acm018234jsd", "acm018235jsd", "acm018236jsd", "acm018237jsd", "acm018238jsd", "acm018239jsd", "acm018240jsd", "acm018241jsd", "acm018242jsd", "acm018243jsd", "acm018244jsd", "acm018245jsd", "acm018246jsd", "acm018247jsd", "acm018248jsd", "acm018249jsd", "acm018250jsd", "acm018251jsd", "acm018252jsd", "acm018253jsd", "acm018254jsd", "acm018255jsd", "acm018256jsd", "acm018257jsd", "acm018258jsd", "acm018259jsd", "acm018260jsd", "acm018261jsd", "acm018262jsd", "acm018263jsd", "acm018264jsd", "acm018265jsd", "acm018266jsd" ] + }, + "acm018268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018268jsd", + "name" : "BibEntryType", + "parentId" : "acm018120jsd", + "content" : [ "acm018289jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018269jsd" : { + "type" : "CodePackage", + "id" : "acm018269jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018270jsd" ] + }, + "acm018270jsd" : { + "type" : "CodePackage", + "id" : "acm018270jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018271jsd" ] + }, + "acm018271jsd" : { + "type" : "CodePackage", + "id" : "acm018271jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018272jsd" ] + }, + "acm018272jsd" : { + "type" : "CodePackage", + "id" : "acm018272jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018268jsd" ] + }, + "acm018273jsd" : { + "type" : "ControlElement", + "id" : "acm018273jsd", + "name" : "BibEntryType" + }, + "acm018274jsd" : { + "type" : "ControlElement", + "id" : "acm018274jsd", + "name" : "getType" + }, + "acm018275jsd" : { + "type" : "ControlElement", + "id" : "acm018275jsd", + "name" : "getOptionalFields" + }, + "acm018276jsd" : { + "type" : "ControlElement", + "id" : "acm018276jsd", + "name" : "isRequired" + }, + "acm018277jsd" : { + "type" : "ControlElement", + "id" : "acm018277jsd", + "name" : "getRequiredFields" + }, + "acm018278jsd" : { + "type" : "ControlElement", + "id" : "acm018278jsd", + "name" : "getAllBibFields" + }, + "acm018279jsd" : { + "type" : "ControlElement", + "id" : "acm018279jsd", + "name" : "getAllFields" + }, + "acm018280jsd" : { + "type" : "ControlElement", + "id" : "acm018280jsd", + "name" : "getPrimaryOptionalFields" + }, + "acm018281jsd" : { + "type" : "ControlElement", + "id" : "acm018281jsd", + "name" : "getSecondaryOptionalFields" + }, + "acm018282jsd" : { + "type" : "ControlElement", + "id" : "acm018282jsd", + "name" : "getDeprecatedFields" + }, + "acm018283jsd" : { + "type" : "ControlElement", + "id" : "acm018283jsd", + "name" : "getSecondaryOptionalNotDeprecatedFields" + }, + "acm018284jsd" : { + "type" : "ControlElement", + "id" : "acm018284jsd", + "name" : "getOptionalFieldsAndAliases" + }, + "acm018285jsd" : { + "type" : "ControlElement", + "id" : "acm018285jsd", + "name" : "equals" + }, + "acm018286jsd" : { + "type" : "ControlElement", + "id" : "acm018286jsd", + "name" : "hashCode" + }, + "acm018287jsd" : { + "type" : "ControlElement", + "id" : "acm018287jsd", + "name" : "toString" + }, + "acm018288jsd" : { + "type" : "ControlElement", + "id" : "acm018288jsd", + "name" : "compareTo" + }, + "acm018289jsd" : { + "type" : "ClassUnit", + "id" : "acm018289jsd", + "name" : "BibEntryType", + "compilationUnitId" : "acm018268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd", "acm018289jsd", "acm018673jsd", "acm018754jsd", "acm019005jsd" ], + "content" : [ "acm018273jsd", "acm018274jsd", "acm018275jsd", "acm018276jsd", "acm018277jsd", "acm018278jsd", "acm018279jsd", "acm018280jsd", "acm018281jsd", "acm018282jsd", "acm018283jsd", "acm018284jsd", "acm018285jsd", "acm018286jsd", "acm018287jsd", "acm018288jsd" ] + }, + "acm018290jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018290jsd", + "name" : "BibEntryTypeBuilder", + "parentId" : "acm018120jsd", + "content" : [ "acm018306jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018291jsd" : { + "type" : "CodePackage", + "id" : "acm018291jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018292jsd" ] + }, + "acm018292jsd" : { + "type" : "CodePackage", + "id" : "acm018292jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018293jsd" ] + }, + "acm018293jsd" : { + "type" : "CodePackage", + "id" : "acm018293jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018294jsd" ] + }, + "acm018294jsd" : { + "type" : "CodePackage", + "id" : "acm018294jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018290jsd" ] + }, + "acm018295jsd" : { + "type" : "ControlElement", + "id" : "acm018295jsd", + "name" : "withType" + }, + "acm018296jsd" : { + "type" : "ControlElement", + "id" : "acm018296jsd", + "name" : "withImportantFields" + }, + "acm018297jsd" : { + "type" : "ControlElement", + "id" : "acm018297jsd", + "name" : "withImportantFields" + }, + "acm018298jsd" : { + "type" : "ControlElement", + "id" : "acm018298jsd", + "name" : "withImportantFields" + }, + "acm018299jsd" : { + "type" : "ControlElement", + "id" : "acm018299jsd", + "name" : "withDetailFields" + }, + "acm018300jsd" : { + "type" : "ControlElement", + "id" : "acm018300jsd", + "name" : "withDetailFields" + }, + "acm018301jsd" : { + "type" : "ControlElement", + "id" : "acm018301jsd", + "name" : "withRequiredFields" + }, + "acm018302jsd" : { + "type" : "ControlElement", + "id" : "acm018302jsd", + "name" : "withRequiredFields" + }, + "acm018303jsd" : { + "type" : "ControlElement", + "id" : "acm018303jsd", + "name" : "withRequiredFields" + }, + "acm018304jsd" : { + "type" : "ControlElement", + "id" : "acm018304jsd", + "name" : "withRequiredFields" + }, + "acm018305jsd" : { + "type" : "ControlElement", + "id" : "acm018305jsd", + "name" : "build" + }, + "acm018306jsd" : { + "type" : "ClassUnit", + "id" : "acm018306jsd", + "name" : "BibEntryTypeBuilder", + "compilationUnitId" : "acm018290jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018673jsd", "acm018754jsd", "acm019005jsd" ], + "content" : [ "acm018295jsd", "acm018296jsd", "acm018297jsd", "acm018298jsd", "acm018299jsd", "acm018300jsd", "acm018301jsd", "acm018302jsd", "acm018303jsd", "acm018304jsd", "acm018305jsd" ] + }, + "acm018307jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018307jsd", + "name" : "BibEntryTypesManager", + "parentId" : "acm018120jsd", + "content" : [ "acm018333jsd", "acm018343jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018308jsd" : { + "type" : "CodePackage", + "id" : "acm018308jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018309jsd" ] + }, + "acm018309jsd" : { + "type" : "CodePackage", + "id" : "acm018309jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018310jsd" ] + }, + "acm018310jsd" : { + "type" : "CodePackage", + "id" : "acm018310jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018311jsd" ] + }, + "acm018311jsd" : { + "type" : "CodePackage", + "id" : "acm018311jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018307jsd" ] + }, + "acm018312jsd" : { + "type" : "ControlElement", + "id" : "acm018312jsd", + "name" : "BibEntryTypesManager" + }, + "acm018313jsd" : { + "type" : "ControlElement", + "id" : "acm018313jsd", + "name" : "getEntryTypes" + }, + "acm018314jsd" : { + "type" : "ControlElement", + "id" : "acm018314jsd", + "name" : "getAllCustomTypes" + }, + "acm018315jsd" : { + "type" : "ControlElement", + "id" : "acm018315jsd", + "name" : "isCustomOrModifiedType" + }, + "acm018316jsd" : { + "type" : "ControlElement", + "id" : "acm018316jsd", + "name" : "addCustomOrModifiedTypes" + }, + "acm018317jsd" : { + "type" : "ControlElement", + "id" : "acm018317jsd", + "name" : "addCustomOrModifiedType" + }, + "acm018318jsd" : { + "type" : "ControlElement", + "id" : "acm018318jsd", + "name" : "removeCustomOrModifiedEntryType" + }, + "acm018319jsd" : { + "type" : "ControlElement", + "id" : "acm018319jsd", + "name" : "clearAllCustomEntryTypes" + }, + "acm018320jsd" : { + "type" : "ControlElement", + "id" : "acm018320jsd", + "name" : "getAllTypes" + }, + "acm018321jsd" : { + "type" : "ControlElement", + "id" : "acm018321jsd", + "name" : "isCustomType" + }, + "acm018322jsd" : { + "type" : "ControlElement", + "id" : "acm018322jsd", + "name" : "enrich" + }, + "acm018323jsd" : { + "type" : "ControlElement", + "id" : "acm018323jsd", + "name" : "isDifferentCustomOrModifiedType" + }, + "acm018324jsd" : { + "type" : "ControlElement", + "id" : "acm018324jsd", + "name" : "InternalEntryTypes" + }, + "acm018325jsd" : { + "type" : "ControlElement", + "id" : "acm018325jsd", + "name" : "getAllCustomTypes" + }, + "acm018326jsd" : { + "type" : "ControlElement", + "id" : "acm018326jsd", + "name" : "enrich" + }, + "acm018327jsd" : { + "type" : "ControlElement", + "id" : "acm018327jsd", + "name" : "typeEquals" + }, + "acm018328jsd" : { + "type" : "ControlElement", + "id" : "acm018328jsd", + "name" : "addCustomOrModifiedType" + }, + "acm018329jsd" : { + "type" : "ControlElement", + "id" : "acm018329jsd", + "name" : "removeCustomOrModifiedEntryType" + }, + "acm018330jsd" : { + "type" : "ControlElement", + "id" : "acm018330jsd", + "name" : "clearAllCustomEntryTypes" + }, + "acm018331jsd" : { + "type" : "ControlElement", + "id" : "acm018331jsd", + "name" : "getAllTypes" + }, + "acm018332jsd" : { + "type" : "ControlElement", + "id" : "acm018332jsd", + "name" : "isCustomOrModifiedType" + }, + "acm018333jsd" : { + "type" : "ClassUnit", + "id" : "acm018333jsd", + "name" : "BibEntryTypesManager", + "compilationUnitId" : "acm018307jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd", "acm018289jsd", "acm018343jsd", "acm019005jsd" ], + "content" : [ "acm018312jsd", "acm018313jsd", "acm018314jsd", "acm018315jsd", "acm018316jsd", "acm018317jsd", "acm018318jsd", "acm018319jsd", "acm018320jsd", "acm018321jsd", "acm018322jsd", "acm018323jsd", "acm018324jsd", "acm018325jsd", "acm018326jsd", "acm018327jsd", "acm018328jsd", "acm018329jsd", "acm018330jsd", "acm018331jsd", "acm018332jsd" ] + }, + "acm018334jsd" : { + "type" : "ControlElement", + "id" : "acm018334jsd", + "name" : "InternalEntryTypes" + }, + "acm018335jsd" : { + "type" : "ControlElement", + "id" : "acm018335jsd", + "name" : "getAllCustomTypes" + }, + "acm018336jsd" : { + "type" : "ControlElement", + "id" : "acm018336jsd", + "name" : "enrich" + }, + "acm018337jsd" : { + "type" : "ControlElement", + "id" : "acm018337jsd", + "name" : "typeEquals" + }, + "acm018338jsd" : { + "type" : "ControlElement", + "id" : "acm018338jsd", + "name" : "addCustomOrModifiedType" + }, + "acm018339jsd" : { + "type" : "ControlElement", + "id" : "acm018339jsd", + "name" : "removeCustomOrModifiedEntryType" + }, + "acm018340jsd" : { + "type" : "ControlElement", + "id" : "acm018340jsd", + "name" : "clearAllCustomEntryTypes" + }, + "acm018341jsd" : { + "type" : "ControlElement", + "id" : "acm018341jsd", + "name" : "getAllTypes" + }, + "acm018342jsd" : { + "type" : "ControlElement", + "id" : "acm018342jsd", + "name" : "isCustomOrModifiedType" + }, + "acm018343jsd" : { + "type" : "ClassUnit", + "id" : "acm018343jsd", + "name" : "InternalEntryTypes", + "compilationUnitId" : "acm018307jsd", + "parentDatatypeId" : "acm018333jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm019005jsd" ], + "content" : [ "acm018334jsd", "acm018335jsd", "acm018336jsd", "acm018337jsd", "acm018338jsd", "acm018339jsd", "acm018340jsd", "acm018341jsd", "acm018342jsd" ] + }, + "acm018344jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018344jsd", + "name" : "BibtexString", + "parentId" : "acm018120jsd", + "content" : [ "acm018367jsd", "acm018370jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018345jsd" : { + "type" : "CodePackage", + "id" : "acm018345jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018346jsd" ] + }, + "acm018346jsd" : { + "type" : "CodePackage", + "id" : "acm018346jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018347jsd" ] + }, + "acm018347jsd" : { + "type" : "CodePackage", + "id" : "acm018347jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018348jsd" ] + }, + "acm018348jsd" : { + "type" : "CodePackage", + "id" : "acm018348jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018344jsd" ] + }, + "acm018349jsd" : { + "type" : "ControlElement", + "id" : "acm018349jsd", + "name" : "Type" + }, + "acm018350jsd" : { + "type" : "ControlElement", + "id" : "acm018350jsd", + "name" : "get" + }, + "acm018351jsd" : { + "type" : "ControlElement", + "id" : "acm018351jsd", + "name" : "BibtexString" + }, + "acm018352jsd" : { + "type" : "ControlElement", + "id" : "acm018352jsd", + "name" : "getId" + }, + "acm018353jsd" : { + "type" : "ControlElement", + "id" : "acm018353jsd", + "name" : "setId" + }, + "acm018354jsd" : { + "type" : "ControlElement", + "id" : "acm018354jsd", + "name" : "getName" + }, + "acm018355jsd" : { + "type" : "ControlElement", + "id" : "acm018355jsd", + "name" : "setName" + }, + "acm018356jsd" : { + "type" : "ControlElement", + "id" : "acm018356jsd", + "name" : "getContent" + }, + "acm018357jsd" : { + "type" : "ControlElement", + "id" : "acm018357jsd", + "name" : "setContent" + }, + "acm018358jsd" : { + "type" : "ControlElement", + "id" : "acm018358jsd", + "name" : "getType" + }, + "acm018359jsd" : { + "type" : "ControlElement", + "id" : "acm018359jsd", + "name" : "setParsedSerialization" + }, + "acm018360jsd" : { + "type" : "ControlElement", + "id" : "acm018360jsd", + "name" : "getParsedSerialization" + }, + "acm018361jsd" : { + "type" : "ControlElement", + "id" : "acm018361jsd", + "name" : "hasChanged" + }, + "acm018362jsd" : { + "type" : "ControlElement", + "id" : "acm018362jsd", + "name" : "getUserComments" + }, + "acm018363jsd" : { + "type" : "ControlElement", + "id" : "acm018363jsd", + "name" : "clone" + }, + "acm018364jsd" : { + "type" : "ControlElement", + "id" : "acm018364jsd", + "name" : "toString" + }, + "acm018365jsd" : { + "type" : "ControlElement", + "id" : "acm018365jsd", + "name" : "equals" + }, + "acm018366jsd" : { + "type" : "ControlElement", + "id" : "acm018366jsd", + "name" : "hashCode" + }, + "acm018367jsd" : { + "type" : "ClassUnit", + "id" : "acm018367jsd", + "name" : "BibtexString", + "compilationUnitId" : "acm018344jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018367jsd", "acm018370jsd" ], + "content" : [ "acm018349jsd", "acm018350jsd", "acm018351jsd", "acm018352jsd", "acm018353jsd", "acm018354jsd", "acm018355jsd", "acm018356jsd", "acm018357jsd", "acm018358jsd", "acm018359jsd", "acm018360jsd", "acm018361jsd", "acm018362jsd", "acm018363jsd", "acm018364jsd", "acm018365jsd", "acm018366jsd" ] + }, + "acm018368jsd" : { + "type" : "ControlElement", + "id" : "acm018368jsd", + "name" : "Type" + }, + "acm018369jsd" : { + "type" : "ControlElement", + "id" : "acm018369jsd", + "name" : "get" + }, + "acm018370jsd" : { + "type" : "ClassUnit", + "id" : "acm018370jsd", + "name" : "Type", + "compilationUnitId" : "acm018344jsd", + "parentDatatypeId" : "acm018367jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018370jsd" ], + "content" : [ "acm018368jsd", "acm018369jsd" ] + }, + "acm018371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018371jsd", + "name" : "CanonicalBibEntry", + "parentId" : "acm018120jsd", + "content" : [ "acm018378jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018372jsd" : { + "type" : "CodePackage", + "id" : "acm018372jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018373jsd" ] + }, + "acm018373jsd" : { + "type" : "CodePackage", + "id" : "acm018373jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018374jsd" ] + }, + "acm018374jsd" : { + "type" : "CodePackage", + "id" : "acm018374jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018375jsd" ] + }, + "acm018375jsd" : { + "type" : "CodePackage", + "id" : "acm018375jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018371jsd" ] + }, + "acm018376jsd" : { + "type" : "ControlElement", + "id" : "acm018376jsd", + "name" : "CanonicalBibEntry" + }, + "acm018377jsd" : { + "type" : "ControlElement", + "id" : "acm018377jsd", + "name" : "getCanonicalRepresentation" + }, + "acm018378jsd" : { + "type" : "ClassUnit", + "id" : "acm018378jsd", + "name" : "CanonicalBibEntry", + "compilationUnitId" : "acm018371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm018376jsd", "acm018377jsd" ] + }, + "acm018379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018379jsd", + "name" : "Date", + "parentId" : "acm018120jsd", + "content" : [ "acm018401jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018380jsd" : { + "type" : "CodePackage", + "id" : "acm018380jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018381jsd" ] + }, + "acm018381jsd" : { + "type" : "CodePackage", + "id" : "acm018381jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018382jsd" ] + }, + "acm018382jsd" : { + "type" : "CodePackage", + "id" : "acm018382jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018383jsd" ] + }, + "acm018383jsd" : { + "type" : "CodePackage", + "id" : "acm018383jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018379jsd" ] + }, + "acm018384jsd" : { + "type" : "ControlElement", + "id" : "acm018384jsd", + "name" : "Date" + }, + "acm018385jsd" : { + "type" : "ControlElement", + "id" : "acm018385jsd", + "name" : "Date" + }, + "acm018386jsd" : { + "type" : "ControlElement", + "id" : "acm018386jsd", + "name" : "Date" + }, + "acm018387jsd" : { + "type" : "ControlElement", + "id" : "acm018387jsd", + "name" : "Date" + }, + "acm018388jsd" : { + "type" : "ControlElement", + "id" : "acm018388jsd", + "name" : "Date" + }, + "acm018389jsd" : { + "type" : "ControlElement", + "id" : "acm018389jsd", + "name" : "parse" + }, + "acm018390jsd" : { + "type" : "ControlElement", + "id" : "acm018390jsd", + "name" : "parse" + }, + "acm018391jsd" : { + "type" : "ControlElement", + "id" : "acm018391jsd", + "name" : "convertToInt" + }, + "acm018392jsd" : { + "type" : "ControlElement", + "id" : "acm018392jsd", + "name" : "getNormalized" + }, + "acm018393jsd" : { + "type" : "ControlElement", + "id" : "acm018393jsd", + "name" : "getYear" + }, + "acm018394jsd" : { + "type" : "ControlElement", + "id" : "acm018394jsd", + "name" : "get" + }, + "acm018395jsd" : { + "type" : "ControlElement", + "id" : "acm018395jsd", + "name" : "getMonth" + }, + "acm018396jsd" : { + "type" : "ControlElement", + "id" : "acm018396jsd", + "name" : "getDay" + }, + "acm018397jsd" : { + "type" : "ControlElement", + "id" : "acm018397jsd", + "name" : "toTemporalAccessor" + }, + "acm018398jsd" : { + "type" : "ControlElement", + "id" : "acm018398jsd", + "name" : "equals" + }, + "acm018399jsd" : { + "type" : "ControlElement", + "id" : "acm018399jsd", + "name" : "toString" + }, + "acm018400jsd" : { + "type" : "ControlElement", + "id" : "acm018400jsd", + "name" : "hashCode" + }, + "acm018401jsd" : { + "type" : "ClassUnit", + "id" : "acm018401jsd", + "name" : "Date", + "compilationUnitId" : "acm018379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018401jsd", "acm018525jsd" ], + "content" : [ "acm018384jsd", "acm018385jsd", "acm018386jsd", "acm018387jsd", "acm018388jsd", "acm018389jsd", "acm018390jsd", "acm018391jsd", "acm018392jsd", "acm018393jsd", "acm018394jsd", "acm018395jsd", "acm018396jsd", "acm018397jsd", "acm018398jsd", "acm018399jsd", "acm018400jsd" ] + }, + "acm018402jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018402jsd", + "name" : "EntryConverter", + "parentId" : "acm018120jsd", + "content" : [ "acm018408jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018403jsd" : { + "type" : "CodePackage", + "id" : "acm018403jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018404jsd" ] + }, + "acm018404jsd" : { + "type" : "CodePackage", + "id" : "acm018404jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018405jsd" ] + }, + "acm018405jsd" : { + "type" : "CodePackage", + "id" : "acm018405jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018406jsd" ] + }, + "acm018406jsd" : { + "type" : "CodePackage", + "id" : "acm018406jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018402jsd" ] + }, + "acm018407jsd" : { + "type" : "ControlElement", + "id" : "acm018407jsd", + "name" : "EntryConverter" + }, + "acm018408jsd" : { + "type" : "ClassUnit", + "id" : "acm018408jsd", + "name" : "EntryConverter", + "compilationUnitId" : "acm018402jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm018407jsd" ] + }, + "acm018409jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018409jsd", + "name" : "EntryLinkList", + "parentId" : "acm018120jsd", + "content" : [ "acm018417jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018410jsd" : { + "type" : "CodePackage", + "id" : "acm018410jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018411jsd" ] + }, + "acm018411jsd" : { + "type" : "CodePackage", + "id" : "acm018411jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018412jsd" ] + }, + "acm018412jsd" : { + "type" : "CodePackage", + "id" : "acm018412jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018413jsd" ] + }, + "acm018413jsd" : { + "type" : "CodePackage", + "id" : "acm018413jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018409jsd" ] + }, + "acm018414jsd" : { + "type" : "ControlElement", + "id" : "acm018414jsd", + "name" : "EntryLinkList" + }, + "acm018415jsd" : { + "type" : "ControlElement", + "id" : "acm018415jsd", + "name" : "parse" + }, + "acm018416jsd" : { + "type" : "ControlElement", + "id" : "acm018416jsd", + "name" : "serialize" + }, + "acm018417jsd" : { + "type" : "ClassUnit", + "id" : "acm018417jsd", + "name" : "EntryLinkList", + "compilationUnitId" : "acm018409jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018539jsd" ], + "content" : [ "acm018414jsd", "acm018415jsd", "acm018416jsd" ] + }, + "acm018418jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018418jsd", + "name" : "IdGenerator", + "parentId" : "acm018120jsd", + "content" : [ "acm018425jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018419jsd" : { + "type" : "CodePackage", + "id" : "acm018419jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018420jsd" ] + }, + "acm018420jsd" : { + "type" : "CodePackage", + "id" : "acm018420jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018421jsd" ] + }, + "acm018421jsd" : { + "type" : "CodePackage", + "id" : "acm018421jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018422jsd" ] + }, + "acm018422jsd" : { + "type" : "CodePackage", + "id" : "acm018422jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018418jsd" ] + }, + "acm018423jsd" : { + "type" : "ControlElement", + "id" : "acm018423jsd", + "name" : "IdGenerator" + }, + "acm018424jsd" : { + "type" : "ControlElement", + "id" : "acm018424jsd", + "name" : "next" + }, + "acm018425jsd" : { + "type" : "ClassUnit", + "id" : "acm018425jsd", + "name" : "IdGenerator", + "compilationUnitId" : "acm018418jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm018423jsd", "acm018424jsd" ] + }, + "acm018426jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018426jsd", + "name" : "Keyword", + "parentId" : "acm018120jsd", + "content" : [ "acm018443jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018427jsd" : { + "type" : "CodePackage", + "id" : "acm018427jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018428jsd" ] + }, + "acm018428jsd" : { + "type" : "CodePackage", + "id" : "acm018428jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018429jsd" ] + }, + "acm018429jsd" : { + "type" : "CodePackage", + "id" : "acm018429jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018430jsd" ] + }, + "acm018430jsd" : { + "type" : "CodePackage", + "id" : "acm018430jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018426jsd" ] + }, + "acm018431jsd" : { + "type" : "ControlElement", + "id" : "acm018431jsd", + "name" : "Keyword" + }, + "acm018432jsd" : { + "type" : "ControlElement", + "id" : "acm018432jsd", + "name" : "of" + }, + "acm018433jsd" : { + "type" : "ControlElement", + "id" : "acm018433jsd", + "name" : "equals" + }, + "acm018434jsd" : { + "type" : "ControlElement", + "id" : "acm018434jsd", + "name" : "hashCode" + }, + "acm018435jsd" : { + "type" : "ControlElement", + "id" : "acm018435jsd", + "name" : "toString" + }, + "acm018436jsd" : { + "type" : "ControlElement", + "id" : "acm018436jsd", + "name" : "compareTo" + }, + "acm018437jsd" : { + "type" : "ControlElement", + "id" : "acm018437jsd", + "name" : "addAtEnd" + }, + "acm018438jsd" : { + "type" : "ControlElement", + "id" : "acm018438jsd", + "name" : "getSubchainAsString" + }, + "acm018439jsd" : { + "type" : "ControlElement", + "id" : "acm018439jsd", + "name" : "get" + }, + "acm018440jsd" : { + "type" : "ControlElement", + "id" : "acm018440jsd", + "name" : "getPathFromRootAsString" + }, + "acm018441jsd" : { + "type" : "ControlElement", + "id" : "acm018441jsd", + "name" : "flatten" + }, + "acm018442jsd" : { + "type" : "ControlElement", + "id" : "acm018442jsd", + "name" : "getAllSubchainsAsString" + }, + "acm018443jsd" : { + "type" : "ClassUnit", + "id" : "acm018443jsd", + "name" : "Keyword", + "compilationUnitId" : "acm018426jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm017871jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018443jsd" ], + "content" : [ "acm018431jsd", "acm018432jsd", "acm018433jsd", "acm018434jsd", "acm018435jsd", "acm018436jsd", "acm018437jsd", "acm018438jsd", "acm018439jsd", "acm018440jsd", "acm018441jsd", "acm018442jsd" ] + }, + "acm018444jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018444jsd", + "name" : "KeywordList", + "parentId" : "acm018120jsd", + "content" : [ "acm018479jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018445jsd" : { + "type" : "CodePackage", + "id" : "acm018445jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018446jsd" ] + }, + "acm018446jsd" : { + "type" : "CodePackage", + "id" : "acm018446jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018447jsd" ] + }, + "acm018447jsd" : { + "type" : "CodePackage", + "id" : "acm018447jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018448jsd" ] + }, + "acm018448jsd" : { + "type" : "CodePackage", + "id" : "acm018448jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018444jsd" ] + }, + "acm018449jsd" : { + "type" : "ControlElement", + "id" : "acm018449jsd", + "name" : "KeywordList" + }, + "acm018450jsd" : { + "type" : "ControlElement", + "id" : "acm018450jsd", + "name" : "KeywordList" + }, + "acm018451jsd" : { + "type" : "ControlElement", + "id" : "acm018451jsd", + "name" : "KeywordList" + }, + "acm018452jsd" : { + "type" : "ControlElement", + "id" : "acm018452jsd", + "name" : "KeywordList" + }, + "acm018453jsd" : { + "type" : "ControlElement", + "id" : "acm018453jsd", + "name" : "KeywordList" + }, + "acm018454jsd" : { + "type" : "ControlElement", + "id" : "acm018454jsd", + "name" : "parse" + }, + "acm018455jsd" : { + "type" : "ControlElement", + "id" : "acm018455jsd", + "name" : "parse" + }, + "acm018456jsd" : { + "type" : "ControlElement", + "id" : "acm018456jsd", + "name" : "merge" + }, + "acm018457jsd" : { + "type" : "ControlElement", + "id" : "acm018457jsd", + "name" : "createClone" + }, + "acm018458jsd" : { + "type" : "ControlElement", + "id" : "acm018458jsd", + "name" : "replaceAll" + }, + "acm018459jsd" : { + "type" : "ControlElement", + "id" : "acm018459jsd", + "name" : "removeAll" + }, + "acm018460jsd" : { + "type" : "ControlElement", + "id" : "acm018460jsd", + "name" : "add" + }, + "acm018461jsd" : { + "type" : "ControlElement", + "id" : "acm018461jsd", + "name" : "getAsString" + }, + "acm018462jsd" : { + "type" : "ControlElement", + "id" : "acm018462jsd", + "name" : "add" + }, + "acm018463jsd" : { + "type" : "ControlElement", + "id" : "acm018463jsd", + "name" : "iterator" + }, + "acm018464jsd" : { + "type" : "ControlElement", + "id" : "acm018464jsd", + "name" : "size" + }, + "acm018465jsd" : { + "type" : "ControlElement", + "id" : "acm018465jsd", + "name" : "isEmpty" + }, + "acm018466jsd" : { + "type" : "ControlElement", + "id" : "acm018466jsd", + "name" : "contains" + }, + "acm018467jsd" : { + "type" : "ControlElement", + "id" : "acm018467jsd", + "name" : "contains" + }, + "acm018468jsd" : { + "type" : "ControlElement", + "id" : "acm018468jsd", + "name" : "remove" + }, + "acm018469jsd" : { + "type" : "ControlElement", + "id" : "acm018469jsd", + "name" : "remove" + }, + "acm018470jsd" : { + "type" : "ControlElement", + "id" : "acm018470jsd", + "name" : "addAll" + }, + "acm018471jsd" : { + "type" : "ControlElement", + "id" : "acm018471jsd", + "name" : "retainAll" + }, + "acm018472jsd" : { + "type" : "ControlElement", + "id" : "acm018472jsd", + "name" : "clear" + }, + "acm018473jsd" : { + "type" : "ControlElement", + "id" : "acm018473jsd", + "name" : "get" + }, + "acm018474jsd" : { + "type" : "ControlElement", + "id" : "acm018474jsd", + "name" : "stream" + }, + "acm018475jsd" : { + "type" : "ControlElement", + "id" : "acm018475jsd", + "name" : "toString" + }, + "acm018476jsd" : { + "type" : "ControlElement", + "id" : "acm018476jsd", + "name" : "toStringList" + }, + "acm018477jsd" : { + "type" : "ControlElement", + "id" : "acm018477jsd", + "name" : "equals" + }, + "acm018478jsd" : { + "type" : "ControlElement", + "id" : "acm018478jsd", + "name" : "hashCode" + }, + "acm018479jsd" : { + "type" : "ClassUnit", + "id" : "acm018479jsd", + "name" : "KeywordList", + "compilationUnitId" : "acm018444jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018443jsd", "acm018479jsd" ], + "content" : [ "acm018449jsd", "acm018450jsd", "acm018451jsd", "acm018452jsd", "acm018453jsd", "acm018454jsd", "acm018455jsd", "acm018456jsd", "acm018457jsd", "acm018458jsd", "acm018459jsd", "acm018460jsd", "acm018461jsd", "acm018462jsd", "acm018463jsd", "acm018464jsd", "acm018465jsd", "acm018466jsd", "acm018467jsd", "acm018468jsd", "acm018469jsd", "acm018470jsd", "acm018471jsd", "acm018472jsd", "acm018473jsd", "acm018474jsd", "acm018475jsd", "acm018476jsd", "acm018477jsd", "acm018478jsd" ] + }, + "acm018480jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018480jsd", + "name" : "LinkedFile", + "parentId" : "acm018120jsd", + "content" : [ "acm018509jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018481jsd" : { + "type" : "CodePackage", + "id" : "acm018481jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018482jsd" ] + }, + "acm018482jsd" : { + "type" : "CodePackage", + "id" : "acm018482jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018483jsd" ] + }, + "acm018483jsd" : { + "type" : "CodePackage", + "id" : "acm018483jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018484jsd" ] + }, + "acm018484jsd" : { + "type" : "CodePackage", + "id" : "acm018484jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018480jsd" ] + }, + "acm018485jsd" : { + "type" : "ControlElement", + "id" : "acm018485jsd", + "name" : "LinkedFile" + }, + "acm018486jsd" : { + "type" : "ControlElement", + "id" : "acm018486jsd", + "name" : "LinkedFile" + }, + "acm018487jsd" : { + "type" : "ControlElement", + "id" : "acm018487jsd", + "name" : "LinkedFile" + }, + "acm018488jsd" : { + "type" : "ControlElement", + "id" : "acm018488jsd", + "name" : "LinkedFile" + }, + "acm018489jsd" : { + "type" : "ControlElement", + "id" : "acm018489jsd", + "name" : "descriptionProperty" + }, + "acm018490jsd" : { + "type" : "ControlElement", + "id" : "acm018490jsd", + "name" : "linkProperty" + }, + "acm018491jsd" : { + "type" : "ControlElement", + "id" : "acm018491jsd", + "name" : "fileTypeProperty" + }, + "acm018492jsd" : { + "type" : "ControlElement", + "id" : "acm018492jsd", + "name" : "getFileType" + }, + "acm018493jsd" : { + "type" : "ControlElement", + "id" : "acm018493jsd", + "name" : "setFileType" + }, + "acm018494jsd" : { + "type" : "ControlElement", + "id" : "acm018494jsd", + "name" : "getDescription" + }, + "acm018495jsd" : { + "type" : "ControlElement", + "id" : "acm018495jsd", + "name" : "setDescription" + }, + "acm018496jsd" : { + "type" : "ControlElement", + "id" : "acm018496jsd", + "name" : "getLink" + }, + "acm018497jsd" : { + "type" : "ControlElement", + "id" : "acm018497jsd", + "name" : "setLink" + }, + "acm018498jsd" : { + "type" : "ControlElement", + "id" : "acm018498jsd", + "name" : "getObservables" + }, + "acm018499jsd" : { + "type" : "ControlElement", + "id" : "acm018499jsd", + "name" : "equals" + }, + "acm018500jsd" : { + "type" : "ControlElement", + "id" : "acm018500jsd", + "name" : "writeObject" + }, + "acm018501jsd" : { + "type" : "ControlElement", + "id" : "acm018501jsd", + "name" : "readObject" + }, + "acm018502jsd" : { + "type" : "ControlElement", + "id" : "acm018502jsd", + "name" : "isOnlineLink" + }, + "acm018503jsd" : { + "type" : "ControlElement", + "id" : "acm018503jsd", + "name" : "hashCode" + }, + "acm018504jsd" : { + "type" : "ControlElement", + "id" : "acm018504jsd", + "name" : "toString" + }, + "acm018505jsd" : { + "type" : "ControlElement", + "id" : "acm018505jsd", + "name" : "isEmpty" + }, + "acm018506jsd" : { + "type" : "ControlElement", + "id" : "acm018506jsd", + "name" : "isOnlineLink" + }, + "acm018507jsd" : { + "type" : "ControlElement", + "id" : "acm018507jsd", + "name" : "findIn" + }, + "acm018508jsd" : { + "type" : "ControlElement", + "id" : "acm018508jsd", + "name" : "findIn" + }, + "acm018509jsd" : { + "type" : "ClassUnit", + "id" : "acm018509jsd", + "name" : "LinkedFile", + "compilationUnitId" : "acm018480jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018022jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm018485jsd", "acm018486jsd", "acm018487jsd", "acm018488jsd", "acm018489jsd", "acm018490jsd", "acm018491jsd", "acm018492jsd", "acm018493jsd", "acm018494jsd", "acm018495jsd", "acm018496jsd", "acm018497jsd", "acm018498jsd", "acm018499jsd", "acm018500jsd", "acm018501jsd", "acm018502jsd", "acm018503jsd", "acm018504jsd", "acm018505jsd", "acm018506jsd", "acm018507jsd", "acm018508jsd" ] + }, + "acm018510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018510jsd", + "name" : "Month", + "parentId" : "acm018120jsd", + "content" : [ "acm018525jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018511jsd" : { + "type" : "CodePackage", + "id" : "acm018511jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018512jsd" ] + }, + "acm018512jsd" : { + "type" : "CodePackage", + "id" : "acm018512jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018513jsd" ] + }, + "acm018513jsd" : { + "type" : "CodePackage", + "id" : "acm018513jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018514jsd" ] + }, + "acm018514jsd" : { + "type" : "CodePackage", + "id" : "acm018514jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018510jsd" ] + }, + "acm018515jsd" : { + "type" : "ControlElement", + "id" : "acm018515jsd", + "name" : "Month" + }, + "acm018516jsd" : { + "type" : "ControlElement", + "id" : "acm018516jsd", + "name" : "getMonthByNumber" + }, + "acm018517jsd" : { + "type" : "ControlElement", + "id" : "acm018517jsd", + "name" : "getMonthByShortName" + }, + "acm018518jsd" : { + "type" : "ControlElement", + "id" : "acm018518jsd", + "name" : "parse" + }, + "acm018519jsd" : { + "type" : "ControlElement", + "id" : "acm018519jsd", + "name" : "parseGermanShortMonth" + }, + "acm018520jsd" : { + "type" : "ControlElement", + "id" : "acm018520jsd", + "name" : "getShortName" + }, + "acm018521jsd" : { + "type" : "ControlElement", + "id" : "acm018521jsd", + "name" : "getJabRefFormat" + }, + "acm018522jsd" : { + "type" : "ControlElement", + "id" : "acm018522jsd", + "name" : "getNumber" + }, + "acm018523jsd" : { + "type" : "ControlElement", + "id" : "acm018523jsd", + "name" : "getFullName" + }, + "acm018524jsd" : { + "type" : "ControlElement", + "id" : "acm018524jsd", + "name" : "getTwoDigitNumber" + }, + "acm018525jsd" : { + "type" : "ClassUnit", + "id" : "acm018525jsd", + "name" : "Month", + "compilationUnitId" : "acm018510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018525jsd" ], + "content" : [ "acm018515jsd", "acm018516jsd", "acm018517jsd", "acm018518jsd", "acm018519jsd", "acm018520jsd", "acm018521jsd", "acm018522jsd", "acm018523jsd", "acm018524jsd" ] + }, + "acm018526jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018526jsd", + "name" : "ParsedEntryLink", + "parentId" : "acm018120jsd", + "content" : [ "acm018539jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018527jsd" : { + "type" : "CodePackage", + "id" : "acm018527jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018528jsd" ] + }, + "acm018528jsd" : { + "type" : "CodePackage", + "id" : "acm018528jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018529jsd" ] + }, + "acm018529jsd" : { + "type" : "CodePackage", + "id" : "acm018529jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018530jsd" ] + }, + "acm018530jsd" : { + "type" : "CodePackage", + "id" : "acm018530jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018526jsd" ] + }, + "acm018531jsd" : { + "type" : "ControlElement", + "id" : "acm018531jsd", + "name" : "ParsedEntryLink" + }, + "acm018532jsd" : { + "type" : "ControlElement", + "id" : "acm018532jsd", + "name" : "ParsedEntryLink" + }, + "acm018533jsd" : { + "type" : "ControlElement", + "id" : "acm018533jsd", + "name" : "getKey" + }, + "acm018534jsd" : { + "type" : "ControlElement", + "id" : "acm018534jsd", + "name" : "getLinkedEntry" + }, + "acm018535jsd" : { + "type" : "ControlElement", + "id" : "acm018535jsd", + "name" : "setKey" + }, + "acm018536jsd" : { + "type" : "ControlElement", + "id" : "acm018536jsd", + "name" : "hashCode" + }, + "acm018537jsd" : { + "type" : "ControlElement", + "id" : "acm018537jsd", + "name" : "equals" + }, + "acm018538jsd" : { + "type" : "ControlElement", + "id" : "acm018538jsd", + "name" : "getDatabase" + }, + "acm018539jsd" : { + "type" : "ClassUnit", + "id" : "acm018539jsd", + "name" : "ParsedEntryLink", + "compilationUnitId" : "acm018526jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm018539jsd" ], + "content" : [ "acm018531jsd", "acm018532jsd", "acm018533jsd", "acm018534jsd", "acm018535jsd", "acm018536jsd", "acm018537jsd", "acm018538jsd" ] + }, + "acm018540jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018540jsd", + "name" : "SharedBibEntryData", + "parentId" : "acm018120jsd", + "content" : [ "acm018552jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018541jsd" : { + "type" : "CodePackage", + "id" : "acm018541jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018542jsd" ] + }, + "acm018542jsd" : { + "type" : "CodePackage", + "id" : "acm018542jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018543jsd" ] + }, + "acm018543jsd" : { + "type" : "CodePackage", + "id" : "acm018543jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018544jsd" ] + }, + "acm018544jsd" : { + "type" : "CodePackage", + "id" : "acm018544jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018540jsd" ] + }, + "acm018545jsd" : { + "type" : "ControlElement", + "id" : "acm018545jsd", + "name" : "SharedBibEntryData" + }, + "acm018546jsd" : { + "type" : "ControlElement", + "id" : "acm018546jsd", + "name" : "getSharedID" + }, + "acm018547jsd" : { + "type" : "ControlElement", + "id" : "acm018547jsd", + "name" : "setSharedID" + }, + "acm018548jsd" : { + "type" : "ControlElement", + "id" : "acm018548jsd", + "name" : "getVersion" + }, + "acm018549jsd" : { + "type" : "ControlElement", + "id" : "acm018549jsd", + "name" : "setVersion" + }, + "acm018550jsd" : { + "type" : "ControlElement", + "id" : "acm018550jsd", + "name" : "toString" + }, + "acm018551jsd" : { + "type" : "ControlElement", + "id" : "acm018551jsd", + "name" : "compareTo" + }, + "acm018552jsd" : { + "type" : "ClassUnit", + "id" : "acm018552jsd", + "name" : "SharedBibEntryData", + "compilationUnitId" : "acm018540jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018552jsd" ], + "content" : [ "acm018545jsd", "acm018546jsd", "acm018547jsd", "acm018548jsd", "acm018549jsd", "acm018550jsd", "acm018551jsd" ] + }, + "acm018553jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018553jsd", + "name" : "EntriesEvent", + "parentId" : "acm018558jsd", + "content" : [ "acm018563jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018554jsd" : { + "type" : "CodePackage", + "id" : "acm018554jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018555jsd" ] + }, + "acm018555jsd" : { + "type" : "CodePackage", + "id" : "acm018555jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018556jsd" ] + }, + "acm018556jsd" : { + "type" : "CodePackage", + "id" : "acm018556jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018557jsd" ] + }, + "acm018557jsd" : { + "type" : "CodePackage", + "id" : "acm018557jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018558jsd" ] + }, + "acm018558jsd" : { + "type" : "CodePackage", + "id" : "acm018558jsd", + "name" : "event", + "parentId" : "acm018120jsd", + "content" : [ "acm018553jsd", "acm018564jsd", "acm018571jsd", "acm018581jsd", "acm018589jsd" ] + }, + "acm018559jsd" : { + "type" : "ControlElement", + "id" : "acm018559jsd", + "name" : "EntriesEvent" + }, + "acm018560jsd" : { + "type" : "ControlElement", + "id" : "acm018560jsd", + "name" : "EntriesEvent" + }, + "acm018561jsd" : { + "type" : "ControlElement", + "id" : "acm018561jsd", + "name" : "getBibEntries" + }, + "acm018562jsd" : { + "type" : "ControlElement", + "id" : "acm018562jsd", + "name" : "getEntriesEventSource" + }, + "acm018563jsd" : { + "type" : "ClassUnit", + "id" : "acm018563jsd", + "name" : "EntriesEvent", + "compilationUnitId" : "acm018553jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018089jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018570jsd" ], + "content" : [ "acm018559jsd", "acm018560jsd", "acm018561jsd", "acm018562jsd" ] + }, + "acm018564jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018564jsd", + "name" : "EntriesEventSource", + "parentId" : "acm018558jsd", + "content" : [ "acm018570jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018565jsd" : { + "type" : "CodePackage", + "id" : "acm018565jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018566jsd" ] + }, + "acm018566jsd" : { + "type" : "CodePackage", + "id" : "acm018566jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018567jsd" ] + }, + "acm018567jsd" : { + "type" : "CodePackage", + "id" : "acm018567jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018568jsd" ] + }, + "acm018568jsd" : { + "type" : "CodePackage", + "id" : "acm018568jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018569jsd" ] + }, + "acm018569jsd" : { + "type" : "CodePackage", + "id" : "acm018569jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018564jsd" ] + }, + "acm018570jsd" : { + "type" : "ClassUnit", + "id" : "acm018570jsd", + "name" : "EntriesEventSource", + "compilationUnitId" : "acm018564jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm018571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018571jsd", + "name" : "EntryChangedEvent", + "parentId" : "acm018558jsd", + "content" : [ "acm018580jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018572jsd" : { + "type" : "CodePackage", + "id" : "acm018572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018573jsd" ] + }, + "acm018573jsd" : { + "type" : "CodePackage", + "id" : "acm018573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018574jsd" ] + }, + "acm018574jsd" : { + "type" : "CodePackage", + "id" : "acm018574jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018575jsd" ] + }, + "acm018575jsd" : { + "type" : "CodePackage", + "id" : "acm018575jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018576jsd" ] + }, + "acm018576jsd" : { + "type" : "CodePackage", + "id" : "acm018576jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018571jsd" ] + }, + "acm018577jsd" : { + "type" : "ControlElement", + "id" : "acm018577jsd", + "name" : "EntryChangedEvent" + }, + "acm018578jsd" : { + "type" : "ControlElement", + "id" : "acm018578jsd", + "name" : "EntryChangedEvent" + }, + "acm018579jsd" : { + "type" : "ControlElement", + "id" : "acm018579jsd", + "name" : "getBibEntry" + }, + "acm018580jsd" : { + "type" : "ClassUnit", + "id" : "acm018580jsd", + "name" : "EntryChangedEvent", + "compilationUnitId" : "acm018571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018563jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018570jsd" ], + "content" : [ "acm018577jsd", "acm018578jsd", "acm018579jsd" ] + }, + "acm018581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018581jsd", + "name" : "FieldAddedOrRemovedEvent", + "parentId" : "acm018558jsd", + "content" : [ "acm018588jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018582jsd" : { + "type" : "CodePackage", + "id" : "acm018582jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018583jsd" ] + }, + "acm018583jsd" : { + "type" : "CodePackage", + "id" : "acm018583jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018584jsd" ] + }, + "acm018584jsd" : { + "type" : "CodePackage", + "id" : "acm018584jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018585jsd" ] + }, + "acm018585jsd" : { + "type" : "CodePackage", + "id" : "acm018585jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018586jsd" ] + }, + "acm018586jsd" : { + "type" : "CodePackage", + "id" : "acm018586jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018581jsd" ] + }, + "acm018587jsd" : { + "type" : "ControlElement", + "id" : "acm018587jsd", + "name" : "FieldAddedOrRemovedEvent" + }, + "acm018588jsd" : { + "type" : "ClassUnit", + "id" : "acm018588jsd", + "name" : "FieldAddedOrRemovedEvent", + "compilationUnitId" : "acm018581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018604jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018570jsd" ], + "content" : [ "acm018587jsd" ] + }, + "acm018589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018589jsd", + "name" : "FieldChangedEvent", + "parentId" : "acm018558jsd", + "content" : [ "acm018604jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018590jsd" : { + "type" : "CodePackage", + "id" : "acm018590jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018591jsd" ] + }, + "acm018591jsd" : { + "type" : "CodePackage", + "id" : "acm018591jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018592jsd" ] + }, + "acm018592jsd" : { + "type" : "CodePackage", + "id" : "acm018592jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018593jsd" ] + }, + "acm018593jsd" : { + "type" : "CodePackage", + "id" : "acm018593jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018594jsd" ] + }, + "acm018594jsd" : { + "type" : "CodePackage", + "id" : "acm018594jsd", + "name" : "event", + "parentId" : null, + "content" : [ "acm018589jsd" ] + }, + "acm018595jsd" : { + "type" : "ControlElement", + "id" : "acm018595jsd", + "name" : "FieldChangedEvent" + }, + "acm018596jsd" : { + "type" : "ControlElement", + "id" : "acm018596jsd", + "name" : "FieldChangedEvent" + }, + "acm018597jsd" : { + "type" : "ControlElement", + "id" : "acm018597jsd", + "name" : "FieldChangedEvent" + }, + "acm018598jsd" : { + "type" : "ControlElement", + "id" : "acm018598jsd", + "name" : "FieldChangedEvent" + }, + "acm018599jsd" : { + "type" : "ControlElement", + "id" : "acm018599jsd", + "name" : "computeMajorCharacterChange" + }, + "acm018600jsd" : { + "type" : "ControlElement", + "id" : "acm018600jsd", + "name" : "getField" + }, + "acm018601jsd" : { + "type" : "ControlElement", + "id" : "acm018601jsd", + "name" : "getNewValue" + }, + "acm018602jsd" : { + "type" : "ControlElement", + "id" : "acm018602jsd", + "name" : "getOldValue" + }, + "acm018603jsd" : { + "type" : "ControlElement", + "id" : "acm018603jsd", + "name" : "getMajorCharacterChange" + }, + "acm018604jsd" : { + "type" : "ClassUnit", + "id" : "acm018604jsd", + "name" : "FieldChangedEvent", + "compilationUnitId" : "acm018589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018580jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018570jsd", "acm018673jsd" ], + "content" : [ "acm018595jsd", "acm018596jsd", "acm018597jsd", "acm018598jsd", "acm018599jsd", "acm018600jsd", "acm018601jsd", "acm018602jsd", "acm018603jsd" ] + }, + "acm018605jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018605jsd", + "name" : "AMSField", + "parentId" : "acm018610jsd", + "content" : [ "acm018620jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018606jsd" : { + "type" : "CodePackage", + "id" : "acm018606jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018607jsd" ] + }, + "acm018607jsd" : { + "type" : "CodePackage", + "id" : "acm018607jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018608jsd" ] + }, + "acm018608jsd" : { + "type" : "CodePackage", + "id" : "acm018608jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018609jsd" ] + }, + "acm018609jsd" : { + "type" : "CodePackage", + "id" : "acm018609jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018610jsd" ] + }, + "acm018610jsd" : { + "type" : "CodePackage", + "id" : "acm018610jsd", + "name" : "field", + "parentId" : "acm018120jsd", + "content" : [ "acm018605jsd", "acm018621jsd", "acm018627jsd", "acm018643jsd", "acm018659jsd", "acm018674jsd", "acm018703jsd", "acm018710jsd", "acm018717jsd", "acm018729jsd", "acm018742jsd", "acm018755jsd", "acm018771jsd", "acm018783jsd", "acm018799jsd", "acm028784jsd", "acm028793jsd", "acm028804jsd", "acm028813jsd", "acm028821jsd" ] + }, + "acm018611jsd" : { + "type" : "ControlElement", + "id" : "acm018611jsd", + "name" : "AMSField" + }, + "acm018612jsd" : { + "type" : "ControlElement", + "id" : "acm018612jsd", + "name" : "AMSField" + }, + "acm018613jsd" : { + "type" : "ControlElement", + "id" : "acm018613jsd", + "name" : "AMSField" + }, + "acm018614jsd" : { + "type" : "ControlElement", + "id" : "acm018614jsd", + "name" : "AMSField" + }, + "acm018615jsd" : { + "type" : "ControlElement", + "id" : "acm018615jsd", + "name" : "fromName" + }, + "acm018616jsd" : { + "type" : "ControlElement", + "id" : "acm018616jsd", + "name" : "getProperties" + }, + "acm018617jsd" : { + "type" : "ControlElement", + "id" : "acm018617jsd", + "name" : "getName" + }, + "acm018618jsd" : { + "type" : "ControlElement", + "id" : "acm018618jsd", + "name" : "isStandardField" + }, + "acm018619jsd" : { + "type" : "ControlElement", + "id" : "acm018619jsd", + "name" : "getDisplayName" + }, + "acm018620jsd" : { + "type" : "ClassUnit", + "id" : "acm018620jsd", + "name" : "AMSField", + "compilationUnitId" : "acm018605jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018620jsd", "acm018716jsd" ], + "content" : [ "acm018611jsd", "acm018612jsd", "acm018613jsd", "acm018614jsd", "acm018615jsd", "acm018616jsd", "acm018617jsd", "acm018618jsd", "acm018619jsd" ] + }, + "acm018621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018621jsd", + "name" : "BibField", + "parentId" : "acm018610jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018622jsd" : { + "type" : "CodePackage", + "id" : "acm018622jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018623jsd" ] + }, + "acm018623jsd" : { + "type" : "CodePackage", + "id" : "acm018623jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018624jsd" ] + }, + "acm018624jsd" : { + "type" : "CodePackage", + "id" : "acm018624jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018625jsd" ] + }, + "acm018625jsd" : { + "type" : "CodePackage", + "id" : "acm018625jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018626jsd" ] + }, + "acm018626jsd" : { + "type" : "CodePackage", + "id" : "acm018626jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018621jsd" ] + }, + "acm018627jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018627jsd", + "name" : "BiblatexApaField", + "parentId" : "acm018610jsd", + "content" : [ "acm018642jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018628jsd" : { + "type" : "CodePackage", + "id" : "acm018628jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018629jsd" ] + }, + "acm018629jsd" : { + "type" : "CodePackage", + "id" : "acm018629jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018630jsd" ] + }, + "acm018630jsd" : { + "type" : "CodePackage", + "id" : "acm018630jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018631jsd" ] + }, + "acm018631jsd" : { + "type" : "CodePackage", + "id" : "acm018631jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018632jsd" ] + }, + "acm018632jsd" : { + "type" : "CodePackage", + "id" : "acm018632jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018627jsd" ] + }, + "acm018633jsd" : { + "type" : "ControlElement", + "id" : "acm018633jsd", + "name" : "BiblatexApaField" + }, + "acm018634jsd" : { + "type" : "ControlElement", + "id" : "acm018634jsd", + "name" : "BiblatexApaField" + }, + "acm018635jsd" : { + "type" : "ControlElement", + "id" : "acm018635jsd", + "name" : "BiblatexApaField" + }, + "acm018636jsd" : { + "type" : "ControlElement", + "id" : "acm018636jsd", + "name" : "BiblatexApaField" + }, + "acm018637jsd" : { + "type" : "ControlElement", + "id" : "acm018637jsd", + "name" : "fromName" + }, + "acm018638jsd" : { + "type" : "ControlElement", + "id" : "acm018638jsd", + "name" : "getProperties" + }, + "acm018639jsd" : { + "type" : "ControlElement", + "id" : "acm018639jsd", + "name" : "getName" + }, + "acm018640jsd" : { + "type" : "ControlElement", + "id" : "acm018640jsd", + "name" : "isStandardField" + }, + "acm018641jsd" : { + "type" : "ControlElement", + "id" : "acm018641jsd", + "name" : "getDisplayName" + }, + "acm018642jsd" : { + "type" : "ClassUnit", + "id" : "acm018642jsd", + "name" : "BiblatexApaField", + "compilationUnitId" : "acm018627jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018642jsd", "acm018716jsd", "acm018963jsd" ], + "content" : [ "acm018633jsd", "acm018634jsd", "acm018635jsd", "acm018636jsd", "acm018637jsd", "acm018638jsd", "acm018639jsd", "acm018640jsd", "acm018641jsd" ] + }, + "acm018643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018643jsd", + "name" : "BiblatexSoftwareField", + "parentId" : "acm018610jsd", + "content" : [ "acm018658jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018644jsd" : { + "type" : "CodePackage", + "id" : "acm018644jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018645jsd" ] + }, + "acm018645jsd" : { + "type" : "CodePackage", + "id" : "acm018645jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018646jsd" ] + }, + "acm018646jsd" : { + "type" : "CodePackage", + "id" : "acm018646jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018647jsd" ] + }, + "acm018647jsd" : { + "type" : "CodePackage", + "id" : "acm018647jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018648jsd" ] + }, + "acm018648jsd" : { + "type" : "CodePackage", + "id" : "acm018648jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018643jsd" ] + }, + "acm018649jsd" : { + "type" : "ControlElement", + "id" : "acm018649jsd", + "name" : "BiblatexSoftwareField" + }, + "acm018650jsd" : { + "type" : "ControlElement", + "id" : "acm018650jsd", + "name" : "BiblatexSoftwareField" + }, + "acm018651jsd" : { + "type" : "ControlElement", + "id" : "acm018651jsd", + "name" : "BiblatexSoftwareField" + }, + "acm018652jsd" : { + "type" : "ControlElement", + "id" : "acm018652jsd", + "name" : "BiblatexSoftwareField" + }, + "acm018653jsd" : { + "type" : "ControlElement", + "id" : "acm018653jsd", + "name" : "fromName" + }, + "acm018654jsd" : { + "type" : "ControlElement", + "id" : "acm018654jsd", + "name" : "getProperties" + }, + "acm018655jsd" : { + "type" : "ControlElement", + "id" : "acm018655jsd", + "name" : "getName" + }, + "acm018656jsd" : { + "type" : "ControlElement", + "id" : "acm018656jsd", + "name" : "isStandardField" + }, + "acm018657jsd" : { + "type" : "ControlElement", + "id" : "acm018657jsd", + "name" : "getDisplayName" + }, + "acm018658jsd" : { + "type" : "ClassUnit", + "id" : "acm018658jsd", + "name" : "BiblatexSoftwareField", + "compilationUnitId" : "acm018643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018658jsd", "acm018716jsd", "acm018981jsd" ], + "content" : [ "acm018649jsd", "acm018650jsd", "acm018651jsd", "acm018652jsd", "acm018653jsd", "acm018654jsd", "acm018655jsd", "acm018656jsd", "acm018657jsd" ] + }, + "acm018659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018659jsd", + "name" : "Field", + "parentId" : "acm018610jsd", + "content" : [ "acm018673jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018660jsd" : { + "type" : "CodePackage", + "id" : "acm018660jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018661jsd" ] + }, + "acm018661jsd" : { + "type" : "CodePackage", + "id" : "acm018661jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018662jsd" ] + }, + "acm018662jsd" : { + "type" : "CodePackage", + "id" : "acm018662jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018663jsd" ] + }, + "acm018663jsd" : { + "type" : "CodePackage", + "id" : "acm018663jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018664jsd" ] + }, + "acm018664jsd" : { + "type" : "CodePackage", + "id" : "acm018664jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018659jsd" ] + }, + "acm018665jsd" : { + "type" : "ControlElement", + "id" : "acm018665jsd", + "name" : "getProperties" + }, + "acm018666jsd" : { + "type" : "ControlElement", + "id" : "acm018666jsd", + "name" : "getDisplayName" + }, + "acm018667jsd" : { + "type" : "ControlElement", + "id" : "acm018667jsd", + "name" : "getName" + }, + "acm018668jsd" : { + "type" : "ControlElement", + "id" : "acm018668jsd", + "name" : "isStandardField" + }, + "acm018669jsd" : { + "type" : "ControlElement", + "id" : "acm018669jsd", + "name" : "isDeprecated" + }, + "acm018670jsd" : { + "type" : "ControlElement", + "id" : "acm018670jsd", + "name" : "getAlias" + }, + "acm018671jsd" : { + "type" : "ControlElement", + "id" : "acm018671jsd", + "name" : "isNumeric" + }, + "acm018672jsd" : { + "type" : "ControlElement", + "id" : "acm018672jsd", + "name" : "isMultiLineDefined" + }, + "acm018673jsd" : { + "type" : "InterfaceUnit", + "id" : "acm018673jsd", + "name" : "Field", + "compilationUnitId" : "acm018659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018716jsd" ], + "content" : [ "acm018665jsd", "acm018666jsd", "acm018667jsd", "acm018668jsd", "acm018669jsd", "acm018670jsd", "acm018671jsd", "acm018672jsd" ] + }, + "acm018674jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018674jsd", + "name" : "FieldFactory", + "parentId" : "acm018610jsd", + "content" : [ "acm018702jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018675jsd" : { + "type" : "CodePackage", + "id" : "acm018675jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018676jsd" ] + }, + "acm018676jsd" : { + "type" : "CodePackage", + "id" : "acm018676jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018677jsd" ] + }, + "acm018677jsd" : { + "type" : "CodePackage", + "id" : "acm018677jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018678jsd" ] + }, + "acm018678jsd" : { + "type" : "CodePackage", + "id" : "acm018678jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018679jsd" ] + }, + "acm018679jsd" : { + "type" : "CodePackage", + "id" : "acm018679jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018674jsd" ] + }, + "acm018680jsd" : { + "type" : "ControlElement", + "id" : "acm018680jsd", + "name" : "serializeOrFields" + }, + "acm018681jsd" : { + "type" : "ControlElement", + "id" : "acm018681jsd", + "name" : "serializeOrFields" + }, + "acm018682jsd" : { + "type" : "ControlElement", + "id" : "acm018682jsd", + "name" : "serializeOrFieldsList" + }, + "acm018683jsd" : { + "type" : "ControlElement", + "id" : "acm018683jsd", + "name" : "getNotTextFieldNames" + }, + "acm018684jsd" : { + "type" : "ControlElement", + "id" : "acm018684jsd", + "name" : "getIdentifierFieldNames" + }, + "acm018685jsd" : { + "type" : "ControlElement", + "id" : "acm018685jsd", + "name" : "parseOrFields" + }, + "acm018686jsd" : { + "type" : "ControlElement", + "id" : "acm018686jsd", + "name" : "parseOrFieldsList" + }, + "acm018687jsd" : { + "type" : "ControlElement", + "id" : "acm018687jsd", + "name" : "parseFieldList" + }, + "acm018688jsd" : { + "type" : "ControlElement", + "id" : "acm018688jsd", + "name" : "serializeFieldsList" + }, + "acm018689jsd" : { + "type" : "ControlElement", + "id" : "acm018689jsd", + "name" : "parseField" + }, + "acm018690jsd" : { + "type" : "ControlElement", + "id" : "acm018690jsd", + "name" : "parseField" + }, + "acm018691jsd" : { + "type" : "ControlElement", + "id" : "acm018691jsd", + "name" : "getKeyFields" + }, + "acm018692jsd" : { + "type" : "ControlElement", + "id" : "acm018692jsd", + "name" : "isInternalField" + }, + "acm018693jsd" : { + "type" : "ControlElement", + "id" : "acm018693jsd", + "name" : "getJournalNameFields" + }, + "acm018694jsd" : { + "type" : "ControlElement", + "id" : "acm018694jsd", + "name" : "getCommonFields" + }, + "acm018695jsd" : { + "type" : "ControlElement", + "id" : "acm018695jsd", + "name" : "getStandardFieldsWithCitationKey" + }, + "acm018696jsd" : { + "type" : "ControlElement", + "id" : "acm018696jsd", + "name" : "getBookNameFields" + }, + "acm018697jsd" : { + "type" : "ControlElement", + "id" : "acm018697jsd", + "name" : "getPersonNameFields" + }, + "acm018698jsd" : { + "type" : "ControlElement", + "id" : "acm018698jsd", + "name" : "getFieldsFiltered" + }, + "acm018699jsd" : { + "type" : "ControlElement", + "id" : "acm018699jsd", + "name" : "getAllFields" + }, + "acm018700jsd" : { + "type" : "ControlElement", + "id" : "acm018700jsd", + "name" : "getDefaultGeneralFields" + }, + "acm018701jsd" : { + "type" : "ControlElement", + "id" : "acm018701jsd", + "name" : "isMultiLineField" + }, + "acm018702jsd" : { + "type" : "ClassUnit", + "id" : "acm018702jsd", + "name" : "FieldFactory", + "compilationUnitId" : "acm018674jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018642jsd", "acm018658jsd", "acm018673jsd", "acm018728jsd", "acm018741jsd", "acm018754jsd", "acm018770jsd", "acm018798jsd", "acm018813jsd" ], + "content" : [ "acm018680jsd", "acm018681jsd", "acm018682jsd", "acm018683jsd", "acm018684jsd", "acm018685jsd", "acm018686jsd", "acm018687jsd", "acm018688jsd", "acm018689jsd", "acm018690jsd", "acm018691jsd", "acm018692jsd", "acm018693jsd", "acm018694jsd", "acm018695jsd", "acm018696jsd", "acm018697jsd", "acm018698jsd", "acm018699jsd", "acm018700jsd", "acm018701jsd" ] + }, + "acm018703jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018703jsd", + "name" : "FieldPriority", + "parentId" : "acm018610jsd", + "content" : [ "acm018709jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018704jsd" : { + "type" : "CodePackage", + "id" : "acm018704jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018705jsd" ] + }, + "acm018705jsd" : { + "type" : "CodePackage", + "id" : "acm018705jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018706jsd" ] + }, + "acm018706jsd" : { + "type" : "CodePackage", + "id" : "acm018706jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018707jsd" ] + }, + "acm018707jsd" : { + "type" : "CodePackage", + "id" : "acm018707jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018708jsd" ] + }, + "acm018708jsd" : { + "type" : "CodePackage", + "id" : "acm018708jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018703jsd" ] + }, + "acm018709jsd" : { + "type" : "ClassUnit", + "id" : "acm018709jsd", + "name" : "FieldPriority", + "compilationUnitId" : "acm018703jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm018710jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018710jsd", + "name" : "FieldProperty", + "parentId" : "acm018610jsd", + "content" : [ "acm018716jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018711jsd" : { + "type" : "CodePackage", + "id" : "acm018711jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018712jsd" ] + }, + "acm018712jsd" : { + "type" : "CodePackage", + "id" : "acm018712jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018713jsd" ] + }, + "acm018713jsd" : { + "type" : "CodePackage", + "id" : "acm018713jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018714jsd" ] + }, + "acm018714jsd" : { + "type" : "CodePackage", + "id" : "acm018714jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018715jsd" ] + }, + "acm018715jsd" : { + "type" : "CodePackage", + "id" : "acm018715jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018710jsd" ] + }, + "acm018716jsd" : { + "type" : "ClassUnit", + "id" : "acm018716jsd", + "name" : "FieldProperty", + "compilationUnitId" : "acm018710jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm018717jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018717jsd", + "name" : "IEEEField", + "parentId" : "acm018610jsd", + "content" : [ "acm018728jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018718jsd" : { + "type" : "CodePackage", + "id" : "acm018718jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018719jsd" ] + }, + "acm018719jsd" : { + "type" : "CodePackage", + "id" : "acm018719jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018720jsd" ] + }, + "acm018720jsd" : { + "type" : "CodePackage", + "id" : "acm018720jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018721jsd" ] + }, + "acm018721jsd" : { + "type" : "CodePackage", + "id" : "acm018721jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018722jsd" ] + }, + "acm018722jsd" : { + "type" : "CodePackage", + "id" : "acm018722jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018717jsd" ] + }, + "acm018723jsd" : { + "type" : "ControlElement", + "id" : "acm018723jsd", + "name" : "IEEEField" + }, + "acm018724jsd" : { + "type" : "ControlElement", + "id" : "acm018724jsd", + "name" : "fromName" + }, + "acm018725jsd" : { + "type" : "ControlElement", + "id" : "acm018725jsd", + "name" : "getName" + }, + "acm018726jsd" : { + "type" : "ControlElement", + "id" : "acm018726jsd", + "name" : "isStandardField" + }, + "acm018727jsd" : { + "type" : "ControlElement", + "id" : "acm018727jsd", + "name" : "getProperties" + }, + "acm018728jsd" : { + "type" : "ClassUnit", + "id" : "acm018728jsd", + "name" : "IEEEField", + "compilationUnitId" : "acm018717jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018716jsd", "acm018728jsd" ], + "content" : [ "acm018723jsd", "acm018724jsd", "acm018725jsd", "acm018726jsd", "acm018727jsd" ] + }, + "acm018729jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018729jsd", + "name" : "InternalField", + "parentId" : "acm018610jsd", + "content" : [ "acm018741jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018730jsd" : { + "type" : "CodePackage", + "id" : "acm018730jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018731jsd" ] + }, + "acm018731jsd" : { + "type" : "CodePackage", + "id" : "acm018731jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018732jsd" ] + }, + "acm018732jsd" : { + "type" : "CodePackage", + "id" : "acm018732jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018733jsd" ] + }, + "acm018733jsd" : { + "type" : "CodePackage", + "id" : "acm018733jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018734jsd" ] + }, + "acm018734jsd" : { + "type" : "CodePackage", + "id" : "acm018734jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018729jsd" ] + }, + "acm018735jsd" : { + "type" : "ControlElement", + "id" : "acm018735jsd", + "name" : "InternalField" + }, + "acm018736jsd" : { + "type" : "ControlElement", + "id" : "acm018736jsd", + "name" : "InternalField" + }, + "acm018737jsd" : { + "type" : "ControlElement", + "id" : "acm018737jsd", + "name" : "fromName" + }, + "acm018738jsd" : { + "type" : "ControlElement", + "id" : "acm018738jsd", + "name" : "getProperties" + }, + "acm018739jsd" : { + "type" : "ControlElement", + "id" : "acm018739jsd", + "name" : "getName" + }, + "acm018740jsd" : { + "type" : "ControlElement", + "id" : "acm018740jsd", + "name" : "isStandardField" + }, + "acm018741jsd" : { + "type" : "ClassUnit", + "id" : "acm018741jsd", + "name" : "InternalField", + "compilationUnitId" : "acm018729jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018716jsd", "acm018741jsd" ], + "content" : [ "acm018735jsd", "acm018736jsd", "acm018737jsd", "acm018738jsd", "acm018739jsd", "acm018740jsd" ] + }, + "acm018742jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018742jsd", + "name" : "OrFields", + "parentId" : "acm018610jsd", + "content" : [ "acm018754jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018743jsd" : { + "type" : "CodePackage", + "id" : "acm018743jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018744jsd" ] + }, + "acm018744jsd" : { + "type" : "CodePackage", + "id" : "acm018744jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018745jsd" ] + }, + "acm018745jsd" : { + "type" : "CodePackage", + "id" : "acm018745jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018746jsd" ] + }, + "acm018746jsd" : { + "type" : "CodePackage", + "id" : "acm018746jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018747jsd" ] + }, + "acm018747jsd" : { + "type" : "CodePackage", + "id" : "acm018747jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018742jsd" ] + }, + "acm018748jsd" : { + "type" : "ControlElement", + "id" : "acm018748jsd", + "name" : "OrFields" + }, + "acm018749jsd" : { + "type" : "ControlElement", + "id" : "acm018749jsd", + "name" : "OrFields" + }, + "acm018750jsd" : { + "type" : "ControlElement", + "id" : "acm018750jsd", + "name" : "OrFields" + }, + "acm018751jsd" : { + "type" : "ControlElement", + "id" : "acm018751jsd", + "name" : "getDisplayName" + }, + "acm018752jsd" : { + "type" : "ControlElement", + "id" : "acm018752jsd", + "name" : "getPrimary" + }, + "acm018753jsd" : { + "type" : "ControlElement", + "id" : "acm018753jsd", + "name" : "compareTo" + }, + "acm018754jsd" : { + "type" : "ClassUnit", + "id" : "acm018754jsd", + "name" : "OrFields", + "compilationUnitId" : "acm018742jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018754jsd" ], + "content" : [ "acm018748jsd", "acm018749jsd", "acm018750jsd", "acm018751jsd", "acm018752jsd", "acm018753jsd" ] + }, + "acm018755jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018755jsd", + "name" : "SpecialField", + "parentId" : "acm018610jsd", + "content" : [ "acm018770jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018756jsd" : { + "type" : "CodePackage", + "id" : "acm018756jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018757jsd" ] + }, + "acm018757jsd" : { + "type" : "CodePackage", + "id" : "acm018757jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018758jsd" ] + }, + "acm018758jsd" : { + "type" : "CodePackage", + "id" : "acm018758jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018759jsd" ] + }, + "acm018759jsd" : { + "type" : "CodePackage", + "id" : "acm018759jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018760jsd" ] + }, + "acm018760jsd" : { + "type" : "CodePackage", + "id" : "acm018760jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018755jsd" ] + }, + "acm018761jsd" : { + "type" : "ControlElement", + "id" : "acm018761jsd", + "name" : "SpecialField" + }, + "acm018762jsd" : { + "type" : "ControlElement", + "id" : "acm018762jsd", + "name" : "getValues" + }, + "acm018763jsd" : { + "type" : "ControlElement", + "id" : "acm018763jsd", + "name" : "getKeyWords" + }, + "acm018764jsd" : { + "type" : "ControlElement", + "id" : "acm018764jsd", + "name" : "fromName" + }, + "acm018765jsd" : { + "type" : "ControlElement", + "id" : "acm018765jsd", + "name" : "isSingleValueField" + }, + "acm018766jsd" : { + "type" : "ControlElement", + "id" : "acm018766jsd", + "name" : "parseValue" + }, + "acm018767jsd" : { + "type" : "ControlElement", + "id" : "acm018767jsd", + "name" : "getProperties" + }, + "acm018768jsd" : { + "type" : "ControlElement", + "id" : "acm018768jsd", + "name" : "getName" + }, + "acm018769jsd" : { + "type" : "ControlElement", + "id" : "acm018769jsd", + "name" : "isStandardField" + }, + "acm018770jsd" : { + "type" : "ClassUnit", + "id" : "acm018770jsd", + "name" : "SpecialField", + "compilationUnitId" : "acm018755jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018479jsd", "acm018716jsd", "acm018770jsd", "acm018782jsd" ], + "content" : [ "acm018761jsd", "acm018762jsd", "acm018763jsd", "acm018764jsd", "acm018765jsd", "acm018766jsd", "acm018767jsd", "acm018768jsd", "acm018769jsd" ] + }, + "acm018771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018771jsd", + "name" : "SpecialFieldValue", + "parentId" : "acm018610jsd", + "content" : [ "acm018782jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018772jsd" : { + "type" : "CodePackage", + "id" : "acm018772jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018773jsd" ] + }, + "acm018773jsd" : { + "type" : "CodePackage", + "id" : "acm018773jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018774jsd" ] + }, + "acm018774jsd" : { + "type" : "CodePackage", + "id" : "acm018774jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018775jsd" ] + }, + "acm018775jsd" : { + "type" : "CodePackage", + "id" : "acm018775jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018776jsd" ] + }, + "acm018776jsd" : { + "type" : "CodePackage", + "id" : "acm018776jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018771jsd" ] + }, + "acm018777jsd" : { + "type" : "ControlElement", + "id" : "acm018777jsd", + "name" : "SpecialFieldValue" + }, + "acm018778jsd" : { + "type" : "ControlElement", + "id" : "acm018778jsd", + "name" : "getRating" + }, + "acm018779jsd" : { + "type" : "ControlElement", + "id" : "acm018779jsd", + "name" : "getKeyword" + }, + "acm018780jsd" : { + "type" : "ControlElement", + "id" : "acm018780jsd", + "name" : "getFieldValue" + }, + "acm018781jsd" : { + "type" : "ControlElement", + "id" : "acm018781jsd", + "name" : "toRating" + }, + "acm018782jsd" : { + "type" : "ClassUnit", + "id" : "acm018782jsd", + "name" : "SpecialFieldValue", + "compilationUnitId" : "acm018771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018443jsd", "acm018782jsd" ], + "content" : [ "acm018777jsd", "acm018778jsd", "acm018779jsd", "acm018780jsd", "acm018781jsd" ] + }, + "acm018783jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018783jsd", + "name" : "StandardField", + "parentId" : "acm018610jsd", + "content" : [ "acm018798jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018784jsd" : { + "type" : "CodePackage", + "id" : "acm018784jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018785jsd" ] + }, + "acm018785jsd" : { + "type" : "CodePackage", + "id" : "acm018785jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018786jsd" ] + }, + "acm018786jsd" : { + "type" : "CodePackage", + "id" : "acm018786jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018787jsd" ] + }, + "acm018787jsd" : { + "type" : "CodePackage", + "id" : "acm018787jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018788jsd" ] + }, + "acm018788jsd" : { + "type" : "CodePackage", + "id" : "acm018788jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018783jsd" ] + }, + "acm018789jsd" : { + "type" : "ControlElement", + "id" : "acm018789jsd", + "name" : "StandardField" + }, + "acm018790jsd" : { + "type" : "ControlElement", + "id" : "acm018790jsd", + "name" : "StandardField" + }, + "acm018791jsd" : { + "type" : "ControlElement", + "id" : "acm018791jsd", + "name" : "StandardField" + }, + "acm018792jsd" : { + "type" : "ControlElement", + "id" : "acm018792jsd", + "name" : "StandardField" + }, + "acm018793jsd" : { + "type" : "ControlElement", + "id" : "acm018793jsd", + "name" : "fromName" + }, + "acm018794jsd" : { + "type" : "ControlElement", + "id" : "acm018794jsd", + "name" : "getProperties" + }, + "acm018795jsd" : { + "type" : "ControlElement", + "id" : "acm018795jsd", + "name" : "getName" + }, + "acm018796jsd" : { + "type" : "ControlElement", + "id" : "acm018796jsd", + "name" : "isStandardField" + }, + "acm018797jsd" : { + "type" : "ControlElement", + "id" : "acm018797jsd", + "name" : "getDisplayName" + }, + "acm018798jsd" : { + "type" : "ClassUnit", + "id" : "acm018798jsd", + "name" : "StandardField", + "compilationUnitId" : "acm018783jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018716jsd", "acm018798jsd" ], + "content" : [ "acm018789jsd", "acm018790jsd", "acm018791jsd", "acm018792jsd", "acm018793jsd", "acm018794jsd", "acm018795jsd", "acm018796jsd", "acm018797jsd" ] + }, + "acm018799jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018799jsd", + "name" : "UnknownField", + "parentId" : "acm018610jsd", + "content" : [ "acm018813jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018800jsd" : { + "type" : "CodePackage", + "id" : "acm018800jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018801jsd" ] + }, + "acm018801jsd" : { + "type" : "CodePackage", + "id" : "acm018801jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018802jsd" ] + }, + "acm018802jsd" : { + "type" : "CodePackage", + "id" : "acm018802jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018803jsd" ] + }, + "acm018803jsd" : { + "type" : "CodePackage", + "id" : "acm018803jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018804jsd" ] + }, + "acm018804jsd" : { + "type" : "CodePackage", + "id" : "acm018804jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm018799jsd" ] + }, + "acm018805jsd" : { + "type" : "ControlElement", + "id" : "acm018805jsd", + "name" : "UnknownField" + }, + "acm018806jsd" : { + "type" : "ControlElement", + "id" : "acm018806jsd", + "name" : "UnknownField" + }, + "acm018807jsd" : { + "type" : "ControlElement", + "id" : "acm018807jsd", + "name" : "getProperties" + }, + "acm018808jsd" : { + "type" : "ControlElement", + "id" : "acm018808jsd", + "name" : "getName" + }, + "acm018809jsd" : { + "type" : "ControlElement", + "id" : "acm018809jsd", + "name" : "isStandardField" + }, + "acm018810jsd" : { + "type" : "ControlElement", + "id" : "acm018810jsd", + "name" : "equals" + }, + "acm018811jsd" : { + "type" : "ControlElement", + "id" : "acm018811jsd", + "name" : "hashCode" + }, + "acm018812jsd" : { + "type" : "ControlElement", + "id" : "acm018812jsd", + "name" : "toString" + }, + "acm018813jsd" : { + "type" : "ClassUnit", + "id" : "acm018813jsd", + "name" : "UnknownField", + "compilationUnitId" : "acm018799jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018673jsd" ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018716jsd" ], + "content" : [ "acm018805jsd", "acm018806jsd", "acm018807jsd", "acm018808jsd", "acm018809jsd", "acm018810jsd", "acm018811jsd", "acm018812jsd" ] + }, + "acm018814jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018814jsd", + "name" : "ARK", + "parentId" : "acm018819jsd", + "content" : [ "acm018824jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018815jsd" : { + "type" : "CodePackage", + "id" : "acm018815jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018816jsd" ] + }, + "acm018816jsd" : { + "type" : "CodePackage", + "id" : "acm018816jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018817jsd" ] + }, + "acm018817jsd" : { + "type" : "CodePackage", + "id" : "acm018817jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018818jsd" ] + }, + "acm018818jsd" : { + "type" : "CodePackage", + "id" : "acm018818jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018819jsd" ] + }, + "acm018819jsd" : { + "type" : "CodePackage", + "id" : "acm018819jsd", + "name" : "identifier", + "parentId" : "acm018120jsd", + "content" : [ "acm018814jsd", "acm018825jsd", "acm018844jsd", "acm018866jsd", "acm018874jsd", "acm018895jsd", "acm018907jsd", "acm018921jsd", "acm018931jsd", "acm028830jsd", "acm028862jsd", "acm028883jsd", "acm028902jsd", "acm028919jsd", "acm028930jsd" ] + }, + "acm018820jsd" : { + "type" : "ControlElement", + "id" : "acm018820jsd", + "name" : "ARK" + }, + "acm018821jsd" : { + "type" : "ControlElement", + "id" : "acm018821jsd", + "name" : "parse" + }, + "acm018822jsd" : { + "type" : "ControlElement", + "id" : "acm018822jsd", + "name" : "getNormalized" + }, + "acm018823jsd" : { + "type" : "ControlElement", + "id" : "acm018823jsd", + "name" : "getExternalURI" + }, + "acm018824jsd" : { + "type" : "ClassUnit", + "id" : "acm018824jsd", + "name" : "ARK", + "compilationUnitId" : "acm018814jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018873jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018824jsd" ], + "content" : [ "acm018820jsd", "acm018821jsd", "acm018822jsd", "acm018823jsd" ] + }, + "acm018825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018825jsd", + "name" : "ArXivIdentifier", + "parentId" : "acm018819jsd", + "content" : [ "acm018843jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018826jsd" : { + "type" : "CodePackage", + "id" : "acm018826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018827jsd" ] + }, + "acm018827jsd" : { + "type" : "CodePackage", + "id" : "acm018827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018828jsd" ] + }, + "acm018828jsd" : { + "type" : "CodePackage", + "id" : "acm018828jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018829jsd" ] + }, + "acm018829jsd" : { + "type" : "CodePackage", + "id" : "acm018829jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018830jsd" ] + }, + "acm018830jsd" : { + "type" : "CodePackage", + "id" : "acm018830jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018825jsd" ] + }, + "acm018831jsd" : { + "type" : "ControlElement", + "id" : "acm018831jsd", + "name" : "ArXivIdentifier" + }, + "acm018832jsd" : { + "type" : "ControlElement", + "id" : "acm018832jsd", + "name" : "ArXivIdentifier" + }, + "acm018833jsd" : { + "type" : "ControlElement", + "id" : "acm018833jsd", + "name" : "ArXivIdentifier" + }, + "acm018834jsd" : { + "type" : "ControlElement", + "id" : "acm018834jsd", + "name" : "parse" + }, + "acm018835jsd" : { + "type" : "ControlElement", + "id" : "acm018835jsd", + "name" : "getArXivIdentifier" + }, + "acm018836jsd" : { + "type" : "ControlElement", + "id" : "acm018836jsd", + "name" : "getClassification" + }, + "acm018837jsd" : { + "type" : "ControlElement", + "id" : "acm018837jsd", + "name" : "toString" + }, + "acm018838jsd" : { + "type" : "ControlElement", + "id" : "acm018838jsd", + "name" : "equals" + }, + "acm018839jsd" : { + "type" : "ControlElement", + "id" : "acm018839jsd", + "name" : "hashCode" + }, + "acm018840jsd" : { + "type" : "ControlElement", + "id" : "acm018840jsd", + "name" : "getNormalized" + }, + "acm018841jsd" : { + "type" : "ControlElement", + "id" : "acm018841jsd", + "name" : "getNormalizedWithoutVersion" + }, + "acm018842jsd" : { + "type" : "ControlElement", + "id" : "acm018842jsd", + "name" : "getExternalURI" + }, + "acm018843jsd" : { + "type" : "ClassUnit", + "id" : "acm018843jsd", + "name" : "ArXivIdentifier", + "compilationUnitId" : "acm018825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018873jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018843jsd" ], + "content" : [ "acm018831jsd", "acm018832jsd", "acm018833jsd", "acm018834jsd", "acm018835jsd", "acm018836jsd", "acm018837jsd", "acm018838jsd", "acm018839jsd", "acm018840jsd", "acm018841jsd", "acm018842jsd" ] + }, + "acm018844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018844jsd", + "name" : "DOI", + "parentId" : "acm018819jsd", + "content" : [ "acm018865jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018845jsd" : { + "type" : "CodePackage", + "id" : "acm018845jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018846jsd" ] + }, + "acm018846jsd" : { + "type" : "CodePackage", + "id" : "acm018846jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018847jsd" ] + }, + "acm018847jsd" : { + "type" : "CodePackage", + "id" : "acm018847jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018848jsd" ] + }, + "acm018848jsd" : { + "type" : "CodePackage", + "id" : "acm018848jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018849jsd" ] + }, + "acm018849jsd" : { + "type" : "CodePackage", + "id" : "acm018849jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018844jsd" ] + }, + "acm018850jsd" : { + "type" : "ControlElement", + "id" : "acm018850jsd", + "name" : "DOI" + }, + "acm018851jsd" : { + "type" : "ControlElement", + "id" : "acm018851jsd", + "name" : "parse" + }, + "acm018852jsd" : { + "type" : "ControlElement", + "id" : "acm018852jsd", + "name" : "isValid" + }, + "acm018853jsd" : { + "type" : "ControlElement", + "id" : "acm018853jsd", + "name" : "findInText" + }, + "acm018854jsd" : { + "type" : "ControlElement", + "id" : "acm018854jsd", + "name" : "toString" + }, + "acm018855jsd" : { + "type" : "ControlElement", + "id" : "acm018855jsd", + "name" : "getDOI" + }, + "acm018856jsd" : { + "type" : "ControlElement", + "id" : "acm018856jsd", + "name" : "isShortDoi" + }, + "acm018857jsd" : { + "type" : "ControlElement", + "id" : "acm018857jsd", + "name" : "getExternalURI" + }, + "acm018858jsd" : { + "type" : "ControlElement", + "id" : "acm018858jsd", + "name" : "getExternalURIWithCustomBase" + }, + "acm018859jsd" : { + "type" : "ControlElement", + "id" : "acm018859jsd", + "name" : "getExternalURIFromBase" + }, + "acm018860jsd" : { + "type" : "ControlElement", + "id" : "acm018860jsd", + "name" : "getURIAsASCIIString" + }, + "acm018861jsd" : { + "type" : "ControlElement", + "id" : "acm018861jsd", + "name" : "getDefaultField" + }, + "acm018862jsd" : { + "type" : "ControlElement", + "id" : "acm018862jsd", + "name" : "getNormalized" + }, + "acm018863jsd" : { + "type" : "ControlElement", + "id" : "acm018863jsd", + "name" : "equals" + }, + "acm018864jsd" : { + "type" : "ControlElement", + "id" : "acm018864jsd", + "name" : "hashCode" + }, + "acm018865jsd" : { + "type" : "ClassUnit", + "id" : "acm018865jsd", + "name" : "DOI", + "compilationUnitId" : "acm018844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018930jsd" ], + "datatypeReferencesIds" : [ "acm015489jsd", "acm018673jsd", "acm018865jsd" ], + "content" : [ "acm018850jsd", "acm018851jsd", "acm018852jsd", "acm018853jsd", "acm018854jsd", "acm018855jsd", "acm018856jsd", "acm018857jsd", "acm018858jsd", "acm018859jsd", "acm018860jsd", "acm018861jsd", "acm018862jsd", "acm018863jsd", "acm018864jsd" ] + }, + "acm018866jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018866jsd", + "name" : "EprintIdentifier", + "parentId" : "acm018819jsd", + "content" : [ "acm018873jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018867jsd" : { + "type" : "CodePackage", + "id" : "acm018867jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018868jsd" ] + }, + "acm018868jsd" : { + "type" : "CodePackage", + "id" : "acm018868jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018869jsd" ] + }, + "acm018869jsd" : { + "type" : "CodePackage", + "id" : "acm018869jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018870jsd" ] + }, + "acm018870jsd" : { + "type" : "CodePackage", + "id" : "acm018870jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018871jsd" ] + }, + "acm018871jsd" : { + "type" : "CodePackage", + "id" : "acm018871jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018866jsd" ] + }, + "acm018872jsd" : { + "type" : "ControlElement", + "id" : "acm018872jsd", + "name" : "getDefaultField" + }, + "acm018873jsd" : { + "type" : "ClassUnit", + "id" : "acm018873jsd", + "name" : "EprintIdentifier", + "compilationUnitId" : "acm018866jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018930jsd" ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm018872jsd" ] + }, + "acm018874jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018874jsd", + "name" : "ISBN", + "parentId" : "acm018819jsd", + "content" : [ "acm018894jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018875jsd" : { + "type" : "CodePackage", + "id" : "acm018875jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018876jsd" ] + }, + "acm018876jsd" : { + "type" : "CodePackage", + "id" : "acm018876jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018877jsd" ] + }, + "acm018877jsd" : { + "type" : "CodePackage", + "id" : "acm018877jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018878jsd" ] + }, + "acm018878jsd" : { + "type" : "CodePackage", + "id" : "acm018878jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018879jsd" ] + }, + "acm018879jsd" : { + "type" : "CodePackage", + "id" : "acm018879jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018874jsd" ] + }, + "acm018880jsd" : { + "type" : "ControlElement", + "id" : "acm018880jsd", + "name" : "ISBN" + }, + "acm018881jsd" : { + "type" : "ControlElement", + "id" : "acm018881jsd", + "name" : "parse" + }, + "acm018882jsd" : { + "type" : "ControlElement", + "id" : "acm018882jsd", + "name" : "isValidFormat" + }, + "acm018883jsd" : { + "type" : "ControlElement", + "id" : "acm018883jsd", + "name" : "isValidChecksum" + }, + "acm018884jsd" : { + "type" : "ControlElement", + "id" : "acm018884jsd", + "name" : "isIsbn10" + }, + "acm018885jsd" : { + "type" : "ControlElement", + "id" : "acm018885jsd", + "name" : "isIsbn13" + }, + "acm018886jsd" : { + "type" : "ControlElement", + "id" : "acm018886jsd", + "name" : "isbn10check" + }, + "acm018887jsd" : { + "type" : "ControlElement", + "id" : "acm018887jsd", + "name" : "isbn13check" + }, + "acm018888jsd" : { + "type" : "ControlElement", + "id" : "acm018888jsd", + "name" : "isValid" + }, + "acm018889jsd" : { + "type" : "ControlElement", + "id" : "acm018889jsd", + "name" : "getDefaultField" + }, + "acm018890jsd" : { + "type" : "ControlElement", + "id" : "acm018890jsd", + "name" : "getNormalized" + }, + "acm018891jsd" : { + "type" : "ControlElement", + "id" : "acm018891jsd", + "name" : "getExternalURI" + }, + "acm018892jsd" : { + "type" : "ControlElement", + "id" : "acm018892jsd", + "name" : "equals" + }, + "acm018893jsd" : { + "type" : "ControlElement", + "id" : "acm018893jsd", + "name" : "hashCode" + }, + "acm018894jsd" : { + "type" : "ClassUnit", + "id" : "acm018894jsd", + "name" : "ISBN", + "compilationUnitId" : "acm018874jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018930jsd" ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018894jsd" ], + "content" : [ "acm018880jsd", "acm018881jsd", "acm018882jsd", "acm018883jsd", "acm018884jsd", "acm018885jsd", "acm018886jsd", "acm018887jsd", "acm018888jsd", "acm018889jsd", "acm018890jsd", "acm018891jsd", "acm018892jsd", "acm018893jsd" ] + }, + "acm018895jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018895jsd", + "name" : "ISSN", + "parentId" : "acm018819jsd", + "content" : [ "acm018906jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018896jsd" : { + "type" : "CodePackage", + "id" : "acm018896jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018897jsd" ] + }, + "acm018897jsd" : { + "type" : "CodePackage", + "id" : "acm018897jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018898jsd" ] + }, + "acm018898jsd" : { + "type" : "CodePackage", + "id" : "acm018898jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018899jsd" ] + }, + "acm018899jsd" : { + "type" : "CodePackage", + "id" : "acm018899jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018900jsd" ] + }, + "acm018900jsd" : { + "type" : "CodePackage", + "id" : "acm018900jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018895jsd" ] + }, + "acm018901jsd" : { + "type" : "ControlElement", + "id" : "acm018901jsd", + "name" : "ISSN" + }, + "acm018902jsd" : { + "type" : "ControlElement", + "id" : "acm018902jsd", + "name" : "isValidFormat" + }, + "acm018903jsd" : { + "type" : "ControlElement", + "id" : "acm018903jsd", + "name" : "isCanBeCleaned" + }, + "acm018904jsd" : { + "type" : "ControlElement", + "id" : "acm018904jsd", + "name" : "getCleanedISSN" + }, + "acm018905jsd" : { + "type" : "ControlElement", + "id" : "acm018905jsd", + "name" : "isValidChecksum" + }, + "acm018906jsd" : { + "type" : "ClassUnit", + "id" : "acm018906jsd", + "name" : "ISSN", + "compilationUnitId" : "acm018895jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm018901jsd", "acm018902jsd", "acm018903jsd", "acm018904jsd", "acm018905jsd" ] + }, + "acm018907jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018907jsd", + "name" : "IacrEprint", + "parentId" : "acm018819jsd", + "content" : [ "acm018920jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018908jsd" : { + "type" : "CodePackage", + "id" : "acm018908jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018909jsd" ] + }, + "acm018909jsd" : { + "type" : "CodePackage", + "id" : "acm018909jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018910jsd" ] + }, + "acm018910jsd" : { + "type" : "CodePackage", + "id" : "acm018910jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018911jsd" ] + }, + "acm018911jsd" : { + "type" : "CodePackage", + "id" : "acm018911jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018912jsd" ] + }, + "acm018912jsd" : { + "type" : "CodePackage", + "id" : "acm018912jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018907jsd" ] + }, + "acm018913jsd" : { + "type" : "ControlElement", + "id" : "acm018913jsd", + "name" : "IacrEprint" + }, + "acm018914jsd" : { + "type" : "ControlElement", + "id" : "acm018914jsd", + "name" : "matchesExcepted" + }, + "acm018915jsd" : { + "type" : "ControlElement", + "id" : "acm018915jsd", + "name" : "parse" + }, + "acm018916jsd" : { + "type" : "ControlElement", + "id" : "acm018916jsd", + "name" : "getNormalized" + }, + "acm018917jsd" : { + "type" : "ControlElement", + "id" : "acm018917jsd", + "name" : "getDefaultField" + }, + "acm018918jsd" : { + "type" : "ControlElement", + "id" : "acm018918jsd", + "name" : "getExternalURI" + }, + "acm018919jsd" : { + "type" : "ControlElement", + "id" : "acm018919jsd", + "name" : "getAsciiUrl" + }, + "acm018920jsd" : { + "type" : "ClassUnit", + "id" : "acm018920jsd", + "name" : "IacrEprint", + "compilationUnitId" : "acm018907jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018930jsd" ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018920jsd" ], + "content" : [ "acm018913jsd", "acm018914jsd", "acm018915jsd", "acm018916jsd", "acm018917jsd", "acm018918jsd", "acm018919jsd" ] + }, + "acm018921jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018921jsd", + "name" : "Identifier", + "parentId" : "acm018819jsd", + "content" : [ "acm018930jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018922jsd" : { + "type" : "CodePackage", + "id" : "acm018922jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018923jsd" ] + }, + "acm018923jsd" : { + "type" : "CodePackage", + "id" : "acm018923jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018924jsd" ] + }, + "acm018924jsd" : { + "type" : "CodePackage", + "id" : "acm018924jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018925jsd" ] + }, + "acm018925jsd" : { + "type" : "CodePackage", + "id" : "acm018925jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018926jsd" ] + }, + "acm018926jsd" : { + "type" : "CodePackage", + "id" : "acm018926jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018921jsd" ] + }, + "acm018927jsd" : { + "type" : "ControlElement", + "id" : "acm018927jsd", + "name" : "getNormalized" + }, + "acm018928jsd" : { + "type" : "ControlElement", + "id" : "acm018928jsd", + "name" : "getDefaultField" + }, + "acm018929jsd" : { + "type" : "ControlElement", + "id" : "acm018929jsd", + "name" : "getExternalURI" + }, + "acm018930jsd" : { + "type" : "InterfaceUnit", + "id" : "acm018930jsd", + "name" : "Identifier", + "compilationUnitId" : "acm018921jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd" ], + "content" : [ "acm018927jsd", "acm018928jsd", "acm018929jsd" ] + }, + "acm018931jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018931jsd", + "name" : "MathSciNetId", + "parentId" : "acm018819jsd", + "content" : [ "acm018945jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018932jsd" : { + "type" : "CodePackage", + "id" : "acm018932jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018933jsd" ] + }, + "acm018933jsd" : { + "type" : "CodePackage", + "id" : "acm018933jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018934jsd" ] + }, + "acm018934jsd" : { + "type" : "CodePackage", + "id" : "acm018934jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018935jsd" ] + }, + "acm018935jsd" : { + "type" : "CodePackage", + "id" : "acm018935jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018936jsd" ] + }, + "acm018936jsd" : { + "type" : "CodePackage", + "id" : "acm018936jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm018931jsd" ] + }, + "acm018937jsd" : { + "type" : "ControlElement", + "id" : "acm018937jsd", + "name" : "MathSciNetId" + }, + "acm018938jsd" : { + "type" : "ControlElement", + "id" : "acm018938jsd", + "name" : "parse" + }, + "acm018939jsd" : { + "type" : "ControlElement", + "id" : "acm018939jsd", + "name" : "equals" + }, + "acm018940jsd" : { + "type" : "ControlElement", + "id" : "acm018940jsd", + "name" : "hashCode" + }, + "acm018941jsd" : { + "type" : "ControlElement", + "id" : "acm018941jsd", + "name" : "toString" + }, + "acm018942jsd" : { + "type" : "ControlElement", + "id" : "acm018942jsd", + "name" : "getExternalURI" + }, + "acm018943jsd" : { + "type" : "ControlElement", + "id" : "acm018943jsd", + "name" : "getDefaultField" + }, + "acm018944jsd" : { + "type" : "ControlElement", + "id" : "acm018944jsd", + "name" : "getNormalized" + }, + "acm018945jsd" : { + "type" : "ClassUnit", + "id" : "acm018945jsd", + "name" : "MathSciNetId", + "compilationUnitId" : "acm018931jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm018930jsd" ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm018945jsd" ], + "content" : [ "acm018937jsd", "acm018938jsd", "acm018939jsd", "acm018940jsd", "acm018941jsd", "acm018942jsd", "acm018943jsd", "acm018944jsd" ] + }, + "acm018946jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018946jsd", + "name" : "BiblatexAPAEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm018952jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018947jsd" : { + "type" : "CodePackage", + "id" : "acm018947jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018948jsd" ] + }, + "acm018948jsd" : { + "type" : "CodePackage", + "id" : "acm018948jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018949jsd" ] + }, + "acm018949jsd" : { + "type" : "CodePackage", + "id" : "acm018949jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018950jsd" ] + }, + "acm018950jsd" : { + "type" : "CodePackage", + "id" : "acm018950jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018951jsd" ] + }, + "acm018951jsd" : { + "type" : "CodePackage", + "id" : "acm018951jsd", + "name" : "types", + "parentId" : "acm018120jsd", + "content" : [ "acm018946jsd", "acm018953jsd", "acm018964jsd", "acm018971jsd", "acm018982jsd", "acm018989jsd", "acm018997jsd", "acm019006jsd", "acm019019jsd", "acm019030jsd", "acm019038jsd", "acm019048jsd", "acm019059jsd", "acm019067jsd" ] + }, + "acm018952jsd" : { + "type" : "ClassUnit", + "id" : "acm018952jsd", + "name" : "BiblatexAPAEntryTypeDefinitions", + "compilationUnitId" : "acm018946jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd" ], + "content" : [ ] + }, + "acm018953jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018953jsd", + "name" : "BiblatexApaEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm018963jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018954jsd" : { + "type" : "CodePackage", + "id" : "acm018954jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018955jsd" ] + }, + "acm018955jsd" : { + "type" : "CodePackage", + "id" : "acm018955jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018956jsd" ] + }, + "acm018956jsd" : { + "type" : "CodePackage", + "id" : "acm018956jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018957jsd" ] + }, + "acm018957jsd" : { + "type" : "CodePackage", + "id" : "acm018957jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018958jsd" ] + }, + "acm018958jsd" : { + "type" : "CodePackage", + "id" : "acm018958jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018953jsd" ] + }, + "acm018959jsd" : { + "type" : "ControlElement", + "id" : "acm018959jsd", + "name" : "BiblatexApaEntryType" + }, + "acm018960jsd" : { + "type" : "ControlElement", + "id" : "acm018960jsd", + "name" : "getName" + }, + "acm018961jsd" : { + "type" : "ControlElement", + "id" : "acm018961jsd", + "name" : "getDisplayName" + }, + "acm018962jsd" : { + "type" : "ControlElement", + "id" : "acm018962jsd", + "name" : "fromName" + }, + "acm018963jsd" : { + "type" : "ClassUnit", + "id" : "acm018963jsd", + "name" : "BiblatexApaEntryType", + "compilationUnitId" : "acm018953jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ "acm018963jsd" ], + "content" : [ "acm018959jsd", "acm018960jsd", "acm018961jsd", "acm018962jsd" ] + }, + "acm018964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018964jsd", + "name" : "BiblatexEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm018970jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018965jsd" : { + "type" : "CodePackage", + "id" : "acm018965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018966jsd" ] + }, + "acm018966jsd" : { + "type" : "CodePackage", + "id" : "acm018966jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018967jsd" ] + }, + "acm018967jsd" : { + "type" : "CodePackage", + "id" : "acm018967jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018968jsd" ] + }, + "acm018968jsd" : { + "type" : "CodePackage", + "id" : "acm018968jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018969jsd" ] + }, + "acm018969jsd" : { + "type" : "CodePackage", + "id" : "acm018969jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018964jsd" ] + }, + "acm018970jsd" : { + "type" : "ClassUnit", + "id" : "acm018970jsd", + "name" : "BiblatexEntryTypeDefinitions", + "compilationUnitId" : "acm018964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018754jsd" ], + "content" : [ ] + }, + "acm018971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018971jsd", + "name" : "BiblatexSoftwareEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm018981jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018972jsd" : { + "type" : "CodePackage", + "id" : "acm018972jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018973jsd" ] + }, + "acm018973jsd" : { + "type" : "CodePackage", + "id" : "acm018973jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018974jsd" ] + }, + "acm018974jsd" : { + "type" : "CodePackage", + "id" : "acm018974jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018975jsd" ] + }, + "acm018975jsd" : { + "type" : "CodePackage", + "id" : "acm018975jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018976jsd" ] + }, + "acm018976jsd" : { + "type" : "CodePackage", + "id" : "acm018976jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018971jsd" ] + }, + "acm018977jsd" : { + "type" : "ControlElement", + "id" : "acm018977jsd", + "name" : "BiblatexSoftwareEntryType" + }, + "acm018978jsd" : { + "type" : "ControlElement", + "id" : "acm018978jsd", + "name" : "fromName" + }, + "acm018979jsd" : { + "type" : "ControlElement", + "id" : "acm018979jsd", + "name" : "getName" + }, + "acm018980jsd" : { + "type" : "ControlElement", + "id" : "acm018980jsd", + "name" : "getDisplayName" + }, + "acm018981jsd" : { + "type" : "ClassUnit", + "id" : "acm018981jsd", + "name" : "BiblatexSoftwareEntryType", + "compilationUnitId" : "acm018971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ "acm018981jsd" ], + "content" : [ "acm018977jsd", "acm018978jsd", "acm018979jsd", "acm018980jsd" ] + }, + "acm018982jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018982jsd", + "name" : "BiblatexSoftwareEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm018988jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018983jsd" : { + "type" : "CodePackage", + "id" : "acm018983jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018984jsd" ] + }, + "acm018984jsd" : { + "type" : "CodePackage", + "id" : "acm018984jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018985jsd" ] + }, + "acm018985jsd" : { + "type" : "CodePackage", + "id" : "acm018985jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018986jsd" ] + }, + "acm018986jsd" : { + "type" : "CodePackage", + "id" : "acm018986jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018987jsd" ] + }, + "acm018987jsd" : { + "type" : "CodePackage", + "id" : "acm018987jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018982jsd" ] + }, + "acm018988jsd" : { + "type" : "ClassUnit", + "id" : "acm018988jsd", + "name" : "BiblatexSoftwareEntryTypeDefinitions", + "compilationUnitId" : "acm018982jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018754jsd" ], + "content" : [ ] + }, + "acm018989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018989jsd", + "name" : "BibtexEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm018996jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018990jsd" : { + "type" : "CodePackage", + "id" : "acm018990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018991jsd" ] + }, + "acm018991jsd" : { + "type" : "CodePackage", + "id" : "acm018991jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm018992jsd" ] + }, + "acm018992jsd" : { + "type" : "CodePackage", + "id" : "acm018992jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm018993jsd" ] + }, + "acm018993jsd" : { + "type" : "CodePackage", + "id" : "acm018993jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm018994jsd" ] + }, + "acm018994jsd" : { + "type" : "CodePackage", + "id" : "acm018994jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018989jsd" ] + }, + "acm018995jsd" : { + "type" : "ControlElement", + "id" : "acm018995jsd", + "name" : "BibtexEntryTypeDefinitions" + }, + "acm018996jsd" : { + "type" : "ClassUnit", + "id" : "acm018996jsd", + "name" : "BibtexEntryTypeDefinitions", + "compilationUnitId" : "acm018989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018754jsd" ], + "content" : [ "acm018995jsd" ] + }, + "acm018997jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm018997jsd", + "name" : "EntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm019005jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm018998jsd" : { + "type" : "CodePackage", + "id" : "acm018998jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm018999jsd" ] + }, + "acm018999jsd" : { + "type" : "CodePackage", + "id" : "acm018999jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019000jsd" ] + }, + "acm019000jsd" : { + "type" : "CodePackage", + "id" : "acm019000jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019001jsd" ] + }, + "acm019001jsd" : { + "type" : "CodePackage", + "id" : "acm019001jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019002jsd" ] + }, + "acm019002jsd" : { + "type" : "CodePackage", + "id" : "acm019002jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm018997jsd" ] + }, + "acm019003jsd" : { + "type" : "ControlElement", + "id" : "acm019003jsd", + "name" : "getName" + }, + "acm019004jsd" : { + "type" : "ControlElement", + "id" : "acm019004jsd", + "name" : "getDisplayName" + }, + "acm019005jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019005jsd", + "name" : "EntryType", + "compilationUnitId" : "acm018997jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019003jsd", "acm019004jsd" ] + }, + "acm019006jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019006jsd", + "name" : "EntryTypeFactory", + "parentId" : "acm018951jsd", + "content" : [ "acm019018jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019007jsd" : { + "type" : "CodePackage", + "id" : "acm019007jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019008jsd" ] + }, + "acm019008jsd" : { + "type" : "CodePackage", + "id" : "acm019008jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019009jsd" ] + }, + "acm019009jsd" : { + "type" : "CodePackage", + "id" : "acm019009jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019010jsd" ] + }, + "acm019010jsd" : { + "type" : "CodePackage", + "id" : "acm019010jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019011jsd" ] + }, + "acm019011jsd" : { + "type" : "CodePackage", + "id" : "acm019011jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019006jsd" ] + }, + "acm019012jsd" : { + "type" : "ControlElement", + "id" : "acm019012jsd", + "name" : "EntryTypeFactory" + }, + "acm019013jsd" : { + "type" : "ControlElement", + "id" : "acm019013jsd", + "name" : "isEqualNameAndFieldBased" + }, + "acm019014jsd" : { + "type" : "ControlElement", + "id" : "acm019014jsd", + "name" : "isExclusiveBiblatex" + }, + "acm019015jsd" : { + "type" : "ControlElement", + "id" : "acm019015jsd", + "name" : "isBibtex" + }, + "acm019016jsd" : { + "type" : "ControlElement", + "id" : "acm019016jsd", + "name" : "isBiblatex" + }, + "acm019017jsd" : { + "type" : "ControlElement", + "id" : "acm019017jsd", + "name" : "parse" + }, + "acm019018jsd" : { + "type" : "ClassUnit", + "id" : "acm019018jsd", + "name" : "EntryTypeFactory", + "compilationUnitId" : "acm019006jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm019005jsd", "acm019079jsd" ], + "content" : [ "acm019012jsd", "acm019013jsd", "acm019014jsd", "acm019015jsd", "acm019016jsd", "acm019017jsd" ] + }, + "acm019019jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019019jsd", + "name" : "IEEETranEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm019029jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019020jsd" : { + "type" : "CodePackage", + "id" : "acm019020jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019021jsd" ] + }, + "acm019021jsd" : { + "type" : "CodePackage", + "id" : "acm019021jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019022jsd" ] + }, + "acm019022jsd" : { + "type" : "CodePackage", + "id" : "acm019022jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019023jsd" ] + }, + "acm019023jsd" : { + "type" : "CodePackage", + "id" : "acm019023jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019024jsd" ] + }, + "acm019024jsd" : { + "type" : "CodePackage", + "id" : "acm019024jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019019jsd" ] + }, + "acm019025jsd" : { + "type" : "ControlElement", + "id" : "acm019025jsd", + "name" : "IEEETranEntryType" + }, + "acm019026jsd" : { + "type" : "ControlElement", + "id" : "acm019026jsd", + "name" : "fromName" + }, + "acm019027jsd" : { + "type" : "ControlElement", + "id" : "acm019027jsd", + "name" : "getName" + }, + "acm019028jsd" : { + "type" : "ControlElement", + "id" : "acm019028jsd", + "name" : "getDisplayName" + }, + "acm019029jsd" : { + "type" : "ClassUnit", + "id" : "acm019029jsd", + "name" : "IEEETranEntryType", + "compilationUnitId" : "acm019019jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ "acm019029jsd" ], + "content" : [ "acm019025jsd", "acm019026jsd", "acm019027jsd", "acm019028jsd" ] + }, + "acm019030jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019030jsd", + "name" : "IEEETranEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm019037jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019031jsd" : { + "type" : "CodePackage", + "id" : "acm019031jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019032jsd" ] + }, + "acm019032jsd" : { + "type" : "CodePackage", + "id" : "acm019032jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019033jsd" ] + }, + "acm019033jsd" : { + "type" : "CodePackage", + "id" : "acm019033jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019034jsd" ] + }, + "acm019034jsd" : { + "type" : "CodePackage", + "id" : "acm019034jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019035jsd" ] + }, + "acm019035jsd" : { + "type" : "CodePackage", + "id" : "acm019035jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019030jsd" ] + }, + "acm019036jsd" : { + "type" : "ControlElement", + "id" : "acm019036jsd", + "name" : "IEEETranEntryTypeDefinitions" + }, + "acm019037jsd" : { + "type" : "ClassUnit", + "id" : "acm019037jsd", + "name" : "IEEETranEntryTypeDefinitions", + "compilationUnitId" : "acm019030jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018754jsd" ], + "content" : [ "acm019036jsd" ] + }, + "acm019038jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019038jsd", + "name" : "StandardEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm019047jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019039jsd" : { + "type" : "CodePackage", + "id" : "acm019039jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019040jsd" ] + }, + "acm019040jsd" : { + "type" : "CodePackage", + "id" : "acm019040jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019041jsd" ] + }, + "acm019041jsd" : { + "type" : "CodePackage", + "id" : "acm019041jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019042jsd" ] + }, + "acm019042jsd" : { + "type" : "CodePackage", + "id" : "acm019042jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019043jsd" ] + }, + "acm019043jsd" : { + "type" : "CodePackage", + "id" : "acm019043jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019038jsd" ] + }, + "acm019044jsd" : { + "type" : "ControlElement", + "id" : "acm019044jsd", + "name" : "StandardEntryType" + }, + "acm019045jsd" : { + "type" : "ControlElement", + "id" : "acm019045jsd", + "name" : "getName" + }, + "acm019046jsd" : { + "type" : "ControlElement", + "id" : "acm019046jsd", + "name" : "getDisplayName" + }, + "acm019047jsd" : { + "type" : "ClassUnit", + "id" : "acm019047jsd", + "name" : "StandardEntryType", + "compilationUnitId" : "acm019038jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019044jsd", "acm019045jsd", "acm019046jsd" ] + }, + "acm019048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019048jsd", + "name" : "SystematicLiteratureReviewStudyEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm019058jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019049jsd" : { + "type" : "CodePackage", + "id" : "acm019049jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019050jsd" ] + }, + "acm019050jsd" : { + "type" : "CodePackage", + "id" : "acm019050jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019051jsd" ] + }, + "acm019051jsd" : { + "type" : "CodePackage", + "id" : "acm019051jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019052jsd" ] + }, + "acm019052jsd" : { + "type" : "CodePackage", + "id" : "acm019052jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019053jsd" ] + }, + "acm019053jsd" : { + "type" : "CodePackage", + "id" : "acm019053jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019048jsd" ] + }, + "acm019054jsd" : { + "type" : "ControlElement", + "id" : "acm019054jsd", + "name" : "SystematicLiteratureReviewStudyEntryType" + }, + "acm019055jsd" : { + "type" : "ControlElement", + "id" : "acm019055jsd", + "name" : "fromName" + }, + "acm019056jsd" : { + "type" : "ControlElement", + "id" : "acm019056jsd", + "name" : "getName" + }, + "acm019057jsd" : { + "type" : "ControlElement", + "id" : "acm019057jsd", + "name" : "getDisplayName" + }, + "acm019058jsd" : { + "type" : "ClassUnit", + "id" : "acm019058jsd", + "name" : "SystematicLiteratureReviewStudyEntryType", + "compilationUnitId" : "acm019048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ "acm019058jsd" ], + "content" : [ "acm019054jsd", "acm019055jsd", "acm019056jsd", "acm019057jsd" ] + }, + "acm019059jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019059jsd", + "name" : "SystematicLiteratureReviewStudyEntryTypeDefinitions", + "parentId" : "acm018951jsd", + "content" : [ "acm019066jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019060jsd" : { + "type" : "CodePackage", + "id" : "acm019060jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019061jsd" ] + }, + "acm019061jsd" : { + "type" : "CodePackage", + "id" : "acm019061jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019062jsd" ] + }, + "acm019062jsd" : { + "type" : "CodePackage", + "id" : "acm019062jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019063jsd" ] + }, + "acm019063jsd" : { + "type" : "CodePackage", + "id" : "acm019063jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019064jsd" ] + }, + "acm019064jsd" : { + "type" : "CodePackage", + "id" : "acm019064jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019059jsd" ] + }, + "acm019065jsd" : { + "type" : "ControlElement", + "id" : "acm019065jsd", + "name" : "SystematicLiteratureReviewStudyEntryTypeDefinitions" + }, + "acm019066jsd" : { + "type" : "ClassUnit", + "id" : "acm019066jsd", + "name" : "SystematicLiteratureReviewStudyEntryTypeDefinitions", + "compilationUnitId" : "acm019059jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018289jsd", "acm018306jsd", "acm018813jsd" ], + "content" : [ "acm019065jsd" ] + }, + "acm019067jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019067jsd", + "name" : "UnknownEntryType", + "parentId" : "acm018951jsd", + "content" : [ "acm019079jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "entry", "types" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019068jsd" : { + "type" : "CodePackage", + "id" : "acm019068jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019069jsd" ] + }, + "acm019069jsd" : { + "type" : "CodePackage", + "id" : "acm019069jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019070jsd" ] + }, + "acm019070jsd" : { + "type" : "CodePackage", + "id" : "acm019070jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019071jsd" ] + }, + "acm019071jsd" : { + "type" : "CodePackage", + "id" : "acm019071jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm019072jsd" ] + }, + "acm019072jsd" : { + "type" : "CodePackage", + "id" : "acm019072jsd", + "name" : "types", + "parentId" : null, + "content" : [ "acm019067jsd" ] + }, + "acm019073jsd" : { + "type" : "ControlElement", + "id" : "acm019073jsd", + "name" : "UnknownEntryType" + }, + "acm019074jsd" : { + "type" : "ControlElement", + "id" : "acm019074jsd", + "name" : "toString" + }, + "acm019075jsd" : { + "type" : "ControlElement", + "id" : "acm019075jsd", + "name" : "getName" + }, + "acm019076jsd" : { + "type" : "ControlElement", + "id" : "acm019076jsd", + "name" : "getDisplayName" + }, + "acm019077jsd" : { + "type" : "ControlElement", + "id" : "acm019077jsd", + "name" : "equals" + }, + "acm019078jsd" : { + "type" : "ControlElement", + "id" : "acm019078jsd", + "name" : "hashCode" + }, + "acm019079jsd" : { + "type" : "ClassUnit", + "id" : "acm019079jsd", + "name" : "UnknownEntryType", + "compilationUnitId" : "acm019067jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019005jsd" ], + "datatypeReferencesIds" : [ "acm019079jsd" ], + "content" : [ "acm019073jsd", "acm019074jsd", "acm019075jsd", "acm019076jsd", "acm019077jsd", "acm019078jsd" ] + }, + "acm019080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019080jsd", + "name" : "AbstractGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019107jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019081jsd" : { + "type" : "CodePackage", + "id" : "acm019081jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019082jsd" ] + }, + "acm019082jsd" : { + "type" : "CodePackage", + "id" : "acm019082jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019083jsd" ] + }, + "acm019083jsd" : { + "type" : "CodePackage", + "id" : "acm019083jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019084jsd" ] + }, + "acm019084jsd" : { + "type" : "CodePackage", + "id" : "acm019084jsd", + "name" : "groups", + "parentId" : "acm017861jsd", + "content" : [ "acm019080jsd", "acm019108jsd", "acm019120jsd", "acm019131jsd", "acm019146jsd", "acm019158jsd", "acm019172jsd", "acm019182jsd", "acm019191jsd", "acm019222jsd", "acm019235jsd", "acm019245jsd", "acm019257jsd", "acm019272jsd", "acm019294jsd", "acm028951jsd", "acm028960jsd", "acm028971jsd", "acm028987jsd", "acm029022jsd", "acm029032jsd", "acm029042jsd", "acm019332jsd" ] + }, + "acm019085jsd" : { + "type" : "ControlElement", + "id" : "acm019085jsd", + "name" : "AbstractGroup" + }, + "acm019086jsd" : { + "type" : "ControlElement", + "id" : "acm019086jsd", + "name" : "toString" + }, + "acm019087jsd" : { + "type" : "ControlElement", + "id" : "acm019087jsd", + "name" : "equals" + }, + "acm019088jsd" : { + "type" : "ControlElement", + "id" : "acm019088jsd", + "name" : "hashCode" + }, + "acm019089jsd" : { + "type" : "ControlElement", + "id" : "acm019089jsd", + "name" : "getColor" + }, + "acm019090jsd" : { + "type" : "ControlElement", + "id" : "acm019090jsd", + "name" : "setColor" + }, + "acm019091jsd" : { + "type" : "ControlElement", + "id" : "acm019091jsd", + "name" : "setColor" + }, + "acm019092jsd" : { + "type" : "ControlElement", + "id" : "acm019092jsd", + "name" : "isExpanded" + }, + "acm019093jsd" : { + "type" : "ControlElement", + "id" : "acm019093jsd", + "name" : "setExpanded" + }, + "acm019094jsd" : { + "type" : "ControlElement", + "id" : "acm019094jsd", + "name" : "getDescription" + }, + "acm019095jsd" : { + "type" : "ControlElement", + "id" : "acm019095jsd", + "name" : "setDescription" + }, + "acm019096jsd" : { + "type" : "ControlElement", + "id" : "acm019096jsd", + "name" : "getIconName" + }, + "acm019097jsd" : { + "type" : "ControlElement", + "id" : "acm019097jsd", + "name" : "setIconName" + }, + "acm019098jsd" : { + "type" : "ControlElement", + "id" : "acm019098jsd", + "name" : "getHierarchicalContext" + }, + "acm019099jsd" : { + "type" : "ControlElement", + "id" : "acm019099jsd", + "name" : "getName" + }, + "acm019100jsd" : { + "type" : "ControlElement", + "id" : "acm019100jsd", + "name" : "nameProperty" + }, + "acm019101jsd" : { + "type" : "ControlElement", + "id" : "acm019101jsd", + "name" : "contains" + }, + "acm019102jsd" : { + "type" : "ControlElement", + "id" : "acm019102jsd", + "name" : "isMatch" + }, + "acm019103jsd" : { + "type" : "ControlElement", + "id" : "acm019103jsd", + "name" : "containsAny" + }, + "acm019104jsd" : { + "type" : "ControlElement", + "id" : "acm019104jsd", + "name" : "containsAll" + }, + "acm019105jsd" : { + "type" : "ControlElement", + "id" : "acm019105jsd", + "name" : "isDynamic" + }, + "acm019106jsd" : { + "type" : "ControlElement", + "id" : "acm019106jsd", + "name" : "deepCopy" + }, + "acm019107jsd" : { + "type" : "ClassUnit", + "id" : "acm019107jsd", + "name" : "AbstractGroup", + "compilationUnitId" : "acm019080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019107jsd", "acm019190jsd" ], + "content" : [ "acm019085jsd", "acm019086jsd", "acm019087jsd", "acm019088jsd", "acm019089jsd", "acm019090jsd", "acm019091jsd", "acm019092jsd", "acm019093jsd", "acm019094jsd", "acm019095jsd", "acm019096jsd", "acm019097jsd", "acm019098jsd", "acm019099jsd", "acm019100jsd", "acm019101jsd", "acm019102jsd", "acm019103jsd", "acm019104jsd", "acm019105jsd", "acm019106jsd" ] + }, + "acm019108jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019108jsd", + "name" : "AllEntriesGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019119jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019109jsd" : { + "type" : "CodePackage", + "id" : "acm019109jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019110jsd" ] + }, + "acm019110jsd" : { + "type" : "CodePackage", + "id" : "acm019110jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019111jsd" ] + }, + "acm019111jsd" : { + "type" : "CodePackage", + "id" : "acm019111jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019112jsd" ] + }, + "acm019112jsd" : { + "type" : "CodePackage", + "id" : "acm019112jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019108jsd" ] + }, + "acm019113jsd" : { + "type" : "ControlElement", + "id" : "acm019113jsd", + "name" : "AllEntriesGroup" + }, + "acm019114jsd" : { + "type" : "ControlElement", + "id" : "acm019114jsd", + "name" : "deepCopy" + }, + "acm019115jsd" : { + "type" : "ControlElement", + "id" : "acm019115jsd", + "name" : "equals" + }, + "acm019116jsd" : { + "type" : "ControlElement", + "id" : "acm019116jsd", + "name" : "contains" + }, + "acm019117jsd" : { + "type" : "ControlElement", + "id" : "acm019117jsd", + "name" : "isDynamic" + }, + "acm019118jsd" : { + "type" : "ControlElement", + "id" : "acm019118jsd", + "name" : "hashCode" + }, + "acm019119jsd" : { + "type" : "ClassUnit", + "id" : "acm019119jsd", + "name" : "AllEntriesGroup", + "compilationUnitId" : "acm019108jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019107jsd", "acm019119jsd" ], + "content" : [ "acm019113jsd", "acm019114jsd", "acm019115jsd", "acm019116jsd", "acm019117jsd", "acm019118jsd" ] + }, + "acm019120jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019120jsd", + "name" : "AutomaticGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019130jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019121jsd" : { + "type" : "CodePackage", + "id" : "acm019121jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019122jsd" ] + }, + "acm019122jsd" : { + "type" : "CodePackage", + "id" : "acm019122jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019123jsd" ] + }, + "acm019123jsd" : { + "type" : "CodePackage", + "id" : "acm019123jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019124jsd" ] + }, + "acm019124jsd" : { + "type" : "CodePackage", + "id" : "acm019124jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019120jsd" ] + }, + "acm019125jsd" : { + "type" : "ControlElement", + "id" : "acm019125jsd", + "name" : "AutomaticGroup" + }, + "acm019126jsd" : { + "type" : "ControlElement", + "id" : "acm019126jsd", + "name" : "contains" + }, + "acm019127jsd" : { + "type" : "ControlElement", + "id" : "acm019127jsd", + "name" : "isDynamic" + }, + "acm019128jsd" : { + "type" : "ControlElement", + "id" : "acm019128jsd", + "name" : "createSubgroups" + }, + "acm019129jsd" : { + "type" : "ControlElement", + "id" : "acm019129jsd", + "name" : "createSubgroups" + }, + "acm019130jsd" : { + "type" : "ClassUnit", + "id" : "acm019130jsd", + "name" : "AutomaticGroup", + "compilationUnitId" : "acm019120jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019190jsd", "acm019221jsd" ], + "content" : [ "acm019125jsd", "acm019126jsd", "acm019127jsd", "acm019128jsd", "acm019129jsd" ] + }, + "acm019131jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019131jsd", + "name" : "AutomaticKeywordGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019145jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019132jsd" : { + "type" : "CodePackage", + "id" : "acm019132jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019133jsd" ] + }, + "acm019133jsd" : { + "type" : "CodePackage", + "id" : "acm019133jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019134jsd" ] + }, + "acm019134jsd" : { + "type" : "CodePackage", + "id" : "acm019134jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019135jsd" ] + }, + "acm019135jsd" : { + "type" : "CodePackage", + "id" : "acm019135jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019131jsd" ] + }, + "acm019136jsd" : { + "type" : "ControlElement", + "id" : "acm019136jsd", + "name" : "AutomaticKeywordGroup" + }, + "acm019137jsd" : { + "type" : "ControlElement", + "id" : "acm019137jsd", + "name" : "getKeywordHierarchicalDelimiter" + }, + "acm019138jsd" : { + "type" : "ControlElement", + "id" : "acm019138jsd", + "name" : "getKeywordDelimiter" + }, + "acm019139jsd" : { + "type" : "ControlElement", + "id" : "acm019139jsd", + "name" : "getField" + }, + "acm019140jsd" : { + "type" : "ControlElement", + "id" : "acm019140jsd", + "name" : "deepCopy" + }, + "acm019141jsd" : { + "type" : "ControlElement", + "id" : "acm019141jsd", + "name" : "equals" + }, + "acm019142jsd" : { + "type" : "ControlElement", + "id" : "acm019142jsd", + "name" : "hashCode" + }, + "acm019143jsd" : { + "type" : "ControlElement", + "id" : "acm019143jsd", + "name" : "createSubgroups" + }, + "acm019144jsd" : { + "type" : "ControlElement", + "id" : "acm019144jsd", + "name" : "createGroup" + }, + "acm019145jsd" : { + "type" : "ClassUnit", + "id" : "acm019145jsd", + "name" : "AutomaticKeywordGroup", + "compilationUnitId" : "acm019131jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019130jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018443jsd", "acm018479jsd", "acm018673jsd", "acm019107jsd", "acm019145jsd", "acm019190jsd", "acm019221jsd", "acm019315jsd" ], + "content" : [ "acm019136jsd", "acm019137jsd", "acm019138jsd", "acm019139jsd", "acm019140jsd", "acm019141jsd", "acm019142jsd", "acm019143jsd", "acm019144jsd" ] + }, + "acm019146jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019146jsd", + "name" : "AutomaticPersonsGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019157jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019147jsd" : { + "type" : "CodePackage", + "id" : "acm019147jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019148jsd" ] + }, + "acm019148jsd" : { + "type" : "CodePackage", + "id" : "acm019148jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019149jsd" ] + }, + "acm019149jsd" : { + "type" : "CodePackage", + "id" : "acm019149jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019150jsd" ] + }, + "acm019150jsd" : { + "type" : "CodePackage", + "id" : "acm019150jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019146jsd" ] + }, + "acm019151jsd" : { + "type" : "ControlElement", + "id" : "acm019151jsd", + "name" : "AutomaticPersonsGroup" + }, + "acm019152jsd" : { + "type" : "ControlElement", + "id" : "acm019152jsd", + "name" : "equals" + }, + "acm019153jsd" : { + "type" : "ControlElement", + "id" : "acm019153jsd", + "name" : "hashCode" + }, + "acm019154jsd" : { + "type" : "ControlElement", + "id" : "acm019154jsd", + "name" : "deepCopy" + }, + "acm019155jsd" : { + "type" : "ControlElement", + "id" : "acm019155jsd", + "name" : "createSubgroups" + }, + "acm019156jsd" : { + "type" : "ControlElement", + "id" : "acm019156jsd", + "name" : "getField" + }, + "acm019157jsd" : { + "type" : "ClassUnit", + "id" : "acm019157jsd", + "name" : "AutomaticPersonsGroup", + "compilationUnitId" : "acm019146jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019130jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm019107jsd", "acm019157jsd", "acm019190jsd", "acm019221jsd" ], + "content" : [ "acm019151jsd", "acm019152jsd", "acm019153jsd", "acm019154jsd", "acm019155jsd", "acm019156jsd" ] + }, + "acm019158jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019158jsd", + "name" : "ExplicitGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019171jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019159jsd" : { + "type" : "CodePackage", + "id" : "acm019159jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019160jsd" ] + }, + "acm019160jsd" : { + "type" : "CodePackage", + "id" : "acm019160jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019161jsd" ] + }, + "acm019161jsd" : { + "type" : "CodePackage", + "id" : "acm019161jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019162jsd" ] + }, + "acm019162jsd" : { + "type" : "CodePackage", + "id" : "acm019162jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019158jsd" ] + }, + "acm019163jsd" : { + "type" : "ControlElement", + "id" : "acm019163jsd", + "name" : "ExplicitGroup" + }, + "acm019164jsd" : { + "type" : "ControlElement", + "id" : "acm019164jsd", + "name" : "addLegacyEntryKey" + }, + "acm019165jsd" : { + "type" : "ControlElement", + "id" : "acm019165jsd", + "name" : "deepCopy" + }, + "acm019166jsd" : { + "type" : "ControlElement", + "id" : "acm019166jsd", + "name" : "equals" + }, + "acm019167jsd" : { + "type" : "ControlElement", + "id" : "acm019167jsd", + "name" : "clearLegacyEntryKeys" + }, + "acm019168jsd" : { + "type" : "ControlElement", + "id" : "acm019168jsd", + "name" : "getLegacyEntryKeys" + }, + "acm019169jsd" : { + "type" : "ControlElement", + "id" : "acm019169jsd", + "name" : "hashCode" + }, + "acm019170jsd" : { + "type" : "ControlElement", + "id" : "acm019170jsd", + "name" : "isDynamic" + }, + "acm019171jsd" : { + "type" : "ClassUnit", + "id" : "acm019171jsd", + "name" : "ExplicitGroup", + "compilationUnitId" : "acm019158jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019315jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019107jsd", "acm019171jsd", "acm019190jsd" ], + "content" : [ "acm019163jsd", "acm019164jsd", "acm019165jsd", "acm019166jsd", "acm019167jsd", "acm019168jsd", "acm019169jsd", "acm019170jsd" ] + }, + "acm019172jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019172jsd", + "name" : "GroupEntryChanger", + "parentId" : "acm019084jsd", + "content" : [ "acm019181jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019173jsd" : { + "type" : "CodePackage", + "id" : "acm019173jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019174jsd" ] + }, + "acm019174jsd" : { + "type" : "CodePackage", + "id" : "acm019174jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019175jsd" ] + }, + "acm019175jsd" : { + "type" : "CodePackage", + "id" : "acm019175jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019176jsd" ] + }, + "acm019176jsd" : { + "type" : "CodePackage", + "id" : "acm019176jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019172jsd" ] + }, + "acm019177jsd" : { + "type" : "ControlElement", + "id" : "acm019177jsd", + "name" : "add" + }, + "acm019178jsd" : { + "type" : "ControlElement", + "id" : "acm019178jsd", + "name" : "add" + }, + "acm019179jsd" : { + "type" : "ControlElement", + "id" : "acm019179jsd", + "name" : "remove" + }, + "acm019180jsd" : { + "type" : "ControlElement", + "id" : "acm019180jsd", + "name" : "remove" + }, + "acm019181jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019181jsd", + "name" : "GroupEntryChanger", + "compilationUnitId" : "acm019172jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd" ], + "content" : [ "acm019177jsd", "acm019178jsd", "acm019179jsd", "acm019180jsd" ] + }, + "acm019182jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019182jsd", + "name" : "GroupHierarchyType", + "parentId" : "acm019084jsd", + "content" : [ "acm019190jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019183jsd" : { + "type" : "CodePackage", + "id" : "acm019183jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019184jsd" ] + }, + "acm019184jsd" : { + "type" : "CodePackage", + "id" : "acm019184jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019185jsd" ] + }, + "acm019185jsd" : { + "type" : "CodePackage", + "id" : "acm019185jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019186jsd" ] + }, + "acm019186jsd" : { + "type" : "CodePackage", + "id" : "acm019186jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019182jsd" ] + }, + "acm019187jsd" : { + "type" : "ControlElement", + "id" : "acm019187jsd", + "name" : "GroupHierarchyType" + }, + "acm019188jsd" : { + "type" : "ControlElement", + "id" : "acm019188jsd", + "name" : "getByNumberOrDefault" + }, + "acm019189jsd" : { + "type" : "ControlElement", + "id" : "acm019189jsd", + "name" : "getDisplayName" + }, + "acm019190jsd" : { + "type" : "ClassUnit", + "id" : "acm019190jsd", + "name" : "GroupHierarchyType", + "compilationUnitId" : "acm019182jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019190jsd" ], + "content" : [ "acm019187jsd", "acm019188jsd", "acm019189jsd" ] + }, + "acm019191jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019191jsd", + "name" : "GroupTreeNode", + "parentId" : "acm019084jsd", + "content" : [ "acm019221jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019192jsd" : { + "type" : "CodePackage", + "id" : "acm019192jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019193jsd" ] + }, + "acm019193jsd" : { + "type" : "CodePackage", + "id" : "acm019193jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019194jsd" ] + }, + "acm019194jsd" : { + "type" : "CodePackage", + "id" : "acm019194jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019195jsd" ] + }, + "acm019195jsd" : { + "type" : "CodePackage", + "id" : "acm019195jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019191jsd" ] + }, + "acm019196jsd" : { + "type" : "ControlElement", + "id" : "acm019196jsd", + "name" : "GroupTreeNode" + }, + "acm019197jsd" : { + "type" : "ControlElement", + "id" : "acm019197jsd", + "name" : "fromGroup" + }, + "acm019198jsd" : { + "type" : "ControlElement", + "id" : "acm019198jsd", + "name" : "getGroup" + }, + "acm019199jsd" : { + "type" : "ControlElement", + "id" : "acm019199jsd", + "name" : "setGroup" + }, + "acm019200jsd" : { + "type" : "ControlElement", + "id" : "acm019200jsd", + "name" : "setGroup" + }, + "acm019201jsd" : { + "type" : "ControlElement", + "id" : "acm019201jsd", + "name" : "getSearchMatcher" + }, + "acm019202jsd" : { + "type" : "ControlElement", + "id" : "acm019202jsd", + "name" : "getSearchMatcher" + }, + "acm019203jsd" : { + "type" : "ControlElement", + "id" : "acm019203jsd", + "name" : "equals" + }, + "acm019204jsd" : { + "type" : "ControlElement", + "id" : "acm019204jsd", + "name" : "hashCode" + }, + "acm019205jsd" : { + "type" : "ControlElement", + "id" : "acm019205jsd", + "name" : "getContainingGroups" + }, + "acm019206jsd" : { + "type" : "ControlElement", + "id" : "acm019206jsd", + "name" : "getMatchingGroups" + }, + "acm019207jsd" : { + "type" : "ControlElement", + "id" : "acm019207jsd", + "name" : "getMatchingGroups" + }, + "acm019208jsd" : { + "type" : "ControlElement", + "id" : "acm019208jsd", + "name" : "getEntriesInGroup" + }, + "acm019209jsd" : { + "type" : "ControlElement", + "id" : "acm019209jsd", + "name" : "getName" + }, + "acm019210jsd" : { + "type" : "ControlElement", + "id" : "acm019210jsd", + "name" : "addSubgroup" + }, + "acm019211jsd" : { + "type" : "ControlElement", + "id" : "acm019211jsd", + "name" : "copyNode" + }, + "acm019212jsd" : { + "type" : "ControlElement", + "id" : "acm019212jsd", + "name" : "findMatches" + }, + "acm019213jsd" : { + "type" : "ControlElement", + "id" : "acm019213jsd", + "name" : "findMatches" + }, + "acm019214jsd" : { + "type" : "ControlElement", + "id" : "acm019214jsd", + "name" : "matches" + }, + "acm019215jsd" : { + "type" : "ControlElement", + "id" : "acm019215jsd", + "name" : "getPath" + }, + "acm019216jsd" : { + "type" : "ControlElement", + "id" : "acm019216jsd", + "name" : "toString" + }, + "acm019217jsd" : { + "type" : "ControlElement", + "id" : "acm019217jsd", + "name" : "getChildByPath" + }, + "acm019218jsd" : { + "type" : "ControlElement", + "id" : "acm019218jsd", + "name" : "addEntriesToGroup" + }, + "acm019219jsd" : { + "type" : "ControlElement", + "id" : "acm019219jsd", + "name" : "removeEntriesFromGroup" + }, + "acm019220jsd" : { + "type" : "ControlElement", + "id" : "acm019220jsd", + "name" : "isSameGroupAs" + }, + "acm019221jsd" : { + "type" : "ClassUnit", + "id" : "acm019221jsd", + "name" : "GroupTreeNode", + "compilationUnitId" : "acm019191jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm017927jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm017988jsd", "acm018267jsd", "acm019107jsd", "acm019181jsd", "acm019190jsd", "acm019221jsd", "acm020330jsd", "acm020349jsd" ], + "content" : [ "acm019196jsd", "acm019197jsd", "acm019198jsd", "acm019199jsd", "acm019200jsd", "acm019201jsd", "acm019202jsd", "acm019203jsd", "acm019204jsd", "acm019205jsd", "acm019206jsd", "acm019207jsd", "acm019208jsd", "acm019209jsd", "acm019210jsd", "acm019211jsd", "acm019212jsd", "acm019213jsd", "acm019214jsd", "acm019215jsd", "acm019216jsd", "acm019217jsd", "acm019218jsd", "acm019219jsd", "acm019220jsd" ] + }, + "acm019222jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019222jsd", + "name" : "KeywordGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019234jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019223jsd" : { + "type" : "CodePackage", + "id" : "acm019223jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019224jsd" ] + }, + "acm019224jsd" : { + "type" : "CodePackage", + "id" : "acm019224jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019225jsd" ] + }, + "acm019225jsd" : { + "type" : "CodePackage", + "id" : "acm019225jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019226jsd" ] + }, + "acm019226jsd" : { + "type" : "CodePackage", + "id" : "acm019226jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019222jsd" ] + }, + "acm019227jsd" : { + "type" : "ControlElement", + "id" : "acm019227jsd", + "name" : "KeywordGroup" + }, + "acm019228jsd" : { + "type" : "ControlElement", + "id" : "acm019228jsd", + "name" : "isCaseSensitive" + }, + "acm019229jsd" : { + "type" : "ControlElement", + "id" : "acm019229jsd", + "name" : "getSearchExpression" + }, + "acm019230jsd" : { + "type" : "ControlElement", + "id" : "acm019230jsd", + "name" : "getSearchField" + }, + "acm019231jsd" : { + "type" : "ControlElement", + "id" : "acm019231jsd", + "name" : "isDynamic" + }, + "acm019232jsd" : { + "type" : "ControlElement", + "id" : "acm019232jsd", + "name" : "equals" + }, + "acm019233jsd" : { + "type" : "ControlElement", + "id" : "acm019233jsd", + "name" : "hashCode" + }, + "acm019234jsd" : { + "type" : "ClassUnit", + "id" : "acm019234jsd", + "name" : "KeywordGroup", + "compilationUnitId" : "acm019222jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019190jsd", "acm019234jsd" ], + "content" : [ "acm019227jsd", "acm019228jsd", "acm019229jsd", "acm019230jsd", "acm019231jsd", "acm019232jsd", "acm019233jsd" ] + }, + "acm019235jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019235jsd", + "name" : "LastNameGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019244jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019236jsd" : { + "type" : "CodePackage", + "id" : "acm019236jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019237jsd" ] + }, + "acm019237jsd" : { + "type" : "CodePackage", + "id" : "acm019237jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019238jsd" ] + }, + "acm019238jsd" : { + "type" : "CodePackage", + "id" : "acm019238jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019239jsd" ] + }, + "acm019239jsd" : { + "type" : "CodePackage", + "id" : "acm019239jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019235jsd" ] + }, + "acm019240jsd" : { + "type" : "ControlElement", + "id" : "acm019240jsd", + "name" : "LastNameGroup" + }, + "acm019241jsd" : { + "type" : "ControlElement", + "id" : "acm019241jsd", + "name" : "getAsLastNamesLatexFree" + }, + "acm019242jsd" : { + "type" : "ControlElement", + "id" : "acm019242jsd", + "name" : "contains" + }, + "acm019243jsd" : { + "type" : "ControlElement", + "id" : "acm019243jsd", + "name" : "deepCopy" + }, + "acm019244jsd" : { + "type" : "ClassUnit", + "id" : "acm019244jsd", + "name" : "LastNameGroup", + "compilationUnitId" : "acm019235jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019234jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm019107jsd", "acm019190jsd", "acm019244jsd" ], + "content" : [ "acm019240jsd", "acm019241jsd", "acm019242jsd", "acm019243jsd" ] + }, + "acm019245jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019245jsd", + "name" : "RegexKeywordGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019256jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019246jsd" : { + "type" : "CodePackage", + "id" : "acm019246jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019247jsd" ] + }, + "acm019247jsd" : { + "type" : "CodePackage", + "id" : "acm019247jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019248jsd" ] + }, + "acm019248jsd" : { + "type" : "CodePackage", + "id" : "acm019248jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019249jsd" ] + }, + "acm019249jsd" : { + "type" : "CodePackage", + "id" : "acm019249jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019245jsd" ] + }, + "acm019250jsd" : { + "type" : "ControlElement", + "id" : "acm019250jsd", + "name" : "RegexKeywordGroup" + }, + "acm019251jsd" : { + "type" : "ControlElement", + "id" : "acm019251jsd", + "name" : "compilePattern" + }, + "acm019252jsd" : { + "type" : "ControlElement", + "id" : "acm019252jsd", + "name" : "contains" + }, + "acm019253jsd" : { + "type" : "ControlElement", + "id" : "acm019253jsd", + "name" : "equals" + }, + "acm019254jsd" : { + "type" : "ControlElement", + "id" : "acm019254jsd", + "name" : "deepCopy" + }, + "acm019255jsd" : { + "type" : "ControlElement", + "id" : "acm019255jsd", + "name" : "hashCode" + }, + "acm019256jsd" : { + "type" : "ClassUnit", + "id" : "acm019256jsd", + "name" : "RegexKeywordGroup", + "compilationUnitId" : "acm019245jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019234jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm019107jsd", "acm019190jsd", "acm019256jsd" ], + "content" : [ "acm019250jsd", "acm019251jsd", "acm019252jsd", "acm019253jsd", "acm019254jsd", "acm019255jsd" ] + }, + "acm019257jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019257jsd", + "name" : "SearchGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019271jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019258jsd" : { + "type" : "CodePackage", + "id" : "acm019258jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019259jsd" ] + }, + "acm019259jsd" : { + "type" : "CodePackage", + "id" : "acm019259jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019260jsd" ] + }, + "acm019260jsd" : { + "type" : "CodePackage", + "id" : "acm019260jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019261jsd" ] + }, + "acm019261jsd" : { + "type" : "CodePackage", + "id" : "acm019261jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019257jsd" ] + }, + "acm019262jsd" : { + "type" : "ControlElement", + "id" : "acm019262jsd", + "name" : "SearchGroup" + }, + "acm019263jsd" : { + "type" : "ControlElement", + "id" : "acm019263jsd", + "name" : "getSearchExpression" + }, + "acm019264jsd" : { + "type" : "ControlElement", + "id" : "acm019264jsd", + "name" : "equals" + }, + "acm019265jsd" : { + "type" : "ControlElement", + "id" : "acm019265jsd", + "name" : "contains" + }, + "acm019266jsd" : { + "type" : "ControlElement", + "id" : "acm019266jsd", + "name" : "getSearchFlags" + }, + "acm019267jsd" : { + "type" : "ControlElement", + "id" : "acm019267jsd", + "name" : "deepCopy" + }, + "acm019268jsd" : { + "type" : "ControlElement", + "id" : "acm019268jsd", + "name" : "toString" + }, + "acm019269jsd" : { + "type" : "ControlElement", + "id" : "acm019269jsd", + "name" : "isDynamic" + }, + "acm019270jsd" : { + "type" : "ControlElement", + "id" : "acm019270jsd", + "name" : "hashCode" + }, + "acm019271jsd" : { + "type" : "ClassUnit", + "id" : "acm019271jsd", + "name" : "SearchGroup", + "compilationUnitId" : "acm019257jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019107jsd", "acm019190jsd", "acm019271jsd", "acm020323jsd", "acm020473jsd" ], + "content" : [ "acm019262jsd", "acm019263jsd", "acm019264jsd", "acm019265jsd", "acm019266jsd", "acm019267jsd", "acm019268jsd", "acm019269jsd", "acm019270jsd" ] + }, + "acm019272jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019272jsd", + "name" : "TexGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019293jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019273jsd" : { + "type" : "CodePackage", + "id" : "acm019273jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019274jsd" ] + }, + "acm019274jsd" : { + "type" : "CodePackage", + "id" : "acm019274jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019275jsd" ] + }, + "acm019275jsd" : { + "type" : "CodePackage", + "id" : "acm019275jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019276jsd" ] + }, + "acm019276jsd" : { + "type" : "CodePackage", + "id" : "acm019276jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019272jsd" ] + }, + "acm019277jsd" : { + "type" : "ControlElement", + "id" : "acm019277jsd", + "name" : "TexGroup" + }, + "acm019278jsd" : { + "type" : "ControlElement", + "id" : "acm019278jsd", + "name" : "TexGroup" + }, + "acm019279jsd" : { + "type" : "ControlElement", + "id" : "acm019279jsd", + "name" : "create" + }, + "acm019280jsd" : { + "type" : "ControlElement", + "id" : "acm019280jsd", + "name" : "createWithoutFileMonitoring" + }, + "acm019281jsd" : { + "type" : "ControlElement", + "id" : "acm019281jsd", + "name" : "getFilePathResolved" + }, + "acm019282jsd" : { + "type" : "ControlElement", + "id" : "acm019282jsd", + "name" : "contains" + }, + "acm019283jsd" : { + "type" : "ControlElement", + "id" : "acm019283jsd", + "name" : "isDynamic" + }, + "acm019284jsd" : { + "type" : "ControlElement", + "id" : "acm019284jsd", + "name" : "deepCopy" + }, + "acm019285jsd" : { + "type" : "ControlElement", + "id" : "acm019285jsd", + "name" : "equals" + }, + "acm019286jsd" : { + "type" : "ControlElement", + "id" : "acm019286jsd", + "name" : "toString" + }, + "acm019287jsd" : { + "type" : "ControlElement", + "id" : "acm019287jsd", + "name" : "hashCode" + }, + "acm019288jsd" : { + "type" : "ControlElement", + "id" : "acm019288jsd", + "name" : "getFilePath" + }, + "acm019289jsd" : { + "type" : "ControlElement", + "id" : "acm019289jsd", + "name" : "fileUpdated" + }, + "acm019290jsd" : { + "type" : "ControlElement", + "id" : "acm019290jsd", + "name" : "relativize" + }, + "acm019291jsd" : { + "type" : "ControlElement", + "id" : "acm019291jsd", + "name" : "expandPath" + }, + "acm019292jsd" : { + "type" : "ControlElement", + "id" : "acm019292jsd", + "name" : "getFileDirectoriesAsPaths" + }, + "acm019293jsd" : { + "type" : "ClassUnit", + "id" : "acm019293jsd", + "name" : "TexGroup", + "compilationUnitId" : "acm019272jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ "acm020683jsd" ], + "datatypeReferencesIds" : [ "acm010424jsd", "acm010444jsd", "acm018267jsd", "acm019107jsd", "acm019190jsd", "acm019293jsd", "acm019421jsd", "acm020693jsd" ], + "content" : [ "acm019277jsd", "acm019278jsd", "acm019279jsd", "acm019280jsd", "acm019281jsd", "acm019282jsd", "acm019283jsd", "acm019284jsd", "acm019285jsd", "acm019286jsd", "acm019287jsd", "acm019288jsd", "acm019289jsd", "acm019290jsd", "acm019291jsd", "acm019292jsd" ] + }, + "acm019294jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019294jsd", + "name" : "WordKeywordGroup", + "parentId" : "acm019084jsd", + "content" : [ "acm019315jsd", "acm019317jsd", "acm019320jsd", "acm019323jsd", "acm019326jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019295jsd" : { + "type" : "CodePackage", + "id" : "acm019295jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019296jsd" ] + }, + "acm019296jsd" : { + "type" : "CodePackage", + "id" : "acm019296jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019297jsd" ] + }, + "acm019297jsd" : { + "type" : "CodePackage", + "id" : "acm019297jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019298jsd" ] + }, + "acm019298jsd" : { + "type" : "CodePackage", + "id" : "acm019298jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019294jsd" ] + }, + "acm019299jsd" : { + "type" : "ControlElement", + "id" : "acm019299jsd", + "name" : "WordKeywordGroup" + }, + "acm019300jsd" : { + "type" : "ControlElement", + "id" : "acm019300jsd", + "name" : "containsCaseInsensitive" + }, + "acm019301jsd" : { + "type" : "ControlElement", + "id" : "acm019301jsd", + "name" : "containsCaseInsensitive" + }, + "acm019302jsd" : { + "type" : "ControlElement", + "id" : "acm019302jsd", + "name" : "add" + }, + "acm019303jsd" : { + "type" : "ControlElement", + "id" : "acm019303jsd", + "name" : "remove" + }, + "acm019304jsd" : { + "type" : "ControlElement", + "id" : "acm019304jsd", + "name" : "equals" + }, + "acm019305jsd" : { + "type" : "ControlElement", + "id" : "acm019305jsd", + "name" : "contains" + }, + "acm019306jsd" : { + "type" : "ControlElement", + "id" : "acm019306jsd", + "name" : "deepCopy" + }, + "acm019307jsd" : { + "type" : "ControlElement", + "id" : "acm019307jsd", + "name" : "hashCode" + }, + "acm019308jsd" : { + "type" : "ControlElement", + "id" : "acm019308jsd", + "name" : "contains" + }, + "acm019309jsd" : { + "type" : "ControlElement", + "id" : "acm019309jsd", + "name" : "StringSearchStrategy" + }, + "acm019310jsd" : { + "type" : "ControlElement", + "id" : "acm019310jsd", + "name" : "contains" + }, + "acm019311jsd" : { + "type" : "ControlElement", + "id" : "acm019311jsd", + "name" : "TypeSearchStrategy" + }, + "acm019312jsd" : { + "type" : "ControlElement", + "id" : "acm019312jsd", + "name" : "contains" + }, + "acm019313jsd" : { + "type" : "ControlElement", + "id" : "acm019313jsd", + "name" : "KeywordListSearchStrategy" + }, + "acm019314jsd" : { + "type" : "ControlElement", + "id" : "acm019314jsd", + "name" : "contains" + }, + "acm019315jsd" : { + "type" : "ClassUnit", + "id" : "acm019315jsd", + "name" : "WordKeywordGroup", + "compilationUnitId" : "acm019294jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019234jsd" ], + "implementedDataTypesIds" : [ "acm019181jsd" ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm018479jsd", "acm018673jsd", "acm019005jsd", "acm019107jsd", "acm019190jsd", "acm019315jsd", "acm019317jsd", "acm019320jsd", "acm019323jsd", "acm019326jsd" ], + "content" : [ "acm019299jsd", "acm019300jsd", "acm019301jsd", "acm019302jsd", "acm019303jsd", "acm019304jsd", "acm019305jsd", "acm019306jsd", "acm019307jsd", "acm019308jsd", "acm019309jsd", "acm019310jsd", "acm019311jsd", "acm019312jsd", "acm019313jsd", "acm019314jsd" ] + }, + "acm019316jsd" : { + "type" : "ControlElement", + "id" : "acm019316jsd", + "name" : "contains" + }, + "acm019317jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019317jsd", + "name" : "SearchStrategy", + "compilationUnitId" : "acm019294jsd", + "parentDatatypeId" : "acm019315jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm019316jsd" ] + }, + "acm019318jsd" : { + "type" : "ControlElement", + "id" : "acm019318jsd", + "name" : "StringSearchStrategy" + }, + "acm019319jsd" : { + "type" : "ControlElement", + "id" : "acm019319jsd", + "name" : "contains" + }, + "acm019320jsd" : { + "type" : "ClassUnit", + "id" : "acm019320jsd", + "name" : "StringSearchStrategy", + "compilationUnitId" : "acm019294jsd", + "parentDatatypeId" : "acm019315jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019317jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm019318jsd", "acm019319jsd" ] + }, + "acm019321jsd" : { + "type" : "ControlElement", + "id" : "acm019321jsd", + "name" : "TypeSearchStrategy" + }, + "acm019322jsd" : { + "type" : "ControlElement", + "id" : "acm019322jsd", + "name" : "contains" + }, + "acm019323jsd" : { + "type" : "ClassUnit", + "id" : "acm019323jsd", + "name" : "TypeSearchStrategy", + "compilationUnitId" : "acm019294jsd", + "parentDatatypeId" : "acm019315jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019317jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm019321jsd", "acm019322jsd" ] + }, + "acm019324jsd" : { + "type" : "ControlElement", + "id" : "acm019324jsd", + "name" : "KeywordListSearchStrategy" + }, + "acm019325jsd" : { + "type" : "ControlElement", + "id" : "acm019325jsd", + "name" : "contains" + }, + "acm019326jsd" : { + "type" : "ClassUnit", + "id" : "acm019326jsd", + "name" : "KeywordListSearchStrategy", + "compilationUnitId" : "acm019294jsd", + "parentDatatypeId" : "acm019315jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019317jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018479jsd" ], + "content" : [ "acm019324jsd", "acm019325jsd" ] + }, + "acm019327jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019327jsd", + "name" : "GroupUpdatedEvent", + "parentId" : "acm019332jsd", + "content" : [ "acm019335jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "groups", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019328jsd" : { + "type" : "CodePackage", + "id" : "acm019328jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019329jsd" ] + }, + "acm019329jsd" : { + "type" : "CodePackage", + "id" : "acm019329jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019330jsd" ] + }, + "acm019330jsd" : { + "type" : "CodePackage", + "id" : "acm019330jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019331jsd" ] + }, + "acm019331jsd" : { + "type" : "CodePackage", + "id" : "acm019331jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm019332jsd" ] + }, + "acm019332jsd" : { + "type" : "CodePackage", + "id" : "acm019332jsd", + "name" : "event", + "parentId" : "acm019084jsd", + "content" : [ "acm019327jsd" ] + }, + "acm019333jsd" : { + "type" : "ControlElement", + "id" : "acm019333jsd", + "name" : "GroupUpdatedEvent" + }, + "acm019334jsd" : { + "type" : "ControlElement", + "id" : "acm019334jsd", + "name" : "getMetaData" + }, + "acm019335jsd" : { + "type" : "ClassUnit", + "id" : "acm019335jsd", + "name" : "GroupUpdatedEvent", + "compilationUnitId" : "acm019327jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018089jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019421jsd" ], + "content" : [ "acm019333jsd", "acm019334jsd" ] + }, + "acm019336jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019336jsd", + "name" : "ContentSelector", + "parentId" : "acm019340jsd", + "content" : [ "acm019348jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "metadata" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019337jsd" : { + "type" : "CodePackage", + "id" : "acm019337jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019338jsd" ] + }, + "acm019338jsd" : { + "type" : "CodePackage", + "id" : "acm019338jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019339jsd" ] + }, + "acm019339jsd" : { + "type" : "CodePackage", + "id" : "acm019339jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019340jsd" ] + }, + "acm019340jsd" : { + "type" : "CodePackage", + "id" : "acm019340jsd", + "name" : "metadata", + "parentId" : "acm017861jsd", + "content" : [ "acm019336jsd", "acm019349jsd", "acm019364jsd", "acm019422jsd", "acm029062jsd", "acm019464jsd" ] + }, + "acm019341jsd" : { + "type" : "ControlElement", + "id" : "acm019341jsd", + "name" : "ContentSelector" + }, + "acm019342jsd" : { + "type" : "ControlElement", + "id" : "acm019342jsd", + "name" : "ContentSelector" + }, + "acm019343jsd" : { + "type" : "ControlElement", + "id" : "acm019343jsd", + "name" : "equals" + }, + "acm019344jsd" : { + "type" : "ControlElement", + "id" : "acm019344jsd", + "name" : "toString" + }, + "acm019345jsd" : { + "type" : "ControlElement", + "id" : "acm019345jsd", + "name" : "hashCode" + }, + "acm019346jsd" : { + "type" : "ControlElement", + "id" : "acm019346jsd", + "name" : "getField" + }, + "acm019347jsd" : { + "type" : "ControlElement", + "id" : "acm019347jsd", + "name" : "getValues" + }, + "acm019348jsd" : { + "type" : "ClassUnit", + "id" : "acm019348jsd", + "name" : "ContentSelector", + "compilationUnitId" : "acm019336jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019348jsd" ], + "content" : [ "acm019341jsd", "acm019342jsd", "acm019343jsd", "acm019344jsd", "acm019345jsd", "acm019346jsd", "acm019347jsd" ] + }, + "acm019349jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019349jsd", + "name" : "ContentSelectors", + "parentId" : "acm019340jsd", + "content" : [ "acm019363jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "metadata" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019350jsd" : { + "type" : "CodePackage", + "id" : "acm019350jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019351jsd" ] + }, + "acm019351jsd" : { + "type" : "CodePackage", + "id" : "acm019351jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019352jsd" ] + }, + "acm019352jsd" : { + "type" : "CodePackage", + "id" : "acm019352jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019353jsd" ] + }, + "acm019353jsd" : { + "type" : "CodePackage", + "id" : "acm019353jsd", + "name" : "metadata", + "parentId" : null, + "content" : [ "acm019349jsd" ] + }, + "acm019354jsd" : { + "type" : "ControlElement", + "id" : "acm019354jsd", + "name" : "ContentSelectors" + }, + "acm019355jsd" : { + "type" : "ControlElement", + "id" : "acm019355jsd", + "name" : "addContentSelector" + }, + "acm019356jsd" : { + "type" : "ControlElement", + "id" : "acm019356jsd", + "name" : "parse" + }, + "acm019357jsd" : { + "type" : "ControlElement", + "id" : "acm019357jsd", + "name" : "getSelectorValuesForField" + }, + "acm019358jsd" : { + "type" : "ControlElement", + "id" : "acm019358jsd", + "name" : "getContentSelectors" + }, + "acm019359jsd" : { + "type" : "ControlElement", + "id" : "acm019359jsd", + "name" : "removeSelector" + }, + "acm019360jsd" : { + "type" : "ControlElement", + "id" : "acm019360jsd", + "name" : "getFieldsWithSelectors" + }, + "acm019361jsd" : { + "type" : "ControlElement", + "id" : "acm019361jsd", + "name" : "equals" + }, + "acm019362jsd" : { + "type" : "ControlElement", + "id" : "acm019362jsd", + "name" : "hashCode" + }, + "acm019363jsd" : { + "type" : "ClassUnit", + "id" : "acm019363jsd", + "name" : "ContentSelectors", + "compilationUnitId" : "acm019349jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019348jsd", "acm019363jsd" ], + "content" : [ "acm019354jsd", "acm019355jsd", "acm019356jsd", "acm019357jsd", "acm019358jsd", "acm019359jsd", "acm019360jsd", "acm019361jsd", "acm019362jsd" ] + }, + "acm019364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019364jsd", + "name" : "MetaData", + "parentId" : "acm019340jsd", + "content" : [ "acm019421jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "metadata" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019365jsd" : { + "type" : "CodePackage", + "id" : "acm019365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019366jsd" ] + }, + "acm019366jsd" : { + "type" : "CodePackage", + "id" : "acm019366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019367jsd" ] + }, + "acm019367jsd" : { + "type" : "CodePackage", + "id" : "acm019367jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019368jsd" ] + }, + "acm019368jsd" : { + "type" : "CodePackage", + "id" : "acm019368jsd", + "name" : "metadata", + "parentId" : null, + "content" : [ "acm019364jsd" ] + }, + "acm019369jsd" : { + "type" : "ControlElement", + "id" : "acm019369jsd", + "name" : "MetaData" + }, + "acm019370jsd" : { + "type" : "ControlElement", + "id" : "acm019370jsd", + "name" : "getSaveOrderConfig" + }, + "acm019371jsd" : { + "type" : "ControlElement", + "id" : "acm019371jsd", + "name" : "setSaveOrderConfig" + }, + "acm019372jsd" : { + "type" : "ControlElement", + "id" : "acm019372jsd", + "name" : "getGroups" + }, + "acm019373jsd" : { + "type" : "ControlElement", + "id" : "acm019373jsd", + "name" : "groupsBinding" + }, + "acm019374jsd" : { + "type" : "ControlElement", + "id" : "acm019374jsd", + "name" : "setGroups" + }, + "acm019375jsd" : { + "type" : "ControlElement", + "id" : "acm019375jsd", + "name" : "getCiteKeyPattern" + }, + "acm019376jsd" : { + "type" : "ControlElement", + "id" : "acm019376jsd", + "name" : "setCiteKeyPattern" + }, + "acm019377jsd" : { + "type" : "ControlElement", + "id" : "acm019377jsd", + "name" : "setCiteKeyPattern" + }, + "acm019378jsd" : { + "type" : "ControlElement", + "id" : "acm019378jsd", + "name" : "getSaveActions" + }, + "acm019379jsd" : { + "type" : "ControlElement", + "id" : "acm019379jsd", + "name" : "setSaveActions" + }, + "acm019380jsd" : { + "type" : "ControlElement", + "id" : "acm019380jsd", + "name" : "getMode" + }, + "acm019381jsd" : { + "type" : "ControlElement", + "id" : "acm019381jsd", + "name" : "setMode" + }, + "acm019382jsd" : { + "type" : "ControlElement", + "id" : "acm019382jsd", + "name" : "isProtected" + }, + "acm019383jsd" : { + "type" : "ControlElement", + "id" : "acm019383jsd", + "name" : "getContentSelectors" + }, + "acm019384jsd" : { + "type" : "ControlElement", + "id" : "acm019384jsd", + "name" : "getContentSelectorList" + }, + "acm019385jsd" : { + "type" : "ControlElement", + "id" : "acm019385jsd", + "name" : "addContentSelector" + }, + "acm019386jsd" : { + "type" : "ControlElement", + "id" : "acm019386jsd", + "name" : "clearContentSelectors" + }, + "acm019387jsd" : { + "type" : "ControlElement", + "id" : "acm019387jsd", + "name" : "getContentSelectorValuesForField" + }, + "acm019388jsd" : { + "type" : "ControlElement", + "id" : "acm019388jsd", + "name" : "getDefaultFileDirectory" + }, + "acm019389jsd" : { + "type" : "ControlElement", + "id" : "acm019389jsd", + "name" : "setDefaultFileDirectory" + }, + "acm019390jsd" : { + "type" : "ControlElement", + "id" : "acm019390jsd", + "name" : "getVersionDBStructure" + }, + "acm019391jsd" : { + "type" : "ControlElement", + "id" : "acm019391jsd", + "name" : "setVersionDBStructure" + }, + "acm019392jsd" : { + "type" : "ControlElement", + "id" : "acm019392jsd", + "name" : "getUserFileDirectory" + }, + "acm019393jsd" : { + "type" : "ControlElement", + "id" : "acm019393jsd", + "name" : "markAsProtected" + }, + "acm019394jsd" : { + "type" : "ControlElement", + "id" : "acm019394jsd", + "name" : "clearDefaultFileDirectory" + }, + "acm019395jsd" : { + "type" : "ControlElement", + "id" : "acm019395jsd", + "name" : "setUserFileDirectory" + }, + "acm019396jsd" : { + "type" : "ControlElement", + "id" : "acm019396jsd", + "name" : "clearUserFileDirectory" + }, + "acm019397jsd" : { + "type" : "ControlElement", + "id" : "acm019397jsd", + "name" : "getLatexFileDirectory" + }, + "acm019398jsd" : { + "type" : "ControlElement", + "id" : "acm019398jsd", + "name" : "setLatexFileDirectory" + }, + "acm019399jsd" : { + "type" : "ControlElement", + "id" : "acm019399jsd", + "name" : "clearLatexFileDirectory" + }, + "acm019400jsd" : { + "type" : "ControlElement", + "id" : "acm019400jsd", + "name" : "markAsNotProtected" + }, + "acm019401jsd" : { + "type" : "ControlElement", + "id" : "acm019401jsd", + "name" : "clearSaveActions" + }, + "acm019402jsd" : { + "type" : "ControlElement", + "id" : "acm019402jsd", + "name" : "clearSaveOrderConfig" + }, + "acm019403jsd" : { + "type" : "ControlElement", + "id" : "acm019403jsd", + "name" : "postChange" + }, + "acm019404jsd" : { + "type" : "ControlElement", + "id" : "acm019404jsd", + "name" : "getEncoding" + }, + "acm019405jsd" : { + "type" : "ControlElement", + "id" : "acm019405jsd", + "name" : "setEncoding" + }, + "acm019406jsd" : { + "type" : "ControlElement", + "id" : "acm019406jsd", + "name" : "setEncoding" + }, + "acm019407jsd" : { + "type" : "ControlElement", + "id" : "acm019407jsd", + "name" : "getEncodingExplicitlySupplied" + }, + "acm019408jsd" : { + "type" : "ControlElement", + "id" : "acm019408jsd", + "name" : "setEncodingExplicitlySupplied" + }, + "acm019409jsd" : { + "type" : "ControlElement", + "id" : "acm019409jsd", + "name" : "setEventPropagation" + }, + "acm019410jsd" : { + "type" : "ControlElement", + "id" : "acm019410jsd", + "name" : "registerListener" + }, + "acm019411jsd" : { + "type" : "ControlElement", + "id" : "acm019411jsd", + "name" : "unregisterListener" + }, + "acm019412jsd" : { + "type" : "ControlElement", + "id" : "acm019412jsd", + "name" : "getDefaultCiteKeyPattern" + }, + "acm019413jsd" : { + "type" : "ControlElement", + "id" : "acm019413jsd", + "name" : "isEmpty" + }, + "acm019414jsd" : { + "type" : "ControlElement", + "id" : "acm019414jsd", + "name" : "getUserFileDirectories" + }, + "acm019415jsd" : { + "type" : "ControlElement", + "id" : "acm019415jsd", + "name" : "getLatexFileDirectories" + }, + "acm019416jsd" : { + "type" : "ControlElement", + "id" : "acm019416jsd", + "name" : "getUnknownMetaData" + }, + "acm019417jsd" : { + "type" : "ControlElement", + "id" : "acm019417jsd", + "name" : "putUnknownMetaDataItem" + }, + "acm019418jsd" : { + "type" : "ControlElement", + "id" : "acm019418jsd", + "name" : "equals" + }, + "acm019419jsd" : { + "type" : "ControlElement", + "id" : "acm019419jsd", + "name" : "hashCode" + }, + "acm019420jsd" : { + "type" : "ControlElement", + "id" : "acm019420jsd", + "name" : "toString" + }, + "acm019421jsd" : { + "type" : "ClassUnit", + "id" : "acm019421jsd", + "name" : "MetaData", + "compilationUnitId" : "acm019364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm011002jsd", "acm011011jsd", "acm011188jsd", "acm018032jsd", "acm018096jsd", "acm018673jsd", "acm019005jsd", "acm019221jsd", "acm019335jsd", "acm019348jsd", "acm019363jsd", "acm019421jsd", "acm019447jsd", "acm019467jsd" ], + "content" : [ "acm019369jsd", "acm019370jsd", "acm019371jsd", "acm019372jsd", "acm019373jsd", "acm019374jsd", "acm019375jsd", "acm019376jsd", "acm019377jsd", "acm019378jsd", "acm019379jsd", "acm019380jsd", "acm019381jsd", "acm019382jsd", "acm019383jsd", "acm019384jsd", "acm019385jsd", "acm019386jsd", "acm019387jsd", "acm019388jsd", "acm019389jsd", "acm019390jsd", "acm019391jsd", "acm019392jsd", "acm019393jsd", "acm019394jsd", "acm019395jsd", "acm019396jsd", "acm019397jsd", "acm019398jsd", "acm019399jsd", "acm019400jsd", "acm019401jsd", "acm019402jsd", "acm019403jsd", "acm019404jsd", "acm019405jsd", "acm019406jsd", "acm019407jsd", "acm019408jsd", "acm019409jsd", "acm019410jsd", "acm019411jsd", "acm019412jsd", "acm019413jsd", "acm019414jsd", "acm019415jsd", "acm019416jsd", "acm019417jsd", "acm019418jsd", "acm019419jsd", "acm019420jsd" ] + }, + "acm019422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019422jsd", + "name" : "SaveOrder", + "parentId" : "acm019340jsd", + "content" : [ "acm019447jsd", "acm019454jsd", "acm019458jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "metadata" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019423jsd" : { + "type" : "CodePackage", + "id" : "acm019423jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019424jsd" ] + }, + "acm019424jsd" : { + "type" : "CodePackage", + "id" : "acm019424jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019425jsd" ] + }, + "acm019425jsd" : { + "type" : "CodePackage", + "id" : "acm019425jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019426jsd" ] + }, + "acm019426jsd" : { + "type" : "CodePackage", + "id" : "acm019426jsd", + "name" : "metadata", + "parentId" : null, + "content" : [ "acm019422jsd" ] + }, + "acm019427jsd" : { + "type" : "ControlElement", + "id" : "acm019427jsd", + "name" : "OrderType" + }, + "acm019428jsd" : { + "type" : "ControlElement", + "id" : "acm019428jsd", + "name" : "toString" + }, + "acm019429jsd" : { + "type" : "ControlElement", + "id" : "acm019429jsd", + "name" : "fromBooleans" + }, + "acm019430jsd" : { + "type" : "ControlElement", + "id" : "acm019430jsd", + "name" : "SaveOrder" + }, + "acm019431jsd" : { + "type" : "ControlElement", + "id" : "acm019431jsd", + "name" : "SaveOrder" + }, + "acm019432jsd" : { + "type" : "ControlElement", + "id" : "acm019432jsd", + "name" : "SaveOrder" + }, + "acm019433jsd" : { + "type" : "ControlElement", + "id" : "acm019433jsd", + "name" : "parse" + }, + "acm019434jsd" : { + "type" : "ControlElement", + "id" : "acm019434jsd", + "name" : "getDefaultSaveOrder" + }, + "acm019435jsd" : { + "type" : "ControlElement", + "id" : "acm019435jsd", + "name" : "getOrderType" + }, + "acm019436jsd" : { + "type" : "ControlElement", + "id" : "acm019436jsd", + "name" : "getSortCriteria" + }, + "acm019437jsd" : { + "type" : "ControlElement", + "id" : "acm019437jsd", + "name" : "equals" + }, + "acm019438jsd" : { + "type" : "ControlElement", + "id" : "acm019438jsd", + "name" : "hashCode" + }, + "acm019439jsd" : { + "type" : "ControlElement", + "id" : "acm019439jsd", + "name" : "toString" + }, + "acm019440jsd" : { + "type" : "ControlElement", + "id" : "acm019440jsd", + "name" : "getAsStringList" + }, + "acm019441jsd" : { + "type" : "ControlElement", + "id" : "acm019441jsd", + "name" : "SortCriterion" + }, + "acm019442jsd" : { + "type" : "ControlElement", + "id" : "acm019442jsd", + "name" : "SortCriterion" + }, + "acm019443jsd" : { + "type" : "ControlElement", + "id" : "acm019443jsd", + "name" : "SortCriterion" + }, + "acm019444jsd" : { + "type" : "ControlElement", + "id" : "acm019444jsd", + "name" : "toString" + }, + "acm019445jsd" : { + "type" : "ControlElement", + "id" : "acm019445jsd", + "name" : "equals" + }, + "acm019446jsd" : { + "type" : "ControlElement", + "id" : "acm019446jsd", + "name" : "hashCode" + }, + "acm019447jsd" : { + "type" : "ClassUnit", + "id" : "acm019447jsd", + "name" : "SaveOrder", + "compilationUnitId" : "acm019422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019447jsd", "acm019454jsd", "acm019458jsd" ], + "content" : [ "acm019427jsd", "acm019428jsd", "acm019429jsd", "acm019430jsd", "acm019431jsd", "acm019432jsd", "acm019433jsd", "acm019434jsd", "acm019435jsd", "acm019436jsd", "acm019437jsd", "acm019438jsd", "acm019439jsd", "acm019440jsd", "acm019441jsd", "acm019442jsd", "acm019443jsd", "acm019444jsd", "acm019445jsd", "acm019446jsd" ] + }, + "acm019448jsd" : { + "type" : "ControlElement", + "id" : "acm019448jsd", + "name" : "SortCriterion" + }, + "acm019449jsd" : { + "type" : "ControlElement", + "id" : "acm019449jsd", + "name" : "SortCriterion" + }, + "acm019450jsd" : { + "type" : "ControlElement", + "id" : "acm019450jsd", + "name" : "SortCriterion" + }, + "acm019451jsd" : { + "type" : "ControlElement", + "id" : "acm019451jsd", + "name" : "toString" + }, + "acm019452jsd" : { + "type" : "ControlElement", + "id" : "acm019452jsd", + "name" : "equals" + }, + "acm019453jsd" : { + "type" : "ControlElement", + "id" : "acm019453jsd", + "name" : "hashCode" + }, + "acm019454jsd" : { + "type" : "ClassUnit", + "id" : "acm019454jsd", + "name" : "SortCriterion", + "compilationUnitId" : "acm019422jsd", + "parentDatatypeId" : "acm019447jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018673jsd", "acm019454jsd" ], + "content" : [ "acm019448jsd", "acm019449jsd", "acm019450jsd", "acm019451jsd", "acm019452jsd", "acm019453jsd" ] + }, + "acm019455jsd" : { + "type" : "ControlElement", + "id" : "acm019455jsd", + "name" : "OrderType" + }, + "acm019456jsd" : { + "type" : "ControlElement", + "id" : "acm019456jsd", + "name" : "toString" + }, + "acm019457jsd" : { + "type" : "ControlElement", + "id" : "acm019457jsd", + "name" : "fromBooleans" + }, + "acm019458jsd" : { + "type" : "ClassUnit", + "id" : "acm019458jsd", + "name" : "OrderType", + "compilationUnitId" : "acm019422jsd", + "parentDatatypeId" : "acm019447jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019458jsd" ], + "content" : [ "acm019455jsd", "acm019456jsd", "acm019457jsd" ] + }, + "acm019459jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019459jsd", + "name" : "MetaDataChangedEvent", + "parentId" : "acm019464jsd", + "content" : [ "acm019467jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "metadata", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019460jsd" : { + "type" : "CodePackage", + "id" : "acm019460jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019461jsd" ] + }, + "acm019461jsd" : { + "type" : "CodePackage", + "id" : "acm019461jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019462jsd" ] + }, + "acm019462jsd" : { + "type" : "CodePackage", + "id" : "acm019462jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019463jsd" ] + }, + "acm019463jsd" : { + "type" : "CodePackage", + "id" : "acm019463jsd", + "name" : "metadata", + "parentId" : null, + "content" : [ "acm019464jsd" ] + }, + "acm019464jsd" : { + "type" : "CodePackage", + "id" : "acm019464jsd", + "name" : "event", + "parentId" : "acm019340jsd", + "content" : [ "acm019459jsd" ] + }, + "acm019465jsd" : { + "type" : "ControlElement", + "id" : "acm019465jsd", + "name" : "MetaDataChangedEvent" + }, + "acm019466jsd" : { + "type" : "ControlElement", + "id" : "acm019466jsd", + "name" : "getMetaData" + }, + "acm019467jsd" : { + "type" : "ClassUnit", + "id" : "acm019467jsd", + "name" : "MetaDataChangedEvent", + "compilationUnitId" : "acm019459jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm018089jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019421jsd" ], + "content" : [ "acm019465jsd", "acm019466jsd" ] + }, + "acm019468jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019468jsd", + "name" : "CitationEntry", + "parentId" : "acm019472jsd", + "content" : [ "acm019482jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019469jsd" : { + "type" : "CodePackage", + "id" : "acm019469jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019470jsd" ] + }, + "acm019470jsd" : { + "type" : "CodePackage", + "id" : "acm019470jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019471jsd" ] + }, + "acm019471jsd" : { + "type" : "CodePackage", + "id" : "acm019471jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019472jsd" ] + }, + "acm019472jsd" : { + "type" : "CodePackage", + "id" : "acm019472jsd", + "name" : "openoffice", + "parentId" : "acm017861jsd", + "content" : [ "acm019468jsd", "acm029070jsd", "acm019488jsd", "acm019511jsd", "acm019574jsd", "acm019690jsd", "acm019936jsd", "acm020153jsd" ] + }, + "acm019473jsd" : { + "type" : "ControlElement", + "id" : "acm019473jsd", + "name" : "CitationEntry" + }, + "acm019474jsd" : { + "type" : "ControlElement", + "id" : "acm019474jsd", + "name" : "CitationEntry" + }, + "acm019475jsd" : { + "type" : "ControlElement", + "id" : "acm019475jsd", + "name" : "CitationEntry" + }, + "acm019476jsd" : { + "type" : "ControlElement", + "id" : "acm019476jsd", + "name" : "getPageInfo" + }, + "acm019477jsd" : { + "type" : "ControlElement", + "id" : "acm019477jsd", + "name" : "getRefMarkName" + }, + "acm019478jsd" : { + "type" : "ControlElement", + "id" : "acm019478jsd", + "name" : "compareTo" + }, + "acm019479jsd" : { + "type" : "ControlElement", + "id" : "acm019479jsd", + "name" : "equals" + }, + "acm019480jsd" : { + "type" : "ControlElement", + "id" : "acm019480jsd", + "name" : "hashCode" + }, + "acm019481jsd" : { + "type" : "ControlElement", + "id" : "acm019481jsd", + "name" : "getContext" + }, + "acm019482jsd" : { + "type" : "ClassUnit", + "id" : "acm019482jsd", + "name" : "CitationEntry", + "compilationUnitId" : "acm019468jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019482jsd" ], + "content" : [ "acm019473jsd", "acm019474jsd", "acm019475jsd", "acm019476jsd", "acm019477jsd", "acm019478jsd", "acm019479jsd", "acm019480jsd", "acm019481jsd" ] + }, + "acm019483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019483jsd", + "name" : "NamedRange", + "parentId" : "acm019488jsd", + "content" : [ "acm019495jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019484jsd" : { + "type" : "CodePackage", + "id" : "acm019484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019485jsd" ] + }, + "acm019485jsd" : { + "type" : "CodePackage", + "id" : "acm019485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019486jsd" ] + }, + "acm019486jsd" : { + "type" : "CodePackage", + "id" : "acm019486jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019487jsd" ] + }, + "acm019487jsd" : { + "type" : "CodePackage", + "id" : "acm019487jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019488jsd" ] + }, + "acm019488jsd" : { + "type" : "CodePackage", + "id" : "acm019488jsd", + "name" : "backend", + "parentId" : "acm019472jsd", + "content" : [ "acm019483jsd", "acm019496jsd" ] + }, + "acm019489jsd" : { + "type" : "ControlElement", + "id" : "acm019489jsd", + "name" : "getRangeName" + }, + "acm019490jsd" : { + "type" : "ControlElement", + "id" : "acm019490jsd", + "name" : "getMarkRange" + }, + "acm019491jsd" : { + "type" : "ControlElement", + "id" : "acm019491jsd", + "name" : "getRawCursor" + }, + "acm019492jsd" : { + "type" : "ControlElement", + "id" : "acm019492jsd", + "name" : "getFillCursor" + }, + "acm019493jsd" : { + "type" : "ControlElement", + "id" : "acm019493jsd", + "name" : "cleanFillCursor" + }, + "acm019494jsd" : { + "type" : "ControlElement", + "id" : "acm019494jsd", + "name" : "removeFromDocument" + }, + "acm019495jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019495jsd", + "name" : "NamedRange", + "compilationUnitId" : "acm019483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm019489jsd", "acm019490jsd", "acm019491jsd", "acm019492jsd", "acm019493jsd", "acm019494jsd" ] + }, + "acm019496jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019496jsd", + "name" : "NamedRangeManager", + "parentId" : "acm019488jsd", + "content" : [ "acm019505jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "backend" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019497jsd" : { + "type" : "CodePackage", + "id" : "acm019497jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019498jsd" ] + }, + "acm019498jsd" : { + "type" : "CodePackage", + "id" : "acm019498jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019499jsd" ] + }, + "acm019499jsd" : { + "type" : "CodePackage", + "id" : "acm019499jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019500jsd" ] + }, + "acm019500jsd" : { + "type" : "CodePackage", + "id" : "acm019500jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019501jsd" ] + }, + "acm019501jsd" : { + "type" : "CodePackage", + "id" : "acm019501jsd", + "name" : "backend", + "parentId" : null, + "content" : [ "acm019496jsd" ] + }, + "acm019502jsd" : { + "type" : "ControlElement", + "id" : "acm019502jsd", + "name" : "createNamedRange" + }, + "acm019503jsd" : { + "type" : "ControlElement", + "id" : "acm019503jsd", + "name" : "getUsedNames" + }, + "acm019504jsd" : { + "type" : "ControlElement", + "id" : "acm019504jsd", + "name" : "getNamedRangeFromDocument" + }, + "acm019505jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019505jsd", + "name" : "NamedRangeManager", + "compilationUnitId" : "acm019496jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019495jsd", "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm019502jsd", "acm019503jsd", "acm019504jsd" ] + }, + "acm019506jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019506jsd", + "name" : "OOFormat", + "parentId" : "acm019511jsd", + "content" : [ "acm019519jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "ootext" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019507jsd" : { + "type" : "CodePackage", + "id" : "acm019507jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019508jsd" ] + }, + "acm019508jsd" : { + "type" : "CodePackage", + "id" : "acm019508jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019509jsd" ] + }, + "acm019509jsd" : { + "type" : "CodePackage", + "id" : "acm019509jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019510jsd" ] + }, + "acm019510jsd" : { + "type" : "CodePackage", + "id" : "acm019510jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019511jsd" ] + }, + "acm019511jsd" : { + "type" : "CodePackage", + "id" : "acm019511jsd", + "name" : "ootext", + "parentId" : "acm019472jsd", + "content" : [ "acm019506jsd", "acm019520jsd", "acm019533jsd" ] + }, + "acm019512jsd" : { + "type" : "ControlElement", + "id" : "acm019512jsd", + "name" : "OOFormat" + }, + "acm019513jsd" : { + "type" : "ControlElement", + "id" : "acm019513jsd", + "name" : "setLocale" + }, + "acm019514jsd" : { + "type" : "ControlElement", + "id" : "acm019514jsd", + "name" : "setLocaleNone" + }, + "acm019515jsd" : { + "type" : "ControlElement", + "id" : "acm019515jsd", + "name" : "setCharStyle" + }, + "acm019516jsd" : { + "type" : "ControlElement", + "id" : "acm019516jsd", + "name" : "paragraph" + }, + "acm019517jsd" : { + "type" : "ControlElement", + "id" : "acm019517jsd", + "name" : "paragraph" + }, + "acm019518jsd" : { + "type" : "ControlElement", + "id" : "acm019518jsd", + "name" : "formatReferenceToPageNumberOfReferenceMark" + }, + "acm019519jsd" : { + "type" : "ClassUnit", + "id" : "acm019519jsd", + "name" : "OOFormat", + "compilationUnitId" : "acm019506jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019512jsd", "acm019513jsd", "acm019514jsd", "acm019515jsd", "acm019516jsd", "acm019517jsd", "acm019518jsd" ] + }, + "acm019520jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019520jsd", + "name" : "OOText", + "parentId" : "acm019511jsd", + "content" : [ "acm019532jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "ootext" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019521jsd" : { + "type" : "CodePackage", + "id" : "acm019521jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019522jsd" ] + }, + "acm019522jsd" : { + "type" : "CodePackage", + "id" : "acm019522jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019523jsd" ] + }, + "acm019523jsd" : { + "type" : "CodePackage", + "id" : "acm019523jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019524jsd" ] + }, + "acm019524jsd" : { + "type" : "CodePackage", + "id" : "acm019524jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019525jsd" ] + }, + "acm019525jsd" : { + "type" : "CodePackage", + "id" : "acm019525jsd", + "name" : "ootext", + "parentId" : null, + "content" : [ "acm019520jsd" ] + }, + "acm019526jsd" : { + "type" : "ControlElement", + "id" : "acm019526jsd", + "name" : "OOText" + }, + "acm019527jsd" : { + "type" : "ControlElement", + "id" : "acm019527jsd", + "name" : "fromString" + }, + "acm019528jsd" : { + "type" : "ControlElement", + "id" : "acm019528jsd", + "name" : "toString" + }, + "acm019529jsd" : { + "type" : "ControlElement", + "id" : "acm019529jsd", + "name" : "toString" + }, + "acm019530jsd" : { + "type" : "ControlElement", + "id" : "acm019530jsd", + "name" : "equals" + }, + "acm019531jsd" : { + "type" : "ControlElement", + "id" : "acm019531jsd", + "name" : "hashCode" + }, + "acm019532jsd" : { + "type" : "ClassUnit", + "id" : "acm019532jsd", + "name" : "OOText", + "compilationUnitId" : "acm019520jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019526jsd", "acm019527jsd", "acm019528jsd", "acm019529jsd", "acm019530jsd", "acm019531jsd" ] + }, + "acm019533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019533jsd", + "name" : "OOTextIntoOO", + "parentId" : "acm019511jsd", + "content" : [ "acm019562jsd", "acm019568jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "ootext" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019534jsd" : { + "type" : "CodePackage", + "id" : "acm019534jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019535jsd" ] + }, + "acm019535jsd" : { + "type" : "CodePackage", + "id" : "acm019535jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019536jsd" ] + }, + "acm019536jsd" : { + "type" : "CodePackage", + "id" : "acm019536jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019537jsd" ] + }, + "acm019537jsd" : { + "type" : "CodePackage", + "id" : "acm019537jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019538jsd" ] + }, + "acm019538jsd" : { + "type" : "CodePackage", + "id" : "acm019538jsd", + "name" : "ootext", + "parentId" : null, + "content" : [ "acm019533jsd" ] + }, + "acm019539jsd" : { + "type" : "ControlElement", + "id" : "acm019539jsd", + "name" : "OOTextIntoOO" + }, + "acm019540jsd" : { + "type" : "ControlElement", + "id" : "acm019540jsd", + "name" : "write" + }, + "acm019541jsd" : { + "type" : "ControlElement", + "id" : "acm019541jsd", + "name" : "removeDirectFormatting" + }, + "acm019542jsd" : { + "type" : "ControlElement", + "id" : "acm019542jsd", + "name" : "MyPropertyStack" + }, + "acm019543jsd" : { + "type" : "ControlElement", + "id" : "acm019543jsd", + "name" : "pushLayer" + }, + "acm019544jsd" : { + "type" : "ControlElement", + "id" : "acm019544jsd", + "name" : "popLayer" + }, + "acm019545jsd" : { + "type" : "ControlElement", + "id" : "acm019545jsd", + "name" : "apply" + }, + "acm019546jsd" : { + "type" : "ControlElement", + "id" : "acm019546jsd", + "name" : "getPropertyValue" + }, + "acm019547jsd" : { + "type" : "ControlElement", + "id" : "acm019547jsd", + "name" : "parseAttributes" + }, + "acm019548jsd" : { + "type" : "ControlElement", + "id" : "acm019548jsd", + "name" : "isPropertyDefault" + }, + "acm019549jsd" : { + "type" : "ControlElement", + "id" : "acm019549jsd", + "name" : "setCharWeight" + }, + "acm019550jsd" : { + "type" : "ControlElement", + "id" : "acm019550jsd", + "name" : "setCharPosture" + }, + "acm019551jsd" : { + "type" : "ControlElement", + "id" : "acm019551jsd", + "name" : "setCharCaseMap" + }, + "acm019552jsd" : { + "type" : "ControlElement", + "id" : "acm019552jsd", + "name" : "setCharUnderline" + }, + "acm019553jsd" : { + "type" : "ControlElement", + "id" : "acm019553jsd", + "name" : "setCharStrikeout" + }, + "acm019554jsd" : { + "type" : "ControlElement", + "id" : "acm019554jsd", + "name" : "setCharStyleName" + }, + "acm019555jsd" : { + "type" : "ControlElement", + "id" : "acm019555jsd", + "name" : "setCharLocale" + }, + "acm019556jsd" : { + "type" : "ControlElement", + "id" : "acm019556jsd", + "name" : "setCharLocale" + }, + "acm019557jsd" : { + "type" : "ControlElement", + "id" : "acm019557jsd", + "name" : "setCharEscapement" + }, + "acm019558jsd" : { + "type" : "ControlElement", + "id" : "acm019558jsd", + "name" : "setSubScript" + }, + "acm019559jsd" : { + "type" : "ControlElement", + "id" : "acm019559jsd", + "name" : "setSuperScript" + }, + "acm019560jsd" : { + "type" : "ControlElement", + "id" : "acm019560jsd", + "name" : "setParagraphStyle" + }, + "acm019561jsd" : { + "type" : "ControlElement", + "id" : "acm019561jsd", + "name" : "insertParagraphBreak" + }, + "acm019562jsd" : { + "type" : "ClassUnit", + "id" : "acm019562jsd", + "name" : "OOTextIntoOO", + "compilationUnitId" : "acm019533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd", "acm019562jsd", "acm019568jsd", "acm019938jsd", "acm020165jsd" ], + "content" : [ "acm019539jsd", "acm019540jsd", "acm019541jsd", "acm019542jsd", "acm019543jsd", "acm019544jsd", "acm019545jsd", "acm019546jsd", "acm019547jsd", "acm019548jsd", "acm019549jsd", "acm019550jsd", "acm019551jsd", "acm019552jsd", "acm019553jsd", "acm019554jsd", "acm019555jsd", "acm019556jsd", "acm019557jsd", "acm019558jsd", "acm019559jsd", "acm019560jsd", "acm019561jsd" ] + }, + "acm019563jsd" : { + "type" : "ControlElement", + "id" : "acm019563jsd", + "name" : "MyPropertyStack" + }, + "acm019564jsd" : { + "type" : "ControlElement", + "id" : "acm019564jsd", + "name" : "pushLayer" + }, + "acm019565jsd" : { + "type" : "ControlElement", + "id" : "acm019565jsd", + "name" : "popLayer" + }, + "acm019566jsd" : { + "type" : "ControlElement", + "id" : "acm019566jsd", + "name" : "apply" + }, + "acm019567jsd" : { + "type" : "ControlElement", + "id" : "acm019567jsd", + "name" : "getPropertyValue" + }, + "acm019568jsd" : { + "type" : "ClassUnit", + "id" : "acm019568jsd", + "name" : "MyPropertyStack", + "compilationUnitId" : "acm019533jsd", + "parentDatatypeId" : "acm019562jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019563jsd", "acm019564jsd", "acm019565jsd", "acm019566jsd", "acm019567jsd" ] + }, + "acm019569jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019569jsd", + "name" : "FunctionalTextViewCursor", + "parentId" : "acm019574jsd", + "content" : [ "acm019580jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019570jsd" : { + "type" : "CodePackage", + "id" : "acm019570jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019571jsd" ] + }, + "acm019571jsd" : { + "type" : "CodePackage", + "id" : "acm019571jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019572jsd" ] + }, + "acm019572jsd" : { + "type" : "CodePackage", + "id" : "acm019572jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019573jsd" ] + }, + "acm019573jsd" : { + "type" : "CodePackage", + "id" : "acm019573jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019574jsd" ] + }, + "acm019574jsd" : { + "type" : "CodePackage", + "id" : "acm019574jsd", + "name" : "rangesort", + "parentId" : "acm019472jsd", + "content" : [ "acm019569jsd", "acm019581jsd", "acm019589jsd", "acm019597jsd", "acm019606jsd", "acm019613jsd", "acm019623jsd", "acm019646jsd", "acm019659jsd", "acm019675jsd" ] + }, + "acm019575jsd" : { + "type" : "ControlElement", + "id" : "acm019575jsd", + "name" : "FunctionalTextViewCursor" + }, + "acm019576jsd" : { + "type" : "ControlElement", + "id" : "acm019576jsd", + "name" : "get" + }, + "acm019577jsd" : { + "type" : "ControlElement", + "id" : "acm019577jsd", + "name" : "getViewCursor" + }, + "acm019578jsd" : { + "type" : "ControlElement", + "id" : "acm019578jsd", + "name" : "restore" + }, + "acm019579jsd" : { + "type" : "ControlElement", + "id" : "acm019579jsd", + "name" : "restore" + }, + "acm019580jsd" : { + "type" : "ClassUnit", + "id" : "acm019580jsd", + "name" : "FunctionalTextViewCursor", + "compilationUnitId" : "acm019569jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019580jsd" ], + "content" : [ "acm019575jsd", "acm019576jsd", "acm019577jsd", "acm019578jsd", "acm019579jsd" ] + }, + "acm019581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019581jsd", + "name" : "RangeHolder", + "parentId" : "acm019574jsd", + "content" : [ "acm019588jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019582jsd" : { + "type" : "CodePackage", + "id" : "acm019582jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019583jsd" ] + }, + "acm019583jsd" : { + "type" : "CodePackage", + "id" : "acm019583jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019584jsd" ] + }, + "acm019584jsd" : { + "type" : "CodePackage", + "id" : "acm019584jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019585jsd" ] + }, + "acm019585jsd" : { + "type" : "CodePackage", + "id" : "acm019585jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019586jsd" ] + }, + "acm019586jsd" : { + "type" : "CodePackage", + "id" : "acm019586jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019581jsd" ] + }, + "acm019587jsd" : { + "type" : "ControlElement", + "id" : "acm019587jsd", + "name" : "getRange" + }, + "acm019588jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019588jsd", + "name" : "RangeHolder", + "compilationUnitId" : "acm019581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019587jsd" ] + }, + "acm019589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019589jsd", + "name" : "RangeOverlap", + "parentId" : "acm019574jsd", + "content" : [ "acm019596jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019590jsd" : { + "type" : "CodePackage", + "id" : "acm019590jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019591jsd" ] + }, + "acm019591jsd" : { + "type" : "CodePackage", + "id" : "acm019591jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019592jsd" ] + }, + "acm019592jsd" : { + "type" : "CodePackage", + "id" : "acm019592jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019593jsd" ] + }, + "acm019593jsd" : { + "type" : "CodePackage", + "id" : "acm019593jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019594jsd" ] + }, + "acm019594jsd" : { + "type" : "CodePackage", + "id" : "acm019594jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019589jsd" ] + }, + "acm019595jsd" : { + "type" : "ControlElement", + "id" : "acm019595jsd", + "name" : "RangeOverlap" + }, + "acm019596jsd" : { + "type" : "ClassUnit", + "id" : "acm019596jsd", + "name" : "RangeOverlap", + "compilationUnitId" : "acm019589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019612jsd" ], + "content" : [ "acm019595jsd" ] + }, + "acm019597jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019597jsd", + "name" : "RangeOverlapBetween", + "parentId" : "acm019574jsd", + "content" : [ "acm019605jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019598jsd" : { + "type" : "CodePackage", + "id" : "acm019598jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019599jsd" ] + }, + "acm019599jsd" : { + "type" : "CodePackage", + "id" : "acm019599jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019600jsd" ] + }, + "acm019600jsd" : { + "type" : "CodePackage", + "id" : "acm019600jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019601jsd" ] + }, + "acm019601jsd" : { + "type" : "CodePackage", + "id" : "acm019601jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019602jsd" ] + }, + "acm019602jsd" : { + "type" : "CodePackage", + "id" : "acm019602jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019597jsd" ] + }, + "acm019603jsd" : { + "type" : "ControlElement", + "id" : "acm019603jsd", + "name" : "RangeOverlapBetween" + }, + "acm019604jsd" : { + "type" : "ControlElement", + "id" : "acm019604jsd", + "name" : "findFirst" + }, + "acm019605jsd" : { + "type" : "ClassUnit", + "id" : "acm019605jsd", + "name" : "RangeOverlapBetween", + "compilationUnitId" : "acm019597jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019588jsd", "acm019596jsd", "acm019612jsd", "acm020195jsd" ], + "content" : [ "acm019603jsd", "acm019604jsd" ] + }, + "acm019606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019606jsd", + "name" : "RangeOverlapKind", + "parentId" : "acm019574jsd", + "content" : [ "acm019612jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019607jsd" : { + "type" : "CodePackage", + "id" : "acm019607jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019608jsd" ] + }, + "acm019608jsd" : { + "type" : "CodePackage", + "id" : "acm019608jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019609jsd" ] + }, + "acm019609jsd" : { + "type" : "CodePackage", + "id" : "acm019609jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019610jsd" ] + }, + "acm019610jsd" : { + "type" : "CodePackage", + "id" : "acm019610jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019611jsd" ] + }, + "acm019611jsd" : { + "type" : "CodePackage", + "id" : "acm019611jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019606jsd" ] + }, + "acm019612jsd" : { + "type" : "ClassUnit", + "id" : "acm019612jsd", + "name" : "RangeOverlapKind", + "compilationUnitId" : "acm019606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm019613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019613jsd", + "name" : "RangeOverlapWithin", + "parentId" : "acm019574jsd", + "content" : [ "acm019622jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019614jsd" : { + "type" : "CodePackage", + "id" : "acm019614jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019615jsd" ] + }, + "acm019615jsd" : { + "type" : "CodePackage", + "id" : "acm019615jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019616jsd" ] + }, + "acm019616jsd" : { + "type" : "CodePackage", + "id" : "acm019616jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019617jsd" ] + }, + "acm019617jsd" : { + "type" : "CodePackage", + "id" : "acm019617jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019618jsd" ] + }, + "acm019618jsd" : { + "type" : "CodePackage", + "id" : "acm019618jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019613jsd" ] + }, + "acm019619jsd" : { + "type" : "ControlElement", + "id" : "acm019619jsd", + "name" : "RangeOverlapWithin" + }, + "acm019620jsd" : { + "type" : "ControlElement", + "id" : "acm019620jsd", + "name" : "findOverlappingRanges" + }, + "acm019621jsd" : { + "type" : "ControlElement", + "id" : "acm019621jsd", + "name" : "findOverlappingRanges" + }, + "acm019622jsd" : { + "type" : "ClassUnit", + "id" : "acm019622jsd", + "name" : "RangeOverlapWithin", + "compilationUnitId" : "acm019613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019588jsd", "acm019596jsd", "acm019645jsd" ], + "content" : [ "acm019619jsd", "acm019620jsd", "acm019621jsd" ] + }, + "acm019623jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019623jsd", + "name" : "RangeSort", + "parentId" : "acm019574jsd", + "content" : [ "acm019638jsd", "acm019641jsd", "acm019645jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019624jsd" : { + "type" : "CodePackage", + "id" : "acm019624jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019625jsd" ] + }, + "acm019625jsd" : { + "type" : "CodePackage", + "id" : "acm019625jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019626jsd" ] + }, + "acm019626jsd" : { + "type" : "CodePackage", + "id" : "acm019626jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019627jsd" ] + }, + "acm019627jsd" : { + "type" : "CodePackage", + "id" : "acm019627jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019628jsd" ] + }, + "acm019628jsd" : { + "type" : "CodePackage", + "id" : "acm019628jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019623jsd" ] + }, + "acm019629jsd" : { + "type" : "ControlElement", + "id" : "acm019629jsd", + "name" : "RangeSort" + }, + "acm019630jsd" : { + "type" : "ControlElement", + "id" : "acm019630jsd", + "name" : "HolderComparatorWithinPartition" + }, + "acm019631jsd" : { + "type" : "ControlElement", + "id" : "acm019631jsd", + "name" : "compare" + }, + "acm019632jsd" : { + "type" : "ControlElement", + "id" : "acm019632jsd", + "name" : "sortWithinPartition" + }, + "acm019633jsd" : { + "type" : "ControlElement", + "id" : "acm019633jsd", + "name" : "RangePartitions" + }, + "acm019634jsd" : { + "type" : "ControlElement", + "id" : "acm019634jsd", + "name" : "add" + }, + "acm019635jsd" : { + "type" : "ControlElement", + "id" : "acm019635jsd", + "name" : "getPartitions" + }, + "acm019636jsd" : { + "type" : "ControlElement", + "id" : "acm019636jsd", + "name" : "partitionRanges" + }, + "acm019637jsd" : { + "type" : "ControlElement", + "id" : "acm019637jsd", + "name" : "partitionAndSortRanges" + }, + "acm019638jsd" : { + "type" : "ClassUnit", + "id" : "acm019638jsd", + "name" : "RangeSort", + "compilationUnitId" : "acm019623jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019588jsd", "acm019641jsd", "acm019645jsd" ], + "content" : [ "acm019629jsd", "acm019630jsd", "acm019631jsd", "acm019632jsd", "acm019633jsd", "acm019634jsd", "acm019635jsd", "acm019636jsd", "acm019637jsd" ] + }, + "acm019639jsd" : { + "type" : "ControlElement", + "id" : "acm019639jsd", + "name" : "HolderComparatorWithinPartition" + }, + "acm019640jsd" : { + "type" : "ControlElement", + "id" : "acm019640jsd", + "name" : "compare" + }, + "acm019641jsd" : { + "type" : "ClassUnit", + "id" : "acm019641jsd", + "name" : "HolderComparatorWithinPartition", + "compilationUnitId" : "acm019623jsd", + "parentDatatypeId" : "acm019638jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019588jsd" ], + "content" : [ "acm019639jsd", "acm019640jsd" ] + }, + "acm019642jsd" : { + "type" : "ControlElement", + "id" : "acm019642jsd", + "name" : "RangePartitions" + }, + "acm019643jsd" : { + "type" : "ControlElement", + "id" : "acm019643jsd", + "name" : "add" + }, + "acm019644jsd" : { + "type" : "ControlElement", + "id" : "acm019644jsd", + "name" : "getPartitions" + }, + "acm019645jsd" : { + "type" : "ClassUnit", + "id" : "acm019645jsd", + "name" : "RangePartitions", + "compilationUnitId" : "acm019623jsd", + "parentDatatypeId" : "acm019638jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019588jsd" ], + "content" : [ "acm019642jsd", "acm019643jsd", "acm019644jsd" ] + }, + "acm019646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019646jsd", + "name" : "RangeSortEntry", + "parentId" : "acm019574jsd", + "content" : [ "acm019658jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019647jsd" : { + "type" : "CodePackage", + "id" : "acm019647jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019648jsd" ] + }, + "acm019648jsd" : { + "type" : "CodePackage", + "id" : "acm019648jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019649jsd" ] + }, + "acm019649jsd" : { + "type" : "CodePackage", + "id" : "acm019649jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019650jsd" ] + }, + "acm019650jsd" : { + "type" : "CodePackage", + "id" : "acm019650jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019651jsd" ] + }, + "acm019651jsd" : { + "type" : "CodePackage", + "id" : "acm019651jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019646jsd" ] + }, + "acm019652jsd" : { + "type" : "ControlElement", + "id" : "acm019652jsd", + "name" : "RangeSortEntry" + }, + "acm019653jsd" : { + "type" : "ControlElement", + "id" : "acm019653jsd", + "name" : "getRange" + }, + "acm019654jsd" : { + "type" : "ControlElement", + "id" : "acm019654jsd", + "name" : "getIndexInPosition" + }, + "acm019655jsd" : { + "type" : "ControlElement", + "id" : "acm019655jsd", + "name" : "getContent" + }, + "acm019656jsd" : { + "type" : "ControlElement", + "id" : "acm019656jsd", + "name" : "setRange" + }, + "acm019657jsd" : { + "type" : "ControlElement", + "id" : "acm019657jsd", + "name" : "setIndexInPosition" + }, + "acm019658jsd" : { + "type" : "ClassUnit", + "id" : "acm019658jsd", + "name" : "RangeSortEntry", + "compilationUnitId" : "acm019646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019684jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019652jsd", "acm019653jsd", "acm019654jsd", "acm019655jsd", "acm019656jsd", "acm019657jsd" ] + }, + "acm019659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019659jsd", + "name" : "RangeSortVisual", + "parentId" : "acm019574jsd", + "content" : [ "acm019671jsd", "acm019674jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019660jsd" : { + "type" : "CodePackage", + "id" : "acm019660jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019661jsd" ] + }, + "acm019661jsd" : { + "type" : "CodePackage", + "id" : "acm019661jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019662jsd" ] + }, + "acm019662jsd" : { + "type" : "CodePackage", + "id" : "acm019662jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019663jsd" ] + }, + "acm019663jsd" : { + "type" : "CodePackage", + "id" : "acm019663jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019664jsd" ] + }, + "acm019664jsd" : { + "type" : "CodePackage", + "id" : "acm019664jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019659jsd" ] + }, + "acm019665jsd" : { + "type" : "ControlElement", + "id" : "acm019665jsd", + "name" : "RangeSortVisual" + }, + "acm019666jsd" : { + "type" : "ControlElement", + "id" : "acm019666jsd", + "name" : "visualSort" + }, + "acm019667jsd" : { + "type" : "ControlElement", + "id" : "acm019667jsd", + "name" : "findPositionOfTextRange" + }, + "acm019668jsd" : { + "type" : "ControlElement", + "id" : "acm019668jsd", + "name" : "compareTopToBottomLeftToRight" + }, + "acm019669jsd" : { + "type" : "ControlElement", + "id" : "acm019669jsd", + "name" : "ComparableMark" + }, + "acm019670jsd" : { + "type" : "ControlElement", + "id" : "acm019670jsd", + "name" : "getContent" + }, + "acm019671jsd" : { + "type" : "ClassUnit", + "id" : "acm019671jsd", + "name" : "RangeSortVisual", + "compilationUnitId" : "acm019659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019580jsd", "acm019671jsd", "acm019674jsd", "acm019684jsd" ], + "content" : [ "acm019665jsd", "acm019666jsd", "acm019667jsd", "acm019668jsd", "acm019669jsd", "acm019670jsd" ] + }, + "acm019672jsd" : { + "type" : "ControlElement", + "id" : "acm019672jsd", + "name" : "ComparableMark" + }, + "acm019673jsd" : { + "type" : "ControlElement", + "id" : "acm019673jsd", + "name" : "getContent" + }, + "acm019674jsd" : { + "type" : "ClassUnit", + "id" : "acm019674jsd", + "name" : "ComparableMark", + "compilationUnitId" : "acm019659jsd", + "parentDatatypeId" : "acm019671jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019672jsd", "acm019673jsd" ] + }, + "acm019675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019675jsd", + "name" : "RangeSortable", + "parentId" : "acm019574jsd", + "content" : [ "acm019684jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "rangesort" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019676jsd" : { + "type" : "CodePackage", + "id" : "acm019676jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019677jsd" ] + }, + "acm019677jsd" : { + "type" : "CodePackage", + "id" : "acm019677jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019678jsd" ] + }, + "acm019678jsd" : { + "type" : "CodePackage", + "id" : "acm019678jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019679jsd" ] + }, + "acm019679jsd" : { + "type" : "CodePackage", + "id" : "acm019679jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019680jsd" ] + }, + "acm019680jsd" : { + "type" : "CodePackage", + "id" : "acm019680jsd", + "name" : "rangesort", + "parentId" : null, + "content" : [ "acm019675jsd" ] + }, + "acm019681jsd" : { + "type" : "ControlElement", + "id" : "acm019681jsd", + "name" : "getRange" + }, + "acm019682jsd" : { + "type" : "ControlElement", + "id" : "acm019682jsd", + "name" : "getIndexInPosition" + }, + "acm019683jsd" : { + "type" : "ControlElement", + "id" : "acm019683jsd", + "name" : "getContent" + }, + "acm019684jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019684jsd", + "name" : "RangeSortable", + "compilationUnitId" : "acm019675jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019588jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019681jsd", "acm019682jsd", "acm019683jsd" ] + }, + "acm019685jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019685jsd", + "name" : "Citation", + "parentId" : "acm019690jsd", + "content" : [ "acm019712jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019686jsd" : { + "type" : "CodePackage", + "id" : "acm019686jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019687jsd" ] + }, + "acm019687jsd" : { + "type" : "CodePackage", + "id" : "acm019687jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019688jsd" ] + }, + "acm019688jsd" : { + "type" : "CodePackage", + "id" : "acm019688jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019689jsd" ] + }, + "acm019689jsd" : { + "type" : "CodePackage", + "id" : "acm019689jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019690jsd" ] + }, + "acm019690jsd" : { + "type" : "CodePackage", + "id" : "acm019690jsd", + "name" : "style", + "parentId" : "acm019472jsd", + "content" : [ "acm019685jsd", "acm019713jsd", "acm019731jsd", "acm019740jsd", "acm019767jsd", "acm019777jsd", "acm019787jsd", "acm019796jsd", "acm019805jsd", "acm019815jsd", "acm019823jsd", "acm019832jsd", "acm019855jsd", "acm019871jsd", "acm019879jsd", "acm019888jsd", "acm019897jsd", "acm019906jsd", "acm019913jsd", "acm019921jsd" ] + }, + "acm019691jsd" : { + "type" : "ControlElement", + "id" : "acm019691jsd", + "name" : "Citation" + }, + "acm019692jsd" : { + "type" : "ControlElement", + "id" : "acm019692jsd", + "name" : "getCitationKey" + }, + "acm019693jsd" : { + "type" : "ControlElement", + "id" : "acm019693jsd", + "name" : "getPageInfo" + }, + "acm019694jsd" : { + "type" : "ControlElement", + "id" : "acm019694jsd", + "name" : "getIsFirstAppearanceOfSource" + }, + "acm019695jsd" : { + "type" : "ControlElement", + "id" : "acm019695jsd", + "name" : "getBibEntry" + }, + "acm019696jsd" : { + "type" : "ControlElement", + "id" : "acm019696jsd", + "name" : "lookup" + }, + "acm019697jsd" : { + "type" : "ControlElement", + "id" : "acm019697jsd", + "name" : "lookup" + }, + "acm019698jsd" : { + "type" : "ControlElement", + "id" : "acm019698jsd", + "name" : "lookupInDatabases" + }, + "acm019699jsd" : { + "type" : "ControlElement", + "id" : "acm019699jsd", + "name" : "getLookupResult" + }, + "acm019700jsd" : { + "type" : "ControlElement", + "id" : "acm019700jsd", + "name" : "setLookupResult" + }, + "acm019701jsd" : { + "type" : "ControlElement", + "id" : "acm019701jsd", + "name" : "isUnresolved" + }, + "acm019702jsd" : { + "type" : "ControlElement", + "id" : "acm019702jsd", + "name" : "getNumber" + }, + "acm019703jsd" : { + "type" : "ControlElement", + "id" : "acm019703jsd", + "name" : "setNumber" + }, + "acm019704jsd" : { + "type" : "ControlElement", + "id" : "acm019704jsd", + "name" : "getNumberOrThrow" + }, + "acm019705jsd" : { + "type" : "ControlElement", + "id" : "acm019705jsd", + "name" : "getUniqueLetter" + }, + "acm019706jsd" : { + "type" : "ControlElement", + "id" : "acm019706jsd", + "name" : "setUniqueLetter" + }, + "acm019707jsd" : { + "type" : "ControlElement", + "id" : "acm019707jsd", + "name" : "setPageInfo" + }, + "acm019708jsd" : { + "type" : "ControlElement", + "id" : "acm019708jsd", + "name" : "setIsFirstAppearanceOfSource" + }, + "acm019709jsd" : { + "type" : "ControlElement", + "id" : "acm019709jsd", + "name" : "setLookupResult" + }, + "acm019710jsd" : { + "type" : "ControlElement", + "id" : "acm019710jsd", + "name" : "setNumber" + }, + "acm019711jsd" : { + "type" : "ControlElement", + "id" : "acm019711jsd", + "name" : "setUniqueLetter" + }, + "acm019712jsd" : { + "type" : "ClassUnit", + "id" : "acm019712jsd", + "name" : "Citation", + "compilationUnitId" : "acm019685jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019786jsd", "acm019814jsd", "acm019878jsd" ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019532jsd", "acm019712jsd", "acm019776jsd" ], + "content" : [ "acm019691jsd", "acm019692jsd", "acm019693jsd", "acm019694jsd", "acm019695jsd", "acm019696jsd", "acm019697jsd", "acm019698jsd", "acm019699jsd", "acm019700jsd", "acm019701jsd", "acm019702jsd", "acm019703jsd", "acm019704jsd", "acm019705jsd", "acm019706jsd", "acm019707jsd", "acm019708jsd", "acm019709jsd", "acm019710jsd", "acm019711jsd" ] + }, + "acm019713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019713jsd", + "name" : "CitationGroup", + "parentId" : "acm019690jsd", + "content" : [ "acm019730jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019714jsd" : { + "type" : "CodePackage", + "id" : "acm019714jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019715jsd" ] + }, + "acm019715jsd" : { + "type" : "CodePackage", + "id" : "acm019715jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019716jsd" ] + }, + "acm019716jsd" : { + "type" : "CodePackage", + "id" : "acm019716jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019717jsd" ] + }, + "acm019717jsd" : { + "type" : "CodePackage", + "id" : "acm019717jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019718jsd" ] + }, + "acm019718jsd" : { + "type" : "CodePackage", + "id" : "acm019718jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019713jsd" ] + }, + "acm019719jsd" : { + "type" : "ControlElement", + "id" : "acm019719jsd", + "name" : "CitationGroup" + }, + "acm019720jsd" : { + "type" : "ControlElement", + "id" : "acm019720jsd", + "name" : "numberOfCitations" + }, + "acm019721jsd" : { + "type" : "ControlElement", + "id" : "acm019721jsd", + "name" : "imposeLocalOrder" + }, + "acm019722jsd" : { + "type" : "ControlElement", + "id" : "acm019722jsd", + "name" : "getLocalOrder" + }, + "acm019723jsd" : { + "type" : "ControlElement", + "id" : "acm019723jsd", + "name" : "getCitationsInLocalOrder" + }, + "acm019724jsd" : { + "type" : "ControlElement", + "id" : "acm019724jsd", + "name" : "setIndexInGlobalOrder" + }, + "acm019725jsd" : { + "type" : "ControlElement", + "id" : "acm019725jsd", + "name" : "getIndexInGlobalOrder" + }, + "acm019726jsd" : { + "type" : "ControlElement", + "id" : "acm019726jsd", + "name" : "getReferenceMarkNameForLinking" + }, + "acm019727jsd" : { + "type" : "ControlElement", + "id" : "acm019727jsd", + "name" : "setReferenceMarkNameForLinking" + }, + "acm019728jsd" : { + "type" : "ControlElement", + "id" : "acm019728jsd", + "name" : "setCitationMarker" + }, + "acm019729jsd" : { + "type" : "ControlElement", + "id" : "acm019729jsd", + "name" : "getCitationMarker" + }, + "acm019730jsd" : { + "type" : "ClassUnit", + "id" : "acm019730jsd", + "name" : "CitationGroup", + "compilationUnitId" : "acm019713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019532jsd", "acm019712jsd", "acm019739jsd", "acm019831jsd", "acm019896jsd", "acm019920jsd" ], + "content" : [ "acm019719jsd", "acm019720jsd", "acm019721jsd", "acm019722jsd", "acm019723jsd", "acm019724jsd", "acm019725jsd", "acm019726jsd", "acm019727jsd", "acm019728jsd", "acm019729jsd" ] + }, + "acm019731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019731jsd", + "name" : "CitationGroupId", + "parentId" : "acm019690jsd", + "content" : [ "acm019739jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019732jsd" : { + "type" : "CodePackage", + "id" : "acm019732jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019733jsd" ] + }, + "acm019733jsd" : { + "type" : "CodePackage", + "id" : "acm019733jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019734jsd" ] + }, + "acm019734jsd" : { + "type" : "CodePackage", + "id" : "acm019734jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019735jsd" ] + }, + "acm019735jsd" : { + "type" : "CodePackage", + "id" : "acm019735jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019736jsd" ] + }, + "acm019736jsd" : { + "type" : "CodePackage", + "id" : "acm019736jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019731jsd" ] + }, + "acm019737jsd" : { + "type" : "ControlElement", + "id" : "acm019737jsd", + "name" : "CitationGroupId" + }, + "acm019738jsd" : { + "type" : "ControlElement", + "id" : "acm019738jsd", + "name" : "citationGroupIdAsString" + }, + "acm019739jsd" : { + "type" : "ClassUnit", + "id" : "acm019739jsd", + "name" : "CitationGroupId", + "compilationUnitId" : "acm019731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019737jsd", "acm019738jsd" ] + }, + "acm019740jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019740jsd", + "name" : "CitationGroups", + "parentId" : "acm019690jsd", + "content" : [ "acm019766jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019741jsd" : { + "type" : "CodePackage", + "id" : "acm019741jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019742jsd" ] + }, + "acm019742jsd" : { + "type" : "CodePackage", + "id" : "acm019742jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019743jsd" ] + }, + "acm019743jsd" : { + "type" : "CodePackage", + "id" : "acm019743jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019744jsd" ] + }, + "acm019744jsd" : { + "type" : "CodePackage", + "id" : "acm019744jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019745jsd" ] + }, + "acm019745jsd" : { + "type" : "CodePackage", + "id" : "acm019745jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019740jsd" ] + }, + "acm019746jsd" : { + "type" : "ControlElement", + "id" : "acm019746jsd", + "name" : "CitationGroups" + }, + "acm019747jsd" : { + "type" : "ControlElement", + "id" : "acm019747jsd", + "name" : "numberOfCitationGroups" + }, + "acm019748jsd" : { + "type" : "ControlElement", + "id" : "acm019748jsd", + "name" : "distributeToCitations" + }, + "acm019749jsd" : { + "type" : "ControlElement", + "id" : "acm019749jsd", + "name" : "lookupCitations" + }, + "acm019750jsd" : { + "type" : "ControlElement", + "id" : "acm019750jsd", + "name" : "getCitationGroupsUnordered" + }, + "acm019751jsd" : { + "type" : "ControlElement", + "id" : "acm019751jsd", + "name" : "getCitationGroupsInGlobalOrder" + }, + "acm019752jsd" : { + "type" : "ControlElement", + "id" : "acm019752jsd", + "name" : "setGlobalOrder" + }, + "acm019753jsd" : { + "type" : "ControlElement", + "id" : "acm019753jsd", + "name" : "hasGlobalOrder" + }, + "acm019754jsd" : { + "type" : "ControlElement", + "id" : "acm019754jsd", + "name" : "imposeLocalOrder" + }, + "acm019755jsd" : { + "type" : "ControlElement", + "id" : "acm019755jsd", + "name" : "getCitedKeysUnordered" + }, + "acm019756jsd" : { + "type" : "ControlElement", + "id" : "acm019756jsd", + "name" : "getCitedKeysSortedInOrderOfAppearance" + }, + "acm019757jsd" : { + "type" : "ControlElement", + "id" : "acm019757jsd", + "name" : "getBibliography" + }, + "acm019758jsd" : { + "type" : "ControlElement", + "id" : "acm019758jsd", + "name" : "getUnresolvedKeys" + }, + "acm019759jsd" : { + "type" : "ControlElement", + "id" : "acm019759jsd", + "name" : "createNumberedBibliographySortedInOrderOfAppearance" + }, + "acm019760jsd" : { + "type" : "ControlElement", + "id" : "acm019760jsd", + "name" : "createPlainBibliographySortedByComparator" + }, + "acm019761jsd" : { + "type" : "ControlElement", + "id" : "acm019761jsd", + "name" : "createNumberedBibliographySortedByComparator" + }, + "acm019762jsd" : { + "type" : "ControlElement", + "id" : "acm019762jsd", + "name" : "getCitationGroup" + }, + "acm019763jsd" : { + "type" : "ControlElement", + "id" : "acm019763jsd", + "name" : "citationGroupsProvideReferenceMarkNameForLinking" + }, + "acm019764jsd" : { + "type" : "ControlElement", + "id" : "acm019764jsd", + "name" : "afterCreateCitationGroup" + }, + "acm019765jsd" : { + "type" : "ControlElement", + "id" : "acm019765jsd", + "name" : "afterRemoveCitationGroup" + }, + "acm019766jsd" : { + "type" : "ClassUnit", + "id" : "acm019766jsd", + "name" : "CitationGroups", + "compilationUnitId" : "acm019740jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019712jsd", "acm019730jsd", "acm019739jsd", "acm019766jsd", "acm019822jsd", "acm019854jsd", "acm019870jsd", "acm020165jsd" ], + "content" : [ "acm019746jsd", "acm019747jsd", "acm019748jsd", "acm019749jsd", "acm019750jsd", "acm019751jsd", "acm019752jsd", "acm019753jsd", "acm019754jsd", "acm019755jsd", "acm019756jsd", "acm019757jsd", "acm019758jsd", "acm019759jsd", "acm019760jsd", "acm019761jsd", "acm019762jsd", "acm019763jsd", "acm019764jsd", "acm019765jsd" ] + }, + "acm019767jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019767jsd", + "name" : "CitationLookupResult", + "parentId" : "acm019690jsd", + "content" : [ "acm019776jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019768jsd" : { + "type" : "CodePackage", + "id" : "acm019768jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019769jsd" ] + }, + "acm019769jsd" : { + "type" : "CodePackage", + "id" : "acm019769jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019770jsd" ] + }, + "acm019770jsd" : { + "type" : "CodePackage", + "id" : "acm019770jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019771jsd" ] + }, + "acm019771jsd" : { + "type" : "CodePackage", + "id" : "acm019771jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019772jsd" ] + }, + "acm019772jsd" : { + "type" : "CodePackage", + "id" : "acm019772jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019767jsd" ] + }, + "acm019773jsd" : { + "type" : "ControlElement", + "id" : "acm019773jsd", + "name" : "CitationLookupResult" + }, + "acm019774jsd" : { + "type" : "ControlElement", + "id" : "acm019774jsd", + "name" : "equals" + }, + "acm019775jsd" : { + "type" : "ControlElement", + "id" : "acm019775jsd", + "name" : "hashCode" + }, + "acm019776jsd" : { + "type" : "ClassUnit", + "id" : "acm019776jsd", + "name" : "CitationLookupResult", + "compilationUnitId" : "acm019767jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019776jsd" ], + "content" : [ "acm019773jsd", "acm019774jsd", "acm019775jsd" ] + }, + "acm019777jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019777jsd", + "name" : "CitationMarkerEntry", + "parentId" : "acm019690jsd", + "content" : [ "acm019786jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019778jsd" : { + "type" : "CodePackage", + "id" : "acm019778jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019779jsd" ] + }, + "acm019779jsd" : { + "type" : "CodePackage", + "id" : "acm019779jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019780jsd" ] + }, + "acm019780jsd" : { + "type" : "CodePackage", + "id" : "acm019780jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019781jsd" ] + }, + "acm019781jsd" : { + "type" : "CodePackage", + "id" : "acm019781jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019782jsd" ] + }, + "acm019782jsd" : { + "type" : "CodePackage", + "id" : "acm019782jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019777jsd" ] + }, + "acm019783jsd" : { + "type" : "ControlElement", + "id" : "acm019783jsd", + "name" : "getUniqueLetter" + }, + "acm019784jsd" : { + "type" : "ControlElement", + "id" : "acm019784jsd", + "name" : "getPageInfo" + }, + "acm019785jsd" : { + "type" : "ControlElement", + "id" : "acm019785jsd", + "name" : "getIsFirstAppearanceOfSource" + }, + "acm019786jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019786jsd", + "name" : "CitationMarkerEntry", + "compilationUnitId" : "acm019777jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019795jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019783jsd", "acm019784jsd", "acm019785jsd" ] + }, + "acm019787jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019787jsd", + "name" : "CitationMarkerNormEntry", + "parentId" : "acm019690jsd", + "content" : [ "acm019795jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019788jsd" : { + "type" : "CodePackage", + "id" : "acm019788jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019789jsd" ] + }, + "acm019789jsd" : { + "type" : "CodePackage", + "id" : "acm019789jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019790jsd" ] + }, + "acm019790jsd" : { + "type" : "CodePackage", + "id" : "acm019790jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019791jsd" ] + }, + "acm019791jsd" : { + "type" : "CodePackage", + "id" : "acm019791jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019792jsd" ] + }, + "acm019792jsd" : { + "type" : "CodePackage", + "id" : "acm019792jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019787jsd" ] + }, + "acm019793jsd" : { + "type" : "ControlElement", + "id" : "acm019793jsd", + "name" : "getCitationKey" + }, + "acm019794jsd" : { + "type" : "ControlElement", + "id" : "acm019794jsd", + "name" : "getLookupResult" + }, + "acm019795jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019795jsd", + "name" : "CitationMarkerNormEntry", + "compilationUnitId" : "acm019787jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019776jsd" ], + "content" : [ "acm019793jsd", "acm019794jsd" ] + }, + "acm019796jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019796jsd", + "name" : "CitationMarkerNumericBibEntry", + "parentId" : "acm019690jsd", + "content" : [ "acm019804jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019797jsd" : { + "type" : "CodePackage", + "id" : "acm019797jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019798jsd" ] + }, + "acm019798jsd" : { + "type" : "CodePackage", + "id" : "acm019798jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019799jsd" ] + }, + "acm019799jsd" : { + "type" : "CodePackage", + "id" : "acm019799jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019800jsd" ] + }, + "acm019800jsd" : { + "type" : "CodePackage", + "id" : "acm019800jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019801jsd" ] + }, + "acm019801jsd" : { + "type" : "CodePackage", + "id" : "acm019801jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019796jsd" ] + }, + "acm019802jsd" : { + "type" : "ControlElement", + "id" : "acm019802jsd", + "name" : "getCitationKey" + }, + "acm019803jsd" : { + "type" : "ControlElement", + "id" : "acm019803jsd", + "name" : "getNumber" + }, + "acm019804jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019804jsd", + "name" : "CitationMarkerNumericBibEntry", + "compilationUnitId" : "acm019796jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019802jsd", "acm019803jsd" ] + }, + "acm019805jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019805jsd", + "name" : "CitationMarkerNumericEntry", + "parentId" : "acm019690jsd", + "content" : [ "acm019814jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019806jsd" : { + "type" : "CodePackage", + "id" : "acm019806jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019807jsd" ] + }, + "acm019807jsd" : { + "type" : "CodePackage", + "id" : "acm019807jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019808jsd" ] + }, + "acm019808jsd" : { + "type" : "CodePackage", + "id" : "acm019808jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019809jsd" ] + }, + "acm019809jsd" : { + "type" : "CodePackage", + "id" : "acm019809jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019810jsd" ] + }, + "acm019810jsd" : { + "type" : "CodePackage", + "id" : "acm019810jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019805jsd" ] + }, + "acm019811jsd" : { + "type" : "ControlElement", + "id" : "acm019811jsd", + "name" : "getCitationKey" + }, + "acm019812jsd" : { + "type" : "ControlElement", + "id" : "acm019812jsd", + "name" : "getNumber" + }, + "acm019813jsd" : { + "type" : "ControlElement", + "id" : "acm019813jsd", + "name" : "getPageInfo" + }, + "acm019814jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019814jsd", + "name" : "CitationMarkerNumericEntry", + "compilationUnitId" : "acm019805jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019811jsd", "acm019812jsd", "acm019813jsd" ] + }, + "acm019815jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019815jsd", + "name" : "CitationPath", + "parentId" : "acm019690jsd", + "content" : [ "acm019822jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019816jsd" : { + "type" : "CodePackage", + "id" : "acm019816jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019817jsd" ] + }, + "acm019817jsd" : { + "type" : "CodePackage", + "id" : "acm019817jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019818jsd" ] + }, + "acm019818jsd" : { + "type" : "CodePackage", + "id" : "acm019818jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019819jsd" ] + }, + "acm019819jsd" : { + "type" : "CodePackage", + "id" : "acm019819jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019820jsd" ] + }, + "acm019820jsd" : { + "type" : "CodePackage", + "id" : "acm019820jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019815jsd" ] + }, + "acm019821jsd" : { + "type" : "ControlElement", + "id" : "acm019821jsd", + "name" : "CitationPath" + }, + "acm019822jsd" : { + "type" : "ClassUnit", + "id" : "acm019822jsd", + "name" : "CitationPath", + "compilationUnitId" : "acm019815jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019739jsd" ], + "content" : [ "acm019821jsd" ] + }, + "acm019823jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019823jsd", + "name" : "CitationType", + "parentId" : "acm019690jsd", + "content" : [ "acm019831jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019824jsd" : { + "type" : "CodePackage", + "id" : "acm019824jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019825jsd" ] + }, + "acm019825jsd" : { + "type" : "CodePackage", + "id" : "acm019825jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019826jsd" ] + }, + "acm019826jsd" : { + "type" : "CodePackage", + "id" : "acm019826jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019827jsd" ] + }, + "acm019827jsd" : { + "type" : "CodePackage", + "id" : "acm019827jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019828jsd" ] + }, + "acm019828jsd" : { + "type" : "CodePackage", + "id" : "acm019828jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019823jsd" ] + }, + "acm019829jsd" : { + "type" : "ControlElement", + "id" : "acm019829jsd", + "name" : "inParenthesis" + }, + "acm019830jsd" : { + "type" : "ControlElement", + "id" : "acm019830jsd", + "name" : "withText" + }, + "acm019831jsd" : { + "type" : "ClassUnit", + "id" : "acm019831jsd", + "name" : "CitationType", + "compilationUnitId" : "acm019823jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019829jsd", "acm019830jsd" ] + }, + "acm019832jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019832jsd", + "name" : "CitedKey", + "parentId" : "acm019690jsd", + "content" : [ "acm019854jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019833jsd" : { + "type" : "CodePackage", + "id" : "acm019833jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019834jsd" ] + }, + "acm019834jsd" : { + "type" : "CodePackage", + "id" : "acm019834jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019835jsd" ] + }, + "acm019835jsd" : { + "type" : "CodePackage", + "id" : "acm019835jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019836jsd" ] + }, + "acm019836jsd" : { + "type" : "CodePackage", + "id" : "acm019836jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019837jsd" ] + }, + "acm019837jsd" : { + "type" : "CodePackage", + "id" : "acm019837jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019832jsd" ] + }, + "acm019838jsd" : { + "type" : "ControlElement", + "id" : "acm019838jsd", + "name" : "CitedKey" + }, + "acm019839jsd" : { + "type" : "ControlElement", + "id" : "acm019839jsd", + "name" : "getCitationKey" + }, + "acm019840jsd" : { + "type" : "ControlElement", + "id" : "acm019840jsd", + "name" : "getBibEntry" + }, + "acm019841jsd" : { + "type" : "ControlElement", + "id" : "acm019841jsd", + "name" : "getLookupResult" + }, + "acm019842jsd" : { + "type" : "ControlElement", + "id" : "acm019842jsd", + "name" : "getNumber" + }, + "acm019843jsd" : { + "type" : "ControlElement", + "id" : "acm019843jsd", + "name" : "setNumber" + }, + "acm019844jsd" : { + "type" : "ControlElement", + "id" : "acm019844jsd", + "name" : "getCitationPaths" + }, + "acm019845jsd" : { + "type" : "ControlElement", + "id" : "acm019845jsd", + "name" : "getUniqueLetter" + }, + "acm019846jsd" : { + "type" : "ControlElement", + "id" : "acm019846jsd", + "name" : "setUniqueLetter" + }, + "acm019847jsd" : { + "type" : "ControlElement", + "id" : "acm019847jsd", + "name" : "getNormalizedCitationMarker" + }, + "acm019848jsd" : { + "type" : "ControlElement", + "id" : "acm019848jsd", + "name" : "setNormalizedCitationMarker" + }, + "acm019849jsd" : { + "type" : "ControlElement", + "id" : "acm019849jsd", + "name" : "addPath" + }, + "acm019850jsd" : { + "type" : "ControlElement", + "id" : "acm019850jsd", + "name" : "lookupInDatabases" + }, + "acm019851jsd" : { + "type" : "ControlElement", + "id" : "acm019851jsd", + "name" : "distributeLookupResult" + }, + "acm019852jsd" : { + "type" : "ControlElement", + "id" : "acm019852jsd", + "name" : "distributeNumber" + }, + "acm019853jsd" : { + "type" : "ControlElement", + "id" : "acm019853jsd", + "name" : "distributeUniqueLetter" + }, + "acm019854jsd" : { + "type" : "ClassUnit", + "id" : "acm019854jsd", + "name" : "CitedKey", + "compilationUnitId" : "acm019832jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019795jsd", "acm019804jsd", "acm019887jsd" ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019532jsd", "acm019712jsd", "acm019766jsd", "acm019776jsd", "acm019822jsd" ], + "content" : [ "acm019838jsd", "acm019839jsd", "acm019840jsd", "acm019841jsd", "acm019842jsd", "acm019843jsd", "acm019844jsd", "acm019845jsd", "acm019846jsd", "acm019847jsd", "acm019848jsd", "acm019849jsd", "acm019850jsd", "acm019851jsd", "acm019852jsd", "acm019853jsd" ] + }, + "acm019855jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019855jsd", + "name" : "CitedKeys", + "parentId" : "acm019690jsd", + "content" : [ "acm019870jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019856jsd" : { + "type" : "CodePackage", + "id" : "acm019856jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019857jsd" ] + }, + "acm019857jsd" : { + "type" : "CodePackage", + "id" : "acm019857jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019858jsd" ] + }, + "acm019858jsd" : { + "type" : "CodePackage", + "id" : "acm019858jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019859jsd" ] + }, + "acm019859jsd" : { + "type" : "CodePackage", + "id" : "acm019859jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019860jsd" ] + }, + "acm019860jsd" : { + "type" : "CodePackage", + "id" : "acm019860jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019855jsd" ] + }, + "acm019861jsd" : { + "type" : "ControlElement", + "id" : "acm019861jsd", + "name" : "CitedKeys" + }, + "acm019862jsd" : { + "type" : "ControlElement", + "id" : "acm019862jsd", + "name" : "values" + }, + "acm019863jsd" : { + "type" : "ControlElement", + "id" : "acm019863jsd", + "name" : "get" + }, + "acm019864jsd" : { + "type" : "ControlElement", + "id" : "acm019864jsd", + "name" : "sortByComparator" + }, + "acm019865jsd" : { + "type" : "ControlElement", + "id" : "acm019865jsd", + "name" : "numberCitedKeysInCurrentOrder" + }, + "acm019866jsd" : { + "type" : "ControlElement", + "id" : "acm019866jsd", + "name" : "lookupInDatabases" + }, + "acm019867jsd" : { + "type" : "ControlElement", + "id" : "acm019867jsd", + "name" : "distributeLookupResults" + }, + "acm019868jsd" : { + "type" : "ControlElement", + "id" : "acm019868jsd", + "name" : "distributeNumbers" + }, + "acm019869jsd" : { + "type" : "ControlElement", + "id" : "acm019869jsd", + "name" : "distributeUniqueLetters" + }, + "acm019870jsd" : { + "type" : "ClassUnit", + "id" : "acm019870jsd", + "name" : "CitedKeys", + "compilationUnitId" : "acm019855jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019766jsd", "acm019854jsd", "acm019905jsd" ], + "content" : [ "acm019861jsd", "acm019862jsd", "acm019863jsd", "acm019864jsd", "acm019865jsd", "acm019866jsd", "acm019867jsd", "acm019868jsd", "acm019869jsd" ] + }, + "acm019871jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019871jsd", + "name" : "ComparableCitation", + "parentId" : "acm019690jsd", + "content" : [ "acm019878jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019872jsd" : { + "type" : "CodePackage", + "id" : "acm019872jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019873jsd" ] + }, + "acm019873jsd" : { + "type" : "CodePackage", + "id" : "acm019873jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019874jsd" ] + }, + "acm019874jsd" : { + "type" : "CodePackage", + "id" : "acm019874jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019875jsd" ] + }, + "acm019875jsd" : { + "type" : "CodePackage", + "id" : "acm019875jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019876jsd" ] + }, + "acm019876jsd" : { + "type" : "CodePackage", + "id" : "acm019876jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019871jsd" ] + }, + "acm019877jsd" : { + "type" : "ControlElement", + "id" : "acm019877jsd", + "name" : "getPageInfo" + }, + "acm019878jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019878jsd", + "name" : "ComparableCitation", + "compilationUnitId" : "acm019871jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm019887jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019877jsd" ] + }, + "acm019879jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019879jsd", + "name" : "ComparableCitedKey", + "parentId" : "acm019690jsd", + "content" : [ "acm019887jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019880jsd" : { + "type" : "CodePackage", + "id" : "acm019880jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019881jsd" ] + }, + "acm019881jsd" : { + "type" : "CodePackage", + "id" : "acm019881jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019882jsd" ] + }, + "acm019882jsd" : { + "type" : "CodePackage", + "id" : "acm019882jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019883jsd" ] + }, + "acm019883jsd" : { + "type" : "CodePackage", + "id" : "acm019883jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019884jsd" ] + }, + "acm019884jsd" : { + "type" : "CodePackage", + "id" : "acm019884jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019879jsd" ] + }, + "acm019885jsd" : { + "type" : "ControlElement", + "id" : "acm019885jsd", + "name" : "getCitationKey" + }, + "acm019886jsd" : { + "type" : "ControlElement", + "id" : "acm019886jsd", + "name" : "getBibEntry" + }, + "acm019887jsd" : { + "type" : "InterfaceUnit", + "id" : "acm019887jsd", + "name" : "ComparableCitedKey", + "compilationUnitId" : "acm019879jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm019885jsd", "acm019886jsd" ] + }, + "acm019888jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019888jsd", + "name" : "CompareCitation", + "parentId" : "acm019690jsd", + "content" : [ "acm019896jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019889jsd" : { + "type" : "CodePackage", + "id" : "acm019889jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019890jsd" ] + }, + "acm019890jsd" : { + "type" : "CodePackage", + "id" : "acm019890jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019891jsd" ] + }, + "acm019891jsd" : { + "type" : "CodePackage", + "id" : "acm019891jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019892jsd" ] + }, + "acm019892jsd" : { + "type" : "CodePackage", + "id" : "acm019892jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019893jsd" ] + }, + "acm019893jsd" : { + "type" : "CodePackage", + "id" : "acm019893jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019888jsd" ] + }, + "acm019894jsd" : { + "type" : "ControlElement", + "id" : "acm019894jsd", + "name" : "CompareCitation" + }, + "acm019895jsd" : { + "type" : "ControlElement", + "id" : "acm019895jsd", + "name" : "compare" + }, + "acm019896jsd" : { + "type" : "ClassUnit", + "id" : "acm019896jsd", + "name" : "CompareCitation", + "compilationUnitId" : "acm019888jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019878jsd", "acm019905jsd" ], + "content" : [ "acm019894jsd", "acm019895jsd" ] + }, + "acm019897jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019897jsd", + "name" : "CompareCitedKey", + "parentId" : "acm019690jsd", + "content" : [ "acm019905jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019898jsd" : { + "type" : "CodePackage", + "id" : "acm019898jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019899jsd" ] + }, + "acm019899jsd" : { + "type" : "CodePackage", + "id" : "acm019899jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019900jsd" ] + }, + "acm019900jsd" : { + "type" : "CodePackage", + "id" : "acm019900jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019901jsd" ] + }, + "acm019901jsd" : { + "type" : "CodePackage", + "id" : "acm019901jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019902jsd" ] + }, + "acm019902jsd" : { + "type" : "CodePackage", + "id" : "acm019902jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019897jsd" ] + }, + "acm019903jsd" : { + "type" : "ControlElement", + "id" : "acm019903jsd", + "name" : "CompareCitedKey" + }, + "acm019904jsd" : { + "type" : "ControlElement", + "id" : "acm019904jsd", + "name" : "compare" + }, + "acm019905jsd" : { + "type" : "ClassUnit", + "id" : "acm019905jsd", + "name" : "CompareCitedKey", + "compilationUnitId" : "acm019897jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019887jsd" ], + "content" : [ "acm019903jsd", "acm019904jsd" ] + }, + "acm019906jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019906jsd", + "name" : "NonUniqueCitationMarker", + "parentId" : "acm019690jsd", + "content" : [ "acm019912jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019907jsd" : { + "type" : "CodePackage", + "id" : "acm019907jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019908jsd" ] + }, + "acm019908jsd" : { + "type" : "CodePackage", + "id" : "acm019908jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019909jsd" ] + }, + "acm019909jsd" : { + "type" : "CodePackage", + "id" : "acm019909jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019910jsd" ] + }, + "acm019910jsd" : { + "type" : "CodePackage", + "id" : "acm019910jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019911jsd" ] + }, + "acm019911jsd" : { + "type" : "CodePackage", + "id" : "acm019911jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019906jsd" ] + }, + "acm019912jsd" : { + "type" : "ClassUnit", + "id" : "acm019912jsd", + "name" : "NonUniqueCitationMarker", + "compilationUnitId" : "acm019906jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm019913jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019913jsd", + "name" : "OODataModel", + "parentId" : "acm019690jsd", + "content" : [ "acm019920jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019914jsd" : { + "type" : "CodePackage", + "id" : "acm019914jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019915jsd" ] + }, + "acm019915jsd" : { + "type" : "CodePackage", + "id" : "acm019915jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019916jsd" ] + }, + "acm019916jsd" : { + "type" : "CodePackage", + "id" : "acm019916jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019917jsd" ] + }, + "acm019917jsd" : { + "type" : "CodePackage", + "id" : "acm019917jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019918jsd" ] + }, + "acm019918jsd" : { + "type" : "CodePackage", + "id" : "acm019918jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019913jsd" ] + }, + "acm019919jsd" : { + "type" : "ControlElement", + "id" : "acm019919jsd", + "name" : "fakePageInfos" + }, + "acm019920jsd" : { + "type" : "ClassUnit", + "id" : "acm019920jsd", + "name" : "OODataModel", + "compilationUnitId" : "acm019913jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019919jsd" ] + }, + "acm019921jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019921jsd", + "name" : "PageInfo", + "parentId" : "acm019690jsd", + "content" : [ "acm019930jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019922jsd" : { + "type" : "CodePackage", + "id" : "acm019922jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019923jsd" ] + }, + "acm019923jsd" : { + "type" : "CodePackage", + "id" : "acm019923jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019924jsd" ] + }, + "acm019924jsd" : { + "type" : "CodePackage", + "id" : "acm019924jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019925jsd" ] + }, + "acm019925jsd" : { + "type" : "CodePackage", + "id" : "acm019925jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019926jsd" ] + }, + "acm019926jsd" : { + "type" : "CodePackage", + "id" : "acm019926jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm019921jsd" ] + }, + "acm019927jsd" : { + "type" : "ControlElement", + "id" : "acm019927jsd", + "name" : "PageInfo" + }, + "acm019928jsd" : { + "type" : "ControlElement", + "id" : "acm019928jsd", + "name" : "normalizePageInfo" + }, + "acm019929jsd" : { + "type" : "ControlElement", + "id" : "acm019929jsd", + "name" : "comparePageInfo" + }, + "acm019930jsd" : { + "type" : "ClassUnit", + "id" : "acm019930jsd", + "name" : "PageInfo", + "compilationUnitId" : "acm019921jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm019927jsd", "acm019928jsd", "acm019929jsd" ] + }, + "acm019931jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019931jsd", + "name" : "CreationException", + "parentId" : "acm019936jsd", + "content" : [ "acm019938jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019932jsd" : { + "type" : "CodePackage", + "id" : "acm019932jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019933jsd" ] + }, + "acm019933jsd" : { + "type" : "CodePackage", + "id" : "acm019933jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019934jsd" ] + }, + "acm019934jsd" : { + "type" : "CodePackage", + "id" : "acm019934jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019935jsd" ] + }, + "acm019935jsd" : { + "type" : "CodePackage", + "id" : "acm019935jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019936jsd" ] + }, + "acm019936jsd" : { + "type" : "CodePackage", + "id" : "acm019936jsd", + "name" : "uno", + "parentId" : "acm019472jsd", + "content" : [ "acm019931jsd", "acm019939jsd", "acm019948jsd", "acm019960jsd", "acm019969jsd", "acm019979jsd", "acm019990jsd", "acm019999jsd", "acm020008jsd", "acm020025jsd", "acm020035jsd", "acm020049jsd", "acm020060jsd", "acm020071jsd", "acm020085jsd", "acm020097jsd", "acm020112jsd", "acm020123jsd", "acm020134jsd" ] + }, + "acm019937jsd" : { + "type" : "ControlElement", + "id" : "acm019937jsd", + "name" : "CreationException" + }, + "acm019938jsd" : { + "type" : "ClassUnit", + "id" : "acm019938jsd", + "name" : "CreationException", + "compilationUnitId" : "acm019931jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019937jsd" ] + }, + "acm019939jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019939jsd", + "name" : "NoDocumentException", + "parentId" : "acm019936jsd", + "content" : [ "acm019947jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019940jsd" : { + "type" : "CodePackage", + "id" : "acm019940jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019941jsd" ] + }, + "acm019941jsd" : { + "type" : "CodePackage", + "id" : "acm019941jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019942jsd" ] + }, + "acm019942jsd" : { + "type" : "CodePackage", + "id" : "acm019942jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019943jsd" ] + }, + "acm019943jsd" : { + "type" : "CodePackage", + "id" : "acm019943jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019944jsd" ] + }, + "acm019944jsd" : { + "type" : "CodePackage", + "id" : "acm019944jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019939jsd" ] + }, + "acm019945jsd" : { + "type" : "ControlElement", + "id" : "acm019945jsd", + "name" : "NoDocumentException" + }, + "acm019946jsd" : { + "type" : "ControlElement", + "id" : "acm019946jsd", + "name" : "NoDocumentException" + }, + "acm019947jsd" : { + "type" : "ClassUnit", + "id" : "acm019947jsd", + "name" : "NoDocumentException", + "compilationUnitId" : "acm019939jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019945jsd", "acm019946jsd" ] + }, + "acm019948jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019948jsd", + "name" : "UnoBookmark", + "parentId" : "acm019936jsd", + "content" : [ "acm019959jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019949jsd" : { + "type" : "CodePackage", + "id" : "acm019949jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019950jsd" ] + }, + "acm019950jsd" : { + "type" : "CodePackage", + "id" : "acm019950jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019951jsd" ] + }, + "acm019951jsd" : { + "type" : "CodePackage", + "id" : "acm019951jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019952jsd" ] + }, + "acm019952jsd" : { + "type" : "CodePackage", + "id" : "acm019952jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019953jsd" ] + }, + "acm019953jsd" : { + "type" : "CodePackage", + "id" : "acm019953jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019948jsd" ] + }, + "acm019954jsd" : { + "type" : "ControlElement", + "id" : "acm019954jsd", + "name" : "UnoBookmark" + }, + "acm019955jsd" : { + "type" : "ControlElement", + "id" : "acm019955jsd", + "name" : "getNameAccess" + }, + "acm019956jsd" : { + "type" : "ControlElement", + "id" : "acm019956jsd", + "name" : "getAnchor" + }, + "acm019957jsd" : { + "type" : "ControlElement", + "id" : "acm019957jsd", + "name" : "create" + }, + "acm019958jsd" : { + "type" : "ControlElement", + "id" : "acm019958jsd", + "name" : "removeIfExists" + }, + "acm019959jsd" : { + "type" : "ClassUnit", + "id" : "acm019959jsd", + "name" : "UnoBookmark", + "compilationUnitId" : "acm019948jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm019954jsd", "acm019955jsd", "acm019956jsd", "acm019957jsd", "acm019958jsd" ] + }, + "acm019960jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019960jsd", + "name" : "UnoCast", + "parentId" : "acm019936jsd", + "content" : [ "acm019968jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019961jsd" : { + "type" : "CodePackage", + "id" : "acm019961jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019962jsd" ] + }, + "acm019962jsd" : { + "type" : "CodePackage", + "id" : "acm019962jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019963jsd" ] + }, + "acm019963jsd" : { + "type" : "CodePackage", + "id" : "acm019963jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019964jsd" ] + }, + "acm019964jsd" : { + "type" : "CodePackage", + "id" : "acm019964jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019965jsd" ] + }, + "acm019965jsd" : { + "type" : "CodePackage", + "id" : "acm019965jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019960jsd" ] + }, + "acm019966jsd" : { + "type" : "ControlElement", + "id" : "acm019966jsd", + "name" : "UnoCast" + }, + "acm019967jsd" : { + "type" : "ControlElement", + "id" : "acm019967jsd", + "name" : "cast" + }, + "acm019968jsd" : { + "type" : "ClassUnit", + "id" : "acm019968jsd", + "name" : "UnoCast", + "compilationUnitId" : "acm019960jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019966jsd", "acm019967jsd" ] + }, + "acm019969jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019969jsd", + "name" : "UnoCrossRef", + "parentId" : "acm019936jsd", + "content" : [ "acm019978jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019970jsd" : { + "type" : "CodePackage", + "id" : "acm019970jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019971jsd" ] + }, + "acm019971jsd" : { + "type" : "CodePackage", + "id" : "acm019971jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019972jsd" ] + }, + "acm019972jsd" : { + "type" : "CodePackage", + "id" : "acm019972jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019973jsd" ] + }, + "acm019973jsd" : { + "type" : "CodePackage", + "id" : "acm019973jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019974jsd" ] + }, + "acm019974jsd" : { + "type" : "CodePackage", + "id" : "acm019974jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019969jsd" ] + }, + "acm019975jsd" : { + "type" : "ControlElement", + "id" : "acm019975jsd", + "name" : "UnoCrossRef" + }, + "acm019976jsd" : { + "type" : "ControlElement", + "id" : "acm019976jsd", + "name" : "refresh" + }, + "acm019977jsd" : { + "type" : "ControlElement", + "id" : "acm019977jsd", + "name" : "insertReferenceToPageNumberOfReferenceMark" + }, + "acm019978jsd" : { + "type" : "ClassUnit", + "id" : "acm019978jsd", + "name" : "UnoCrossRef", + "compilationUnitId" : "acm019969jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd" ], + "content" : [ "acm019975jsd", "acm019976jsd", "acm019977jsd" ] + }, + "acm019979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019979jsd", + "name" : "UnoCursor", + "parentId" : "acm019936jsd", + "content" : [ "acm019989jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019980jsd" : { + "type" : "CodePackage", + "id" : "acm019980jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019981jsd" ] + }, + "acm019981jsd" : { + "type" : "CodePackage", + "id" : "acm019981jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019982jsd" ] + }, + "acm019982jsd" : { + "type" : "CodePackage", + "id" : "acm019982jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019983jsd" ] + }, + "acm019983jsd" : { + "type" : "CodePackage", + "id" : "acm019983jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019984jsd" ] + }, + "acm019984jsd" : { + "type" : "CodePackage", + "id" : "acm019984jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019979jsd" ] + }, + "acm019985jsd" : { + "type" : "ControlElement", + "id" : "acm019985jsd", + "name" : "UnoCursor" + }, + "acm019986jsd" : { + "type" : "ControlElement", + "id" : "acm019986jsd", + "name" : "getViewCursor" + }, + "acm019987jsd" : { + "type" : "ControlElement", + "id" : "acm019987jsd", + "name" : "getTextCursorOfTextContentAnchor" + }, + "acm019988jsd" : { + "type" : "ControlElement", + "id" : "acm019988jsd", + "name" : "createTextCursorByRange" + }, + "acm019989jsd" : { + "type" : "ClassUnit", + "id" : "acm019989jsd", + "name" : "UnoCursor", + "compilationUnitId" : "acm019979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019985jsd", "acm019986jsd", "acm019987jsd", "acm019988jsd" ] + }, + "acm019990jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019990jsd", + "name" : "UnoNameAccess", + "parentId" : "acm019936jsd", + "content" : [ "acm019998jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm019991jsd" : { + "type" : "CodePackage", + "id" : "acm019991jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm019992jsd" ] + }, + "acm019992jsd" : { + "type" : "CodePackage", + "id" : "acm019992jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm019993jsd" ] + }, + "acm019993jsd" : { + "type" : "CodePackage", + "id" : "acm019993jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm019994jsd" ] + }, + "acm019994jsd" : { + "type" : "CodePackage", + "id" : "acm019994jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm019995jsd" ] + }, + "acm019995jsd" : { + "type" : "CodePackage", + "id" : "acm019995jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019990jsd" ] + }, + "acm019996jsd" : { + "type" : "ControlElement", + "id" : "acm019996jsd", + "name" : "UnoNameAccess" + }, + "acm019997jsd" : { + "type" : "ControlElement", + "id" : "acm019997jsd", + "name" : "getTextContentByName" + }, + "acm019998jsd" : { + "type" : "ClassUnit", + "id" : "acm019998jsd", + "name" : "UnoNameAccess", + "compilationUnitId" : "acm019990jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm019996jsd", "acm019997jsd" ] + }, + "acm019999jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm019999jsd", + "name" : "UnoNamed", + "parentId" : "acm019936jsd", + "content" : [ "acm020007jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020000jsd" : { + "type" : "CodePackage", + "id" : "acm020000jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020001jsd" ] + }, + "acm020001jsd" : { + "type" : "CodePackage", + "id" : "acm020001jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020002jsd" ] + }, + "acm020002jsd" : { + "type" : "CodePackage", + "id" : "acm020002jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020003jsd" ] + }, + "acm020003jsd" : { + "type" : "CodePackage", + "id" : "acm020003jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020004jsd" ] + }, + "acm020004jsd" : { + "type" : "CodePackage", + "id" : "acm020004jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm019999jsd" ] + }, + "acm020005jsd" : { + "type" : "ControlElement", + "id" : "acm020005jsd", + "name" : "UnoNamed" + }, + "acm020006jsd" : { + "type" : "ControlElement", + "id" : "acm020006jsd", + "name" : "insertNamedTextContent" + }, + "acm020007jsd" : { + "type" : "ClassUnit", + "id" : "acm020007jsd", + "name" : "UnoNamed", + "compilationUnitId" : "acm019999jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd" ], + "content" : [ "acm020005jsd", "acm020006jsd" ] + }, + "acm020008jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020008jsd", + "name" : "UnoProperties", + "parentId" : "acm019936jsd", + "content" : [ "acm020024jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020009jsd" : { + "type" : "CodePackage", + "id" : "acm020009jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020010jsd" ] + }, + "acm020010jsd" : { + "type" : "CodePackage", + "id" : "acm020010jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020011jsd" ] + }, + "acm020011jsd" : { + "type" : "CodePackage", + "id" : "acm020011jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020012jsd" ] + }, + "acm020012jsd" : { + "type" : "CodePackage", + "id" : "acm020012jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020013jsd" ] + }, + "acm020013jsd" : { + "type" : "CodePackage", + "id" : "acm020013jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020008jsd" ] + }, + "acm020014jsd" : { + "type" : "ControlElement", + "id" : "acm020014jsd", + "name" : "UnoProperties" + }, + "acm020015jsd" : { + "type" : "ControlElement", + "id" : "acm020015jsd", + "name" : "asPropertySet" + }, + "acm020016jsd" : { + "type" : "ControlElement", + "id" : "acm020016jsd", + "name" : "getPropertySetInfo" + }, + "acm020017jsd" : { + "type" : "ControlElement", + "id" : "acm020017jsd", + "name" : "getPropertySetInfo" + }, + "acm020018jsd" : { + "type" : "ControlElement", + "id" : "acm020018jsd", + "name" : "getPropertyNames" + }, + "acm020019jsd" : { + "type" : "ControlElement", + "id" : "acm020019jsd", + "name" : "getPropertyNames" + }, + "acm020020jsd" : { + "type" : "ControlElement", + "id" : "acm020020jsd", + "name" : "getPropertyNames" + }, + "acm020021jsd" : { + "type" : "ControlElement", + "id" : "acm020021jsd", + "name" : "getPropertyNames" + }, + "acm020022jsd" : { + "type" : "ControlElement", + "id" : "acm020022jsd", + "name" : "getValueAsObject" + }, + "acm020023jsd" : { + "type" : "ControlElement", + "id" : "acm020023jsd", + "name" : "getValueAsObject" + }, + "acm020024jsd" : { + "type" : "ClassUnit", + "id" : "acm020024jsd", + "name" : "UnoProperties", + "compilationUnitId" : "acm020008jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020014jsd", "acm020015jsd", "acm020016jsd", "acm020017jsd", "acm020018jsd", "acm020019jsd", "acm020020jsd", "acm020021jsd", "acm020022jsd", "acm020023jsd" ] + }, + "acm020025jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020025jsd", + "name" : "UnoRedlines", + "parentId" : "acm019936jsd", + "content" : [ "acm020034jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020026jsd" : { + "type" : "CodePackage", + "id" : "acm020026jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020027jsd" ] + }, + "acm020027jsd" : { + "type" : "CodePackage", + "id" : "acm020027jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020028jsd" ] + }, + "acm020028jsd" : { + "type" : "CodePackage", + "id" : "acm020028jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020029jsd" ] + }, + "acm020029jsd" : { + "type" : "CodePackage", + "id" : "acm020029jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020030jsd" ] + }, + "acm020030jsd" : { + "type" : "CodePackage", + "id" : "acm020030jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020025jsd" ] + }, + "acm020031jsd" : { + "type" : "ControlElement", + "id" : "acm020031jsd", + "name" : "getRecordChanges" + }, + "acm020032jsd" : { + "type" : "ControlElement", + "id" : "acm020032jsd", + "name" : "getRedlinesSupplier" + }, + "acm020033jsd" : { + "type" : "ControlElement", + "id" : "acm020033jsd", + "name" : "countRedlines" + }, + "acm020034jsd" : { + "type" : "ClassUnit", + "id" : "acm020034jsd", + "name" : "UnoRedlines", + "compilationUnitId" : "acm020025jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020031jsd", "acm020032jsd", "acm020033jsd" ] + }, + "acm020035jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020035jsd", + "name" : "UnoReferenceMark", + "parentId" : "acm019936jsd", + "content" : [ "acm020048jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020036jsd" : { + "type" : "CodePackage", + "id" : "acm020036jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020037jsd" ] + }, + "acm020037jsd" : { + "type" : "CodePackage", + "id" : "acm020037jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020038jsd" ] + }, + "acm020038jsd" : { + "type" : "CodePackage", + "id" : "acm020038jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020039jsd" ] + }, + "acm020039jsd" : { + "type" : "CodePackage", + "id" : "acm020039jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020040jsd" ] + }, + "acm020040jsd" : { + "type" : "CodePackage", + "id" : "acm020040jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020035jsd" ] + }, + "acm020041jsd" : { + "type" : "ControlElement", + "id" : "acm020041jsd", + "name" : "UnoReferenceMark" + }, + "acm020042jsd" : { + "type" : "ControlElement", + "id" : "acm020042jsd", + "name" : "getNameAccess" + }, + "acm020043jsd" : { + "type" : "ControlElement", + "id" : "acm020043jsd", + "name" : "getListOfNames" + }, + "acm020044jsd" : { + "type" : "ControlElement", + "id" : "acm020044jsd", + "name" : "removeIfExists" + }, + "acm020045jsd" : { + "type" : "ControlElement", + "id" : "acm020045jsd", + "name" : "getAsTextContent" + }, + "acm020046jsd" : { + "type" : "ControlElement", + "id" : "acm020046jsd", + "name" : "getAnchor" + }, + "acm020047jsd" : { + "type" : "ControlElement", + "id" : "acm020047jsd", + "name" : "create" + }, + "acm020048jsd" : { + "type" : "ClassUnit", + "id" : "acm020048jsd", + "name" : "UnoReferenceMark", + "compilationUnitId" : "acm020035jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm020041jsd", "acm020042jsd", "acm020043jsd", "acm020044jsd", "acm020045jsd", "acm020046jsd", "acm020047jsd" ] + }, + "acm020049jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020049jsd", + "name" : "UnoScreenRefresh", + "parentId" : "acm019936jsd", + "content" : [ "acm020059jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020050jsd" : { + "type" : "CodePackage", + "id" : "acm020050jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020051jsd" ] + }, + "acm020051jsd" : { + "type" : "CodePackage", + "id" : "acm020051jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020052jsd" ] + }, + "acm020052jsd" : { + "type" : "CodePackage", + "id" : "acm020052jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020053jsd" ] + }, + "acm020053jsd" : { + "type" : "CodePackage", + "id" : "acm020053jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020054jsd" ] + }, + "acm020054jsd" : { + "type" : "CodePackage", + "id" : "acm020054jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020049jsd" ] + }, + "acm020055jsd" : { + "type" : "ControlElement", + "id" : "acm020055jsd", + "name" : "UnoScreenRefresh" + }, + "acm020056jsd" : { + "type" : "ControlElement", + "id" : "acm020056jsd", + "name" : "lockControllers" + }, + "acm020057jsd" : { + "type" : "ControlElement", + "id" : "acm020057jsd", + "name" : "unlockControllers" + }, + "acm020058jsd" : { + "type" : "ControlElement", + "id" : "acm020058jsd", + "name" : "hasControllersLocked" + }, + "acm020059jsd" : { + "type" : "ClassUnit", + "id" : "acm020059jsd", + "name" : "UnoScreenRefresh", + "compilationUnitId" : "acm020049jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020055jsd", "acm020056jsd", "acm020057jsd", "acm020058jsd" ] + }, + "acm020060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020060jsd", + "name" : "UnoSelection", + "parentId" : "acm019936jsd", + "content" : [ "acm020070jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020061jsd" : { + "type" : "CodePackage", + "id" : "acm020061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020062jsd" ] + }, + "acm020062jsd" : { + "type" : "CodePackage", + "id" : "acm020062jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020063jsd" ] + }, + "acm020063jsd" : { + "type" : "CodePackage", + "id" : "acm020063jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020064jsd" ] + }, + "acm020064jsd" : { + "type" : "CodePackage", + "id" : "acm020064jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020065jsd" ] + }, + "acm020065jsd" : { + "type" : "CodePackage", + "id" : "acm020065jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020060jsd" ] + }, + "acm020066jsd" : { + "type" : "ControlElement", + "id" : "acm020066jsd", + "name" : "UnoSelection" + }, + "acm020067jsd" : { + "type" : "ControlElement", + "id" : "acm020067jsd", + "name" : "getSelectionSupplier" + }, + "acm020068jsd" : { + "type" : "ControlElement", + "id" : "acm020068jsd", + "name" : "getSelectionAsXServiceInfo" + }, + "acm020069jsd" : { + "type" : "ControlElement", + "id" : "acm020069jsd", + "name" : "select" + }, + "acm020070jsd" : { + "type" : "ClassUnit", + "id" : "acm020070jsd", + "name" : "UnoSelection", + "compilationUnitId" : "acm020060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020070jsd" ], + "content" : [ "acm020066jsd", "acm020067jsd", "acm020068jsd", "acm020069jsd" ] + }, + "acm020071jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020071jsd", + "name" : "UnoStyle", + "parentId" : "acm019936jsd", + "content" : [ "acm020084jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020072jsd" : { + "type" : "CodePackage", + "id" : "acm020072jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020073jsd" ] + }, + "acm020073jsd" : { + "type" : "CodePackage", + "id" : "acm020073jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020074jsd" ] + }, + "acm020074jsd" : { + "type" : "CodePackage", + "id" : "acm020074jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020075jsd" ] + }, + "acm020075jsd" : { + "type" : "CodePackage", + "id" : "acm020075jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020076jsd" ] + }, + "acm020076jsd" : { + "type" : "CodePackage", + "id" : "acm020076jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020071jsd" ] + }, + "acm020077jsd" : { + "type" : "ControlElement", + "id" : "acm020077jsd", + "name" : "UnoStyle" + }, + "acm020078jsd" : { + "type" : "ControlElement", + "id" : "acm020078jsd", + "name" : "getStyleFromFamily" + }, + "acm020079jsd" : { + "type" : "ControlElement", + "id" : "acm020079jsd", + "name" : "getParagraphStyle" + }, + "acm020080jsd" : { + "type" : "ControlElement", + "id" : "acm020080jsd", + "name" : "getCharacterStyle" + }, + "acm020081jsd" : { + "type" : "ControlElement", + "id" : "acm020081jsd", + "name" : "getInternalNameOfStyle" + }, + "acm020082jsd" : { + "type" : "ControlElement", + "id" : "acm020082jsd", + "name" : "getInternalNameOfParagraphStyle" + }, + "acm020083jsd" : { + "type" : "ControlElement", + "id" : "acm020083jsd", + "name" : "getInternalNameOfCharacterStyle" + }, + "acm020084jsd" : { + "type" : "ClassUnit", + "id" : "acm020084jsd", + "name" : "UnoStyle", + "compilationUnitId" : "acm020071jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020077jsd", "acm020078jsd", "acm020079jsd", "acm020080jsd", "acm020081jsd", "acm020082jsd", "acm020083jsd" ] + }, + "acm020085jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020085jsd", + "name" : "UnoTextDocument", + "parentId" : "acm019936jsd", + "content" : [ "acm020096jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020086jsd" : { + "type" : "CodePackage", + "id" : "acm020086jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020087jsd" ] + }, + "acm020087jsd" : { + "type" : "CodePackage", + "id" : "acm020087jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020088jsd" ] + }, + "acm020088jsd" : { + "type" : "CodePackage", + "id" : "acm020088jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020089jsd" ] + }, + "acm020089jsd" : { + "type" : "CodePackage", + "id" : "acm020089jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020090jsd" ] + }, + "acm020090jsd" : { + "type" : "CodePackage", + "id" : "acm020090jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020085jsd" ] + }, + "acm020091jsd" : { + "type" : "ControlElement", + "id" : "acm020091jsd", + "name" : "UnoTextDocument" + }, + "acm020092jsd" : { + "type" : "ControlElement", + "id" : "acm020092jsd", + "name" : "isDocumentConnectionMissing" + }, + "acm020093jsd" : { + "type" : "ControlElement", + "id" : "acm020093jsd", + "name" : "getCurrentController" + }, + "acm020094jsd" : { + "type" : "ControlElement", + "id" : "acm020094jsd", + "name" : "getFrameTitle" + }, + "acm020095jsd" : { + "type" : "ControlElement", + "id" : "acm020095jsd", + "name" : "getDocumentProperties" + }, + "acm020096jsd" : { + "type" : "ClassUnit", + "id" : "acm020096jsd", + "name" : "UnoTextDocument", + "compilationUnitId" : "acm020085jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019947jsd", "acm020096jsd" ], + "content" : [ "acm020091jsd", "acm020092jsd", "acm020093jsd", "acm020094jsd", "acm020095jsd" ] + }, + "acm020097jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020097jsd", + "name" : "UnoTextRange", + "parentId" : "acm019936jsd", + "content" : [ "acm020111jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020098jsd" : { + "type" : "CodePackage", + "id" : "acm020098jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020099jsd" ] + }, + "acm020099jsd" : { + "type" : "CodePackage", + "id" : "acm020099jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020100jsd" ] + }, + "acm020100jsd" : { + "type" : "CodePackage", + "id" : "acm020100jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020101jsd" ] + }, + "acm020101jsd" : { + "type" : "CodePackage", + "id" : "acm020101jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020102jsd" ] + }, + "acm020102jsd" : { + "type" : "CodePackage", + "id" : "acm020102jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020097jsd" ] + }, + "acm020103jsd" : { + "type" : "ControlElement", + "id" : "acm020103jsd", + "name" : "UnoTextRange" + }, + "acm020104jsd" : { + "type" : "ControlElement", + "id" : "acm020104jsd", + "name" : "getFootnoteMarkRange" + }, + "acm020105jsd" : { + "type" : "ControlElement", + "id" : "acm020105jsd", + "name" : "comparables" + }, + "acm020106jsd" : { + "type" : "ControlElement", + "id" : "acm020106jsd", + "name" : "compareStartsUnsafe" + }, + "acm020107jsd" : { + "type" : "ControlElement", + "id" : "acm020107jsd", + "name" : "compareStarts" + }, + "acm020108jsd" : { + "type" : "ControlElement", + "id" : "acm020108jsd", + "name" : "compareEnds" + }, + "acm020109jsd" : { + "type" : "ControlElement", + "id" : "acm020109jsd", + "name" : "compareStartsThenEndsUnsafe" + }, + "acm020110jsd" : { + "type" : "ControlElement", + "id" : "acm020110jsd", + "name" : "compareStartsThenEnds" + }, + "acm020111jsd" : { + "type" : "ClassUnit", + "id" : "acm020111jsd", + "name" : "UnoTextRange", + "compilationUnitId" : "acm020097jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020103jsd", "acm020104jsd", "acm020105jsd", "acm020106jsd", "acm020107jsd", "acm020108jsd", "acm020109jsd", "acm020110jsd" ] + }, + "acm020112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020112jsd", + "name" : "UnoTextSection", + "parentId" : "acm019936jsd", + "content" : [ "acm020122jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020113jsd" : { + "type" : "CodePackage", + "id" : "acm020113jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020114jsd" ] + }, + "acm020114jsd" : { + "type" : "CodePackage", + "id" : "acm020114jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020115jsd" ] + }, + "acm020115jsd" : { + "type" : "CodePackage", + "id" : "acm020115jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020116jsd" ] + }, + "acm020116jsd" : { + "type" : "CodePackage", + "id" : "acm020116jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020117jsd" ] + }, + "acm020117jsd" : { + "type" : "CodePackage", + "id" : "acm020117jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020112jsd" ] + }, + "acm020118jsd" : { + "type" : "ControlElement", + "id" : "acm020118jsd", + "name" : "getNameAccess" + }, + "acm020119jsd" : { + "type" : "ControlElement", + "id" : "acm020119jsd", + "name" : "getByName" + }, + "acm020120jsd" : { + "type" : "ControlElement", + "id" : "acm020120jsd", + "name" : "getAnchor" + }, + "acm020121jsd" : { + "type" : "ControlElement", + "id" : "acm020121jsd", + "name" : "create" + }, + "acm020122jsd" : { + "type" : "ClassUnit", + "id" : "acm020122jsd", + "name" : "UnoTextSection", + "compilationUnitId" : "acm020112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019938jsd", "acm019947jsd" ], + "content" : [ "acm020118jsd", "acm020119jsd", "acm020120jsd", "acm020121jsd" ] + }, + "acm020123jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020123jsd", + "name" : "UnoUndo", + "parentId" : "acm019936jsd", + "content" : [ "acm020133jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020124jsd" : { + "type" : "CodePackage", + "id" : "acm020124jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020125jsd" ] + }, + "acm020125jsd" : { + "type" : "CodePackage", + "id" : "acm020125jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020126jsd" ] + }, + "acm020126jsd" : { + "type" : "CodePackage", + "id" : "acm020126jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020127jsd" ] + }, + "acm020127jsd" : { + "type" : "CodePackage", + "id" : "acm020127jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020128jsd" ] + }, + "acm020128jsd" : { + "type" : "CodePackage", + "id" : "acm020128jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020123jsd" ] + }, + "acm020129jsd" : { + "type" : "ControlElement", + "id" : "acm020129jsd", + "name" : "UnoUndo" + }, + "acm020130jsd" : { + "type" : "ControlElement", + "id" : "acm020130jsd", + "name" : "getXUndoManager" + }, + "acm020131jsd" : { + "type" : "ControlElement", + "id" : "acm020131jsd", + "name" : "enterUndoContext" + }, + "acm020132jsd" : { + "type" : "ControlElement", + "id" : "acm020132jsd", + "name" : "leaveUndoContext" + }, + "acm020133jsd" : { + "type" : "ClassUnit", + "id" : "acm020133jsd", + "name" : "UnoUndo", + "compilationUnitId" : "acm020123jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020129jsd", "acm020130jsd", "acm020131jsd", "acm020132jsd" ] + }, + "acm020134jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020134jsd", + "name" : "UnoUserDefinedProperty", + "parentId" : "acm019936jsd", + "content" : [ "acm020147jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "uno" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020135jsd" : { + "type" : "CodePackage", + "id" : "acm020135jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020136jsd" ] + }, + "acm020136jsd" : { + "type" : "CodePackage", + "id" : "acm020136jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020137jsd" ] + }, + "acm020137jsd" : { + "type" : "CodePackage", + "id" : "acm020137jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020138jsd" ] + }, + "acm020138jsd" : { + "type" : "CodePackage", + "id" : "acm020138jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020139jsd" ] + }, + "acm020139jsd" : { + "type" : "CodePackage", + "id" : "acm020139jsd", + "name" : "uno", + "parentId" : null, + "content" : [ "acm020134jsd" ] + }, + "acm020140jsd" : { + "type" : "ControlElement", + "id" : "acm020140jsd", + "name" : "UnoUserDefinedProperty" + }, + "acm020141jsd" : { + "type" : "ControlElement", + "id" : "acm020141jsd", + "name" : "getPropertyContainer" + }, + "acm020142jsd" : { + "type" : "ControlElement", + "id" : "acm020142jsd", + "name" : "getListOfNames" + }, + "acm020143jsd" : { + "type" : "ControlElement", + "id" : "acm020143jsd", + "name" : "getStringValue" + }, + "acm020144jsd" : { + "type" : "ControlElement", + "id" : "acm020144jsd", + "name" : "setStringProperty" + }, + "acm020145jsd" : { + "type" : "ControlElement", + "id" : "acm020145jsd", + "name" : "remove" + }, + "acm020146jsd" : { + "type" : "ControlElement", + "id" : "acm020146jsd", + "name" : "removeIfExists" + }, + "acm020147jsd" : { + "type" : "ClassUnit", + "id" : "acm020147jsd", + "name" : "UnoUserDefinedProperty", + "compilationUnitId" : "acm020134jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020147jsd" ], + "content" : [ "acm020140jsd", "acm020141jsd", "acm020142jsd", "acm020143jsd", "acm020144jsd", "acm020145jsd", "acm020146jsd" ] + }, + "acm020148jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020148jsd", + "name" : "OOListUtil", + "parentId" : "acm020153jsd", + "content" : [ "acm020157jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020149jsd" : { + "type" : "CodePackage", + "id" : "acm020149jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020150jsd" ] + }, + "acm020150jsd" : { + "type" : "CodePackage", + "id" : "acm020150jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020151jsd" ] + }, + "acm020151jsd" : { + "type" : "CodePackage", + "id" : "acm020151jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020152jsd" ] + }, + "acm020152jsd" : { + "type" : "CodePackage", + "id" : "acm020152jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020153jsd" ] + }, + "acm020153jsd" : { + "type" : "CodePackage", + "id" : "acm020153jsd", + "name" : "util", + "parentId" : "acm019472jsd", + "content" : [ "acm020148jsd", "acm020158jsd", "acm020166jsd", "acm020188jsd", "acm020196jsd" ] + }, + "acm020154jsd" : { + "type" : "ControlElement", + "id" : "acm020154jsd", + "name" : "map" + }, + "acm020155jsd" : { + "type" : "ControlElement", + "id" : "acm020155jsd", + "name" : "makeIndices" + }, + "acm020156jsd" : { + "type" : "ControlElement", + "id" : "acm020156jsd", + "name" : "order" + }, + "acm020157jsd" : { + "type" : "ClassUnit", + "id" : "acm020157jsd", + "name" : "OOListUtil", + "compilationUnitId" : "acm020148jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020154jsd", "acm020155jsd", "acm020156jsd" ] + }, + "acm020158jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020158jsd", + "name" : "OOPair", + "parentId" : "acm020153jsd", + "content" : [ "acm020165jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020159jsd" : { + "type" : "CodePackage", + "id" : "acm020159jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020160jsd" ] + }, + "acm020160jsd" : { + "type" : "CodePackage", + "id" : "acm020160jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020161jsd" ] + }, + "acm020161jsd" : { + "type" : "CodePackage", + "id" : "acm020161jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020162jsd" ] + }, + "acm020162jsd" : { + "type" : "CodePackage", + "id" : "acm020162jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020163jsd" ] + }, + "acm020163jsd" : { + "type" : "CodePackage", + "id" : "acm020163jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020158jsd" ] + }, + "acm020164jsd" : { + "type" : "ControlElement", + "id" : "acm020164jsd", + "name" : "OOPair" + }, + "acm020165jsd" : { + "type" : "ClassUnit", + "id" : "acm020165jsd", + "name" : "OOPair", + "compilationUnitId" : "acm020158jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020164jsd" ] + }, + "acm020166jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020166jsd", + "name" : "OOResult", + "parentId" : "acm020153jsd", + "content" : [ "acm020187jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020167jsd" : { + "type" : "CodePackage", + "id" : "acm020167jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020168jsd" ] + }, + "acm020168jsd" : { + "type" : "CodePackage", + "id" : "acm020168jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020169jsd" ] + }, + "acm020169jsd" : { + "type" : "CodePackage", + "id" : "acm020169jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020170jsd" ] + }, + "acm020170jsd" : { + "type" : "CodePackage", + "id" : "acm020170jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020171jsd" ] + }, + "acm020171jsd" : { + "type" : "CodePackage", + "id" : "acm020171jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020166jsd" ] + }, + "acm020172jsd" : { + "type" : "ControlElement", + "id" : "acm020172jsd", + "name" : "OOResult" + }, + "acm020173jsd" : { + "type" : "ControlElement", + "id" : "acm020173jsd", + "name" : "ok" + }, + "acm020174jsd" : { + "type" : "ControlElement", + "id" : "acm020174jsd", + "name" : "error" + }, + "acm020175jsd" : { + "type" : "ControlElement", + "id" : "acm020175jsd", + "name" : "isPresent" + }, + "acm020176jsd" : { + "type" : "ControlElement", + "id" : "acm020176jsd", + "name" : "isEmpty" + }, + "acm020177jsd" : { + "type" : "ControlElement", + "id" : "acm020177jsd", + "name" : "isError" + }, + "acm020178jsd" : { + "type" : "ControlElement", + "id" : "acm020178jsd", + "name" : "isOK" + }, + "acm020179jsd" : { + "type" : "ControlElement", + "id" : "acm020179jsd", + "name" : "get" + }, + "acm020180jsd" : { + "type" : "ControlElement", + "id" : "acm020180jsd", + "name" : "getError" + }, + "acm020181jsd" : { + "type" : "ControlElement", + "id" : "acm020181jsd", + "name" : "ifPresent" + }, + "acm020182jsd" : { + "type" : "ControlElement", + "id" : "acm020182jsd", + "name" : "ifError" + }, + "acm020183jsd" : { + "type" : "ControlElement", + "id" : "acm020183jsd", + "name" : "map" + }, + "acm020184jsd" : { + "type" : "ControlElement", + "id" : "acm020184jsd", + "name" : "mapError" + }, + "acm020185jsd" : { + "type" : "ControlElement", + "id" : "acm020185jsd", + "name" : "getOptional" + }, + "acm020186jsd" : { + "type" : "ControlElement", + "id" : "acm020186jsd", + "name" : "asVoidResult" + }, + "acm020187jsd" : { + "type" : "ClassUnit", + "id" : "acm020187jsd", + "name" : "OOResult", + "compilationUnitId" : "acm020166jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020187jsd", "acm020210jsd" ], + "content" : [ "acm020172jsd", "acm020173jsd", "acm020174jsd", "acm020175jsd", "acm020176jsd", "acm020177jsd", "acm020178jsd", "acm020179jsd", "acm020180jsd", "acm020181jsd", "acm020182jsd", "acm020183jsd", "acm020184jsd", "acm020185jsd", "acm020186jsd" ] + }, + "acm020188jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020188jsd", + "name" : "OOTuple3", + "parentId" : "acm020153jsd", + "content" : [ "acm020195jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020189jsd" : { + "type" : "CodePackage", + "id" : "acm020189jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020190jsd" ] + }, + "acm020190jsd" : { + "type" : "CodePackage", + "id" : "acm020190jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020191jsd" ] + }, + "acm020191jsd" : { + "type" : "CodePackage", + "id" : "acm020191jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020192jsd" ] + }, + "acm020192jsd" : { + "type" : "CodePackage", + "id" : "acm020192jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020193jsd" ] + }, + "acm020193jsd" : { + "type" : "CodePackage", + "id" : "acm020193jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020188jsd" ] + }, + "acm020194jsd" : { + "type" : "ControlElement", + "id" : "acm020194jsd", + "name" : "OOTuple3" + }, + "acm020195jsd" : { + "type" : "ClassUnit", + "id" : "acm020195jsd", + "name" : "OOTuple3", + "compilationUnitId" : "acm020188jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020194jsd" ] + }, + "acm020196jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020196jsd", + "name" : "OOVoidResult", + "parentId" : "acm020153jsd", + "content" : [ "acm020210jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "openoffice", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020197jsd" : { + "type" : "CodePackage", + "id" : "acm020197jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020198jsd" ] + }, + "acm020198jsd" : { + "type" : "CodePackage", + "id" : "acm020198jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020199jsd" ] + }, + "acm020199jsd" : { + "type" : "CodePackage", + "id" : "acm020199jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020200jsd" ] + }, + "acm020200jsd" : { + "type" : "CodePackage", + "id" : "acm020200jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm020201jsd" ] + }, + "acm020201jsd" : { + "type" : "CodePackage", + "id" : "acm020201jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020196jsd" ] + }, + "acm020202jsd" : { + "type" : "ControlElement", + "id" : "acm020202jsd", + "name" : "OOVoidResult" + }, + "acm020203jsd" : { + "type" : "ControlElement", + "id" : "acm020203jsd", + "name" : "ok" + }, + "acm020204jsd" : { + "type" : "ControlElement", + "id" : "acm020204jsd", + "name" : "error" + }, + "acm020205jsd" : { + "type" : "ControlElement", + "id" : "acm020205jsd", + "name" : "isError" + }, + "acm020206jsd" : { + "type" : "ControlElement", + "id" : "acm020206jsd", + "name" : "isOK" + }, + "acm020207jsd" : { + "type" : "ControlElement", + "id" : "acm020207jsd", + "name" : "getError" + }, + "acm020208jsd" : { + "type" : "ControlElement", + "id" : "acm020208jsd", + "name" : "ifError" + }, + "acm020209jsd" : { + "type" : "ControlElement", + "id" : "acm020209jsd", + "name" : "mapError" + }, + "acm020210jsd" : { + "type" : "ClassUnit", + "id" : "acm020210jsd", + "name" : "OOVoidResult", + "compilationUnitId" : "acm020196jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020210jsd" ], + "content" : [ "acm020202jsd", "acm020203jsd", "acm020204jsd", "acm020205jsd", "acm020206jsd", "acm020207jsd", "acm020208jsd", "acm020209jsd" ] + }, + "acm020211jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020211jsd", + "name" : "Page", + "parentId" : "acm020215jsd", + "content" : [ "acm020222jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "paging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020212jsd" : { + "type" : "CodePackage", + "id" : "acm020212jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020213jsd" ] + }, + "acm020213jsd" : { + "type" : "CodePackage", + "id" : "acm020213jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020214jsd" ] + }, + "acm020214jsd" : { + "type" : "CodePackage", + "id" : "acm020214jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020215jsd" ] + }, + "acm020215jsd" : { + "type" : "CodePackage", + "id" : "acm020215jsd", + "name" : "paging", + "parentId" : "acm017861jsd", + "content" : [ "acm020211jsd", "acm029082jsd" ] + }, + "acm020216jsd" : { + "type" : "ControlElement", + "id" : "acm020216jsd", + "name" : "Page" + }, + "acm020217jsd" : { + "type" : "ControlElement", + "id" : "acm020217jsd", + "name" : "Page" + }, + "acm020218jsd" : { + "type" : "ControlElement", + "id" : "acm020218jsd", + "name" : "getContent" + }, + "acm020219jsd" : { + "type" : "ControlElement", + "id" : "acm020219jsd", + "name" : "getPageNumber" + }, + "acm020220jsd" : { + "type" : "ControlElement", + "id" : "acm020220jsd", + "name" : "getQuery" + }, + "acm020221jsd" : { + "type" : "ControlElement", + "id" : "acm020221jsd", + "name" : "getSize" + }, + "acm020222jsd" : { + "type" : "ClassUnit", + "id" : "acm020222jsd", + "name" : "Page", + "compilationUnitId" : "acm020211jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020216jsd", "acm020217jsd", "acm020218jsd", "acm020219jsd", "acm020220jsd", "acm020221jsd" ] + }, + "acm020223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020223jsd", + "name" : "FileAnnotation", + "parentId" : "acm020227jsd", + "content" : [ "acm020244jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020224jsd" : { + "type" : "CodePackage", + "id" : "acm020224jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020225jsd" ] + }, + "acm020225jsd" : { + "type" : "CodePackage", + "id" : "acm020225jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020226jsd" ] + }, + "acm020226jsd" : { + "type" : "CodePackage", + "id" : "acm020226jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020227jsd" ] + }, + "acm020227jsd" : { + "type" : "CodePackage", + "id" : "acm020227jsd", + "name" : "pdf", + "parentId" : "acm017861jsd", + "content" : [ "acm020223jsd", "acm020245jsd", "acm029093jsd", "acm020261jsd" ] + }, + "acm020228jsd" : { + "type" : "ControlElement", + "id" : "acm020228jsd", + "name" : "FileAnnotation" + }, + "acm020229jsd" : { + "type" : "ControlElement", + "id" : "acm020229jsd", + "name" : "FileAnnotation" + }, + "acm020230jsd" : { + "type" : "ControlElement", + "id" : "acm020230jsd", + "name" : "FileAnnotation" + }, + "acm020231jsd" : { + "type" : "ControlElement", + "id" : "acm020231jsd", + "name" : "extractModifiedTime" + }, + "acm020232jsd" : { + "type" : "ControlElement", + "id" : "acm020232jsd", + "name" : "parseContent" + }, + "acm020233jsd" : { + "type" : "ControlElement", + "id" : "acm020233jsd", + "name" : "abbreviateAnnotationName" + }, + "acm020234jsd" : { + "type" : "ControlElement", + "id" : "acm020234jsd", + "name" : "toString" + }, + "acm020235jsd" : { + "type" : "ControlElement", + "id" : "acm020235jsd", + "name" : "equals" + }, + "acm020236jsd" : { + "type" : "ControlElement", + "id" : "acm020236jsd", + "name" : "hashCode" + }, + "acm020237jsd" : { + "type" : "ControlElement", + "id" : "acm020237jsd", + "name" : "getAuthor" + }, + "acm020238jsd" : { + "type" : "ControlElement", + "id" : "acm020238jsd", + "name" : "getTimeModified" + }, + "acm020239jsd" : { + "type" : "ControlElement", + "id" : "acm020239jsd", + "name" : "getPage" + }, + "acm020240jsd" : { + "type" : "ControlElement", + "id" : "acm020240jsd", + "name" : "getContent" + }, + "acm020241jsd" : { + "type" : "ControlElement", + "id" : "acm020241jsd", + "name" : "getAnnotationType" + }, + "acm020242jsd" : { + "type" : "ControlElement", + "id" : "acm020242jsd", + "name" : "hasLinkedAnnotation" + }, + "acm020243jsd" : { + "type" : "ControlElement", + "id" : "acm020243jsd", + "name" : "getLinkedFileAnnotation" + }, + "acm020244jsd" : { + "type" : "ClassUnit", + "id" : "acm020244jsd", + "name" : "FileAnnotation", + "compilationUnitId" : "acm020223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020244jsd", "acm020255jsd" ], + "content" : [ "acm020228jsd", "acm020229jsd", "acm020230jsd", "acm020231jsd", "acm020232jsd", "acm020233jsd", "acm020234jsd", "acm020235jsd", "acm020236jsd", "acm020237jsd", "acm020238jsd", "acm020239jsd", "acm020240jsd", "acm020241jsd", "acm020242jsd", "acm020243jsd" ] + }, + "acm020245jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020245jsd", + "name" : "FileAnnotationType", + "parentId" : "acm020227jsd", + "content" : [ "acm020255jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020246jsd" : { + "type" : "CodePackage", + "id" : "acm020246jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020247jsd" ] + }, + "acm020247jsd" : { + "type" : "CodePackage", + "id" : "acm020247jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020248jsd" ] + }, + "acm020248jsd" : { + "type" : "CodePackage", + "id" : "acm020248jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020249jsd" ] + }, + "acm020249jsd" : { + "type" : "CodePackage", + "id" : "acm020249jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm020245jsd" ] + }, + "acm020250jsd" : { + "type" : "ControlElement", + "id" : "acm020250jsd", + "name" : "FileAnnotationType" + }, + "acm020251jsd" : { + "type" : "ControlElement", + "id" : "acm020251jsd", + "name" : "parse" + }, + "acm020252jsd" : { + "type" : "ControlElement", + "id" : "acm020252jsd", + "name" : "isMarkedFileAnnotationType" + }, + "acm020253jsd" : { + "type" : "ControlElement", + "id" : "acm020253jsd", + "name" : "isLinkedFileAnnotationType" + }, + "acm020254jsd" : { + "type" : "ControlElement", + "id" : "acm020254jsd", + "name" : "toString" + }, + "acm020255jsd" : { + "type" : "ClassUnit", + "id" : "acm020255jsd", + "name" : "FileAnnotationType", + "compilationUnitId" : "acm020245jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020255jsd" ], + "content" : [ "acm020250jsd", "acm020251jsd", "acm020252jsd", "acm020253jsd", "acm020254jsd" ] + }, + "acm020256jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020256jsd", + "name" : "EnglishStemAnalyzer", + "parentId" : "acm020261jsd", + "content" : [ "acm020263jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020257jsd" : { + "type" : "CodePackage", + "id" : "acm020257jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020258jsd" ] + }, + "acm020258jsd" : { + "type" : "CodePackage", + "id" : "acm020258jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020259jsd" ] + }, + "acm020259jsd" : { + "type" : "CodePackage", + "id" : "acm020259jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020260jsd" ] + }, + "acm020260jsd" : { + "type" : "CodePackage", + "id" : "acm020260jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm020261jsd" ] + }, + "acm020261jsd" : { + "type" : "CodePackage", + "id" : "acm020261jsd", + "name" : "search", + "parentId" : "acm020227jsd", + "content" : [ "acm020256jsd", "acm020264jsd", "acm020277jsd", "acm020284jsd" ] + }, + "acm020262jsd" : { + "type" : "ControlElement", + "id" : "acm020262jsd", + "name" : "createComponents" + }, + "acm020263jsd" : { + "type" : "ClassUnit", + "id" : "acm020263jsd", + "name" : "EnglishStemAnalyzer", + "compilationUnitId" : "acm020256jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020262jsd" ] + }, + "acm020264jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020264jsd", + "name" : "PdfSearchResults", + "parentId" : "acm020261jsd", + "content" : [ "acm020276jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020265jsd" : { + "type" : "CodePackage", + "id" : "acm020265jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020266jsd" ] + }, + "acm020266jsd" : { + "type" : "CodePackage", + "id" : "acm020266jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020267jsd" ] + }, + "acm020267jsd" : { + "type" : "CodePackage", + "id" : "acm020267jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020268jsd" ] + }, + "acm020268jsd" : { + "type" : "CodePackage", + "id" : "acm020268jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm020269jsd" ] + }, + "acm020269jsd" : { + "type" : "CodePackage", + "id" : "acm020269jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020264jsd" ] + }, + "acm020270jsd" : { + "type" : "ControlElement", + "id" : "acm020270jsd", + "name" : "PdfSearchResults" + }, + "acm020271jsd" : { + "type" : "ControlElement", + "id" : "acm020271jsd", + "name" : "PdfSearchResults" + }, + "acm020272jsd" : { + "type" : "ControlElement", + "id" : "acm020272jsd", + "name" : "getSortedByScore" + }, + "acm020273jsd" : { + "type" : "ControlElement", + "id" : "acm020273jsd", + "name" : "getSearchResults" + }, + "acm020274jsd" : { + "type" : "ControlElement", + "id" : "acm020274jsd", + "name" : "getSearchResultsByPath" + }, + "acm020275jsd" : { + "type" : "ControlElement", + "id" : "acm020275jsd", + "name" : "numSearchResults" + }, + "acm020276jsd" : { + "type" : "ClassUnit", + "id" : "acm020276jsd", + "name" : "PdfSearchResults", + "compilationUnitId" : "acm020264jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020299jsd" ], + "content" : [ "acm020270jsd", "acm020271jsd", "acm020272jsd", "acm020273jsd", "acm020274jsd", "acm020275jsd" ] + }, + "acm020277jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020277jsd", + "name" : "SearchFieldConstants", + "parentId" : "acm020261jsd", + "content" : [ "acm020283jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020278jsd" : { + "type" : "CodePackage", + "id" : "acm020278jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020279jsd" ] + }, + "acm020279jsd" : { + "type" : "CodePackage", + "id" : "acm020279jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020280jsd" ] + }, + "acm020280jsd" : { + "type" : "CodePackage", + "id" : "acm020280jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020281jsd" ] + }, + "acm020281jsd" : { + "type" : "CodePackage", + "id" : "acm020281jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm020282jsd" ] + }, + "acm020282jsd" : { + "type" : "CodePackage", + "id" : "acm020282jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020277jsd" ] + }, + "acm020283jsd" : { + "type" : "ClassUnit", + "id" : "acm020283jsd", + "name" : "SearchFieldConstants", + "compilationUnitId" : "acm020277jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm020284jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020284jsd", + "name" : "SearchResult", + "parentId" : "acm020261jsd", + "content" : [ "acm020299jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "pdf", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020285jsd" : { + "type" : "CodePackage", + "id" : "acm020285jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020286jsd" ] + }, + "acm020286jsd" : { + "type" : "CodePackage", + "id" : "acm020286jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020287jsd" ] + }, + "acm020287jsd" : { + "type" : "CodePackage", + "id" : "acm020287jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020288jsd" ] + }, + "acm020288jsd" : { + "type" : "CodePackage", + "id" : "acm020288jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm020289jsd" ] + }, + "acm020289jsd" : { + "type" : "CodePackage", + "id" : "acm020289jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020284jsd" ] + }, + "acm020290jsd" : { + "type" : "ControlElement", + "id" : "acm020290jsd", + "name" : "SearchResult" + }, + "acm020291jsd" : { + "type" : "ControlElement", + "id" : "acm020291jsd", + "name" : "getFieldContents" + }, + "acm020292jsd" : { + "type" : "ControlElement", + "id" : "acm020292jsd", + "name" : "isResultFor" + }, + "acm020293jsd" : { + "type" : "ControlElement", + "id" : "acm020293jsd", + "name" : "getPath" + }, + "acm020294jsd" : { + "type" : "ControlElement", + "id" : "acm020294jsd", + "name" : "getModified" + }, + "acm020295jsd" : { + "type" : "ControlElement", + "id" : "acm020295jsd", + "name" : "getLuceneScore" + }, + "acm020296jsd" : { + "type" : "ControlElement", + "id" : "acm020296jsd", + "name" : "getContentResultStringsHtml" + }, + "acm020297jsd" : { + "type" : "ControlElement", + "id" : "acm020297jsd", + "name" : "getAnnotationsResultStringsHtml" + }, + "acm020298jsd" : { + "type" : "ControlElement", + "id" : "acm020298jsd", + "name" : "getPageNumber" + }, + "acm020299jsd" : { + "type" : "ClassUnit", + "id" : "acm020299jsd", + "name" : "SearchResult", + "compilationUnitId" : "acm020284jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020263jsd" ], + "content" : [ "acm020290jsd", "acm020291jsd", "acm020292jsd", "acm020293jsd", "acm020294jsd", "acm020295jsd", "acm020296jsd", "acm020297jsd", "acm020298jsd" ] + }, + "acm020300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020300jsd", + "name" : "DublinCoreSchemaCustom", + "parentId" : "acm020304jsd", + "content" : [ "acm020308jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "schema" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020301jsd" : { + "type" : "CodePackage", + "id" : "acm020301jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020302jsd" ] + }, + "acm020302jsd" : { + "type" : "CodePackage", + "id" : "acm020302jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020303jsd" ] + }, + "acm020303jsd" : { + "type" : "CodePackage", + "id" : "acm020303jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020304jsd" ] + }, + "acm020304jsd" : { + "type" : "CodePackage", + "id" : "acm020304jsd", + "name" : "schema", + "parentId" : "acm017861jsd", + "content" : [ "acm020300jsd" ] + }, + "acm020305jsd" : { + "type" : "ControlElement", + "id" : "acm020305jsd", + "name" : "DublinCoreSchemaCustom" + }, + "acm020306jsd" : { + "type" : "ControlElement", + "id" : "acm020306jsd", + "name" : "copyDublinCoreSchema" + }, + "acm020307jsd" : { + "type" : "ControlElement", + "id" : "acm020307jsd", + "name" : "getUnqualifiedSequenceValueList" + }, + "acm020308jsd" : { + "type" : "ClassUnit", + "id" : "acm020308jsd", + "name" : "DublinCoreSchemaCustom", + "compilationUnitId" : "acm020300jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020308jsd" ], + "content" : [ "acm020305jsd", "acm020306jsd", "acm020307jsd" ] + }, + "acm020309jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020309jsd", + "name" : "GroupSearchQuery", + "parentId" : "acm020313jsd", + "content" : [ "acm020323jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020310jsd" : { + "type" : "CodePackage", + "id" : "acm020310jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020311jsd" ] + }, + "acm020311jsd" : { + "type" : "CodePackage", + "id" : "acm020311jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020312jsd" ] + }, + "acm020312jsd" : { + "type" : "CodePackage", + "id" : "acm020312jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020313jsd" ] + }, + "acm020313jsd" : { + "type" : "CodePackage", + "id" : "acm020313jsd", + "name" : "search", + "parentId" : "acm017861jsd", + "content" : [ "acm020309jsd", "acm020324jsd", "acm020336jsd", "acm020381jsd" ] + }, + "acm020314jsd" : { + "type" : "ControlElement", + "id" : "acm020314jsd", + "name" : "GroupSearchQuery" + }, + "acm020315jsd" : { + "type" : "ControlElement", + "id" : "acm020315jsd", + "name" : "toString" + }, + "acm020316jsd" : { + "type" : "ControlElement", + "id" : "acm020316jsd", + "name" : "isMatch" + }, + "acm020317jsd" : { + "type" : "ControlElement", + "id" : "acm020317jsd", + "name" : "getSearchRule" + }, + "acm020318jsd" : { + "type" : "ControlElement", + "id" : "acm020318jsd", + "name" : "getCaseSensitiveDescription" + }, + "acm020319jsd" : { + "type" : "ControlElement", + "id" : "acm020319jsd", + "name" : "getRegularExpressionDescription" + }, + "acm020320jsd" : { + "type" : "ControlElement", + "id" : "acm020320jsd", + "name" : "getRule" + }, + "acm020321jsd" : { + "type" : "ControlElement", + "id" : "acm020321jsd", + "name" : "getSearchExpression" + }, + "acm020322jsd" : { + "type" : "ControlElement", + "id" : "acm020322jsd", + "name" : "getSearchFlags" + }, + "acm020323jsd" : { + "type" : "ClassUnit", + "id" : "acm020323jsd", + "name" : "GroupSearchQuery", + "compilationUnitId" : "acm020309jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020461jsd", "acm020473jsd" ], + "content" : [ "acm020314jsd", "acm020315jsd", "acm020316jsd", "acm020317jsd", "acm020318jsd", "acm020319jsd", "acm020320jsd", "acm020321jsd", "acm020322jsd" ] + }, + "acm020324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020324jsd", + "name" : "SearchMatcher", + "parentId" : "acm020313jsd", + "content" : [ "acm020330jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020325jsd" : { + "type" : "CodePackage", + "id" : "acm020325jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020326jsd" ] + }, + "acm020326jsd" : { + "type" : "CodePackage", + "id" : "acm020326jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020327jsd" ] + }, + "acm020327jsd" : { + "type" : "CodePackage", + "id" : "acm020327jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020328jsd" ] + }, + "acm020328jsd" : { + "type" : "CodePackage", + "id" : "acm020328jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020324jsd" ] + }, + "acm020329jsd" : { + "type" : "ControlElement", + "id" : "acm020329jsd", + "name" : "isMatch" + }, + "acm020330jsd" : { + "type" : "InterfaceUnit", + "id" : "acm020330jsd", + "name" : "SearchMatcher", + "compilationUnitId" : "acm020324jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm020329jsd" ] + }, + "acm020331jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020331jsd", + "name" : "AndMatcher", + "parentId" : "acm020336jsd", + "content" : [ "acm020338jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020332jsd" : { + "type" : "CodePackage", + "id" : "acm020332jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020333jsd" ] + }, + "acm020333jsd" : { + "type" : "CodePackage", + "id" : "acm020333jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020334jsd" ] + }, + "acm020334jsd" : { + "type" : "CodePackage", + "id" : "acm020334jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020335jsd" ] + }, + "acm020335jsd" : { + "type" : "CodePackage", + "id" : "acm020335jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020336jsd" ] + }, + "acm020336jsd" : { + "type" : "CodePackage", + "id" : "acm020336jsd", + "name" : "matchers", + "parentId" : "acm020313jsd", + "content" : [ "acm020331jsd", "acm020339jsd", "acm020350jsd", "acm020359jsd", "acm020368jsd", "acm029104jsd" ] + }, + "acm020337jsd" : { + "type" : "ControlElement", + "id" : "acm020337jsd", + "name" : "isMatch" + }, + "acm020338jsd" : { + "type" : "ClassUnit", + "id" : "acm020338jsd", + "name" : "AndMatcher", + "compilationUnitId" : "acm020331jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm020349jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm020337jsd" ] + }, + "acm020339jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020339jsd", + "name" : "MatcherSet", + "parentId" : "acm020336jsd", + "content" : [ "acm020349jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020340jsd" : { + "type" : "CodePackage", + "id" : "acm020340jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020341jsd" ] + }, + "acm020341jsd" : { + "type" : "CodePackage", + "id" : "acm020341jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020342jsd" ] + }, + "acm020342jsd" : { + "type" : "CodePackage", + "id" : "acm020342jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020343jsd" ] + }, + "acm020343jsd" : { + "type" : "CodePackage", + "id" : "acm020343jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020344jsd" ] + }, + "acm020344jsd" : { + "type" : "CodePackage", + "id" : "acm020344jsd", + "name" : "matchers", + "parentId" : null, + "content" : [ "acm020339jsd" ] + }, + "acm020345jsd" : { + "type" : "ControlElement", + "id" : "acm020345jsd", + "name" : "equals" + }, + "acm020346jsd" : { + "type" : "ControlElement", + "id" : "acm020346jsd", + "name" : "hashCode" + }, + "acm020347jsd" : { + "type" : "ControlElement", + "id" : "acm020347jsd", + "name" : "addRule" + }, + "acm020348jsd" : { + "type" : "ControlElement", + "id" : "acm020348jsd", + "name" : "toString" + }, + "acm020349jsd" : { + "type" : "ClassUnit", + "id" : "acm020349jsd", + "name" : "MatcherSet", + "compilationUnitId" : "acm020339jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm020330jsd", "acm020349jsd" ], + "content" : [ "acm020345jsd", "acm020346jsd", "acm020347jsd", "acm020348jsd" ] + }, + "acm020350jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020350jsd", + "name" : "MatcherSets", + "parentId" : "acm020336jsd", + "content" : [ "acm020357jsd", "acm020358jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020351jsd" : { + "type" : "CodePackage", + "id" : "acm020351jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020352jsd" ] + }, + "acm020352jsd" : { + "type" : "CodePackage", + "id" : "acm020352jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020353jsd" ] + }, + "acm020353jsd" : { + "type" : "CodePackage", + "id" : "acm020353jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020354jsd" ] + }, + "acm020354jsd" : { + "type" : "CodePackage", + "id" : "acm020354jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020355jsd" ] + }, + "acm020355jsd" : { + "type" : "CodePackage", + "id" : "acm020355jsd", + "name" : "matchers", + "parentId" : null, + "content" : [ "acm020350jsd" ] + }, + "acm020356jsd" : { + "type" : "ControlElement", + "id" : "acm020356jsd", + "name" : "build" + }, + "acm020357jsd" : { + "type" : "ClassUnit", + "id" : "acm020357jsd", + "name" : "MatcherSets", + "compilationUnitId" : "acm020350jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020338jsd", "acm020349jsd", "acm020358jsd", "acm020375jsd" ], + "content" : [ "acm020356jsd" ] + }, + "acm020358jsd" : { + "type" : "ClassUnit", + "id" : "acm020358jsd", + "name" : "MatcherType", + "compilationUnitId" : "acm020350jsd", + "parentDatatypeId" : "acm020357jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm020359jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020359jsd", + "name" : "NotMatcher", + "parentId" : "acm020336jsd", + "content" : [ "acm020367jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020360jsd" : { + "type" : "CodePackage", + "id" : "acm020360jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020361jsd" ] + }, + "acm020361jsd" : { + "type" : "CodePackage", + "id" : "acm020361jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020362jsd" ] + }, + "acm020362jsd" : { + "type" : "CodePackage", + "id" : "acm020362jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020363jsd" ] + }, + "acm020363jsd" : { + "type" : "CodePackage", + "id" : "acm020363jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020364jsd" ] + }, + "acm020364jsd" : { + "type" : "CodePackage", + "id" : "acm020364jsd", + "name" : "matchers", + "parentId" : null, + "content" : [ "acm020359jsd" ] + }, + "acm020365jsd" : { + "type" : "ControlElement", + "id" : "acm020365jsd", + "name" : "NotMatcher" + }, + "acm020366jsd" : { + "type" : "ControlElement", + "id" : "acm020366jsd", + "name" : "isMatch" + }, + "acm020367jsd" : { + "type" : "ClassUnit", + "id" : "acm020367jsd", + "name" : "NotMatcher", + "compilationUnitId" : "acm020359jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020330jsd" ], + "content" : [ "acm020365jsd", "acm020366jsd" ] + }, + "acm020368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020368jsd", + "name" : "OrMatcher", + "parentId" : "acm020336jsd", + "content" : [ "acm020375jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020369jsd" : { + "type" : "CodePackage", + "id" : "acm020369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020370jsd" ] + }, + "acm020370jsd" : { + "type" : "CodePackage", + "id" : "acm020370jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020371jsd" ] + }, + "acm020371jsd" : { + "type" : "CodePackage", + "id" : "acm020371jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020372jsd" ] + }, + "acm020372jsd" : { + "type" : "CodePackage", + "id" : "acm020372jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020373jsd" ] + }, + "acm020373jsd" : { + "type" : "CodePackage", + "id" : "acm020373jsd", + "name" : "matchers", + "parentId" : null, + "content" : [ "acm020368jsd" ] + }, + "acm020374jsd" : { + "type" : "ControlElement", + "id" : "acm020374jsd", + "name" : "isMatch" + }, + "acm020375jsd" : { + "type" : "ClassUnit", + "id" : "acm020375jsd", + "name" : "OrMatcher", + "compilationUnitId" : "acm020368jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm020349jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm020374jsd" ] + }, + "acm020376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020376jsd", + "name" : "ContainsBasedSearchRule", + "parentId" : "acm020381jsd", + "content" : [ "acm020385jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020377jsd" : { + "type" : "CodePackage", + "id" : "acm020377jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020378jsd" ] + }, + "acm020378jsd" : { + "type" : "CodePackage", + "id" : "acm020378jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020379jsd" ] + }, + "acm020379jsd" : { + "type" : "CodePackage", + "id" : "acm020379jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020380jsd" ] + }, + "acm020380jsd" : { + "type" : "CodePackage", + "id" : "acm020380jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020381jsd" ] + }, + "acm020381jsd" : { + "type" : "CodePackage", + "id" : "acm020381jsd", + "name" : "rules", + "parentId" : "acm020313jsd", + "content" : [ "acm020376jsd", "acm020386jsd", "acm020396jsd", "acm020442jsd", "acm020452jsd", "acm020462jsd", "acm020474jsd", "acm029115jsd", "acm029125jsd", "acm029140jsd", "acm029149jsd" ] + }, + "acm020382jsd" : { + "type" : "ControlElement", + "id" : "acm020382jsd", + "name" : "ContainsBasedSearchRule" + }, + "acm020383jsd" : { + "type" : "ControlElement", + "id" : "acm020383jsd", + "name" : "validateSearchStrings" + }, + "acm020384jsd" : { + "type" : "ControlElement", + "id" : "acm020384jsd", + "name" : "applyRule" + }, + "acm020385jsd" : { + "type" : "ClassUnit", + "id" : "acm020385jsd", + "name" : "ContainsBasedSearchRule", + "compilationUnitId" : "acm020376jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm020395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm020473jsd", "acm020482jsd" ], + "content" : [ "acm020382jsd", "acm020383jsd", "acm020384jsd" ] + }, + "acm020386jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020386jsd", + "name" : "FullTextSearchRule", + "parentId" : "acm020381jsd", + "content" : [ "acm020395jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020387jsd" : { + "type" : "CodePackage", + "id" : "acm020387jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020388jsd" ] + }, + "acm020388jsd" : { + "type" : "CodePackage", + "id" : "acm020388jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020389jsd" ] + }, + "acm020389jsd" : { + "type" : "CodePackage", + "id" : "acm020389jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020390jsd" ] + }, + "acm020390jsd" : { + "type" : "CodePackage", + "id" : "acm020390jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020391jsd" ] + }, + "acm020391jsd" : { + "type" : "CodePackage", + "id" : "acm020391jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020386jsd" ] + }, + "acm020392jsd" : { + "type" : "ControlElement", + "id" : "acm020392jsd", + "name" : "FullTextSearchRule" + }, + "acm020393jsd" : { + "type" : "ControlElement", + "id" : "acm020393jsd", + "name" : "getSearchFlags" + }, + "acm020394jsd" : { + "type" : "ControlElement", + "id" : "acm020394jsd", + "name" : "getFulltextResults" + }, + "acm020395jsd" : { + "type" : "ClassUnit", + "id" : "acm020395jsd", + "name" : "FullTextSearchRule", + "compilationUnitId" : "acm020386jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020461jsd" ], + "datatypeReferencesIds" : [ "acm016581jsd", "acm018022jsd", "acm018267jsd", "acm020276jsd", "acm020299jsd", "acm020395jsd", "acm020473jsd" ], + "content" : [ "acm020392jsd", "acm020393jsd", "acm020394jsd" ] + }, + "acm020396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020396jsd", + "name" : "GrammarBasedSearchRule", + "parentId" : "acm020381jsd", + "content" : [ "acm020424jsd", "acm020426jsd", "acm020431jsd", "acm020439jsd", "acm020441jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020397jsd" : { + "type" : "CodePackage", + "id" : "acm020397jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020398jsd" ] + }, + "acm020398jsd" : { + "type" : "CodePackage", + "id" : "acm020398jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020399jsd" ] + }, + "acm020399jsd" : { + "type" : "CodePackage", + "id" : "acm020399jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020400jsd" ] + }, + "acm020400jsd" : { + "type" : "CodePackage", + "id" : "acm020400jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020401jsd" ] + }, + "acm020401jsd" : { + "type" : "CodePackage", + "id" : "acm020401jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020396jsd" ] + }, + "acm020402jsd" : { + "type" : "ControlElement", + "id" : "acm020402jsd", + "name" : "syntaxError" + }, + "acm020403jsd" : { + "type" : "ControlElement", + "id" : "acm020403jsd", + "name" : "GrammarBasedSearchRule" + }, + "acm020404jsd" : { + "type" : "ControlElement", + "id" : "acm020404jsd", + "name" : "isValid" + }, + "acm020405jsd" : { + "type" : "ControlElement", + "id" : "acm020405jsd", + "name" : "getTree" + }, + "acm020406jsd" : { + "type" : "ControlElement", + "id" : "acm020406jsd", + "name" : "getQuery" + }, + "acm020407jsd" : { + "type" : "ControlElement", + "id" : "acm020407jsd", + "name" : "init" + }, + "acm020408jsd" : { + "type" : "ControlElement", + "id" : "acm020408jsd", + "name" : "applyRule" + }, + "acm020409jsd" : { + "type" : "ControlElement", + "id" : "acm020409jsd", + "name" : "getFulltextResults" + }, + "acm020410jsd" : { + "type" : "ControlElement", + "id" : "acm020410jsd", + "name" : "validateSearchStrings" + }, + "acm020411jsd" : { + "type" : "ControlElement", + "id" : "acm020411jsd", + "name" : "getSearchFlags" + }, + "acm020412jsd" : { + "type" : "ControlElement", + "id" : "acm020412jsd", + "name" : "build" + }, + "acm020413jsd" : { + "type" : "ControlElement", + "id" : "acm020413jsd", + "name" : "Comparator" + }, + "acm020414jsd" : { + "type" : "ControlElement", + "id" : "acm020414jsd", + "name" : "compare" + }, + "acm020415jsd" : { + "type" : "ControlElement", + "id" : "acm020415jsd", + "name" : "matchFieldKey" + }, + "acm020416jsd" : { + "type" : "ControlElement", + "id" : "acm020416jsd", + "name" : "matchFieldValue" + }, + "acm020417jsd" : { + "type" : "ControlElement", + "id" : "acm020417jsd", + "name" : "BibtexSearchVisitor" + }, + "acm020418jsd" : { + "type" : "ControlElement", + "id" : "acm020418jsd", + "name" : "comparison" + }, + "acm020419jsd" : { + "type" : "ControlElement", + "id" : "acm020419jsd", + "name" : "visitStart" + }, + "acm020420jsd" : { + "type" : "ControlElement", + "id" : "acm020420jsd", + "name" : "visitComparison" + }, + "acm020421jsd" : { + "type" : "ControlElement", + "id" : "acm020421jsd", + "name" : "visitUnaryExpression" + }, + "acm020422jsd" : { + "type" : "ControlElement", + "id" : "acm020422jsd", + "name" : "visitParenExpression" + }, + "acm020423jsd" : { + "type" : "ControlElement", + "id" : "acm020423jsd", + "name" : "visitBinaryExpression" + }, + "acm020424jsd" : { + "type" : "ClassUnit", + "id" : "acm020424jsd", + "name" : "GrammarBasedSearchRule", + "compilationUnitId" : "acm020396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020461jsd" ], + "datatypeReferencesIds" : [ "acm016581jsd", "acm018022jsd", "acm018267jsd", "acm018673jsd", "acm020276jsd", "acm020299jsd", "acm020424jsd", "acm020426jsd", "acm020431jsd", "acm020439jsd", "acm020441jsd", "acm020473jsd" ], + "content" : [ "acm020402jsd", "acm020403jsd", "acm020404jsd", "acm020405jsd", "acm020406jsd", "acm020407jsd", "acm020408jsd", "acm020409jsd", "acm020410jsd", "acm020411jsd", "acm020412jsd", "acm020413jsd", "acm020414jsd", "acm020415jsd", "acm020416jsd", "acm020417jsd", "acm020418jsd", "acm020419jsd", "acm020420jsd", "acm020421jsd", "acm020422jsd", "acm020423jsd" ] + }, + "acm020425jsd" : { + "type" : "ControlElement", + "id" : "acm020425jsd", + "name" : "syntaxError" + }, + "acm020426jsd" : { + "type" : "ClassUnit", + "id" : "acm020426jsd", + "name" : "ThrowingErrorListener", + "compilationUnitId" : "acm020396jsd", + "parentDatatypeId" : "acm020424jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020426jsd" ], + "content" : [ "acm020425jsd" ] + }, + "acm020427jsd" : { + "type" : "ControlElement", + "id" : "acm020427jsd", + "name" : "Comparator" + }, + "acm020428jsd" : { + "type" : "ControlElement", + "id" : "acm020428jsd", + "name" : "compare" + }, + "acm020429jsd" : { + "type" : "ControlElement", + "id" : "acm020429jsd", + "name" : "matchFieldKey" + }, + "acm020430jsd" : { + "type" : "ControlElement", + "id" : "acm020430jsd", + "name" : "matchFieldValue" + }, + "acm020431jsd" : { + "type" : "ClassUnit", + "id" : "acm020431jsd", + "name" : "Comparator", + "compilationUnitId" : "acm020396jsd", + "parentDatatypeId" : "acm020424jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm020441jsd", "acm020473jsd" ], + "content" : [ "acm020427jsd", "acm020428jsd", "acm020429jsd", "acm020430jsd" ] + }, + "acm020432jsd" : { + "type" : "ControlElement", + "id" : "acm020432jsd", + "name" : "BibtexSearchVisitor" + }, + "acm020433jsd" : { + "type" : "ControlElement", + "id" : "acm020433jsd", + "name" : "comparison" + }, + "acm020434jsd" : { + "type" : "ControlElement", + "id" : "acm020434jsd", + "name" : "visitStart" + }, + "acm020435jsd" : { + "type" : "ControlElement", + "id" : "acm020435jsd", + "name" : "visitComparison" + }, + "acm020436jsd" : { + "type" : "ControlElement", + "id" : "acm020436jsd", + "name" : "visitUnaryExpression" + }, + "acm020437jsd" : { + "type" : "ControlElement", + "id" : "acm020437jsd", + "name" : "visitParenExpression" + }, + "acm020438jsd" : { + "type" : "ControlElement", + "id" : "acm020438jsd", + "name" : "visitBinaryExpression" + }, + "acm020439jsd" : { + "type" : "ClassUnit", + "id" : "acm020439jsd", + "name" : "BibtexSearchVisitor", + "compilationUnitId" : "acm020396jsd", + "parentDatatypeId" : "acm020424jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020431jsd", "acm020441jsd", "acm020473jsd" ], + "content" : [ "acm020432jsd", "acm020433jsd", "acm020434jsd", "acm020435jsd", "acm020436jsd", "acm020437jsd", "acm020438jsd" ] + }, + "acm020440jsd" : { + "type" : "ControlElement", + "id" : "acm020440jsd", + "name" : "build" + }, + "acm020441jsd" : { + "type" : "ClassUnit", + "id" : "acm020441jsd", + "name" : "ComparisonOperator", + "compilationUnitId" : "acm020396jsd", + "parentDatatypeId" : "acm020424jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020441jsd" ], + "content" : [ "acm020440jsd" ] + }, + "acm020442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020442jsd", + "name" : "RegexBasedSearchRule", + "parentId" : "acm020381jsd", + "content" : [ "acm020451jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020443jsd" : { + "type" : "CodePackage", + "id" : "acm020443jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020444jsd" ] + }, + "acm020444jsd" : { + "type" : "CodePackage", + "id" : "acm020444jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020445jsd" ] + }, + "acm020445jsd" : { + "type" : "CodePackage", + "id" : "acm020445jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020446jsd" ] + }, + "acm020446jsd" : { + "type" : "CodePackage", + "id" : "acm020446jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020447jsd" ] + }, + "acm020447jsd" : { + "type" : "CodePackage", + "id" : "acm020447jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020442jsd" ] + }, + "acm020448jsd" : { + "type" : "ControlElement", + "id" : "acm020448jsd", + "name" : "RegexBasedSearchRule" + }, + "acm020449jsd" : { + "type" : "ControlElement", + "id" : "acm020449jsd", + "name" : "validateSearchStrings" + }, + "acm020450jsd" : { + "type" : "ControlElement", + "id" : "acm020450jsd", + "name" : "applyRule" + }, + "acm020451jsd" : { + "type" : "ClassUnit", + "id" : "acm020451jsd", + "name" : "RegexBasedSearchRule", + "compilationUnitId" : "acm020442jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm020395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm018673jsd", "acm020451jsd", "acm020473jsd" ], + "content" : [ "acm020448jsd", "acm020449jsd", "acm020450jsd" ] + }, + "acm020452jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020452jsd", + "name" : "SearchRule", + "parentId" : "acm020381jsd", + "content" : [ "acm020461jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020453jsd" : { + "type" : "CodePackage", + "id" : "acm020453jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020454jsd" ] + }, + "acm020454jsd" : { + "type" : "CodePackage", + "id" : "acm020454jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020455jsd" ] + }, + "acm020455jsd" : { + "type" : "CodePackage", + "id" : "acm020455jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020456jsd" ] + }, + "acm020456jsd" : { + "type" : "CodePackage", + "id" : "acm020456jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020457jsd" ] + }, + "acm020457jsd" : { + "type" : "CodePackage", + "id" : "acm020457jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020452jsd" ] + }, + "acm020458jsd" : { + "type" : "ControlElement", + "id" : "acm020458jsd", + "name" : "applyRule" + }, + "acm020459jsd" : { + "type" : "ControlElement", + "id" : "acm020459jsd", + "name" : "getFulltextResults" + }, + "acm020460jsd" : { + "type" : "ControlElement", + "id" : "acm020460jsd", + "name" : "validateSearchStrings" + }, + "acm020461jsd" : { + "type" : "InterfaceUnit", + "id" : "acm020461jsd", + "name" : "SearchRule", + "compilationUnitId" : "acm020452jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020276jsd" ], + "content" : [ "acm020458jsd", "acm020459jsd", "acm020460jsd" ] + }, + "acm020462jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020462jsd", + "name" : "SearchRules", + "parentId" : "acm020381jsd", + "content" : [ "acm020472jsd", "acm020473jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020463jsd" : { + "type" : "CodePackage", + "id" : "acm020463jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020464jsd" ] + }, + "acm020464jsd" : { + "type" : "CodePackage", + "id" : "acm020464jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020465jsd" ] + }, + "acm020465jsd" : { + "type" : "CodePackage", + "id" : "acm020465jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020466jsd" ] + }, + "acm020466jsd" : { + "type" : "CodePackage", + "id" : "acm020466jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020467jsd" ] + }, + "acm020467jsd" : { + "type" : "CodePackage", + "id" : "acm020467jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020462jsd" ] + }, + "acm020468jsd" : { + "type" : "ControlElement", + "id" : "acm020468jsd", + "name" : "SearchRules" + }, + "acm020469jsd" : { + "type" : "ControlElement", + "id" : "acm020469jsd", + "name" : "getSearchRuleByQuery" + }, + "acm020470jsd" : { + "type" : "ControlElement", + "id" : "acm020470jsd", + "name" : "isSimpleQuery" + }, + "acm020471jsd" : { + "type" : "ControlElement", + "id" : "acm020471jsd", + "name" : "getSearchRule" + }, + "acm020472jsd" : { + "type" : "ClassUnit", + "id" : "acm020472jsd", + "name" : "SearchRules", + "compilationUnitId" : "acm020462jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020385jsd", "acm020424jsd", "acm020451jsd", "acm020461jsd", "acm020473jsd" ], + "content" : [ "acm020468jsd", "acm020469jsd", "acm020470jsd", "acm020471jsd" ] + }, + "acm020473jsd" : { + "type" : "ClassUnit", + "id" : "acm020473jsd", + "name" : "SearchFlags", + "compilationUnitId" : "acm020462jsd", + "parentDatatypeId" : "acm020472jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm020474jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020474jsd", + "name" : "SentenceAnalyzer", + "parentId" : "acm020381jsd", + "content" : [ "acm020482jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020475jsd" : { + "type" : "CodePackage", + "id" : "acm020475jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020476jsd" ] + }, + "acm020476jsd" : { + "type" : "CodePackage", + "id" : "acm020476jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020477jsd" ] + }, + "acm020477jsd" : { + "type" : "CodePackage", + "id" : "acm020477jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020478jsd" ] + }, + "acm020478jsd" : { + "type" : "CodePackage", + "id" : "acm020478jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm020479jsd" ] + }, + "acm020479jsd" : { + "type" : "CodePackage", + "id" : "acm020479jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm020474jsd" ] + }, + "acm020480jsd" : { + "type" : "ControlElement", + "id" : "acm020480jsd", + "name" : "SentenceAnalyzer" + }, + "acm020481jsd" : { + "type" : "ControlElement", + "id" : "acm020481jsd", + "name" : "getWords" + }, + "acm020482jsd" : { + "type" : "ClassUnit", + "id" : "acm020482jsd", + "name" : "SentenceAnalyzer", + "compilationUnitId" : "acm020474jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020480jsd", "acm020481jsd" ] + }, + "acm020483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020483jsd", + "name" : "LatexToUnicodeAdapter", + "parentId" : "acm020487jsd", + "content" : [ "acm020490jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020484jsd" : { + "type" : "CodePackage", + "id" : "acm020484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020485jsd" ] + }, + "acm020485jsd" : { + "type" : "CodePackage", + "id" : "acm020485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020486jsd" ] + }, + "acm020486jsd" : { + "type" : "CodePackage", + "id" : "acm020486jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020487jsd" ] + }, + "acm020487jsd" : { + "type" : "CodePackage", + "id" : "acm020487jsd", + "name" : "strings", + "parentId" : "acm017861jsd", + "content" : [ "acm020483jsd", "acm020491jsd", "acm020542jsd", "acm029158jsd" ] + }, + "acm020488jsd" : { + "type" : "ControlElement", + "id" : "acm020488jsd", + "name" : "format" + }, + "acm020489jsd" : { + "type" : "ControlElement", + "id" : "acm020489jsd", + "name" : "parse" + }, + "acm020490jsd" : { + "type" : "ClassUnit", + "id" : "acm020490jsd", + "name" : "LatexToUnicodeAdapter", + "compilationUnitId" : "acm020483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020488jsd", "acm020489jsd" ] + }, + "acm020491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020491jsd", + "name" : "StringUtil", + "parentId" : "acm020487jsd", + "content" : [ "acm020541jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020492jsd" : { + "type" : "CodePackage", + "id" : "acm020492jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020493jsd" ] + }, + "acm020493jsd" : { + "type" : "CodePackage", + "id" : "acm020493jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020494jsd" ] + }, + "acm020494jsd" : { + "type" : "CodePackage", + "id" : "acm020494jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020495jsd" ] + }, + "acm020495jsd" : { + "type" : "CodePackage", + "id" : "acm020495jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm020491jsd" ] + }, + "acm020496jsd" : { + "type" : "ControlElement", + "id" : "acm020496jsd", + "name" : "booleanToBinaryString" + }, + "acm020497jsd" : { + "type" : "ControlElement", + "id" : "acm020497jsd", + "name" : "quote" + }, + "acm020498jsd" : { + "type" : "ControlElement", + "id" : "acm020498jsd", + "name" : "getPart" + }, + "acm020499jsd" : { + "type" : "ControlElement", + "id" : "acm020499jsd", + "name" : "shaveString" + }, + "acm020500jsd" : { + "type" : "ControlElement", + "id" : "acm020500jsd", + "name" : "join" + }, + "acm020501jsd" : { + "type" : "ControlElement", + "id" : "acm020501jsd", + "name" : "stripBrackets" + }, + "acm020502jsd" : { + "type" : "ControlElement", + "id" : "acm020502jsd", + "name" : "getCorrectFileName" + }, + "acm020503jsd" : { + "type" : "ControlElement", + "id" : "acm020503jsd", + "name" : "wrap" + }, + "acm020504jsd" : { + "type" : "ControlElement", + "id" : "acm020504jsd", + "name" : "addWrappedLine" + }, + "acm020505jsd" : { + "type" : "ControlElement", + "id" : "acm020505jsd", + "name" : "quoteForHTML" + }, + "acm020506jsd" : { + "type" : "ControlElement", + "id" : "acm020506jsd", + "name" : "decodeStringDoubleArray" + }, + "acm020507jsd" : { + "type" : "ControlElement", + "id" : "acm020507jsd", + "name" : "putBracesAroundCapitals" + }, + "acm020508jsd" : { + "type" : "ControlElement", + "id" : "acm020508jsd", + "name" : "removeBracesAroundCapitals" + }, + "acm020509jsd" : { + "type" : "ControlElement", + "id" : "acm020509jsd", + "name" : "removeSingleBracesAroundCapitals" + }, + "acm020510jsd" : { + "type" : "ControlElement", + "id" : "acm020510jsd", + "name" : "unifyLineBreaks" + }, + "acm020511jsd" : { + "type" : "ControlElement", + "id" : "acm020511jsd", + "name" : "isInCurlyBrackets" + }, + "acm020512jsd" : { + "type" : "ControlElement", + "id" : "acm020512jsd", + "name" : "isInSquareBrackets" + }, + "acm020513jsd" : { + "type" : "ControlElement", + "id" : "acm020513jsd", + "name" : "isInCitationMarks" + }, + "acm020514jsd" : { + "type" : "ControlElement", + "id" : "acm020514jsd", + "name" : "intValueOf" + }, + "acm020515jsd" : { + "type" : "ControlElement", + "id" : "acm020515jsd", + "name" : "intValueOfOptional" + }, + "acm020516jsd" : { + "type" : "ControlElement", + "id" : "acm020516jsd", + "name" : "stripNonValidXMLCharacters" + }, + "acm020517jsd" : { + "type" : "ControlElement", + "id" : "acm020517jsd", + "name" : "tokenizeToList" + }, + "acm020518jsd" : { + "type" : "ControlElement", + "id" : "acm020518jsd", + "name" : "limitStringLength" + }, + "acm020519jsd" : { + "type" : "ControlElement", + "id" : "acm020519jsd", + "name" : "replaceSpecialCharacters" + }, + "acm020520jsd" : { + "type" : "ControlElement", + "id" : "acm020520jsd", + "name" : "repeatSpaces" + }, + "acm020521jsd" : { + "type" : "ControlElement", + "id" : "acm020521jsd", + "name" : "repeat" + }, + "acm020522jsd" : { + "type" : "ControlElement", + "id" : "acm020522jsd", + "name" : "isNullOrEmpty" + }, + "acm020523jsd" : { + "type" : "ControlElement", + "id" : "acm020523jsd", + "name" : "isBlank" + }, + "acm020524jsd" : { + "type" : "ControlElement", + "id" : "acm020524jsd", + "name" : "isBlank" + }, + "acm020525jsd" : { + "type" : "ControlElement", + "id" : "acm020525jsd", + "name" : "isNotBlank" + }, + "acm020526jsd" : { + "type" : "ControlElement", + "id" : "acm020526jsd", + "name" : "isNotBlank" + }, + "acm020527jsd" : { + "type" : "ControlElement", + "id" : "acm020527jsd", + "name" : "boldHTML" + }, + "acm020528jsd" : { + "type" : "ControlElement", + "id" : "acm020528jsd", + "name" : "boldHTML" + }, + "acm020529jsd" : { + "type" : "ControlElement", + "id" : "acm020529jsd", + "name" : "unquote" + }, + "acm020530jsd" : { + "type" : "ControlElement", + "id" : "acm020530jsd", + "name" : "stripAccents" + }, + "acm020531jsd" : { + "type" : "ControlElement", + "id" : "acm020531jsd", + "name" : "capitalizeFirst" + }, + "acm020532jsd" : { + "type" : "ControlElement", + "id" : "acm020532jsd", + "name" : "getStringAsWords" + }, + "acm020533jsd" : { + "type" : "ControlElement", + "id" : "acm020533jsd", + "name" : "getStringAsSentences" + }, + "acm020534jsd" : { + "type" : "ControlElement", + "id" : "acm020534jsd", + "name" : "containsIgnoreCase" + }, + "acm020535jsd" : { + "type" : "ControlElement", + "id" : "acm020535jsd", + "name" : "substringBetween" + }, + "acm020536jsd" : { + "type" : "ControlElement", + "id" : "acm020536jsd", + "name" : "ignoreCurlyBracket" + }, + "acm020537jsd" : { + "type" : "ControlElement", + "id" : "acm020537jsd", + "name" : "quoteStringIfSpaceIsContained" + }, + "acm020538jsd" : { + "type" : "ControlElement", + "id" : "acm020538jsd", + "name" : "containsWhitespace" + }, + "acm020539jsd" : { + "type" : "ControlElement", + "id" : "acm020539jsd", + "name" : "removeStringAtTheEnd" + }, + "acm020540jsd" : { + "type" : "ControlElement", + "id" : "acm020540jsd", + "name" : "endsWithIgnoreCase" + }, + "acm020541jsd" : { + "type" : "ClassUnit", + "id" : "acm020541jsd", + "name" : "StringUtil", + "compilationUnitId" : "acm020491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020548jsd" ], + "content" : [ "acm020496jsd", "acm020497jsd", "acm020498jsd", "acm020499jsd", "acm020500jsd", "acm020501jsd", "acm020502jsd", "acm020503jsd", "acm020504jsd", "acm020505jsd", "acm020506jsd", "acm020507jsd", "acm020508jsd", "acm020509jsd", "acm020510jsd", "acm020511jsd", "acm020512jsd", "acm020513jsd", "acm020514jsd", "acm020515jsd", "acm020516jsd", "acm020517jsd", "acm020518jsd", "acm020519jsd", "acm020520jsd", "acm020521jsd", "acm020522jsd", "acm020523jsd", "acm020524jsd", "acm020525jsd", "acm020526jsd", "acm020527jsd", "acm020528jsd", "acm020529jsd", "acm020530jsd", "acm020531jsd", "acm020532jsd", "acm020533jsd", "acm020534jsd", "acm020535jsd", "acm020536jsd", "acm020537jsd", "acm020538jsd", "acm020539jsd", "acm020540jsd" ] + }, + "acm020542jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020542jsd", + "name" : "UnicodeToReadableCharMap", + "parentId" : "acm020487jsd", + "content" : [ "acm020548jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020543jsd" : { + "type" : "CodePackage", + "id" : "acm020543jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020544jsd" ] + }, + "acm020544jsd" : { + "type" : "CodePackage", + "id" : "acm020544jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020545jsd" ] + }, + "acm020545jsd" : { + "type" : "CodePackage", + "id" : "acm020545jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020546jsd" ] + }, + "acm020546jsd" : { + "type" : "CodePackage", + "id" : "acm020546jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm020542jsd" ] + }, + "acm020547jsd" : { + "type" : "ControlElement", + "id" : "acm020547jsd", + "name" : "UnicodeToReadableCharMap" + }, + "acm020548jsd" : { + "type" : "ClassUnit", + "id" : "acm020548jsd", + "name" : "UnicodeToReadableCharMap", + "compilationUnitId" : "acm020542jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020547jsd" ] + }, + "acm020549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020549jsd", + "name" : "FetchResult", + "parentId" : "acm020553jsd", + "content" : [ "acm020557jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "study" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020550jsd" : { + "type" : "CodePackage", + "id" : "acm020550jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020551jsd" ] + }, + "acm020551jsd" : { + "type" : "CodePackage", + "id" : "acm020551jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020552jsd" ] + }, + "acm020552jsd" : { + "type" : "CodePackage", + "id" : "acm020552jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020553jsd" ] + }, + "acm020553jsd" : { + "type" : "CodePackage", + "id" : "acm020553jsd", + "name" : "study", + "parentId" : "acm017861jsd", + "content" : [ "acm020549jsd", "acm020558jsd", "acm020567jsd", "acm020588jsd", "acm020603jsd" ] + }, + "acm020554jsd" : { + "type" : "ControlElement", + "id" : "acm020554jsd", + "name" : "FetchResult" + }, + "acm020555jsd" : { + "type" : "ControlElement", + "id" : "acm020555jsd", + "name" : "getFetcherName" + }, + "acm020556jsd" : { + "type" : "ControlElement", + "id" : "acm020556jsd", + "name" : "getFetchResult" + }, + "acm020557jsd" : { + "type" : "ClassUnit", + "id" : "acm020557jsd", + "name" : "FetchResult", + "compilationUnitId" : "acm020549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd" ], + "content" : [ "acm020554jsd", "acm020555jsd", "acm020556jsd" ] + }, + "acm020558jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020558jsd", + "name" : "QueryResult", + "parentId" : "acm020553jsd", + "content" : [ "acm020566jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "study" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020559jsd" : { + "type" : "CodePackage", + "id" : "acm020559jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020560jsd" ] + }, + "acm020560jsd" : { + "type" : "CodePackage", + "id" : "acm020560jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020561jsd" ] + }, + "acm020561jsd" : { + "type" : "CodePackage", + "id" : "acm020561jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020562jsd" ] + }, + "acm020562jsd" : { + "type" : "CodePackage", + "id" : "acm020562jsd", + "name" : "study", + "parentId" : null, + "content" : [ "acm020558jsd" ] + }, + "acm020563jsd" : { + "type" : "ControlElement", + "id" : "acm020563jsd", + "name" : "QueryResult" + }, + "acm020564jsd" : { + "type" : "ControlElement", + "id" : "acm020564jsd", + "name" : "getQuery" + }, + "acm020565jsd" : { + "type" : "ControlElement", + "id" : "acm020565jsd", + "name" : "getResultsPerFetcher" + }, + "acm020566jsd" : { + "type" : "ClassUnit", + "id" : "acm020566jsd", + "name" : "QueryResult", + "compilationUnitId" : "acm020558jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020557jsd" ], + "content" : [ "acm020563jsd", "acm020564jsd", "acm020565jsd" ] + }, + "acm020567jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020567jsd", + "name" : "Study", + "parentId" : "acm020553jsd", + "content" : [ "acm020587jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "study" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020568jsd" : { + "type" : "CodePackage", + "id" : "acm020568jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020569jsd" ] + }, + "acm020569jsd" : { + "type" : "CodePackage", + "id" : "acm020569jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020570jsd" ] + }, + "acm020570jsd" : { + "type" : "CodePackage", + "id" : "acm020570jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020571jsd" ] + }, + "acm020571jsd" : { + "type" : "CodePackage", + "id" : "acm020571jsd", + "name" : "study", + "parentId" : null, + "content" : [ "acm020567jsd" ] + }, + "acm020572jsd" : { + "type" : "ControlElement", + "id" : "acm020572jsd", + "name" : "Study" + }, + "acm020573jsd" : { + "type" : "ControlElement", + "id" : "acm020573jsd", + "name" : "Study" + }, + "acm020574jsd" : { + "type" : "ControlElement", + "id" : "acm020574jsd", + "name" : "getAuthors" + }, + "acm020575jsd" : { + "type" : "ControlElement", + "id" : "acm020575jsd", + "name" : "setAuthors" + }, + "acm020576jsd" : { + "type" : "ControlElement", + "id" : "acm020576jsd", + "name" : "getQueries" + }, + "acm020577jsd" : { + "type" : "ControlElement", + "id" : "acm020577jsd", + "name" : "setQueries" + }, + "acm020578jsd" : { + "type" : "ControlElement", + "id" : "acm020578jsd", + "name" : "getDatabases" + }, + "acm020579jsd" : { + "type" : "ControlElement", + "id" : "acm020579jsd", + "name" : "setDatabases" + }, + "acm020580jsd" : { + "type" : "ControlElement", + "id" : "acm020580jsd", + "name" : "getTitle" + }, + "acm020581jsd" : { + "type" : "ControlElement", + "id" : "acm020581jsd", + "name" : "setTitle" + }, + "acm020582jsd" : { + "type" : "ControlElement", + "id" : "acm020582jsd", + "name" : "getResearchQuestions" + }, + "acm020583jsd" : { + "type" : "ControlElement", + "id" : "acm020583jsd", + "name" : "setResearchQuestions" + }, + "acm020584jsd" : { + "type" : "ControlElement", + "id" : "acm020584jsd", + "name" : "toString" + }, + "acm020585jsd" : { + "type" : "ControlElement", + "id" : "acm020585jsd", + "name" : "equals" + }, + "acm020586jsd" : { + "type" : "ControlElement", + "id" : "acm020586jsd", + "name" : "hashCode" + }, + "acm020587jsd" : { + "type" : "ClassUnit", + "id" : "acm020587jsd", + "name" : "Study", + "compilationUnitId" : "acm020567jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020587jsd", "acm020602jsd", "acm020615jsd" ], + "content" : [ "acm020572jsd", "acm020573jsd", "acm020574jsd", "acm020575jsd", "acm020576jsd", "acm020577jsd", "acm020578jsd", "acm020579jsd", "acm020580jsd", "acm020581jsd", "acm020582jsd", "acm020583jsd", "acm020584jsd", "acm020585jsd", "acm020586jsd" ] + }, + "acm020588jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020588jsd", + "name" : "StudyDatabase", + "parentId" : "acm020553jsd", + "content" : [ "acm020602jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "study" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020589jsd" : { + "type" : "CodePackage", + "id" : "acm020589jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020590jsd" ] + }, + "acm020590jsd" : { + "type" : "CodePackage", + "id" : "acm020590jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020591jsd" ] + }, + "acm020591jsd" : { + "type" : "CodePackage", + "id" : "acm020591jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020592jsd" ] + }, + "acm020592jsd" : { + "type" : "CodePackage", + "id" : "acm020592jsd", + "name" : "study", + "parentId" : null, + "content" : [ "acm020588jsd" ] + }, + "acm020593jsd" : { + "type" : "ControlElement", + "id" : "acm020593jsd", + "name" : "StudyDatabase" + }, + "acm020594jsd" : { + "type" : "ControlElement", + "id" : "acm020594jsd", + "name" : "StudyDatabase" + }, + "acm020595jsd" : { + "type" : "ControlElement", + "id" : "acm020595jsd", + "name" : "getName" + }, + "acm020596jsd" : { + "type" : "ControlElement", + "id" : "acm020596jsd", + "name" : "setName" + }, + "acm020597jsd" : { + "type" : "ControlElement", + "id" : "acm020597jsd", + "name" : "isEnabled" + }, + "acm020598jsd" : { + "type" : "ControlElement", + "id" : "acm020598jsd", + "name" : "setEnabled" + }, + "acm020599jsd" : { + "type" : "ControlElement", + "id" : "acm020599jsd", + "name" : "equals" + }, + "acm020600jsd" : { + "type" : "ControlElement", + "id" : "acm020600jsd", + "name" : "hashCode" + }, + "acm020601jsd" : { + "type" : "ControlElement", + "id" : "acm020601jsd", + "name" : "toString" + }, + "acm020602jsd" : { + "type" : "ClassUnit", + "id" : "acm020602jsd", + "name" : "StudyDatabase", + "compilationUnitId" : "acm020588jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020602jsd" ], + "content" : [ "acm020593jsd", "acm020594jsd", "acm020595jsd", "acm020596jsd", "acm020597jsd", "acm020598jsd", "acm020599jsd", "acm020600jsd", "acm020601jsd" ] + }, + "acm020603jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020603jsd", + "name" : "StudyQuery", + "parentId" : "acm020553jsd", + "content" : [ "acm020615jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "study" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020604jsd" : { + "type" : "CodePackage", + "id" : "acm020604jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020605jsd" ] + }, + "acm020605jsd" : { + "type" : "CodePackage", + "id" : "acm020605jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020606jsd" ] + }, + "acm020606jsd" : { + "type" : "CodePackage", + "id" : "acm020606jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020607jsd" ] + }, + "acm020607jsd" : { + "type" : "CodePackage", + "id" : "acm020607jsd", + "name" : "study", + "parentId" : null, + "content" : [ "acm020603jsd" ] + }, + "acm020608jsd" : { + "type" : "ControlElement", + "id" : "acm020608jsd", + "name" : "StudyQuery" + }, + "acm020609jsd" : { + "type" : "ControlElement", + "id" : "acm020609jsd", + "name" : "StudyQuery" + }, + "acm020610jsd" : { + "type" : "ControlElement", + "id" : "acm020610jsd", + "name" : "getQuery" + }, + "acm020611jsd" : { + "type" : "ControlElement", + "id" : "acm020611jsd", + "name" : "setQuery" + }, + "acm020612jsd" : { + "type" : "ControlElement", + "id" : "acm020612jsd", + "name" : "equals" + }, + "acm020613jsd" : { + "type" : "ControlElement", + "id" : "acm020613jsd", + "name" : "hashCode" + }, + "acm020614jsd" : { + "type" : "ControlElement", + "id" : "acm020614jsd", + "name" : "toString" + }, + "acm020615jsd" : { + "type" : "ClassUnit", + "id" : "acm020615jsd", + "name" : "StudyQuery", + "compilationUnitId" : "acm020603jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020615jsd" ], + "content" : [ "acm020608jsd", "acm020609jsd", "acm020610jsd", "acm020611jsd", "acm020612jsd", "acm020613jsd", "acm020614jsd" ] + }, + "acm020616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020616jsd", + "name" : "Citation", + "parentId" : "acm020620jsd", + "content" : [ "acm020631jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020617jsd" : { + "type" : "CodePackage", + "id" : "acm020617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020618jsd" ] + }, + "acm020618jsd" : { + "type" : "CodePackage", + "id" : "acm020618jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020619jsd" ] + }, + "acm020619jsd" : { + "type" : "CodePackage", + "id" : "acm020619jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020620jsd" ] + }, + "acm020620jsd" : { + "type" : "CodePackage", + "id" : "acm020620jsd", + "name" : "texparser", + "parentId" : "acm017861jsd", + "content" : [ "acm020616jsd", "acm020632jsd", "acm020647jsd", "acm029216jsd" ] + }, + "acm020621jsd" : { + "type" : "ControlElement", + "id" : "acm020621jsd", + "name" : "Citation" + }, + "acm020622jsd" : { + "type" : "ControlElement", + "id" : "acm020622jsd", + "name" : "getPath" + }, + "acm020623jsd" : { + "type" : "ControlElement", + "id" : "acm020623jsd", + "name" : "getLine" + }, + "acm020624jsd" : { + "type" : "ControlElement", + "id" : "acm020624jsd", + "name" : "getColStart" + }, + "acm020625jsd" : { + "type" : "ControlElement", + "id" : "acm020625jsd", + "name" : "getColEnd" + }, + "acm020626jsd" : { + "type" : "ControlElement", + "id" : "acm020626jsd", + "name" : "getLineText" + }, + "acm020627jsd" : { + "type" : "ControlElement", + "id" : "acm020627jsd", + "name" : "getContext" + }, + "acm020628jsd" : { + "type" : "ControlElement", + "id" : "acm020628jsd", + "name" : "toString" + }, + "acm020629jsd" : { + "type" : "ControlElement", + "id" : "acm020629jsd", + "name" : "equals" + }, + "acm020630jsd" : { + "type" : "ControlElement", + "id" : "acm020630jsd", + "name" : "hashCode" + }, + "acm020631jsd" : { + "type" : "ClassUnit", + "id" : "acm020631jsd", + "name" : "Citation", + "compilationUnitId" : "acm020616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020631jsd" ], + "content" : [ "acm020621jsd", "acm020622jsd", "acm020623jsd", "acm020624jsd", "acm020625jsd", "acm020626jsd", "acm020627jsd", "acm020628jsd", "acm020629jsd", "acm020630jsd" ] + }, + "acm020632jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020632jsd", + "name" : "LatexBibEntriesResolverResult", + "parentId" : "acm020620jsd", + "content" : [ "acm020646jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020633jsd" : { + "type" : "CodePackage", + "id" : "acm020633jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020634jsd" ] + }, + "acm020634jsd" : { + "type" : "CodePackage", + "id" : "acm020634jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020635jsd" ] + }, + "acm020635jsd" : { + "type" : "CodePackage", + "id" : "acm020635jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020636jsd" ] + }, + "acm020636jsd" : { + "type" : "CodePackage", + "id" : "acm020636jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm020632jsd" ] + }, + "acm020637jsd" : { + "type" : "ControlElement", + "id" : "acm020637jsd", + "name" : "LatexBibEntriesResolverResult" + }, + "acm020638jsd" : { + "type" : "ControlElement", + "id" : "acm020638jsd", + "name" : "getLatexParserResult" + }, + "acm020639jsd" : { + "type" : "ControlElement", + "id" : "acm020639jsd", + "name" : "getNewEntries" + }, + "acm020640jsd" : { + "type" : "ControlElement", + "id" : "acm020640jsd", + "name" : "addEntry" + }, + "acm020641jsd" : { + "type" : "ControlElement", + "id" : "acm020641jsd", + "name" : "getBibFiles" + }, + "acm020642jsd" : { + "type" : "ControlElement", + "id" : "acm020642jsd", + "name" : "getCitations" + }, + "acm020643jsd" : { + "type" : "ControlElement", + "id" : "acm020643jsd", + "name" : "toString" + }, + "acm020644jsd" : { + "type" : "ControlElement", + "id" : "acm020644jsd", + "name" : "equals" + }, + "acm020645jsd" : { + "type" : "ControlElement", + "id" : "acm020645jsd", + "name" : "hashCode" + }, + "acm020646jsd" : { + "type" : "ClassUnit", + "id" : "acm020646jsd", + "name" : "LatexBibEntriesResolverResult", + "compilationUnitId" : "acm020632jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020631jsd", "acm020646jsd", "acm020666jsd" ], + "content" : [ "acm020637jsd", "acm020638jsd", "acm020639jsd", "acm020640jsd", "acm020641jsd", "acm020642jsd", "acm020643jsd", "acm020644jsd", "acm020645jsd" ] + }, + "acm020647jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020647jsd", + "name" : "LatexParserResult", + "parentId" : "acm020620jsd", + "content" : [ "acm020666jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020648jsd" : { + "type" : "CodePackage", + "id" : "acm020648jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020649jsd" ] + }, + "acm020649jsd" : { + "type" : "CodePackage", + "id" : "acm020649jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020650jsd" ] + }, + "acm020650jsd" : { + "type" : "CodePackage", + "id" : "acm020650jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020651jsd" ] + }, + "acm020651jsd" : { + "type" : "CodePackage", + "id" : "acm020651jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm020647jsd" ] + }, + "acm020652jsd" : { + "type" : "ControlElement", + "id" : "acm020652jsd", + "name" : "LatexParserResult" + }, + "acm020653jsd" : { + "type" : "ControlElement", + "id" : "acm020653jsd", + "name" : "getFileList" + }, + "acm020654jsd" : { + "type" : "ControlElement", + "id" : "acm020654jsd", + "name" : "getNestedFiles" + }, + "acm020655jsd" : { + "type" : "ControlElement", + "id" : "acm020655jsd", + "name" : "getBibFiles" + }, + "acm020656jsd" : { + "type" : "ControlElement", + "id" : "acm020656jsd", + "name" : "getCitations" + }, + "acm020657jsd" : { + "type" : "ControlElement", + "id" : "acm020657jsd", + "name" : "getCitationsKeySet" + }, + "acm020658jsd" : { + "type" : "ControlElement", + "id" : "acm020658jsd", + "name" : "getCitationsByKey" + }, + "acm020659jsd" : { + "type" : "ControlElement", + "id" : "acm020659jsd", + "name" : "getCitationsByKey" + }, + "acm020660jsd" : { + "type" : "ControlElement", + "id" : "acm020660jsd", + "name" : "addFiles" + }, + "acm020661jsd" : { + "type" : "ControlElement", + "id" : "acm020661jsd", + "name" : "addBibFile" + }, + "acm020662jsd" : { + "type" : "ControlElement", + "id" : "acm020662jsd", + "name" : "addKey" + }, + "acm020663jsd" : { + "type" : "ControlElement", + "id" : "acm020663jsd", + "name" : "toString" + }, + "acm020664jsd" : { + "type" : "ControlElement", + "id" : "acm020664jsd", + "name" : "equals" + }, + "acm020665jsd" : { + "type" : "ControlElement", + "id" : "acm020665jsd", + "name" : "hashCode" + }, + "acm020666jsd" : { + "type" : "ClassUnit", + "id" : "acm020666jsd", + "name" : "LatexParserResult", + "compilationUnitId" : "acm020647jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020631jsd", "acm020666jsd" ], + "content" : [ "acm020652jsd", "acm020653jsd", "acm020654jsd", "acm020655jsd", "acm020656jsd", "acm020657jsd", "acm020658jsd", "acm020659jsd", "acm020660jsd", "acm020661jsd", "acm020662jsd", "acm020663jsd", "acm020664jsd", "acm020665jsd" ] + }, + "acm020667jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020667jsd", + "name" : "DummyFileUpdateMonitor", + "parentId" : "acm020671jsd", + "content" : [ "acm020676jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020668jsd" : { + "type" : "CodePackage", + "id" : "acm020668jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020669jsd" ] + }, + "acm020669jsd" : { + "type" : "CodePackage", + "id" : "acm020669jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020670jsd" ] + }, + "acm020670jsd" : { + "type" : "CodePackage", + "id" : "acm020670jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020671jsd" ] + }, + "acm020671jsd" : { + "type" : "CodePackage", + "id" : "acm020671jsd", + "name" : "util", + "parentId" : "acm017861jsd", + "content" : [ "acm020667jsd", "acm020677jsd", "acm020684jsd", "acm020694jsd", "acm020702jsd", "acm020712jsd", "acm020729jsd", "acm020736jsd" ] + }, + "acm020672jsd" : { + "type" : "ControlElement", + "id" : "acm020672jsd", + "name" : "addListenerForFile" + }, + "acm020673jsd" : { + "type" : "ControlElement", + "id" : "acm020673jsd", + "name" : "removeListener" + }, + "acm020674jsd" : { + "type" : "ControlElement", + "id" : "acm020674jsd", + "name" : "isActive" + }, + "acm020675jsd" : { + "type" : "ControlElement", + "id" : "acm020675jsd", + "name" : "shutdown" + }, + "acm020676jsd" : { + "type" : "ClassUnit", + "id" : "acm020676jsd", + "name" : "DummyFileUpdateMonitor", + "compilationUnitId" : "acm020667jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020693jsd" ], + "datatypeReferencesIds" : [ "acm020683jsd" ], + "content" : [ "acm020672jsd", "acm020673jsd", "acm020674jsd", "acm020675jsd" ] + }, + "acm020677jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020677jsd", + "name" : "FileUpdateListener", + "parentId" : "acm020671jsd", + "content" : [ "acm020683jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020678jsd" : { + "type" : "CodePackage", + "id" : "acm020678jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020679jsd" ] + }, + "acm020679jsd" : { + "type" : "CodePackage", + "id" : "acm020679jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020680jsd" ] + }, + "acm020680jsd" : { + "type" : "CodePackage", + "id" : "acm020680jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020681jsd" ] + }, + "acm020681jsd" : { + "type" : "CodePackage", + "id" : "acm020681jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020677jsd" ] + }, + "acm020682jsd" : { + "type" : "ControlElement", + "id" : "acm020682jsd", + "name" : "fileUpdated" + }, + "acm020683jsd" : { + "type" : "InterfaceUnit", + "id" : "acm020683jsd", + "name" : "FileUpdateListener", + "compilationUnitId" : "acm020677jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020682jsd" ] + }, + "acm020684jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020684jsd", + "name" : "FileUpdateMonitor", + "parentId" : "acm020671jsd", + "content" : [ "acm020693jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020685jsd" : { + "type" : "CodePackage", + "id" : "acm020685jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020686jsd" ] + }, + "acm020686jsd" : { + "type" : "CodePackage", + "id" : "acm020686jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020687jsd" ] + }, + "acm020687jsd" : { + "type" : "CodePackage", + "id" : "acm020687jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020688jsd" ] + }, + "acm020688jsd" : { + "type" : "CodePackage", + "id" : "acm020688jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020684jsd" ] + }, + "acm020689jsd" : { + "type" : "ControlElement", + "id" : "acm020689jsd", + "name" : "addListenerForFile" + }, + "acm020690jsd" : { + "type" : "ControlElement", + "id" : "acm020690jsd", + "name" : "removeListener" + }, + "acm020691jsd" : { + "type" : "ControlElement", + "id" : "acm020691jsd", + "name" : "isActive" + }, + "acm020692jsd" : { + "type" : "ControlElement", + "id" : "acm020692jsd", + "name" : "shutdown" + }, + "acm020693jsd" : { + "type" : "InterfaceUnit", + "id" : "acm020693jsd", + "name" : "FileUpdateMonitor", + "compilationUnitId" : "acm020684jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020683jsd" ], + "content" : [ "acm020689jsd", "acm020690jsd", "acm020691jsd", "acm020692jsd" ] + }, + "acm020694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020694jsd", + "name" : "ListUtil", + "parentId" : "acm020671jsd", + "content" : [ "acm020701jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020695jsd" : { + "type" : "CodePackage", + "id" : "acm020695jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020696jsd" ] + }, + "acm020696jsd" : { + "type" : "CodePackage", + "id" : "acm020696jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020697jsd" ] + }, + "acm020697jsd" : { + "type" : "CodePackage", + "id" : "acm020697jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020698jsd" ] + }, + "acm020698jsd" : { + "type" : "CodePackage", + "id" : "acm020698jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020694jsd" ] + }, + "acm020699jsd" : { + "type" : "ControlElement", + "id" : "acm020699jsd", + "name" : "anyMatch" + }, + "acm020700jsd" : { + "type" : "ControlElement", + "id" : "acm020700jsd", + "name" : "allMatch" + }, + "acm020701jsd" : { + "type" : "ClassUnit", + "id" : "acm020701jsd", + "name" : "ListUtil", + "compilationUnitId" : "acm020694jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020699jsd", "acm020700jsd" ] + }, + "acm020702jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020702jsd", + "name" : "MultiKeyMap", + "parentId" : "acm020671jsd", + "content" : [ "acm020711jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020703jsd" : { + "type" : "CodePackage", + "id" : "acm020703jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020704jsd" ] + }, + "acm020704jsd" : { + "type" : "CodePackage", + "id" : "acm020704jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020705jsd" ] + }, + "acm020705jsd" : { + "type" : "CodePackage", + "id" : "acm020705jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020706jsd" ] + }, + "acm020706jsd" : { + "type" : "CodePackage", + "id" : "acm020706jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020702jsd" ] + }, + "acm020707jsd" : { + "type" : "ControlElement", + "id" : "acm020707jsd", + "name" : "MultiKeyMap" + }, + "acm020708jsd" : { + "type" : "ControlElement", + "id" : "acm020708jsd", + "name" : "get" + }, + "acm020709jsd" : { + "type" : "ControlElement", + "id" : "acm020709jsd", + "name" : "put" + }, + "acm020710jsd" : { + "type" : "ControlElement", + "id" : "acm020710jsd", + "name" : "remove" + }, + "acm020711jsd" : { + "type" : "ClassUnit", + "id" : "acm020711jsd", + "name" : "MultiKeyMap", + "compilationUnitId" : "acm020702jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020707jsd", "acm020708jsd", "acm020709jsd", "acm020710jsd" ] + }, + "acm020712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020712jsd", + "name" : "OptionalUtil", + "parentId" : "acm020671jsd", + "content" : [ "acm020728jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020713jsd" : { + "type" : "CodePackage", + "id" : "acm020713jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020714jsd" ] + }, + "acm020714jsd" : { + "type" : "CodePackage", + "id" : "acm020714jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020715jsd" ] + }, + "acm020715jsd" : { + "type" : "CodePackage", + "id" : "acm020715jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020716jsd" ] + }, + "acm020716jsd" : { + "type" : "CodePackage", + "id" : "acm020716jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020712jsd" ] + }, + "acm020717jsd" : { + "type" : "ControlElement", + "id" : "acm020717jsd", + "name" : "toList" + }, + "acm020718jsd" : { + "type" : "ControlElement", + "id" : "acm020718jsd", + "name" : "equals" + }, + "acm020719jsd" : { + "type" : "ControlElement", + "id" : "acm020719jsd", + "name" : "toStream" + }, + "acm020720jsd" : { + "type" : "ControlElement", + "id" : "acm020720jsd", + "name" : "toList" + }, + "acm020721jsd" : { + "type" : "ControlElement", + "id" : "acm020721jsd", + "name" : "flatMapFromStream" + }, + "acm020722jsd" : { + "type" : "ControlElement", + "id" : "acm020722jsd", + "name" : "flatMap" + }, + "acm020723jsd" : { + "type" : "ControlElement", + "id" : "acm020723jsd", + "name" : "isPresentAnd" + }, + "acm020724jsd" : { + "type" : "ControlElement", + "id" : "acm020724jsd", + "name" : "isPresentAndTrue" + }, + "acm020725jsd" : { + "type" : "ControlElement", + "id" : "acm020725jsd", + "name" : "combine" + }, + "acm020726jsd" : { + "type" : "ControlElement", + "id" : "acm020726jsd", + "name" : "orElse" + }, + "acm020727jsd" : { + "type" : "ControlElement", + "id" : "acm020727jsd", + "name" : "orElse" + }, + "acm020728jsd" : { + "type" : "ClassUnit", + "id" : "acm020728jsd", + "name" : "OptionalUtil", + "compilationUnitId" : "acm020712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020717jsd", "acm020718jsd", "acm020719jsd", "acm020720jsd", "acm020721jsd", "acm020722jsd", "acm020723jsd", "acm020724jsd", "acm020725jsd", "acm020726jsd", "acm020727jsd" ] + }, + "acm020729jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020729jsd", + "name" : "ResultingStringState", + "parentId" : "acm020671jsd", + "content" : [ "acm020735jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020730jsd" : { + "type" : "CodePackage", + "id" : "acm020730jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020731jsd" ] + }, + "acm020731jsd" : { + "type" : "CodePackage", + "id" : "acm020731jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020732jsd" ] + }, + "acm020732jsd" : { + "type" : "CodePackage", + "id" : "acm020732jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020733jsd" ] + }, + "acm020733jsd" : { + "type" : "CodePackage", + "id" : "acm020733jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020729jsd" ] + }, + "acm020734jsd" : { + "type" : "ControlElement", + "id" : "acm020734jsd", + "name" : "ResultingStringState" + }, + "acm020735jsd" : { + "type" : "ClassUnit", + "id" : "acm020735jsd", + "name" : "ResultingStringState", + "compilationUnitId" : "acm020729jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020734jsd" ] + }, + "acm020736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020736jsd", + "name" : "TreeCollector", + "parentId" : "acm020671jsd", + "content" : [ "acm020749jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "model", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020737jsd" : { + "type" : "CodePackage", + "id" : "acm020737jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020738jsd" ] + }, + "acm020738jsd" : { + "type" : "CodePackage", + "id" : "acm020738jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020739jsd" ] + }, + "acm020739jsd" : { + "type" : "CodePackage", + "id" : "acm020739jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm020740jsd" ] + }, + "acm020740jsd" : { + "type" : "CodePackage", + "id" : "acm020740jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm020736jsd" ] + }, + "acm020741jsd" : { + "type" : "ControlElement", + "id" : "acm020741jsd", + "name" : "TreeCollector" + }, + "acm020742jsd" : { + "type" : "ControlElement", + "id" : "acm020742jsd", + "name" : "mergeIntoTree" + }, + "acm020743jsd" : { + "type" : "ControlElement", + "id" : "acm020743jsd", + "name" : "supplier" + }, + "acm020744jsd" : { + "type" : "ControlElement", + "id" : "acm020744jsd", + "name" : "accumulator" + }, + "acm020745jsd" : { + "type" : "ControlElement", + "id" : "acm020745jsd", + "name" : "merge" + }, + "acm020746jsd" : { + "type" : "ControlElement", + "id" : "acm020746jsd", + "name" : "combiner" + }, + "acm020747jsd" : { + "type" : "ControlElement", + "id" : "acm020747jsd", + "name" : "finisher" + }, + "acm020748jsd" : { + "type" : "ControlElement", + "id" : "acm020748jsd", + "name" : "characteristics" + }, + "acm020749jsd" : { + "type" : "ClassUnit", + "id" : "acm020749jsd", + "name" : "TreeCollector", + "compilationUnitId" : "acm020736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017927jsd", "acm020749jsd" ], + "content" : [ "acm020741jsd", "acm020742jsd", "acm020743jsd", "acm020744jsd", "acm020745jsd", "acm020746jsd", "acm020747jsd", "acm020748jsd" ] + }, + "acm020750jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020750jsd", + "name" : "AppearancePreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020765jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020751jsd" : { + "type" : "CodePackage", + "id" : "acm020751jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020752jsd" ] + }, + "acm020752jsd" : { + "type" : "CodePackage", + "id" : "acm020752jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020753jsd" ] + }, + "acm020753jsd" : { + "type" : "CodePackage", + "id" : "acm020753jsd", + "name" : "preferences", + "parentId" : "acm001339jsd", + "content" : [ "acm020750jsd", "acm020766jsd", "acm020775jsd", "acm020793jsd", "acm020820jsd", "acm020849jsd", "acm020876jsd", "acm020924jsd", "acm020951jsd", "acm020964jsd", "acm021096jsd", "acm021114jsd", "acm021144jsd", "acm021207jsd", "acm021225jsd", "acm021242jsd", "acm021268jsd", "acm021280jsd" ] + }, + "acm020754jsd" : { + "type" : "ControlElement", + "id" : "acm020754jsd", + "name" : "AppearancePreferences" + }, + "acm020755jsd" : { + "type" : "ControlElement", + "id" : "acm020755jsd", + "name" : "shouldOverrideDefaultFontSize" + }, + "acm020756jsd" : { + "type" : "ControlElement", + "id" : "acm020756jsd", + "name" : "setShouldOverrideDefaultFontSize" + }, + "acm020757jsd" : { + "type" : "ControlElement", + "id" : "acm020757jsd", + "name" : "shouldOverrideDefaultFontSizeProperty" + }, + "acm020758jsd" : { + "type" : "ControlElement", + "id" : "acm020758jsd", + "name" : "getMainFontSize" + }, + "acm020759jsd" : { + "type" : "ControlElement", + "id" : "acm020759jsd", + "name" : "getDefaultFontSize" + }, + "acm020760jsd" : { + "type" : "ControlElement", + "id" : "acm020760jsd", + "name" : "setMainFontSize" + }, + "acm020761jsd" : { + "type" : "ControlElement", + "id" : "acm020761jsd", + "name" : "mainFontSizeProperty" + }, + "acm020762jsd" : { + "type" : "ControlElement", + "id" : "acm020762jsd", + "name" : "getTheme" + }, + "acm020763jsd" : { + "type" : "ControlElement", + "id" : "acm020763jsd", + "name" : "setTheme" + }, + "acm020764jsd" : { + "type" : "ControlElement", + "id" : "acm020764jsd", + "name" : "themeProperty" + }, + "acm020765jsd" : { + "type" : "ClassUnit", + "id" : "acm020765jsd", + "name" : "AppearancePreferences", + "compilationUnitId" : "acm020750jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009325jsd" ], + "content" : [ "acm020754jsd", "acm020755jsd", "acm020756jsd", "acm020757jsd", "acm020758jsd", "acm020759jsd", "acm020760jsd", "acm020761jsd", "acm020762jsd", "acm020763jsd", "acm020764jsd" ] + }, + "acm020766jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020766jsd", + "name" : "BibEntryPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020774jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020767jsd" : { + "type" : "CodePackage", + "id" : "acm020767jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020768jsd" ] + }, + "acm020768jsd" : { + "type" : "CodePackage", + "id" : "acm020768jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020769jsd" ] + }, + "acm020769jsd" : { + "type" : "CodePackage", + "id" : "acm020769jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020766jsd" ] + }, + "acm020770jsd" : { + "type" : "ControlElement", + "id" : "acm020770jsd", + "name" : "BibEntryPreferences" + }, + "acm020771jsd" : { + "type" : "ControlElement", + "id" : "acm020771jsd", + "name" : "getKeywordSeparator" + }, + "acm020772jsd" : { + "type" : "ControlElement", + "id" : "acm020772jsd", + "name" : "keywordSeparatorProperty" + }, + "acm020773jsd" : { + "type" : "ControlElement", + "id" : "acm020773jsd", + "name" : "setKeywordSeparator" + }, + "acm020774jsd" : { + "type" : "ClassUnit", + "id" : "acm020774jsd", + "name" : "BibEntryPreferences", + "compilationUnitId" : "acm020766jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020770jsd", "acm020771jsd", "acm020772jsd", "acm020773jsd" ] + }, + "acm020775jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020775jsd", + "name" : "CleanupPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020791jsd", "acm020792jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020776jsd" : { + "type" : "CodePackage", + "id" : "acm020776jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020777jsd" ] + }, + "acm020777jsd" : { + "type" : "CodePackage", + "id" : "acm020777jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020778jsd" ] + }, + "acm020778jsd" : { + "type" : "CodePackage", + "id" : "acm020778jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020775jsd" ] + }, + "acm020779jsd" : { + "type" : "ControlElement", + "id" : "acm020779jsd", + "name" : "CleanupPreferences" + }, + "acm020780jsd" : { + "type" : "ControlElement", + "id" : "acm020780jsd", + "name" : "CleanupPreferences" + }, + "acm020781jsd" : { + "type" : "ControlElement", + "id" : "acm020781jsd", + "name" : "CleanupPreferences" + }, + "acm020782jsd" : { + "type" : "ControlElement", + "id" : "acm020782jsd", + "name" : "CleanupPreferences" + }, + "acm020783jsd" : { + "type" : "ControlElement", + "id" : "acm020783jsd", + "name" : "getActiveJobs" + }, + "acm020784jsd" : { + "type" : "ControlElement", + "id" : "acm020784jsd", + "name" : "setActive" + }, + "acm020785jsd" : { + "type" : "ControlElement", + "id" : "acm020785jsd", + "name" : "getObservableActiveJobs" + }, + "acm020786jsd" : { + "type" : "ControlElement", + "id" : "acm020786jsd", + "name" : "setActiveJobs" + }, + "acm020787jsd" : { + "type" : "ControlElement", + "id" : "acm020787jsd", + "name" : "isActive" + }, + "acm020788jsd" : { + "type" : "ControlElement", + "id" : "acm020788jsd", + "name" : "getFieldFormatterCleanups" + }, + "acm020789jsd" : { + "type" : "ControlElement", + "id" : "acm020789jsd", + "name" : "fieldFormatterCleanupsProperty" + }, + "acm020790jsd" : { + "type" : "ControlElement", + "id" : "acm020790jsd", + "name" : "setFieldFormatterCleanups" + }, + "acm020791jsd" : { + "type" : "ClassUnit", + "id" : "acm020791jsd", + "name" : "CleanupPreferences", + "compilationUnitId" : "acm020775jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011188jsd", "acm020792jsd" ], + "content" : [ "acm020779jsd", "acm020780jsd", "acm020781jsd", "acm020782jsd", "acm020783jsd", "acm020784jsd", "acm020785jsd", "acm020786jsd", "acm020787jsd", "acm020788jsd", "acm020789jsd", "acm020790jsd" ] + }, + "acm020792jsd" : { + "type" : "ClassUnit", + "id" : "acm020792jsd", + "name" : "CleanupStep", + "compilationUnitId" : "acm020775jsd", + "parentDatatypeId" : "acm020791jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm020793jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020793jsd", + "name" : "ExternalApplicationsPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020819jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020794jsd" : { + "type" : "CodePackage", + "id" : "acm020794jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020795jsd" ] + }, + "acm020795jsd" : { + "type" : "CodePackage", + "id" : "acm020795jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020796jsd" ] + }, + "acm020796jsd" : { + "type" : "CodePackage", + "id" : "acm020796jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020793jsd" ] + }, + "acm020797jsd" : { + "type" : "ControlElement", + "id" : "acm020797jsd", + "name" : "ExternalApplicationsPreferences" + }, + "acm020798jsd" : { + "type" : "ControlElement", + "id" : "acm020798jsd", + "name" : "getEmailSubject" + }, + "acm020799jsd" : { + "type" : "ControlElement", + "id" : "acm020799jsd", + "name" : "eMailSubjectProperty" + }, + "acm020800jsd" : { + "type" : "ControlElement", + "id" : "acm020800jsd", + "name" : "setEMailSubject" + }, + "acm020801jsd" : { + "type" : "ControlElement", + "id" : "acm020801jsd", + "name" : "shouldAutoOpenEmailAttachmentsFolder" + }, + "acm020802jsd" : { + "type" : "ControlElement", + "id" : "acm020802jsd", + "name" : "autoOpenEmailAttachmentsFolderProperty" + }, + "acm020803jsd" : { + "type" : "ControlElement", + "id" : "acm020803jsd", + "name" : "setAutoOpenEmailAttachmentsFolder" + }, + "acm020804jsd" : { + "type" : "ControlElement", + "id" : "acm020804jsd", + "name" : "getCiteCommand" + }, + "acm020805jsd" : { + "type" : "ControlElement", + "id" : "acm020805jsd", + "name" : "citeCommandProperty" + }, + "acm020806jsd" : { + "type" : "ControlElement", + "id" : "acm020806jsd", + "name" : "setCiteCommand" + }, + "acm020807jsd" : { + "type" : "ControlElement", + "id" : "acm020807jsd", + "name" : "useCustomTerminal" + }, + "acm020808jsd" : { + "type" : "ControlElement", + "id" : "acm020808jsd", + "name" : "useCustomTerminalProperty" + }, + "acm020809jsd" : { + "type" : "ControlElement", + "id" : "acm020809jsd", + "name" : "setUseCustomTerminal" + }, + "acm020810jsd" : { + "type" : "ControlElement", + "id" : "acm020810jsd", + "name" : "getCustomTerminalCommand" + }, + "acm020811jsd" : { + "type" : "ControlElement", + "id" : "acm020811jsd", + "name" : "customTerminalCommandProperty" + }, + "acm020812jsd" : { + "type" : "ControlElement", + "id" : "acm020812jsd", + "name" : "setCustomTerminalCommand" + }, + "acm020813jsd" : { + "type" : "ControlElement", + "id" : "acm020813jsd", + "name" : "useCustomFileBrowser" + }, + "acm020814jsd" : { + "type" : "ControlElement", + "id" : "acm020814jsd", + "name" : "useCustomFileBrowserProperty" + }, + "acm020815jsd" : { + "type" : "ControlElement", + "id" : "acm020815jsd", + "name" : "setUseCustomFileBrowser" + }, + "acm020816jsd" : { + "type" : "ControlElement", + "id" : "acm020816jsd", + "name" : "getCustomFileBrowserCommand" + }, + "acm020817jsd" : { + "type" : "ControlElement", + "id" : "acm020817jsd", + "name" : "customFileBrowserCommandProperty" + }, + "acm020818jsd" : { + "type" : "ControlElement", + "id" : "acm020818jsd", + "name" : "setCustomFileBrowserCommand" + }, + "acm020819jsd" : { + "type" : "ClassUnit", + "id" : "acm020819jsd", + "name" : "ExternalApplicationsPreferences", + "compilationUnitId" : "acm020793jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm020797jsd", "acm020798jsd", "acm020799jsd", "acm020800jsd", "acm020801jsd", "acm020802jsd", "acm020803jsd", "acm020804jsd", "acm020805jsd", "acm020806jsd", "acm020807jsd", "acm020808jsd", "acm020809jsd", "acm020810jsd", "acm020811jsd", "acm020812jsd", "acm020813jsd", "acm020814jsd", "acm020815jsd", "acm020816jsd", "acm020817jsd", "acm020818jsd" ] + }, + "acm020820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020820jsd", + "name" : "FilePreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020848jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020821jsd" : { + "type" : "CodePackage", + "id" : "acm020821jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020822jsd" ] + }, + "acm020822jsd" : { + "type" : "CodePackage", + "id" : "acm020822jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020823jsd" ] + }, + "acm020823jsd" : { + "type" : "CodePackage", + "id" : "acm020823jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020820jsd" ] + }, + "acm020824jsd" : { + "type" : "ControlElement", + "id" : "acm020824jsd", + "name" : "FilePreferences" + }, + "acm020825jsd" : { + "type" : "ControlElement", + "id" : "acm020825jsd", + "name" : "getUser" + }, + "acm020826jsd" : { + "type" : "ControlElement", + "id" : "acm020826jsd", + "name" : "getMainFileDirectory" + }, + "acm020827jsd" : { + "type" : "ControlElement", + "id" : "acm020827jsd", + "name" : "mainFileDirectoryProperty" + }, + "acm020828jsd" : { + "type" : "ControlElement", + "id" : "acm020828jsd", + "name" : "setMainFileDirectory" + }, + "acm020829jsd" : { + "type" : "ControlElement", + "id" : "acm020829jsd", + "name" : "shouldStoreFilesRelativeToBibFile" + }, + "acm020830jsd" : { + "type" : "ControlElement", + "id" : "acm020830jsd", + "name" : "storeFilesRelativeToBibFileProperty" + }, + "acm020831jsd" : { + "type" : "ControlElement", + "id" : "acm020831jsd", + "name" : "setStoreFilesRelativeToBibFile" + }, + "acm020832jsd" : { + "type" : "ControlElement", + "id" : "acm020832jsd", + "name" : "getFileNamePattern" + }, + "acm020833jsd" : { + "type" : "ControlElement", + "id" : "acm020833jsd", + "name" : "fileNamePatternProperty" + }, + "acm020834jsd" : { + "type" : "ControlElement", + "id" : "acm020834jsd", + "name" : "setFileNamePattern" + }, + "acm020835jsd" : { + "type" : "ControlElement", + "id" : "acm020835jsd", + "name" : "getFileDirectoryPattern" + }, + "acm020836jsd" : { + "type" : "ControlElement", + "id" : "acm020836jsd", + "name" : "fileDirectoryPatternProperty" + }, + "acm020837jsd" : { + "type" : "ControlElement", + "id" : "acm020837jsd", + "name" : "setFileDirectoryPattern" + }, + "acm020838jsd" : { + "type" : "ControlElement", + "id" : "acm020838jsd", + "name" : "shouldDownloadLinkedFiles" + }, + "acm020839jsd" : { + "type" : "ControlElement", + "id" : "acm020839jsd", + "name" : "downloadLinkedFilesProperty" + }, + "acm020840jsd" : { + "type" : "ControlElement", + "id" : "acm020840jsd", + "name" : "setDownloadLinkedFiles" + }, + "acm020841jsd" : { + "type" : "ControlElement", + "id" : "acm020841jsd", + "name" : "shouldFulltextIndexLinkedFiles" + }, + "acm020842jsd" : { + "type" : "ControlElement", + "id" : "acm020842jsd", + "name" : "fulltextIndexLinkedFilesProperty" + }, + "acm020843jsd" : { + "type" : "ControlElement", + "id" : "acm020843jsd", + "name" : "setFulltextIndexLinkedFiles" + }, + "acm020844jsd" : { + "type" : "ControlElement", + "id" : "acm020844jsd", + "name" : "getWorkingDirectory" + }, + "acm020845jsd" : { + "type" : "ControlElement", + "id" : "acm020845jsd", + "name" : "workingDirectoryProperty" + }, + "acm020846jsd" : { + "type" : "ControlElement", + "id" : "acm020846jsd", + "name" : "setWorkingDirectory" + }, + "acm020847jsd" : { + "type" : "ControlElement", + "id" : "acm020847jsd", + "name" : "getExternalFileTypes" + }, + "acm020848jsd" : { + "type" : "ClassUnit", + "id" : "acm020848jsd", + "name" : "FilePreferences", + "compilationUnitId" : "acm020820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004328jsd" ], + "content" : [ "acm020824jsd", "acm020825jsd", "acm020826jsd", "acm020827jsd", "acm020828jsd", "acm020829jsd", "acm020830jsd", "acm020831jsd", "acm020832jsd", "acm020833jsd", "acm020834jsd", "acm020835jsd", "acm020836jsd", "acm020837jsd", "acm020838jsd", "acm020839jsd", "acm020840jsd", "acm020841jsd", "acm020842jsd", "acm020843jsd", "acm020844jsd", "acm020845jsd", "acm020846jsd", "acm020847jsd" ] + }, + "acm020849jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020849jsd", + "name" : "GeneralPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020875jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020850jsd" : { + "type" : "CodePackage", + "id" : "acm020850jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020851jsd" ] + }, + "acm020851jsd" : { + "type" : "CodePackage", + "id" : "acm020851jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020852jsd" ] + }, + "acm020852jsd" : { + "type" : "CodePackage", + "id" : "acm020852jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020849jsd" ] + }, + "acm020853jsd" : { + "type" : "ControlElement", + "id" : "acm020853jsd", + "name" : "GeneralPreferences" + }, + "acm020854jsd" : { + "type" : "ControlElement", + "id" : "acm020854jsd", + "name" : "getLanguage" + }, + "acm020855jsd" : { + "type" : "ControlElement", + "id" : "acm020855jsd", + "name" : "languageProperty" + }, + "acm020856jsd" : { + "type" : "ControlElement", + "id" : "acm020856jsd", + "name" : "setLanguage" + }, + "acm020857jsd" : { + "type" : "ControlElement", + "id" : "acm020857jsd", + "name" : "getDefaultBibDatabaseMode" + }, + "acm020858jsd" : { + "type" : "ControlElement", + "id" : "acm020858jsd", + "name" : "defaultBibDatabaseModeProperty" + }, + "acm020859jsd" : { + "type" : "ControlElement", + "id" : "acm020859jsd", + "name" : "setDefaultBibDatabaseMode" + }, + "acm020860jsd" : { + "type" : "ControlElement", + "id" : "acm020860jsd", + "name" : "warnAboutDuplicatesInInspection" + }, + "acm020861jsd" : { + "type" : "ControlElement", + "id" : "acm020861jsd", + "name" : "isWarnAboutDuplicatesInInspectionProperty" + }, + "acm020862jsd" : { + "type" : "ControlElement", + "id" : "acm020862jsd", + "name" : "setWarnAboutDuplicatesInInspection" + }, + "acm020863jsd" : { + "type" : "ControlElement", + "id" : "acm020863jsd", + "name" : "shouldConfirmDelete" + }, + "acm020864jsd" : { + "type" : "ControlElement", + "id" : "acm020864jsd", + "name" : "confirmDeleteProperty" + }, + "acm020865jsd" : { + "type" : "ControlElement", + "id" : "acm020865jsd", + "name" : "setConfirmDelete" + }, + "acm020866jsd" : { + "type" : "ControlElement", + "id" : "acm020866jsd", + "name" : "isMemoryStickMode" + }, + "acm020867jsd" : { + "type" : "ControlElement", + "id" : "acm020867jsd", + "name" : "memoryStickModeProperty" + }, + "acm020868jsd" : { + "type" : "ControlElement", + "id" : "acm020868jsd", + "name" : "setMemoryStickMode" + }, + "acm020869jsd" : { + "type" : "ControlElement", + "id" : "acm020869jsd", + "name" : "shouldOpenLastEdited" + }, + "acm020870jsd" : { + "type" : "ControlElement", + "id" : "acm020870jsd", + "name" : "openLastEditedProperty" + }, + "acm020871jsd" : { + "type" : "ControlElement", + "id" : "acm020871jsd", + "name" : "setOpenLastEdited" + }, + "acm020872jsd" : { + "type" : "ControlElement", + "id" : "acm020872jsd", + "name" : "shouldShowAdvancedHints" + }, + "acm020873jsd" : { + "type" : "ControlElement", + "id" : "acm020873jsd", + "name" : "showAdvancedHintsProperty" + }, + "acm020874jsd" : { + "type" : "ControlElement", + "id" : "acm020874jsd", + "name" : "setShowAdvancedHints" + }, + "acm020875jsd" : { + "type" : "ClassUnit", + "id" : "acm020875jsd", + "name" : "GeneralPreferences", + "compilationUnitId" : "acm020849jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014911jsd", "acm018032jsd" ], + "content" : [ "acm020853jsd", "acm020854jsd", "acm020855jsd", "acm020856jsd", "acm020857jsd", "acm020858jsd", "acm020859jsd", "acm020860jsd", "acm020861jsd", "acm020862jsd", "acm020863jsd", "acm020864jsd", "acm020865jsd", "acm020866jsd", "acm020867jsd", "acm020868jsd", "acm020869jsd", "acm020870jsd", "acm020871jsd", "acm020872jsd", "acm020873jsd", "acm020874jsd" ] + }, + "acm020876jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020876jsd", + "name" : "GuiPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020923jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020877jsd" : { + "type" : "CodePackage", + "id" : "acm020877jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020878jsd" ] + }, + "acm020878jsd" : { + "type" : "CodePackage", + "id" : "acm020878jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020879jsd" ] + }, + "acm020879jsd" : { + "type" : "CodePackage", + "id" : "acm020879jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020876jsd" ] + }, + "acm020880jsd" : { + "type" : "ControlElement", + "id" : "acm020880jsd", + "name" : "GuiPreferences" + }, + "acm020881jsd" : { + "type" : "ControlElement", + "id" : "acm020881jsd", + "name" : "getPositionX" + }, + "acm020882jsd" : { + "type" : "ControlElement", + "id" : "acm020882jsd", + "name" : "positionXProperty" + }, + "acm020883jsd" : { + "type" : "ControlElement", + "id" : "acm020883jsd", + "name" : "setPositionX" + }, + "acm020884jsd" : { + "type" : "ControlElement", + "id" : "acm020884jsd", + "name" : "getPositionY" + }, + "acm020885jsd" : { + "type" : "ControlElement", + "id" : "acm020885jsd", + "name" : "positionYProperty" + }, + "acm020886jsd" : { + "type" : "ControlElement", + "id" : "acm020886jsd", + "name" : "setPositionY" + }, + "acm020887jsd" : { + "type" : "ControlElement", + "id" : "acm020887jsd", + "name" : "getSizeX" + }, + "acm020888jsd" : { + "type" : "ControlElement", + "id" : "acm020888jsd", + "name" : "sizeXProperty" + }, + "acm020889jsd" : { + "type" : "ControlElement", + "id" : "acm020889jsd", + "name" : "setSizeX" + }, + "acm020890jsd" : { + "type" : "ControlElement", + "id" : "acm020890jsd", + "name" : "getSizeY" + }, + "acm020891jsd" : { + "type" : "ControlElement", + "id" : "acm020891jsd", + "name" : "sizeYProperty" + }, + "acm020892jsd" : { + "type" : "ControlElement", + "id" : "acm020892jsd", + "name" : "setSizeY" + }, + "acm020893jsd" : { + "type" : "ControlElement", + "id" : "acm020893jsd", + "name" : "isWindowMaximised" + }, + "acm020894jsd" : { + "type" : "ControlElement", + "id" : "acm020894jsd", + "name" : "windowMaximisedProperty" + }, + "acm020895jsd" : { + "type" : "ControlElement", + "id" : "acm020895jsd", + "name" : "setWindowMaximised" + }, + "acm020896jsd" : { + "type" : "ControlElement", + "id" : "acm020896jsd", + "name" : "getLastFilesOpened" + }, + "acm020897jsd" : { + "type" : "ControlElement", + "id" : "acm020897jsd", + "name" : "setLastFilesOpened" + }, + "acm020898jsd" : { + "type" : "ControlElement", + "id" : "acm020898jsd", + "name" : "getLastFocusedFile" + }, + "acm020899jsd" : { + "type" : "ControlElement", + "id" : "acm020899jsd", + "name" : "lastFocusedFileProperty" + }, + "acm020900jsd" : { + "type" : "ControlElement", + "id" : "acm020900jsd", + "name" : "setLastFocusedFile" + }, + "acm020901jsd" : { + "type" : "ControlElement", + "id" : "acm020901jsd", + "name" : "getFileHistory" + }, + "acm020902jsd" : { + "type" : "ControlElement", + "id" : "acm020902jsd", + "name" : "getLastSelectedIdBasedFetcher" + }, + "acm020903jsd" : { + "type" : "ControlElement", + "id" : "acm020903jsd", + "name" : "lastSelectedIdBasedFetcherProperty" + }, + "acm020904jsd" : { + "type" : "ControlElement", + "id" : "acm020904jsd", + "name" : "setLastSelectedIdBasedFetcher" + }, + "acm020905jsd" : { + "type" : "ControlElement", + "id" : "acm020905jsd", + "name" : "getMergeDiffMode" + }, + "acm020906jsd" : { + "type" : "ControlElement", + "id" : "acm020906jsd", + "name" : "mergeDiffModeProperty" + }, + "acm020907jsd" : { + "type" : "ControlElement", + "id" : "acm020907jsd", + "name" : "setMergeDiffMode" + }, + "acm020908jsd" : { + "type" : "ControlElement", + "id" : "acm020908jsd", + "name" : "getMergeShouldShowDiff" + }, + "acm020909jsd" : { + "type" : "ControlElement", + "id" : "acm020909jsd", + "name" : "mergeShouldShowDiffProperty" + }, + "acm020910jsd" : { + "type" : "ControlElement", + "id" : "acm020910jsd", + "name" : "setMergeShouldShowDiff" + }, + "acm020911jsd" : { + "type" : "ControlElement", + "id" : "acm020911jsd", + "name" : "getMergeShouldShowUnifiedDiff" + }, + "acm020912jsd" : { + "type" : "ControlElement", + "id" : "acm020912jsd", + "name" : "mergeShouldShowUnifiedDiffProperty" + }, + "acm020913jsd" : { + "type" : "ControlElement", + "id" : "acm020913jsd", + "name" : "setMergeShouldShowUnifiedDiff" + }, + "acm020914jsd" : { + "type" : "ControlElement", + "id" : "acm020914jsd", + "name" : "getMergeHighlightWords" + }, + "acm020915jsd" : { + "type" : "ControlElement", + "id" : "acm020915jsd", + "name" : "mergeHighlightWordsProperty" + }, + "acm020916jsd" : { + "type" : "ControlElement", + "id" : "acm020916jsd", + "name" : "setMergeHighlightWords" + }, + "acm020917jsd" : { + "type" : "ControlElement", + "id" : "acm020917jsd", + "name" : "getSidePaneWidth" + }, + "acm020918jsd" : { + "type" : "ControlElement", + "id" : "acm020918jsd", + "name" : "sidePaneWidthProperty" + }, + "acm020919jsd" : { + "type" : "ControlElement", + "id" : "acm020919jsd", + "name" : "setSidePaneWidth" + }, + "acm020920jsd" : { + "type" : "ControlElement", + "id" : "acm020920jsd", + "name" : "mergeShowChangedFieldOnlyProperty" + }, + "acm020921jsd" : { + "type" : "ControlElement", + "id" : "acm020921jsd", + "name" : "isMergeShowChangedFieldsOnly" + }, + "acm020922jsd" : { + "type" : "ControlElement", + "id" : "acm020922jsd", + "name" : "setIsMergedShowChangedFielsOnly" + }, + "acm020923jsd" : { + "type" : "ClassUnit", + "id" : "acm020923jsd", + "name" : "GuiPreferences", + "compilationUnitId" : "acm020876jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006534jsd", "acm017507jsd" ], + "content" : [ "acm020880jsd", "acm020881jsd", "acm020882jsd", "acm020883jsd", "acm020884jsd", "acm020885jsd", "acm020886jsd", "acm020887jsd", "acm020888jsd", "acm020889jsd", "acm020890jsd", "acm020891jsd", "acm020892jsd", "acm020893jsd", "acm020894jsd", "acm020895jsd", "acm020896jsd", "acm020897jsd", "acm020898jsd", "acm020899jsd", "acm020900jsd", "acm020901jsd", "acm020902jsd", "acm020903jsd", "acm020904jsd", "acm020905jsd", "acm020906jsd", "acm020907jsd", "acm020908jsd", "acm020909jsd", "acm020910jsd", "acm020911jsd", "acm020912jsd", "acm020913jsd", "acm020914jsd", "acm020915jsd", "acm020916jsd", "acm020917jsd", "acm020918jsd", "acm020919jsd", "acm020920jsd", "acm020921jsd", "acm020922jsd" ] + }, + "acm020924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020924jsd", + "name" : "ImportExportPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020950jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020925jsd" : { + "type" : "CodePackage", + "id" : "acm020925jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020926jsd" ] + }, + "acm020926jsd" : { + "type" : "CodePackage", + "id" : "acm020926jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020927jsd" ] + }, + "acm020927jsd" : { + "type" : "CodePackage", + "id" : "acm020927jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020924jsd" ] + }, + "acm020928jsd" : { + "type" : "ControlElement", + "id" : "acm020928jsd", + "name" : "ImportExportPreferences" + }, + "acm020929jsd" : { + "type" : "ControlElement", + "id" : "acm020929jsd", + "name" : "shouldAlwaysReformatOnSave" + }, + "acm020930jsd" : { + "type" : "ControlElement", + "id" : "acm020930jsd", + "name" : "alwaysReformatOnSaveProperty" + }, + "acm020931jsd" : { + "type" : "ControlElement", + "id" : "acm020931jsd", + "name" : "setAlwaysReformatOnSave" + }, + "acm020932jsd" : { + "type" : "ControlElement", + "id" : "acm020932jsd", + "name" : "getImportWorkingDirectory" + }, + "acm020933jsd" : { + "type" : "ControlElement", + "id" : "acm020933jsd", + "name" : "importWorkingDirectoryProperty" + }, + "acm020934jsd" : { + "type" : "ControlElement", + "id" : "acm020934jsd", + "name" : "setImportWorkingDirectory" + }, + "acm020935jsd" : { + "type" : "ControlElement", + "id" : "acm020935jsd", + "name" : "getLastExportExtension" + }, + "acm020936jsd" : { + "type" : "ControlElement", + "id" : "acm020936jsd", + "name" : "lastExportExtensionProperty" + }, + "acm020937jsd" : { + "type" : "ControlElement", + "id" : "acm020937jsd", + "name" : "setLastExportExtension" + }, + "acm020938jsd" : { + "type" : "ControlElement", + "id" : "acm020938jsd", + "name" : "getExportWorkingDirectory" + }, + "acm020939jsd" : { + "type" : "ControlElement", + "id" : "acm020939jsd", + "name" : "exportWorkingDirectoryProperty" + }, + "acm020940jsd" : { + "type" : "ControlElement", + "id" : "acm020940jsd", + "name" : "setExportWorkingDirectory" + }, + "acm020941jsd" : { + "type" : "ControlElement", + "id" : "acm020941jsd", + "name" : "getExportSaveOrder" + }, + "acm020942jsd" : { + "type" : "ControlElement", + "id" : "acm020942jsd", + "name" : "exportSaveOrderProperty" + }, + "acm020943jsd" : { + "type" : "ControlElement", + "id" : "acm020943jsd", + "name" : "setExportSaveOrder" + }, + "acm020944jsd" : { + "type" : "ControlElement", + "id" : "acm020944jsd", + "name" : "shouldAutoSave" + }, + "acm020945jsd" : { + "type" : "ControlElement", + "id" : "acm020945jsd", + "name" : "autoSaveProperty" + }, + "acm020946jsd" : { + "type" : "ControlElement", + "id" : "acm020946jsd", + "name" : "setAutoSave" + }, + "acm020947jsd" : { + "type" : "ControlElement", + "id" : "acm020947jsd", + "name" : "shouldWarnAboutDuplicatesOnImport" + }, + "acm020948jsd" : { + "type" : "ControlElement", + "id" : "acm020948jsd", + "name" : "warnAboutDuplicatesOnImportProperty" + }, + "acm020949jsd" : { + "type" : "ControlElement", + "id" : "acm020949jsd", + "name" : "setWarnAboutDuplicatesOnImport" + }, + "acm020950jsd" : { + "type" : "ClassUnit", + "id" : "acm020950jsd", + "name" : "ImportExportPreferences", + "compilationUnitId" : "acm020924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019447jsd" ], + "content" : [ "acm020928jsd", "acm020929jsd", "acm020930jsd", "acm020931jsd", "acm020932jsd", "acm020933jsd", "acm020934jsd", "acm020935jsd", "acm020936jsd", "acm020937jsd", "acm020938jsd", "acm020939jsd", "acm020940jsd", "acm020941jsd", "acm020942jsd", "acm020943jsd", "acm020944jsd", "acm020945jsd", "acm020946jsd", "acm020947jsd", "acm020948jsd", "acm020949jsd" ] + }, + "acm020951jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020951jsd", + "name" : "InternalPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm020963jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020952jsd" : { + "type" : "CodePackage", + "id" : "acm020952jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020953jsd" ] + }, + "acm020953jsd" : { + "type" : "CodePackage", + "id" : "acm020953jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020954jsd" ] + }, + "acm020954jsd" : { + "type" : "CodePackage", + "id" : "acm020954jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020951jsd" ] + }, + "acm020955jsd" : { + "type" : "ControlElement", + "id" : "acm020955jsd", + "name" : "InternalPreferences" + }, + "acm020956jsd" : { + "type" : "ControlElement", + "id" : "acm020956jsd", + "name" : "getIgnoredVersion" + }, + "acm020957jsd" : { + "type" : "ControlElement", + "id" : "acm020957jsd", + "name" : "ignoredVersionProperty" + }, + "acm020958jsd" : { + "type" : "ControlElement", + "id" : "acm020958jsd", + "name" : "setIgnoredVersion" + }, + "acm020959jsd" : { + "type" : "ControlElement", + "id" : "acm020959jsd", + "name" : "getLastPreferencesExportPath" + }, + "acm020960jsd" : { + "type" : "ControlElement", + "id" : "acm020960jsd", + "name" : "lastPreferencesExportPathProperty" + }, + "acm020961jsd" : { + "type" : "ControlElement", + "id" : "acm020961jsd", + "name" : "setLastPreferencesExportPath" + }, + "acm020962jsd" : { + "type" : "ControlElement", + "id" : "acm020962jsd", + "name" : "getUser" + }, + "acm020963jsd" : { + "type" : "ClassUnit", + "id" : "acm020963jsd", + "name" : "InternalPreferences", + "compilationUnitId" : "acm020951jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017404jsd" ], + "content" : [ "acm020955jsd", "acm020956jsd", "acm020957jsd", "acm020958jsd", "acm020959jsd", "acm020960jsd", "acm020961jsd", "acm020962jsd" ] + }, + "acm020964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm020964jsd", + "name" : "JabRefPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021095jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm020965jsd" : { + "type" : "CodePackage", + "id" : "acm020965jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm020966jsd" ] + }, + "acm020966jsd" : { + "type" : "CodePackage", + "id" : "acm020966jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm020967jsd" ] + }, + "acm020967jsd" : { + "type" : "CodePackage", + "id" : "acm020967jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm020964jsd" ] + }, + "acm020968jsd" : { + "type" : "ControlElement", + "id" : "acm020968jsd", + "name" : "JabRefPreferences" + }, + "acm020969jsd" : { + "type" : "ControlElement", + "id" : "acm020969jsd", + "name" : "getInstance" + }, + "acm020970jsd" : { + "type" : "ControlElement", + "id" : "acm020970jsd", + "name" : "convertListToString" + }, + "acm020971jsd" : { + "type" : "ControlElement", + "id" : "acm020971jsd", + "name" : "convertStringToList" + }, + "acm020972jsd" : { + "type" : "ControlElement", + "id" : "acm020972jsd", + "name" : "getNextUnit" + }, + "acm020973jsd" : { + "type" : "ControlElement", + "id" : "acm020973jsd", + "name" : "setLanguageDependentDefaultValues" + }, + "acm020974jsd" : { + "type" : "ControlElement", + "id" : "acm020974jsd", + "name" : "hasKey" + }, + "acm020975jsd" : { + "type" : "ControlElement", + "id" : "acm020975jsd", + "name" : "get" + }, + "acm020976jsd" : { + "type" : "ControlElement", + "id" : "acm020976jsd", + "name" : "getAsOptional" + }, + "acm020977jsd" : { + "type" : "ControlElement", + "id" : "acm020977jsd", + "name" : "get" + }, + "acm020978jsd" : { + "type" : "ControlElement", + "id" : "acm020978jsd", + "name" : "getBoolean" + }, + "acm020979jsd" : { + "type" : "ControlElement", + "id" : "acm020979jsd", + "name" : "getBoolean" + }, + "acm020980jsd" : { + "type" : "ControlElement", + "id" : "acm020980jsd", + "name" : "getBooleanDefault" + }, + "acm020981jsd" : { + "type" : "ControlElement", + "id" : "acm020981jsd", + "name" : "getInt" + }, + "acm020982jsd" : { + "type" : "ControlElement", + "id" : "acm020982jsd", + "name" : "getDouble" + }, + "acm020983jsd" : { + "type" : "ControlElement", + "id" : "acm020983jsd", + "name" : "getIntDefault" + }, + "acm020984jsd" : { + "type" : "ControlElement", + "id" : "acm020984jsd", + "name" : "getDoubleDefault" + }, + "acm020985jsd" : { + "type" : "ControlElement", + "id" : "acm020985jsd", + "name" : "put" + }, + "acm020986jsd" : { + "type" : "ControlElement", + "id" : "acm020986jsd", + "name" : "putBoolean" + }, + "acm020987jsd" : { + "type" : "ControlElement", + "id" : "acm020987jsd", + "name" : "putInt" + }, + "acm020988jsd" : { + "type" : "ControlElement", + "id" : "acm020988jsd", + "name" : "putInt" + }, + "acm020989jsd" : { + "type" : "ControlElement", + "id" : "acm020989jsd", + "name" : "putDouble" + }, + "acm020990jsd" : { + "type" : "ControlElement", + "id" : "acm020990jsd", + "name" : "remove" + }, + "acm020991jsd" : { + "type" : "ControlElement", + "id" : "acm020991jsd", + "name" : "putStringList" + }, + "acm020992jsd" : { + "type" : "ControlElement", + "id" : "acm020992jsd", + "name" : "getStringList" + }, + "acm020993jsd" : { + "type" : "ControlElement", + "id" : "acm020993jsd", + "name" : "getPath" + }, + "acm020994jsd" : { + "type" : "ControlElement", + "id" : "acm020994jsd", + "name" : "clear" + }, + "acm020995jsd" : { + "type" : "ControlElement", + "id" : "acm020995jsd", + "name" : "clearTruststoreFromCustomCertificates" + }, + "acm020996jsd" : { + "type" : "ControlElement", + "id" : "acm020996jsd", + "name" : "deleteKey" + }, + "acm020997jsd" : { + "type" : "ControlElement", + "id" : "acm020997jsd", + "name" : "flush" + }, + "acm020998jsd" : { + "type" : "ControlElement", + "id" : "acm020998jsd", + "name" : "getPreferences" + }, + "acm020999jsd" : { + "type" : "ControlElement", + "id" : "acm020999jsd", + "name" : "getDefaults" + }, + "acm021000jsd" : { + "type" : "ControlElement", + "id" : "acm021000jsd", + "name" : "addPrefsRecursively" + }, + "acm021001jsd" : { + "type" : "ControlElement", + "id" : "acm021001jsd", + "name" : "getObject" + }, + "acm021002jsd" : { + "type" : "ControlElement", + "id" : "acm021002jsd", + "name" : "getSeries" + }, + "acm021003jsd" : { + "type" : "ControlElement", + "id" : "acm021003jsd", + "name" : "purgeSeries" + }, + "acm021004jsd" : { + "type" : "ControlElement", + "id" : "acm021004jsd", + "name" : "exportPreferences" + }, + "acm021005jsd" : { + "type" : "ControlElement", + "id" : "acm021005jsd", + "name" : "importPreferences" + }, + "acm021006jsd" : { + "type" : "ControlElement", + "id" : "acm021006jsd", + "name" : "getLayoutFormatterPreferences" + }, + "acm021007jsd" : { + "type" : "ControlElement", + "id" : "acm021007jsd", + "name" : "getJournalAbbreviationPreferences" + }, + "acm021008jsd" : { + "type" : "ControlElement", + "id" : "acm021008jsd", + "name" : "getKeyBindingRepository" + }, + "acm021009jsd" : { + "type" : "ControlElement", + "id" : "acm021009jsd", + "name" : "storeKeyBindingRepository" + }, + "acm021010jsd" : { + "type" : "ControlElement", + "id" : "acm021010jsd", + "name" : "getPreviewStyle" + }, + "acm021011jsd" : { + "type" : "ControlElement", + "id" : "acm021011jsd", + "name" : "setPreviewStyle" + }, + "acm021012jsd" : { + "type" : "ControlElement", + "id" : "acm021012jsd", + "name" : "getCustomEntryTypesRepository" + }, + "acm021013jsd" : { + "type" : "ControlElement", + "id" : "acm021013jsd", + "name" : "getBibEntryTypes" + }, + "acm021014jsd" : { + "type" : "ControlElement", + "id" : "acm021014jsd", + "name" : "clearAllBibEntryTypes" + }, + "acm021015jsd" : { + "type" : "ControlElement", + "id" : "acm021015jsd", + "name" : "clearBibEntryTypes" + }, + "acm021016jsd" : { + "type" : "ControlElement", + "id" : "acm021016jsd", + "name" : "storeCustomEntryTypesRepository" + }, + "acm021017jsd" : { + "type" : "ControlElement", + "id" : "acm021017jsd", + "name" : "storeBibEntryTypes" + }, + "acm021018jsd" : { + "type" : "ControlElement", + "id" : "acm021018jsd", + "name" : "getPrefsNodeForCustomizedEntryTypes" + }, + "acm021019jsd" : { + "type" : "ControlElement", + "id" : "acm021019jsd", + "name" : "getOpenOfficePreferences" + }, + "acm021020jsd" : { + "type" : "ControlElement", + "id" : "acm021020jsd", + "name" : "getGeneralPreferences" + }, + "acm021021jsd" : { + "type" : "ControlElement", + "id" : "acm021021jsd", + "name" : "getLanguage" + }, + "acm021022jsd" : { + "type" : "ControlElement", + "id" : "acm021022jsd", + "name" : "getTelemetryPreferences" + }, + "acm021023jsd" : { + "type" : "ControlElement", + "id" : "acm021023jsd", + "name" : "getTelemetryUserId" + }, + "acm021024jsd" : { + "type" : "ControlElement", + "id" : "acm021024jsd", + "name" : "getDOIPreferences" + }, + "acm021025jsd" : { + "type" : "ControlElement", + "id" : "acm021025jsd", + "name" : "getOwnerPreferences" + }, + "acm021026jsd" : { + "type" : "ControlElement", + "id" : "acm021026jsd", + "name" : "getTimestampPreferences" + }, + "acm021027jsd" : { + "type" : "ControlElement", + "id" : "acm021027jsd", + "name" : "getGroupsPreferences" + }, + "acm021028jsd" : { + "type" : "ControlElement", + "id" : "acm021028jsd", + "name" : "getEntryEditorTabList" + }, + "acm021029jsd" : { + "type" : "ControlElement", + "id" : "acm021029jsd", + "name" : "updateEntryEditorTabList" + }, + "acm021030jsd" : { + "type" : "ControlElement", + "id" : "acm021030jsd", + "name" : "storeEntryEditorTabList" + }, + "acm021031jsd" : { + "type" : "ControlElement", + "id" : "acm021031jsd", + "name" : "getDefaultTabNamesAndFields" + }, + "acm021032jsd" : { + "type" : "ControlElement", + "id" : "acm021032jsd", + "name" : "getAllDefaultTabFieldNames" + }, + "acm021033jsd" : { + "type" : "ControlElement", + "id" : "acm021033jsd", + "name" : "getEntryEditorPreferences" + }, + "acm021034jsd" : { + "type" : "ControlElement", + "id" : "acm021034jsd", + "name" : "getRemotePreferences" + }, + "acm021035jsd" : { + "type" : "ControlElement", + "id" : "acm021035jsd", + "name" : "getProxyPreferences" + }, + "acm021036jsd" : { + "type" : "ControlElement", + "id" : "acm021036jsd", + "name" : "getSSLPreferences" + }, + "acm021037jsd" : { + "type" : "ControlElement", + "id" : "acm021037jsd", + "name" : "getGlobalCitationKeyPattern" + }, + "acm021038jsd" : { + "type" : "ControlElement", + "id" : "acm021038jsd", + "name" : "storeGlobalCitationKeyPattern" + }, + "acm021039jsd" : { + "type" : "ControlElement", + "id" : "acm021039jsd", + "name" : "clearCitationKeyPatterns" + }, + "acm021040jsd" : { + "type" : "ControlElement", + "id" : "acm021040jsd", + "name" : "getCitationKeyPatternPreferences" + }, + "acm021041jsd" : { + "type" : "ControlElement", + "id" : "acm021041jsd", + "name" : "getPushToApplicationPreferences" + }, + "acm021042jsd" : { + "type" : "ControlElement", + "id" : "acm021042jsd", + "name" : "getExternalApplicationsPreferences" + }, + "acm021043jsd" : { + "type" : "ControlElement", + "id" : "acm021043jsd", + "name" : "getMainTablePreferences" + }, + "acm021044jsd" : { + "type" : "ControlElement", + "id" : "acm021044jsd", + "name" : "getMainTableColumnPreferences" + }, + "acm021045jsd" : { + "type" : "ControlElement", + "id" : "acm021045jsd", + "name" : "getSearchDialogColumnPreferences" + }, + "acm021046jsd" : { + "type" : "ControlElement", + "id" : "acm021046jsd", + "name" : "getColumns" + }, + "acm021047jsd" : { + "type" : "ControlElement", + "id" : "acm021047jsd", + "name" : "getColumnSortOrder" + }, + "acm021048jsd" : { + "type" : "ControlElement", + "id" : "acm021048jsd", + "name" : "getColumnNamesAsStringList" + }, + "acm021049jsd" : { + "type" : "ControlElement", + "id" : "acm021049jsd", + "name" : "getColumnWidthsAsStringList" + }, + "acm021050jsd" : { + "type" : "ControlElement", + "id" : "acm021050jsd", + "name" : "getColumnSortTypesAsStringList" + }, + "acm021051jsd" : { + "type" : "ControlElement", + "id" : "acm021051jsd", + "name" : "getColumnSortOrderAsStringList" + }, + "acm021052jsd" : { + "type" : "ControlElement", + "id" : "acm021052jsd", + "name" : "getNameDisplayPreferences" + }, + "acm021053jsd" : { + "type" : "ControlElement", + "id" : "acm021053jsd", + "name" : "getBibEntryPreferences" + }, + "acm021054jsd" : { + "type" : "ControlElement", + "id" : "acm021054jsd", + "name" : "getInternalPreferences" + }, + "acm021055jsd" : { + "type" : "ControlElement", + "id" : "acm021055jsd", + "name" : "getUser" + }, + "acm021056jsd" : { + "type" : "ControlElement", + "id" : "acm021056jsd", + "name" : "getAppearancePreferences" + }, + "acm021057jsd" : { + "type" : "ControlElement", + "id" : "acm021057jsd", + "name" : "getImportFormatPreferences" + }, + "acm021058jsd" : { + "type" : "ControlElement", + "id" : "acm021058jsd", + "name" : "getFieldPreferences" + }, + "acm021059jsd" : { + "type" : "ControlElement", + "id" : "acm021059jsd", + "name" : "getFilePreferences" + }, + "acm021060jsd" : { + "type" : "ControlElement", + "id" : "acm021060jsd", + "name" : "getAutoLinkPreferences" + }, + "acm021061jsd" : { + "type" : "ControlElement", + "id" : "acm021061jsd", + "name" : "getImportExportPreferences" + }, + "acm021062jsd" : { + "type" : "ControlElement", + "id" : "acm021062jsd", + "name" : "getExportSaveOrder" + }, + "acm021063jsd" : { + "type" : "ControlElement", + "id" : "acm021063jsd", + "name" : "storeExportSaveOrder" + }, + "acm021064jsd" : { + "type" : "ControlElement", + "id" : "acm021064jsd", + "name" : "loadTableSaveOrder" + }, + "acm021065jsd" : { + "type" : "ControlElement", + "id" : "acm021065jsd", + "name" : "getExportConfiguration" + }, + "acm021066jsd" : { + "type" : "ControlElement", + "id" : "acm021066jsd", + "name" : "getCustomExportFormats" + }, + "acm021067jsd" : { + "type" : "ControlElement", + "id" : "acm021067jsd", + "name" : "storeCustomExportFormats" + }, + "acm021068jsd" : { + "type" : "ControlElement", + "id" : "acm021068jsd", + "name" : "getPreviewPreferences" + }, + "acm021069jsd" : { + "type" : "ControlElement", + "id" : "acm021069jsd", + "name" : "getPreviewLayouts" + }, + "acm021070jsd" : { + "type" : "ControlElement", + "id" : "acm021070jsd", + "name" : "getPreviewCyclePosition" + }, + "acm021071jsd" : { + "type" : "ControlElement", + "id" : "acm021071jsd", + "name" : "getSidePanePreferences" + }, + "acm021072jsd" : { + "type" : "ControlElement", + "id" : "acm021072jsd", + "name" : "getVisibleSidePanes" + }, + "acm021073jsd" : { + "type" : "ControlElement", + "id" : "acm021073jsd", + "name" : "storeVisibleSidePanes" + }, + "acm021074jsd" : { + "type" : "ControlElement", + "id" : "acm021074jsd", + "name" : "getSidePanePreferredPositions" + }, + "acm021075jsd" : { + "type" : "ControlElement", + "id" : "acm021075jsd", + "name" : "storeSidePanePreferredPositions" + }, + "acm021076jsd" : { + "type" : "ControlElement", + "id" : "acm021076jsd", + "name" : "getCleanupPreferences" + }, + "acm021077jsd" : { + "type" : "ControlElement", + "id" : "acm021077jsd", + "name" : "getDefaultCleanupPreset" + }, + "acm021078jsd" : { + "type" : "ControlElement", + "id" : "acm021078jsd", + "name" : "getDefaultCleanupJobs" + }, + "acm021079jsd" : { + "type" : "ControlElement", + "id" : "acm021079jsd", + "name" : "getGuiPreferences" + }, + "acm021080jsd" : { + "type" : "ControlElement", + "id" : "acm021080jsd", + "name" : "getFileHistory" + }, + "acm021081jsd" : { + "type" : "ControlElement", + "id" : "acm021081jsd", + "name" : "storeFileHistory" + }, + "acm021082jsd" : { + "type" : "ControlElement", + "id" : "acm021082jsd", + "name" : "getSearchPreferences" + }, + "acm021083jsd" : { + "type" : "ControlElement", + "id" : "acm021083jsd", + "name" : "getXmpPreferences" + }, + "acm021084jsd" : { + "type" : "ControlElement", + "id" : "acm021084jsd", + "name" : "getNameFormatterPreferences" + }, + "acm021085jsd" : { + "type" : "ControlElement", + "id" : "acm021085jsd", + "name" : "getAutoCompletePreferences" + }, + "acm021086jsd" : { + "type" : "ControlElement", + "id" : "acm021086jsd", + "name" : "getSpecialFieldsPreferences" + }, + "acm021087jsd" : { + "type" : "ControlElement", + "id" : "acm021087jsd", + "name" : "getMrDlibPreferences" + }, + "acm021088jsd" : { + "type" : "ControlElement", + "id" : "acm021088jsd", + "name" : "getProtectedTermsPreferences" + }, + "acm021089jsd" : { + "type" : "ControlElement", + "id" : "acm021089jsd", + "name" : "getImporterPreferences" + }, + "acm021090jsd" : { + "type" : "ControlElement", + "id" : "acm021090jsd", + "name" : "getCustomImportFormats" + }, + "acm021091jsd" : { + "type" : "ControlElement", + "id" : "acm021091jsd", + "name" : "storeCustomImportFormats" + }, + "acm021092jsd" : { + "type" : "ControlElement", + "id" : "acm021092jsd", + "name" : "getFetcherKeys" + }, + "acm021093jsd" : { + "type" : "ControlElement", + "id" : "acm021093jsd", + "name" : "storeFetcherKeys" + }, + "acm021094jsd" : { + "type" : "ControlElement", + "id" : "acm021094jsd", + "name" : "getGrobidPreferences" + }, + "acm021095jsd" : { + "type" : "ClassUnit", + "id" : "acm021095jsd", + "name" : "JabRefPreferences", + "compilationUnitId" : "acm020964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm021206jsd" ], + "datatypeReferencesIds" : [ "acm001403jsd", "acm001424jsd", "acm002193jsd", "acm002194jsd", "acm003647jsd", "acm004328jsd", "acm005211jsd", "acm005802jsd", "acm006175jsd", "acm006250jsd", "acm006317jsd", "acm006330jsd", "acm006331jsd", "acm006332jsd", "acm008779jsd", "acm008988jsd", "acm009182jsd", "acm009325jsd", "acm010366jsd", "acm010497jsd", "acm010993jsd", "acm010994jsd", "acm011011jsd", "acm011188jsd", "acm011645jsd", "acm011680jsd", "acm012467jsd", "acm013062jsd", "acm013876jsd", "acm014911jsd", "acm015033jsd", "acm015079jsd", "acm015522jsd", "acm015885jsd", "acm015953jsd", "acm015972jsd", "acm016014jsd", "acm016594jsd", "acm016608jsd", "acm016624jsd", "acm016641jsd", "acm016651jsd", "acm016716jsd", "acm016748jsd", "acm017193jsd", "acm017440jsd", "acm017441jsd", "acm017507jsd", "acm017745jsd", "acm018032jsd", "acm018289jsd", "acm018333jsd", "acm018673jsd", "acm019005jsd", "acm019447jsd", "acm019454jsd", "acm019458jsd", "acm020473jsd", "acm020765jsd", "acm020774jsd", "acm020791jsd", "acm020792jsd", "acm020819jsd", "acm020848jsd", "acm020875jsd", "acm020923jsd", "acm020950jsd", "acm020963jsd", "acm021095jsd", "acm021113jsd", "acm021224jsd", "acm021241jsd", "acm021267jsd", "acm021279jsd", "acm021292jsd" ], + "content" : [ "acm020968jsd", "acm020969jsd", "acm020970jsd", "acm020971jsd", "acm020972jsd", "acm020973jsd", "acm020974jsd", "acm020975jsd", "acm020976jsd", "acm020977jsd", "acm020978jsd", "acm020979jsd", "acm020980jsd", "acm020981jsd", "acm020982jsd", "acm020983jsd", "acm020984jsd", "acm020985jsd", "acm020986jsd", "acm020987jsd", "acm020988jsd", "acm020989jsd", "acm020990jsd", "acm020991jsd", "acm020992jsd", "acm020993jsd", "acm020994jsd", "acm020995jsd", "acm020996jsd", "acm020997jsd", "acm020998jsd", "acm020999jsd", "acm021000jsd", "acm021001jsd", "acm021002jsd", "acm021003jsd", "acm021004jsd", "acm021005jsd", "acm021006jsd", "acm021007jsd", "acm021008jsd", "acm021009jsd", "acm021010jsd", "acm021011jsd", "acm021012jsd", "acm021013jsd", "acm021014jsd", "acm021015jsd", "acm021016jsd", "acm021017jsd", "acm021018jsd", "acm021019jsd", "acm021020jsd", "acm021021jsd", "acm021022jsd", "acm021023jsd", "acm021024jsd", "acm021025jsd", "acm021026jsd", "acm021027jsd", "acm021028jsd", "acm021029jsd", "acm021030jsd", "acm021031jsd", "acm021032jsd", "acm021033jsd", "acm021034jsd", "acm021035jsd", "acm021036jsd", "acm021037jsd", "acm021038jsd", "acm021039jsd", "acm021040jsd", "acm021041jsd", "acm021042jsd", "acm021043jsd", "acm021044jsd", "acm021045jsd", "acm021046jsd", "acm021047jsd", "acm021048jsd", "acm021049jsd", "acm021050jsd", "acm021051jsd", "acm021052jsd", "acm021053jsd", "acm021054jsd", "acm021055jsd", "acm021056jsd", "acm021057jsd", "acm021058jsd", "acm021059jsd", "acm021060jsd", "acm021061jsd", "acm021062jsd", "acm021063jsd", "acm021064jsd", "acm021065jsd", "acm021066jsd", "acm021067jsd", "acm021068jsd", "acm021069jsd", "acm021070jsd", "acm021071jsd", "acm021072jsd", "acm021073jsd", "acm021074jsd", "acm021075jsd", "acm021076jsd", "acm021077jsd", "acm021078jsd", "acm021079jsd", "acm021080jsd", "acm021081jsd", "acm021082jsd", "acm021083jsd", "acm021084jsd", "acm021085jsd", "acm021086jsd", "acm021087jsd", "acm021088jsd", "acm021089jsd", "acm021090jsd", "acm021091jsd", "acm021092jsd", "acm021093jsd", "acm021094jsd" ] + }, + "acm021096jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021096jsd", + "name" : "MrDlibPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021113jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021097jsd" : { + "type" : "CodePackage", + "id" : "acm021097jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021098jsd" ] + }, + "acm021098jsd" : { + "type" : "CodePackage", + "id" : "acm021098jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021099jsd" ] + }, + "acm021099jsd" : { + "type" : "CodePackage", + "id" : "acm021099jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021096jsd" ] + }, + "acm021100jsd" : { + "type" : "ControlElement", + "id" : "acm021100jsd", + "name" : "MrDlibPreferences" + }, + "acm021101jsd" : { + "type" : "ControlElement", + "id" : "acm021101jsd", + "name" : "shouldAcceptRecommendations" + }, + "acm021102jsd" : { + "type" : "ControlElement", + "id" : "acm021102jsd", + "name" : "acceptRecommendationsProperty" + }, + "acm021103jsd" : { + "type" : "ControlElement", + "id" : "acm021103jsd", + "name" : "setAcceptRecommendations" + }, + "acm021104jsd" : { + "type" : "ControlElement", + "id" : "acm021104jsd", + "name" : "shouldSendLanguage" + }, + "acm021105jsd" : { + "type" : "ControlElement", + "id" : "acm021105jsd", + "name" : "sendLanguageProperty" + }, + "acm021106jsd" : { + "type" : "ControlElement", + "id" : "acm021106jsd", + "name" : "setSendLanguage" + }, + "acm021107jsd" : { + "type" : "ControlElement", + "id" : "acm021107jsd", + "name" : "shouldSendOs" + }, + "acm021108jsd" : { + "type" : "ControlElement", + "id" : "acm021108jsd", + "name" : "sendOsProperty" + }, + "acm021109jsd" : { + "type" : "ControlElement", + "id" : "acm021109jsd", + "name" : "setSendOs" + }, + "acm021110jsd" : { + "type" : "ControlElement", + "id" : "acm021110jsd", + "name" : "shouldSendTimezone" + }, + "acm021111jsd" : { + "type" : "ControlElement", + "id" : "acm021111jsd", + "name" : "sendTimezoneProperty" + }, + "acm021112jsd" : { + "type" : "ControlElement", + "id" : "acm021112jsd", + "name" : "setSendTimezone" + }, + "acm021113jsd" : { + "type" : "ClassUnit", + "id" : "acm021113jsd", + "name" : "MrDlibPreferences", + "compilationUnitId" : "acm021096jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021100jsd", "acm021101jsd", "acm021102jsd", "acm021103jsd", "acm021104jsd", "acm021105jsd", "acm021106jsd", "acm021107jsd", "acm021108jsd", "acm021109jsd", "acm021110jsd", "acm021111jsd", "acm021112jsd" ] + }, + "acm021114jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021114jsd", + "name" : "PreferencesFilter", + "parentId" : "acm020753jsd", + "content" : [ "acm021131jsd", "acm021142jsd", "acm021143jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021115jsd" : { + "type" : "CodePackage", + "id" : "acm021115jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021116jsd" ] + }, + "acm021116jsd" : { + "type" : "CodePackage", + "id" : "acm021116jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021117jsd" ] + }, + "acm021117jsd" : { + "type" : "CodePackage", + "id" : "acm021117jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021114jsd" ] + }, + "acm021118jsd" : { + "type" : "ControlElement", + "id" : "acm021118jsd", + "name" : "PreferencesFilter" + }, + "acm021119jsd" : { + "type" : "ControlElement", + "id" : "acm021119jsd", + "name" : "getPreferenceOptions" + }, + "acm021120jsd" : { + "type" : "ControlElement", + "id" : "acm021120jsd", + "name" : "getDeviatingPreferences" + }, + "acm021121jsd" : { + "type" : "ControlElement", + "id" : "acm021121jsd", + "name" : "PreferenceOption" + }, + "acm021122jsd" : { + "type" : "ControlElement", + "id" : "acm021122jsd", + "name" : "getType" + }, + "acm021123jsd" : { + "type" : "ControlElement", + "id" : "acm021123jsd", + "name" : "isUnchanged" + }, + "acm021124jsd" : { + "type" : "ControlElement", + "id" : "acm021124jsd", + "name" : "isChanged" + }, + "acm021125jsd" : { + "type" : "ControlElement", + "id" : "acm021125jsd", + "name" : "toString" + }, + "acm021126jsd" : { + "type" : "ControlElement", + "id" : "acm021126jsd", + "name" : "getKey" + }, + "acm021127jsd" : { + "type" : "ControlElement", + "id" : "acm021127jsd", + "name" : "getValue" + }, + "acm021128jsd" : { + "type" : "ControlElement", + "id" : "acm021128jsd", + "name" : "getDefaultValue" + }, + "acm021129jsd" : { + "type" : "ControlElement", + "id" : "acm021129jsd", + "name" : "getType" + }, + "acm021130jsd" : { + "type" : "ControlElement", + "id" : "acm021130jsd", + "name" : "compareTo" + }, + "acm021131jsd" : { + "type" : "ClassUnit", + "id" : "acm021131jsd", + "name" : "PreferencesFilter", + "compilationUnitId" : "acm021114jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm021142jsd", "acm021143jsd", "acm021206jsd" ], + "content" : [ "acm021118jsd", "acm021119jsd", "acm021120jsd", "acm021121jsd", "acm021122jsd", "acm021123jsd", "acm021124jsd", "acm021125jsd", "acm021126jsd", "acm021127jsd", "acm021128jsd", "acm021129jsd", "acm021130jsd" ] + }, + "acm021132jsd" : { + "type" : "ControlElement", + "id" : "acm021132jsd", + "name" : "PreferenceOption" + }, + "acm021133jsd" : { + "type" : "ControlElement", + "id" : "acm021133jsd", + "name" : "getType" + }, + "acm021134jsd" : { + "type" : "ControlElement", + "id" : "acm021134jsd", + "name" : "isUnchanged" + }, + "acm021135jsd" : { + "type" : "ControlElement", + "id" : "acm021135jsd", + "name" : "isChanged" + }, + "acm021136jsd" : { + "type" : "ControlElement", + "id" : "acm021136jsd", + "name" : "toString" + }, + "acm021137jsd" : { + "type" : "ControlElement", + "id" : "acm021137jsd", + "name" : "getKey" + }, + "acm021138jsd" : { + "type" : "ControlElement", + "id" : "acm021138jsd", + "name" : "getValue" + }, + "acm021139jsd" : { + "type" : "ControlElement", + "id" : "acm021139jsd", + "name" : "getDefaultValue" + }, + "acm021140jsd" : { + "type" : "ControlElement", + "id" : "acm021140jsd", + "name" : "getType" + }, + "acm021141jsd" : { + "type" : "ControlElement", + "id" : "acm021141jsd", + "name" : "compareTo" + }, + "acm021142jsd" : { + "type" : "ClassUnit", + "id" : "acm021142jsd", + "name" : "PreferenceOption", + "compilationUnitId" : "acm021114jsd", + "parentDatatypeId" : "acm021131jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm021142jsd", "acm021143jsd" ], + "content" : [ "acm021132jsd", "acm021133jsd", "acm021134jsd", "acm021135jsd", "acm021136jsd", "acm021137jsd", "acm021138jsd", "acm021139jsd", "acm021140jsd", "acm021141jsd" ] + }, + "acm021143jsd" : { + "type" : "ClassUnit", + "id" : "acm021143jsd", + "name" : "PreferenceType", + "compilationUnitId" : "acm021114jsd", + "parentDatatypeId" : "acm021131jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm021144jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021144jsd", + "name" : "PreferencesService", + "parentId" : "acm020753jsd", + "content" : [ "acm021206jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021145jsd" : { + "type" : "CodePackage", + "id" : "acm021145jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021146jsd" ] + }, + "acm021146jsd" : { + "type" : "CodePackage", + "id" : "acm021146jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021147jsd" ] + }, + "acm021147jsd" : { + "type" : "CodePackage", + "id" : "acm021147jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021144jsd" ] + }, + "acm021148jsd" : { + "type" : "ControlElement", + "id" : "acm021148jsd", + "name" : "getInternalPreferences" + }, + "acm021149jsd" : { + "type" : "ControlElement", + "id" : "acm021149jsd", + "name" : "getBibEntryPreferences" + }, + "acm021150jsd" : { + "type" : "ControlElement", + "id" : "acm021150jsd", + "name" : "getJournalAbbreviationPreferences" + }, + "acm021151jsd" : { + "type" : "ControlElement", + "id" : "acm021151jsd", + "name" : "storeKeyBindingRepository" + }, + "acm021152jsd" : { + "type" : "ControlElement", + "id" : "acm021152jsd", + "name" : "getKeyBindingRepository" + }, + "acm021153jsd" : { + "type" : "ControlElement", + "id" : "acm021153jsd", + "name" : "getFilePreferences" + }, + "acm021154jsd" : { + "type" : "ControlElement", + "id" : "acm021154jsd", + "name" : "getFieldPreferences" + }, + "acm021155jsd" : { + "type" : "ControlElement", + "id" : "acm021155jsd", + "name" : "getOpenOfficePreferences" + }, + "acm021156jsd" : { + "type" : "ControlElement", + "id" : "acm021156jsd", + "name" : "getPreferences" + }, + "acm021157jsd" : { + "type" : "ControlElement", + "id" : "acm021157jsd", + "name" : "getDefaults" + }, + "acm021158jsd" : { + "type" : "ControlElement", + "id" : "acm021158jsd", + "name" : "exportPreferences" + }, + "acm021159jsd" : { + "type" : "ControlElement", + "id" : "acm021159jsd", + "name" : "importPreferences" + }, + "acm021160jsd" : { + "type" : "ControlElement", + "id" : "acm021160jsd", + "name" : "getLayoutFormatterPreferences" + }, + "acm021161jsd" : { + "type" : "ControlElement", + "id" : "acm021161jsd", + "name" : "getImportFormatPreferences" + }, + "acm021162jsd" : { + "type" : "ControlElement", + "id" : "acm021162jsd", + "name" : "getExportConfiguration" + }, + "acm021163jsd" : { + "type" : "ControlElement", + "id" : "acm021163jsd", + "name" : "clear" + }, + "acm021164jsd" : { + "type" : "ControlElement", + "id" : "acm021164jsd", + "name" : "deleteKey" + }, + "acm021165jsd" : { + "type" : "ControlElement", + "id" : "acm021165jsd", + "name" : "flush" + }, + "acm021166jsd" : { + "type" : "ControlElement", + "id" : "acm021166jsd", + "name" : "getCustomEntryTypesRepository" + }, + "acm021167jsd" : { + "type" : "ControlElement", + "id" : "acm021167jsd", + "name" : "storeCustomEntryTypesRepository" + }, + "acm021168jsd" : { + "type" : "ControlElement", + "id" : "acm021168jsd", + "name" : "getCleanupPreferences" + }, + "acm021169jsd" : { + "type" : "ControlElement", + "id" : "acm021169jsd", + "name" : "getDefaultCleanupPreset" + }, + "acm021170jsd" : { + "type" : "ControlElement", + "id" : "acm021170jsd", + "name" : "getGeneralPreferences" + }, + "acm021171jsd" : { + "type" : "ControlElement", + "id" : "acm021171jsd", + "name" : "getTelemetryPreferences" + }, + "acm021172jsd" : { + "type" : "ControlElement", + "id" : "acm021172jsd", + "name" : "getDOIPreferences" + }, + "acm021173jsd" : { + "type" : "ControlElement", + "id" : "acm021173jsd", + "name" : "getOwnerPreferences" + }, + "acm021174jsd" : { + "type" : "ControlElement", + "id" : "acm021174jsd", + "name" : "getTimestampPreferences" + }, + "acm021175jsd" : { + "type" : "ControlElement", + "id" : "acm021175jsd", + "name" : "getGroupsPreferences" + }, + "acm021176jsd" : { + "type" : "ControlElement", + "id" : "acm021176jsd", + "name" : "getDefaultTabNamesAndFields" + }, + "acm021177jsd" : { + "type" : "ControlElement", + "id" : "acm021177jsd", + "name" : "getAllDefaultTabFieldNames" + }, + "acm021178jsd" : { + "type" : "ControlElement", + "id" : "acm021178jsd", + "name" : "getEntryEditorPreferences" + }, + "acm021179jsd" : { + "type" : "ControlElement", + "id" : "acm021179jsd", + "name" : "getRemotePreferences" + }, + "acm021180jsd" : { + "type" : "ControlElement", + "id" : "acm021180jsd", + "name" : "getProxyPreferences" + }, + "acm021181jsd" : { + "type" : "ControlElement", + "id" : "acm021181jsd", + "name" : "getSSLPreferences" + }, + "acm021182jsd" : { + "type" : "ControlElement", + "id" : "acm021182jsd", + "name" : "getCitationKeyPatternPreferences" + }, + "acm021183jsd" : { + "type" : "ControlElement", + "id" : "acm021183jsd", + "name" : "getPushToApplicationPreferences" + }, + "acm021184jsd" : { + "type" : "ControlElement", + "id" : "acm021184jsd", + "name" : "getExternalApplicationsPreferences" + }, + "acm021185jsd" : { + "type" : "ControlElement", + "id" : "acm021185jsd", + "name" : "getMainTableColumnPreferences" + }, + "acm021186jsd" : { + "type" : "ControlElement", + "id" : "acm021186jsd", + "name" : "getMainTablePreferences" + }, + "acm021187jsd" : { + "type" : "ControlElement", + "id" : "acm021187jsd", + "name" : "getNameDisplayPreferences" + }, + "acm021188jsd" : { + "type" : "ControlElement", + "id" : "acm021188jsd", + "name" : "getSearchDialogColumnPreferences" + }, + "acm021189jsd" : { + "type" : "ControlElement", + "id" : "acm021189jsd", + "name" : "getAppearancePreferences" + }, + "acm021190jsd" : { + "type" : "ControlElement", + "id" : "acm021190jsd", + "name" : "getAutoLinkPreferences" + }, + "acm021191jsd" : { + "type" : "ControlElement", + "id" : "acm021191jsd", + "name" : "getImportExportPreferences" + }, + "acm021192jsd" : { + "type" : "ControlElement", + "id" : "acm021192jsd", + "name" : "getCustomExportFormats" + }, + "acm021193jsd" : { + "type" : "ControlElement", + "id" : "acm021193jsd", + "name" : "storeCustomExportFormats" + }, + "acm021194jsd" : { + "type" : "ControlElement", + "id" : "acm021194jsd", + "name" : "getImporterPreferences" + }, + "acm021195jsd" : { + "type" : "ControlElement", + "id" : "acm021195jsd", + "name" : "getGrobidPreferences" + }, + "acm021196jsd" : { + "type" : "ControlElement", + "id" : "acm021196jsd", + "name" : "getPreviewPreferences" + }, + "acm021197jsd" : { + "type" : "ControlElement", + "id" : "acm021197jsd", + "name" : "getSidePanePreferences" + }, + "acm021198jsd" : { + "type" : "ControlElement", + "id" : "acm021198jsd", + "name" : "getGuiPreferences" + }, + "acm021199jsd" : { + "type" : "ControlElement", + "id" : "acm021199jsd", + "name" : "getXmpPreferences" + }, + "acm021200jsd" : { + "type" : "ControlElement", + "id" : "acm021200jsd", + "name" : "getNameFormatterPreferences" + }, + "acm021201jsd" : { + "type" : "ControlElement", + "id" : "acm021201jsd", + "name" : "getAutoCompletePreferences" + }, + "acm021202jsd" : { + "type" : "ControlElement", + "id" : "acm021202jsd", + "name" : "getSpecialFieldsPreferences" + }, + "acm021203jsd" : { + "type" : "ControlElement", + "id" : "acm021203jsd", + "name" : "getSearchPreferences" + }, + "acm021204jsd" : { + "type" : "ControlElement", + "id" : "acm021204jsd", + "name" : "getMrDlibPreferences" + }, + "acm021205jsd" : { + "type" : "ControlElement", + "id" : "acm021205jsd", + "name" : "getProtectedTermsPreferences" + }, + "acm021206jsd" : { + "type" : "InterfaceUnit", + "id" : "acm021206jsd", + "name" : "PreferencesService", + "compilationUnitId" : "acm021144jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001403jsd", "acm001424jsd", "acm002193jsd", "acm003647jsd", "acm005211jsd", "acm005802jsd", "acm006175jsd", "acm006317jsd", "acm006330jsd", "acm009182jsd", "acm010366jsd", "acm010497jsd", "acm010993jsd", "acm011645jsd", "acm011680jsd", "acm012467jsd", "acm013062jsd", "acm015033jsd", "acm015522jsd", "acm015885jsd", "acm015953jsd", "acm016014jsd", "acm016594jsd", "acm016624jsd", "acm016641jsd", "acm016716jsd", "acm016748jsd", "acm017440jsd", "acm017745jsd", "acm018333jsd", "acm018673jsd", "acm020765jsd", "acm020774jsd", "acm020791jsd", "acm020819jsd", "acm020848jsd", "acm020875jsd", "acm020923jsd", "acm020950jsd", "acm020963jsd", "acm021113jsd", "acm021224jsd", "acm021241jsd", "acm021267jsd", "acm021279jsd", "acm021292jsd" ], + "content" : [ "acm021148jsd", "acm021149jsd", "acm021150jsd", "acm021151jsd", "acm021152jsd", "acm021153jsd", "acm021154jsd", "acm021155jsd", "acm021156jsd", "acm021157jsd", "acm021158jsd", "acm021159jsd", "acm021160jsd", "acm021161jsd", "acm021162jsd", "acm021163jsd", "acm021164jsd", "acm021165jsd", "acm021166jsd", "acm021167jsd", "acm021168jsd", "acm021169jsd", "acm021170jsd", "acm021171jsd", "acm021172jsd", "acm021173jsd", "acm021174jsd", "acm021175jsd", "acm021176jsd", "acm021177jsd", "acm021178jsd", "acm021179jsd", "acm021180jsd", "acm021181jsd", "acm021182jsd", "acm021183jsd", "acm021184jsd", "acm021185jsd", "acm021186jsd", "acm021187jsd", "acm021188jsd", "acm021189jsd", "acm021190jsd", "acm021191jsd", "acm021192jsd", "acm021193jsd", "acm021194jsd", "acm021195jsd", "acm021196jsd", "acm021197jsd", "acm021198jsd", "acm021199jsd", "acm021200jsd", "acm021201jsd", "acm021202jsd", "acm021203jsd", "acm021204jsd", "acm021205jsd" ] + }, + "acm021207jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021207jsd", + "name" : "PreviewPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021224jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021208jsd" : { + "type" : "CodePackage", + "id" : "acm021208jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021209jsd" ] + }, + "acm021209jsd" : { + "type" : "CodePackage", + "id" : "acm021209jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021210jsd" ] + }, + "acm021210jsd" : { + "type" : "CodePackage", + "id" : "acm021210jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021207jsd" ] + }, + "acm021211jsd" : { + "type" : "ControlElement", + "id" : "acm021211jsd", + "name" : "PreviewPreferences" + }, + "acm021212jsd" : { + "type" : "ControlElement", + "id" : "acm021212jsd", + "name" : "getLayoutCycle" + }, + "acm021213jsd" : { + "type" : "ControlElement", + "id" : "acm021213jsd", + "name" : "getLayoutCyclePosition" + }, + "acm021214jsd" : { + "type" : "ControlElement", + "id" : "acm021214jsd", + "name" : "layoutCyclePositionProperty" + }, + "acm021215jsd" : { + "type" : "ControlElement", + "id" : "acm021215jsd", + "name" : "setLayoutCyclePosition" + }, + "acm021216jsd" : { + "type" : "ControlElement", + "id" : "acm021216jsd", + "name" : "getSelectedPreviewLayout" + }, + "acm021217jsd" : { + "type" : "ControlElement", + "id" : "acm021217jsd", + "name" : "getCustomPreviewLayout" + }, + "acm021218jsd" : { + "type" : "ControlElement", + "id" : "acm021218jsd", + "name" : "customPreviewLayoutProperty" + }, + "acm021219jsd" : { + "type" : "ControlElement", + "id" : "acm021219jsd", + "name" : "setCustomPreviewLayout" + }, + "acm021220jsd" : { + "type" : "ControlElement", + "id" : "acm021220jsd", + "name" : "getDefaultCustomPreviewLayout" + }, + "acm021221jsd" : { + "type" : "ControlElement", + "id" : "acm021221jsd", + "name" : "shouldShowPreviewAsExtraTab" + }, + "acm021222jsd" : { + "type" : "ControlElement", + "id" : "acm021222jsd", + "name" : "showPreviewAsExtraTabProperty" + }, + "acm021223jsd" : { + "type" : "ControlElement", + "id" : "acm021223jsd", + "name" : "setShowPreviewAsExtraTab" + }, + "acm021224jsd" : { + "type" : "ClassUnit", + "id" : "acm021224jsd", + "name" : "PreviewPreferences", + "compilationUnitId" : "acm021207jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015079jsd", "acm016651jsd" ], + "content" : [ "acm021211jsd", "acm021212jsd", "acm021213jsd", "acm021214jsd", "acm021215jsd", "acm021216jsd", "acm021217jsd", "acm021218jsd", "acm021219jsd", "acm021220jsd", "acm021221jsd", "acm021222jsd", "acm021223jsd" ] + }, + "acm021225jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021225jsd", + "name" : "PushToApplicationPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021241jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021226jsd" : { + "type" : "CodePackage", + "id" : "acm021226jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021227jsd" ] + }, + "acm021227jsd" : { + "type" : "CodePackage", + "id" : "acm021227jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021228jsd" ] + }, + "acm021228jsd" : { + "type" : "CodePackage", + "id" : "acm021228jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021225jsd" ] + }, + "acm021229jsd" : { + "type" : "ControlElement", + "id" : "acm021229jsd", + "name" : "PushToApplicationPreferences" + }, + "acm021230jsd" : { + "type" : "ControlElement", + "id" : "acm021230jsd", + "name" : "getActiveApplicationName" + }, + "acm021231jsd" : { + "type" : "ControlElement", + "id" : "acm021231jsd", + "name" : "activeApplicationNameProperty" + }, + "acm021232jsd" : { + "type" : "ControlElement", + "id" : "acm021232jsd", + "name" : "setActiveApplicationName" + }, + "acm021233jsd" : { + "type" : "ControlElement", + "id" : "acm021233jsd", + "name" : "getCommandPaths" + }, + "acm021234jsd" : { + "type" : "ControlElement", + "id" : "acm021234jsd", + "name" : "setCommandPaths" + }, + "acm021235jsd" : { + "type" : "ControlElement", + "id" : "acm021235jsd", + "name" : "getEmacsArguments" + }, + "acm021236jsd" : { + "type" : "ControlElement", + "id" : "acm021236jsd", + "name" : "emacsArgumentsProperty" + }, + "acm021237jsd" : { + "type" : "ControlElement", + "id" : "acm021237jsd", + "name" : "setEmacsArguments" + }, + "acm021238jsd" : { + "type" : "ControlElement", + "id" : "acm021238jsd", + "name" : "getVimServer" + }, + "acm021239jsd" : { + "type" : "ControlElement", + "id" : "acm021239jsd", + "name" : "vimServerProperty" + }, + "acm021240jsd" : { + "type" : "ControlElement", + "id" : "acm021240jsd", + "name" : "setVimServer" + }, + "acm021241jsd" : { + "type" : "ClassUnit", + "id" : "acm021241jsd", + "name" : "PushToApplicationPreferences", + "compilationUnitId" : "acm021225jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021229jsd", "acm021230jsd", "acm021231jsd", "acm021232jsd", "acm021233jsd", "acm021234jsd", "acm021235jsd", "acm021236jsd", "acm021237jsd", "acm021238jsd", "acm021239jsd", "acm021240jsd" ] + }, + "acm021242jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021242jsd", + "name" : "SearchPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021267jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021243jsd" : { + "type" : "CodePackage", + "id" : "acm021243jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021244jsd" ] + }, + "acm021244jsd" : { + "type" : "CodePackage", + "id" : "acm021244jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021245jsd" ] + }, + "acm021245jsd" : { + "type" : "CodePackage", + "id" : "acm021245jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021242jsd" ] + }, + "acm021246jsd" : { + "type" : "ControlElement", + "id" : "acm021246jsd", + "name" : "SearchPreferences" + }, + "acm021247jsd" : { + "type" : "ControlElement", + "id" : "acm021247jsd", + "name" : "SearchPreferences" + }, + "acm021248jsd" : { + "type" : "ControlElement", + "id" : "acm021248jsd", + "name" : "getSearchFlags" + }, + "acm021249jsd" : { + "type" : "ControlElement", + "id" : "acm021249jsd", + "name" : "getObservableSearchFlags" + }, + "acm021250jsd" : { + "type" : "ControlElement", + "id" : "acm021250jsd", + "name" : "getSearchDisplayMode" + }, + "acm021251jsd" : { + "type" : "ControlElement", + "id" : "acm021251jsd", + "name" : "searchDisplayModeProperty" + }, + "acm021252jsd" : { + "type" : "ControlElement", + "id" : "acm021252jsd", + "name" : "setSearchDisplayMode" + }, + "acm021253jsd" : { + "type" : "ControlElement", + "id" : "acm021253jsd", + "name" : "isCaseSensitive" + }, + "acm021254jsd" : { + "type" : "ControlElement", + "id" : "acm021254jsd", + "name" : "setSearchFlag" + }, + "acm021255jsd" : { + "type" : "ControlElement", + "id" : "acm021255jsd", + "name" : "isRegularExpression" + }, + "acm021256jsd" : { + "type" : "ControlElement", + "id" : "acm021256jsd", + "name" : "isFulltext" + }, + "acm021257jsd" : { + "type" : "ControlElement", + "id" : "acm021257jsd", + "name" : "shouldKeepSearchString" + }, + "acm021258jsd" : { + "type" : "ControlElement", + "id" : "acm021258jsd", + "name" : "shouldKeepWindowOnTop" + }, + "acm021259jsd" : { + "type" : "ControlElement", + "id" : "acm021259jsd", + "name" : "keepWindowOnTopProperty" + }, + "acm021260jsd" : { + "type" : "ControlElement", + "id" : "acm021260jsd", + "name" : "setKeepWindowOnTop" + }, + "acm021261jsd" : { + "type" : "ControlElement", + "id" : "acm021261jsd", + "name" : "getSearchWindowHeight" + }, + "acm021262jsd" : { + "type" : "ControlElement", + "id" : "acm021262jsd", + "name" : "getSearchWindowWidth" + }, + "acm021263jsd" : { + "type" : "ControlElement", + "id" : "acm021263jsd", + "name" : "getSearchWindowHeightProperty" + }, + "acm021264jsd" : { + "type" : "ControlElement", + "id" : "acm021264jsd", + "name" : "getSearchWindowWidthProperty" + }, + "acm021265jsd" : { + "type" : "ControlElement", + "id" : "acm021265jsd", + "name" : "setSearchWindowHeight" + }, + "acm021266jsd" : { + "type" : "ControlElement", + "id" : "acm021266jsd", + "name" : "setSearchWindowWidth" + }, + "acm021267jsd" : { + "type" : "ClassUnit", + "id" : "acm021267jsd", + "name" : "SearchPreferences", + "compilationUnitId" : "acm021242jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008779jsd", "acm020473jsd" ], + "content" : [ "acm021246jsd", "acm021247jsd", "acm021248jsd", "acm021249jsd", "acm021250jsd", "acm021251jsd", "acm021252jsd", "acm021253jsd", "acm021254jsd", "acm021255jsd", "acm021256jsd", "acm021257jsd", "acm021258jsd", "acm021259jsd", "acm021260jsd", "acm021261jsd", "acm021262jsd", "acm021263jsd", "acm021264jsd", "acm021265jsd", "acm021266jsd" ] + }, + "acm021268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021268jsd", + "name" : "SidePanePreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021279jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021269jsd" : { + "type" : "CodePackage", + "id" : "acm021269jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021270jsd" ] + }, + "acm021270jsd" : { + "type" : "CodePackage", + "id" : "acm021270jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021271jsd" ] + }, + "acm021271jsd" : { + "type" : "CodePackage", + "id" : "acm021271jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021268jsd" ] + }, + "acm021272jsd" : { + "type" : "ControlElement", + "id" : "acm021272jsd", + "name" : "SidePanePreferences" + }, + "acm021273jsd" : { + "type" : "ControlElement", + "id" : "acm021273jsd", + "name" : "visiblePanes" + }, + "acm021274jsd" : { + "type" : "ControlElement", + "id" : "acm021274jsd", + "name" : "getPreferredPositions" + }, + "acm021275jsd" : { + "type" : "ControlElement", + "id" : "acm021275jsd", + "name" : "setPreferredPositions" + }, + "acm021276jsd" : { + "type" : "ControlElement", + "id" : "acm021276jsd", + "name" : "getWebSearchFetcherSelected" + }, + "acm021277jsd" : { + "type" : "ControlElement", + "id" : "acm021277jsd", + "name" : "webSearchFetcherSelectedProperty" + }, + "acm021278jsd" : { + "type" : "ControlElement", + "id" : "acm021278jsd", + "name" : "setWebSearchFetcherSelected" + }, + "acm021279jsd" : { + "type" : "ClassUnit", + "id" : "acm021279jsd", + "name" : "SidePanePreferences", + "compilationUnitId" : "acm021268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008988jsd" ], + "content" : [ "acm021272jsd", "acm021273jsd", "acm021274jsd", "acm021275jsd", "acm021276jsd", "acm021277jsd", "acm021278jsd" ] + }, + "acm021280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021280jsd", + "name" : "TelemetryPreferences", + "parentId" : "acm020753jsd", + "content" : [ "acm021292jsd" ], + "pathElements" : [ "src", "main", "java", "org", "jabref", "preferences" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021281jsd" : { + "type" : "CodePackage", + "id" : "acm021281jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021282jsd" ] + }, + "acm021282jsd" : { + "type" : "CodePackage", + "id" : "acm021282jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021283jsd" ] + }, + "acm021283jsd" : { + "type" : "CodePackage", + "id" : "acm021283jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021280jsd" ] + }, + "acm021284jsd" : { + "type" : "ControlElement", + "id" : "acm021284jsd", + "name" : "TelemetryPreferences" + }, + "acm021285jsd" : { + "type" : "ControlElement", + "id" : "acm021285jsd", + "name" : "shouldCollectTelemetry" + }, + "acm021286jsd" : { + "type" : "ControlElement", + "id" : "acm021286jsd", + "name" : "collectTelemetryProperty" + }, + "acm021287jsd" : { + "type" : "ControlElement", + "id" : "acm021287jsd", + "name" : "setCollectTelemetry" + }, + "acm021288jsd" : { + "type" : "ControlElement", + "id" : "acm021288jsd", + "name" : "shouldAskToCollectTelemetry" + }, + "acm021289jsd" : { + "type" : "ControlElement", + "id" : "acm021289jsd", + "name" : "askToCollectTelemetryProperty" + }, + "acm021290jsd" : { + "type" : "ControlElement", + "id" : "acm021290jsd", + "name" : "setAskToCollectTelemetry" + }, + "acm021291jsd" : { + "type" : "ControlElement", + "id" : "acm021291jsd", + "name" : "getUserId" + }, + "acm021292jsd" : { + "type" : "ClassUnit", + "id" : "acm021292jsd", + "name" : "TelemetryPreferences", + "compilationUnitId" : "acm021280jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021284jsd", "acm021285jsd", "acm021286jsd", "acm021287jsd", "acm021288jsd", "acm021289jsd", "acm021290jsd", "acm021291jsd" ] + }, + "acm021293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021293jsd", + "name" : "IconsPropertiesTest", + "parentId" : "acm001339jsd", + "content" : [ "acm021297jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021294jsd" : { + "type" : "CodePackage", + "id" : "acm021294jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021295jsd" ] + }, + "acm021295jsd" : { + "type" : "CodePackage", + "id" : "acm021295jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021293jsd" ] + }, + "acm021296jsd" : { + "type" : "ControlElement", + "id" : "acm021296jsd", + "name" : "testExistenceOfIconImagesReferencedFromIconsProperties" + }, + "acm021297jsd" : { + "type" : "ClassUnit", + "id" : "acm021297jsd", + "name" : "IconsPropertiesTest", + "compilationUnitId" : "acm021293jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021296jsd" ] + }, + "acm021298jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021298jsd", + "name" : "MainArchitectureTest", + "parentId" : "acm001446jsd", + "content" : [ "acm021312jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021299jsd" : { + "type" : "CodePackage", + "id" : "acm021299jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021300jsd" ] + }, + "acm021300jsd" : { + "type" : "CodePackage", + "id" : "acm021300jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021301jsd" ] + }, + "acm021301jsd" : { + "type" : "CodePackage", + "id" : "acm021301jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm021298jsd" ] + }, + "acm021302jsd" : { + "type" : "ControlElement", + "id" : "acm021302jsd", + "name" : "doNotUseApacheCommonsLang3" + }, + "acm021303jsd" : { + "type" : "ControlElement", + "id" : "acm021303jsd", + "name" : "doNotUseSwing" + }, + "acm021304jsd" : { + "type" : "ControlElement", + "id" : "acm021304jsd", + "name" : "doNotUseAssertJ" + }, + "acm021305jsd" : { + "type" : "ControlElement", + "id" : "acm021305jsd", + "name" : "doNotUseJavaAWT" + }, + "acm021306jsd" : { + "type" : "ControlElement", + "id" : "acm021306jsd", + "name" : "doNotUsePaths" + }, + "acm021307jsd" : { + "type" : "ControlElement", + "id" : "acm021307jsd", + "name" : "respectLayeredArchitecture" + }, + "acm021308jsd" : { + "type" : "ControlElement", + "id" : "acm021308jsd", + "name" : "doNotUseLogicInModel" + }, + "acm021309jsd" : { + "type" : "ControlElement", + "id" : "acm021309jsd", + "name" : "restrictUsagesInModel" + }, + "acm021310jsd" : { + "type" : "ControlElement", + "id" : "acm021310jsd", + "name" : "restrictUsagesInLogic" + }, + "acm021311jsd" : { + "type" : "ControlElement", + "id" : "acm021311jsd", + "name" : "restrictStandardStreams" + }, + "acm021312jsd" : { + "type" : "ClassUnit", + "id" : "acm021312jsd", + "name" : "MainArchitectureTest", + "compilationUnitId" : "acm021298jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021302jsd", "acm021303jsd", "acm021304jsd", "acm021305jsd", "acm021306jsd", "acm021307jsd", "acm021308jsd", "acm021309jsd", "acm021310jsd", "acm021311jsd" ] + }, + "acm021313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021313jsd", + "name" : "TestArchitectureTest", + "parentId" : "acm001446jsd", + "content" : [ "acm021319jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021314jsd" : { + "type" : "CodePackage", + "id" : "acm021314jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021315jsd" ] + }, + "acm021315jsd" : { + "type" : "CodePackage", + "id" : "acm021315jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021316jsd" ] + }, + "acm021316jsd" : { + "type" : "CodePackage", + "id" : "acm021316jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm021313jsd" ] + }, + "acm021317jsd" : { + "type" : "ControlElement", + "id" : "acm021317jsd", + "name" : "testsAreIndependent" + }, + "acm021318jsd" : { + "type" : "ControlElement", + "id" : "acm021318jsd", + "name" : "testNaming" + }, + "acm021319jsd" : { + "type" : "ClassUnit", + "id" : "acm021319jsd", + "name" : "TestArchitectureTest", + "compilationUnitId" : "acm021313jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021317jsd", "acm021318jsd" ] + }, + "acm021320jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021320jsd", + "name" : "ArgumentProcessorTest", + "parentId" : "acm001466jsd", + "content" : [ "acm021327jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021321jsd" : { + "type" : "CodePackage", + "id" : "acm021321jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021322jsd" ] + }, + "acm021322jsd" : { + "type" : "CodePackage", + "id" : "acm021322jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021323jsd" ] + }, + "acm021323jsd" : { + "type" : "CodePackage", + "id" : "acm021323jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm021320jsd" ] + }, + "acm021324jsd" : { + "type" : "ControlElement", + "id" : "acm021324jsd", + "name" : "setup" + }, + "acm021325jsd" : { + "type" : "ControlElement", + "id" : "acm021325jsd", + "name" : "testAuxImport" + }, + "acm021326jsd" : { + "type" : "ControlElement", + "id" : "acm021326jsd", + "name" : "testExportMatches" + }, + "acm021327jsd" : { + "type" : "ClassUnit", + "id" : "acm021327jsd", + "name" : "ArgumentProcessorTest", + "compilationUnitId" : "acm021320jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001492jsd", "acm012467jsd", "acm013709jsd", "acm018267jsd", "acm020473jsd", "acm020676jsd", "acm021206jsd", "acm021267jsd", "acm021327jsd", "acm021334jsd" ], + "content" : [ "acm021324jsd", "acm021325jsd", "acm021326jsd" ] + }, + "acm021328jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021328jsd", + "name" : "AuxCommandLineTest", + "parentId" : "acm001466jsd", + "content" : [ "acm021334jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021329jsd" : { + "type" : "CodePackage", + "id" : "acm021329jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021330jsd" ] + }, + "acm021330jsd" : { + "type" : "CodePackage", + "id" : "acm021330jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021331jsd" ] + }, + "acm021331jsd" : { + "type" : "CodePackage", + "id" : "acm021331jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm021328jsd" ] + }, + "acm021332jsd" : { + "type" : "ControlElement", + "id" : "acm021332jsd", + "name" : "setUp" + }, + "acm021333jsd" : { + "type" : "ControlElement", + "id" : "acm021333jsd", + "name" : "test" + }, + "acm021334jsd" : { + "type" : "ClassUnit", + "id" : "acm021334jsd", + "name" : "AuxCommandLineTest", + "compilationUnitId" : "acm021328jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001500jsd", "acm012556jsd", "acm013761jsd", "acm017988jsd", "acm020676jsd", "acm021334jsd" ], + "content" : [ "acm021332jsd", "acm021333jsd" ] + }, + "acm021335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021335jsd", + "name" : "JabRefCLITest", + "parentId" : "acm001466jsd", + "content" : [ "acm021357jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "cli" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021336jsd" : { + "type" : "CodePackage", + "id" : "acm021336jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021337jsd" ] + }, + "acm021337jsd" : { + "type" : "CodePackage", + "id" : "acm021337jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021338jsd" ] + }, + "acm021338jsd" : { + "type" : "CodePackage", + "id" : "acm021338jsd", + "name" : "cli", + "parentId" : null, + "content" : [ "acm021335jsd" ] + }, + "acm021339jsd" : { + "type" : "ControlElement", + "id" : "acm021339jsd", + "name" : "emptyCLILeftOversLongOptions" + }, + "acm021340jsd" : { + "type" : "ControlElement", + "id" : "acm021340jsd", + "name" : "guiIsDisabledLongOptions" + }, + "acm021341jsd" : { + "type" : "ControlElement", + "id" : "acm021341jsd", + "name" : "successfulParsingOfFileImportCLILongOptions" + }, + "acm021342jsd" : { + "type" : "ControlElement", + "id" : "acm021342jsd", + "name" : "successfulParsingOfFileExportCLILongOptions" + }, + "acm021343jsd" : { + "type" : "ControlElement", + "id" : "acm021343jsd", + "name" : "emptyCLILeftOversShortOptions" + }, + "acm021344jsd" : { + "type" : "ControlElement", + "id" : "acm021344jsd", + "name" : "guiIsDisabledShortOptions" + }, + "acm021345jsd" : { + "type" : "ControlElement", + "id" : "acm021345jsd", + "name" : "successfulParsingOfFileImportShortOptions" + }, + "acm021346jsd" : { + "type" : "ControlElement", + "id" : "acm021346jsd", + "name" : "successfulParsingOfFileExportShortOptions" + }, + "acm021347jsd" : { + "type" : "ControlElement", + "id" : "acm021347jsd", + "name" : "emptyPreferencesLeftOver" + }, + "acm021348jsd" : { + "type" : "ControlElement", + "id" : "acm021348jsd", + "name" : "successfulExportOfPreferences" + }, + "acm021349jsd" : { + "type" : "ControlElement", + "id" : "acm021349jsd", + "name" : "guiDisabledForPreferencesExport" + }, + "acm021350jsd" : { + "type" : "ControlElement", + "id" : "acm021350jsd", + "name" : "emptyLeftOversCLIShortImportingBibtex" + }, + "acm021351jsd" : { + "type" : "ControlElement", + "id" : "acm021351jsd", + "name" : "recognizesImportBibtexShort" + }, + "acm021352jsd" : { + "type" : "ControlElement", + "id" : "acm021352jsd", + "name" : "successfulParsingOfBibtexImportShort" + }, + "acm021353jsd" : { + "type" : "ControlElement", + "id" : "acm021353jsd", + "name" : "emptyLeftOversCLILongImportingBibtex" + }, + "acm021354jsd" : { + "type" : "ControlElement", + "id" : "acm021354jsd", + "name" : "recognizesImportBibtexLong" + }, + "acm021355jsd" : { + "type" : "ControlElement", + "id" : "acm021355jsd", + "name" : "successfulParsingOfBibtexImportLong" + }, + "acm021356jsd" : { + "type" : "ControlElement", + "id" : "acm021356jsd", + "name" : "wrapStringList" + }, + "acm021357jsd" : { + "type" : "ClassUnit", + "id" : "acm021357jsd", + "name" : "JabRefCLITest", + "compilationUnitId" : "acm021335jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001544jsd" ], + "content" : [ "acm021339jsd", "acm021340jsd", "acm021341jsd", "acm021342jsd", "acm021343jsd", "acm021344jsd", "acm021345jsd", "acm021346jsd", "acm021347jsd", "acm021348jsd", "acm021349jsd", "acm021350jsd", "acm021351jsd", "acm021352jsd", "acm021353jsd", "acm021354jsd", "acm021355jsd", "acm021356jsd" ] + }, + "acm021358jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021358jsd", + "name" : "UpdateTimestampListenerTest", + "parentId" : "acm001569jsd", + "content" : [ "acm021365jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021359jsd" : { + "type" : "CodePackage", + "id" : "acm021359jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021360jsd" ] + }, + "acm021360jsd" : { + "type" : "CodePackage", + "id" : "acm021360jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021361jsd" ] + }, + "acm021361jsd" : { + "type" : "CodePackage", + "id" : "acm021361jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021358jsd" ] + }, + "acm021362jsd" : { + "type" : "ControlElement", + "id" : "acm021362jsd", + "name" : "setUp" + }, + "acm021363jsd" : { + "type" : "ControlElement", + "id" : "acm021363jsd", + "name" : "updateTimestampEnabled" + }, + "acm021364jsd" : { + "type" : "ControlElement", + "id" : "acm021364jsd", + "name" : "updateTimestampDisabled" + }, + "acm021365jsd" : { + "type" : "ClassUnit", + "id" : "acm021365jsd", + "name" : "UpdateTimestampListenerTest", + "compilationUnitId" : "acm021358jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002052jsd", "acm016641jsd", "acm017988jsd", "acm018267jsd", "acm018813jsd", "acm021206jsd" ], + "content" : [ "acm021362jsd", "acm021363jsd", "acm021364jsd" ] + }, + "acm021366jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021366jsd", + "name" : "AppendPersonNamesStrategyTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021373jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021367jsd" : { + "type" : "CodePackage", + "id" : "acm021367jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021368jsd" ] + }, + "acm021368jsd" : { + "type" : "CodePackage", + "id" : "acm021368jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021369jsd" ] + }, + "acm021369jsd" : { + "type" : "CodePackage", + "id" : "acm021369jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021370jsd" ] + }, + "acm021370jsd" : { + "type" : "CodePackage", + "id" : "acm021370jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021366jsd" ] + }, + "acm021371jsd" : { + "type" : "ControlElement", + "id" : "acm021371jsd", + "name" : "testWithoutParam" + }, + "acm021372jsd" : { + "type" : "ControlElement", + "id" : "acm021372jsd", + "name" : "testWithParam" + }, + "acm021373jsd" : { + "type" : "ClassUnit", + "id" : "acm021373jsd", + "name" : "AppendPersonNamesStrategyTest", + "compilationUnitId" : "acm021366jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002159jsd" ], + "content" : [ "acm021371jsd", "acm021372jsd" ] + }, + "acm021374jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021374jsd", + "name" : "AutoCompleterUtil", + "parentId" : "acm002155jsd", + "content" : [ "acm021382jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021375jsd" : { + "type" : "CodePackage", + "id" : "acm021375jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021376jsd" ] + }, + "acm021376jsd" : { + "type" : "CodePackage", + "id" : "acm021376jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021377jsd" ] + }, + "acm021377jsd" : { + "type" : "CodePackage", + "id" : "acm021377jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021378jsd" ] + }, + "acm021378jsd" : { + "type" : "CodePackage", + "id" : "acm021378jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021374jsd" ] + }, + "acm021379jsd" : { + "type" : "ControlElement", + "id" : "acm021379jsd", + "name" : "getRequest" + }, + "acm021380jsd" : { + "type" : "ControlElement", + "id" : "acm021380jsd", + "name" : "isCancelled" + }, + "acm021381jsd" : { + "type" : "ControlElement", + "id" : "acm021381jsd", + "name" : "getUserText" + }, + "acm021382jsd" : { + "type" : "ClassUnit", + "id" : "acm021382jsd", + "name" : "AutoCompleterUtil", + "compilationUnitId" : "acm021374jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021379jsd", "acm021380jsd", "acm021381jsd" ] + }, + "acm021383jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021383jsd", + "name" : "BibEntrySuggestionProviderTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021398jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021384jsd" : { + "type" : "CodePackage", + "id" : "acm021384jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021385jsd" ] + }, + "acm021385jsd" : { + "type" : "CodePackage", + "id" : "acm021385jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021386jsd" ] + }, + "acm021386jsd" : { + "type" : "CodePackage", + "id" : "acm021386jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021387jsd" ] + }, + "acm021387jsd" : { + "type" : "CodePackage", + "id" : "acm021387jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021383jsd" ] + }, + "acm021388jsd" : { + "type" : "ControlElement", + "id" : "acm021388jsd", + "name" : "setUp" + }, + "acm021389jsd" : { + "type" : "ControlElement", + "id" : "acm021389jsd", + "name" : "completeWithoutAddingAnythingReturnsNothing" + }, + "acm021390jsd" : { + "type" : "ControlElement", + "id" : "acm021390jsd", + "name" : "completeAfterAddingEmptyEntryReturnsNothing" + }, + "acm021391jsd" : { + "type" : "ControlElement", + "id" : "acm021391jsd", + "name" : "completeKeyReturnsKey" + }, + "acm021392jsd" : { + "type" : "ControlElement", + "id" : "acm021392jsd", + "name" : "completeBeginningOfKeyReturnsKey" + }, + "acm021393jsd" : { + "type" : "ControlElement", + "id" : "acm021393jsd", + "name" : "completeLowercaseKeyReturnsKey" + }, + "acm021394jsd" : { + "type" : "ControlElement", + "id" : "acm021394jsd", + "name" : "completeNullThrowsException" + }, + "acm021395jsd" : { + "type" : "ControlElement", + "id" : "acm021395jsd", + "name" : "completeEmptyStringReturnsNothing" + }, + "acm021396jsd" : { + "type" : "ControlElement", + "id" : "acm021396jsd", + "name" : "completeReturnsMultipleResults" + }, + "acm021397jsd" : { + "type" : "ControlElement", + "id" : "acm021397jsd", + "name" : "completeShortKeyReturnsKey" + }, + "acm021398jsd" : { + "type" : "ClassUnit", + "id" : "acm021398jsd", + "name" : "BibEntrySuggestionProviderTest", + "compilationUnitId" : "acm021383jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002242jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021388jsd", "acm021389jsd", "acm021390jsd", "acm021391jsd", "acm021392jsd", "acm021393jsd", "acm021394jsd", "acm021395jsd", "acm021396jsd", "acm021397jsd" ] + }, + "acm021399jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021399jsd", + "name" : "ContentSelectorSuggestionProviderTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021413jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021400jsd" : { + "type" : "CodePackage", + "id" : "acm021400jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021401jsd" ] + }, + "acm021401jsd" : { + "type" : "CodePackage", + "id" : "acm021401jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021402jsd" ] + }, + "acm021402jsd" : { + "type" : "CodePackage", + "id" : "acm021402jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021403jsd" ] + }, + "acm021403jsd" : { + "type" : "CodePackage", + "id" : "acm021403jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021399jsd" ] + }, + "acm021404jsd" : { + "type" : "ControlElement", + "id" : "acm021404jsd", + "name" : "completeWithoutAddingAnythingReturnsNothing" + }, + "acm021405jsd" : { + "type" : "ControlElement", + "id" : "acm021405jsd", + "name" : "completeKeywordReturnsKeyword" + }, + "acm021406jsd" : { + "type" : "ControlElement", + "id" : "acm021406jsd", + "name" : "completeBeginningOfKeywordReturnsKeyword" + }, + "acm021407jsd" : { + "type" : "ControlElement", + "id" : "acm021407jsd", + "name" : "completeKeywordReturnsKeywordFromDatabase" + }, + "acm021408jsd" : { + "type" : "ControlElement", + "id" : "acm021408jsd", + "name" : "completeUppercaseBeginningOfNameReturnsName" + }, + "acm021409jsd" : { + "type" : "ControlElement", + "id" : "acm021409jsd", + "name" : "completeNullThrowsException" + }, + "acm021410jsd" : { + "type" : "ControlElement", + "id" : "acm021410jsd", + "name" : "completeEmptyStringReturnsNothing" + }, + "acm021411jsd" : { + "type" : "ControlElement", + "id" : "acm021411jsd", + "name" : "completeReturnsMultipleResults" + }, + "acm021412jsd" : { + "type" : "ControlElement", + "id" : "acm021412jsd", + "name" : "completeReturnsKeywordsInAlphabeticalOrder" + }, + "acm021413jsd" : { + "type" : "ClassUnit", + "id" : "acm021413jsd", + "name" : "ContentSelectorSuggestionProviderTest", + "compilationUnitId" : "acm021399jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002251jsd", "acm002261jsd", "acm002346jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021404jsd", "acm021405jsd", "acm021406jsd", "acm021407jsd", "acm021408jsd", "acm021409jsd", "acm021410jsd", "acm021411jsd", "acm021412jsd" ] + }, + "acm021414jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021414jsd", + "name" : "DefaultAutoCompleterTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021433jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021415jsd" : { + "type" : "CodePackage", + "id" : "acm021415jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021416jsd" ] + }, + "acm021416jsd" : { + "type" : "CodePackage", + "id" : "acm021416jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021417jsd" ] + }, + "acm021417jsd" : { + "type" : "CodePackage", + "id" : "acm021417jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021418jsd" ] + }, + "acm021418jsd" : { + "type" : "CodePackage", + "id" : "acm021418jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021414jsd" ] + }, + "acm021419jsd" : { + "type" : "ControlElement", + "id" : "acm021419jsd", + "name" : "setUp" + }, + "acm021420jsd" : { + "type" : "ControlElement", + "id" : "acm021420jsd", + "name" : "initAutoCompleterWithNullFieldThrowsException" + }, + "acm021421jsd" : { + "type" : "ControlElement", + "id" : "acm021421jsd", + "name" : "completeWithoutAddingAnythingReturnsNothing" + }, + "acm021422jsd" : { + "type" : "ControlElement", + "id" : "acm021422jsd", + "name" : "completeAfterAddingEmptyEntryReturnsNothing" + }, + "acm021423jsd" : { + "type" : "ControlElement", + "id" : "acm021423jsd", + "name" : "completeAfterAddingEntryWithoutFieldReturnsNothing" + }, + "acm021424jsd" : { + "type" : "ControlElement", + "id" : "acm021424jsd", + "name" : "completeValueReturnsValue" + }, + "acm021425jsd" : { + "type" : "ControlElement", + "id" : "acm021425jsd", + "name" : "completeBeginningOfValueReturnsValue" + }, + "acm021426jsd" : { + "type" : "ControlElement", + "id" : "acm021426jsd", + "name" : "completeLowercaseValueReturnsValue" + }, + "acm021427jsd" : { + "type" : "ControlElement", + "id" : "acm021427jsd", + "name" : "completeNullThrowsException" + }, + "acm021428jsd" : { + "type" : "ControlElement", + "id" : "acm021428jsd", + "name" : "completeEmptyStringReturnsNothing" + }, + "acm021429jsd" : { + "type" : "ControlElement", + "id" : "acm021429jsd", + "name" : "completeReturnsMultipleResults" + }, + "acm021430jsd" : { + "type" : "ControlElement", + "id" : "acm021430jsd", + "name" : "completeShortStringReturnsValue" + }, + "acm021431jsd" : { + "type" : "ControlElement", + "id" : "acm021431jsd", + "name" : "completeBeginnigOfSecondWordReturnsWord" + }, + "acm021432jsd" : { + "type" : "ControlElement", + "id" : "acm021432jsd", + "name" : "completePartOfWordReturnsValue" + }, + "acm021433jsd" : { + "type" : "ClassUnit", + "id" : "acm021433jsd", + "name" : "DefaultAutoCompleterTest", + "compilationUnitId" : "acm021414jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002346jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021419jsd", "acm021420jsd", "acm021421jsd", "acm021422jsd", "acm021423jsd", "acm021424jsd", "acm021425jsd", "acm021426jsd", "acm021427jsd", "acm021428jsd", "acm021429jsd", "acm021430jsd", "acm021431jsd", "acm021432jsd" ] + }, + "acm021434jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021434jsd", + "name" : "FieldValueSuggestionProviderTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021455jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021435jsd" : { + "type" : "CodePackage", + "id" : "acm021435jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021436jsd" ] + }, + "acm021436jsd" : { + "type" : "CodePackage", + "id" : "acm021436jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021437jsd" ] + }, + "acm021437jsd" : { + "type" : "CodePackage", + "id" : "acm021437jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021438jsd" ] + }, + "acm021438jsd" : { + "type" : "CodePackage", + "id" : "acm021438jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021434jsd" ] + }, + "acm021439jsd" : { + "type" : "ControlElement", + "id" : "acm021439jsd", + "name" : "setUp" + }, + "acm021440jsd" : { + "type" : "ControlElement", + "id" : "acm021440jsd", + "name" : "initAutoCompleterWithNullFieldThrowsException" + }, + "acm021441jsd" : { + "type" : "ControlElement", + "id" : "acm021441jsd", + "name" : "completeWithoutAddingAnythingReturnsNothing" + }, + "acm021442jsd" : { + "type" : "ControlElement", + "id" : "acm021442jsd", + "name" : "completeAfterAddingEmptyEntryReturnsNothing" + }, + "acm021443jsd" : { + "type" : "ControlElement", + "id" : "acm021443jsd", + "name" : "completeAfterAddingEntryWithoutFieldReturnsNothing" + }, + "acm021444jsd" : { + "type" : "ControlElement", + "id" : "acm021444jsd", + "name" : "completeOnIgnoredFieldReturnsNothing" + }, + "acm021445jsd" : { + "type" : "ControlElement", + "id" : "acm021445jsd", + "name" : "completeValueReturnsValue" + }, + "acm021446jsd" : { + "type" : "ControlElement", + "id" : "acm021446jsd", + "name" : "completeBeginnigOfValueReturnsValue" + }, + "acm021447jsd" : { + "type" : "ControlElement", + "id" : "acm021447jsd", + "name" : "completeLowercaseValueReturnsValue" + }, + "acm021448jsd" : { + "type" : "ControlElement", + "id" : "acm021448jsd", + "name" : "completeNullThrowsException" + }, + "acm021449jsd" : { + "type" : "ControlElement", + "id" : "acm021449jsd", + "name" : "completeEmptyStringReturnsNothing" + }, + "acm021450jsd" : { + "type" : "ControlElement", + "id" : "acm021450jsd", + "name" : "completeReturnsMultipleResults" + }, + "acm021451jsd" : { + "type" : "ControlElement", + "id" : "acm021451jsd", + "name" : "completeShortStringReturnsFieldValue" + }, + "acm021452jsd" : { + "type" : "ControlElement", + "id" : "acm021452jsd", + "name" : "completeBeginnigOfSecondWordReturnsWholeFieldValue" + }, + "acm021453jsd" : { + "type" : "ControlElement", + "id" : "acm021453jsd", + "name" : "completePartOfWordReturnsWholeFieldValue" + }, + "acm021454jsd" : { + "type" : "ControlElement", + "id" : "acm021454jsd", + "name" : "completeReturnsWholeFieldValue" + }, + "acm021455jsd" : { + "type" : "ClassUnit", + "id" : "acm021455jsd", + "name" : "FieldValueSuggestionProviderTest", + "compilationUnitId" : "acm021434jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm002193jsd", "acm002269jsd", "acm002338jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021439jsd", "acm021440jsd", "acm021441jsd", "acm021442jsd", "acm021443jsd", "acm021444jsd", "acm021445jsd", "acm021446jsd", "acm021447jsd", "acm021448jsd", "acm021449jsd", "acm021450jsd", "acm021451jsd", "acm021452jsd", "acm021453jsd", "acm021454jsd" ] + }, + "acm021456jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021456jsd", + "name" : "PersonNameStringConverterTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021464jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021457jsd" : { + "type" : "CodePackage", + "id" : "acm021457jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021458jsd" ] + }, + "acm021458jsd" : { + "type" : "CodePackage", + "id" : "acm021458jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021459jsd" ] + }, + "acm021459jsd" : { + "type" : "CodePackage", + "id" : "acm021459jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021460jsd" ] + }, + "acm021460jsd" : { + "type" : "CodePackage", + "id" : "acm021460jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021456jsd" ] + }, + "acm021461jsd" : { + "type" : "ControlElement", + "id" : "acm021461jsd", + "name" : "setUp" + }, + "acm021462jsd" : { + "type" : "ControlElement", + "id" : "acm021462jsd", + "name" : "testToStringWithoutAutoCompletePreferences" + }, + "acm021463jsd" : { + "type" : "ControlElement", + "id" : "acm021463jsd", + "name" : "testToStringWithAutoCompletePreferences" + }, + "acm021464jsd" : { + "type" : "ClassUnit", + "id" : "acm021464jsd", + "name" : "PersonNameStringConverterTest", + "compilationUnitId" : "acm021456jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002175jsd", "acm002193jsd", "acm002194jsd", "acm002287jsd", "acm018138jsd" ], + "content" : [ "acm021461jsd", "acm021462jsd", "acm021463jsd" ] + }, + "acm021465jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021465jsd", + "name" : "PersonNameSuggestionProviderTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021488jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021466jsd" : { + "type" : "CodePackage", + "id" : "acm021466jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021467jsd" ] + }, + "acm021467jsd" : { + "type" : "CodePackage", + "id" : "acm021467jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021468jsd" ] + }, + "acm021468jsd" : { + "type" : "CodePackage", + "id" : "acm021468jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021469jsd" ] + }, + "acm021469jsd" : { + "type" : "CodePackage", + "id" : "acm021469jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021465jsd" ] + }, + "acm021470jsd" : { + "type" : "ControlElement", + "id" : "acm021470jsd", + "name" : "setUp" + }, + "acm021471jsd" : { + "type" : "ControlElement", + "id" : "acm021471jsd", + "name" : "initAutoCompleterWithNullFieldThrowsException" + }, + "acm021472jsd" : { + "type" : "ControlElement", + "id" : "acm021472jsd", + "name" : "completeWithoutAddingAnythingReturnsNothing" + }, + "acm021473jsd" : { + "type" : "ControlElement", + "id" : "acm021473jsd", + "name" : "completeAfterAddingEmptyEntryReturnsNothing" + }, + "acm021474jsd" : { + "type" : "ControlElement", + "id" : "acm021474jsd", + "name" : "completeAfterAddingEntryWithoutFieldReturnsNothing" + }, + "acm021475jsd" : { + "type" : "ControlElement", + "id" : "acm021475jsd", + "name" : "completeNameReturnsName" + }, + "acm021476jsd" : { + "type" : "ControlElement", + "id" : "acm021476jsd", + "name" : "completeBeginningOfNameReturnsName" + }, + "acm021477jsd" : { + "type" : "ControlElement", + "id" : "acm021477jsd", + "name" : "completeLowercaseBeginningOfNameReturnsName" + }, + "acm021478jsd" : { + "type" : "ControlElement", + "id" : "acm021478jsd", + "name" : "completeNullThrowsException" + }, + "acm021479jsd" : { + "type" : "ControlElement", + "id" : "acm021479jsd", + "name" : "completeEmptyStringReturnsNothing" + }, + "acm021480jsd" : { + "type" : "ControlElement", + "id" : "acm021480jsd", + "name" : "completeReturnsMultipleResults" + }, + "acm021481jsd" : { + "type" : "ControlElement", + "id" : "acm021481jsd", + "name" : "completePartOfNameReturnsName" + }, + "acm021482jsd" : { + "type" : "ControlElement", + "id" : "acm021482jsd", + "name" : "completeBeginningOfFirstNameReturnsName" + }, + "acm021483jsd" : { + "type" : "ControlElement", + "id" : "acm021483jsd", + "name" : "completeBeginningOfFirstNameReturnsNameWithJr" + }, + "acm021484jsd" : { + "type" : "ControlElement", + "id" : "acm021484jsd", + "name" : "completeBeginningOfFirstNameReturnsNameWithVon" + }, + "acm021485jsd" : { + "type" : "ControlElement", + "id" : "acm021485jsd", + "name" : "completeBeginningOfLastNameReturnsNameWithUmlauts" + }, + "acm021486jsd" : { + "type" : "ControlElement", + "id" : "acm021486jsd", + "name" : "completeVonReturnsName" + }, + "acm021487jsd" : { + "type" : "ControlElement", + "id" : "acm021487jsd", + "name" : "completeBeginningOfFullNameReturnsName" + }, + "acm021488jsd" : { + "type" : "ClassUnit", + "id" : "acm021488jsd", + "name" : "PersonNameSuggestionProviderTest", + "compilationUnitId" : "acm021465jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002300jsd", "acm017988jsd", "acm018138jsd", "acm018267jsd" ], + "content" : [ "acm021470jsd", "acm021471jsd", "acm021472jsd", "acm021473jsd", "acm021474jsd", "acm021475jsd", "acm021476jsd", "acm021477jsd", "acm021478jsd", "acm021479jsd", "acm021480jsd", "acm021481jsd", "acm021482jsd", "acm021483jsd", "acm021484jsd", "acm021485jsd", "acm021486jsd", "acm021487jsd" ] + }, + "acm021489jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021489jsd", + "name" : "SuggestionProvidersTest", + "parentId" : "acm002155jsd", + "content" : [ "acm021498jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "autocompleter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021490jsd" : { + "type" : "CodePackage", + "id" : "acm021490jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021491jsd" ] + }, + "acm021491jsd" : { + "type" : "CodePackage", + "id" : "acm021491jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021492jsd" ] + }, + "acm021492jsd" : { + "type" : "CodePackage", + "id" : "acm021492jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021493jsd" ] + }, + "acm021493jsd" : { + "type" : "CodePackage", + "id" : "acm021493jsd", + "name" : "autocompleter", + "parentId" : null, + "content" : [ "acm021489jsd" ] + }, + "acm021494jsd" : { + "type" : "ControlElement", + "id" : "acm021494jsd", + "name" : "initializeSuggestionProviders" + }, + "acm021495jsd" : { + "type" : "ControlElement", + "id" : "acm021495jsd", + "name" : "getTestPairs" + }, + "acm021496jsd" : { + "type" : "ControlElement", + "id" : "acm021496jsd", + "name" : "testAppropriateCompleterReturned" + }, + "acm021497jsd" : { + "type" : "ControlElement", + "id" : "acm021497jsd", + "name" : "emptySuggestionProviderReturnedForEmptySuggestionProviderList" + }, + "acm021498jsd" : { + "type" : "ClassUnit", + "id" : "acm021498jsd", + "name" : "SuggestionProvidersTest", + "compilationUnitId" : "acm021489jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd", "acm002193jsd", "acm002242jsd", "acm002261jsd", "acm002277jsd", "acm002300jsd", "acm002329jsd", "acm002338jsd", "acm002346jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm021494jsd", "acm021495jsd", "acm021496jsd", "acm021497jsd" ] + }, + "acm021499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021499jsd", + "name" : "SaveOrderPanelViewModelTest", + "parentId" : "acm002792jsd", + "content" : [ "acm021509jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "commonfxcontrols" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021500jsd" : { + "type" : "CodePackage", + "id" : "acm021500jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021501jsd" ] + }, + "acm021501jsd" : { + "type" : "CodePackage", + "id" : "acm021501jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021502jsd" ] + }, + "acm021502jsd" : { + "type" : "CodePackage", + "id" : "acm021502jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021503jsd" ] + }, + "acm021503jsd" : { + "type" : "CodePackage", + "id" : "acm021503jsd", + "name" : "commonfxcontrols", + "parentId" : null, + "content" : [ "acm021499jsd" ] + }, + "acm021504jsd" : { + "type" : "ControlElement", + "id" : "acm021504jsd", + "name" : "setUp" + }, + "acm021505jsd" : { + "type" : "ControlElement", + "id" : "acm021505jsd", + "name" : "addCriterion" + }, + "acm021506jsd" : { + "type" : "ControlElement", + "id" : "acm021506jsd", + "name" : "removeCriterion" + }, + "acm021507jsd" : { + "type" : "ControlElement", + "id" : "acm021507jsd", + "name" : "moveCriterionUp" + }, + "acm021508jsd" : { + "type" : "ControlElement", + "id" : "acm021508jsd", + "name" : "moveCriterionDown" + }, + "acm021509jsd" : { + "type" : "ClassUnit", + "id" : "acm021509jsd", + "name" : "SaveOrderPanelViewModelTest", + "compilationUnitId" : "acm021499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002904jsd", "acm002914jsd", "acm019454jsd" ], + "content" : [ "acm021504jsd", "acm021505jsd", "acm021506jsd", "acm021507jsd", "acm021508jsd" ] + }, + "acm021510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021510jsd", + "name" : "PdfDocumentViewModelTest", + "parentId" : "acm003094jsd", + "content" : [ "acm021516jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "documentviewer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021511jsd" : { + "type" : "CodePackage", + "id" : "acm021511jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021512jsd" ] + }, + "acm021512jsd" : { + "type" : "CodePackage", + "id" : "acm021512jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021513jsd" ] + }, + "acm021513jsd" : { + "type" : "CodePackage", + "id" : "acm021513jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021514jsd" ] + }, + "acm021514jsd" : { + "type" : "CodePackage", + "id" : "acm021514jsd", + "name" : "documentviewer", + "parentId" : null, + "content" : [ "acm021510jsd" ] + }, + "acm021515jsd" : { + "type" : "ControlElement", + "id" : "acm021515jsd", + "name" : "getPagesTest" + }, + "acm021516jsd" : { + "type" : "ClassUnit", + "id" : "acm021516jsd", + "name" : "PdfDocumentViewModelTest", + "compilationUnitId" : "acm021510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003231jsd" ], + "content" : [ "acm021515jsd" ] + }, + "acm021517jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021517jsd", + "name" : "CopyMoreActionTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021533jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021518jsd" : { + "type" : "CodePackage", + "id" : "acm021518jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021519jsd" ] + }, + "acm021519jsd" : { + "type" : "CodePackage", + "id" : "acm021519jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021520jsd" ] + }, + "acm021520jsd" : { + "type" : "CodePackage", + "id" : "acm021520jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021521jsd" ] + }, + "acm021521jsd" : { + "type" : "CodePackage", + "id" : "acm021521jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021517jsd" ] + }, + "acm021522jsd" : { + "type" : "ControlElement", + "id" : "acm021522jsd", + "name" : "setUp" + }, + "acm021523jsd" : { + "type" : "ControlElement", + "id" : "acm021523jsd", + "name" : "testExecuteOnFail" + }, + "acm021524jsd" : { + "type" : "ControlElement", + "id" : "acm021524jsd", + "name" : "testExecuteCopyTitleWithNoTitle" + }, + "acm021525jsd" : { + "type" : "ControlElement", + "id" : "acm021525jsd", + "name" : "testExecuteCopyTitleOnPartialSuccess" + }, + "acm021526jsd" : { + "type" : "ControlElement", + "id" : "acm021526jsd", + "name" : "testExecuteCopyTitleOnSuccess" + }, + "acm021527jsd" : { + "type" : "ControlElement", + "id" : "acm021527jsd", + "name" : "testExecuteCopyKeyWithNoKey" + }, + "acm021528jsd" : { + "type" : "ControlElement", + "id" : "acm021528jsd", + "name" : "testExecuteCopyKeyOnPartialSuccess" + }, + "acm021529jsd" : { + "type" : "ControlElement", + "id" : "acm021529jsd", + "name" : "testExecuteCopyKeyOnSuccess" + }, + "acm021530jsd" : { + "type" : "ControlElement", + "id" : "acm021530jsd", + "name" : "testExecuteCopyDoiWithNoDoi" + }, + "acm021531jsd" : { + "type" : "ControlElement", + "id" : "acm021531jsd", + "name" : "testExecuteCopyDoiOnPartialSuccess" + }, + "acm021532jsd" : { + "type" : "ControlElement", + "id" : "acm021532jsd", + "name" : "testExecuteCopyDoiOnSuccess" + }, + "acm021533jsd" : { + "type" : "ClassUnit", + "id" : "acm021533jsd", + "name" : "CopyMoreActionTest", + "compilationUnitId" : "acm021517jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm003303jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm021206jsd" ], + "content" : [ "acm021522jsd", "acm021523jsd", "acm021524jsd", "acm021525jsd", "acm021526jsd", "acm021527jsd", "acm021528jsd", "acm021529jsd", "acm021530jsd", "acm021531jsd", "acm021532jsd" ] + }, + "acm021534jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021534jsd", + "name" : "CopyOrMoveFieldContentTabViewModelTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021546jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021535jsd" : { + "type" : "CodePackage", + "id" : "acm021535jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021536jsd" ] + }, + "acm021536jsd" : { + "type" : "CodePackage", + "id" : "acm021536jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021537jsd" ] + }, + "acm021537jsd" : { + "type" : "CodePackage", + "id" : "acm021537jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021538jsd" ] + }, + "acm021538jsd" : { + "type" : "CodePackage", + "id" : "acm021538jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021534jsd" ] + }, + "acm021539jsd" : { + "type" : "ControlElement", + "id" : "acm021539jsd", + "name" : "setup" + }, + "acm021540jsd" : { + "type" : "ControlElement", + "id" : "acm021540jsd", + "name" : "copyValueDoesNotCopyBlankValues" + }, + "acm021541jsd" : { + "type" : "ControlElement", + "id" : "acm021541jsd", + "name" : "swapValuesShouldNotSwapFieldValuesIfOneOfTheValuesIsBlank" + }, + "acm021542jsd" : { + "type" : "ControlElement", + "id" : "acm021542jsd", + "name" : "swapValuesShouldSwapFieldValuesIfBothValuesAreNotBlank" + }, + "acm021543jsd" : { + "type" : "ControlElement", + "id" : "acm021543jsd", + "name" : "moveValueShouldNotMoveValueIfToFieldIsNotBlankAndOverwriteIsNotEnabled" + }, + "acm021544jsd" : { + "type" : "ControlElement", + "id" : "acm021544jsd", + "name" : "moveValueShouldMoveValueIfOverwriteIsEnabled" + }, + "acm021545jsd" : { + "type" : "ControlElement", + "id" : "acm021545jsd", + "name" : "newTwoFieldsViewModel" + }, + "acm021546jsd" : { + "type" : "ClassUnit", + "id" : "acm021546jsd", + "name" : "CopyOrMoveFieldContentTabViewModelTest", + "compilationUnitId" : "acm021534jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003517jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021539jsd", "acm021540jsd", "acm021541jsd", "acm021542jsd", "acm021543jsd", "acm021544jsd", "acm021545jsd" ] + }, + "acm021547jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021547jsd", + "name" : "EditFieldContentTabViewModelTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021562jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021548jsd" : { + "type" : "CodePackage", + "id" : "acm021548jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021549jsd" ] + }, + "acm021549jsd" : { + "type" : "CodePackage", + "id" : "acm021549jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021550jsd" ] + }, + "acm021550jsd" : { + "type" : "CodePackage", + "id" : "acm021550jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021551jsd" ] + }, + "acm021551jsd" : { + "type" : "CodePackage", + "id" : "acm021551jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021547jsd" ] + }, + "acm021552jsd" : { + "type" : "ControlElement", + "id" : "acm021552jsd", + "name" : "setup" + }, + "acm021553jsd" : { + "type" : "ControlElement", + "id" : "acm021553jsd", + "name" : "clearSelectedFieldShouldClearFieldContentEvenWhenOverwriteFieldContentIsNotEnabled" + }, + "acm021554jsd" : { + "type" : "ControlElement", + "id" : "acm021554jsd", + "name" : "clearSelectedFieldShouldDoNothingWhenFieldDoesntExistOrIsEmpty" + }, + "acm021555jsd" : { + "type" : "ControlElement", + "id" : "acm021555jsd", + "name" : "setFieldValueShouldNotDoAnythingIfOverwriteFieldContentIsNotEnabled" + }, + "acm021556jsd" : { + "type" : "ControlElement", + "id" : "acm021556jsd", + "name" : "setFieldValueShouldSetFieldValueIfOverwriteFieldContentIsEnabled" + }, + "acm021557jsd" : { + "type" : "ControlElement", + "id" : "acm021557jsd", + "name" : "setFieldValueShouldSetFieldValueIfFieldContentIsEmpty" + }, + "acm021558jsd" : { + "type" : "ControlElement", + "id" : "acm021558jsd", + "name" : "appendToFieldValueShouldDoNothingIfOverwriteFieldContentIsNotEnabled" + }, + "acm021559jsd" : { + "type" : "ControlElement", + "id" : "acm021559jsd", + "name" : "appendToFieldValueShouldAppendFieldValueIfOverwriteFieldContentIsEnabled" + }, + "acm021560jsd" : { + "type" : "ControlElement", + "id" : "acm021560jsd", + "name" : "getAllFieldsShouldNeverBeEmpty" + }, + "acm021561jsd" : { + "type" : "ControlElement", + "id" : "acm021561jsd", + "name" : "getSelectedFieldShouldHaveADefaultValue" + }, + "acm021562jsd" : { + "type" : "ClassUnit", + "id" : "acm021562jsd", + "name" : "EditFieldContentTabViewModelTest", + "compilationUnitId" : "acm021547jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003550jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021552jsd", "acm021553jsd", "acm021554jsd", "acm021555jsd", "acm021556jsd", "acm021557jsd", "acm021558jsd", "acm021559jsd", "acm021560jsd", "acm021561jsd" ] + }, + "acm021563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021563jsd", + "name" : "ManageKeywordsViewModelTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021571jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021564jsd" : { + "type" : "CodePackage", + "id" : "acm021564jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021565jsd" ] + }, + "acm021565jsd" : { + "type" : "CodePackage", + "id" : "acm021565jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021566jsd" ] + }, + "acm021566jsd" : { + "type" : "CodePackage", + "id" : "acm021566jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021567jsd" ] + }, + "acm021567jsd" : { + "type" : "CodePackage", + "id" : "acm021567jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021563jsd" ] + }, + "acm021568jsd" : { + "type" : "ControlElement", + "id" : "acm021568jsd", + "name" : "setUp" + }, + "acm021569jsd" : { + "type" : "ControlElement", + "id" : "acm021569jsd", + "name" : "keywordsFilledInCorrectly" + }, + "acm021570jsd" : { + "type" : "ControlElement", + "id" : "acm021570jsd", + "name" : "removedKeywordNotIncludedInKeywordsList" + }, + "acm021571jsd" : { + "type" : "ClassUnit", + "id" : "acm021571jsd", + "name" : "ManageKeywordsViewModelTest", + "compilationUnitId" : "acm021563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003348jsd", "acm018267jsd", "acm020774jsd" ], + "content" : [ "acm021568jsd", "acm021569jsd", "acm021570jsd" ] + }, + "acm021572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021572jsd", + "name" : "RenameFieldViewModelTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021583jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021573jsd" : { + "type" : "CodePackage", + "id" : "acm021573jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021574jsd" ] + }, + "acm021574jsd" : { + "type" : "CodePackage", + "id" : "acm021574jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021575jsd" ] + }, + "acm021575jsd" : { + "type" : "CodePackage", + "id" : "acm021575jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021576jsd" ] + }, + "acm021576jsd" : { + "type" : "CodePackage", + "id" : "acm021576jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021572jsd" ] + }, + "acm021577jsd" : { + "type" : "ControlElement", + "id" : "acm021577jsd", + "name" : "setup" + }, + "acm021578jsd" : { + "type" : "ControlElement", + "id" : "acm021578jsd", + "name" : "renameFieldShouldRenameFieldIfItExist" + }, + "acm021579jsd" : { + "type" : "ControlElement", + "id" : "acm021579jsd", + "name" : "renameFieldShouldDoNothingIfFieldDoNotExist" + }, + "acm021580jsd" : { + "type" : "ControlElement", + "id" : "acm021580jsd", + "name" : "renameFieldShouldNotDoAnythingIfTheNewFieldNameIsEmpty" + }, + "acm021581jsd" : { + "type" : "ControlElement", + "id" : "acm021581jsd", + "name" : "renameFieldShouldNotDoAnythingIfTheNewFieldNameHasWhitespaceCharacters" + }, + "acm021582jsd" : { + "type" : "ControlElement", + "id" : "acm021582jsd", + "name" : "renameFieldShouldDoNothingWhenThereIsAlreadyAFieldWithTheSameNameAsNewFieldName" + }, + "acm021583jsd" : { + "type" : "ClassUnit", + "id" : "acm021583jsd", + "name" : "RenameFieldViewModelTest", + "compilationUnitId" : "acm021572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm003581jsd", "acm017988jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm021577jsd", "acm021578jsd", "acm021579jsd", "acm021580jsd", "acm021581jsd", "acm021582jsd" ] + }, + "acm021584jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021584jsd", + "name" : "ReplaceStringViewModelTest", + "parentId" : "acm003284jsd", + "content" : [ "acm021591jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "edit" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021585jsd" : { + "type" : "CodePackage", + "id" : "acm021585jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021586jsd" ] + }, + "acm021586jsd" : { + "type" : "CodePackage", + "id" : "acm021586jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021587jsd" ] + }, + "acm021587jsd" : { + "type" : "CodePackage", + "id" : "acm021587jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021588jsd" ] + }, + "acm021588jsd" : { + "type" : "CodePackage", + "id" : "acm021588jsd", + "name" : "edit", + "parentId" : null, + "content" : [ "acm021584jsd" ] + }, + "acm021589jsd" : { + "type" : "ControlElement", + "id" : "acm021589jsd", + "name" : "setUp" + }, + "acm021590jsd" : { + "type" : "ControlElement", + "id" : "acm021590jsd", + "name" : "testReplace" + }, + "acm021591jsd" : { + "type" : "ClassUnit", + "id" : "acm021591jsd", + "name" : "ReplaceStringViewModelTest", + "compilationUnitId" : "acm021584jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001965jsd", "acm003388jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm021589jsd", "acm021590jsd" ] + }, + "acm021592jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021592jsd", + "name" : "SourceTabTest", + "parentId" : "acm003586jsd", + "content" : [ "acm021599jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "entryeditor" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021593jsd" : { + "type" : "CodePackage", + "id" : "acm021593jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021594jsd" ] + }, + "acm021594jsd" : { + "type" : "CodePackage", + "id" : "acm021594jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021595jsd" ] + }, + "acm021595jsd" : { + "type" : "CodePackage", + "id" : "acm021595jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021596jsd" ] + }, + "acm021596jsd" : { + "type" : "CodePackage", + "id" : "acm021596jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm021592jsd" ] + }, + "acm021597jsd" : { + "type" : "ControlElement", + "id" : "acm021597jsd", + "name" : "onStart" + }, + "acm021598jsd" : { + "type" : "ControlElement", + "id" : "acm021598jsd", + "name" : "switchingFromSourceTabDoesNotThrowException" + }, + "acm021599jsd" : { + "type" : "ClassUnit", + "id" : "acm021599jsd", + "name" : "SourceTabTest", + "compilationUnitId" : "acm021592jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm003823jsd", "acm005802jsd", "acm009369jsd", "acm010497jsd", "acm018022jsd", "acm018267jsd", "acm018813jsd", "acm020676jsd" ], + "content" : [ "acm021597jsd", "acm021598jsd" ] + }, + "acm021600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021600jsd", + "name" : "FileAnnotationViewModelTest", + "parentId" : "acm003845jsd", + "content" : [ "acm021614jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "entryeditor", "fileannotationtab" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021601jsd" : { + "type" : "CodePackage", + "id" : "acm021601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021602jsd" ] + }, + "acm021602jsd" : { + "type" : "CodePackage", + "id" : "acm021602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021603jsd" ] + }, + "acm021603jsd" : { + "type" : "CodePackage", + "id" : "acm021603jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021604jsd" ] + }, + "acm021604jsd" : { + "type" : "CodePackage", + "id" : "acm021604jsd", + "name" : "entryeditor", + "parentId" : null, + "content" : [ "acm021605jsd" ] + }, + "acm021605jsd" : { + "type" : "CodePackage", + "id" : "acm021605jsd", + "name" : "fileannotationtab", + "parentId" : null, + "content" : [ "acm021600jsd" ] + }, + "acm021606jsd" : { + "type" : "ControlElement", + "id" : "acm021606jsd", + "name" : "setup" + }, + "acm021607jsd" : { + "type" : "ControlElement", + "id" : "acm021607jsd", + "name" : "sameAuthor" + }, + "acm021608jsd" : { + "type" : "ControlElement", + "id" : "acm021608jsd", + "name" : "retrieveCorrectPageNumberAsString" + }, + "acm021609jsd" : { + "type" : "ControlElement", + "id" : "acm021609jsd", + "name" : "retrieveCorrectDateAsString" + }, + "acm021610jsd" : { + "type" : "ControlElement", + "id" : "acm021610jsd", + "name" : "retrieveCorrectContent" + }, + "acm021611jsd" : { + "type" : "ControlElement", + "id" : "acm021611jsd", + "name" : "retrieveCorrectContentWithoutLinkedFileAnnotation" + }, + "acm021612jsd" : { + "type" : "ControlElement", + "id" : "acm021612jsd", + "name" : "removeOnlyLineBreaksNotPrecededByPeriodOrColon" + }, + "acm021613jsd" : { + "type" : "ControlElement", + "id" : "acm021613jsd", + "name" : "retrieveCorrectMarkingWithoutLinkedFileAnnotation" + }, + "acm021614jsd" : { + "type" : "ClassUnit", + "id" : "acm021614jsd", + "name" : "FileAnnotationViewModelTest", + "compilationUnitId" : "acm021600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003898jsd", "acm020244jsd" ], + "content" : [ "acm021606jsd", "acm021607jsd", "acm021608jsd", "acm021609jsd", "acm021610jsd", "acm021611jsd", "acm021612jsd", "acm021613jsd" ] + }, + "acm021615jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021615jsd", + "name" : "ExportToClipboardActionTest", + "parentId" : "acm003957jsd", + "content" : [ "acm021624jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021616jsd" : { + "type" : "CodePackage", + "id" : "acm021616jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021617jsd" ] + }, + "acm021617jsd" : { + "type" : "CodePackage", + "id" : "acm021617jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021618jsd" ] + }, + "acm021618jsd" : { + "type" : "CodePackage", + "id" : "acm021618jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021619jsd" ] + }, + "acm021619jsd" : { + "type" : "CodePackage", + "id" : "acm021619jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm021615jsd" ] + }, + "acm021620jsd" : { + "type" : "ControlElement", + "id" : "acm021620jsd", + "name" : "setUp" + }, + "acm021621jsd" : { + "type" : "ControlElement", + "id" : "acm021621jsd", + "name" : "testExecuteIfNoSelectedEntries" + }, + "acm021622jsd" : { + "type" : "ControlElement", + "id" : "acm021622jsd", + "name" : "testExecuteOnSuccess" + }, + "acm021623jsd" : { + "type" : "ControlElement", + "id" : "acm021623jsd", + "name" : "export" + }, + "acm021624jsd" : { + "type" : "ClassUnit", + "id" : "acm021624jsd", + "name" : "ExportToClipboardActionTest", + "compilationUnitId" : "acm021615jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001591jsd", "acm001640jsd", "acm002045jsd", "acm003994jsd", "acm009647jsd", "acm009965jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm019421jsd", "acm020848jsd", "acm020875jsd", "acm020950jsd", "acm021206jsd" ], + "content" : [ "acm021620jsd", "acm021621jsd", "acm021622jsd", "acm021623jsd" ] + }, + "acm021625jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021625jsd", + "name" : "SaveDatabaseActionTest", + "parentId" : "acm003957jsd", + "content" : [ "acm021637jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021626jsd" : { + "type" : "CodePackage", + "id" : "acm021626jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021627jsd" ] + }, + "acm021627jsd" : { + "type" : "CodePackage", + "id" : "acm021627jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021628jsd" ] + }, + "acm021628jsd" : { + "type" : "CodePackage", + "id" : "acm021628jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021629jsd" ] + }, + "acm021629jsd" : { + "type" : "CodePackage", + "id" : "acm021629jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm021625jsd" ] + }, + "acm021630jsd" : { + "type" : "ControlElement", + "id" : "acm021630jsd", + "name" : "setUp" + }, + "acm021631jsd" : { + "type" : "ControlElement", + "id" : "acm021631jsd", + "name" : "saveAsShouldSetWorkingDirectory" + }, + "acm021632jsd" : { + "type" : "ControlElement", + "id" : "acm021632jsd", + "name" : "saveAsShouldNotSetWorkingDirectoryIfNotSelected" + }, + "acm021633jsd" : { + "type" : "ControlElement", + "id" : "acm021633jsd", + "name" : "saveShouldShowSaveAsIfDatabaseNotSelected" + }, + "acm021634jsd" : { + "type" : "ControlElement", + "id" : "acm021634jsd", + "name" : "createSaveDatabaseActionForBibDatabase" + }, + "acm021635jsd" : { + "type" : "ControlElement", + "id" : "acm021635jsd", + "name" : "saveKeepsChangedFlag" + }, + "acm021636jsd" : { + "type" : "ControlElement", + "id" : "acm021636jsd", + "name" : "saveShouldNotSaveDatabaseIfPathNotSet" + }, + "acm021637jsd" : { + "type" : "ClassUnit", + "id" : "acm021637jsd", + "name" : "SaveDatabaseActionTest", + "compilationUnitId" : "acm021625jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm001965jsd", "acm004040jsd", "acm009369jsd", "acm009796jsd", "acm010497jsd", "acm010993jsd", "acm011011jsd", "acm011444jsd", "acm011645jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm019421jsd", "acm020848jsd", "acm020950jsd", "acm021095jsd" ], + "content" : [ "acm021630jsd", "acm021631jsd", "acm021632jsd", "acm021633jsd", "acm021634jsd", "acm021635jsd", "acm021636jsd" ] + }, + "acm021638jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021638jsd", + "name" : "AutoSetFileLinksUtilTest", + "parentId" : "acm004070jsd", + "content" : [ "acm021646jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021639jsd" : { + "type" : "CodePackage", + "id" : "acm021639jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021640jsd" ] + }, + "acm021640jsd" : { + "type" : "CodePackage", + "id" : "acm021640jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021641jsd" ] + }, + "acm021641jsd" : { + "type" : "CodePackage", + "id" : "acm021641jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021642jsd" ] + }, + "acm021642jsd" : { + "type" : "CodePackage", + "id" : "acm021642jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm021638jsd" ] + }, + "acm021643jsd" : { + "type" : "ControlElement", + "id" : "acm021643jsd", + "name" : "setUp" + }, + "acm021644jsd" : { + "type" : "ControlElement", + "id" : "acm021644jsd", + "name" : "testFindAssociatedNotLinkedFilesSuccess" + }, + "acm021645jsd" : { + "type" : "ControlElement", + "id" : "acm021645jsd", + "name" : "testFindAssociatedNotLinkedFilesForEmptySearchDir" + }, + "acm021646jsd" : { + "type" : "ClassUnit", + "id" : "acm021646jsd", + "name" : "AutoSetFileLinksUtilTest", + "compilationUnitId" : "acm021638jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004089jsd", "acm017440jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm021643jsd", "acm021644jsd", "acm021645jsd" ] + }, + "acm021647jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021647jsd", + "name" : "FileFilterUtilsTest", + "parentId" : "acm004070jsd", + "content" : [ "acm021666jsd", "acm021672jsd", "acm021674jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021648jsd" : { + "type" : "CodePackage", + "id" : "acm021648jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021649jsd" ] + }, + "acm021649jsd" : { + "type" : "CodePackage", + "id" : "acm021649jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021650jsd" ] + }, + "acm021650jsd" : { + "type" : "CodePackage", + "id" : "acm021650jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021651jsd" ] + }, + "acm021651jsd" : { + "type" : "CodePackage", + "id" : "acm021651jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm021647jsd" ] + }, + "acm021652jsd" : { + "type" : "ControlElement", + "id" : "acm021652jsd", + "name" : "isDuringLastDayNegativeTest" + }, + "acm021653jsd" : { + "type" : "ControlElement", + "id" : "acm021653jsd", + "name" : "isDuringLastDayPositiveTest" + }, + "acm021654jsd" : { + "type" : "ControlElement", + "id" : "acm021654jsd", + "name" : "isDuringLastWeekNegativeTest" + }, + "acm021655jsd" : { + "type" : "ControlElement", + "id" : "acm021655jsd", + "name" : "isDuringLastWeekPositiveTest" + }, + "acm021656jsd" : { + "type" : "ControlElement", + "id" : "acm021656jsd", + "name" : "isDuringLastMonthNegativeTest" + }, + "acm021657jsd" : { + "type" : "ControlElement", + "id" : "acm021657jsd", + "name" : "isDuringLastMonthPositiveTest" + }, + "acm021658jsd" : { + "type" : "ControlElement", + "id" : "acm021658jsd", + "name" : "isDuringLastYearNegativeTest" + }, + "acm021659jsd" : { + "type" : "ControlElement", + "id" : "acm021659jsd", + "name" : "isDuringLastYearPositiveTest" + }, + "acm021660jsd" : { + "type" : "ControlElement", + "id" : "acm021660jsd", + "name" : "setUp" + }, + "acm021661jsd" : { + "type" : "ControlElement", + "id" : "acm021661jsd", + "name" : "sortByDateAscendingPositiveTest" + }, + "acm021662jsd" : { + "type" : "ControlElement", + "id" : "acm021662jsd", + "name" : "sortByDateAscendingNegativeTest" + }, + "acm021663jsd" : { + "type" : "ControlElement", + "id" : "acm021663jsd", + "name" : "sortByDateDescendingPositiveTest" + }, + "acm021664jsd" : { + "type" : "ControlElement", + "id" : "acm021664jsd", + "name" : "testSortByDateDescendingNegativeTest" + }, + "acm021665jsd" : { + "type" : "ControlElement", + "id" : "acm021665jsd", + "name" : "setUp" + }, + "acm021666jsd" : { + "type" : "ClassUnit", + "id" : "acm021666jsd", + "name" : "FileFilterUtilsTest", + "compilationUnitId" : "acm021647jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004175jsd" ], + "content" : [ "acm021652jsd", "acm021653jsd", "acm021654jsd", "acm021655jsd", "acm021656jsd", "acm021657jsd", "acm021658jsd", "acm021659jsd", "acm021660jsd", "acm021661jsd", "acm021662jsd", "acm021663jsd", "acm021664jsd", "acm021665jsd" ] + }, + "acm021667jsd" : { + "type" : "ControlElement", + "id" : "acm021667jsd", + "name" : "setUp" + }, + "acm021668jsd" : { + "type" : "ControlElement", + "id" : "acm021668jsd", + "name" : "sortByDateAscendingPositiveTest" + }, + "acm021669jsd" : { + "type" : "ControlElement", + "id" : "acm021669jsd", + "name" : "sortByDateAscendingNegativeTest" + }, + "acm021670jsd" : { + "type" : "ControlElement", + "id" : "acm021670jsd", + "name" : "sortByDateDescendingPositiveTest" + }, + "acm021671jsd" : { + "type" : "ControlElement", + "id" : "acm021671jsd", + "name" : "testSortByDateDescendingNegativeTest" + }, + "acm021672jsd" : { + "type" : "ClassUnit", + "id" : "acm021672jsd", + "name" : "SortingTests", + "compilationUnitId" : "acm021647jsd", + "parentDatatypeId" : "acm021666jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021667jsd", "acm021668jsd", "acm021669jsd", "acm021670jsd", "acm021671jsd" ] + }, + "acm021673jsd" : { + "type" : "ControlElement", + "id" : "acm021673jsd", + "name" : "setUp" + }, + "acm021674jsd" : { + "type" : "ClassUnit", + "id" : "acm021674jsd", + "name" : "filteringTests", + "compilationUnitId" : "acm021647jsd", + "parentDatatypeId" : "acm021666jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021673jsd" ] + }, + "acm021675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021675jsd", + "name" : "GitIgnoreFileFilterTest", + "parentId" : "acm004070jsd", + "content" : [ "acm021684jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021676jsd" : { + "type" : "CodePackage", + "id" : "acm021676jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021677jsd" ] + }, + "acm021677jsd" : { + "type" : "CodePackage", + "id" : "acm021677jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021678jsd" ] + }, + "acm021678jsd" : { + "type" : "CodePackage", + "id" : "acm021678jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021679jsd" ] + }, + "acm021679jsd" : { + "type" : "CodePackage", + "id" : "acm021679jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm021675jsd" ] + }, + "acm021680jsd" : { + "type" : "ControlElement", + "id" : "acm021680jsd", + "name" : "checkSimpleGitIgnore" + }, + "acm021681jsd" : { + "type" : "ControlElement", + "id" : "acm021681jsd", + "name" : "checkSimpleGitIgnoreWithAllowing" + }, + "acm021682jsd" : { + "type" : "ControlElement", + "id" : "acm021682jsd", + "name" : "checkSimpleGitIgnoreWithOverwritingDefs" + }, + "acm021683jsd" : { + "type" : "ControlElement", + "id" : "acm021683jsd", + "name" : "checkDirectoryGitIgnore" + }, + "acm021684jsd" : { + "type" : "ClassUnit", + "id" : "acm021684jsd", + "name" : "GitIgnoreFileFilterTest", + "compilationUnitId" : "acm021675jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004191jsd" ], + "content" : [ "acm021680jsd", "acm021681jsd", "acm021682jsd", "acm021683jsd" ] + }, + "acm021685jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021685jsd", + "name" : "ImportHandlerTest", + "parentId" : "acm004070jsd", + "content" : [ "acm021691jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021686jsd" : { + "type" : "CodePackage", + "id" : "acm021686jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021687jsd" ] + }, + "acm021687jsd" : { + "type" : "CodePackage", + "id" : "acm021687jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021688jsd" ] + }, + "acm021688jsd" : { + "type" : "CodePackage", + "id" : "acm021688jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021689jsd" ] + }, + "acm021689jsd" : { + "type" : "CodePackage", + "id" : "acm021689jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm021685jsd" ] + }, + "acm021690jsd" : { + "type" : "ControlElement", + "id" : "acm021690jsd", + "name" : "handleBibTeXData" + }, + "acm021691jsd" : { + "type" : "ClassUnit", + "id" : "acm021691jsd", + "name" : "ImportHandlerTest", + "compilationUnitId" : "acm021685jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm004223jsd", "acm009647jsd", "acm012428jsd", "acm018022jsd", "acm018267jsd", "acm020676jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm021690jsd" ] + }, + "acm021692jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021692jsd", + "name" : "UnlinkedFilesCrawlerTest", + "parentId" : "acm004070jsd", + "content" : [ "acm021699jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiles" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021693jsd" : { + "type" : "CodePackage", + "id" : "acm021693jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021694jsd" ] + }, + "acm021694jsd" : { + "type" : "CodePackage", + "id" : "acm021694jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021695jsd" ] + }, + "acm021695jsd" : { + "type" : "CodePackage", + "id" : "acm021695jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021696jsd" ] + }, + "acm021696jsd" : { + "type" : "CodePackage", + "id" : "acm021696jsd", + "name" : "externalfiles", + "parentId" : null, + "content" : [ "acm021692jsd" ] + }, + "acm021697jsd" : { + "type" : "ControlElement", + "id" : "acm021697jsd", + "name" : "minimalGitIgnore" + }, + "acm021698jsd" : { + "type" : "ControlElement", + "id" : "acm021698jsd", + "name" : "excludingTheCurrentLibraryTest" + }, + "acm021699jsd" : { + "type" : "ClassUnit", + "id" : "acm021699jsd", + "name" : "UnlinkedFilesCrawlerTest", + "compilationUnitId" : "acm021692jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004160jsd", "acm004232jsd", "acm004290jsd", "acm009843jsd", "acm018022jsd", "acm020848jsd" ], + "content" : [ "acm021697jsd", "acm021698jsd" ] + }, + "acm021700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021700jsd", + "name" : "ExternalFileTypesTest", + "parentId" : "acm004295jsd", + "content" : [ "acm021716jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "externalfiletype" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021701jsd" : { + "type" : "CodePackage", + "id" : "acm021701jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021702jsd" ] + }, + "acm021702jsd" : { + "type" : "CodePackage", + "id" : "acm021702jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021703jsd" ] + }, + "acm021703jsd" : { + "type" : "CodePackage", + "id" : "acm021703jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021704jsd" ] + }, + "acm021704jsd" : { + "type" : "CodePackage", + "id" : "acm021704jsd", + "name" : "externalfiletype", + "parentId" : null, + "content" : [ "acm021700jsd" ] + }, + "acm021705jsd" : { + "type" : "ControlElement", + "id" : "acm021705jsd", + "name" : "setUp" + }, + "acm021706jsd" : { + "type" : "ControlElement", + "id" : "acm021706jsd", + "name" : "getExternalFileTypeByName" + }, + "acm021707jsd" : { + "type" : "ControlElement", + "id" : "acm021707jsd", + "name" : "getExternalFileTypeByExt" + }, + "acm021708jsd" : { + "type" : "ControlElement", + "id" : "acm021708jsd", + "name" : "isExternalFileTypeByExt" + }, + "acm021709jsd" : { + "type" : "ControlElement", + "id" : "acm021709jsd", + "name" : "getExternalFileTypeForName" + }, + "acm021710jsd" : { + "type" : "ControlElement", + "id" : "acm021710jsd", + "name" : "getExternalFileTypeByMimeType" + }, + "acm021711jsd" : { + "type" : "ControlElement", + "id" : "acm021711jsd", + "name" : "getExternalFileTypeByFile" + }, + "acm021712jsd" : { + "type" : "ControlElement", + "id" : "acm021712jsd", + "name" : "getExternalFileTypeByLinkedFile" + }, + "acm021713jsd" : { + "type" : "ControlElement", + "id" : "acm021713jsd", + "name" : "toStringList" + }, + "acm021714jsd" : { + "type" : "ControlElement", + "id" : "acm021714jsd", + "name" : "fromString" + }, + "acm021715jsd" : { + "type" : "ControlElement", + "id" : "acm021715jsd", + "name" : "externalFileTypetoStringArray" + }, + "acm021716jsd" : { + "type" : "ClassUnit", + "id" : "acm021716jsd", + "name" : "ExternalFileTypesTest", + "compilationUnitId" : "acm021700jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004315jsd", "acm004328jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm021705jsd", "acm021706jsd", "acm021707jsd", "acm021708jsd", "acm021709jsd", "acm021710jsd", "acm021711jsd", "acm021712jsd", "acm021713jsd", "acm021714jsd", "acm021715jsd" ] + }, + "acm021717jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021717jsd", + "name" : "LinkedFileViewModelTest", + "parentId" : "acm004375jsd", + "content" : [ "acm021739jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021718jsd" : { + "type" : "CodePackage", + "id" : "acm021718jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021719jsd" ] + }, + "acm021719jsd" : { + "type" : "CodePackage", + "id" : "acm021719jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021720jsd" ] + }, + "acm021720jsd" : { + "type" : "CodePackage", + "id" : "acm021720jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021721jsd" ] + }, + "acm021721jsd" : { + "type" : "CodePackage", + "id" : "acm021721jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm021717jsd" ] + }, + "acm021722jsd" : { + "type" : "ControlElement", + "id" : "acm021722jsd", + "name" : "setUp" + }, + "acm021723jsd" : { + "type" : "ControlElement", + "id" : "acm021723jsd", + "name" : "tearDown" + }, + "acm021724jsd" : { + "type" : "ControlElement", + "id" : "acm021724jsd", + "name" : "deleteWhenFilePathNotPresentReturnsTrue" + }, + "acm021725jsd" : { + "type" : "ControlElement", + "id" : "acm021725jsd", + "name" : "deleteWhenRemoveChosenReturnsTrueButDoesNotDeletesFile" + }, + "acm021726jsd" : { + "type" : "ControlElement", + "id" : "acm021726jsd", + "name" : "deleteWhenDeleteChosenReturnsTrueAndDeletesFile" + }, + "acm021727jsd" : { + "type" : "ControlElement", + "id" : "acm021727jsd", + "name" : "deleteMissingFileReturnsTrue" + }, + "acm021728jsd" : { + "type" : "ControlElement", + "id" : "acm021728jsd", + "name" : "deleteWhenDialogCancelledReturnsFalseAndDoesNotRemoveFile" + }, + "acm021729jsd" : { + "type" : "ControlElement", + "id" : "acm021729jsd", + "name" : "downloadHtmlFileCausesWarningDisplay" + }, + "acm021730jsd" : { + "type" : "ControlElement", + "id" : "acm021730jsd", + "name" : "downloadOfFileReplacesLink" + }, + "acm021731jsd" : { + "type" : "ControlElement", + "id" : "acm021731jsd", + "name" : "downloadDoesNotOverwriteFileTypeExtension" + }, + "acm021732jsd" : { + "type" : "ControlElement", + "id" : "acm021732jsd", + "name" : "downloadHtmlWhenLinkedFilePointsToHtml" + }, + "acm021733jsd" : { + "type" : "ControlElement", + "id" : "acm021733jsd", + "name" : "isNotSamePath" + }, + "acm021734jsd" : { + "type" : "ControlElement", + "id" : "acm021734jsd", + "name" : "isSamePath" + }, + "acm021735jsd" : { + "type" : "ControlElement", + "id" : "acm021735jsd", + "name" : "isNotSamePathWithPattern" + }, + "acm021736jsd" : { + "type" : "ControlElement", + "id" : "acm021736jsd", + "name" : "isSamePathWithPattern" + }, + "acm021737jsd" : { + "type" : "ControlElement", + "id" : "acm021737jsd", + "name" : "mimeTypeStringWithParameterIsReturnedAsWithoutParameter" + }, + "acm021738jsd" : { + "type" : "ControlElement", + "id" : "acm021738jsd", + "name" : "downloadPdfFileWhenLinkedFilePointsToPdfUrl" + }, + "acm021739jsd" : { + "type" : "ClassUnit", + "id" : "acm021739jsd", + "name" : "LinkedFileViewModelTest", + "compilationUnitId" : "acm021717jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm004328jsd", "acm004599jsd", "acm009647jsd", "acm009965jsd", "acm011720jsd", "acm015926jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm021722jsd", "acm021723jsd", "acm021724jsd", "acm021725jsd", "acm021726jsd", "acm021727jsd", "acm021728jsd", "acm021729jsd", "acm021730jsd", "acm021731jsd", "acm021732jsd", "acm021733jsd", "acm021734jsd", "acm021735jsd", "acm021736jsd", "acm021737jsd", "acm021738jsd" ] + }, + "acm021740jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021740jsd", + "name" : "LinkedFilesEditorViewModelTest", + "parentId" : "acm004375jsd", + "content" : [ "acm021746jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "fieldeditors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021741jsd" : { + "type" : "CodePackage", + "id" : "acm021741jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021742jsd" ] + }, + "acm021742jsd" : { + "type" : "CodePackage", + "id" : "acm021742jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021743jsd" ] + }, + "acm021743jsd" : { + "type" : "CodePackage", + "id" : "acm021743jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021744jsd" ] + }, + "acm021744jsd" : { + "type" : "CodePackage", + "id" : "acm021744jsd", + "name" : "fieldeditors", + "parentId" : null, + "content" : [ "acm021740jsd" ] + }, + "acm021745jsd" : { + "type" : "ControlElement", + "id" : "acm021745jsd", + "name" : "urlFieldShouldDownloadFile" + }, + "acm021746jsd" : { + "type" : "ClassUnit", + "id" : "acm021746jsd", + "name" : "LinkedFilesEditorViewModelTest", + "compilationUnitId" : "acm021740jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002261jsd", "acm004648jsd", "acm009647jsd", "acm014644jsd", "acm018022jsd", "acm018267jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm021745jsd" ] + }, + "acm021747jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021747jsd", + "name" : "GroupDialogViewModelTest", + "parentId" : "acm004964jsd", + "content" : [ "acm021758jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021748jsd" : { + "type" : "CodePackage", + "id" : "acm021748jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021749jsd" ] + }, + "acm021749jsd" : { + "type" : "CodePackage", + "id" : "acm021749jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021750jsd" ] + }, + "acm021750jsd" : { + "type" : "CodePackage", + "id" : "acm021750jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021751jsd" ] + }, + "acm021751jsd" : { + "type" : "CodePackage", + "id" : "acm021751jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm021747jsd" ] + }, + "acm021752jsd" : { + "type" : "ControlElement", + "id" : "acm021752jsd", + "name" : "setUp" + }, + "acm021753jsd" : { + "type" : "ControlElement", + "id" : "acm021753jsd", + "name" : "validateExistingAbsolutePath" + }, + "acm021754jsd" : { + "type" : "ControlElement", + "id" : "acm021754jsd", + "name" : "validateNonExistingAbsolutePath" + }, + "acm021755jsd" : { + "type" : "ControlElement", + "id" : "acm021755jsd", + "name" : "validateExistingRelativePath" + }, + "acm021756jsd" : { + "type" : "ControlElement", + "id" : "acm021756jsd", + "name" : "testHierarchicalContextFromGroup" + }, + "acm021757jsd" : { + "type" : "ControlElement", + "id" : "acm021757jsd", + "name" : "testDefaultHierarchicalContext" + }, + "acm021758jsd" : { + "type" : "ClassUnit", + "id" : "acm021758jsd", + "name" : "GroupDialogViewModelTest", + "compilationUnitId" : "acm021747jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005039jsd", "acm005211jsd", "acm018022jsd", "acm019107jsd", "acm019190jsd", "acm019421jsd", "acm020774jsd", "acm020848jsd", "acm021206jsd" ], + "content" : [ "acm021752jsd", "acm021753jsd", "acm021754jsd", "acm021755jsd", "acm021756jsd", "acm021757jsd" ] + }, + "acm021759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021759jsd", + "name" : "GroupNodeViewModelTest", + "parentId" : "acm004964jsd", + "content" : [ "acm021776jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021760jsd" : { + "type" : "CodePackage", + "id" : "acm021760jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021761jsd" ] + }, + "acm021761jsd" : { + "type" : "CodePackage", + "id" : "acm021761jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021762jsd" ] + }, + "acm021762jsd" : { + "type" : "CodePackage", + "id" : "acm021762jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021763jsd" ] + }, + "acm021763jsd" : { + "type" : "CodePackage", + "id" : "acm021763jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm021759jsd" ] + }, + "acm021764jsd" : { + "type" : "ControlElement", + "id" : "acm021764jsd", + "name" : "setUp" + }, + "acm021765jsd" : { + "type" : "ControlElement", + "id" : "acm021765jsd", + "name" : "getDisplayNameConvertsLatexToUnicode" + }, + "acm021766jsd" : { + "type" : "ControlElement", + "id" : "acm021766jsd", + "name" : "alwaysMatchedByEmptySearchString" + }, + "acm021767jsd" : { + "type" : "ControlElement", + "id" : "acm021767jsd", + "name" : "isMatchedIfContainsPartOfSearchString" + }, + "acm021768jsd" : { + "type" : "ControlElement", + "id" : "acm021768jsd", + "name" : "treeOfAutomaticKeywordGroupIsCombined" + }, + "acm021769jsd" : { + "type" : "ControlElement", + "id" : "acm021769jsd", + "name" : "draggedOnTopOfGroupAddsBeforeIt" + }, + "acm021770jsd" : { + "type" : "ControlElement", + "id" : "acm021770jsd", + "name" : "draggedOnBottomOfGroupAddsAfterIt" + }, + "acm021771jsd" : { + "type" : "ControlElement", + "id" : "acm021771jsd", + "name" : "draggedOnBottomOfGroupAddsAfterItWhenSourceGroupWasBefore" + }, + "acm021772jsd" : { + "type" : "ControlElement", + "id" : "acm021772jsd", + "name" : "draggedOnTopOfGroupAddsBeforeItWhenSourceGroupWasBefore" + }, + "acm021773jsd" : { + "type" : "ControlElement", + "id" : "acm021773jsd", + "name" : "entriesAreAddedCorrectly" + }, + "acm021774jsd" : { + "type" : "ControlElement", + "id" : "acm021774jsd", + "name" : "getViewModelForGroup" + }, + "acm021775jsd" : { + "type" : "ControlElement", + "id" : "acm021775jsd", + "name" : "getViewModelForGroup" + }, + "acm021776jsd" : { + "type" : "ClassUnit", + "id" : "acm021776jsd", + "name" : "GroupNodeViewModelTest", + "compilationUnitId" : "acm021759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd", "acm005090jsd", "acm005211jsd", "acm009647jsd", "acm009670jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm019107jsd", "acm019145jsd", "acm019171jsd", "acm019221jsd", "acm019315jsd", "acm021206jsd" ], + "content" : [ "acm021764jsd", "acm021765jsd", "acm021766jsd", "acm021767jsd", "acm021768jsd", "acm021769jsd", "acm021770jsd", "acm021771jsd", "acm021772jsd", "acm021773jsd", "acm021774jsd", "acm021775jsd" ] + }, + "acm021777jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021777jsd", + "name" : "GroupTreeViewModelTest", + "parentId" : "acm004964jsd", + "content" : [ "acm021791jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021778jsd" : { + "type" : "CodePackage", + "id" : "acm021778jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021779jsd" ] + }, + "acm021779jsd" : { + "type" : "CodePackage", + "id" : "acm021779jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021780jsd" ] + }, + "acm021780jsd" : { + "type" : "CodePackage", + "id" : "acm021780jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021781jsd" ] + }, + "acm021781jsd" : { + "type" : "CodePackage", + "id" : "acm021781jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm021777jsd" ] + }, + "acm021782jsd" : { + "type" : "ControlElement", + "id" : "acm021782jsd", + "name" : "setUp" + }, + "acm021783jsd" : { + "type" : "ControlElement", + "id" : "acm021783jsd", + "name" : "rootGroupIsAllEntriesByDefault" + }, + "acm021784jsd" : { + "type" : "ControlElement", + "id" : "acm021784jsd", + "name" : "rootGroupIsSelectedByDefault" + }, + "acm021785jsd" : { + "type" : "ControlElement", + "id" : "acm021785jsd", + "name" : "explicitGroupsAreRemovedFromEntriesOnDelete" + }, + "acm021786jsd" : { + "type" : "ControlElement", + "id" : "acm021786jsd", + "name" : "keywordGroupsAreNotRemovedFromEntriesOnDelete" + }, + "acm021787jsd" : { + "type" : "ControlElement", + "id" : "acm021787jsd", + "name" : "shouldNotShowDialogWhenGroupNameChanges" + }, + "acm021788jsd" : { + "type" : "ControlElement", + "id" : "acm021788jsd", + "name" : "shouldNotShowDialogWhenGroupsAreEqual" + }, + "acm021789jsd" : { + "type" : "ControlElement", + "id" : "acm021789jsd", + "name" : "shouldShowDialogWhenKeywordDiffers" + }, + "acm021790jsd" : { + "type" : "ControlElement", + "id" : "acm021790jsd", + "name" : "shouldShowDialogWhenCaseSensitivyDiffers" + }, + "acm021791jsd" : { + "type" : "ClassUnit", + "id" : "acm021791jsd", + "name" : "GroupTreeViewModelTest", + "compilationUnitId" : "acm021777jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005090jsd", "acm005186jsd", "acm005211jsd", "acm009647jsd", "acm009670jsd", "acm009965jsd", "acm018022jsd", "acm018267jsd", "acm019107jsd", "acm019119jsd", "acm019171jsd", "acm019315jsd", "acm021206jsd" ], + "content" : [ "acm021782jsd", "acm021783jsd", "acm021784jsd", "acm021785jsd", "acm021786jsd", "acm021787jsd", "acm021788jsd", "acm021789jsd", "acm021790jsd" ] + }, + "acm021792jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021792jsd", + "name" : "NewEntryActionTest", + "parentId" : "acm005465jsd", + "content" : [ "acm021800jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021793jsd" : { + "type" : "CodePackage", + "id" : "acm021793jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021794jsd" ] + }, + "acm021794jsd" : { + "type" : "CodePackage", + "id" : "acm021794jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021795jsd" ] + }, + "acm021795jsd" : { + "type" : "CodePackage", + "id" : "acm021795jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021796jsd" ] + }, + "acm021796jsd" : { + "type" : "CodePackage", + "id" : "acm021796jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm021792jsd" ] + }, + "acm021797jsd" : { + "type" : "ControlElement", + "id" : "acm021797jsd", + "name" : "setUp" + }, + "acm021798jsd" : { + "type" : "ControlElement", + "id" : "acm021798jsd", + "name" : "testExecuteIfNoBasePanel" + }, + "acm021799jsd" : { + "type" : "ControlElement", + "id" : "acm021799jsd", + "name" : "testExecuteOnSuccessWithFixedType" + }, + "acm021800jsd" : { + "type" : "ClassUnit", + "id" : "acm021800jsd", + "name" : "NewEntryActionTest", + "compilationUnitId" : "acm021792jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001667jsd", "acm001847jsd", "acm001965jsd", "acm002045jsd", "acm005585jsd", "acm018267jsd", "acm019005jsd", "acm021206jsd" ], + "content" : [ "acm021797jsd", "acm021798jsd", "acm021799jsd" ] + }, + "acm021801jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021801jsd", + "name" : "WebSearchPaneViewModelTest", + "parentId" : "acm005654jsd", + "content" : [ "acm021813jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021802jsd" : { + "type" : "CodePackage", + "id" : "acm021802jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021803jsd" ] + }, + "acm021803jsd" : { + "type" : "CodePackage", + "id" : "acm021803jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021804jsd" ] + }, + "acm021804jsd" : { + "type" : "CodePackage", + "id" : "acm021804jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021805jsd" ] + }, + "acm021805jsd" : { + "type" : "CodePackage", + "id" : "acm021805jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm021806jsd" ] + }, + "acm021806jsd" : { + "type" : "CodePackage", + "id" : "acm021806jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm021801jsd" ] + }, + "acm021807jsd" : { + "type" : "ControlElement", + "id" : "acm021807jsd", + "name" : "setUp" + }, + "acm021808jsd" : { + "type" : "ControlElement", + "id" : "acm021808jsd", + "name" : "queryConsistingOfASingleAndIsNotValid" + }, + "acm021809jsd" : { + "type" : "ControlElement", + "id" : "acm021809jsd", + "name" : "falseQueryValidationStatus" + }, + "acm021810jsd" : { + "type" : "ControlElement", + "id" : "acm021810jsd", + "name" : "correctQueryValidationStatus" + }, + "acm021811jsd" : { + "type" : "ControlElement", + "id" : "acm021811jsd", + "name" : "notFalseQueryValidationStatus" + }, + "acm021812jsd" : { + "type" : "ControlElement", + "id" : "acm021812jsd", + "name" : "notCorrectQueryValidationStatus" + }, + "acm021813jsd" : { + "type" : "ClassUnit", + "id" : "acm021813jsd", + "name" : "WebSearchPaneViewModelTest", + "compilationUnitId" : "acm021801jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm005688jsd", "acm021206jsd" ], + "content" : [ "acm021807jsd", "acm021808jsd", "acm021809jsd", "acm021810jsd", "acm021811jsd", "acm021812jsd" ] + }, + "acm021814jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021814jsd", + "name" : "KeyBindingsTabModelTest", + "parentId" : "acm005755jsd", + "content" : [ "acm021830jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "keyboard" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021815jsd" : { + "type" : "CodePackage", + "id" : "acm021815jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021816jsd" ] + }, + "acm021816jsd" : { + "type" : "CodePackage", + "id" : "acm021816jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021817jsd" ] + }, + "acm021817jsd" : { + "type" : "CodePackage", + "id" : "acm021817jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021818jsd" ] + }, + "acm021818jsd" : { + "type" : "CodePackage", + "id" : "acm021818jsd", + "name" : "keyboard", + "parentId" : null, + "content" : [ "acm021814jsd" ] + }, + "acm021819jsd" : { + "type" : "ControlElement", + "id" : "acm021819jsd", + "name" : "setUp" + }, + "acm021820jsd" : { + "type" : "ControlElement", + "id" : "acm021820jsd", + "name" : "testInvalidKeyBindingIsNotSaved" + }, + "acm021821jsd" : { + "type" : "ControlElement", + "id" : "acm021821jsd", + "name" : "testSpecialKeysValidKeyBindingIsSaved" + }, + "acm021822jsd" : { + "type" : "ControlElement", + "id" : "acm021822jsd", + "name" : "testKeyBindingCategory" + }, + "acm021823jsd" : { + "type" : "ControlElement", + "id" : "acm021823jsd", + "name" : "testRandomNewKeyKeyBindingInRepository" + }, + "acm021824jsd" : { + "type" : "ControlElement", + "id" : "acm021824jsd", + "name" : "testSaveNewKeyBindingsToPreferences" + }, + "acm021825jsd" : { + "type" : "ControlElement", + "id" : "acm021825jsd", + "name" : "testSaveNewSpecialKeysKeyBindingsToPreferences" + }, + "acm021826jsd" : { + "type" : "ControlElement", + "id" : "acm021826jsd", + "name" : "testSetAllKeyBindingsToDefault" + }, + "acm021827jsd" : { + "type" : "ControlElement", + "id" : "acm021827jsd", + "name" : "testCloseEntryEditorCloseEntryKeybinding" + }, + "acm021828jsd" : { + "type" : "ControlElement", + "id" : "acm021828jsd", + "name" : "testSetSingleKeyBindingToDefault" + }, + "acm021829jsd" : { + "type" : "ControlElement", + "id" : "acm021829jsd", + "name" : "setKeyBindingViewModel" + }, + "acm021830jsd" : { + "type" : "ClassUnit", + "id" : "acm021830jsd", + "name" : "KeyBindingsTabModelTest", + "compilationUnitId" : "acm021814jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005768jsd", "acm005802jsd", "acm008079jsd", "acm008108jsd", "acm021206jsd" ], + "content" : [ "acm021819jsd", "acm021820jsd", "acm021821jsd", "acm021822jsd", "acm021823jsd", "acm021824jsd", "acm021825jsd", "acm021826jsd", "acm021827jsd", "acm021828jsd", "acm021829jsd" ] + }, + "acm021831jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021831jsd", + "name" : "ContentSelectorViewModelTest", + "parentId" : "acm005920jsd", + "content" : [ "acm021850jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "libraryproperties", "contentselectors" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021832jsd" : { + "type" : "CodePackage", + "id" : "acm021832jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021833jsd" ] + }, + "acm021833jsd" : { + "type" : "CodePackage", + "id" : "acm021833jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021834jsd" ] + }, + "acm021834jsd" : { + "type" : "CodePackage", + "id" : "acm021834jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021835jsd" ] + }, + "acm021835jsd" : { + "type" : "CodePackage", + "id" : "acm021835jsd", + "name" : "libraryproperties", + "parentId" : null, + "content" : [ "acm021836jsd" ] + }, + "acm021836jsd" : { + "type" : "CodePackage", + "id" : "acm021836jsd", + "name" : "contentselectors", + "parentId" : null, + "content" : [ "acm021831jsd" ] + }, + "acm021837jsd" : { + "type" : "ControlElement", + "id" : "acm021837jsd", + "name" : "setUp" + }, + "acm021838jsd" : { + "type" : "ControlElement", + "id" : "acm021838jsd", + "name" : "initHasDefaultFieldNames" + }, + "acm021839jsd" : { + "type" : "ControlElement", + "id" : "acm021839jsd", + "name" : "addsNewKeyword" + }, + "acm021840jsd" : { + "type" : "ControlElement", + "id" : "acm021840jsd", + "name" : "addsKeywordOnlyIfUnique" + }, + "acm021841jsd" : { + "type" : "ControlElement", + "id" : "acm021841jsd", + "name" : "removesKeyword" + }, + "acm021842jsd" : { + "type" : "ControlElement", + "id" : "acm021842jsd", + "name" : "addsNewField" + }, + "acm021843jsd" : { + "type" : "ControlElement", + "id" : "acm021843jsd", + "name" : "removesField" + }, + "acm021844jsd" : { + "type" : "ControlElement", + "id" : "acm021844jsd", + "name" : "displaysKeywordsInAlphabeticalOrder" + }, + "acm021845jsd" : { + "type" : "ControlElement", + "id" : "acm021845jsd", + "name" : "savingPersistsDataInDatabase" + }, + "acm021846jsd" : { + "type" : "ControlElement", + "id" : "acm021846jsd", + "name" : "addKeyword" + }, + "acm021847jsd" : { + "type" : "ControlElement", + "id" : "acm021847jsd", + "name" : "removeKeyword" + }, + "acm021848jsd" : { + "type" : "ControlElement", + "id" : "acm021848jsd", + "name" : "addField" + }, + "acm021849jsd" : { + "type" : "ControlElement", + "id" : "acm021849jsd", + "name" : "removeField" + }, + "acm021850jsd" : { + "type" : "ClassUnit", + "id" : "acm021850jsd", + "name" : "ContentSelectorViewModelTest", + "compilationUnitId" : "acm021831jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005963jsd", "acm018022jsd", "acm018673jsd", "acm018798jsd", "acm018813jsd" ], + "content" : [ "acm021837jsd", "acm021838jsd", "acm021839jsd", "acm021840jsd", "acm021841jsd", "acm021842jsd", "acm021843jsd", "acm021844jsd", "acm021845jsd", "acm021846jsd", "acm021847jsd", "acm021848jsd", "acm021849jsd" ] + }, + "acm021851jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021851jsd", + "name" : "MainTableColumnModelTest", + "parentId" : "acm006144jsd", + "content" : [ "acm021862jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "maintable" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021852jsd" : { + "type" : "CodePackage", + "id" : "acm021852jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021853jsd" ] + }, + "acm021853jsd" : { + "type" : "CodePackage", + "id" : "acm021853jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021854jsd" ] + }, + "acm021854jsd" : { + "type" : "CodePackage", + "id" : "acm021854jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021855jsd" ] + }, + "acm021855jsd" : { + "type" : "CodePackage", + "id" : "acm021855jsd", + "name" : "maintable", + "parentId" : null, + "content" : [ "acm021851jsd" ] + }, + "acm021856jsd" : { + "type" : "ControlElement", + "id" : "acm021856jsd", + "name" : "mainTableColumnModelParserRetrievesCorrectType" + }, + "acm021857jsd" : { + "type" : "ControlElement", + "id" : "acm021857jsd", + "name" : "mainTableColumnModelParserRetrievesCorrectQualifier" + }, + "acm021858jsd" : { + "type" : "ControlElement", + "id" : "acm021858jsd", + "name" : "fullMainTableColumnModelParserRetrievesCorrectType" + }, + "acm021859jsd" : { + "type" : "ControlElement", + "id" : "acm021859jsd", + "name" : "fullMainTableColumnModelParserRetrievesCorrectQualifier" + }, + "acm021860jsd" : { + "type" : "ControlElement", + "id" : "acm021860jsd", + "name" : "typeOnlyMainTableColumnModelParserRetrievesCorrectType" + }, + "acm021861jsd" : { + "type" : "ControlElement", + "id" : "acm021861jsd", + "name" : "typeOnlyMainTableColumnModelParserRetrievesCorrectQualifier" + }, + "acm021862jsd" : { + "type" : "ClassUnit", + "id" : "acm021862jsd", + "name" : "MainTableColumnModelTest", + "compilationUnitId" : "acm021851jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006250jsd", "acm006256jsd" ], + "content" : [ "acm021856jsd", "acm021857jsd", "acm021858jsd", "acm021859jsd", "acm021860jsd", "acm021861jsd" ] + }, + "acm021863jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021863jsd", + "name" : "DiffHighlightingTest", + "parentId" : "acm006498jsd", + "content" : [ "acm021882jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021864jsd" : { + "type" : "CodePackage", + "id" : "acm021864jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021865jsd" ] + }, + "acm021865jsd" : { + "type" : "CodePackage", + "id" : "acm021865jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021866jsd" ] + }, + "acm021866jsd" : { + "type" : "CodePackage", + "id" : "acm021866jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021867jsd" ] + }, + "acm021867jsd" : { + "type" : "CodePackage", + "id" : "acm021867jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm021863jsd" ] + }, + "acm021868jsd" : { + "type" : "ControlElement", + "id" : "acm021868jsd", + "name" : "assertEquals" + }, + "acm021869jsd" : { + "type" : "ControlElement", + "id" : "acm021869jsd", + "name" : "testGenerateDiffHighlightingBothNullThrowsNPE" + }, + "acm021870jsd" : { + "type" : "ControlElement", + "id" : "acm021870jsd", + "name" : "testNullSeparatorThrowsNPE" + }, + "acm021871jsd" : { + "type" : "ControlElement", + "id" : "acm021871jsd", + "name" : "testGenerateDiffHighlightingNoDiff" + }, + "acm021872jsd" : { + "type" : "ControlElement", + "id" : "acm021872jsd", + "name" : "testGenerateDiffHighlightingSingleWordAddTextWordDiff" + }, + "acm021873jsd" : { + "type" : "ControlElement", + "id" : "acm021873jsd", + "name" : "testGenerateDiffHighlightingSingleWordAddTextCharacterDiff" + }, + "acm021874jsd" : { + "type" : "ControlElement", + "id" : "acm021874jsd", + "name" : "testGenerateDiffHighlightingSingleWordDeleteTextWordDiff" + }, + "acm021875jsd" : { + "type" : "ControlElement", + "id" : "acm021875jsd", + "name" : "testGenerateDiffHighlightingSingleWordDeleteTextCharacterDiff" + }, + "acm021876jsd" : { + "type" : "ControlElement", + "id" : "acm021876jsd", + "name" : "generateSymmetricHighlightingSingleWordAddTextWordDiff" + }, + "acm021877jsd" : { + "type" : "ControlElement", + "id" : "acm021877jsd", + "name" : "generateSymmetricHighlightingSingleWordAddTextCharacterDiff" + }, + "acm021878jsd" : { + "type" : "ControlElement", + "id" : "acm021878jsd", + "name" : "generateSymmetricHighlightingSingleWordDeleteTextWordDiff" + }, + "acm021879jsd" : { + "type" : "ControlElement", + "id" : "acm021879jsd", + "name" : "generateSymmetricHighlightingSingleWordDeleteTextCharacterDiff" + }, + "acm021880jsd" : { + "type" : "ControlElement", + "id" : "acm021880jsd", + "name" : "generateSymmetricHighlightingMultipleWordsDeleteTextCharacterDiff" + }, + "acm021881jsd" : { + "type" : "ControlElement", + "id" : "acm021881jsd", + "name" : "generateSymmetricHighlightingMultipleWordsDeleteTextWordDiff" + }, + "acm021882jsd" : { + "type" : "ClassUnit", + "id" : "acm021882jsd", + "name" : "DiffHighlightingTest", + "compilationUnitId" : "acm021863jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021868jsd", "acm021869jsd", "acm021870jsd", "acm021871jsd", "acm021872jsd", "acm021873jsd", "acm021874jsd", "acm021875jsd", "acm021876jsd", "acm021877jsd", "acm021878jsd", "acm021879jsd", "acm021880jsd", "acm021881jsd" ] + }, + "acm021883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021883jsd", + "name" : "FieldRowViewModelTest", + "parentId" : "acm006498jsd", + "content" : [ "acm021905jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021884jsd" : { + "type" : "CodePackage", + "id" : "acm021884jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021885jsd" ] + }, + "acm021885jsd" : { + "type" : "CodePackage", + "id" : "acm021885jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021886jsd" ] + }, + "acm021886jsd" : { + "type" : "CodePackage", + "id" : "acm021886jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021887jsd" ] + }, + "acm021887jsd" : { + "type" : "CodePackage", + "id" : "acm021887jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm021883jsd" ] + }, + "acm021888jsd" : { + "type" : "ControlElement", + "id" : "acm021888jsd", + "name" : "setup" + }, + "acm021889jsd" : { + "type" : "ControlElement", + "id" : "acm021889jsd", + "name" : "selectNonEmptyValueShouldSelectLeftFieldValueIfItIsNotEmpty" + }, + "acm021890jsd" : { + "type" : "ControlElement", + "id" : "acm021890jsd", + "name" : "selectNonEmptyValueShouldSelectRightFieldValueIfLeftValueIsEmpty" + }, + "acm021891jsd" : { + "type" : "ControlElement", + "id" : "acm021891jsd", + "name" : "hasEqualLeftAndRightValuesShouldReturnFalseIfOneOfTheValuesIsEmpty" + }, + "acm021892jsd" : { + "type" : "ControlElement", + "id" : "acm021892jsd", + "name" : "hasEqualLeftAndRightValuesShouldReturnTrueIfLeftAndRightAreEqual" + }, + "acm021893jsd" : { + "type" : "ControlElement", + "id" : "acm021893jsd", + "name" : "hasEqualLeftAndRightValuesShouldReturnTrueIfKeywordsAreEqual" + }, + "acm021894jsd" : { + "type" : "ControlElement", + "id" : "acm021894jsd", + "name" : "selectLeftValueShouldBeCorrect" + }, + "acm021895jsd" : { + "type" : "ControlElement", + "id" : "acm021895jsd", + "name" : "selectRightValueShouldBeCorrect" + }, + "acm021896jsd" : { + "type" : "ControlElement", + "id" : "acm021896jsd", + "name" : "isFieldsMergedShouldReturnTrueIfLeftAndRightValuesAreEqual" + }, + "acm021897jsd" : { + "type" : "ControlElement", + "id" : "acm021897jsd", + "name" : "isFieldsMergedShouldReturnFalseIfLeftAndRightValuesAreNotEqual" + }, + "acm021898jsd" : { + "type" : "ControlElement", + "id" : "acm021898jsd", + "name" : "mergeFieldsShouldResultInLeftAndRightValuesBeingEqual" + }, + "acm021899jsd" : { + "type" : "ControlElement", + "id" : "acm021899jsd", + "name" : "mergeFieldsShouldBeCorrectEvenWhenOnOfTheValuesIsEmpty" + }, + "acm021900jsd" : { + "type" : "ControlElement", + "id" : "acm021900jsd", + "name" : "mergeFieldsShouldThrowUnsupportedOperationExceptionIfTheGivenFieldCanBeMerged" + }, + "acm021901jsd" : { + "type" : "ControlElement", + "id" : "acm021901jsd", + "name" : "mergeFieldsShouldSelectLeftFieldValue" + }, + "acm021902jsd" : { + "type" : "ControlElement", + "id" : "acm021902jsd", + "name" : "unmergeFieldsShouldBeCorrect" + }, + "acm021903jsd" : { + "type" : "ControlElement", + "id" : "acm021903jsd", + "name" : "unmergeFieldsShouldDoNothingIfFieldsAreNotMerged" + }, + "acm021904jsd" : { + "type" : "ControlElement", + "id" : "acm021904jsd", + "name" : "createViewModelForField" + }, + "acm021905jsd" : { + "type" : "ClassUnit", + "id" : "acm021905jsd", + "name" : "FieldRowViewModelTest", + "compilationUnitId" : "acm021883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006709jsd", "acm007041jsd", "acm018267jsd", "acm018673jsd", "acm020774jsd" ], + "content" : [ "acm021888jsd", "acm021889jsd", "acm021890jsd", "acm021891jsd", "acm021892jsd", "acm021893jsd", "acm021894jsd", "acm021895jsd", "acm021896jsd", "acm021897jsd", "acm021898jsd", "acm021899jsd", "acm021900jsd", "acm021901jsd", "acm021902jsd", "acm021903jsd", "acm021904jsd" ] + }, + "acm021906jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021906jsd", + "name" : "GroupMergerTest", + "parentId" : "acm006498jsd", + "content" : [ "acm021914jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021907jsd" : { + "type" : "CodePackage", + "id" : "acm021907jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021908jsd" ] + }, + "acm021908jsd" : { + "type" : "CodePackage", + "id" : "acm021908jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021909jsd" ] + }, + "acm021909jsd" : { + "type" : "CodePackage", + "id" : "acm021909jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021910jsd" ] + }, + "acm021910jsd" : { + "type" : "CodePackage", + "id" : "acm021910jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm021906jsd" ] + }, + "acm021911jsd" : { + "type" : "ControlElement", + "id" : "acm021911jsd", + "name" : "setup" + }, + "acm021912jsd" : { + "type" : "ControlElement", + "id" : "acm021912jsd", + "name" : "mergeShouldMergeGroupsCorrectly" + }, + "acm021913jsd" : { + "type" : "ControlElement", + "id" : "acm021913jsd", + "name" : "mergeShouldMergeGroupsCorrectly" + }, + "acm021914jsd" : { + "type" : "ClassUnit", + "id" : "acm021914jsd", + "name" : "GroupMergerTest", + "compilationUnitId" : "acm021906jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007059jsd" ], + "content" : [ "acm021911jsd", "acm021912jsd", "acm021913jsd" ] + }, + "acm021915jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021915jsd", + "name" : "ThreeWayMergeCellViewModelTest", + "parentId" : "acm006498jsd", + "content" : [ "acm021929jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021916jsd" : { + "type" : "CodePackage", + "id" : "acm021916jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021917jsd" ] + }, + "acm021917jsd" : { + "type" : "CodePackage", + "id" : "acm021917jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021918jsd" ] + }, + "acm021918jsd" : { + "type" : "CodePackage", + "id" : "acm021918jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021919jsd" ] + }, + "acm021919jsd" : { + "type" : "CodePackage", + "id" : "acm021919jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm021915jsd" ] + }, + "acm021920jsd" : { + "type" : "ControlElement", + "id" : "acm021920jsd", + "name" : "setup" + }, + "acm021921jsd" : { + "type" : "ControlElement", + "id" : "acm021921jsd", + "name" : "testOddEvenLogic" + }, + "acm021922jsd" : { + "type" : "ControlElement", + "id" : "acm021922jsd", + "name" : "isEvenShouldReturnTrueIfRowIndexIsEven" + }, + "acm021923jsd" : { + "type" : "ControlElement", + "id" : "acm021923jsd", + "name" : "isOddShouldReturnTrueIfRowIndexIsOdd" + }, + "acm021924jsd" : { + "type" : "ControlElement", + "id" : "acm021924jsd", + "name" : "getTextAndSetTextShouldBeConsistent" + }, + "acm021925jsd" : { + "type" : "ControlElement", + "id" : "acm021925jsd", + "name" : "testOddEvenLogic" + }, + "acm021926jsd" : { + "type" : "ControlElement", + "id" : "acm021926jsd", + "name" : "isEvenShouldReturnTrueIfRowIndexIsEven" + }, + "acm021927jsd" : { + "type" : "ControlElement", + "id" : "acm021927jsd", + "name" : "isOddShouldReturnTrueIfRowIndexIsOdd" + }, + "acm021928jsd" : { + "type" : "ControlElement", + "id" : "acm021928jsd", + "name" : "getTextAndSetTextShouldBeConsistent" + }, + "acm021929jsd" : { + "type" : "ClassUnit", + "id" : "acm021929jsd", + "name" : "ThreeWayMergeCellViewModelTest", + "compilationUnitId" : "acm021915jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006924jsd" ], + "content" : [ "acm021920jsd", "acm021921jsd", "acm021922jsd", "acm021923jsd", "acm021924jsd", "acm021925jsd", "acm021926jsd", "acm021927jsd", "acm021928jsd" ] + }, + "acm021930jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021930jsd", + "name" : "ThreeWayMergeViewModelTest", + "parentId" : "acm006498jsd", + "content" : [ "acm021942jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "mergeentries" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021931jsd" : { + "type" : "CodePackage", + "id" : "acm021931jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021932jsd" ] + }, + "acm021932jsd" : { + "type" : "CodePackage", + "id" : "acm021932jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021933jsd" ] + }, + "acm021933jsd" : { + "type" : "CodePackage", + "id" : "acm021933jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021934jsd" ] + }, + "acm021934jsd" : { + "type" : "CodePackage", + "id" : "acm021934jsd", + "name" : "mergeentries", + "parentId" : null, + "content" : [ "acm021930jsd" ] + }, + "acm021935jsd" : { + "type" : "ControlElement", + "id" : "acm021935jsd", + "name" : "setup" + }, + "acm021936jsd" : { + "type" : "ControlElement", + "id" : "acm021936jsd", + "name" : "getVisibleFieldsShouldReturnASortedListOfFieldsWithEntryTypeAtTheHeadOfTheList" + }, + "acm021937jsd" : { + "type" : "ControlElement", + "id" : "acm021937jsd", + "name" : "getVisibleFieldsShouldNotHaveDuplicates" + }, + "acm021938jsd" : { + "type" : "ControlElement", + "id" : "acm021938jsd", + "name" : "getVisibleFieldsShouldHaveEntryTypeFieldAtTheHeadOfTheList" + }, + "acm021939jsd" : { + "type" : "ControlElement", + "id" : "acm021939jsd", + "name" : "getVisibleFieldsShouldContainAllNonInternalFieldsInRightAndLeftEntry" + }, + "acm021940jsd" : { + "type" : "ControlElement", + "id" : "acm021940jsd", + "name" : "getVisibleFieldsShouldIncludeCustomFields" + }, + "acm021941jsd" : { + "type" : "ControlElement", + "id" : "acm021941jsd", + "name" : "isNotInternalField" + }, + "acm021942jsd" : { + "type" : "ClassUnit", + "id" : "acm021942jsd", + "name" : "ThreeWayMergeViewModelTest", + "compilationUnitId" : "acm021930jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006797jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm021935jsd", "acm021936jsd", "acm021937jsd", "acm021938jsd", "acm021939jsd", "acm021940jsd", "acm021941jsd" ] + }, + "acm021943jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021943jsd", + "name" : "AbbreviationViewModelTest", + "parentId" : "acm007966jsd", + "content" : [ "acm021953jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021944jsd" : { + "type" : "CodePackage", + "id" : "acm021944jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021945jsd" ] + }, + "acm021945jsd" : { + "type" : "CodePackage", + "id" : "acm021945jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021946jsd" ] + }, + "acm021946jsd" : { + "type" : "CodePackage", + "id" : "acm021946jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021947jsd" ] + }, + "acm021947jsd" : { + "type" : "CodePackage", + "id" : "acm021947jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021948jsd" ] + }, + "acm021948jsd" : { + "type" : "CodePackage", + "id" : "acm021948jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm021943jsd" ] + }, + "acm021949jsd" : { + "type" : "ControlElement", + "id" : "acm021949jsd", + "name" : "containsCaseIndependentContains" + }, + "acm021950jsd" : { + "type" : "ControlElement", + "id" : "acm021950jsd", + "name" : "provideContainsCaseIndependentContains" + }, + "acm021951jsd" : { + "type" : "ControlElement", + "id" : "acm021951jsd", + "name" : "containsCaseIndependentDoesNotContain" + }, + "acm021952jsd" : { + "type" : "ControlElement", + "id" : "acm021952jsd", + "name" : "provideContainsCaseIndependentDoesNotContain" + }, + "acm021953jsd" : { + "type" : "ClassUnit", + "id" : "acm021953jsd", + "name" : "AbbreviationViewModelTest", + "compilationUnitId" : "acm021943jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm007983jsd" ], + "content" : [ "acm021949jsd", "acm021950jsd", "acm021951jsd", "acm021952jsd" ] + }, + "acm021954jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021954jsd", + "name" : "JournalAbbreviationsViewModelTabTest", + "parentId" : "acm007966jsd", + "content" : [ "acm021993jsd", "acm021998jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "preferences", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm021955jsd" : { + "type" : "CodePackage", + "id" : "acm021955jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm021956jsd" ] + }, + "acm021956jsd" : { + "type" : "CodePackage", + "id" : "acm021956jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm021957jsd" ] + }, + "acm021957jsd" : { + "type" : "CodePackage", + "id" : "acm021957jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm021958jsd" ] + }, + "acm021958jsd" : { + "type" : "CodePackage", + "id" : "acm021958jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm021959jsd" ] + }, + "acm021959jsd" : { + "type" : "CodePackage", + "id" : "acm021959jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm021954jsd" ] + }, + "acm021960jsd" : { + "type" : "ControlElement", + "id" : "acm021960jsd", + "name" : "TestAbbreviation" + }, + "acm021961jsd" : { + "type" : "ControlElement", + "id" : "acm021961jsd", + "name" : "TestAbbreviation" + }, + "acm021962jsd" : { + "type" : "ControlElement", + "id" : "acm021962jsd", + "name" : "TestAbbreviation" + }, + "acm021963jsd" : { + "type" : "ControlElement", + "id" : "acm021963jsd", + "name" : "toString" + }, + "acm021964jsd" : { + "type" : "ControlElement", + "id" : "acm021964jsd", + "name" : "csvListOfAbbreviations" + }, + "acm021965jsd" : { + "type" : "ControlElement", + "id" : "acm021965jsd", + "name" : "csvListOfAbbreviations" + }, + "acm021966jsd" : { + "type" : "ControlElement", + "id" : "acm021966jsd", + "name" : "CsvFileNameAndContent" + }, + "acm021967jsd" : { + "type" : "ControlElement", + "id" : "acm021967jsd", + "name" : "TestData" + }, + "acm021968jsd" : { + "type" : "ControlElement", + "id" : "acm021968jsd", + "name" : "provideTestFiles" + }, + "acm021969jsd" : { + "type" : "ControlElement", + "id" : "acm021969jsd", + "name" : "setUpViewModel" + }, + "acm021970jsd" : { + "type" : "ControlElement", + "id" : "acm021970jsd", + "name" : "testInitialHasNoFilesAndNoAbbreviations" + }, + "acm021971jsd" : { + "type" : "ControlElement", + "id" : "acm021971jsd", + "name" : "testInitialWithSavedFilesIncrementsFilesCounter" + }, + "acm021972jsd" : { + "type" : "ControlElement", + "id" : "acm021972jsd", + "name" : "testRemoveDuplicatesWhenReadingFiles" + }, + "acm021973jsd" : { + "type" : "ControlElement", + "id" : "acm021973jsd", + "name" : "addFileIncreasesCounterOfOpenFilesAndHasNoAbbreviations" + }, + "acm021974jsd" : { + "type" : "ControlElement", + "id" : "acm021974jsd", + "name" : "addDuplicatedFileResultsInErrorDialog" + }, + "acm021975jsd" : { + "type" : "ControlElement", + "id" : "acm021975jsd", + "name" : "testOpenDuplicatedFileResultsInAnException" + }, + "acm021976jsd" : { + "type" : "ControlElement", + "id" : "acm021976jsd", + "name" : "testSelectLastJournalFileSwitchesFilesAndTheirAbbreviations" + }, + "acm021977jsd" : { + "type" : "ControlElement", + "id" : "acm021977jsd", + "name" : "testOpenValidFileContainsTheSpecificEntryAndEnoughAbbreviations" + }, + "acm021978jsd" : { + "type" : "ControlElement", + "id" : "acm021978jsd", + "name" : "testRemoveLastListSetsCurrentFileAndCurrentAbbreviationToNull" + }, + "acm021979jsd" : { + "type" : "ControlElement", + "id" : "acm021979jsd", + "name" : "testMixedFileUsage" + }, + "acm021980jsd" : { + "type" : "ControlElement", + "id" : "acm021980jsd", + "name" : "testBuiltInListsIncludeAllBuiltInAbbreviations" + }, + "acm021981jsd" : { + "type" : "ControlElement", + "id" : "acm021981jsd", + "name" : "testCurrentFilePropertyChangeActiveFile" + }, + "acm021982jsd" : { + "type" : "ControlElement", + "id" : "acm021982jsd", + "name" : "testAddAbbreviationIncludesAbbreviationsInAbbreviationList" + }, + "acm021983jsd" : { + "type" : "ControlElement", + "id" : "acm021983jsd", + "name" : "testAddDuplicatedAbbreviationResultsInException" + }, + "acm021984jsd" : { + "type" : "ControlElement", + "id" : "acm021984jsd", + "name" : "testEditSameAbbreviationWithNoChangeDoesNotResultInException" + }, + "acm021985jsd" : { + "type" : "ControlElement", + "id" : "acm021985jsd", + "name" : "testEditAbbreviationIncludesNewAbbreviationInAbbreviationsList" + }, + "acm021986jsd" : { + "type" : "ControlElement", + "id" : "acm021986jsd", + "name" : "testEditAbbreviationToExistingOneResultsInException" + }, + "acm021987jsd" : { + "type" : "ControlElement", + "id" : "acm021987jsd", + "name" : "testEditAbbreviationToEmptyNameResultsInException" + }, + "acm021988jsd" : { + "type" : "ControlElement", + "id" : "acm021988jsd", + "name" : "testEditAbbreviationToEmptyAbbreviationResultsInException" + }, + "acm021989jsd" : { + "type" : "ControlElement", + "id" : "acm021989jsd", + "name" : "testSaveAbbreviationsToFilesCreatesNewFilesWithWrittenAbbreviations" + }, + "acm021990jsd" : { + "type" : "ControlElement", + "id" : "acm021990jsd", + "name" : "selectLastAbbreviation" + }, + "acm021991jsd" : { + "type" : "ControlElement", + "id" : "acm021991jsd", + "name" : "addFourTestFileToViewModelAndPreferences" + }, + "acm021992jsd" : { + "type" : "ControlElement", + "id" : "acm021992jsd", + "name" : "createTestFile" + }, + "acm021993jsd" : { + "type" : "ClassUnit", + "id" : "acm021993jsd", + "name" : "JournalAbbreviationsViewModelTabTest", + "compilationUnitId" : "acm021954jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001403jsd", "acm001424jsd", "acm001640jsd", "acm007983jsd", "acm008001jsd", "acm008057jsd", "acm009647jsd", "acm009965jsd", "acm021998jsd" ], + "content" : [ "acm021960jsd", "acm021961jsd", "acm021962jsd", "acm021963jsd", "acm021964jsd", "acm021965jsd", "acm021966jsd", "acm021967jsd", "acm021968jsd", "acm021969jsd", "acm021970jsd", "acm021971jsd", "acm021972jsd", "acm021973jsd", "acm021974jsd", "acm021975jsd", "acm021976jsd", "acm021977jsd", "acm021978jsd", "acm021979jsd", "acm021980jsd", "acm021981jsd", "acm021982jsd", "acm021983jsd", "acm021984jsd", "acm021985jsd", "acm021986jsd", "acm021987jsd", "acm021988jsd", "acm021989jsd", "acm021990jsd", "acm021991jsd", "acm021992jsd" ] + }, + "acm021994jsd" : { + "type" : "ControlElement", + "id" : "acm021994jsd", + "name" : "TestAbbreviation" + }, + "acm021995jsd" : { + "type" : "ControlElement", + "id" : "acm021995jsd", + "name" : "TestAbbreviation" + }, + "acm021996jsd" : { + "type" : "ControlElement", + "id" : "acm021996jsd", + "name" : "TestAbbreviation" + }, + "acm021997jsd" : { + "type" : "ControlElement", + "id" : "acm021997jsd", + "name" : "toString" + }, + "acm021998jsd" : { + "type" : "ClassUnit", + "id" : "acm021998jsd", + "name" : "TestAbbreviation", + "compilationUnitId" : "acm021954jsd", + "parentDatatypeId" : "acm021993jsd", + "extendedDataTypesIds" : [ "acm001355jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm021994jsd", "acm021995jsd", "acm021996jsd", "acm021997jsd" ] + }, + "acm021999jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm021999jsd", + "name" : "KeyBindingViewModelTest", + "parentId" : "acm008063jsd", + "content" : [ "acm022006jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "preferences", "keybindings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022000jsd" : { + "type" : "CodePackage", + "id" : "acm022000jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022001jsd" ] + }, + "acm022001jsd" : { + "type" : "CodePackage", + "id" : "acm022001jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022002jsd" ] + }, + "acm022002jsd" : { + "type" : "CodePackage", + "id" : "acm022002jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022003jsd" ] + }, + "acm022003jsd" : { + "type" : "CodePackage", + "id" : "acm022003jsd", + "name" : "preferences", + "parentId" : null, + "content" : [ "acm022004jsd" ] + }, + "acm022004jsd" : { + "type" : "CodePackage", + "id" : "acm022004jsd", + "name" : "keybindings", + "parentId" : null, + "content" : [ "acm021999jsd" ] + }, + "acm022005jsd" : { + "type" : "ControlElement", + "id" : "acm022005jsd", + "name" : "resetToDefault" + }, + "acm022006jsd" : { + "type" : "ClassUnit", + "id" : "acm022006jsd", + "name" : "KeyBindingViewModelTest", + "compilationUnitId" : "acm021999jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm005768jsd", "acm005802jsd", "acm008079jsd", "acm008108jsd", "acm021206jsd" ], + "content" : [ "acm022005jsd" ] + }, + "acm022007jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022007jsd", + "name" : "CopyCitationActionTest", + "parentId" : "acm008498jsd", + "content" : [ "acm022016jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "preview" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022008jsd" : { + "type" : "CodePackage", + "id" : "acm022008jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022009jsd" ] + }, + "acm022009jsd" : { + "type" : "CodePackage", + "id" : "acm022009jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022010jsd" ] + }, + "acm022010jsd" : { + "type" : "CodePackage", + "id" : "acm022010jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022011jsd" ] + }, + "acm022011jsd" : { + "type" : "CodePackage", + "id" : "acm022011jsd", + "name" : "preview", + "parentId" : null, + "content" : [ "acm022007jsd" ] + }, + "acm022012jsd" : { + "type" : "ControlElement", + "id" : "acm022012jsd", + "name" : "processPreviewText" + }, + "acm022013jsd" : { + "type" : "ControlElement", + "id" : "acm022013jsd", + "name" : "processPreviewHtml" + }, + "acm022014jsd" : { + "type" : "ControlElement", + "id" : "acm022014jsd", + "name" : "processText" + }, + "acm022015jsd" : { + "type" : "ControlElement", + "id" : "acm022015jsd", + "name" : "processHtmlAsHtml" + }, + "acm022016jsd" : { + "type" : "ClassUnit", + "id" : "acm022016jsd", + "name" : "CopyCitationActionTest", + "compilationUnitId" : "acm022007jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022012jsd", "acm022013jsd", "acm022014jsd", "acm022015jsd" ] + }, + "acm022017jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022017jsd", + "name" : "ContainsAndRegexBasedSearchRuleDescriberTest", + "parentId" : "acm008712jsd", + "content" : [ "acm022028jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022018jsd" : { + "type" : "CodePackage", + "id" : "acm022018jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022019jsd" ] + }, + "acm022019jsd" : { + "type" : "CodePackage", + "id" : "acm022019jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022020jsd" ] + }, + "acm022020jsd" : { + "type" : "CodePackage", + "id" : "acm022020jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022021jsd" ] + }, + "acm022021jsd" : { + "type" : "CodePackage", + "id" : "acm022021jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm022017jsd" ] + }, + "acm022022jsd" : { + "type" : "ControlElement", + "id" : "acm022022jsd", + "name" : "onStart" + }, + "acm022023jsd" : { + "type" : "ControlElement", + "id" : "acm022023jsd", + "name" : "testSimpleTerm" + }, + "acm022024jsd" : { + "type" : "ControlElement", + "id" : "acm022024jsd", + "name" : "testNoAst" + }, + "acm022025jsd" : { + "type" : "ControlElement", + "id" : "acm022025jsd", + "name" : "testNoAstRegex" + }, + "acm022026jsd" : { + "type" : "ControlElement", + "id" : "acm022026jsd", + "name" : "testNoAstRegexCaseSensitive" + }, + "acm022027jsd" : { + "type" : "ControlElement", + "id" : "acm022027jsd", + "name" : "testNoAstCaseSensitive" + }, + "acm022028jsd" : { + "type" : "ClassUnit", + "id" : "acm022028jsd", + "name" : "ContainsAndRegexBasedSearchRuleDescriberTest", + "compilationUnitId" : "acm022017jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008824jsd", "acm020473jsd" ], + "content" : [ "acm022022jsd", "acm022023jsd", "acm022024jsd", "acm022025jsd", "acm022026jsd", "acm022027jsd" ] + }, + "acm022029jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022029jsd", + "name" : "GetLastSearchHistoryTest", + "parentId" : "acm008712jsd", + "content" : [ "acm022038jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022030jsd" : { + "type" : "CodePackage", + "id" : "acm022030jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022031jsd" ] + }, + "acm022031jsd" : { + "type" : "CodePackage", + "id" : "acm022031jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022032jsd" ] + }, + "acm022032jsd" : { + "type" : "CodePackage", + "id" : "acm022032jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022033jsd" ] + }, + "acm022033jsd" : { + "type" : "CodePackage", + "id" : "acm022033jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm022029jsd" ] + }, + "acm022034jsd" : { + "type" : "ControlElement", + "id" : "acm022034jsd", + "name" : "onStart" + }, + "acm022035jsd" : { + "type" : "ControlElement", + "id" : "acm022035jsd", + "name" : "testGetLastSearchHistory" + }, + "acm022036jsd" : { + "type" : "ControlElement", + "id" : "acm022036jsd", + "name" : "testduplicateSearchHistory" + }, + "acm022037jsd" : { + "type" : "ControlElement", + "id" : "acm022037jsd", + "name" : "testclearSearchHistory" + }, + "acm022038jsd" : { + "type" : "ClassUnit", + "id" : "acm022038jsd", + "name" : "GetLastSearchHistoryTest", + "compilationUnitId" : "acm022029jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002045jsd" ], + "content" : [ "acm022034jsd", "acm022035jsd", "acm022036jsd", "acm022037jsd" ] + }, + "acm022039jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022039jsd", + "name" : "GlobalSearchBarTest", + "parentId" : "acm008712jsd", + "content" : [ "acm022047jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022040jsd" : { + "type" : "CodePackage", + "id" : "acm022040jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022041jsd" ] + }, + "acm022041jsd" : { + "type" : "CodePackage", + "id" : "acm022041jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022042jsd" ] + }, + "acm022042jsd" : { + "type" : "CodePackage", + "id" : "acm022042jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022043jsd" ] + }, + "acm022043jsd" : { + "type" : "CodePackage", + "id" : "acm022043jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm022039jsd" ] + }, + "acm022044jsd" : { + "type" : "ControlElement", + "id" : "acm022044jsd", + "name" : "onStart" + }, + "acm022045jsd" : { + "type" : "ControlElement", + "id" : "acm022045jsd", + "name" : "recordingSearchQueriesOnFocusLostOnly" + }, + "acm022046jsd" : { + "type" : "ControlElement", + "id" : "acm022046jsd", + "name" : "emptyQueryIsNotRecorded" + }, + "acm022047jsd" : { + "type" : "ClassUnit", + "id" : "acm022047jsd", + "name" : "GlobalSearchBarTest", + "compilationUnitId" : "acm022039jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm001847jsd", "acm002045jsd", "acm008733jsd", "acm009369jsd", "acm018022jsd", "acm020473jsd", "acm021206jsd", "acm021267jsd" ], + "content" : [ "acm022044jsd", "acm022045jsd", "acm022046jsd" ] + }, + "acm022048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022048jsd", + "name" : "GrammarBasedSearchRuleDescriberTest", + "parentId" : "acm008712jsd", + "content" : [ "acm022063jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022049jsd" : { + "type" : "CodePackage", + "id" : "acm022049jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022050jsd" ] + }, + "acm022050jsd" : { + "type" : "CodePackage", + "id" : "acm022050jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022051jsd" ] + }, + "acm022051jsd" : { + "type" : "CodePackage", + "id" : "acm022051jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022052jsd" ] + }, + "acm022052jsd" : { + "type" : "CodePackage", + "id" : "acm022052jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm022048jsd" ] + }, + "acm022053jsd" : { + "type" : "ControlElement", + "id" : "acm022053jsd", + "name" : "onStart" + }, + "acm022054jsd" : { + "type" : "ControlElement", + "id" : "acm022054jsd", + "name" : "createDescription" + }, + "acm022055jsd" : { + "type" : "ControlElement", + "id" : "acm022055jsd", + "name" : "testSimpleQueryCaseSensitiveRegex" + }, + "acm022056jsd" : { + "type" : "ControlElement", + "id" : "acm022056jsd", + "name" : "testSimpleQueryCaseSensitive" + }, + "acm022057jsd" : { + "type" : "ControlElement", + "id" : "acm022057jsd", + "name" : "testSimpleQuery" + }, + "acm022058jsd" : { + "type" : "ControlElement", + "id" : "acm022058jsd", + "name" : "testSimpleQueryRegex" + }, + "acm022059jsd" : { + "type" : "ControlElement", + "id" : "acm022059jsd", + "name" : "testComplexQueryCaseSensitiveRegex" + }, + "acm022060jsd" : { + "type" : "ControlElement", + "id" : "acm022060jsd", + "name" : "testComplexQueryRegex" + }, + "acm022061jsd" : { + "type" : "ControlElement", + "id" : "acm022061jsd", + "name" : "testComplexQueryCaseSensitive" + }, + "acm022062jsd" : { + "type" : "ControlElement", + "id" : "acm022062jsd", + "name" : "testComplexQuery" + }, + "acm022063jsd" : { + "type" : "ClassUnit", + "id" : "acm022063jsd", + "name" : "GrammarBasedSearchRuleDescriberTest", + "compilationUnitId" : "acm022048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008839jsd", "acm020424jsd", "acm020473jsd" ], + "content" : [ "acm022053jsd", "acm022054jsd", "acm022055jsd", "acm022056jsd", "acm022057jsd", "acm022058jsd", "acm022059jsd", "acm022060jsd", "acm022061jsd", "acm022062jsd" ] + }, + "acm022064jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022064jsd", + "name" : "TextFlowEqualityHelper", + "parentId" : "acm008712jsd", + "content" : [ "acm022071jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022065jsd" : { + "type" : "CodePackage", + "id" : "acm022065jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022066jsd" ] + }, + "acm022066jsd" : { + "type" : "CodePackage", + "id" : "acm022066jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022067jsd" ] + }, + "acm022067jsd" : { + "type" : "CodePackage", + "id" : "acm022067jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022068jsd" ] + }, + "acm022068jsd" : { + "type" : "CodePackage", + "id" : "acm022068jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm022064jsd" ] + }, + "acm022069jsd" : { + "type" : "ControlElement", + "id" : "acm022069jsd", + "name" : "assertEquals" + }, + "acm022070jsd" : { + "type" : "ControlElement", + "id" : "acm022070jsd", + "name" : "checkIfTextsEqualsExpectedTexts" + }, + "acm022071jsd" : { + "type" : "ClassUnit", + "id" : "acm022071jsd", + "name" : "TextFlowEqualityHelper", + "compilationUnitId" : "acm022064jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022069jsd", "acm022070jsd" ] + }, + "acm022072jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022072jsd", + "name" : "SidePaneViewModelTest", + "parentId" : "acm008944jsd", + "content" : [ "acm022083jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "sidepane" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022073jsd" : { + "type" : "CodePackage", + "id" : "acm022073jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022074jsd" ] + }, + "acm022074jsd" : { + "type" : "CodePackage", + "id" : "acm022074jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022075jsd" ] + }, + "acm022075jsd" : { + "type" : "CodePackage", + "id" : "acm022075jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022076jsd" ] + }, + "acm022076jsd" : { + "type" : "CodePackage", + "id" : "acm022076jsd", + "name" : "sidepane", + "parentId" : null, + "content" : [ "acm022072jsd" ] + }, + "acm022077jsd" : { + "type" : "ControlElement", + "id" : "acm022077jsd", + "name" : "setUp" + }, + "acm022078jsd" : { + "type" : "ControlElement", + "id" : "acm022078jsd", + "name" : "moveUp" + }, + "acm022079jsd" : { + "type" : "ControlElement", + "id" : "acm022079jsd", + "name" : "moveUpFromFirstPosition" + }, + "acm022080jsd" : { + "type" : "ControlElement", + "id" : "acm022080jsd", + "name" : "moveDown" + }, + "acm022081jsd" : { + "type" : "ControlElement", + "id" : "acm022081jsd", + "name" : "moveDownFromLastPosition" + }, + "acm022082jsd" : { + "type" : "ControlElement", + "id" : "acm022082jsd", + "name" : "sortByPreferredPositions" + }, + "acm022083jsd" : { + "type" : "ClassUnit", + "id" : "acm022083jsd", + "name" : "SidePaneViewModelTest", + "compilationUnitId" : "acm022072jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm002045jsd", "acm008988jsd", "acm009010jsd", "acm009013jsd", "acm009670jsd", "acm009965jsd", "acm021206jsd", "acm021279jsd" ], + "content" : [ "acm022077jsd", "acm022078jsd", "acm022079jsd", "acm022080jsd", "acm022081jsd", "acm022082jsd" ] + }, + "acm022084jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022084jsd", + "name" : "ManageStudyDefinitionViewModelTest", + "parentId" : "acm009035jsd", + "content" : [ "acm022092jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "slr" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022085jsd" : { + "type" : "CodePackage", + "id" : "acm022085jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022086jsd" ] + }, + "acm022086jsd" : { + "type" : "CodePackage", + "id" : "acm022086jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022087jsd" ] + }, + "acm022087jsd" : { + "type" : "CodePackage", + "id" : "acm022087jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022088jsd" ] + }, + "acm022088jsd" : { + "type" : "CodePackage", + "id" : "acm022088jsd", + "name" : "slr", + "parentId" : null, + "content" : [ "acm022084jsd" ] + }, + "acm022089jsd" : { + "type" : "ControlElement", + "id" : "acm022089jsd", + "name" : "setUp" + }, + "acm022090jsd" : { + "type" : "ControlElement", + "id" : "acm022090jsd", + "name" : "emptyStudyConstructorFillsDatabasesCorrectly" + }, + "acm022091jsd" : { + "type" : "ControlElement", + "id" : "acm022091jsd", + "name" : "studyConstructorFillsDatabasesCorrectly" + }, + "acm022092jsd" : { + "type" : "ClassUnit", + "id" : "acm022092jsd", + "name" : "ManageStudyDefinitionViewModelTest", + "compilationUnitId" : "acm022084jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd", "acm009092jsd", "acm009126jsd", "acm012467jsd", "acm020587jsd", "acm020602jsd" ], + "content" : [ "acm022089jsd", "acm022090jsd", "acm022091jsd" ] + }, + "acm022093jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022093jsd", + "name" : "ThemeManagerTest", + "parentId" : "acm009267jsd", + "content" : [ "acm022106jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022094jsd" : { + "type" : "CodePackage", + "id" : "acm022094jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022095jsd" ] + }, + "acm022095jsd" : { + "type" : "CodePackage", + "id" : "acm022095jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022096jsd" ] + }, + "acm022096jsd" : { + "type" : "CodePackage", + "id" : "acm022096jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022097jsd" ] + }, + "acm022097jsd" : { + "type" : "CodePackage", + "id" : "acm022097jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm022093jsd" ] + }, + "acm022098jsd" : { + "type" : "ControlElement", + "id" : "acm022098jsd", + "name" : "setUp" + }, + "acm022099jsd" : { + "type" : "ControlElement", + "id" : "acm022099jsd", + "name" : "themeManagerUsesProvidedTheme" + }, + "acm022100jsd" : { + "type" : "ControlElement", + "id" : "acm022100jsd", + "name" : "customThemeAvailableEvenWhenDeleted" + }, + "acm022101jsd" : { + "type" : "ControlElement", + "id" : "acm022101jsd", + "name" : "customThemeBecomesAvailableAfterFileIsCreated" + }, + "acm022102jsd" : { + "type" : "ControlElement", + "id" : "acm022102jsd", + "name" : "largeCustomThemeNotHeldInMemory" + }, + "acm022103jsd" : { + "type" : "ControlElement", + "id" : "acm022103jsd", + "name" : "installThemeOnScene" + }, + "acm022104jsd" : { + "type" : "ControlElement", + "id" : "acm022104jsd", + "name" : "installThemeOnWebEngine" + }, + "acm022105jsd" : { + "type" : "ControlElement", + "id" : "acm022105jsd", + "name" : "liveReloadCssDataUrl" + }, + "acm022106jsd" : { + "type" : "ClassUnit", + "id" : "acm022106jsd", + "name" : "ThemeManagerTest", + "compilationUnitId" : "acm022093jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009325jsd", "acm009346jsd", "acm009712jsd", "acm020676jsd", "acm020765jsd" ], + "content" : [ "acm022098jsd", "acm022099jsd", "acm022100jsd", "acm022101jsd", "acm022102jsd", "acm022103jsd", "acm022104jsd", "acm022105jsd" ] + }, + "acm022107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022107jsd", + "name" : "ThemeTest", + "parentId" : "acm009267jsd", + "content" : [ "acm022118jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "theme" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022108jsd" : { + "type" : "CodePackage", + "id" : "acm022108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022109jsd" ] + }, + "acm022109jsd" : { + "type" : "CodePackage", + "id" : "acm022109jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022110jsd" ] + }, + "acm022110jsd" : { + "type" : "CodePackage", + "id" : "acm022110jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022111jsd" ] + }, + "acm022111jsd" : { + "type" : "CodePackage", + "id" : "acm022111jsd", + "name" : "theme", + "parentId" : null, + "content" : [ "acm022107jsd" ] + }, + "acm022112jsd" : { + "type" : "ControlElement", + "id" : "acm022112jsd", + "name" : "lightThemeUsedWhenPathIsBlank" + }, + "acm022113jsd" : { + "type" : "ControlElement", + "id" : "acm022113jsd", + "name" : "lightThemeUsedWhenPathIsBaseCss" + }, + "acm022114jsd" : { + "type" : "ControlElement", + "id" : "acm022114jsd", + "name" : "darkThemeUsedWhenPathIsDarkCss" + }, + "acm022115jsd" : { + "type" : "ControlElement", + "id" : "acm022115jsd", + "name" : "customThemeIgnoredIfDirectory" + }, + "acm022116jsd" : { + "type" : "ControlElement", + "id" : "acm022116jsd", + "name" : "customThemeIgnoredIfInvalidPath" + }, + "acm022117jsd" : { + "type" : "ControlElement", + "id" : "acm022117jsd", + "name" : "customThemeIfFileNotFound" + }, + "acm022118jsd" : { + "type" : "ClassUnit", + "id" : "acm022118jsd", + "name" : "ThemeTest", + "compilationUnitId" : "acm022107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009325jsd" ], + "content" : [ "acm022112jsd", "acm022113jsd", "acm022114jsd", "acm022115jsd", "acm022116jsd", "acm022117jsd" ] + }, + "acm022119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022119jsd", + "name" : "ColorUtilTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022128jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022120jsd" : { + "type" : "CodePackage", + "id" : "acm022120jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022121jsd" ] + }, + "acm022121jsd" : { + "type" : "CodePackage", + "id" : "acm022121jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022122jsd" ] + }, + "acm022122jsd" : { + "type" : "CodePackage", + "id" : "acm022122jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022123jsd" ] + }, + "acm022123jsd" : { + "type" : "CodePackage", + "id" : "acm022123jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022119jsd" ] + }, + "acm022124jsd" : { + "type" : "ControlElement", + "id" : "acm022124jsd", + "name" : "toRGBCodeTest" + }, + "acm022125jsd" : { + "type" : "ControlElement", + "id" : "acm022125jsd", + "name" : "toRGBACodeTest" + }, + "acm022126jsd" : { + "type" : "ControlElement", + "id" : "acm022126jsd", + "name" : "provideToRGBACodeTest" + }, + "acm022127jsd" : { + "type" : "ControlElement", + "id" : "acm022127jsd", + "name" : "toHexTest" + }, + "acm022128jsd" : { + "type" : "ClassUnit", + "id" : "acm022128jsd", + "name" : "ColorUtilTest", + "compilationUnitId" : "acm022119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009614jsd" ], + "content" : [ "acm022124jsd", "acm022125jsd", "acm022126jsd", "acm022127jsd" ] + }, + "acm022129jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022129jsd", + "name" : "ControlHelperTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022140jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022130jsd" : { + "type" : "CodePackage", + "id" : "acm022130jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022131jsd" ] + }, + "acm022131jsd" : { + "type" : "CodePackage", + "id" : "acm022131jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022132jsd" ] + }, + "acm022132jsd" : { + "type" : "CodePackage", + "id" : "acm022132jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022133jsd" ] + }, + "acm022133jsd" : { + "type" : "CodePackage", + "id" : "acm022133jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022129jsd" ] + }, + "acm022134jsd" : { + "type" : "ControlElement", + "id" : "acm022134jsd", + "name" : "truncateWithTextNullAndEmptyReturnsSource" + }, + "acm022135jsd" : { + "type" : "ControlElement", + "id" : "acm022135jsd", + "name" : "truncateWithDefaultMaxCharactersReturnsText" + }, + "acm022136jsd" : { + "type" : "ControlElement", + "id" : "acm022136jsd", + "name" : "truncateWithEllipsisPositionBeginningReturnsTruncatedText" + }, + "acm022137jsd" : { + "type" : "ControlElement", + "id" : "acm022137jsd", + "name" : "truncateWithEllipsisPositionCenterReturnsTruncatedText" + }, + "acm022138jsd" : { + "type" : "ControlElement", + "id" : "acm022138jsd", + "name" : "truncateWithDefaultMaxCharactersAndNullEllipsisAndPositionEndingReturnsTruncatedText" + }, + "acm022139jsd" : { + "type" : "ControlElement", + "id" : "acm022139jsd", + "name" : "truncateWithNullEllipsisPositionThrowsNullPointerException" + }, + "acm022140jsd" : { + "type" : "ClassUnit", + "id" : "acm022140jsd", + "name" : "ControlHelperTest", + "compilationUnitId" : "acm022129jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009630jsd" ], + "content" : [ "acm022134jsd", "acm022135jsd", "acm022136jsd", "acm022137jsd", "acm022138jsd", "acm022139jsd" ] + }, + "acm022141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022141jsd", + "name" : "FileDialogConfigurationTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022153jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022142jsd" : { + "type" : "CodePackage", + "id" : "acm022142jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022143jsd" ] + }, + "acm022143jsd" : { + "type" : "CodePackage", + "id" : "acm022143jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022144jsd" ] + }, + "acm022144jsd" : { + "type" : "CodePackage", + "id" : "acm022144jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022145jsd" ] + }, + "acm022145jsd" : { + "type" : "CodePackage", + "id" : "acm022145jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022141jsd" ] + }, + "acm022146jsd" : { + "type" : "ControlElement", + "id" : "acm022146jsd", + "name" : "testWithValidDirectoryString" + }, + "acm022147jsd" : { + "type" : "ControlElement", + "id" : "acm022147jsd", + "name" : "testWithValidDirectoryPath" + }, + "acm022148jsd" : { + "type" : "ControlElement", + "id" : "acm022148jsd", + "name" : "testWithNullStringDirectory" + }, + "acm022149jsd" : { + "type" : "ControlElement", + "id" : "acm022149jsd", + "name" : "testWithNullPathDirectory" + }, + "acm022150jsd" : { + "type" : "ControlElement", + "id" : "acm022150jsd", + "name" : "testWithNonExistingDirectoryAndParentNull" + }, + "acm022151jsd" : { + "type" : "ControlElement", + "id" : "acm022151jsd", + "name" : "testSingleExtension" + }, + "acm022152jsd" : { + "type" : "ControlElement", + "id" : "acm022152jsd", + "name" : "toFilter" + }, + "acm022153jsd" : { + "type" : "ClassUnit", + "id" : "acm022153jsd", + "name" : "FileDialogConfigurationTest", + "compilationUnitId" : "acm022141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009796jsd", "acm009809jsd", "acm017320jsd" ], + "content" : [ "acm022146jsd", "acm022147jsd", "acm022148jsd", "acm022149jsd", "acm022150jsd", "acm022151jsd", "acm022152jsd" ] + }, + "acm022154jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022154jsd", + "name" : "OpenConsoleActionTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022163jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022155jsd" : { + "type" : "CodePackage", + "id" : "acm022155jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022156jsd" ] + }, + "acm022156jsd" : { + "type" : "CodePackage", + "id" : "acm022156jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022157jsd" ] + }, + "acm022157jsd" : { + "type" : "CodePackage", + "id" : "acm022157jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022158jsd" ] + }, + "acm022158jsd" : { + "type" : "CodePackage", + "id" : "acm022158jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022154jsd" ] + }, + "acm022159jsd" : { + "type" : "ControlElement", + "id" : "acm022159jsd", + "name" : "setup" + }, + "acm022160jsd" : { + "type" : "ControlElement", + "id" : "acm022160jsd", + "name" : "newActionGetsCurrentDatabase" + }, + "acm022161jsd" : { + "type" : "ControlElement", + "id" : "acm022161jsd", + "name" : "newActionGetsSuppliedDatabase" + }, + "acm022162jsd" : { + "type" : "ControlElement", + "id" : "acm022162jsd", + "name" : "actionDefaultsToCurrentDatabase" + }, + "acm022163jsd" : { + "type" : "ClassUnit", + "id" : "acm022163jsd", + "name" : "OpenConsoleActionTest", + "compilationUnitId" : "acm022154jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001996jsd", "acm002045jsd", "acm018022jsd", "acm021206jsd" ], + "content" : [ "acm022159jsd", "acm022160jsd", "acm022161jsd", "acm022162jsd" ] + }, + "acm022164jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022164jsd", + "name" : "RecursiveTreeItemTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022173jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022165jsd" : { + "type" : "CodePackage", + "id" : "acm022165jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022166jsd" ] + }, + "acm022166jsd" : { + "type" : "CodePackage", + "id" : "acm022166jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022167jsd" ] + }, + "acm022167jsd" : { + "type" : "CodePackage", + "id" : "acm022167jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022168jsd" ] + }, + "acm022168jsd" : { + "type" : "CodePackage", + "id" : "acm022168jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022164jsd" ] + }, + "acm022169jsd" : { + "type" : "ControlElement", + "id" : "acm022169jsd", + "name" : "setUp" + }, + "acm022170jsd" : { + "type" : "ControlElement", + "id" : "acm022170jsd", + "name" : "addsAllChildrenNodes" + }, + "acm022171jsd" : { + "type" : "ControlElement", + "id" : "acm022171jsd", + "name" : "addsAllChildrenOfChildNode" + }, + "acm022172jsd" : { + "type" : "ControlElement", + "id" : "acm022172jsd", + "name" : "respectsFilter" + }, + "acm022173jsd" : { + "type" : "ClassUnit", + "id" : "acm022173jsd", + "name" : "RecursiveTreeItemTest", + "compilationUnitId" : "acm022164jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009946jsd", "acm028250jsd" ], + "content" : [ "acm022169jsd", "acm022170jsd", "acm022171jsd", "acm022172jsd" ] + }, + "acm022174jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022174jsd", + "name" : "TooltipTextUtilTest", + "parentId" : "acm009491jsd", + "content" : [ "acm022197jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022175jsd" : { + "type" : "CodePackage", + "id" : "acm022175jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022176jsd" ] + }, + "acm022176jsd" : { + "type" : "CodePackage", + "id" : "acm022176jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022177jsd" ] + }, + "acm022177jsd" : { + "type" : "CodePackage", + "id" : "acm022177jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022178jsd" ] + }, + "acm022178jsd" : { + "type" : "CodePackage", + "id" : "acm022178jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022174jsd" ] + }, + "acm022179jsd" : { + "type" : "ControlElement", + "id" : "acm022179jsd", + "name" : "retrieveCorrectTextStyleNormal" + }, + "acm022180jsd" : { + "type" : "ControlElement", + "id" : "acm022180jsd", + "name" : "stringRemainsTheSameAfterTransformationToNormal" + }, + "acm022181jsd" : { + "type" : "ControlElement", + "id" : "acm022181jsd", + "name" : "retrieveCorrectTextStyleBold" + }, + "acm022182jsd" : { + "type" : "ControlElement", + "id" : "acm022182jsd", + "name" : "stringRemainsTheSameAfterTransformationToBold" + }, + "acm022183jsd" : { + "type" : "ControlElement", + "id" : "acm022183jsd", + "name" : "retrieveCorrectTextStyleItalic" + }, + "acm022184jsd" : { + "type" : "ControlElement", + "id" : "acm022184jsd", + "name" : "stringRemainsTheSameAfterTransformationToItalic" + }, + "acm022185jsd" : { + "type" : "ControlElement", + "id" : "acm022185jsd", + "name" : "testCreateTextMonospaced" + }, + "acm022186jsd" : { + "type" : "ControlElement", + "id" : "acm022186jsd", + "name" : "retrieveCorrectStyleMonospaced" + }, + "acm022187jsd" : { + "type" : "ControlElement", + "id" : "acm022187jsd", + "name" : "stringRemainsTheSameAfterTransformationToMonospaced" + }, + "acm022188jsd" : { + "type" : "ControlElement", + "id" : "acm022188jsd", + "name" : "transformTextToHtmlStringBold" + }, + "acm022189jsd" : { + "type" : "ControlElement", + "id" : "acm022189jsd", + "name" : "transformTextToHtmlStringItalic" + }, + "acm022190jsd" : { + "type" : "ControlElement", + "id" : "acm022190jsd", + "name" : "transformTextToHtmlStringMonospaced" + }, + "acm022191jsd" : { + "type" : "ControlElement", + "id" : "acm022191jsd", + "name" : "transformTextToHtmlStringMonospacedBold" + }, + "acm022192jsd" : { + "type" : "ControlElement", + "id" : "acm022192jsd", + "name" : "transformTextToHtmlStringWithLinebreaks" + }, + "acm022193jsd" : { + "type" : "ControlElement", + "id" : "acm022193jsd", + "name" : "formatToTextsNoReplacements" + }, + "acm022194jsd" : { + "type" : "ControlElement", + "id" : "acm022194jsd", + "name" : "formatToTextsEnd" + }, + "acm022195jsd" : { + "type" : "ControlElement", + "id" : "acm022195jsd", + "name" : "formatToTextsBegin" + }, + "acm022196jsd" : { + "type" : "ControlElement", + "id" : "acm022196jsd", + "name" : "formatToTextsMiddle" + }, + "acm022197jsd" : { + "type" : "ClassUnit", + "id" : "acm022197jsd", + "name" : "TooltipTextUtilTest", + "compilationUnitId" : "acm022174jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009992jsd" ], + "content" : [ "acm022179jsd", "acm022180jsd", "acm022181jsd", "acm022182jsd", "acm022183jsd", "acm022184jsd", "acm022185jsd", "acm022186jsd", "acm022187jsd", "acm022188jsd", "acm022189jsd", "acm022190jsd", "acm022191jsd", "acm022192jsd", "acm022193jsd", "acm022194jsd", "acm022195jsd", "acm022196jsd" ] + }, + "acm022198jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022198jsd", + "name" : "NumericFieldComparatorTest", + "parentId" : "acm010153jsd", + "content" : [ "acm022217jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022199jsd" : { + "type" : "CodePackage", + "id" : "acm022199jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022200jsd" ] + }, + "acm022200jsd" : { + "type" : "CodePackage", + "id" : "acm022200jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022201jsd" ] + }, + "acm022201jsd" : { + "type" : "CodePackage", + "id" : "acm022201jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022202jsd" ] + }, + "acm022202jsd" : { + "type" : "CodePackage", + "id" : "acm022202jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022203jsd" ] + }, + "acm022203jsd" : { + "type" : "CodePackage", + "id" : "acm022203jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022198jsd" ] + }, + "acm022204jsd" : { + "type" : "ControlElement", + "id" : "acm022204jsd", + "name" : "compareTwoNumericInputs" + }, + "acm022205jsd" : { + "type" : "ControlElement", + "id" : "acm022205jsd", + "name" : "compareTwoNullInputs" + }, + "acm022206jsd" : { + "type" : "ControlElement", + "id" : "acm022206jsd", + "name" : "compareTwoInputsWithFirstNull" + }, + "acm022207jsd" : { + "type" : "ControlElement", + "id" : "acm022207jsd", + "name" : "compareTwoInputsWithSecondNull" + }, + "acm022208jsd" : { + "type" : "ControlElement", + "id" : "acm022208jsd", + "name" : "compareTwoNotNumericInputs" + }, + "acm022209jsd" : { + "type" : "ControlElement", + "id" : "acm022209jsd", + "name" : "compareStringWithInteger" + }, + "acm022210jsd" : { + "type" : "ControlElement", + "id" : "acm022210jsd", + "name" : "compareIntegerWithString" + }, + "acm022211jsd" : { + "type" : "ControlElement", + "id" : "acm022211jsd", + "name" : "compareNegativeInteger" + }, + "acm022212jsd" : { + "type" : "ControlElement", + "id" : "acm022212jsd", + "name" : "compareWithMinusString" + }, + "acm022213jsd" : { + "type" : "ControlElement", + "id" : "acm022213jsd", + "name" : "compareWithPlusString" + }, + "acm022214jsd" : { + "type" : "ControlElement", + "id" : "acm022214jsd", + "name" : "compareWordWithMinus" + }, + "acm022215jsd" : { + "type" : "ControlElement", + "id" : "acm022215jsd", + "name" : "compareNumericSignalWithoutNumberWithLenghtBiggerThanOne" + }, + "acm022216jsd" : { + "type" : "ControlElement", + "id" : "acm022216jsd", + "name" : "compareNumericSignalAfterNumber" + }, + "acm022217jsd" : { + "type" : "ClassUnit", + "id" : "acm022217jsd", + "name" : "NumericFieldComparatorTest", + "compilationUnitId" : "acm022198jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010157jsd" ], + "content" : [ "acm022204jsd", "acm022205jsd", "acm022206jsd", "acm022207jsd", "acm022208jsd", "acm022209jsd", "acm022210jsd", "acm022211jsd", "acm022212jsd", "acm022213jsd", "acm022214jsd", "acm022215jsd", "acm022216jsd" ] + }, + "acm022218jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022218jsd", + "name" : "RankingFieldComparatorTest", + "parentId" : "acm010153jsd", + "content" : [ "acm022231jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022219jsd" : { + "type" : "CodePackage", + "id" : "acm022219jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022220jsd" ] + }, + "acm022220jsd" : { + "type" : "CodePackage", + "id" : "acm022220jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022221jsd" ] + }, + "acm022221jsd" : { + "type" : "CodePackage", + "id" : "acm022221jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022222jsd" ] + }, + "acm022222jsd" : { + "type" : "CodePackage", + "id" : "acm022222jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022223jsd" ] + }, + "acm022223jsd" : { + "type" : "CodePackage", + "id" : "acm022223jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022218jsd" ] + }, + "acm022224jsd" : { + "type" : "ControlElement", + "id" : "acm022224jsd", + "name" : "setUp" + }, + "acm022225jsd" : { + "type" : "ControlElement", + "id" : "acm022225jsd", + "name" : "compareHigherRankFirst" + }, + "acm022226jsd" : { + "type" : "ControlElement", + "id" : "acm022226jsd", + "name" : "compareLowerRankFirst" + }, + "acm022227jsd" : { + "type" : "ControlElement", + "id" : "acm022227jsd", + "name" : "compareSameRank" + }, + "acm022228jsd" : { + "type" : "ControlElement", + "id" : "acm022228jsd", + "name" : "compareTwoEmptyInputs" + }, + "acm022229jsd" : { + "type" : "ControlElement", + "id" : "acm022229jsd", + "name" : "compareTwoInputsWithFirstEmpty" + }, + "acm022230jsd" : { + "type" : "ControlElement", + "id" : "acm022230jsd", + "name" : "compareTwoInputsWithSecondEmpty" + }, + "acm022231jsd" : { + "type" : "ClassUnit", + "id" : "acm022231jsd", + "name" : "RankingFieldComparatorTest", + "compilationUnitId" : "acm022218jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009156jsd", "acm010165jsd", "acm018782jsd" ], + "content" : [ "acm022224jsd", "acm022225jsd", "acm022226jsd", "acm022227jsd", "acm022228jsd", "acm022229jsd", "acm022230jsd" ] + }, + "acm022232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022232jsd", + "name" : "SpecialFieldComparatorTest", + "parentId" : "acm010153jsd", + "content" : [ "acm022246jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "gui", "util", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022233jsd" : { + "type" : "CodePackage", + "id" : "acm022233jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022234jsd" ] + }, + "acm022234jsd" : { + "type" : "CodePackage", + "id" : "acm022234jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022235jsd" ] + }, + "acm022235jsd" : { + "type" : "CodePackage", + "id" : "acm022235jsd", + "name" : "gui", + "parentId" : null, + "content" : [ "acm022236jsd" ] + }, + "acm022236jsd" : { + "type" : "CodePackage", + "id" : "acm022236jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022237jsd" ] + }, + "acm022237jsd" : { + "type" : "CodePackage", + "id" : "acm022237jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022232jsd" ] + }, + "acm022238jsd" : { + "type" : "ControlElement", + "id" : "acm022238jsd", + "name" : "setUp" + }, + "acm022239jsd" : { + "type" : "ControlElement", + "id" : "acm022239jsd", + "name" : "compareHigherPriorityFirst" + }, + "acm022240jsd" : { + "type" : "ControlElement", + "id" : "acm022240jsd", + "name" : "compareLowerPriorityFirst" + }, + "acm022241jsd" : { + "type" : "ControlElement", + "id" : "acm022241jsd", + "name" : "compareSamePriority" + }, + "acm022242jsd" : { + "type" : "ControlElement", + "id" : "acm022242jsd", + "name" : "compareUnrelatedFields" + }, + "acm022243jsd" : { + "type" : "ControlElement", + "id" : "acm022243jsd", + "name" : "compareTwoEmptyInputs" + }, + "acm022244jsd" : { + "type" : "ControlElement", + "id" : "acm022244jsd", + "name" : "compareTwoInputsWithFirstEmpty" + }, + "acm022245jsd" : { + "type" : "ControlElement", + "id" : "acm022245jsd", + "name" : "compareTwoInputsWithSecondEmpty" + }, + "acm022246jsd" : { + "type" : "ClassUnit", + "id" : "acm022246jsd", + "name" : "SpecialFieldComparatorTest", + "compilationUnitId" : "acm022232jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009156jsd", "acm010173jsd", "acm018782jsd" ], + "content" : [ "acm022238jsd", "acm022239jsd", "acm022240jsd", "acm022241jsd", "acm022242jsd", "acm022243jsd", "acm022244jsd", "acm022245jsd" ] + }, + "acm022247jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022247jsd", + "name" : "TypedBibEntryTest", + "parentId" : "acm001340jsd", + "content" : [ "acm022257jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022248jsd" : { + "type" : "CodePackage", + "id" : "acm022248jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022249jsd" ] + }, + "acm022249jsd" : { + "type" : "CodePackage", + "id" : "acm022249jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022250jsd" ] + }, + "acm022250jsd" : { + "type" : "CodePackage", + "id" : "acm022250jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022247jsd" ] + }, + "acm022251jsd" : { + "type" : "ControlElement", + "id" : "acm022251jsd", + "name" : "setUp" + }, + "acm022252jsd" : { + "type" : "ControlElement", + "id" : "acm022252jsd", + "name" : "hasAllRequiredFieldsFail" + }, + "acm022253jsd" : { + "type" : "ControlElement", + "id" : "acm022253jsd", + "name" : "hasAllRequiredFields" + }, + "acm022254jsd" : { + "type" : "ControlElement", + "id" : "acm022254jsd", + "name" : "hasAllRequiredFieldsForUnknownTypeReturnsTrue" + }, + "acm022255jsd" : { + "type" : "ControlElement", + "id" : "acm022255jsd", + "name" : "getTypeForDisplayReturnsTypeName" + }, + "acm022256jsd" : { + "type" : "ControlElement", + "id" : "acm022256jsd", + "name" : "getTypeForDisplayForUnknownTypeCapitalizeFirstLetter" + }, + "acm022257jsd" : { + "type" : "ClassUnit", + "id" : "acm022257jsd", + "name" : "TypedBibEntryTest", + "compilationUnitId" : "acm022247jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010375jsd", "acm018267jsd", "acm018333jsd", "acm019079jsd" ], + "content" : [ "acm022251jsd", "acm022252jsd", "acm022253jsd", "acm022254jsd", "acm022255jsd", "acm022256jsd" ] + }, + "acm022258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022258jsd", + "name" : "BackupManagerDiscardedTest", + "parentId" : "acm010386jsd", + "content" : [ "acm022270jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "autosaveandbackup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022259jsd" : { + "type" : "CodePackage", + "id" : "acm022259jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022260jsd" ] + }, + "acm022260jsd" : { + "type" : "CodePackage", + "id" : "acm022260jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022261jsd" ] + }, + "acm022261jsd" : { + "type" : "CodePackage", + "id" : "acm022261jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022262jsd" ] + }, + "acm022262jsd" : { + "type" : "CodePackage", + "id" : "acm022262jsd", + "name" : "autosaveandbackup", + "parentId" : null, + "content" : [ "acm022258jsd" ] + }, + "acm022263jsd" : { + "type" : "ControlElement", + "id" : "acm022263jsd", + "name" : "setup" + }, + "acm022264jsd" : { + "type" : "ControlElement", + "id" : "acm022264jsd", + "name" : "saveDatabase" + }, + "acm022265jsd" : { + "type" : "ControlElement", + "id" : "acm022265jsd", + "name" : "databaseModification" + }, + "acm022266jsd" : { + "type" : "ControlElement", + "id" : "acm022266jsd", + "name" : "makeBackup" + }, + "acm022267jsd" : { + "type" : "ControlElement", + "id" : "acm022267jsd", + "name" : "noDiscardingAChangeLeadsToNewerBackupBeReported" + }, + "acm022268jsd" : { + "type" : "ControlElement", + "id" : "acm022268jsd", + "name" : "noDiscardingASavedChange" + }, + "acm022269jsd" : { + "type" : "ControlElement", + "id" : "acm022269jsd", + "name" : "discardingAChangeLeadsToNewerBackupToBeIgnored" + }, + "acm022270jsd" : { + "type" : "ClassUnit", + "id" : "acm022270jsd", + "name" : "BackupManagerDiscardedTest", + "compilationUnitId" : "acm022258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010417jsd", "acm011415jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm021206jsd" ], + "content" : [ "acm022263jsd", "acm022264jsd", "acm022265jsd", "acm022266jsd", "acm022267jsd", "acm022268jsd", "acm022269jsd" ] + }, + "acm022271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022271jsd", + "name" : "BackupManagerTest", + "parentId" : "acm010386jsd", + "content" : [ "acm022283jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "autosaveandbackup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022272jsd" : { + "type" : "CodePackage", + "id" : "acm022272jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022273jsd" ] + }, + "acm022273jsd" : { + "type" : "CodePackage", + "id" : "acm022273jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022274jsd" ] + }, + "acm022274jsd" : { + "type" : "CodePackage", + "id" : "acm022274jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022275jsd" ] + }, + "acm022275jsd" : { + "type" : "CodePackage", + "id" : "acm022275jsd", + "name" : "autosaveandbackup", + "parentId" : null, + "content" : [ "acm022271jsd" ] + }, + "acm022276jsd" : { + "type" : "ControlElement", + "id" : "acm022276jsd", + "name" : "backupFileNameIsCorrectlyGeneratedInAppDataDirectory" + }, + "acm022277jsd" : { + "type" : "ControlElement", + "id" : "acm022277jsd", + "name" : "backupFileIsEqualForNonExistingBackup" + }, + "acm022278jsd" : { + "type" : "ControlElement", + "id" : "acm022278jsd", + "name" : "backupFileIsEqual" + }, + "acm022279jsd" : { + "type" : "ControlElement", + "id" : "acm022279jsd", + "name" : "backupFileDiffers" + }, + "acm022280jsd" : { + "type" : "ControlElement", + "id" : "acm022280jsd", + "name" : "correctBackupFileDeterminedForMultipleBakFiles" + }, + "acm022281jsd" : { + "type" : "ControlElement", + "id" : "acm022281jsd", + "name" : "bakFileWithNewerTimeStampLeadsToDiff" + }, + "acm022282jsd" : { + "type" : "ControlElement", + "id" : "acm022282jsd", + "name" : "bakFileWithOlderTimeStampDoesNotLeadToDiff" + }, + "acm022283jsd" : { + "type" : "ClassUnit", + "id" : "acm022283jsd", + "name" : "BackupManagerTest", + "compilationUnitId" : "acm022271jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm022283jsd" ], + "content" : [ "acm022276jsd", "acm022277jsd", "acm022278jsd", "acm022279jsd", "acm022280jsd", "acm022281jsd", "acm022282jsd" ] + }, + "acm022284jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022284jsd", + "name" : "AuxParserTest", + "parentId" : "acm010422jsd", + "content" : [ "acm022298jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "auxparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022285jsd" : { + "type" : "CodePackage", + "id" : "acm022285jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022286jsd" ] + }, + "acm022286jsd" : { + "type" : "CodePackage", + "id" : "acm022286jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022287jsd" ] + }, + "acm022287jsd" : { + "type" : "CodePackage", + "id" : "acm022287jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022288jsd" ] + }, + "acm022288jsd" : { + "type" : "CodePackage", + "id" : "acm022288jsd", + "name" : "auxparser", + "parentId" : null, + "content" : [ "acm022284jsd" ] + }, + "acm022289jsd" : { + "type" : "ControlElement", + "id" : "acm022289jsd", + "name" : "setUp" + }, + "acm022290jsd" : { + "type" : "ControlElement", + "id" : "acm022290jsd", + "name" : "tearDown" + }, + "acm022291jsd" : { + "type" : "ControlElement", + "id" : "acm022291jsd", + "name" : "testNormal" + }, + "acm022292jsd" : { + "type" : "ControlElement", + "id" : "acm022292jsd", + "name" : "testTwoArgMacro" + }, + "acm022293jsd" : { + "type" : "ControlElement", + "id" : "acm022293jsd", + "name" : "testNotAllFound" + }, + "acm022294jsd" : { + "type" : "ControlElement", + "id" : "acm022294jsd", + "name" : "duplicateBibDatabaseConfiguration" + }, + "acm022295jsd" : { + "type" : "ControlElement", + "id" : "acm022295jsd", + "name" : "testNestedAux" + }, + "acm022296jsd" : { + "type" : "ControlElement", + "id" : "acm022296jsd", + "name" : "testCrossRef" + }, + "acm022297jsd" : { + "type" : "ControlElement", + "id" : "acm022297jsd", + "name" : "testFileNotFound" + }, + "acm022298jsd" : { + "type" : "ClassUnit", + "id" : "acm022298jsd", + "name" : "AuxParserTest", + "compilationUnitId" : "acm022284jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010424jsd", "acm010444jsd", "acm010458jsd", "acm012556jsd", "acm013761jsd", "acm017988jsd", "acm018267jsd", "acm020676jsd", "acm022298jsd" ], + "content" : [ "acm022289jsd", "acm022290jsd", "acm022291jsd", "acm022292jsd", "acm022293jsd", "acm022294jsd", "acm022295jsd", "acm022296jsd", "acm022297jsd" ] + }, + "acm022299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022299jsd", + "name" : "DefaultAuxParserTest", + "parentId" : "acm010422jsd", + "content" : [ "acm022304jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "auxparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022300jsd" : { + "type" : "CodePackage", + "id" : "acm022300jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022301jsd" ] + }, + "acm022301jsd" : { + "type" : "CodePackage", + "id" : "acm022301jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022302jsd" ] + }, + "acm022302jsd" : { + "type" : "CodePackage", + "id" : "acm022302jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022303jsd" ] + }, + "acm022303jsd" : { + "type" : "CodePackage", + "id" : "acm022303jsd", + "name" : "auxparser", + "parentId" : null, + "content" : [ "acm022299jsd" ] + }, + "acm022304jsd" : { + "type" : "ClassUnit", + "id" : "acm022304jsd", + "name" : "DefaultAuxParserTest", + "compilationUnitId" : "acm022299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm022305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022305jsd", + "name" : "BibEntryAssert", + "parentId" : "acm010463jsd", + "content" : [ "acm022320jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022306jsd" : { + "type" : "CodePackage", + "id" : "acm022306jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022307jsd" ] + }, + "acm022307jsd" : { + "type" : "CodePackage", + "id" : "acm022307jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022308jsd" ] + }, + "acm022308jsd" : { + "type" : "CodePackage", + "id" : "acm022308jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022309jsd" ] + }, + "acm022309jsd" : { + "type" : "CodePackage", + "id" : "acm022309jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022305jsd" ] + }, + "acm022310jsd" : { + "type" : "ControlElement", + "id" : "acm022310jsd", + "name" : "assertEquals" + }, + "acm022311jsd" : { + "type" : "ControlElement", + "id" : "acm022311jsd", + "name" : "assertEquals" + }, + "acm022312jsd" : { + "type" : "ControlElement", + "id" : "acm022312jsd", + "name" : "getListFromInputStream" + }, + "acm022313jsd" : { + "type" : "ControlElement", + "id" : "acm022313jsd", + "name" : "assertEquals" + }, + "acm022314jsd" : { + "type" : "ControlElement", + "id" : "acm022314jsd", + "name" : "assertEquals" + }, + "acm022315jsd" : { + "type" : "ControlElement", + "id" : "acm022315jsd", + "name" : "assertEquals" + }, + "acm022316jsd" : { + "type" : "ControlElement", + "id" : "acm022316jsd", + "name" : "assertEquals" + }, + "acm022317jsd" : { + "type" : "ControlElement", + "id" : "acm022317jsd", + "name" : "assertEquals" + }, + "acm022318jsd" : { + "type" : "ControlElement", + "id" : "acm022318jsd", + "name" : "assertEquals" + }, + "acm022319jsd" : { + "type" : "ControlElement", + "id" : "acm022319jsd", + "name" : "assertEquals" + }, + "acm022320jsd" : { + "type" : "ClassUnit", + "id" : "acm022320jsd", + "name" : "BibEntryAssert", + "compilationUnitId" : "acm022305jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm012556jsd", "acm013761jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm022310jsd", "acm022311jsd", "acm022312jsd", "acm022313jsd", "acm022314jsd", "acm022315jsd", "acm022316jsd", "acm022317jsd", "acm022318jsd", "acm022319jsd" ] + }, + "acm022321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022321jsd", + "name" : "BibEntryWriterTest", + "parentId" : "acm010463jsd", + "content" : [ "acm022363jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022322jsd" : { + "type" : "CodePackage", + "id" : "acm022322jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022323jsd" ] + }, + "acm022323jsd" : { + "type" : "CodePackage", + "id" : "acm022323jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022324jsd" ] + }, + "acm022324jsd" : { + "type" : "CodePackage", + "id" : "acm022324jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022325jsd" ] + }, + "acm022325jsd" : { + "type" : "CodePackage", + "id" : "acm022325jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022321jsd" ] + }, + "acm022326jsd" : { + "type" : "ControlElement", + "id" : "acm022326jsd", + "name" : "setUpWriter" + }, + "acm022327jsd" : { + "type" : "ControlElement", + "id" : "acm022327jsd", + "name" : "testSerialization" + }, + "acm022328jsd" : { + "type" : "ControlElement", + "id" : "acm022328jsd", + "name" : "writeOtherTypeTest" + }, + "acm022329jsd" : { + "type" : "ControlElement", + "id" : "acm022329jsd", + "name" : "writeEntryWithFile" + }, + "acm022330jsd" : { + "type" : "ControlElement", + "id" : "acm022330jsd", + "name" : "writeEntryWithOrField" + }, + "acm022331jsd" : { + "type" : "ControlElement", + "id" : "acm022331jsd", + "name" : "writeEntryWithOrFieldBothFieldsPresent" + }, + "acm022332jsd" : { + "type" : "ControlElement", + "id" : "acm022332jsd", + "name" : "writeReallyUnknownTypeTest" + }, + "acm022333jsd" : { + "type" : "ControlElement", + "id" : "acm022333jsd", + "name" : "roundTripTest" + }, + "acm022334jsd" : { + "type" : "ControlElement", + "id" : "acm022334jsd", + "name" : "roundTripKeepsFilePathWithBackslashes" + }, + "acm022335jsd" : { + "type" : "ControlElement", + "id" : "acm022335jsd", + "name" : "roundTripKeepsEscapedCharacters" + }, + "acm022336jsd" : { + "type" : "ControlElement", + "id" : "acm022336jsd", + "name" : "roundTripKeepsFilePathEndingWithBackslash" + }, + "acm022337jsd" : { + "type" : "ControlElement", + "id" : "acm022337jsd", + "name" : "roundTripWithPrependingNewlines" + }, + "acm022338jsd" : { + "type" : "ControlElement", + "id" : "acm022338jsd", + "name" : "roundTripWithKeepsCRLFLineBreakStyle" + }, + "acm022339jsd" : { + "type" : "ControlElement", + "id" : "acm022339jsd", + "name" : "roundTripWithKeepsLFLineBreakStyle" + }, + "acm022340jsd" : { + "type" : "ControlElement", + "id" : "acm022340jsd", + "name" : "roundTripWithModification" + }, + "acm022341jsd" : { + "type" : "ControlElement", + "id" : "acm022341jsd", + "name" : "roundTripWithCamelCasingInTheOriginalEntryAndResultInLowerCase" + }, + "acm022342jsd" : { + "type" : "ControlElement", + "id" : "acm022342jsd", + "name" : "testEntryTypeChange" + }, + "acm022343jsd" : { + "type" : "ControlElement", + "id" : "acm022343jsd", + "name" : "roundTripWithAppendedNewlines" + }, + "acm022344jsd" : { + "type" : "ControlElement", + "id" : "acm022344jsd", + "name" : "roundTripNormalizesNewLines" + }, + "acm022345jsd" : { + "type" : "ControlElement", + "id" : "acm022345jsd", + "name" : "multipleWritesWithoutModification" + }, + "acm022346jsd" : { + "type" : "ControlElement", + "id" : "acm022346jsd", + "name" : "testSingleWrite" + }, + "acm022347jsd" : { + "type" : "ControlElement", + "id" : "acm022347jsd", + "name" : "monthFieldSpecialSyntax" + }, + "acm022348jsd" : { + "type" : "ControlElement", + "id" : "acm022348jsd", + "name" : "customTypeCanBewritten" + }, + "acm022349jsd" : { + "type" : "ControlElement", + "id" : "acm022349jsd", + "name" : "constantMonthApril" + }, + "acm022350jsd" : { + "type" : "ControlElement", + "id" : "acm022350jsd", + "name" : "monthApril" + }, + "acm022351jsd" : { + "type" : "ControlElement", + "id" : "acm022351jsd", + "name" : "filenameIsUnmodifiedDuringWrite" + }, + "acm022352jsd" : { + "type" : "ControlElement", + "id" : "acm022352jsd", + "name" : "addFieldWithLongerLength" + }, + "acm022353jsd" : { + "type" : "ControlElement", + "id" : "acm022353jsd", + "name" : "doNotWriteEmptyFields" + }, + "acm022354jsd" : { + "type" : "ControlElement", + "id" : "acm022354jsd", + "name" : "writeThrowsErrorIfFieldContainsUnbalancedBraces" + }, + "acm022355jsd" : { + "type" : "ControlElement", + "id" : "acm022355jsd", + "name" : "roundTripWithPrecedingCommentTest" + }, + "acm022356jsd" : { + "type" : "ControlElement", + "id" : "acm022356jsd", + "name" : "roundTripWithPrecedingCommentAndModificationTest" + }, + "acm022357jsd" : { + "type" : "ControlElement", + "id" : "acm022357jsd", + "name" : "alphabeticSerialization" + }, + "acm022358jsd" : { + "type" : "ControlElement", + "id" : "acm022358jsd", + "name" : "testSerializeAll" + }, + "acm022359jsd" : { + "type" : "ControlElement", + "id" : "acm022359jsd", + "name" : "testGetFormattedFieldNameData" + }, + "acm022360jsd" : { + "type" : "ControlElement", + "id" : "acm022360jsd", + "name" : "testGetFormattedFieldName" + }, + "acm022361jsd" : { + "type" : "ControlElement", + "id" : "acm022361jsd", + "name" : "testGetLengthOfLongestFieldNameData" + }, + "acm022362jsd" : { + "type" : "ControlElement", + "id" : "acm022362jsd", + "name" : "testGetLengthOfLongestFieldName" + }, + "acm022363jsd" : { + "type" : "ClassUnit", + "id" : "acm022363jsd", + "name" : "BibEntryWriterTest", + "compilationUnitId" : "acm022321jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010474jsd", "acm010497jsd", "acm010513jsd", "acm011455jsd", "acm012556jsd", "acm013761jsd", "acm018267jsd", "acm018333jsd", "acm018509jsd", "acm018673jsd", "acm019079jsd", "acm020676jsd", "acm020693jsd" ], + "content" : [ "acm022326jsd", "acm022327jsd", "acm022328jsd", "acm022329jsd", "acm022330jsd", "acm022331jsd", "acm022332jsd", "acm022333jsd", "acm022334jsd", "acm022335jsd", "acm022336jsd", "acm022337jsd", "acm022338jsd", "acm022339jsd", "acm022340jsd", "acm022341jsd", "acm022342jsd", "acm022343jsd", "acm022344jsd", "acm022345jsd", "acm022346jsd", "acm022347jsd", "acm022348jsd", "acm022349jsd", "acm022350jsd", "acm022351jsd", "acm022352jsd", "acm022353jsd", "acm022354jsd", "acm022355jsd", "acm022356jsd", "acm022357jsd", "acm022358jsd", "acm022359jsd", "acm022360jsd", "acm022361jsd", "acm022362jsd" ] + }, + "acm022364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022364jsd", + "name" : "FieldContentFormatterTest", + "parentId" : "acm010463jsd", + "content" : [ "acm022373jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022365jsd" : { + "type" : "CodePackage", + "id" : "acm022365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022366jsd" ] + }, + "acm022366jsd" : { + "type" : "CodePackage", + "id" : "acm022366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022367jsd" ] + }, + "acm022367jsd" : { + "type" : "CodePackage", + "id" : "acm022367jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022368jsd" ] + }, + "acm022368jsd" : { + "type" : "CodePackage", + "id" : "acm022368jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022364jsd" ] + }, + "acm022369jsd" : { + "type" : "ControlElement", + "id" : "acm022369jsd", + "name" : "setUp" + }, + "acm022370jsd" : { + "type" : "ControlElement", + "id" : "acm022370jsd", + "name" : "doesNotUnifyLineBreaks" + }, + "acm022371jsd" : { + "type" : "ControlElement", + "id" : "acm022371jsd", + "name" : "retainsWhitespaceForMultiLineFields" + }, + "acm022372jsd" : { + "type" : "ControlElement", + "id" : "acm022372jsd", + "name" : "removeWhitespaceFromNonMultiLineFields" + }, + "acm022373jsd" : { + "type" : "ClassUnit", + "id" : "acm022373jsd", + "name" : "FieldContentFormatterTest", + "compilationUnitId" : "acm022364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010483jsd", "acm010497jsd", "acm018813jsd" ], + "content" : [ "acm022369jsd", "acm022370jsd", "acm022371jsd", "acm022372jsd" ] + }, + "acm022374jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022374jsd", + "name" : "FieldWriterTest", + "parentId" : "acm010463jsd", + "content" : [ "acm022392jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022375jsd" : { + "type" : "CodePackage", + "id" : "acm022375jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022376jsd" ] + }, + "acm022376jsd" : { + "type" : "CodePackage", + "id" : "acm022376jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022377jsd" ] + }, + "acm022377jsd" : { + "type" : "CodePackage", + "id" : "acm022377jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022378jsd" ] + }, + "acm022378jsd" : { + "type" : "CodePackage", + "id" : "acm022378jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022374jsd" ] + }, + "acm022379jsd" : { + "type" : "ControlElement", + "id" : "acm022379jsd", + "name" : "getMarkdowns" + }, + "acm022380jsd" : { + "type" : "ControlElement", + "id" : "acm022380jsd", + "name" : "setUp" + }, + "acm022381jsd" : { + "type" : "ControlElement", + "id" : "acm022381jsd", + "name" : "noNormalizationOfNewlinesInAbstractField" + }, + "acm022382jsd" : { + "type" : "ControlElement", + "id" : "acm022382jsd", + "name" : "preserveNewlineInAbstractField" + }, + "acm022383jsd" : { + "type" : "ControlElement", + "id" : "acm022383jsd", + "name" : "preserveMultipleNewlinesInAbstractField" + }, + "acm022384jsd" : { + "type" : "ControlElement", + "id" : "acm022384jsd", + "name" : "preserveNewlineInReviewField" + }, + "acm022385jsd" : { + "type" : "ControlElement", + "id" : "acm022385jsd", + "name" : "removeWhitespaceFromNonMultiLineFields" + }, + "acm022386jsd" : { + "type" : "ControlElement", + "id" : "acm022386jsd", + "name" : "reportUnbalancedBracing" + }, + "acm022387jsd" : { + "type" : "ControlElement", + "id" : "acm022387jsd", + "name" : "reportUnbalancedBracingWithEscapedBraces" + }, + "acm022388jsd" : { + "type" : "ControlElement", + "id" : "acm022388jsd", + "name" : "tolerateBalancedBrace" + }, + "acm022389jsd" : { + "type" : "ControlElement", + "id" : "acm022389jsd", + "name" : "tolerateEscapeCharacters" + }, + "acm022390jsd" : { + "type" : "ControlElement", + "id" : "acm022390jsd", + "name" : "hashEnclosedWordsGetRealStringsInMonthField" + }, + "acm022391jsd" : { + "type" : "ControlElement", + "id" : "acm022391jsd", + "name" : "keepHashSignInComment" + }, + "acm022392jsd" : { + "type" : "ClassUnit", + "id" : "acm022392jsd", + "name" : "FieldWriterTest", + "compilationUnitId" : "acm022374jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm010513jsd", "acm010532jsd", "acm018813jsd" ], + "content" : [ "acm022379jsd", "acm022380jsd", "acm022381jsd", "acm022382jsd", "acm022383jsd", "acm022384jsd", "acm022385jsd", "acm022386jsd", "acm022387jsd", "acm022388jsd", "acm022389jsd", "acm022390jsd", "acm022391jsd" ] + }, + "acm022393jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022393jsd", + "name" : "FileFieldWriterTest", + "parentId" : "acm010463jsd", + "content" : [ "acm022405jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022394jsd" : { + "type" : "CodePackage", + "id" : "acm022394jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022395jsd" ] + }, + "acm022395jsd" : { + "type" : "CodePackage", + "id" : "acm022395jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022396jsd" ] + }, + "acm022396jsd" : { + "type" : "CodePackage", + "id" : "acm022396jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022397jsd" ] + }, + "acm022397jsd" : { + "type" : "CodePackage", + "id" : "acm022397jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022393jsd" ] + }, + "acm022398jsd" : { + "type" : "ControlElement", + "id" : "acm022398jsd", + "name" : "testQuoteStandard" + }, + "acm022399jsd" : { + "type" : "ControlElement", + "id" : "acm022399jsd", + "name" : "testQuoteAllCharacters" + }, + "acm022400jsd" : { + "type" : "ControlElement", + "id" : "acm022400jsd", + "name" : "testQuoteEmpty" + }, + "acm022401jsd" : { + "type" : "ControlElement", + "id" : "acm022401jsd", + "name" : "testQuoteNull" + }, + "acm022402jsd" : { + "type" : "ControlElement", + "id" : "acm022402jsd", + "name" : "getEncodingTestData" + }, + "acm022403jsd" : { + "type" : "ControlElement", + "id" : "acm022403jsd", + "name" : "testEncodeStringArray" + }, + "acm022404jsd" : { + "type" : "ControlElement", + "id" : "acm022404jsd", + "name" : "testFileFieldWriterGetStringRepresentation" + }, + "acm022405jsd" : { + "type" : "ClassUnit", + "id" : "acm022405jsd", + "name" : "FileFieldWriterTest", + "compilationUnitId" : "acm022393jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018509jsd" ], + "content" : [ "acm022398jsd", "acm022399jsd", "acm022400jsd", "acm022401jsd", "acm022402jsd", "acm022403jsd", "acm022404jsd" ] + }, + "acm022406jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022406jsd", + "name" : "BibDatabaseDiffTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022422jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022407jsd" : { + "type" : "CodePackage", + "id" : "acm022407jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022408jsd" ] + }, + "acm022408jsd" : { + "type" : "CodePackage", + "id" : "acm022408jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022409jsd" ] + }, + "acm022409jsd" : { + "type" : "CodePackage", + "id" : "acm022409jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022410jsd" ] + }, + "acm022410jsd" : { + "type" : "CodePackage", + "id" : "acm022410jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022411jsd" ] + }, + "acm022411jsd" : { + "type" : "CodePackage", + "id" : "acm022411jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022406jsd" ] + }, + "acm022412jsd" : { + "type" : "ControlElement", + "id" : "acm022412jsd", + "name" : "compareOfEmptyDatabasesReportsNoDifferences" + }, + "acm022413jsd" : { + "type" : "ControlElement", + "id" : "acm022413jsd", + "name" : "compareOfSameEntryReportsNoDifferences" + }, + "acm022414jsd" : { + "type" : "ControlElement", + "id" : "acm022414jsd", + "name" : "compareOfDifferentEntriesWithSameDataReportsNoDifferences" + }, + "acm022415jsd" : { + "type" : "ControlElement", + "id" : "acm022415jsd", + "name" : "compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences" + }, + "acm022416jsd" : { + "type" : "ControlElement", + "id" : "acm022416jsd", + "name" : "compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences" + }, + "acm022417jsd" : { + "type" : "ControlElement", + "id" : "acm022417jsd", + "name" : "compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences" + }, + "acm022418jsd" : { + "type" : "ControlElement", + "id" : "acm022418jsd", + "name" : "compareOfTwoDifferentEntriesWithDifferentDataReportsDifferences" + }, + "acm022419jsd" : { + "type" : "ControlElement", + "id" : "acm022419jsd", + "name" : "compareOfThreeDifferentEntriesWithDifferentDataReportsDifferences" + }, + "acm022420jsd" : { + "type" : "ControlElement", + "id" : "acm022420jsd", + "name" : "compareOfTwoEntriesWithEqualCitationKeysShouldReportsOneDifference" + }, + "acm022421jsd" : { + "type" : "ControlElement", + "id" : "acm022421jsd", + "name" : "compareEntries" + }, + "acm022422jsd" : { + "type" : "ClassUnit", + "id" : "acm022422jsd", + "name" : "BibDatabaseDiffTest", + "compilationUnitId" : "acm022406jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010548jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm022412jsd", "acm022413jsd", "acm022414jsd", "acm022415jsd", "acm022416jsd", "acm022417jsd", "acm022418jsd", "acm022419jsd", "acm022420jsd", "acm022421jsd" ] + }, + "acm022423jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022423jsd", + "name" : "BibStringDiffTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022442jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022424jsd" : { + "type" : "CodePackage", + "id" : "acm022424jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022425jsd" ] + }, + "acm022425jsd" : { + "type" : "CodePackage", + "id" : "acm022425jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022426jsd" ] + }, + "acm022426jsd" : { + "type" : "CodePackage", + "id" : "acm022426jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022427jsd" ] + }, + "acm022427jsd" : { + "type" : "CodePackage", + "id" : "acm022427jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022428jsd" ] + }, + "acm022428jsd" : { + "type" : "CodePackage", + "id" : "acm022428jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022423jsd" ] + }, + "acm022429jsd" : { + "type" : "ControlElement", + "id" : "acm022429jsd", + "name" : "setUp" + }, + "acm022430jsd" : { + "type" : "ControlElement", + "id" : "acm022430jsd", + "name" : "compareTest" + }, + "acm022431jsd" : { + "type" : "ControlElement", + "id" : "acm022431jsd", + "name" : "equalTest" + }, + "acm022432jsd" : { + "type" : "ControlElement", + "id" : "acm022432jsd", + "name" : "notEqualTest" + }, + "acm022433jsd" : { + "type" : "ControlElement", + "id" : "acm022433jsd", + "name" : "identicalObjectsAreEqual" + }, + "acm022434jsd" : { + "type" : "ControlElement", + "id" : "acm022434jsd", + "name" : "compareToNullObjectIsFalse" + }, + "acm022435jsd" : { + "type" : "ControlElement", + "id" : "acm022435jsd", + "name" : "compareToDifferentClassIsFalse" + }, + "acm022436jsd" : { + "type" : "ControlElement", + "id" : "acm022436jsd", + "name" : "testGetters" + }, + "acm022437jsd" : { + "type" : "ControlElement", + "id" : "acm022437jsd", + "name" : "testCompareEmptyDatabases" + }, + "acm022438jsd" : { + "type" : "ControlElement", + "id" : "acm022438jsd", + "name" : "testCompareNameChange" + }, + "acm022439jsd" : { + "type" : "ControlElement", + "id" : "acm022439jsd", + "name" : "testCompareNoDiff" + }, + "acm022440jsd" : { + "type" : "ControlElement", + "id" : "acm022440jsd", + "name" : "testCompareRemovedString" + }, + "acm022441jsd" : { + "type" : "ControlElement", + "id" : "acm022441jsd", + "name" : "testCompareAddString" + }, + "acm022442jsd" : { + "type" : "ClassUnit", + "id" : "acm022442jsd", + "name" : "BibStringDiffTest", + "compilationUnitId" : "acm022423jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010571jsd", "acm017988jsd", "acm018367jsd" ], + "content" : [ "acm022429jsd", "acm022430jsd", "acm022431jsd", "acm022432jsd", "acm022433jsd", "acm022434jsd", "acm022435jsd", "acm022436jsd", "acm022437jsd", "acm022438jsd", "acm022439jsd", "acm022440jsd", "acm022441jsd" ] + }, + "acm022443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022443jsd", + "name" : "BibtexStringComparatorTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022450jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022444jsd" : { + "type" : "CodePackage", + "id" : "acm022444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022445jsd" ] + }, + "acm022445jsd" : { + "type" : "CodePackage", + "id" : "acm022445jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022446jsd" ] + }, + "acm022446jsd" : { + "type" : "CodePackage", + "id" : "acm022446jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022447jsd" ] + }, + "acm022447jsd" : { + "type" : "CodePackage", + "id" : "acm022447jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022448jsd" ] + }, + "acm022448jsd" : { + "type" : "CodePackage", + "id" : "acm022448jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022443jsd" ] + }, + "acm022449jsd" : { + "type" : "ControlElement", + "id" : "acm022449jsd", + "name" : "test" + }, + "acm022450jsd" : { + "type" : "ClassUnit", + "id" : "acm022450jsd", + "name" : "BibtexStringComparatorTest", + "compilationUnitId" : "acm022443jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010580jsd", "acm018367jsd" ], + "content" : [ "acm022449jsd" ] + }, + "acm022451jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022451jsd", + "name" : "CrossRefEntryComparatorTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022463jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022452jsd" : { + "type" : "CodePackage", + "id" : "acm022452jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022453jsd" ] + }, + "acm022453jsd" : { + "type" : "CodePackage", + "id" : "acm022453jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022454jsd" ] + }, + "acm022454jsd" : { + "type" : "CodePackage", + "id" : "acm022454jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022455jsd" ] + }, + "acm022455jsd" : { + "type" : "CodePackage", + "id" : "acm022455jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022456jsd" ] + }, + "acm022456jsd" : { + "type" : "CodePackage", + "id" : "acm022456jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022451jsd" ] + }, + "acm022457jsd" : { + "type" : "ControlElement", + "id" : "acm022457jsd", + "name" : "setUp" + }, + "acm022458jsd" : { + "type" : "ControlElement", + "id" : "acm022458jsd", + "name" : "tearDown" + }, + "acm022459jsd" : { + "type" : "ControlElement", + "id" : "acm022459jsd", + "name" : "isEqualForEntriesWithoutCrossRef" + }, + "acm022460jsd" : { + "type" : "ControlElement", + "id" : "acm022460jsd", + "name" : "isEqualForEntriesWithCrossRef" + }, + "acm022461jsd" : { + "type" : "ControlElement", + "id" : "acm022461jsd", + "name" : "isGreaterForEntriesWithoutCrossRef" + }, + "acm022462jsd" : { + "type" : "ControlElement", + "id" : "acm022462jsd", + "name" : "isSmallerForEntriesWithCrossRef" + }, + "acm022463jsd" : { + "type" : "ClassUnit", + "id" : "acm022463jsd", + "name" : "CrossRefEntryComparatorTest", + "compilationUnitId" : "acm022451jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010588jsd", "acm018267jsd" ], + "content" : [ "acm022457jsd", "acm022458jsd", "acm022459jsd", "acm022460jsd", "acm022461jsd", "acm022462jsd" ] + }, + "acm022464jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022464jsd", + "name" : "EntryComparatorTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022482jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022465jsd" : { + "type" : "CodePackage", + "id" : "acm022465jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022466jsd" ] + }, + "acm022466jsd" : { + "type" : "CodePackage", + "id" : "acm022466jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022467jsd" ] + }, + "acm022467jsd" : { + "type" : "CodePackage", + "id" : "acm022467jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022468jsd" ] + }, + "acm022468jsd" : { + "type" : "CodePackage", + "id" : "acm022468jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022469jsd" ] + }, + "acm022469jsd" : { + "type" : "CodePackage", + "id" : "acm022469jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022464jsd" ] + }, + "acm022470jsd" : { + "type" : "ControlElement", + "id" : "acm022470jsd", + "name" : "recognizeIdenticalObjectsAsEqual" + }, + "acm022471jsd" : { + "type" : "ControlElement", + "id" : "acm022471jsd", + "name" : "compareAuthorFieldBiggerAscending" + }, + "acm022472jsd" : { + "type" : "ControlElement", + "id" : "acm022472jsd", + "name" : "bothEntriesHaveNotSetTheFieldToCompareAscending" + }, + "acm022473jsd" : { + "type" : "ControlElement", + "id" : "acm022473jsd", + "name" : "secondEntryHasNotSetFieldToCompareAscending" + }, + "acm022474jsd" : { + "type" : "ControlElement", + "id" : "acm022474jsd", + "name" : "firstEntryHasNotSetFieldToCompareAscending" + }, + "acm022475jsd" : { + "type" : "ControlElement", + "id" : "acm022475jsd", + "name" : "bothEntriesNumericAscending" + }, + "acm022476jsd" : { + "type" : "ControlElement", + "id" : "acm022476jsd", + "name" : "compareObjectsByKeyAscending" + }, + "acm022477jsd" : { + "type" : "ControlElement", + "id" : "acm022477jsd", + "name" : "compareObjectsByKeyWithNull" + }, + "acm022478jsd" : { + "type" : "ControlElement", + "id" : "acm022478jsd", + "name" : "compareObjectsByKeyWithBlank" + }, + "acm022479jsd" : { + "type" : "ControlElement", + "id" : "acm022479jsd", + "name" : "compareWithCrLfFields" + }, + "acm022480jsd" : { + "type" : "ControlElement", + "id" : "acm022480jsd", + "name" : "compareWithLfFields" + }, + "acm022481jsd" : { + "type" : "ControlElement", + "id" : "acm022481jsd", + "name" : "compareWithMixedLineEndings" + }, + "acm022482jsd" : { + "type" : "ClassUnit", + "id" : "acm022482jsd", + "name" : "EntryComparatorTest", + "compilationUnitId" : "acm022464jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010599jsd", "acm018267jsd" ], + "content" : [ "acm022470jsd", "acm022471jsd", "acm022472jsd", "acm022473jsd", "acm022474jsd", "acm022475jsd", "acm022476jsd", "acm022477jsd", "acm022478jsd", "acm022479jsd", "acm022480jsd", "acm022481jsd" ] + }, + "acm022483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022483jsd", + "name" : "FieldComparatorTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022509jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022484jsd" : { + "type" : "CodePackage", + "id" : "acm022484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022485jsd" ] + }, + "acm022485jsd" : { + "type" : "CodePackage", + "id" : "acm022485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022486jsd" ] + }, + "acm022486jsd" : { + "type" : "CodePackage", + "id" : "acm022486jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022487jsd" ] + }, + "acm022487jsd" : { + "type" : "CodePackage", + "id" : "acm022487jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022488jsd" ] + }, + "acm022488jsd" : { + "type" : "CodePackage", + "id" : "acm022488jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022483jsd" ] + }, + "acm022489jsd" : { + "type" : "ControlElement", + "id" : "acm022489jsd", + "name" : "compareMonthFieldIdentity" + }, + "acm022490jsd" : { + "type" : "ControlElement", + "id" : "acm022490jsd", + "name" : "compareMonthFieldEquality" + }, + "acm022491jsd" : { + "type" : "ControlElement", + "id" : "acm022491jsd", + "name" : "compareMonthFieldBiggerAscending" + }, + "acm022492jsd" : { + "type" : "ControlElement", + "id" : "acm022492jsd", + "name" : "compareMonthFieldBiggerDescending" + }, + "acm022493jsd" : { + "type" : "ControlElement", + "id" : "acm022493jsd", + "name" : "compareYearFieldIdentity" + }, + "acm022494jsd" : { + "type" : "ControlElement", + "id" : "acm022494jsd", + "name" : "compareYearFieldEquality" + }, + "acm022495jsd" : { + "type" : "ControlElement", + "id" : "acm022495jsd", + "name" : "compareYearFieldBiggerAscending" + }, + "acm022496jsd" : { + "type" : "ControlElement", + "id" : "acm022496jsd", + "name" : "compareYearFieldBiggerDescending" + }, + "acm022497jsd" : { + "type" : "ControlElement", + "id" : "acm022497jsd", + "name" : "compareTypeFieldIdentity" + }, + "acm022498jsd" : { + "type" : "ControlElement", + "id" : "acm022498jsd", + "name" : "compareTypeFieldEquality" + }, + "acm022499jsd" : { + "type" : "ControlElement", + "id" : "acm022499jsd", + "name" : "compareTypeFieldBiggerAscending" + }, + "acm022500jsd" : { + "type" : "ControlElement", + "id" : "acm022500jsd", + "name" : "compareTypeFieldBiggerDescending" + }, + "acm022501jsd" : { + "type" : "ControlElement", + "id" : "acm022501jsd", + "name" : "compareStringFieldsIdentity" + }, + "acm022502jsd" : { + "type" : "ControlElement", + "id" : "acm022502jsd", + "name" : "compareStringFieldsEquality" + }, + "acm022503jsd" : { + "type" : "ControlElement", + "id" : "acm022503jsd", + "name" : "compareStringFieldsBiggerAscending" + }, + "acm022504jsd" : { + "type" : "ControlElement", + "id" : "acm022504jsd", + "name" : "compareStringFieldsBiggerDescending" + }, + "acm022505jsd" : { + "type" : "ControlElement", + "id" : "acm022505jsd", + "name" : "compareNumericFieldsBiggerDescending" + }, + "acm022506jsd" : { + "type" : "ControlElement", + "id" : "acm022506jsd", + "name" : "compareParsableWithNonParsableNumericFieldDescending" + }, + "acm022507jsd" : { + "type" : "ControlElement", + "id" : "acm022507jsd", + "name" : "compareNumericalValues" + }, + "acm022508jsd" : { + "type" : "ControlElement", + "id" : "acm022508jsd", + "name" : "provideArgumentsForNumericalComparison" + }, + "acm022509jsd" : { + "type" : "ClassUnit", + "id" : "acm022509jsd", + "name" : "FieldComparatorTest", + "compilationUnitId" : "acm022483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010613jsd", "acm018267jsd", "acm018754jsd" ], + "content" : [ "acm022489jsd", "acm022490jsd", "acm022491jsd", "acm022492jsd", "acm022493jsd", "acm022494jsd", "acm022495jsd", "acm022496jsd", "acm022497jsd", "acm022498jsd", "acm022499jsd", "acm022500jsd", "acm022501jsd", "acm022502jsd", "acm022503jsd", "acm022504jsd", "acm022505jsd", "acm022506jsd", "acm022507jsd", "acm022508jsd" ] + }, + "acm022510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022510jsd", + "name" : "GroupDiffTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022520jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022511jsd" : { + "type" : "CodePackage", + "id" : "acm022511jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022512jsd" ] + }, + "acm022512jsd" : { + "type" : "CodePackage", + "id" : "acm022512jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022513jsd" ] + }, + "acm022513jsd" : { + "type" : "CodePackage", + "id" : "acm022513jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022514jsd" ] + }, + "acm022514jsd" : { + "type" : "CodePackage", + "id" : "acm022514jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022515jsd" ] + }, + "acm022515jsd" : { + "type" : "CodePackage", + "id" : "acm022515jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022510jsd" ] + }, + "acm022516jsd" : { + "type" : "ControlElement", + "id" : "acm022516jsd", + "name" : "setup" + }, + "acm022517jsd" : { + "type" : "ControlElement", + "id" : "acm022517jsd", + "name" : "compareEmptyGroups" + }, + "acm022518jsd" : { + "type" : "ControlElement", + "id" : "acm022518jsd", + "name" : "compareGroupWithItself" + }, + "acm022519jsd" : { + "type" : "ControlElement", + "id" : "acm022519jsd", + "name" : "compareWithChangedGroup" + }, + "acm022520jsd" : { + "type" : "ClassUnit", + "id" : "acm022520jsd", + "name" : "GroupDiffTest", + "compilationUnitId" : "acm022510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010634jsd", "acm019119jsd", "acm019171jsd", "acm019221jsd", "acm019421jsd" ], + "content" : [ "acm022516jsd", "acm022517jsd", "acm022518jsd", "acm022519jsd" ] + }, + "acm022521jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022521jsd", + "name" : "MetaDataDiffTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022528jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022522jsd" : { + "type" : "CodePackage", + "id" : "acm022522jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022523jsd" ] + }, + "acm022523jsd" : { + "type" : "CodePackage", + "id" : "acm022523jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022524jsd" ] + }, + "acm022524jsd" : { + "type" : "CodePackage", + "id" : "acm022524jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022525jsd" ] + }, + "acm022525jsd" : { + "type" : "CodePackage", + "id" : "acm022525jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022526jsd" ] + }, + "acm022526jsd" : { + "type" : "CodePackage", + "id" : "acm022526jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022521jsd" ] + }, + "acm022527jsd" : { + "type" : "ControlElement", + "id" : "acm022527jsd", + "name" : "compareWithSameContentSelectorsDoesNotReportAnyDiffs" + }, + "acm022528jsd" : { + "type" : "ClassUnit", + "id" : "acm022528jsd", + "name" : "MetaDataDiffTest", + "compilationUnitId" : "acm022521jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019348jsd", "acm019421jsd" ], + "content" : [ "acm022527jsd" ] + }, + "acm022529jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022529jsd", + "name" : "PreambleDiffTest", + "parentId" : "acm010538jsd", + "content" : [ "acm022538jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bibtex", "comparator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022530jsd" : { + "type" : "CodePackage", + "id" : "acm022530jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022531jsd" ] + }, + "acm022531jsd" : { + "type" : "CodePackage", + "id" : "acm022531jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022532jsd" ] + }, + "acm022532jsd" : { + "type" : "CodePackage", + "id" : "acm022532jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022533jsd" ] + }, + "acm022533jsd" : { + "type" : "CodePackage", + "id" : "acm022533jsd", + "name" : "bibtex", + "parentId" : null, + "content" : [ "acm022534jsd" ] + }, + "acm022534jsd" : { + "type" : "CodePackage", + "id" : "acm022534jsd", + "name" : "comparator", + "parentId" : null, + "content" : [ "acm022529jsd" ] + }, + "acm022535jsd" : { + "type" : "ControlElement", + "id" : "acm022535jsd", + "name" : "setUp" + }, + "acm022536jsd" : { + "type" : "ControlElement", + "id" : "acm022536jsd", + "name" : "compareSamePreambleTest" + }, + "acm022537jsd" : { + "type" : "ControlElement", + "id" : "acm022537jsd", + "name" : "compareDifferentPreambleTest" + }, + "acm022538jsd" : { + "type" : "ClassUnit", + "id" : "acm022538jsd", + "name" : "PreambleDiffTest", + "compilationUnitId" : "acm022529jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010668jsd", "acm017988jsd", "acm018022jsd" ], + "content" : [ "acm022535jsd", "acm022536jsd", "acm022537jsd" ] + }, + "acm022539jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022539jsd", + "name" : "BstFunctionsTest", + "parentId" : "acm010673jsd", + "content" : [ "acm022570jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022540jsd" : { + "type" : "CodePackage", + "id" : "acm022540jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022541jsd" ] + }, + "acm022541jsd" : { + "type" : "CodePackage", + "id" : "acm022541jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022542jsd" ] + }, + "acm022542jsd" : { + "type" : "CodePackage", + "id" : "acm022542jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022543jsd" ] + }, + "acm022543jsd" : { + "type" : "CodePackage", + "id" : "acm022543jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022539jsd" ] + }, + "acm022544jsd" : { + "type" : "ControlElement", + "id" : "acm022544jsd", + "name" : "testCompareFunctions" + }, + "acm022545jsd" : { + "type" : "ControlElement", + "id" : "acm022545jsd", + "name" : "testArithmeticFunctions" + }, + "acm022546jsd" : { + "type" : "ControlElement", + "id" : "acm022546jsd", + "name" : "testArithmeticFunctionTypeMismatch" + }, + "acm022547jsd" : { + "type" : "ControlElement", + "id" : "acm022547jsd", + "name" : "testStringOperations" + }, + "acm022548jsd" : { + "type" : "ControlElement", + "id" : "acm022548jsd", + "name" : "testMissing" + }, + "acm022549jsd" : { + "type" : "ControlElement", + "id" : "acm022549jsd", + "name" : "testNumNames" + }, + "acm022550jsd" : { + "type" : "ControlElement", + "id" : "acm022550jsd", + "name" : "testSubstring" + }, + "acm022551jsd" : { + "type" : "ControlElement", + "id" : "acm022551jsd", + "name" : "testEmpty" + }, + "acm022552jsd" : { + "type" : "ControlElement", + "id" : "acm022552jsd", + "name" : "testFormatNameStatic" + }, + "acm022553jsd" : { + "type" : "ControlElement", + "id" : "acm022553jsd", + "name" : "testFormatNameInEntries" + }, + "acm022554jsd" : { + "type" : "ControlElement", + "id" : "acm022554jsd", + "name" : "testChangeCase" + }, + "acm022555jsd" : { + "type" : "ControlElement", + "id" : "acm022555jsd", + "name" : "testTextLength" + }, + "acm022556jsd" : { + "type" : "ControlElement", + "id" : "acm022556jsd", + "name" : "testIntToStr" + }, + "acm022557jsd" : { + "type" : "ControlElement", + "id" : "acm022557jsd", + "name" : "testChrToInt" + }, + "acm022558jsd" : { + "type" : "ControlElement", + "id" : "acm022558jsd", + "name" : "testChrToIntIntToChr" + }, + "acm022559jsd" : { + "type" : "ControlElement", + "id" : "acm022559jsd", + "name" : "testType" + }, + "acm022560jsd" : { + "type" : "ControlElement", + "id" : "acm022560jsd", + "name" : "testCallType" + }, + "acm022561jsd" : { + "type" : "ControlElement", + "id" : "acm022561jsd", + "name" : "testSwap" + }, + "acm022562jsd" : { + "type" : "ControlElement", + "id" : "acm022562jsd", + "name" : "testAssignFunction" + }, + "acm022563jsd" : { + "type" : "ControlElement", + "id" : "acm022563jsd", + "name" : "testSimpleIf" + }, + "acm022564jsd" : { + "type" : "ControlElement", + "id" : "acm022564jsd", + "name" : "testSimpleWhile" + }, + "acm022565jsd" : { + "type" : "ControlElement", + "id" : "acm022565jsd", + "name" : "testNestedControlFunctions" + }, + "acm022566jsd" : { + "type" : "ControlElement", + "id" : "acm022566jsd", + "name" : "testLogic" + }, + "acm022567jsd" : { + "type" : "ControlElement", + "id" : "acm022567jsd", + "name" : "testWidth" + }, + "acm022568jsd" : { + "type" : "ControlElement", + "id" : "acm022568jsd", + "name" : "testDuplicateEmptyPopSwapIf" + }, + "acm022569jsd" : { + "type" : "ControlElement", + "id" : "acm022569jsd", + "name" : "testPreambleWriteNewlineQuote" + }, + "acm022570jsd" : { + "type" : "ClassUnit", + "id" : "acm022570jsd", + "name" : "BstFunctionsTest", + "compilationUnitId" : "acm022539jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010730jsd", "acm010767jsd", "acm010781jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm022544jsd", "acm022545jsd", "acm022546jsd", "acm022547jsd", "acm022548jsd", "acm022549jsd", "acm022550jsd", "acm022551jsd", "acm022552jsd", "acm022553jsd", "acm022554jsd", "acm022555jsd", "acm022556jsd", "acm022557jsd", "acm022558jsd", "acm022559jsd", "acm022560jsd", "acm022561jsd", "acm022562jsd", "acm022563jsd", "acm022564jsd", "acm022565jsd", "acm022566jsd", "acm022567jsd", "acm022568jsd", "acm022569jsd" ] + }, + "acm022571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022571jsd", + "name" : "BstPreviewLayoutTest", + "parentId" : "acm010673jsd", + "content" : [ "acm022581jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022572jsd" : { + "type" : "CodePackage", + "id" : "acm022572jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022573jsd" ] + }, + "acm022573jsd" : { + "type" : "CodePackage", + "id" : "acm022573jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022574jsd" ] + }, + "acm022574jsd" : { + "type" : "CodePackage", + "id" : "acm022574jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022575jsd" ] + }, + "acm022575jsd" : { + "type" : "CodePackage", + "id" : "acm022575jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022571jsd" ] + }, + "acm022576jsd" : { + "type" : "ControlElement", + "id" : "acm022576jsd", + "name" : "generatePreviewForSimpleEntryUsingAbbr" + }, + "acm022577jsd" : { + "type" : "ControlElement", + "id" : "acm022577jsd", + "name" : "monthMayIsCorrectlyRendered" + }, + "acm022578jsd" : { + "type" : "ControlElement", + "id" : "acm022578jsd", + "name" : "generatePreviewForSliceTheoremPaperUsingAbbr" + }, + "acm022579jsd" : { + "type" : "ControlElement", + "id" : "acm022579jsd", + "name" : "generatePreviewForSliceTheoremPaperUsingIEEE" + }, + "acm022580jsd" : { + "type" : "ControlElement", + "id" : "acm022580jsd", + "name" : "getSliceTheoremPaper" + }, + "acm022581jsd" : { + "type" : "ClassUnit", + "id" : "acm022581jsd", + "name" : "BstPreviewLayoutTest", + "compilationUnitId" : "acm022571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010752jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm022581jsd" ], + "content" : [ "acm022576jsd", "acm022577jsd", "acm022578jsd", "acm022579jsd", "acm022580jsd" ] + }, + "acm022582jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022582jsd", + "name" : "BstVMTest", + "parentId" : "acm010673jsd", + "content" : [ "acm022597jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022583jsd" : { + "type" : "CodePackage", + "id" : "acm022583jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022584jsd" ] + }, + "acm022584jsd" : { + "type" : "CodePackage", + "id" : "acm022584jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022585jsd" ] + }, + "acm022585jsd" : { + "type" : "CodePackage", + "id" : "acm022585jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022586jsd" ] + }, + "acm022586jsd" : { + "type" : "CodePackage", + "id" : "acm022586jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022582jsd" ] + }, + "acm022587jsd" : { + "type" : "ControlElement", + "id" : "acm022587jsd", + "name" : "defaultTestEntry" + }, + "acm022588jsd" : { + "type" : "ControlElement", + "id" : "acm022588jsd", + "name" : "testAbbrv" + }, + "acm022589jsd" : { + "type" : "ControlElement", + "id" : "acm022589jsd", + "name" : "testSimple" + }, + "acm022590jsd" : { + "type" : "ControlElement", + "id" : "acm022590jsd", + "name" : "testLabel" + }, + "acm022591jsd" : { + "type" : "ControlElement", + "id" : "acm022591jsd", + "name" : "testQuote" + }, + "acm022592jsd" : { + "type" : "ControlElement", + "id" : "acm022592jsd", + "name" : "testBuildIn" + }, + "acm022593jsd" : { + "type" : "ControlElement", + "id" : "acm022593jsd", + "name" : "testVariables" + }, + "acm022594jsd" : { + "type" : "ControlElement", + "id" : "acm022594jsd", + "name" : "testHypthenatedName" + }, + "acm022595jsd" : { + "type" : "ControlElement", + "id" : "acm022595jsd", + "name" : "testAbbrevStyleChopWord" + }, + "acm022596jsd" : { + "type" : "ControlElement", + "id" : "acm022596jsd", + "name" : "testAbbrevStyleSortFormatTitle" + }, + "acm022597jsd" : { + "type" : "ClassUnit", + "id" : "acm022597jsd", + "name" : "BstVMTest", + "compilationUnitId" : "acm022582jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010767jsd", "acm018267jsd" ], + "content" : [ "acm022587jsd", "acm022588jsd", "acm022589jsd", "acm022590jsd", "acm022591jsd", "acm022592jsd", "acm022593jsd", "acm022594jsd", "acm022595jsd", "acm022596jsd" ] + }, + "acm022598jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022598jsd", + "name" : "BstVMVisitorTest", + "parentId" : "acm010673jsd", + "content" : [ "acm022615jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022599jsd" : { + "type" : "CodePackage", + "id" : "acm022599jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022600jsd" ] + }, + "acm022600jsd" : { + "type" : "CodePackage", + "id" : "acm022600jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022601jsd" ] + }, + "acm022601jsd" : { + "type" : "CodePackage", + "id" : "acm022601jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022602jsd" ] + }, + "acm022602jsd" : { + "type" : "CodePackage", + "id" : "acm022602jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022598jsd" ] + }, + "acm022603jsd" : { + "type" : "ControlElement", + "id" : "acm022603jsd", + "name" : "testVisitStringsCommand" + }, + "acm022604jsd" : { + "type" : "ControlElement", + "id" : "acm022604jsd", + "name" : "testVisitIntegersCommand" + }, + "acm022605jsd" : { + "type" : "ControlElement", + "id" : "acm022605jsd", + "name" : "testVisitFunctionCommand" + }, + "acm022606jsd" : { + "type" : "ControlElement", + "id" : "acm022606jsd", + "name" : "testVisitMacroCommand" + }, + "acm022607jsd" : { + "type" : "ControlElement", + "id" : "acm022607jsd", + "name" : "testVisitEntryCommand" + }, + "acm022608jsd" : { + "type" : "ControlElement", + "id" : "acm022608jsd", + "name" : "testVisitReadCommand" + }, + "acm022609jsd" : { + "type" : "ControlElement", + "id" : "acm022609jsd", + "name" : "testVisitExecuteCommand" + }, + "acm022610jsd" : { + "type" : "ControlElement", + "id" : "acm022610jsd", + "name" : "testVisitIterateCommand" + }, + "acm022611jsd" : { + "type" : "ControlElement", + "id" : "acm022611jsd", + "name" : "testVisitReverseCommand" + }, + "acm022612jsd" : { + "type" : "ControlElement", + "id" : "acm022612jsd", + "name" : "testVisitSortCommand" + }, + "acm022613jsd" : { + "type" : "ControlElement", + "id" : "acm022613jsd", + "name" : "testVisitIdentifier" + }, + "acm022614jsd" : { + "type" : "ControlElement", + "id" : "acm022614jsd", + "name" : "testVisitStackitem" + }, + "acm022615jsd" : { + "type" : "ClassUnit", + "id" : "acm022615jsd", + "name" : "BstVMVisitorTest", + "compilationUnitId" : "acm022598jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010675jsd", "acm010730jsd", "acm010767jsd", "acm018267jsd" ], + "content" : [ "acm022603jsd", "acm022604jsd", "acm022605jsd", "acm022606jsd", "acm022607jsd", "acm022608jsd", "acm022609jsd", "acm022610jsd", "acm022611jsd", "acm022612jsd", "acm022613jsd", "acm022614jsd" ] + }, + "acm022616jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022616jsd", + "name" : "BstCaseChangersTest", + "parentId" : "acm010808jsd", + "content" : [ "acm022631jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022617jsd" : { + "type" : "CodePackage", + "id" : "acm022617jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022618jsd" ] + }, + "acm022618jsd" : { + "type" : "CodePackage", + "id" : "acm022618jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022619jsd" ] + }, + "acm022619jsd" : { + "type" : "CodePackage", + "id" : "acm022619jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022620jsd" ] + }, + "acm022620jsd" : { + "type" : "CodePackage", + "id" : "acm022620jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022621jsd" ] + }, + "acm022621jsd" : { + "type" : "CodePackage", + "id" : "acm022621jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022616jsd" ] + }, + "acm022622jsd" : { + "type" : "ControlElement", + "id" : "acm022622jsd", + "name" : "testChangeCaseTitleLowers" + }, + "acm022623jsd" : { + "type" : "ControlElement", + "id" : "acm022623jsd", + "name" : "provideStringsForTitleLowers" + }, + "acm022624jsd" : { + "type" : "ControlElement", + "id" : "acm022624jsd", + "name" : "testChangeCaseAllLowers" + }, + "acm022625jsd" : { + "type" : "ControlElement", + "id" : "acm022625jsd", + "name" : "provideStringsForAllLowers" + }, + "acm022626jsd" : { + "type" : "ControlElement", + "id" : "acm022626jsd", + "name" : "testChangeCaseAllUppers" + }, + "acm022627jsd" : { + "type" : "ControlElement", + "id" : "acm022627jsd", + "name" : "provideStringsForAllUppers" + }, + "acm022628jsd" : { + "type" : "ControlElement", + "id" : "acm022628jsd", + "name" : "testTitleCaseAllLowers" + }, + "acm022629jsd" : { + "type" : "ControlElement", + "id" : "acm022629jsd", + "name" : "provideTitleCaseAllLowers" + }, + "acm022630jsd" : { + "type" : "ControlElement", + "id" : "acm022630jsd", + "name" : "testTitleCaseAllUppers" + }, + "acm022631jsd" : { + "type" : "ClassUnit", + "id" : "acm022631jsd", + "name" : "BstCaseChangersTest", + "compilationUnitId" : "acm022616jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022622jsd", "acm022623jsd", "acm022624jsd", "acm022625jsd", "acm022626jsd", "acm022627jsd", "acm022628jsd", "acm022629jsd", "acm022630jsd" ] + }, + "acm022632jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022632jsd", + "name" : "BstNameFormatterTest", + "parentId" : "acm010808jsd", + "content" : [ "acm022651jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022633jsd" : { + "type" : "CodePackage", + "id" : "acm022633jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022634jsd" ] + }, + "acm022634jsd" : { + "type" : "CodePackage", + "id" : "acm022634jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022635jsd" ] + }, + "acm022635jsd" : { + "type" : "CodePackage", + "id" : "acm022635jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022636jsd" ] + }, + "acm022636jsd" : { + "type" : "CodePackage", + "id" : "acm022636jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022637jsd" ] + }, + "acm022637jsd" : { + "type" : "CodePackage", + "id" : "acm022637jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022632jsd" ] + }, + "acm022638jsd" : { + "type" : "ControlElement", + "id" : "acm022638jsd", + "name" : "testUmlautsFullNames" + }, + "acm022639jsd" : { + "type" : "ControlElement", + "id" : "acm022639jsd", + "name" : "testUmlautsAbbreviations" + }, + "acm022640jsd" : { + "type" : "ControlElement", + "id" : "acm022640jsd", + "name" : "testUmlautsAbbreviationsWithQuestionMark" + }, + "acm022641jsd" : { + "type" : "ControlElement", + "id" : "acm022641jsd", + "name" : "testFormatName" + }, + "acm022642jsd" : { + "type" : "ControlElement", + "id" : "acm022642jsd", + "name" : "assertNameFormat" + }, + "acm022643jsd" : { + "type" : "ControlElement", + "id" : "acm022643jsd", + "name" : "assertNameFormatC" + }, + "acm022644jsd" : { + "type" : "ControlElement", + "id" : "acm022644jsd", + "name" : "assertNameFormatB" + }, + "acm022645jsd" : { + "type" : "ControlElement", + "id" : "acm022645jsd", + "name" : "assertNameFormatA" + }, + "acm022646jsd" : { + "type" : "ControlElement", + "id" : "acm022646jsd", + "name" : "matchingBraceConsumedForCompleteWords" + }, + "acm022647jsd" : { + "type" : "ControlElement", + "id" : "acm022647jsd", + "name" : "matchingBraceConsumedForBracesInWords" + }, + "acm022648jsd" : { + "type" : "ControlElement", + "id" : "acm022648jsd", + "name" : "testConsumeToMatchingBrace" + }, + "acm022649jsd" : { + "type" : "ControlElement", + "id" : "acm022649jsd", + "name" : "testGetFirstCharOfString" + }, + "acm022650jsd" : { + "type" : "ControlElement", + "id" : "acm022650jsd", + "name" : "testNumberOfChars" + }, + "acm022651jsd" : { + "type" : "ClassUnit", + "id" : "acm022651jsd", + "name" : "BstNameFormatterTest", + "compilationUnitId" : "acm022632jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018175jsd" ], + "content" : [ "acm022638jsd", "acm022639jsd", "acm022640jsd", "acm022641jsd", "acm022642jsd", "acm022643jsd", "acm022644jsd", "acm022645jsd", "acm022646jsd", "acm022647jsd", "acm022648jsd", "acm022649jsd", "acm022650jsd" ] + }, + "acm022652jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022652jsd", + "name" : "BstPurifierTest", + "parentId" : "acm010808jsd", + "content" : [ "acm022660jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022653jsd" : { + "type" : "CodePackage", + "id" : "acm022653jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022654jsd" ] + }, + "acm022654jsd" : { + "type" : "CodePackage", + "id" : "acm022654jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022655jsd" ] + }, + "acm022655jsd" : { + "type" : "CodePackage", + "id" : "acm022655jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022656jsd" ] + }, + "acm022656jsd" : { + "type" : "CodePackage", + "id" : "acm022656jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022657jsd" ] + }, + "acm022657jsd" : { + "type" : "CodePackage", + "id" : "acm022657jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022652jsd" ] + }, + "acm022658jsd" : { + "type" : "ControlElement", + "id" : "acm022658jsd", + "name" : "testPurify" + }, + "acm022659jsd" : { + "type" : "ControlElement", + "id" : "acm022659jsd", + "name" : "provideTestStrings" + }, + "acm022660jsd" : { + "type" : "ClassUnit", + "id" : "acm022660jsd", + "name" : "BstPurifierTest", + "compilationUnitId" : "acm022652jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022658jsd", "acm022659jsd" ] + }, + "acm022661jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022661jsd", + "name" : "BstTextPrefixerTest", + "parentId" : "acm010808jsd", + "content" : [ "acm022669jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022662jsd" : { + "type" : "CodePackage", + "id" : "acm022662jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022663jsd" ] + }, + "acm022663jsd" : { + "type" : "CodePackage", + "id" : "acm022663jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022664jsd" ] + }, + "acm022664jsd" : { + "type" : "CodePackage", + "id" : "acm022664jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022665jsd" ] + }, + "acm022665jsd" : { + "type" : "CodePackage", + "id" : "acm022665jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022666jsd" ] + }, + "acm022666jsd" : { + "type" : "CodePackage", + "id" : "acm022666jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022661jsd" ] + }, + "acm022667jsd" : { + "type" : "ControlElement", + "id" : "acm022667jsd", + "name" : "testPrefix" + }, + "acm022668jsd" : { + "type" : "ControlElement", + "id" : "acm022668jsd", + "name" : "assertPrefix" + }, + "acm022669jsd" : { + "type" : "ClassUnit", + "id" : "acm022669jsd", + "name" : "BstTextPrefixerTest", + "compilationUnitId" : "acm022661jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022667jsd", "acm022668jsd" ] + }, + "acm022670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022670jsd", + "name" : "BstWidthCalculatorTest", + "parentId" : "acm010808jsd", + "content" : [ "acm022680jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "bst", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022671jsd" : { + "type" : "CodePackage", + "id" : "acm022671jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022672jsd" ] + }, + "acm022672jsd" : { + "type" : "CodePackage", + "id" : "acm022672jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022673jsd" ] + }, + "acm022673jsd" : { + "type" : "CodePackage", + "id" : "acm022673jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022674jsd" ] + }, + "acm022674jsd" : { + "type" : "CodePackage", + "id" : "acm022674jsd", + "name" : "bst", + "parentId" : null, + "content" : [ "acm022675jsd" ] + }, + "acm022675jsd" : { + "type" : "CodePackage", + "id" : "acm022675jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm022670jsd" ] + }, + "acm022676jsd" : { + "type" : "ControlElement", + "id" : "acm022676jsd", + "name" : "testWidth" + }, + "acm022677jsd" : { + "type" : "ControlElement", + "id" : "acm022677jsd", + "name" : "provideTestWidth" + }, + "acm022678jsd" : { + "type" : "ControlElement", + "id" : "acm022678jsd", + "name" : "testGetCharWidth" + }, + "acm022679jsd" : { + "type" : "ControlElement", + "id" : "acm022679jsd", + "name" : "provideTestGetCharWidth" + }, + "acm022680jsd" : { + "type" : "ClassUnit", + "id" : "acm022680jsd", + "name" : "BstWidthCalculatorTest", + "compilationUnitId" : "acm022670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm022676jsd", "acm022677jsd", "acm022678jsd", "acm022679jsd" ] + }, + "acm022681jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022681jsd", + "name" : "AbstractCitationKeyPatternTest", + "parentId" : "acm010873jsd", + "content" : [ "acm022688jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022682jsd" : { + "type" : "CodePackage", + "id" : "acm022682jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022683jsd" ] + }, + "acm022683jsd" : { + "type" : "CodePackage", + "id" : "acm022683jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022684jsd" ] + }, + "acm022684jsd" : { + "type" : "CodePackage", + "id" : "acm022684jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022685jsd" ] + }, + "acm022685jsd" : { + "type" : "CodePackage", + "id" : "acm022685jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm022681jsd" ] + }, + "acm022686jsd" : { + "type" : "ControlElement", + "id" : "acm022686jsd", + "name" : "AbstractCitationKeyPatternParse" + }, + "acm022687jsd" : { + "type" : "ControlElement", + "id" : "acm022687jsd", + "name" : "AbstractCitationKeyPatternParseEmptySpacer" + }, + "acm022688jsd" : { + "type" : "ClassUnit", + "id" : "acm022688jsd", + "name" : "AbstractCitationKeyPatternTest", + "compilationUnitId" : "acm022681jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd" ], + "content" : [ "acm022686jsd", "acm022687jsd" ] + }, + "acm022689jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022689jsd", + "name" : "BracketedPatternTest", + "parentId" : "acm010873jsd", + "content" : [ "acm022757jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022690jsd" : { + "type" : "CodePackage", + "id" : "acm022690jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022691jsd" ] + }, + "acm022691jsd" : { + "type" : "CodePackage", + "id" : "acm022691jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022692jsd" ] + }, + "acm022692jsd" : { + "type" : "CodePackage", + "id" : "acm022692jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022693jsd" ] + }, + "acm022693jsd" : { + "type" : "CodePackage", + "id" : "acm022693jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm022689jsd" ] + }, + "acm022694jsd" : { + "type" : "ControlElement", + "id" : "acm022694jsd", + "name" : "setUp" + }, + "acm022695jsd" : { + "type" : "ControlElement", + "id" : "acm022695jsd", + "name" : "allAuthors" + }, + "acm022696jsd" : { + "type" : "ControlElement", + "id" : "acm022696jsd", + "name" : "allAuthors" + }, + "acm022697jsd" : { + "type" : "ControlElement", + "id" : "acm022697jsd", + "name" : "authorsAlpha" + }, + "acm022698jsd" : { + "type" : "ControlElement", + "id" : "acm022698jsd", + "name" : "authorsAlpha" + }, + "acm022699jsd" : { + "type" : "ControlElement", + "id" : "acm022699jsd", + "name" : "oneAuthorPlusInitials" + }, + "acm022700jsd" : { + "type" : "ControlElement", + "id" : "acm022700jsd", + "name" : "oneAuthorPlusInitials" + }, + "acm022701jsd" : { + "type" : "ControlElement", + "id" : "acm022701jsd", + "name" : "authShort" + }, + "acm022702jsd" : { + "type" : "ControlElement", + "id" : "acm022702jsd", + "name" : "authIni1" + }, + "acm022703jsd" : { + "type" : "ControlElement", + "id" : "acm022703jsd", + "name" : "authIni1" + }, + "acm022704jsd" : { + "type" : "ControlElement", + "id" : "acm022704jsd", + "name" : "authIni2" + }, + "acm022705jsd" : { + "type" : "ControlElement", + "id" : "acm022705jsd", + "name" : "authIni2" + }, + "acm022706jsd" : { + "type" : "ControlElement", + "id" : "acm022706jsd", + "name" : "authIni4" + }, + "acm022707jsd" : { + "type" : "ControlElement", + "id" : "acm022707jsd", + "name" : "authIni4" + }, + "acm022708jsd" : { + "type" : "ControlElement", + "id" : "acm022708jsd", + "name" : "authEtAlDotDotEal" + }, + "acm022709jsd" : { + "type" : "ControlElement", + "id" : "acm022709jsd", + "name" : "authEtAlDotDotEal" + }, + "acm022710jsd" : { + "type" : "ControlElement", + "id" : "acm022710jsd", + "name" : "authAuthEa" + }, + "acm022711jsd" : { + "type" : "ControlElement", + "id" : "acm022711jsd", + "name" : "authAuthEa" + }, + "acm022712jsd" : { + "type" : "ControlElement", + "id" : "acm022712jsd", + "name" : "authShort" + }, + "acm022713jsd" : { + "type" : "ControlElement", + "id" : "acm022713jsd", + "name" : "testAuthorFieldMarkers" + }, + "acm022714jsd" : { + "type" : "ControlElement", + "id" : "acm022714jsd", + "name" : "expandBracketsWithFallback" + }, + "acm022715jsd" : { + "type" : "ControlElement", + "id" : "acm022715jsd", + "name" : "expandBracketsWithFallback" + }, + "acm022716jsd" : { + "type" : "ControlElement", + "id" : "acm022716jsd", + "name" : "bibentryExpansionTest" + }, + "acm022717jsd" : { + "type" : "ControlElement", + "id" : "acm022717jsd", + "name" : "nullDatabaseExpansionTest" + }, + "acm022718jsd" : { + "type" : "ControlElement", + "id" : "acm022718jsd", + "name" : "pureauthReturnsAuthorIfEditorIsAbsent" + }, + "acm022719jsd" : { + "type" : "ControlElement", + "id" : "acm022719jsd", + "name" : "pureauthReturnsAuthorIfEditorIsPresent" + }, + "acm022720jsd" : { + "type" : "ControlElement", + "id" : "acm022720jsd", + "name" : "pureauthReturnsEmptyStringIfAuthorIsAbsent" + }, + "acm022721jsd" : { + "type" : "ControlElement", + "id" : "acm022721jsd", + "name" : "pureauthReturnsEmptyStringIfAuthorIsAbsentAndEditorIsPresent" + }, + "acm022722jsd" : { + "type" : "ControlElement", + "id" : "acm022722jsd", + "name" : "emptyDatabaseExpansionTest" + }, + "acm022723jsd" : { + "type" : "ControlElement", + "id" : "acm022723jsd", + "name" : "databaseWithStringsExpansionTest" + }, + "acm022724jsd" : { + "type" : "ControlElement", + "id" : "acm022724jsd", + "name" : "unbalancedBracketsExpandToSomething" + }, + "acm022725jsd" : { + "type" : "ControlElement", + "id" : "acm022725jsd", + "name" : "unbalancedLastBracketExpandsToSomething" + }, + "acm022726jsd" : { + "type" : "ControlElement", + "id" : "acm022726jsd", + "name" : "entryTypeExpansionTest" + }, + "acm022727jsd" : { + "type" : "ControlElement", + "id" : "acm022727jsd", + "name" : "entryTypeExpansionLowercaseTest" + }, + "acm022728jsd" : { + "type" : "ControlElement", + "id" : "acm022728jsd", + "name" : "suppliedBibentryBracketExpansionTest" + }, + "acm022729jsd" : { + "type" : "ControlElement", + "id" : "acm022729jsd", + "name" : "nullBibentryBracketExpansionTest" + }, + "acm022730jsd" : { + "type" : "ControlElement", + "id" : "acm022730jsd", + "name" : "bracketedExpressionDefaultConstructorTest" + }, + "acm022731jsd" : { + "type" : "ControlElement", + "id" : "acm022731jsd", + "name" : "unknownKeyExpandsToEmptyString" + }, + "acm022732jsd" : { + "type" : "ControlElement", + "id" : "acm022732jsd", + "name" : "emptyPatternAndEmptyModifierExpandsToEmptyString" + }, + "acm022733jsd" : { + "type" : "ControlElement", + "id" : "acm022733jsd", + "name" : "emptyPatternAndValidModifierExpandsToEmptyString" + }, + "acm022734jsd" : { + "type" : "ControlElement", + "id" : "acm022734jsd", + "name" : "bibtexkeyPatternExpandsToCitationKey" + }, + "acm022735jsd" : { + "type" : "ControlElement", + "id" : "acm022735jsd", + "name" : "citationKeyPatternExpandsToCitationKey" + }, + "acm022736jsd" : { + "type" : "ControlElement", + "id" : "acm022736jsd", + "name" : "citationKeyPatternWithEmptyModifierExpandsToBibTeXKey" + }, + "acm022737jsd" : { + "type" : "ControlElement", + "id" : "acm022737jsd", + "name" : "authorPatternTreatsVonNamePrefixCorrectly" + }, + "acm022738jsd" : { + "type" : "ControlElement", + "id" : "acm022738jsd", + "name" : "lowerFormatterWorksOnVonNamePrefixes" + }, + "acm022739jsd" : { + "type" : "ControlElement", + "id" : "acm022739jsd", + "name" : "testResolvedFieldAndFormat" + }, + "acm022740jsd" : { + "type" : "ControlElement", + "id" : "acm022740jsd", + "name" : "testResolvedParentNotInDatabase" + }, + "acm022741jsd" : { + "type" : "ControlElement", + "id" : "acm022741jsd", + "name" : "regularExpressionReplace" + }, + "acm022742jsd" : { + "type" : "ControlElement", + "id" : "acm022742jsd", + "name" : "regularExpressionWithBrackets" + }, + "acm022743jsd" : { + "type" : "ControlElement", + "id" : "acm022743jsd", + "name" : "testEmptyBrackets" + }, + "acm022744jsd" : { + "type" : "ControlElement", + "id" : "acm022744jsd", + "name" : "expandBracketsChainsTwoTruncateModifiers" + }, + "acm022745jsd" : { + "type" : "ControlElement", + "id" : "acm022745jsd", + "name" : "expandBracketsDoesNotTruncateWithoutAnArgumentToTruncateModifier" + }, + "acm022746jsd" : { + "type" : "ControlElement", + "id" : "acm022746jsd", + "name" : "expandBracketsWithAuthorStartingWithBrackets" + }, + "acm022747jsd" : { + "type" : "ControlElement", + "id" : "acm022747jsd", + "name" : "expandBracketsWithModifierContainingRegexCharacterClass" + }, + "acm022748jsd" : { + "type" : "ControlElement", + "id" : "acm022748jsd", + "name" : "expandBracketsEmptyStringFromEmptyBrackets" + }, + "acm022749jsd" : { + "type" : "ControlElement", + "id" : "acm022749jsd", + "name" : "expandBracketsInstitutionAbbreviationFromProvidedAbbreviation" + }, + "acm022750jsd" : { + "type" : "ControlElement", + "id" : "acm022750jsd", + "name" : "expandBracketsInstitutionAbbreviationForAuthorContainingUnion" + }, + "acm022751jsd" : { + "type" : "ControlElement", + "id" : "acm022751jsd", + "name" : "expandBracketsLastNameForAuthorStartingWithOnlyLastNameStartingWithLowerCase" + }, + "acm022752jsd" : { + "type" : "ControlElement", + "id" : "acm022752jsd", + "name" : "expandBracketsLastNameWithChineseCharacters" + }, + "acm022753jsd" : { + "type" : "ControlElement", + "id" : "acm022753jsd", + "name" : "expandBracketsUnmodifiedStringFromLongFirstPageNumber" + }, + "acm022754jsd" : { + "type" : "ControlElement", + "id" : "acm022754jsd", + "name" : "expandBracketsUnmodifiedStringFromLongLastPageNumber" + }, + "acm022755jsd" : { + "type" : "ControlElement", + "id" : "acm022755jsd", + "name" : "expandBracketsWithTestCasesFromRegExpBasedFileFinder" + }, + "acm022756jsd" : { + "type" : "ControlElement", + "id" : "acm022756jsd", + "name" : "expandBracketsWithoutProtectiveBracesUsingUnprotectTermsModifier" + }, + "acm022757jsd" : { + "type" : "ClassUnit", + "id" : "acm022757jsd", + "name" : "BracketedPatternTest", + "compilationUnitId" : "acm022689jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010939jsd", "acm017988jsd", "acm018175jsd", "acm018267jsd", "acm018367jsd" ], + "content" : [ "acm022694jsd", "acm022695jsd", "acm022696jsd", "acm022697jsd", "acm022698jsd", "acm022699jsd", "acm022700jsd", "acm022701jsd", "acm022702jsd", "acm022703jsd", "acm022704jsd", "acm022705jsd", "acm022706jsd", "acm022707jsd", "acm022708jsd", "acm022709jsd", "acm022710jsd", "acm022711jsd", "acm022712jsd", "acm022713jsd", "acm022714jsd", "acm022715jsd", "acm022716jsd", "acm022717jsd", "acm022718jsd", "acm022719jsd", "acm022720jsd", "acm022721jsd", "acm022722jsd", "acm022723jsd", "acm022724jsd", "acm022725jsd", "acm022726jsd", "acm022727jsd", "acm022728jsd", "acm022729jsd", "acm022730jsd", "acm022731jsd", "acm022732jsd", "acm022733jsd", "acm022734jsd", "acm022735jsd", "acm022736jsd", "acm022737jsd", "acm022738jsd", "acm022739jsd", "acm022740jsd", "acm022741jsd", "acm022742jsd", "acm022743jsd", "acm022744jsd", "acm022745jsd", "acm022746jsd", "acm022747jsd", "acm022748jsd", "acm022749jsd", "acm022750jsd", "acm022751jsd", "acm022752jsd", "acm022753jsd", "acm022754jsd", "acm022755jsd", "acm022756jsd" ] + }, + "acm022758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022758jsd", + "name" : "CitationKeyGeneratorTest", + "parentId" : "acm010873jsd", + "content" : [ "acm022848jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022759jsd" : { + "type" : "CodePackage", + "id" : "acm022759jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022760jsd" ] + }, + "acm022760jsd" : { + "type" : "CodePackage", + "id" : "acm022760jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022761jsd" ] + }, + "acm022761jsd" : { + "type" : "CodePackage", + "id" : "acm022761jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022762jsd" ] + }, + "acm022762jsd" : { + "type" : "CodePackage", + "id" : "acm022762jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm022758jsd" ] + }, + "acm022763jsd" : { + "type" : "ControlElement", + "id" : "acm022763jsd", + "name" : "setUp" + }, + "acm022764jsd" : { + "type" : "ControlElement", + "id" : "acm022764jsd", + "name" : "createABibEntryAuthor" + }, + "acm022765jsd" : { + "type" : "ControlElement", + "id" : "acm022765jsd", + "name" : "generateKey" + }, + "acm022766jsd" : { + "type" : "ControlElement", + "id" : "acm022766jsd", + "name" : "generateKey" + }, + "acm022767jsd" : { + "type" : "ControlElement", + "id" : "acm022767jsd", + "name" : "testAndInAuthorName" + }, + "acm022768jsd" : { + "type" : "ControlElement", + "id" : "acm022768jsd", + "name" : "testCrossrefAndInAuthorNames" + }, + "acm022769jsd" : { + "type" : "ControlElement", + "id" : "acm022769jsd", + "name" : "testAndAuthorNames" + }, + "acm022770jsd" : { + "type" : "ControlElement", + "id" : "acm022770jsd", + "name" : "testCrossrefAndAuthorNames" + }, + "acm022771jsd" : { + "type" : "ControlElement", + "id" : "acm022771jsd", + "name" : "testSpecialLatexCharacterInAuthorName" + }, + "acm022772jsd" : { + "type" : "ControlElement", + "id" : "acm022772jsd", + "name" : "testMakeLabelAndCheckLegalKeys" + }, + "acm022773jsd" : { + "type" : "ControlElement", + "id" : "acm022773jsd", + "name" : "testMakeLabelAndCheckLegalKeysAccentGrave" + }, + "acm022774jsd" : { + "type" : "ControlElement", + "id" : "acm022774jsd", + "name" : "testCheckLegalKey" + }, + "acm022775jsd" : { + "type" : "ControlElement", + "id" : "acm022775jsd", + "name" : "testFirstAuthor" + }, + "acm022776jsd" : { + "type" : "ControlElement", + "id" : "acm022776jsd", + "name" : "testUniversity" + }, + "acm022777jsd" : { + "type" : "ControlElement", + "id" : "acm022777jsd", + "name" : "testcrossrefUniversity" + }, + "acm022778jsd" : { + "type" : "ControlElement", + "id" : "acm022778jsd", + "name" : "testDepartment" + }, + "acm022779jsd" : { + "type" : "ControlElement", + "id" : "acm022779jsd", + "name" : "testcrossrefDepartment" + }, + "acm022780jsd" : { + "type" : "ControlElement", + "id" : "acm022780jsd", + "name" : "testSchool" + }, + "acm022781jsd" : { + "type" : "ControlElement", + "id" : "acm022781jsd", + "name" : "generateKeyAbbreviateCorporateAuthorDepartmentWithoutAcademicInstitute" + }, + "acm022782jsd" : { + "type" : "ControlElement", + "id" : "acm022782jsd", + "name" : "generateKeyAbbreviateCorporateAuthorSchoolWithoutAcademicInstitute" + }, + "acm022783jsd" : { + "type" : "ControlElement", + "id" : "acm022783jsd", + "name" : "testcrossrefSchool" + }, + "acm022784jsd" : { + "type" : "ControlElement", + "id" : "acm022784jsd", + "name" : "testInstituteOfTechnology" + }, + "acm022785jsd" : { + "type" : "ControlElement", + "id" : "acm022785jsd", + "name" : "testcrossrefInstituteOfTechnology" + }, + "acm022786jsd" : { + "type" : "ControlElement", + "id" : "acm022786jsd", + "name" : "testAuthIniN" + }, + "acm022787jsd" : { + "type" : "ControlElement", + "id" : "acm022787jsd", + "name" : "testAuthIniNEmptyReturnsEmpty" + }, + "acm022788jsd" : { + "type" : "ControlElement", + "id" : "acm022788jsd", + "name" : "authAuthEa" + }, + "acm022789jsd" : { + "type" : "ControlElement", + "id" : "acm022789jsd", + "name" : "testAuthEaEmptyReturnsEmpty" + }, + "acm022790jsd" : { + "type" : "ControlElement", + "id" : "acm022790jsd", + "name" : "testAuthEtAl" + }, + "acm022791jsd" : { + "type" : "ControlElement", + "id" : "acm022791jsd", + "name" : "testAuthShort" + }, + "acm022792jsd" : { + "type" : "ControlElement", + "id" : "acm022792jsd", + "name" : "testAuthShortEmptyReturnsEmpty" + }, + "acm022793jsd" : { + "type" : "ControlElement", + "id" : "acm022793jsd", + "name" : "authNM" + }, + "acm022794jsd" : { + "type" : "ControlElement", + "id" : "acm022794jsd", + "name" : "firstAuthorForenameInitials" + }, + "acm022795jsd" : { + "type" : "ControlElement", + "id" : "acm022795jsd", + "name" : "firstAuthorVonAndLast" + }, + "acm022796jsd" : { + "type" : "ControlElement", + "id" : "acm022796jsd", + "name" : "firstAuthorVonAndLastNoVonInName" + }, + "acm022797jsd" : { + "type" : "ControlElement", + "id" : "acm022797jsd", + "name" : "testAllAuthors" + }, + "acm022798jsd" : { + "type" : "ControlElement", + "id" : "acm022798jsd", + "name" : "testAuthorsAlpha" + }, + "acm022799jsd" : { + "type" : "ControlElement", + "id" : "acm022799jsd", + "name" : "testAuthorsAlpha" + }, + "acm022800jsd" : { + "type" : "ControlElement", + "id" : "acm022800jsd", + "name" : "lastAuthor" + }, + "acm022801jsd" : { + "type" : "ControlElement", + "id" : "acm022801jsd", + "name" : "lastAuthorForenameInitials" + }, + "acm022802jsd" : { + "type" : "ControlElement", + "id" : "acm022802jsd", + "name" : "oneAuthorPlusIni" + }, + "acm022803jsd" : { + "type" : "ControlElement", + "id" : "acm022803jsd", + "name" : "testNAuthors1" + }, + "acm022804jsd" : { + "type" : "ControlElement", + "id" : "acm022804jsd", + "name" : "testNAuthors1EmptyReturnEmpty" + }, + "acm022805jsd" : { + "type" : "ControlElement", + "id" : "acm022805jsd", + "name" : "testNAuthors3" + }, + "acm022806jsd" : { + "type" : "ControlElement", + "id" : "acm022806jsd", + "name" : "testFirstPage" + }, + "acm022807jsd" : { + "type" : "ControlElement", + "id" : "acm022807jsd", + "name" : "testFirstPageNull" + }, + "acm022808jsd" : { + "type" : "ControlElement", + "id" : "acm022808jsd", + "name" : "testPagePrefix" + }, + "acm022809jsd" : { + "type" : "ControlElement", + "id" : "acm022809jsd", + "name" : "testPagePrefixNull" + }, + "acm022810jsd" : { + "type" : "ControlElement", + "id" : "acm022810jsd", + "name" : "testLastPage" + }, + "acm022811jsd" : { + "type" : "ControlElement", + "id" : "acm022811jsd", + "name" : "testLastPageNull" + }, + "acm022812jsd" : { + "type" : "ControlElement", + "id" : "acm022812jsd", + "name" : "veryShortTitle" + }, + "acm022813jsd" : { + "type" : "ControlElement", + "id" : "acm022813jsd", + "name" : "shortTitle" + }, + "acm022814jsd" : { + "type" : "ControlElement", + "id" : "acm022814jsd", + "name" : "camel" + }, + "acm022815jsd" : { + "type" : "ControlElement", + "id" : "acm022815jsd", + "name" : "title" + }, + "acm022816jsd" : { + "type" : "ControlElement", + "id" : "acm022816jsd", + "name" : "keywordNKeywordsSeparatedBySpace" + }, + "acm022817jsd" : { + "type" : "ControlElement", + "id" : "acm022817jsd", + "name" : "crossrefkeywordNKeywordsSeparatedBySpace" + }, + "acm022818jsd" : { + "type" : "ControlElement", + "id" : "acm022818jsd", + "name" : "keywordsNKeywordsSeparatedBySpace" + }, + "acm022819jsd" : { + "type" : "ControlElement", + "id" : "acm022819jsd", + "name" : "crossrefkeywordsNKeywordsSeparatedBySpace" + }, + "acm022820jsd" : { + "type" : "ControlElement", + "id" : "acm022820jsd", + "name" : "testCheckLegalKeyUnwantedCharacters" + }, + "acm022821jsd" : { + "type" : "ControlElement", + "id" : "acm022821jsd", + "name" : "testCheckLegalKeyNoUnwantedCharacters" + }, + "acm022822jsd" : { + "type" : "ControlElement", + "id" : "acm022822jsd", + "name" : "testCheckLegalNullInNullOut" + }, + "acm022823jsd" : { + "type" : "ControlElement", + "id" : "acm022823jsd", + "name" : "testApplyModifiers" + }, + "acm022824jsd" : { + "type" : "ControlElement", + "id" : "acm022824jsd", + "name" : "testcrossrefShorttitle" + }, + "acm022825jsd" : { + "type" : "ControlElement", + "id" : "acm022825jsd", + "name" : "testcrossrefShorttitleInitials" + }, + "acm022826jsd" : { + "type" : "ControlElement", + "id" : "acm022826jsd", + "name" : "generateKeyStripsColonFromTitle" + }, + "acm022827jsd" : { + "type" : "ControlElement", + "id" : "acm022827jsd", + "name" : "generateKeyStripsApostropheFromTitle" + }, + "acm022828jsd" : { + "type" : "ControlElement", + "id" : "acm022828jsd", + "name" : "generateKeyWithOneModifier" + }, + "acm022829jsd" : { + "type" : "ControlElement", + "id" : "acm022829jsd", + "name" : "generateKeyWithTwoModifiers" + }, + "acm022830jsd" : { + "type" : "ControlElement", + "id" : "acm022830jsd", + "name" : "generateKeyWithTitleCapitalizeModifier" + }, + "acm022831jsd" : { + "type" : "ControlElement", + "id" : "acm022831jsd", + "name" : "generateKeyWithShortTitleCapitalizeModifier" + }, + "acm022832jsd" : { + "type" : "ControlElement", + "id" : "acm022832jsd", + "name" : "generateKeyWithTitleTitleCaseModifier" + }, + "acm022833jsd" : { + "type" : "ControlElement", + "id" : "acm022833jsd", + "name" : "generateKeyWithShortTitleTitleCaseModifier" + }, + "acm022834jsd" : { + "type" : "ControlElement", + "id" : "acm022834jsd", + "name" : "generateKeyWithTitleSentenceCaseModifier" + }, + "acm022835jsd" : { + "type" : "ControlElement", + "id" : "acm022835jsd", + "name" : "generateKeyWithAuthUpperYearShortTitleCapitalizeModifier" + }, + "acm022836jsd" : { + "type" : "ControlElement", + "id" : "acm022836jsd", + "name" : "generateKeyWithYearAuthUpperTitleSentenceCaseModifier" + }, + "acm022837jsd" : { + "type" : "ControlElement", + "id" : "acm022837jsd", + "name" : "generateKeyWithMinusInCitationStyleOutsideAField" + }, + "acm022838jsd" : { + "type" : "ControlElement", + "id" : "acm022838jsd", + "name" : "generateKeyWithWithFirstNCharacters" + }, + "acm022839jsd" : { + "type" : "ControlElement", + "id" : "acm022839jsd", + "name" : "generateKeyCorrectKeyLengthWithTruncateModifierAndUnicode" + }, + "acm022840jsd" : { + "type" : "ControlElement", + "id" : "acm022840jsd", + "name" : "generateKeyCorrectKeyLengthWithAuthNofMthAndUnicode" + }, + "acm022841jsd" : { + "type" : "ControlElement", + "id" : "acm022841jsd", + "name" : "generateKeyWithNonNormalizedUnicode" + }, + "acm022842jsd" : { + "type" : "ControlElement", + "id" : "acm022842jsd", + "name" : "generateKeyWithModifierContainingRegexCharacterClass" + }, + "acm022843jsd" : { + "type" : "ControlElement", + "id" : "acm022843jsd", + "name" : "generateKeyDoesNotModifyTheKeyWithIncorrectRegexReplacement" + }, + "acm022844jsd" : { + "type" : "ControlElement", + "id" : "acm022844jsd", + "name" : "generateKeyWithFallbackField" + }, + "acm022845jsd" : { + "type" : "ControlElement", + "id" : "acm022845jsd", + "name" : "generateKeyWithLowercaseAuthorLastnameUseVonPart" + }, + "acm022846jsd" : { + "type" : "ControlElement", + "id" : "acm022846jsd", + "name" : "generateKeyWithLowercaseAuthorWithVonAndLastname" + }, + "acm022847jsd" : { + "type" : "ControlElement", + "id" : "acm022847jsd", + "name" : "generateKeyCorrectKeyWithAndOthersAtTheEnd" + }, + "acm022848jsd" : { + "type" : "ClassUnit", + "id" : "acm022848jsd", + "name" : "CitationKeyGeneratorTest", + "compilationUnitId" : "acm022758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm010993jsd", "acm011011jsd", "acm012515jsd", "acm017988jsd", "acm018267jsd", "acm020676jsd", "acm020693jsd" ], + "content" : [ "acm022763jsd", "acm022764jsd", "acm022765jsd", "acm022766jsd", "acm022767jsd", "acm022768jsd", "acm022769jsd", "acm022770jsd", "acm022771jsd", "acm022772jsd", "acm022773jsd", "acm022774jsd", "acm022775jsd", "acm022776jsd", "acm022777jsd", "acm022778jsd", "acm022779jsd", "acm022780jsd", "acm022781jsd", "acm022782jsd", "acm022783jsd", "acm022784jsd", "acm022785jsd", "acm022786jsd", "acm022787jsd", "acm022788jsd", "acm022789jsd", "acm022790jsd", "acm022791jsd", "acm022792jsd", "acm022793jsd", "acm022794jsd", "acm022795jsd", "acm022796jsd", "acm022797jsd", "acm022798jsd", "acm022799jsd", "acm022800jsd", "acm022801jsd", "acm022802jsd", "acm022803jsd", "acm022804jsd", "acm022805jsd", "acm022806jsd", "acm022807jsd", "acm022808jsd", "acm022809jsd", "acm022810jsd", "acm022811jsd", "acm022812jsd", "acm022813jsd", "acm022814jsd", "acm022815jsd", "acm022816jsd", "acm022817jsd", "acm022818jsd", "acm022819jsd", "acm022820jsd", "acm022821jsd", "acm022822jsd", "acm022823jsd", "acm022824jsd", "acm022825jsd", "acm022826jsd", "acm022827jsd", "acm022828jsd", "acm022829jsd", "acm022830jsd", "acm022831jsd", "acm022832jsd", "acm022833jsd", "acm022834jsd", "acm022835jsd", "acm022836jsd", "acm022837jsd", "acm022838jsd", "acm022839jsd", "acm022840jsd", "acm022841jsd", "acm022842jsd", "acm022843jsd", "acm022844jsd", "acm022845jsd", "acm022846jsd", "acm022847jsd" ] + }, + "acm022849jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022849jsd", + "name" : "MakeLabelWithDatabaseTest", + "parentId" : "acm010873jsd", + "content" : [ "acm022905jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022850jsd" : { + "type" : "CodePackage", + "id" : "acm022850jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022851jsd" ] + }, + "acm022851jsd" : { + "type" : "CodePackage", + "id" : "acm022851jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022852jsd" ] + }, + "acm022852jsd" : { + "type" : "CodePackage", + "id" : "acm022852jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022853jsd" ] + }, + "acm022853jsd" : { + "type" : "CodePackage", + "id" : "acm022853jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm022849jsd" ] + }, + "acm022854jsd" : { + "type" : "ControlElement", + "id" : "acm022854jsd", + "name" : "setUp" + }, + "acm022855jsd" : { + "type" : "ControlElement", + "id" : "acm022855jsd", + "name" : "generateDefaultKey" + }, + "acm022856jsd" : { + "type" : "ControlElement", + "id" : "acm022856jsd", + "name" : "generateDefaultKeyAlreadyExistsDuplicatesStartAtA" + }, + "acm022857jsd" : { + "type" : "ControlElement", + "id" : "acm022857jsd", + "name" : "generateDefaultKeyAlwaysLetter" + }, + "acm022858jsd" : { + "type" : "ControlElement", + "id" : "acm022858jsd", + "name" : "generateDefaultKeyAlwaysLetterAlreadyExistsDuplicatesStartAtB" + }, + "acm022859jsd" : { + "type" : "ControlElement", + "id" : "acm022859jsd", + "name" : "generateDefaultKeyStartDuplicatesAtB" + }, + "acm022860jsd" : { + "type" : "ControlElement", + "id" : "acm022860jsd", + "name" : "generateDefaultKeyAlreadyExistsDuplicatesStartAtB" + }, + "acm022861jsd" : { + "type" : "ControlElement", + "id" : "acm022861jsd", + "name" : "generateDefaultKeyAlreadyExistsManyDuplicates" + }, + "acm022862jsd" : { + "type" : "ControlElement", + "id" : "acm022862jsd", + "name" : "generateDefaultKeyFirstTwoAlreadyExists" + }, + "acm022863jsd" : { + "type" : "ControlElement", + "id" : "acm022863jsd", + "name" : "generateKeyAuthLowerModified" + }, + "acm022864jsd" : { + "type" : "ControlElement", + "id" : "acm022864jsd", + "name" : "generateKeyAuthUpperModified" + }, + "acm022865jsd" : { + "type" : "ControlElement", + "id" : "acm022865jsd", + "name" : "generateKeyAuthTitleCaseModified" + }, + "acm022866jsd" : { + "type" : "ControlElement", + "id" : "acm022866jsd", + "name" : "generateKeyAuthSentenceCaseModified" + }, + "acm022867jsd" : { + "type" : "ControlElement", + "id" : "acm022867jsd", + "name" : "generateKeyAuthCapitalizeModified" + }, + "acm022868jsd" : { + "type" : "ControlElement", + "id" : "acm022868jsd", + "name" : "generateDefaultKeyFixedValue" + }, + "acm022869jsd" : { + "type" : "ControlElement", + "id" : "acm022869jsd", + "name" : "generateKeyShortYear" + }, + "acm022870jsd" : { + "type" : "ControlElement", + "id" : "acm022870jsd", + "name" : "generateKeyAuthN" + }, + "acm022871jsd" : { + "type" : "ControlElement", + "id" : "acm022871jsd", + "name" : "generateKeyAuthNShortName" + }, + "acm022872jsd" : { + "type" : "ControlElement", + "id" : "acm022872jsd", + "name" : "generateKeyEmptyField" + }, + "acm022873jsd" : { + "type" : "ControlElement", + "id" : "acm022873jsd", + "name" : "generateKeyEmptyFieldDefaultText" + }, + "acm022874jsd" : { + "type" : "ControlElement", + "id" : "acm022874jsd", + "name" : "generateKeyEmptyFieldNoColonInDefaultText" + }, + "acm022875jsd" : { + "type" : "ControlElement", + "id" : "acm022875jsd", + "name" : "generateKeyTitle" + }, + "acm022876jsd" : { + "type" : "ControlElement", + "id" : "acm022876jsd", + "name" : "generateKeyTitleAbbr" + }, + "acm022877jsd" : { + "type" : "ControlElement", + "id" : "acm022877jsd", + "name" : "generateKeyShorttitle" + }, + "acm022878jsd" : { + "type" : "ControlElement", + "id" : "acm022878jsd", + "name" : "generateKeyShorttitleLowerModified" + }, + "acm022879jsd" : { + "type" : "ControlElement", + "id" : "acm022879jsd", + "name" : "generateKeyShorttitleUpperModified" + }, + "acm022880jsd" : { + "type" : "ControlElement", + "id" : "acm022880jsd", + "name" : "generateKeyShorttitleTitleCaseModified" + }, + "acm022881jsd" : { + "type" : "ControlElement", + "id" : "acm022881jsd", + "name" : "generateKeyShorttitleSentenceCaseModified" + }, + "acm022882jsd" : { + "type" : "ControlElement", + "id" : "acm022882jsd", + "name" : "generateKeyShorttitleCapitalizeModified" + }, + "acm022883jsd" : { + "type" : "ControlElement", + "id" : "acm022883jsd", + "name" : "generateKeyVeryshorttitle" + }, + "acm022884jsd" : { + "type" : "ControlElement", + "id" : "acm022884jsd", + "name" : "generateKeyVeryshorttitleLowerModified" + }, + "acm022885jsd" : { + "type" : "ControlElement", + "id" : "acm022885jsd", + "name" : "generateKeyVeryshorttitleUpperModified" + }, + "acm022886jsd" : { + "type" : "ControlElement", + "id" : "acm022886jsd", + "name" : "generateKeyVeryshorttitleTitleCaseModified" + }, + "acm022887jsd" : { + "type" : "ControlElement", + "id" : "acm022887jsd", + "name" : "generateKeyVeryshorttitleSentenceCaseModified" + }, + "acm022888jsd" : { + "type" : "ControlElement", + "id" : "acm022888jsd", + "name" : "generateKeyVeryshorttitleCapitalizeModified" + }, + "acm022889jsd" : { + "type" : "ControlElement", + "id" : "acm022889jsd", + "name" : "generateKeyShorttitleINI" + }, + "acm022890jsd" : { + "type" : "ControlElement", + "id" : "acm022890jsd", + "name" : "generateKeyCamel" + }, + "acm022891jsd" : { + "type" : "ControlElement", + "id" : "acm022891jsd", + "name" : "generateKeyAuthNM" + }, + "acm022892jsd" : { + "type" : "ControlElement", + "id" : "acm022892jsd", + "name" : "generateKeyAuthNMLargeN" + }, + "acm022893jsd" : { + "type" : "ControlElement", + "id" : "acm022893jsd", + "name" : "generateKeyAuthNMLargeM" + }, + "acm022894jsd" : { + "type" : "ControlElement", + "id" : "acm022894jsd", + "name" : "generateKeyAuthNMLargeMReallyReturnsEmptyString" + }, + "acm022895jsd" : { + "type" : "ControlElement", + "id" : "acm022895jsd", + "name" : "generateKeyRegExReplace" + }, + "acm022896jsd" : { + "type" : "ControlElement", + "id" : "acm022896jsd", + "name" : "generateKeyAuthIni" + }, + "acm022897jsd" : { + "type" : "ControlElement", + "id" : "acm022897jsd", + "name" : "generateKeyAuthIniMany" + }, + "acm022898jsd" : { + "type" : "ControlElement", + "id" : "acm022898jsd", + "name" : "generateKeyTitleRegexe" + }, + "acm022899jsd" : { + "type" : "ControlElement", + "id" : "acm022899jsd", + "name" : "generateKeyTitleTitleCase" + }, + "acm022900jsd" : { + "type" : "ControlElement", + "id" : "acm022900jsd", + "name" : "generateKeyTitleCapitalize" + }, + "acm022901jsd" : { + "type" : "ControlElement", + "id" : "acm022901jsd", + "name" : "generateKeyTitleSentenceCase" + }, + "acm022902jsd" : { + "type" : "ControlElement", + "id" : "acm022902jsd", + "name" : "generateKeyTitleTitleCaseAbbr" + }, + "acm022903jsd" : { + "type" : "ControlElement", + "id" : "acm022903jsd", + "name" : "generateKeyTitleCapitalizeAbbr" + }, + "acm022904jsd" : { + "type" : "ControlElement", + "id" : "acm022904jsd", + "name" : "generateKeyTitleSentenceCaseAbbr" + }, + "acm022905jsd" : { + "type" : "ClassUnit", + "id" : "acm022905jsd", + "name" : "MakeLabelWithDatabaseTest", + "compilationUnitId" : "acm022849jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm010993jsd", "acm011002jsd", "acm011011jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm022854jsd", "acm022855jsd", "acm022856jsd", "acm022857jsd", "acm022858jsd", "acm022859jsd", "acm022860jsd", "acm022861jsd", "acm022862jsd", "acm022863jsd", "acm022864jsd", "acm022865jsd", "acm022866jsd", "acm022867jsd", "acm022868jsd", "acm022869jsd", "acm022870jsd", "acm022871jsd", "acm022872jsd", "acm022873jsd", "acm022874jsd", "acm022875jsd", "acm022876jsd", "acm022877jsd", "acm022878jsd", "acm022879jsd", "acm022880jsd", "acm022881jsd", "acm022882jsd", "acm022883jsd", "acm022884jsd", "acm022885jsd", "acm022886jsd", "acm022887jsd", "acm022888jsd", "acm022889jsd", "acm022890jsd", "acm022891jsd", "acm022892jsd", "acm022893jsd", "acm022894jsd", "acm022895jsd", "acm022896jsd", "acm022897jsd", "acm022898jsd", "acm022899jsd", "acm022900jsd", "acm022901jsd", "acm022902jsd", "acm022903jsd", "acm022904jsd" ] + }, + "acm022906jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022906jsd", + "name" : "MakeLabelWithoutDatabaseTest", + "parentId" : "acm010873jsd", + "content" : [ "acm022914jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationkeypattern" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022907jsd" : { + "type" : "CodePackage", + "id" : "acm022907jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022908jsd" ] + }, + "acm022908jsd" : { + "type" : "CodePackage", + "id" : "acm022908jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022909jsd" ] + }, + "acm022909jsd" : { + "type" : "CodePackage", + "id" : "acm022909jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022910jsd" ] + }, + "acm022910jsd" : { + "type" : "CodePackage", + "id" : "acm022910jsd", + "name" : "citationkeypattern", + "parentId" : null, + "content" : [ "acm022906jsd" ] + }, + "acm022911jsd" : { + "type" : "ControlElement", + "id" : "acm022911jsd", + "name" : "setUp" + }, + "acm022912jsd" : { + "type" : "ControlElement", + "id" : "acm022912jsd", + "name" : "makeAuthorLabelForFileSearch" + }, + "acm022913jsd" : { + "type" : "ControlElement", + "id" : "acm022913jsd", + "name" : "makeEditorLabelForFileSearch" + }, + "acm022914jsd" : { + "type" : "ClassUnit", + "id" : "acm022914jsd", + "name" : "MakeLabelWithoutDatabaseTest", + "compilationUnitId" : "acm022906jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm010993jsd", "acm011011jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm022911jsd", "acm022912jsd", "acm022913jsd" ] + }, + "acm022915jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022915jsd", + "name" : "CitationStyleCacheTest", + "parentId" : "acm011016jsd", + "content" : [ "acm022921jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022916jsd" : { + "type" : "CodePackage", + "id" : "acm022916jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022917jsd" ] + }, + "acm022917jsd" : { + "type" : "CodePackage", + "id" : "acm022917jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022918jsd" ] + }, + "acm022918jsd" : { + "type" : "CodePackage", + "id" : "acm022918jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022919jsd" ] + }, + "acm022919jsd" : { + "type" : "CodePackage", + "id" : "acm022919jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm022915jsd" ] + }, + "acm022920jsd" : { + "type" : "ControlElement", + "id" : "acm022920jsd", + "name" : "getCitationForTest" + }, + "acm022921jsd" : { + "type" : "ClassUnit", + "id" : "acm022921jsd", + "name" : "CitationStyleCacheTest", + "compilationUnitId" : "acm022915jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011051jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm022920jsd" ] + }, + "acm022922jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022922jsd", + "name" : "CitationStyleGeneratorTest", + "parentId" : "acm011016jsd", + "content" : [ "acm022939jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022923jsd" : { + "type" : "CodePackage", + "id" : "acm022923jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022924jsd" ] + }, + "acm022924jsd" : { + "type" : "CodePackage", + "id" : "acm022924jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022925jsd" ] + }, + "acm022925jsd" : { + "type" : "CodePackage", + "id" : "acm022925jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022926jsd" ] + }, + "acm022926jsd" : { + "type" : "CodePackage", + "id" : "acm022926jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm022922jsd" ] + }, + "acm022927jsd" : { + "type" : "ControlElement", + "id" : "acm022927jsd", + "name" : "testACMCitation" + }, + "acm022928jsd" : { + "type" : "ControlElement", + "id" : "acm022928jsd", + "name" : "testAPACitation" + }, + "acm022929jsd" : { + "type" : "ControlElement", + "id" : "acm022929jsd", + "name" : "testIgnoreNewLine" + }, + "acm022930jsd" : { + "type" : "ControlElement", + "id" : "acm022930jsd", + "name" : "testIgnoreCarriageReturnNewLine" + }, + "acm022931jsd" : { + "type" : "ControlElement", + "id" : "acm022931jsd", + "name" : "testMissingCitationStyle" + }, + "acm022932jsd" : { + "type" : "ControlElement", + "id" : "acm022932jsd", + "name" : "testHtmlFormat" + }, + "acm022933jsd" : { + "type" : "ControlElement", + "id" : "acm022933jsd", + "name" : "testTextFormat" + }, + "acm022934jsd" : { + "type" : "ControlElement", + "id" : "acm022934jsd", + "name" : "testHandleDiacritics" + }, + "acm022935jsd" : { + "type" : "ControlElement", + "id" : "acm022935jsd", + "name" : "testHandleAmpersand" + }, + "acm022936jsd" : { + "type" : "ControlElement", + "id" : "acm022936jsd", + "name" : "testHandleCrossRefFields" + }, + "acm022937jsd" : { + "type" : "ControlElement", + "id" : "acm022937jsd", + "name" : "testCslMapping" + }, + "acm022938jsd" : { + "type" : "ControlElement", + "id" : "acm022938jsd", + "name" : "testCslMapping" + }, + "acm022939jsd" : { + "type" : "ClassUnit", + "id" : "acm022939jsd", + "name" : "CitationStyleGeneratorTest", + "compilationUnitId" : "acm022922jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011039jsd", "acm011075jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm022927jsd", "acm022928jsd", "acm022929jsd", "acm022930jsd", "acm022931jsd", "acm022932jsd", "acm022933jsd", "acm022934jsd", "acm022935jsd", "acm022936jsd", "acm022937jsd", "acm022938jsd" ] + }, + "acm022940jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022940jsd", + "name" : "CitationStyleTest", + "parentId" : "acm011016jsd", + "content" : [ "acm022948jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "citationstyle" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022941jsd" : { + "type" : "CodePackage", + "id" : "acm022941jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022942jsd" ] + }, + "acm022942jsd" : { + "type" : "CodePackage", + "id" : "acm022942jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022943jsd" ] + }, + "acm022943jsd" : { + "type" : "CodePackage", + "id" : "acm022943jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022944jsd" ] + }, + "acm022944jsd" : { + "type" : "CodePackage", + "id" : "acm022944jsd", + "name" : "citationstyle", + "parentId" : null, + "content" : [ "acm022940jsd" ] + }, + "acm022945jsd" : { + "type" : "ControlElement", + "id" : "acm022945jsd", + "name" : "getDefault" + }, + "acm022946jsd" : { + "type" : "ControlElement", + "id" : "acm022946jsd", + "name" : "testDefaultCitation" + }, + "acm022947jsd" : { + "type" : "ControlElement", + "id" : "acm022947jsd", + "name" : "testDiscoverCitationStylesNotNull" + }, + "acm022948jsd" : { + "type" : "ClassUnit", + "id" : "acm022948jsd", + "name" : "CitationStyleTest", + "compilationUnitId" : "acm022940jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011039jsd", "acm017988jsd", "acm018022jsd", "acm018333jsd" ], + "content" : [ "acm022945jsd", "acm022946jsd", "acm022947jsd" ] + }, + "acm022949jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022949jsd", + "name" : "BibtexBiblatexRoundtripTest", + "parentId" : "acm011112jsd", + "content" : [ "acm022957jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022950jsd" : { + "type" : "CodePackage", + "id" : "acm022950jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022951jsd" ] + }, + "acm022951jsd" : { + "type" : "CodePackage", + "id" : "acm022951jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022952jsd" ] + }, + "acm022952jsd" : { + "type" : "CodePackage", + "id" : "acm022952jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022953jsd" ] + }, + "acm022953jsd" : { + "type" : "CodePackage", + "id" : "acm022953jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm022949jsd" ] + }, + "acm022954jsd" : { + "type" : "ControlElement", + "id" : "acm022954jsd", + "name" : "setUp" + }, + "acm022955jsd" : { + "type" : "ControlElement", + "id" : "acm022955jsd", + "name" : "roundTripBibtexToBiblatexIsIdentity" + }, + "acm022956jsd" : { + "type" : "ControlElement", + "id" : "acm022956jsd", + "name" : "roundTripBiblatexToBibtexIsIdentity" + }, + "acm022957jsd" : { + "type" : "ClassUnit", + "id" : "acm022957jsd", + "name" : "BibtexBiblatexRoundtripTest", + "compilationUnitId" : "acm022949jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011131jsd", "acm011138jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm022954jsd", "acm022955jsd", "acm022956jsd" ] + }, + "acm022958jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022958jsd", + "name" : "CleanupWorkerTest", + "parentId" : "acm011112jsd", + "content" : [ "acm022987jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022959jsd" : { + "type" : "CodePackage", + "id" : "acm022959jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022960jsd" ] + }, + "acm022960jsd" : { + "type" : "CodePackage", + "id" : "acm022960jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022961jsd" ] + }, + "acm022961jsd" : { + "type" : "CodePackage", + "id" : "acm022961jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022962jsd" ] + }, + "acm022962jsd" : { + "type" : "CodePackage", + "id" : "acm022962jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm022958jsd" ] + }, + "acm022963jsd" : { + "type" : "ControlElement", + "id" : "acm022963jsd", + "name" : "setUp" + }, + "acm022964jsd" : { + "type" : "ControlElement", + "id" : "acm022964jsd", + "name" : "cleanupWithNullPresetThrowsException" + }, + "acm022965jsd" : { + "type" : "ControlElement", + "id" : "acm022965jsd", + "name" : "cleanupNullEntryThrowsException" + }, + "acm022966jsd" : { + "type" : "ControlElement", + "id" : "acm022966jsd", + "name" : "cleanupDoesNothingByDefault" + }, + "acm022967jsd" : { + "type" : "ControlElement", + "id" : "acm022967jsd", + "name" : "upgradeExternalLinksMoveFromPdfToFile" + }, + "acm022968jsd" : { + "type" : "ControlElement", + "id" : "acm022968jsd", + "name" : "upgradeExternalLinksMoveFromPsToFile" + }, + "acm022969jsd" : { + "type" : "ControlElement", + "id" : "acm022969jsd", + "name" : "cleanupDoiRemovesLeadingHttp" + }, + "acm022970jsd" : { + "type" : "ControlElement", + "id" : "acm022970jsd", + "name" : "cleanupDoiReturnsChanges" + }, + "acm022971jsd" : { + "type" : "ControlElement", + "id" : "acm022971jsd", + "name" : "cleanupDoiFindsDoiInURLFieldAndMoveItToDOIField" + }, + "acm022972jsd" : { + "type" : "ControlElement", + "id" : "acm022972jsd", + "name" : "cleanupDoiReturnsChangeWhenDoiInURLField" + }, + "acm022973jsd" : { + "type" : "ControlElement", + "id" : "acm022973jsd", + "name" : "cleanupMonthChangesNumberToBibtex" + }, + "acm022974jsd" : { + "type" : "ControlElement", + "id" : "acm022974jsd", + "name" : "cleanupPageNumbersConvertsSingleDashToDouble" + }, + "acm022975jsd" : { + "type" : "ControlElement", + "id" : "acm022975jsd", + "name" : "cleanupDatesConvertsToCorrectFormat" + }, + "acm022976jsd" : { + "type" : "ControlElement", + "id" : "acm022976jsd", + "name" : "cleanupFixFileLinksMovesSingleDescriptionToLink" + }, + "acm022977jsd" : { + "type" : "ControlElement", + "id" : "acm022977jsd", + "name" : "cleanupMoveFilesMovesFileFromSubfolder" + }, + "acm022978jsd" : { + "type" : "ControlElement", + "id" : "acm022978jsd", + "name" : "cleanupRelativePathsConvertAbsoluteToRelativePath" + }, + "acm022979jsd" : { + "type" : "ControlElement", + "id" : "acm022979jsd", + "name" : "cleanupRenamePdfRenamesRelativeFile" + }, + "acm022980jsd" : { + "type" : "ControlElement", + "id" : "acm022980jsd", + "name" : "cleanupHtmlToLatexConvertsEpsilonToLatex" + }, + "acm022981jsd" : { + "type" : "ControlElement", + "id" : "acm022981jsd", + "name" : "cleanupUnitsConvertsOneAmpereToLatex" + }, + "acm022982jsd" : { + "type" : "ControlElement", + "id" : "acm022982jsd", + "name" : "cleanupCasesAddsBracketAroundAluminiumGalliumArsenid" + }, + "acm022983jsd" : { + "type" : "ControlElement", + "id" : "acm022983jsd", + "name" : "cleanupLatexMergesTwoLatexMathEnvironments" + }, + "acm022984jsd" : { + "type" : "ControlElement", + "id" : "acm022984jsd", + "name" : "convertToBiblatexMovesAddressToLocation" + }, + "acm022985jsd" : { + "type" : "ControlElement", + "id" : "acm022985jsd", + "name" : "convertToBiblatexMovesJournalToJournalTitle" + }, + "acm022986jsd" : { + "type" : "ControlElement", + "id" : "acm022986jsd", + "name" : "cleanupWithDisabledFieldFormatterChangesNothing" + }, + "acm022987jsd" : { + "type" : "ClassUnit", + "id" : "acm022987jsd", + "name" : "CleanupWorkerTest", + "compilationUnitId" : "acm022958jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011124jsd", "acm011169jsd", "acm011188jsd", "acm011828jsd", "acm011852jsd", "acm011864jsd", "acm011888jsd", "acm011912jsd", "acm012060jsd", "acm012098jsd", "acm016641jsd", "acm016690jsd", "acm016716jsd", "acm017884jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm018813jsd", "acm019421jsd", "acm020791jsd", "acm020792jsd", "acm020848jsd" ], + "content" : [ "acm022963jsd", "acm022964jsd", "acm022965jsd", "acm022966jsd", "acm022967jsd", "acm022968jsd", "acm022969jsd", "acm022970jsd", "acm022971jsd", "acm022972jsd", "acm022973jsd", "acm022974jsd", "acm022975jsd", "acm022976jsd", "acm022977jsd", "acm022978jsd", "acm022979jsd", "acm022980jsd", "acm022981jsd", "acm022982jsd", "acm022983jsd", "acm022984jsd", "acm022985jsd", "acm022986jsd" ] + }, + "acm022988jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm022988jsd", + "name" : "ConvertToBiblatexCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023000jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm022989jsd" : { + "type" : "CodePackage", + "id" : "acm022989jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm022990jsd" ] + }, + "acm022990jsd" : { + "type" : "CodePackage", + "id" : "acm022990jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm022991jsd" ] + }, + "acm022991jsd" : { + "type" : "CodePackage", + "id" : "acm022991jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm022992jsd" ] + }, + "acm022992jsd" : { + "type" : "CodePackage", + "id" : "acm022992jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm022988jsd" ] + }, + "acm022993jsd" : { + "type" : "ControlElement", + "id" : "acm022993jsd", + "name" : "setUp" + }, + "acm022994jsd" : { + "type" : "ControlElement", + "id" : "acm022994jsd", + "name" : "cleanupMovesYearMonthToDate" + }, + "acm022995jsd" : { + "type" : "ControlElement", + "id" : "acm022995jsd", + "name" : "cleanupWithDateAlreadyPresentAndDifferentFromYearDoesNothing" + }, + "acm022996jsd" : { + "type" : "ControlElement", + "id" : "acm022996jsd", + "name" : "cleanupWithDateAlreadyPresentAndDifferentFromMonthDoesNothing" + }, + "acm022997jsd" : { + "type" : "ControlElement", + "id" : "acm022997jsd", + "name" : "cleanupWithEmptyDateDoesNothing" + }, + "acm022998jsd" : { + "type" : "ControlElement", + "id" : "acm022998jsd", + "name" : "cleanupWithDateAlreadyPresentAndEqualsToYearAndMonth" + }, + "acm022999jsd" : { + "type" : "ControlElement", + "id" : "acm022999jsd", + "name" : "cleanupMovesJournalToJournaltitle" + }, + "acm023000jsd" : { + "type" : "ClassUnit", + "id" : "acm023000jsd", + "name" : "ConvertToBiblatexCleanupTest", + "compilationUnitId" : "acm022988jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011131jsd", "acm018267jsd" ], + "content" : [ "acm022993jsd", "acm022994jsd", "acm022995jsd", "acm022996jsd", "acm022997jsd", "acm022998jsd", "acm022999jsd" ] + }, + "acm023001jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023001jsd", + "name" : "ConvertToBibtexCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023011jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023002jsd" : { + "type" : "CodePackage", + "id" : "acm023002jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023003jsd" ] + }, + "acm023003jsd" : { + "type" : "CodePackage", + "id" : "acm023003jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023004jsd" ] + }, + "acm023004jsd" : { + "type" : "CodePackage", + "id" : "acm023004jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023005jsd" ] + }, + "acm023005jsd" : { + "type" : "CodePackage", + "id" : "acm023005jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023001jsd" ] + }, + "acm023006jsd" : { + "type" : "ControlElement", + "id" : "acm023006jsd", + "name" : "setUp" + }, + "acm023007jsd" : { + "type" : "ControlElement", + "id" : "acm023007jsd", + "name" : "cleanupMovesDateToYearAndMonth" + }, + "acm023008jsd" : { + "type" : "ControlElement", + "id" : "acm023008jsd", + "name" : "cleanupWithYearAlreadyPresentDoesNothing" + }, + "acm023009jsd" : { + "type" : "ControlElement", + "id" : "acm023009jsd", + "name" : "cleanupMovesJournaltitleToJournal" + }, + "acm023010jsd" : { + "type" : "ControlElement", + "id" : "acm023010jsd", + "name" : "cleanUpDoesntMoveFileField" + }, + "acm023011jsd" : { + "type" : "ClassUnit", + "id" : "acm023011jsd", + "name" : "ConvertToBibtexCleanupTest", + "compilationUnitId" : "acm023001jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011138jsd", "acm018267jsd" ], + "content" : [ "acm023006jsd", "acm023007jsd", "acm023008jsd", "acm023009jsd", "acm023010jsd" ] + }, + "acm023012jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023012jsd", + "name" : "DoiCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023019jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023013jsd" : { + "type" : "CodePackage", + "id" : "acm023013jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023014jsd" ] + }, + "acm023014jsd" : { + "type" : "CodePackage", + "id" : "acm023014jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023015jsd" ] + }, + "acm023015jsd" : { + "type" : "CodePackage", + "id" : "acm023015jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023016jsd" ] + }, + "acm023016jsd" : { + "type" : "CodePackage", + "id" : "acm023016jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023012jsd" ] + }, + "acm023017jsd" : { + "type" : "ControlElement", + "id" : "acm023017jsd", + "name" : "testChangeDoi" + }, + "acm023018jsd" : { + "type" : "ControlElement", + "id" : "acm023018jsd", + "name" : "provideDoiForAllLowers" + }, + "acm023019jsd" : { + "type" : "ClassUnit", + "id" : "acm023019jsd", + "name" : "DoiCleanupTest", + "compilationUnitId" : "acm023012jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011146jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm023017jsd", "acm023018jsd" ] + }, + "acm023020jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023020jsd", + "name" : "DoiDecodeCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023027jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023021jsd" : { + "type" : "CodePackage", + "id" : "acm023021jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023022jsd" ] + }, + "acm023022jsd" : { + "type" : "CodePackage", + "id" : "acm023022jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023023jsd" ] + }, + "acm023023jsd" : { + "type" : "CodePackage", + "id" : "acm023023jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023024jsd" ] + }, + "acm023024jsd" : { + "type" : "CodePackage", + "id" : "acm023024jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023020jsd" ] + }, + "acm023025jsd" : { + "type" : "ControlElement", + "id" : "acm023025jsd", + "name" : "testChangeDoi" + }, + "acm023026jsd" : { + "type" : "ControlElement", + "id" : "acm023026jsd", + "name" : "provideDoiForAllLowers" + }, + "acm023027jsd" : { + "type" : "ClassUnit", + "id" : "acm023027jsd", + "name" : "DoiDecodeCleanupTest", + "compilationUnitId" : "acm023020jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011146jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm023025jsd", "acm023026jsd" ] + }, + "acm023028jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023028jsd", + "name" : "EprintCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023034jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023029jsd" : { + "type" : "CodePackage", + "id" : "acm023029jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023030jsd" ] + }, + "acm023030jsd" : { + "type" : "CodePackage", + "id" : "acm023030jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023031jsd" ] + }, + "acm023031jsd" : { + "type" : "CodePackage", + "id" : "acm023031jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023032jsd" ] + }, + "acm023032jsd" : { + "type" : "CodePackage", + "id" : "acm023032jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023028jsd" ] + }, + "acm023033jsd" : { + "type" : "ControlElement", + "id" : "acm023033jsd", + "name" : "cleanupCompleteEntry" + }, + "acm023034jsd" : { + "type" : "ClassUnit", + "id" : "acm023034jsd", + "name" : "EprintCleanupTest", + "compilationUnitId" : "acm023028jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011153jsd", "acm018267jsd" ], + "content" : [ "acm023033jsd" ] + }, + "acm023035jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023035jsd", + "name" : "FieldFormatterCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023046jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023036jsd" : { + "type" : "CodePackage", + "id" : "acm023036jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023037jsd" ] + }, + "acm023037jsd" : { + "type" : "CodePackage", + "id" : "acm023037jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023038jsd" ] + }, + "acm023038jsd" : { + "type" : "CodePackage", + "id" : "acm023038jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023039jsd" ] + }, + "acm023039jsd" : { + "type" : "CodePackage", + "id" : "acm023039jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023035jsd" ] + }, + "acm023040jsd" : { + "type" : "ControlElement", + "id" : "acm023040jsd", + "name" : "setUp" + }, + "acm023041jsd" : { + "type" : "ControlElement", + "id" : "acm023041jsd", + "name" : "testInternalAllField" + }, + "acm023042jsd" : { + "type" : "ControlElement", + "id" : "acm023042jsd", + "name" : "testInternalAllTextFieldsField" + }, + "acm023043jsd" : { + "type" : "ControlElement", + "id" : "acm023043jsd", + "name" : "testCleanupAllFieldsIgnoresKeyField" + }, + "acm023044jsd" : { + "type" : "ControlElement", + "id" : "acm023044jsd", + "name" : "testCleanupAllTextFieldsIgnoresKeyField" + }, + "acm023045jsd" : { + "type" : "ControlElement", + "id" : "acm023045jsd", + "name" : "testCleanupKeyFieldCleansUpKeyField" + }, + "acm023046jsd" : { + "type" : "ClassUnit", + "id" : "acm023046jsd", + "name" : "FieldFormatterCleanupTest", + "compilationUnitId" : "acm023035jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm012047jsd", "acm012169jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm023040jsd", "acm023041jsd", "acm023042jsd", "acm023043jsd", "acm023044jsd", "acm023045jsd" ] + }, + "acm023047jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023047jsd", + "name" : "ISSNCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023056jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023048jsd" : { + "type" : "CodePackage", + "id" : "acm023048jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023049jsd" ] + }, + "acm023049jsd" : { + "type" : "CodePackage", + "id" : "acm023049jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023050jsd" ] + }, + "acm023050jsd" : { + "type" : "CodePackage", + "id" : "acm023050jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023051jsd" ] + }, + "acm023051jsd" : { + "type" : "CodePackage", + "id" : "acm023051jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023047jsd" ] + }, + "acm023052jsd" : { + "type" : "ControlElement", + "id" : "acm023052jsd", + "name" : "setUp" + }, + "acm023053jsd" : { + "type" : "ControlElement", + "id" : "acm023053jsd", + "name" : "cleanupISSNReturnsCorrectISSN" + }, + "acm023054jsd" : { + "type" : "ControlElement", + "id" : "acm023054jsd", + "name" : "cleanupISSNAddsMissingDash" + }, + "acm023055jsd" : { + "type" : "ControlElement", + "id" : "acm023055jsd", + "name" : "cleanupISSNJunkStaysJunk" + }, + "acm023056jsd" : { + "type" : "ClassUnit", + "id" : "acm023056jsd", + "name" : "ISSNCleanupTest", + "compilationUnitId" : "acm023047jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011124jsd", "acm016641jsd", "acm018022jsd", "acm018267jsd", "acm020791jsd", "acm020848jsd" ], + "content" : [ "acm023052jsd", "acm023053jsd", "acm023054jsd", "acm023055jsd" ] + }, + "acm023057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023057jsd", + "name" : "MoveFilesCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023069jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023058jsd" : { + "type" : "CodePackage", + "id" : "acm023058jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023059jsd" ] + }, + "acm023059jsd" : { + "type" : "CodePackage", + "id" : "acm023059jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023060jsd" ] + }, + "acm023060jsd" : { + "type" : "CodePackage", + "id" : "acm023060jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023061jsd" ] + }, + "acm023061jsd" : { + "type" : "CodePackage", + "id" : "acm023061jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023057jsd" ] + }, + "acm023062jsd" : { + "type" : "ControlElement", + "id" : "acm023062jsd", + "name" : "setUp" + }, + "acm023063jsd" : { + "type" : "ControlElement", + "id" : "acm023063jsd", + "name" : "movesFile" + }, + "acm023064jsd" : { + "type" : "ControlElement", + "id" : "acm023064jsd", + "name" : "movesFileWithMulitpleLinked" + }, + "acm023065jsd" : { + "type" : "ControlElement", + "id" : "acm023065jsd", + "name" : "movesFileWithFileDirPattern" + }, + "acm023066jsd" : { + "type" : "ControlElement", + "id" : "acm023066jsd", + "name" : "doesNotMoveFileWithEmptyFileDirPattern" + }, + "acm023067jsd" : { + "type" : "ControlElement", + "id" : "acm023067jsd", + "name" : "movesFileWithSubdirectoryPattern" + }, + "acm023068jsd" : { + "type" : "ControlElement", + "id" : "acm023068jsd", + "name" : "movesFileWithNoDirectory" + }, + "acm023069jsd" : { + "type" : "ClassUnit", + "id" : "acm023069jsd", + "name" : "MoveFilesCleanupTest", + "compilationUnitId" : "acm023057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011231jsd", "acm017884jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm019421jsd", "acm020848jsd" ], + "content" : [ "acm023062jsd", "acm023063jsd", "acm023064jsd", "acm023065jsd", "acm023066jsd", "acm023067jsd", "acm023068jsd" ] + }, + "acm023070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023070jsd", + "name" : "RenamePdfCleanupTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023080jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023071jsd" : { + "type" : "CodePackage", + "id" : "acm023071jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023072jsd" ] + }, + "acm023072jsd" : { + "type" : "CodePackage", + "id" : "acm023072jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023073jsd" ] + }, + "acm023073jsd" : { + "type" : "CodePackage", + "id" : "acm023073jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023074jsd" ] + }, + "acm023074jsd" : { + "type" : "CodePackage", + "id" : "acm023074jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023070jsd" ] + }, + "acm023075jsd" : { + "type" : "ControlElement", + "id" : "acm023075jsd", + "name" : "setUp" + }, + "acm023076jsd" : { + "type" : "ControlElement", + "id" : "acm023076jsd", + "name" : "cleanupRenamePdfRenamesFileEvenIfOnlyDifferenceIsCase" + }, + "acm023077jsd" : { + "type" : "ControlElement", + "id" : "acm023077jsd", + "name" : "cleanupRenamePdfRenamesWithMultipleFiles" + }, + "acm023078jsd" : { + "type" : "ControlElement", + "id" : "acm023078jsd", + "name" : "cleanupRenamePdfRenamesFileStartingWithCitationKey" + }, + "acm023079jsd" : { + "type" : "ControlElement", + "id" : "acm023079jsd", + "name" : "cleanupRenamePdfRenamesFileInSameFolder" + }, + "acm023080jsd" : { + "type" : "ClassUnit", + "id" : "acm023080jsd", + "name" : "RenamePdfCleanupTest", + "compilationUnitId" : "acm023070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011247jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm019421jsd", "acm020848jsd" ], + "content" : [ "acm023075jsd", "acm023076jsd", "acm023077jsd", "acm023078jsd", "acm023079jsd" ] + }, + "acm023081jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023081jsd", + "name" : "TimeStampToCreationDateTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023094jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023082jsd" : { + "type" : "CodePackage", + "id" : "acm023082jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023083jsd" ] + }, + "acm023083jsd" : { + "type" : "CodePackage", + "id" : "acm023083jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023084jsd" ] + }, + "acm023084jsd" : { + "type" : "CodePackage", + "id" : "acm023084jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023085jsd" ] + }, + "acm023085jsd" : { + "type" : "CodePackage", + "id" : "acm023085jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023081jsd" ] + }, + "acm023086jsd" : { + "type" : "ControlElement", + "id" : "acm023086jsd", + "name" : "makeMockReturnCustomField" + }, + "acm023087jsd" : { + "type" : "ControlElement", + "id" : "acm023087jsd", + "name" : "makeMockReturnStandardField" + }, + "acm023088jsd" : { + "type" : "ControlElement", + "id" : "acm023088jsd", + "name" : "standardFieldToCreationDate" + }, + "acm023089jsd" : { + "type" : "ControlElement", + "id" : "acm023089jsd", + "name" : "withStandardFieldToCreationDate" + }, + "acm023090jsd" : { + "type" : "ControlElement", + "id" : "acm023090jsd", + "name" : "customFieldToCreationDate" + }, + "acm023091jsd" : { + "type" : "ControlElement", + "id" : "acm023091jsd", + "name" : "withCustomFieldToCreationDate" + }, + "acm023092jsd" : { + "type" : "ControlElement", + "id" : "acm023092jsd", + "name" : "entriesMigratedToCreationDateFromDifferentFormats" + }, + "acm023093jsd" : { + "type" : "ControlElement", + "id" : "acm023093jsd", + "name" : "withDifferentFormats" + }, + "acm023094jsd" : { + "type" : "ClassUnit", + "id" : "acm023094jsd", + "name" : "TimeStampToCreationDateTest", + "compilationUnitId" : "acm023081jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011257jsd", "acm012556jsd", "acm016641jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm023086jsd", "acm023087jsd", "acm023088jsd", "acm023089jsd", "acm023090jsd", "acm023091jsd", "acm023092jsd", "acm023093jsd" ] + }, + "acm023095jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023095jsd", + "name" : "TimeStampToModificationDateTest", + "parentId" : "acm011112jsd", + "content" : [ "acm023106jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "cleanup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023096jsd" : { + "type" : "CodePackage", + "id" : "acm023096jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023097jsd" ] + }, + "acm023097jsd" : { + "type" : "CodePackage", + "id" : "acm023097jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023098jsd" ] + }, + "acm023098jsd" : { + "type" : "CodePackage", + "id" : "acm023098jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023099jsd" ] + }, + "acm023099jsd" : { + "type" : "CodePackage", + "id" : "acm023099jsd", + "name" : "cleanup", + "parentId" : null, + "content" : [ "acm023095jsd" ] + }, + "acm023100jsd" : { + "type" : "ControlElement", + "id" : "acm023100jsd", + "name" : "makeMockReturnCustomField" + }, + "acm023101jsd" : { + "type" : "ControlElement", + "id" : "acm023101jsd", + "name" : "makeMockReturnStandardField" + }, + "acm023102jsd" : { + "type" : "ControlElement", + "id" : "acm023102jsd", + "name" : "standardFieldToModificationDate" + }, + "acm023103jsd" : { + "type" : "ControlElement", + "id" : "acm023103jsd", + "name" : "withStandardFieldToModificationDate" + }, + "acm023104jsd" : { + "type" : "ControlElement", + "id" : "acm023104jsd", + "name" : "customFieldToModificationDate" + }, + "acm023105jsd" : { + "type" : "ControlElement", + "id" : "acm023105jsd", + "name" : "withCustomFieldToModificationDate" + }, + "acm023106jsd" : { + "type" : "ClassUnit", + "id" : "acm023106jsd", + "name" : "TimeStampToModificationDateTest", + "compilationUnitId" : "acm023095jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011267jsd", "acm016641jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd" ], + "content" : [ "acm023100jsd", "acm023101jsd", "acm023102jsd", "acm023103jsd", "acm023104jsd", "acm023105jsd" ] + }, + "acm023107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023107jsd", + "name" : "CrawlerTest", + "parentId" : "acm011280jsd", + "content" : [ "acm023117jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023108jsd" : { + "type" : "CodePackage", + "id" : "acm023108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023109jsd" ] + }, + "acm023109jsd" : { + "type" : "CodePackage", + "id" : "acm023109jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023110jsd" ] + }, + "acm023110jsd" : { + "type" : "CodePackage", + "id" : "acm023110jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023111jsd" ] + }, + "acm023111jsd" : { + "type" : "CodePackage", + "id" : "acm023111jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm023107jsd" ] + }, + "acm023112jsd" : { + "type" : "ControlElement", + "id" : "acm023112jsd", + "name" : "testWhetherAllFilesAreCreated" + }, + "acm023113jsd" : { + "type" : "ControlElement", + "id" : "acm023113jsd", + "name" : "getPathToStudyDefinitionFile" + }, + "acm023114jsd" : { + "type" : "ControlElement", + "id" : "acm023114jsd", + "name" : "setUp" + }, + "acm023115jsd" : { + "type" : "ControlElement", + "id" : "acm023115jsd", + "name" : "setUpRepository" + }, + "acm023116jsd" : { + "type" : "ControlElement", + "id" : "acm023116jsd", + "name" : "setUpTestStudyDefinitionFile" + }, + "acm023117jsd" : { + "type" : "ClassUnit", + "id" : "acm023117jsd", + "name" : "CrawlerTest", + "compilationUnitId" : "acm023107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010993jsd", "acm011283jsd", "acm011645jsd", "acm012242jsd", "acm012467jsd", "acm018333jsd", "acm020676jsd", "acm021206jsd" ], + "content" : [ "acm023112jsd", "acm023113jsd", "acm023114jsd", "acm023115jsd", "acm023116jsd" ] + }, + "acm023118jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023118jsd", + "name" : "StudyDatabaseToFetcherConverterTest", + "parentId" : "acm011280jsd", + "content" : [ "acm023126jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023119jsd" : { + "type" : "CodePackage", + "id" : "acm023119jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023120jsd" ] + }, + "acm023120jsd" : { + "type" : "CodePackage", + "id" : "acm023120jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023121jsd" ] + }, + "acm023121jsd" : { + "type" : "CodePackage", + "id" : "acm023121jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023122jsd" ] + }, + "acm023122jsd" : { + "type" : "CodePackage", + "id" : "acm023122jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm023118jsd" ] + }, + "acm023123jsd" : { + "type" : "ControlElement", + "id" : "acm023123jsd", + "name" : "setUpMocks" + }, + "acm023124jsd" : { + "type" : "ControlElement", + "id" : "acm023124jsd", + "name" : "getActiveFetcherInstances" + }, + "acm023125jsd" : { + "type" : "ControlElement", + "id" : "acm023125jsd", + "name" : "copyTestStudyDefinitionFileIntoDirectory" + }, + "acm023126jsd" : { + "type" : "ClassUnit", + "id" : "acm023126jsd", + "name" : "StudyDatabaseToFetcherConverterTest", + "compilationUnitId" : "acm023118jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011293jsd", "acm011337jsd", "acm011645jsd", "acm012242jsd", "acm012467jsd", "acm012571jsd", "acm018333jsd", "acm020676jsd", "acm021206jsd" ], + "content" : [ "acm023123jsd", "acm023124jsd", "acm023125jsd" ] + }, + "acm023127jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023127jsd", + "name" : "StudyRepositoryTest", + "parentId" : "acm011280jsd", + "content" : [ "acm023148jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023128jsd" : { + "type" : "CodePackage", + "id" : "acm023128jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023129jsd" ] + }, + "acm023129jsd" : { + "type" : "CodePackage", + "id" : "acm023129jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023130jsd" ] + }, + "acm023130jsd" : { + "type" : "CodePackage", + "id" : "acm023130jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023131jsd" ] + }, + "acm023131jsd" : { + "type" : "CodePackage", + "id" : "acm023131jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm023127jsd" ] + }, + "acm023132jsd" : { + "type" : "ControlElement", + "id" : "acm023132jsd", + "name" : "setUpMocks" + }, + "acm023133jsd" : { + "type" : "ControlElement", + "id" : "acm023133jsd", + "name" : "providePathToNonExistentRepositoryThrowsException" + }, + "acm023134jsd" : { + "type" : "ControlElement", + "id" : "acm023134jsd", + "name" : "repositoryStructureCorrectlyCreated" + }, + "acm023135jsd" : { + "type" : "ControlElement", + "id" : "acm023135jsd", + "name" : "bibEntriesCorrectlyStored" + }, + "acm023136jsd" : { + "type" : "ControlElement", + "id" : "acm023136jsd", + "name" : "fetcherResultsPersistedCorrectly" + }, + "acm023137jsd" : { + "type" : "ControlElement", + "id" : "acm023137jsd", + "name" : "mergedResultsPersistedCorrectly" + }, + "acm023138jsd" : { + "type" : "ControlElement", + "id" : "acm023138jsd", + "name" : "studyResultsPersistedCorrectly" + }, + "acm023139jsd" : { + "type" : "ControlElement", + "id" : "acm023139jsd", + "name" : "getTestStudyRepository" + }, + "acm023140jsd" : { + "type" : "ControlElement", + "id" : "acm023140jsd", + "name" : "setUpTestStudyDefinitionFile" + }, + "acm023141jsd" : { + "type" : "ControlElement", + "id" : "acm023141jsd", + "name" : "setUpTestResultFile" + }, + "acm023142jsd" : { + "type" : "ControlElement", + "id" : "acm023142jsd", + "name" : "getNonDuplicateBibEntryResult" + }, + "acm023143jsd" : { + "type" : "ControlElement", + "id" : "acm023143jsd", + "name" : "getMockResults" + }, + "acm023144jsd" : { + "type" : "ControlElement", + "id" : "acm023144jsd", + "name" : "stripCitationKeys" + }, + "acm023145jsd" : { + "type" : "ControlElement", + "id" : "acm023145jsd", + "name" : "getArXivQuantumMockResults" + }, + "acm023146jsd" : { + "type" : "ControlElement", + "id" : "acm023146jsd", + "name" : "getSpringerQuantumMockResults" + }, + "acm023147jsd" : { + "type" : "ControlElement", + "id" : "acm023147jsd", + "name" : "getSpringerCloudComputingMockResults" + }, + "acm023148jsd" : { + "type" : "ClassUnit", + "id" : "acm023148jsd", + "name" : "StudyRepositoryTest", + "compilationUnitId" : "acm023127jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010959jsd", "acm010993jsd", "acm011337jsd", "acm011359jsd", "acm011645jsd", "acm012242jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm020557jsd", "acm020566jsd", "acm020676jsd", "acm020875jsd", "acm021206jsd" ], + "content" : [ "acm023132jsd", "acm023133jsd", "acm023134jsd", "acm023135jsd", "acm023136jsd", "acm023137jsd", "acm023138jsd", "acm023139jsd", "acm023140jsd", "acm023141jsd", "acm023142jsd", "acm023143jsd", "acm023144jsd", "acm023145jsd", "acm023146jsd", "acm023147jsd" ] + }, + "acm023149jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023149jsd", + "name" : "StudyYamlParserTest", + "parentId" : "acm011280jsd", + "content" : [ "acm023158jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "crawler" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023150jsd" : { + "type" : "CodePackage", + "id" : "acm023150jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023151jsd" ] + }, + "acm023151jsd" : { + "type" : "CodePackage", + "id" : "acm023151jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023152jsd" ] + }, + "acm023152jsd" : { + "type" : "CodePackage", + "id" : "acm023152jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023153jsd" ] + }, + "acm023153jsd" : { + "type" : "CodePackage", + "id" : "acm023153jsd", + "name" : "crawler", + "parentId" : null, + "content" : [ "acm023149jsd" ] + }, + "acm023154jsd" : { + "type" : "ControlElement", + "id" : "acm023154jsd", + "name" : "setupStudy" + }, + "acm023155jsd" : { + "type" : "ControlElement", + "id" : "acm023155jsd", + "name" : "parseStudyFileSuccessfully" + }, + "acm023156jsd" : { + "type" : "ControlElement", + "id" : "acm023156jsd", + "name" : "writeStudyFileSuccessfully" + }, + "acm023157jsd" : { + "type" : "ControlElement", + "id" : "acm023157jsd", + "name" : "readsJabRef57StudySuccessfully" + }, + "acm023158jsd" : { + "type" : "ClassUnit", + "id" : "acm023158jsd", + "name" : "StudyYamlParserTest", + "compilationUnitId" : "acm023149jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011345jsd", "acm020587jsd", "acm020602jsd", "acm020615jsd" ], + "content" : [ "acm023154jsd", "acm023155jsd", "acm023156jsd", "acm023157jsd" ] + }, + "acm023159jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023159jsd", + "name" : "DatabaseMergerTest", + "parentId" : "acm011350jsd", + "content" : [ "acm023175jsd", "acm023180jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023160jsd" : { + "type" : "CodePackage", + "id" : "acm023160jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023161jsd" ] + }, + "acm023161jsd" : { + "type" : "CodePackage", + "id" : "acm023161jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023162jsd" ] + }, + "acm023162jsd" : { + "type" : "CodePackage", + "id" : "acm023162jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023163jsd" ] + }, + "acm023163jsd" : { + "type" : "CodePackage", + "id" : "acm023163jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm023159jsd" ] + }, + "acm023164jsd" : { + "type" : "ControlElement", + "id" : "acm023164jsd", + "name" : "setUp" + }, + "acm023165jsd" : { + "type" : "ControlElement", + "id" : "acm023165jsd", + "name" : "mergeAddsNonDuplicateEntries" + }, + "acm023166jsd" : { + "type" : "ControlElement", + "id" : "acm023166jsd", + "name" : "mergeAddsWithDuplicateEntries" + }, + "acm023167jsd" : { + "type" : "ControlElement", + "id" : "acm023167jsd", + "name" : "mergeBibTexStringsWithSameNameAreImportedWithModifiedName" + }, + "acm023168jsd" : { + "type" : "ControlElement", + "id" : "acm023168jsd", + "name" : "mergeBibTexStringsWithSameNameAndContentAreIgnored" + }, + "acm023169jsd" : { + "type" : "ControlElement", + "id" : "acm023169jsd", + "name" : "mergeMetaDataWithoutAllEntriesGroup" + }, + "acm023170jsd" : { + "type" : "ControlElement", + "id" : "acm023170jsd", + "name" : "mergeMetaDataWithAllEntriesGroup" + }, + "acm023171jsd" : { + "type" : "ControlElement", + "id" : "acm023171jsd", + "name" : "TestGroup" + }, + "acm023172jsd" : { + "type" : "ControlElement", + "id" : "acm023172jsd", + "name" : "contains" + }, + "acm023173jsd" : { + "type" : "ControlElement", + "id" : "acm023173jsd", + "name" : "isDynamic" + }, + "acm023174jsd" : { + "type" : "ControlElement", + "id" : "acm023174jsd", + "name" : "deepCopy" + }, + "acm023175jsd" : { + "type" : "ClassUnit", + "id" : "acm023175jsd", + "name" : "DatabaseMergerTest", + "compilationUnitId" : "acm023159jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011359jsd", "acm017988jsd", "acm018267jsd", "acm018367jsd", "acm019107jsd", "acm019119jsd", "acm019171jsd", "acm019190jsd", "acm019221jsd", "acm019348jsd", "acm019421jsd", "acm023180jsd" ], + "content" : [ "acm023164jsd", "acm023165jsd", "acm023166jsd", "acm023167jsd", "acm023168jsd", "acm023169jsd", "acm023170jsd", "acm023171jsd", "acm023172jsd", "acm023173jsd", "acm023174jsd" ] + }, + "acm023176jsd" : { + "type" : "ControlElement", + "id" : "acm023176jsd", + "name" : "TestGroup" + }, + "acm023177jsd" : { + "type" : "ControlElement", + "id" : "acm023177jsd", + "name" : "contains" + }, + "acm023178jsd" : { + "type" : "ControlElement", + "id" : "acm023178jsd", + "name" : "isDynamic" + }, + "acm023179jsd" : { + "type" : "ControlElement", + "id" : "acm023179jsd", + "name" : "deepCopy" + }, + "acm023180jsd" : { + "type" : "ClassUnit", + "id" : "acm023180jsd", + "name" : "TestGroup", + "compilationUnitId" : "acm023159jsd", + "parentDatatypeId" : "acm023175jsd", + "extendedDataTypesIds" : [ "acm019107jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019107jsd", "acm019190jsd" ], + "content" : [ "acm023176jsd", "acm023177jsd", "acm023178jsd", "acm023179jsd" ] + }, + "acm023181jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023181jsd", + "name" : "DuplicateCheckTest", + "parentId" : "acm011350jsd", + "content" : [ "acm023210jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023182jsd" : { + "type" : "CodePackage", + "id" : "acm023182jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023183jsd" ] + }, + "acm023183jsd" : { + "type" : "CodePackage", + "id" : "acm023183jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023184jsd" ] + }, + "acm023184jsd" : { + "type" : "CodePackage", + "id" : "acm023184jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023185jsd" ] + }, + "acm023185jsd" : { + "type" : "CodePackage", + "id" : "acm023185jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm023181jsd" ] + }, + "acm023186jsd" : { + "type" : "ControlElement", + "id" : "acm023186jsd", + "name" : "setUp" + }, + "acm023187jsd" : { + "type" : "ControlElement", + "id" : "acm023187jsd", + "name" : "testDuplicateDetection" + }, + "acm023188jsd" : { + "type" : "ControlElement", + "id" : "acm023188jsd", + "name" : "testWordCorrelation" + }, + "acm023189jsd" : { + "type" : "ControlElement", + "id" : "acm023189jsd", + "name" : "twoUnrelatedEntriesAreNoDuplicates" + }, + "acm023190jsd" : { + "type" : "ControlElement", + "id" : "acm023190jsd", + "name" : "twoUnrelatedEntriesWithDifferentDoisAreNoDuplicates" + }, + "acm023191jsd" : { + "type" : "ControlElement", + "id" : "acm023191jsd", + "name" : "twoUnrelatedEntriesWithEqualDoisAreDuplicates" + }, + "acm023192jsd" : { + "type" : "ControlElement", + "id" : "acm023192jsd", + "name" : "twoUnrelatedEntriesWithEqualPmidAreDuplicates" + }, + "acm023193jsd" : { + "type" : "ControlElement", + "id" : "acm023193jsd", + "name" : "twoUnrelatedEntriesWithEqualEprintAreDuplicates" + }, + "acm023194jsd" : { + "type" : "ControlElement", + "id" : "acm023194jsd", + "name" : "twoEntriesWithSameDoiButDifferentTypesAreDuplicates" + }, + "acm023195jsd" : { + "type" : "ControlElement", + "id" : "acm023195jsd", + "name" : "twoEntriesWithDoiContainingUnderscoresAreNotEqual" + }, + "acm023196jsd" : { + "type" : "ControlElement", + "id" : "acm023196jsd", + "name" : "twoEntriesWithSameISBNButDifferentTypesAreDuplicates" + }, + "acm023197jsd" : { + "type" : "ControlElement", + "id" : "acm023197jsd", + "name" : "twoInbooksWithDifferentChaptersAreNotDuplicates" + }, + "acm023198jsd" : { + "type" : "ControlElement", + "id" : "acm023198jsd", + "name" : "twoInbooksWithDifferentPagesAreNotDuplicates" + }, + "acm023199jsd" : { + "type" : "ControlElement", + "id" : "acm023199jsd", + "name" : "twoIncollectionsWithDifferentChaptersAreNotDuplicates" + }, + "acm023200jsd" : { + "type" : "ControlElement", + "id" : "acm023200jsd", + "name" : "twoIncollectionsWithDifferentPagesAreNotDuplicates" + }, + "acm023201jsd" : { + "type" : "ControlElement", + "id" : "acm023201jsd", + "name" : "twoEntriesWithDifferentSpecificFieldsAreNotDuplicates" + }, + "acm023202jsd" : { + "type" : "ControlElement", + "id" : "acm023202jsd", + "name" : "inbookWithoutChapterCouldBeDuplicateOfInbookWithChapter" + }, + "acm023203jsd" : { + "type" : "ControlElement", + "id" : "acm023203jsd", + "name" : "twoBooksWithDifferentEditionsAreNotDuplicates" + }, + "acm023204jsd" : { + "type" : "ControlElement", + "id" : "acm023204jsd", + "name" : "sameBooksWithMissingEditionAreDuplicates" + }, + "acm023205jsd" : { + "type" : "ControlElement", + "id" : "acm023205jsd", + "name" : "sameBooksWithPartiallyMissingEditionAreDuplicates" + }, + "acm023206jsd" : { + "type" : "ControlElement", + "id" : "acm023206jsd", + "name" : "sameBooksWithDifferentEditionsAreNotDuplicates" + }, + "acm023207jsd" : { + "type" : "ControlElement", + "id" : "acm023207jsd", + "name" : "compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences" + }, + "acm023208jsd" : { + "type" : "ControlElement", + "id" : "acm023208jsd", + "name" : "compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences" + }, + "acm023209jsd" : { + "type" : "ControlElement", + "id" : "acm023209jsd", + "name" : "compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences" + }, + "acm023210jsd" : { + "type" : "ClassUnit", + "id" : "acm023210jsd", + "name" : "DuplicateCheckTest", + "compilationUnitId" : "acm023181jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011386jsd", "acm018267jsd", "acm018333jsd", "acm018673jsd" ], + "content" : [ "acm023186jsd", "acm023187jsd", "acm023188jsd", "acm023189jsd", "acm023190jsd", "acm023191jsd", "acm023192jsd", "acm023193jsd", "acm023194jsd", "acm023195jsd", "acm023196jsd", "acm023197jsd", "acm023198jsd", "acm023199jsd", "acm023200jsd", "acm023201jsd", "acm023202jsd", "acm023203jsd", "acm023204jsd", "acm023205jsd", "acm023206jsd", "acm023207jsd", "acm023208jsd", "acm023209jsd" ] + }, + "acm023211jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023211jsd", + "name" : "AtomicFileOutputStreamTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023218jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023212jsd" : { + "type" : "CodePackage", + "id" : "acm023212jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023213jsd" ] + }, + "acm023213jsd" : { + "type" : "CodePackage", + "id" : "acm023213jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023214jsd" ] + }, + "acm023214jsd" : { + "type" : "CodePackage", + "id" : "acm023214jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023215jsd" ] + }, + "acm023215jsd" : { + "type" : "CodePackage", + "id" : "acm023215jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023211jsd" ] + }, + "acm023216jsd" : { + "type" : "ControlElement", + "id" : "acm023216jsd", + "name" : "normalSaveWorks" + }, + "acm023217jsd" : { + "type" : "ControlElement", + "id" : "acm023217jsd", + "name" : "originalContentExistsAtWriteError" + }, + "acm023218jsd" : { + "type" : "ClassUnit", + "id" : "acm023218jsd", + "name" : "AtomicFileOutputStreamTest", + "compilationUnitId" : "acm023211jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011404jsd" ], + "content" : [ "acm023216jsd", "acm023217jsd" ] + }, + "acm023219jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023219jsd", + "name" : "BibtexDatabaseWriterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023278jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023220jsd" : { + "type" : "CodePackage", + "id" : "acm023220jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023221jsd" ] + }, + "acm023221jsd" : { + "type" : "CodePackage", + "id" : "acm023221jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023222jsd" ] + }, + "acm023222jsd" : { + "type" : "CodePackage", + "id" : "acm023222jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023223jsd" ] + }, + "acm023223jsd" : { + "type" : "CodePackage", + "id" : "acm023223jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023219jsd" ] + }, + "acm023224jsd" : { + "type" : "ControlElement", + "id" : "acm023224jsd", + "name" : "setUp" + }, + "acm023225jsd" : { + "type" : "ControlElement", + "id" : "acm023225jsd", + "name" : "writeWithNullContextThrowsException" + }, + "acm023226jsd" : { + "type" : "ControlElement", + "id" : "acm023226jsd", + "name" : "writeWithNullEntriesThrowsException" + }, + "acm023227jsd" : { + "type" : "ControlElement", + "id" : "acm023227jsd", + "name" : "writeEncodingUsAsciiWhenSetInPreferencesAndHeader" + }, + "acm023228jsd" : { + "type" : "ControlElement", + "id" : "acm023228jsd", + "name" : "writeEncodingWindows1252WhenSetInPreferencesAndHeader" + }, + "acm023229jsd" : { + "type" : "ControlElement", + "id" : "acm023229jsd", + "name" : "writePreamble" + }, + "acm023230jsd" : { + "type" : "ControlElement", + "id" : "acm023230jsd", + "name" : "writePreambleAndEncoding" + }, + "acm023231jsd" : { + "type" : "ControlElement", + "id" : "acm023231jsd", + "name" : "writeEntry" + }, + "acm023232jsd" : { + "type" : "ControlElement", + "id" : "acm023232jsd", + "name" : "writeEntryWithDuplicateKeywords" + }, + "acm023233jsd" : { + "type" : "ControlElement", + "id" : "acm023233jsd", + "name" : "putKeyWordsRemovesDuplicateKeywordsIsVisibleDuringWrite" + }, + "acm023234jsd" : { + "type" : "ControlElement", + "id" : "acm023234jsd", + "name" : "writeEncodingAndEntry" + }, + "acm023235jsd" : { + "type" : "ControlElement", + "id" : "acm023235jsd", + "name" : "writeEpilogue" + }, + "acm023236jsd" : { + "type" : "ControlElement", + "id" : "acm023236jsd", + "name" : "writeEpilogueAndEncoding" + }, + "acm023237jsd" : { + "type" : "ControlElement", + "id" : "acm023237jsd", + "name" : "utf8EncodingWrittenIfExplicitlyDefined" + }, + "acm023238jsd" : { + "type" : "ControlElement", + "id" : "acm023238jsd", + "name" : "utf8EncodingNotWrittenIfNotExplicitlyDefined" + }, + "acm023239jsd" : { + "type" : "ControlElement", + "id" : "acm023239jsd", + "name" : "writeMetadata" + }, + "acm023240jsd" : { + "type" : "ControlElement", + "id" : "acm023240jsd", + "name" : "writeMetadataAndEncoding" + }, + "acm023241jsd" : { + "type" : "ControlElement", + "id" : "acm023241jsd", + "name" : "writeGroups" + }, + "acm023242jsd" : { + "type" : "ControlElement", + "id" : "acm023242jsd", + "name" : "writeGroupsAndEncoding" + }, + "acm023243jsd" : { + "type" : "ControlElement", + "id" : "acm023243jsd", + "name" : "writeString" + }, + "acm023244jsd" : { + "type" : "ControlElement", + "id" : "acm023244jsd", + "name" : "writeStringAndEncoding" + }, + "acm023245jsd" : { + "type" : "ControlElement", + "id" : "acm023245jsd", + "name" : "doNotWriteUtf8StringAndEncoding" + }, + "acm023246jsd" : { + "type" : "ControlElement", + "id" : "acm023246jsd", + "name" : "writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration" + }, + "acm023247jsd" : { + "type" : "ControlElement", + "id" : "acm023247jsd", + "name" : "writeCustomizedTypesInAlphabeticalOrder" + }, + "acm023248jsd" : { + "type" : "ControlElement", + "id" : "acm023248jsd", + "name" : "roundtripWithArticleMonths" + }, + "acm023249jsd" : { + "type" : "ControlElement", + "id" : "acm023249jsd", + "name" : "roundtripUtf8EncodingHeaderRemoved" + }, + "acm023250jsd" : { + "type" : "ControlElement", + "id" : "acm023250jsd", + "name" : "roundtripWin1252HeaderKept" + }, + "acm023251jsd" : { + "type" : "ControlElement", + "id" : "acm023251jsd", + "name" : "roundtripUtf8HeaderKept" + }, + "acm023252jsd" : { + "type" : "ControlElement", + "id" : "acm023252jsd", + "name" : "roundtripNotExplicitUtf8HeaderNotInsertedDuringWrite" + }, + "acm023253jsd" : { + "type" : "ControlElement", + "id" : "acm023253jsd", + "name" : "roundtripWithComplexBib" + }, + "acm023254jsd" : { + "type" : "ControlElement", + "id" : "acm023254jsd", + "name" : "roundtripWithUserComment" + }, + "acm023255jsd" : { + "type" : "ControlElement", + "id" : "acm023255jsd", + "name" : "roundtripWithOneUserCommentAndEntryChange" + }, + "acm023256jsd" : { + "type" : "ControlElement", + "id" : "acm023256jsd", + "name" : "roundtripWithTwoEntriesAndOneUserCommentAndEntryChange" + }, + "acm023257jsd" : { + "type" : "ControlElement", + "id" : "acm023257jsd", + "name" : "roundtripWithUserCommentAndEntryChange" + }, + "acm023258jsd" : { + "type" : "ControlElement", + "id" : "acm023258jsd", + "name" : "roundtripWithUserCommentBeforeStringAndChange" + }, + "acm023259jsd" : { + "type" : "ControlElement", + "id" : "acm023259jsd", + "name" : "roundtripWithUnknownMetaData" + }, + "acm023260jsd" : { + "type" : "ControlElement", + "id" : "acm023260jsd", + "name" : "writeSavedSerializationOfEntryIfUnchanged" + }, + "acm023261jsd" : { + "type" : "ControlElement", + "id" : "acm023261jsd", + "name" : "reformatEntryIfAskedToDoSo" + }, + "acm023262jsd" : { + "type" : "ControlElement", + "id" : "acm023262jsd", + "name" : "writeSavedSerializationOfStringIfUnchanged" + }, + "acm023263jsd" : { + "type" : "ControlElement", + "id" : "acm023263jsd", + "name" : "reformatStringIfAskedToDoSo" + }, + "acm023264jsd" : { + "type" : "ControlElement", + "id" : "acm023264jsd", + "name" : "writeSaveActions" + }, + "acm023265jsd" : { + "type" : "ControlElement", + "id" : "acm023265jsd", + "name" : "writeSaveOrderConfig" + }, + "acm023266jsd" : { + "type" : "ControlElement", + "id" : "acm023266jsd", + "name" : "writeCustomKeyPattern" + }, + "acm023267jsd" : { + "type" : "ControlElement", + "id" : "acm023267jsd", + "name" : "writeBiblatexMode" + }, + "acm023268jsd" : { + "type" : "ControlElement", + "id" : "acm023268jsd", + "name" : "writeProtectedFlag" + }, + "acm023269jsd" : { + "type" : "ControlElement", + "id" : "acm023269jsd", + "name" : "writeFileDirectories" + }, + "acm023270jsd" : { + "type" : "ControlElement", + "id" : "acm023270jsd", + "name" : "writeEntriesSorted" + }, + "acm023271jsd" : { + "type" : "ControlElement", + "id" : "acm023271jsd", + "name" : "writeEntriesInOriginalOrderWhenNoSaveOrderConfigIsSetInMetadata" + }, + "acm023272jsd" : { + "type" : "ControlElement", + "id" : "acm023272jsd", + "name" : "trimFieldContents" + }, + "acm023273jsd" : { + "type" : "ControlElement", + "id" : "acm023273jsd", + "name" : "newlineAtEndOfAbstractFieldIsDeleted" + }, + "acm023274jsd" : { + "type" : "ControlElement", + "id" : "acm023274jsd", + "name" : "roundtripWithContentSelectorsAndUmlauts" + }, + "acm023275jsd" : { + "type" : "ControlElement", + "id" : "acm023275jsd", + "name" : "saveAlsoSavesSecondModification" + }, + "acm023276jsd" : { + "type" : "ControlElement", + "id" : "acm023276jsd", + "name" : "saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged" + }, + "acm023277jsd" : { + "type" : "ControlElement", + "id" : "acm023277jsd", + "name" : "saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePresenceOfSavedModifications" + }, + "acm023278jsd" : { + "type" : "ClassUnit", + "id" : "acm023278jsd", + "name" : "BibtexDatabaseWriterTest", + "compilationUnitId" : "acm023219jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm010886jsd", "acm010993jsd", "acm011002jsd", "acm011011jsd", "acm011169jsd", "acm011188jsd", "acm011455jsd", "acm011471jsd", "acm011645jsd", "acm012084jsd", "acm012134jsd", "acm012169jsd", "acm012556jsd", "acm013709jsd", "acm013761jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018289jsd", "acm018333jsd", "acm018367jsd", "acm018754jsd", "acm019005jsd", "acm019079jsd", "acm019119jsd", "acm019171jsd", "acm019221jsd", "acm019421jsd", "acm019447jsd", "acm019454jsd", "acm020676jsd", "acm020693jsd", "acm025203jsd" ], + "content" : [ "acm023224jsd", "acm023225jsd", "acm023226jsd", "acm023227jsd", "acm023228jsd", "acm023229jsd", "acm023230jsd", "acm023231jsd", "acm023232jsd", "acm023233jsd", "acm023234jsd", "acm023235jsd", "acm023236jsd", "acm023237jsd", "acm023238jsd", "acm023239jsd", "acm023240jsd", "acm023241jsd", "acm023242jsd", "acm023243jsd", "acm023244jsd", "acm023245jsd", "acm023246jsd", "acm023247jsd", "acm023248jsd", "acm023249jsd", "acm023250jsd", "acm023251jsd", "acm023252jsd", "acm023253jsd", "acm023254jsd", "acm023255jsd", "acm023256jsd", "acm023257jsd", "acm023258jsd", "acm023259jsd", "acm023260jsd", "acm023261jsd", "acm023262jsd", "acm023263jsd", "acm023264jsd", "acm023265jsd", "acm023266jsd", "acm023267jsd", "acm023268jsd", "acm023269jsd", "acm023270jsd", "acm023271jsd", "acm023272jsd", "acm023273jsd", "acm023274jsd", "acm023275jsd", "acm023276jsd", "acm023277jsd" ] + }, + "acm023279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023279jsd", + "name" : "CsvExportFormatTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023290jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023280jsd" : { + "type" : "CodePackage", + "id" : "acm023280jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023281jsd" ] + }, + "acm023281jsd" : { + "type" : "CodePackage", + "id" : "acm023281jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023282jsd" ] + }, + "acm023282jsd" : { + "type" : "CodePackage", + "id" : "acm023282jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023283jsd" ] + }, + "acm023283jsd" : { + "type" : "CodePackage", + "id" : "acm023283jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023279jsd" ] + }, + "acm023284jsd" : { + "type" : "ControlElement", + "id" : "acm023284jsd", + "name" : "setUp" + }, + "acm023285jsd" : { + "type" : "ControlElement", + "id" : "acm023285jsd", + "name" : "tearDown" + }, + "acm023286jsd" : { + "type" : "ControlElement", + "id" : "acm023286jsd", + "name" : "testPerformExportForSingleAuthor" + }, + "acm023287jsd" : { + "type" : "ControlElement", + "id" : "acm023287jsd", + "name" : "testPerformExportForMultipleAuthors" + }, + "acm023288jsd" : { + "type" : "ControlElement", + "id" : "acm023288jsd", + "name" : "testPerformExportForSingleEditor" + }, + "acm023289jsd" : { + "type" : "ControlElement", + "id" : "acm023289jsd", + "name" : "testPerformExportForMultipleEditors" + }, + "acm023290jsd" : { + "type" : "ClassUnit", + "id" : "acm023290jsd", + "name" : "CsvExportFormatTest", + "compilationUnitId" : "acm023279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm023284jsd", "acm023285jsd", "acm023286jsd", "acm023287jsd", "acm023288jsd", "acm023289jsd" ] + }, + "acm023291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023291jsd", + "name" : "DocBook5ExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023298jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023292jsd" : { + "type" : "CodePackage", + "id" : "acm023292jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023293jsd" ] + }, + "acm023293jsd" : { + "type" : "CodePackage", + "id" : "acm023293jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023294jsd" ] + }, + "acm023294jsd" : { + "type" : "CodePackage", + "id" : "acm023294jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023295jsd" ] + }, + "acm023295jsd" : { + "type" : "CodePackage", + "id" : "acm023295jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023291jsd" ] + }, + "acm023296jsd" : { + "type" : "ControlElement", + "id" : "acm023296jsd", + "name" : "setUp" + }, + "acm023297jsd" : { + "type" : "ControlElement", + "id" : "acm023297jsd", + "name" : "testPerformExportForSingleEntry" + }, + "acm023298jsd" : { + "type" : "ClassUnit", + "id" : "acm023298jsd", + "name" : "DocBook5ExporterTest", + "compilationUnitId" : "acm023291jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm018401jsd", "acm023298jsd" ], + "content" : [ "acm023296jsd", "acm023297jsd" ] + }, + "acm023299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023299jsd", + "name" : "DocbookExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023307jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023300jsd" : { + "type" : "CodePackage", + "id" : "acm023300jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023301jsd" ] + }, + "acm023301jsd" : { + "type" : "CodePackage", + "id" : "acm023301jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023302jsd" ] + }, + "acm023302jsd" : { + "type" : "CodePackage", + "id" : "acm023302jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023303jsd" ] + }, + "acm023303jsd" : { + "type" : "CodePackage", + "id" : "acm023303jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023299jsd" ] + }, + "acm023304jsd" : { + "type" : "ControlElement", + "id" : "acm023304jsd", + "name" : "setUp" + }, + "acm023305jsd" : { + "type" : "ControlElement", + "id" : "acm023305jsd", + "name" : "testCorruptedTitleBraces" + }, + "acm023306jsd" : { + "type" : "ControlElement", + "id" : "acm023306jsd", + "name" : "testCorruptedTitleUnicode" + }, + "acm023307jsd" : { + "type" : "ClassUnit", + "id" : "acm023307jsd", + "name" : "DocbookExporterTest", + "compilationUnitId" : "acm023299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm023304jsd", "acm023305jsd", "acm023306jsd" ] + }, + "acm023308jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023308jsd", + "name" : "EmbeddedBibFilePdfExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023324jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023309jsd" : { + "type" : "CodePackage", + "id" : "acm023309jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023310jsd" ] + }, + "acm023310jsd" : { + "type" : "CodePackage", + "id" : "acm023310jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023311jsd" ] + }, + "acm023311jsd" : { + "type" : "CodePackage", + "id" : "acm023311jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023312jsd" ] + }, + "acm023312jsd" : { + "type" : "CodePackage", + "id" : "acm023312jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023308jsd" ] + }, + "acm023313jsd" : { + "type" : "ControlElement", + "id" : "acm023313jsd", + "name" : "initBibEntries" + }, + "acm023314jsd" : { + "type" : "ControlElement", + "id" : "acm023314jsd", + "name" : "setUp" + }, + "acm023315jsd" : { + "type" : "ControlElement", + "id" : "acm023315jsd", + "name" : "successfulExportToAllFilesOfEntry" + }, + "acm023316jsd" : { + "type" : "ControlElement", + "id" : "acm023316jsd", + "name" : "unsuccessfulExportToAllFilesOfEntry" + }, + "acm023317jsd" : { + "type" : "ControlElement", + "id" : "acm023317jsd", + "name" : "provideBibEntriesWithValidPdfFileLinks" + }, + "acm023318jsd" : { + "type" : "ControlElement", + "id" : "acm023318jsd", + "name" : "provideBibEntriesWithInvalidPdfFileLinks" + }, + "acm023319jsd" : { + "type" : "ControlElement", + "id" : "acm023319jsd", + "name" : "successfulExportToFileByPath" + }, + "acm023320jsd" : { + "type" : "ControlElement", + "id" : "acm023320jsd", + "name" : "unsuccessfulExportToFileByPath" + }, + "acm023321jsd" : { + "type" : "ControlElement", + "id" : "acm023321jsd", + "name" : "providePathsToValidPDFs" + }, + "acm023322jsd" : { + "type" : "ControlElement", + "id" : "acm023322jsd", + "name" : "providePathsToInvalidPDFs" + }, + "acm023323jsd" : { + "type" : "ControlElement", + "id" : "acm023323jsd", + "name" : "createDefaultLinkedFile" + }, + "acm023324jsd" : { + "type" : "ClassUnit", + "id" : "acm023324jsd", + "name" : "EmbeddedBibFilePdfExporterTest", + "compilationUnitId" : "acm023308jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011487jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018333jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm023313jsd", "acm023314jsd", "acm023315jsd", "acm023316jsd", "acm023317jsd", "acm023318jsd", "acm023319jsd", "acm023320jsd", "acm023321jsd", "acm023322jsd", "acm023323jsd" ] + }, + "acm023325jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023325jsd", + "name" : "ExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023334jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023326jsd" : { + "type" : "CodePackage", + "id" : "acm023326jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023327jsd" ] + }, + "acm023327jsd" : { + "type" : "CodePackage", + "id" : "acm023327jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023328jsd" ] + }, + "acm023328jsd" : { + "type" : "CodePackage", + "id" : "acm023328jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023329jsd" ] + }, + "acm023329jsd" : { + "type" : "CodePackage", + "id" : "acm023329jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023325jsd" ] + }, + "acm023330jsd" : { + "type" : "ControlElement", + "id" : "acm023330jsd", + "name" : "setUp" + }, + "acm023331jsd" : { + "type" : "ControlElement", + "id" : "acm023331jsd", + "name" : "exportFormats" + }, + "acm023332jsd" : { + "type" : "ControlElement", + "id" : "acm023332jsd", + "name" : "testExportingEmptyDatabaseYieldsEmptyFile" + }, + "acm023333jsd" : { + "type" : "ControlElement", + "id" : "acm023333jsd", + "name" : "testExportingNullDatabaseThrowsNPE" + }, + "acm023334jsd" : { + "type" : "ClassUnit", + "id" : "acm023334jsd", + "name" : "ExporterTest", + "compilationUnitId" : "acm023325jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm023330jsd", "acm023331jsd", "acm023332jsd", "acm023333jsd" ] + }, + "acm023335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023335jsd", + "name" : "FieldFormatterCleanupsTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023359jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023336jsd" : { + "type" : "CodePackage", + "id" : "acm023336jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023337jsd" ] + }, + "acm023337jsd" : { + "type" : "CodePackage", + "id" : "acm023337jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023338jsd" ] + }, + "acm023338jsd" : { + "type" : "CodePackage", + "id" : "acm023338jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023339jsd" ] + }, + "acm023339jsd" : { + "type" : "CodePackage", + "id" : "acm023339jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023335jsd" ] + }, + "acm023340jsd" : { + "type" : "ControlElement", + "id" : "acm023340jsd", + "name" : "setUp" + }, + "acm023341jsd" : { + "type" : "ControlElement", + "id" : "acm023341jsd", + "name" : "checkSimpleUseCase" + }, + "acm023342jsd" : { + "type" : "ControlElement", + "id" : "acm023342jsd", + "name" : "invalidSaveActionSting" + }, + "acm023343jsd" : { + "type" : "ControlElement", + "id" : "acm023343jsd", + "name" : "checkLowerCaseSaveAction" + }, + "acm023344jsd" : { + "type" : "ControlElement", + "id" : "acm023344jsd", + "name" : "checkTwoSaveActionsForOneField" + }, + "acm023345jsd" : { + "type" : "ControlElement", + "id" : "acm023345jsd", + "name" : "checkThreeSaveActionsForOneField" + }, + "acm023346jsd" : { + "type" : "ControlElement", + "id" : "acm023346jsd", + "name" : "checkMultipleSaveActions" + }, + "acm023347jsd" : { + "type" : "ControlElement", + "id" : "acm023347jsd", + "name" : "checkMultipleSaveActionsWithMultipleFormatters" + }, + "acm023348jsd" : { + "type" : "ControlElement", + "id" : "acm023348jsd", + "name" : "clearFormatterRemovesField" + }, + "acm023349jsd" : { + "type" : "ControlElement", + "id" : "acm023349jsd", + "name" : "parserKeepsSaveActions" + }, + "acm023350jsd" : { + "type" : "ControlElement", + "id" : "acm023350jsd", + "name" : "parserParsesLatexCleanupFormatter" + }, + "acm023351jsd" : { + "type" : "ControlElement", + "id" : "acm023351jsd", + "name" : "parserParsesTwoFormatters" + }, + "acm023352jsd" : { + "type" : "ControlElement", + "id" : "acm023352jsd", + "name" : "parserParsesFourFormatters" + }, + "acm023353jsd" : { + "type" : "ControlElement", + "id" : "acm023353jsd", + "name" : "parserParsesTwoFormattersWithCommas" + }, + "acm023354jsd" : { + "type" : "ControlElement", + "id" : "acm023354jsd", + "name" : "parserParsesTwoFormattersOneWithComma" + }, + "acm023355jsd" : { + "type" : "ControlElement", + "id" : "acm023355jsd", + "name" : "parserParsesThreeFormattersTwoWithComma" + }, + "acm023356jsd" : { + "type" : "ControlElement", + "id" : "acm023356jsd", + "name" : "parserWithTwoAndThree" + }, + "acm023357jsd" : { + "type" : "ControlElement", + "id" : "acm023357jsd", + "name" : "parserWithFourEntries" + }, + "acm023358jsd" : { + "type" : "ControlElement", + "id" : "acm023358jsd", + "name" : "parserTest" + }, + "acm023359jsd" : { + "type" : "ClassUnit", + "id" : "acm023359jsd", + "name" : "FieldFormatterCleanupsTest", + "compilationUnitId" : "acm023335jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011169jsd", "acm011188jsd", "acm011743jsd", "acm011791jsd", "acm011803jsd", "acm011815jsd", "acm011852jsd", "acm011864jsd", "acm011888jsd", "acm011912jsd", "acm012084jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm023340jsd", "acm023341jsd", "acm023342jsd", "acm023343jsd", "acm023344jsd", "acm023345jsd", "acm023346jsd", "acm023347jsd", "acm023348jsd", "acm023349jsd", "acm023350jsd", "acm023351jsd", "acm023352jsd", "acm023353jsd", "acm023354jsd", "acm023355jsd", "acm023356jsd", "acm023357jsd", "acm023358jsd" ] + }, + "acm023360jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023360jsd", + "name" : "GroupSerializerTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023379jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023361jsd" : { + "type" : "CodePackage", + "id" : "acm023361jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023362jsd" ] + }, + "acm023362jsd" : { + "type" : "CodePackage", + "id" : "acm023362jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023363jsd" ] + }, + "acm023363jsd" : { + "type" : "CodePackage", + "id" : "acm023363jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023364jsd" ] + }, + "acm023364jsd" : { + "type" : "CodePackage", + "id" : "acm023364jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023360jsd" ] + }, + "acm023365jsd" : { + "type" : "ControlElement", + "id" : "acm023365jsd", + "name" : "setUp" + }, + "acm023366jsd" : { + "type" : "ControlElement", + "id" : "acm023366jsd", + "name" : "serializeSingleAllEntriesGroup" + }, + "acm023367jsd" : { + "type" : "ControlElement", + "id" : "acm023367jsd", + "name" : "serializeSingleExplicitGroup" + }, + "acm023368jsd" : { + "type" : "ControlElement", + "id" : "acm023368jsd", + "name" : "serializeSingleExplicitGroupWithIconAndDescription" + }, + "acm023369jsd" : { + "type" : "ControlElement", + "id" : "acm023369jsd", + "name" : "serializeSingleExplicitGroupWithEscapedSlash" + }, + "acm023370jsd" : { + "type" : "ControlElement", + "id" : "acm023370jsd", + "name" : "serializeSingleSimpleKeywordGroup" + }, + "acm023371jsd" : { + "type" : "ControlElement", + "id" : "acm023371jsd", + "name" : "serializeSingleRegexKeywordGroup" + }, + "acm023372jsd" : { + "type" : "ControlElement", + "id" : "acm023372jsd", + "name" : "serializeSingleSearchGroup" + }, + "acm023373jsd" : { + "type" : "ControlElement", + "id" : "acm023373jsd", + "name" : "serializeSingleSearchGroupWithRegex" + }, + "acm023374jsd" : { + "type" : "ControlElement", + "id" : "acm023374jsd", + "name" : "serializeSingleAutomaticKeywordGroup" + }, + "acm023375jsd" : { + "type" : "ControlElement", + "id" : "acm023375jsd", + "name" : "serializeSingleAutomaticPersonGroup" + }, + "acm023376jsd" : { + "type" : "ControlElement", + "id" : "acm023376jsd", + "name" : "serializeSingleTexGroup" + }, + "acm023377jsd" : { + "type" : "ControlElement", + "id" : "acm023377jsd", + "name" : "getTreeAsStringInSimpleTree" + }, + "acm023378jsd" : { + "type" : "ControlElement", + "id" : "acm023378jsd", + "name" : "getTreeAsStringInComplexTree" + }, + "acm023379jsd" : { + "type" : "ClassUnit", + "id" : "acm023379jsd", + "name" : "GroupSerializerTest", + "compilationUnitId" : "acm023360jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010458jsd", "acm011530jsd", "acm017988jsd", "acm019119jsd", "acm019130jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019221jsd", "acm019234jsd", "acm019256jsd", "acm019271jsd", "acm019293jsd", "acm019315jsd", "acm019421jsd", "acm020676jsd" ], + "content" : [ "acm023365jsd", "acm023366jsd", "acm023367jsd", "acm023368jsd", "acm023369jsd", "acm023370jsd", "acm023371jsd", "acm023372jsd", "acm023373jsd", "acm023374jsd", "acm023375jsd", "acm023376jsd", "acm023377jsd", "acm023378jsd" ] + }, + "acm023380jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023380jsd", + "name" : "HtmlExportFormatTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023388jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023381jsd" : { + "type" : "CodePackage", + "id" : "acm023381jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023382jsd" ] + }, + "acm023382jsd" : { + "type" : "CodePackage", + "id" : "acm023382jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023383jsd" ] + }, + "acm023383jsd" : { + "type" : "CodePackage", + "id" : "acm023383jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023384jsd" ] + }, + "acm023384jsd" : { + "type" : "CodePackage", + "id" : "acm023384jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023380jsd" ] + }, + "acm023385jsd" : { + "type" : "ControlElement", + "id" : "acm023385jsd", + "name" : "setUp" + }, + "acm023386jsd" : { + "type" : "ControlElement", + "id" : "acm023386jsd", + "name" : "tearDown" + }, + "acm023387jsd" : { + "type" : "ControlElement", + "id" : "acm023387jsd", + "name" : "emitWellFormedHtml" + }, + "acm023388jsd" : { + "type" : "ClassUnit", + "id" : "acm023388jsd", + "name" : "HtmlExportFormatTest", + "compilationUnitId" : "acm023380jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm023385jsd", "acm023386jsd", "acm023387jsd" ] + }, + "acm023389jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023389jsd", + "name" : "MSBibExportFormatFilesTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023397jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023390jsd" : { + "type" : "CodePackage", + "id" : "acm023390jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023391jsd" ] + }, + "acm023391jsd" : { + "type" : "CodePackage", + "id" : "acm023391jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023392jsd" ] + }, + "acm023392jsd" : { + "type" : "CodePackage", + "id" : "acm023392jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023393jsd" ] + }, + "acm023393jsd" : { + "type" : "CodePackage", + "id" : "acm023393jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023389jsd" ] + }, + "acm023394jsd" : { + "type" : "ControlElement", + "id" : "acm023394jsd", + "name" : "fileNames" + }, + "acm023395jsd" : { + "type" : "ControlElement", + "id" : "acm023395jsd", + "name" : "setUp" + }, + "acm023396jsd" : { + "type" : "ControlElement", + "id" : "acm023396jsd", + "name" : "testPerformExport" + }, + "acm023397jsd" : { + "type" : "ClassUnit", + "id" : "acm023397jsd", + "name" : "MSBibExportFormatFilesTest", + "compilationUnitId" : "acm023389jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011538jsd", "acm011663jsd", "acm013709jsd", "acm018022jsd", "acm018267jsd", "acm020676jsd", "acm023397jsd" ], + "content" : [ "acm023394jsd", "acm023395jsd", "acm023396jsd" ] + }, + "acm023398jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023398jsd", + "name" : "MetaDataSerializerTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023409jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023399jsd" : { + "type" : "CodePackage", + "id" : "acm023399jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023400jsd" ] + }, + "acm023400jsd" : { + "type" : "CodePackage", + "id" : "acm023400jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023401jsd" ] + }, + "acm023401jsd" : { + "type" : "CodePackage", + "id" : "acm023401jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023402jsd" ] + }, + "acm023402jsd" : { + "type" : "CodePackage", + "id" : "acm023402jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023398jsd" ] + }, + "acm023403jsd" : { + "type" : "ControlElement", + "id" : "acm023403jsd", + "name" : "setUp" + }, + "acm023404jsd" : { + "type" : "ControlElement", + "id" : "acm023404jsd", + "name" : "serializeNewMetadataReturnsEmptyMap" + }, + "acm023405jsd" : { + "type" : "ControlElement", + "id" : "acm023405jsd", + "name" : "serializeSingleSaveAction" + }, + "acm023406jsd" : { + "type" : "ControlElement", + "id" : "acm023406jsd", + "name" : "serializeSingleContentSelectors" + }, + "acm023407jsd" : { + "type" : "ControlElement", + "id" : "acm023407jsd", + "name" : "testParsingEmptyOrFieldsReturnsEmptyCollections" + }, + "acm023408jsd" : { + "type" : "ControlElement", + "id" : "acm023408jsd", + "name" : "testParsingEmptyOptionalFieldsFieldsReturnsEmptyCollections" + }, + "acm023409jsd" : { + "type" : "ClassUnit", + "id" : "acm023409jsd", + "name" : "MetaDataSerializerTest", + "compilationUnitId" : "acm023398jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm011169jsd", "acm011188jsd", "acm012084jsd", "acm018289jsd", "acm018754jsd", "acm019005jsd", "acm019079jsd", "acm019348jsd", "acm019421jsd" ], + "content" : [ "acm023403jsd", "acm023404jsd", "acm023405jsd", "acm023406jsd", "acm023407jsd", "acm023408jsd" ] + }, + "acm023410jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023410jsd", + "name" : "ModsExportFormatFilesTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023420jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023411jsd" : { + "type" : "CodePackage", + "id" : "acm023411jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023412jsd" ] + }, + "acm023412jsd" : { + "type" : "CodePackage", + "id" : "acm023412jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023413jsd" ] + }, + "acm023413jsd" : { + "type" : "CodePackage", + "id" : "acm023413jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023414jsd" ] + }, + "acm023414jsd" : { + "type" : "CodePackage", + "id" : "acm023414jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023410jsd" ] + }, + "acm023415jsd" : { + "type" : "ControlElement", + "id" : "acm023415jsd", + "name" : "fileNames" + }, + "acm023416jsd" : { + "type" : "ControlElement", + "id" : "acm023416jsd", + "name" : "setUp" + }, + "acm023417jsd" : { + "type" : "ControlElement", + "id" : "acm023417jsd", + "name" : "testPerformExport" + }, + "acm023418jsd" : { + "type" : "ControlElement", + "id" : "acm023418jsd", + "name" : "testExportAsModsAndThenImportAsMods" + }, + "acm023419jsd" : { + "type" : "ControlElement", + "id" : "acm023419jsd", + "name" : "testImportAsModsAndExportAsMods" + }, + "acm023420jsd" : { + "type" : "ClassUnit", + "id" : "acm023420jsd", + "name" : "ModsExportFormatFilesTest", + "compilationUnitId" : "acm023410jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011577jsd", "acm013709jsd", "acm014085jsd", "acm018022jsd", "acm018267jsd", "acm020676jsd", "acm020774jsd", "acm023397jsd", "acm023420jsd" ], + "content" : [ "acm023415jsd", "acm023416jsd", "acm023417jsd", "acm023418jsd", "acm023419jsd" ] + }, + "acm023421jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023421jsd", + "name" : "ModsExportFormatTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023428jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023422jsd" : { + "type" : "CodePackage", + "id" : "acm023422jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023423jsd" ] + }, + "acm023423jsd" : { + "type" : "CodePackage", + "id" : "acm023423jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023424jsd" ] + }, + "acm023424jsd" : { + "type" : "CodePackage", + "id" : "acm023424jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023425jsd" ] + }, + "acm023425jsd" : { + "type" : "CodePackage", + "id" : "acm023425jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023421jsd" ] + }, + "acm023426jsd" : { + "type" : "ControlElement", + "id" : "acm023426jsd", + "name" : "setUp" + }, + "acm023427jsd" : { + "type" : "ControlElement", + "id" : "acm023427jsd", + "name" : "exportForNoEntriesWritesNothing" + }, + "acm023428jsd" : { + "type" : "ClassUnit", + "id" : "acm023428jsd", + "name" : "ModsExportFormatTest", + "compilationUnitId" : "acm023421jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011577jsd", "acm013709jsd", "acm018022jsd", "acm020676jsd", "acm023428jsd" ], + "content" : [ "acm023426jsd", "acm023427jsd" ] + }, + "acm023429jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023429jsd", + "name" : "MsBibExportFormatTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023436jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023430jsd" : { + "type" : "CodePackage", + "id" : "acm023430jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023431jsd" ] + }, + "acm023431jsd" : { + "type" : "CodePackage", + "id" : "acm023431jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023432jsd" ] + }, + "acm023432jsd" : { + "type" : "CodePackage", + "id" : "acm023432jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023433jsd" ] + }, + "acm023433jsd" : { + "type" : "CodePackage", + "id" : "acm023433jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023429jsd" ] + }, + "acm023434jsd" : { + "type" : "ControlElement", + "id" : "acm023434jsd", + "name" : "setUp" + }, + "acm023435jsd" : { + "type" : "ControlElement", + "id" : "acm023435jsd", + "name" : "testPerformExportWithNoEntry" + }, + "acm023436jsd" : { + "type" : "ClassUnit", + "id" : "acm023436jsd", + "name" : "MsBibExportFormatTest", + "compilationUnitId" : "acm023429jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011538jsd", "acm011663jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm023434jsd", "acm023435jsd" ] + }, + "acm023437jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023437jsd", + "name" : "OpenOfficeDocumentCreatorTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023446jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023438jsd" : { + "type" : "CodePackage", + "id" : "acm023438jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023439jsd" ] + }, + "acm023439jsd" : { + "type" : "CodePackage", + "id" : "acm023439jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023440jsd" ] + }, + "acm023440jsd" : { + "type" : "CodePackage", + "id" : "acm023440jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023441jsd" ] + }, + "acm023441jsd" : { + "type" : "CodePackage", + "id" : "acm023441jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023437jsd" ] + }, + "acm023442jsd" : { + "type" : "ControlElement", + "id" : "acm023442jsd", + "name" : "setUp" + }, + "acm023443jsd" : { + "type" : "ControlElement", + "id" : "acm023443jsd", + "name" : "testPerformExportForSingleEntry" + }, + "acm023444jsd" : { + "type" : "ControlElement", + "id" : "acm023444jsd", + "name" : "unzipContentXml" + }, + "acm023445jsd" : { + "type" : "ControlElement", + "id" : "acm023445jsd", + "name" : "zipSlipProtect" + }, + "acm023446jsd" : { + "type" : "ClassUnit", + "id" : "acm023446jsd", + "name" : "OpenOfficeDocumentCreatorTest", + "compilationUnitId" : "acm023437jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd", "acm023446jsd" ], + "content" : [ "acm023442jsd", "acm023443jsd", "acm023444jsd", "acm023445jsd" ] + }, + "acm023447jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023447jsd", + "name" : "XmpExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023457jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023448jsd" : { + "type" : "CodePackage", + "id" : "acm023448jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023449jsd" ] + }, + "acm023449jsd" : { + "type" : "CodePackage", + "id" : "acm023449jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023450jsd" ] + }, + "acm023450jsd" : { + "type" : "CodePackage", + "id" : "acm023450jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023451jsd" ] + }, + "acm023451jsd" : { + "type" : "CodePackage", + "id" : "acm023451jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023447jsd" ] + }, + "acm023452jsd" : { + "type" : "ControlElement", + "id" : "acm023452jsd", + "name" : "setUp" + }, + "acm023453jsd" : { + "type" : "ControlElement", + "id" : "acm023453jsd", + "name" : "exportSingleEntry" + }, + "acm023454jsd" : { + "type" : "ControlElement", + "id" : "acm023454jsd", + "name" : "writeMultipleEntriesInASingleFile" + }, + "acm023455jsd" : { + "type" : "ControlElement", + "id" : "acm023455jsd", + "name" : "writeMultipleEntriesInDifferentFiles" + }, + "acm023456jsd" : { + "type" : "ControlElement", + "id" : "acm023456jsd", + "name" : "exportSingleEntryWithPrivacyFilter" + }, + "acm023457jsd" : { + "type" : "ClassUnit", + "id" : "acm023457jsd", + "name" : "XmpExporterTest", + "compilationUnitId" : "acm023447jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011502jsd", "acm011689jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd" ], + "content" : [ "acm023452jsd", "acm023453jsd", "acm023454jsd", "acm023455jsd", "acm023456jsd" ] + }, + "acm023458jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023458jsd", + "name" : "XmpPdfExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023474jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023459jsd" : { + "type" : "CodePackage", + "id" : "acm023459jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023460jsd" ] + }, + "acm023460jsd" : { + "type" : "CodePackage", + "id" : "acm023460jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023461jsd" ] + }, + "acm023461jsd" : { + "type" : "CodePackage", + "id" : "acm023461jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023462jsd" ] + }, + "acm023462jsd" : { + "type" : "CodePackage", + "id" : "acm023462jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023458jsd" ] + }, + "acm023463jsd" : { + "type" : "ControlElement", + "id" : "acm023463jsd", + "name" : "initBibEntries" + }, + "acm023464jsd" : { + "type" : "ControlElement", + "id" : "acm023464jsd", + "name" : "setUp" + }, + "acm023465jsd" : { + "type" : "ControlElement", + "id" : "acm023465jsd", + "name" : "successfulExportToAllFilesOfEntry" + }, + "acm023466jsd" : { + "type" : "ControlElement", + "id" : "acm023466jsd", + "name" : "unsuccessfulExportToAllFilesOfEntry" + }, + "acm023467jsd" : { + "type" : "ControlElement", + "id" : "acm023467jsd", + "name" : "provideBibEntriesWithValidPdfFileLinks" + }, + "acm023468jsd" : { + "type" : "ControlElement", + "id" : "acm023468jsd", + "name" : "provideBibEntriesWithInvalidPdfFileLinks" + }, + "acm023469jsd" : { + "type" : "ControlElement", + "id" : "acm023469jsd", + "name" : "successfulExportToFileByPath" + }, + "acm023470jsd" : { + "type" : "ControlElement", + "id" : "acm023470jsd", + "name" : "unsuccessfulExportToFileByPath" + }, + "acm023471jsd" : { + "type" : "ControlElement", + "id" : "acm023471jsd", + "name" : "providePathsToValidPDFs" + }, + "acm023472jsd" : { + "type" : "ControlElement", + "id" : "acm023472jsd", + "name" : "providePathsToInvalidPDFs" + }, + "acm023473jsd" : { + "type" : "ControlElement", + "id" : "acm023473jsd", + "name" : "createDefaultLinkedFile" + }, + "acm023474jsd" : { + "type" : "ClassUnit", + "id" : "acm023474jsd", + "name" : "XmpPdfExporterTest", + "compilationUnitId" : "acm023458jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011697jsd", "acm014250jsd", "acm017745jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm023463jsd", "acm023464jsd", "acm023465jsd", "acm023466jsd", "acm023467jsd", "acm023468jsd", "acm023469jsd", "acm023470jsd", "acm023471jsd", "acm023472jsd", "acm023473jsd" ] + }, + "acm023475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023475jsd", + "name" : "YamlExporterTest", + "parentId" : "acm011391jsd", + "content" : [ "acm023486jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "exporter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023476jsd" : { + "type" : "CodePackage", + "id" : "acm023476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023477jsd" ] + }, + "acm023477jsd" : { + "type" : "CodePackage", + "id" : "acm023477jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023478jsd" ] + }, + "acm023478jsd" : { + "type" : "CodePackage", + "id" : "acm023478jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023479jsd" ] + }, + "acm023479jsd" : { + "type" : "CodePackage", + "id" : "acm023479jsd", + "name" : "exporter", + "parentId" : null, + "content" : [ "acm023475jsd" ] + }, + "acm023480jsd" : { + "type" : "ControlElement", + "id" : "acm023480jsd", + "name" : "setUp" + }, + "acm023481jsd" : { + "type" : "ControlElement", + "id" : "acm023481jsd", + "name" : "exportForNoEntriesWritesNothing" + }, + "acm023482jsd" : { + "type" : "ControlElement", + "id" : "acm023482jsd", + "name" : "exportsCorrectContent" + }, + "acm023483jsd" : { + "type" : "ControlElement", + "id" : "acm023483jsd", + "name" : "formatsContentCorrect" + }, + "acm023484jsd" : { + "type" : "ControlElement", + "id" : "acm023484jsd", + "name" : "passesModifiedCharset" + }, + "acm023485jsd" : { + "type" : "ControlElement", + "id" : "acm023485jsd", + "name" : "passesModifiedCharsetNull" + }, + "acm023486jsd" : { + "type" : "ClassUnit", + "id" : "acm023486jsd", + "name" : "YamlExporterTest", + "compilationUnitId" : "acm023475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010497jsd", "acm011502jsd", "acm011513jsd", "acm011645jsd", "acm015033jsd", "acm017745jsd", "acm018022jsd", "acm018267jsd", "acm018333jsd" ], + "content" : [ "acm023480jsd", "acm023481jsd", "acm023482jsd", "acm023483jsd", "acm023484jsd", "acm023485jsd" ] + }, + "acm023487jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023487jsd", + "name" : "FormatterTest", + "parentId" : "acm011725jsd", + "content" : [ "acm023504jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023488jsd" : { + "type" : "CodePackage", + "id" : "acm023488jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023489jsd" ] + }, + "acm023489jsd" : { + "type" : "CodePackage", + "id" : "acm023489jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023490jsd" ] + }, + "acm023490jsd" : { + "type" : "CodePackage", + "id" : "acm023490jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023491jsd" ] + }, + "acm023491jsd" : { + "type" : "CodePackage", + "id" : "acm023491jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023487jsd" ] + }, + "acm023492jsd" : { + "type" : "ControlElement", + "id" : "acm023492jsd", + "name" : "setUp" + }, + "acm023493jsd" : { + "type" : "ControlElement", + "id" : "acm023493jsd", + "name" : "allFormatterKeysAreUnique" + }, + "acm023494jsd" : { + "type" : "ControlElement", + "id" : "acm023494jsd", + "name" : "getNameReturnsNotNull" + }, + "acm023495jsd" : { + "type" : "ControlElement", + "id" : "acm023495jsd", + "name" : "getNameReturnsNotEmpty" + }, + "acm023496jsd" : { + "type" : "ControlElement", + "id" : "acm023496jsd", + "name" : "getKeyReturnsNotNull" + }, + "acm023497jsd" : { + "type" : "ControlElement", + "id" : "acm023497jsd", + "name" : "getKeyReturnsNotEmpty" + }, + "acm023498jsd" : { + "type" : "ControlElement", + "id" : "acm023498jsd", + "name" : "formatOfNullThrowsException" + }, + "acm023499jsd" : { + "type" : "ControlElement", + "id" : "acm023499jsd", + "name" : "formatOfEmptyStringReturnsEmpty" + }, + "acm023500jsd" : { + "type" : "ControlElement", + "id" : "acm023500jsd", + "name" : "formatNotReturnsNull" + }, + "acm023501jsd" : { + "type" : "ControlElement", + "id" : "acm023501jsd", + "name" : "getDescriptionAlwaysNonEmpty" + }, + "acm023502jsd" : { + "type" : "ControlElement", + "id" : "acm023502jsd", + "name" : "getExampleInputAlwaysNonEmpty" + }, + "acm023503jsd" : { + "type" : "ControlElement", + "id" : "acm023503jsd", + "name" : "getFormatters" + }, + "acm023504jsd" : { + "type" : "ClassUnit", + "id" : "acm023504jsd", + "name" : "FormatterTest", + "compilationUnitId" : "acm023487jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011208jsd", "acm011743jsd", "acm012098jsd", "acm012215jsd", "acm016690jsd", "acm016716jsd" ], + "content" : [ "acm023492jsd", "acm023493jsd", "acm023494jsd", "acm023495jsd", "acm023496jsd", "acm023497jsd", "acm023498jsd", "acm023499jsd", "acm023500jsd", "acm023501jsd", "acm023502jsd", "acm023503jsd" ] + }, + "acm023505jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023505jsd", + "name" : "IdentityFormatterTest", + "parentId" : "acm011725jsd", + "content" : [ "acm023512jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023506jsd" : { + "type" : "CodePackage", + "id" : "acm023506jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023507jsd" ] + }, + "acm023507jsd" : { + "type" : "CodePackage", + "id" : "acm023507jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023508jsd" ] + }, + "acm023508jsd" : { + "type" : "CodePackage", + "id" : "acm023508jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023509jsd" ] + }, + "acm023509jsd" : { + "type" : "CodePackage", + "id" : "acm023509jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023505jsd" ] + }, + "acm023510jsd" : { + "type" : "ControlElement", + "id" : "acm023510jsd", + "name" : "setUp" + }, + "acm023511jsd" : { + "type" : "ControlElement", + "id" : "acm023511jsd", + "name" : "formatExample" + }, + "acm023512jsd" : { + "type" : "ClassUnit", + "id" : "acm023512jsd", + "name" : "IdentityFormatterTest", + "compilationUnitId" : "acm023505jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011743jsd" ], + "content" : [ "acm023510jsd", "acm023511jsd" ] + }, + "acm023513jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023513jsd", + "name" : "AddBracesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023532jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023514jsd" : { + "type" : "CodePackage", + "id" : "acm023514jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023515jsd" ] + }, + "acm023515jsd" : { + "type" : "CodePackage", + "id" : "acm023515jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023516jsd" ] + }, + "acm023516jsd" : { + "type" : "CodePackage", + "id" : "acm023516jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023517jsd" ] + }, + "acm023517jsd" : { + "type" : "CodePackage", + "id" : "acm023517jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023518jsd" ] + }, + "acm023518jsd" : { + "type" : "CodePackage", + "id" : "acm023518jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023513jsd" ] + }, + "acm023519jsd" : { + "type" : "ControlElement", + "id" : "acm023519jsd", + "name" : "setUp" + }, + "acm023520jsd" : { + "type" : "ControlElement", + "id" : "acm023520jsd", + "name" : "formatAddsSingleEnclosingBraces" + }, + "acm023521jsd" : { + "type" : "ControlElement", + "id" : "acm023521jsd", + "name" : "formatKeepsUnmatchedBracesAtBeginning" + }, + "acm023522jsd" : { + "type" : "ControlElement", + "id" : "acm023522jsd", + "name" : "formatKeepsUnmatchedBracesAtEnd" + }, + "acm023523jsd" : { + "type" : "ControlElement", + "id" : "acm023523jsd", + "name" : "formatKeepsShortString" + }, + "acm023524jsd" : { + "type" : "ControlElement", + "id" : "acm023524jsd", + "name" : "formatKeepsEmptyString" + }, + "acm023525jsd" : { + "type" : "ControlElement", + "id" : "acm023525jsd", + "name" : "formatKeepsDoubleEnclosingBraces" + }, + "acm023526jsd" : { + "type" : "ControlElement", + "id" : "acm023526jsd", + "name" : "formatKeepsTripleEnclosingBraces" + }, + "acm023527jsd" : { + "type" : "ControlElement", + "id" : "acm023527jsd", + "name" : "formatKeepsNonMatchingBraces" + }, + "acm023528jsd" : { + "type" : "ControlElement", + "id" : "acm023528jsd", + "name" : "formatKeepsOnlyMatchingBraces" + }, + "acm023529jsd" : { + "type" : "ControlElement", + "id" : "acm023529jsd", + "name" : "formatDoesNotRemoveBracesInBrokenString" + }, + "acm023530jsd" : { + "type" : "ControlElement", + "id" : "acm023530jsd", + "name" : "formatExample" + }, + "acm023531jsd" : { + "type" : "ControlElement", + "id" : "acm023531jsd", + "name" : "formatStringWithMinimalRequiredLength" + }, + "acm023532jsd" : { + "type" : "ClassUnit", + "id" : "acm023532jsd", + "name" : "AddBracesFormatterTest", + "compilationUnitId" : "acm023513jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011755jsd" ], + "content" : [ "acm023519jsd", "acm023520jsd", "acm023521jsd", "acm023522jsd", "acm023523jsd", "acm023524jsd", "acm023525jsd", "acm023526jsd", "acm023527jsd", "acm023528jsd", "acm023529jsd", "acm023530jsd", "acm023531jsd" ] + }, + "acm023533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023533jsd", + "name" : "CleanupUrlFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023547jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023534jsd" : { + "type" : "CodePackage", + "id" : "acm023534jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023535jsd" ] + }, + "acm023535jsd" : { + "type" : "CodePackage", + "id" : "acm023535jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023536jsd" ] + }, + "acm023536jsd" : { + "type" : "CodePackage", + "id" : "acm023536jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023537jsd" ] + }, + "acm023537jsd" : { + "type" : "CodePackage", + "id" : "acm023537jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023538jsd" ] + }, + "acm023538jsd" : { + "type" : "CodePackage", + "id" : "acm023538jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023533jsd" ] + }, + "acm023539jsd" : { + "type" : "ControlElement", + "id" : "acm023539jsd", + "name" : "setUp" + }, + "acm023540jsd" : { + "type" : "ControlElement", + "id" : "acm023540jsd", + "name" : "removeSpecialSymbolsFromURLLink" + }, + "acm023541jsd" : { + "type" : "ControlElement", + "id" : "acm023541jsd", + "name" : "extractURLFormLink" + }, + "acm023542jsd" : { + "type" : "ControlElement", + "id" : "acm023542jsd", + "name" : "validUrlUnmodified" + }, + "acm023543jsd" : { + "type" : "ControlElement", + "id" : "acm023543jsd", + "name" : "latexCommandsNotRemoved" + }, + "acm023544jsd" : { + "type" : "ControlElement", + "id" : "acm023544jsd", + "name" : "urlencodedSlashesAreAlsoConverted" + }, + "acm023545jsd" : { + "type" : "ControlElement", + "id" : "acm023545jsd", + "name" : "formatExample" + }, + "acm023546jsd" : { + "type" : "ControlElement", + "id" : "acm023546jsd", + "name" : "shouldNotReplacePlusOperatorAsASignInURL" + }, + "acm023547jsd" : { + "type" : "ClassUnit", + "id" : "acm023547jsd", + "name" : "CleanupUrlFormatterTest", + "compilationUnitId" : "acm023533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011767jsd" ], + "content" : [ "acm023539jsd", "acm023540jsd", "acm023541jsd", "acm023542jsd", "acm023543jsd", "acm023544jsd", "acm023545jsd", "acm023546jsd" ] + }, + "acm023548jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023548jsd", + "name" : "ClearFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023558jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023549jsd" : { + "type" : "CodePackage", + "id" : "acm023549jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023550jsd" ] + }, + "acm023550jsd" : { + "type" : "CodePackage", + "id" : "acm023550jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023551jsd" ] + }, + "acm023551jsd" : { + "type" : "CodePackage", + "id" : "acm023551jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023552jsd" ] + }, + "acm023552jsd" : { + "type" : "CodePackage", + "id" : "acm023552jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023553jsd" ] + }, + "acm023553jsd" : { + "type" : "CodePackage", + "id" : "acm023553jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023548jsd" ] + }, + "acm023554jsd" : { + "type" : "ControlElement", + "id" : "acm023554jsd", + "name" : "setUp" + }, + "acm023555jsd" : { + "type" : "ControlElement", + "id" : "acm023555jsd", + "name" : "formatReturnsEmptyForEmptyString" + }, + "acm023556jsd" : { + "type" : "ControlElement", + "id" : "acm023556jsd", + "name" : "formatReturnsEmptyForSomeString" + }, + "acm023557jsd" : { + "type" : "ControlElement", + "id" : "acm023557jsd", + "name" : "formatExample" + }, + "acm023558jsd" : { + "type" : "ClassUnit", + "id" : "acm023558jsd", + "name" : "ClearFormatterTest", + "compilationUnitId" : "acm023548jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011779jsd" ], + "content" : [ "acm023554jsd", "acm023555jsd", "acm023556jsd", "acm023557jsd" ] + }, + "acm023559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023559jsd", + "name" : "EscapeAmpersandsFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023571jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023560jsd" : { + "type" : "CodePackage", + "id" : "acm023560jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023561jsd" ] + }, + "acm023561jsd" : { + "type" : "CodePackage", + "id" : "acm023561jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023562jsd" ] + }, + "acm023562jsd" : { + "type" : "CodePackage", + "id" : "acm023562jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023563jsd" ] + }, + "acm023563jsd" : { + "type" : "CodePackage", + "id" : "acm023563jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023564jsd" ] + }, + "acm023564jsd" : { + "type" : "CodePackage", + "id" : "acm023564jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023559jsd" ] + }, + "acm023565jsd" : { + "type" : "ControlElement", + "id" : "acm023565jsd", + "name" : "setUp" + }, + "acm023566jsd" : { + "type" : "ControlElement", + "id" : "acm023566jsd", + "name" : "formatReturnsSameTextIfNoAmpersandsPresent" + }, + "acm023567jsd" : { + "type" : "ControlElement", + "id" : "acm023567jsd", + "name" : "formatEscapesAmpersandsIfPresent" + }, + "acm023568jsd" : { + "type" : "ControlElement", + "id" : "acm023568jsd", + "name" : "formatExample" + }, + "acm023569jsd" : { + "type" : "ControlElement", + "id" : "acm023569jsd", + "name" : "formatReturnsSameTextInNewUserDefinedLatexCommandIfNoAmpersandsPresent" + }, + "acm023570jsd" : { + "type" : "ControlElement", + "id" : "acm023570jsd", + "name" : "formatReturnsSameTextInLatexCommandIfOneAmpersandPresent" + }, + "acm023571jsd" : { + "type" : "ClassUnit", + "id" : "acm023571jsd", + "name" : "EscapeAmpersandsFormatterTest", + "compilationUnitId" : "acm023559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011791jsd" ], + "content" : [ "acm023565jsd", "acm023566jsd", "acm023567jsd", "acm023568jsd", "acm023569jsd", "acm023570jsd" ] + }, + "acm023572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023572jsd", + "name" : "EscapeDollarSignFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023581jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023573jsd" : { + "type" : "CodePackage", + "id" : "acm023573jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023574jsd" ] + }, + "acm023574jsd" : { + "type" : "CodePackage", + "id" : "acm023574jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023575jsd" ] + }, + "acm023575jsd" : { + "type" : "CodePackage", + "id" : "acm023575jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023576jsd" ] + }, + "acm023576jsd" : { + "type" : "CodePackage", + "id" : "acm023576jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023577jsd" ] + }, + "acm023577jsd" : { + "type" : "CodePackage", + "id" : "acm023577jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023572jsd" ] + }, + "acm023578jsd" : { + "type" : "ControlElement", + "id" : "acm023578jsd", + "name" : "correctlyFormats" + }, + "acm023579jsd" : { + "type" : "ControlElement", + "id" : "acm023579jsd", + "name" : "correctlyFormats" + }, + "acm023580jsd" : { + "type" : "ControlElement", + "id" : "acm023580jsd", + "name" : "formatExample" + }, + "acm023581jsd" : { + "type" : "ClassUnit", + "id" : "acm023581jsd", + "name" : "EscapeDollarSignFormatterTest", + "compilationUnitId" : "acm023572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011803jsd" ], + "content" : [ "acm023578jsd", "acm023579jsd", "acm023580jsd" ] + }, + "acm023582jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023582jsd", + "name" : "EscapeUnderscoresFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023592jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023583jsd" : { + "type" : "CodePackage", + "id" : "acm023583jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023584jsd" ] + }, + "acm023584jsd" : { + "type" : "CodePackage", + "id" : "acm023584jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023585jsd" ] + }, + "acm023585jsd" : { + "type" : "CodePackage", + "id" : "acm023585jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023586jsd" ] + }, + "acm023586jsd" : { + "type" : "CodePackage", + "id" : "acm023586jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023587jsd" ] + }, + "acm023587jsd" : { + "type" : "CodePackage", + "id" : "acm023587jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023582jsd" ] + }, + "acm023588jsd" : { + "type" : "ControlElement", + "id" : "acm023588jsd", + "name" : "setUp" + }, + "acm023589jsd" : { + "type" : "ControlElement", + "id" : "acm023589jsd", + "name" : "formatReturnsSameTextIfNoUnderscoresPresent" + }, + "acm023590jsd" : { + "type" : "ControlElement", + "id" : "acm023590jsd", + "name" : "formatEscapesUnderscoresIfPresent" + }, + "acm023591jsd" : { + "type" : "ControlElement", + "id" : "acm023591jsd", + "name" : "formatExample" + }, + "acm023592jsd" : { + "type" : "ClassUnit", + "id" : "acm023592jsd", + "name" : "EscapeUnderscoresFormatterTest", + "compilationUnitId" : "acm023582jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011815jsd" ], + "content" : [ "acm023588jsd", "acm023589jsd", "acm023590jsd", "acm023591jsd" ] + }, + "acm023593jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023593jsd", + "name" : "HtmlToLatexFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023609jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023594jsd" : { + "type" : "CodePackage", + "id" : "acm023594jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023595jsd" ] + }, + "acm023595jsd" : { + "type" : "CodePackage", + "id" : "acm023595jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023596jsd" ] + }, + "acm023596jsd" : { + "type" : "CodePackage", + "id" : "acm023596jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023597jsd" ] + }, + "acm023597jsd" : { + "type" : "CodePackage", + "id" : "acm023597jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023598jsd" ] + }, + "acm023598jsd" : { + "type" : "CodePackage", + "id" : "acm023598jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023593jsd" ] + }, + "acm023599jsd" : { + "type" : "ControlElement", + "id" : "acm023599jsd", + "name" : "setUp" + }, + "acm023600jsd" : { + "type" : "ControlElement", + "id" : "acm023600jsd", + "name" : "formatWithoutHtmlCharactersReturnsSameString" + }, + "acm023601jsd" : { + "type" : "ControlElement", + "id" : "acm023601jsd", + "name" : "formatMultipleHtmlCharacters" + }, + "acm023602jsd" : { + "type" : "ControlElement", + "id" : "acm023602jsd", + "name" : "formatCombinedAccent" + }, + "acm023603jsd" : { + "type" : "ControlElement", + "id" : "acm023603jsd", + "name" : "testBasic" + }, + "acm023604jsd" : { + "type" : "ControlElement", + "id" : "acm023604jsd", + "name" : "testHTML" + }, + "acm023605jsd" : { + "type" : "ControlElement", + "id" : "acm023605jsd", + "name" : "testHTMLRemoveTags" + }, + "acm023606jsd" : { + "type" : "ControlElement", + "id" : "acm023606jsd", + "name" : "testHTMLCombiningAccents" + }, + "acm023607jsd" : { + "type" : "ControlElement", + "id" : "acm023607jsd", + "name" : "keepsSingleLessThan" + }, + "acm023608jsd" : { + "type" : "ControlElement", + "id" : "acm023608jsd", + "name" : "formatExample" + }, + "acm023609jsd" : { + "type" : "ClassUnit", + "id" : "acm023609jsd", + "name" : "HtmlToLatexFormatterTest", + "compilationUnitId" : "acm023593jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011828jsd" ], + "content" : [ "acm023599jsd", "acm023600jsd", "acm023601jsd", "acm023602jsd", "acm023603jsd", "acm023604jsd", "acm023605jsd", "acm023606jsd", "acm023607jsd", "acm023608jsd" ] + }, + "acm023610jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023610jsd", + "name" : "HtmlToUnicodeFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023619jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023611jsd" : { + "type" : "CodePackage", + "id" : "acm023611jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023612jsd" ] + }, + "acm023612jsd" : { + "type" : "CodePackage", + "id" : "acm023612jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023613jsd" ] + }, + "acm023613jsd" : { + "type" : "CodePackage", + "id" : "acm023613jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023614jsd" ] + }, + "acm023614jsd" : { + "type" : "CodePackage", + "id" : "acm023614jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023615jsd" ] + }, + "acm023615jsd" : { + "type" : "CodePackage", + "id" : "acm023615jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023610jsd" ] + }, + "acm023616jsd" : { + "type" : "ControlElement", + "id" : "acm023616jsd", + "name" : "data" + }, + "acm023617jsd" : { + "type" : "ControlElement", + "id" : "acm023617jsd", + "name" : "setUp" + }, + "acm023618jsd" : { + "type" : "ControlElement", + "id" : "acm023618jsd", + "name" : "testFormatterWorksCorrectly" + }, + "acm023619jsd" : { + "type" : "ClassUnit", + "id" : "acm023619jsd", + "name" : "HtmlToUnicodeFormatterTest", + "compilationUnitId" : "acm023610jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011840jsd" ], + "content" : [ "acm023616jsd", "acm023617jsd", "acm023618jsd" ] + }, + "acm023620jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023620jsd", + "name" : "LatexCleanupFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023632jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023621jsd" : { + "type" : "CodePackage", + "id" : "acm023621jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023622jsd" ] + }, + "acm023622jsd" : { + "type" : "CodePackage", + "id" : "acm023622jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023623jsd" ] + }, + "acm023623jsd" : { + "type" : "CodePackage", + "id" : "acm023623jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023624jsd" ] + }, + "acm023624jsd" : { + "type" : "CodePackage", + "id" : "acm023624jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023625jsd" ] + }, + "acm023625jsd" : { + "type" : "CodePackage", + "id" : "acm023625jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023620jsd" ] + }, + "acm023626jsd" : { + "type" : "ControlElement", + "id" : "acm023626jsd", + "name" : "setUp" + }, + "acm023627jsd" : { + "type" : "ControlElement", + "id" : "acm023627jsd", + "name" : "test" + }, + "acm023628jsd" : { + "type" : "ControlElement", + "id" : "acm023628jsd", + "name" : "preservePercentSign" + }, + "acm023629jsd" : { + "type" : "ControlElement", + "id" : "acm023629jsd", + "name" : "escapePercentSignOnlyOnce" + }, + "acm023630jsd" : { + "type" : "ControlElement", + "id" : "acm023630jsd", + "name" : "escapePercentSignOnlnyOnceWithNumber" + }, + "acm023631jsd" : { + "type" : "ControlElement", + "id" : "acm023631jsd", + "name" : "formatExample" + }, + "acm023632jsd" : { + "type" : "ClassUnit", + "id" : "acm023632jsd", + "name" : "LatexCleanupFormatterTest", + "compilationUnitId" : "acm023620jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011852jsd" ], + "content" : [ "acm023626jsd", "acm023627jsd", "acm023628jsd", "acm023629jsd", "acm023630jsd", "acm023631jsd" ] + }, + "acm023633jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023633jsd", + "name" : "NormalizeDateFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023664jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023634jsd" : { + "type" : "CodePackage", + "id" : "acm023634jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023635jsd" ] + }, + "acm023635jsd" : { + "type" : "CodePackage", + "id" : "acm023635jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023636jsd" ] + }, + "acm023636jsd" : { + "type" : "CodePackage", + "id" : "acm023636jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023637jsd" ] + }, + "acm023637jsd" : { + "type" : "CodePackage", + "id" : "acm023637jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023638jsd" ] + }, + "acm023638jsd" : { + "type" : "CodePackage", + "id" : "acm023638jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023633jsd" ] + }, + "acm023639jsd" : { + "type" : "ControlElement", + "id" : "acm023639jsd", + "name" : "setUp" + }, + "acm023640jsd" : { + "type" : "ControlElement", + "id" : "acm023640jsd", + "name" : "formatDateYYYYMM0D" + }, + "acm023641jsd" : { + "type" : "ControlElement", + "id" : "acm023641jsd", + "name" : "formatDateYYYYM0D" + }, + "acm023642jsd" : { + "type" : "ControlElement", + "id" : "acm023642jsd", + "name" : "formatDateYYYYMD" + }, + "acm023643jsd" : { + "type" : "ControlElement", + "id" : "acm023643jsd", + "name" : "formatDateYYYYMM" + }, + "acm023644jsd" : { + "type" : "ControlElement", + "id" : "acm023644jsd", + "name" : "formatDateYYYYM" + }, + "acm023645jsd" : { + "type" : "ControlElement", + "id" : "acm023645jsd", + "name" : "formatDateMMYY" + }, + "acm023646jsd" : { + "type" : "ControlElement", + "id" : "acm023646jsd", + "name" : "formatDateMYY" + }, + "acm023647jsd" : { + "type" : "ControlElement", + "id" : "acm023647jsd", + "name" : "formatDate0MYY" + }, + "acm023648jsd" : { + "type" : "ControlElement", + "id" : "acm023648jsd", + "name" : "formatDateMMYYYY" + }, + "acm023649jsd" : { + "type" : "ControlElement", + "id" : "acm023649jsd", + "name" : "formatDateMYYYY" + }, + "acm023650jsd" : { + "type" : "ControlElement", + "id" : "acm023650jsd", + "name" : "formatDate0MYYYY" + }, + "acm023651jsd" : { + "type" : "ControlElement", + "id" : "acm023651jsd", + "name" : "formatDateMMMDDCommaYYYY" + }, + "acm023652jsd" : { + "type" : "ControlElement", + "id" : "acm023652jsd", + "name" : "formatDateMMMDCommaYYYY" + }, + "acm023653jsd" : { + "type" : "ControlElement", + "id" : "acm023653jsd", + "name" : "formatDateMMMCommaYYYY" + }, + "acm023654jsd" : { + "type" : "ControlElement", + "id" : "acm023654jsd", + "name" : "formatDate0DdotMMdotYYYY" + }, + "acm023655jsd" : { + "type" : "ControlElement", + "id" : "acm023655jsd", + "name" : "formatDateDdotMMdotYYYY" + }, + "acm023656jsd" : { + "type" : "ControlElement", + "id" : "acm023656jsd", + "name" : "formatDateDDdotMMdotYYYY" + }, + "acm023657jsd" : { + "type" : "ControlElement", + "id" : "acm023657jsd", + "name" : "formatDate0Ddot0MdotYYYY" + }, + "acm023658jsd" : { + "type" : "ControlElement", + "id" : "acm023658jsd", + "name" : "formatDateDdot0MdotYYYY" + }, + "acm023659jsd" : { + "type" : "ControlElement", + "id" : "acm023659jsd", + "name" : "formatDateDDdot0MdotYYYY" + }, + "acm023660jsd" : { + "type" : "ControlElement", + "id" : "acm023660jsd", + "name" : "formatDate0DdotMdotYYYY" + }, + "acm023661jsd" : { + "type" : "ControlElement", + "id" : "acm023661jsd", + "name" : "formatDateDdotMdotYYYY" + }, + "acm023662jsd" : { + "type" : "ControlElement", + "id" : "acm023662jsd", + "name" : "formatDateDDdotMdotYYYY" + }, + "acm023663jsd" : { + "type" : "ControlElement", + "id" : "acm023663jsd", + "name" : "formatExample" + }, + "acm023664jsd" : { + "type" : "ClassUnit", + "id" : "acm023664jsd", + "name" : "NormalizeDateFormatterTest", + "compilationUnitId" : "acm023633jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011864jsd" ], + "content" : [ "acm023639jsd", "acm023640jsd", "acm023641jsd", "acm023642jsd", "acm023643jsd", "acm023644jsd", "acm023645jsd", "acm023646jsd", "acm023647jsd", "acm023648jsd", "acm023649jsd", "acm023650jsd", "acm023651jsd", "acm023652jsd", "acm023653jsd", "acm023654jsd", "acm023655jsd", "acm023656jsd", "acm023657jsd", "acm023658jsd", "acm023659jsd", "acm023660jsd", "acm023661jsd", "acm023662jsd", "acm023663jsd" ] + }, + "acm023665jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023665jsd", + "name" : "NormalizeEnDashesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023679jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023666jsd" : { + "type" : "CodePackage", + "id" : "acm023666jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023667jsd" ] + }, + "acm023667jsd" : { + "type" : "CodePackage", + "id" : "acm023667jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023668jsd" ] + }, + "acm023668jsd" : { + "type" : "CodePackage", + "id" : "acm023668jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023669jsd" ] + }, + "acm023669jsd" : { + "type" : "CodePackage", + "id" : "acm023669jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023670jsd" ] + }, + "acm023670jsd" : { + "type" : "CodePackage", + "id" : "acm023670jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023665jsd" ] + }, + "acm023671jsd" : { + "type" : "ControlElement", + "id" : "acm023671jsd", + "name" : "setUp" + }, + "acm023672jsd" : { + "type" : "ControlElement", + "id" : "acm023672jsd", + "name" : "formatExample" + }, + "acm023673jsd" : { + "type" : "ControlElement", + "id" : "acm023673jsd", + "name" : "formatExampleOfChangelog" + }, + "acm023674jsd" : { + "type" : "ControlElement", + "id" : "acm023674jsd", + "name" : "dashesWithinWordsAreKept" + }, + "acm023675jsd" : { + "type" : "ControlElement", + "id" : "acm023675jsd", + "name" : "dashesPreceededByASpaceAreKept" + }, + "acm023676jsd" : { + "type" : "ControlElement", + "id" : "acm023676jsd", + "name" : "dashesFollowedByASpaceAreKept" + }, + "acm023677jsd" : { + "type" : "ControlElement", + "id" : "acm023677jsd", + "name" : "dashAtTheBeginningIsKept" + }, + "acm023678jsd" : { + "type" : "ControlElement", + "id" : "acm023678jsd", + "name" : "dashAtTheEndIsKept" + }, + "acm023679jsd" : { + "type" : "ClassUnit", + "id" : "acm023679jsd", + "name" : "NormalizeEnDashesFormatterTest", + "compilationUnitId" : "acm023665jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011876jsd" ], + "content" : [ "acm023671jsd", "acm023672jsd", "acm023673jsd", "acm023674jsd", "acm023675jsd", "acm023676jsd", "acm023677jsd", "acm023678jsd" ] + }, + "acm023680jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023680jsd", + "name" : "NormalizeMonthFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023689jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023681jsd" : { + "type" : "CodePackage", + "id" : "acm023681jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023682jsd" ] + }, + "acm023682jsd" : { + "type" : "CodePackage", + "id" : "acm023682jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023683jsd" ] + }, + "acm023683jsd" : { + "type" : "CodePackage", + "id" : "acm023683jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023684jsd" ] + }, + "acm023684jsd" : { + "type" : "CodePackage", + "id" : "acm023684jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023685jsd" ] + }, + "acm023685jsd" : { + "type" : "CodePackage", + "id" : "acm023685jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023680jsd" ] + }, + "acm023686jsd" : { + "type" : "ControlElement", + "id" : "acm023686jsd", + "name" : "setUp" + }, + "acm023687jsd" : { + "type" : "ControlElement", + "id" : "acm023687jsd", + "name" : "formatExample" + }, + "acm023688jsd" : { + "type" : "ControlElement", + "id" : "acm023688jsd", + "name" : "plainAprilShouldBeApril" + }, + "acm023689jsd" : { + "type" : "ClassUnit", + "id" : "acm023689jsd", + "name" : "NormalizeMonthFormatterTest", + "compilationUnitId" : "acm023680jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011888jsd" ], + "content" : [ "acm023686jsd", "acm023687jsd", "acm023688jsd" ] + }, + "acm023690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023690jsd", + "name" : "NormalizeNamesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023724jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023691jsd" : { + "type" : "CodePackage", + "id" : "acm023691jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023692jsd" ] + }, + "acm023692jsd" : { + "type" : "CodePackage", + "id" : "acm023692jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023693jsd" ] + }, + "acm023693jsd" : { + "type" : "CodePackage", + "id" : "acm023693jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023694jsd" ] + }, + "acm023694jsd" : { + "type" : "CodePackage", + "id" : "acm023694jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023695jsd" ] + }, + "acm023695jsd" : { + "type" : "CodePackage", + "id" : "acm023695jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023690jsd" ] + }, + "acm023696jsd" : { + "type" : "ControlElement", + "id" : "acm023696jsd", + "name" : "setUp" + }, + "acm023697jsd" : { + "type" : "ControlElement", + "id" : "acm023697jsd", + "name" : "testNormalizeAuthorList" + }, + "acm023698jsd" : { + "type" : "ControlElement", + "id" : "acm023698jsd", + "name" : "twoAuthorsSeperatedByColon" + }, + "acm023699jsd" : { + "type" : "ControlElement", + "id" : "acm023699jsd", + "name" : "threeAuthorsSeperatedByColon" + }, + "acm023700jsd" : { + "type" : "ControlElement", + "id" : "acm023700jsd", + "name" : "threeAuthorsSeperatedByAnd" + }, + "acm023701jsd" : { + "type" : "ControlElement", + "id" : "acm023701jsd", + "name" : "threeAuthorsSeperatedByAndWithDash" + }, + "acm023702jsd" : { + "type" : "ControlElement", + "id" : "acm023702jsd", + "name" : "threeAuthorsSeperatedByAndWithLatex" + }, + "acm023703jsd" : { + "type" : "ControlElement", + "id" : "acm023703jsd", + "name" : "lastThenInitial" + }, + "acm023704jsd" : { + "type" : "ControlElement", + "id" : "acm023704jsd", + "name" : "lastThenInitials" + }, + "acm023705jsd" : { + "type" : "ControlElement", + "id" : "acm023705jsd", + "name" : "initialThenLast" + }, + "acm023706jsd" : { + "type" : "ControlElement", + "id" : "acm023706jsd", + "name" : "initialDotThenLast" + }, + "acm023707jsd" : { + "type" : "ControlElement", + "id" : "acm023707jsd", + "name" : "initialsThenLast" + }, + "acm023708jsd" : { + "type" : "ControlElement", + "id" : "acm023708jsd", + "name" : "lastThenJuniorThenFirst" + }, + "acm023709jsd" : { + "type" : "ControlElement", + "id" : "acm023709jsd", + "name" : "testConcatenationOfAuthorsWithCommas" + }, + "acm023710jsd" : { + "type" : "ControlElement", + "id" : "acm023710jsd", + "name" : "testOddCountOfCommas" + }, + "acm023711jsd" : { + "type" : "ControlElement", + "id" : "acm023711jsd", + "name" : "formatExample" + }, + "acm023712jsd" : { + "type" : "ControlElement", + "id" : "acm023712jsd", + "name" : "testNameAffixe" + }, + "acm023713jsd" : { + "type" : "ControlElement", + "id" : "acm023713jsd", + "name" : "testAvoidSpecialCharacter" + }, + "acm023714jsd" : { + "type" : "ControlElement", + "id" : "acm023714jsd", + "name" : "testAndInName" + }, + "acm023715jsd" : { + "type" : "ControlElement", + "id" : "acm023715jsd", + "name" : "testMultipleNameAffixes" + }, + "acm023716jsd" : { + "type" : "ControlElement", + "id" : "acm023716jsd", + "name" : "testCommaSeperatedNames" + }, + "acm023717jsd" : { + "type" : "ControlElement", + "id" : "acm023717jsd", + "name" : "testMultipleSpaces" + }, + "acm023718jsd" : { + "type" : "ControlElement", + "id" : "acm023718jsd", + "name" : "testAvoidPreposition" + }, + "acm023719jsd" : { + "type" : "ControlElement", + "id" : "acm023719jsd", + "name" : "testPreposition" + }, + "acm023720jsd" : { + "type" : "ControlElement", + "id" : "acm023720jsd", + "name" : "testOneCommaUntouched" + }, + "acm023721jsd" : { + "type" : "ControlElement", + "id" : "acm023721jsd", + "name" : "testAvoidNameAffixes" + }, + "acm023722jsd" : { + "type" : "ControlElement", + "id" : "acm023722jsd", + "name" : "testUpperCaseSensitiveList" + }, + "acm023723jsd" : { + "type" : "ControlElement", + "id" : "acm023723jsd", + "name" : "testSemiCorrectNamesWithSemicolon" + }, + "acm023724jsd" : { + "type" : "ClassUnit", + "id" : "acm023724jsd", + "name" : "NormalizeNamesFormatterTest", + "compilationUnitId" : "acm023690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011900jsd" ], + "content" : [ "acm023696jsd", "acm023697jsd", "acm023698jsd", "acm023699jsd", "acm023700jsd", "acm023701jsd", "acm023702jsd", "acm023703jsd", "acm023704jsd", "acm023705jsd", "acm023706jsd", "acm023707jsd", "acm023708jsd", "acm023709jsd", "acm023710jsd", "acm023711jsd", "acm023712jsd", "acm023713jsd", "acm023714jsd", "acm023715jsd", "acm023716jsd", "acm023717jsd", "acm023718jsd", "acm023719jsd", "acm023720jsd", "acm023721jsd", "acm023722jsd", "acm023723jsd" ] + }, + "acm023725jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023725jsd", + "name" : "NormalizePagesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023734jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023726jsd" : { + "type" : "CodePackage", + "id" : "acm023726jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023727jsd" ] + }, + "acm023727jsd" : { + "type" : "CodePackage", + "id" : "acm023727jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023728jsd" ] + }, + "acm023728jsd" : { + "type" : "CodePackage", + "id" : "acm023728jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023729jsd" ] + }, + "acm023729jsd" : { + "type" : "CodePackage", + "id" : "acm023729jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023730jsd" ] + }, + "acm023730jsd" : { + "type" : "CodePackage", + "id" : "acm023730jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023725jsd" ] + }, + "acm023731jsd" : { + "type" : "ControlElement", + "id" : "acm023731jsd", + "name" : "setUp" + }, + "acm023732jsd" : { + "type" : "ControlElement", + "id" : "acm023732jsd", + "name" : "tests" + }, + "acm023733jsd" : { + "type" : "ControlElement", + "id" : "acm023733jsd", + "name" : "test" + }, + "acm023734jsd" : { + "type" : "ClassUnit", + "id" : "acm023734jsd", + "name" : "NormalizePagesFormatterTest", + "compilationUnitId" : "acm023725jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011912jsd" ], + "content" : [ "acm023731jsd", "acm023732jsd", "acm023733jsd" ] + }, + "acm023735jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023735jsd", + "name" : "OrdinalsToSuperscriptFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023749jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023736jsd" : { + "type" : "CodePackage", + "id" : "acm023736jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023737jsd" ] + }, + "acm023737jsd" : { + "type" : "CodePackage", + "id" : "acm023737jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023738jsd" ] + }, + "acm023738jsd" : { + "type" : "CodePackage", + "id" : "acm023738jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023739jsd" ] + }, + "acm023739jsd" : { + "type" : "CodePackage", + "id" : "acm023739jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023740jsd" ] + }, + "acm023740jsd" : { + "type" : "CodePackage", + "id" : "acm023740jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023735jsd" ] + }, + "acm023741jsd" : { + "type" : "ControlElement", + "id" : "acm023741jsd", + "name" : "setUp" + }, + "acm023742jsd" : { + "type" : "ControlElement", + "id" : "acm023742jsd", + "name" : "replacesSuperscript" + }, + "acm023743jsd" : { + "type" : "ControlElement", + "id" : "acm023743jsd", + "name" : "replaceSuperscriptsIgnoresCase" + }, + "acm023744jsd" : { + "type" : "ControlElement", + "id" : "acm023744jsd", + "name" : "replaceSuperscriptsInMultilineStrings" + }, + "acm023745jsd" : { + "type" : "ControlElement", + "id" : "acm023745jsd", + "name" : "replaceAllSuperscripts" + }, + "acm023746jsd" : { + "type" : "ControlElement", + "id" : "acm023746jsd", + "name" : "ignoreSuperscriptsInsideWords" + }, + "acm023747jsd" : { + "type" : "ControlElement", + "id" : "acm023747jsd", + "name" : "formatExample" + }, + "acm023748jsd" : { + "type" : "ControlElement", + "id" : "acm023748jsd", + "name" : "expectCorrect" + }, + "acm023749jsd" : { + "type" : "ClassUnit", + "id" : "acm023749jsd", + "name" : "OrdinalsToSuperscriptFormatterTest", + "compilationUnitId" : "acm023735jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011924jsd" ], + "content" : [ "acm023741jsd", "acm023742jsd", "acm023743jsd", "acm023744jsd", "acm023745jsd", "acm023746jsd", "acm023747jsd", "acm023748jsd" ] + }, + "acm023750jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023750jsd", + "name" : "RegexFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023768jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023751jsd" : { + "type" : "CodePackage", + "id" : "acm023751jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023752jsd" ] + }, + "acm023752jsd" : { + "type" : "CodePackage", + "id" : "acm023752jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023753jsd" ] + }, + "acm023753jsd" : { + "type" : "CodePackage", + "id" : "acm023753jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023754jsd" ] + }, + "acm023754jsd" : { + "type" : "CodePackage", + "id" : "acm023754jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023755jsd" ] + }, + "acm023755jsd" : { + "type" : "CodePackage", + "id" : "acm023755jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023750jsd" ] + }, + "acm023756jsd" : { + "type" : "ControlElement", + "id" : "acm023756jsd", + "name" : "spacesReplacedCorrectly" + }, + "acm023757jsd" : { + "type" : "ControlElement", + "id" : "acm023757jsd", + "name" : "protectedSpacesNotReplacedInSingleProtectedBlock" + }, + "acm023758jsd" : { + "type" : "ControlElement", + "id" : "acm023758jsd", + "name" : "protectedSpacesNotReplacedInTwoProtectedBlocks" + }, + "acm023759jsd" : { + "type" : "ControlElement", + "id" : "acm023759jsd", + "name" : "escapedBracesAreNotReplaced" + }, + "acm023760jsd" : { + "type" : "ControlElement", + "id" : "acm023760jsd", + "name" : "escapedBracesAreNotReplacedInTwoCases" + }, + "acm023761jsd" : { + "type" : "ControlElement", + "id" : "acm023761jsd", + "name" : "escapedBracesAreNotReplacedAndProtectionStillWorks" + }, + "acm023762jsd" : { + "type" : "ControlElement", + "id" : "acm023762jsd", + "name" : "formatExample" + }, + "acm023763jsd" : { + "type" : "ControlElement", + "id" : "acm023763jsd", + "name" : "formatCanRemoveMatchesWithEmptyReplacement" + }, + "acm023764jsd" : { + "type" : "ControlElement", + "id" : "acm023764jsd", + "name" : "constructorWithInvalidConstructorArgumentReturnUnchangedString" + }, + "acm023765jsd" : { + "type" : "ControlElement", + "id" : "acm023765jsd", + "name" : "constructorWithEmptyStringArgumentReturnUnchangedString" + }, + "acm023766jsd" : { + "type" : "ControlElement", + "id" : "acm023766jsd", + "name" : "constructorAllowsSpacesBetweenQuotes" + }, + "acm023767jsd" : { + "type" : "ControlElement", + "id" : "acm023767jsd", + "name" : "formatWithSyntaxErrorReturnUnchangedString" + }, + "acm023768jsd" : { + "type" : "ClassUnit", + "id" : "acm023768jsd", + "name" : "RegexFormatterTest", + "compilationUnitId" : "acm023750jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011938jsd" ], + "content" : [ "acm023756jsd", "acm023757jsd", "acm023758jsd", "acm023759jsd", "acm023760jsd", "acm023761jsd", "acm023762jsd", "acm023763jsd", "acm023764jsd", "acm023765jsd", "acm023766jsd", "acm023767jsd" ] + }, + "acm023769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023769jsd", + "name" : "RemoveBracesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023788jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023770jsd" : { + "type" : "CodePackage", + "id" : "acm023770jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023771jsd" ] + }, + "acm023771jsd" : { + "type" : "CodePackage", + "id" : "acm023771jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023772jsd" ] + }, + "acm023772jsd" : { + "type" : "CodePackage", + "id" : "acm023772jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023773jsd" ] + }, + "acm023773jsd" : { + "type" : "CodePackage", + "id" : "acm023773jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023774jsd" ] + }, + "acm023774jsd" : { + "type" : "CodePackage", + "id" : "acm023774jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023769jsd" ] + }, + "acm023775jsd" : { + "type" : "ControlElement", + "id" : "acm023775jsd", + "name" : "setUp" + }, + "acm023776jsd" : { + "type" : "ControlElement", + "id" : "acm023776jsd", + "name" : "formatRemovesSingleEnclosingBraces" + }, + "acm023777jsd" : { + "type" : "ControlElement", + "id" : "acm023777jsd", + "name" : "formatKeepsUnmatchedBracesAtBeginning" + }, + "acm023778jsd" : { + "type" : "ControlElement", + "id" : "acm023778jsd", + "name" : "formatKeepsUnmatchedBracesAtEnd" + }, + "acm023779jsd" : { + "type" : "ControlElement", + "id" : "acm023779jsd", + "name" : "formatKeepsShortString" + }, + "acm023780jsd" : { + "type" : "ControlElement", + "id" : "acm023780jsd", + "name" : "formatRemovesBracesOnly" + }, + "acm023781jsd" : { + "type" : "ControlElement", + "id" : "acm023781jsd", + "name" : "formatKeepsEmptyString" + }, + "acm023782jsd" : { + "type" : "ControlElement", + "id" : "acm023782jsd", + "name" : "formatRemovesDoubleEnclosingBraces" + }, + "acm023783jsd" : { + "type" : "ControlElement", + "id" : "acm023783jsd", + "name" : "formatRemovesTripleEnclosingBraces" + }, + "acm023784jsd" : { + "type" : "ControlElement", + "id" : "acm023784jsd", + "name" : "formatKeepsNonMatchingBraces" + }, + "acm023785jsd" : { + "type" : "ControlElement", + "id" : "acm023785jsd", + "name" : "formatRemovesOnlyMatchingBraces" + }, + "acm023786jsd" : { + "type" : "ControlElement", + "id" : "acm023786jsd", + "name" : "formatDoesNotRemoveBracesInBrokenString" + }, + "acm023787jsd" : { + "type" : "ControlElement", + "id" : "acm023787jsd", + "name" : "formatExample" + }, + "acm023788jsd" : { + "type" : "ClassUnit", + "id" : "acm023788jsd", + "name" : "RemoveBracesFormatterTest", + "compilationUnitId" : "acm023769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011951jsd" ], + "content" : [ "acm023775jsd", "acm023776jsd", "acm023777jsd", "acm023778jsd", "acm023779jsd", "acm023780jsd", "acm023781jsd", "acm023782jsd", "acm023783jsd", "acm023784jsd", "acm023785jsd", "acm023786jsd", "acm023787jsd" ] + }, + "acm023789jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023789jsd", + "name" : "RemoveDigitsFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023799jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023790jsd" : { + "type" : "CodePackage", + "id" : "acm023790jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023791jsd" ] + }, + "acm023791jsd" : { + "type" : "CodePackage", + "id" : "acm023791jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023792jsd" ] + }, + "acm023792jsd" : { + "type" : "CodePackage", + "id" : "acm023792jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023793jsd" ] + }, + "acm023793jsd" : { + "type" : "CodePackage", + "id" : "acm023793jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023794jsd" ] + }, + "acm023794jsd" : { + "type" : "CodePackage", + "id" : "acm023794jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023789jsd" ] + }, + "acm023795jsd" : { + "type" : "ControlElement", + "id" : "acm023795jsd", + "name" : "setUp" + }, + "acm023796jsd" : { + "type" : "ControlElement", + "id" : "acm023796jsd", + "name" : "doNothingIfSingleSpace" + }, + "acm023797jsd" : { + "type" : "ControlElement", + "id" : "acm023797jsd", + "name" : "doNothingIfNoSpace" + }, + "acm023798jsd" : { + "type" : "ControlElement", + "id" : "acm023798jsd", + "name" : "removeAllButOneSpacesIfTwo" + }, + "acm023799jsd" : { + "type" : "ClassUnit", + "id" : "acm023799jsd", + "name" : "RemoveDigitsFormatterTest", + "compilationUnitId" : "acm023789jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011963jsd" ], + "content" : [ "acm023795jsd", "acm023796jsd", "acm023797jsd", "acm023798jsd" ] + }, + "acm023800jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023800jsd", + "name" : "RemoveHyphenatedNewlinesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023810jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023801jsd" : { + "type" : "CodePackage", + "id" : "acm023801jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023802jsd" ] + }, + "acm023802jsd" : { + "type" : "CodePackage", + "id" : "acm023802jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023803jsd" ] + }, + "acm023803jsd" : { + "type" : "CodePackage", + "id" : "acm023803jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023804jsd" ] + }, + "acm023804jsd" : { + "type" : "CodePackage", + "id" : "acm023804jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023805jsd" ] + }, + "acm023805jsd" : { + "type" : "CodePackage", + "id" : "acm023805jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023800jsd" ] + }, + "acm023806jsd" : { + "type" : "ControlElement", + "id" : "acm023806jsd", + "name" : "setUp" + }, + "acm023807jsd" : { + "type" : "ControlElement", + "id" : "acm023807jsd", + "name" : "removeHyphensBeforeNewlines" + }, + "acm023808jsd" : { + "type" : "ControlElement", + "id" : "acm023808jsd", + "name" : "withoutHyphensUnmodified" + }, + "acm023809jsd" : { + "type" : "ControlElement", + "id" : "acm023809jsd", + "name" : "removeHyphensBeforePlatformSpecificNewlines" + }, + "acm023810jsd" : { + "type" : "ClassUnit", + "id" : "acm023810jsd", + "name" : "RemoveHyphenatedNewlinesFormatterTest", + "compilationUnitId" : "acm023800jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011975jsd" ], + "content" : [ "acm023806jsd", "acm023807jsd", "acm023808jsd", "acm023809jsd" ] + }, + "acm023811jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023811jsd", + "name" : "RemoveNewlinesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023823jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023812jsd" : { + "type" : "CodePackage", + "id" : "acm023812jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023813jsd" ] + }, + "acm023813jsd" : { + "type" : "CodePackage", + "id" : "acm023813jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023814jsd" ] + }, + "acm023814jsd" : { + "type" : "CodePackage", + "id" : "acm023814jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023815jsd" ] + }, + "acm023815jsd" : { + "type" : "CodePackage", + "id" : "acm023815jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023816jsd" ] + }, + "acm023816jsd" : { + "type" : "CodePackage", + "id" : "acm023816jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023811jsd" ] + }, + "acm023817jsd" : { + "type" : "ControlElement", + "id" : "acm023817jsd", + "name" : "setUp" + }, + "acm023818jsd" : { + "type" : "ControlElement", + "id" : "acm023818jsd", + "name" : "removeCarriageReturnLineFeed" + }, + "acm023819jsd" : { + "type" : "ControlElement", + "id" : "acm023819jsd", + "name" : "removeCarriageReturn" + }, + "acm023820jsd" : { + "type" : "ControlElement", + "id" : "acm023820jsd", + "name" : "removeLineFeed" + }, + "acm023821jsd" : { + "type" : "ControlElement", + "id" : "acm023821jsd", + "name" : "withoutNewLineUnmodified" + }, + "acm023822jsd" : { + "type" : "ControlElement", + "id" : "acm023822jsd", + "name" : "removePlatformSpecificNewLine" + }, + "acm023823jsd" : { + "type" : "ClassUnit", + "id" : "acm023823jsd", + "name" : "RemoveNewlinesFormatterTest", + "compilationUnitId" : "acm023811jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011987jsd" ], + "content" : [ "acm023817jsd", "acm023818jsd", "acm023819jsd", "acm023820jsd", "acm023821jsd", "acm023822jsd" ] + }, + "acm023824jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023824jsd", + "name" : "RemoveRedundantSpacesFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023835jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023825jsd" : { + "type" : "CodePackage", + "id" : "acm023825jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023826jsd" ] + }, + "acm023826jsd" : { + "type" : "CodePackage", + "id" : "acm023826jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023827jsd" ] + }, + "acm023827jsd" : { + "type" : "CodePackage", + "id" : "acm023827jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023828jsd" ] + }, + "acm023828jsd" : { + "type" : "CodePackage", + "id" : "acm023828jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023829jsd" ] + }, + "acm023829jsd" : { + "type" : "CodePackage", + "id" : "acm023829jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023824jsd" ] + }, + "acm023830jsd" : { + "type" : "ControlElement", + "id" : "acm023830jsd", + "name" : "setUp" + }, + "acm023831jsd" : { + "type" : "ControlElement", + "id" : "acm023831jsd", + "name" : "doNothingIfSingleSpace" + }, + "acm023832jsd" : { + "type" : "ControlElement", + "id" : "acm023832jsd", + "name" : "doNothingIfNoSpace" + }, + "acm023833jsd" : { + "type" : "ControlElement", + "id" : "acm023833jsd", + "name" : "removeAllButOneSpacesIfTwo" + }, + "acm023834jsd" : { + "type" : "ControlElement", + "id" : "acm023834jsd", + "name" : "removeAllButOneSpacesIfThree" + }, + "acm023835jsd" : { + "type" : "ClassUnit", + "id" : "acm023835jsd", + "name" : "RemoveRedundantSpacesFormatterTest", + "compilationUnitId" : "acm023824jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011999jsd" ], + "content" : [ "acm023830jsd", "acm023831jsd", "acm023832jsd", "acm023833jsd", "acm023834jsd" ] + }, + "acm023836jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023836jsd", + "name" : "ReplaceTabsBySpaceFormaterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023846jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023837jsd" : { + "type" : "CodePackage", + "id" : "acm023837jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023838jsd" ] + }, + "acm023838jsd" : { + "type" : "CodePackage", + "id" : "acm023838jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023839jsd" ] + }, + "acm023839jsd" : { + "type" : "CodePackage", + "id" : "acm023839jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023840jsd" ] + }, + "acm023840jsd" : { + "type" : "CodePackage", + "id" : "acm023840jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023841jsd" ] + }, + "acm023841jsd" : { + "type" : "CodePackage", + "id" : "acm023841jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023836jsd" ] + }, + "acm023842jsd" : { + "type" : "ControlElement", + "id" : "acm023842jsd", + "name" : "setUp" + }, + "acm023843jsd" : { + "type" : "ControlElement", + "id" : "acm023843jsd", + "name" : "removeSingleTab" + }, + "acm023844jsd" : { + "type" : "ControlElement", + "id" : "acm023844jsd", + "name" : "removeMultipleTabs" + }, + "acm023845jsd" : { + "type" : "ControlElement", + "id" : "acm023845jsd", + "name" : "doNothingIfNoTab" + }, + "acm023846jsd" : { + "type" : "ClassUnit", + "id" : "acm023846jsd", + "name" : "ReplaceTabsBySpaceFormaterTest", + "compilationUnitId" : "acm023836jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012011jsd" ], + "content" : [ "acm023842jsd", "acm023843jsd", "acm023844jsd", "acm023845jsd" ] + }, + "acm023847jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023847jsd", + "name" : "ReplaceWithEscapedDoubleQuotesTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023858jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023848jsd" : { + "type" : "CodePackage", + "id" : "acm023848jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023849jsd" ] + }, + "acm023849jsd" : { + "type" : "CodePackage", + "id" : "acm023849jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023850jsd" ] + }, + "acm023850jsd" : { + "type" : "CodePackage", + "id" : "acm023850jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023851jsd" ] + }, + "acm023851jsd" : { + "type" : "CodePackage", + "id" : "acm023851jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023852jsd" ] + }, + "acm023852jsd" : { + "type" : "CodePackage", + "id" : "acm023852jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023847jsd" ] + }, + "acm023853jsd" : { + "type" : "ControlElement", + "id" : "acm023853jsd", + "name" : "setUp" + }, + "acm023854jsd" : { + "type" : "ControlElement", + "id" : "acm023854jsd", + "name" : "replacingSingleDoubleQuote" + }, + "acm023855jsd" : { + "type" : "ControlElement", + "id" : "acm023855jsd", + "name" : "replacingMultipleDoubleQuote" + }, + "acm023856jsd" : { + "type" : "ControlElement", + "id" : "acm023856jsd", + "name" : "replacingSingleDoubleQuoteHavingCommas" + }, + "acm023857jsd" : { + "type" : "ControlElement", + "id" : "acm023857jsd", + "name" : "doNothing" + }, + "acm023858jsd" : { + "type" : "ClassUnit", + "id" : "acm023858jsd", + "name" : "ReplaceWithEscapedDoubleQuotesTest", + "compilationUnitId" : "acm023847jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015637jsd" ], + "content" : [ "acm023853jsd", "acm023854jsd", "acm023855jsd", "acm023856jsd", "acm023857jsd" ] + }, + "acm023859jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023859jsd", + "name" : "ShortenDOIFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023868jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023860jsd" : { + "type" : "CodePackage", + "id" : "acm023860jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023861jsd" ] + }, + "acm023861jsd" : { + "type" : "CodePackage", + "id" : "acm023861jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023862jsd" ] + }, + "acm023862jsd" : { + "type" : "CodePackage", + "id" : "acm023862jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023863jsd" ] + }, + "acm023863jsd" : { + "type" : "CodePackage", + "id" : "acm023863jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023864jsd" ] + }, + "acm023864jsd" : { + "type" : "CodePackage", + "id" : "acm023864jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023859jsd" ] + }, + "acm023865jsd" : { + "type" : "ControlElement", + "id" : "acm023865jsd", + "name" : "setUp" + }, + "acm023866jsd" : { + "type" : "ControlElement", + "id" : "acm023866jsd", + "name" : "formatDoi" + }, + "acm023867jsd" : { + "type" : "ControlElement", + "id" : "acm023867jsd", + "name" : "invalidDoiIsKept" + }, + "acm023868jsd" : { + "type" : "ClassUnit", + "id" : "acm023868jsd", + "name" : "ShortenDOIFormatterTest", + "compilationUnitId" : "acm023859jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012023jsd" ], + "content" : [ "acm023865jsd", "acm023866jsd", "acm023867jsd" ] + }, + "acm023869jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023869jsd", + "name" : "TrimWhitespaceFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023882jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023870jsd" : { + "type" : "CodePackage", + "id" : "acm023870jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023871jsd" ] + }, + "acm023871jsd" : { + "type" : "CodePackage", + "id" : "acm023871jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023872jsd" ] + }, + "acm023872jsd" : { + "type" : "CodePackage", + "id" : "acm023872jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023873jsd" ] + }, + "acm023873jsd" : { + "type" : "CodePackage", + "id" : "acm023873jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023874jsd" ] + }, + "acm023874jsd" : { + "type" : "CodePackage", + "id" : "acm023874jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023869jsd" ] + }, + "acm023875jsd" : { + "type" : "ControlElement", + "id" : "acm023875jsd", + "name" : "setUp" + }, + "acm023876jsd" : { + "type" : "ControlElement", + "id" : "acm023876jsd", + "name" : "removeHorizontalTabulations" + }, + "acm023877jsd" : { + "type" : "ControlElement", + "id" : "acm023877jsd", + "name" : "removeLineFeeds" + }, + "acm023878jsd" : { + "type" : "ControlElement", + "id" : "acm023878jsd", + "name" : "removeFormFeeds" + }, + "acm023879jsd" : { + "type" : "ControlElement", + "id" : "acm023879jsd", + "name" : "removeCarriageReturnFeeds" + }, + "acm023880jsd" : { + "type" : "ControlElement", + "id" : "acm023880jsd", + "name" : "removeSeparatorSpaces" + }, + "acm023881jsd" : { + "type" : "ControlElement", + "id" : "acm023881jsd", + "name" : "removeMixedWhitespaceChars" + }, + "acm023882jsd" : { + "type" : "ClassUnit", + "id" : "acm023882jsd", + "name" : "TrimWhitespaceFormatterTest", + "compilationUnitId" : "acm023869jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012035jsd" ], + "content" : [ "acm023875jsd", "acm023876jsd", "acm023877jsd", "acm023878jsd", "acm023879jsd", "acm023880jsd", "acm023881jsd" ] + }, + "acm023883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023883jsd", + "name" : "UnicodeConverterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023894jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023884jsd" : { + "type" : "CodePackage", + "id" : "acm023884jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023885jsd" ] + }, + "acm023885jsd" : { + "type" : "CodePackage", + "id" : "acm023885jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023886jsd" ] + }, + "acm023886jsd" : { + "type" : "CodePackage", + "id" : "acm023886jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023887jsd" ] + }, + "acm023887jsd" : { + "type" : "CodePackage", + "id" : "acm023887jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023888jsd" ] + }, + "acm023888jsd" : { + "type" : "CodePackage", + "id" : "acm023888jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023883jsd" ] + }, + "acm023889jsd" : { + "type" : "ControlElement", + "id" : "acm023889jsd", + "name" : "setUp" + }, + "acm023890jsd" : { + "type" : "ControlElement", + "id" : "acm023890jsd", + "name" : "testBasic" + }, + "acm023891jsd" : { + "type" : "ControlElement", + "id" : "acm023891jsd", + "name" : "testUnicodeCombiningAccents" + }, + "acm023892jsd" : { + "type" : "ControlElement", + "id" : "acm023892jsd", + "name" : "testUnicode" + }, + "acm023893jsd" : { + "type" : "ControlElement", + "id" : "acm023893jsd", + "name" : "testUnicodeSingle" + }, + "acm023894jsd" : { + "type" : "ClassUnit", + "id" : "acm023894jsd", + "name" : "UnicodeConverterTest", + "compilationUnitId" : "acm023883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012047jsd" ], + "content" : [ "acm023889jsd", "acm023890jsd", "acm023891jsd", "acm023892jsd", "acm023893jsd" ] + }, + "acm023895jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023895jsd", + "name" : "UnicodeToLatexFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023904jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023896jsd" : { + "type" : "CodePackage", + "id" : "acm023896jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023897jsd" ] + }, + "acm023897jsd" : { + "type" : "CodePackage", + "id" : "acm023897jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023898jsd" ] + }, + "acm023898jsd" : { + "type" : "CodePackage", + "id" : "acm023898jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023899jsd" ] + }, + "acm023899jsd" : { + "type" : "CodePackage", + "id" : "acm023899jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023900jsd" ] + }, + "acm023900jsd" : { + "type" : "CodePackage", + "id" : "acm023900jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023895jsd" ] + }, + "acm023901jsd" : { + "type" : "ControlElement", + "id" : "acm023901jsd", + "name" : "setUp" + }, + "acm023902jsd" : { + "type" : "ControlElement", + "id" : "acm023902jsd", + "name" : "testCases" + }, + "acm023903jsd" : { + "type" : "ControlElement", + "id" : "acm023903jsd", + "name" : "testFormat" + }, + "acm023904jsd" : { + "type" : "ClassUnit", + "id" : "acm023904jsd", + "name" : "UnicodeToLatexFormatterTest", + "compilationUnitId" : "acm023895jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012047jsd" ], + "content" : [ "acm023901jsd", "acm023902jsd", "acm023903jsd" ] + }, + "acm023905jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023905jsd", + "name" : "UnitsToLatexFormatterTest", + "parentId" : "acm011749jsd", + "content" : [ "acm023914jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "bibtexfields" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023906jsd" : { + "type" : "CodePackage", + "id" : "acm023906jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023907jsd" ] + }, + "acm023907jsd" : { + "type" : "CodePackage", + "id" : "acm023907jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023908jsd" ] + }, + "acm023908jsd" : { + "type" : "CodePackage", + "id" : "acm023908jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023909jsd" ] + }, + "acm023909jsd" : { + "type" : "CodePackage", + "id" : "acm023909jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023910jsd" ] + }, + "acm023910jsd" : { + "type" : "CodePackage", + "id" : "acm023910jsd", + "name" : "bibtexfields", + "parentId" : null, + "content" : [ "acm023905jsd" ] + }, + "acm023911jsd" : { + "type" : "ControlElement", + "id" : "acm023911jsd", + "name" : "setUp" + }, + "acm023912jsd" : { + "type" : "ControlElement", + "id" : "acm023912jsd", + "name" : "test" + }, + "acm023913jsd" : { + "type" : "ControlElement", + "id" : "acm023913jsd", + "name" : "formatExample" + }, + "acm023914jsd" : { + "type" : "ClassUnit", + "id" : "acm023914jsd", + "name" : "UnitsToLatexFormatterTest", + "compilationUnitId" : "acm023905jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012060jsd" ], + "content" : [ "acm023911jsd", "acm023912jsd", "acm023913jsd" ] + }, + "acm023915jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023915jsd", + "name" : "CapitalizeFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023924jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023916jsd" : { + "type" : "CodePackage", + "id" : "acm023916jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023917jsd" ] + }, + "acm023917jsd" : { + "type" : "CodePackage", + "id" : "acm023917jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023918jsd" ] + }, + "acm023918jsd" : { + "type" : "CodePackage", + "id" : "acm023918jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023919jsd" ] + }, + "acm023919jsd" : { + "type" : "CodePackage", + "id" : "acm023919jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023920jsd" ] + }, + "acm023920jsd" : { + "type" : "CodePackage", + "id" : "acm023920jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023915jsd" ] + }, + "acm023921jsd" : { + "type" : "ControlElement", + "id" : "acm023921jsd", + "name" : "setUp" + }, + "acm023922jsd" : { + "type" : "ControlElement", + "id" : "acm023922jsd", + "name" : "formatExample" + }, + "acm023923jsd" : { + "type" : "ControlElement", + "id" : "acm023923jsd", + "name" : "testInputs" + }, + "acm023924jsd" : { + "type" : "ClassUnit", + "id" : "acm023924jsd", + "name" : "CapitalizeFormatterTest", + "compilationUnitId" : "acm023915jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012072jsd" ], + "content" : [ "acm023921jsd", "acm023922jsd", "acm023923jsd" ] + }, + "acm023925jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023925jsd", + "name" : "LowerCaseFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023935jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023926jsd" : { + "type" : "CodePackage", + "id" : "acm023926jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023927jsd" ] + }, + "acm023927jsd" : { + "type" : "CodePackage", + "id" : "acm023927jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023928jsd" ] + }, + "acm023928jsd" : { + "type" : "CodePackage", + "id" : "acm023928jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023929jsd" ] + }, + "acm023929jsd" : { + "type" : "CodePackage", + "id" : "acm023929jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023930jsd" ] + }, + "acm023930jsd" : { + "type" : "CodePackage", + "id" : "acm023930jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023925jsd" ] + }, + "acm023931jsd" : { + "type" : "ControlElement", + "id" : "acm023931jsd", + "name" : "setUp" + }, + "acm023932jsd" : { + "type" : "ControlElement", + "id" : "acm023932jsd", + "name" : "test" + }, + "acm023933jsd" : { + "type" : "ControlElement", + "id" : "acm023933jsd", + "name" : "provideStringsForFormat" + }, + "acm023934jsd" : { + "type" : "ControlElement", + "id" : "acm023934jsd", + "name" : "formatExample" + }, + "acm023935jsd" : { + "type" : "ClassUnit", + "id" : "acm023935jsd", + "name" : "LowerCaseFormatterTest", + "compilationUnitId" : "acm023925jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012084jsd" ], + "content" : [ "acm023931jsd", "acm023932jsd", "acm023933jsd", "acm023934jsd" ] + }, + "acm023936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023936jsd", + "name" : "ProtectTermsFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023949jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023937jsd" : { + "type" : "CodePackage", + "id" : "acm023937jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023938jsd" ] + }, + "acm023938jsd" : { + "type" : "CodePackage", + "id" : "acm023938jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023939jsd" ] + }, + "acm023939jsd" : { + "type" : "CodePackage", + "id" : "acm023939jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023940jsd" ] + }, + "acm023940jsd" : { + "type" : "CodePackage", + "id" : "acm023940jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023941jsd" ] + }, + "acm023941jsd" : { + "type" : "CodePackage", + "id" : "acm023941jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023936jsd" ] + }, + "acm023942jsd" : { + "type" : "ControlElement", + "id" : "acm023942jsd", + "name" : "setUp" + }, + "acm023943jsd" : { + "type" : "ControlElement", + "id" : "acm023943jsd", + "name" : "testSingleWord" + }, + "acm023944jsd" : { + "type" : "ControlElement", + "id" : "acm023944jsd", + "name" : "testDoNotProtectAlreadyProtected" + }, + "acm023945jsd" : { + "type" : "ControlElement", + "id" : "acm023945jsd", + "name" : "testCaseSensitivity" + }, + "acm023946jsd" : { + "type" : "ControlElement", + "id" : "acm023946jsd", + "name" : "formatExample" + }, + "acm023947jsd" : { + "type" : "ControlElement", + "id" : "acm023947jsd", + "name" : "testCorrectOrderingOfTerms" + }, + "acm023948jsd" : { + "type" : "ControlElement", + "id" : "acm023948jsd", + "name" : "test" + }, + "acm023949jsd" : { + "type" : "ClassUnit", + "id" : "acm023949jsd", + "name" : "ProtectTermsFormatterTest", + "compilationUnitId" : "acm023936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012098jsd", "acm016690jsd", "acm016716jsd" ], + "content" : [ "acm023942jsd", "acm023943jsd", "acm023944jsd", "acm023945jsd", "acm023946jsd", "acm023947jsd", "acm023948jsd" ] + }, + "acm023950jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023950jsd", + "name" : "SentenceCaseFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023959jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023951jsd" : { + "type" : "CodePackage", + "id" : "acm023951jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023952jsd" ] + }, + "acm023952jsd" : { + "type" : "CodePackage", + "id" : "acm023952jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023953jsd" ] + }, + "acm023953jsd" : { + "type" : "CodePackage", + "id" : "acm023953jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023954jsd" ] + }, + "acm023954jsd" : { + "type" : "CodePackage", + "id" : "acm023954jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023955jsd" ] + }, + "acm023955jsd" : { + "type" : "CodePackage", + "id" : "acm023955jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023950jsd" ] + }, + "acm023956jsd" : { + "type" : "ControlElement", + "id" : "acm023956jsd", + "name" : "setUp" + }, + "acm023957jsd" : { + "type" : "ControlElement", + "id" : "acm023957jsd", + "name" : "testData" + }, + "acm023958jsd" : { + "type" : "ControlElement", + "id" : "acm023958jsd", + "name" : "test" + }, + "acm023959jsd" : { + "type" : "ClassUnit", + "id" : "acm023959jsd", + "name" : "SentenceCaseFormatterTest", + "compilationUnitId" : "acm023950jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012110jsd" ], + "content" : [ "acm023956jsd", "acm023957jsd", "acm023958jsd" ] + }, + "acm023960jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023960jsd", + "name" : "TitleCaseFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023969jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023961jsd" : { + "type" : "CodePackage", + "id" : "acm023961jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023962jsd" ] + }, + "acm023962jsd" : { + "type" : "CodePackage", + "id" : "acm023962jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023963jsd" ] + }, + "acm023963jsd" : { + "type" : "CodePackage", + "id" : "acm023963jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023964jsd" ] + }, + "acm023964jsd" : { + "type" : "CodePackage", + "id" : "acm023964jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023965jsd" ] + }, + "acm023965jsd" : { + "type" : "CodePackage", + "id" : "acm023965jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023960jsd" ] + }, + "acm023966jsd" : { + "type" : "ControlElement", + "id" : "acm023966jsd", + "name" : "setUp" + }, + "acm023967jsd" : { + "type" : "ControlElement", + "id" : "acm023967jsd", + "name" : "testData" + }, + "acm023968jsd" : { + "type" : "ControlElement", + "id" : "acm023968jsd", + "name" : "test" + }, + "acm023969jsd" : { + "type" : "ClassUnit", + "id" : "acm023969jsd", + "name" : "TitleCaseFormatterTest", + "compilationUnitId" : "acm023960jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012134jsd" ], + "content" : [ "acm023966jsd", "acm023967jsd", "acm023968jsd" ] + }, + "acm023970jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023970jsd", + "name" : "UnprotectTermsFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023979jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023971jsd" : { + "type" : "CodePackage", + "id" : "acm023971jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023972jsd" ] + }, + "acm023972jsd" : { + "type" : "CodePackage", + "id" : "acm023972jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023973jsd" ] + }, + "acm023973jsd" : { + "type" : "CodePackage", + "id" : "acm023973jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023974jsd" ] + }, + "acm023974jsd" : { + "type" : "CodePackage", + "id" : "acm023974jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023975jsd" ] + }, + "acm023975jsd" : { + "type" : "CodePackage", + "id" : "acm023975jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023970jsd" ] + }, + "acm023976jsd" : { + "type" : "ControlElement", + "id" : "acm023976jsd", + "name" : "setUp" + }, + "acm023977jsd" : { + "type" : "ControlElement", + "id" : "acm023977jsd", + "name" : "terms" + }, + "acm023978jsd" : { + "type" : "ControlElement", + "id" : "acm023978jsd", + "name" : "test" + }, + "acm023979jsd" : { + "type" : "ClassUnit", + "id" : "acm023979jsd", + "name" : "UnprotectTermsFormatterTest", + "compilationUnitId" : "acm023970jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012157jsd" ], + "content" : [ "acm023976jsd", "acm023977jsd", "acm023978jsd" ] + }, + "acm023980jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023980jsd", + "name" : "UpperCaseFormatterTest", + "parentId" : "acm012066jsd", + "content" : [ "acm023989jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "casechanger" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023981jsd" : { + "type" : "CodePackage", + "id" : "acm023981jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023982jsd" ] + }, + "acm023982jsd" : { + "type" : "CodePackage", + "id" : "acm023982jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023983jsd" ] + }, + "acm023983jsd" : { + "type" : "CodePackage", + "id" : "acm023983jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023984jsd" ] + }, + "acm023984jsd" : { + "type" : "CodePackage", + "id" : "acm023984jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023985jsd" ] + }, + "acm023985jsd" : { + "type" : "CodePackage", + "id" : "acm023985jsd", + "name" : "casechanger", + "parentId" : null, + "content" : [ "acm023980jsd" ] + }, + "acm023986jsd" : { + "type" : "ControlElement", + "id" : "acm023986jsd", + "name" : "upperCaseTest" + }, + "acm023987jsd" : { + "type" : "ControlElement", + "id" : "acm023987jsd", + "name" : "upperCaseTests" + }, + "acm023988jsd" : { + "type" : "ControlElement", + "id" : "acm023988jsd", + "name" : "formatExample" + }, + "acm023989jsd" : { + "type" : "ClassUnit", + "id" : "acm023989jsd", + "name" : "UpperCaseFormatterTest", + "compilationUnitId" : "acm023980jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012169jsd" ], + "content" : [ "acm023986jsd", "acm023987jsd", "acm023988jsd" ] + }, + "acm023990jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm023990jsd", + "name" : "MinifyNameListFormatterTest", + "parentId" : "acm012195jsd", + "content" : [ "acm023999jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "minifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm023991jsd" : { + "type" : "CodePackage", + "id" : "acm023991jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm023992jsd" ] + }, + "acm023992jsd" : { + "type" : "CodePackage", + "id" : "acm023992jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm023993jsd" ] + }, + "acm023993jsd" : { + "type" : "CodePackage", + "id" : "acm023993jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm023994jsd" ] + }, + "acm023994jsd" : { + "type" : "CodePackage", + "id" : "acm023994jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm023995jsd" ] + }, + "acm023995jsd" : { + "type" : "CodePackage", + "id" : "acm023995jsd", + "name" : "minifier", + "parentId" : null, + "content" : [ "acm023990jsd" ] + }, + "acm023996jsd" : { + "type" : "ControlElement", + "id" : "acm023996jsd", + "name" : "setUp" + }, + "acm023997jsd" : { + "type" : "ControlElement", + "id" : "acm023997jsd", + "name" : "minifyAuthorNames" + }, + "acm023998jsd" : { + "type" : "ControlElement", + "id" : "acm023998jsd", + "name" : "provideAuthorNames" + }, + "acm023999jsd" : { + "type" : "ClassUnit", + "id" : "acm023999jsd", + "name" : "MinifyNameListFormatterTest", + "compilationUnitId" : "acm023990jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012202jsd" ], + "content" : [ "acm023996jsd", "acm023997jsd", "acm023998jsd" ] + }, + "acm024000jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024000jsd", + "name" : "TruncateFormatterTest", + "parentId" : "acm012195jsd", + "content" : [ "acm024013jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "formatter", "minifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024001jsd" : { + "type" : "CodePackage", + "id" : "acm024001jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024002jsd" ] + }, + "acm024002jsd" : { + "type" : "CodePackage", + "id" : "acm024002jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024003jsd" ] + }, + "acm024003jsd" : { + "type" : "CodePackage", + "id" : "acm024003jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024004jsd" ] + }, + "acm024004jsd" : { + "type" : "CodePackage", + "id" : "acm024004jsd", + "name" : "formatter", + "parentId" : null, + "content" : [ "acm024005jsd" ] + }, + "acm024005jsd" : { + "type" : "CodePackage", + "id" : "acm024005jsd", + "name" : "minifier", + "parentId" : null, + "content" : [ "acm024000jsd" ] + }, + "acm024006jsd" : { + "type" : "ControlElement", + "id" : "acm024006jsd", + "name" : "formatWorksWith0Index" + }, + "acm024007jsd" : { + "type" : "ControlElement", + "id" : "acm024007jsd", + "name" : "formatRemovesTrailingWhitespace" + }, + "acm024008jsd" : { + "type" : "ControlElement", + "id" : "acm024008jsd", + "name" : "formatKeepsInternalWhitespace" + }, + "acm024009jsd" : { + "type" : "ControlElement", + "id" : "acm024009jsd", + "name" : "formatWorksWith9999Length" + }, + "acm024010jsd" : { + "type" : "ControlElement", + "id" : "acm024010jsd", + "name" : "formatIgnoresNegativeIndex" + }, + "acm024011jsd" : { + "type" : "ControlElement", + "id" : "acm024011jsd", + "name" : "formatWorksWithEmptyString" + }, + "acm024012jsd" : { + "type" : "ControlElement", + "id" : "acm024012jsd", + "name" : "formatThrowsExceptionNullString" + }, + "acm024013jsd" : { + "type" : "ClassUnit", + "id" : "acm024013jsd", + "name" : "TruncateFormatterTest", + "compilationUnitId" : "acm024000jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012215jsd" ], + "content" : [ "acm024006jsd", "acm024007jsd", "acm024008jsd", "acm024009jsd", "acm024010jsd", "acm024011jsd", "acm024012jsd" ] + }, + "acm024014jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024014jsd", + "name" : "GitHandlerTest", + "parentId" : "acm012220jsd", + "content" : [ "acm024023jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "git" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024015jsd" : { + "type" : "CodePackage", + "id" : "acm024015jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024016jsd" ] + }, + "acm024016jsd" : { + "type" : "CodePackage", + "id" : "acm024016jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024017jsd" ] + }, + "acm024017jsd" : { + "type" : "CodePackage", + "id" : "acm024017jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024018jsd" ] + }, + "acm024018jsd" : { + "type" : "CodePackage", + "id" : "acm024018jsd", + "name" : "git", + "parentId" : null, + "content" : [ "acm024014jsd" ] + }, + "acm024019jsd" : { + "type" : "ControlElement", + "id" : "acm024019jsd", + "name" : "setUpGitHandler" + }, + "acm024020jsd" : { + "type" : "ControlElement", + "id" : "acm024020jsd", + "name" : "checkoutNewBranch" + }, + "acm024021jsd" : { + "type" : "ControlElement", + "id" : "acm024021jsd", + "name" : "createCommitOnCurrentBranch" + }, + "acm024022jsd" : { + "type" : "ControlElement", + "id" : "acm024022jsd", + "name" : "getCurrentlyCheckedOutBranch" + }, + "acm024023jsd" : { + "type" : "ClassUnit", + "id" : "acm024023jsd", + "name" : "GitHandlerTest", + "compilationUnitId" : "acm024014jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012231jsd" ], + "content" : [ "acm024019jsd", "acm024020jsd", "acm024021jsd", "acm024022jsd" ] + }, + "acm024024jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024024jsd", + "name" : "SlrGitHandlerTest", + "parentId" : "acm012220jsd", + "content" : [ "acm024033jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "git" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024025jsd" : { + "type" : "CodePackage", + "id" : "acm024025jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024026jsd" ] + }, + "acm024026jsd" : { + "type" : "CodePackage", + "id" : "acm024026jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024027jsd" ] + }, + "acm024027jsd" : { + "type" : "CodePackage", + "id" : "acm024027jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024028jsd" ] + }, + "acm024028jsd" : { + "type" : "CodePackage", + "id" : "acm024028jsd", + "name" : "git", + "parentId" : null, + "content" : [ "acm024024jsd" ] + }, + "acm024029jsd" : { + "type" : "ControlElement", + "id" : "acm024029jsd", + "name" : "setUpGitHandler" + }, + "acm024030jsd" : { + "type" : "ControlElement", + "id" : "acm024030jsd", + "name" : "calculateDiffOnBranch" + }, + "acm024031jsd" : { + "type" : "ControlElement", + "id" : "acm024031jsd", + "name" : "calculatePatch" + }, + "acm024032jsd" : { + "type" : "ControlElement", + "id" : "acm024032jsd", + "name" : "applyPatch" + }, + "acm024033jsd" : { + "type" : "ClassUnit", + "id" : "acm024033jsd", + "name" : "SlrGitHandlerTest", + "compilationUnitId" : "acm024024jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012242jsd", "acm024033jsd" ], + "content" : [ "acm024029jsd", "acm024030jsd", "acm024031jsd", "acm024032jsd" ] + }, + "acm024034jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024034jsd", + "name" : "HelpFileTest", + "parentId" : "acm012255jsd", + "content" : [ "acm024041jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "help" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024035jsd" : { + "type" : "CodePackage", + "id" : "acm024035jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024036jsd" ] + }, + "acm024036jsd" : { + "type" : "CodePackage", + "id" : "acm024036jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024037jsd" ] + }, + "acm024037jsd" : { + "type" : "CodePackage", + "id" : "acm024037jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024038jsd" ] + }, + "acm024038jsd" : { + "type" : "CodePackage", + "id" : "acm024038jsd", + "name" : "help", + "parentId" : null, + "content" : [ "acm024034jsd" ] + }, + "acm024039jsd" : { + "type" : "ControlElement", + "id" : "acm024039jsd", + "name" : "getAllHelpFiles" + }, + "acm024040jsd" : { + "type" : "ControlElement", + "id" : "acm024040jsd", + "name" : "referToValidPage" + }, + "acm024041jsd" : { + "type" : "ClassUnit", + "id" : "acm024041jsd", + "name" : "HelpFileTest", + "compilationUnitId" : "acm024034jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012258jsd" ], + "content" : [ "acm024039jsd", "acm024040jsd" ] + }, + "acm024042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024042jsd", + "name" : "AuthorListParserTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024051jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024043jsd" : { + "type" : "CodePackage", + "id" : "acm024043jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024044jsd" ] + }, + "acm024044jsd" : { + "type" : "CodePackage", + "id" : "acm024044jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024045jsd" ] + }, + "acm024045jsd" : { + "type" : "CodePackage", + "id" : "acm024045jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024046jsd" ] + }, + "acm024046jsd" : { + "type" : "CodePackage", + "id" : "acm024046jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024042jsd" ] + }, + "acm024047jsd" : { + "type" : "ControlElement", + "id" : "acm024047jsd", + "name" : "parseSingleAuthorCorrectly" + }, + "acm024048jsd" : { + "type" : "ControlElement", + "id" : "acm024048jsd", + "name" : "parseSingleAuthorCorrectly" + }, + "acm024049jsd" : { + "type" : "ControlElement", + "id" : "acm024049jsd", + "name" : "parseMultipleCorrectly" + }, + "acm024050jsd" : { + "type" : "ControlElement", + "id" : "acm024050jsd", + "name" : "parseMultipleCorrectly" + }, + "acm024051jsd" : { + "type" : "ClassUnit", + "id" : "acm024051jsd", + "name" : "AuthorListParserTest", + "compilationUnitId" : "acm024042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012269jsd", "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm024047jsd", "acm024048jsd", "acm024049jsd", "acm024050jsd" ] + }, + "acm024052jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024052jsd", + "name" : "BibDatabaseFilesTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024059jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024053jsd" : { + "type" : "CodePackage", + "id" : "acm024053jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024054jsd" ] + }, + "acm024054jsd" : { + "type" : "CodePackage", + "id" : "acm024054jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024055jsd" ] + }, + "acm024055jsd" : { + "type" : "CodePackage", + "id" : "acm024055jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024056jsd" ] + }, + "acm024056jsd" : { + "type" : "CodePackage", + "id" : "acm024056jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024052jsd" ] + }, + "acm024057jsd" : { + "type" : "ControlElement", + "id" : "acm024057jsd", + "name" : "setUp" + }, + "acm024058jsd" : { + "type" : "ControlElement", + "id" : "acm024058jsd", + "name" : "resolveStrings" + }, + "acm024059jsd" : { + "type" : "ClassUnit", + "id" : "acm024059jsd", + "name" : "BibDatabaseFilesTest", + "compilationUnitId" : "acm024052jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013761jsd", "acm017988jsd", "acm020676jsd" ], + "content" : [ "acm024057jsd", "acm024058jsd" ] + }, + "acm024060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024060jsd", + "name" : "DatabaseFileLookupTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024067jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024061jsd" : { + "type" : "CodePackage", + "id" : "acm024061jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024062jsd" ] + }, + "acm024062jsd" : { + "type" : "CodePackage", + "id" : "acm024062jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024063jsd" ] + }, + "acm024063jsd" : { + "type" : "CodePackage", + "id" : "acm024063jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024064jsd" ] + }, + "acm024064jsd" : { + "type" : "CodePackage", + "id" : "acm024064jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024060jsd" ] + }, + "acm024065jsd" : { + "type" : "ControlElement", + "id" : "acm024065jsd", + "name" : "setUp" + }, + "acm024066jsd" : { + "type" : "ControlElement", + "id" : "acm024066jsd", + "name" : "testTestDatabase" + }, + "acm024067jsd" : { + "type" : "ClassUnit", + "id" : "acm024067jsd", + "name" : "DatabaseFileLookupTest", + "compilationUnitId" : "acm024060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013709jsd", "acm017988jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm024065jsd", "acm024066jsd" ] + }, + "acm024068jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024068jsd", + "name" : "FulltextFetchersTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024077jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024069jsd" : { + "type" : "CodePackage", + "id" : "acm024069jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024070jsd" ] + }, + "acm024070jsd" : { + "type" : "CodePackage", + "id" : "acm024070jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024071jsd" ] + }, + "acm024071jsd" : { + "type" : "CodePackage", + "id" : "acm024071jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024072jsd" ] + }, + "acm024072jsd" : { + "type" : "CodePackage", + "id" : "acm024072jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024068jsd" ] + }, + "acm024073jsd" : { + "type" : "ControlElement", + "id" : "acm024073jsd", + "name" : "acceptPdfUrls" + }, + "acm024074jsd" : { + "type" : "ControlElement", + "id" : "acm024074jsd", + "name" : "rejectNonPdfUrls" + }, + "acm024075jsd" : { + "type" : "ControlElement", + "id" : "acm024075jsd", + "name" : "noTrustLevel" + }, + "acm024076jsd" : { + "type" : "ControlElement", + "id" : "acm024076jsd", + "name" : "higherTrustLevelWins" + }, + "acm024077jsd" : { + "type" : "ClassUnit", + "id" : "acm024077jsd", + "name" : "FulltextFetchersTest", + "compilationUnitId" : "acm024068jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012340jsd", "acm012353jsd", "acm018267jsd" ], + "content" : [ "acm024073jsd", "acm024074jsd", "acm024075jsd", "acm024076jsd" ] + }, + "acm024078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024078jsd", + "name" : "ImportDataTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024084jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024079jsd" : { + "type" : "CodePackage", + "id" : "acm024079jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024080jsd" ] + }, + "acm024080jsd" : { + "type" : "CodePackage", + "id" : "acm024080jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024081jsd" ] + }, + "acm024081jsd" : { + "type" : "CodePackage", + "id" : "acm024081jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024082jsd" ] + }, + "acm024082jsd" : { + "type" : "CodePackage", + "id" : "acm024082jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024078jsd" ] + }, + "acm024083jsd" : { + "type" : "ControlElement", + "id" : "acm024083jsd", + "name" : "testTestingEnvironment" + }, + "acm024084jsd" : { + "type" : "ClassUnit", + "id" : "acm024084jsd", + "name" : "ImportDataTest", + "compilationUnitId" : "acm024078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm024083jsd" ] + }, + "acm024085jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024085jsd", + "name" : "ImportFormatReaderIntegrationTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024095jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024086jsd" : { + "type" : "CodePackage", + "id" : "acm024086jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024087jsd" ] + }, + "acm024087jsd" : { + "type" : "CodePackage", + "id" : "acm024087jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024088jsd" ] + }, + "acm024088jsd" : { + "type" : "CodePackage", + "id" : "acm024088jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024089jsd" ] + }, + "acm024089jsd" : { + "type" : "CodePackage", + "id" : "acm024089jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024085jsd" ] + }, + "acm024090jsd" : { + "type" : "ControlElement", + "id" : "acm024090jsd", + "name" : "setUp" + }, + "acm024091jsd" : { + "type" : "ControlElement", + "id" : "acm024091jsd", + "name" : "testImportUnknownFormat" + }, + "acm024092jsd" : { + "type" : "ControlElement", + "id" : "acm024092jsd", + "name" : "testImportFormatFromFile" + }, + "acm024093jsd" : { + "type" : "ControlElement", + "id" : "acm024093jsd", + "name" : "testImportUnknownFormatFromString" + }, + "acm024094jsd" : { + "type" : "ControlElement", + "id" : "acm024094jsd", + "name" : "importFormats" + }, + "acm024095jsd" : { + "type" : "ClassUnit", + "id" : "acm024095jsd", + "name" : "ImportFormatReaderIntegrationTest", + "compilationUnitId" : "acm024085jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012428jsd", "acm012430jsd", "acm012467jsd", "acm020676jsd", "acm024095jsd" ], + "content" : [ "acm024090jsd", "acm024091jsd", "acm024092jsd", "acm024093jsd", "acm024094jsd" ] + }, + "acm024096jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024096jsd", + "name" : "ImportFormatReaderParameterlessTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024106jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024097jsd" : { + "type" : "CodePackage", + "id" : "acm024097jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024098jsd" ] + }, + "acm024098jsd" : { + "type" : "CodePackage", + "id" : "acm024098jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024099jsd" ] + }, + "acm024099jsd" : { + "type" : "CodePackage", + "id" : "acm024099jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024100jsd" ] + }, + "acm024100jsd" : { + "type" : "CodePackage", + "id" : "acm024100jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024096jsd" ] + }, + "acm024101jsd" : { + "type" : "ControlElement", + "id" : "acm024101jsd", + "name" : "setUp" + }, + "acm024102jsd" : { + "type" : "ControlElement", + "id" : "acm024102jsd", + "name" : "importUnknownFormatThrowsExceptionIfNoMatchingImporterWasFound" + }, + "acm024103jsd" : { + "type" : "ControlElement", + "id" : "acm024103jsd", + "name" : "importUnknownFormatThrowsExceptionIfPathIsNull" + }, + "acm024104jsd" : { + "type" : "ControlElement", + "id" : "acm024104jsd", + "name" : "importUnknownFormatThrowsExceptionIfDataIsNull" + }, + "acm024105jsd" : { + "type" : "ControlElement", + "id" : "acm024105jsd", + "name" : "importFromFileWithUnknownFormatThrowsException" + }, + "acm024106jsd" : { + "type" : "ClassUnit", + "id" : "acm024106jsd", + "name" : "ImportFormatReaderParameterlessTest", + "compilationUnitId" : "acm024096jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012407jsd", "acm012428jsd", "acm012467jsd", "acm020676jsd", "acm020693jsd", "acm024106jsd" ], + "content" : [ "acm024101jsd", "acm024102jsd", "acm024103jsd", "acm024104jsd", "acm024105jsd" ] + }, + "acm024107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024107jsd", + "name" : "ImporterTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024123jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024108jsd" : { + "type" : "CodePackage", + "id" : "acm024108jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024109jsd" ] + }, + "acm024109jsd" : { + "type" : "CodePackage", + "id" : "acm024109jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024110jsd" ] + }, + "acm024110jsd" : { + "type" : "CodePackage", + "id" : "acm024110jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024111jsd" ] + }, + "acm024111jsd" : { + "type" : "CodePackage", + "id" : "acm024111jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024107jsd" ] + }, + "acm024112jsd" : { + "type" : "ControlElement", + "id" : "acm024112jsd", + "name" : "isRecognizedFormatWithNullForBufferedReaderThrowsException" + }, + "acm024113jsd" : { + "type" : "ControlElement", + "id" : "acm024113jsd", + "name" : "isRecognizedFormatWithNullForStringThrowsException" + }, + "acm024114jsd" : { + "type" : "ControlElement", + "id" : "acm024114jsd", + "name" : "importDatabaseWithNullForBufferedReaderThrowsException" + }, + "acm024115jsd" : { + "type" : "ControlElement", + "id" : "acm024115jsd", + "name" : "importDatabaseWithNullForStringThrowsException" + }, + "acm024116jsd" : { + "type" : "ControlElement", + "id" : "acm024116jsd", + "name" : "getFormatterNameDoesNotReturnNull" + }, + "acm024117jsd" : { + "type" : "ControlElement", + "id" : "acm024117jsd", + "name" : "getFileTypeDoesNotReturnNull" + }, + "acm024118jsd" : { + "type" : "ControlElement", + "id" : "acm024118jsd", + "name" : "getIdDoesNotReturnNull" + }, + "acm024119jsd" : { + "type" : "ControlElement", + "id" : "acm024119jsd", + "name" : "getIdDoesNotContainWhitespace" + }, + "acm024120jsd" : { + "type" : "ControlElement", + "id" : "acm024120jsd", + "name" : "getIdStripsSpecialCharactersAndConvertsToLowercase" + }, + "acm024121jsd" : { + "type" : "ControlElement", + "id" : "acm024121jsd", + "name" : "getDescriptionDoesNotReturnNull" + }, + "acm024122jsd" : { + "type" : "ControlElement", + "id" : "acm024122jsd", + "name" : "instancesToTest" + }, + "acm024123jsd" : { + "type" : "ClassUnit", + "id" : "acm024123jsd", + "name" : "ImporterTest", + "compilationUnitId" : "acm024107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm013692jsd", "acm013709jsd", "acm013828jsd", "acm013855jsd", "acm013891jsd", "acm013930jsd", "acm013950jsd", "acm014026jsd", "acm014049jsd", "acm014085jsd", "acm014124jsd", "acm014137jsd", "acm014161jsd", "acm014250jsd", "acm014286jsd", "acm014299jsd", "acm014311jsd", "acm017745jsd", "acm020676jsd" ], + "content" : [ "acm024112jsd", "acm024113jsd", "acm024114jsd", "acm024115jsd", "acm024116jsd", "acm024117jsd", "acm024118jsd", "acm024119jsd", "acm024120jsd", "acm024121jsd", "acm024122jsd" ] + }, + "acm024124jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024124jsd", + "name" : "OpenDatabaseTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024139jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024125jsd" : { + "type" : "CodePackage", + "id" : "acm024125jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024126jsd" ] + }, + "acm024126jsd" : { + "type" : "CodePackage", + "id" : "acm024126jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024127jsd" ] + }, + "acm024127jsd" : { + "type" : "CodePackage", + "id" : "acm024127jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024128jsd" ] + }, + "acm024128jsd" : { + "type" : "CodePackage", + "id" : "acm024128jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024124jsd" ] + }, + "acm024129jsd" : { + "type" : "ControlElement", + "id" : "acm024129jsd", + "name" : "OpenDatabaseTest" + }, + "acm024130jsd" : { + "type" : "ControlElement", + "id" : "acm024130jsd", + "name" : "setUp" + }, + "acm024131jsd" : { + "type" : "ControlElement", + "id" : "acm024131jsd", + "name" : "useFallbackEncodingIfNoHeader" + }, + "acm024132jsd" : { + "type" : "ControlElement", + "id" : "acm024132jsd", + "name" : "useFallbackEncodingIfUnknownHeader" + }, + "acm024133jsd" : { + "type" : "ControlElement", + "id" : "acm024133jsd", + "name" : "useSpecifiedEncoding" + }, + "acm024134jsd" : { + "type" : "ControlElement", + "id" : "acm024134jsd", + "name" : "useSpecifiedEncodingWithSignature" + }, + "acm024135jsd" : { + "type" : "ControlElement", + "id" : "acm024135jsd", + "name" : "entriesAreParsedNoHeader" + }, + "acm024136jsd" : { + "type" : "ControlElement", + "id" : "acm024136jsd", + "name" : "entriesAreParsedHeader" + }, + "acm024137jsd" : { + "type" : "ControlElement", + "id" : "acm024137jsd", + "name" : "entriesAreParsedHeaderAndSignature" + }, + "acm024138jsd" : { + "type" : "ControlElement", + "id" : "acm024138jsd", + "name" : "correctlyParseEncodingWithoutNewline" + }, + "acm024139jsd" : { + "type" : "ClassUnit", + "id" : "acm024139jsd", + "name" : "OpenDatabaseTest", + "compilationUnitId" : "acm024124jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017988jsd", "acm018267jsd", "acm020676jsd", "acm020693jsd", "acm020875jsd", "acm024139jsd" ], + "content" : [ "acm024129jsd", "acm024130jsd", "acm024131jsd", "acm024132jsd", "acm024133jsd", "acm024134jsd", "acm024135jsd", "acm024136jsd", "acm024137jsd", "acm024138jsd" ] + }, + "acm024140jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024140jsd", + "name" : "ParserResultTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024147jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024141jsd" : { + "type" : "CodePackage", + "id" : "acm024141jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024142jsd" ] + }, + "acm024142jsd" : { + "type" : "CodePackage", + "id" : "acm024142jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024143jsd" ] + }, + "acm024143jsd" : { + "type" : "CodePackage", + "id" : "acm024143jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024144jsd" ] + }, + "acm024144jsd" : { + "type" : "CodePackage", + "id" : "acm024144jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024140jsd" ] + }, + "acm024145jsd" : { + "type" : "ControlElement", + "id" : "acm024145jsd", + "name" : "isEmptyForNewParseResult" + }, + "acm024146jsd" : { + "type" : "ControlElement", + "id" : "acm024146jsd", + "name" : "isNotEmptyForBibDatabaseWithOneEntry" + }, + "acm024147jsd" : { + "type" : "ClassUnit", + "id" : "acm024147jsd", + "name" : "ParserResultTest", + "compilationUnitId" : "acm024140jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm024145jsd", "acm024146jsd" ] + }, + "acm024148jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024148jsd", + "name" : "QueryParserTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024162jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024149jsd" : { + "type" : "CodePackage", + "id" : "acm024149jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024150jsd" ] + }, + "acm024150jsd" : { + "type" : "CodePackage", + "id" : "acm024150jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024151jsd" ] + }, + "acm024151jsd" : { + "type" : "CodePackage", + "id" : "acm024151jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024152jsd" ] + }, + "acm024152jsd" : { + "type" : "CodePackage", + "id" : "acm024152jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024148jsd" ] + }, + "acm024153jsd" : { + "type" : "ControlElement", + "id" : "acm024153jsd", + "name" : "convertAuthorField" + }, + "acm024154jsd" : { + "type" : "ControlElement", + "id" : "acm024154jsd", + "name" : "convertDefaultField" + }, + "acm024155jsd" : { + "type" : "ControlElement", + "id" : "acm024155jsd", + "name" : "convertExplicitDefaultField" + }, + "acm024156jsd" : { + "type" : "ControlElement", + "id" : "acm024156jsd", + "name" : "convertJournalField" + }, + "acm024157jsd" : { + "type" : "ControlElement", + "id" : "acm024157jsd", + "name" : "convertAlphabeticallyFirstJournalField" + }, + "acm024158jsd" : { + "type" : "ControlElement", + "id" : "acm024158jsd", + "name" : "convertYearField" + }, + "acm024159jsd" : { + "type" : "ControlElement", + "id" : "acm024159jsd", + "name" : "convertNumericallyFirstYearField" + }, + "acm024160jsd" : { + "type" : "ControlElement", + "id" : "acm024160jsd", + "name" : "convertYearRangeField" + }, + "acm024161jsd" : { + "type" : "ControlElement", + "id" : "acm024161jsd", + "name" : "convertMultipleValuesWithTheSameField" + }, + "acm024162jsd" : { + "type" : "ClassUnit", + "id" : "acm024162jsd", + "name" : "QueryParserTest", + "compilationUnitId" : "acm024148jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012563jsd", "acm012875jsd" ], + "content" : [ "acm024153jsd", "acm024154jsd", "acm024155jsd", "acm024156jsd", "acm024157jsd", "acm024158jsd", "acm024159jsd", "acm024160jsd", "acm024161jsd" ] + }, + "acm024163jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024163jsd", + "name" : "WebFetchersTest", + "parentId" : "acm012263jsd", + "content" : [ "acm024176jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024164jsd" : { + "type" : "CodePackage", + "id" : "acm024164jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024165jsd" ] + }, + "acm024165jsd" : { + "type" : "CodePackage", + "id" : "acm024165jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024166jsd" ] + }, + "acm024166jsd" : { + "type" : "CodePackage", + "id" : "acm024166jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024167jsd" ] + }, + "acm024167jsd" : { + "type" : "CodePackage", + "id" : "acm024167jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024163jsd" ] + }, + "acm024168jsd" : { + "type" : "ControlElement", + "id" : "acm024168jsd", + "name" : "setUp" + }, + "acm024169jsd" : { + "type" : "ControlElement", + "id" : "acm024169jsd", + "name" : "getIgnoredInaccessibleClasses" + }, + "acm024170jsd" : { + "type" : "ControlElement", + "id" : "acm024170jsd", + "name" : "getIdBasedFetchersReturnsAllFetcherDerivingFromIdBasedFetcher" + }, + "acm024171jsd" : { + "type" : "ControlElement", + "id" : "acm024171jsd", + "name" : "getEntryBasedFetchersReturnsAllFetcherDerivingFromEntryBasedFetcher" + }, + "acm024172jsd" : { + "type" : "ControlElement", + "id" : "acm024172jsd", + "name" : "getSearchBasedFetchersReturnsAllFetcherDerivingFromSearchBasedFetcher" + }, + "acm024173jsd" : { + "type" : "ControlElement", + "id" : "acm024173jsd", + "name" : "getFullTextFetchersReturnsAllFetcherDerivingFromFullTextFetcher" + }, + "acm024174jsd" : { + "type" : "ControlElement", + "id" : "acm024174jsd", + "name" : "getIdFetchersReturnsAllFetcherDerivingFromIdFetcher" + }, + "acm024175jsd" : { + "type" : "ControlElement", + "id" : "acm024175jsd", + "name" : "getClasses" + }, + "acm024176jsd" : { + "type" : "ClassUnit", + "id" : "acm024176jsd", + "name" : "WebFetchersTest", + "compilationUnitId" : "acm024163jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012286jsd", "acm012296jsd", "acm012340jsd", "acm012360jsd", "acm012370jsd", "acm012378jsd", "acm012389jsd", "acm012467jsd", "acm012495jsd", "acm012506jsd", "acm012571jsd", "acm012582jsd", "acm012640jsd", "acm012815jsd", "acm013032jsd", "acm013045jsd", "acm013140jsd", "acm013210jsd", "acm013355jsd", "acm013367jsd", "acm013400jsd", "acm018022jsd", "acm020848jsd", "acm024176jsd" ], + "content" : [ "acm024168jsd", "acm024169jsd", "acm024170jsd", "acm024171jsd", "acm024172jsd", "acm024173jsd", "acm024174jsd", "acm024175jsd" ] + }, + "acm024177jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024177jsd", + "name" : "ACMPortalFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024187jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024178jsd" : { + "type" : "CodePackage", + "id" : "acm024178jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024179jsd" ] + }, + "acm024179jsd" : { + "type" : "CodePackage", + "id" : "acm024179jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024180jsd" ] + }, + "acm024180jsd" : { + "type" : "CodePackage", + "id" : "acm024180jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024181jsd" ] + }, + "acm024181jsd" : { + "type" : "CodePackage", + "id" : "acm024181jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024182jsd" ] + }, + "acm024182jsd" : { + "type" : "CodePackage", + "id" : "acm024182jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024177jsd" ] + }, + "acm024183jsd" : { + "type" : "ControlElement", + "id" : "acm024183jsd", + "name" : "setUp" + }, + "acm024184jsd" : { + "type" : "ControlElement", + "id" : "acm024184jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024185jsd" : { + "type" : "ControlElement", + "id" : "acm024185jsd", + "name" : "testGetURLForQuery" + }, + "acm024186jsd" : { + "type" : "ControlElement", + "id" : "acm024186jsd", + "name" : "testGetParser" + }, + "acm024187jsd" : { + "type" : "ClassUnit", + "id" : "acm024187jsd", + "name" : "ACMPortalFetcherTest", + "compilationUnitId" : "acm024177jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012620jsd", "acm013680jsd", "acm018267jsd" ], + "content" : [ "acm024183jsd", "acm024184jsd", "acm024185jsd", "acm024186jsd" ] + }, + "acm024188jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024188jsd", + "name" : "ACSTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024199jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024189jsd" : { + "type" : "CodePackage", + "id" : "acm024189jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024190jsd" ] + }, + "acm024190jsd" : { + "type" : "CodePackage", + "id" : "acm024190jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024191jsd" ] + }, + "acm024191jsd" : { + "type" : "CodePackage", + "id" : "acm024191jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024192jsd" ] + }, + "acm024192jsd" : { + "type" : "CodePackage", + "id" : "acm024192jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024193jsd" ] + }, + "acm024193jsd" : { + "type" : "CodePackage", + "id" : "acm024193jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024188jsd" ] + }, + "acm024194jsd" : { + "type" : "ControlElement", + "id" : "acm024194jsd", + "name" : "setUp" + }, + "acm024195jsd" : { + "type" : "ControlElement", + "id" : "acm024195jsd", + "name" : "findByDOI" + }, + "acm024196jsd" : { + "type" : "ControlElement", + "id" : "acm024196jsd", + "name" : "notFoundByDOI" + }, + "acm024197jsd" : { + "type" : "ControlElement", + "id" : "acm024197jsd", + "name" : "entityWithoutDoi" + }, + "acm024198jsd" : { + "type" : "ControlElement", + "id" : "acm024198jsd", + "name" : "trustLevel" + }, + "acm024199jsd" : { + "type" : "ClassUnit", + "id" : "acm024199jsd", + "name" : "ACSTest", + "compilationUnitId" : "acm024188jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012629jsd", "acm018267jsd" ], + "content" : [ "acm024194jsd", "acm024195jsd", "acm024196jsd", "acm024197jsd", "acm024198jsd" ] + }, + "acm024200jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024200jsd", + "name" : "AbstractIsbnFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024214jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024201jsd" : { + "type" : "CodePackage", + "id" : "acm024201jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024202jsd" ] + }, + "acm024202jsd" : { + "type" : "CodePackage", + "id" : "acm024202jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024203jsd" ] + }, + "acm024203jsd" : { + "type" : "CodePackage", + "id" : "acm024203jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024204jsd" ] + }, + "acm024204jsd" : { + "type" : "CodePackage", + "id" : "acm024204jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024205jsd" ] + }, + "acm024205jsd" : { + "type" : "CodePackage", + "id" : "acm024205jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024200jsd" ] + }, + "acm024206jsd" : { + "type" : "ControlElement", + "id" : "acm024206jsd", + "name" : "testName" + }, + "acm024207jsd" : { + "type" : "ControlElement", + "id" : "acm024207jsd", + "name" : "authorsAreCorrectlyFormatted" + }, + "acm024208jsd" : { + "type" : "ControlElement", + "id" : "acm024208jsd", + "name" : "searchByIdSuccessfulWithShortISBN" + }, + "acm024209jsd" : { + "type" : "ControlElement", + "id" : "acm024209jsd", + "name" : "searchByIdSuccessfulWithLongISBN" + }, + "acm024210jsd" : { + "type" : "ControlElement", + "id" : "acm024210jsd", + "name" : "searchByIdReturnsEmptyWithEmptyISBN" + }, + "acm024211jsd" : { + "type" : "ControlElement", + "id" : "acm024211jsd", + "name" : "searchByIdThrowsExceptionForShortInvalidISBN" + }, + "acm024212jsd" : { + "type" : "ControlElement", + "id" : "acm024212jsd", + "name" : "searchByIdThrowsExceptionForLongInvalidISB" + }, + "acm024213jsd" : { + "type" : "ControlElement", + "id" : "acm024213jsd", + "name" : "searchByIdThrowsExceptionForInvalidISBN" + }, + "acm024214jsd" : { + "type" : "ClassUnit", + "id" : "acm024214jsd", + "name" : "AbstractIsbnFetcherTest", + "compilationUnitId" : "acm024200jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012640jsd", "acm018267jsd" ], + "content" : [ "acm024206jsd", "acm024207jsd", "acm024208jsd", "acm024209jsd", "acm024210jsd", "acm024211jsd", "acm024212jsd", "acm024213jsd" ] + }, + "acm024215jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024215jsd", + "name" : "ApsFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024226jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024216jsd" : { + "type" : "CodePackage", + "id" : "acm024216jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024217jsd" ] + }, + "acm024217jsd" : { + "type" : "CodePackage", + "id" : "acm024217jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024218jsd" ] + }, + "acm024218jsd" : { + "type" : "CodePackage", + "id" : "acm024218jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024219jsd" ] + }, + "acm024219jsd" : { + "type" : "CodePackage", + "id" : "acm024219jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024220jsd" ] + }, + "acm024220jsd" : { + "type" : "CodePackage", + "id" : "acm024220jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024215jsd" ] + }, + "acm024221jsd" : { + "type" : "ControlElement", + "id" : "acm024221jsd", + "name" : "setUp" + }, + "acm024222jsd" : { + "type" : "ControlElement", + "id" : "acm024222jsd", + "name" : "findFullTextFromDoi" + }, + "acm024223jsd" : { + "type" : "ControlElement", + "id" : "acm024223jsd", + "name" : "findFullTextFromLowercaseDoi" + }, + "acm024224jsd" : { + "type" : "ControlElement", + "id" : "acm024224jsd", + "name" : "notFindFullTextForUnauthorized" + }, + "acm024225jsd" : { + "type" : "ControlElement", + "id" : "acm024225jsd", + "name" : "notFindFullTextForUnknownEntry" + }, + "acm024226jsd" : { + "type" : "ClassUnit", + "id" : "acm024226jsd", + "name" : "ApsFetcherTest", + "compilationUnitId" : "acm024215jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012650jsd", "acm018267jsd" ], + "content" : [ "acm024221jsd", "acm024222jsd", "acm024223jsd", "acm024224jsd", "acm024225jsd" ] + }, + "acm024227jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024227jsd", + "name" : "ArXivFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024282jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024228jsd" : { + "type" : "CodePackage", + "id" : "acm024228jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024229jsd" ] + }, + "acm024229jsd" : { + "type" : "CodePackage", + "id" : "acm024229jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024230jsd" ] + }, + "acm024230jsd" : { + "type" : "CodePackage", + "id" : "acm024230jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024231jsd" ] + }, + "acm024231jsd" : { + "type" : "CodePackage", + "id" : "acm024231jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024232jsd" ] + }, + "acm024232jsd" : { + "type" : "CodePackage", + "id" : "acm024232jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024227jsd" ] + }, + "acm024233jsd" : { + "type" : "ControlElement", + "id" : "acm024233jsd", + "name" : "setUp" + }, + "acm024234jsd" : { + "type" : "ControlElement", + "id" : "acm024234jsd", + "name" : "eachSetUp" + }, + "acm024235jsd" : { + "type" : "ControlElement", + "id" : "acm024235jsd", + "name" : "getFetcher" + }, + "acm024236jsd" : { + "type" : "ControlElement", + "id" : "acm024236jsd", + "name" : "getInputTestAuthors" + }, + "acm024237jsd" : { + "type" : "ControlElement", + "id" : "acm024237jsd", + "name" : "getTestAuthors" + }, + "acm024238jsd" : { + "type" : "ControlElement", + "id" : "acm024238jsd", + "name" : "getTestJournal" + }, + "acm024239jsd" : { + "type" : "ControlElement", + "id" : "acm024239jsd", + "name" : "getPagedFetcher" + }, + "acm024240jsd" : { + "type" : "ControlElement", + "id" : "acm024240jsd", + "name" : "supportsAuthorSearch" + }, + "acm024241jsd" : { + "type" : "ControlElement", + "id" : "acm024241jsd", + "name" : "noSupportsAuthorSearchWithLastFirstName" + }, + "acm024242jsd" : { + "type" : "ControlElement", + "id" : "acm024242jsd", + "name" : "findFullTextForEmptyEntryResultsEmptyOptional" + }, + "acm024243jsd" : { + "type" : "ControlElement", + "id" : "acm024243jsd", + "name" : "findFullTextRejectsNullParameter" + }, + "acm024244jsd" : { + "type" : "ControlElement", + "id" : "acm024244jsd", + "name" : "findFullTextByDOI" + }, + "acm024245jsd" : { + "type" : "ControlElement", + "id" : "acm024245jsd", + "name" : "findFullTextByEprint" + }, + "acm024246jsd" : { + "type" : "ControlElement", + "id" : "acm024246jsd", + "name" : "findFullTextByEprintWithPrefix" + }, + "acm024247jsd" : { + "type" : "ControlElement", + "id" : "acm024247jsd", + "name" : "findFullTextByEprintWithUnknownDOI" + }, + "acm024248jsd" : { + "type" : "ControlElement", + "id" : "acm024248jsd", + "name" : "findFullTextByTitle" + }, + "acm024249jsd" : { + "type" : "ControlElement", + "id" : "acm024249jsd", + "name" : "findFullTextByTitleWithCurlyBracket" + }, + "acm024250jsd" : { + "type" : "ControlElement", + "id" : "acm024250jsd", + "name" : "findFullTextByTitleWithColonAndJournalWithoutEprint" + }, + "acm024251jsd" : { + "type" : "ControlElement", + "id" : "acm024251jsd", + "name" : "findFullTextByTitleWithColonAndUrlWithoutEprint" + }, + "acm024252jsd" : { + "type" : "ControlElement", + "id" : "acm024252jsd", + "name" : "findFullTextByTitleAndPartOfAuthor" + }, + "acm024253jsd" : { + "type" : "ControlElement", + "id" : "acm024253jsd", + "name" : "findFullTextByTitleWithCurlyBracketAndPartOfAuthor" + }, + "acm024254jsd" : { + "type" : "ControlElement", + "id" : "acm024254jsd", + "name" : "notFindFullTextByUnknownDOI" + }, + "acm024255jsd" : { + "type" : "ControlElement", + "id" : "acm024255jsd", + "name" : "notFindFullTextByUnknownId" + }, + "acm024256jsd" : { + "type" : "ControlElement", + "id" : "acm024256jsd", + "name" : "findFullTextByDOINotAvailableInCatalog" + }, + "acm024257jsd" : { + "type" : "ControlElement", + "id" : "acm024257jsd", + "name" : "findFullTextEntityWithoutDoi" + }, + "acm024258jsd" : { + "type" : "ControlElement", + "id" : "acm024258jsd", + "name" : "findFullTextTrustLevel" + }, + "acm024259jsd" : { + "type" : "ControlElement", + "id" : "acm024259jsd", + "name" : "searchEntryByPartOfTitle" + }, + "acm024260jsd" : { + "type" : "ControlElement", + "id" : "acm024260jsd", + "name" : "searchEntryByPartOfTitleWithAcuteAccent" + }, + "acm024261jsd" : { + "type" : "ControlElement", + "id" : "acm024261jsd", + "name" : "searchEntryByOldId" + }, + "acm024262jsd" : { + "type" : "ControlElement", + "id" : "acm024262jsd", + "name" : "searchEntryByIdWith4DigitsAndVersion" + }, + "acm024263jsd" : { + "type" : "ControlElement", + "id" : "acm024263jsd", + "name" : "searchEntryByIdWith4Digits" + }, + "acm024264jsd" : { + "type" : "ControlElement", + "id" : "acm024264jsd", + "name" : "searchEntryByIdWith4DigitsAndPrefix" + }, + "acm024265jsd" : { + "type" : "ControlElement", + "id" : "acm024265jsd", + "name" : "searchEntryByIdWith4DigitsAndPrefixAndNotTrimmed" + }, + "acm024266jsd" : { + "type" : "ControlElement", + "id" : "acm024266jsd", + "name" : "searchEntryByIdWith5Digits" + }, + "acm024267jsd" : { + "type" : "ControlElement", + "id" : "acm024267jsd", + "name" : "searchWithMalformedIdReturnsEmpty" + }, + "acm024268jsd" : { + "type" : "ControlElement", + "id" : "acm024268jsd", + "name" : "searchIdentifierForSlicePaper" + }, + "acm024269jsd" : { + "type" : "ControlElement", + "id" : "acm024269jsd", + "name" : "searchEmptyId" + }, + "acm024270jsd" : { + "type" : "ControlElement", + "id" : "acm024270jsd", + "name" : "searchWithHttpUrl" + }, + "acm024271jsd" : { + "type" : "ControlElement", + "id" : "acm024271jsd", + "name" : "searchWithHttpsUrl" + }, + "acm024272jsd" : { + "type" : "ControlElement", + "id" : "acm024272jsd", + "name" : "searchWithHttpsUrlNotTrimmed" + }, + "acm024273jsd" : { + "type" : "ControlElement", + "id" : "acm024273jsd", + "name" : "supportsYearSearch" + }, + "acm024274jsd" : { + "type" : "ControlElement", + "id" : "acm024274jsd", + "name" : "supportsYearRangeSearch" + }, + "acm024275jsd" : { + "type" : "ControlElement", + "id" : "acm024275jsd", + "name" : "supportsPhraseSearch" + }, + "acm024276jsd" : { + "type" : "ControlElement", + "id" : "acm024276jsd", + "name" : "supportsPhraseSearchAndMatchesExact" + }, + "acm024277jsd" : { + "type" : "ControlElement", + "id" : "acm024277jsd", + "name" : "supportsBooleanANDSearch" + }, + "acm024278jsd" : { + "type" : "ControlElement", + "id" : "acm024278jsd", + "name" : "retrievePureArxivEntryWhenAllDOIFetchingFails" + }, + "acm024279jsd" : { + "type" : "ControlElement", + "id" : "acm024279jsd", + "name" : "canReplicateArXivOnlySearchByPassingNullParameter" + }, + "acm024280jsd" : { + "type" : "ControlElement", + "id" : "acm024280jsd", + "name" : "retrievePartialResultWhenCannotGetInformationFromUserAssignedDOI" + }, + "acm024281jsd" : { + "type" : "ControlElement", + "id" : "acm024281jsd", + "name" : "retrievePartialResultWhenCannotGetInformationFromArXivAssignedDOI" + }, + "acm024282jsd" : { + "type" : "ClassUnit", + "id" : "acm024282jsd", + "name" : "ArXivFetcherTest", + "compilationUnitId" : "acm024227jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd", "acm024781jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012398jsd", "acm012495jsd", "acm012571jsd", "acm012702jsd", "acm013001jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024233jsd", "acm024234jsd", "acm024235jsd", "acm024236jsd", "acm024237jsd", "acm024238jsd", "acm024239jsd", "acm024240jsd", "acm024241jsd", "acm024242jsd", "acm024243jsd", "acm024244jsd", "acm024245jsd", "acm024246jsd", "acm024247jsd", "acm024248jsd", "acm024249jsd", "acm024250jsd", "acm024251jsd", "acm024252jsd", "acm024253jsd", "acm024254jsd", "acm024255jsd", "acm024256jsd", "acm024257jsd", "acm024258jsd", "acm024259jsd", "acm024260jsd", "acm024261jsd", "acm024262jsd", "acm024263jsd", "acm024264jsd", "acm024265jsd", "acm024266jsd", "acm024267jsd", "acm024268jsd", "acm024269jsd", "acm024270jsd", "acm024271jsd", "acm024272jsd", "acm024273jsd", "acm024274jsd", "acm024275jsd", "acm024276jsd", "acm024277jsd", "acm024278jsd", "acm024279jsd", "acm024280jsd", "acm024281jsd" ] + }, + "acm024283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024283jsd", + "name" : "AstrophysicsDataSystemTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024303jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024284jsd" : { + "type" : "CodePackage", + "id" : "acm024284jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024285jsd" ] + }, + "acm024285jsd" : { + "type" : "CodePackage", + "id" : "acm024285jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024286jsd" ] + }, + "acm024286jsd" : { + "type" : "CodePackage", + "id" : "acm024286jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024287jsd" ] + }, + "acm024287jsd" : { + "type" : "CodePackage", + "id" : "acm024287jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024288jsd" ] + }, + "acm024288jsd" : { + "type" : "CodePackage", + "id" : "acm024288jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024283jsd" ] + }, + "acm024289jsd" : { + "type" : "ControlElement", + "id" : "acm024289jsd", + "name" : "setUp" + }, + "acm024290jsd" : { + "type" : "ControlElement", + "id" : "acm024290jsd", + "name" : "testGetName" + }, + "acm024291jsd" : { + "type" : "ControlElement", + "id" : "acm024291jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024292jsd" : { + "type" : "ControlElement", + "id" : "acm024292jsd", + "name" : "searchByEntryFindsEntry" + }, + "acm024293jsd" : { + "type" : "ControlElement", + "id" : "acm024293jsd", + "name" : "testPerformSearchByFamaeyMcGaughEntry" + }, + "acm024294jsd" : { + "type" : "ControlElement", + "id" : "acm024294jsd", + "name" : "testPerformSearchByIdEmptyDOI" + }, + "acm024295jsd" : { + "type" : "ControlElement", + "id" : "acm024295jsd", + "name" : "testPerformSearchByIdInvalidDoi" + }, + "acm024296jsd" : { + "type" : "ControlElement", + "id" : "acm024296jsd", + "name" : "testPerformSearchBySunWelchEntry" + }, + "acm024297jsd" : { + "type" : "ControlElement", + "id" : "acm024297jsd", + "name" : "testPerformSearchByXiongSunEntry" + }, + "acm024298jsd" : { + "type" : "ControlElement", + "id" : "acm024298jsd", + "name" : "testPerformSearchByIngersollPollardEntry" + }, + "acm024299jsd" : { + "type" : "ControlElement", + "id" : "acm024299jsd", + "name" : "testPerformSearchByLuceyPaulEntry" + }, + "acm024300jsd" : { + "type" : "ControlElement", + "id" : "acm024300jsd", + "name" : "performSearchByQueryPaged_searchLimitsSize" + }, + "acm024301jsd" : { + "type" : "ControlElement", + "id" : "acm024301jsd", + "name" : "performSearchByQueryPaged_invalidAuthorsReturnEmptyPages" + }, + "acm024302jsd" : { + "type" : "ControlElement", + "id" : "acm024302jsd", + "name" : "getPagedFetcher" + }, + "acm024303jsd" : { + "type" : "ClassUnit", + "id" : "acm024303jsd", + "name" : "AstrophysicsDataSystemTest", + "compilationUnitId" : "acm024283jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd" ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm012495jsd", "acm012761jsd", "acm018267jsd", "acm020222jsd" ], + "content" : [ "acm024289jsd", "acm024290jsd", "acm024291jsd", "acm024292jsd", "acm024293jsd", "acm024294jsd", "acm024295jsd", "acm024296jsd", "acm024297jsd", "acm024298jsd", "acm024299jsd", "acm024300jsd", "acm024301jsd", "acm024302jsd" ] + }, + "acm024304jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024304jsd", + "name" : "BiodiversityLibraryTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024318jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024305jsd" : { + "type" : "CodePackage", + "id" : "acm024305jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024306jsd" ] + }, + "acm024306jsd" : { + "type" : "CodePackage", + "id" : "acm024306jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024307jsd" ] + }, + "acm024307jsd" : { + "type" : "CodePackage", + "id" : "acm024307jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024308jsd" ] + }, + "acm024308jsd" : { + "type" : "CodePackage", + "id" : "acm024308jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024309jsd" ] + }, + "acm024309jsd" : { + "type" : "CodePackage", + "id" : "acm024309jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024304jsd" ] + }, + "acm024310jsd" : { + "type" : "ControlElement", + "id" : "acm024310jsd", + "name" : "setUp" + }, + "acm024311jsd" : { + "type" : "ControlElement", + "id" : "acm024311jsd", + "name" : "testGetName" + }, + "acm024312jsd" : { + "type" : "ControlElement", + "id" : "acm024312jsd", + "name" : "biodiversityHeritageApiKeyIsNotEmpty" + }, + "acm024313jsd" : { + "type" : "ControlElement", + "id" : "acm024313jsd", + "name" : "baseURLConstruction" + }, + "acm024314jsd" : { + "type" : "ControlElement", + "id" : "acm024314jsd", + "name" : "getPartMetadaUrl" + }, + "acm024315jsd" : { + "type" : "ControlElement", + "id" : "acm024315jsd", + "name" : "getItemMetadaUrl" + }, + "acm024316jsd" : { + "type" : "ControlElement", + "id" : "acm024316jsd", + "name" : "testPerformSearch" + }, + "acm024317jsd" : { + "type" : "ControlElement", + "id" : "acm024317jsd", + "name" : "jsonResultToBibEntry" + }, + "acm024318jsd" : { + "type" : "ClassUnit", + "id" : "acm024318jsd", + "name" : "BiodiversityLibraryTest", + "compilationUnitId" : "acm024304jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012467jsd", "acm012790jsd", "acm017281jsd", "acm018267jsd" ], + "content" : [ "acm024310jsd", "acm024311jsd", "acm024312jsd", "acm024313jsd", "acm024314jsd", "acm024315jsd", "acm024316jsd", "acm024317jsd" ] + }, + "acm024319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024319jsd", + "name" : "BvbFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024332jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024320jsd" : { + "type" : "CodePackage", + "id" : "acm024320jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024321jsd" ] + }, + "acm024321jsd" : { + "type" : "CodePackage", + "id" : "acm024321jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024322jsd" ] + }, + "acm024322jsd" : { + "type" : "CodePackage", + "id" : "acm024322jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024323jsd" ] + }, + "acm024323jsd" : { + "type" : "CodePackage", + "id" : "acm024323jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024324jsd" ] + }, + "acm024324jsd" : { + "type" : "CodePackage", + "id" : "acm024324jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024319jsd" ] + }, + "acm024325jsd" : { + "type" : "ControlElement", + "id" : "acm024325jsd", + "name" : "testPerformTest" + }, + "acm024326jsd" : { + "type" : "ControlElement", + "id" : "acm024326jsd", + "name" : "setUp" + }, + "acm024327jsd" : { + "type" : "ControlElement", + "id" : "acm024327jsd", + "name" : "testGetName" + }, + "acm024328jsd" : { + "type" : "ControlElement", + "id" : "acm024328jsd", + "name" : "simpleSearchQueryURLCorrect" + }, + "acm024329jsd" : { + "type" : "ControlElement", + "id" : "acm024329jsd", + "name" : "complexSearchQueryURLCorrect" + }, + "acm024330jsd" : { + "type" : "ControlElement", + "id" : "acm024330jsd", + "name" : "testPerformSearchMatchingMultipleEntries" + }, + "acm024331jsd" : { + "type" : "ControlElement", + "id" : "acm024331jsd", + "name" : "testPerformSearchEmpty" + }, + "acm024332jsd" : { + "type" : "ClassUnit", + "id" : "acm024332jsd", + "name" : "BvbFetcherTest", + "compilationUnitId" : "acm024319jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012801jsd", "acm018267jsd" ], + "content" : [ "acm024325jsd", "acm024326jsd", "acm024327jsd", "acm024328jsd", "acm024329jsd", "acm024330jsd", "acm024331jsd" ] + }, + "acm024333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024333jsd", + "name" : "CiteSeerTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024341jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024334jsd" : { + "type" : "CodePackage", + "id" : "acm024334jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024335jsd" ] + }, + "acm024335jsd" : { + "type" : "CodePackage", + "id" : "acm024335jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024336jsd" ] + }, + "acm024336jsd" : { + "type" : "CodePackage", + "id" : "acm024336jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024337jsd" ] + }, + "acm024337jsd" : { + "type" : "CodePackage", + "id" : "acm024337jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024338jsd" ] + }, + "acm024338jsd" : { + "type" : "CodePackage", + "id" : "acm024338jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024333jsd" ] + }, + "acm024339jsd" : { + "type" : "ControlElement", + "id" : "acm024339jsd", + "name" : "searchByQueryFindsEntryRigorousDerivation" + }, + "acm024340jsd" : { + "type" : "ControlElement", + "id" : "acm024340jsd", + "name" : "searchByQueryFindsEntryCopingTheoryAndResearch" + }, + "acm024341jsd" : { + "type" : "ClassUnit", + "id" : "acm024341jsd", + "name" : "CiteSeerTest", + "compilationUnitId" : "acm024333jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012815jsd", "acm018267jsd" ], + "content" : [ "acm024339jsd", "acm024340jsd" ] + }, + "acm024342jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024342jsd", + "name" : "CollectionOfComputerScienceBibliographiesFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024353jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024343jsd" : { + "type" : "CodePackage", + "id" : "acm024343jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024344jsd" ] + }, + "acm024344jsd" : { + "type" : "CodePackage", + "id" : "acm024344jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024345jsd" ] + }, + "acm024345jsd" : { + "type" : "CodePackage", + "id" : "acm024345jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024346jsd" ] + }, + "acm024346jsd" : { + "type" : "CodePackage", + "id" : "acm024346jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024347jsd" ] + }, + "acm024347jsd" : { + "type" : "CodePackage", + "id" : "acm024347jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024342jsd" ] + }, + "acm024348jsd" : { + "type" : "ControlElement", + "id" : "acm024348jsd", + "name" : "setUp" + }, + "acm024349jsd" : { + "type" : "ControlElement", + "id" : "acm024349jsd", + "name" : "getNameReturnsCorrectName" + }, + "acm024350jsd" : { + "type" : "ControlElement", + "id" : "acm024350jsd", + "name" : "getUrlForQueryReturnsCorrectUrl" + }, + "acm024351jsd" : { + "type" : "ControlElement", + "id" : "acm024351jsd", + "name" : "performSearchReturnsMatchingMultipleEntries" + }, + "acm024352jsd" : { + "type" : "ControlElement", + "id" : "acm024352jsd", + "name" : "performSearchReturnsEmptyListForEmptySearch" + }, + "acm024353jsd" : { + "type" : "ClassUnit", + "id" : "acm024353jsd", + "name" : "CollectionOfComputerScienceBibliographiesFetcherTest", + "compilationUnitId" : "acm024342jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012827jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024348jsd", "acm024349jsd", "acm024350jsd", "acm024351jsd", "acm024352jsd" ] + }, + "acm024354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024354jsd", + "name" : "CollectionOfComputerScienceBibliographiesParserTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024364jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024355jsd" : { + "type" : "CodePackage", + "id" : "acm024355jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024356jsd" ] + }, + "acm024356jsd" : { + "type" : "CodePackage", + "id" : "acm024356jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024357jsd" ] + }, + "acm024357jsd" : { + "type" : "CodePackage", + "id" : "acm024357jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024358jsd" ] + }, + "acm024358jsd" : { + "type" : "CodePackage", + "id" : "acm024358jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024359jsd" ] + }, + "acm024359jsd" : { + "type" : "CodePackage", + "id" : "acm024359jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024354jsd" ] + }, + "acm024360jsd" : { + "type" : "ControlElement", + "id" : "acm024360jsd", + "name" : "parseEntriesReturnsEmptyListIfXmlHasNoResults" + }, + "acm024361jsd" : { + "type" : "ControlElement", + "id" : "acm024361jsd", + "name" : "parseEntriesReturnsOneBibEntryInListIfXmlHasSingleResult" + }, + "acm024362jsd" : { + "type" : "ControlElement", + "id" : "acm024362jsd", + "name" : "parseEntriesReturnsMultipleBibEntriesInListIfXmlHasMultipleResults" + }, + "acm024363jsd" : { + "type" : "ControlElement", + "id" : "acm024363jsd", + "name" : "parseXmlAndCheckResults" + }, + "acm024364jsd" : { + "type" : "ClassUnit", + "id" : "acm024364jsd", + "name" : "CollectionOfComputerScienceBibliographiesParserTest", + "compilationUnitId" : "acm024354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012838jsd", "acm018267jsd", "acm024364jsd" ], + "content" : [ "acm024360jsd", "acm024361jsd", "acm024362jsd", "acm024363jsd" ] + }, + "acm024365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024365jsd", + "name" : "CompositeIdFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024375jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024366jsd" : { + "type" : "CodePackage", + "id" : "acm024366jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024367jsd" ] + }, + "acm024367jsd" : { + "type" : "CodePackage", + "id" : "acm024367jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024368jsd" ] + }, + "acm024368jsd" : { + "type" : "CodePackage", + "id" : "acm024368jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024369jsd" ] + }, + "acm024369jsd" : { + "type" : "CodePackage", + "id" : "acm024369jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024370jsd" ] + }, + "acm024370jsd" : { + "type" : "CodePackage", + "id" : "acm024370jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024365jsd" ] + }, + "acm024371jsd" : { + "type" : "ControlElement", + "id" : "acm024371jsd", + "name" : "performSearchByIdReturnsCorrectEntryForIdentifier" + }, + "acm024372jsd" : { + "type" : "ControlElement", + "id" : "acm024372jsd", + "name" : "setUp" + }, + "acm024373jsd" : { + "type" : "ControlElement", + "id" : "acm024373jsd", + "name" : "performSearchByIdReturnsEmptyForInvalidId" + }, + "acm024374jsd" : { + "type" : "ControlElement", + "id" : "acm024374jsd", + "name" : "performSearchByIdReturnsCorrectEntryForIdentifier" + }, + "acm024375jsd" : { + "type" : "ClassUnit", + "id" : "acm024375jsd", + "name" : "CompositeIdFetcherTest", + "compilationUnitId" : "acm024365jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012279jsd", "acm012314jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024371jsd", "acm024372jsd", "acm024373jsd", "acm024374jsd" ] + }, + "acm024376jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024376jsd", + "name" : "CompositeSearchBasedFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024387jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024377jsd" : { + "type" : "CodePackage", + "id" : "acm024377jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024378jsd" ] + }, + "acm024378jsd" : { + "type" : "CodePackage", + "id" : "acm024378jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024379jsd" ] + }, + "acm024379jsd" : { + "type" : "CodePackage", + "id" : "acm024379jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024380jsd" ] + }, + "acm024380jsd" : { + "type" : "CodePackage", + "id" : "acm024380jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024381jsd" ] + }, + "acm024381jsd" : { + "type" : "CodePackage", + "id" : "acm024381jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024376jsd" ] + }, + "acm024382jsd" : { + "type" : "ControlElement", + "id" : "acm024382jsd", + "name" : "createCompositeFetcherWithNullSet" + }, + "acm024383jsd" : { + "type" : "ControlElement", + "id" : "acm024383jsd", + "name" : "performSearchWithoutFetchers" + }, + "acm024384jsd" : { + "type" : "ControlElement", + "id" : "acm024384jsd", + "name" : "performSearchOnEmptyQuery" + }, + "acm024385jsd" : { + "type" : "ControlElement", + "id" : "acm024385jsd", + "name" : "performSearchOnNonEmptyQuery" + }, + "acm024386jsd" : { + "type" : "ControlElement", + "id" : "acm024386jsd", + "name" : "performSearchParameters" + }, + "acm024387jsd" : { + "type" : "ClassUnit", + "id" : "acm024387jsd", + "name" : "CompositeSearchBasedFetcherTest", + "compilationUnitId" : "acm024376jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012398jsd", "acm012467jsd", "acm012571jsd", "acm012702jsd", "acm012761jsd", "acm012815jsd", "acm012902jsd", "acm012920jsd", "acm012941jsd", "acm012969jsd", "acm013032jsd", "acm013073jsd", "acm013090jsd", "acm013105jsd", "acm013165jsd", "acm013294jsd", "acm013339jsd", "acm018267jsd", "acm024387jsd" ], + "content" : [ "acm024382jsd", "acm024383jsd", "acm024384jsd", "acm024385jsd", "acm024386jsd" ] + }, + "acm024388jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024388jsd", + "name" : "CrossRefTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024410jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024389jsd" : { + "type" : "CodePackage", + "id" : "acm024389jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024390jsd" ] + }, + "acm024390jsd" : { + "type" : "CodePackage", + "id" : "acm024390jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024391jsd" ] + }, + "acm024391jsd" : { + "type" : "CodePackage", + "id" : "acm024391jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024392jsd" ] + }, + "acm024392jsd" : { + "type" : "CodePackage", + "id" : "acm024392jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024393jsd" ] + }, + "acm024393jsd" : { + "type" : "CodePackage", + "id" : "acm024393jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024388jsd" ] + }, + "acm024394jsd" : { + "type" : "ControlElement", + "id" : "acm024394jsd", + "name" : "setUp" + }, + "acm024395jsd" : { + "type" : "ControlElement", + "id" : "acm024395jsd", + "name" : "findExactData" + }, + "acm024396jsd" : { + "type" : "ControlElement", + "id" : "acm024396jsd", + "name" : "findMissingAuthor" + }, + "acm024397jsd" : { + "type" : "ControlElement", + "id" : "acm024397jsd", + "name" : "findTitleOnly" + }, + "acm024398jsd" : { + "type" : "ControlElement", + "id" : "acm024398jsd", + "name" : "notFindIncompleteTitle" + }, + "acm024399jsd" : { + "type" : "ControlElement", + "id" : "acm024399jsd", + "name" : "acceptTitleUnderThreshold" + }, + "acm024400jsd" : { + "type" : "ControlElement", + "id" : "acm024400jsd", + "name" : "notAcceptTitleOverThreshold" + }, + "acm024401jsd" : { + "type" : "ControlElement", + "id" : "acm024401jsd", + "name" : "findWrongAuthor" + }, + "acm024402jsd" : { + "type" : "ControlElement", + "id" : "acm024402jsd", + "name" : "findWithSubtitle" + }, + "acm024403jsd" : { + "type" : "ControlElement", + "id" : "acm024403jsd", + "name" : "findByDOI" + }, + "acm024404jsd" : { + "type" : "ControlElement", + "id" : "acm024404jsd", + "name" : "findByAuthors" + }, + "acm024405jsd" : { + "type" : "ControlElement", + "id" : "acm024405jsd", + "name" : "findByEntry" + }, + "acm024406jsd" : { + "type" : "ControlElement", + "id" : "acm024406jsd", + "name" : "performSearchByIdFindsPaperWithoutTitle" + }, + "acm024407jsd" : { + "type" : "ControlElement", + "id" : "acm024407jsd", + "name" : "performSearchByEmptyId" + }, + "acm024408jsd" : { + "type" : "ControlElement", + "id" : "acm024408jsd", + "name" : "performSearchByEmptyQuery" + }, + "acm024409jsd" : { + "type" : "ControlElement", + "id" : "acm024409jsd", + "name" : "testPerformSearchValidReturnNothingDOI" + }, + "acm024410jsd" : { + "type" : "ClassUnit", + "id" : "acm024410jsd", + "name" : "CrossRefTest", + "compilationUnitId" : "acm024388jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012314jsd", "acm012920jsd", "acm018267jsd" ], + "content" : [ "acm024394jsd", "acm024395jsd", "acm024396jsd", "acm024397jsd", "acm024398jsd", "acm024399jsd", "acm024400jsd", "acm024401jsd", "acm024402jsd", "acm024403jsd", "acm024404jsd", "acm024405jsd", "acm024406jsd", "acm024407jsd", "acm024408jsd", "acm024409jsd" ] + }, + "acm024411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024411jsd", + "name" : "DBLPFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024421jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024412jsd" : { + "type" : "CodePackage", + "id" : "acm024412jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024413jsd" ] + }, + "acm024413jsd" : { + "type" : "CodePackage", + "id" : "acm024413jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024414jsd" ] + }, + "acm024414jsd" : { + "type" : "CodePackage", + "id" : "acm024414jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024415jsd" ] + }, + "acm024415jsd" : { + "type" : "CodePackage", + "id" : "acm024415jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024416jsd" ] + }, + "acm024416jsd" : { + "type" : "CodePackage", + "id" : "acm024416jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024411jsd" ] + }, + "acm024417jsd" : { + "type" : "ControlElement", + "id" : "acm024417jsd", + "name" : "setUp" + }, + "acm024418jsd" : { + "type" : "ControlElement", + "id" : "acm024418jsd", + "name" : "findSingleEntry" + }, + "acm024419jsd" : { + "type" : "ControlElement", + "id" : "acm024419jsd", + "name" : "findSingleEntryUsingComplexOperators" + }, + "acm024420jsd" : { + "type" : "ControlElement", + "id" : "acm024420jsd", + "name" : "findNothing" + }, + "acm024421jsd" : { + "type" : "ClassUnit", + "id" : "acm024421jsd", + "name" : "DBLPFetcherTest", + "compilationUnitId" : "acm024411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012941jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024417jsd", "acm024418jsd", "acm024419jsd", "acm024420jsd" ] + }, + "acm024422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024422jsd", + "name" : "DOABFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024431jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024423jsd" : { + "type" : "CodePackage", + "id" : "acm024423jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024424jsd" ] + }, + "acm024424jsd" : { + "type" : "CodePackage", + "id" : "acm024424jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024425jsd" ] + }, + "acm024425jsd" : { + "type" : "CodePackage", + "id" : "acm024425jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024426jsd" ] + }, + "acm024426jsd" : { + "type" : "CodePackage", + "id" : "acm024426jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024427jsd" ] + }, + "acm024427jsd" : { + "type" : "CodePackage", + "id" : "acm024427jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024422jsd" ] + }, + "acm024428jsd" : { + "type" : "ControlElement", + "id" : "acm024428jsd", + "name" : "testGetName" + }, + "acm024429jsd" : { + "type" : "ControlElement", + "id" : "acm024429jsd", + "name" : "testPerformSearch" + }, + "acm024430jsd" : { + "type" : "ControlElement", + "id" : "acm024430jsd", + "name" : "testPerformSearch" + }, + "acm024431jsd" : { + "type" : "ClassUnit", + "id" : "acm024431jsd", + "name" : "DOABFetcherTest", + "compilationUnitId" : "acm024422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012954jsd", "acm018267jsd" ], + "content" : [ "acm024428jsd", "acm024429jsd", "acm024430jsd" ] + }, + "acm024432jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024432jsd", + "name" : "DOAJFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024446jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024433jsd" : { + "type" : "CodePackage", + "id" : "acm024433jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024434jsd" ] + }, + "acm024434jsd" : { + "type" : "CodePackage", + "id" : "acm024434jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024435jsd" ] + }, + "acm024435jsd" : { + "type" : "CodePackage", + "id" : "acm024435jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024436jsd" ] + }, + "acm024436jsd" : { + "type" : "CodePackage", + "id" : "acm024436jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024437jsd" ] + }, + "acm024437jsd" : { + "type" : "CodePackage", + "id" : "acm024437jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024432jsd" ] + }, + "acm024438jsd" : { + "type" : "ControlElement", + "id" : "acm024438jsd", + "name" : "setUp" + }, + "acm024439jsd" : { + "type" : "ControlElement", + "id" : "acm024439jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024440jsd" : { + "type" : "ControlElement", + "id" : "acm024440jsd", + "name" : "testBibJSONConverter" + }, + "acm024441jsd" : { + "type" : "ControlElement", + "id" : "acm024441jsd", + "name" : "searchByEmptyQuery" + }, + "acm024442jsd" : { + "type" : "ControlElement", + "id" : "acm024442jsd", + "name" : "appendSingleWord" + }, + "acm024443jsd" : { + "type" : "ControlElement", + "id" : "acm024443jsd", + "name" : "appendSingleWordWithSlash" + }, + "acm024444jsd" : { + "type" : "ControlElement", + "id" : "acm024444jsd", + "name" : "appendSlash" + }, + "acm024445jsd" : { + "type" : "ControlElement", + "id" : "acm024445jsd", + "name" : "appendTwoWords" + }, + "acm024446jsd" : { + "type" : "ClassUnit", + "id" : "acm024446jsd", + "name" : "DOAJFetcherTest", + "compilationUnitId" : "acm024432jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012969jsd", "acm018267jsd" ], + "content" : [ "acm024438jsd", "acm024439jsd", "acm024440jsd", "acm024441jsd", "acm024442jsd", "acm024443jsd", "acm024444jsd", "acm024445jsd" ] + }, + "acm024447jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024447jsd", + "name" : "DiVATest", + "parentId" : "acm012613jsd", + "content" : [ "acm024459jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024448jsd" : { + "type" : "CodePackage", + "id" : "acm024448jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024449jsd" ] + }, + "acm024449jsd" : { + "type" : "CodePackage", + "id" : "acm024449jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024450jsd" ] + }, + "acm024450jsd" : { + "type" : "CodePackage", + "id" : "acm024450jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024451jsd" ] + }, + "acm024451jsd" : { + "type" : "CodePackage", + "id" : "acm024451jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024452jsd" ] + }, + "acm024452jsd" : { + "type" : "CodePackage", + "id" : "acm024452jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024447jsd" ] + }, + "acm024453jsd" : { + "type" : "ControlElement", + "id" : "acm024453jsd", + "name" : "setUp" + }, + "acm024454jsd" : { + "type" : "ControlElement", + "id" : "acm024454jsd", + "name" : "testGetName" + }, + "acm024455jsd" : { + "type" : "ControlElement", + "id" : "acm024455jsd", + "name" : "testPerformSearchById" + }, + "acm024456jsd" : { + "type" : "ControlElement", + "id" : "acm024456jsd", + "name" : "testValidIdentifier" + }, + "acm024457jsd" : { + "type" : "ControlElement", + "id" : "acm024457jsd", + "name" : "testInvalidIdentifier" + }, + "acm024458jsd" : { + "type" : "ControlElement", + "id" : "acm024458jsd", + "name" : "testEmptyId" + }, + "acm024459jsd" : { + "type" : "ClassUnit", + "id" : "acm024459jsd", + "name" : "DiVATest", + "compilationUnitId" : "acm024447jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012982jsd", "acm018267jsd" ], + "content" : [ "acm024453jsd", "acm024454jsd", "acm024455jsd", "acm024456jsd", "acm024457jsd", "acm024458jsd" ] + }, + "acm024460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024460jsd", + "name" : "DoiFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024476jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024461jsd" : { + "type" : "CodePackage", + "id" : "acm024461jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024462jsd" ] + }, + "acm024462jsd" : { + "type" : "CodePackage", + "id" : "acm024462jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024463jsd" ] + }, + "acm024463jsd" : { + "type" : "CodePackage", + "id" : "acm024463jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024464jsd" ] + }, + "acm024464jsd" : { + "type" : "CodePackage", + "id" : "acm024464jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024465jsd" ] + }, + "acm024465jsd" : { + "type" : "CodePackage", + "id" : "acm024465jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024460jsd" ] + }, + "acm024466jsd" : { + "type" : "ControlElement", + "id" : "acm024466jsd", + "name" : "testGetName" + }, + "acm024467jsd" : { + "type" : "ControlElement", + "id" : "acm024467jsd", + "name" : "testPerformSearchBurd2011" + }, + "acm024468jsd" : { + "type" : "ControlElement", + "id" : "acm024468jsd", + "name" : "testPerformSearchDecker2007" + }, + "acm024469jsd" : { + "type" : "ControlElement", + "id" : "acm024469jsd", + "name" : "testPerformSearchIannarelli2019" + }, + "acm024470jsd" : { + "type" : "ControlElement", + "id" : "acm024470jsd", + "name" : "testPerformSearchEmptyDOI" + }, + "acm024471jsd" : { + "type" : "ControlElement", + "id" : "acm024471jsd", + "name" : "testPerformSearchInvalidDOI" + }, + "acm024472jsd" : { + "type" : "ControlElement", + "id" : "acm024472jsd", + "name" : "testPerformSearchInvalidDOIClientResultsinFetcherClientException" + }, + "acm024473jsd" : { + "type" : "ControlElement", + "id" : "acm024473jsd", + "name" : "testPerformSearchInvalidDOIClientResultsinFetcherClientException2" + }, + "acm024474jsd" : { + "type" : "ControlElement", + "id" : "acm024474jsd", + "name" : "testPerformSearchNonTrimmedDOI" + }, + "acm024475jsd" : { + "type" : "ControlElement", + "id" : "acm024475jsd", + "name" : "testAPSJournalCopiesArticleIdToPageField" + }, + "acm024476jsd" : { + "type" : "ClassUnit", + "id" : "acm024476jsd", + "name" : "DoiFetcherTest", + "compilationUnitId" : "acm024460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013001jsd", "acm018267jsd" ], + "content" : [ "acm024466jsd", "acm024467jsd", "acm024468jsd", "acm024469jsd", "acm024470jsd", "acm024471jsd", "acm024472jsd", "acm024473jsd", "acm024474jsd", "acm024475jsd" ] + }, + "acm024477jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024477jsd", + "name" : "DoiResolutionTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024492jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024478jsd" : { + "type" : "CodePackage", + "id" : "acm024478jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024479jsd" ] + }, + "acm024479jsd" : { + "type" : "CodePackage", + "id" : "acm024479jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024480jsd" ] + }, + "acm024480jsd" : { + "type" : "CodePackage", + "id" : "acm024480jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024481jsd" ] + }, + "acm024481jsd" : { + "type" : "CodePackage", + "id" : "acm024481jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024482jsd" ] + }, + "acm024482jsd" : { + "type" : "CodePackage", + "id" : "acm024482jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024477jsd" ] + }, + "acm024483jsd" : { + "type" : "ControlElement", + "id" : "acm024483jsd", + "name" : "setup" + }, + "acm024484jsd" : { + "type" : "ControlElement", + "id" : "acm024484jsd", + "name" : "linkWithPdfInTitleTag" + }, + "acm024485jsd" : { + "type" : "ControlElement", + "id" : "acm024485jsd", + "name" : "linkWithPdfStringLeadsToFulltext" + }, + "acm024486jsd" : { + "type" : "ControlElement", + "id" : "acm024486jsd", + "name" : "citationMetaTagLeadsToFulltext" + }, + "acm024487jsd" : { + "type" : "ControlElement", + "id" : "acm024487jsd", + "name" : "notReturnAnythingWhenMultipleLinksAreFound" + }, + "acm024488jsd" : { + "type" : "ControlElement", + "id" : "acm024488jsd", + "name" : "returnAnythingWhenBehindSpringerPayWall" + }, + "acm024489jsd" : { + "type" : "ControlElement", + "id" : "acm024489jsd", + "name" : "notFoundByDOI" + }, + "acm024490jsd" : { + "type" : "ControlElement", + "id" : "acm024490jsd", + "name" : "entityWithoutDoi" + }, + "acm024491jsd" : { + "type" : "ControlElement", + "id" : "acm024491jsd", + "name" : "trustLevel" + }, + "acm024492jsd" : { + "type" : "ClassUnit", + "id" : "acm024492jsd", + "name" : "DoiResolutionTest", + "compilationUnitId" : "acm024477jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013014jsd", "acm016594jsd", "acm018267jsd" ], + "content" : [ "acm024483jsd", "acm024484jsd", "acm024485jsd", "acm024486jsd", "acm024487jsd", "acm024488jsd", "acm024489jsd", "acm024490jsd", "acm024491jsd" ] + }, + "acm024493jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024493jsd", + "name" : "FulltextFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024502jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024494jsd" : { + "type" : "CodePackage", + "id" : "acm024494jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024495jsd" ] + }, + "acm024495jsd" : { + "type" : "CodePackage", + "id" : "acm024495jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024496jsd" ] + }, + "acm024496jsd" : { + "type" : "CodePackage", + "id" : "acm024496jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024497jsd" ] + }, + "acm024497jsd" : { + "type" : "CodePackage", + "id" : "acm024497jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024498jsd" ] + }, + "acm024498jsd" : { + "type" : "CodePackage", + "id" : "acm024498jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024493jsd" ] + }, + "acm024499jsd" : { + "type" : "ControlElement", + "id" : "acm024499jsd", + "name" : "fetcherProvider" + }, + "acm024500jsd" : { + "type" : "ControlElement", + "id" : "acm024500jsd", + "name" : "findFullTextRejectsNullParameter" + }, + "acm024501jsd" : { + "type" : "ControlElement", + "id" : "acm024501jsd", + "name" : "findFullTextWithEmptyEntryFindsNothing" + }, + "acm024502jsd" : { + "type" : "ClassUnit", + "id" : "acm024502jsd", + "name" : "FulltextFetcherTest", + "compilationUnitId" : "acm024493jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012340jsd", "acm012467jsd", "acm018267jsd" ], + "content" : [ "acm024499jsd", "acm024500jsd", "acm024501jsd" ] + }, + "acm024503jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024503jsd", + "name" : "GoogleScholarTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024518jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024504jsd" : { + "type" : "CodePackage", + "id" : "acm024504jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024505jsd" ] + }, + "acm024505jsd" : { + "type" : "CodePackage", + "id" : "acm024505jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024506jsd" ] + }, + "acm024506jsd" : { + "type" : "CodePackage", + "id" : "acm024506jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024507jsd" ] + }, + "acm024507jsd" : { + "type" : "CodePackage", + "id" : "acm024507jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024508jsd" ] + }, + "acm024508jsd" : { + "type" : "CodePackage", + "id" : "acm024508jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024503jsd" ] + }, + "acm024509jsd" : { + "type" : "ControlElement", + "id" : "acm024509jsd", + "name" : "setUp" + }, + "acm024510jsd" : { + "type" : "ControlElement", + "id" : "acm024510jsd", + "name" : "linkFound" + }, + "acm024511jsd" : { + "type" : "ControlElement", + "id" : "acm024511jsd", + "name" : "noLinkFound" + }, + "acm024512jsd" : { + "type" : "ControlElement", + "id" : "acm024512jsd", + "name" : "findSingleEntry" + }, + "acm024513jsd" : { + "type" : "ControlElement", + "id" : "acm024513jsd", + "name" : "findManyEntries" + }, + "acm024514jsd" : { + "type" : "ControlElement", + "id" : "acm024514jsd", + "name" : "getFetcher" + }, + "acm024515jsd" : { + "type" : "ControlElement", + "id" : "acm024515jsd", + "name" : "getPagedFetcher" + }, + "acm024516jsd" : { + "type" : "ControlElement", + "id" : "acm024516jsd", + "name" : "getTestAuthors" + }, + "acm024517jsd" : { + "type" : "ControlElement", + "id" : "acm024517jsd", + "name" : "getTestJournal" + }, + "acm024518jsd" : { + "type" : "ClassUnit", + "id" : "acm024518jsd", + "name" : "GoogleScholarTest", + "compilationUnitId" : "acm024503jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd", "acm024781jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012495jsd", "acm012571jsd", "acm013032jsd", "acm018267jsd" ], + "content" : [ "acm024509jsd", "acm024510jsd", "acm024511jsd", "acm024512jsd", "acm024513jsd", "acm024514jsd", "acm024515jsd", "acm024516jsd", "acm024517jsd" ] + }, + "acm024519jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024519jsd", + "name" : "GrobidCitationFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024532jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024520jsd" : { + "type" : "CodePackage", + "id" : "acm024520jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024521jsd" ] + }, + "acm024521jsd" : { + "type" : "CodePackage", + "id" : "acm024521jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024522jsd" ] + }, + "acm024522jsd" : { + "type" : "CodePackage", + "id" : "acm024522jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024523jsd" ] + }, + "acm024523jsd" : { + "type" : "CodePackage", + "id" : "acm024523jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024524jsd" ] + }, + "acm024524jsd" : { + "type" : "CodePackage", + "id" : "acm024524jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024519jsd" ] + }, + "acm024525jsd" : { + "type" : "ControlElement", + "id" : "acm024525jsd", + "name" : "provideExamplesForCorrectResultTest" + }, + "acm024526jsd" : { + "type" : "ControlElement", + "id" : "acm024526jsd", + "name" : "provideInvalidInput" + }, + "acm024527jsd" : { + "type" : "ControlElement", + "id" : "acm024527jsd", + "name" : "grobidPerformSearchCorrectResultTest" + }, + "acm024528jsd" : { + "type" : "ControlElement", + "id" : "acm024528jsd", + "name" : "grobidPerformSearchCorrectlySplitsStringTest" + }, + "acm024529jsd" : { + "type" : "ControlElement", + "id" : "acm024529jsd", + "name" : "grobidPerformSearchWithEmptyStringsTest" + }, + "acm024530jsd" : { + "type" : "ControlElement", + "id" : "acm024530jsd", + "name" : "grobidPerformSearchWithInvalidDataTest" + }, + "acm024531jsd" : { + "type" : "ControlElement", + "id" : "acm024531jsd", + "name" : "performSearchThrowsExceptionInCaseOfConnectionIssues" + }, + "acm024532jsd" : { + "type" : "ClassUnit", + "id" : "acm024532jsd", + "name" : "GrobidCitationFetcherTest", + "compilationUnitId" : "acm024519jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm013045jsd", "acm013062jsd", "acm014398jsd", "acm018267jsd" ], + "content" : [ "acm024525jsd", "acm024526jsd", "acm024527jsd", "acm024528jsd", "acm024529jsd", "acm024530jsd", "acm024531jsd" ] + }, + "acm024533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024533jsd", + "name" : "GvkFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024547jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024534jsd" : { + "type" : "CodePackage", + "id" : "acm024534jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024535jsd" ] + }, + "acm024535jsd" : { + "type" : "CodePackage", + "id" : "acm024535jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024536jsd" ] + }, + "acm024536jsd" : { + "type" : "CodePackage", + "id" : "acm024536jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024537jsd" ] + }, + "acm024537jsd" : { + "type" : "CodePackage", + "id" : "acm024537jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024538jsd" ] + }, + "acm024538jsd" : { + "type" : "CodePackage", + "id" : "acm024538jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024533jsd" ] + }, + "acm024539jsd" : { + "type" : "ControlElement", + "id" : "acm024539jsd", + "name" : "setUp" + }, + "acm024540jsd" : { + "type" : "ControlElement", + "id" : "acm024540jsd", + "name" : "testGetName" + }, + "acm024541jsd" : { + "type" : "ControlElement", + "id" : "acm024541jsd", + "name" : "simpleSearchQueryURLCorrect" + }, + "acm024542jsd" : { + "type" : "ControlElement", + "id" : "acm024542jsd", + "name" : "complexSearchQueryURLCorrect" + }, + "acm024543jsd" : { + "type" : "ControlElement", + "id" : "acm024543jsd", + "name" : "testPerformSearchMatchingMultipleEntries" + }, + "acm024544jsd" : { + "type" : "ControlElement", + "id" : "acm024544jsd", + "name" : "testPerformSearch591166003" + }, + "acm024545jsd" : { + "type" : "ControlElement", + "id" : "acm024545jsd", + "name" : "testPerformSearch66391437X" + }, + "acm024546jsd" : { + "type" : "ControlElement", + "id" : "acm024546jsd", + "name" : "testPerformSearchEmpty" + }, + "acm024547jsd" : { + "type" : "ClassUnit", + "id" : "acm024547jsd", + "name" : "GvkFetcherTest", + "compilationUnitId" : "acm024533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013073jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024539jsd", "acm024540jsd", "acm024541jsd", "acm024542jsd", "acm024543jsd", "acm024544jsd", "acm024545jsd", "acm024546jsd" ] + }, + "acm024548jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024548jsd", + "name" : "IEEETest", + "parentId" : "acm012613jsd", + "content" : [ "acm024569jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024549jsd" : { + "type" : "CodePackage", + "id" : "acm024549jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024550jsd" ] + }, + "acm024550jsd" : { + "type" : "CodePackage", + "id" : "acm024550jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024551jsd" ] + }, + "acm024551jsd" : { + "type" : "CodePackage", + "id" : "acm024551jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024552jsd" ] + }, + "acm024552jsd" : { + "type" : "CodePackage", + "id" : "acm024552jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024553jsd" ] + }, + "acm024553jsd" : { + "type" : "CodePackage", + "id" : "acm024553jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024548jsd" ] + }, + "acm024554jsd" : { + "type" : "ControlElement", + "id" : "acm024554jsd", + "name" : "setUp" + }, + "acm024555jsd" : { + "type" : "ControlElement", + "id" : "acm024555jsd", + "name" : "findByDOI" + }, + "acm024556jsd" : { + "type" : "ControlElement", + "id" : "acm024556jsd", + "name" : "findByDocumentUrl" + }, + "acm024557jsd" : { + "type" : "ControlElement", + "id" : "acm024557jsd", + "name" : "findByURL" + }, + "acm024558jsd" : { + "type" : "ControlElement", + "id" : "acm024558jsd", + "name" : "findByOldURL" + }, + "acm024559jsd" : { + "type" : "ControlElement", + "id" : "acm024559jsd", + "name" : "findByDOIButNotURL" + }, + "acm024560jsd" : { + "type" : "ControlElement", + "id" : "acm024560jsd", + "name" : "notFoundByURL" + }, + "acm024561jsd" : { + "type" : "ControlElement", + "id" : "acm024561jsd", + "name" : "notFoundByDOI" + }, + "acm024562jsd" : { + "type" : "ControlElement", + "id" : "acm024562jsd", + "name" : "searchResultHasNoKeywordTerms" + }, + "acm024563jsd" : { + "type" : "ControlElement", + "id" : "acm024563jsd", + "name" : "searchByPlainQueryFindsEntry" + }, + "acm024564jsd" : { + "type" : "ControlElement", + "id" : "acm024564jsd", + "name" : "searchByQuotedQueryFindsEntry" + }, + "acm024565jsd" : { + "type" : "ControlElement", + "id" : "acm024565jsd", + "name" : "getFetcher" + }, + "acm024566jsd" : { + "type" : "ControlElement", + "id" : "acm024566jsd", + "name" : "getTestAuthors" + }, + "acm024567jsd" : { + "type" : "ControlElement", + "id" : "acm024567jsd", + "name" : "getTestJournal" + }, + "acm024568jsd" : { + "type" : "ControlElement", + "id" : "acm024568jsd", + "name" : "getPagedFetcher" + }, + "acm024569jsd" : { + "type" : "ClassUnit", + "id" : "acm024569jsd", + "name" : "IEEETest", + "compilationUnitId" : "acm024548jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd", "acm024781jsd" ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm012495jsd", "acm012571jsd", "acm013090jsd", "acm018267jsd" ], + "content" : [ "acm024554jsd", "acm024555jsd", "acm024556jsd", "acm024557jsd", "acm024558jsd", "acm024559jsd", "acm024560jsd", "acm024561jsd", "acm024562jsd", "acm024563jsd", "acm024564jsd", "acm024565jsd", "acm024566jsd", "acm024567jsd", "acm024568jsd" ] + }, + "acm024570jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024570jsd", + "name" : "INSPIREFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024580jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024571jsd" : { + "type" : "CodePackage", + "id" : "acm024571jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024572jsd" ] + }, + "acm024572jsd" : { + "type" : "CodePackage", + "id" : "acm024572jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024573jsd" ] + }, + "acm024573jsd" : { + "type" : "CodePackage", + "id" : "acm024573jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024574jsd" ] + }, + "acm024574jsd" : { + "type" : "CodePackage", + "id" : "acm024574jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024575jsd" ] + }, + "acm024575jsd" : { + "type" : "CodePackage", + "id" : "acm024575jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024570jsd" ] + }, + "acm024576jsd" : { + "type" : "ControlElement", + "id" : "acm024576jsd", + "name" : "setUp" + }, + "acm024577jsd" : { + "type" : "ControlElement", + "id" : "acm024577jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024578jsd" : { + "type" : "ControlElement", + "id" : "acm024578jsd", + "name" : "searchByIdentifierFindsEntry" + }, + "acm024579jsd" : { + "type" : "ControlElement", + "id" : "acm024579jsd", + "name" : "searchByExistingEntry" + }, + "acm024580jsd" : { + "type" : "ClassUnit", + "id" : "acm024580jsd", + "name" : "INSPIREFetcherTest", + "compilationUnitId" : "acm024570jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013105jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024576jsd", "acm024577jsd", "acm024578jsd", "acm024579jsd" ] + }, + "acm024581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024581jsd", + "name" : "IacrEprintFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024606jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024582jsd" : { + "type" : "CodePackage", + "id" : "acm024582jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024583jsd" ] + }, + "acm024583jsd" : { + "type" : "CodePackage", + "id" : "acm024583jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024584jsd" ] + }, + "acm024584jsd" : { + "type" : "CodePackage", + "id" : "acm024584jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024585jsd" ] + }, + "acm024585jsd" : { + "type" : "CodePackage", + "id" : "acm024585jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024586jsd" ] + }, + "acm024586jsd" : { + "type" : "CodePackage", + "id" : "acm024586jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024581jsd" ] + }, + "acm024587jsd" : { + "type" : "ControlElement", + "id" : "acm024587jsd", + "name" : "setUp" + }, + "acm024588jsd" : { + "type" : "ControlElement", + "id" : "acm024588jsd", + "name" : "searchByIdWithValidId1" + }, + "acm024589jsd" : { + "type" : "ControlElement", + "id" : "acm024589jsd", + "name" : "searchByIdWithValidId2" + }, + "acm024590jsd" : { + "type" : "ControlElement", + "id" : "acm024590jsd", + "name" : "searchByIdWithValidIdAndNonAsciiChars" + }, + "acm024591jsd" : { + "type" : "ControlElement", + "id" : "acm024591jsd", + "name" : "searchByIdWithEmptyIdFails" + }, + "acm024592jsd" : { + "type" : "ControlElement", + "id" : "acm024592jsd", + "name" : "searchByIdWithInvalidReportNumberFails" + }, + "acm024593jsd" : { + "type" : "ControlElement", + "id" : "acm024593jsd", + "name" : "searchByIdWithInvalidYearFails" + }, + "acm024594jsd" : { + "type" : "ControlElement", + "id" : "acm024594jsd", + "name" : "searchByIdWithInvalidIdFails" + }, + "acm024595jsd" : { + "type" : "ControlElement", + "id" : "acm024595jsd", + "name" : "searchForNonexistentIdFails" + }, + "acm024596jsd" : { + "type" : "ControlElement", + "id" : "acm024596jsd", + "name" : "testGetName" + }, + "acm024597jsd" : { + "type" : "ControlElement", + "id" : "acm024597jsd", + "name" : "searchByIdForWithdrawnPaperFails" + }, + "acm024598jsd" : { + "type" : "ControlElement", + "id" : "acm024598jsd", + "name" : "searchByIdWithOldHtmlFormatAndCheckDate" + }, + "acm024599jsd" : { + "type" : "ControlElement", + "id" : "acm024599jsd", + "name" : "searchByIdWithOldHtmlFormatWithoutDateCheck" + }, + "acm024600jsd" : { + "type" : "ControlElement", + "id" : "acm024600jsd", + "name" : "getIdsFor" + }, + "acm024601jsd" : { + "type" : "ControlElement", + "id" : "acm024601jsd", + "name" : "allNonWithdrawnIdsWithOldHtmlFormat" + }, + "acm024602jsd" : { + "type" : "ControlElement", + "id" : "acm024602jsd", + "name" : "getFulltextWithVersion" + }, + "acm024603jsd" : { + "type" : "ControlElement", + "id" : "acm024603jsd", + "name" : "getFulltextWithoutVersion" + }, + "acm024604jsd" : { + "type" : "ControlElement", + "id" : "acm024604jsd", + "name" : "getFulltextWithoutUrl" + }, + "acm024605jsd" : { + "type" : "ControlElement", + "id" : "acm024605jsd", + "name" : "getFulltextWithNonIACRUrl" + }, + "acm024606jsd" : { + "type" : "ClassUnit", + "id" : "acm024606jsd", + "name" : "IacrEprintFetcherTest", + "compilationUnitId" : "acm024581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013125jsd", "acm018267jsd" ], + "content" : [ "acm024587jsd", "acm024588jsd", "acm024589jsd", "acm024590jsd", "acm024591jsd", "acm024592jsd", "acm024593jsd", "acm024594jsd", "acm024595jsd", "acm024596jsd", "acm024597jsd", "acm024598jsd", "acm024599jsd", "acm024600jsd", "acm024601jsd", "acm024602jsd", "acm024603jsd", "acm024604jsd", "acm024605jsd" ] + }, + "acm024607jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024607jsd", + "name" : "JstorFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024623jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024608jsd" : { + "type" : "CodePackage", + "id" : "acm024608jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024609jsd" ] + }, + "acm024609jsd" : { + "type" : "CodePackage", + "id" : "acm024609jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024610jsd" ] + }, + "acm024610jsd" : { + "type" : "CodePackage", + "id" : "acm024610jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024611jsd" ] + }, + "acm024611jsd" : { + "type" : "CodePackage", + "id" : "acm024611jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024612jsd" ] + }, + "acm024612jsd" : { + "type" : "CodePackage", + "id" : "acm024612jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024607jsd" ] + }, + "acm024613jsd" : { + "type" : "ControlElement", + "id" : "acm024613jsd", + "name" : "searchByTitle" + }, + "acm024614jsd" : { + "type" : "ControlElement", + "id" : "acm024614jsd", + "name" : "searchById" + }, + "acm024615jsd" : { + "type" : "ControlElement", + "id" : "acm024615jsd", + "name" : "searchByUrlUsingId" + }, + "acm024616jsd" : { + "type" : "ControlElement", + "id" : "acm024616jsd", + "name" : "fetchPDF" + }, + "acm024617jsd" : { + "type" : "ControlElement", + "id" : "acm024617jsd", + "name" : "getFetcher" + }, + "acm024618jsd" : { + "type" : "ControlElement", + "id" : "acm024618jsd", + "name" : "getTestAuthors" + }, + "acm024619jsd" : { + "type" : "ControlElement", + "id" : "acm024619jsd", + "name" : "getTestJournal" + }, + "acm024620jsd" : { + "type" : "ControlElement", + "id" : "acm024620jsd", + "name" : "supportsYearRangeSearch" + }, + "acm024621jsd" : { + "type" : "ControlElement", + "id" : "acm024621jsd", + "name" : "supportsJournalSearch" + }, + "acm024622jsd" : { + "type" : "ControlElement", + "id" : "acm024622jsd", + "name" : "supportsYearSearch" + }, + "acm024623jsd" : { + "type" : "ClassUnit", + "id" : "acm024623jsd", + "name" : "JstorFetcherTest", + "compilationUnitId" : "acm024607jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024781jsd" ], + "datatypeReferencesIds" : [ "acm012571jsd", "acm013140jsd", "acm018267jsd" ], + "content" : [ "acm024613jsd", "acm024614jsd", "acm024615jsd", "acm024616jsd", "acm024617jsd", "acm024618jsd", "acm024619jsd", "acm024620jsd", "acm024621jsd", "acm024622jsd" ] + }, + "acm024624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024624jsd", + "name" : "LibraryOfCongressTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024634jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024625jsd" : { + "type" : "CodePackage", + "id" : "acm024625jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024626jsd" ] + }, + "acm024626jsd" : { + "type" : "CodePackage", + "id" : "acm024626jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024627jsd" ] + }, + "acm024627jsd" : { + "type" : "CodePackage", + "id" : "acm024627jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024628jsd" ] + }, + "acm024628jsd" : { + "type" : "CodePackage", + "id" : "acm024628jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024629jsd" ] + }, + "acm024629jsd" : { + "type" : "CodePackage", + "id" : "acm024629jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024624jsd" ] + }, + "acm024630jsd" : { + "type" : "ControlElement", + "id" : "acm024630jsd", + "name" : "setUp" + }, + "acm024631jsd" : { + "type" : "ControlElement", + "id" : "acm024631jsd", + "name" : "performSearchById" + }, + "acm024632jsd" : { + "type" : "ControlElement", + "id" : "acm024632jsd", + "name" : "performSearchByEmptyId" + }, + "acm024633jsd" : { + "type" : "ControlElement", + "id" : "acm024633jsd", + "name" : "performSearchByInvalidId" + }, + "acm024634jsd" : { + "type" : "ClassUnit", + "id" : "acm024634jsd", + "name" : "LibraryOfCongressTest", + "compilationUnitId" : "acm024624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm013151jsd", "acm018267jsd", "acm018813jsd", "acm020774jsd" ], + "content" : [ "acm024630jsd", "acm024631jsd", "acm024632jsd", "acm024633jsd" ] + }, + "acm024635jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024635jsd", + "name" : "MathSciNetTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024646jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024636jsd" : { + "type" : "CodePackage", + "id" : "acm024636jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024637jsd" ] + }, + "acm024637jsd" : { + "type" : "CodePackage", + "id" : "acm024637jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024638jsd" ] + }, + "acm024638jsd" : { + "type" : "CodePackage", + "id" : "acm024638jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024639jsd" ] + }, + "acm024639jsd" : { + "type" : "CodePackage", + "id" : "acm024639jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024640jsd" ] + }, + "acm024640jsd" : { + "type" : "CodePackage", + "id" : "acm024640jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024635jsd" ] + }, + "acm024641jsd" : { + "type" : "ControlElement", + "id" : "acm024641jsd", + "name" : "setUp" + }, + "acm024642jsd" : { + "type" : "ControlElement", + "id" : "acm024642jsd", + "name" : "searchByEntryFindsEntry" + }, + "acm024643jsd" : { + "type" : "ControlElement", + "id" : "acm024643jsd", + "name" : "searchByIdInEntryFindsEntry" + }, + "acm024644jsd" : { + "type" : "ControlElement", + "id" : "acm024644jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024645jsd" : { + "type" : "ControlElement", + "id" : "acm024645jsd", + "name" : "searchByIdFindsEntry" + }, + "acm024646jsd" : { + "type" : "ClassUnit", + "id" : "acm024646jsd", + "name" : "MathSciNetTest", + "compilationUnitId" : "acm024635jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013165jsd", "acm018267jsd" ], + "content" : [ "acm024641jsd", "acm024642jsd", "acm024643jsd", "acm024644jsd", "acm024645jsd" ] + }, + "acm024647jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024647jsd", + "name" : "MedlineFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024665jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024648jsd" : { + "type" : "CodePackage", + "id" : "acm024648jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024649jsd" ] + }, + "acm024649jsd" : { + "type" : "CodePackage", + "id" : "acm024649jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024650jsd" ] + }, + "acm024650jsd" : { + "type" : "CodePackage", + "id" : "acm024650jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024651jsd" ] + }, + "acm024651jsd" : { + "type" : "CodePackage", + "id" : "acm024651jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024652jsd" ] + }, + "acm024652jsd" : { + "type" : "CodePackage", + "id" : "acm024652jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024647jsd" ] + }, + "acm024653jsd" : { + "type" : "ControlElement", + "id" : "acm024653jsd", + "name" : "setUp" + }, + "acm024654jsd" : { + "type" : "ControlElement", + "id" : "acm024654jsd", + "name" : "testGetName" + }, + "acm024655jsd" : { + "type" : "ControlElement", + "id" : "acm024655jsd", + "name" : "testSearchByIDWijedasa" + }, + "acm024656jsd" : { + "type" : "ControlElement", + "id" : "acm024656jsd", + "name" : "testSearchByIDEndharti" + }, + "acm024657jsd" : { + "type" : "ControlElement", + "id" : "acm024657jsd", + "name" : "testSearchByIDIchikawa" + }, + "acm024658jsd" : { + "type" : "ControlElement", + "id" : "acm024658jsd", + "name" : "testSearchByIDSari" + }, + "acm024659jsd" : { + "type" : "ControlElement", + "id" : "acm024659jsd", + "name" : "testMultipleEntries" + }, + "acm024660jsd" : { + "type" : "ControlElement", + "id" : "acm024660jsd", + "name" : "testWithLuceneQueryAuthorDate" + }, + "acm024661jsd" : { + "type" : "ControlElement", + "id" : "acm024661jsd", + "name" : "testWithLuceneQueryAuthorDateRange" + }, + "acm024662jsd" : { + "type" : "ControlElement", + "id" : "acm024662jsd", + "name" : "testInvalidSearchTerm" + }, + "acm024663jsd" : { + "type" : "ControlElement", + "id" : "acm024663jsd", + "name" : "testEmptyEntryList" + }, + "acm024664jsd" : { + "type" : "ControlElement", + "id" : "acm024664jsd", + "name" : "testEmptyInput" + }, + "acm024665jsd" : { + "type" : "ClassUnit", + "id" : "acm024665jsd", + "name" : "MedlineFetcherTest", + "compilationUnitId" : "acm024647jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm013181jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024653jsd", "acm024654jsd", "acm024655jsd", "acm024656jsd", "acm024657jsd", "acm024658jsd", "acm024659jsd", "acm024660jsd", "acm024661jsd", "acm024662jsd", "acm024663jsd", "acm024664jsd" ] + }, + "acm024666jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024666jsd", + "name" : "MedraTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024677jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024667jsd" : { + "type" : "CodePackage", + "id" : "acm024667jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024668jsd" ] + }, + "acm024668jsd" : { + "type" : "CodePackage", + "id" : "acm024668jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024669jsd" ] + }, + "acm024669jsd" : { + "type" : "CodePackage", + "id" : "acm024669jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024670jsd" ] + }, + "acm024670jsd" : { + "type" : "CodePackage", + "id" : "acm024670jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024671jsd" ] + }, + "acm024671jsd" : { + "type" : "CodePackage", + "id" : "acm024671jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024666jsd" ] + }, + "acm024672jsd" : { + "type" : "ControlElement", + "id" : "acm024672jsd", + "name" : "getDoiBibEntryPairs" + }, + "acm024673jsd" : { + "type" : "ControlElement", + "id" : "acm024673jsd", + "name" : "testGetName" + }, + "acm024674jsd" : { + "type" : "ControlElement", + "id" : "acm024674jsd", + "name" : "testPerformSearchEmptyDOI" + }, + "acm024675jsd" : { + "type" : "ControlElement", + "id" : "acm024675jsd", + "name" : "testPerformNonExistent" + }, + "acm024676jsd" : { + "type" : "ControlElement", + "id" : "acm024676jsd", + "name" : "testDoiBibEntryPairs" + }, + "acm024677jsd" : { + "type" : "ClassUnit", + "id" : "acm024677jsd", + "name" : "MedraTest", + "compilationUnitId" : "acm024666jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012314jsd", "acm013196jsd", "acm018267jsd" ], + "content" : [ "acm024672jsd", "acm024673jsd", "acm024674jsd", "acm024675jsd", "acm024676jsd" ] + }, + "acm024678jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024678jsd", + "name" : "MrDLibFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024688jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024679jsd" : { + "type" : "CodePackage", + "id" : "acm024679jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024680jsd" ] + }, + "acm024680jsd" : { + "type" : "CodePackage", + "id" : "acm024680jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024681jsd" ] + }, + "acm024681jsd" : { + "type" : "CodePackage", + "id" : "acm024681jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024682jsd" ] + }, + "acm024682jsd" : { + "type" : "CodePackage", + "id" : "acm024682jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024683jsd" ] + }, + "acm024683jsd" : { + "type" : "CodePackage", + "id" : "acm024683jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024678jsd" ] + }, + "acm024684jsd" : { + "type" : "ControlElement", + "id" : "acm024684jsd", + "name" : "setUp" + }, + "acm024685jsd" : { + "type" : "ControlElement", + "id" : "acm024685jsd", + "name" : "testPerformSearch" + }, + "acm024686jsd" : { + "type" : "ControlElement", + "id" : "acm024686jsd", + "name" : "testPerformSearchForHornecker2006" + }, + "acm024687jsd" : { + "type" : "ControlElement", + "id" : "acm024687jsd", + "name" : "testGetName" + }, + "acm024688jsd" : { + "type" : "ClassUnit", + "id" : "acm024688jsd", + "name" : "MrDLibFetcherTest", + "compilationUnitId" : "acm024678jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013210jsd", "acm018267jsd", "acm021113jsd" ], + "content" : [ "acm024684jsd", "acm024685jsd", "acm024686jsd", "acm024687jsd" ] + }, + "acm024689jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024689jsd", + "name" : "OpenAccessDoiTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024700jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024690jsd" : { + "type" : "CodePackage", + "id" : "acm024690jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024691jsd" ] + }, + "acm024691jsd" : { + "type" : "CodePackage", + "id" : "acm024691jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024692jsd" ] + }, + "acm024692jsd" : { + "type" : "CodePackage", + "id" : "acm024692jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024693jsd" ] + }, + "acm024693jsd" : { + "type" : "CodePackage", + "id" : "acm024693jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024694jsd" ] + }, + "acm024694jsd" : { + "type" : "CodePackage", + "id" : "acm024694jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024689jsd" ] + }, + "acm024695jsd" : { + "type" : "ControlElement", + "id" : "acm024695jsd", + "name" : "setUp" + }, + "acm024696jsd" : { + "type" : "ControlElement", + "id" : "acm024696jsd", + "name" : "findByDOI" + }, + "acm024697jsd" : { + "type" : "ControlElement", + "id" : "acm024697jsd", + "name" : "notFoundByDOI" + }, + "acm024698jsd" : { + "type" : "ControlElement", + "id" : "acm024698jsd", + "name" : "entryWithoutDoi" + }, + "acm024699jsd" : { + "type" : "ControlElement", + "id" : "acm024699jsd", + "name" : "trustLevel" + }, + "acm024700jsd" : { + "type" : "ClassUnit", + "id" : "acm024700jsd", + "name" : "OpenAccessDoiTest", + "compilationUnitId" : "acm024689jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013220jsd", "acm018267jsd" ], + "content" : [ "acm024695jsd", "acm024696jsd", "acm024697jsd", "acm024698jsd", "acm024699jsd" ] + }, + "acm024701jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024701jsd", + "name" : "PagedSearchFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024709jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024702jsd" : { + "type" : "CodePackage", + "id" : "acm024702jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024703jsd" ] + }, + "acm024703jsd" : { + "type" : "CodePackage", + "id" : "acm024703jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024704jsd" ] + }, + "acm024704jsd" : { + "type" : "CodePackage", + "id" : "acm024704jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024705jsd" ] + }, + "acm024705jsd" : { + "type" : "CodePackage", + "id" : "acm024705jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024706jsd" ] + }, + "acm024706jsd" : { + "type" : "CodePackage", + "id" : "acm024706jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024701jsd" ] + }, + "acm024707jsd" : { + "type" : "ControlElement", + "id" : "acm024707jsd", + "name" : "pageSearchReturnsUniqueResultsPerPage" + }, + "acm024708jsd" : { + "type" : "ControlElement", + "id" : "acm024708jsd", + "name" : "getPagedFetcher" + }, + "acm024709jsd" : { + "type" : "InterfaceUnit", + "id" : "acm024709jsd", + "name" : "PagedSearchFetcherTest", + "compilationUnitId" : "acm024701jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012495jsd", "acm018267jsd", "acm020222jsd" ], + "content" : [ "acm024707jsd", "acm024708jsd" ] + }, + "acm024710jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024710jsd", + "name" : "PicaXmlParserTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024721jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024711jsd" : { + "type" : "CodePackage", + "id" : "acm024711jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024712jsd" ] + }, + "acm024712jsd" : { + "type" : "CodePackage", + "id" : "acm024712jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024713jsd" ] + }, + "acm024713jsd" : { + "type" : "CodePackage", + "id" : "acm024713jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024714jsd" ] + }, + "acm024714jsd" : { + "type" : "CodePackage", + "id" : "acm024714jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024715jsd" ] + }, + "acm024715jsd" : { + "type" : "CodePackage", + "id" : "acm024715jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024710jsd" ] + }, + "acm024716jsd" : { + "type" : "ControlElement", + "id" : "acm024716jsd", + "name" : "doTest" + }, + "acm024717jsd" : { + "type" : "ControlElement", + "id" : "acm024717jsd", + "name" : "emptyResult" + }, + "acm024718jsd" : { + "type" : "ControlElement", + "id" : "acm024718jsd", + "name" : "resultFor797485368" + }, + "acm024719jsd" : { + "type" : "ControlElement", + "id" : "acm024719jsd", + "name" : "testGMP" + }, + "acm024720jsd" : { + "type" : "ControlElement", + "id" : "acm024720jsd", + "name" : "subTitleTest" + }, + "acm024721jsd" : { + "type" : "ClassUnit", + "id" : "acm024721jsd", + "name" : "PicaXmlParserTest", + "compilationUnitId" : "acm024710jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014264jsd", "acm018267jsd", "acm024721jsd" ], + "content" : [ "acm024716jsd", "acm024717jsd", "acm024718jsd", "acm024719jsd", "acm024720jsd" ] + }, + "acm024722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024722jsd", + "name" : "ResearchGateTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024738jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024723jsd" : { + "type" : "CodePackage", + "id" : "acm024723jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024724jsd" ] + }, + "acm024724jsd" : { + "type" : "CodePackage", + "id" : "acm024724jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024725jsd" ] + }, + "acm024725jsd" : { + "type" : "CodePackage", + "id" : "acm024725jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024726jsd" ] + }, + "acm024726jsd" : { + "type" : "CodePackage", + "id" : "acm024726jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024727jsd" ] + }, + "acm024727jsd" : { + "type" : "CodePackage", + "id" : "acm024727jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024722jsd" ] + }, + "acm024728jsd" : { + "type" : "ControlElement", + "id" : "acm024728jsd", + "name" : "setUp" + }, + "acm024729jsd" : { + "type" : "ControlElement", + "id" : "acm024729jsd", + "name" : "fullTextFoundByDOI" + }, + "acm024730jsd" : { + "type" : "ControlElement", + "id" : "acm024730jsd", + "name" : "fullTextNotFoundByDOI" + }, + "acm024731jsd" : { + "type" : "ControlElement", + "id" : "acm024731jsd", + "name" : "getDocumentByTitle" + }, + "acm024732jsd" : { + "type" : "ControlElement", + "id" : "acm024732jsd", + "name" : "getDocumentByDOI" + }, + "acm024733jsd" : { + "type" : "ControlElement", + "id" : "acm024733jsd", + "name" : "trustLevel" + }, + "acm024734jsd" : { + "type" : "ControlElement", + "id" : "acm024734jsd", + "name" : "performSearchWithString" + }, + "acm024735jsd" : { + "type" : "ControlElement", + "id" : "acm024735jsd", + "name" : "performSearchWithLuceneQuery" + }, + "acm024736jsd" : { + "type" : "ControlElement", + "id" : "acm024736jsd", + "name" : "performSearchWithBibEntry" + }, + "acm024737jsd" : { + "type" : "ControlElement", + "id" : "acm024737jsd", + "name" : "performSearchWithTitleWithCurlyBraces" + }, + "acm024738jsd" : { + "type" : "ClassUnit", + "id" : "acm024738jsd", + "name" : "ResearchGateTest", + "compilationUnitId" : "acm024722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013238jsd", "acm018267jsd", "acm019079jsd" ], + "content" : [ "acm024728jsd", "acm024729jsd", "acm024730jsd", "acm024731jsd", "acm024732jsd", "acm024733jsd", "acm024734jsd", "acm024735jsd", "acm024736jsd", "acm024737jsd" ] + }, + "acm024739jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024739jsd", + "name" : "RfcFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024754jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024740jsd" : { + "type" : "CodePackage", + "id" : "acm024740jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024741jsd" ] + }, + "acm024741jsd" : { + "type" : "CodePackage", + "id" : "acm024741jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024742jsd" ] + }, + "acm024742jsd" : { + "type" : "CodePackage", + "id" : "acm024742jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024743jsd" ] + }, + "acm024743jsd" : { + "type" : "CodePackage", + "id" : "acm024743jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024744jsd" ] + }, + "acm024744jsd" : { + "type" : "CodePackage", + "id" : "acm024744jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024739jsd" ] + }, + "acm024745jsd" : { + "type" : "ControlElement", + "id" : "acm024745jsd", + "name" : "setUp" + }, + "acm024746jsd" : { + "type" : "ControlElement", + "id" : "acm024746jsd", + "name" : "getNameReturnsEqualIdName" + }, + "acm024747jsd" : { + "type" : "ControlElement", + "id" : "acm024747jsd", + "name" : "performSearchByIdFindsEntryWithDraftIdentifier" + }, + "acm024748jsd" : { + "type" : "ControlElement", + "id" : "acm024748jsd", + "name" : "performSearchByIdFindsEntryWithRfcPrefix" + }, + "acm024749jsd" : { + "type" : "ControlElement", + "id" : "acm024749jsd", + "name" : "performSearchByIdFindsEntryWithoutRfcPrefix" + }, + "acm024750jsd" : { + "type" : "ControlElement", + "id" : "acm024750jsd", + "name" : "performSearchByIdFindsNothingWithoutIdentifier" + }, + "acm024751jsd" : { + "type" : "ControlElement", + "id" : "acm024751jsd", + "name" : "performSearchByIdFindsNothingWithValidDraftIdentifier" + }, + "acm024752jsd" : { + "type" : "ControlElement", + "id" : "acm024752jsd", + "name" : "performSearchByIdFindsNothingWithValidIdentifier" + }, + "acm024753jsd" : { + "type" : "ControlElement", + "id" : "acm024753jsd", + "name" : "performSearchByIdFindsNothingWithInvalidIdentifier" + }, + "acm024754jsd" : { + "type" : "ClassUnit", + "id" : "acm024754jsd", + "name" : "RfcFetcherTest", + "compilationUnitId" : "acm024739jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm013250jsd", "acm018267jsd" ], + "content" : [ "acm024745jsd", "acm024746jsd", "acm024747jsd", "acm024748jsd", "acm024749jsd", "acm024750jsd", "acm024751jsd", "acm024752jsd", "acm024753jsd" ] + }, + "acm024755jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024755jsd", + "name" : "ScienceDirectTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024766jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024756jsd" : { + "type" : "CodePackage", + "id" : "acm024756jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024757jsd" ] + }, + "acm024757jsd" : { + "type" : "CodePackage", + "id" : "acm024757jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024758jsd" ] + }, + "acm024758jsd" : { + "type" : "CodePackage", + "id" : "acm024758jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024759jsd" ] + }, + "acm024759jsd" : { + "type" : "CodePackage", + "id" : "acm024759jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024760jsd" ] + }, + "acm024760jsd" : { + "type" : "CodePackage", + "id" : "acm024760jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024755jsd" ] + }, + "acm024761jsd" : { + "type" : "ControlElement", + "id" : "acm024761jsd", + "name" : "setUp" + }, + "acm024762jsd" : { + "type" : "ControlElement", + "id" : "acm024762jsd", + "name" : "findByDoiOldPage" + }, + "acm024763jsd" : { + "type" : "ControlElement", + "id" : "acm024763jsd", + "name" : "findByDoiNewPage" + }, + "acm024764jsd" : { + "type" : "ControlElement", + "id" : "acm024764jsd", + "name" : "findByDoiWorksForBoneArticle" + }, + "acm024765jsd" : { + "type" : "ControlElement", + "id" : "acm024765jsd", + "name" : "notFoundByDoi" + }, + "acm024766jsd" : { + "type" : "ClassUnit", + "id" : "acm024766jsd", + "name" : "ScienceDirectTest", + "compilationUnitId" : "acm024755jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm013263jsd", "acm018267jsd" ], + "content" : [ "acm024761jsd", "acm024762jsd", "acm024763jsd", "acm024764jsd", "acm024765jsd" ] + }, + "acm024767jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024767jsd", + "name" : "SearchBasedFetcherCapabilityTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024781jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024768jsd" : { + "type" : "CodePackage", + "id" : "acm024768jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024769jsd" ] + }, + "acm024769jsd" : { + "type" : "CodePackage", + "id" : "acm024769jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024770jsd" ] + }, + "acm024770jsd" : { + "type" : "CodePackage", + "id" : "acm024770jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024771jsd" ] + }, + "acm024771jsd" : { + "type" : "CodePackage", + "id" : "acm024771jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024772jsd" ] + }, + "acm024772jsd" : { + "type" : "CodePackage", + "id" : "acm024772jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024767jsd" ] + }, + "acm024773jsd" : { + "type" : "ControlElement", + "id" : "acm024773jsd", + "name" : "supportsAuthorSearch" + }, + "acm024774jsd" : { + "type" : "ControlElement", + "id" : "acm024774jsd", + "name" : "supportsYearSearch" + }, + "acm024775jsd" : { + "type" : "ControlElement", + "id" : "acm024775jsd", + "name" : "supportsYearRangeSearch" + }, + "acm024776jsd" : { + "type" : "ControlElement", + "id" : "acm024776jsd", + "name" : "supportsJournalSearch" + }, + "acm024777jsd" : { + "type" : "ControlElement", + "id" : "acm024777jsd", + "name" : "getFetcher" + }, + "acm024778jsd" : { + "type" : "ControlElement", + "id" : "acm024778jsd", + "name" : "getTestAuthors" + }, + "acm024779jsd" : { + "type" : "ControlElement", + "id" : "acm024779jsd", + "name" : "getTestJournal" + }, + "acm024780jsd" : { + "type" : "ControlElement", + "id" : "acm024780jsd", + "name" : "getTestYear" + }, + "acm024781jsd" : { + "type" : "InterfaceUnit", + "id" : "acm024781jsd", + "name" : "SearchBasedFetcherCapabilityTest", + "compilationUnitId" : "acm024767jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012398jsd", "acm012571jsd", "acm018267jsd" ], + "content" : [ "acm024773jsd", "acm024774jsd", "acm024775jsd", "acm024776jsd", "acm024777jsd", "acm024778jsd", "acm024779jsd", "acm024780jsd" ] + }, + "acm024782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024782jsd", + "name" : "SemanticScholarTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024805jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024783jsd" : { + "type" : "CodePackage", + "id" : "acm024783jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024784jsd" ] + }, + "acm024784jsd" : { + "type" : "CodePackage", + "id" : "acm024784jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024785jsd" ] + }, + "acm024785jsd" : { + "type" : "CodePackage", + "id" : "acm024785jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024786jsd" ] + }, + "acm024786jsd" : { + "type" : "CodePackage", + "id" : "acm024786jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024787jsd" ] + }, + "acm024787jsd" : { + "type" : "CodePackage", + "id" : "acm024787jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024782jsd" ] + }, + "acm024788jsd" : { + "type" : "ControlElement", + "id" : "acm024788jsd", + "name" : "setUp" + }, + "acm024789jsd" : { + "type" : "ControlElement", + "id" : "acm024789jsd", + "name" : "getDocument" + }, + "acm024790jsd" : { + "type" : "ControlElement", + "id" : "acm024790jsd", + "name" : "fullTextFindByDOI" + }, + "acm024791jsd" : { + "type" : "ControlElement", + "id" : "acm024791jsd", + "name" : "fullTextFindByDOIAlternate" + }, + "acm024792jsd" : { + "type" : "ControlElement", + "id" : "acm024792jsd", + "name" : "fullTextSearchOnEmptyEntry" + }, + "acm024793jsd" : { + "type" : "ControlElement", + "id" : "acm024793jsd", + "name" : "fullTextNotFoundByDOI" + }, + "acm024794jsd" : { + "type" : "ControlElement", + "id" : "acm024794jsd", + "name" : "fullTextFindByArXiv" + }, + "acm024795jsd" : { + "type" : "ControlElement", + "id" : "acm024795jsd", + "name" : "fullTextEntityWithoutDoi" + }, + "acm024796jsd" : { + "type" : "ControlElement", + "id" : "acm024796jsd", + "name" : "trustLevel" + }, + "acm024797jsd" : { + "type" : "ControlElement", + "id" : "acm024797jsd", + "name" : "getPagedFetcher" + }, + "acm024798jsd" : { + "type" : "ControlElement", + "id" : "acm024798jsd", + "name" : "getURLForQueryWithLucene" + }, + "acm024799jsd" : { + "type" : "ControlElement", + "id" : "acm024799jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024800jsd" : { + "type" : "ControlElement", + "id" : "acm024800jsd", + "name" : "searchByPlainQueryFindsEntry" + }, + "acm024801jsd" : { + "type" : "ControlElement", + "id" : "acm024801jsd", + "name" : "searchByQuotedQueryFindsEntry" + }, + "acm024802jsd" : { + "type" : "ControlElement", + "id" : "acm024802jsd", + "name" : "performSearchByEmptyQuery" + }, + "acm024803jsd" : { + "type" : "ControlElement", + "id" : "acm024803jsd", + "name" : "findByEntry" + }, + "acm024804jsd" : { + "type" : "ControlElement", + "id" : "acm024804jsd", + "name" : "pageSearchReturnsUniqueResultsPerPage" + }, + "acm024805jsd" : { + "type" : "ClassUnit", + "id" : "acm024805jsd", + "name" : "SemanticScholarTest", + "compilationUnitId" : "acm024782jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd" ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012495jsd", "acm013278jsd", "acm018267jsd" ], + "content" : [ "acm024788jsd", "acm024789jsd", "acm024790jsd", "acm024791jsd", "acm024792jsd", "acm024793jsd", "acm024794jsd", "acm024795jsd", "acm024796jsd", "acm024797jsd", "acm024798jsd", "acm024799jsd", "acm024800jsd", "acm024801jsd", "acm024802jsd", "acm024803jsd", "acm024804jsd" ] + }, + "acm024806jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024806jsd", + "name" : "SpringerFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024824jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024807jsd" : { + "type" : "CodePackage", + "id" : "acm024807jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024808jsd" ] + }, + "acm024808jsd" : { + "type" : "CodePackage", + "id" : "acm024808jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024809jsd" ] + }, + "acm024809jsd" : { + "type" : "CodePackage", + "id" : "acm024809jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024810jsd" ] + }, + "acm024810jsd" : { + "type" : "CodePackage", + "id" : "acm024810jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024811jsd" ] + }, + "acm024811jsd" : { + "type" : "CodePackage", + "id" : "acm024811jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024806jsd" ] + }, + "acm024812jsd" : { + "type" : "ControlElement", + "id" : "acm024812jsd", + "name" : "setUp" + }, + "acm024813jsd" : { + "type" : "ControlElement", + "id" : "acm024813jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024814jsd" : { + "type" : "ControlElement", + "id" : "acm024814jsd", + "name" : "testSpringerJSONToBibtex" + }, + "acm024815jsd" : { + "type" : "ControlElement", + "id" : "acm024815jsd", + "name" : "searchByEmptyQueryFindsNothing" + }, + "acm024816jsd" : { + "type" : "ControlElement", + "id" : "acm024816jsd", + "name" : "supportsYearSearch" + }, + "acm024817jsd" : { + "type" : "ControlElement", + "id" : "acm024817jsd", + "name" : "supportsYearRangeSearch" + }, + "acm024818jsd" : { + "type" : "ControlElement", + "id" : "acm024818jsd", + "name" : "supportsPhraseSearch" + }, + "acm024819jsd" : { + "type" : "ControlElement", + "id" : "acm024819jsd", + "name" : "supportsBooleanANDSearch" + }, + "acm024820jsd" : { + "type" : "ControlElement", + "id" : "acm024820jsd", + "name" : "getFetcher" + }, + "acm024821jsd" : { + "type" : "ControlElement", + "id" : "acm024821jsd", + "name" : "getTestAuthors" + }, + "acm024822jsd" : { + "type" : "ControlElement", + "id" : "acm024822jsd", + "name" : "getTestJournal" + }, + "acm024823jsd" : { + "type" : "ControlElement", + "id" : "acm024823jsd", + "name" : "getPagedFetcher" + }, + "acm024824jsd" : { + "type" : "ClassUnit", + "id" : "acm024824jsd", + "name" : "SpringerFetcherTest", + "compilationUnitId" : "acm024806jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm024709jsd", "acm024781jsd" ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm012495jsd", "acm012571jsd", "acm013294jsd", "acm018267jsd" ], + "content" : [ "acm024812jsd", "acm024813jsd", "acm024814jsd", "acm024815jsd", "acm024816jsd", "acm024817jsd", "acm024818jsd", "acm024819jsd", "acm024820jsd", "acm024821jsd", "acm024822jsd", "acm024823jsd" ] + }, + "acm024825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024825jsd", + "name" : "SpringerLinkTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024838jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024826jsd" : { + "type" : "CodePackage", + "id" : "acm024826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024827jsd" ] + }, + "acm024827jsd" : { + "type" : "CodePackage", + "id" : "acm024827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024828jsd" ] + }, + "acm024828jsd" : { + "type" : "CodePackage", + "id" : "acm024828jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024829jsd" ] + }, + "acm024829jsd" : { + "type" : "CodePackage", + "id" : "acm024829jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024830jsd" ] + }, + "acm024830jsd" : { + "type" : "CodePackage", + "id" : "acm024830jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024825jsd" ] + }, + "acm024831jsd" : { + "type" : "ControlElement", + "id" : "acm024831jsd", + "name" : "setUp" + }, + "acm024832jsd" : { + "type" : "ControlElement", + "id" : "acm024832jsd", + "name" : "rejectNullParameter" + }, + "acm024833jsd" : { + "type" : "ControlElement", + "id" : "acm024833jsd", + "name" : "doiNotPresent" + }, + "acm024834jsd" : { + "type" : "ControlElement", + "id" : "acm024834jsd", + "name" : "findByDOI" + }, + "acm024835jsd" : { + "type" : "ControlElement", + "id" : "acm024835jsd", + "name" : "notFoundByDOI" + }, + "acm024836jsd" : { + "type" : "ControlElement", + "id" : "acm024836jsd", + "name" : "entityWithoutDoi" + }, + "acm024837jsd" : { + "type" : "ControlElement", + "id" : "acm024837jsd", + "name" : "trustLevel" + }, + "acm024838jsd" : { + "type" : "ClassUnit", + "id" : "acm024838jsd", + "name" : "SpringerLinkTest", + "compilationUnitId" : "acm024825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012467jsd", "acm013305jsd", "acm018267jsd" ], + "content" : [ "acm024831jsd", "acm024832jsd", "acm024833jsd", "acm024834jsd", "acm024835jsd", "acm024836jsd", "acm024837jsd" ] + }, + "acm024839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024839jsd", + "name" : "TitleFetcherTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024850jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024840jsd" : { + "type" : "CodePackage", + "id" : "acm024840jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024841jsd" ] + }, + "acm024841jsd" : { + "type" : "CodePackage", + "id" : "acm024841jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024842jsd" ] + }, + "acm024842jsd" : { + "type" : "CodePackage", + "id" : "acm024842jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024843jsd" ] + }, + "acm024843jsd" : { + "type" : "CodePackage", + "id" : "acm024843jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024844jsd" ] + }, + "acm024844jsd" : { + "type" : "CodePackage", + "id" : "acm024844jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024839jsd" ] + }, + "acm024845jsd" : { + "type" : "ControlElement", + "id" : "acm024845jsd", + "name" : "setUp" + }, + "acm024846jsd" : { + "type" : "ControlElement", + "id" : "acm024846jsd", + "name" : "testGetName" + }, + "acm024847jsd" : { + "type" : "ControlElement", + "id" : "acm024847jsd", + "name" : "testPerformSearchKopp2007" + }, + "acm024848jsd" : { + "type" : "ControlElement", + "id" : "acm024848jsd", + "name" : "testPerformSearchEmptyTitle" + }, + "acm024849jsd" : { + "type" : "ControlElement", + "id" : "acm024849jsd", + "name" : "testPerformSearchInvalidTitle" + }, + "acm024850jsd" : { + "type" : "ClassUnit", + "id" : "acm024850jsd", + "name" : "TitleFetcherTest", + "compilationUnitId" : "acm024839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013316jsd", "acm018267jsd" ], + "content" : [ "acm024845jsd", "acm024846jsd", "acm024847jsd", "acm024848jsd", "acm024849jsd" ] + }, + "acm024851jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024851jsd", + "name" : "ZbMATHTest", + "parentId" : "acm012613jsd", + "content" : [ "acm024863jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024852jsd" : { + "type" : "CodePackage", + "id" : "acm024852jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024853jsd" ] + }, + "acm024853jsd" : { + "type" : "CodePackage", + "id" : "acm024853jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024854jsd" ] + }, + "acm024854jsd" : { + "type" : "CodePackage", + "id" : "acm024854jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024855jsd" ] + }, + "acm024855jsd" : { + "type" : "CodePackage", + "id" : "acm024855jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024856jsd" ] + }, + "acm024856jsd" : { + "type" : "CodePackage", + "id" : "acm024856jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024851jsd" ] + }, + "acm024857jsd" : { + "type" : "ControlElement", + "id" : "acm024857jsd", + "name" : "setUp" + }, + "acm024858jsd" : { + "type" : "ControlElement", + "id" : "acm024858jsd", + "name" : "searchByQueryFindsEntry" + }, + "acm024859jsd" : { + "type" : "ControlElement", + "id" : "acm024859jsd", + "name" : "searchByIdFindsEntry" + }, + "acm024860jsd" : { + "type" : "ControlElement", + "id" : "acm024860jsd", + "name" : "searchByEntryFindsEntry" + }, + "acm024861jsd" : { + "type" : "ControlElement", + "id" : "acm024861jsd", + "name" : "searchByNoneEntryFindsNothing" + }, + "acm024862jsd" : { + "type" : "ControlElement", + "id" : "acm024862jsd", + "name" : "searchByIdInEntryFindsEntry" + }, + "acm024863jsd" : { + "type" : "ClassUnit", + "id" : "acm024863jsd", + "name" : "ZbMATHTest", + "compilationUnitId" : "acm024851jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013339jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024857jsd", "acm024858jsd", "acm024859jsd", "acm024860jsd", "acm024861jsd", "acm024862jsd" ] + }, + "acm024864jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024864jsd", + "name" : "DoiToBibtexConverterComIsbnFetcherTest", + "parentId" : "acm013346jsd", + "content" : [ "acm024879jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024865jsd" : { + "type" : "CodePackage", + "id" : "acm024865jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024866jsd" ] + }, + "acm024866jsd" : { + "type" : "CodePackage", + "id" : "acm024866jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024867jsd" ] + }, + "acm024867jsd" : { + "type" : "CodePackage", + "id" : "acm024867jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024868jsd" ] + }, + "acm024868jsd" : { + "type" : "CodePackage", + "id" : "acm024868jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024869jsd" ] + }, + "acm024869jsd" : { + "type" : "CodePackage", + "id" : "acm024869jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024870jsd" ] + }, + "acm024870jsd" : { + "type" : "CodePackage", + "id" : "acm024870jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm024864jsd" ] + }, + "acm024871jsd" : { + "type" : "ControlElement", + "id" : "acm024871jsd", + "name" : "setUp" + }, + "acm024872jsd" : { + "type" : "ControlElement", + "id" : "acm024872jsd", + "name" : "testName" + }, + "acm024873jsd" : { + "type" : "ControlElement", + "id" : "acm024873jsd", + "name" : "searchByIdSuccessfulWithShortISBN" + }, + "acm024874jsd" : { + "type" : "ControlElement", + "id" : "acm024874jsd", + "name" : "searchByIdSuccessfulWithLongISBN" + }, + "acm024875jsd" : { + "type" : "ControlElement", + "id" : "acm024875jsd", + "name" : "authorsAreCorrectlyFormatted" + }, + "acm024876jsd" : { + "type" : "ControlElement", + "id" : "acm024876jsd", + "name" : "testIsbnNeitherAvailable" + }, + "acm024877jsd" : { + "type" : "ControlElement", + "id" : "acm024877jsd", + "name" : "searchByIdFailedWithLongISBN" + }, + "acm024878jsd" : { + "type" : "ControlElement", + "id" : "acm024878jsd", + "name" : "searchByIdFailedWithShortISBN" + }, + "acm024879jsd" : { + "type" : "ClassUnit", + "id" : "acm024879jsd", + "name" : "DoiToBibtexConverterComIsbnFetcherTest", + "compilationUnitId" : "acm024864jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm024214jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012314jsd", "acm013355jsd", "acm018267jsd" ], + "content" : [ "acm024871jsd", "acm024872jsd", "acm024873jsd", "acm024874jsd", "acm024875jsd", "acm024876jsd", "acm024877jsd", "acm024878jsd" ] + }, + "acm024880jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024880jsd", + "name" : "EbookDeIsbnFetcherTest", + "parentId" : "acm013346jsd", + "content" : [ "acm024893jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024881jsd" : { + "type" : "CodePackage", + "id" : "acm024881jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024882jsd" ] + }, + "acm024882jsd" : { + "type" : "CodePackage", + "id" : "acm024882jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024883jsd" ] + }, + "acm024883jsd" : { + "type" : "CodePackage", + "id" : "acm024883jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024884jsd" ] + }, + "acm024884jsd" : { + "type" : "CodePackage", + "id" : "acm024884jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024885jsd" ] + }, + "acm024885jsd" : { + "type" : "CodePackage", + "id" : "acm024885jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024886jsd" ] + }, + "acm024886jsd" : { + "type" : "CodePackage", + "id" : "acm024886jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm024880jsd" ] + }, + "acm024887jsd" : { + "type" : "ControlElement", + "id" : "acm024887jsd", + "name" : "setUp" + }, + "acm024888jsd" : { + "type" : "ControlElement", + "id" : "acm024888jsd", + "name" : "testName" + }, + "acm024889jsd" : { + "type" : "ControlElement", + "id" : "acm024889jsd", + "name" : "searchByIdSuccessfulWithShortISBN" + }, + "acm024890jsd" : { + "type" : "ControlElement", + "id" : "acm024890jsd", + "name" : "searchByIdSuccessfulWithLongISBN" + }, + "acm024891jsd" : { + "type" : "ControlElement", + "id" : "acm024891jsd", + "name" : "authorsAreCorrectlyFormatted" + }, + "acm024892jsd" : { + "type" : "ControlElement", + "id" : "acm024892jsd", + "name" : "searchForValidButNotFoundISBN" + }, + "acm024893jsd" : { + "type" : "ClassUnit", + "id" : "acm024893jsd", + "name" : "EbookDeIsbnFetcherTest", + "compilationUnitId" : "acm024880jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm024214jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012314jsd", "acm013367jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm024887jsd", "acm024888jsd", "acm024889jsd", "acm024890jsd", "acm024891jsd", "acm024892jsd" ] + }, + "acm024894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024894jsd", + "name" : "IsbnFetcherTest", + "parentId" : "acm013346jsd", + "content" : [ "acm024911jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024895jsd" : { + "type" : "CodePackage", + "id" : "acm024895jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024896jsd" ] + }, + "acm024896jsd" : { + "type" : "CodePackage", + "id" : "acm024896jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024897jsd" ] + }, + "acm024897jsd" : { + "type" : "CodePackage", + "id" : "acm024897jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024898jsd" ] + }, + "acm024898jsd" : { + "type" : "CodePackage", + "id" : "acm024898jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024899jsd" ] + }, + "acm024899jsd" : { + "type" : "CodePackage", + "id" : "acm024899jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024900jsd" ] + }, + "acm024900jsd" : { + "type" : "CodePackage", + "id" : "acm024900jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm024894jsd" ] + }, + "acm024901jsd" : { + "type" : "ControlElement", + "id" : "acm024901jsd", + "name" : "setUp" + }, + "acm024902jsd" : { + "type" : "ControlElement", + "id" : "acm024902jsd", + "name" : "testName" + }, + "acm024903jsd" : { + "type" : "ControlElement", + "id" : "acm024903jsd", + "name" : "searchByIdSuccessfulWithShortISBN" + }, + "acm024904jsd" : { + "type" : "ControlElement", + "id" : "acm024904jsd", + "name" : "searchByIdSuccessfulWithLongISBN" + }, + "acm024905jsd" : { + "type" : "ControlElement", + "id" : "acm024905jsd", + "name" : "searchByIdReturnsEmptyWithEmptyISBN" + }, + "acm024906jsd" : { + "type" : "ControlElement", + "id" : "acm024906jsd", + "name" : "searchByIdThrowsExceptionForShortInvalidISBN" + }, + "acm024907jsd" : { + "type" : "ControlElement", + "id" : "acm024907jsd", + "name" : "searchByIdThrowsExceptionForLongInvalidISB" + }, + "acm024908jsd" : { + "type" : "ControlElement", + "id" : "acm024908jsd", + "name" : "searchByIdThrowsExceptionForInvalidISBN" + }, + "acm024909jsd" : { + "type" : "ControlElement", + "id" : "acm024909jsd", + "name" : "searchByEntryWithISBNSuccessful" + }, + "acm024910jsd" : { + "type" : "ControlElement", + "id" : "acm024910jsd", + "name" : "searchForIsbnAvailableAtOttoBibButNonOnEbookDe" + }, + "acm024911jsd" : { + "type" : "ClassUnit", + "id" : "acm024911jsd", + "name" : "IsbnFetcherTest", + "compilationUnitId" : "acm024894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm013382jsd", "acm018267jsd" ], + "content" : [ "acm024901jsd", "acm024902jsd", "acm024903jsd", "acm024904jsd", "acm024905jsd", "acm024906jsd", "acm024907jsd", "acm024908jsd", "acm024909jsd", "acm024910jsd" ] + }, + "acm024912jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024912jsd", + "name" : "OpenLibraryIsbnFetcherTest", + "parentId" : "acm013346jsd", + "content" : [ "acm024925jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "isbntobibtex" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024913jsd" : { + "type" : "CodePackage", + "id" : "acm024913jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024914jsd" ] + }, + "acm024914jsd" : { + "type" : "CodePackage", + "id" : "acm024914jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024915jsd" ] + }, + "acm024915jsd" : { + "type" : "CodePackage", + "id" : "acm024915jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024916jsd" ] + }, + "acm024916jsd" : { + "type" : "CodePackage", + "id" : "acm024916jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024917jsd" ] + }, + "acm024917jsd" : { + "type" : "CodePackage", + "id" : "acm024917jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024918jsd" ] + }, + "acm024918jsd" : { + "type" : "CodePackage", + "id" : "acm024918jsd", + "name" : "isbntobibtex", + "parentId" : null, + "content" : [ "acm024912jsd" ] + }, + "acm024919jsd" : { + "type" : "ControlElement", + "id" : "acm024919jsd", + "name" : "setUp" + }, + "acm024920jsd" : { + "type" : "ControlElement", + "id" : "acm024920jsd", + "name" : "testName" + }, + "acm024921jsd" : { + "type" : "ControlElement", + "id" : "acm024921jsd", + "name" : "searchByIdSuccessfulWithShortISBN" + }, + "acm024922jsd" : { + "type" : "ControlElement", + "id" : "acm024922jsd", + "name" : "searchByIdSuccessfulWithLongISBN" + }, + "acm024923jsd" : { + "type" : "ControlElement", + "id" : "acm024923jsd", + "name" : "authorsAreCorrectlyFormatted" + }, + "acm024924jsd" : { + "type" : "ControlElement", + "id" : "acm024924jsd", + "name" : "testIsbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary" + }, + "acm024925jsd" : { + "type" : "ClassUnit", + "id" : "acm024925jsd", + "name" : "OpenLibraryIsbnFetcherTest", + "compilationUnitId" : "acm024912jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm024214jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012314jsd", "acm013400jsd", "acm018267jsd" ], + "content" : [ "acm024919jsd", "acm024920jsd", "acm024921jsd", "acm024922jsd", "acm024923jsd", "acm024924jsd" ] + }, + "acm024926jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024926jsd", + "name" : "ArXivQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm024939jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024927jsd" : { + "type" : "CodePackage", + "id" : "acm024927jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024928jsd" ] + }, + "acm024928jsd" : { + "type" : "CodePackage", + "id" : "acm024928jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024929jsd" ] + }, + "acm024929jsd" : { + "type" : "CodePackage", + "id" : "acm024929jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024930jsd" ] + }, + "acm024930jsd" : { + "type" : "CodePackage", + "id" : "acm024930jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024931jsd" ] + }, + "acm024931jsd" : { + "type" : "CodePackage", + "id" : "acm024931jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024932jsd" ] + }, + "acm024932jsd" : { + "type" : "CodePackage", + "id" : "acm024932jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024926jsd" ] + }, + "acm024933jsd" : { + "type" : "ControlElement", + "id" : "acm024933jsd", + "name" : "getTransformer" + }, + "acm024934jsd" : { + "type" : "ControlElement", + "id" : "acm024934jsd", + "name" : "getAuthorPrefix" + }, + "acm024935jsd" : { + "type" : "ControlElement", + "id" : "acm024935jsd", + "name" : "getUnFieldedPrefix" + }, + "acm024936jsd" : { + "type" : "ControlElement", + "id" : "acm024936jsd", + "name" : "getJournalPrefix" + }, + "acm024937jsd" : { + "type" : "ControlElement", + "id" : "acm024937jsd", + "name" : "getTitlePrefix" + }, + "acm024938jsd" : { + "type" : "ControlElement", + "id" : "acm024938jsd", + "name" : "convertYearField" + }, + "acm024939jsd" : { + "type" : "ClassUnit", + "id" : "acm024939jsd", + "name" : "ArXivQueryTransformerTest", + "compilationUnitId" : "acm024926jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025120jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013444jsd" ], + "content" : [ "acm024933jsd", "acm024934jsd", "acm024935jsd", "acm024936jsd", "acm024937jsd", "acm024938jsd" ] + }, + "acm024940jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024940jsd", + "name" : "CollectionOfComputerScienceBibliographiesQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm024954jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024941jsd" : { + "type" : "CodePackage", + "id" : "acm024941jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024942jsd" ] + }, + "acm024942jsd" : { + "type" : "CodePackage", + "id" : "acm024942jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024943jsd" ] + }, + "acm024943jsd" : { + "type" : "CodePackage", + "id" : "acm024943jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024944jsd" ] + }, + "acm024944jsd" : { + "type" : "CodePackage", + "id" : "acm024944jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024945jsd" ] + }, + "acm024945jsd" : { + "type" : "CodePackage", + "id" : "acm024945jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024946jsd" ] + }, + "acm024946jsd" : { + "type" : "CodePackage", + "id" : "acm024946jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024940jsd" ] + }, + "acm024947jsd" : { + "type" : "ControlElement", + "id" : "acm024947jsd", + "name" : "getTransformer" + }, + "acm024948jsd" : { + "type" : "ControlElement", + "id" : "acm024948jsd", + "name" : "getAuthorPrefix" + }, + "acm024949jsd" : { + "type" : "ControlElement", + "id" : "acm024949jsd", + "name" : "getUnFieldedPrefix" + }, + "acm024950jsd" : { + "type" : "ControlElement", + "id" : "acm024950jsd", + "name" : "getJournalPrefix" + }, + "acm024951jsd" : { + "type" : "ControlElement", + "id" : "acm024951jsd", + "name" : "getTitlePrefix" + }, + "acm024952jsd" : { + "type" : "ControlElement", + "id" : "acm024952jsd", + "name" : "convertYearField" + }, + "acm024953jsd" : { + "type" : "ControlElement", + "id" : "acm024953jsd", + "name" : "convertYearRangeField" + }, + "acm024954jsd" : { + "type" : "ClassUnit", + "id" : "acm024954jsd", + "name" : "CollectionOfComputerScienceBibliographiesQueryTransformerTest", + "compilationUnitId" : "acm024940jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013474jsd" ], + "content" : [ "acm024947jsd", "acm024948jsd", "acm024949jsd", "acm024950jsd", "acm024951jsd", "acm024952jsd", "acm024953jsd" ] + }, + "acm024955jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024955jsd", + "name" : "DBLPQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm024969jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024956jsd" : { + "type" : "CodePackage", + "id" : "acm024956jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024957jsd" ] + }, + "acm024957jsd" : { + "type" : "CodePackage", + "id" : "acm024957jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024958jsd" ] + }, + "acm024958jsd" : { + "type" : "CodePackage", + "id" : "acm024958jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024959jsd" ] + }, + "acm024959jsd" : { + "type" : "CodePackage", + "id" : "acm024959jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024960jsd" ] + }, + "acm024960jsd" : { + "type" : "CodePackage", + "id" : "acm024960jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024961jsd" ] + }, + "acm024961jsd" : { + "type" : "CodePackage", + "id" : "acm024961jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024955jsd" ] + }, + "acm024962jsd" : { + "type" : "ControlElement", + "id" : "acm024962jsd", + "name" : "getTransformer" + }, + "acm024963jsd" : { + "type" : "ControlElement", + "id" : "acm024963jsd", + "name" : "getAuthorPrefix" + }, + "acm024964jsd" : { + "type" : "ControlElement", + "id" : "acm024964jsd", + "name" : "getUnFieldedPrefix" + }, + "acm024965jsd" : { + "type" : "ControlElement", + "id" : "acm024965jsd", + "name" : "getJournalPrefix" + }, + "acm024966jsd" : { + "type" : "ControlElement", + "id" : "acm024966jsd", + "name" : "getTitlePrefix" + }, + "acm024967jsd" : { + "type" : "ControlElement", + "id" : "acm024967jsd", + "name" : "convertYearField" + }, + "acm024968jsd" : { + "type" : "ControlElement", + "id" : "acm024968jsd", + "name" : "convertYearRangeField" + }, + "acm024969jsd" : { + "type" : "ClassUnit", + "id" : "acm024969jsd", + "name" : "DBLPQueryTransformerTest", + "compilationUnitId" : "acm024955jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013488jsd" ], + "content" : [ "acm024962jsd", "acm024963jsd", "acm024964jsd", "acm024965jsd", "acm024966jsd", "acm024967jsd", "acm024968jsd" ] + }, + "acm024970jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024970jsd", + "name" : "DefaultQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm024982jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024971jsd" : { + "type" : "CodePackage", + "id" : "acm024971jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024972jsd" ] + }, + "acm024972jsd" : { + "type" : "CodePackage", + "id" : "acm024972jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024973jsd" ] + }, + "acm024973jsd" : { + "type" : "CodePackage", + "id" : "acm024973jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024974jsd" ] + }, + "acm024974jsd" : { + "type" : "CodePackage", + "id" : "acm024974jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024975jsd" ] + }, + "acm024975jsd" : { + "type" : "CodePackage", + "id" : "acm024975jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024976jsd" ] + }, + "acm024976jsd" : { + "type" : "CodePackage", + "id" : "acm024976jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024970jsd" ] + }, + "acm024977jsd" : { + "type" : "ControlElement", + "id" : "acm024977jsd", + "name" : "getTransformer" + }, + "acm024978jsd" : { + "type" : "ControlElement", + "id" : "acm024978jsd", + "name" : "getAuthorPrefix" + }, + "acm024979jsd" : { + "type" : "ControlElement", + "id" : "acm024979jsd", + "name" : "getUnFieldedPrefix" + }, + "acm024980jsd" : { + "type" : "ControlElement", + "id" : "acm024980jsd", + "name" : "getJournalPrefix" + }, + "acm024981jsd" : { + "type" : "ControlElement", + "id" : "acm024981jsd", + "name" : "getTitlePrefix" + }, + "acm024982jsd" : { + "type" : "ClassUnit", + "id" : "acm024982jsd", + "name" : "DefaultQueryTransformerTest", + "compilationUnitId" : "acm024970jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025111jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013517jsd" ], + "content" : [ "acm024977jsd", "acm024978jsd", "acm024979jsd", "acm024980jsd", "acm024981jsd" ] + }, + "acm024983jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024983jsd", + "name" : "GVKQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm024997jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024984jsd" : { + "type" : "CodePackage", + "id" : "acm024984jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm024985jsd" ] + }, + "acm024985jsd" : { + "type" : "CodePackage", + "id" : "acm024985jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm024986jsd" ] + }, + "acm024986jsd" : { + "type" : "CodePackage", + "id" : "acm024986jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm024987jsd" ] + }, + "acm024987jsd" : { + "type" : "CodePackage", + "id" : "acm024987jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm024988jsd" ] + }, + "acm024988jsd" : { + "type" : "CodePackage", + "id" : "acm024988jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm024989jsd" ] + }, + "acm024989jsd" : { + "type" : "CodePackage", + "id" : "acm024989jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024983jsd" ] + }, + "acm024990jsd" : { + "type" : "ControlElement", + "id" : "acm024990jsd", + "name" : "getTransformer" + }, + "acm024991jsd" : { + "type" : "ControlElement", + "id" : "acm024991jsd", + "name" : "getAuthorPrefix" + }, + "acm024992jsd" : { + "type" : "ControlElement", + "id" : "acm024992jsd", + "name" : "getUnFieldedPrefix" + }, + "acm024993jsd" : { + "type" : "ControlElement", + "id" : "acm024993jsd", + "name" : "getJournalPrefix" + }, + "acm024994jsd" : { + "type" : "ControlElement", + "id" : "acm024994jsd", + "name" : "getTitlePrefix" + }, + "acm024995jsd" : { + "type" : "ControlElement", + "id" : "acm024995jsd", + "name" : "convertYearField" + }, + "acm024996jsd" : { + "type" : "ControlElement", + "id" : "acm024996jsd", + "name" : "convertYearRangeField" + }, + "acm024997jsd" : { + "type" : "ClassUnit", + "id" : "acm024997jsd", + "name" : "GVKQueryTransformerTest", + "compilationUnitId" : "acm024983jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013534jsd" ], + "content" : [ "acm024990jsd", "acm024991jsd", "acm024992jsd", "acm024993jsd", "acm024994jsd", "acm024995jsd", "acm024996jsd" ] + }, + "acm024998jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm024998jsd", + "name" : "IEEEQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025015jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm024999jsd" : { + "type" : "CodePackage", + "id" : "acm024999jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025000jsd" ] + }, + "acm025000jsd" : { + "type" : "CodePackage", + "id" : "acm025000jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025001jsd" ] + }, + "acm025001jsd" : { + "type" : "CodePackage", + "id" : "acm025001jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025002jsd" ] + }, + "acm025002jsd" : { + "type" : "CodePackage", + "id" : "acm025002jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025003jsd" ] + }, + "acm025003jsd" : { + "type" : "CodePackage", + "id" : "acm025003jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025004jsd" ] + }, + "acm025004jsd" : { + "type" : "CodePackage", + "id" : "acm025004jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm024998jsd" ] + }, + "acm025005jsd" : { + "type" : "ControlElement", + "id" : "acm025005jsd", + "name" : "getTransformer" + }, + "acm025006jsd" : { + "type" : "ControlElement", + "id" : "acm025006jsd", + "name" : "getAuthorPrefix" + }, + "acm025007jsd" : { + "type" : "ControlElement", + "id" : "acm025007jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025008jsd" : { + "type" : "ControlElement", + "id" : "acm025008jsd", + "name" : "getJournalPrefix" + }, + "acm025009jsd" : { + "type" : "ControlElement", + "id" : "acm025009jsd", + "name" : "getTitlePrefix" + }, + "acm025010jsd" : { + "type" : "ControlElement", + "id" : "acm025010jsd", + "name" : "convertJournalFieldPrefix" + }, + "acm025011jsd" : { + "type" : "ControlElement", + "id" : "acm025011jsd", + "name" : "convertYearField" + }, + "acm025012jsd" : { + "type" : "ControlElement", + "id" : "acm025012jsd", + "name" : "convertYearRangeField" + }, + "acm025013jsd" : { + "type" : "ControlElement", + "id" : "acm025013jsd", + "name" : "getTitleTestData" + }, + "acm025014jsd" : { + "type" : "ControlElement", + "id" : "acm025014jsd", + "name" : "testStopWordRemoval" + }, + "acm025015jsd" : { + "type" : "ClassUnit", + "id" : "acm025015jsd", + "name" : "IEEEQueryTransformerTest", + "compilationUnitId" : "acm024998jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013554jsd" ], + "content" : [ "acm025005jsd", "acm025006jsd", "acm025007jsd", "acm025008jsd", "acm025009jsd", "acm025010jsd", "acm025011jsd", "acm025012jsd", "acm025013jsd", "acm025014jsd" ] + }, + "acm025016jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025016jsd", + "name" : "InfixTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025037jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025017jsd" : { + "type" : "CodePackage", + "id" : "acm025017jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025018jsd" ] + }, + "acm025018jsd" : { + "type" : "CodePackage", + "id" : "acm025018jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025019jsd" ] + }, + "acm025019jsd" : { + "type" : "CodePackage", + "id" : "acm025019jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025020jsd" ] + }, + "acm025020jsd" : { + "type" : "CodePackage", + "id" : "acm025020jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025021jsd" ] + }, + "acm025021jsd" : { + "type" : "CodePackage", + "id" : "acm025021jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025022jsd" ] + }, + "acm025022jsd" : { + "type" : "CodePackage", + "id" : "acm025022jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025016jsd" ] + }, + "acm025023jsd" : { + "type" : "ControlElement", + "id" : "acm025023jsd", + "name" : "getTransformer" + }, + "acm025024jsd" : { + "type" : "ControlElement", + "id" : "acm025024jsd", + "name" : "getAuthorPrefix" + }, + "acm025025jsd" : { + "type" : "ControlElement", + "id" : "acm025025jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025026jsd" : { + "type" : "ControlElement", + "id" : "acm025026jsd", + "name" : "getJournalPrefix" + }, + "acm025027jsd" : { + "type" : "ControlElement", + "id" : "acm025027jsd", + "name" : "getTitlePrefix" + }, + "acm025028jsd" : { + "type" : "ControlElement", + "id" : "acm025028jsd", + "name" : "convertAuthorFieldPrefix" + }, + "acm025029jsd" : { + "type" : "ControlElement", + "id" : "acm025029jsd", + "name" : "convertUnFieldedTermPrefix" + }, + "acm025030jsd" : { + "type" : "ControlElement", + "id" : "acm025030jsd", + "name" : "convertExplicitUnFieldedTermPrefix" + }, + "acm025031jsd" : { + "type" : "ControlElement", + "id" : "acm025031jsd", + "name" : "convertJournalFieldPrefix" + }, + "acm025032jsd" : { + "type" : "ControlElement", + "id" : "acm025032jsd", + "name" : "convertYearField" + }, + "acm025033jsd" : { + "type" : "ControlElement", + "id" : "acm025033jsd", + "name" : "convertYearRangeField" + }, + "acm025034jsd" : { + "type" : "ControlElement", + "id" : "acm025034jsd", + "name" : "convertMultipleValuesWithTheSameFieldPrefix" + }, + "acm025035jsd" : { + "type" : "ControlElement", + "id" : "acm025035jsd", + "name" : "groupedOperationsPrefix" + }, + "acm025036jsd" : { + "type" : "ControlElement", + "id" : "acm025036jsd", + "name" : "notOperatorPrefix" + }, + "acm025037jsd" : { + "type" : "ClassUnit", + "id" : "acm025037jsd", + "name" : "InfixTransformerTest", + "compilationUnitId" : "acm025016jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013428jsd" ], + "content" : [ "acm025023jsd", "acm025024jsd", "acm025025jsd", "acm025026jsd", "acm025027jsd", "acm025028jsd", "acm025029jsd", "acm025030jsd", "acm025031jsd", "acm025032jsd", "acm025033jsd", "acm025034jsd", "acm025035jsd", "acm025036jsd" ] + }, + "acm025038jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025038jsd", + "name" : "JstorQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025052jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025039jsd" : { + "type" : "CodePackage", + "id" : "acm025039jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025040jsd" ] + }, + "acm025040jsd" : { + "type" : "CodePackage", + "id" : "acm025040jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025041jsd" ] + }, + "acm025041jsd" : { + "type" : "CodePackage", + "id" : "acm025041jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025042jsd" ] + }, + "acm025042jsd" : { + "type" : "CodePackage", + "id" : "acm025042jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025043jsd" ] + }, + "acm025043jsd" : { + "type" : "CodePackage", + "id" : "acm025043jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025044jsd" ] + }, + "acm025044jsd" : { + "type" : "CodePackage", + "id" : "acm025044jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025038jsd" ] + }, + "acm025045jsd" : { + "type" : "ControlElement", + "id" : "acm025045jsd", + "name" : "getTransformer" + }, + "acm025046jsd" : { + "type" : "ControlElement", + "id" : "acm025046jsd", + "name" : "getAuthorPrefix" + }, + "acm025047jsd" : { + "type" : "ControlElement", + "id" : "acm025047jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025048jsd" : { + "type" : "ControlElement", + "id" : "acm025048jsd", + "name" : "getJournalPrefix" + }, + "acm025049jsd" : { + "type" : "ControlElement", + "id" : "acm025049jsd", + "name" : "getTitlePrefix" + }, + "acm025050jsd" : { + "type" : "ControlElement", + "id" : "acm025050jsd", + "name" : "convertYearField" + }, + "acm025051jsd" : { + "type" : "ControlElement", + "id" : "acm025051jsd", + "name" : "convertYearRangeField" + }, + "acm025052jsd" : { + "type" : "ClassUnit", + "id" : "acm025052jsd", + "name" : "JstorQueryTransformerTest", + "compilationUnitId" : "acm025038jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013570jsd" ], + "content" : [ "acm025045jsd", "acm025046jsd", "acm025047jsd", "acm025048jsd", "acm025049jsd", "acm025050jsd", "acm025051jsd" ] + }, + "acm025053jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025053jsd", + "name" : "ScholarQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025065jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025054jsd" : { + "type" : "CodePackage", + "id" : "acm025054jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025055jsd" ] + }, + "acm025055jsd" : { + "type" : "CodePackage", + "id" : "acm025055jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025056jsd" ] + }, + "acm025056jsd" : { + "type" : "CodePackage", + "id" : "acm025056jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025057jsd" ] + }, + "acm025057jsd" : { + "type" : "CodePackage", + "id" : "acm025057jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025058jsd" ] + }, + "acm025058jsd" : { + "type" : "CodePackage", + "id" : "acm025058jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025059jsd" ] + }, + "acm025059jsd" : { + "type" : "CodePackage", + "id" : "acm025059jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025053jsd" ] + }, + "acm025060jsd" : { + "type" : "ControlElement", + "id" : "acm025060jsd", + "name" : "getTransformer" + }, + "acm025061jsd" : { + "type" : "ControlElement", + "id" : "acm025061jsd", + "name" : "getAuthorPrefix" + }, + "acm025062jsd" : { + "type" : "ControlElement", + "id" : "acm025062jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025063jsd" : { + "type" : "ControlElement", + "id" : "acm025063jsd", + "name" : "getJournalPrefix" + }, + "acm025064jsd" : { + "type" : "ControlElement", + "id" : "acm025064jsd", + "name" : "getTitlePrefix" + }, + "acm025065jsd" : { + "type" : "ClassUnit", + "id" : "acm025065jsd", + "name" : "ScholarQueryTransformerTest", + "compilationUnitId" : "acm025053jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025111jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013615jsd" ], + "content" : [ "acm025060jsd", "acm025061jsd", "acm025062jsd", "acm025063jsd", "acm025064jsd" ] + }, + "acm025066jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025066jsd", + "name" : "SpringerQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025080jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025067jsd" : { + "type" : "CodePackage", + "id" : "acm025067jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025068jsd" ] + }, + "acm025068jsd" : { + "type" : "CodePackage", + "id" : "acm025068jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025069jsd" ] + }, + "acm025069jsd" : { + "type" : "CodePackage", + "id" : "acm025069jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025070jsd" ] + }, + "acm025070jsd" : { + "type" : "CodePackage", + "id" : "acm025070jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025071jsd" ] + }, + "acm025071jsd" : { + "type" : "CodePackage", + "id" : "acm025071jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025072jsd" ] + }, + "acm025072jsd" : { + "type" : "CodePackage", + "id" : "acm025072jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025066jsd" ] + }, + "acm025073jsd" : { + "type" : "ControlElement", + "id" : "acm025073jsd", + "name" : "getAuthorPrefix" + }, + "acm025074jsd" : { + "type" : "ControlElement", + "id" : "acm025074jsd", + "name" : "getTransformer" + }, + "acm025075jsd" : { + "type" : "ControlElement", + "id" : "acm025075jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025076jsd" : { + "type" : "ControlElement", + "id" : "acm025076jsd", + "name" : "getJournalPrefix" + }, + "acm025077jsd" : { + "type" : "ControlElement", + "id" : "acm025077jsd", + "name" : "getTitlePrefix" + }, + "acm025078jsd" : { + "type" : "ControlElement", + "id" : "acm025078jsd", + "name" : "convertYearField" + }, + "acm025079jsd" : { + "type" : "ControlElement", + "id" : "acm025079jsd", + "name" : "convertYearRangeField" + }, + "acm025080jsd" : { + "type" : "ClassUnit", + "id" : "acm025080jsd", + "name" : "SpringerQueryTransformerTest", + "compilationUnitId" : "acm025066jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013630jsd" ], + "content" : [ "acm025073jsd", "acm025074jsd", "acm025075jsd", "acm025076jsd", "acm025077jsd", "acm025078jsd", "acm025079jsd" ] + }, + "acm025081jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025081jsd", + "name" : "SuffixTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025102jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025082jsd" : { + "type" : "CodePackage", + "id" : "acm025082jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025083jsd" ] + }, + "acm025083jsd" : { + "type" : "CodePackage", + "id" : "acm025083jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025084jsd" ] + }, + "acm025084jsd" : { + "type" : "CodePackage", + "id" : "acm025084jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025085jsd" ] + }, + "acm025085jsd" : { + "type" : "CodePackage", + "id" : "acm025085jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025086jsd" ] + }, + "acm025086jsd" : { + "type" : "CodePackage", + "id" : "acm025086jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025087jsd" ] + }, + "acm025087jsd" : { + "type" : "CodePackage", + "id" : "acm025087jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025081jsd" ] + }, + "acm025088jsd" : { + "type" : "ControlElement", + "id" : "acm025088jsd", + "name" : "getTransformer" + }, + "acm025089jsd" : { + "type" : "ControlElement", + "id" : "acm025089jsd", + "name" : "getAuthorSuffix" + }, + "acm025090jsd" : { + "type" : "ControlElement", + "id" : "acm025090jsd", + "name" : "getUnFieldedSuffix" + }, + "acm025091jsd" : { + "type" : "ControlElement", + "id" : "acm025091jsd", + "name" : "getJournalSuffix" + }, + "acm025092jsd" : { + "type" : "ControlElement", + "id" : "acm025092jsd", + "name" : "getTitleSuffix" + }, + "acm025093jsd" : { + "type" : "ControlElement", + "id" : "acm025093jsd", + "name" : "convertAuthorFieldSuffix" + }, + "acm025094jsd" : { + "type" : "ControlElement", + "id" : "acm025094jsd", + "name" : "convertUnFieldedTermSuffix" + }, + "acm025095jsd" : { + "type" : "ControlElement", + "id" : "acm025095jsd", + "name" : "convertExplicitUnFieldedTermSuffix" + }, + "acm025096jsd" : { + "type" : "ControlElement", + "id" : "acm025096jsd", + "name" : "convertJournalFieldSuffix" + }, + "acm025097jsd" : { + "type" : "ControlElement", + "id" : "acm025097jsd", + "name" : "convertYearField" + }, + "acm025098jsd" : { + "type" : "ControlElement", + "id" : "acm025098jsd", + "name" : "convertYearRangeField" + }, + "acm025099jsd" : { + "type" : "ControlElement", + "id" : "acm025099jsd", + "name" : "convertMultipleValuesWithTheSameSuffix" + }, + "acm025100jsd" : { + "type" : "ControlElement", + "id" : "acm025100jsd", + "name" : "groupedOperationsSuffix" + }, + "acm025101jsd" : { + "type" : "ControlElement", + "id" : "acm025101jsd", + "name" : "notOperatorSufix" + }, + "acm025102jsd" : { + "type" : "ClassUnit", + "id" : "acm025102jsd", + "name" : "SuffixTransformerTest", + "compilationUnitId" : "acm025081jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013428jsd" ], + "content" : [ "acm025088jsd", "acm025089jsd", "acm025090jsd", "acm025091jsd", "acm025092jsd", "acm025093jsd", "acm025094jsd", "acm025095jsd", "acm025096jsd", "acm025097jsd", "acm025098jsd", "acm025099jsd", "acm025100jsd", "acm025101jsd" ] + }, + "acm025103jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025103jsd", + "name" : "YearAndYearRangeByFilteringQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025111jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025104jsd" : { + "type" : "CodePackage", + "id" : "acm025104jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025105jsd" ] + }, + "acm025105jsd" : { + "type" : "CodePackage", + "id" : "acm025105jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025106jsd" ] + }, + "acm025106jsd" : { + "type" : "CodePackage", + "id" : "acm025106jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025107jsd" ] + }, + "acm025107jsd" : { + "type" : "CodePackage", + "id" : "acm025107jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025108jsd" ] + }, + "acm025108jsd" : { + "type" : "CodePackage", + "id" : "acm025108jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025109jsd" ] + }, + "acm025109jsd" : { + "type" : "CodePackage", + "id" : "acm025109jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025103jsd" ] + }, + "acm025110jsd" : { + "type" : "ControlElement", + "id" : "acm025110jsd", + "name" : "convertYearField" + }, + "acm025111jsd" : { + "type" : "ClassUnit", + "id" : "acm025111jsd", + "name" : "YearAndYearRangeByFilteringQueryTransformerTest", + "compilationUnitId" : "acm025103jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025120jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013639jsd" ], + "content" : [ "acm025110jsd" ] + }, + "acm025112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025112jsd", + "name" : "YearRangeByFilteringQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025120jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025113jsd" : { + "type" : "CodePackage", + "id" : "acm025113jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025114jsd" ] + }, + "acm025114jsd" : { + "type" : "CodePackage", + "id" : "acm025114jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025115jsd" ] + }, + "acm025115jsd" : { + "type" : "CodePackage", + "id" : "acm025115jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025116jsd" ] + }, + "acm025116jsd" : { + "type" : "CodePackage", + "id" : "acm025116jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025117jsd" ] + }, + "acm025117jsd" : { + "type" : "CodePackage", + "id" : "acm025117jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025118jsd" ] + }, + "acm025118jsd" : { + "type" : "CodePackage", + "id" : "acm025118jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025112jsd" ] + }, + "acm025119jsd" : { + "type" : "ControlElement", + "id" : "acm025119jsd", + "name" : "convertYearRangeField" + }, + "acm025120jsd" : { + "type" : "ClassUnit", + "id" : "acm025120jsd", + "name" : "YearRangeByFilteringQueryTransformerTest", + "compilationUnitId" : "acm025112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013650jsd" ], + "content" : [ "acm025119jsd" ] + }, + "acm025121jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025121jsd", + "name" : "ZbMathQueryTransformerTest", + "parentId" : "acm013407jsd", + "content" : [ "acm025135jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fetcher", "transformers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025122jsd" : { + "type" : "CodePackage", + "id" : "acm025122jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025123jsd" ] + }, + "acm025123jsd" : { + "type" : "CodePackage", + "id" : "acm025123jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025124jsd" ] + }, + "acm025124jsd" : { + "type" : "CodePackage", + "id" : "acm025124jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025125jsd" ] + }, + "acm025125jsd" : { + "type" : "CodePackage", + "id" : "acm025125jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025126jsd" ] + }, + "acm025126jsd" : { + "type" : "CodePackage", + "id" : "acm025126jsd", + "name" : "fetcher", + "parentId" : null, + "content" : [ "acm025127jsd" ] + }, + "acm025127jsd" : { + "type" : "CodePackage", + "id" : "acm025127jsd", + "name" : "transformers", + "parentId" : null, + "content" : [ "acm025121jsd" ] + }, + "acm025128jsd" : { + "type" : "ControlElement", + "id" : "acm025128jsd", + "name" : "getTransformer" + }, + "acm025129jsd" : { + "type" : "ControlElement", + "id" : "acm025129jsd", + "name" : "getAuthorPrefix" + }, + "acm025130jsd" : { + "type" : "ControlElement", + "id" : "acm025130jsd", + "name" : "getUnFieldedPrefix" + }, + "acm025131jsd" : { + "type" : "ControlElement", + "id" : "acm025131jsd", + "name" : "getJournalPrefix" + }, + "acm025132jsd" : { + "type" : "ControlElement", + "id" : "acm025132jsd", + "name" : "getTitlePrefix" + }, + "acm025133jsd" : { + "type" : "ControlElement", + "id" : "acm025133jsd", + "name" : "convertYearField" + }, + "acm025134jsd" : { + "type" : "ControlElement", + "id" : "acm025134jsd", + "name" : "convertYearRangeField" + }, + "acm025135jsd" : { + "type" : "ClassUnit", + "id" : "acm025135jsd", + "name" : "ZbMathQueryTransformerTest", + "compilationUnitId" : "acm025121jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm025037jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013667jsd" ], + "content" : [ "acm025128jsd", "acm025129jsd", "acm025130jsd", "acm025131jsd", "acm025132jsd", "acm025133jsd", "acm025134jsd" ] + }, + "acm025136jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025136jsd", + "name" : "ACMPortalParserTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025149jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025137jsd" : { + "type" : "CodePackage", + "id" : "acm025137jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025138jsd" ] + }, + "acm025138jsd" : { + "type" : "CodePackage", + "id" : "acm025138jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025139jsd" ] + }, + "acm025139jsd" : { + "type" : "CodePackage", + "id" : "acm025139jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025140jsd" ] + }, + "acm025140jsd" : { + "type" : "CodePackage", + "id" : "acm025140jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025141jsd" ] + }, + "acm025141jsd" : { + "type" : "CodePackage", + "id" : "acm025141jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025136jsd" ] + }, + "acm025142jsd" : { + "type" : "ControlElement", + "id" : "acm025142jsd", + "name" : "setUp" + }, + "acm025143jsd" : { + "type" : "ControlElement", + "id" : "acm025143jsd", + "name" : "testParseEntries" + }, + "acm025144jsd" : { + "type" : "ControlElement", + "id" : "acm025144jsd", + "name" : "testParseDoiSearchPage" + }, + "acm025145jsd" : { + "type" : "ControlElement", + "id" : "acm025145jsd", + "name" : "testGetBibEntriesFromDoiList" + }, + "acm025146jsd" : { + "type" : "ControlElement", + "id" : "acm025146jsd", + "name" : "testGetUrlFromDoiList" + }, + "acm025147jsd" : { + "type" : "ControlElement", + "id" : "acm025147jsd", + "name" : "testParseBibEntry" + }, + "acm025148jsd" : { + "type" : "ControlElement", + "id" : "acm025148jsd", + "name" : "testNoEntryFound" + }, + "acm025149jsd" : { + "type" : "ClassUnit", + "id" : "acm025149jsd", + "name" : "ACMPortalParserTest", + "compilationUnitId" : "acm025136jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012314jsd", "acm012515jsd", "acm013680jsd", "acm015926jsd", "acm018267jsd" ], + "content" : [ "acm025142jsd", "acm025143jsd", "acm025144jsd", "acm025145jsd", "acm025146jsd", "acm025147jsd", "acm025148jsd" ] + }, + "acm025150jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025150jsd", + "name" : "BiblioscapeImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025159jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025151jsd" : { + "type" : "CodePackage", + "id" : "acm025151jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025152jsd" ] + }, + "acm025152jsd" : { + "type" : "CodePackage", + "id" : "acm025152jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025153jsd" ] + }, + "acm025153jsd" : { + "type" : "CodePackage", + "id" : "acm025153jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025154jsd" ] + }, + "acm025154jsd" : { + "type" : "CodePackage", + "id" : "acm025154jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025155jsd" ] + }, + "acm025155jsd" : { + "type" : "CodePackage", + "id" : "acm025155jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025150jsd" ] + }, + "acm025156jsd" : { + "type" : "ControlElement", + "id" : "acm025156jsd", + "name" : "fileNames" + }, + "acm025157jsd" : { + "type" : "ControlElement", + "id" : "acm025157jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025158jsd" : { + "type" : "ControlElement", + "id" : "acm025158jsd", + "name" : "testImportEntries" + }, + "acm025159jsd" : { + "type" : "ClassUnit", + "id" : "acm025159jsd", + "name" : "BiblioscapeImporterFilesTest", + "compilationUnitId" : "acm025150jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013692jsd" ], + "content" : [ "acm025156jsd", "acm025157jsd", "acm025158jsd" ] + }, + "acm025160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025160jsd", + "name" : "BiblioscapeImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025172jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025161jsd" : { + "type" : "CodePackage", + "id" : "acm025161jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025162jsd" ] + }, + "acm025162jsd" : { + "type" : "CodePackage", + "id" : "acm025162jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025163jsd" ] + }, + "acm025163jsd" : { + "type" : "CodePackage", + "id" : "acm025163jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025164jsd" ] + }, + "acm025164jsd" : { + "type" : "CodePackage", + "id" : "acm025164jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025165jsd" ] + }, + "acm025165jsd" : { + "type" : "CodePackage", + "id" : "acm025165jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025160jsd" ] + }, + "acm025166jsd" : { + "type" : "ControlElement", + "id" : "acm025166jsd", + "name" : "setUp" + }, + "acm025167jsd" : { + "type" : "ControlElement", + "id" : "acm025167jsd", + "name" : "testGetFormatName" + }, + "acm025168jsd" : { + "type" : "ControlElement", + "id" : "acm025168jsd", + "name" : "testsGetExtensions" + }, + "acm025169jsd" : { + "type" : "ControlElement", + "id" : "acm025169jsd", + "name" : "testGetDescription" + }, + "acm025170jsd" : { + "type" : "ControlElement", + "id" : "acm025170jsd", + "name" : "testGetCLIID" + }, + "acm025171jsd" : { + "type" : "ControlElement", + "id" : "acm025171jsd", + "name" : "testImportEntriesAbortion" + }, + "acm025172jsd" : { + "type" : "ClassUnit", + "id" : "acm025172jsd", + "name" : "BiblioscapeImporterTest", + "compilationUnitId" : "acm025160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013692jsd" ], + "content" : [ "acm025166jsd", "acm025167jsd", "acm025168jsd", "acm025169jsd", "acm025170jsd", "acm025171jsd" ] + }, + "acm025173jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025173jsd", + "name" : "BiblioscapeImporterTypesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025181jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025174jsd" : { + "type" : "CodePackage", + "id" : "acm025174jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025175jsd" ] + }, + "acm025175jsd" : { + "type" : "CodePackage", + "id" : "acm025175jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025176jsd" ] + }, + "acm025176jsd" : { + "type" : "CodePackage", + "id" : "acm025176jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025177jsd" ] + }, + "acm025177jsd" : { + "type" : "CodePackage", + "id" : "acm025177jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025178jsd" ] + }, + "acm025178jsd" : { + "type" : "CodePackage", + "id" : "acm025178jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025173jsd" ] + }, + "acm025179jsd" : { + "type" : "ControlElement", + "id" : "acm025179jsd", + "name" : "types" + }, + "acm025180jsd" : { + "type" : "ControlElement", + "id" : "acm025180jsd", + "name" : "importConvertsToCorrectBibType" + }, + "acm025181jsd" : { + "type" : "ClassUnit", + "id" : "acm025181jsd", + "name" : "BiblioscapeImporterTypesTest", + "compilationUnitId" : "acm025173jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013692jsd", "acm018267jsd", "acm019005jsd" ], + "content" : [ "acm025179jsd", "acm025180jsd" ] + }, + "acm025182jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025182jsd", + "name" : "BibtexImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025203jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025183jsd" : { + "type" : "CodePackage", + "id" : "acm025183jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025184jsd" ] + }, + "acm025184jsd" : { + "type" : "CodePackage", + "id" : "acm025184jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025185jsd" ] + }, + "acm025185jsd" : { + "type" : "CodePackage", + "id" : "acm025185jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025186jsd" ] + }, + "acm025186jsd" : { + "type" : "CodePackage", + "id" : "acm025186jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025187jsd" ] + }, + "acm025187jsd" : { + "type" : "CodePackage", + "id" : "acm025187jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025182jsd" ] + }, + "acm025188jsd" : { + "type" : "ControlElement", + "id" : "acm025188jsd", + "name" : "setUp" + }, + "acm025189jsd" : { + "type" : "ControlElement", + "id" : "acm025189jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025190jsd" : { + "type" : "ControlElement", + "id" : "acm025190jsd", + "name" : "testImportEntries" + }, + "acm025191jsd" : { + "type" : "ControlElement", + "id" : "acm025191jsd", + "name" : "testGetFormatName" + }, + "acm025192jsd" : { + "type" : "ControlElement", + "id" : "acm025192jsd", + "name" : "testsGetExtensions" + }, + "acm025193jsd" : { + "type" : "ControlElement", + "id" : "acm025193jsd", + "name" : "testGetDescription" + }, + "acm025194jsd" : { + "type" : "ControlElement", + "id" : "acm025194jsd", + "name" : "testRecognizesDatabaseID" + }, + "acm025195jsd" : { + "type" : "ControlElement", + "id" : "acm025195jsd", + "name" : "testParsingOfEncodedFileWithHeader" + }, + "acm025196jsd" : { + "type" : "ControlElement", + "id" : "acm025196jsd", + "name" : "testParsingOfEncodedFileWithHeader" + }, + "acm025197jsd" : { + "type" : "ControlElement", + "id" : "acm025197jsd", + "name" : "testParsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly" + }, + "acm025198jsd" : { + "type" : "ControlElement", + "id" : "acm025198jsd", + "name" : "testParsingOfUtf8EncodedFileReadsUmlautCharacterCorrectly" + }, + "acm025199jsd" : { + "type" : "ControlElement", + "id" : "acm025199jsd", + "name" : "testParsingOfUtf16EncodedFileReadsUmlautCharacterCorrectly" + }, + "acm025200jsd" : { + "type" : "ControlElement", + "id" : "acm025200jsd", + "name" : "encodingSupplied" + }, + "acm025201jsd" : { + "type" : "ControlElement", + "id" : "acm025201jsd", + "name" : "wrongEncodingSupplied" + }, + "acm025202jsd" : { + "type" : "ControlElement", + "id" : "acm025202jsd", + "name" : "encodingNotSupplied" + }, + "acm025203jsd" : { + "type" : "ClassUnit", + "id" : "acm025203jsd", + "name" : "BibtexImporterTest", + "compilationUnitId" : "acm025182jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm013709jsd", "acm018267jsd", "acm018813jsd", "acm019421jsd", "acm020676jsd", "acm025203jsd" ], + "content" : [ "acm025188jsd", "acm025189jsd", "acm025190jsd", "acm025191jsd", "acm025192jsd", "acm025193jsd", "acm025194jsd", "acm025195jsd", "acm025196jsd", "acm025197jsd", "acm025198jsd", "acm025199jsd", "acm025200jsd", "acm025201jsd", "acm025202jsd" ] + }, + "acm025204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025204jsd", + "name" : "BibtexParserTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025345jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025205jsd" : { + "type" : "CodePackage", + "id" : "acm025205jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025206jsd" ] + }, + "acm025206jsd" : { + "type" : "CodePackage", + "id" : "acm025206jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025207jsd" ] + }, + "acm025207jsd" : { + "type" : "CodePackage", + "id" : "acm025207jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025208jsd" ] + }, + "acm025208jsd" : { + "type" : "CodePackage", + "id" : "acm025208jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025209jsd" ] + }, + "acm025209jsd" : { + "type" : "CodePackage", + "id" : "acm025209jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025204jsd" ] + }, + "acm025210jsd" : { + "type" : "ControlElement", + "id" : "acm025210jsd", + "name" : "setUp" + }, + "acm025211jsd" : { + "type" : "ControlElement", + "id" : "acm025211jsd", + "name" : "parseWithNullThrowsNullPointerException" + }, + "acm025212jsd" : { + "type" : "ControlElement", + "id" : "acm025212jsd", + "name" : "fromStringRecognizesEntry" + }, + "acm025213jsd" : { + "type" : "ControlElement", + "id" : "acm025213jsd", + "name" : "fromStringReturnsEmptyListFromEmptyString" + }, + "acm025214jsd" : { + "type" : "ControlElement", + "id" : "acm025214jsd", + "name" : "fromStringReturnsEmptyListIfNoEntryRecognized" + }, + "acm025215jsd" : { + "type" : "ControlElement", + "id" : "acm025215jsd", + "name" : "singleFromStringRecognizesEntry" + }, + "acm025216jsd" : { + "type" : "ControlElement", + "id" : "acm025216jsd", + "name" : "singleFromStringRecognizesEntryInMultiple" + }, + "acm025217jsd" : { + "type" : "ControlElement", + "id" : "acm025217jsd", + "name" : "singleFromStringReturnsEmptyFromEmptyString" + }, + "acm025218jsd" : { + "type" : "ControlElement", + "id" : "acm025218jsd", + "name" : "singleFromStringReturnsEmptyIfNoEntryRecognized" + }, + "acm025219jsd" : { + "type" : "ControlElement", + "id" : "acm025219jsd", + "name" : "parseRecognizesEntry" + }, + "acm025220jsd" : { + "type" : "ControlElement", + "id" : "acm025220jsd", + "name" : "parseQuotedEntries" + }, + "acm025221jsd" : { + "type" : "ControlElement", + "id" : "acm025221jsd", + "name" : "parseRecognizesEntryOnlyWithKey" + }, + "acm025222jsd" : { + "type" : "ControlElement", + "id" : "acm025222jsd", + "name" : "parseRecognizesEntryWithWhitespaceAtBegining" + }, + "acm025223jsd" : { + "type" : "ControlElement", + "id" : "acm025223jsd", + "name" : "parseRecognizesEntryWithWhitespace" + }, + "acm025224jsd" : { + "type" : "ControlElement", + "id" : "acm025224jsd", + "name" : "parseRecognizesEntryWithNewlines" + }, + "acm025225jsd" : { + "type" : "ControlElement", + "id" : "acm025225jsd", + "name" : "parseRecognizesEntryWithUnknownType" + }, + "acm025226jsd" : { + "type" : "ControlElement", + "id" : "acm025226jsd", + "name" : "parseRecognizesEntryWithVeryLongType" + }, + "acm025227jsd" : { + "type" : "ControlElement", + "id" : "acm025227jsd", + "name" : "parseRecognizesEntryInParenthesis" + }, + "acm025228jsd" : { + "type" : "ControlElement", + "id" : "acm025228jsd", + "name" : "parseRecognizesEntryWithBigNumbers" + }, + "acm025229jsd" : { + "type" : "ControlElement", + "id" : "acm025229jsd", + "name" : "parseRecognizesCitationKeyWithSpecialCharacters" + }, + "acm025230jsd" : { + "type" : "ControlElement", + "id" : "acm025230jsd", + "name" : "parseRecognizesEntryWhereLastFieldIsFinishedWithComma" + }, + "acm025231jsd" : { + "type" : "ControlElement", + "id" : "acm025231jsd", + "name" : "parseRecognizesEntryWithAtInField" + }, + "acm025232jsd" : { + "type" : "ControlElement", + "id" : "acm025232jsd", + "name" : "parseRecognizesEntryPrecedingComment" + }, + "acm025233jsd" : { + "type" : "ControlElement", + "id" : "acm025233jsd", + "name" : "parseRecognizesMultipleEntries" + }, + "acm025234jsd" : { + "type" : "ControlElement", + "id" : "acm025234jsd", + "name" : "parseSetsParsedSerialization" + }, + "acm025235jsd" : { + "type" : "ControlElement", + "id" : "acm025235jsd", + "name" : "parseRecognizesMultipleEntriesOnSameLine" + }, + "acm025236jsd" : { + "type" : "ControlElement", + "id" : "acm025236jsd", + "name" : "parseCombinesMultipleAuthorFields" + }, + "acm025237jsd" : { + "type" : "ControlElement", + "id" : "acm025237jsd", + "name" : "parseCombinesMultipleEditorFields" + }, + "acm025238jsd" : { + "type" : "ControlElement", + "id" : "acm025238jsd", + "name" : "parseCombinesMultipleKeywordsFields" + }, + "acm025239jsd" : { + "type" : "ControlElement", + "id" : "acm025239jsd", + "name" : "parseRecognizesHeaderButIgnoresEncoding" + }, + "acm025240jsd" : { + "type" : "ControlElement", + "id" : "acm025240jsd", + "name" : "parseRecognizesFormatedEntry" + }, + "acm025241jsd" : { + "type" : "ControlElement", + "id" : "acm025241jsd", + "name" : "parseRecognizesFieldValuesInQuotationMarks" + }, + "acm025242jsd" : { + "type" : "ControlElement", + "id" : "acm025242jsd", + "name" : "parseRecognizesNumbersWithoutBracketsOrQuotationMarks" + }, + "acm025243jsd" : { + "type" : "ControlElement", + "id" : "acm025243jsd", + "name" : "parseRecognizesUppercaseFields" + }, + "acm025244jsd" : { + "type" : "ControlElement", + "id" : "acm025244jsd", + "name" : "parseRecognizesAbsoluteFile" + }, + "acm025245jsd" : { + "type" : "ControlElement", + "id" : "acm025245jsd", + "name" : "parseRecognizesFinalSlashAsSlash" + }, + "acm025246jsd" : { + "type" : "ControlElement", + "id" : "acm025246jsd", + "name" : "parseFailsWithFinalSlashAsSlashWhenSingleLine" + }, + "acm025247jsd" : { + "type" : "ControlElement", + "id" : "acm025247jsd", + "name" : "parseRecognizesDateFieldWithConcatenation" + }, + "acm025248jsd" : { + "type" : "ControlElement", + "id" : "acm025248jsd", + "name" : "parseReturnsEmptyListIfNoEntryRecognized" + }, + "acm025249jsd" : { + "type" : "ControlElement", + "id" : "acm025249jsd", + "name" : "parseReturnsEmptyListIfNoEntryExistent" + }, + "acm025250jsd" : { + "type" : "ControlElement", + "id" : "acm025250jsd", + "name" : "parseNotWarnsAboutEntryWithoutCitationKey" + }, + "acm025251jsd" : { + "type" : "ControlElement", + "id" : "acm025251jsd", + "name" : "parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracket" + }, + "acm025252jsd" : { + "type" : "ControlElement", + "id" : "acm025252jsd", + "name" : "parseAddsEscapedOpenBracketToFieldValue" + }, + "acm025253jsd" : { + "type" : "ControlElement", + "id" : "acm025253jsd", + "name" : "parseAddsEscapedClosingBracketToFieldValue" + }, + "acm025254jsd" : { + "type" : "ControlElement", + "id" : "acm025254jsd", + "name" : "parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracketInQuotationMarks" + }, + "acm025255jsd" : { + "type" : "ControlElement", + "id" : "acm025255jsd", + "name" : "parseIgnoresArbitraryContentAfterEntry" + }, + "acm025256jsd" : { + "type" : "ControlElement", + "id" : "acm025256jsd", + "name" : "parseWarnsAboutUnmatchedContentInEntryWithoutComma" + }, + "acm025257jsd" : { + "type" : "ControlElement", + "id" : "acm025257jsd", + "name" : "parseWarnsAboutUnmatchedContentInEntry" + }, + "acm025258jsd" : { + "type" : "ControlElement", + "id" : "acm025258jsd", + "name" : "parseAcceptsEntryWithAtSymbolInBrackets" + }, + "acm025259jsd" : { + "type" : "ControlElement", + "id" : "acm025259jsd", + "name" : "parseRecognizesEntryWithAtSymbolInQuotationMarks" + }, + "acm025260jsd" : { + "type" : "ControlElement", + "id" : "acm025260jsd", + "name" : "parseRecognizesFieldsWithBracketsEnclosedInQuotationMarks" + }, + "acm025261jsd" : { + "type" : "ControlElement", + "id" : "acm025261jsd", + "name" : "parseRecognizesFieldsWithEscapedQuotationMarks" + }, + "acm025262jsd" : { + "type" : "ControlElement", + "id" : "acm025262jsd", + "name" : "parseIgnoresAndWarnsAboutEntryWithFieldsThatAreNotSeperatedByComma" + }, + "acm025263jsd" : { + "type" : "ControlElement", + "id" : "acm025263jsd", + "name" : "parseIgnoresAndWarnsAboutCorruptedEntryButRecognizeOthers" + }, + "acm025264jsd" : { + "type" : "ControlElement", + "id" : "acm025264jsd", + "name" : "parseRecognizesMonthFieldsWithFollowingComma" + }, + "acm025265jsd" : { + "type" : "ControlElement", + "id" : "acm025265jsd", + "name" : "parseRecognizesPreamble" + }, + "acm025266jsd" : { + "type" : "ControlElement", + "id" : "acm025266jsd", + "name" : "parseRecognizesUppercasePreamble" + }, + "acm025267jsd" : { + "type" : "ControlElement", + "id" : "acm025267jsd", + "name" : "parseRecognizesPreambleWithWhitespace" + }, + "acm025268jsd" : { + "type" : "ControlElement", + "id" : "acm025268jsd", + "name" : "parseRecognizesPreambleInParenthesis" + }, + "acm025269jsd" : { + "type" : "ControlElement", + "id" : "acm025269jsd", + "name" : "parseRecognizesPreambleWithConcatenation" + }, + "acm025270jsd" : { + "type" : "ControlElement", + "id" : "acm025270jsd", + "name" : "parseRecognizesString" + }, + "acm025271jsd" : { + "type" : "ControlElement", + "id" : "acm025271jsd", + "name" : "parseSavesOneNewlineAfterStringInParsedSerialization" + }, + "acm025272jsd" : { + "type" : "ControlElement", + "id" : "acm025272jsd", + "name" : "parseRecognizesStringWithWhitespace" + }, + "acm025273jsd" : { + "type" : "ControlElement", + "id" : "acm025273jsd", + "name" : "parseRecognizesStringInParenthesis" + }, + "acm025274jsd" : { + "type" : "ControlElement", + "id" : "acm025274jsd", + "name" : "parseRecognizesMultipleStrings" + }, + "acm025275jsd" : { + "type" : "ControlElement", + "id" : "acm025275jsd", + "name" : "parseRecognizesStringAndEntry" + }, + "acm025276jsd" : { + "type" : "ControlElement", + "id" : "acm025276jsd", + "name" : "parseWarnsAboutStringsWithSameNameAndOnlyKeepsOne" + }, + "acm025277jsd" : { + "type" : "ControlElement", + "id" : "acm025277jsd", + "name" : "parseIgnoresComments" + }, + "acm025278jsd" : { + "type" : "ControlElement", + "id" : "acm025278jsd", + "name" : "parseIgnoresUpercaseComments" + }, + "acm025279jsd" : { + "type" : "ControlElement", + "id" : "acm025279jsd", + "name" : "parseIgnoresCommentsBeforeEntry" + }, + "acm025280jsd" : { + "type" : "ControlElement", + "id" : "acm025280jsd", + "name" : "parseIgnoresCommentsAfterEntry" + }, + "acm025281jsd" : { + "type" : "ControlElement", + "id" : "acm025281jsd", + "name" : "parseIgnoresText" + }, + "acm025282jsd" : { + "type" : "ControlElement", + "id" : "acm025282jsd", + "name" : "parseIgnoresTextBeforeEntry" + }, + "acm025283jsd" : { + "type" : "ControlElement", + "id" : "acm025283jsd", + "name" : "parseIgnoresTextAfterEntry" + }, + "acm025284jsd" : { + "type" : "ControlElement", + "id" : "acm025284jsd", + "name" : "parseConvertsNewlineToSpace" + }, + "acm025285jsd" : { + "type" : "ControlElement", + "id" : "acm025285jsd", + "name" : "parseConvertsMultipleNewlinesToSpace" + }, + "acm025286jsd" : { + "type" : "ControlElement", + "id" : "acm025286jsd", + "name" : "parseConvertsTabToSpace" + }, + "acm025287jsd" : { + "type" : "ControlElement", + "id" : "acm025287jsd", + "name" : "parseConvertsMultipleTabsToSpace" + }, + "acm025288jsd" : { + "type" : "ControlElement", + "id" : "acm025288jsd", + "name" : "parsePreservesMultipleSpacesInNonWrappableField" + }, + "acm025289jsd" : { + "type" : "ControlElement", + "id" : "acm025289jsd", + "name" : "parsePreservesTabsInAbstractField" + }, + "acm025290jsd" : { + "type" : "ControlElement", + "id" : "acm025290jsd", + "name" : "parsePreservesNewlineInAbstractField" + }, + "acm025291jsd" : { + "type" : "ControlElement", + "id" : "acm025291jsd", + "name" : "parseHandlesAccentsCorrectly" + }, + "acm025292jsd" : { + "type" : "ControlElement", + "id" : "acm025292jsd", + "name" : "parsePreambleAndEntryWithoutNewLine" + }, + "acm025293jsd" : { + "type" : "ControlElement", + "id" : "acm025293jsd", + "name" : "parseFileHeaderAndPreambleWithoutNewLine" + }, + "acm025294jsd" : { + "type" : "ControlElement", + "id" : "acm025294jsd", + "name" : "parseSavesEntryInParsedSerialization" + }, + "acm025295jsd" : { + "type" : "ControlElement", + "id" : "acm025295jsd", + "name" : "parseSavesOneNewlineAfterEntryInParsedSerialization" + }, + "acm025296jsd" : { + "type" : "ControlElement", + "id" : "acm025296jsd", + "name" : "parseSavesAllButOneNewlinesBeforeEntryInParsedSerialization" + }, + "acm025297jsd" : { + "type" : "ControlElement", + "id" : "acm025297jsd", + "name" : "parseRemovesEncodingLineAndSeparatorInParsedSerialization" + }, + "acm025298jsd" : { + "type" : "ControlElement", + "id" : "acm025298jsd", + "name" : "parseSavesNewlinesBetweenEntriesInParsedSerialization" + }, + "acm025299jsd" : { + "type" : "ControlElement", + "id" : "acm025299jsd", + "name" : "parseIgnoresWhitespaceInEpilogue" + }, + "acm025300jsd" : { + "type" : "ControlElement", + "id" : "acm025300jsd", + "name" : "parseIgnoresWhitespaceInEpilogueAfterEntry" + }, + "acm025301jsd" : { + "type" : "ControlElement", + "id" : "acm025301jsd", + "name" : "parseTrimsWhitespaceInEpilogueAfterEntry" + }, + "acm025302jsd" : { + "type" : "ControlElement", + "id" : "acm025302jsd", + "name" : "parseRecognizesSaveActionsAfterEntry" + }, + "acm025303jsd" : { + "type" : "ControlElement", + "id" : "acm025303jsd", + "name" : "parserKeepsSaveActions" + }, + "acm025304jsd" : { + "type" : "ControlElement", + "id" : "acm025304jsd", + "name" : "parseRecognizesCRLFLineBreak" + }, + "acm025305jsd" : { + "type" : "ControlElement", + "id" : "acm025305jsd", + "name" : "parseRecognizesLFLineBreak" + }, + "acm025306jsd" : { + "type" : "ControlElement", + "id" : "acm025306jsd", + "name" : "integrationTestSaveActions" + }, + "acm025307jsd" : { + "type" : "ControlElement", + "id" : "acm025307jsd", + "name" : "integrationTestBibEntryType" + }, + "acm025308jsd" : { + "type" : "ControlElement", + "id" : "acm025308jsd", + "name" : "integrationTestSaveOrderConfig" + }, + "acm025309jsd" : { + "type" : "ControlElement", + "id" : "acm025309jsd", + "name" : "integrationTestCustomKeyPattern" + }, + "acm025310jsd" : { + "type" : "ControlElement", + "id" : "acm025310jsd", + "name" : "integrationTestBiblatexMode" + }, + "acm025311jsd" : { + "type" : "ControlElement", + "id" : "acm025311jsd", + "name" : "integrationTestGroupTree" + }, + "acm025312jsd" : { + "type" : "ControlElement", + "id" : "acm025312jsd", + "name" : "integrationTestTexGroup" + }, + "acm025313jsd" : { + "type" : "ControlElement", + "id" : "acm025313jsd", + "name" : "integrationTestProtectedFlag" + }, + "acm025314jsd" : { + "type" : "ControlElement", + "id" : "acm025314jsd", + "name" : "integrationTestContentSelectors" + }, + "acm025315jsd" : { + "type" : "ControlElement", + "id" : "acm025315jsd", + "name" : "parseReallyUnknownType" + }, + "acm025316jsd" : { + "type" : "ControlElement", + "id" : "acm025316jsd", + "name" : "parseOtherTypeTest" + }, + "acm025317jsd" : { + "type" : "ControlElement", + "id" : "acm025317jsd", + "name" : "parseRecognizesDatabaseID" + }, + "acm025318jsd" : { + "type" : "ControlElement", + "id" : "acm025318jsd", + "name" : "parseDoesNotRecognizeDatabaseIDasUserComment" + }, + "acm025319jsd" : { + "type" : "ControlElement", + "id" : "acm025319jsd", + "name" : "integrationTestFileDirectories" + }, + "acm025320jsd" : { + "type" : "ControlElement", + "id" : "acm025320jsd", + "name" : "parseReturnsEntriesInSameOrder" + }, + "acm025321jsd" : { + "type" : "ControlElement", + "id" : "acm025321jsd", + "name" : "parsePrecedingComment" + }, + "acm025322jsd" : { + "type" : "ControlElement", + "id" : "acm025322jsd", + "name" : "parseCommentAndEntryInOneLine" + }, + "acm025323jsd" : { + "type" : "ControlElement", + "id" : "acm025323jsd", + "name" : "preserveEncodingPrefixInsideEntry" + }, + "acm025324jsd" : { + "type" : "ControlElement", + "id" : "acm025324jsd", + "name" : "parseBracketedComment" + }, + "acm025325jsd" : { + "type" : "ControlElement", + "id" : "acm025325jsd", + "name" : "parseRegularCommentBeforeEntry" + }, + "acm025326jsd" : { + "type" : "ControlElement", + "id" : "acm025326jsd", + "name" : "parseCommentWithoutBrackets" + }, + "acm025327jsd" : { + "type" : "ControlElement", + "id" : "acm025327jsd", + "name" : "parseCommentWithoutBracketsBeforeEntry" + }, + "acm025328jsd" : { + "type" : "ControlElement", + "id" : "acm025328jsd", + "name" : "parseCommentContainingEntries" + }, + "acm025329jsd" : { + "type" : "ControlElement", + "id" : "acm025329jsd", + "name" : "parseCommentContainingEntriesAndAtSymbols" + }, + "acm025330jsd" : { + "type" : "ControlElement", + "id" : "acm025330jsd", + "name" : "parseEmptyPreambleLeadsToEmpty" + }, + "acm025331jsd" : { + "type" : "ControlElement", + "id" : "acm025331jsd", + "name" : "parseEmptyFileLeadsToPreamble" + }, + "acm025332jsd" : { + "type" : "ControlElement", + "id" : "acm025332jsd", + "name" : "parseYearWithMonthString" + }, + "acm025333jsd" : { + "type" : "ControlElement", + "id" : "acm025333jsd", + "name" : "parseYearWithMonthNumber" + }, + "acm025334jsd" : { + "type" : "ControlElement", + "id" : "acm025334jsd", + "name" : "parseYear" + }, + "acm025335jsd" : { + "type" : "ControlElement", + "id" : "acm025335jsd", + "name" : "parseEntryUsingStringConstantsForTwoAuthorsWithEtAsStringConstant" + }, + "acm025336jsd" : { + "type" : "ControlElement", + "id" : "acm025336jsd", + "name" : "parseStringConstantsForTwoAuthorsHasCorrectBibTeXEntry" + }, + "acm025337jsd" : { + "type" : "ControlElement", + "id" : "acm025337jsd", + "name" : "parseStringConstantsForTwoAuthors" + }, + "acm025338jsd" : { + "type" : "ControlElement", + "id" : "acm025338jsd", + "name" : "textAprilIsParsedAsMonthApril" + }, + "acm025339jsd" : { + "type" : "ControlElement", + "id" : "acm025339jsd", + "name" : "textAprilIsDisplayedAsConstant" + }, + "acm025340jsd" : { + "type" : "ControlElement", + "id" : "acm025340jsd", + "name" : "bibTeXConstantAprilIsParsedAsMonthApril" + }, + "acm025341jsd" : { + "type" : "ControlElement", + "id" : "acm025341jsd", + "name" : "bibTeXConstantAprilIsDisplayedAsConstant" + }, + "acm025342jsd" : { + "type" : "ControlElement", + "id" : "acm025342jsd", + "name" : "bibTeXConstantAprilIsParsedAsStringMonthAprilWhenReadingTheField" + }, + "acm025343jsd" : { + "type" : "ControlElement", + "id" : "acm025343jsd", + "name" : "parseDuplicateKeywordsWithOnlyOneEntry" + }, + "acm025344jsd" : { + "type" : "ControlElement", + "id" : "acm025344jsd", + "name" : "parseDuplicateKeywordsWithTwoEntries" + }, + "acm025345jsd" : { + "type" : "ClassUnit", + "id" : "acm025345jsd", + "name" : "BibtexParserTest", + "compilationUnitId" : "acm025204jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm011002jsd", "acm011011jsd", "acm011169jsd", "acm011188jsd", "acm011791jsd", "acm011803jsd", "acm011815jsd", "acm011852jsd", "acm011888jsd", "acm011912jsd", "acm012084jsd", "acm012515jsd", "acm012556jsd", "acm013761jsd", "acm018032jsd", "acm018267jsd", "acm018289jsd", "acm018367jsd", "acm018401jsd", "acm018673jsd", "acm018754jsd", "acm018813jsd", "acm019079jsd", "acm019119jsd", "acm019171jsd", "acm019221jsd", "acm019256jsd", "acm019293jsd", "acm019315jsd", "acm019447jsd", "acm019454jsd", "acm020676jsd", "acm020693jsd" ], + "content" : [ "acm025210jsd", "acm025211jsd", "acm025212jsd", "acm025213jsd", "acm025214jsd", "acm025215jsd", "acm025216jsd", "acm025217jsd", "acm025218jsd", "acm025219jsd", "acm025220jsd", "acm025221jsd", "acm025222jsd", "acm025223jsd", "acm025224jsd", "acm025225jsd", "acm025226jsd", "acm025227jsd", "acm025228jsd", "acm025229jsd", "acm025230jsd", "acm025231jsd", "acm025232jsd", "acm025233jsd", "acm025234jsd", "acm025235jsd", "acm025236jsd", "acm025237jsd", "acm025238jsd", "acm025239jsd", "acm025240jsd", "acm025241jsd", "acm025242jsd", "acm025243jsd", "acm025244jsd", "acm025245jsd", "acm025246jsd", "acm025247jsd", "acm025248jsd", "acm025249jsd", "acm025250jsd", "acm025251jsd", "acm025252jsd", "acm025253jsd", "acm025254jsd", "acm025255jsd", "acm025256jsd", "acm025257jsd", "acm025258jsd", "acm025259jsd", "acm025260jsd", "acm025261jsd", "acm025262jsd", "acm025263jsd", "acm025264jsd", "acm025265jsd", "acm025266jsd", "acm025267jsd", "acm025268jsd", "acm025269jsd", "acm025270jsd", "acm025271jsd", "acm025272jsd", "acm025273jsd", "acm025274jsd", "acm025275jsd", "acm025276jsd", "acm025277jsd", "acm025278jsd", "acm025279jsd", "acm025280jsd", "acm025281jsd", "acm025282jsd", "acm025283jsd", "acm025284jsd", "acm025285jsd", "acm025286jsd", "acm025287jsd", "acm025288jsd", "acm025289jsd", "acm025290jsd", "acm025291jsd", "acm025292jsd", "acm025293jsd", "acm025294jsd", "acm025295jsd", "acm025296jsd", "acm025297jsd", "acm025298jsd", "acm025299jsd", "acm025300jsd", "acm025301jsd", "acm025302jsd", "acm025303jsd", "acm025304jsd", "acm025305jsd", "acm025306jsd", "acm025307jsd", "acm025308jsd", "acm025309jsd", "acm025310jsd", "acm025311jsd", "acm025312jsd", "acm025313jsd", "acm025314jsd", "acm025315jsd", "acm025316jsd", "acm025317jsd", "acm025318jsd", "acm025319jsd", "acm025320jsd", "acm025321jsd", "acm025322jsd", "acm025323jsd", "acm025324jsd", "acm025325jsd", "acm025326jsd", "acm025327jsd", "acm025328jsd", "acm025329jsd", "acm025330jsd", "acm025331jsd", "acm025332jsd", "acm025333jsd", "acm025334jsd", "acm025335jsd", "acm025336jsd", "acm025337jsd", "acm025338jsd", "acm025339jsd", "acm025340jsd", "acm025341jsd", "acm025342jsd", "acm025343jsd", "acm025344jsd" ] + }, + "acm025346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025346jsd", + "name" : "CffImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025367jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025347jsd" : { + "type" : "CodePackage", + "id" : "acm025347jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025348jsd" ] + }, + "acm025348jsd" : { + "type" : "CodePackage", + "id" : "acm025348jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025349jsd" ] + }, + "acm025349jsd" : { + "type" : "CodePackage", + "id" : "acm025349jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025350jsd" ] + }, + "acm025350jsd" : { + "type" : "CodePackage", + "id" : "acm025350jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025351jsd" ] + }, + "acm025351jsd" : { + "type" : "CodePackage", + "id" : "acm025351jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025346jsd" ] + }, + "acm025352jsd" : { + "type" : "ControlElement", + "id" : "acm025352jsd", + "name" : "setUp" + }, + "acm025353jsd" : { + "type" : "ControlElement", + "id" : "acm025353jsd", + "name" : "testGetFormatName" + }, + "acm025354jsd" : { + "type" : "ControlElement", + "id" : "acm025354jsd", + "name" : "testGetCLIId" + }, + "acm025355jsd" : { + "type" : "ControlElement", + "id" : "acm025355jsd", + "name" : "testsGetExtensions" + }, + "acm025356jsd" : { + "type" : "ControlElement", + "id" : "acm025356jsd", + "name" : "testGetDescription" + }, + "acm025357jsd" : { + "type" : "ControlElement", + "id" : "acm025357jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025358jsd" : { + "type" : "ControlElement", + "id" : "acm025358jsd", + "name" : "testIsRecognizedFormatReject" + }, + "acm025359jsd" : { + "type" : "ControlElement", + "id" : "acm025359jsd", + "name" : "testImportEntriesBasic" + }, + "acm025360jsd" : { + "type" : "ControlElement", + "id" : "acm025360jsd", + "name" : "testImportEntriesMultipleAuthors" + }, + "acm025361jsd" : { + "type" : "ControlElement", + "id" : "acm025361jsd", + "name" : "testImportEntriesSwhIdSelect1" + }, + "acm025362jsd" : { + "type" : "ControlElement", + "id" : "acm025362jsd", + "name" : "testImportEntriesSwhIdSelect2" + }, + "acm025363jsd" : { + "type" : "ControlElement", + "id" : "acm025363jsd", + "name" : "testImportEntriesDataset" + }, + "acm025364jsd" : { + "type" : "ControlElement", + "id" : "acm025364jsd", + "name" : "testImportEntriesDoiSelect" + }, + "acm025365jsd" : { + "type" : "ControlElement", + "id" : "acm025365jsd", + "name" : "testImportEntriesUnknownFields" + }, + "acm025366jsd" : { + "type" : "ControlElement", + "id" : "acm025366jsd", + "name" : "getPopulatedEntry" + }, + "acm025367jsd" : { + "type" : "ClassUnit", + "id" : "acm025367jsd", + "name" : "CffImporterTest", + "compilationUnitId" : "acm025346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013781jsd", "acm018267jsd", "acm018813jsd", "acm025367jsd" ], + "content" : [ "acm025352jsd", "acm025353jsd", "acm025354jsd", "acm025355jsd", "acm025356jsd", "acm025357jsd", "acm025358jsd", "acm025359jsd", "acm025360jsd", "acm025361jsd", "acm025362jsd", "acm025363jsd", "acm025364jsd", "acm025365jsd", "acm025366jsd" ] + }, + "acm025368jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025368jsd", + "name" : "CitaviXmlImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025379jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025369jsd" : { + "type" : "CodePackage", + "id" : "acm025369jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025370jsd" ] + }, + "acm025370jsd" : { + "type" : "CodePackage", + "id" : "acm025370jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025371jsd" ] + }, + "acm025371jsd" : { + "type" : "CodePackage", + "id" : "acm025371jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025372jsd" ] + }, + "acm025372jsd" : { + "type" : "CodePackage", + "id" : "acm025372jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025373jsd" ] + }, + "acm025373jsd" : { + "type" : "CodePackage", + "id" : "acm025373jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025368jsd" ] + }, + "acm025374jsd" : { + "type" : "ControlElement", + "id" : "acm025374jsd", + "name" : "fileNames" + }, + "acm025375jsd" : { + "type" : "ControlElement", + "id" : "acm025375jsd", + "name" : "invalidFileNames" + }, + "acm025376jsd" : { + "type" : "ControlElement", + "id" : "acm025376jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025377jsd" : { + "type" : "ControlElement", + "id" : "acm025377jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025378jsd" : { + "type" : "ControlElement", + "id" : "acm025378jsd", + "name" : "testImportEntries" + }, + "acm025379jsd" : { + "type" : "ClassUnit", + "id" : "acm025379jsd", + "name" : "CitaviXmlImporterFilesTest", + "compilationUnitId" : "acm025368jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013828jsd" ], + "content" : [ "acm025374jsd", "acm025375jsd", "acm025376jsd", "acm025377jsd", "acm025378jsd" ] + }, + "acm025380jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025380jsd", + "name" : "CitaviXmlImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025388jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025381jsd" : { + "type" : "CodePackage", + "id" : "acm025381jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025382jsd" ] + }, + "acm025382jsd" : { + "type" : "CodePackage", + "id" : "acm025382jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025383jsd" ] + }, + "acm025383jsd" : { + "type" : "CodePackage", + "id" : "acm025383jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025384jsd" ] + }, + "acm025384jsd" : { + "type" : "CodePackage", + "id" : "acm025384jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025385jsd" ] + }, + "acm025385jsd" : { + "type" : "CodePackage", + "id" : "acm025385jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025380jsd" ] + }, + "acm025386jsd" : { + "type" : "ControlElement", + "id" : "acm025386jsd", + "name" : "cleanUpText" + }, + "acm025387jsd" : { + "type" : "ControlElement", + "id" : "acm025387jsd", + "name" : "cleanUpText" + }, + "acm025388jsd" : { + "type" : "ClassUnit", + "id" : "acm025388jsd", + "name" : "CitaviXmlImporterTest", + "compilationUnitId" : "acm025380jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013828jsd" ], + "content" : [ "acm025386jsd", "acm025387jsd" ] + }, + "acm025389jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025389jsd", + "name" : "CopacImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025400jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025390jsd" : { + "type" : "CodePackage", + "id" : "acm025390jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025391jsd" ] + }, + "acm025391jsd" : { + "type" : "CodePackage", + "id" : "acm025391jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025392jsd" ] + }, + "acm025392jsd" : { + "type" : "CodePackage", + "id" : "acm025392jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025393jsd" ] + }, + "acm025393jsd" : { + "type" : "CodePackage", + "id" : "acm025393jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025394jsd" ] + }, + "acm025394jsd" : { + "type" : "CodePackage", + "id" : "acm025394jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025389jsd" ] + }, + "acm025395jsd" : { + "type" : "ControlElement", + "id" : "acm025395jsd", + "name" : "fileNames" + }, + "acm025396jsd" : { + "type" : "ControlElement", + "id" : "acm025396jsd", + "name" : "nonCopacfileNames" + }, + "acm025397jsd" : { + "type" : "ControlElement", + "id" : "acm025397jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025398jsd" : { + "type" : "ControlElement", + "id" : "acm025398jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025399jsd" : { + "type" : "ControlElement", + "id" : "acm025399jsd", + "name" : "testImportEntries" + }, + "acm025400jsd" : { + "type" : "ClassUnit", + "id" : "acm025400jsd", + "name" : "CopacImporterFilesTest", + "compilationUnitId" : "acm025389jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013855jsd" ], + "content" : [ "acm025395jsd", "acm025396jsd", "acm025397jsd", "acm025398jsd", "acm025399jsd" ] + }, + "acm025401jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025401jsd", + "name" : "CopacImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025411jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025402jsd" : { + "type" : "CodePackage", + "id" : "acm025402jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025403jsd" ] + }, + "acm025403jsd" : { + "type" : "CodePackage", + "id" : "acm025403jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025404jsd" ] + }, + "acm025404jsd" : { + "type" : "CodePackage", + "id" : "acm025404jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025405jsd" ] + }, + "acm025405jsd" : { + "type" : "CodePackage", + "id" : "acm025405jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025406jsd" ] + }, + "acm025406jsd" : { + "type" : "CodePackage", + "id" : "acm025406jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025401jsd" ] + }, + "acm025407jsd" : { + "type" : "ControlElement", + "id" : "acm025407jsd", + "name" : "setUp" + }, + "acm025408jsd" : { + "type" : "ControlElement", + "id" : "acm025408jsd", + "name" : "testsGetExtensions" + }, + "acm025409jsd" : { + "type" : "ControlElement", + "id" : "acm025409jsd", + "name" : "testGetDescription" + }, + "acm025410jsd" : { + "type" : "ControlElement", + "id" : "acm025410jsd", + "name" : "testImportEmptyEntries" + }, + "acm025411jsd" : { + "type" : "ClassUnit", + "id" : "acm025411jsd", + "name" : "CopacImporterTest", + "compilationUnitId" : "acm025401jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013855jsd", "acm018267jsd", "acm025411jsd" ], + "content" : [ "acm025407jsd", "acm025408jsd", "acm025409jsd", "acm025410jsd" ] + }, + "acm025412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025412jsd", + "name" : "CustomImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025431jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025413jsd" : { + "type" : "CodePackage", + "id" : "acm025413jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025414jsd" ] + }, + "acm025414jsd" : { + "type" : "CodePackage", + "id" : "acm025414jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025415jsd" ] + }, + "acm025415jsd" : { + "type" : "CodePackage", + "id" : "acm025415jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025416jsd" ] + }, + "acm025416jsd" : { + "type" : "CodePackage", + "id" : "acm025416jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025417jsd" ] + }, + "acm025417jsd" : { + "type" : "CodePackage", + "id" : "acm025417jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025412jsd" ] + }, + "acm025418jsd" : { + "type" : "ControlElement", + "id" : "acm025418jsd", + "name" : "setUp" + }, + "acm025419jsd" : { + "type" : "ControlElement", + "id" : "acm025419jsd", + "name" : "testGetName" + }, + "acm025420jsd" : { + "type" : "ControlElement", + "id" : "acm025420jsd", + "name" : "testGetId" + }, + "acm025421jsd" : { + "type" : "ControlElement", + "id" : "acm025421jsd", + "name" : "testGetClassName" + }, + "acm025422jsd" : { + "type" : "ControlElement", + "id" : "acm025422jsd", + "name" : "testGetBasePath" + }, + "acm025423jsd" : { + "type" : "ControlElement", + "id" : "acm025423jsd", + "name" : "testGetAsStringList" + }, + "acm025424jsd" : { + "type" : "ControlElement", + "id" : "acm025424jsd", + "name" : "equalsWithSameReference" + }, + "acm025425jsd" : { + "type" : "ControlElement", + "id" : "acm025425jsd", + "name" : "equalsIsBasedOnName" + }, + "acm025426jsd" : { + "type" : "ControlElement", + "id" : "acm025426jsd", + "name" : "testCompareToSmaller" + }, + "acm025427jsd" : { + "type" : "ControlElement", + "id" : "acm025427jsd", + "name" : "testCompareToEven" + }, + "acm025428jsd" : { + "type" : "ControlElement", + "id" : "acm025428jsd", + "name" : "testToString" + }, + "acm025429jsd" : { + "type" : "ControlElement", + "id" : "acm025429jsd", + "name" : "testClassicConstructor" + }, + "acm025430jsd" : { + "type" : "ControlElement", + "id" : "acm025430jsd", + "name" : "asCustomImporter" + }, + "acm025431jsd" : { + "type" : "ClassUnit", + "id" : "acm025431jsd", + "name" : "CustomImporterTest", + "compilationUnitId" : "acm025412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm013855jsd", "acm013876jsd", "acm014137jsd" ], + "content" : [ "acm025418jsd", "acm025419jsd", "acm025420jsd", "acm025421jsd", "acm025422jsd", "acm025423jsd", "acm025424jsd", "acm025425jsd", "acm025426jsd", "acm025427jsd", "acm025428jsd", "acm025429jsd", "acm025430jsd" ] + }, + "acm025432jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025432jsd", + "name" : "EndnoteImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025448jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025433jsd" : { + "type" : "CodePackage", + "id" : "acm025433jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025434jsd" ] + }, + "acm025434jsd" : { + "type" : "CodePackage", + "id" : "acm025434jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025435jsd" ] + }, + "acm025435jsd" : { + "type" : "CodePackage", + "id" : "acm025435jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025436jsd" ] + }, + "acm025436jsd" : { + "type" : "CodePackage", + "id" : "acm025436jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025437jsd" ] + }, + "acm025437jsd" : { + "type" : "CodePackage", + "id" : "acm025437jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025432jsd" ] + }, + "acm025438jsd" : { + "type" : "ControlElement", + "id" : "acm025438jsd", + "name" : "setUp" + }, + "acm025439jsd" : { + "type" : "ControlElement", + "id" : "acm025439jsd", + "name" : "testGetFormatName" + }, + "acm025440jsd" : { + "type" : "ControlElement", + "id" : "acm025440jsd", + "name" : "testGetCLIId" + }, + "acm025441jsd" : { + "type" : "ControlElement", + "id" : "acm025441jsd", + "name" : "testsGetExtensions" + }, + "acm025442jsd" : { + "type" : "ControlElement", + "id" : "acm025442jsd", + "name" : "testGetDescription" + }, + "acm025443jsd" : { + "type" : "ControlElement", + "id" : "acm025443jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025444jsd" : { + "type" : "ControlElement", + "id" : "acm025444jsd", + "name" : "testIsRecognizedFormatReject" + }, + "acm025445jsd" : { + "type" : "ControlElement", + "id" : "acm025445jsd", + "name" : "testImportEntries0" + }, + "acm025446jsd" : { + "type" : "ControlElement", + "id" : "acm025446jsd", + "name" : "testImportEntries1" + }, + "acm025447jsd" : { + "type" : "ControlElement", + "id" : "acm025447jsd", + "name" : "testImportEntriesBookExample" + }, + "acm025448jsd" : { + "type" : "ClassUnit", + "id" : "acm025448jsd", + "name" : "EndnoteImporterTest", + "compilationUnitId" : "acm025432jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013891jsd", "acm018267jsd", "acm025448jsd" ], + "content" : [ "acm025438jsd", "acm025439jsd", "acm025440jsd", "acm025441jsd", "acm025442jsd", "acm025443jsd", "acm025444jsd", "acm025445jsd", "acm025446jsd", "acm025447jsd" ] + }, + "acm025449jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025449jsd", + "name" : "EndnoteXmlImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025461jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025450jsd" : { + "type" : "CodePackage", + "id" : "acm025450jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025451jsd" ] + }, + "acm025451jsd" : { + "type" : "CodePackage", + "id" : "acm025451jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025452jsd" ] + }, + "acm025452jsd" : { + "type" : "CodePackage", + "id" : "acm025452jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025453jsd" ] + }, + "acm025453jsd" : { + "type" : "CodePackage", + "id" : "acm025453jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025454jsd" ] + }, + "acm025454jsd" : { + "type" : "CodePackage", + "id" : "acm025454jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025449jsd" ] + }, + "acm025455jsd" : { + "type" : "ControlElement", + "id" : "acm025455jsd", + "name" : "fileNames" + }, + "acm025456jsd" : { + "type" : "ControlElement", + "id" : "acm025456jsd", + "name" : "invalidFileNames" + }, + "acm025457jsd" : { + "type" : "ControlElement", + "id" : "acm025457jsd", + "name" : "setUp" + }, + "acm025458jsd" : { + "type" : "ControlElement", + "id" : "acm025458jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025459jsd" : { + "type" : "ControlElement", + "id" : "acm025459jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025460jsd" : { + "type" : "ControlElement", + "id" : "acm025460jsd", + "name" : "testImportEntries" + }, + "acm025461jsd" : { + "type" : "ClassUnit", + "id" : "acm025461jsd", + "name" : "EndnoteXmlImporterFilesTest", + "compilationUnitId" : "acm025449jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013918jsd" ], + "content" : [ "acm025455jsd", "acm025456jsd", "acm025457jsd", "acm025458jsd", "acm025459jsd", "acm025460jsd" ] + }, + "acm025462jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025462jsd", + "name" : "ImporterTestEngine", + "parentId" : "acm013673jsd", + "content" : [ "acm025474jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025463jsd" : { + "type" : "CodePackage", + "id" : "acm025463jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025464jsd" ] + }, + "acm025464jsd" : { + "type" : "CodePackage", + "id" : "acm025464jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025465jsd" ] + }, + "acm025465jsd" : { + "type" : "CodePackage", + "id" : "acm025465jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025466jsd" ] + }, + "acm025466jsd" : { + "type" : "CodePackage", + "id" : "acm025466jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025467jsd" ] + }, + "acm025467jsd" : { + "type" : "CodePackage", + "id" : "acm025467jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025462jsd" ] + }, + "acm025468jsd" : { + "type" : "ControlElement", + "id" : "acm025468jsd", + "name" : "getTestFiles" + }, + "acm025469jsd" : { + "type" : "ControlElement", + "id" : "acm025469jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025470jsd" : { + "type" : "ControlElement", + "id" : "acm025470jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025471jsd" : { + "type" : "ControlElement", + "id" : "acm025471jsd", + "name" : "testImportEntries" + }, + "acm025472jsd" : { + "type" : "ControlElement", + "id" : "acm025472jsd", + "name" : "getPath" + }, + "acm025473jsd" : { + "type" : "ControlElement", + "id" : "acm025473jsd", + "name" : "testImportMalformedFiles" + }, + "acm025474jsd" : { + "type" : "ClassUnit", + "id" : "acm025474jsd", + "name" : "ImporterTestEngine", + "compilationUnitId" : "acm025462jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012407jsd", "acm012455jsd", "acm012556jsd", "acm018267jsd", "acm025474jsd" ], + "content" : [ "acm025468jsd", "acm025469jsd", "acm025470jsd", "acm025471jsd", "acm025472jsd", "acm025473jsd" ] + }, + "acm025475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025475jsd", + "name" : "InspecImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025493jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025476jsd" : { + "type" : "CodePackage", + "id" : "acm025476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025477jsd" ] + }, + "acm025477jsd" : { + "type" : "CodePackage", + "id" : "acm025477jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025478jsd" ] + }, + "acm025478jsd" : { + "type" : "CodePackage", + "id" : "acm025478jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025479jsd" ] + }, + "acm025479jsd" : { + "type" : "CodePackage", + "id" : "acm025479jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025480jsd" ] + }, + "acm025480jsd" : { + "type" : "CodePackage", + "id" : "acm025480jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025475jsd" ] + }, + "acm025481jsd" : { + "type" : "ControlElement", + "id" : "acm025481jsd", + "name" : "fileNames" + }, + "acm025482jsd" : { + "type" : "ControlElement", + "id" : "acm025482jsd", + "name" : "nonInspecfileNames" + }, + "acm025483jsd" : { + "type" : "ControlElement", + "id" : "acm025483jsd", + "name" : "setUp" + }, + "acm025484jsd" : { + "type" : "ControlElement", + "id" : "acm025484jsd", + "name" : "testIsRecognizedFormatAccept" + }, + "acm025485jsd" : { + "type" : "ControlElement", + "id" : "acm025485jsd", + "name" : "testIsRecognizedFormatReject" + }, + "acm025486jsd" : { + "type" : "ControlElement", + "id" : "acm025486jsd", + "name" : "testCompleteBibtexEntryOnJournalPaperImport" + }, + "acm025487jsd" : { + "type" : "ControlElement", + "id" : "acm025487jsd", + "name" : "importConferencePaperGivesInproceedings" + }, + "acm025488jsd" : { + "type" : "ControlElement", + "id" : "acm025488jsd", + "name" : "importMiscGivesMisc" + }, + "acm025489jsd" : { + "type" : "ControlElement", + "id" : "acm025489jsd", + "name" : "testGetFormatName" + }, + "acm025490jsd" : { + "type" : "ControlElement", + "id" : "acm025490jsd", + "name" : "testGetCLIId" + }, + "acm025491jsd" : { + "type" : "ControlElement", + "id" : "acm025491jsd", + "name" : "testsGetExtensions" + }, + "acm025492jsd" : { + "type" : "ControlElement", + "id" : "acm025492jsd", + "name" : "testGetDescription" + }, + "acm025493jsd" : { + "type" : "ClassUnit", + "id" : "acm025493jsd", + "name" : "InspecImporterTest", + "compilationUnitId" : "acm025475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013930jsd", "acm018267jsd", "acm025493jsd" ], + "content" : [ "acm025481jsd", "acm025482jsd", "acm025483jsd", "acm025484jsd", "acm025485jsd", "acm025486jsd", "acm025487jsd", "acm025488jsd", "acm025489jsd", "acm025490jsd", "acm025491jsd", "acm025492jsd" ] + }, + "acm025494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025494jsd", + "name" : "IsiImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025521jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025495jsd" : { + "type" : "CodePackage", + "id" : "acm025495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025496jsd" ] + }, + "acm025496jsd" : { + "type" : "CodePackage", + "id" : "acm025496jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025497jsd" ] + }, + "acm025497jsd" : { + "type" : "CodePackage", + "id" : "acm025497jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025498jsd" ] + }, + "acm025498jsd" : { + "type" : "CodePackage", + "id" : "acm025498jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025499jsd" ] + }, + "acm025499jsd" : { + "type" : "CodePackage", + "id" : "acm025499jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025494jsd" ] + }, + "acm025500jsd" : { + "type" : "ControlElement", + "id" : "acm025500jsd", + "name" : "fileNames" + }, + "acm025501jsd" : { + "type" : "ControlElement", + "id" : "acm025501jsd", + "name" : "invalidFileNames" + }, + "acm025502jsd" : { + "type" : "ControlElement", + "id" : "acm025502jsd", + "name" : "testParseMonthException" + }, + "acm025503jsd" : { + "type" : "ControlElement", + "id" : "acm025503jsd", + "name" : "testGetFormatName" + }, + "acm025504jsd" : { + "type" : "ControlElement", + "id" : "acm025504jsd", + "name" : "testGetCLIId" + }, + "acm025505jsd" : { + "type" : "ControlElement", + "id" : "acm025505jsd", + "name" : "testsGetExtensions" + }, + "acm025506jsd" : { + "type" : "ControlElement", + "id" : "acm025506jsd", + "name" : "testGetDescription" + }, + "acm025507jsd" : { + "type" : "ControlElement", + "id" : "acm025507jsd", + "name" : "testIsRecognizedFormatAccepted" + }, + "acm025508jsd" : { + "type" : "ControlElement", + "id" : "acm025508jsd", + "name" : "testIsRecognizedFormatRejected" + }, + "acm025509jsd" : { + "type" : "ControlElement", + "id" : "acm025509jsd", + "name" : "testProcessSubSup" + }, + "acm025510jsd" : { + "type" : "ControlElement", + "id" : "acm025510jsd", + "name" : "testImportEntries1" + }, + "acm025511jsd" : { + "type" : "ControlElement", + "id" : "acm025511jsd", + "name" : "testImportEntries2" + }, + "acm025512jsd" : { + "type" : "ControlElement", + "id" : "acm025512jsd", + "name" : "testImportEntriesINSPEC" + }, + "acm025513jsd" : { + "type" : "ControlElement", + "id" : "acm025513jsd", + "name" : "testImportEntriesWOS" + }, + "acm025514jsd" : { + "type" : "ControlElement", + "id" : "acm025514jsd", + "name" : "testIsiAuthorsConvert" + }, + "acm025515jsd" : { + "type" : "ControlElement", + "id" : "acm025515jsd", + "name" : "testMonthConvert" + }, + "acm025516jsd" : { + "type" : "ControlElement", + "id" : "acm025516jsd", + "name" : "testIsiAuthorConvert" + }, + "acm025517jsd" : { + "type" : "ControlElement", + "id" : "acm025517jsd", + "name" : "testImportIEEEExport" + }, + "acm025518jsd" : { + "type" : "ControlElement", + "id" : "acm025518jsd", + "name" : "testIEEEImport" + }, + "acm025519jsd" : { + "type" : "ControlElement", + "id" : "acm025519jsd", + "name" : "testImportEntriesMedline" + }, + "acm025520jsd" : { + "type" : "ControlElement", + "id" : "acm025520jsd", + "name" : "testImportEntriesEmpty" + }, + "acm025521jsd" : { + "type" : "ClassUnit", + "id" : "acm025521jsd", + "name" : "IsiImporterTest", + "compilationUnitId" : "acm025494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013950jsd", "acm018267jsd", "acm018673jsd", "acm018813jsd", "acm025521jsd" ], + "content" : [ "acm025500jsd", "acm025501jsd", "acm025502jsd", "acm025503jsd", "acm025504jsd", "acm025505jsd", "acm025506jsd", "acm025507jsd", "acm025508jsd", "acm025509jsd", "acm025510jsd", "acm025511jsd", "acm025512jsd", "acm025513jsd", "acm025514jsd", "acm025515jsd", "acm025516jsd", "acm025517jsd", "acm025518jsd", "acm025519jsd", "acm025520jsd" ] + }, + "acm025522jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025522jsd", + "name" : "MedlineImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025535jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025523jsd" : { + "type" : "CodePackage", + "id" : "acm025523jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025524jsd" ] + }, + "acm025524jsd" : { + "type" : "CodePackage", + "id" : "acm025524jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025525jsd" ] + }, + "acm025525jsd" : { + "type" : "CodePackage", + "id" : "acm025525jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025526jsd" ] + }, + "acm025526jsd" : { + "type" : "CodePackage", + "id" : "acm025526jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025527jsd" ] + }, + "acm025527jsd" : { + "type" : "CodePackage", + "id" : "acm025527jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025522jsd" ] + }, + "acm025528jsd" : { + "type" : "ControlElement", + "id" : "acm025528jsd", + "name" : "fileNames" + }, + "acm025529jsd" : { + "type" : "ControlElement", + "id" : "acm025529jsd", + "name" : "invalidFileNames" + }, + "acm025530jsd" : { + "type" : "ControlElement", + "id" : "acm025530jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025531jsd" : { + "type" : "ControlElement", + "id" : "acm025531jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025532jsd" : { + "type" : "ControlElement", + "id" : "acm025532jsd", + "name" : "testImportEntries" + }, + "acm025533jsd" : { + "type" : "ControlElement", + "id" : "acm025533jsd", + "name" : "malformedFileNames" + }, + "acm025534jsd" : { + "type" : "ControlElement", + "id" : "acm025534jsd", + "name" : "testImportMalfomedFiles" + }, + "acm025535jsd" : { + "type" : "ClassUnit", + "id" : "acm025535jsd", + "name" : "MedlineImporterFilesTest", + "compilationUnitId" : "acm025522jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014026jsd" ], + "content" : [ "acm025528jsd", "acm025529jsd", "acm025530jsd", "acm025531jsd", "acm025532jsd", "acm025533jsd", "acm025534jsd" ] + }, + "acm025536jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025536jsd", + "name" : "MedlineImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025547jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025537jsd" : { + "type" : "CodePackage", + "id" : "acm025537jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025538jsd" ] + }, + "acm025538jsd" : { + "type" : "CodePackage", + "id" : "acm025538jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025539jsd" ] + }, + "acm025539jsd" : { + "type" : "CodePackage", + "id" : "acm025539jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025540jsd" ] + }, + "acm025540jsd" : { + "type" : "CodePackage", + "id" : "acm025540jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025541jsd" ] + }, + "acm025541jsd" : { + "type" : "CodePackage", + "id" : "acm025541jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025536jsd" ] + }, + "acm025542jsd" : { + "type" : "ControlElement", + "id" : "acm025542jsd", + "name" : "setUp" + }, + "acm025543jsd" : { + "type" : "ControlElement", + "id" : "acm025543jsd", + "name" : "testGetFormatName" + }, + "acm025544jsd" : { + "type" : "ControlElement", + "id" : "acm025544jsd", + "name" : "testGetCLIId" + }, + "acm025545jsd" : { + "type" : "ControlElement", + "id" : "acm025545jsd", + "name" : "testsGetExtensions" + }, + "acm025546jsd" : { + "type" : "ControlElement", + "id" : "acm025546jsd", + "name" : "testGetDescription" + }, + "acm025547jsd" : { + "type" : "ClassUnit", + "id" : "acm025547jsd", + "name" : "MedlineImporterTest", + "compilationUnitId" : "acm025536jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014026jsd" ], + "content" : [ "acm025542jsd", "acm025543jsd", "acm025544jsd", "acm025545jsd", "acm025546jsd" ] + }, + "acm025548jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025548jsd", + "name" : "MedlinePlainImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025574jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025549jsd" : { + "type" : "CodePackage", + "id" : "acm025549jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025550jsd" ] + }, + "acm025550jsd" : { + "type" : "CodePackage", + "id" : "acm025550jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025551jsd" ] + }, + "acm025551jsd" : { + "type" : "CodePackage", + "id" : "acm025551jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025552jsd" ] + }, + "acm025552jsd" : { + "type" : "CodePackage", + "id" : "acm025552jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025553jsd" ] + }, + "acm025553jsd" : { + "type" : "CodePackage", + "id" : "acm025553jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025548jsd" ] + }, + "acm025554jsd" : { + "type" : "ControlElement", + "id" : "acm025554jsd", + "name" : "fileNames" + }, + "acm025555jsd" : { + "type" : "ControlElement", + "id" : "acm025555jsd", + "name" : "readerForString" + }, + "acm025556jsd" : { + "type" : "ControlElement", + "id" : "acm025556jsd", + "name" : "setUp" + }, + "acm025557jsd" : { + "type" : "ControlElement", + "id" : "acm025557jsd", + "name" : "testsGetExtensions" + }, + "acm025558jsd" : { + "type" : "ControlElement", + "id" : "acm025558jsd", + "name" : "testGetDescription" + }, + "acm025559jsd" : { + "type" : "ControlElement", + "id" : "acm025559jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025560jsd" : { + "type" : "ControlElement", + "id" : "acm025560jsd", + "name" : "doesNotRecognizeEmptyFiles" + }, + "acm025561jsd" : { + "type" : "ControlElement", + "id" : "acm025561jsd", + "name" : "testImportMultipleEntriesInSingleFile" + }, + "acm025562jsd" : { + "type" : "ControlElement", + "id" : "acm025562jsd", + "name" : "testEmptyFileImport" + }, + "acm025563jsd" : { + "type" : "ControlElement", + "id" : "acm025563jsd", + "name" : "testImportSingleEntriesInSingleFiles" + }, + "acm025564jsd" : { + "type" : "ControlElement", + "id" : "acm025564jsd", + "name" : "assertImportOfMedlineFileEqualsBibtexFile" + }, + "acm025565jsd" : { + "type" : "ControlElement", + "id" : "acm025565jsd", + "name" : "testMultiLineComments" + }, + "acm025566jsd" : { + "type" : "ControlElement", + "id" : "acm025566jsd", + "name" : "testKeyWords" + }, + "acm025567jsd" : { + "type" : "ControlElement", + "id" : "acm025567jsd", + "name" : "testWithNbibFile" + }, + "acm025568jsd" : { + "type" : "ControlElement", + "id" : "acm025568jsd", + "name" : "testWithMultipleEntries" + }, + "acm025569jsd" : { + "type" : "ControlElement", + "id" : "acm025569jsd", + "name" : "testInvalidFormat" + }, + "acm025570jsd" : { + "type" : "ControlElement", + "id" : "acm025570jsd", + "name" : "testNullReader" + }, + "acm025571jsd" : { + "type" : "ControlElement", + "id" : "acm025571jsd", + "name" : "testAllArticleTypes" + }, + "acm025572jsd" : { + "type" : "ControlElement", + "id" : "acm025572jsd", + "name" : "testGetFormatName" + }, + "acm025573jsd" : { + "type" : "ControlElement", + "id" : "acm025573jsd", + "name" : "testGetCLIId" + }, + "acm025574jsd" : { + "type" : "ClassUnit", + "id" : "acm025574jsd", + "name" : "MedlinePlainImporterTest", + "compilationUnitId" : "acm025548jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014049jsd", "acm018267jsd" ], + "content" : [ "acm025554jsd", "acm025555jsd", "acm025556jsd", "acm025557jsd", "acm025558jsd", "acm025559jsd", "acm025560jsd", "acm025561jsd", "acm025562jsd", "acm025563jsd", "acm025564jsd", "acm025565jsd", "acm025566jsd", "acm025567jsd", "acm025568jsd", "acm025569jsd", "acm025570jsd", "acm025571jsd", "acm025572jsd", "acm025573jsd" ] + }, + "acm025575jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025575jsd", + "name" : "ModsImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025585jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025576jsd" : { + "type" : "CodePackage", + "id" : "acm025576jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025577jsd" ] + }, + "acm025577jsd" : { + "type" : "CodePackage", + "id" : "acm025577jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025578jsd" ] + }, + "acm025578jsd" : { + "type" : "CodePackage", + "id" : "acm025578jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025579jsd" ] + }, + "acm025579jsd" : { + "type" : "CodePackage", + "id" : "acm025579jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025580jsd" ] + }, + "acm025580jsd" : { + "type" : "CodePackage", + "id" : "acm025580jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025575jsd" ] + }, + "acm025581jsd" : { + "type" : "ControlElement", + "id" : "acm025581jsd", + "name" : "fileNames" + }, + "acm025582jsd" : { + "type" : "ControlElement", + "id" : "acm025582jsd", + "name" : "setUp" + }, + "acm025583jsd" : { + "type" : "ControlElement", + "id" : "acm025583jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025584jsd" : { + "type" : "ControlElement", + "id" : "acm025584jsd", + "name" : "testImportEntries" + }, + "acm025585jsd" : { + "type" : "ClassUnit", + "id" : "acm025585jsd", + "name" : "ModsImporterFilesTest", + "compilationUnitId" : "acm025575jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014085jsd" ], + "content" : [ "acm025581jsd", "acm025582jsd", "acm025583jsd", "acm025584jsd" ] + }, + "acm025586jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025586jsd", + "name" : "MrDLibImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025599jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025587jsd" : { + "type" : "CodePackage", + "id" : "acm025587jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025588jsd" ] + }, + "acm025588jsd" : { + "type" : "CodePackage", + "id" : "acm025588jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025589jsd" ] + }, + "acm025589jsd" : { + "type" : "CodePackage", + "id" : "acm025589jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025590jsd" ] + }, + "acm025590jsd" : { + "type" : "CodePackage", + "id" : "acm025590jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025591jsd" ] + }, + "acm025591jsd" : { + "type" : "CodePackage", + "id" : "acm025591jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025586jsd" ] + }, + "acm025592jsd" : { + "type" : "ControlElement", + "id" : "acm025592jsd", + "name" : "setUp" + }, + "acm025593jsd" : { + "type" : "ControlElement", + "id" : "acm025593jsd", + "name" : "testGetDescription" + }, + "acm025594jsd" : { + "type" : "ControlElement", + "id" : "acm025594jsd", + "name" : "testGetName" + }, + "acm025595jsd" : { + "type" : "ControlElement", + "id" : "acm025595jsd", + "name" : "testGetFileExtention" + }, + "acm025596jsd" : { + "type" : "ControlElement", + "id" : "acm025596jsd", + "name" : "testImportDatabaseIsYearSetCorrectly" + }, + "acm025597jsd" : { + "type" : "ControlElement", + "id" : "acm025597jsd", + "name" : "testImportDatabaseIsTitleSetCorrectly" + }, + "acm025598jsd" : { + "type" : "ControlElement", + "id" : "acm025598jsd", + "name" : "testImportDatabaseMin" + }, + "acm025599jsd" : { + "type" : "ClassUnit", + "id" : "acm025599jsd", + "name" : "MrDLibImporterTest", + "compilationUnitId" : "acm025586jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014106jsd", "acm018267jsd" ], + "content" : [ "acm025592jsd", "acm025593jsd", "acm025594jsd", "acm025595jsd", "acm025596jsd", "acm025597jsd", "acm025598jsd" ] + }, + "acm025600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025600jsd", + "name" : "MsBibImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025611jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025601jsd" : { + "type" : "CodePackage", + "id" : "acm025601jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025602jsd" ] + }, + "acm025602jsd" : { + "type" : "CodePackage", + "id" : "acm025602jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025603jsd" ] + }, + "acm025603jsd" : { + "type" : "CodePackage", + "id" : "acm025603jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025604jsd" ] + }, + "acm025604jsd" : { + "type" : "CodePackage", + "id" : "acm025604jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025605jsd" ] + }, + "acm025605jsd" : { + "type" : "CodePackage", + "id" : "acm025605jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025600jsd" ] + }, + "acm025606jsd" : { + "type" : "ControlElement", + "id" : "acm025606jsd", + "name" : "fileNames" + }, + "acm025607jsd" : { + "type" : "ControlElement", + "id" : "acm025607jsd", + "name" : "invalidFileNames" + }, + "acm025608jsd" : { + "type" : "ControlElement", + "id" : "acm025608jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025609jsd" : { + "type" : "ControlElement", + "id" : "acm025609jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025610jsd" : { + "type" : "ControlElement", + "id" : "acm025610jsd", + "name" : "testImportEntries" + }, + "acm025611jsd" : { + "type" : "ClassUnit", + "id" : "acm025611jsd", + "name" : "MsBibImporterFilesTest", + "compilationUnitId" : "acm025600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014124jsd" ], + "content" : [ "acm025606jsd", "acm025607jsd", "acm025608jsd", "acm025609jsd", "acm025610jsd" ] + }, + "acm025612jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025612jsd", + "name" : "MsBibImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025625jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025613jsd" : { + "type" : "CodePackage", + "id" : "acm025613jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025614jsd" ] + }, + "acm025614jsd" : { + "type" : "CodePackage", + "id" : "acm025614jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025615jsd" ] + }, + "acm025615jsd" : { + "type" : "CodePackage", + "id" : "acm025615jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025616jsd" ] + }, + "acm025616jsd" : { + "type" : "CodePackage", + "id" : "acm025616jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025617jsd" ] + }, + "acm025617jsd" : { + "type" : "CodePackage", + "id" : "acm025617jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025612jsd" ] + }, + "acm025618jsd" : { + "type" : "ControlElement", + "id" : "acm025618jsd", + "name" : "testsGetExtensions" + }, + "acm025619jsd" : { + "type" : "ControlElement", + "id" : "acm025619jsd", + "name" : "testGetDescription" + }, + "acm025620jsd" : { + "type" : "ControlElement", + "id" : "acm025620jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025621jsd" : { + "type" : "ControlElement", + "id" : "acm025621jsd", + "name" : "testImportEntriesEmpty" + }, + "acm025622jsd" : { + "type" : "ControlElement", + "id" : "acm025622jsd", + "name" : "testImportEntriesNotRecognizedFormat" + }, + "acm025623jsd" : { + "type" : "ControlElement", + "id" : "acm025623jsd", + "name" : "testGetFormatName" + }, + "acm025624jsd" : { + "type" : "ControlElement", + "id" : "acm025624jsd", + "name" : "testGetCommandLineId" + }, + "acm025625jsd" : { + "type" : "ClassUnit", + "id" : "acm025625jsd", + "name" : "MsBibImporterTest", + "compilationUnitId" : "acm025612jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014124jsd", "acm018267jsd" ], + "content" : [ "acm025618jsd", "acm025619jsd", "acm025620jsd", "acm025621jsd", "acm025622jsd", "acm025623jsd", "acm025624jsd" ] + }, + "acm025626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025626jsd", + "name" : "OvidImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025645jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025627jsd" : { + "type" : "CodePackage", + "id" : "acm025627jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025628jsd" ] + }, + "acm025628jsd" : { + "type" : "CodePackage", + "id" : "acm025628jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025629jsd" ] + }, + "acm025629jsd" : { + "type" : "CodePackage", + "id" : "acm025629jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025630jsd" ] + }, + "acm025630jsd" : { + "type" : "CodePackage", + "id" : "acm025630jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025631jsd" ] + }, + "acm025631jsd" : { + "type" : "CodePackage", + "id" : "acm025631jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025626jsd" ] + }, + "acm025632jsd" : { + "type" : "ControlElement", + "id" : "acm025632jsd", + "name" : "fileNames" + }, + "acm025633jsd" : { + "type" : "ControlElement", + "id" : "acm025633jsd", + "name" : "invalidFileNames" + }, + "acm025634jsd" : { + "type" : "ControlElement", + "id" : "acm025634jsd", + "name" : "setUp" + }, + "acm025635jsd" : { + "type" : "ControlElement", + "id" : "acm025635jsd", + "name" : "testGetFormatName" + }, + "acm025636jsd" : { + "type" : "ControlElement", + "id" : "acm025636jsd", + "name" : "testGetCLIId" + }, + "acm025637jsd" : { + "type" : "ControlElement", + "id" : "acm025637jsd", + "name" : "testsGetExtensions" + }, + "acm025638jsd" : { + "type" : "ControlElement", + "id" : "acm025638jsd", + "name" : "testGetDescription" + }, + "acm025639jsd" : { + "type" : "ControlElement", + "id" : "acm025639jsd", + "name" : "testIsRecognizedFormatAccept" + }, + "acm025640jsd" : { + "type" : "ControlElement", + "id" : "acm025640jsd", + "name" : "testIsRecognizedFormatRejected" + }, + "acm025641jsd" : { + "type" : "ControlElement", + "id" : "acm025641jsd", + "name" : "testImportEmpty" + }, + "acm025642jsd" : { + "type" : "ControlElement", + "id" : "acm025642jsd", + "name" : "testImportEntries1" + }, + "acm025643jsd" : { + "type" : "ControlElement", + "id" : "acm025643jsd", + "name" : "testImportEntries2" + }, + "acm025644jsd" : { + "type" : "ControlElement", + "id" : "acm025644jsd", + "name" : "testImportSingleEntries" + }, + "acm025645jsd" : { + "type" : "ClassUnit", + "id" : "acm025645jsd", + "name" : "OvidImporterTest", + "compilationUnitId" : "acm025626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014137jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm025632jsd", "acm025633jsd", "acm025634jsd", "acm025635jsd", "acm025636jsd", "acm025637jsd", "acm025638jsd", "acm025639jsd", "acm025640jsd", "acm025641jsd", "acm025642jsd", "acm025643jsd", "acm025644jsd" ] + }, + "acm025646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025646jsd", + "name" : "PdfContentImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025655jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025647jsd" : { + "type" : "CodePackage", + "id" : "acm025647jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025648jsd" ] + }, + "acm025648jsd" : { + "type" : "CodePackage", + "id" : "acm025648jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025649jsd" ] + }, + "acm025649jsd" : { + "type" : "CodePackage", + "id" : "acm025649jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025650jsd" ] + }, + "acm025650jsd" : { + "type" : "CodePackage", + "id" : "acm025650jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025651jsd" ] + }, + "acm025651jsd" : { + "type" : "CodePackage", + "id" : "acm025651jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025646jsd" ] + }, + "acm025652jsd" : { + "type" : "ControlElement", + "id" : "acm025652jsd", + "name" : "fileNames" + }, + "acm025653jsd" : { + "type" : "ControlElement", + "id" : "acm025653jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025654jsd" : { + "type" : "ControlElement", + "id" : "acm025654jsd", + "name" : "testImportEntries" + }, + "acm025655jsd" : { + "type" : "ClassUnit", + "id" : "acm025655jsd", + "name" : "PdfContentImporterFilesTest", + "compilationUnitId" : "acm025646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014161jsd" ], + "content" : [ "acm025652jsd", "acm025653jsd", "acm025654jsd" ] + }, + "acm025656jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025656jsd", + "name" : "PdfContentImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025669jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025657jsd" : { + "type" : "CodePackage", + "id" : "acm025657jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025658jsd" ] + }, + "acm025658jsd" : { + "type" : "CodePackage", + "id" : "acm025658jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025659jsd" ] + }, + "acm025659jsd" : { + "type" : "CodePackage", + "id" : "acm025659jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025660jsd" ] + }, + "acm025660jsd" : { + "type" : "CodePackage", + "id" : "acm025660jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025661jsd" ] + }, + "acm025661jsd" : { + "type" : "CodePackage", + "id" : "acm025661jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025656jsd" ] + }, + "acm025662jsd" : { + "type" : "ControlElement", + "id" : "acm025662jsd", + "name" : "setUp" + }, + "acm025663jsd" : { + "type" : "ControlElement", + "id" : "acm025663jsd", + "name" : "testsGetExtensions" + }, + "acm025664jsd" : { + "type" : "ControlElement", + "id" : "acm025664jsd", + "name" : "testGetDescription" + }, + "acm025665jsd" : { + "type" : "ControlElement", + "id" : "acm025665jsd", + "name" : "doesNotHandleEncryptedPdfs" + }, + "acm025666jsd" : { + "type" : "ControlElement", + "id" : "acm025666jsd", + "name" : "importTwiceWorksAsExpected" + }, + "acm025667jsd" : { + "type" : "ControlElement", + "id" : "acm025667jsd", + "name" : "testParsingEditorWithoutPagesorSeriesInformation" + }, + "acm025668jsd" : { + "type" : "ControlElement", + "id" : "acm025668jsd", + "name" : "testParsingWithoutActualDOINumber" + }, + "acm025669jsd" : { + "type" : "ClassUnit", + "id" : "acm025669jsd", + "name" : "PdfContentImporterTest", + "compilationUnitId" : "acm025656jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014161jsd", "acm018267jsd", "acm018509jsd" ], + "content" : [ "acm025662jsd", "acm025663jsd", "acm025664jsd", "acm025665jsd", "acm025666jsd", "acm025667jsd", "acm025668jsd" ] + }, + "acm025670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025670jsd", + "name" : "PdfEmbeddedBibFileImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025681jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025671jsd" : { + "type" : "CodePackage", + "id" : "acm025671jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025672jsd" ] + }, + "acm025672jsd" : { + "type" : "CodePackage", + "id" : "acm025672jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025673jsd" ] + }, + "acm025673jsd" : { + "type" : "CodePackage", + "id" : "acm025673jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025674jsd" ] + }, + "acm025674jsd" : { + "type" : "CodePackage", + "id" : "acm025674jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025675jsd" ] + }, + "acm025675jsd" : { + "type" : "CodePackage", + "id" : "acm025675jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025670jsd" ] + }, + "acm025676jsd" : { + "type" : "ControlElement", + "id" : "acm025676jsd", + "name" : "setUp" + }, + "acm025677jsd" : { + "type" : "ControlElement", + "id" : "acm025677jsd", + "name" : "testsGetExtensions" + }, + "acm025678jsd" : { + "type" : "ControlElement", + "id" : "acm025678jsd", + "name" : "testGetDescription" + }, + "acm025679jsd" : { + "type" : "ControlElement", + "id" : "acm025679jsd", + "name" : "doesNotHandleEncryptedPdfs" + }, + "acm025680jsd" : { + "type" : "ControlElement", + "id" : "acm025680jsd", + "name" : "importWorksAsExpected" + }, + "acm025681jsd" : { + "type" : "ClassUnit", + "id" : "acm025681jsd", + "name" : "PdfEmbeddedBibFileImporterTest", + "compilationUnitId" : "acm025670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014180jsd", "acm018267jsd", "acm025681jsd" ], + "content" : [ "acm025676jsd", "acm025677jsd", "acm025678jsd", "acm025679jsd", "acm025680jsd" ] + }, + "acm025682jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025682jsd", + "name" : "PdfGrobidImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025694jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025683jsd" : { + "type" : "CodePackage", + "id" : "acm025683jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025684jsd" ] + }, + "acm025684jsd" : { + "type" : "CodePackage", + "id" : "acm025684jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025685jsd" ] + }, + "acm025685jsd" : { + "type" : "CodePackage", + "id" : "acm025685jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025686jsd" ] + }, + "acm025686jsd" : { + "type" : "CodePackage", + "id" : "acm025686jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025687jsd" ] + }, + "acm025687jsd" : { + "type" : "CodePackage", + "id" : "acm025687jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025682jsd" ] + }, + "acm025688jsd" : { + "type" : "ControlElement", + "id" : "acm025688jsd", + "name" : "setUp" + }, + "acm025689jsd" : { + "type" : "ControlElement", + "id" : "acm025689jsd", + "name" : "testsGetExtensions" + }, + "acm025690jsd" : { + "type" : "ControlElement", + "id" : "acm025690jsd", + "name" : "testImportEntries" + }, + "acm025691jsd" : { + "type" : "ControlElement", + "id" : "acm025691jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025692jsd" : { + "type" : "ControlElement", + "id" : "acm025692jsd", + "name" : "testIsRecognizedFormatReject" + }, + "acm025693jsd" : { + "type" : "ControlElement", + "id" : "acm025693jsd", + "name" : "testGetCommandLineId" + }, + "acm025694jsd" : { + "type" : "ClassUnit", + "id" : "acm025694jsd", + "name" : "PdfGrobidImporterTest", + "compilationUnitId" : "acm025682jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013062jsd", "acm014197jsd", "acm018267jsd", "acm025694jsd" ], + "content" : [ "acm025688jsd", "acm025689jsd", "acm025690jsd", "acm025691jsd", "acm025692jsd", "acm025693jsd" ] + }, + "acm025695jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025695jsd", + "name" : "PdfMergeMetadataImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025706jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025696jsd" : { + "type" : "CodePackage", + "id" : "acm025696jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025697jsd" ] + }, + "acm025697jsd" : { + "type" : "CodePackage", + "id" : "acm025697jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025698jsd" ] + }, + "acm025698jsd" : { + "type" : "CodePackage", + "id" : "acm025698jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025699jsd" ] + }, + "acm025699jsd" : { + "type" : "CodePackage", + "id" : "acm025699jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025700jsd" ] + }, + "acm025700jsd" : { + "type" : "CodePackage", + "id" : "acm025700jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025695jsd" ] + }, + "acm025701jsd" : { + "type" : "ControlElement", + "id" : "acm025701jsd", + "name" : "setUp" + }, + "acm025702jsd" : { + "type" : "ControlElement", + "id" : "acm025702jsd", + "name" : "testsGetExtensions" + }, + "acm025703jsd" : { + "type" : "ControlElement", + "id" : "acm025703jsd", + "name" : "testGetDescription" + }, + "acm025704jsd" : { + "type" : "ControlElement", + "id" : "acm025704jsd", + "name" : "doesNotHandleEncryptedPdfs" + }, + "acm025705jsd" : { + "type" : "ControlElement", + "id" : "acm025705jsd", + "name" : "importWorksAsExpected" + }, + "acm025706jsd" : { + "type" : "ClassUnit", + "id" : "acm025706jsd", + "name" : "PdfMergeMetadataImporterTest", + "compilationUnitId" : "acm025695jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013062jsd", "acm014214jsd", "acm018267jsd", "acm018509jsd", "acm018813jsd", "acm025706jsd" ], + "content" : [ "acm025701jsd", "acm025702jsd", "acm025703jsd", "acm025704jsd", "acm025705jsd" ] + }, + "acm025707jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025707jsd", + "name" : "PdfVerbatimBibTextImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025718jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025708jsd" : { + "type" : "CodePackage", + "id" : "acm025708jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025709jsd" ] + }, + "acm025709jsd" : { + "type" : "CodePackage", + "id" : "acm025709jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025710jsd" ] + }, + "acm025710jsd" : { + "type" : "CodePackage", + "id" : "acm025710jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025711jsd" ] + }, + "acm025711jsd" : { + "type" : "CodePackage", + "id" : "acm025711jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025712jsd" ] + }, + "acm025712jsd" : { + "type" : "CodePackage", + "id" : "acm025712jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025707jsd" ] + }, + "acm025713jsd" : { + "type" : "ControlElement", + "id" : "acm025713jsd", + "name" : "setUp" + }, + "acm025714jsd" : { + "type" : "ControlElement", + "id" : "acm025714jsd", + "name" : "testsGetExtensions" + }, + "acm025715jsd" : { + "type" : "ControlElement", + "id" : "acm025715jsd", + "name" : "testGetDescription" + }, + "acm025716jsd" : { + "type" : "ControlElement", + "id" : "acm025716jsd", + "name" : "doesNotHandleEncryptedPdfs" + }, + "acm025717jsd" : { + "type" : "ControlElement", + "id" : "acm025717jsd", + "name" : "importTwiceWorksAsExpected" + }, + "acm025718jsd" : { + "type" : "ClassUnit", + "id" : "acm025718jsd", + "name" : "PdfVerbatimBibTextImporterTest", + "compilationUnitId" : "acm025707jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014233jsd", "acm018267jsd", "acm018509jsd", "acm025718jsd" ], + "content" : [ "acm025713jsd", "acm025714jsd", "acm025715jsd", "acm025716jsd", "acm025717jsd" ] + }, + "acm025719jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025719jsd", + "name" : "PdfXmpImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025735jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025720jsd" : { + "type" : "CodePackage", + "id" : "acm025720jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025721jsd" ] + }, + "acm025721jsd" : { + "type" : "CodePackage", + "id" : "acm025721jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025722jsd" ] + }, + "acm025722jsd" : { + "type" : "CodePackage", + "id" : "acm025722jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025723jsd" ] + }, + "acm025723jsd" : { + "type" : "CodePackage", + "id" : "acm025723jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025724jsd" ] + }, + "acm025724jsd" : { + "type" : "CodePackage", + "id" : "acm025724jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025719jsd" ] + }, + "acm025725jsd" : { + "type" : "ControlElement", + "id" : "acm025725jsd", + "name" : "invalidFileNames" + }, + "acm025726jsd" : { + "type" : "ControlElement", + "id" : "acm025726jsd", + "name" : "setUp" + }, + "acm025727jsd" : { + "type" : "ControlElement", + "id" : "acm025727jsd", + "name" : "testGetFormatName" + }, + "acm025728jsd" : { + "type" : "ControlElement", + "id" : "acm025728jsd", + "name" : "testsGetExtensions" + }, + "acm025729jsd" : { + "type" : "ControlElement", + "id" : "acm025729jsd", + "name" : "testGetDescription" + }, + "acm025730jsd" : { + "type" : "ControlElement", + "id" : "acm025730jsd", + "name" : "importEncryptedFileReturnsError" + }, + "acm025731jsd" : { + "type" : "ControlElement", + "id" : "acm025731jsd", + "name" : "testImportEntries" + }, + "acm025732jsd" : { + "type" : "ControlElement", + "id" : "acm025732jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025733jsd" : { + "type" : "ControlElement", + "id" : "acm025733jsd", + "name" : "testIsRecognizedFormatReject" + }, + "acm025734jsd" : { + "type" : "ControlElement", + "id" : "acm025734jsd", + "name" : "testGetCommandLineId" + }, + "acm025735jsd" : { + "type" : "ClassUnit", + "id" : "acm025735jsd", + "name" : "PdfXmpImporterTest", + "compilationUnitId" : "acm025719jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm014250jsd", "acm017745jsd", "acm018267jsd", "acm025735jsd" ], + "content" : [ "acm025725jsd", "acm025726jsd", "acm025727jsd", "acm025728jsd", "acm025729jsd", "acm025730jsd", "acm025731jsd", "acm025732jsd", "acm025733jsd", "acm025734jsd" ] + }, + "acm025736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025736jsd", + "name" : "RISImporterFilesTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025745jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025737jsd" : { + "type" : "CodePackage", + "id" : "acm025737jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025738jsd" ] + }, + "acm025738jsd" : { + "type" : "CodePackage", + "id" : "acm025738jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025739jsd" ] + }, + "acm025739jsd" : { + "type" : "CodePackage", + "id" : "acm025739jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025740jsd" ] + }, + "acm025740jsd" : { + "type" : "CodePackage", + "id" : "acm025740jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025741jsd" ] + }, + "acm025741jsd" : { + "type" : "CodePackage", + "id" : "acm025741jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025736jsd" ] + }, + "acm025742jsd" : { + "type" : "ControlElement", + "id" : "acm025742jsd", + "name" : "fileNames" + }, + "acm025743jsd" : { + "type" : "ControlElement", + "id" : "acm025743jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025744jsd" : { + "type" : "ControlElement", + "id" : "acm025744jsd", + "name" : "testImportEntries" + }, + "acm025745jsd" : { + "type" : "ClassUnit", + "id" : "acm025745jsd", + "name" : "RISImporterFilesTest", + "compilationUnitId" : "acm025736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014299jsd" ], + "content" : [ "acm025742jsd", "acm025743jsd", "acm025744jsd" ] + }, + "acm025746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025746jsd", + "name" : "RISImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025758jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025747jsd" : { + "type" : "CodePackage", + "id" : "acm025747jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025748jsd" ] + }, + "acm025748jsd" : { + "type" : "CodePackage", + "id" : "acm025748jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025749jsd" ] + }, + "acm025749jsd" : { + "type" : "CodePackage", + "id" : "acm025749jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025750jsd" ] + }, + "acm025750jsd" : { + "type" : "CodePackage", + "id" : "acm025750jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025751jsd" ] + }, + "acm025751jsd" : { + "type" : "CodePackage", + "id" : "acm025751jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025746jsd" ] + }, + "acm025752jsd" : { + "type" : "ControlElement", + "id" : "acm025752jsd", + "name" : "setUp" + }, + "acm025753jsd" : { + "type" : "ControlElement", + "id" : "acm025753jsd", + "name" : "testGetFormatName" + }, + "acm025754jsd" : { + "type" : "ControlElement", + "id" : "acm025754jsd", + "name" : "testGetCLIId" + }, + "acm025755jsd" : { + "type" : "ControlElement", + "id" : "acm025755jsd", + "name" : "testsGetExtensions" + }, + "acm025756jsd" : { + "type" : "ControlElement", + "id" : "acm025756jsd", + "name" : "testGetDescription" + }, + "acm025757jsd" : { + "type" : "ControlElement", + "id" : "acm025757jsd", + "name" : "testIfNotRecognizedFormat" + }, + "acm025758jsd" : { + "type" : "ClassUnit", + "id" : "acm025758jsd", + "name" : "RISImporterTest", + "compilationUnitId" : "acm025746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014299jsd", "acm025758jsd" ], + "content" : [ "acm025752jsd", "acm025753jsd", "acm025754jsd", "acm025755jsd", "acm025756jsd", "acm025757jsd" ] + }, + "acm025759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025759jsd", + "name" : "RepecNepImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025775jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025760jsd" : { + "type" : "CodePackage", + "id" : "acm025760jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025761jsd" ] + }, + "acm025761jsd" : { + "type" : "CodePackage", + "id" : "acm025761jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025762jsd" ] + }, + "acm025762jsd" : { + "type" : "CodePackage", + "id" : "acm025762jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025763jsd" ] + }, + "acm025763jsd" : { + "type" : "CodePackage", + "id" : "acm025763jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025764jsd" ] + }, + "acm025764jsd" : { + "type" : "CodePackage", + "id" : "acm025764jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025759jsd" ] + }, + "acm025765jsd" : { + "type" : "ControlElement", + "id" : "acm025765jsd", + "name" : "setUp" + }, + "acm025766jsd" : { + "type" : "ControlElement", + "id" : "acm025766jsd", + "name" : "fileNames" + }, + "acm025767jsd" : { + "type" : "ControlElement", + "id" : "acm025767jsd", + "name" : "invalidFileNames" + }, + "acm025768jsd" : { + "type" : "ControlElement", + "id" : "acm025768jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025769jsd" : { + "type" : "ControlElement", + "id" : "acm025769jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025770jsd" : { + "type" : "ControlElement", + "id" : "acm025770jsd", + "name" : "testImportEntries" + }, + "acm025771jsd" : { + "type" : "ControlElement", + "id" : "acm025771jsd", + "name" : "testGetFormatName" + }, + "acm025772jsd" : { + "type" : "ControlElement", + "id" : "acm025772jsd", + "name" : "testGetCliId" + }, + "acm025773jsd" : { + "type" : "ControlElement", + "id" : "acm025773jsd", + "name" : "testGetExtension" + }, + "acm025774jsd" : { + "type" : "ControlElement", + "id" : "acm025774jsd", + "name" : "testGetDescription" + }, + "acm025775jsd" : { + "type" : "ClassUnit", + "id" : "acm025775jsd", + "name" : "RepecNepImporterTest", + "compilationUnitId" : "acm025759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014286jsd" ], + "content" : [ "acm025765jsd", "acm025766jsd", "acm025767jsd", "acm025768jsd", "acm025769jsd", "acm025770jsd", "acm025771jsd", "acm025772jsd", "acm025773jsd", "acm025774jsd" ] + }, + "acm025776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025776jsd", + "name" : "SilverPlatterImporterTest", + "parentId" : "acm013673jsd", + "content" : [ "acm025790jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "fileformat" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025777jsd" : { + "type" : "CodePackage", + "id" : "acm025777jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025778jsd" ] + }, + "acm025778jsd" : { + "type" : "CodePackage", + "id" : "acm025778jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025779jsd" ] + }, + "acm025779jsd" : { + "type" : "CodePackage", + "id" : "acm025779jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025780jsd" ] + }, + "acm025780jsd" : { + "type" : "CodePackage", + "id" : "acm025780jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025781jsd" ] + }, + "acm025781jsd" : { + "type" : "CodePackage", + "id" : "acm025781jsd", + "name" : "fileformat", + "parentId" : null, + "content" : [ "acm025776jsd" ] + }, + "acm025782jsd" : { + "type" : "ControlElement", + "id" : "acm025782jsd", + "name" : "setUp" + }, + "acm025783jsd" : { + "type" : "ControlElement", + "id" : "acm025783jsd", + "name" : "fileNames" + }, + "acm025784jsd" : { + "type" : "ControlElement", + "id" : "acm025784jsd", + "name" : "invalidFileNames" + }, + "acm025785jsd" : { + "type" : "ControlElement", + "id" : "acm025785jsd", + "name" : "testIsRecognizedFormat" + }, + "acm025786jsd" : { + "type" : "ControlElement", + "id" : "acm025786jsd", + "name" : "testIsNotRecognizedFormat" + }, + "acm025787jsd" : { + "type" : "ControlElement", + "id" : "acm025787jsd", + "name" : "testImportEntries" + }, + "acm025788jsd" : { + "type" : "ControlElement", + "id" : "acm025788jsd", + "name" : "testsGetExtensions" + }, + "acm025789jsd" : { + "type" : "ControlElement", + "id" : "acm025789jsd", + "name" : "testGetDescription" + }, + "acm025790jsd" : { + "type" : "ClassUnit", + "id" : "acm025790jsd", + "name" : "SilverPlatterImporterTest", + "compilationUnitId" : "acm025776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012455jsd", "acm014311jsd" ], + "content" : [ "acm025782jsd", "acm025783jsd", "acm025784jsd", "acm025785jsd", "acm025786jsd", "acm025787jsd", "acm025788jsd", "acm025789jsd" ] + }, + "acm025791jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025791jsd", + "name" : "FileFieldParserTest", + "parentId" : "acm014380jsd", + "content" : [ "acm025801jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025792jsd" : { + "type" : "CodePackage", + "id" : "acm025792jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025793jsd" ] + }, + "acm025793jsd" : { + "type" : "CodePackage", + "id" : "acm025793jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025794jsd" ] + }, + "acm025794jsd" : { + "type" : "CodePackage", + "id" : "acm025794jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025795jsd" ] + }, + "acm025795jsd" : { + "type" : "CodePackage", + "id" : "acm025795jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025796jsd" ] + }, + "acm025796jsd" : { + "type" : "CodePackage", + "id" : "acm025796jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm025791jsd" ] + }, + "acm025797jsd" : { + "type" : "ControlElement", + "id" : "acm025797jsd", + "name" : "testData" + }, + "acm025798jsd" : { + "type" : "ControlElement", + "id" : "acm025798jsd", + "name" : "check" + }, + "acm025799jsd" : { + "type" : "ControlElement", + "id" : "acm025799jsd", + "name" : "stringsToParseTest" + }, + "acm025800jsd" : { + "type" : "ControlElement", + "id" : "acm025800jsd", + "name" : "stringsToParseTest" + }, + "acm025801jsd" : { + "type" : "ClassUnit", + "id" : "acm025801jsd", + "name" : "FileFieldParserTest", + "compilationUnitId" : "acm025791jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018509jsd" ], + "content" : [ "acm025797jsd", "acm025798jsd", "acm025799jsd", "acm025800jsd" ] + }, + "acm025802jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025802jsd", + "name" : "GrobidServiceTest", + "parentId" : "acm014380jsd", + "content" : [ "acm025814jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025803jsd" : { + "type" : "CodePackage", + "id" : "acm025803jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025804jsd" ] + }, + "acm025804jsd" : { + "type" : "CodePackage", + "id" : "acm025804jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025805jsd" ] + }, + "acm025805jsd" : { + "type" : "CodePackage", + "id" : "acm025805jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025806jsd" ] + }, + "acm025806jsd" : { + "type" : "CodePackage", + "id" : "acm025806jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025807jsd" ] + }, + "acm025807jsd" : { + "type" : "CodePackage", + "id" : "acm025807jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm025802jsd" ] + }, + "acm025808jsd" : { + "type" : "ControlElement", + "id" : "acm025808jsd", + "name" : "setup" + }, + "acm025809jsd" : { + "type" : "ControlElement", + "id" : "acm025809jsd", + "name" : "processValidCitationTest" + }, + "acm025810jsd" : { + "type" : "ControlElement", + "id" : "acm025810jsd", + "name" : "processEmptyStringTest" + }, + "acm025811jsd" : { + "type" : "ControlElement", + "id" : "acm025811jsd", + "name" : "processInvalidCitationTest" + }, + "acm025812jsd" : { + "type" : "ControlElement", + "id" : "acm025812jsd", + "name" : "failsWhenGrobidDisabled" + }, + "acm025813jsd" : { + "type" : "ControlElement", + "id" : "acm025813jsd", + "name" : "processPdfTest" + }, + "acm025814jsd" : { + "type" : "ClassUnit", + "id" : "acm025814jsd", + "name" : "GrobidServiceTest", + "compilationUnitId" : "acm025802jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd", "acm013062jsd", "acm014398jsd", "acm018267jsd", "acm025694jsd" ], + "content" : [ "acm025808jsd", "acm025809jsd", "acm025810jsd", "acm025811jsd", "acm025812jsd", "acm025813jsd" ] + }, + "acm025815jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025815jsd", + "name" : "GroupsParserTest", + "parentId" : "acm014380jsd", + "content" : [ "acm025833jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025816jsd" : { + "type" : "CodePackage", + "id" : "acm025816jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025817jsd" ] + }, + "acm025817jsd" : { + "type" : "CodePackage", + "id" : "acm025817jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025818jsd" ] + }, + "acm025818jsd" : { + "type" : "CodePackage", + "id" : "acm025818jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025819jsd" ] + }, + "acm025819jsd" : { + "type" : "CodePackage", + "id" : "acm025819jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025820jsd" ] + }, + "acm025820jsd" : { + "type" : "CodePackage", + "id" : "acm025820jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm025815jsd" ] + }, + "acm025821jsd" : { + "type" : "ControlElement", + "id" : "acm025821jsd", + "name" : "setUp" + }, + "acm025822jsd" : { + "type" : "ControlElement", + "id" : "acm025822jsd", + "name" : "fromStringParsesExplicitGroupWithEscapedCharacterInName" + }, + "acm025823jsd" : { + "type" : "ControlElement", + "id" : "acm025823jsd", + "name" : "keywordDelimiterThatNeedsToBeEscaped" + }, + "acm025824jsd" : { + "type" : "ControlElement", + "id" : "acm025824jsd", + "name" : "hierarchicalDelimiterThatNeedsToBeEscaped" + }, + "acm025825jsd" : { + "type" : "ControlElement", + "id" : "acm025825jsd", + "name" : "fromStringThrowsParseExceptionForNotEscapedGroupName" + }, + "acm025826jsd" : { + "type" : "ControlElement", + "id" : "acm025826jsd", + "name" : "testImportSubGroups" + }, + "acm025827jsd" : { + "type" : "ControlElement", + "id" : "acm025827jsd", + "name" : "fromStringParsesExplicitGroupWithIconAndDescription" + }, + "acm025828jsd" : { + "type" : "ControlElement", + "id" : "acm025828jsd", + "name" : "fromStringParsesAutomaticKeywordGroup" + }, + "acm025829jsd" : { + "type" : "ControlElement", + "id" : "acm025829jsd", + "name" : "fromStringParsesAutomaticPersonGroup" + }, + "acm025830jsd" : { + "type" : "ControlElement", + "id" : "acm025830jsd", + "name" : "fromStringParsesTexGroup" + }, + "acm025831jsd" : { + "type" : "ControlElement", + "id" : "acm025831jsd", + "name" : "fromStringUnknownGroupThrowsException" + }, + "acm025832jsd" : { + "type" : "ControlElement", + "id" : "acm025832jsd", + "name" : "fromStringParsesSearchGroup" + }, + "acm025833jsd" : { + "type" : "ClassUnit", + "id" : "acm025833jsd", + "name" : "GroupsParserTest", + "compilationUnitId" : "acm025815jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010458jsd", "acm012515jsd", "acm017988jsd", "acm019107jsd", "acm019130jsd", "acm019145jsd", "acm019157jsd", "acm019171jsd", "acm019221jsd", "acm019271jsd", "acm019293jsd", "acm019421jsd", "acm020676jsd", "acm020693jsd" ], + "content" : [ "acm025821jsd", "acm025822jsd", "acm025823jsd", "acm025824jsd", "acm025825jsd", "acm025826jsd", "acm025827jsd", "acm025828jsd", "acm025829jsd", "acm025830jsd", "acm025831jsd", "acm025832jsd" ] + }, + "acm025834jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025834jsd", + "name" : "JsonReaderTest", + "parentId" : "acm014380jsd", + "content" : [ "acm025845jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025835jsd" : { + "type" : "CodePackage", + "id" : "acm025835jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025836jsd" ] + }, + "acm025836jsd" : { + "type" : "CodePackage", + "id" : "acm025836jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025837jsd" ] + }, + "acm025837jsd" : { + "type" : "CodePackage", + "id" : "acm025837jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025838jsd" ] + }, + "acm025838jsd" : { + "type" : "CodePackage", + "id" : "acm025838jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025839jsd" ] + }, + "acm025839jsd" : { + "type" : "CodePackage", + "id" : "acm025839jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm025834jsd" ] + }, + "acm025840jsd" : { + "type" : "ControlElement", + "id" : "acm025840jsd", + "name" : "nullStreamThrowsNullPointerException" + }, + "acm025841jsd" : { + "type" : "ControlElement", + "id" : "acm025841jsd", + "name" : "invalidJsonThrowsParserException" + }, + "acm025842jsd" : { + "type" : "ControlElement", + "id" : "acm025842jsd", + "name" : "emptyStringResultsInEmptyObject" + }, + "acm025843jsd" : { + "type" : "ControlElement", + "id" : "acm025843jsd", + "name" : "arrayThrowsParserException" + }, + "acm025844jsd" : { + "type" : "ControlElement", + "id" : "acm025844jsd", + "name" : "exampleJsonResultsInSameJson" + }, + "acm025845jsd" : { + "type" : "ClassUnit", + "id" : "acm025845jsd", + "name" : "JsonReaderTest", + "compilationUnitId" : "acm025834jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012515jsd" ], + "content" : [ "acm025840jsd", "acm025841jsd", "acm025842jsd", "acm025843jsd", "acm025844jsd" ] + }, + "acm025846jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025846jsd", + "name" : "ShortDOIServiceTest", + "parentId" : "acm014380jsd", + "content" : [ "acm025855jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "importer", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025847jsd" : { + "type" : "CodePackage", + "id" : "acm025847jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025848jsd" ] + }, + "acm025848jsd" : { + "type" : "CodePackage", + "id" : "acm025848jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025849jsd" ] + }, + "acm025849jsd" : { + "type" : "CodePackage", + "id" : "acm025849jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025850jsd" ] + }, + "acm025850jsd" : { + "type" : "CodePackage", + "id" : "acm025850jsd", + "name" : "importer", + "parentId" : null, + "content" : [ "acm025851jsd" ] + }, + "acm025851jsd" : { + "type" : "CodePackage", + "id" : "acm025851jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm025846jsd" ] + }, + "acm025852jsd" : { + "type" : "ControlElement", + "id" : "acm025852jsd", + "name" : "setUp" + }, + "acm025853jsd" : { + "type" : "ControlElement", + "id" : "acm025853jsd", + "name" : "getShortDOI" + }, + "acm025854jsd" : { + "type" : "ControlElement", + "id" : "acm025854jsd", + "name" : "shouldThrowExceptionWhenDOIWasNotFound" + }, + "acm025855jsd" : { + "type" : "ClassUnit", + "id" : "acm025855jsd", + "name" : "ShortDOIServiceTest", + "compilationUnitId" : "acm025846jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014482jsd", "acm014494jsd", "acm018865jsd" ], + "content" : [ "acm025852jsd", "acm025853jsd", "acm025854jsd" ] + }, + "acm025856jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025856jsd", + "name" : "ASCIICharacterCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025866jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025857jsd" : { + "type" : "CodePackage", + "id" : "acm025857jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025858jsd" ] + }, + "acm025858jsd" : { + "type" : "CodePackage", + "id" : "acm025858jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025859jsd" ] + }, + "acm025859jsd" : { + "type" : "CodePackage", + "id" : "acm025859jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025860jsd" ] + }, + "acm025860jsd" : { + "type" : "CodePackage", + "id" : "acm025860jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025856jsd" ] + }, + "acm025861jsd" : { + "type" : "ControlElement", + "id" : "acm025861jsd", + "name" : "fieldAcceptsAsciiCharacters" + }, + "acm025862jsd" : { + "type" : "ControlElement", + "id" : "acm025862jsd", + "name" : "fieldDoesNotAcceptUmlauts" + }, + "acm025863jsd" : { + "type" : "ControlElement", + "id" : "acm025863jsd", + "name" : "fieldDoesNotAcceptUnicode" + }, + "acm025864jsd" : { + "type" : "ControlElement", + "id" : "acm025864jsd", + "name" : "fieldAcceptsOnlyAsciiCharacters" + }, + "acm025865jsd" : { + "type" : "ControlElement", + "id" : "acm025865jsd", + "name" : "fieldDoesNotAcceptNonAsciiCharacters" + }, + "acm025866jsd" : { + "type" : "ClassUnit", + "id" : "acm025866jsd", + "name" : "ASCIICharacterCheckerTest", + "compilationUnitId" : "acm025856jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014501jsd", "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm025861jsd", "acm025862jsd", "acm025863jsd", "acm025864jsd", "acm025865jsd" ] + }, + "acm025867jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025867jsd", + "name" : "AbbreviationCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025879jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025868jsd" : { + "type" : "CodePackage", + "id" : "acm025868jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025869jsd" ] + }, + "acm025869jsd" : { + "type" : "CodePackage", + "id" : "acm025869jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025870jsd" ] + }, + "acm025870jsd" : { + "type" : "CodePackage", + "id" : "acm025870jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025871jsd" ] + }, + "acm025871jsd" : { + "type" : "CodePackage", + "id" : "acm025871jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025867jsd" ] + }, + "acm025872jsd" : { + "type" : "ControlElement", + "id" : "acm025872jsd", + "name" : "setUp" + }, + "acm025873jsd" : { + "type" : "ControlElement", + "id" : "acm025873jsd", + "name" : "checkEntryComplainsAboutAbbreviatedJournalName" + }, + "acm025874jsd" : { + "type" : "ControlElement", + "id" : "acm025874jsd", + "name" : "checkEntryDoesNotComplainAboutJournalNameThatHasSameAbbreviation" + }, + "acm025875jsd" : { + "type" : "ControlElement", + "id" : "acm025875jsd", + "name" : "checkEntryDoesNotComplainAboutJournalNameThatHasΝοAbbreviation" + }, + "acm025876jsd" : { + "type" : "ControlElement", + "id" : "acm025876jsd", + "name" : "checkEntryDoesNotComplainAboutJournalNameThatHasΝοInput" + }, + "acm025877jsd" : { + "type" : "ControlElement", + "id" : "acm025877jsd", + "name" : "checkEntryWorksForLaTeXField" + }, + "acm025878jsd" : { + "type" : "ControlElement", + "id" : "acm025878jsd", + "name" : "checkEntryWorksForLaTeXFieldStilContainingIllegalChars" + }, + "acm025879jsd" : { + "type" : "ClassUnit", + "id" : "acm025879jsd", + "name" : "AbbreviationCheckerTest", + "compilationUnitId" : "acm025867jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001424jsd", "acm014509jsd", "acm018267jsd" ], + "content" : [ "acm025872jsd", "acm025873jsd", "acm025874jsd", "acm025875jsd", "acm025876jsd", "acm025877jsd", "acm025878jsd" ] + }, + "acm025880jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025880jsd", + "name" : "AmpersandCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025891jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025881jsd" : { + "type" : "CodePackage", + "id" : "acm025881jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025882jsd" ] + }, + "acm025882jsd" : { + "type" : "CodePackage", + "id" : "acm025882jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025883jsd" ] + }, + "acm025883jsd" : { + "type" : "CodePackage", + "id" : "acm025883jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025884jsd" ] + }, + "acm025884jsd" : { + "type" : "CodePackage", + "id" : "acm025884jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025880jsd" ] + }, + "acm025885jsd" : { + "type" : "ControlElement", + "id" : "acm025885jsd", + "name" : "acceptsAllowedInputs" + }, + "acm025886jsd" : { + "type" : "ControlElement", + "id" : "acm025886jsd", + "name" : "provideAcceptedInputs" + }, + "acm025887jsd" : { + "type" : "ControlElement", + "id" : "acm025887jsd", + "name" : "rejectsDisallowedInputs" + }, + "acm025888jsd" : { + "type" : "ControlElement", + "id" : "acm025888jsd", + "name" : "provideUnacceptedInputs" + }, + "acm025889jsd" : { + "type" : "ControlElement", + "id" : "acm025889jsd", + "name" : "entryWithEscapedAndUnescapedAmpersand" + }, + "acm025890jsd" : { + "type" : "ControlElement", + "id" : "acm025890jsd", + "name" : "entryWithMultipleEscapedAndUnescapedAmpersands" + }, + "acm025891jsd" : { + "type" : "ClassUnit", + "id" : "acm025891jsd", + "name" : "AmpersandCheckerTest", + "compilationUnitId" : "acm025880jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014516jsd", "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm025885jsd", "acm025886jsd", "acm025887jsd", "acm025888jsd", "acm025889jsd", "acm025890jsd" ] + }, + "acm025892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025892jsd", + "name" : "BibStringCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025901jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025893jsd" : { + "type" : "CodePackage", + "id" : "acm025893jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025894jsd" ] + }, + "acm025894jsd" : { + "type" : "CodePackage", + "id" : "acm025894jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025895jsd" ] + }, + "acm025895jsd" : { + "type" : "CodePackage", + "id" : "acm025895jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025896jsd" ] + }, + "acm025896jsd" : { + "type" : "CodePackage", + "id" : "acm025896jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025892jsd" ] + }, + "acm025897jsd" : { + "type" : "ControlElement", + "id" : "acm025897jsd", + "name" : "acceptsAllowedInputs" + }, + "acm025898jsd" : { + "type" : "ControlElement", + "id" : "acm025898jsd", + "name" : "provideAcceptedInputs" + }, + "acm025899jsd" : { + "type" : "ControlElement", + "id" : "acm025899jsd", + "name" : "monthDoesNotAcceptOddNumberOfHashMarks" + }, + "acm025900jsd" : { + "type" : "ControlElement", + "id" : "acm025900jsd", + "name" : "authorDoesNotAcceptOddNumberOfHashMarks" + }, + "acm025901jsd" : { + "type" : "ClassUnit", + "id" : "acm025901jsd", + "name" : "BibStringCheckerTest", + "compilationUnitId" : "acm025892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014523jsd", "acm014705jsd", "acm018267jsd", "acm018673jsd" ], + "content" : [ "acm025897jsd", "acm025898jsd", "acm025899jsd", "acm025900jsd" ] + }, + "acm025902jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025902jsd", + "name" : "BooktitleCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025910jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025903jsd" : { + "type" : "CodePackage", + "id" : "acm025903jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025904jsd" ] + }, + "acm025904jsd" : { + "type" : "CodePackage", + "id" : "acm025904jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025905jsd" ] + }, + "acm025905jsd" : { + "type" : "CodePackage", + "id" : "acm025905jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025906jsd" ] + }, + "acm025906jsd" : { + "type" : "CodePackage", + "id" : "acm025906jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025902jsd" ] + }, + "acm025907jsd" : { + "type" : "ControlElement", + "id" : "acm025907jsd", + "name" : "booktitleAcceptsIfItDoesNotEndWithConferenceOn" + }, + "acm025908jsd" : { + "type" : "ControlElement", + "id" : "acm025908jsd", + "name" : "booktitleDoesNotAcceptsIfItEndsWithConferenceOn" + }, + "acm025909jsd" : { + "type" : "ControlElement", + "id" : "acm025909jsd", + "name" : "booktitleIsBlank" + }, + "acm025910jsd" : { + "type" : "ClassUnit", + "id" : "acm025910jsd", + "name" : "BooktitleCheckerTest", + "compilationUnitId" : "acm025902jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014537jsd" ], + "content" : [ "acm025907jsd", "acm025908jsd", "acm025909jsd" ] + }, + "acm025911jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025911jsd", + "name" : "BracesCorrectorTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025924jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025912jsd" : { + "type" : "CodePackage", + "id" : "acm025912jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025913jsd" ] + }, + "acm025913jsd" : { + "type" : "CodePackage", + "id" : "acm025913jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025914jsd" ] + }, + "acm025914jsd" : { + "type" : "CodePackage", + "id" : "acm025914jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025915jsd" ] + }, + "acm025915jsd" : { + "type" : "CodePackage", + "id" : "acm025915jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025911jsd" ] + }, + "acm025916jsd" : { + "type" : "ControlElement", + "id" : "acm025916jsd", + "name" : "inputIsNull" + }, + "acm025917jsd" : { + "type" : "ControlElement", + "id" : "acm025917jsd", + "name" : "inputIsEmpty" + }, + "acm025918jsd" : { + "type" : "ControlElement", + "id" : "acm025918jsd", + "name" : "inputWithoutBraces" + }, + "acm025919jsd" : { + "type" : "ControlElement", + "id" : "acm025919jsd", + "name" : "inputAlreadyCorrect" + }, + "acm025920jsd" : { + "type" : "ControlElement", + "id" : "acm025920jsd", + "name" : "inputMissingClosing" + }, + "acm025921jsd" : { + "type" : "ControlElement", + "id" : "acm025921jsd", + "name" : "inputMissingOpening" + }, + "acm025922jsd" : { + "type" : "ControlElement", + "id" : "acm025922jsd", + "name" : "inputWithMaskedBraces" + }, + "acm025923jsd" : { + "type" : "ControlElement", + "id" : "acm025923jsd", + "name" : "inputWithMixedBraces" + }, + "acm025924jsd" : { + "type" : "ClassUnit", + "id" : "acm025924jsd", + "name" : "BracesCorrectorTest", + "compilationUnitId" : "acm025911jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm025916jsd", "acm025917jsd", "acm025918jsd", "acm025919jsd", "acm025920jsd", "acm025921jsd", "acm025922jsd", "acm025923jsd" ] + }, + "acm025925jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025925jsd", + "name" : "BracketCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025940jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025926jsd" : { + "type" : "CodePackage", + "id" : "acm025926jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025927jsd" ] + }, + "acm025927jsd" : { + "type" : "CodePackage", + "id" : "acm025927jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025928jsd" ] + }, + "acm025928jsd" : { + "type" : "CodePackage", + "id" : "acm025928jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025929jsd" ] + }, + "acm025929jsd" : { + "type" : "CodePackage", + "id" : "acm025929jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025925jsd" ] + }, + "acm025930jsd" : { + "type" : "ControlElement", + "id" : "acm025930jsd", + "name" : "fieldAcceptsNoBrackets" + }, + "acm025931jsd" : { + "type" : "ControlElement", + "id" : "acm025931jsd", + "name" : "fieldAcceptsEvenNumberOfBrackets" + }, + "acm025932jsd" : { + "type" : "ControlElement", + "id" : "acm025932jsd", + "name" : "fieldAcceptsExpectedBracket" + }, + "acm025933jsd" : { + "type" : "ControlElement", + "id" : "acm025933jsd", + "name" : "fieldDoesNotAcceptOddNumberOfBrackets" + }, + "acm025934jsd" : { + "type" : "ControlElement", + "id" : "acm025934jsd", + "name" : "fieldDoesNotAcceptUnexpectedClosingBracket" + }, + "acm025935jsd" : { + "type" : "ControlElement", + "id" : "acm025935jsd", + "name" : "fieldDoesNotAcceptUnexpectedOpeningBracket" + }, + "acm025936jsd" : { + "type" : "ControlElement", + "id" : "acm025936jsd", + "name" : "fieldAcceptsFirstCharacterNotABracket" + }, + "acm025937jsd" : { + "type" : "ControlElement", + "id" : "acm025937jsd", + "name" : "fieldAcceptsLastCharacterNotABracket" + }, + "acm025938jsd" : { + "type" : "ControlElement", + "id" : "acm025938jsd", + "name" : "fieldAcceptsFirstAndLastCharacterNotABracket" + }, + "acm025939jsd" : { + "type" : "ControlElement", + "id" : "acm025939jsd", + "name" : "fieldAcceptsEmptyInput" + }, + "acm025940jsd" : { + "type" : "ClassUnit", + "id" : "acm025940jsd", + "name" : "BracketCheckerTest", + "compilationUnitId" : "acm025925jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014551jsd" ], + "content" : [ "acm025930jsd", "acm025931jsd", "acm025932jsd", "acm025933jsd", "acm025934jsd", "acm025935jsd", "acm025936jsd", "acm025937jsd", "acm025938jsd", "acm025939jsd" ] + }, + "acm025941jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025941jsd", + "name" : "CitationKeyCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025950jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025942jsd" : { + "type" : "CodePackage", + "id" : "acm025942jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025943jsd" ] + }, + "acm025943jsd" : { + "type" : "CodePackage", + "id" : "acm025943jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025944jsd" ] + }, + "acm025944jsd" : { + "type" : "CodePackage", + "id" : "acm025944jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025945jsd" ] + }, + "acm025945jsd" : { + "type" : "CodePackage", + "id" : "acm025945jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025941jsd" ] + }, + "acm025946jsd" : { + "type" : "ControlElement", + "id" : "acm025946jsd", + "name" : "bibTexAcceptsKeyFromAuthorAndYear" + }, + "acm025947jsd" : { + "type" : "ControlElement", + "id" : "acm025947jsd", + "name" : "acceptsKeyFromAuthorAndTitle" + }, + "acm025948jsd" : { + "type" : "ControlElement", + "id" : "acm025948jsd", + "name" : "acceptsKeyFromTitleAndYear" + }, + "acm025949jsd" : { + "type" : "ControlElement", + "id" : "acm025949jsd", + "name" : "emptyCitationKey" + }, + "acm025950jsd" : { + "type" : "ClassUnit", + "id" : "acm025950jsd", + "name" : "CitationKeyCheckerTest", + "compilationUnitId" : "acm025941jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014558jsd", "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm025946jsd", "acm025947jsd", "acm025948jsd", "acm025949jsd" ] + }, + "acm025951jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025951jsd", + "name" : "CitationKeyDeviationCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025958jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025952jsd" : { + "type" : "CodePackage", + "id" : "acm025952jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025953jsd" ] + }, + "acm025953jsd" : { + "type" : "CodePackage", + "id" : "acm025953jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025954jsd" ] + }, + "acm025954jsd" : { + "type" : "CodePackage", + "id" : "acm025954jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025955jsd" ] + }, + "acm025955jsd" : { + "type" : "CodePackage", + "id" : "acm025955jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025951jsd" ] + }, + "acm025956jsd" : { + "type" : "ControlElement", + "id" : "acm025956jsd", + "name" : "setUp" + }, + "acm025957jsd" : { + "type" : "ControlElement", + "id" : "acm025957jsd", + "name" : "citationKeyDeviatesFromGeneratedKey" + }, + "acm025958jsd" : { + "type" : "ClassUnit", + "id" : "acm025958jsd", + "name" : "CitationKeyDeviationCheckerTest", + "compilationUnitId" : "acm025951jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010886jsd", "acm010993jsd", "acm011011jsd", "acm014566jsd", "acm014705jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm019421jsd" ], + "content" : [ "acm025956jsd", "acm025957jsd" ] + }, + "acm025959jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025959jsd", + "name" : "CitationKeyDuplicationCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025966jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025960jsd" : { + "type" : "CodePackage", + "id" : "acm025960jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025961jsd" ] + }, + "acm025961jsd" : { + "type" : "CodePackage", + "id" : "acm025961jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025962jsd" ] + }, + "acm025962jsd" : { + "type" : "CodePackage", + "id" : "acm025962jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025963jsd" ] + }, + "acm025963jsd" : { + "type" : "CodePackage", + "id" : "acm025963jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025959jsd" ] + }, + "acm025964jsd" : { + "type" : "ControlElement", + "id" : "acm025964jsd", + "name" : "emptyCitationKey" + }, + "acm025965jsd" : { + "type" : "ControlElement", + "id" : "acm025965jsd", + "name" : "hasDuplicateCitationKey" + }, + "acm025966jsd" : { + "type" : "ClassUnit", + "id" : "acm025966jsd", + "name" : "CitationKeyDuplicationCheckerTest", + "compilationUnitId" : "acm025959jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014574jsd", "acm014705jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm025964jsd", "acm025965jsd" ] + }, + "acm025967jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025967jsd", + "name" : "DateCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025975jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025968jsd" : { + "type" : "CodePackage", + "id" : "acm025968jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025969jsd" ] + }, + "acm025969jsd" : { + "type" : "CodePackage", + "id" : "acm025969jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025970jsd" ] + }, + "acm025970jsd" : { + "type" : "CodePackage", + "id" : "acm025970jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025971jsd" ] + }, + "acm025971jsd" : { + "type" : "CodePackage", + "id" : "acm025971jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025967jsd" ] + }, + "acm025972jsd" : { + "type" : "ControlElement", + "id" : "acm025972jsd", + "name" : "acceptsEmptyInput" + }, + "acm025973jsd" : { + "type" : "ControlElement", + "id" : "acm025973jsd", + "name" : "acceptsValidDates" + }, + "acm025974jsd" : { + "type" : "ControlElement", + "id" : "acm025974jsd", + "name" : "complainsAboutInvalidInput" + }, + "acm025975jsd" : { + "type" : "ClassUnit", + "id" : "acm025975jsd", + "name" : "DateCheckerTest", + "compilationUnitId" : "acm025967jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014588jsd" ], + "content" : [ "acm025972jsd", "acm025973jsd", "acm025974jsd" ] + }, + "acm025976jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025976jsd", + "name" : "DoiDuplicationCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025984jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025977jsd" : { + "type" : "CodePackage", + "id" : "acm025977jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025978jsd" ] + }, + "acm025978jsd" : { + "type" : "CodePackage", + "id" : "acm025978jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025979jsd" ] + }, + "acm025979jsd" : { + "type" : "CodePackage", + "id" : "acm025979jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025980jsd" ] + }, + "acm025980jsd" : { + "type" : "CodePackage", + "id" : "acm025980jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025976jsd" ] + }, + "acm025981jsd" : { + "type" : "ControlElement", + "id" : "acm025981jsd", + "name" : "testOnePairDuplicateDOI" + }, + "acm025982jsd" : { + "type" : "ControlElement", + "id" : "acm025982jsd", + "name" : "testMultiPairsDuplicateDOI" + }, + "acm025983jsd" : { + "type" : "ControlElement", + "id" : "acm025983jsd", + "name" : "testNoDuplicateDOI" + }, + "acm025984jsd" : { + "type" : "ClassUnit", + "id" : "acm025984jsd", + "name" : "DoiDuplicationCheckerTest", + "compilationUnitId" : "acm025976jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014595jsd", "acm014705jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm025981jsd", "acm025982jsd", "acm025983jsd" ] + }, + "acm025985jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025985jsd", + "name" : "DoiValidityCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm025997jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025986jsd" : { + "type" : "CodePackage", + "id" : "acm025986jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm025987jsd" ] + }, + "acm025987jsd" : { + "type" : "CodePackage", + "id" : "acm025987jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm025988jsd" ] + }, + "acm025988jsd" : { + "type" : "CodePackage", + "id" : "acm025988jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm025989jsd" ] + }, + "acm025989jsd" : { + "type" : "CodePackage", + "id" : "acm025989jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025985jsd" ] + }, + "acm025990jsd" : { + "type" : "ControlElement", + "id" : "acm025990jsd", + "name" : "doiAcceptsValidInput" + }, + "acm025991jsd" : { + "type" : "ControlElement", + "id" : "acm025991jsd", + "name" : "doiAcceptsEmptyInput" + }, + "acm025992jsd" : { + "type" : "ControlElement", + "id" : "acm025992jsd", + "name" : "doiAcceptsValidInputWithNotOnlyNumbers" + }, + "acm025993jsd" : { + "type" : "ControlElement", + "id" : "acm025993jsd", + "name" : "doiAcceptsValidInputNoMatterTheLengthOfTheDOIName" + }, + "acm025994jsd" : { + "type" : "ControlElement", + "id" : "acm025994jsd", + "name" : "doiDoesNotAcceptInvalidInput" + }, + "acm025995jsd" : { + "type" : "ControlElement", + "id" : "acm025995jsd", + "name" : "doiDoesNotAcceptInputWithTypoInFirstPart" + }, + "acm025996jsd" : { + "type" : "ControlElement", + "id" : "acm025996jsd", + "name" : "doiDoesNotAcceptInputWithTypoInSecondPart" + }, + "acm025997jsd" : { + "type" : "ClassUnit", + "id" : "acm025997jsd", + "name" : "DoiValidityCheckerTest", + "compilationUnitId" : "acm025985jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014602jsd" ], + "content" : [ "acm025990jsd", "acm025991jsd", "acm025992jsd", "acm025993jsd", "acm025994jsd", "acm025995jsd", "acm025996jsd" ] + }, + "acm025998jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm025998jsd", + "name" : "EditionCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026022jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm025999jsd" : { + "type" : "CodePackage", + "id" : "acm025999jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026000jsd" ] + }, + "acm026000jsd" : { + "type" : "CodePackage", + "id" : "acm026000jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026001jsd" ] + }, + "acm026001jsd" : { + "type" : "CodePackage", + "id" : "acm026001jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026002jsd" ] + }, + "acm026002jsd" : { + "type" : "CodePackage", + "id" : "acm026002jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm025998jsd" ] + }, + "acm026003jsd" : { + "type" : "ControlElement", + "id" : "acm026003jsd", + "name" : "isFirstCharacterANumber" + }, + "acm026004jsd" : { + "type" : "ControlElement", + "id" : "acm026004jsd", + "name" : "isFirstCharacterANumberFalseForEmptyString" + }, + "acm026005jsd" : { + "type" : "ControlElement", + "id" : "acm026005jsd", + "name" : "isFirstCharacterNotANumber" + }, + "acm026006jsd" : { + "type" : "ControlElement", + "id" : "acm026006jsd", + "name" : "editionCheckerDoesNotComplainIfAllowIntegerEditionIsEnabled" + }, + "acm026007jsd" : { + "type" : "ControlElement", + "id" : "acm026007jsd", + "name" : "bibTexAcceptsOrdinalNumberInWordsWithCapitalFirstLetter" + }, + "acm026008jsd" : { + "type" : "ControlElement", + "id" : "acm026008jsd", + "name" : "bibTexDoesNotAcceptOrdinalNumberInWordsWithNonCapitalFirstLetter" + }, + "acm026009jsd" : { + "type" : "ControlElement", + "id" : "acm026009jsd", + "name" : "bibTexAcceptsIntegerInputInEdition" + }, + "acm026010jsd" : { + "type" : "ControlElement", + "id" : "acm026010jsd", + "name" : "bibTexAcceptsOrdinalNumberInNumbers" + }, + "acm026011jsd" : { + "type" : "ControlElement", + "id" : "acm026011jsd", + "name" : "bibTexEmptyValueAsInput" + }, + "acm026012jsd" : { + "type" : "ControlElement", + "id" : "acm026012jsd", + "name" : "bibTexNullValueAsInput" + }, + "acm026013jsd" : { + "type" : "ControlElement", + "id" : "acm026013jsd", + "name" : "bibTexDoesNotAcceptIntegerOnly" + }, + "acm026014jsd" : { + "type" : "ControlElement", + "id" : "acm026014jsd", + "name" : "bibTexAcceptsFirstEditionAlsoIfIntegerEditionDisallowed" + }, + "acm026015jsd" : { + "type" : "ControlElement", + "id" : "acm026015jsd", + "name" : "bibLaTexAcceptsEditionWithCapitalFirstLetter" + }, + "acm026016jsd" : { + "type" : "ControlElement", + "id" : "acm026016jsd", + "name" : "bibLaTexAcceptsIntegerInputInEdition" + }, + "acm026017jsd" : { + "type" : "ControlElement", + "id" : "acm026017jsd", + "name" : "bibLaTexAcceptsEditionAsLiteralString" + }, + "acm026018jsd" : { + "type" : "ControlElement", + "id" : "acm026018jsd", + "name" : "bibLaTexDoesNotAcceptOrdinalNumberInNumbers" + }, + "acm026019jsd" : { + "type" : "ControlElement", + "id" : "acm026019jsd", + "name" : "createBibtexEditionChecker" + }, + "acm026020jsd" : { + "type" : "ControlElement", + "id" : "acm026020jsd", + "name" : "createBiblatexEditionChecker" + }, + "acm026021jsd" : { + "type" : "ControlElement", + "id" : "acm026021jsd", + "name" : "createSimpleEditionChecker" + }, + "acm026022jsd" : { + "type" : "ClassUnit", + "id" : "acm026022jsd", + "name" : "EditionCheckerTest", + "compilationUnitId" : "acm025998jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014611jsd", "acm018022jsd" ], + "content" : [ "acm026003jsd", "acm026004jsd", "acm026005jsd", "acm026006jsd", "acm026007jsd", "acm026008jsd", "acm026009jsd", "acm026010jsd", "acm026011jsd", "acm026012jsd", "acm026013jsd", "acm026014jsd", "acm026015jsd", "acm026016jsd", "acm026017jsd", "acm026018jsd", "acm026019jsd", "acm026020jsd", "acm026021jsd" ] + }, + "acm026023jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026023jsd", + "name" : "EntryLinkCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026036jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026024jsd" : { + "type" : "CodePackage", + "id" : "acm026024jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026025jsd" ] + }, + "acm026025jsd" : { + "type" : "CodePackage", + "id" : "acm026025jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026026jsd" ] + }, + "acm026026jsd" : { + "type" : "CodePackage", + "id" : "acm026026jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026027jsd" ] + }, + "acm026027jsd" : { + "type" : "CodePackage", + "id" : "acm026027jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026023jsd" ] + }, + "acm026028jsd" : { + "type" : "ControlElement", + "id" : "acm026028jsd", + "name" : "setUp" + }, + "acm026029jsd" : { + "type" : "ControlElement", + "id" : "acm026029jsd", + "name" : "testEntryLinkChecker" + }, + "acm026030jsd" : { + "type" : "ControlElement", + "id" : "acm026030jsd", + "name" : "testCheckNoFields" + }, + "acm026031jsd" : { + "type" : "ControlElement", + "id" : "acm026031jsd", + "name" : "testCheckNonRelatedFieldsOnly" + }, + "acm026032jsd" : { + "type" : "ControlElement", + "id" : "acm026032jsd", + "name" : "testCheckNonExistingCrossref" + }, + "acm026033jsd" : { + "type" : "ControlElement", + "id" : "acm026033jsd", + "name" : "testCheckExistingCrossref" + }, + "acm026034jsd" : { + "type" : "ControlElement", + "id" : "acm026034jsd", + "name" : "testCheckExistingRelated" + }, + "acm026035jsd" : { + "type" : "ControlElement", + "id" : "acm026035jsd", + "name" : "testCheckNonExistingRelated" + }, + "acm026036jsd" : { + "type" : "ClassUnit", + "id" : "acm026036jsd", + "name" : "EntryLinkCheckerTest", + "compilationUnitId" : "acm026023jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014626jsd", "acm014705jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm026028jsd", "acm026029jsd", "acm026030jsd", "acm026031jsd", "acm026032jsd", "acm026033jsd", "acm026034jsd", "acm026035jsd" ] + }, + "acm026037jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026037jsd", + "name" : "HTMLCharacterCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026049jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026038jsd" : { + "type" : "CodePackage", + "id" : "acm026038jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026039jsd" ] + }, + "acm026039jsd" : { + "type" : "CodePackage", + "id" : "acm026039jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026040jsd" ] + }, + "acm026040jsd" : { + "type" : "CodePackage", + "id" : "acm026040jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026041jsd" ] + }, + "acm026041jsd" : { + "type" : "CodePackage", + "id" : "acm026041jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026037jsd" ] + }, + "acm026042jsd" : { + "type" : "ControlElement", + "id" : "acm026042jsd", + "name" : "testSettingNullThrowsNPE" + }, + "acm026043jsd" : { + "type" : "ControlElement", + "id" : "acm026043jsd", + "name" : "titleAcceptsNonHTMLEncodedCharacters" + }, + "acm026044jsd" : { + "type" : "ControlElement", + "id" : "acm026044jsd", + "name" : "monthAcceptsNonHTMLEncodedCharacters" + }, + "acm026045jsd" : { + "type" : "ControlElement", + "id" : "acm026045jsd", + "name" : "authorAcceptsNonHTMLEncodedCharacters" + }, + "acm026046jsd" : { + "type" : "ControlElement", + "id" : "acm026046jsd", + "name" : "urlAcceptsNonHTMLEncodedCharacters" + }, + "acm026047jsd" : { + "type" : "ControlElement", + "id" : "acm026047jsd", + "name" : "authorDoesNotAcceptHTMLEncodedCharacters" + }, + "acm026048jsd" : { + "type" : "ControlElement", + "id" : "acm026048jsd", + "name" : "journalDoesNotAcceptHTMLEncodedCharacters" + }, + "acm026049jsd" : { + "type" : "ClassUnit", + "id" : "acm026049jsd", + "name" : "HTMLCharacterCheckerTest", + "compilationUnitId" : "acm026037jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014659jsd", "acm014705jsd", "acm018267jsd" ], + "content" : [ "acm026042jsd", "acm026043jsd", "acm026044jsd", "acm026045jsd", "acm026046jsd", "acm026047jsd", "acm026048jsd" ] + }, + "acm026050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026050jsd", + "name" : "HowPublishedCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026062jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026051jsd" : { + "type" : "CodePackage", + "id" : "acm026051jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026052jsd" ] + }, + "acm026052jsd" : { + "type" : "CodePackage", + "id" : "acm026052jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026053jsd" ] + }, + "acm026053jsd" : { + "type" : "CodePackage", + "id" : "acm026053jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026054jsd" ] + }, + "acm026054jsd" : { + "type" : "CodePackage", + "id" : "acm026054jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026050jsd" ] + }, + "acm026055jsd" : { + "type" : "ControlElement", + "id" : "acm026055jsd", + "name" : "setUp" + }, + "acm026056jsd" : { + "type" : "ControlElement", + "id" : "acm026056jsd", + "name" : "bibTexAcceptsStringWithCapitalFirstLetter" + }, + "acm026057jsd" : { + "type" : "ControlElement", + "id" : "acm026057jsd", + "name" : "bibTexDoesNotCareAboutSpecialCharacters" + }, + "acm026058jsd" : { + "type" : "ControlElement", + "id" : "acm026058jsd", + "name" : "bibTexDoesNotAcceptStringWithLowercaseFirstLetter" + }, + "acm026059jsd" : { + "type" : "ControlElement", + "id" : "acm026059jsd", + "name" : "bibTexAcceptsUrl" + }, + "acm026060jsd" : { + "type" : "ControlElement", + "id" : "acm026060jsd", + "name" : "bibLaTexAcceptsStringWithCapitalFirstLetter" + }, + "acm026061jsd" : { + "type" : "ControlElement", + "id" : "acm026061jsd", + "name" : "bibLaTexAcceptsStringWithLowercaseFirstLetter" + }, + "acm026062jsd" : { + "type" : "ClassUnit", + "id" : "acm026062jsd", + "name" : "HowPublishedCheckerTest", + "compilationUnitId" : "acm026050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014667jsd", "acm018022jsd" ], + "content" : [ "acm026055jsd", "acm026056jsd", "acm026057jsd", "acm026058jsd", "acm026059jsd", "acm026060jsd", "acm026061jsd" ] + }, + "acm026063jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026063jsd", + "name" : "ISBNCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026074jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026064jsd" : { + "type" : "CodePackage", + "id" : "acm026064jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026065jsd" ] + }, + "acm026065jsd" : { + "type" : "CodePackage", + "id" : "acm026065jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026066jsd" ] + }, + "acm026066jsd" : { + "type" : "CodePackage", + "id" : "acm026066jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026067jsd" ] + }, + "acm026067jsd" : { + "type" : "CodePackage", + "id" : "acm026067jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026063jsd" ] + }, + "acm026068jsd" : { + "type" : "ControlElement", + "id" : "acm026068jsd", + "name" : "isbnAcceptsValidInput" + }, + "acm026069jsd" : { + "type" : "ControlElement", + "id" : "acm026069jsd", + "name" : "isbnAcceptsNumbersAndCharacters" + }, + "acm026070jsd" : { + "type" : "ControlElement", + "id" : "acm026070jsd", + "name" : "isbnDoesNotAcceptRandomInput" + }, + "acm026071jsd" : { + "type" : "ControlElement", + "id" : "acm026071jsd", + "name" : "isbnDoesNotAcceptInvalidInput" + }, + "acm026072jsd" : { + "type" : "ControlElement", + "id" : "acm026072jsd", + "name" : "checkISBNValue" + }, + "acm026073jsd" : { + "type" : "ControlElement", + "id" : "acm026073jsd", + "name" : "provideBoundaryArgumentsForISBN13" + }, + "acm026074jsd" : { + "type" : "ClassUnit", + "id" : "acm026074jsd", + "name" : "ISBNCheckerTest", + "compilationUnitId" : "acm026063jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014674jsd" ], + "content" : [ "acm026068jsd", "acm026069jsd", "acm026070jsd", "acm026071jsd", "acm026072jsd", "acm026073jsd" ] + }, + "acm026075jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026075jsd", + "name" : "ISSNCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026087jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026076jsd" : { + "type" : "CodePackage", + "id" : "acm026076jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026077jsd" ] + }, + "acm026077jsd" : { + "type" : "CodePackage", + "id" : "acm026077jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026078jsd" ] + }, + "acm026078jsd" : { + "type" : "CodePackage", + "id" : "acm026078jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026079jsd" ] + }, + "acm026079jsd" : { + "type" : "CodePackage", + "id" : "acm026079jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026075jsd" ] + }, + "acm026080jsd" : { + "type" : "ControlElement", + "id" : "acm026080jsd", + "name" : "issnAcceptsValidInput" + }, + "acm026081jsd" : { + "type" : "ControlElement", + "id" : "acm026081jsd", + "name" : "issnAcceptsNumbersAndCharacters" + }, + "acm026082jsd" : { + "type" : "ControlElement", + "id" : "acm026082jsd", + "name" : "issnDoesNotAcceptRandomInput" + }, + "acm026083jsd" : { + "type" : "ControlElement", + "id" : "acm026083jsd", + "name" : "issnDoesNotAcceptInvalidInput" + }, + "acm026084jsd" : { + "type" : "ControlElement", + "id" : "acm026084jsd", + "name" : "emptyIssnValue" + }, + "acm026085jsd" : { + "type" : "ControlElement", + "id" : "acm026085jsd", + "name" : "issnWithWrongFormat" + }, + "acm026086jsd" : { + "type" : "ControlElement", + "id" : "acm026086jsd", + "name" : "provideIncorrectFormatArguments" + }, + "acm026087jsd" : { + "type" : "ClassUnit", + "id" : "acm026087jsd", + "name" : "ISSNCheckerTest", + "compilationUnitId" : "acm026075jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014681jsd" ], + "content" : [ "acm026080jsd", "acm026081jsd", "acm026082jsd", "acm026083jsd", "acm026084jsd", "acm026085jsd", "acm026086jsd" ] + }, + "acm026088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026088jsd", + "name" : "IntegrityCheckTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026111jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026089jsd" : { + "type" : "CodePackage", + "id" : "acm026089jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026090jsd" ] + }, + "acm026090jsd" : { + "type" : "CodePackage", + "id" : "acm026090jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026091jsd" ] + }, + "acm026091jsd" : { + "type" : "CodePackage", + "id" : "acm026091jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026092jsd" ] + }, + "acm026092jsd" : { + "type" : "CodePackage", + "id" : "acm026092jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026088jsd" ] + }, + "acm026093jsd" : { + "type" : "ControlElement", + "id" : "acm026093jsd", + "name" : "bibTexAcceptsStandardEntryType" + }, + "acm026094jsd" : { + "type" : "ControlElement", + "id" : "acm026094jsd", + "name" : "bibTexDoesNotAcceptIEEETranEntryType" + }, + "acm026095jsd" : { + "type" : "ControlElement", + "id" : "acm026095jsd", + "name" : "bibLaTexAcceptsIEEETranEntryType" + }, + "acm026096jsd" : { + "type" : "ControlElement", + "id" : "acm026096jsd", + "name" : "bibLaTexAcceptsStandardEntryType" + }, + "acm026097jsd" : { + "type" : "ControlElement", + "id" : "acm026097jsd", + "name" : "authorNameChecksCorrectFormat" + }, + "acm026098jsd" : { + "type" : "ControlElement", + "id" : "acm026098jsd", + "name" : "authorNameChecksIncorrectFormat" + }, + "acm026099jsd" : { + "type" : "ControlElement", + "id" : "acm026099jsd", + "name" : "provideCorrectFormat" + }, + "acm026100jsd" : { + "type" : "ControlElement", + "id" : "acm026100jsd", + "name" : "provideIncorrectFormat" + }, + "acm026101jsd" : { + "type" : "ControlElement", + "id" : "acm026101jsd", + "name" : "testFileChecks" + }, + "acm026102jsd" : { + "type" : "ControlElement", + "id" : "acm026102jsd", + "name" : "fileCheckFindsFilesRelativeToBibFile" + }, + "acm026103jsd" : { + "type" : "ControlElement", + "id" : "acm026103jsd", + "name" : "testEntryIsUnchangedAfterChecks" + }, + "acm026104jsd" : { + "type" : "ControlElement", + "id" : "acm026104jsd", + "name" : "createContext" + }, + "acm026105jsd" : { + "type" : "ControlElement", + "id" : "acm026105jsd", + "name" : "createContext" + }, + "acm026106jsd" : { + "type" : "ControlElement", + "id" : "acm026106jsd", + "name" : "createContext" + }, + "acm026107jsd" : { + "type" : "ControlElement", + "id" : "acm026107jsd", + "name" : "assertWrong" + }, + "acm026108jsd" : { + "type" : "ControlElement", + "id" : "acm026108jsd", + "name" : "assertCorrect" + }, + "acm026109jsd" : { + "type" : "ControlElement", + "id" : "acm026109jsd", + "name" : "createCitationKeyPatternPreferences" + }, + "acm026110jsd" : { + "type" : "ControlElement", + "id" : "acm026110jsd", + "name" : "withMode" + }, + "acm026111jsd" : { + "type" : "ClassUnit", + "id" : "acm026111jsd", + "name" : "IntegrityCheckTest", + "compilationUnitId" : "acm026088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010993jsd", "acm014691jsd", "acm014705jsd", "acm017988jsd", "acm018022jsd", "acm018032jsd", "acm018267jsd", "acm018673jsd", "acm019005jsd", "acm019421jsd", "acm020848jsd" ], + "content" : [ "acm026093jsd", "acm026094jsd", "acm026095jsd", "acm026096jsd", "acm026097jsd", "acm026098jsd", "acm026099jsd", "acm026100jsd", "acm026101jsd", "acm026102jsd", "acm026103jsd", "acm026104jsd", "acm026105jsd", "acm026106jsd", "acm026107jsd", "acm026108jsd", "acm026109jsd", "acm026110jsd" ] + }, + "acm026112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026112jsd", + "name" : "JournalInAbbreviationListCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026122jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026113jsd" : { + "type" : "CodePackage", + "id" : "acm026113jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026114jsd" ] + }, + "acm026114jsd" : { + "type" : "CodePackage", + "id" : "acm026114jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026115jsd" ] + }, + "acm026115jsd" : { + "type" : "CodePackage", + "id" : "acm026115jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026116jsd" ] + }, + "acm026116jsd" : { + "type" : "CodePackage", + "id" : "acm026116jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026112jsd" ] + }, + "acm026117jsd" : { + "type" : "ControlElement", + "id" : "acm026117jsd", + "name" : "setUp" + }, + "acm026118jsd" : { + "type" : "ControlElement", + "id" : "acm026118jsd", + "name" : "journalAcceptsNameInTheList" + }, + "acm026119jsd" : { + "type" : "ControlElement", + "id" : "acm026119jsd", + "name" : "journalDoesNotAcceptNameNotInList" + }, + "acm026120jsd" : { + "type" : "ControlElement", + "id" : "acm026120jsd", + "name" : "journalTitleDoesNotAcceptRandomInputInTitle" + }, + "acm026121jsd" : { + "type" : "ControlElement", + "id" : "acm026121jsd", + "name" : "journalDoesNotAcceptRandomInputInTitle" + }, + "acm026122jsd" : { + "type" : "ClassUnit", + "id" : "acm026122jsd", + "name" : "JournalInAbbreviationListCheckerTest", + "compilationUnitId" : "acm026112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001424jsd", "acm014705jsd", "acm014713jsd", "acm018267jsd" ], + "content" : [ "acm026117jsd", "acm026118jsd", "acm026119jsd", "acm026120jsd", "acm026121jsd" ] + }, + "acm026123jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026123jsd", + "name" : "MonthCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026140jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026124jsd" : { + "type" : "CodePackage", + "id" : "acm026124jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026125jsd" ] + }, + "acm026125jsd" : { + "type" : "CodePackage", + "id" : "acm026125jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026126jsd" ] + }, + "acm026126jsd" : { + "type" : "CodePackage", + "id" : "acm026126jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026127jsd" ] + }, + "acm026127jsd" : { + "type" : "CodePackage", + "id" : "acm026127jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026123jsd" ] + }, + "acm026128jsd" : { + "type" : "ControlElement", + "id" : "acm026128jsd", + "name" : "setUp" + }, + "acm026129jsd" : { + "type" : "ControlElement", + "id" : "acm026129jsd", + "name" : "bibTexAcceptsThreeLetterAbbreviationsWithHashMarks" + }, + "acm026130jsd" : { + "type" : "ControlElement", + "id" : "acm026130jsd", + "name" : "bibTexDoesNotAcceptWhateverThreeLetterAbbreviations" + }, + "acm026131jsd" : { + "type" : "ControlElement", + "id" : "acm026131jsd", + "name" : "bibTexDoesNotAcceptThreeLetterAbbreviationsWithNoHashMarks" + }, + "acm026132jsd" : { + "type" : "ControlElement", + "id" : "acm026132jsd", + "name" : "bibTexDoesNotAcceptFullInput" + }, + "acm026133jsd" : { + "type" : "ControlElement", + "id" : "acm026133jsd", + "name" : "bibTexDoesNotAcceptRandomString" + }, + "acm026134jsd" : { + "type" : "ControlElement", + "id" : "acm026134jsd", + "name" : "bibTexDoesNotAcceptInteger" + }, + "acm026135jsd" : { + "type" : "ControlElement", + "id" : "acm026135jsd", + "name" : "bibLaTexAcceptsThreeLetterAbbreviationsWithHashMarks" + }, + "acm026136jsd" : { + "type" : "ControlElement", + "id" : "acm026136jsd", + "name" : "bibLaTexDoesNotAcceptThreeLetterAbbreviationsWithNoHashMarks" + }, + "acm026137jsd" : { + "type" : "ControlElement", + "id" : "acm026137jsd", + "name" : "bibLaTexDoesNotAcceptFullInput" + }, + "acm026138jsd" : { + "type" : "ControlElement", + "id" : "acm026138jsd", + "name" : "bibLaTexDoesNotAcceptRandomString" + }, + "acm026139jsd" : { + "type" : "ControlElement", + "id" : "acm026139jsd", + "name" : "bibLaTexAcceptsInteger" + }, + "acm026140jsd" : { + "type" : "ClassUnit", + "id" : "acm026140jsd", + "name" : "MonthCheckerTest", + "compilationUnitId" : "acm026123jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014721jsd", "acm018022jsd" ], + "content" : [ "acm026128jsd", "acm026129jsd", "acm026130jsd", "acm026131jsd", "acm026132jsd", "acm026133jsd", "acm026134jsd", "acm026135jsd", "acm026136jsd", "acm026137jsd", "acm026138jsd", "acm026139jsd" ] + }, + "acm026141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026141jsd", + "name" : "NoBibTexFieldCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026149jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026142jsd" : { + "type" : "CodePackage", + "id" : "acm026142jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026143jsd" ] + }, + "acm026143jsd" : { + "type" : "CodePackage", + "id" : "acm026143jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026144jsd" ] + }, + "acm026144jsd" : { + "type" : "CodePackage", + "id" : "acm026144jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026145jsd" ] + }, + "acm026145jsd" : { + "type" : "CodePackage", + "id" : "acm026145jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026141jsd" ] + }, + "acm026146jsd" : { + "type" : "ControlElement", + "id" : "acm026146jsd", + "name" : "nonBiblatexOnlyFields" + }, + "acm026147jsd" : { + "type" : "ControlElement", + "id" : "acm026147jsd", + "name" : "nonBiblatexOnlyField" + }, + "acm026148jsd" : { + "type" : "ControlElement", + "id" : "acm026148jsd", + "name" : "biblatexOnlyField" + }, + "acm026149jsd" : { + "type" : "ClassUnit", + "id" : "acm026149jsd", + "name" : "NoBibTexFieldCheckerTest", + "compilationUnitId" : "acm026141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm014729jsd", "acm018267jsd", "acm018673jsd", "acm018798jsd", "acm018813jsd" ], + "content" : [ "acm026146jsd", "acm026147jsd", "acm026148jsd" ] + }, + "acm026150jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026150jsd", + "name" : "NoteCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026162jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026151jsd" : { + "type" : "CodePackage", + "id" : "acm026151jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026152jsd" ] + }, + "acm026152jsd" : { + "type" : "CodePackage", + "id" : "acm026152jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026153jsd" ] + }, + "acm026153jsd" : { + "type" : "CodePackage", + "id" : "acm026153jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026154jsd" ] + }, + "acm026154jsd" : { + "type" : "CodePackage", + "id" : "acm026154jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026150jsd" ] + }, + "acm026155jsd" : { + "type" : "ControlElement", + "id" : "acm026155jsd", + "name" : "setUp" + }, + "acm026156jsd" : { + "type" : "ControlElement", + "id" : "acm026156jsd", + "name" : "bibTexAcceptsNoteWithFirstCapitalLetter" + }, + "acm026157jsd" : { + "type" : "ControlElement", + "id" : "acm026157jsd", + "name" : "bibTexAcceptsNoteWithFirstCapitalLetterAndDoesNotCareAboutTheRest" + }, + "acm026158jsd" : { + "type" : "ControlElement", + "id" : "acm026158jsd", + "name" : "bibTexDoesNotAcceptFirstLowercaseLetter" + }, + "acm026159jsd" : { + "type" : "ControlElement", + "id" : "acm026159jsd", + "name" : "bibLaTexAcceptsNoteWithFirstCapitalLetter" + }, + "acm026160jsd" : { + "type" : "ControlElement", + "id" : "acm026160jsd", + "name" : "bibTexAcceptsUrl" + }, + "acm026161jsd" : { + "type" : "ControlElement", + "id" : "acm026161jsd", + "name" : "bibLaTexAcceptsFirstLowercaseLetter" + }, + "acm026162jsd" : { + "type" : "ClassUnit", + "id" : "acm026162jsd", + "name" : "NoteCheckerTest", + "compilationUnitId" : "acm026150jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014737jsd", "acm018022jsd" ], + "content" : [ "acm026155jsd", "acm026156jsd", "acm026157jsd", "acm026158jsd", "acm026159jsd", "acm026160jsd", "acm026161jsd" ] + }, + "acm026163jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026163jsd", + "name" : "PagesCheckerBiblatexTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026173jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026164jsd" : { + "type" : "CodePackage", + "id" : "acm026164jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026165jsd" ] + }, + "acm026165jsd" : { + "type" : "CodePackage", + "id" : "acm026165jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026166jsd" ] + }, + "acm026166jsd" : { + "type" : "CodePackage", + "id" : "acm026166jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026167jsd" ] + }, + "acm026167jsd" : { + "type" : "CodePackage", + "id" : "acm026167jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026163jsd" ] + }, + "acm026168jsd" : { + "type" : "ControlElement", + "id" : "acm026168jsd", + "name" : "setUp" + }, + "acm026169jsd" : { + "type" : "ControlElement", + "id" : "acm026169jsd", + "name" : "bibtexAccepts" + }, + "acm026170jsd" : { + "type" : "ControlElement", + "id" : "acm026170jsd", + "name" : "bibtexAccepts" + }, + "acm026171jsd" : { + "type" : "ControlElement", + "id" : "acm026171jsd", + "name" : "bibtexRejects" + }, + "acm026172jsd" : { + "type" : "ControlElement", + "id" : "acm026172jsd", + "name" : "bibtexRejects" + }, + "acm026173jsd" : { + "type" : "ClassUnit", + "id" : "acm026173jsd", + "name" : "PagesCheckerBiblatexTest", + "compilationUnitId" : "acm026163jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014745jsd", "acm018022jsd" ], + "content" : [ "acm026168jsd", "acm026169jsd", "acm026170jsd", "acm026171jsd", "acm026172jsd" ] + }, + "acm026174jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026174jsd", + "name" : "PagesCheckerBibtexTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026184jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026175jsd" : { + "type" : "CodePackage", + "id" : "acm026175jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026176jsd" ] + }, + "acm026176jsd" : { + "type" : "CodePackage", + "id" : "acm026176jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026177jsd" ] + }, + "acm026177jsd" : { + "type" : "CodePackage", + "id" : "acm026177jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026178jsd" ] + }, + "acm026178jsd" : { + "type" : "CodePackage", + "id" : "acm026178jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026174jsd" ] + }, + "acm026179jsd" : { + "type" : "ControlElement", + "id" : "acm026179jsd", + "name" : "setUp" + }, + "acm026180jsd" : { + "type" : "ControlElement", + "id" : "acm026180jsd", + "name" : "bibtexAccepts" + }, + "acm026181jsd" : { + "type" : "ControlElement", + "id" : "acm026181jsd", + "name" : "bibtexAccepts" + }, + "acm026182jsd" : { + "type" : "ControlElement", + "id" : "acm026182jsd", + "name" : "bibtexRejects" + }, + "acm026183jsd" : { + "type" : "ControlElement", + "id" : "acm026183jsd", + "name" : "bibtexRejects" + }, + "acm026184jsd" : { + "type" : "ClassUnit", + "id" : "acm026184jsd", + "name" : "PagesCheckerBibtexTest", + "compilationUnitId" : "acm026174jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014745jsd", "acm018022jsd" ], + "content" : [ "acm026179jsd", "acm026180jsd", "acm026181jsd", "acm026182jsd", "acm026183jsd" ] + }, + "acm026185jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026185jsd", + "name" : "PersonNamesCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026198jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026186jsd" : { + "type" : "CodePackage", + "id" : "acm026186jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026187jsd" ] + }, + "acm026187jsd" : { + "type" : "CodePackage", + "id" : "acm026187jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026188jsd" ] + }, + "acm026188jsd" : { + "type" : "CodePackage", + "id" : "acm026188jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026189jsd" ] + }, + "acm026189jsd" : { + "type" : "CodePackage", + "id" : "acm026189jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026185jsd" ] + }, + "acm026190jsd" : { + "type" : "ControlElement", + "id" : "acm026190jsd", + "name" : "setUp" + }, + "acm026191jsd" : { + "type" : "ControlElement", + "id" : "acm026191jsd", + "name" : "validNames" + }, + "acm026192jsd" : { + "type" : "ControlElement", + "id" : "acm026192jsd", + "name" : "provideValidNames" + }, + "acm026193jsd" : { + "type" : "ControlElement", + "id" : "acm026193jsd", + "name" : "complainAboutPersonStringWithTwoManyCommas" + }, + "acm026194jsd" : { + "type" : "ControlElement", + "id" : "acm026194jsd", + "name" : "authorNameInCorrectFormatsShouldNotComplain" + }, + "acm026195jsd" : { + "type" : "ControlElement", + "id" : "acm026195jsd", + "name" : "authorNameInIncorrectFormatsShouldComplain" + }, + "acm026196jsd" : { + "type" : "ControlElement", + "id" : "acm026196jsd", + "name" : "provideCorrectFormats" + }, + "acm026197jsd" : { + "type" : "ControlElement", + "id" : "acm026197jsd", + "name" : "provideIncorrectFormats" + }, + "acm026198jsd" : { + "type" : "ClassUnit", + "id" : "acm026198jsd", + "name" : "PersonNamesCheckerTest", + "compilationUnitId" : "acm026185jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014753jsd", "acm018022jsd" ], + "content" : [ "acm026190jsd", "acm026191jsd", "acm026192jsd", "acm026193jsd", "acm026194jsd", "acm026195jsd", "acm026196jsd", "acm026197jsd" ] + }, + "acm026199jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026199jsd", + "name" : "TitleCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026244jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026200jsd" : { + "type" : "CodePackage", + "id" : "acm026200jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026201jsd" ] + }, + "acm026201jsd" : { + "type" : "CodePackage", + "id" : "acm026201jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026202jsd" ] + }, + "acm026202jsd" : { + "type" : "CodePackage", + "id" : "acm026202jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026203jsd" ] + }, + "acm026203jsd" : { + "type" : "CodePackage", + "id" : "acm026203jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026199jsd" ] + }, + "acm026204jsd" : { + "type" : "ControlElement", + "id" : "acm026204jsd", + "name" : "setUp" + }, + "acm026205jsd" : { + "type" : "ControlElement", + "id" : "acm026205jsd", + "name" : "firstLetterAsOnlyCapitalLetterInSubTitle2" + }, + "acm026206jsd" : { + "type" : "ControlElement", + "id" : "acm026206jsd", + "name" : "noCapitalLetterInSubTitle2" + }, + "acm026207jsd" : { + "type" : "ControlElement", + "id" : "acm026207jsd", + "name" : "twoCapitalLettersInSubTitle2" + }, + "acm026208jsd" : { + "type" : "ControlElement", + "id" : "acm026208jsd", + "name" : "middleLetterAsOnlyCapitalLetterInSubTitle2" + }, + "acm026209jsd" : { + "type" : "ControlElement", + "id" : "acm026209jsd", + "name" : "twoCapitalLettersInSubTitle2WithCurlyBrackets" + }, + "acm026210jsd" : { + "type" : "ControlElement", + "id" : "acm026210jsd", + "name" : "middleLetterAsOnlyCapitalLetterInSubTitle2WithCurlyBrackets" + }, + "acm026211jsd" : { + "type" : "ControlElement", + "id" : "acm026211jsd", + "name" : "firstLetterAsOnlyCapitalLetterInSubTitle2AfterContinuousDelimiters" + }, + "acm026212jsd" : { + "type" : "ControlElement", + "id" : "acm026212jsd", + "name" : "middleLetterAsOnlyCapitalLetterInSubTitle2AfterContinuousDelimiters" + }, + "acm026213jsd" : { + "type" : "ControlElement", + "id" : "acm026213jsd", + "name" : "firstLetterAsOnlyCapitalLetterInEverySubTitleWithContinuousDelimiters" + }, + "acm026214jsd" : { + "type" : "ControlElement", + "id" : "acm026214jsd", + "name" : "firstLetterAsOnlyCapitalLetterInEverySubTitleWithRandomDelimiters" + }, + "acm026215jsd" : { + "type" : "ControlElement", + "id" : "acm026215jsd", + "name" : "moreThanOneCapitalLetterInSubTitleWithoutCurlyBrackets" + }, + "acm026216jsd" : { + "type" : "ControlElement", + "id" : "acm026216jsd", + "name" : "bibTexAcceptsTitleWithOnlyFirstCapitalLetter" + }, + "acm026217jsd" : { + "type" : "ControlElement", + "id" : "acm026217jsd", + "name" : "bibTexDoesNotAcceptCapitalLettersInsideTitle" + }, + "acm026218jsd" : { + "type" : "ControlElement", + "id" : "acm026218jsd", + "name" : "bibTexRemovesCapitalLetterInsideTitle" + }, + "acm026219jsd" : { + "type" : "ControlElement", + "id" : "acm026219jsd", + "name" : "bibTexRemovesEverythingInBracketsAndAcceptsNoTitleInput" + }, + "acm026220jsd" : { + "type" : "ControlElement", + "id" : "acm026220jsd", + "name" : "bibTexRemovesEverythingInBrackets" + }, + "acm026221jsd" : { + "type" : "ControlElement", + "id" : "acm026221jsd", + "name" : "bibTexAcceptsTitleWithLowercaseFirstLetter" + }, + "acm026222jsd" : { + "type" : "ControlElement", + "id" : "acm026222jsd", + "name" : "bibTexAcceptsSubTitlesWithOnlyFirstCapitalLetter" + }, + "acm026223jsd" : { + "type" : "ControlElement", + "id" : "acm026223jsd", + "name" : "bibTexAcceptsSubTitleWithLowercaseFirstLetter" + }, + "acm026224jsd" : { + "type" : "ControlElement", + "id" : "acm026224jsd", + "name" : "bibTexDoesNotAcceptCapitalLettersInsideSubTitle" + }, + "acm026225jsd" : { + "type" : "ControlElement", + "id" : "acm026225jsd", + "name" : "bibTexRemovesCapitalLetterInsideSubTitle" + }, + "acm026226jsd" : { + "type" : "ControlElement", + "id" : "acm026226jsd", + "name" : "bibTexSplitsSubTitlesBasedOnDots" + }, + "acm026227jsd" : { + "type" : "ControlElement", + "id" : "acm026227jsd", + "name" : "bibTexSplitsSubTitleBasedOnSpecialCharacters" + }, + "acm026228jsd" : { + "type" : "ControlElement", + "id" : "acm026228jsd", + "name" : "bibTexAcceptsCapitalLetterAfterSpecialCharacter" + }, + "acm026229jsd" : { + "type" : "ControlElement", + "id" : "acm026229jsd", + "name" : "bibTexAcceptsCapitalLetterOnlyAfterSpecialCharacter" + }, + "acm026230jsd" : { + "type" : "ControlElement", + "id" : "acm026230jsd", + "name" : "bibLaTexAcceptsTitleWithOnlyFirstCapitalLetter" + }, + "acm026231jsd" : { + "type" : "ControlElement", + "id" : "acm026231jsd", + "name" : "bibLaTexAcceptsCapitalLettersInsideTitle" + }, + "acm026232jsd" : { + "type" : "ControlElement", + "id" : "acm026232jsd", + "name" : "bibLaTexRemovesCapitalLetterInsideTitle" + }, + "acm026233jsd" : { + "type" : "ControlElement", + "id" : "acm026233jsd", + "name" : "bibLaTexRemovesEverythingInBracketsAndAcceptsNoTitleInput" + }, + "acm026234jsd" : { + "type" : "ControlElement", + "id" : "acm026234jsd", + "name" : "bibLaTexRemovesEverythingInBrackets" + }, + "acm026235jsd" : { + "type" : "ControlElement", + "id" : "acm026235jsd", + "name" : "bibLaTexAcceptsTitleWithLowercaseFirstLetter" + }, + "acm026236jsd" : { + "type" : "ControlElement", + "id" : "acm026236jsd", + "name" : "bibLaTexAcceptsSubTitlesWithOnlyFirstCapitalLetter" + }, + "acm026237jsd" : { + "type" : "ControlElement", + "id" : "acm026237jsd", + "name" : "bibLaTexAcceptsSubTitleWithLowercaseFirstLetter" + }, + "acm026238jsd" : { + "type" : "ControlElement", + "id" : "acm026238jsd", + "name" : "bibLaTexAcceptsCapitalLettersInsideSubTitle" + }, + "acm026239jsd" : { + "type" : "ControlElement", + "id" : "acm026239jsd", + "name" : "bibLaTexRemovesCapitalLetterInsideSubTitle" + }, + "acm026240jsd" : { + "type" : "ControlElement", + "id" : "acm026240jsd", + "name" : "bibLaTexSplitsSubTitlesBasedOnDots" + }, + "acm026241jsd" : { + "type" : "ControlElement", + "id" : "acm026241jsd", + "name" : "bibLaTexSplitsSubTitleBasedOnSpecialCharacters" + }, + "acm026242jsd" : { + "type" : "ControlElement", + "id" : "acm026242jsd", + "name" : "bibLaTexAcceptsCapitalLetterAfterSpecialCharacter" + }, + "acm026243jsd" : { + "type" : "ControlElement", + "id" : "acm026243jsd", + "name" : "bibLaTexAcceptsCapitalLetterNotOnlyAfterSpecialCharacter" + }, + "acm026244jsd" : { + "type" : "ClassUnit", + "id" : "acm026244jsd", + "name" : "TitleCheckerTest", + "compilationUnitId" : "acm026199jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014761jsd", "acm018022jsd" ], + "content" : [ "acm026204jsd", "acm026205jsd", "acm026206jsd", "acm026207jsd", "acm026208jsd", "acm026209jsd", "acm026210jsd", "acm026211jsd", "acm026212jsd", "acm026213jsd", "acm026214jsd", "acm026215jsd", "acm026216jsd", "acm026217jsd", "acm026218jsd", "acm026219jsd", "acm026220jsd", "acm026221jsd", "acm026222jsd", "acm026223jsd", "acm026224jsd", "acm026225jsd", "acm026226jsd", "acm026227jsd", "acm026228jsd", "acm026229jsd", "acm026230jsd", "acm026231jsd", "acm026232jsd", "acm026233jsd", "acm026234jsd", "acm026235jsd", "acm026236jsd", "acm026237jsd", "acm026238jsd", "acm026239jsd", "acm026240jsd", "acm026241jsd", "acm026242jsd", "acm026243jsd" ] + }, + "acm026245jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026245jsd", + "name" : "TypeCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026252jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026246jsd" : { + "type" : "CodePackage", + "id" : "acm026246jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026247jsd" ] + }, + "acm026247jsd" : { + "type" : "CodePackage", + "id" : "acm026247jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026248jsd" ] + }, + "acm026248jsd" : { + "type" : "CodePackage", + "id" : "acm026248jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026249jsd" ] + }, + "acm026249jsd" : { + "type" : "CodePackage", + "id" : "acm026249jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026245jsd" ] + }, + "acm026250jsd" : { + "type" : "ControlElement", + "id" : "acm026250jsd", + "name" : "inProceedingsHasPagesNumbers" + }, + "acm026251jsd" : { + "type" : "ControlElement", + "id" : "acm026251jsd", + "name" : "proceedingsDoesNotHavePageNumbers" + }, + "acm026252jsd" : { + "type" : "ClassUnit", + "id" : "acm026252jsd", + "name" : "TypeCheckerTest", + "compilationUnitId" : "acm026245jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm014768jsd", "acm018267jsd" ], + "content" : [ "acm026250jsd", "acm026251jsd" ] + }, + "acm026253jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026253jsd", + "name" : "UTF8CheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026262jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026254jsd" : { + "type" : "CodePackage", + "id" : "acm026254jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026255jsd" ] + }, + "acm026255jsd" : { + "type" : "CodePackage", + "id" : "acm026255jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026256jsd" ] + }, + "acm026256jsd" : { + "type" : "CodePackage", + "id" : "acm026256jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026257jsd" ] + }, + "acm026257jsd" : { + "type" : "CodePackage", + "id" : "acm026257jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026253jsd" ] + }, + "acm026258jsd" : { + "type" : "ControlElement", + "id" : "acm026258jsd", + "name" : "fieldAcceptsUTF8" + }, + "acm026259jsd" : { + "type" : "ControlElement", + "id" : "acm026259jsd", + "name" : "fieldDoesNotAcceptUmlauts" + }, + "acm026260jsd" : { + "type" : "ControlElement", + "id" : "acm026260jsd", + "name" : "NonUTF8EncodingCheckerTest" + }, + "acm026261jsd" : { + "type" : "ControlElement", + "id" : "acm026261jsd", + "name" : "UTF8EncodingCheckerTest" + }, + "acm026262jsd" : { + "type" : "ClassUnit", + "id" : "acm026262jsd", + "name" : "UTF8CheckerTest", + "compilationUnitId" : "acm026253jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014705jsd", "acm014777jsd", "acm018267jsd" ], + "content" : [ "acm026258jsd", "acm026259jsd", "acm026260jsd", "acm026261jsd" ] + }, + "acm026263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026263jsd", + "name" : "UrlCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026274jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026264jsd" : { + "type" : "CodePackage", + "id" : "acm026264jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026265jsd" ] + }, + "acm026265jsd" : { + "type" : "CodePackage", + "id" : "acm026265jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026266jsd" ] + }, + "acm026266jsd" : { + "type" : "CodePackage", + "id" : "acm026266jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026267jsd" ] + }, + "acm026267jsd" : { + "type" : "CodePackage", + "id" : "acm026267jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026263jsd" ] + }, + "acm026268jsd" : { + "type" : "ControlElement", + "id" : "acm026268jsd", + "name" : "urlFieldAcceptsHttpAddress" + }, + "acm026269jsd" : { + "type" : "ControlElement", + "id" : "acm026269jsd", + "name" : "urlFieldAcceptsFullLocalPath" + }, + "acm026270jsd" : { + "type" : "ControlElement", + "id" : "acm026270jsd", + "name" : "urlFieldAcceptsFullPathHttpAddress" + }, + "acm026271jsd" : { + "type" : "ControlElement", + "id" : "acm026271jsd", + "name" : "urlFieldDoesNotAcceptHttpAddressWithoutTheHttp" + }, + "acm026272jsd" : { + "type" : "ControlElement", + "id" : "acm026272jsd", + "name" : "urlFieldDoesNotAcceptPartialHttpAddress" + }, + "acm026273jsd" : { + "type" : "ControlElement", + "id" : "acm026273jsd", + "name" : "urlFieldDoesNotAcceptPartialLocalPath" + }, + "acm026274jsd" : { + "type" : "ClassUnit", + "id" : "acm026274jsd", + "name" : "UrlCheckerTest", + "compilationUnitId" : "acm026263jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014784jsd" ], + "content" : [ "acm026268jsd", "acm026269jsd", "acm026270jsd", "acm026271jsd", "acm026272jsd", "acm026273jsd" ] + }, + "acm026275jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026275jsd", + "name" : "ValidCitationKeyCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026282jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026276jsd" : { + "type" : "CodePackage", + "id" : "acm026276jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026277jsd" ] + }, + "acm026277jsd" : { + "type" : "CodePackage", + "id" : "acm026277jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026278jsd" ] + }, + "acm026278jsd" : { + "type" : "CodePackage", + "id" : "acm026278jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026279jsd" ] + }, + "acm026279jsd" : { + "type" : "CodePackage", + "id" : "acm026279jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026275jsd" ] + }, + "acm026280jsd" : { + "type" : "ControlElement", + "id" : "acm026280jsd", + "name" : "citationKeyValidity" + }, + "acm026281jsd" : { + "type" : "ControlElement", + "id" : "acm026281jsd", + "name" : "provideCitationKeys" + }, + "acm026282jsd" : { + "type" : "ClassUnit", + "id" : "acm026282jsd", + "name" : "ValidCitationKeyCheckerTest", + "compilationUnitId" : "acm026275jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014791jsd" ], + "content" : [ "acm026280jsd", "acm026281jsd" ] + }, + "acm026283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026283jsd", + "name" : "YearCheckerTest", + "parentId" : "acm014499jsd", + "content" : [ "acm026304jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "integrity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026284jsd" : { + "type" : "CodePackage", + "id" : "acm026284jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026285jsd" ] + }, + "acm026285jsd" : { + "type" : "CodePackage", + "id" : "acm026285jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026286jsd" ] + }, + "acm026286jsd" : { + "type" : "CodePackage", + "id" : "acm026286jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026287jsd" ] + }, + "acm026287jsd" : { + "type" : "CodePackage", + "id" : "acm026287jsd", + "name" : "integrity", + "parentId" : null, + "content" : [ "acm026283jsd" ] + }, + "acm026288jsd" : { + "type" : "ControlElement", + "id" : "acm026288jsd", + "name" : "yearFieldAccepts21stCenturyDate" + }, + "acm026289jsd" : { + "type" : "ControlElement", + "id" : "acm026289jsd", + "name" : "yearFieldAccepts20thCenturyDate" + }, + "acm026290jsd" : { + "type" : "ControlElement", + "id" : "acm026290jsd", + "name" : "yearFieldAcceptsApproximateDate" + }, + "acm026291jsd" : { + "type" : "ControlElement", + "id" : "acm026291jsd", + "name" : "yearFieldAcceptsApproximateDateWithParenthesis" + }, + "acm026292jsd" : { + "type" : "ControlElement", + "id" : "acm026292jsd", + "name" : "yearFieldRemovesCommaFromYear" + }, + "acm026293jsd" : { + "type" : "ControlElement", + "id" : "acm026293jsd", + "name" : "yearFieldRemovesBraceAndPercentageFromYear" + }, + "acm026294jsd" : { + "type" : "ControlElement", + "id" : "acm026294jsd", + "name" : "yearFieldRemovesSpecialCharactersFromYear" + }, + "acm026295jsd" : { + "type" : "ControlElement", + "id" : "acm026295jsd", + "name" : "yearFieldDoesNotAcceptStringAsInput" + }, + "acm026296jsd" : { + "type" : "ControlElement", + "id" : "acm026296jsd", + "name" : "yearFieldDoesNotAcceptDoubleDigitNumber" + }, + "acm026297jsd" : { + "type" : "ControlElement", + "id" : "acm026297jsd", + "name" : "yearFieldDoesNotAcceptTripleDigitNumber" + }, + "acm026298jsd" : { + "type" : "ControlElement", + "id" : "acm026298jsd", + "name" : "yearFieldDoesNotRemoveStringInYear" + }, + "acm026299jsd" : { + "type" : "ControlElement", + "id" : "acm026299jsd", + "name" : "yearFieldDoesNotRemoveStringInParenthesis" + }, + "acm026300jsd" : { + "type" : "ControlElement", + "id" : "acm026300jsd", + "name" : "yearFieldDoesNotRemoveStringBeforeComma" + }, + "acm026301jsd" : { + "type" : "ControlElement", + "id" : "acm026301jsd", + "name" : "yearFieldDoesNotRemoveStringInsideBraceAndPercentage" + }, + "acm026302jsd" : { + "type" : "ControlElement", + "id" : "acm026302jsd", + "name" : "yearFieldDoesNotRemoveStringBeforeSpecialCharacters" + }, + "acm026303jsd" : { + "type" : "ControlElement", + "id" : "acm026303jsd", + "name" : "testEmptyValue" + }, + "acm026304jsd" : { + "type" : "ClassUnit", + "id" : "acm026304jsd", + "name" : "YearCheckerTest", + "compilationUnitId" : "acm026283jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014805jsd" ], + "content" : [ "acm026288jsd", "acm026289jsd", "acm026290jsd", "acm026291jsd", "acm026292jsd", "acm026293jsd", "acm026294jsd", "acm026295jsd", "acm026296jsd", "acm026297jsd", "acm026298jsd", "acm026299jsd", "acm026300jsd", "acm026301jsd", "acm026302jsd", "acm026303jsd" ] + }, + "acm026305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026305jsd", + "name" : "AbbreviationTest", + "parentId" : "acm001341jsd", + "content" : [ "acm026323jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026306jsd" : { + "type" : "CodePackage", + "id" : "acm026306jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026307jsd" ] + }, + "acm026307jsd" : { + "type" : "CodePackage", + "id" : "acm026307jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026308jsd" ] + }, + "acm026308jsd" : { + "type" : "CodePackage", + "id" : "acm026308jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026309jsd" ] + }, + "acm026309jsd" : { + "type" : "CodePackage", + "id" : "acm026309jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm026305jsd" ] + }, + "acm026310jsd" : { + "type" : "ControlElement", + "id" : "acm026310jsd", + "name" : "testAbbreviationsWithTrailingSpaces" + }, + "acm026311jsd" : { + "type" : "ControlElement", + "id" : "acm026311jsd", + "name" : "testAbbreviationsWithTrailingSpacesWithShortestUniqueAbbreviation" + }, + "acm026312jsd" : { + "type" : "ControlElement", + "id" : "acm026312jsd", + "name" : "testAbbreviationsWithSemicolons" + }, + "acm026313jsd" : { + "type" : "ControlElement", + "id" : "acm026313jsd", + "name" : "testAbbreviationsWithSemicolonsWithShortestUniqueAbbreviation" + }, + "acm026314jsd" : { + "type" : "ControlElement", + "id" : "acm026314jsd", + "name" : "testGetNextElement" + }, + "acm026315jsd" : { + "type" : "ControlElement", + "id" : "acm026315jsd", + "name" : "testGetNextElementWithShortestUniqueAbbreviation" + }, + "acm026316jsd" : { + "type" : "ControlElement", + "id" : "acm026316jsd", + "name" : "testGetNextElementWithTrailingSpaces" + }, + "acm026317jsd" : { + "type" : "ControlElement", + "id" : "acm026317jsd", + "name" : "testGetNextElementWithTrailingSpacesWithShortestUniqueAbbreviation" + }, + "acm026318jsd" : { + "type" : "ControlElement", + "id" : "acm026318jsd", + "name" : "testDefaultAndMedlineAbbreviationsAreSame" + }, + "acm026319jsd" : { + "type" : "ControlElement", + "id" : "acm026319jsd", + "name" : "testDefaultAndMedlineAbbreviationsAreSameWithShortestUniqueAbbreviation" + }, + "acm026320jsd" : { + "type" : "ControlElement", + "id" : "acm026320jsd", + "name" : "testDefaultAndShortestUniqueAbbreviationsAreSame" + }, + "acm026321jsd" : { + "type" : "ControlElement", + "id" : "acm026321jsd", + "name" : "testEquals" + }, + "acm026322jsd" : { + "type" : "ControlElement", + "id" : "acm026322jsd", + "name" : "equalAbbrevationsWithFourComponentsAreAlsoCompareZero" + }, + "acm026323jsd" : { + "type" : "ClassUnit", + "id" : "acm026323jsd", + "name" : "AbbreviationTest", + "compilationUnitId" : "acm026305jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd" ], + "content" : [ "acm026310jsd", "acm026311jsd", "acm026312jsd", "acm026313jsd", "acm026314jsd", "acm026315jsd", "acm026316jsd", "acm026317jsd", "acm026318jsd", "acm026319jsd", "acm026320jsd", "acm026321jsd", "acm026322jsd" ] + }, + "acm026324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026324jsd", + "name" : "AbbreviationWriterTest", + "parentId" : "acm001341jsd", + "content" : [ "acm026331jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026325jsd" : { + "type" : "CodePackage", + "id" : "acm026325jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026326jsd" ] + }, + "acm026326jsd" : { + "type" : "CodePackage", + "id" : "acm026326jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026327jsd" ] + }, + "acm026327jsd" : { + "type" : "CodePackage", + "id" : "acm026327jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026328jsd" ] + }, + "acm026328jsd" : { + "type" : "CodePackage", + "id" : "acm026328jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm026324jsd" ] + }, + "acm026329jsd" : { + "type" : "ControlElement", + "id" : "acm026329jsd", + "name" : "shortestUniqueAbbreviationWrittenIfItDiffers" + }, + "acm026330jsd" : { + "type" : "ControlElement", + "id" : "acm026330jsd", + "name" : "doNotWriteShortestUniqueAbbreviationWrittenIfItDiffers" + }, + "acm026331jsd" : { + "type" : "ClassUnit", + "id" : "acm026331jsd", + "name" : "AbbreviationWriterTest", + "compilationUnitId" : "acm026324jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd" ], + "content" : [ "acm026329jsd", "acm026330jsd" ] + }, + "acm026332jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026332jsd", + "name" : "AbbreviationsTest", + "parentId" : "acm001341jsd", + "content" : [ "acm026340jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026333jsd" : { + "type" : "CodePackage", + "id" : "acm026333jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026334jsd" ] + }, + "acm026334jsd" : { + "type" : "CodePackage", + "id" : "acm026334jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026335jsd" ] + }, + "acm026335jsd" : { + "type" : "CodePackage", + "id" : "acm026335jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026336jsd" ] + }, + "acm026336jsd" : { + "type" : "CodePackage", + "id" : "acm026336jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm026332jsd" ] + }, + "acm026337jsd" : { + "type" : "ControlElement", + "id" : "acm026337jsd", + "name" : "setUp" + }, + "acm026338jsd" : { + "type" : "ControlElement", + "id" : "acm026338jsd", + "name" : "getNextAbbreviationAbbreviatesJournalTitle" + }, + "acm026339jsd" : { + "type" : "ControlElement", + "id" : "acm026339jsd", + "name" : "getNextAbbreviationConvertsAbbreviationToDotlessAbbreviation" + }, + "acm026340jsd" : { + "type" : "ClassUnit", + "id" : "acm026340jsd", + "name" : "AbbreviationsTest", + "compilationUnitId" : "acm026332jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001424jsd" ], + "content" : [ "acm026337jsd", "acm026338jsd", "acm026339jsd" ] + }, + "acm026341jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026341jsd", + "name" : "JournalAbbreviationRepositoryTest", + "parentId" : "acm001341jsd", + "content" : [ "acm026370jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "journals" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026342jsd" : { + "type" : "CodePackage", + "id" : "acm026342jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026343jsd" ] + }, + "acm026343jsd" : { + "type" : "CodePackage", + "id" : "acm026343jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026344jsd" ] + }, + "acm026344jsd" : { + "type" : "CodePackage", + "id" : "acm026344jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026345jsd" ] + }, + "acm026345jsd" : { + "type" : "CodePackage", + "id" : "acm026345jsd", + "name" : "journals", + "parentId" : null, + "content" : [ "acm026341jsd" ] + }, + "acm026346jsd" : { + "type" : "ControlElement", + "id" : "acm026346jsd", + "name" : "setUp" + }, + "acm026347jsd" : { + "type" : "ControlElement", + "id" : "acm026347jsd", + "name" : "empty" + }, + "acm026348jsd" : { + "type" : "ControlElement", + "id" : "acm026348jsd", + "name" : "oneElement" + }, + "acm026349jsd" : { + "type" : "ControlElement", + "id" : "acm026349jsd", + "name" : "oneElementWithShortestUniqueAbbreviation" + }, + "acm026350jsd" : { + "type" : "ControlElement", + "id" : "acm026350jsd", + "name" : "testDuplicates" + }, + "acm026351jsd" : { + "type" : "ControlElement", + "id" : "acm026351jsd", + "name" : "testDuplicatesWithShortestUniqueAbbreviation" + }, + "acm026352jsd" : { + "type" : "ControlElement", + "id" : "acm026352jsd", + "name" : "testDuplicatesIsoOnly" + }, + "acm026353jsd" : { + "type" : "ControlElement", + "id" : "acm026353jsd", + "name" : "testDuplicatesIsoOnlyWithShortestUniqueAbbreviation" + }, + "acm026354jsd" : { + "type" : "ControlElement", + "id" : "acm026354jsd", + "name" : "testDuplicateKeys" + }, + "acm026355jsd" : { + "type" : "ControlElement", + "id" : "acm026355jsd", + "name" : "testDuplicateKeysWithShortestUniqueAbbreviation" + }, + "acm026356jsd" : { + "type" : "ControlElement", + "id" : "acm026356jsd", + "name" : "getFromFullName" + }, + "acm026357jsd" : { + "type" : "ControlElement", + "id" : "acm026357jsd", + "name" : "getFromAbbreviatedName" + }, + "acm026358jsd" : { + "type" : "ControlElement", + "id" : "acm026358jsd", + "name" : "testAbbreviationsWithEscapedAmpersand" + }, + "acm026359jsd" : { + "type" : "ControlElement", + "id" : "acm026359jsd", + "name" : "testJournalAbbreviationWithEscapedAmpersand" + }, + "acm026360jsd" : { + "type" : "ControlElement", + "id" : "acm026360jsd", + "name" : "testJournalUnabbreviate" + }, + "acm026361jsd" : { + "type" : "ControlElement", + "id" : "acm026361jsd", + "name" : "testJournalAbbreviateWithoutEscapedAmpersand" + }, + "acm026362jsd" : { + "type" : "ControlElement", + "id" : "acm026362jsd", + "name" : "testJournalAbbreviateWithEmptyFJournal" + }, + "acm026363jsd" : { + "type" : "ControlElement", + "id" : "acm026363jsd", + "name" : "testUnabbreviateWithJournalExistsAndFJournalNot" + }, + "acm026364jsd" : { + "type" : "ControlElement", + "id" : "acm026364jsd", + "name" : "testUnabbreviateWithJournalExistsAndFJournalExists" + }, + "acm026365jsd" : { + "type" : "ControlElement", + "id" : "acm026365jsd", + "name" : "testJournalDotlessAbbreviation" + }, + "acm026366jsd" : { + "type" : "ControlElement", + "id" : "acm026366jsd", + "name" : "testJournalDotlessAbbreviationWithCurlyBraces" + }, + "acm026367jsd" : { + "type" : "ControlElement", + "id" : "acm026367jsd", + "name" : "testTitleEmbeddedWithCurlyBracesHavingNoChangesKeepsBraces" + }, + "acm026368jsd" : { + "type" : "ControlElement", + "id" : "acm026368jsd", + "name" : "testTitleWithNestedCurlyBracesHavingNoChangesKeepsBraces" + }, + "acm026369jsd" : { + "type" : "ControlElement", + "id" : "acm026369jsd", + "name" : "testDotlessForPhysRevB" + }, + "acm026370jsd" : { + "type" : "ClassUnit", + "id" : "acm026370jsd", + "name" : "JournalAbbreviationRepositoryTest", + "compilationUnitId" : "acm026341jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001355jsd", "acm001424jsd", "acm005741jsd", "acm005750jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm026346jsd", "acm026347jsd", "acm026348jsd", "acm026349jsd", "acm026350jsd", "acm026351jsd", "acm026352jsd", "acm026353jsd", "acm026354jsd", "acm026355jsd", "acm026356jsd", "acm026357jsd", "acm026358jsd", "acm026359jsd", "acm026360jsd", "acm026361jsd", "acm026362jsd", "acm026363jsd", "acm026364jsd", "acm026365jsd", "acm026366jsd", "acm026367jsd", "acm026368jsd", "acm026369jsd" ] + }, + "acm026371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026371jsd", + "name" : "EncodingsTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026380jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026372jsd" : { + "type" : "CodePackage", + "id" : "acm026372jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026373jsd" ] + }, + "acm026373jsd" : { + "type" : "CodePackage", + "id" : "acm026373jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026374jsd" ] + }, + "acm026374jsd" : { + "type" : "CodePackage", + "id" : "acm026374jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026375jsd" ] + }, + "acm026375jsd" : { + "type" : "CodePackage", + "id" : "acm026375jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026371jsd" ] + }, + "acm026376jsd" : { + "type" : "ControlElement", + "id" : "acm026376jsd", + "name" : "charsetsShouldNotBeNull" + }, + "acm026377jsd" : { + "type" : "ControlElement", + "id" : "acm026377jsd", + "name" : "displayNamesShouldNotBeNull" + }, + "acm026378jsd" : { + "type" : "ControlElement", + "id" : "acm026378jsd", + "name" : "charsetsShouldNotBeEmpty" + }, + "acm026379jsd" : { + "type" : "ControlElement", + "id" : "acm026379jsd", + "name" : "displayNamesShouldNotBeEmpty" + }, + "acm026380jsd" : { + "type" : "ClassUnit", + "id" : "acm026380jsd", + "name" : "EncodingsTest", + "compilationUnitId" : "acm026371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026376jsd", "acm026377jsd", "acm026378jsd", "acm026379jsd" ] + }, + "acm026381jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026381jsd", + "name" : "JavaLocalizationEntryParser", + "parentId" : "acm014898jsd", + "content" : [ "acm026389jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026382jsd" : { + "type" : "CodePackage", + "id" : "acm026382jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026383jsd" ] + }, + "acm026383jsd" : { + "type" : "CodePackage", + "id" : "acm026383jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026384jsd" ] + }, + "acm026384jsd" : { + "type" : "CodePackage", + "id" : "acm026384jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026385jsd" ] + }, + "acm026385jsd" : { + "type" : "CodePackage", + "id" : "acm026385jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026381jsd" ] + }, + "acm026386jsd" : { + "type" : "ControlElement", + "id" : "acm026386jsd", + "name" : "getLanguageKeysInString" + }, + "acm026387jsd" : { + "type" : "ControlElement", + "id" : "acm026387jsd", + "name" : "getContentWithinQuotes" + }, + "acm026388jsd" : { + "type" : "ControlElement", + "id" : "acm026388jsd", + "name" : "getLocalizationParameter" + }, + "acm026389jsd" : { + "type" : "ClassUnit", + "id" : "acm026389jsd", + "name" : "JavaLocalizationEntryParser", + "compilationUnitId" : "acm026381jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm026418jsd" ], + "content" : [ "acm026386jsd", "acm026387jsd", "acm026388jsd" ] + }, + "acm026390jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026390jsd", + "name" : "JavaLocalizationEntryParserTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026403jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026391jsd" : { + "type" : "CodePackage", + "id" : "acm026391jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026392jsd" ] + }, + "acm026392jsd" : { + "type" : "CodePackage", + "id" : "acm026392jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026393jsd" ] + }, + "acm026393jsd" : { + "type" : "CodePackage", + "id" : "acm026393jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026394jsd" ] + }, + "acm026394jsd" : { + "type" : "CodePackage", + "id" : "acm026394jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026390jsd" ] + }, + "acm026395jsd" : { + "type" : "ControlElement", + "id" : "acm026395jsd", + "name" : "singleLineChecks" + }, + "acm026396jsd" : { + "type" : "ControlElement", + "id" : "acm026396jsd", + "name" : "multiLineChecks" + }, + "acm026397jsd" : { + "type" : "ControlElement", + "id" : "acm026397jsd", + "name" : "singleLineParameterChecks" + }, + "acm026398jsd" : { + "type" : "ControlElement", + "id" : "acm026398jsd", + "name" : "causesRuntimeExceptions" + }, + "acm026399jsd" : { + "type" : "ControlElement", + "id" : "acm026399jsd", + "name" : "testLocalizationKeyParsing" + }, + "acm026400jsd" : { + "type" : "ControlElement", + "id" : "acm026400jsd", + "name" : "testLocalizationKeyParsing" + }, + "acm026401jsd" : { + "type" : "ControlElement", + "id" : "acm026401jsd", + "name" : "testLocalizationParameterParsing" + }, + "acm026402jsd" : { + "type" : "ControlElement", + "id" : "acm026402jsd", + "name" : "throwsRuntimeException" + }, + "acm026403jsd" : { + "type" : "ClassUnit", + "id" : "acm026403jsd", + "name" : "JavaLocalizationEntryParserTest", + "compilationUnitId" : "acm026390jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026395jsd", "acm026396jsd", "acm026397jsd", "acm026398jsd", "acm026399jsd", "acm026400jsd", "acm026401jsd", "acm026402jsd" ] + }, + "acm026404jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026404jsd", + "name" : "LanguageTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026412jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026405jsd" : { + "type" : "CodePackage", + "id" : "acm026405jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026406jsd" ] + }, + "acm026406jsd" : { + "type" : "CodePackage", + "id" : "acm026406jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026407jsd" ] + }, + "acm026407jsd" : { + "type" : "CodePackage", + "id" : "acm026407jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026408jsd" ] + }, + "acm026408jsd" : { + "type" : "CodePackage", + "id" : "acm026408jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026404jsd" ] + }, + "acm026409jsd" : { + "type" : "ControlElement", + "id" : "acm026409jsd", + "name" : "convertKnownLanguageOnly" + }, + "acm026410jsd" : { + "type" : "ControlElement", + "id" : "acm026410jsd", + "name" : "convertKnownLanguageAndCountryCorrect" + }, + "acm026411jsd" : { + "type" : "ControlElement", + "id" : "acm026411jsd", + "name" : "convertToKnownLocaleNull" + }, + "acm026412jsd" : { + "type" : "ClassUnit", + "id" : "acm026412jsd", + "name" : "LanguageTest", + "compilationUnitId" : "acm026404jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026409jsd", "acm026410jsd", "acm026411jsd" ] + }, + "acm026413jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026413jsd", + "name" : "LocalizationBundleForTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026418jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026414jsd" : { + "type" : "CodePackage", + "id" : "acm026414jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026415jsd" ] + }, + "acm026415jsd" : { + "type" : "CodePackage", + "id" : "acm026415jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026416jsd" ] + }, + "acm026416jsd" : { + "type" : "CodePackage", + "id" : "acm026416jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026417jsd" ] + }, + "acm026417jsd" : { + "type" : "CodePackage", + "id" : "acm026417jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026413jsd" ] + }, + "acm026418jsd" : { + "type" : "ClassUnit", + "id" : "acm026418jsd", + "name" : "LocalizationBundleForTest", + "compilationUnitId" : "acm026413jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm026419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026419jsd", + "name" : "LocalizationConsistencyTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026438jsd", "acm026442jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026420jsd" : { + "type" : "CodePackage", + "id" : "acm026420jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026421jsd" ] + }, + "acm026421jsd" : { + "type" : "CodePackage", + "id" : "acm026421jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026422jsd" ] + }, + "acm026422jsd" : { + "type" : "CodePackage", + "id" : "acm026422jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026423jsd" ] + }, + "acm026423jsd" : { + "type" : "CodePackage", + "id" : "acm026423jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026419jsd" ] + }, + "acm026424jsd" : { + "type" : "ControlElement", + "id" : "acm026424jsd", + "name" : "allFilesMustBeInLanguages" + }, + "acm026425jsd" : { + "type" : "ControlElement", + "id" : "acm026425jsd", + "name" : "ensureNoDuplicates" + }, + "acm026426jsd" : { + "type" : "ControlElement", + "id" : "acm026426jsd", + "name" : "keyValueShouldBeEqualForEnglishPropertiesMessages" + }, + "acm026427jsd" : { + "type" : "ControlElement", + "id" : "acm026427jsd", + "name" : "languageKeysShouldNotContainUnderscoresForSpaces" + }, + "acm026428jsd" : { + "type" : "ControlElement", + "id" : "acm026428jsd", + "name" : "languageKeysShouldNotContainHtmlBrAndHtmlP" + }, + "acm026429jsd" : { + "type" : "ControlElement", + "id" : "acm026429jsd", + "name" : "findMissingLocalizationKeys" + }, + "acm026430jsd" : { + "type" : "ControlElement", + "id" : "acm026430jsd", + "name" : "findObsoleteLocalizationKeys" + }, + "acm026431jsd" : { + "type" : "ControlElement", + "id" : "acm026431jsd", + "name" : "localizationParameterMustIncludeAString" + }, + "acm026432jsd" : { + "type" : "ControlElement", + "id" : "acm026432jsd", + "name" : "installedLanguages" + }, + "acm026433jsd" : { + "type" : "ControlElement", + "id" : "acm026433jsd", + "name" : "resourceBundleExists" + }, + "acm026434jsd" : { + "type" : "ControlElement", + "id" : "acm026434jsd", + "name" : "languageCanBeLoaded" + }, + "acm026435jsd" : { + "type" : "ControlElement", + "id" : "acm026435jsd", + "name" : "DuplicationDetectionProperties" + }, + "acm026436jsd" : { + "type" : "ControlElement", + "id" : "acm026436jsd", + "name" : "put" + }, + "acm026437jsd" : { + "type" : "ControlElement", + "id" : "acm026437jsd", + "name" : "getDuplicates" + }, + "acm026438jsd" : { + "type" : "ClassUnit", + "id" : "acm026438jsd", + "name" : "LocalizationConsistencyTest", + "compilationUnitId" : "acm026419jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014911jsd", "acm026438jsd", "acm026442jsd", "acm026457jsd" ], + "content" : [ "acm026424jsd", "acm026425jsd", "acm026426jsd", "acm026427jsd", "acm026428jsd", "acm026429jsd", "acm026430jsd", "acm026431jsd", "acm026432jsd", "acm026433jsd", "acm026434jsd", "acm026435jsd", "acm026436jsd", "acm026437jsd" ] + }, + "acm026439jsd" : { + "type" : "ControlElement", + "id" : "acm026439jsd", + "name" : "DuplicationDetectionProperties" + }, + "acm026440jsd" : { + "type" : "ControlElement", + "id" : "acm026440jsd", + "name" : "put" + }, + "acm026441jsd" : { + "type" : "ControlElement", + "id" : "acm026441jsd", + "name" : "getDuplicates" + }, + "acm026442jsd" : { + "type" : "ClassUnit", + "id" : "acm026442jsd", + "name" : "DuplicationDetectionProperties", + "compilationUnitId" : "acm026419jsd", + "parentDatatypeId" : "acm026438jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026439jsd", "acm026440jsd", "acm026441jsd" ] + }, + "acm026443jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026443jsd", + "name" : "LocalizationEntry", + "parentId" : "acm014898jsd", + "content" : [ "acm026457jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026444jsd" : { + "type" : "CodePackage", + "id" : "acm026444jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026445jsd" ] + }, + "acm026445jsd" : { + "type" : "CodePackage", + "id" : "acm026445jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026446jsd" ] + }, + "acm026446jsd" : { + "type" : "CodePackage", + "id" : "acm026446jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026447jsd" ] + }, + "acm026447jsd" : { + "type" : "CodePackage", + "id" : "acm026447jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026443jsd" ] + }, + "acm026448jsd" : { + "type" : "ControlElement", + "id" : "acm026448jsd", + "name" : "LocalizationEntry" + }, + "acm026449jsd" : { + "type" : "ControlElement", + "id" : "acm026449jsd", + "name" : "getPath" + }, + "acm026450jsd" : { + "type" : "ControlElement", + "id" : "acm026450jsd", + "name" : "getKey" + }, + "acm026451jsd" : { + "type" : "ControlElement", + "id" : "acm026451jsd", + "name" : "getId" + }, + "acm026452jsd" : { + "type" : "ControlElement", + "id" : "acm026452jsd", + "name" : "equals" + }, + "acm026453jsd" : { + "type" : "ControlElement", + "id" : "acm026453jsd", + "name" : "hashCode" + }, + "acm026454jsd" : { + "type" : "ControlElement", + "id" : "acm026454jsd", + "name" : "getBundle" + }, + "acm026455jsd" : { + "type" : "ControlElement", + "id" : "acm026455jsd", + "name" : "toString" + }, + "acm026456jsd" : { + "type" : "ControlElement", + "id" : "acm026456jsd", + "name" : "compareTo" + }, + "acm026457jsd" : { + "type" : "ClassUnit", + "id" : "acm026457jsd", + "name" : "LocalizationEntry", + "compilationUnitId" : "acm026443jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm026418jsd", "acm026457jsd" ], + "content" : [ "acm026448jsd", "acm026449jsd", "acm026450jsd", "acm026451jsd", "acm026452jsd", "acm026453jsd", "acm026454jsd", "acm026455jsd", "acm026456jsd" ] + }, + "acm026458jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026458jsd", + "name" : "LocalizationKeyParamsTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026466jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026459jsd" : { + "type" : "CodePackage", + "id" : "acm026459jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026460jsd" ] + }, + "acm026460jsd" : { + "type" : "CodePackage", + "id" : "acm026460jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026461jsd" ] + }, + "acm026461jsd" : { + "type" : "CodePackage", + "id" : "acm026461jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026462jsd" ] + }, + "acm026462jsd" : { + "type" : "CodePackage", + "id" : "acm026462jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026458jsd" ] + }, + "acm026463jsd" : { + "type" : "ControlElement", + "id" : "acm026463jsd", + "name" : "testReplacePlaceholders" + }, + "acm026464jsd" : { + "type" : "ControlElement", + "id" : "acm026464jsd", + "name" : "provideTestData" + }, + "acm026465jsd" : { + "type" : "ControlElement", + "id" : "acm026465jsd", + "name" : "testTooManyParams" + }, + "acm026466jsd" : { + "type" : "ClassUnit", + "id" : "acm026466jsd", + "name" : "LocalizationKeyParamsTest", + "compilationUnitId" : "acm026458jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014955jsd" ], + "content" : [ "acm026463jsd", "acm026464jsd", "acm026465jsd" ] + }, + "acm026467jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026467jsd", + "name" : "LocalizationKeyTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026474jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026468jsd" : { + "type" : "CodePackage", + "id" : "acm026468jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026469jsd" ] + }, + "acm026469jsd" : { + "type" : "CodePackage", + "id" : "acm026469jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026470jsd" ] + }, + "acm026470jsd" : { + "type" : "CodePackage", + "id" : "acm026470jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026471jsd" ] + }, + "acm026471jsd" : { + "type" : "CodePackage", + "id" : "acm026471jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026467jsd" ] + }, + "acm026472jsd" : { + "type" : "ControlElement", + "id" : "acm026472jsd", + "name" : "propertiesKeyTestCases" + }, + "acm026473jsd" : { + "type" : "ControlElement", + "id" : "acm026473jsd", + "name" : "getPropertiesKeyReturnsCorrectValue" + }, + "acm026474jsd" : { + "type" : "ClassUnit", + "id" : "acm026474jsd", + "name" : "LocalizationKeyTest", + "compilationUnitId" : "acm026467jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026472jsd", "acm026473jsd" ] + }, + "acm026475jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026475jsd", + "name" : "LocalizationParser", + "parentId" : "acm014898jsd", + "content" : [ "acm026497jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026476jsd" : { + "type" : "CodePackage", + "id" : "acm026476jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026477jsd" ] + }, + "acm026477jsd" : { + "type" : "CodePackage", + "id" : "acm026477jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026478jsd" ] + }, + "acm026478jsd" : { + "type" : "CodePackage", + "id" : "acm026478jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026479jsd" ] + }, + "acm026479jsd" : { + "type" : "CodePackage", + "id" : "acm026479jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026475jsd" ] + }, + "acm026480jsd" : { + "type" : "ControlElement", + "id" : "acm026480jsd", + "name" : "findMissingKeys" + }, + "acm026481jsd" : { + "type" : "ControlElement", + "id" : "acm026481jsd", + "name" : "findObsolete" + }, + "acm026482jsd" : { + "type" : "ControlElement", + "id" : "acm026482jsd", + "name" : "findLocalizationEntriesInFiles" + }, + "acm026483jsd" : { + "type" : "ControlElement", + "id" : "acm026483jsd", + "name" : "findLocalizationParametersStringsInJavaFiles" + }, + "acm026484jsd" : { + "type" : "ControlElement", + "id" : "acm026484jsd", + "name" : "findLocalizationEntriesInJavaFiles" + }, + "acm026485jsd" : { + "type" : "ControlElement", + "id" : "acm026485jsd", + "name" : "findLocalizationEntriesInFxmlFiles" + }, + "acm026486jsd" : { + "type" : "ControlElement", + "id" : "acm026486jsd", + "name" : "getKeysInPropertiesFile" + }, + "acm026487jsd" : { + "type" : "ControlElement", + "id" : "acm026487jsd", + "name" : "getProperties" + }, + "acm026488jsd" : { + "type" : "ControlElement", + "id" : "acm026488jsd", + "name" : "isJavaFile" + }, + "acm026489jsd" : { + "type" : "ControlElement", + "id" : "acm026489jsd", + "name" : "isFxmlFile" + }, + "acm026490jsd" : { + "type" : "ControlElement", + "id" : "acm026490jsd", + "name" : "getLanguageKeysInJavaFile" + }, + "acm026491jsd" : { + "type" : "ControlElement", + "id" : "acm026491jsd", + "name" : "getLocalizationParametersInJavaFile" + }, + "acm026492jsd" : { + "type" : "ControlElement", + "id" : "acm026492jsd", + "name" : "getLanguageKeysInFxmlFile" + }, + "acm026493jsd" : { + "type" : "ControlElement", + "id" : "acm026493jsd", + "name" : "handleGetObject" + }, + "acm026494jsd" : { + "type" : "ControlElement", + "id" : "acm026494jsd", + "name" : "getKeys" + }, + "acm026495jsd" : { + "type" : "ControlElement", + "id" : "acm026495jsd", + "name" : "containsKey" + }, + "acm026496jsd" : { + "type" : "ControlElement", + "id" : "acm026496jsd", + "name" : "setStaticLoad" + }, + "acm026497jsd" : { + "type" : "ClassUnit", + "id" : "acm026497jsd", + "name" : "LocalizationParser", + "compilationUnitId" : "acm026475jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm026418jsd", "acm026438jsd", "acm026457jsd" ], + "content" : [ "acm026480jsd", "acm026481jsd", "acm026482jsd", "acm026483jsd", "acm026484jsd", "acm026485jsd", "acm026486jsd", "acm026487jsd", "acm026488jsd", "acm026489jsd", "acm026490jsd", "acm026491jsd", "acm026492jsd", "acm026493jsd", "acm026494jsd", "acm026495jsd", "acm026496jsd" ] + }, + "acm026498jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026498jsd", + "name" : "LocalizationTest", + "parentId" : "acm014898jsd", + "content" : [ "acm026513jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "l10n" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026499jsd" : { + "type" : "CodePackage", + "id" : "acm026499jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026500jsd" ] + }, + "acm026500jsd" : { + "type" : "CodePackage", + "id" : "acm026500jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026501jsd" ] + }, + "acm026501jsd" : { + "type" : "CodePackage", + "id" : "acm026501jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026502jsd" ] + }, + "acm026502jsd" : { + "type" : "CodePackage", + "id" : "acm026502jsd", + "name" : "l10n", + "parentId" : null, + "content" : [ "acm026498jsd" ] + }, + "acm026503jsd" : { + "type" : "ControlElement", + "id" : "acm026503jsd", + "name" : "storeDefaultLocale" + }, + "acm026504jsd" : { + "type" : "ControlElement", + "id" : "acm026504jsd", + "name" : "restoreDefaultLocale" + }, + "acm026505jsd" : { + "type" : "ControlElement", + "id" : "acm026505jsd", + "name" : "testSetKnownLanguage" + }, + "acm026506jsd" : { + "type" : "ControlElement", + "id" : "acm026506jsd", + "name" : "testKnownTranslationWithGroups" + }, + "acm026507jsd" : { + "type" : "ControlElement", + "id" : "acm026507jsd", + "name" : "testKnownEnglishTranslationOfUndo" + }, + "acm026508jsd" : { + "type" : "ControlElement", + "id" : "acm026508jsd", + "name" : "testKnownGermanTranslation" + }, + "acm026509jsd" : { + "type" : "ControlElement", + "id" : "acm026509jsd", + "name" : "newLineIsAvailableAndKeptUnescaped" + }, + "acm026510jsd" : { + "type" : "ControlElement", + "id" : "acm026510jsd", + "name" : "testKnownTranslationWithCountryModifier" + }, + "acm026511jsd" : { + "type" : "ControlElement", + "id" : "acm026511jsd", + "name" : "testUnknownTranslation" + }, + "acm026512jsd" : { + "type" : "ControlElement", + "id" : "acm026512jsd", + "name" : "testUnsetLanguageTranslation" + }, + "acm026513jsd" : { + "type" : "ClassUnit", + "id" : "acm026513jsd", + "name" : "LocalizationTest", + "compilationUnitId" : "acm026498jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm026503jsd", "acm026504jsd", "acm026505jsd", "acm026506jsd", "acm026507jsd", "acm026508jsd", "acm026509jsd", "acm026510jsd", "acm026511jsd", "acm026512jsd" ] + }, + "acm026514jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026514jsd", + "name" : "LayoutEntryTest", + "parentId" : "acm014967jsd", + "content" : [ "acm026522jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026515jsd" : { + "type" : "CodePackage", + "id" : "acm026515jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026516jsd" ] + }, + "acm026516jsd" : { + "type" : "CodePackage", + "id" : "acm026516jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026517jsd" ] + }, + "acm026517jsd" : { + "type" : "CodePackage", + "id" : "acm026517jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026518jsd" ] + }, + "acm026518jsd" : { + "type" : "CodePackage", + "id" : "acm026518jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026514jsd" ] + }, + "acm026519jsd" : { + "type" : "ControlElement", + "id" : "acm026519jsd", + "name" : "setUp" + }, + "acm026520jsd" : { + "type" : "ControlElement", + "id" : "acm026520jsd", + "name" : "layout" + }, + "acm026521jsd" : { + "type" : "ControlElement", + "id" : "acm026521jsd", + "name" : "testParseMethodCalls" + }, + "acm026522jsd" : { + "type" : "ClassUnit", + "id" : "acm026522jsd", + "name" : "LayoutEntryTest", + "compilationUnitId" : "acm026514jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015033jsd", "acm015052jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm026519jsd", "acm026520jsd", "acm026521jsd" ] + }, + "acm026523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026523jsd", + "name" : "LayoutHelperTest", + "parentId" : "acm014967jsd", + "content" : [ "acm026531jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026524jsd" : { + "type" : "CodePackage", + "id" : "acm026524jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026525jsd" ] + }, + "acm026525jsd" : { + "type" : "CodePackage", + "id" : "acm026525jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026526jsd" ] + }, + "acm026526jsd" : { + "type" : "CodePackage", + "id" : "acm026526jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026527jsd" ] + }, + "acm026527jsd" : { + "type" : "CodePackage", + "id" : "acm026527jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026523jsd" ] + }, + "acm026528jsd" : { + "type" : "ControlElement", + "id" : "acm026528jsd", + "name" : "backslashDoesNotTriggerException" + }, + "acm026529jsd" : { + "type" : "ControlElement", + "id" : "acm026529jsd", + "name" : "unbalancedBeginEndIsParsed" + }, + "acm026530jsd" : { + "type" : "ControlElement", + "id" : "acm026530jsd", + "name" : "minimalExampleWithDoiGetsParsed" + }, + "acm026531jsd" : { + "type" : "ClassUnit", + "id" : "acm026531jsd", + "name" : "LayoutHelperTest", + "compilationUnitId" : "acm026523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015033jsd", "acm015052jsd" ], + "content" : [ "acm026528jsd", "acm026529jsd", "acm026530jsd" ] + }, + "acm026532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026532jsd", + "name" : "LayoutTest", + "parentId" : "acm014967jsd", + "content" : [ "acm026551jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026533jsd" : { + "type" : "CodePackage", + "id" : "acm026533jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026534jsd" ] + }, + "acm026534jsd" : { + "type" : "CodePackage", + "id" : "acm026534jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026535jsd" ] + }, + "acm026535jsd" : { + "type" : "CodePackage", + "id" : "acm026535jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026536jsd" ] + }, + "acm026536jsd" : { + "type" : "CodePackage", + "id" : "acm026536jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026532jsd" ] + }, + "acm026537jsd" : { + "type" : "ControlElement", + "id" : "acm026537jsd", + "name" : "setUp" + }, + "acm026538jsd" : { + "type" : "ControlElement", + "id" : "acm026538jsd", + "name" : "layout" + }, + "acm026539jsd" : { + "type" : "ControlElement", + "id" : "acm026539jsd", + "name" : "layout" + }, + "acm026540jsd" : { + "type" : "ControlElement", + "id" : "acm026540jsd", + "name" : "entryTypeForUnknown" + }, + "acm026541jsd" : { + "type" : "ControlElement", + "id" : "acm026541jsd", + "name" : "entryTypeForArticle" + }, + "acm026542jsd" : { + "type" : "ControlElement", + "id" : "acm026542jsd", + "name" : "entryTypeForMisc" + }, + "acm026543jsd" : { + "type" : "ControlElement", + "id" : "acm026543jsd", + "name" : "HTMLChar" + }, + "acm026544jsd" : { + "type" : "ControlElement", + "id" : "acm026544jsd", + "name" : "HTMLCharWithDoubleLineBreak" + }, + "acm026545jsd" : { + "type" : "ControlElement", + "id" : "acm026545jsd", + "name" : "nameFormatter" + }, + "acm026546jsd" : { + "type" : "ControlElement", + "id" : "acm026546jsd", + "name" : "HTMLCharsWithDotlessIAndTiled" + }, + "acm026547jsd" : { + "type" : "ControlElement", + "id" : "acm026547jsd", + "name" : "beginConditionals" + }, + "acm026548jsd" : { + "type" : "ControlElement", + "id" : "acm026548jsd", + "name" : "wrapFileLinksExpandFile" + }, + "acm026549jsd" : { + "type" : "ControlElement", + "id" : "acm026549jsd", + "name" : "expandCommandIfTerminatedByMinus" + }, + "acm026550jsd" : { + "type" : "ControlElement", + "id" : "acm026550jsd", + "name" : "customNameFormatter" + }, + "acm026551jsd" : { + "type" : "ClassUnit", + "id" : "acm026551jsd", + "name" : "LayoutTest", + "compilationUnitId" : "acm026532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015033jsd", "acm015052jsd", "acm015522jsd", "acm018267jsd", "acm018509jsd", "acm019079jsd" ], + "content" : [ "acm026537jsd", "acm026538jsd", "acm026539jsd", "acm026540jsd", "acm026541jsd", "acm026542jsd", "acm026543jsd", "acm026544jsd", "acm026545jsd", "acm026546jsd", "acm026547jsd", "acm026548jsd", "acm026549jsd", "acm026550jsd" ] + }, + "acm026552jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026552jsd", + "name" : "AuthorAbbreviatorTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026559jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026553jsd" : { + "type" : "CodePackage", + "id" : "acm026553jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026554jsd" ] + }, + "acm026554jsd" : { + "type" : "CodePackage", + "id" : "acm026554jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026555jsd" ] + }, + "acm026555jsd" : { + "type" : "CodePackage", + "id" : "acm026555jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026556jsd" ] + }, + "acm026556jsd" : { + "type" : "CodePackage", + "id" : "acm026556jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026557jsd" ] + }, + "acm026557jsd" : { + "type" : "CodePackage", + "id" : "acm026557jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026552jsd" ] + }, + "acm026558jsd" : { + "type" : "ControlElement", + "id" : "acm026558jsd", + "name" : "testFormat" + }, + "acm026559jsd" : { + "type" : "ClassUnit", + "id" : "acm026559jsd", + "name" : "AuthorAbbreviatorTest", + "compilationUnitId" : "acm026552jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015087jsd", "acm015207jsd" ], + "content" : [ "acm026558jsd" ] + }, + "acm026560jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026560jsd", + "name" : "AuthorAndToSemicolonReplacerTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026568jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026561jsd" : { + "type" : "CodePackage", + "id" : "acm026561jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026562jsd" ] + }, + "acm026562jsd" : { + "type" : "CodePackage", + "id" : "acm026562jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026563jsd" ] + }, + "acm026563jsd" : { + "type" : "CodePackage", + "id" : "acm026563jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026564jsd" ] + }, + "acm026564jsd" : { + "type" : "CodePackage", + "id" : "acm026564jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026565jsd" ] + }, + "acm026565jsd" : { + "type" : "CodePackage", + "id" : "acm026565jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026560jsd" ] + }, + "acm026566jsd" : { + "type" : "ControlElement", + "id" : "acm026566jsd", + "name" : "data" + }, + "acm026567jsd" : { + "type" : "ControlElement", + "id" : "acm026567jsd", + "name" : "testFormat" + }, + "acm026568jsd" : { + "type" : "ClassUnit", + "id" : "acm026568jsd", + "name" : "AuthorAndToSemicolonReplacerTest", + "compilationUnitId" : "acm026560jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015095jsd" ], + "content" : [ "acm026566jsd", "acm026567jsd" ] + }, + "acm026569jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026569jsd", + "name" : "AuthorAndsCommaReplacerTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026576jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026570jsd" : { + "type" : "CodePackage", + "id" : "acm026570jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026571jsd" ] + }, + "acm026571jsd" : { + "type" : "CodePackage", + "id" : "acm026571jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026572jsd" ] + }, + "acm026572jsd" : { + "type" : "CodePackage", + "id" : "acm026572jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026573jsd" ] + }, + "acm026573jsd" : { + "type" : "CodePackage", + "id" : "acm026573jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026574jsd" ] + }, + "acm026574jsd" : { + "type" : "CodePackage", + "id" : "acm026574jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026569jsd" ] + }, + "acm026575jsd" : { + "type" : "ControlElement", + "id" : "acm026575jsd", + "name" : "testFormat" + }, + "acm026576jsd" : { + "type" : "ClassUnit", + "id" : "acm026576jsd", + "name" : "AuthorAndsCommaReplacerTest", + "compilationUnitId" : "acm026569jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015103jsd" ], + "content" : [ "acm026575jsd" ] + }, + "acm026577jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026577jsd", + "name" : "AuthorAndsReplacerTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026584jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026578jsd" : { + "type" : "CodePackage", + "id" : "acm026578jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026579jsd" ] + }, + "acm026579jsd" : { + "type" : "CodePackage", + "id" : "acm026579jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026580jsd" ] + }, + "acm026580jsd" : { + "type" : "CodePackage", + "id" : "acm026580jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026581jsd" ] + }, + "acm026581jsd" : { + "type" : "CodePackage", + "id" : "acm026581jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026582jsd" ] + }, + "acm026582jsd" : { + "type" : "CodePackage", + "id" : "acm026582jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026577jsd" ] + }, + "acm026583jsd" : { + "type" : "ControlElement", + "id" : "acm026583jsd", + "name" : "testFormat" + }, + "acm026584jsd" : { + "type" : "ClassUnit", + "id" : "acm026584jsd", + "name" : "AuthorAndsReplacerTest", + "compilationUnitId" : "acm026577jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015111jsd" ], + "content" : [ "acm026583jsd" ] + }, + "acm026585jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026585jsd", + "name" : "AuthorFirstAbbrLastCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026592jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026586jsd" : { + "type" : "CodePackage", + "id" : "acm026586jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026587jsd" ] + }, + "acm026587jsd" : { + "type" : "CodePackage", + "id" : "acm026587jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026588jsd" ] + }, + "acm026588jsd" : { + "type" : "CodePackage", + "id" : "acm026588jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026589jsd" ] + }, + "acm026589jsd" : { + "type" : "CodePackage", + "id" : "acm026589jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026590jsd" ] + }, + "acm026590jsd" : { + "type" : "CodePackage", + "id" : "acm026590jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026585jsd" ] + }, + "acm026591jsd" : { + "type" : "ControlElement", + "id" : "acm026591jsd", + "name" : "testFormat" + }, + "acm026592jsd" : { + "type" : "ClassUnit", + "id" : "acm026592jsd", + "name" : "AuthorFirstAbbrLastCommasTest", + "compilationUnitId" : "acm026585jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015119jsd" ], + "content" : [ "acm026591jsd" ] + }, + "acm026593jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026593jsd", + "name" : "AuthorFirstAbbrLastOxfordCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026600jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026594jsd" : { + "type" : "CodePackage", + "id" : "acm026594jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026595jsd" ] + }, + "acm026595jsd" : { + "type" : "CodePackage", + "id" : "acm026595jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026596jsd" ] + }, + "acm026596jsd" : { + "type" : "CodePackage", + "id" : "acm026596jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026597jsd" ] + }, + "acm026597jsd" : { + "type" : "CodePackage", + "id" : "acm026597jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026598jsd" ] + }, + "acm026598jsd" : { + "type" : "CodePackage", + "id" : "acm026598jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026593jsd" ] + }, + "acm026599jsd" : { + "type" : "ControlElement", + "id" : "acm026599jsd", + "name" : "testFormat" + }, + "acm026600jsd" : { + "type" : "ClassUnit", + "id" : "acm026600jsd", + "name" : "AuthorFirstAbbrLastOxfordCommasTest", + "compilationUnitId" : "acm026593jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015127jsd" ], + "content" : [ "acm026599jsd" ] + }, + "acm026601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026601jsd", + "name" : "AuthorFirstFirstCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026608jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026602jsd" : { + "type" : "CodePackage", + "id" : "acm026602jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026603jsd" ] + }, + "acm026603jsd" : { + "type" : "CodePackage", + "id" : "acm026603jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026604jsd" ] + }, + "acm026604jsd" : { + "type" : "CodePackage", + "id" : "acm026604jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026605jsd" ] + }, + "acm026605jsd" : { + "type" : "CodePackage", + "id" : "acm026605jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026606jsd" ] + }, + "acm026606jsd" : { + "type" : "CodePackage", + "id" : "acm026606jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026601jsd" ] + }, + "acm026607jsd" : { + "type" : "ControlElement", + "id" : "acm026607jsd", + "name" : "testFormat" + }, + "acm026608jsd" : { + "type" : "ClassUnit", + "id" : "acm026608jsd", + "name" : "AuthorFirstFirstCommasTest", + "compilationUnitId" : "acm026601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015143jsd" ], + "content" : [ "acm026607jsd" ] + }, + "acm026609jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026609jsd", + "name" : "AuthorFirstFirstTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026616jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026610jsd" : { + "type" : "CodePackage", + "id" : "acm026610jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026611jsd" ] + }, + "acm026611jsd" : { + "type" : "CodePackage", + "id" : "acm026611jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026612jsd" ] + }, + "acm026612jsd" : { + "type" : "CodePackage", + "id" : "acm026612jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026613jsd" ] + }, + "acm026613jsd" : { + "type" : "CodePackage", + "id" : "acm026613jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026614jsd" ] + }, + "acm026614jsd" : { + "type" : "CodePackage", + "id" : "acm026614jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026609jsd" ] + }, + "acm026615jsd" : { + "type" : "ControlElement", + "id" : "acm026615jsd", + "name" : "testFormat" + }, + "acm026616jsd" : { + "type" : "ClassUnit", + "id" : "acm026616jsd", + "name" : "AuthorFirstFirstTest", + "compilationUnitId" : "acm026609jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015135jsd" ], + "content" : [ "acm026615jsd" ] + }, + "acm026617jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026617jsd", + "name" : "AuthorFirstLastCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026625jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026618jsd" : { + "type" : "CodePackage", + "id" : "acm026618jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026619jsd" ] + }, + "acm026619jsd" : { + "type" : "CodePackage", + "id" : "acm026619jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026620jsd" ] + }, + "acm026620jsd" : { + "type" : "CodePackage", + "id" : "acm026620jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026621jsd" ] + }, + "acm026621jsd" : { + "type" : "CodePackage", + "id" : "acm026621jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026622jsd" ] + }, + "acm026622jsd" : { + "type" : "CodePackage", + "id" : "acm026622jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026617jsd" ] + }, + "acm026623jsd" : { + "type" : "ControlElement", + "id" : "acm026623jsd", + "name" : "paramLayoutFormatTest" + }, + "acm026624jsd" : { + "type" : "ControlElement", + "id" : "acm026624jsd", + "name" : "formatTests" + }, + "acm026625jsd" : { + "type" : "ClassUnit", + "id" : "acm026625jsd", + "name" : "AuthorFirstLastCommasTest", + "compilationUnitId" : "acm026617jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015151jsd" ], + "content" : [ "acm026623jsd", "acm026624jsd" ] + }, + "acm026626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026626jsd", + "name" : "AuthorFirstLastOxfordCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026633jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026627jsd" : { + "type" : "CodePackage", + "id" : "acm026627jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026628jsd" ] + }, + "acm026628jsd" : { + "type" : "CodePackage", + "id" : "acm026628jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026629jsd" ] + }, + "acm026629jsd" : { + "type" : "CodePackage", + "id" : "acm026629jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026630jsd" ] + }, + "acm026630jsd" : { + "type" : "CodePackage", + "id" : "acm026630jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026631jsd" ] + }, + "acm026631jsd" : { + "type" : "CodePackage", + "id" : "acm026631jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026626jsd" ] + }, + "acm026632jsd" : { + "type" : "ControlElement", + "id" : "acm026632jsd", + "name" : "testFormat" + }, + "acm026633jsd" : { + "type" : "ClassUnit", + "id" : "acm026633jsd", + "name" : "AuthorFirstLastOxfordCommasTest", + "compilationUnitId" : "acm026626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015159jsd" ], + "content" : [ "acm026632jsd" ] + }, + "acm026634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026634jsd", + "name" : "AuthorLF_FFAbbrTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026641jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026635jsd" : { + "type" : "CodePackage", + "id" : "acm026635jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026636jsd" ] + }, + "acm026636jsd" : { + "type" : "CodePackage", + "id" : "acm026636jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026637jsd" ] + }, + "acm026637jsd" : { + "type" : "CodePackage", + "id" : "acm026637jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026638jsd" ] + }, + "acm026638jsd" : { + "type" : "CodePackage", + "id" : "acm026638jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026639jsd" ] + }, + "acm026639jsd" : { + "type" : "CodePackage", + "id" : "acm026639jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026634jsd" ] + }, + "acm026640jsd" : { + "type" : "ControlElement", + "id" : "acm026640jsd", + "name" : "testFormat" + }, + "acm026641jsd" : { + "type" : "ClassUnit", + "id" : "acm026641jsd", + "name" : "AuthorLF_FFAbbrTest", + "compilationUnitId" : "acm026634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015175jsd" ], + "content" : [ "acm026640jsd" ] + }, + "acm026642jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026642jsd", + "name" : "AuthorLF_FFTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026649jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026643jsd" : { + "type" : "CodePackage", + "id" : "acm026643jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026644jsd" ] + }, + "acm026644jsd" : { + "type" : "CodePackage", + "id" : "acm026644jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026645jsd" ] + }, + "acm026645jsd" : { + "type" : "CodePackage", + "id" : "acm026645jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026646jsd" ] + }, + "acm026646jsd" : { + "type" : "CodePackage", + "id" : "acm026646jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026647jsd" ] + }, + "acm026647jsd" : { + "type" : "CodePackage", + "id" : "acm026647jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026642jsd" ] + }, + "acm026648jsd" : { + "type" : "ControlElement", + "id" : "acm026648jsd", + "name" : "testFormat" + }, + "acm026649jsd" : { + "type" : "ClassUnit", + "id" : "acm026649jsd", + "name" : "AuthorLF_FFTest", + "compilationUnitId" : "acm026642jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015167jsd" ], + "content" : [ "acm026648jsd" ] + }, + "acm026650jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026650jsd", + "name" : "AuthorLastFirstAbbrCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026657jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026651jsd" : { + "type" : "CodePackage", + "id" : "acm026651jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026652jsd" ] + }, + "acm026652jsd" : { + "type" : "CodePackage", + "id" : "acm026652jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026653jsd" ] + }, + "acm026653jsd" : { + "type" : "CodePackage", + "id" : "acm026653jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026654jsd" ] + }, + "acm026654jsd" : { + "type" : "CodePackage", + "id" : "acm026654jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026655jsd" ] + }, + "acm026655jsd" : { + "type" : "CodePackage", + "id" : "acm026655jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026650jsd" ] + }, + "acm026656jsd" : { + "type" : "ControlElement", + "id" : "acm026656jsd", + "name" : "testFormat" + }, + "acm026657jsd" : { + "type" : "ClassUnit", + "id" : "acm026657jsd", + "name" : "AuthorLastFirstAbbrCommasTest", + "compilationUnitId" : "acm026650jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015191jsd" ], + "content" : [ "acm026656jsd" ] + }, + "acm026658jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026658jsd", + "name" : "AuthorLastFirstAbbrOxfordCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026665jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026659jsd" : { + "type" : "CodePackage", + "id" : "acm026659jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026660jsd" ] + }, + "acm026660jsd" : { + "type" : "CodePackage", + "id" : "acm026660jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026661jsd" ] + }, + "acm026661jsd" : { + "type" : "CodePackage", + "id" : "acm026661jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026662jsd" ] + }, + "acm026662jsd" : { + "type" : "CodePackage", + "id" : "acm026662jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026663jsd" ] + }, + "acm026663jsd" : { + "type" : "CodePackage", + "id" : "acm026663jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026658jsd" ] + }, + "acm026664jsd" : { + "type" : "ControlElement", + "id" : "acm026664jsd", + "name" : "testFormat" + }, + "acm026665jsd" : { + "type" : "ClassUnit", + "id" : "acm026665jsd", + "name" : "AuthorLastFirstAbbrOxfordCommasTest", + "compilationUnitId" : "acm026658jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015199jsd" ], + "content" : [ "acm026664jsd" ] + }, + "acm026666jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026666jsd", + "name" : "AuthorLastFirstAbbreviatorTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026678jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026667jsd" : { + "type" : "CodePackage", + "id" : "acm026667jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026668jsd" ] + }, + "acm026668jsd" : { + "type" : "CodePackage", + "id" : "acm026668jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026669jsd" ] + }, + "acm026669jsd" : { + "type" : "CodePackage", + "id" : "acm026669jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026670jsd" ] + }, + "acm026670jsd" : { + "type" : "CodePackage", + "id" : "acm026670jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026671jsd" ] + }, + "acm026671jsd" : { + "type" : "CodePackage", + "id" : "acm026671jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026666jsd" ] + }, + "acm026672jsd" : { + "type" : "ControlElement", + "id" : "acm026672jsd", + "name" : "testOneAuthorSimpleName" + }, + "acm026673jsd" : { + "type" : "ControlElement", + "id" : "acm026673jsd", + "name" : "testOneAuthorCommonName" + }, + "acm026674jsd" : { + "type" : "ControlElement", + "id" : "acm026674jsd", + "name" : "testTwoAuthorsCommonName" + }, + "acm026675jsd" : { + "type" : "ControlElement", + "id" : "acm026675jsd", + "name" : "testJrAuthor" + }, + "acm026676jsd" : { + "type" : "ControlElement", + "id" : "acm026676jsd", + "name" : "testFormat" + }, + "acm026677jsd" : { + "type" : "ControlElement", + "id" : "acm026677jsd", + "name" : "abbreviate" + }, + "acm026678jsd" : { + "type" : "ClassUnit", + "id" : "acm026678jsd", + "name" : "AuthorLastFirstAbbreviatorTest", + "compilationUnitId" : "acm026666jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015207jsd" ], + "content" : [ "acm026672jsd", "acm026673jsd", "acm026674jsd", "acm026675jsd", "acm026676jsd", "acm026677jsd" ] + }, + "acm026679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026679jsd", + "name" : "AuthorLastFirstCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026686jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026680jsd" : { + "type" : "CodePackage", + "id" : "acm026680jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026681jsd" ] + }, + "acm026681jsd" : { + "type" : "CodePackage", + "id" : "acm026681jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026682jsd" ] + }, + "acm026682jsd" : { + "type" : "CodePackage", + "id" : "acm026682jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026683jsd" ] + }, + "acm026683jsd" : { + "type" : "CodePackage", + "id" : "acm026683jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026684jsd" ] + }, + "acm026684jsd" : { + "type" : "CodePackage", + "id" : "acm026684jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026679jsd" ] + }, + "acm026685jsd" : { + "type" : "ControlElement", + "id" : "acm026685jsd", + "name" : "testFormat" + }, + "acm026686jsd" : { + "type" : "ClassUnit", + "id" : "acm026686jsd", + "name" : "AuthorLastFirstCommasTest", + "compilationUnitId" : "acm026679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015215jsd" ], + "content" : [ "acm026685jsd" ] + }, + "acm026687jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026687jsd", + "name" : "AuthorLastFirstOxfordCommasTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026694jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026688jsd" : { + "type" : "CodePackage", + "id" : "acm026688jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026689jsd" ] + }, + "acm026689jsd" : { + "type" : "CodePackage", + "id" : "acm026689jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026690jsd" ] + }, + "acm026690jsd" : { + "type" : "CodePackage", + "id" : "acm026690jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026691jsd" ] + }, + "acm026691jsd" : { + "type" : "CodePackage", + "id" : "acm026691jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026692jsd" ] + }, + "acm026692jsd" : { + "type" : "CodePackage", + "id" : "acm026692jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026687jsd" ] + }, + "acm026693jsd" : { + "type" : "ControlElement", + "id" : "acm026693jsd", + "name" : "testFormat" + }, + "acm026694jsd" : { + "type" : "ClassUnit", + "id" : "acm026694jsd", + "name" : "AuthorLastFirstOxfordCommasTest", + "compilationUnitId" : "acm026687jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015223jsd" ], + "content" : [ "acm026693jsd" ] + }, + "acm026695jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026695jsd", + "name" : "AuthorLastFirstTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026702jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026696jsd" : { + "type" : "CodePackage", + "id" : "acm026696jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026697jsd" ] + }, + "acm026697jsd" : { + "type" : "CodePackage", + "id" : "acm026697jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026698jsd" ] + }, + "acm026698jsd" : { + "type" : "CodePackage", + "id" : "acm026698jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026699jsd" ] + }, + "acm026699jsd" : { + "type" : "CodePackage", + "id" : "acm026699jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026700jsd" ] + }, + "acm026700jsd" : { + "type" : "CodePackage", + "id" : "acm026700jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026695jsd" ] + }, + "acm026701jsd" : { + "type" : "ControlElement", + "id" : "acm026701jsd", + "name" : "testFormat" + }, + "acm026702jsd" : { + "type" : "ClassUnit", + "id" : "acm026702jsd", + "name" : "AuthorLastFirstTest", + "compilationUnitId" : "acm026695jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015183jsd" ], + "content" : [ "acm026701jsd" ] + }, + "acm026703jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026703jsd", + "name" : "AuthorNatBibTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026711jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026704jsd" : { + "type" : "CodePackage", + "id" : "acm026704jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026705jsd" ] + }, + "acm026705jsd" : { + "type" : "CodePackage", + "id" : "acm026705jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026706jsd" ] + }, + "acm026706jsd" : { + "type" : "CodePackage", + "id" : "acm026706jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026707jsd" ] + }, + "acm026707jsd" : { + "type" : "CodePackage", + "id" : "acm026707jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026708jsd" ] + }, + "acm026708jsd" : { + "type" : "CodePackage", + "id" : "acm026708jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026703jsd" ] + }, + "acm026709jsd" : { + "type" : "ControlElement", + "id" : "acm026709jsd", + "name" : "paramLayoutFormatTest" + }, + "acm026710jsd" : { + "type" : "ControlElement", + "id" : "acm026710jsd", + "name" : "formatTests" + }, + "acm026711jsd" : { + "type" : "ClassUnit", + "id" : "acm026711jsd", + "name" : "AuthorNatBibTest", + "compilationUnitId" : "acm026703jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015231jsd" ], + "content" : [ "acm026709jsd", "acm026710jsd" ] + }, + "acm026712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026712jsd", + "name" : "AuthorOrgSciTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026722jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026713jsd" : { + "type" : "CodePackage", + "id" : "acm026713jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026714jsd" ] + }, + "acm026714jsd" : { + "type" : "CodePackage", + "id" : "acm026714jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026715jsd" ] + }, + "acm026715jsd" : { + "type" : "CodePackage", + "id" : "acm026715jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026716jsd" ] + }, + "acm026716jsd" : { + "type" : "CodePackage", + "id" : "acm026716jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026717jsd" ] + }, + "acm026717jsd" : { + "type" : "CodePackage", + "id" : "acm026717jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026712jsd" ] + }, + "acm026718jsd" : { + "type" : "ControlElement", + "id" : "acm026718jsd", + "name" : "paramLayoutFormatTest" + }, + "acm026719jsd" : { + "type" : "ControlElement", + "id" : "acm026719jsd", + "name" : "paramLayoutFormatTestComposite" + }, + "acm026720jsd" : { + "type" : "ControlElement", + "id" : "acm026720jsd", + "name" : "formatTests" + }, + "acm026721jsd" : { + "type" : "ControlElement", + "id" : "acm026721jsd", + "name" : "formatTestsComposite" + }, + "acm026722jsd" : { + "type" : "ClassUnit", + "id" : "acm026722jsd", + "name" : "AuthorOrgSciTest", + "compilationUnitId" : "acm026712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015239jsd", "acm015270jsd", "acm015530jsd" ], + "content" : [ "acm026718jsd", "acm026719jsd", "acm026720jsd", "acm026721jsd" ] + }, + "acm026723jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026723jsd", + "name" : "AuthorsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026752jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026724jsd" : { + "type" : "CodePackage", + "id" : "acm026724jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026725jsd" ] + }, + "acm026725jsd" : { + "type" : "CodePackage", + "id" : "acm026725jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026726jsd" ] + }, + "acm026726jsd" : { + "type" : "CodePackage", + "id" : "acm026726jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026727jsd" ] + }, + "acm026727jsd" : { + "type" : "CodePackage", + "id" : "acm026727jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026728jsd" ] + }, + "acm026728jsd" : { + "type" : "CodePackage", + "id" : "acm026728jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026723jsd" ] + }, + "acm026729jsd" : { + "type" : "ControlElement", + "id" : "acm026729jsd", + "name" : "testStandardUsage" + }, + "acm026730jsd" : { + "type" : "ControlElement", + "id" : "acm026730jsd", + "name" : "testStandardUsageOne" + }, + "acm026731jsd" : { + "type" : "ControlElement", + "id" : "acm026731jsd", + "name" : "testStandardUsageTwo" + }, + "acm026732jsd" : { + "type" : "ControlElement", + "id" : "acm026732jsd", + "name" : "testStandardUsageThree" + }, + "acm026733jsd" : { + "type" : "ControlElement", + "id" : "acm026733jsd", + "name" : "testStandardUsageFour" + }, + "acm026734jsd" : { + "type" : "ControlElement", + "id" : "acm026734jsd", + "name" : "testStandardUsageFive" + }, + "acm026735jsd" : { + "type" : "ControlElement", + "id" : "acm026735jsd", + "name" : "testStandardUsageSix" + }, + "acm026736jsd" : { + "type" : "ControlElement", + "id" : "acm026736jsd", + "name" : "testSpecialEtAl" + }, + "acm026737jsd" : { + "type" : "ControlElement", + "id" : "acm026737jsd", + "name" : "testStandardUsageNull" + }, + "acm026738jsd" : { + "type" : "ControlElement", + "id" : "acm026738jsd", + "name" : "testStandardOxford" + }, + "acm026739jsd" : { + "type" : "ControlElement", + "id" : "acm026739jsd", + "name" : "testStandardOxfordFullName" + }, + "acm026740jsd" : { + "type" : "ControlElement", + "id" : "acm026740jsd", + "name" : "testStandardCommaFullName" + }, + "acm026741jsd" : { + "type" : "ControlElement", + "id" : "acm026741jsd", + "name" : "testStandardAmpFullName" + }, + "acm026742jsd" : { + "type" : "ControlElement", + "id" : "acm026742jsd", + "name" : "testLastName" + }, + "acm026743jsd" : { + "type" : "ControlElement", + "id" : "acm026743jsd", + "name" : "testMiddleInitial" + }, + "acm026744jsd" : { + "type" : "ControlElement", + "id" : "acm026744jsd", + "name" : "testNoPeriod" + }, + "acm026745jsd" : { + "type" : "ControlElement", + "id" : "acm026745jsd", + "name" : "testEtAl" + }, + "acm026746jsd" : { + "type" : "ControlElement", + "id" : "acm026746jsd", + "name" : "testEtAlNotEnoughAuthors" + }, + "acm026747jsd" : { + "type" : "ControlElement", + "id" : "acm026747jsd", + "name" : "testEmptyEtAl" + }, + "acm026748jsd" : { + "type" : "ControlElement", + "id" : "acm026748jsd", + "name" : "testAuthorOrder" + }, + "acm026749jsd" : { + "type" : "ControlElement", + "id" : "acm026749jsd", + "name" : "testAuthorABRV" + }, + "acm026750jsd" : { + "type" : "ControlElement", + "id" : "acm026750jsd", + "name" : "testAuthorPUNC" + }, + "acm026751jsd" : { + "type" : "ControlElement", + "id" : "acm026751jsd", + "name" : "testAuthorSEPARATORS" + }, + "acm026752jsd" : { + "type" : "ClassUnit", + "id" : "acm026752jsd", + "name" : "AuthorsTest", + "compilationUnitId" : "acm026723jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015251jsd" ], + "content" : [ "acm026729jsd", "acm026730jsd", "acm026731jsd", "acm026732jsd", "acm026733jsd", "acm026734jsd", "acm026735jsd", "acm026736jsd", "acm026737jsd", "acm026738jsd", "acm026739jsd", "acm026740jsd", "acm026741jsd", "acm026742jsd", "acm026743jsd", "acm026744jsd", "acm026745jsd", "acm026746jsd", "acm026747jsd", "acm026748jsd", "acm026749jsd", "acm026750jsd", "acm026751jsd" ] + }, + "acm026753jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026753jsd", + "name" : "CompositeFormatTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026762jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026754jsd" : { + "type" : "CodePackage", + "id" : "acm026754jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026755jsd" ] + }, + "acm026755jsd" : { + "type" : "CodePackage", + "id" : "acm026755jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026756jsd" ] + }, + "acm026756jsd" : { + "type" : "CodePackage", + "id" : "acm026756jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026757jsd" ] + }, + "acm026757jsd" : { + "type" : "CodePackage", + "id" : "acm026757jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026758jsd" ] + }, + "acm026758jsd" : { + "type" : "CodePackage", + "id" : "acm026758jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026753jsd" ] + }, + "acm026759jsd" : { + "type" : "ControlElement", + "id" : "acm026759jsd", + "name" : "testEmptyComposite" + }, + "acm026760jsd" : { + "type" : "ControlElement", + "id" : "acm026760jsd", + "name" : "testArrayComposite" + }, + "acm026761jsd" : { + "type" : "ControlElement", + "id" : "acm026761jsd", + "name" : "testDoubleComposite" + }, + "acm026762jsd" : { + "type" : "ClassUnit", + "id" : "acm026762jsd", + "name" : "CompositeFormatTest", + "compilationUnitId" : "acm026753jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015239jsd", "acm015270jsd", "acm015530jsd" ], + "content" : [ "acm026759jsd", "acm026760jsd", "acm026761jsd" ] + }, + "acm026763jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026763jsd", + "name" : "DOICheckTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026771jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026764jsd" : { + "type" : "CodePackage", + "id" : "acm026764jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026765jsd" ] + }, + "acm026765jsd" : { + "type" : "CodePackage", + "id" : "acm026765jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026766jsd" ] + }, + "acm026766jsd" : { + "type" : "CodePackage", + "id" : "acm026766jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026767jsd" ] + }, + "acm026767jsd" : { + "type" : "CodePackage", + "id" : "acm026767jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026768jsd" ] + }, + "acm026768jsd" : { + "type" : "CodePackage", + "id" : "acm026768jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026763jsd" ] + }, + "acm026769jsd" : { + "type" : "ControlElement", + "id" : "acm026769jsd", + "name" : "formatDOI" + }, + "acm026770jsd" : { + "type" : "ControlElement", + "id" : "acm026770jsd", + "name" : "provideDOI" + }, + "acm026771jsd" : { + "type" : "ClassUnit", + "id" : "acm026771jsd", + "name" : "DOICheckTest", + "compilationUnitId" : "acm026763jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015327jsd" ], + "content" : [ "acm026769jsd", "acm026770jsd" ] + }, + "acm026772jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026772jsd", + "name" : "DOIStripTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026780jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026773jsd" : { + "type" : "CodePackage", + "id" : "acm026773jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026774jsd" ] + }, + "acm026774jsd" : { + "type" : "CodePackage", + "id" : "acm026774jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026775jsd" ] + }, + "acm026775jsd" : { + "type" : "CodePackage", + "id" : "acm026775jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026776jsd" ] + }, + "acm026776jsd" : { + "type" : "CodePackage", + "id" : "acm026776jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026777jsd" ] + }, + "acm026777jsd" : { + "type" : "CodePackage", + "id" : "acm026777jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026772jsd" ] + }, + "acm026778jsd" : { + "type" : "ControlElement", + "id" : "acm026778jsd", + "name" : "testFormatDOIStrip" + }, + "acm026779jsd" : { + "type" : "ControlElement", + "id" : "acm026779jsd", + "name" : "provideDOI" + }, + "acm026780jsd" : { + "type" : "ClassUnit", + "id" : "acm026780jsd", + "name" : "DOIStripTest", + "compilationUnitId" : "acm026772jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015335jsd" ], + "content" : [ "acm026778jsd", "acm026779jsd" ] + }, + "acm026781jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026781jsd", + "name" : "DateFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026791jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026782jsd" : { + "type" : "CodePackage", + "id" : "acm026782jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026783jsd" ] + }, + "acm026783jsd" : { + "type" : "CodePackage", + "id" : "acm026783jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026784jsd" ] + }, + "acm026784jsd" : { + "type" : "CodePackage", + "id" : "acm026784jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026785jsd" ] + }, + "acm026785jsd" : { + "type" : "CodePackage", + "id" : "acm026785jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026786jsd" ] + }, + "acm026786jsd" : { + "type" : "CodePackage", + "id" : "acm026786jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026781jsd" ] + }, + "acm026787jsd" : { + "type" : "ControlElement", + "id" : "acm026787jsd", + "name" : "setUp" + }, + "acm026788jsd" : { + "type" : "ControlElement", + "id" : "acm026788jsd", + "name" : "testDefaultFormat" + }, + "acm026789jsd" : { + "type" : "ControlElement", + "id" : "acm026789jsd", + "name" : "testRequestedFormat" + }, + "acm026790jsd" : { + "type" : "ControlElement", + "id" : "acm026790jsd", + "name" : "testOtherFormats" + }, + "acm026791jsd" : { + "type" : "ClassUnit", + "id" : "acm026791jsd", + "name" : "DateFormatterTest", + "compilationUnitId" : "acm026781jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015344jsd" ], + "content" : [ "acm026787jsd", "acm026788jsd", "acm026789jsd", "acm026790jsd" ] + }, + "acm026792jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026792jsd", + "name" : "DefaultTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026800jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026793jsd" : { + "type" : "CodePackage", + "id" : "acm026793jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026794jsd" ] + }, + "acm026794jsd" : { + "type" : "CodePackage", + "id" : "acm026794jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026795jsd" ] + }, + "acm026795jsd" : { + "type" : "CodePackage", + "id" : "acm026795jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026796jsd" ] + }, + "acm026796jsd" : { + "type" : "CodePackage", + "id" : "acm026796jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026797jsd" ] + }, + "acm026797jsd" : { + "type" : "CodePackage", + "id" : "acm026797jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026792jsd" ] + }, + "acm026798jsd" : { + "type" : "ControlElement", + "id" : "acm026798jsd", + "name" : "paramLayoutFormatTest" + }, + "acm026799jsd" : { + "type" : "ControlElement", + "id" : "acm026799jsd", + "name" : "formatTests" + }, + "acm026800jsd" : { + "type" : "ClassUnit", + "id" : "acm026800jsd", + "name" : "DefaultTest", + "compilationUnitId" : "acm026792jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015353jsd" ], + "content" : [ "acm026798jsd", "acm026799jsd" ] + }, + "acm026801jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026801jsd", + "name" : "EntryTypeFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026809jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026802jsd" : { + "type" : "CodePackage", + "id" : "acm026802jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026803jsd" ] + }, + "acm026803jsd" : { + "type" : "CodePackage", + "id" : "acm026803jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026804jsd" ] + }, + "acm026804jsd" : { + "type" : "CodePackage", + "id" : "acm026804jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026805jsd" ] + }, + "acm026805jsd" : { + "type" : "CodePackage", + "id" : "acm026805jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026806jsd" ] + }, + "acm026806jsd" : { + "type" : "CodePackage", + "id" : "acm026806jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026801jsd" ] + }, + "acm026807jsd" : { + "type" : "ControlElement", + "id" : "acm026807jsd", + "name" : "testCorrectFormat" + }, + "acm026808jsd" : { + "type" : "ControlElement", + "id" : "acm026808jsd", + "name" : "formatTests" + }, + "acm026809jsd" : { + "type" : "ClassUnit", + "id" : "acm026809jsd", + "name" : "EntryTypeFormatterTest", + "compilationUnitId" : "acm026801jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015376jsd" ], + "content" : [ "acm026807jsd", "acm026808jsd" ] + }, + "acm026810jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026810jsd", + "name" : "FileLinkTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026819jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026811jsd" : { + "type" : "CodePackage", + "id" : "acm026811jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026812jsd" ] + }, + "acm026812jsd" : { + "type" : "CodePackage", + "id" : "acm026812jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026813jsd" ] + }, + "acm026813jsd" : { + "type" : "CodePackage", + "id" : "acm026813jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026814jsd" ] + }, + "acm026814jsd" : { + "type" : "CodePackage", + "id" : "acm026814jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026815jsd" ] + }, + "acm026815jsd" : { + "type" : "CodePackage", + "id" : "acm026815jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026810jsd" ] + }, + "acm026816jsd" : { + "type" : "ControlElement", + "id" : "acm026816jsd", + "name" : "setUp" + }, + "acm026817jsd" : { + "type" : "ControlElement", + "id" : "acm026817jsd", + "name" : "formatFileLinks" + }, + "acm026818jsd" : { + "type" : "ControlElement", + "id" : "acm026818jsd", + "name" : "provideFileLinks" + }, + "acm026819jsd" : { + "type" : "ClassUnit", + "id" : "acm026819jsd", + "name" : "FileLinkTest", + "compilationUnitId" : "acm026810jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015386jsd" ], + "content" : [ "acm026816jsd", "acm026817jsd", "acm026818jsd" ] + }, + "acm026820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026820jsd", + "name" : "FirstPageTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026828jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026821jsd" : { + "type" : "CodePackage", + "id" : "acm026821jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026822jsd" ] + }, + "acm026822jsd" : { + "type" : "CodePackage", + "id" : "acm026822jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026823jsd" ] + }, + "acm026823jsd" : { + "type" : "CodePackage", + "id" : "acm026823jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026824jsd" ] + }, + "acm026824jsd" : { + "type" : "CodePackage", + "id" : "acm026824jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026825jsd" ] + }, + "acm026825jsd" : { + "type" : "CodePackage", + "id" : "acm026825jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026820jsd" ] + }, + "acm026826jsd" : { + "type" : "ControlElement", + "id" : "acm026826jsd", + "name" : "formatPages" + }, + "acm026827jsd" : { + "type" : "ControlElement", + "id" : "acm026827jsd", + "name" : "providePages" + }, + "acm026828jsd" : { + "type" : "ClassUnit", + "id" : "acm026828jsd", + "name" : "FirstPageTest", + "compilationUnitId" : "acm026820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015394jsd" ], + "content" : [ "acm026826jsd", "acm026827jsd" ] + }, + "acm026829jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026829jsd", + "name" : "HTMLCharsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026844jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026830jsd" : { + "type" : "CodePackage", + "id" : "acm026830jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026831jsd" ] + }, + "acm026831jsd" : { + "type" : "CodePackage", + "id" : "acm026831jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026832jsd" ] + }, + "acm026832jsd" : { + "type" : "CodePackage", + "id" : "acm026832jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026833jsd" ] + }, + "acm026833jsd" : { + "type" : "CodePackage", + "id" : "acm026833jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026834jsd" ] + }, + "acm026834jsd" : { + "type" : "CodePackage", + "id" : "acm026834jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026829jsd" ] + }, + "acm026835jsd" : { + "type" : "ControlElement", + "id" : "acm026835jsd", + "name" : "setUp" + }, + "acm026836jsd" : { + "type" : "ControlElement", + "id" : "acm026836jsd", + "name" : "testBasicFormat" + }, + "acm026837jsd" : { + "type" : "ControlElement", + "id" : "acm026837jsd", + "name" : "testLaTeXHighlighting" + }, + "acm026838jsd" : { + "type" : "ControlElement", + "id" : "acm026838jsd", + "name" : "testEquations" + }, + "acm026839jsd" : { + "type" : "ControlElement", + "id" : "acm026839jsd", + "name" : "testNewLine" + }, + "acm026840jsd" : { + "type" : "ControlElement", + "id" : "acm026840jsd", + "name" : "testQuoteSingle" + }, + "acm026841jsd" : { + "type" : "ControlElement", + "id" : "acm026841jsd", + "name" : "unknownCommandIsKept" + }, + "acm026842jsd" : { + "type" : "ControlElement", + "id" : "acm026842jsd", + "name" : "unknownCommandKeepsArgument" + }, + "acm026843jsd" : { + "type" : "ControlElement", + "id" : "acm026843jsd", + "name" : "unknownCommandWithEmptyArgumentIsKept" + }, + "acm026844jsd" : { + "type" : "ClassUnit", + "id" : "acm026844jsd", + "name" : "HTMLCharsTest", + "compilationUnitId" : "acm026829jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015427jsd" ], + "content" : [ "acm026835jsd", "acm026836jsd", "acm026837jsd", "acm026838jsd", "acm026839jsd", "acm026840jsd", "acm026841jsd", "acm026842jsd", "acm026843jsd" ] + }, + "acm026845jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026845jsd", + "name" : "HTMLParagraphsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026853jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026846jsd" : { + "type" : "CodePackage", + "id" : "acm026846jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026847jsd" ] + }, + "acm026847jsd" : { + "type" : "CodePackage", + "id" : "acm026847jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026848jsd" ] + }, + "acm026848jsd" : { + "type" : "CodePackage", + "id" : "acm026848jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026849jsd" ] + }, + "acm026849jsd" : { + "type" : "CodePackage", + "id" : "acm026849jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026850jsd" ] + }, + "acm026850jsd" : { + "type" : "CodePackage", + "id" : "acm026850jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026845jsd" ] + }, + "acm026851jsd" : { + "type" : "ControlElement", + "id" : "acm026851jsd", + "name" : "testCorrectFormat" + }, + "acm026852jsd" : { + "type" : "ControlElement", + "id" : "acm026852jsd", + "name" : "htmlFormatTests" + }, + "acm026853jsd" : { + "type" : "ClassUnit", + "id" : "acm026853jsd", + "name" : "HTMLParagraphsTest", + "compilationUnitId" : "acm026845jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015435jsd" ], + "content" : [ "acm026851jsd", "acm026852jsd" ] + }, + "acm026854jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026854jsd", + "name" : "IfPluralTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026866jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026855jsd" : { + "type" : "CodePackage", + "id" : "acm026855jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026856jsd" ] + }, + "acm026856jsd" : { + "type" : "CodePackage", + "id" : "acm026856jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026857jsd" ] + }, + "acm026857jsd" : { + "type" : "CodePackage", + "id" : "acm026857jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026858jsd" ] + }, + "acm026858jsd" : { + "type" : "CodePackage", + "id" : "acm026858jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026859jsd" ] + }, + "acm026859jsd" : { + "type" : "CodePackage", + "id" : "acm026859jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026854jsd" ] + }, + "acm026860jsd" : { + "type" : "ControlElement", + "id" : "acm026860jsd", + "name" : "testStandardUsageOneEditor" + }, + "acm026861jsd" : { + "type" : "ControlElement", + "id" : "acm026861jsd", + "name" : "testStandardUsageTwoEditors" + }, + "acm026862jsd" : { + "type" : "ControlElement", + "id" : "acm026862jsd", + "name" : "testFormatNull" + }, + "acm026863jsd" : { + "type" : "ControlElement", + "id" : "acm026863jsd", + "name" : "testFormatEmpty" + }, + "acm026864jsd" : { + "type" : "ControlElement", + "id" : "acm026864jsd", + "name" : "testNoArgumentSet" + }, + "acm026865jsd" : { + "type" : "ControlElement", + "id" : "acm026865jsd", + "name" : "testNoProperArgument" + }, + "acm026866jsd" : { + "type" : "ClassUnit", + "id" : "acm026866jsd", + "name" : "IfPluralTest", + "compilationUnitId" : "acm026854jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015444jsd" ], + "content" : [ "acm026860jsd", "acm026861jsd", "acm026862jsd", "acm026863jsd", "acm026864jsd", "acm026865jsd" ] + }, + "acm026867jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026867jsd", + "name" : "LastPageTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026875jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026868jsd" : { + "type" : "CodePackage", + "id" : "acm026868jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026869jsd" ] + }, + "acm026869jsd" : { + "type" : "CodePackage", + "id" : "acm026869jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026870jsd" ] + }, + "acm026870jsd" : { + "type" : "CodePackage", + "id" : "acm026870jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026871jsd" ] + }, + "acm026871jsd" : { + "type" : "CodePackage", + "id" : "acm026871jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026872jsd" ] + }, + "acm026872jsd" : { + "type" : "CodePackage", + "id" : "acm026872jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026867jsd" ] + }, + "acm026873jsd" : { + "type" : "ControlElement", + "id" : "acm026873jsd", + "name" : "formatLastPage" + }, + "acm026874jsd" : { + "type" : "ControlElement", + "id" : "acm026874jsd", + "name" : "provideArguments" + }, + "acm026875jsd" : { + "type" : "ClassUnit", + "id" : "acm026875jsd", + "name" : "LastPageTest", + "compilationUnitId" : "acm026867jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015477jsd" ], + "content" : [ "acm026873jsd", "acm026874jsd" ] + }, + "acm026876jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026876jsd", + "name" : "LatexToUnicodeFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026916jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026877jsd" : { + "type" : "CodePackage", + "id" : "acm026877jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026878jsd" ] + }, + "acm026878jsd" : { + "type" : "CodePackage", + "id" : "acm026878jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026879jsd" ] + }, + "acm026879jsd" : { + "type" : "CodePackage", + "id" : "acm026879jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026880jsd" ] + }, + "acm026880jsd" : { + "type" : "CodePackage", + "id" : "acm026880jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026881jsd" ] + }, + "acm026881jsd" : { + "type" : "CodePackage", + "id" : "acm026881jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026876jsd" ] + }, + "acm026882jsd" : { + "type" : "ControlElement", + "id" : "acm026882jsd", + "name" : "testPlainFormat" + }, + "acm026883jsd" : { + "type" : "ControlElement", + "id" : "acm026883jsd", + "name" : "testFormatUmlaut" + }, + "acm026884jsd" : { + "type" : "ControlElement", + "id" : "acm026884jsd", + "name" : "preserveUnknownCommand" + }, + "acm026885jsd" : { + "type" : "ControlElement", + "id" : "acm026885jsd", + "name" : "testFormatTextit" + }, + "acm026886jsd" : { + "type" : "ControlElement", + "id" : "acm026886jsd", + "name" : "testEscapedDollarSign" + }, + "acm026887jsd" : { + "type" : "ControlElement", + "id" : "acm026887jsd", + "name" : "testEquationsSingleSymbol" + }, + "acm026888jsd" : { + "type" : "ControlElement", + "id" : "acm026888jsd", + "name" : "testEquationsMoreComplicatedFormatting" + }, + "acm026889jsd" : { + "type" : "ControlElement", + "id" : "acm026889jsd", + "name" : "formatExample" + }, + "acm026890jsd" : { + "type" : "ControlElement", + "id" : "acm026890jsd", + "name" : "testChi" + }, + "acm026891jsd" : { + "type" : "ControlElement", + "id" : "acm026891jsd", + "name" : "testSWithCaron" + }, + "acm026892jsd" : { + "type" : "ControlElement", + "id" : "acm026892jsd", + "name" : "testIWithDiaresis" + }, + "acm026893jsd" : { + "type" : "ControlElement", + "id" : "acm026893jsd", + "name" : "testIWithDiaresisAndEscapedI" + }, + "acm026894jsd" : { + "type" : "ControlElement", + "id" : "acm026894jsd", + "name" : "testIWithDiaresisAndUnnecessaryBraces" + }, + "acm026895jsd" : { + "type" : "ControlElement", + "id" : "acm026895jsd", + "name" : "testUpperCaseIWithDiaresis" + }, + "acm026896jsd" : { + "type" : "ControlElement", + "id" : "acm026896jsd", + "name" : "testPolishName" + }, + "acm026897jsd" : { + "type" : "ControlElement", + "id" : "acm026897jsd", + "name" : "testDoubleCombiningAccents" + }, + "acm026898jsd" : { + "type" : "ControlElement", + "id" : "acm026898jsd", + "name" : "testCombiningAccentsCase1" + }, + "acm026899jsd" : { + "type" : "ControlElement", + "id" : "acm026899jsd", + "name" : "testCombiningAccentsCase2" + }, + "acm026900jsd" : { + "type" : "ControlElement", + "id" : "acm026900jsd", + "name" : "keepUnknownCommandWithoutArgument" + }, + "acm026901jsd" : { + "type" : "ControlElement", + "id" : "acm026901jsd", + "name" : "keepUnknownCommandWithArgument" + }, + "acm026902jsd" : { + "type" : "ControlElement", + "id" : "acm026902jsd", + "name" : "keepUnknownCommandWithEmptyArgument" + }, + "acm026903jsd" : { + "type" : "ControlElement", + "id" : "acm026903jsd", + "name" : "testTildeN" + }, + "acm026904jsd" : { + "type" : "ControlElement", + "id" : "acm026904jsd", + "name" : "testAcuteNLongVersion" + }, + "acm026905jsd" : { + "type" : "ControlElement", + "id" : "acm026905jsd", + "name" : "testAcuteNShortVersion" + }, + "acm026906jsd" : { + "type" : "ControlElement", + "id" : "acm026906jsd", + "name" : "testApostrophN" + }, + "acm026907jsd" : { + "type" : "ControlElement", + "id" : "acm026907jsd", + "name" : "testApostrophO" + }, + "acm026908jsd" : { + "type" : "ControlElement", + "id" : "acm026908jsd", + "name" : "testApostrophC" + }, + "acm026909jsd" : { + "type" : "ControlElement", + "id" : "acm026909jsd", + "name" : "testPreservationOfSingleUnderscore" + }, + "acm026910jsd" : { + "type" : "ControlElement", + "id" : "acm026910jsd", + "name" : "testConversionOfUnderscoreWithBraces" + }, + "acm026911jsd" : { + "type" : "ControlElement", + "id" : "acm026911jsd", + "name" : "testConversionOfOrdinal1st" + }, + "acm026912jsd" : { + "type" : "ControlElement", + "id" : "acm026912jsd", + "name" : "testConversionOfOrdinal2nd" + }, + "acm026913jsd" : { + "type" : "ControlElement", + "id" : "acm026913jsd", + "name" : "testConversionOfOrdinal3rd" + }, + "acm026914jsd" : { + "type" : "ControlElement", + "id" : "acm026914jsd", + "name" : "testConversionOfOrdinal4th" + }, + "acm026915jsd" : { + "type" : "ControlElement", + "id" : "acm026915jsd", + "name" : "testConversionOfOrdinal9th" + }, + "acm026916jsd" : { + "type" : "ClassUnit", + "id" : "acm026916jsd", + "name" : "LatexToUnicodeFormatterTest", + "compilationUnitId" : "acm026876jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015489jsd" ], + "content" : [ "acm026882jsd", "acm026883jsd", "acm026884jsd", "acm026885jsd", "acm026886jsd", "acm026887jsd", "acm026888jsd", "acm026889jsd", "acm026890jsd", "acm026891jsd", "acm026892jsd", "acm026893jsd", "acm026894jsd", "acm026895jsd", "acm026896jsd", "acm026897jsd", "acm026898jsd", "acm026899jsd", "acm026900jsd", "acm026901jsd", "acm026902jsd", "acm026903jsd", "acm026904jsd", "acm026905jsd", "acm026906jsd", "acm026907jsd", "acm026908jsd", "acm026909jsd", "acm026910jsd", "acm026911jsd", "acm026912jsd", "acm026913jsd", "acm026914jsd", "acm026915jsd" ] + }, + "acm026917jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026917jsd", + "name" : "MarkdownFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026928jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026918jsd" : { + "type" : "CodePackage", + "id" : "acm026918jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026919jsd" ] + }, + "acm026919jsd" : { + "type" : "CodePackage", + "id" : "acm026919jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026920jsd" ] + }, + "acm026920jsd" : { + "type" : "CodePackage", + "id" : "acm026920jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026921jsd" ] + }, + "acm026921jsd" : { + "type" : "CodePackage", + "id" : "acm026921jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026922jsd" ] + }, + "acm026922jsd" : { + "type" : "CodePackage", + "id" : "acm026922jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026917jsd" ] + }, + "acm026923jsd" : { + "type" : "ControlElement", + "id" : "acm026923jsd", + "name" : "setUp" + }, + "acm026924jsd" : { + "type" : "ControlElement", + "id" : "acm026924jsd", + "name" : "formatWhenFormattingPlainTextThenReturnsTextWrappedInParagraph" + }, + "acm026925jsd" : { + "type" : "ControlElement", + "id" : "acm026925jsd", + "name" : "formatWhenFormattingComplexMarkupThenReturnsOnlyOneLine" + }, + "acm026926jsd" : { + "type" : "ControlElement", + "id" : "acm026926jsd", + "name" : "formatWhenFormattingEmptyStringThenReturnsEmptyString" + }, + "acm026927jsd" : { + "type" : "ControlElement", + "id" : "acm026927jsd", + "name" : "formatWhenFormattingNullThenThrowsException" + }, + "acm026928jsd" : { + "type" : "ClassUnit", + "id" : "acm026928jsd", + "name" : "MarkdownFormatterTest", + "compilationUnitId" : "acm026917jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015498jsd" ], + "content" : [ "acm026923jsd", "acm026924jsd", "acm026925jsd", "acm026926jsd", "acm026927jsd" ] + }, + "acm026929jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026929jsd", + "name" : "NameFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026937jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026930jsd" : { + "type" : "CodePackage", + "id" : "acm026930jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026931jsd" ] + }, + "acm026931jsd" : { + "type" : "CodePackage", + "id" : "acm026931jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026932jsd" ] + }, + "acm026932jsd" : { + "type" : "CodePackage", + "id" : "acm026932jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026933jsd" ] + }, + "acm026933jsd" : { + "type" : "CodePackage", + "id" : "acm026933jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026934jsd" ] + }, + "acm026934jsd" : { + "type" : "CodePackage", + "id" : "acm026934jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026929jsd" ] + }, + "acm026935jsd" : { + "type" : "ControlElement", + "id" : "acm026935jsd", + "name" : "testFormatStringStringBibtexEntry" + }, + "acm026936jsd" : { + "type" : "ControlElement", + "id" : "acm026936jsd", + "name" : "testFormat" + }, + "acm026937jsd" : { + "type" : "ClassUnit", + "id" : "acm026937jsd", + "name" : "NameFormatterTest", + "compilationUnitId" : "acm026929jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015510jsd" ], + "content" : [ "acm026935jsd", "acm026936jsd" ] + }, + "acm026938jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026938jsd", + "name" : "NoSpaceBetweenAbbreviationsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026946jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026939jsd" : { + "type" : "CodePackage", + "id" : "acm026939jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026940jsd" ] + }, + "acm026940jsd" : { + "type" : "CodePackage", + "id" : "acm026940jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026941jsd" ] + }, + "acm026941jsd" : { + "type" : "CodePackage", + "id" : "acm026941jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026942jsd" ] + }, + "acm026942jsd" : { + "type" : "CodePackage", + "id" : "acm026942jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026943jsd" ] + }, + "acm026943jsd" : { + "type" : "CodePackage", + "id" : "acm026943jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026938jsd" ] + }, + "acm026944jsd" : { + "type" : "ControlElement", + "id" : "acm026944jsd", + "name" : "formatAbbreviations" + }, + "acm026945jsd" : { + "type" : "ControlElement", + "id" : "acm026945jsd", + "name" : "provideAbbreviations" + }, + "acm026946jsd" : { + "type" : "ClassUnit", + "id" : "acm026946jsd", + "name" : "NoSpaceBetweenAbbreviationsTest", + "compilationUnitId" : "acm026938jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015530jsd" ], + "content" : [ "acm026944jsd", "acm026945jsd" ] + }, + "acm026947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026947jsd", + "name" : "OrdinalTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026960jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026948jsd" : { + "type" : "CodePackage", + "id" : "acm026948jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026949jsd" ] + }, + "acm026949jsd" : { + "type" : "CodePackage", + "id" : "acm026949jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026950jsd" ] + }, + "acm026950jsd" : { + "type" : "CodePackage", + "id" : "acm026950jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026951jsd" ] + }, + "acm026951jsd" : { + "type" : "CodePackage", + "id" : "acm026951jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026952jsd" ] + }, + "acm026952jsd" : { + "type" : "CodePackage", + "id" : "acm026952jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026947jsd" ] + }, + "acm026953jsd" : { + "type" : "ControlElement", + "id" : "acm026953jsd", + "name" : "testEmpty" + }, + "acm026954jsd" : { + "type" : "ControlElement", + "id" : "acm026954jsd", + "name" : "testNull" + }, + "acm026955jsd" : { + "type" : "ControlElement", + "id" : "acm026955jsd", + "name" : "testSingleDigit" + }, + "acm026956jsd" : { + "type" : "ControlElement", + "id" : "acm026956jsd", + "name" : "testMultiDigits" + }, + "acm026957jsd" : { + "type" : "ControlElement", + "id" : "acm026957jsd", + "name" : "testAlreadyOrdinals" + }, + "acm026958jsd" : { + "type" : "ControlElement", + "id" : "acm026958jsd", + "name" : "testFullSentence" + }, + "acm026959jsd" : { + "type" : "ControlElement", + "id" : "acm026959jsd", + "name" : "testLetters" + }, + "acm026960jsd" : { + "type" : "ClassUnit", + "id" : "acm026960jsd", + "name" : "OrdinalTest", + "compilationUnitId" : "acm026947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015557jsd" ], + "content" : [ "acm026953jsd", "acm026954jsd", "acm026955jsd", "acm026956jsd", "acm026957jsd", "acm026958jsd", "acm026959jsd" ] + }, + "acm026961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026961jsd", + "name" : "RTFCharsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026981jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026962jsd" : { + "type" : "CodePackage", + "id" : "acm026962jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026963jsd" ] + }, + "acm026963jsd" : { + "type" : "CodePackage", + "id" : "acm026963jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026964jsd" ] + }, + "acm026964jsd" : { + "type" : "CodePackage", + "id" : "acm026964jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026965jsd" ] + }, + "acm026965jsd" : { + "type" : "CodePackage", + "id" : "acm026965jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026966jsd" ] + }, + "acm026966jsd" : { + "type" : "CodePackage", + "id" : "acm026966jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026961jsd" ] + }, + "acm026967jsd" : { + "type" : "ControlElement", + "id" : "acm026967jsd", + "name" : "setUp" + }, + "acm026968jsd" : { + "type" : "ControlElement", + "id" : "acm026968jsd", + "name" : "tearDown" + }, + "acm026969jsd" : { + "type" : "ControlElement", + "id" : "acm026969jsd", + "name" : "testBasicFormat" + }, + "acm026970jsd" : { + "type" : "ControlElement", + "id" : "acm026970jsd", + "name" : "testLaTeXHighlighting" + }, + "acm026971jsd" : { + "type" : "ControlElement", + "id" : "acm026971jsd", + "name" : "testComplicated" + }, + "acm026972jsd" : { + "type" : "ControlElement", + "id" : "acm026972jsd", + "name" : "testComplicated2" + }, + "acm026973jsd" : { + "type" : "ControlElement", + "id" : "acm026973jsd", + "name" : "testComplicated3" + }, + "acm026974jsd" : { + "type" : "ControlElement", + "id" : "acm026974jsd", + "name" : "testComplicated4" + }, + "acm026975jsd" : { + "type" : "ControlElement", + "id" : "acm026975jsd", + "name" : "testComplicated5" + }, + "acm026976jsd" : { + "type" : "ControlElement", + "id" : "acm026976jsd", + "name" : "testComplicated6" + }, + "acm026977jsd" : { + "type" : "ControlElement", + "id" : "acm026977jsd", + "name" : "testSpecialCharacters" + }, + "acm026978jsd" : { + "type" : "ControlElement", + "id" : "acm026978jsd", + "name" : "testMoreSpecialCharacters" + }, + "acm026979jsd" : { + "type" : "ControlElement", + "id" : "acm026979jsd", + "name" : "testRTFCharacters" + }, + "acm026980jsd" : { + "type" : "ControlElement", + "id" : "acm026980jsd", + "name" : "testRTFCharactersCapital" + }, + "acm026981jsd" : { + "type" : "ClassUnit", + "id" : "acm026981jsd", + "name" : "RTFCharsTest", + "compilationUnitId" : "acm026961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015567jsd" ], + "content" : [ "acm026967jsd", "acm026968jsd", "acm026969jsd", "acm026970jsd", "acm026971jsd", "acm026972jsd", "acm026973jsd", "acm026974jsd", "acm026975jsd", "acm026976jsd", "acm026977jsd", "acm026978jsd", "acm026979jsd", "acm026980jsd" ] + }, + "acm026982jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026982jsd", + "name" : "RemoveBracketsAddCommaTest", + "parentId" : "acm015085jsd", + "content" : [ "acm026991jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026983jsd" : { + "type" : "CodePackage", + "id" : "acm026983jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026984jsd" ] + }, + "acm026984jsd" : { + "type" : "CodePackage", + "id" : "acm026984jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026985jsd" ] + }, + "acm026985jsd" : { + "type" : "CodePackage", + "id" : "acm026985jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026986jsd" ] + }, + "acm026986jsd" : { + "type" : "CodePackage", + "id" : "acm026986jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026987jsd" ] + }, + "acm026987jsd" : { + "type" : "CodePackage", + "id" : "acm026987jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026982jsd" ] + }, + "acm026988jsd" : { + "type" : "ControlElement", + "id" : "acm026988jsd", + "name" : "setUp" + }, + "acm026989jsd" : { + "type" : "ControlElement", + "id" : "acm026989jsd", + "name" : "formatTextWithBrackets" + }, + "acm026990jsd" : { + "type" : "ControlElement", + "id" : "acm026990jsd", + "name" : "provideExamples" + }, + "acm026991jsd" : { + "type" : "ClassUnit", + "id" : "acm026991jsd", + "name" : "RemoveBracketsAddCommaTest", + "compilationUnitId" : "acm026982jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015583jsd" ], + "content" : [ "acm026988jsd", "acm026989jsd", "acm026990jsd" ] + }, + "acm026992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm026992jsd", + "name" : "RemoveBracketsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027004jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm026993jsd" : { + "type" : "CodePackage", + "id" : "acm026993jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm026994jsd" ] + }, + "acm026994jsd" : { + "type" : "CodePackage", + "id" : "acm026994jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm026995jsd" ] + }, + "acm026995jsd" : { + "type" : "CodePackage", + "id" : "acm026995jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm026996jsd" ] + }, + "acm026996jsd" : { + "type" : "CodePackage", + "id" : "acm026996jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm026997jsd" ] + }, + "acm026997jsd" : { + "type" : "CodePackage", + "id" : "acm026997jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm026992jsd" ] + }, + "acm026998jsd" : { + "type" : "ControlElement", + "id" : "acm026998jsd", + "name" : "setUp" + }, + "acm026999jsd" : { + "type" : "ControlElement", + "id" : "acm026999jsd", + "name" : "bracePairCorrectlyRemoved" + }, + "acm027000jsd" : { + "type" : "ControlElement", + "id" : "acm027000jsd", + "name" : "singleOpeningBraceCorrectlyRemoved" + }, + "acm027001jsd" : { + "type" : "ControlElement", + "id" : "acm027001jsd", + "name" : "singleClosingBraceCorrectlyRemoved" + }, + "acm027002jsd" : { + "type" : "ControlElement", + "id" : "acm027002jsd", + "name" : "bracePairWithEscapedBackslashCorrectlyRemoved" + }, + "acm027003jsd" : { + "type" : "ControlElement", + "id" : "acm027003jsd", + "name" : "withoutBracketsUnmodified" + }, + "acm027004jsd" : { + "type" : "ClassUnit", + "id" : "acm027004jsd", + "name" : "RemoveBracketsTest", + "compilationUnitId" : "acm026992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015575jsd" ], + "content" : [ "acm026998jsd", "acm026999jsd", "acm027000jsd", "acm027001jsd", "acm027002jsd", "acm027003jsd" ] + }, + "acm027005jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027005jsd", + "name" : "RemoveLatexCommandsFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027021jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027006jsd" : { + "type" : "CodePackage", + "id" : "acm027006jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027007jsd" ] + }, + "acm027007jsd" : { + "type" : "CodePackage", + "id" : "acm027007jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027008jsd" ] + }, + "acm027008jsd" : { + "type" : "CodePackage", + "id" : "acm027008jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027009jsd" ] + }, + "acm027009jsd" : { + "type" : "CodePackage", + "id" : "acm027009jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027010jsd" ] + }, + "acm027010jsd" : { + "type" : "CodePackage", + "id" : "acm027010jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027005jsd" ] + }, + "acm027011jsd" : { + "type" : "ControlElement", + "id" : "acm027011jsd", + "name" : "setUp" + }, + "acm027012jsd" : { + "type" : "ControlElement", + "id" : "acm027012jsd", + "name" : "withoutLatexCommandsUnmodified" + }, + "acm027013jsd" : { + "type" : "ControlElement", + "id" : "acm027013jsd", + "name" : "singleCommandWiped" + }, + "acm027014jsd" : { + "type" : "ControlElement", + "id" : "acm027014jsd", + "name" : "singleSpaceAfterCommandRemoved" + }, + "acm027015jsd" : { + "type" : "ControlElement", + "id" : "acm027015jsd", + "name" : "multipleSpacesAfterCommandRemoved" + }, + "acm027016jsd" : { + "type" : "ControlElement", + "id" : "acm027016jsd", + "name" : "escapedBackslashBecomesBackslash" + }, + "acm027017jsd" : { + "type" : "ControlElement", + "id" : "acm027017jsd", + "name" : "escapedBackslashFollowedByTextBecomesBackslashFollowedByText" + }, + "acm027018jsd" : { + "type" : "ControlElement", + "id" : "acm027018jsd", + "name" : "escapedBackslashKept" + }, + "acm027019jsd" : { + "type" : "ControlElement", + "id" : "acm027019jsd", + "name" : "escapedUnderscoreReplaces" + }, + "acm027020jsd" : { + "type" : "ControlElement", + "id" : "acm027020jsd", + "name" : "exampleUrlCorrectlyCleaned" + }, + "acm027021jsd" : { + "type" : "ClassUnit", + "id" : "acm027021jsd", + "name" : "RemoveLatexCommandsFormatterTest", + "compilationUnitId" : "acm027005jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015591jsd" ], + "content" : [ "acm027011jsd", "acm027012jsd", "acm027013jsd", "acm027014jsd", "acm027015jsd", "acm027016jsd", "acm027017jsd", "acm027018jsd", "acm027019jsd", "acm027020jsd" ] + }, + "acm027022jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027022jsd", + "name" : "RemoveTildeTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027031jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027023jsd" : { + "type" : "CodePackage", + "id" : "acm027023jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027024jsd" ] + }, + "acm027024jsd" : { + "type" : "CodePackage", + "id" : "acm027024jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027025jsd" ] + }, + "acm027025jsd" : { + "type" : "CodePackage", + "id" : "acm027025jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027026jsd" ] + }, + "acm027026jsd" : { + "type" : "CodePackage", + "id" : "acm027026jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027027jsd" ] + }, + "acm027027jsd" : { + "type" : "CodePackage", + "id" : "acm027027jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027022jsd" ] + }, + "acm027028jsd" : { + "type" : "ControlElement", + "id" : "acm027028jsd", + "name" : "setUp" + }, + "acm027029jsd" : { + "type" : "ControlElement", + "id" : "acm027029jsd", + "name" : "formatText" + }, + "acm027030jsd" : { + "type" : "ControlElement", + "id" : "acm027030jsd", + "name" : "provideArguments" + }, + "acm027031jsd" : { + "type" : "ClassUnit", + "id" : "acm027031jsd", + "name" : "RemoveTildeTest", + "compilationUnitId" : "acm027022jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015599jsd" ], + "content" : [ "acm027028jsd", "acm027029jsd", "acm027030jsd" ] + }, + "acm027032jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027032jsd", + "name" : "RemoveWhitespaceTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027043jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027033jsd" : { + "type" : "CodePackage", + "id" : "acm027033jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027034jsd" ] + }, + "acm027034jsd" : { + "type" : "CodePackage", + "id" : "acm027034jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027035jsd" ] + }, + "acm027035jsd" : { + "type" : "CodePackage", + "id" : "acm027035jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027036jsd" ] + }, + "acm027036jsd" : { + "type" : "CodePackage", + "id" : "acm027036jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027037jsd" ] + }, + "acm027037jsd" : { + "type" : "CodePackage", + "id" : "acm027037jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027032jsd" ] + }, + "acm027038jsd" : { + "type" : "ControlElement", + "id" : "acm027038jsd", + "name" : "testEmptyExpectEmpty" + }, + "acm027039jsd" : { + "type" : "ControlElement", + "id" : "acm027039jsd", + "name" : "testNullExpectNull" + }, + "acm027040jsd" : { + "type" : "ControlElement", + "id" : "acm027040jsd", + "name" : "testNormal" + }, + "acm027041jsd" : { + "type" : "ControlElement", + "id" : "acm027041jsd", + "name" : "testTab" + }, + "acm027042jsd" : { + "type" : "ControlElement", + "id" : "acm027042jsd", + "name" : "testNewLineCombo" + }, + "acm027043jsd" : { + "type" : "ClassUnit", + "id" : "acm027043jsd", + "name" : "RemoveWhitespaceTest", + "compilationUnitId" : "acm027032jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015607jsd" ], + "content" : [ "acm027038jsd", "acm027039jsd", "acm027040jsd", "acm027041jsd", "acm027042jsd" ] + }, + "acm027044jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027044jsd", + "name" : "ReplaceTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027056jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027045jsd" : { + "type" : "CodePackage", + "id" : "acm027045jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027046jsd" ] + }, + "acm027046jsd" : { + "type" : "CodePackage", + "id" : "acm027046jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027047jsd" ] + }, + "acm027047jsd" : { + "type" : "CodePackage", + "id" : "acm027047jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027048jsd" ] + }, + "acm027048jsd" : { + "type" : "CodePackage", + "id" : "acm027048jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027049jsd" ] + }, + "acm027049jsd" : { + "type" : "CodePackage", + "id" : "acm027049jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027044jsd" ] + }, + "acm027050jsd" : { + "type" : "ControlElement", + "id" : "acm027050jsd", + "name" : "testSimpleText" + }, + "acm027051jsd" : { + "type" : "ControlElement", + "id" : "acm027051jsd", + "name" : "testSimpleTextNoHit" + }, + "acm027052jsd" : { + "type" : "ControlElement", + "id" : "acm027052jsd", + "name" : "testFormatNull" + }, + "acm027053jsd" : { + "type" : "ControlElement", + "id" : "acm027053jsd", + "name" : "testFormatEmpty" + }, + "acm027054jsd" : { + "type" : "ControlElement", + "id" : "acm027054jsd", + "name" : "testNoArgumentSet" + }, + "acm027055jsd" : { + "type" : "ControlElement", + "id" : "acm027055jsd", + "name" : "testNoProperArgument" + }, + "acm027056jsd" : { + "type" : "ClassUnit", + "id" : "acm027056jsd", + "name" : "ReplaceTest", + "compilationUnitId" : "acm027044jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015616jsd" ], + "content" : [ "acm027050jsd", "acm027051jsd", "acm027052jsd", "acm027053jsd", "acm027054jsd", "acm027055jsd" ] + }, + "acm027057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027057jsd", + "name" : "ReplaceUnicodeLigaturesFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027068jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027058jsd" : { + "type" : "CodePackage", + "id" : "acm027058jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027059jsd" ] + }, + "acm027059jsd" : { + "type" : "CodePackage", + "id" : "acm027059jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027060jsd" ] + }, + "acm027060jsd" : { + "type" : "CodePackage", + "id" : "acm027060jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027061jsd" ] + }, + "acm027061jsd" : { + "type" : "CodePackage", + "id" : "acm027061jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027062jsd" ] + }, + "acm027062jsd" : { + "type" : "CodePackage", + "id" : "acm027062jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027057jsd" ] + }, + "acm027063jsd" : { + "type" : "ControlElement", + "id" : "acm027063jsd", + "name" : "setUp" + }, + "acm027064jsd" : { + "type" : "ControlElement", + "id" : "acm027064jsd", + "name" : "testPlainFormat" + }, + "acm027065jsd" : { + "type" : "ControlElement", + "id" : "acm027065jsd", + "name" : "testSingleLigatures" + }, + "acm027066jsd" : { + "type" : "ControlElement", + "id" : "acm027066jsd", + "name" : "testLigatureSequence" + }, + "acm027067jsd" : { + "type" : "ControlElement", + "id" : "acm027067jsd", + "name" : "testSampleInput" + }, + "acm027068jsd" : { + "type" : "ClassUnit", + "id" : "acm027068jsd", + "name" : "ReplaceUnicodeLigaturesFormatterTest", + "compilationUnitId" : "acm027057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015629jsd" ], + "content" : [ "acm027063jsd", "acm027064jsd", "acm027065jsd", "acm027066jsd", "acm027067jsd" ] + }, + "acm027069jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027069jsd", + "name" : "RisKeywordsTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027080jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027070jsd" : { + "type" : "CodePackage", + "id" : "acm027070jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027071jsd" ] + }, + "acm027071jsd" : { + "type" : "CodePackage", + "id" : "acm027071jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027072jsd" ] + }, + "acm027072jsd" : { + "type" : "CodePackage", + "id" : "acm027072jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027073jsd" ] + }, + "acm027073jsd" : { + "type" : "CodePackage", + "id" : "acm027073jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027074jsd" ] + }, + "acm027074jsd" : { + "type" : "CodePackage", + "id" : "acm027074jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027069jsd" ] + }, + "acm027075jsd" : { + "type" : "ControlElement", + "id" : "acm027075jsd", + "name" : "testEmpty" + }, + "acm027076jsd" : { + "type" : "ControlElement", + "id" : "acm027076jsd", + "name" : "testNull" + }, + "acm027077jsd" : { + "type" : "ControlElement", + "id" : "acm027077jsd", + "name" : "testSingleKeyword" + }, + "acm027078jsd" : { + "type" : "ControlElement", + "id" : "acm027078jsd", + "name" : "testTwoKeywords" + }, + "acm027079jsd" : { + "type" : "ControlElement", + "id" : "acm027079jsd", + "name" : "testMultipleKeywords" + }, + "acm027080jsd" : { + "type" : "ClassUnit", + "id" : "acm027080jsd", + "name" : "RisKeywordsTest", + "compilationUnitId" : "acm027069jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015654jsd" ], + "content" : [ "acm027075jsd", "acm027076jsd", "acm027077jsd", "acm027078jsd", "acm027079jsd" ] + }, + "acm027081jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027081jsd", + "name" : "RisMonthTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027091jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027082jsd" : { + "type" : "CodePackage", + "id" : "acm027082jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027083jsd" ] + }, + "acm027083jsd" : { + "type" : "CodePackage", + "id" : "acm027083jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027084jsd" ] + }, + "acm027084jsd" : { + "type" : "CodePackage", + "id" : "acm027084jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027085jsd" ] + }, + "acm027085jsd" : { + "type" : "CodePackage", + "id" : "acm027085jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027086jsd" ] + }, + "acm027086jsd" : { + "type" : "CodePackage", + "id" : "acm027086jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027081jsd" ] + }, + "acm027087jsd" : { + "type" : "ControlElement", + "id" : "acm027087jsd", + "name" : "testEmpty" + }, + "acm027088jsd" : { + "type" : "ControlElement", + "id" : "acm027088jsd", + "name" : "testNull" + }, + "acm027089jsd" : { + "type" : "ControlElement", + "id" : "acm027089jsd", + "name" : "testValidMonth" + }, + "acm027090jsd" : { + "type" : "ControlElement", + "id" : "acm027090jsd", + "name" : "testInvalidMonth" + }, + "acm027091jsd" : { + "type" : "ClassUnit", + "id" : "acm027091jsd", + "name" : "RisMonthTest", + "compilationUnitId" : "acm027081jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015662jsd" ], + "content" : [ "acm027087jsd", "acm027088jsd", "acm027089jsd", "acm027090jsd" ] + }, + "acm027092jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027092jsd", + "name" : "ShortMonthFormatterTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027102jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027093jsd" : { + "type" : "CodePackage", + "id" : "acm027093jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027094jsd" ] + }, + "acm027094jsd" : { + "type" : "CodePackage", + "id" : "acm027094jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027095jsd" ] + }, + "acm027095jsd" : { + "type" : "CodePackage", + "id" : "acm027095jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027096jsd" ] + }, + "acm027096jsd" : { + "type" : "CodePackage", + "id" : "acm027096jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027097jsd" ] + }, + "acm027097jsd" : { + "type" : "CodePackage", + "id" : "acm027097jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027092jsd" ] + }, + "acm027098jsd" : { + "type" : "ControlElement", + "id" : "acm027098jsd", + "name" : "setUp" + }, + "acm027099jsd" : { + "type" : "ControlElement", + "id" : "acm027099jsd", + "name" : "formatNullInput" + }, + "acm027100jsd" : { + "type" : "ControlElement", + "id" : "acm027100jsd", + "name" : "formatDifferentInputs" + }, + "acm027101jsd" : { + "type" : "ControlElement", + "id" : "acm027101jsd", + "name" : "provideArguments" + }, + "acm027102jsd" : { + "type" : "ClassUnit", + "id" : "acm027102jsd", + "name" : "ShortMonthFormatterTest", + "compilationUnitId" : "acm027092jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015008jsd", "acm015670jsd" ], + "content" : [ "acm027098jsd", "acm027099jsd", "acm027100jsd", "acm027101jsd" ] + }, + "acm027103jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027103jsd", + "name" : "ToLowerCaseTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027112jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027104jsd" : { + "type" : "CodePackage", + "id" : "acm027104jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027105jsd" ] + }, + "acm027105jsd" : { + "type" : "CodePackage", + "id" : "acm027105jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027106jsd" ] + }, + "acm027106jsd" : { + "type" : "CodePackage", + "id" : "acm027106jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027107jsd" ] + }, + "acm027107jsd" : { + "type" : "CodePackage", + "id" : "acm027107jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027108jsd" ] + }, + "acm027108jsd" : { + "type" : "CodePackage", + "id" : "acm027108jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027103jsd" ] + }, + "acm027109jsd" : { + "type" : "ControlElement", + "id" : "acm027109jsd", + "name" : "testNull" + }, + "acm027110jsd" : { + "type" : "ControlElement", + "id" : "acm027110jsd", + "name" : "toLowerCaseWithDifferentInputs" + }, + "acm027111jsd" : { + "type" : "ControlElement", + "id" : "acm027111jsd", + "name" : "provideArguments" + }, + "acm027112jsd" : { + "type" : "ClassUnit", + "id" : "acm027112jsd", + "name" : "ToLowerCaseTest", + "compilationUnitId" : "acm027103jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015678jsd" ], + "content" : [ "acm027109jsd", "acm027110jsd", "acm027111jsd" ] + }, + "acm027113jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027113jsd", + "name" : "ToUpperCaseTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027121jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027114jsd" : { + "type" : "CodePackage", + "id" : "acm027114jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027115jsd" ] + }, + "acm027115jsd" : { + "type" : "CodePackage", + "id" : "acm027115jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027116jsd" ] + }, + "acm027116jsd" : { + "type" : "CodePackage", + "id" : "acm027116jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027117jsd" ] + }, + "acm027117jsd" : { + "type" : "CodePackage", + "id" : "acm027117jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027118jsd" ] + }, + "acm027118jsd" : { + "type" : "CodePackage", + "id" : "acm027118jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027113jsd" ] + }, + "acm027119jsd" : { + "type" : "ControlElement", + "id" : "acm027119jsd", + "name" : "toUpperCaseTests" + }, + "acm027120jsd" : { + "type" : "ControlElement", + "id" : "acm027120jsd", + "name" : "toUpperCaseTests" + }, + "acm027121jsd" : { + "type" : "ClassUnit", + "id" : "acm027121jsd", + "name" : "ToUpperCaseTest", + "compilationUnitId" : "acm027113jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015686jsd" ], + "content" : [ "acm027119jsd", "acm027120jsd" ] + }, + "acm027122jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027122jsd", + "name" : "WrapContentTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027130jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027123jsd" : { + "type" : "CodePackage", + "id" : "acm027123jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027124jsd" ] + }, + "acm027124jsd" : { + "type" : "CodePackage", + "id" : "acm027124jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027125jsd" ] + }, + "acm027125jsd" : { + "type" : "CodePackage", + "id" : "acm027125jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027126jsd" ] + }, + "acm027126jsd" : { + "type" : "CodePackage", + "id" : "acm027126jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027127jsd" ] + }, + "acm027127jsd" : { + "type" : "CodePackage", + "id" : "acm027127jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027122jsd" ] + }, + "acm027128jsd" : { + "type" : "ControlElement", + "id" : "acm027128jsd", + "name" : "formatContent" + }, + "acm027129jsd" : { + "type" : "ControlElement", + "id" : "acm027129jsd", + "name" : "provideContent" + }, + "acm027130jsd" : { + "type" : "ClassUnit", + "id" : "acm027130jsd", + "name" : "WrapContentTest", + "compilationUnitId" : "acm027122jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015059jsd", "acm015695jsd" ], + "content" : [ "acm027128jsd", "acm027129jsd" ] + }, + "acm027131jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027131jsd", + "name" : "WrapFileLinksTest", + "parentId" : "acm015085jsd", + "content" : [ "acm027155jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "layout", "format" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027132jsd" : { + "type" : "CodePackage", + "id" : "acm027132jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027133jsd" ] + }, + "acm027133jsd" : { + "type" : "CodePackage", + "id" : "acm027133jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027134jsd" ] + }, + "acm027134jsd" : { + "type" : "CodePackage", + "id" : "acm027134jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027135jsd" ] + }, + "acm027135jsd" : { + "type" : "CodePackage", + "id" : "acm027135jsd", + "name" : "layout", + "parentId" : null, + "content" : [ "acm027136jsd" ] + }, + "acm027136jsd" : { + "type" : "CodePackage", + "id" : "acm027136jsd", + "name" : "format", + "parentId" : null, + "content" : [ "acm027131jsd" ] + }, + "acm027137jsd" : { + "type" : "ControlElement", + "id" : "acm027137jsd", + "name" : "setUp" + }, + "acm027138jsd" : { + "type" : "ControlElement", + "id" : "acm027138jsd", + "name" : "testEmpty" + }, + "acm027139jsd" : { + "type" : "ControlElement", + "id" : "acm027139jsd", + "name" : "testNull" + }, + "acm027140jsd" : { + "type" : "ControlElement", + "id" : "acm027140jsd", + "name" : "testNoFormatSetNonEmptyString" + }, + "acm027141jsd" : { + "type" : "ControlElement", + "id" : "acm027141jsd", + "name" : "testFileExtension" + }, + "acm027142jsd" : { + "type" : "ControlElement", + "id" : "acm027142jsd", + "name" : "testFileExtensionNoExtension" + }, + "acm027143jsd" : { + "type" : "ControlElement", + "id" : "acm027143jsd", + "name" : "testPlainTextString" + }, + "acm027144jsd" : { + "type" : "ControlElement", + "id" : "acm027144jsd", + "name" : "testDescription" + }, + "acm027145jsd" : { + "type" : "ControlElement", + "id" : "acm027145jsd", + "name" : "testDescriptionNoDescription" + }, + "acm027146jsd" : { + "type" : "ControlElement", + "id" : "acm027146jsd", + "name" : "testType" + }, + "acm027147jsd" : { + "type" : "ControlElement", + "id" : "acm027147jsd", + "name" : "testTypeNoType" + }, + "acm027148jsd" : { + "type" : "ControlElement", + "id" : "acm027148jsd", + "name" : "testIterator" + }, + "acm027149jsd" : { + "type" : "ControlElement", + "id" : "acm027149jsd", + "name" : "testIteratorTwoItems" + }, + "acm027150jsd" : { + "type" : "ControlElement", + "id" : "acm027150jsd", + "name" : "testEndingBracket" + }, + "acm027151jsd" : { + "type" : "ControlElement", + "id" : "acm027151jsd", + "name" : "testPath" + }, + "acm027152jsd" : { + "type" : "ControlElement", + "id" : "acm027152jsd", + "name" : "testPathFallBackToGeneratedDir" + }, + "acm027153jsd" : { + "type" : "ControlElement", + "id" : "acm027153jsd", + "name" : "testPathReturnsRelativePathIfNotFound" + }, + "acm027154jsd" : { + "type" : "ControlElement", + "id" : "acm027154jsd", + "name" : "testRelativePath" + }, + "acm027155jsd" : { + "type" : "ClassUnit", + "id" : "acm027155jsd", + "name" : "WrapFileLinksTest", + "compilationUnitId" : "acm027131jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015711jsd" ], + "content" : [ "acm027137jsd", "acm027138jsd", "acm027139jsd", "acm027140jsd", "acm027141jsd", "acm027142jsd", "acm027143jsd", "acm027144jsd", "acm027145jsd", "acm027146jsd", "acm027147jsd", "acm027148jsd", "acm027149jsd", "acm027150jsd", "acm027151jsd", "acm027152jsd", "acm027153jsd", "acm027154jsd" ] + }, + "acm027156jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027156jsd", + "name" : "MSBibConverterTest", + "parentId" : "acm015743jsd", + "content" : [ "acm027162jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027157jsd" : { + "type" : "CodePackage", + "id" : "acm027157jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027158jsd" ] + }, + "acm027158jsd" : { + "type" : "CodePackage", + "id" : "acm027158jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027159jsd" ] + }, + "acm027159jsd" : { + "type" : "CodePackage", + "id" : "acm027159jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027160jsd" ] + }, + "acm027160jsd" : { + "type" : "CodePackage", + "id" : "acm027160jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm027156jsd" ] + }, + "acm027161jsd" : { + "type" : "ControlElement", + "id" : "acm027161jsd", + "name" : "convert" + }, + "acm027162jsd" : { + "type" : "ClassUnit", + "id" : "acm027162jsd", + "name" : "MSBibConverterTest", + "compilationUnitId" : "acm027156jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm027161jsd" ] + }, + "acm027163jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027163jsd", + "name" : "MsBibAuthorTest", + "parentId" : "acm015743jsd", + "content" : [ "acm027174jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027164jsd" : { + "type" : "CodePackage", + "id" : "acm027164jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027165jsd" ] + }, + "acm027165jsd" : { + "type" : "CodePackage", + "id" : "acm027165jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027166jsd" ] + }, + "acm027166jsd" : { + "type" : "CodePackage", + "id" : "acm027166jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027167jsd" ] + }, + "acm027167jsd" : { + "type" : "CodePackage", + "id" : "acm027167jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm027163jsd" ] + }, + "acm027168jsd" : { + "type" : "ControlElement", + "id" : "acm027168jsd", + "name" : "testGetFirstName" + }, + "acm027169jsd" : { + "type" : "ControlElement", + "id" : "acm027169jsd", + "name" : "testGetMiddleName" + }, + "acm027170jsd" : { + "type" : "ControlElement", + "id" : "acm027170jsd", + "name" : "testGetNoMiddleName" + }, + "acm027171jsd" : { + "type" : "ControlElement", + "id" : "acm027171jsd", + "name" : "testGetNoFirstName" + }, + "acm027172jsd" : { + "type" : "ControlElement", + "id" : "acm027172jsd", + "name" : "testGetLastName" + }, + "acm027173jsd" : { + "type" : "ControlElement", + "id" : "acm027173jsd", + "name" : "testGetVonAndLastName" + }, + "acm027174jsd" : { + "type" : "ClassUnit", + "id" : "acm027174jsd", + "name" : "MsBibAuthorTest", + "compilationUnitId" : "acm027163jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015821jsd", "acm018138jsd" ], + "content" : [ "acm027168jsd", "acm027169jsd", "acm027170jsd", "acm027171jsd", "acm027172jsd", "acm027173jsd" ] + }, + "acm027175jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027175jsd", + "name" : "MsBibMappingTest", + "parentId" : "acm015743jsd", + "content" : [ "acm027184jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "msbib" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027176jsd" : { + "type" : "CodePackage", + "id" : "acm027176jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027177jsd" ] + }, + "acm027177jsd" : { + "type" : "CodePackage", + "id" : "acm027177jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027178jsd" ] + }, + "acm027178jsd" : { + "type" : "CodePackage", + "id" : "acm027178jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027179jsd" ] + }, + "acm027179jsd" : { + "type" : "CodePackage", + "id" : "acm027179jsd", + "name" : "msbib", + "parentId" : null, + "content" : [ "acm027175jsd" ] + }, + "acm027180jsd" : { + "type" : "ControlElement", + "id" : "acm027180jsd", + "name" : "testGetLanguage" + }, + "acm027181jsd" : { + "type" : "ControlElement", + "id" : "acm027181jsd", + "name" : "testGetLCID" + }, + "acm027182jsd" : { + "type" : "ControlElement", + "id" : "acm027182jsd", + "name" : "testGetInvalidLanguage" + }, + "acm027183jsd" : { + "type" : "ControlElement", + "id" : "acm027183jsd", + "name" : "testInvalidLCID" + }, + "acm027184jsd" : { + "type" : "ClassUnit", + "id" : "acm027184jsd", + "name" : "MsBibMappingTest", + "compilationUnitId" : "acm027175jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027180jsd", "acm027181jsd", "acm027182jsd", "acm027183jsd" ] + }, + "acm027185jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027185jsd", + "name" : "MimeTypeDetectorTest", + "parentId" : "acm015837jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027186jsd" : { + "type" : "CodePackage", + "id" : "acm027186jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027187jsd" ] + }, + "acm027187jsd" : { + "type" : "CodePackage", + "id" : "acm027187jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027188jsd" ] + }, + "acm027188jsd" : { + "type" : "CodePackage", + "id" : "acm027188jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027189jsd" ] + }, + "acm027189jsd" : { + "type" : "CodePackage", + "id" : "acm027189jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm027185jsd" ] + }, + "acm027190jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027190jsd", + "name" : "ProxyTest", + "parentId" : "acm015837jsd", + "content" : [ "acm027196jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027191jsd" : { + "type" : "CodePackage", + "id" : "acm027191jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027192jsd" ] + }, + "acm027192jsd" : { + "type" : "CodePackage", + "id" : "acm027192jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027193jsd" ] + }, + "acm027193jsd" : { + "type" : "CodePackage", + "id" : "acm027193jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027194jsd" ] + }, + "acm027194jsd" : { + "type" : "CodePackage", + "id" : "acm027194jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm027190jsd" ] + }, + "acm027195jsd" : { + "type" : "ControlElement", + "id" : "acm027195jsd", + "name" : "testProxyPreferencesStorePassword" + }, + "acm027196jsd" : { + "type" : "ClassUnit", + "id" : "acm027196jsd", + "name" : "ProxyTest", + "compilationUnitId" : "acm027190jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015885jsd" ], + "content" : [ "acm027195jsd" ] + }, + "acm027197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027197jsd", + "name" : "URLDownloadTest", + "parentId" : "acm015837jsd", + "content" : [ "acm027216jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027198jsd" : { + "type" : "CodePackage", + "id" : "acm027198jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027199jsd" ] + }, + "acm027199jsd" : { + "type" : "CodePackage", + "id" : "acm027199jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027200jsd" ] + }, + "acm027200jsd" : { + "type" : "CodePackage", + "id" : "acm027200jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027201jsd" ] + }, + "acm027201jsd" : { + "type" : "CodePackage", + "id" : "acm027201jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm027197jsd" ] + }, + "acm027202jsd" : { + "type" : "ControlElement", + "id" : "acm027202jsd", + "name" : "testStringDownloadWithSetEncoding" + }, + "acm027203jsd" : { + "type" : "ControlElement", + "id" : "acm027203jsd", + "name" : "testStringDownload" + }, + "acm027204jsd" : { + "type" : "ControlElement", + "id" : "acm027204jsd", + "name" : "testFileDownload" + }, + "acm027205jsd" : { + "type" : "ControlElement", + "id" : "acm027205jsd", + "name" : "testDetermineMimeType" + }, + "acm027206jsd" : { + "type" : "ControlElement", + "id" : "acm027206jsd", + "name" : "downloadToTemporaryFilePathWithoutFileSavesAsTmpFile" + }, + "acm027207jsd" : { + "type" : "ControlElement", + "id" : "acm027207jsd", + "name" : "downloadToTemporaryFileKeepsName" + }, + "acm027208jsd" : { + "type" : "ControlElement", + "id" : "acm027208jsd", + "name" : "downloadOfFTPSucceeds" + }, + "acm027209jsd" : { + "type" : "ControlElement", + "id" : "acm027209jsd", + "name" : "downloadOfHttpSucceeds" + }, + "acm027210jsd" : { + "type" : "ControlElement", + "id" : "acm027210jsd", + "name" : "downloadOfHttpsSucceeds" + }, + "acm027211jsd" : { + "type" : "ControlElement", + "id" : "acm027211jsd", + "name" : "testCheckConnectionSuccess" + }, + "acm027212jsd" : { + "type" : "ControlElement", + "id" : "acm027212jsd", + "name" : "testCheckConnectionFail" + }, + "acm027213jsd" : { + "type" : "ControlElement", + "id" : "acm027213jsd", + "name" : "connectTimeoutIsNeverNull" + }, + "acm027214jsd" : { + "type" : "ControlElement", + "id" : "acm027214jsd", + "name" : "test503ErrorThrowsNestedIOExceptionWithFetcherServerException" + }, + "acm027215jsd" : { + "type" : "ControlElement", + "id" : "acm027215jsd", + "name" : "test429ErrorThrowsNestedIOExceptionWithFetcherServerException" + }, + "acm027216jsd" : { + "type" : "ClassUnit", + "id" : "acm027216jsd", + "name" : "URLDownloadTest", + "compilationUnitId" : "acm027197jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012305jsd", "acm012332jsd", "acm015926jsd", "acm027216jsd" ], + "content" : [ "acm027202jsd", "acm027203jsd", "acm027204jsd", "acm027205jsd", "acm027206jsd", "acm027207jsd", "acm027208jsd", "acm027209jsd", "acm027210jsd", "acm027211jsd", "acm027212jsd", "acm027213jsd", "acm027214jsd", "acm027215jsd" ] + }, + "acm027217jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027217jsd", + "name" : "URLUtilTest", + "parentId" : "acm015837jsd", + "content" : [ "acm027226jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "net" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027218jsd" : { + "type" : "CodePackage", + "id" : "acm027218jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027219jsd" ] + }, + "acm027219jsd" : { + "type" : "CodePackage", + "id" : "acm027219jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027220jsd" ] + }, + "acm027220jsd" : { + "type" : "CodePackage", + "id" : "acm027220jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027221jsd" ] + }, + "acm027221jsd" : { + "type" : "CodePackage", + "id" : "acm027221jsd", + "name" : "net", + "parentId" : null, + "content" : [ "acm027217jsd" ] + }, + "acm027222jsd" : { + "type" : "ControlElement", + "id" : "acm027222jsd", + "name" : "cleanGoogleSearchURL" + }, + "acm027223jsd" : { + "type" : "ControlElement", + "id" : "acm027223jsd", + "name" : "isURLshouldAcceptValidURL" + }, + "acm027224jsd" : { + "type" : "ControlElement", + "id" : "acm027224jsd", + "name" : "isURLshouldRejectInvalidURL" + }, + "acm027225jsd" : { + "type" : "ControlElement", + "id" : "acm027225jsd", + "name" : "isURLshouldRejectEmbeddedURL" + }, + "acm027226jsd" : { + "type" : "ClassUnit", + "id" : "acm027226jsd", + "name" : "URLUtilTest", + "compilationUnitId" : "acm027217jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027222jsd", "acm027223jsd", "acm027224jsd", "acm027225jsd" ] + }, + "acm027227jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027227jsd", + "name" : "OOBibStyleTest", + "parentId" : "acm016244jsd", + "content" : [ "acm027267jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027228jsd" : { + "type" : "CodePackage", + "id" : "acm027228jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027229jsd" ] + }, + "acm027229jsd" : { + "type" : "CodePackage", + "id" : "acm027229jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027230jsd" ] + }, + "acm027230jsd" : { + "type" : "CodePackage", + "id" : "acm027230jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027231jsd" ] + }, + "acm027231jsd" : { + "type" : "CodePackage", + "id" : "acm027231jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm027232jsd" ] + }, + "acm027232jsd" : { + "type" : "CodePackage", + "id" : "acm027232jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm027227jsd" ] + }, + "acm027233jsd" : { + "type" : "ControlElement", + "id" : "acm027233jsd", + "name" : "setUp" + }, + "acm027234jsd" : { + "type" : "ControlElement", + "id" : "acm027234jsd", + "name" : "testAuthorYear" + }, + "acm027235jsd" : { + "type" : "ControlElement", + "id" : "acm027235jsd", + "name" : "testAuthorYearAsFile" + }, + "acm027236jsd" : { + "type" : "ControlElement", + "id" : "acm027236jsd", + "name" : "testNumerical" + }, + "acm027237jsd" : { + "type" : "ControlElement", + "id" : "acm027237jsd", + "name" : "runGetNumCitationMarker2a" + }, + "acm027238jsd" : { + "type" : "ControlElement", + "id" : "acm027238jsd", + "name" : "numEntry" + }, + "acm027239jsd" : { + "type" : "ControlElement", + "id" : "acm027239jsd", + "name" : "numBibEntry" + }, + "acm027240jsd" : { + "type" : "ControlElement", + "id" : "acm027240jsd", + "name" : "runGetNumCitationMarker2b" + }, + "acm027241jsd" : { + "type" : "ControlElement", + "id" : "acm027241jsd", + "name" : "makeCitationMarkerEntry" + }, + "acm027242jsd" : { + "type" : "ControlElement", + "id" : "acm027242jsd", + "name" : "getCitationMarker2" + }, + "acm027243jsd" : { + "type" : "ControlElement", + "id" : "acm027243jsd", + "name" : "getCitationMarker2b" + }, + "acm027244jsd" : { + "type" : "ControlElement", + "id" : "acm027244jsd", + "name" : "testGetNumCitationMarker" + }, + "acm027245jsd" : { + "type" : "ControlElement", + "id" : "acm027245jsd", + "name" : "testGetNumCitationMarkerUndefined" + }, + "acm027246jsd" : { + "type" : "ControlElement", + "id" : "acm027246jsd", + "name" : "testGetCitProperty" + }, + "acm027247jsd" : { + "type" : "ControlElement", + "id" : "acm027247jsd", + "name" : "testGetCitationMarker" + }, + "acm027248jsd" : { + "type" : "ControlElement", + "id" : "acm027248jsd", + "name" : "testLayout" + }, + "acm027249jsd" : { + "type" : "ControlElement", + "id" : "acm027249jsd", + "name" : "testInstitutionAuthor" + }, + "acm027250jsd" : { + "type" : "ControlElement", + "id" : "acm027250jsd", + "name" : "testVonAuthor" + }, + "acm027251jsd" : { + "type" : "ControlElement", + "id" : "acm027251jsd", + "name" : "testInstitutionAuthorMarker" + }, + "acm027252jsd" : { + "type" : "ControlElement", + "id" : "acm027252jsd", + "name" : "testVonAuthorMarker" + }, + "acm027253jsd" : { + "type" : "ControlElement", + "id" : "acm027253jsd", + "name" : "testNullAuthorMarker" + }, + "acm027254jsd" : { + "type" : "ControlElement", + "id" : "acm027254jsd", + "name" : "testNullYearMarker" + }, + "acm027255jsd" : { + "type" : "ControlElement", + "id" : "acm027255jsd", + "name" : "testEmptyEntryMarker" + }, + "acm027256jsd" : { + "type" : "ControlElement", + "id" : "acm027256jsd", + "name" : "testGetCitationMarkerInParenthesisUniquefiers" + }, + "acm027257jsd" : { + "type" : "ControlElement", + "id" : "acm027257jsd", + "name" : "testGetCitationMarkerInTextUniquefiers" + }, + "acm027258jsd" : { + "type" : "ControlElement", + "id" : "acm027258jsd", + "name" : "testGetCitationMarkerInParenthesisUniquefiersThreeSameAuthor" + }, + "acm027259jsd" : { + "type" : "ControlElement", + "id" : "acm027259jsd", + "name" : "testGetCitationMarkerInTextUniquefiersThreeSameAuthor" + }, + "acm027260jsd" : { + "type" : "ControlElement", + "id" : "acm027260jsd", + "name" : "testEquals" + }, + "acm027261jsd" : { + "type" : "ControlElement", + "id" : "acm027261jsd", + "name" : "testNotEquals" + }, + "acm027262jsd" : { + "type" : "ControlElement", + "id" : "acm027262jsd", + "name" : "testCompareToEqual" + }, + "acm027263jsd" : { + "type" : "ControlElement", + "id" : "acm027263jsd", + "name" : "testCompareToNotEqual" + }, + "acm027264jsd" : { + "type" : "ControlElement", + "id" : "acm027264jsd", + "name" : "testEmptyStringPropertyAndOxfordComma" + }, + "acm027265jsd" : { + "type" : "ControlElement", + "id" : "acm027265jsd", + "name" : "testIsValidWithDefaultSectionAtTheStart" + }, + "acm027266jsd" : { + "type" : "ControlElement", + "id" : "acm027266jsd", + "name" : "testGetCitationMarkerJoinFirst" + }, + "acm027267jsd" : { + "type" : "ClassUnit", + "id" : "acm027267jsd", + "name" : "OOBibStyleTest", + "compilationUnitId" : "acm027227jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm014982jsd", "acm015033jsd", "acm016334jsd", "acm016406jsd", "acm017988jsd", "acm018267jsd", "acm019079jsd", "acm019532jsd", "acm019786jsd", "acm019804jsd", "acm019814jsd", "acm027267jsd" ], + "content" : [ "acm027233jsd", "acm027234jsd", "acm027235jsd", "acm027236jsd", "acm027237jsd", "acm027238jsd", "acm027239jsd", "acm027240jsd", "acm027241jsd", "acm027242jsd", "acm027243jsd", "acm027244jsd", "acm027245jsd", "acm027246jsd", "acm027247jsd", "acm027248jsd", "acm027249jsd", "acm027250jsd", "acm027251jsd", "acm027252jsd", "acm027253jsd", "acm027254jsd", "acm027255jsd", "acm027256jsd", "acm027257jsd", "acm027258jsd", "acm027259jsd", "acm027260jsd", "acm027261jsd", "acm027262jsd", "acm027263jsd", "acm027264jsd", "acm027265jsd", "acm027266jsd" ] + }, + "acm027268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027268jsd", + "name" : "OOBibStyleTestHelper", + "parentId" : "acm016244jsd", + "content" : [ "acm027290jsd", "acm027295jsd", "acm027299jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027269jsd" : { + "type" : "CodePackage", + "id" : "acm027269jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027270jsd" ] + }, + "acm027270jsd" : { + "type" : "CodePackage", + "id" : "acm027270jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027271jsd" ] + }, + "acm027271jsd" : { + "type" : "CodePackage", + "id" : "acm027271jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027272jsd" ] + }, + "acm027272jsd" : { + "type" : "CodePackage", + "id" : "acm027272jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm027273jsd" ] + }, + "acm027273jsd" : { + "type" : "CodePackage", + "id" : "acm027273jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm027268jsd" ] + }, + "acm027274jsd" : { + "type" : "ControlElement", + "id" : "acm027274jsd", + "name" : "CitationMarkerNumericEntryImpl" + }, + "acm027275jsd" : { + "type" : "ControlElement", + "id" : "acm027275jsd", + "name" : "getCitationKey" + }, + "acm027276jsd" : { + "type" : "ControlElement", + "id" : "acm027276jsd", + "name" : "getNumber" + }, + "acm027277jsd" : { + "type" : "ControlElement", + "id" : "acm027277jsd", + "name" : "getPageInfo" + }, + "acm027278jsd" : { + "type" : "ControlElement", + "id" : "acm027278jsd", + "name" : "CitationMarkerNumericBibEntryImpl" + }, + "acm027279jsd" : { + "type" : "ControlElement", + "id" : "acm027279jsd", + "name" : "getCitationKey" + }, + "acm027280jsd" : { + "type" : "ControlElement", + "id" : "acm027280jsd", + "name" : "getNumber" + }, + "acm027281jsd" : { + "type" : "ControlElement", + "id" : "acm027281jsd", + "name" : "numBibEntry" + }, + "acm027282jsd" : { + "type" : "ControlElement", + "id" : "acm027282jsd", + "name" : "runGetNumCitationMarker2a" + }, + "acm027283jsd" : { + "type" : "ControlElement", + "id" : "acm027283jsd", + "name" : "numEntry" + }, + "acm027284jsd" : { + "type" : "ControlElement", + "id" : "acm027284jsd", + "name" : "runGetNumCitationMarker2b" + }, + "acm027285jsd" : { + "type" : "ControlElement", + "id" : "acm027285jsd", + "name" : "makeCitationMarkerEntry" + }, + "acm027286jsd" : { + "type" : "ControlElement", + "id" : "acm027286jsd", + "name" : "getCitationMarker2ab" + }, + "acm027287jsd" : { + "type" : "ControlElement", + "id" : "acm027287jsd", + "name" : "getCitationMarker2" + }, + "acm027288jsd" : { + "type" : "ControlElement", + "id" : "acm027288jsd", + "name" : "getCitationMarker2b" + }, + "acm027289jsd" : { + "type" : "ControlElement", + "id" : "acm027289jsd", + "name" : "testGetNumCitationMarkerExtra" + }, + "acm027290jsd" : { + "type" : "ClassUnit", + "id" : "acm027290jsd", + "name" : "OOBibStyleTestHelper", + "compilationUnitId" : "acm027268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016334jsd", "acm017988jsd", "acm018267jsd", "acm019532jsd", "acm019712jsd", "acm019776jsd", "acm019786jsd", "acm019804jsd", "acm019814jsd", "acm019912jsd", "acm027295jsd", "acm027299jsd" ], + "content" : [ "acm027274jsd", "acm027275jsd", "acm027276jsd", "acm027277jsd", "acm027278jsd", "acm027279jsd", "acm027280jsd", "acm027281jsd", "acm027282jsd", "acm027283jsd", "acm027284jsd", "acm027285jsd", "acm027286jsd", "acm027287jsd", "acm027288jsd", "acm027289jsd" ] + }, + "acm027291jsd" : { + "type" : "ControlElement", + "id" : "acm027291jsd", + "name" : "CitationMarkerNumericEntryImpl" + }, + "acm027292jsd" : { + "type" : "ControlElement", + "id" : "acm027292jsd", + "name" : "getCitationKey" + }, + "acm027293jsd" : { + "type" : "ControlElement", + "id" : "acm027293jsd", + "name" : "getNumber" + }, + "acm027294jsd" : { + "type" : "ControlElement", + "id" : "acm027294jsd", + "name" : "getPageInfo" + }, + "acm027295jsd" : { + "type" : "ClassUnit", + "id" : "acm027295jsd", + "name" : "CitationMarkerNumericEntryImpl", + "compilationUnitId" : "acm027268jsd", + "parentDatatypeId" : "acm027290jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019814jsd" ], + "datatypeReferencesIds" : [ "acm019532jsd" ], + "content" : [ "acm027291jsd", "acm027292jsd", "acm027293jsd", "acm027294jsd" ] + }, + "acm027296jsd" : { + "type" : "ControlElement", + "id" : "acm027296jsd", + "name" : "CitationMarkerNumericBibEntryImpl" + }, + "acm027297jsd" : { + "type" : "ControlElement", + "id" : "acm027297jsd", + "name" : "getCitationKey" + }, + "acm027298jsd" : { + "type" : "ControlElement", + "id" : "acm027298jsd", + "name" : "getNumber" + }, + "acm027299jsd" : { + "type" : "ClassUnit", + "id" : "acm027299jsd", + "name" : "CitationMarkerNumericBibEntryImpl", + "compilationUnitId" : "acm027268jsd", + "parentDatatypeId" : "acm027290jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm019804jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027296jsd", "acm027297jsd", "acm027298jsd" ] + }, + "acm027300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027300jsd", + "name" : "OOPreFormatterTest", + "parentId" : "acm016244jsd", + "content" : [ "acm027313jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027301jsd" : { + "type" : "CodePackage", + "id" : "acm027301jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027302jsd" ] + }, + "acm027302jsd" : { + "type" : "CodePackage", + "id" : "acm027302jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027303jsd" ] + }, + "acm027303jsd" : { + "type" : "CodePackage", + "id" : "acm027303jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027304jsd" ] + }, + "acm027304jsd" : { + "type" : "CodePackage", + "id" : "acm027304jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm027305jsd" ] + }, + "acm027305jsd" : { + "type" : "CodePackage", + "id" : "acm027305jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm027300jsd" ] + }, + "acm027306jsd" : { + "type" : "ControlElement", + "id" : "acm027306jsd", + "name" : "testPlainFormat" + }, + "acm027307jsd" : { + "type" : "ControlElement", + "id" : "acm027307jsd", + "name" : "testFormatAccents" + }, + "acm027308jsd" : { + "type" : "ControlElement", + "id" : "acm027308jsd", + "name" : "testSpecialCommands" + }, + "acm027309jsd" : { + "type" : "ControlElement", + "id" : "acm027309jsd", + "name" : "testUnsupportedSpecialCommands" + }, + "acm027310jsd" : { + "type" : "ControlElement", + "id" : "acm027310jsd", + "name" : "testEquations" + }, + "acm027311jsd" : { + "type" : "ControlElement", + "id" : "acm027311jsd", + "name" : "testFormatStripLatexCommands" + }, + "acm027312jsd" : { + "type" : "ControlElement", + "id" : "acm027312jsd", + "name" : "testFormatting" + }, + "acm027313jsd" : { + "type" : "ClassUnit", + "id" : "acm027313jsd", + "name" : "OOPreFormatterTest", + "compilationUnitId" : "acm027300jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016406jsd" ], + "content" : [ "acm027306jsd", "acm027307jsd", "acm027308jsd", "acm027309jsd", "acm027310jsd", "acm027311jsd", "acm027312jsd" ] + }, + "acm027314jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027314jsd", + "name" : "StyleLoaderTest", + "parentId" : "acm016244jsd", + "content" : [ "acm027336jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "openoffice", "style" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027315jsd" : { + "type" : "CodePackage", + "id" : "acm027315jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027316jsd" ] + }, + "acm027316jsd" : { + "type" : "CodePackage", + "id" : "acm027316jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027317jsd" ] + }, + "acm027317jsd" : { + "type" : "CodePackage", + "id" : "acm027317jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027318jsd" ] + }, + "acm027318jsd" : { + "type" : "CodePackage", + "id" : "acm027318jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm027319jsd" ] + }, + "acm027319jsd" : { + "type" : "CodePackage", + "id" : "acm027319jsd", + "name" : "style", + "parentId" : null, + "content" : [ "acm027314jsd" ] + }, + "acm027320jsd" : { + "type" : "ControlElement", + "id" : "acm027320jsd", + "name" : "setUp" + }, + "acm027321jsd" : { + "type" : "ControlElement", + "id" : "acm027321jsd", + "name" : "throwNPEWithNullPreferences" + }, + "acm027322jsd" : { + "type" : "ControlElement", + "id" : "acm027322jsd", + "name" : "throwNPEWithNullLayoutPreferences" + }, + "acm027323jsd" : { + "type" : "ControlElement", + "id" : "acm027323jsd", + "name" : "testGetStylesWithEmptyExternal" + }, + "acm027324jsd" : { + "type" : "ControlElement", + "id" : "acm027324jsd", + "name" : "testAddStyleLeadsToOneMoreStyle" + }, + "acm027325jsd" : { + "type" : "ControlElement", + "id" : "acm027325jsd", + "name" : "testAddInvalidStyleLeadsToNoMoreStyle" + }, + "acm027326jsd" : { + "type" : "ControlElement", + "id" : "acm027326jsd", + "name" : "testInitalizeWithOneExternalFile" + }, + "acm027327jsd" : { + "type" : "ControlElement", + "id" : "acm027327jsd", + "name" : "testInitalizeWithIncorrectExternalFile" + }, + "acm027328jsd" : { + "type" : "ControlElement", + "id" : "acm027328jsd", + "name" : "testInitalizeWithOneExternalFileRemoveStyle" + }, + "acm027329jsd" : { + "type" : "ControlElement", + "id" : "acm027329jsd", + "name" : "testInitalizeWithOneExternalFileRemoveStyleUpdatesPreferences" + }, + "acm027330jsd" : { + "type" : "ControlElement", + "id" : "acm027330jsd", + "name" : "testAddSameStyleTwiceLeadsToOneMoreStyle" + }, + "acm027331jsd" : { + "type" : "ControlElement", + "id" : "acm027331jsd", + "name" : "testAddNullStyleThrowsNPE" + }, + "acm027332jsd" : { + "type" : "ControlElement", + "id" : "acm027332jsd", + "name" : "testGetDefaultUsedStyleWhenEmpty" + }, + "acm027333jsd" : { + "type" : "ControlElement", + "id" : "acm027333jsd", + "name" : "testGetStoredUsedStyle" + }, + "acm027334jsd" : { + "type" : "ControlElement", + "id" : "acm027334jsd", + "name" : "testGetDefaultUsedStyleWhenIncorrect" + }, + "acm027335jsd" : { + "type" : "ControlElement", + "id" : "acm027335jsd", + "name" : "testRemoveInternalStyleReturnsFalseAndDoNotRemove" + }, + "acm027336jsd" : { + "type" : "ClassUnit", + "id" : "acm027336jsd", + "name" : "StyleLoaderTest", + "compilationUnitId" : "acm027314jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm015033jsd", "acm016014jsd", "acm016334jsd", "acm016463jsd" ], + "content" : [ "acm027320jsd", "acm027321jsd", "acm027322jsd", "acm027323jsd", "acm027324jsd", "acm027325jsd", "acm027326jsd", "acm027327jsd", "acm027328jsd", "acm027329jsd", "acm027330jsd", "acm027331jsd", "acm027332jsd", "acm027333jsd", "acm027334jsd", "acm027335jsd" ] + }, + "acm027337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027337jsd", + "name" : "EntryAnnotationImporterTest", + "parentId" : "acm016468jsd", + "content" : [ "acm027344jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027338jsd" : { + "type" : "CodePackage", + "id" : "acm027338jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027339jsd" ] + }, + "acm027339jsd" : { + "type" : "CodePackage", + "id" : "acm027339jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027340jsd" ] + }, + "acm027340jsd" : { + "type" : "CodePackage", + "id" : "acm027340jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027341jsd" ] + }, + "acm027341jsd" : { + "type" : "CodePackage", + "id" : "acm027341jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm027337jsd" ] + }, + "acm027342jsd" : { + "type" : "ControlElement", + "id" : "acm027342jsd", + "name" : "setUp" + }, + "acm027343jsd" : { + "type" : "ControlElement", + "id" : "acm027343jsd", + "name" : "readEntryExampleThesis" + }, + "acm027344jsd" : { + "type" : "ClassUnit", + "id" : "acm027344jsd", + "name" : "EntryAnnotationImporterTest", + "compilationUnitId" : "acm027337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016479jsd", "acm018022jsd", "acm018267jsd", "acm020244jsd", "acm020848jsd" ], + "content" : [ "acm027342jsd", "acm027343jsd" ] + }, + "acm027345jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027345jsd", + "name" : "PdfAnnotationImporterTest", + "parentId" : "acm016468jsd", + "content" : [ "acm027366jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027346jsd" : { + "type" : "CodePackage", + "id" : "acm027346jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027347jsd" ] + }, + "acm027347jsd" : { + "type" : "CodePackage", + "id" : "acm027347jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027348jsd" ] + }, + "acm027348jsd" : { + "type" : "CodePackage", + "id" : "acm027348jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027349jsd" ] + }, + "acm027349jsd" : { + "type" : "CodePackage", + "id" : "acm027349jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm027345jsd" ] + }, + "acm027350jsd" : { + "type" : "ControlElement", + "id" : "acm027350jsd", + "name" : "invalidPath" + }, + "acm027351jsd" : { + "type" : "ControlElement", + "id" : "acm027351jsd", + "name" : "invalidDirectory" + }, + "acm027352jsd" : { + "type" : "ControlElement", + "id" : "acm027352jsd", + "name" : "invalidDocumentType" + }, + "acm027353jsd" : { + "type" : "ControlElement", + "id" : "acm027353jsd", + "name" : "noAnnotationsWriteProtected" + }, + "acm027354jsd" : { + "type" : "ControlElement", + "id" : "acm027354jsd", + "name" : "noAnnotationsEncrypted" + }, + "acm027355jsd" : { + "type" : "ControlElement", + "id" : "acm027355jsd", + "name" : "twoAnnotationsThesisExample" + }, + "acm027356jsd" : { + "type" : "ControlElement", + "id" : "acm027356jsd", + "name" : "noAnnotationsMinimal" + }, + "acm027357jsd" : { + "type" : "ControlElement", + "id" : "acm027357jsd", + "name" : "inlineNoteMinimal" + }, + "acm027358jsd" : { + "type" : "ControlElement", + "id" : "acm027358jsd", + "name" : "popupNoteMinimal" + }, + "acm027359jsd" : { + "type" : "ControlElement", + "id" : "acm027359jsd", + "name" : "highlightMinimalFoxit" + }, + "acm027360jsd" : { + "type" : "ControlElement", + "id" : "acm027360jsd", + "name" : "highlightNoNoteMinimal" + }, + "acm027361jsd" : { + "type" : "ControlElement", + "id" : "acm027361jsd", + "name" : "squigglyWithNoteMinimal" + }, + "acm027362jsd" : { + "type" : "ControlElement", + "id" : "acm027362jsd", + "name" : "strikeoutWithNoteMinimal" + }, + "acm027363jsd" : { + "type" : "ControlElement", + "id" : "acm027363jsd", + "name" : "highlightWithNoteMinimal" + }, + "acm027364jsd" : { + "type" : "ControlElement", + "id" : "acm027364jsd", + "name" : "underlineWithNoteMinimal" + }, + "acm027365jsd" : { + "type" : "ControlElement", + "id" : "acm027365jsd", + "name" : "polygonNoNoteMinimal" + }, + "acm027366jsd" : { + "type" : "ClassUnit", + "id" : "acm027366jsd", + "name" : "PdfAnnotationImporterTest", + "compilationUnitId" : "acm027345jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016470jsd", "acm016500jsd", "acm020244jsd" ], + "content" : [ "acm027350jsd", "acm027351jsd", "acm027352jsd", "acm027353jsd", "acm027354jsd", "acm027355jsd", "acm027356jsd", "acm027357jsd", "acm027358jsd", "acm027359jsd", "acm027360jsd", "acm027361jsd", "acm027362jsd", "acm027363jsd", "acm027364jsd", "acm027365jsd" ] + }, + "acm027367jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027367jsd", + "name" : "DocumentReaderTest", + "parentId" : "acm016517jsd", + "content" : [ "acm027378jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "pdf", "search", "indexing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027368jsd" : { + "type" : "CodePackage", + "id" : "acm027368jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027369jsd" ] + }, + "acm027369jsd" : { + "type" : "CodePackage", + "id" : "acm027369jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027370jsd" ] + }, + "acm027370jsd" : { + "type" : "CodePackage", + "id" : "acm027370jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027371jsd" ] + }, + "acm027371jsd" : { + "type" : "CodePackage", + "id" : "acm027371jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm027372jsd" ] + }, + "acm027372jsd" : { + "type" : "CodePackage", + "id" : "acm027372jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm027373jsd" ] + }, + "acm027373jsd" : { + "type" : "CodePackage", + "id" : "acm027373jsd", + "name" : "indexing", + "parentId" : null, + "content" : [ "acm027367jsd" ] + }, + "acm027374jsd" : { + "type" : "ControlElement", + "id" : "acm027374jsd", + "name" : "setup" + }, + "acm027375jsd" : { + "type" : "ControlElement", + "id" : "acm027375jsd", + "name" : "unknownFileTestShouldReturnEmptyList" + }, + "acm027376jsd" : { + "type" : "ControlElement", + "id" : "acm027376jsd", + "name" : "getLinesToMerge" + }, + "acm027377jsd" : { + "type" : "ControlElement", + "id" : "acm027377jsd", + "name" : "mergeLinesTest" + }, + "acm027378jsd" : { + "type" : "ClassUnit", + "id" : "acm027378jsd", + "name" : "DocumentReaderTest", + "compilationUnitId" : "acm027367jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016528jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm027374jsd", "acm027375jsd", "acm027376jsd", "acm027377jsd" ] + }, + "acm027379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027379jsd", + "name" : "PdfIndexerTest", + "parentId" : "acm016517jsd", + "content" : [ "acm027394jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "pdf", "search", "indexing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027380jsd" : { + "type" : "CodePackage", + "id" : "acm027380jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027381jsd" ] + }, + "acm027381jsd" : { + "type" : "CodePackage", + "id" : "acm027381jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027382jsd" ] + }, + "acm027382jsd" : { + "type" : "CodePackage", + "id" : "acm027382jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027383jsd" ] + }, + "acm027383jsd" : { + "type" : "CodePackage", + "id" : "acm027383jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm027384jsd" ] + }, + "acm027384jsd" : { + "type" : "CodePackage", + "id" : "acm027384jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm027385jsd" ] + }, + "acm027385jsd" : { + "type" : "CodePackage", + "id" : "acm027385jsd", + "name" : "indexing", + "parentId" : null, + "content" : [ "acm027379jsd" ] + }, + "acm027386jsd" : { + "type" : "ControlElement", + "id" : "acm027386jsd", + "name" : "setUp" + }, + "acm027387jsd" : { + "type" : "ControlElement", + "id" : "acm027387jsd", + "name" : "exampleThesisIndex" + }, + "acm027388jsd" : { + "type" : "ControlElement", + "id" : "acm027388jsd", + "name" : "dontIndexNonPdf" + }, + "acm027389jsd" : { + "type" : "ControlElement", + "id" : "acm027389jsd", + "name" : "dontIndexOnlineLinks" + }, + "acm027390jsd" : { + "type" : "ControlElement", + "id" : "acm027390jsd", + "name" : "exampleThesisIndexWithKey" + }, + "acm027391jsd" : { + "type" : "ControlElement", + "id" : "acm027391jsd", + "name" : "metaDataIndex" + }, + "acm027392jsd" : { + "type" : "ControlElement", + "id" : "acm027392jsd", + "name" : "testFlushIndex" + }, + "acm027393jsd" : { + "type" : "ControlElement", + "id" : "acm027393jsd", + "name" : "exampleThesisIndexAppendMetaData" + }, + "acm027394jsd" : { + "type" : "ClassUnit", + "id" : "acm027394jsd", + "name" : "PdfIndexerTest", + "compilationUnitId" : "acm027379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016570jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020848jsd" ], + "content" : [ "acm027386jsd", "acm027387jsd", "acm027388jsd", "acm027389jsd", "acm027390jsd", "acm027391jsd", "acm027392jsd", "acm027393jsd" ] + }, + "acm027395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027395jsd", + "name" : "PdfSearcherTest", + "parentId" : "acm016577jsd", + "content" : [ "acm027411jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "pdf", "search", "retrieval" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027396jsd" : { + "type" : "CodePackage", + "id" : "acm027396jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027397jsd" ] + }, + "acm027397jsd" : { + "type" : "CodePackage", + "id" : "acm027397jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027398jsd" ] + }, + "acm027398jsd" : { + "type" : "CodePackage", + "id" : "acm027398jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027399jsd" ] + }, + "acm027399jsd" : { + "type" : "CodePackage", + "id" : "acm027399jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm027400jsd" ] + }, + "acm027400jsd" : { + "type" : "CodePackage", + "id" : "acm027400jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm027401jsd" ] + }, + "acm027401jsd" : { + "type" : "CodePackage", + "id" : "acm027401jsd", + "name" : "retrieval", + "parentId" : null, + "content" : [ "acm027395jsd" ] + }, + "acm027402jsd" : { + "type" : "ControlElement", + "id" : "acm027402jsd", + "name" : "setUp" + }, + "acm027403jsd" : { + "type" : "ControlElement", + "id" : "acm027403jsd", + "name" : "searchForTest" + }, + "acm027404jsd" : { + "type" : "ControlElement", + "id" : "acm027404jsd", + "name" : "searchForUniversity" + }, + "acm027405jsd" : { + "type" : "ControlElement", + "id" : "acm027405jsd", + "name" : "searchForStopWord" + }, + "acm027406jsd" : { + "type" : "ControlElement", + "id" : "acm027406jsd", + "name" : "searchForSecond" + }, + "acm027407jsd" : { + "type" : "ControlElement", + "id" : "acm027407jsd", + "name" : "searchForAnnotation" + }, + "acm027408jsd" : { + "type" : "ControlElement", + "id" : "acm027408jsd", + "name" : "searchForEmptyString" + }, + "acm027409jsd" : { + "type" : "ControlElement", + "id" : "acm027409jsd", + "name" : "searchWithNullString" + }, + "acm027410jsd" : { + "type" : "ControlElement", + "id" : "acm027410jsd", + "name" : "searchForZeroResults" + }, + "acm027411jsd" : { + "type" : "ClassUnit", + "id" : "acm027411jsd", + "name" : "PdfSearcherTest", + "compilationUnitId" : "acm027395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016570jsd", "acm016581jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018509jsd", "acm020276jsd", "acm020848jsd" ], + "content" : [ "acm027402jsd", "acm027403jsd", "acm027404jsd", "acm027405jsd", "acm027406jsd", "acm027407jsd", "acm027408jsd", "acm027409jsd", "acm027410jsd" ] + }, + "acm027412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027412jsd", + "name" : "ProtectedTermsListTest", + "parentId" : "acm016656jsd", + "content" : [ "acm027431jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027413jsd" : { + "type" : "CodePackage", + "id" : "acm027413jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027414jsd" ] + }, + "acm027414jsd" : { + "type" : "CodePackage", + "id" : "acm027414jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027415jsd" ] + }, + "acm027415jsd" : { + "type" : "CodePackage", + "id" : "acm027415jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027416jsd" ] + }, + "acm027416jsd" : { + "type" : "CodePackage", + "id" : "acm027416jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm027412jsd" ] + }, + "acm027417jsd" : { + "type" : "ControlElement", + "id" : "acm027417jsd", + "name" : "setUp" + }, + "acm027418jsd" : { + "type" : "ControlElement", + "id" : "acm027418jsd", + "name" : "testProtectedTermsListStringListOfStringStringBoolean" + }, + "acm027419jsd" : { + "type" : "ControlElement", + "id" : "acm027419jsd", + "name" : "testProtectedTermsListStringListOfStringString" + }, + "acm027420jsd" : { + "type" : "ControlElement", + "id" : "acm027420jsd", + "name" : "testGetDescription" + }, + "acm027421jsd" : { + "type" : "ControlElement", + "id" : "acm027421jsd", + "name" : "testGetTermList" + }, + "acm027422jsd" : { + "type" : "ControlElement", + "id" : "acm027422jsd", + "name" : "testGetLocation" + }, + "acm027423jsd" : { + "type" : "ControlElement", + "id" : "acm027423jsd", + "name" : "testGetTermListing" + }, + "acm027424jsd" : { + "type" : "ControlElement", + "id" : "acm027424jsd", + "name" : "testCompareTo" + }, + "acm027425jsd" : { + "type" : "ControlElement", + "id" : "acm027425jsd", + "name" : "testSetEnabledIsEnabled" + }, + "acm027426jsd" : { + "type" : "ControlElement", + "id" : "acm027426jsd", + "name" : "testNotEnabledByDefault" + }, + "acm027427jsd" : { + "type" : "ControlElement", + "id" : "acm027427jsd", + "name" : "testCanNotAddTermToInternalList" + }, + "acm027428jsd" : { + "type" : "ControlElement", + "id" : "acm027428jsd", + "name" : "testTermNotAddedToInternalList" + }, + "acm027429jsd" : { + "type" : "ControlElement", + "id" : "acm027429jsd", + "name" : "testCanAddTermToExternalList" + }, + "acm027430jsd" : { + "type" : "ControlElement", + "id" : "acm027430jsd", + "name" : "testTermAddedToExternalList" + }, + "acm027431jsd" : { + "type" : "ClassUnit", + "id" : "acm027431jsd", + "name" : "ProtectedTermsListTest", + "compilationUnitId" : "acm027412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd" ], + "content" : [ "acm027417jsd", "acm027418jsd", "acm027419jsd", "acm027420jsd", "acm027421jsd", "acm027422jsd", "acm027423jsd", "acm027424jsd", "acm027425jsd", "acm027426jsd", "acm027427jsd", "acm027428jsd", "acm027429jsd", "acm027430jsd" ] + }, + "acm027432jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027432jsd", + "name" : "ProtectedTermsLoaderTest", + "parentId" : "acm016656jsd", + "content" : [ "acm027456jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "protectedterms" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027433jsd" : { + "type" : "CodePackage", + "id" : "acm027433jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027434jsd" ] + }, + "acm027434jsd" : { + "type" : "CodePackage", + "id" : "acm027434jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027435jsd" ] + }, + "acm027435jsd" : { + "type" : "CodePackage", + "id" : "acm027435jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027436jsd" ] + }, + "acm027436jsd" : { + "type" : "CodePackage", + "id" : "acm027436jsd", + "name" : "protectedterms", + "parentId" : null, + "content" : [ "acm027432jsd" ] + }, + "acm027437jsd" : { + "type" : "ControlElement", + "id" : "acm027437jsd", + "name" : "setUp" + }, + "acm027438jsd" : { + "type" : "ControlElement", + "id" : "acm027438jsd", + "name" : "testGetProtectedTerms" + }, + "acm027439jsd" : { + "type" : "ControlElement", + "id" : "acm027439jsd", + "name" : "testAddProtectedTermsListFromFile" + }, + "acm027440jsd" : { + "type" : "ControlElement", + "id" : "acm027440jsd", + "name" : "testReadProtectedTermsListFromFileReadsDescription" + }, + "acm027441jsd" : { + "type" : "ControlElement", + "id" : "acm027441jsd", + "name" : "testReadProtectedTermsListFromFileDisabledWorks" + }, + "acm027442jsd" : { + "type" : "ControlElement", + "id" : "acm027442jsd", + "name" : "testReadProtectedTermsListFromFileEnabledWorks" + }, + "acm027443jsd" : { + "type" : "ControlElement", + "id" : "acm027443jsd", + "name" : "testReadProtectedTermsListFromFileIsNotInternalList" + }, + "acm027444jsd" : { + "type" : "ControlElement", + "id" : "acm027444jsd", + "name" : "testReadProtectedTermsListFromFileNoDescriptionGivesDefaultDescription" + }, + "acm027445jsd" : { + "type" : "ControlElement", + "id" : "acm027445jsd", + "name" : "testNewListsAreIncluded" + }, + "acm027446jsd" : { + "type" : "ControlElement", + "id" : "acm027446jsd", + "name" : "testNewListsAreEnabled" + }, + "acm027447jsd" : { + "type" : "ControlElement", + "id" : "acm027447jsd", + "name" : "testInitalizedAllInternalDisabled" + }, + "acm027448jsd" : { + "type" : "ControlElement", + "id" : "acm027448jsd", + "name" : "testUnknownExternalFileWillNotLoad" + }, + "acm027449jsd" : { + "type" : "ControlElement", + "id" : "acm027449jsd", + "name" : "testAllDisabledNoWords" + }, + "acm027450jsd" : { + "type" : "ControlElement", + "id" : "acm027450jsd", + "name" : "testDoNotLoadTheSameInternalListTwice" + }, + "acm027451jsd" : { + "type" : "ControlElement", + "id" : "acm027451jsd", + "name" : "testAddNewTermListAddsList" + }, + "acm027452jsd" : { + "type" : "ControlElement", + "id" : "acm027452jsd", + "name" : "testAddNewTermListNewListInList" + }, + "acm027453jsd" : { + "type" : "ControlElement", + "id" : "acm027453jsd", + "name" : "testRemoveTermList" + }, + "acm027454jsd" : { + "type" : "ControlElement", + "id" : "acm027454jsd", + "name" : "testRemoveTermListReduceTheCount" + }, + "acm027455jsd" : { + "type" : "ControlElement", + "id" : "acm027455jsd", + "name" : "testAddNewTermListSetsCorrectDescription" + }, + "acm027456jsd" : { + "type" : "ClassUnit", + "id" : "acm027456jsd", + "name" : "ProtectedTermsLoaderTest", + "compilationUnitId" : "acm027432jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016672jsd", "acm016690jsd", "acm016716jsd" ], + "content" : [ "acm027437jsd", "acm027438jsd", "acm027439jsd", "acm027440jsd", "acm027441jsd", "acm027442jsd", "acm027443jsd", "acm027444jsd", "acm027445jsd", "acm027446jsd", "acm027447jsd", "acm027448jsd", "acm027449jsd", "acm027450jsd", "acm027451jsd", "acm027452jsd", "acm027453jsd", "acm027454jsd", "acm027455jsd" ] + }, + "acm027457jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027457jsd", + "name" : "RemoteCommunicationTest", + "parentId" : "acm016721jsd", + "content" : [ "acm027469jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027458jsd" : { + "type" : "CodePackage", + "id" : "acm027458jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027459jsd" ] + }, + "acm027459jsd" : { + "type" : "CodePackage", + "id" : "acm027459jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027460jsd" ] + }, + "acm027460jsd" : { + "type" : "CodePackage", + "id" : "acm027460jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027461jsd" ] + }, + "acm027461jsd" : { + "type" : "CodePackage", + "id" : "acm027461jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm027457jsd" ] + }, + "acm027462jsd" : { + "type" : "ControlElement", + "id" : "acm027462jsd", + "name" : "setUp" + }, + "acm027463jsd" : { + "type" : "ControlElement", + "id" : "acm027463jsd", + "name" : "tearDown" + }, + "acm027464jsd" : { + "type" : "ControlElement", + "id" : "acm027464jsd", + "name" : "pingReturnsTrue" + }, + "acm027465jsd" : { + "type" : "ControlElement", + "id" : "acm027465jsd", + "name" : "commandLineArgumentSinglePassedToServer" + }, + "acm027466jsd" : { + "type" : "ControlElement", + "id" : "acm027466jsd", + "name" : "commandLineArgumentTwoPassedToServer" + }, + "acm027467jsd" : { + "type" : "ControlElement", + "id" : "acm027467jsd", + "name" : "commandLineArgumentMultiLinePassedToServer" + }, + "acm027468jsd" : { + "type" : "ControlElement", + "id" : "acm027468jsd", + "name" : "commandLineArgumentEncodingAndDecoding" + }, + "acm027469jsd" : { + "type" : "ClassUnit", + "id" : "acm027469jsd", + "name" : "RemoteCommunicationTest", + "compilationUnitId" : "acm027457jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016767jsd", "acm016792jsd", "acm016810jsd" ], + "content" : [ "acm027462jsd", "acm027463jsd", "acm027464jsd", "acm027465jsd", "acm027466jsd", "acm027467jsd", "acm027468jsd" ] + }, + "acm027470jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027470jsd", + "name" : "RemotePreferencesTest", + "parentId" : "acm016721jsd", + "content" : [ "acm027482jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027471jsd" : { + "type" : "CodePackage", + "id" : "acm027471jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027472jsd" ] + }, + "acm027472jsd" : { + "type" : "CodePackage", + "id" : "acm027472jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027473jsd" ] + }, + "acm027473jsd" : { + "type" : "CodePackage", + "id" : "acm027473jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027474jsd" ] + }, + "acm027474jsd" : { + "type" : "CodePackage", + "id" : "acm027474jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm027470jsd" ] + }, + "acm027475jsd" : { + "type" : "ControlElement", + "id" : "acm027475jsd", + "name" : "setUp" + }, + "acm027476jsd" : { + "type" : "ControlElement", + "id" : "acm027476jsd", + "name" : "testGetPort" + }, + "acm027477jsd" : { + "type" : "ControlElement", + "id" : "acm027477jsd", + "name" : "testSetPort" + }, + "acm027478jsd" : { + "type" : "ControlElement", + "id" : "acm027478jsd", + "name" : "testUseRemoteServer" + }, + "acm027479jsd" : { + "type" : "ControlElement", + "id" : "acm027479jsd", + "name" : "testSetUseRemoteServer" + }, + "acm027480jsd" : { + "type" : "ControlElement", + "id" : "acm027480jsd", + "name" : "testIsDifferentPortTrue" + }, + "acm027481jsd" : { + "type" : "ControlElement", + "id" : "acm027481jsd", + "name" : "testIsDifferentPortFalse" + }, + "acm027482jsd" : { + "type" : "ClassUnit", + "id" : "acm027482jsd", + "name" : "RemotePreferencesTest", + "compilationUnitId" : "acm027470jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016748jsd" ], + "content" : [ "acm027475jsd", "acm027476jsd", "acm027477jsd", "acm027478jsd", "acm027479jsd", "acm027480jsd", "acm027481jsd" ] + }, + "acm027483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027483jsd", + "name" : "RemoteSetupTest", + "parentId" : "acm016721jsd", + "content" : [ "acm027496jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027484jsd" : { + "type" : "CodePackage", + "id" : "acm027484jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027485jsd" ] + }, + "acm027485jsd" : { + "type" : "CodePackage", + "id" : "acm027485jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027486jsd" ] + }, + "acm027486jsd" : { + "type" : "CodePackage", + "id" : "acm027486jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027487jsd" ] + }, + "acm027487jsd" : { + "type" : "CodePackage", + "id" : "acm027487jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm027483jsd" ] + }, + "acm027488jsd" : { + "type" : "ControlElement", + "id" : "acm027488jsd", + "name" : "setUp" + }, + "acm027489jsd" : { + "type" : "ControlElement", + "id" : "acm027489jsd", + "name" : "testGoodCase" + }, + "acm027490jsd" : { + "type" : "ControlElement", + "id" : "acm027490jsd", + "name" : "testGoodCaseWithAllLifecycleMethods" + }, + "acm027491jsd" : { + "type" : "ControlElement", + "id" : "acm027491jsd", + "name" : "testPortAlreadyInUse" + }, + "acm027492jsd" : { + "type" : "ControlElement", + "id" : "acm027492jsd", + "name" : "testClientTimeout" + }, + "acm027493jsd" : { + "type" : "ControlElement", + "id" : "acm027493jsd", + "name" : "pingReturnsFalseForWrongServerListening" + }, + "acm027494jsd" : { + "type" : "ControlElement", + "id" : "acm027494jsd", + "name" : "pingReturnsFalseForNoServerListening" + }, + "acm027495jsd" : { + "type" : "ControlElement", + "id" : "acm027495jsd", + "name" : "pingReturnsTrueWhenServerIsRunning" + }, + "acm027496jsd" : { + "type" : "ClassUnit", + "id" : "acm027496jsd", + "name" : "RemoteSetupTest", + "compilationUnitId" : "acm027483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016767jsd", "acm016792jsd", "acm016810jsd" ], + "content" : [ "acm027488jsd", "acm027489jsd", "acm027490jsd", "acm027491jsd", "acm027492jsd", "acm027493jsd", "acm027494jsd", "acm027495jsd" ] + }, + "acm027497jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027497jsd", + "name" : "RemoteUtilTest", + "parentId" : "acm016721jsd", + "content" : [ "acm027506jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "remote" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027498jsd" : { + "type" : "CodePackage", + "id" : "acm027498jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027499jsd" ] + }, + "acm027499jsd" : { + "type" : "CodePackage", + "id" : "acm027499jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027500jsd" ] + }, + "acm027500jsd" : { + "type" : "CodePackage", + "id" : "acm027500jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027501jsd" ] + }, + "acm027501jsd" : { + "type" : "CodePackage", + "id" : "acm027501jsd", + "name" : "remote", + "parentId" : null, + "content" : [ "acm027497jsd" ] + }, + "acm027502jsd" : { + "type" : "ControlElement", + "id" : "acm027502jsd", + "name" : "rejectPortNumberBelowZero" + }, + "acm027503jsd" : { + "type" : "ControlElement", + "id" : "acm027503jsd", + "name" : "rejectReservedSystemPorts" + }, + "acm027504jsd" : { + "type" : "ControlElement", + "id" : "acm027504jsd", + "name" : "rejectPortsAbove16Bits" + }, + "acm027505jsd" : { + "type" : "ControlElement", + "id" : "acm027505jsd", + "name" : "acceptPortsAboveSystemPorts" + }, + "acm027506jsd" : { + "type" : "ClassUnit", + "id" : "acm027506jsd", + "name" : "RemoteUtilTest", + "compilationUnitId" : "acm027497jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027502jsd", "acm027503jsd", "acm027504jsd", "acm027505jsd" ] + }, + "acm027507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027507jsd", + "name" : "DatabaseSearcherTest", + "parentId" : "acm016815jsd", + "content" : [ "acm027523jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027508jsd" : { + "type" : "CodePackage", + "id" : "acm027508jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027509jsd" ] + }, + "acm027509jsd" : { + "type" : "CodePackage", + "id" : "acm027509jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027510jsd" ] + }, + "acm027510jsd" : { + "type" : "CodePackage", + "id" : "acm027510jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027511jsd" ] + }, + "acm027511jsd" : { + "type" : "CodePackage", + "id" : "acm027511jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm027507jsd" ] + }, + "acm027512jsd" : { + "type" : "ControlElement", + "id" : "acm027512jsd", + "name" : "setUp" + }, + "acm027513jsd" : { + "type" : "ControlElement", + "id" : "acm027513jsd", + "name" : "testNoMatchesFromEmptyDatabase" + }, + "acm027514jsd" : { + "type" : "ControlElement", + "id" : "acm027514jsd", + "name" : "testNoMatchesFromEmptyDatabaseWithInvalidSearchExpression" + }, + "acm027515jsd" : { + "type" : "ControlElement", + "id" : "acm027515jsd", + "name" : "testGetDatabaseFromMatchesDatabaseWithEmptyEntries" + }, + "acm027516jsd" : { + "type" : "ControlElement", + "id" : "acm027516jsd", + "name" : "testNoMatchesFromDatabaseWithArticleTypeEntry" + }, + "acm027517jsd" : { + "type" : "ControlElement", + "id" : "acm027517jsd", + "name" : "testCorrectMatchFromDatabaseWithArticleTypeEntry" + }, + "acm027518jsd" : { + "type" : "ControlElement", + "id" : "acm027518jsd", + "name" : "testNoMatchesFromEmptyDatabaseWithInvalidQuery" + }, + "acm027519jsd" : { + "type" : "ControlElement", + "id" : "acm027519jsd", + "name" : "testCorrectMatchFromDatabaseWithIncollectionTypeEntry" + }, + "acm027520jsd" : { + "type" : "ControlElement", + "id" : "acm027520jsd", + "name" : "testNoMatchesFromDatabaseWithTwoEntries" + }, + "acm027521jsd" : { + "type" : "ControlElement", + "id" : "acm027521jsd", + "name" : "testNoMatchesFromDabaseWithIncollectionTypeEntry" + }, + "acm027522jsd" : { + "type" : "ControlElement", + "id" : "acm027522jsd", + "name" : "testNoMatchFromDatabaseWithEmptyEntry" + }, + "acm027523jsd" : { + "type" : "ClassUnit", + "id" : "acm027523jsd", + "name" : "DatabaseSearcherTest", + "compilationUnitId" : "acm027507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016818jsd", "acm016845jsd", "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm027512jsd", "acm027513jsd", "acm027514jsd", "acm027515jsd", "acm027516jsd", "acm027517jsd", "acm027518jsd", "acm027519jsd", "acm027520jsd", "acm027521jsd", "acm027522jsd" ] + }, + "acm027524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027524jsd", + "name" : "SearchQueryTest", + "parentId" : "acm016815jsd", + "content" : [ "acm027559jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027525jsd" : { + "type" : "CodePackage", + "id" : "acm027525jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027526jsd" ] + }, + "acm027526jsd" : { + "type" : "CodePackage", + "id" : "acm027526jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027527jsd" ] + }, + "acm027527jsd" : { + "type" : "CodePackage", + "id" : "acm027527jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027528jsd" ] + }, + "acm027528jsd" : { + "type" : "CodePackage", + "id" : "acm027528jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm027524jsd" ] + }, + "acm027529jsd" : { + "type" : "ControlElement", + "id" : "acm027529jsd", + "name" : "testToString" + }, + "acm027530jsd" : { + "type" : "ControlElement", + "id" : "acm027530jsd", + "name" : "testIsContainsBasedSearch" + }, + "acm027531jsd" : { + "type" : "ControlElement", + "id" : "acm027531jsd", + "name" : "testIsGrammarBasedSearch" + }, + "acm027532jsd" : { + "type" : "ControlElement", + "id" : "acm027532jsd", + "name" : "testGrammarSearch" + }, + "acm027533jsd" : { + "type" : "ControlElement", + "id" : "acm027533jsd", + "name" : "testGrammarSearchFullEntryLastCharMissing" + }, + "acm027534jsd" : { + "type" : "ControlElement", + "id" : "acm027534jsd", + "name" : "testGrammarSearchFullEntry" + }, + "acm027535jsd" : { + "type" : "ControlElement", + "id" : "acm027535jsd", + "name" : "testSearchingForOpenBraketInBooktitle" + }, + "acm027536jsd" : { + "type" : "ControlElement", + "id" : "acm027536jsd", + "name" : "testSearchMatchesSingleKeywordNotPart" + }, + "acm027537jsd" : { + "type" : "ControlElement", + "id" : "acm027537jsd", + "name" : "testSearchMatchesSingleKeyword" + }, + "acm027538jsd" : { + "type" : "ControlElement", + "id" : "acm027538jsd", + "name" : "testSearchAllFields" + }, + "acm027539jsd" : { + "type" : "ControlElement", + "id" : "acm027539jsd", + "name" : "testSearchAllFieldsNotForSpecificField" + }, + "acm027540jsd" : { + "type" : "ControlElement", + "id" : "acm027540jsd", + "name" : "testSearchAllFieldsAndSpecificField" + }, + "acm027541jsd" : { + "type" : "ControlElement", + "id" : "acm027541jsd", + "name" : "testIsMatch" + }, + "acm027542jsd" : { + "type" : "ControlElement", + "id" : "acm027542jsd", + "name" : "testIsValidQueryNotAsRegEx" + }, + "acm027543jsd" : { + "type" : "ControlElement", + "id" : "acm027543jsd", + "name" : "testIsValidQueryContainsBracketNotAsRegEx" + }, + "acm027544jsd" : { + "type" : "ControlElement", + "id" : "acm027544jsd", + "name" : "testIsNotValidQueryContainsBracketNotAsRegEx" + }, + "acm027545jsd" : { + "type" : "ControlElement", + "id" : "acm027545jsd", + "name" : "testIsValidQueryAsRegEx" + }, + "acm027546jsd" : { + "type" : "ControlElement", + "id" : "acm027546jsd", + "name" : "testIsValidQueryWithNumbersAsRegEx" + }, + "acm027547jsd" : { + "type" : "ControlElement", + "id" : "acm027547jsd", + "name" : "testIsValidQueryContainsBracketAsRegEx" + }, + "acm027548jsd" : { + "type" : "ControlElement", + "id" : "acm027548jsd", + "name" : "testIsValidQueryWithEqualSignAsRegEx" + }, + "acm027549jsd" : { + "type" : "ControlElement", + "id" : "acm027549jsd", + "name" : "testIsValidQueryWithNumbersAndEqualSignAsRegEx" + }, + "acm027550jsd" : { + "type" : "ControlElement", + "id" : "acm027550jsd", + "name" : "testIsValidQueryWithEqualSignNotAsRegEx" + }, + "acm027551jsd" : { + "type" : "ControlElement", + "id" : "acm027551jsd", + "name" : "testIsValidQueryWithNumbersAndEqualSignNotAsRegEx" + }, + "acm027552jsd" : { + "type" : "ControlElement", + "id" : "acm027552jsd", + "name" : "isMatchedForNormalAndFieldBasedSearchMixed" + }, + "acm027553jsd" : { + "type" : "ControlElement", + "id" : "acm027553jsd", + "name" : "testSimpleTerm" + }, + "acm027554jsd" : { + "type" : "ControlElement", + "id" : "acm027554jsd", + "name" : "testGetPattern" + }, + "acm027555jsd" : { + "type" : "ControlElement", + "id" : "acm027555jsd", + "name" : "testGetRegexpPattern" + }, + "acm027556jsd" : { + "type" : "ControlElement", + "id" : "acm027556jsd", + "name" : "testGetRegexpJavascriptPattern" + }, + "acm027557jsd" : { + "type" : "ControlElement", + "id" : "acm027557jsd", + "name" : "testEscapingInPattern" + }, + "acm027558jsd" : { + "type" : "ControlElement", + "id" : "acm027558jsd", + "name" : "testEscapingInJavascriptPattern" + }, + "acm027559jsd" : { + "type" : "ClassUnit", + "id" : "acm027559jsd", + "name" : "SearchQueryTest", + "compilationUnitId" : "acm027524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016845jsd", "acm018267jsd", "acm020473jsd" ], + "content" : [ "acm027529jsd", "acm027530jsd", "acm027531jsd", "acm027532jsd", "acm027533jsd", "acm027534jsd", "acm027535jsd", "acm027536jsd", "acm027537jsd", "acm027538jsd", "acm027539jsd", "acm027540jsd", "acm027541jsd", "acm027542jsd", "acm027543jsd", "acm027544jsd", "acm027545jsd", "acm027546jsd", "acm027547jsd", "acm027548jsd", "acm027549jsd", "acm027550jsd", "acm027551jsd", "acm027552jsd", "acm027553jsd", "acm027554jsd", "acm027555jsd", "acm027556jsd", "acm027557jsd", "acm027558jsd" ] + }, + "acm027560jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027560jsd", + "name" : "ConnectorTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027567jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027561jsd" : { + "type" : "CodePackage", + "id" : "acm027561jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027562jsd" ] + }, + "acm027562jsd" : { + "type" : "CodePackage", + "id" : "acm027562jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027563jsd" ] + }, + "acm027563jsd" : { + "type" : "CodePackage", + "id" : "acm027563jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027564jsd" ] + }, + "acm027564jsd" : { + "type" : "CodePackage", + "id" : "acm027564jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027560jsd" ] + }, + "acm027565jsd" : { + "type" : "ControlElement", + "id" : "acm027565jsd", + "name" : "getTestDBMSConnection" + }, + "acm027566jsd" : { + "type" : "ControlElement", + "id" : "acm027566jsd", + "name" : "getTestConnectionProperties" + }, + "acm027567jsd" : { + "type" : "ClassUnit", + "id" : "acm027567jsd", + "name" : "ConnectorTest", + "compilationUnitId" : "acm027560jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016859jsd", "acm016882jsd", "acm016899jsd", "acm016978jsd", "acm017109jsd" ], + "content" : [ "acm027565jsd", "acm027566jsd" ] + }, + "acm027568jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027568jsd", + "name" : "DBMSConnectionPropertiesTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027575jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027569jsd" : { + "type" : "CodePackage", + "id" : "acm027569jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027570jsd" ] + }, + "acm027570jsd" : { + "type" : "CodePackage", + "id" : "acm027570jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027571jsd" ] + }, + "acm027571jsd" : { + "type" : "CodePackage", + "id" : "acm027571jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027572jsd" ] + }, + "acm027572jsd" : { + "type" : "CodePackage", + "id" : "acm027572jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027568jsd" ] + }, + "acm027573jsd" : { + "type" : "ControlElement", + "id" : "acm027573jsd", + "name" : "urlForMySqlDoesNotIncludeSslConfig" + }, + "acm027574jsd" : { + "type" : "ControlElement", + "id" : "acm027574jsd", + "name" : "urlForOracle" + }, + "acm027575jsd" : { + "type" : "ClassUnit", + "id" : "acm027575jsd", + "name" : "DBMSConnectionPropertiesTest", + "compilationUnitId" : "acm027568jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016882jsd", "acm016899jsd" ], + "content" : [ "acm027573jsd", "acm027574jsd" ] + }, + "acm027576jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027576jsd", + "name" : "DBMSConnectionTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027582jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027577jsd" : { + "type" : "CodePackage", + "id" : "acm027577jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027578jsd" ] + }, + "acm027578jsd" : { + "type" : "CodePackage", + "id" : "acm027578jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027579jsd" ] + }, + "acm027579jsd" : { + "type" : "CodePackage", + "id" : "acm027579jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027580jsd" ] + }, + "acm027580jsd" : { + "type" : "CodePackage", + "id" : "acm027580jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027576jsd" ] + }, + "acm027581jsd" : { + "type" : "ControlElement", + "id" : "acm027581jsd", + "name" : "getConnectionFailsWhenconnectingToInvalidHost" + }, + "acm027582jsd" : { + "type" : "ClassUnit", + "id" : "acm027582jsd", + "name" : "DBMSConnectionTest", + "compilationUnitId" : "acm027576jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016978jsd" ], + "content" : [ "acm027581jsd" ] + }, + "acm027583jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027583jsd", + "name" : "DBMSProcessorTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027621jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027584jsd" : { + "type" : "CodePackage", + "id" : "acm027584jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027585jsd" ] + }, + "acm027585jsd" : { + "type" : "CodePackage", + "id" : "acm027585jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027586jsd" ] + }, + "acm027586jsd" : { + "type" : "CodePackage", + "id" : "acm027586jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027587jsd" ] + }, + "acm027587jsd" : { + "type" : "CodePackage", + "id" : "acm027587jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027583jsd" ] + }, + "acm027588jsd" : { + "type" : "ControlElement", + "id" : "acm027588jsd", + "name" : "setup" + }, + "acm027589jsd" : { + "type" : "ControlElement", + "id" : "acm027589jsd", + "name" : "closeDbmsConnection" + }, + "acm027590jsd" : { + "type" : "ControlElement", + "id" : "acm027590jsd", + "name" : "databaseIntegrityFullFiledAfterSetup" + }, + "acm027591jsd" : { + "type" : "ControlElement", + "id" : "acm027591jsd", + "name" : "databaseIntegrityBrokenAfterClearedTables" + }, + "acm027592jsd" : { + "type" : "ControlElement", + "id" : "acm027592jsd", + "name" : "testInsertEntry" + }, + "acm027593jsd" : { + "type" : "ControlElement", + "id" : "acm027593jsd", + "name" : "testInsertEntryWithEmptyFields" + }, + "acm027594jsd" : { + "type" : "ControlElement", + "id" : "acm027594jsd", + "name" : "getBibEntryExample" + }, + "acm027595jsd" : { + "type" : "ControlElement", + "id" : "acm027595jsd", + "name" : "testUpdateEntry" + }, + "acm027596jsd" : { + "type" : "ControlElement", + "id" : "acm027596jsd", + "name" : "testUpdateEmptyEntry" + }, + "acm027597jsd" : { + "type" : "ControlElement", + "id" : "acm027597jsd", + "name" : "testGetEntriesByIdList" + }, + "acm027598jsd" : { + "type" : "ControlElement", + "id" : "acm027598jsd", + "name" : "testUpdateNewerEntry" + }, + "acm027599jsd" : { + "type" : "ControlElement", + "id" : "acm027599jsd", + "name" : "testUpdateEqualEntry" + }, + "acm027600jsd" : { + "type" : "ControlElement", + "id" : "acm027600jsd", + "name" : "testRemoveAllEntries" + }, + "acm027601jsd" : { + "type" : "ControlElement", + "id" : "acm027601jsd", + "name" : "testRemoveSomeEntries" + }, + "acm027602jsd" : { + "type" : "ControlElement", + "id" : "acm027602jsd", + "name" : "testRemoveSingleEntry" + }, + "acm027603jsd" : { + "type" : "ControlElement", + "id" : "acm027603jsd", + "name" : "testRemoveEntriesOnNullThrows" + }, + "acm027604jsd" : { + "type" : "ControlElement", + "id" : "acm027604jsd", + "name" : "testRemoveEmptyEntryList" + }, + "acm027605jsd" : { + "type" : "ControlElement", + "id" : "acm027605jsd", + "name" : "testGetSharedEntries" + }, + "acm027606jsd" : { + "type" : "ControlElement", + "id" : "acm027606jsd", + "name" : "testGetSharedEntry" + }, + "acm027607jsd" : { + "type" : "ControlElement", + "id" : "acm027607jsd", + "name" : "testGetNotExistingSharedEntry" + }, + "acm027608jsd" : { + "type" : "ControlElement", + "id" : "acm027608jsd", + "name" : "testGetSharedIDVersionMapping" + }, + "acm027609jsd" : { + "type" : "ControlElement", + "id" : "acm027609jsd", + "name" : "testGetSharedMetaData" + }, + "acm027610jsd" : { + "type" : "ControlElement", + "id" : "acm027610jsd", + "name" : "testSetSharedMetaData" + }, + "acm027611jsd" : { + "type" : "ControlElement", + "id" : "acm027611jsd", + "name" : "getMetaDataExample" + }, + "acm027612jsd" : { + "type" : "ControlElement", + "id" : "acm027612jsd", + "name" : "getBibEntryExampleWithEmptyFields" + }, + "acm027613jsd" : { + "type" : "ControlElement", + "id" : "acm027613jsd", + "name" : "getBibEntryExample2" + }, + "acm027614jsd" : { + "type" : "ControlElement", + "id" : "acm027614jsd", + "name" : "getBibEntryExample3" + }, + "acm027615jsd" : { + "type" : "ControlElement", + "id" : "acm027615jsd", + "name" : "testInsertMultipleEntries" + }, + "acm027616jsd" : { + "type" : "ControlElement", + "id" : "acm027616jsd", + "name" : "selectFrom" + }, + "acm027617jsd" : { + "type" : "ControlElement", + "id" : "acm027617jsd", + "name" : "insertMetaData" + }, + "acm027618jsd" : { + "type" : "ControlElement", + "id" : "acm027618jsd", + "name" : "escape" + }, + "acm027619jsd" : { + "type" : "ControlElement", + "id" : "acm027619jsd", + "name" : "escape_Table" + }, + "acm027620jsd" : { + "type" : "ControlElement", + "id" : "acm027620jsd", + "name" : "escapeValue" + }, + "acm027621jsd" : { + "type" : "ClassUnit", + "id" : "acm027621jsd", + "name" : "DBMSProcessorTest", + "compilationUnitId" : "acm027583jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016859jsd", "acm016935jsd", "acm016978jsd", "acm017127jsd", "acm018267jsd", "acm018813jsd" ], + "content" : [ "acm027588jsd", "acm027589jsd", "acm027590jsd", "acm027591jsd", "acm027592jsd", "acm027593jsd", "acm027594jsd", "acm027595jsd", "acm027596jsd", "acm027597jsd", "acm027598jsd", "acm027599jsd", "acm027600jsd", "acm027601jsd", "acm027602jsd", "acm027603jsd", "acm027604jsd", "acm027605jsd", "acm027606jsd", "acm027607jsd", "acm027608jsd", "acm027609jsd", "acm027610jsd", "acm027611jsd", "acm027612jsd", "acm027613jsd", "acm027614jsd", "acm027615jsd", "acm027616jsd", "acm027617jsd", "acm027618jsd", "acm027619jsd", "acm027620jsd" ] + }, + "acm027622jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027622jsd", + "name" : "DBMSSynchronizerTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027640jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027623jsd" : { + "type" : "CodePackage", + "id" : "acm027623jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027624jsd" ] + }, + "acm027624jsd" : { + "type" : "CodePackage", + "id" : "acm027624jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027625jsd" ] + }, + "acm027625jsd" : { + "type" : "CodePackage", + "id" : "acm027625jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027626jsd" ] + }, + "acm027626jsd" : { + "type" : "CodePackage", + "id" : "acm027626jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027622jsd" ] + }, + "acm027627jsd" : { + "type" : "ControlElement", + "id" : "acm027627jsd", + "name" : "createExampleBibEntry" + }, + "acm027628jsd" : { + "type" : "ControlElement", + "id" : "acm027628jsd", + "name" : "setup" + }, + "acm027629jsd" : { + "type" : "ControlElement", + "id" : "acm027629jsd", + "name" : "clear" + }, + "acm027630jsd" : { + "type" : "ControlElement", + "id" : "acm027630jsd", + "name" : "testEntryAddedEventListener" + }, + "acm027631jsd" : { + "type" : "ControlElement", + "id" : "acm027631jsd", + "name" : "twoLocalFieldChangesAreSynchronizedCorrectly" + }, + "acm027632jsd" : { + "type" : "ControlElement", + "id" : "acm027632jsd", + "name" : "oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly" + }, + "acm027633jsd" : { + "type" : "ControlElement", + "id" : "acm027633jsd", + "name" : "testEntriesRemovedEventListener" + }, + "acm027634jsd" : { + "type" : "ControlElement", + "id" : "acm027634jsd", + "name" : "testMetaDataChangedEventListener" + }, + "acm027635jsd" : { + "type" : "ControlElement", + "id" : "acm027635jsd", + "name" : "testInitializeDatabases" + }, + "acm027636jsd" : { + "type" : "ControlElement", + "id" : "acm027636jsd", + "name" : "testSynchronizeLocalDatabaseWithEntryRemoval" + }, + "acm027637jsd" : { + "type" : "ControlElement", + "id" : "acm027637jsd", + "name" : "testSynchronizeLocalDatabaseWithEntryUpdate" + }, + "acm027638jsd" : { + "type" : "ControlElement", + "id" : "acm027638jsd", + "name" : "updateEntryDoesNotModifyLocalDatabase" + }, + "acm027639jsd" : { + "type" : "ControlElement", + "id" : "acm027639jsd", + "name" : "testApplyMetaData" + }, + "acm027640jsd" : { + "type" : "ClassUnit", + "id" : "acm027640jsd", + "name" : "DBMSSynchronizerTest", + "compilationUnitId" : "acm027622jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm011169jsd", "acm011188jsd", "acm012084jsd", "acm016859jsd", "acm016935jsd", "acm016966jsd", "acm016978jsd", "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm018813jsd", "acm019421jsd", "acm020676jsd" ], + "content" : [ "acm027627jsd", "acm027628jsd", "acm027629jsd", "acm027630jsd", "acm027631jsd", "acm027632jsd", "acm027633jsd", "acm027634jsd", "acm027635jsd", "acm027636jsd", "acm027637jsd", "acm027638jsd", "acm027639jsd" ] + }, + "acm027641jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027641jsd", + "name" : "DBMSTypeTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027667jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027642jsd" : { + "type" : "CodePackage", + "id" : "acm027642jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027643jsd" ] + }, + "acm027643jsd" : { + "type" : "CodePackage", + "id" : "acm027643jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027644jsd" ] + }, + "acm027644jsd" : { + "type" : "CodePackage", + "id" : "acm027644jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027645jsd" ] + }, + "acm027645jsd" : { + "type" : "CodePackage", + "id" : "acm027645jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027641jsd" ] + }, + "acm027646jsd" : { + "type" : "ControlElement", + "id" : "acm027646jsd", + "name" : "toStringCorrectForMysql" + }, + "acm027647jsd" : { + "type" : "ControlElement", + "id" : "acm027647jsd", + "name" : "toStringCorrectForOracle" + }, + "acm027648jsd" : { + "type" : "ControlElement", + "id" : "acm027648jsd", + "name" : "toStringCorrectForPostgres" + }, + "acm027649jsd" : { + "type" : "ControlElement", + "id" : "acm027649jsd", + "name" : "fromStringWorksForMySQL" + }, + "acm027650jsd" : { + "type" : "ControlElement", + "id" : "acm027650jsd", + "name" : "fromStringWorksForPostgreSQL" + }, + "acm027651jsd" : { + "type" : "ControlElement", + "id" : "acm027651jsd", + "name" : "fromStringWorksForNullString" + }, + "acm027652jsd" : { + "type" : "ControlElement", + "id" : "acm027652jsd", + "name" : "fromStringWorksForEmptyString" + }, + "acm027653jsd" : { + "type" : "ControlElement", + "id" : "acm027653jsd", + "name" : "fromStringWorksForUnkownString" + }, + "acm027654jsd" : { + "type" : "ControlElement", + "id" : "acm027654jsd", + "name" : "driverClassForMysqlIsCorrect" + }, + "acm027655jsd" : { + "type" : "ControlElement", + "id" : "acm027655jsd", + "name" : "driverClassForOracleIsCorrect" + }, + "acm027656jsd" : { + "type" : "ControlElement", + "id" : "acm027656jsd", + "name" : "driverClassForPostgresIsCorrect" + }, + "acm027657jsd" : { + "type" : "ControlElement", + "id" : "acm027657jsd", + "name" : "fromStringForMysqlReturnsCorrectValue" + }, + "acm027658jsd" : { + "type" : "ControlElement", + "id" : "acm027658jsd", + "name" : "fromStringForOracleRturnsCorrectValue" + }, + "acm027659jsd" : { + "type" : "ControlElement", + "id" : "acm027659jsd", + "name" : "fromStringForPostgresReturnsCorrectValue" + }, + "acm027660jsd" : { + "type" : "ControlElement", + "id" : "acm027660jsd", + "name" : "fromStringFromInvalidStringReturnsOptionalEmpty" + }, + "acm027661jsd" : { + "type" : "ControlElement", + "id" : "acm027661jsd", + "name" : "getUrlForMysqlHasCorrectFormat" + }, + "acm027662jsd" : { + "type" : "ControlElement", + "id" : "acm027662jsd", + "name" : "getUrlForOracleHasCorrectFormat" + }, + "acm027663jsd" : { + "type" : "ControlElement", + "id" : "acm027663jsd", + "name" : "getUrlForPostgresHasCorrectFormat" + }, + "acm027664jsd" : { + "type" : "ControlElement", + "id" : "acm027664jsd", + "name" : "getDefaultPortForMysqlHasCorrectValue" + }, + "acm027665jsd" : { + "type" : "ControlElement", + "id" : "acm027665jsd", + "name" : "getDefaultPortForOracleHasCorrectValue" + }, + "acm027666jsd" : { + "type" : "ControlElement", + "id" : "acm027666jsd", + "name" : "getDefaultPortForPostgresHasCorrectValue" + }, + "acm027667jsd" : { + "type" : "ClassUnit", + "id" : "acm027667jsd", + "name" : "DBMSTypeTest", + "compilationUnitId" : "acm027641jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027646jsd", "acm027647jsd", "acm027648jsd", "acm027649jsd", "acm027650jsd", "acm027651jsd", "acm027652jsd", "acm027653jsd", "acm027654jsd", "acm027655jsd", "acm027656jsd", "acm027657jsd", "acm027658jsd", "acm027659jsd", "acm027660jsd", "acm027661jsd", "acm027662jsd", "acm027663jsd", "acm027664jsd", "acm027665jsd", "acm027666jsd" ] + }, + "acm027668jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027668jsd", + "name" : "SynchronizationEventListenerTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027677jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027669jsd" : { + "type" : "CodePackage", + "id" : "acm027669jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027670jsd" ] + }, + "acm027670jsd" : { + "type" : "CodePackage", + "id" : "acm027670jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027671jsd" ] + }, + "acm027671jsd" : { + "type" : "CodePackage", + "id" : "acm027671jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027672jsd" ] + }, + "acm027672jsd" : { + "type" : "CodePackage", + "id" : "acm027672jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027668jsd" ] + }, + "acm027673jsd" : { + "type" : "ControlElement", + "id" : "acm027673jsd", + "name" : "listen" + }, + "acm027674jsd" : { + "type" : "ControlElement", + "id" : "acm027674jsd", + "name" : "listen" + }, + "acm027675jsd" : { + "type" : "ControlElement", + "id" : "acm027675jsd", + "name" : "getSharedEntriesNotPresentEvent" + }, + "acm027676jsd" : { + "type" : "ControlElement", + "id" : "acm027676jsd", + "name" : "getUpdateRefusedEvent" + }, + "acm027677jsd" : { + "type" : "ClassUnit", + "id" : "acm027677jsd", + "name" : "SynchronizationEventListenerTest", + "compilationUnitId" : "acm027668jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017090jsd", "acm017101jsd" ], + "content" : [ "acm027673jsd", "acm027674jsd", "acm027675jsd", "acm027676jsd" ] + }, + "acm027678jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027678jsd", + "name" : "SynchronizationSimulatorTest", + "parentId" : "acm016854jsd", + "content" : [ "acm027691jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027679jsd" : { + "type" : "CodePackage", + "id" : "acm027679jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027680jsd" ] + }, + "acm027680jsd" : { + "type" : "CodePackage", + "id" : "acm027680jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027681jsd" ] + }, + "acm027681jsd" : { + "type" : "CodePackage", + "id" : "acm027681jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027682jsd" ] + }, + "acm027682jsd" : { + "type" : "CodePackage", + "id" : "acm027682jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027678jsd" ] + }, + "acm027683jsd" : { + "type" : "ControlElement", + "id" : "acm027683jsd", + "name" : "getBibEntryExample" + }, + "acm027684jsd" : { + "type" : "ControlElement", + "id" : "acm027684jsd", + "name" : "setup" + }, + "acm027685jsd" : { + "type" : "ControlElement", + "id" : "acm027685jsd", + "name" : "clear" + }, + "acm027686jsd" : { + "type" : "ControlElement", + "id" : "acm027686jsd", + "name" : "simulateEntryInsertionAndManualPull" + }, + "acm027687jsd" : { + "type" : "ControlElement", + "id" : "acm027687jsd", + "name" : "simulateEntryUpdateAndManualPull" + }, + "acm027688jsd" : { + "type" : "ControlElement", + "id" : "acm027688jsd", + "name" : "simulateEntryDelitionAndManualPull" + }, + "acm027689jsd" : { + "type" : "ControlElement", + "id" : "acm027689jsd", + "name" : "simulateUpdateOnNoLongerExistingEntry" + }, + "acm027690jsd" : { + "type" : "ControlElement", + "id" : "acm027690jsd", + "name" : "simulateEntryChangeConflicts" + }, + "acm027691jsd" : { + "type" : "ClassUnit", + "id" : "acm027691jsd", + "name" : "SynchronizationSimulatorTest", + "compilationUnitId" : "acm027678jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm011011jsd", "acm016859jsd", "acm016966jsd", "acm018022jsd", "acm018267jsd", "acm018813jsd", "acm020676jsd", "acm027677jsd" ], + "content" : [ "acm027683jsd", "acm027684jsd", "acm027685jsd", "acm027686jsd", "acm027687jsd", "acm027688jsd", "acm027689jsd", "acm027690jsd" ] + }, + "acm027692jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027692jsd", + "name" : "TestManager", + "parentId" : "acm016854jsd", + "content" : [ "acm027699jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027693jsd" : { + "type" : "CodePackage", + "id" : "acm027693jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027694jsd" ] + }, + "acm027694jsd" : { + "type" : "CodePackage", + "id" : "acm027694jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027695jsd" ] + }, + "acm027695jsd" : { + "type" : "CodePackage", + "id" : "acm027695jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027696jsd" ] + }, + "acm027696jsd" : { + "type" : "CodePackage", + "id" : "acm027696jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027692jsd" ] + }, + "acm027697jsd" : { + "type" : "ControlElement", + "id" : "acm027697jsd", + "name" : "getDBMSTypeTestParameter" + }, + "acm027698jsd" : { + "type" : "ControlElement", + "id" : "acm027698jsd", + "name" : "clearTables" + }, + "acm027699jsd" : { + "type" : "ClassUnit", + "id" : "acm027699jsd", + "name" : "TestManager", + "compilationUnitId" : "acm027692jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016859jsd", "acm016978jsd" ], + "content" : [ "acm027697jsd", "acm027698jsd" ] + }, + "acm027700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027700jsd", + "name" : "PasswordTest", + "parentId" : "acm017199jsd", + "content" : [ "acm027708jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "shared", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027701jsd" : { + "type" : "CodePackage", + "id" : "acm027701jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027702jsd" ] + }, + "acm027702jsd" : { + "type" : "CodePackage", + "id" : "acm027702jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027703jsd" ] + }, + "acm027703jsd" : { + "type" : "CodePackage", + "id" : "acm027703jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027704jsd" ] + }, + "acm027704jsd" : { + "type" : "CodePackage", + "id" : "acm027704jsd", + "name" : "shared", + "parentId" : null, + "content" : [ "acm027705jsd" ] + }, + "acm027705jsd" : { + "type" : "CodePackage", + "id" : "acm027705jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm027700jsd" ] + }, + "acm027706jsd" : { + "type" : "ControlElement", + "id" : "acm027706jsd", + "name" : "passwordAESTest" + }, + "acm027707jsd" : { + "type" : "ControlElement", + "id" : "acm027707jsd", + "name" : "passwordAsCharTest" + }, + "acm027708jsd" : { + "type" : "ClassUnit", + "id" : "acm027708jsd", + "name" : "PasswordTest", + "compilationUnitId" : "acm027700jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017205jsd" ], + "content" : [ "acm027706jsd", "acm027707jsd" ] + }, + "acm027709jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027709jsd", + "name" : "DefaultTexParserTest", + "parentId" : "acm017210jsd", + "content" : [ "acm027728jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027710jsd" : { + "type" : "CodePackage", + "id" : "acm027710jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027711jsd" ] + }, + "acm027711jsd" : { + "type" : "CodePackage", + "id" : "acm027711jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027712jsd" ] + }, + "acm027712jsd" : { + "type" : "CodePackage", + "id" : "acm027712jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027713jsd" ] + }, + "acm027713jsd" : { + "type" : "CodePackage", + "id" : "acm027713jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm027709jsd" ] + }, + "acm027714jsd" : { + "type" : "ControlElement", + "id" : "acm027714jsd", + "name" : "testMatchCite" + }, + "acm027715jsd" : { + "type" : "ControlElement", + "id" : "acm027715jsd", + "name" : "testNonMatchCite" + }, + "acm027716jsd" : { + "type" : "ControlElement", + "id" : "acm027716jsd", + "name" : "testCiteCommands" + }, + "acm027717jsd" : { + "type" : "ControlElement", + "id" : "acm027717jsd", + "name" : "testTwoCitationsSameLine" + }, + "acm027718jsd" : { + "type" : "ControlElement", + "id" : "acm027718jsd", + "name" : "testFileEncodingUtf8" + }, + "acm027719jsd" : { + "type" : "ControlElement", + "id" : "acm027719jsd", + "name" : "testFileEncodingIso88591" + }, + "acm027720jsd" : { + "type" : "ControlElement", + "id" : "acm027720jsd", + "name" : "testFileEncodingIso885915" + }, + "acm027721jsd" : { + "type" : "ControlElement", + "id" : "acm027721jsd", + "name" : "testFileEncodingForThreeFiles" + }, + "acm027722jsd" : { + "type" : "ControlElement", + "id" : "acm027722jsd", + "name" : "testSingleFile" + }, + "acm027723jsd" : { + "type" : "ControlElement", + "id" : "acm027723jsd", + "name" : "testTwoFiles" + }, + "acm027724jsd" : { + "type" : "ControlElement", + "id" : "acm027724jsd", + "name" : "testDuplicateFiles" + }, + "acm027725jsd" : { + "type" : "ControlElement", + "id" : "acm027725jsd", + "name" : "testUnknownKey" + }, + "acm027726jsd" : { + "type" : "ControlElement", + "id" : "acm027726jsd", + "name" : "testFileNotFound" + }, + "acm027727jsd" : { + "type" : "ControlElement", + "id" : "acm027727jsd", + "name" : "testNestedFiles" + }, + "acm027728jsd" : { + "type" : "ClassUnit", + "id" : "acm027728jsd", + "name" : "DefaultTexParserTest", + "compilationUnitId" : "acm027709jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017219jsd", "acm020666jsd", "acm027728jsd" ], + "content" : [ "acm027714jsd", "acm027715jsd", "acm027716jsd", "acm027717jsd", "acm027718jsd", "acm027719jsd", "acm027720jsd", "acm027721jsd", "acm027722jsd", "acm027723jsd", "acm027724jsd", "acm027725jsd", "acm027726jsd", "acm027727jsd" ] + }, + "acm027729jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027729jsd", + "name" : "LatexParserTest", + "parentId" : "acm017210jsd", + "content" : [ "acm027737jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027730jsd" : { + "type" : "CodePackage", + "id" : "acm027730jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027731jsd" ] + }, + "acm027731jsd" : { + "type" : "CodePackage", + "id" : "acm027731jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027732jsd" ] + }, + "acm027732jsd" : { + "type" : "CodePackage", + "id" : "acm027732jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027733jsd" ] + }, + "acm027733jsd" : { + "type" : "CodePackage", + "id" : "acm027733jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm027729jsd" ] + }, + "acm027734jsd" : { + "type" : "ControlElement", + "id" : "acm027734jsd", + "name" : "setUp" + }, + "acm027735jsd" : { + "type" : "ControlElement", + "id" : "acm027735jsd", + "name" : "testSameFileDifferentDatabases" + }, + "acm027736jsd" : { + "type" : "ControlElement", + "id" : "acm027736jsd", + "name" : "testTwoFilesDifferentDatabases" + }, + "acm027737jsd" : { + "type" : "ClassUnit", + "id" : "acm027737jsd", + "name" : "LatexParserTest", + "compilationUnitId" : "acm027729jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017219jsd", "acm017238jsd", "acm017988jsd", "acm018267jsd", "acm020646jsd", "acm020666jsd", "acm020676jsd", "acm020693jsd", "acm020875jsd", "acm027737jsd" ], + "content" : [ "acm027734jsd", "acm027735jsd", "acm027736jsd" ] + }, + "acm027738jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027738jsd", + "name" : "TexBibEntriesResolverTest", + "parentId" : "acm017210jsd", + "content" : [ "acm027750jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027739jsd" : { + "type" : "CodePackage", + "id" : "acm027739jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027740jsd" ] + }, + "acm027740jsd" : { + "type" : "CodePackage", + "id" : "acm027740jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027741jsd" ] + }, + "acm027741jsd" : { + "type" : "CodePackage", + "id" : "acm027741jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027742jsd" ] + }, + "acm027742jsd" : { + "type" : "CodePackage", + "id" : "acm027742jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm027738jsd" ] + }, + "acm027743jsd" : { + "type" : "ControlElement", + "id" : "acm027743jsd", + "name" : "setUp" + }, + "acm027744jsd" : { + "type" : "ControlElement", + "id" : "acm027744jsd", + "name" : "testSingleFile" + }, + "acm027745jsd" : { + "type" : "ControlElement", + "id" : "acm027745jsd", + "name" : "testTwoFiles" + }, + "acm027746jsd" : { + "type" : "ControlElement", + "id" : "acm027746jsd", + "name" : "testDuplicateFiles" + }, + "acm027747jsd" : { + "type" : "ControlElement", + "id" : "acm027747jsd", + "name" : "testUnknownKey" + }, + "acm027748jsd" : { + "type" : "ControlElement", + "id" : "acm027748jsd", + "name" : "testNestedFiles" + }, + "acm027749jsd" : { + "type" : "ControlElement", + "id" : "acm027749jsd", + "name" : "testCrossRef" + }, + "acm027750jsd" : { + "type" : "ClassUnit", + "id" : "acm027750jsd", + "name" : "TexBibEntriesResolverTest", + "compilationUnitId" : "acm027738jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017219jsd", "acm017238jsd", "acm017988jsd", "acm018267jsd", "acm020646jsd", "acm020666jsd", "acm020676jsd", "acm020693jsd", "acm020875jsd", "acm027750jsd" ], + "content" : [ "acm027743jsd", "acm027744jsd", "acm027745jsd", "acm027746jsd", "acm027747jsd", "acm027748jsd", "acm027749jsd" ] + }, + "acm027751jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027751jsd", + "name" : "BuildInfoTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027759jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027752jsd" : { + "type" : "CodePackage", + "id" : "acm027752jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027753jsd" ] + }, + "acm027753jsd" : { + "type" : "CodePackage", + "id" : "acm027753jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027754jsd" ] + }, + "acm027754jsd" : { + "type" : "CodePackage", + "id" : "acm027754jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027755jsd" ] + }, + "acm027755jsd" : { + "type" : "CodePackage", + "id" : "acm027755jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027751jsd" ] + }, + "acm027756jsd" : { + "type" : "ControlElement", + "id" : "acm027756jsd", + "name" : "testDefaults" + }, + "acm027757jsd" : { + "type" : "ControlElement", + "id" : "acm027757jsd", + "name" : "testFileImport" + }, + "acm027758jsd" : { + "type" : "ControlElement", + "id" : "acm027758jsd", + "name" : "azureInstrumentationKeyIsNotEmpty" + }, + "acm027759jsd" : { + "type" : "ClassUnit", + "id" : "acm027759jsd", + "name" : "BuildInfoTest", + "compilationUnitId" : "acm027751jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017281jsd" ], + "content" : [ "acm027756jsd", "acm027757jsd", "acm027758jsd" ] + }, + "acm027760jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027760jsd", + "name" : "DevelopmentStageTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027769jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027761jsd" : { + "type" : "CodePackage", + "id" : "acm027761jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027762jsd" ] + }, + "acm027762jsd" : { + "type" : "CodePackage", + "id" : "acm027762jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027763jsd" ] + }, + "acm027763jsd" : { + "type" : "CodePackage", + "id" : "acm027763jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027764jsd" ] + }, + "acm027764jsd" : { + "type" : "CodePackage", + "id" : "acm027764jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027760jsd" ] + }, + "acm027765jsd" : { + "type" : "ControlElement", + "id" : "acm027765jsd", + "name" : "checkStabilityOrder" + }, + "acm027766jsd" : { + "type" : "ControlElement", + "id" : "acm027766jsd", + "name" : "parseStages" + }, + "acm027767jsd" : { + "type" : "ControlElement", + "id" : "acm027767jsd", + "name" : "parseNull" + }, + "acm027768jsd" : { + "type" : "ControlElement", + "id" : "acm027768jsd", + "name" : "parseUnknownString" + }, + "acm027769jsd" : { + "type" : "ClassUnit", + "id" : "acm027769jsd", + "name" : "DevelopmentStageTest", + "compilationUnitId" : "acm027760jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027765jsd", "acm027766jsd", "acm027767jsd", "acm027768jsd" ] + }, + "acm027770jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027770jsd", + "name" : "ExternalLinkCreatorTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027779jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027771jsd" : { + "type" : "CodePackage", + "id" : "acm027771jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027772jsd" ] + }, + "acm027772jsd" : { + "type" : "CodePackage", + "id" : "acm027772jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027773jsd" ] + }, + "acm027773jsd" : { + "type" : "CodePackage", + "id" : "acm027773jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027774jsd" ] + }, + "acm027774jsd" : { + "type" : "CodePackage", + "id" : "acm027774jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027770jsd" ] + }, + "acm027775jsd" : { + "type" : "ControlElement", + "id" : "acm027775jsd", + "name" : "urlIsValid" + }, + "acm027776jsd" : { + "type" : "ControlElement", + "id" : "acm027776jsd", + "name" : "getShortScienceSearchURLEncodesSpecialCharacters" + }, + "acm027777jsd" : { + "type" : "ControlElement", + "id" : "acm027777jsd", + "name" : "getShortScienceSearchURLReturnsEmptyOnMissingTitle" + }, + "acm027778jsd" : { + "type" : "ControlElement", + "id" : "acm027778jsd", + "name" : "getShortScienceSearchURLLinksToSearchResults" + }, + "acm027779jsd" : { + "type" : "ClassUnit", + "id" : "acm027779jsd", + "name" : "ExternalLinkCreatorTest", + "compilationUnitId" : "acm027770jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm027775jsd", "acm027776jsd", "acm027777jsd", "acm027778jsd" ] + }, + "acm027780jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027780jsd", + "name" : "FileNameCleanerTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027789jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027781jsd" : { + "type" : "CodePackage", + "id" : "acm027781jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027782jsd" ] + }, + "acm027782jsd" : { + "type" : "CodePackage", + "id" : "acm027782jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027783jsd" ] + }, + "acm027783jsd" : { + "type" : "CodePackage", + "id" : "acm027783jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027784jsd" ] + }, + "acm027784jsd" : { + "type" : "CodePackage", + "id" : "acm027784jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027780jsd" ] + }, + "acm027785jsd" : { + "type" : "ControlElement", + "id" : "acm027785jsd", + "name" : "testCleanFileName" + }, + "acm027786jsd" : { + "type" : "ControlElement", + "id" : "acm027786jsd", + "name" : "testCleanDirectoryName" + }, + "acm027787jsd" : { + "type" : "ControlElement", + "id" : "acm027787jsd", + "name" : "testCleanDirectoryNameForWindows" + }, + "acm027788jsd" : { + "type" : "ControlElement", + "id" : "acm027788jsd", + "name" : "testCleanCurlyBracesAsWell" + }, + "acm027789jsd" : { + "type" : "ClassUnit", + "id" : "acm027789jsd", + "name" : "FileNameCleanerTest", + "compilationUnitId" : "acm027780jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027785jsd", "acm027786jsd", "acm027787jsd", "acm027788jsd" ] + }, + "acm027790jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027790jsd", + "name" : "UpdateFieldTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027824jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027791jsd" : { + "type" : "CodePackage", + "id" : "acm027791jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027792jsd" ] + }, + "acm027792jsd" : { + "type" : "CodePackage", + "id" : "acm027792jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027793jsd" ] + }, + "acm027793jsd" : { + "type" : "CodePackage", + "id" : "acm027793jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027794jsd" ] + }, + "acm027794jsd" : { + "type" : "CodePackage", + "id" : "acm027794jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027790jsd" ] + }, + "acm027795jsd" : { + "type" : "ControlElement", + "id" : "acm027795jsd", + "name" : "setUp" + }, + "acm027796jsd" : { + "type" : "ControlElement", + "id" : "acm027796jsd", + "name" : "testUpdateFieldWorksEmptyField" + }, + "acm027797jsd" : { + "type" : "ControlElement", + "id" : "acm027797jsd", + "name" : "testUpdateFieldWorksNonEmptyField" + }, + "acm027798jsd" : { + "type" : "ControlElement", + "id" : "acm027798jsd", + "name" : "testUpdateFieldHasChanged" + }, + "acm027799jsd" : { + "type" : "ControlElement", + "id" : "acm027799jsd", + "name" : "testUpdateFieldValidFieldChange" + }, + "acm027800jsd" : { + "type" : "ControlElement", + "id" : "acm027800jsd", + "name" : "testUpdateFieldCorrectFieldChangeContentsEmptyField" + }, + "acm027801jsd" : { + "type" : "ControlElement", + "id" : "acm027801jsd", + "name" : "testUpdateFieldCorrectFieldChangeContentsNonEmptyField" + }, + "acm027802jsd" : { + "type" : "ControlElement", + "id" : "acm027802jsd", + "name" : "testUpdateFieldSameValueNoChange" + }, + "acm027803jsd" : { + "type" : "ControlElement", + "id" : "acm027803jsd", + "name" : "testUpdateFieldSameValueNotChange" + }, + "acm027804jsd" : { + "type" : "ControlElement", + "id" : "acm027804jsd", + "name" : "testUpdateFieldSetToNullClears" + }, + "acm027805jsd" : { + "type" : "ControlElement", + "id" : "acm027805jsd", + "name" : "testUpdateFieldSetEmptyToNullClears" + }, + "acm027806jsd" : { + "type" : "ControlElement", + "id" : "acm027806jsd", + "name" : "testUpdateFieldSetToNullHasFieldChangeContents" + }, + "acm027807jsd" : { + "type" : "ControlElement", + "id" : "acm027807jsd", + "name" : "testUpdateFieldSetRmptyToNullHasNoFieldChangeContents" + }, + "acm027808jsd" : { + "type" : "ControlElement", + "id" : "acm027808jsd", + "name" : "testUpdateFieldSetToNullCorrectFieldChangeContents" + }, + "acm027809jsd" : { + "type" : "ControlElement", + "id" : "acm027809jsd", + "name" : "testUpdateFieldSameContentClears" + }, + "acm027810jsd" : { + "type" : "ControlElement", + "id" : "acm027810jsd", + "name" : "testUpdateFieldSameContentHasChanged" + }, + "acm027811jsd" : { + "type" : "ControlElement", + "id" : "acm027811jsd", + "name" : "testUpdateFieldSameContentHasFieldChange" + }, + "acm027812jsd" : { + "type" : "ControlElement", + "id" : "acm027812jsd", + "name" : "testUpdateFieldSameContentHasCorrectFieldChange" + }, + "acm027813jsd" : { + "type" : "ControlElement", + "id" : "acm027813jsd", + "name" : "testUpdateNonDisplayableFieldUpdates" + }, + "acm027814jsd" : { + "type" : "ControlElement", + "id" : "acm027814jsd", + "name" : "testUpdateNonDisplayableFieldHasNotChanged" + }, + "acm027815jsd" : { + "type" : "ControlElement", + "id" : "acm027815jsd", + "name" : "emptyOwnerFieldNowPresentAfterAutomaticSet" + }, + "acm027816jsd" : { + "type" : "ControlElement", + "id" : "acm027816jsd", + "name" : "ownerAssignedCorrectlyAfterAutomaticSet" + }, + "acm027817jsd" : { + "type" : "ControlElement", + "id" : "acm027817jsd", + "name" : "ownerIsNotResetAfterAutomaticSetIfOverwriteOwnerFalse" + }, + "acm027818jsd" : { + "type" : "ControlElement", + "id" : "acm027818jsd", + "name" : "emptyCreationdateFieldNowPresentAfterAutomaticSet" + }, + "acm027819jsd" : { + "type" : "ControlElement", + "id" : "acm027819jsd", + "name" : "creationdateAssignedCorrectlyAfterAutomaticSet" + }, + "acm027820jsd" : { + "type" : "ControlElement", + "id" : "acm027820jsd", + "name" : "ownerSetToDefaultValueForCollectionOfBibEntries" + }, + "acm027821jsd" : { + "type" : "ControlElement", + "id" : "acm027821jsd", + "name" : "ownerNotChangedForCollectionOfBibEntriesIfOptionsDisabled" + }, + "acm027822jsd" : { + "type" : "ControlElement", + "id" : "acm027822jsd", + "name" : "createOwnerPreference" + }, + "acm027823jsd" : { + "type" : "ControlElement", + "id" : "acm027823jsd", + "name" : "createTimestampPreference" + }, + "acm027824jsd" : { + "type" : "ClassUnit", + "id" : "acm027824jsd", + "name" : "UpdateFieldTest", + "compilationUnitId" : "acm027790jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm016624jsd", "acm016641jsd", "acm017884jsd", "acm018267jsd" ], + "content" : [ "acm027795jsd", "acm027796jsd", "acm027797jsd", "acm027798jsd", "acm027799jsd", "acm027800jsd", "acm027801jsd", "acm027802jsd", "acm027803jsd", "acm027804jsd", "acm027805jsd", "acm027806jsd", "acm027807jsd", "acm027808jsd", "acm027809jsd", "acm027810jsd", "acm027811jsd", "acm027812jsd", "acm027813jsd", "acm027814jsd", "acm027815jsd", "acm027816jsd", "acm027817jsd", "acm027818jsd", "acm027819jsd", "acm027820jsd", "acm027821jsd", "acm027822jsd", "acm027823jsd" ] + }, + "acm027825jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027825jsd", + "name" : "VersionTest", + "parentId" : "acm017268jsd", + "content" : [ "acm027872jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027826jsd" : { + "type" : "CodePackage", + "id" : "acm027826jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027827jsd" ] + }, + "acm027827jsd" : { + "type" : "CodePackage", + "id" : "acm027827jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027828jsd" ] + }, + "acm027828jsd" : { + "type" : "CodePackage", + "id" : "acm027828jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027829jsd" ] + }, + "acm027829jsd" : { + "type" : "CodePackage", + "id" : "acm027829jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027825jsd" ] + }, + "acm027830jsd" : { + "type" : "ControlElement", + "id" : "acm027830jsd", + "name" : "unknownVersionAsString" + }, + "acm027831jsd" : { + "type" : "ControlElement", + "id" : "acm027831jsd", + "name" : "unknownVersionAsNull" + }, + "acm027832jsd" : { + "type" : "ControlElement", + "id" : "acm027832jsd", + "name" : "unknownVersionAsEmptyString" + }, + "acm027833jsd" : { + "type" : "ControlElement", + "id" : "acm027833jsd", + "name" : "initVersionFromWrongStringResultsInUnknownVersion" + }, + "acm027834jsd" : { + "type" : "ControlElement", + "id" : "acm027834jsd", + "name" : "versionOneDigit" + }, + "acm027835jsd" : { + "type" : "ControlElement", + "id" : "acm027835jsd", + "name" : "versionTwoDigits" + }, + "acm027836jsd" : { + "type" : "ControlElement", + "id" : "acm027836jsd", + "name" : "versionThreeDigits" + }, + "acm027837jsd" : { + "type" : "ControlElement", + "id" : "acm027837jsd", + "name" : "versionOneDigitDevVersion" + }, + "acm027838jsd" : { + "type" : "ControlElement", + "id" : "acm027838jsd", + "name" : "versionTwoDigitDevVersion" + }, + "acm027839jsd" : { + "type" : "ControlElement", + "id" : "acm027839jsd", + "name" : "versionThreeDigitDevVersion" + }, + "acm027840jsd" : { + "type" : "ControlElement", + "id" : "acm027840jsd", + "name" : "validVersionIsNotNewerThanUnknownVersion" + }, + "acm027841jsd" : { + "type" : "ControlElement", + "id" : "acm027841jsd", + "name" : "unknownVersionIsNotNewerThanValidVersion" + }, + "acm027842jsd" : { + "type" : "ControlElement", + "id" : "acm027842jsd", + "name" : "versionNewerThan" + }, + "acm027843jsd" : { + "type" : "ControlElement", + "id" : "acm027843jsd", + "name" : "versionNotNewerThan" + }, + "acm027844jsd" : { + "type" : "ControlElement", + "id" : "acm027844jsd", + "name" : "versionNotNewerThanSameVersion" + }, + "acm027845jsd" : { + "type" : "ControlElement", + "id" : "acm027845jsd", + "name" : "versionNewerThanDevTwoDigits" + }, + "acm027846jsd" : { + "type" : "ControlElement", + "id" : "acm027846jsd", + "name" : "versionNewerThanDevVersion" + }, + "acm027847jsd" : { + "type" : "ControlElement", + "id" : "acm027847jsd", + "name" : "versionNewerThanDevThreeDigits" + }, + "acm027848jsd" : { + "type" : "ControlElement", + "id" : "acm027848jsd", + "name" : "versionNewerMinor" + }, + "acm027849jsd" : { + "type" : "ControlElement", + "id" : "acm027849jsd", + "name" : "versionNotNewerMinor" + }, + "acm027850jsd" : { + "type" : "ControlElement", + "id" : "acm027850jsd", + "name" : "versionNewerPatch" + }, + "acm027851jsd" : { + "type" : "ControlElement", + "id" : "acm027851jsd", + "name" : "versionNotNewerPatch" + }, + "acm027852jsd" : { + "type" : "ControlElement", + "id" : "acm027852jsd", + "name" : "versionNewerDevelopmentNumber" + }, + "acm027853jsd" : { + "type" : "ControlElement", + "id" : "acm027853jsd", + "name" : "versionNotNewerThanSameVersionWithBeta" + }, + "acm027854jsd" : { + "type" : "ControlElement", + "id" : "acm027854jsd", + "name" : "equalVersionsNotNewer" + }, + "acm027855jsd" : { + "type" : "ControlElement", + "id" : "acm027855jsd", + "name" : "changelogOfDevelopmentVersionWithDash" + }, + "acm027856jsd" : { + "type" : "ControlElement", + "id" : "acm027856jsd", + "name" : "changelogOfDevelopmentVersionWithoutDash" + }, + "acm027857jsd" : { + "type" : "ControlElement", + "id" : "acm027857jsd", + "name" : "changelogOfDevelopmentStageSubNumber" + }, + "acm027858jsd" : { + "type" : "ControlElement", + "id" : "acm027858jsd", + "name" : "changelogWithTwoDigits" + }, + "acm027859jsd" : { + "type" : "ControlElement", + "id" : "acm027859jsd", + "name" : "changelogWithThreeDigits" + }, + "acm027860jsd" : { + "type" : "ControlElement", + "id" : "acm027860jsd", + "name" : "versionNull" + }, + "acm027861jsd" : { + "type" : "ControlElement", + "id" : "acm027861jsd", + "name" : "versionEmpty" + }, + "acm027862jsd" : { + "type" : "ControlElement", + "id" : "acm027862jsd", + "name" : "betaNewerThanAlpha" + }, + "acm027863jsd" : { + "type" : "ControlElement", + "id" : "acm027863jsd", + "name" : "stableNewerThanBeta" + }, + "acm027864jsd" : { + "type" : "ControlElement", + "id" : "acm027864jsd", + "name" : "alphaShouldBeUpdatedToBeta" + }, + "acm027865jsd" : { + "type" : "ControlElement", + "id" : "acm027865jsd", + "name" : "betaShouldBeUpdatedToStable" + }, + "acm027866jsd" : { + "type" : "ControlElement", + "id" : "acm027866jsd", + "name" : "stableShouldNotBeUpdatedToAlpha" + }, + "acm027867jsd" : { + "type" : "ControlElement", + "id" : "acm027867jsd", + "name" : "stableShouldNotBeUpdatedToBeta" + }, + "acm027868jsd" : { + "type" : "ControlElement", + "id" : "acm027868jsd", + "name" : "alphaShouldBeUpdatedToStables" + }, + "acm027869jsd" : { + "type" : "ControlElement", + "id" : "acm027869jsd", + "name" : "ciSuffixShouldBeRemoved" + }, + "acm027870jsd" : { + "type" : "ControlElement", + "id" : "acm027870jsd", + "name" : "ciSuffixShouldBeRemovedIfDateIsPresent" + }, + "acm027871jsd" : { + "type" : "ControlElement", + "id" : "acm027871jsd", + "name" : "getAllAvailableVersionsReturnsSomething" + }, + "acm027872jsd" : { + "type" : "ClassUnit", + "id" : "acm027872jsd", + "name" : "VersionTest", + "compilationUnitId" : "acm027825jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017404jsd" ], + "content" : [ "acm027830jsd", "acm027831jsd", "acm027832jsd", "acm027833jsd", "acm027834jsd", "acm027835jsd", "acm027836jsd", "acm027837jsd", "acm027838jsd", "acm027839jsd", "acm027840jsd", "acm027841jsd", "acm027842jsd", "acm027843jsd", "acm027844jsd", "acm027845jsd", "acm027846jsd", "acm027847jsd", "acm027848jsd", "acm027849jsd", "acm027850jsd", "acm027851jsd", "acm027852jsd", "acm027853jsd", "acm027854jsd", "acm027855jsd", "acm027856jsd", "acm027857jsd", "acm027858jsd", "acm027859jsd", "acm027860jsd", "acm027861jsd", "acm027862jsd", "acm027863jsd", "acm027864jsd", "acm027865jsd", "acm027866jsd", "acm027867jsd", "acm027868jsd", "acm027869jsd", "acm027870jsd", "acm027871jsd" ] + }, + "acm027873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027873jsd", + "name" : "BackupFileUtilTest", + "parentId" : "acm017427jsd", + "content" : [ "acm027882jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027874jsd" : { + "type" : "CodePackage", + "id" : "acm027874jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027875jsd" ] + }, + "acm027875jsd" : { + "type" : "CodePackage", + "id" : "acm027875jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027876jsd" ] + }, + "acm027876jsd" : { + "type" : "CodePackage", + "id" : "acm027876jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027877jsd" ] + }, + "acm027877jsd" : { + "type" : "CodePackage", + "id" : "acm027877jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027878jsd" ] + }, + "acm027878jsd" : { + "type" : "CodePackage", + "id" : "acm027878jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027873jsd" ] + }, + "acm027879jsd" : { + "type" : "ControlElement", + "id" : "acm027879jsd", + "name" : "uniqueFilePrefix" + }, + "acm027880jsd" : { + "type" : "ControlElement", + "id" : "acm027880jsd", + "name" : "getPathOfBackupFileAndCreateDirectoryReturnsAppDirectoryInCaseOfNoError" + }, + "acm027881jsd" : { + "type" : "ControlElement", + "id" : "acm027881jsd", + "name" : "getPathOfBackupFileAndCreateDirectoryReturnsSameDirectoryInCaseOfException" + }, + "acm027882jsd" : { + "type" : "ClassUnit", + "id" : "acm027882jsd", + "name" : "BackupFileUtilTest", + "compilationUnitId" : "acm027873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm027879jsd", "acm027880jsd", "acm027881jsd" ] + }, + "acm027883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027883jsd", + "name" : "CitationKeyBasedFileFinderTest", + "parentId" : "acm017427jsd", + "content" : [ "acm027896jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027884jsd" : { + "type" : "CodePackage", + "id" : "acm027884jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027885jsd" ] + }, + "acm027885jsd" : { + "type" : "CodePackage", + "id" : "acm027885jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027886jsd" ] + }, + "acm027886jsd" : { + "type" : "CodePackage", + "id" : "acm027886jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027887jsd" ] + }, + "acm027887jsd" : { + "type" : "CodePackage", + "id" : "acm027887jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027888jsd" ] + }, + "acm027888jsd" : { + "type" : "CodePackage", + "id" : "acm027888jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027883jsd" ] + }, + "acm027889jsd" : { + "type" : "ControlElement", + "id" : "acm027889jsd", + "name" : "setUp" + }, + "acm027890jsd" : { + "type" : "ControlElement", + "id" : "acm027890jsd", + "name" : "findAssociatedFilesInSubDirectories" + }, + "acm027891jsd" : { + "type" : "ControlElement", + "id" : "acm027891jsd", + "name" : "findAssociatedFilesIgnoresFilesStartingWithKeyButContinueWithText" + }, + "acm027892jsd" : { + "type" : "ControlElement", + "id" : "acm027892jsd", + "name" : "findAssociatedFilesFindsFilesStartingWithKey" + }, + "acm027893jsd" : { + "type" : "ControlElement", + "id" : "acm027893jsd", + "name" : "findAssociatedFilesInNonExistingDirectoryFindsNothing" + }, + "acm027894jsd" : { + "type" : "ControlElement", + "id" : "acm027894jsd", + "name" : "findAssociatedFilesWithUnsafeCharactersStartWithSearch" + }, + "acm027895jsd" : { + "type" : "ControlElement", + "id" : "acm027895jsd", + "name" : "findAssociatedFilesWithUnsafeCharactersExactSearch" + }, + "acm027896jsd" : { + "type" : "ClassUnit", + "id" : "acm027896jsd", + "name" : "CitationKeyBasedFileFinderTest", + "compilationUnitId" : "acm027883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017464jsd", "acm017483jsd", "acm018267jsd" ], + "content" : [ "acm027889jsd", "acm027890jsd", "acm027891jsd", "acm027892jsd", "acm027893jsd", "acm027894jsd", "acm027895jsd" ] + }, + "acm027897jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027897jsd", + "name" : "FileHistoryTest", + "parentId" : "acm017427jsd", + "content" : [ "acm027910jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027898jsd" : { + "type" : "CodePackage", + "id" : "acm027898jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027899jsd" ] + }, + "acm027899jsd" : { + "type" : "CodePackage", + "id" : "acm027899jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027900jsd" ] + }, + "acm027900jsd" : { + "type" : "CodePackage", + "id" : "acm027900jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027901jsd" ] + }, + "acm027901jsd" : { + "type" : "CodePackage", + "id" : "acm027901jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027902jsd" ] + }, + "acm027902jsd" : { + "type" : "CodePackage", + "id" : "acm027902jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027897jsd" ] + }, + "acm027903jsd" : { + "type" : "ControlElement", + "id" : "acm027903jsd", + "name" : "setUp" + }, + "acm027904jsd" : { + "type" : "ControlElement", + "id" : "acm027904jsd", + "name" : "newItemsAreAddedInRightOrder" + }, + "acm027905jsd" : { + "type" : "ControlElement", + "id" : "acm027905jsd", + "name" : "itemsAlreadyInListIsMovedToTop" + }, + "acm027906jsd" : { + "type" : "ControlElement", + "id" : "acm027906jsd", + "name" : "removeItemsLeavesOtherItemsInRightOrder" + }, + "acm027907jsd" : { + "type" : "ControlElement", + "id" : "acm027907jsd", + "name" : "sizeTest" + }, + "acm027908jsd" : { + "type" : "ControlElement", + "id" : "acm027908jsd", + "name" : "isEmptyTest" + }, + "acm027909jsd" : { + "type" : "ControlElement", + "id" : "acm027909jsd", + "name" : "getFileAtTest" + }, + "acm027910jsd" : { + "type" : "ClassUnit", + "id" : "acm027910jsd", + "name" : "FileHistoryTest", + "compilationUnitId" : "acm027897jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017507jsd" ], + "content" : [ "acm027903jsd", "acm027904jsd", "acm027905jsd", "acm027906jsd", "acm027907jsd", "acm027908jsd", "acm027909jsd" ] + }, + "acm027911jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027911jsd", + "name" : "FileNameUniquenessTest", + "parentId" : "acm017427jsd", + "content" : [ "acm027926jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027912jsd" : { + "type" : "CodePackage", + "id" : "acm027912jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027913jsd" ] + }, + "acm027913jsd" : { + "type" : "CodePackage", + "id" : "acm027913jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027914jsd" ] + }, + "acm027914jsd" : { + "type" : "CodePackage", + "id" : "acm027914jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027915jsd" ] + }, + "acm027915jsd" : { + "type" : "CodePackage", + "id" : "acm027915jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027916jsd" ] + }, + "acm027916jsd" : { + "type" : "CodePackage", + "id" : "acm027916jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027911jsd" ] + }, + "acm027917jsd" : { + "type" : "ControlElement", + "id" : "acm027917jsd", + "name" : "testGetNonOverWritingFileNameReturnsSameName" + }, + "acm027918jsd" : { + "type" : "ControlElement", + "id" : "acm027918jsd", + "name" : "testGetNonOverWritingFileNameReturnsUniqueNameOver1Conflict" + }, + "acm027919jsd" : { + "type" : "ControlElement", + "id" : "acm027919jsd", + "name" : "testGetNonOverWritingFileNameReturnsUniqueNameOverNConflicts" + }, + "acm027920jsd" : { + "type" : "ControlElement", + "id" : "acm027920jsd", + "name" : "testIsDuplicatedFileWithNoSimilarNames" + }, + "acm027921jsd" : { + "type" : "ControlElement", + "id" : "acm027921jsd", + "name" : "testIsDuplicatedFileWithOneSimilarNames" + }, + "acm027922jsd" : { + "type" : "ControlElement", + "id" : "acm027922jsd", + "name" : "testTaseDuplicateMarksReturnsOrignalFileName1" + }, + "acm027923jsd" : { + "type" : "ControlElement", + "id" : "acm027923jsd", + "name" : "testTaseDuplicateMarksReturnsOrignalFileName2" + }, + "acm027924jsd" : { + "type" : "ControlElement", + "id" : "acm027924jsd", + "name" : "testTaseDuplicateMarksReturnsSameName1" + }, + "acm027925jsd" : { + "type" : "ControlElement", + "id" : "acm027925jsd", + "name" : "testTaseDuplicateMarksReturnsSameName2" + }, + "acm027926jsd" : { + "type" : "ClassUnit", + "id" : "acm027926jsd", + "name" : "FileNameUniquenessTest", + "compilationUnitId" : "acm027911jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001640jsd" ], + "content" : [ "acm027917jsd", "acm027918jsd", "acm027919jsd", "acm027920jsd", "acm027921jsd", "acm027922jsd", "acm027923jsd", "acm027924jsd", "acm027925jsd" ] + }, + "acm027927jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027927jsd", + "name" : "FileUtilTest", + "parentId" : "acm017427jsd", + "content" : [ "acm027988jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027928jsd" : { + "type" : "CodePackage", + "id" : "acm027928jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027929jsd" ] + }, + "acm027929jsd" : { + "type" : "CodePackage", + "id" : "acm027929jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027930jsd" ] + }, + "acm027930jsd" : { + "type" : "CodePackage", + "id" : "acm027930jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027931jsd" ] + }, + "acm027931jsd" : { + "type" : "CodePackage", + "id" : "acm027931jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027932jsd" ] + }, + "acm027932jsd" : { + "type" : "CodePackage", + "id" : "acm027932jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027927jsd" ] + }, + "acm027933jsd" : { + "type" : "ControlElement", + "id" : "acm027933jsd", + "name" : "setUpViewModel" + }, + "acm027934jsd" : { + "type" : "ControlElement", + "id" : "acm027934jsd", + "name" : "extensionBakAddedCorrectly" + }, + "acm027935jsd" : { + "type" : "ControlElement", + "id" : "acm027935jsd", + "name" : "extensionBakAddedCorrectlyToAFileContainedInTmpDirectory" + }, + "acm027936jsd" : { + "type" : "ControlElement", + "id" : "acm027936jsd", + "name" : "testGetLinkedFileNameDefaultFullTitle" + }, + "acm027937jsd" : { + "type" : "ControlElement", + "id" : "acm027937jsd", + "name" : "testGetLinkedFileNameDefaultWithLowercaseTitle" + }, + "acm027938jsd" : { + "type" : "ControlElement", + "id" : "acm027938jsd", + "name" : "testGetLinkedFileNameBibTeXKey" + }, + "acm027939jsd" : { + "type" : "ControlElement", + "id" : "acm027939jsd", + "name" : "testGetLinkedFileNameNoPattern" + }, + "acm027940jsd" : { + "type" : "ControlElement", + "id" : "acm027940jsd", + "name" : "testGetDefaultFileNameNoPatternNoBibTeXKey" + }, + "acm027941jsd" : { + "type" : "ControlElement", + "id" : "acm027941jsd", + "name" : "testGetLinkedFileNameGetKeyIfEmptyField" + }, + "acm027942jsd" : { + "type" : "ControlElement", + "id" : "acm027942jsd", + "name" : "testGetLinkedFileNameGetDefaultIfEmptyFieldNoKey" + }, + "acm027943jsd" : { + "type" : "ControlElement", + "id" : "acm027943jsd", + "name" : "testGetLinkedFileNameByYearAuthorFirstpage" + }, + "acm027944jsd" : { + "type" : "ControlElement", + "id" : "acm027944jsd", + "name" : "testGetFileExtensionSimpleFile" + }, + "acm027945jsd" : { + "type" : "ControlElement", + "id" : "acm027945jsd", + "name" : "testGetFileExtensionMultipleDotsFile" + }, + "acm027946jsd" : { + "type" : "ControlElement", + "id" : "acm027946jsd", + "name" : "testGetFileExtensionNoExtensionFile" + }, + "acm027947jsd" : { + "type" : "ControlElement", + "id" : "acm027947jsd", + "name" : "testGetFileExtensionNoExtension2File" + }, + "acm027948jsd" : { + "type" : "ControlElement", + "id" : "acm027948jsd", + "name" : "getFileExtensionWithSimpleString" + }, + "acm027949jsd" : { + "type" : "ControlElement", + "id" : "acm027949jsd", + "name" : "getFileExtensionTrimsAndReturnsInLowercase" + }, + "acm027950jsd" : { + "type" : "ControlElement", + "id" : "acm027950jsd", + "name" : "getFileExtensionWithMultipleDotsString" + }, + "acm027951jsd" : { + "type" : "ControlElement", + "id" : "acm027951jsd", + "name" : "getFileExtensionWithNoDotReturnsEmptyExtension" + }, + "acm027952jsd" : { + "type" : "ControlElement", + "id" : "acm027952jsd", + "name" : "getFileExtensionWithDotAtStartReturnsEmptyExtension" + }, + "acm027953jsd" : { + "type" : "ControlElement", + "id" : "acm027953jsd", + "name" : "getFileNameWithSimpleString" + }, + "acm027954jsd" : { + "type" : "ControlElement", + "id" : "acm027954jsd", + "name" : "getFileNameWithMultipleDotsString" + }, + "acm027955jsd" : { + "type" : "ControlElement", + "id" : "acm027955jsd", + "name" : "uniquePathSubstrings" + }, + "acm027956jsd" : { + "type" : "ControlElement", + "id" : "acm027956jsd", + "name" : "testUniquePathFragmentWithSameSuffix" + }, + "acm027957jsd" : { + "type" : "ControlElement", + "id" : "acm027957jsd", + "name" : "testUniquePathFragmentWithSameSuffixAndLongerName" + }, + "acm027958jsd" : { + "type" : "ControlElement", + "id" : "acm027958jsd", + "name" : "testCopyFileFromEmptySourcePathToEmptyDestinationPathWithOverrideExistFile" + }, + "acm027959jsd" : { + "type" : "ControlElement", + "id" : "acm027959jsd", + "name" : "testCopyFileFromEmptySourcePathToEmptyDestinationPathWithoutOverrideExistFile" + }, + "acm027960jsd" : { + "type" : "ControlElement", + "id" : "acm027960jsd", + "name" : "testCopyFileFromEmptySourcePathToExistDestinationPathWithOverrideExistFile" + }, + "acm027961jsd" : { + "type" : "ControlElement", + "id" : "acm027961jsd", + "name" : "testCopyFileFromEmptySourcePathToExistDestinationPathWithoutOverrideExistFile" + }, + "acm027962jsd" : { + "type" : "ControlElement", + "id" : "acm027962jsd", + "name" : "testCopyFileFromExistSourcePathToExistDestinationPathWithOverrideExistFile" + }, + "acm027963jsd" : { + "type" : "ControlElement", + "id" : "acm027963jsd", + "name" : "testCopyFileFromExistSourcePathToExistDestinationPathWithoutOverrideExistFile" + }, + "acm027964jsd" : { + "type" : "ControlElement", + "id" : "acm027964jsd", + "name" : "testCopyFileFromExistSourcePathToOtherExistDestinationPathWithOverrideExistFile" + }, + "acm027965jsd" : { + "type" : "ControlElement", + "id" : "acm027965jsd", + "name" : "testCopyFileFromExistSourcePathToOtherExistDestinationPathWithoutOverrideExistFile" + }, + "acm027966jsd" : { + "type" : "ControlElement", + "id" : "acm027966jsd", + "name" : "testCopyFileSuccessfulWithOverrideExistFile" + }, + "acm027967jsd" : { + "type" : "ControlElement", + "id" : "acm027967jsd", + "name" : "testCopyFileSuccessfulWithoutOverrideExistFile" + }, + "acm027968jsd" : { + "type" : "ControlElement", + "id" : "acm027968jsd", + "name" : "validFilenameShouldNotAlterValidFilename" + }, + "acm027969jsd" : { + "type" : "ControlElement", + "id" : "acm027969jsd", + "name" : "validFilenameWithoutExtension" + }, + "acm027970jsd" : { + "type" : "ControlElement", + "id" : "acm027970jsd", + "name" : "validFilenameShouldBeMaximum255Chars" + }, + "acm027971jsd" : { + "type" : "ControlElement", + "id" : "acm027971jsd", + "name" : "invalidFilenameWithoutExtension" + }, + "acm027972jsd" : { + "type" : "ControlElement", + "id" : "acm027972jsd", + "name" : "testGetLinkedDirNameDefaultFullTitle" + }, + "acm027973jsd" : { + "type" : "ControlElement", + "id" : "acm027973jsd", + "name" : "testGetLinkedDirNamePatternEmpty" + }, + "acm027974jsd" : { + "type" : "ControlElement", + "id" : "acm027974jsd", + "name" : "testIsBibFile" + }, + "acm027975jsd" : { + "type" : "ControlElement", + "id" : "acm027975jsd", + "name" : "testIsNotBibFile" + }, + "acm027976jsd" : { + "type" : "ControlElement", + "id" : "acm027976jsd", + "name" : "testFindinPath" + }, + "acm027977jsd" : { + "type" : "ControlElement", + "id" : "acm027977jsd", + "name" : "testFindInListOfPath" + }, + "acm027978jsd" : { + "type" : "ControlElement", + "id" : "acm027978jsd", + "name" : "extractFileExtension" + }, + "acm027979jsd" : { + "type" : "ControlElement", + "id" : "acm027979jsd", + "name" : "fileExtensionFromUrl" + }, + "acm027980jsd" : { + "type" : "ControlElement", + "id" : "acm027980jsd", + "name" : "testFileNameEmpty" + }, + "acm027981jsd" : { + "type" : "ControlElement", + "id" : "acm027981jsd", + "name" : "testFileNameIllegal" + }, + "acm027982jsd" : { + "type" : "ControlElement", + "id" : "acm027982jsd", + "name" : "testFindsFileInDirectory" + }, + "acm027983jsd" : { + "type" : "ControlElement", + "id" : "acm027983jsd", + "name" : "testFindsFileStartingWithTheSameDirectory" + }, + "acm027984jsd" : { + "type" : "ControlElement", + "id" : "acm027984jsd", + "name" : "testDoesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory" + }, + "acm027985jsd" : { + "type" : "ControlElement", + "id" : "acm027985jsd", + "name" : "testCTemp" + }, + "acm027986jsd" : { + "type" : "ControlElement", + "id" : "acm027986jsd", + "name" : "legalPaths" + }, + "acm027987jsd" : { + "type" : "ControlElement", + "id" : "acm027987jsd", + "name" : "illegalPaths" + }, + "acm027988jsd" : { + "type" : "ClassUnit", + "id" : "acm027988jsd", + "name" : "FileUtilTest", + "compilationUnitId" : "acm027927jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm027988jsd" ], + "content" : [ "acm027933jsd", "acm027934jsd", "acm027935jsd", "acm027936jsd", "acm027937jsd", "acm027938jsd", "acm027939jsd", "acm027940jsd", "acm027941jsd", "acm027942jsd", "acm027943jsd", "acm027944jsd", "acm027945jsd", "acm027946jsd", "acm027947jsd", "acm027948jsd", "acm027949jsd", "acm027950jsd", "acm027951jsd", "acm027952jsd", "acm027953jsd", "acm027954jsd", "acm027955jsd", "acm027956jsd", "acm027957jsd", "acm027958jsd", "acm027959jsd", "acm027960jsd", "acm027961jsd", "acm027962jsd", "acm027963jsd", "acm027964jsd", "acm027965jsd", "acm027966jsd", "acm027967jsd", "acm027968jsd", "acm027969jsd", "acm027970jsd", "acm027971jsd", "acm027972jsd", "acm027973jsd", "acm027974jsd", "acm027975jsd", "acm027976jsd", "acm027977jsd", "acm027978jsd", "acm027979jsd", "acm027980jsd", "acm027981jsd", "acm027982jsd", "acm027983jsd", "acm027984jsd", "acm027985jsd", "acm027986jsd", "acm027987jsd" ] + }, + "acm027989jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm027989jsd", + "name" : "RegExpBasedFileFinderTest", + "parentId" : "acm017427jsd", + "content" : [ "acm028004jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "io" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm027990jsd" : { + "type" : "CodePackage", + "id" : "acm027990jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm027991jsd" ] + }, + "acm027991jsd" : { + "type" : "CodePackage", + "id" : "acm027991jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm027992jsd" ] + }, + "acm027992jsd" : { + "type" : "CodePackage", + "id" : "acm027992jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm027993jsd" ] + }, + "acm027993jsd" : { + "type" : "CodePackage", + "id" : "acm027993jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm027994jsd" ] + }, + "acm027994jsd" : { + "type" : "CodePackage", + "id" : "acm027994jsd", + "name" : "io", + "parentId" : null, + "content" : [ "acm027989jsd" ] + }, + "acm027995jsd" : { + "type" : "ControlElement", + "id" : "acm027995jsd", + "name" : "setUp" + }, + "acm027996jsd" : { + "type" : "ControlElement", + "id" : "acm027996jsd", + "name" : "testFindFiles" + }, + "acm027997jsd" : { + "type" : "ControlElement", + "id" : "acm027997jsd", + "name" : "testYearAuthFirstPageFindFiles" + }, + "acm027998jsd" : { + "type" : "ControlElement", + "id" : "acm027998jsd", + "name" : "findAssociatedFilesFindFileContainingBracketsFromBracketedExpression" + }, + "acm027999jsd" : { + "type" : "ControlElement", + "id" : "acm027999jsd", + "name" : "findAssociatedFilesFindCleanedFileFromBracketedExpression" + }, + "acm028000jsd" : { + "type" : "ControlElement", + "id" : "acm028000jsd", + "name" : "findAssociatedFilesFindFileContainingParenthesizesFromBracketedExpression" + }, + "acm028001jsd" : { + "type" : "ControlElement", + "id" : "acm028001jsd", + "name" : "testAuthorWithDiacritics" + }, + "acm028002jsd" : { + "type" : "ControlElement", + "id" : "acm028002jsd", + "name" : "testFindFileInSubdirectory" + }, + "acm028003jsd" : { + "type" : "ControlElement", + "id" : "acm028003jsd", + "name" : "testFindFileNonRecursive" + }, + "acm028004jsd" : { + "type" : "ClassUnit", + "id" : "acm028004jsd", + "name" : "RegExpBasedFileFinderTest", + "compilationUnitId" : "acm027989jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017574jsd", "acm018267jsd" ], + "content" : [ "acm027995jsd", "acm027996jsd", "acm027997jsd", "acm027998jsd", "acm027999jsd", "acm028000jsd", "acm028001jsd", "acm028002jsd", "acm028003jsd" ] + }, + "acm028005jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028005jsd", + "name" : "StringLengthComparatorTest", + "parentId" : "acm017601jsd", + "content" : [ "acm028014jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028006jsd" : { + "type" : "CodePackage", + "id" : "acm028006jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028007jsd" ] + }, + "acm028007jsd" : { + "type" : "CodePackage", + "id" : "acm028007jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028008jsd" ] + }, + "acm028008jsd" : { + "type" : "CodePackage", + "id" : "acm028008jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm028009jsd" ] + }, + "acm028009jsd" : { + "type" : "CodePackage", + "id" : "acm028009jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm028010jsd" ] + }, + "acm028010jsd" : { + "type" : "CodePackage", + "id" : "acm028010jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm028005jsd" ] + }, + "acm028011jsd" : { + "type" : "ControlElement", + "id" : "acm028011jsd", + "name" : "setUp" + }, + "acm028012jsd" : { + "type" : "ControlElement", + "id" : "acm028012jsd", + "name" : "compareStringLength" + }, + "acm028013jsd" : { + "type" : "ControlElement", + "id" : "acm028013jsd", + "name" : "tests" + }, + "acm028014jsd" : { + "type" : "ClassUnit", + "id" : "acm028014jsd", + "name" : "StringLengthComparatorTest", + "compilationUnitId" : "acm028005jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017633jsd" ], + "content" : [ "acm028011jsd", "acm028012jsd", "acm028013jsd" ] + }, + "acm028015jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028015jsd", + "name" : "StringManipulatorTest", + "parentId" : "acm017601jsd", + "content" : [ "acm028036jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028016jsd" : { + "type" : "CodePackage", + "id" : "acm028016jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028017jsd" ] + }, + "acm028017jsd" : { + "type" : "CodePackage", + "id" : "acm028017jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028018jsd" ] + }, + "acm028018jsd" : { + "type" : "CodePackage", + "id" : "acm028018jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm028019jsd" ] + }, + "acm028019jsd" : { + "type" : "CodePackage", + "id" : "acm028019jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm028020jsd" ] + }, + "acm028020jsd" : { + "type" : "CodePackage", + "id" : "acm028020jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm028015jsd" ] + }, + "acm028021jsd" : { + "type" : "ControlElement", + "id" : "acm028021jsd", + "name" : "testCapitalizePreservesNewlines" + }, + "acm028022jsd" : { + "type" : "ControlElement", + "id" : "acm028022jsd", + "name" : "testUppercasePreservesSpace" + }, + "acm028023jsd" : { + "type" : "ControlElement", + "id" : "acm028023jsd", + "name" : "testUppercasePreservesNewlines" + }, + "acm028024jsd" : { + "type" : "ControlElement", + "id" : "acm028024jsd", + "name" : "testUppercasePreservesTab" + }, + "acm028025jsd" : { + "type" : "ControlElement", + "id" : "acm028025jsd", + "name" : "testUppercasePreservesDoubleSpace" + }, + "acm028026jsd" : { + "type" : "ControlElement", + "id" : "acm028026jsd", + "name" : "testUppercaseIgnoresTrailingWhitespace" + }, + "acm028027jsd" : { + "type" : "ControlElement", + "id" : "acm028027jsd", + "name" : "testKillWordTrimsTrailingWhitespace" + }, + "acm028028jsd" : { + "type" : "ControlElement", + "id" : "acm028028jsd", + "name" : "testBackwardsKillWordTrimsPreceedingWhitespace" + }, + "acm028029jsd" : { + "type" : "ControlElement", + "id" : "acm028029jsd", + "name" : "testUppercasePreservesMixedSpaceNewLineTab" + }, + "acm028030jsd" : { + "type" : "ControlElement", + "id" : "acm028030jsd", + "name" : "testLowercaseEditsTheNextWord" + }, + "acm028031jsd" : { + "type" : "ControlElement", + "id" : "acm028031jsd", + "name" : "testKillWordRemovesFromPositionUpToNextWord" + }, + "acm028032jsd" : { + "type" : "ControlElement", + "id" : "acm028032jsd", + "name" : "testKillWordRemovesNextWordIfPositionIsInSpace" + }, + "acm028033jsd" : { + "type" : "ControlElement", + "id" : "acm028033jsd", + "name" : "testKillPreviousWord" + }, + "acm028034jsd" : { + "type" : "ControlElement", + "id" : "acm028034jsd", + "name" : "testGetNextWordBoundary" + }, + "acm028035jsd" : { + "type" : "ControlElement", + "id" : "acm028035jsd", + "name" : "wordBoundaryTestData" + }, + "acm028036jsd" : { + "type" : "ClassUnit", + "id" : "acm028036jsd", + "name" : "StringManipulatorTest", + "compilationUnitId" : "acm028015jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017652jsd", "acm020735jsd" ], + "content" : [ "acm028021jsd", "acm028022jsd", "acm028023jsd", "acm028024jsd", "acm028025jsd", "acm028026jsd", "acm028027jsd", "acm028028jsd", "acm028029jsd", "acm028030jsd", "acm028031jsd", "acm028032jsd", "acm028033jsd", "acm028034jsd", "acm028035jsd" ] + }, + "acm028037jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028037jsd", + "name" : "StringSimilarityTest", + "parentId" : "acm017601jsd", + "content" : [ "acm028044jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "util", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028038jsd" : { + "type" : "CodePackage", + "id" : "acm028038jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028039jsd" ] + }, + "acm028039jsd" : { + "type" : "CodePackage", + "id" : "acm028039jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028040jsd" ] + }, + "acm028040jsd" : { + "type" : "CodePackage", + "id" : "acm028040jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm028041jsd" ] + }, + "acm028041jsd" : { + "type" : "CodePackage", + "id" : "acm028041jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm028042jsd" ] + }, + "acm028042jsd" : { + "type" : "CodePackage", + "id" : "acm028042jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm028037jsd" ] + }, + "acm028043jsd" : { + "type" : "ControlElement", + "id" : "acm028043jsd", + "name" : "testStringSimilarity" + }, + "acm028044jsd" : { + "type" : "ClassUnit", + "id" : "acm028044jsd", + "name" : "StringSimilarityTest", + "compilationUnitId" : "acm028037jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017661jsd" ], + "content" : [ "acm028043jsd" ] + }, + "acm028045jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028045jsd", + "name" : "XmpUtilReaderTest", + "parentId" : "acm017682jsd", + "content" : [ "acm028057jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028046jsd" : { + "type" : "CodePackage", + "id" : "acm028046jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028047jsd" ] + }, + "acm028047jsd" : { + "type" : "CodePackage", + "id" : "acm028047jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028048jsd" ] + }, + "acm028048jsd" : { + "type" : "CodePackage", + "id" : "acm028048jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm028049jsd" ] + }, + "acm028049jsd" : { + "type" : "CodePackage", + "id" : "acm028049jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm028045jsd" ] + }, + "acm028050jsd" : { + "type" : "ControlElement", + "id" : "acm028050jsd", + "name" : "setUp" + }, + "acm028051jsd" : { + "type" : "ControlElement", + "id" : "acm028051jsd", + "name" : "testReadArticleDublinCoreReadRawXmp" + }, + "acm028052jsd" : { + "type" : "ControlElement", + "id" : "acm028052jsd", + "name" : "testReadArticleDublinCoreReadXmp" + }, + "acm028053jsd" : { + "type" : "ControlElement", + "id" : "acm028053jsd", + "name" : "testReadArticleDublinCoreReadXmpPartialDate" + }, + "acm028054jsd" : { + "type" : "ControlElement", + "id" : "acm028054jsd", + "name" : "testReadEmtpyMetadata" + }, + "acm028055jsd" : { + "type" : "ControlElement", + "id" : "acm028055jsd", + "name" : "testReadPDMetadata" + }, + "acm028056jsd" : { + "type" : "ControlElement", + "id" : "acm028056jsd", + "name" : "testReadNoDescriptionMetadata" + }, + "acm028057jsd" : { + "type" : "ClassUnit", + "id" : "acm028057jsd", + "name" : "XmpUtilReaderTest", + "compilationUnitId" : "acm028045jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm013709jsd", "acm017727jsd", "acm017745jsd", "acm017756jsd", "acm017765jsd", "acm018267jsd", "acm020676jsd" ], + "content" : [ "acm028050jsd", "acm028051jsd", "acm028052jsd", "acm028053jsd", "acm028054jsd", "acm028055jsd", "acm028056jsd" ] + }, + "acm028058jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028058jsd", + "name" : "XmpUtilWriterTest", + "parentId" : "acm017682jsd", + "content" : [ "acm028075jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "logic", "xmp" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028059jsd" : { + "type" : "CodePackage", + "id" : "acm028059jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028060jsd" ] + }, + "acm028060jsd" : { + "type" : "CodePackage", + "id" : "acm028060jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028061jsd" ] + }, + "acm028061jsd" : { + "type" : "CodePackage", + "id" : "acm028061jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm028062jsd" ] + }, + "acm028062jsd" : { + "type" : "CodePackage", + "id" : "acm028062jsd", + "name" : "xmp", + "parentId" : null, + "content" : [ "acm028058jsd" ] + }, + "acm028063jsd" : { + "type" : "ControlElement", + "id" : "acm028063jsd", + "name" : "setUp" + }, + "acm028064jsd" : { + "type" : "ControlElement", + "id" : "acm028064jsd", + "name" : "singleEntryWorks" + }, + "acm028065jsd" : { + "type" : "ControlElement", + "id" : "acm028065jsd", + "name" : "olly2018Works" + }, + "acm028066jsd" : { + "type" : "ControlElement", + "id" : "acm028066jsd", + "name" : "toral2006Works" + }, + "acm028067jsd" : { + "type" : "ControlElement", + "id" : "acm028067jsd", + "name" : "vapnik2000Works" + }, + "acm028068jsd" : { + "type" : "ControlElement", + "id" : "acm028068jsd", + "name" : "testWriteTwoBibEntries" + }, + "acm028069jsd" : { + "type" : "ControlElement", + "id" : "acm028069jsd", + "name" : "testWriteThreeBibEntries" + }, + "acm028070jsd" : { + "type" : "ControlElement", + "id" : "acm028070jsd", + "name" : "proctingBracesAreRemovedAtTitle" + }, + "acm028071jsd" : { + "type" : "ControlElement", + "id" : "acm028071jsd", + "name" : "proctingBracesAreKeptAtPages" + }, + "acm028072jsd" : { + "type" : "ControlElement", + "id" : "acm028072jsd", + "name" : "doubleDashAtPageNumberIsKept" + }, + "acm028073jsd" : { + "type" : "ControlElement", + "id" : "acm028073jsd", + "name" : "singleEntry" + }, + "acm028074jsd" : { + "type" : "ControlElement", + "id" : "acm028074jsd", + "name" : "createDefaultFile" + }, + "acm028075jsd" : { + "type" : "ClassUnit", + "id" : "acm028075jsd", + "name" : "XmpUtilWriterTest", + "compilationUnitId" : "acm028058jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017745jsd", "acm017756jsd", "acm017781jsd", "acm018267jsd", "acm018401jsd", "acm018813jsd" ], + "content" : [ "acm028063jsd", "acm028064jsd", "acm028065jsd", "acm028066jsd", "acm028067jsd", "acm028068jsd", "acm028069jsd", "acm028070jsd", "acm028071jsd", "acm028072jsd", "acm028073jsd", "acm028074jsd" ] + }, + "acm028076jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028076jsd", + "name" : "ConvertLegacyExplicitGroupsTest", + "parentId" : "acm017785jsd", + "content" : [ "acm028085jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028077jsd" : { + "type" : "CodePackage", + "id" : "acm028077jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028078jsd" ] + }, + "acm028078jsd" : { + "type" : "CodePackage", + "id" : "acm028078jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028079jsd" ] + }, + "acm028079jsd" : { + "type" : "CodePackage", + "id" : "acm028079jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm028076jsd" ] + }, + "acm028080jsd" : { + "type" : "ControlElement", + "id" : "acm028080jsd", + "name" : "setUp" + }, + "acm028081jsd" : { + "type" : "ControlElement", + "id" : "acm028081jsd", + "name" : "performActionWritesGroupMembershipInEntry" + }, + "acm028082jsd" : { + "type" : "ControlElement", + "id" : "acm028082jsd", + "name" : "performActionClearsLegacyKeys" + }, + "acm028083jsd" : { + "type" : "ControlElement", + "id" : "acm028083jsd", + "name" : "performActionWritesGroupMembershipInEntryForComplexGroupTree" + }, + "acm028084jsd" : { + "type" : "ControlElement", + "id" : "acm028084jsd", + "name" : "generateParserResult" + }, + "acm028085jsd" : { + "type" : "ClassUnit", + "id" : "acm028085jsd", + "name" : "ConvertLegacyExplicitGroupsTest", + "compilationUnitId" : "acm028076jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017788jsd", "acm017824jsd", "acm018267jsd", "acm019119jsd", "acm019171jsd", "acm019221jsd" ], + "content" : [ "acm028080jsd", "acm028081jsd", "acm028082jsd", "acm028083jsd", "acm028084jsd" ] + }, + "acm028086jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028086jsd", + "name" : "ConvertMarkingToGroupsTest", + "parentId" : "acm017785jsd", + "content" : [ "acm028091jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028087jsd" : { + "type" : "CodePackage", + "id" : "acm028087jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028088jsd" ] + }, + "acm028088jsd" : { + "type" : "CodePackage", + "id" : "acm028088jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028089jsd" ] + }, + "acm028089jsd" : { + "type" : "CodePackage", + "id" : "acm028089jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm028086jsd" ] + }, + "acm028090jsd" : { + "type" : "ControlElement", + "id" : "acm028090jsd", + "name" : "performMigrationForSingleEntry" + }, + "acm028091jsd" : { + "type" : "ClassUnit", + "id" : "acm028091jsd", + "name" : "ConvertMarkingToGroupsTest", + "compilationUnitId" : "acm028086jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017796jsd", "acm018267jsd", "acm019171jsd", "acm019221jsd" ], + "content" : [ "acm028090jsd" ] + }, + "acm028092jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028092jsd", + "name" : "MergeReviewIntoCommentActionMigrationTest", + "parentId" : "acm017785jsd", + "content" : [ "acm028103jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028093jsd" : { + "type" : "CodePackage", + "id" : "acm028093jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028094jsd" ] + }, + "acm028094jsd" : { + "type" : "CodePackage", + "id" : "acm028094jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028095jsd" ] + }, + "acm028095jsd" : { + "type" : "CodePackage", + "id" : "acm028095jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm028092jsd" ] + }, + "acm028096jsd" : { + "type" : "ControlElement", + "id" : "acm028096jsd", + "name" : "setUp" + }, + "acm028097jsd" : { + "type" : "ControlElement", + "id" : "acm028097jsd", + "name" : "noFields" + }, + "acm028098jsd" : { + "type" : "ControlElement", + "id" : "acm028098jsd", + "name" : "reviewField" + }, + "acm028099jsd" : { + "type" : "ControlElement", + "id" : "acm028099jsd", + "name" : "commentField" + }, + "acm028100jsd" : { + "type" : "ControlElement", + "id" : "acm028100jsd", + "name" : "multiLineReviewField" + }, + "acm028101jsd" : { + "type" : "ControlElement", + "id" : "acm028101jsd", + "name" : "reviewAndCommentField" + }, + "acm028102jsd" : { + "type" : "ControlElement", + "id" : "acm028102jsd", + "name" : "createMinimalBibEntry" + }, + "acm028103jsd" : { + "type" : "ClassUnit", + "id" : "acm028103jsd", + "name" : "MergeReviewIntoCommentActionMigrationTest", + "compilationUnitId" : "acm028092jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017818jsd", "acm018267jsd" ], + "content" : [ "acm028096jsd", "acm028097jsd", "acm028098jsd", "acm028099jsd", "acm028100jsd", "acm028101jsd", "acm028102jsd" ] + }, + "acm028104jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028104jsd", + "name" : "PreferencesMigrationsTest", + "parentId" : "acm017785jsd", + "content" : [ "acm028120jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028105jsd" : { + "type" : "CodePackage", + "id" : "acm028105jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028106jsd" ] + }, + "acm028106jsd" : { + "type" : "CodePackage", + "id" : "acm028106jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028107jsd" ] + }, + "acm028107jsd" : { + "type" : "CodePackage", + "id" : "acm028107jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm028104jsd" ] + }, + "acm028108jsd" : { + "type" : "ControlElement", + "id" : "acm028108jsd", + "name" : "setUp" + }, + "acm028109jsd" : { + "type" : "ControlElement", + "id" : "acm028109jsd", + "name" : "testOldStyleBibtexkeyPattern0" + }, + "acm028110jsd" : { + "type" : "ControlElement", + "id" : "acm028110jsd", + "name" : "testOldStyleBibtexkeyPattern1" + }, + "acm028111jsd" : { + "type" : "ControlElement", + "id" : "acm028111jsd", + "name" : "testArbitraryBibtexkeyPattern" + }, + "acm028112jsd" : { + "type" : "ControlElement", + "id" : "acm028112jsd", + "name" : "testPreviewStyle" + }, + "acm028113jsd" : { + "type" : "ControlElement", + "id" : "acm028113jsd", + "name" : "upgradePreviewStyleAllowMarkupDefault" + }, + "acm028114jsd" : { + "type" : "ControlElement", + "id" : "acm028114jsd", + "name" : "upgradePreviewStyleAllowMarkupCustomized" + }, + "acm028115jsd" : { + "type" : "ControlElement", + "id" : "acm028115jsd", + "name" : "testUpgradeColumnPreferencesAlreadyMigrated" + }, + "acm028116jsd" : { + "type" : "ControlElement", + "id" : "acm028116jsd", + "name" : "testUpgradeColumnPreferencesFromWithoutTypes" + }, + "acm028117jsd" : { + "type" : "ControlElement", + "id" : "acm028117jsd", + "name" : "testChangeColumnPreferencesVariableNamesFor51" + }, + "acm028118jsd" : { + "type" : "ControlElement", + "id" : "acm028118jsd", + "name" : "testChangeColumnPreferencesVariableNamesBackwardsCompatibility" + }, + "acm028119jsd" : { + "type" : "ControlElement", + "id" : "acm028119jsd", + "name" : "testRestoreColumnVariablesForBackwardCompatibility" + }, + "acm028120jsd" : { + "type" : "ClassUnit", + "id" : "acm028120jsd", + "name" : "PreferencesMigrationsTest", + "compilationUnitId" : "acm028104jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm021095jsd" ], + "content" : [ "acm028108jsd", "acm028109jsd", "acm028110jsd", "acm028111jsd", "acm028112jsd", "acm028113jsd", "acm028114jsd", "acm028115jsd", "acm028116jsd", "acm028117jsd", "acm028118jsd", "acm028119jsd" ] + }, + "acm028121jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028121jsd", + "name" : "SpecialFieldsToSeparateFieldsTest", + "parentId" : "acm017785jsd", + "content" : [ "acm028131jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "migrations" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028122jsd" : { + "type" : "CodePackage", + "id" : "acm028122jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028123jsd" ] + }, + "acm028123jsd" : { + "type" : "CodePackage", + "id" : "acm028123jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028124jsd" ] + }, + "acm028124jsd" : { + "type" : "CodePackage", + "id" : "acm028124jsd", + "name" : "migrations", + "parentId" : null, + "content" : [ "acm028121jsd" ] + }, + "acm028125jsd" : { + "type" : "ControlElement", + "id" : "acm028125jsd", + "name" : "migrateToCorrectField" + }, + "acm028126jsd" : { + "type" : "ControlElement", + "id" : "acm028126jsd", + "name" : "noKewordToMigrate" + }, + "acm028127jsd" : { + "type" : "ControlElement", + "id" : "acm028127jsd", + "name" : "noKeywordToMigrateButDuplicateKeywords" + }, + "acm028128jsd" : { + "type" : "ControlElement", + "id" : "acm028128jsd", + "name" : "migrateMultipleSpecialFields" + }, + "acm028129jsd" : { + "type" : "ControlElement", + "id" : "acm028129jsd", + "name" : "migrateSpecialFieldsMixedWithKeyword" + }, + "acm028130jsd" : { + "type" : "ControlElement", + "id" : "acm028130jsd", + "name" : "provideKeywordFieldPairs" + }, + "acm028131jsd" : { + "type" : "ClassUnit", + "id" : "acm028131jsd", + "name" : "SpecialFieldsToSeparateFieldsTest", + "compilationUnitId" : "acm028121jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm012556jsd", "acm017857jsd", "acm018267jsd", "acm018770jsd" ], + "content" : [ "acm028125jsd", "acm028126jsd", "acm028127jsd", "acm028128jsd", "acm028129jsd", "acm028130jsd" ] + }, + "acm028132jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028132jsd", + "name" : "FieldChangeTest", + "parentId" : "acm017861jsd", + "content" : [ "acm028146jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028133jsd" : { + "type" : "CodePackage", + "id" : "acm028133jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028134jsd" ] + }, + "acm028134jsd" : { + "type" : "CodePackage", + "id" : "acm028134jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028135jsd" ] + }, + "acm028135jsd" : { + "type" : "CodePackage", + "id" : "acm028135jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028132jsd" ] + }, + "acm028136jsd" : { + "type" : "ControlElement", + "id" : "acm028136jsd", + "name" : "fieldChangeOnNullEntryNotAllowed" + }, + "acm028137jsd" : { + "type" : "ControlElement", + "id" : "acm028137jsd", + "name" : "fieldChangeOnNullFieldNotAllowed" + }, + "acm028138jsd" : { + "type" : "ControlElement", + "id" : "acm028138jsd", + "name" : "blankFieldChangeNotAllowed" + }, + "acm028139jsd" : { + "type" : "ControlElement", + "id" : "acm028139jsd", + "name" : "equalFieldChange" + }, + "acm028140jsd" : { + "type" : "ControlElement", + "id" : "acm028140jsd", + "name" : "selfEqualsFieldchangeSameParameters" + }, + "acm028141jsd" : { + "type" : "ControlElement", + "id" : "acm028141jsd", + "name" : "selfEqualsFieldchangeDifferentOldValue" + }, + "acm028142jsd" : { + "type" : "ControlElement", + "id" : "acm028142jsd", + "name" : "selfEqualsFieldchangeDifferentEntry" + }, + "acm028143jsd" : { + "type" : "ControlElement", + "id" : "acm028143jsd", + "name" : "fieldChangeDoesNotEqualString" + }, + "acm028144jsd" : { + "type" : "ControlElement", + "id" : "acm028144jsd", + "name" : "fieldChangeEqualsItSelf" + }, + "acm028145jsd" : { + "type" : "ControlElement", + "id" : "acm028145jsd", + "name" : "differentFieldChangeIsNotEqual" + }, + "acm028146jsd" : { + "type" : "ClassUnit", + "id" : "acm028146jsd", + "name" : "FieldChangeTest", + "compilationUnitId" : "acm028132jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd" ], + "content" : [ "acm028136jsd", "acm028137jsd", "acm028138jsd", "acm028139jsd", "acm028140jsd", "acm028141jsd", "acm028142jsd", "acm028143jsd", "acm028144jsd", "acm028145jsd" ] + }, + "acm028147jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028147jsd", + "name" : "TreeNodeTest", + "parentId" : "acm017861jsd", + "content" : [ "acm028224jsd", "acm028227jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028148jsd" : { + "type" : "CodePackage", + "id" : "acm028148jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028149jsd" ] + }, + "acm028149jsd" : { + "type" : "CodePackage", + "id" : "acm028149jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028150jsd" ] + }, + "acm028150jsd" : { + "type" : "CodePackage", + "id" : "acm028150jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028147jsd" ] + }, + "acm028151jsd" : { + "type" : "ControlElement", + "id" : "acm028151jsd", + "name" : "setUp" + }, + "acm028152jsd" : { + "type" : "ControlElement", + "id" : "acm028152jsd", + "name" : "constructorChecksThatClassImplementsCorrectInterface" + }, + "acm028153jsd" : { + "type" : "ControlElement", + "id" : "acm028153jsd", + "name" : "constructorExceptsCorrectImplementation" + }, + "acm028154jsd" : { + "type" : "ControlElement", + "id" : "acm028154jsd", + "name" : "newTreeNodeHasNoParentOrChildren" + }, + "acm028155jsd" : { + "type" : "ControlElement", + "id" : "acm028155jsd", + "name" : "getIndexedPathFromRootReturnsEmptyListForRoot" + }, + "acm028156jsd" : { + "type" : "ControlElement", + "id" : "acm028156jsd", + "name" : "getIndexedPathFromRootSimplePath" + }, + "acm028157jsd" : { + "type" : "ControlElement", + "id" : "acm028157jsd", + "name" : "getIndexedPathFromRootComplexPath" + }, + "acm028158jsd" : { + "type" : "ControlElement", + "id" : "acm028158jsd", + "name" : "getDescendantSimplePath" + }, + "acm028159jsd" : { + "type" : "ControlElement", + "id" : "acm028159jsd", + "name" : "getDescendantComplexPath" + }, + "acm028160jsd" : { + "type" : "ControlElement", + "id" : "acm028160jsd", + "name" : "getDescendantNonExistentReturnsEmpty" + }, + "acm028161jsd" : { + "type" : "ControlElement", + "id" : "acm028161jsd", + "name" : "getPositionInParentForRootThrowsException" + }, + "acm028162jsd" : { + "type" : "ControlElement", + "id" : "acm028162jsd", + "name" : "getPositionInParentSimpleTree" + }, + "acm028163jsd" : { + "type" : "ControlElement", + "id" : "acm028163jsd", + "name" : "getIndexOfNonExistentChildReturnsEmpty" + }, + "acm028164jsd" : { + "type" : "ControlElement", + "id" : "acm028164jsd", + "name" : "getIndexOfChild" + }, + "acm028165jsd" : { + "type" : "ControlElement", + "id" : "acm028165jsd", + "name" : "getLevelOfRoot" + }, + "acm028166jsd" : { + "type" : "ControlElement", + "id" : "acm028166jsd", + "name" : "getLevelInSimpleTree" + }, + "acm028167jsd" : { + "type" : "ControlElement", + "id" : "acm028167jsd", + "name" : "getLevelInComplexTree" + }, + "acm028168jsd" : { + "type" : "ControlElement", + "id" : "acm028168jsd", + "name" : "getChildCountInSimpleTree" + }, + "acm028169jsd" : { + "type" : "ControlElement", + "id" : "acm028169jsd", + "name" : "getChildCountInComplexTree" + }, + "acm028170jsd" : { + "type" : "ControlElement", + "id" : "acm028170jsd", + "name" : "moveToAddsAsLastChildInSimpleTree" + }, + "acm028171jsd" : { + "type" : "ControlElement", + "id" : "acm028171jsd", + "name" : "moveToAddsAsLastChildInComplexTree" + }, + "acm028172jsd" : { + "type" : "ControlElement", + "id" : "acm028172jsd", + "name" : "moveToChangesParent" + }, + "acm028173jsd" : { + "type" : "ControlElement", + "id" : "acm028173jsd", + "name" : "moveToInSameLevelAddsAtEnd" + }, + "acm028174jsd" : { + "type" : "ControlElement", + "id" : "acm028174jsd", + "name" : "moveToInSameLevelWhenNodeWasBeforeTargetIndex" + }, + "acm028175jsd" : { + "type" : "ControlElement", + "id" : "acm028175jsd", + "name" : "moveToInSameLevelWhenNodeWasAfterTargetIndex" + }, + "acm028176jsd" : { + "type" : "ControlElement", + "id" : "acm028176jsd", + "name" : "getPathFromRootInSimpleTree" + }, + "acm028177jsd" : { + "type" : "ControlElement", + "id" : "acm028177jsd", + "name" : "getPathFromRootInComplexTree" + }, + "acm028178jsd" : { + "type" : "ControlElement", + "id" : "acm028178jsd", + "name" : "getPreviousSiblingReturnsCorrect" + }, + "acm028179jsd" : { + "type" : "ControlElement", + "id" : "acm028179jsd", + "name" : "getPreviousSiblingForRootReturnsEmpty" + }, + "acm028180jsd" : { + "type" : "ControlElement", + "id" : "acm028180jsd", + "name" : "getPreviousSiblingForNonexistentReturnsEmpty" + }, + "acm028181jsd" : { + "type" : "ControlElement", + "id" : "acm028181jsd", + "name" : "getNextSiblingReturnsCorrect" + }, + "acm028182jsd" : { + "type" : "ControlElement", + "id" : "acm028182jsd", + "name" : "getNextSiblingForRootReturnsEmpty" + }, + "acm028183jsd" : { + "type" : "ControlElement", + "id" : "acm028183jsd", + "name" : "getNextSiblingForNonexistentReturnsEmpty" + }, + "acm028184jsd" : { + "type" : "ControlElement", + "id" : "acm028184jsd", + "name" : "getParentReturnsCorrect" + }, + "acm028185jsd" : { + "type" : "ControlElement", + "id" : "acm028185jsd", + "name" : "getParentForRootReturnsEmpty" + }, + "acm028186jsd" : { + "type" : "ControlElement", + "id" : "acm028186jsd", + "name" : "getChildAtReturnsCorrect" + }, + "acm028187jsd" : { + "type" : "ControlElement", + "id" : "acm028187jsd", + "name" : "getChildAtInvalidIndexReturnsEmpty" + }, + "acm028188jsd" : { + "type" : "ControlElement", + "id" : "acm028188jsd", + "name" : "getRootReturnsTrueForRoot" + }, + "acm028189jsd" : { + "type" : "ControlElement", + "id" : "acm028189jsd", + "name" : "getRootReturnsFalseForChild" + }, + "acm028190jsd" : { + "type" : "ControlElement", + "id" : "acm028190jsd", + "name" : "nodeIsAncestorOfItself" + }, + "acm028191jsd" : { + "type" : "ControlElement", + "id" : "acm028191jsd", + "name" : "isAncestorOfInSimpleTree" + }, + "acm028192jsd" : { + "type" : "ControlElement", + "id" : "acm028192jsd", + "name" : "isAncestorOfInComplexTree" + }, + "acm028193jsd" : { + "type" : "ControlElement", + "id" : "acm028193jsd", + "name" : "getRootOfSingleNode" + }, + "acm028194jsd" : { + "type" : "ControlElement", + "id" : "acm028194jsd", + "name" : "getRootInSimpleTree" + }, + "acm028195jsd" : { + "type" : "ControlElement", + "id" : "acm028195jsd", + "name" : "getRootInComplexTree" + }, + "acm028196jsd" : { + "type" : "ControlElement", + "id" : "acm028196jsd", + "name" : "isLeafIsCorrectForRootWithoutChildren" + }, + "acm028197jsd" : { + "type" : "ControlElement", + "id" : "acm028197jsd", + "name" : "removeFromParentSetsParentToEmpty" + }, + "acm028198jsd" : { + "type" : "ControlElement", + "id" : "acm028198jsd", + "name" : "removeFromParentRemovesNodeFromChildrenCollection" + }, + "acm028199jsd" : { + "type" : "ControlElement", + "id" : "acm028199jsd", + "name" : "removeAllChildrenSetsParentOfChildToEmpty" + }, + "acm028200jsd" : { + "type" : "ControlElement", + "id" : "acm028200jsd", + "name" : "removeAllChildrenRemovesAllNodesFromChildrenCollection" + }, + "acm028201jsd" : { + "type" : "ControlElement", + "id" : "acm028201jsd", + "name" : "getFirstChildAtReturnsCorrect" + }, + "acm028202jsd" : { + "type" : "ControlElement", + "id" : "acm028202jsd", + "name" : "getFirstChildAtLeafReturnsEmpty" + }, + "acm028203jsd" : { + "type" : "ControlElement", + "id" : "acm028203jsd", + "name" : "isNodeDescendantInFirstLevel" + }, + "acm028204jsd" : { + "type" : "ControlElement", + "id" : "acm028204jsd", + "name" : "isNodeDescendantInComplex" + }, + "acm028205jsd" : { + "type" : "ControlElement", + "id" : "acm028205jsd", + "name" : "getChildrenReturnsAllChildren" + }, + "acm028206jsd" : { + "type" : "ControlElement", + "id" : "acm028206jsd", + "name" : "removeChildSetsParentToEmpty" + }, + "acm028207jsd" : { + "type" : "ControlElement", + "id" : "acm028207jsd", + "name" : "removeChildRemovesNodeFromChildrenCollection" + }, + "acm028208jsd" : { + "type" : "ControlElement", + "id" : "acm028208jsd", + "name" : "removeChildIndexSetsParentToEmpty" + }, + "acm028209jsd" : { + "type" : "ControlElement", + "id" : "acm028209jsd", + "name" : "removeChildIndexRemovesNodeFromChildrenCollection" + }, + "acm028210jsd" : { + "type" : "ControlElement", + "id" : "acm028210jsd", + "name" : "addThrowsExceptionIfNodeHasParent" + }, + "acm028211jsd" : { + "type" : "ControlElement", + "id" : "acm028211jsd", + "name" : "moveAllChildrenToAddsAtSpecifiedPosition" + }, + "acm028212jsd" : { + "type" : "ControlElement", + "id" : "acm028212jsd", + "name" : "moveAllChildrenToChangesParent" + }, + "acm028213jsd" : { + "type" : "ControlElement", + "id" : "acm028213jsd", + "name" : "moveAllChildrenToDescendantThrowsException" + }, + "acm028214jsd" : { + "type" : "ControlElement", + "id" : "acm028214jsd", + "name" : "sortChildrenSortsInFirstLevel" + }, + "acm028215jsd" : { + "type" : "ControlElement", + "id" : "acm028215jsd", + "name" : "sortChildrenRecursiveSortsInDeeperLevel" + }, + "acm028216jsd" : { + "type" : "ControlElement", + "id" : "acm028216jsd", + "name" : "copySubtreeCopiesChildren" + }, + "acm028217jsd" : { + "type" : "ControlElement", + "id" : "acm028217jsd", + "name" : "addChildSomewhereInTreeInvokesChangeEvent" + }, + "acm028218jsd" : { + "type" : "ControlElement", + "id" : "acm028218jsd", + "name" : "moveNodeSomewhereInTreeInvokesChangeEvent" + }, + "acm028219jsd" : { + "type" : "ControlElement", + "id" : "acm028219jsd", + "name" : "removeChildSomewhereInTreeInvokesChangeEvent" + }, + "acm028220jsd" : { + "type" : "ControlElement", + "id" : "acm028220jsd", + "name" : "removeChildIndexSomewhereInTreeInvokesChangeEvent" + }, + "acm028221jsd" : { + "type" : "ControlElement", + "id" : "acm028221jsd", + "name" : "findChildrenWithSameName" + }, + "acm028222jsd" : { + "type" : "ControlElement", + "id" : "acm028222jsd", + "name" : "WrongTreeNodeImplementation" + }, + "acm028223jsd" : { + "type" : "ControlElement", + "id" : "acm028223jsd", + "name" : "copyNode" + }, + "acm028224jsd" : { + "type" : "ClassUnit", + "id" : "acm028224jsd", + "name" : "TreeNodeTest", + "compilationUnitId" : "acm028147jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017927jsd", "acm028250jsd" ], + "content" : [ "acm028151jsd", "acm028152jsd", "acm028153jsd", "acm028154jsd", "acm028155jsd", "acm028156jsd", "acm028157jsd", "acm028158jsd", "acm028159jsd", "acm028160jsd", "acm028161jsd", "acm028162jsd", "acm028163jsd", "acm028164jsd", "acm028165jsd", "acm028166jsd", "acm028167jsd", "acm028168jsd", "acm028169jsd", "acm028170jsd", "acm028171jsd", "acm028172jsd", "acm028173jsd", "acm028174jsd", "acm028175jsd", "acm028176jsd", "acm028177jsd", "acm028178jsd", "acm028179jsd", "acm028180jsd", "acm028181jsd", "acm028182jsd", "acm028183jsd", "acm028184jsd", "acm028185jsd", "acm028186jsd", "acm028187jsd", "acm028188jsd", "acm028189jsd", "acm028190jsd", "acm028191jsd", "acm028192jsd", "acm028193jsd", "acm028194jsd", "acm028195jsd", "acm028196jsd", "acm028197jsd", "acm028198jsd", "acm028199jsd", "acm028200jsd", "acm028201jsd", "acm028202jsd", "acm028203jsd", "acm028204jsd", "acm028205jsd", "acm028206jsd", "acm028207jsd", "acm028208jsd", "acm028209jsd", "acm028210jsd", "acm028211jsd", "acm028212jsd", "acm028213jsd", "acm028214jsd", "acm028215jsd", "acm028216jsd", "acm028217jsd", "acm028218jsd", "acm028219jsd", "acm028220jsd", "acm028221jsd", "acm028222jsd", "acm028223jsd" ] + }, + "acm028225jsd" : { + "type" : "ControlElement", + "id" : "acm028225jsd", + "name" : "WrongTreeNodeImplementation" + }, + "acm028226jsd" : { + "type" : "ControlElement", + "id" : "acm028226jsd", + "name" : "copyNode" + }, + "acm028227jsd" : { + "type" : "ClassUnit", + "id" : "acm028227jsd", + "name" : "WrongTreeNodeImplementation", + "compilationUnitId" : "acm028147jsd", + "parentDatatypeId" : "acm028224jsd", + "extendedDataTypesIds" : [ "acm017927jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm028250jsd" ], + "content" : [ "acm028225jsd", "acm028226jsd" ] + }, + "acm028228jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028228jsd", + "name" : "TreeNodeTestData", + "parentId" : "acm017861jsd", + "content" : [ "acm028243jsd", "acm028250jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028229jsd" : { + "type" : "CodePackage", + "id" : "acm028229jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028230jsd" ] + }, + "acm028230jsd" : { + "type" : "CodePackage", + "id" : "acm028230jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028231jsd" ] + }, + "acm028231jsd" : { + "type" : "CodePackage", + "id" : "acm028231jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028228jsd" ] + }, + "acm028232jsd" : { + "type" : "ControlElement", + "id" : "acm028232jsd", + "name" : "getNodeInSimpleTree" + }, + "acm028233jsd" : { + "type" : "ControlElement", + "id" : "acm028233jsd", + "name" : "getNodeInSimpleTree" + }, + "acm028234jsd" : { + "type" : "ControlElement", + "id" : "acm028234jsd", + "name" : "getNodeInComplexTree" + }, + "acm028235jsd" : { + "type" : "ControlElement", + "id" : "acm028235jsd", + "name" : "getNodeInComplexTree" + }, + "acm028236jsd" : { + "type" : "ControlElement", + "id" : "acm028236jsd", + "name" : "getNodeAsChild" + }, + "acm028237jsd" : { + "type" : "ControlElement", + "id" : "acm028237jsd", + "name" : "TreeNodeMock" + }, + "acm028238jsd" : { + "type" : "ControlElement", + "id" : "acm028238jsd", + "name" : "TreeNodeMock" + }, + "acm028239jsd" : { + "type" : "ControlElement", + "id" : "acm028239jsd", + "name" : "getName" + }, + "acm028240jsd" : { + "type" : "ControlElement", + "id" : "acm028240jsd", + "name" : "setName" + }, + "acm028241jsd" : { + "type" : "ControlElement", + "id" : "acm028241jsd", + "name" : "toString" + }, + "acm028242jsd" : { + "type" : "ControlElement", + "id" : "acm028242jsd", + "name" : "copyNode" + }, + "acm028243jsd" : { + "type" : "ClassUnit", + "id" : "acm028243jsd", + "name" : "TreeNodeTestData", + "compilationUnitId" : "acm028228jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017927jsd", "acm028250jsd" ], + "content" : [ "acm028232jsd", "acm028233jsd", "acm028234jsd", "acm028235jsd", "acm028236jsd", "acm028237jsd", "acm028238jsd", "acm028239jsd", "acm028240jsd", "acm028241jsd", "acm028242jsd" ] + }, + "acm028244jsd" : { + "type" : "ControlElement", + "id" : "acm028244jsd", + "name" : "TreeNodeMock" + }, + "acm028245jsd" : { + "type" : "ControlElement", + "id" : "acm028245jsd", + "name" : "TreeNodeMock" + }, + "acm028246jsd" : { + "type" : "ControlElement", + "id" : "acm028246jsd", + "name" : "getName" + }, + "acm028247jsd" : { + "type" : "ControlElement", + "id" : "acm028247jsd", + "name" : "setName" + }, + "acm028248jsd" : { + "type" : "ControlElement", + "id" : "acm028248jsd", + "name" : "toString" + }, + "acm028249jsd" : { + "type" : "ControlElement", + "id" : "acm028249jsd", + "name" : "copyNode" + }, + "acm028250jsd" : { + "type" : "ClassUnit", + "id" : "acm028250jsd", + "name" : "TreeNodeMock", + "compilationUnitId" : "acm028228jsd", + "parentDatatypeId" : "acm028243jsd", + "extendedDataTypesIds" : [ "acm017927jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm028250jsd" ], + "content" : [ "acm028244jsd", "acm028245jsd", "acm028246jsd", "acm028247jsd", "acm028248jsd", "acm028249jsd" ] + }, + "acm028251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028251jsd", + "name" : "BibDatabaseContextTest", + "parentId" : "acm017932jsd", + "content" : [ "acm028269jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028252jsd" : { + "type" : "CodePackage", + "id" : "acm028252jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028253jsd" ] + }, + "acm028253jsd" : { + "type" : "CodePackage", + "id" : "acm028253jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028254jsd" ] + }, + "acm028254jsd" : { + "type" : "CodePackage", + "id" : "acm028254jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028255jsd" ] + }, + "acm028255jsd" : { + "type" : "CodePackage", + "id" : "acm028255jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm028251jsd" ] + }, + "acm028256jsd" : { + "type" : "ControlElement", + "id" : "acm028256jsd", + "name" : "setUp" + }, + "acm028257jsd" : { + "type" : "ControlElement", + "id" : "acm028257jsd", + "name" : "getFileDirectoriesWithEmptyDbParent" + }, + "acm028258jsd" : { + "type" : "ControlElement", + "id" : "acm028258jsd", + "name" : "getFileDirectoriesWithRelativeDbParent" + }, + "acm028259jsd" : { + "type" : "ControlElement", + "id" : "acm028259jsd", + "name" : "getFileDirectoriesWithRelativeDottedDbParent" + }, + "acm028260jsd" : { + "type" : "ControlElement", + "id" : "acm028260jsd", + "name" : "getFileDirectoriesWithAbsoluteDbParent" + }, + "acm028261jsd" : { + "type" : "ControlElement", + "id" : "acm028261jsd", + "name" : "getFileDirectoriesWithRelativeMetadata" + }, + "acm028262jsd" : { + "type" : "ControlElement", + "id" : "acm028262jsd", + "name" : "getFileDirectoriesWithMetadata" + }, + "acm028263jsd" : { + "type" : "ControlElement", + "id" : "acm028263jsd", + "name" : "getUserFileDirectoryIfAllAreEmpty" + }, + "acm028264jsd" : { + "type" : "ControlElement", + "id" : "acm028264jsd", + "name" : "testTypeBasedOnDefaultBiblatex" + }, + "acm028265jsd" : { + "type" : "ControlElement", + "id" : "acm028265jsd", + "name" : "testTypeBasedOnDefaultBibtex" + }, + "acm028266jsd" : { + "type" : "ControlElement", + "id" : "acm028266jsd", + "name" : "testTypeBasedOnInferredModeBiblatex" + }, + "acm028267jsd" : { + "type" : "ControlElement", + "id" : "acm028267jsd", + "name" : "testGetFullTextIndexPathWhenPathIsNull" + }, + "acm028268jsd" : { + "type" : "ControlElement", + "id" : "acm028268jsd", + "name" : "testGetFullTextIndexPathWhenPathIsNotNull" + }, + "acm028269jsd" : { + "type" : "ClassUnit", + "id" : "acm028269jsd", + "name" : "BibDatabaseContextTest", + "compilationUnitId" : "acm028251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018022jsd", "acm018267jsd", "acm019421jsd", "acm020848jsd" ], + "content" : [ "acm028256jsd", "acm028257jsd", "acm028258jsd", "acm028259jsd", "acm028260jsd", "acm028261jsd", "acm028262jsd", "acm028263jsd", "acm028264jsd", "acm028265jsd", "acm028266jsd", "acm028267jsd", "acm028268jsd" ] + }, + "acm028270jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028270jsd", + "name" : "BibDatabaseModeDetectionTest", + "parentId" : "acm017932jsd", + "content" : [ "acm028281jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028271jsd" : { + "type" : "CodePackage", + "id" : "acm028271jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028272jsd" ] + }, + "acm028272jsd" : { + "type" : "CodePackage", + "id" : "acm028272jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028273jsd" ] + }, + "acm028273jsd" : { + "type" : "CodePackage", + "id" : "acm028273jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028274jsd" ] + }, + "acm028274jsd" : { + "type" : "CodePackage", + "id" : "acm028274jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm028270jsd" ] + }, + "acm028275jsd" : { + "type" : "ControlElement", + "id" : "acm028275jsd", + "name" : "detectBiblatex" + }, + "acm028276jsd" : { + "type" : "ControlElement", + "id" : "acm028276jsd", + "name" : "detectUndistinguishableAsBibtex" + }, + "acm028277jsd" : { + "type" : "ControlElement", + "id" : "acm028277jsd", + "name" : "detectMixedModeAsBiblatex" + }, + "acm028278jsd" : { + "type" : "ControlElement", + "id" : "acm028278jsd", + "name" : "detectUnknownTypeAsBibtex" + }, + "acm028279jsd" : { + "type" : "ControlElement", + "id" : "acm028279jsd", + "name" : "ignoreUnknownTypesForBibtexDecision" + }, + "acm028280jsd" : { + "type" : "ControlElement", + "id" : "acm028280jsd", + "name" : "ignoreUnknownTypesForBiblatexDecision" + }, + "acm028281jsd" : { + "type" : "ClassUnit", + "id" : "acm028281jsd", + "name" : "BibDatabaseModeDetectionTest", + "compilationUnitId" : "acm028270jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm019005jsd", "acm019079jsd" ], + "content" : [ "acm028275jsd", "acm028276jsd", "acm028277jsd", "acm028278jsd", "acm028279jsd", "acm028280jsd" ] + }, + "acm028282jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028282jsd", + "name" : "BibDatabaseTest", + "parentId" : "acm017932jsd", + "content" : [ "acm028335jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028283jsd" : { + "type" : "CodePackage", + "id" : "acm028283jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028284jsd" ] + }, + "acm028284jsd" : { + "type" : "CodePackage", + "id" : "acm028284jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028285jsd" ] + }, + "acm028285jsd" : { + "type" : "CodePackage", + "id" : "acm028285jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028286jsd" ] + }, + "acm028286jsd" : { + "type" : "CodePackage", + "id" : "acm028286jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm028282jsd" ] + }, + "acm028287jsd" : { + "type" : "ControlElement", + "id" : "acm028287jsd", + "name" : "setUp" + }, + "acm028288jsd" : { + "type" : "ControlElement", + "id" : "acm028288jsd", + "name" : "noEmptyEntry" + }, + "acm028289jsd" : { + "type" : "ControlElement", + "id" : "acm028289jsd", + "name" : "withEmptyEntry" + }, + "acm028290jsd" : { + "type" : "ControlElement", + "id" : "acm028290jsd", + "name" : "insertEntryAddsEntryToEntriesList" + }, + "acm028291jsd" : { + "type" : "ControlElement", + "id" : "acm028291jsd", + "name" : "containsEntryIdFindsEntry" + }, + "acm028292jsd" : { + "type" : "ControlElement", + "id" : "acm028292jsd", + "name" : "insertEntryWithSameIdDoesNotThrowException" + }, + "acm028293jsd" : { + "type" : "ControlElement", + "id" : "acm028293jsd", + "name" : "removeEntryRemovesEntryFromEntriesList" + }, + "acm028294jsd" : { + "type" : "ControlElement", + "id" : "acm028294jsd", + "name" : "removeSomeEntriesRemovesThoseEntriesFromEntriesList" + }, + "acm028295jsd" : { + "type" : "ControlElement", + "id" : "acm028295jsd", + "name" : "removeAllEntriesRemovesAllEntriesFromEntriesList" + }, + "acm028296jsd" : { + "type" : "ControlElement", + "id" : "acm028296jsd", + "name" : "insertNullEntryThrowsException" + }, + "acm028297jsd" : { + "type" : "ControlElement", + "id" : "acm028297jsd", + "name" : "removeNullEntryThrowsException" + }, + "acm028298jsd" : { + "type" : "ControlElement", + "id" : "acm028298jsd", + "name" : "emptyDatabaseHasNoStrings" + }, + "acm028299jsd" : { + "type" : "ControlElement", + "id" : "acm028299jsd", + "name" : "databaseHasStringAfterInsertion" + }, + "acm028300jsd" : { + "type" : "ControlElement", + "id" : "acm028300jsd", + "name" : "databaseStringKeySetIncreasesAfterStringInsertion" + }, + "acm028301jsd" : { + "type" : "ControlElement", + "id" : "acm028301jsd", + "name" : "databaseStringCountIncreasesAfterStringInsertion" + }, + "acm028302jsd" : { + "type" : "ControlElement", + "id" : "acm028302jsd", + "name" : "databaseContainsNewStringInStringValues" + }, + "acm028303jsd" : { + "type" : "ControlElement", + "id" : "acm028303jsd", + "name" : "retrieveInsertedStringById" + }, + "acm028304jsd" : { + "type" : "ControlElement", + "id" : "acm028304jsd", + "name" : "stringIsNotModifiedAfterInsertion" + }, + "acm028305jsd" : { + "type" : "ControlElement", + "id" : "acm028305jsd", + "name" : "databaseHasNoStringsAfterRemoval" + }, + "acm028306jsd" : { + "type" : "ControlElement", + "id" : "acm028306jsd", + "name" : "stringKeySizeIsEmptyAfterRemoval" + }, + "acm028307jsd" : { + "type" : "ControlElement", + "id" : "acm028307jsd", + "name" : "stringCountIsZeroAfterRemoval" + }, + "acm028308jsd" : { + "type" : "ControlElement", + "id" : "acm028308jsd", + "name" : "stringValuesDoesNotContainStringAfterRemoval" + }, + "acm028309jsd" : { + "type" : "ControlElement", + "id" : "acm028309jsd", + "name" : "stringKeySetDoesNotContainStringIdAfterRemoval" + }, + "acm028310jsd" : { + "type" : "ControlElement", + "id" : "acm028310jsd", + "name" : "databaseReturnsNullForRemovedString" + }, + "acm028311jsd" : { + "type" : "ControlElement", + "id" : "acm028311jsd", + "name" : "hasStringLabelFindsString" + }, + "acm028312jsd" : { + "type" : "ControlElement", + "id" : "acm028312jsd", + "name" : "setSingleStringAsCollection" + }, + "acm028313jsd" : { + "type" : "ControlElement", + "id" : "acm028313jsd", + "name" : "setStringAsCollectionWithUpdatedContentThrowsKeyCollisionException" + }, + "acm028314jsd" : { + "type" : "ControlElement", + "id" : "acm028314jsd", + "name" : "setStringAsCollectionWithNewContent" + }, + "acm028315jsd" : { + "type" : "ControlElement", + "id" : "acm028315jsd", + "name" : "addSameStringLabelTwiceThrowsKeyCollisionException" + }, + "acm028316jsd" : { + "type" : "ControlElement", + "id" : "acm028316jsd", + "name" : "addSameStringIdTwiceThrowsKeyCollisionException" + }, + "acm028317jsd" : { + "type" : "ControlElement", + "id" : "acm028317jsd", + "name" : "insertEntryPostsAddedEntryEvent" + }, + "acm028318jsd" : { + "type" : "ControlElement", + "id" : "acm028318jsd", + "name" : "insertMultipleEntriesPostsAddedEntryEvent" + }, + "acm028319jsd" : { + "type" : "ControlElement", + "id" : "acm028319jsd", + "name" : "removeEntriesPostsRemovedEntriesEvent" + }, + "acm028320jsd" : { + "type" : "ControlElement", + "id" : "acm028320jsd", + "name" : "changingEntryPostsChangeEntryEvent" + }, + "acm028321jsd" : { + "type" : "ControlElement", + "id" : "acm028321jsd", + "name" : "correctKeyCountOne" + }, + "acm028322jsd" : { + "type" : "ControlElement", + "id" : "acm028322jsd", + "name" : "correctKeyCountTwo" + }, + "acm028323jsd" : { + "type" : "ControlElement", + "id" : "acm028323jsd", + "name" : "correctKeyCountAfterRemoving" + }, + "acm028324jsd" : { + "type" : "ControlElement", + "id" : "acm028324jsd", + "name" : "circularStringResolving" + }, + "acm028325jsd" : { + "type" : "ControlElement", + "id" : "acm028325jsd", + "name" : "circularStringResolvingLongerCycle" + }, + "acm028326jsd" : { + "type" : "ControlElement", + "id" : "acm028326jsd", + "name" : "resolveForStringsMonth" + }, + "acm028327jsd" : { + "type" : "ControlElement", + "id" : "acm028327jsd", + "name" : "resolveForStringsSurroundingContent" + }, + "acm028328jsd" : { + "type" : "ControlElement", + "id" : "acm028328jsd", + "name" : "resolveForStringsOddHashMarkAtTheEnd" + }, + "acm028329jsd" : { + "type" : "ControlElement", + "id" : "acm028329jsd", + "name" : "getUsedStrings" + }, + "acm028330jsd" : { + "type" : "ControlElement", + "id" : "acm028330jsd", + "name" : "getUsedStringsSingleString" + }, + "acm028331jsd" : { + "type" : "ControlElement", + "id" : "acm028331jsd", + "name" : "getUsedStringsNoString" + }, + "acm028332jsd" : { + "type" : "ControlElement", + "id" : "acm028332jsd", + "name" : "getEntriesSortedWithTwoEntries" + }, + "acm028333jsd" : { + "type" : "ControlElement", + "id" : "acm028333jsd", + "name" : "preambleIsEmptyIfNotSet" + }, + "acm028334jsd" : { + "type" : "ControlElement", + "id" : "acm028334jsd", + "name" : "setPreambleWorks" + }, + "acm028335jsd" : { + "type" : "ClassUnit", + "id" : "acm028335jsd", + "name" : "BibDatabaseTest", + "compilationUnitId" : "acm028282jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018022jsd", "acm018071jsd", "acm018267jsd", "acm018367jsd", "acm018813jsd", "acm019421jsd", "acm028950jsd" ], + "content" : [ "acm028287jsd", "acm028288jsd", "acm028289jsd", "acm028290jsd", "acm028291jsd", "acm028292jsd", "acm028293jsd", "acm028294jsd", "acm028295jsd", "acm028296jsd", "acm028297jsd", "acm028298jsd", "acm028299jsd", "acm028300jsd", "acm028301jsd", "acm028302jsd", "acm028303jsd", "acm028304jsd", "acm028305jsd", "acm028306jsd", "acm028307jsd", "acm028308jsd", "acm028309jsd", "acm028310jsd", "acm028311jsd", "acm028312jsd", "acm028313jsd", "acm028314jsd", "acm028315jsd", "acm028316jsd", "acm028317jsd", "acm028318jsd", "acm028319jsd", "acm028320jsd", "acm028321jsd", "acm028322jsd", "acm028323jsd", "acm028324jsd", "acm028325jsd", "acm028326jsd", "acm028327jsd", "acm028328jsd", "acm028329jsd", "acm028330jsd", "acm028331jsd", "acm028332jsd", "acm028333jsd", "acm028334jsd" ] + }, + "acm028336jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028336jsd", + "name" : "DuplicationCheckerTest", + "parentId" : "acm017932jsd", + "content" : [ "acm028349jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028337jsd" : { + "type" : "CodePackage", + "id" : "acm028337jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028338jsd" ] + }, + "acm028338jsd" : { + "type" : "CodePackage", + "id" : "acm028338jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028339jsd" ] + }, + "acm028339jsd" : { + "type" : "CodePackage", + "id" : "acm028339jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028340jsd" ] + }, + "acm028340jsd" : { + "type" : "CodePackage", + "id" : "acm028340jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm028336jsd" ] + }, + "acm028341jsd" : { + "type" : "ControlElement", + "id" : "acm028341jsd", + "name" : "setUp" + }, + "acm028342jsd" : { + "type" : "ControlElement", + "id" : "acm028342jsd", + "name" : "addEntry" + }, + "acm028343jsd" : { + "type" : "ControlElement", + "id" : "acm028343jsd", + "name" : "addAndRemoveEntry" + }, + "acm028344jsd" : { + "type" : "ControlElement", + "id" : "acm028344jsd", + "name" : "changeCiteKey" + }, + "acm028345jsd" : { + "type" : "ControlElement", + "id" : "acm028345jsd", + "name" : "setCiteKeySameKeyDifferentEntries" + }, + "acm028346jsd" : { + "type" : "ControlElement", + "id" : "acm028346jsd", + "name" : "removeMultipleCiteKeys" + }, + "acm028347jsd" : { + "type" : "ControlElement", + "id" : "acm028347jsd", + "name" : "addEmptyCiteKey" + }, + "acm028348jsd" : { + "type" : "ControlElement", + "id" : "acm028348jsd", + "name" : "removeEmptyCiteKey" + }, + "acm028349jsd" : { + "type" : "ClassUnit", + "id" : "acm028349jsd", + "name" : "DuplicationCheckerTest", + "compilationUnitId" : "acm028336jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm028341jsd", "acm028342jsd", "acm028343jsd", "acm028344jsd", "acm028345jsd", "acm028346jsd", "acm028347jsd", "acm028348jsd" ] + }, + "acm028350jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028350jsd", + "name" : "KeyChangeListenerTest", + "parentId" : "acm017932jsd", + "content" : [ "acm028363jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "database" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028351jsd" : { + "type" : "CodePackage", + "id" : "acm028351jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028352jsd" ] + }, + "acm028352jsd" : { + "type" : "CodePackage", + "id" : "acm028352jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028353jsd" ] + }, + "acm028353jsd" : { + "type" : "CodePackage", + "id" : "acm028353jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028354jsd" ] + }, + "acm028354jsd" : { + "type" : "CodePackage", + "id" : "acm028354jsd", + "name" : "database", + "parentId" : null, + "content" : [ "acm028350jsd" ] + }, + "acm028355jsd" : { + "type" : "ControlElement", + "id" : "acm028355jsd", + "name" : "setUp" + }, + "acm028356jsd" : { + "type" : "ControlElement", + "id" : "acm028356jsd", + "name" : "testCrossrefChanged" + }, + "acm028357jsd" : { + "type" : "ControlElement", + "id" : "acm028357jsd", + "name" : "testRelatedChanged" + }, + "acm028358jsd" : { + "type" : "ControlElement", + "id" : "acm028358jsd", + "name" : "testRelatedChangedInSameEntry" + }, + "acm028359jsd" : { + "type" : "ControlElement", + "id" : "acm028359jsd", + "name" : "testCrossrefRemoved" + }, + "acm028360jsd" : { + "type" : "ControlElement", + "id" : "acm028360jsd", + "name" : "testCrossrefEntryRemoved" + }, + "acm028361jsd" : { + "type" : "ControlElement", + "id" : "acm028361jsd", + "name" : "testRelatedEntryRemoved" + }, + "acm028362jsd" : { + "type" : "ControlElement", + "id" : "acm028362jsd", + "name" : "testRelatedAllEntriesRemoved" + }, + "acm028363jsd" : { + "type" : "ClassUnit", + "id" : "acm028363jsd", + "name" : "KeyChangeListenerTest", + "compilationUnitId" : "acm028350jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd" ], + "content" : [ "acm028355jsd", "acm028356jsd", "acm028357jsd", "acm028358jsd", "acm028359jsd", "acm028360jsd", "acm028361jsd", "acm028362jsd" ] + }, + "acm028364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028364jsd", + "name" : "AuthorListTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028493jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028365jsd" : { + "type" : "CodePackage", + "id" : "acm028365jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028366jsd" ] + }, + "acm028366jsd" : { + "type" : "CodePackage", + "id" : "acm028366jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028367jsd" ] + }, + "acm028367jsd" : { + "type" : "CodePackage", + "id" : "acm028367jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028368jsd" ] + }, + "acm028368jsd" : { + "type" : "CodePackage", + "id" : "acm028368jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028364jsd" ] + }, + "acm028369jsd" : { + "type" : "ControlElement", + "id" : "acm028369jsd", + "name" : "size" + }, + "acm028370jsd" : { + "type" : "ControlElement", + "id" : "acm028370jsd", + "name" : "testFixAuthorNatbib" + }, + "acm028371jsd" : { + "type" : "ControlElement", + "id" : "acm028371jsd", + "name" : "getAsNatbibLatexFreeEmptyAuthorStringForEmptyInput" + }, + "acm028372jsd" : { + "type" : "ControlElement", + "id" : "acm028372jsd", + "name" : "getAsNatbibLatexFreeUnicodeOneAuthorNameFromLatex" + }, + "acm028373jsd" : { + "type" : "ControlElement", + "id" : "acm028373jsd", + "name" : "getAsNatbibLatexFreeUnicodeTwoAuthorNamesFromLatex" + }, + "acm028374jsd" : { + "type" : "ControlElement", + "id" : "acm028374jsd", + "name" : "getAsNatbibLatexFreeUnicodeAuthorEtAlFromLatex" + }, + "acm028375jsd" : { + "type" : "ControlElement", + "id" : "acm028375jsd", + "name" : "getAsNatbibLatexFreeUnicodeOneInsitutionNameFromLatex" + }, + "acm028376jsd" : { + "type" : "ControlElement", + "id" : "acm028376jsd", + "name" : "getAsNatbibLatexFreeUnicodeTwoInsitutionNameFromLatex" + }, + "acm028377jsd" : { + "type" : "ControlElement", + "id" : "acm028377jsd", + "name" : "getAsNatbibLatexFreeUnicodeMixedAuthorsFromLatex" + }, + "acm028378jsd" : { + "type" : "ControlElement", + "id" : "acm028378jsd", + "name" : "getAsNatbibLatexFreeOneInstitutionWithParanthesisAtStart" + }, + "acm028379jsd" : { + "type" : "ControlElement", + "id" : "acm028379jsd", + "name" : "parseCachesOneAuthor" + }, + "acm028380jsd" : { + "type" : "ControlElement", + "id" : "acm028380jsd", + "name" : "parseCachesOneLatexFreeAuthor" + }, + "acm028381jsd" : { + "type" : "ControlElement", + "id" : "acm028381jsd", + "name" : "testFixAuthorFirstNameFirstCommas" + }, + "acm028382jsd" : { + "type" : "ControlElement", + "id" : "acm028382jsd", + "name" : "getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInputAbbreviate" + }, + "acm028383jsd" : { + "type" : "ControlElement", + "id" : "acm028383jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbreviate" + }, + "acm028384jsd" : { + "type" : "ControlElement", + "id" : "acm028384jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviate" + }, + "acm028385jsd" : { + "type" : "ControlElement", + "id" : "acm028385jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviateAndOxfordComma" + }, + "acm028386jsd" : { + "type" : "ControlElement", + "id" : "acm028386jsd", + "name" : "getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviate" + }, + "acm028387jsd" : { + "type" : "ControlElement", + "id" : "acm028387jsd", + "name" : "getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviateAndOxfordComma" + }, + "acm028388jsd" : { + "type" : "ControlElement", + "id" : "acm028388jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbreviate" + }, + "acm028389jsd" : { + "type" : "ControlElement", + "id" : "acm028389jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbreviate" + }, + "acm028390jsd" : { + "type" : "ControlElement", + "id" : "acm028390jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbreviate" + }, + "acm028391jsd" : { + "type" : "ControlElement", + "id" : "acm028391jsd", + "name" : "getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbreviate" + }, + "acm028392jsd" : { + "type" : "ControlElement", + "id" : "acm028392jsd", + "name" : "getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInput" + }, + "acm028393jsd" : { + "type" : "ControlElement", + "id" : "acm028393jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatex" + }, + "acm028394jsd" : { + "type" : "ControlElement", + "id" : "acm028394jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex" + }, + "acm028395jsd" : { + "type" : "ControlElement", + "id" : "acm028395jsd", + "name" : "getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatex" + }, + "acm028396jsd" : { + "type" : "ControlElement", + "id" : "acm028396jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex" + }, + "acm028397jsd" : { + "type" : "ControlElement", + "id" : "acm028397jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex" + }, + "acm028398jsd" : { + "type" : "ControlElement", + "id" : "acm028398jsd", + "name" : "getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatex" + }, + "acm028399jsd" : { + "type" : "ControlElement", + "id" : "acm028399jsd", + "name" : "getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStart" + }, + "acm028400jsd" : { + "type" : "ControlElement", + "id" : "acm028400jsd", + "name" : "testFixAuthorFirstNameFirst" + }, + "acm028401jsd" : { + "type" : "ControlElement", + "id" : "acm028401jsd", + "name" : "testFixAuthorLastNameFirstCommasNoComma" + }, + "acm028402jsd" : { + "type" : "ControlElement", + "id" : "acm028402jsd", + "name" : "testFixAuthorLastNameFirstCommasOxfordComma" + }, + "acm028403jsd" : { + "type" : "ControlElement", + "id" : "acm028403jsd", + "name" : "getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbr" + }, + "acm028404jsd" : { + "type" : "ControlElement", + "id" : "acm028404jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbr" + }, + "acm028405jsd" : { + "type" : "ControlElement", + "id" : "acm028405jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbr" + }, + "acm028406jsd" : { + "type" : "ControlElement", + "id" : "acm028406jsd", + "name" : "getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbr" + }, + "acm028407jsd" : { + "type" : "ControlElement", + "id" : "acm028407jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbr" + }, + "acm028408jsd" : { + "type" : "ControlElement", + "id" : "acm028408jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbr" + }, + "acm028409jsd" : { + "type" : "ControlElement", + "id" : "acm028409jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbr" + }, + "acm028410jsd" : { + "type" : "ControlElement", + "id" : "acm028410jsd", + "name" : "getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbr" + }, + "acm028411jsd" : { + "type" : "ControlElement", + "id" : "acm028411jsd", + "name" : "getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInput" + }, + "acm028412jsd" : { + "type" : "ControlElement", + "id" : "acm028412jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatex" + }, + "acm028413jsd" : { + "type" : "ControlElement", + "id" : "acm028413jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatex" + }, + "acm028414jsd" : { + "type" : "ControlElement", + "id" : "acm028414jsd", + "name" : "getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatex" + }, + "acm028415jsd" : { + "type" : "ControlElement", + "id" : "acm028415jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatex" + }, + "acm028416jsd" : { + "type" : "ControlElement", + "id" : "acm028416jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatex" + }, + "acm028417jsd" : { + "type" : "ControlElement", + "id" : "acm028417jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatex" + }, + "acm028418jsd" : { + "type" : "ControlElement", + "id" : "acm028418jsd", + "name" : "getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStart" + }, + "acm028419jsd" : { + "type" : "ControlElement", + "id" : "acm028419jsd", + "name" : "getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbrOxfordComma" + }, + "acm028420jsd" : { + "type" : "ControlElement", + "id" : "acm028420jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbrOxfordComma" + }, + "acm028421jsd" : { + "type" : "ControlElement", + "id" : "acm028421jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbrOxfordComma" + }, + "acm028422jsd" : { + "type" : "ControlElement", + "id" : "acm028422jsd", + "name" : "getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbrOxfordComma" + }, + "acm028423jsd" : { + "type" : "ControlElement", + "id" : "acm028423jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbrOxfordComma" + }, + "acm028424jsd" : { + "type" : "ControlElement", + "id" : "acm028424jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbrOxfordComma" + }, + "acm028425jsd" : { + "type" : "ControlElement", + "id" : "acm028425jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbrOxfordComma" + }, + "acm028426jsd" : { + "type" : "ControlElement", + "id" : "acm028426jsd", + "name" : "getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbrOxfordComma" + }, + "acm028427jsd" : { + "type" : "ControlElement", + "id" : "acm028427jsd", + "name" : "getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputOxfordComma" + }, + "acm028428jsd" : { + "type" : "ControlElement", + "id" : "acm028428jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexOxfordComma" + }, + "acm028429jsd" : { + "type" : "ControlElement", + "id" : "acm028429jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexOxfordComma" + }, + "acm028430jsd" : { + "type" : "ControlElement", + "id" : "acm028430jsd", + "name" : "getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexOxfordComma" + }, + "acm028431jsd" : { + "type" : "ControlElement", + "id" : "acm028431jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexOxfordComma" + }, + "acm028432jsd" : { + "type" : "ControlElement", + "id" : "acm028432jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexOxfordComma" + }, + "acm028433jsd" : { + "type" : "ControlElement", + "id" : "acm028433jsd", + "name" : "getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexOxfordComma" + }, + "acm028434jsd" : { + "type" : "ControlElement", + "id" : "acm028434jsd", + "name" : "getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartOxfordComma" + }, + "acm028435jsd" : { + "type" : "ControlElement", + "id" : "acm028435jsd", + "name" : "testFixAuthorLastNameFirst" + }, + "acm028436jsd" : { + "type" : "ControlElement", + "id" : "acm028436jsd", + "name" : "testFixAuthorLastNameOnlyCommas" + }, + "acm028437jsd" : { + "type" : "ControlElement", + "id" : "acm028437jsd", + "name" : "getAsLastNamesLatexFreeUnicodeOneAuthorNameFromLatex" + }, + "acm028438jsd" : { + "type" : "ControlElement", + "id" : "acm028438jsd", + "name" : "getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex" + }, + "acm028439jsd" : { + "type" : "ControlElement", + "id" : "acm028439jsd", + "name" : "getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexUsingOxfordComma" + }, + "acm028440jsd" : { + "type" : "ControlElement", + "id" : "acm028440jsd", + "name" : "getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatex" + }, + "acm028441jsd" : { + "type" : "ControlElement", + "id" : "acm028441jsd", + "name" : "getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatexUsingOxfordComma" + }, + "acm028442jsd" : { + "type" : "ControlElement", + "id" : "acm028442jsd", + "name" : "getAsLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex" + }, + "acm028443jsd" : { + "type" : "ControlElement", + "id" : "acm028443jsd", + "name" : "getAsLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex" + }, + "acm028444jsd" : { + "type" : "ControlElement", + "id" : "acm028444jsd", + "name" : "getAsLastNamesLatexFreeUnicodeMixedAuthorsFromLatex" + }, + "acm028445jsd" : { + "type" : "ControlElement", + "id" : "acm028445jsd", + "name" : "getAsLastNamesLatexFreeOneInstitutionWithParanthesisAtStart" + }, + "acm028446jsd" : { + "type" : "ControlElement", + "id" : "acm028446jsd", + "name" : "testFixAuthorForAlphabetization" + }, + "acm028447jsd" : { + "type" : "ControlElement", + "id" : "acm028447jsd", + "name" : "testSize" + }, + "acm028448jsd" : { + "type" : "ControlElement", + "id" : "acm028448jsd", + "name" : "testIsEmpty" + }, + "acm028449jsd" : { + "type" : "ControlElement", + "id" : "acm028449jsd", + "name" : "testGetEmptyAuthor" + }, + "acm028450jsd" : { + "type" : "ControlElement", + "id" : "acm028450jsd", + "name" : "testGetAuthor" + }, + "acm028451jsd" : { + "type" : "ControlElement", + "id" : "acm028451jsd", + "name" : "testCompanyAuthor" + }, + "acm028452jsd" : { + "type" : "ControlElement", + "id" : "acm028452jsd", + "name" : "testCompanyAuthorAndPerson" + }, + "acm028453jsd" : { + "type" : "ControlElement", + "id" : "acm028453jsd", + "name" : "testCompanyAuthorWithLowerCaseWord" + }, + "acm028454jsd" : { + "type" : "ControlElement", + "id" : "acm028454jsd", + "name" : "testAbbreviationWithRelax" + }, + "acm028455jsd" : { + "type" : "ControlElement", + "id" : "acm028455jsd", + "name" : "testGetAuthorsNatbib" + }, + "acm028456jsd" : { + "type" : "ControlElement", + "id" : "acm028456jsd", + "name" : "testGetAuthorsLastOnly" + }, + "acm028457jsd" : { + "type" : "ControlElement", + "id" : "acm028457jsd", + "name" : "testGetAuthorsLastFirstNoComma" + }, + "acm028458jsd" : { + "type" : "ControlElement", + "id" : "acm028458jsd", + "name" : "testGetAuthorsLastFirstOxfordComma" + }, + "acm028459jsd" : { + "type" : "ControlElement", + "id" : "acm028459jsd", + "name" : "testGetAuthorsLastFirstAnds" + }, + "acm028460jsd" : { + "type" : "ControlElement", + "id" : "acm028460jsd", + "name" : "testGetAuthorsFirstFirst" + }, + "acm028461jsd" : { + "type" : "ControlElement", + "id" : "acm028461jsd", + "name" : "testGetAuthorsFirstFirstAnds" + }, + "acm028462jsd" : { + "type" : "ControlElement", + "id" : "acm028462jsd", + "name" : "testGetAuthorsForAlphabetization" + }, + "acm028463jsd" : { + "type" : "ControlElement", + "id" : "acm028463jsd", + "name" : "testRemoveStartAndEndBraces" + }, + "acm028464jsd" : { + "type" : "ControlElement", + "id" : "acm028464jsd", + "name" : "createCorrectInitials" + }, + "acm028465jsd" : { + "type" : "ControlElement", + "id" : "acm028465jsd", + "name" : "parseNameWithBracesAroundFirstName" + }, + "acm028466jsd" : { + "type" : "ControlElement", + "id" : "acm028466jsd", + "name" : "parseNameWithBracesAroundLastName" + }, + "acm028467jsd" : { + "type" : "ControlElement", + "id" : "acm028467jsd", + "name" : "parseNameWithHyphenInFirstName" + }, + "acm028468jsd" : { + "type" : "ControlElement", + "id" : "acm028468jsd", + "name" : "parseNameWithHyphenInLastName" + }, + "acm028469jsd" : { + "type" : "ControlElement", + "id" : "acm028469jsd", + "name" : "parseNameWithHyphenInLastNameWithInitials" + }, + "acm028470jsd" : { + "type" : "ControlElement", + "id" : "acm028470jsd", + "name" : "parseNameWithHyphenInLastNameWithEscaped" + }, + "acm028471jsd" : { + "type" : "ControlElement", + "id" : "acm028471jsd", + "name" : "parseNameWithHyphenInLastNameWhenLastNameGivenFirst" + }, + "acm028472jsd" : { + "type" : "ControlElement", + "id" : "acm028472jsd", + "name" : "parseNameWithBraces" + }, + "acm028473jsd" : { + "type" : "ControlElement", + "id" : "acm028473jsd", + "name" : "parseFirstNameFromFirstAuthorMultipleAuthorsWithLatexNames" + }, + "acm028474jsd" : { + "type" : "ControlElement", + "id" : "acm028474jsd", + "name" : "parseFirstNameFromSecondAuthorMultipleAuthorsWithLatexNames" + }, + "acm028475jsd" : { + "type" : "ControlElement", + "id" : "acm028475jsd", + "name" : "parseLastNameFromFirstAuthorMultipleAuthorsWithLatexNames" + }, + "acm028476jsd" : { + "type" : "ControlElement", + "id" : "acm028476jsd", + "name" : "parseLastNameFromSecondAuthorMultipleAuthorsWithLatexNames" + }, + "acm028477jsd" : { + "type" : "ControlElement", + "id" : "acm028477jsd", + "name" : "parseInstitutionAuthorWithLatexNames" + }, + "acm028478jsd" : { + "type" : "ControlElement", + "id" : "acm028478jsd", + "name" : "parseRetrieveCachedAuthorListAfterGarbageCollection" + }, + "acm028479jsd" : { + "type" : "ControlElement", + "id" : "acm028479jsd", + "name" : "parseGarbageCollectAuthorListForUnreachableKey" + }, + "acm028480jsd" : { + "type" : "ControlElement", + "id" : "acm028480jsd", + "name" : "parseGarbageCollectUnreachableInstitution" + }, + "acm028481jsd" : { + "type" : "ControlElement", + "id" : "acm028481jsd", + "name" : "parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts" + }, + "acm028482jsd" : { + "type" : "ControlElement", + "id" : "acm028482jsd", + "name" : "parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts" + }, + "acm028483jsd" : { + "type" : "ControlElement", + "id" : "acm028483jsd", + "name" : "correctNamesWithOneComma" + }, + "acm028484jsd" : { + "type" : "ControlElement", + "id" : "acm028484jsd", + "name" : "equalsFalseDifferentOrder" + }, + "acm028485jsd" : { + "type" : "ControlElement", + "id" : "acm028485jsd", + "name" : "equalsFalseWhenNotAuthorList" + }, + "acm028486jsd" : { + "type" : "ControlElement", + "id" : "acm028486jsd", + "name" : "equalsTrueReflexive" + }, + "acm028487jsd" : { + "type" : "ControlElement", + "id" : "acm028487jsd", + "name" : "equalsTrueSymmetric" + }, + "acm028488jsd" : { + "type" : "ControlElement", + "id" : "acm028488jsd", + "name" : "equalsTrueTransitive" + }, + "acm028489jsd" : { + "type" : "ControlElement", + "id" : "acm028489jsd", + "name" : "equalsTrueConsistent" + }, + "acm028490jsd" : { + "type" : "ControlElement", + "id" : "acm028490jsd", + "name" : "equalsFalseForNull" + }, + "acm028491jsd" : { + "type" : "ControlElement", + "id" : "acm028491jsd", + "name" : "hashCodeConsistent" + }, + "acm028492jsd" : { + "type" : "ControlElement", + "id" : "acm028492jsd", + "name" : "hashCodeNotConstant" + }, + "acm028493jsd" : { + "type" : "ClassUnit", + "id" : "acm028493jsd", + "name" : "AuthorListTest", + "compilationUnitId" : "acm028364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018138jsd", "acm018175jsd" ], + "content" : [ "acm028369jsd", "acm028370jsd", "acm028371jsd", "acm028372jsd", "acm028373jsd", "acm028374jsd", "acm028375jsd", "acm028376jsd", "acm028377jsd", "acm028378jsd", "acm028379jsd", "acm028380jsd", "acm028381jsd", "acm028382jsd", "acm028383jsd", "acm028384jsd", "acm028385jsd", "acm028386jsd", "acm028387jsd", "acm028388jsd", "acm028389jsd", "acm028390jsd", "acm028391jsd", "acm028392jsd", "acm028393jsd", "acm028394jsd", "acm028395jsd", "acm028396jsd", "acm028397jsd", "acm028398jsd", "acm028399jsd", "acm028400jsd", "acm028401jsd", "acm028402jsd", "acm028403jsd", "acm028404jsd", "acm028405jsd", "acm028406jsd", "acm028407jsd", "acm028408jsd", "acm028409jsd", "acm028410jsd", "acm028411jsd", "acm028412jsd", "acm028413jsd", "acm028414jsd", "acm028415jsd", "acm028416jsd", "acm028417jsd", "acm028418jsd", "acm028419jsd", "acm028420jsd", "acm028421jsd", "acm028422jsd", "acm028423jsd", "acm028424jsd", "acm028425jsd", "acm028426jsd", "acm028427jsd", "acm028428jsd", "acm028429jsd", "acm028430jsd", "acm028431jsd", "acm028432jsd", "acm028433jsd", "acm028434jsd", "acm028435jsd", "acm028436jsd", "acm028437jsd", "acm028438jsd", "acm028439jsd", "acm028440jsd", "acm028441jsd", "acm028442jsd", "acm028443jsd", "acm028444jsd", "acm028445jsd", "acm028446jsd", "acm028447jsd", "acm028448jsd", "acm028449jsd", "acm028450jsd", "acm028451jsd", "acm028452jsd", "acm028453jsd", "acm028454jsd", "acm028455jsd", "acm028456jsd", "acm028457jsd", "acm028458jsd", "acm028459jsd", "acm028460jsd", "acm028461jsd", "acm028462jsd", "acm028463jsd", "acm028464jsd", "acm028465jsd", "acm028466jsd", "acm028467jsd", "acm028468jsd", "acm028469jsd", "acm028470jsd", "acm028471jsd", "acm028472jsd", "acm028473jsd", "acm028474jsd", "acm028475jsd", "acm028476jsd", "acm028477jsd", "acm028478jsd", "acm028479jsd", "acm028480jsd", "acm028481jsd", "acm028482jsd", "acm028483jsd", "acm028484jsd", "acm028485jsd", "acm028486jsd", "acm028487jsd", "acm028488jsd", "acm028489jsd", "acm028490jsd", "acm028491jsd", "acm028492jsd" ] + }, + "acm028494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028494jsd", + "name" : "AuthorTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028510jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028495jsd" : { + "type" : "CodePackage", + "id" : "acm028495jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028496jsd" ] + }, + "acm028496jsd" : { + "type" : "CodePackage", + "id" : "acm028496jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028497jsd" ] + }, + "acm028497jsd" : { + "type" : "CodePackage", + "id" : "acm028497jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028498jsd" ] + }, + "acm028498jsd" : { + "type" : "CodePackage", + "id" : "acm028498jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028494jsd" ] + }, + "acm028499jsd" : { + "type" : "ControlElement", + "id" : "acm028499jsd", + "name" : "addDotIfAbbreviationAddDot" + }, + "acm028500jsd" : { + "type" : "ControlElement", + "id" : "acm028500jsd", + "name" : "addDotIfAbbreviationDoesNotAddMultipleSpaces" + }, + "acm028501jsd" : { + "type" : "ControlElement", + "id" : "acm028501jsd", + "name" : "addDotIfAbbreviationDoNotAddDot" + }, + "acm028502jsd" : { + "type" : "ControlElement", + "id" : "acm028502jsd", + "name" : "addDotIfAbbreviationIfNameIsNullOrEmpty" + }, + "acm028503jsd" : { + "type" : "ControlElement", + "id" : "acm028503jsd", + "name" : "addDotIfAbbreviationLowerCaseLetters" + }, + "acm028504jsd" : { + "type" : "ControlElement", + "id" : "acm028504jsd", + "name" : "addDotIfAbbreviationStartWithUpperCaseAndHyphen" + }, + "acm028505jsd" : { + "type" : "ControlElement", + "id" : "acm028505jsd", + "name" : "addDotIfAbbreviationEndsWithUpperCaseLetter" + }, + "acm028506jsd" : { + "type" : "ControlElement", + "id" : "acm028506jsd", + "name" : "addDotIfAbbreviationEndsWithUpperCaseLetterSpaced" + }, + "acm028507jsd" : { + "type" : "ControlElement", + "id" : "acm028507jsd", + "name" : "addDotIfAbbreviationEndsWithWhiteSpaced" + }, + "acm028508jsd" : { + "type" : "ControlElement", + "id" : "acm028508jsd", + "name" : "addDotIfAbbreviationEndsWithDoubleAbbreviation" + }, + "acm028509jsd" : { + "type" : "ControlElement", + "id" : "acm028509jsd", + "name" : "addDotIfAbbreviationIfStartsWithNumber" + }, + "acm028510jsd" : { + "type" : "ClassUnit", + "id" : "acm028510jsd", + "name" : "AuthorTest", + "compilationUnitId" : "acm028494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm028499jsd", "acm028500jsd", "acm028501jsd", "acm028502jsd", "acm028503jsd", "acm028504jsd", "acm028505jsd", "acm028506jsd", "acm028507jsd", "acm028508jsd", "acm028509jsd" ] + }, + "acm028511jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028511jsd", + "name" : "BibEntryTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028608jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028512jsd" : { + "type" : "CodePackage", + "id" : "acm028512jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028513jsd" ] + }, + "acm028513jsd" : { + "type" : "CodePackage", + "id" : "acm028513jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028514jsd" ] + }, + "acm028514jsd" : { + "type" : "CodePackage", + "id" : "acm028514jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028515jsd" ] + }, + "acm028515jsd" : { + "type" : "CodePackage", + "id" : "acm028515jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028511jsd" ] + }, + "acm028516jsd" : { + "type" : "ControlElement", + "id" : "acm028516jsd", + "name" : "testDefaultConstructor" + }, + "acm028517jsd" : { + "type" : "ControlElement", + "id" : "acm028517jsd", + "name" : "settingTypeToNullThrowsException" + }, + "acm028518jsd" : { + "type" : "ControlElement", + "id" : "acm028518jsd", + "name" : "setNullFieldThrowsNPE" + }, + "acm028519jsd" : { + "type" : "ControlElement", + "id" : "acm028519jsd", + "name" : "getFieldIsCaseInsensitive" + }, + "acm028520jsd" : { + "type" : "ControlElement", + "id" : "acm028520jsd", + "name" : "getFieldWorksWithBibFieldAsWell" + }, + "acm028521jsd" : { + "type" : "ControlElement", + "id" : "acm028521jsd", + "name" : "newBibEntryIsUnchanged" + }, + "acm028522jsd" : { + "type" : "ControlElement", + "id" : "acm028522jsd", + "name" : "setFieldLeadsToAChangedEntry" + }, + "acm028523jsd" : { + "type" : "ControlElement", + "id" : "acm028523jsd", + "name" : "setFieldWorksWithBibFieldAsWell" + }, + "acm028524jsd" : { + "type" : "ControlElement", + "id" : "acm028524jsd", + "name" : "clonedBibEntryHasUniqueID" + }, + "acm028525jsd" : { + "type" : "ControlElement", + "id" : "acm028525jsd", + "name" : "clonedBibEntryWithMiscTypeHasOriginalChangedFlag" + }, + "acm028526jsd" : { + "type" : "ControlElement", + "id" : "acm028526jsd", + "name" : "clonedBibEntryWithBookTypeAndOneFieldHasOriginalChangedFlag" + }, + "acm028527jsd" : { + "type" : "ControlElement", + "id" : "acm028527jsd", + "name" : "setAndGetAreConsistentForMonth" + }, + "acm028528jsd" : { + "type" : "ControlElement", + "id" : "acm028528jsd", + "name" : "setAndGetAreConsistentForCapitalizedMonth" + }, + "acm028529jsd" : { + "type" : "ControlElement", + "id" : "acm028529jsd", + "name" : "setAndGetAreConsistentForMonthString" + }, + "acm028530jsd" : { + "type" : "ControlElement", + "id" : "acm028530jsd", + "name" : "monthCorrectlyReturnedForMonth" + }, + "acm028531jsd" : { + "type" : "ControlElement", + "id" : "acm028531jsd", + "name" : "monthCorrectlyReturnedForCapitalizedMonth" + }, + "acm028532jsd" : { + "type" : "ControlElement", + "id" : "acm028532jsd", + "name" : "monthCorrectlyReturnedForMonthString" + }, + "acm028533jsd" : { + "type" : "ControlElement", + "id" : "acm028533jsd", + "name" : "monthCorrectlyReturnedForMonthMay" + }, + "acm028534jsd" : { + "type" : "ControlElement", + "id" : "acm028534jsd", + "name" : "monthFieldCorrectlyReturnedForMonthMay" + }, + "acm028535jsd" : { + "type" : "ControlElement", + "id" : "acm028535jsd", + "name" : "getFieldOrAliasDateWithYearNumericalMonthString" + }, + "acm028536jsd" : { + "type" : "ControlElement", + "id" : "acm028536jsd", + "name" : "getFieldOrAliasDateWithYearAbbreviatedMonth" + }, + "acm028537jsd" : { + "type" : "ControlElement", + "id" : "acm028537jsd", + "name" : "getFieldOrAliasDateWithYearAbbreviatedMonthString" + }, + "acm028538jsd" : { + "type" : "ControlElement", + "id" : "acm028538jsd", + "name" : "getFieldOrAliasDateWithOnlyYear" + }, + "acm028539jsd" : { + "type" : "ControlElement", + "id" : "acm028539jsd", + "name" : "getFieldOrAliasYearWithDateYYYY" + }, + "acm028540jsd" : { + "type" : "ControlElement", + "id" : "acm028540jsd", + "name" : "getFieldOrAliasYearWithDateYYYYMM" + }, + "acm028541jsd" : { + "type" : "ControlElement", + "id" : "acm028541jsd", + "name" : "getFieldOrAliasYearWithDateYYYYMMDD" + }, + "acm028542jsd" : { + "type" : "ControlElement", + "id" : "acm028542jsd", + "name" : "getFieldOrAliasMonthWithDateYYYYReturnsNull" + }, + "acm028543jsd" : { + "type" : "ControlElement", + "id" : "acm028543jsd", + "name" : "getFieldOrAliasMonthWithDateYYYYMM" + }, + "acm028544jsd" : { + "type" : "ControlElement", + "id" : "acm028544jsd", + "name" : "getFieldOrAliasMonthWithDateYYYYMMDD" + }, + "acm028545jsd" : { + "type" : "ControlElement", + "id" : "acm028545jsd", + "name" : "getFieldOrAliasLatexFreeAlreadyFreeValueIsUnchanged" + }, + "acm028546jsd" : { + "type" : "ControlElement", + "id" : "acm028546jsd", + "name" : "getFieldOrAliasLatexFreeAlreadyFreeAliasValueIsUnchanged" + }, + "acm028547jsd" : { + "type" : "ControlElement", + "id" : "acm028547jsd", + "name" : "getFieldOrAliasLatexFreeBracesAreRemoved" + }, + "acm028548jsd" : { + "type" : "ControlElement", + "id" : "acm028548jsd", + "name" : "getFieldOrAliasLatexFreeBracesAreRemovedFromAlias" + }, + "acm028549jsd" : { + "type" : "ControlElement", + "id" : "acm028549jsd", + "name" : "getFieldOrAliasLatexFreeComplexConversionInAlias" + }, + "acm028550jsd" : { + "type" : "ControlElement", + "id" : "acm028550jsd", + "name" : "testGetAndAddToLinkedFileList" + }, + "acm028551jsd" : { + "type" : "ControlElement", + "id" : "acm028551jsd", + "name" : "replaceOfLinkWorks" + }, + "acm028552jsd" : { + "type" : "ControlElement", + "id" : "acm028552jsd", + "name" : "testGetEmptyKeywords" + }, + "acm028553jsd" : { + "type" : "ControlElement", + "id" : "acm028553jsd", + "name" : "testGetSingleKeywords" + }, + "acm028554jsd" : { + "type" : "ControlElement", + "id" : "acm028554jsd", + "name" : "settingCiteKeyLeadsToCorrectCiteKey" + }, + "acm028555jsd" : { + "type" : "ControlElement", + "id" : "acm028555jsd", + "name" : "settingCiteKeyLeadsToHasCiteKy" + }, + "acm028556jsd" : { + "type" : "ControlElement", + "id" : "acm028556jsd", + "name" : "clearFieldWorksForAuthor" + }, + "acm028557jsd" : { + "type" : "ControlElement", + "id" : "acm028557jsd", + "name" : "setFieldWorksForAuthor" + }, + "acm028558jsd" : { + "type" : "ControlElement", + "id" : "acm028558jsd", + "name" : "allFieldsPresentDefault" + }, + "acm028559jsd" : { + "type" : "ControlElement", + "id" : "acm028559jsd", + "name" : "allFieldsPresentOr" + }, + "acm028560jsd" : { + "type" : "ControlElement", + "id" : "acm028560jsd", + "name" : "isNullCiteKeyThrowsNPE" + }, + "acm028561jsd" : { + "type" : "ControlElement", + "id" : "acm028561jsd", + "name" : "isEmptyCiteKey" + }, + "acm028562jsd" : { + "type" : "ControlElement", + "id" : "acm028562jsd", + "name" : "identicObjectsareEqual" + }, + "acm028563jsd" : { + "type" : "ControlElement", + "id" : "acm028563jsd", + "name" : "compareToNullObjectIsFalse" + }, + "acm028564jsd" : { + "type" : "ControlElement", + "id" : "acm028564jsd", + "name" : "compareToDifferentClassIsFalse" + }, + "acm028565jsd" : { + "type" : "ControlElement", + "id" : "acm028565jsd", + "name" : "compareIsTrueWhenIdAndFieldsAreEqual" + }, + "acm028566jsd" : { + "type" : "ControlElement", + "id" : "acm028566jsd", + "name" : "addNullKeywordThrowsNPE" + }, + "acm028567jsd" : { + "type" : "ControlElement", + "id" : "acm028567jsd", + "name" : "putNullKeywordListThrowsNPE" + }, + "acm028568jsd" : { + "type" : "ControlElement", + "id" : "acm028568jsd", + "name" : "putNullKeywordSeparatorThrowsNPE" + }, + "acm028569jsd" : { + "type" : "ControlElement", + "id" : "acm028569jsd", + "name" : "testGetSeparatedKeywordsAreCorrect" + }, + "acm028570jsd" : { + "type" : "ControlElement", + "id" : "acm028570jsd", + "name" : "testAddKeywordIsCorrect" + }, + "acm028571jsd" : { + "type" : "ControlElement", + "id" : "acm028571jsd", + "name" : "testAddKeywordHasChanged" + }, + "acm028572jsd" : { + "type" : "ControlElement", + "id" : "acm028572jsd", + "name" : "testAddKeywordTwiceYiedsOnlyOne" + }, + "acm028573jsd" : { + "type" : "ControlElement", + "id" : "acm028573jsd", + "name" : "addKeywordIsCaseSensitive" + }, + "acm028574jsd" : { + "type" : "ControlElement", + "id" : "acm028574jsd", + "name" : "testAddKeywordWithDifferentCapitalizationChanges" + }, + "acm028575jsd" : { + "type" : "ControlElement", + "id" : "acm028575jsd", + "name" : "testAddKeywordEmptyKeywordIsNotAdded" + }, + "acm028576jsd" : { + "type" : "ControlElement", + "id" : "acm028576jsd", + "name" : "testAddKeywordEmptyKeywordNotChanged" + }, + "acm028577jsd" : { + "type" : "ControlElement", + "id" : "acm028577jsd", + "name" : "texNewBibEntryHasNoKeywords" + }, + "acm028578jsd" : { + "type" : "ControlElement", + "id" : "acm028578jsd", + "name" : "texNewBibEntryHasNoKeywordsEvenAfterAddingEmptyKeyword" + }, + "acm028579jsd" : { + "type" : "ControlElement", + "id" : "acm028579jsd", + "name" : "texNewBibEntryAfterAddingEmptyKeywordNotChanged" + }, + "acm028580jsd" : { + "type" : "ControlElement", + "id" : "acm028580jsd", + "name" : "testAddKeywordsWorksAsExpected" + }, + "acm028581jsd" : { + "type" : "ControlElement", + "id" : "acm028581jsd", + "name" : "testPutKeywordsOverwritesOldKeywords" + }, + "acm028582jsd" : { + "type" : "ControlElement", + "id" : "acm028582jsd", + "name" : "testPutKeywordsHasChanged" + }, + "acm028583jsd" : { + "type" : "ControlElement", + "id" : "acm028583jsd", + "name" : "testPutKeywordsPutEmpyListErasesPreviousKeywords" + }, + "acm028584jsd" : { + "type" : "ControlElement", + "id" : "acm028584jsd", + "name" : "testPutKeywordsPutEmpyListHasChanged" + }, + "acm028585jsd" : { + "type" : "ControlElement", + "id" : "acm028585jsd", + "name" : "testPutKeywordsPutEmpyListToEmptyBibentry" + }, + "acm028586jsd" : { + "type" : "ControlElement", + "id" : "acm028586jsd", + "name" : "testPutKeywordsPutEmpyListToEmptyBibentryNotChanged" + }, + "acm028587jsd" : { + "type" : "ControlElement", + "id" : "acm028587jsd", + "name" : "putKeywordsToEmptyReturnsNoChange" + }, + "acm028588jsd" : { + "type" : "ControlElement", + "id" : "acm028588jsd", + "name" : "clearKeywordsReturnsChange" + }, + "acm028589jsd" : { + "type" : "ControlElement", + "id" : "acm028589jsd", + "name" : "changeKeywordsReturnsChange" + }, + "acm028590jsd" : { + "type" : "ControlElement", + "id" : "acm028590jsd", + "name" : "putKeywordsToSameReturnsNoChange" + }, + "acm028591jsd" : { + "type" : "ControlElement", + "id" : "acm028591jsd", + "name" : "getKeywordsReturnsParsedKeywordListFromKeywordsField" + }, + "acm028592jsd" : { + "type" : "ControlElement", + "id" : "acm028592jsd", + "name" : "removeKeywordsOnEntryWithoutKeywordsDoesNothing" + }, + "acm028593jsd" : { + "type" : "ControlElement", + "id" : "acm028593jsd", + "name" : "removeKeywordsWithEmptyListDoesNothing" + }, + "acm028594jsd" : { + "type" : "ControlElement", + "id" : "acm028594jsd", + "name" : "removeKeywordsWithNonExistingKeywordsDoesNothing" + }, + "acm028595jsd" : { + "type" : "ControlElement", + "id" : "acm028595jsd", + "name" : "removeKeywordsWithExistingKeywordsRemovesThem" + }, + "acm028596jsd" : { + "type" : "ControlElement", + "id" : "acm028596jsd", + "name" : "keywordListCorrectlyConstructedForThreeKeywords" + }, + "acm028597jsd" : { + "type" : "ControlElement", + "id" : "acm028597jsd", + "name" : "testGetEmptyResolvedKeywords" + }, + "acm028598jsd" : { + "type" : "ControlElement", + "id" : "acm028598jsd", + "name" : "testGetSingleResolvedKeywords" + }, + "acm028599jsd" : { + "type" : "ControlElement", + "id" : "acm028599jsd", + "name" : "testGetResolvedKeywords" + }, + "acm028600jsd" : { + "type" : "ControlElement", + "id" : "acm028600jsd", + "name" : "settingTitleFieldsLeadsToChangeFlagged" + }, + "acm028601jsd" : { + "type" : "ControlElement", + "id" : "acm028601jsd", + "name" : "builderReturnsABibEntryNotChangedFlagged" + }, + "acm028602jsd" : { + "type" : "ControlElement", + "id" : "acm028602jsd", + "name" : "mergeEntriesWithNoOverlap" + }, + "acm028603jsd" : { + "type" : "ControlElement", + "id" : "acm028603jsd", + "name" : "mergeEntriesWithOverlap" + }, + "acm028604jsd" : { + "type" : "ControlElement", + "id" : "acm028604jsd", + "name" : "mergeEntriesWithNoOverlapAndNonExistingPriorityFields" + }, + "acm028605jsd" : { + "type" : "ControlElement", + "id" : "acm028605jsd", + "name" : "mergeEntriesWithNoOverlapAndExistingPriorityFields" + }, + "acm028606jsd" : { + "type" : "ControlElement", + "id" : "acm028606jsd", + "name" : "mergeEntriesWithOverlapAndPriorityGivenToNonOverlappingField" + }, + "acm028607jsd" : { + "type" : "ControlElement", + "id" : "acm028607jsd", + "name" : "mergeEntriesWithOverlapAndPriorityGivenToOverlappingField" + }, + "acm028608jsd" : { + "type" : "ClassUnit", + "id" : "acm028608jsd", + "name" : "BibEntryTest", + "compilationUnitId" : "acm028511jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm017988jsd", "acm018267jsd", "acm018443jsd", "acm018479jsd", "acm018509jsd", "acm018673jsd", "acm018754jsd", "acm018813jsd" ], + "content" : [ "acm028516jsd", "acm028517jsd", "acm028518jsd", "acm028519jsd", "acm028520jsd", "acm028521jsd", "acm028522jsd", "acm028523jsd", "acm028524jsd", "acm028525jsd", "acm028526jsd", "acm028527jsd", "acm028528jsd", "acm028529jsd", "acm028530jsd", "acm028531jsd", "acm028532jsd", "acm028533jsd", "acm028534jsd", "acm028535jsd", "acm028536jsd", "acm028537jsd", "acm028538jsd", "acm028539jsd", "acm028540jsd", "acm028541jsd", "acm028542jsd", "acm028543jsd", "acm028544jsd", "acm028545jsd", "acm028546jsd", "acm028547jsd", "acm028548jsd", "acm028549jsd", "acm028550jsd", "acm028551jsd", "acm028552jsd", "acm028553jsd", "acm028554jsd", "acm028555jsd", "acm028556jsd", "acm028557jsd", "acm028558jsd", "acm028559jsd", "acm028560jsd", "acm028561jsd", "acm028562jsd", "acm028563jsd", "acm028564jsd", "acm028565jsd", "acm028566jsd", "acm028567jsd", "acm028568jsd", "acm028569jsd", "acm028570jsd", "acm028571jsd", "acm028572jsd", "acm028573jsd", "acm028574jsd", "acm028575jsd", "acm028576jsd", "acm028577jsd", "acm028578jsd", "acm028579jsd", "acm028580jsd", "acm028581jsd", "acm028582jsd", "acm028583jsd", "acm028584jsd", "acm028585jsd", "acm028586jsd", "acm028587jsd", "acm028588jsd", "acm028589jsd", "acm028590jsd", "acm028591jsd", "acm028592jsd", "acm028593jsd", "acm028594jsd", "acm028595jsd", "acm028596jsd", "acm028597jsd", "acm028598jsd", "acm028599jsd", "acm028600jsd", "acm028601jsd", "acm028602jsd", "acm028603jsd", "acm028604jsd", "acm028605jsd", "acm028606jsd", "acm028607jsd" ] + }, + "acm028609jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028609jsd", + "name" : "BibEntryTypesManagerTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028629jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028610jsd" : { + "type" : "CodePackage", + "id" : "acm028610jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028611jsd" ] + }, + "acm028611jsd" : { + "type" : "CodePackage", + "id" : "acm028611jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028612jsd" ] + }, + "acm028612jsd" : { + "type" : "CodePackage", + "id" : "acm028612jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028613jsd" ] + }, + "acm028613jsd" : { + "type" : "CodePackage", + "id" : "acm028613jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028609jsd" ] + }, + "acm028614jsd" : { + "type" : "ControlElement", + "id" : "acm028614jsd", + "name" : "setUp" + }, + "acm028615jsd" : { + "type" : "ControlElement", + "id" : "acm028615jsd", + "name" : "isCustomOrModifiedTypeReturnsTrueForModifiedStandardEntryType" + }, + "acm028616jsd" : { + "type" : "ControlElement", + "id" : "acm028616jsd", + "name" : "allTypesBibtexAreCorrect" + }, + "acm028617jsd" : { + "type" : "ControlElement", + "id" : "acm028617jsd", + "name" : "allTypesBiblatexAreCorrect" + }, + "acm028618jsd" : { + "type" : "ControlElement", + "id" : "acm028618jsd", + "name" : "unknownTypeIsNotFound" + }, + "acm028619jsd" : { + "type" : "ControlElement", + "id" : "acm028619jsd", + "name" : "newCustomEntryTypeFound" + }, + "acm028620jsd" : { + "type" : "ControlElement", + "id" : "acm028620jsd", + "name" : "registeredBibEntryTypeIsContainedInListOfCustomizedEntryTypes" + }, + "acm028621jsd" : { + "type" : "ControlElement", + "id" : "acm028621jsd", + "name" : "registerBibEntryTypeDoesNotAffectOtherMode" + }, + "acm028622jsd" : { + "type" : "ControlElement", + "id" : "acm028622jsd", + "name" : "overwriteBibEntryTypeFields" + }, + "acm028623jsd" : { + "type" : "ControlElement", + "id" : "acm028623jsd", + "name" : "overwriteStandardTypeRequiredFields" + }, + "acm028624jsd" : { + "type" : "ControlElement", + "id" : "acm028624jsd", + "name" : "registeredCustomizedStandardEntryTypeIsNotContainedInListOfCustomEntryTypes" + }, + "acm028625jsd" : { + "type" : "ControlElement", + "id" : "acm028625jsd", + "name" : "standardTypeIsStillAccessibleIfOverwritten" + }, + "acm028626jsd" : { + "type" : "ControlElement", + "id" : "acm028626jsd", + "name" : "testsModifyingArticle" + }, + "acm028627jsd" : { + "type" : "ControlElement", + "id" : "acm028627jsd", + "name" : "testsModifyingArticleWithParsing" + }, + "acm028628jsd" : { + "type" : "ControlElement", + "id" : "acm028628jsd", + "name" : "testsModifyingArticleWithParsingKeepsListOrder" + }, + "acm028629jsd" : { + "type" : "ClassUnit", + "id" : "acm028629jsd", + "name" : "BibEntryTypesManagerTest", + "compilationUnitId" : "acm028609jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018032jsd", "acm018289jsd", "acm018333jsd", "acm018813jsd", "acm019005jsd", "acm019079jsd" ], + "content" : [ "acm028614jsd", "acm028615jsd", "acm028616jsd", "acm028617jsd", "acm028618jsd", "acm028619jsd", "acm028620jsd", "acm028621jsd", "acm028622jsd", "acm028623jsd", "acm028624jsd", "acm028625jsd", "acm028626jsd", "acm028627jsd", "acm028628jsd" ] + }, + "acm028630jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028630jsd", + "name" : "BibtexStringTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028647jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028631jsd" : { + "type" : "CodePackage", + "id" : "acm028631jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028632jsd" ] + }, + "acm028632jsd" : { + "type" : "CodePackage", + "id" : "acm028632jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028633jsd" ] + }, + "acm028633jsd" : { + "type" : "CodePackage", + "id" : "acm028633jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028634jsd" ] + }, + "acm028634jsd" : { + "type" : "CodePackage", + "id" : "acm028634jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028630jsd" ] + }, + "acm028635jsd" : { + "type" : "ControlElement", + "id" : "acm028635jsd", + "name" : "initalizationWorksCorrectly" + }, + "acm028636jsd" : { + "type" : "ControlElement", + "id" : "acm028636jsd", + "name" : "idIsUpdatedAtSetId" + }, + "acm028637jsd" : { + "type" : "ControlElement", + "id" : "acm028637jsd", + "name" : "cloningDoesNotChangeContents" + }, + "acm028638jsd" : { + "type" : "ControlElement", + "id" : "acm028638jsd", + "name" : "clonedBibtexStringEqualsOriginalString" + }, + "acm028639jsd" : { + "type" : "ControlElement", + "id" : "acm028639jsd", + "name" : "usingTheIdGeneratorDoesNotHitTheOriginalId" + }, + "acm028640jsd" : { + "type" : "ControlElement", + "id" : "acm028640jsd", + "name" : "settingFieldsInACloneWorks" + }, + "acm028641jsd" : { + "type" : "ControlElement", + "id" : "acm028641jsd", + "name" : "modifyingACloneDoesNotModifyTheOriginalEntry" + }, + "acm028642jsd" : { + "type" : "ControlElement", + "id" : "acm028642jsd", + "name" : "getContentNeverReturnsNull" + }, + "acm028643jsd" : { + "type" : "ControlElement", + "id" : "acm028643jsd", + "name" : "authorTypeCorrectlyDetermined" + }, + "acm028644jsd" : { + "type" : "ControlElement", + "id" : "acm028644jsd", + "name" : "institutionTypeCorrectlyDetermined" + }, + "acm028645jsd" : { + "type" : "ControlElement", + "id" : "acm028645jsd", + "name" : "otherTypeCorrectlyDeterminedForLowerCase" + }, + "acm028646jsd" : { + "type" : "ControlElement", + "id" : "acm028646jsd", + "name" : "otherTypeCorrectlyDeterminedForUpperCase" + }, + "acm028647jsd" : { + "type" : "ClassUnit", + "id" : "acm028647jsd", + "name" : "BibtexStringTest", + "compilationUnitId" : "acm028630jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018367jsd" ], + "content" : [ "acm028635jsd", "acm028636jsd", "acm028637jsd", "acm028638jsd", "acm028639jsd", "acm028640jsd", "acm028641jsd", "acm028642jsd", "acm028643jsd", "acm028644jsd", "acm028645jsd", "acm028646jsd" ] + }, + "acm028648jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028648jsd", + "name" : "CanonicalBibEntryTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028656jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028649jsd" : { + "type" : "CodePackage", + "id" : "acm028649jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028650jsd" ] + }, + "acm028650jsd" : { + "type" : "CodePackage", + "id" : "acm028650jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028651jsd" ] + }, + "acm028651jsd" : { + "type" : "CodePackage", + "id" : "acm028651jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028652jsd" ] + }, + "acm028652jsd" : { + "type" : "CodePackage", + "id" : "acm028652jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028648jsd" ] + }, + "acm028653jsd" : { + "type" : "ControlElement", + "id" : "acm028653jsd", + "name" : "canonicalRepresentationIsCorrectForStringMonth" + }, + "acm028654jsd" : { + "type" : "ControlElement", + "id" : "acm028654jsd", + "name" : "simpleCanonicalRepresentation" + }, + "acm028655jsd" : { + "type" : "ControlElement", + "id" : "acm028655jsd", + "name" : "canonicalRepresentationWithNewlines" + }, + "acm028656jsd" : { + "type" : "ClassUnit", + "id" : "acm028656jsd", + "name" : "CanonicalBibEntryTest", + "compilationUnitId" : "acm028648jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm028653jsd", "acm028654jsd", "acm028655jsd" ] + }, + "acm028657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028657jsd", + "name" : "CrossrefTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028676jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028658jsd" : { + "type" : "CodePackage", + "id" : "acm028658jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028659jsd" ] + }, + "acm028659jsd" : { + "type" : "CodePackage", + "id" : "acm028659jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028660jsd" ] + }, + "acm028660jsd" : { + "type" : "CodePackage", + "id" : "acm028660jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028661jsd" ] + }, + "acm028661jsd" : { + "type" : "CodePackage", + "id" : "acm028661jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028657jsd" ] + }, + "acm028662jsd" : { + "type" : "ControlElement", + "id" : "acm028662jsd", + "name" : "setup" + }, + "acm028663jsd" : { + "type" : "ControlElement", + "id" : "acm028663jsd", + "name" : "forbiddenFields" + }, + "acm028664jsd" : { + "type" : "ControlElement", + "id" : "acm028664jsd", + "name" : "authorInheritance" + }, + "acm028665jsd" : { + "type" : "ControlElement", + "id" : "acm028665jsd", + "name" : "authorInheritanceSource" + }, + "acm028666jsd" : { + "type" : "ControlElement", + "id" : "acm028666jsd", + "name" : "mainTitleInheritance" + }, + "acm028667jsd" : { + "type" : "ControlElement", + "id" : "acm028667jsd", + "name" : "mainTitleInheritanceSource" + }, + "acm028668jsd" : { + "type" : "ControlElement", + "id" : "acm028668jsd", + "name" : "bookTitleInheritance" + }, + "acm028669jsd" : { + "type" : "ControlElement", + "id" : "acm028669jsd", + "name" : "bookTitleInheritanceSource" + }, + "acm028670jsd" : { + "type" : "ControlElement", + "id" : "acm028670jsd", + "name" : "journalTitleInheritance" + }, + "acm028671jsd" : { + "type" : "ControlElement", + "id" : "acm028671jsd", + "name" : "journalTitleInheritanceSource" + }, + "acm028672jsd" : { + "type" : "ControlElement", + "id" : "acm028672jsd", + "name" : "noTitleInheritance" + }, + "acm028673jsd" : { + "type" : "ControlElement", + "id" : "acm028673jsd", + "name" : "noTitleInheritanceSource" + }, + "acm028674jsd" : { + "type" : "ControlElement", + "id" : "acm028674jsd", + "name" : "sameNameInheritance" + }, + "acm028675jsd" : { + "type" : "ControlElement", + "id" : "acm028675jsd", + "name" : "sameNameInheritance" + }, + "acm028676jsd" : { + "type" : "ClassUnit", + "id" : "acm028676jsd", + "name" : "CrossrefTest", + "compilationUnitId" : "acm028657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm018798jsd", "acm019005jsd" ], + "content" : [ "acm028662jsd", "acm028663jsd", "acm028664jsd", "acm028665jsd", "acm028666jsd", "acm028667jsd", "acm028668jsd", "acm028669jsd", "acm028670jsd", "acm028671jsd", "acm028672jsd", "acm028673jsd", "acm028674jsd", "acm028675jsd" ] + }, + "acm028677jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028677jsd", + "name" : "DateTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028689jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028678jsd" : { + "type" : "CodePackage", + "id" : "acm028678jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028679jsd" ] + }, + "acm028679jsd" : { + "type" : "CodePackage", + "id" : "acm028679jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028680jsd" ] + }, + "acm028680jsd" : { + "type" : "CodePackage", + "id" : "acm028680jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028681jsd" ] + }, + "acm028681jsd" : { + "type" : "CodePackage", + "id" : "acm028681jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028677jsd" ] + }, + "acm028682jsd" : { + "type" : "ControlElement", + "id" : "acm028682jsd", + "name" : "validDates" + }, + "acm028683jsd" : { + "type" : "ControlElement", + "id" : "acm028683jsd", + "name" : "parseByDatePattern" + }, + "acm028684jsd" : { + "type" : "ControlElement", + "id" : "acm028684jsd", + "name" : "invalidCornerCases" + }, + "acm028685jsd" : { + "type" : "ControlElement", + "id" : "acm028685jsd", + "name" : "nonExistentDates" + }, + "acm028686jsd" : { + "type" : "ControlElement", + "id" : "acm028686jsd", + "name" : "parseYearRange" + }, + "acm028687jsd" : { + "type" : "ControlElement", + "id" : "acm028687jsd", + "name" : "parseZonedTime" + }, + "acm028688jsd" : { + "type" : "ControlElement", + "id" : "acm028688jsd", + "name" : "parseDateNull" + }, + "acm028689jsd" : { + "type" : "ClassUnit", + "id" : "acm028689jsd", + "name" : "DateTest", + "compilationUnitId" : "acm028677jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018401jsd" ], + "content" : [ "acm028682jsd", "acm028683jsd", "acm028684jsd", "acm028685jsd", "acm028686jsd", "acm028687jsd", "acm028688jsd" ] + }, + "acm028690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028690jsd", + "name" : "EntryLinkListTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028705jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028691jsd" : { + "type" : "CodePackage", + "id" : "acm028691jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028692jsd" ] + }, + "acm028692jsd" : { + "type" : "CodePackage", + "id" : "acm028692jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028693jsd" ] + }, + "acm028693jsd" : { + "type" : "CodePackage", + "id" : "acm028693jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028694jsd" ] + }, + "acm028694jsd" : { + "type" : "CodePackage", + "id" : "acm028694jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028690jsd" ] + }, + "acm028695jsd" : { + "type" : "ControlElement", + "id" : "acm028695jsd", + "name" : "before" + }, + "acm028696jsd" : { + "type" : "ControlElement", + "id" : "acm028696jsd", + "name" : "create" + }, + "acm028697jsd" : { + "type" : "ControlElement", + "id" : "acm028697jsd", + "name" : "givenFieldValueAndDatabaseWhenParsingThenExpectKey" + }, + "acm028698jsd" : { + "type" : "ControlElement", + "id" : "acm028698jsd", + "name" : "givenFieldValueAndDatabaseWhenParsingThenExpectDataBase" + }, + "acm028699jsd" : { + "type" : "ControlElement", + "id" : "acm028699jsd", + "name" : "givenFieldValueAndDatabaseWhenParsingThenExpectEmptyLinkedEntry" + }, + "acm028700jsd" : { + "type" : "ControlElement", + "id" : "acm028700jsd", + "name" : "givenFieldValueAndDatabaseWhenParsingThenExpectLink" + }, + "acm028701jsd" : { + "type" : "ControlElement", + "id" : "acm028701jsd", + "name" : "givenBibEntryWhenParsingThenExpectLink" + }, + "acm028702jsd" : { + "type" : "ControlElement", + "id" : "acm028702jsd", + "name" : "givenNullFieldValueAndDatabaseWhenParsingThenExpectLinksIsEmpty" + }, + "acm028703jsd" : { + "type" : "ControlElement", + "id" : "acm028703jsd", + "name" : "givenTargetAndSourceWhenSourceCrossrefTargetThenSourceCrossrefsTarget" + }, + "acm028704jsd" : { + "type" : "ControlElement", + "id" : "acm028704jsd", + "name" : "assertSourceCrossrefsTarget" + }, + "acm028705jsd" : { + "type" : "ClassUnit", + "id" : "acm028705jsd", + "name" : "EntryLinkListTest", + "compilationUnitId" : "acm028690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017988jsd", "acm018267jsd", "acm018539jsd" ], + "content" : [ "acm028695jsd", "acm028696jsd", "acm028697jsd", "acm028698jsd", "acm028699jsd", "acm028700jsd", "acm028701jsd", "acm028702jsd", "acm028703jsd", "acm028704jsd" ] + }, + "acm028706jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028706jsd", + "name" : "EntryTypeFactoryTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028712jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028707jsd" : { + "type" : "CodePackage", + "id" : "acm028707jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028708jsd" ] + }, + "acm028708jsd" : { + "type" : "CodePackage", + "id" : "acm028708jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028709jsd" ] + }, + "acm028709jsd" : { + "type" : "CodePackage", + "id" : "acm028709jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028710jsd" ] + }, + "acm028710jsd" : { + "type" : "CodePackage", + "id" : "acm028710jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028706jsd" ] + }, + "acm028711jsd" : { + "type" : "ControlElement", + "id" : "acm028711jsd", + "name" : "testParseEntryTypePatent" + }, + "acm028712jsd" : { + "type" : "ClassUnit", + "id" : "acm028712jsd", + "name" : "EntryTypeFactoryTest", + "compilationUnitId" : "acm028706jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019005jsd" ], + "content" : [ "acm028711jsd" ] + }, + "acm028713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028713jsd", + "name" : "IdGeneratorTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028719jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028714jsd" : { + "type" : "CodePackage", + "id" : "acm028714jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028715jsd" ] + }, + "acm028715jsd" : { + "type" : "CodePackage", + "id" : "acm028715jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028716jsd" ] + }, + "acm028716jsd" : { + "type" : "CodePackage", + "id" : "acm028716jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028717jsd" ] + }, + "acm028717jsd" : { + "type" : "CodePackage", + "id" : "acm028717jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028713jsd" ] + }, + "acm028718jsd" : { + "type" : "ControlElement", + "id" : "acm028718jsd", + "name" : "testCreateNeutralId" + }, + "acm028719jsd" : { + "type" : "ClassUnit", + "id" : "acm028719jsd", + "name" : "IdGeneratorTest", + "compilationUnitId" : "acm028713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm028718jsd" ] + }, + "acm028720jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028720jsd", + "name" : "KeywordListTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028743jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028721jsd" : { + "type" : "CodePackage", + "id" : "acm028721jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028722jsd" ] + }, + "acm028722jsd" : { + "type" : "CodePackage", + "id" : "acm028722jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028723jsd" ] + }, + "acm028723jsd" : { + "type" : "CodePackage", + "id" : "acm028723jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028724jsd" ] + }, + "acm028724jsd" : { + "type" : "CodePackage", + "id" : "acm028724jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028720jsd" ] + }, + "acm028725jsd" : { + "type" : "ControlElement", + "id" : "acm028725jsd", + "name" : "setUp" + }, + "acm028726jsd" : { + "type" : "ControlElement", + "id" : "acm028726jsd", + "name" : "parseEmptyStringReturnsEmptyList" + }, + "acm028727jsd" : { + "type" : "ControlElement", + "id" : "acm028727jsd", + "name" : "parseOneWordReturnsOneKeyword" + }, + "acm028728jsd" : { + "type" : "ControlElement", + "id" : "acm028728jsd", + "name" : "parseTwoWordReturnsTwoKeywords" + }, + "acm028729jsd" : { + "type" : "ControlElement", + "id" : "acm028729jsd", + "name" : "parseTwoWordReturnsTwoKeywordsWithoutSpace" + }, + "acm028730jsd" : { + "type" : "ControlElement", + "id" : "acm028730jsd", + "name" : "parseTwoWordReturnsTwoKeywordsWithDifferentDelimiter" + }, + "acm028731jsd" : { + "type" : "ControlElement", + "id" : "acm028731jsd", + "name" : "parseWordsWithWhitespaceReturnsOneKeyword" + }, + "acm028732jsd" : { + "type" : "ControlElement", + "id" : "acm028732jsd", + "name" : "parseWordsWithWhitespaceAndCommaReturnsTwoKeyword" + }, + "acm028733jsd" : { + "type" : "ControlElement", + "id" : "acm028733jsd", + "name" : "parseIgnoresDuplicates" + }, + "acm028734jsd" : { + "type" : "ControlElement", + "id" : "acm028734jsd", + "name" : "parseTakeDelimiterNotRegexWhite" + }, + "acm028735jsd" : { + "type" : "ControlElement", + "id" : "acm028735jsd", + "name" : "parseWordsWithBracketsReturnsOneKeyword" + }, + "acm028736jsd" : { + "type" : "ControlElement", + "id" : "acm028736jsd", + "name" : "asStringAddsSpaceAfterDelimiter" + }, + "acm028737jsd" : { + "type" : "ControlElement", + "id" : "acm028737jsd", + "name" : "parseHierarchicalChain" + }, + "acm028738jsd" : { + "type" : "ControlElement", + "id" : "acm028738jsd", + "name" : "parseTwoHierarchicalChains" + }, + "acm028739jsd" : { + "type" : "ControlElement", + "id" : "acm028739jsd", + "name" : "mergeTwoIdenticalKeywordsShouldReturnOnKeyword" + }, + "acm028740jsd" : { + "type" : "ControlElement", + "id" : "acm028740jsd", + "name" : "mergeOneEmptyKeywordAnAnotherNonEmptyShouldReturnTheNonEmptyKeyword" + }, + "acm028741jsd" : { + "type" : "ControlElement", + "id" : "acm028741jsd", + "name" : "mergeTwoDistinctKeywordsShouldReturnTheTwoKeywordsMerged" + }, + "acm028742jsd" : { + "type" : "ControlElement", + "id" : "acm028742jsd", + "name" : "mergeTwoListsOfKeywordsShouldReturnTheKeywordsMerged" + }, + "acm028743jsd" : { + "type" : "ClassUnit", + "id" : "acm028743jsd", + "name" : "KeywordListTest", + "compilationUnitId" : "acm028720jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018443jsd", "acm018479jsd" ], + "content" : [ "acm028725jsd", "acm028726jsd", "acm028727jsd", "acm028728jsd", "acm028729jsd", "acm028730jsd", "acm028731jsd", "acm028732jsd", "acm028733jsd", "acm028734jsd", "acm028735jsd", "acm028736jsd", "acm028737jsd", "acm028738jsd", "acm028739jsd", "acm028740jsd", "acm028741jsd", "acm028742jsd" ] + }, + "acm028744jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028744jsd", + "name" : "KeywordTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028751jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028745jsd" : { + "type" : "CodePackage", + "id" : "acm028745jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028746jsd" ] + }, + "acm028746jsd" : { + "type" : "CodePackage", + "id" : "acm028746jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028747jsd" ] + }, + "acm028747jsd" : { + "type" : "CodePackage", + "id" : "acm028747jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028748jsd" ] + }, + "acm028748jsd" : { + "type" : "CodePackage", + "id" : "acm028748jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028744jsd" ] + }, + "acm028749jsd" : { + "type" : "ControlElement", + "id" : "acm028749jsd", + "name" : "getPathFromRootAsStringForSimpleChain" + }, + "acm028750jsd" : { + "type" : "ControlElement", + "id" : "acm028750jsd", + "name" : "getAllSubchainsAsStringForSimpleChain" + }, + "acm028751jsd" : { + "type" : "ClassUnit", + "id" : "acm028751jsd", + "name" : "KeywordTest", + "compilationUnitId" : "acm028744jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018443jsd" ], + "content" : [ "acm028749jsd", "acm028750jsd" ] + }, + "acm028752jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028752jsd", + "name" : "MonthTest", + "parentId" : "acm018120jsd", + "content" : [ "acm028783jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028753jsd" : { + "type" : "CodePackage", + "id" : "acm028753jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028754jsd" ] + }, + "acm028754jsd" : { + "type" : "CodePackage", + "id" : "acm028754jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028755jsd" ] + }, + "acm028755jsd" : { + "type" : "CodePackage", + "id" : "acm028755jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028756jsd" ] + }, + "acm028756jsd" : { + "type" : "CodePackage", + "id" : "acm028756jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028752jsd" ] + }, + "acm028757jsd" : { + "type" : "ControlElement", + "id" : "acm028757jsd", + "name" : "parseCorrectly" + }, + "acm028758jsd" : { + "type" : "ControlElement", + "id" : "acm028758jsd", + "name" : "parseShortName" + }, + "acm028759jsd" : { + "type" : "ControlElement", + "id" : "acm028759jsd", + "name" : "parseBibtexName" + }, + "acm028760jsd" : { + "type" : "ControlElement", + "id" : "acm028760jsd", + "name" : "parseFullName" + }, + "acm028761jsd" : { + "type" : "ControlElement", + "id" : "acm028761jsd", + "name" : "parseTwoDigitNumber" + }, + "acm028762jsd" : { + "type" : "ControlElement", + "id" : "acm028762jsd", + "name" : "parseNumber" + }, + "acm028763jsd" : { + "type" : "ControlElement", + "id" : "acm028763jsd", + "name" : "parseShortNameGerman" + }, + "acm028764jsd" : { + "type" : "ControlElement", + "id" : "acm028764jsd", + "name" : "parseFullNameGerman" + }, + "acm028765jsd" : { + "type" : "ControlElement", + "id" : "acm028765jsd", + "name" : "parseShortNameGermanLowercase" + }, + "acm028766jsd" : { + "type" : "ControlElement", + "id" : "acm028766jsd", + "name" : "parseSpecialCases" + }, + "acm028767jsd" : { + "type" : "ControlElement", + "id" : "acm028767jsd", + "name" : "parseGermanShortMonthTest" + }, + "acm028768jsd" : { + "type" : "ControlElement", + "id" : "acm028768jsd", + "name" : "parseGermanShortMonthTest" + }, + "acm028769jsd" : { + "type" : "ControlElement", + "id" : "acm028769jsd", + "name" : "getMonthByNumberTest" + }, + "acm028770jsd" : { + "type" : "ControlElement", + "id" : "acm028770jsd", + "name" : "getMonthByNumberTest" + }, + "acm028771jsd" : { + "type" : "ControlElement", + "id" : "acm028771jsd", + "name" : "getMonthByShortNameLowercaseTest" + }, + "acm028772jsd" : { + "type" : "ControlElement", + "id" : "acm028772jsd", + "name" : "getMonthByShortNameSpecialCases" + }, + "acm028773jsd" : { + "type" : "ControlElement", + "id" : "acm028773jsd", + "name" : "getShortNameTest" + }, + "acm028774jsd" : { + "type" : "ControlElement", + "id" : "acm028774jsd", + "name" : "getShortNameTest" + }, + "acm028775jsd" : { + "type" : "ControlElement", + "id" : "acm028775jsd", + "name" : "getJabRefFormatTest" + }, + "acm028776jsd" : { + "type" : "ControlElement", + "id" : "acm028776jsd", + "name" : "getJabRefFormatTest" + }, + "acm028777jsd" : { + "type" : "ControlElement", + "id" : "acm028777jsd", + "name" : "getNumberTest" + }, + "acm028778jsd" : { + "type" : "ControlElement", + "id" : "acm028778jsd", + "name" : "getNumberTest" + }, + "acm028779jsd" : { + "type" : "ControlElement", + "id" : "acm028779jsd", + "name" : "getFullNameTest" + }, + "acm028780jsd" : { + "type" : "ControlElement", + "id" : "acm028780jsd", + "name" : "getFullNameTest" + }, + "acm028781jsd" : { + "type" : "ControlElement", + "id" : "acm028781jsd", + "name" : "getTwoDigitNumberTest" + }, + "acm028782jsd" : { + "type" : "ControlElement", + "id" : "acm028782jsd", + "name" : "getTwoDigitNumberTest" + }, + "acm028783jsd" : { + "type" : "ClassUnit", + "id" : "acm028783jsd", + "name" : "MonthTest", + "compilationUnitId" : "acm028752jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018525jsd" ], + "content" : [ "acm028757jsd", "acm028758jsd", "acm028759jsd", "acm028760jsd", "acm028761jsd", "acm028762jsd", "acm028763jsd", "acm028764jsd", "acm028765jsd", "acm028766jsd", "acm028767jsd", "acm028768jsd", "acm028769jsd", "acm028770jsd", "acm028771jsd", "acm028772jsd", "acm028773jsd", "acm028774jsd", "acm028775jsd", "acm028776jsd", "acm028777jsd", "acm028778jsd", "acm028779jsd", "acm028780jsd", "acm028781jsd", "acm028782jsd" ] + }, + "acm028784jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028784jsd", + "name" : "BibFieldTest", + "parentId" : "acm018610jsd", + "content" : [ "acm028792jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028785jsd" : { + "type" : "CodePackage", + "id" : "acm028785jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028786jsd" ] + }, + "acm028786jsd" : { + "type" : "CodePackage", + "id" : "acm028786jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028787jsd" ] + }, + "acm028787jsd" : { + "type" : "CodePackage", + "id" : "acm028787jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028788jsd" ] + }, + "acm028788jsd" : { + "type" : "CodePackage", + "id" : "acm028788jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028789jsd" ] + }, + "acm028789jsd" : { + "type" : "CodePackage", + "id" : "acm028789jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm028784jsd" ] + }, + "acm028790jsd" : { + "type" : "ControlElement", + "id" : "acm028790jsd", + "name" : "bibFieldsConsideredEqualIfUnderlyingFieldIsEqual" + }, + "acm028791jsd" : { + "type" : "ControlElement", + "id" : "acm028791jsd", + "name" : "bibFieldsConsideredNotEqualIfUnderlyingFieldNotEqual" + }, + "acm028792jsd" : { + "type" : "ClassUnit", + "id" : "acm028792jsd", + "name" : "BibFieldTest", + "compilationUnitId" : "acm028784jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm028790jsd", "acm028791jsd" ] + }, + "acm028793jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028793jsd", + "name" : "FieldFactoryTest", + "parentId" : "acm018610jsd", + "content" : [ "acm028803jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028794jsd" : { + "type" : "CodePackage", + "id" : "acm028794jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028795jsd" ] + }, + "acm028795jsd" : { + "type" : "CodePackage", + "id" : "acm028795jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028796jsd" ] + }, + "acm028796jsd" : { + "type" : "CodePackage", + "id" : "acm028796jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028797jsd" ] + }, + "acm028797jsd" : { + "type" : "CodePackage", + "id" : "acm028797jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028798jsd" ] + }, + "acm028798jsd" : { + "type" : "CodePackage", + "id" : "acm028798jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm028793jsd" ] + }, + "acm028799jsd" : { + "type" : "ControlElement", + "id" : "acm028799jsd", + "name" : "testOrFieldsTwoTerms" + }, + "acm028800jsd" : { + "type" : "ControlElement", + "id" : "acm028800jsd", + "name" : "testOrFieldsThreeTerms" + }, + "acm028801jsd" : { + "type" : "ControlElement", + "id" : "acm028801jsd", + "name" : "testDoesNotParseApaFieldWithoutEntryType" + }, + "acm028802jsd" : { + "type" : "ControlElement", + "id" : "acm028802jsd", + "name" : "testDoesParseApaFieldWithEntryType" + }, + "acm028803jsd" : { + "type" : "ClassUnit", + "id" : "acm028803jsd", + "name" : "FieldFactoryTest", + "compilationUnitId" : "acm028793jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018813jsd" ], + "content" : [ "acm028799jsd", "acm028800jsd", "acm028801jsd", "acm028802jsd" ] + }, + "acm028804jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028804jsd", + "name" : "SpecialFieldTest", + "parentId" : "acm018610jsd", + "content" : [ "acm028812jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028805jsd" : { + "type" : "CodePackage", + "id" : "acm028805jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028806jsd" ] + }, + "acm028806jsd" : { + "type" : "CodePackage", + "id" : "acm028806jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028807jsd" ] + }, + "acm028807jsd" : { + "type" : "CodePackage", + "id" : "acm028807jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028808jsd" ] + }, + "acm028808jsd" : { + "type" : "CodePackage", + "id" : "acm028808jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028809jsd" ] + }, + "acm028809jsd" : { + "type" : "CodePackage", + "id" : "acm028809jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm028804jsd" ] + }, + "acm028810jsd" : { + "type" : "ControlElement", + "id" : "acm028810jsd", + "name" : "getSpecialFieldInstanceFromFieldNameValid" + }, + "acm028811jsd" : { + "type" : "ControlElement", + "id" : "acm028811jsd", + "name" : "getSpecialFieldInstanceFromFieldNameEmptyForInvalidField" + }, + "acm028812jsd" : { + "type" : "ClassUnit", + "id" : "acm028812jsd", + "name" : "SpecialFieldTest", + "compilationUnitId" : "acm028804jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm028810jsd", "acm028811jsd" ] + }, + "acm028813jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028813jsd", + "name" : "StandardFieldTest", + "parentId" : "acm018610jsd", + "content" : [ "acm028820jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028814jsd" : { + "type" : "CodePackage", + "id" : "acm028814jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028815jsd" ] + }, + "acm028815jsd" : { + "type" : "CodePackage", + "id" : "acm028815jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028816jsd" ] + }, + "acm028816jsd" : { + "type" : "CodePackage", + "id" : "acm028816jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028817jsd" ] + }, + "acm028817jsd" : { + "type" : "CodePackage", + "id" : "acm028817jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028818jsd" ] + }, + "acm028818jsd" : { + "type" : "CodePackage", + "id" : "acm028818jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm028813jsd" ] + }, + "acm028819jsd" : { + "type" : "ControlElement", + "id" : "acm028819jsd", + "name" : "fieldsConsideredEqualIfSame" + }, + "acm028820jsd" : { + "type" : "ClassUnit", + "id" : "acm028820jsd", + "name" : "StandardFieldTest", + "compilationUnitId" : "acm028813jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm028819jsd" ] + }, + "acm028821jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028821jsd", + "name" : "UnknownFieldTest", + "parentId" : "acm018610jsd", + "content" : [ "acm028829jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "field" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028822jsd" : { + "type" : "CodePackage", + "id" : "acm028822jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028823jsd" ] + }, + "acm028823jsd" : { + "type" : "CodePackage", + "id" : "acm028823jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028824jsd" ] + }, + "acm028824jsd" : { + "type" : "CodePackage", + "id" : "acm028824jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028825jsd" ] + }, + "acm028825jsd" : { + "type" : "CodePackage", + "id" : "acm028825jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028826jsd" ] + }, + "acm028826jsd" : { + "type" : "CodePackage", + "id" : "acm028826jsd", + "name" : "field", + "parentId" : null, + "content" : [ "acm028821jsd" ] + }, + "acm028827jsd" : { + "type" : "ControlElement", + "id" : "acm028827jsd", + "name" : "fieldsConsideredEqualIfSameName" + }, + "acm028828jsd" : { + "type" : "ControlElement", + "id" : "acm028828jsd", + "name" : "fieldsConsideredEqualINameDifferByCapitalization" + }, + "acm028829jsd" : { + "type" : "ClassUnit", + "id" : "acm028829jsd", + "name" : "UnknownFieldTest", + "compilationUnitId" : "acm028821jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018813jsd" ], + "content" : [ "acm028827jsd", "acm028828jsd" ] + }, + "acm028830jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028830jsd", + "name" : "ArXivIdentifierTest", + "parentId" : "acm018819jsd", + "content" : [ "acm028861jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028831jsd" : { + "type" : "CodePackage", + "id" : "acm028831jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028832jsd" ] + }, + "acm028832jsd" : { + "type" : "CodePackage", + "id" : "acm028832jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028833jsd" ] + }, + "acm028833jsd" : { + "type" : "CodePackage", + "id" : "acm028833jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028834jsd" ] + }, + "acm028834jsd" : { + "type" : "CodePackage", + "id" : "acm028834jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028835jsd" ] + }, + "acm028835jsd" : { + "type" : "CodePackage", + "id" : "acm028835jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028830jsd" ] + }, + "acm028836jsd" : { + "type" : "ControlElement", + "id" : "acm028836jsd", + "name" : "parse" + }, + "acm028837jsd" : { + "type" : "ControlElement", + "id" : "acm028837jsd", + "name" : "parseWithArXivPrefix" + }, + "acm028838jsd" : { + "type" : "ControlElement", + "id" : "acm028838jsd", + "name" : "parseWithArxivPrefix" + }, + "acm028839jsd" : { + "type" : "ControlElement", + "id" : "acm028839jsd", + "name" : "parseWithClassification" + }, + "acm028840jsd" : { + "type" : "ControlElement", + "id" : "acm028840jsd", + "name" : "parseWithArXivPrefixAndClassification" + }, + "acm028841jsd" : { + "type" : "ControlElement", + "id" : "acm028841jsd", + "name" : "parseOldIdentifier" + }, + "acm028842jsd" : { + "type" : "ControlElement", + "id" : "acm028842jsd", + "name" : "acceptLegacyEprint" + }, + "acm028843jsd" : { + "type" : "ControlElement", + "id" : "acm028843jsd", + "name" : "acceptLegacyMathEprint" + }, + "acm028844jsd" : { + "type" : "ControlElement", + "id" : "acm028844jsd", + "name" : "parseOldIdentifierWithArXivPrefix" + }, + "acm028845jsd" : { + "type" : "ControlElement", + "id" : "acm028845jsd", + "name" : "parseUrl" + }, + "acm028846jsd" : { + "type" : "ControlElement", + "id" : "acm028846jsd", + "name" : "parseHttpsUrl" + }, + "acm028847jsd" : { + "type" : "ControlElement", + "id" : "acm028847jsd", + "name" : "parsePdfUrl" + }, + "acm028848jsd" : { + "type" : "ControlElement", + "id" : "acm028848jsd", + "name" : "parseUrlWithVersion" + }, + "acm028849jsd" : { + "type" : "ControlElement", + "id" : "acm028849jsd", + "name" : "parseOldUrlWithVersion" + }, + "acm028850jsd" : { + "type" : "ControlElement", + "id" : "acm028850jsd", + "name" : "fourDigitDateIsInvalidInLegacyFormat" + }, + "acm028851jsd" : { + "type" : "ControlElement", + "id" : "acm028851jsd", + "name" : "acceptPlainEprint" + }, + "acm028852jsd" : { + "type" : "ControlElement", + "id" : "acm028852jsd", + "name" : "acceptPlainEprintWithVersion" + }, + "acm028853jsd" : { + "type" : "ControlElement", + "id" : "acm028853jsd", + "name" : "acceptArxivPrefix" + }, + "acm028854jsd" : { + "type" : "ControlElement", + "id" : "acm028854jsd", + "name" : "ignoreLeadingAndTrailingWhitespaces" + }, + "acm028855jsd" : { + "type" : "ControlElement", + "id" : "acm028855jsd", + "name" : "rejectEmbeddedEprint" + }, + "acm028856jsd" : { + "type" : "ControlElement", + "id" : "acm028856jsd", + "name" : "rejectInvalidEprint" + }, + "acm028857jsd" : { + "type" : "ControlElement", + "id" : "acm028857jsd", + "name" : "acceptUrlHttpEprint" + }, + "acm028858jsd" : { + "type" : "ControlElement", + "id" : "acm028858jsd", + "name" : "acceptUrlHttpsEprint" + }, + "acm028859jsd" : { + "type" : "ControlElement", + "id" : "acm028859jsd", + "name" : "rejectUrlOtherDomainEprint" + }, + "acm028860jsd" : { + "type" : "ControlElement", + "id" : "acm028860jsd", + "name" : "constructCorrectURLForEprint" + }, + "acm028861jsd" : { + "type" : "ClassUnit", + "id" : "acm028861jsd", + "name" : "ArXivIdentifierTest", + "compilationUnitId" : "acm028830jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018843jsd" ], + "content" : [ "acm028836jsd", "acm028837jsd", "acm028838jsd", "acm028839jsd", "acm028840jsd", "acm028841jsd", "acm028842jsd", "acm028843jsd", "acm028844jsd", "acm028845jsd", "acm028846jsd", "acm028847jsd", "acm028848jsd", "acm028849jsd", "acm028850jsd", "acm028851jsd", "acm028852jsd", "acm028853jsd", "acm028854jsd", "acm028855jsd", "acm028856jsd", "acm028857jsd", "acm028858jsd", "acm028859jsd", "acm028860jsd" ] + }, + "acm028862jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028862jsd", + "name" : "DOITest", + "parentId" : "acm018819jsd", + "content" : [ "acm028882jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028863jsd" : { + "type" : "CodePackage", + "id" : "acm028863jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028864jsd" ] + }, + "acm028864jsd" : { + "type" : "CodePackage", + "id" : "acm028864jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028865jsd" ] + }, + "acm028865jsd" : { + "type" : "CodePackage", + "id" : "acm028865jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028866jsd" ] + }, + "acm028866jsd" : { + "type" : "CodePackage", + "id" : "acm028866jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028867jsd" ] + }, + "acm028867jsd" : { + "type" : "CodePackage", + "id" : "acm028867jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028862jsd" ] + }, + "acm028868jsd" : { + "type" : "ControlElement", + "id" : "acm028868jsd", + "name" : "testData" + }, + "acm028869jsd" : { + "type" : "ControlElement", + "id" : "acm028869jsd", + "name" : "testEquals" + }, + "acm028870jsd" : { + "type" : "ControlElement", + "id" : "acm028870jsd", + "name" : "equalsWorksFor2017Doi" + }, + "acm028871jsd" : { + "type" : "ControlElement", + "id" : "acm028871jsd", + "name" : "isShortDoiShouldReturnTrueWhenItIsShortDoi" + }, + "acm028872jsd" : { + "type" : "ControlElement", + "id" : "acm028872jsd", + "name" : "noDOIFoundInsideArbitraryText" + }, + "acm028873jsd" : { + "type" : "ControlElement", + "id" : "acm028873jsd", + "name" : "rejectURLShortDoi" + }, + "acm028874jsd" : { + "type" : "ControlElement", + "id" : "acm028874jsd", + "name" : "isShortDoiShouldReturnFalseWhenItIsDoi" + }, + "acm028875jsd" : { + "type" : "ControlElement", + "id" : "acm028875jsd", + "name" : "rejectEmbeddedDoi" + }, + "acm028876jsd" : { + "type" : "ControlElement", + "id" : "acm028876jsd", + "name" : "rejectEmbeddedShortDoi" + }, + "acm028877jsd" : { + "type" : "ControlElement", + "id" : "acm028877jsd", + "name" : "rejectInvalidDirectoryIndicator" + }, + "acm028878jsd" : { + "type" : "ControlElement", + "id" : "acm028878jsd", + "name" : "rejectInvalidDirectoryIndicatorInShortDoi" + }, + "acm028879jsd" : { + "type" : "ControlElement", + "id" : "acm028879jsd", + "name" : "rejectInvalidDoiUri" + }, + "acm028880jsd" : { + "type" : "ControlElement", + "id" : "acm028880jsd", + "name" : "rejectMissingDivider" + }, + "acm028881jsd" : { + "type" : "ControlElement", + "id" : "acm028881jsd", + "name" : "rejectMissingDividerInShortDoi" + }, + "acm028882jsd" : { + "type" : "ClassUnit", + "id" : "acm028882jsd", + "name" : "DOITest", + "compilationUnitId" : "acm028862jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018865jsd" ], + "content" : [ "acm028868jsd", "acm028869jsd", "acm028870jsd", "acm028871jsd", "acm028872jsd", "acm028873jsd", "acm028874jsd", "acm028875jsd", "acm028876jsd", "acm028877jsd", "acm028878jsd", "acm028879jsd", "acm028880jsd", "acm028881jsd" ] + }, + "acm028883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028883jsd", + "name" : "ISBNTest", + "parentId" : "acm018819jsd", + "content" : [ "acm028901jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028884jsd" : { + "type" : "CodePackage", + "id" : "acm028884jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028885jsd" ] + }, + "acm028885jsd" : { + "type" : "CodePackage", + "id" : "acm028885jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028886jsd" ] + }, + "acm028886jsd" : { + "type" : "CodePackage", + "id" : "acm028886jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028887jsd" ] + }, + "acm028887jsd" : { + "type" : "CodePackage", + "id" : "acm028887jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028888jsd" ] + }, + "acm028888jsd" : { + "type" : "CodePackage", + "id" : "acm028888jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028883jsd" ] + }, + "acm028889jsd" : { + "type" : "ControlElement", + "id" : "acm028889jsd", + "name" : "testIsValidFormat10Correct" + }, + "acm028890jsd" : { + "type" : "ControlElement", + "id" : "acm028890jsd", + "name" : "testIsValidFormat10Incorrect" + }, + "acm028891jsd" : { + "type" : "ControlElement", + "id" : "acm028891jsd", + "name" : "testIsValidChecksum10Correct" + }, + "acm028892jsd" : { + "type" : "ControlElement", + "id" : "acm028892jsd", + "name" : "testIsValidChecksum10Incorrect" + }, + "acm028893jsd" : { + "type" : "ControlElement", + "id" : "acm028893jsd", + "name" : "testIsValidFormat13Correct" + }, + "acm028894jsd" : { + "type" : "ControlElement", + "id" : "acm028894jsd", + "name" : "testIsValidFormat13Incorrect" + }, + "acm028895jsd" : { + "type" : "ControlElement", + "id" : "acm028895jsd", + "name" : "testIsValidChecksum13Correct" + }, + "acm028896jsd" : { + "type" : "ControlElement", + "id" : "acm028896jsd", + "name" : "testIsValidChecksum13Incorrect" + }, + "acm028897jsd" : { + "type" : "ControlElement", + "id" : "acm028897jsd", + "name" : "testIsIsbn10Correct" + }, + "acm028898jsd" : { + "type" : "ControlElement", + "id" : "acm028898jsd", + "name" : "testIsIsbn10Incorrect" + }, + "acm028899jsd" : { + "type" : "ControlElement", + "id" : "acm028899jsd", + "name" : "testIsIsbn13Correct" + }, + "acm028900jsd" : { + "type" : "ControlElement", + "id" : "acm028900jsd", + "name" : "testIsIsbn13Incorrect" + }, + "acm028901jsd" : { + "type" : "ClassUnit", + "id" : "acm028901jsd", + "name" : "ISBNTest", + "compilationUnitId" : "acm028883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018894jsd" ], + "content" : [ "acm028889jsd", "acm028890jsd", "acm028891jsd", "acm028892jsd", "acm028893jsd", "acm028894jsd", "acm028895jsd", "acm028896jsd", "acm028897jsd", "acm028898jsd", "acm028899jsd", "acm028900jsd" ] + }, + "acm028902jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028902jsd", + "name" : "ISSNTest", + "parentId" : "acm018819jsd", + "content" : [ "acm028918jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028903jsd" : { + "type" : "CodePackage", + "id" : "acm028903jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028904jsd" ] + }, + "acm028904jsd" : { + "type" : "CodePackage", + "id" : "acm028904jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028905jsd" ] + }, + "acm028905jsd" : { + "type" : "CodePackage", + "id" : "acm028905jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028906jsd" ] + }, + "acm028906jsd" : { + "type" : "CodePackage", + "id" : "acm028906jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028907jsd" ] + }, + "acm028907jsd" : { + "type" : "CodePackage", + "id" : "acm028907jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028902jsd" ] + }, + "acm028908jsd" : { + "type" : "ControlElement", + "id" : "acm028908jsd", + "name" : "testIsCanBeCleaned" + }, + "acm028909jsd" : { + "type" : "ControlElement", + "id" : "acm028909jsd", + "name" : "testIsCanBeCleanedIncorrectRubbish" + }, + "acm028910jsd" : { + "type" : "ControlElement", + "id" : "acm028910jsd", + "name" : "testIsCanBeCleanedDashAlreadyThere" + }, + "acm028911jsd" : { + "type" : "ControlElement", + "id" : "acm028911jsd", + "name" : "testGetCleanedISSN" + }, + "acm028912jsd" : { + "type" : "ControlElement", + "id" : "acm028912jsd", + "name" : "testGetCleanedISSNDashAlreadyThere" + }, + "acm028913jsd" : { + "type" : "ControlElement", + "id" : "acm028913jsd", + "name" : "testGetCleanedISSNDashRubbish" + }, + "acm028914jsd" : { + "type" : "ControlElement", + "id" : "acm028914jsd", + "name" : "testIsValidChecksumCorrect" + }, + "acm028915jsd" : { + "type" : "ControlElement", + "id" : "acm028915jsd", + "name" : "testIsValidChecksumIncorrect" + }, + "acm028916jsd" : { + "type" : "ControlElement", + "id" : "acm028916jsd", + "name" : "testIsValidFormatCorrect" + }, + "acm028917jsd" : { + "type" : "ControlElement", + "id" : "acm028917jsd", + "name" : "testIsValidFormatIncorrect" + }, + "acm028918jsd" : { + "type" : "ClassUnit", + "id" : "acm028918jsd", + "name" : "ISSNTest", + "compilationUnitId" : "acm028902jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018906jsd" ], + "content" : [ "acm028908jsd", "acm028909jsd", "acm028910jsd", "acm028911jsd", "acm028912jsd", "acm028913jsd", "acm028914jsd", "acm028915jsd", "acm028916jsd", "acm028917jsd" ] + }, + "acm028919jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028919jsd", + "name" : "IacrEprintTest", + "parentId" : "acm018819jsd", + "content" : [ "acm028929jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028920jsd" : { + "type" : "CodePackage", + "id" : "acm028920jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028921jsd" ] + }, + "acm028921jsd" : { + "type" : "CodePackage", + "id" : "acm028921jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028922jsd" ] + }, + "acm028922jsd" : { + "type" : "CodePackage", + "id" : "acm028922jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028923jsd" ] + }, + "acm028923jsd" : { + "type" : "CodePackage", + "id" : "acm028923jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028924jsd" ] + }, + "acm028924jsd" : { + "type" : "CodePackage", + "id" : "acm028924jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028919jsd" ] + }, + "acm028925jsd" : { + "type" : "ControlElement", + "id" : "acm028925jsd", + "name" : "provideTestData" + }, + "acm028926jsd" : { + "type" : "ControlElement", + "id" : "acm028926jsd", + "name" : "rejectInvalidIacrEprint" + }, + "acm028927jsd" : { + "type" : "ControlElement", + "id" : "acm028927jsd", + "name" : "acceptCorrectIacrEprintIdentifier" + }, + "acm028928jsd" : { + "type" : "ControlElement", + "id" : "acm028928jsd", + "name" : "constructValidIacrEprintUrl" + }, + "acm028929jsd" : { + "type" : "ClassUnit", + "id" : "acm028929jsd", + "name" : "IacrEprintTest", + "compilationUnitId" : "acm028919jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018920jsd" ], + "content" : [ "acm028925jsd", "acm028926jsd", "acm028927jsd", "acm028928jsd" ] + }, + "acm028930jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028930jsd", + "name" : "MathSciNetIdTest", + "parentId" : "acm018819jsd", + "content" : [ "acm028937jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "entry", "identifier" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028931jsd" : { + "type" : "CodePackage", + "id" : "acm028931jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028932jsd" ] + }, + "acm028932jsd" : { + "type" : "CodePackage", + "id" : "acm028932jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028933jsd" ] + }, + "acm028933jsd" : { + "type" : "CodePackage", + "id" : "acm028933jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028934jsd" ] + }, + "acm028934jsd" : { + "type" : "CodePackage", + "id" : "acm028934jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm028935jsd" ] + }, + "acm028935jsd" : { + "type" : "CodePackage", + "id" : "acm028935jsd", + "name" : "identifier", + "parentId" : null, + "content" : [ "acm028930jsd" ] + }, + "acm028936jsd" : { + "type" : "ControlElement", + "id" : "acm028936jsd", + "name" : "parseRemovesNewLineCharacterAtEnd" + }, + "acm028937jsd" : { + "type" : "ClassUnit", + "id" : "acm028937jsd", + "name" : "MathSciNetIdTest", + "compilationUnitId" : "acm028930jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018945jsd" ], + "content" : [ "acm028936jsd" ] + }, + "acm028938jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028938jsd", + "name" : "EventListenerTest", + "parentId" : "acm028942jsd", + "content" : [ "acm028950jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "event" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028939jsd" : { + "type" : "CodePackage", + "id" : "acm028939jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028940jsd" ] + }, + "acm028940jsd" : { + "type" : "CodePackage", + "id" : "acm028940jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028941jsd" ] + }, + "acm028941jsd" : { + "type" : "CodePackage", + "id" : "acm028941jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028942jsd" ] + }, + "acm028942jsd" : { + "type" : "CodePackage", + "id" : "acm028942jsd", + "name" : "event", + "parentId" : "acm017861jsd", + "content" : [ "acm028938jsd" ] + }, + "acm028943jsd" : { + "type" : "ControlElement", + "id" : "acm028943jsd", + "name" : "listen" + }, + "acm028944jsd" : { + "type" : "ControlElement", + "id" : "acm028944jsd", + "name" : "listen" + }, + "acm028945jsd" : { + "type" : "ControlElement", + "id" : "acm028945jsd", + "name" : "listen" + }, + "acm028946jsd" : { + "type" : "ControlElement", + "id" : "acm028946jsd", + "name" : "getAddedEntries" + }, + "acm028947jsd" : { + "type" : "ControlElement", + "id" : "acm028947jsd", + "name" : "getFirstInsertedEntry" + }, + "acm028948jsd" : { + "type" : "ControlElement", + "id" : "acm028948jsd", + "name" : "getRemovedEntries" + }, + "acm028949jsd" : { + "type" : "ControlElement", + "id" : "acm028949jsd", + "name" : "getChangedEntry" + }, + "acm028950jsd" : { + "type" : "ClassUnit", + "id" : "acm028950jsd", + "name" : "EventListenerTest", + "compilationUnitId" : "acm028938jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018106jsd", "acm018115jsd", "acm018267jsd", "acm018580jsd" ], + "content" : [ "acm028943jsd", "acm028944jsd", "acm028945jsd", "acm028946jsd", "acm028947jsd", "acm028948jsd", "acm028949jsd" ] + }, + "acm028951jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028951jsd", + "name" : "AutomaticKeywordGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm028959jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028952jsd" : { + "type" : "CodePackage", + "id" : "acm028952jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028953jsd" ] + }, + "acm028953jsd" : { + "type" : "CodePackage", + "id" : "acm028953jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028954jsd" ] + }, + "acm028954jsd" : { + "type" : "CodePackage", + "id" : "acm028954jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028955jsd" ] + }, + "acm028955jsd" : { + "type" : "CodePackage", + "id" : "acm028955jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm028951jsd" ] + }, + "acm028956jsd" : { + "type" : "ControlElement", + "id" : "acm028956jsd", + "name" : "createSubgroupsForTwoKeywords" + }, + "acm028957jsd" : { + "type" : "ControlElement", + "id" : "acm028957jsd", + "name" : "createSubgroupsIgnoresEmptyKeyword" + }, + "acm028958jsd" : { + "type" : "ControlElement", + "id" : "acm028958jsd", + "name" : "createIncludingKeywordsSubgroup" + }, + "acm028959jsd" : { + "type" : "ClassUnit", + "id" : "acm028959jsd", + "name" : "AutomaticKeywordGroupTest", + "compilationUnitId" : "acm028951jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019145jsd", "acm019221jsd", "acm019315jsd" ], + "content" : [ "acm028956jsd", "acm028957jsd", "acm028958jsd" ] + }, + "acm028960jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028960jsd", + "name" : "AutomaticPersonsGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm028970jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028961jsd" : { + "type" : "CodePackage", + "id" : "acm028961jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028962jsd" ] + }, + "acm028962jsd" : { + "type" : "CodePackage", + "id" : "acm028962jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028963jsd" ] + }, + "acm028963jsd" : { + "type" : "CodePackage", + "id" : "acm028963jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028964jsd" ] + }, + "acm028964jsd" : { + "type" : "CodePackage", + "id" : "acm028964jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm028960jsd" ] + }, + "acm028965jsd" : { + "type" : "ControlElement", + "id" : "acm028965jsd", + "name" : "createPersonSubGroupFrom" + }, + "acm028966jsd" : { + "type" : "ControlElement", + "id" : "acm028966jsd", + "name" : "createSubgroupsFromCommaSeparatedLastNames" + }, + "acm028967jsd" : { + "type" : "ControlElement", + "id" : "acm028967jsd", + "name" : "createSubgroupsContainingSpaceSeparatedNames" + }, + "acm028968jsd" : { + "type" : "ControlElement", + "id" : "acm028968jsd", + "name" : "createSubgroupFromLatex" + }, + "acm028969jsd" : { + "type" : "ControlElement", + "id" : "acm028969jsd", + "name" : "createSubgroupFromUnicode" + }, + "acm028970jsd" : { + "type" : "ClassUnit", + "id" : "acm028970jsd", + "name" : "AutomaticPersonsGroupTest", + "compilationUnitId" : "acm028960jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019157jsd", "acm019221jsd" ], + "content" : [ "acm028965jsd", "acm028966jsd", "acm028967jsd", "acm028968jsd", "acm028969jsd" ] + }, + "acm028971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028971jsd", + "name" : "ExplicitGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm028986jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028972jsd" : { + "type" : "CodePackage", + "id" : "acm028972jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028973jsd" ] + }, + "acm028973jsd" : { + "type" : "CodePackage", + "id" : "acm028973jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028974jsd" ] + }, + "acm028974jsd" : { + "type" : "CodePackage", + "id" : "acm028974jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028975jsd" ] + }, + "acm028975jsd" : { + "type" : "CodePackage", + "id" : "acm028975jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm028971jsd" ] + }, + "acm028976jsd" : { + "type" : "ControlElement", + "id" : "acm028976jsd", + "name" : "setUp" + }, + "acm028977jsd" : { + "type" : "ControlElement", + "id" : "acm028977jsd", + "name" : "addSingleGroupToEmptyBibEntryChangesGroupsField" + }, + "acm028978jsd" : { + "type" : "ControlElement", + "id" : "acm028978jsd", + "name" : "addSingleGroupToNonemptyBibEntryAppendsToGroupsField" + }, + "acm028979jsd" : { + "type" : "ControlElement", + "id" : "acm028979jsd", + "name" : "addTwoGroupsToBibEntryChangesGroupsField" + }, + "acm028980jsd" : { + "type" : "ControlElement", + "id" : "acm028980jsd", + "name" : "addDuplicateGroupDoesNotChangeGroupsField" + }, + "acm028981jsd" : { + "type" : "ControlElement", + "id" : "acm028981jsd", + "name" : "removeDoesNotChangeFieldIfContainsNameAsPart" + }, + "acm028982jsd" : { + "type" : "ControlElement", + "id" : "acm028982jsd", + "name" : "removeDoesNotChangeFieldIfContainsNameAsWord" + }, + "acm028983jsd" : { + "type" : "ControlElement", + "id" : "acm028983jsd", + "name" : "containsOnlyMatchesCompletePhraseWithWhitespace" + }, + "acm028984jsd" : { + "type" : "ControlElement", + "id" : "acm028984jsd", + "name" : "containsOnlyMatchesCompletePhraseWithSlash" + }, + "acm028985jsd" : { + "type" : "ControlElement", + "id" : "acm028985jsd", + "name" : "containsMatchesPhraseWithBrackets" + }, + "acm028986jsd" : { + "type" : "ClassUnit", + "id" : "acm028986jsd", + "name" : "ExplicitGroupTest", + "compilationUnitId" : "acm028971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019171jsd" ], + "content" : [ "acm028976jsd", "acm028977jsd", "acm028978jsd", "acm028979jsd", "acm028980jsd", "acm028981jsd", "acm028982jsd", "acm028983jsd", "acm028984jsd", "acm028985jsd" ] + }, + "acm028987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm028987jsd", + "name" : "GroupTreeNodeTest", + "parentId" : "acm019084jsd", + "content" : [ "acm029021jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm028988jsd" : { + "type" : "CodePackage", + "id" : "acm028988jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm028989jsd" ] + }, + "acm028989jsd" : { + "type" : "CodePackage", + "id" : "acm028989jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm028990jsd" ] + }, + "acm028990jsd" : { + "type" : "CodePackage", + "id" : "acm028990jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm028991jsd" ] + }, + "acm028991jsd" : { + "type" : "CodePackage", + "id" : "acm028991jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm028987jsd" ] + }, + "acm028992jsd" : { + "type" : "ControlElement", + "id" : "acm028992jsd", + "name" : "getNodeInSimpleTree" + }, + "acm028993jsd" : { + "type" : "ControlElement", + "id" : "acm028993jsd", + "name" : "getNodeInComplexTree" + }, + "acm028994jsd" : { + "type" : "ControlElement", + "id" : "acm028994jsd", + "name" : "getKeywordGroup" + }, + "acm028995jsd" : { + "type" : "ControlElement", + "id" : "acm028995jsd", + "name" : "getSearchGroup" + }, + "acm028996jsd" : { + "type" : "ControlElement", + "id" : "acm028996jsd", + "name" : "getExplict" + }, + "acm028997jsd" : { + "type" : "ControlElement", + "id" : "acm028997jsd", + "name" : "getRoot" + }, + "acm028998jsd" : { + "type" : "ControlElement", + "id" : "acm028998jsd", + "name" : "setUp" + }, + "acm028999jsd" : { + "type" : "ControlElement", + "id" : "acm028999jsd", + "name" : "getNodeInSimpleTree" + }, + "acm029000jsd" : { + "type" : "ControlElement", + "id" : "acm029000jsd", + "name" : "getSearchRuleForIndependentGroupReturnsGroupAsMatcher" + }, + "acm029001jsd" : { + "type" : "ControlElement", + "id" : "acm029001jsd", + "name" : "getSearchRuleForRefiningGroupReturnsParentAndGroupAsMatcher" + }, + "acm029002jsd" : { + "type" : "ControlElement", + "id" : "acm029002jsd", + "name" : "getSearchRuleForIncludingGroupReturnsGroupOrSubgroupAsMatcher" + }, + "acm029003jsd" : { + "type" : "ControlElement", + "id" : "acm029003jsd", + "name" : "findMatchesReturnsEmptyForEmptyList" + }, + "acm029004jsd" : { + "type" : "ControlElement", + "id" : "acm029004jsd", + "name" : "findMatchesOneEntry" + }, + "acm029005jsd" : { + "type" : "ControlElement", + "id" : "acm029005jsd", + "name" : "findMatchesMultipleEntries" + }, + "acm029006jsd" : { + "type" : "ControlElement", + "id" : "acm029006jsd", + "name" : "findMatchesWorksForRefiningGroups" + }, + "acm029007jsd" : { + "type" : "ControlElement", + "id" : "acm029007jsd", + "name" : "findMatchesWorksForHierarchyOfIndependentGroups" + }, + "acm029008jsd" : { + "type" : "ControlElement", + "id" : "acm029008jsd", + "name" : "setGroupChangesUnderlyingGroup" + }, + "acm029009jsd" : { + "type" : "ControlElement", + "id" : "acm029009jsd", + "name" : "setGroupAddsPreviousAssignmentsExplicitToExplicit" + }, + "acm029010jsd" : { + "type" : "ControlElement", + "id" : "acm029010jsd", + "name" : "setGroupWithFalseDoesNotAddsPreviousAssignments" + }, + "acm029011jsd" : { + "type" : "ControlElement", + "id" : "acm029011jsd", + "name" : "setGroupAddsOnlyPreviousAssignments" + }, + "acm029012jsd" : { + "type" : "ControlElement", + "id" : "acm029012jsd", + "name" : "setGroupExplicitToSearchDoesNotKeepPreviousAssignments" + }, + "acm029013jsd" : { + "type" : "ControlElement", + "id" : "acm029013jsd", + "name" : "setGroupExplicitToExplicitIsRenameAndSoRemovesPreviousAssignment" + }, + "acm029014jsd" : { + "type" : "ControlElement", + "id" : "acm029014jsd", + "name" : "getChildByPathFindsCorrectChildInSecondLevel" + }, + "acm029015jsd" : { + "type" : "ControlElement", + "id" : "acm029015jsd", + "name" : "getChildByPathDoesNotFindChildWhenInvalidPath" + }, + "acm029016jsd" : { + "type" : "ControlElement", + "id" : "acm029016jsd", + "name" : "getPathSimpleTree" + }, + "acm029017jsd" : { + "type" : "ControlElement", + "id" : "acm029017jsd", + "name" : "onlyRootAndChildNodeContainAtLeastOneEntry" + }, + "acm029018jsd" : { + "type" : "ControlElement", + "id" : "acm029018jsd", + "name" : "onlySubgroupsContainAllEntries" + }, + "acm029019jsd" : { + "type" : "ControlElement", + "id" : "acm029019jsd", + "name" : "addEntriesToGroupWorksNotForGroupsNotSupportingExplicitAddingOfEntries" + }, + "acm029020jsd" : { + "type" : "ControlElement", + "id" : "acm029020jsd", + "name" : "removeEntriesFromGroupWorksNotForGroupsNotSupportingExplicitRemovalOfEntries" + }, + "acm029021jsd" : { + "type" : "ClassUnit", + "id" : "acm029021jsd", + "name" : "GroupTreeNodeTest", + "compilationUnitId" : "acm028987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm017884jsd", "acm018267jsd", "acm019107jsd", "acm019119jsd", "acm019171jsd", "acm019221jsd", "acm019271jsd", "acm019315jsd", "acm020338jsd", "acm020375jsd", "acm020473jsd" ], + "content" : [ "acm028992jsd", "acm028993jsd", "acm028994jsd", "acm028995jsd", "acm028996jsd", "acm028997jsd", "acm028998jsd", "acm028999jsd", "acm029000jsd", "acm029001jsd", "acm029002jsd", "acm029003jsd", "acm029004jsd", "acm029005jsd", "acm029006jsd", "acm029007jsd", "acm029008jsd", "acm029009jsd", "acm029010jsd", "acm029011jsd", "acm029012jsd", "acm029013jsd", "acm029014jsd", "acm029015jsd", "acm029016jsd", "acm029017jsd", "acm029018jsd", "acm029019jsd", "acm029020jsd" ] + }, + "acm029022jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029022jsd", + "name" : "SearchGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm029031jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029023jsd" : { + "type" : "CodePackage", + "id" : "acm029023jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029024jsd" ] + }, + "acm029024jsd" : { + "type" : "CodePackage", + "id" : "acm029024jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029025jsd" ] + }, + "acm029025jsd" : { + "type" : "CodePackage", + "id" : "acm029025jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029026jsd" ] + }, + "acm029026jsd" : { + "type" : "CodePackage", + "id" : "acm029026jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm029022jsd" ] + }, + "acm029027jsd" : { + "type" : "ControlElement", + "id" : "acm029027jsd", + "name" : "containsFindsWordWithRegularExpression" + }, + "acm029028jsd" : { + "type" : "ControlElement", + "id" : "acm029028jsd", + "name" : "containsDoesNotFindsWordWithInvalidRegularExpression" + }, + "acm029029jsd" : { + "type" : "ControlElement", + "id" : "acm029029jsd", + "name" : "notQueryWorksWithLeftPartOfQuery" + }, + "acm029030jsd" : { + "type" : "ControlElement", + "id" : "acm029030jsd", + "name" : "notQueryWorksWithLRightPartOfQuery" + }, + "acm029031jsd" : { + "type" : "ClassUnit", + "id" : "acm029031jsd", + "name" : "SearchGroupTest", + "compilationUnitId" : "acm029022jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019271jsd", "acm020473jsd" ], + "content" : [ "acm029027jsd", "acm029028jsd", "acm029029jsd", "acm029030jsd" ] + }, + "acm029032jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029032jsd", + "name" : "TexGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm029041jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029033jsd" : { + "type" : "CodePackage", + "id" : "acm029033jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029034jsd" ] + }, + "acm029034jsd" : { + "type" : "CodePackage", + "id" : "acm029034jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029035jsd" ] + }, + "acm029035jsd" : { + "type" : "CodePackage", + "id" : "acm029035jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029036jsd" ] + }, + "acm029036jsd" : { + "type" : "CodePackage", + "id" : "acm029036jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm029032jsd" ] + }, + "acm029037jsd" : { + "type" : "ControlElement", + "id" : "acm029037jsd", + "name" : "setUp" + }, + "acm029038jsd" : { + "type" : "ControlElement", + "id" : "acm029038jsd", + "name" : "containsReturnsTrueForEntryInAux" + }, + "acm029039jsd" : { + "type" : "ControlElement", + "id" : "acm029039jsd", + "name" : "containsReturnsTrueForEntryNotInAux" + }, + "acm029040jsd" : { + "type" : "ControlElement", + "id" : "acm029040jsd", + "name" : "getFilePathReturnsRelativePath" + }, + "acm029041jsd" : { + "type" : "ClassUnit", + "id" : "acm029041jsd", + "name" : "TexGroupTest", + "compilationUnitId" : "acm029032jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010458jsd", "acm017988jsd", "acm018267jsd", "acm019293jsd", "acm019421jsd", "acm020676jsd", "acm029041jsd" ], + "content" : [ "acm029037jsd", "acm029038jsd", "acm029039jsd", "acm029040jsd" ] + }, + "acm029042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029042jsd", + "name" : "WordKeywordGroupTest", + "parentId" : "acm019084jsd", + "content" : [ "acm029061jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "groups" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029043jsd" : { + "type" : "CodePackage", + "id" : "acm029043jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029044jsd" ] + }, + "acm029044jsd" : { + "type" : "CodePackage", + "id" : "acm029044jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029045jsd" ] + }, + "acm029045jsd" : { + "type" : "CodePackage", + "id" : "acm029045jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029046jsd" ] + }, + "acm029046jsd" : { + "type" : "CodePackage", + "id" : "acm029046jsd", + "name" : "groups", + "parentId" : null, + "content" : [ "acm029042jsd" ] + }, + "acm029047jsd" : { + "type" : "ControlElement", + "id" : "acm029047jsd", + "name" : "setUp" + }, + "acm029048jsd" : { + "type" : "ControlElement", + "id" : "acm029048jsd", + "name" : "containsFindsSameWord" + }, + "acm029049jsd" : { + "type" : "ControlElement", + "id" : "acm029049jsd", + "name" : "containsFindsWordInSentence" + }, + "acm029050jsd" : { + "type" : "ControlElement", + "id" : "acm029050jsd", + "name" : "containsFindsWordInCommaSeparatedList" + }, + "acm029051jsd" : { + "type" : "ControlElement", + "id" : "acm029051jsd", + "name" : "containsFindsWordInSemicolonSeparatedList" + }, + "acm029052jsd" : { + "type" : "ControlElement", + "id" : "acm029052jsd", + "name" : "containsFindsSameComplexWord" + }, + "acm029053jsd" : { + "type" : "ControlElement", + "id" : "acm029053jsd", + "name" : "containsFindsComplexWordInSentence" + }, + "acm029054jsd" : { + "type" : "ControlElement", + "id" : "acm029054jsd", + "name" : "containsDoesNotFindWordIfCaseDiffers" + }, + "acm029055jsd" : { + "type" : "ControlElement", + "id" : "acm029055jsd", + "name" : "containsDoesNotFindsWordInSentenceIfCaseDiffers" + }, + "acm029056jsd" : { + "type" : "ControlElement", + "id" : "acm029056jsd", + "name" : "addChangesFieldIfEmptyBefore" + }, + "acm029057jsd" : { + "type" : "ControlElement", + "id" : "acm029057jsd", + "name" : "addChangesFieldIfNotEmptyBefore" + }, + "acm029058jsd" : { + "type" : "ControlElement", + "id" : "acm029058jsd", + "name" : "addDoesNotAddDuplicate" + }, + "acm029059jsd" : { + "type" : "ControlElement", + "id" : "acm029059jsd", + "name" : "removeDoesNothingIfEntryNotMatched" + }, + "acm029060jsd" : { + "type" : "ControlElement", + "id" : "acm029060jsd", + "name" : "removeRemovesNameFromField" + }, + "acm029061jsd" : { + "type" : "ClassUnit", + "id" : "acm029061jsd", + "name" : "WordKeywordGroupTest", + "compilationUnitId" : "acm029042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm019315jsd" ], + "content" : [ "acm029047jsd", "acm029048jsd", "acm029049jsd", "acm029050jsd", "acm029051jsd", "acm029052jsd", "acm029053jsd", "acm029054jsd", "acm029055jsd", "acm029056jsd", "acm029057jsd", "acm029058jsd", "acm029059jsd", "acm029060jsd" ] + }, + "acm029062jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029062jsd", + "name" : "MetaDataTest", + "parentId" : "acm019340jsd", + "content" : [ "acm029069jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "metadata" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029063jsd" : { + "type" : "CodePackage", + "id" : "acm029063jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029064jsd" ] + }, + "acm029064jsd" : { + "type" : "CodePackage", + "id" : "acm029064jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029065jsd" ] + }, + "acm029065jsd" : { + "type" : "CodePackage", + "id" : "acm029065jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029066jsd" ] + }, + "acm029066jsd" : { + "type" : "CodePackage", + "id" : "acm029066jsd", + "name" : "metadata", + "parentId" : null, + "content" : [ "acm029062jsd" ] + }, + "acm029067jsd" : { + "type" : "ControlElement", + "id" : "acm029067jsd", + "name" : "setUp" + }, + "acm029068jsd" : { + "type" : "ControlElement", + "id" : "acm029068jsd", + "name" : "emptyGroupsIfNotSet" + }, + "acm029069jsd" : { + "type" : "ClassUnit", + "id" : "acm029069jsd", + "name" : "MetaDataTest", + "compilationUnitId" : "acm029062jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019421jsd" ], + "content" : [ "acm029067jsd", "acm029068jsd" ] + }, + "acm029070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029070jsd", + "name" : "CitationEntryTest", + "parentId" : "acm019472jsd", + "content" : [ "acm029081jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "openoffice" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029071jsd" : { + "type" : "CodePackage", + "id" : "acm029071jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029072jsd" ] + }, + "acm029072jsd" : { + "type" : "CodePackage", + "id" : "acm029072jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029073jsd" ] + }, + "acm029073jsd" : { + "type" : "CodePackage", + "id" : "acm029073jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029074jsd" ] + }, + "acm029074jsd" : { + "type" : "CodePackage", + "id" : "acm029074jsd", + "name" : "openoffice", + "parentId" : null, + "content" : [ "acm029070jsd" ] + }, + "acm029075jsd" : { + "type" : "ControlElement", + "id" : "acm029075jsd", + "name" : "testCitationEntryInitialPageInfo" + }, + "acm029076jsd" : { + "type" : "ControlElement", + "id" : "acm029076jsd", + "name" : "testCitationEntryOptionalInitialPageInfo" + }, + "acm029077jsd" : { + "type" : "ControlElement", + "id" : "acm029077jsd", + "name" : "testCitationEntryInitalPageInfoChanged" + }, + "acm029078jsd" : { + "type" : "ControlElement", + "id" : "acm029078jsd", + "name" : "testCitationEntryNoInitialPageInfo" + }, + "acm029079jsd" : { + "type" : "ControlElement", + "id" : "acm029079jsd", + "name" : "testCitationEntryEquals" + }, + "acm029080jsd" : { + "type" : "ControlElement", + "id" : "acm029080jsd", + "name" : "testCitationEntryCompareTo" + }, + "acm029081jsd" : { + "type" : "ClassUnit", + "id" : "acm029081jsd", + "name" : "CitationEntryTest", + "compilationUnitId" : "acm029070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm019482jsd" ], + "content" : [ "acm029075jsd", "acm029076jsd", "acm029077jsd", "acm029078jsd", "acm029079jsd", "acm029080jsd" ] + }, + "acm029082jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029082jsd", + "name" : "PageTest", + "parentId" : "acm020215jsd", + "content" : [ "acm029092jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "paging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029083jsd" : { + "type" : "CodePackage", + "id" : "acm029083jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029084jsd" ] + }, + "acm029084jsd" : { + "type" : "CodePackage", + "id" : "acm029084jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029085jsd" ] + }, + "acm029085jsd" : { + "type" : "CodePackage", + "id" : "acm029085jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029086jsd" ] + }, + "acm029086jsd" : { + "type" : "CodePackage", + "id" : "acm029086jsd", + "name" : "paging", + "parentId" : null, + "content" : [ "acm029082jsd" ] + }, + "acm029087jsd" : { + "type" : "ControlElement", + "id" : "acm029087jsd", + "name" : "setup" + }, + "acm029088jsd" : { + "type" : "ControlElement", + "id" : "acm029088jsd", + "name" : "getContentTest" + }, + "acm029089jsd" : { + "type" : "ControlElement", + "id" : "acm029089jsd", + "name" : "getPageNumberTest" + }, + "acm029090jsd" : { + "type" : "ControlElement", + "id" : "acm029090jsd", + "name" : "getQueryTest" + }, + "acm029091jsd" : { + "type" : "ControlElement", + "id" : "acm029091jsd", + "name" : "getSizeTest" + }, + "acm029092jsd" : { + "type" : "ClassUnit", + "id" : "acm029092jsd", + "name" : "PageTest", + "compilationUnitId" : "acm029082jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm029087jsd", "acm029088jsd", "acm029089jsd", "acm029090jsd", "acm029091jsd" ] + }, + "acm029093jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029093jsd", + "name" : "FileAnnotationTest", + "parentId" : "acm020227jsd", + "content" : [ "acm029103jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "pdf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029094jsd" : { + "type" : "CodePackage", + "id" : "acm029094jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029095jsd" ] + }, + "acm029095jsd" : { + "type" : "CodePackage", + "id" : "acm029095jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029096jsd" ] + }, + "acm029096jsd" : { + "type" : "CodePackage", + "id" : "acm029096jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029097jsd" ] + }, + "acm029097jsd" : { + "type" : "CodePackage", + "id" : "acm029097jsd", + "name" : "pdf", + "parentId" : null, + "content" : [ "acm029093jsd" ] + }, + "acm029098jsd" : { + "type" : "ControlElement", + "id" : "acm029098jsd", + "name" : "testParseDateMinusBeforeTimezone" + }, + "acm029099jsd" : { + "type" : "ControlElement", + "id" : "acm029099jsd", + "name" : "testParseDatePlusBeforeTimezone" + }, + "acm029100jsd" : { + "type" : "ControlElement", + "id" : "acm029100jsd", + "name" : "testParseDateNoTimezone" + }, + "acm029101jsd" : { + "type" : "ControlElement", + "id" : "acm029101jsd", + "name" : "testParseNotADate" + }, + "acm029102jsd" : { + "type" : "ControlElement", + "id" : "acm029102jsd", + "name" : "testAbbreviateAnnotationName" + }, + "acm029103jsd" : { + "type" : "ClassUnit", + "id" : "acm029103jsd", + "name" : "FileAnnotationTest", + "compilationUnitId" : "acm029093jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020244jsd" ], + "content" : [ "acm029098jsd", "acm029099jsd", "acm029100jsd", "acm029101jsd", "acm029102jsd" ] + }, + "acm029104jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029104jsd", + "name" : "MatcherSetsTest", + "parentId" : "acm020336jsd", + "content" : [ "acm029114jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "search", "matchers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029105jsd" : { + "type" : "CodePackage", + "id" : "acm029105jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029106jsd" ] + }, + "acm029106jsd" : { + "type" : "CodePackage", + "id" : "acm029106jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029107jsd" ] + }, + "acm029107jsd" : { + "type" : "CodePackage", + "id" : "acm029107jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029108jsd" ] + }, + "acm029108jsd" : { + "type" : "CodePackage", + "id" : "acm029108jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm029109jsd" ] + }, + "acm029109jsd" : { + "type" : "CodePackage", + "id" : "acm029109jsd", + "name" : "matchers", + "parentId" : null, + "content" : [ "acm029104jsd" ] + }, + "acm029110jsd" : { + "type" : "ControlElement", + "id" : "acm029110jsd", + "name" : "testBuildAnd" + }, + "acm029111jsd" : { + "type" : "ControlElement", + "id" : "acm029111jsd", + "name" : "testBuildOr" + }, + "acm029112jsd" : { + "type" : "ControlElement", + "id" : "acm029112jsd", + "name" : "testBuildNotWithTrue" + }, + "acm029113jsd" : { + "type" : "ControlElement", + "id" : "acm029113jsd", + "name" : "testBuildNotWithFalse" + }, + "acm029114jsd" : { + "type" : "ClassUnit", + "id" : "acm029114jsd", + "name" : "MatcherSetsTest", + "compilationUnitId" : "acm029104jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020349jsd", "acm020367jsd", "acm029148jsd" ], + "content" : [ "acm029110jsd", "acm029111jsd", "acm029112jsd", "acm029113jsd" ] + }, + "acm029115jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029115jsd", + "name" : "ContainsBasedSearchRuleTest", + "parentId" : "acm020381jsd", + "content" : [ "acm029124jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029116jsd" : { + "type" : "CodePackage", + "id" : "acm029116jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029117jsd" ] + }, + "acm029117jsd" : { + "type" : "CodePackage", + "id" : "acm029117jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029118jsd" ] + }, + "acm029118jsd" : { + "type" : "CodePackage", + "id" : "acm029118jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029119jsd" ] + }, + "acm029119jsd" : { + "type" : "CodePackage", + "id" : "acm029119jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm029120jsd" ] + }, + "acm029120jsd" : { + "type" : "CodePackage", + "id" : "acm029120jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm029115jsd" ] + }, + "acm029121jsd" : { + "type" : "ControlElement", + "id" : "acm029121jsd", + "name" : "testContentOfSingleField" + }, + "acm029122jsd" : { + "type" : "ControlElement", + "id" : "acm029122jsd", + "name" : "testContentDistributedOnMultipleFields" + }, + "acm029123jsd" : { + "type" : "ControlElement", + "id" : "acm029123jsd", + "name" : "testRegularExpressionMatch" + }, + "acm029124jsd" : { + "type" : "ClassUnit", + "id" : "acm029124jsd", + "name" : "ContainsBasedSearchRuleTest", + "compilationUnitId" : "acm029115jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020385jsd", "acm020451jsd" ], + "content" : [ "acm029121jsd", "acm029122jsd", "acm029123jsd" ] + }, + "acm029125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029125jsd", + "name" : "GrammarBasedSearchRuleTest", + "parentId" : "acm020381jsd", + "content" : [ "acm029139jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029126jsd" : { + "type" : "CodePackage", + "id" : "acm029126jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029127jsd" ] + }, + "acm029127jsd" : { + "type" : "CodePackage", + "id" : "acm029127jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029128jsd" ] + }, + "acm029128jsd" : { + "type" : "CodePackage", + "id" : "acm029128jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029129jsd" ] + }, + "acm029129jsd" : { + "type" : "CodePackage", + "id" : "acm029129jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm029130jsd" ] + }, + "acm029130jsd" : { + "type" : "CodePackage", + "id" : "acm029130jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm029125jsd" ] + }, + "acm029131jsd" : { + "type" : "ControlElement", + "id" : "acm029131jsd", + "name" : "applyRuleMatchesSingleTermWithRegex" + }, + "acm029132jsd" : { + "type" : "ControlElement", + "id" : "acm029132jsd", + "name" : "applyRuleDoesNotMatchSingleTermWithRegex" + }, + "acm029133jsd" : { + "type" : "ControlElement", + "id" : "acm029133jsd", + "name" : "searchRuleOfDocumentationMatches" + }, + "acm029134jsd" : { + "type" : "ControlElement", + "id" : "acm029134jsd", + "name" : "searchForAnyFieldWorks" + }, + "acm029135jsd" : { + "type" : "ControlElement", + "id" : "acm029135jsd", + "name" : "searchForAnyKeywordWorks" + }, + "acm029136jsd" : { + "type" : "ControlElement", + "id" : "acm029136jsd", + "name" : "searchForCitationKeyWorks" + }, + "acm029137jsd" : { + "type" : "ControlElement", + "id" : "acm029137jsd", + "name" : "searchForThesisEntryTypeWorks" + }, + "acm029138jsd" : { + "type" : "ControlElement", + "id" : "acm029138jsd", + "name" : "makeBibtexEntry" + }, + "acm029139jsd" : { + "type" : "ClassUnit", + "id" : "acm029139jsd", + "name" : "GrammarBasedSearchRuleTest", + "compilationUnitId" : "acm029125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm018267jsd", "acm020424jsd", "acm020473jsd" ], + "content" : [ "acm029131jsd", "acm029132jsd", "acm029133jsd", "acm029134jsd", "acm029135jsd", "acm029136jsd", "acm029137jsd", "acm029138jsd" ] + }, + "acm029140jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029140jsd", + "name" : "MockSearchMatcher", + "parentId" : "acm020381jsd", + "content" : [ "acm029148jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029141jsd" : { + "type" : "CodePackage", + "id" : "acm029141jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029142jsd" ] + }, + "acm029142jsd" : { + "type" : "CodePackage", + "id" : "acm029142jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029143jsd" ] + }, + "acm029143jsd" : { + "type" : "CodePackage", + "id" : "acm029143jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029144jsd" ] + }, + "acm029144jsd" : { + "type" : "CodePackage", + "id" : "acm029144jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm029145jsd" ] + }, + "acm029145jsd" : { + "type" : "CodePackage", + "id" : "acm029145jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm029140jsd" ] + }, + "acm029146jsd" : { + "type" : "ControlElement", + "id" : "acm029146jsd", + "name" : "MockSearchMatcher" + }, + "acm029147jsd" : { + "type" : "ControlElement", + "id" : "acm029147jsd", + "name" : "isMatch" + }, + "acm029148jsd" : { + "type" : "ClassUnit", + "id" : "acm029148jsd", + "name" : "MockSearchMatcher", + "compilationUnitId" : "acm029140jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm020330jsd" ], + "datatypeReferencesIds" : [ "acm018267jsd" ], + "content" : [ "acm029146jsd", "acm029147jsd" ] + }, + "acm029149jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029149jsd", + "name" : "SentenceAnalyzerTest", + "parentId" : "acm020381jsd", + "content" : [ "acm029157jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "search", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029150jsd" : { + "type" : "CodePackage", + "id" : "acm029150jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029151jsd" ] + }, + "acm029151jsd" : { + "type" : "CodePackage", + "id" : "acm029151jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029152jsd" ] + }, + "acm029152jsd" : { + "type" : "CodePackage", + "id" : "acm029152jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029153jsd" ] + }, + "acm029153jsd" : { + "type" : "CodePackage", + "id" : "acm029153jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm029154jsd" ] + }, + "acm029154jsd" : { + "type" : "CodePackage", + "id" : "acm029154jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm029149jsd" ] + }, + "acm029155jsd" : { + "type" : "ControlElement", + "id" : "acm029155jsd", + "name" : "getParameters" + }, + "acm029156jsd" : { + "type" : "ControlElement", + "id" : "acm029156jsd", + "name" : "testGetWords" + }, + "acm029157jsd" : { + "type" : "ClassUnit", + "id" : "acm029157jsd", + "name" : "SentenceAnalyzerTest", + "compilationUnitId" : "acm029149jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020482jsd" ], + "content" : [ "acm029155jsd", "acm029156jsd" ] + }, + "acm029158jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029158jsd", + "name" : "StringUtilTest", + "parentId" : "acm020487jsd", + "content" : [ "acm029215jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "strings" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029159jsd" : { + "type" : "CodePackage", + "id" : "acm029159jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029160jsd" ] + }, + "acm029160jsd" : { + "type" : "CodePackage", + "id" : "acm029160jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029161jsd" ] + }, + "acm029161jsd" : { + "type" : "CodePackage", + "id" : "acm029161jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029162jsd" ] + }, + "acm029162jsd" : { + "type" : "CodePackage", + "id" : "acm029162jsd", + "name" : "strings", + "parentId" : null, + "content" : [ "acm029158jsd" ] + }, + "acm029163jsd" : { + "type" : "ControlElement", + "id" : "acm029163jsd", + "name" : "StringUtilClassIsSmall" + }, + "acm029164jsd" : { + "type" : "ControlElement", + "id" : "acm029164jsd", + "name" : "testBooleanToBinaryString" + }, + "acm029165jsd" : { + "type" : "ControlElement", + "id" : "acm029165jsd", + "name" : "testQuoteSimple" + }, + "acm029166jsd" : { + "type" : "ControlElement", + "id" : "acm029166jsd", + "name" : "testQuoteNullQuotation" + }, + "acm029167jsd" : { + "type" : "ControlElement", + "id" : "acm029167jsd", + "name" : "testQuoteNullString" + }, + "acm029168jsd" : { + "type" : "ControlElement", + "id" : "acm029168jsd", + "name" : "testQuoteQuotationCharacter" + }, + "acm029169jsd" : { + "type" : "ControlElement", + "id" : "acm029169jsd", + "name" : "testQuoteMoreComplicated" + }, + "acm029170jsd" : { + "type" : "ControlElement", + "id" : "acm029170jsd", + "name" : "testUnifyLineBreaks" + }, + "acm029171jsd" : { + "type" : "ControlElement", + "id" : "acm029171jsd", + "name" : "testGetCorrectFileName" + }, + "acm029172jsd" : { + "type" : "ControlElement", + "id" : "acm029172jsd", + "name" : "testQuoteForHTML" + }, + "acm029173jsd" : { + "type" : "ControlElement", + "id" : "acm029173jsd", + "name" : "testRemoveBracesAroundCapitals" + }, + "acm029174jsd" : { + "type" : "ControlElement", + "id" : "acm029174jsd", + "name" : "testPutBracesAroundCapitals" + }, + "acm029175jsd" : { + "type" : "ControlElement", + "id" : "acm029175jsd", + "name" : "testShaveString" + }, + "acm029176jsd" : { + "type" : "ControlElement", + "id" : "acm029176jsd", + "name" : "testJoin" + }, + "acm029177jsd" : { + "type" : "ControlElement", + "id" : "acm029177jsd", + "name" : "testStripBrackets" + }, + "acm029178jsd" : { + "type" : "ControlElement", + "id" : "acm029178jsd", + "name" : "testGetPart" + }, + "acm029179jsd" : { + "type" : "ControlElement", + "id" : "acm029179jsd", + "name" : "testFindEncodingsForString" + }, + "acm029180jsd" : { + "type" : "ControlElement", + "id" : "acm029180jsd", + "name" : "testWrap" + }, + "acm029181jsd" : { + "type" : "ControlElement", + "id" : "acm029181jsd", + "name" : "testDecodeStringDoubleArray" + }, + "acm029182jsd" : { + "type" : "ControlElement", + "id" : "acm029182jsd", + "name" : "testIsInCurlyBrackets" + }, + "acm029183jsd" : { + "type" : "ControlElement", + "id" : "acm029183jsd", + "name" : "testIsInSquareBrackets" + }, + "acm029184jsd" : { + "type" : "ControlElement", + "id" : "acm029184jsd", + "name" : "testIsInCitationMarks" + }, + "acm029185jsd" : { + "type" : "ControlElement", + "id" : "acm029185jsd", + "name" : "testIntValueOfSingleDigit" + }, + "acm029186jsd" : { + "type" : "ControlElement", + "id" : "acm029186jsd", + "name" : "testIntValueOfLongString" + }, + "acm029187jsd" : { + "type" : "ControlElement", + "id" : "acm029187jsd", + "name" : "testIntValueOfStartWithZeros" + }, + "acm029188jsd" : { + "type" : "ControlElement", + "id" : "acm029188jsd", + "name" : "testIntValueOfExceptionIfStringContainsLetter" + }, + "acm029189jsd" : { + "type" : "ControlElement", + "id" : "acm029189jsd", + "name" : "testIntValueOfExceptionIfStringNull" + }, + "acm029190jsd" : { + "type" : "ControlElement", + "id" : "acm029190jsd", + "name" : "testIntValueOfExceptionfIfStringEmpty" + }, + "acm029191jsd" : { + "type" : "ControlElement", + "id" : "acm029191jsd", + "name" : "testIntValueOfWithNullSingleDigit" + }, + "acm029192jsd" : { + "type" : "ControlElement", + "id" : "acm029192jsd", + "name" : "testIntValueOfWithNullLongString" + }, + "acm029193jsd" : { + "type" : "ControlElement", + "id" : "acm029193jsd", + "name" : "testIntValueOfWithNullStartWithZeros" + }, + "acm029194jsd" : { + "type" : "ControlElement", + "id" : "acm029194jsd", + "name" : "testIntValueOfWithNullExceptionIfStringContainsLetter" + }, + "acm029195jsd" : { + "type" : "ControlElement", + "id" : "acm029195jsd", + "name" : "testIntValueOfWithNullExceptionIfStringNull" + }, + "acm029196jsd" : { + "type" : "ControlElement", + "id" : "acm029196jsd", + "name" : "testIntValueOfWithNullExceptionfIfStringEmpty" + }, + "acm029197jsd" : { + "type" : "ControlElement", + "id" : "acm029197jsd", + "name" : "testLimitStringLengthShort" + }, + "acm029198jsd" : { + "type" : "ControlElement", + "id" : "acm029198jsd", + "name" : "testLimitStringLengthLimiting" + }, + "acm029199jsd" : { + "type" : "ControlElement", + "id" : "acm029199jsd", + "name" : "testLimitStringLengthNullInput" + }, + "acm029200jsd" : { + "type" : "ControlElement", + "id" : "acm029200jsd", + "name" : "testReplaceSpecialCharacters" + }, + "acm029201jsd" : { + "type" : "ControlElement", + "id" : "acm029201jsd", + "name" : "replaceSpecialCharactersWithNonNormalizedUnicode" + }, + "acm029202jsd" : { + "type" : "ControlElement", + "id" : "acm029202jsd", + "name" : "testRepeatSpacesData" + }, + "acm029203jsd" : { + "type" : "ControlElement", + "id" : "acm029203jsd", + "name" : "testRepeatSpaces" + }, + "acm029204jsd" : { + "type" : "ControlElement", + "id" : "acm029204jsd", + "name" : "testRepeat" + }, + "acm029205jsd" : { + "type" : "ControlElement", + "id" : "acm029205jsd", + "name" : "testBoldHTML" + }, + "acm029206jsd" : { + "type" : "ControlElement", + "id" : "acm029206jsd", + "name" : "testBoldHTMLReturnsOriginalTextIfNonNull" + }, + "acm029207jsd" : { + "type" : "ControlElement", + "id" : "acm029207jsd", + "name" : "testBoldHTMLReturnsAlternativeTextIfNull" + }, + "acm029208jsd" : { + "type" : "ControlElement", + "id" : "acm029208jsd", + "name" : "testUnquote" + }, + "acm029209jsd" : { + "type" : "ControlElement", + "id" : "acm029209jsd", + "name" : "testCapitalizeFirst" + }, + "acm029210jsd" : { + "type" : "ControlElement", + "id" : "acm029210jsd", + "name" : "getQuoteStringIfSpaceIsContainedData" + }, + "acm029211jsd" : { + "type" : "ControlElement", + "id" : "acm029211jsd", + "name" : "testGuoteStringIfSpaceIsContained" + }, + "acm029212jsd" : { + "type" : "ControlElement", + "id" : "acm029212jsd", + "name" : "testStripAccents" + }, + "acm029213jsd" : { + "type" : "ControlElement", + "id" : "acm029213jsd", + "name" : "testContainsWhitespace" + }, + "acm029214jsd" : { + "type" : "ControlElement", + "id" : "acm029214jsd", + "name" : "testContainsWhitespace" + }, + "acm029215jsd" : { + "type" : "ClassUnit", + "id" : "acm029215jsd", + "name" : "StringUtilTest", + "compilationUnitId" : "acm029158jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020541jsd" ], + "content" : [ "acm029163jsd", "acm029164jsd", "acm029165jsd", "acm029166jsd", "acm029167jsd", "acm029168jsd", "acm029169jsd", "acm029170jsd", "acm029171jsd", "acm029172jsd", "acm029173jsd", "acm029174jsd", "acm029175jsd", "acm029176jsd", "acm029177jsd", "acm029178jsd", "acm029179jsd", "acm029180jsd", "acm029181jsd", "acm029182jsd", "acm029183jsd", "acm029184jsd", "acm029185jsd", "acm029186jsd", "acm029187jsd", "acm029188jsd", "acm029189jsd", "acm029190jsd", "acm029191jsd", "acm029192jsd", "acm029193jsd", "acm029194jsd", "acm029195jsd", "acm029196jsd", "acm029197jsd", "acm029198jsd", "acm029199jsd", "acm029200jsd", "acm029201jsd", "acm029202jsd", "acm029203jsd", "acm029204jsd", "acm029205jsd", "acm029206jsd", "acm029207jsd", "acm029208jsd", "acm029209jsd", "acm029210jsd", "acm029211jsd", "acm029212jsd", "acm029213jsd", "acm029214jsd" ] + }, + "acm029216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029216jsd", + "name" : "CitationTest", + "parentId" : "acm020620jsd", + "content" : [ "acm029235jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "model", "texparser" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029217jsd" : { + "type" : "CodePackage", + "id" : "acm029217jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029218jsd" ] + }, + "acm029218jsd" : { + "type" : "CodePackage", + "id" : "acm029218jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029219jsd" ] + }, + "acm029219jsd" : { + "type" : "CodePackage", + "id" : "acm029219jsd", + "name" : "model", + "parentId" : null, + "content" : [ "acm029220jsd" ] + }, + "acm029220jsd" : { + "type" : "CodePackage", + "id" : "acm029220jsd", + "name" : "texparser", + "parentId" : null, + "content" : [ "acm029216jsd" ] + }, + "acm029221jsd" : { + "type" : "ControlElement", + "id" : "acm029221jsd", + "name" : "init" + }, + "acm029222jsd" : { + "type" : "ControlElement", + "id" : "acm029222jsd", + "name" : "colStartColEndNotInBounds" + }, + "acm029223jsd" : { + "type" : "ControlElement", + "id" : "acm029223jsd", + "name" : "colStartColEndInBounds" + }, + "acm029224jsd" : { + "type" : "ControlElement", + "id" : "acm029224jsd", + "name" : "constructorLineSmallerEqualZeroTest" + }, + "acm029225jsd" : { + "type" : "ControlElement", + "id" : "acm029225jsd", + "name" : "constructorLineLargerZeroTest" + }, + "acm029226jsd" : { + "type" : "ControlElement", + "id" : "acm029226jsd", + "name" : "constructorColStartColEndNotInBoundsTest" + }, + "acm029227jsd" : { + "type" : "ControlElement", + "id" : "acm029227jsd", + "name" : "constructorColStartColEndInBoundsTest" + }, + "acm029228jsd" : { + "type" : "ControlElement", + "id" : "acm029228jsd", + "name" : "getPathTest" + }, + "acm029229jsd" : { + "type" : "ControlElement", + "id" : "acm029229jsd", + "name" : "getLineTest" + }, + "acm029230jsd" : { + "type" : "ControlElement", + "id" : "acm029230jsd", + "name" : "getColStartTest" + }, + "acm029231jsd" : { + "type" : "ControlElement", + "id" : "acm029231jsd", + "name" : "getColEndTest" + }, + "acm029232jsd" : { + "type" : "ControlElement", + "id" : "acm029232jsd", + "name" : "getLineTextTest" + }, + "acm029233jsd" : { + "type" : "ControlElement", + "id" : "acm029233jsd", + "name" : "getContextTest" + }, + "acm029234jsd" : { + "type" : "ControlElement", + "id" : "acm029234jsd", + "name" : "equalsTest" + }, + "acm029235jsd" : { + "type" : "ClassUnit", + "id" : "acm029235jsd", + "name" : "CitationTest", + "compilationUnitId" : "acm029216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm020631jsd" ], + "content" : [ "acm029221jsd", "acm029222jsd", "acm029223jsd", "acm029224jsd", "acm029225jsd", "acm029226jsd", "acm029227jsd", "acm029228jsd", "acm029229jsd", "acm029230jsd", "acm029231jsd", "acm029232jsd", "acm029233jsd", "acm029234jsd" ] + }, + "acm029236jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029236jsd", + "name" : "BibtexEntryGenerator", + "parentId" : "acm029239jsd", + "content" : [ "acm029242jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "performance" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029237jsd" : { + "type" : "CodePackage", + "id" : "acm029237jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029238jsd" ] + }, + "acm029238jsd" : { + "type" : "CodePackage", + "id" : "acm029238jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029239jsd" ] + }, + "acm029239jsd" : { + "type" : "CodePackage", + "id" : "acm029239jsd", + "name" : "performance", + "parentId" : "acm001339jsd", + "content" : [ "acm029236jsd" ] + }, + "acm029240jsd" : { + "type" : "ControlElement", + "id" : "acm029240jsd", + "name" : "generateBibtexEntries" + }, + "acm029241jsd" : { + "type" : "ControlElement", + "id" : "acm029241jsd", + "name" : "generateBibtexEntry" + }, + "acm029242jsd" : { + "type" : "ClassUnit", + "id" : "acm029242jsd", + "name" : "BibtexEntryGenerator", + "compilationUnitId" : "acm029236jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm029240jsd", "acm029241jsd" ] + }, + "acm029243jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029243jsd", + "name" : "CIServerCondition", + "parentId" : "acm029246jsd", + "content" : [ "acm029249jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "support" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029244jsd" : { + "type" : "CodePackage", + "id" : "acm029244jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029245jsd" ] + }, + "acm029245jsd" : { + "type" : "CodePackage", + "id" : "acm029245jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029246jsd" ] + }, + "acm029246jsd" : { + "type" : "CodePackage", + "id" : "acm029246jsd", + "name" : "support", + "parentId" : "acm001339jsd", + "content" : [ "acm029243jsd", "acm029250jsd" ] + }, + "acm029247jsd" : { + "type" : "ControlElement", + "id" : "acm029247jsd", + "name" : "isCIServer" + }, + "acm029248jsd" : { + "type" : "ControlElement", + "id" : "acm029248jsd", + "name" : "evaluateExecutionCondition" + }, + "acm029249jsd" : { + "type" : "ClassUnit", + "id" : "acm029249jsd", + "name" : "CIServerCondition", + "compilationUnitId" : "acm029243jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm029247jsd", "acm029248jsd" ] + }, + "acm029250jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029250jsd", + "name" : "DisabledOnCIServer", + "parentId" : "acm029246jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "support" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029251jsd" : { + "type" : "CodePackage", + "id" : "acm029251jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029252jsd" ] + }, + "acm029252jsd" : { + "type" : "CodePackage", + "id" : "acm029252jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029253jsd" ] + }, + "acm029253jsd" : { + "type" : "CodePackage", + "id" : "acm029253jsd", + "name" : "support", + "parentId" : null, + "content" : [ "acm029250jsd" ] + }, + "acm029254jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029254jsd", + "name" : "DatabaseTest", + "parentId" : "acm029258jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "testutils", "category" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029255jsd" : { + "type" : "CodePackage", + "id" : "acm029255jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029256jsd" ] + }, + "acm029256jsd" : { + "type" : "CodePackage", + "id" : "acm029256jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029257jsd" ] + }, + "acm029257jsd" : { + "type" : "CodePackage", + "id" : "acm029257jsd", + "name" : "testutils", + "parentId" : "acm001339jsd", + "content" : [ "acm029258jsd", "acm029273jsd" ] + }, + "acm029258jsd" : { + "type" : "CodePackage", + "id" : "acm029258jsd", + "name" : "category", + "parentId" : "acm029257jsd", + "content" : [ "acm029254jsd", "acm029259jsd", "acm029264jsd" ] + }, + "acm029259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029259jsd", + "name" : "FetcherTest", + "parentId" : "acm029258jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "testutils", "category" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029260jsd" : { + "type" : "CodePackage", + "id" : "acm029260jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029261jsd" ] + }, + "acm029261jsd" : { + "type" : "CodePackage", + "id" : "acm029261jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029262jsd" ] + }, + "acm029262jsd" : { + "type" : "CodePackage", + "id" : "acm029262jsd", + "name" : "testutils", + "parentId" : null, + "content" : [ "acm029263jsd" ] + }, + "acm029263jsd" : { + "type" : "CodePackage", + "id" : "acm029263jsd", + "name" : "category", + "parentId" : null, + "content" : [ "acm029259jsd" ] + }, + "acm029264jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029264jsd", + "name" : "GUITest", + "parentId" : "acm029258jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "testutils", "category" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029265jsd" : { + "type" : "CodePackage", + "id" : "acm029265jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029266jsd" ] + }, + "acm029266jsd" : { + "type" : "CodePackage", + "id" : "acm029266jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029267jsd" ] + }, + "acm029267jsd" : { + "type" : "CodePackage", + "id" : "acm029267jsd", + "name" : "testutils", + "parentId" : null, + "content" : [ "acm029268jsd" ] + }, + "acm029268jsd" : { + "type" : "CodePackage", + "id" : "acm029268jsd", + "name" : "category", + "parentId" : null, + "content" : [ "acm029264jsd" ] + }, + "acm029269jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029269jsd", + "name" : "StyleTesterMain", + "parentId" : "acm029274jsd", + "content" : [ "acm029278jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "testutils", "interactive", "styletester" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029270jsd" : { + "type" : "CodePackage", + "id" : "acm029270jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029271jsd" ] + }, + "acm029271jsd" : { + "type" : "CodePackage", + "id" : "acm029271jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029272jsd" ] + }, + "acm029272jsd" : { + "type" : "CodePackage", + "id" : "acm029272jsd", + "name" : "testutils", + "parentId" : null, + "content" : [ "acm029273jsd" ] + }, + "acm029273jsd" : { + "type" : "CodePackage", + "id" : "acm029273jsd", + "name" : "interactive", + "parentId" : "acm029257jsd", + "content" : [ "acm029274jsd" ] + }, + "acm029274jsd" : { + "type" : "CodePackage", + "id" : "acm029274jsd", + "name" : "styletester", + "parentId" : "acm029273jsd", + "content" : [ "acm029269jsd", "acm029279jsd" ] + }, + "acm029275jsd" : { + "type" : "ControlElement", + "id" : "acm029275jsd", + "name" : "main" + }, + "acm029276jsd" : { + "type" : "ControlElement", + "id" : "acm029276jsd", + "name" : "start" + }, + "acm029277jsd" : { + "type" : "ControlElement", + "id" : "acm029277jsd", + "name" : "stop" + }, + "acm029278jsd" : { + "type" : "ClassUnit", + "id" : "acm029278jsd", + "name" : "StyleTesterMain", + "compilationUnitId" : "acm029269jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009346jsd", "acm009712jsd", "acm010366jsd", "acm029288jsd" ], + "content" : [ "acm029275jsd", "acm029276jsd", "acm029277jsd" ] + }, + "acm029279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029279jsd", + "name" : "StyleTesterView", + "parentId" : "acm029274jsd", + "content" : [ "acm029288jsd" ], + "pathElements" : [ "src", "test", "java", "org", "jabref", "testutils", "interactive", "styletester" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm029280jsd" : { + "type" : "CodePackage", + "id" : "acm029280jsd", + "name" : "org", + "parentId" : null, + "content" : [ "acm029281jsd" ] + }, + "acm029281jsd" : { + "type" : "CodePackage", + "id" : "acm029281jsd", + "name" : "jabref", + "parentId" : null, + "content" : [ "acm029282jsd" ] + }, + "acm029282jsd" : { + "type" : "CodePackage", + "id" : "acm029282jsd", + "name" : "testutils", + "parentId" : null, + "content" : [ "acm029283jsd" ] + }, + "acm029283jsd" : { + "type" : "CodePackage", + "id" : "acm029283jsd", + "name" : "interactive", + "parentId" : null, + "content" : [ "acm029284jsd" ] + }, + "acm029284jsd" : { + "type" : "CodePackage", + "id" : "acm029284jsd", + "name" : "styletester", + "parentId" : null, + "content" : [ "acm029279jsd" ] + }, + "acm029285jsd" : { + "type" : "ControlElement", + "id" : "acm029285jsd", + "name" : "StyleTesterView" + }, + "acm029286jsd" : { + "type" : "ControlElement", + "id" : "acm029286jsd", + "name" : "setStates" + }, + "acm029287jsd" : { + "type" : "ControlElement", + "id" : "acm029287jsd", + "name" : "getContent" + }, + "acm029288jsd" : { + "type" : "ClassUnit", + "id" : "acm029288jsd", + "name" : "StyleTesterView", + "compilationUnitId" : "acm029279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm029285jsd", "acm029286jsd", "acm029287jsd" ] + }, + "acm029290jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029290jsd", + "name" : "postinst", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "buildres", "linux" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029291jsd", + "name" : "postrm", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "buildres", "linux" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029292jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029292jsd", + "name" : "postinstall", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "buildres", "mac" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029293jsd", + "name" : "gradlew", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "", + "language" : "SHELL" + }, + "acm029294jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029294jsd", + "name" : "after-failure", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "scripts" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm029295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029295jsd", + "name" : "connect-plug-etc-chromium-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029296jsd", + "name" : "connect-plug-etc-opt-chrome-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029297jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029297jsd", + "name" : "connect-plug-etc-opt-edge-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029298jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029298jsd", + "name" : "connect-plug-hostfs-mozilla-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029299jsd", + "name" : "disconnect-plug-etc-chromium-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029300jsd", + "name" : "disconnect-plug-etc-opt-chrome-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029301jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029301jsd", + "name" : "disconnect-plug-etc-opt-edge-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029302jsd", + "name" : "disconnect-plug-hostfs-mozilla-native-messaging-jabref", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "snap", "hooks" ], + "extension" : "", + "language" : "SHELL" + }, + "acm029303jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm029303jsd", + "name" : "svg2icns", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "src", "main", "resources", "icons" ], + "extension" : "sh", + "language" : "SHELL" + } + } + }, + "content" : [ "acm001338jsd", "acm001442jsd", "acm029290jsd", "acm029291jsd", "acm029292jsd", "acm029293jsd", "acm029294jsd", "acm029295jsd", "acm029296jsd", "acm029297jsd", "acm029298jsd", "acm029299jsd", "acm029300jsd", "acm029301jsd", "acm029302jsd", "acm029303jsd" ] +} \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/jabref/text_2016/README.md b/tests-base/src/main/resources/benchmark/jabref/text_2016/README.md new file mode 100644 index 000000000..78ad72cc4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/text_2016/README.md @@ -0,0 +1,16 @@ +# JabRef 2016 + +The text was taken from https://github.com/JabRef/jabref/blob/7c26856a492243a6a8d272dfb4a9054c47018bda/docs/high-level-documentation.md + +## Assumptions + +* For the goldstandard it was assumed, that the text still fits to the model from 2021. + +## Text Adaptation + + - + +## License + +The [documentation](https://github.com/JabRef/jabref/blob/7c26856a492243a6a8d272dfb4a9054c47018bda/docs/high-level-documentation.md) of JabRef is part of their [repository](https://github.com/JabRef/jabref/). +Therefore, the text we extracted from their documentation is licensed according to the [license of JabRef](https://github.com/JabRef/jabref/blob/main/LICENSE.md), i.e., MIT. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/jabref/text_2016/jabref_2016.txt b/tests-base/src/main/resources/benchmark/jabref/text_2016/jabref_2016.txt new file mode 100644 index 000000000..b1ef7e296 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/text_2016/jabref_2016.txt @@ -0,0 +1,10 @@ +Describes relevant information about the code structure of JabRef in a very precise and succinct way. +We are currently transitioning from a spaghetti to an onion architecture with the model in the center, and the logic as an intermediate layer towards the gui which is the outer shell. +The dependencies are only directed towards the center. +We have JUnit tests to detect violations, and the build will fail automatically in these cases. +The model can only represent the most important data structures and has only a little bit of logic attached. +The logic is responsible for reading/writing/importing/exporting and manipulating the model, and it is structured often as an API the gui can call and use. +Only the gui knows the user and his preferences, and can interact with him to help him solve tasks. +For each onion layer, we form packages according to their responsibility, i.e., vertical structuring. +We use an event bus to publish events from the model to the other onion layers. +This allows us to keep the onion architecture but still react upon changes within the core in the outer layers. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/jabref/text_2021/README.md b/tests-base/src/main/resources/benchmark/jabref/text_2021/README.md new file mode 100644 index 000000000..64fdb90ad --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/text_2021/README.md @@ -0,0 +1,12 @@ +# JabRef 2021 + +The text was taken from https://github.com/JabRef/jabref/blob/main/docs/getting-into-the-code/high-level-documentation.md + +## Text Adaptation + +Note, that the first paragraph was skipped as it was more a hint to another documentation than part of the high-level-documentation. + +## License + +The [documentation](https://github.com/JabRef/jabref/blob/main/docs/getting-into-the-code/high-level-documentation.md) of JabRef is part of their [repository](https://github.com/JabRef/jabref/). +Therefore, the text we extracted from their documentation is licensed according to the [license of JabRef](https://github.com/JabRef/jabref/blob/main/LICENSE.md), i.e., MIT. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/jabref/text_2021/jabref.txt b/tests-base/src/main/resources/benchmark/jabref/text_2021/jabref.txt new file mode 100644 index 000000000..8894c9803 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/jabref/text_2021/jabref.txt @@ -0,0 +1,15 @@ +We have been successfully transitioning from a spaghetti to a more structured architecture with the model in the center, and the logic as an intermediate layer towards the gui which is the outer shell. +There are additional utility packages for preferences and the cli. +The dependencies are only directed towards the center. +We have JUnit tests to detect violations of the most crucial dependencies (between logic, model, and gui), and the build will fail automatically in these cases. + +The model represents the most important data structures (BibDatases, BibEntries, Events, and related aspects) and has only a little bit of logic attached. +The logic is responsible for reading/writing/importing/exporting and manipulating the model, and it is structured often as an API the gui can call and use. +Only the gui knows the user and his preferences and can interact with him to help him solve tasks. +For each layer, we form packages according to their responsibility, i.e., vertical structuring. +The model should have no dependencies to other classes of JabRef and the logic should only depend on model classes. +The cli package bundles classes that are responsible for JabRef’s command line interface. +The preferences represents all information customizable by a user for her personal needs. + +We use an event bus to publish events from the model to the other layers. +This allows us to keep the architecture but still react upon changes within the core in the outer layers. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/mediastore/README.md b/tests-base/src/main/resources/benchmark/mediastore/README.md new file mode 100644 index 000000000..9513c9323 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/README.md @@ -0,0 +1,16 @@ +# MediaStore Statistics (cloc) +``` +----------------------------------------------------------------------------------- +Language files blank comment code +----------------------------------------------------------------------------------- +Java 97 1126 1978 3709 +Maven 23 154 43 1193 +XML 24 2 25 590 +Visualforce Component 22 0 0 378 +XHTML 5 59 8 214 +CSS 1 63 0 68 +SQL 4 0 0 7 +----------------------------------------------------------------------------------- +SUM: 176 1404 2054 6159 +----------------------------------------------------------------------------------- +``` diff --git a/tests-base/src/main/resources/benchmark/mediastore/diagrams_2016/ArchitectureWithCache.png b/tests-base/src/main/resources/benchmark/mediastore/diagrams_2016/ArchitectureWithCache.png new file mode 100644 index 0000000000000000000000000000000000000000..96b0622b7714afd8325c0f51a15180c49888f599 GIT binary patch literal 3917670 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

{9vSIu{wnL?W}%&sxYpU8M8vRP>$lk| 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

(v-8$O$2BK-`8EFA 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

  • +J?EjDYPrHNqTpG=@^-Gb&P8q?DZ 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
  • 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%0Apt2e=n) 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 z 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�#@e$hQEaDd6WOM4KVw(w*7l~MOfL>rf}s{QX&57{QLs)&^6>`qVx@0Z{ZW3 z6F_(Ki$N|q4M)w0z}#Q>)y(*Jt&=s76sLsD>Q}Wp86N?U|-C`Pr@(XWqCERJB3f=|dF@abZUa zO{jnFvTbmv#d@t|OCSA?fKB()>Lpn!zt=XlS*s$Rf_CV2;8*%*C$qYmYXC%iJ^U%D9?zG;E2|t%Nu`%Vg%M`}0IFo}+UD8C(hHA2)pzC2-adRGD>jTCfBLVZ zs@!Sc`SmQYVH_;&Y6J{l6Li>lAxXb7Kig<6qBL_aWFwKo`2p}dbRkznTQgZ&D&(J-w&Mf|zT-40)*Z3a+NG!7Qh4c=8EMh$5Ov!uN^Mf}LOd_wb40~p zDw;6@4!77vOQ#bW4icxDS+|m{V6;*x$Q$YE_m*C1?*IAM-RO~<+6PJau|z9HZ~&Hc zkD6ct!9DU9lLH^Gmc))FKcsx|o=1{Us%3aY!wCISzN_w;NV8tE7i`~Oe3q6-ARm?n zB3SenCb~9_Vw^7b<)OOM5vs5xluGZ^In=2Wnu$K-i_&emnEFfJ%aSp1!jy{GC{<%} z{}tdDPSI>r%C*&Q_V+M1xD32~>~XVpk{rLIF-+V^P_e2^mD-jP8Gq2A;p#D_yDm@j z9OaL+_B0=KaqNFAePB2@92YS4hFU6VJ8g z*skHAwYsE<){WWwY`m_PrHuHUOSw&YSBRNIoUD&lv)^qiMq!|QYmzsfg|DqCja!TR zy9v+rG*2I*S=8!z3@&xnwH>rzIw=Xi^CQ8fJV7>wdAU9aw}=0uwU)8sXfwzfqR*$*6*lA5=|EGvt!phfB(EltG$*x*=uQ< z=TpzBQC=OP=PPIc7u=a}1OUVryKLZN8Lx+!d7{Zg#1HZ8EyOTn(b=L z8Ru?Ig1P(M_KDkATHo+5^DkT1;@~%?fo&5rtM91xVsso%Y0arpT1`w{a6kcT?2u<+%QZy zj4u&0mnpi?%T3WGB;Na>I*)kh_v_oU>XA%-0tryovjeRUpsA3q)o7hzvp)i~i7swm zx>&E9!2;VEm?6eFI=FvLq|ar0q9v7y(r~EW6IqMr_2Q*Iht@)&>lNksy#oVLuPJHY z5&>Yz{d7zH9}qgo60l7id8l{3POvX#TosYK85>h?zxeAUDk-S|VFCmfaW&nO`{&gS zAx$%K6j4e7DOz%ADfuBszAlA4>bmxm4xFCeGxn0<^8<31J=k>ct@D@vu&BM@8)}&0 zC94X>u}xF!sMP`YI6%31a7+bflF+|_(#>+Kq6zMPeqWXYBz`X~0S|gWJI8jbm1*GLMPkW$KDf9%?+B})EsNd6 z#M#YNn;~6XT+Gx|hb&w3haKMnpv+E%3LwYk-RWR_1BieB04l~`J&#AU0Tjq=*33?- zK?~Vi%c|$hv3@bEF0QUQ)-ywxz#VgPat@wS-v`s>Z@<<%c*Y>Vh*RaGP>yV^PW3UQ zhUs(1fk3a@{U4P-Kz!b_%d_#yi9gp=C`xG_vz=j?(f$>`>xDaU$^}iXrcH#|^cw3a zM^f`gvij%CUw5iUAtWKh?e+vfVp;EJJpC8fn*o5{o0sBurO}BRStB5q(&%zslar%3 zB3z%NN23-KGA8|8Londa-IKi~i;CocYBA#&i<~Per@jx0K__s?E?(R>Zhg};W!vCi zii>y1oM9vDO-8#wRPiCwHb8cNqm3*>MDq7o#LChZ3&qqWzfr*fT8&Wej{P*zeYwAz zRPH`W{5y<%{x-Gu`h3QK%4g25pa=L3%|GQ7>g~(mu{!S;|J0GM zj2_1z`FMBw1wqkubsbBQ2>XH_u^riLVq!9BjQHOoCW7vfLi2u{th%~d7E3x?UH5HF zWy+YXK){%Fm60BGi2~QOe~sDf~6~pexN$%PnuC`^mt1xzd(BqiTwlQyZ9*H*@+lOt*>~NGo#ZuG z8si8C`O$cnhpkom`d0xfRr(WEO4%ggs>Xur-%FaWTns;kv;?M}6&R#c;0+VHD$kHM z7=q)CQ0A*5cec_62p~^A-Jtm|3t>BOvI10&m}R2@|01pi857|O4Lx2~t}#zj`Hj-J zB_b~%=9GK&PIw!t7y6`GxVhS-YX^TCSRA~i6|-M1`%34TP%?135gw(e!M(7%rzJpt zbK6cC4Qz5|SVHf&eKK`$`BdxZrBk-W%mOwS{H`}2 z|0P}-KiF1&IYRMh#C|K$w05jFd`u3ZRo~P|@o5yeo^F?h#hG40j3>_olyI7@$HU-FzkLw{@>y^%*!|TG-fN0j+1}EI@RL4%kuo z_mr>ZYJ)#F*iEcgncqA5r}@KBY-rEWiR|anz$i(O1B7R->$41yoW=tJ;uyylMmFiE zn1`}HHandwe3DU)zXwE`&Yw$UwLJ>E`j7o*j4^~HrX|JV!?u;}Y&w`>s zwZUpFTfKH-uGhLO2}*QgkIQfA`eT_VAa#``udfqgVMB#&oJZ@Q5-v3hkmv3%69VPA zX})gtoy4j~e=xhGHCLpmZY9{rPU$D}hkvC)ihVSgzfbin zEeIqa&Jc@ZGF8gjTi+*6*RcgK6yNhsmT4SjY6tFV8EBJPFRQdq9<}d%>TU0WHY?** zgGamv-Bs}H?gMc!^c^o;)SEg%y9@k4c8zLt=`A%_hQ7Lm^S#UO?uEhKiqBOSzf!@Z z45-sqDiF(O_ox-FKFw)zx}0p)f|S4uIkzaP-IpkVg}pp#k|wPccl0Q z%F>l_ni{q3zVC6){JFu&40@kVAhaL=_5Vp4hHa??-J;64S;ys}%fa&}@2e~^A*VT! zW-`+%fP5_Nt~FV>-#L@Jq7%{Z2Mi3bqhrAZPKU55?K~~Fsb}n>D9q=Fd8+@NhLVUa zhuWAi$LmXnw8EhM0*+7;S#Cc!>?a0ESBBFkrQU;feisdqdNhyTL%cUjWQIwS@=h+C z9kWP-47A#u9G$uIOzL#7&z3)dUnyy}?zgA3(y39(oyajEa<9$tn<1gVQ=FuZ*?H_DQCCw+bg$uQ&kl)v}MzgIlj}U*I!q}A^%3l8?>hypi&6lU}qJx?9=298*f|R?6mmmc@ zVnxv-H}OLE9sgZJ#Mw8}LR`~4H=FX{iuWSt=2)cUiuPvH+~&G@sNuEJ)Hg-x-jp8B z+FD^NWtb(lKP@j0?ygUPJMudhsr}Fr@~i-h2588^r#Y+eSo16Nb1do%*l_85<=^yLw&5iH zS*70r4K--xXVm^eZO-rq#P=F_VUw~#rW%XVNKj#6TX~pmdHnJ{P5b@0#8tt=%wsqn z$W)8zuodcQ7CcSs{3-5?+$5+fbb4bt$XK^mmH zLAtv^Iz*+rkrt4W7#fj=q2FhIYrSi^{0n7f?w#kJv(IPmvjKc7XlE{UqkeY$*%?aZ z|67(aVjc{SJfiWtAi$INE|&@_Vy$Fnkqc(E-Ml(lhE3-`kxz;~LBO7&3XSsmuRrWI z#1L0yii7x+>?LM5Ht7D`k2}_Pw1fft6x5U^{CODQ*yO8R<W7B|uHRi7g%3lH3@81=#kj@4F z>InEeLZbh>p%AF4BKief;p3KH6@`|6cuE~YoHs+2+={zlJw1pi{Fw4UUInlhnukh` zKoB5~t5n{M9?*p%-!t-p$suB+7}eb{bbhdB8fQBTW=p^#+C#=~iQl*HiagrQwH6HzaH zAyljV5FT0>rhs3#=wMpkh~|m4JCQ#$SEbY7e8>;rCjgTJwKak3KhRG2m&dFg`2h4C zmfdwjc|ZO3@kO4`qt}JDHW&bZENEN&xWsNO&sHMmknDH1qWQqJ9lGq(cq*YEfT+|{) z{g0Fu>Pwa))pH+hA+OU zH6dV`zem*r>2(@s3&1o?+!Y3=(57xW(&FNZreo5s7+Z($FA z9n)*aDQTYkl><5_dBrB|i8@I|&|}$I#g5OeCD!(ekG@y@^8gK_er7yjM;{LuPXx({ zv0vW8*V`E1jOtANb5AEkZK-i!XGT?UN^<%drCdGjUuJ`~c5ZLcUc{P47+Ar(4Q@o@ z%EM7`iU2a}q|NxIae!vYET+y|@cqO##*Gu~n+nxLNuBFM>@qY3A!AoiIY+>>PHMAN zWW-wpKaM76zS%KkaD(T^H)(Xxx>tVwcX zJR*2UCLJ`=zX!dywUk$Wo$3&WHnm-7Zgc4D%_1Vzigitv_#k;7a+Rp_VN*zS(78$|*avbVen-ejnl2A5xshTr6D=bw78V`gtr~d8b6sL7WtNjq#d+13T&#rIq z*lRBQ=%TU$?oCaM($#_!+Iy-e4gv2 zeVhJ)f~0W3gs7t0Pr}abnN*AZ^sk&DTt9uAj}Zm3cqGw>BWY%DJ*Nzqkv>pmDpmIX zH)xD80f+>zW)tH_7shbfZLWpB!_BCiG=rw~BFuE7?mOrqqLUOp!(;El&gPq$F6FhB z!QIwKbuEb>B`o{cTYhJc2BLxx#;zpj`>cfHHoX^XNzm4vm!=Z=&bnNufn$Du%ndG@ z1s7_9&UrEM$y*W1Vjk+{FA8GWUy~T2Bp{{^_;#8)s3LtK8-uzU9r7s@0g-_IFwO#^QoIDl9T2 zIrwbr&MWU_PheidV?S?0hw@W`6MEdAMyd0Jk!qJ%1MV&F+!FB-VT0Rmp^~|Av$Zaz#yB9g9jr6kxu90zuh0-PtltSxKpR}Z=H#H`Lfchm-(wN=lNo2$ z!60wWC?yuT7uIo|<`t!5^K0e?vydmS~ zTpB98DBwRT#poX`Hp7sL^(mLDK=Aa@vpaegF`^-bV=KW`kj7fnocZ24`b~u3TUv`X zU)=jGM$yZyO$J}Qm4?BgO&G(%7}4nZDT)TZ-q>eXRH74JKR2OwIP>$-_Z z#Bl2-RoYzi-<(FOOs)cC{K7Scak2JiUk&p{s-;GMR5+ z+PqIlaAV1=mgSV=jev^FWuNn2^Uh2J3|6~l=;zeBb?Cm&$z_%@M&60$!uU2j(U8M% za`q!X;*mHTK6D!6_OI?TnaAh0oULC1_$7i)y5x~Wl}Xy0zYWw#SOF95RB`)WO?#4) zxIWUXy0#Vx0Z2*>u8#QQ-!YS}yx)D6Wmvhr&;Zhpo4!4*)PAILwJ9<&0G<-Km6VWX z$FtwQ%2fPF%RBid&-=h*>bNdrRDOzo7%=M7wjP{Mo42I7pOjg`X_zevHjCp$db>Jr z?LOMuXG#?{W`Q9V#yx^=Uh(P?ZERm765%rxw6xiMa;Ux;Rh$eAq%{fO4;bI0a*5tz zq;RdL_jGY8P22J-nH06pbByseE!%I&*@h@Vfz67Jh&i}Ij zrSEKiER)i(eQ0a*!3W(WY`N<}AH0MOpS8O@+^J7OFEk37k@%-RWrQ&1adN0}lDfs3Ht3teF1pYcO~LM_^K8 z=Vgr}y&SLa;|*GPo225-YuAJ2w{wAD+FLeTQ9~iYH_Xv$T>~$U;9H@VzImM93>yB$ z^?3Chm?dBR)RIR{IZL#_yuu4-MiAiFN~<+&3m3ib6YYQ7b$NW`%XZ2fjT4U>jL^bW z4-7u(kB8i^1gSPaGyOeyV7^1iTsqp(7fKmfgz>{+wO8M|+9*vLSA zTnE+L08nta4E@Oi9(M!6HOeQt&jU9$5Jm1!{D8r}3bu8N3+By?Q7!*eQrlamt=Inz zTER}1?qHi_U6GD{*ZQ8DQQQ)Cv0oPJ%g?;t1j*=5GsT%@|K-WeI>dMj7)3amm+SGT zXU`;nO+01GjXZousIDNWJij9vWF~=N=geesH}t7InMBIl@<+clO`%&5;(0owz`clN z4~QZEf~lj6(^$txx=t93h&4s7$?G9@;qI|hIeD>3U#Wl}HPeCM@I z!r+)Hk+gHt7rw2w_VCZcd9y!?;p*K2TeI>&vP_V?agh{}5o%PPAtx!ozhsf3q+IiM zdpNFFLok~^m(M0yDZR>{RJ#1EJ!Zr-ytYju++6!Uf2?YJ>uV_bRco&LbxAkFzO~yb zdXMaqckLEKCao##vN3j&$efkcF!vU(z&#GKaME5WpEAF6@BtVByFEJ3U;O>E+;fR9 z5=sUecF+8qW&!(X2KM-#xB|(pfZ&_rl)N3}VoDPBP#1s;CaFLZ2J%c;T|3r%O_@^J z{ZPQYtU=o+T)1nM8*;-08cv42Ps{wQGEv;IGJV5%2&$+l<%Kaw=Qq7ZG_60rh5)!6 z1*o*Y|132wRA)&wJ#$Vo<@wOl;<|hK^Y!HVN(=Vh^&RsfK6P~aOdCe0=1u5v#jaN% zS2aj}p{hLODgC2@i47Ua5&msc&4ZKfiN5i9tZeSW6!xm79&;V-luF{jug-N1ts(te_)jN70n#T{B$4Acg)J@UpR$bRXV{NV(ZG6O7{3UHC`JZM( zh1lznx(|$5JCk#$U@KnEHKFMG2n%mebi6EYB`a2pe!FAWmOVcklkwFz_R^2)yG{cA zV0398>_9anqoaoER+zwu{nP4obxobw?w@z<_h)0xzBjxQbxmu?_(8jp9KZbv+~41& zt@nr6UI<^K|J;4uv}9jhTaCaYHwBK07$SW?4jjpns21Cr_pkMPhBOcZk;LBADuTU4 zTon1%34~K4c$;%gtaK?C5|w8%PWj5^BwZNqa43*HMG~xJ(n~s7=`zv37+evItK3pD z{yDLex0*doTBB9csKN&zs8OAjJG%`&yGr(1neV9mB%8#jZf?w1ml^;Pl}$y96Bxc8C0b1kK(u7_``Bf^Ms0X zja|#zj?l?bFEwbhcg_>i7tc58$wN0()?61ji`n-Dbm^j+iwT4;tm|TmSZ~zBi!kUY zW7ST_iW{CSDcEv7g>hgU%X6&Yjqpf|Nm;&e@}hWbz^F}}XnX0%~1El3RxZ`lk# zd`qH;GfDR-b5g)=(NAM2(Cf$ZDR{enaYfZobx8kptGeH2W5?* zd;9(imo@jb{$u*%tH<{K7ti$*nuo5_U@yV8&OQq|nvg!-+vA{vXI!Vwy)6E#0>&|r zl@AeZ*Rx@aDqD9G`u{f-oIsAfPR zFzKZGvMb$b^L*N^T1&{l4|9@?kRV~ewRwhX|v)Ap$we5C>f<4U*M=ryvG+Z*=3z|P)Ek(!?nvEnKcy+AnutwcBV65LRHzc+5u8Iu zQOVL)Dt6WNn(1UGkb|FhC_FexhnTRQDhNed%p}=~-uO>t4UhEghxT<_K&HIEoDvpN zg}Z$0%tukc%9vu)_fA(PcgdLX9r=>>;0#G*>Szfp?lY5X6eVm5STJr6F{ZvBEsh1zr!D&BVjFl6;JlwE!?3v=u^4< zm4Th7srhx;+ZFlDpirSdyWg=*EcBd30+qeJ~UL%U%7j0Wnp$sdCJ*j3( zj<<0q+2|_!hAtR(N^?}c#L{>qLzb(0#RQ>|_Xy%uu^}M@MfHfec0bEBh%>{{X>9Ts zqLH?4dJk;)X#AO;^(4)6S{U^1QOS#w1)kxEAc%3;(i-+>q}K~UAWc!+M`!Z&w2=vt zg|kNt7?gXLI?wp&^~K9q9n3`H8@j&6w^4dD%$@n>_I=c7PO?n)d?g3`F zv4;TYuXR<#P~Z$*?2XbWZ}|Q_yu(M>nlCHEOCy7c4d!pX_e^A|rgl5Rlw7Y|bYv2! zL5u&zb!>=O#t6C?7R(;fV<6>la(LI&)td5{16oth)2x1Q;h!{&cjuH6%N!3JV7 zly}Mh{S#*kv;5WlpO831bbV*5Ws;*z#0N!|NV3lDa(tB+$CIm=@Y70WKD|AMkP`O1C74N@%p6y z1w*J>=-V}4B6xxw^Y%BF6en5nvB_QxBl3b(>&y%Nj|jNOK=U+foJWMJXkq`qSJ~k2qE$Y*&+I7h2$q$b``1#j%t8-{mgj;? zNBpg;T%E8jGN+Bg^Y^26(It{$Z<7chdt!|t=9nXFUDd>rI@;=D^#~)(eb>ICoR^hw z3N;Yjkh~3y0%#Xd^^7RRw~B{d^*5r?b>tii0#WN6q~*9Fm_dIEO`bon_=H_Z=fNbs z85bN4GT@uwLNyyu%40+^n z8A^Q7d!9VMD_y|G|7T@K8Ec6lic>(sldpLC&v8wHI2=avxEavD|8=*})nv+eU~bI| zO)d+XtWpa#e!4V6B ziM6%St)=GXbctEf6qB}qg8-C% z+-{ZUg~pBGF0qMTZgr z0D^KR&!GoY1>JodnYa?0Xg-cnb4m@t;d8`X9e?5?d|{H8~w|lcbU;?#VK2g<~N3#adclh;(-o1l!e&zbrqyKLj{*BWg`lFzM{~Ah?U6(WO@JjHbmi^ox-;RkUFj&sf z`>x5Z-?6%IF4ppq9-%UksU?vx`8x}fAS6kDOm4MtaHcBOWu7DrlT+@v>bc8EBaqdaR=*#15`yo-D-n=!R zY6@fq|ECazDaIuBQTwi|>zr=gs(6ysd$IUnu@CgX0}Z}*&oxr z#qj}!mDbTKnuHn@VG~n_ZagpDX>E_bHz>WczhJ``+0k%ab^Wp0=#=x*Dr1~wcyzSI z{{yqTmy9FWukH`NaBt=?v2*G222M8mu45n9Y(uR>MRw#qTXGV*+b>FcyY9*woN75&A z;%zg;;>M3}TKsYB+vQ%P#KC5qHQeJfV3c3y?H zN-_SE+|73lK#bkK;7B=5VhV73?lCedNzgy}v#s9)XLY2zc+8`Ffqj9s%HjnzbrySb zDGozN%@kJH{8a+lwWKFC=!`-O@w;K06l!C8INPaZnl^<~y1JM6s(BK7I#CKG@gwG> zMvLk_b@S!KDQBu%rFaKk%r~M+1@1w#s@8l(w)x-C4b54jsdVK;H8Z330^J69tbcE{ z(!Vv3=|L~p@DT}~5eMl5iUUrls9~%HSSAe>LTS5G{y{8xo=AWn25Ydz)9ilkymCt{ zG%U#&XZGC9{h@fdTs93w&qc&4O(-3#Ba*IsW!HB?%CUcoqUA!@B<}`G*fX9&HBjb_FsinH=KvH+Wvs5J`_Wl44UZe@muwV^aEEapR}jA)w* zIXce5@qO{j=DgIyyPP2>eEiox6xxeDY+`u_CD+d1oZl#9XLs)Ut1rOXo!fWwM_@$p zb?Q)OR2@RPA+i=`JW5+%ybHK%-BWSR`CazfOXrQg`-^Ys01C z{&_j2!@0aagI7pDr3g1PS#MA-uS?ty_IP&0$*gR(`5}kPMs)vOR=nMD>7OCdU8i#Q z7SGT9s3T8|lK}S$GN(WLm3(hJq`0-!to~2^I}<|+&hJaAKqh7}gyabX!CFlbfxxW{ zmv@BqE+X!e>c%d`OtY?+eO zrwUhWxrR!Xd~V&@vTYY7OfsO`hHVy!7vYZV-TdzVDfqX9Hu-o4Vjke4M3v9zxEUKT zIh5e)goz#;`;kz#IYi^kr2=y9?0J?NgRha?%t>NYyY9@C_-BJfK5A{M;tiIzLWojt z!erRFG}h?(F;mwT7N@B5WbWUlI3`pnJG*r!*lEj*!Izf3(D)uN9%Jr@@$2}LY!Mde zkyM<~-G0hTJC*Kq@h(QWztpPFdb|5`x($BrY_r+A>iP5RK^2T|3G-l^%bw7;j{gM& z(6F$)2EGhMOKdkCG}f7)LPQ}lp(POaKhG~}Bt<^c^D(?e-$p&@L!c(st04upns(*AdP8-ed`GhNa-u&u4-CT)U7Zj)gq$5 zF1bm&1ozFw#SW9rdC7%o!9nE) z%V;0WDU{3@CODBN5&}qWfPEyf4DK*G{aBW!njEY0U#0 zUdWH-0eD&ym`uLrt|55yQ?CC{K|Ip-*9U5Ns0C;YnzCO4%M?uYce~H^lhu(@{$GJw z;c4R<4`Ux`Wbmk_Z5E>ylM9rVPhlO!@{)@A9+8$`>iLRj<7T~U&)#T9`e(N1r(ufG zCF^K<>1cW;=U13W{hdU69mk#Xk0R!|)vjL;`S}Ry=%4NRIBIF{z|&QC;VWMW$^6zL z4r2*qf~v314yx+l25W(M2WzJ!CS*T;WC5RnO_W^5M@itrNgd%U|Ofh8fT{R2z4oqoc^6!Q~hySrbe6SWqYF_aO19Y-97*0;jz)e zMG?!jbMSij13&L`4rSu8ZXBXcsW~Jn(T$f|&D1#F&G-9E_xHP^L#xYgH*V-@t23Eh z26Dc%Y7GC6>c78-fLUe8+n12v=^IuJ?!|Njg*vhin57^ z9LMB?oc_3x@2C-@29{UW%V=${w~lN59e39WBN!~+T*9bZ#`jT~%5(dGB(mp=-J?AR@%0^92 z($i9_yumPRGAWK0a-(m0xNtT6gZ|LKdA`Zb6jt67)Un8@E@sW@08a8)?i{e{aKJZ% zP5)jDlh!i1e+E7Mp!v?lP+)?*ZCMyLm+iQ|y4J~{Pq^bENCokH7J*MQI6qHH4e_Mq za8=Fj1<8rsvCM>iIRamf?<8b)W0*KOIoG)#H@Qy$CIf!eSpVaOQ{?+u=Bqd;vsOpp zakJ6HrDUTTCQS=<;epM{BQ(y0yyu~V zooegao@WrSJO1n(#af ze}`iRdIp8lMyj$Bqr4mVWY3%&ga*Pr`eKn!i_}Z;L$ovr5oR|@qYD-HwzcNyt%0kb z94`X=;cfX`S)i8|re4A548f5EM{lO0iRH&Vv~`~#MG6F33uLA=sZ)QnpoDFVq*3ck zMYN#orYE=O$|q6;Gjx$x(le&SEGzM^F8ub=qFh=yiSjJA^%VB_V`U`w%)+DeYQh!g z(dgBfV$sVr0|XcFHM5hKOKrrhHeGExIp&miA!%!`U;b9icYi6kCDqAMh^KFAMNigj;;6d3KGTm!RNem6q%J8t8@?cZqH6;l^WQ?TB3{_VtlMmUnJbWz1O&NhkSDSJp1 zLj_ZoZNrNK*EwtBT>U!uZpEtzbI7LCn2$RSy^>Q|f2^<8=Gxi6_>4+Vg(7a&F^A^d z6R#%LDH4oGVyG6%CY^bI(2nnHpR4Uw%%B_2I_2ZJFhU|dxJOk;#x4;Nm*(%2_8KRDlRJ|^<{59a5G zw;eRQWghI5KJPh*ndPbtJdgS^!s%PARbGIVz!$oSk}??jORxf3`l^nvDD%7E-7Abs zughzj$qForCuR2!%B*c{NNg`LO$iZacSo+{8D1E!Eb`iS*htm&3gHH|IK9tqYn8e5 z5%FJoeeg%=?*3`0bS8@Z=gni;xNDdD$tmo9Hk75S>|ND_#*5_m^2gduTC%`{yh^P9 zmV7nKAhElO#qJd8=d`^WHa(9IgGkIo-ZSfEXR;)u2D(|{%Q$-9p%caysWuHS;DGCWw%RztH>lFCdz1{^Cl&Fnl9ch9#e8Ab+ym!+hzON7b`U zDEM{1i3nj|KaM8o|5cu1E1tf*oLXp76E$m0Aa3pc?GjiXS0RME3q5$ORF-Yk5h^f?s2`;%J1uIuRxVbE zbM^gW!>e72o+Vt9+ZS4=BtS#BvL2oSp`((<2p%aAV@~dI5?Fa%R*5{d0&AsaX6Qfu z@7>ltbL;SSzm1s-1Q!iCrAFYxbIgdfkz^L<+Y6iLigYY+hXz1Vc_?DHAUNQFBY+U5TqY{>+9;hSeiVLT{W4T#jTFfNiJG^Wvn452$K>vW(Sv|e)Vv{ka^!_R^y990 zxRuTNn;v~)*#>R$B;5%EID>y3BHx2;N&|&`V?0Vk+ra|3hq3?;wOI%JsORI&E^xSk zx1+{M>U=xGatds>rq0f4e`RS;Os0;D0JMPqbTJ7}K?2r@3e8{(-7gD=fOQ5Lv+*b2 zcDsUZZoJITpQ|qKfc#n8Z&*XlPS7Ry`>R}!hPDo($**xdIBIp1-QVr0-gy(Nyt^ch zdm$VSeol!fZf0Uv|5CBGbTu=kD*(Nbsol*a+0@HQ4eWB_z5_vo-fk5yU6n-Rpdp*UlK5?|X z=K(I0A~P}(|I*PbPnZOEO+^%UuFvW0;0Ts zRQ`D!G)f9vh>irUQ9_JATe{(cl&FJRxg7;RKYx8gL)?E27^{4$HQF0Kh%PrsZb~Tc zzqE$dQZ|n3*Dc7lE%bGPIIDpWbhVm!p00X$eX2V9ib80Z3_HWvAkZP&13fR~X#6E{ zqaaM2(HSQzyyXTp<9pQm*@8pTpC5)YGBd?X)f3O;X8AlF5;Rjx?+tNNRK9A-v7EN| zZ%nG#5O9}o$#czG8&oDd3#W4nar5YL{q{b8N`rN==Nz(#6;l^+c*KW4^V;1oC%W|5 zdfcX*Meb>9?$ynJ1&=6|xDzIlnp{86H%t~T4;;eSh(c@elrk3PAeG^*ic?RVlnRW z;=^b$EuHS7KXPjwm$TVVcf~l1krlGhNG>BdouxKeivMOlcU<(WE$q9U0Q#Q|$L&IJTNF%L!An%ny57j@eCe@e6KvC{Mt zS6BRCng_?{!0HQ^7Wh?)E;%#6yYznNP_Y<6!#tABD5^Ny?+KA%*s;3trA|c4B$jk7 zEO{e#@-sFT_X5y%=rAwE`w&;cKMP;jq77Csivn zO_tI=I)7Z|=N0GbRAF?UB3C2tja@$SZg|NDj?<6-qATOf5_4qaro-v}7MKlbt5s+s zNT$n0eYaO>$|r`Xtv@b3pnotnmR*lJ1>Mu=D3+zArO6_Hcpu#-%4N^PnjiHoornk- z74uGj@c8-jXMrYr&%`#%iP5ET1^O?6c-p0Pe)p`GW89C_b7;F{>2E5#oPv$b9DfF% z6TCUq>v)_xzS+fm9C{=@&d*`FNqet7mDBu`sDpX&AVAQs;z%}NimOP?T>dWm%a>A^ z;j^Q6PPyL$?mG_1??r}Q$UVxRzfvMfvr*ZjH5hb-FyyBHk-H<2k~`zxXL|kmwddIg ziLNTIU$^-^I--)g>fqx+j&(1>f$mL3# z`?hg7>F4ZJTECfca}k`Uc!JBKCWE_9UeN}Sx$uUT9o2NEg;U-c=7bA;6o~!%HZA%s zd#&p|ui&$w5wWJx`(KzPhPDZBlo~XKv=cLoZSv*3n9P|shGP9lFsN>5K2;1S@(=OR zp5M**?;^1)@%)qB>wmB4>X>Gj#al$L(i@l8Ijd%%f zFmbVp7VVsZmJXSwOeiX7d%EGf`YSSK1sdp)TXz@ zKMMk>{K`cXV4~!o6UHo5htmrVTR#%G!A?w32!M?n9Ab1inaj(-q?9s(rAa87J~nc| z>QCN#YVga_3Xlk9AN2Gj$fL!yMUqh^)aJU+Ak6-_rS*trU`=Au;V&g^c`o*jNHpb~+X`Lr}h4xm7D(^Wh-bZxR+eUuoWHu9WVJcFYeUS7}Pb|?1jc;|bVGnI(%huZj) zI!$&uv*_xAiTO&Y098IMMA;fSs5FEY01XW#ES1cmT5P}1ll9DUm z^5jUB2PNgO<=1+9N(BW4SXI|82f#E<92}I0|5|aG7 zm=g64NMZn91y4S8OMy7JBo3tnNumIdR%K5GO37B|#JrU%TzC|HSfGLS;fr)%4VES7 zhDWhxK??hGt29yj8$&gkmX9{ycHQ7oSNoxfHGQ9wk)-_$N;PL-|MR^WGaf9Ij6liR zlq${4d`=uAz0&DSblmkM()*ik1%y+!a=~F+cp18?MJXfTc~bD6*_N+> z44V91uea^%A}6)aUlh3C&dlc2d6sGG_bNW`uWC*J3rqAXb2tU>Qg_TTH5pF6LlXQK;uS@))l%4-T zJcqF$l@a5nlRH_qC8yBKsVx+JeRc~!UFCujRRH6A98^q0xz+UrT~IE*R5FP=VJ4;G zU)(ydL!R{Xw^{tg&2Ih>W!EheJQM6jPJJKH5?*A#U zJG;B5#p%YRBcJ>OKYc~D5(u`ioT9lbv`HXA#^AONFkDC#im3cy^|!jZQsz#RmDq$F z&C+t`1g^`w=HF3)e{X@%E=twg$O&$Qie)E1g>Ql-BHb{KHEg3Gb{xs)zte(5cBZzx zi5I@IHN;#QEVz3$X4B}cN7!SO@4W~&WvqFVTA4y@U4Any{5tdVFX1ol&$){yPvvG= z_T|5wYPB=9sJJP?CWu<4NYdUjQ_sFT5b`2HT;#WmHWs(K<*CtOj=N}e8qE8+&8+vr zR-L81pMOqSJ9je2XeOAhM0Do7e?dTbO2jo+3m4;vY^A*6h3(6qSJ{*Lo7Mcf&Y4?y z-+rjw;2V?Sn`=<=V)gn+2XV6)LJ150XYcCvetkGgl(E<6F?KjL98A}$=!-Igg^3LOU<8r}x2-wt0UII@b zf*A8TMR*Xrdk3Ke;CNNXr`JzoY4*xPAB$X|JU0BMmx^cy+IHJ-a4!J}8Gzen;a1h# zT&`Z86tKT&n4J-*>ay|F1HkYR9af4Anh}>5DLIl&|5~{|d9=Y60v>cg1N+}I7InMC zj3FpXemC45swffx0s=X7YS)3o`1jIEC{(~n)(phTt#w?Bq@|_RH?~HD29AhD8J-JJ z%Wa+FiFLYi>iOCDev=Ho;Pca`?^AZ)N~ucvxIn7|IQP1)N1=}jdm&>S5ugP{o8?oh z(LSZ=x=Rn;Qi{4Mk#t#OT>N0rIlTnyboHzdwDw=H4?qKbJA9ICR_Wmuy76>xiqzH0v^}TSzt|JR*83J4O=Cizrmt z6X*|^xi>|*eyCh5*>}Ilp^(xxlVBhJa;&}E<7aDo$?@pld(`Ay-Vwhn!|qUZ`=VU; zHg6VdRW=s^V@=S{=9Y0yVZHSSJyrxq0^{}h@vk>ZArpL!N3691iYg zOeUS<`qW}aoQmVh|9aAl6HCLP}XNh*{q#_9kXjju+S0>z*Aos>$wj!SRsKf3#haB~^&`{0S@MULjHt@UufsU3ob z_?Um^oqX6)Cc9QE*-y8@)RHp(uid=nekuOD0GCo<07+U-c-d(P-=C^8#AJLlMHLfO z#5yB4M~bN#gc>9Z3Rft?=D7wzIMG>C%k|s0turHN)5d)#jCTY zS)|m>r-!igO5!iBDnwVaS7}d^&+&C8X0MD5)7d#SH#Lv_$O}t5Sa6Ta4DU9|v9fKN z%Q}VaAtd;)KM78|7n%I?G_B#H7wTd4qm-Hk>eu;oW)v^K_%hg2b^s ziY@$0F+ZkqH3y?G&LIvXO1KtXpLWYFJze~$U}6eqGyRW;{Qc0|j+h-~JO-oFVLm0$ zLuZt+DTm5Xa4JbUpCXX%>{wLXo_cc1Q~FRZ9eu~J*5_}$p#tCOkH~cL3;IcD!-)TG zsc{S=3J>?tK@qq>(_46Vd zELK6|Jy!~c(sxz0#sgYflhEtw4^nmFJT@h^dNV{m5NgR72*pwTQ_TZIK$pc38ai?F!N0<*yCm+Pyx-%cLyj-kLV zU-T_TdP4SvI4zPfFwVkG;{!m1H0Afs^Q4E#`IbzqFde97{gb8?Guy$S! zt@Tf*GO%io0=JZOivb$K;vcA;@tqKtac8u0RV)a=GJwG#27TRN-V0*()oLb3%}Miq z$?*O@hk%NfuT9B0_+4^OPY61&sjUsHtmNP{(h*}yUMtvn(%rrI_|Xw=!UJ2!!poS% zZPtL0liuLsMgouJj{=VswO35p5v7zTRAi|V1bNWS{HL3Iu;Qaovd>9CjO)8D_?6C= z2U=7@?VLAABLlS0cz1T|?uqRVuV4Mee`XU1{cK{{|5yvk%E`yS+^XO|udk=2TFi=D zT=d#Hm%bmt4v3xvp4P+5ezp|@MB!!J_M0kW=rmEhnW-tFi0iL#Qw)u_fvPA*d`ih$ zk$aA_d=1T>2$TMoRbcfT4rv;myphlW{?teQ(_)$j3=fCZaGLK0=md((!PL^^c;0(% zcb<1|k2g<7*?~q(#T{r9V@n9?g0RC@pxcw?R2w1t5CU9Xh*5Q`Ze6Dq3$32zxd z6?@HmAz?`N5|^_t-1Gza9Wqyqf&xMcka9aGm5Fp??5DUgYu;B#wjPho9|j{ z6(AR84{=D4G*g8ap_R?fy6Ge4jGfbMUYjVVyhas?W1=(e;Ls02sq83S!d;0{gsQ4z ze0!grV8|)R9No`myKrjZ!s16GO@K2d7Kxx28RZ^MS73v7Hh`4(c=p=KP^U@Q?q9*8 zO>xH9*n!&*hqdmfOOGdXu*c?}j7sAIt-{QtO_ku4)z zwrn@9c{8&2%qEnPP1Z&BCVLavGO{UqC-Wvk**kk&+wbFh&hMQ5y62Gl+~Vc7;CLQiWv%en9;TRXd14mlE3gr^vvnn5i;5iTb<=A=RRl)T#o2?KabU z5s)eTaO_KSbA&NZ_*k=_NVOdzcl*{#&T^)eNT~Z9te&K(dN#gu z{>Pk3#!Xsx>zDi!*iBz_Bx1~^EfLo?63Lw}biYC2ExQV2>DSQnnVnPf%~U*%?bf(2 zg4yFYBD58|PbdGursUJd9Se}I61skJH(BRY>XJIUBA2=6Q~{>=&)N24nCT{*q==sP zSP^O6n|>)Lp*UO4{-8GrYBZh#dpeMwSZ%y^Rv z7AX>P3JU8dYtGCk{{Y%sS&0t<5#eXQ-`EJt7N|dpc<-36)4ROZM2h}&cNwk9Ni6pWxo1aHsp_YJHZFTy_@mq8>8MwM@}&tI|*Y#aqz z(GRg3CRwoJw6?3?Hnfpp_Gr{ct?sW2WS8q7EflGX|0HsAZ!v>ALB(|_69}GPKG{{K z40}%W9fNuAVWA%*Ww~p_m1Z-63Nk~5M_adt4=-VO%^6@=_v)`!Ot1EMy$Z~+}L5!E-!MlzXnrAN{1xJWqR^WsAn zc;3e>uefYe5gNL)CS1W&`aI9s_M$@_vRm86Y^tZ3sm`6=!r{SGUzdQt<7fe}`7*_o zvHn@)^u^Hw846BohcC(Qbc~k{l!L7^Kj(`S>q2ySJ?<`+Fx%PezG?Ri6^bA zl(cEy!LM!4vdV`Gcau1UQBwCwRM)GSFSo6}rLT~Vs28=|96TL?@iQ*)8CX5f`MUWN zg=j$a)6@`_409GyAZL);R~`D{+$Almu-1SRKguvZ1W^V|d>3;&tXLwcF#&;c#Ml2F zhIrsC^{`axOIz<{xG|w6{0bH3kZs#-e8U}^{?m8r-=S?t)f29cynU>iCYsXklo!W{ zUpf64Q&+|OZdFzl=UoE;xaK)2zDZ?`&^=R%nKvmn`3t#qiI_7lPc=)F@@yD z^R443z8_5U9o(a-#>=`Fb+#zP@e2?Q;c&Nsm;_)8p1pEIQhnZGj)cxOHwAfszu zge3RRT^Q@mZ+we6M={Hb61>R?70HfY`F`RLK|)rxm6cK?pA zI*Rjc)$J%!^TueD7-s>Z>Q-PER%{DYRP2;b0-2J=6e*2Tv44$?jjaHl{>$-bQkTiJ z$Cq}VSy-eU%UQ2&Kgc8fhWzW>9B|hTQIdUHh6l6&{DOk$Cewh+=Lhit#G4R2^b5G@ zq#(ab6fXr-|NkYL@_)mY@ao2Q*1)iyE(wfUW4fu@nC4STd;e)Ro zK&b5XNeQga85&{{v8@@QJYbYT(|(jvz1SIu9<+d&|G7r?NOStd!`geqCnfKO=8q!< z;JjuWp52r7ATS*}Jf4P(`|I+yENCpSw^!aa{#nkACv!hDf3CX6h)SpI()04toP|9C zwL#u0A0B!*0WC=-|MJIXN8E1?5UQ6323-{G2bf&Eyu+L`76Wu?KW$tH)37d~v++8tmXBxR@Z}{mHQ{LFE z3CMjSuI2xmqQr6?4&vb7jOD&)(F=8Wvo;^q_r$J&svX(3zeIn#w?ARm08)81*&hKx z4A8huI5r(FcA-yfGv|>`(YYE7Jw3XBPhJi}tkAMHybrojQr;4`!0DzkL_w{E`FL8O zxDuWR4HovZ$cMebEi1{xRFi!=H~!L1lcDol$g8rF%L0Y^cepvS`m0^;iO)3OLm9O; z85=V;dyFMr{UXQ0tuVkzyRUN-2umZE)ghfh*7Yf>=YKiA5EoxaNRd$pSgLeXBzG3G zlb(*=7l!z~YL8p#b&KW$7X#cmRC9B4=LZW5^8d-kQylz2kjUQOw&=U7j$3{Bj`}Ue zM(!;MU?|MrydbeJ)49)Py1F zN;&ao9$+=Nm$(AP!5N4GY%*{S`5>I-_ak?DC(A((J4azTQQ1jnqUXW2GzV-M*-jPFI@^V9~?DuE?IK&i(M>EkV4v4;m07y%UO7 zDhlfBdr?pIl~h!t1ku$2F6>J0O1y=?g;W(|#FB!qoZ_$r<@ZK!Ko{IYqy7iM^yVvF zR3Pi_?dc162q%Rm*#uy5?y<|;qcnk~Q9iuiq8j$12q{p=(B(-h+LcbZvkBNj=>vML@qhK8v-I$0Kfr8Hj3t6t!XP!&w3_WS$+Q|v zo8m;^AK}6Gr`6^qzn|Cr4j~;=uh$n!XpnuO%bV&Fw{kCYb)mUF2#56|JMR1d{h-vA zoLHcONIo0%ddsNIBQqTc24l_Nb%r2~(A8}7LRzz)li-p3h#?sC4rL3o*GE=268;)t^nUcXo> zghjhU9ec{#$&{N4N8cLoi}PhP=NvQ*HKsB%*{V0IeDotbdYP9l9M0`GMtE@$;%$D! zKz-Q6fc;^}ko5e+!R3~}2Z8b=R`Z?ev`2`hR!W?EIo~6kK5&Rls>x?F*cqjk4pNV; zftee-hsezP@-dCrJG>Mhd<*tpvPY3S7$~eKUWRo(=Sjo9voPI-b!aak$p@#<)eZ-1 zeoC>#eT0RgCO+>|5B#dH6XzC`P1`S?2-`Y}f64jPGcA3c){~2%E@9i-0aJ>aye*_3 zncNXfKe%`uI>&^#{($)RNYY7n`lHCWWJM$1z)1a}$h-p9lT0ScW93o7Ocle$$V^)y zEh^(Fk+S{#XJu}B)5VwGx)NFI8SDES2Rf(1x4u->y8CRj?+@O)x7gY*H8z$Dm%qa? zB{ynG4-nOjPF;<5c~Z$#lBAD+`S7g$n=N zehmb+TSvnllE*(Ull{Xxn4i3gwr)MCtU?}P?11u2g$e~qw=?e#9gOu+`pmnYMFEFh z+iCxr<-Do3R4L)m3Fjc4jE+k+-Tc)K36=A*4hg)xGio=OxRTMG|MB9OTF+8=7rdjz z`Mfaaa_vC z9Z_t)&MatLGSGdvK6F?h6`woGma(uU+L!4yb4FOHx#jlqqpJM}3F20qTFF^?k6wuw#SJ)lhh+Z7jN}+km$gg4@&|u{+^+50_i*bheEM8;$ zm}j?5lIr>lc}Z+qUbAtqh%3+~SSd|3&{O!T)3hfhzKM-*&?ZidrUjIt4k65F%r+kz zM27Cx*=ZbaK;fJ8gpVfRUPl5qa-&Zq)mW2)9gN0_pGXq`U~$UML;8*=&cR4@5Zabt znN}T09p%2zyVaSjTx971ABEZAXQ;@DW?#^_o5;5q_isodML_KAW6eih0!C3`TR)wAZKGK!3d)8bP4Zs0(EP}=He3`-5$0Vs>G!p0< z#3zyLA^pYvQh8^Gu+`T+3k=$uRPQ{SinQJND1mhAb2Y5<{@HPQMF=P(K017U5QzJx zjxt8HroJ#1Xl)ax9zawv1UTL+9^~UfWR+WtQ4LGGJp6u)aDOzc>}jlwztl8Gj2~McFyZxWDVEa_hcT+i^q7y! zcPvmu(zVgO9hUBI1n7xX(0>8A&CM9YB+bdp#F>LuvR|>Mi6g1*o7D+uMMLC1p^hB` zH2~2Ist3WS0^SMYNz4>B&VTqXZ+QL_M3aM;U0aO5wUdMK3QZOpPVvct{&~bw4R7$| zxW{=emM0`+|7)q<@OV9TR@M$Xc{HDDg32-IR9xO!I4}M@^CFP1K+F}z%^NVsE}P?w zKVQGrU{6_$H395lPpv==7egMI?pCh%`eTq@rONubK~(jzSA&BQ>zl`^rO6sRdLKiH zrC~v~v*~$8y$Ms6pp!Jp{T27N4NB+C8kaS%56*kwV;sSN{3 z1Key}FJA-bB%~S)<*L$y9k<4r7_h}{ienW>cX-lST2j-) zPf*the|&mn@SeQeMUE6_6s6$}#N39JMjqp9hu7JEHAp~GIr|R}gaD{K4TkeDZT21W zQ;K*kiGdP?m3@FV$}wTJas=`9d8^hvC^QM z590}KgnM%pFKu?vyU)$LG4#i8sf%-=-MSgQ(~7lm+1KT{3D9?mQLep~7dUbNSq57Y zC6dkE9TXGg1hHp(2}M15OjOYFAx?P;!S39>#&e@45M=d{3MIWhh3yopAkwyxtm#Vv-GvV)aE z_(va`wgOT~JFOT2n?#Cq#f(XPEHS^06|0COCN^x(9#zUT*sstdJEMM$ zdSkT3dr?hrRo+?nlUE(@mDG_sR)hx=#j?becS%mt;+W1$jc)bw;bAOUJw)w}1bjRQ zy^cPM&}1eJefrQ^{BrXXd)jbKok6zOKYp-sz5Of!dSQX4K8-Bm-jV2w+_QN7POmET zAkbVi?!sMC?Mb^Yk_YU!5qUS~Y&H-o5X0umUHEVmh$=OBB1L+A?7vRPf|)f(%v07i zg{7Pv$K+{H+17Z&P>*M?dc=n3z5Fy%DYFpkcVjGoHQ}Z@YlW#Qae~r760_$>8r=1q zb#?!(<5JMZN*SB_CoQggZ=^qL(ZLGVcG_QE^UYmj`?okdMOglP zxPJ$)^Aw>o{FI%>j7F~+zJ~km-MbINIJDmu=%a-G`A66_!~x5x0gb5pOFfYlfwbX= zqx;xzn)9MJVcZGNC)rumXWiOKLk|}gC41BFY^YS2$_|LbEPm{#n-;3F;+MX2>mHr- zp76hwXbm3@tB<~FXzqx&B0Z!Nb?(1$?M0q15t~d~P_1LY*u3+%lHl21nTCE!tT9{U z5S#JXp;i1nijQBKd0x~2vzu>FRA%u|$P2rhVGrs+!brlTs~la*i8nrZG1I*%9?=;w zpU=o&B)ko6t*w3X)=w4`KVt`B|Ne)qW{hdWx4m*58t=0Im-fGcMSxoOF%oEpZ+sn` zF$gh?7{@ri!-yzQ{5!Z&xlB@-bt1z^m?WcNJn%kOClH*|*g*;p9Bc_eM%;keq&LY$ zscL7IA=Yv9RmJ9b78NYXl~;kY!Zkp!Evs64Dhc{m{nKLtm@Y3KyhsWdx5mVK3fJpM1k;*-|z zG+mzOi1`)o>(I)EUiqgaLEB1q=8kzJNJOo1pDOkIfy^ozF`2R5^e+q_$|E4@ocZN} zq8^L3Ka$!vzUPYu-c;EJ1*3=Xyn0*sWAf`{dOKC`S_v~^z0fgLw8SD(mOwkD6q3DT>ju;caYqP~(=K*bsbAF6ZE|9%VmXGx`$i*7&m|L|*yH zH+vNFnd~FmS}r(c zm@_RF>Vz>ve=XNTMvj#PXogBrneB)%G4q;<#BSAc@%JlT>nJfI)WM`Z3_%}?X&6K` z%jRj{8f!paW@j-K8iayQTuEC4falOb55{K(QJaY?A6gg0#~btFUfC!Pqn3Y^rdUF2 zz+pHyN)7EiMt+uR)A8=^(1(?5J+h!w%YL`EQ*vf5p02W+d#|Ldm;xHA4`YUjd!XzP zhz(tkdnP(NWL5%?0YeSI0bnr#k|bct0AUM1cRVP=0>L2qQL9XWZtAU&HIe4D$L1Hy zF_&y;C+E66TMZ7DHRcB|9``3M_MZ1pAdql2``?Iyr$jgyb0-wCH|Ypv`Gj!${6VTO zkPCR_#eTjDWa$>U%;<4v*h*mx8jS+w|d#G^D{Fb6rm584qQOz_Wde9y%X6;ev=zg zv42I`pAv^_ph+97R-c3}j*XVlyXsAMk4QN-J+)2P83g0+!(%L~Cj(yM58g*=Pd{NN zVjyM9;O6CB`JVC=R1&d2!cBw`#S;6IIN3v}?zLX6Cd3~&Q42BHF$r~;1JcVS$XI2E_1l$|);K;$!2 zu0J184W>`|>Ef)OVzojSV8Cp4Pkf^*KP1tgVn|2D7c-hmECy!5`&V09M1F3(p4dAf zl0#dtC3MZ;0?vv1StwbFrFlgbR%C}GjuW$5Y=L|GHj`ClPP$Ad@jAvZ3EV78ULp73 zjY*kMuv!zZ2c3yJr>T^>+FHeKPqSl*-W)1xk|2A{&P5zv)TG<>!9&b!?{1Eb8^GEk zlA=S6%1f1;A7hgkv|2CkkqXL%!)L=f{w1IX{?M&bM1VxZ~ z70;Gt2#G9Q9O(p)?*kEPxtD>4`{?4^=XRFz?mR;MnH-rl_1HlqgB6d3Y$LGZy;?} zmGdpzX-!tIbzm>PGH zCd?k^UhO&}$fLF4f}pX{xVINd??ClSH#l7mMx6Xf<>P2mE^9Zuy{<-@oPoNejM{1? zDm3IF2K6i=n0*zN&GKeYWCfO7!ym;O7(YySH6gBD{RHJknAU?2zg-S>MB z3ZOU;fQkm_vp-PfuK-`w;HsNeJWBw12~NltUS@1f?v#lgs8nLMRTBk$c z8Es*I8v*VXutKctHZ7#W!CBH3b=Lt}od4^j2)Ou*OtgENfhW+y)qb3_4?5RA&N*26 zIpD)CCWc913b`|lvGUAmsJ$&ceNEiI90X8s0xrmO8_ z6KY77-+J+!?}QquoBghYKs$?mZEV$s_x?tz@0;-y$(e$XHJHtL0xh z`6i-%C>6>XzgQc3>{Ru1+;>Z`lFdPUPiFD1%5)0_^@iyt=bU_raJnpFPluiwNjQFdE!c4U1X^^l3B`B2 zGbS2~f2#v3S$*aq3nEC7NDuqT>BnJ=KuC+B_Lx;JET~zhqjn{Xf6>-3evkzG)R~uOiqpDLjA`A#Sc-?X8Mp^iq zb35G~#%Ev=K38vd{fg>Z$BT4-`Dz$xk`fFTZ=Wu|RxuI_Ck{xBmugr3TadZ8(L6Ri zc&E2iy!>R^Qr9FffKcT-u1EFxb;%IMXx8TAc2*xOlk9ecvlIeiU|{&?;i)&-*$FJ3 zqI`#OzNiDJQo|H8@zDY}V-Ud2WeQidy=%VKzo0EKyLFt!N@SeJ>c8n^UijHk`lYzu zyW%Kd_VU6IT2(Ui-qt;{U#3sO*F%ed?OA)l5k-ps)QyIRzII#S!&hpu*ZGi6=K?L_ z1YRGiq#TUyzY9>rdQje20@mxmArxkL6rOQisb|~@!@}^)Wu*Xh%f0IyTj}tJBK|Jc zeSDuKzSHONQY3B#K{K6C$}`&GYPPqe{h*y%gCO0 zDH71}P*Kfte_w=&*b+V!%kU!7*HX})FXo@M?M@Jj5NRum$?J*hiC+=_)1&UF2A#_2 zE>`0wI8jbWVSdi8g%re=Ptq+`MOL1evqPXv{jl#`apbrP$VxW^<^M z7C$r?(%;8-KbA zWS)Hz;t|BbNOs4OJR(1`X$nuw5xIVR9Ub(?~UnA|O ztCqm|-47D2mcNVlzL6b{oc*lueCQ=w?u{cMkT#7&XfM7goP0!K90{B)c4=3pV2KX( zPyE+hSBH*LD?!*G1FW{1toJT0ps>7$dd3UeILLa3Y`dE*0#LMt3lZrwjUi1I>?9WN zni~JB5J*y&l&YSV`Sd4q@l6YyAhUQ0Fx_DD-}LxeV5h6eybTOZK5aaQ3Wyh{)Ka{X zd-Ls>Z^WfV96i?J{U{SqNsCJ-wYj9jS!w?mr&`w;FvN`0#(ik$i`-EvLPI?2I_7+G z-cGGQO^m8I8eSSY2AnH^BnH#Gm30ZY0_yPFRW?}vzCY4P7N9t;M8_#Wodw8usp@dR zsp84`fdB!k+Jd7|8?J0#U_%2Rh1ZiiX+n@H)>&Bt$z&y#`|j!D}%@MH{Jf)ZIvpWqMi{WX;NzV(uR>9V1UEyajNzTW6# zswsihD2Dp7OF3=NnoyT+ihjs~>=g!mfyFbNu+^88VU+PnN9!2sD}AyO-g0k>T);lHe(*6Xderrppi01o)ZfmJR8z6T{ZdAV`mNB_rBUr)9$>H1OU%8*%aMf2W(ZD3El zJMXegy;*siyld8pf7M(tKD_is1?I__Bb;}dk1YKBXsM~G3%0HCkZ{R(F!>Z{m0=sl zlNwTxlh*(ZE3mXfEv1;k94z?g?!_6&Sg${~(<3o_<&d($P?dSbko^95Tpl*_BM&E_0~Sp56R7Qs z3y_`MTZq=PoR)!bySp*+NrsLGD6E3}ETOf7T5TmNXBw-!^zo&4D5Sr*@0WmZff zBkqis5uHxc>JB)-$?JE_Z{9r>c`LMVW6} zy;PKD+MOZz#!5?MIn{Pbiwt<0#Keria+xT9dgXWDvj@E@f{~=)XGls%%Af$gXep-O z>tHdk^Tz8Yv&s@o&?cHFRnO@Fp(3 zz#Dm5r7+ky@^WGP$;;Hp2@M(=%2W9n2gt$B!nfERVW-85jXO#pR$}jGlAkQFHULR^ zN&bwgI_zn#s+RtB3g%U|hJ4)UVfl=BNwPk3jTY&m5c~s)K=sCq$Z6|tzK~JjO%H2b zc^j(MKYMf?6)Nv_uiwq<%b$<#lBy-a^AO9L<$j%O;_7-#aMo|ih&-L&Rof3a|GMO{ zY~^HcIMd3UUQNDv7S?qGzm^1bUd(XuDsm$6SxhvUo$&Arh!$Nsnr{Tcm6USzKFhdcJMW41pgAA{5 zEBw+7i~QAX+34;Z*Ad;5HSid_`sX?E1`}t%`oYpc;XdLd;5K8x@nRPGV{pF*nOcpm z@RmlBA|*`cG6u*$SxGmb4u_PO@u8)W&F~R8ZwpK^pHbx>_k!@~26VJcJY|J_B%a=V zmZ7~$)R^X~&X79)9@hv5jJ@H>b^(s09Fe50^m?LX*VpTF*# z7W;h(K?y-hlwJZ<1`M=9*@Q<$gsC)_N8Q9xYyleLcfmem?=U?hmZxRbDCwNUU%f<|3=bZe$Jx4Q{k*U$+fcDc_i!O<(!Hf zK&p4=Nv_~h2v2UEFo={f3oZv#lQKXks@xAd6rn?;1T=J$ww#Y!tkOx^nG4UwzS-gH zD>1`M<2@jK(}TztoWWLH&Ws$fY`3@ihuV_DRC&}^^BVDoN|%pUU|$;g*QFd3Q5W|~ z_YQ8)|9%%y?9=U*8GYI>42@s<&Y~|=hVMCZu&r26x13Vgd~gvkmD~G>Aa{{7guBfRWq>3KF)4M2?nFjJ~!X zy-2)FvTfX2Pi48`)TbFkQ<-h7_g7ni$IXj$Zm9ac2q3*xlnFCuo*uLKp5pZ}fL?In zlZV$JGC5%MYVCN5jUwBvEh!p>hkbI?gRI-@&Xs!-r)SR5(J}13P)AT)qGo3Q6V+$t z)G=)6fV_V%JnyX>Hw;Lyi|0~CPt3Yg5BQ7O`ZvSQnFup4#vF_^EArs7C95R}4yv6B zrtIuI6NP5uNJ4e^gzB(OG8KZWcb=A;AY1xTs93n z#6b5MkWt=uq@T}DxBt?^JCX`nl-06z>c~p<)ZmN%rJu?ItT=$A8cFOSqB*?V4Y)9K zadiz^Sy@TdFHTo00eYuuP!<3b2m5~ezB3EI`^sM~%imqy1%jq<;L{~$c|eS}RnNT3 zGz7z?5#5kJrQE`H{Vvu+NJt2z17D1JG^d}9j*iYM33DEJZy0~n<-tm1mP#yQRDjSB zOi=Q=#mB|{=S&S=xF+uaW_a-5FCRixyHh;C6Ae_V-FI5`2Q$)1!XpB%y9jFxD{Brn zAAny8s(QcJR8UPcgDJ3|xnU4Xa{R>S{OVUOvKn?7&sn-#Rpt$(07SUSD;AOru|h;#2EEzZ+^*zHa0sm zb8z&MjZ(cIDlXm&yFtM2jm`4bna}A*FP`eaYgEHOTBlmy<6*ylKgPv9rvgCLIm&&V z8377d5G=$qRK`w2#m5p>ACo}Y?Z0p-LD#$&!2P{U!EzHg&hf;z^591}?H40X%VG-`1Xac@%cRPc9eeeqSs!}8HZ+iVp^BWL z6IzVE{@X9I@zkkapMK)jcGuSW_t6N~uryI3i63f+k`Hr0p@fvBQU}%{QMq{k#p7w2 z(!_@oXg90+3QBj_TNXd_@FK?BU9np6bS8b!+8MS+@+8yFS#QW7ZJmJ(i!6-@6kT+rDuf-IIKo z5{|-5Q<$Snh$MCPm&tPxPd-Q<6ZK7A;iXU8K{qU-xJ>e!@O{+z&)o`Lzo{8pJuP`K z0r)`G)DA#n-YE?TGR2~k7ErX0g+scn1iHYI7`kErD4L=mJJmV!TA<$#Tib>0z;$>Eu8lYqpACV{5I)H!b3PNd!pk3&^xcBbzHN= z5fI+^_Ordr&dXi8uby5P?%0~E`{#%JuTjeko=8viFw~G_Q+Rph_Gg+#m zVDaC?1aVwkT(@shWJjv2P}b4_?3VxDwNxT394x8ohTQixiTovd*;i9ZrKnh&+?>@k zol7dI$}0IAE_94VuBNW;hiO+7EPe@s@?t^LA25Rs@1%PZD8Q@>k47?762_BM~8vu1YBH`}2==ej?8=F}57E zBzw=pPyT398~E`w@=yh1g;~{Bta4lfS4Cuq_(W5cJ^M6fNyM+rV${UA>cloh$lCPm zw%Y@WL}wduADgyh>^=vUAc|O)rOvqzDjyq-(~>3gA0ANne`4rRz4PJVA@zR3j_f$O z_5~?jlIJ$#Fr9$i*@jfPo3D9yx7zA+7bqof1}NX|zmm*bIT)ueJ`WE#$GVT3^J3n1)f5eh5x^Lf=?K6BktZ8G_kKJOpLcJK1xf4rTH5XyaJ^jyq->n*LRp(lOwDW_`S9No~*b$IO2Dc#U8EmL~uji|{9D zLj(-zO9xHd(G%t|^S7lx-`HIX`i1k!BVvYs`*!R0`QgP&Ts{{35dXfCQjZu4jc3*iT2B7Sb^ihZ^@ zC@Ih#;|>f-3d8J)L*z6E1x?ivt)%=059g_t)Uw-}95?^msPi6DeJqru=9P-6kIAyB zO4r&IPYU-fty9m{hag5d&ufE{_Xqoy*BL9QU3$xv?zcx0rfeU*sU=|_^Gt?2q9>rI z>QWCbbHrv^qz4b9X&#!?6z0`5#PL}63t-wcyUOkl-^35$j4mvTgFyF}p z<7_-c;oVhTd1=2C6KYGP6Z=A!>qhZAG9X&4;|j0efM(tcBjAWFAZVcd45P8}o%1`_ z*@t`fb15%>X*mCqLUpdu_#WCqHOFdJk1C_M50AGLc+UAvE2BVYUL)dAFvD4De*(@N zuyo@_wFYH742hvF>08@R;Vt=1xOfB=i#26oz=9p z#R9Q7UI#?=-gI&A>I7Q+9`GFgy5AlRfGV16(DwON%=dgH&8!O)ZP)*LSq1-~)1`lo zYPgZReau<)S)G;C3_rreO*55c{n+i>&Dq?oVbF?pc6K%c_3G_*C36oTstzcBg2tFT{E5t6BS!IyCnt}T%5w7!o;~|WHu`$Q zx!g^N7&dy$Sg)3^8wDA$a0uj5wAg;2tNCEIsjS;ZywlYblP--Jr~Fmqkj?u7yQK7n z>Yx`p>f2bnz%an1dxjMw0jKKGxM2#WR%HS! z4r>;*!sMgOEwje6QM(;HDujuxg;5J%-k7gG{bVF_(BaS)|LCZC0)Ch??)bof|DTvC zBEoF7l6+}mmYYY`k#)z%d;ybF=YN5*ROdyc3bGm-w^q?ZG}ktX57^`cqKzhZo1)-5eZ^Dr=n*d+O&cG@zF2D{T1c7|a8hUIW?MpY zJ4ND!bE@*53}52Z^(H~9S<(mIsyYh4v`;8B>4tQrocnghas|`k1${1fN@B~^tsX#P z+yt*d#7Bgc#bygnUqo&kkRCvIPT5Z1si|k{PxLsDP$jW#x%?fSJG}Uyf`9!fG)X$m z_=g9kQnRAFXH=HE?RL2H+b@P)Xfqu?@0|iRd~eJ1y1-*|*B1)QvgD)tlsWP|JT5F4 zb-TPf%?uux_v7_F`1qfD>wY8ywZr$Zk+HiuD1!D5`&0!$Z%`Etad3{bda$cmm1Jrj zxoAWkFoMk@rB;IAdw}^l+butns7sa=Iiw_Tg3*#E;5YE>y}d_MVV}NHPgl2SC}f9( z3BQ7;i&S`!^_SwtVo}?g{+_cTqo3j|q@KW@d-1Z1ziRlf0YQV!8n{r(eT-s28AA+d?wSg4jkEfz?y{fUyYZ8 zgT*_4+)9t;qo#6B`1Rp{*TtGX-|zWOxX?rK4?#Npl%MsU{@2~?DimI}t)c7w<>eyK zka+DZk=92=4VJfZ=eb3qh|@*p5)?tcF4A%T(nb`pUq?$DpHo9Jz+8tS!aZ1%^ZPA1QlP zyZrqpRT?@ckQ8@w3ufN2kS!0VfLqS_?P(sN&D& zDzUYd58x*U|CK2NJ)U+=m6Y~n$WCpQ4?GAcwA*Yd0b~6bPH%<9qwGZel9jOG*ZHnf zK=kjozjRr2O!~gJwMnS3kwQH1r;h5%*+B;de3|b(Xuv~z{(*jYjRfp=P8}D@@S9Ky znN$5`?&LyeSMlS>upTLFaxlv+23+#qVUCF(gTr!O)N|_}U$qF}@h7u;@6^|3H?Q-^c8mm0)SKU(h687yY6Sh7N z2uGwo_~*=V$S{Uzz1{qXKY?1k_$n4(H?GCB=-*}egZHo+;4hlYe$`rL9Q_kNqQtG^ zJ&iU8X3>@Iq3CbKp>wyv-qRA##9u-QlJu8jE}WYsN?j2An1&jSnT3UcVP1efCvlMc z(M_`Z+~wNdxp%884u;MbQy)bn`o{ck-R3X;lz0JQqpUVC)1S9+X>Q`{reBXdy;p;>K7)987@XPcm~$m-3`bT zyRB*Qdu@~@`8$l?Kh;^Z@2wW08@BRlSJxD^6eV5|+!8YxsD9-`I}%E_MY`@#RIPit z%uDS{yH}ZoXqDfNs0|Q7rdJZL1SXoUX0M9c;w>j6hCu_?vCv9Q;@hV?;F-b+cFu%~cib``o^OhNjV(vLkfQkrUoLctZ*Twmon3n_w^B|B{ZL6nSdpIJ zn=YD3G5rY2ZpPN7y%)bqI$4}}Co;AkUIYE(^A)0oo;HDN_I365&N_7uYLE;UM@A1@ z7?Zdo6H@v+HqO)bILfx64sUo&zbTug^unwZ$Ma8S&-R}zw20#*BFeLw28i2DaV*>A zIk?{w);b;@)lnj%aHRiw;z^x1?_kH|!k7m+JCabApT}@uy2hsAa7(7*@hN%rt=GkU zQN)xwW4ub*ANGWjUX=U2WE+Q)uI>+^?1**^JvR9#)>1{u<03USSIyK(`EAwfno+Jf z&SmJm<7ZxiCYY7vmy2r4<*tKEbZ2299?zO#5u)R@E;SDJr&oLo5*(Df(H@lxkC*6mj;721cVRrU`tFlG@mq$@4o z@M^Tm_50ITEX*QR#vx=6yflq?~bl0U}Hl zo}GLmk#bV>9ZRQ8ZjXuM_&yf#VlC}(Xm{aM%~cyS4CMF)^fcJ(qjZ`{O^Gg7o<{QA z@0I_)40J!^!@xqgU)je5jz)|cFVc_xkEXMZimH9TK8+xubce*yCF0N`Al;n<3@Atq zDKT_CNVn3BfPi#&gLEk%jYCK`48wc)uJ`w!YblE*oVm|+@4c_jZidwuWn1`NA2a_i zCM1p8ENS|5#E|+lz-G}}tRJ|pTen1Z-j;XvJf_I*@BJK{9dEi6*Ga1y8a?6Rm}2yQ z0e5MAk+;WeQ6qMhH7P|~5%*7|++qf+l4iYu;4}Y^6|&Rh-7BKbp|msWO@d|?nx%(W z5>x0EcaP{h;OM5_9Xa{GEI`mA)(T|dm1otz%_`Jh)$w3eTQI;k%8h9);8F(OPL=|6 z;WHC&K7FhySV(Da{awl@4kjWm zQLXQAlc%AA8O1Ww8y@M!X7L>!UD|7H9Qc_GIh%6^kZxNc!s7|!50VE(RmQ?y4xX{w zu3@ZGLv;~HsSpr%zb{9abTMj56~K z(CU=#K!lujaRKjKt3=E^gz$NiR5yZbdI%XT5X01UAgo>>Th-of#-p#Y)tjKfWWQ)_ zJj3Rz`BrbmG#HVG_R zaS}?JJxS;Fx;v6BPv=!c4NqRsVfy!hP6&hVHL?>E1fB3L+X&Q$;iP2r zd^(mgg8`Cvzu~Ll{x+zjhR0Vdxt1bk_wpBH>emS!+8?~zSEt!m3Pi`l*1-}JnD*SQCm*oCSX*ZtP<-&>M) z+NY_m{^JMcD~yd-P|WD83I5&c&eeec^0vMm%&;&tZ<4ig@XVgeNj1^EJqPrc)AbC zLiP3R3}^|^zJEB>Tk~rhE=x%+U`AAD~e^ z1~y<1D`_a@GJTXL2CA|1p8nszqp*FRQY#WY2cru8M}_s|#N|30BN^=&fP{zNoAFR6 z;)2vj9u#C-_@51gyN*$R#9Q0u$mSbHqPc0_KGr|i|$Pn5mmB^ zbZ1ND$>YY?ra0r~D1T>PTIYkrFA}@-d`@l$XNQfQErNd6xpn4R4bgxC3;&I0Wzp>b z-LgXgTg9)mQ@{YT&j9rlA|)Ax}yog(IgNA$lIZPe-?> z_g5ov+#f!&=d&oIv6)4UR_ER|)``=^z-eK?9#2iYy)FOFK`J3=nm*ix<;=Cx@JXK zVH1e6HwM!U2#x4V?~G9g-(k{1RPqljL;F@Nv){N!Ac~xXHr@dfE8<~ObKaCQ<8ckE z{gIkB18i33D$}ju!ooCbBb+AGMV2+`)WxJbEM{N0ZR1PG?i3;Y7pAt^7Uy1=5xZTc zv|z_LX}h;Lk$slwtnbZg8aB+=k>&Kw<>0n&{IF8+oK-B~IXss9j?U2;r9P^R+0G^2 zzB_jKGkfDv{TPf{{-Li?!Wpzec*nQZqcM#+%$SGhZc*T_B0+WB~5tJT$cNBZie zQUJjqp1SnDRcRaV6kTIl^Mm?`vlRa!e_F%S;s2=oPeomP{|gwuV2BKH9fSXYXD#z> zqR7VGtj>}=DRN{9vRx}{Dz>0lj9<~ZI&op>#pl%Pm;sPI$gHQ?YF%dyP#WI*;ZLs} z`+)s5Qgk)h_uY}wwX0be=y$^R_}96|eg!u$KeLTRv1Zl9zYMJMCw^5&w#2Y z-LCj_c=UQWGHXc=>uG6ul?iAHqn_C${x-!$Aac|6^0d4SoYlYftD9&16V!hDnq|F7 z-O~km)){5Uv}{b}mYKS#M9(&WxqUSozGMgwP+T~^Jl(GLb~+pJuAE`HxvPHFZ!vb) zLXbAU>$AVMFs0S@tH%bJSMsnEb)+ISbhk6N(;DqE(zzh%x;EMoCkc7=R}5W|RtAe5 zQ!f*?5JR6K>wwB^9#&feadv*BYbI(ok91&Y=6~@<)$r^J9K`9-jNVNzJ*_lIpX-XM z$?=%5!S8Dk5yVP!EOMnZp{?L&he2VcuNBl8ksrR_i;2Y(sCLk15I^v|!%bwcI{Vx0 z?exqQNA0I>tl9`}z&z({jkMCs+3=?yNpM1|kixZYm7loW|19#qOuT7hU0nl%t^&!P zP?K${I}54byuyR4;t~7gFf2ax$1tc&xcw~X(V+k*bcK(zKzqV+o}?VPNwpA3+i8eC ztV@LWCnm5ha3Th-qMyE&8Z;F6kd?WP1N)Z%a{d-@h)la1T^J?&_KWVib^7_+O%(=O z9bxMnL8GA@B0do+U$nQJKKYKZn}TASGSRMjOhK|{$&*I08cwSNoyZyK%`^Vat{U5< zm${F6|N6)rCY@<3dRE=_0S(p6b>9OAVS@n1T5_-s{^XxsOCpo}ERPYYK|vvsqL~O7 zgq>WOK|Yq>{I~KUV+m-5(vNXQmi0jKHvgvoI#^c#3YWfY)HYN4q`aKhoFE$sdA>6! zOZ#hh&D5YeYA014n^uJdc(pW(gTcmXy`vBp*?nkpd&CM13ABskhT0`8;rvFA*s{ zFz`UYt;PeUxzBEq2#0;I60AgcWB{U$M z3#gub9j(qMp~*V*Kf*!EFK6pzv~<7ilf;w?&|jDDPfrb{jYV86U^S7Ah=G^%8EXjB z%bpkzd%D&I3I3_~x`FMGGMI*xFI-|uY1YJbX8-60mH|=!T33536c{cd1AApYO=F|B zyk~?J-Elag_@z3dYR^cQ!A+5m)a>#b3_ZQ|>MBXJWc&o&%E!s0 z=Ju1~DcTdg49`nXAVJAUB9?hJUiRnDpLkV(VoGveg>?$@tw-RFppB7uXXn-6*ce$f zRR`sp_K1eadEcqphZXY}n;D}2I8Y;{FcJxMN_y4){X|$iW6YwWDllOeOW*f{?t4{m zMJ92?q#Xq;a^D!0>%CgqO<&L#$N5!#guIdz;muI#zcu&4i&mL}YDa>#QPFSqw?B3& z@K$BGx_Dm-Rq`IYFjh8QKMlccP((!S+Rs+Gqp4)Dcj>UEPQsh~dgzaYD^*k1_JN1i z*xP@}@F|p6*e&-2KV1&$VFne+uoR|wL5?YAZu%DVwL8t;bSp`{|*n zAH-Rd(Et|b7xmXJ`}4eyYm9&{5D|n)Lb$MjHvA&eclmwdkAij<(}F87L6QG($j)?U zmrH{6(&1s{;6n{9a1z7c-oMvJLnT#lal4lz_#J?=)gT9ARg4fhqLnAzef{HC~w08+|p$!=I(Y zU>f!J{;WgPdEKl3!uTdRR8-_G&rO@TFqGHI<-l)yK-~c= z?lRfWApSr}Rj@S_y=k^J$Nx8i-5*1rF;ysQT>{{Z|ZWc`-qb+2A$GL`zU z^3~y=USJseAw7I3;1ME|3UzaPxudS9CnL_7S-d8~W~Z6L)-qmKnIY2M%{)a@(2&15 zzQUJk^PEH#-2(WxYmSLt_osmLoa2AXc?d`1J+?Uk-+LX2q_f#16)>B*g2cn~Cz_oV z1vA&sttTc3Qb*Y?J*(E55h#vxQGjiL{^fGdd=U`mf18IPSy#L^39HIWsKZG+JLW!y z)z;R=JE#v2M$HN766c8~sp~Dg0)oTi;}fm2!FC%DFKMQXW!d}*OG--oa~At@TP}y^ z%D3@L6b7&7s{FUPO~w!a_e;wB`c_3M;hPXxT6$3YsBOkvKGU+^*wWXR_QQt{w&^&; zj8XtSUm_UGeB5P8K#2rQHER==RI8)PPP*LW`7DvpaZLqJM5MSPc84)1(@eY~1SF8aG@`jc#1hCyS2NKG&i?Gs)3t4Z*y-r{lNSnTCtgU^s2o!BqKjx;ySQkj%(`X^1Uc9OOb|d_^3rlw*7kfuhcu2Wfu@5IfeZbY&W!ZAWM^X3K?_u6!zQ8@i}%g7NwYG53(#8-kJ#pzG7o375Oe2(Qf;KL;l#C{WG(h-PqF zX^U+Cb00`*?mXO^Sy6AO$4xbp%b^T;RcZ$`W(5JM>^p8ZqeO~zG~#chYR@{iQ6h(K z+sCg5&>U0L{3k;fmHveHs*Pyw%BHqRT@jBoEBYlI2|gf&OxK}jp&<2E3FgmdPefB^ z?J&m#e@!EVZbJ4c_x}zt?iwV+LymI>Ut2Shppc-2G%zsM58VuSCI8Fm<)(<*AVx4F z@pWo=tuM@_q*2GsZns6N%`pQ9nZK580_aM%mv1IKghB%NS2z91iCCNhfUjIGq521P zOK?l8(H@Vx>c8M70*O*oC=HMSGgG!U2+?Q)L$TePz)|oqU0%b#pzpM_UD)1l!K_L7 zJK`Obr-A=@m`&R_WX-PHG^qT`n`kDUiu=HS&bitgeKh0=|DzpX3~IeGZjNPh2KrOd zMq$F?gR`A*(4`_x<%YKDzda2XO!zrb^Hk3-cM$M+70)oN>fB+%^YHOYtJNPdxQ zcd=m?j&2TirumqKh;?~Po2+Tpr4w(GOsE_^^aqI((g?)!5Px$lQoZ&u`uWh+f6cIx zKQ>;R2sm~2;6PjSfYlud^d0h^if_1MC*gWHjF>o8r6qsWh9o$%+**Kj3#CbwaEj)x z$JRs|ks}O%lt~L>sHD!kN3gJj{_e1v{yTiXr$fV3t?=IeOz_*Xa1Lb-x8SGPD!GVR zgqX}IISr9CO$Im6xTVtJo&W-9lAKKAATKNVXagloMJZthX`7)Gk6>QnouT>}q*wkk z1XP%>is8+je5ad?#*r&q(nQKcmcOzQTPMPonK0G^ZhR=Cdh+jfrX7tXB?y6svu~{h zzAr|PA@k0*5iDtV=-hLPN1G2+J2ik0mWq90vdha=|x|c!n;ah-H;pvU5 z*YJJbr{?c33@5LIE8WbLoY2l$;P}ks z92*z+zi@LDf5(#&H=wo;$Y#Y;hdkch{wK_PdcK`x8b!|O8Qb$va6g8BgAUIm6!dPo z`rX9{7a&vSfCER!dBQg*^+edVN+e%0U+!D69a3!RmG&`6OJWyevZY)dT0uDXl&)3m zFL1Oo!jI7(cW_%Ofn^T?`sl~}TcO=&XZR+q*KSeTkAQ9b8ktz1W;q=L%g)|N)e70S zUv-S)>*tMy2P|^w*pr@rwh9I|l=-2mf7r7R-q^=%{{)$2Wo6ySm0sp0UFyxTeYY_R zFFUV;ySh#%IcG+|TG+m(+E4>omAUDds%M(1Y$Mww^{>9La*7mZ0NJ|iKA2FSt*}h` zEw>9&qAcE_Ai0M-fPhNp&aeC_L2W}%%xRER8AboLlTqrBiIiH?TfH&erC3{04P5_r z`OaW1a2|i6%C~%~g|AOyZSgQpDJkl&VNnXM~ymGp1w% zDwt6iaZ;Dy(_L z=I2b-VUF^v%BPi0Ed%*#iTPU!6=ZdofJq7b5`B@e`_vtu12sa02Ht?oQplI6bmh@M z@L2Fn!_hX^%5`-;CXMb>`0T!E_l9t(={4q zVt(T`o{6jil}|-Di_kt*8xxBTl{!OP@EtRf)C!ei4IuaIm5|QZ0OVjm-{Zqod1R{Z zp^+nUJp9APsA0jK4|aFy7=4P4v#Iq>1h_8bk}))Ula9{eg9Zn`@Kf0C(Rj?f;l{?b z5c=KqzlOQE$LVVpHO@DC!8N3ItD){M#ye52LQ;7g%2V2TdcWUslo=_c6)uHn8p#?m z|Df&*Qnw?f)wzJZ=!(O3Z(iy5;8NGf>#1trIcAkek`YCjeek{cWZkb<3UV{kI;8_{ z_z7H8E-mrM9^)kyG8S`nvF8Uxov|Yzkm{fkzs$HOx6`E-S*Yq!eW;~=9CDDquR5ac z@9za70Jrw|^v|c&eyi#xi&|h25HR1YfVsEX)aQ2!yKN@Sq7eyv)F0dAiCbJO{kD}_ zJ|~x9YbQ$R>Ao5WEvEgGeWao8(Yv57M}fMwJNG)Xay_M#Kz z<0_+GWUVx`xr=25C&pe&k;WC^vl!d6+8IdxH(H+0@q%<9hZot`m-Jxl5?ka7H$H=#)oJA|7;z;tgp!zdw0F(3?c{QtK(sAAZIaBV9RwnR@QFu(VItnad_wmryL zWl__443GfV-Y?N5GO@SHO=j3THKuvrxWON$e&ClrR&JU59+*5DAc8c1RU=+e5h-*N z(Z#$o9G~#L6}_3W3m8_A1!FJl`5ol3JNdeS2N;~hhuhazt7fQ+7*!kYxTyJUXjXyz zcBM*RaGiEziGOpunxof7*eoIR1aH`P{v@dKAf1&!gu!pX@Al2AG-F5>ys(26>R#xMO8WE_d+tZBMGU0Id~Ej$Lk@>sS#|(|8I+`a^N^_-xPW?h2N2+E=OJ)u<(WMEhd>nNYvgh3?6ET*)->MtwO!8t3i8SRN7Dt#W zvj3F`_|v*CmFCrr;C7_1tg74$unr(GcWdgmDxg!WA7KESU-d1rviNtLPZOR;Vlbkh|p zVQ2`!6c+5B-Z#&5_jyb@919)-6QSVCDEN3zE+ot0x{t8D)Jum3{Pb+PS zWLIKyR1=|^;@bXR(yYhVQm{di)d;E%Kk|paIY}=3yRigR&F_G`{&Tv&+D}~jBSNJq zbK!@k)P{p;*KpR=zegjYih1osxIyDCKX*gL4~M<}y2ZAG)){mZ3z1C7&2Y>T7yS7C zoy-}S1OGQ^SCVNw4p+^|52jA1qBu>W5XW8-DZKS%s-Flqc`wya*J;x}gvbrVRpN{#rl zXmNQq1{LGT16)WF+{y=w_{}p0*ItfG*y5IZFX`)Eaz?V*b)sX6d5QHI+`GUUuAX{K zlE2w2iEDxRf(GT}7I)<2Y;dso;C0OWePQMJo1I{9ELpU5Ywm+PV3g^O0U}1fEij=DriUm1-Bse2b_6EJvN&BYEXlq=df4x&c ztd)vQQA<6rsT3FBA|WX$c~K*TUTNOG$S%Q)j+T)@3pTB=sF2k$k??~3$4YAfrn|#` ztAqjN$WtqD3NZ+ClcG!|(IFiN=MSf-{XO}I zf!QC$L^2Ne^9ixC`{&3-MjYm^ne2GFGZtc5J+p*~a!|3a7C^Sn9lTfOZx~U-0bF_4 z>D32b1idY52~3`+DYnz3z$Qc90;`m(8D%~05;B`D<&?m4xm3Ux89&;fUedW!xYm|N z@)UY2Q16_MW0ZX!jLnK$cUT!eQbW)nEQ6c3A3H4^HjODX!}Cc z1?0ir$CJktswTRcoW8B}?X#9RQn8O|sc!dHHp>u4^wjJBj2yXQWi{#U_Pr)g?dM{> zzy3rP&5WBNJCg|&`fBm%2tT~wIqEC`#rPOa+UQ;Fhy&URpCEc4L*Ma*_`bfrU`ffK zd77jtw0SfeBX2(oalEK{NPY)iq5*fN0TLJXZ`W@Gz5e&8!t@ zNDYjxda<#>r(|!Rh??~VfWcwe{y!bx^*FmupKdV+JDM$g+siK@hBdXOz8{J$h^Ryt z8emds?UTxu$Z9TZ{7_g9376F#{M$C4-Z8GQzZL8DQRQrhjgfN+M;H5kZG-vA;kVSw zs@a*nVgeuZPQIXXv`XUe{f@~4+N0N_Lb{`R8n|r8Vw6xSO!2JX=)c%q-{7YUYE2y) zM>FZZK7VQabPpLTB0*9kT?#+1y6?7#i34?B$S)~52VgL)z2IN#Bz^c#w3kyegB2yF z(UUPZ0?K8irw7KYhG9rZSK|@Tj(Ilol1wiWF43K0Z=gl~IKpWfV2>0nd>RS|E-pe} z*LJR{A|fIlEzIt28E|HCJrTJOXLVTFZ?vo|8SuM{Bq^o;%K}J|?;AJIELz&7GTXZd zsA&T-OZYuowk`!WFdPDiV#)#Y2G=kc*Qn5A@dqHpygrVCATc2RH;>;J-b08)CHdbE zLF3jQQ6#%lg8sKNIgfLprw;|mSe`@E+tl0eHTh)vq7jt`c^~9Sk6Rf2;o2( z8iifkWL_QXJb5(z&~j*oI_}L*Y*cDzpHFK`4NJUCOwCsOtLd6%gTk6VqkC4_Qix(R z?OmK)sE*#Xw)pw*{ES7}EdI#RApm+zaL?&$Y5G9V7p>5FcG(tyrg<*fDi%J-+|UQX`73b??e@ zc~zYAZp++7x^*i}@OERkBn0LF=e{2Ga0-3R+o=-_Fs)D(~r`UqX3=hR9_57$$!QC^-m*Q<8SHNg7~$ zlaw~=TIgF%P&MKrMIA*!RnP~>8>o_!kN*-=nrBkO{=OThMdi?HxyB%`MyY-pjPV!q z91F6p^pOSq;>2C?q_2crnij+0b5|rlMI`T?aS4;(+^@u-c#G{3VQ20XL!l>DJ#oiT z;!12hkwn(6ge92fyWs|qB%jP=xoT85fMGYypJ3txZr?fa3c}uhQV!dEnrm2%2lbd7t%eQ zl3z@!zJ<0{61fE)p%xzK5y4Rwg*=CXfoR3^m4F97V5Q7TV5pkwX=ct?!WQOFO73O& zdG)h@6=nEDIL1Xor&tX#uy>+}+$0eh;uHKxk{odCsfZxvf9IH}ud1`_zP;q2p0883 zvq>?DjHg}t(KyW^af_!eJMNqp6F0;cw7!L^K+hdA5d!VUbUS~>N1AmKsw6#uGf;P) z-(vkbfX#4KQLn6=Cy`@fDYaZ)@mb_a$d^O%q@$4TTu`fnPDJ1(3``I^VIG)I_~pBP zxd`5nf%EVgT~z-IUCkf!8*2lvkiS25#yqA?)~7IkzVCu9<4DF^G#fH2z4C1M1R$ja zsWna(%U910o^Oi|Y;x-BMHV+O58DW5{m)O_`qXGi6F`%g4Vz9Col0T_Vo!ndVqnKC zor5_F2C2ESWA%Y$@iSbb*s{uAa=iI3&m_3^@J(nl+GobpW-I~%q_JMuG3X|Id#Zb- zVXAZwIGtA2hFw%40JtiVN<>5?H!ruAOy9%TA(|L1TEVW#HE87mR6#2|ZXn|7e(>8W z5;!-26;NxXMKOa2*gP;{l;wwFtbLETaSpgMp#qz>`;d?JV*vA=hmFKPQ&32Gv5elU zFRJWbmp7CGw^PzksWXGH|hYJWa-~*+YO10^@;8)f7dQcN+ z)AGp|273C(LO9FuknU&YdU&`@lqr6X>sl$e*E)-jtPtRxH9U+5OmLrBmGa7I9upjX z=YpwcqMn|f5*5to$@0_LKOww}7Ficcd^XK*wREWnT@4Xcg|ZtO2TKFFJgGyq%+sm$ z)<)CWQuO)ND@K~+Y!-BM1SBc$B?%_ka>8n2*k-N3bSF9Cpyw8cR5gXby75}W(S3a#&4tYTsEgN#GNfW;F6WRRD$ZsmmWb)U!GoX<=E%>%1w zneTcNvv5MRqy>m`8;a8ubs84%wU6cO>32dB1Bdv8R5fyQ2B@sFpWk(T)aw<4B z@+*@gLAE9vz5ltl*@B`rc^M0A>E)=z>yqx~ziepj+T{nAZU^{;Hxt(+~gTfgTJ(sBq z{EC*3Pq12BDia7#pDJOQ{yp2Wlt%btYZYZyHKcm^9j)DZ{5v|@1S-q=O`O}qfT^7_ zLww20>&X8pe?-4kEYBG_lILu0YOm(4V|oKuYQ)TVan%d0RH;&d*EmiB1a&(aoxUyN z5)yJ+WPs%GXm&9%Ubu7lXAvLdxuXUg$PNp)@0!LTa(BHNJb;0+Wwpox4%I0UHn8VS z_GFHKcSl^t=W+abBHcLl%BIFxS|We zLE8FFk}ZL&XtGYPrfyHYRa;1`g!7O#S8}W2*~9Pw3(B^_SB&QbwyC;mV>WeOzNmj ze2_F?{R+?!SZ0Rly-7tVdW7en<8cd6Y@P`GdKa1m#Hkug*J56;bOHIZAB~N;MXzX} zaJ`p*tBOR$5J>ct+Os!zLH;QvoIYvuOTvUgSy+tG^E4q-9IO%vP9uI9Hbwwb*h(yG z19gA*zmj3(UFU;%2l5^PhWyN1>>BcNBfY!317vvV9`35PXxc`nYmcn#_3+|s} z24wyGWTo0h#YeEdjOuiyr?~-dSxqgT$wOs+D9wk~&%K+1rqk;gHTPY@Z0bFRRireY zU+}vItZB~a(G?kM2%R(7tZ4akBCh{sPi z#%h-8JIO@^y5j`n202e*7T<2vRj+i?5zKt-;P5zm-@tVXB{|+}`B{uBE>&skGrZ+D}HOp)~7tF z<`vo720;|e0(fS*Y6ktt8>=KyU|^T)cwOOW6Tqwt_#SnH0RN@-KipE?qaG=5+K5~6 zlzt0qNC(s{fGT}tVD>b+DZ3{%H}KzjOrGvtxf-1$<8=*AIq-}d2kI@48R0v^5|lub)S6eW)Q$hy3$RFE^ET?!EZw z;R3#SJ;*(6X>EcM2W}1>YhtH1J|IRndOla8{X%~%I{q7T`Nr0r^HI91+Hq9 zy-qqs{fE7c?R~HN?w)woy|lk#f4AVugEEWOP`vN^Js!(KpDkSzXP83*DI8<*_E0q_ zI1+teLp|<(>vcy^_iC(kCNtO2=VTxy1~!`rm^+_6>-5+cx>r4YjdHqYND5tf#D^rTb*KODm|oHXj+dI>51KAB^KVq2Fs0LOmkJSPAKI33VM7RE zt8)<~a_rVp5h-;~xV%jLMy}(2?Q6=JPoTljwT;h840lC7B{)lT0WWXSKnXzXp{$sR z1c|8BZlh9GmnKc|!+)$YpJdPy@}ENT+hm;)E=`11&xpx8MvB+J_|q^|fnF$N8%_erazWlmiXd zBI7`Wj-_kfo7EI0S^VQhJt;H92k49$xE^5hsTEh_P5Tt$ZX5cQzT_v_YAOM4C3v5F z1{sQ4bQHx7Lodsc0@X_6;rCHlHTNfPi?wCiMU?7yaQ+C+;aOlgzV0< z1FKOPubr^vE5CCK7Xz&lT{ky$NyASlaJbOxuzM~@8yL^??vwB|u`peOr{_SX&8c{= zls$sJ7+w$#L!T^o{RqcU4~1r4dRv4N;Gx9VsS)DmlIxNh8@V~gcX9wInV;1!-cqIn z3mu}IS*eoWA=*hZ^|QEMi&pvF*#fKRtX>e$D1egy(q~r|v{7 z+2P*!9MYY`wt)82!USR^R1W(}fLZzaxj$*_HS4ogCn?B_(Uv`;-%JrMeHwHYG#vKv zAR2w6Z@SEk+Z=l@x_kr}*2Du)^p7!Z@K?ryQhSaR%;O-R4`^8*34p7hqtj-Jfq8#- zH=%X!b2@l#AeZ;=>8|`&%k^)ebjhv)^8m(AF9gVu@i(f4$Z--V8ddQMWihL@TZ+?b z{4nIvoa4*-y8N!sW=RxekgnedYEn+^oauB<_AqNUCF>$e~d6syrj~B+WTT|y9ViEnwZc| z(kNcj{u9Ru?c1{y;E@&p!^rHrSFL~HHYiYvd@*%GA1tFZ@LY;WLU;4JHW7^8|yC!288y<1Avu;;G(nm*Rcb+i)N@HjYX z)#=fl{v2H{+)g9=k6B7psEXrrV5blV-vMRCE1JzLBTc2dRsg%cUe+gk(FPtRA&3xF z|9}8~PA!+@B|L4lEl%8jy}lCI{;66aoiS)e4IG3&+tT{up=_E%5M)3xnILA(gKnZP z^Wr|rz>S(H!tCO|n$Q^{Z;?=asjiv8%F60VF6_jp6cWIiqaiKxoVt>j!aSDQFD|*V zpIDtHk6|%Y7LmlfF4M$kRJjH|IZOLw)^u@$ z>&EQ2nYcRj%9b>UB%S(qn>?8>+r394)~E}3D_*%z?+wr6zLM0)ujl4q{W0GqRyXI# zfmax;z49O@V9b~HCHl1{xyK}%9pg@E%wW~;8;pXf9gK%{Jhk&AFMYFxz=Gxk=fQ3x zX$@@hj-(F0UCQ-akrF?rD3=GkD;w7Us)c^Mhe&=+axum)xNCHE`jf_a9vj#J(4SRu zb%Tg*`a@u&oMrcV#Y^IyUM0-aKX^jAHKfH4Xo?e9Y?vpk z!m-`fk5;OY& zsE-xs6bQGri>TKp0~6+hM@R6_#X`S+FL$qpMEqL(JpeFNVt|F+R%(r#C zcLX<~844G_ow;tjuOG23NRe1 zzbsuorhvyG;6bP<&l?ZN1wN%dX4weXfrkyQiBf z9)f(F(u*sa7A>5w@PRnt=$pib2IWWxaGU$ySD%DZ1<8(1EGn3_Np|7>B%|x6<9TE7ReOnNwC7bg!>UA%9p*Diq|SNL z(pt5PsPqQ9`AX^;=r-d{Da&mVZ}H|+i*{wp7BR$V{@h~ShNFGKtjb`)gBv3BrbJ-e z;=>U>kGt>jKPsa#zkD;_dOfIw#vz=&Bk|Z4ysKw`2iLaamp1Wbo-#V>dUis%7dIFy z0nvhud$lWL+NEC+k->f?b@bdcZ(SJ|!St_J$l5TYx}!k4FbK#@@S{-*M#ZaSwMpSu z)2tD}PoA}k7!?Rk9_w|X#qf+-?6LoB7pc&Y(((e*rzh8&ae(8L(-*<${~v$HHO3)x zJjVgCex4fH7#+@54!26KnjsBg1XW{)(6o)xk#Zu|S#wpWx4(ZZT%Zd8J-~m87FO`- zFT4Vl)-?6xua}IU;u0>g=Vaw%SwY2urp*`iGc#vW20PrVnc^lOFIHCOc9 zpJ%2WbIB%t8tQ#I3%XFi3zz6vThKT{BNNtMl)-eAs8_jUS_chNFx@(jDKu zko{5kxZG8phRmR)K=d#>bve^wq4&9i9y*Ip)5^%gMAblYO^j{e-S-L@ecH8e4Qn(9oc1mBz%3JLYk}fLh z*Wbt~c6|`$gbE6!VloX0#s<()PD_Ld65_0XJ|+5_h^x3tGL{BY?}=+HxKB6+!8ddI zualJxPmBKxdG4s(g!LzEiajr7kkLH=6F3E%=T{60rA0Z^R+ldEohi9qaJi>^Yj#{L zw_yFc-7>M0fEMXD{yO|A@e43Us_vFo=X9RZYJVnE4gJF~_4mwLYgqM#+d6qh6+B`> zjSG8!U|ltdN|chlX2MV!SoO`$Wm$*+KB`7R`v%F~(+hNAR&mSx<4EXnvRmTkFnH4$ zI6Oy?-IbbPYgtsni&p6uB!#MmNO~)iwYC7n{)?5)mI3Kr-N&m=>?(b;3wHg8o}b*f z_aS>`Rj8CxBvm*1W@V_4^lKptCh_T~%IKjj%6wuztfD|%v4R9zEG*oP&NgRJPlu|T z;a^ldq7pYvLSI9l`k`QA2|Zb~I>0vBk!g4VoTu3nSbHZ{Sw!r|4-4-fOEsuVi9{$w z$6h03s7+ro+WjOkPYOhwnSl7O{RieLRZiCqie7LnFy7(i@-}`sxBgj1C{k>PKgUIp z{AP(0bg*oOZ=caHThQAZK@5cboHw_&p4gR583t?!DZS+IQgGHI0}gIYJsU+5WgU79 zs5bj^-oa!)qKPj&2w&29ht?!vIp{2KLW`09o>;N?CqiS>$Ynuq~v%; zj9~jr{%k5rhlK2tJ_%!z{f7N|H?`Au74H;QJc>~xldv9f_3?=bLGc{ulo%4d>Swtp zk&V$?@z4>*50^y8(>#Lp_r=xM+%0x`t%k%_r5~%aR=Wh)zS_6R9?%%-X52~{hS040^V+?*6=JT zGuVMsep6v?k|FC~sl|QZC<;CquzAK-efaMmlbYW}(J(BOXH+0#OmpGYitm-d^=Kz@ z)IT4Zy7AbB3J6K}z2O+a4)BwmIUB@!;? z=a~_`g1M5*jSUUQTQeH#z~4Q}v>c<=hT|6LG`(7}fFX&zd$`asZFMCVyLgwPeP7sL zRt7M5f^(2tpq1ejF=9JEYr2mI8W$uT_7$>v#ho`9o&RHx&B4QdTj5m*?=7C~Z9Bw1 z+%TfJQJ2mS6v~qLMQ{vY1_0=ShV|EWWi$XC4=9BO_5d;hzZCG8eJQu|uBopmczNU{ zuctSZBs|&iVSs{=#`-rJ;IVT6UaS<;BCB!v{zF9FYrn)Tu|uo?m-ky*UyT$#>8;KY zo};^CV#%PfzQc%1aNzvRYE6@raQmZydvWnln)T)Hoe=Aqx$n`!b}`e6?5=VN7%_&4 zgwL5|&|+}Vg>MflE4hz;4uMzvz1I09+RP~gUQW&H>$$Y`=0GO?VaTcBz2|ft4 zCk#w%gBFU4D!G={2h3fao|#Ry3NgLg!(P6gczF$ug^rAA!=6@3{Ny%1CXT>oN4 z?K+Xd)xpLF8vwP{aeft|B3SdzPGA;(Z}%hhj&g%sSb93HUZ*5oa2CtNdb?Chj7Qdo z5%Rh;0;p&h?@RK+_oq2>5W&pFY)Aj1s!^9sH>gOw))HeX+wqVuA~6AU>Qwyj zyrb`Vy<;|m4TRn$W7#N3z;KIn~%Aj!J_vrB*RUE#@R zzvmU4t07+UU8B}w@`q$TX(N+%e9Xh=d9nKC*ai{3me~W}quvPR{2HE)@}F_3+)j3mBVwt-)^#rn&&K z!tJe?Is8Q4)aw*uF9v7tLM*vlrR_!rEv0$rY&tJ2)4?&;sP$bzkdYR9>K4L5L?#;{ zFIr#M6IW`TF=cmFnD|_A2Exp(eb>#cWU$=vVtc|8`F4c+cbq#KDPz3fh;xx_+*yje z#Gr`u#1(}U0?O33;pw&rGVp%y(Wwl55}f|mgQtLLw=72gY2aTCm&{}v<{)J>-1{p( z#%#!itUb2GdBM@dS7dxM19a=qsd>dHO$xlci83g(vuq+B^rbX zcaNprYKo`LVPpKIfD~mZ6h;dw@n&FRJ;+5SiiP!wkK=;B+d0r(UBjD*UJO=tHePWK z_IGYm=14OVFJ!PuCk344B(A!mfRXYCE{3Ain+b5-+BFP7|E(?!j1MYNB3u&rSp63d z-58(UCwm%sE2d>@Jxe6`wJFv-HZX?ZI8o`D5b<1UyUrdNA`Fk4j_q^#x>$(z{C7mq zS1Qnh+1@t%z*fr6e-hMaYvyou<5oLZv%Kk6oa4&l`j6!Q(R7tjQGH*V4kZPphHjJ; zVSu4TTG}57k^&MELrJ%UB13nVh)PIz%h0VTAT^{&3^~96@8Q4JyViW*18d^mbI;lP z*-y-H3(od&3!4XJpQ^SR&Du3$6I;VqIj-m2G)-2TWk(X`ETOIa6`eJBbDIqii~l;3 zu5LABn&FKa(3Fc70Ui0L8#P_?KznQl`58HXJ$Js^x`FD$(ZzZ0P>Grez2gugUHb^D zPQ*)!c=%Aef3k}AU0*<+5vL;^slWm+@i2!S?AU>(Hb#hvCUFdU@cO$9G@s!2ET_%d z;p#Aa;?n82+POb{_AXok~^Inof$dLTvi(n0<#_~rp8xfbHG=SF)zTPJK<*n6BVUFDn&T8_maLp&srYU9Y~P7RwI1naU9dg=8N2v zw__<+hkTA_;P;<4O=TwMC`0j{8F)^nlNjc1+_km;+$BE0k1VpJTmJel>AtNP$-CUC zhm0}BqJBCq?c8w*&a(uhBkvCB-#t7CTu6(}>(`vD-(h}-nrGCl1gw^Crs!u zsECW*n1yEw<+4XDu%m7>xH~_#SXn6~=ZK13^_G~gM&~KF#-1u(j%}2Q4o6x=cglWR z-SQ@_@3e&CWkW85C|%o*?*VbgYcWD}l9h2PU1{pk)*FEwYC2xFfvSX!bDM%**Ra^w zpIivIIosL2D0ycwNa?T&+p@p4Ioy7Oh zx`Yi|DIpVlcPxL&AdO9-8L}+3aj8t`U1?^%{(p?E5TvLr5k^G}VQqGcUCZkvp-@;L zToJ_v-PgJR`(&Fraf%9uHLa~lk(>Gz zs5;;&{T<*UAg}Y`7%UtdZK^!KLf5C9B)s0>jeVb;%^c_#$<-S9h0FFJEW7$EpPncq zJAY8+%=WDB9pru@LHLUCuvo;CSR%0!ICfQ?nM#zwdOewU2uO7Rf&~ibJ%3Ej;u&-8 zoHI`6WqFj(2B60Rv)tk2GQ5y1N!ORQw%?)g5Ts(qVkH!6HUpG4KNO!0nPKXv($m~U z2Oj!3m>AzSp#+AM?y1`?wY$$4D-6E?H{e%+q$)vz546)~Cbm4^A8Y7R-bOiBIIOZ> zEwjRRv8Z43^Sv+!0ALl#(=P!KyX$y+W@7tzY34D_zqMu|JYfaX@gXoabE!_?_SnG^ zg$M_3Y5MH_*#-(%;hNjECg~%u0L+U)#|3{lq+>;vVs)&1eHqFIW0&25tC(vrvHZpF zG5Ai~b~K89l2&YHBnI0so& zAn+<9zdn<{X1JQUz6|bJU;nsF+OW3}s((wbSW^}J16fp0VeRb2O}TO7$d=Q^tNtPU zc8Dki{wI3;#x8Y!Vu!@8Q?E!N>9hah{t{Y{0OdR06QcMJ)Z+r+t zjXA}JlRPHeAc60Hgbt)XW=N{Wa}8WXP86x4fkp03W_3{)707V|6bI@_aphn+Cvow3eI%DX$!m<+)u;dV!e7Y)xlx>d7Lx0rVYtW>WQ7+ZMUw#U;!lbfR|^BnNzM@ zI8a{Ax0Z!Fou0g@0^vJdmX_yi#Eh{qHZl6Mq<@?wsFkTdqQR+0w~a&;%o!^#&49jY z+_8RHT5gg{Sd6#{&P-Q<>haKoEW_8d6=!?ye1(loF~mTS1cGjVvJbg;zb5<3lp&{@ z2iSy~B-vX_Pf$>agEXN@;UY+aNlS&DHlC2ou zT+YvQytR525s}0U@05L=8vcG|mqVWZxASIhlc{36TX5;00P`ocTHWuca1|#eL48Ah z1XI*+&wD$vPNUKeMO6>-^Yr3j%|7q66>qtfOZOl8awF7L@lq%#{v$2m*Nh#w3Af z`&8Z)?P1eTXPokIR@vtN#kE`pb&S(InxEY?TImZ5J+lvdaC-_7&W!>gLfYcUQI7peZkWg|EOslEEcvN_QTDNa_hq zHLLkO{7*DY<*o78nkqcp0E;{>mN?|Tl5{8&+GKz8jiS^F944uRG$vTR4c2&SUN%IUjZ0C|stmiF{(k9o2w?+F< zZ*kmV(J%cr5^F=vTp#ZqVFx{m5o-cO!jx3IS#uCJFCdoN_feO~e*Z-M#Dh7by{7AJ zoYCk|y^4Ntp;zKT)Y1@hy2OhFPj~#)C1EdycRdh;*@+Jxf8!~D~iv$k%fmFW2lwyF+AZJeb(tA z7{f2NHvXUlic~XoYPpjeYlWMz9vha9)4j$hVy)Dyw+h+-H0`h0$9CrqP z)9iPt7IM9@@0fTOyS@WAepMv;uGG}qq}Ir|H_s;of>R@(g8NqAsNjlkJZ@VhAQ$rH zC%XEZTaLzLiIY~$T>+%?d8QO z4N_jUJMTFA)JI=WeTng;J9CmmIaS zid9GK*Zcaz8k6^ulJ!-13u6wAu97U=1}u<*Sb@W>&6zCIMny-Y%D%!J^l%spDQ)RWT04~x^yzaliz0baWNjp2G`;SUHOjHExha0xLA2k!gsC*XHZPDo9YApja9Xj zeY4_hHBO1HjJ({ns*;V~9QM7#@flIDkQYCep({1PkyACBhhgX;a=%kQBf z`KuSOlwwo)X5JKyE5tJiTZP+{Ld)`NnFrOhM+h>+izlT4*>8T^E~Znt4Aw0#LU^Wd zUQHX$j#n~w|7f0WE_Ymt+IGynGiD8~kUR6+nVq{i)Sa@U!MRs7Kqf6%_c(D_l!bD_ z#XG^aOe#?4@S_1pPsH;*Ud^5+CdqX-&^%RBT-)ZgWv66Gf_+%1*&@!?nY9$uQ67hJ zbtE&OZR7nLF+){9usQ+RLSF9i$B7z4G|j~ z+YJ{NHx7rw-c{;#Qs&WFu*wCqRQ2Mwfb=y{5xh(~kQ7(r3kJ-fvKSg-F0zwCSmQ7l(bPAf#h>f~SJ^S(lw6pN_VTK2l6)#~wOI!I-YBj$BIZ7z#sEBpB zC{C_>YpN6kcEAruomYK<9_8h}i#Q|uQ2=lf2Ir&4pfti7{MlIX8gKgJ6o0p_UB`f! zS!uK3l<{lNpSgD|&PcV~36c~OrjCGV9ry*kL=l zaF8rwwcVwJGFAQfaPWrKH+J=JY+p6_NcFk-7C<*|%Xj$Q1?2$`G<<3AF42sS^bAGZ zN{0JT(ihtKH&~2Ywv-1E2;iXH`=eSjq2OH>3nJh!n(Thza==;e>ee;#`Z#!HIOE~- z7cU-C9JgIEw*qf7pS2XD4>jf8+u30{1<3{#+mG+Asj3uFo6abMU5>7OpK#vinh3c5 zoxFJivQt5zXFL}v@E@DlJN=&;9TP5(!OxZtHb*sRj((>FywT0L$QuOnMzRXrFo0;v z5>$(6LS}$7@)$Dqt-T!qMUc1A?A~Er&R7Q@lUsbZrx=yYov%`qP>|!-Mgg_uNfa+5 zs*SRGUc6M!B9~wH4)u#5L{EWs**zw z0|;|)@K$cX!NB9)zaOXp_H;wk&@SacF>i%XvcNbD7_juS2oS_(9T zwsA;nzW-j)B#u(tqFvdB<&A0WixT1(7}8D-knSSDJ?f`#pZ&06s=7hJhq!pcDK5vd zubgphzhm1eHKMpH+sM*~zcK807d)BvHW2UWee|H5(*^Y$J#=Be-T}gR`o%ef@UzC{ z^W8e15Ng6l$vdADbv{GhS8IK1V=Z;7xIQ4ueLIyr;7F~r@Vd z+v5xBL{&%y#2m7FzD?flswt{8 zU&GiwCI4`T5a$}C-cRuy_RZUo+px`U=&yIGXDzd%GK+6r+JiUs>_Dnxm8GKtUbO&- zR+_Xcb(N_h2mV5=K{yp#JGjlS<|3W*H_%c~BI|_ciG>wCeNN~qDIu==^9qsau$K1Nm8ctXEVp6@kU))%dWoMu`fzhO}4~`qdwEmiU$*$hA+Xu|ywKF=D(8RIFt#Tt*Q-C;P})9*+Fkt}!i zVmyP|Piv2@{avz3-&U?#5lCjrER&}ZVr3F5pN*y+YHJUfnjbbDvdR9v5TQRr3$1Kn zS3H({T#_2HuiY~O(#g!k?=cCYeTObnc9{Hx&a}OpDT#IuzA@ihWSa?FOhZ+Vs3Ina zC`aYF=aU6!9_)Kc3E*Pv-uKR z(3K-uk66)Yb-(zki$i78}lLEUrDwXBChJBp&&h7h8A&q!-Em^`Khx!=OSs zdb4UklRI8$w>T+A*X&5Li$ zS<_5nr7VaMH38Y;!S5F9zdc}lSgKWVG%jPRKoc||SH_H>L7<*hGyJmD@fleba0?v^ zy=EZ@)mAl6HjUr;weH9iwULZV?l%(HBU#&3ZNl>;4W_I6xib!i3%Tj%zMpnn2Rb>s zS~HG$c7_dlkxC#HGr83ac0QSz$-Z2AlsERRc3PZQK2|$^?QRe|xmv)^=Be@#w_6&9 zxlI$sNv1^euS@bIzzow2+S@CN4TJirMDUHWxsF&$1Dm1c9{BlMLg;Vs9_iSu4^7y@ ztHy%lyhLx%hu=o~PS7_cCH_nxHi(~!%lq(|J~3HLMa0AoCnW?=Ou^&%_<3SdVB|;5bF8rezrBMSwj15?YW?HHh<{e1ZV956N z_U5r4=D0GLe9;Y@@lRDEpg&8$-Dov6(}ZxxBNxS7D4rChChxsmeq!pkxI{hdnIk;8*TWu|tuNQCuX;p5t>VUl zukgwJrun-`^+LR9u-1P1(c%4x`%HFpyBjK!zd=R&4$h5C6MnW;Dk6XH$D0wISR=_HQ$UEL&zlpC7gs<=9UCtji!qJ7x&K)2a6xi>uTEZA` zg{ta<2tWa-t5Gmz@;EiQF`wD{ov8l(5)qv{%&_$txQ#Qj#pPck@TaWXs2)B{_=__#Nc)2UUKPlwH~bP&{4rc6dLc|i z{P%sc8A8~lMU%F&WWMD@XJywR_LlHKH5p=q<5Pqh&8_;|A8^ycaFg}-jYF8FxJ_pw zw*C7HfVaxiM~FY5)B@gMZ{4)<`BsMolFuYO$sA&)v3cDtIU|N*z{-f`WAf{`n^E1v{O> z(f`TC2jwaKs0)&#O&nLKnz^3*xQMSrB2)Y3(+b<>BT#4X7&K@)zz{Ty84 zSVOwJlKUE*!jvxiN^KRrc52$xd(Sk$NnOAoK?Z@1J#5Wf#l2*{hovR#SP~1_t_pC% zdU6kNvphi_Yn18q2jX6i3eU-@?cQ#Bx-=T>?&)!fwXObdI7I+`YgX~8> zai2X6{Pfjtyvr;5J;fvXt&k}b*~djcdO=T9_J){OC$EekMV~EQUmBBgq9@H)U@X0V zJ14});>!=Q+9#ndu;}-df?bGhecHEbp`^X{VgC`)Qn~)b&24uxIkcp#Kp8C2EX&mO ztTE1LmFQ*39FUGq%gIM`%)FW)bwAHaYj%{#`nWh*W;Ei`WMA2nHx#pH_pT3oD) zOW`56d0eP)?C$!vSqRdQ>6uG_F+iPWw1xR-!&4 z?!gF7GK1|}?)x~01ZS09Nv>gxc?d>=lCiX%FFk%rJSxgrXY^wIwff>Dw?iI03;4)B z+Q*|CdBsct@~=WD7g`Wo_V!|f0wwsZa@S{zeN7%&&y9_zGLGMq{b&4HAc_DK)3A(; zeAJDLuu-MCaz~}+yU5Tu&evbkkq@y4#}-T75x1eu-w>X;`Q|b3mnizwIcAvW9=lzr z=Fm`c@?4$wLRZRAnig9%|ImNq(r5%|nOYA=Wk9K{aynW~CLqXsVw}pZ?WqfI`SG~p zbev%8M^>{_{5Ec^$=jMZ=falB(2cD+rVqp*bGa=yavOLBTI2buS9(p+*7*8%Qd*Xb zW}xEX5@Q~if|yS%FQu7Kvw(}UrDLX8H1&kaCwjx+ZRonxA+!%5(bP!kmcMQOr=D!7 zU+^F4r*Qr!RrsnWIqxWtRqcr0(?OIOt04U!pka(|L^FDEp-s1O1ymDD;O-+cvZZ9d zrY^3@j$h&LXsZ&xLV_a5+6G}B_1iv@6}vmK5@^L0x|1a3E69}*}E*IzIN2p3Cy1P zZp}O#)=reXaR{QF1Obh zKCS&KGh3nd%=5wBy6ZX4G3EugTJ_&Ny-?BN!~f7dh>JJFzY|w~75bSoUda6C2jcj- zpT@H<)IT0LK_rM-qgXd)#L`2KUO2uW68wuca^5Fuhi#g zDwIMxha!wkp|by__F)hho==Q8)-m$b6jz&1n(s;zYqrjAst;NSbvU#!Bg-H@$r=1* zg6-?sKQYaknMv)e6}*F@2L7g$b-!iR7bXKor=UVY-K^&b`}xhmhzCpUv{I5uIXq>P z*BlExNUgMO!wx`g7M}4;*!{lT6usx>BXl6_&eFPhhHUGxrLvHJAzwY#BcwO%@c&$Z zS##QCj+xM0kNM<453@`m1f}P%aG(R{$*+AqC?U1$_9A3N^}&`(cNY=h7aAy z&W^O&>gdtNYt{P7m^)O7vT$3q>@^ky@-f+8+n#%VX3gu76a zcb5Yi44J32ev0*D4FXH5pX1$Rm*j(IcTpM)I)Jr^fs0=rL5}sH9MHmcF z^&wlMRkr;7R0Td0uYdZiNdF{>K=^OmV$mKb!s`(Mvd*4-4mrWXb5&ij>qD_!rUOeV zK}^DhS`TbF*=zy3!k1j5Ne&{x#U>SWK=W8!rHMVkXE@KGCE)5#&^&c7vU9mJ;;&Wr zWW8Ly>pgyBi7R`9VQBfjzXS`LZ`D7edUnE!dCLU1kR={wrPT*3idMiylD{VQ^+aIF z;3rS_+5Nf(QlFrKGk3@o>Zf&4eT|f@l>pN0)##K;5i#W+3WSe?h;3ZZk7f!67K%&s zg+l}k;HGRtG<+%SM*KWe)X((nat6zFjq_n66d&?>Vy7Mi_qk=P_va0G@nmR3I=E{L zCS|n>3TZmiAti+@?oALN|7%YzhSJ2bWw<77#lWN2wJ?ug3z5Ia1`c?il?CJ6RVB3L z3Kggk8c(+u?Ej>)zb4<*6}{f2qev6$CWrKW6dThqhSbKrjXnS%R#FRq zzrTF>0ymq1-e-&@0#I18KF=4@6pH5-7D&(%8yXpXYiPqqP7u|+s(Ck*CT#8OOs>K2 zp`Y}VpG;}`7QVnpmi8|iivls?XAAu{TZ#*n~N4*qwV-?Tk|fmb`b(^Fcxa;E2`N6=a=wy^)}-c5yrA10$@2GVTjVE8IM z?2O0KVG6`sy1LZmlCj)Yp?33Kncwmb&szB^sWaJfftSp)HT!$q12>=Q-*M`X*$SJD>= zEx&9tN7~6>7>gH5SD3X#-e3!;-?Yafc*#E>fidz&^w-DoR&FcasoT}kdFRumU?;m; zZV8S%T?}SzTVQdlGg)?eA8UPbqiSVxZM6zp>C_(gXtNCtW(Al}rw>fRxPi|;QoEf; z{iQ}og7!nuP8@Gi3*F1uZrXU5#09IPSDoeGM0jW2ccXJu=@ort)nj}1e| zY#MokbhJ~s)Stc~Wx)Y}quar%I(~{qbsIW!8QV-5 zW8R^ad2fvbnbONN^@Lk$obycZE&8j4S5D*G55wRQKM_5nHkAE`gXXW~@|YNu_c;SY zY@`SFLEyBeiLhfZblUjTr2O9eW1V7I8p1qxV)h2~{-Z?POF$aF`bgdZQ`FQRhayDd zyi#emFa?WE?PD{!K8#UcdYR4#P9wPH%HE1txMqgKdfAv|#VLIo--kWkWRhd0;M|3x zCzE z5Y14+|NRophPvId!f1vMq0rCM*m6eTJF|~~eW^77j0eZSr0#||;IT2f{BtCWXETM^ z+N|XbdD6g>wDH403?c@2LxHU%sKfQ>Y0i0_T4+zJXuN(qr7I zkykWr=3~ib_#qQM(QIG0IxhwY0HoFlYPE2%m3UGl?m&KGtEkIoCMOg5)6_%L+i#q@ zZeqMZQZoQfH$A1JVRRJlC!=zs0OSi+E};7z`N^7@R~LAB-WvVqDGd!guU+1#H7e|w z+mSFdG=%Rh$iB6T2GiF*DPVY-qdjuP`<|mQ)MDTP;6aW%Nw}d`l;<1W@LBr|#5c5T zl&fB)+WLT0B5?U+9|#LuqcEZ&J7Ys+r7W;9Nkx<1p+I?YhEcvEy+khf67HaKE}dBD z$+z~=$nRU$(m9XUetad2GBcH9I)7o=qd&-k(>)gtQ#6-oUK?{d5pvKpu`!Bo&59$( znG`QuB9z@Y20V4FowN?LuREdCcppcEL*8MT*e&3^X%%#r?Qt*OzE;k2XNZyley zDOZw-W91SH)-Lat&-k!MV4_L=t2sUaJ$87;Goy4$C9&paKgW& zT#r^>NMRezGIhiD1g_oS;OCn3G(RYMDK0#M?3OWC2N%oSZ0&>?`p#sRGv@i9$_FQ> zZZhTH3S>?&M5G(am;<-w(4CdT6zGHNx%GhOS?*8kFGmY~`_cP*&U>1FR0i!wWk$UJ z`D>y6%Mf-8?R(h+ctdL*OBf~hPDS6m3uW$M8#p!6A(1=f(kB=4oU`3UB3%P>;EH+P z2uV7*UD2WDBiMa^;l#@G2|V6f|9y(u1+*Jeoc3(f>9#PhGCo&N5!XGu^zCMNRU=tC zHtTc<$(fN$+gX2xjWdM|Y`O~ZIqhktGqXX_rnj6Hh}g5R=2z`%#x?AP0dYM^^!2eK zt9vm*6s%eM4WyP#q5XRlG%vC3^Vk8=x$J6eDY;}x&n(aLwYup1HCZX5t)*1>N}o!* zvB@fZ8Xc+GOG5>Q>`t9{wFtL~Url(UR<;+B$!xpgC|+HD`%WSzCalx&^a+b=)NTGO zsv`3IazX8DEG;=D&Jw(?3z4h$V$yQN%C5)5`y${<*b)X z6~BYhTE(?Ao4#1|dnLCEtmVJS{Hw2-hY4P{<8smG?;RsBZLER0hQcda!#4F-uC9O){#Bt_mm!rP9iw;y_F)9FFua` z+P}Yo`9w&~s7Et2G_?7q1xyI;2H4k`d_2OxEUx3B&yfpcym9gUuoti)b5oL@#N^YB z9gaKJfmgiD4ev=pQW6bp1y{ZyS(E?N*|BZW51G!71nKeN;hNm64~Av_;f*z zt0LdDkS|g$`{Lpd=e{^-H1r_sIDR2)wS9%(dj9tdJq4IYChS|Q=3g_LxaJz#xpjO9rZy(qyu@>e2gkGV}J zwDj8Ig3;V}?e2VwKOM-j3@=R1M&U9C4)jCpjwvhXzbu>@Q2Ch1 zzC}$x4M_zc75*YLxi;w)!bGrpcGkqLSv+j}oKOohjvFpi_$kz{tt>WfiXKrEJ_?yp zh49{O}Dz+HmEVX0e#ZtpEKUn-5*r}%u)pVeDEFtDzOnJ*(M<0I}b$jKP#yMurj z6EAhU!PsULBVzpw(wyGY)VAEm=v;5b?KgnryvDV~$BA4wbES_sbe)rvcR;Aw&RoN{ zhK4B0phLOI?hIz6K@Yy{m{RU4+&v|g|HskF%j?HJNThLE6}NQ--9hrl7xF=5V}U1x;Gjo=jHt}^ z9xC;(n!11dF*w)QvFi^d+H@{fT+cL?|NX9M47`w#&Ox|IkDtd=C!~q5WUMq|Ia!|W z9V}T5)^~>o`c#RhCG~ogaY4$%NBFcF&~+-uI~L_AF~xKPx2I> zNIz>WY45*SMkVqtOU=J~v+857<-84mB#&BfLX}rqvEWO=@Z8W!I!T=9aBSG_@QD<_7no9`{He@w@|;Q39{C4@*!Ntp_FbP zz!qcL1O|pI!B{uXmiy6m4?n1IavoMc=-EA?kn`D-gnD5KW_KjAO%G#Y=!92BEG`G3 zu(E&OP*4EyGo5{tHZyKEowss>>~-CtW*7jdHmZUi$20MprvXZh^! zvll+zb;})c$lKJjBT-udp?Y@x)zi?e8&{a~?Ml@5NTJx&^$a0YCSN0b-2TZ;rFGM= zfU?tZv|#Dnq`}nOysuRL(gD<7S#9^wJ_7PHTb@;ZMUJIj&JJ9bVgF+!F1BE-wVLQRfQ4x$)6<=_T3WJI~H{E5F+!2 zEMw5^->+})11l!%H_x~k3e||GU$+I_DuDok1l#9FB5?+d&aApZ&42FpuqJVZvijk; z_vD!_hHoD_bv}Ea3OVtNuhy{6mg64LIG+lh+o{TqJCHcjVeB}<-QQaaWnPI*>^n>6 z-m4#pJA^RwKfZ3-=_MjQH#=v-cyncW!4HOQK5$(r2gLhG#FGEbZ%aC~pL&zYy5toQ z_W)lSqZ~MOp-4r~qV6B`;yR_t@5tZfTjo) zC+vRCgYMHfx?fWK6=qTKK@A-`T?0S<DrAB$9+(r68$`!)YQQ1I35>}zpycFR!k*IpTl2~fy> z)m>%o%RA=LcIpjLVEzg#^7?+@-L7M7Q&ZPv)NMJzJu~#il{$d#*sjQ6;i~WrUF?*E zik##-O;h4EXN`c1M!7BCYs86tZ;?$WfjpNQEbOONnHUrOjA*DMcc!wB?QN9=F$KAe zqY+;M*F4nyJmE!}3Hp)`X;-Z6Ged`v3U7G1^Xn#(1;lIg@w(LJ-I4>2&nkCMX(2O& z+4BTOv+FKQ4@>#GnfW_>*|rL$)G$JYtXbGZj3X1inf@62f}Zd0vkd{t-tklSKWp@> z1^3IQ;sZ8d(-PhTtg8WyV~;DSug$x4Mwdl$K8$4%f6-vp>3H^mFw+8`B021g634ef z7sup!X4&vNhJum{W$gh$nse+Vnb)hkN5z>^wKr|-X+Ex!qAbzH8#GXK*FXO(a4u1x z6g-y>yH0KRW^V;n6))Ym1i?4K_$Rl7JR3z*I)tqrB$(Wa?dcOt`KkyLbsL2vA@XS)&Pg6!Nz6;dP|^2Cp_9>3?!WSsd(cMin%BQ9arS zy_LI^^edR|ioqE!^MQu>;rt{(YsZ*&XhE(%R&NZfT4WJmP zWN~x6C^7?^@#WS53F06QV@49+CH%TB`~>@QDCEq;p*4Q=UVi4QT$u-46hjx{bWDM8 z7E77`gzzcvq5Ud+fT)>VD8w1TAm_rg`>XH4h7ztJ)@(r{P1RJ712abk%f141OV^~? zlA)mXk?Eb*>8clGQ0reTmZ!Q+s3r-R3Y@Xl|_)~nL@qVT00`p*W3#@%w2)|C6% zRjN?7SN#(z6c2?^4i|hgQK%yQLHe@B@C;&l^((HeR30_ zM}YDT6hrxQJ9r^dvBTu43K_pkz*7u3E^)Fa^gxGZt2i6+P+~~zYh`5?4z&<*7#rV* zzqo*Mq#m&SVzFEPa!P&~2x&jsa1fq}&o#&C1fNg&fDCoOHHr;idYE@cwh(w>7ETFp zL*tJ_dehs0u_F7G?sq7O1vpEzb72mXIV~D8DdFQifNKk1?WcYy=YCF&*mr*dYSc#0 ztvh|;?GkU#zdQ6jOG8M%`IkPhvKqy{e)wx?8dNduU~u}<>zD*2$4TB$)|abXH;c?G zi+(sR1BNN)s8l}o=J$P@2K#ki%6+4oA@aZ7T@Es(ub$2HN9X%^iv%*%Iv}7_f?@Ck#M2+91n!OZ=?h$;K^G!sv^z+DxbTo z?bo;_Hw0FhpM==Hh9H4B*k_W_q5kSLp} zWmX?;6I?nqA@VgMLJ|4|s8Yau2wVg`CnpH9$zuZ`2wJ}Jura;EI{bFPN=vj#epCvW zj-^yN`rN8PnVU&pp3EI-x0wr*EoRQlYFZr=BIEMW z8>gz1VTse~WGs)>zXevbZ!VL`vaLq3V3?gZM@|^tbJ91-g4`qPuVBSVG=c|hl!UER z<_7tXq6on(NT-=CHVMVFWm$XTxzh02JI!CN-7eo7v*p&lr>DVizQJv;ZuhXHAo+8x z@Tm#J^-SlM7<<5KRJ7;749DD^!TkG|6u+|x%*y`0yMiLL#%BN$-d0xA;3dr*{t*52 zaKmr>iSEAYtmGrc*!QTU>@O8xYICss^2I00siRbY^vW89VZU)IH4z*?@PT!Yj#8MnoJ#|3gv|+4@{j1DuTN9zGkpzT z?Rd25Up02SD4q9E2JPd|w+B-ScVNX3Us=J{2OhJ?LHBvU#k+aC8~5zYKr-9BTUeY@ zoxDEaN2Ki8EIstHV^Q__%+bSKZP5FA`hFAt4#pcG2hBmFu(&L8<0g<2)Pz7WL#~uc zTC-r^i59;$yXi+Y({7j?YzXV<P}FYiC140q6GyX2i5~T*w5heF0CHQzQ^uXxQq* z)d3z@TNfLAITQT7Co1k{(h;zH+ae4F1zXOiAC91x+AkJM5)*(q14$7~()gW$Ak9JY zKeJli8mJk4ZaP`?Czj;eiCV2|<6_o3ZkUfPVxAE~n8Ewk5CJu729wzw!ZfC!@lyCDST3T9tBJi%{&?j8#x1gyd z7Cvz4%i=cPK&8XdHatRnw-;}J5>7XSV+^zdN$CVcJmqXr-2IO&EFGCAj#6 z%M4FMT4ZLcOxC3(`Do~38R2#%C|hF&*&`7uwmS%Mcj#Efs?26_@716=&Sau;oTB2U zBCn_A78ljbhCgzGZ>wV}u5#AqT!|DO7%DOMejXeHA0(1QjMc{svCg$ZN73z#0pCXK zr~{ystEki?!Usa3-{)$&y4O2Wp-&bQu`9*~O#%5|qhqiHcaUeHcm5ig2bjj#>&_z2 zAY8d>>HY0o5KQpOchjK5K&tD=pV>X}*Q=*%^l}Ia%r9G3iRM*oYd5|d)oJ6EdwNII z;X}D=Wsy{mjnl1;qdoQZ?(pO@sDl>d)bcTeR1$FKS@x~24Iz!%>prcND;wbc13cnUtw_Z4>&Rr2|pfN>juB)=>uKGZfZnjfuR59WL zMIV7m-r{f;SwhtbM%oCOV%#tZ1&Nl*k!FAM?khloimCSNG1!tYw!5M)>#;AIRc}?r zN@*+$kY+w4Ww`4YUhp=GR*k^Ai4^biV-1%^F3u$DcxeBO-mSY*=4HeCZ#HEaTWFyH zx%JT&a*_j2F&<){XOrm{h|2F9LAIKnmW?5Gj+D0fQr2KIyjqQ2+V$$Z_efa8?aIi8 z(D)@2j?_sW+0_AY&zx4J(Z_3z+Tw#73MwCz$z~-C9nK^ouV?lbqk-gNEG5+S36@ZI!+^g+^kjG=geZPoNqB+3pH1m34J>gYzV+ zMSPD-r$Q--fes#wa=QTsW*@|~zZ9WYxa%2o^3V9j<#2B2-odQ$m)|PSUN3nEZv=O3 zLsKh^fc`BK@mtFwA~PNJ9ndCYAb*Jb>{rsB5uB>e2K&7oH4=?>h_6O z7W{-W9_X8yG7?d7gFiv5n~K(!NdP0?}xuodgSDhn_);#@I#fKINGa>8<4}^78Ybxhd7CkfJwQ zw3|YIZ_#IQTx5cbuvw4i%T%e(Hco~L{`NMK><>*jm`Rb{y07{Zj-6KbDR|TUm*!t) zRC#43YIPt<mcA52x9V9|?V=+kiz8iOHtBxr1 zO1sTuAN6vUWegg%d3w6s?1Fn=b_0csySa2X`MTWAmHGMJ3dE0@jTc1@%3G?*#tsEC z24P5L&Pi-+_RCeM)1%By-wS(*tQ%14x zvl=dL=OOYPhaoc;5p5~nhCX(K)5b#^zuo97GnIq12<@ znv{yrPNrR4GbS3l9na6EY0&9bC;KtP)sW1AaZFU_f(P|fI!;tae>jP@pwem)6#V-P zgjt%H179LVOFZ3=Q(L$#s*vr(#AF5s^REvH*{2w194iunYk7)G6AlrxTz_<44M;m( zD+Q{_q(sL=-%N(M}|MoYkabe9>a zn0xnk%6w<1&REQmYWfmyTafJl?3SD-z;E9ax5aEXgGC^^t!*3k$@A`VB`J=jf367G za%cG9-GkQQ5531C+ED>IAjgO~iGZ@gdr+1gNxYk#AT95$LPOy$!_-g%U+8fNIaR`@ z!_)UT)%TWtH2gKXyB^G-wgF=3v4J3MWnY+gtb-qI>T&ur%YRym+iu)%qf-Bj-?=?< z?;{%W=OnS~$D5YeKYyHUe1TJmZ8bG+=Sh(&K;Tq>`pKMt#|6YSXY;>1)!7 z{Ah6Wo>JH5E|+H32oKPoc}i{P*YYPhO~b0mvOmvkrz0KKbZODvEAQZZ&x;*t)^PPC zEN;h|@!PI4dTZPXkYZhbJ#Z$2!)Fz~A;OWNbAZ?m4yf$fQRriNufLcqVc1@em73u_ zQx;QL^G&$KQ@ho^$JeRnCttYc%ie}%c=W%qLw*+TTA8 zkUIYe*T^=3erU(`G?3kmy@)e(`z7qr`d)bM8{Mi9*QMqnqihATA{InVdw+y{e`t2G zBIo{w^0L6mm^8#}ix0HM7%F079w4>z)-Zb0eAD|hd@R~2*0c+qUkPp#_g1~feH6lY zDt5v@p|{oekv?Gxb3}i4cv`y7*7@q&mEvuVBg&t}VMuRNcMUCei=vsj#l3t*sL}R_ zqdD+sn-9%m1ean#($f7ir1*g5E5PKrMA0>j8BDTdQbzh8z3=SBR{YBRTWp*vZa_4k>LJz-6NMYn5r3zEHeT?X(IplWKw_9t^;G($ z$*-!=eN*`1P$fgDQ+J=k)DNiVyUTCJlOk4Uf_q9t4fSsaCG>JD265*W49*On2Wk1e zdO^W&FrT=;;k$YLa%F)3XUyM%{~F9yIRu({8}xr)_yvB&-C?Cnvy#$^f3|aP_OmkW znVoI_tRcrCT97aH;DgnFhlr=T&kwVQ{_wQ<&NXj&gNPhnzFOl%NJNAXHQDW%kt(&X zf3Wx%XhEfPDxevv4EWDCQ@~7P@sD`yDAxkI!3{p)rYe+u((`R}tmsi;tNXN5!2!ps z!~RoqTw4C98y_Ey0Qwk^urPQhUFiz z^@PZR0RG58 zve!1DXyuB{dD52-fL`7ye#p(i?!UCv(^bhZmAGG3oCww~h84qc-+u(_w_#{y$xsz~ zm4Yd}yO`KaN0mo9EKg>BQ3iRwo25hdi@mF0Y0O8%_EJ`5JakX&aLrM5o2;Al7hZi& zF0NY36*0+@^}p-`r42&qTEbUv8h+-xvA-#v__8`(q)Bd=i#i>_Mkly4U{%%vu@wk= zOviO=FkRwS%zNg*OR}1+MsfUZchR?McAY@|LTI)1*sdMRaK$^@52po{XU%h7!y7qR7zMNchJms8OKgReRL z%NHQD?P1qFE)ntZ2Yew8b@+K?*=*hJ!aX)5Z{$0e-jzQh;Nb=UOu%N@3CssWU5N~! zKhdKL!`1Z?u=qM0*#e5UjAYB?f%+-?I$)B3fz2BD5ED&&s2@hJ!}8TL$F@6RfS?=p z`K4e7sPh2J?vyBGmkdx}j(-t)z*Yw0xn#>{WviEp_W1z{@n~98)y&qGHlsk$4j_-2 z$D9G~3_z$;-n<0@U$9zn8!Pz9UW7AF-^e|8c3fml#sB5~w|? z-4sUvIWsKAJ}ArED|vLtgXKPiDd?LCMFYs&C79lt# zcM?OpZ($lWU0z6!00r=5r1#~gE}SVB^*LiQN+o)F{hE=S`|%~d_XFR{xxY|{O@cBY zQnvB;;SHdW`+Su^Bb>yv+H!_%in6GD)VP&9;(T%i5#j z_6{+G=PBg1P@L`o5zy=_k`~g?+G|$XAJqf#Rgn&gy_LdsjH0~t3$>3pQ#$#)ZZsV= z+^pbl)hr!Qrh%8SvE3e(iEfUO1!`emJayWcd_}qqWRlSJs8Avsg;LUJBUwK_2OeJF zvbWw5h$F6uOKSpHWQjtr22_0>bbw!5b6hI6fqv`|UI5m=azr1rb%5z2LS*UR7>h2g zcwZVx0)(wJ^t?cPyp>`dkedRz0f0Znf^N8q;I4J_S5cs?thtF39S%^;@}(A{)6Ew4 z@G@>s65G1#`xD}j!Rdd_ACwR16O(&vb+S%E7i`wCQ!whpQWARneA(+%89)bzR{e;Q zrs@UL`&jUa%jyP8M$>@+lX1?oQX#?H(v`!F8C{c}PlwHsd<1|yF2W^a6?i4sEZyex zeGd_MfCK$IU`5+`v5umfg6gNRJ$<~X2Iwz^j6xj9L{w>NhO?3cy*k2zj(DiiyXn0m!XWRV{F>nLKz7cnC(y<6y1Q_V2Nd=XCP+lb8&6;rCW2 znKjh^_S1r0!$I+W-R)?EF}P&JrA%Z8gWvOXGR`mN*cT zD96b6UHg4IQmsUJFpY(ZtIL--9~t*tn^^p6DYU93tN|X$K(#=$5nNgU9S4DmhSPQY zaA;1C0eUv77c5gW>0_P4>p&apk=6|arG^Jwh;o0^8>&3M{F?dd;OtlVhs6YUg)1hA zZjs0_YCPr97AWwqYE7A9vF^|)iORR;bz6BaKj}pAq#CAgv`vu=Ti&qLNkIeJ>rwb& zto@vOm7%83$K{F-a5Y*(v;rjmN<#$$R(GT=0{{jmgahXSLH}8$^ zM|nRIHxr8K5Rpcyo~+w;oj;yz*}l)tqOy@aah^BHKpx%M%sd`Yd`Z7x>NMxwkcd30 zJT~BwzoPnnff95W1NOl4Ou34!EABpC=)eCYH$Bw{+P-GCqcXY{bQPF*s){Br4TTk& zH-Q%P=#x({3938J@@w{7`maBU`pwJ(3pUrnUFy5G7xPWVB~JXp=u$Cnt_P11*IQ14 z2PAh{Vffvu_f41)SF1mmz(Ezb)Q!0@3HAz4YLq9jpUxYDk)$JiAx}b$ez_B+5<6zb zWX9-sMlmyl`djo{*fGD1Rno+Z!rb_5zBPy=g*X17S$p>Oago#fm^~}&CLE2(3+VT)YqNc7m9*(7>SU~a^pCR9|kSU1V9oF1Q^OYUbVvkkP` zJx;1)77-PG<+lxZB&g%BuIj;4y~BAin-#I@!@~DN$Pw^QVc+n$uVTC)3ZhT!?oeO4 z!;kLHn8J5uTFIk{0m4sJa@|k2Z9$Clb;=oBDa@9xSr3rAfkVmk@QhL4dW@#5LEK9iAjZMU0s z)7+w?1Lygfi=yvEUx`4T)S)wLM9`J58V2Rs`pt-IZ6%#AcLt>Daq60u=1iqyD%$;G zAi-D8ydR$WpYi$hCgK>HOPeqJ`@x`+`8!`~lk76IpZ8=)`zK_fIZmP0?cXq!PARlZ z@Asfc<`iUhlZ^Ih(l14EY-~06d5fXF0Gb39atANn!})Z1aVxkkSnyz^rVgkj9PuDt*xg>fc_zK>&4uT)qC8g2h(9<`dTfs zg!2;DHjjHWr?~6R9!@CF5Lf+O6KL<#eOso1|g5KkZ6-6+%pOSXJll&2iyppkG}t4wA9JQRC8m18Uqp1 z)=qnW(koP`7*&HtFa67&D{KF@mE;+lojcgA?*#w|o-rq{jhA%uYu~gGio>2D`33N( z+%je0c4Qx%h`db2VX1o}GWMzbp|{fWRq;n1;|M!pZ$1aY!@KP{S(fSpARq= zmCwKHluZm8A7N%%j3aJhxQ-$ny)a8=@PJHgv}t)FSnK}VG$gzjuer@$a!@W)Xy4C< zviQ08>C)xrHV-oUnd$oG=I%foVyBx6`{6LPuWS4JTrA)%Xw>PDA`m_%>2*uB!HFqx5#dv|iUc1y?=1J|u4c@%;4!r$gTna`xNRA=G;$AmhKRP27q~ zD}TIj5iO*{^A807V(wcz0k6|+y_+SFAFbfFl`pBD#?ExX^jr9xOS$`blu$l_q+nWD zb>}Nk`~I=y!el%`?5{uzSi0EW4%jOrqZnreY z#(?@f?NLqAXJXPbU8M|zoN~^Me<-ZEZVMJPle4v%r$PAy6Ry;StV(PWk977^kM+;;q>$!zM)KY=%P zvGbpa_o58|H@0r@7UR4=iv!d+Grd}U|PFYz28)Q5En3_ulfLKv5cfaT-EvJOD*zY59($^ zp31pT|Et)$o^6XV!4Q@34B#39GSq3-d^~)jjOdH8=;`QIXUbaw4)6XQnmIZWt7b@c zSZ8`aZ1!tj-aoS0j#fKlr;WlNTvCV4rz$nv@KnOVjFo9f;JjTF*AUpp$N#`JJki(# z_warcsPWl|K1Ox%s%vY12>3?_G|;s19Y)KKtO51vRGh3!O_yA)s1e8YG2biMMeo1V zc6BpsA4(P5E_3BM0yffBaxyKQo)=j?!&K2_<$2)9jIeM?kSeeuDRDfSoDE_ zBx)_?NQ8*vqfsVjtmT_Obr_jzo86WEI`+WKJit+oX5X3K%EhX;-QkW-K?1Bdbf z8WZvz_NJR4F#6?+xYL`+Uq)dmmS=)2B60aYXGzt=3OcOrf(7 zea-LUQ=PrS<;V9IMD=9s^&SM)XfyGL&s9f!8-AV1saId+`j7)*FG1Io^ei1=^o5huD)U^4)n81s`NfN zn>9EbZYk}|1t&b0l`d1AX(H=Qk+cNQM|Bv(Rq1n#OcZ?=LUuWswSS9-2C;53 zV5u`>+zxuu*_|iij77mc5SOxgo4&8!h-vn+LoXXTJPCYV&&;+W!a{z6;N(F836b=~ zCBxj)nJZ;HYi=$syCzPaXE+~z+0O=V-4~T)g8Re z93`3@Wnswt>uLBL=v+C{K9^^Rah?bj%Q9*}qfYgVbsGr>(c?4cF&W3Dri_1(HcznZ zH#EB~+|Y~a4D}v|-4-X#(8E4`3Qrx>g&1+6CtZD0IcLz*qWLcJ$VJCY)7%gzJSevy zJi>s|K8$4EzaYs?p->suvPI+ZM#%C`n9)qE8Zg0Ea^jS!))bnZtl<&Olr z;0ii6#yOrQ>K#>wy}~dVS4##8A|2|FB>9&AT{pcl4ws%~CsSqCdBtYx)C*p0SJP05 zWiQpR?km3YCTHnzd)+jFy;Tq=a$mkDj;-s$)2$A-M{AhRK-L%)t9LEqac@Q;r*&ic zum0c_vNtyWt8)L`my1DEX8QS9cUI2LY#f|MGc|P;abk8+PNZ*~(*Nt*i)Rm#E@8H&3U16_zq&!lDpLHhom~vC)5H83JliYhUW`tC>FZ43Q^%4={1s$3{v8$q zFXs!#E9@7(u#B|2&sT`uDtDzDbcu7lxk70xi>j2A5*_8&y^>y`5YM^fmyMOMfY9pm^O`Tk}T@VZA8u!TJwggS7?VlgU;NY&_!gSjOBq9N;6Uczv2b14i|BNy(B{lU>K-DGtQV|g}zT=K0@ z)GStqEB&Xur?gh(_{y|QK}g9ub*wnmzB*1+dAdMz}o4$s>OKYA8xmK0HEQ1+jyJwlj; zY_g#VVfQ}Xqo263^)pFH3EQn0TJ4T`Rk9?U4;o6e@UxWC+TXcL1wLXGXfrib#I-NH zdpn~*@MyIP#Fl}TQBi`Z|CCl`37pVC@e%m0Hq)r~M|~r3+5RksuN@TTlsgYwcrg|_ zS*0(mHLMw$IVrfMg@6|#)MP^C@16S4`Gnf#KtC}U44z=koYv#f`T5U1D3oSf>AAXi zPFjRe5X*(CPv4U`;4E)x`E5goc;WCIDT*VN^4&=@^`*`N33M55FVr5->NHYZ+PP!h9)v@Sc4RypU;^M@!D;N?}1fx>~J zEs;qD#FZXa_>U;%sqT&G{;7nGL&N{q0?gcJ+l`0s<^DJ+vUs`olqKU?rn87os2A%{ zNKPz8IF=WqDfdkdMSpDErSsApd^a_v@SU-ue*7f&cSIO%BY*p@_r=)Y%Xm*=zqm=( z^0|?_o?YqbPj-`n(Zbm(_VyZ+6kk(MVS6-`l$1Zm`1$?M-Yofl(<42c!L1YgV0C(K9pz4C_^EqI&)$D>En# z?xU0w`ohRU*Tf!5P#;9?Hg}PQ_|F?N9tkLGPke$XJ`!T?s5O#xj0?h?9gke&pne2ZK_z-sPwy{L)Kd3Kg)H8v7v?Z9jN*9 zn#2WxTUaY2OMpO8>TPl(Q}mpv#OA!XYg909`DjBSDX>>QaMSM*aG*k^ccYIO`8fST5Es-4PgWX zZx2$s%6Yq^9LBq+bq-697up%4qB_-=0F~WZeGN}|U-%3p@}WII6@8}a59ydO!uoR65+k}KDWEdz;J=mbKrX%6%}<< z3+z?W=u_#wyPHek!Sk2o-59;ga*Qb9hRxbO2<3dQLVdpjPVw6*0HOnq%f@oMZyUXl zNlLpdeI3is0h~>yoCB{^hjSBg@L|klbZyCPr3Y~4AGP^hliu#?wsitp(+I#Ge8A;m zKb`!Y6Zi|ZlhzaD0AVvwXMHv5)*6VYb2P8iTRpqw0)5gZr|?wdf_v(fB^>Ez#dmed z(lIicHyEyK6c@tn!(mtp31@$BLSAOBhL!RETG?4`y)>8V1?5OCp0M<6kf~-hYtj!~ zUuxV(YmLvINYG~t7pdM!X?K#zL%cJ$2;14YV&;c!rhMb^k{hG zJ0mTB7a<%osJ3+(NQj6ul}(j7Hw;dNeO)4ucUgF?RljF2j%{l4_3qH7s%cPU;Y)L= zRKB?udecv7th7jLCdW{RrKa3gzw zSK1*bAp%kdXw)%tquWnNgBx^2bvzY!t{cxM;Myi|z6!4i_}AmfWle^%Lqke*(j-!2 z1;qm;^qqR0(vSH%(XGMILUFAZ^fE$`7*D1*;UjuJmxkE6}XaYVF_{yr70f zvUKU)YUr2T6?qposw>Ru>Ra%JXEu|e$yxqj?}>A_I+24YT#H^SAJ@kXS2}M}TqL-z=NC<}BIjJ=&N(xO+4b{hB#-<@HXtxWd6zJo{0`(voGL@bw~! zUlKgC)?=-CG<~7DF(th3yzH6u_`Pn%l#gaT-?{Pbx@YkRr4H6t(=b|dJf1YP7N6Lw zEAEzU&ubOD{32+{)Z{4lD>{@!CS#iAMybZAV!G0GE8P4rdNrivtt0pYfg;=d0jzAJD!AgOqncV-9O4`RxD36|4K%IUn5v9 zkVa^gd{oP#_FYqk2~6hsp|{I8hB<2}HaLG(IB$3!GMkI9Ojp6D+~MD>e@L2NG*-Ng zu(OkJpym22)gxBoLc(CkNK>{j}H&!FTl9;9hLFBuKFdy}RpLK5h(l7PEr-=hL&2h$F9;(!AL%2r%AD zafD;M;MC0r?WO%NzmCA3_Gf~2(j)|tnicd>&j*>tXDXO$?tS_C4%~n81fo#Q(Yv+v zD$N-+VcDreH@iNa30DD7vdsiGY1P zl>FDrPMClMbvx|Y;P$q$kf8J`t_cn4ZPJfVR~FCZ(e9xmumCseze7?&%E2QJ_-SVE z%9T{u!k;A#8;WLst~Qd_6HyMVN|I+7vtZY`_{^8mA;t2C>o2|qN^QNR$iR-LP6~}T zpqqM5p_-Al-Y0$U>*V1PGV}Qd7rsye`70F_hxLntCZ_Ef95tvRQ|xf_CDT#hJ=ZsR z@5hBUAC;WN7V>+n=pP%+IOw^-TAanwPW>+LGD--NhtxK`v%bw{6@~8dR`<|_qaO3v zj-%*P;DngloY$N4qR(QGuXY>d^#Af#a<3|e0_qvFhBW!sPRLf1_G`K>*KgmR$G!yC zG4uB5MwwZOF9M>|O&pVlHnm{_;os6a3=X{wRS%^WV6wWG7*kwbKo6{O=)16Q3G&oU zC9eEze^V(C*UyPu_}tSnjoydy#ER>bXe;eD)z`OswFX^oHW29x!%>e_@z1(8mbMKo z+9`en1wPv^4DDtV*>BHYt}*1-~W(hhZGY%JtiDK1;#R!)lFG>^rD_r~t2buY;Ot z)1QviNoH+%b$N2&J|I^bm35u7n^$c6g>QVfCa&k!4q4iW0~Lb)KF8quX{n2IpO`3H zRf_$itnBl-dK9;|+)rnPozmjKJ*pzoZkwl{1x1mc*JDDXwGrETfQPWKL}o>=e6~_x zRc#Gy|12K8N>4DJ|^0HI?fE_O5(|)`=H_cEb)V?CdlP5hB zYJbEuB;Xzqy-gjEOdv`moP5HC{0mMCiw*j*;2(!mg0lONeSpYm{?|xU8m8c0XkxEd zM>o3l$O9wHl`KY^N)0FJMCJ=4P0b9F+fnO!i|%9UVA~vn**niJmS5c0<^t4uR*%zJ zy7e>Lzj%RUKh-|CZvjZ}CP#qwA*$j5um%);mRyOPrFGh9pYVM1|NLZU32;$PPsM}V ztpPCUf%%$UamS~>&h73zC+F^*sFzb;T|J^oOk|pGIhJwE;7zCpJBLW$-ZQQNext6o z`@OdHoE5KU&rNs5C$02DUZwzp&1&c@U$nOuYKwC2z!eaYF?juTa<7ke^f@)Uy*~tm z{-8^*xM~2-a7WeZ9;1+%eYJbn%zqMwUJ0ivOD2fz@=8hHoE&ec4LI|6p-^HxqqFW8 z$;gK&56RP8e89*`jfo`~#uX+*R2o4^fq6A>F z?MVMRN;&^OBK<>;0iN6S=`~X9Aq>YbEyJvZs83EBaFA~|#(Wq5#N%}OSNS1x?jb3X zk2jRLW_HiMM!A}cZoU~n#S&XD@O)51ChJqG(mgqSCLu2aVTrR+BQPT3&)KJLt*7)} z2e#!wIiCPETvpN`>GGBiGsc?tWh>h7x!R2$^WjDq z?R=vl=DpQju4_8?zBXFJ=mWZNs^k#sjZ*XUB{}GiwPhx=iB`Qv{!Ym6IHjo-HearE zr`uAEG~|W_{a}zxbia8vUrCZUGTW#h{uN)&yNi%kr{)`U_9lJT#w&=bZ{V^#b_FxK zwNYOSSw#NiAYX)q?Ms{R@1fnAu<(VtnfRiWuO~jm+&8W1q8yyr%*9XJby8vEA&OKFi}jlg7JME^(7kSYRf| z5v*?(Z-9@aTi}WGE#mC4t|bOdLFm0idZG7sz@C(lyx^Z3ltn*B=4UUhW9o5;p`TR* zuO;+c5pa-jZ8Du5S&1U2lDOFSG!n5ul>ApRtmL+tmy}HCwOjpioQ#WHMH4T^avYEO zUX?^0&#LJBX>8hiC;BPK<9=A`=m3W&{9roC-h{ok^llEUpV!W@&2IVnm89m;m3?_! z4E(XET=})}lo0>-K~FBT3`_mP{-o%D-i1s{Kd)ZTXjn_*Cs8>xJJrr9TpAx!n}xeA zX&qzNsfI7PlO7R`jZ;)u#MIkfKogV@RX|q6?ms%Ve8Y*YgGU@6RScH;xp*BrBkw-rAwhRGf5JixH){0pV5t42-l=)FjHg=>IVX4wF zemHaE#wV~$<^)7zxe!B+FshO!1jgEzTi@Xd1$)1K@eY(_tJ}zP&7c$A*YSQRn%3_8oY%Jf@ z^Vl)^IDPvIjcTSEC1y3T@J$c>*F^rB_OYVCzCKn`S}=_5XVVmQh56#&2}|h@#$7vg zdDuVE$fh|@USpzIOvd5HR-Z1lfMJT zmUySGD0}iUb^+ijP$+13a7&9*bBd14OT`f*3R3H4M%D(BC~?+Z1{$i?`ugwMZ6RWR zeiHNl3^>4eV?-#={_CC5WJ!F_K4!=D5gDOm11o9K(r`mCQsBD62{lAWK0na z+nfD$-FSikaCIr2qm&V=yPu*M#zCx{$wgBiV`Ul`I2iXpPicIb8$AtBRI}OVvQ&c|YpI4lzv_EXsG?i1;N@2ttzGBuVRwaE_`U$0vyDV^&udQq2e%>RxbnRbt{xnx>F*;9-Bg{SP z;V11C-pRl%&y`SQ-K5q}_G^Z8RWe6Rg4A^?wijSo&+3bg6H9P+;)BQ8oTfvH}P zkhp6kAPcXVO9mv8-YK#+)VkGv)}}(}34krERFz?|l1CI7(m zMxcmj`68Qm;zP_)e(Lzmv`Ea9RdYw(+0BCWah~w%(-Aa_a^cEFI^BvGk05bNz z+v87W-CpMeijDc`j#=cJez81|*oWK{_;#ZrKNC(RwV>kl;0VAbnAl1YMe7UXwJ}I} zQJqb+yn0Y4(b3ZfZ*)+2L*9#Meb!vi$(V5AuHupuvfth;G~N#lEOpB$mR%eC8hY{23|9BWR&R-u zqz}Z~C1AL0_8JhL_&w0D?8H?rfjRv{HXMEuMi#BSqtazix^jYc)U_)>K+Wy&}^@#N+ycc-_lh>>1&Q9~9YK~wzv%Izv-jB0vf(Psj z25lUD@~!0pO5SyAm!i9z6|WY#R@SJ@A!=Yz|WPMC|k{EZ_DFjAk=-gD5Du z533LLMGJX87%jp`qzleWjsJuu2PlS>8?-t=%X&;o`Z(`n>vCantx1!NMXdAn$(@R% z@8Z$=%T`FwrFs`Go75`DA;AIP4Hl`QIn~>l*VVSr^n1IN%9`Tq+VzDv<1+VrftbVj zb9KhB>rHmqI3F^rMwQv)pVN(c(3oG`x1|@Ud9~$Le_id#dG<}9uw~6;&n3Du<1klE z$>7A^^8FO2(m`u+>E5Ndi0WI_*`-133+4L{KnP_qV%N7ysPxMAT+mp@WIazjXuYPl zj%zXB6kWq9XFh5)q6jrGX+CUWoC*Cn!6tor?WoPC@%WFNf@Qlhzr!6Yuu7rnf}F+u zHC6vWKH1Sq2(@oK=j#hClj6diyg_-Fd@EhWa9dwEV=6f5^M&T=z~W4MJvK+d>Nk3? z{3qUcJI$)JB6OY#sK0t;fjoIa+ouT~#sx9Ce+%umulDQDR24OfzxB9jD#RHz?Zv%C zlpC{qDV7aP%l$<_=wk>KD3QZPBg@1Jg&b?_?sHHBE`<@xF#VlFP4}UtD4>= zvR=i?;lvbmHP>=B8M{=O&yzF<$Ppo)=a(|Zqa zsm+^R!LT-V$t+Tp*%teq7(9DQeTtz-$2wX`ud`S8{|@ho01o@Dwsw-6;xMJ+KKBK1 z<{S+Rj;+?t8g~KUDWI;=^XwKlR-Vf0#}`r#UBv3z+~2ngvh5Cr6RGe+k`SDE%($)!^`F&8bp&rPb5Xzyly?}%k3gm74w|M3a(PE1l zXDX=A#m45{igaPH)DJ2CS90_rSRy>fD;jWm6t)+F{fBRpID*Ady^;j2u>brhB@RhNK_Ut@1mbCe} zm-ZoFEW4{{uQTfS+(T*|2LhnPpJur`!9pGLpAt?p?)NIqML5;sA z)%uUFDt`K`9|jeZ-3V!KJmFkw?pUQnyBU2r8VLI~KCrfWLI6QLBL7UD$2GKyhjR$+ z43uRR9chPMf>{2g8>NLZ+qq&S;(^}@KBE5X2B9=lsv-v!){Kk|D*jhKk~}_{bt+pc z&cgbOXq$@nuWayh2P#tyl3CgGsljLncj@9}yUvu*8(}(Vy+PUaqf51)zg!wh+?bc5 zH`2zCU@3sWvh*bwv8((pI>P@YJ9tn%b=da2GH$u7N)A(lrWq-|a|`_%6KRfY)j)$gXatlfkx9Bt_(xngM!pW+byXDI*FM0 z_NvqlUJeyyUL3jvsfMWO_cA>x7I!}c95T?u2{^;rQD>RwS6h4T-`g!> zWiE#lY$BNq#Ea}*1^BhGLfuqtop>v};M!^sW+u@Xl`Ba2zNod}dMOT;I2j#ZFxRbi z|9+t-TC9R!6}J?^MCQ(CTJ0aPS#~+`{P|;Pl51idb~ybJ1si0F zQVwKpbWloY0R+P{;c3qG^^*7>yN6m@uXPK*%xYZn4$hghr{XD_eC!tsZSI>=`wfeb z38OT2XF6(zhl^`sN6+t-n;VZ-EIW9#Lhsq*xU|V(RPb-^}V>ok=m4BQQ+fK1Mqc zA= z(vN_hT)qR(q1RoluudM=$s5Y<_>B#7V0f?Z-%7%_=+%Zri9#jalDMt)(&?B^=~Ilb zHW#y=AGx$F^@4%qDZ0D&(gZ$<*=%ZV_B9ys7jX&N=qkx+T;8Nc4ax3>puxU#shiew z-Cav)3%ujLaI6Qk(1C{e%Ol$0_kAmQVn`S`%HPq zjsMN^4Zatm6BSdDDJC*0GcU{=96AGKQylz7o@-&>sSv%6RVw-p5uf^5O9f(-b@?E? z;%&P&(91L~pB*94Pv{w}JlY6L+eIsne1s&$`Q#sN&+U7BYR$UN*tOE39B&P{7ucSf z5T-=I4mcPJ_Mb?AOht{uFB;e5))%MquEZgES3eh=g5sB^Wu>|ozV7RK`>`)4WH+#j ztG1Y%yY1f8RWha90s@5LniaCqCo9So)%7Gw=MGyY;#NJxC(gB`T+$6ZGC|iZqujx| z-IVrhXd4|8+J`3;!_5rtp62F-V@}+%3GUBjy*f^lY{rs`>@n4Ub@f`!#@qA@(?!=W-I>uaZ!!R#xJMIOR~hL zd-*$pmp5J3R^eF1Hu#61Bt34QNuyC?$CtgH38+RDF~1a^4| z=d~9^V6+tUt>^y2#A$_)o5c62k4*#tgx+IxbInO43nm+|xMfkZau-jkrf7O;Rkei2{nmG1EkC<$UT}NA{j?Hea%JV|1f-Cx|y~UEWnNb|y)PQnTrJ zX%#$ovk*`l+aRvuqD$ABeGMG9Ko-$cp|g0#r=;njlM$q(mOv&Kkd}n)e3gbxNIttD ztaYCZh)S>dzaeW2P6x(Q_edw5aR7KW-?m~&Cus~>`Hghewhr-o4;vA*=F(asZVq#*I%}$Vxj{bk96~JuLvduM_E-U#rd=Hk2E2_IL zN^0}i$C@N+&@pa|LzSs~jYNjz@@_nFchPWm_*}A@eh8xM!AubTz@Pn#hG6&+NM^H) zovP(!BaH^}wNmqjMvG2L}2Lc-v{x!|g&xoniVj z)0Hj7#WCmd)innd$1jd@`BYgRfBi2~eD$NC0XK8$PW=D`z&R0>0Bx* zP(_ttq#&_#{9N>R2Q5UX7?x(e(Y-zlIFg*31$B)yjJ%$b>P{T z*$lqF-WLTDW*F~o0GjPZZl}=DTaDB~u9@Gc2-xov>8-$h=|QCq`O)ONUEi5Iww$=u zdWT$zJ@h10-=Kmo^(6hZvLK!xTN+ubN>m8pLC8B>WGC2py6wC4rdyD_3S*}o)hR$z zh*L)0EI8B^UhfL~(Gltx5k6y6U6-;AC5_gy*7W>!mFKK&6mm50P?tj}u$j2fx?Zs* zXqRZOm-d2iPn5kcxwP;^{a}S{D5y8hndBZ~)P-aKt{>E>dA+hI@`E`aZEYu%Q@2$} zOn0ER9 zpau5n2j)S32J}^xivoY&RU$1t{dW>KU*;H)xVGdz1~v8dWo)I6dig5TE(Kd22S-#& zD$=9d4&LtC6mn^H;Hr$D)itkga#w}_F%6)D9<=Hze8-w2!wY7hj z?YfiMPYDGY|7uXvw{Rr3E}(4r7xZ11M}9NaunAywSA;7YS=Lf4sl8?a_LF%C&tjg) z+M4nRbi|`WUsg0jgLyja(3Im|wMF{U5{i7dt?mqYe= z<wKzCk-I@W{7vJN5qu`U-se$R$@ zFKJ$SMVG-5$_VDXSPI@WwLb)E!w6LvrHO>~Gkza4EaN0AdNZmaVzk4$=JauOV&7n7 zIb82D&TFH_DtB(VBD8s8L^OIybc(08Q`nldS1PM!V8QqEwOV&JbhGa}PIPq5S9-=id*t>0(~l?4Uhnzb5~t^dVY8ER0K zMn5K^j*3C{J-+GZbVr5l;q%_d(2oT%T!8nf05cUAWR>H8%+ z{!`-hTow=;OixnnR&mEE4w0f)?rwdMq~)73on2!J9@&+)(*;MkBxL8YH*Z;@c>D72 zK|NxJeXYikZcYqgv4$osadibe68B^TGq4JeH04Fro$~$63l96kqT}5>TuFA()ATr% zQd{L)9mCbzGOntzPxadi#qj5N zvDb#HvA>S&zo>nc@3S^b&NjkVmB8LoosOL0d7n59`!pDjvQzm83m&wxdkBrSeH2R**yJS-H$UyV>E(2q?9!0jqW=*_0Av_*9$hkDmyQV ze|!||f$>QaPPN@B_YNc~NJ%-1!8oDzd=)4^|Ip#<4NiWU4*)P9x;;m0QU|OV zeM0$|?fZ_I1btXHE@7FWvV1ggVA1X)y5qPgH34X_Y}m#3z;1E@LTu)F;b5O#XbG2I zAjf*vWxo+cf!FCKb`)`RNTri-I^!tC0g~Yj0{^cLoufu=AZ0vWQ~pKOnKcwYxd{Rz zlCbHO`RapAn~%a1Jy86r9IspQZrl0RPO;lrm$6TNF4_%6(EDaExtwqOvesnp-E0uy z&?graaqHmt&dJFVJYReh>^=RNcW!uJvm%;DSe74s$9s`!U4@mYigg(ua+NIe0sF0( zHFhxsRy>`5G|eFv7fzFvLz>jLQ20%CLy`Oif`afA<;CF2?J8SE=l64R)W;t3vp!>+ zl+wUdSG(WH|Fdx4{Ej(L5Sn9aQ==SQeX8kowdQzqiN0Lfn1~J4`*)C&HnwUMQk9ld z{8;G$c?D`m0oEdGujCWZGGYcI?o-;Tex8_0Xvkpd4F+SZxUy9-ASI&Vv>f`tv*_@R zXz)}cBxSM%BrE?2$_)(`e}l7R_SCS-JAOv!dfSjSQjea+(v;6%b4Qh)=Aue6#kO&q zQ|t>PATpkqFR6bcUU60IFLqyPMEfSvs~pSlulglnwj|$7S%8E*{qjY5Ai{ zmE&s)wmwkRurd03M_jaXP_UBuB|Do#5LzjP@L<$RmfhUP0YTGRE~!Z-=dv(0H+U*} zA`8QP7Vug!0CxWR#4AQl>F>B71uEhHXgcetrr-blt0*Wb-Jqht014@EpnynAHzP#4 zyOogc&e5ZhZjkQLjK&RcFr>SGulMJ7zUT1I{s7L-_PXz9T-W1b{%x-F$JsNv%bj7# z;3@MMS|X0pAx(0f_M$(3hh}u-l}HA49ja+qOmgpg(PEz;Cud{aS!&LNYpw~6xbuL> z^8l;znaLAd?xErmQ8CYp$BcJZlH~|%pOd?g|1bwXXHPD|;$FykBG)+ls$*$}EIz<$T=g#4s>$ zyb@9%FY;Yh6c-B~(K&4l_)Zh? zP-FH5*Umi5na~Vcm(#+H2>0mX*YsUnL@Ioq&Iunj+z$y?#V>X64P`G~I##7od!M{M z^ZJo>V=+|nG&F8`7pg_OhG}bQRUPQ=sJ9|QMDXRWpRO{={47VLylZO87SkkqD*KZ_ zByp1?n#D-pf!4$0wQQ=pA1>p)hnj-zR^(z_K*1T%}cWn{C{g>=M7M z-4KEKUbN>$12=WzG%jo1dB&^w2%Ec9ALb@%R&b=sOd2mpEd`n+n3k8@ zsmF5#f|ci&mzPgtnzLJ8K9x{-rE(p=uL52)4Zc(mPKc7Olr$7-;+Q8dx2P`@a9qJ! zV^=}EO&$@u(BhuoG1D|@T`~qkOd8AL%${Ic`hargn^ryt?uA|ENeb?_Se$tD{{DW% zYIOD*woXj~Q}$Cv1HH4pARLAmJp{l0-^ojCPt8ZG`L^ATxevYwwszfb>ihqTl360~ zYG5{bzB)tH^iANY^y+Vcrn6og6q(~EU$DO9+0s{niHEk+J8b|-n`6?29uAPO-cX?@ zRQ!((CPV@HP=H~01Hml!llz%HdK)y2qIj}bV^r5W;7?XLrM!fWg*1CT$Ql4ziiZyz z)qwdOrEPE4#N!)69Ze%1qNLPP11z+zPmAyK6JyURTlaQDQeZ+`1zynfbuygJ**gVR zLDQi<556=q4C2|8IegvsX}}k7rM}TO6+ z%+)oRi}8J=PkG-PfhGA1yU&^&BP0gdAyy89u_?|uwlXrEo1F7J@P}Kv7ad3Pxq8FFDi$y-qf4Hab;r%E~k^-njn!jmW|oZfo>Rr$EDAI!3g7o~{#GGmvVt zNXI_#{Z&DFH|5nt$9hbiiIZL$d@Qkt%cn81WAJyvjeoJ(Y($MekSm<(4iW@~o zj~?05pBNtn6F+z;!*Vm8NJ`5M=J}-il zlmku~VTiE+l!=Ry6_6%w;&%+BjCu-j^MntL2zw-EV^-ye9#n2wmJTdDw!iLJBn+2n z<5T)Qaz*=AfgdF6sOu_ntGHCRu9j`K4%PQZ5%}6>CSc@;M_g_&Eb2>vrs|99X6sZX z1!RUcBU6cn;fQpFs*4hTkcZ9%D}hR%4rWXvfa8KKjS5bES`xXH>VgSsYMc zwsvbHWL-6U*P_Gj`F|File??$u`?7K6s-TM_Ke!xN?d~nSzbDn3v^8%c~-XfS>xgKah*P~@R8UKvF0XU z+H?-8x-uoBEb-sQ#@~EWK+r&L`#vqBLH>d@T5lQY@%Fw}D0Zse>Nv9!){uMXg6Dr* z&Sz>|>_@&oa9}JtqosBO5#JFt6=P)aV2jacnwPg!*p)e5vD6PfXm}R(@ZL4E8tZ{X zoH-NyCrhq*oz16vgjzA))BFmW+%=K9`-NmSBXk@_yJ)gM|D5l$T3l^j_>H9~UPm~Rxr=%}>%s?&aeUgjNC2UuEx)tu9=R=Od^7Ehq4 z1aO(D+K=)#k19SIk%w>iWCuV%K6OGS1NR!pM=!ozS-*Nf-Kw#y>g)iIqBAKih;6Ev z_@iAy$C_QcLiT>%v3O!VsrwXUYz3{pF*e#;$2VEh#OZ6~lE& z&O_)?yY_9Q@<_p3QT#cJoL3{bLX>|G`Y0iP{{6!TY)X^A8?Xa35-;?Io76MsPHPWd zw^4I%#z`0e{h&S};YJI?kV+vfT7S7j6gs}nsgFwBb8Fd?J7i@$9zDS6pUp_5sHh#g zHo`C0ESn^T3@gjJ2mKg+oCN~}-;u8Hm*e5jEw)AYR%Y|%ffY|kF0h`dExyYaW#5i0 z$ZV{Ub8jwkp~qvdY~FjW=A~+&fMo+>`W!`^m5*I7WGCX0U)w?(e>nT6*6T%-X>`na zD6Ly1MPrt8zNw5lmwI;DQIahH>3+%r4>4^t`>~rz2FveJ>9=M7^-!|A1oJ^(uc52{ z5A=xQY)oML;Ehi+-rd2$^VStYKpKO3lu!-WjS-Brab10D0vQD0y9-mGh_XQ-Sz|&V zV!wS1Q7Pj0Pc*OPfzlVKd1Vh;|19jL#T&jPi~sd=@E5UPs2^VBpz09}3L$!C$-4XJL`&GNqYo1Jv*1D|oI4|N8V z+wzFZZ+d7Nt*W-{J_kn}iD?Rat)cb|W~MlHFT_zKd7(ew(U3nBdzB@t;q^M5fP}Sz zwcLZ4u=g2r;;;J^JHe^TI-1v(KQ#oNLNNG2Rly|~w!|pSZ}X??a98@yKGMotz{Vr{ z)Q&Z7t;-ZKBQ*H&=tRdAd+?Bc)=jkZCdVhmLpm$;qPu{<46973w1p(0aWJAOIvm}r zXwV1}?ZFIzXf-drok*x9WyRPe~r| zr0E5!mvSvd98465L@T@MOo3eSXF)>PQzjZ3JZV2#ejW*J)~{YuMb^6%-^d!9-SPe3)Ra7EZ8FWabKusVss}-XR$_O<5 z5>kB5Fh~a4l3vf zj3F$=aV+1MEM)}Q1FH*L-ucF>j;R*ZPt=nomDS3wM-dSq+7Ac~V;Svj5#mO^NubOE zL?_bvIqe_)%H6OWlbRHkf;4!u@R9=fbl}X^&mo}cigsArr!|E9u2h*kC{u_fNf_Qd z$sC${WffwDo~+N97e@pQNt9my8Uw%pIb~R!jEsyj?`u@w4g zpIpLjb*W-IiKFRgFX>&u^{#cVViq}*?MeFe1uNfgR$~rxucn)Zi%}*Y7A?Fo9jL?G zB;q!U4JZTs4KjkqSFt>c9WX1YL?j^HdcDRAx0Ag+p>fF-tG`RAFRl_$80&{Hh1VJ25pBv3!)E+gpnp?Uk943K+GWbB zn*q!!Fe9T=`Pr2uM!l6U*9{${(U5)O@sdEB>-A?kW?xS2k46A1A;3ZKIp~tn=G4-z zcqA^~;TQm5CXF>YKayOOQ$^+O@VzV!blxP-tWUvcm!A8O)3m|;2fc%SEMl`IsP40h zopv0B&J^wzZY8Cleqcs)tL3+4c5$;}7L`jnX3*t8zKKA~qA+M&y;W_X@|_1R;bKv} z`~}2u7Tn{!xZtcdnLlW4R zQj!B7(nqkLsb+Mq)~>(dc)PsowFu0fLpVBVAWGc`ommhoUp0}~?k~XZSgB+^v-{cU2W`4k)KF;z zD}Iuel{jw3&X(M1CVPio z2+{jYer!4gYe9U;x!O-ij@qOU_4EJO_!J#%wxbUK;tLdgo8GEI?Jc5^NlWrJiEwLX z=0P2NoXwenv0UNH?f3HqH@51bBf}0D;UZZk%wpV|F@gEyz3-{Z^{m!2oVx9AlZ<7&}Jx-61roLJ=<`$qX*yP3kKGCHFmTs2r$l+_^Zp{Og z%?|*){hj``#7{2eUh2txaby(_dx&$B_pO{NyA9kwPRhdTk-EGSR+pdTa2f#dfx$w@ zdV8l+Lo0k?SV$xwi6x$*9BX*^)rfV4*sPSwlmJ3yTXCOPM<(G+$dBL^Z`enqq&bUc z3^Ogy{Bnb>0^1DFfFsjmCctA0C>^@G9{Mb?j5TqHU=SG*#F=E-Hf5!3z*V{7S-j=; z-`L;+6>$;Kd4adw<}1n^pwrZ!^%v!%ygi`V`KNHFXm)W1H2C^0HXOKQ=XP8no_64P zP+%L?Bb)-uLekkPmt8XE@Z$o!?ii2!XEO+7%VuN2dzwGt&Y6Jz;9dkAowZ|s$`d^z za=##sERkt&RQUZnB2=)2nGQPq!hlP0&h$tX;p$jXHx+v(>A@5F)QD`b+RF?P91giL zFx!+^qUwq{*7EJcs#S-2t+5#MkG={+I-ML)OYqRCl{9^5cPWc9QCu}V}VDWlc8ruw>K_aM5d$cs!%bp zMl1n{82sL=Jc|VM%vzoysHkq$`=*ZG`Wc^#j=oFdO0C^D23W32n5LqDFH2(r(Sc5~ zj)tDC=L`o6pYQ)_tB4C93=%bJk(%H|BbW%tXP=jHA^)6CSxd(|3f2ssk0K zuiwUgx@dL%sdsA_cyFauivL2PIXhjb++pGm+qG6_#-gZCj2G)J5)eb=>5n=ddc0S+ zU)XhUI>sg>B>d!p(Jyw2M`2-brv79xdxCsay;@Nk2L?IK; zsD|95n3Lhh{7L5elqiyf{fkUg_AoeNx?}{Cle<>tpmu2-sL{|q^L`2Ew5jNs%&a3* zGJWIe^%tVqAhu!Eqi4hRXY`lxzlWw0D`m1z?^GRXRf|8*X?_5!xqk~lb8w-|6@6+w zy4^VlOWHIuoaACs<*p`#wNt(K9|{giZ34aB@9YdmZIBjX4r7gr78^&lmUT$uk+S2J z`v;h!>^GV*`&u2+^KAR_3tu-9=FT*QK%I?VPX`LaI)?AF{qH<)t`Lj>Yo?Dt;y?D| zf9yq|wdRZZAsBoab6O|{AZ-{bUOGI9(ZKmaot-CbKzXMHHaqpSR?{|^s4RWMWR)Y}%WR-0n=SMP$Z z!syZ8}-rernF_R zkvC@l#8DH8>62!rF0y&tx;=dc6H4nQjk2|%O>QjsV;7<7u?Dlj$#lZxA116ddW|1IO5G*BG!TBaf9u9#or6BaoK}3JW6vK!!yalHMI*8%SzaTi6{)! z_I0R=4!+fWyM6Dfc`#)Z(Ev5^!(|M?=O=9*Gq87wsTZt{pEmQb5*315GF*d{;N5p~L== zkSfwb-ruc4^6)DUttsF*UfocI=D9s32kuB48N!e(@FPv0e_!hhYW##vvf#+Rwf z4u{YS(j{OXW=4px500M*ww~>r(g2ft?Fvn%RJOO4Mha_MixJ0TKabJmYZa2&&MXS( zV^0MVl;g7k>e+|o&Y8d_nIx4)6W*Nqr=Tl-(}~($7WVc15{hoOkoyac65G7>p$zhK z8=_i|&Zt%4^+sxu%jC@ak#SWeyj%Do&=y-riJ(83nu*TI+MC7A?hA2Y$CC+GtQJLo zVWyf0lg}P=6Z+JVe-y0rW#!@MpP1o`8jiRjkNWoilo>IM;{9l--%r49am)fcOwGn7 z&_}D(6a1|eKGF%Rw2Mu80=ynImsonqj<+n*{A2SD*S`G@`|c*>9?N}i^+`=^u`@sm z0IGR_SY)A2-Bnq&`O>Puy2fx=*fgt8q2`sMgJP=GFcXREF4=wE5fRcXf#;$!NqVli zLa6EoKm3EgIV~ngrCA|!Dqq{Re3-vuIlH+D1mrWX{qpa#-hU6^WlhYuH;py-HN~c1f7>MJ(bZQh*YMG3 zm%hC60n1Diw5C1m{i+>3&P=$#=0?Z6dFs?0c@*hv9uN_2;7MT_Jg$8`0uMRZ+e$Dc&6q%I#Wb&H>wjHU4S(64KJwknV!MCFSSE8&%RKV@uVzS*VXr(ow=QR2 z=i;yydxu{qboYy9tXo*CLd~=UuV-Op%vsrv-uPP*qs6>E($Z6g#2QzV!!xq)6Fb3 zN(A)QfsU^6s&kjhbxb`5hr2Y?+EV${Xm*w?B`L-!b2vmJTbH5YVk@%a_u4GykO~!H9oChs(){Ox3j}R?G&nJM92?m4B zudNLLIT%0wLm&?f3_L9AXbmv$@xbx4+8(LQ2g9IheCCcHxXPF?@4K~cztFTbv^1R( zgT!l`6)S!WV`fsx@Bdwcd^Pst`im}p0HuO=CQ&E**p4?F4w;{upFl^>ZNb5GH&ZYv zg(fKTbC=xZ&!boJ84WRszJuU$|H*C(x&7?)2;aHk`kAC7Qp@{cMi()RbHln8Sa~J< zj0Tx>RH2(LH$>Q8%u=*y1W9B{e<5-Nlu6_JSJV=T$H{lIf?thc2U8724m}+(5lYXn zMIJV&szaUF^jVe{90fx)MDqs|>D#kIDpvBH#;z9LwiTT)%Zq|mv+{Px)*9{?rBpwv1r4LA4L zSJ{$Kr3de(zhd+DO**sHD{)tSY{GI{2UZIYu(igtgOKC$VZS;5lD%W=k$>5%4owCr zJsU3ZgMOkbarDy&NWW5${6G!MVj|Wh{g8)6Xo{U9N9#~8wM2e%8Gf93mDx>wTLn$P z{V4da;M;fe7ppE#(e$*`{OBqr93%ay#5Ikyx(_T3-dW%4a1Y7G*n51$m|p=^5H6I5!Z1xUN-0GHTK{s)Xd0x_ySq@fvXQ^6WKB?y{$wqBBIRi zMJ@3KO^NQ?c(kjv`Nmz`iX5vVRa$t8k6^KKEh)lLqp7siAzSl?i#(O3H`eWM<1tZ_kP#NM(5{PEHBtb zYFFI!9J&}#vLF9*YZao%5^dp828)XiOimKtT>zf$|D_#5?+@AkmsAJLG5gSkU zgqN1Fme#x;2M>hvSF?WpDgEC~d{3P}7Y9$v0)3a;eR1}Eb`08X=L8*GoFYwtMPF^# z!U8pLev=CW?Ogfm6x7RM$}|t-z@RHJL`YjwXF@|d^TF4%A*PM_kRypc+ddWA-zqHe zNA?XcpSh#ojuS|$G!uDAkb$Hvo?f%8f4;Lmss6)WrkPM!dCl)(sb2c`*`EVdT@424 zmov-G*D*43TsOY$hWVvzqu**(xU(tISdsKLnjHxPRR4LG+GB?S`hnPqY3fnkiGS^5y!LrbXVMVCLK! zdQ|qN`(kDAkJ%m%oq^n0%hS&8=v&=pV^`AI#>FDua&?p9>WUf}P?2>!(P zan1Z}cd7!GU$Fuj6FHiHkW+9Ox^z|c=4Hi0$yuGO5ES`<%yqy~Xw9cnLA`2uMDW>T zf35dQ+u07Y^+rbz{goHKQ;46o4u3s^`OKr3xap1u^UXk_8hh4x(e){0G7C5fe#c@V z?!Rq_Z9@NxEbWJ<{L z%eQ_8H%xjm zMbUvST3&={`R}pkOl@K(##`;!ECXbiw{}Xc_*}!64-r4P@8^?dsriK6=~ zXn=S*QgxNT5Isy(Mp}~jf{y3b6$Y3RD){nY)W)S;-8u?up&Tn8631G)iaB{Ldg5UMl|+ z8UG+4(zE|eNhuoGa01M$?nReCMkPm6=>Ai=?apxLQuZC_Fc*Db za4tq(?RKYDBpI~YCB8WnUh9VMRv8qRRnQ;m{9@p+``@XHm7V%G7$HhuAW-Ci9s_3xgs^8^+Z>6eU*g6`lsR?cIf|k`<8jt7P zTmiJ)pB78Ts|@G$$3j^t^o{g^eL4~HBFYu&)&sjWhpksjR7%@TEwfSo%(f>x%4!A| zcS?CdtE?3|Yn4-}mASK$^NoF!g?fss%E%;o((8<)1sy6CO*Z}VtmJMi16T?Aq_!bt z%H73o4rX!KRmtAkVA|kP*zjaGyN2VTJO2-~rAwL>WcRr>qOfvjBOCsKG=)6mvlgLN z**hH{M0Nk5A#SlUtws2S+9L1Lqs+SInu2fC__&@QG zd!QTKO;hNVY%dpkz!0Z6kW518Gxy3Ccd`>#Y0HO0Of`k%r|+4_!=22){UYkgnZoh9 zyVCE_R|hcSO|9TDs(Wnn3Nt^D7s}mt?py3mD_;)alqax?C z@P5%n=xs*8u4~G!e66Kg_;;G;a}zZumgMG3P*fv?tHJt+4AB8VX+i$S9{I0qmA}V&`S5sSPc8g2ko4{pI5M0HEA2$ITOXnsq4GIj2&jv1gMceDsK!(h|CXv8B3U0K()@FI#KTO}0f6sM_o~p-y5_??E zoR;Ul)d-nx($YKQ7nG2yI|h(*3i)eJJox#bpgUk+r+t{==v?04@&1M@=CEOR=+DS_+``^$y~NyFcd zBjEM#$Mt$Q*o?}(6V555A6{@YCpS37z~#+SHM3^i)gfw^mbMNV9z~`v=mC554kL+N z|G=PQc>xRUhRX6I?nR@IZN>qt+frP8_QCAv%B#||Dv`wZ4NA6zNrlUNFrP$jSoyaA zx&h_odKvR=bIk|S8{~$=RX}m$GjK#}ID_~cQ-D)R>ls!ljP6@su}Pw?$6*cp>>jRW zfI!xAfn%HjdxM9Qn+S@U=klReOpW?=qJxHT{%o^qo%!Zt=q8QDQBBgVoR*cnE`uG` zgidmlOZLu*E=H?YcvxSt@~>`*L2=FJ&4xw$nZrbXwkRFne&ckCw~;3uePbm%a{hJ) zp2TY<;#RM4xPtSs$rl)Gxw~0LYT~#)SRy*gtWA8oRnTsAZ!Yy9Kp`MP8 zJb8%fJ#HI-FSdC;bvkfbZ<^}pSL$uqN{53sMSS;{j)P3nzs)}IExUgHO*6Ta;KN;F zv*Q!|&ET1lc^1#a;RxV+ViwR-RJ5ma8$xOMWlbehOEgwiGf3_C`XgXRqFOLg zGrI2BfQgy%jQ*NJJ6+J7vaZ%{CC4%+tP3_;nlXRtU+)!o+Im>K*?cAHki=!R=GML| zvVGBP`O~zg?PcQDaD=Iv2D5) zl@{@rd_g_Pm*7wqjP=<#`W<~2_(X91;T<`{d?KZzcv_vC_Xknbr83lh?nXq=d1@fX zM*&$`S{lk3Q}TW;dJyrWcK-M7hWgIs_Lci#J!R1FPxaYYNdP!o$Q8YL;w+kR84wiF zkjNqt54JPUbo2VTt_G&EuT@F;CXxcoPBng>|1&&yU-nZ%T5Rp;+Fd{orKBRAIBvCt zmuZ$RQ%=fCt<=Bof)nk_)4D(WWP~o+{j=DIrwB}jt>0zeCD`v%ZHFJn_8{;!$E;!?`b7W&%fOs7R8&%o(Q`6`jeM* zD)dJE0Y5YH-A$b>?GJYL?3qX`J&5zTZ3~z*K^p$IlTUi!h8P7HYTrb5d4u;D;)Vbr4FI`sw1Jt-r8eA98%JDFt> ze+Q&NL=EA2MgN~s*SvV{c*`nPO2&jnR!KNyCXObhHSSpqNpm_8=^ZA*C2lNjY(O*$ ze0wr|akW!55=K|hbA7&VTB{Saktxe(VE!oP9n8Rcu}iV3={cUb2wkH9F|1J=pSDlYQzt&Y(~^67 z<0ZElhR6qi|5nKD0)_$$T#!d0K6h1~@VC0Sn*$NF1Y~xfQtV{+376%IjE^EJF-`j@ z4>zv~NCIJj9R+wxRMfv_9}fQxzj<&4jAcJv1>Nlc7%xfD%(>hEhp|%+u}{;44VFMB ztM8ZcPmSTyQ~S4mqzyYBSrDZGrT<|f6UA#x>y@jHqc_r{az|v*u1yUpVo3(mS^lUq zaeL%Hh{Xv+QEv)5(k*gqTO1YM=%4oWnT<(`v8`%Cj<(#a~Uhhq=iyZT)-?oq`!magU!VG1XJuU z$M)93WrPT~bN`CGJ%+esx#a?cO@FiF+tg2Kv9}pxSE%jKmxdz_X>b4FL8iRD=-YOv z?>13h*m`H9vHMN)g?Rg)-Q}{!cMn<=hVN_ydc(T;o$otX7aD3Z0{sUr6H+|_{6 zOYZMeXt=U(KAmOSrYLdw$TDe|` zwxzwNfD5_Dyj%uC!J?OJ{1#jXX#LS%4~~PuoR$^)*;*9Q%ZxdtH zT2=O`XfV_2&JC)Q2b+xZJ;TrzEstN48n$zP=iSQXB+?W-YBq1X`?hT-Mei!W*Q;_A z&8se~hXS;O|#=mKmp%xzM8+Bw6+QcZO@v$C~}S(`hvx zcM1YiJe2w5exG%}DP`?AK>F=p!aG<_;4?bv7s{L-)fDtWqg18hBJ#xRuUXwEzaD** znM$}#ckexQj8yYDmXawddzS`JEMFVB9(4BOLbGF`!uZZoqLhW&lxe8ns=k{XJzuc? zp?ALJx%ZoeP@l;0!w_5Y($^82dZx}Fz779v+BNy8d0_TVc=Nd<%X9aC+2iO`>CUJ6=d4Bf25#qJ8bU{UTrdDnEYXJ#e&jZb5;R zKlER9iV5+{jf9afVqX$hL&T)3;yU9%;5_iC&zv@|OL?tC-atMJpbtNbfL z!cHEN?ENg!fFt@w(`khEv~7oAkL_>tNocOn&vCEA%q9HQk?D8pLes7*7L94R++Vdo z5j&?XP;0@qVa14cef`-Szy0zEz)&s9Q(a3Uh# zq0@z&X++)!%M4Z6ymRf?>gufs*J=9Q14MT#Q{**sk}h}GbJ4^%G`ck2NFe%VoHyDP zs+Lz)`usW>$(wm{{|L<9YHu^{GN;^x6B75RG_$F`et%ofO(%0Mpr{tDPD#kmg3QJv z$4Clk<}L!lncKq&=$zYR64xH%@Q^NWlYP_hj~@k|(b1F$?Q+d(tARd74gSp3mzQE$ zO2INxl-oRSzSXB{X=sRn!O?Q9fTso^B=Rj_gm#=9KrjDI9(=^UZ+Dnq+1SV%e3-8W``bv+6~-=H68|2dbtT?khfQ9nONdy zPq3!8$@;zK)vcR@OI*oEf^?)l-tY#orig;h*pJ7Pe81NG!%Sw?2vRzfA>Q4nv zIb7pddTO-;?*jYHrm}oS=0of9+bM1by<22D5)Gr?T%y@~w$443LT_amC&Y~%xuA$z z0|a?B?0)y;=utj^=NNEned{DAjA`NQIL_LaLJ$b}eRER2W~993)Q^=B0(+`ME%OJl z65spJvQ-)@sQjN608gm3GNM5gGQ{b~ywo>u?Se6l+#I`nTk9SW115~HeGD_)EJVwa zPG+zK9rUVl8ht?kQsp>kj`z^{QE<~x6!@_#p=n)9rOXq1)HUcX-_RIIVwu$E%USF9 zF%s8pgZ)6Kk3Q0JOD!ef(I6{cACpOt`PdGCj|Wn3Oj=j^0eJg$-Wd!w#R$Rr+c9X@ z7y%gX+}+)o3|~Vd&MJvm8&7VfyocT>&*l-BM91~5#50YlA*kFPIR4sD>v?nuxxz-M zE|tfds*u$H>;F*Ze)-`2^lhR)Mhh)&?-%8;-Ki8lyBtJ%#B!YnVfG_u=q*d+8HSy( znF`)#9dr3DHn%TVJsOifjA8nzRxB;E%{oys0g|gF1X(`%j+V zoBVi2jP5x)tY_L%zgI@D&>NV`JoZ?0_8LW+gQ*6b8Iz9w9LC-#U*bGTmN(rCz6-wb z#(e7cjK=Fq*o>Yjpyh*PUrD8IA$Y;%rQi@>Av!s@jL5o+h_w1NEb{~!Vm+Gc%Mo32 zudfNh+d~*$ez?dSQtv%wkFmhBTv`ad#=ox|a8VSKUpTs0LvM`joB0PQwtNLcDItN< z<1>_ApPUOAhE6#5oo|%7w%&b$X5Ff2O%V=fKQ}*F+DuTGWXTWg**O=2UuInIzfwyDUE|}WwvKi`gR4C! zx&(2d2EUA&`!vF%3kB{L-zlM;(Vd4qZ3Nq6*@*)AymuHyY@($$eMTMdmU z0d|i}1#xKy(au~bOneG8Yg*^_iz@xUV5t?8e^&KkWF%DNC7A?H#0 zCKg|>utpkUH4J;#C@pSYtsQMq0shR`P^MLI`Tg;0tVCSdPG=*+!3PnDP$~D&;4d^^ zX+X@xbeg{3{wy`1T`I{K1Rbb(guvHMkEgXQ=sG{qTqrS|RpGh{CU@u!#t7w4rK^7A z%u%}-jTCTn9FfhLnzUE{jF0{9huxCEw`95*ZT0M+-QnMhWY5f*mmBHc-Bvd9G^chk z5T|Gn6PUJ=%3V4>scb$Zdw7IL&%)+A95F6Gmi6>>3U`4|w2AtJOF zO4QMs1ao-WANq2r*!-QjKAyHAccFJi5h#M7x7G;#@oCwgp?epP!F7dll@B}ayOmn; z!moz+48$44rab|VU;saMk_(Lm_viB#1|?UdzJ*1x@?*UHl2T(q21-~7#6T-tT;Knw zj%u^oS19 z5s^Of$_%Q+YFl#6HI)LJ2Ay5|>cmpuv!xP`TTCXl{3ZF zx$@Fiiw&8fj&=jE8W@kKe9*ZqxsX^=EE6ST-$}44jIWra}6ZI{Q^pY0} zEguel{yEWBe8Q!RKiysf+F$GBI+wSf(8{}eX+H#c4w-VF6k~N4A>Z8IF6sT!^7k%| zV#hZ(_$o8_gU_a%RN@nzOSX;&Aj5=v3D5YLfkz-@rqgS>Nw{})tjjaXmxVFQI42tu zhaMa(g1=&OQ;6U8$0T@m$KXm8vX7L!w$-3;Duhr*Nb_Ag+X!R`?L`Mu1jwE&*)<+s zTxkE@K72wenEJFzp(Em68tX8C(m~}sUX$bdM7w?+F=6wFUT}4~_-VyOQZ=1x$pxgX zf^^Qs;CNR5LWE}Vb%>fHHr|X!fHB2@8l?($q4@>P2UOry(p}kK*kMa0`_N-#6LPYi8c%!`fJu2`ekCt<=qWH3 z(V*M*@s|1hYp}{Bv8&K2;dU455k~(nd5w0G&ljI=Je%}!o4HPk5ODHF#ZF7!u~wNz zo9{Ik$Xpr8gPoK<>leNa3%J#08%B#EeV>Cb{Nxk=sm!3FDdi4sp z|FAnU}pJm4IgWLdVgnLVJ$9 z`z)Oa9W%F61a>mQT3x-t_?)BcKchlDPB9v7S8(_Bv8D6PbeA^6h|epR!2BZaHh=Yx z^=nI7%Qfxt7j$umrioWxVH9j|lJOb~+iGnx&*Mv6@zHjkkfJq^G78ewKfXbF7&?$p z3A?QwaK@Yix+z4YvgpVhXWQh@GJnjI!}fkAvF<>d%mYpc)Gct_yX}Q2Ji%^@$h@s9 z^OfnFnDp1mAo5_t}7Qa-(pHaJPE6C6JrLigR3rmbiT^)Jh;s&Ee%&#<4BMZxUo3AJpG$A|e1Rm~3nwr6AeCzRJi~Do7|q5_sjh1GaClk9FRK|3 zsVuwJRv5=OGHIulxpFE@^$Q)-GM*b)SX;_JCK7ya#`hAQy6*^J&Xvz=nzM>lU@_3k z;LO^KG=aco{}pym5+y#a#+N$TNjEkvHm%iZ@EPvxY|&kt$;1 zB|MLDkj!h>VhcE)VD_9pyd7cTLYPCpc5DoIfQ(>9OzA7Q>sF(_o6EJ}MpoaNaJflt zEzw!iv`vEHHACvTYs;XPdq-XtYJP@&18-&I@}LzZGB$l$aU48S^j8L&>S-GS^;MIZ z_Aek}qs{RSt*YF~vmUtnWu&gJhd5>3{~a(|WN9M6cn#gaYGi@KMhP@DG)x}$etb)ahD(oxu4tudr|BqsN2{bJ5E zc4NF52r@rAgK>uhYSMQP=pTU50eebuv|L(qYRw1*lk zn@YtoZ6wNpNqNXfimiKrk_Gcg>FZPMnn^T2?|NM)$^ftGjiP-WP0r(nD{Ifpav3>- zH}Db;vw1{`EynYwZHz}p{e_Q1^`yINlU?T2h@WCpzCq4g2k+m9%W+#RoPQ(k$eN0T z`)o9&r_~QP1t9~FyUorp2%t8pUfVZqZH_6jG_7Cm{pJiLlJv*;o#bDb-~V&}(mgp~YVRA-;3xZF1;@`Ty5U4gg;|Xy!B#zfr0%>@F1_?=t)$Hok-SkO z`W31dLD`+Vqk0t7qp7j}$0vLr_<;YF_ZQagi%6e4_)U%HK@XPsdN|)ikMk@w(34wy zZ9ya;L_B|bWYlET_(zNLFMue9jxJj&^P{`6vz1^LEob3taI~|OsNWmO|3}kVhBeu^ zZTvB?@DY(1AfX^7$mk9g=@Jo9DJ4a6z+k}GY+}G9q+yhdP*Q0&>1I++S~g&W4918t z>b;-;alGI7!UuM+`@XL8`km)_5805ok!$rZ$!kHznZ}t&P=`7xUk!pY>v*#y^Q%tH zKcVGu!`mD4&O$7%mV^~li*)LJHT~#e{;eaMKlkh6-C~DZhSRxvuD61WLB&7T;oAT8 zEDg;jg;4w5DzSfl{g#=n9+&=4HULtJY?#)tPsn@IYx1QbrT}ND9#iplE$oUi>G}j#w6qC>aL-YKiH@V6 z_7Amzv{Y+;ar+^V$~vo^DLfjZg!S@5&lz$=pf@~mQ$rR9perYKsyDKC+TfxbSsnk%=o4ax$m8aV{GM7mu!zNozs2i!pdtk>QD8d9NZ<&4tdnjHZ>^J-N!AiNM96&ekT@l>@~ zR9#AxT^BxjcKz|A)CWsW9XHd@ZhvAX!P$LVi!Zn=>%!vDp;5TEem@>t!0!_ei}lJK znxkg{!&01z?+j;pra2Y{+fzUK!*-POyE#%qJgP)!!nZTWXY!uOoL+?$=mDNF6{*oV z`o@UJMW$J>tguKTmFmP<3-i-1)(p&~!U7_MmJ1N&hIlpYeU{AWMDL z`-H_0PO1^Um=%*`H6+2cM*^!#gkXys^$ zgbB89pId03OVo_aPSWko-?eC{)0rnO1mCw|^Swo7x568qzW zJ9ZP+itE*mUzUw7T*8dJy4AQ?N26t(;ZIbHiRqdmQZ%8J)&$T9_E>~uq7EigfWwSN-E7vYK z{@BAa5Tm>|?4aRr7?!+$jqQp9wtk~yJwWcx&gJsNAGJwu72=Pn0~lyaR>N#88m;kJ zLjKgM>E8fa$n;C0262U|hyRq^m=7;Fk;M}%EdTzaN?URPP)ZNAA>Gi5IJJdYTg!qdIX#;Uw7mzJ^bK&pG>n2b-~{t*@qwDu-PZ_ zA9_F$U0K=1i?4-f9eWnM(woW5X9;~6=x_O^h9Ua;OZdMZz?bVxSHT{0J>#aqo3&oV zD@aV9=qaIAVRFxVo;U(RK|m5FuU1y_{Pm!~iP(-kaYIvRQ!Uu&!>vgGo zHVy~C7#9`dYaMIho<7{wkfNt>(RAtYDnjhk7|&0un#kP{d%aq_&i!5A{B$CXjycu@ z_NrqQ#NGn2a(brAzd3r^2Lu*$0CYt(z;|Gd^N~E&C2@;^k=WgRL<;PirDL4w)cUSm z2Af6@(B1S%R{!VzNx!LHpra2Y}-6?&MuB&JUvi@9PiJ3?7tS1Nyebi34 zBkKA|I>qPmbn59oFB|UugxNH|=l+p{+2VpXR44&RzO;ny;jgBd0sLaIW3`h)n_v{% zl-SGHci&&S`SDqTIb2$!gCs=Dc~NO6Q=Z^xJtnTYU82CH02yj5D~(6z=be}vXRR?j zwf$Mmjgdgzxvd-SuX4-6jZ`On$?sT?KH3b`;?xIV$;}HUv=49eWpI{m0zvj7=qp`m z2==x1h%%d=2&)F$@Rx#b>{0qprRmpVcB9Ie7BisCsj;txPG%POm&^AJ-x0k}fSOf_ z!tUF!vwxZzemp{hV)DxJN`*@heM8+{B&z8$A1xMa$ZiuJ|BInCtX&=>Gp{m;(kxSZ z5aD`+c^349>~s!gz_9PQ{%!~~xnu*VZ!j24LUUBn3|KmXI9HdBfl(QNbn@`l{h#*_ z+OLR-N_e)WxTJQRQ6GP|(TIC4_YpkvQ)eMH6TQw4vX2x|T5;PAE57>uHfC96rz6qy zang_0M`C0;+k_$VQ#V9Sxn-BF?zDf^1 zfV_{EXvZhzM$U1e?Ou^d#q=ClG>coALKN$Y>yiH9T93&g6?KASzap|bU}%f}Jf&>n zla}L7sw`W5qjQ*oEN(9_ccpQ#s4273Pp9-nteOwFOP_K+s9D?S4Vczddzg@j`uAo* z{LJ$^;N`{hcek%kiZtgFg{%HaS5Ny!;g?9sET@}Wqb))plkF@vJ+&L)kX-5mxzB#0 z<3J~r96qyE5yOU!H^xZD*FXK*n}-bqy#Ke3DE{@*IF#2FXH`dj=+y_-x|OCxs2qAV zR(?x?*VC0%-CJQpd---&(drX9;k8&qfY4iJoLrI1T?CFvT8)vw=VA9b=l|VBg$#s9 zI5n|<3`qtyy~gRX%)vX1j`ew0@T0A|)L1ns5?XetJUT}&cu}KW>gJC3WX%$kc|T*I zu)E+{g4RL#QO2?QOjC$L6E$yjzY%cVt|O24KRa@b=wHlG;zsE;h3)#ZJ5x*Vr$p8y z2rNic!PC0FHJLl$@pz#YxN;1 z5_7xkiL`jwdZ?x9{PNi}v$@V$=}uR>oBZc4&32~@rEj<&7;5~WJlPn4Ktr#ne44Ie zWAV-Uv*KZ8ZGF%BUlyN=@GZHJiLblMiam>j13?enr$s`;`tME(e zzY`)OGBujAH)=ga0%$;}8 zAfnyq{t|((aO070Qy8;x+bZNwjP#_4hjnso-4aP}f%O%I^komkbd-A*D4epQnl1hL zu*vdoRV{M<|7rS`@Q#*?hbygA!c}+k_-0tI7fWs&~-obcv8f*2KSkS=>F5;u`R5#rrb*D`C-b?F&h!@q>IQ zji>|8li0K}cNYE7X4I9_RQ_|yB+(4429*D;qUhRkPMwvF_1F^Qu%wLSHw9$9MNy{r z|Hr#H9&|XiAMdUo*(;g_8!^C6)i~fr!5bXRMvDOIZ7ZjJ^0W2e`)lPSV0!@Gm*l+= zp8z{z0R0dBO`ceZmG9$B*DR6X8_0)a_=jt9aulWU@L%GzqCdN=bTGUfN!sU}-= zfh%*SFH2JOP+u%8Eb`xrh`vw|nDbX(z}$-oX1HiB-*F|zqBB9|MUJ;3)iJ|m=Rh|< zlIlb##6?mAZuLWAb|!YzWj6JisNnYihjN|=v&K%V<6|W<2GdNoL2K&h zpt;}J*V48-G+QE=sYk_=XTpCu&grq3J%w?@o%i^K$mKPF5G==|a>J`8_`OB9=hIg| z`EQ7<1RLvE`ns!U29T#f^bW&E-#4h`yI1fP_v?3`a4+0o?`dWRO_#3b{k!+@FzUmb z#DfV%|Vmy2?Vd>>3Dys#q?yp#Vt~*IH!=?sHEfL0$*_RSO30qN}Klw#P)b|p@y_GXyy91Lj z8mS|)wkROO4Yr28@P4I1kn0ld^!Yi1_du{%P$2Va$WxZ0BnvLh^SeoJ0qG|@)^Yc4 zHtpoem9p3Cn^EU^5S*ge9VobytsfYtXw^hG{zJb zf1ESB&mFsT6*>X$!$WP>$Eis4g#sWa2l}S@>^^^Pk-#2 zEQ+bXb$>g+Wjl7(5Op-lrXt4N_sYz}7E?!6bx3KU<}l%Zr+kOB$_%PPy2YQtZ!iK+ zim15s#JP4PJ(=n|DBj|rwEdQQn>f3tv5=*1ubj&K<(*1KvG@&U2qsn9T((q1@}am>W;!#XD8) z3Bx-sTabexi^6GWQz^0&=9OlV{ateAhK$`{7UtYYlECxlIm|-oE8^xO{pECgSw@qG zW~bd7lr|?+UyQYO;+FOU5y#j7d$q4Vv1`h&}nd6tPU4vo(h+lZaXO2Z+au1C`X!s8lMqgPF&D}d-a}v9*n@6 z=dpD&bcyF9;Fc>^Ov2W-k;<;p>9;Czx=nK8M4jOMB0ZuwrZ7SdFz9@LNaY}m)&Pr#l@=J ztTvTZAT9GHnjgg8)mXUQkhlL6UYIUr$F_5*Ek<8@>~g4X{-E;=OsI|Ruhjk;_rFzg zRV4-ks0;m&PXi+!8A^O6U83bC@p9~~A*&OdF>l^B`tM06GI_O&M-`ej)4XOv&3oR( zSe%Yvb|+Yu{ZV*oswQpP$qZjXH~yHHy<)@LulUDG_UG$DAAk7pAM@C*ef#VwnoHH! z)epo|%PPaVQEdR;Ma?(;*+aXzCOIQM9Vy;b%9xx?!eu4st(YKord=;_Y^M+mRL4kF z*#QR2$==td-dTjZHnfJ!hD7zm0OBimb3Q~}2sj_N|7XkA*&iqLDqsURz&06?HPHZ_ ziTST&{?A#RNaAb=uUSBJjVH+$u`|LLIo?A?b#+l-+eP?b?EkX>S?ir_NJbmO_jvzU zh6-fchWX^9#DE{jM@P9xckhu7ry+4flI+-d^*5-1&t=1Ks5c%d!+Oz*^~JZ>#*c2s z>xO+&>rMMNSI~tN0q@ZslMn0E`xwd7BN!3^H=#I^A6P7hSjaZU&E3sBo7WnP7i;m> z4F6c@kyjdVqq>uLmj;M$Ux=%vPW-(b9D8L~HSZ@N$tQBRr1l5l=4>mlm`cB!hh;7j z9)``GYBYxR?s~Vz)5}mkRB#9JNq`24PUf*{0_gr@=44Hq(M3~J7o4Py1(#6$C61#; zDl;-9qGQ|EjVP~UC~nvNs1nxC+6)ZM(!}tg+1gozMjkY5{K=&Ly{qgLaz$IXwxj-J zP_u*AYSHS-U7$LZI%l1fF>o`vZ}o1D7o=~w^?05=>tP$^1yYinjva}I-#pAKsM+{5 zWKEzOzU;v!{KyV0FFE?eXRpHfqZ|9PNAD)CfNF_PFky<72?b^yl)Kkgj6vHxS8u2c zJ6B2By|Q|qv`Dy@086V$u9BG@cJyUu7pW^sc{plseMr)L?sDZl;zV#itDD6lT~Uw7 zG3Ysb>J8r4c;n*xXw9|QDiOpD%>(-Y;<8l2c+DE?_Y78Z>uzBIldE6$jie%8AJjVd z{s($KEIxOq3R3#xnKs5?a$fx91MQ|4U%dCaru$IGL};vThJk8NFu*M>337P=kWH6327ZM=An26`-bSCzX7z8+uEgOyRGA0uX|Mt!OIVkWfs#e0yKT&)reLDjY91OA~ z(zXr|k@jxYs(&p+ruz~@6farujPO*YJ(>I5xd@$5C*^o_YIiegn{q+|9fO;lZ3bLh zSP8#D&u>uARWnmGqs92%9(@O!-*?z<41B-e9>cmdVZ~iCgpbemoW%KgH9LT^GX~sf zD`TZn0>+p&N=fH?zRk0H_Q>gS&NblJC|+^@%xZ&R)@H#-<)sMSy;-PkAFxbtfvY9|4wL&?_{DA#BF?nYZxo>}O3Ra`}HT+m)ehyGmX zqIIiX)}P>GzA`76>QCXx{LOz-<*6H6r@ChaDJIM7y}ty}5v1T@72cNLX5j4Iii?M( zYT++5vXn<%wQIA_DC1Kd(AU8U+JpI2lSmy{tD`+}fm3_$LF=cWjeh3 zK8(C`9>#Av8Fd*H&NlBUMG*G$&Hdq_LR)BwjHK&3dTR50JrM_Zwicth%nuW?B|Q3D_GESWfPTwA4)XPKHo z4C{+<_-0VD0hw_S8={i^V?i}AWZ1pTED#bN$}zY520j5ALNL}y`iTp051 zZ)Dx*G#9b`q{@JfzX9ExT}gSnYEunVXZM3Ut{Ay8G#TF*uqk&zzHuh}nM|fZXMSKs zQNPG0SxL$Kb#pxcVE%qpYeSGXG8UO*_?`9W&CPdCof|D5DS}|*&o&O`52DJ1mI_|- zi#BWh<5q1I-t++`{VE8opkQ~O$&c}j>tOQKzHJe3C- zr6k4MZ2Sg*#-YlRGL)Dio0f_AB!tqL9Tn--@}k$rw5Ms+qvg7L*LBw$r>0q-{e}jv|Aseh3)9SArZ+5cGPY^JPZfcFBRGt7|DLT>3GCO8^P}h2NCvv zPwBM(7f5E$Me9NybOCIKGk!KD%ggwwwq{dINeOA$!^YhGqb6j=Y{ZU+eLAA}pI>3A z0RdqE^x+$%s73Srn89+eoqLdIHCsCvRIqg0P4k*yLUrE}mV2t(YS`1xE2qB^;T&+3 zQg*z43n4I(vaCo;IBipb?#^u#=15$s8q&%th)IN0j4zmu4WqCGdu^VRjnvg|j zzX;X(J4IOfvtyunBlLp!gi^!gTG?OpD(lKs_5Iefn8pPQb)0Y+^wU|Xh6v@v9=VB` z;%hdj55{hxn^M(x8Y~VIkLx{ydWG`i{y4#E7`L@uUP(4`k<|V)tv0BVmY}q+%;cu9 z6D&}JotMJdO}8C#e91>2nZZ|k)C{w?GA5s=ZI)RBI@?Pmf5}#5$-IHCRbOF zLoNT^W;-Mndh|vGcai0|OXrkyLfyVU{gikCFi8Nq=E>d7H>bu0T0}KU5UGh9rxiKu zThn0KRU!;)9Nq#uB zA)z8NnORPIQt@g0WJ@)$-OUjR$Rm0yTH1dob<`w5Xcx=i)8)EkBt8Q8mgspV6E(2_ zBcv*b{`{;Z{Ds(r$8NJkyCcoit^x52$Q{}8jz&WZNj*||r zdKQl@8HFM*2rk%uOQhboR78H#-ocUku&Kx9KbKgs< zGd(zX5AV}HI7Aty4VQ zbRq+3h(f>o+2Te+cjEIT$LUo_Q&&pC3215{wo4}TSGd)1A8qayy__1?|6j=csZClbPKyXGzhgI3DxlzrG=`S1GTefJ;vk1ApQQqk z$^=QB=#23xp?+9qXdlEtCFms~bAb3=H^1`C6B4K8Q#JVD zVpla+iQ?-VXr_9_QL6GaZ%tyqp;=3dntB}ki>*H4t*?#5Osy1O#HWizp0zQl$JAbR z&p_dGl%(fB>!^w|@*e}`tHSufN4EN`>-lRFrC~nX%NPNWamg}X;~DkxEjRiQz3i1e zPGX52^4*YPOwsk9N9~#iuf1|fcys}^5$6|uLqnj}^trlMnXH1tu%lpvg#n&k<0P&sisSeOKz=T+~S*vKcnmH zkOfmlX~Byog*s@~9TPEDpC(@=%B@xtb<4s+m||OL-_^v%qm11E6ZZ?|a|3%}#=&8i zyXSqMJZ|{=M=Q&mR*T%PrB!3XhrqCY?#gi=U>ob`O9AJ5mNJIc56lnfv&RJI>Sf2P z0YJBxxXzvtoYn!NF{t6v$)&)}fwryU*lB@ejxfdv2=3!8%u%9z(D8*#YkX<5hlpF7 zQ#|)I*p~_$dxa3a19LUU3G18bo8w$dk{xv-zKr+=e(f+meAVZ-)KBOS2H`@pFxM-wwyWoxJIQu(;uCzxNfLQVO3&|!W( z+F|!>xbD-{kQBM0^d6rbE;$+b0yf=4ktbKoMN6NWrZ~8^KCA=UJ4K6varuJTd8-jy z?lpba>Acgsqgtb6pSJhNTPOYIq7TgYhE;}DZ|VciUeTYt+>qy|u)H zE5|=-_f@`qYDaT>Z1sC7BlMD&zV450HQX8;psm5FdUaG#<)7Q)ia%va0eT`%oM=Nu z`_CEgHs0#xzNu)_BXQ`g1wNWvzTrKY%;5z~Khc%APC-c0jI?ee&6{%Go31r*v0cFn zX1K~dUBno2*Qv^+Cmf~OKS(ss*9O90mF#O zS8v~+Nbj1fyDA!YP#`$;Y3rw_t3+7AEsCB)PG+yrO%|E4`vrYA>lG4l4G-z=x$%?1 zJJ(^7Z?_x^|8k+cc~piS{ieYg>Eow&xwcaplGOF!`p0?|(S$nLFLH|IBg>osMFNCd z=*wPy6x(qUxoc_X`0?1fqL>z#g+oP8Fx2gadiUOcdp6bW9?3y0{l?n<6$Gz(@t$eo zFO7++7>aPO{C9tPE$H*oeHNSfv(w_tJ*k?aT8~;yAEF)LjSrMt(qX>e(g*~5NQD*; zxK#rySG23rjAbzeSWNmG%NSe3v#ee@&#q_wDKw|tjb4IfM@F(uc!N`O zj*IrAJbT%Whl!&~GTiD~0);UcUX`CU3WZo1(b-1d6;08sCHQT`pTmN$eC2ZZ0{6#u zZNfJuz`aE;mK%)8f%YouxwbGrfg8=bQ?#T@v{>fI>d=zG1&2c7(wykdiE0UR{VM`__D5>LwK{DtmyEN`MT;|gOqY(|@e6f!EKyKHu`ZczQn&Wiatf2-Ajj!oApNpGQ zzrGp)gJv3-Qlb^KyR}yln;PM${z8k6d@EV`))D_pYTqP3KScgXnq=0HCP#<}(lV-ewxP_qdOQgdUTNaz_d3;Ylh;DlZBXP` z;ktgqg>t^c&AXp_+S9Ho#ik6UR=8{!W92-SPl(2*sqk6iF|6E4j=bt;7TTj$(_(x> z96xvt5<}!hq~^Ke?u7s7P{5{$%Z`Fw3rji;qVzAG_y#^bQ)N`^cPD=}3evURJ$Fy2 zKtUjA&PcWzLVR$>*A4gGx@k&1)`1t)H-cI)q+#DgUKrY<#14`PLIX_W zN7?f^Cr^qZwnKSo)&O_jIE_8&E~cjtZagVD^Nf_i;x;;zq#@|M=KOIt^K8;Tzf?z! z5>#f#lhs<@2gcGZfw-(I~zIVh{&L~!$O1fD#zJ`-_P^KV8+(Uxx=t1Tma^SxeQhm$4H=(u(I z)*s+ZHH^F18jAP($pR3KQY8{!N=owbAD{aJ8+G5cRIPe`rz zRX{Y`C^YA^l}YK)1_ph;xC@rW29ikaGusBo6A|R@?A1UnY*sc=^&5y99BuJVs`YCn zqxVGbIg5)A@piW#^QK;SWsSy7>6?-SUOB=S8t>dl*Qmp%ypd#gV*m*}O8 zs{4CI0~kxTwm9i~P160nwN78I^L?x}(%7uo=uWJCCzVzBIgib;C@NC*&o*~e7yNTv z=O>4LbMynpg7;tv1&2I-OPmrLlg~$Js_W+)#r@ntb}gt=(uT3%qU4h|QRNQw4$(Ng zLpkd2&{@EO4bhw#a$knh-W+hx-A6%D9ZrFF&jqi?50W^RFYK0f2qlDJ689tCr8IO< zMAiFzhPo)l=2Y}KpWTeOE@wbPM4OX`eDmJB43h0v;FR2$%u&+Ta-f?PyAJjz@A9 z*TRj$jIIi&uPR;>LLr!(_Rv}2KUz+1yJ9u$2+BVkoG&PkwcDgu9q+8@zmVBEpVc0yY$oZf+&&~+xE7wxD_}<{@i6aqTt-mNt~_qJ zwMPNEYFKD}s_JB4tihRT%DTLOk^P^#{Pm*PxN*L8vV>>a@v1zmSsOA9=N~4bE{_*7 zZ(L0C8T@y5WgjcX%uvk?sV6pc5mfP>eMVzN?{Y9VG=(I$;XjjpZQ0#xa-GE{Nk$$U(i1) zN3N}>t4EF@n_u7L{cXU>dORYKM)}K`{i&+D6=X^02cUyugs>B**Et)fpQh)SVQwN3 zp$u=h4oev4$44n4!9>NPRrNdpaeC-fE+4z%0#BO4d|eWqMDM%!(CwaxaKpXj29C5? z$Biq*3pHD>fxL$XQfZN}+b6D&d+5H%x~=e#8a_-iV2cTa*yrlFF1=7)3Z(AtlSchd zvX@52Ae~g;-%mXRiRrChtC;lZ+(eT zNSkCmq zl~Ia)&#`Xb+>2q%Rok4|z6%yBYgRRJjzV0lsrxDNc>Gv8RQs!&wNdu~g${$ybkwUE zjOa^)S*3Hw&!h+OwvQKradIKX% z=r9OQ8SAT?^deVG>M61Vrw*D5lCDC7|L%G@)6wS7-d9BGXe&)6RzDsDLDU7Ep^`bj zeN-&R*v-P?0>YwKcq&zWoba;%7_#2y!TnU#t)gUo6cp|haPIUzeqij9jm(!i^J_le zCAj7I%Z=P0Zw(*jJ*ml0J~Y-Tz5H7JjpiR>D*Wk zE^*D&Nm~vA7SvI8OM~{j><&mRI_P`!g1yUS5Bh7ZLprfK;IDM_u`BD_n55IJQVa zqW*?f%NMx+gpdrC^GZq{NcWFOK0J3v>sC`$sy?~C{KjPWyYrxr65{M_Jwc{-mqY9m zy^*1ze4^LuWec5zCe95dz&O8{@>_y3GsKeVA%SLA+)(Dbko9$_*;Q|1M{a$l-*-XG zqi^G0WnRy?b$_PVkRG!3$T;RnddtiOYhN~hoTHnakH3br{INw-yo`9{NSOr*eKWzdZf@eolwsTpB9Jbg6z2dq{+f){e5Uzn#$$MCadS z)wzZCH{^52ePfs)F>wso_=NuD4wzH1Gt**BqDYaF3|WZjX%i3}{#y-Rsyb-iHXz z;!waq*=*NIrd!?HVmXU-lXyuxc+(j$1I5>rtuCcM3G{AX{(aA$O@1=Dqwi)i3i@q8 z+YNLzOj9u5d*a2Q+0cG^EhD=;>Urz^*&gsW*XT6iJkFW>1}|_4XJsx%Mbydu&||}i zJvg|g@wruI?qm7va2?bh{Wmw7b!!h$B7n4NK*R)c#euh!L5E+`tqI-Etm^SEoGiw1 zN^C%)K(=UCLF0u7TTJ#_?IvfVkJ#C_rSrTqR54+hzp5iU9$=Tg$z>4oJY-l?1NL0) z`$5nzzfeHm2N)X(Jo^BIv0X2{6z4ovyw8N_qXmw7 zQkz`Rrp{a1u1eBZ07iDmBkPTscC>>OmBwu$U0foQ?)HO2MbHS-7xeSeIZO;t7jYn( zN$2EZCU5D!h)~=CUaHKUUTTmo?I!E(1BY;I><#3|j$G}%41ZCK7%MZ2#i_w!W7YbD zb$?#TnZvHB*Bhc?-FX&->n`Gcu4alN>yX!|hHS){y)jWIYjX!&9)&cl@9ow1>uwH)7!jAp z%1K&GN)k)9rg5{(V+)F|Z*4w0pfRXl$l=H6WL0iYr=A@?9mO=<6cZ?Fz3ct)vhTlj zLV?J_vs+or+p?U$=gDJaex3cib#r`lIIQ0Q)9?BQSJdT4(uth|ES2|HBv!;0I|JWv zJ$IRT#n@;<%ym7TZ7jMu4I0WitI?wuHej~NI5^N8*74bm^6kl<3}Py^7sF2}V@~ZQ zgg%4?hkqL9Mt;z|mthoA80)7clOd7rpY^UvvQe@@Vb)C3{XinsP$-3K+y)~>$-&hb z#lX8Wc_G4fqhs)IM>Ei;@@09q029@&CY)&DO|%07rHZZ^YLH&^A|54 z>e*I3+h4hDO1oYXB2*p-d9Azq&9Xz9n?81KaY(ZpTH(z5%@88Vl1oZnN+%7K#fEEVJIVzr$`YFAv^O? zC}(avGl79DD*igUl5O+p2M(Ld)cY>xH;)lTdvqZY+j-lFv41VjoDE6sOg7J=!`uHT zxH#7xnD@MFhqcV<=x0|!?DXH2nr2V`Fqee3u57%#s8ST@q6ZQ+PlDypKG99vI$KW- zzCLj}F@W8YI|MFhb+C5k#Y^hTCz#MU^R0*ZL&5NR^GrS!PnpU2O4DQ2H62CYh_;Yl zr}AxMcMR?*fyT9p7sw-$3nydwvP8!fwKOue2R*rUQPVc{L6(iPtv#XBb+ty7X^g@dp z_6hxs6vXbBJ0_ePzn6jM#lSa>o}6a3upur3HK4S$+SyL{5P0+}m=J!rO{4)i@Kqbv zW>Wa~mPHfN%2t6~j7#T_O>(~34fd6C8mf>!orlRZnbGp-+@KS6Fp814w$#%-RjVj= z%Grq5o9k6#dl_$Lv;0@e0n0N<5mH+4F=!lmE>0!G44^I;JCnYwUll(D0a#z7<+U}V zXgUUV-nq4 zBw=i6w3g(li!a8Jg|>o?J#Q1Yd5oA24D!A+|H$v5);y&?z& z(`NKI?3D`BE{HzlhiYT;HB=xaOwy+T*Dk1*(1ilc6D#z~m%0_^iT#U>_)gMgZWc8y zCC3$0F_(zEFLMsu*#XZDSq<_6@UK)j-^n6d>V9->G49pP!M3bK0UNg_fK3_rm+Nhp zt)iZGS2NAjfz)j7Fz{qf;`ahNkWgd9KkOSFX*u_5iw+DZSg9a;{3&GhIH%^)4LRDo z=$oG%AKt%)G(#P~X+f12AX#)kMu3_CZ$zpLqeC6^9*kNRG|tbvRJQlhzawZ-rHebE662U2co+)TQ=qIIco7ib~q%RU6$u=VkH!4g^+bO*A)N2 zyUDloY(UE#Kp877a>Q3hUGu8U_TV}|1)-I0BTK~Lp zMv@NN(r&#z)1dtm;!pUu>sxw_HOHpmruGI?5IOrGxRN7RI6Hfa@GOd20;Vs2;D6=R zS|i{mZd;b<_t0-3wb=WE<|#@x?bI^CGfrhQ1w`qPn_Ui}U-#ah)BIl2erb?{hJn???{n|?I)5qoEpAkY z$G{uPo?p^g#W3Q1f~PhDlx3E)hJJKi@oF*;AA(L7`DGnN>?>sp{d6Qb`ehNYn;L7_ zzbO}_n+-F_rpwp%IQb@3`0BKG7_)0FoJWODIu5&G{2(gIbt`}1`LW=72<`)|c=9G# zUAW0%bQMvsA7mc3jhTx%blogj^#Q9Mo9@^R3LrCQlVld{?0l;TIP@yVy|JpPoiVz1 z%FMbft(+c>UT^B6$ZPxv`#>qT2zY==U^t=`_fFUfrGQMpde~~yoCDM7~q1!+5nGOV~ z`t6NZ(pCpnbr3s-uaL;uhY~^$U{Cruu^JjelWZO>@1en&%-5T=a33KOSP)W-6Ot!lbITv3IO;ngJh_D2C1`sc111Y*)T!l691oExTi{6%=jnW2#Q zS#tc@<(6w^cz4t@EBZpFf?)P=>^QtCi?58; z@sS-)+`wA|g4`7r6m;msGeF0#@O7aB{ZXhu#IzMZ8ekSK(QJ_0Hnhco40au$;Wd>& zschyC`#SrdE(~1rSz~~G$h-?-84hII|3}CGXDJ90sWY*6!wwSHT6`s}J!*0A9rdd| zpWpK*vEq=r>>DxJIpSbDHOIxKy#slkLlv>pNl9~Ws;Pv8%m!*rRE7U;=Avl$Ku4lP zfL9-TW9#RWiAV2paX(%F%P)`?HrH0h7qkdDF#yePE3Bs%6!f3rHFp`$+2Zq5KvULoYCYSbBu7g8!5TGy84cFrsPn@GEnrgaC zr4*;TEoG;ZgDMnWe6v>MUGdnPPOl!iG?nYBFJ~1 z8_i`7Hu-6KIRQJm>_FEhB`%}G#-ha`JfQWpmnc%IawSIJj`%yc&MxxH)bgonO z)E2it`+X4rmBk;)pyzcQM%;J79#&B*S$99bi3F7R2Zkb!T23%C!NYu0@sFJcGE5r2 z6LkE*H<2LX^lif^Yfsz4TQc@Gx@qX%~Eco#6pjILTkSlFTtMXY5gzt=m9_D)FPs+IF4p@QN%OH< zc9*#wRcr4K{3>jhYTxg6SZssqUaW9O#4s#r(F_BIHG9PTH0v$RA+u={jny76rm0Ls zX!cR!qJ_>6GFQ*XGBvZMQ{6&029)BMA2SIo(o?8zJx2ZutA`tzNNyj_X___lk_v&HD2}RLv}#2$~VF63r4mUVc@jUaHc)H7C6C{Zxr78 zQ@Z#o!xMxQ9#UDAd0U%a$(8c&Vg)cK5OH0@t( za$k8udPuGx^oJEPQ~A2q&@i-~8-L1Cc6LuE#MWTqqCaE}>!O;6h=VJNa#FWgDPEnb$>h6|5)rVBxzx)FWG6?8x z?nBAEZKOU(OK~FGEk{DJ*~G^0iw#RX@o+Nz@23{GhQQ3-;f*MGZ-q(U-7^xfh^7j| zH%;5K)wd|t?I;*#W0)86%7hC89A6TKmz){f2bZ! z;~pGCzkDP4}IK3&St*_W%h{v)T-35 z1zCw*jVwz}TM%+db5$1Suijny(ouPn3vAy;QwQP!ayU{Yg4=kktAjDnfFJ`4mDt@E zfPSS62d*QP|M8X=Q%w8w%(1t8y%K!Ef&;Ro>Q}JVgnv13AaMY+%O!sTlouDy*Q{m) zO5@u2qfrZ1!>Oxfr%#Ecvqg3EE`-A2vaA+<%0My*dAOg)M(m%zR-EbOw$=MOx$;tU zZ;)2=hL{ZZG3dw@>$qO$9ELNJmZ>t2x5FipCh;~z!rVJ~fWNR`r4~aqIW;D%B0-J4LvD_nt z#+%*_#t96b(VZS z;Nw8v)^JX|QE*w~(SDLgD(=y>Go_U!?1gO&D|c)pkKYH2YJE5s81lDVOF`IRn8JN5 zuY5zo=pzI)H<9QOPg)%m;!2aI4bNK~)1iHcYXbYs;*L%`WL7^3i)_)EdUZEW`NyUO zRJeQ}q))EE$Du2hzhWnVRba=_hx=N>m4uF$4zdUKRY^1d=Szqh94$J*#(}Z;$o2Za6`jXJrAV z96vyB`}hBY%jb$3bu!pX0aLm@CFaZ%%{k>dxoAKUg<~S0wfX#jr8vr6I$fB20a*>m z#XSWz&tj|IofEcUo<-Sl+|@KU0XrXf-`X1qVBCEje7iQuHYs88)~#hia31z`xkHfF z(o;O?lKJX0ts8K4K%tvnH*iqhJ%wCzPZVRxtPmIGsvM74M9h|3MOC#eYH7?Sg~l8` zOw$pE#IpETv)P-Lg^aO{RL1a52lAXKhfJDnTe_MnK&CgZw%yZFgC)`JHN_zJ8TvhD z%&|Z}yKON^c22yA3+?g&1D!3sSa(I_UQ3=MtL%SByU>X04iTYG%r5g3O>gnsPZu~6 z-46%dt_b!v7le-u?{YB&x8vzzCX@ic!8*r1JfJ*Fyj#Hq_03_MFjj)J0h;+5d8m-<{D5>LJnS z*5Ojm17q>)abHObA7)}HnIzw*9IjN`mGDrnq&5vE7Z^MF!hE}3{4(d`BjwXvZRYS> zDsu+_0*uqM_S3&K?00JYvjW)P{p|3+E=RASqKHu8>Zoxw-FZv-{>0R`Nr8XDZcP-y zMYSd+L2pGnSeN4X3yQk~pX?528o9yMXxVkTjGLDC|1c{5ax)*O*bI@w1g)uUwr##Y zpef^W9$=pJ6XZK6>69KL@tiZ)Z3-?FT@Y!Rq)cuKU>z0$aI>CQHuKvgHP6Yle;`0+ z6S-^>SclRN@9x|5e3PSw-xuvxGxy)(jq^&ruTCc7d2vk!WE z$*OLckr1tB<;T!s_OEjF%f{6QlwmtsGd3v5^f4Q`)+fnvqYJbd2X5+V#!&qEs`mGFI6PX zDTfDjMi~kVf%|f%iKkpSBBvwd%-d`iR6-?gPTAa{Z#1=e4`jCvK5SOli4nb%pShbZ zB^<cgvZYc*4nysjGfceVkI(_8rTTqZ1$r z>)jeP>};>5>o{$>*BgP}7s=P9pn&Yep8e%=Z%27l7h-=&4rh9_gNUV?CRWXP;Fbok zX^t^|*lc0rY&j z95^Oj&c555@!PuxIIbS;ervX7_01X*H|c@auD_m^4i*gjeoO3UdC2wWV4*}8mD)`O z{0Y>wB^JS#=x=M8tTf|b3V(J*RhM-;Pvhf8wn7Q8RML4p$QKZ@U=xPMB(|&dQ0{`z z=k7I3+>!|$G;{H?H7RMXd zYQEV-$?dD2mh54sqE=uBBChY{uOX@nz`LK(isaSGJDJN z7E+V%=x<*X+0K=DO*pq;kyqLWS7Z0LvTd^c-M}%I_tXbL+wVXNk*G}nAUFsWBWuHJ zE6rnh_SazLVyP?e;Ljc}_%r~L70tW!MBOAzek2QjmvSZXplR}2;!mBXW^ctMb9k>Cz)+Cc!w2fX1&M}7 zIOxa3;Kyw>R+Cu+Hx~jJI6PT}{`FnR3(f8*+zlbB0B7OrB|vX-Mav>hsy7X`4TXW6 z@pIWqY)Mn-qDBLokH9(8QET*TVz57qV}ybQ;!)9w)jE%s56tSzRAaVW>4Ejr+=6Jk z%7GjHB6RFEN~#`D)F|BN{T)9EA-q)lbPC*v}jN;}T ztxPcd4RJ|q(VP9zSs!esu9~0kuL@(Q4i$<@ajCb)>OV@9=;acs`K4?s z1`9BDI>)|~zWd_o0@CT5YA4=uNU=t-^Jh;jdY&93zlc3JICwAj_vT8obHq+Y2Rh{Q zbr|btE?C%f`btGaWwfvSm34kojRNmfnl?~{1w#Ga-G8S)g{%`i$20rbPv~-1MBT^A zVTj|mpi}^h%bNLCdp{XfK~S=v(w>6%pI(ZBM|P|*Zz;1b5$9u-H94chk|veXg|{PP zPbt2tY}~GW{Il?G0Om>P?ZdCQ8$`jM{bLLJPiqI2U!GqU)={B{yp3o5y;0fJiu305 zwfNLI-^>3laa-pAwd7pfy|=lz^hFMnNy*!wXr|#`!=JeJOz!8j7#xU(Hkq#Z9JnRu z*}qc?qJaj@8wS^&CT5ZIG|3_~e?~X6{RZPBAPX34f#2vUtpv0O%UeV96Ov>X^=)TT zbmb$!a&F9-wDhkg%>dW~y&+^!RvqWSH0n9u92!d)zB7Hfi4QpS8g9RJOG`$cN z+AXJm4;*r_gpFz=waf`^6AX;I{{-diA?&-IP2X*7z=$qCgLqAN?$bKO!RgH#oE7=Q zVU3Z*eufvc<`v|fQ~&qrD+J?s(U3Ay)Bc~(Tsi=iFnu*2cJytYyODpXu`E;vvHj_} z{?nAbLD44TZC+HD@_5$A=7XCFmZMRct4jS~F3Y!xlt*o07@}V5!v5dZcRlM!knmX0 zcJ{~VC&gcTN^`@nNpCc}R4WzA>B}8qz~JuRZZb9X=EKHa60+WNdcPrAl)kSA3i}Fz zelLv(mEXARTWPz4ZIqB1+{szPIWzcc>WFKQEoe$r!KKZM_B_>=Aq)G8Zb`~ko`q?2 z{}_BlKitiMW{zTy;)bi-D?E$vqwe=w1?7#M=15K1u$k>Us-Q&o=y2&a1J!D{;wuY( zt6QB^006V{xlwU&ozKY#KHJNZ5&_+{S1oaT`n>4;-<~=nsnJQFkH%7+ar4#3{`82ZDGFvbxFk;3P(*4T}!d z735$61IHKb#S_n_gLH24Vs_e7zZk2zzRM>?-pwp^JACr9_Y@bG^4pm0g<1-E<}rEV ze7nV_bKhS`dPF3pF`hx=9heZA3!?-aPNEo3{<-OW|Df{bqyb_sZV8F?4We>n4cQ(Z zZ8G6ubYgLSP6yzg{J6}Un7D}}AgG)9p3_zpzd7ZluK;Gp9x9sJI&iJK&t(Kn$bVx8 zpklKMFb!NRA-l0#BXyo?jh##FF2e_SARi+3&Niyi8>cDuG)1qARp?Q_ zgTJjB_Z4-7Yv>$Jtj05eUHneXsgG^Se}MxL_y~bS!rgkni?FcZ@Qyuq5wF278fjUr zk5$NA(a;901pg8PfZDC6=W|gwK@T(1=H@@VBk9}Q#ojib0&WTF2R(xrtu~-31qvr` zqd(r>E^B+ri)#_&saFg&4yOq2%B%~KKhVA(Vp8bQqL^Fx`IK)1=b4mur`mfXK3DK3 zoZW1y*s3%+dqvYzqXlP#%=uXCv(O}hml?^cAdRTX*3_mvQ7En;0da)lz24`Fk8D36Q$ru0Llrz3}EJgZW%r*EHCoBpMw#B%HY-jnAmEvZEMAi}>nOg*Rn<>zR_?Pli>=(iGn-o)g= zwj}|8hsA5hwbF2D6Ijf$v$I?JHj#3H`Ks|rqKA%!g)jJ)CF~{Gt6qnnTos&D+_6*H zO4FMQc~kB^?en`ViF+$gXtzH$ z??3R9vcnbeVn5838qDUwZ}HHQ74FWb2aC!*NOYIRy;Us|Zr9ysqUwSUs>B*GhmV~% zUQVbL%Q*)jYn3khjVs)GE6;JNb@I%aqpbLl)T_Lq-y%=eb5-2^KQBPP_E3_@`sZ8X?@X{_ zI!zNRGlj4I78T3|6`_-;b36>94GOB{%v6jVK=oq%5Gw43x)wLl zsWM88v$wF&9W&YW=_TEA+UTMQ%g2XYzw~MTSHmOcFK$>;fToska&!w|U^D4RIQKpmWo+05tU1LM`|(FO|Ffcr2zZkdg&S3Q?a8zQzaH_@e} zrsr~Umxx@Ot4<3STIHTMxxDr&@X&BlpWf3MF+3?ggz->tehxA4zLqZRUD>=gV_tF} zl$IL3(*J#%-k^2U$A0W)yne6=Sqsn92F)Mk;ob4Dg`IWFr>{Gq+NSKmS!j8>D$SV0^&Wzow7H=6&ISA9fM%paJ} zS}|2oSC##w@0$BJn<82-@Of%@2M=>zI{qFO`pxCaBJ7mo=pET>H2!Ck&To%DCa9i4 zAOCT>xlx5XCup%!7&`2CXk=GrJKBwIG2QM7$rd}^3Zn`aWNEtO&4Ds@vcs3t*|6*^ zifro3Q)0)k-lN%lBkS%M@YF?4u{<5_LY+qzXK&@dVvn*_8j`9DB9){eS4_m<+f+zA zbE_T_+d&o>*uBnE?()w=NAgti>_i=rm{-vUIrE7J2UuUtjr?*$X^_REhds^Sxj5k? zGBW`%HX>r9(HV=uE3hT6dJ^cQ?6kEoTa;DBz2<*5IJ5pFqwDFfcGBQF%t;BEye;TO zgPHH18k0PBtm-Z3$(^%*J+fA$e`C7NY4Qrc6j=D(J7v_ErzHfP2gZCZd zoqxJzzT0+=yqFr+kr;E6vDePK8s9eAFCQymBkd|J#vYKMoFAxj3J0-f8*OOhxASdm%uh_z6-O+CQU3 z!}}(L_Mgs+GuigpAx)-{u(~OElU%u}uw}}=wdXgj-Jd$50exH!0w)8KcS8Jz0^-Tx zc<1Bqr(>Syv;Beu`-5Ig9R1ml7|Du2Ku!xcJ_|BtaJionRh*$!{wp>E?{f?=8_Qp_3T~ zQYnH_22#K+A;J2+_SSdfIrGQumQQ~?mVR&Vvi%gFZW_j*2LP^=3-A=QYM#9ghj)o+ z=Rviuqe`C+#5mz&G+m@Lb^t%}8 z<4D8z24kBQ->26j@3M^aJ4=Bsgu!ujD^S+{50snm$BDs;j!j$@h&q$)PnE?G5!nFi zh5*?b!9Ktu8a-+fOMG-mSD?YJ67L>#*}s$3VWq9pQtU@#Qb`qU?=Vv?weq3OPRJ5) z(*2Mdx)qIj(MBWidAr!Zu_qV;m$l*>dHsvJs1R!qM-?PFS>-0+v6U7K& ztW!9sSK)(`Cz)7EyC&4nc?Oy-dC(tbSk%U6T=8lLd7Vuh0z>zQu}v3kUh%AWwY>>9 z@-aIW&X*(ba+yn0_$TfL53fs$h@8SfcE>%h^n_h!#XKM)EX37DilUSm!4p`bb9nPp zg?C%-Pv=O~84KW{uElRWBf(lLfp~O2Wy?EJz9qd1*<{k1@7Zj>)RKVit9o-Vwiepmqn0^D zro$4|q_x#^&h$K;ORL8-)aDhR7CAN9^#s6OcdBJ(vxY!BK__7g(6Fo8O$9WIQ?c)x zU!G4BTr+10n3j(qwI)vN&e&IQvo?{x~=Bjfh|Y}5%Xb93zRnQY$R z5-U#ZG;{89P=7kV(;ivv*Vao;nscDn7lu^@cN)I$M2aw9BI7a>b*gxS4n4Jr_wf?k zFq+v9*}Cw^^!1G252(|?j=Stu!%>@3nsl$*n-JL*XFB2750}h026n@1E*og;JK*Nu z0b>zXrr*%R@;%n0tH=9M!*8Y6Q9rMdvaV!sfv0$HG@d;ysb3UZYQL6nvE9H5s&brc z-ba-VSyk9^-a8NwIt)`V7K961zp}r1O`X7V4E826rnd3ZdR04ZD;Y6j4=q> ziZ|)g%Gyy&{O?3{=NI~x;May=4&Nt>b~5<&>H3Egl_Gh_e-Eb7^&$nSFF zFWBi|#%lilMi2r53__bdZYYMGj*fJ>x=9oeQ08Q3_s*{{4BMTs1PonDzqWQ7gn62~ zb>&8|q;(eIFb>2P3xdNQn8BV~B6ZgSo9_(YB3j~5NJ(6dIH3pc%UcdU{dv(G8}FU7 znk#(=uWxvi&~P;P@%iGZ2MYb*H-9y*nOR;_tTYH(%Rf-m`m}MAT(Y-((LudfC+9$E zRg{>wX(P>3WhWa|KUEO*^jQ)F$WM{?*0t@U12wzJ!2&!Y7%QtskT6yh>NaQVc03>p zWgH`OCGY(7qGU1-0tn5RS8r2T^Z2^+(P?IpzOS;59ycANNWZVpy@xPVrd-8+<{@dB zl*l>$svre%J6-Ifkr-QlMb7!Mv7TuOHq{(sUUuVA>4WZe@Lt!LXcxstt(k;|Y6|^R zWyxQ?VJ|-!`lra!>Hu|q!Q7qR!sT?6@mM*=Y4n4_0;AeRoWQH7G=i0gt}VB;*tIT& zK77OkAP|2xsT~q=@3gEsmqXXQ+nY=ss?Cwy(rjeYooJ@Irtb#t8?J4&=AAahFIUyY zUUA>r;tH+zIZMQ|GZGTtD2=F4KCaof?BT}MJ{H_S-y||ZS{z>49CMoX2&b<=xe>YR zt15V-&gV=3j!`$EzFHC`f&&QpT2$|Lz$+sTL;@?8i2=5H{Q353pZ|1wYJ*2z?y0Fq zif`&luENtV(mDO5CD4t~OQh2PTml&-8Q+ z>sMXiR-%|k3-Gh5sCl6j|C{D;dudZW`M;seb*syG?0glpX3}QJw5Bm(ZHy}>`4%~Q zOK*CwS-&*eIs;&cztdiNS+LoD^P{O5QxZCImu}nRpGyu`{sz%xujVkGDtt8j50%_m z)2TbIMSrzd{1)N>f;*a0Q{d$L%0q8;1V5&8X}hW9B5wNu{17g^%;~vvG8dAcYZzEO<}SHyPWBs90xsanKqsfsd8b+sT5Voe z5yWw8GZ~CjrfG7QaSlJIl+wnDZr8Yfbg(08yi7Ga!#^hLCS8QfHVKQ5{t1c(ZHHfG zS!&NP4sngBPX0VqWJ;OmyEnZ5Rh!xjt`>~%!WU!G%_4ynXLIUV_dWOoIHa4mTUAX3 zJPa$9!JO`d(ofZGqKDiIFj(B=vhQ~{@e4NkVb2y~ zro)elhKreF0mLTKrI0oCe)$q_;zfeaP{>n`ulohcD;@g^r(x3TcDggT82_L4KXCJ% z-%M&KYWxt^plYx}YaqYBTJxcpY5iAeuOuuTrP2Iq=2yU~q7%ryfEn~r>M zQ8GgVO=OQW#@vX8b>i(PAWrc{rIs8$a45ZLcD0eN2U2h=h08Z)Y+6Mr-nym7_j=DFT$$p+H=jezynvZBceP)0x(J#cp_QmVY6fW!ukv15 z-p5BO*=3nz1h;LhH_5L0G4>V(ya8^GBpWSG89YdRbGA5BVeiz1lp3&|aYDx7N7l>g3P(w7bqh*vp6-V& zZpWUi3divSq9ondPp9CR(vD^7^nq(k<;ICw{HzM@D4?O0<4eUNblu%oz zW`h&yy!B|roYp-lv41({=oMT#5QjcYN9>Cv6pODeiOjWxa<7+~UPNpy8;9-n6_a0~ z;5Q*zUBgL5B^`3_d22ryXrZ$;D z2o4J(gGLS(O8yRz3+9=O`5poa0dDz@1`?paa_|1H7Yk)1dJOyg?L1Q=SI9tL+RkDk zT#@!gAHsT?F($f-(sj+y@ay(Dp~N9G*JMHM+=( zw3twq_-L@rsS4zikrUUOR;F7K6m?*flKx#@VmY9?8B{g(MRfJLP%a8rvk8}g?+)8{ zlfx3$8L&>5s$_=3aTyv>&$?oO9mqQYb~Av3A64Hs@i>yU>{x)8ovO-pvq`Ub5G7Dk z<~gM*u@n|QFwe$`2>AbyzSxNu+(2Q*$1Nj&$tOSc(-zA!I5|7=l!74rTc6p8k!v4g zY{Yy1u#r#GWHh@QDgpzWXSZmYh{sg7LyV)!dbEc6eFS5@)*D8$P8nVS#y{0CRe{LU zaOOLdxXIK9V`L1#)BCgD3BqK%j^H9RTPjrhW6GSHX1zp3a7Rb*Us8QK)nU|)*-z|; zsY$V=(e}@Sa8Tu{4>MMh%V$TLDp=xvEULgVyH|P54hsxO<>7DGk>-hL)BQpRu=D(DFqYYa`Vi?y`)~HlDCmE2$6i|_O*ry?AlS+LB z;5&eAS}=pYJArwzA*ZU6tVtB!@tCgDCdV#*)eQH@RsLxcP8FSM=TFgSCayfsfBKY8sINgZbJKZk$Vk_yoY!T}GZhu8oh=*`}BX4TqLDq%l6+uuO0fUA8W z&$`ReMzuh;FYr10_{iY!eQYM{GY1ZWZ>HvA`A#-yfFp{FRO_j+a)axj8b)JTj+!VA z6Y0UTRI&Bw2|qC4^GgoxX8rl(c2NiG!&1@>s6hR;?hs{~@hpdN>}UGbxq`NFwR9A<&zIw+bE8B58z`%zHqQ_9 z;piAu+108k9~+t0QXpmk>01wjfEJLREAg=IabAJJGB z^2#nlj?dNeJ+#EL+6mM<-R_T<6A6|5;P*HSeWR3c-+v47T`x1)t+NKO-T>dvzxXb> zrPOO&-G+kM*hcoxveDvntBn;&Yp-TvMQj2>O=U~u+;xjn}4H()mchA4rtB;Y9&d^W;29UbZKlW@g)D=dj5NLZQ-Jx9b} z%~e!>SeLE$+yke7U48*-d>HKW*2<_!so33@uUTa=1)uTAy)D!!MY4$vw{$FcgY z4`YkysCE4|QIWFHY-+h}y(c*x3hH*yB4xzwU7A&@ScQ-3T%NpVVZrG#$TEiD5LK_p zYkeV9dT?tV+Y+gZv@^T|DQaw3zC_niv)}M(lL{GAiMcnrMnW#KV54myG0fRIwKKcL z%vrerTa_e=rSYs9)e)uRYmDeQa$K z6|RhB4%Y3j2{0yubJ*(LjskOXHNBm1re{oM=2cAzD~H}%;}sgu?FNFoe|-M&qc1|@ zvKNj0w0gpmH%5J3mX&rFQnbVz&Z^(yGkbq#`dO7ux3{>+bBPnzJ*Q0q+ddtN+_UaK zY@Tvcc+6!xPu3o8^>4t0T**yYFjQU&^G&+_bh1KR=Sh|j^FOB@oiy$L48P_nu}~Z!IW`vfjVe zA(||avJ&@l{04asxI`50T%0w+jY>%F$%kw@{q>&z9PVqrzN0=Ww>>{UZ;EdIGHX`L z`}yq!aYc7MX=#qYh2rOzNC7!coH+vJn33NltgG|KTjx`9u+W`&qjL`*SBs&2yJy{l ze=+axJ*_SD^tm{wqv^z%au;p>Ciz9)n?uRM^C`;cJ2I_Yu!{6?!5&k-ZXDwU#L=iC zbhHz;Xh?p{NM_$j$u>IR-H&YBA37n|y43e|@z$M$X#J7RY`IUE=bUl)Ws%B7iBK`F zk;1wR$%lDAQ(ketpK9xoslTww%UZSrSt3wJi)W8Ki15sg$CaEa((p zzgeXqBJP)FB0njv0lFuGzP49UhPK)QyfEl+)ZN8)J|eeFT>SV$tQZ|ZJ2Ck#wzoks z;;`@>@i!>|i2Pi2muxE)5luj%?7wlwG2lUL& z)N0WbzF!s2UAT~7PPk?&+kVp>(`8aGFYZl5L>!d1RRcO=@Lj7WkuS>);Z4M*r`P}` z&s%?g47n<{T;UMI0q?Ts_NPk$aS$LNiXW9D8%7hI6yeps2qCd@cB!UoeeAJ)e1T;G=3pmyjK|>bpVypj$ZV)Q=`LIi#N*8si=-E0aq)+Q%nKSVj1+ z)B{ait`X)&cMTI)n{wAO?!kW7*j?&yyh2Uv6sX>mCY!2-z6l@hgOT6Xbyu0ew*!EG za21YNGK+(IA#;hYA0311wpHQ z!q!=w+Os_bn0`kC5%&^DGCf+ny{A#WsMH0IO>KCRKj-xQN}wvh4t?eECzK~J5EE1WCptgYI6`=w+Vm3s`@tn;?mweNiBt4<#Xu%L$L~~m) z!UxgE)Us=8bq~X#dgj)i+1Ibtr;<|!vh`v%TOj-@J>57V$7Ja_%m{NdfO)DJGH}R8 zTMS&U`UrH#;mMt-V$Tr%govFi_4n}|6i}wD(N5rU29k5mySt-tZ<+2q=rFiLSj->q z9(Oawa)mU&eC(2lpD_wg-eT_RNG1c;7SP=9xD_qkg*NdzO zy}kLW!F*_H3wrKBrri)9+7#@qc7bJ~<#*TjL57fB+s6W3FY}7T%-nD6-YR&k%-^kK zBU_#dO8tt{x15t%nXL`kHWH%UU2?`~zTis_Y!XFrt`8>UK^{39YDrg`$EjJ0)A)k4 z7**3~)nEtf`W=yz-!_CL2hzh@AjN?&$J^=xubutrB8g*nl0poJ$J17RDH@nzzpwXB z>{12y4py4PbE(6eg@D$TFWikdA|hgg64^(TjKj7T^vGLVmntEz1c8jy(ISwB`sX2D z7(zxz&mKv!H4{o!!JoGV?2oYfT?kr_s*3F+r0hq)X-xOw2fp|9ZH#q*70d(!#YtSY zSX=P0qWCWh4nP|c06gu$u)I{A(BT03H|Y^5@(De#>|vP0qp|F~RM|%W(do$K4L>ay zcn8-{+rz-lCPD_6UbLIQ%S~B)S5y4ll(3W;2{`?#x2AlT zuFZ)cEY?G_@X}T>)4D4Omw)lt)5AyYc8ny@3v>SxtJmHfD_@_`kwxwmQ-xnvSZ2H* z$aSV$TfK%qP#E?f014Y19jOEi9{g70nJtmqNbU%P`M!qvzSUX7(|ht#&H5i4rW3>Q zGOJMs%G8>?4}Cg0RQ)I2dOgQY5|c&IuiH-tndaRO%;vbU>{&m(a3Ki&xua{%tVm;K zaIz{kDPu4fe;lMOSw2QoYI!2pxZ3pm;mkpk<|IZ7c zQJusFN8eNL1()clo90~ls=28-rj_gL^2#o{>y_1`dxAk>T2b6u4()BkEUVj{jtYGb z&gy98*B{SJ`owVEm&yW_BIrNTdCU&~*38vk)J&kxo*}(361TA64j?*p=1HG9Dp_CP zQk!k~mfKY@*ezx`m0011NTx}EMyRY2T-H8QKriVpye>RY#DqJl(8VlCL z+oGA6>iv5x zqX^bl+X29@6K6bh)fk76JLOaBf0AA#9;TW8t)ms@(zEIWgBp_IiA}1ql78rQMj2$t zv~?@jDPXNs*`0OgKu8SN?JEy# zFz04H6)_xRsnAk*WEHIaL_^4#f8&5}Q}O(j$r!mX&d!6P3RhaV2j@?GYcK*x@P)0u zXQ5S+@MN&oz8E@edRZ)lo#QwVsI>0(DX%1s@^jDI0VK|GtwFe zJ3|=39pA)fzf&^*U2rv}-ou*Q>&u0I>!hC02WzEdC^^$M&MQWJx9FFutRs<7SY3rAoRj$3gm^Dc63{I(q}YSYtsa zI&AViFcCp|dg?Oj3)r?ozGp3A35!d#bHx)(%>LcxPitz-Lb-wE@E08fVKDf6V~J&o zX2#9I>*=>OH-6d>|EG|-WHC}%M5=AOTf8PVn1#cdk_Kgy~WB}iIu4~5K# z#WcL}?F+e$`c_gI^qPcfPUA;$BUE|nHmj5=im6ct(&_GdZO=1mpd&ctjav0Ua&SIa z5t1Kpxu-F6Q{u7cQ2k*lX>evgTb41{y7htl)^k)i1pc75FF~+lgi2%cwP7zSL;v{Z zouyX%O#!W zmj1;bFv%w6Wo6H&h;>fjK4{LsMvmc+=A+qjUM;z5CkRiJmyIlYSrdMue9?2GL=U6- zBe?Jb+>ZxA&TQ%H!^a!a*QP>%2ZW(#(~;WztZR$+aY_3tkMpz+&d0OW-Qa%@Cvm9$ za(ox~W?|!ISbnz><}t0#r?Sf}Qb| zWiS4ynZq%vQQmjP~J-Hd#KX7zsd>P8JhH41UjHRu{nDNq~2k*oaZD_qjB0;xsRd`po?h7y^aqQyq3`A zwq8MwS8NdOe%vu>ncxR#uO`&e8>5!8*{gr^fPTV`6Cn1DxwI~q^fxQMLatTa#PJ2> zv#0m*)A85iMjU0P-Co(H zxZ~WMFOJ);HypaK7a&{4+R^x!^W~gb(Sd#UQ8s@W<9h3|cVGEvUDR4UyKat7g}(`1 z)J1K-k(OPMpjzEu!Aoe3%1@o}oL^d{2(D(3jx*L|zI55D{)svWm)^K#%!SO5wURAA zs(DK4QeVA{a`E^W&5F9dCSozvX}+t^D75Kgp%RmuL5ef6@nLB#h0HP7;W$@4`nT5g zz#=yFGf9bQ2{l(thJAvrPO&qNh2Zu|ecfWN)7FdJaT^=5%2~$1g3dw0qDyOICSTs5 ztucD(^ciW~_V5b@JK`trXFrRl(mnQ_slb`|XgS~iNH;N1H&wcOyxx8s zYTsf$&NG|hJF{9}LDD~-7c8N!21#K%yLr*H#J;W)&PUbd3S!^QIl1f+9&yl4BJHXt z5VQf=&2>c^W#%=l{10-q-woubLPnr{_3j@fC%$`6SlLvT3VWH>iuGBqn-O4GnbkUs z`ETiGTOsj1=X(k-=b!WYUSb&1zgKwUdWi;VxP$PES6jsKE%%OSPAdClo}?=46XYf* zed>XLQxR8cJl>sWbtK(qBo=u&z}7U-0&1T;(nTq-ttF1J6hy46qr&X23x#-%kZ&-I zB7J9j8igOXJP?XLoqhek-SG92|88Z?_gg+hNS++M*A#3=lN-I$(mnhK)AdX3izFjR zO=C0qgNUP9@Cx+Q=w{Phbg=LwtRRXxOpXWkf|Ofa+mqxNyg6ZrJFTLK?E0JqmIT=- zU+%sky`8fe=Jvy6q1r@>k1SF6NVe&W)j`> zev7-Tg=k_Aq~}U5tP&loc+VYrb?FeqDjSD1)-N*!5Mgok6>imAWLNk&6D>x0lRi?Q zt`v0BvO92Jg(&ErF(nt$PiSHOtbB6~2NDK_=m`3M!LfMu(T3)Q4&Gt)Pfq)&(E^qk zYTn5g*m;X>db|ndb#+QxZ6E0d>G_nO0k1W{=*4vXVv76#*_j?_$a1SYnX~GNo1MkG{H$IRB8W|+o4-aq6vv7r+y`)dASc-JdzS_(#GNm0V=7N za>xz|6<;pQ%6;nZQk8w)koe%(<)FMwc;zE5DKX4W;I|Vwub(P6I@}!ePuSTuc1ws- zABuQju>p-b7T5zHByK2_kI=Ey+^5Sr?zv{_DKK2TPoJGu&Bly;7!Wbp38m9_ zS^m)vC~G4(ko+UO!Y}_%M>)=s|UKVv57}(mj6& za{7Kgk7ZPhKeiB0j_{PVdr*0arQzEGo)hr7@pMN+)Q7v=$hjJ;_v_FnU-tx19}fz9I3#$v*maAw=^ z@Npc+#awH05nOC~skiPzl`9iyIzk*Z&7Q=^T5S5nXo|YIMW(DeN zxcL^`p05hX#oeQ zw$GcC%er<_UPFD~RIR0*SKE{3yas--$$K(dSQD-e_Gy!4nB7U>iMr*wyIFhRbbL8< z7UZalrG#_1!e(sVr_5L1Q!qH|iz#cGSYUbYO z`kLy-BWe{rtS027w0keATbAGXb3}JL4LKb<^=YUVp;+{sMRH2WC9eu81i#okPji4R z1-;|8lI)NVzFHPIl@Fn|pOB+33yk|-b-6Mpy-G}@0s<(|ZQ9`uq3xU^_fjZOfQ|g~ z-eVW~T~llT=j=GM30`yT4f!7B!bX3_!X@r!9K{bSolkPguS7gg%autVcvCrkmd96L zWxUvt2t2TWqL*^o`H&)bv~CG|JNr)8YIm5=`b}jj~$7q$5jC+C5mdiedZ`SH=DsHl)ee=0lbl?HNsaN4n_t zg8;RDm6`|FNz)MPh1`K{t77sD5t!Zir3Jt31CeFO@q$2AiQdH| z+G%tr5gJI30!%t~i)vn7D&20J%`C8d&mXG zbx=v8oG;$Sf7be?b9JUdN(35nDZFx={tDtjj<$*y_;V@{P_96u}uPb3l6v!D)o_Ce4Lw> zx9>^o&zF$E-YA}IJAAS9T=MUj9E;g^k&QOdx%oMU!n}A!RD%zO{id>SLZJYXlCCfi zxKMDYIKB1qsEu^eHwwRCR0PM6!w29d^#n)Zo_2z5y4KvVAlzH|j9|+Dqv^cksr>){ z-}Wv=rL2r1q;N9A;W(#4_D+;>%1oIZn?sR#?2+xrUXi_z$~a`4tc-(`b8w7|Gpu9% zu0FTl_aA?7yK&vz&UIbS*W>wk+#lod&JPsE)feexo@JgTD?-``!gkLhhOiZ|?WJV^ zzuNQVCIy4U@jk~xQbduSvmENBrI8i$7m|jgy)1M?SkxcJus!6q>OQ@JLY-ittHRjE z+;3+0^w0&~%_cY~Ta6+(@GW?6U0Mt9MF! ziTs|V!MK+ z*|g2YICOZ>JJ?QdPglT|jyNet%Ls50Zqa^{)~^w`$VAR2dHe8tB>Q5|N}k#T$1Pg- zxqHVD3h1aF9l0&PL-uB&Qk3&QThz{a#=pK1ZrH&bD_~u?)jZs{aO8ZwY)tr5pY6ZY z6eXDd;O4*TN1)Rfco|L4xDfrFt*VLza-&N}hunn#9?|$eRZgkN+G-yF&Oa*~_=q8s zu@R88zrYx(IU}O61+M9sy9`XI+1c3@^e3&hhQc-AtuGBP3dYy1rL@0)Y!G3esgSzA z#_aZ-ILh{xhZ*mHuaXaOnPoGT8U$E%y}5Y_Nl=4rvP;)ZMy}ZUC0WC<4&A2;B0k~g z#2;3_{3fz9A5zh>CN-HGbU`?zX9pa3=f->n?k}2IR>A*@qLuc`5uoLDNx2CT?=CgM zN|`+T01|K*|1UZb%@?mXzJ9{|qDQu?RVlv`E?|Z)-%Gp48_z9mEweGF`yh$gBOH5O z_XEG3B4RhHeI}dEV;up~f1(Xbo|_16&TF4pFHT`xySNp^<}7}#F)+bN+D%a5<8{vV zY4+OGPrURph3O)LbE6GgzPx=4@2dSm*RKy~I%|3@k&)klGF9KDgUv4OpJ5Em{rG{e zjp|5hfVk^OyOBv_o?2m`_OSHc-O2sw_n29%R=eg5!n`6F635s7ir>n=`@dPTyy;P5 zK+29Sf_LRsl_C0myT7h9!|iBMu6-GKU=`_8rW$*r*^@72zf}NrcCvM7Prdz#q6dZ& zICBqO?kRJQ@=Q@lGi>ye<4-T|9818?g->+etB^~B4# zYh63zj@7>IyzKHyX-;)Wjn@D!_VsPXYHQHGI>iKXTbFofG2S)j%K5cqQIEburzvcl zrBt*uqoG3xt7a_C8aQO14z$r4*24BBh2UO2)fTcWPBnmP9+`M*w-L2Y4O?R;W1fR! ztt4A;yz|mM{M7dcR+%RJf8{#NV%*H-1g#9eiMPxA#bivR?ux-yWjDh1jk<+#v`sE7 zh>xr(`mY|Yj3`GHO}w;E6e-#>YZb5*h#B_4Vro_Q&NJpO#(sTIK=QlQ;vV&6L~SH| zsTf)x3*5Fkji*W4?J)Mh={#%^Fe;eG9v_3gUEpsK3UzS<%S&u|=Jvsxll#*G-FW_Z zNKG)jCyHP37B3dI! zVfo+|VU&dyNWbK)HE4}aOaOI8Qpa22ZZDh6pM_TT#IGW)lsEaN#O!YWn;qOkOV&S2_(tJ`}^-W{YH`ze)zO3#n!$@4|l-u0m8@=rz&!etVlQN>!Y8w1^$ zug?99v)(q1k50m?lfQjCp%b_XHS=pnhMT zKb{R8`J*5`YbJa!{Gfq9+rEXa!KWwe?_9L~nE;IuTLi3-#!bJ+qA=wa!^DX+%48+Q zXE@h%-~sc_qx=uhk8Y`mBEt$fuGIc2D@>dS>9ofeC;XCCbD!a2rPQRie;%t<>mMG< z-R((lu6=p9D>wmqwB3PayHb_PoR7d}8s$<@OHump_qLaNg7luyzjP$WwM%dQarZVe zAypJT^ceiw>g2M)emF_6HUn=6R%9jY;ErdSST6AUoP3Yze>SUpZT+UrFX*fOZY2)y zbH4bu-!>k8JQ;lQ5o61+%E&I0Z?sx6Jk;!5kM+8bWd`%7NhBf>W)aA5hT}o=Pu8V4 zJ{^o5oDNQJK=fHkaR-{f=OBNM5zwG^4aIvcN5huvoZcXl-~3+ZQ%{5F%6xy#S=!42eE9?V&u)hw+~`sOHTgc4Kq;?? zj0nae*TdA&eUMP(J^aM16Vc?Du6nSGg~hmF_MCWP_KQJinN^M;ISS~wYljFrB7%sC zde8_%O`dG8Dsu}PcW0~Tm0=OT079HUfI>AWJz7io9{{!cT@w#9`E!o*PsE^q{j!Rjg(m6z>{h9rhvL%u)u?NS!DC`q9|SV`1~Z_0;IVt1FxOC)dB zLkaRZu4no|$*42AGfoC;cUg*G4wLzLSW&8t>fPHu_g}3xs~`T!RB27_FD*^KP3H`p zK>Mfgx27E660o2-dx=vu@Qtt|9p4vYK92#LnuP8?6pGwiNKt~_?>>@tNU=|Fv!Bo* z^Tswq_l_(4M$gtS1VrP?ES9f&=%XCxv(_o|0#%WNy|cTYsu^3UKRPo+S}mSLc_hW- zndb@=mEd1a)7W9Pjou$nyepA8|1W?&`JtL|obHdw*` zLt5BU@8H{3ZlF$3!W2~q3?>D1RZrl>OkC|0oDt+rh{O>8rqb1qg|ERLQZ6X62GcIjD<1zD9E9rHTc=dgUaFbsg z*Qresar`k{9)lbwGK>6WX&UsAsUedC(sTskIkukR*MQeKXvKkc%WdW)(UgA42*)=7 zrpdQ0``YCp*a(ikQczCUA8Zlu`$)cF8xn_TnMP?@sWy~4X^+G@LhWVR%^%5rf zAfva~a}+=e*3;xBv|Bp>*$taP0CVGU#6Ko-1pncZ8j$3`14u#2cP4&Sl};e}?Z4AP z$eRDrl{oAC#LSJb3Qcy8mTI-kNYJ}3Om)-tKLs7?KB&YO?Z7%)-f+9js3F9D8Z7}X ztEd@7`)PTEO?tbgb7ZCUqw!SfvX$kE_ot&nIi3XQP-49o74C;|S=iTXk;-{-1&x7i zW3e#h=ISFZ`&LkjAmxIGYS^N9rm{`*y!E)tQ~?~}w}SyY7(f zET)VFg>^kpm&Gzy*ukxk(_&>m)4u+#s{Vdn^%?BzKSu>B*zKBZL9liU`;yw4f37nI6Qh(?W zDyJYa%d~Osr}!T-=icz#xdSK}>t?B^*^~EokFc=W75z2@$Dss%)VSd2BK`~D_fxXx z2~xTe|2@$rU_8i+q)h1((RJVRHFv5kbR7?T6l%l_Dn6d}7IKfsu& zom-STlKj;=>XJ0{2>dYhMqh1}&r~L#@P_jTh3yAq`r$0tR~ntbyS_?SR!H-I2gMCl z(tNcvd<$(j2vHYZ1*dTfB-;}7%}f)({C4zvor(rhZ0tCU5W z2AFh%22&EcWNZJ!ftKAaj`nc$@d4RQK8v(|tHn>y83O#*oQmE94bVR-l7b_R{4 zI{fRw`ee*IWNc6>@hrm@vc|U`uzD2$qf%B0{=CMlZH{U7cQ zi1q)Q386!QkV~YY8-JC>Uhm)D0S-(_QUPxOUSl_~a%QgzrQ|ND9KVg%@$6g+6;)&~ z!X0uA&nrw}-_)i1Pu)BnJj#@^rWFu1uJoZ|b*k%I;xIQW%pm8Cgf+Ut{!sel!0l$n zAAyg%>y!t?Y9T*G#?=p=*Qa<`!X}(Kl&Q+d-iB~&=2KwszTI1=pVYPI7)Fx~~KPA;{276FkYHwa%? z?p1Nqnu(jaJ8S@BHj!d9p87g2s_|Fxk8l5i4|>mzO zT4)JAu;pfx)+ZkKV^u%5<6ffb?8ZCSa-wN0q96j9><|S+%?vC&6(;2le;>IJFwxbV z6t@u%Hz-f8GpMTdC+y^3%pkJqh%6E2uj_x+#eZ%Z-Rs}zeQys)bls{baq5O+|6m$b zEo`pFd*;|Xz{G|PAfH^O9A!;ta0cO@HPhN8id12|0*9J+Eoc^(omd9?NdR9Oz+mi3 z0Vr5kBwN!YxNKFEax}t*B_GDDs|e&C1`k>%R{nsmHjut{CKa!qK%ga3EH8lW;)Df zTmEguBs}5B^J(AFv{hT=;snRm>n<*w6NF8Go!@4_I%D+rlxJ?eAnj;T(dCO+9E zM`GEBp#%`^6ndS5uClsM;1CBw2FrjJZ9b}gO6`xZqIsVs-?4rDFb)ScTZkxHZOx? z=3Pjd^+Tv`O)M7IgjPc1{%3vn<1ca6a2 zExmW^#PtB)_Pv2|fLC+;;2+j?wX!{iaJ1b(IcWU{ab-duQ__@TpvBF;AZ3^BPJ|w`N}e22hLwpHRX`XjBMK172Y(+bx}B$Zz>~ zl?j`*XE~ENlrpn(71mk_&Tis?g!Xr3J6h^AbHaPo>aeYf`&&&<3U|yqtjp6GX{#ym z=H0`Ti|w^*qdPwSTU+A1E6U&#S&8V8woJk>=v`*a+s4HBzVEgga2QAO&}(k5g|bhtP;}0;o*jG zp1=AAfLdR>wMdlWTCd>HK3|UfGn>N1#-z*QxH#o*OYVdrDr{KJ&ei(dWaAa%b5%8b z|8qB;_xVHKyI_G(o4(!SEwfq^Na@9-l|;pv5WcVPa@A8#6-rbj6IjWVd7Xr9YN7AA zs=JZ(^4^R}M0hD3A7AAvq!|%pQ>u9GgT&CyHqWD4C%;MC&*}276l|%lseuuz0_9q6 zy7)SSuq&g<@ zZI|6D$>FTG-MD6^Ti6xg?7f_%bh6_%pb929Ei$>Qi=^dmp7o?E(4^BJ>VqI@%VzG< z-+FdLMF(s=L~YeaS2Kmr5|@G3(S^&km&xY^hATWd9es|0{?)JFZlyo1{o}&HLUPF% zI#-H9dR}oFR~?T*6+5|KFYMM|R{@XJ^Cb|6vKW6VvbHzrHrFb4V8!(-# z;-6%;$flDdS+ExVl)k|5qM|TpQ}YWoV|IhF)d|N2w>ML}^EG;TmgS)#g{95cPAAJw z$y!xecI_N3!Mg~D^Dsa_imJH5Hq_1lifcI9cd@&2$BRJ05imbIGtfkSUOm;5fho3X z8veB1^1&;t!#VS2hu5kR`|zvfYa-$1keBcDJkysGIPNW_YJF@uj@Ri6yARg6k$22q z=vpqo_s-zsd8r0|VX78aqU@BLrpvRk{~kf#?|uc?CwVAU3+xDu_VxXQhXs(aUb%Bc zM-S^+7u7&^^IP*ZVDO3&t96_eqwNzu&%R7Sic$zN43%Ctfzx_)1a(1P4`Py_=YQq+ z^+>Ik&daCek9_OitMd%kA6m@(_AR8VDG|*s1eK%iEFU%Y742L3Dg+yK99Nr-(|07 zJPk_R{ee{4(^T|4?pUqBYTth2M%`M)gg;fy$h^7g)tTCwqqn(dpwjOBZ+7VVCieLe z@>hjE&plG%(&ZVT&KJ#|U(5Mj<*W!p>_T#-5&n&u;+2TOa6Sa^!PD_Bl?~xF_Aerv z9}VA{lkX1P`@QC=_)A?o$4!C1CP-{sH+BYqO`=EVv=1Yq>t6`Dvo} zLp-%97!O)ll2luZhXGmUlCsxRvI3g5L#m=ziu#CwUX(C00+cw?#O2i~E~IJE1-$Ew z@SSh`IGk=&nOEeMu1=JFt8S6Fd`pM^ARs0HMHOBYU`f_?xIv|v+hliK1|}76OVk@+ z4pN4TO;dh603v(01kMr4eNyN_+XWUO`LRI6ePT=-rA<7^%wnqugsm|L)V}YrB`()_ zdj=nz!**BS>Y4*y{HiJ!yL4hkI$0ORY(SYtz3993Rk5Ehf8p{X(7-^E)tbJ$UzD|& zfUy3wRYepuy34ZGW$4FDJZG74Yv+E`?q^Jz|8?Y#m(+IOCm1tH%dyf7BJG(Twn{0F+KpHh7P?pnHA(Ag{0y1O6QHfr+g=QH?DvMd2=%m?2~0s7hXxCG=pd5JoX;%&Wu`t zOYR3||51Z(*Fl8RtTg)8q-#ofznr1oOlayoH=cE93i$EV`MqzCd8eYMa%YXu^w#bY z$w<%G)7(sl;3^1*J)}Xj8Q5d|;}Hxdpe?JZL|@9&M#Hmrjg2q0sH21#h?pU=(gIOW zE8>+}Z^bHNoV&eSa~c{2a0F+7Mz#giDW{0==E#vfo+27Jy&^iS2y5yjR|Vq}rqny( z|D{-BVMp@W*`6je=WZ8DU{71^h+b+qw*QMhe2LAxaP(44iswUqEqMNM(_6vA%aZXN zTv{$*y{pKyjU43Qa{ao{Q9PeiVJ2>9L-yAbl_b;A5#AqpWkmnxmv!|j?kNx(JY2AQ z(I0+z3DjD9=WzsIpu~8Jp7oRKEr*i8BQw18MQ2zgEUL)Mg|s)Pdwvtu{v$nvU@AKGkd3z8VSQOmh2Dl2oke;dAnx*pu8!a9xq91dZdOJ1Y%4 zKXB8mFSs$F2^Wz%m}s(!3ao5iB3=zF#kdwbs6n_3qJ1Z}>Ub^xX6^<>uvl#H^{;m3 zaihJ(7!amEq?D-C3=a$Y7BS8dFuZa*m?TKh=$ms*ZIuz39r0=wk7S~+Is0|O^HtXn zJh?;UyL{GnPFsPyZ3lq{9Rxaa-xvDcG)^Iv68m-{%86dr8jFiv^-6hA(#LQ%mU#C! z7cSj)Al>tIh1ojPPr_Y%Mb$m|y4R=WX4lg^V;++8IT@avoYq5YoX2$|T(;#i$BUa) z6??uJ^8gJjGeeTqLm?{{B~jXZVUK4e9?!EjhzOy67zM42<)8}M$_Jtl;YTmV11)lw zDQ?Cl29fTyguU|8qP@r6LMxFw;Hr#@^!~0X*<2@q(iOl{eLJ+dUInlE)HtH_Pt7Wa zd{2|io*9YFuC0O|(6-vVB;g}Mea1wl&wrttAHEi|eq|@Ol)&J9C&F=+kz4MZs&!x2 zK$p(c99Hcqwnpi2gWxXhDli%?bJuNWRi2LJHlXTJ%`aFye}DgdVMpad63SeZ!&A< zWas~Ly(PiGoE9VFeFMP~OyaotvwQ7(X_ow!!@In<742Jca)n@MydAir$q(6@onx1w zS+QFK>XpySvi8=9L9E#_yv~~H1e{Sn!_CtYEV2<80}YBJBzqp}Y<7NA=I`uad&vb_ z{40ZK#C*g0fn~|TM<$QekW?qBlQ8P|LSFvk&eToAtMSzo&jUZ|#ivQOb};%S%{y@@#Rd~ewGPG`G!f6 z-PVPB0BdV!30)zg;L#SfJ$?FH2L=4BOtt(OYGMNoph^x%zQgmBpO z40i9QO;w-jnyX<_uP)tI?HqdvGaXTD#(kXTM); zEJO8&el%C=2GICGI|~E`!yXdg2lNc5!T>Y6x-MY00Dy%6VFa-F&Zgtt9xi%W zKy#H_U;cP0A$lvoXATIT*z|?)V^v?gq}rrjxKSIIe_U65ds1g!UkBwP&Aa)wnqR3% zV=AB>-T87V(xq#l%V{bI8zc6~$SXqb@HuRe7}DTZ7Jc#F{d(I*eTw11;M9(1#93!v zVx9G4z5YgXK`T?61qmh~P64QN{}Q>e?hmZYTdmCg!u?-9iW0e@R46G~;D-32HUs&TQA4XD{FDVPO9H{ zolaphO1QOm^Z6V5yO_xZ)q&baTV;~0itQefLzk?)7}H?%-qj;+60M5~Tgw?0AuFDp zY?$kSwJ%fUE#Nv7g+q(u)Xjhc{6~?Tj`hj{HK_2<2n-fk5F5cLQQl2rHq2g%ztm^X z7mJ-^t3D{_vc3DF?$4dJt+TM`tX|( z;5F&Skqfqkjku-~T+tHSJU;ww4~##SB|5_ef0g-le>&lc*=1JA<$G;6?QTC=ZvJ23 zHlr4QrivGTdw>V#F!$p>>(K05;++>p;WJuF<4ORhhAJw)QbV`Exsoq-;{dA%SKmpq zi>huZl)7(lz*D?`ck6`$t(MUB3byW?PjPe84qGC}@XaS~rg#ewihscNc#qFi;3FJ+ zwi3F8D-h{4+JfdFU~nQ#kH_d}+ZcIy*feE=`&TJZPWLgrF+kPAxg&4Mf?X1`KbI$! zf0=b_276Ztanwlg=7$LLRe^{BE0wQDB|b-%RG(!$nF6id$qQ4s^P)H-0Jc!Nof#JS z1*5KsxnCGBm(&DDOs}}BXd`txm-Kk9zG7BQS(Bxt#JqZ0? zDK~SU$<$??IJZjJZdv=gLph*div?0gvgB9xN?XrMOLP;^o%btXhya~~ymH(2q>{d9 z)Nb1GGrvfOW+-)`InJ4-!A>&fNZEHT^|^Z_%V3K~7N`Uu$rb;!O7IhOT1mvU%-T}W zq_i6Tag&YMZBhSDSx$lmD@nlP{aRuJUrLSX@&s7Xe;VOWp+O*FofGJV5Fr=F^_266 z?`iM-y_)avV^6ih5A8kG2un>q4SE}4o;pbH<>!L~bf6_XTqxemO%S_rJ4;+!T2NY#D~E^H+h8gey}h=ie^y8&X3X}Jk{s50nHROi zpp7H=>f^f>9pKimQJr3^_29 zR$-C4%_}WY%~BmoKKIjFz`I4xIz3n&z3F{f7)iU31bTMa)%H(MY}1L!?$NX+{X6uF zJ^g@4jpZS@oW0kceezB3`|(*OnavGt$w_h!{Jaz5oYGFiX_)XI=>l?11t~wRw`|hQ zvQ9xMvz@X3X<)kgi?)~4)cK@VC-i|m^(Q?`#&%mhZYM!$xmCnOu={pM`@kIC^&sgO z;AZ_@2T_AI^XFYs)&5XQD_(8xC8E36eKqhlfBI%!5!rEG`4QXYr%sCha;P$N zDR1uQ`L+tdKjoiJ3yNSBzASw+b#K+|A1Fi$wvH{2huz==DAg?lj zy&LBEa03gdg$%jJD+3|heY&;-rtVZge!e9senO&+TwzXBu0(L`eH1Y)ltiI!Vh+9Q zzdrW6wcB^KB@Lc=+9;t7j{94cw7RCvdq3gX%5~W1d5kJ7^YSK*2?`#v&!XEkTi@TY z&Nn*i>8toK$7uWC#s9-!*zh>Et6XG8HHU2rp;eCPy%w?gbH$2(l#QYf2r`RjUyJ-sJCVQvhPxFsm)4g@-bGOs_f1fei>1EY# zcwj*MA?smzbg#ofLN0dI@`QQ@1+j5szYSCrqL6rNXkvq(S83 zZ5oiRlCo;0TAex6QKV522Ek@~_B+g={#P2*ShA1&v$4)h>p!{CbUh6(y;*gUI_uDc zcxtfbAN#Ps!5T$k&l=J0{vB0uF6OD8=)9^(G&hh7iv@VDdUHcw`$6@1qX@~80Zy5Q zoX2g3{Db@}ar@V}9#vq)f}S1Ut&Vekck(?n69cb$qS&P`TN}8Nd_i)_s7r()&3L^M?U|d8 zGnh7c|QN~+X#v-5># zZK90*rZqI^Y=rnHAWKr?gviio<+L&ziE{ndd)e;*gjgjNrY4 za2cTp<0*n26`9g4vnBVVt9x0EP;EY+7%AYaw(CTP9HjdU`i!?cKPMe-Cnp1 zBahchcCvT>N3C|k_bswpsPxk^ttoEHu3TVUE5&v40mIzS8GiuZIe*&6pk}>D=Usr? zTVzD7O-tu5rlE6E%@Lx!ip}sv>D-o60f{U-ErAjw;O6`nF6H;%eDs%Z_R_X1gfA2q zi?AH`AT?jXs+6mtfki=#y@XNstwTM?PfyOiJu%7&(qqwuH-Vx3dIq0#`S);HHwvW1 z&hZYK6jU4EZb_rDJ&C!L6$owk<6XV0#~@QhE4=umd0893_Zqs^?vn=;V*X7G5#q$+SA(7)&pke{E|n-tkwprI~SUXfN<7L831`k2k0nPY-^% z8Q1$I>1siXr|){y1V>;Qaygvo+)T#Vhg&4N?a9vNY|^7bWr=pM0v&&P*L<^3=}lC2 zczm$0=!9JuzJ zVKytz0TrmUaVBm91AbG6uw%2cxy)T#|FU#uA!mGmzTWiFVGq&E?q0RpPdT77T-~NB zTw%zA#KNBk)y97BY@7Wy23{+?IaT}h(cvgjY3~X5V9Lh{yBaQ=rNn1bOo40!jrKNH zc7<6$_4C|V-e|J?mBS;I?d@M^@m4_nI8VMbM2F!g0Vz|;rr|*M_wHTRMcTeoC)o$7 z?x^EDysNH0!tC?L@@n1(T1DohoryKVm|By`65+n6;20fFvpas>p4~UmDnMpL%EOQL zHm^b(x9oax!R73`p%2x#uU~f3UIiR(a5}Oe7(qs|2Fajbhr=e=doMOQLjQa^TEVeh zeg2AzZREwg$y^6;*}ENjCx4~bN&cpAa0DJ4m!`Ax8iJBJk^cTsBSFiYi2G&v!Fo{@r4e# z?s?gMV)OW?D=Fvc7yaB?`4XEeK=*U|4+~=Jovhm|b+3YTMmpaN1r9nlnd(5Tv5nP) zjl5;wwhHC9`uz7|J;L}oqvxn z$AFDf#QWVD3$tv@uzF}G1B+ueU@Gj4eP zEbgA+9t))d|7=*B0Q#Y}kYa)^fFJvg^ONN9FgnsORhPPg?3Bg47TibhCbXj(j}Fon z!Q9rLmNuH5zl}Cyk(aG)*()IpE54N+*G#7?d6ZQyDi*6oon7Z10p#$BGy6lS5s$)^ zW_DHr(J&h@S4_vk#`uh^^t5WzPo_vZzt2ZAQ|&k_x~1Qdqe9}YxYczOaI~~2 z*-FtUan9sq$8?aFYdMsVG#Ax5#j1NbwoQIx8j4<&?mhW+TG3)0VjpT}r4AY@$bC9tsi3I&5WqMX9!LJI{(q z+;ZOZHrK@Xi7j+gA;b{dIzF3SW)v0h9dadql85X@77cfR#`*YhYub%V;L2f8<-oyX zvU|j~>XfRPEa+DDE9Y#See;_29C#yR+&mC@kRRsWr~~FzD28XNjZH^j0={>rsd#l` zVi98}N=q*w1;mYt`yWjko`Ff(xn7*C`CEzeDA$EaOyU`-@Vfzx=}ZOcLMTi4j7K3EygdoNOV5`w3_N>WrdRPleN_@*3DK~s_ zGV;RJr#Bb7dY}>8ytxyxL|zoTIXrC|4o?sY;P(+wwEOXEEsV`LI+-&J@-#kwl?NqS zP;@tPB)8&1t`x?eI`=?=XT-TN=TA#uPmGYFkTV^E{7U5TB8(g|IzLT~9XhIQEA9sR zM^2G#RAptEA8 zp%)ulF+$g4;Jse|icQ#!`Y>t>dim~#a9gg9!gt(bmCntQi&nf8RdhB{!r;K1uc~b6 zr2!jKc~PYI2IHGHVXQK8__|gX|MD?l9$~*(z^a*4x&d&(;K(gwl_me1sBTlP=M1x_MCk30f<|CUd|lI(yFLdUu>%z%xBx?JNP@1Ir>5$0ZCZ2`bg@#>^6P|s{3 z&eT4r_e|r{FmEpcFkRXVn&v8plmcp9j-F>BA>lI(eIWeX0Isk>vso$e&-Ld;zQ@Te zz)d%^mtQW9+w8 zMottyc0Y;Cv{_Z9)049+4e)$g7ElQ$*eE}W#k@hV5cI+JAZOM<0z&qmlLoELKg5LB z17J>IpVx5^QKcv#Z2gm+A{Ai3e-JqQ9q5ZG%9I;b+e!IZa-~5(g=gPYSG~Chw%sdv zANI%x%wo(l;!TI3ROXG`+p#NAme}E1>G}m(p?_IC`G%2Gnz3IT^->r8p)CIK7%_IL zob_jpt!a;zBrWueyfA+(P5w zo1=bGTX)%3UIy<^WCY?tyA<)5l9`o_NmM30UR{P#-HZO3}Awn|HL&zVX7%H8fN z@0cz!G$wW$w6v)QrE>4h`AE$oR(os~-DebbtAqA^hqAh~d8wkK(a?2yz7~n6!yY@} zqz@yNp0i%M8W$H@e|~KwkSD}QG;=}}|77cH3HH7C$)pjze`!I=+Ro z+UwdrzQ5GR^TYLMnDu;5=IQJHFHiD_;%o!=zn|~EzSirrtyUxkynSn%ZrPuNuG+6} z?vr_3w)?+$N^?(xcjdipx_!$CQO~%!I8Oa{4*6O1tstV65jfbBxdA%4MhGct=$_Gh|NQXV%5eG2@HnM@owLa~ z`ED*aD=#Si?JJLvXFwd_WWaf4FJ%+ghcYh3^-uB27ReI$@0zjdEnqPadv1mVdH1v2G zSlX}(2rKeNAGy$PWd7CHJ+gaKiPE{t@v}eiLsD5nuleRJ5Pe(GLkwlGE;y)m zRQ3V;>9w;R8@f!e$L3u*QgZ$H09}Y zOoOVvg^)as7k5SbnEPK9ImVX&Klo;x!h60(k5RRmi~;=Ystyv&9b4{9dON**uo+9G zUge{3yVy!cwVmC^tjKX7_|;t;BoDusuT<6ZsO9Txo|RQVc=;DpGOhjBQDQm#IRFgZ zUO=3M$0f76X;)BeTewSf;HkfAv?Z7Yf7Lg-3eNm5)OJWdDJs2ko0N3{Q7w1zP|f#Y zTA5RflGdUfg7qj6aI&0&GMHvMPBC}cPNB0AnHm?ntM>Z9(;tGVpEq2Q+YNTMScZRc zOlfH-r73#v$C*l2Xhl*uCoH!3RMYHl*3&NMcr8Xhf6TK!*{jE#a98*`x&YhUt$IDW z(g}YOe;+z9$3C=n-kWH;{!*hA+xmfpsK-9noL$0-smmN%2-{bU$wCK>f_pPnZAQNw zr__4w$MZG~Dw)LfYZy?9taQ)*qvD{C)f+l2q$)D?91BHeWDNT%cCLD7##!=DC3C!h-? zj2U_)r70_1m=bqzbM|R#{J=2!^?F^m*LDYHIe7e?S=6ohD$+}SMeAAa4Jk{__GSAe z>1s)D?W=r3m8O4IFwv%wQa9J2=NQCrE)xS*d6stbbAzOC(_c6?n`Om?jIl!O11qK? zRBF&6C1AKqK%m#6D(GyGm@mAqpqh7x1o49M#$wNI6VEr_y=@{U!m7z7*8+U!e8*MN z61~T^>9|cdwZ(u*l^~+vIXW59yypCGD=VgiQ`{r3Vv~E#Xs|BUe{I$rl z+Hp3eDY+$g$YhDES1E7`@C-X8k*2 zE5A=WxE|J8OvrVb@~$EF*-wg(Z%>QZBBf>H$$ap(FWThRhmlBIn!wT8Ayx6GOpV?w z`H;FVEE<(OzCD)V@S1gR5Y~RHZQA1H7TA9xg<$ZIB~?=_kprEm6V}Ey-LaOcC+uC}-p!JLl*gdZ;QmqGJcCEhe4Ai4W z_B=Gzd1FCUleKON=fxyE8r!dZk|{7-`Y57~^a`C{tnaT!8a_Jgh4x9L2<{V=GINYv z=nxK5=dA^qYVY^G3Pbr_*MLRJWgYYPzq>kLsB~UVQL%<~1~kNC(D0(1{imHqZ=-ca zx@n}M5^?GjDIV)F{Ch`p)N;cLL5Q2=-RlcFv6GyBv-(>&Wl22iT@spa5clY0+OVNye@|jxZ z!#w2lkD#OvSSIRBVyrXjt>?yslvdnKvvb#7OGYN!)1nXxynaxyiVG#(o)_T%s&iS0 z&-KQu4=35!o*$qZEnm82c;Rzc=XMYC*(KEP4niQ1PQXy{^rIVdhJwqo@-&EsSmCDJ zV?GT8NiR5O0AHB2(h_wv7xmW@if9?TrW%jhR(iaOS3kB44;1y-)OXyLNz{hIe(N1a ztzGQ6tZab^vw(&iz|goMCo(auq_HV0_L=Yi)ekUaXMz|ZZ1<5LqK_t*y`bfLcYmg1 z5>Rn;(b-Ur4|bL7@A}JS>+WM!+7mupAqAa)kkBXGt=s-0Q*aSFbX^sC(FJ;$vt>H2Z{mhaX&YW6bKke&si+N5vt} zFVpt;^bGRMCs=%hniv9iZ6%g`eW!m*ES*3Wyz&rqh}`8>PQhzWD$o zRGt`-E!vAlL@nX)A`{{9SC*W4GxEpRD`gtCq8|<$Pv%{q0m+Tr-xQBQVjA64QXSLg z(9I?=391U77o6OK=t(MXKlFPgAvAJtC@$+^@qQO#$17&2QC+l!-MI}o;&;s5zh0?X z7-{Q2n7COH979UO<_rwSQu4bUzX!D@9sk)KcWr`>6YnBSJ9Q(=^2a%(c~L)_K*8vsB@Ub_^Ph81Rthu{=L%+&+|DtgVQ#)amB3JA~>s0 z64B@)h4Xo9JNtJAcnEL441KcYTP9&+0S6IW`{i$DilsbzZLP zc|ESjE^8$S05L1K__ucv#NG(;?nJ zvt^7pr$$Ka{E3E#_wUmSTp5F|(O9Dc6k|KI$Ej0hiYuUIL;~FY9ZkQJ`?Um1YC2$M zmDzh7P%ndVjbYo7RrcP5AAniN?2xMp^8_+|p(T9f%hI>(n(#7F@M4%3n>R&!mdH1) z@PaZH1h!A!50_^;MLTFz^q+rPUh4f9f0gat=aCge$!hTfjaT)8;aIG3E z=3Kzn$#Xv0ry4^C*6mL>sJPK06Sep*>EfcVMB0QJA zn$jhn&bw=ly)krUNP0nYy98A?3JniWu%)XDn3D(8aP4vkYUz!__LzOA_Hpomg#fD9 zv&nY`*MbBxm{>v!bNo+5rwAB23gq3{oziK{8vjPO)L``R=6{`_(h_lLwo zg|m-ncE>l!E^IlxhJ~>0rn5~?-Imr8|2ZgsI(c18w!y6?0SK|-;QMqhG6YL%KS%ur zIOI-pd?`%T<;z>qiGVbF3$U)mjf(3XR?M?Wd4!_lz7}FNm+F8A4$TQOc-@k+3 zgGM&Q)W}WZ6fq7uiw))XP;7jt{0qZ)z{AR=8WsBv_)+P0zU1wU z4?~OA!|N04cNFJmT+PP2o$zM?M{pU4l6Q9Q8vP?^Sx8*vVw*d*^-o4j=Bt+(fMFSi%GqKUwF8jPerzQM$5D3n`yM&N-PY2b^C!!b9){#g$H1%xVA zi`;gB{mV_MS-Xgie|69pZ8n2KBFvP~e3ukxNFc}@g@fq7v~P~faEdAH5QNMNySJ7$7EdMVK$s5Gz)Puz9P=k zvy@jqHM+S_`nAAquvMe;DCs)nZi)j(n|1fKmJyD=mv5Z;T zg@*&QMLf4F*L1Sax)*BAWmLGbR4)ry(1h5?FqD6PP<6~`2fw^DSNFA zy(d6~V%}7DvQV86}o+&o~v2;@=bQh>?yjE{RhB_vb|m) z)8zCFjGi~e%g=V<1LS0fDcS*R0Cs-ATHZt%ChJ%1yBy?Ve`#X%`ZZED-YboJQQZqW z?0|nbc(#OhK{DzBbqT8T0qNx_ni214@CtXD3O@Qm@r1<+5|cYS(fWF_>IoGa_A zR~AXnh^9lm*RvRG%kwkW97uX@=55k}V@^;~mPp?L58WRvz@?GC|r^)k^|rz}>Xx0n{X5m00SVGv?aj!>V5O6$YFp{mLT|Ic!`x z{7Zv0Hz$xVnGd*b(yZA7?Tcb13Gv`WcY8U-wTz*5Jeay1Ywa`9ySzQ2tMw2(**r58TOAWn5u-u^B+|_YQ$lZ;LZ6> z@0TN#T;*VQuE*QPcTPpLC^puJWFI|NoVibTxiK9;Y!uh(Z63S)%}HE-w|}a@nl~YJ z$MVx|a*xP3_@zgpyYHQ)U$3LIj-)CDMjYtS-Rv?kfZ}{^=9nVCzs4jPlfl@dmmJ^b zr88MiMU!3_?X7QL1&iWu-d=#AtTET9JnAAGO1aw_=2>T2buvtEm-TBIUrb4r?uHWg zmTsjP-PpE8NIk##9q&px@=omA84exJHh8NE?I8nU zG; zeXh!}*doc1ysgmj4*x@n8krXX_yg!~0dVjjvC&Y~1fkB^4@>#aT*-BThz1d)ep) zN@7&F%X`Ot7}4QE`i7TZcQLOUG;-M};be|J++D3iZ1I`5NJL%`dOW?en3!6qJ9t{= zdhC;N-fd%S0B@xuN6}ux-y#q&8UTMZkU0mca$xlJdTx$~J8Mv+dZAa=N!HMv&k|P` ztm5+BVj4kFv|7W&62!OL{GMeiRQ{LRIJl)rDWsb(Xn|F_2r*VE7vICGugD{+IA~UXjYwf zS1R3z3YM-OR|O!Pp9JFgLc`VQ_cWZ(vG<%1%2%_7jvUPAnlz(vSnQ?p>F z6)GpC)Fqc8iByjDhfeW;EwzJMOn(f2)@zskmdLi;H0zfKK^j&M0Fx5%RsuVE(M#Q- zj~!vC{5*7reXB{eLQWQ;^4C?z6jWNpg-EKllxUIYxgPT%u1oSI;9Uxh)|gRx5A7`o z0p|%@I1QgoutSV=dR12RT|Q0xl@zn=dersFKB)3LaLNJzQNZ)yhBpF}nX|gwTM;1Y zJmVXd-15#;Olr4quU&YhkVf5_Z+mD_#?vgx-O0WEE9!@fc+?rf1D?a{K~WOuQc+8u zJKeI&-kveiw2Bb;LmA&R^)SuFqneUJo{oCjrcSp6Q)S~$O( zPqYDx^~PK<{Qq8n)46jb1tY@vOgC|7=MB(=bJgX{&=S z9)rE&@Bn6_>2|yo0U}<Amczs3?bidenLS!%<~3 zzO zls7>I$-Gh0oB4A2vw-cK;I5UYTdVFkio*-9XGAOpaeS-v&;Uqd|3%f%7w}7WLz5z0VX|I&><2#3+J~SL5!m z?%^i&8aWx}Jbx_+8Sk}ytu?(?O&FnC&%0T|F?!ZnXIx`nN&EdE@oX;cDq@Gf3!=l5 z;GK?Dx&iKe)e>YDz!&Y=8z|IH<*H)e{X?!;O*yP!@h}~sv)?FZv!0H))_cCsPcd+W9ZSiE%Fwq`I2>7G$!E==k%G#r)jK;f z9hU1vUir?kSRlF-o=#g>q&)2!nT#mtEcFmTkOQ?p(UqK*6nPGz~iyQ$MYLtVj!X5+SN}Ct>ec2L-WS{Ej6KF4{7t5dYfLTqV7_6^JZB> zd?+#QxE0TXd*)~@RU$XyKEH!ABZzq1Yae?ymLwnT3`?~hb5tcuaEuEy?60FEMX;R< zt~O1?F{U@JoZnqld^lU@1NjZkz+Skj?#UHUc)BiYMq$fe92Ji0Q;E!7H-S`R&JM%u zCl4554ktWL*svF|vR65}@I6P5zKRV`PlAXj=2j$pAoPiApYRzp@i(c3iuUuaF>Fr^ z?M1xQjTnW5QVUXQ-Jb`^OuXMTe*6`S*(`o@R_x(&Om&rpjK2fR{uHLVFUo&Ow<|IY z*;m6f&`UXBk(&wRL+6N4SMDStLL0=1_54yj_Qq1Im z3L;bPI*yhM8I+4fM`&CvNjTW8L=b2 z{%QaB#{FaCBP4Ax`&1tU3}&CLmv5vACb*@;_OFY3iGVYu?@y0%zOXpmYx?}Dc71TW z>z7q_-`5H`>k&SGHw&OZSH`&(T-yf|CHEg8!hbnJO@%^HwfDzN;Z-P1-u+(kqB zKjUCAjhp7l@g+_hsO#gVV9_N}30YgO`7F&3V$Eoe|l zKF=npwbaRM452WT%I;(&&di%>7Gw_c<&zbEtwz;!-(tlARR6UL;#{Ds*f=Mh7p5(B zY4Tz5mBbQCidxn4u4gFslsC)2?;L@=n-?%4j7ut3o5{8tVS7Bt&j2HZzQ&B{E%rR7)bB9PrUS+=K)3iU$JzDeqYtoTclf@YY-i^O&(^;U1B$XVW$qvwCiChJ z2SJ8PA)=y15F(Tn|@yR49j%vEBz6f!-A@SW^e2Gh-K?J z=Jk-&O2zADjgSLJfS)A?mrooLq6#RaBD%g8PQT^-8ji_n?(Zx|Op)aHJv4uz8M)O# zQK>SkHl)AV;7n#dU3VT*2XWZT=B7Us*xD4}eph$j*rzH}SKOksrY=g$AD@02yd2V5K1i( z%*|d2c&#Cfl8Fznd4D3xLUlhNlkC6ZP_8?=9B_xYtp{H5A4yxz(x?RP2E?CeImdH4 zfQn+ne`Tn4YLApR+={x$QFG9j{C>v&;77&uXr}4up2K1L%0olHw^v8Iq!WJ&o7Hv( z!sivbtIkIKN4zsCH(Y{j{JB>{6{r8TcE7TaPD$jQ&WHTXo}vVE<2?}vQ z{Z$|Nz5D>no%etfUH2L`DIqRdpFQ(!ayv2N5_{N&HA4ULUt)>`J-CTX6a{TQKY0lE zYN9Y^Tz^c9Qf@_He3x1ugLG}mhg9n_2{PnYnA}hzBelQ8q!~rXW4UXX58t9c)81Hb z8X!^as^_g|{Yc}n1WzSh9l6{~Sh4&Hd;c@nIJEcwvMl&aT&)61zrN{Q`hIb*18YBC z?J;9MGp7{gRCBfdS1EC7HQ}s~hrI{G(LZSYW}#mCx$QJcuV$Y>&*j_f_q^A)8~^Ot z?c?&8L9)fvpbd9iW-HZ$)qF)NS<3sdr%VZEx1QFp$mj5jiDB8PEkeGS)#~OOdp2Arh zM*5l3pAaIvgr?#K+2#yDqqfDzbYBYS5S#Z^1(gF7^nK5_$>&t)=Z@Q2IiY*t)kMVz z!^qC2Z^&(lpI0k8;puV8L)#=0eOc9)(Q=4Aj6GaOFmVJ9fRRdXqQ}NgtZ(3vaxCS! z7CImJ;1>rW2F!4Vk>?2+Fa-QE$){7a@cz@3`?_sh8E<3%f#OP?n2H$Y-n67el=gtZ zV+24U9B~;)(e~{kL$tE!4U~fO;x{_$z%o5rIYu`AGFkryT{*OzM6BtVXEVd3*hRn7 zJbuvX7yv(&uP>T=zsrh`1lpK+fX{BatX(&}Wb^y)L>$YkuD8lt`=$u6gr`-w8o&Ev zOX!npiN^@Dozpid8uydSl&$6%_e$(qzulrV_uZ#Nm!*OFNUXW39XLk`oNV&5uu^RF z6T2m#eBtH1$V2X8^P6g!RI$<~y^2aO#HGu6~ZFL!KGtb%z}Qr~t}(m1Sl5 zZaktNYoH{@oy3C@-mn=jC~;G6-uf;3Y_{0#C^OH~>Pp@#_`8$Oo*JA~05nT;=Qut# zSru^}MRmCjUV!pv7_%@Au!$6SgGoV{q&*l2CGkCly1YUlt6zF58P}71uO!CXdgBpZ zTGS=>`(uM0b!KH{W!3B^k3p4xeUs$fl>0@NnWCL9zl>8>U&{8r>G7a(uOzR=$)93= zgf*C-A-Ctb9wimgA8+E^NfQoHLH3T1+lYD+yipI_4C&kW%ZcMeiw$&$9Pi;DUgTa0 zB1LI>-kRjG!=%C-vok&}H2#-wEufDmQK&Z5!+H0&$(x=8wO-Y}l(@d4d}`ahRV~DE zCbc;u-QtQ68hQ#TALX07gn=Coi_%4NfoT;|Yke-M;+9wW+bhBL6{x_S}||HOHK3UjRRdw zHgdWBXzh1X^eCuHT?hHnzt{H7=NMw!Xaytgzqclm$a7}}n)YW?3fTn+MiR>{u$uGC z(^2)5d%^F7Q@8_MqjzVpZiJ!z_7H6ivs!P~U&Vk)gZ>T^j8Pj&tTWgtMdm_eyeKFj z0#?>8QJCU66|0U4Dp>qn-TGeTX@_>*x-7!U+(~dLH2jXV`yjXSwY17$7lD1t0Y#m^ z`hsCCBg7Cn0f!+!Yh6? z(ktkF8LEC+W!*tNkzZ-*fSTp!wns^Gbl1Elv_-FCdN+w7;(8RXgdHwN#d65LTAPbM zotjGDUHm^}E+l{zS`KThBU#$j?`0_;5M(cZB z*#LJ-^=iAs4cq{pp{gov%8r)fe4Mtzp3G2Cynj`aZkvDgN}sL0J@POIx9~Pc;abp? z)v5OvzAZiPejxl?IMO|l7_{NE8fo@%gTb8h>Ce1BOuF}Jl;>zrok)^~Oz|5q>3~mJ zo!ZAfE2pM?>=a}{T0q|+Y|z`)jxNh~#2ivo3WJ-m_#65#5;`a3{J1wp$GMt)`fg_+ z_IcJ>kvt0ykTHQrJPXyT*D6qb1f9%5w_taIO;D^i{ASG$A8Gh^GtI}{(6$qtkUz`p51_8})&Ag67QmcYbPCxECy-9lO$Ry8b!)F6#M9 zgD*9eW#di()pEI zPN(LcwY@Ys51=4|XVcfJ)!ZP_JMc&Ji;GzG%tn2V7VOSUm+sfTI{UCOj1xV(`2m-S z>z2N4;)rWIP=Zm^)NEevXf7L}W7_2rG;hhvdw5XO$XYKBjz9*W)3sdEf1+$UTgw|2Y6^O@mc0l^QO7s_|o&WZT*NZVh>}|C_ ziD&(bXLobPZPz@GB?of(_ZW0FZ(rJ$z*yhbx%c9@*FDom!uDIK*{MFgJ1-QSYJS;e z^sgg>sXF}VxT7hz9v-tv#|uS?Bj2V>NaVUH=BJQT|C_AvNrW)O#(=y&aHO%S65>|! zR)4En5ZYtO;{d&bL_X9^xUG5>*U@@TmJydO>_>LM$fcitH7rhBtG3G}16*%Wp$ z#}7x#);C|V!U7~k^;`(jQkCRSgKN(Ma^Qr&2mi`kS;Jk$p$_ZJNfqRC-t}~9c+c}U zvN!8eq}@;vj&I&4Wjdbjz|@@7rpYG0aowT*$2%<~Bvh2M1A#y+=Z|t%j=Ivkb1yED zk(5(9#p2>4k|wc$3a~+7ExSt%L}UkTRrM535ki$$pALP)15_1Gos31eOi@QEhQjvw8^F z2zTYeP2>)4iqlMb9QWEYO7iYpQnWafJdVFO)T=(Pd7HKM2fWkb_#7Y6s*jB2j0ydq z!AiT|iLW4dRfp}%WmzJfZuW{s(JICwGTD52^hb8Mw|g)p3lm843pTl(bMY3J(HKNj zR02jA!r)w5xO;j~tX;0l3>5a!u|$|>;Pdjsy?hrT*|K5Qr1t5?|5@8 zT-)tK!8F@;iBv%XA%MQ4af*&_;LlggUeV@m39&f;R<7S@XiORIGAa#^>?gxL+2WHO zeOl|5uT*Ob(_J~4tE=9CgK{V@VzKuGqo1+)Z*%pS;PHR>a*}mOUra8M@N?yVfO$8Lby%-pTDPo z?yJ>x3XP04U$K|$d!sp2NWRZIo5p9!`~6JKQHM;qJe? z&v{5aAx~^5|2DWFjC9OZgnCOijxnwhK4UGa8wiSd0!;WeH8>ZtC30$DsU!YeHp-~7 zL`rb0gqSxIx@ zx{BR1JKl0Xllc5hzg0^AdH${_*`@E-IxRbI0-)X}du<^Vc8wd>9bhcXJJcO2)22!r zTwGLqrdb_X!lZ&s%O96G{@CWtPMe)MH}6v z!FU?LF+wfGv}=1Hei6RE)wjfB=8e116^4q(ZmLX2v0b0NOf1JTB8N###73&dSpBhK zVD}nSV#_igxqNVt?V$uv`!n-@2aTf2RV zs{HXMw8+s+cSWb#*&mU@E%fn2DOOhtQ!&>O=+1EXpZRRI392EGFFAdX45liw_WTe3 zSJFpzp7}Fn%DuxUt2q>J^ug9Uo38L8LS4H9!RSK7KmQUBa&EyHNQ#9vIRJN2;LOC+ zVC@!j*xwUojZ<|5(K!zI)~kv2(16CZrE*<8gtorUen3Qc0-?`@(Sv669K0>6OQ`S? zH4QT<=Zq6f-UkJUpb7~wZ4IRxKqb27QN79{@`?P_YWl_E7ogGgk`%^?0%=eKh>T&6 z`D!Ms`1FOiC{NGD`j|2Y@k`>i(V8qN*H5}ZllR9`6pTK>Pyha1=c@{ix<2H^@vYy*>c^|TI{57vI#eUq`$GATChwE7j-%okW3pZOESvW2*H@Su+@3Ns z2VTxIi6aNNmwKq3;P#vci)A@@)W2RPKM&m`M z$MI%M-pfiQY|{5ACy(q|$g+O2VeH3qDi_KR`rg>d?r>SX5A7*kZT$Q=4?u(zkJ}bo zUY|fGO`EPXv{*IendoZ+S1ZXF7;Q%qI6YmwM#rFlx+U{1m*Vx*EW6+cmwQ7>8rPj(3mspfl>o7r*_3tJ$s=|0|l0Ve_%9y zoUE6=i5BJ!{VceZiMB^#{gft&c?N9c?Q7K%J-D2_WqYoT@D?Ad>EysbY2_+wd8+2ERC~2#0*A)SRJ# z^-SycxE=puHqaM?B$(6&z zoym&h_>)ygUb_{E%|cUe(DziHTdB4!7rzY_oHsTHU@ zyt2jS$VNb#W|w`o>zVPhiI#x{zNNA6PPUIqY|jK~#yfK=Py=Tn)C=BUqdIMPg5Ub@ zP-YIUR7ndsbC#}l>p_Isgjct%X6F3r$p`8Mwebpf6)a9>^;uabZ|3_DPuljzQ*RC3 z=D!!sX%dBf=2O(tTs`ty(I)(mF%$J}$G$v1m;WED(x!zy(K5RSM<^%Vmq3mKbt=%h;u)dxm)VUF^rd!a;FaKzYF z>a_7*WVAkG-|oN+9H+y(_b^T33n{PVp)jj5h0CIHcY1pJpaUAbkzRRzw+~_zl3mwn zxpIkFg}WAii~UoBZcFkaNHLf0k;(2r9A|u#rI{1uf=+3dTknTvusxx~fVN*s)0*Sq zQ&Lser#&i=gdjw1XKAc;cQoNo6ee_8J5>8GtYxt;R+kxQ*NeecY?NPVe*YHdV8H{n z%IXv7AhLdZY!k37Dnlz3*$rwn$pvZJT(BpYojMa9a8yPV?N)`uD!{`u{c0JqCjIh! zks^N~eFh|MD@U{Z?GhmU?0lZxR<(jZKG#`P{X@!yd%q=6J)1#0ZC+1Zf&HXB=-9s~9r;{M^ub2cW}cU9(@EFw zc2#Ju@DETZH1?l$0;mDIa0tBD8*ZzswWSOyRpbBY*16`te^&${-1V-*+uhA`f})o2 zmy=~`2iC%S)?|KcO%RnEe?-`M!_5i#vu@bo^O^0ztOL=wT#DXT*_8sWRKS%Snm*eI z_}kdlrkG#rwu+BkqYBF|S9Dxw8nF~VZw5prjIXruo?VWa2%x~AIh^MtzHbN4G(sMWidB-BJeR#fEZ=I zcUuE!MDxsga&uT@Zd7MfEm1AmU0iKozvIx9qxP9hnP_et#&)$f(p>+pu1)T} zP~brOSXC-a65$ow)nOLUg0p`so3V$aecp*?*;IRwBd67hU@-W;js3f%g3i><>Y-r8<}dG~ zQ*Nh(!+SPABipB0nOLo{t@S+Y73Nm&&ieyH+;{WHE42|K23Zs^q5z%gG zm-Lzr-4Kiq@a**nfy>d~k9^Q|pQY4v-QHi#LMfJhebIU57OFqxK5o{>C{<|ho7dItZ9#Ygk$@`T#%fas+ zqK7v3wGwtp+h?a9b1Cq88}wsdfsBJ2IR<=wdo>nvFlNzU!lmzi)0dIUyL{HhaaGh!W2o@Ac{8bnjxi?va9dT zxf^GPbYjN@^p?KLXua;#O{ zT&O&$YIQT+qUd8b^mm+=oZrb_>^VLElM%%fnJ7m#V|e+{yV-PpRf+D&hK1KRPQQGm zGBwUBvUJ6n-h1yzwBe~GsT)a=f`GIG*BQ;(6InJ~YE6pF{)10@DxuR{}G@15X zd8sL;b#2MYCEP`P^_5~IvPfmR1>hy=EDrWm1iLce)Z8GMifnr9KQA0PUzi!rAR<^G zT2MkvOw5E&DB!R|@PO%)*ncj8@c+?PcXlo|%|6jI`?PK>0O|XWVH36l2f`yo7QflB!`5}9i0*OZ! z_WQ1YrlMJ&pWm+Zpu9f5yFKQ%kQN^fCWNbIjw+3!zHN@JWho9M5+ocjZJ8Z6Yaf!a z+_#eSar+9j;cH`guXb)V$}&OweP{XT!3cbFN^an%cvc4?yYI$_8ze2+du}ktx!Q+mJB#`m;rm>lB7lao*XK3HfO#geq$}H z_f1`A&(%ezRj4g{Sj0*SAC74z{7Em9M=5G3MeBy7B^hPpJDf^tpW=&Z&VByG&Kuem zk^(}3e!IS<5ss-rZgZiOtHh$Vf8qIg58QF~4Z%~Hh7W{k)4LDOCIV~utpb-vou_1P zMcVCfx2x=&eQLmV75~cd4{7^q=tmAKy6r_Ew%=~wzfT$|HtJf+;2SySw*(nI<(jz= z2CSN2If?b1#yMM-O4;DNab}T(?ra551e~gZOy3z9>JQMvtO5rpK-!rbdTCk9YhU|a zdi4DGffkZ`gH0!T%k3g5mS8A57$NMFPFrofjT?Mvj+UyrVTMVE4JJpNt+2v zOEj-bv>7_)08g*biwF6=8b_U#O9fn9u(u-tiIAHIBDg}1nb^NLSDqto_?&Qo33c0iRN z?MO~<$7b`bJDOVTZTQ`|?Mr!a+rj8Elh8a|P8VJ{@2K(&sT8}CFG~v7`6Y)d|{>YxbH5dD}zw~yGDSlpREP(+c zx2qW`Y_QoSR|*y9JlTGyn77W!yI%#13d70q*1p-#DsuS!NVEbLVBQyU`#sAd5rkN< z7Qi+RM#fY2#$`ME`_IqdR+Z$Q_D#7D%ICjOPa(WFr9QPlO*bok*vr5}-(k(ZpMe$8 zHCp-)RN0Af=0Ih)1Q@hX3CA-xwA59j?lRMze(z^i;?)`3P(rN-bZYmd>(vUv=d?C? zy%EQ*_I{^ufr9fvjAXNYiuZr~Z5glrz_N=ka9wfx;Ky*WZ|vw(SzBrlr;xpw+mUti zpwVfV)CTQGA_7`YRY^}Bxp`>pblY|^oqlJIK-ee7*?d+4rT4ph2!4`)QOR*?Q}j-! zZ(^gy=wU+8$k8@ZQ-p*13e#PiVuhx5Osq5qFtME()Eh*N@N%;+&4}KC=~Kd3QrYBb z`j3#=#=|rwm+R2}P}+2Zp9$;7CJ_2kBz6aIZAP>(?DmzG8l4KYn`1#WKjQ1X5899n zXgK_D8pbU&DPccIZv0Pd-`TqtpN^4_z5ek@yIwOa4;=Qpd0%F6QAY^ch4lmP^XMx5 zTruC_`C%h$n#CDQi9|2EKTgF}lH)GToM`hu2??{G)CX)_FA7tZA>&$`o`yb1?2|$8 z@t13AfDm`Z2F(D3;~B5Aqb>DQ*ifSYk>aFVMi_wOWdtIED}H=tEJy)55c`#U`JbUGauSS2oT_eC%bsq@Zx`4Q!4a zy2?WCG*x*a7QRERcOF6NUc);95AZ!XIy8vQ?Q-{;xu2a{z6GHHR zWv#Kc#McLu5tGsC83lzMPBY6qUt=HDrh^@(FkY>NYWB|syb(GS(sUyr+$y3bPWbSk zi_Buu&(;DIT|k_unoex2opvy<+`cJCehaIY-3kqkM5n4a>yhXWgh9;z+D*|9ePYPLFu(du5;qcv(r9 zA_G_FU<8^DVnGA!GSZD;;1~P~^LA@aX9EzsZ{-n`?ICe11L0{FIxj25a?H+lYt8dVlWo ztr^W(57ol>RZN@H_!aOw>FMb=EC}}A$`*OT(Irep*8TCE&5dai_jQBaLb{v8jsfTq zL};a*18*;@7buZUNhIqw=4-^dK6JL8yx|mfN2>?_Vq~4oVpPNB9GdsHs`ZJIyt6|C z4OlB2so?xx@t#*#-uvoB(!Hm4l?{KwR_x$!wEq%?c-_%Ea@)u}oU1L*X)i*xStoA- za{Cf)CqkslaMbxy$<{^rp?-{x0*S20{CdRjWWlKOq*g$Bmm=vT5*BN6oiYmt(WxDrP$>+w3=X}&{F|_3`jg@p$lTON?ThY6i=uo|P(gdNyjg0z? z()NnOysR!-A7Oc_J$!MynB;1 zKU_-Cs4MW}X4`U;Tv4L7A>vV*&Q^+xtFRI_KfB>;vZEKk^1`=UW|aqO`EQ8wkd0vC zbpeq)<@LcLc6!csAn|XDm_)#HhKAZ`UrHm7i`+-)gh^$V%DG5kOW()PavDFQ+lw79 z6u@;r6itEiBQvk8^?fxT6@!4u7}SI%{@CGo`fA&?*&Sp?xTtDjF9If&Uiz@h9wp!| zb-72Y^I@-EWi^Y{1lIfBe3=Pch347t#H_GvWAxWPC8pia>t;2%2mEloNbV*CMi-8` ztdVQp(1^yb!$psJ@M8&5Zk-jqI?{`534MMpoXYT;=Ka>>1wmV@}}}UGB@E-w@Y+^Am#$tLx#3 zD1`?*>f*!}6_CtV)Iff;b8L}=A1%ey{*-s%r^-*lpLZiDDOjaK@aQyq%uG_tno=KP zc)#KB`ra0jQOMyo<6^&^A6XDn`g5v zmds7PEe!Z#0`pkEty&g2#yXd^`=%_NYD0)u4+j^t$-9LprbV%&~#`gJral_=yC-Ws#=`q#B6#UH}ow z63zjAg_u_K?{5*3=J>3aHo(MJNcp>3Ojjx z|0-v|$w!|pkHu&gm)=%fQEBHF&WJz?sU<4u zjE#z~)V>mS*}usld$71Cnngz(g7Gus&_kB1c2q>%#J4KaM&4>2xdzQj|EHvlkB>`U z-I*seLBm1PKKjL<^x`G7N~}NnPJ7CV1k}&|v-}ph{s6eZ!PCCY0;r+!%hOCyo)>;M zSfl6fjKOq&)7JGX5anm-;=XrUBJaQGni$#aMY$;?)a4_&|MuV2P}rWmGr6dFQ^e$l z#~phl#hja4aEAX9=Lp`joUqE7qWmYwI1LgU?7I^ZtJt0jzML#bL^9L@G!qPRak%w7 zUxTcFp6)G1qhX$8W~<&8UUi@PAg%(hYc%+ooR<&t+L^P=6TJo)HO{ITjeEv=IJCz* zLEV(Qs<^IuG0R!8e1i(?>DFRDmg%wg^U^ea{W4PBeWM5lmME{sd2-0fB;oLKy`y27 z9N+FLo7D~k7C!;A4>`GASaQlw@sz_nfM0d7zcqg>$pzK9s1PXN&0SbKR2R(Yin&pUEb?_-rmOGj?x?sl zbUUz~AZ)g-v$hUyIHW+{`=>fqy@OPSZD-W}jN3ZPuPW>z!)bPg65pliJr^kS1YUDs zP)n1t+o8H056RBoEwNndwEFu5Uzo_t073h%s`;-qw9TfcX`)F(`2Lh zhPlw8`_};uQc@SF>w`WC`5#^hrG+TD>>#_)#crj(HsThrmW`y;jup z7wsH-h7=fgqusNWOo;9H0KAC}t9wJW?)X*mqGv}2LCNfMKv)Y9HJ0y;hVR(|c8f#{`OOhzZ?eq=G4;kd-480a{{%?*1_LMw$owy=EtL1HtWY&iaam zNDmz|k?c!`suL;UsnAkjupvtIbA0A|uWWHD_w_Y&$8oWde+}AJ`$Jd@wQ$rzBS2;Z z9sz|y(L>YEqa%CFq1E|N(RiTvYGKnRqk7VZr&4t1oLb5UEboJcfey#qy?p8mUdalv z7oU$W)UR^zZg{ELW;?E=nBQuEJ8nxA>Ww63R0}@^Oh2&!X!*8cJg@n!CSi z4qjLyYFjt|j?=%H@#i4c%S|o2B^yipd;wWW1UYRTb1F@m7rF#Prhgj)X0~KAvo|Vc z37XL&?p@LUqv^ck*?ix( zPluK&#ivHCwpQ&@yFsgF?Y*g5)!2IkT{cmB1+_P|Vn=JGcFiCNQX*Cmdp`H~_j)~l z<*%%JT-SY`=W)D`y$@p>{w&sn%Ro@im1|IKSft+5j|U=@;+dihVLweiG@%7oQu>Ca zo}A;nSR$SWVSr+YHVe+`@wTc~_w(uAbL8GVW#PD$%LmwY@)@6X+tLmb7R?t7B!RFZ zH^=!Ony_=*Nk%WyZl@4UX`(1yNTuygiImm^L={!8f0NbNhaCx*bDIKQKLz zwbjVkuAhEXQ?fac07cr00XIDUeP_bQ3}1*ve!$InTDIuuc^1%1s9oSkoiSi%R( zB0Msfk!QRt`C0ydy(Dvl?O%UB*ND$uq;`RNE~yD^sQAw#RW7y}V_R;=sW5+1q~5m1 z7C?ZH2W~3-VJ9@I41EUml8#dY{lkkpf3+1X(jeYE#SJ^q9d;q+;#)cq1nmE4B5v{5 z5+ln6Jb6}h za~)Xtaq49veXe|s5^E5-4{8#=NeZ_SRPl=2f~l(>&2nK0S}%Gljn*D0P4QHh zI6+oLQOv$F;qO$+nrKsG>6^Gbd6fgyS$Aj#C{qT`>N7;WZ#D3KID|Q#sc9;w zZ;q0MaZFMK)kPgxldZKuwLncYDbm!u8r&dG9nSQt-M(fq{^lQN5FjZV}g7i=K2z&eF+$x zH0b07{|Y4C$9>5B#p!lS0-!4Xn}A1Y$B*u1VJ^7;k833-(dN=H%>6&wNTc#R2BWQZ zM++2C8G?ydTi7G$`blJILM~23pu#n^PHj?b+A)O#6B84+Tn%b12TVY~aOj}>fo|$c zk-LAnN``WprMR;#>a)bJ*M97#$~HqMB-=WDUp}@D7KLdFEQA9Llj5)-p=TA^vrXEN zM!?^rps2o9(J#3-m-J$Pw2OrU6E20wVd(d=7AU;t9@h6fy=Yy!!{FIi5Z%7|Z6;Xc z@b`Ji{Ha?cgk}!?_e+Ns6-|}Ek9SXC+SOA++9J#TEgvc!?Fb=!nb5|y6N{2b0K?*; zPp6$TUK<|P{6gno!=ScbvT~_os75Ad>^+p{fYUa2zJhweD=^q{H-{&~>2pj;$Airn zc8zBVM!5{`u@~6~qQ!#pqaNN)Ye~0CU*t!TQwYYE|1I2XefHD5AH!3i#c;~WrV`sf z5^2&ttyq#Vgox;k08Hx^ce@k;SxMY60izx4^?tbPFdiar#G%yN6CuH*5q0}8s#>1f+OuKjS%#2l1nNsN z8sS|XH?n47YXd!~?Qp(Aiw)AkV5Tkcz6j|7C& z)P+ykYtOn)?`6;IY*Z58gO6y58)vG)JYdbgX9 zb5o}PZrcXf=95_8t^w8&AYK;h*LiLUR6Zg-&3O@w)lC-A3EWAa{pkIHo{9!KX!m(b zw93!>@Fe_Prq&rIhqvb$qva-27I4%eD&{FRBFJt7jH+#S$?=}2m=&B2qBV2*WL#ra7{Ay(F zxF~t=dE_-aDs#aXyaXQp5FmVK;GFlCUuF~Ryivr8;mK~uwd|K4j;e(IzS7a)%ALES zO1@|Fck4o4Se;0noL2q#H|ntcy~aTFD%KOaQXsnOO3XO;1{JB_t; zTE(yA*A|;@2nW|XW~T5`$)H%s~ebSwS63^tYnrmuWS7T#Ty8&p51FCOGht+v0vfkDEgueRi_ zv*n~F)N!x59Z$oyLbwZoIl+jA{Ksq_(N@P{RNegn=ljoU_P)l*|Etj+XRTcPm=p+D zzY#UFkqDyF9qwQ21p$wgssg!sDHZ+NEP=U@($miAy`C?6spMfTKNWuk{@aA3d+`T> zypLp%k{HN~?f0zVPd+|-GLMX)X75|DI}AMDZa3F><Ti+^Uzb$M4+mKWQa(GPlR{cf0>y4_?c zk;|F&WwV^V_Nk@AIZN8k%WSQQr*{B+|3zj2K(TUKR&KihS4~720JQJg1=o^Z!TqEg zf4Hf~hxIbm*v65O>1T;o>y3|Th*9=Ed<}6TS`snkLEF#pqXGiV`7XWPk)?CPEHolJ zb5)JX7*v1GTi&r`&siIf1eFY*=NrK0E4B?2*lKl^v3VsDMNT!#74x$pox3yD#%ivP z`xV3z3FI>;H%xlvtOJ51-AM8eDC^^j@z+*854)zYR5G$Ju356mL~=|Fu@E_{i(~(d z=E&%%a9!;xCSB(Uu ze(;<`>)?C4$w!XcSI%q3Y*E_tn^=x z>#_VCR^XIc)2>^WSo@dZ6W~usRE=o-Q?PfQUvi)d@A>xSJ)^d-t>`YFk@dPi0#;tP zea=f?|Ei2~5S9O3V%dNz=1@9G-r|RkY~tv#!d$UaF`d||d1GYZNo6h@L(328+00&4 zWF+nQIc<>`cBIOzz)7f?%OQ5r$E9I=Ex!bdS8No}2Is*>aKwf`k6CT%EI@m=D$cUD zSP;p3x{#sgpRkIu+Veup`?!7}xZ|vKjqt2ZAY+@zD5NF5y+U_dkY0lchH77quVl{c z#b6RfC-r;fAHEx7i1a(K?BVH(O6JlQrlFtR_SH{dJM67Z?la$P|M@TGTWs!1#SYfV zI6o@p{lDCugzM5qt&kZ822qT{brIcSW^qfPWg*2ACKM}&2ck#Xkvs$`iL@|NsNpl_jS9KV*1cQGxX%~0 zJM1pOARmVwPvXU)_m=HCQlVcawkBieT<&a8?Kw_V5q0{0uU#rZaBkP_7pHU$oP=_1L~7#) z!IN3Nc=Zf+`;pkdfT>Vk-AoC1R&X+-q~erKPg~n|$VNf(Ju;}MTR3~4<5b9mSncdk zI-DR}7a3VPY;V;pz_=&%i}96dbL<&l*I47V6tkZ<#5AIr9L2Gq1MdxnJ&%Tj^gekp znvw|%g8)B22EbsnXBcLO?Qg+`%H-B5PDT>n)yzDWX#dZC#AI94{Du5z{*AL+D4x!@ zydsmdniEPGYj=Ce0d1aD$~Qf(evGZDfg#v=Oe&Sg_+yi zI-CKf-J=Ut3qu{ejL}<^ZI3U}9v%C?-bs@P5N4ewx<+vxGWUHwSkJYUF$t2BG`3}n zT0N_PONBmVy=tFG#aCgFjK69>$SKaL(&0I;i{znCMB6o3j|u6>M6G-G)KeR$l|GBq zzNn=@HWzENaO`F6_)#XDl3ZWq~ket(a?H$j%jDM&@K>ZKORypAYYvz~+U*5~XS?GIyTk&oUDk>L+s%7VX+esJg74+8z1r$}sq<=pEH z=v00~f8iPz5j@#Ck5?_KIBMsgpLDF3TO1mz6V#d{|8H?T%G~zCHun++$0TOm2^%^k z9-HBgtNbk6zWYrh=P)#=npYfdDa~FoFxPRMghIeyddS{yycar@-@jUxK<@4r@;~Vf zeP4&{&a)(phncs?>2Jlzf31IlD5Uo*~4vQ!oEap5lUIMOh ze+UG2F$DmL0dgLYm$V0{kg!e>YI?g(mKq2mpIA~1;rAc`5j zeUyeZEX|ymSzPJI>KC-v-tF$ZUR<5RY`VsEN9~&QE_O%R%Qp!znEDzB?F-?;aklh# zRvSGRP4wOk90sC^(A~)QcoK%AhBgf)WtoKmd>ZJ4@4w&>z;ZM?8sS6UKD z5fXU+gO>rNdw8qRDNeuR=rjaJY7&bUV;%Uu|7P1ylNt&9s6A@GEYtsd#Ei?K&^p$M zjh)5ZUgS+lewp>oL5lS|QU)YaM8{9*jiQDUKb^3UG5tNepaZv(2`8CDwqd;0qH1*_yJBX@9#?AtV85rzr7oPvFeP|2NrJZBl}Y0&ag z2U|!%XQ=R3Mcs;b*HSAq<OvhpW#3-vY2Jr570T)I)X_AYuM zurUQv>91_Ygzb<@@QMq zyx*PJ++(!$*qHZ4S>`_dJ(Feg2>Pa1BKoinoNd)JBaBXj{&nMn;wMF9Ynop(@6M}9 zM7YbnH9qiLn~-A1fnJMPh51Jtf}RWuhpd&bMBV{q=s-%W3n-rz^vZYBvvvM23hDKX z(6(osZ!R_dMUy3tciSK&T&Z*MPQZ3;WC`}Cuq9N}LSD9W3+oN4@UY(-!7*=Pyle|4 z!SPamM96A-onHQ$4OI5+)u;Z4IyvK!Q@QRpsp98v-SvnL$ntOOFh^XXP^19bxDBbU{vepx5>_ zJu3JD9OB0qzCO48Fjz>q&lze{2w){qV?!l%_v1I6Rb<{`mP~R+)zV}c@YsUTO-fWd z7Z3a9T(i`gKykoJQ|oA9SbY#>rARyyC9VQ_ag4hXL=9i0F<6=%X-pAx#4yS(Lo4HJBozrVZ5By_NDGxf7 z2Ip2k&*xsU%+&?42>7>&l`CC~V;WD8R^Z#%em_Q|8fbY zi{tTCzV%0_4|amU2(@4TET^A3%{7(vJme+?M zI#QN9xinJtq*UjAf9p~UcMB23{?`R}EXEpB+s)cQ&yuvbdH>wgZv813&yW#v#tHB( z=8Ub0&#~QR7Vc~sFHeNp1jLlJVD(FcB_w_ycX2g@m^Df@IpVY^rfyfcEeEW_6Mkmt z23Zz`lj4N;88HpYrU$^#@*XUr`$@=Qg>|nVCYT}17i8wqi9s%eu>a2zUV}K>*pF@y z;VtcY%thJQ*5D$}#KhAUxIGOFdu*H9VhEkra&UAo>|BlwelEo}x_6EVX08z~`OuUF zz>nJmBu11(>4Zlv738yx=f+0JTmJo0iW9$9M3hl;O_z;+?6&XAK0mk#ThhZpekTO} z8cpYP5?9zvzOVMsfb*q0f|&?1+o zZ^x`@#x}*rupZk=SSO+Dx5;|Qq_~f9#TnWnz*B!O&s&Ll_pVwuz*u;G+K{DtmG;e) z_31z}2;=T1%cH_2qoSF~RBO6`wa+qWV-5(j$jWtohUx*JljU7z;p$N$PT z15esSdSQ@&1;3!}kIjV7nAMg=Na)?z4xpfoVV!<5@|D8-ZE|T6b$qcR+ILKXNM%Pa z`QdZtworOr?jA+3O`Kf5x5%W|B%}5XV65H3&hQYBBIiq6@1oMFA|oRg-C@`%y*{OT zg7d2MiP?4-v0=OV#CzCgEfakUEV+6xMn#Y-ABg-uFzxLB~#n_LOTvInsCpPW;M)>s}m0ikty&@+m8;{j(n0l7KXrm>#b zswiS{SpC{c(@LO_R&MIBJd2w{Oml49xD$QqpZE_Vx-QR`cY0m^HJ&d3x<5>&jmzP1 zQ0do@M+wj4))}gz?LnvC)5GdkVSjOAlaeDYCR>B&sNI)N+-!95hUp`U`F%frldxBWXdZ-O_th4Uj zYLD12tYk!nZNAOW9S_BT8_o@{xDV5nA*52jwicnuORXCR*|ER|f_C3)kd>(ge< zXxzFsBb_A=q`C(eY?T@pClY15ds`ZwG1g3U6_W!BNFQL3#h%$+JbyDB9thYIyx5QW85QI=0whCIL1V|Uj&e8vBLWfXcuxw) zzSwAyGj2!u@ht*zqjU3xD^5`T3#Uv6-N?d#hPCa%E*Mip{rAl+mUsDXen1XqR+K0 z*V$phwZJ8FJp!FokAi5gg)YEZ`5zGWrBOG}?%`@jbwv@xrw;DH4p!*SwxV3HN1U9M z=L#=$>#LNxw9=sprcFZb__vj6X1^eo+T-DAPMj&j>iU&nOfL|R7E5$Kb~`JR7Vy&Q zk{7BsH!d#Nsd*7gS8LUyk)g+<8b8YP0X!)(GWZ7o!8X`=d9vFo2lde*Sz~bmIo>S} z2qCbSOUTbSp% z{>|9V#%a8m?_AJYr-eiQDp06VDYH%yh8^T?#~)$Sdk^K>VA`|6JM8J!9=V_^^)@pX z`8JT24g+fKqG<9N*VAx&`RY)&Q^8Id>iqV_M}KkN${gdEjQ!o0haF^;m!5YLc$LXi zv*{n1kjXuL8XkB*$I|p7V6lztOFaV8E_W2G!bWl#f|->+l&$<)a`!*V_Pyvj@kQbQ z2|V6jkTK=pZvz@-4qZtlwI}%-kUSedIPn{9-DI~JtUE%6e{!v4`uME{lrOR zraTjH_soDmK?gx(H=2Jb{K(+qRLwnpSgVm-YmMT;(aAL_6H)+>9EU zgn%Y9SDym&c@okuKa9V838}y88fw2seC*U?18#J5uIX?Xly;M?^r#B_VY?`kU~DzOIsx<(*;jva%=|a4IpLh>!6>GmX*g3i zDiWK;>a4-Y!R8^?dNUdNAS_{IRK~lV{9-p-F^Kr0r8~Q+b&)UTLtij@ZOS9 z_MF>UDQgDY;2=}(<|@)5KXE68Jxe;Z4;E<$H;c&0NEj^)I?8DSjZ|(3hjoMv3i7~K zma4veyAZIDD;^}9kQx!TMl4NL7~g$j$dG68A(O0nKazN4!p@phbtC_R=dy}Q&1hVQ zu{v-Zp0B?sE?Z*=H#ls6QSioVDgHJ8>OUp+82TK~(L6x%js)&<*ibsFBkc06%p zagN3o)#?^=GM30mV*<30^wU0ZPSSjDDl86zr9l%iw=^Rx_ zq#Y@z{*E#QPP&`NL{RQ(+X`Y8Eum_Ade1&?-`w&=*w}MQ={@bQ?vzjy=BQ4*EPv1m z=wQV?A2WViQoKA-3>p&egMiRe{Y#B=y_fd-_SI(mrhFGwHG>1( z>VqTF7BwKKt2wKhM<#Lgq(4->)hnIOt*WBYjQbQ4ldM6yzSm-p$%C7lNm_apz1Dnc zZjYKaGGtXnPk!wDmC5OlMDMz%&MJ9684YXQX_d=tD8N3MpM@JWXn_5cWa=8Wl4^ez zI_GOyCEjUQ9W^`5b1^q?y?QcWpW{;h7FoY*_QXFv95~DzLG&?X_y?rocCNCjJ-d2#S~1jc9d56C(%Eh%Tm%DQQqM zMDY-e7c7u@N6jnIUEghWPKzGqWE48tnnhiUA1L78X# zZR1C*r%Q_U9A>Ne&~pC~xTM1M9cpnUVuPYxfWT+jl*7B{Ir!E4@?_zR(TN${W`vu- zRIz>Bc1uwy3i%^B1pu>JT`3&j73rff>YM5p`X;8QHU4fkJ~4N8^)9$7w;lA+O_th4 z?3>ue%}QJ0e%IiUm4GOT!z7oKcWzF`gfh2<0bh7g)<>yPz468k1_|YNNRvc7S8#td z9_09>D+2ih0_0}cjmKQ#7ZPI%b zxrZDn6O)gj^VKr?gl{{u%KIuG$P#GUoHExLc5lv#e6c8G>-yUvi`%o4;<&WwAKw@( zR34F7cOTMX4Y=aFQYn8Pv|CQlhHTW!2z3>Ru~opz$CZAoIh4J$Otvv!))VFaZ;|UH zHQB>QF6|bALNXZhNNhS%U@Q`<5~m>=5Cq>BEZU?OD!cjhbI5&n#4R4yn#KCv(5T`q z`%`K3^yAq3TIc{;;YpA8*>AX%ioV_CT6A^XL=Pi1Y~S7w)|HMx3CD2#FwyOP2!@u)Zk*;#{aZ ziBytIaH=+Yt;9Q-#kIz&!weQe)9vG7QlOykCq>Qih4`U@EN$@90}>oxkMuuFe>3}< zTbqn1k_H*b`d{0nsV+-l!M*CsdCy;SSB*Uq*MCYr*p-V#7o845zOVbI+{>*>Fw1eTB1Pi~E=DZDzveo^`0fe6wkf-5_K+%=}4=*CB5o6Kf8Duh-j5oGItnOr83>fHH7F7lom<4N^I z`I~+4oSbxi2XO|o{Yk%P0#Ably=y{ONr~Rpu=$onf@5v9Y+GV|kZ?ufv8*t%7zNc7 z$SvfXySs-9L8wnlHz2FaVCs`?*9wh65uqt>77IfzfE%*pcF$sSx1BFhh9jM`t0f_) zZYRM3Q3M38s=MO03twh2}2u-%{AE1MBE1bU{uU|T4E1fMkD_Xfm{Q3aX2@Q3@m8KS`?T9%g3V~VAz>al%lz>an~-8@JPg~VpV2_Z zX$lg2*dUbV{cjxP!Y}abe%jXkL2UzuhBFQ)V;`}wM(zsHcYTMvTz^d4df?{y$L43E z=$|T(vacEe>zUtc*_bOlGoCN`u^qnmxd*-;+tFd+3g+KVV(@a7p}ynoDSa5Kv}PmQv5?TAr=B#R`9O}Ys3 z?VvgeD)CGCf&(+ANV~0_T_IuOfGV;p*$uSE$7qLZ3p_z}kf- z``F%4L4H(3F)6{AI9+0800DQGVEq4SWroxRFf`s1;m$HeS)y`nryj3*$$vF+E@J)d zQ@J{OcLS+a?yBcEe&wV2@c7^bG3Wa~U+-TmH~BzFro%KlxsE?)jBs-2RC)m|-s^Ep zC1}E@4rKS0S?IMr#S06QwGGydk69PFXob1SEWAvzB$yA%EC1Nq{-Lq8nmClg9iePk zQeeK>CrsYV`(XY1#R{Ta$54HL$ljk`V=9^ySc&F#H5)sn*MKOfzv6M_Nw(&}K+x|E-0o#&& zJQ%tek0sJWFRaFy{ws#x2U^x4VPz|can!qh;H;V2xsdH^8KYjVqI2_6{^|$UTjw%D zZ8ig4%93ZL*~;zBMNR90CXB8Z9OG_IA(;*N*!uQ?xdP|WKIGf>#A88CrzS7F-#Fh6ry50^{EE+=ovqIf&(%TJTf;*UuJB-0{-TTEZ3-1Og^$wlMX0jhrVITd#Gjb$-u)8 z`ndqd)Y7y@r0q&er|;w^q8zWTTi;53u<^YYZvAx|btWi6HTcdgZmK^>n3uFiw&JIb z?u3LZ`DI%A6V_TY{I7A2&?bsXiuW$LPyxba-=|uI;jTivtul{o82Xmv-7NFB7X3PU z1;6`!3jAe464t~*S^s5%T!lF(k8I}Q!zf9ZB6O%Z~`+Pfv%a?&2 z|LR-^$%NL+sf;d_nQ{70Chbd3*?~94Qnvkg zb~dD?F#5(k*NoV3@!1Vwapkj+_{%FQmvi1xfHLO7GG>VaUROnKYDBB`GiQdmCEZi^ z&pS9k-b#0l0&hMK#9LMiB8yLkYC&E<`lgsDDh+J~2y1SSPK;ojixQe&C-BLmt&UtA zK3h(^&~2v&+5Y|Ku!-lCcU8f5d(hVd4-}{z{+{+*;#n}wQql^sr5A~cbT`61ZoT*9 zYFxCXBE>%c6%cQUDR7z)I{wG$q59(>9Y;fi@!9p<)tDgpRZuOv(W+z_^o=AI>yu#} zD1W<#uke!*g+mdE0*MY6_Ia_kA~nvK=L>hf(_@8z=7FBg!|1`)#B$HOY#W)hi}MfF znJPu6WR|HTZUX&L31!Y@t(J-7V5=%IC;MseN3?6`_se!RutJ%#q=L%VY`Wz9nK=nqGtM!+9a7 zY-@{n-&G!;+qt6n=~2eo&X@04R4l@i4Wvi(^Ru2io;h|FWnT@L!@V+S)Z6E-y|U)`-hT$j1NU~J3vXtP;vp$({a*SNEyF1$ zYOyhG`&28VQM-KRcwKug79UYvN$i~IdDctcjPC_RI7l-f%u9%9Q*=pb?&V}Ytu@x- zG1Ojj(kJ&mHmgUzs;=wQ$%kVl*QeS8k;zgZ)7TrO_q}_ZbI&SXc`WX~kAA~M*l88p zq58s?OR&-#Xo6G;d?XxBzo2yJ(CfG`lb@1w*LI(_(aBq|1_fU0juIF1i>ZJf#xb9TeU16btQEBhvB(L&7ZV)^u8|Y;#v*Qgvp$wN zw!bo$Za%*ARQ)q&Z%g9V$|DbrcK?5DE?#mqVm~%3+f9=w3?0laGtN?`L@Mw1?>!(q zdy`BhKrn7!4l*=c?J*xOgzEb|1BdEUJ=5laNgtW}$~t|=F6R!&HBYsShD1haPJjyd zEx-0KD(I=kpCYU$*GLSN1_4uSYmy_Qf>jhggjl zN)9D0&mO_e##i;M#;~PFd}^aI6I6wuu*^*qRy=JRNecCvAJ9MCbMn+sW2*}es~P|A z9PZnBEI0Ud0fAnsDJnTXKaaa|T-G(*+>19fv}r=iCVfsD+%U()~MUgl(A51%+1yE+LKcrTy=$=Bl$EzJ-6iPPPL#l1!k4 zb^j_zqfEwz8inI{j1>hBw72?D(6kV2&^2KW(mF2|svND*)X3BgD3+ngt+lOh^>-SY zQ&x*F9_bmDDc4S&({C9JC|k5!y@AUI^+UCK0I$dYNcr@jNz>&nb{@KZdX97kEOX+J$#|j_4I4L0;!#49mP^LbuYd( zoW=$!l8?THhxLA@7)7ZfZ4V#y3KL|Dn>XkO(ke&XYHG$3!i=M?&Dk_AbVCfTAvjJ&6E3vLGxx+xDmZb5^1m7JyPbZC0x`4^Mg^53qhU*Z4?g7>4Dw_jm8`lRB z_7rwf6#5j5_oGYqE3n4R6%Pby6w0*2n!Gm0=rS)I68OF~_GG~;((I#;a^TiqvQ})# zbBuHmJ_}v!gUN2gZ-gsiE4&6NxWTWUVSPqOT`Nw02FF+FR$}$?4V7(d%KUo>zmA5S zW7z4bonpbAb5On_2vXFS_0FE&-cD+ghE4g&UE8>Fvl^j)pm|xhG;EZWW znoP|!$z=#5wwxn)S)o%2iVuHZwIe?E4@w4{(u_i zWUMEDOkqx_mQ_?};-q9`{k?B^WZ63C*cJQ{)H1?ZEDEOXR`-d;No`R{vG_`5Yc*Tw zPkkNDmA7S?m}76H`h@hugvOVbyN8D6`n9mftB`;n-T~g$fgq!%70MRIg|V3dp+i)d z>)o4jAtAq>QvxBCf48X^*FFJ;h5{F~#>=BplIo)SGNvp#9D;r6Un|cq3=8I)Qp=Pfdycg>hsls>fgZD5o_A(@%(UwZ|C-o!8 z%%%6)Rw8||+U3j%IW0GTm@es|9zu~EYXQobV(r;b+f8YFYKJ>j z$}I<-El_z;p6ugaloxBgG)_qTzA;c>6`Nn|^gsj)X?+i?b}wCmly6Nn;3MJX&}J)T zO04I+GFI2{{@DU)irct|reTb9EMqlYalo%t&@W>Wgn&hX=?!WB8i%ab1J_r-2~vdyC&5JXiY_0aj|(o=D~o zevl@Vb`PjU7ZzB3+gPnSL*f8Nsm6;!b8|t3^S|#D(9cWTjar_%*7RLI(qTr@bh{6q zU@wJ;oCDfHJp~&aGR5WP4=i83QZy_g4q2`~z*3}@m;XKDb$Z;xRDGj7JRDp;ps;wl zI>=x!n2>OZ82#Mx;KqD2i~Vz}X}b>J_z|8f2BZNi&i`#&{?yTKN(6Coie;mhp4{V0 zJo?p3pPPiH&wS9P>R_r1cB+V5%!I#yW_a9Fj|#PNe=%kms? zN(QmGtv*EY23atsVDoH9ehxk&`Y*8KOMkYZVF|^1o2vJ?`Pgc(jv?=|TPE3LBl5Y0 zd&>}T)zsvfn?*_Wrso$v4;aL3o17Z~E)tm{BzKlqm&!=`$PEZxX`OMz3hvOc1(w|} zK0$iW5Yj=8H$5}omF7yXufeHw8aqE&dk!B+%N9q1hiZ8jcIU|QBf&ef4) ziU%J1-ZDiWKM%@sck&=$5-OEPIV!QQVqe|OWYNuY*<^_&dpeg&&i*1%-V3;IMg_3_S;~7!uI!?2J2}t{l$Ftnx;uj{a*zn zEwGXMZh7a^zV9fz%=Gnjkx`r40HMKlz304r0o{I$?Bmh_FmBbPTs~QDsT#vby*iaw zhDCg8YT9+b^V5CUMj|%fU(Q1!3@;8!IiLYhn~aM6DUzOs&+nNv%#(D}?`m~6AChkb zCRS%aR37awVgb(pHrI$v)y%M^s7|ymavdJE@(-;M`GaL86a6kK2F+2_qE+7cOnYwI zx7k9-eFW(76*w8^C}7 z&@jQZCGQ)!pkIa@4j%f7tv56_XwpqDysu2twm>x@wiGB^uuUDX1JpMDviUCNfFBQs z0XJ!qal5UbvjN_l!B*D_pE33cxXa2*qFzSJPR{SQtCeRncNtQmdN>YorCNV{#Xg&% zvitFGk*O-l7wUz=EA({eDe6D}_$>XhZWV;^Y__erLDq~K=@0dRxW2SeI#)hSR`Kt{ zz+m|2IRC=_TZO_?ukmU5A^C_yr%avGe;lu4BlDY%HDgLjcodrsgLy4Z)UNV~MhmJo zd0t!s&U)mz##UvU75fUyeaGGq3NXBC^P~Njugl)dC{1LQe>Gra z_;CfXbX++EjW%1=FwYycI)?Ue6p=$y#NJ_*VNG$?H_#uuVP998T?%eFj-dO z3Lr|Th5ch%HV>hX7`#_&h>S!LLoe@&OFz5oxlT|QH2cyV@-EbD)d<<=ch~V9c=H)c z%Cxgy=b7^1xLk717N~OAK7eU{AgdDL<}o<_WhyP1dY$nk_Uyq4=#&$MIa`dPOXW#Y zzJrxtvkzuJ%Ua3b;7h&37o2wTDzF(glTYN(=KDRmVM!nFvkg-ZAn#c&FMrPQzUskk z_wEmYG?A5{GG>~U)KIUTN4Wl0t48iweQmB0{u;w(UaFb&5p~EftI1Wt?ERdzke{+` zM&z4YfV0_MPJ^aGBA#L@X zHeR~o+5AW2hxfsp3xSRW7E984mtY~yUwkxm_p6`1C`u@^olqoIFT6IJF}Lp%<%5G$ z8pdVM+ZItc*Q&iv`s&nKbI3Ht?e~gNF5JaslgmFX*_3B9u%f1BSrn~LnlJS}jJ;ET zy^JG+g558HnA7$4yq@AaD^@VGHS7f!_wZGtu;JaqQ2S;Q39WbIk8UbtlGxzhJyd_` z7*o%6`|If6zdRuycBja0zum2mE@CaH=DF#?Qn4^rP7%XRZvvX;WHbEWT2(NTmCFZ_ zVnD}tjUsB=;gg7!e7;`;`hr)p2yc`G8luL#)UNtccrSkZ1Q=_$PY~#llXq9=8y3u; z-}uhDJ{l(!;Y4w=yG+;Ws&@C4CnEG@_lfj9g>sGBP3rYlR$$L{3n4Ne1b31ve0a|u zPfC)W+{CFiW!ZNQJi1^pmu;c(qq*#!_$wf%gbGkw1Bu1w=*ot_ue13Eoc%n@M9P2a z$i3UsurKqer0qMa9?^{BUTG={y~N1XKu(K-qHp?MrdWf!lAvMRd{(@&{2@;7J~g=Q z8DtAwbhwz`svMEWSy-vO1hV3HR|nJnObP zRzZIS$rD6=?6dhr+$0e&Of2UrO`)B8ADh0GJml`z31CaGk+Y-e4)KiIks?1f9lkxs z%1|q#l2E z2A;Y-b;jGZ0JGZxV>J9j7Fmi^9MS{Gmb48&7t=JY2J4yMB?Y8=(*2SBsu~;E7v3OU zs7PrOdiyWI%tC83ff@Z)!rV61e-J*KO7`irn!7<GDY3!ngUnRbeW!J0xM^k$-_usbR#QJK0{PA0tpTh<-xhtM1J8 z-~VE&H}|RRaqyHgt4_oySdoRRdWaZ{sVN@H!= zt1?|tt~6>kInB^;`Tx;$-NA7EZ7-&4zu$CpP!Ke5qHLr8QhJGmyKVph?_pKT~!B>?j=J#e9| zEspMix!7dBjFFP949Y*g3H6IQRW(O7Fgv4gt}d$~S4(9zs7o__jiWrZG4HdU&(jNp z2_-ffueV(}+SUIS_j3-YYO5Ij9mLLjk*9;+L2o;RXGn+#T0jBizIOaQ_?x0^VtN^GxtAXoUNqj(V3w7%C3Ajwm54wJv;&E{7<;jEC*O|6uRgNqW?W) z7*dEKcl;M7pE;dRJX&!Nv^QN5NX#CAB zd=7LX?;iaQxHsSdt73cX953(z$kSgl13_#iqL0{m1?nfyZrC!^F37Eb-H!q1mkBRO z`8mRm(BM%zu}?1~lVq*i%Sj76RaZ*4*^D$VwWmrn+oTzmY4gn!`RCbU8+E82i%Qjb zRt7+iMz>FOMjODrbN1VE>I^oyUt}ZVMmi3);RA%5MJ{XN(Gje0RipexGY7eqpKR92 z=d|9m5S{IlzoebEftpOn8{?IZ2(FWHV;O1|4uorj&64zdRyXCk@+!Nh42+Uhglszz_2QJpnC9>*B*|}& z%3Z&me~thrt?6YzuPLc(JKr^QiB>>sGL|XWs(lbcY-htGZv; z=V)9(vl3@6jCU0WH5E=Qt=e<){7ZWVQ}X^6K@?H-s%BT&$~v{xW-UFvUkE=mL|(GK zJwZGipSWwd^xkR~o}uWTbUDtn#4);bcXkFdN%Z+iy6gR3Ei}AM5MZUEDbc4*dySen zPu5RKW+alm65lB7Y7LDozO6LlU=Dqe9aca=W#k>#9xinXXFw|k1Cf8H&B6(Z`Hf*L ze09UnN8~PLJ=OdlaYpDaopFd;+qT#reLeS68olguEAAtDD-7e|ebxQN(4DqS&?v-m z4o=jaIMH#qnZE0#NEGz+^^Eld10l4w{IDdDmGz#U=hR{_7s4rHpQofUIK!$Z0RV>_@-QVo*Vd>VfLYD2Do zV^l3uH=sa;E#@(+B=p=8@0nlti33V^7Ly0j8|(j!7h+46=2fxswU=da(p&HVYB??G z?ni}s;>f9)c(niKxY>x8BjY*fISkiFEP1q)OY-`Nu>Jbz5&UlY@z41u)+*w7UPi+Y zDn2J3{K0*`P#iRK;n%bEL?Dg@YE?1GZ)QMTg=5xebfhi^>>va4z(ZWUgYP51N-D`V zXgXr+VdEly@FgtFPVS}OIIs38M7#-{t?6^@t%cIc@&P_ zbUQUVG5<}02Tp7E6AP7}gyvyI$%2bTF1~!<6-~yHm=M8=65E`Hj?A|mJtTE>N{KrEe z8_NG1wNU|2!IXnVIa12Sm65rMz4?=Wr9ZKTx$K$D#{-7@vTybq$ zIy}VHP66P@=u;RHmwD(X2A_Fovzbx3W=Asj-gV;hz8~a`ime#hp7caT-ZaX-!|3ki z>Yan^Z}D66I-M~B7NmxkR>JpiE*`=c;N6aSP?urzp2;W4jm1W1YwaxBI#;QWA=6tu$vK>)u`bFX_!K z$X!fGY}u-%BqSU-?Y^OAx4neU9Xh~Uf5{+Zq< z`ym5;sou%=lpWMw`=ce;tt>cfJ87}hR@04IFn7#cN<}wRZ+YuH=#7)9)uPdx|6KG` zZ^_koqI8Se791-dqW{qbIW^NlS}Nnk!)Pj<$oW~)i%9WR*ZB+fHJz`#ROE7Ic1htL z)M@$W{3dEGaJ>I{0p5rWqR}i}ypGvldic&ORm4b-1^pw=g#M`imiWU()2j8QUr71l zmB`WC=^y9B^S_#9I6(Q;ni2+-_ag6DbCmBkm~wQd)P(D^wHtx7lH?h~q?G2^5PjpI!b#kg@0WkR~sGY!)JPp(@ zM5u3&ZTxTDI=zBeQEy9PWyy8K`8$AXt(yB>>pT6d$5XiT{ruG7>=J&G&nj&os)7}dg&stIU}eZIq^t8aBbB>7^TQgP})eteH>``477~aH-hA@51nVexZ0|{OIPF%5u+KQ}VQ!Eizb; z{qKb!E7-qz8o0_e67fPo)A78{l7$%LYJz)_6HfM^&-Ww#uC%UzbDD~uFOeB{Jn4Hcg`2H7EwSy>OW0waD;N50RTudt z=ut=G!Tq6!=D&{BI+0KNT;37m;vRqA0T8QC+b4Lo*A7uR6dEL&4^6sFoO!dVKIzZb|D?)v^kw5Cy$Db-$hc>;#;=06-uRMO z+isdyaow5hMtj0DuHX?Rzpor-pbo+OO~C;(COGD36*L4Pu-3m z{*)|`Bqzy)=7oZa&^m3g0Hdc2VNv#4xvm^3_LHULoWA?)uRdcs;Gxw%{w2B8pgnnH zvWsq(ZQ>_sZ~Y%b96(IQ@OQLC>QZ9A8{sM+H5Wlu?L(Pov$j7G|MNd1L+QshkvnCkj6Ur=>)1?@^B-KP32hg zj*qn_`P$SLV~{y>ssJ+i{dh-k``Nl1RjK0br>g~cpdE3sa3f@kdPlst=~Wxz9L)4~ zSuZ%P-Yw=-k$+6`$;LEWY2{m^;%g02iyKo}%-vWQ}HU$`)tua9(_{o~oyB+KsMm+cny*`35`nD3@N ztgX0gVlMUIucV@$__JqM%NL;NRuaKfS$v#7K0i!3PvnXW7d1_1b5AwrRTPL-*vmq1 zD7sQ%hL27VlE)Ox2k_Tz8d>D?6yLQzYRzJf2gasps{9u(xjSXP507v?c(;?$y`{mP zUti|`^SC0^nvdwC;9_EuNMGY$^-JNmYQgF@;D!S`K{%a5Dl8@4k-b9?d_lXYpRLBM zuQ8#pU#?;EfFgFuH!57gl8>XjwbWAEQX!6JIJN=Pg-Jcq>Y{^0A20H(eYoNzRD}e% z(r1UjYG5t+gcUNV_!}yjnX86%`(;YB#}~moO_q-?YA#W_HuO3)Yl8axyrX{^q&c6b z>?My>6jbcCzhqLV{qdCl{8sTA0n2k3T_N7bIAvOwxHVWdzR#i!sy;VE7QZ~+p;vsJ z?8ZZbN3@~Q72z;CqKHS4%s2Bv+ty` z6yKhx-VsY(AIJndtisxMRrE{+yzO{g#FcRu`Ect*^N&bwy93Y9&aqX2ad#I|ckFP# zi+lTa*QX8by}*F%BAJ&q@psqaNy$Yl+O1dVse4#XmprAbSKht>eetiofAv!^Z8GdR ziLne9)04-$HSUFFhvnyPisoxq#V;+3Z5EL|Lh#aKEym$9;e1tg2J^)DP5p$&@(#kI z&YIq5hh9B^=kIna@0M^EhRE`)8prx;=(ovfB0)K$joG8tb5x|#ll4Go=pZ(F;Og2p zmOM|&Z+57^2}}J9KV;pzue)2u1N4nuJPle+25SyU8R1})I>=3+O@6>>y0J>N1_5%@ z@HP+#Ij=mRc23j`6VNwCt>B~j(>IPfS3C@4%kbmU&hD}1rXgG&e9_M< z`D_E^r4i=RYhV~U2#ux;w+W3-?{ynj1wMTqt>V^XCr;h`ExKlsUKG1*Ym09jnm>10OY*D z>z{;m*uo1*hm!&4* zbm13qTG8ZBv(ybk+epx1Sni zm`y{qYtaBhWpoLyhjQ@m>kK5@l4zCoD&V;b!OO0i(_^k6gv~5YK-98peX_R&r_=$I z^f@r|y7SCkGiQ;L+LL z34vkv_$1SMhnQp6Cy#7uZD`MZBw(s|9kh)zF5r+rce>juNnDr|gw$X6hIMtn;**}X z_WFEwRhI|`jXgc5svnIxS2VIPOC1GR2^$sd@E~D5nBB?2!9naBO%u*x8=TzNk;m+} zI2`gRm&)4Oo2<;4mY=78*km3FxGPbUq7|eBK6F&ceP2M8+J^U7u^GA<;ke#=#3FPbCh|8BtWV(-@Z52oyCT@W@>n(h0xFTlqE`$5`j#@2Ce_5CY8Lp)n) zm&=VW*UCmp;bOOYZ78j8MZ|>1nPx*5hZ;E=2uWg@8O-GZ@4RhlsV0GW7>IFMmX^ie z&G?B9a3OZJBanCHlB~(k%W9LJv=W=wBju(sh}`j#2j3Fx*WTZ?v!RZ>C%{+&M!8Zk z{w*)S<{jWCnJ1`p34cF5<-I4+XJnoa)m`jGkKP_kCLB0UM|oWrZ!2c|K544FT(s5X z6ADf-J=Q!7daa5LtRya;ZvI0jKe{Rko!l-KGDm*9?l~g%*Rj#WN>px^-Hms&Jh*)t6ZVrqj=~3AEC!@1VzSV4_FHZy4I^i|s6s-yIAV z`sQeTQZCh+@{x*%3;)HWpran(uE6a^E@z=&WTsa-Si!(GA6KiO)x+)fS` z4B8VV>zCELo^jtE&?tYN@PsV%vj^2BM$a+twA98AFnOydOiv2zQ151Yr>vJdtKGH+tS2}Q{Hs8(PIL)Ov+SyEzK65bOlVq z$IjJlNQ+~{Sgw9a?j{tFA`1qkwiBJp6!2kV|@+ z#ymsxf#!#v;AMM+0R^KeUCn!5aTEpK<($>B?XvSD57t@nWS4i}+g9CYTsDnvXAjeE z?~o>Qr9{p+k>-jOd~xHPq;+_ieszmR)#w9g1EVLe`_CXZAdE&GgW;>vv zd`R)VzLa;5flA7mz=R=)NIqiHL-~9Hea*sTVm3@c8Mif!Mc9YXvfs^?If*>ce zgZ8C*ql=M9;{^o+#SAO8UgsB74X7|Y^VBAUy!d7H#N4K*_Bv0iRz`LEAwyPd$y-H+ z7;TV!yO>k2dJ7Q8g#1)wvi+~xVb1knz)5&~)eFouPo3Cl8=vOAY)99>d8ue%v)mtJSR1gEaJ$Mh+h- z8>fA_mV(K%&BZGRpi8$2=NjA`e=KokbE_nO3K|)l*cMXmcu~4SuZCp&&y=E1D9-q0 z3c@gQ{8Z}poaOd7@OBhvm)d+R5dff;gHtS>mNH3b|OL_M+4QCseL^_ssXY>JHmJ zCPV_iyY;=kJ!@C}U2J0YC`rzw%_od0;2hu>mi;9E3&sKEjRMsHrA>X_C%}}LKepOS(gS+c))Q`ib9-ahVvP#VP zcC<#}xXRkg&VdQW$mbw4q{l1@wY<>c3Fx@zE$vt0z?ZX0K#<{O;cj*wgKJC7;eEs7X_f)?MVj7h>w51*ks^aW zbg}1o#t3e92R(5qb}$6;6_%>*F01}a$i)Xx?|<7Q8>2P^nQmLwzirBBKjg{bQ&_XO4u5MxWm&tTGL zO6C%UdU?|?V|KV@=NtkVM!dmMrJ8-th^y-FJj8S4P6-H6aZD9Di0^UU;WC7lhT{Qzq8ldx+9)GhPExUZpz^x^Mtg?Nh_r*H0+vDkinCQHhdyA^j8} zEkqtZhj2z_r`1Tx*GB`)@X`FI7i8wW_oYwG@fdWRv=-!dqY@=P9m+UJ4_MVH^ML;( z3B8iJNpSdEr%fm8z^~l5?0+ift(sdwsAfZ7(MKubQ&Q(yI|0$wZtD7eq`$~w+)M5D z?aEJbt4SoIdAYMjcrjx@wdD{NY5 zuVfNhuKfG*0z4x`0WlTVncQLCEH};eiKIot%RpD2@&T*c8i|nsEAaZiiStOQvgQ%U zM}#cIKcv3=nP?XDxBHF3N*<<5B&$R|MRY^->Z8!xP{QLL`ROQm-N~*;z~BIgH!s1q zL7|wTCCLrO1)nL}z{${P;fz4#&52Jd=q-WCcU?KcdT&O{Y$t$gzbaWxC`ytG<&F`u z`318BL@NghB~jikxgbA_E!BAf=c6%LTv}VV#CUxoF|L6BPV-orE|1OkABX(uO85Un2JLz?@6+c<&J&< zfOr71($!w{sM#@fwV_$y>#p$MsFdtKsuT$di0yiZ9E#2^;+{zUQN^_!q7lAn-3@c* zYg%Slv(=;!@S8?VTGkutnJ0VA*FN3;oMzuKNUn;AQ1WHIm!g{D7GeGYSt)lFhkj^^ zi+z^|ptsUvVKjpcE9=fQbroJ;<4aE+(nwz2#HFGMwXPNDae}tLSz!pQ-3j|eao=#F1B1fZ`rPjNM%w@Xw2pVnZ_SX{}y>ITIoTU#;Hb3UQ$H)OxIOm&S(6DK%9jHX#KdQ^P#ng*dyvFLGsd(SSu}_$@_}k_lDU;x&_{qN2SAywgpKPjRRr$v0+qvLe!{6gG>j#~= z56|PIuJHHOnzex?QOrA=O#oN8a@q1y4Mssvt&6NovTc(OiWZA`li*wXmwG5D7Xow?;i z81*O6?rUYCuFoE8iFw{Hg&>My`Ucd6QJHE^2;A~PJ16_;!k1(3w_m+&xEt2(+EHDB zj}&k2?A{Gbe0`lqEZ2~O;rUR=&o{nWDXi0~5nd7{>pt}=ch2*KQ^0+NzdcY{&+xrs zPM^+4gT_t&E*ZQHzld-KycQ2)u>hwhWRE5({$af_`SsPy^gOESVl^rbiw)=!v?3l` z=_Fx9cR?e|MJk2$vTazSWL{kFxzSr)`YTIsY-N3IU``Dz!9VSI`i#f)7sxW@MU3iY zJ1k1rNFh3*tNDHmMP=Hj%3^X8Tj_6(jorVKr73>M5WDI4r=7|?x)d$Gw>{DW+Up$Lb+cbE5)xT{YECAXNfD&Yh&LwWb>%LQyeriy8c|<)*bsQtFzYF?4SW9} z!aP?)|H}IvnrkRBax#_!-yIUtY`5H1$aJw0rD~)aKR6+n6AT=TMv`T!(-c}0#j=E5x`R+suV%XJG^6D`U)Th_zpKh}z>#0W zBT-4oi7vf1W=QNwL*49o_AaDd=2qqI53RU~Tuf|#fx~TN*T5zGKgw*~TNqRD`n-c9WF}cR{&_cAfK02~+hx#PMt#h? zu_vVIct*wr!QHVBnZ8T;YvQ>qtf|mjto`&Z$O!q>?td;0*62u-iv z398DGbM64gO0SJib9{%E)5V(ifn%xH3DfZ|yBV)wh{=oEvJYk?W~X@}QAzaVzs7om zU@Dd-+u$$GX>PIPqTji(DHI-a^}T?Pq2-s%Ls9FYr8!lpn^3^7@&mBTaFa5}ZD26~ z)1?ArGXCpW6pfI&JC^!StN^soFV`oNs@`%~09hU0>h2%@2M?DY2X=tsMVk@`&A=~` z`@NN*(E=+#6-IgqP2lO5K>X+0Cf1p3tj~DGn?^ST0VXeaa4i_V?{*aVh#W2-rGra2 zN|WDgQYDJ(n#l%)gIqtrSvuZ$LcID9uu!2^+{IS>R0!pOoG*fPC?~_C{*6g>4>uUC za6HTHe}B)$c$t#Gqq6_7u*3Yyf7369)PE=YDd-WgC~v<;x!ux zav(FNO@b8YW9pE)MN9F@)ne%~id%<7(-Lw@{9l_Ja{R&ns&&S_rP{Lryv=X(qG{zl z0{M!IDvQdOlg5RiGX3LO44=%i?pKI$ZUs94b<_0DI=8S^WADOkLFNhs-Zzn^4>Mbq z=I=6kMUNPC;-Xw61~khN)yfi_%1Ojt`r`5q^dtsbMp|r}dcqvo3_pImDxnX?b;&*5 z*up(CtW%|J;cx9V`aHfZ|2a0SHCM|8olDKaAwM z@)}`ud>Lda28F~c{*0qTvg%z?;E-e1_9A=M_GLetka4!nD@kz(T ziKNMVL&pY9DXu})Yv0E;XLX)tmkwB*d#o&Jf3`dU^+4EiubKQ~!R8aK<*qZ`RN!Blx(+#hx z2%Y9$^t@62pxyp;o73nKw%j^Dp`8_k-)LJ*iPI#u&mS8(&a6@{sf}brloDvAAo%UM zj$e`fG<|!Kx>Ch>=Wqkw#yn*HWXyK#Fs>==o#m=a>DF(j)vj^VgTJI@g2|rBeX$3H z6*glsalBfHNCGv}e+Cp>CdVsUg>G{;Q+Y_9(v-K`9J$zln|bMI^-u70y^DSr*a{7M z;4!?(y}mvk?Kf#MsmY-fu*}6<%EP2@zfl8i8(<8!^5W;WopeTLgkN=zno#8y-)AxA zDo=yve)P6mwsjeRWteQgnG!8$^t9tm-nz`~Qp2*xRB_tXYNW&B9Qh}k?1FhvTn{#% zN;aQ{KJup(3vBUV1!SZ`yQ%{#@wxUnQF|G43*_MTPD7vdVS*3NMQZ%;NcY6=-p5xh z@!##t{Wnsjwn|sz%lIC7h8b^(`YsfXr!Cfqy(bh&m3sx#zkJo1z3b+$P^&Uuo~%{s zR?w;)0K3(gdoeYwP+R7o)>oEC#g~j~JaFB~6Dqu2Fa+xy4h($XdFC7-BU7yCl6pyo z_<3T5Y!M2Wi=T_{YI?bGQh0-DLv0p9%ae4b*O&aToA$j=O^WY-G8XUB-r6jNJg6r$ ziDvTQkkat7MX{P1Rr28&;%ZR{1;#$-B5!&foW@)JFJSi)3ARJw>O_1e3XrsX5N37% zR1|J%kr@3`M?mduc}p61@K1i7LSz6Bw_|6!EPX@hu;MWf)}>rxWI5G&5~IUZEMSOl z>!N||>*|CpD57zzIn4V8#qga7MJb#K<=o>O^5)_vkk*J}Irkp19H;#*VVe4^oLNvH5*GA==4QiIKr%|$=|8Hh7P1Z;zN0<||h%S`9%yDq2} z4Bo%Xt5NY)Bx&rgcCB2>C> z95LYAAqp}>*Xl%U@)M``ksEJ}*KIX2h>=XsruWe}r9xl-H_l_l@(qI5FT7Y?-c>8a zxRJI5G%T%Vz8uIW$8%BA_=vmn#LVJ%&e_)8&F!~xl;6b>E5Uw>l-ux*N`+14gn*us zqiwTr8PwJKcpPUKzkTy$^S5R|pHRZ)HfcnQzsJX`fi)r)h%sJ|_G6rW!t4XKEFRLQ!(rlPU`rVrImGr^XSR3@bt` zBe;{`f(7hP31>gQ4y@k?oUsNTXoq!%QBTBFJ6Ie_Fkwp zkgU6OU294kzDe(*{lxAlw()u|Z*=2}PdM9);bUS{g`7KRV`<^^Tx^2gW}0n(obX-l zCkPIkZf`o&!lhM-d#Mrk6L4OAZ-yN{zB@P@T@`V0CE`LYHJ*qs58k?3^1;!saviXuqp*S|&Ia~`dvtFu4Yn1wK`H&%A!tFU(^i18w%XYZWu5O?r# zDaC29w|(41!?fVXeE?j>3lNM>iTK}K3IiC!xyk70yEViZJ-xuN*yT#ZCDN=@>C99 z5^s)rkF_`UwClzg^)vmE`pCB`te_j3HqoEPXL=-YWPDpC|KZxv=A%tQTGz0cavfiN zG5@$og@dKPrV$Gp>w)##Q^YE(gxJJ(0eD?*-vw^3xU6)o)I7+@{7sJSCJsTeRq}iV zXC7$=?|n13eZ9Mp7ufe7BEP$fqxzq96rE zO<(U0Jtr+%HD(ZhqfBD?oA9evT$p7)+KyIfGHBAKuC(FWQ~BqTSTza$8^HPd8Zev; zj}J~Kei|*ZtGq304t68mIOcpN|9FyKFdiuB^ZUnn=e5IVm9ovS=&OabJ$`kkb_Xy> z(vfrlAJ1hQBt9okhgFzraJ5*kR3Pf#!LT*84lUys58uRVQ)X+Yx`BHr<8@s?p*RT+ zOCJ#`^q(!vW9?jDY|QY!CefqZPfwPiH%p}FO3=|x;VSzuz5sf2BwjE7Z`oi%WVO|^ zWnul}zY4DCef07&uGHPNV7A-&dY02`6%&;&?t|-iSdQ27IUsp>{rs-T(?5&}h-|X5 zthfDWQ4uy1+}S@*y&?djbm?lpUA6yMvj=E50d@xPMmD%gFrkl`B$plso`=wrH_RWT z@{F3Cgg4I7C9`vuUQ_70Ig(WCF9d<)+m!Q`t^6BSA*}6@1C|b^yKf{1>vS^)0Nd*P z{rkPlT;hLACGF674PLKMHE3kLg2=aRKAmuv_!&NPe|aLi3EFv5W?%tfgqgj%!68Pq z`+<4c(EBXr<<3y=Ts3V*H?KWJomak_=3gs^dtp(%BwZbsGm5x+IaLmmT_{OSA7tM> zcaWgc2SKg#bww*N@YmUy&M88#LFA8fMmm zOYhS;pzZvAo@Bv)9JGdIHSEnx+En%%Xx@21G{sMZ0Bgc6*e1g?o)#KBS^vsbI#@ ztYW;ztddUN=||IsLO=MuqvA~yxx~(nE-UvzAt~7Y=3oWbB8=l(ch{uO1tArgJr~ziU~RjsI{3`yet;| zi{)D8;WO?g0i$)krCP5R!?AZ7SF8`pdxEq(+Fp9`pjVs!id260z*v~Nt2w_(cXLGZ zbFp4ixa%}ziRsBw8wb| zrniH4QT%xAx3?1XV8DXQbf9~8$oHMXKfRz$qOZG&wVDCX;{L>5(PwoE-7l7}qrZD{ z;}NpAz`DVXNr9J=amTL3nnVYSolP60}_m6rz?L|n&{^VfdIZhS zAelhv>6wGYWpFOP(dR}YYYgckfz}8Rg8!pZJoMn0yFviV5_Ghy#` z=|b@VF~cSM>$mfP!^7l|9pzn@vth2Dbb7H;^aD5QU-P>M!*5V4K5hR^>wl{;&A>X~ zSyq0KnW$y;4dz$k+ObsU*V(II5J8fl<=>DSJvF5)xw$GFFexE8(HCU4Ue(9vstBoN;k>a?rbUz}y=V z5wT|d1OH~F$7<u6R z(c)v2jd^_JLjWJ9VQ3`9+?7M9gB(%$N5V@lI87}{Dd$Q;s^}S+a;q^E6*B4Mr9p$v z?~H{vJsC2adlv!{T++!_VyS~fl^$w#2qj3nHwC7t40cSeaS-5RSOxaC(&_)&v2sLE z-{VC;D4WxWXlcRQZtet;HYy3mC#aUg>XI3EQ_(zA-eTer8T||JckUf8Pxw{rSVJ1e zpl+lo$I_A1;dUxsgp;v|K^a?1!mcusk)_{f0rL0t?zKz9)|V|3ACz^C6PEp}lQY)+ z38fvu1*BV?jiBm3$H~d`$DT)=N9Ce0T>R}UAd#nZ?W6oOBHUcs=w1aQsl$SK>w(v> z@Y~?mLpmgxC4?!aNqq8{1}KeH_EY0X=V*cTX#Jfee$5+I%17yq1;b<=?~3TP?W_a0OG)u1$v?st%o>TPW7J&F7KEaFM|#jWdd8L*%6Fh<3^x z`y&nZj-4(LqERbn<{cX1VSAp&2Q)8fD8uQ7>{{c?m!IK=-L8Yg!0b z7VkbS*;t*rbA~xX&^=` z-NgsIEM_e5STOj}W)|a30irjO-De4Ya>gI$pTM-dc?~p*o zrlc8k#^EeA$`X$dB#mGojqn9M6CnQ2RZpe^cWW}@&*p1XVKD+K%K1)dx!iAXg@-fSxlT z;Nm|=*?r!LYls5j_bo3d<3Ay^k?g|`a02k+N6>+S{j!37|HGNddLh~(*H6! z>3C{y5*ld=_v^&EhnI8JY8O^vu)!@Y;;jKUwEw>Z2n>h#-x3f1sHVSEg(E&?ArOcj z84Fn)vJyhght{e0Z9{Rq66SpG<46h+J-=@hwo%@?c3!ztC;4%$Eyaza$(x#AiPCl- zcVAtU!0Yid%ilTK-TcbZ4-X(D9cw*IY^PAE?Yp&|VV_U>^~cqGFI;~@VS9_dd2WBi zsh_bu?=Rv0>qq85?eqL0UE*?}`IYIma#bP@F5`3R*UB-?FZWr!M;M!1!s%aJlU=+I zXcB{-!HM$67ql}3Dnw@te!b&LFQYevT+BpN1`sUVm75eUbX*t)(xT9_;P;~d$zb9h zcF8?!jhQv8*@houqlHG(H94KL5ai??Ld4e1q@7JhyGY+54s%9C?8e%+50uTn`)o4F zqyy(OJLDOP;EiBDEG6%;X{z)>$?3-ckHhk4$tvM(@vx}NNTHv9P|=Us#>i4<-V_l8 zos;gqs5BaCI*8D=wqe1;ywy75-=!OPW}GkqFJ>~%yUe!bpP(M&xt)-#%u`D0w~=w- z`zaDN;+@nuFJdhN3;I*kaO28Da>kBM$1?9e*d}7+wEcG)R0`7v8mio=bj0L(e_@d` zOImg_XNGo{O})ifeXfzIh=Kr(oYFeJN>kNc!<=&L*8qnRqAxgf0l@M<`16I5Rq|y! zH@7`Ey3#ALE7Jex-TYp^y97};?X5P`mY6%d`Ez;u&f-|Wi07^!mO&D6U!n3_SCgTb z&g`q$6E|Z@shZ!Td#WeiTy}P^2PVE@y zZYVhMY#XP%4_Zie+6W$h`Bz9_Ty<(=lh?l6`J(Powwv{n@j9FmhdF^e-TT&Nv5{Jz zpuy#Y91rqY&3M20Cy^zO>2$P>lz5DoXCpPeL|;v%VfDTiyknew9iZ%0zEr^>6c!^! zd;wN{2>tqzSxb<}_P8#z;CLQCt06Y$q3QmS#Iy^ceR#HmiP=&^l+~$IZ<3Yk%GtF)!-sFjHOck9TojEi+9RbG8SuP*;BV zvSGsEGH$kS=N)!_)M z3#0{$h@RT{B>3}#Ebw$zpW(;b9#2T$yDGx%4@lR`-`BrhG=5uPd!AtfnjiQ{E8P>%5%njwdL9cmU~|31)>+|Ba{@~ zA(b;zp{}BYsj`Q{&A6~Ha2|hn!~7tB zVNEu65*vI7{y`!RW@Hi=qAVEvwjzXPtqr30T&w@!KDl;dH>8uDV^V#9e~>2 zBS(S+0Ull;d%XIht>a0YeZjy$8q)!r8S1a_d9+unT*LlA|JjyJpO97VC~gmf&xv!T zocLP)0KJ@$Lj>j`*5*8UW69HbeEAw|pIu`-UnO$ZBYkL*q$JqtG!En)3})lK8D?y0 zk;u(cZ8RATdKC1ik(AORdrZh!#UM(59lJ{!Ny^AG!Y4!c;y-`WLbo`;`=m?`0ZMf@ zKOV<(<}Q|{M)7-{XfS+9ERGt6=a*G=zm=4wd2Gqqvj?`z-$&z;J9eUfdNfBnP*LwN z9>Fm2(1=&myYOv{&G;iA1o4(wUqu zO)y)vu@Se$Kf*t-0|K&CA#^yf&SEV1Yfk@JsXN*Gi6H3}i-&QH&5%4$Bb(sT{NjDY z*ea2tD9NiOnHG@nv&GZJG)(u*_QxhMx%qWF{}PUswJnZG2UOuPN%PI=T$lx_R+?_+ zKJ~yN*}JCT(PF}5h>=Q9gD7w(3Mt26vMC$-j-LYIEQmGRAV3POcLKm3Q*@4UuBHV4 zZi(NvUpjeqH*6s#XjMr0p&(f)%~gq9APO%s1|A}C;DcIJr7J~^9||7=6HknPynG&Jqd63Q*uHFR0_tE zA4jqhsc*1QyjE`KE4VFyNys;0fi=Upw1K;~xGUQP**$qH(iAc}URE+9D=9-af$x;@ zs#t{80pc4L$F_4ovkigBLK%@a_zv22EEch>-XWu|3>B%;3?BmTpGky1N&-*invuyn zJcEVdN=Zno-&5*?F^|~D%ym3NnkU(w)1anh7;1aZ!Mp6rdMrlCGdo_HYD&IFXA(u? zrM983 zDvsXjeTP}b#^kZFD~b)ka&-;W(VHxIuA-rgO{r0CLwkumv<N7qbur>L&5?B}%KU0E|g-Q5LS z20b<(tdXIbY!s!UFJ5#OXXETF|K8`pg%i@m+Z5Prd|Ri1+l&Ew6PZi6FE>Qm|Bt5g zj%M@!+qhM#cGaj_t)ezHYR?w6YmZn}GxpxJ6s^_TTWi)xY_VgNqBaS!DX~}V7|;Fv zo%5XIpB(4p+zI#nd5`OQUFa0Gg3rR(Z{nPt>_ttx_d+5{$nLo=em<4~ed-x(T?_&V z(1{;>OcB(gCdbOWSG&JxlR!0a(KVxrNnvj}w<}hh=uUYB^|Be%Y@-$97!{!cJS<2YP&ysw{GHJd78gB}KUHt5vhg{D z*7cSiznG1pnT1G(ORArDZsX^oAG?>vdAaOk3v5M) z>Q(m1kAFx0FFcL+#5+_%tQ;$r9h93FQ^oLY#rpM^J`z^v3=uzDlZJeW;kV>tDt)Yp zECAECS|zxv#^`l4_OSmT!)2Dg&$Pkyem*YO`W#sIIA$GQPHL0vGKOAlaRSe@uI6xS z`jrWQUa|Zn@e$knGwK)p(_#Rk`>Ex-GO^Ub`=^e-4pi18ozh>#myuaw^2-xdd5Si% zVl!pOS}ylSB8IP2%aDAFQ~8BwOnXtDlnPgdO_YRS+e75B$qiIec1!qNN!A_5)A zT&@#D5_VM?J=&RvP>eyN1z$|(7wa}$wM<#mT^C*$X4PEihc<>vpWc`;mR;**Ei*dU zyb~*ns|7flAE$jcXfjiRoSm|l3T!@eCeKRrNsq2CM-BRZjy--D9?u7rG+0rdEkDvl z)o1srQ(I0*=n=Xvif#M=PtrRMk5;r7w34u-Li*>pDC=GP~{jy8^YJh9J2P=Dr%1AUcrN#cMOGs%Z4=oTwZro%uHG z`No?doH63fU=X1?1@gA8VqqeoCRMg2(vv_)POYCq*uS?qn?}I&F-+VA$3{`hb^tTgMa$7pb;2yTc zD!G|KqEz7#32*BozkiWYaoH)9#~;#P+okX6J;x(TsBhnm|F~z(xIMo~JI^1h_W8E) z&HYCmyDD3X>)HDs8PK>y&taiy?`40jf*{@Vhy=%+Xl?K_A>|+ZPTTnEnS#k4!eA|<(LL#B;Rdq$lUSB_4snj zs&+t*h*Fm`{s}@AaXM3Sg9#I5#dZD=yAZRm`c$)T{J@DYSJaz^xy3@t4Ts%bzMm)j zVQ2YpZkQK{fuVtnJl~eGfnGD#X2g!Pg8FUl^jEesFd6X;$Z>%|i#Bc0(w8)(kx-5& z8ti$^#|&%o-;r83N25w^yI}I`yAd@ADg&_=+%S0HON1R`HwA~{d z2hQW(lw8iRtJ1Kqa#w|N+)+J#OYH*4XC|Di=)wy^S1EB3!Cssq3wx`rkqH71pJoss z^?AVZqG~fr%cEEMadEZ2Z2em}>`=ewODgqOI@wX5t+$fDYo?FV?ovmb+TPoK?GCSZ z+R6;;r?}7usP_ zC0-mZdzyhJ&h>I%XyItbi^x`y)TmV|?{Y;tf3S|*Np&CjT>Pvj4vUSx$8Yr43j~#L zkMZ#6eQL$Pr4p=Vj90xw0eB4DM*!Quc> z51>Y6=3)=NI&u66Piwc-+5)LO?@ziTKL4LXb7dY6ey_@O{(6;^fe=R_3E0cTr5oT+W6Qpev>?)T&nS*t;#3Ped@RYSA$z5XEe|21HdCM%o z1})tq-U-M{{}5gM7S&>*61P@1gV(=?-{Kmb$Rf8oSt_tT*!+lk6&N$J$bBJoS`Hz{ zk)T^K*COy9ux3Us_eoP6_SA!nkPwAT4|%m6>4W|K<=h@jdT{sM%7t-~{S)-coD7Z? zy{AtBbZ2bo^hv8dJz1;zI(|%Z}woE~3tv+%qRHnG0;5)~_VNkZS;zB`S{-~n?QD`Z- z#a#5ZKh`GsXR~3ez`C1cyW2h8i|i3)j?U`Uhd$H51P>sUy)uGRs(@hoU5}#c*XZey zoq2?a7YC2>>x+F`%}q+lemEY!IVuZEEfD6xs*;gz`ouY3=Mxhk_H9{4nl*idPRVAE zoN?Y*mtC;7+cKS9IX#oCKK((GKa{H9;`xShE1`>RqG>y5p~oxKbX{HhU%4euBn}IL z=iQcD47vOvFx6!L&Q~1i$mr1ya+k=*(5QHneG^6FtN;?nMHv8^@SpEAICsM{rr=Nc z{W#z@lpc&`3r;96q zzoodBKkz25Cx*W2$*pI?mq#JZFOv=cD^JsmOUKS~u2M>X%O@+L_ZHA#buQdcO}l-? zPM_wI)Rz%PwZLGL6fJz!^YdE!`d1r68qe3c#^IAXkmhfmd!tCN<}@OlsG)|jP^6DT zNT+rf)=$-o_srjv8`_&fnZ+pm@lU+OI$j>mvQnq}h=IgXdl1oqjBMC#T%`IB|@Ixrx?TB6#xRBSC|xPQQg;*^)Z+@@i+B9 z6*d_(^cpXpELFa(!GO3q8ePo1UEf~hBX$-tzRmD25uwNTv9&}zso^EI2Ya5WV=11j zC149nj|#E9@(8;)JuOd{U<6IPWdK)XxaI9}x+>QS5`OD5&KZPO(=7%zkSux<1EIfI z+Wg#qnovN7sg}Yn_NO~C!rbs28e}{*n#hst0n(hF-ouTbE=2x;SY9L$U#pP~c6m5H)06Uzu+NphLQ?$o5hb?T_{0BUE3$QxgBs^Bs&qWF;n}H))Tn9Qb+K>DM4dSdx(4yt$+-;XvnxE&^5pvw7&uO#ba z#XbKlFyBWqQ$N#?x3CzoMDJft^*wWLN-XMF@2FFrbRNwA8l;JbMsxeA1(Q_8J~2ks zdg%o7%*R+h8HGZ+woPNTpS-GTS=`bX9 zLZ<+EiHwUtp_X*-`zDBXuM11sW6#ZY8oe>Ju^nS3>7rp=7iSUMnm)~%l z#pu%#+#cgENv2mpj=(mv&1Reua3kw`ZBRS?pb|0K%LNWjlhVY`lgLfg&mv)7m1ct$ zSVNPd8~myYjdt6dDF;&;hR+bm(Jj`}m+Ko}*CxIzH37X&LMhmQ@mFD{=4A{gLX_20 zeSF$o9mGw_%fus{S_KxYZyH}R)GEI&6OAPqDiytFp1jZ?dUOX9v*eEWf-lK*64=7f zw!73AhHYQCKfMU)GQu}U;IM_%3hBHy{ke7rY+eKg(^ZE6jr8NOWnyc| zi$6Au;Dog#k+h>OR^k4R)>fVaVOB-@KKk*7*5LtgDpe7_c@-IVk4tXH;1JH?5O$4F zEbBw&mN-q@diWAK7yEy3uutdA`LZG0OI&b4gygp{y?+)x<;7s{I zH9?H8zKDKs&lc11*M)Xo;$WN?mtZj9z{}ucC`<{a|LO}DE{qF+M+!PsY<_=C-l)zL(ayKi- z;U0_N8`fu*`0n#eYTuxHh>AGfL8I8nM!@%KNM-#EZnlU$S#OS8IF|w4kMVe&g{Tmj z?&>KwoQkf0J4K$4eylo|?1lJp3leZPJS>yRvPZ8nAJ24 zt*w!ph)Y#6%`Dp_AhtV}ArsqN%uCImO8e(`w*3+u{cBjij%~W}UF*R9y$5be_$nP^ zq}F9YxSwHX3QTLybO^ZM(`F8c>}9?9Ilp8y zn+qbmm|GV*DuqYykw~{HVz4q}=dE~8H2c)Kr0mfWL#aJ0&`pDhEI--&%>?2}X`0Y& z6!~x{L?mtX>kfb}l4f3Mb(#L>!3fxX)svj>leItvJYDGt0m)qV!M_Lqr}5wa>&38J zsGbAB=}3!oIVIV0#BNDGl8Ww%BaH?@-oq`Eb8ByNXw5|DhB{mX8&)AuKP!Elm9A}p_N z&Ubv;3F~(Pdow5%BPeTglc~o&Ukort0;7q3LMV)l3r6GEthHY;2xb+w$%{9po+^R+P$wL6JXq&1Jg(*S(6iywk(+^5}OT1dvN2d#mc1T|JB@$YPMe6gvS+wcIY| zblRiaor!8PZb$IhQ@nwv^-QSZq!|$v4Kzv8=0yNP?Ts)LX!n3n7+IU;N>){L-dLmG&|*`MNH4cVC>=fb{zaxH zW38_d8KQIN_49@yx8b1)E0;XAgR8lO-z>ksuM??9ZoK?KuBzAjfeSGnO0y2;&t264g!E6WAp5F=1Uvehy>hqpR=jrR8wcKiHP(DIppB!o)pesCeJeW>D8n5t; z)vf7nmDBGFJYi&gE%|sBSat9%e(^%m&wFj3WDX@e%;&VXG4&7w@~yh^2ymPIWhVzE zPn^?o(U;UK>8v_ zv{&Ts{SKIZbjG(b;A3oGn_y!b!;tCiREALvI8I|VP;qu)1FDX5oSl-in{6(`RD8oP zPORTGX>yLGkV+T2xDOG*7EJS~=;LaiV3Up?@0_z4bWw?94i0)Ko$Ki<=-fq-%xcEyOKV$<8Nlsf|>d$v2a~LW(03* zb0!7fn$K0fJKMZ|OLzS)Z<35&uC6cl^XI(E5=_$4X$br~(Lb5)NX$6*8&TOX^;?u- zA^T2bZ3q>`)nlgG@RZC-f^OGw__k{oxX`72Z^sk?b86@{M)<9^~HamIJ` zALJN##N@M$R_Sh(nIbrm0l|{aPGO^x7J}Da#>C=ncye41UR{hTM z8ucDHd@@1@>ch>j>1g5F7^=G}`CU(7oa85dBIS)WkHSb7I))Jc5ad$S_N{dyt{{!1 z{0|cGpJrO_v`NOKL_|5Xf%AP6ECUTl+R6yv{u5G>Kz)T(6rMi;oZ!-Oa%LZ!pimZVEqocEF*->qw%yS##5dpVDX~@6tnCu8UYu~ z(}3tB&)-{tUF+)vNCN43CXc&)Dsu<-$3(pzir(^!M8K8vZ|s!t3vlK@>DpSuI;(D% zwst;=!0!z0Ghh;>W`)I|M?c>IYV4COJ*@;OW{@ zZ`hVm&;pvF8>!tXsGSi_rT6u7-V^l46l>f6=koDdm=q zw*5P|cX{6C(Q+3Na-G1=`Sw`g&NEqOM27X0+4iv2?_khg4QrUzPcIZlM<9ODs1UAn zOb(%N*L-p46oT`qUpnq{RUtk03ZtUC!yNMnJE-b1 zYqAN{+=uq05d;*D4PWy(`a+O?04N{-_9F4FNuO=3-E$m2wxbR=iLuhzatqYJ=G17d z8I6*s<1v7A9U{es#l9S!S?D>cp4M(V$^6umraD&>_8oO`(HS&sxICG17*@6k^R?{p z%V-3FYhqX)5zTohUnl5&`fiK~LYUxR|ZP-s1+0+S{AoT2Eb&jNdHh zN-^yzo&|lbFrER|Cy$d5ICYY$vneC~>v>RxqqnzJ;~5JoI~_VmRg0&i4@a}a2Sv;H zZRJo%j{CfV$bfGG-b*gIe;0#9e)b5GvakGe7f&fl3HXyr<`D7H#5b!XDe{rc>zsbP zNqU>IudiFIJ`--20UO&M>%`X9)|?M7Atxn7?5eNoIWuOgkVzF!*Z)yKO_C`_(OytH zm^7VYCk7*&m!I#^3_8T*-?cs8|CXQGR5CD@rLP$*su>X-O(c%~YEjHId~Og{whP=b zmK~L;q_`;$a<8%L>-PZB835~;+4H?e3z$AX+vTVCRsriNy09aMdoC9KPI}UU+8yy|8=6o0;wpCBk#~C zt!S~+BKoxLASf~vwvtVWw+IiTI0)&e_09R3s~D8+yF9cG+Wn&h?}=vV5HMPhm61s= z5;&&3w9CVs!ZbE9i|P0{Ktgcdl&=F_KtShc=vmNVN0(a|7O5)4s)38iahElx!mFB$ zQ*~V2J%{W+&&l|!lqJPTp6&F8c*mfy1vVM!+?_C8psNO0jqj7}m1(d+MON}!So;9d zEdiQwu|3FWV*{A?dyJz?6uev(vE9ijB=g{heIO|copouVtQYiQ}GSE3w<33W}=Fk`**(hCCA#UyX0rJ06xd8`a zAp$B*`nwL2*TV6j@8>CzzuH`xXF@zs!+k3L7o&T_aberWWDLn_`_t>O9g!b;RrVZl zvuiKcBX?7JSAR%(%Htxxu=CE<@!2bC0-t=Xyp_c5=c!aqW{#g;zcsD8aM$-e3L5;B z1+u9-%b&0sR<1kyc{;FNca=#9Y=a!L9t2m8Zt^`bmNODZTN~gVw9c+wGiN5TdWgfm60Ge6bX9&Yz#O)xht$Qo*p5QlcVYErA)9x!er{dzXsi6E z{4|Cw8{MO_?FA9nxl5g0(CG<|Fyuz<9%uWfx{+1!n zw}Rzl*A2vom_$77?{1&plL^Ar>u_o!z0_w?4r**)U~l-=9pZ;g?-ECNHE zie8u*hw?1d%oatsZ6$is*>tFzMFa+Z)yKlF%WYRhfSFXzn6Pt_ zs(j2Y?;{5jP>g%QC%qg?)AG1*`_7ze+0hEGQZYK7-Ui1c9BoI$rhYste$6 z15;DqZx8NzSYdgQ)1iWDNRW}@WYG6E^$Hcqnl>?usG8t*>>ub_{&HF+I2PyTvZi+xW4%~ zH#xU(iKAjpI{3kL5`@Akp}FM?#pU7_0jq!F(%rg%U_9G6mb>LDVeC`!*5rQ-h)G-g~|~ z9IBr#f{E0(D`A*KA&a`nYyT#t*WBI_88`>a58auFSUCU^g!$wKSgqu-*VjY$L(OoN zPDZvqYn&VCoG!8O{m-mtj*&g=ogu5cy#1kjiNqhA#L?t@eStVG-6UR0t`n|qx&hb|% zAxI9sZIB`Zas)@H0W)YlSxd>iwjTH9RY@pKh3D#!6GrFO9XgdhWd!aFAu~-_GcHdS z>J%o${}1qB2^7TuX$qJc{;p9pS2Ee04}?67Fu%@2j!_x`p?BVa{L|T=F#dN7M8S6} zQX=NDD?m}_**A$6c+wOo9(>+&et%@m?RLY>U7Yciqzz-gXG{LI@~zE7H?=Z-J1?OX z;B>^~cy?B7QLaUnY*o*#_ZF5MIb@N`ca$G`2lk0?B#!_mF)n~D8@eRm$ZHF`V-7p! z4EuBwYPs=mK5$rPQlyDrWUw>O=eBIWd`o|jFqPy=8ecU<-D%YEGYg6e)gRRt9|FAt zkHw0m`$U#GH?*{fxyhQ5e0x!q{K_X7qNSW?7&Nx;CQdZLeHrY6P)}n29dB*t-(fuLGzlM9|BZOLy42dnH`& z8PT8+&*o<@F&+{0xM+Na^a|r=I4p}{i9>??;xV5sg-7wc2vDv@PzfLnkRtH_(7s!w zam%z7^f!lhEV(5;Z9KCg@9;B+zde+)^knZMNX&S--x6x+A47cFBgoo?&(A8tbY-q3 zp0z=Me&T)O6wTr99nv?nm9qX5(=2C50KBbZ!ptcV;}z3tHDi;5)WxQ{!Dx!-Gopy2 z-(^hUuKCntP<6a~FLKQ}w};bh=k%p9m)-;3U$4W|)Qi8cAH~)uvl_AT5kJjh)yf;^ z5dyLo$>klg-g8cdY6%tiFau$wvfz?TVg`N^}*b17-r zHkHZ1;Oi~nsH0Cduu-h2Jx@|)ZItIQmauMx&>>6VA5a*=TMHgbY7ZiMM?e!zFUj52y zm694?^zxI~ifdT3pKJC>d7}_d{s<-}$3M5K+U{AR<-@q}7{{+M9(Ywc>Ri@g;vMB8 zs`QIYEPzURCF`x;BKo;%bokm0?xLuF=;bGmjPX;lZ_+uVH1Q$k253xUkkv6m2uX1*WbFHUonu81?eyG zH62Ej{H?|+TgeptJcD)jb95ThqeN#%d1d+HT*4&n=SsV~_C1^qCpsX*!6bPwhuLmq zhmGTJ)Rvp5`V&#JOGMqZ*^0vBV%f4P$f)5r-Jpz?-qm+#qhuMB_^T($W#ef#x3rau zrinNEh>jgZFc?!EZ0BJZ`-;XCE)<1&aJ7is&|CZs&T#Ia3$4jF$$}jH=A)m!*nyOI zO%c$iPQpIm;9MMD9oBZ|i=~M%B}!%+7QwMHF^Kp`?8}VDH&zqp|~9=8!+f z30v7=m7!xtCkv=1(E!7UJLHFqLHl)@Q>FRUIkP~^0K=`%UUjljW+8LUv!auP51w|m zt`BO(wpHQElT|9#hh~5GjXkPgc(!UrdWOJ=z)P@=6T`ZwhMQJ| zH$JR2lNvsn4rPxcET`2coZ56IFS(;Ha=R_JMp5{p zSOv6Ag!#6y?xmxxg=UFMUy{%lz|bVbi@UNSNz)IGqw4WApk?|lP+D3X7YgN=5R=K# zrvG2kt2BFLpEct~Fq2WMk^`fzcepmtLt~`hYf)(?CtCu>rxeB<_5TiO7Yy;DfTiq8 za7V!ogZBdT@MqpHb8Bi6CUgGuSL*#gx+BG!x$ zPw4D^m3L?Y?I_O;e&(EAqA+(3{4S>>_cc-yEyx#gNWki&`pqMTgyR9=3&$f#7~K&Z z6g8IT8e*}Dd?h{1lR%%dLTo)4O>fie`j&|o#1oK&I|m$#pWgkWD1Q5y2A`NT4RQGU z9M$+{vT62So?x3hLHk zlwcOrf5=+%Vh}zU8IGVsf|ukwUziQw|EOy}2&$K>zqmaH0$KFRo)h8-2xzm{q>zhr z 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

    Xyx!G7ifHVcH!tf!=+ps6H~5i9z7p0DE*^*Y@x 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

    9tIukxct^De`U6=miu?54EI2Yt9uUq*WAZ^ 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

    NM>|@SJ9x{rMKBOD61~TUh^791i)oiS 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%0D*5})hEUTcvVMD+ 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⪻#%6L2J~^qp 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 z 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%0D>RdSbI|8E|aa2&B#|EEe^_g6TWm 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 z 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«t^Ct&m+PZ&FZIE9KZ61>vP(s&xC~{31(+!EvB)QsD=_V zXS2&>(HX<%*t`>zm-)VG-qe5rj1v1#N!RA?sXVjJpgL?Hg8>xnDur*%l;q{uiphWY zpEokWX$VhW1O-7XUx&&nkS}g-d${TfxGGS1xn5KBe+ritRbt8Q%{dXxG-cgl(@=M!0WmXXc=q>&{aiWPiacSHkUjzN1x%UA}cMkX@ z7X$d5k`7)JoPR3u1U|+w>aXU@&1bI*Z|w5Ae+p)J+4_eE4HJDY6d2@thWh(VyVUcS zZmip)Cy)$KQy^!Sa!S zoJi(yOT{h-(c>eZwW;G4aU+qn^;lG>Y<2~g?DERt`y>+v;RJ4k_kMH+aQ~g4w{ay? znS<<{!2N@xX4*8wY zH-WaYvMvyaHJuBNwFcIVR*+%_1FAcqfkn_7OW6{e=dAbqE%_hSJ}fb}k-pE`Pt99h z`Z!csVDYF+a8Tjy41IDz(+gJfUfcf4uF?g@q_`*EjoF>#YRqIm3L{>FK~~)_Vjsl? zqs)zD!NyORQDS@K42kEO0*AVVm7Enu#`zi1j968AbXLLdu}y}$!>HkuTJMRd14f=~ zHaxY2nAR?s*XYHtyFzQL3>kQO6SVKo`~+<@-6u8$)dc@OJ$@*ZHjx{479lG!b6j5u z^O9F0aS1O2pvEL$9MYId_0*pv6L?cYhV;;1r~{yLbcBH)TMc*0MN~bLl0|BcfC@mT zG$&@9$cdkp9>H=Gy32hDv{JNxgSr1bEaN4Z2*1 z$NpFThYa^C{$1{^=MD#Vw_*{MU56eDjimjR!N);+38Vg}n~y@ccx;)}_G3f8e_KBP z@h3ho>FF^uR_J2j=waB-z>{q+nC7UN_ayFvy{MNEM&aEvYr_(_6l1TXrCtZq&trPa z*4}_#)4BTh?q8tJuF*rTg6|$}!@qI_3RF9C|AZ5}%ssa>TymUkS67vg2;>_!-1&&N zw6;prl?8`uB#vDAWPTmZqg-ok^QdKqW{@_sr9(0_x6+)#4sMJwMd0G;%=-&ngq#|=MjDcArCHDk!E}Jy8<%;T zD)=Ld3{#;NcvIR{@)cZ5M-%+lk21nPec9&|7qzMCJ|Z zMXy+AQ9RTghsqJtQgrFvCbl!~aI$1>&$7|FI)CkpWxE#820f!2p((XAR*1xn3Mir_ zAu^-O+7=h0&%TfsUhzE@n>_v78=5`l7gPRqLn2{t3yjZ@H1c_ws3#d`JI_d5;KL5@D}Cq(cz8FM9Eoj&AxBpmU@3Y7PQllASBEPbqB#r1z8aGGg|epwqjB3wT2_bB`>dV z%D#M|P$ec6bmxlj`UX!oUD!Ri+XF@PnHr%gd|TfOk{xS%;=kDTYgV=MpL`jd(p0bi z3(x~I?4b)fPY3X6b>4$sQEfH^=m|+1qSO|{y6wUj0}2*azxo+4;!C2LE z#JRh~W2hzAIEQ`tn?QeLTqaJa9>{)|JV*5>p#)L#0n?RI&i*se-@2t(414!8GavtD z1Q}fj!_uHX5^9PzdQln%s%LR+;YUelRV+v-9XrP_hOw*o@h|y*)t=jW3SQT?(1k$s zHM8w$DWRzM#=h;PSa}jm*4ns!3eMX2t1i-yXpX$&oFz>(&U)KO9l=*m#@_`R!RTVt z3%9)d)Sg%#@y4DRwuKoniAQ6PEsAYdhL#^z)o!#CbO||&MdnC6#?fc64{IoW8AF(S z__~hb7g4l4L(}$e~@}hiecD4 zxH{$V*|Qyl*3^CYJh-{6^jJ6sW#09$dF62*sG;nELcq!2F{7kg?v_ypML5?zHOIUs1WAF>_F?h^h7sA6c~gHvGIdi5<8)`<<<|HfCt*= zmwj%_EaOk3zusBq5^qb?CLj*}36l(G5@F!c%G$skn*hb({xnbju{@NOT&kUH19(Gq z7V^W!vIJ4+gYJmS>I>ymp?d$=8d8>C_Drhol??Wa9{zru2Yc@@qr?7eJ#*JFi*$Wb za3aR(Rc<+hzoDD7+_|cy)-+VdLfe&6qibH1z z@vP-#=!n3ACXEhle+S>8n~sc+6Ze{OTm8edA1--NF<9V@)HP1e`xk!(H?IfUKU>6v zn8xdD3{KjWIkq;d*5xB3ASa=X|1O_PE^`%BeP^bjEuFY-vwZ$ZgkHo=i^E;Hh2i9?Z@HT>`%jeU)k&v0>erYqWw&czdRQ4fK%Xp`Z~ zH&V~OLKt5UGtx`S7SiK>djCp|DiIIwW>b&`-?Fc=2e``~@-#3u&b6NQD6@5kwF}ZH z__h@n5!b=H8WzGgnq`Lx=uw8D-A?!nM{8WpNABz|Of!TUxa&`AiEqD;t+ttyN`*CE zuRGJb19yCs?o8ZB1!*PD!}-ERDRrt`(5Q>d7Pk*V9sL&2Z&COBtIP41X z{l=e%EeKX*WnAhEW{bpyhrxNN4owKtfhNccl}(CAT5sLQ-V*tdynZC2MBv$BHI{7! z{UNG@R)*?$dO#q(6~&Gwj%ucsmv>I}QAfW)sL$(7zhFr7{ibs^c^Hxm3bOkycdhZ> zXv1Q|0e#>k#_eg3;)VNe(p{$G%ZJ%Es09DQmr6+fJ};<}Vb#Id<%SFLa$3RPT z=~+o;=INixl-bF=3aI_FzlP;#tRdFuXy^yDNsYebJCmZnmW%O$kIRacQ&gQvSGHdg z>6AEG2-+Bn(yMXMZR-nC$A?hO!>@I(mb?lB40*v<(x)!qs<|(t2F0CG@Y3qeVS58= z<&MQ!s(Y=c(b4;+8>049eUDJe@w8?lzKx8_s=^w@QLoeMJ>!_fFAx3Ov+lOCmP-a( zC7uV|?uSj;#X4rcT2{x|a26%Ccdn6wd~p=c7=gyPLfYF`_R`)>irEEzk=qQmC>4|AF2;SnNMk(Zq!QmrRZWR0NXPjjK=CX>-)Q z{*Mcn9%=4!hj4P4)q^vIkPo@}n&d=0dC+IZN!{xV+ImgGg=1UgTlL{} z#L0`?4B#)yM+#-k^}!5&qdKHaOAwE?!krY{6?XLf{`fe2@*Z-AwOB~W^CfA(W{S03*n@MnBe>Vo!5S0_KpXy{f={0G#Z=Kl- zXesYJ3|l!20Gj6h8FS~ooBaJ37+Q4;5Q6WfUB<>;#Ks+DFN)^#`3$xKAg@Y;=IZ$d zWY;qL*b*C8V=HVVPwrna)at0Tj-C4L8n!qbddVQ4T{G?KPo13_&XoJrR-5^w-Anh2 zS89Ahcj8^jzWjt5I-}BhU)&hl!^1eni(>GoFIRLwH^z7%`UiCuG;a;B)qK=NtQDvS z4|yJXH)Xe9fC7LS#o6;7CmZR6g)`H zXGlK~(1GV zUVr3Po8bD&0kw&7v+S>Nf6LI%xEpEAJIr&$5g8{du zahLf{$)BxXZW&Zxw9gT=uYN_TPvy$X5n*`kSXf$JP^Lm3Sy~C1Ig;$XbNNbqd_?PsL40qqRQ3X^x?RqB=DM(lOkw$8Oq zi+If$yTe6VG(ymaMnY}rNv{i2 zqCu^`MzNj>uQ%`A++V(C!Fl+`TRA!rQ=I!ggfl}+(|(ErDI+*h%nPH!?sVkrT)$_a zU_TpOu0FF}lKo`55!cCKuM$PNlMaV=tmjzQ&zVzD(EZjgiF% zU;nm!j)NP;W$=Jb)qI_Q_WV^uMTaLit3vm$?D3!B7G(+fmG%4eOFB$S4iln0P@tLf z%SSMclw2SyDn3z1O9C#TY4v1gcmtBMiP8Yt$X`4CSx+G0@Yr>qp`WQBg+MlCd*<x4eNbm`f0R5;&m=mAipa0*L^c|`;= z3LpxaWoj0zm7n7+ejXA|3J}*dZ14IvHbYPAi!EF#C_$Zw=%l@>eMHe4hn%VUu+2v^8#8liWu8eX!pB*O@6g6r`RF+!p;zaQC>Gg z(Sz@z@h5_b2EV+%_E~*oWGsww7IjgIqYqaN4qfKM&F&&X)!Tmr+{6zr&0RgaB@z7s zrIcEfpIt&%%&&syp5%R~!DmY(t5T43n%8zEZYarKjesUb<%B^TfEKwwmpv`~&{VS6k{@jsDQr&iKhM$$s&{IK;AlzNgE=~xzIYa z9+>zqY z{v+n#?-XMm)$fHV6etv=34uj?r}5pI@$$dG+Mb*4!1~4J6s72F_ll@azYt&#OeF`x zp9iODs*ZyDj)MHUWz<9qfV|!3KrkalF#YV6TCV;H#Hx>itPvD3^3S@A6|kdI4(x`2 z%cJa9ed+;Wub0yyq?4|hl~5`-ZKQ_okw&VO$TmMSXkmW7gXovY##Mk?29BCb-L}t# z&RM5eR?c6C)Xj9ZatF1f3awVTZrmwo>83rR|I zmm6ZrU%v|)@YbU7|3E(I-7HP+8B7)Sz4ZkO&cbkmD>~vu|KiJ^JYP;^xl=I|7Waco z$1NlhPz;V0j6!WXYGC02GUs4wvB#HDy9_%0$Wj9b$Q3h=XtzNCryY``fC(orMK4X>UuRxo+SGgXJ^bGJm))`xA@=+vlZ^tR)ZTl#^eS3vRmc#{ zGS8Pb@OuHnn>84JCj{4;IL=%-47)UY9AAdLOGYp&E^1PtE0;KuGRc=UxPlqL{&l{I z0-+4Y(7u$u?+TrR)@Myx^vx>t+i?lGS!g}Fwol+pRPRgcsIC-JvjG*RHAJd4vkVQ2 zfL4Z(VS_zf{B--dJzO^M^LcpBBXx(b$?bbjy&i3txtff}*1T-17t4O-l{Ien?G|cq zD!1pK81E|d-`n>ypNdL9Lw|BAQq9#Z({359J+fB3*WxZAm1!lMK`Z00^1{>f4Wp{# zS0423oIKy@&;BCVojm@|%(JDVZ~Ke3pMC?Q>hHwxU+F^vg)JrGTAms?I-YNl_nfW2 zohy7g%8nD}I_}2Fay)qB9%K0&P-8y$gg>!xZ_J)H(@PTEKmUJ5q_NSv+CH=dka+l9 zQXI2iIa?hIy%2>1Sj*Xzm38OJxDDtuqztLr_dF;3=3 z`P|f60-4q*OP9-;OR{*S>)CTYrenQPcwug>hEBUx+WP&}EeXG*h4?W?RmNbfQ8^kN z&XC;k@#!f^VGi9P**LTGrf-g4`c1c@tNS=(M2?&nY&mGW-TC;pujnUpT|saG5cFG% z?yD{AiCuAzUx+5{RV~XHho1ILO-!r87WA4w5u=?i-i*uczq=iU>if=?6^C@2CmV`z zB=27Q0?X3;{goRc4}cf^SiysJ^E{ zkFJ3g?e^#ap+vbV)f3+uX|sx}PpAQ10WZwbqWajlqt;InW>~b7Q_~?Och<8W*WSZh zI){N_NZB0cuCmBe0xkE&x)L^K3u1XE5PQcARt%U@N)GvEE0L*^?Y|+65Kc|&26sQn zZZn&Se$d>@T##bfug9DuL8+;YAwe{QZX`n3aUW}oh1Rbsi1Sd4p{1I(;@z`cBz9^M z=09=by)hMw=3jiC;@8*o54=w_nMu0!jVKmFOlW>hN1IDsR9qfZl0NfZBZ;RIbxlXr zt1qfzKAL{yGl7uwB@t&0e4-5UIo5sZ*K7nR9~MqMzi?j--8;kLJz918I;$V^hlsn~ zI@k59hGf}`2QU43<7%O4y5XH#|EpSppw@MBNZlTnj*+DI{mqYex)?mHftmR1+J z2fT@gdC^`}??d$TOj~OkHF9$s*lE&LSnUL81vh~A^L1Vf4sw(zB&M-Xc)_$qKgXUn z-8XdFeX=y^Vl`g%pc&)OpqlBMK+=5a1LHm!uekZ%RnS3p(GKKcd4v}oyYnl1n>QdChwV74WGy^p9{2AxKUZn;-gVZx-Q%?*wo1U@{kZ`b` zw~ItcM-~P@prk7`&<1BaSJ~(NEMhP*rSwVQPFTP?^pF5M1oaRTtZhXUy7`7?pe;K< z9cuB4Y_v{Z*h@ccdoeVt6_VK9x3dPaJFND${z4wd?je%uB(lpM44}PIZ7IPC*XTuV zTsVsNhp8NUg>6@)Akb_GjHeX7p5j{fE8ZpJHo@+}luHGuw;d{;fLVa;acnO!K*-PR z2`pK1wX4rzr%vFRXQ<$QQG)%S1%nB%OH<Re)6=EnI13HJhrItMra znSYGfS6qEeg-ExJ%V6sn)!-M0e;1~MnPSpt*MEyezgwQxu6N>>EKehuQHDwlsXR>c zj&|uKA?m0zV1O$+OL5({{oZ**JpR1C0FK$chO3~undsep-x6UJAK@L2nh&8foWq{{ z4#kU32P3WK#rnHYyKFxa<8;O4p&4nn4SM#|T{H*p{BWubVm@^`s!f&ck!aXzhEgd^R9tnfFKM5m5vcDuD}&?tkN3qrU{?Qcg9|Z&UqdjjyNCW~Lj^SW-M3lM zQ=@%v!cNk&Vvf+!dJfr*o4NVXOSr5UlE>+Z;D^e_XP7Ps4es~2CMUs-GoHU5i}$^gmH_SylgerhraQVtWh$kU?R( z$@wKOqG*Y;1kCJ@i93*;ONDjlyQzOz=UGnMX z9<%9uYADwC|+exsfI+gX!d>eBv@zjwwg-Q~x1wR81~ zHb@CmjG5nVAG0hR^qU2bkwMfMDc*;xC|XRa1GZzcvQ5 z{xugC(@X*zM+gMaeMHx-BhMPPZK3JOy%=cI$^xgjj-hr*iJsnB$_=WQa0YCedc5+A z8wxf=N8d1PJ6B&R!6xh$gn4R~E@1gQGe#=si_XHVr+REnPgEmw0^SH`FEd-3Kp+Qu zYPa(5-X4P1X0BRC0?We7espjXylLKLkxK+IcCAj&=I^9;GJ|T3G`$wJ7;Hjk@@!6Z zuvc`+Jij%^&2gUOW@$ELhAdIttxo@mmR<|?Rdr?D=BTf@V*&1wG8>$lx?pJ3;BwkH zwzK)|kVp0HY&w@X&TG1gsEX3!PtspouRvNXs#}w@$cc}`{wyVI+b{+%h4Hu8 zg&R=!38c_=jRiP=&VS^9pM5Dd;-go5PG2kb5!K=6%fJ8;&}sn=a!2>}Q0M-OOwYN`xt-2&KtCkh~5_ zbKdXZHO+V|%){O;Z~ZiN;;+}nH;IUm0+eyI=iUrTa>?=ubx1O3hiccAM6=1rv<#cp zJ}vo(uVd_!_y!eEzr(|LT^;mc`Z%DYU%0QMTJ+iBg^ESF{BzC_gV~&|fI5Ufmhgi~rhghcu z%qstOc1mmgE*d&*PXb!3yUmiKs4);A6R*k?uE(jhP>|!ZezJ zpxQEE1QoyCQvK)8bazB80aXdYYoaj=;m%DB4LGlNUzfubU=Gh$a#+rELzGOF8YWh; z_W$NqDP`0}^lR5^gCx<&5o^K~b~*iG*^I4K1{(6Un<+4;N!b5L=!oMHc`=0&61yZq z@Eu;~kKc>wojyh}7r}{zXN@!r#LnXxRCgq5T}-ar?zxlVi5c_P34-}o5q@zCjxZOj z(F%7_dQAxE<6K~?9xKyQwxodJ!t6zT3(aSQWXCLwv-?d*8Vk}0wJ>2iepb zeL|c!r}Ar!{{4^l?_BBPT5q%w!{6C`wfNq9wg-am1@r+7v1x2mkr&GIQrw=dB%srjXVB9;Vdu^mMMVV$+S8&Rdb7!!V&FECY)M$9=IKd(1QQ20 z$Q~r>qjAuD7YJAm#os)3_4X#@XnR$fPYtL_l~3hNshwRv>qGDjU~oBBmcI-&Ep#(# z*7<{~iGbAN`J572W5}y`tnJ%`YV=IkEo}5_84nweJboWh3AHs28oWC*BK4nIO4JZH zTQ5HjI3E=yl7+^_CqZNP@8)6cm7`q$ILm%9dS(s~@b)WR8P1gmnr=m%4}fhYQA$+~ zIl_8L*6VCi>|LmO+R8m`GDrBquK1*x)^!cW@XReDf4n_km1hC^6;Ku{<<@#tp>*S! z>~{9|z7M*sFS|E`)}q-PyiJoY>2VT9vN^4wg6uf}+@Wm7VR5BhQ%Unt0YLD%!Fu(c z=oRLrZ_U<^f1me#V81>68p~7HQ?K&@GVIs<=Xu*&e$@BWtT*Bwylu?6BG{$%=v!xg zQ~$o!@J_1z6L5rqvx(PlaOV5qi4|yoiP+hXmqw~^jtQGpBr%=-g+X(XpD%;bkCp6^ z3&_FPhcCUgBip1Y)C%8Wy<@|cc`vqT7~X8Rs+W0{Y1sJm*#vr_yXmY_EZt&ZS-TdA{y@-E+3kdajQtS?eI{(NFI8t zE0g!k=*OFfujM%L0_b5MZOo%S;;nXzSDX8$^--w5v}WV#ei!KJmsfoamZ#rHK~;mz z3D>CM2Ix2zpfIA(E&?%y0Qz-;h=tZG)T68Y5~j@S4i;_rwDngC5pST3Bd_AOXvBPs z+E)dz8WyDoEg>=IEb$MMytR_6&Y6QJ&LEwFD>l{wtHgnh8rB0)#M+n42bjpZH=(AK6k*?w2l zbgHCj3h&Zf+i6##Oxaw$OWAu8WF*yy)|j0O*PgoLETtiIg0h;@O$imcPNKji=);;e z%>|za{cSqk4s!-%6l2?CqT6~Reg5!Ae-%rM_%~ z6OYualE%oR;KIw^$Z6?t!=0z$%bi=G5$Vxq=6c59i{$B*KQ}nRgY5zuzAGDi1$MH8 zbdsGEYqfo33!m51^HmeQ+qhflB~p+HiN!-n77e|bO(Oca$g99;rHd zdy?Q#DG|bj5o(X>Ky}kW!@YYv_qOTVnZiblXyjr}!6qq|j!8uxZ!&v$B3Kg{Gr}Z_ z%cz95Qv$yp?p@E{dU!xy9kJ%a4oWxvbnghTicM7nj#jjv+pRQ`;B>~%p`781;$@T& z{FmXjA%72#KQRy3-Z1gYcoHAbzcu8m9G`7i*k|*A-SpKQ>aymxy}(*Ls6?)oR}B(x zEi#lG4vw*?;tI{?z(!0cHRFXHcU}9u8Cpdtb2R>dWOkij1R_Say-v9T&b$L>x>p63 zlQv?#nA{KRg)6HjZR(^M1J0M>ps{9=p(Db5^DAv5{o?d1y+POs{t}>04G?pSeSn%UN979w}qQcPq^@9LyESz0-ew+ zzx|5HLQjD6Sb@MN@;SSNP-4;?|5_39oYToTMc{A{r*Y6?y{sEiHvk>aYPnTRXAeYI zQ>YAiAte_K=4)UUTcO}U#aR2}>VilfrXPSuZ=|m`6<{T9s#TyF#KZv90|~G|^gOJR zCW|}PX?E}x?nGm54Yku-nv+hw5vlkH@}kv=8AK)w1E}RKq#2;U z^wsYh%(%4Mux0Xn`neNTK$8Z*=e*1s1;LTw8{7zy_jy(pjMfK>W6>sUqxa*+W5bGy z1I3btOlR0qSuyn_Fo}eyu)+y0d{&~gk`e$jhjXwt_=qpur!DkC&L~GNp;O&_Ep&j) zX(4CVm*(hrPdatuq549OCwT?0wnU^t@Ye-LQTesV5?0_=E}i0L<9xTI4XyQ+e(vMG z6m{TN_h3aEnZo|q7_^mt@q!$%d6&}QJeSE=%HH*>F|8om9?5;lD=^z zisc`Zkm-0iA$+#5eTKx9z~XpuX(>OizNJK)bvf9l3F&ncQUK0AtM0x2Jq)bo$DTep z4Xwt3Tls%3RVn+(csbs;p$ARBj55`2XsZyg5VYQ&)f|#d6noRodYp4}BN>3f_%aaAn8e?tGd|L5zPZzpW$}s` z{U{XfTolwT_XAp{{qd4gD?eIXdSyQ){Y%2vqzNN&{?Zs0^2moB+!RyLEDbxnQ`*}> z(t&tt1E}4-#Zu+i{;`Rl__nx|xpq6b?d%{(LFjXY9YrVb*xuDl7Vb9iG6B zf1(0JuPEs`C=J`5GIOebLmJ1JNZ@C;2HFB#aBq<+ zx`peDo}h42Hzi+*qi>@NA^GF!9rCm9Y)VEV0v(?6Y-eFCW-%c$b{|2mzjm{9XRHDg zW@gtj^Em>i8_rVpek~2n_2@cDi0w@d4@X=U`ZdmrfLHPY&EskJrEzuyr(Trb%A1Ta zoerkaG~n!dsVU7@vMbo*s3PhS;MrXlQ2ZAEb@2uDcBmV^Mz>+u9XGoCw(o-a4(gbi zhYY9CzuIlF2u!fCHFjF)jZ8l%iWo?8df&lIGagk6KTld;K^zcyqGP;N zhtooyLpovpa76#cqy zj6`;vb)aG}u~GJb1_n49TUqLJ>T(aHGs( z#R=ydQe~N>E-Tpl6kA*5Y-J%fmD&A4g?&eI@FvtP|E($E^%x|X>B>CcX@3Fc6f!gG z{Q+4ZqtWMqt@Y56QDi8wO|D~|i%6g&IWXaUgXKm;HtG1jQZ0qz+CYM5NXlq6>}_`1 z+*{TXGK)sHPnFA0bKTi5%qs5EJ1o{PvkInPBqGGfL5_(R>QMM??a#iX!jy#bG-JadNB6G-4I)r3 zA%vx$uGLn)qG-f25IkS_7nu@Dup*N3U00mN!+xQInd+N? z_8;?q59#-vlB*kVSzvwN?Q(bSvT=1{b9wIF89O}uBD&=D&b6G~!h0D+PsEqTlR1Xg zC33X2)be(fWR4w7Zp@&c#A>69p;%XZZ@zjX$S*|hl`JxzQqo1u~0 zn`{I@X0&DyMjKw0oiUv+FadiBU`ED(%!97jUK0V^bOi_mNSE$5h5k1fHFdPV!i}V> zG+Q4ooe|Gq4A?eCtiyv(00> z7{}_2BXOhG24)OY7ph}qkJDt73z@jhrF@U?cV6z<6q%HzU7YUfwqZ~_i_6RZ`&)n* z12rV7XE*$8ik%rgO*r|n_A$T`B54Y@(#(|VYwSFcu3O$HX^+vZqjl8$y?_<7L7`CkudW$NkOxykmnLc? zWQQH9=)qNgqUyMWe{vcP#`GnWz+NeRffYAGJpP_#yR=+@yEM!pj=?WdBa+o_;+T+! z|I&nS;Agiy{0Y}heR@sg={SnXl&;iTpvemFjf5g_#)G#@q)b+HWy%7iAs=_b^mM1( z5&75u_hvG*=`*-9 zOlEY{1c&X&rze=EV-Gp+KHovMJa_JiY_33zhYxyI2vL1=dZOs|#v(uT%@k`(g=!+J zGLK)Gp&AZU`EJ`qf{#?P9&zSlg5B^bJ6SrGM1L7(n{|j2feNYYtg%T=!>933?C_xEvV2qT5b`pCDS4e`JAY$>2gy$=rg2+y@(iXeHg2!zw9wBT z_c?Mwz$i`6V!ySTLU}(0)V5xb#7aCtARd2^8>|lHC6zs^G%_08cE8ml^~XwIq#bLa z51zTaA16JChb1(4Bomw`E{D4PiE*|1^yH}XZ2NoL`i)~LX}k2;kXRr&eVkqb;li1& z#KjjzylJ3xVyyG-;<88fx~B+!{l&pAFYJQ(zn{3wEoKI|t*cwyjk?8tW`oyq;WFL( z`!8f}Hys8P)n#g#Wq`RCC*-P35hDKE29M=rIoGUA@ir`FhZ0Ly=M+dJN8~EEXgh{{ zC-oG24dm<|N&iGCqnO#%Ho>Gcv78w8nYk9eozii4gv#^goCn=%xF^D#q!W-1dSFo*Y zi*lGmX-51YxYVK4Oe!B?m=g3BF(!b4X}Vh(_@)}izlnd0 zaCffI@BDDnfJ(kT(+MW9xg3Z-F+p$KhRpDr=W`#|&fP1VkndiQy>z)H(nQGgO$}=v zq0MjaxvaEx2QZ5X?_c-_0L1G7Gv1*`U0<7dk;;!sDrG*#6j$V4Gh=Z|MtMdy=j*O* zoR?^B^*r z{0jFAaROFgr7WTRDB+2qR$$|_mv(0|j3234$Y)B?Iz4?CfSdM|#d}J?UKV_m5!3O)eBelr^jXHjWcpsf-euhq#TwcwP^#Z%zpY6WjA?Wz zvud=;@6^KjZI+fW27UR<9QOUz*^PhZvrPPk`E};mv)PLmoxfwF8lKvji!nTT5b$kZ zn`4!|{G=MWu^g%H|M8zg0z?{>tVBy-GVg`SGcW5D8sMPrEF-ssa<)4%o=a~Tc@38Z zRNW#~%m)Q{mm52G4@f9QvfK$ikc)%!24i1wB%~F!yMGP;RV4T0-n8CL(yqoZzqfj< zDc!{R536G^+iRLHi$3*%{^mC`WeRMf(4Xo8fvRmJ$)MXEp~1~EtM692_$yC?oksxa zfQF`j8n*;jgh$Wga!7!S&oDdr1}oO?{#(zYP?EC1b&Pk<>qQqj_!UlmpJ^6`0k16lm9lohHk+L%E39KHj9sB4SIGg1?T%Hlp z4k|$mvWOU>+BIolK8V*c85S=6af}EF+=ON29#6ipVvBe=_wJ|-?bJU((6(#71D-%5 zaWuo<578ruB<=q!Yo$KsQKpFKBgL4;r>`7uChtU=3afUc*2MJ`#&iG8j=DFi;O6_d z(DT4|d;z8Q<5`>c$Z%XdEWf}gC%D}tJ7vZdS3KidaQ&8=rfZ~!PMAIvxV37ngdF5E zUEBr+NdgTrxZlynojlh#@g{o!AnKDHfJE;AwgRoCUm>es(eodcCetLBGg@Y>NHvk) zQTZYv;Ym}8vKSzY|4>Q+YT@!lrk-WadnAAhbtf7pVwslzHhl&S?*u&V-8gXz3}B$5 z@ngrS>V6cG5Hhe`{Kp-}FguZzDN*hl9s&L8Rt_Z;VDb_D_A$|W2%S(cYq0*p!Zo1L zDeaM6+r_|~DiUybyV>jrmN)llZsDR1*_Z8}gzR%w>WBkNwNqG*fQvz<=Aw3{oKI;_ znxqiK+aiZHo&kDcKLaHuP}9>2B%_ za1(hbNg`+XSDuKk`mfx{=%+zdvUJHQzi)R5amjHCyCClwZaQDs5+UirMF6>ml8< zgB0DG)^rOskaBAM68SfoQKT(8{t&2vIt+}^JbD{z?}h8Z1h0r$-mvzqYcFfZd*7S< zr0%`bs|a&vP>E(KbH(Yvorl!})}J(1jGp;9=H?qa4ABDsAA38!H7 zRpTq=%N0^d?(s^ULf=29`4%DUI!$M~62pG$-sWKRx8lzVX|2axbW94=l?1B!o#$Qg z;UZ}q(nB{XY9lhgl8dMgvB~`A1)HyAP7V*h{ngc{0n~3TeHs$FFeR~>8FA%At82#D zztxprRHS{IO<)*_s#Yt`G`?rQ$I!tiV((m4`2%(<+cM$@IK-x)t zF8-O;%rr!%q^mQQq+USuZt^)gj%~}hKn87JeEwAWZc_n$sbu4Icy&4v&aQgb8{YF$ z;5$Wf%|!iyR^DK(j?xa}`gTsl{?Xc?L-{{zewo7Kx#gMX9$P&n@Ewp|vcXk_)8EUG ziVPVcv!0{BmhZ0(1tW^LT$C@)HwNSU;7-LsX%lIu%x5@f@O*EK_3xjSkdBuep56LD8w;*G2US$fQKU1&k*Tif z@pgCfJjgJ22Ww>iov&kQN9C~sc1Abq&~M9DYu_zKQb9Y*75|TK_`M>(v^ZgHYWz0F zlcfsuA5ZO>;_WS>i}nLV-`3xIi3sv5m11yEWnzrya+3Ms)#7$!=FmW3q6fyzi2e0v zTe?2J7VG6U$B<`@AieW&$GAGy@gmpVnG-s=Jt7cANLLvQWdh z8No`;9cm5Z^Szb`a?iV79A@pO>i4ohu$}>fJFaDni*U;M#_w z-cCKywV*oUC-Lo$J>lV*Ngj4~3vB=C)~IAOx*APlt^G-ID7D}*et7#qTrN5WnD+oX zPpLuWVTOxrAK(|SwfSG4r?rt~>yo9Yxurl_?hBAcAUd5WjSzG1L9#_hexS-rn9j81TMh z>2-!&i~o1Fdd)&zlBBMSXbbRZb|`ev8FDN9KD(8TA`rePRg!LugsX}3ElF{}%`v{IHh^?@vX>y#gcn|@$EVJ)} z62VegI$P)8)LnWmx}C3VvCMFe|EA**WEwE({}-{k@!Wgl2B)K> z)xM~vdgeN5H~ayYND6WC{LnIkK-MY1k>AN0s!{zwjQYq&ElP>Ogk!H+KlQ^~o6HxX zEU)FXljv#+c~ym_)=Lm!>ji@fTP_LyK>p1<@Q5wwc2u?pO~>zMt0A|o%Z3kwHk))e z9?>Hkz{rjC*PDcee?w|K#jkOw$?!ID6HIly8x>Nir?yV_mbV4mS;IZUx4l~X03S(P>OtvmwoCyo zxie*bULD_8x0Og(+)Sc1@eCm|eZrbQgYEcL>4e4^KI4amsknsgZ_dKs^LNOg1TQEG zIg^KK)L{1K%>Y5N{axW3@&gd?MY72H!^p|YWv!a$SNBF!Mw4CHT&08oBg&K|+4emE z0Rpf$!ikk<40;4SoW=E<5VqZTQwQQ^&}hTCVgFt*!AoKe_Pcnbz+>f^&rQX| zm~>etJ<+DVtKzaJD-B-cM;WJC0k5oS?6!b{B_?^**3f}+hCGhjZ*=i@J}mI))st|% zjMKWlU!=3JDL6GhSSF|>_Vv5zdV_@+bjcP_cYFMpjG%5QdFO1ruI_KERW z|GauqAr~1cmHRh91bY-sXff<=1YR%DOrDn$(&IVs9$~GIP?5IpE((|CLd}qgl#-s zWMO6oYPxFOKcCp-w>B^>q}ean2BTy*6r}!IJ6SkrqOGCE`3~!~XXdt@5pG)Bu2U#K z)Wn|+Y{JOo--)be2-TJ>Ms!PyVvDHS8^9i_1Q=b75}n_E(q@T9J@gvUhqK+S(lv47UR7|C$QtI7 zHo%k%7#F$M-z_Mtz$lu`T;c*G>usoU#hJ;AVji7Y!mvHGoTLfTyvgnA8KQBg#{~d0 zi=417E$CN$g^k-Kf5#-A z@PFx#cH1uiv+?)QGrs^+#f)-3o~97(Pv=D27`b4;u7y5>)S>A}feau#fE=*>wqiSG zSU0Lq0kuKBiOzZ?M7I~eTvVa+-u_!=Bc$pUd^~GB9flY!z0El-yA>!mw2Jq8A!{A1 zZ!nXm8Bw_OvQR3usZvnm>|v=q*Yf6Swv^HtWDDrgjP^Qg<_xx8(7&y6N?Xhq92tC; z?``%@;M+m*iW5qweZn7Jf!we8f^7#t4d(5a_jaUUt^ zCOp`ogsi^s_^PDfMeNNr5jCpTo1gIp!3lk|qJYhn1CPs#b41|J@QcxH5lhf*-Qg$> z946`S`JoSbu>bC9=!@z2{cilODO??(bfX+dv$4rtDnunSO_(o*JVp?$uy!b7#?)O* z#mU(U9x6dXIM1Ykae}a+LCr)pWdl;zEPsd z(OBY+>yq;U?<>tNHbTUr3pj-b#Ox4Eq8%LXHY;G*WmlR0s{C#7*S-eX2)b+OivV&j zmX?Got}gD0hUin5aavdK@*>05Uy=tSv!KkHO62q_8nqa2j5AZmU>(=DsWEK`&1-L? zq*N!AO_!)i)RN3Uoq}#f>n?xzoFMySfy2BmQ%SRoi|0c7=Cz6=R&9eLuU4v09V{|> zq`Otf6c-}P33BVY4!C<0Gm9oSAH~fQWXQEul0-$6j@xM%J+CmFHM&*J?IZAZ-``Dl zY6a&jA;v=PEmS)hBA2bCUT?qr8KHP4KK4~9c#IhMTYw908V&t4vF3^s{Rr6KaeZlC zl6n5@42U>z9jcjdMK`6%N;FEHw-%VAh5oH{_F=Js?*D*bK_L)iaOn#PX4Dbv0WQkH zaf@X_8gb@)51e?1;=}B?;__`*y6Rg^bZS8v@-kvmo@{NB*Y2gVkc}%@Q z+5M}z_jxYBzH~1N?|-8}u$$7mp5AkS897+}&-|m~9?M?p8lV?vIj5v=K;QpUW-@9> zuH*PI`o2y+T(}E37Np&Ec3TcJ&}ej-+WNy+j>*aj!hbG1*jeoQsG%=C)YLSxK<_EF z;oVQwXg=q?AX6LJ_5f+9!=F7AOlIdDdIg-ES>N~{Ig zYtab&=ynNI$pSJ5^1rFhLijC3(pvgkCnP-q5`_I63!aGPORng9*_?k)>$(LZPVz&^ zA4G+TvVI*Act889-)5mfoyOz~BC>}SBFsvm*A5r%eq*pM98dB1d4XAfmd-*$Q%j4= z;RhX>u+Tj3#AL#2u-X(KB)v-G=~TwL5G&A|i}Z*87d>kg{V&$$ey zBlN&v=&iLAfTygiSUYEGh z>u|B|wXCK;(i;h7WYm+LtQI1YMT{z8^u58Tzm!u{MTEB2?B}X7<=FVU!%T^rvWkk6 z-@7Iy3q{zxksy?0o4e@eb8G&@F?(;W+ga5azL^df;-wb0f1LP6`%1HAESzMaaXtOq z`ig@eWz%buA^TFix%{6lHU6KCALS+{7Y)i(ujgN8Nu0ktw+Nh4)bdd;PoA$9{h>)! zuSYkq`=-}AqO+oP%36=b=Ru=5f1o0=!YN=U6=fA2X}AdS;i|BUa2#Y!oEnVxKxc`5 z8i{bS%@MQya-8}OmafgLjHzjeg8^S(4ud1;Ohiy1xhd=V#jbJ~%SiL7hUv^<(}UMs zpoEXa#-=>$wc}ac5&LmU@0w6|jy#P7C`MNE)w{Y<<@n8|Ja2v8`Wl5B-N093{#6Gh zU$9Gyi>t2U&oi?2&yb*4&flkE=XO`k-LIQP&h#tnOlLU#OcVTsoP5?-vKKg7J!|Lw zdwuYmcc`J?L*J^$)j*Ip+Q5GRObr_bo!2x$M=|EBS0~$-BiGK=xuL@IM+JTiWlG<9M2oBB6|9sKF`7}T``?)Aa)HE$_L7u4n zmIZl_#llNMj1K*3_Sn1iuYIyofc*RePjS$ry;+;QM#~RMeg{gPzdE4uc%3}3zplt* zv3%J+j`f`JHq^7EnWK(zMGd9luCJaIxbKHFsXGR(sP7zWVz&;GZ0vDF!b1QasBM&I znS|0V-&N~~!Hg<)Z1N^SX#rYw{cZ4hcl0^y$^_YVow+_2iSz+DM&1igTVmPg4*f zPL&YtGzRTv`(%?IcTDlP-@5fZZe_ntcgEB?6t$>1JDo}MtdvOsszo&o0urp1F@rMK zr>$YycX33+eW{O>W^!D^_Pg`^uQj+x=l`VyWB>yadRSyWspCY3Sj^*embz_^!T53> zyk$GQtjo~gkn3~|t`Flab4v3{*S*eQ@^n@nO^DkSH zw4=PYI|nN8J^8Cr=k6y#TRtrOs32Mc&oYx*P;4;-g0AbrGwQ%^)+m2 zu546gEnA`;rf{aKwkmsv=q~08m^w4)C~s57YAyT!B+R-Wz&Ha8Y?eSIM1(K;o~doT zBN6Lq#~MQx`I^6x=3~Yp^Ow^yf7>hgpH|7H^I^8QDJJ0Uvfj-6Y`n zeZ|!r<|%x?*)LWPb9{z0Q4WC(wtj9H+`R3yI@ut<{iC8DI$xC`a1tz4tg)iI$QjML8$m}S$CzHi zEg|2p0cj|AGAVQUG_ZBaoC{xUr{J<=_@f=bezJAJ74~gk_fIjNA=Q^jL)}?-bxtkM z3VoyO_^%pdPW&9U%o~Lg-jZIBfVzE9Wi?EEp;1CdPotV2s&l-4_aL>zvG$W8Ka&9w zE~iSJ40GaEIv$+h15I`d=h~?J>pq~->2S#W_R-xX{O$`Kzu8X+)a9oz;FA=0^!|_9 z3&i6qgR$tM`v_odUhR4IpSsaUXTG{MG*caZZpp-Cx*!Si@=w;9Q(bYlE-C`?9Ov&@@XY95C5LN$nfY+hoUy@}2 z@st?-So*M{=(W0EtxCEGIT6pTB9d^y>Lw}JM^^8C&W1+m+@Fw|P(gL}^;XZlxRu&Z zu>_ZiW>=uF-@W)EvjwNb4Tb1OR_b^!3?LEvUTG@5rD2G~l1tP0BHlY)sRqI5ntoJ6 zG$P!WL&MV4Wr?itWYdKDZ&Ky%3C1++doSLxhWb4{DgF8USDRQ@-h_YY+8vrm;w=Kz z&|1^2yI%jPT`)gZ_niT=nvZK)bQs9Nd6*YoeR6g?&Q;*q|Kv*r?zUDk&0ve1HXV_| z4jd%K*7AbneRaA;@T_9ycs-{CaA2hTJlQQ==>f7QtAUYxp7QwLj51c2uMMa2!Dno4 zXoi?G5`#uDps1dReCLzWL%#T7Pr9Sx%Jr9sQL7v+k;6maMWko+6`d9OLFBoUVD`UB zj`nR(%I0W`stHdhrDnPZ@FwU6bhbn;`h=(Cu6&c7!oP~59$+ej1@n<8>8(EQ9zA}w z%e~KUKJ%-{J>6iUpW8OE zbQSezzc@DPtwJa{ZsfiwQ~A-}oKOIE1Ab(F`w#hW`iysM*sr}m&D%w(i;fg;N?osm z^M$?EhrzDiJBX%k3y>EABe^vb+Q&XKa+4U|1XEMGhh>^4S(i~BhK4_6&wEH0%G#xI zMyoz;<)1)z;%DJ`iD4%yP2+Z9b=LNBf1yXwIC|8ioA`oGLbIvtxkA&zrs?skMDO{= zz7tTU>;B`zRY?h#dQ(RP*RKzs?hjH3hbA0mmuoT?M*TK1AjL!9RCjUho9|O+)J}~} zUVU8I$`=h=4~0ctc$!?Njl(M{&%Afioee)%fy9M-&R)r8MLJR z*V2%up4hBET6Mr_ws~1UWp!D`I0*fk=rk6~B`BCg>iA9*}&&8>~0`=5E?mSkjIAqAk%h zJ#w9DO-{mXBwrm4W(H;n!Eib!@8l>YwcR@4weevl+l44Y*lY>6gV$+)2feP}g5MnL)(>hijC zs~XItEUiWRaA_To#L-V0P0)t^OO?;4hXY8$_Pj{gl7J2f>WYOT_}*hfHePK}0K zJwdcl33l^Gf9c^PB4WtJLhJtMCR*0=+UXI8XmNL|y3VcsAsgz?&E6jO6p%t9ND!uA zdSOI&;i(Qc40}iOu~|S<+6L(qHFA4Yqw(0^CaP9@I#DxnLhY)WJ^Qv)YkA`*o0uBG~c>Lzr4rm&7tIbd`c(H0z3ZK znJq;Ea3g?55HIo`~do-j2r`NNWOmjxmp%|k=S?~9DIVm1tM_Fxenc9SR_Qmxq zs_Pv1V+v6r^;LDzpCP{{o1LuVNWd?EE{yHXM2YTM1bfbGRx-&EOlRp zd;$%a$5AJ;sEeOL2>~ZD`%9Syg|N7iJ6o*+&VCxEHaO7biH>`j^~|ny=^|0TA9%1q zx<^qk&nzyA1{gpt@+2ftjW5+zotbQA%^DGnA`DQvs_1$?d-eZbfC}jhR|W0oGFbtc zR)1E@nJOb9$dY#7?X(dK>Hipi{!De$Q|_JB*QzHPT>Om=7GV?3SqTz^dI(@Z=lklW zI>R6S4fLkhU;UTW3QO?5?9#0}qXGdziK>ncm8$WxshE}B7WMDg zmZDmJ?)LIWul;(qRhv|(wtJZxAeX9d0tVO&i)9~wZtwwCC?zZ!c9@{|$E(=#(Uq`W zxa+_!tqP&Ojis@Er@ra$ku<4L;o%ag$>uhr^j*)tSbF=frV6xT)bRz3>vG4tUhdL$w^$>%+>cg1+P~qUYY}Ia3V6|2v(OtgFLz~#= zBOeYc=8VoW*q!%?rBON!9v9uG(^siKmiOhP!cJ-!7$?h+mueQl$}qqN#7$wJ;A~>^ zZ#HJG->0eHQEBEy7RUzl?^Izdz$N?qMXaLMVUR`0C#hm&3?SMXGCF+a3vlmBQ9nGWa9(t7$N z0q4 zk=P9*vwO&O{>!)h?)Jv#bm!r}<@T5>$0El9FUR@b8GcHh5lhLdUUF3q{Q~rXeXt>e z)|~Ca z?YuGZlU@E(-s$$QF%~P@I?}z=U~}}XHbS1rRgvSkwmmtF%T<>dl~~K+Qn$TCcAbhc z-&UM++2xT&yXKO?rp99%ERL-0-XcFD6Vpojb8Ii{AE;ZGCAv9=xepKWk=~?B+d8pE zRM)4~nGaQt<|+m1TO{VTE-W`5E6ybB1>zKIg=3e@R3vphrjF*s>zDNMB@FF=y^*76 znrDDRPVVbz{Z`hw`Q|2z2@YQ&GZz-e`?~6lD=923+Y?qAA2qQb5kmvvAWYdx)`e1a z3s?4`)cT9<09lz6!R`JeW)aqFK_(>C%l&d@U6WUYpmM``-eTeP#>uk({mreI2(CL6MkY4oZy>aVSW-mJS6kWWha5=9cW%XKJ$|M9 zm70n#!f%@rYlwnvxo{7Qdm@K^S1_gMsm1igffaj0J;( z2t+#tZ1I?P`E_)kS1FlZjo=xvcrQbw-1#=sg5`o>bu}em&dYk_QEDyO#@KuCV7a|zFaM^fwV2-o& za_bFzNCAN!1;%Ho9X-2 zng~xRf+Zku5RZw&=__F6RO#PHe~i(TTKNt$jP?VGj}M`ENL9Omrww-^Yi}-_JCee% zRoPC%t6mu9NA z@z;ah^Z~1+B*@AbZMAsq?dSFXqv@=}n*RT1M&KS5O&-1`-aI%#$fDINCN7N#d^ zt}F}H7~H44Aq-cGTU&N@xR=*Id4-RLr&6cFP8B-O|B=?rLo^7OzPPKzp{YQ*=*(9B zGo_j4njO%9c;;X7*oM zJ|T%pZ&(j)Dw~X;KEC8;eID=AkowIkde9sg4AagtMGK3!AN(1;SxP`YU(RH{`3cDO zi@XZarp8E2 zyNj!C$E~|2T;5OucFp-gwmHXqX6iO#ct6vzUc`odXmuc_yC+M+1}H9dO&mV_3PoD3 zy>z_+!bXz*XWZa!qW))GfeKegZ(yVfS2cCRL&e-<5u`}HV%ukI8P4?!?kCQkZJpD1 zwU}?tGV$5!jAjtRspzAuZL7w{-4^ZpGN%6`nGAo1>~kg~iK>ul9o{98zOqm?Vkcnk9=O*E+Jki=&ns_l?0A)A zyg-_6#B}XCIrX=ih;3{BCFXg-y<#HsTOJ1nl`*>*CU=iYi%Fk~K?hYleGuwg>wY1v zq^aWm^`TaUR6WE%TkMg0Y&!^}pEmE!1G_LnW@|~Kvzr6O(Gy#k z(ea=J)E}TKmGec=(x5k8EIt4YYX5NtSN~^bsGaFSKxi(-w%>97rsX4_W@^NKi7(uk znvb&@!mQcBB>TpWhV-$df0;URh`at@`#1$yQ&!|$jBNr|YyPkXs+7C}QO=_9Yuy)% zu%imv%etpElYVV-Z3I*#e2kw&8;My6o=aQ@W~-;Q6}wo4O<%$AuMPdhE_Qs_`5kjw zg?HUGU0R8{&!(g?l1_qWjtrXb;adDGA~Flb_@taKiNItcULxhZu+1Uc`(pW*I;QOs zK$MWpqNB>8g_C}b@UtKpaKQyUfoE?+{`Kg$jrZE%ljICN&3N@dbRU$nLx*bSP+RbV zF8S(}yrIf2f`EHm5b;AegzZXmB`H6OaEss9(GMvyYetq$J-F70N_DSQG&XxxM9Q;& z5Ue`8kr`a1xdY;okxroAy^&ljH9~^`;ydU4&A-X#Ko|P&-@jXa{~COX^6OMpwIQS= zB52Xa`*zz188}~uCs+jE5}O>^>;0;cVVdY&wQuhQvJK^zgi&2L7r;jE*4hy&*Xbn4 z{^U7c-xnRCIoDn_yO@2#WQY8KvIM!FB5tLmAQ#ZtHBU#dot8>Gb~#3PZ&oQ*Vb40h zaQn#-HI0ZY^E)6DVt39Q7UCB`?LEV@Ib-|wZF~@(eB&DVHA3u_nEz+V{*bT{BRowH z*C_s}L6HpxqmJKAbYIN|DbQ<^?}gc`+*b#EHQ&2P0!}7?%rjZboBgWA&ijfyWl2HG z#m$X8EI%r+TuAOhUvdcR`s9n{uOU1R|;~<0#R+sm3ZJ zylk5RX`W|%rwEW3U7wQ z^wMV;q2j92spRoDW9v_`dM<0%vkV5d+MEVPK{^Xf7rSWbC=r=!y=k`xgo(0pzt?VV zB>QRzN`p?xx=uFk34;%v@5w!pYg-!+t?Ti7v1u|K7Q2I)&yD@aX51#(VtCcH1wCl5 z{y;1~ed8iXx(>`|6ED;jsCrzdU-@3t9ET~`r24-O=zF5=zG zh(AEwet+)8%RcoAbsrh-8wwr8b_hd-p{sYpo^o-#LRV4TOprEIADt~()GG(gXt3X! zI+Bgbh=v2?1-T4zGBOItQ(??7XjH-*fLXo@kHQbhOvSQb4TG__-&O4r4n&Nbjvg#%=~W6< zxo@W-I@e(wGv8Z?g7jxv|0Wu-Zdyo*vQ>ihLr{_tM6~PtE_%diRah=SILc+jNre zt||KWA9wgyoD(roy@jNf+$EhfUDT|%dq=;2{EI|ebM{rh>A9>F{0(Wxl|orKL!~c@_0d8L%T_ac%wGu( zL{y8cvFf*>p9PMwsVM6v6f0jc$t>?mJ-FB|4(#f%+-OnPR07bO)jU5UoNDe{u_}eb zt_ZN+-x)jgN21{1ef?H>i8q*rjJ88-PY#JkjWf2+oP^vr4f)Z7NWksA&PH+wq@D=d zcT`S}7gzSXjz+kA)*F$o_jk8*+1>}*(MV%|A{oOY%8gLa+tJWm$2i5 z{7@S}6Uy`p=LoK?R`qPbaSaoWE(lEGeBM}5jhYQSgmU17I$a~?IatCczZGoOSBMrPq`TB`BXZGENatn}2vvEA#gaBNW*1{#TfT|#jpR>UJg(n%wWH88Yt zo6o-Xtu4)XG<&L|DKH3}k@(8sR_^r2@5Roreo_g((N|lynSpOQb+qNnYvvjtF_Wm* zkv?=;%W!yr#-H3t5V!BfTDay#9YkevJ?Ul>^uFnxlj*GO??{Z*Bhz^Pz#(#Zr-Q35 zUiG;{6|y+!Jako<#XP=&<7N4P4V?_Knmj$CAYzO1xBdm{>@+YdOu7KtXyuZ%lSG<9 z-XSL2jxpj|gmi;@QB6+msT9RxZ!aa^rtU;VeuP@{NV<*q+lo~Ga{DDc6E)RxG(>5# z)sc;i0^ioi4p}Efk-i_7AxY^`$5FLQmT&?(0PN`)PxZvq-b*l^W4ywO9mq-~1FK52 z+ylNWmr#AZy_4*%=qU8~?w@nMn_tUGw!nG`HdAD&dM~tG3(Y4wDH9xi`h5>)vVNS$ z(Ot6QxL6Q~sC~2$ZgI>(`f}VjB^Kd}AbxaD`p%wFb{S$>)V$ruGdjr0Ct}P29=HSh z;!J!Y(qA?5%byX|hrcGJc~(*W0Ecu<`~`7);P==?jCM-k!L2S3vc^8CtBgi$U&fvT z&XSsWW58!P<`g?){}63{P`0HHN~f=w$C20WOMRGLH3);f_i4ZjfEHJhm3zR)3wi!n zDT_ZJJDM*qzp_`AYZ9?*qi6*qU$;%HxJc&y3zH_)ddc)yPW^{a?#5y=3E-5c9-WWR z(o0wGH4P;)$Nm>TV0K>7_XhV+>}vgWQM2QBikwEt%1B;UONu8v#50ll)yOA%UK$FQ zG5e*zas`M86~4IEriQ-2(`BV$0bOA^?54)fME#+zpNGj9yYRQsO*{)gd3E?WnZXV| ziJ9YSq@byY>DgbHe3z!21!dszc)0fPvM;=0*huF6CxA7cRm(!yuDaXjhIsFnosE2` z2&JJV4}Oj1u)%?As<=M#Je+3X`Qk^p=?zXAtw`JU%yyMr`~ERTkC^^HPN_aww}*eK zVu#;V(SCmso8L2Rw>YWG4CJ8x>sr|-(S_;E?KZKOlfzlXBmPNJkJ7aT61H4(g1xp# zU3>!pYeAG=_5HJe(2Zew;Mv>8K3 z_+w@)2`|<^oVJNRs>6DM5N~2$EFGFu5g%vig!bchX>5n)Sa@&ktHdcO?>vXksjTU4 z9r}5(S82WPlr(Q(a9wsH_Ba@$SE7tlikLK0f~_1y!b1*fyAI_|y|ZBq8yg#YK!j7* z8)TF1x-4R% z3Zg-u`jCE|P^y=mO6^M@WyrRE4zq~vw@f5053l68K5DV? zoF!*PaYpSG8`&Iw0{&_2J7Oinb;USxa-Q)8bKAy#>jk~u1LFv!|5A0zSTk;)z3bueyL8QO7*_&%dce^ zqbWs<7W!DKOR0^;$j!0sps4QKajjQs-w+B$?R6E`c$yqkwqHqDcNdH}Q@@+^Pbakv zu0KhR4W6^%A=$YWX3^bJ-*=Z3PI(jXeTfn}z+e}90f6K$6AIaQo!lj3DE6Z`+b9VE zV_a|-{6A|fz@Y%{$bcG~aZ=1W!b!-}<-2hsyQV~;>KHPQ(nXLZ^b3SsL6aZhc9J`b zB(hSSbMozGy18e3N5`N!(sb#Ygq$~A_k5MQ1CS`I8;1m1M7;d9)-pmYs*gxGzAw6= zR5B?R*Zw6XiscG=)XFsf&i{K$F;rDS)=Tc;hX`Dmdge;vfy43y`Rqxta&9eOM?2J2 zVY!a`T_`lc!VDxw<2PRt&!FpD*iqP`Z6e1-S{kp|YQB{xc=!oL6=Na+|3>nU6hbsG zIQCRK1t9YPCvHfZB!b95+0QN=4^umIwk^)60!{%KD2)dPfk!P0p~VjB&9$6cKOf;^ zYy-Mt>nb4nl7Ae32RIv0PFs$Z1O^NqiDC)CiLb?3i&Bs2pekYOn|_7Tw3FFE z>RKkK~zDgs$`>Gh1KFfGJwYddWlHhhkz6yJ0N8b4e%*12ATxg zgu5CQ{ivuQ=r~{Uzu4dljvhOs&%nHF3VJoJ29~4L{0?YrBo}GyiGMV4Y@7T zO_jt==T7wkCyb~5FqLoZ+^X)v@wdM$c^Y-75IyR{$_pcb;48YZc?pllE=dfJMW+>h zSqo6>dmnzePFkGCn^vKypgV;O&KWjXeBOt|czsY$`y7n$Lf`P*I46>f)Qe^O+BP9@ zUP$SzPHjBgb#9J-E#igIflJ6|%)Xy~AUSh>u-=j|Rne&NdefIdZB9(})(Jj*s;m;8 zd1OF^*E43(RLsue-k7H{OoRVDRhG1 zvay(`%7sn6FxVM=;k(I5Y8Vr(v0p|6cO59dS@%VW60A}zGyIlXkT`SI?zHi>jTtYt z4C@=b6Fv=89M=s*7ytsr{z9Pgg_g;s^)i=!VPO`UHqHk*AobnVW=FoOb-w zHy|~Ur`f2f{Oj4nI4YR-yPGP!P)4r9+@oJd&EnmTnlxfxMB1?sE0rqzpIUz?y;}*C zGLLZA4pYy%%Vf!SGh*xqRd1U=1c<)KCQ&@_rwMsA@wPVI2J~by+ExVvelyA zV%03{Pd2%NvW^4Ylw+GJYmJxt*~YW2FSFg(iVnbSztLOMT!fcKjNA+#^1jKp^gc?m zifD3jSwyDk#4@oG1`y&MuDXOc(@&p@a&Ux)RCVg9rgq!$Ct3i$+?KAcAqMA;Z#aXn zgSYb*iHel}3DOS*d~%w|t{A>OL3zIfivqtZ-L*{iJm#C^~hVy>*u24hIuF;;wg`v1KEnq73C z=hk~l-4~4>Cv^eR={pyJ)JyhZ^*R%s}cCjah*5&t>q~NDsQ4>w(>R3JXXQTWUs!#6YQc$MRb zSeGez+MQr31n%I|dYgJWLz*cvnm2@1R1@1oPL>qk6AT=>%?}KOeuTf0KMWQHttdsw z&#;jrRn}_jm<{xXyxUlrK{LKPAZ_o3hop^mhShKY(=_smN$2NZmp%i?gQrDCP716G=dcq)42m6D__TTb7E4j7R29YnGic)8R4cB3SQs;Hf;M+aq<>KE&q+P z|Il|v&akHzUPNZ>X;c#aNh!GSbp!*t&&JoIcCh`3qJs1=n`sC6`tY$~10xi^)CH0F zRl&kBa|GKU7>sD_77HqJR(YXuS>nTdgLbVkfQaoZf44DThInP3`6{6m)ds>&bugeA z5gm!gSOI#4g}hwnl-B9*ir2OEwdr-PV{0pbTzrzOBEH1QbdcNO{9#*4|-VU{`y zggsW4ND-PB5~v+K+g;O*@*1w*@4#7TNNo(^u0Y?-5qP zb3;T#h~Cq>(k;8#Gx^_fBDtkmiHSc7U#_Jzl7) z-erby%CZ>mZPs}bR4h2z0L*G21_P1}S;y;hx}kr>Qomcpvm<1gntCbh0RoDuamSBjkt=|31gvV&-LrpJ0-y|f&xMub_UaYE zoJ+z0y&*+Y$bz%eqFJZ$`izdr;CRqY;&h3-z~v>I%;l4yW07DA=YYM+BoE8mQUFUb z+Y>O6uwGu40{<-)=h;KPC8;yGlp(}lPf89@85(q>hQxYdm(Xrq%4 z#l$BaMzZUK$?hYazMKmT<+cfJvu50oVPgKHU79RnT>QLjCQ_?FThAg&`gAwqroy2M zSA=2=;02@?rXA?%WTY_sC5mxA^Y$N~N?6LEk3y(nKoY9{d^XHGlc6b17#~L*5xyNR z`{42@?qA%UdIni-#<%7U-dl4Xa*Bu)|LkD?(?3T;Nr)ePbj!8Ub<)*m?IZm08@g?@ ze~-r+)sz_0!=(pl#Kc!^{!CjQ7PcweQjf5j)(DjARXcA}=h?0Hp5X(%JjHaoq%=5f zRd110bNk-xqxe>n)j8^Xeo%|Kp8PY-)%5@$+4#Yzsc(Zc_vJS~+T1+ssu%V9DaTSD z@75^9G0=W_-;7V?IpXouDhtn9l-46(6&+&?92y+D#aXF( z>>pI%)DQgfqU~r1Wyz8=5YeFX#5P)3@kgoK;c3hE$l%^Z44gP3($=yZ{Z8<-l^Cb^^9DV+SxTg6JULI z|M$sF!(*4jFuHq&lXqxB*V?6^oRfPIN5wtdeLc7H50#gNaWA%+VWhrUk66X8`Ws8D zc}fJgF%O}KnciUqG_CK=rlQar;xmkOx>R_d8J+co9AX3P0f0VbWvnwX{G zpKReqzQ<$R!7|6%1tN*nke2l>JKQP}gGDik-r>t9h*>tEHF2{hs#@_^40*4_1y+qc z8F~|-Mwwu({MWQQ;mHHup#n6+$#A@i%O}A1t;xJ18#^}ha8o<_ioeI`5V4Y*yddUV z@s=rhxTnXvq@?8emHE@e0K>7C3+6=F<_t(%BhNuR3Gts->rR&!eaPOp;<|`@E?O93 z+0bz{Vl8(NsxVucoj#79W42F%ZLWegkLf}}nyMz53i?|Ot5(%>Ic-9`(|9&*QE9nD zZ)md=r&yIncZfk;Q76)Hd#i7K87+ClY(x}Gps2MMHgX#mF@bhZJUyL$dJ{fPL}tad z|I%I(M^AmG_H8QX%*@PO{7TmKAf_+g^3%eQMREt13;M>%WYBg6$^Lt-Rvq#Wc&A%N zSDEZ;`keFsOK&+Cen;5Uzx^74ZA24RL@e-TQHZGg851Pji~Wa+7;NTBi;q)v*d$YM zOPLFo>`@X?5=34D=tqvf`ruaLtVVPEnqT3zEH=%LgXA|@{kAX2R!&Pk`qTH7HtPvJ z`;s!_y0bjIIU$bN^CUh=p-Iyk88MM2pi}JXseyJe*+>m}i%W9kib z70kTm<>fuNSbhG#XWKzPN$rj|4~)g(*d!%X25xOF27cx8uizsc$SE6ol1Ep=QRPWLQ# zcEjj=?nxndQcst0HFkH5f;nOnnD?YPpm76;O^_hR4yd`97R2cPBDe-?dKzdc+0&V(i}0BXq>@2(@_ zz3wA&;!`FUV)!}}{CT22E=~e@n1VLd<4_3+3q9|Qm3&EkN`bsF)Yjh|fNhQ#ml4gwm9X97|@(2qs14Byx{ zyD+g;cz!qP72`&7iLToK;89Lu(tCJ6HnIGPb^xD@B8dmFl^95-;w1mcqt>1-RH$+} zc8G-cUg1E)Z4i(|O`|@+Dr8)TUCCdIqD!`ih$}R0V=J6XUj4axM3^nO75yrMAaWLI z?cY|a+WGEQj;`tuk2k1X8l5&nvXT~}o2P`vAFz+{gXK>>UYNc_J)|%4j8`ZfA8h3y ztYlQ`RKBU$hjp!fv3U>$Mv@iRUdeer4@o~sXXXPR8A-5pI^TXcWljbQiIz9y1~K?X zTd;uK+%4)JxE4RLPI|j52gz!JtbT@9$@JOO>Y94iz0(-z;V^rZF*X5$+GZS1rdf$y zaDg)V!rUA0+OGr)gQZ5^L)h`YmN6uqnH#XYB(go_+mIn5B&mHOvL;oe);NzbH;9t< zLX$$C$9ZN)gr43$kwE3Khu3f_(`2{WvgGf-!KuCe2UEbuOQ;v&AaT;t>EN-v8AUV$L}($<>R&i5jpNVf|+4MIxwT$KwAlMVT8gd z|MFz5fOL_&b@vhpRjJk;zt>y;PZ+Fm-7to73u<}Ep&|cew)&CCjaRJfWw6?V3EJfN zC|r#trVRSt!4ZSus&&Kb^YbW3LWOXpz^@T}fK^Nb>^!&L%Y%nLfHzBCEMu^|6tNm> za;3I9N*;WFzB~x*8M0rbx0r95gCAq*@*;h1$Hvz>No0DqPaY%$oeIR{_W-SA2mftq zz?4o@Mh4zh{btf@@=@AYDsb+#NE zefOGR91+*;wqca6cN{b0xrCN{T)Vet*rrSP{>FlNZC_AxFD$b_OxWk*&;p?NdO+g) zrCHaIMvF-zIeZGzNhk`%-_xt0NANK*y9oYK25L2YicV+OvLmdohMBxCGNw-NQSUFv zaVy0LZ$0y3-+s*o%h9ZK;L0{&Q!I6=F+^p$KYk@M_+ths?i7ev3x4tF+Vf}AP6E4E z9fGHcA77*{Y6kj)J}Md6>Mw3RRo_|N)g5o5=ZCgRd{xye8}GYJjjO)&Tg+Y+JEu{)1=YyO zh22BN^q3I}!DSXtvf`sz26QNH6PFQ%XKJ`)RY zojkA(ZeE|do5pG;n4hJsap~y&Nx|QY^9!FxrKQIGF-xJ~B19G^M-y*!QX&HCsjPLd zQDvsQ-UCG8JN_jLl8fT;D%v+bX7DL6edvUTs3g}goOjjyI)^UV9OTwP=)32fbES@8#kb-Rh`*7Xmos;VOYc;uCE?PJN%W*3s+sd{CKwXB*qs467fu7GDq{sOFjA@NcNeD@UZKZ9DDU_5&}0*5SM=gO-WDYw|9>KqJ4A zzh4SI^JBP57|&fUh>2+P){jkzo`9{@h7n+)ebhW~}46_{nhae)Eftwsd$aS;1uw|*tixO7l` zH&gwetN;`rOWs^qNCw`NdcSy{nX*GgJwy241`MR6!%19wFVvZ@8E+~YKKv?R|0q}p zIf~$&_$J&|-1$}pXkHD}-r+i!I%AB)QdfR(c5#L5hW^*?_#Y$s>f}Kl#>H_>(r~p# zzj{4?*ePnX!XdM2c5X(Y!7~hL5{!Gl`e+#rbkcPmr`B+DYK_vZ*n50=_Tb#_omAR*E8?accn$No)-|Wfhy_-YNMmS*1LrQ zXR?`C#`@9x!x23bhyv%}kTBf|!*yTzxd%*G_${sNQ#kZTO|t;;X#y33-V*GG>?#g; zlANqBkO0}smZ%3&c?6QfBLiBbl&$TlA-RB>P5SLw8=%VM1lRe~71`h@aE?0=FfC)gh7 z<~<@+P1mxxe!0iPSFxYhkU#utvMD=no2C{Qx5P+fZtk{m-iZuK#`GU2>*WE{v3*K8 zR_PvE*D+w|4$+FnnM#VVCrK>+!d66;T+oK)V5eij7DLnMuzNv4{AVtqslg6dUeCQB zVj-^6Bp*CIA^85#t}vJb3gJk`dxR;il^^N2--0S7<$1`cU`aoVf?=gYv{)S6Q(% z9l+(YB9$s<*TD7T&Bj_J{{6IYWEzxrfQX<%Bj+JuhAq1sA1|-^$(;=3bsyrW7z)H@ z&FnA=2zctlCBN(A3zNI%dn$l^`!X(8BF@64P~J2%x2VlLiQho$Idg(bA-$1~!bA8YjAlfCVhT6zP`4G6MTyd{*U1M|AL5*m;=IPt_o!OfZqW6Q-S&* zKr{xla{x>71(4gBZ~rM=jOcWcyN+Fk*Aiy-aUGhXtK77@)waCb--2C-_7!nsbR3ZX zF5K>*(6^q^h_N8Hcsu2srbJY-xL23M_1Z5^bfkw?-sWSh}6lQykCv5^_ZV=f{y zKR&w;_Ra6e7oVJ}fyk|TIpQ(qdd1z2OH&Q)o(nVmnzxu`U2W$azcfJb{g@Keyr}mm z+Go#UXPj#)HqC9y?E|0Ijc{X>0#yl~OLUc8#5UQizKWpW+JSWz*S*_Px%XpMdu_Ww zO&W;wG(vqb@SWd9{hLe`NJ(}4kk<{p!C78t2$Ol0VlmwdP^b@w56c%P!`+U)9O3iD zYyVxzJ$zHN15%ZJ%zoMLa%`=x#PIWBXG47EVNnQxl6m9DbgayweXXp@uRI1fp8Z${ znL8_f>=$Ep+WuPn!{g?7z2q;q( z5&ANWW<)amhj@e_RjGYTEs08ix{upU)Rj-aZpKcQ$ilt4BP4j|Tr{r4(9ALlHKhV99H~doR zWc^n^9YKc;4%%A$;yjf=&m?y7&xC+2B9<}nuDPM|BICPMj6XD^m%cB^{+ne?)k&As zQs|8p4S3hk9eXd+_3Jtvm)cJUdhWk-9va!bZb~*{MX7>5#Rpc0Fl2)UjW^FPno*CO zkGOU$aIws+tkq+{o_Ntm(;e=;Raq z6_jaDe5Bs*cXt7ce71b4qm;iIL*@1ZVd}{E1Q*S&rTz0;)kJoK+0mB(9n7np5y+;I zdSg;v>f^19iq7VzCy+afIvef&7ARY6a&dQJ_x;!kk1)c+7gIHwn3UJq_=x928?tFa zlsTVO-DYZ85p5R|)s{TIP1~^6+e6YXAgw4<7+N0FK1`ky&ijzkJ^2T)L#+5hGF~MF z@V|@_`d~*9oiwYxXD89{8fM5Ujd@m2e@K`jSR-o)x?;Q)#{Re!+kMzRNCH>KhttJ2k?tvuZ*#Vz1UJQwv*G3mzIZD5qbYbQ=b3iWU;9ym5vDH0N=Kfd) zzGfM^eEDa2(7aQY4xdt+FG?b+$!TJiXc6a)+5#~A;JrIhyQkd0yP@$p|6}r$f6iN! zRZm;XN`ImSWw;L5g!hE7U5Ky$;31KzTcYYZLs=rJspBqgb&9E%~Q1l;bJM4dC;ACTN*?Mr1# z2gdYWG6lZ`Hay_b_lO3k3!n?H0(H6GuC=WLTUQU5B`-+N_x|*sT1Wj?o_i7Id_%xJ zO90y8IfDo4v%kFeFXQm%q#p=S&fN-veztlh13-R{)nvfCpncV%zY&Sac8Zs?I+J zZ0e0aveCGIW}Ewr(Wah>5j=bmVNK3vMFbYx-nLKNXY`WF{*o}}3^v}4t&Sly;d!E# z%!RL)ew#k0SOkcP45+gY)$rFnge-G~jrda$VM zHZ3qWiYQAzhld=c38DIiRPjQ3yRj*z>t{=%k5t;~4{C+p28Xt2()9?qXQQ0-b&q%%)fQNK zPS2>(+9?fmk$(#SF;I(YZ>cqGXJ=GMHCem7y_N3SBW9HYb*Z9`KHr0%f|bO~ZLE+0 zvs0cSHcyJ^5nX7-jyR>2@(1Sy;dy(QatDyX@v1)hI;H--$O^Wi&kI0tI#|Y=kQwi| zT+sQk5dR`ucIMvjxf!DfW(2vg0KoZSZ?*Y|g+*6%%rbVP&Iu0pLq2)4syZ&T_x z9RGXm`?9vewxkgD*UeLamyY!m>*Kq(T6d|us^!X)Xr3h@r$JwR-{O`A?WFf!9Em7E z7+uA?e-%09dH7R$N`I}W_`h)6K>>4sjMTV&9AZ#(7r+<;A5Gl?gZpV@pE7$Kpy zTfXZxn7@|fhk~&Ezw1t58%}8DeO_v#8LWHA-wQVznv*kAVi{a00yff-Qq!Gkp7nkA zM=#D)hjP78(xKh}#OYL=U4JogUP+WyKoL0J<-o@n)?{M`w)?e|ldksIj1t~p(Y)U1 zQ8})BD5rY2ar0u$aJfDH40!j!#DhosHP^f1mwB8pk}?=841MzW$T-TYiiE&~pn|k7 zerzzn*f&)=10zRa@5aAsb*e)w&B;fF)@-O+pB``RCZ%ugs@!(J!s^H=&r+S>gVWxp z7R<@k=@?a49|oYt53%>vh7BTaDS1kzbuNno^^G|&xPROq@BSt=g>txss7JUnV9%YG zT;-VGlyx_sioK39ywBOJdzZOGK`Rk7&fpGxI(@M&NWIyl1`(mzO{aILVkWZ3ZDA4G zy>P$X%wDf=^C^*#EDlFPVqy=#R(A3FuPoa3OI&jis|~W_T!94ZARdGMY^qP>`{_?3 z@iwSryc`vgtxwa%vll~iWAxEKAMjJ1(GMIh^?LB&^fv8geP12^*4eE?ds+gIcOeweC!U?D2J2c#v&AgtXmyDC+I#nr{g^Y&F;Jg zrYw7BaCZPnTd>oX1ft`zBaAiKaKu|C`p7CgXAXz?OrT$fl)5(_G+;B1VA`r`_2Dmi z%Q@e_3VrKvR`%8e9r=`Lt9_@fD~lz!2wE^jg4RrVxxxr!e}Ea>_0zu%7GTQSMZsXc zK(d6nU3gEf$o0x3d%4`MdD!bcTGJOi^-`=^wmo{dHj9|jUdW8L<8o_W-Pfb$HC5ac z$U^Z0&Y9;d;o-~?sk{g3o1|wTK2PDWxar?Oc`0!G8pBWxtB7mfdo269Po_ZN$X z3&lp^Z4x0gW^k|c;^>Whe^lN2?>99lI>I0{4j%Z30Cn)B|H-y(RsHs@aRi{p zY2%#0*PfZ3wOZM{B#ZRCKnLI1>qc zp5Wufnuch2JZc}rycO0__{33Ckx#+j-eF6s@t*eUgQ1Tv7|jhb#;gZSy3hT)qX2SK z1xIL3`_~Gb$3-Ia}*!@g>`$|P}R%xMxsZO}yD7SIuQs!pzQT{|k>C{eZGiF3FL`MOTkBV{wWi5o<_|2O2_ApKd-wL*c)|Oy@|N0MX;#__ z=X`!GeVw+Ao19Pam>=Z7Dt%MPAAlLTFoInHBhu zu;gMc+qO>=DAKn{MG8rwy?>NxHGMcS8qRi4^)dQE$me}-LC?{}PaJn+5BOrtJ>Kz} z(aC;M2*m$I%P=85oeh?WbbEiPhH+gg=s?>1=z)1jZt2s2pWuS+i!xWPw~=%4Lih!l zYTpYs!o3qo^W7qXQi>Rg8Y?O)T$OQYhhJI{EEHA<>nnHy;H`FAj^kd_s_XNZ07^=*9q&bq5&PWW58a10DHAWNX{V4{RQC%g@DNYion7au)zR|UQ@ge z<$CtXxTZ}=A-MHgY$0-d=QFFBBZk;uaF|tl!AlIB@#dpZl?&@)a`p6HoiG>wT;A!b zXw1h_9yw!mqtcECSiRU*WC=Y$Ra*T#Aupi<+jqQ?I%OdGg$>auc}~J1GcA1&xbiTC zY_x0=Vq*W5qlP^qIk+4TW?J&^xZ1Ap+3)np^l^`K&EMH^020B3%)vJT#(}5W+?&du zwzy)1*Bcr9^#Yx4SKme5S>vc9B6aQ;P^9*w99jC8`H(V5u}A;%7x&6s%PnOLW*8LYDkPh<rGxI_K1xS5u|_w+M8n)wfcDGV6m`EZ5D4t;$nom_UDGx6( zwb>dyf^pJ1km@eZ1;J`f7tlqBZoKM`VY4C49>cBM`LXoz+df=Om^qw`m4FEb$KIA^AR?}2Brcz1rkG?67WAv$8~*X?Q&a^ zhI+XkOiQ@+da$aM%-GPirBcypxCdTaAEGY=a5&D%r*Iou!baq7s^O&rSfrm^zNwb5 ze%K;@OQZ~hTYg#BGZ2I*o7OeF?d&=9P>G%JoO5h>v!(gQK|03*oaD25qx#*%4q@~q z_V!kCm;oiTZ_s7Y^SM3swP=NQM$2{90S-StF(*QcZ%gv^S4$cyErc#p4S}NAAHbwK zku|;`UjoZM;Z4r6?p}-@IV6jOxxAydO~VqOJGY9k#OxM>bW2Mf-9E)H0_F2|hB|Bt4#j%)IL-#(4f(vo7(Axg(U z5s=Q&jYxMl5+Wd=k{^lD&0xgnF6m};BRNLbi0AhEyncW3C%d=nKCkmQj`z{DuqO2| z9~>2uN)$K7_VV)0;gWao7w5ZusV?Ad{`Oz`;2gvnC=qmm0|u`lT90r6E79sDp#B~= z)Jetj{zJT84Q+$M+U|fUVmz14C%`A2Jk3NzstdqEoPQ20C|wJX*7wy0e<3rN@{Ab} z^)SZ%^>w0QfOH~eK+vCql-+4I6Yr7RnQ3x}JCm`nNzH*6t7)&S0LDML__Kcm8J0=F zanHvWk}Lo0I7hNkDTi(8rU7iPdr1b3-n1SN%ozA_=~x zi=Pvk=Me^h!Nl+ne5T`G?9KS|Bz=e9N@zLB^jf9_!x;PaoMz;7&}vo%=gcC10bAtY zJ|TC?U=4=2cJLqFk53)i)2d9Z_^y?)`Ikxi3H&5VZ)y?~6zz%L7aNbZ3c}>p-ig28 z%I}oE4v)E?@gBnslI&znNjIag(;nTu`l{$O{0Q3k%^K-a`V zYfyEYX|H5H;63G}d0&a?s*+PvzacS4?MQtGrRo*9DuRDjyDuO<|ho_euK z#af)eTT_xlj8z)6*(`X~><-M= zGnDo;BuNqUF_dpPJYD~IH@qmqt^^(}mNGLhsMKw+b2R0WN~)WRtWyvgY0%4m{oM-Y z4(n8=8D#CbZ&s4Gv|G=f*B6>8toi{@K6m8Mb?9j(!kMC+OvNUfpIxbYI53<= zdi}%FPWQ+vl3|BP0p+UQ*2@9dDwAeF51Luo8nBqW*3~%t&Q%vd z<|4v02~%((iM>JxAVl#^DT~RgoEkMiEKb^NV_#QUNw+M`7<9K&pUNnB=~dOn#_bmM zeYE~wr{7i{zw!%;10P@ByY3_fH%z5~#Ko0bGnnu{{{DEM|1zo=Rhp8tuqWdpk@!^f zI!~ZnBEM?#B>m)9?32@{wWQ^@)$SUNQ?94NN!en;`AI|azPO~g2Qb%Xz>%f{-z$-Tk{9p{pbKs}6yogM&&w%v+oNySrr0 z?=fyl1c4gE|GC$Ew;9VuRsEYk)C(hriE*Q~@+G<2l3L$?zWeAYxlk8{CeSU#PQ;@O zo=-lx(VqS|C_cjrMvu?eUIaS@-9r0EgfdI~diGS|=E9##mQ>r)-*^GOrY0^81ilOc zHvFYmbUE#4^DSLpZQH&C6^NSp!aGQZX|(^fV^>fsQj}0U|1EHnZsq~d-~7|MabDVo z97BmZj{d@D!E4T|K?9jEc#@+j`fp$@A-6JzX`$KhN_hs>qS2ra(<0@}fIl@ezyhm> zxh)NN)JF0+>X{mCG>QI(-)KT=k19Rh;KnRU6#V^VuXa2lLh~@PJ^c}|$Mi8m>tMf^ z-1G=5TYtyBGE3(k4&rc5T`a~8DcEthBjF4?2(Fzj++I+T-ah1RK$uz4{7CCot zsv4EaL2@C24}(;T7H768$wO`rD~d1N2Bxrl?ShgkYabZ2^dpqlb6wIyWu16MF_Yht zxw&LmCCg7fSmB=pK;8eU6^3g!VY76AQINOct%_|8do(2uAWJ$fbf1QsJ~DpjYmsUrj#^sIP! zt3-(UdVx+55_6nt87UxS81ZkRY+?dz(3>yj?R~a0ypQtvf}Q~0*T<(Np?pe-Ag1y2 zT;^M{2ZZp0TENkL6X0mOgMCWbc^_uS-{;+iHV!zi3noP9>gsW)*r3gv)+FZ}d;iDu z>L3jY0c`*5wWx?ktJ zCtuhno`Puyw$ zT&^g-g@?lGpY{TL+ipH(d@=+u;tT*I(k`2T3xCN97nO?Ygj;G7<4jCH%PB)9d}l}%<9 z?ItZocqdD}&r8)wPncVTyUSG4UCwqH_geJxxNDd8iyJy)1c0L>2Yi0!f~IEtX_owk zIgW;lP2Qx&d~JZwIa5K5cU_wzO2J!HN;~0czojDA)LPjDEm(-`%|#?U|1##EE{GW);~ne@|O zDZVj|u%*Pi43cS>TImjSEUd?$WxE*%SKmnD%h0!tU4jvI3^K@ABck_wlA)=64(bS~ zPU#cXvdoENgSK~QM8nZ@Nez6>lvByl4F}~ebT(Gmh-qJ*<;SS^P7DIu8t;Hs!WNS* ze<_2j71X8c!Ilem@&xy8^3im=AEGA~^JpUkev-oES_E%h*WAL~mec#Y)3yFmzM@&+ z+St6{&5KCWB(4kLd|`X3tzUUlPA?8c+bk)L3*^Uv*LmE?K_f3?Oi9ci6$Be+({U$1 zU#Ev%7)9T^jO0@)ZRUj0b^fd_qtvWXZ_Mt^uRE!I1c92yvR1la@Xl{99QWFB@MpV& zu+zy+O;G8jh+3R(>D~{MD+$N!e>|`rkx16ZdO?V2`p2en@_POseWkakR}i!iR#lEn zo}ehpEv_YoLO0nvvfiNgj})x6!4cEXofzhw>U=JNdg9UG`%`wMy)|0IKhE(#^NA^Cid zo`LH$12rjS6dbF zm*2wOYa#9)mZ)84f)`ujo$3or*U!w2G$JLEbJcE=Zp%5wzcdjv?3#IkRdA1O*)O)W01*atk;uMy=8b~`B9=37^Ou^ZKi>Glz9r2`U9DmRiNExvmdQ(dq5KBd z6L@V``B1C*1B+UW9lFHWlFv~W^6D1+S*yVAyM~oM)GF%x`m~hJC(d@U?n^V;V8eBOS4;eT3 z@8($zN7<62d9Ldt;{@(OJtE7~Bi-CuIwuj}3F)2nU$S6;&U!R&h#!nnO82`y;;ZyL zrDP@WRPjkgg7Witv%nl68o%@f>4oFJ9Dk~t8K*y2HV{u=W zAq|Psw)v6T{teg57Yo5dmqshpKO64Lq!Ae33I1%yUJCsk;YXg%KYwEHRda_FN?&3% z1Ike;9;=c(BFXh~sI;+*+whIsK9l(U zH&8GW?5e(N^NJ`?zQPCt0axqzRSGQo;UWE57(t}Y+?FDdS}w*2Iq6?kvvAnv`fLRJE44A zVq8x#QD@^vh#(K;5}z`xe9T@m{xGYHZ}|*C<~R6<$M_17#Z~^Ur&f= zhy_HW2%%8vMe`}o+zk7F@0>LAx`nmP%}+HH?V^!x)Coo;k;XX`6Ii>Hv|gyUWYC%( zYm4(5+V**8;eXd)K%svBt>3wHniIFv^Jm?@SdHh~`L*|KvSFnJG_CSl#JtnyCEx8-S7j=K;(YB9?(_sf{ulbY zYZ4>~z4mR9!8edrT$!1-RGlBR}KtofI4zc#L#h!yHy=>t!@|GepJ+7&sr! zeV1e{kmNlnO#0cXJdANam7ne*~;W z(1bi^opY=+1P+UTL&=duZ#AEaTJzhio!%tb0exJbNK^DW&C%Jq{x9d1t6t%w>53pK zu!co2(1R8j>PAh|3ouAtb8!JrIrujC7Uk+~3@O@9?*gprOj1GL3v2l$SQj)90oZ zVFGGf@j{q)^*fVJz9xYHCtCBR2vdW|UrgrsJ$sqRjr$OQ%yQ!bM5kdZ7k!)Hx0K*0 zV1HC#e|#+8)(KeMFc51eyVW&EG7@6~if?iq{iWbmCmC}X;+_S@W?*_zVSJ@QAWOfQ?_qOiQEPmjSxZqi zoOPlSFR#Ot#k~>0T`?Qv13_wfQ^=LL|5Bwo zHW5{sC}?CsXCVKsC#Z%r;^#TbW5WoUxQFYxd5MMyqLKcIAC7G|BoE@X0{j|IaxIPnwBAY(83JLXxGST?;wagRghFNt!$3RRi^ z^8!35w{`Uv`f$YBWSJbRi$IPP(qbIpj_3!Civr2ymx!cQe)r2d`46A1W;!{kFAIuT zIeyU<*Gh-tkqb(b(v7L5{s$2W!~C3e{XA>#)jPY|S-W2r)zl^WB?Dzc1FxQ&H1`On zk^b$wy(0GinaD=|U# zzFAx9N2W4&e?Lcl)81p1=dWU~RM!XVi!J;Tg%-5^41WJg_Fmgtyt~a%z)wW^RWL%P z14Z@osSdz$zjT+>`Df8APZ^K(4q6$>%OeRwBbS(fP4@Zyj~UmMKAe9@Bu?qwM$P5H z;f4vh-D1D`l9KQYAE`hSxE=Te`B64@%k8YM*PHq%^QKefjKuZH%J51t^IXB6cal4& zFh(Sl@F-}iVzI2#-x7Q!yM79{WfLMtjkocr{eT$U|&P%lbSDGy5v@X z5+el*s@+n0*TiiO`l}2TpGvRn+TH7h9*vm-$=V>dM*ZDSVPVlK2UbY)rJ+xJ7hvB` z3#BET&*v#|lQ%!8_Ay}Z0a9Dq4v6(9;B+fv&=j+=D7n8}#=ffu*|Zfc=f-KSfY%$K z*v)AUoXSx_$QnBf!JX@%v1(yqVV{RPAhzKfRhp8bAl2SS?EFs!rHRi03GB>=Omi|R zwKT=i2X}@r&TjixEXfN(V*Ol;hRy&pxkT_i1Ax0N3iwjM?2|)(9zDQ%p0M@0@I>)t z$u+%}gN3io^^5QymEo_LI4%RJt*O!LjoX^K-B$|= zRs?O`m?7>sp1SN^*L1YU!=5@CS{0Azli2GGrK43J;@saj-A>IG?? zL8jEwA6({rnSR=6G7YMv)pliDShor!_S+5gx|_c!56Ut68|*||XE|eC#*-&7bZj4| zI^U*+5{nq6N@Eui=|R95TeT7bS}u1*My_*yAHjP~0v51bT+-Q2#Cor%Uk(`xMW3+< zr-&Nt%#U9c!gH&@!XlfWn%5td3MVFyh$hxyJ^Dk)rsRRXGY*qHZ!k{3$TX5t%;^)mpKKxCM?p zHWvIPK<29`!ug}}ZoPH|mC&V6EVUb;wqw55;NE8p|* z?qc9vZAD>~zVj^Ia9CRR_Z-NOtu$l9<5s1&ML(fe^3gQ>M@R3!logq>Z;rx%(_H^zx$ur14=bB3^V(oZBM! zjU<<7Nu5%#GQ+}B9=zej0pLLF=jhMKY*18n@PF>_N^eLl`=zSHDQO)p7A>YlY!X;_ zQW2*TYc(N5(Mm~kd=~&pp)J3CXCfkK-7PUSDdsdCwv2uZ`B9LbvT4@q2)Na>B)eAM zW(3Yi2PVC+XBb??pvcT#?iZzX6HpJ#La{mSH_Ew7sCrozn9a1GM#L!Sy8YS=DU>tT z_I8zY`S<2_g7foNaYuG@X9ogbh^-xw=@-Kr5g}*Vbx)rIcPlCxR@5$>(;L&FADw3+M+2 ztm#NE@t3C=mH-qYGWdSm=jvwvX!=KpXeq0up5x5bI!)U*=KG__t3t>vWjwP~uLbDD zvD5g;OVz8${gC}M`|q>yr_%bW0Y&zGXrF^L);6rkXZcKy`S!}bvJmXA(cF)s4u4m! zz#YX3pw8m|6zNm&qT{Id`EdPys%6JBhz#mzlsPE;p?Pr?$VV!`TLZ4ib#--pj@M<~ z{JxS^8u0>yk0duWmxSLLJ5n$H#0S&N<$D8p%ryB9w$p|9ROE{|72-3El}M=kf_K+3 zzck`3g!ECi4A2NhIFaf0-jl)VNtlfzA$7wLmhnr+s2~1(T1P4Xm(uCecjcU zz`UUCd_NgjWl&$M-cpD4l&S^;6drc+7J+Y-JMUP7DH=I*I2n>|!npzl*}uuOkdb7S zIsYXIQspBqu#<+MYEN_ag{`e^n@TK;9#XTiy!g>WD5|yzSRral+*9?xEDNMb5AAIr z&}7+Q^gR4^@j>pFPbW1K%X{(}*iBDEkjlP6dBj#cd_CSb`Uub6j|O*(Vs!hBs$Q`- z9^XtQ#`Ek{lBEYd4mz_4P$(tLzc$E%%!+{jo!%j--qDFn7QDA%#Aj@_fJ&E_7} z^Ue0c4zBB`nSUVb9jMuSXUxp$ea;wN3zjPZVhiH@eA_U(IK98e-@*K>$h_L=^GA;O z9>=K%8^^SFj7@4Q)E|Qh8>1`<|2^&?ds;Gb6usr$$d!lq#8peOFU-hmn zYA}s0uUp#@+F3MA^VM8G71&0zkAe?lL5N-c@#ylX!l}!S^VHMJAG(wfk-wtfZsU=p zKCNY}`|!(2v(_8WBEqDU`s;m{BDS>84b;=DtG{18*uFA8$*>^TDH$n$y!Cj0w8mZu zQf;rbl{E5mzU@Y9A%CdqHkSsqbyXzZuhc!i$E+b)2qsW4q?bQlRwMsb3$!SXn)`6Y z2&nffS(PkT+-)?uMOhzh7)<+9^7njr3Gqp@Kl=L@&+#o2cm>Ym*S%MYYCcs>jJTr} zUXySm{wbVs30S50vzn#MV0x=A6n9!pOT7KuTU084by}xk?!%nMn>aTF=13P#iQTs6}h_g+eSFPJ6(r6?)p_C+0_h|*Yi=?>6553)W(leeQxAFkjFJNdK+~WmbI$bcy_O{OnFWu(6m~82ycsavpOIphO zUHjBSntxr7H$!Ax)I$^vlCHoA<~KfJx{cH}6~R*yrY{}bC7Yg3W<6-DJ#YBBYY2P8 zGai;oFFjfFIK_3b+pb-&<7eYnTBU6{OOF6ZZD7&Hv`cjCHOmd7?x8;q=6{w|O^KFJ#|2bVA`^aj3f1Ri*Ynn<<+Oc6 z)rPstoxnm?6BIZiy*-J(`r2JU7c=`EkBJz~p87E6)2#@j%0Hos`yrL@Pk3KwC$$(~O34@rM#IxLAh7@Uih)ybR?IYCZu3#U2SN4Z1R0~>=L z&8NHfze_i4Vt|Blf$@Gzm|KOMRG#=bWfYAo22Eu>>g(~|fl3;B84#NQb1-wOe8NW? zhEhwVj_`@e3w>KVM5a6MG1sn~{^X@3RsligR@Q&q>yex?frgg;A{IJ{vk3Wcc!yhc zZ!_m=DS6r!0hGJ4X*maJP|wTia~9-cGUE>{0@i`ovrB}$U_42&ukdH~3WWVxV9fBG z-J6uam0b2ao_md>kMi@bkGl68iCD6Vn?8k)7nh$>zHfJ`Q+m~kY+5Db!fOd&LMZKw ze+4CBtG$b=YCj!Jxl;TMVJG$Z%M&ZI_l0cT)dDaWvf$Ln*c#GNQq0Y;AiFuEv4G#n zu{jw0um1d0CGrJX2D76i6T(}BA?MWHMKO|W0*y3Kw@jAOkJc>>`zg;+u{$-jX*BU4 ziL06NXAQQ-iHMW$_Q@U_2HJh4?mz#nZtdh5bvgO^Q5dY#nGP87DCab>a>ju>hTb(* zn&gVlX|keX>{AM#w-^?u_zQYTtgWyjWz+ea(JXp(a_U#1QZtkut)KhynOyf=4# zD7KqiQt~=&xYGBO0hrxH7Zp}6D%+-+#cW4MM_nbDj)BO^?NOxEhm}6YdBB1PJg_xM zli*Wgpp#u9@Iur?!aoi<})Ak&%)0TPnuo zn@*aeL*3TzfTHc;m`I_rf*GN9!Wr&*S$XL93H+SNw@6Q0378qt9(m7{&fe;cUVur+ z<%Lwjw%mN}htC5cGf*A#yk^3vc*PpW_$@a{2IDvD;{~?rHw1x`FRo}Yuo-~LQ2>G5 zt7yWK#i^9o+MW$PUIS&C#{c?9_8tUlUvSiU<^74DW0wIydD^XJ+ism^_Mqng{ z>5TxjX`1W7v>wG1iS~&%D`-8>Z>TXGs-6^z#pRk^cFmx^i-D>SZ(m+#qbB&%(g(ZN ze#G4$wK6!g+3BT$aMOzL8+87w+-_03itLc(ib<>}yPZJQYCf}SydPHTgWmjb)V!a^ z;h7MBWnK?c#M+*?F`D{3{Hn}lq|9lZq3E7vc>_Ih`?R54B(f?2E`flte)zTB2vu?) zv@_k*?b&gV5w4%|WDHYulo0z2^liJ^KTFwHb^MgX*I-82rq!hBN!eF`X$>E3bvN-i z#esbp;aeF*m$#_g$q}h!?xR8d+7{Xq8Bv+(G(qwPnk2UC*b7rHeUn}tyxmTbm-;DR zS`xZ_TW2|D(5Huxv5=!hZYFXIolynZt#I9W5?4t@vw5`W50%;*@jsz>!2{KCsPJkU zi5xL>%777r7V0d?B}4QiXX2y!fy61xV?%a`<2Cv6LqPP;Hkm|4CoJwX_ zW$bv6vUvNZ-FX}D3(JWn9j5cpjl|18D|?Vt23J)P)dBt>R7;;73`mXNyE_0OKWvr% zN|u#{Ji|Y>A-AY9OR-XngP zbM@S+db~m$hSM>_gF80PZt_*Z_kbdKR!uLc4wsLVj`>8bERplERIskNDN+LceSme# zJ1sT0F~#kNTNpi&Hcgczyh2X}5w_=Y^QDYg6VbBwsN65V-eU91LZ3=8sjj1oam86v zQRd{um*WrE7QU?sr@3d~d3U4gIc~>wGx7qa>$IjsK0@8BV*4{%G%{UAdT~mNB;d~n zn`cbfw;gEI#@-$$_|^)N67#C{4(Yscd%&bKNE{bQqd;O}YHBG6$&XF%$%-5u89iR@ zzy@sa%>nn%`=7U_2z;ll=mKt9PH^;x7p3@#-fjY^e~i8TC-W@cIZ0ss_?zgMkgW6d zq}5tJfvYL%NMhD2IRkHEr}`D4HL5yN)X*f_PbecBxIhLpI6MOb7GcwB{x+LUFfHtU^7)P>8sI@?V%np zcs=P)RcCXX;htYJ_25;$Ao$y`DS1?TX7+-cRadeMxiBm=V8|&Cz9<3#ZgE1(958rz zq99J=vd0@Z{shihhKnyj<{xe_rGMjj+e;);$ZB8&exzsNSyJtn^p78Df$}#w@m#3u zkE|p?+>mY=iFK@$lh2Yfi0+hw>n`V3eDz(NQ2n*G3%XXF)*fy(j)YZi$OYLH{~37j zUKN1``h7tyg*{|6&6z*J)^%TJ3|Kdks7 z8f*7E>3j-jk{A&jAPaxa)2VEzn_Nau!yqRKE}k9P3ND@dhV~1C?dcQPNU09S+V9nT zsz+BXSQ3Q4xiK`zWZ2T%*Ga2XZFCBial(0f1;eOMJET&NO{;0OI-n;bfNw-&h zef>w2aXDfZMWRcxxuH-WOx&bV113)A3$;lhh4B&fr zJtye^KypA#m~%~QdL8-^yk`J)E=)s`j?};^q^1D-JBfqm5vAPphf5xyJj3n)AamPXPE?a!T!#mBL_i623z*w}9 z4n9ZxHW5yXo0tJw>4rI89>6dOn06EFxy%E;Q$Qq%Sh>CM)>;KB9nFI!77gm=`R>bA z*Nn)(Xy@a{wlZ^?$yNl(`DQ6EU+t#bw{bIGna0DiEq~nA;-$qUtt4drUhHlFGjv~` zh{TfRxXx@4n7WkI8GJSH`Y<_{NEB%2*~#fjd&dNonh1|FLT6jh zhv}l1NS6EfK|t0JER+M15SQx1gCT+Bk+CEm;Zttoavhf-qM?0;pRGDUwr;fi{T483 zaAKDj?Tqas=`~;oT^&eG6yoaL)ZKeIAl~Ee#e3CIi}*tiriwRc0o-bC)v9UC-|m3e zcw=%@X!W~$v_e+;McOnr(QjC=a_6()BM{fUrpB5jl}~I%tzC z{l+(?xN@&~;idI*rPeM?iKM9ls*LTeg`aj`PlTLwqf^^|JABEJ_Wu?Dr4lBe@k$*F z4^ZWO1{JbXy$BZ~Ow7k%2q;)$Qphn_d@`FDAZ0M?r~;`Rpl3-eC8}@8UpT zk!a_J6?d(H|NV+6WK;_`B8S}tphN>(zPG!~C(Fk^%2C-suC2N!;KxHxIBTA-0pd=e zzG(j}@h*426ot;K9;oUDFRkHAAKcVBKk zh8MS*fn>x=O(Xh64iYltGhR&poZ>2j=sEiYM;JfnpFlQ|u7$Nu19Yj#Jf> z(Jf16@?)T^7K+;wi474dw^h$TT3}$jE8B>cE(=34lRb&&!?j z2imEx@EL3@=qRp^%+W*S;5N)(@!4v~Itm-&u z64WP4)p@dY+BjE0?VuLyQ=2+iyTsZ6r2dMI+Gggo z_p+>|xO2m~!|v~{56xwy*NN#9gX@p-Crf$H1?S;1k8IvXQF$#k;!#O)z`^<@j_JR} z@7eCv)07cy1JV=kR{BPf25Z$dki^2o5o$=OlloJ$ZBBW$o=3NawpsOZuKIB!$$xK1 z9480l^Lbp*--H*obptaKx-22j1Ls-fJ_LTcV=qB9yHgm7U+}eZLG?)zTYuOR>7H_w zlqf!yQ-m-GA&!A?aUpcks8qQY^tzPq>~5qX)hw^uVWHSOpCXll^*wSo3bgc!G9NWG@2FPyJ0<MF)N5$ESE`_7^&)W9I zaK495ViBmcPTaQ;oB>lvyY2Q7@6iCrl{-23k%{lP-ZZ+b6OID2HMws<14jVj`~WsM zWX9Jy<9#7k4@>t8iNqBV-jN6_1$&o;b5}(mXqB#%H@TEC&-;2r5<4mJRpY(;2_jAw z!Q8eXF^ne~)+*1j-_>A_@4B)!HU+dy`IDM-S+s<qs3plur-a@>Pj0N3_>}x(=+#;T;I2IadM|w01sOBO z0wvQ~;uii}N@lgoni&6`etuU;I3bR)$=6OCd>I(u<0e#Q9|@`{ipggH2-FrPo-X@0JB&5tw*l{%Mx6fSc2DKO_oUZ;Q`Y zoy+GaV}_*^FWY!y=J-c$67((IfO6*q4lQo75osA-&i?zYFZY}1GObCv)0^+0!Wsm> z4VHq~g!#^jU9F;}&C5U1_)e<4bLRu2)3B1}Po61wc{iyr`YnFX{K(DXveYMBm=C|fimT9Bg9M>}56)<8}k)iF=m*RxNOA&G=&gk)D zXcFmr+ES%GJ!F3K>yCl002^D^j2C+m>6o6{Z)$%2pBG?n!guv9+V(17<#K0lZMMTs z$Q8?tsQXq+V_V8}Rt3A;&3WNbo&QN=iypkjf;W zEM$9YEC=r@nbQ5@|9m7%=)od7xIP3Ka=3(s{{ zS5oKK=>Bn$tVWh|(_>N&c=qYoz@wPJ^5z{hQwK{wYoO_*$BuuNt%X_T8SWnZ9Rjz; zQSwjd`5$|x9W+Vckpf&+bSc+1jy(`}8!Ngq|I-OXvsQNbKX4nUR{4zCH3F)%jya*(ar}KiS-F|6G9M zZJQE<2il?^v**^3-ayGZ^Ge>YTq-PUGU@wwubbslp+6%dUure&{$+w{LH$edwNrqr z7i-u>bW~ZF;rXjJ>#UXeX!xjCz&vR!cA}6Sb3$Qxi>0SWXY-bxXpD!2MN1ENKt*|p z1v+ixDZLSn6LXr~F(sezi+1D&@{H*Me2k0EQs9JHjQkmu)%Yi$aY*Y?;$C>x7y`P+ zCnJ__Mci&x>dUzXU6a~ToRW*l9{%=swwqP;p9=p z{(Qi9oTW3WPPcEJEPTF)rXIl!AIr8C^Dqu;b%rgitR|>Q^`37L{_CiHl`PmNHuo5| zwI((ir^0iA`c)$)GV3rYQjw13?RwM=T^Oz>^P<2~0TDsPnA z*6pi!Ou83VT*Ar35sv4$Gwv-79*HDKcN1W?vAo=AWJT`jqSL&vN*Bm40m{kOm#m5$ zz3w9_B~+!x`5P>OoHSQ(ou$ObT@m=&;b#qy(e8yxAYnM%~mQx?jqMp^ckH{({ z`1*gp8o-g_`gX|f3(||wl-g&%yzb~`-x)Xr`rue&mm3VQm1_N(Qfv%epMP0EQve_Z z$geL7yf*kN{~6_60|OV%q`<2rNWtrtzduK2ge5oQ`O_FdF;(sH!6%d!!3-zeoo6%`UZ7J*ATye zzWU7Y%d~TeUoRgUsRG4DE5}h!+5dj&92hqPh3^|9oZ>*#q%h(bPq)CD)ESHS;;Ms| ziRe1ljhcCgO3>#vNAh169sZ;U&;IJHDX;HVMZ>F%?-6RtS|cTf0VM%N`;i+p_i}e5 z1HqC#GAp@Pv6c;ks)(!q@?)0Ms_ES~*0w2(c`j;d@jakOvAUEk{4GJH4F=LVkbT;P ziDCO%;tok3c@`E( z?fW^wf;%0_;X$ac|DD*0cw`@U@Ts+}_@~&YruGaHPQ-8m? z!^Kxu3f1UfiVV-xgu;oH2Ae2fzWdMfM4xr=@ehVrx6?ex?#kZTAb(==l@(gStcl-D z;aNAV=vl1*OrmI2+g9;DKP2C*mVnngW8J*;`y5n!?dzHS7BwG^O_JY6&tP zl;(b*1>2R_hrMs8?Ztq5{$WS$=5J_4CSI)IbvwF!4dvYmZd&d)^*R_J7+B!#|Bs3J4>i%{Cu&wb_q_@+hEH3X{3Ff*^2Ox@AKm5ep&KX0(JwAA zRo@jEMQ0FU19UBSrC(xvjPl^FP!Y}RGt}=Qpe;3XDdgdci;|ATB%t%z%NuLQAxn7U zN7P%8rjs~+E{h+`yOZAxaUWwRJ!Ued-#b9ykPk?}b8m|q)k>pnq|RC##0z7R>fBG% z`uazCR99u0)=}*{E}!TDfClg~TMid)gvx;9`eKR##_uU*F?E$Ge0~xA!XUU#eItWy zzG<7xhp5fTpP06FwoOP_5eg|)K)zYgS`Y z^MjmH_a2v!OrX!J#AXJzJ`j5Q7nb1ZJNi@099yeC{JOMsb0Zp}YW;nrsxUW68aDz} z_)=b!(EFhj=sEv|n<*6x8d}&f(`FbaeWyH{xAU4+Q%ereNl2w`$s88|RL30$fFrrb zQ-gqFYfHDi>_-u!UHbw7w7!LD_(8%8ERo+!A(nY*ODS1 z8_k6;0qM;L*@5lAJMypdXyoWK%?BqjQWT*GO?(KDE)rQJ@@Zzbz)<7t(gS53fcrSP z*pL1QY?1ESuZIHIc<&`1!LG*#PiVDn>=QRsB87VE9XG>qA|j(sp;J##^{{) zlMJv0#!90Re#0TxQz`f?GpWsQALcLzNvslIoBqB3{SRnNpJSmkj}2iROQV$Oix7TIm@!HT(heu1$INWw_cg953&|<^p|G2bKkk; zu}CD@P0a;hf9@0bQRJtz9Su2mObLy+k+eE-ctTOt7$nik?-QA05vsmu^j+Nrq8 z*?886Lw$Jv1#; zeBBH8DIThsRk0oPq7t`9FS2CjO7&Sn{`<2JO&j|&Z%l`SXf+I4ucn@yHTwoHg=qD; z5*;+rp9NqDuYC{$mgfps=@W(-oq;P|RJqm0jJp9dI&!P-1MVf*WsKQTC5iYo3)9y5 zr}ju?<54@)6S0WcxjKN8dF~ernC<7RA!|T~jf~r~U$WwVcA+5wLy2dRyi+~^i%lB65HVe&M(NTu4M zuy=+#rj`6|4tSCfu2&qDMAgK)PN`F{z)b4ndQHxYkxw5dPIxQ{48_1k29Qdk`cat0 zniO35C5+BU{0U?t^4F>0Zh$6;D^NQbIQ6=mASFev-<3~ZI`UMoGa8F9l6___zbg^S za$FghNgvKR`I1K9fDWj;p)Vi#L^W@rlg<2B@XRp>H-6MJ0vMg%XRZov8;NBadp<#6 z-*q-V?%JC`U!vGrU%(MCO{dvou5w_r9I77Y^>M`abaq1_6t*$gScKgEI7`yY_f=Yz!$zk;}+<8Vj*gclzUZU*L3=B>Bx z7DYVb%24qs6GjLgbVZQC7EeZ)mdB<)59m+1x5*5RnQOYSrKoZ#YJ3#DQfxGNY$!Gv z`6=PQvzA7kn&Fa?)q&%0W~Kh;lDEY^?IY#xBoS#AA5P8zhZGRJ<`G|eFM=ksMT0}=d7|E9#;p8h;>V?T-4W~aDJDAMS-ZVVDkznbd15`HV10&P-l1x z7|q%Nlu4yt<%HR$=e(K0+RuREs%=WYhJXzAlZ)n0@I3g1;Lb1R~dFLZL^4dTbOGM_VR#raA}KCcp^Re`L5P}WZ)LMCO$w1Da=*<#nx&i-J#M)Yqv)U z_H%$)LtH=GDN2EU{$V94F1v+Q%-w@DLUq z@50yjh@<9-i^R}7&)y#EGf^&=hPUH!#<7z7={0A=qM=t>#O4>HoR0+WJ&cT+F7y}V zL1}|IqvInN=akOk!jh(op;N6WXVLm|#zZcHfi{gK~IE^6P9U{^o-HV9850Mh-l9pJcmQE?jRa$E4 z?(UFS>F#FfaOsX`{9o7ek~hG>?9BZ=_c@<~ggTmvrPkRTuMJ}dWzA<67rQE4+tzhD z*SweX_zEoY-P~d#w=lJLte<5m>M5`kxFYzOD%vh-fc+qHgSO*jc(c-)+9wk}J*`~2 zUDdrm87v`I?dmp1a>-?fbW0T*%tQA@M4xnxn^4Su{zQ~O-1iory`Rd2{U>GbUK4++=P zT>C!%3cM}{>osz=X}xXJb88k5@SDro;Gd86Am8_`7hc`vDaIE1sGaR7=y~hZ{a3=r z{k1S=ubIH1@Pi0!G>-0LY5v@Vnf!wR`nz1V^atXOcj7^gi^TMA1JEx@)Vcy2RpI8~ z7_d}I;6qt4t}i9@?#wUVw{@XjelKiIb1@4#YsOK zZ0+W32j{955#C(ml zQ9$;^Q0AWG5asiGU>te{y16#@alWUzyZk;Dt;EXQ197)c?Z4IX zoV%hQsQ$eUkW1=9`RHPX8ML&_oa*0AiWFXnI!TYdpE3%Xw~t|{N|`XL`tM$s%$)p> zt+=#v0Rx(QhGceHw~t7q%RXI1HO5xeXVVh2~OBsp-C?moU$KM!$x#idXm*9Zm8=6s=jA9*C30g0TCq0z; zd5&s*cn-~wCTRT4bEoK6rR*je6nZ!LIKOD9wygCZ-rnUZWlkTp12RXyWcQ>VuMwi09~$jmxBvI5m(#})3DnW zp+vvAewmj{Sn%`|r!roO=fEN?_U+qeq^Xri1pi=9OGMBdU$2P7sC|&{VTVsl+N`D;95ZUc##`$dq3ml-5)HTG0CD0EL&{yt_K4n06ObzZ8a#bxnE%G%(){JXa#Lp3!QPKe6CTblNl7oFB5GP)!bB))bvsi4y z;_zx^HdrS0ULj*#7^BgkpRKsYxmp?iZYb|M!zD{rhf8K&ZTZ=6(42}Qr=U=#0z-O5 zVqt2b$>2cFc}P@87^8h)K60!R(0Qr!Hc0p6WD03~wjFA@Kr{F{*Y_YHye?lAuX)_e6XJQ@hf!iK$ zjAsAQFMyKm1@rX7zI^G8`+K^QY21#dyAGI0br!0dXqfAe@w4&O=S=;?+Ee(xsWFOd ze{+Ta)ALF4{xX5JHDyrrbJyx$eH)y;Chv75{elEM?IP-Uq2pD!JX}A0(gUo{7y!srr=a zr<_3-2RFRx3>pczd0f*XLcn;#8(;5A%l+&9ZB?DCMckov=%sjd)yg|UqN>YuD4*Yw zmeAIIEtZ?lZwvEE*NIWA^Gzqc3^}s|b6&1%NqxPUybO^@xHh`$x*3dCyQ@G}JIAjY z7-b!>?aZnhrM4V4s`*wtv^;M~YgR;R(GK~+COha%%3&3;Dgdz~%4b~2=+tHYME^r~ zJ3v_Yoz$eWkx#@o6flCH;c=Eu9E_PZpH+ zqO*jT-mv^=>7jn~_NF8_=h1<3zvv)-LNg@axB3YZmKJlPb>zaU`_L5=I3S39|Cc86 zLAv411%tuD^oXo#)!2`EG^v7TE}$$|4^DKusZF zhqLI4eRaKt?5dt>jQp8cb*W}`A2mAVx#GQ)CtaPA9d!C);_`m%RsS3)4ehpd%F}c< zI}d*mp?la|CD}&aGcNXW^$XGWhtK3R5R@}-Wz7MSmbl2wSd^cN&k7H-G!s#2AniZ% zUEl33)K@QzL`&o=Pk46VKx&^a;bn;|^>n)hdHBB5<^nHf)tl z?zGG|lNyfx6Lqp3$zNeb8t|dOViuyyP4Ta73V9WWF#x>FM=pRc^XG=eJo+ypV)gU( zV-Ta_{AyipGn@6-SYHa|fE@=aCNf`^6AR+W=k8g&p5>D(pu}e+y3ai|V6&w4A0k-6 zkh`um;*CJ%w?D20-yx-i1l0j*mXYN$C45CD*KPZbTm?axU z^Oo6B^Okwu*2AsMm{5rpGX@eL9Z&AkLmys6#!IT|^Inx{dHzYvpF!oj5;Y)p=ycqY zuXrP+@25>3$N``~=eX|@a@}`|T;_V^>KFi|?ubcBcKaBw?@bl}5t&CkOTE73pJ#e$ zTs_5tDwCOM(FtpS5&~!{8Jix4EcCn$v*BvGMY22Eaa)GRZx}r-s`M4S(0~OT!U1|? z|KUsjiG#+-E1zM{_c-j?f`>F3_v?{1$A*?#Liedk0`xnKR6!bPkvM#*z1IRCDj8&6l;S;z#dFXh_63#~)VU+QFt z@lIgbe{dne%Is2xbd#hb2y=}ev#R_32s9~5e{&IAwMRi#=>h9JAep>#Ab1#qJ#~i; zSR8xSt-^rNyr*7P+Nk;s8X$9Ef37lKx33HRU%%!wQSI`qBAtWV96ccrT->rse{J+d z@8|mWd9#>?RX<6P=&rp98%g)n4u#}wY?s!;Q=Gzv>xkR zJY(D-ijF#skG%jXwVu@s4(Q>okQUCbHn!tdIUTD z)dqj8^#DrP_(?6DPk&*Iu$2(2_!8x!Lh&#aT7$Y~#Q&=U^@5CMRbqbBBu50Yq<=kS z0#of@0@0$Z$SpfbH)YDla$3iTY?LKOf3dbi2&p=cM6ixVPc#cKp23GzK8P7r%mUY6 zgl{Ig)dYwl|Jc7kzT;`tCs3 z|G?5la`r{LG9K=lW&lzu;5IDAeG^6U_CK-Ka=U*7e|S>+sion{;YZfMX*0lK9SvV# z$Z_zz-lqMx=RrZLewt5w3@$oW21U;Z<)RG!{n5|NFpC$5rA2UIb zAcrvqX~LU?@>=|(mgm>sU;U;erx-cIKJga8f|0pL7M8faTtGOXEfq2L^1p@f;;)}( zt9Ygln0wajy=!{Av8y($B(I%--_fC=`z)3IZ@Nk5kvWNOEapX_=-pVp?Wo~dEv3yO z>1vUxhNr8O(@$6L)vLWiyGvL?yjTYf(5Y8|``6YklxU(^!|Uwp=_LRn%mTeiaZWE* z3pzDHY8d6awNGnAu!!k+!M0cvq;X7WeQliNV=Ej=zi*_;?S}0`k90N4%k73jBZTR6 zCWQ)9b%~p8XohxN(qJ&QQtJn*86e|vY2r(}@YPOp0g`uhKr?YuL#1>xu&+IMb?evL zM5i{w=u_NL?|<7wulV<)IA#=x_)_a)qzGgn1?FeCh(5)-quZL^!=-ieb8(Ro#L-(; z7w98LIKfunVyMt}z}dgCwe_9opU__CP()VO6;Ps(H86$-e8L@j19F;wYJ=%-PVIqt z{i=Hj$RO8NDLy2wz&E=G2M6Cp-uN&qx)XG*ah#Go)mN{MfOpRl#3!z{U81!@h}NPy z#>>$M(lqZOI;)3Q5roc31IwC6_sz&*Uxz)s&#|9N4@NI?o+1UBxRqU1WY#@ZA|fSr zTzm6cwm;6M-PWG#Ny2P9iiS|~Q(FKr`%(K>0kTregpW%tfs%)B5m~#ec~yHsvW6*L>Fi-8AomR_AMfc@Jhu+r z+D31WKh;C2{A=?PI<&6RvP1lm?pF3?9)2AlIp$rG3?=fyYzCWUXB4AE7*bUhL#i|{ zO#$?0oj!glQ$AH2k|(Fn^@Rjq|6&l%I#X9{TVFM)O{#2?`fvy1ZZZtBBBo=Ltl4rNxpz9( za@L2SWh>JI?|9>;m#FECocuLWyN^Y_AqCDWFuY8>sY)feaP!78}T`9#WHa|o%AL&!BZ^y^p6M1BrfRQ zlG^npoFGYFSdLa=DhxfPyxWYw`@%F55ZI->Z(g*!YnuXWjJhzwleG(Mj~!)`o(Jp- z)B5i%Z_E=CnG4tND+LAq?y7|%i85V8MaR2%5!w7cE-rCsJ9t7hBq&`Z^sYd#RMq)A zD)U5!ixRf;q!7nv<((6+8tQH4(-D9c#=@9@83PVlGy5S$A3iDAA4xDWjtcfvlC|Ge zFy2}yEXD;~aLmD<(!=jRzArL>?7FCY78}U=TA=7q&f@EQu4$1zkudH`F;K4HR6pk^lhB81X22(;6km79MNd#bvg&&8=6AS5BULFOhtz6S zf`65|H2d({btG?7Mp;w%TSRs;-RK0woFr~wVTm}gcqd^++#Z}Bq0|woLCE3I8d>1n zxQz9qPDb4R_h?&W|D9AsDNT&2X{EVHq$0Obn@6BlQ_4#jfZsMY+bxl@e;k~|Uh?kp zpXUSMK3@TS5f9J!GNdCFqv#2C2T3TccYqCUd%)^V`fArd@XJz%KO=AgDn}tup+~pM zf_v3{@QOU^XF0EBOzU{?V|0%qRK(<^wDT~@@BG-xllX|=)$4ImbR8%|3Wai)e4;6-b$D%)e%oQ z@AL-xHJqD1w9xLHv8F|m<5<^Vj=_Vcjzk!YX0y82J$k%qdh9A>dY&!;Zi~mw zJ!ZMFv1;)=0H?79MM{G2_?bVVpS%g1a zN*SP;{PwK%4QoF#Q=hnLToe`SY-x;}lWauklngFcoUGej)WtE=*8Zt@8<1~D-0b0s zvr{bIM{*Kr`}2I=r>@7L171}$j<32<+-MZLv>=j8xJUf9vo%E}R#b_SX&^i`HPv+q zrHTd|PV{zxqpxoKs&?MtYqJLZh;T`@juZD*r3&xH9XZSZ?+t^N?+5XU!2iG|PHw9H zx(m+W!Zen$X`B8Ios#LESCs+=J5gTa8_8*{J7 zhELq-hL3xSja*drhbB0B#v4xx{Ue_he|MRyzl;-+v3awiLEY5^8@B4l%1j@A$BxA@ zO{kRG3|@@S{N2Hka}Am%6{r0MFCt-4S9Jd1(_n_ZrB|ZEu9^JV9dKS+l=mtV6ArU^ zrJm(oQtoB9rvL<7zqvoPhM8X%g2j=`En&UfuZ(AhQA=v@7utbmf#Pz{`fMdJ5x7%cDzN)?1Z+$vC~Zd0sXv!GzNcX%zy>-q5T~akz}hs# zh2V;@HMFLt#=?J|6H{CC^nEfh!Fl?-fdNz>;o#XLp=^rqe$pBDze=(OG_x9Co4lDhGbM)-Cw+qu`6;`!c=_^({M zp<5oc@ z{1`wmnLGOW)yy92-rbJ@O0<(UYNZUA^=qkfr4^P&@D2Z`+_L$fvVB?f=&{jLNO$se zi6i0KIlC!~uoHj$WVr3)r?Ppi0FS-yTL!&S^o*2PGA`I&GBcoE9jn^S6HzHgHd&uD zT!bxn7tT(Fs<)*8X4*#HV3b)kC;GT06Z;Cb^MY1mUJ5yZ{qNSTSN&H``xB6?YmKUw z1k=R!+a@FPCWsxMcg1OPUDdVbRw|f9)Vg4Ek|Sl;^5(z2d|D4<))F37@oBz?BBl96 zie}m6k+?jlk-`1qfPY>`InG7MzSJJ_JrKDcfTFze7#p}AO47aBI$7(7EYb- zqU_gUXFkSp^BL|Rk=W$MosMi4oh_L17x{r=|C11-q`SAhNA

    yalDN5u+VX7AFR-EA*yb;}S! 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

    rT|ECvp^l0#A25ap`38vqoBKYwJa=1J%yBOD$3# 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

    &zfvwx{ro9gJv`J`A^U%$hG3zo*9dbu|9A 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

    Bi3rF|9j7Bj^~iuo%Jg)p@tbR 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%0AdoJQvqius@#wa;g+oWKN#Yg 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

    Rz zw{h=@?Uz+E7N4FaE3ZOij{rQ$jCS!pTsBXFElo^EeU|34qUln46SQVk-zDp$WD=Lg zz->prC%&%t_@*2(S5tK}RE1L=qhF2>srBRxfBmPFKx66mEO8QTVp89r&G@d9222NH z9aGnAMc_J|kElaNVhFgrdsIdI)LO8=7bGyCM-{GduiWEOpo1o#Jjw z=G9vEcBUgzL%l?yiCikLf*EpZ`0twU#~NJWjpn@r*{v()}WF!?NsPEIG5ZCE}1n+_m3j_)G7_&81PbCp;If?^@vlEqboq zM7ALEdPuy`w^8yW72<<%EAA8fK%;~HhAzT3*zptH!G}d@xlft&R&B`FVuZ|1c!~Pl zNE;erT`U;q%Jwk2Xr0|#0socOIzsRN#`lV7y@E=F(s(%&;gwdsR!;fy2lG;!Nlx}dOv~*8EI!4GSVWf1|bMrsv zdBZDWaC7#p>-tLhqc7~O${o_q35cs)`3*aDoAg$ zzn-1pxP2;&-nF(xg705B%drjZGR7XCOWOa-Z9j^*w8D5X#*_n=-h&iivldCS0*q~d zMob?yQ>M;o92G3wRhN!x@NY(>aYO>zC=Y!xB?tRoDWX+;;2HfVO8G>OMbZ^OY?I=( zkIM{q=Wl#SCN+hj=Au=KAKx>nP%UCp?$29Pu+G+POC1!z*pdwm=x04IECc#iEklxw zQ1743

    )qr#ubwACqNwO!Q$=wT@>5xx$@V4 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

    7+~uUd=-r**?OkgKqNHh&VAvq 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

    cJ^wZ9BkUoftCfUbw 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%0D(A-3C`Vn#cGJ`< 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 z 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

    nYaS){0XupjhRwF{})DsJ}! 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 e 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�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 N8JgcM{m1#${{eF4eir}$ literal 0 HcmV?d00001 diff --git a/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv new file mode 100644 index 000000000..594552eb8 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv @@ -0,0 +1,49 @@ +sentenceID,codeID +1,Implementation/mediastore.ejb.facade/src/edu/kit/ipd/sdq/mediastore/ejb/facade/FacadeImpl.java +3,Implementation/mediastore.ejb.facade/src/edu/kit/ipd/sdq/mediastore/ejb/facade/FacadeImpl.java +6,Implementation/mediastore.ejb.facade/src/edu/kit/ipd/sdq/mediastore/ejb/facade/FacadeImpl.java +7,Implementation/mediastore.ejb.mediamanagement/src/edu/kit/ipd/sdq/mediastore/ejb/mediamanagement/MediaManagementImpl.java +8,Implementation/mediastore.ejb.mediamanagement/src/edu/kit/ipd/sdq/mediastore/ejb/mediamanagement/MediaManagementImpl.java +9,Implementation/mediastore.ejb.mediamanagement/src/edu/kit/ipd/sdq/mediastore/ejb/mediamanagement/MediaManagementImpl.java +11,Implementation/mediastore.ejb.usermanagement/ejbModule/edu/kit/ipd/sdq/mediastore/ejb/usermanagement/ +12,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/User.java +12,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/UserDBAdapterImpl.java +13,Implementation/mediastore.ejb.usermanagement/ejbModule/edu/kit/ipd/sdq/mediastore/ejb/usermanagement/ +16,Implementation/mediastore.ejb.tagwatermarking/src/edu/kit/ipd/sdq/mediastore/ejb/tagwatermarking/TagWatermarkingImpl.java +17,Implementation/mediastore.ejb.mediamanagement/src/edu/kit/ipd/sdq/mediastore/ejb/mediamanagement/MediaManagementImpl.java +17,Implementation/mediastore.ejb.tagwatermarking/src/edu/kit/ipd/sdq/mediastore/ejb/tagwatermarking/TagWatermarkingImpl.java +19,Implementation/mediastore.ejb.packaging/src/edu/kit/ipd/sdq/mediastore/ejb/packaging/PackagingImpl.java +20,Implementation/mediastore.ejb.reencoder/src/edu/kit/ipd/sdq/mediastore/ejb/reencoder/ReEncoderImpl.java +23,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +23,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +23,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +23,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +24,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +24,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +24,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +24,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +25,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +25,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +25,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +25,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +26,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/Audio.java +26,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/MediaAccessImpl.java +27,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/Audio.java +27,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/MediaAccessImpl.java +28,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/Audio.java +28,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/MediaAccessImpl.java +29,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/User.java +29,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/UserDBAdapterImpl.java +30,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/User.java +30,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/UserDBAdapterImpl.java +31,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +31,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +31,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +31,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +32,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +32,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +32,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +32,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +34,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/Audio.java +34,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/MediaAccessImpl.java +37,Implementation/mediastore.ejb.reencoder/src/edu/kit/ipd/sdq/mediastore/ejb/reencoder/ReEncoderImpl.java diff --git a/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv new file mode 100644 index 000000000..ddb9c8491 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv @@ -0,0 +1,30 @@ +modelElementID,sentence +_st2Y0HDrEeSqnN80MQ2uGw,1 +_st2Y0HDrEeSqnN80MQ2uGw,3 +_st2Y0HDrEeSqnN80MQ2uGw,6 +_p_EeYHDrEeSqnN80MQ2uGw,7 +_p_EeYHDrEeSqnN80MQ2uGw,8 +_p_EeYHDrEeSqnN80MQ2uGw,9 +_ahv3gL0YEeSAHuL4ItXOLQ,11 +_tBjC0HDpEeSqnN80MQ2uGw,12 +_ahv3gL0YEeSAHuL4ItXOLQ,13 +_h_QpkLhEEeSNPorBlo7x9g,16 +_p_EeYHDrEeSqnN80MQ2uGw,17 +_h_QpkLhEEeSNPorBlo7x9g,17 +_B5geQHDsEeSqnN80MQ2uGw,19 +_o10-YHDrEeSqnN80MQ2uGw,20 +_5LN7MLg2EeSNPorBlo7x9g,23 +_5LN7MLg2EeSNPorBlo7x9g,24 +_5LN7MLg2EeSNPorBlo7x9g,25 +_9eK7YHDrEeSqnN80MQ2uGw,26 +_9eK7YHDrEeSqnN80MQ2uGw,27 +_9eK7YHDrEeSqnN80MQ2uGw,28 +_tBjC0HDpEeSqnN80MQ2uGw,29 +_tBjC0HDpEeSqnN80MQ2uGw,30 +_5LN7MLg2EeSNPorBlo7x9g,31 +_5LN7MLg2EeSNPorBlo7x9g,32 +_qxAiILg7EeSNPorBlo7x9g,33 +_9eK7YHDrEeSqnN80MQ2uGw,34 +_qxAiILg7EeSNPorBlo7x9g,35 +_qxAiILg7EeSNPorBlo7x9g,36 +_o10-YHDrEeSqnN80MQ2uGw,37 diff --git a/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv new file mode 100644 index 000000000..9c9e8298e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv @@ -0,0 +1,5 @@ +missingModelElementID +_S-lawHDqEeSqnN80MQ2uGw +_j5vZQLhEEeSNPorBlo7x9g +_Fslt8OXSEeSa__lJ2-JCxw +_S-lawHDqEeSqnN80MQ2uGw2 diff --git a/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_id_2016.json b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_id_2016.json new file mode 100644 index 000000000..7935644ef --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sad_id_2016.json @@ -0,0 +1,378 @@ +{ + "$schema": "../../DiagramSchema.json", + "diagrams": [ + { + "path": "/benchmark/mediastore/diagrams_2016/ArchitectureWithCache.png", + "boxes": [ + { + "boundingBox": { + "x": 654, + "y": 43, + "w": 407, + "h": 250 + }, + "textBoxes": [ + { + "text": "User Management", + "boundingBox": { + "x": 696, + "y": 114, + "w": 330, + "h": 116 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 11, + 13 + ] + } + ] + }, + { + "boundingBox": { + "x": 1306, + "y": 52, + "w": 386, + "h": 242 + }, + "textBoxes": [ + { + "text": "UserDB Adapter", + "boundingBox": { + "x": 1405, + "y": 121, + "w": 191, + "h": 114 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 12, + 29, + 30 + ] + } + ] + }, + { + "boundingBox": { + "x": 991, + "y": 389, + "w": 393, + "h": 244 + }, + "textBoxes": [ + { + "text": "Cache", + "boundingBox": { + "x": 1118, + "y": 487, + "w": 143, + "h": 40 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 288, + "y": 790, + "w": 297, + "h": 253 + }, + "textBoxes": [ + { + "text": "WebGUI", + "boundingBox": { + "x": 329, + "y": 908, + "w": 210, + "h": 43 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 670, + "y": 781, + "w": 407, + "h": 255 + }, + "textBoxes": [ + { + "text": "Tag Watermarking", + "boundingBox": { + "x": 695, + "y": 854, + "w": 355, + "h": 110 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 16, + 17 + ] + } + ] + }, + { + "boundingBox": { + "x": 1313, + "y": 770, + "w": 387, + "h": 246 + }, + "textBoxes": [ + { + "text": "ReEncoder", + "boundingBox": { + "x": 1384, + "y": 868, + "w": 248, + "h": 43 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 20 + ], + "typedTracelinks": [ + { + "sentences": [ + 15, + 16, + 37 + ], + "traceType": "SHARED_STEM" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 1985, + "y": 679, + "w": 282, + "h": 241 + }, + "textBoxes": [ + { + "text": "DB", + "boundingBox": { + "x": 2094, + "y": 793, + "w": 65, + "h": 38 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 12, + 23, + 25, + 31, + 32, + 33, + 34 + ], + "typedTracelinks": [ + { + "sentences": [ + 12, + 29, + 30 + ], + "traceType": "OTHER_ENTITY" + }, + { + "sentences": [ + 24 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 27 + ], + "traceType": "COMMON_NOUN" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 677, + "y": 1179, + "w": 406, + "h": 263 + }, + "textBoxes": [ + { + "text": "Media Management", + "boundingBox": { + "x": 717, + "y": 1253, + "w": 331, + "h": 120 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 7, + 8, + 17 + ], + "typedTracelinks": [ + { + "sentences": [ + 9 + ], + "traceType": "ENTITY_COREFERENCE" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 1320, + "y": 1160, + "w": 390, + "h": 253 + }, + "textBoxes": [ + { + "text": "MediaAccess", + "boundingBox": { + "x": 1367, + "y": 1278, + "w": 297, + "h": 44 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 26, + 27, + 34 + ], + "typedTracelinks": [ + { + "sentences": [ + 28 + ], + "traceType": "ENTITY_COREFERENCE" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 681, + "y": 1645, + "w": 408, + "h": 268 + }, + "textBoxes": [ + { + "text": "Packaging", + "boundingBox": { + "x": 762, + "y": 1768, + "w": 249, + "h": 56 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 19 + ] + } + ] + }, + { + "boundingBox": { + "x": 1898, + "y": 1598, + "w": 390, + "h": 249 + }, + "textBoxes": [ + { + "text": "DataStorage", + "boundingBox": { + "x": 1948, + "y": 1715, + "w": 293, + "h": 48 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "mediastore/text_2016/mediastore.txt", + "sentences": [ + 33, + 35, + 36 + ] + } + ] + } + ] + } + ] +} diff --git a/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv new file mode 100644 index 000000000..879276dfe --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv @@ -0,0 +1,56 @@ +ae_id,ae_name,ce_ids +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadTagWatermarkingRemote.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadMediaAccess.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadMediaAccessRemote.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadTagWatermarking.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadReEncoderLocal.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadReEncoder.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadCache.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownload.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadCacheLocal.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadReEncoderRemote.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadMediaAccessLocal.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadTagWatermarkingLocal.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadAudioWatermarkingLocal.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadAudioWatermarking.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadCacheRemote.java +_4QwQwHDqEeSqnN80MQ2uGw,Interface: IDownload,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IDownloadAudioWatermarkingRemote.java +_4TPZgHDpEeSqnN80MQ2uGw,Interface: IUserDB,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserDBAdapter.java +_4TPZgHDpEeSqnN80MQ2uGw,Interface: IUserDB,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserDBAdapterRemote.java +_4TPZgHDpEeSqnN80MQ2uGw,Interface: IUserDB,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserDBAdapterLocal.java +_9eK7YHDrEeSqnN80MQ2uGw,Component: MediaAccess,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/MediaAccessImpl.java +_9eK7YHDrEeSqnN80MQ2uGw,Component: MediaAccess,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/Audio.java +_B5geQHDsEeSqnN80MQ2uGw,Component: Packaging,Implementation/mediastore.ejb.packaging/src/edu/kit/ipd/sdq/mediastore/ejb/packaging/PackagingImpl.java +_NeTaUHDwEeSqnN80MQ2uGw,Interface: IFacade,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IFacade.java +_NeTaUHDwEeSqnN80MQ2uGw,Interface: IFacade,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IFacadeLocal.java +_NeTaUHDwEeSqnN80MQ2uGw,Interface: IFacade,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IFacadeRemote.java +_Nv-1oHDvEeSqnN80MQ2uGw,Interface: IMediaManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaManagementRemote.java +_Nv-1oHDvEeSqnN80MQ2uGw,Interface: IMediaManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaManagementLocal.java +_Nv-1oHDvEeSqnN80MQ2uGw,Interface: IMediaManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaManagement.java +_S-lawHDqEeSqnN80MQ2uGw,Component: AudioWatermarking,Implementation/mediastore.ejb.audiowatermarking/src/edu/kit/ipd/sdq/mediastore/ejb/audiowatermarking/ +_ahv3gL0YEeSAHuL4ItXOLQ,Component: UserManagement,Implementation/mediastore.ejb.usermanagement/ejbModule/edu/kit/ipd/sdq/mediastore/ejb/usermanagement/ +_h_QpkLhEEeSNPorBlo7x9g,Component: TagWatermarking,Implementation/mediastore.ejb.tagwatermarking/src/edu/kit/ipd/sdq/mediastore/ejb/tagwatermarking/TagWatermarkingImpl.java +_j5vZQLhEEeSNPorBlo7x9g,Component: Cache,Implementation/mediastore.ejb.cache/ejbModule/edu/kit/ipd/sdq/mediastore/ejb/cache/ +_jAJnML0YEeSAHuL4ItXOLQ,Interface: IUserManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserManagementLocal.java +_jAJnML0YEeSAHuL4ItXOLQ,Interface: IUserManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserManagement.java +_jAJnML0YEeSAHuL4ItXOLQ,Interface: IUserManagement,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IUserManagementRemote.java +_o10-YHDrEeSqnN80MQ2uGw,Component: Reencoding,Implementation/mediastore.ejb.reencoder/src/edu/kit/ipd/sdq/mediastore/ejb/reencoder/ReEncoderImpl.java +_p_EeYHDrEeSqnN80MQ2uGw,Component: MediaManagement,Implementation/mediastore.ejb.mediamanagement/src/edu/kit/ipd/sdq/mediastore/ejb/mediamanagement/MediaManagementImpl.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccessMaintenanceLocal.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccessLocal.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccessRemote.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccess.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccessMaintenance.java +_psfEIHDsEeSqnN80MQ2uGw,Interface: IMediaAccess,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IMediaAccessMaintenanceRemote.java +_s3KlgHDuEeSqnN80MQ2uGw,Interface: IPackaging,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IPackagingRemote.java +_s3KlgHDuEeSqnN80MQ2uGw,Interface: IPackaging,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IPackagingLocal.java +_s3KlgHDuEeSqnN80MQ2uGw,Interface: IPackaging,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/interfaces/IPackaging.java +_st2Y0HDrEeSqnN80MQ2uGw,Component: Facade,Implementation/mediastore.ejb.facade/src/edu/kit/ipd/sdq/mediastore/ejb/facade/FacadeImpl.java +_tBjC0HDpEeSqnN80MQ2uGw,Component: UserDBAdapter,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/UserDBAdapterImpl.java +_tBjC0HDpEeSqnN80MQ2uGw,Component: UserDBAdapter,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/User.java +_68uVELg2EeSNPorBlo7x9g,Interface: IDB,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java +_68uVELg2EeSNPorBlo7x9g,Interface: IDB,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +_5LN7MLg2EeSNPorBlo7x9g,Component: DB,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/DbException.java +_5LN7MLg2EeSNPorBlo7x9g,Component: DB,Implementation/mediastore.basic/src/edu/kit/ipd/sdq/mediastore/basic/exceptions/UserAlreadyExistsException.java +_5LN7MLg2EeSNPorBlo7x9g,Component: DB,Implementation/mediastore.ejb.mediaaccess/src/edu/kit/ipd/sdq/mediastore/ejb/mediaaccess/DbManager.java +_5LN7MLg2EeSNPorBlo7x9g,Component: DB,Implementation/mediastore.ejb.userdbadapter/src/edu/kit/ipd/sdq/mediastore/ejb/userdbadapter/DbManager.java diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/README.md b/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/README.md new file mode 100644 index 000000000..c9ccdddba --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/README.md @@ -0,0 +1,2 @@ +# MediaStore3 Code Model +The code that was used is located at https://github.com/ArDoCo/MediaStore3/commit/94c398fa02b3d6b8d71517522a7206d37ed3a9af diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/codeModel.acm b/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/codeModel.acm new file mode 100644 index 000000000..fe1e89b6e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/code/codeModel.acm @@ -0,0 +1,8798 @@ +{ + "id" : "acm002610jsd", + "codeItemRepository" : { + "repository" : { + "acm001337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001337jsd", + "name" : "BaseEJB", + "parentId" : "acm001343jsd", + "content" : [ "acm001347jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001338jsd" : { + "type" : "CodePackage", + "id" : "acm001338jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001339jsd" ] + }, + "acm001339jsd" : { + "type" : "CodePackage", + "id" : "acm001339jsd", + "name" : "kit", + "parentId" : "acm001338jsd", + "content" : [ "acm001340jsd" ] + }, + "acm001340jsd" : { + "type" : "CodePackage", + "id" : "acm001340jsd", + "name" : "ipd", + "parentId" : "acm001339jsd", + "content" : [ "acm001341jsd" ] + }, + "acm001341jsd" : { + "type" : "CodePackage", + "id" : "acm001341jsd", + "name" : "sdq", + "parentId" : "acm001340jsd", + "content" : [ "acm001342jsd" ] + }, + "acm001342jsd" : { + "type" : "CodePackage", + "id" : "acm001342jsd", + "name" : "mediastore", + "parentId" : "acm001341jsd", + "content" : [ "acm001343jsd", "acm002132jsd", "acm002459jsd" ] + }, + "acm001343jsd" : { + "type" : "CodePackage", + "id" : "acm001343jsd", + "name" : "basic", + "parentId" : "acm001342jsd", + "content" : [ "acm001337jsd", "acm001355jsd", "acm001457jsd", "acm001596jsd", "acm001691jsd", "acm002081jsd" ] + }, + "acm001344jsd" : { + "type" : "ControlElement", + "id" : "acm001344jsd", + "name" : "BaseEJB" + }, + "acm001345jsd" : { + "type" : "ControlElement", + "id" : "acm001345jsd", + "name" : "initRequiredInterface" + }, + "acm001346jsd" : { + "type" : "ControlElement", + "id" : "acm001346jsd", + "name" : "isLocal" + }, + "acm001347jsd" : { + "type" : "ClassUnit", + "id" : "acm001347jsd", + "name" : "BaseEJB", + "compilationUnitId" : "acm001337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001411jsd", "acm001436jsd", "acm001449jsd", "acm001692jsd" ], + "content" : [ "acm001344jsd", "acm001345jsd", "acm001346jsd" ] + }, + "acm001348jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001348jsd", + "name" : "Config", + "parentId" : "acm001355jsd", + "content" : [ "acm001359jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001349jsd" : { + "type" : "CodePackage", + "id" : "acm001349jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001350jsd" ] + }, + "acm001350jsd" : { + "type" : "CodePackage", + "id" : "acm001350jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001351jsd" ] + }, + "acm001351jsd" : { + "type" : "CodePackage", + "id" : "acm001351jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001352jsd" ] + }, + "acm001352jsd" : { + "type" : "CodePackage", + "id" : "acm001352jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001353jsd" ] + }, + "acm001353jsd" : { + "type" : "CodePackage", + "id" : "acm001353jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001354jsd" ] + }, + "acm001354jsd" : { + "type" : "CodePackage", + "id" : "acm001354jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001355jsd" ] + }, + "acm001355jsd" : { + "type" : "CodePackage", + "id" : "acm001355jsd", + "name" : "config", + "parentId" : "acm001343jsd", + "content" : [ "acm001348jsd", "acm001360jsd", "acm001384jsd", "acm001398jsd", "acm001412jsd", "acm001422jsd", "acm001437jsd" ] + }, + "acm001356jsd" : { + "type" : "ControlElement", + "id" : "acm001356jsd", + "name" : "loadConfig" + }, + "acm001357jsd" : { + "type" : "ControlElement", + "id" : "acm001357jsd", + "name" : "isReconfigurable" + }, + "acm001358jsd" : { + "type" : "ControlElement", + "id" : "acm001358jsd", + "name" : "getEJBs" + }, + "acm001359jsd" : { + "type" : "ClassUnit", + "id" : "acm001359jsd", + "name" : "Config", + "compilationUnitId" : "acm001348jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd", "acm001449jsd" ], + "content" : [ "acm001356jsd", "acm001357jsd", "acm001358jsd" ] + }, + "acm001360jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001360jsd", + "name" : "EJB", + "parentId" : "acm001355jsd", + "content" : [ "acm001383jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001361jsd" : { + "type" : "CodePackage", + "id" : "acm001361jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001362jsd" ] + }, + "acm001362jsd" : { + "type" : "CodePackage", + "id" : "acm001362jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001363jsd" ] + }, + "acm001363jsd" : { + "type" : "CodePackage", + "id" : "acm001363jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001364jsd" ] + }, + "acm001364jsd" : { + "type" : "CodePackage", + "id" : "acm001364jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001365jsd" ] + }, + "acm001365jsd" : { + "type" : "CodePackage", + "id" : "acm001365jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001366jsd" ] + }, + "acm001366jsd" : { + "type" : "CodePackage", + "id" : "acm001366jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001367jsd" ] + }, + "acm001367jsd" : { + "type" : "CodePackage", + "id" : "acm001367jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001360jsd" ] + }, + "acm001368jsd" : { + "type" : "ControlElement", + "id" : "acm001368jsd", + "name" : "EJB" + }, + "acm001369jsd" : { + "type" : "ControlElement", + "id" : "acm001369jsd", + "name" : "setProvidedInterfaces" + }, + "acm001370jsd" : { + "type" : "ControlElement", + "id" : "acm001370jsd", + "name" : "setRequiredInterfaces" + }, + "acm001371jsd" : { + "type" : "ControlElement", + "id" : "acm001371jsd", + "name" : "getRequiredInterface" + }, + "acm001372jsd" : { + "type" : "ControlElement", + "id" : "acm001372jsd", + "name" : "getProvidedInterface" + }, + "acm001373jsd" : { + "type" : "ControlElement", + "id" : "acm001373jsd", + "name" : "addRequiredInterface" + }, + "acm001374jsd" : { + "type" : "ControlElement", + "id" : "acm001374jsd", + "name" : "addProvidedInterface" + }, + "acm001375jsd" : { + "type" : "ControlElement", + "id" : "acm001375jsd", + "name" : "getPort" + }, + "acm001376jsd" : { + "type" : "ControlElement", + "id" : "acm001376jsd", + "name" : "getHost" + }, + "acm001377jsd" : { + "type" : "ControlElement", + "id" : "acm001377jsd", + "name" : "getName" + }, + "acm001378jsd" : { + "type" : "ControlElement", + "id" : "acm001378jsd", + "name" : "getAppName" + }, + "acm001379jsd" : { + "type" : "ControlElement", + "id" : "acm001379jsd", + "name" : "getModuleName" + }, + "acm001380jsd" : { + "type" : "ControlElement", + "id" : "acm001380jsd", + "name" : "getBeanName" + }, + "acm001381jsd" : { + "type" : "ControlElement", + "id" : "acm001381jsd", + "name" : "equals" + }, + "acm001382jsd" : { + "type" : "ControlElement", + "id" : "acm001382jsd", + "name" : "toString" + }, + "acm001383jsd" : { + "type" : "ClassUnit", + "id" : "acm001383jsd", + "name" : "EJB", + "compilationUnitId" : "acm001360jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd", "acm001449jsd" ], + "content" : [ "acm001368jsd", "acm001369jsd", "acm001370jsd", "acm001371jsd", "acm001372jsd", "acm001373jsd", "acm001374jsd", "acm001375jsd", "acm001376jsd", "acm001377jsd", "acm001378jsd", "acm001379jsd", "acm001380jsd", "acm001381jsd", "acm001382jsd" ] + }, + "acm001384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001384jsd", + "name" : "GlobalConstantsContainer", + "parentId" : "acm001355jsd", + "content" : [ "acm001397jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001385jsd" : { + "type" : "CodePackage", + "id" : "acm001385jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001386jsd" ] + }, + "acm001386jsd" : { + "type" : "CodePackage", + "id" : "acm001386jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001387jsd" ] + }, + "acm001387jsd" : { + "type" : "CodePackage", + "id" : "acm001387jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001388jsd" ] + }, + "acm001388jsd" : { + "type" : "CodePackage", + "id" : "acm001388jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001389jsd" ] + }, + "acm001389jsd" : { + "type" : "CodePackage", + "id" : "acm001389jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001390jsd" ] + }, + "acm001390jsd" : { + "type" : "CodePackage", + "id" : "acm001390jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001391jsd" ] + }, + "acm001391jsd" : { + "type" : "CodePackage", + "id" : "acm001391jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001384jsd" ] + }, + "acm001392jsd" : { + "type" : "ControlElement", + "id" : "acm001392jsd", + "name" : "getTempDirPath" + }, + "acm001393jsd" : { + "type" : "ControlElement", + "id" : "acm001393jsd", + "name" : "getFileDir" + }, + "acm001394jsd" : { + "type" : "ControlElement", + "id" : "acm001394jsd", + "name" : "getCacheCapacity" + }, + "acm001395jsd" : { + "type" : "ControlElement", + "id" : "acm001395jsd", + "name" : "getProperty" + }, + "acm001396jsd" : { + "type" : "ControlElement", + "id" : "acm001396jsd", + "name" : "loadProperties" + }, + "acm001397jsd" : { + "type" : "ClassUnit", + "id" : "acm001397jsd", + "name" : "GlobalConstantsContainer", + "compilationUnitId" : "acm001384jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001392jsd", "acm001393jsd", "acm001394jsd", "acm001395jsd", "acm001396jsd" ] + }, + "acm001398jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001398jsd", + "name" : "InterfaceDetails", + "parentId" : "acm001355jsd", + "content" : [ "acm001411jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001399jsd" : { + "type" : "CodePackage", + "id" : "acm001399jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001400jsd" ] + }, + "acm001400jsd" : { + "type" : "CodePackage", + "id" : "acm001400jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001401jsd" ] + }, + "acm001401jsd" : { + "type" : "CodePackage", + "id" : "acm001401jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001402jsd" ] + }, + "acm001402jsd" : { + "type" : "CodePackage", + "id" : "acm001402jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001403jsd" ] + }, + "acm001403jsd" : { + "type" : "CodePackage", + "id" : "acm001403jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001404jsd" ] + }, + "acm001404jsd" : { + "type" : "CodePackage", + "id" : "acm001404jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001405jsd" ] + }, + "acm001405jsd" : { + "type" : "CodePackage", + "id" : "acm001405jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001398jsd" ] + }, + "acm001406jsd" : { + "type" : "ControlElement", + "id" : "acm001406jsd", + "name" : "InterfaceDetails" + }, + "acm001407jsd" : { + "type" : "ControlElement", + "id" : "acm001407jsd", + "name" : "getBusinessInterface" + }, + "acm001408jsd" : { + "type" : "ControlElement", + "id" : "acm001408jsd", + "name" : "getProvidedInterface" + }, + "acm001409jsd" : { + "type" : "ControlElement", + "id" : "acm001409jsd", + "name" : "getEJB" + }, + "acm001410jsd" : { + "type" : "ControlElement", + "id" : "acm001410jsd", + "name" : "isLocal" + }, + "acm001411jsd" : { + "type" : "ClassUnit", + "id" : "acm001411jsd", + "name" : "InterfaceDetails", + "compilationUnitId" : "acm001398jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd", "acm001692jsd" ], + "content" : [ "acm001406jsd", "acm001407jsd", "acm001408jsd", "acm001409jsd", "acm001410jsd" ] + }, + "acm001412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001412jsd", + "name" : "Main", + "parentId" : "acm001355jsd", + "content" : [ "acm001421jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001413jsd" : { + "type" : "CodePackage", + "id" : "acm001413jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001414jsd" ] + }, + "acm001414jsd" : { + "type" : "CodePackage", + "id" : "acm001414jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001415jsd" ] + }, + "acm001415jsd" : { + "type" : "CodePackage", + "id" : "acm001415jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001416jsd" ] + }, + "acm001416jsd" : { + "type" : "CodePackage", + "id" : "acm001416jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001417jsd" ] + }, + "acm001417jsd" : { + "type" : "CodePackage", + "id" : "acm001417jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001418jsd" ] + }, + "acm001418jsd" : { + "type" : "CodePackage", + "id" : "acm001418jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001419jsd" ] + }, + "acm001419jsd" : { + "type" : "CodePackage", + "id" : "acm001419jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001412jsd" ] + }, + "acm001420jsd" : { + "type" : "ControlElement", + "id" : "acm001420jsd", + "name" : "main" + }, + "acm001421jsd" : { + "type" : "ClassUnit", + "id" : "acm001421jsd", + "name" : "Main", + "compilationUnitId" : "acm001412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd", "acm001449jsd" ], + "content" : [ "acm001420jsd" ] + }, + "acm001422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001422jsd", + "name" : "ProvidedInterface", + "parentId" : "acm001355jsd", + "content" : [ "acm001436jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001423jsd" : { + "type" : "CodePackage", + "id" : "acm001423jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001424jsd" ] + }, + "acm001424jsd" : { + "type" : "CodePackage", + "id" : "acm001424jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001425jsd" ] + }, + "acm001425jsd" : { + "type" : "CodePackage", + "id" : "acm001425jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001426jsd" ] + }, + "acm001426jsd" : { + "type" : "CodePackage", + "id" : "acm001426jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001427jsd" ] + }, + "acm001427jsd" : { + "type" : "CodePackage", + "id" : "acm001427jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001428jsd" ] + }, + "acm001428jsd" : { + "type" : "CodePackage", + "id" : "acm001428jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001429jsd" ] + }, + "acm001429jsd" : { + "type" : "CodePackage", + "id" : "acm001429jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001422jsd" ] + }, + "acm001430jsd" : { + "type" : "ControlElement", + "id" : "acm001430jsd", + "name" : "ProvidedInterface" + }, + "acm001431jsd" : { + "type" : "ControlElement", + "id" : "acm001431jsd", + "name" : "getFullName" + }, + "acm001432jsd" : { + "type" : "ControlElement", + "id" : "acm001432jsd", + "name" : "getName" + }, + "acm001433jsd" : { + "type" : "ControlElement", + "id" : "acm001433jsd", + "name" : "getProvidingEJBName" + }, + "acm001434jsd" : { + "type" : "ControlElement", + "id" : "acm001434jsd", + "name" : "getProvidingEJB" + }, + "acm001435jsd" : { + "type" : "ControlElement", + "id" : "acm001435jsd", + "name" : "toString" + }, + "acm001436jsd" : { + "type" : "ClassUnit", + "id" : "acm001436jsd", + "name" : "ProvidedInterface", + "compilationUnitId" : "acm001422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd" ], + "content" : [ "acm001430jsd", "acm001431jsd", "acm001432jsd", "acm001433jsd", "acm001434jsd", "acm001435jsd" ] + }, + "acm001437jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001437jsd", + "name" : "RequiredInterface", + "parentId" : "acm001355jsd", + "content" : [ "acm001449jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "config" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001438jsd" : { + "type" : "CodePackage", + "id" : "acm001438jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001439jsd" ] + }, + "acm001439jsd" : { + "type" : "CodePackage", + "id" : "acm001439jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001440jsd" ] + }, + "acm001440jsd" : { + "type" : "CodePackage", + "id" : "acm001440jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001441jsd" ] + }, + "acm001441jsd" : { + "type" : "CodePackage", + "id" : "acm001441jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001442jsd" ] + }, + "acm001442jsd" : { + "type" : "CodePackage", + "id" : "acm001442jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001443jsd" ] + }, + "acm001443jsd" : { + "type" : "CodePackage", + "id" : "acm001443jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001444jsd" ] + }, + "acm001444jsd" : { + "type" : "CodePackage", + "id" : "acm001444jsd", + "name" : "config", + "parentId" : null, + "content" : [ "acm001437jsd" ] + }, + "acm001445jsd" : { + "type" : "ControlElement", + "id" : "acm001445jsd", + "name" : "RequiredInterface" + }, + "acm001446jsd" : { + "type" : "ControlElement", + "id" : "acm001446jsd", + "name" : "getProvidedInterface" + }, + "acm001447jsd" : { + "type" : "ControlElement", + "id" : "acm001447jsd", + "name" : "getName" + }, + "acm001448jsd" : { + "type" : "ControlElement", + "id" : "acm001448jsd", + "name" : "toString" + }, + "acm001449jsd" : { + "type" : "ClassUnit", + "id" : "acm001449jsd", + "name" : "RequiredInterface", + "compilationUnitId" : "acm001437jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001436jsd" ], + "content" : [ "acm001445jsd", "acm001446jsd", "acm001447jsd", "acm001448jsd" ] + }, + "acm001450jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001450jsd", + "name" : "AudioFile", + "parentId" : "acm001457jsd", + "content" : [ "acm001481jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001451jsd" : { + "type" : "CodePackage", + "id" : "acm001451jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001452jsd" ] + }, + "acm001452jsd" : { + "type" : "CodePackage", + "id" : "acm001452jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001453jsd" ] + }, + "acm001453jsd" : { + "type" : "CodePackage", + "id" : "acm001453jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001454jsd" ] + }, + "acm001454jsd" : { + "type" : "CodePackage", + "id" : "acm001454jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001455jsd" ] + }, + "acm001455jsd" : { + "type" : "CodePackage", + "id" : "acm001455jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001456jsd" ] + }, + "acm001456jsd" : { + "type" : "CodePackage", + "id" : "acm001456jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001457jsd" ] + }, + "acm001457jsd" : { + "type" : "CodePackage", + "id" : "acm001457jsd", + "name" : "data", + "parentId" : "acm001343jsd", + "content" : [ "acm001450jsd", "acm001482jsd", "acm001511jsd", "acm001533jsd", "acm001544jsd", "acm001557jsd", "acm001570jsd" ] + }, + "acm001458jsd" : { + "type" : "ControlElement", + "id" : "acm001458jsd", + "name" : "AudioFile" + }, + "acm001459jsd" : { + "type" : "ControlElement", + "id" : "acm001459jsd", + "name" : "AudioFile" + }, + "acm001460jsd" : { + "type" : "ControlElement", + "id" : "acm001460jsd", + "name" : "setInfo" + }, + "acm001461jsd" : { + "type" : "ControlElement", + "id" : "acm001461jsd", + "name" : "getInfo" + }, + "acm001462jsd" : { + "type" : "ControlElement", + "id" : "acm001462jsd", + "name" : "getId" + }, + "acm001463jsd" : { + "type" : "ControlElement", + "id" : "acm001463jsd", + "name" : "setId" + }, + "acm001464jsd" : { + "type" : "ControlElement", + "id" : "acm001464jsd", + "name" : "getAlbum" + }, + "acm001465jsd" : { + "type" : "ControlElement", + "id" : "acm001465jsd", + "name" : "setAlbum" + }, + "acm001466jsd" : { + "type" : "ControlElement", + "id" : "acm001466jsd", + "name" : "getArtist" + }, + "acm001467jsd" : { + "type" : "ControlElement", + "id" : "acm001467jsd", + "name" : "setArtist" + }, + "acm001468jsd" : { + "type" : "ControlElement", + "id" : "acm001468jsd", + "name" : "getBitrate" + }, + "acm001469jsd" : { + "type" : "ControlElement", + "id" : "acm001469jsd", + "name" : "setBitrate" + }, + "acm001470jsd" : { + "type" : "ControlElement", + "id" : "acm001470jsd", + "name" : "getFilename" + }, + "acm001471jsd" : { + "type" : "ControlElement", + "id" : "acm001471jsd", + "name" : "getGenre" + }, + "acm001472jsd" : { + "type" : "ControlElement", + "id" : "acm001472jsd", + "name" : "setGenre" + }, + "acm001473jsd" : { + "type" : "ControlElement", + "id" : "acm001473jsd", + "name" : "getReleaseyear" + }, + "acm001474jsd" : { + "type" : "ControlElement", + "id" : "acm001474jsd", + "name" : "setReleaseyear" + }, + "acm001475jsd" : { + "type" : "ControlElement", + "id" : "acm001475jsd", + "name" : "getTitle" + }, + "acm001476jsd" : { + "type" : "ControlElement", + "id" : "acm001476jsd", + "name" : "setTitle" + }, + "acm001477jsd" : { + "type" : "ControlElement", + "id" : "acm001477jsd", + "name" : "getUploader" + }, + "acm001478jsd" : { + "type" : "ControlElement", + "id" : "acm001478jsd", + "name" : "setUploader" + }, + "acm001479jsd" : { + "type" : "ControlElement", + "id" : "acm001479jsd", + "name" : "setContent" + }, + "acm001480jsd" : { + "type" : "ControlElement", + "id" : "acm001480jsd", + "name" : "getContent" + }, + "acm001481jsd" : { + "type" : "ClassUnit", + "id" : "acm001481jsd", + "name" : "AudioFile", + "compilationUnitId" : "acm001450jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001510jsd", "acm001543jsd" ], + "content" : [ "acm001458jsd", "acm001459jsd", "acm001460jsd", "acm001461jsd", "acm001462jsd", "acm001463jsd", "acm001464jsd", "acm001465jsd", "acm001466jsd", "acm001467jsd", "acm001468jsd", "acm001469jsd", "acm001470jsd", "acm001471jsd", "acm001472jsd", "acm001473jsd", "acm001474jsd", "acm001475jsd", "acm001476jsd", "acm001477jsd", "acm001478jsd", "acm001479jsd", "acm001480jsd" ] + }, + "acm001482jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001482jsd", + "name" : "AudioFileInfo", + "parentId" : "acm001457jsd", + "content" : [ "acm001510jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001483jsd" : { + "type" : "CodePackage", + "id" : "acm001483jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001484jsd" ] + }, + "acm001484jsd" : { + "type" : "CodePackage", + "id" : "acm001484jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001485jsd" ] + }, + "acm001485jsd" : { + "type" : "CodePackage", + "id" : "acm001485jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001486jsd" ] + }, + "acm001486jsd" : { + "type" : "CodePackage", + "id" : "acm001486jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001487jsd" ] + }, + "acm001487jsd" : { + "type" : "CodePackage", + "id" : "acm001487jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001488jsd" ] + }, + "acm001488jsd" : { + "type" : "CodePackage", + "id" : "acm001488jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001489jsd" ] + }, + "acm001489jsd" : { + "type" : "CodePackage", + "id" : "acm001489jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001482jsd" ] + }, + "acm001490jsd" : { + "type" : "ControlElement", + "id" : "acm001490jsd", + "name" : "AudioFileInfo" + }, + "acm001491jsd" : { + "type" : "ControlElement", + "id" : "acm001491jsd", + "name" : "AudioFileInfo" + }, + "acm001492jsd" : { + "type" : "ControlElement", + "id" : "acm001492jsd", + "name" : "getId" + }, + "acm001493jsd" : { + "type" : "ControlElement", + "id" : "acm001493jsd", + "name" : "setId" + }, + "acm001494jsd" : { + "type" : "ControlElement", + "id" : "acm001494jsd", + "name" : "getAlbum" + }, + "acm001495jsd" : { + "type" : "ControlElement", + "id" : "acm001495jsd", + "name" : "setAlbum" + }, + "acm001496jsd" : { + "type" : "ControlElement", + "id" : "acm001496jsd", + "name" : "getArtist" + }, + "acm001497jsd" : { + "type" : "ControlElement", + "id" : "acm001497jsd", + "name" : "setArtist" + }, + "acm001498jsd" : { + "type" : "ControlElement", + "id" : "acm001498jsd", + "name" : "getBitrate" + }, + "acm001499jsd" : { + "type" : "ControlElement", + "id" : "acm001499jsd", + "name" : "setBitrate" + }, + "acm001500jsd" : { + "type" : "ControlElement", + "id" : "acm001500jsd", + "name" : "getFilename" + }, + "acm001501jsd" : { + "type" : "ControlElement", + "id" : "acm001501jsd", + "name" : "getGenre" + }, + "acm001502jsd" : { + "type" : "ControlElement", + "id" : "acm001502jsd", + "name" : "setGenre" + }, + "acm001503jsd" : { + "type" : "ControlElement", + "id" : "acm001503jsd", + "name" : "getReleaseyear" + }, + "acm001504jsd" : { + "type" : "ControlElement", + "id" : "acm001504jsd", + "name" : "setReleaseyear" + }, + "acm001505jsd" : { + "type" : "ControlElement", + "id" : "acm001505jsd", + "name" : "getTitle" + }, + "acm001506jsd" : { + "type" : "ControlElement", + "id" : "acm001506jsd", + "name" : "setTitle" + }, + "acm001507jsd" : { + "type" : "ControlElement", + "id" : "acm001507jsd", + "name" : "getUploader" + }, + "acm001508jsd" : { + "type" : "ControlElement", + "id" : "acm001508jsd", + "name" : "setUploader" + }, + "acm001509jsd" : { + "type" : "ControlElement", + "id" : "acm001509jsd", + "name" : "toString" + }, + "acm001510jsd" : { + "type" : "ClassUnit", + "id" : "acm001510jsd", + "name" : "AudioFileInfo", + "compilationUnitId" : "acm001482jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001490jsd", "acm001491jsd", "acm001492jsd", "acm001493jsd", "acm001494jsd", "acm001495jsd", "acm001496jsd", "acm001497jsd", "acm001498jsd", "acm001499jsd", "acm001500jsd", "acm001501jsd", "acm001502jsd", "acm001503jsd", "acm001504jsd", "acm001505jsd", "acm001506jsd", "acm001507jsd", "acm001508jsd", "acm001509jsd" ] + }, + "acm001511jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001511jsd", + "name" : "CurrentUser", + "parentId" : "acm001457jsd", + "content" : [ "acm001532jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001512jsd" : { + "type" : "CodePackage", + "id" : "acm001512jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001513jsd" ] + }, + "acm001513jsd" : { + "type" : "CodePackage", + "id" : "acm001513jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001514jsd" ] + }, + "acm001514jsd" : { + "type" : "CodePackage", + "id" : "acm001514jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001515jsd" ] + }, + "acm001515jsd" : { + "type" : "CodePackage", + "id" : "acm001515jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001516jsd" ] + }, + "acm001516jsd" : { + "type" : "CodePackage", + "id" : "acm001516jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001517jsd" ] + }, + "acm001517jsd" : { + "type" : "CodePackage", + "id" : "acm001517jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001518jsd" ] + }, + "acm001518jsd" : { + "type" : "CodePackage", + "id" : "acm001518jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001511jsd" ] + }, + "acm001519jsd" : { + "type" : "ControlElement", + "id" : "acm001519jsd", + "name" : "CurrentUser" + }, + "acm001520jsd" : { + "type" : "ControlElement", + "id" : "acm001520jsd", + "name" : "CurrentUser" + }, + "acm001521jsd" : { + "type" : "ControlElement", + "id" : "acm001521jsd", + "name" : "getId" + }, + "acm001522jsd" : { + "type" : "ControlElement", + "id" : "acm001522jsd", + "name" : "setId" + }, + "acm001523jsd" : { + "type" : "ControlElement", + "id" : "acm001523jsd", + "name" : "getFirstname" + }, + "acm001524jsd" : { + "type" : "ControlElement", + "id" : "acm001524jsd", + "name" : "setFirstname" + }, + "acm001525jsd" : { + "type" : "ControlElement", + "id" : "acm001525jsd", + "name" : "getLastname" + }, + "acm001526jsd" : { + "type" : "ControlElement", + "id" : "acm001526jsd", + "name" : "setLastname" + }, + "acm001527jsd" : { + "type" : "ControlElement", + "id" : "acm001527jsd", + "name" : "getEmail" + }, + "acm001528jsd" : { + "type" : "ControlElement", + "id" : "acm001528jsd", + "name" : "setEmail" + }, + "acm001529jsd" : { + "type" : "ControlElement", + "id" : "acm001529jsd", + "name" : "getPasswordHash" + }, + "acm001530jsd" : { + "type" : "ControlElement", + "id" : "acm001530jsd", + "name" : "setPasswordHash" + }, + "acm001531jsd" : { + "type" : "ControlElement", + "id" : "acm001531jsd", + "name" : "toString" + }, + "acm001532jsd" : { + "type" : "ClassUnit", + "id" : "acm001532jsd", + "name" : "CurrentUser", + "compilationUnitId" : "acm001511jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001519jsd", "acm001520jsd", "acm001521jsd", "acm001522jsd", "acm001523jsd", "acm001524jsd", "acm001525jsd", "acm001526jsd", "acm001527jsd", "acm001528jsd", "acm001529jsd", "acm001530jsd", "acm001531jsd" ] + }, + "acm001533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001533jsd", + "name" : "FileContent", + "parentId" : "acm001457jsd", + "content" : [ "acm001543jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001534jsd" : { + "type" : "CodePackage", + "id" : "acm001534jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001535jsd" ] + }, + "acm001535jsd" : { + "type" : "CodePackage", + "id" : "acm001535jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001536jsd" ] + }, + "acm001536jsd" : { + "type" : "CodePackage", + "id" : "acm001536jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001537jsd" ] + }, + "acm001537jsd" : { + "type" : "CodePackage", + "id" : "acm001537jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001538jsd" ] + }, + "acm001538jsd" : { + "type" : "CodePackage", + "id" : "acm001538jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001539jsd" ] + }, + "acm001539jsd" : { + "type" : "CodePackage", + "id" : "acm001539jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001540jsd" ] + }, + "acm001540jsd" : { + "type" : "CodePackage", + "id" : "acm001540jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001533jsd" ] + }, + "acm001541jsd" : { + "type" : "ControlElement", + "id" : "acm001541jsd", + "name" : "isLocal" + }, + "acm001542jsd" : { + "type" : "ControlElement", + "id" : "acm001542jsd", + "name" : "convertIfNeeded" + }, + "acm001543jsd" : { + "type" : "ClassUnit", + "id" : "acm001543jsd", + "name" : "FileContent", + "compilationUnitId" : "acm001533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001543jsd", "acm001556jsd", "acm001569jsd" ], + "content" : [ "acm001541jsd", "acm001542jsd" ] + }, + "acm001544jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001544jsd", + "name" : "FileContentLocal", + "parentId" : "acm001457jsd", + "content" : [ "acm001556jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001545jsd" : { + "type" : "CodePackage", + "id" : "acm001545jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001546jsd" ] + }, + "acm001546jsd" : { + "type" : "CodePackage", + "id" : "acm001546jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001547jsd" ] + }, + "acm001547jsd" : { + "type" : "CodePackage", + "id" : "acm001547jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001548jsd" ] + }, + "acm001548jsd" : { + "type" : "CodePackage", + "id" : "acm001548jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001549jsd" ] + }, + "acm001549jsd" : { + "type" : "CodePackage", + "id" : "acm001549jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001550jsd" ] + }, + "acm001550jsd" : { + "type" : "CodePackage", + "id" : "acm001550jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001551jsd" ] + }, + "acm001551jsd" : { + "type" : "CodePackage", + "id" : "acm001551jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001544jsd" ] + }, + "acm001552jsd" : { + "type" : "ControlElement", + "id" : "acm001552jsd", + "name" : "FileContentLocal" + }, + "acm001553jsd" : { + "type" : "ControlElement", + "id" : "acm001553jsd", + "name" : "getPath" + }, + "acm001554jsd" : { + "type" : "ControlElement", + "id" : "acm001554jsd", + "name" : "setPath" + }, + "acm001555jsd" : { + "type" : "ControlElement", + "id" : "acm001555jsd", + "name" : "isLocal" + }, + "acm001556jsd" : { + "type" : "ClassUnit", + "id" : "acm001556jsd", + "name" : "FileContentLocal", + "compilationUnitId" : "acm001544jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001543jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001552jsd", "acm001553jsd", "acm001554jsd", "acm001555jsd" ] + }, + "acm001557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001557jsd", + "name" : "FileContentRemote", + "parentId" : "acm001457jsd", + "content" : [ "acm001569jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001558jsd" : { + "type" : "CodePackage", + "id" : "acm001558jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001559jsd" ] + }, + "acm001559jsd" : { + "type" : "CodePackage", + "id" : "acm001559jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001560jsd" ] + }, + "acm001560jsd" : { + "type" : "CodePackage", + "id" : "acm001560jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001561jsd" ] + }, + "acm001561jsd" : { + "type" : "CodePackage", + "id" : "acm001561jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001562jsd" ] + }, + "acm001562jsd" : { + "type" : "CodePackage", + "id" : "acm001562jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001563jsd" ] + }, + "acm001563jsd" : { + "type" : "CodePackage", + "id" : "acm001563jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001564jsd" ] + }, + "acm001564jsd" : { + "type" : "CodePackage", + "id" : "acm001564jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001557jsd" ] + }, + "acm001565jsd" : { + "type" : "ControlElement", + "id" : "acm001565jsd", + "name" : "FileContentRemote" + }, + "acm001566jsd" : { + "type" : "ControlElement", + "id" : "acm001566jsd", + "name" : "getBytes" + }, + "acm001567jsd" : { + "type" : "ControlElement", + "id" : "acm001567jsd", + "name" : "setBytes" + }, + "acm001568jsd" : { + "type" : "ControlElement", + "id" : "acm001568jsd", + "name" : "isLocal" + }, + "acm001569jsd" : { + "type" : "ClassUnit", + "id" : "acm001569jsd", + "name" : "FileContentRemote", + "compilationUnitId" : "acm001557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001543jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001565jsd", "acm001566jsd", "acm001567jsd", "acm001568jsd" ] + }, + "acm001570jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001570jsd", + "name" : "UserRegData", + "parentId" : "acm001457jsd", + "content" : [ "acm001588jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "data" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001571jsd" : { + "type" : "CodePackage", + "id" : "acm001571jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001572jsd" ] + }, + "acm001572jsd" : { + "type" : "CodePackage", + "id" : "acm001572jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001573jsd" ] + }, + "acm001573jsd" : { + "type" : "CodePackage", + "id" : "acm001573jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001574jsd" ] + }, + "acm001574jsd" : { + "type" : "CodePackage", + "id" : "acm001574jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001575jsd" ] + }, + "acm001575jsd" : { + "type" : "CodePackage", + "id" : "acm001575jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001576jsd" ] + }, + "acm001576jsd" : { + "type" : "CodePackage", + "id" : "acm001576jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001577jsd" ] + }, + "acm001577jsd" : { + "type" : "CodePackage", + "id" : "acm001577jsd", + "name" : "data", + "parentId" : null, + "content" : [ "acm001570jsd" ] + }, + "acm001578jsd" : { + "type" : "ControlElement", + "id" : "acm001578jsd", + "name" : "UserRegData" + }, + "acm001579jsd" : { + "type" : "ControlElement", + "id" : "acm001579jsd", + "name" : "getFirstname" + }, + "acm001580jsd" : { + "type" : "ControlElement", + "id" : "acm001580jsd", + "name" : "setFirstname" + }, + "acm001581jsd" : { + "type" : "ControlElement", + "id" : "acm001581jsd", + "name" : "getLastname" + }, + "acm001582jsd" : { + "type" : "ControlElement", + "id" : "acm001582jsd", + "name" : "setLastname" + }, + "acm001583jsd" : { + "type" : "ControlElement", + "id" : "acm001583jsd", + "name" : "getEmail" + }, + "acm001584jsd" : { + "type" : "ControlElement", + "id" : "acm001584jsd", + "name" : "setEmail" + }, + "acm001585jsd" : { + "type" : "ControlElement", + "id" : "acm001585jsd", + "name" : "getPassword" + }, + "acm001586jsd" : { + "type" : "ControlElement", + "id" : "acm001586jsd", + "name" : "setPassword" + }, + "acm001587jsd" : { + "type" : "ControlElement", + "id" : "acm001587jsd", + "name" : "toString" + }, + "acm001588jsd" : { + "type" : "ClassUnit", + "id" : "acm001588jsd", + "name" : "UserRegData", + "compilationUnitId" : "acm001570jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001578jsd", "acm001579jsd", "acm001580jsd", "acm001581jsd", "acm001582jsd", "acm001583jsd", "acm001584jsd", "acm001585jsd", "acm001586jsd", "acm001587jsd" ] + }, + "acm001589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001589jsd", + "name" : "AppException", + "parentId" : "acm001596jsd", + "content" : [ "acm001600jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001590jsd" : { + "type" : "CodePackage", + "id" : "acm001590jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001591jsd" ] + }, + "acm001591jsd" : { + "type" : "CodePackage", + "id" : "acm001591jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001592jsd" ] + }, + "acm001592jsd" : { + "type" : "CodePackage", + "id" : "acm001592jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001593jsd" ] + }, + "acm001593jsd" : { + "type" : "CodePackage", + "id" : "acm001593jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001594jsd" ] + }, + "acm001594jsd" : { + "type" : "CodePackage", + "id" : "acm001594jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001595jsd" ] + }, + "acm001595jsd" : { + "type" : "CodePackage", + "id" : "acm001595jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001596jsd" ] + }, + "acm001596jsd" : { + "type" : "CodePackage", + "id" : "acm001596jsd", + "name" : "exceptions", + "parentId" : "acm001343jsd", + "content" : [ "acm001589jsd", "acm001601jsd", "acm001611jsd", "acm001621jsd", "acm001633jsd", "acm001643jsd", "acm001653jsd", "acm001664jsd", "acm001674jsd" ] + }, + "acm001597jsd" : { + "type" : "ControlElement", + "id" : "acm001597jsd", + "name" : "AppException" + }, + "acm001598jsd" : { + "type" : "ControlElement", + "id" : "acm001598jsd", + "name" : "AppException" + }, + "acm001599jsd" : { + "type" : "ControlElement", + "id" : "acm001599jsd", + "name" : "AppException" + }, + "acm001600jsd" : { + "type" : "ClassUnit", + "id" : "acm001600jsd", + "name" : "AppException", + "compilationUnitId" : "acm001589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001597jsd", "acm001598jsd", "acm001599jsd" ] + }, + "acm001601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001601jsd", + "name" : "BadLoginDataException", + "parentId" : "acm001596jsd", + "content" : [ "acm001610jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001602jsd" : { + "type" : "CodePackage", + "id" : "acm001602jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001603jsd" ] + }, + "acm001603jsd" : { + "type" : "CodePackage", + "id" : "acm001603jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001604jsd" ] + }, + "acm001604jsd" : { + "type" : "CodePackage", + "id" : "acm001604jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001605jsd" ] + }, + "acm001605jsd" : { + "type" : "CodePackage", + "id" : "acm001605jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001606jsd" ] + }, + "acm001606jsd" : { + "type" : "CodePackage", + "id" : "acm001606jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001607jsd" ] + }, + "acm001607jsd" : { + "type" : "CodePackage", + "id" : "acm001607jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001608jsd" ] + }, + "acm001608jsd" : { + "type" : "CodePackage", + "id" : "acm001608jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001601jsd" ] + }, + "acm001609jsd" : { + "type" : "ControlElement", + "id" : "acm001609jsd", + "name" : "BadLoginDataException" + }, + "acm001610jsd" : { + "type" : "ClassUnit", + "id" : "acm001610jsd", + "name" : "BadLoginDataException", + "compilationUnitId" : "acm001601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001609jsd" ] + }, + "acm001611jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001611jsd", + "name" : "ConversionException", + "parentId" : "acm001596jsd", + "content" : [ "acm001620jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001612jsd" : { + "type" : "CodePackage", + "id" : "acm001612jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001613jsd" ] + }, + "acm001613jsd" : { + "type" : "CodePackage", + "id" : "acm001613jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001614jsd" ] + }, + "acm001614jsd" : { + "type" : "CodePackage", + "id" : "acm001614jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001615jsd" ] + }, + "acm001615jsd" : { + "type" : "CodePackage", + "id" : "acm001615jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001616jsd" ] + }, + "acm001616jsd" : { + "type" : "CodePackage", + "id" : "acm001616jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001617jsd" ] + }, + "acm001617jsd" : { + "type" : "CodePackage", + "id" : "acm001617jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001618jsd" ] + }, + "acm001618jsd" : { + "type" : "CodePackage", + "id" : "acm001618jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001611jsd" ] + }, + "acm001619jsd" : { + "type" : "ControlElement", + "id" : "acm001619jsd", + "name" : "ConversionException" + }, + "acm001620jsd" : { + "type" : "ClassUnit", + "id" : "acm001620jsd", + "name" : "ConversionException", + "compilationUnitId" : "acm001611jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001619jsd" ] + }, + "acm001621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001621jsd", + "name" : "DbException", + "parentId" : "acm001596jsd", + "content" : [ "acm001632jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001622jsd" : { + "type" : "CodePackage", + "id" : "acm001622jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001623jsd" ] + }, + "acm001623jsd" : { + "type" : "CodePackage", + "id" : "acm001623jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001624jsd" ] + }, + "acm001624jsd" : { + "type" : "CodePackage", + "id" : "acm001624jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001625jsd" ] + }, + "acm001625jsd" : { + "type" : "CodePackage", + "id" : "acm001625jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001626jsd" ] + }, + "acm001626jsd" : { + "type" : "CodePackage", + "id" : "acm001626jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001627jsd" ] + }, + "acm001627jsd" : { + "type" : "CodePackage", + "id" : "acm001627jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001628jsd" ] + }, + "acm001628jsd" : { + "type" : "CodePackage", + "id" : "acm001628jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001621jsd" ] + }, + "acm001629jsd" : { + "type" : "ControlElement", + "id" : "acm001629jsd", + "name" : "DbException" + }, + "acm001630jsd" : { + "type" : "ControlElement", + "id" : "acm001630jsd", + "name" : "DbException" + }, + "acm001631jsd" : { + "type" : "ControlElement", + "id" : "acm001631jsd", + "name" : "DbException" + }, + "acm001632jsd" : { + "type" : "ClassUnit", + "id" : "acm001632jsd", + "name" : "DbException", + "compilationUnitId" : "acm001621jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001629jsd", "acm001630jsd", "acm001631jsd" ] + }, + "acm001633jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001633jsd", + "name" : "FailedDownloadException", + "parentId" : "acm001596jsd", + "content" : [ "acm001642jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001634jsd" : { + "type" : "CodePackage", + "id" : "acm001634jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001635jsd" ] + }, + "acm001635jsd" : { + "type" : "CodePackage", + "id" : "acm001635jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001636jsd" ] + }, + "acm001636jsd" : { + "type" : "CodePackage", + "id" : "acm001636jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001637jsd" ] + }, + "acm001637jsd" : { + "type" : "CodePackage", + "id" : "acm001637jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001638jsd" ] + }, + "acm001638jsd" : { + "type" : "CodePackage", + "id" : "acm001638jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001639jsd" ] + }, + "acm001639jsd" : { + "type" : "CodePackage", + "id" : "acm001639jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001640jsd" ] + }, + "acm001640jsd" : { + "type" : "CodePackage", + "id" : "acm001640jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001633jsd" ] + }, + "acm001641jsd" : { + "type" : "ControlElement", + "id" : "acm001641jsd", + "name" : "FailedDownloadException" + }, + "acm001642jsd" : { + "type" : "ClassUnit", + "id" : "acm001642jsd", + "name" : "FailedDownloadException", + "compilationUnitId" : "acm001633jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001641jsd" ] + }, + "acm001643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001643jsd", + "name" : "FailedUploadException", + "parentId" : "acm001596jsd", + "content" : [ "acm001652jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001644jsd" : { + "type" : "CodePackage", + "id" : "acm001644jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001645jsd" ] + }, + "acm001645jsd" : { + "type" : "CodePackage", + "id" : "acm001645jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001646jsd" ] + }, + "acm001646jsd" : { + "type" : "CodePackage", + "id" : "acm001646jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001647jsd" ] + }, + "acm001647jsd" : { + "type" : "CodePackage", + "id" : "acm001647jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001648jsd" ] + }, + "acm001648jsd" : { + "type" : "CodePackage", + "id" : "acm001648jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001649jsd" ] + }, + "acm001649jsd" : { + "type" : "CodePackage", + "id" : "acm001649jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001650jsd" ] + }, + "acm001650jsd" : { + "type" : "CodePackage", + "id" : "acm001650jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001643jsd" ] + }, + "acm001651jsd" : { + "type" : "ControlElement", + "id" : "acm001651jsd", + "name" : "FailedUploadException" + }, + "acm001652jsd" : { + "type" : "ClassUnit", + "id" : "acm001652jsd", + "name" : "FailedUploadException", + "compilationUnitId" : "acm001643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001651jsd" ] + }, + "acm001653jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001653jsd", + "name" : "PropertiesException", + "parentId" : "acm001596jsd", + "content" : [ "acm001663jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001654jsd" : { + "type" : "CodePackage", + "id" : "acm001654jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001655jsd" ] + }, + "acm001655jsd" : { + "type" : "CodePackage", + "id" : "acm001655jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001656jsd" ] + }, + "acm001656jsd" : { + "type" : "CodePackage", + "id" : "acm001656jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001657jsd" ] + }, + "acm001657jsd" : { + "type" : "CodePackage", + "id" : "acm001657jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001658jsd" ] + }, + "acm001658jsd" : { + "type" : "CodePackage", + "id" : "acm001658jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001659jsd" ] + }, + "acm001659jsd" : { + "type" : "CodePackage", + "id" : "acm001659jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001660jsd" ] + }, + "acm001660jsd" : { + "type" : "CodePackage", + "id" : "acm001660jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001653jsd" ] + }, + "acm001661jsd" : { + "type" : "ControlElement", + "id" : "acm001661jsd", + "name" : "PropertiesException" + }, + "acm001662jsd" : { + "type" : "ControlElement", + "id" : "acm001662jsd", + "name" : "PropertiesException" + }, + "acm001663jsd" : { + "type" : "ClassUnit", + "id" : "acm001663jsd", + "name" : "PropertiesException", + "compilationUnitId" : "acm001653jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001661jsd", "acm001662jsd" ] + }, + "acm001664jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001664jsd", + "name" : "UnknownServerException", + "parentId" : "acm001596jsd", + "content" : [ "acm001673jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001665jsd" : { + "type" : "CodePackage", + "id" : "acm001665jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001666jsd" ] + }, + "acm001666jsd" : { + "type" : "CodePackage", + "id" : "acm001666jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001667jsd" ] + }, + "acm001667jsd" : { + "type" : "CodePackage", + "id" : "acm001667jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001668jsd" ] + }, + "acm001668jsd" : { + "type" : "CodePackage", + "id" : "acm001668jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001669jsd" ] + }, + "acm001669jsd" : { + "type" : "CodePackage", + "id" : "acm001669jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001670jsd" ] + }, + "acm001670jsd" : { + "type" : "CodePackage", + "id" : "acm001670jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001671jsd" ] + }, + "acm001671jsd" : { + "type" : "CodePackage", + "id" : "acm001671jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001664jsd" ] + }, + "acm001672jsd" : { + "type" : "ControlElement", + "id" : "acm001672jsd", + "name" : "UnknownServerException" + }, + "acm001673jsd" : { + "type" : "ClassUnit", + "id" : "acm001673jsd", + "name" : "UnknownServerException", + "compilationUnitId" : "acm001664jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001600jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001672jsd" ] + }, + "acm001674jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001674jsd", + "name" : "UserAlreadyExistsException", + "parentId" : "acm001596jsd", + "content" : [ "acm001683jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "exceptions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001675jsd" : { + "type" : "CodePackage", + "id" : "acm001675jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001676jsd" ] + }, + "acm001676jsd" : { + "type" : "CodePackage", + "id" : "acm001676jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001677jsd" ] + }, + "acm001677jsd" : { + "type" : "CodePackage", + "id" : "acm001677jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001678jsd" ] + }, + "acm001678jsd" : { + "type" : "CodePackage", + "id" : "acm001678jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001679jsd" ] + }, + "acm001679jsd" : { + "type" : "CodePackage", + "id" : "acm001679jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001680jsd" ] + }, + "acm001680jsd" : { + "type" : "CodePackage", + "id" : "acm001680jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001681jsd" ] + }, + "acm001681jsd" : { + "type" : "CodePackage", + "id" : "acm001681jsd", + "name" : "exceptions", + "parentId" : null, + "content" : [ "acm001674jsd" ] + }, + "acm001682jsd" : { + "type" : "ControlElement", + "id" : "acm001682jsd", + "name" : "UserAlreadyExistsException" + }, + "acm001683jsd" : { + "type" : "ClassUnit", + "id" : "acm001683jsd", + "name" : "UserAlreadyExistsException", + "compilationUnitId" : "acm001674jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001632jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001682jsd" ] + }, + "acm001684jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001684jsd", + "name" : "IBusinessInterface", + "parentId" : "acm001691jsd", + "content" : [ "acm001692jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001685jsd" : { + "type" : "CodePackage", + "id" : "acm001685jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001686jsd" ] + }, + "acm001686jsd" : { + "type" : "CodePackage", + "id" : "acm001686jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001687jsd" ] + }, + "acm001687jsd" : { + "type" : "CodePackage", + "id" : "acm001687jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001688jsd" ] + }, + "acm001688jsd" : { + "type" : "CodePackage", + "id" : "acm001688jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001689jsd" ] + }, + "acm001689jsd" : { + "type" : "CodePackage", + "id" : "acm001689jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001690jsd" ] + }, + "acm001690jsd" : { + "type" : "CodePackage", + "id" : "acm001690jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001691jsd" ] + }, + "acm001691jsd" : { + "type" : "CodePackage", + "id" : "acm001691jsd", + "name" : "interfaces", + "parentId" : "acm001343jsd", + "content" : [ "acm001684jsd", "acm001693jsd", "acm001703jsd", "acm001712jsd", "acm001721jsd", "acm001731jsd", "acm001740jsd", "acm001749jsd", "acm001758jsd", "acm001767jsd", "acm001776jsd", "acm001785jsd", "acm001794jsd", "acm001803jsd", "acm001812jsd", "acm001821jsd", "acm001830jsd", "acm001839jsd", "acm001848jsd", "acm001857jsd", "acm001866jsd", "acm001881jsd", "acm001890jsd", "acm001899jsd", "acm001910jsd", "acm001919jsd", "acm001930jsd", "acm001939jsd", "acm001948jsd", "acm001957jsd", "acm001969jsd", "acm001978jsd", "acm001987jsd", "acm001997jsd", "acm002006jsd", "acm002015jsd", "acm002027jsd", "acm002036jsd", "acm002045jsd", "acm002056jsd", "acm002065jsd" ] + }, + "acm001692jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001692jsd", + "name" : "IBusinessInterface", + "compilationUnitId" : "acm001684jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001693jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001693jsd", + "name" : "ICacheMaintenance", + "parentId" : "acm001691jsd", + "content" : [ "acm001702jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001694jsd" : { + "type" : "CodePackage", + "id" : "acm001694jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001695jsd" ] + }, + "acm001695jsd" : { + "type" : "CodePackage", + "id" : "acm001695jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001696jsd" ] + }, + "acm001696jsd" : { + "type" : "CodePackage", + "id" : "acm001696jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001697jsd" ] + }, + "acm001697jsd" : { + "type" : "CodePackage", + "id" : "acm001697jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001698jsd" ] + }, + "acm001698jsd" : { + "type" : "CodePackage", + "id" : "acm001698jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001699jsd" ] + }, + "acm001699jsd" : { + "type" : "CodePackage", + "id" : "acm001699jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001700jsd" ] + }, + "acm001700jsd" : { + "type" : "CodePackage", + "id" : "acm001700jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001693jsd" ] + }, + "acm001701jsd" : { + "type" : "ControlElement", + "id" : "acm001701jsd", + "name" : "clear" + }, + "acm001702jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001702jsd", + "name" : "ICacheMaintenance", + "compilationUnitId" : "acm001693jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001701jsd" ] + }, + "acm001703jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001703jsd", + "name" : "ICacheMaintenanceLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001711jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001704jsd" : { + "type" : "CodePackage", + "id" : "acm001704jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001705jsd" ] + }, + "acm001705jsd" : { + "type" : "CodePackage", + "id" : "acm001705jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001706jsd" ] + }, + "acm001706jsd" : { + "type" : "CodePackage", + "id" : "acm001706jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001707jsd" ] + }, + "acm001707jsd" : { + "type" : "CodePackage", + "id" : "acm001707jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001708jsd" ] + }, + "acm001708jsd" : { + "type" : "CodePackage", + "id" : "acm001708jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001709jsd" ] + }, + "acm001709jsd" : { + "type" : "CodePackage", + "id" : "acm001709jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001710jsd" ] + }, + "acm001710jsd" : { + "type" : "CodePackage", + "id" : "acm001710jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001703jsd" ] + }, + "acm001711jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001711jsd", + "name" : "ICacheMaintenanceLocal", + "compilationUnitId" : "acm001703jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001702jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001712jsd", + "name" : "ICacheMaintenanceRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001720jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001713jsd" : { + "type" : "CodePackage", + "id" : "acm001713jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001714jsd" ] + }, + "acm001714jsd" : { + "type" : "CodePackage", + "id" : "acm001714jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001715jsd" ] + }, + "acm001715jsd" : { + "type" : "CodePackage", + "id" : "acm001715jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001716jsd" ] + }, + "acm001716jsd" : { + "type" : "CodePackage", + "id" : "acm001716jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001717jsd" ] + }, + "acm001717jsd" : { + "type" : "CodePackage", + "id" : "acm001717jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001718jsd" ] + }, + "acm001718jsd" : { + "type" : "CodePackage", + "id" : "acm001718jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001719jsd" ] + }, + "acm001719jsd" : { + "type" : "CodePackage", + "id" : "acm001719jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001712jsd" ] + }, + "acm001720jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001720jsd", + "name" : "ICacheMaintenanceRemote", + "compilationUnitId" : "acm001712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001702jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001721jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001721jsd", + "name" : "IDownload", + "parentId" : "acm001691jsd", + "content" : [ "acm001730jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001722jsd" : { + "type" : "CodePackage", + "id" : "acm001722jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001723jsd" ] + }, + "acm001723jsd" : { + "type" : "CodePackage", + "id" : "acm001723jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001724jsd" ] + }, + "acm001724jsd" : { + "type" : "CodePackage", + "id" : "acm001724jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001725jsd" ] + }, + "acm001725jsd" : { + "type" : "CodePackage", + "id" : "acm001725jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001726jsd" ] + }, + "acm001726jsd" : { + "type" : "CodePackage", + "id" : "acm001726jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001727jsd" ] + }, + "acm001727jsd" : { + "type" : "CodePackage", + "id" : "acm001727jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001728jsd" ] + }, + "acm001728jsd" : { + "type" : "CodePackage", + "id" : "acm001728jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001721jsd" ] + }, + "acm001729jsd" : { + "type" : "ControlElement", + "id" : "acm001729jsd", + "name" : "download" + }, + "acm001730jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001730jsd", + "name" : "IDownload", + "compilationUnitId" : "acm001721jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001642jsd" ], + "content" : [ "acm001729jsd" ] + }, + "acm001731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001731jsd", + "name" : "IDownloadAudioWatermarking", + "parentId" : "acm001691jsd", + "content" : [ "acm001739jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001732jsd" : { + "type" : "CodePackage", + "id" : "acm001732jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001733jsd" ] + }, + "acm001733jsd" : { + "type" : "CodePackage", + "id" : "acm001733jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001734jsd" ] + }, + "acm001734jsd" : { + "type" : "CodePackage", + "id" : "acm001734jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001735jsd" ] + }, + "acm001735jsd" : { + "type" : "CodePackage", + "id" : "acm001735jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001736jsd" ] + }, + "acm001736jsd" : { + "type" : "CodePackage", + "id" : "acm001736jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001737jsd" ] + }, + "acm001737jsd" : { + "type" : "CodePackage", + "id" : "acm001737jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001738jsd" ] + }, + "acm001738jsd" : { + "type" : "CodePackage", + "id" : "acm001738jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001731jsd" ] + }, + "acm001739jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001739jsd", + "name" : "IDownloadAudioWatermarking", + "compilationUnitId" : "acm001731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001730jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001740jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001740jsd", + "name" : "IDownloadAudioWatermarkingLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001748jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001741jsd" : { + "type" : "CodePackage", + "id" : "acm001741jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001742jsd" ] + }, + "acm001742jsd" : { + "type" : "CodePackage", + "id" : "acm001742jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001743jsd" ] + }, + "acm001743jsd" : { + "type" : "CodePackage", + "id" : "acm001743jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001744jsd" ] + }, + "acm001744jsd" : { + "type" : "CodePackage", + "id" : "acm001744jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001745jsd" ] + }, + "acm001745jsd" : { + "type" : "CodePackage", + "id" : "acm001745jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001746jsd" ] + }, + "acm001746jsd" : { + "type" : "CodePackage", + "id" : "acm001746jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001747jsd" ] + }, + "acm001747jsd" : { + "type" : "CodePackage", + "id" : "acm001747jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001740jsd" ] + }, + "acm001748jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001748jsd", + "name" : "IDownloadAudioWatermarkingLocal", + "compilationUnitId" : "acm001740jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001739jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001749jsd", + "name" : "IDownloadAudioWatermarkingRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001757jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001750jsd" : { + "type" : "CodePackage", + "id" : "acm001750jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001751jsd" ] + }, + "acm001751jsd" : { + "type" : "CodePackage", + "id" : "acm001751jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001752jsd" ] + }, + "acm001752jsd" : { + "type" : "CodePackage", + "id" : "acm001752jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001753jsd" ] + }, + "acm001753jsd" : { + "type" : "CodePackage", + "id" : "acm001753jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001754jsd" ] + }, + "acm001754jsd" : { + "type" : "CodePackage", + "id" : "acm001754jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001755jsd" ] + }, + "acm001755jsd" : { + "type" : "CodePackage", + "id" : "acm001755jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001756jsd" ] + }, + "acm001756jsd" : { + "type" : "CodePackage", + "id" : "acm001756jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001749jsd" ] + }, + "acm001757jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001757jsd", + "name" : "IDownloadAudioWatermarkingRemote", + "compilationUnitId" : "acm001749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001739jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001758jsd", + "name" : "IDownloadCache", + "parentId" : "acm001691jsd", + "content" : [ "acm001766jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001759jsd" : { + "type" : "CodePackage", + "id" : "acm001759jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001760jsd" ] + }, + "acm001760jsd" : { + "type" : "CodePackage", + "id" : "acm001760jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001761jsd" ] + }, + "acm001761jsd" : { + "type" : "CodePackage", + "id" : "acm001761jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001762jsd" ] + }, + "acm001762jsd" : { + "type" : "CodePackage", + "id" : "acm001762jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001763jsd" ] + }, + "acm001763jsd" : { + "type" : "CodePackage", + "id" : "acm001763jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001764jsd" ] + }, + "acm001764jsd" : { + "type" : "CodePackage", + "id" : "acm001764jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001765jsd" ] + }, + "acm001765jsd" : { + "type" : "CodePackage", + "id" : "acm001765jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001758jsd" ] + }, + "acm001766jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001766jsd", + "name" : "IDownloadCache", + "compilationUnitId" : "acm001758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001730jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001767jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001767jsd", + "name" : "IDownloadCacheLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001775jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001768jsd" : { + "type" : "CodePackage", + "id" : "acm001768jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001769jsd" ] + }, + "acm001769jsd" : { + "type" : "CodePackage", + "id" : "acm001769jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001770jsd" ] + }, + "acm001770jsd" : { + "type" : "CodePackage", + "id" : "acm001770jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001771jsd" ] + }, + "acm001771jsd" : { + "type" : "CodePackage", + "id" : "acm001771jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001772jsd" ] + }, + "acm001772jsd" : { + "type" : "CodePackage", + "id" : "acm001772jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001773jsd" ] + }, + "acm001773jsd" : { + "type" : "CodePackage", + "id" : "acm001773jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001774jsd" ] + }, + "acm001774jsd" : { + "type" : "CodePackage", + "id" : "acm001774jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001767jsd" ] + }, + "acm001775jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001775jsd", + "name" : "IDownloadCacheLocal", + "compilationUnitId" : "acm001767jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001766jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001776jsd", + "name" : "IDownloadCacheRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001784jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001777jsd" : { + "type" : "CodePackage", + "id" : "acm001777jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001778jsd" ] + }, + "acm001778jsd" : { + "type" : "CodePackage", + "id" : "acm001778jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001779jsd" ] + }, + "acm001779jsd" : { + "type" : "CodePackage", + "id" : "acm001779jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001780jsd" ] + }, + "acm001780jsd" : { + "type" : "CodePackage", + "id" : "acm001780jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001781jsd" ] + }, + "acm001781jsd" : { + "type" : "CodePackage", + "id" : "acm001781jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001782jsd" ] + }, + "acm001782jsd" : { + "type" : "CodePackage", + "id" : "acm001782jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001783jsd" ] + }, + "acm001783jsd" : { + "type" : "CodePackage", + "id" : "acm001783jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001776jsd" ] + }, + "acm001784jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001784jsd", + "name" : "IDownloadCacheRemote", + "compilationUnitId" : "acm001776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001766jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001785jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001785jsd", + "name" : "IDownloadMediaAccess", + "parentId" : "acm001691jsd", + "content" : [ "acm001793jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001786jsd" : { + "type" : "CodePackage", + "id" : "acm001786jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001787jsd" ] + }, + "acm001787jsd" : { + "type" : "CodePackage", + "id" : "acm001787jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001788jsd" ] + }, + "acm001788jsd" : { + "type" : "CodePackage", + "id" : "acm001788jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001789jsd" ] + }, + "acm001789jsd" : { + "type" : "CodePackage", + "id" : "acm001789jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001790jsd" ] + }, + "acm001790jsd" : { + "type" : "CodePackage", + "id" : "acm001790jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001791jsd" ] + }, + "acm001791jsd" : { + "type" : "CodePackage", + "id" : "acm001791jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001792jsd" ] + }, + "acm001792jsd" : { + "type" : "CodePackage", + "id" : "acm001792jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001785jsd" ] + }, + "acm001793jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001793jsd", + "name" : "IDownloadMediaAccess", + "compilationUnitId" : "acm001785jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001730jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001794jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001794jsd", + "name" : "IDownloadMediaAccessLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001802jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001795jsd" : { + "type" : "CodePackage", + "id" : "acm001795jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001796jsd" ] + }, + "acm001796jsd" : { + "type" : "CodePackage", + "id" : "acm001796jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001797jsd" ] + }, + "acm001797jsd" : { + "type" : "CodePackage", + "id" : "acm001797jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001798jsd" ] + }, + "acm001798jsd" : { + "type" : "CodePackage", + "id" : "acm001798jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001799jsd" ] + }, + "acm001799jsd" : { + "type" : "CodePackage", + "id" : "acm001799jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001800jsd" ] + }, + "acm001800jsd" : { + "type" : "CodePackage", + "id" : "acm001800jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001801jsd" ] + }, + "acm001801jsd" : { + "type" : "CodePackage", + "id" : "acm001801jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001794jsd" ] + }, + "acm001802jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001802jsd", + "name" : "IDownloadMediaAccessLocal", + "compilationUnitId" : "acm001794jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001793jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001803jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001803jsd", + "name" : "IDownloadMediaAccessRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001811jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001804jsd" : { + "type" : "CodePackage", + "id" : "acm001804jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001805jsd" ] + }, + "acm001805jsd" : { + "type" : "CodePackage", + "id" : "acm001805jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001806jsd" ] + }, + "acm001806jsd" : { + "type" : "CodePackage", + "id" : "acm001806jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001807jsd" ] + }, + "acm001807jsd" : { + "type" : "CodePackage", + "id" : "acm001807jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001808jsd" ] + }, + "acm001808jsd" : { + "type" : "CodePackage", + "id" : "acm001808jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001809jsd" ] + }, + "acm001809jsd" : { + "type" : "CodePackage", + "id" : "acm001809jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001810jsd" ] + }, + "acm001810jsd" : { + "type" : "CodePackage", + "id" : "acm001810jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001803jsd" ] + }, + "acm001811jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001811jsd", + "name" : "IDownloadMediaAccessRemote", + "compilationUnitId" : "acm001803jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001793jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001812jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001812jsd", + "name" : "IDownloadReEncoder", + "parentId" : "acm001691jsd", + "content" : [ "acm001820jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001813jsd" : { + "type" : "CodePackage", + "id" : "acm001813jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001814jsd" ] + }, + "acm001814jsd" : { + "type" : "CodePackage", + "id" : "acm001814jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001815jsd" ] + }, + "acm001815jsd" : { + "type" : "CodePackage", + "id" : "acm001815jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001816jsd" ] + }, + "acm001816jsd" : { + "type" : "CodePackage", + "id" : "acm001816jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001817jsd" ] + }, + "acm001817jsd" : { + "type" : "CodePackage", + "id" : "acm001817jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001818jsd" ] + }, + "acm001818jsd" : { + "type" : "CodePackage", + "id" : "acm001818jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001819jsd" ] + }, + "acm001819jsd" : { + "type" : "CodePackage", + "id" : "acm001819jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001812jsd" ] + }, + "acm001820jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001820jsd", + "name" : "IDownloadReEncoder", + "compilationUnitId" : "acm001812jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001730jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001821jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001821jsd", + "name" : "IDownloadReEncoderLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001829jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001822jsd" : { + "type" : "CodePackage", + "id" : "acm001822jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001823jsd" ] + }, + "acm001823jsd" : { + "type" : "CodePackage", + "id" : "acm001823jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001824jsd" ] + }, + "acm001824jsd" : { + "type" : "CodePackage", + "id" : "acm001824jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001825jsd" ] + }, + "acm001825jsd" : { + "type" : "CodePackage", + "id" : "acm001825jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001826jsd" ] + }, + "acm001826jsd" : { + "type" : "CodePackage", + "id" : "acm001826jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001827jsd" ] + }, + "acm001827jsd" : { + "type" : "CodePackage", + "id" : "acm001827jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001828jsd" ] + }, + "acm001828jsd" : { + "type" : "CodePackage", + "id" : "acm001828jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001821jsd" ] + }, + "acm001829jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001829jsd", + "name" : "IDownloadReEncoderLocal", + "compilationUnitId" : "acm001821jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001820jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001830jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001830jsd", + "name" : "IDownloadReEncoderRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001838jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001831jsd" : { + "type" : "CodePackage", + "id" : "acm001831jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001832jsd" ] + }, + "acm001832jsd" : { + "type" : "CodePackage", + "id" : "acm001832jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001833jsd" ] + }, + "acm001833jsd" : { + "type" : "CodePackage", + "id" : "acm001833jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001834jsd" ] + }, + "acm001834jsd" : { + "type" : "CodePackage", + "id" : "acm001834jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001835jsd" ] + }, + "acm001835jsd" : { + "type" : "CodePackage", + "id" : "acm001835jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001836jsd" ] + }, + "acm001836jsd" : { + "type" : "CodePackage", + "id" : "acm001836jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001837jsd" ] + }, + "acm001837jsd" : { + "type" : "CodePackage", + "id" : "acm001837jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001830jsd" ] + }, + "acm001838jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001838jsd", + "name" : "IDownloadReEncoderRemote", + "compilationUnitId" : "acm001830jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001820jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001839jsd", + "name" : "IDownloadTagWatermarking", + "parentId" : "acm001691jsd", + "content" : [ "acm001847jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001840jsd" : { + "type" : "CodePackage", + "id" : "acm001840jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001841jsd" ] + }, + "acm001841jsd" : { + "type" : "CodePackage", + "id" : "acm001841jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001842jsd" ] + }, + "acm001842jsd" : { + "type" : "CodePackage", + "id" : "acm001842jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001843jsd" ] + }, + "acm001843jsd" : { + "type" : "CodePackage", + "id" : "acm001843jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001844jsd" ] + }, + "acm001844jsd" : { + "type" : "CodePackage", + "id" : "acm001844jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001845jsd" ] + }, + "acm001845jsd" : { + "type" : "CodePackage", + "id" : "acm001845jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001846jsd" ] + }, + "acm001846jsd" : { + "type" : "CodePackage", + "id" : "acm001846jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001839jsd" ] + }, + "acm001847jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001847jsd", + "name" : "IDownloadTagWatermarking", + "compilationUnitId" : "acm001839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001730jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001848jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001848jsd", + "name" : "IDownloadTagWatermarkingLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001856jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001849jsd" : { + "type" : "CodePackage", + "id" : "acm001849jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001850jsd" ] + }, + "acm001850jsd" : { + "type" : "CodePackage", + "id" : "acm001850jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001851jsd" ] + }, + "acm001851jsd" : { + "type" : "CodePackage", + "id" : "acm001851jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001852jsd" ] + }, + "acm001852jsd" : { + "type" : "CodePackage", + "id" : "acm001852jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001853jsd" ] + }, + "acm001853jsd" : { + "type" : "CodePackage", + "id" : "acm001853jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001854jsd" ] + }, + "acm001854jsd" : { + "type" : "CodePackage", + "id" : "acm001854jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001855jsd" ] + }, + "acm001855jsd" : { + "type" : "CodePackage", + "id" : "acm001855jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001848jsd" ] + }, + "acm001856jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001856jsd", + "name" : "IDownloadTagWatermarkingLocal", + "compilationUnitId" : "acm001848jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001847jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001857jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001857jsd", + "name" : "IDownloadTagWatermarkingRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001865jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001858jsd" : { + "type" : "CodePackage", + "id" : "acm001858jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001859jsd" ] + }, + "acm001859jsd" : { + "type" : "CodePackage", + "id" : "acm001859jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001860jsd" ] + }, + "acm001860jsd" : { + "type" : "CodePackage", + "id" : "acm001860jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001861jsd" ] + }, + "acm001861jsd" : { + "type" : "CodePackage", + "id" : "acm001861jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001862jsd" ] + }, + "acm001862jsd" : { + "type" : "CodePackage", + "id" : "acm001862jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001863jsd" ] + }, + "acm001863jsd" : { + "type" : "CodePackage", + "id" : "acm001863jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001864jsd" ] + }, + "acm001864jsd" : { + "type" : "CodePackage", + "id" : "acm001864jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001857jsd" ] + }, + "acm001865jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001865jsd", + "name" : "IDownloadTagWatermarkingRemote", + "compilationUnitId" : "acm001857jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001847jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001866jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001866jsd", + "name" : "IFacade", + "parentId" : "acm001691jsd", + "content" : [ "acm001880jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001867jsd" : { + "type" : "CodePackage", + "id" : "acm001867jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001868jsd" ] + }, + "acm001868jsd" : { + "type" : "CodePackage", + "id" : "acm001868jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001869jsd" ] + }, + "acm001869jsd" : { + "type" : "CodePackage", + "id" : "acm001869jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001870jsd" ] + }, + "acm001870jsd" : { + "type" : "CodePackage", + "id" : "acm001870jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001871jsd" ] + }, + "acm001871jsd" : { + "type" : "CodePackage", + "id" : "acm001871jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001872jsd" ] + }, + "acm001872jsd" : { + "type" : "CodePackage", + "id" : "acm001872jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001873jsd" ] + }, + "acm001873jsd" : { + "type" : "CodePackage", + "id" : "acm001873jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001866jsd" ] + }, + "acm001874jsd" : { + "type" : "ControlElement", + "id" : "acm001874jsd", + "name" : "register" + }, + "acm001875jsd" : { + "type" : "ControlElement", + "id" : "acm001875jsd", + "name" : "login" + }, + "acm001876jsd" : { + "type" : "ControlElement", + "id" : "acm001876jsd", + "name" : "getFileList" + }, + "acm001877jsd" : { + "type" : "ControlElement", + "id" : "acm001877jsd", + "name" : "downloadTest" + }, + "acm001878jsd" : { + "type" : "ControlElement", + "id" : "acm001878jsd", + "name" : "upload" + }, + "acm001879jsd" : { + "type" : "ControlElement", + "id" : "acm001879jsd", + "name" : "download" + }, + "acm001880jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001880jsd", + "name" : "IFacade", + "compilationUnitId" : "acm001866jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001532jsd", "acm001543jsd", "acm001588jsd", "acm001610jsd", "acm001642jsd", "acm001652jsd", "acm001683jsd" ], + "content" : [ "acm001874jsd", "acm001875jsd", "acm001876jsd", "acm001877jsd", "acm001878jsd", "acm001879jsd" ] + }, + "acm001881jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001881jsd", + "name" : "IFacadeLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001889jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001882jsd" : { + "type" : "CodePackage", + "id" : "acm001882jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001883jsd" ] + }, + "acm001883jsd" : { + "type" : "CodePackage", + "id" : "acm001883jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001884jsd" ] + }, + "acm001884jsd" : { + "type" : "CodePackage", + "id" : "acm001884jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001885jsd" ] + }, + "acm001885jsd" : { + "type" : "CodePackage", + "id" : "acm001885jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001886jsd" ] + }, + "acm001886jsd" : { + "type" : "CodePackage", + "id" : "acm001886jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001887jsd" ] + }, + "acm001887jsd" : { + "type" : "CodePackage", + "id" : "acm001887jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001888jsd" ] + }, + "acm001888jsd" : { + "type" : "CodePackage", + "id" : "acm001888jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001881jsd" ] + }, + "acm001889jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001889jsd", + "name" : "IFacadeLocal", + "compilationUnitId" : "acm001881jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001880jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001890jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001890jsd", + "name" : "IFacadeRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001898jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001891jsd" : { + "type" : "CodePackage", + "id" : "acm001891jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001892jsd" ] + }, + "acm001892jsd" : { + "type" : "CodePackage", + "id" : "acm001892jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001893jsd" ] + }, + "acm001893jsd" : { + "type" : "CodePackage", + "id" : "acm001893jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001894jsd" ] + }, + "acm001894jsd" : { + "type" : "CodePackage", + "id" : "acm001894jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001895jsd" ] + }, + "acm001895jsd" : { + "type" : "CodePackage", + "id" : "acm001895jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001896jsd" ] + }, + "acm001896jsd" : { + "type" : "CodePackage", + "id" : "acm001896jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001897jsd" ] + }, + "acm001897jsd" : { + "type" : "CodePackage", + "id" : "acm001897jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001890jsd" ] + }, + "acm001898jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001898jsd", + "name" : "IFacadeRemote", + "compilationUnitId" : "acm001890jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001880jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001899jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001899jsd", + "name" : "IMediaAccess", + "parentId" : "acm001691jsd", + "content" : [ "acm001909jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001900jsd" : { + "type" : "CodePackage", + "id" : "acm001900jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001901jsd" ] + }, + "acm001901jsd" : { + "type" : "CodePackage", + "id" : "acm001901jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001902jsd" ] + }, + "acm001902jsd" : { + "type" : "CodePackage", + "id" : "acm001902jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001903jsd" ] + }, + "acm001903jsd" : { + "type" : "CodePackage", + "id" : "acm001903jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001904jsd" ] + }, + "acm001904jsd" : { + "type" : "CodePackage", + "id" : "acm001904jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001905jsd" ] + }, + "acm001905jsd" : { + "type" : "CodePackage", + "id" : "acm001905jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001906jsd" ] + }, + "acm001906jsd" : { + "type" : "CodePackage", + "id" : "acm001906jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001899jsd" ] + }, + "acm001907jsd" : { + "type" : "ControlElement", + "id" : "acm001907jsd", + "name" : "upload" + }, + "acm001908jsd" : { + "type" : "ControlElement", + "id" : "acm001908jsd", + "name" : "getFileList" + }, + "acm001909jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001909jsd", + "name" : "IMediaAccess", + "compilationUnitId" : "acm001899jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001652jsd" ], + "content" : [ "acm001907jsd", "acm001908jsd" ] + }, + "acm001910jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001910jsd", + "name" : "IMediaAccessLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001918jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001911jsd" : { + "type" : "CodePackage", + "id" : "acm001911jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001912jsd" ] + }, + "acm001912jsd" : { + "type" : "CodePackage", + "id" : "acm001912jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001913jsd" ] + }, + "acm001913jsd" : { + "type" : "CodePackage", + "id" : "acm001913jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001914jsd" ] + }, + "acm001914jsd" : { + "type" : "CodePackage", + "id" : "acm001914jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001915jsd" ] + }, + "acm001915jsd" : { + "type" : "CodePackage", + "id" : "acm001915jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001916jsd" ] + }, + "acm001916jsd" : { + "type" : "CodePackage", + "id" : "acm001916jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001917jsd" ] + }, + "acm001917jsd" : { + "type" : "CodePackage", + "id" : "acm001917jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001910jsd" ] + }, + "acm001918jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001918jsd", + "name" : "IMediaAccessLocal", + "compilationUnitId" : "acm001910jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001909jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001919jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001919jsd", + "name" : "IMediaAccessMaintenance", + "parentId" : "acm001691jsd", + "content" : [ "acm001929jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001920jsd" : { + "type" : "CodePackage", + "id" : "acm001920jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001921jsd" ] + }, + "acm001921jsd" : { + "type" : "CodePackage", + "id" : "acm001921jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001922jsd" ] + }, + "acm001922jsd" : { + "type" : "CodePackage", + "id" : "acm001922jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001923jsd" ] + }, + "acm001923jsd" : { + "type" : "CodePackage", + "id" : "acm001923jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001924jsd" ] + }, + "acm001924jsd" : { + "type" : "CodePackage", + "id" : "acm001924jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001925jsd" ] + }, + "acm001925jsd" : { + "type" : "CodePackage", + "id" : "acm001925jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001926jsd" ] + }, + "acm001926jsd" : { + "type" : "CodePackage", + "id" : "acm001926jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001919jsd" ] + }, + "acm001927jsd" : { + "type" : "ControlElement", + "id" : "acm001927jsd", + "name" : "removeAllData" + }, + "acm001928jsd" : { + "type" : "ControlElement", + "id" : "acm001928jsd", + "name" : "trimToPayload" + }, + "acm001929jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001929jsd", + "name" : "IMediaAccessMaintenance", + "compilationUnitId" : "acm001919jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001927jsd", "acm001928jsd" ] + }, + "acm001930jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001930jsd", + "name" : "IMediaAccessMaintenanceLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001938jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001931jsd" : { + "type" : "CodePackage", + "id" : "acm001931jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001932jsd" ] + }, + "acm001932jsd" : { + "type" : "CodePackage", + "id" : "acm001932jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001933jsd" ] + }, + "acm001933jsd" : { + "type" : "CodePackage", + "id" : "acm001933jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001934jsd" ] + }, + "acm001934jsd" : { + "type" : "CodePackage", + "id" : "acm001934jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001935jsd" ] + }, + "acm001935jsd" : { + "type" : "CodePackage", + "id" : "acm001935jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001936jsd" ] + }, + "acm001936jsd" : { + "type" : "CodePackage", + "id" : "acm001936jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001937jsd" ] + }, + "acm001937jsd" : { + "type" : "CodePackage", + "id" : "acm001937jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001930jsd" ] + }, + "acm001938jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001938jsd", + "name" : "IMediaAccessMaintenanceLocal", + "compilationUnitId" : "acm001930jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001929jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001939jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001939jsd", + "name" : "IMediaAccessMaintenanceRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001947jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001940jsd" : { + "type" : "CodePackage", + "id" : "acm001940jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001941jsd" ] + }, + "acm001941jsd" : { + "type" : "CodePackage", + "id" : "acm001941jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001942jsd" ] + }, + "acm001942jsd" : { + "type" : "CodePackage", + "id" : "acm001942jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001943jsd" ] + }, + "acm001943jsd" : { + "type" : "CodePackage", + "id" : "acm001943jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001944jsd" ] + }, + "acm001944jsd" : { + "type" : "CodePackage", + "id" : "acm001944jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001945jsd" ] + }, + "acm001945jsd" : { + "type" : "CodePackage", + "id" : "acm001945jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001946jsd" ] + }, + "acm001946jsd" : { + "type" : "CodePackage", + "id" : "acm001946jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001939jsd" ] + }, + "acm001947jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001947jsd", + "name" : "IMediaAccessMaintenanceRemote", + "compilationUnitId" : "acm001939jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001929jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001948jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001948jsd", + "name" : "IMediaAccessRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001956jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001949jsd" : { + "type" : "CodePackage", + "id" : "acm001949jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001950jsd" ] + }, + "acm001950jsd" : { + "type" : "CodePackage", + "id" : "acm001950jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001951jsd" ] + }, + "acm001951jsd" : { + "type" : "CodePackage", + "id" : "acm001951jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001952jsd" ] + }, + "acm001952jsd" : { + "type" : "CodePackage", + "id" : "acm001952jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001953jsd" ] + }, + "acm001953jsd" : { + "type" : "CodePackage", + "id" : "acm001953jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001954jsd" ] + }, + "acm001954jsd" : { + "type" : "CodePackage", + "id" : "acm001954jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001955jsd" ] + }, + "acm001955jsd" : { + "type" : "CodePackage", + "id" : "acm001955jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001948jsd" ] + }, + "acm001956jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001956jsd", + "name" : "IMediaAccessRemote", + "compilationUnitId" : "acm001948jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001909jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001957jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001957jsd", + "name" : "IMediaManagement", + "parentId" : "acm001691jsd", + "content" : [ "acm001968jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001958jsd" : { + "type" : "CodePackage", + "id" : "acm001958jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001959jsd" ] + }, + "acm001959jsd" : { + "type" : "CodePackage", + "id" : "acm001959jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001960jsd" ] + }, + "acm001960jsd" : { + "type" : "CodePackage", + "id" : "acm001960jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001961jsd" ] + }, + "acm001961jsd" : { + "type" : "CodePackage", + "id" : "acm001961jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001962jsd" ] + }, + "acm001962jsd" : { + "type" : "CodePackage", + "id" : "acm001962jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001963jsd" ] + }, + "acm001963jsd" : { + "type" : "CodePackage", + "id" : "acm001963jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001964jsd" ] + }, + "acm001964jsd" : { + "type" : "CodePackage", + "id" : "acm001964jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001957jsd" ] + }, + "acm001965jsd" : { + "type" : "ControlElement", + "id" : "acm001965jsd", + "name" : "upload" + }, + "acm001966jsd" : { + "type" : "ControlElement", + "id" : "acm001966jsd", + "name" : "getFileList" + }, + "acm001967jsd" : { + "type" : "ControlElement", + "id" : "acm001967jsd", + "name" : "download" + }, + "acm001968jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001968jsd", + "name" : "IMediaManagement", + "compilationUnitId" : "acm001957jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001543jsd", "acm001642jsd", "acm001652jsd" ], + "content" : [ "acm001965jsd", "acm001966jsd", "acm001967jsd" ] + }, + "acm001969jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001969jsd", + "name" : "IMediaManagementLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm001977jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001970jsd" : { + "type" : "CodePackage", + "id" : "acm001970jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001971jsd" ] + }, + "acm001971jsd" : { + "type" : "CodePackage", + "id" : "acm001971jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001972jsd" ] + }, + "acm001972jsd" : { + "type" : "CodePackage", + "id" : "acm001972jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001973jsd" ] + }, + "acm001973jsd" : { + "type" : "CodePackage", + "id" : "acm001973jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001974jsd" ] + }, + "acm001974jsd" : { + "type" : "CodePackage", + "id" : "acm001974jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001975jsd" ] + }, + "acm001975jsd" : { + "type" : "CodePackage", + "id" : "acm001975jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001976jsd" ] + }, + "acm001976jsd" : { + "type" : "CodePackage", + "id" : "acm001976jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001969jsd" ] + }, + "acm001977jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001977jsd", + "name" : "IMediaManagementLocal", + "compilationUnitId" : "acm001969jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001968jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001978jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001978jsd", + "name" : "IMediaManagementRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm001986jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001979jsd" : { + "type" : "CodePackage", + "id" : "acm001979jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001980jsd" ] + }, + "acm001980jsd" : { + "type" : "CodePackage", + "id" : "acm001980jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001981jsd" ] + }, + "acm001981jsd" : { + "type" : "CodePackage", + "id" : "acm001981jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001982jsd" ] + }, + "acm001982jsd" : { + "type" : "CodePackage", + "id" : "acm001982jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001983jsd" ] + }, + "acm001983jsd" : { + "type" : "CodePackage", + "id" : "acm001983jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001984jsd" ] + }, + "acm001984jsd" : { + "type" : "CodePackage", + "id" : "acm001984jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001985jsd" ] + }, + "acm001985jsd" : { + "type" : "CodePackage", + "id" : "acm001985jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001978jsd" ] + }, + "acm001986jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001986jsd", + "name" : "IMediaManagementRemote", + "compilationUnitId" : "acm001978jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001968jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001987jsd", + "name" : "IPackaging", + "parentId" : "acm001691jsd", + "content" : [ "acm001996jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001988jsd" : { + "type" : "CodePackage", + "id" : "acm001988jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001989jsd" ] + }, + "acm001989jsd" : { + "type" : "CodePackage", + "id" : "acm001989jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm001990jsd" ] + }, + "acm001990jsd" : { + "type" : "CodePackage", + "id" : "acm001990jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm001991jsd" ] + }, + "acm001991jsd" : { + "type" : "CodePackage", + "id" : "acm001991jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm001992jsd" ] + }, + "acm001992jsd" : { + "type" : "CodePackage", + "id" : "acm001992jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm001993jsd" ] + }, + "acm001993jsd" : { + "type" : "CodePackage", + "id" : "acm001993jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm001994jsd" ] + }, + "acm001994jsd" : { + "type" : "CodePackage", + "id" : "acm001994jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001987jsd" ] + }, + "acm001995jsd" : { + "type" : "ControlElement", + "id" : "acm001995jsd", + "name" : "zip" + }, + "acm001996jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001996jsd", + "name" : "IPackaging", + "compilationUnitId" : "acm001987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001543jsd" ], + "content" : [ "acm001995jsd" ] + }, + "acm001997jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001997jsd", + "name" : "IPackagingLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm002005jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001998jsd" : { + "type" : "CodePackage", + "id" : "acm001998jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm001999jsd" ] + }, + "acm001999jsd" : { + "type" : "CodePackage", + "id" : "acm001999jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002000jsd" ] + }, + "acm002000jsd" : { + "type" : "CodePackage", + "id" : "acm002000jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002001jsd" ] + }, + "acm002001jsd" : { + "type" : "CodePackage", + "id" : "acm002001jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002002jsd" ] + }, + "acm002002jsd" : { + "type" : "CodePackage", + "id" : "acm002002jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002003jsd" ] + }, + "acm002003jsd" : { + "type" : "CodePackage", + "id" : "acm002003jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002004jsd" ] + }, + "acm002004jsd" : { + "type" : "CodePackage", + "id" : "acm002004jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm001997jsd" ] + }, + "acm002005jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002005jsd", + "name" : "IPackagingLocal", + "compilationUnitId" : "acm001997jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001996jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002006jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002006jsd", + "name" : "IPackagingRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm002014jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002007jsd" : { + "type" : "CodePackage", + "id" : "acm002007jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002008jsd" ] + }, + "acm002008jsd" : { + "type" : "CodePackage", + "id" : "acm002008jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002009jsd" ] + }, + "acm002009jsd" : { + "type" : "CodePackage", + "id" : "acm002009jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002010jsd" ] + }, + "acm002010jsd" : { + "type" : "CodePackage", + "id" : "acm002010jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002011jsd" ] + }, + "acm002011jsd" : { + "type" : "CodePackage", + "id" : "acm002011jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002012jsd" ] + }, + "acm002012jsd" : { + "type" : "CodePackage", + "id" : "acm002012jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002013jsd" ] + }, + "acm002013jsd" : { + "type" : "CodePackage", + "id" : "acm002013jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002006jsd" ] + }, + "acm002014jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002014jsd", + "name" : "IPackagingRemote", + "compilationUnitId" : "acm002006jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001996jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002015jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002015jsd", + "name" : "IUserDBAdapter", + "parentId" : "acm001691jsd", + "content" : [ "acm002026jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002016jsd" : { + "type" : "CodePackage", + "id" : "acm002016jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002017jsd" ] + }, + "acm002017jsd" : { + "type" : "CodePackage", + "id" : "acm002017jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002018jsd" ] + }, + "acm002018jsd" : { + "type" : "CodePackage", + "id" : "acm002018jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002019jsd" ] + }, + "acm002019jsd" : { + "type" : "CodePackage", + "id" : "acm002019jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002020jsd" ] + }, + "acm002020jsd" : { + "type" : "CodePackage", + "id" : "acm002020jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002021jsd" ] + }, + "acm002021jsd" : { + "type" : "CodePackage", + "id" : "acm002021jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002022jsd" ] + }, + "acm002022jsd" : { + "type" : "CodePackage", + "id" : "acm002022jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002015jsd" ] + }, + "acm002023jsd" : { + "type" : "ControlElement", + "id" : "acm002023jsd", + "name" : "addUser" + }, + "acm002024jsd" : { + "type" : "ControlElement", + "id" : "acm002024jsd", + "name" : "getUserData" + }, + "acm002025jsd" : { + "type" : "ControlElement", + "id" : "acm002025jsd", + "name" : "removeAllData" + }, + "acm002026jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002026jsd", + "name" : "IUserDBAdapter", + "compilationUnitId" : "acm002015jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001588jsd", "acm001610jsd", "acm001683jsd" ], + "content" : [ "acm002023jsd", "acm002024jsd", "acm002025jsd" ] + }, + "acm002027jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002027jsd", + "name" : "IUserDBAdapterLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm002035jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002028jsd" : { + "type" : "CodePackage", + "id" : "acm002028jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002029jsd" ] + }, + "acm002029jsd" : { + "type" : "CodePackage", + "id" : "acm002029jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002030jsd" ] + }, + "acm002030jsd" : { + "type" : "CodePackage", + "id" : "acm002030jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002031jsd" ] + }, + "acm002031jsd" : { + "type" : "CodePackage", + "id" : "acm002031jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002032jsd" ] + }, + "acm002032jsd" : { + "type" : "CodePackage", + "id" : "acm002032jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002033jsd" ] + }, + "acm002033jsd" : { + "type" : "CodePackage", + "id" : "acm002033jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002034jsd" ] + }, + "acm002034jsd" : { + "type" : "CodePackage", + "id" : "acm002034jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002027jsd" ] + }, + "acm002035jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002035jsd", + "name" : "IUserDBAdapterLocal", + "compilationUnitId" : "acm002027jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002026jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002036jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002036jsd", + "name" : "IUserDBAdapterRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm002044jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002037jsd" : { + "type" : "CodePackage", + "id" : "acm002037jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002038jsd" ] + }, + "acm002038jsd" : { + "type" : "CodePackage", + "id" : "acm002038jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002039jsd" ] + }, + "acm002039jsd" : { + "type" : "CodePackage", + "id" : "acm002039jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002040jsd" ] + }, + "acm002040jsd" : { + "type" : "CodePackage", + "id" : "acm002040jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002041jsd" ] + }, + "acm002041jsd" : { + "type" : "CodePackage", + "id" : "acm002041jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002042jsd" ] + }, + "acm002042jsd" : { + "type" : "CodePackage", + "id" : "acm002042jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002043jsd" ] + }, + "acm002043jsd" : { + "type" : "CodePackage", + "id" : "acm002043jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002036jsd" ] + }, + "acm002044jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002044jsd", + "name" : "IUserDBAdapterRemote", + "compilationUnitId" : "acm002036jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002026jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002045jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002045jsd", + "name" : "IUserManagement", + "parentId" : "acm001691jsd", + "content" : [ "acm002055jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002046jsd" : { + "type" : "CodePackage", + "id" : "acm002046jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002047jsd" ] + }, + "acm002047jsd" : { + "type" : "CodePackage", + "id" : "acm002047jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002048jsd" ] + }, + "acm002048jsd" : { + "type" : "CodePackage", + "id" : "acm002048jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002049jsd" ] + }, + "acm002049jsd" : { + "type" : "CodePackage", + "id" : "acm002049jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002050jsd" ] + }, + "acm002050jsd" : { + "type" : "CodePackage", + "id" : "acm002050jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002051jsd" ] + }, + "acm002051jsd" : { + "type" : "CodePackage", + "id" : "acm002051jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002052jsd" ] + }, + "acm002052jsd" : { + "type" : "CodePackage", + "id" : "acm002052jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002045jsd" ] + }, + "acm002053jsd" : { + "type" : "ControlElement", + "id" : "acm002053jsd", + "name" : "register" + }, + "acm002054jsd" : { + "type" : "ControlElement", + "id" : "acm002054jsd", + "name" : "login" + }, + "acm002055jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002055jsd", + "name" : "IUserManagement", + "compilationUnitId" : "acm002045jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001692jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001588jsd", "acm001610jsd", "acm001683jsd" ], + "content" : [ "acm002053jsd", "acm002054jsd" ] + }, + "acm002056jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002056jsd", + "name" : "IUserManagementLocal", + "parentId" : "acm001691jsd", + "content" : [ "acm002064jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002057jsd" : { + "type" : "CodePackage", + "id" : "acm002057jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002058jsd" ] + }, + "acm002058jsd" : { + "type" : "CodePackage", + "id" : "acm002058jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002059jsd" ] + }, + "acm002059jsd" : { + "type" : "CodePackage", + "id" : "acm002059jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002060jsd" ] + }, + "acm002060jsd" : { + "type" : "CodePackage", + "id" : "acm002060jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002061jsd" ] + }, + "acm002061jsd" : { + "type" : "CodePackage", + "id" : "acm002061jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002062jsd" ] + }, + "acm002062jsd" : { + "type" : "CodePackage", + "id" : "acm002062jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002063jsd" ] + }, + "acm002063jsd" : { + "type" : "CodePackage", + "id" : "acm002063jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002056jsd" ] + }, + "acm002064jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002064jsd", + "name" : "IUserManagementLocal", + "compilationUnitId" : "acm002056jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002055jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002065jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002065jsd", + "name" : "IUserManagementRemote", + "parentId" : "acm001691jsd", + "content" : [ "acm002073jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "interfaces" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002066jsd" : { + "type" : "CodePackage", + "id" : "acm002066jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002067jsd" ] + }, + "acm002067jsd" : { + "type" : "CodePackage", + "id" : "acm002067jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002068jsd" ] + }, + "acm002068jsd" : { + "type" : "CodePackage", + "id" : "acm002068jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002069jsd" ] + }, + "acm002069jsd" : { + "type" : "CodePackage", + "id" : "acm002069jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002070jsd" ] + }, + "acm002070jsd" : { + "type" : "CodePackage", + "id" : "acm002070jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002071jsd" ] + }, + "acm002071jsd" : { + "type" : "CodePackage", + "id" : "acm002071jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002072jsd" ] + }, + "acm002072jsd" : { + "type" : "CodePackage", + "id" : "acm002072jsd", + "name" : "interfaces", + "parentId" : null, + "content" : [ "acm002065jsd" ] + }, + "acm002073jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002073jsd", + "name" : "IUserManagementRemote", + "compilationUnitId" : "acm002065jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002055jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002074jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002074jsd", + "name" : "FSUtil", + "parentId" : "acm002081jsd", + "content" : [ "acm002092jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002075jsd" : { + "type" : "CodePackage", + "id" : "acm002075jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002076jsd" ] + }, + "acm002076jsd" : { + "type" : "CodePackage", + "id" : "acm002076jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002077jsd" ] + }, + "acm002077jsd" : { + "type" : "CodePackage", + "id" : "acm002077jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002078jsd" ] + }, + "acm002078jsd" : { + "type" : "CodePackage", + "id" : "acm002078jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002079jsd" ] + }, + "acm002079jsd" : { + "type" : "CodePackage", + "id" : "acm002079jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002080jsd" ] + }, + "acm002080jsd" : { + "type" : "CodePackage", + "id" : "acm002080jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002081jsd" ] + }, + "acm002081jsd" : { + "type" : "CodePackage", + "id" : "acm002081jsd", + "name" : "utils", + "parentId" : "acm001343jsd", + "content" : [ "acm002074jsd", "acm002093jsd", "acm002103jsd", "acm002116jsd" ] + }, + "acm002082jsd" : { + "type" : "ControlElement", + "id" : "acm002082jsd", + "name" : "getTempFileName" + }, + "acm002083jsd" : { + "type" : "ControlElement", + "id" : "acm002083jsd", + "name" : "getTempFileName" + }, + "acm002084jsd" : { + "type" : "ControlElement", + "id" : "acm002084jsd", + "name" : "writeToFile" + }, + "acm002085jsd" : { + "type" : "ControlElement", + "id" : "acm002085jsd", + "name" : "writeToFile" + }, + "acm002086jsd" : { + "type" : "ControlElement", + "id" : "acm002086jsd", + "name" : "writeToTempFile" + }, + "acm002087jsd" : { + "type" : "ControlElement", + "id" : "acm002087jsd", + "name" : "readFileToMem" + }, + "acm002088jsd" : { + "type" : "ControlElement", + "id" : "acm002088jsd", + "name" : "consumeFileToMem" + }, + "acm002089jsd" : { + "type" : "ControlElement", + "id" : "acm002089jsd", + "name" : "bytesToPath" + }, + "acm002090jsd" : { + "type" : "ControlElement", + "id" : "acm002090jsd", + "name" : "pathToBytes" + }, + "acm002091jsd" : { + "type" : "ControlElement", + "id" : "acm002091jsd", + "name" : "getExtension" + }, + "acm002092jsd" : { + "type" : "ClassUnit", + "id" : "acm002092jsd", + "name" : "FSUtil", + "compilationUnitId" : "acm002074jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001543jsd", "acm001556jsd", "acm001569jsd" ], + "content" : [ "acm002082jsd", "acm002083jsd", "acm002084jsd", "acm002085jsd", "acm002086jsd", "acm002087jsd", "acm002088jsd", "acm002089jsd", "acm002090jsd", "acm002091jsd" ] + }, + "acm002093jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002093jsd", + "name" : "JNDIUtil", + "parentId" : "acm002081jsd", + "content" : [ "acm002102jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002094jsd" : { + "type" : "CodePackage", + "id" : "acm002094jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002095jsd" ] + }, + "acm002095jsd" : { + "type" : "CodePackage", + "id" : "acm002095jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002096jsd" ] + }, + "acm002096jsd" : { + "type" : "CodePackage", + "id" : "acm002096jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002097jsd" ] + }, + "acm002097jsd" : { + "type" : "CodePackage", + "id" : "acm002097jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002098jsd" ] + }, + "acm002098jsd" : { + "type" : "CodePackage", + "id" : "acm002098jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002099jsd" ] + }, + "acm002099jsd" : { + "type" : "CodePackage", + "id" : "acm002099jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002100jsd" ] + }, + "acm002100jsd" : { + "type" : "CodePackage", + "id" : "acm002100jsd", + "name" : "utils", + "parentId" : null, + "content" : [ "acm002093jsd" ] + }, + "acm002101jsd" : { + "type" : "ControlElement", + "id" : "acm002101jsd", + "name" : "find" + }, + "acm002102jsd" : { + "type" : "ClassUnit", + "id" : "acm002102jsd", + "name" : "JNDIUtil", + "compilationUnitId" : "acm002093jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd" ], + "content" : [ "acm002101jsd" ] + }, + "acm002103jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002103jsd", + "name" : "LameUtil", + "parentId" : "acm002081jsd", + "content" : [ "acm002115jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002104jsd" : { + "type" : "CodePackage", + "id" : "acm002104jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002105jsd" ] + }, + "acm002105jsd" : { + "type" : "CodePackage", + "id" : "acm002105jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002106jsd" ] + }, + "acm002106jsd" : { + "type" : "CodePackage", + "id" : "acm002106jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002107jsd" ] + }, + "acm002107jsd" : { + "type" : "CodePackage", + "id" : "acm002107jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002108jsd" ] + }, + "acm002108jsd" : { + "type" : "CodePackage", + "id" : "acm002108jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002109jsd" ] + }, + "acm002109jsd" : { + "type" : "CodePackage", + "id" : "acm002109jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002110jsd" ] + }, + "acm002110jsd" : { + "type" : "CodePackage", + "id" : "acm002110jsd", + "name" : "utils", + "parentId" : null, + "content" : [ "acm002103jsd" ] + }, + "acm002111jsd" : { + "type" : "ControlElement", + "id" : "acm002111jsd", + "name" : "initLame" + }, + "acm002112jsd" : { + "type" : "ControlElement", + "id" : "acm002112jsd", + "name" : "encode" + }, + "acm002113jsd" : { + "type" : "ControlElement", + "id" : "acm002113jsd", + "name" : "decode" + }, + "acm002114jsd" : { + "type" : "ControlElement", + "id" : "acm002114jsd", + "name" : "execLame" + }, + "acm002115jsd" : { + "type" : "ClassUnit", + "id" : "acm002115jsd", + "name" : "LameUtil", + "compilationUnitId" : "acm002103jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001620jsd", "acm002115jsd" ], + "content" : [ "acm002111jsd", "acm002112jsd", "acm002113jsd", "acm002114jsd" ] + }, + "acm002116jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002116jsd", + "name" : "PropertiesUtil", + "parentId" : "acm002081jsd", + "content" : [ "acm002125jsd" ], + "pathElements" : [ "Implementation", "mediastore.basic", "src", "edu", "kit", "ipd", "sdq", "mediastore", "basic", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002117jsd" : { + "type" : "CodePackage", + "id" : "acm002117jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002118jsd" ] + }, + "acm002118jsd" : { + "type" : "CodePackage", + "id" : "acm002118jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002119jsd" ] + }, + "acm002119jsd" : { + "type" : "CodePackage", + "id" : "acm002119jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002120jsd" ] + }, + "acm002120jsd" : { + "type" : "CodePackage", + "id" : "acm002120jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002121jsd" ] + }, + "acm002121jsd" : { + "type" : "CodePackage", + "id" : "acm002121jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002122jsd" ] + }, + "acm002122jsd" : { + "type" : "CodePackage", + "id" : "acm002122jsd", + "name" : "basic", + "parentId" : null, + "content" : [ "acm002123jsd" ] + }, + "acm002123jsd" : { + "type" : "CodePackage", + "id" : "acm002123jsd", + "name" : "utils", + "parentId" : null, + "content" : [ "acm002116jsd" ] + }, + "acm002124jsd" : { + "type" : "ControlElement", + "id" : "acm002124jsd", + "name" : "initProperties" + }, + "acm002125jsd" : { + "type" : "ClassUnit", + "id" : "acm002125jsd", + "name" : "PropertiesUtil", + "compilationUnitId" : "acm002116jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001383jsd", "acm001436jsd" ], + "content" : [ "acm002124jsd" ] + }, + "acm002126jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002126jsd", + "name" : "AudioWatermarkingImpl", + "parentId" : "acm002133jsd", + "content" : [ "acm002140jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.audiowatermarking", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "audiowatermarking" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002127jsd" : { + "type" : "CodePackage", + "id" : "acm002127jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002128jsd" ] + }, + "acm002128jsd" : { + "type" : "CodePackage", + "id" : "acm002128jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002129jsd" ] + }, + "acm002129jsd" : { + "type" : "CodePackage", + "id" : "acm002129jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002130jsd" ] + }, + "acm002130jsd" : { + "type" : "CodePackage", + "id" : "acm002130jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002131jsd" ] + }, + "acm002131jsd" : { + "type" : "CodePackage", + "id" : "acm002131jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002132jsd" ] + }, + "acm002132jsd" : { + "type" : "CodePackage", + "id" : "acm002132jsd", + "name" : "ejb", + "parentId" : "acm001342jsd", + "content" : [ "acm002133jsd", "acm002211jsd", "acm002256jsd", "acm002274jsd", "acm002331jsd", "acm002347jsd", "acm002359jsd", "acm002371jsd", "acm002384jsd", "acm002431jsd" ] + }, + "acm002133jsd" : { + "type" : "CodePackage", + "id" : "acm002133jsd", + "name" : "audiowatermarking", + "parentId" : "acm002132jsd", + "content" : [ "acm002126jsd", "acm002141jsd", "acm002191jsd" ] + }, + "acm002134jsd" : { + "type" : "ControlElement", + "id" : "acm002134jsd", + "name" : "AudioWatermarkingImpl" + }, + "acm002135jsd" : { + "type" : "ControlElement", + "id" : "acm002135jsd", + "name" : "init" + }, + "acm002136jsd" : { + "type" : "ControlElement", + "id" : "acm002136jsd", + "name" : "download" + }, + "acm002137jsd" : { + "type" : "ControlElement", + "id" : "acm002137jsd", + "name" : "watermark" + }, + "acm002138jsd" : { + "type" : "ControlElement", + "id" : "acm002138jsd", + "name" : "getBinaryString" + }, + "acm002139jsd" : { + "type" : "ControlElement", + "id" : "acm002139jsd", + "name" : "getFrequency" + }, + "acm002140jsd" : { + "type" : "ClassUnit", + "id" : "acm002140jsd", + "name" : "AudioWatermarkingImpl", + "compilationUnitId" : "acm002126jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001748jsd", "acm001757jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001543jsd", "acm001556jsd", "acm001569jsd", "acm001620jsd", "acm001642jsd", "acm001730jsd", "acm002189jsd", "acm002203jsd" ], + "content" : [ "acm002134jsd", "acm002135jsd", "acm002136jsd", "acm002137jsd", "acm002138jsd", "acm002139jsd" ] + }, + "acm002141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002141jsd", + "name" : "WavFile", + "parentId" : "acm002133jsd", + "content" : [ "acm002189jsd", "acm002190jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.audiowatermarking", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "audiowatermarking" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002142jsd" : { + "type" : "CodePackage", + "id" : "acm002142jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002143jsd" ] + }, + "acm002143jsd" : { + "type" : "CodePackage", + "id" : "acm002143jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002144jsd" ] + }, + "acm002144jsd" : { + "type" : "CodePackage", + "id" : "acm002144jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002145jsd" ] + }, + "acm002145jsd" : { + "type" : "CodePackage", + "id" : "acm002145jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002146jsd" ] + }, + "acm002146jsd" : { + "type" : "CodePackage", + "id" : "acm002146jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002147jsd" ] + }, + "acm002147jsd" : { + "type" : "CodePackage", + "id" : "acm002147jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002148jsd" ] + }, + "acm002148jsd" : { + "type" : "CodePackage", + "id" : "acm002148jsd", + "name" : "audiowatermarking", + "parentId" : null, + "content" : [ "acm002141jsd" ] + }, + "acm002149jsd" : { + "type" : "ControlElement", + "id" : "acm002149jsd", + "name" : "WavFile" + }, + "acm002150jsd" : { + "type" : "ControlElement", + "id" : "acm002150jsd", + "name" : "getNumChannels" + }, + "acm002151jsd" : { + "type" : "ControlElement", + "id" : "acm002151jsd", + "name" : "getNumFrames" + }, + "acm002152jsd" : { + "type" : "ControlElement", + "id" : "acm002152jsd", + "name" : "getFramesRemaining" + }, + "acm002153jsd" : { + "type" : "ControlElement", + "id" : "acm002153jsd", + "name" : "getSampleRate" + }, + "acm002154jsd" : { + "type" : "ControlElement", + "id" : "acm002154jsd", + "name" : "getValidBits" + }, + "acm002155jsd" : { + "type" : "ControlElement", + "id" : "acm002155jsd", + "name" : "newWavFile" + }, + "acm002156jsd" : { + "type" : "ControlElement", + "id" : "acm002156jsd", + "name" : "openWavFile" + }, + "acm002157jsd" : { + "type" : "ControlElement", + "id" : "acm002157jsd", + "name" : "getLE" + }, + "acm002158jsd" : { + "type" : "ControlElement", + "id" : "acm002158jsd", + "name" : "putLE" + }, + "acm002159jsd" : { + "type" : "ControlElement", + "id" : "acm002159jsd", + "name" : "writeSample" + }, + "acm002160jsd" : { + "type" : "ControlElement", + "id" : "acm002160jsd", + "name" : "readSample" + }, + "acm002161jsd" : { + "type" : "ControlElement", + "id" : "acm002161jsd", + "name" : "readFrames" + }, + "acm002162jsd" : { + "type" : "ControlElement", + "id" : "acm002162jsd", + "name" : "readFrames" + }, + "acm002163jsd" : { + "type" : "ControlElement", + "id" : "acm002163jsd", + "name" : "readFrames" + }, + "acm002164jsd" : { + "type" : "ControlElement", + "id" : "acm002164jsd", + "name" : "readFrames" + }, + "acm002165jsd" : { + "type" : "ControlElement", + "id" : "acm002165jsd", + "name" : "writeFrames" + }, + "acm002166jsd" : { + "type" : "ControlElement", + "id" : "acm002166jsd", + "name" : "writeFrames" + }, + "acm002167jsd" : { + "type" : "ControlElement", + "id" : "acm002167jsd", + "name" : "writeFrames" + }, + "acm002168jsd" : { + "type" : "ControlElement", + "id" : "acm002168jsd", + "name" : "writeFrames" + }, + "acm002169jsd" : { + "type" : "ControlElement", + "id" : "acm002169jsd", + "name" : "readFrames" + }, + "acm002170jsd" : { + "type" : "ControlElement", + "id" : "acm002170jsd", + "name" : "readFrames" + }, + "acm002171jsd" : { + "type" : "ControlElement", + "id" : "acm002171jsd", + "name" : "readFrames" + }, + "acm002172jsd" : { + "type" : "ControlElement", + "id" : "acm002172jsd", + "name" : "readFrames" + }, + "acm002173jsd" : { + "type" : "ControlElement", + "id" : "acm002173jsd", + "name" : "writeFrames" + }, + "acm002174jsd" : { + "type" : "ControlElement", + "id" : "acm002174jsd", + "name" : "writeFrames" + }, + "acm002175jsd" : { + "type" : "ControlElement", + "id" : "acm002175jsd", + "name" : "writeFrames" + }, + "acm002176jsd" : { + "type" : "ControlElement", + "id" : "acm002176jsd", + "name" : "writeFrames" + }, + "acm002177jsd" : { + "type" : "ControlElement", + "id" : "acm002177jsd", + "name" : "readFrames" + }, + "acm002178jsd" : { + "type" : "ControlElement", + "id" : "acm002178jsd", + "name" : "readFrames" + }, + "acm002179jsd" : { + "type" : "ControlElement", + "id" : "acm002179jsd", + "name" : "readFrames" + }, + "acm002180jsd" : { + "type" : "ControlElement", + "id" : "acm002180jsd", + "name" : "readFrames" + }, + "acm002181jsd" : { + "type" : "ControlElement", + "id" : "acm002181jsd", + "name" : "writeFrames" + }, + "acm002182jsd" : { + "type" : "ControlElement", + "id" : "acm002182jsd", + "name" : "writeFrames" + }, + "acm002183jsd" : { + "type" : "ControlElement", + "id" : "acm002183jsd", + "name" : "writeFrames" + }, + "acm002184jsd" : { + "type" : "ControlElement", + "id" : "acm002184jsd", + "name" : "writeFrames" + }, + "acm002185jsd" : { + "type" : "ControlElement", + "id" : "acm002185jsd", + "name" : "close" + }, + "acm002186jsd" : { + "type" : "ControlElement", + "id" : "acm002186jsd", + "name" : "display" + }, + "acm002187jsd" : { + "type" : "ControlElement", + "id" : "acm002187jsd", + "name" : "display" + }, + "acm002188jsd" : { + "type" : "ControlElement", + "id" : "acm002188jsd", + "name" : "main" + }, + "acm002189jsd" : { + "type" : "ClassUnit", + "id" : "acm002189jsd", + "name" : "WavFile", + "compilationUnitId" : "acm002141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002189jsd", "acm002190jsd", "acm002203jsd" ], + "content" : [ "acm002149jsd", "acm002150jsd", "acm002151jsd", "acm002152jsd", "acm002153jsd", "acm002154jsd", "acm002155jsd", "acm002156jsd", "acm002157jsd", "acm002158jsd", "acm002159jsd", "acm002160jsd", "acm002161jsd", "acm002162jsd", "acm002163jsd", "acm002164jsd", "acm002165jsd", "acm002166jsd", "acm002167jsd", "acm002168jsd", "acm002169jsd", "acm002170jsd", "acm002171jsd", "acm002172jsd", "acm002173jsd", "acm002174jsd", "acm002175jsd", "acm002176jsd", "acm002177jsd", "acm002178jsd", "acm002179jsd", "acm002180jsd", "acm002181jsd", "acm002182jsd", "acm002183jsd", "acm002184jsd", "acm002185jsd", "acm002186jsd", "acm002187jsd", "acm002188jsd" ] + }, + "acm002190jsd" : { + "type" : "ClassUnit", + "id" : "acm002190jsd", + "name" : "IOState", + "compilationUnitId" : "acm002141jsd", + "parentDatatypeId" : "acm002189jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002191jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002191jsd", + "name" : "WavFileException", + "parentId" : "acm002133jsd", + "content" : [ "acm002203jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.audiowatermarking", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "audiowatermarking" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002192jsd" : { + "type" : "CodePackage", + "id" : "acm002192jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002193jsd" ] + }, + "acm002193jsd" : { + "type" : "CodePackage", + "id" : "acm002193jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002194jsd" ] + }, + "acm002194jsd" : { + "type" : "CodePackage", + "id" : "acm002194jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002195jsd" ] + }, + "acm002195jsd" : { + "type" : "CodePackage", + "id" : "acm002195jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002196jsd" ] + }, + "acm002196jsd" : { + "type" : "CodePackage", + "id" : "acm002196jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002197jsd" ] + }, + "acm002197jsd" : { + "type" : "CodePackage", + "id" : "acm002197jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002198jsd" ] + }, + "acm002198jsd" : { + "type" : "CodePackage", + "id" : "acm002198jsd", + "name" : "audiowatermarking", + "parentId" : null, + "content" : [ "acm002191jsd" ] + }, + "acm002199jsd" : { + "type" : "ControlElement", + "id" : "acm002199jsd", + "name" : "WavFileException" + }, + "acm002200jsd" : { + "type" : "ControlElement", + "id" : "acm002200jsd", + "name" : "WavFileException" + }, + "acm002201jsd" : { + "type" : "ControlElement", + "id" : "acm002201jsd", + "name" : "WavFileException" + }, + "acm002202jsd" : { + "type" : "ControlElement", + "id" : "acm002202jsd", + "name" : "WavFileException" + }, + "acm002203jsd" : { + "type" : "ClassUnit", + "id" : "acm002203jsd", + "name" : "WavFileException", + "compilationUnitId" : "acm002191jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002199jsd", "acm002200jsd", "acm002201jsd", "acm002202jsd" ] + }, + "acm002204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002204jsd", + "name" : "CacheImpl", + "parentId" : "acm002211jsd", + "content" : [ "acm002216jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.cache", "ejbModule", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002205jsd" : { + "type" : "CodePackage", + "id" : "acm002205jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002206jsd" ] + }, + "acm002206jsd" : { + "type" : "CodePackage", + "id" : "acm002206jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002207jsd" ] + }, + "acm002207jsd" : { + "type" : "CodePackage", + "id" : "acm002207jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002208jsd" ] + }, + "acm002208jsd" : { + "type" : "CodePackage", + "id" : "acm002208jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002209jsd" ] + }, + "acm002209jsd" : { + "type" : "CodePackage", + "id" : "acm002209jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002210jsd" ] + }, + "acm002210jsd" : { + "type" : "CodePackage", + "id" : "acm002210jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002211jsd" ] + }, + "acm002211jsd" : { + "type" : "CodePackage", + "id" : "acm002211jsd", + "name" : "cache", + "parentId" : "acm002132jsd", + "content" : [ "acm002204jsd", "acm002217jsd", "acm002233jsd" ] + }, + "acm002212jsd" : { + "type" : "ControlElement", + "id" : "acm002212jsd", + "name" : "CacheImpl" + }, + "acm002213jsd" : { + "type" : "ControlElement", + "id" : "acm002213jsd", + "name" : "init" + }, + "acm002214jsd" : { + "type" : "ControlElement", + "id" : "acm002214jsd", + "name" : "download" + }, + "acm002215jsd" : { + "type" : "ControlElement", + "id" : "acm002215jsd", + "name" : "clear" + }, + "acm002216jsd" : { + "type" : "ClassUnit", + "id" : "acm002216jsd", + "name" : "CacheImpl", + "compilationUnitId" : "acm002204jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001711jsd", "acm001720jsd", "acm001775jsd", "acm001784jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001543jsd", "acm001642jsd", "acm001730jsd", "acm002232jsd", "acm002248jsd" ], + "content" : [ "acm002212jsd", "acm002213jsd", "acm002214jsd", "acm002215jsd" ] + }, + "acm002217jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002217jsd", + "name" : "CacheSingleton", + "parentId" : "acm002211jsd", + "content" : [ "acm002232jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.cache", "ejbModule", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002218jsd" : { + "type" : "CodePackage", + "id" : "acm002218jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002219jsd" ] + }, + "acm002219jsd" : { + "type" : "CodePackage", + "id" : "acm002219jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002220jsd" ] + }, + "acm002220jsd" : { + "type" : "CodePackage", + "id" : "acm002220jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002221jsd" ] + }, + "acm002221jsd" : { + "type" : "CodePackage", + "id" : "acm002221jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002222jsd" ] + }, + "acm002222jsd" : { + "type" : "CodePackage", + "id" : "acm002222jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002223jsd" ] + }, + "acm002223jsd" : { + "type" : "CodePackage", + "id" : "acm002223jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002224jsd" ] + }, + "acm002224jsd" : { + "type" : "CodePackage", + "id" : "acm002224jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002217jsd" ] + }, + "acm002225jsd" : { + "type" : "ControlElement", + "id" : "acm002225jsd", + "name" : "incHits" + }, + "acm002226jsd" : { + "type" : "ControlElement", + "id" : "acm002226jsd", + "name" : "incMisses" + }, + "acm002227jsd" : { + "type" : "ControlElement", + "id" : "acm002227jsd", + "name" : "getHitrate" + }, + "acm002228jsd" : { + "type" : "ControlElement", + "id" : "acm002228jsd", + "name" : "init" + }, + "acm002229jsd" : { + "type" : "ControlElement", + "id" : "acm002229jsd", + "name" : "getIfPresent" + }, + "acm002230jsd" : { + "type" : "ControlElement", + "id" : "acm002230jsd", + "name" : "put" + }, + "acm002231jsd" : { + "type" : "ControlElement", + "id" : "acm002231jsd", + "name" : "clear" + }, + "acm002232jsd" : { + "type" : "ClassUnit", + "id" : "acm002232jsd", + "name" : "CacheSingleton", + "compilationUnitId" : "acm002217jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm002248jsd" ], + "content" : [ "acm002225jsd", "acm002226jsd", "acm002227jsd", "acm002228jsd", "acm002229jsd", "acm002230jsd", "acm002231jsd" ] + }, + "acm002233jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002233jsd", + "name" : "IdAndBitrate", + "parentId" : "acm002211jsd", + "content" : [ "acm002248jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.cache", "ejbModule", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002234jsd" : { + "type" : "CodePackage", + "id" : "acm002234jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002235jsd" ] + }, + "acm002235jsd" : { + "type" : "CodePackage", + "id" : "acm002235jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002236jsd" ] + }, + "acm002236jsd" : { + "type" : "CodePackage", + "id" : "acm002236jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002237jsd" ] + }, + "acm002237jsd" : { + "type" : "CodePackage", + "id" : "acm002237jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002238jsd" ] + }, + "acm002238jsd" : { + "type" : "CodePackage", + "id" : "acm002238jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002239jsd" ] + }, + "acm002239jsd" : { + "type" : "CodePackage", + "id" : "acm002239jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002240jsd" ] + }, + "acm002240jsd" : { + "type" : "CodePackage", + "id" : "acm002240jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002233jsd" ] + }, + "acm002241jsd" : { + "type" : "ControlElement", + "id" : "acm002241jsd", + "name" : "IdAndBitrate" + }, + "acm002242jsd" : { + "type" : "ControlElement", + "id" : "acm002242jsd", + "name" : "getId" + }, + "acm002243jsd" : { + "type" : "ControlElement", + "id" : "acm002243jsd", + "name" : "setId" + }, + "acm002244jsd" : { + "type" : "ControlElement", + "id" : "acm002244jsd", + "name" : "getBitrate" + }, + "acm002245jsd" : { + "type" : "ControlElement", + "id" : "acm002245jsd", + "name" : "setBitrate" + }, + "acm002246jsd" : { + "type" : "ControlElement", + "id" : "acm002246jsd", + "name" : "hashCode" + }, + "acm002247jsd" : { + "type" : "ControlElement", + "id" : "acm002247jsd", + "name" : "equals" + }, + "acm002248jsd" : { + "type" : "ClassUnit", + "id" : "acm002248jsd", + "name" : "IdAndBitrate", + "compilationUnitId" : "acm002233jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002248jsd" ], + "content" : [ "acm002241jsd", "acm002242jsd", "acm002243jsd", "acm002244jsd", "acm002245jsd", "acm002246jsd", "acm002247jsd" ] + }, + "acm002249jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002249jsd", + "name" : "FacadeImpl", + "parentId" : "acm002256jsd", + "content" : [ "acm002266jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.facade", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "facade" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002250jsd" : { + "type" : "CodePackage", + "id" : "acm002250jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002251jsd" ] + }, + "acm002251jsd" : { + "type" : "CodePackage", + "id" : "acm002251jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002252jsd" ] + }, + "acm002252jsd" : { + "type" : "CodePackage", + "id" : "acm002252jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002253jsd" ] + }, + "acm002253jsd" : { + "type" : "CodePackage", + "id" : "acm002253jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002254jsd" ] + }, + "acm002254jsd" : { + "type" : "CodePackage", + "id" : "acm002254jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002255jsd" ] + }, + "acm002255jsd" : { + "type" : "CodePackage", + "id" : "acm002255jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002256jsd" ] + }, + "acm002256jsd" : { + "type" : "CodePackage", + "id" : "acm002256jsd", + "name" : "facade", + "parentId" : "acm002132jsd", + "content" : [ "acm002249jsd" ] + }, + "acm002257jsd" : { + "type" : "ControlElement", + "id" : "acm002257jsd", + "name" : "FacadeImpl" + }, + "acm002258jsd" : { + "type" : "ControlElement", + "id" : "acm002258jsd", + "name" : "initMediaManager" + }, + "acm002259jsd" : { + "type" : "ControlElement", + "id" : "acm002259jsd", + "name" : "initUserManagement" + }, + "acm002260jsd" : { + "type" : "ControlElement", + "id" : "acm002260jsd", + "name" : "register" + }, + "acm002261jsd" : { + "type" : "ControlElement", + "id" : "acm002261jsd", + "name" : "login" + }, + "acm002262jsd" : { + "type" : "ControlElement", + "id" : "acm002262jsd", + "name" : "upload" + }, + "acm002263jsd" : { + "type" : "ControlElement", + "id" : "acm002263jsd", + "name" : "getFileList" + }, + "acm002264jsd" : { + "type" : "ControlElement", + "id" : "acm002264jsd", + "name" : "downloadTest" + }, + "acm002265jsd" : { + "type" : "ControlElement", + "id" : "acm002265jsd", + "name" : "download" + }, + "acm002266jsd" : { + "type" : "ClassUnit", + "id" : "acm002266jsd", + "name" : "FacadeImpl", + "compilationUnitId" : "acm002249jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001889jsd", "acm001898jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001532jsd", "acm001543jsd", "acm001569jsd", "acm001588jsd", "acm001610jsd", "acm001642jsd", "acm001652jsd", "acm001683jsd", "acm001968jsd", "acm002055jsd" ], + "content" : [ "acm002257jsd", "acm002258jsd", "acm002259jsd", "acm002260jsd", "acm002261jsd", "acm002262jsd", "acm002263jsd", "acm002264jsd", "acm002265jsd" ] + }, + "acm002267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002267jsd", + "name" : "Audio", + "parentId" : "acm002274jsd", + "content" : [ "acm002292jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.mediaaccess", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "mediaaccess" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002268jsd" : { + "type" : "CodePackage", + "id" : "acm002268jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002269jsd" ] + }, + "acm002269jsd" : { + "type" : "CodePackage", + "id" : "acm002269jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002270jsd" ] + }, + "acm002270jsd" : { + "type" : "CodePackage", + "id" : "acm002270jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002271jsd" ] + }, + "acm002271jsd" : { + "type" : "CodePackage", + "id" : "acm002271jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002272jsd" ] + }, + "acm002272jsd" : { + "type" : "CodePackage", + "id" : "acm002272jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002273jsd" ] + }, + "acm002273jsd" : { + "type" : "CodePackage", + "id" : "acm002273jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002274jsd" ] + }, + "acm002274jsd" : { + "type" : "CodePackage", + "id" : "acm002274jsd", + "name" : "mediaaccess", + "parentId" : "acm002132jsd", + "content" : [ "acm002267jsd", "acm002293jsd", "acm002308jsd" ] + }, + "acm002275jsd" : { + "type" : "ControlElement", + "id" : "acm002275jsd", + "name" : "Audio" + }, + "acm002276jsd" : { + "type" : "ControlElement", + "id" : "acm002276jsd", + "name" : "getId" + }, + "acm002277jsd" : { + "type" : "ControlElement", + "id" : "acm002277jsd", + "name" : "setId" + }, + "acm002278jsd" : { + "type" : "ControlElement", + "id" : "acm002278jsd", + "name" : "getAlbum" + }, + "acm002279jsd" : { + "type" : "ControlElement", + "id" : "acm002279jsd", + "name" : "setAlbum" + }, + "acm002280jsd" : { + "type" : "ControlElement", + "id" : "acm002280jsd", + "name" : "getArtist" + }, + "acm002281jsd" : { + "type" : "ControlElement", + "id" : "acm002281jsd", + "name" : "setArtist" + }, + "acm002282jsd" : { + "type" : "ControlElement", + "id" : "acm002282jsd", + "name" : "getBitrate" + }, + "acm002283jsd" : { + "type" : "ControlElement", + "id" : "acm002283jsd", + "name" : "setBitrate" + }, + "acm002284jsd" : { + "type" : "ControlElement", + "id" : "acm002284jsd", + "name" : "getGenre" + }, + "acm002285jsd" : { + "type" : "ControlElement", + "id" : "acm002285jsd", + "name" : "setGenre" + }, + "acm002286jsd" : { + "type" : "ControlElement", + "id" : "acm002286jsd", + "name" : "getReleaseyear" + }, + "acm002287jsd" : { + "type" : "ControlElement", + "id" : "acm002287jsd", + "name" : "setReleaseyear" + }, + "acm002288jsd" : { + "type" : "ControlElement", + "id" : "acm002288jsd", + "name" : "getTitle" + }, + "acm002289jsd" : { + "type" : "ControlElement", + "id" : "acm002289jsd", + "name" : "setTitle" + }, + "acm002290jsd" : { + "type" : "ControlElement", + "id" : "acm002290jsd", + "name" : "getUserId" + }, + "acm002291jsd" : { + "type" : "ControlElement", + "id" : "acm002291jsd", + "name" : "setUserId" + }, + "acm002292jsd" : { + "type" : "ClassUnit", + "id" : "acm002292jsd", + "name" : "Audio", + "compilationUnitId" : "acm002267jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002275jsd", "acm002276jsd", "acm002277jsd", "acm002278jsd", "acm002279jsd", "acm002280jsd", "acm002281jsd", "acm002282jsd", "acm002283jsd", "acm002284jsd", "acm002285jsd", "acm002286jsd", "acm002287jsd", "acm002288jsd", "acm002289jsd", "acm002290jsd", "acm002291jsd" ] + }, + "acm002293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002293jsd", + "name" : "DbManager", + "parentId" : "acm002274jsd", + "content" : [ "acm002307jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.mediaaccess", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "mediaaccess" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002294jsd" : { + "type" : "CodePackage", + "id" : "acm002294jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002295jsd" ] + }, + "acm002295jsd" : { + "type" : "CodePackage", + "id" : "acm002295jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002296jsd" ] + }, + "acm002296jsd" : { + "type" : "CodePackage", + "id" : "acm002296jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002297jsd" ] + }, + "acm002297jsd" : { + "type" : "CodePackage", + "id" : "acm002297jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002298jsd" ] + }, + "acm002298jsd" : { + "type" : "CodePackage", + "id" : "acm002298jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002299jsd" ] + }, + "acm002299jsd" : { + "type" : "CodePackage", + "id" : "acm002299jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002300jsd" ] + }, + "acm002300jsd" : { + "type" : "CodePackage", + "id" : "acm002300jsd", + "name" : "mediaaccess", + "parentId" : null, + "content" : [ "acm002293jsd" ] + }, + "acm002301jsd" : { + "type" : "ControlElement", + "id" : "acm002301jsd", + "name" : "saveAudioFile" + }, + "acm002302jsd" : { + "type" : "ControlElement", + "id" : "acm002302jsd", + "name" : "getAllAudios" + }, + "acm002303jsd" : { + "type" : "ControlElement", + "id" : "acm002303jsd", + "name" : "getAudioByID" + }, + "acm002304jsd" : { + "type" : "ControlElement", + "id" : "acm002304jsd", + "name" : "clearTable" + }, + "acm002305jsd" : { + "type" : "ControlElement", + "id" : "acm002305jsd", + "name" : "clearExceptFromUser" + }, + "acm002306jsd" : { + "type" : "ControlElement", + "id" : "acm002306jsd", + "name" : "getAudioCount" + }, + "acm002307jsd" : { + "type" : "ClassUnit", + "id" : "acm002307jsd", + "name" : "DbManager", + "compilationUnitId" : "acm002293jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001642jsd", "acm002292jsd" ], + "content" : [ "acm002301jsd", "acm002302jsd", "acm002303jsd", "acm002304jsd", "acm002305jsd", "acm002306jsd" ] + }, + "acm002308jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002308jsd", + "name" : "MediaAccessImpl", + "parentId" : "acm002274jsd", + "content" : [ "acm002323jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.mediaaccess", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "mediaaccess" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002309jsd" : { + "type" : "CodePackage", + "id" : "acm002309jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002310jsd" ] + }, + "acm002310jsd" : { + "type" : "CodePackage", + "id" : "acm002310jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002311jsd" ] + }, + "acm002311jsd" : { + "type" : "CodePackage", + "id" : "acm002311jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002312jsd" ] + }, + "acm002312jsd" : { + "type" : "CodePackage", + "id" : "acm002312jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002313jsd" ] + }, + "acm002313jsd" : { + "type" : "CodePackage", + "id" : "acm002313jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002314jsd" ] + }, + "acm002314jsd" : { + "type" : "CodePackage", + "id" : "acm002314jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002315jsd" ] + }, + "acm002315jsd" : { + "type" : "CodePackage", + "id" : "acm002315jsd", + "name" : "mediaaccess", + "parentId" : null, + "content" : [ "acm002308jsd" ] + }, + "acm002316jsd" : { + "type" : "ControlElement", + "id" : "acm002316jsd", + "name" : "MediaAccessImpl" + }, + "acm002317jsd" : { + "type" : "ControlElement", + "id" : "acm002317jsd", + "name" : "upload" + }, + "acm002318jsd" : { + "type" : "ControlElement", + "id" : "acm002318jsd", + "name" : "getFileList" + }, + "acm002319jsd" : { + "type" : "ControlElement", + "id" : "acm002319jsd", + "name" : "download" + }, + "acm002320jsd" : { + "type" : "ControlElement", + "id" : "acm002320jsd", + "name" : "getFileContent" + }, + "acm002321jsd" : { + "type" : "ControlElement", + "id" : "acm002321jsd", + "name" : "removeAllData" + }, + "acm002322jsd" : { + "type" : "ControlElement", + "id" : "acm002322jsd", + "name" : "trimToPayload" + }, + "acm002323jsd" : { + "type" : "ClassUnit", + "id" : "acm002323jsd", + "name" : "MediaAccessImpl", + "compilationUnitId" : "acm002308jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001802jsd", "acm001811jsd", "acm001918jsd", "acm001938jsd", "acm001947jsd", "acm001956jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001543jsd", "acm001556jsd", "acm001569jsd", "acm001642jsd", "acm001652jsd", "acm002307jsd" ], + "content" : [ "acm002316jsd", "acm002317jsd", "acm002318jsd", "acm002319jsd", "acm002320jsd", "acm002321jsd", "acm002322jsd" ] + }, + "acm002324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002324jsd", + "name" : "MediaManagementImpl", + "parentId" : "acm002331jsd", + "content" : [ "acm002339jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.mediamanagement", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "mediamanagement" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002325jsd" : { + "type" : "CodePackage", + "id" : "acm002325jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002326jsd" ] + }, + "acm002326jsd" : { + "type" : "CodePackage", + "id" : "acm002326jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002327jsd" ] + }, + "acm002327jsd" : { + "type" : "CodePackage", + "id" : "acm002327jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002328jsd" ] + }, + "acm002328jsd" : { + "type" : "CodePackage", + "id" : "acm002328jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002329jsd" ] + }, + "acm002329jsd" : { + "type" : "CodePackage", + "id" : "acm002329jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002330jsd" ] + }, + "acm002330jsd" : { + "type" : "CodePackage", + "id" : "acm002330jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002331jsd" ] + }, + "acm002331jsd" : { + "type" : "CodePackage", + "id" : "acm002331jsd", + "name" : "mediamanagement", + "parentId" : "acm002132jsd", + "content" : [ "acm002324jsd" ] + }, + "acm002332jsd" : { + "type" : "ControlElement", + "id" : "acm002332jsd", + "name" : "MediaManagementImpl" + }, + "acm002333jsd" : { + "type" : "ControlElement", + "id" : "acm002333jsd", + "name" : "initMediaAccess" + }, + "acm002334jsd" : { + "type" : "ControlElement", + "id" : "acm002334jsd", + "name" : "initNext" + }, + "acm002335jsd" : { + "type" : "ControlElement", + "id" : "acm002335jsd", + "name" : "initPackaging" + }, + "acm002336jsd" : { + "type" : "ControlElement", + "id" : "acm002336jsd", + "name" : "upload" + }, + "acm002337jsd" : { + "type" : "ControlElement", + "id" : "acm002337jsd", + "name" : "getFileList" + }, + "acm002338jsd" : { + "type" : "ControlElement", + "id" : "acm002338jsd", + "name" : "download" + }, + "acm002339jsd" : { + "type" : "ClassUnit", + "id" : "acm002339jsd", + "name" : "MediaManagementImpl", + "compilationUnitId" : "acm002324jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001977jsd", "acm001986jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001543jsd", "acm001642jsd", "acm001652jsd", "acm001730jsd", "acm001909jsd", "acm001996jsd" ], + "content" : [ "acm002332jsd", "acm002333jsd", "acm002334jsd", "acm002335jsd", "acm002336jsd", "acm002337jsd", "acm002338jsd" ] + }, + "acm002340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002340jsd", + "name" : "PackagingImpl", + "parentId" : "acm002347jsd", + "content" : [ "acm002351jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.packaging", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "packaging" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002341jsd" : { + "type" : "CodePackage", + "id" : "acm002341jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002342jsd" ] + }, + "acm002342jsd" : { + "type" : "CodePackage", + "id" : "acm002342jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002343jsd" ] + }, + "acm002343jsd" : { + "type" : "CodePackage", + "id" : "acm002343jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002344jsd" ] + }, + "acm002344jsd" : { + "type" : "CodePackage", + "id" : "acm002344jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002345jsd" ] + }, + "acm002345jsd" : { + "type" : "CodePackage", + "id" : "acm002345jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002346jsd" ] + }, + "acm002346jsd" : { + "type" : "CodePackage", + "id" : "acm002346jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002347jsd" ] + }, + "acm002347jsd" : { + "type" : "CodePackage", + "id" : "acm002347jsd", + "name" : "packaging", + "parentId" : "acm002132jsd", + "content" : [ "acm002340jsd" ] + }, + "acm002348jsd" : { + "type" : "ControlElement", + "id" : "acm002348jsd", + "name" : "PackagingImpl" + }, + "acm002349jsd" : { + "type" : "ControlElement", + "id" : "acm002349jsd", + "name" : "addFileToZip" + }, + "acm002350jsd" : { + "type" : "ControlElement", + "id" : "acm002350jsd", + "name" : "zip" + }, + "acm002351jsd" : { + "type" : "ClassUnit", + "id" : "acm002351jsd", + "name" : "PackagingImpl", + "compilationUnitId" : "acm002340jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm002005jsd", "acm002014jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001543jsd", "acm001556jsd", "acm001569jsd" ], + "content" : [ "acm002348jsd", "acm002349jsd", "acm002350jsd" ] + }, + "acm002352jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002352jsd", + "name" : "ReEncoderImpl", + "parentId" : "acm002359jsd", + "content" : [ "acm002363jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.reencoder", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "reencoder" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002353jsd" : { + "type" : "CodePackage", + "id" : "acm002353jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002354jsd" ] + }, + "acm002354jsd" : { + "type" : "CodePackage", + "id" : "acm002354jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002355jsd" ] + }, + "acm002355jsd" : { + "type" : "CodePackage", + "id" : "acm002355jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002356jsd" ] + }, + "acm002356jsd" : { + "type" : "CodePackage", + "id" : "acm002356jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002357jsd" ] + }, + "acm002357jsd" : { + "type" : "CodePackage", + "id" : "acm002357jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002358jsd" ] + }, + "acm002358jsd" : { + "type" : "CodePackage", + "id" : "acm002358jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002359jsd" ] + }, + "acm002359jsd" : { + "type" : "CodePackage", + "id" : "acm002359jsd", + "name" : "reencoder", + "parentId" : "acm002132jsd", + "content" : [ "acm002352jsd" ] + }, + "acm002360jsd" : { + "type" : "ControlElement", + "id" : "acm002360jsd", + "name" : "ReEncoderImpl" + }, + "acm002361jsd" : { + "type" : "ControlElement", + "id" : "acm002361jsd", + "name" : "init" + }, + "acm002362jsd" : { + "type" : "ControlElement", + "id" : "acm002362jsd", + "name" : "download" + }, + "acm002363jsd" : { + "type" : "ClassUnit", + "id" : "acm002363jsd", + "name" : "ReEncoderImpl", + "compilationUnitId" : "acm002352jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001829jsd", "acm001838jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001543jsd", "acm001556jsd", "acm001569jsd", "acm001620jsd", "acm001642jsd", "acm001730jsd" ], + "content" : [ "acm002360jsd", "acm002361jsd", "acm002362jsd" ] + }, + "acm002364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002364jsd", + "name" : "TagWatermarkingImpl", + "parentId" : "acm002371jsd", + "content" : [ "acm002376jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.tagwatermarking", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "tagwatermarking" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002365jsd" : { + "type" : "CodePackage", + "id" : "acm002365jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002366jsd" ] + }, + "acm002366jsd" : { + "type" : "CodePackage", + "id" : "acm002366jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002367jsd" ] + }, + "acm002367jsd" : { + "type" : "CodePackage", + "id" : "acm002367jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002368jsd" ] + }, + "acm002368jsd" : { + "type" : "CodePackage", + "id" : "acm002368jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002369jsd" ] + }, + "acm002369jsd" : { + "type" : "CodePackage", + "id" : "acm002369jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002370jsd" ] + }, + "acm002370jsd" : { + "type" : "CodePackage", + "id" : "acm002370jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002371jsd" ] + }, + "acm002371jsd" : { + "type" : "CodePackage", + "id" : "acm002371jsd", + "name" : "tagwatermarking", + "parentId" : "acm002132jsd", + "content" : [ "acm002364jsd" ] + }, + "acm002372jsd" : { + "type" : "ControlElement", + "id" : "acm002372jsd", + "name" : "TagWatermarkingImpl" + }, + "acm002373jsd" : { + "type" : "ControlElement", + "id" : "acm002373jsd", + "name" : "init" + }, + "acm002374jsd" : { + "type" : "ControlElement", + "id" : "acm002374jsd", + "name" : "download" + }, + "acm002375jsd" : { + "type" : "ControlElement", + "id" : "acm002375jsd", + "name" : "watermark" + }, + "acm002376jsd" : { + "type" : "ClassUnit", + "id" : "acm002376jsd", + "name" : "TagWatermarkingImpl", + "compilationUnitId" : "acm002364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm001856jsd", "acm001865jsd" ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001556jsd", "acm001569jsd", "acm001642jsd", "acm001730jsd" ], + "content" : [ "acm002372jsd", "acm002373jsd", "acm002374jsd", "acm002375jsd" ] + }, + "acm002377jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002377jsd", + "name" : "DbManager", + "parentId" : "acm002384jsd", + "content" : [ "acm002388jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.userdbadapter", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "userdbadapter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002378jsd" : { + "type" : "CodePackage", + "id" : "acm002378jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002379jsd" ] + }, + "acm002379jsd" : { + "type" : "CodePackage", + "id" : "acm002379jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002380jsd" ] + }, + "acm002380jsd" : { + "type" : "CodePackage", + "id" : "acm002380jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002381jsd" ] + }, + "acm002381jsd" : { + "type" : "CodePackage", + "id" : "acm002381jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002382jsd" ] + }, + "acm002382jsd" : { + "type" : "CodePackage", + "id" : "acm002382jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002383jsd" ] + }, + "acm002383jsd" : { + "type" : "CodePackage", + "id" : "acm002383jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002384jsd" ] + }, + "acm002384jsd" : { + "type" : "CodePackage", + "id" : "acm002384jsd", + "name" : "userdbadapter", + "parentId" : "acm002132jsd", + "content" : [ "acm002377jsd", "acm002389jsd", "acm002411jsd" ] + }, + "acm002385jsd" : { + "type" : "ControlElement", + "id" : "acm002385jsd", + "name" : "saveUser" + }, + "acm002386jsd" : { + "type" : "ControlElement", + "id" : "acm002386jsd", + "name" : "findUser" + }, + "acm002387jsd" : { + "type" : "ControlElement", + "id" : "acm002387jsd", + "name" : "clearTable" + }, + "acm002388jsd" : { + "type" : "ClassUnit", + "id" : "acm002388jsd", + "name" : "DbManager", + "compilationUnitId" : "acm002377jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001588jsd", "acm001610jsd", "acm001683jsd", "acm002410jsd" ], + "content" : [ "acm002385jsd", "acm002386jsd", "acm002387jsd" ] + }, + "acm002389jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002389jsd", + "name" : "User", + "parentId" : "acm002384jsd", + "content" : [ "acm002410jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.userdbadapter", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "userdbadapter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002390jsd" : { + "type" : "CodePackage", + "id" : "acm002390jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002391jsd" ] + }, + "acm002391jsd" : { + "type" : "CodePackage", + "id" : "acm002391jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002392jsd" ] + }, + "acm002392jsd" : { + "type" : "CodePackage", + "id" : "acm002392jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002393jsd" ] + }, + "acm002393jsd" : { + "type" : "CodePackage", + "id" : "acm002393jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002394jsd" ] + }, + "acm002394jsd" : { + "type" : "CodePackage", + "id" : "acm002394jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002395jsd" ] + }, + "acm002395jsd" : { + "type" : "CodePackage", + "id" : "acm002395jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002396jsd" ] + }, + "acm002396jsd" : { + "type" : "CodePackage", + "id" : "acm002396jsd", + "name" : "userdbadapter", + "parentId" : null, + "content" : [ "acm002389jsd" ] + }, + "acm002397jsd" : { + "type" : "ControlElement", + "id" : "acm002397jsd", + "name" : "User" + }, + "acm002398jsd" : { + "type" : "ControlElement", + "id" : "acm002398jsd", + "name" : "User" + }, + "acm002399jsd" : { + "type" : "ControlElement", + "id" : "acm002399jsd", + "name" : "getFirstname" + }, + "acm002400jsd" : { + "type" : "ControlElement", + "id" : "acm002400jsd", + "name" : "setFirstname" + }, + "acm002401jsd" : { + "type" : "ControlElement", + "id" : "acm002401jsd", + "name" : "getLastname" + }, + "acm002402jsd" : { + "type" : "ControlElement", + "id" : "acm002402jsd", + "name" : "setLastname" + }, + "acm002403jsd" : { + "type" : "ControlElement", + "id" : "acm002403jsd", + "name" : "getEmail" + }, + "acm002404jsd" : { + "type" : "ControlElement", + "id" : "acm002404jsd", + "name" : "setEmail" + }, + "acm002405jsd" : { + "type" : "ControlElement", + "id" : "acm002405jsd", + "name" : "getPassword" + }, + "acm002406jsd" : { + "type" : "ControlElement", + "id" : "acm002406jsd", + "name" : "setPassword" + }, + "acm002407jsd" : { + "type" : "ControlElement", + "id" : "acm002407jsd", + "name" : "getId" + }, + "acm002408jsd" : { + "type" : "ControlElement", + "id" : "acm002408jsd", + "name" : "setId" + }, + "acm002409jsd" : { + "type" : "ControlElement", + "id" : "acm002409jsd", + "name" : "toString" + }, + "acm002410jsd" : { + "type" : "ClassUnit", + "id" : "acm002410jsd", + "name" : "User", + "compilationUnitId" : "acm002389jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002397jsd", "acm002398jsd", "acm002399jsd", "acm002400jsd", "acm002401jsd", "acm002402jsd", "acm002403jsd", "acm002404jsd", "acm002405jsd", "acm002406jsd", "acm002407jsd", "acm002408jsd", "acm002409jsd" ] + }, + "acm002411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002411jsd", + "name" : "UserDBAdapterImpl", + "parentId" : "acm002384jsd", + "content" : [ "acm002423jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.userdbadapter", "src", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "userdbadapter" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002412jsd" : { + "type" : "CodePackage", + "id" : "acm002412jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002413jsd" ] + }, + "acm002413jsd" : { + "type" : "CodePackage", + "id" : "acm002413jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002414jsd" ] + }, + "acm002414jsd" : { + "type" : "CodePackage", + "id" : "acm002414jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002415jsd" ] + }, + "acm002415jsd" : { + "type" : "CodePackage", + "id" : "acm002415jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002416jsd" ] + }, + "acm002416jsd" : { + "type" : "CodePackage", + "id" : "acm002416jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002417jsd" ] + }, + "acm002417jsd" : { + "type" : "CodePackage", + "id" : "acm002417jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002418jsd" ] + }, + "acm002418jsd" : { + "type" : "CodePackage", + "id" : "acm002418jsd", + "name" : "userdbadapter", + "parentId" : null, + "content" : [ "acm002411jsd" ] + }, + "acm002419jsd" : { + "type" : "ControlElement", + "id" : "acm002419jsd", + "name" : "UserDBAdapterImpl" + }, + "acm002420jsd" : { + "type" : "ControlElement", + "id" : "acm002420jsd", + "name" : "addUser" + }, + "acm002421jsd" : { + "type" : "ControlElement", + "id" : "acm002421jsd", + "name" : "getUserData" + }, + "acm002422jsd" : { + "type" : "ControlElement", + "id" : "acm002422jsd", + "name" : "removeAllData" + }, + "acm002423jsd" : { + "type" : "ClassUnit", + "id" : "acm002423jsd", + "name" : "UserDBAdapterImpl", + "compilationUnitId" : "acm002411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm002035jsd", "acm002044jsd" ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001588jsd", "acm001610jsd", "acm001683jsd", "acm002388jsd" ], + "content" : [ "acm002419jsd", "acm002420jsd", "acm002421jsd", "acm002422jsd" ] + }, + "acm002424jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002424jsd", + "name" : "SecurityUtil", + "parentId" : "acm002431jsd", + "content" : [ "acm002439jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.usermanagement", "ejbModule", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "usermanagement" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002425jsd" : { + "type" : "CodePackage", + "id" : "acm002425jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002426jsd" ] + }, + "acm002426jsd" : { + "type" : "CodePackage", + "id" : "acm002426jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002427jsd" ] + }, + "acm002427jsd" : { + "type" : "CodePackage", + "id" : "acm002427jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002428jsd" ] + }, + "acm002428jsd" : { + "type" : "CodePackage", + "id" : "acm002428jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002429jsd" ] + }, + "acm002429jsd" : { + "type" : "CodePackage", + "id" : "acm002429jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002430jsd" ] + }, + "acm002430jsd" : { + "type" : "CodePackage", + "id" : "acm002430jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002431jsd" ] + }, + "acm002431jsd" : { + "type" : "CodePackage", + "id" : "acm002431jsd", + "name" : "usermanagement", + "parentId" : "acm002132jsd", + "content" : [ "acm002424jsd", "acm002440jsd" ] + }, + "acm002432jsd" : { + "type" : "ControlElement", + "id" : "acm002432jsd", + "name" : "computeHash" + }, + "acm002433jsd" : { + "type" : "ControlElement", + "id" : "acm002433jsd", + "name" : "computeHash" + }, + "acm002434jsd" : { + "type" : "ControlElement", + "id" : "acm002434jsd", + "name" : "getSalt" + }, + "acm002435jsd" : { + "type" : "ControlElement", + "id" : "acm002435jsd", + "name" : "isEqual" + }, + "acm002436jsd" : { + "type" : "ControlElement", + "id" : "acm002436jsd", + "name" : "base64FromBytes" + }, + "acm002437jsd" : { + "type" : "ControlElement", + "id" : "acm002437jsd", + "name" : "bytesFrombase64" + }, + "acm002438jsd" : { + "type" : "ControlElement", + "id" : "acm002438jsd", + "name" : "concatenate" + }, + "acm002439jsd" : { + "type" : "ClassUnit", + "id" : "acm002439jsd", + "name" : "SecurityUtil", + "compilationUnitId" : "acm002424jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002432jsd", "acm002433jsd", "acm002434jsd", "acm002435jsd", "acm002436jsd", "acm002437jsd", "acm002438jsd" ] + }, + "acm002440jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002440jsd", + "name" : "UserManagementImpl", + "parentId" : "acm002431jsd", + "content" : [ "acm002452jsd" ], + "pathElements" : [ "Implementation", "mediastore.ejb.usermanagement", "ejbModule", "edu", "kit", "ipd", "sdq", "mediastore", "ejb", "usermanagement" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002441jsd" : { + "type" : "CodePackage", + "id" : "acm002441jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002442jsd" ] + }, + "acm002442jsd" : { + "type" : "CodePackage", + "id" : "acm002442jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002443jsd" ] + }, + "acm002443jsd" : { + "type" : "CodePackage", + "id" : "acm002443jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002444jsd" ] + }, + "acm002444jsd" : { + "type" : "CodePackage", + "id" : "acm002444jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002445jsd" ] + }, + "acm002445jsd" : { + "type" : "CodePackage", + "id" : "acm002445jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002446jsd" ] + }, + "acm002446jsd" : { + "type" : "CodePackage", + "id" : "acm002446jsd", + "name" : "ejb", + "parentId" : null, + "content" : [ "acm002447jsd" ] + }, + "acm002447jsd" : { + "type" : "CodePackage", + "id" : "acm002447jsd", + "name" : "usermanagement", + "parentId" : null, + "content" : [ "acm002440jsd" ] + }, + "acm002448jsd" : { + "type" : "ControlElement", + "id" : "acm002448jsd", + "name" : "UserManagementImpl" + }, + "acm002449jsd" : { + "type" : "ControlElement", + "id" : "acm002449jsd", + "name" : "initUserAdapter" + }, + "acm002450jsd" : { + "type" : "ControlElement", + "id" : "acm002450jsd", + "name" : "register" + }, + "acm002451jsd" : { + "type" : "ControlElement", + "id" : "acm002451jsd", + "name" : "login" + }, + "acm002452jsd" : { + "type" : "ClassUnit", + "id" : "acm002452jsd", + "name" : "UserManagementImpl", + "compilationUnitId" : "acm002440jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ "acm002064jsd", "acm002073jsd" ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001588jsd", "acm001610jsd", "acm001683jsd", "acm002026jsd" ], + "content" : [ "acm002448jsd", "acm002449jsd", "acm002450jsd", "acm002451jsd" ] + }, + "acm002453jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002453jsd", + "name" : "DownloadBean", + "parentId" : "acm002460jsd", + "content" : [ "acm002477jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002454jsd" : { + "type" : "CodePackage", + "id" : "acm002454jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002455jsd" ] + }, + "acm002455jsd" : { + "type" : "CodePackage", + "id" : "acm002455jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002456jsd" ] + }, + "acm002456jsd" : { + "type" : "CodePackage", + "id" : "acm002456jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002457jsd" ] + }, + "acm002457jsd" : { + "type" : "CodePackage", + "id" : "acm002457jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002458jsd" ] + }, + "acm002458jsd" : { + "type" : "CodePackage", + "id" : "acm002458jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002459jsd" ] + }, + "acm002459jsd" : { + "type" : "CodePackage", + "id" : "acm002459jsd", + "name" : "web", + "parentId" : "acm001342jsd", + "content" : [ "acm002460jsd", "acm002581jsd", "acm002593jsd" ] + }, + "acm002460jsd" : { + "type" : "CodePackage", + "id" : "acm002460jsd", + "name" : "beans", + "parentId" : "acm002459jsd", + "content" : [ "acm002453jsd", "acm002478jsd", "acm002494jsd", "acm002512jsd", "acm002524jsd", "acm002556jsd" ] + }, + "acm002461jsd" : { + "type" : "ControlElement", + "id" : "acm002461jsd", + "name" : "init" + }, + "acm002462jsd" : { + "type" : "ControlElement", + "id" : "acm002462jsd", + "name" : "initFacade" + }, + "acm002463jsd" : { + "type" : "ControlElement", + "id" : "acm002463jsd", + "name" : "download" + }, + "acm002464jsd" : { + "type" : "ControlElement", + "id" : "acm002464jsd", + "name" : "check" + }, + "acm002465jsd" : { + "type" : "ControlElement", + "id" : "acm002465jsd", + "name" : "getSessionBean" + }, + "acm002466jsd" : { + "type" : "ControlElement", + "id" : "acm002466jsd", + "name" : "setSessionBean" + }, + "acm002467jsd" : { + "type" : "ControlElement", + "id" : "acm002467jsd", + "name" : "getAudios" + }, + "acm002468jsd" : { + "type" : "ControlElement", + "id" : "acm002468jsd", + "name" : "setAudios" + }, + "acm002469jsd" : { + "type" : "ControlElement", + "id" : "acm002469jsd", + "name" : "getAudiosToDownload" + }, + "acm002470jsd" : { + "type" : "ControlElement", + "id" : "acm002470jsd", + "name" : "setAudiosToDownload" + }, + "acm002471jsd" : { + "type" : "ControlElement", + "id" : "acm002471jsd", + "name" : "getChecked" + }, + "acm002472jsd" : { + "type" : "ControlElement", + "id" : "acm002472jsd", + "name" : "setChecked" + }, + "acm002473jsd" : { + "type" : "ControlElement", + "id" : "acm002473jsd", + "name" : "getFile" + }, + "acm002474jsd" : { + "type" : "ControlElement", + "id" : "acm002474jsd", + "name" : "setFile" + }, + "acm002475jsd" : { + "type" : "ControlElement", + "id" : "acm002475jsd", + "name" : "addAudioToList" + }, + "acm002476jsd" : { + "type" : "ControlElement", + "id" : "acm002476jsd", + "name" : "generateId" + }, + "acm002477jsd" : { + "type" : "ClassUnit", + "id" : "acm002477jsd", + "name" : "DownloadBean", + "compilationUnitId" : "acm002453jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001510jsd", "acm001543jsd", "acm001556jsd", "acm001569jsd", "acm001642jsd", "acm001880jsd", "acm002523jsd" ], + "content" : [ "acm002461jsd", "acm002462jsd", "acm002463jsd", "acm002464jsd", "acm002465jsd", "acm002466jsd", "acm002467jsd", "acm002468jsd", "acm002469jsd", "acm002470jsd", "acm002471jsd", "acm002472jsd", "acm002473jsd", "acm002474jsd", "acm002475jsd", "acm002476jsd" ] + }, + "acm002478jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002478jsd", + "name" : "LoginBean", + "parentId" : "acm002460jsd", + "content" : [ "acm002493jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002479jsd" : { + "type" : "CodePackage", + "id" : "acm002479jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002480jsd" ] + }, + "acm002480jsd" : { + "type" : "CodePackage", + "id" : "acm002480jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002481jsd" ] + }, + "acm002481jsd" : { + "type" : "CodePackage", + "id" : "acm002481jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002482jsd" ] + }, + "acm002482jsd" : { + "type" : "CodePackage", + "id" : "acm002482jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002483jsd" ] + }, + "acm002483jsd" : { + "type" : "CodePackage", + "id" : "acm002483jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002484jsd" ] + }, + "acm002484jsd" : { + "type" : "CodePackage", + "id" : "acm002484jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002485jsd" ] + }, + "acm002485jsd" : { + "type" : "CodePackage", + "id" : "acm002485jsd", + "name" : "beans", + "parentId" : null, + "content" : [ "acm002478jsd" ] + }, + "acm002486jsd" : { + "type" : "ControlElement", + "id" : "acm002486jsd", + "name" : "dologin" + }, + "acm002487jsd" : { + "type" : "ControlElement", + "id" : "acm002487jsd", + "name" : "getSessionBean" + }, + "acm002488jsd" : { + "type" : "ControlElement", + "id" : "acm002488jsd", + "name" : "setSessionBean" + }, + "acm002489jsd" : { + "type" : "ControlElement", + "id" : "acm002489jsd", + "name" : "getUsername" + }, + "acm002490jsd" : { + "type" : "ControlElement", + "id" : "acm002490jsd", + "name" : "setUsername" + }, + "acm002491jsd" : { + "type" : "ControlElement", + "id" : "acm002491jsd", + "name" : "getPassword" + }, + "acm002492jsd" : { + "type" : "ControlElement", + "id" : "acm002492jsd", + "name" : "setPassword" + }, + "acm002493jsd" : { + "type" : "ClassUnit", + "id" : "acm002493jsd", + "name" : "LoginBean", + "compilationUnitId" : "acm002478jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001532jsd", "acm001610jsd", "acm001880jsd", "acm002523jsd" ], + "content" : [ "acm002486jsd", "acm002487jsd", "acm002488jsd", "acm002489jsd", "acm002490jsd", "acm002491jsd", "acm002492jsd" ] + }, + "acm002494jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002494jsd", + "name" : "RegisterBean", + "parentId" : "acm002460jsd", + "content" : [ "acm002511jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002495jsd" : { + "type" : "CodePackage", + "id" : "acm002495jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002496jsd" ] + }, + "acm002496jsd" : { + "type" : "CodePackage", + "id" : "acm002496jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002497jsd" ] + }, + "acm002497jsd" : { + "type" : "CodePackage", + "id" : "acm002497jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002498jsd" ] + }, + "acm002498jsd" : { + "type" : "CodePackage", + "id" : "acm002498jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002499jsd" ] + }, + "acm002499jsd" : { + "type" : "CodePackage", + "id" : "acm002499jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002500jsd" ] + }, + "acm002500jsd" : { + "type" : "CodePackage", + "id" : "acm002500jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002501jsd" ] + }, + "acm002501jsd" : { + "type" : "CodePackage", + "id" : "acm002501jsd", + "name" : "beans", + "parentId" : null, + "content" : [ "acm002494jsd" ] + }, + "acm002502jsd" : { + "type" : "ControlElement", + "id" : "acm002502jsd", + "name" : "getEmail" + }, + "acm002503jsd" : { + "type" : "ControlElement", + "id" : "acm002503jsd", + "name" : "setEmail" + }, + "acm002504jsd" : { + "type" : "ControlElement", + "id" : "acm002504jsd", + "name" : "getFirstName" + }, + "acm002505jsd" : { + "type" : "ControlElement", + "id" : "acm002505jsd", + "name" : "setFirstName" + }, + "acm002506jsd" : { + "type" : "ControlElement", + "id" : "acm002506jsd", + "name" : "getLastName" + }, + "acm002507jsd" : { + "type" : "ControlElement", + "id" : "acm002507jsd", + "name" : "setLastName" + }, + "acm002508jsd" : { + "type" : "ControlElement", + "id" : "acm002508jsd", + "name" : "getPassword" + }, + "acm002509jsd" : { + "type" : "ControlElement", + "id" : "acm002509jsd", + "name" : "setPassword" + }, + "acm002510jsd" : { + "type" : "ControlElement", + "id" : "acm002510jsd", + "name" : "doRegister" + }, + "acm002511jsd" : { + "type" : "ClassUnit", + "id" : "acm002511jsd", + "name" : "RegisterBean", + "compilationUnitId" : "acm002494jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001588jsd", "acm001683jsd", "acm001880jsd" ], + "content" : [ "acm002502jsd", "acm002503jsd", "acm002504jsd", "acm002505jsd", "acm002506jsd", "acm002507jsd", "acm002508jsd", "acm002509jsd", "acm002510jsd" ] + }, + "acm002512jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002512jsd", + "name" : "SessionBean", + "parentId" : "acm002460jsd", + "content" : [ "acm002523jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002513jsd" : { + "type" : "CodePackage", + "id" : "acm002513jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002514jsd" ] + }, + "acm002514jsd" : { + "type" : "CodePackage", + "id" : "acm002514jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002515jsd" ] + }, + "acm002515jsd" : { + "type" : "CodePackage", + "id" : "acm002515jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002516jsd" ] + }, + "acm002516jsd" : { + "type" : "CodePackage", + "id" : "acm002516jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002517jsd" ] + }, + "acm002517jsd" : { + "type" : "CodePackage", + "id" : "acm002517jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002518jsd" ] + }, + "acm002518jsd" : { + "type" : "CodePackage", + "id" : "acm002518jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002519jsd" ] + }, + "acm002519jsd" : { + "type" : "CodePackage", + "id" : "acm002519jsd", + "name" : "beans", + "parentId" : null, + "content" : [ "acm002512jsd" ] + }, + "acm002520jsd" : { + "type" : "ControlElement", + "id" : "acm002520jsd", + "name" : "SessionBean" + }, + "acm002521jsd" : { + "type" : "ControlElement", + "id" : "acm002521jsd", + "name" : "getCurrentUser" + }, + "acm002522jsd" : { + "type" : "ControlElement", + "id" : "acm002522jsd", + "name" : "setCurrentUser" + }, + "acm002523jsd" : { + "type" : "ClassUnit", + "id" : "acm002523jsd", + "name" : "SessionBean", + "compilationUnitId" : "acm002512jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001532jsd" ], + "content" : [ "acm002520jsd", "acm002521jsd", "acm002522jsd" ] + }, + "acm002524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002524jsd", + "name" : "UploadBean", + "parentId" : "acm002460jsd", + "content" : [ "acm002555jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002525jsd" : { + "type" : "CodePackage", + "id" : "acm002525jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002526jsd" ] + }, + "acm002526jsd" : { + "type" : "CodePackage", + "id" : "acm002526jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002527jsd" ] + }, + "acm002527jsd" : { + "type" : "CodePackage", + "id" : "acm002527jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002528jsd" ] + }, + "acm002528jsd" : { + "type" : "CodePackage", + "id" : "acm002528jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002529jsd" ] + }, + "acm002529jsd" : { + "type" : "CodePackage", + "id" : "acm002529jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002530jsd" ] + }, + "acm002530jsd" : { + "type" : "CodePackage", + "id" : "acm002530jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002531jsd" ] + }, + "acm002531jsd" : { + "type" : "CodePackage", + "id" : "acm002531jsd", + "name" : "beans", + "parentId" : null, + "content" : [ "acm002524jsd" ] + }, + "acm002532jsd" : { + "type" : "ControlElement", + "id" : "acm002532jsd", + "name" : "initFacade" + }, + "acm002533jsd" : { + "type" : "ControlElement", + "id" : "acm002533jsd", + "name" : "getFile" + }, + "acm002534jsd" : { + "type" : "ControlElement", + "id" : "acm002534jsd", + "name" : "setFile" + }, + "acm002535jsd" : { + "type" : "ControlElement", + "id" : "acm002535jsd", + "name" : "upload" + }, + "acm002536jsd" : { + "type" : "ControlElement", + "id" : "acm002536jsd", + "name" : "getAlbum" + }, + "acm002537jsd" : { + "type" : "ControlElement", + "id" : "acm002537jsd", + "name" : "setAlbum" + }, + "acm002538jsd" : { + "type" : "ControlElement", + "id" : "acm002538jsd", + "name" : "getArtist" + }, + "acm002539jsd" : { + "type" : "ControlElement", + "id" : "acm002539jsd", + "name" : "setArtist" + }, + "acm002540jsd" : { + "type" : "ControlElement", + "id" : "acm002540jsd", + "name" : "getBitrate" + }, + "acm002541jsd" : { + "type" : "ControlElement", + "id" : "acm002541jsd", + "name" : "setBitrate" + }, + "acm002542jsd" : { + "type" : "ControlElement", + "id" : "acm002542jsd", + "name" : "getGenre" + }, + "acm002543jsd" : { + "type" : "ControlElement", + "id" : "acm002543jsd", + "name" : "setGenre" + }, + "acm002544jsd" : { + "type" : "ControlElement", + "id" : "acm002544jsd", + "name" : "getReleaseyear" + }, + "acm002545jsd" : { + "type" : "ControlElement", + "id" : "acm002545jsd", + "name" : "setReleaseyear" + }, + "acm002546jsd" : { + "type" : "ControlElement", + "id" : "acm002546jsd", + "name" : "getTitle" + }, + "acm002547jsd" : { + "type" : "ControlElement", + "id" : "acm002547jsd", + "name" : "setTitle" + }, + "acm002548jsd" : { + "type" : "ControlElement", + "id" : "acm002548jsd", + "name" : "getUploader" + }, + "acm002549jsd" : { + "type" : "ControlElement", + "id" : "acm002549jsd", + "name" : "setUploader" + }, + "acm002550jsd" : { + "type" : "ControlElement", + "id" : "acm002550jsd", + "name" : "getSessionBean" + }, + "acm002551jsd" : { + "type" : "ControlElement", + "id" : "acm002551jsd", + "name" : "setSessionBean" + }, + "acm002552jsd" : { + "type" : "ControlElement", + "id" : "acm002552jsd", + "name" : "getDownloadBean" + }, + "acm002553jsd" : { + "type" : "ControlElement", + "id" : "acm002553jsd", + "name" : "setDownloadBean" + }, + "acm002554jsd" : { + "type" : "ControlElement", + "id" : "acm002554jsd", + "name" : "toString" + }, + "acm002555jsd" : { + "type" : "ClassUnit", + "id" : "acm002555jsd", + "name" : "UploadBean", + "compilationUnitId" : "acm002524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001481jsd", "acm001510jsd", "acm001556jsd", "acm001569jsd", "acm001652jsd", "acm001880jsd", "acm002477jsd", "acm002523jsd" ], + "content" : [ "acm002532jsd", "acm002533jsd", "acm002534jsd", "acm002535jsd", "acm002536jsd", "acm002537jsd", "acm002538jsd", "acm002539jsd", "acm002540jsd", "acm002541jsd", "acm002542jsd", "acm002543jsd", "acm002544jsd", "acm002545jsd", "acm002546jsd", "acm002547jsd", "acm002548jsd", "acm002549jsd", "acm002550jsd", "acm002551jsd", "acm002552jsd", "acm002553jsd", "acm002554jsd" ] + }, + "acm002556jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002556jsd", + "name" : "WebBeanManager", + "parentId" : "acm002460jsd", + "content" : [ "acm002569jsd", "acm002573jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "beans" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002557jsd" : { + "type" : "CodePackage", + "id" : "acm002557jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002558jsd" ] + }, + "acm002558jsd" : { + "type" : "CodePackage", + "id" : "acm002558jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002559jsd" ] + }, + "acm002559jsd" : { + "type" : "CodePackage", + "id" : "acm002559jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002560jsd" ] + }, + "acm002560jsd" : { + "type" : "CodePackage", + "id" : "acm002560jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002561jsd" ] + }, + "acm002561jsd" : { + "type" : "CodePackage", + "id" : "acm002561jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002562jsd" ] + }, + "acm002562jsd" : { + "type" : "CodePackage", + "id" : "acm002562jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002563jsd" ] + }, + "acm002563jsd" : { + "type" : "CodePackage", + "id" : "acm002563jsd", + "name" : "beans", + "parentId" : null, + "content" : [ "acm002556jsd" ] + }, + "acm002564jsd" : { + "type" : "ControlElement", + "id" : "acm002564jsd", + "name" : "initRequiredInterface" + }, + "acm002565jsd" : { + "type" : "ControlElement", + "id" : "acm002565jsd", + "name" : "isLocal" + }, + "acm002566jsd" : { + "type" : "ControlElement", + "id" : "acm002566jsd", + "name" : "WebBean" + }, + "acm002567jsd" : { + "type" : "ControlElement", + "id" : "acm002567jsd", + "name" : "initRequiredInterface" + }, + "acm002568jsd" : { + "type" : "ControlElement", + "id" : "acm002568jsd", + "name" : "isLocal" + }, + "acm002569jsd" : { + "type" : "ClassUnit", + "id" : "acm002569jsd", + "name" : "WebBeanManager", + "compilationUnitId" : "acm002556jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001347jsd", "acm001692jsd", "acm002573jsd" ], + "content" : [ "acm002564jsd", "acm002565jsd", "acm002566jsd", "acm002567jsd", "acm002568jsd" ] + }, + "acm002570jsd" : { + "type" : "ControlElement", + "id" : "acm002570jsd", + "name" : "WebBean" + }, + "acm002571jsd" : { + "type" : "ControlElement", + "id" : "acm002571jsd", + "name" : "initRequiredInterface" + }, + "acm002572jsd" : { + "type" : "ControlElement", + "id" : "acm002572jsd", + "name" : "isLocal" + }, + "acm002573jsd" : { + "type" : "ClassUnit", + "id" : "acm002573jsd", + "name" : "WebBean", + "compilationUnitId" : "acm002556jsd", + "parentDatatypeId" : "acm002569jsd", + "extendedDataTypesIds" : [ "acm001347jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001692jsd" ], + "content" : [ "acm002570jsd", "acm002571jsd", "acm002572jsd" ] + }, + "acm002574jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002574jsd", + "name" : "MainFilter", + "parentId" : "acm002581jsd", + "content" : [ "acm002585jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "filters" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002575jsd" : { + "type" : "CodePackage", + "id" : "acm002575jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002576jsd" ] + }, + "acm002576jsd" : { + "type" : "CodePackage", + "id" : "acm002576jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002577jsd" ] + }, + "acm002577jsd" : { + "type" : "CodePackage", + "id" : "acm002577jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002578jsd" ] + }, + "acm002578jsd" : { + "type" : "CodePackage", + "id" : "acm002578jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002579jsd" ] + }, + "acm002579jsd" : { + "type" : "CodePackage", + "id" : "acm002579jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002580jsd" ] + }, + "acm002580jsd" : { + "type" : "CodePackage", + "id" : "acm002580jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002581jsd" ] + }, + "acm002581jsd" : { + "type" : "CodePackage", + "id" : "acm002581jsd", + "name" : "filters", + "parentId" : "acm002459jsd", + "content" : [ "acm002574jsd" ] + }, + "acm002582jsd" : { + "type" : "ControlElement", + "id" : "acm002582jsd", + "name" : "destroy" + }, + "acm002583jsd" : { + "type" : "ControlElement", + "id" : "acm002583jsd", + "name" : "doFilter" + }, + "acm002584jsd" : { + "type" : "ControlElement", + "id" : "acm002584jsd", + "name" : "init" + }, + "acm002585jsd" : { + "type" : "ClassUnit", + "id" : "acm002585jsd", + "name" : "MainFilter", + "compilationUnitId" : "acm002574jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002523jsd" ], + "content" : [ "acm002582jsd", "acm002583jsd", "acm002584jsd" ] + }, + "acm002586jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002586jsd", + "name" : "MessageUtil", + "parentId" : "acm002593jsd", + "content" : [ "acm002597jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002587jsd" : { + "type" : "CodePackage", + "id" : "acm002587jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002588jsd" ] + }, + "acm002588jsd" : { + "type" : "CodePackage", + "id" : "acm002588jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002589jsd" ] + }, + "acm002589jsd" : { + "type" : "CodePackage", + "id" : "acm002589jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002590jsd" ] + }, + "acm002590jsd" : { + "type" : "CodePackage", + "id" : "acm002590jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002591jsd" ] + }, + "acm002591jsd" : { + "type" : "CodePackage", + "id" : "acm002591jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002592jsd" ] + }, + "acm002592jsd" : { + "type" : "CodePackage", + "id" : "acm002592jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002593jsd" ] + }, + "acm002593jsd" : { + "type" : "CodePackage", + "id" : "acm002593jsd", + "name" : "utils", + "parentId" : "acm002459jsd", + "content" : [ "acm002586jsd", "acm002598jsd" ] + }, + "acm002594jsd" : { + "type" : "ControlElement", + "id" : "acm002594jsd", + "name" : "showError" + }, + "acm002595jsd" : { + "type" : "ControlElement", + "id" : "acm002595jsd", + "name" : "showInfo" + }, + "acm002596jsd" : { + "type" : "ControlElement", + "id" : "acm002596jsd", + "name" : "showSuccess" + }, + "acm002597jsd" : { + "type" : "ClassUnit", + "id" : "acm002597jsd", + "name" : "MessageUtil", + "compilationUnitId" : "acm002586jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002594jsd", "acm002595jsd", "acm002596jsd" ] + }, + "acm002598jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002598jsd", + "name" : "SessionUtil", + "parentId" : "acm002593jsd", + "content" : [ "acm002607jsd" ], + "pathElements" : [ "Implementation", "mediastore.web", "src", "edu", "kit", "ipd", "sdq", "mediastore", "web", "utils" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002599jsd" : { + "type" : "CodePackage", + "id" : "acm002599jsd", + "name" : "edu", + "parentId" : null, + "content" : [ "acm002600jsd" ] + }, + "acm002600jsd" : { + "type" : "CodePackage", + "id" : "acm002600jsd", + "name" : "kit", + "parentId" : null, + "content" : [ "acm002601jsd" ] + }, + "acm002601jsd" : { + "type" : "CodePackage", + "id" : "acm002601jsd", + "name" : "ipd", + "parentId" : null, + "content" : [ "acm002602jsd" ] + }, + "acm002602jsd" : { + "type" : "CodePackage", + "id" : "acm002602jsd", + "name" : "sdq", + "parentId" : null, + "content" : [ "acm002603jsd" ] + }, + "acm002603jsd" : { + "type" : "CodePackage", + "id" : "acm002603jsd", + "name" : "mediastore", + "parentId" : null, + "content" : [ "acm002604jsd" ] + }, + "acm002604jsd" : { + "type" : "CodePackage", + "id" : "acm002604jsd", + "name" : "web", + "parentId" : null, + "content" : [ "acm002605jsd" ] + }, + "acm002605jsd" : { + "type" : "CodePackage", + "id" : "acm002605jsd", + "name" : "utils", + "parentId" : null, + "content" : [ "acm002598jsd" ] + }, + "acm002606jsd" : { + "type" : "ControlElement", + "id" : "acm002606jsd", + "name" : "isLoggedIn" + }, + "acm002607jsd" : { + "type" : "ClassUnit", + "id" : "acm002607jsd", + "name" : "SessionUtil", + "compilationUnitId" : "acm002598jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002606jsd" ] + } + } + }, + "content" : [ "acm001338jsd" ] +} \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository new file mode 100644 index 000000000..b278945c1 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository @@ -0,0 +1,915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository_diagram b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository_diagram new file mode 100644 index 000000000..7639e490d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.repository_diagram @@ -0,0 +1,4539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment new file mode 100644 index 000000000..9c836c96f --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment_diagram b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment_diagram new file mode 100644 index 000000000..bf8be2e5d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms.resourceenvironment_diagram @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation new file mode 100644 index 000000000..73fc8876d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation_diagram b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation_diagram new file mode 100644 index 000000000..76535ecbb --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.allocation_diagram @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system new file mode 100644 index 000000000..c25e175c0 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system_diagram b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system_diagram new file mode 100644 index 000000000..1a06e9deb --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base.system_diagram @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel new file mode 100644 index 000000000..b135e043b --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel_diagram b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel_diagram new file mode 100644 index 000000000..ad209eeab --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/pcm/ms_base_usage_all.usagemodel_diagram @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/model_2016/uml/ms.uml b/tests-base/src/main/resources/benchmark/mediastore/model_2016/uml/ms.uml new file mode 100644 index 000000000..79647a24f --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/model_2016/uml/ms.uml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/mediastore/text_2016/README.md b/tests-base/src/main/resources/benchmark/mediastore/text_2016/README.md new file mode 100644 index 000000000..c1b84a9b6 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/text_2016/README.md @@ -0,0 +1,12 @@ +# Mediastore 2016 + +The text was taken from https://books.google.de/books?id=g6BSDQAAQBAJ + + +## Text Adaptation + + - + +## License + +The text we extracted from their documentation originates from the publication [Modeling and Simulating Software Architectures: The Palladio Approach](https://books.google.de/books?id=g6BSDQAAQBAJ). \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/mediastore/text_2016/mediastore.txt b/tests-base/src/main/resources/benchmark/mediastore/text_2016/mediastore.txt new file mode 100644 index 000000000..d54b314ca --- /dev/null +++ b/tests-base/src/main/resources/benchmark/mediastore/text_2016/mediastore.txt @@ -0,0 +1,37 @@ +One of the main components of Media Store is a server-side web front end, namely the Facade component, which delivers websites to the users and provides session management. +To meet the user authentication requirement, registration and log-in have to be offered. +To this end, the Facade component delivers the corresponding registration and log-in pages to users. +After the user has logged into the system, he or she will be forwarded to a site to list the audio files. +The main functionality, however, is provided by other components. +In addition, users can browse, download, and upload audio files using the Facade component. +Application business logic is provided by a central business logic component, called the MediaManagement component. +The MediaManagement component coordinates the communication of other components. +Furthermore, it fetches audio files from a specific location (e.g., a dedicated file server or a local disk) when processing download requests. +As described above, to communicate with the system, users' registration and authentication are needed. +The UserManagement component answers the requests for registration and authentication. +The UserDBAdapter component queries the database. +When a user logs into the system, Media Store does not store the password in plain text, but rather the UserManagement component implements further functions to hash and salt the passwords. +To reduce the risk of copyright infringements, all downloaded files are watermarked. +To this end, the requested files are first reencoded. +The re-encoded files are then digitally and individually watermarked by the TagWatermarking component. +Afterward, the MediaManagement component forwards these audio files from the TagWatermarking component to the user. +Hence, each downloaded audio file is uniquely connected to a user ID can can be associated with the user if the audio file should ever appear in the public Internet. +To allow users to download several files at a time, we provide the Packaging component, which archives multiple audio files into a single compressed file. +The ReEncoder component converts the bit rates of audio files. +This can result in reduction of file sizes. +The persistence tier contains components that are concerned with the storage of audio files and their meta-data. +The Database component represents an actual database (e.g., MySQL). +It stores user information and meta-data of audio files such as the name and the genre. +After the user calls the page to list all available audio files, AudioAccess creates a query that is sent to the Database component. +When a user uploads an audio file, the MediaAccess component stores it at the predefined location. +The MediaAccess component encapsulates database access for meta-data of audio files. +Furthermore, it fetches a list of all available audio files. +By contrast, the UserDBAdapter component provides all functions required in order to encapsulate database access for the user data. +The UserDBAdapter component creates a query based on the user's request. +The Database component then executes the actual query for files. +All salted hashes of passwords are also stored in the Database component. +By contrast, all audio files are stored in a specific location (e.g., a dedicated file server or a local disk) to decouple the DataStorage from the database. +When a user requests files to download, the MediaAccess component fetches the associated meta-data from the Database. +Afterwards, based on the user request and the corresponding meta-data, the file will be retrieved from the DataStorage. +When a user uploads a file, it will be stored in the DataStorage without any change. +However, a download can cause re-encoding of the audio file. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teammates/README.md b/tests-base/src/main/resources/benchmark/teammates/README.md new file mode 100644 index 000000000..82b709491 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/README.md @@ -0,0 +1,23 @@ +# TEAMMATES Statistics (cloc) +``` +------------------------------------------------------------------------------- +Language files blank comment code +------------------------------------------------------------------------------- +JSON 93 60 0 91232 +Java 826 22948 11357 90733 +TypeScript 782 7652 5963 53747 +HTML 298 706 85 16447 +Sass 121 441 4 2129 +Markdown 35 764 0 1622 +XML 10 40 35 854 +YAML 13 42 114 696 +Gradle 1 69 11 509 +Bourne Shell 3 32 112 128 +CSS 2 27 6 120 +JavaScript 6 4 0 100 +DOS Batch 1 21 2 68 +Dockerfile 3 6 0 11 +------------------------------------------------------------------------------- +SUM: 2194 32812 17689 258396 +------------------------------------------------------------------------------- +``` diff --git a/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/README.md b/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/README.md new file mode 100644 index 000000000..51d37a52e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/README.md @@ -0,0 +1,3 @@ +All images that were removed from the benchmark texts. Taken directly from [TEAMMATES Github Repo](https://github.com/TEAMMATES/teammates/tree/afb4b74677f4bf3d1e805fe59ad72a8d71a4ec34/src/main/webapp/dev/images) + +For the tracelinks subtext like "HTML, CSS.." in highlevelArchitecture.png was ignored. "UI (browser)" and "UI (server)" were grouped diff --git a/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/highlevelArchitecture.png b/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/highlevelArchitecture.png new file mode 100644 index 0000000000000000000000000000000000000000..153eee5788aebb9085589d963ef6ac071ba385f9 GIT binary patch literal 32613 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�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 I4dlcB2g43S<^TWy literal 0 HcmV?d00001 diff --git a/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/packageDiagram.png b/tests-base/src/main/resources/benchmark/teammates/diagrams_2015/packageDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..f7835351a6401a216ec12d60e5f39a0969e3e89c GIT binary patch literal 33672 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

    3wF_%H_S9uW>S8whABx5oZZ=0f{$6D7{p?+ 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 literal 0 HcmV?d00001 diff --git a/tests-base/src/main/resources/benchmark/teammates/diagrams_2023/packageDiagram.png b/tests-base/src/main/resources/benchmark/teammates/diagrams_2023/packageDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e8553f42d3e4c9c6e53687868351a8a99279ed94 GIT binary patch literal 58263 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 literal 0 HcmV?d00001 diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv new file mode 100644 index 000000000..d6f83c0e4 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv @@ -0,0 +1,47 @@ +modelElementID,sentence +_1lMqsKESEeu-mYqkDskRow,3 +_1lMqsKESEeu-mYqkDskRow,4 +_9JlCIKESEeu-mYqkDskRow,9 +_KGVMcKETEeu-mYqkDskRow,9 +_Bae2oKETEeu-mYqkDskRow,13 +_GaP8QKETEeu-mYqkDskRow,15 +_zUmhEKESEeu-mYqkDskRow,17 +_1lMqsKESEeu-mYqkDskRow,23 +_3LCnIKESEeu-mYqkDskRow,34 +_1lMqsKESEeu-mYqkDskRow,54 +_3LCnIKESEeu-mYqkDskRow,60 +_3LCnIKESEeu-mYqkDskRow,61 +_9JlCIKESEeu-mYqkDskRow,61 +_3LCnIKESEeu-mYqkDskRow,62 +_1lMqsKESEeu-mYqkDskRow,65 +_Bae2oKETEeu-mYqkDskRow,69 +_3LCnIKESEeu-mYqkDskRow,72 +_3LCnIKESEeu-mYqkDskRow,73 +_1lMqsKESEeu-mYqkDskRow,73 +_1lMqsKESEeu-mYqkDskRow,74 +_1lMqsKESEeu-mYqkDskRow,75 +_Bae2oKETEeu-mYqkDskRow,77 +_1lMqsKESEeu-mYqkDskRow,81 +_3LCnIKESEeu-mYqkDskRow,81 +_9JlCIKESEeu-mYqkDskRow,87 +_9JlCIKESEeu-mYqkDskRow,113 +_KGVMcKETEeu-mYqkDskRow,117 +_9JlCIKESEeu-mYqkDskRow,118 +_KGVMcKETEeu-mYqkDskRow,121 +_3LCnIKESEeu-mYqkDskRow,121 +_9JlCIKESEeu-mYqkDskRow,122 +_KGVMcKETEeu-mYqkDskRow,124 +_zUmhEKESEeu-mYqkDskRow,126 +_9JlCIKESEeu-mYqkDskRow,129 +_3LCnIKESEeu-mYqkDskRow,130 +_KGVMcKETEeu-mYqkDskRow,133 +_KGVMcKETEeu-mYqkDskRow,136 +_zUmhEKESEeu-mYqkDskRow,152 +_Bae2oKETEeu-mYqkDskRow,161 +_Bae2oKETEeu-mYqkDskRow,167 +_Bae2oKETEeu-mYqkDskRow,169 +_1lMqsKESEeu-mYqkDskRow,174 +_zUmhEKESEeu-mYqkDskRow,175 +_3LCnIKESEeu-mYqkDskRow,176 +_9JlCIKESEeu-mYqkDskRow,177 +_GaP8QKETEeu-mYqkDskRow,182 diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv new file mode 100644 index 000000000..37259bf90 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv @@ -0,0 +1,2 @@ +missingModelElementID +_EIoe8KETEeu-mYqkDskRow diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv new file mode 100644 index 000000000..a61fc168c --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv @@ -0,0 +1,220 @@ +sentenceID,codeID +1,src/client/java/teammates/client/ +1,src/e2e/java/teammates/e2e/ +1,src/main/java/teammates/common/ +1,src/main/java/teammates/logic/ +1,src/main/java/teammates/storage/ +1,src/main/java/teammates/ui/ +1,src/test/java/teammates/common/ +1,src/test/java/teammates/logic/ +1,src/test/java/teammates/storage/ +1,src/test/java/teammates/test/ +1,src/test/java/teammates/ui/ +4,src/main/java/teammates/ui/ +4,src/test/java/teammates/ui/ +5,src/main/java/teammates/ui/ +5,src/test/java/teammates/ui/ +7,src/main/java/teammates/logic/ +7,src/main/java/teammates/ui/ +7,src/test/java/teammates/logic/ +7,src/test/java/teammates/ui/ +9,src/main/java/teammates/storage/ +9,src/test/java/teammates/storage/ +10,src/test/java/teammates/test/ +15,src/e2e/java/teammates/e2e/ +18,src/client/java/teammates/client/ +20,src/main/java/teammates/common/ +20,src/test/java/teammates/common/ +22,src/main/java/teammates/logic/ +22,src/main/java/teammates/ui/webapi/ +25,src/main/java/teammates/ui/ +25,src/test/java/teammates/ui/ +29,src/main/java/teammates/ui/ +29,src/test/java/teammates/ui/ +32,src/main/java/teammates/ui/servlets/OriginCheckFilter.java +32,src/test/java/teammates/ui/servlets/OriginCheckFilterTest.java +39,src/main/java/teammates/ui/servlets/WebPageServlet.java +39,src/test/java/teammates/ui/servlets/WebPageServletTest.java +40,src/main/java/teammates/ui/servlets/WebPageServlet.java +40,src/test/java/teammates/ui/servlets/WebPageServletTest.java +43,src/main/java/teammates/ui/servlets/WebApiServlet.java +43,src/test/java/teammates/ui/servlets/WebApiServletTest.java +44,src/main/java/teammates/ui/servlets/WebApiServlet.java +44,src/test/java/teammates/ui/servlets/WebApiServletTest.java +44,src/main/java/teammates/ui/webapi/ActionFactory.java +44,src/test/java/teammates/ui/webapi/ActionFactoryTest.java +44,src/main/java/teammates/ui/webapi/Action.java +44,src/test/java/teammates/ui/webapi/BaseActionTest.java +45,src/main/java/teammates/ui/servlets/WebApiServlet.java +45,src/test/java/teammates/ui/servlets/WebApiServletTest.java +46,src/main/java/teammates/ui/webapi/Action.java +47,src/test/java/teammates/ui/webapi/BaseActionTest.java +47,src/main/java/teammates/logic/ +47,src/test/java/teammates/logic/ +48,src/main/java/teammates/ui/webapi/Action.java +48,src/test/java/teammates/ui/webapi/BaseActionTest.java +48,src/main/java/teammates/ui/webapi/ActionResult.java +49,src/main/java/teammates/ui/webapi/JsonResult.java +50,src/main/java/teammates/ui/servlets/WebApiServlet.java +50,src/test/java/teammates/ui/servlets/WebApiServletTest.java +52,src/main/java/teammates/ui/webapi/ +66,src/main/java/teammates/ui/webapi/CompileLogsAction.java +67,src/test/java/teammates/ui/webapi/CompileLogsActionTest.java +68,src/main/java/teammates/logic/ +68,src/test/java/teammates/logic/ +75,src/main/java/teammates/common/util/Const.java +76,src/main/java/teammates/ui/webapi/Action.java +76,src/test/java/teammates/ui/webapi/BaseActionTest.java +77,src/main/java/teammates/logic/ +77,src/test/java/teammates/logic/ +78,src/main/java/teammates/logic/ +78,src/test/java/teammates/logic/ +81,src/main/java/teammates/ui/ +81,src/test/java/teammates/ui/ +84,src/test/java/teammates/logic/api/ +84,src/main/java/teammates/logic/api/ +84,src/test/java/teammates/logic/core/ +84,src/main/java/teammates/logic/core/ +85,src/test/java/teammates/logic/api/ +85,src/main/java/teammates/logic/api/ +85,src/main/java/teammates/ui/ +85,src/test/java/teammates/ui/ +86,src/test/java/teammates/logic/core/ +86,src/main/java/teammates/logic/core/ +87,src/main/java/teammates/logic/ +87,src/test/java/teammates/logic/ +87,src/main/java/teammates/logic/api/Logic.java +87,src/test/java/teammates/logic/api/BaseLogicTest.java +87,src/main/java/teammates/logic/api/EmailGenerator.java +87,src/test/java/teammates/logic/api/EmailGeneratorTest.java +87,src/main/java/teammates/logic/api/EmailSender.java +87,src/test/java/teammates/logic/api/EmailSenderTest.java +87,src/main/java/teammates/logic/api/TaskQueuer.java +88,src/main/java/teammates/storage/ +88,src/test/java/teammates/storage/ +90,src/main/java/teammates/logic/api/EmailGenerator.java +90,src/test/java/teammates/logic/api/EmailGeneratorTest.java +91,src/main/java/teammates/logic/api/EmailSender.java +91,src/test/java/teammates/logic/api/EmailSenderTest.java +93,src/main/java/teammates/logic/api/TaskQueuer.java +97,src/main/java/teammates/logic/ +97,src/main/java/teammates/ui/ +97,src/test/java/teammates/logic/ +97,src/test/java/teammates/ui/ +100,src/main/java/teammates/common/exception/InvalidParametersException.java +101,src/main/java/teammates/common/exception/EntityAlreadyExistsException.java +101,src/main/java/teammates/storage/ +101,src/test/java/teammates/storage/ +107,src/main/java/teammates/common/datatransfer/attributes/EntityAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/AccountAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/AccountRequestAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/CourseAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/DeadlineExtensionAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/FeedbackQuestionAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/FeedbackResponseAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/FeedbackResponseCommentAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/FeedbackSessionAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/InstructorAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/NotificationAttributes.java +107,src/main/java/teammates/common/datatransfer/attributes/StudentAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/AccountAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/AccountRequestAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/CourseAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/DeadlineExtensionAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/FeedbackQuestionAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/FeedbackResponseAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/FeedbackResponseCommentAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/FeedbackSessionAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/InstructorAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/NotificationAttributes.java +108,src/main/java/teammates/common/datatransfer/attributes/StudentAttributes.java +109,src/main/java/teammates/common/exception/EntityDoesNotExistException.java +110,src/main/java/teammates/common/exception/InvalidParametersException.java +118,src/main/java/teammates/storage/ +118,src/test/java/teammates/storage/ +120,src/main/java/teammates/storage/ +120,src/test/java/teammates/storage/ +122,src/main/java/teammates/logic/ +122,src/test/java/teammates/logic/ +123,src/main/java/teammates/storage/ +123,src/test/java/teammates/storage/ +125,src/main/java/teammates/storage/entity/ +126,src/main/java/teammates/common/datatransfer/attributes/EntityAttributes.java +126,src/main/java/teammates/common/datatransfer/attributes/CourseAttributes.java +126,src/test/java/teammates/common/datatransfer/attributes/CourseAttributesTest.java +126,src/main/java/teammates/storage/entity/Course.java +127,src/main/java/teammates/common/datatransfer/ +127,src/test/java/teammates/common/datatransfer/ +128,src/main/java/teammates/storage/ +128,src/test/java/teammates/storage/ +129,src/main/java/teammates/logic/ +129,src/test/java/teammates/logic/ +130,src/main/java/teammates/storage/api/ +130,src/test/java/teammates/storage/api/ +130,src/main/java/teammates/storage/entity/ +130,src/main/java/teammates/storage/search/ +130,src/test/java/teammates/storage/search/ +131,src/main/java/teammates/storage/api/ +131,src/test/java/teammates/storage/api/ +131,src/main/java/teammates/logic/ +131,src/test/java/teammates/logic/ +132,src/main/java/teammates/storage/entity/ +133,src/main/java/teammates/storage/search/ +133,src/test/java/teammates/storage/search/ +146,src/main/java/teammates/common/exception/EntityAlreadyExistsException.java +147,src/main/java/teammates/common/exception/InvalidParametersException.java +151,src/main/java/teammates/common/exception/EntityDoesNotExistException.java +152,src/main/java/teammates/common/exception/InvalidParametersException.java +155,src/main/java/teammates/common/ +155,src/test/java/teammates/common/ +156,src/main/java/teammates/common/util/ +156,src/test/java/teammates/common/util/ +156,src/main/java/teammates/common/exception/ +156,src/main/java/teammates/common/datatransfer/ +156,src/test/java/teammates/common/datatransfer/ +157,src/main/java/teammates/common/util/ +157,src/test/java/teammates/common/util/ +158,src/main/java/teammates/common/exception/ +159,src/main/java/teammates/common/datatransfer/ +159,src/test/java/teammates/common/datatransfer/ +160,src/main/java/teammates/common/datatransfer/ +160,src/test/java/teammates/common/datatransfer/ +163,src/test/java/teammates/test/ +163,src/main/java/teammates/common/datatransfer/DataBundle.java +168,src/test/java/teammates/test/ +172,src/test/java/teammates/common/datatransfer/ +172,src/test/java/teammates/common/util/ +172,src/test/java/teammates/logic/ +172,src/test/java/teammates/storage/ +172,src/test/java/teammates/storage/search/ +172,src/test/java/teammates/ui/webapi/ +174,src/main/java/teammates/common/ +174,src/test/java/teammates/common/ +174,src/test/java/teammates/common/datatransfer/ +175,src/main/java/teammates/common/ +175,src/test/java/teammates/common/ +175,src/test/java/teammates/common/util/ +176,src/main/java/teammates/logic/ +176,src/test/java/teammates/logic/ +177,src/main/java/teammates/storage/ +177,src/test/java/teammates/storage/ +178,src/test/java/teammates/storage/search/ +179,src/test/java/teammates/ui/webapi/ +185,src/e2e/java/teammates/e2e/ +185,src/main/java/teammates/logic/ +185,src/test/java/teammates/logic/ +187,src/e2e/java/teammates/e2e/util/ +187,src/e2e/java/teammates/e2e/pageobjects/ +187,src/e2e/java/teammates/e2e/cases/ +187,src/lnp/java/teammates/lnp/ +188,src/e2e/java/teammates/e2e/util/ +188,src/e2e/java/teammates/e2e/pageobjects/ +188,src/e2e/java/teammates/e2e/cases/ +193,src/lnp/java/teammates/lnp/ +194,src/client/java/teammates/client/ +195,src/client/java/teammates/client/util/ +195,src/client/java/teammates/client/connector/ +195,src/client/java/teammates/client/script/ +196,src/client/java/teammates/client/util/ +197,src/client/java/teammates/client/connector/ +198,src/client/java/teammates/client/script/ diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv new file mode 100644 index 000000000..b4131cc66 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv @@ -0,0 +1,52 @@ +modelElementID,sentence +_1lMqsKESEeu-mYqkDskRow,1 +_3LCnIKESEeu-mYqkDskRow,1 +_9JlCIKESEeu-mYqkDskRow,1 +_zUmhEKESEeu-mYqkDskRow,1 +_Bae2oKETEeu-mYqkDskRow,1 +_EIoe8KETEeu-mYqkDskRow,1 +_GaP8QKETEeu-mYqkDskRow,1 +_1lMqsKESEeu-mYqkDskRow,4 +_1lMqsKESEeu-mYqkDskRow,5 +_1lMqsKESEeu-mYqkDskRow,7 +_3LCnIKESEeu-mYqkDskRow,7 +_KGVMcKETEeu-mYqkDskRow,9 +_9JlCIKESEeu-mYqkDskRow,9 +_Bae2oKETEeu-mYqkDskRow,10 +_EIoe8KETEeu-mYqkDskRow,15 +_GaP8QKETEeu-mYqkDskRow,18 +_zUmhEKESEeu-mYqkDskRow,20 +_1lMqsKESEeu-mYqkDskRow,25 +_1lMqsKESEeu-mYqkDskRow,29 +_3LCnIKESEeu-mYqkDskRow,47 +_3LCnIKESEeu-mYqkDskRow,68 +_3LCnIKESEeu-mYqkDskRow,77 +_3LCnIKESEeu-mYqkDskRow,78 +_1lMqsKESEeu-mYqkDskRow,81 +_1lMqsKESEeu-mYqkDskRow,85 +_3LCnIKESEeu-mYqkDskRow,87 +_9JlCIKESEeu-mYqkDskRow,88 +_1lMqsKESEeu-mYqkDskRow,97 +_3LCnIKESEeu-mYqkDskRow,97 +_9JlCIKESEeu-mYqkDskRow,101 +_9JlCIKESEeu-mYqkDskRow,118 +_9JlCIKESEeu-mYqkDskRow,120 +_3LCnIKESEeu-mYqkDskRow,122 +_KGVMcKETEeu-mYqkDskRow,122 +_9JlCIKESEeu-mYqkDskRow,123 +_9JlCIKESEeu-mYqkDskRow,128 +_3LCnIKESEeu-mYqkDskRow,129 +_3LCnIKESEeu-mYqkDskRow,131 +_KGVMcKETEeu-mYqkDskRow,137 +_KGVMcKETEeu-mYqkDskRow,138 +_KGVMcKETEeu-mYqkDskRow,141 +_zUmhEKESEeu-mYqkDskRow,155 +_Bae2oKETEeu-mYqkDskRow,163 +_Bae2oKETEeu-mYqkDskRow,168 +_zUmhEKESEeu-mYqkDskRow,174 +_zUmhEKESEeu-mYqkDskRow,175 +_3LCnIKESEeu-mYqkDskRow,176 +_9JlCIKESEeu-mYqkDskRow,177 +_EIoe8KETEeu-mYqkDskRow,185 +_3LCnIKESEeu-mYqkDskRow,185 +_GaP8QKETEeu-mYqkDskRow,194 diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv new file mode 100644 index 000000000..6479a1fcb --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv @@ -0,0 +1 @@ +missingModelElementID diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2015.json b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2015.json new file mode 100644 index 000000000..d371215d1 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2015.json @@ -0,0 +1,1316 @@ +{ + "$schema": "../../DiagramSchema.json", + "diagrams": [ + { + "path": "/benchmark/teammates/diagrams_2015/highlevelArchitecture.png", + "boxes": [ + { + "boundingBox": { + "x": 68, + "y": 5, + "w": 198, + "h": 491 + }, + "textBoxes": [], + "subBoxes": [ + { + "boundingBox": { + "x": 127, + "y": 19, + "w": 123, + "h": 189 + }, + "textBoxes": [ + { + "text": "UI (browser)", + "boundingBox": { + "x": 146, + "y": 35, + "w": 83, + "h": 43 + } + }, + { + "text": "HTML, CSS, Javascript, JQuery", + "boundingBox": { + "x": 141, + "y": 104, + "w": 86, + "h": 60 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 3, + 4, + 12, + 23, + 54, + 65, + 73, + 74, + 75, + 81, + 174, + 180 + ] + } + ] + }, + { + "boundingBox": { + "x": 87, + "y": 221, + "w": 163, + "h": 131 + }, + "textBoxes": [ + { + "text": "Test Driver", + "boundingBox": { + "x": 120, + "y": 236, + "w": 95, + "h": 14 + } + }, + { + "text": "TestNG, QUnit, Selenium, HttpUnit, NekoHtml", + "boundingBox": { + "x": 109, + "y": 264, + "w": 117, + "h": 80 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 13, + 69, + 77, + 161, + 167, + 169, + 173 + ], + "typedTracelinks": [ + { + "sentences": [ + 172 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 87, + "y": 365, + "w": 163, + "h": 123 + }, + "textBoxes": [ + { + "text": "Client", + "boundingBox": { + "x": 143, + "y": 380, + "w": 50, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 15, + 182 + ], + "typedTracelinks": [ + { + "sentences": [ + 183, + 184, + 185 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 367, + "y": 5, + "w": 486, + "h": 491 + }, + "textBoxes": [], + "subBoxes": [ + { + "boundingBox": { + "x": 380, + "y": 19, + "w": 462, + "h": 51 + }, + "textBoxes": [ + { + "text": "Common", + "boundingBox": { + "x": 570, + "y": 33, + "w": 77, + "h": 13 + } + }, + { + "text": "GSon", + "boundingBox": { + "x": 721, + "y": 34, + "w": 41, + "h": 12 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 17, + 152, + 175 + ], + "typedTracelinks": [ + { + "sentences": [ + 126, + 153, + 154, + 155, + 156, + 158 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 383, + "y": 101, + "w": 105, + "h": 123 + }, + "textBoxes": [ + { + "text": "UI (server)", + "boundingBox": { + "x": 401, + "y": 117, + "w": 66, + "h": 43 + } + }, + { + "text": "JSP, Servlets", + "boundingBox": { + "x": 406, + "y": 168, + "w": 65, + "h": 35 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 3, + 4, + 12, + 23, + 54, + 65, + 73, + 74, + 75, + 81, + 174, + 180 + ] + } + ] + }, + { + "boundingBox": { + "x": 543, + "y": 101, + "w": 131, + "h": 259 + }, + "textBoxes": [ + { + "text": "Logic", + "boundingBox": { + "x": 587, + "y": 117, + "w": 43, + "h": 18 + } + }, + { + "text": "Java, Servlets", + "boundingBox": { + "x": 574, + "y": 152, + "w": 65, + "h": 35 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 20, + 34, + 60, + 61, + 62, + 72, + 73, + 81, + 121, + 130, + 176 + ], + "typedTracelinks": [ + { + "sentences": [ + 7, + 60, + 61, + 63, + 112, + 118, + 130 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 67, + 68, + 69, + 70, + 71, + 72, + 77, + 172, + 176 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 719, + "y": 101, + "w": 123, + "h": 123 + }, + "textBoxes": [ + { + "text": "Storage", + "boundingBox": { + "x": 747, + "y": 117, + "w": 66, + "h": 17 + } + }, + { + "text": "Java", + "boundingBox": { + "x": 758, + "y": 160, + "w": 32, + "h": 12 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 9, + 61, + 87, + 113, + 118, + 122, + 129, + 177 + ], + "typedTracelinks": [ + { + "sentences": [ + 114, + 115, + 116, + 117, + 123, + 172, + 177 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 367, + "y": 421, + "w": 486, + "h": 75 + }, + "textBoxes": [ + { + "text": "Google App Engine (GAE)", + "boundingBox": { + "x": 465, + "y": 466, + "w": 221, + "h": 19 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 1, + 25, + 127, + 134, + 139 + ], + "typedTracelinks": [ + { + "sentences": [ + 9 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 719, + "y": 341, + "w": 110, + "h": 147 + }, + "textBoxes": [ + { + "text": "GAE Datastore", + "boundingBox": { + "x": 732, + "y": 407, + "w": 83, + "h": 39 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 9, + 117, + 121, + 124, + 133, + 136 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [] + } + ] + } + ] + }, + { + "path": "/benchmark/teammates/diagrams_2015/packageDiagram.png", + "boxes": [ + { + "boundingBox": { + "x": 13, + "y": 7, + "w": 882, + "h": 91 + }, + "textBoxes": [ + { + "text": "Common", + "boundingBox": { + "x": 26, + "y": 22, + "w": 77, + "h": 13 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 125, + "y": 26, + "w": 179, + "h": 56 + }, + "textBoxes": [ + { + "text": "common::util", + "boundingBox": { + "x": 161, + "y": 54, + "w": 104, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 153, + 154 + ] + } + ] + }, + { + "boundingBox": { + "x": 397, + "y": 26, + "w": 178, + "h": 56 + }, + "textBoxes": [ + { + "text": "common::exception", + "boundingBox": { + "x": 407, + "y": 55, + "w": 157, + "h": 15 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 153, + 155 + ] + } + ] + }, + { + "boundingBox": { + "x": 652, + "y": 26, + "w": 203, + "h": 56 + }, + "textBoxes": [ + { + "text": "common:datatransfer", + "boundingBox": { + "x": 663, + "y": 54, + "w": 177, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 153, + 156, + 158 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 17, + 152, + 175 + ], + "typedTracelinks": [ + { + "sentences": [ + 126, + 153, + 154, + 155, + 156, + 158 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 45, + "y": 148, + "w": 195, + "h": 339 + }, + "textBoxes": [ + { + "text": "Test Driver", + "boundingBox": { + "x": 59, + "y": 165, + "w": 94, + "h": 14 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 69, + "y": 186, + "w": 163, + "h": 42 + }, + "textBoxes": [ + { + "text": "test:pageobjects", + "boundingBox": { + "x": 81, + "y": 204, + "w": 136, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 168, + 170 + ] + } + ] + }, + { + "boundingBox": { + "x": 69, + "y": 242, + "w": 163, + "h": 61 + }, + "textBoxes": [ + { + "text": "test::cases:: ui::browsertests", + "boundingBox": { + "x": 85, + "y": 260, + "w": 129, + "h": 34 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 172, + 174 + ] + } + ] + }, + { + "boundingBox": { + "x": 93, + "y": 311, + "w": 139, + "h": 43 + }, + "textBoxes": [ + { + "text": "test::cases::*", + "boundingBox": { + "x": 108, + "y": 329, + "w": 105, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 172, + 173, + 174, + 175, + 176, + 177 + ] + } + ] + }, + { + "boundingBox": { + "x": 69, + "y": 366, + "w": 163, + "h": 43 + }, + "textBoxes": [ + { + "text": "test::cases", + "boundingBox": { + "x": 107, + "y": 386, + "w": 84, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 168, + 171 + ] + } + ] + }, + { + "boundingBox": { + "x": 69, + "y": 425, + "w": 163, + "h": 49 + }, + "textBoxes": [ + { + "text": "test::driver", + "boundingBox": { + "x": 105, + "y": 446, + "w": 89, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 168, + 169 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 13, + 69, + 77, + 161, + 167, + 169, + 173 + ], + "typedTracelinks": [ + { + "sentences": [ + 172 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 261, + "y": 146, + "w": 163, + "h": 221 + }, + "textBoxes": [ + { + "text": "UI", + "boundingBox": { + "x": 332, + "y": 163, + "w": 18, + "h": 13 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 269, + "y": 170, + "w": 145, + "h": 56 + }, + "textBoxes": [ + { + "text": "ui::website", + "boundingBox": { + "x": 296, + "y": 196, + "w": 89, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 21 + ] + } + ] + }, + { + "boundingBox": { + "x": 269, + "y": 228, + "w": 145, + "h": 56 + }, + "textBoxes": [ + { + "text": "ui::view", + "boundingBox": { + "x": 309, + "y": 256, + "w": 63, + "h": 12 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 20, + 21 + ] + } + ] + }, + { + "boundingBox": { + "x": 269, + "y": 292, + "w": 145, + "h": 56 + }, + "textBoxes": [ + { + "text": "ui::controller", + "boundingBox": { + "x": 289, + "y": 319, + "w": 104, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 20 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 3, + 4, + 23, + 54, + 65, + 73, + 74, + 75, + 81, + 174 + ] + } + ] + }, + { + "boundingBox": { + "x": 452, + "y": 143, + "w": 211, + "h": 469 + }, + "textBoxes": [ + { + "text": "Logic", + "boundingBox": { + "x": 537, + "y": 160, + "w": 43, + "h": 18 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 476, + "y": 191, + "w": 147, + "h": 83 + }, + "textBoxes": [ + { + "text": "logic::core", + "boundingBox": { + "x": 509, + "y": 233, + "w": 81, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 67, + 70 + ] + } + ] + }, + { + "boundingBox": { + "x": 476, + "y": 303, + "w": 147, + "h": 83 + }, + "textBoxes": [ + { + "text": "logic::api", + "boundingBox": { + "x": 515, + "y": 345, + "w": 69, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 67, + 68 + ] + } + ] + }, + { + "boundingBox": { + "x": 476, + "y": 431, + "w": 147, + "h": 83 + }, + "textBoxes": [ + { + "text": "logic::backdoor", + "boundingBox": { + "x": 490, + "y": 472, + "w": 119, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 67, + 69 + ] + } + ] + }, + { + "boundingBox": { + "x": 468, + "y": 529, + "w": 155, + "h": 59 + }, + "textBoxes": [ + { + "text": "logic::automated", + "boundingBox": { + "x": 480, + "y": 559, + "w": 132, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 67, + 71 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 34, + 60, + 61, + 62, + 72, + 73, + 81, + 121, + 130, + 176 + ] + } + ] + }, + { + "boundingBox": { + "x": 700, + "y": 143, + "w": 195, + "h": 507 + }, + "textBoxes": [ + { + "text": "Storage", + "boundingBox": { + "x": 812, + "y": 161, + "w": 66, + "h": 17 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 716, + "y": 207, + "w": 171, + "h": 83 + }, + "textBoxes": [ + { + "text": "storage::entity", + "boundingBox": { + "x": 743, + "y": 250, + "w": 116, + "h": 15 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 114, + 116, + 123 + ] + } + ] + }, + { + "boundingBox": { + "x": 716, + "y": 358, + "w": 171, + "h": 83 + }, + "textBoxes": [ + { + "text": "storage::api", + "boundingBox": { + "x": 754, + "y": 401, + "w": 93, + "h": 15 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 114, + 115 + ] + } + ] + }, + { + "boundingBox": { + "x": 708, + "y": 512, + "w": 179, + "h": 83 + }, + "textBoxes": [ + { + "text": "storage::datastore", + "boundingBox": { + "x": 725, + "y": 554, + "w": 145, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 114, + 117 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 9, + 61, + 87, + 113, + 118, + 122, + 129, + 177 + ] + } + ] + }, + { + "boundingBox": { + "x": 13, + "y": 521, + "w": 243, + "h": 133 + }, + "textBoxes": [ + { + "text": "Client", + "boundingBox": { + "x": 27, + "y": 537, + "w": 50, + "h": 14 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 29, + "y": 547, + "w": 203, + "h": 43 + }, + "textBoxes": [ + { + "text": "client::scripts", + "boundingBox": { + "x": 76, + "y": 564, + "w": 107, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 183, + 185 + ] + } + ] + }, + { + "boundingBox": { + "x": 29, + "y": 605, + "w": 203, + "h": 43 + }, + "textBoxes": [ + { + "text": "client::remoteapi", + "boundingBox": { + "x": 61, + "y": 623, + "w": 136, + "h": 16 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 183, + 184 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "teammates_2015.txt", + "sentences": [ + 15, + 182 + ], + "typedTracelinks": [ + { + "sentences": [ + 183, + 184, + 185 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + } + ] + } + ] +} diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2023.json b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2023.json new file mode 100644 index 000000000..d0ff9d3ed --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sad_id_2023.json @@ -0,0 +1,1531 @@ +{ + "$schema": "../../DiagramSchema.json", + "diagrams": [ + { + "path": "/benchmark/teammates/diagrams_2023/highlevelArchitecture.png", + "boxes": [ + { + "boundingBox": { + "x": 147, + "y": 8, + "w": 186, + "h": 525 + }, + "textBoxes": [], + "subBoxes": [ + { + "boundingBox": { + "x": 169, + "y": 49, + "w": 123, + "h": 88 + }, + "textBoxes": [ + { + "text": "E2E", + "boundingBox": { + "x": 218, + "y": 63, + "w": 25, + "h": 10 + } + }, + { + "text": "TestNG, Seleium(Java)", + "boundingBox": { + "x": 186, + "y": 96, + "w": 89, + "h": 29 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 15, + 16, + 17, + 185, + 186 + ], + "typedTracelinks": [ + { + "sentences": [ + 16, + 186 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 187, + 188, + 189, + 190, + 192 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 169, + "y": 151, + "w": 123, + "h": 120 + }, + "textBoxes": [ + { + "text": "UI (browser)", + "boundingBox": { + "x": 190, + "y": 164, + "w": 81, + "h": 12 + } + }, + { + "text": "HTML,SCSS, Angular (TypeScript), Bootstrap", + "boundingBox": { + "x": 188, + "y": 198, + "w": 85, + "h": 61 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 4, + 5, + 25, + 28, + 29, + 81, + 85, + 97 + ], + "typedTracelinks": [ + { + "sentences": [ + 22, + 23, + 26 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 169, + "y": 329, + "w": 123, + "h": 88 + }, + "textBoxes": [ + { + "text": "Test Driver", + "boundingBox": { + "x": 193, + "y": 342, + "w": 75, + "h": 11 + } + }, + { + "text": "TestNG, Jest", + "boundingBox": { + "x": 202, + "y": 376, + "w": 55, + "h": 29 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 10, + 163, + 173 + ], + "typedTracelinks": [ + { + "sentences": [ + 169, + 170, + 172, + 173 + ], + "traceType": "OTHER_ENTITY" + }, + { + "sentences": [ + 168 + ], + "traceType": "ENTITY_COREFERENCE" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 169, + "y": 455, + "w": 123, + "h": 55 + }, + "textBoxes": [ + { + "text": "Client", + "boundingBox": { + "x": 212, + "y": 468, + "w": 38, + "h": 11 + } + }, + { + "text": "Java", + "boundingBox": { + "x": 216, + "y": 485, + "w": 26, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 18, + 194 + ], + "typedTracelinks": [ + { + "sentences": [ + 195, + 196, + 197, + 198 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 374, + "y": 304, + "w": 485, + "h": 253 + }, + "textBoxes": [], + "subBoxes": [ + { + "boundingBox": { + "x": 551, + "y": 345, + "w": 123, + "h": 55 + }, + "textBoxes": [ + { + "text": "Common", + "boundingBox": { + "x": 582, + "y": 359, + "w": 61, + "h": 10 + } + }, + { + "text": "Java", + "boundingBox": { + "x": 598, + "y": 375, + "w": 26, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 20, + 155, + 174, + 175 + ], + "typedTracelinks": [ + { + "sentences": [ + 49, + 155 + ], + "traceType": "SHARED_STEM" + }, + { + "sentences": [ + 156, + 157, + 158, + 159, + 160 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 396, + "y": 431, + "w": 123, + "h": 104 + }, + "textBoxes": [ + { + "text": "UI (server)", + "boundingBox": { + "x": 432, + "y": 445, + "w": 51, + "h": 27 + } + }, + { + "text": "Java Servlets", + "boundingBox": { + "x": 431, + "y": 494, + "w": 53, + "h": 26 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 5, + 7, + 25, + 28, + 29, + 81, + 85, + 97 + ], + "typedTracelinks": [ + { + "sentences": [ + 22, + 23, + 26 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 551, + "y": 447, + "w": 123, + "h": 71 + }, + "textBoxes": [ + { + "text": "Logic", + "boundingBox": { + "x": 595, + "y": 460, + "w": 34, + "h": 14 + } + }, + { + "text": "Java", + "boundingBox": { + "x": 598, + "y": 494, + "w": 26, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 22, + 47, + 68, + 77, + 87, + 88, + 97, + 122, + 129, + 131, + 176 + ], + "typedTracelinks": [ + { + "sentences": [ + 7, + 8, + 77, + 79, + 86, + 88, + 117, + 119, + 129, + 185 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 78 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 84, + 85, + 86, + 172, + 176 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 706, + "y": 447, + "w": 123, + "h": 71 + }, + "textBoxes": [ + { + "text": "Storage", + "boundingBox": { + "x": 741, + "y": 461, + "w": 52, + "h": 13 + } + }, + { + "text": "Java", + "boundingBox": { + "x": 753, + "y": 494, + "w": 26, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 88, + 101, + 118, + 123, + 128, + 177 + ], + "typedTracelinks": [ + { + "sentences": [ + 9 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 119, + 120 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 125, + 130, + 131, + 132, + 133, + 172, + 177 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 706, + "y": 605, + "w": 123, + "h": 80 + }, + "textBoxes": [ + { + "text": "Google Cloud Datastore", + "boundingBox": { + "x": 734, + "y": 632, + "w": 66, + "h": 44 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 9, + 122, + 137, + 138, + 141 + ] + } + ] + } + ] + }, + { + "path": "/benchmark/teammates/diagrams_2023/packageDiagram.png", + "boxes": [ + { + "boundingBox": { + "x": 277, + "y": 6, + "w": 610, + "h": 126 + }, + "textBoxes": [ + { + "text": "Common", + "boundingBox": { + "x": 548, + "y": 23, + "w": 67, + "h": 10 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 320, + "y": 49, + "w": 119, + "h": 58 + }, + "textBoxes": [ + { + "text": "common:util", + "boundingBox": { + "x": 332, + "y": 80, + "w": 84, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 156, + 157 + ] + } + ] + }, + { + "boundingBox": { + "x": 471, + "y": 49, + "w": 172, + "h": 58 + }, + "textBoxes": [ + { + "text": "common::exception", + "boundingBox": { + "x": 484, + "y": 80, + "w": 137, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 156, + 158 + ] + } + ] + }, + { + "boundingBox": { + "x": 676, + "y": 49, + "w": 187, + "h": 58 + }, + "textBoxes": [ + { + "text": "common::datatransfer", + "boundingBox": { + "x": 688, + "y": 80, + "w": 153, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 127, + 156, + 159, + 160 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 20, + 155, + 174, + 175 + ], + "typedTracelinks": [ + { + "sentences": [ + 49, + 155 + ], + "traceType": "SHARED_STEM" + }, + { + "sentences": [ + 156, + 157, + 158, + 159, + 160 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 199, + "y": 169, + "w": 172, + "h": 242 + }, + "textBoxes": [ + { + "text": "UI", + "boundingBox": { + "x": 278, + "y": 186, + "w": 13, + "h": 10 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 242, + "y": 212, + "w": 104, + "h": 58 + }, + "textBoxes": [ + { + "text": "ui::webapi", + "boundingBox": { + "x": 255, + "y": 243, + "w": 69, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [] + } + ] + }, + { + "boundingBox": { + "x": 238, + "y": 328, + "w": 109, + "h": 58 + }, + "textBoxes": [ + { + "text": "ui::website", + "boundingBox": { + "x": 250, + "y": 359, + "w": 74, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 22, + 23, + 26 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 4, + 5, + 7, + 25, + 28, + 29, + 81, + 85, + 97 + ], + "typedTracelinks": [ + { + "sentences": [ + 22, + 23, + 26 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 454, + "y": 169, + "w": 187, + "h": 405 + }, + "textBoxes": [ + { + "text": "Logic", + "boundingBox": { + "x": 527, + "y": 185, + "w": 40, + "h": 14 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 498, + "y": 212, + "w": 106, + "h": 58 + }, + "textBoxes": [ + { + "text": "logic::core", + "boundingBox": { + "x": 511, + "y": 243, + "w": 71, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 84, + 86 + ] + } + ] + }, + { + "boundingBox": { + "x": 504, + "y": 328, + "w": 95, + "h": 58 + }, + "textBoxes": [ + { + "text": "logic::api", + "boundingBox": { + "x": 516, + "y": 359, + "w": 60, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 84, + 85 + ] + } + ] + }, + { + "boundingBox": { + "x": 486, + "y": 491, + "w": 130, + "h": 58 + }, + "textBoxes": [ + { + "text": "logic::external", + "boundingBox": { + "x": 499, + "y": 522, + "w": 95, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 22, + 47, + 68, + 77, + 87, + 88, + 97, + 122, + 129, + 131, + 176 + ], + "typedTracelinks": [ + { + "sentences": [ + 7, + 8, + 77, + 79, + 86, + 88, + 117, + 119, + 129, + 185 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 78 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 84, + 85, + 86, + 172, + 176 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 678, + "y": 169, + "w": 202, + "h": 405 + }, + "textBoxes": [ + { + "text": "Storage", + "boundingBox": { + "x": 749, + "y": 186, + "w": 60, + "h": 13 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 702, + "y": 212, + "w": 134, + "h": 58 + }, + "textBoxes": [ + { + "text": "storage::entity", + "boundingBox": { + "x": 715, + "y": 244, + "w": 101, + "h": 13 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 125, + 130, + 132 + ] + } + ] + }, + { + "boundingBox": { + "x": 714, + "y": 328, + "w": 115, + "h": 58 + }, + "textBoxes": [ + { + "text": "storage::api", + "boundingBox": { + "x": 726, + "y": 359, + "w": 81, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 130, + 131 + ] + } + ] + }, + { + "boundingBox": { + "x": 702, + "y": 491, + "w": 143, + "h": 58 + }, + "textBoxes": [ + { + "text": "storage::search", + "boundingBox": { + "x": 714, + "y": 522, + "w": 108, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 130, + 133 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 88, + 101, + 118, + 123, + 128, + 177 + ], + "typedTracelinks": [ + { + "sentences": [ + 9 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 119, + 120 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 125, + 130, + 131, + 132, + 133, + 172, + 177 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 6, + "y": 448, + "w": 150, + "h": 126 + }, + "textBoxes": [ + { + "text": "TestDriver", + "boundingBox": { + "x": 40, + "y": 464, + "w": 82, + "h": 11 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 49, + "y": 491, + "w": 83, + "h": 58 + }, + "textBoxes": [ + { + "text": "test", + "boundingBox": { + "x": 72, + "y": 523, + "w": 27, + "h": 10 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [], + "typedTracelinks": [ + { + "sentences": [ + 1, + 10, + 163, + 168, + 169, + 170, + 171, + 172, + 173 + ], + "traceType": "OTHER_ENTITY" + }, + { + "sentences": [ + 16, + 140, + 170, + 171, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 183, + 186, + 188, + 190, + 191, + 192, + 193 + ], + "traceType": "COMMON_NOUN" + }, + { + "sentences": [ + 11, + 13, + 17, + 56, + 64, + 168, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 184, + 191, + 192 + ], + "traceType": "SHARED_STEM" + } + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 10, + 163, + 173 + ], + "typedTracelinks": [ + { + "sentences": [ + 169, + 170, + 172, + 173 + ], + "traceType": "OTHER_ENTITY" + }, + { + "sentences": [ + 168 + ], + "traceType": "ENTITY_COREFERENCE" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 193, + "y": 448, + "w": 224, + "h": 405 + }, + "textBoxes": [ + { + "text": "E2E", + "boundingBox": { + "x": 292, + "y": 465, + "w": 26, + "h": 10 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 217, + "y": 491, + "w": 156, + "h": 58 + }, + "textBoxes": [ + { + "text": "e2e::pageobjects", + "boundingBox": { + "x": 230, + "y": 522, + "w": 121, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 187, + 189 + ] + } + ] + }, + { + "boundingBox": { + "x": 240, + "y": 654, + "w": 111, + "h": 58 + }, + "textBoxes": [ + { + "text": "e2e::cases", + "boundingBox": { + "x": 252, + "y": 686, + "w": 76, + "h": 10 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 187, + 190 + ] + } + ] + }, + { + "boundingBox": { + "x": 250, + "y": 770, + "w": 90, + "h": 58 + }, + "textBoxes": [ + { + "text": "e2e::util", + "boundingBox": { + "x": 263, + "y": 801, + "w": 55, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 187, + 188 + ] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 15, + 16, + 17, + 185, + 186 + ], + "typedTracelinks": [ + { + "sentences": [ + 16, + 186 + ], + "traceType": "ENTITY_COREFERENCE" + }, + { + "sentences": [ + 187, + 188, + 189, + 190, + 192 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 649, + "y": 611, + "w": 207, + "h": 242 + }, + "textBoxes": [ + { + "text": "Client", + "boundingBox": { + "x": 731, + "y": 627, + "w": 43, + "h": 11 + } + } + ], + "subBoxes": [ + { + "boundingBox": { + "x": 693, + "y": 654, + "w": 126, + "h": 58 + }, + "textBoxes": [ + { + "text": "client::scripts", + "boundingBox": { + "x": 706, + "y": 685, + "w": 91, + "h": 14 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 195, + 198 + ] + } + ] + }, + { + "boundingBox": { + "x": 681, + "y": 770, + "w": 151, + "h": 58 + }, + "textBoxes": [ + { + "text": "client::connector", + "boundingBox": { + "x": 693, + "y": 801, + "w": 117, + "h": 11 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [] + } + ] + } + ], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 1, + 18, + 194 + ], + "typedTracelinks": [ + { + "sentences": [ + 195, + 196, + 197, + 198 + ], + "traceType": "OTHER_ENTITY" + } + ] + } + ] + }, + { + "boundingBox": { + "x": 781, + "y": 886, + "w": 91, + "h": 79 + }, + "textBoxes": [ + { + "text": "Google Cloud Datastore", + "boundingBox": { + "x": 793, + "y": 913, + "w": 66, + "h": 44 + } + } + ], + "subBoxes": [], + "tracelinks": [ + { + "name": "text_2021/teammates.txt", + "sentences": [ + 9, + 122, + 137, + 138, + 141 + ] + } + ] + } + ] + } + ] +} diff --git a/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv new file mode 100644 index 000000000..37269e696 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv @@ -0,0 +1,23 @@ +ae_id,ae_name,ce_id +_0kie8KESEeu-mYqkDskRow,Interface: UI,src/main/java/teammates/ui/ +_0kie8KESEeu-mYqkDskRow,Interface: UI,src/test/java/teammates/ui/ +_1lMqsKESEeu-mYqkDskRow,Component: UI,src/main/java/teammates/ui/ +_1lMqsKESEeu-mYqkDskRow,Component: UI,src/test/java/teammates/ui/ +_2dI_UKESEeu-mYqkDskRow,Interface: Logic,src/main/java/teammates/logic/ +_2dI_UKESEeu-mYqkDskRow,Interface: Logic,src/test/java/teammates/logic/ +_3LCnIKESEeu-mYqkDskRow,Component: Logic,src/main/java/teammates/logic/ +_3LCnIKESEeu-mYqkDskRow,Component: Logic,src/test/java/teammates/logic/ +_777jQKESEeu-mYqkDskRow,Interface: Storage,src/main/java/teammates/storage/ +_777jQKESEeu-mYqkDskRow,Interface: Storage,src/test/java/teammates/storage/ +_9JlCIKESEeu-mYqkDskRow,Component: Storage,src/main/java/teammates/storage/ +_9JlCIKESEeu-mYqkDskRow,Component: Storage,src/test/java/teammates/storage/ +_Bae2oKETEeu-mYqkDskRow,Component: Test Driver,src/test/java/teammates/test/ +_C6tTQKETEeu-mYqkDskRow,Interface: E2E,src/e2e/java/teammates/e2e/ +_EIoe8KETEeu-mYqkDskRow,Component: E2E,src/e2e/java/teammates/e2e/ +_FMKYgKETEeu-mYqkDskRow,Interface: Client,src/client/java/teammates/client/ +_GaP8QKETEeu-mYqkDskRow,Component: Client,src/client/java/teammates/client/ +__RE6IKESEeu-mYqkDskRow,Interface: Test Driver,src/test/java/teammates/test/ +_ylL2UKESEeu-mYqkDskRow,Interface: Common,src/main/java/teammates/common/ +_ylL2UKESEeu-mYqkDskRow,Interface: Common,src/test/java/teammates/common/ +_zUmhEKESEeu-mYqkDskRow,Component: Common,src/main/java/teammates/common/ +_zUmhEKESEeu-mYqkDskRow,Component: Common,src/test/java/teammates/common/ diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates-with-details.repository b/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates-with-details.repository new file mode 100644 index 000000000..3e4c914c7 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates-with-details.repository @@ -0,0 +1,702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates.repository b/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates.repository new file mode 100644 index 000000000..5cdd5a7f8 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2021/pcm/teammates.repository @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates-with-details.uml b/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates-with-details.uml new file mode 100644 index 000000000..32a29bd8d --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates-with-details.uml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates.uml b/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates.uml new file mode 100644 index 000000000..2f952aca2 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2021/uml/teammates.uml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2023/code/README.md b/tests-base/src/main/resources/benchmark/teammates/model_2023/code/README.md new file mode 100644 index 000000000..11fc5f264 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2023/code/README.md @@ -0,0 +1,2 @@ +# TEAMMATES Code Model +The code that was used is located at https://github.com/ArDoCo/teammates/commit/b24519a2af9e17b2bc9c025e87e4cf60009c425d diff --git a/tests-base/src/main/resources/benchmark/teammates/model_2023/code/codeModel.acm b/tests-base/src/main/resources/benchmark/teammates/model_2023/code/codeModel.acm new file mode 100644 index 000000000..c9ef841be --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/model_2023/code/codeModel.acm @@ -0,0 +1,76491 @@ +{ + "id" : "acm013703jsd", + "codeItemRepository" : { + "repository" : { + "acm001337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001337jsd", + "name" : "DatastoreClient", + "parentId" : "acm001340jsd", + "content" : [ "acm001344jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "connector" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001338jsd" : { + "type" : "CodePackage", + "id" : "acm001338jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001339jsd", "acm001766jsd", "acm003788jsd", "acm004139jsd", "acm006561jsd", "acm007349jsd", "acm007363jsd", "acm008203jsd", "acm010433jsd", "acm011890jsd" ] + }, + "acm001339jsd" : { + "type" : "CodePackage", + "id" : "acm001339jsd", + "name" : "client", + "parentId" : "acm001338jsd", + "content" : [ "acm001340jsd", "acm001352jsd", "acm001738jsd" ] + }, + "acm001340jsd" : { + "type" : "CodePackage", + "id" : "acm001340jsd", + "name" : "connector", + "parentId" : "acm001339jsd", + "content" : [ "acm001337jsd", "acm001345jsd" ] + }, + "acm001341jsd" : { + "type" : "ControlElement", + "id" : "acm001341jsd", + "name" : "ofy" + }, + "acm001342jsd" : { + "type" : "ControlElement", + "id" : "acm001342jsd", + "name" : "doOperationRemotely" + }, + "acm001343jsd" : { + "type" : "ControlElement", + "id" : "acm001343jsd", + "name" : "doOperation" + }, + "acm001344jsd" : { + "type" : "ClassUnit", + "id" : "acm001344jsd", + "name" : "DatastoreClient", + "compilationUnitId" : "acm001337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001341jsd", "acm001342jsd", "acm001343jsd" ] + }, + "acm001345jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001345jsd", + "name" : "package-info", + "parentId" : "acm001340jsd", + "content" : [ ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "connector" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001346jsd" : { + "type" : "CodePackage", + "id" : "acm001346jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001347jsd" ] + }, + "acm001347jsd" : { + "type" : "CodePackage", + "id" : "acm001347jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001348jsd" ] + }, + "acm001348jsd" : { + "type" : "CodePackage", + "id" : "acm001348jsd", + "name" : "connector", + "parentId" : null, + "content" : [ "acm001345jsd" ] + }, + "acm001349jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001349jsd", + "name" : "DataBundleRegenerator", + "parentId" : "acm001352jsd", + "content" : [ "acm001361jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001350jsd" : { + "type" : "CodePackage", + "id" : "acm001350jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001351jsd" ] + }, + "acm001351jsd" : { + "type" : "CodePackage", + "id" : "acm001351jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001352jsd" ] + }, + "acm001352jsd" : { + "type" : "CodePackage", + "id" : "acm001352jsd", + "name" : "scripts", + "parentId" : "acm001339jsd", + "content" : [ "acm001349jsd", "acm001362jsd", "acm001388jsd", "acm001398jsd", "acm001408jsd", "acm001418jsd", "acm001428jsd", "acm001438jsd", "acm001448jsd", "acm001458jsd", "acm001468jsd", "acm001479jsd", "acm001490jsd", "acm001501jsd", "acm001512jsd", "acm001522jsd", "acm001532jsd", "acm001542jsd", "acm001552jsd", "acm001562jsd", "acm001572jsd", "acm001579jsd", "acm001589jsd", "acm001599jsd", "acm001606jsd", "acm001622jsd", "acm001633jsd", "acm001643jsd", "acm001651jsd", "acm001659jsd" ] + }, + "acm001353jsd" : { + "type" : "ControlElement", + "id" : "acm001353jsd", + "name" : "DataBundleRegenerator" + }, + "acm001354jsd" : { + "type" : "ControlElement", + "id" : "acm001354jsd", + "name" : "regenerateDataBundleJson" + }, + "acm001355jsd" : { + "type" : "ControlElement", + "id" : "acm001355jsd", + "name" : "regenerateAllDataBundleJson" + }, + "acm001356jsd" : { + "type" : "ControlElement", + "id" : "acm001356jsd", + "name" : "regenerateSessionTemplateJson" + }, + "acm001357jsd" : { + "type" : "ControlElement", + "id" : "acm001357jsd", + "name" : "regenerateGenericJson" + }, + "acm001358jsd" : { + "type" : "ControlElement", + "id" : "acm001358jsd", + "name" : "saveFile" + }, + "acm001359jsd" : { + "type" : "ControlElement", + "id" : "acm001359jsd", + "name" : "regenerateWebsiteDataJson" + }, + "acm001360jsd" : { + "type" : "ControlElement", + "id" : "acm001360jsd", + "name" : "main" + }, + "acm001361jsd" : { + "type" : "ClassUnit", + "id" : "acm001361jsd", + "name" : "DataBundleRegenerator", + "compilationUnitId" : "acm001349jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd" ], + "content" : [ "acm001353jsd", "acm001354jsd", "acm001355jsd", "acm001356jsd", "acm001357jsd", "acm001358jsd", "acm001359jsd", "acm001360jsd" ] + }, + "acm001362jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001362jsd", + "name" : "DataMigrationEntitiesBaseScript", + "parentId" : "acm001352jsd", + "content" : [ "acm001387jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001363jsd" : { + "type" : "CodePackage", + "id" : "acm001363jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001364jsd" ] + }, + "acm001364jsd" : { + "type" : "CodePackage", + "id" : "acm001364jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001365jsd" ] + }, + "acm001365jsd" : { + "type" : "CodePackage", + "id" : "acm001365jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001362jsd" ] + }, + "acm001366jsd" : { + "type" : "ControlElement", + "id" : "acm001366jsd", + "name" : "DataMigrationEntitiesBaseScript" + }, + "acm001367jsd" : { + "type" : "ControlElement", + "id" : "acm001367jsd", + "name" : "getFilterQuery" + }, + "acm001368jsd" : { + "type" : "ControlElement", + "id" : "acm001368jsd", + "name" : "isPreview" + }, + "acm001369jsd" : { + "type" : "ControlElement", + "id" : "acm001369jsd", + "name" : "isMigrationNeeded" + }, + "acm001370jsd" : { + "type" : "ControlElement", + "id" : "acm001370jsd", + "name" : "migrateEntity" + }, + "acm001371jsd" : { + "type" : "ControlElement", + "id" : "acm001371jsd", + "name" : "shouldUseTransaction" + }, + "acm001372jsd" : { + "type" : "ControlElement", + "id" : "acm001372jsd", + "name" : "migrateWithoutTrx" + }, + "acm001373jsd" : { + "type" : "ControlElement", + "id" : "acm001373jsd", + "name" : "doMigration" + }, + "acm001374jsd" : { + "type" : "ControlElement", + "id" : "acm001374jsd", + "name" : "migrateWithTrx" + }, + "acm001375jsd" : { + "type" : "ControlElement", + "id" : "acm001375jsd", + "name" : "doOperation" + }, + "acm001376jsd" : { + "type" : "ControlElement", + "id" : "acm001376jsd", + "name" : "saveEntityDeferred" + }, + "acm001377jsd" : { + "type" : "ControlElement", + "id" : "acm001377jsd", + "name" : "flushEntitiesSavingBuffer" + }, + "acm001378jsd" : { + "type" : "ControlElement", + "id" : "acm001378jsd", + "name" : "savePositionOfCursorToFile" + }, + "acm001379jsd" : { + "type" : "ControlElement", + "id" : "acm001379jsd", + "name" : "readPositionOfCursorFromFile" + }, + "acm001380jsd" : { + "type" : "ControlElement", + "id" : "acm001380jsd", + "name" : "deleteCursorPositionFile" + }, + "acm001381jsd" : { + "type" : "ControlElement", + "id" : "acm001381jsd", + "name" : "log" + }, + "acm001382jsd" : { + "type" : "ControlElement", + "id" : "acm001382jsd", + "name" : "logError" + }, + "acm001383jsd" : { + "type" : "ControlElement", + "id" : "acm001383jsd", + "name" : "isTextContainingAny" + }, + "acm001384jsd" : { + "type" : "ControlElement", + "id" : "acm001384jsd", + "name" : "isSanitizedHtml" + }, + "acm001385jsd" : { + "type" : "ControlElement", + "id" : "acm001385jsd", + "name" : "desanitizeIfHtmlSanitized" + }, + "acm001386jsd" : { + "type" : "ControlElement", + "id" : "acm001386jsd", + "name" : "desanitizeFromHtml" + }, + "acm001387jsd" : { + "type" : "ClassUnit", + "id" : "acm001387jsd", + "name" : "DataMigrationEntitiesBaseScript", + "compilationUnitId" : "acm001362jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001344jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007768jsd" ], + "content" : [ "acm001366jsd", "acm001367jsd", "acm001368jsd", "acm001369jsd", "acm001370jsd", "acm001371jsd", "acm001372jsd", "acm001373jsd", "acm001374jsd", "acm001375jsd", "acm001376jsd", "acm001377jsd", "acm001378jsd", "acm001379jsd", "acm001380jsd", "acm001381jsd", "acm001382jsd", "acm001383jsd", "acm001384jsd", "acm001385jsd", "acm001386jsd" ] + }, + "acm001388jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001388jsd", + "name" : "DataMigrationForConstSumForceUnevenDistribution", + "parentId" : "acm001352jsd", + "content" : [ "acm001397jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001389jsd" : { + "type" : "CodePackage", + "id" : "acm001389jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001390jsd" ] + }, + "acm001390jsd" : { + "type" : "CodePackage", + "id" : "acm001390jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001391jsd" ] + }, + "acm001391jsd" : { + "type" : "CodePackage", + "id" : "acm001391jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001388jsd" ] + }, + "acm001392jsd" : { + "type" : "ControlElement", + "id" : "acm001392jsd", + "name" : "main" + }, + "acm001393jsd" : { + "type" : "ControlElement", + "id" : "acm001393jsd", + "name" : "getFilterQuery" + }, + "acm001394jsd" : { + "type" : "ControlElement", + "id" : "acm001394jsd", + "name" : "isPreview" + }, + "acm001395jsd" : { + "type" : "ControlElement", + "id" : "acm001395jsd", + "name" : "isMigrationNeeded" + }, + "acm001396jsd" : { + "type" : "ControlElement", + "id" : "acm001396jsd", + "name" : "migrateEntity" + }, + "acm001397jsd" : { + "type" : "ClassUnit", + "id" : "acm001397jsd", + "name" : "DataMigrationForConstSumForceUnevenDistribution", + "compilationUnitId" : "acm001388jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001397jsd", "acm004788jsd", "acm005778jsd", "acm007888jsd" ], + "content" : [ "acm001392jsd", "acm001393jsd", "acm001394jsd", "acm001395jsd", "acm001396jsd" ] + }, + "acm001398jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001398jsd", + "name" : "DataMigrationForContributionQuestionDetailsIsZeroSum", + "parentId" : "acm001352jsd", + "content" : [ "acm001407jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001399jsd" : { + "type" : "CodePackage", + "id" : "acm001399jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001400jsd" ] + }, + "acm001400jsd" : { + "type" : "CodePackage", + "id" : "acm001400jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001401jsd" ] + }, + "acm001401jsd" : { + "type" : "CodePackage", + "id" : "acm001401jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001398jsd" ] + }, + "acm001402jsd" : { + "type" : "ControlElement", + "id" : "acm001402jsd", + "name" : "main" + }, + "acm001403jsd" : { + "type" : "ControlElement", + "id" : "acm001403jsd", + "name" : "getFilterQuery" + }, + "acm001404jsd" : { + "type" : "ControlElement", + "id" : "acm001404jsd", + "name" : "isPreview" + }, + "acm001405jsd" : { + "type" : "ControlElement", + "id" : "acm001405jsd", + "name" : "isMigrationNeeded" + }, + "acm001406jsd" : { + "type" : "ControlElement", + "id" : "acm001406jsd", + "name" : "migrateEntity" + }, + "acm001407jsd" : { + "type" : "ClassUnit", + "id" : "acm001407jsd", + "name" : "DataMigrationForContributionQuestionDetailsIsZeroSum", + "compilationUnitId" : "acm001398jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001407jsd", "acm004788jsd", "acm005820jsd", "acm007888jsd" ], + "content" : [ "acm001402jsd", "acm001403jsd", "acm001404jsd", "acm001405jsd", "acm001406jsd" ] + }, + "acm001408jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001408jsd", + "name" : "DataMigrationForFeedbackSessionMismatchedTimezone", + "parentId" : "acm001352jsd", + "content" : [ "acm001417jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001409jsd" : { + "type" : "CodePackage", + "id" : "acm001409jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001410jsd" ] + }, + "acm001410jsd" : { + "type" : "CodePackage", + "id" : "acm001410jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001411jsd" ] + }, + "acm001411jsd" : { + "type" : "CodePackage", + "id" : "acm001411jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001408jsd" ] + }, + "acm001412jsd" : { + "type" : "ControlElement", + "id" : "acm001412jsd", + "name" : "main" + }, + "acm001413jsd" : { + "type" : "ControlElement", + "id" : "acm001413jsd", + "name" : "getFilterQuery" + }, + "acm001414jsd" : { + "type" : "ControlElement", + "id" : "acm001414jsd", + "name" : "isPreview" + }, + "acm001415jsd" : { + "type" : "ControlElement", + "id" : "acm001415jsd", + "name" : "isMigrationNeeded" + }, + "acm001416jsd" : { + "type" : "ControlElement", + "id" : "acm001416jsd", + "name" : "migrateEntity" + }, + "acm001417jsd" : { + "type" : "ClassUnit", + "id" : "acm001417jsd", + "name" : "DataMigrationForFeedbackSessionMismatchedTimezone", + "compilationUnitId" : "acm001408jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001417jsd", "acm004598jsd", "acm006882jsd", "acm008013jsd" ], + "content" : [ "acm001412jsd", "acm001413jsd", "acm001414jsd", "acm001415jsd", "acm001416jsd" ] + }, + "acm001418jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001418jsd", + "name" : "DataMigrationForGoogleIdToGmail", + "parentId" : "acm001352jsd", + "content" : [ "acm001427jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001419jsd" : { + "type" : "CodePackage", + "id" : "acm001419jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001420jsd" ] + }, + "acm001420jsd" : { + "type" : "CodePackage", + "id" : "acm001420jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001421jsd" ] + }, + "acm001421jsd" : { + "type" : "CodePackage", + "id" : "acm001421jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001418jsd" ] + }, + "acm001422jsd" : { + "type" : "ControlElement", + "id" : "acm001422jsd", + "name" : "main" + }, + "acm001423jsd" : { + "type" : "ControlElement", + "id" : "acm001423jsd", + "name" : "isPreview" + }, + "acm001424jsd" : { + "type" : "ControlElement", + "id" : "acm001424jsd", + "name" : "getFilterQuery" + }, + "acm001425jsd" : { + "type" : "ControlElement", + "id" : "acm001425jsd", + "name" : "isMigrationOfGoogleIdNeeded" + }, + "acm001426jsd" : { + "type" : "ControlElement", + "id" : "acm001426jsd", + "name" : "generateNewGoogleId" + }, + "acm001427jsd" : { + "type" : "ClassUnit", + "id" : "acm001427jsd", + "name" : "DataMigrationForGoogleIdToGmail", + "compilationUnitId" : "acm001418jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001588jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001427jsd", "acm007735jsd" ], + "content" : [ "acm001422jsd", "acm001423jsd", "acm001424jsd", "acm001425jsd", "acm001426jsd" ] + }, + "acm001428jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001428jsd", + "name" : "DataMigrationForInstructorFeedbackResponseComments", + "parentId" : "acm001352jsd", + "content" : [ "acm001437jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001429jsd" : { + "type" : "CodePackage", + "id" : "acm001429jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001430jsd" ] + }, + "acm001430jsd" : { + "type" : "CodePackage", + "id" : "acm001430jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001431jsd" ] + }, + "acm001431jsd" : { + "type" : "CodePackage", + "id" : "acm001431jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001428jsd" ] + }, + "acm001432jsd" : { + "type" : "ControlElement", + "id" : "acm001432jsd", + "name" : "main" + }, + "acm001433jsd" : { + "type" : "ControlElement", + "id" : "acm001433jsd", + "name" : "getFilterQuery" + }, + "acm001434jsd" : { + "type" : "ControlElement", + "id" : "acm001434jsd", + "name" : "isPreview" + }, + "acm001435jsd" : { + "type" : "ControlElement", + "id" : "acm001435jsd", + "name" : "isMigrationNeeded" + }, + "acm001436jsd" : { + "type" : "ControlElement", + "id" : "acm001436jsd", + "name" : "migrateEntity" + }, + "acm001437jsd" : { + "type" : "ClassUnit", + "id" : "acm001437jsd", + "name" : "DataMigrationForInstructorFeedbackResponseComments", + "compilationUnitId" : "acm001428jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001437jsd", "acm007960jsd" ], + "content" : [ "acm001432jsd", "acm001433jsd", "acm001434jsd", "acm001435jsd", "acm001436jsd" ] + }, + "acm001438jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001438jsd", + "name" : "DataMigrationForInstructorNullIsArchivedField", + "parentId" : "acm001352jsd", + "content" : [ "acm001447jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001439jsd" : { + "type" : "CodePackage", + "id" : "acm001439jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001440jsd" ] + }, + "acm001440jsd" : { + "type" : "CodePackage", + "id" : "acm001440jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001441jsd" ] + }, + "acm001441jsd" : { + "type" : "CodePackage", + "id" : "acm001441jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001438jsd" ] + }, + "acm001442jsd" : { + "type" : "ControlElement", + "id" : "acm001442jsd", + "name" : "main" + }, + "acm001443jsd" : { + "type" : "ControlElement", + "id" : "acm001443jsd", + "name" : "getFilterQuery" + }, + "acm001444jsd" : { + "type" : "ControlElement", + "id" : "acm001444jsd", + "name" : "isPreview" + }, + "acm001445jsd" : { + "type" : "ControlElement", + "id" : "acm001445jsd", + "name" : "isMigrationNeeded" + }, + "acm001446jsd" : { + "type" : "ControlElement", + "id" : "acm001446jsd", + "name" : "migrateEntity" + }, + "acm001447jsd" : { + "type" : "ClassUnit", + "id" : "acm001447jsd", + "name" : "DataMigrationForInstructorNullIsArchivedField", + "compilationUnitId" : "acm001438jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001447jsd", "acm008049jsd" ], + "content" : [ "acm001442jsd", "acm001443jsd", "acm001444jsd", "acm001445jsd", "acm001446jsd" ] + }, + "acm001448jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001448jsd", + "name" : "DataMigrationForNullCommentGiverType", + "parentId" : "acm001352jsd", + "content" : [ "acm001457jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001449jsd" : { + "type" : "CodePackage", + "id" : "acm001449jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001450jsd" ] + }, + "acm001450jsd" : { + "type" : "CodePackage", + "id" : "acm001450jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001451jsd" ] + }, + "acm001451jsd" : { + "type" : "CodePackage", + "id" : "acm001451jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001448jsd" ] + }, + "acm001452jsd" : { + "type" : "ControlElement", + "id" : "acm001452jsd", + "name" : "main" + }, + "acm001453jsd" : { + "type" : "ControlElement", + "id" : "acm001453jsd", + "name" : "getFilterQuery" + }, + "acm001454jsd" : { + "type" : "ControlElement", + "id" : "acm001454jsd", + "name" : "isPreview" + }, + "acm001455jsd" : { + "type" : "ControlElement", + "id" : "acm001455jsd", + "name" : "isMigrationNeeded" + }, + "acm001456jsd" : { + "type" : "ControlElement", + "id" : "acm001456jsd", + "name" : "migrateEntity" + }, + "acm001457jsd" : { + "type" : "ClassUnit", + "id" : "acm001457jsd", + "name" : "DataMigrationForNullCommentGiverType", + "compilationUnitId" : "acm001448jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001457jsd", "acm007960jsd" ], + "content" : [ "acm001452jsd", "acm001453jsd", "acm001454jsd", "acm001455jsd", "acm001456jsd" ] + }, + "acm001458jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001458jsd", + "name" : "DataMigrationForSampleGoogleIdInStudentAttributes", + "parentId" : "acm001352jsd", + "content" : [ "acm001467jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001459jsd" : { + "type" : "CodePackage", + "id" : "acm001459jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001460jsd" ] + }, + "acm001460jsd" : { + "type" : "CodePackage", + "id" : "acm001460jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001461jsd" ] + }, + "acm001461jsd" : { + "type" : "CodePackage", + "id" : "acm001461jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001458jsd" ] + }, + "acm001462jsd" : { + "type" : "ControlElement", + "id" : "acm001462jsd", + "name" : "main" + }, + "acm001463jsd" : { + "type" : "ControlElement", + "id" : "acm001463jsd", + "name" : "getFilterQuery" + }, + "acm001464jsd" : { + "type" : "ControlElement", + "id" : "acm001464jsd", + "name" : "isPreview" + }, + "acm001465jsd" : { + "type" : "ControlElement", + "id" : "acm001465jsd", + "name" : "isMigrationNeeded" + }, + "acm001466jsd" : { + "type" : "ControlElement", + "id" : "acm001466jsd", + "name" : "migrateEntity" + }, + "acm001467jsd" : { + "type" : "ClassUnit", + "id" : "acm001467jsd", + "name" : "DataMigrationForSampleGoogleIdInStudentAttributes", + "compilationUnitId" : "acm001458jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001467jsd", "acm007823jsd" ], + "content" : [ "acm001462jsd", "acm001463jsd", "acm001464jsd", "acm001465jsd", "acm001466jsd" ] + }, + "acm001468jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001468jsd", + "name" : "DataMigrationForSanitizedDataInCourseAttributes", + "parentId" : "acm001352jsd", + "content" : [ "acm001478jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001469jsd" : { + "type" : "CodePackage", + "id" : "acm001469jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001470jsd" ] + }, + "acm001470jsd" : { + "type" : "CodePackage", + "id" : "acm001470jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001471jsd" ] + }, + "acm001471jsd" : { + "type" : "CodePackage", + "id" : "acm001471jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001468jsd" ] + }, + "acm001472jsd" : { + "type" : "ControlElement", + "id" : "acm001472jsd", + "name" : "DataMigrationForSanitizedDataInCourseAttributes" + }, + "acm001473jsd" : { + "type" : "ControlElement", + "id" : "acm001473jsd", + "name" : "main" + }, + "acm001474jsd" : { + "type" : "ControlElement", + "id" : "acm001474jsd", + "name" : "getFilterQuery" + }, + "acm001475jsd" : { + "type" : "ControlElement", + "id" : "acm001475jsd", + "name" : "isPreview" + }, + "acm001476jsd" : { + "type" : "ControlElement", + "id" : "acm001476jsd", + "name" : "isMigrationNeeded" + }, + "acm001477jsd" : { + "type" : "ControlElement", + "id" : "acm001477jsd", + "name" : "migrateEntity" + }, + "acm001478jsd" : { + "type" : "ClassUnit", + "id" : "acm001478jsd", + "name" : "DataMigrationForSanitizedDataInCourseAttributes", + "compilationUnitId" : "acm001468jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001478jsd", "acm007792jsd" ], + "content" : [ "acm001472jsd", "acm001473jsd", "acm001474jsd", "acm001475jsd", "acm001476jsd", "acm001477jsd" ] + }, + "acm001479jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001479jsd", + "name" : "DataMigrationForSanitizedDataInInstructorAttributes", + "parentId" : "acm001352jsd", + "content" : [ "acm001489jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001480jsd" : { + "type" : "CodePackage", + "id" : "acm001480jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001481jsd" ] + }, + "acm001481jsd" : { + "type" : "CodePackage", + "id" : "acm001481jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001482jsd" ] + }, + "acm001482jsd" : { + "type" : "CodePackage", + "id" : "acm001482jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001479jsd" ] + }, + "acm001483jsd" : { + "type" : "ControlElement", + "id" : "acm001483jsd", + "name" : "DataMigrationForSanitizedDataInInstructorAttributes" + }, + "acm001484jsd" : { + "type" : "ControlElement", + "id" : "acm001484jsd", + "name" : "main" + }, + "acm001485jsd" : { + "type" : "ControlElement", + "id" : "acm001485jsd", + "name" : "getFilterQuery" + }, + "acm001486jsd" : { + "type" : "ControlElement", + "id" : "acm001486jsd", + "name" : "isPreview" + }, + "acm001487jsd" : { + "type" : "ControlElement", + "id" : "acm001487jsd", + "name" : "isMigrationNeeded" + }, + "acm001488jsd" : { + "type" : "ControlElement", + "id" : "acm001488jsd", + "name" : "migrateEntity" + }, + "acm001489jsd" : { + "type" : "ClassUnit", + "id" : "acm001489jsd", + "name" : "DataMigrationForSanitizedDataInInstructorAttributes", + "compilationUnitId" : "acm001479jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001489jsd", "acm008049jsd" ], + "content" : [ "acm001483jsd", "acm001484jsd", "acm001485jsd", "acm001486jsd", "acm001487jsd", "acm001488jsd" ] + }, + "acm001490jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001490jsd", + "name" : "DataMigrationForSanitizedDataInStudentAttributes", + "parentId" : "acm001352jsd", + "content" : [ "acm001500jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001491jsd" : { + "type" : "CodePackage", + "id" : "acm001491jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001492jsd" ] + }, + "acm001492jsd" : { + "type" : "CodePackage", + "id" : "acm001492jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001493jsd" ] + }, + "acm001493jsd" : { + "type" : "CodePackage", + "id" : "acm001493jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001490jsd" ] + }, + "acm001494jsd" : { + "type" : "ControlElement", + "id" : "acm001494jsd", + "name" : "DataMigrationForSanitizedDataInStudentAttributes" + }, + "acm001495jsd" : { + "type" : "ControlElement", + "id" : "acm001495jsd", + "name" : "main" + }, + "acm001496jsd" : { + "type" : "ControlElement", + "id" : "acm001496jsd", + "name" : "getFilterQuery" + }, + "acm001497jsd" : { + "type" : "ControlElement", + "id" : "acm001497jsd", + "name" : "isPreview" + }, + "acm001498jsd" : { + "type" : "ControlElement", + "id" : "acm001498jsd", + "name" : "isMigrationNeeded" + }, + "acm001499jsd" : { + "type" : "ControlElement", + "id" : "acm001499jsd", + "name" : "migrateEntity" + }, + "acm001500jsd" : { + "type" : "ClassUnit", + "id" : "acm001500jsd", + "name" : "DataMigrationForSanitizedDataInStudentAttributes", + "compilationUnitId" : "acm001490jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001500jsd", "acm007823jsd" ], + "content" : [ "acm001494jsd", "acm001495jsd", "acm001496jsd", "acm001497jsd", "acm001498jsd", "acm001499jsd" ] + }, + "acm001501jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001501jsd", + "name" : "DataMigrationForSanitizedInstructorName", + "parentId" : "acm001352jsd", + "content" : [ "acm001511jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001502jsd" : { + "type" : "CodePackage", + "id" : "acm001502jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001503jsd" ] + }, + "acm001503jsd" : { + "type" : "CodePackage", + "id" : "acm001503jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001504jsd" ] + }, + "acm001504jsd" : { + "type" : "CodePackage", + "id" : "acm001504jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001501jsd" ] + }, + "acm001505jsd" : { + "type" : "ControlElement", + "id" : "acm001505jsd", + "name" : "DataMigrationForSanitizedInstructorName" + }, + "acm001506jsd" : { + "type" : "ControlElement", + "id" : "acm001506jsd", + "name" : "main" + }, + "acm001507jsd" : { + "type" : "ControlElement", + "id" : "acm001507jsd", + "name" : "getFilterQuery" + }, + "acm001508jsd" : { + "type" : "ControlElement", + "id" : "acm001508jsd", + "name" : "isPreview" + }, + "acm001509jsd" : { + "type" : "ControlElement", + "id" : "acm001509jsd", + "name" : "isMigrationNeeded" + }, + "acm001510jsd" : { + "type" : "ControlElement", + "id" : "acm001510jsd", + "name" : "migrateEntity" + }, + "acm001511jsd" : { + "type" : "ClassUnit", + "id" : "acm001511jsd", + "name" : "DataMigrationForSanitizedInstructorName", + "compilationUnitId" : "acm001501jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001511jsd", "acm008049jsd" ], + "content" : [ "acm001505jsd", "acm001506jsd", "acm001507jsd", "acm001508jsd", "acm001509jsd", "acm001510jsd" ] + }, + "acm001512jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001512jsd", + "name" : "DataMigrationForStudentsAndTeamsRecipientType", + "parentId" : "acm001352jsd", + "content" : [ "acm001521jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001513jsd" : { + "type" : "CodePackage", + "id" : "acm001513jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001514jsd" ] + }, + "acm001514jsd" : { + "type" : "CodePackage", + "id" : "acm001514jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001515jsd" ] + }, + "acm001515jsd" : { + "type" : "CodePackage", + "id" : "acm001515jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001512jsd" ] + }, + "acm001516jsd" : { + "type" : "ControlElement", + "id" : "acm001516jsd", + "name" : "main" + }, + "acm001517jsd" : { + "type" : "ControlElement", + "id" : "acm001517jsd", + "name" : "getFilterQuery" + }, + "acm001518jsd" : { + "type" : "ControlElement", + "id" : "acm001518jsd", + "name" : "isPreview" + }, + "acm001519jsd" : { + "type" : "ControlElement", + "id" : "acm001519jsd", + "name" : "isMigrationNeeded" + }, + "acm001520jsd" : { + "type" : "ControlElement", + "id" : "acm001520jsd", + "name" : "migrateEntity" + }, + "acm001521jsd" : { + "type" : "ClassUnit", + "id" : "acm001521jsd", + "name" : "DataMigrationForStudentsAndTeamsRecipientType", + "compilationUnitId" : "acm001512jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001521jsd", "acm007888jsd" ], + "content" : [ "acm001516jsd", "acm001517jsd", "acm001518jsd", "acm001519jsd", "acm001520jsd" ] + }, + "acm001522jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001522jsd", + "name" : "DataMigrationForTeamNameInResponseGiver", + "parentId" : "acm001352jsd", + "content" : [ "acm001531jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001523jsd" : { + "type" : "CodePackage", + "id" : "acm001523jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001524jsd" ] + }, + "acm001524jsd" : { + "type" : "CodePackage", + "id" : "acm001524jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001525jsd" ] + }, + "acm001525jsd" : { + "type" : "CodePackage", + "id" : "acm001525jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001522jsd" ] + }, + "acm001526jsd" : { + "type" : "ControlElement", + "id" : "acm001526jsd", + "name" : "main" + }, + "acm001527jsd" : { + "type" : "ControlElement", + "id" : "acm001527jsd", + "name" : "getFilterQuery" + }, + "acm001528jsd" : { + "type" : "ControlElement", + "id" : "acm001528jsd", + "name" : "isPreview" + }, + "acm001529jsd" : { + "type" : "ControlElement", + "id" : "acm001529jsd", + "name" : "isMigrationNeeded" + }, + "acm001530jsd" : { + "type" : "ControlElement", + "id" : "acm001530jsd", + "name" : "migrateEntity" + }, + "acm001531jsd" : { + "type" : "ClassUnit", + "id" : "acm001531jsd", + "name" : "DataMigrationForTeamNameInResponseGiver", + "compilationUnitId" : "acm001522jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001531jsd", "acm004871jsd", "acm004885jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007042jsd", "acm007192jsd", "acm007888jsd" ], + "content" : [ "acm001526jsd", "acm001527jsd", "acm001528jsd", "acm001529jsd", "acm001530jsd" ] + }, + "acm001532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001532jsd", + "name" : "DataMigrationForTextQuestionDetailsFormat", + "parentId" : "acm001352jsd", + "content" : [ "acm001541jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001533jsd" : { + "type" : "CodePackage", + "id" : "acm001533jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001534jsd" ] + }, + "acm001534jsd" : { + "type" : "CodePackage", + "id" : "acm001534jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001535jsd" ] + }, + "acm001535jsd" : { + "type" : "CodePackage", + "id" : "acm001535jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001532jsd" ] + }, + "acm001536jsd" : { + "type" : "ControlElement", + "id" : "acm001536jsd", + "name" : "main" + }, + "acm001537jsd" : { + "type" : "ControlElement", + "id" : "acm001537jsd", + "name" : "getFilterQuery" + }, + "acm001538jsd" : { + "type" : "ControlElement", + "id" : "acm001538jsd", + "name" : "isPreview" + }, + "acm001539jsd" : { + "type" : "ControlElement", + "id" : "acm001539jsd", + "name" : "isMigrationNeeded" + }, + "acm001540jsd" : { + "type" : "ControlElement", + "id" : "acm001540jsd", + "name" : "migrateEntity" + }, + "acm001541jsd" : { + "type" : "ClassUnit", + "id" : "acm001541jsd", + "name" : "DataMigrationForTextQuestionDetailsFormat", + "compilationUnitId" : "acm001532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001541jsd", "acm006116jsd", "acm007888jsd" ], + "content" : [ "acm001536jsd", "acm001537jsd", "acm001538jsd", "acm001539jsd", "acm001540jsd" ] + }, + "acm001542jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001542jsd", + "name" : "DataMigrationForTextQuestionRecommendedLength", + "parentId" : "acm001352jsd", + "content" : [ "acm001551jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001543jsd" : { + "type" : "CodePackage", + "id" : "acm001543jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001544jsd" ] + }, + "acm001544jsd" : { + "type" : "CodePackage", + "id" : "acm001544jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001545jsd" ] + }, + "acm001545jsd" : { + "type" : "CodePackage", + "id" : "acm001545jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001542jsd" ] + }, + "acm001546jsd" : { + "type" : "ControlElement", + "id" : "acm001546jsd", + "name" : "main" + }, + "acm001547jsd" : { + "type" : "ControlElement", + "id" : "acm001547jsd", + "name" : "getFilterQuery" + }, + "acm001548jsd" : { + "type" : "ControlElement", + "id" : "acm001548jsd", + "name" : "isPreview" + }, + "acm001549jsd" : { + "type" : "ControlElement", + "id" : "acm001549jsd", + "name" : "isMigrationNeeded" + }, + "acm001550jsd" : { + "type" : "ControlElement", + "id" : "acm001550jsd", + "name" : "migrateEntity" + }, + "acm001551jsd" : { + "type" : "ClassUnit", + "id" : "acm001551jsd", + "name" : "DataMigrationForTextQuestionRecommendedLength", + "compilationUnitId" : "acm001542jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001551jsd", "acm004788jsd", "acm006116jsd", "acm007888jsd" ], + "content" : [ "acm001546jsd", "acm001547jsd", "acm001548jsd", "acm001549jsd", "acm001550jsd" ] + }, + "acm001552jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001552jsd", + "name" : "DataMigrationForUnencryptedKeyForInstructors", + "parentId" : "acm001352jsd", + "content" : [ "acm001561jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001553jsd" : { + "type" : "CodePackage", + "id" : "acm001553jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001554jsd" ] + }, + "acm001554jsd" : { + "type" : "CodePackage", + "id" : "acm001554jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001555jsd" ] + }, + "acm001555jsd" : { + "type" : "CodePackage", + "id" : "acm001555jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001552jsd" ] + }, + "acm001556jsd" : { + "type" : "ControlElement", + "id" : "acm001556jsd", + "name" : "main" + }, + "acm001557jsd" : { + "type" : "ControlElement", + "id" : "acm001557jsd", + "name" : "getFilterQuery" + }, + "acm001558jsd" : { + "type" : "ControlElement", + "id" : "acm001558jsd", + "name" : "isPreview" + }, + "acm001559jsd" : { + "type" : "ControlElement", + "id" : "acm001559jsd", + "name" : "isMigrationNeeded" + }, + "acm001560jsd" : { + "type" : "ControlElement", + "id" : "acm001560jsd", + "name" : "migrateEntity" + }, + "acm001561jsd" : { + "type" : "ClassUnit", + "id" : "acm001561jsd", + "name" : "DataMigrationForUnencryptedKeyForInstructors", + "compilationUnitId" : "acm001552jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001561jsd", "acm008049jsd" ], + "content" : [ "acm001556jsd", "acm001557jsd", "acm001558jsd", "acm001559jsd", "acm001560jsd" ] + }, + "acm001562jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001562jsd", + "name" : "DataMigrationForUnencryptedKeyForStudents", + "parentId" : "acm001352jsd", + "content" : [ "acm001571jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001563jsd" : { + "type" : "CodePackage", + "id" : "acm001563jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001564jsd" ] + }, + "acm001564jsd" : { + "type" : "CodePackage", + "id" : "acm001564jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001565jsd" ] + }, + "acm001565jsd" : { + "type" : "CodePackage", + "id" : "acm001565jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001562jsd" ] + }, + "acm001566jsd" : { + "type" : "ControlElement", + "id" : "acm001566jsd", + "name" : "main" + }, + "acm001567jsd" : { + "type" : "ControlElement", + "id" : "acm001567jsd", + "name" : "getFilterQuery" + }, + "acm001568jsd" : { + "type" : "ControlElement", + "id" : "acm001568jsd", + "name" : "isPreview" + }, + "acm001569jsd" : { + "type" : "ControlElement", + "id" : "acm001569jsd", + "name" : "isMigrationNeeded" + }, + "acm001570jsd" : { + "type" : "ControlElement", + "id" : "acm001570jsd", + "name" : "migrateEntity" + }, + "acm001571jsd" : { + "type" : "ClassUnit", + "id" : "acm001571jsd", + "name" : "DataMigrationForUnencryptedKeyForStudents", + "compilationUnitId" : "acm001562jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001571jsd", "acm007823jsd" ], + "content" : [ "acm001566jsd", "acm001567jsd", "acm001568jsd", "acm001569jsd", "acm001570jsd" ] + }, + "acm001572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001572jsd", + "name" : "GenerateUsageStatisticsObjects", + "parentId" : "acm001352jsd", + "content" : [ "acm001578jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001573jsd" : { + "type" : "CodePackage", + "id" : "acm001573jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001574jsd" ] + }, + "acm001574jsd" : { + "type" : "CodePackage", + "id" : "acm001574jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001575jsd" ] + }, + "acm001575jsd" : { + "type" : "CodePackage", + "id" : "acm001575jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001572jsd" ] + }, + "acm001576jsd" : { + "type" : "ControlElement", + "id" : "acm001576jsd", + "name" : "main" + }, + "acm001577jsd" : { + "type" : "ControlElement", + "id" : "acm001577jsd", + "name" : "doOperation" + }, + "acm001578jsd" : { + "type" : "ClassUnit", + "id" : "acm001578jsd", + "name" : "GenerateUsageStatisticsObjects", + "compilationUnitId" : "acm001572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001344jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001578jsd", "acm005469jsd", "acm006162jsd", "acm006188jsd", "acm006767jsd" ], + "content" : [ "acm001576jsd", "acm001577jsd" ] + }, + "acm001579jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001579jsd", + "name" : "GoogleIdMigrationBaseScript", + "parentId" : "acm001352jsd", + "content" : [ "acm001588jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001580jsd" : { + "type" : "CodePackage", + "id" : "acm001580jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001581jsd" ] + }, + "acm001581jsd" : { + "type" : "CodePackage", + "id" : "acm001581jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001582jsd" ] + }, + "acm001582jsd" : { + "type" : "CodePackage", + "id" : "acm001582jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001579jsd" ] + }, + "acm001583jsd" : { + "type" : "ControlElement", + "id" : "acm001583jsd", + "name" : "getFilterQuery" + }, + "acm001584jsd" : { + "type" : "ControlElement", + "id" : "acm001584jsd", + "name" : "isMigrationNeeded" + }, + "acm001585jsd" : { + "type" : "ControlElement", + "id" : "acm001585jsd", + "name" : "migrateEntity" + }, + "acm001586jsd" : { + "type" : "ControlElement", + "id" : "acm001586jsd", + "name" : "isMigrationOfGoogleIdNeeded" + }, + "acm001587jsd" : { + "type" : "ControlElement", + "id" : "acm001587jsd", + "name" : "generateNewGoogleId" + }, + "acm001588jsd" : { + "type" : "ClassUnit", + "id" : "acm001588jsd", + "name" : "GoogleIdMigrationBaseScript", + "compilationUnitId" : "acm001579jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm007735jsd", "acm007823jsd", "acm008049jsd" ], + "content" : [ "acm001583jsd", "acm001584jsd", "acm001585jsd", "acm001586jsd", "acm001587jsd" ] + }, + "acm001589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001589jsd", + "name" : "IndexFeedbackSessionFields", + "parentId" : "acm001352jsd", + "content" : [ "acm001598jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001590jsd" : { + "type" : "CodePackage", + "id" : "acm001590jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001591jsd" ] + }, + "acm001591jsd" : { + "type" : "CodePackage", + "id" : "acm001591jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001592jsd" ] + }, + "acm001592jsd" : { + "type" : "CodePackage", + "id" : "acm001592jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001589jsd" ] + }, + "acm001593jsd" : { + "type" : "ControlElement", + "id" : "acm001593jsd", + "name" : "main" + }, + "acm001594jsd" : { + "type" : "ControlElement", + "id" : "acm001594jsd", + "name" : "getFilterQuery" + }, + "acm001595jsd" : { + "type" : "ControlElement", + "id" : "acm001595jsd", + "name" : "isPreview" + }, + "acm001596jsd" : { + "type" : "ControlElement", + "id" : "acm001596jsd", + "name" : "isMigrationNeeded" + }, + "acm001597jsd" : { + "type" : "ControlElement", + "id" : "acm001597jsd", + "name" : "migrateEntity" + }, + "acm001598jsd" : { + "type" : "ClassUnit", + "id" : "acm001598jsd", + "name" : "IndexFeedbackSessionFields", + "compilationUnitId" : "acm001589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001598jsd", "acm008013jsd" ], + "content" : [ "acm001593jsd", "acm001594jsd", "acm001595jsd", "acm001596jsd", "acm001597jsd" ] + }, + "acm001599jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001599jsd", + "name" : "ListActiveInstructors", + "parentId" : "acm001352jsd", + "content" : [ "acm001605jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001600jsd" : { + "type" : "CodePackage", + "id" : "acm001600jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001601jsd" ] + }, + "acm001601jsd" : { + "type" : "CodePackage", + "id" : "acm001601jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001602jsd" ] + }, + "acm001602jsd" : { + "type" : "CodePackage", + "id" : "acm001602jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001599jsd" ] + }, + "acm001603jsd" : { + "type" : "ControlElement", + "id" : "acm001603jsd", + "name" : "doOperation" + }, + "acm001604jsd" : { + "type" : "ControlElement", + "id" : "acm001604jsd", + "name" : "main" + }, + "acm001605jsd" : { + "type" : "ClassUnit", + "id" : "acm001605jsd", + "name" : "ListActiveInstructors", + "compilationUnitId" : "acm001599jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001344jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001605jsd", "acm008013jsd" ], + "content" : [ "acm001603jsd", "acm001604jsd" ] + }, + "acm001606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001606jsd", + "name" : "MockCourseWithLargeResponseScript", + "parentId" : "acm001352jsd", + "content" : [ "acm001621jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001607jsd" : { + "type" : "CodePackage", + "id" : "acm001607jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001608jsd" ] + }, + "acm001608jsd" : { + "type" : "CodePackage", + "id" : "acm001608jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001609jsd" ] + }, + "acm001609jsd" : { + "type" : "CodePackage", + "id" : "acm001609jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001606jsd" ] + }, + "acm001610jsd" : { + "type" : "ControlElement", + "id" : "acm001610jsd", + "name" : "MockCourseWithLargeResponseScript" + }, + "acm001611jsd" : { + "type" : "ControlElement", + "id" : "acm001611jsd", + "name" : "doOperation" + }, + "acm001612jsd" : { + "type" : "ControlElement", + "id" : "acm001612jsd", + "name" : "generateAccounts" + }, + "acm001613jsd" : { + "type" : "ControlElement", + "id" : "acm001613jsd", + "name" : "generateCourses" + }, + "acm001614jsd" : { + "type" : "ControlElement", + "id" : "acm001614jsd", + "name" : "generateInstructors" + }, + "acm001615jsd" : { + "type" : "ControlElement", + "id" : "acm001615jsd", + "name" : "generateStudents" + }, + "acm001616jsd" : { + "type" : "ControlElement", + "id" : "acm001616jsd", + "name" : "generateFeedbackSessions" + }, + "acm001617jsd" : { + "type" : "ControlElement", + "id" : "acm001617jsd", + "name" : "generateFeedbackQuestions" + }, + "acm001618jsd" : { + "type" : "ControlElement", + "id" : "acm001618jsd", + "name" : "generateFeedbackResponses" + }, + "acm001619jsd" : { + "type" : "ControlElement", + "id" : "acm001619jsd", + "name" : "generateDataBundle" + }, + "acm001620jsd" : { + "type" : "ControlElement", + "id" : "acm001620jsd", + "name" : "main" + }, + "acm001621jsd" : { + "type" : "ClassUnit", + "id" : "acm001621jsd", + "name" : "MockCourseWithLargeResponseScript", + "compilationUnitId" : "acm001606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001344jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001621jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006188jsd", "acm006767jsd" ], + "content" : [ "acm001610jsd", "acm001611jsd", "acm001612jsd", "acm001613jsd", "acm001614jsd", "acm001615jsd", "acm001616jsd", "acm001617jsd", "acm001618jsd", "acm001619jsd", "acm001620jsd" ] + }, + "acm001622jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001622jsd", + "name" : "PopulateCourseSearchDocuments", + "parentId" : "acm001352jsd", + "content" : [ "acm001632jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001623jsd" : { + "type" : "CodePackage", + "id" : "acm001623jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001624jsd" ] + }, + "acm001624jsd" : { + "type" : "CodePackage", + "id" : "acm001624jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001625jsd" ] + }, + "acm001625jsd" : { + "type" : "CodePackage", + "id" : "acm001625jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001622jsd" ] + }, + "acm001626jsd" : { + "type" : "ControlElement", + "id" : "acm001626jsd", + "name" : "PopulateCourseSearchDocuments" + }, + "acm001627jsd" : { + "type" : "ControlElement", + "id" : "acm001627jsd", + "name" : "main" + }, + "acm001628jsd" : { + "type" : "ControlElement", + "id" : "acm001628jsd", + "name" : "getFilterQuery" + }, + "acm001629jsd" : { + "type" : "ControlElement", + "id" : "acm001629jsd", + "name" : "isPreview" + }, + "acm001630jsd" : { + "type" : "ControlElement", + "id" : "acm001630jsd", + "name" : "isMigrationNeeded" + }, + "acm001631jsd" : { + "type" : "ControlElement", + "id" : "acm001631jsd", + "name" : "migrateEntity" + }, + "acm001632jsd" : { + "type" : "ClassUnit", + "id" : "acm001632jsd", + "name" : "PopulateCourseSearchDocuments", + "compilationUnitId" : "acm001622jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001387jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001632jsd", "acm004205jsd", "acm005233jsd", "acm005412jsd", "acm006767jsd", "acm007792jsd" ], + "content" : [ "acm001626jsd", "acm001627jsd", "acm001628jsd", "acm001629jsd", "acm001630jsd", "acm001631jsd" ] + }, + "acm001633jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001633jsd", + "name" : "SingleAccountGoogleIdMigrationScript", + "parentId" : "acm001352jsd", + "content" : [ "acm001642jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001634jsd" : { + "type" : "CodePackage", + "id" : "acm001634jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001635jsd" ] + }, + "acm001635jsd" : { + "type" : "CodePackage", + "id" : "acm001635jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001636jsd" ] + }, + "acm001636jsd" : { + "type" : "CodePackage", + "id" : "acm001636jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001633jsd" ] + }, + "acm001637jsd" : { + "type" : "ControlElement", + "id" : "acm001637jsd", + "name" : "main" + }, + "acm001638jsd" : { + "type" : "ControlElement", + "id" : "acm001638jsd", + "name" : "isPreview" + }, + "acm001639jsd" : { + "type" : "ControlElement", + "id" : "acm001639jsd", + "name" : "getFilterQuery" + }, + "acm001640jsd" : { + "type" : "ControlElement", + "id" : "acm001640jsd", + "name" : "isMigrationOfGoogleIdNeeded" + }, + "acm001641jsd" : { + "type" : "ControlElement", + "id" : "acm001641jsd", + "name" : "generateNewGoogleId" + }, + "acm001642jsd" : { + "type" : "ClassUnit", + "id" : "acm001642jsd", + "name" : "SingleAccountGoogleIdMigrationScript", + "compilationUnitId" : "acm001633jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001588jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001642jsd", "acm007735jsd" ], + "content" : [ "acm001637jsd", "acm001638jsd", "acm001639jsd", "acm001640jsd", "acm001641jsd" ] + }, + "acm001643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001643jsd", + "name" : "TeamEvalResultCalculations", + "parentId" : "acm001352jsd", + "content" : [ "acm001650jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001644jsd" : { + "type" : "CodePackage", + "id" : "acm001644jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001645jsd" ] + }, + "acm001645jsd" : { + "type" : "CodePackage", + "id" : "acm001645jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001646jsd" ] + }, + "acm001646jsd" : { + "type" : "CodePackage", + "id" : "acm001646jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001643jsd" ] + }, + "acm001647jsd" : { + "type" : "ControlElement", + "id" : "acm001647jsd", + "name" : "TeamEvalResultCalculations" + }, + "acm001648jsd" : { + "type" : "ControlElement", + "id" : "acm001648jsd", + "name" : "showCalculationSteps" + }, + "acm001649jsd" : { + "type" : "ControlElement", + "id" : "acm001649jsd", + "name" : "main" + }, + "acm001650jsd" : { + "type" : "ClassUnit", + "id" : "acm001650jsd", + "name" : "TeamEvalResultCalculations", + "compilationUnitId" : "acm001643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004421jsd" ], + "content" : [ "acm001647jsd", "acm001648jsd", "acm001649jsd" ] + }, + "acm001651jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001651jsd", + "name" : "package-info", + "parentId" : "acm001352jsd", + "content" : [ ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001652jsd" : { + "type" : "CodePackage", + "id" : "acm001652jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001653jsd" ] + }, + "acm001653jsd" : { + "type" : "CodePackage", + "id" : "acm001653jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001654jsd" ] + }, + "acm001654jsd" : { + "type" : "CodePackage", + "id" : "acm001654jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001651jsd" ] + }, + "acm001655jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001655jsd", + "name" : "CursorIterator", + "parentId" : "acm001659jsd", + "content" : [ "acm001665jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts", "statistics" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001656jsd" : { + "type" : "CodePackage", + "id" : "acm001656jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001657jsd" ] + }, + "acm001657jsd" : { + "type" : "CodePackage", + "id" : "acm001657jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001658jsd" ] + }, + "acm001658jsd" : { + "type" : "CodePackage", + "id" : "acm001658jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001659jsd" ] + }, + "acm001659jsd" : { + "type" : "CodePackage", + "id" : "acm001659jsd", + "name" : "statistics", + "parentId" : "acm001352jsd", + "content" : [ "acm001655jsd", "acm001666jsd", "acm001686jsd", "acm001715jsd", "acm001730jsd" ] + }, + "acm001660jsd" : { + "type" : "ControlElement", + "id" : "acm001660jsd", + "name" : "CursorIterator" + }, + "acm001661jsd" : { + "type" : "ControlElement", + "id" : "acm001661jsd", + "name" : "iterate" + }, + "acm001662jsd" : { + "type" : "ControlElement", + "id" : "acm001662jsd", + "name" : "batchFetching" + }, + "acm001663jsd" : { + "type" : "ControlElement", + "id" : "acm001663jsd", + "name" : "hasNext" + }, + "acm001664jsd" : { + "type" : "ControlElement", + "id" : "acm001664jsd", + "name" : "next" + }, + "acm001665jsd" : { + "type" : "ClassUnit", + "id" : "acm001665jsd", + "name" : "CursorIterator", + "compilationUnitId" : "acm001655jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001660jsd", "acm001661jsd", "acm001662jsd", "acm001663jsd", "acm001664jsd" ] + }, + "acm001666jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001666jsd", + "name" : "FileStore", + "parentId" : "acm001659jsd", + "content" : [ "acm001680jsd", "acm001683jsd", "acm001685jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts", "statistics" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001667jsd" : { + "type" : "CodePackage", + "id" : "acm001667jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001668jsd" ] + }, + "acm001668jsd" : { + "type" : "CodePackage", + "id" : "acm001668jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001669jsd" ] + }, + "acm001669jsd" : { + "type" : "CodePackage", + "id" : "acm001669jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001670jsd" ] + }, + "acm001670jsd" : { + "type" : "CodePackage", + "id" : "acm001670jsd", + "name" : "statistics", + "parentId" : null, + "content" : [ "acm001666jsd" ] + }, + "acm001671jsd" : { + "type" : "ControlElement", + "id" : "acm001671jsd", + "name" : "FileStore" + }, + "acm001672jsd" : { + "type" : "ControlElement", + "id" : "acm001672jsd", + "name" : "getStatisticsBundleFromFileIfPossible" + }, + "acm001673jsd" : { + "type" : "ControlElement", + "id" : "acm001673jsd", + "name" : "saveStatisticsBundleToFile" + }, + "acm001674jsd" : { + "type" : "ControlElement", + "id" : "acm001674jsd", + "name" : "saveEncryptedJsonToFile" + }, + "acm001675jsd" : { + "type" : "ControlElement", + "id" : "acm001675jsd", + "name" : "parseEncryptedJsonFile" + }, + "acm001676jsd" : { + "type" : "ControlElement", + "id" : "acm001676jsd", + "name" : "getSerializer" + }, + "acm001677jsd" : { + "type" : "ControlElement", + "id" : "acm001677jsd", + "name" : "serialize" + }, + "acm001678jsd" : { + "type" : "ControlElement", + "id" : "acm001678jsd", + "name" : "deserialize" + }, + "acm001679jsd" : { + "type" : "ControlElement", + "id" : "acm001679jsd", + "name" : "apply" + }, + "acm001680jsd" : { + "type" : "ClassUnit", + "id" : "acm001680jsd", + "name" : "FileStore", + "compilationUnitId" : "acm001666jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001683jsd", "acm001708jsd", "acm001712jsd", "acm001714jsd" ], + "content" : [ "acm001671jsd", "acm001672jsd", "acm001673jsd", "acm001674jsd", "acm001675jsd", "acm001676jsd", "acm001677jsd", "acm001678jsd", "acm001679jsd" ] + }, + "acm001681jsd" : { + "type" : "ControlElement", + "id" : "acm001681jsd", + "name" : "serialize" + }, + "acm001682jsd" : { + "type" : "ControlElement", + "id" : "acm001682jsd", + "name" : "deserialize" + }, + "acm001683jsd" : { + "type" : "ClassUnit", + "id" : "acm001683jsd", + "name" : "InstantAdapter", + "compilationUnitId" : "acm001666jsd", + "parentDatatypeId" : "acm001680jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001681jsd", "acm001682jsd" ] + }, + "acm001684jsd" : { + "type" : "ControlElement", + "id" : "acm001684jsd", + "name" : "apply" + }, + "acm001685jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001685jsd", + "name" : "CheckedFunction", + "compilationUnitId" : "acm001666jsd", + "parentDatatypeId" : "acm001680jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001684jsd" ] + }, + "acm001686jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001686jsd", + "name" : "StatisticsBundle", + "parentId" : "acm001659jsd", + "content" : [ "acm001708jsd", "acm001712jsd", "acm001714jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts", "statistics" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001687jsd" : { + "type" : "CodePackage", + "id" : "acm001687jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001688jsd" ] + }, + "acm001688jsd" : { + "type" : "CodePackage", + "id" : "acm001688jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001689jsd" ] + }, + "acm001689jsd" : { + "type" : "CodePackage", + "id" : "acm001689jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001690jsd" ] + }, + "acm001690jsd" : { + "type" : "CodePackage", + "id" : "acm001690jsd", + "name" : "statistics", + "parentId" : null, + "content" : [ "acm001686jsd" ] + }, + "acm001691jsd" : { + "type" : "ControlElement", + "id" : "acm001691jsd", + "name" : "getInstituteStats" + }, + "acm001692jsd" : { + "type" : "ControlElement", + "id" : "acm001692jsd", + "name" : "addStudentEmailToInstitute" + }, + "acm001693jsd" : { + "type" : "ControlElement", + "id" : "acm001693jsd", + "name" : "addInstructorEmailToInstitute" + }, + "acm001694jsd" : { + "type" : "ControlElement", + "id" : "acm001694jsd", + "name" : "isTestingData" + }, + "acm001695jsd" : { + "type" : "ControlElement", + "id" : "acm001695jsd", + "name" : "getInstituteStatsSortByTotalStudentsDescending" + }, + "acm001696jsd" : { + "type" : "ControlElement", + "id" : "acm001696jsd", + "name" : "getNumOfUniqueStudentEmails" + }, + "acm001697jsd" : { + "type" : "ControlElement", + "id" : "acm001697jsd", + "name" : "getNumOfUniqueInstructorEmails" + }, + "acm001698jsd" : { + "type" : "ControlElement", + "id" : "acm001698jsd", + "name" : "getStatsSince" + }, + "acm001699jsd" : { + "type" : "ControlElement", + "id" : "acm001699jsd", + "name" : "setStatsSince" + }, + "acm001700jsd" : { + "type" : "ControlElement", + "id" : "acm001700jsd", + "name" : "setInstitutesStatsMetadata" + }, + "acm001701jsd" : { + "type" : "ControlElement", + "id" : "acm001701jsd", + "name" : "getInstitutesStatsMetadata" + }, + "acm001702jsd" : { + "type" : "ControlElement", + "id" : "acm001702jsd", + "name" : "setInstitutesStats" + }, + "acm001703jsd" : { + "type" : "ControlElement", + "id" : "acm001703jsd", + "name" : "getInstitutesStats" + }, + "acm001704jsd" : { + "type" : "ControlElement", + "id" : "acm001704jsd", + "name" : "getName" + }, + "acm001705jsd" : { + "type" : "ControlElement", + "id" : "acm001705jsd", + "name" : "getStudentTotal" + }, + "acm001706jsd" : { + "type" : "ControlElement", + "id" : "acm001706jsd", + "name" : "getInstructorTotal" + }, + "acm001707jsd" : { + "type" : "ControlElement", + "id" : "acm001707jsd", + "name" : "InstitutesStatsMetadata" + }, + "acm001708jsd" : { + "type" : "ClassUnit", + "id" : "acm001708jsd", + "name" : "StatisticsBundle", + "compilationUnitId" : "acm001686jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001712jsd", "acm001714jsd" ], + "content" : [ "acm001691jsd", "acm001692jsd", "acm001693jsd", "acm001694jsd", "acm001695jsd", "acm001696jsd", "acm001697jsd", "acm001698jsd", "acm001699jsd", "acm001700jsd", "acm001701jsd", "acm001702jsd", "acm001703jsd", "acm001704jsd", "acm001705jsd", "acm001706jsd", "acm001707jsd" ] + }, + "acm001709jsd" : { + "type" : "ControlElement", + "id" : "acm001709jsd", + "name" : "getName" + }, + "acm001710jsd" : { + "type" : "ControlElement", + "id" : "acm001710jsd", + "name" : "getStudentTotal" + }, + "acm001711jsd" : { + "type" : "ControlElement", + "id" : "acm001711jsd", + "name" : "getInstructorTotal" + }, + "acm001712jsd" : { + "type" : "ClassUnit", + "id" : "acm001712jsd", + "name" : "InstituteStats", + "compilationUnitId" : "acm001686jsd", + "parentDatatypeId" : "acm001708jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001709jsd", "acm001710jsd", "acm001711jsd" ] + }, + "acm001713jsd" : { + "type" : "ControlElement", + "id" : "acm001713jsd", + "name" : "InstitutesStatsMetadata" + }, + "acm001714jsd" : { + "type" : "ClassUnit", + "id" : "acm001714jsd", + "name" : "InstitutesStatsMetadata", + "compilationUnitId" : "acm001686jsd", + "parentDatatypeId" : "acm001708jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001713jsd" ] + }, + "acm001715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001715jsd", + "name" : "StatisticsPerInstitute", + "parentId" : "acm001659jsd", + "content" : [ "acm001729jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts", "statistics" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001716jsd" : { + "type" : "CodePackage", + "id" : "acm001716jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001717jsd" ] + }, + "acm001717jsd" : { + "type" : "CodePackage", + "id" : "acm001717jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001718jsd" ] + }, + "acm001718jsd" : { + "type" : "CodePackage", + "id" : "acm001718jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001719jsd" ] + }, + "acm001719jsd" : { + "type" : "CodePackage", + "id" : "acm001719jsd", + "name" : "statistics", + "parentId" : null, + "content" : [ "acm001715jsd" ] + }, + "acm001720jsd" : { + "type" : "ControlElement", + "id" : "acm001720jsd", + "name" : "StatisticsPerInstitute" + }, + "acm001721jsd" : { + "type" : "ControlElement", + "id" : "acm001721jsd", + "name" : "main" + }, + "acm001722jsd" : { + "type" : "ControlElement", + "id" : "acm001722jsd", + "name" : "getCourseInstitute" + }, + "acm001723jsd" : { + "type" : "ControlElement", + "id" : "acm001723jsd", + "name" : "doOperation" + }, + "acm001724jsd" : { + "type" : "ControlElement", + "id" : "acm001724jsd", + "name" : "printStatsPerInstitute" + }, + "acm001725jsd" : { + "type" : "ControlElement", + "id" : "acm001725jsd", + "name" : "printUniqueStudentEmailStatsInWholeSystem" + }, + "acm001726jsd" : { + "type" : "ControlElement", + "id" : "acm001726jsd", + "name" : "printUniqueInstructorEmailStatsInWholeSystem" + }, + "acm001727jsd" : { + "type" : "ControlElement", + "id" : "acm001727jsd", + "name" : "printQueryRangeMessage" + }, + "acm001728jsd" : { + "type" : "ControlElement", + "id" : "acm001728jsd", + "name" : "saveCheckpointOfData" + }, + "acm001729jsd" : { + "type" : "ClassUnit", + "id" : "acm001729jsd", + "name" : "StatisticsPerInstitute", + "compilationUnitId" : "acm001715jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001344jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001708jsd", "acm001712jsd", "acm001729jsd", "acm001759jsd", "acm007792jsd", "acm007823jsd", "acm008049jsd" ], + "content" : [ "acm001720jsd", "acm001721jsd", "acm001722jsd", "acm001723jsd", "acm001724jsd", "acm001725jsd", "acm001726jsd", "acm001727jsd", "acm001728jsd" ] + }, + "acm001730jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001730jsd", + "name" : "package-info", + "parentId" : "acm001659jsd", + "content" : [ ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "scripts", "statistics" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001731jsd" : { + "type" : "CodePackage", + "id" : "acm001731jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001732jsd" ] + }, + "acm001732jsd" : { + "type" : "CodePackage", + "id" : "acm001732jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001733jsd" ] + }, + "acm001733jsd" : { + "type" : "CodePackage", + "id" : "acm001733jsd", + "name" : "scripts", + "parentId" : null, + "content" : [ "acm001734jsd" ] + }, + "acm001734jsd" : { + "type" : "CodePackage", + "id" : "acm001734jsd", + "name" : "statistics", + "parentId" : null, + "content" : [ "acm001730jsd" ] + }, + "acm001735jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001735jsd", + "name" : "BackDoor", + "parentId" : "acm001738jsd", + "content" : [ "acm001744jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001736jsd" : { + "type" : "CodePackage", + "id" : "acm001736jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001737jsd" ] + }, + "acm001737jsd" : { + "type" : "CodePackage", + "id" : "acm001737jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001738jsd" ] + }, + "acm001738jsd" : { + "type" : "CodePackage", + "id" : "acm001738jsd", + "name" : "util", + "parentId" : "acm001339jsd", + "content" : [ "acm001735jsd", "acm001745jsd", "acm001752jsd", "acm001760jsd" ] + }, + "acm001739jsd" : { + "type" : "ControlElement", + "id" : "acm001739jsd", + "name" : "BackDoor" + }, + "acm001740jsd" : { + "type" : "ControlElement", + "id" : "acm001740jsd", + "name" : "getInstance" + }, + "acm001741jsd" : { + "type" : "ControlElement", + "id" : "acm001741jsd", + "name" : "getAppUrl" + }, + "acm001742jsd" : { + "type" : "ControlElement", + "id" : "acm001742jsd", + "name" : "getBackdoorKey" + }, + "acm001743jsd" : { + "type" : "ControlElement", + "id" : "acm001743jsd", + "name" : "getCsrfKey" + }, + "acm001744jsd" : { + "type" : "ClassUnit", + "id" : "acm001744jsd", + "name" : "BackDoor", + "compilationUnitId" : "acm001735jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011936jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001744jsd" ], + "content" : [ "acm001739jsd", "acm001740jsd", "acm001741jsd", "acm001742jsd", "acm001743jsd" ] + }, + "acm001745jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001745jsd", + "name" : "ClientProperties", + "parentId" : "acm001738jsd", + "content" : [ "acm001751jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001746jsd" : { + "type" : "CodePackage", + "id" : "acm001746jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001747jsd" ] + }, + "acm001747jsd" : { + "type" : "CodePackage", + "id" : "acm001747jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001748jsd" ] + }, + "acm001748jsd" : { + "type" : "CodePackage", + "id" : "acm001748jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001745jsd" ] + }, + "acm001749jsd" : { + "type" : "ControlElement", + "id" : "acm001749jsd", + "name" : "ClientProperties" + }, + "acm001750jsd" : { + "type" : "ControlElement", + "id" : "acm001750jsd", + "name" : "isTargetUrlDevServer" + }, + "acm001751jsd" : { + "type" : "ClassUnit", + "id" : "acm001751jsd", + "name" : "ClientProperties", + "compilationUnitId" : "acm001745jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001749jsd", "acm001750jsd" ] + }, + "acm001752jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001752jsd", + "name" : "LoopHelper", + "parentId" : "acm001738jsd", + "content" : [ "acm001759jsd" ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001753jsd" : { + "type" : "CodePackage", + "id" : "acm001753jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001754jsd" ] + }, + "acm001754jsd" : { + "type" : "CodePackage", + "id" : "acm001754jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001755jsd" ] + }, + "acm001755jsd" : { + "type" : "CodePackage", + "id" : "acm001755jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001752jsd" ] + }, + "acm001756jsd" : { + "type" : "ControlElement", + "id" : "acm001756jsd", + "name" : "LoopHelper" + }, + "acm001757jsd" : { + "type" : "ControlElement", + "id" : "acm001757jsd", + "name" : "recordLoop" + }, + "acm001758jsd" : { + "type" : "ControlElement", + "id" : "acm001758jsd", + "name" : "getCount" + }, + "acm001759jsd" : { + "type" : "ClassUnit", + "id" : "acm001759jsd", + "name" : "LoopHelper", + "compilationUnitId" : "acm001752jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001756jsd", "acm001757jsd", "acm001758jsd" ] + }, + "acm001760jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001760jsd", + "name" : "package-info", + "parentId" : "acm001738jsd", + "content" : [ ], + "pathElements" : [ "src", "client", "java", "teammates", "client", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001761jsd" : { + "type" : "CodePackage", + "id" : "acm001761jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001762jsd" ] + }, + "acm001762jsd" : { + "type" : "CodePackage", + "id" : "acm001762jsd", + "name" : "client", + "parentId" : null, + "content" : [ "acm001763jsd" ] + }, + "acm001763jsd" : { + "type" : "CodePackage", + "id" : "acm001763jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm001760jsd" ] + }, + "acm001764jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001764jsd", + "name" : "AdminAccountsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001770jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001765jsd" : { + "type" : "CodePackage", + "id" : "acm001765jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001766jsd" ] + }, + "acm001766jsd" : { + "type" : "CodePackage", + "id" : "acm001766jsd", + "name" : "e2e", + "parentId" : "acm001338jsd", + "content" : [ "acm001767jsd", "acm002489jsd", "acm003682jsd" ] + }, + "acm001767jsd" : { + "type" : "CodePackage", + "id" : "acm001767jsd", + "name" : "cases", + "parentId" : "acm001766jsd", + "content" : [ "acm001764jsd", "acm001771jsd", "acm001778jsd", "acm001786jsd", "acm001799jsd", "acm001807jsd", "acm001820jsd", "acm001865jsd", "acm001875jsd", "acm001885jsd", "acm001895jsd", "acm001905jsd", "acm001916jsd", "acm001927jsd", "acm001937jsd", "acm001947jsd", "acm001957jsd", "acm001992jsd", "acm002002jsd", "acm002016jsd", "acm002026jsd", "acm002035jsd", "acm002042jsd", "acm002050jsd", "acm002057jsd", "acm002064jsd", "acm002072jsd", "acm002083jsd", "acm002092jsd", "acm002124jsd", "acm002134jsd", "acm002145jsd", "acm002153jsd", "acm002160jsd", "acm002170jsd", "acm002177jsd", "acm002184jsd", "acm002191jsd", "acm002199jsd", "acm002206jsd", "acm002213jsd", "acm002221jsd", "acm002229jsd", "acm002244jsd", "acm002482jsd", "acm002255jsd" ] + }, + "acm001768jsd" : { + "type" : "ControlElement", + "id" : "acm001768jsd", + "name" : "prepareTestData" + }, + "acm001769jsd" : { + "type" : "ControlElement", + "id" : "acm001769jsd", + "name" : "testAll" + }, + "acm001770jsd" : { + "type" : "ClassUnit", + "id" : "acm001770jsd", + "name" : "AdminAccountsPageE2ETest", + "compilationUnitId" : "acm001764jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002496jsd", "acm004486jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm001768jsd", "acm001769jsd" ] + }, + "acm001771jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001771jsd", + "name" : "AdminHomePageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001777jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001772jsd" : { + "type" : "CodePackage", + "id" : "acm001772jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001773jsd" ] + }, + "acm001773jsd" : { + "type" : "CodePackage", + "id" : "acm001773jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001774jsd" ] + }, + "acm001774jsd" : { + "type" : "CodePackage", + "id" : "acm001774jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001771jsd" ] + }, + "acm001775jsd" : { + "type" : "ControlElement", + "id" : "acm001775jsd", + "name" : "prepareTestData" + }, + "acm001776jsd" : { + "type" : "ControlElement", + "id" : "acm001776jsd", + "name" : "testAll" + }, + "acm001777jsd" : { + "type" : "ClassUnit", + "id" : "acm001777jsd", + "name" : "AdminHomePageE2ETest", + "compilationUnitId" : "acm001771jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002509jsd", "acm004539jsd", "acm006214jsd" ], + "content" : [ "acm001775jsd", "acm001776jsd" ] + }, + "acm001778jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001778jsd", + "name" : "AdminNotificationsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001785jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001779jsd" : { + "type" : "CodePackage", + "id" : "acm001779jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001780jsd" ] + }, + "acm001780jsd" : { + "type" : "CodePackage", + "id" : "acm001780jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001781jsd" ] + }, + "acm001781jsd" : { + "type" : "CodePackage", + "id" : "acm001781jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001778jsd" ] + }, + "acm001782jsd" : { + "type" : "ControlElement", + "id" : "acm001782jsd", + "name" : "prepareTestData" + }, + "acm001783jsd" : { + "type" : "ControlElement", + "id" : "acm001783jsd", + "name" : "testAll" + }, + "acm001784jsd" : { + "type" : "ControlElement", + "id" : "acm001784jsd", + "name" : "classTeardown" + }, + "acm001785jsd" : { + "type" : "ClassUnit", + "id" : "acm001785jsd", + "name" : "AdminNotificationsPageE2ETest", + "compilationUnitId" : "acm001778jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002536jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm001782jsd", "acm001783jsd", "acm001784jsd" ] + }, + "acm001786jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001786jsd", + "name" : "AdminSearchPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001798jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001787jsd" : { + "type" : "CodePackage", + "id" : "acm001787jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001788jsd" ] + }, + "acm001788jsd" : { + "type" : "CodePackage", + "id" : "acm001788jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001789jsd" ] + }, + "acm001789jsd" : { + "type" : "CodePackage", + "id" : "acm001789jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001786jsd" ] + }, + "acm001790jsd" : { + "type" : "ControlElement", + "id" : "acm001790jsd", + "name" : "prepareTestData" + }, + "acm001791jsd" : { + "type" : "ControlElement", + "id" : "acm001791jsd", + "name" : "testAll" + }, + "acm001792jsd" : { + "type" : "ControlElement", + "id" : "acm001792jsd", + "name" : "getExpectedStudentDetails" + }, + "acm001793jsd" : { + "type" : "ControlElement", + "id" : "acm001793jsd", + "name" : "getExpectedStudentHomePageLink" + }, + "acm001794jsd" : { + "type" : "ControlElement", + "id" : "acm001794jsd", + "name" : "getExpectedStudentManageAccountLink" + }, + "acm001795jsd" : { + "type" : "ControlElement", + "id" : "acm001795jsd", + "name" : "getExpectedNumExpandedRows" + }, + "acm001796jsd" : { + "type" : "ControlElement", + "id" : "acm001796jsd", + "name" : "getExpectedInstructorHomePageLink" + }, + "acm001797jsd" : { + "type" : "ControlElement", + "id" : "acm001797jsd", + "name" : "getExpectedInstructorManageAccountLink" + }, + "acm001798jsd" : { + "type" : "ClassUnit", + "id" : "acm001798jsd", + "name" : "AdminSearchPageE2ETest", + "compilationUnitId" : "acm001786jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002600jsd", "acm004539jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm001790jsd", "acm001791jsd", "acm001792jsd", "acm001793jsd", "acm001794jsd", "acm001795jsd", "acm001796jsd", "acm001797jsd" ] + }, + "acm001799jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001799jsd", + "name" : "AdminSessionsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001806jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001800jsd" : { + "type" : "CodePackage", + "id" : "acm001800jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001801jsd" ] + }, + "acm001801jsd" : { + "type" : "CodePackage", + "id" : "acm001801jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001802jsd" ] + }, + "acm001802jsd" : { + "type" : "CodePackage", + "id" : "acm001802jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001799jsd" ] + }, + "acm001803jsd" : { + "type" : "ControlElement", + "id" : "acm001803jsd", + "name" : "formatDateTime" + }, + "acm001804jsd" : { + "type" : "ControlElement", + "id" : "acm001804jsd", + "name" : "prepareTestData" + }, + "acm001805jsd" : { + "type" : "ControlElement", + "id" : "acm001805jsd", + "name" : "testAll" + }, + "acm001806jsd" : { + "type" : "ClassUnit", + "id" : "acm001806jsd", + "name" : "AdminSessionsPageE2ETest", + "compilationUnitId" : "acm001799jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002616jsd", "acm005112jsd", "acm006214jsd" ], + "content" : [ "acm001803jsd", "acm001804jsd", "acm001805jsd" ] + }, + "acm001807jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001807jsd", + "name" : "AutomatedSessionRemindersE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001819jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001808jsd" : { + "type" : "CodePackage", + "id" : "acm001808jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001809jsd" ] + }, + "acm001809jsd" : { + "type" : "CodePackage", + "id" : "acm001809jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001810jsd" ] + }, + "acm001810jsd" : { + "type" : "CodePackage", + "id" : "acm001810jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001807jsd" ] + }, + "acm001811jsd" : { + "type" : "ControlElement", + "id" : "acm001811jsd", + "name" : "prepareTestData" + }, + "acm001812jsd" : { + "type" : "ControlElement", + "id" : "acm001812jsd", + "name" : "prepareBrowser" + }, + "acm001813jsd" : { + "type" : "ControlElement", + "id" : "acm001813jsd", + "name" : "testAll" + }, + "acm001814jsd" : { + "type" : "ControlElement", + "id" : "acm001814jsd", + "name" : "testFeedbackSessionOpeningSoonReminders" + }, + "acm001815jsd" : { + "type" : "ControlElement", + "id" : "acm001815jsd", + "name" : "testFeedbackSessionOpeningReminders" + }, + "acm001816jsd" : { + "type" : "ControlElement", + "id" : "acm001816jsd", + "name" : "testFeedbackSessionClosingReminders" + }, + "acm001817jsd" : { + "type" : "ControlElement", + "id" : "acm001817jsd", + "name" : "testFeedbackSessionClosedReminders" + }, + "acm001818jsd" : { + "type" : "ControlElement", + "id" : "acm001818jsd", + "name" : "testFeedbackSessionPublishedReminders" + }, + "acm001819jsd" : { + "type" : "ClassUnit", + "id" : "acm001819jsd", + "name" : "AutomatedSessionRemindersE2ETest", + "compilationUnitId" : "acm001807jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd" ], + "content" : [ "acm001811jsd", "acm001812jsd", "acm001813jsd", "acm001814jsd", "acm001815jsd", "acm001816jsd", "acm001817jsd", "acm001818jsd" ] + }, + "acm001820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001820jsd", + "name" : "BaseE2ETestCase", + "parentId" : "acm001767jsd", + "content" : [ "acm001864jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001821jsd" : { + "type" : "CodePackage", + "id" : "acm001821jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001822jsd" ] + }, + "acm001822jsd" : { + "type" : "CodePackage", + "id" : "acm001822jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001823jsd" ] + }, + "acm001823jsd" : { + "type" : "CodePackage", + "id" : "acm001823jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001820jsd" ] + }, + "acm001824jsd" : { + "type" : "ControlElement", + "id" : "acm001824jsd", + "name" : "baseClassSetup" + }, + "acm001825jsd" : { + "type" : "ControlElement", + "id" : "acm001825jsd", + "name" : "prepareBrowser" + }, + "acm001826jsd" : { + "type" : "ControlElement", + "id" : "acm001826jsd", + "name" : "prepareTestData" + }, + "acm001827jsd" : { + "type" : "ControlElement", + "id" : "acm001827jsd", + "name" : "testAll" + }, + "acm001828jsd" : { + "type" : "ControlElement", + "id" : "acm001828jsd", + "name" : "getTestDataFolder" + }, + "acm001829jsd" : { + "type" : "ControlElement", + "id" : "acm001829jsd", + "name" : "baseClassTearDown" + }, + "acm001830jsd" : { + "type" : "ControlElement", + "id" : "acm001830jsd", + "name" : "createFrontendUrl" + }, + "acm001831jsd" : { + "type" : "ControlElement", + "id" : "acm001831jsd", + "name" : "createBackendUrl" + }, + "acm001832jsd" : { + "type" : "ControlElement", + "id" : "acm001832jsd", + "name" : "loginToPage" + }, + "acm001833jsd" : { + "type" : "ControlElement", + "id" : "acm001833jsd", + "name" : "loginAdminToPage" + }, + "acm001834jsd" : { + "type" : "ControlElement", + "id" : "acm001834jsd", + "name" : "logout" + }, + "acm001835jsd" : { + "type" : "ControlElement", + "id" : "acm001835jsd", + "name" : "deleteDownloadsFile" + }, + "acm001836jsd" : { + "type" : "ControlElement", + "id" : "acm001836jsd", + "name" : "verifyDownloadedFile" + }, + "acm001837jsd" : { + "type" : "ControlElement", + "id" : "acm001837jsd", + "name" : "getNewPageInstance" + }, + "acm001838jsd" : { + "type" : "ControlElement", + "id" : "acm001838jsd", + "name" : "verifyEmailSent" + }, + "acm001839jsd" : { + "type" : "ControlElement", + "id" : "acm001839jsd", + "name" : "getAccount" + }, + "acm001840jsd" : { + "type" : "ControlElement", + "id" : "acm001840jsd", + "name" : "getAccount" + }, + "acm001841jsd" : { + "type" : "ControlElement", + "id" : "acm001841jsd", + "name" : "getCourse" + }, + "acm001842jsd" : { + "type" : "ControlElement", + "id" : "acm001842jsd", + "name" : "getCourse" + }, + "acm001843jsd" : { + "type" : "ControlElement", + "id" : "acm001843jsd", + "name" : "getArchivedCourse" + }, + "acm001844jsd" : { + "type" : "ControlElement", + "id" : "acm001844jsd", + "name" : "getFeedbackQuestion" + }, + "acm001845jsd" : { + "type" : "ControlElement", + "id" : "acm001845jsd", + "name" : "getFeedbackQuestion" + }, + "acm001846jsd" : { + "type" : "ControlElement", + "id" : "acm001846jsd", + "name" : "getFeedbackResponseComment" + }, + "acm001847jsd" : { + "type" : "ControlElement", + "id" : "acm001847jsd", + "name" : "getFeedbackResponseComment" + }, + "acm001848jsd" : { + "type" : "ControlElement", + "id" : "acm001848jsd", + "name" : "getFeedbackResponse" + }, + "acm001849jsd" : { + "type" : "ControlElement", + "id" : "acm001849jsd", + "name" : "getFeedbackResponse" + }, + "acm001850jsd" : { + "type" : "ControlElement", + "id" : "acm001850jsd", + "name" : "getFeedbackSession" + }, + "acm001851jsd" : { + "type" : "ControlElement", + "id" : "acm001851jsd", + "name" : "getFeedbackSession" + }, + "acm001852jsd" : { + "type" : "ControlElement", + "id" : "acm001852jsd", + "name" : "getSoftDeletedSession" + }, + "acm001853jsd" : { + "type" : "ControlElement", + "id" : "acm001853jsd", + "name" : "getInstructor" + }, + "acm001854jsd" : { + "type" : "ControlElement", + "id" : "acm001854jsd", + "name" : "getInstructor" + }, + "acm001855jsd" : { + "type" : "ControlElement", + "id" : "acm001855jsd", + "name" : "getKeyForInstructor" + }, + "acm001856jsd" : { + "type" : "ControlElement", + "id" : "acm001856jsd", + "name" : "getStudent" + }, + "acm001857jsd" : { + "type" : "ControlElement", + "id" : "acm001857jsd", + "name" : "getKeyForStudent" + }, + "acm001858jsd" : { + "type" : "ControlElement", + "id" : "acm001858jsd", + "name" : "getAccountRequest" + }, + "acm001859jsd" : { + "type" : "ControlElement", + "id" : "acm001859jsd", + "name" : "getNotification" + }, + "acm001860jsd" : { + "type" : "ControlElement", + "id" : "acm001860jsd", + "name" : "getNotification" + }, + "acm001861jsd" : { + "type" : "ControlElement", + "id" : "acm001861jsd", + "name" : "getDeadlineExtension" + }, + "acm001862jsd" : { + "type" : "ControlElement", + "id" : "acm001862jsd", + "name" : "doRemoveAndRestoreDataBundle" + }, + "acm001863jsd" : { + "type" : "ControlElement", + "id" : "acm001863jsd", + "name" : "doPutDocuments" + }, + "acm001864jsd" : { + "type" : "ClassUnit", + "id" : "acm001864jsd", + "name" : "BaseE2ETestCase", + "compilationUnitId" : "acm001820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012024jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002697jsd", "acm002712jsd", "acm002730jsd", "acm002919jsd", "acm003695jsd", "acm003707jsd", "acm004205jsd", "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd", "acm006174jsd", "acm006214jsd" ], + "content" : [ "acm001824jsd", "acm001825jsd", "acm001826jsd", "acm001827jsd", "acm001828jsd", "acm001829jsd", "acm001830jsd", "acm001831jsd", "acm001832jsd", "acm001833jsd", "acm001834jsd", "acm001835jsd", "acm001836jsd", "acm001837jsd", "acm001838jsd", "acm001839jsd", "acm001840jsd", "acm001841jsd", "acm001842jsd", "acm001843jsd", "acm001844jsd", "acm001845jsd", "acm001846jsd", "acm001847jsd", "acm001848jsd", "acm001849jsd", "acm001850jsd", "acm001851jsd", "acm001852jsd", "acm001853jsd", "acm001854jsd", "acm001855jsd", "acm001856jsd", "acm001857jsd", "acm001858jsd", "acm001859jsd", "acm001860jsd", "acm001861jsd", "acm001862jsd", "acm001863jsd" ] + }, + "acm001865jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001865jsd", + "name" : "BaseFeedbackQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001874jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001866jsd" : { + "type" : "CodePackage", + "id" : "acm001866jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001867jsd" ] + }, + "acm001867jsd" : { + "type" : "CodePackage", + "id" : "acm001867jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001868jsd" ] + }, + "acm001868jsd" : { + "type" : "CodePackage", + "id" : "acm001868jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001865jsd" ] + }, + "acm001869jsd" : { + "type" : "ControlElement", + "id" : "acm001869jsd", + "name" : "testEditPage" + }, + "acm001870jsd" : { + "type" : "ControlElement", + "id" : "acm001870jsd", + "name" : "testSubmitPage" + }, + "acm001871jsd" : { + "type" : "ControlElement", + "id" : "acm001871jsd", + "name" : "loginToFeedbackEditPage" + }, + "acm001872jsd" : { + "type" : "ControlElement", + "id" : "acm001872jsd", + "name" : "loginToFeedbackSubmitPage" + }, + "acm001873jsd" : { + "type" : "ControlElement", + "id" : "acm001873jsd", + "name" : "getFeedbackSubmitPage" + }, + "acm001874jsd" : { + "type" : "ClassUnit", + "id" : "acm001874jsd", + "name" : "BaseFeedbackQuestionE2ETest", + "compilationUnitId" : "acm001865jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm001869jsd", "acm001870jsd", "acm001871jsd", "acm001872jsd", "acm001873jsd" ] + }, + "acm001875jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001875jsd", + "name" : "FeedbackConstSumOptionQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001884jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001876jsd" : { + "type" : "CodePackage", + "id" : "acm001876jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001877jsd" ] + }, + "acm001877jsd" : { + "type" : "CodePackage", + "id" : "acm001877jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001878jsd" ] + }, + "acm001878jsd" : { + "type" : "CodePackage", + "id" : "acm001878jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001875jsd" ] + }, + "acm001879jsd" : { + "type" : "ControlElement", + "id" : "acm001879jsd", + "name" : "prepareTestData" + }, + "acm001880jsd" : { + "type" : "ControlElement", + "id" : "acm001880jsd", + "name" : "testAll" + }, + "acm001881jsd" : { + "type" : "ControlElement", + "id" : "acm001881jsd", + "name" : "testEditPage" + }, + "acm001882jsd" : { + "type" : "ControlElement", + "id" : "acm001882jsd", + "name" : "testSubmitPage" + }, + "acm001883jsd" : { + "type" : "ControlElement", + "id" : "acm001883jsd", + "name" : "getResponse" + }, + "acm001884jsd" : { + "type" : "ClassUnit", + "id" : "acm001884jsd", + "name" : "FeedbackConstSumOptionQuestionE2ETest", + "compilationUnitId" : "acm001875jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005778jsd", "acm005788jsd" ], + "content" : [ "acm001879jsd", "acm001880jsd", "acm001881jsd", "acm001882jsd", "acm001883jsd" ] + }, + "acm001885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001885jsd", + "name" : "FeedbackConstSumRecipientQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001894jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001886jsd" : { + "type" : "CodePackage", + "id" : "acm001886jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001887jsd" ] + }, + "acm001887jsd" : { + "type" : "CodePackage", + "id" : "acm001887jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001888jsd" ] + }, + "acm001888jsd" : { + "type" : "CodePackage", + "id" : "acm001888jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001885jsd" ] + }, + "acm001889jsd" : { + "type" : "ControlElement", + "id" : "acm001889jsd", + "name" : "prepareTestData" + }, + "acm001890jsd" : { + "type" : "ControlElement", + "id" : "acm001890jsd", + "name" : "testAll" + }, + "acm001891jsd" : { + "type" : "ControlElement", + "id" : "acm001891jsd", + "name" : "testEditPage" + }, + "acm001892jsd" : { + "type" : "ControlElement", + "id" : "acm001892jsd", + "name" : "testSubmitPage" + }, + "acm001893jsd" : { + "type" : "ControlElement", + "id" : "acm001893jsd", + "name" : "getResponse" + }, + "acm001894jsd" : { + "type" : "ClassUnit", + "id" : "acm001894jsd", + "name" : "FeedbackConstSumRecipientQuestionE2ETest", + "compilationUnitId" : "acm001885jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm005778jsd", "acm005788jsd" ], + "content" : [ "acm001889jsd", "acm001890jsd", "acm001891jsd", "acm001892jsd", "acm001893jsd" ] + }, + "acm001895jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001895jsd", + "name" : "FeedbackContributionQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001904jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001896jsd" : { + "type" : "CodePackage", + "id" : "acm001896jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001897jsd" ] + }, + "acm001897jsd" : { + "type" : "CodePackage", + "id" : "acm001897jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001898jsd" ] + }, + "acm001898jsd" : { + "type" : "CodePackage", + "id" : "acm001898jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001895jsd" ] + }, + "acm001899jsd" : { + "type" : "ControlElement", + "id" : "acm001899jsd", + "name" : "prepareTestData" + }, + "acm001900jsd" : { + "type" : "ControlElement", + "id" : "acm001900jsd", + "name" : "testAll" + }, + "acm001901jsd" : { + "type" : "ControlElement", + "id" : "acm001901jsd", + "name" : "testEditPage" + }, + "acm001902jsd" : { + "type" : "ControlElement", + "id" : "acm001902jsd", + "name" : "testSubmitPage" + }, + "acm001903jsd" : { + "type" : "ControlElement", + "id" : "acm001903jsd", + "name" : "getResponse" + }, + "acm001904jsd" : { + "type" : "ClassUnit", + "id" : "acm001904jsd", + "name" : "FeedbackContributionQuestionE2ETest", + "compilationUnitId" : "acm001895jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm005820jsd", "acm005838jsd" ], + "content" : [ "acm001899jsd", "acm001900jsd", "acm001901jsd", "acm001902jsd", "acm001903jsd" ] + }, + "acm001905jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001905jsd", + "name" : "FeedbackMcqQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001915jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001906jsd" : { + "type" : "CodePackage", + "id" : "acm001906jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001907jsd" ] + }, + "acm001907jsd" : { + "type" : "CodePackage", + "id" : "acm001907jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001908jsd" ] + }, + "acm001908jsd" : { + "type" : "CodePackage", + "id" : "acm001908jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001905jsd" ] + }, + "acm001909jsd" : { + "type" : "ControlElement", + "id" : "acm001909jsd", + "name" : "prepareTestData" + }, + "acm001910jsd" : { + "type" : "ControlElement", + "id" : "acm001910jsd", + "name" : "testAll" + }, + "acm001911jsd" : { + "type" : "ControlElement", + "id" : "acm001911jsd", + "name" : "testEditPage" + }, + "acm001912jsd" : { + "type" : "ControlElement", + "id" : "acm001912jsd", + "name" : "testSubmitPage" + }, + "acm001913jsd" : { + "type" : "ControlElement", + "id" : "acm001913jsd", + "name" : "getGeneratedStudentOptions" + }, + "acm001914jsd" : { + "type" : "ControlElement", + "id" : "acm001914jsd", + "name" : "getResponse" + }, + "acm001915jsd" : { + "type" : "ClassUnit", + "id" : "acm001915jsd", + "name" : "FeedbackMcqQuestionE2ETest", + "compilationUnitId" : "acm001905jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005866jsd", "acm005880jsd" ], + "content" : [ "acm001909jsd", "acm001910jsd", "acm001911jsd", "acm001912jsd", "acm001913jsd", "acm001914jsd" ] + }, + "acm001916jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001916jsd", + "name" : "FeedbackMsqQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001926jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001917jsd" : { + "type" : "CodePackage", + "id" : "acm001917jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001918jsd" ] + }, + "acm001918jsd" : { + "type" : "CodePackage", + "id" : "acm001918jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001919jsd" ] + }, + "acm001919jsd" : { + "type" : "CodePackage", + "id" : "acm001919jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001916jsd" ] + }, + "acm001920jsd" : { + "type" : "ControlElement", + "id" : "acm001920jsd", + "name" : "prepareTestData" + }, + "acm001921jsd" : { + "type" : "ControlElement", + "id" : "acm001921jsd", + "name" : "testAll" + }, + "acm001922jsd" : { + "type" : "ControlElement", + "id" : "acm001922jsd", + "name" : "testEditPage" + }, + "acm001923jsd" : { + "type" : "ControlElement", + "id" : "acm001923jsd", + "name" : "testSubmitPage" + }, + "acm001924jsd" : { + "type" : "ControlElement", + "id" : "acm001924jsd", + "name" : "getGeneratedTeams" + }, + "acm001925jsd" : { + "type" : "ControlElement", + "id" : "acm001925jsd", + "name" : "getResponse" + }, + "acm001926jsd" : { + "type" : "ClassUnit", + "id" : "acm001926jsd", + "name" : "FeedbackMsqQuestionE2ETest", + "compilationUnitId" : "acm001916jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm005909jsd", "acm005923jsd" ], + "content" : [ "acm001920jsd", "acm001921jsd", "acm001922jsd", "acm001923jsd", "acm001924jsd", "acm001925jsd" ] + }, + "acm001927jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001927jsd", + "name" : "FeedbackNumScaleQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001936jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001928jsd" : { + "type" : "CodePackage", + "id" : "acm001928jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001929jsd" ] + }, + "acm001929jsd" : { + "type" : "CodePackage", + "id" : "acm001929jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001930jsd" ] + }, + "acm001930jsd" : { + "type" : "CodePackage", + "id" : "acm001930jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001927jsd" ] + }, + "acm001931jsd" : { + "type" : "ControlElement", + "id" : "acm001931jsd", + "name" : "prepareTestData" + }, + "acm001932jsd" : { + "type" : "ControlElement", + "id" : "acm001932jsd", + "name" : "testAll" + }, + "acm001933jsd" : { + "type" : "ControlElement", + "id" : "acm001933jsd", + "name" : "testEditPage" + }, + "acm001934jsd" : { + "type" : "ControlElement", + "id" : "acm001934jsd", + "name" : "testSubmitPage" + }, + "acm001935jsd" : { + "type" : "ControlElement", + "id" : "acm001935jsd", + "name" : "getResponse" + }, + "acm001936jsd" : { + "type" : "ClassUnit", + "id" : "acm001936jsd", + "name" : "FeedbackNumScaleQuestionE2ETest", + "compilationUnitId" : "acm001927jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm005942jsd", "acm005952jsd" ], + "content" : [ "acm001931jsd", "acm001932jsd", "acm001933jsd", "acm001934jsd", "acm001935jsd" ] + }, + "acm001937jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001937jsd", + "name" : "FeedbackRankOptionQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001946jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001938jsd" : { + "type" : "CodePackage", + "id" : "acm001938jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001939jsd" ] + }, + "acm001939jsd" : { + "type" : "CodePackage", + "id" : "acm001939jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001940jsd" ] + }, + "acm001940jsd" : { + "type" : "CodePackage", + "id" : "acm001940jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001937jsd" ] + }, + "acm001941jsd" : { + "type" : "ControlElement", + "id" : "acm001941jsd", + "name" : "prepareTestData" + }, + "acm001942jsd" : { + "type" : "ControlElement", + "id" : "acm001942jsd", + "name" : "testAll" + }, + "acm001943jsd" : { + "type" : "ControlElement", + "id" : "acm001943jsd", + "name" : "testEditPage" + }, + "acm001944jsd" : { + "type" : "ControlElement", + "id" : "acm001944jsd", + "name" : "testSubmitPage" + }, + "acm001945jsd" : { + "type" : "ControlElement", + "id" : "acm001945jsd", + "name" : "getResponse" + }, + "acm001946jsd" : { + "type" : "ClassUnit", + "id" : "acm001946jsd", + "name" : "FeedbackRankOptionQuestionE2ETest", + "compilationUnitId" : "acm001937jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm006001jsd", "acm006012jsd", "acm006025jsd" ], + "content" : [ "acm001941jsd", "acm001942jsd", "acm001943jsd", "acm001944jsd", "acm001945jsd" ] + }, + "acm001947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001947jsd", + "name" : "FeedbackRankRecipientQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001956jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001948jsd" : { + "type" : "CodePackage", + "id" : "acm001948jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001949jsd" ] + }, + "acm001949jsd" : { + "type" : "CodePackage", + "id" : "acm001949jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001950jsd" ] + }, + "acm001950jsd" : { + "type" : "CodePackage", + "id" : "acm001950jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001947jsd" ] + }, + "acm001951jsd" : { + "type" : "ControlElement", + "id" : "acm001951jsd", + "name" : "prepareTestData" + }, + "acm001952jsd" : { + "type" : "ControlElement", + "id" : "acm001952jsd", + "name" : "testAll" + }, + "acm001953jsd" : { + "type" : "ControlElement", + "id" : "acm001953jsd", + "name" : "testEditPage" + }, + "acm001954jsd" : { + "type" : "ControlElement", + "id" : "acm001954jsd", + "name" : "testSubmitPage" + }, + "acm001955jsd" : { + "type" : "ControlElement", + "id" : "acm001955jsd", + "name" : "getResponse" + }, + "acm001956jsd" : { + "type" : "ClassUnit", + "id" : "acm001956jsd", + "name" : "FeedbackRankRecipientQuestionE2ETest", + "compilationUnitId" : "acm001947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005233jsd", "acm006025jsd", "acm006038jsd", "acm006049jsd" ], + "content" : [ "acm001951jsd", "acm001952jsd", "acm001953jsd", "acm001954jsd", "acm001955jsd" ] + }, + "acm001957jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001957jsd", + "name" : "FeedbackResultsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm001991jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001958jsd" : { + "type" : "CodePackage", + "id" : "acm001958jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001959jsd" ] + }, + "acm001959jsd" : { + "type" : "CodePackage", + "id" : "acm001959jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001960jsd" ] + }, + "acm001960jsd" : { + "type" : "CodePackage", + "id" : "acm001960jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001957jsd" ] + }, + "acm001961jsd" : { + "type" : "ControlElement", + "id" : "acm001961jsd", + "name" : "prepareTestData" + }, + "acm001962jsd" : { + "type" : "ControlElement", + "id" : "acm001962jsd", + "name" : "testAll" + }, + "acm001963jsd" : { + "type" : "ControlElement", + "id" : "acm001963jsd", + "name" : "verifyLoadedQuestions" + }, + "acm001964jsd" : { + "type" : "ControlElement", + "id" : "acm001964jsd", + "name" : "verifyLoadedQuestions" + }, + "acm001965jsd" : { + "type" : "ControlElement", + "id" : "acm001965jsd", + "name" : "verifyResponseDetails" + }, + "acm001966jsd" : { + "type" : "ControlElement", + "id" : "acm001966jsd", + "name" : "verifyResponseDetails" + }, + "acm001967jsd" : { + "type" : "ControlElement", + "id" : "acm001967jsd", + "name" : "verifyCommentDetails" + }, + "acm001968jsd" : { + "type" : "ControlElement", + "id" : "acm001968jsd", + "name" : "canInstructorSeeQuestion" + }, + "acm001969jsd" : { + "type" : "ControlElement", + "id" : "acm001969jsd", + "name" : "getQnsWithResponses" + }, + "acm001970jsd" : { + "type" : "ControlElement", + "id" : "acm001970jsd", + "name" : "getQnsWithResponses" + }, + "acm001971jsd" : { + "type" : "ControlElement", + "id" : "acm001971jsd", + "name" : "getGivenResponses" + }, + "acm001972jsd" : { + "type" : "ControlElement", + "id" : "acm001972jsd", + "name" : "getGivenResponses" + }, + "acm001973jsd" : { + "type" : "ControlElement", + "id" : "acm001973jsd", + "name" : "getOtherResponses" + }, + "acm001974jsd" : { + "type" : "ControlElement", + "id" : "acm001974jsd", + "name" : "getOtherResponses" + }, + "acm001975jsd" : { + "type" : "ControlElement", + "id" : "acm001975jsd", + "name" : "getVisibleGivers" + }, + "acm001976jsd" : { + "type" : "ControlElement", + "id" : "acm001976jsd", + "name" : "getVisibleGivers" + }, + "acm001977jsd" : { + "type" : "ControlElement", + "id" : "acm001977jsd", + "name" : "getVisibleRecipients" + }, + "acm001978jsd" : { + "type" : "ControlElement", + "id" : "acm001978jsd", + "name" : "getVisibleRecipients" + }, + "acm001979jsd" : { + "type" : "ControlElement", + "id" : "acm001979jsd", + "name" : "getRelevantUsers" + }, + "acm001980jsd" : { + "type" : "ControlElement", + "id" : "acm001980jsd", + "name" : "getRelevantUsersForInstructors" + }, + "acm001981jsd" : { + "type" : "ControlElement", + "id" : "acm001981jsd", + "name" : "getOtherTeammates" + }, + "acm001982jsd" : { + "type" : "ControlElement", + "id" : "acm001982jsd", + "name" : "getOtherStudents" + }, + "acm001983jsd" : { + "type" : "ControlElement", + "id" : "acm001983jsd", + "name" : "editIdentifiers" + }, + "acm001984jsd" : { + "type" : "ControlElement", + "id" : "acm001984jsd", + "name" : "editIdentifiers" + }, + "acm001985jsd" : { + "type" : "ControlElement", + "id" : "acm001985jsd", + "name" : "getIdentifier" + }, + "acm001986jsd" : { + "type" : "ControlElement", + "id" : "acm001986jsd", + "name" : "getIdentifier" + }, + "acm001987jsd" : { + "type" : "ControlElement", + "id" : "acm001987jsd", + "name" : "getStudentName" + }, + "acm001988jsd" : { + "type" : "ControlElement", + "id" : "acm001988jsd", + "name" : "getInstructorName" + }, + "acm001989jsd" : { + "type" : "ControlElement", + "id" : "acm001989jsd", + "name" : "deepCopyResponses" + }, + "acm001990jsd" : { + "type" : "ControlElement", + "id" : "acm001990jsd", + "name" : "verifyExpectedRubricStats" + }, + "acm001991jsd" : { + "type" : "ClassUnit", + "id" : "acm001991jsd", + "name" : "FeedbackResultsPageE2ETest", + "compilationUnitId" : "acm001957jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002809jsd", "acm004226jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006089jsd", "acm006214jsd" ], + "content" : [ "acm001961jsd", "acm001962jsd", "acm001963jsd", "acm001964jsd", "acm001965jsd", "acm001966jsd", "acm001967jsd", "acm001968jsd", "acm001969jsd", "acm001970jsd", "acm001971jsd", "acm001972jsd", "acm001973jsd", "acm001974jsd", "acm001975jsd", "acm001976jsd", "acm001977jsd", "acm001978jsd", "acm001979jsd", "acm001980jsd", "acm001981jsd", "acm001982jsd", "acm001983jsd", "acm001984jsd", "acm001985jsd", "acm001986jsd", "acm001987jsd", "acm001988jsd", "acm001989jsd", "acm001990jsd" ] + }, + "acm001992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001992jsd", + "name" : "FeedbackRubricQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002001jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001993jsd" : { + "type" : "CodePackage", + "id" : "acm001993jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm001994jsd" ] + }, + "acm001994jsd" : { + "type" : "CodePackage", + "id" : "acm001994jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm001995jsd" ] + }, + "acm001995jsd" : { + "type" : "CodePackage", + "id" : "acm001995jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm001992jsd" ] + }, + "acm001996jsd" : { + "type" : "ControlElement", + "id" : "acm001996jsd", + "name" : "prepareTestData" + }, + "acm001997jsd" : { + "type" : "ControlElement", + "id" : "acm001997jsd", + "name" : "testAll" + }, + "acm001998jsd" : { + "type" : "ControlElement", + "id" : "acm001998jsd", + "name" : "testEditPage" + }, + "acm001999jsd" : { + "type" : "ControlElement", + "id" : "acm001999jsd", + "name" : "testSubmitPage" + }, + "acm002000jsd" : { + "type" : "ControlElement", + "id" : "acm002000jsd", + "name" : "getResponse" + }, + "acm002001jsd" : { + "type" : "ClassUnit", + "id" : "acm002001jsd", + "name" : "FeedbackRubricQuestionE2ETest", + "compilationUnitId" : "acm001992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005412jsd", "acm006089jsd", "acm006099jsd" ], + "content" : [ "acm001996jsd", "acm001997jsd", "acm001998jsd", "acm001999jsd", "acm002000jsd" ] + }, + "acm002002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002002jsd", + "name" : "FeedbackSubmitPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002015jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002003jsd" : { + "type" : "CodePackage", + "id" : "acm002003jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002004jsd" ] + }, + "acm002004jsd" : { + "type" : "CodePackage", + "id" : "acm002004jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002005jsd" ] + }, + "acm002005jsd" : { + "type" : "CodePackage", + "id" : "acm002005jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002002jsd" ] + }, + "acm002006jsd" : { + "type" : "ControlElement", + "id" : "acm002006jsd", + "name" : "prepareTestData" + }, + "acm002007jsd" : { + "type" : "ControlElement", + "id" : "acm002007jsd", + "name" : "testAll" + }, + "acm002008jsd" : { + "type" : "ControlElement", + "id" : "acm002008jsd", + "name" : "getStudentSubmitPageUrl" + }, + "acm002009jsd" : { + "type" : "ControlElement", + "id" : "acm002009jsd", + "name" : "getOtherStudents" + }, + "acm002010jsd" : { + "type" : "ControlElement", + "id" : "acm002010jsd", + "name" : "getInstructors" + }, + "acm002011jsd" : { + "type" : "ControlElement", + "id" : "acm002011jsd", + "name" : "getTeammates" + }, + "acm002012jsd" : { + "type" : "ControlElement", + "id" : "acm002012jsd", + "name" : "getOtherTeams" + }, + "acm002013jsd" : { + "type" : "ControlElement", + "id" : "acm002013jsd", + "name" : "getMcqResponse" + }, + "acm002014jsd" : { + "type" : "ControlElement", + "id" : "acm002014jsd", + "name" : "getFeedbackResponseComment" + }, + "acm002015jsd" : { + "type" : "ClassUnit", + "id" : "acm002015jsd", + "name" : "FeedbackSubmitPageE2ETest", + "compilationUnitId" : "acm002002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005880jsd", "acm006214jsd" ], + "content" : [ "acm002006jsd", "acm002007jsd", "acm002008jsd", "acm002009jsd", "acm002010jsd", "acm002011jsd", "acm002012jsd", "acm002013jsd", "acm002014jsd" ] + }, + "acm002016jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002016jsd", + "name" : "FeedbackTextQuestionE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002025jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002017jsd" : { + "type" : "CodePackage", + "id" : "acm002017jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002018jsd" ] + }, + "acm002018jsd" : { + "type" : "CodePackage", + "id" : "acm002018jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002019jsd" ] + }, + "acm002019jsd" : { + "type" : "CodePackage", + "id" : "acm002019jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002016jsd" ] + }, + "acm002020jsd" : { + "type" : "ControlElement", + "id" : "acm002020jsd", + "name" : "prepareTestData" + }, + "acm002021jsd" : { + "type" : "ControlElement", + "id" : "acm002021jsd", + "name" : "testAll" + }, + "acm002022jsd" : { + "type" : "ControlElement", + "id" : "acm002022jsd", + "name" : "testEditPage" + }, + "acm002023jsd" : { + "type" : "ControlElement", + "id" : "acm002023jsd", + "name" : "testSubmitPage" + }, + "acm002024jsd" : { + "type" : "ControlElement", + "id" : "acm002024jsd", + "name" : "getResponse" + }, + "acm002025jsd" : { + "type" : "ClassUnit", + "id" : "acm002025jsd", + "name" : "FeedbackTextQuestionE2ETest", + "compilationUnitId" : "acm002016jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001874jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004788jsd", "acm004871jsd", "acm005233jsd", "acm006116jsd", "acm006127jsd" ], + "content" : [ "acm002020jsd", "acm002021jsd", "acm002022jsd", "acm002023jsd", "acm002024jsd" ] + }, + "acm002026jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002026jsd", + "name" : "InstructorCourseDetailsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002034jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002027jsd" : { + "type" : "CodePackage", + "id" : "acm002027jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002028jsd" ] + }, + "acm002028jsd" : { + "type" : "CodePackage", + "id" : "acm002028jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002029jsd" ] + }, + "acm002029jsd" : { + "type" : "CodePackage", + "id" : "acm002029jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002026jsd" ] + }, + "acm002030jsd" : { + "type" : "ControlElement", + "id" : "acm002030jsd", + "name" : "prepareTestData" + }, + "acm002031jsd" : { + "type" : "ControlElement", + "id" : "acm002031jsd", + "name" : "classSetup" + }, + "acm002032jsd" : { + "type" : "ControlElement", + "id" : "acm002032jsd", + "name" : "testAll" + }, + "acm002033jsd" : { + "type" : "ControlElement", + "id" : "acm002033jsd", + "name" : "verifyCourseDetails" + }, + "acm002034jsd" : { + "type" : "ClassUnit", + "id" : "acm002034jsd", + "name" : "InstructorCourseDetailsPageE2ETest", + "compilationUnitId" : "acm002026jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002956jsd", "acm003069jsd", "acm003079jsd", "acm003627jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002030jsd", "acm002031jsd", "acm002032jsd", "acm002033jsd" ] + }, + "acm002035jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002035jsd", + "name" : "InstructorCourseEditPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002041jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002036jsd" : { + "type" : "CodePackage", + "id" : "acm002036jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002037jsd" ] + }, + "acm002037jsd" : { + "type" : "CodePackage", + "id" : "acm002037jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002038jsd" ] + }, + "acm002038jsd" : { + "type" : "CodePackage", + "id" : "acm002038jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002035jsd" ] + }, + "acm002039jsd" : { + "type" : "ControlElement", + "id" : "acm002039jsd", + "name" : "prepareTestData" + }, + "acm002040jsd" : { + "type" : "ControlElement", + "id" : "acm002040jsd", + "name" : "testAll" + }, + "acm002041jsd" : { + "type" : "ClassUnit", + "id" : "acm002041jsd", + "name" : "InstructorCourseEditPageE2ETest", + "compilationUnitId" : "acm002035jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003039jsd", "acm004598jsd", "acm005233jsd", "acm006214jsd" ], + "content" : [ "acm002039jsd", "acm002040jsd" ] + }, + "acm002042jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002042jsd", + "name" : "InstructorCourseEnrollPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002049jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002043jsd" : { + "type" : "CodePackage", + "id" : "acm002043jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002044jsd" ] + }, + "acm002044jsd" : { + "type" : "CodePackage", + "id" : "acm002044jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002045jsd" ] + }, + "acm002045jsd" : { + "type" : "CodePackage", + "id" : "acm002045jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002042jsd" ] + }, + "acm002046jsd" : { + "type" : "ControlElement", + "id" : "acm002046jsd", + "name" : "prepareTestData" + }, + "acm002047jsd" : { + "type" : "ControlElement", + "id" : "acm002047jsd", + "name" : "testAll" + }, + "acm002048jsd" : { + "type" : "ControlElement", + "id" : "acm002048jsd", + "name" : "createCourseStudent" + }, + "acm002049jsd" : { + "type" : "ClassUnit", + "id" : "acm002049jsd", + "name" : "InstructorCourseEnrollPageE2ETest", + "compilationUnitId" : "acm002042jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003058jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002046jsd", "acm002047jsd", "acm002048jsd" ] + }, + "acm002050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002050jsd", + "name" : "InstructorCourseJoinConfirmationPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002056jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002051jsd" : { + "type" : "CodePackage", + "id" : "acm002051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002052jsd" ] + }, + "acm002052jsd" : { + "type" : "CodePackage", + "id" : "acm002052jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002053jsd" ] + }, + "acm002053jsd" : { + "type" : "CodePackage", + "id" : "acm002053jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002050jsd" ] + }, + "acm002054jsd" : { + "type" : "ControlElement", + "id" : "acm002054jsd", + "name" : "prepareTestData" + }, + "acm002055jsd" : { + "type" : "ControlElement", + "id" : "acm002055jsd", + "name" : "testAll" + }, + "acm002056jsd" : { + "type" : "ClassUnit", + "id" : "acm002056jsd", + "name" : "InstructorCourseJoinConfirmationPageE2ETest", + "compilationUnitId" : "acm002050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002722jsd", "acm003517jsd", "acm005233jsd", "acm006214jsd" ], + "content" : [ "acm002054jsd", "acm002055jsd" ] + }, + "acm002057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002057jsd", + "name" : "InstructorCourseStudentDetailsEditPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002063jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002058jsd" : { + "type" : "CodePackage", + "id" : "acm002058jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002059jsd" ] + }, + "acm002059jsd" : { + "type" : "CodePackage", + "id" : "acm002059jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002060jsd" ] + }, + "acm002060jsd" : { + "type" : "CodePackage", + "id" : "acm002060jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002057jsd" ] + }, + "acm002061jsd" : { + "type" : "ControlElement", + "id" : "acm002061jsd", + "name" : "prepareTestData" + }, + "acm002062jsd" : { + "type" : "ControlElement", + "id" : "acm002062jsd", + "name" : "testAll" + }, + "acm002063jsd" : { + "type" : "ClassUnit", + "id" : "acm002063jsd", + "name" : "InstructorCourseStudentDetailsEditPageE2ETest", + "compilationUnitId" : "acm002057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003069jsd", "acm004598jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002061jsd", "acm002062jsd" ] + }, + "acm002064jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002064jsd", + "name" : "InstructorCourseStudentDetailsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002071jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002065jsd" : { + "type" : "CodePackage", + "id" : "acm002065jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002066jsd" ] + }, + "acm002066jsd" : { + "type" : "CodePackage", + "id" : "acm002066jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002067jsd" ] + }, + "acm002067jsd" : { + "type" : "CodePackage", + "id" : "acm002067jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002064jsd" ] + }, + "acm002068jsd" : { + "type" : "ControlElement", + "id" : "acm002068jsd", + "name" : "prepareTestData" + }, + "acm002069jsd" : { + "type" : "ControlElement", + "id" : "acm002069jsd", + "name" : "testAll" + }, + "acm002070jsd" : { + "type" : "ControlElement", + "id" : "acm002070jsd", + "name" : "getStudentDetailsViewPageUrl" + }, + "acm002071jsd" : { + "type" : "ClassUnit", + "id" : "acm002071jsd", + "name" : "InstructorCourseStudentDetailsPageE2ETest", + "compilationUnitId" : "acm002064jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003079jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002068jsd", "acm002069jsd", "acm002070jsd" ] + }, + "acm002072jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002072jsd", + "name" : "InstructorCoursesPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002082jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002073jsd" : { + "type" : "CodePackage", + "id" : "acm002073jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002074jsd" ] + }, + "acm002074jsd" : { + "type" : "CodePackage", + "id" : "acm002074jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002075jsd" ] + }, + "acm002075jsd" : { + "type" : "CodePackage", + "id" : "acm002075jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002072jsd" ] + }, + "acm002076jsd" : { + "type" : "ControlElement", + "id" : "acm002076jsd", + "name" : "prepareTestData" + }, + "acm002077jsd" : { + "type" : "ControlElement", + "id" : "acm002077jsd", + "name" : "classSetup" + }, + "acm002078jsd" : { + "type" : "ControlElement", + "id" : "acm002078jsd", + "name" : "testAll" + }, + "acm002079jsd" : { + "type" : "ControlElement", + "id" : "acm002079jsd", + "name" : "verifyActiveCourseStatistics" + }, + "acm002080jsd" : { + "type" : "ControlElement", + "id" : "acm002080jsd", + "name" : "verifyCourseArchivedInDatabase" + }, + "acm002081jsd" : { + "type" : "ControlElement", + "id" : "acm002081jsd", + "name" : "verifyCourseNotArchivedInDatabase" + }, + "acm002082jsd" : { + "type" : "ClassUnit", + "id" : "acm002082jsd", + "name" : "InstructorCoursesPageE2ETest", + "compilationUnitId" : "acm002072jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003150jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002076jsd", "acm002077jsd", "acm002078jsd", "acm002079jsd", "acm002080jsd", "acm002081jsd" ] + }, + "acm002083jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002083jsd", + "name" : "InstructorFeedbackEditPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002091jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002084jsd" : { + "type" : "CodePackage", + "id" : "acm002084jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002085jsd" ] + }, + "acm002085jsd" : { + "type" : "CodePackage", + "id" : "acm002085jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002086jsd" ] + }, + "acm002086jsd" : { + "type" : "CodePackage", + "id" : "acm002086jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002083jsd" ] + }, + "acm002087jsd" : { + "type" : "ControlElement", + "id" : "acm002087jsd", + "name" : "prepareTestData" + }, + "acm002088jsd" : { + "type" : "ControlElement", + "id" : "acm002088jsd", + "name" : "testAll" + }, + "acm002089jsd" : { + "type" : "ControlElement", + "id" : "acm002089jsd", + "name" : "verifyReorder" + }, + "acm002090jsd" : { + "type" : "ControlElement", + "id" : "acm002090jsd", + "name" : "getTemplateQuestion" + }, + "acm002091jsd" : { + "type" : "ClassUnit", + "id" : "acm002091jsd", + "name" : "InstructorFeedbackEditPageE2ETest", + "compilationUnitId" : "acm002083jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003320jsd", "acm004598jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005820jsd", "acm006116jsd", "acm006214jsd" ], + "content" : [ "acm002087jsd", "acm002088jsd", "acm002089jsd", "acm002090jsd" ] + }, + "acm002092jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002092jsd", + "name" : "InstructorFeedbackReportPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002123jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002093jsd" : { + "type" : "CodePackage", + "id" : "acm002093jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002094jsd" ] + }, + "acm002094jsd" : { + "type" : "CodePackage", + "id" : "acm002094jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002095jsd" ] + }, + "acm002095jsd" : { + "type" : "CodePackage", + "id" : "acm002095jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002092jsd" ] + }, + "acm002096jsd" : { + "type" : "ControlElement", + "id" : "acm002096jsd", + "name" : "prepareTestData" + }, + "acm002097jsd" : { + "type" : "ControlElement", + "id" : "acm002097jsd", + "name" : "classSetup" + }, + "acm002098jsd" : { + "type" : "ControlElement", + "id" : "acm002098jsd", + "name" : "testAll" + }, + "acm002099jsd" : { + "type" : "ControlElement", + "id" : "acm002099jsd", + "name" : "testQuestionView" + }, + "acm002100jsd" : { + "type" : "ControlElement", + "id" : "acm002100jsd", + "name" : "testGrqView" + }, + "acm002101jsd" : { + "type" : "ControlElement", + "id" : "acm002101jsd", + "name" : "testRgqView" + }, + "acm002102jsd" : { + "type" : "ControlElement", + "id" : "acm002102jsd", + "name" : "testGqrView" + }, + "acm002103jsd" : { + "type" : "ControlElement", + "id" : "acm002103jsd", + "name" : "testRqgView" + }, + "acm002104jsd" : { + "type" : "ControlElement", + "id" : "acm002104jsd", + "name" : "testActions" + }, + "acm002105jsd" : { + "type" : "ControlElement", + "id" : "acm002105jsd", + "name" : "verifySessionPublishedState" + }, + "acm002106jsd" : { + "type" : "ControlElement", + "id" : "acm002106jsd", + "name" : "getQuestionsByCourse" + }, + "acm002107jsd" : { + "type" : "ControlElement", + "id" : "acm002107jsd", + "name" : "getNotRespondedStudents" + }, + "acm002108jsd" : { + "type" : "ControlElement", + "id" : "acm002108jsd", + "name" : "getResponsesByQuestion" + }, + "acm002109jsd" : { + "type" : "ControlElement", + "id" : "acm002109jsd", + "name" : "sortResponses" + }, + "acm002110jsd" : { + "type" : "ControlElement", + "id" : "acm002110jsd", + "name" : "getTeamName" + }, + "acm002111jsd" : { + "type" : "ControlElement", + "id" : "acm002111jsd", + "name" : "getResponsesByTeam" + }, + "acm002112jsd" : { + "type" : "ControlElement", + "id" : "acm002112jsd", + "name" : "addMissingResponseToMap" + }, + "acm002113jsd" : { + "type" : "ControlElement", + "id" : "acm002113jsd", + "name" : "filterMapBySection" + }, + "acm002114jsd" : { + "type" : "ControlElement", + "id" : "acm002114jsd", + "name" : "filterResponsesBySection" + }, + "acm002115jsd" : { + "type" : "ControlElement", + "id" : "acm002115jsd", + "name" : "getMissingResponse" + }, + "acm002116jsd" : { + "type" : "ControlElement", + "id" : "acm002116jsd", + "name" : "verifyGqrViewResponses" + }, + "acm002117jsd" : { + "type" : "ControlElement", + "id" : "acm002117jsd", + "name" : "verifyRqgViewResponses" + }, + "acm002118jsd" : { + "type" : "ControlElement", + "id" : "acm002118jsd", + "name" : "verifyGrqViewResponses" + }, + "acm002119jsd" : { + "type" : "ControlElement", + "id" : "acm002119jsd", + "name" : "verifyRgqViewResponses" + }, + "acm002120jsd" : { + "type" : "ControlElement", + "id" : "acm002120jsd", + "name" : "verifyRqgViewStats" + }, + "acm002121jsd" : { + "type" : "ControlElement", + "id" : "acm002121jsd", + "name" : "verifyGqrViewStats" + }, + "acm002122jsd" : { + "type" : "ControlElement", + "id" : "acm002122jsd", + "name" : "organiseResponses" + }, + "acm002123jsd" : { + "type" : "ClassUnit", + "id" : "acm002123jsd", + "name" : "InstructorFeedbackReportPageE2ETest", + "compilationUnitId" : "acm002092jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003419jsd", "acm004226jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002096jsd", "acm002097jsd", "acm002098jsd", "acm002099jsd", "acm002100jsd", "acm002101jsd", "acm002102jsd", "acm002103jsd", "acm002104jsd", "acm002105jsd", "acm002106jsd", "acm002107jsd", "acm002108jsd", "acm002109jsd", "acm002110jsd", "acm002111jsd", "acm002112jsd", "acm002113jsd", "acm002114jsd", "acm002115jsd", "acm002116jsd", "acm002117jsd", "acm002118jsd", "acm002119jsd", "acm002120jsd", "acm002121jsd", "acm002122jsd" ] + }, + "acm002124jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002124jsd", + "name" : "InstructorFeedbackSessionsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002133jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002125jsd" : { + "type" : "CodePackage", + "id" : "acm002125jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002126jsd" ] + }, + "acm002126jsd" : { + "type" : "CodePackage", + "id" : "acm002126jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002127jsd" ] + }, + "acm002127jsd" : { + "type" : "CodePackage", + "id" : "acm002127jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002124jsd" ] + }, + "acm002128jsd" : { + "type" : "ControlElement", + "id" : "acm002128jsd", + "name" : "prepareTestData" + }, + "acm002129jsd" : { + "type" : "ControlElement", + "id" : "acm002129jsd", + "name" : "classSetup" + }, + "acm002130jsd" : { + "type" : "ControlElement", + "id" : "acm002130jsd", + "name" : "testAll" + }, + "acm002131jsd" : { + "type" : "ControlElement", + "id" : "acm002131jsd", + "name" : "getExpectedResponseRate" + }, + "acm002132jsd" : { + "type" : "ControlElement", + "id" : "acm002132jsd", + "name" : "verifySessionPublishedState" + }, + "acm002133jsd" : { + "type" : "ClassUnit", + "id" : "acm002133jsd", + "name" : "InstructorFeedbackSessionsPageE2ETest", + "compilationUnitId" : "acm002124jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003483jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002128jsd", "acm002129jsd", "acm002130jsd", "acm002131jsd", "acm002132jsd" ] + }, + "acm002134jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002134jsd", + "name" : "InstructorHomePageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002144jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002135jsd" : { + "type" : "CodePackage", + "id" : "acm002135jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002136jsd" ] + }, + "acm002136jsd" : { + "type" : "CodePackage", + "id" : "acm002136jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002137jsd" ] + }, + "acm002137jsd" : { + "type" : "CodePackage", + "id" : "acm002137jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002134jsd" ] + }, + "acm002138jsd" : { + "type" : "ControlElement", + "id" : "acm002138jsd", + "name" : "prepareTestData" + }, + "acm002139jsd" : { + "type" : "ControlElement", + "id" : "acm002139jsd", + "name" : "classSetup" + }, + "acm002140jsd" : { + "type" : "ControlElement", + "id" : "acm002140jsd", + "name" : "testAll" + }, + "acm002141jsd" : { + "type" : "ControlElement", + "id" : "acm002141jsd", + "name" : "getExpectedResponseRate" + }, + "acm002142jsd" : { + "type" : "ControlElement", + "id" : "acm002142jsd", + "name" : "verifySessionPublishedState" + }, + "acm002143jsd" : { + "type" : "ControlElement", + "id" : "acm002143jsd", + "name" : "verifyCourseArchivedInDatabase" + }, + "acm002144jsd" : { + "type" : "ClassUnit", + "id" : "acm002144jsd", + "name" : "InstructorHomePageE2ETest", + "compilationUnitId" : "acm002134jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003517jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002138jsd", "acm002139jsd", "acm002140jsd", "acm002141jsd", "acm002142jsd", "acm002143jsd" ] + }, + "acm002145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002145jsd", + "name" : "InstructorNotificationsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002152jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002146jsd" : { + "type" : "CodePackage", + "id" : "acm002146jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002147jsd" ] + }, + "acm002147jsd" : { + "type" : "CodePackage", + "id" : "acm002147jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002148jsd" ] + }, + "acm002148jsd" : { + "type" : "CodePackage", + "id" : "acm002148jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002145jsd" ] + }, + "acm002149jsd" : { + "type" : "ControlElement", + "id" : "acm002149jsd", + "name" : "prepareTestData" + }, + "acm002150jsd" : { + "type" : "ControlElement", + "id" : "acm002150jsd", + "name" : "testAll" + }, + "acm002151jsd" : { + "type" : "ControlElement", + "id" : "acm002151jsd", + "name" : "classTeardown" + }, + "acm002152jsd" : { + "type" : "ClassUnit", + "id" : "acm002152jsd", + "name" : "InstructorNotificationsPageE2ETest", + "compilationUnitId" : "acm002145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003524jsd", "acm004486jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm002149jsd", "acm002150jsd", "acm002151jsd" ] + }, + "acm002153jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002153jsd", + "name" : "InstructorSearchPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002159jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002154jsd" : { + "type" : "CodePackage", + "id" : "acm002154jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002155jsd" ] + }, + "acm002155jsd" : { + "type" : "CodePackage", + "id" : "acm002155jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002156jsd" ] + }, + "acm002156jsd" : { + "type" : "CodePackage", + "id" : "acm002156jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002153jsd" ] + }, + "acm002157jsd" : { + "type" : "ControlElement", + "id" : "acm002157jsd", + "name" : "prepareTestData" + }, + "acm002158jsd" : { + "type" : "ControlElement", + "id" : "acm002158jsd", + "name" : "testAll" + }, + "acm002159jsd" : { + "type" : "ClassUnit", + "id" : "acm002159jsd", + "name" : "InstructorSearchPageE2ETest", + "compilationUnitId" : "acm002153jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003069jsd", "acm003079jsd", "acm003544jsd", "acm003627jsd", "acm004598jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002157jsd", "acm002158jsd" ] + }, + "acm002160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002160jsd", + "name" : "InstructorSessionIndividualExtensionPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002169jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002161jsd" : { + "type" : "CodePackage", + "id" : "acm002161jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002162jsd" ] + }, + "acm002162jsd" : { + "type" : "CodePackage", + "id" : "acm002162jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002163jsd" ] + }, + "acm002163jsd" : { + "type" : "CodePackage", + "id" : "acm002163jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002160jsd" ] + }, + "acm002164jsd" : { + "type" : "ControlElement", + "id" : "acm002164jsd", + "name" : "prepareTestData" + }, + "acm002165jsd" : { + "type" : "ControlElement", + "id" : "acm002165jsd", + "name" : "testAll" + }, + "acm002166jsd" : { + "type" : "ControlElement", + "id" : "acm002166jsd", + "name" : "verifyUpdatedDeadlinesMap" + }, + "acm002167jsd" : { + "type" : "ControlElement", + "id" : "acm002167jsd", + "name" : "verifyDeadlineExtensionsPresentOrAbsent" + }, + "acm002168jsd" : { + "type" : "ControlElement", + "id" : "acm002168jsd", + "name" : "loginToInstructorSessionIndividualExtensionPage" + }, + "acm002169jsd" : { + "type" : "ClassUnit", + "id" : "acm002169jsd", + "name" : "InstructorSessionIndividualExtensionPageE2ETest", + "compilationUnitId" : "acm002160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003571jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002164jsd", "acm002165jsd", "acm002166jsd", "acm002167jsd", "acm002168jsd" ] + }, + "acm002170jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002170jsd", + "name" : "InstructorStudentActivityLogsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002176jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002171jsd" : { + "type" : "CodePackage", + "id" : "acm002171jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002172jsd" ] + }, + "acm002172jsd" : { + "type" : "CodePackage", + "id" : "acm002172jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002173jsd" ] + }, + "acm002173jsd" : { + "type" : "CodePackage", + "id" : "acm002173jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002170jsd" ] + }, + "acm002174jsd" : { + "type" : "ControlElement", + "id" : "acm002174jsd", + "name" : "prepareTestData" + }, + "acm002175jsd" : { + "type" : "ControlElement", + "id" : "acm002175jsd", + "name" : "testAll" + }, + "acm002176jsd" : { + "type" : "ClassUnit", + "id" : "acm002176jsd", + "name" : "InstructorStudentActivityLogsPageE2ETest", + "compilationUnitId" : "acm002170jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm003594jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006127jsd", "acm006214jsd" ], + "content" : [ "acm002174jsd", "acm002175jsd" ] + }, + "acm002177jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002177jsd", + "name" : "InstructorStudentListPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002183jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002178jsd" : { + "type" : "CodePackage", + "id" : "acm002178jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002179jsd" ] + }, + "acm002179jsd" : { + "type" : "CodePackage", + "id" : "acm002179jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002180jsd" ] + }, + "acm002180jsd" : { + "type" : "CodePackage", + "id" : "acm002180jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002177jsd" ] + }, + "acm002181jsd" : { + "type" : "ControlElement", + "id" : "acm002181jsd", + "name" : "prepareTestData" + }, + "acm002182jsd" : { + "type" : "ControlElement", + "id" : "acm002182jsd", + "name" : "testAll" + }, + "acm002183jsd" : { + "type" : "ClassUnit", + "id" : "acm002183jsd", + "name" : "InstructorStudentListPageE2ETest", + "compilationUnitId" : "acm002177jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003058jsd", "acm003069jsd", "acm003079jsd", "acm003618jsd", "acm003627jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002181jsd", "acm002182jsd" ] + }, + "acm002184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002184jsd", + "name" : "InstructorStudentRecordsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002190jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002185jsd" : { + "type" : "CodePackage", + "id" : "acm002185jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002186jsd" ] + }, + "acm002186jsd" : { + "type" : "CodePackage", + "id" : "acm002186jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002187jsd" ] + }, + "acm002187jsd" : { + "type" : "CodePackage", + "id" : "acm002187jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002184jsd" ] + }, + "acm002188jsd" : { + "type" : "ControlElement", + "id" : "acm002188jsd", + "name" : "prepareTestData" + }, + "acm002189jsd" : { + "type" : "ControlElement", + "id" : "acm002189jsd", + "name" : "testAll" + }, + "acm002190jsd" : { + "type" : "ClassUnit", + "id" : "acm002190jsd", + "name" : "InstructorStudentRecordsPageE2ETest", + "compilationUnitId" : "acm002184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003627jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002188jsd", "acm002189jsd" ] + }, + "acm002191jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002191jsd", + "name" : "NotificationBannerE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002198jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002192jsd" : { + "type" : "CodePackage", + "id" : "acm002192jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002193jsd" ] + }, + "acm002193jsd" : { + "type" : "CodePackage", + "id" : "acm002193jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002194jsd" ] + }, + "acm002194jsd" : { + "type" : "CodePackage", + "id" : "acm002194jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002191jsd" ] + }, + "acm002195jsd" : { + "type" : "ControlElement", + "id" : "acm002195jsd", + "name" : "prepareTestData" + }, + "acm002196jsd" : { + "type" : "ControlElement", + "id" : "acm002196jsd", + "name" : "testAll" + }, + "acm002197jsd" : { + "type" : "ControlElement", + "id" : "acm002197jsd", + "name" : "classTeardown" + }, + "acm002198jsd" : { + "type" : "ClassUnit", + "id" : "acm002198jsd", + "name" : "NotificationBannerE2ETest", + "compilationUnitId" : "acm002191jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003651jsd", "acm004486jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm002195jsd", "acm002196jsd", "acm002197jsd" ] + }, + "acm002199jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002199jsd", + "name" : "StudentCourseDetailsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002205jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002200jsd" : { + "type" : "CodePackage", + "id" : "acm002200jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002201jsd" ] + }, + "acm002201jsd" : { + "type" : "CodePackage", + "id" : "acm002201jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002202jsd" ] + }, + "acm002202jsd" : { + "type" : "CodePackage", + "id" : "acm002202jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002199jsd" ] + }, + "acm002203jsd" : { + "type" : "ControlElement", + "id" : "acm002203jsd", + "name" : "prepareTestData" + }, + "acm002204jsd" : { + "type" : "ControlElement", + "id" : "acm002204jsd", + "name" : "testAll" + }, + "acm002205jsd" : { + "type" : "ClassUnit", + "id" : "acm002205jsd", + "name" : "StudentCourseDetailsPageE2ETest", + "compilationUnitId" : "acm002199jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003639jsd", "acm005233jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002203jsd", "acm002204jsd" ] + }, + "acm002206jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002206jsd", + "name" : "StudentCourseJoinConfirmationPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002212jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002207jsd" : { + "type" : "CodePackage", + "id" : "acm002207jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002208jsd" ] + }, + "acm002208jsd" : { + "type" : "CodePackage", + "id" : "acm002208jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002209jsd" ] + }, + "acm002209jsd" : { + "type" : "CodePackage", + "id" : "acm002209jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002206jsd" ] + }, + "acm002210jsd" : { + "type" : "ControlElement", + "id" : "acm002210jsd", + "name" : "prepareTestData" + }, + "acm002211jsd" : { + "type" : "ControlElement", + "id" : "acm002211jsd", + "name" : "testAll" + }, + "acm002212jsd" : { + "type" : "ClassUnit", + "id" : "acm002212jsd", + "name" : "StudentCourseJoinConfirmationPageE2ETest", + "compilationUnitId" : "acm002206jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002722jsd", "acm003651jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002210jsd", "acm002211jsd" ] + }, + "acm002213jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002213jsd", + "name" : "StudentHomePageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002220jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002214jsd" : { + "type" : "CodePackage", + "id" : "acm002214jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002215jsd" ] + }, + "acm002215jsd" : { + "type" : "CodePackage", + "id" : "acm002215jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002216jsd" ] + }, + "acm002216jsd" : { + "type" : "CodePackage", + "id" : "acm002216jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002213jsd" ] + }, + "acm002217jsd" : { + "type" : "ControlElement", + "id" : "acm002217jsd", + "name" : "prepareTestData" + }, + "acm002218jsd" : { + "type" : "ControlElement", + "id" : "acm002218jsd", + "name" : "testAll" + }, + "acm002219jsd" : { + "type" : "ControlElement", + "id" : "acm002219jsd", + "name" : "getAllVisibleCourseIds" + }, + "acm002220jsd" : { + "type" : "ClassUnit", + "id" : "acm002220jsd", + "name" : "StudentHomePageE2ETest", + "compilationUnitId" : "acm002213jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003651jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002217jsd", "acm002218jsd", "acm002219jsd" ] + }, + "acm002221jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002221jsd", + "name" : "StudentNotificationsPageE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002228jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002222jsd" : { + "type" : "CodePackage", + "id" : "acm002222jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002223jsd" ] + }, + "acm002223jsd" : { + "type" : "CodePackage", + "id" : "acm002223jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002224jsd" ] + }, + "acm002224jsd" : { + "type" : "CodePackage", + "id" : "acm002224jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002221jsd" ] + }, + "acm002225jsd" : { + "type" : "ControlElement", + "id" : "acm002225jsd", + "name" : "prepareTestData" + }, + "acm002226jsd" : { + "type" : "ControlElement", + "id" : "acm002226jsd", + "name" : "testAll" + }, + "acm002227jsd" : { + "type" : "ControlElement", + "id" : "acm002227jsd", + "name" : "classTeardown" + }, + "acm002228jsd" : { + "type" : "ClassUnit", + "id" : "acm002228jsd", + "name" : "StudentNotificationsPageE2ETest", + "compilationUnitId" : "acm002221jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003658jsd", "acm004486jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm002225jsd", "acm002226jsd", "acm002227jsd" ] + }, + "acm002229jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002229jsd", + "name" : "SystemErrorEmailReportE2ETest", + "parentId" : "acm001767jsd", + "content" : [ "acm002243jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002230jsd" : { + "type" : "CodePackage", + "id" : "acm002230jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002231jsd" ] + }, + "acm002231jsd" : { + "type" : "CodePackage", + "id" : "acm002231jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002232jsd" ] + }, + "acm002232jsd" : { + "type" : "CodePackage", + "id" : "acm002232jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002229jsd" ] + }, + "acm002233jsd" : { + "type" : "ControlElement", + "id" : "acm002233jsd", + "name" : "prepareTestData" + }, + "acm002234jsd" : { + "type" : "ControlElement", + "id" : "acm002234jsd", + "name" : "prepareBrowser" + }, + "acm002235jsd" : { + "type" : "ControlElement", + "id" : "acm002235jsd", + "name" : "testAll" + }, + "acm002236jsd" : { + "type" : "ControlElement", + "id" : "acm002236jsd", + "name" : "testAssertionError" + }, + "acm002237jsd" : { + "type" : "ControlElement", + "id" : "acm002237jsd", + "name" : "testNullPointerException" + }, + "acm002238jsd" : { + "type" : "ControlElement", + "id" : "acm002238jsd", + "name" : "testDeadlineExceededException" + }, + "acm002239jsd" : { + "type" : "ControlElement", + "id" : "acm002239jsd", + "name" : "testDatastoreException" + }, + "acm002240jsd" : { + "type" : "ControlElement", + "id" : "acm002240jsd", + "name" : "testUnauthorizedAccessException" + }, + "acm002241jsd" : { + "type" : "ControlElement", + "id" : "acm002241jsd", + "name" : "testInvalidHttpParameterException" + }, + "acm002242jsd" : { + "type" : "ControlElement", + "id" : "acm002242jsd", + "name" : "testEntityNotFoundException" + }, + "acm002243jsd" : { + "type" : "ClassUnit", + "id" : "acm002243jsd", + "name" : "SystemErrorEmailReportE2ETest", + "compilationUnitId" : "acm002229jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006143jsd" ], + "content" : [ "acm002233jsd", "acm002234jsd", "acm002235jsd", "acm002236jsd", "acm002237jsd", "acm002238jsd", "acm002239jsd", "acm002240jsd", "acm002241jsd", "acm002242jsd" ] + }, + "acm002244jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002244jsd", + "name" : "TimezoneSyncerTest", + "parentId" : "acm001767jsd", + "content" : [ "acm002250jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002245jsd" : { + "type" : "CodePackage", + "id" : "acm002245jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002246jsd" ] + }, + "acm002246jsd" : { + "type" : "CodePackage", + "id" : "acm002246jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002247jsd" ] + }, + "acm002247jsd" : { + "type" : "CodePackage", + "id" : "acm002247jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002244jsd" ] + }, + "acm002248jsd" : { + "type" : "ControlElement", + "id" : "acm002248jsd", + "name" : "prepareTestData" + }, + "acm002249jsd" : { + "type" : "ControlElement", + "id" : "acm002249jsd", + "name" : "testAll" + }, + "acm002250jsd" : { + "type" : "ClassUnit", + "id" : "acm002250jsd", + "name" : "TimezoneSyncerTest", + "compilationUnitId" : "acm002244jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002627jsd", "acm002928jsd", "acm006214jsd" ], + "content" : [ "acm002248jsd", "acm002249jsd" ] + }, + "acm002251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002251jsd", + "name" : "AdminAccountsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002258jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002252jsd" : { + "type" : "CodePackage", + "id" : "acm002252jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002253jsd" ] + }, + "acm002253jsd" : { + "type" : "CodePackage", + "id" : "acm002253jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002254jsd" ] + }, + "acm002254jsd" : { + "type" : "CodePackage", + "id" : "acm002254jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002255jsd" ] + }, + "acm002255jsd" : { + "type" : "CodePackage", + "id" : "acm002255jsd", + "name" : "axe", + "parentId" : "acm001767jsd", + "content" : [ "acm002251jsd", "acm002259jsd", "acm002267jsd", "acm002275jsd", "acm002283jsd", "acm002291jsd", "acm002299jsd", "acm002307jsd", "acm002315jsd", "acm002323jsd", "acm002331jsd", "acm002339jsd", "acm002347jsd", "acm002355jsd", "acm002363jsd", "acm002371jsd", "acm002379jsd", "acm002387jsd", "acm002395jsd", "acm002404jsd", "acm002412jsd", "acm002420jsd", "acm002428jsd", "acm002436jsd", "acm002444jsd", "acm002452jsd", "acm002460jsd", "acm002468jsd", "acm002477jsd" ] + }, + "acm002256jsd" : { + "type" : "ControlElement", + "id" : "acm002256jsd", + "name" : "prepareTestData" + }, + "acm002257jsd" : { + "type" : "ControlElement", + "id" : "acm002257jsd", + "name" : "testAll" + }, + "acm002258jsd" : { + "type" : "ClassUnit", + "id" : "acm002258jsd", + "name" : "AdminAccountsPageAxeTest", + "compilationUnitId" : "acm002251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002496jsd", "acm006214jsd" ], + "content" : [ "acm002256jsd", "acm002257jsd" ] + }, + "acm002259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002259jsd", + "name" : "AdminHomePageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002266jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002260jsd" : { + "type" : "CodePackage", + "id" : "acm002260jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002261jsd" ] + }, + "acm002261jsd" : { + "type" : "CodePackage", + "id" : "acm002261jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002262jsd" ] + }, + "acm002262jsd" : { + "type" : "CodePackage", + "id" : "acm002262jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002263jsd" ] + }, + "acm002263jsd" : { + "type" : "CodePackage", + "id" : "acm002263jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002259jsd" ] + }, + "acm002264jsd" : { + "type" : "ControlElement", + "id" : "acm002264jsd", + "name" : "prepareTestData" + }, + "acm002265jsd" : { + "type" : "ControlElement", + "id" : "acm002265jsd", + "name" : "testAll" + }, + "acm002266jsd" : { + "type" : "ClassUnit", + "id" : "acm002266jsd", + "name" : "AdminHomePageAxeTest", + "compilationUnitId" : "acm002259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002509jsd", "acm006214jsd" ], + "content" : [ "acm002264jsd", "acm002265jsd" ] + }, + "acm002267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002267jsd", + "name" : "AdminNotificationsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002274jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002268jsd" : { + "type" : "CodePackage", + "id" : "acm002268jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002269jsd" ] + }, + "acm002269jsd" : { + "type" : "CodePackage", + "id" : "acm002269jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002270jsd" ] + }, + "acm002270jsd" : { + "type" : "CodePackage", + "id" : "acm002270jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002271jsd" ] + }, + "acm002271jsd" : { + "type" : "CodePackage", + "id" : "acm002271jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002267jsd" ] + }, + "acm002272jsd" : { + "type" : "ControlElement", + "id" : "acm002272jsd", + "name" : "prepareTestData" + }, + "acm002273jsd" : { + "type" : "ControlElement", + "id" : "acm002273jsd", + "name" : "testAll" + }, + "acm002274jsd" : { + "type" : "ClassUnit", + "id" : "acm002274jsd", + "name" : "AdminNotificationsPageAxeTest", + "compilationUnitId" : "acm002267jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002536jsd", "acm006214jsd" ], + "content" : [ "acm002272jsd", "acm002273jsd" ] + }, + "acm002275jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002275jsd", + "name" : "AdminSearchPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002282jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002276jsd" : { + "type" : "CodePackage", + "id" : "acm002276jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002277jsd" ] + }, + "acm002277jsd" : { + "type" : "CodePackage", + "id" : "acm002277jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002278jsd" ] + }, + "acm002278jsd" : { + "type" : "CodePackage", + "id" : "acm002278jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002279jsd" ] + }, + "acm002279jsd" : { + "type" : "CodePackage", + "id" : "acm002279jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002275jsd" ] + }, + "acm002280jsd" : { + "type" : "ControlElement", + "id" : "acm002280jsd", + "name" : "prepareTestData" + }, + "acm002281jsd" : { + "type" : "ControlElement", + "id" : "acm002281jsd", + "name" : "testAll" + }, + "acm002282jsd" : { + "type" : "ClassUnit", + "id" : "acm002282jsd", + "name" : "AdminSearchPageAxeTest", + "compilationUnitId" : "acm002275jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002600jsd", "acm006214jsd" ], + "content" : [ "acm002280jsd", "acm002281jsd" ] + }, + "acm002283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002283jsd", + "name" : "AdminSessionsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002290jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002284jsd" : { + "type" : "CodePackage", + "id" : "acm002284jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002285jsd" ] + }, + "acm002285jsd" : { + "type" : "CodePackage", + "id" : "acm002285jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002286jsd" ] + }, + "acm002286jsd" : { + "type" : "CodePackage", + "id" : "acm002286jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002287jsd" ] + }, + "acm002287jsd" : { + "type" : "CodePackage", + "id" : "acm002287jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002283jsd" ] + }, + "acm002288jsd" : { + "type" : "ControlElement", + "id" : "acm002288jsd", + "name" : "prepareTestData" + }, + "acm002289jsd" : { + "type" : "ControlElement", + "id" : "acm002289jsd", + "name" : "testAll" + }, + "acm002290jsd" : { + "type" : "ClassUnit", + "id" : "acm002290jsd", + "name" : "AdminSessionsPageAxeTest", + "compilationUnitId" : "acm002283jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002616jsd", "acm005112jsd", "acm006214jsd" ], + "content" : [ "acm002288jsd", "acm002289jsd" ] + }, + "acm002291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002291jsd", + "name" : "FeedbackResultsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002298jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002292jsd" : { + "type" : "CodePackage", + "id" : "acm002292jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002293jsd" ] + }, + "acm002293jsd" : { + "type" : "CodePackage", + "id" : "acm002293jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002294jsd" ] + }, + "acm002294jsd" : { + "type" : "CodePackage", + "id" : "acm002294jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002295jsd" ] + }, + "acm002295jsd" : { + "type" : "CodePackage", + "id" : "acm002295jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002291jsd" ] + }, + "acm002296jsd" : { + "type" : "ControlElement", + "id" : "acm002296jsd", + "name" : "prepareTestData" + }, + "acm002297jsd" : { + "type" : "ControlElement", + "id" : "acm002297jsd", + "name" : "testAll" + }, + "acm002298jsd" : { + "type" : "ClassUnit", + "id" : "acm002298jsd", + "name" : "FeedbackResultsPageAxeTest", + "compilationUnitId" : "acm002291jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002809jsd", "acm006214jsd" ], + "content" : [ "acm002296jsd", "acm002297jsd" ] + }, + "acm002299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002299jsd", + "name" : "FeedbackSubmitPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002306jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002300jsd" : { + "type" : "CodePackage", + "id" : "acm002300jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002301jsd" ] + }, + "acm002301jsd" : { + "type" : "CodePackage", + "id" : "acm002301jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002302jsd" ] + }, + "acm002302jsd" : { + "type" : "CodePackage", + "id" : "acm002302jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002303jsd" ] + }, + "acm002303jsd" : { + "type" : "CodePackage", + "id" : "acm002303jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002299jsd" ] + }, + "acm002304jsd" : { + "type" : "ControlElement", + "id" : "acm002304jsd", + "name" : "prepareTestData" + }, + "acm002305jsd" : { + "type" : "ControlElement", + "id" : "acm002305jsd", + "name" : "testAll" + }, + "acm002306jsd" : { + "type" : "ClassUnit", + "id" : "acm002306jsd", + "name" : "FeedbackSubmitPageAxeTest", + "compilationUnitId" : "acm002299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002911jsd", "acm006214jsd" ], + "content" : [ "acm002304jsd", "acm002305jsd" ] + }, + "acm002307jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002307jsd", + "name" : "InstructorCourseDetailsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002314jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002308jsd" : { + "type" : "CodePackage", + "id" : "acm002308jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002309jsd" ] + }, + "acm002309jsd" : { + "type" : "CodePackage", + "id" : "acm002309jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002310jsd" ] + }, + "acm002310jsd" : { + "type" : "CodePackage", + "id" : "acm002310jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002311jsd" ] + }, + "acm002311jsd" : { + "type" : "CodePackage", + "id" : "acm002311jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002307jsd" ] + }, + "acm002312jsd" : { + "type" : "ControlElement", + "id" : "acm002312jsd", + "name" : "prepareTestData" + }, + "acm002313jsd" : { + "type" : "ControlElement", + "id" : "acm002313jsd", + "name" : "testAll" + }, + "acm002314jsd" : { + "type" : "ClassUnit", + "id" : "acm002314jsd", + "name" : "InstructorCourseDetailsPageAxeTest", + "compilationUnitId" : "acm002307jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002956jsd", "acm006214jsd" ], + "content" : [ "acm002312jsd", "acm002313jsd" ] + }, + "acm002315jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002315jsd", + "name" : "InstructorCourseEditPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002322jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002316jsd" : { + "type" : "CodePackage", + "id" : "acm002316jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002317jsd" ] + }, + "acm002317jsd" : { + "type" : "CodePackage", + "id" : "acm002317jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002318jsd" ] + }, + "acm002318jsd" : { + "type" : "CodePackage", + "id" : "acm002318jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002319jsd" ] + }, + "acm002319jsd" : { + "type" : "CodePackage", + "id" : "acm002319jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002315jsd" ] + }, + "acm002320jsd" : { + "type" : "ControlElement", + "id" : "acm002320jsd", + "name" : "prepareTestData" + }, + "acm002321jsd" : { + "type" : "ControlElement", + "id" : "acm002321jsd", + "name" : "testAll" + }, + "acm002322jsd" : { + "type" : "ClassUnit", + "id" : "acm002322jsd", + "name" : "InstructorCourseEditPageAxeTest", + "compilationUnitId" : "acm002315jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003039jsd", "acm006214jsd" ], + "content" : [ "acm002320jsd", "acm002321jsd" ] + }, + "acm002323jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002323jsd", + "name" : "InstructorCourseEnrollPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002330jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002324jsd" : { + "type" : "CodePackage", + "id" : "acm002324jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002325jsd" ] + }, + "acm002325jsd" : { + "type" : "CodePackage", + "id" : "acm002325jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002326jsd" ] + }, + "acm002326jsd" : { + "type" : "CodePackage", + "id" : "acm002326jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002327jsd" ] + }, + "acm002327jsd" : { + "type" : "CodePackage", + "id" : "acm002327jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002323jsd" ] + }, + "acm002328jsd" : { + "type" : "ControlElement", + "id" : "acm002328jsd", + "name" : "prepareTestData" + }, + "acm002329jsd" : { + "type" : "ControlElement", + "id" : "acm002329jsd", + "name" : "testAll" + }, + "acm002330jsd" : { + "type" : "ClassUnit", + "id" : "acm002330jsd", + "name" : "InstructorCourseEnrollPageAxeTest", + "compilationUnitId" : "acm002323jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003058jsd", "acm006214jsd" ], + "content" : [ "acm002328jsd", "acm002329jsd" ] + }, + "acm002331jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002331jsd", + "name" : "InstructorCourseJoinConfirmationPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002338jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002332jsd" : { + "type" : "CodePackage", + "id" : "acm002332jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002333jsd" ] + }, + "acm002333jsd" : { + "type" : "CodePackage", + "id" : "acm002333jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002334jsd" ] + }, + "acm002334jsd" : { + "type" : "CodePackage", + "id" : "acm002334jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002335jsd" ] + }, + "acm002335jsd" : { + "type" : "CodePackage", + "id" : "acm002335jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002331jsd" ] + }, + "acm002336jsd" : { + "type" : "ControlElement", + "id" : "acm002336jsd", + "name" : "prepareTestData" + }, + "acm002337jsd" : { + "type" : "ControlElement", + "id" : "acm002337jsd", + "name" : "testAll" + }, + "acm002338jsd" : { + "type" : "ClassUnit", + "id" : "acm002338jsd", + "name" : "InstructorCourseJoinConfirmationPageAxeTest", + "compilationUnitId" : "acm002331jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002722jsd", "acm005233jsd", "acm006214jsd" ], + "content" : [ "acm002336jsd", "acm002337jsd" ] + }, + "acm002339jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002339jsd", + "name" : "InstructorCourseStudentDetailsEditPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002346jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002340jsd" : { + "type" : "CodePackage", + "id" : "acm002340jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002341jsd" ] + }, + "acm002341jsd" : { + "type" : "CodePackage", + "id" : "acm002341jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002342jsd" ] + }, + "acm002342jsd" : { + "type" : "CodePackage", + "id" : "acm002342jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002343jsd" ] + }, + "acm002343jsd" : { + "type" : "CodePackage", + "id" : "acm002343jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002339jsd" ] + }, + "acm002344jsd" : { + "type" : "ControlElement", + "id" : "acm002344jsd", + "name" : "prepareTestData" + }, + "acm002345jsd" : { + "type" : "ControlElement", + "id" : "acm002345jsd", + "name" : "testAll" + }, + "acm002346jsd" : { + "type" : "ClassUnit", + "id" : "acm002346jsd", + "name" : "InstructorCourseStudentDetailsEditPageAxeTest", + "compilationUnitId" : "acm002339jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003069jsd", "acm006214jsd" ], + "content" : [ "acm002344jsd", "acm002345jsd" ] + }, + "acm002347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002347jsd", + "name" : "InstructorCourseStudentDetailsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002354jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002348jsd" : { + "type" : "CodePackage", + "id" : "acm002348jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002349jsd" ] + }, + "acm002349jsd" : { + "type" : "CodePackage", + "id" : "acm002349jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002350jsd" ] + }, + "acm002350jsd" : { + "type" : "CodePackage", + "id" : "acm002350jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002351jsd" ] + }, + "acm002351jsd" : { + "type" : "CodePackage", + "id" : "acm002351jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002347jsd" ] + }, + "acm002352jsd" : { + "type" : "ControlElement", + "id" : "acm002352jsd", + "name" : "prepareTestData" + }, + "acm002353jsd" : { + "type" : "ControlElement", + "id" : "acm002353jsd", + "name" : "testAll" + }, + "acm002354jsd" : { + "type" : "ClassUnit", + "id" : "acm002354jsd", + "name" : "InstructorCourseStudentDetailsPageAxeTest", + "compilationUnitId" : "acm002347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003079jsd", "acm006214jsd" ], + "content" : [ "acm002352jsd", "acm002353jsd" ] + }, + "acm002355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002355jsd", + "name" : "InstructorCoursesPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002362jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002356jsd" : { + "type" : "CodePackage", + "id" : "acm002356jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002357jsd" ] + }, + "acm002357jsd" : { + "type" : "CodePackage", + "id" : "acm002357jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002358jsd" ] + }, + "acm002358jsd" : { + "type" : "CodePackage", + "id" : "acm002358jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002359jsd" ] + }, + "acm002359jsd" : { + "type" : "CodePackage", + "id" : "acm002359jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002355jsd" ] + }, + "acm002360jsd" : { + "type" : "ControlElement", + "id" : "acm002360jsd", + "name" : "prepareTestData" + }, + "acm002361jsd" : { + "type" : "ControlElement", + "id" : "acm002361jsd", + "name" : "testAll" + }, + "acm002362jsd" : { + "type" : "ClassUnit", + "id" : "acm002362jsd", + "name" : "InstructorCoursesPageAxeTest", + "compilationUnitId" : "acm002355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003150jsd", "acm006214jsd" ], + "content" : [ "acm002360jsd", "acm002361jsd" ] + }, + "acm002363jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002363jsd", + "name" : "InstructorFeedbackEditPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002370jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002364jsd" : { + "type" : "CodePackage", + "id" : "acm002364jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002365jsd" ] + }, + "acm002365jsd" : { + "type" : "CodePackage", + "id" : "acm002365jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002366jsd" ] + }, + "acm002366jsd" : { + "type" : "CodePackage", + "id" : "acm002366jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002367jsd" ] + }, + "acm002367jsd" : { + "type" : "CodePackage", + "id" : "acm002367jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002363jsd" ] + }, + "acm002368jsd" : { + "type" : "ControlElement", + "id" : "acm002368jsd", + "name" : "prepareTestData" + }, + "acm002369jsd" : { + "type" : "ControlElement", + "id" : "acm002369jsd", + "name" : "testAll" + }, + "acm002370jsd" : { + "type" : "ClassUnit", + "id" : "acm002370jsd", + "name" : "InstructorFeedbackEditPageAxeTest", + "compilationUnitId" : "acm002363jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003320jsd", "acm006214jsd" ], + "content" : [ "acm002368jsd", "acm002369jsd" ] + }, + "acm002371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002371jsd", + "name" : "InstructorFeedbackReportPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002378jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002372jsd" : { + "type" : "CodePackage", + "id" : "acm002372jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002373jsd" ] + }, + "acm002373jsd" : { + "type" : "CodePackage", + "id" : "acm002373jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002374jsd" ] + }, + "acm002374jsd" : { + "type" : "CodePackage", + "id" : "acm002374jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002375jsd" ] + }, + "acm002375jsd" : { + "type" : "CodePackage", + "id" : "acm002375jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002371jsd" ] + }, + "acm002376jsd" : { + "type" : "ControlElement", + "id" : "acm002376jsd", + "name" : "prepareTestData" + }, + "acm002377jsd" : { + "type" : "ControlElement", + "id" : "acm002377jsd", + "name" : "testAll" + }, + "acm002378jsd" : { + "type" : "ClassUnit", + "id" : "acm002378jsd", + "name" : "InstructorFeedbackReportPageAxeTest", + "compilationUnitId" : "acm002371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003419jsd", "acm006214jsd" ], + "content" : [ "acm002376jsd", "acm002377jsd" ] + }, + "acm002379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002379jsd", + "name" : "InstructorFeedbackSessionsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002386jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002380jsd" : { + "type" : "CodePackage", + "id" : "acm002380jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002381jsd" ] + }, + "acm002381jsd" : { + "type" : "CodePackage", + "id" : "acm002381jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002382jsd" ] + }, + "acm002382jsd" : { + "type" : "CodePackage", + "id" : "acm002382jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002383jsd" ] + }, + "acm002383jsd" : { + "type" : "CodePackage", + "id" : "acm002383jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002379jsd" ] + }, + "acm002384jsd" : { + "type" : "ControlElement", + "id" : "acm002384jsd", + "name" : "prepareTestData" + }, + "acm002385jsd" : { + "type" : "ControlElement", + "id" : "acm002385jsd", + "name" : "testAll" + }, + "acm002386jsd" : { + "type" : "ClassUnit", + "id" : "acm002386jsd", + "name" : "InstructorFeedbackSessionsPageAxeTest", + "compilationUnitId" : "acm002379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003483jsd", "acm006214jsd" ], + "content" : [ "acm002384jsd", "acm002385jsd" ] + }, + "acm002387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002387jsd", + "name" : "InstructorHomePageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002394jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002388jsd" : { + "type" : "CodePackage", + "id" : "acm002388jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002389jsd" ] + }, + "acm002389jsd" : { + "type" : "CodePackage", + "id" : "acm002389jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002390jsd" ] + }, + "acm002390jsd" : { + "type" : "CodePackage", + "id" : "acm002390jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002391jsd" ] + }, + "acm002391jsd" : { + "type" : "CodePackage", + "id" : "acm002391jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002387jsd" ] + }, + "acm002392jsd" : { + "type" : "ControlElement", + "id" : "acm002392jsd", + "name" : "prepareTestData" + }, + "acm002393jsd" : { + "type" : "ControlElement", + "id" : "acm002393jsd", + "name" : "testAll" + }, + "acm002394jsd" : { + "type" : "ClassUnit", + "id" : "acm002394jsd", + "name" : "InstructorHomePageAxeTest", + "compilationUnitId" : "acm002387jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003517jsd", "acm006214jsd" ], + "content" : [ "acm002392jsd", "acm002393jsd" ] + }, + "acm002395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002395jsd", + "name" : "InstructorNotificationsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002403jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002396jsd" : { + "type" : "CodePackage", + "id" : "acm002396jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002397jsd" ] + }, + "acm002397jsd" : { + "type" : "CodePackage", + "id" : "acm002397jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002398jsd" ] + }, + "acm002398jsd" : { + "type" : "CodePackage", + "id" : "acm002398jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002399jsd" ] + }, + "acm002399jsd" : { + "type" : "CodePackage", + "id" : "acm002399jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002395jsd" ] + }, + "acm002400jsd" : { + "type" : "ControlElement", + "id" : "acm002400jsd", + "name" : "prepareTestData" + }, + "acm002401jsd" : { + "type" : "ControlElement", + "id" : "acm002401jsd", + "name" : "testAll" + }, + "acm002402jsd" : { + "type" : "ControlElement", + "id" : "acm002402jsd", + "name" : "classTeardown" + }, + "acm002403jsd" : { + "type" : "ClassUnit", + "id" : "acm002403jsd", + "name" : "InstructorNotificationsPageAxeTest", + "compilationUnitId" : "acm002395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003524jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm002400jsd", "acm002401jsd", "acm002402jsd" ] + }, + "acm002404jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002404jsd", + "name" : "InstructorSearchPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002411jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002405jsd" : { + "type" : "CodePackage", + "id" : "acm002405jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002406jsd" ] + }, + "acm002406jsd" : { + "type" : "CodePackage", + "id" : "acm002406jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002407jsd" ] + }, + "acm002407jsd" : { + "type" : "CodePackage", + "id" : "acm002407jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002408jsd" ] + }, + "acm002408jsd" : { + "type" : "CodePackage", + "id" : "acm002408jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002404jsd" ] + }, + "acm002409jsd" : { + "type" : "ControlElement", + "id" : "acm002409jsd", + "name" : "prepareTestData" + }, + "acm002410jsd" : { + "type" : "ControlElement", + "id" : "acm002410jsd", + "name" : "testAll" + }, + "acm002411jsd" : { + "type" : "ClassUnit", + "id" : "acm002411jsd", + "name" : "InstructorSearchPageAxeTest", + "compilationUnitId" : "acm002404jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003544jsd", "acm006214jsd" ], + "content" : [ "acm002409jsd", "acm002410jsd" ] + }, + "acm002412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002412jsd", + "name" : "InstructorSessionIndividualExtensionPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002419jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002413jsd" : { + "type" : "CodePackage", + "id" : "acm002413jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002414jsd" ] + }, + "acm002414jsd" : { + "type" : "CodePackage", + "id" : "acm002414jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002415jsd" ] + }, + "acm002415jsd" : { + "type" : "CodePackage", + "id" : "acm002415jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002416jsd" ] + }, + "acm002416jsd" : { + "type" : "CodePackage", + "id" : "acm002416jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002412jsd" ] + }, + "acm002417jsd" : { + "type" : "ControlElement", + "id" : "acm002417jsd", + "name" : "prepareTestData" + }, + "acm002418jsd" : { + "type" : "ControlElement", + "id" : "acm002418jsd", + "name" : "testAll" + }, + "acm002419jsd" : { + "type" : "ClassUnit", + "id" : "acm002419jsd", + "name" : "InstructorSessionIndividualExtensionPageAxeTest", + "compilationUnitId" : "acm002412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003571jsd", "acm006214jsd" ], + "content" : [ "acm002417jsd", "acm002418jsd" ] + }, + "acm002420jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002420jsd", + "name" : "InstructorStudentActivityLogsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002427jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002421jsd" : { + "type" : "CodePackage", + "id" : "acm002421jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002422jsd" ] + }, + "acm002422jsd" : { + "type" : "CodePackage", + "id" : "acm002422jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002423jsd" ] + }, + "acm002423jsd" : { + "type" : "CodePackage", + "id" : "acm002423jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002424jsd" ] + }, + "acm002424jsd" : { + "type" : "CodePackage", + "id" : "acm002424jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002420jsd" ] + }, + "acm002425jsd" : { + "type" : "ControlElement", + "id" : "acm002425jsd", + "name" : "prepareTestData" + }, + "acm002426jsd" : { + "type" : "ControlElement", + "id" : "acm002426jsd", + "name" : "testAll" + }, + "acm002427jsd" : { + "type" : "ClassUnit", + "id" : "acm002427jsd", + "name" : "InstructorStudentActivityLogsPageAxeTest", + "compilationUnitId" : "acm002420jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003594jsd", "acm006214jsd" ], + "content" : [ "acm002425jsd", "acm002426jsd" ] + }, + "acm002428jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002428jsd", + "name" : "InstructorStudentListPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002435jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002429jsd" : { + "type" : "CodePackage", + "id" : "acm002429jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002430jsd" ] + }, + "acm002430jsd" : { + "type" : "CodePackage", + "id" : "acm002430jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002431jsd" ] + }, + "acm002431jsd" : { + "type" : "CodePackage", + "id" : "acm002431jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002432jsd" ] + }, + "acm002432jsd" : { + "type" : "CodePackage", + "id" : "acm002432jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002428jsd" ] + }, + "acm002433jsd" : { + "type" : "ControlElement", + "id" : "acm002433jsd", + "name" : "prepareTestData" + }, + "acm002434jsd" : { + "type" : "ControlElement", + "id" : "acm002434jsd", + "name" : "testAll" + }, + "acm002435jsd" : { + "type" : "ClassUnit", + "id" : "acm002435jsd", + "name" : "InstructorStudentListPageAxeTest", + "compilationUnitId" : "acm002428jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003618jsd", "acm006214jsd" ], + "content" : [ "acm002433jsd", "acm002434jsd" ] + }, + "acm002436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002436jsd", + "name" : "InstructorStudentRecordsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002443jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002437jsd" : { + "type" : "CodePackage", + "id" : "acm002437jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002438jsd" ] + }, + "acm002438jsd" : { + "type" : "CodePackage", + "id" : "acm002438jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002439jsd" ] + }, + "acm002439jsd" : { + "type" : "CodePackage", + "id" : "acm002439jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002440jsd" ] + }, + "acm002440jsd" : { + "type" : "CodePackage", + "id" : "acm002440jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002436jsd" ] + }, + "acm002441jsd" : { + "type" : "ControlElement", + "id" : "acm002441jsd", + "name" : "prepareTestData" + }, + "acm002442jsd" : { + "type" : "ControlElement", + "id" : "acm002442jsd", + "name" : "testAll" + }, + "acm002443jsd" : { + "type" : "ClassUnit", + "id" : "acm002443jsd", + "name" : "InstructorStudentRecordsPageAxeTest", + "compilationUnitId" : "acm002436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003627jsd", "acm006214jsd" ], + "content" : [ "acm002441jsd", "acm002442jsd" ] + }, + "acm002444jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002444jsd", + "name" : "StudentCourseDetailsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002451jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002445jsd" : { + "type" : "CodePackage", + "id" : "acm002445jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002446jsd" ] + }, + "acm002446jsd" : { + "type" : "CodePackage", + "id" : "acm002446jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002447jsd" ] + }, + "acm002447jsd" : { + "type" : "CodePackage", + "id" : "acm002447jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002448jsd" ] + }, + "acm002448jsd" : { + "type" : "CodePackage", + "id" : "acm002448jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002444jsd" ] + }, + "acm002449jsd" : { + "type" : "ControlElement", + "id" : "acm002449jsd", + "name" : "prepareTestData" + }, + "acm002450jsd" : { + "type" : "ControlElement", + "id" : "acm002450jsd", + "name" : "testAll" + }, + "acm002451jsd" : { + "type" : "ClassUnit", + "id" : "acm002451jsd", + "name" : "StudentCourseDetailsPageAxeTest", + "compilationUnitId" : "acm002444jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003639jsd", "acm006214jsd" ], + "content" : [ "acm002449jsd", "acm002450jsd" ] + }, + "acm002452jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002452jsd", + "name" : "StudentCourseJoinConfirmationPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002459jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002453jsd" : { + "type" : "CodePackage", + "id" : "acm002453jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002454jsd" ] + }, + "acm002454jsd" : { + "type" : "CodePackage", + "id" : "acm002454jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002455jsd" ] + }, + "acm002455jsd" : { + "type" : "CodePackage", + "id" : "acm002455jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002456jsd" ] + }, + "acm002456jsd" : { + "type" : "CodePackage", + "id" : "acm002456jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002452jsd" ] + }, + "acm002457jsd" : { + "type" : "ControlElement", + "id" : "acm002457jsd", + "name" : "prepareTestData" + }, + "acm002458jsd" : { + "type" : "ControlElement", + "id" : "acm002458jsd", + "name" : "testAll" + }, + "acm002459jsd" : { + "type" : "ClassUnit", + "id" : "acm002459jsd", + "name" : "StudentCourseJoinConfirmationPageAxeTest", + "compilationUnitId" : "acm002452jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002722jsd", "acm005412jsd", "acm006214jsd" ], + "content" : [ "acm002457jsd", "acm002458jsd" ] + }, + "acm002460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002460jsd", + "name" : "StudentHomePageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002467jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002461jsd" : { + "type" : "CodePackage", + "id" : "acm002461jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002462jsd" ] + }, + "acm002462jsd" : { + "type" : "CodePackage", + "id" : "acm002462jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002463jsd" ] + }, + "acm002463jsd" : { + "type" : "CodePackage", + "id" : "acm002463jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002464jsd" ] + }, + "acm002464jsd" : { + "type" : "CodePackage", + "id" : "acm002464jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002460jsd" ] + }, + "acm002465jsd" : { + "type" : "ControlElement", + "id" : "acm002465jsd", + "name" : "prepareTestData" + }, + "acm002466jsd" : { + "type" : "ControlElement", + "id" : "acm002466jsd", + "name" : "testAll" + }, + "acm002467jsd" : { + "type" : "ClassUnit", + "id" : "acm002467jsd", + "name" : "StudentHomePageAxeTest", + "compilationUnitId" : "acm002460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003651jsd", "acm006214jsd" ], + "content" : [ "acm002465jsd", "acm002466jsd" ] + }, + "acm002468jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002468jsd", + "name" : "StudentNotificationsPageAxeTest", + "parentId" : "acm002255jsd", + "content" : [ "acm002476jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002469jsd" : { + "type" : "CodePackage", + "id" : "acm002469jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002470jsd" ] + }, + "acm002470jsd" : { + "type" : "CodePackage", + "id" : "acm002470jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002471jsd" ] + }, + "acm002471jsd" : { + "type" : "CodePackage", + "id" : "acm002471jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002472jsd" ] + }, + "acm002472jsd" : { + "type" : "CodePackage", + "id" : "acm002472jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002468jsd" ] + }, + "acm002473jsd" : { + "type" : "ControlElement", + "id" : "acm002473jsd", + "name" : "prepareTestData" + }, + "acm002474jsd" : { + "type" : "ControlElement", + "id" : "acm002474jsd", + "name" : "testAll" + }, + "acm002475jsd" : { + "type" : "ControlElement", + "id" : "acm002475jsd", + "name" : "classTeardown" + }, + "acm002476jsd" : { + "type" : "ClassUnit", + "id" : "acm002476jsd", + "name" : "StudentNotificationsPageAxeTest", + "compilationUnitId" : "acm002468jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001864jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003658jsd", "acm005329jsd", "acm006214jsd" ], + "content" : [ "acm002473jsd", "acm002474jsd", "acm002475jsd" ] + }, + "acm002477jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002477jsd", + "name" : "package-info", + "parentId" : "acm002255jsd", + "content" : [ ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases", "axe" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002478jsd" : { + "type" : "CodePackage", + "id" : "acm002478jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002479jsd" ] + }, + "acm002479jsd" : { + "type" : "CodePackage", + "id" : "acm002479jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002480jsd" ] + }, + "acm002480jsd" : { + "type" : "CodePackage", + "id" : "acm002480jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002481jsd" ] + }, + "acm002481jsd" : { + "type" : "CodePackage", + "id" : "acm002481jsd", + "name" : "axe", + "parentId" : null, + "content" : [ "acm002477jsd" ] + }, + "acm002482jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002482jsd", + "name" : "package-info", + "parentId" : "acm001767jsd", + "content" : [ ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002483jsd" : { + "type" : "CodePackage", + "id" : "acm002483jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002484jsd" ] + }, + "acm002484jsd" : { + "type" : "CodePackage", + "id" : "acm002484jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002485jsd" ] + }, + "acm002485jsd" : { + "type" : "CodePackage", + "id" : "acm002485jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm002482jsd" ] + }, + "acm002486jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002486jsd", + "name" : "AdminAccountsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002496jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002487jsd" : { + "type" : "CodePackage", + "id" : "acm002487jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002488jsd" ] + }, + "acm002488jsd" : { + "type" : "CodePackage", + "id" : "acm002488jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002489jsd" ] + }, + "acm002489jsd" : { + "type" : "CodePackage", + "id" : "acm002489jsd", + "name" : "pageobjects", + "parentId" : "acm001766jsd", + "content" : [ "acm002486jsd", "acm002497jsd", "acm002510jsd", "acm002537jsd", "acm002601jsd", "acm002617jsd", "acm002628jsd", "acm002698jsd", "acm002713jsd", "acm002723jsd", "acm002731jsd", "acm002739jsd", "acm002810jsd", "acm002912jsd", "acm002920jsd", "acm002929jsd", "acm002957jsd", "acm003040jsd", "acm003059jsd", "acm003070jsd", "acm003080jsd", "acm003151jsd", "acm003321jsd", "acm003420jsd", "acm003484jsd", "acm003518jsd", "acm003525jsd", "acm003545jsd", "acm003572jsd", "acm003595jsd", "acm003619jsd", "acm003628jsd", "acm003640jsd", "acm003652jsd", "acm003659jsd", "acm003675jsd" ] + }, + "acm002490jsd" : { + "type" : "ControlElement", + "id" : "acm002490jsd", + "name" : "AdminAccountsPage" + }, + "acm002491jsd" : { + "type" : "ControlElement", + "id" : "acm002491jsd", + "name" : "containsExpectedPageContents" + }, + "acm002492jsd" : { + "type" : "ControlElement", + "id" : "acm002492jsd", + "name" : "verifyAccountDetails" + }, + "acm002493jsd" : { + "type" : "ControlElement", + "id" : "acm002493jsd", + "name" : "clickRemoveInstructorFromCourse" + }, + "acm002494jsd" : { + "type" : "ControlElement", + "id" : "acm002494jsd", + "name" : "clickRemoveStudentFromCourse" + }, + "acm002495jsd" : { + "type" : "ControlElement", + "id" : "acm002495jsd", + "name" : "clickDeleteAccount" + }, + "acm002496jsd" : { + "type" : "ClassUnit", + "id" : "acm002496jsd", + "name" : "AdminAccountsPage", + "compilationUnitId" : "acm002486jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004486jsd" ], + "content" : [ "acm002490jsd", "acm002491jsd", "acm002492jsd", "acm002493jsd", "acm002494jsd", "acm002495jsd" ] + }, + "acm002497jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002497jsd", + "name" : "AdminHomePage", + "parentId" : "acm002489jsd", + "content" : [ "acm002509jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002498jsd" : { + "type" : "CodePackage", + "id" : "acm002498jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002499jsd" ] + }, + "acm002499jsd" : { + "type" : "CodePackage", + "id" : "acm002499jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002500jsd" ] + }, + "acm002500jsd" : { + "type" : "CodePackage", + "id" : "acm002500jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002497jsd" ] + }, + "acm002501jsd" : { + "type" : "ControlElement", + "id" : "acm002501jsd", + "name" : "AdminHomePage" + }, + "acm002502jsd" : { + "type" : "ControlElement", + "id" : "acm002502jsd", + "name" : "containsExpectedPageContents" + }, + "acm002503jsd" : { + "type" : "ControlElement", + "id" : "acm002503jsd", + "name" : "queueInstructorForAdding" + }, + "acm002504jsd" : { + "type" : "ControlElement", + "id" : "acm002504jsd", + "name" : "queueInstructorForAdding" + }, + "acm002505jsd" : { + "type" : "ControlElement", + "id" : "acm002505jsd", + "name" : "addAllInstructors" + }, + "acm002506jsd" : { + "type" : "ControlElement", + "id" : "acm002506jsd", + "name" : "getMessageForInstructor" + }, + "acm002507jsd" : { + "type" : "ControlElement", + "id" : "acm002507jsd", + "name" : "clickMoreInfoButtonForRegisteredInstructor" + }, + "acm002508jsd" : { + "type" : "ControlElement", + "id" : "acm002508jsd", + "name" : "clickResetAccountRequestLink" + }, + "acm002509jsd" : { + "type" : "ClassUnit", + "id" : "acm002509jsd", + "name" : "AdminHomePage", + "compilationUnitId" : "acm002497jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002501jsd", "acm002502jsd", "acm002503jsd", "acm002504jsd", "acm002505jsd", "acm002506jsd", "acm002507jsd", "acm002508jsd" ] + }, + "acm002510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002510jsd", + "name" : "AdminNotificationsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002536jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002511jsd" : { + "type" : "CodePackage", + "id" : "acm002511jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002512jsd" ] + }, + "acm002512jsd" : { + "type" : "CodePackage", + "id" : "acm002512jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002513jsd" ] + }, + "acm002513jsd" : { + "type" : "CodePackage", + "id" : "acm002513jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002510jsd" ] + }, + "acm002514jsd" : { + "type" : "ControlElement", + "id" : "acm002514jsd", + "name" : "AdminNotificationsPage" + }, + "acm002515jsd" : { + "type" : "ControlElement", + "id" : "acm002515jsd", + "name" : "containsExpectedPageContents" + }, + "acm002516jsd" : { + "type" : "ControlElement", + "id" : "acm002516jsd", + "name" : "verifyNotificationsTableRow" + }, + "acm002517jsd" : { + "type" : "ControlElement", + "id" : "acm002517jsd", + "name" : "addNotification" + }, + "acm002518jsd" : { + "type" : "ControlElement", + "id" : "acm002518jsd", + "name" : "editNotification" + }, + "acm002519jsd" : { + "type" : "ControlElement", + "id" : "acm002519jsd", + "name" : "deleteNotification" + }, + "acm002520jsd" : { + "type" : "ControlElement", + "id" : "acm002520jsd", + "name" : "fillNotificationForm" + }, + "acm002521jsd" : { + "type" : "ControlElement", + "id" : "acm002521jsd", + "name" : "getFirstRowNotificationId" + }, + "acm002522jsd" : { + "type" : "ControlElement", + "id" : "acm002522jsd", + "name" : "sortNotificationsTableByDescendingCreateTime" + }, + "acm002523jsd" : { + "type" : "ControlElement", + "id" : "acm002523jsd", + "name" : "clickAddNotificationButton" + }, + "acm002524jsd" : { + "type" : "ControlElement", + "id" : "acm002524jsd", + "name" : "clickCreateNotificationButton" + }, + "acm002525jsd" : { + "type" : "ControlElement", + "id" : "acm002525jsd", + "name" : "clickEditNotificationButton" + }, + "acm002526jsd" : { + "type" : "ControlElement", + "id" : "acm002526jsd", + "name" : "setMessage" + }, + "acm002527jsd" : { + "type" : "ControlElement", + "id" : "acm002527jsd", + "name" : "setNotificationStartDateTime" + }, + "acm002528jsd" : { + "type" : "ControlElement", + "id" : "acm002528jsd", + "name" : "setNotificationEndDateTime" + }, + "acm002529jsd" : { + "type" : "ControlElement", + "id" : "acm002529jsd", + "name" : "setDateTime" + }, + "acm002530jsd" : { + "type" : "ControlElement", + "id" : "acm002530jsd", + "name" : "getNotificationTableDisplayDetails" + }, + "acm002531jsd" : { + "type" : "ControlElement", + "id" : "acm002531jsd", + "name" : "getTimezone" + }, + "acm002532jsd" : { + "type" : "ControlElement", + "id" : "acm002532jsd", + "name" : "getInputTimeString" + }, + "acm002533jsd" : { + "type" : "ControlElement", + "id" : "acm002533jsd", + "name" : "getTableDisplayDateString" + }, + "acm002534jsd" : { + "type" : "ControlElement", + "id" : "acm002534jsd", + "name" : "getTargetUserText" + }, + "acm002535jsd" : { + "type" : "ControlElement", + "id" : "acm002535jsd", + "name" : "getNotificationStyle" + }, + "acm002536jsd" : { + "type" : "ClassUnit", + "id" : "acm002536jsd", + "name" : "AdminNotificationsPage", + "compilationUnitId" : "acm002510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004346jsd", "acm004351jsd", "acm005329jsd" ], + "content" : [ "acm002514jsd", "acm002515jsd", "acm002516jsd", "acm002517jsd", "acm002518jsd", "acm002519jsd", "acm002520jsd", "acm002521jsd", "acm002522jsd", "acm002523jsd", "acm002524jsd", "acm002525jsd", "acm002526jsd", "acm002527jsd", "acm002528jsd", "acm002529jsd", "acm002530jsd", "acm002531jsd", "acm002532jsd", "acm002533jsd", "acm002534jsd", "acm002535jsd" ] + }, + "acm002537jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002537jsd", + "name" : "AdminSearchPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002600jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002538jsd" : { + "type" : "CodePackage", + "id" : "acm002538jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002539jsd" ] + }, + "acm002539jsd" : { + "type" : "CodePackage", + "id" : "acm002539jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002540jsd" ] + }, + "acm002540jsd" : { + "type" : "CodePackage", + "id" : "acm002540jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002537jsd" ] + }, + "acm002541jsd" : { + "type" : "ControlElement", + "id" : "acm002541jsd", + "name" : "AdminSearchPage" + }, + "acm002542jsd" : { + "type" : "ControlElement", + "id" : "acm002542jsd", + "name" : "containsExpectedPageContents" + }, + "acm002543jsd" : { + "type" : "ControlElement", + "id" : "acm002543jsd", + "name" : "inputSearchContent" + }, + "acm002544jsd" : { + "type" : "ControlElement", + "id" : "acm002544jsd", + "name" : "clearSearchBox" + }, + "acm002545jsd" : { + "type" : "ControlElement", + "id" : "acm002545jsd", + "name" : "clickSearchButton" + }, + "acm002546jsd" : { + "type" : "ControlElement", + "id" : "acm002546jsd", + "name" : "regenerateStudentKey" + }, + "acm002547jsd" : { + "type" : "ControlElement", + "id" : "acm002547jsd", + "name" : "regenerateInstructorKey" + }, + "acm002548jsd" : { + "type" : "ControlElement", + "id" : "acm002548jsd", + "name" : "clickExpandStudentLinks" + }, + "acm002549jsd" : { + "type" : "ControlElement", + "id" : "acm002549jsd", + "name" : "clickExpandInstructorLinks" + }, + "acm002550jsd" : { + "type" : "ControlElement", + "id" : "acm002550jsd", + "name" : "clickExpandAccountRequestLinks" + }, + "acm002551jsd" : { + "type" : "ControlElement", + "id" : "acm002551jsd", + "name" : "clickCollapseStudentLinks" + }, + "acm002552jsd" : { + "type" : "ControlElement", + "id" : "acm002552jsd", + "name" : "clickCollapseInstructorLinks" + }, + "acm002553jsd" : { + "type" : "ControlElement", + "id" : "acm002553jsd", + "name" : "clickCollapseAccountRequestLinks" + }, + "acm002554jsd" : { + "type" : "ControlElement", + "id" : "acm002554jsd", + "name" : "removeSpanFromText" + }, + "acm002555jsd" : { + "type" : "ControlElement", + "id" : "acm002555jsd", + "name" : "getStudentRow" + }, + "acm002556jsd" : { + "type" : "ControlElement", + "id" : "acm002556jsd", + "name" : "getStudentDetails" + }, + "acm002557jsd" : { + "type" : "ControlElement", + "id" : "acm002557jsd", + "name" : "getStudentName" + }, + "acm002558jsd" : { + "type" : "ControlElement", + "id" : "acm002558jsd", + "name" : "getStudentGoogleId" + }, + "acm002559jsd" : { + "type" : "ControlElement", + "id" : "acm002559jsd", + "name" : "getStudentHomeLink" + }, + "acm002560jsd" : { + "type" : "ControlElement", + "id" : "acm002560jsd", + "name" : "getStudentInstitute" + }, + "acm002561jsd" : { + "type" : "ControlElement", + "id" : "acm002561jsd", + "name" : "getStudentComments" + }, + "acm002562jsd" : { + "type" : "ControlElement", + "id" : "acm002562jsd", + "name" : "getStudentManageAccountLink" + }, + "acm002563jsd" : { + "type" : "ControlElement", + "id" : "acm002563jsd", + "name" : "getStudentEmail" + }, + "acm002564jsd" : { + "type" : "ControlElement", + "id" : "acm002564jsd", + "name" : "getStudentJoinLink" + }, + "acm002565jsd" : { + "type" : "ControlElement", + "id" : "acm002565jsd", + "name" : "getStudentJoinLink" + }, + "acm002566jsd" : { + "type" : "ControlElement", + "id" : "acm002566jsd", + "name" : "resetStudentGoogleId" + }, + "acm002567jsd" : { + "type" : "ControlElement", + "id" : "acm002567jsd", + "name" : "getInstructorRow" + }, + "acm002568jsd" : { + "type" : "ControlElement", + "id" : "acm002568jsd", + "name" : "getInstructorCourseId" + }, + "acm002569jsd" : { + "type" : "ControlElement", + "id" : "acm002569jsd", + "name" : "getInstructorName" + }, + "acm002570jsd" : { + "type" : "ControlElement", + "id" : "acm002570jsd", + "name" : "getInstructorGoogleId" + }, + "acm002571jsd" : { + "type" : "ControlElement", + "id" : "acm002571jsd", + "name" : "getInstructorHomePageLink" + }, + "acm002572jsd" : { + "type" : "ControlElement", + "id" : "acm002572jsd", + "name" : "getInstructorInstitute" + }, + "acm002573jsd" : { + "type" : "ControlElement", + "id" : "acm002573jsd", + "name" : "getInstructorManageAccountLink" + }, + "acm002574jsd" : { + "type" : "ControlElement", + "id" : "acm002574jsd", + "name" : "getInstructorEmail" + }, + "acm002575jsd" : { + "type" : "ControlElement", + "id" : "acm002575jsd", + "name" : "getInstructorJoinLink" + }, + "acm002576jsd" : { + "type" : "ControlElement", + "id" : "acm002576jsd", + "name" : "getInstructorJoinLink" + }, + "acm002577jsd" : { + "type" : "ControlElement", + "id" : "acm002577jsd", + "name" : "resetInstructorGoogleId" + }, + "acm002578jsd" : { + "type" : "ControlElement", + "id" : "acm002578jsd", + "name" : "getAccountRequestRow" + }, + "acm002579jsd" : { + "type" : "ControlElement", + "id" : "acm002579jsd", + "name" : "getAccountRequestName" + }, + "acm002580jsd" : { + "type" : "ControlElement", + "id" : "acm002580jsd", + "name" : "getAccountRequestEmail" + }, + "acm002581jsd" : { + "type" : "ControlElement", + "id" : "acm002581jsd", + "name" : "getAccountRequestInstitute" + }, + "acm002582jsd" : { + "type" : "ControlElement", + "id" : "acm002582jsd", + "name" : "getAccountRequestCreatedAt" + }, + "acm002583jsd" : { + "type" : "ControlElement", + "id" : "acm002583jsd", + "name" : "getAccountRequestRegisteredAt" + }, + "acm002584jsd" : { + "type" : "ControlElement", + "id" : "acm002584jsd", + "name" : "getAccountRequestRegistrationLink" + }, + "acm002585jsd" : { + "type" : "ControlElement", + "id" : "acm002585jsd", + "name" : "clickDeleteAccountRequestButton" + }, + "acm002586jsd" : { + "type" : "ControlElement", + "id" : "acm002586jsd", + "name" : "clickResetAccountRequestButton" + }, + "acm002587jsd" : { + "type" : "ControlElement", + "id" : "acm002587jsd", + "name" : "getNumExpandedRows" + }, + "acm002588jsd" : { + "type" : "ControlElement", + "id" : "acm002588jsd", + "name" : "getColumnText" + }, + "acm002589jsd" : { + "type" : "ControlElement", + "id" : "acm002589jsd", + "name" : "getColumnLink" + }, + "acm002590jsd" : { + "type" : "ControlElement", + "id" : "acm002590jsd", + "name" : "getExpandedRowInputValue" + }, + "acm002591jsd" : { + "type" : "ControlElement", + "id" : "acm002591jsd", + "name" : "verifyStudentRowContent" + }, + "acm002592jsd" : { + "type" : "ControlElement", + "id" : "acm002592jsd", + "name" : "verifyStudentExpandedLinks" + }, + "acm002593jsd" : { + "type" : "ControlElement", + "id" : "acm002593jsd", + "name" : "verifyInstructorRowContent" + }, + "acm002594jsd" : { + "type" : "ControlElement", + "id" : "acm002594jsd", + "name" : "verifyInstructorExpandedLinks" + }, + "acm002595jsd" : { + "type" : "ControlElement", + "id" : "acm002595jsd", + "name" : "verifyAccountRequestRowContent" + }, + "acm002596jsd" : { + "type" : "ControlElement", + "id" : "acm002596jsd", + "name" : "verifyAccountRequestExpandedLinks" + }, + "acm002597jsd" : { + "type" : "ControlElement", + "id" : "acm002597jsd", + "name" : "verifyLinkExpansionButtons" + }, + "acm002598jsd" : { + "type" : "ControlElement", + "id" : "acm002598jsd", + "name" : "verifyRegenerateStudentKey" + }, + "acm002599jsd" : { + "type" : "ControlElement", + "id" : "acm002599jsd", + "name" : "verifyRegenerateInstructorKey" + }, + "acm002600jsd" : { + "type" : "ClassUnit", + "id" : "acm002600jsd", + "name" : "AdminSearchPage", + "compilationUnitId" : "acm002537jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004539jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm002541jsd", "acm002542jsd", "acm002543jsd", "acm002544jsd", "acm002545jsd", "acm002546jsd", "acm002547jsd", "acm002548jsd", "acm002549jsd", "acm002550jsd", "acm002551jsd", "acm002552jsd", "acm002553jsd", "acm002554jsd", "acm002555jsd", "acm002556jsd", "acm002557jsd", "acm002558jsd", "acm002559jsd", "acm002560jsd", "acm002561jsd", "acm002562jsd", "acm002563jsd", "acm002564jsd", "acm002565jsd", "acm002566jsd", "acm002567jsd", "acm002568jsd", "acm002569jsd", "acm002570jsd", "acm002571jsd", "acm002572jsd", "acm002573jsd", "acm002574jsd", "acm002575jsd", "acm002576jsd", "acm002577jsd", "acm002578jsd", "acm002579jsd", "acm002580jsd", "acm002581jsd", "acm002582jsd", "acm002583jsd", "acm002584jsd", "acm002585jsd", "acm002586jsd", "acm002587jsd", "acm002588jsd", "acm002589jsd", "acm002590jsd", "acm002591jsd", "acm002592jsd", "acm002593jsd", "acm002594jsd", "acm002595jsd", "acm002596jsd", "acm002597jsd", "acm002598jsd", "acm002599jsd" ] + }, + "acm002601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002601jsd", + "name" : "AdminSessionsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002616jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002602jsd" : { + "type" : "CodePackage", + "id" : "acm002602jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002603jsd" ] + }, + "acm002603jsd" : { + "type" : "CodePackage", + "id" : "acm002603jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002604jsd" ] + }, + "acm002604jsd" : { + "type" : "CodePackage", + "id" : "acm002604jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002601jsd" ] + }, + "acm002605jsd" : { + "type" : "ControlElement", + "id" : "acm002605jsd", + "name" : "AdminSessionsPage" + }, + "acm002606jsd" : { + "type" : "ControlElement", + "id" : "acm002606jsd", + "name" : "containsExpectedPageContents" + }, + "acm002607jsd" : { + "type" : "ControlElement", + "id" : "acm002607jsd", + "name" : "getOngoingSessionsRows" + }, + "acm002608jsd" : { + "type" : "ControlElement", + "id" : "acm002608jsd", + "name" : "verifySessionRows" + }, + "acm002609jsd" : { + "type" : "ControlElement", + "id" : "acm002609jsd", + "name" : "toggleSessionFilter" + }, + "acm002610jsd" : { + "type" : "ControlElement", + "id" : "acm002610jsd", + "name" : "waitForSessionFilterVisibility" + }, + "acm002611jsd" : { + "type" : "ControlElement", + "id" : "acm002611jsd", + "name" : "setFilterStartDate" + }, + "acm002612jsd" : { + "type" : "ControlElement", + "id" : "acm002612jsd", + "name" : "setFilterEndDate" + }, + "acm002613jsd" : { + "type" : "ControlElement", + "id" : "acm002613jsd", + "name" : "filterSessions" + }, + "acm002614jsd" : { + "type" : "ControlElement", + "id" : "acm002614jsd", + "name" : "formatDateTimeForFilter" + }, + "acm002615jsd" : { + "type" : "ControlElement", + "id" : "acm002615jsd", + "name" : "getSessionsTableTimezone" + }, + "acm002616jsd" : { + "type" : "ClassUnit", + "id" : "acm002616jsd", + "name" : "AdminSessionsPage", + "compilationUnitId" : "acm002601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002605jsd", "acm002606jsd", "acm002607jsd", "acm002608jsd", "acm002609jsd", "acm002610jsd", "acm002611jsd", "acm002612jsd", "acm002613jsd", "acm002614jsd", "acm002615jsd" ] + }, + "acm002617jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002617jsd", + "name" : "AdminTimezonePage", + "parentId" : "acm002489jsd", + "content" : [ "acm002627jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002618jsd" : { + "type" : "CodePackage", + "id" : "acm002618jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002619jsd" ] + }, + "acm002619jsd" : { + "type" : "CodePackage", + "id" : "acm002619jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002620jsd" ] + }, + "acm002620jsd" : { + "type" : "CodePackage", + "id" : "acm002620jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002617jsd" ] + }, + "acm002621jsd" : { + "type" : "ControlElement", + "id" : "acm002621jsd", + "name" : "AdminTimezonePage" + }, + "acm002622jsd" : { + "type" : "ControlElement", + "id" : "acm002622jsd", + "name" : "containsExpectedPageContents" + }, + "acm002623jsd" : { + "type" : "ControlElement", + "id" : "acm002623jsd", + "name" : "getJavaTimezoneOffsets" + }, + "acm002624jsd" : { + "type" : "ControlElement", + "id" : "acm002624jsd", + "name" : "getMomentTimezoneOffsets" + }, + "acm002625jsd" : { + "type" : "ControlElement", + "id" : "acm002625jsd", + "name" : "getJavaTimezoneVersion" + }, + "acm002626jsd" : { + "type" : "ControlElement", + "id" : "acm002626jsd", + "name" : "getMomentTimezoneVersion" + }, + "acm002627jsd" : { + "type" : "ClassUnit", + "id" : "acm002627jsd", + "name" : "AdminTimezonePage", + "compilationUnitId" : "acm002617jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002621jsd", "acm002622jsd", "acm002623jsd", "acm002624jsd", "acm002625jsd", "acm002626jsd" ] + }, + "acm002628jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002628jsd", + "name" : "AppPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002697jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002629jsd" : { + "type" : "CodePackage", + "id" : "acm002629jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002630jsd" ] + }, + "acm002630jsd" : { + "type" : "CodePackage", + "id" : "acm002630jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002631jsd" ] + }, + "acm002631jsd" : { + "type" : "CodePackage", + "id" : "acm002631jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002628jsd" ] + }, + "acm002632jsd" : { + "type" : "ControlElement", + "id" : "acm002632jsd", + "name" : "AppPage" + }, + "acm002633jsd" : { + "type" : "ControlElement", + "id" : "acm002633jsd", + "name" : "getBrowser" + }, + "acm002634jsd" : { + "type" : "ControlElement", + "id" : "acm002634jsd", + "name" : "getNewPageInstance" + }, + "acm002635jsd" : { + "type" : "ControlElement", + "id" : "acm002635jsd", + "name" : "changePageType" + }, + "acm002636jsd" : { + "type" : "ControlElement", + "id" : "acm002636jsd", + "name" : "waitFor" + }, + "acm002637jsd" : { + "type" : "ControlElement", + "id" : "acm002637jsd", + "name" : "waitForPageToLoad" + }, + "acm002638jsd" : { + "type" : "ControlElement", + "id" : "acm002638jsd", + "name" : "waitForPageToLoad" + }, + "acm002639jsd" : { + "type" : "ControlElement", + "id" : "acm002639jsd", + "name" : "waitForElementVisibility" + }, + "acm002640jsd" : { + "type" : "ControlElement", + "id" : "acm002640jsd", + "name" : "waitForElementVisibility" + }, + "acm002641jsd" : { + "type" : "ControlElement", + "id" : "acm002641jsd", + "name" : "waitForElementToBeClickable" + }, + "acm002642jsd" : { + "type" : "ControlElement", + "id" : "acm002642jsd", + "name" : "waitUntilAnimationFinish" + }, + "acm002643jsd" : { + "type" : "ControlElement", + "id" : "acm002643jsd", + "name" : "waitUntilAnimationFinish" + }, + "acm002644jsd" : { + "type" : "ControlElement", + "id" : "acm002644jsd", + "name" : "waitForElementStaleness" + }, + "acm002645jsd" : { + "type" : "ControlElement", + "id" : "acm002645jsd", + "name" : "verifyUnclickable" + }, + "acm002646jsd" : { + "type" : "ControlElement", + "id" : "acm002646jsd", + "name" : "waitForConfirmationModalAndClickOk" + }, + "acm002647jsd" : { + "type" : "ControlElement", + "id" : "acm002647jsd", + "name" : "waitForModalShown" + }, + "acm002648jsd" : { + "type" : "ControlElement", + "id" : "acm002648jsd", + "name" : "waitForModalHidden" + }, + "acm002649jsd" : { + "type" : "ControlElement", + "id" : "acm002649jsd", + "name" : "waitForElementPresence" + }, + "acm002650jsd" : { + "type" : "ControlElement", + "id" : "acm002650jsd", + "name" : "reloadPage" + }, + "acm002651jsd" : { + "type" : "ControlElement", + "id" : "acm002651jsd", + "name" : "executeScript" + }, + "acm002652jsd" : { + "type" : "ControlElement", + "id" : "acm002652jsd", + "name" : "getPageSource" + }, + "acm002653jsd" : { + "type" : "ControlElement", + "id" : "acm002653jsd", + "name" : "getTitle" + }, + "acm002654jsd" : { + "type" : "ControlElement", + "id" : "acm002654jsd", + "name" : "getPageTitle" + }, + "acm002655jsd" : { + "type" : "ControlElement", + "id" : "acm002655jsd", + "name" : "click" + }, + "acm002656jsd" : { + "type" : "ControlElement", + "id" : "acm002656jsd", + "name" : "click" + }, + "acm002657jsd" : { + "type" : "ControlElement", + "id" : "acm002657jsd", + "name" : "clearAndSendKeys" + }, + "acm002658jsd" : { + "type" : "ControlElement", + "id" : "acm002658jsd", + "name" : "clearWithoutEvents" + }, + "acm002659jsd" : { + "type" : "ControlElement", + "id" : "acm002659jsd", + "name" : "fillTextBox" + }, + "acm002660jsd" : { + "type" : "ControlElement", + "id" : "acm002660jsd", + "name" : "fillDatePicker" + }, + "acm002661jsd" : { + "type" : "ControlElement", + "id" : "acm002661jsd", + "name" : "fillFileBox" + }, + "acm002662jsd" : { + "type" : "ControlElement", + "id" : "acm002662jsd", + "name" : "getEditorRichText" + }, + "acm002663jsd" : { + "type" : "ControlElement", + "id" : "acm002663jsd", + "name" : "writeToRichTextEditor" + }, + "acm002664jsd" : { + "type" : "ControlElement", + "id" : "acm002664jsd", + "name" : "markOptionAsSelected" + }, + "acm002665jsd" : { + "type" : "ControlElement", + "id" : "acm002665jsd", + "name" : "markOptionAsUnselected" + }, + "acm002666jsd" : { + "type" : "ControlElement", + "id" : "acm002666jsd", + "name" : "getSelectedDropdownOptionText" + }, + "acm002667jsd" : { + "type" : "ControlElement", + "id" : "acm002667jsd", + "name" : "run" + }, + "acm002668jsd" : { + "type" : "ControlElement", + "id" : "acm002668jsd", + "name" : "selectDropdownOptionByText" + }, + "acm002669jsd" : { + "type" : "ControlElement", + "id" : "acm002669jsd", + "name" : "selectDropdownOptionByValue" + }, + "acm002670jsd" : { + "type" : "ControlElement", + "id" : "acm002670jsd", + "name" : "verifyTableBodyValues" + }, + "acm002671jsd" : { + "type" : "ControlElement", + "id" : "acm002671jsd", + "name" : "verifyTableRowHeaderValues" + }, + "acm002672jsd" : { + "type" : "ControlElement", + "id" : "acm002672jsd", + "name" : "verifyTableColumnHeaderValues" + }, + "acm002673jsd" : { + "type" : "ControlElement", + "id" : "acm002673jsd", + "name" : "verifyTableRowValues" + }, + "acm002674jsd" : { + "type" : "ControlElement", + "id" : "acm002674jsd", + "name" : "verifyTableHeaderValues" + }, + "acm002675jsd" : { + "type" : "ControlElement", + "id" : "acm002675jsd", + "name" : "verifyBannerContent" + }, + "acm002676jsd" : { + "type" : "ControlElement", + "id" : "acm002676jsd", + "name" : "isBannerVisible" + }, + "acm002677jsd" : { + "type" : "ControlElement", + "id" : "acm002677jsd", + "name" : "clickAndConfirm" + }, + "acm002678jsd" : { + "type" : "ControlElement", + "id" : "acm002678jsd", + "name" : "containsExpectedPageContents" + }, + "acm002679jsd" : { + "type" : "ControlElement", + "id" : "acm002679jsd", + "name" : "isElementPresent" + }, + "acm002680jsd" : { + "type" : "ControlElement", + "id" : "acm002680jsd", + "name" : "isElementPresent" + }, + "acm002681jsd" : { + "type" : "ControlElement", + "id" : "acm002681jsd", + "name" : "isElementVisible" + }, + "acm002682jsd" : { + "type" : "ControlElement", + "id" : "acm002682jsd", + "name" : "isExpectedCondition" + }, + "acm002683jsd" : { + "type" : "ControlElement", + "id" : "acm002683jsd", + "name" : "clickDismissModalButtonAndWaitForModalHidden" + }, + "acm002684jsd" : { + "type" : "ControlElement", + "id" : "acm002684jsd", + "name" : "scrollElementToCenterAndClick" + }, + "acm002685jsd" : { + "type" : "ControlElement", + "id" : "acm002685jsd", + "name" : "scrollElementToCenter" + }, + "acm002686jsd" : { + "type" : "ControlElement", + "id" : "acm002686jsd", + "name" : "verifyStatusMessage" + }, + "acm002687jsd" : { + "type" : "ControlElement", + "id" : "acm002687jsd", + "name" : "verifyStatusMessageWithLinks" + }, + "acm002688jsd" : { + "type" : "ControlElement", + "id" : "acm002688jsd", + "name" : "run" + }, + "acm002689jsd" : { + "type" : "ControlElement", + "id" : "acm002689jsd", + "name" : "switchToNewWindow" + }, + "acm002690jsd" : { + "type" : "ControlElement", + "id" : "acm002690jsd", + "name" : "closeCurrentWindowAndSwitchToParentWindow" + }, + "acm002691jsd" : { + "type" : "ControlElement", + "id" : "acm002691jsd", + "name" : "getDisplayGiverName" + }, + "acm002692jsd" : { + "type" : "ControlElement", + "id" : "acm002692jsd", + "name" : "getDisplayRecipientName" + }, + "acm002693jsd" : { + "type" : "ControlElement", + "id" : "acm002693jsd", + "name" : "getDisplayedDateTime" + }, + "acm002694jsd" : { + "type" : "ControlElement", + "id" : "acm002694jsd", + "name" : "getFullDateString" + }, + "acm002695jsd" : { + "type" : "ControlElement", + "id" : "acm002695jsd", + "name" : "getYearString" + }, + "acm002696jsd" : { + "type" : "ControlElement", + "id" : "acm002696jsd", + "name" : "getMonthString" + }, + "acm002697jsd" : { + "type" : "ClassUnit", + "id" : "acm002697jsd", + "name" : "AppPage", + "compilationUnitId" : "acm002628jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002697jsd", "acm002712jsd", "acm003731jsd", "acm003740jsd", "acm003748jsd", "acm004226jsd", "acm005329jsd" ], + "content" : [ "acm002632jsd", "acm002633jsd", "acm002634jsd", "acm002635jsd", "acm002636jsd", "acm002637jsd", "acm002638jsd", "acm002639jsd", "acm002640jsd", "acm002641jsd", "acm002642jsd", "acm002643jsd", "acm002644jsd", "acm002645jsd", "acm002646jsd", "acm002647jsd", "acm002648jsd", "acm002649jsd", "acm002650jsd", "acm002651jsd", "acm002652jsd", "acm002653jsd", "acm002654jsd", "acm002655jsd", "acm002656jsd", "acm002657jsd", "acm002658jsd", "acm002659jsd", "acm002660jsd", "acm002661jsd", "acm002662jsd", "acm002663jsd", "acm002664jsd", "acm002665jsd", "acm002666jsd", "acm002667jsd", "acm002668jsd", "acm002669jsd", "acm002670jsd", "acm002671jsd", "acm002672jsd", "acm002673jsd", "acm002674jsd", "acm002675jsd", "acm002676jsd", "acm002677jsd", "acm002678jsd", "acm002679jsd", "acm002680jsd", "acm002681jsd", "acm002682jsd", "acm002683jsd", "acm002684jsd", "acm002685jsd", "acm002686jsd", "acm002687jsd", "acm002688jsd", "acm002689jsd", "acm002690jsd", "acm002691jsd", "acm002692jsd", "acm002693jsd", "acm002694jsd", "acm002695jsd", "acm002696jsd" ] + }, + "acm002698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002698jsd", + "name" : "Browser", + "parentId" : "acm002489jsd", + "content" : [ "acm002712jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002699jsd" : { + "type" : "CodePackage", + "id" : "acm002699jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002700jsd" ] + }, + "acm002700jsd" : { + "type" : "CodePackage", + "id" : "acm002700jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002701jsd" ] + }, + "acm002701jsd" : { + "type" : "CodePackage", + "id" : "acm002701jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002698jsd" ] + }, + "acm002702jsd" : { + "type" : "ControlElement", + "id" : "acm002702jsd", + "name" : "Browser" + }, + "acm002703jsd" : { + "type" : "ControlElement", + "id" : "acm002703jsd", + "name" : "getDriver" + }, + "acm002704jsd" : { + "type" : "ControlElement", + "id" : "acm002704jsd", + "name" : "addCookie" + }, + "acm002705jsd" : { + "type" : "ControlElement", + "id" : "acm002705jsd", + "name" : "switchToNewWindow" + }, + "acm002706jsd" : { + "type" : "ControlElement", + "id" : "acm002706jsd", + "name" : "waitForPageLoad" + }, + "acm002707jsd" : { + "type" : "ControlElement", + "id" : "acm002707jsd", + "name" : "waitForPageReadyState" + }, + "acm002708jsd" : { + "type" : "ControlElement", + "id" : "acm002708jsd", + "name" : "closeCurrentWindowAndSwitchToParentWindow" + }, + "acm002709jsd" : { + "type" : "ControlElement", + "id" : "acm002709jsd", + "name" : "close" + }, + "acm002710jsd" : { + "type" : "ControlElement", + "id" : "acm002710jsd", + "name" : "goToUrl" + }, + "acm002711jsd" : { + "type" : "ControlElement", + "id" : "acm002711jsd", + "name" : "createWebDriver" + }, + "acm002712jsd" : { + "type" : "ClassUnit", + "id" : "acm002712jsd", + "name" : "Browser", + "compilationUnitId" : "acm002698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002702jsd", "acm002703jsd", "acm002704jsd", "acm002705jsd", "acm002706jsd", "acm002707jsd", "acm002708jsd", "acm002709jsd", "acm002710jsd", "acm002711jsd" ] + }, + "acm002713jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002713jsd", + "name" : "CourseJoinConfirmationPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002722jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002714jsd" : { + "type" : "CodePackage", + "id" : "acm002714jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002715jsd" ] + }, + "acm002715jsd" : { + "type" : "CodePackage", + "id" : "acm002715jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002716jsd" ] + }, + "acm002716jsd" : { + "type" : "CodePackage", + "id" : "acm002716jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002713jsd" ] + }, + "acm002717jsd" : { + "type" : "ControlElement", + "id" : "acm002717jsd", + "name" : "CourseJoinConfirmationPage" + }, + "acm002718jsd" : { + "type" : "ControlElement", + "id" : "acm002718jsd", + "name" : "containsExpectedPageContents" + }, + "acm002719jsd" : { + "type" : "ControlElement", + "id" : "acm002719jsd", + "name" : "verifyJoiningUser" + }, + "acm002720jsd" : { + "type" : "ControlElement", + "id" : "acm002720jsd", + "name" : "confirmJoinCourse" + }, + "acm002721jsd" : { + "type" : "ControlElement", + "id" : "acm002721jsd", + "name" : "verifyDisplayedMessage" + }, + "acm002722jsd" : { + "type" : "ClassUnit", + "id" : "acm002722jsd", + "name" : "CourseJoinConfirmationPage", + "compilationUnitId" : "acm002713jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002697jsd", "acm002712jsd" ], + "content" : [ "acm002717jsd", "acm002718jsd", "acm002719jsd", "acm002720jsd", "acm002721jsd" ] + }, + "acm002723jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002723jsd", + "name" : "DevServerLoginPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002730jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002724jsd" : { + "type" : "CodePackage", + "id" : "acm002724jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002725jsd" ] + }, + "acm002725jsd" : { + "type" : "CodePackage", + "id" : "acm002725jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002726jsd" ] + }, + "acm002726jsd" : { + "type" : "CodePackage", + "id" : "acm002726jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002723jsd" ] + }, + "acm002727jsd" : { + "type" : "ControlElement", + "id" : "acm002727jsd", + "name" : "DevServerLoginPage" + }, + "acm002728jsd" : { + "type" : "ControlElement", + "id" : "acm002728jsd", + "name" : "containsExpectedPageContents" + }, + "acm002729jsd" : { + "type" : "ControlElement", + "id" : "acm002729jsd", + "name" : "loginAsUser" + }, + "acm002730jsd" : { + "type" : "ClassUnit", + "id" : "acm002730jsd", + "name" : "DevServerLoginPage", + "compilationUnitId" : "acm002723jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002727jsd", "acm002728jsd", "acm002729jsd" ] + }, + "acm002731jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002731jsd", + "name" : "ErrorReportingModal", + "parentId" : "acm002489jsd", + "content" : [ "acm002738jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002732jsd" : { + "type" : "CodePackage", + "id" : "acm002732jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002733jsd" ] + }, + "acm002733jsd" : { + "type" : "CodePackage", + "id" : "acm002733jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002734jsd" ] + }, + "acm002734jsd" : { + "type" : "CodePackage", + "id" : "acm002734jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002731jsd" ] + }, + "acm002735jsd" : { + "type" : "ControlElement", + "id" : "acm002735jsd", + "name" : "ErrorReportingModal" + }, + "acm002736jsd" : { + "type" : "ControlElement", + "id" : "acm002736jsd", + "name" : "containsExpectedPageContents" + }, + "acm002737jsd" : { + "type" : "ControlElement", + "id" : "acm002737jsd", + "name" : "verifyErrorMessage" + }, + "acm002738jsd" : { + "type" : "ClassUnit", + "id" : "acm002738jsd", + "name" : "ErrorReportingModal", + "compilationUnitId" : "acm002731jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002735jsd", "acm002736jsd", "acm002737jsd" ] + }, + "acm002739jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002739jsd", + "name" : "FeedbackResultsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002809jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002740jsd" : { + "type" : "CodePackage", + "id" : "acm002740jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002741jsd" ] + }, + "acm002741jsd" : { + "type" : "CodePackage", + "id" : "acm002741jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002742jsd" ] + }, + "acm002742jsd" : { + "type" : "CodePackage", + "id" : "acm002742jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002739jsd" ] + }, + "acm002743jsd" : { + "type" : "ControlElement", + "id" : "acm002743jsd", + "name" : "FeedbackResultsPage" + }, + "acm002744jsd" : { + "type" : "ControlElement", + "id" : "acm002744jsd", + "name" : "containsExpectedPageContents" + }, + "acm002745jsd" : { + "type" : "ControlElement", + "id" : "acm002745jsd", + "name" : "verifyFeedbackSessionDetails" + }, + "acm002746jsd" : { + "type" : "ControlElement", + "id" : "acm002746jsd", + "name" : "verifyQuestionDetails" + }, + "acm002747jsd" : { + "type" : "ControlElement", + "id" : "acm002747jsd", + "name" : "verifyResponseDetails" + }, + "acm002748jsd" : { + "type" : "ControlElement", + "id" : "acm002748jsd", + "name" : "verifyQuestionNotPresent" + }, + "acm002749jsd" : { + "type" : "ControlElement", + "id" : "acm002749jsd", + "name" : "verifyQuestionHasResponsesNotVisibleForPreview" + }, + "acm002750jsd" : { + "type" : "ControlElement", + "id" : "acm002750jsd", + "name" : "verifyQuestionHasCommentsNotVisibleForPreview" + }, + "acm002751jsd" : { + "type" : "ControlElement", + "id" : "acm002751jsd", + "name" : "verifyNumScaleStatistics" + }, + "acm002752jsd" : { + "type" : "ControlElement", + "id" : "acm002752jsd", + "name" : "verifyRubricStatistics" + }, + "acm002753jsd" : { + "type" : "ControlElement", + "id" : "acm002753jsd", + "name" : "verifyContributionStatistics" + }, + "acm002754jsd" : { + "type" : "ControlElement", + "id" : "acm002754jsd", + "name" : "verifyCommentDetails" + }, + "acm002755jsd" : { + "type" : "ControlElement", + "id" : "acm002755jsd", + "name" : "verifyQuestionDoesNotShowResponses" + }, + "acm002756jsd" : { + "type" : "ControlElement", + "id" : "acm002756jsd", + "name" : "verifyQuestionDoesNotShowComments" + }, + "acm002757jsd" : { + "type" : "ControlElement", + "id" : "acm002757jsd", + "name" : "verifyNonVisibleResponseAlertPresent" + }, + "acm002758jsd" : { + "type" : "ControlElement", + "id" : "acm002758jsd", + "name" : "verifyNonVisibleCommentAlertPresent" + }, + "acm002759jsd" : { + "type" : "ControlElement", + "id" : "acm002759jsd", + "name" : "hasDisplayedResponses" + }, + "acm002760jsd" : { + "type" : "ControlElement", + "id" : "acm002760jsd", + "name" : "verifyGivenResponses" + }, + "acm002761jsd" : { + "type" : "ControlElement", + "id" : "acm002761jsd", + "name" : "verifyOtherResponses" + }, + "acm002762jsd" : { + "type" : "ControlElement", + "id" : "acm002762jsd", + "name" : "getRecipients" + }, + "acm002763jsd" : { + "type" : "ControlElement", + "id" : "acm002763jsd", + "name" : "verifyResponseForRecipient" + }, + "acm002764jsd" : { + "type" : "ControlElement", + "id" : "acm002764jsd", + "name" : "verifyAnonymousResponseView" + }, + "acm002765jsd" : { + "type" : "ControlElement", + "id" : "acm002765jsd", + "name" : "isResponseEqual" + }, + "acm002766jsd" : { + "type" : "ControlElement", + "id" : "acm002766jsd", + "name" : "isRubricResponseEqual" + }, + "acm002767jsd" : { + "type" : "ControlElement", + "id" : "acm002767jsd", + "name" : "isAnonymous" + }, + "acm002768jsd" : { + "type" : "ControlElement", + "id" : "acm002768jsd", + "name" : "isAnyAnonymousResponseEqual" + }, + "acm002769jsd" : { + "type" : "ControlElement", + "id" : "acm002769jsd", + "name" : "getCourseId" + }, + "acm002770jsd" : { + "type" : "ControlElement", + "id" : "acm002770jsd", + "name" : "getCourseName" + }, + "acm002771jsd" : { + "type" : "ControlElement", + "id" : "acm002771jsd", + "name" : "getCourseInstitute" + }, + "acm002772jsd" : { + "type" : "ControlElement", + "id" : "acm002772jsd", + "name" : "getFeedbackSessionName" + }, + "acm002773jsd" : { + "type" : "ControlElement", + "id" : "acm002773jsd", + "name" : "getOpeningTime" + }, + "acm002774jsd" : { + "type" : "ControlElement", + "id" : "acm002774jsd", + "name" : "getClosingTime" + }, + "acm002775jsd" : { + "type" : "ControlElement", + "id" : "acm002775jsd", + "name" : "assertDateEquals" + }, + "acm002776jsd" : { + "type" : "ControlElement", + "id" : "acm002776jsd", + "name" : "getDateStringWithAbbr" + }, + "acm002777jsd" : { + "type" : "ControlElement", + "id" : "acm002777jsd", + "name" : "getDateStringWithOffset" + }, + "acm002778jsd" : { + "type" : "ControlElement", + "id" : "acm002778jsd", + "name" : "getQuestionText" + }, + "acm002779jsd" : { + "type" : "ControlElement", + "id" : "acm002779jsd", + "name" : "getMcqAddInfo" + }, + "acm002780jsd" : { + "type" : "ControlElement", + "id" : "acm002780jsd", + "name" : "getMsqAddInfo" + }, + "acm002781jsd" : { + "type" : "ControlElement", + "id" : "acm002781jsd", + "name" : "appendMultiChoiceInfo" + }, + "acm002782jsd" : { + "type" : "ControlElement", + "id" : "acm002782jsd", + "name" : "getRubricAddInfo" + }, + "acm002783jsd" : { + "type" : "ControlElement", + "id" : "acm002783jsd", + "name" : "getNumScaleAddInfo" + }, + "acm002784jsd" : { + "type" : "ControlElement", + "id" : "acm002784jsd", + "name" : "getRankOptionsAddInfo" + }, + "acm002785jsd" : { + "type" : "ControlElement", + "id" : "acm002785jsd", + "name" : "getConstSumOptionsAddInfo" + }, + "acm002786jsd" : { + "type" : "ControlElement", + "id" : "acm002786jsd", + "name" : "getConstSumRecipientsAddInfo" + }, + "acm002787jsd" : { + "type" : "ControlElement", + "id" : "acm002787jsd", + "name" : "appendOptions" + }, + "acm002788jsd" : { + "type" : "ControlElement", + "id" : "acm002788jsd", + "name" : "getQuestionResponsesSection" + }, + "acm002789jsd" : { + "type" : "ControlElement", + "id" : "acm002789jsd", + "name" : "showAdditionalInfo" + }, + "acm002790jsd" : { + "type" : "ControlElement", + "id" : "acm002790jsd", + "name" : "getAdditionalInfo" + }, + "acm002791jsd" : { + "type" : "ControlElement", + "id" : "acm002791jsd", + "name" : "getGivenResponseField" + }, + "acm002792jsd" : { + "type" : "ControlElement", + "id" : "acm002792jsd", + "name" : "getGivenRecipientIndex" + }, + "acm002793jsd" : { + "type" : "ControlElement", + "id" : "acm002793jsd", + "name" : "getAdditionalInfoString" + }, + "acm002794jsd" : { + "type" : "ControlElement", + "id" : "acm002794jsd", + "name" : "getAnswerString" + }, + "acm002795jsd" : { + "type" : "ControlElement", + "id" : "acm002795jsd", + "name" : "getRankOptionsAnsString" + }, + "acm002796jsd" : { + "type" : "ControlElement", + "id" : "acm002796jsd", + "name" : "getConstSumOptionsAnsString" + }, + "acm002797jsd" : { + "type" : "ControlElement", + "id" : "acm002797jsd", + "name" : "getAllResponseViews" + }, + "acm002798jsd" : { + "type" : "ControlElement", + "id" : "acm002798jsd", + "name" : "getAllResponseFields" + }, + "acm002799jsd" : { + "type" : "ControlElement", + "id" : "acm002799jsd", + "name" : "getNumScaleStatistics" + }, + "acm002800jsd" : { + "type" : "ControlElement", + "id" : "acm002800jsd", + "name" : "getRubricExcludeSelfCheckbox" + }, + "acm002801jsd" : { + "type" : "ControlElement", + "id" : "acm002801jsd", + "name" : "getRubricStatistics" + }, + "acm002802jsd" : { + "type" : "ControlElement", + "id" : "acm002802jsd", + "name" : "isCommentByResponseGiver" + }, + "acm002803jsd" : { + "type" : "ControlElement", + "id" : "acm002803jsd", + "name" : "getCommentGiver" + }, + "acm002804jsd" : { + "type" : "ControlElement", + "id" : "acm002804jsd", + "name" : "getCommentEditor" + }, + "acm002805jsd" : { + "type" : "ControlElement", + "id" : "acm002805jsd", + "name" : "getCommentFields" + }, + "acm002806jsd" : { + "type" : "ControlElement", + "id" : "acm002806jsd", + "name" : "getCommentField" + }, + "acm002807jsd" : { + "type" : "ControlElement", + "id" : "acm002807jsd", + "name" : "getGiverIndex" + }, + "acm002808jsd" : { + "type" : "ControlElement", + "id" : "acm002808jsd", + "name" : "getRecipientIndex" + }, + "acm002809jsd" : { + "type" : "ClassUnit", + "id" : "acm002809jsd", + "name" : "FeedbackResultsPage", + "compilationUnitId" : "acm002739jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004226jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005778jsd", "acm005788jsd", "acm005866jsd", "acm005909jsd", "acm005942jsd", "acm006001jsd", "acm006012jsd", "acm006061jsd", "acm006089jsd", "acm006099jsd" ], + "content" : [ "acm002743jsd", "acm002744jsd", "acm002745jsd", "acm002746jsd", "acm002747jsd", "acm002748jsd", "acm002749jsd", "acm002750jsd", "acm002751jsd", "acm002752jsd", "acm002753jsd", "acm002754jsd", "acm002755jsd", "acm002756jsd", "acm002757jsd", "acm002758jsd", "acm002759jsd", "acm002760jsd", "acm002761jsd", "acm002762jsd", "acm002763jsd", "acm002764jsd", "acm002765jsd", "acm002766jsd", "acm002767jsd", "acm002768jsd", "acm002769jsd", "acm002770jsd", "acm002771jsd", "acm002772jsd", "acm002773jsd", "acm002774jsd", "acm002775jsd", "acm002776jsd", "acm002777jsd", "acm002778jsd", "acm002779jsd", "acm002780jsd", "acm002781jsd", "acm002782jsd", "acm002783jsd", "acm002784jsd", "acm002785jsd", "acm002786jsd", "acm002787jsd", "acm002788jsd", "acm002789jsd", "acm002790jsd", "acm002791jsd", "acm002792jsd", "acm002793jsd", "acm002794jsd", "acm002795jsd", "acm002796jsd", "acm002797jsd", "acm002798jsd", "acm002799jsd", "acm002800jsd", "acm002801jsd", "acm002802jsd", "acm002803jsd", "acm002804jsd", "acm002805jsd", "acm002806jsd", "acm002807jsd", "acm002808jsd" ] + }, + "acm002810jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002810jsd", + "name" : "FeedbackSubmitPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002911jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002811jsd" : { + "type" : "CodePackage", + "id" : "acm002811jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002812jsd" ] + }, + "acm002812jsd" : { + "type" : "CodePackage", + "id" : "acm002812jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002813jsd" ] + }, + "acm002813jsd" : { + "type" : "CodePackage", + "id" : "acm002813jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002810jsd" ] + }, + "acm002814jsd" : { + "type" : "ControlElement", + "id" : "acm002814jsd", + "name" : "FeedbackSubmitPage" + }, + "acm002815jsd" : { + "type" : "ControlElement", + "id" : "acm002815jsd", + "name" : "containsExpectedPageContents" + }, + "acm002816jsd" : { + "type" : "ControlElement", + "id" : "acm002816jsd", + "name" : "verifyFeedbackSessionDetails" + }, + "acm002817jsd" : { + "type" : "ControlElement", + "id" : "acm002817jsd", + "name" : "verifyNumQuestions" + }, + "acm002818jsd" : { + "type" : "ControlElement", + "id" : "acm002818jsd", + "name" : "verifyQuestionDetails" + }, + "acm002819jsd" : { + "type" : "ControlElement", + "id" : "acm002819jsd", + "name" : "verifyLimitedRecipients" + }, + "acm002820jsd" : { + "type" : "ControlElement", + "id" : "acm002820jsd", + "name" : "verifyRecipients" + }, + "acm002821jsd" : { + "type" : "ControlElement", + "id" : "acm002821jsd", + "name" : "verifyWarningMessageForPartialResponse" + }, + "acm002822jsd" : { + "type" : "ControlElement", + "id" : "acm002822jsd", + "name" : "verifyCannotSubmit" + }, + "acm002823jsd" : { + "type" : "ControlElement", + "id" : "acm002823jsd", + "name" : "addComment" + }, + "acm002824jsd" : { + "type" : "ControlElement", + "id" : "acm002824jsd", + "name" : "editComment" + }, + "acm002825jsd" : { + "type" : "ControlElement", + "id" : "acm002825jsd", + "name" : "deleteComment" + }, + "acm002826jsd" : { + "type" : "ControlElement", + "id" : "acm002826jsd", + "name" : "verifyComment" + }, + "acm002827jsd" : { + "type" : "ControlElement", + "id" : "acm002827jsd", + "name" : "verifyNoCommentPresent" + }, + "acm002828jsd" : { + "type" : "ControlElement", + "id" : "acm002828jsd", + "name" : "verifyTextQuestion" + }, + "acm002829jsd" : { + "type" : "ControlElement", + "id" : "acm002829jsd", + "name" : "fillTextResponse" + }, + "acm002830jsd" : { + "type" : "ControlElement", + "id" : "acm002830jsd", + "name" : "verifyTextResponse" + }, + "acm002831jsd" : { + "type" : "ControlElement", + "id" : "acm002831jsd", + "name" : "verifyMcqQuestion" + }, + "acm002832jsd" : { + "type" : "ControlElement", + "id" : "acm002832jsd", + "name" : "verifyGeneratedMcqQuestion" + }, + "acm002833jsd" : { + "type" : "ControlElement", + "id" : "acm002833jsd", + "name" : "fillMcqResponse" + }, + "acm002834jsd" : { + "type" : "ControlElement", + "id" : "acm002834jsd", + "name" : "verifyMcqResponse" + }, + "acm002835jsd" : { + "type" : "ControlElement", + "id" : "acm002835jsd", + "name" : "verifyMsqQuestion" + }, + "acm002836jsd" : { + "type" : "ControlElement", + "id" : "acm002836jsd", + "name" : "verifyMsqSelectableOptionsMessage" + }, + "acm002837jsd" : { + "type" : "ControlElement", + "id" : "acm002837jsd", + "name" : "verifyGeneratedMsqQuestion" + }, + "acm002838jsd" : { + "type" : "ControlElement", + "id" : "acm002838jsd", + "name" : "fillMsqResponse" + }, + "acm002839jsd" : { + "type" : "ControlElement", + "id" : "acm002839jsd", + "name" : "verifyMsqResponse" + }, + "acm002840jsd" : { + "type" : "ControlElement", + "id" : "acm002840jsd", + "name" : "verifyNumScaleQuestion" + }, + "acm002841jsd" : { + "type" : "ControlElement", + "id" : "acm002841jsd", + "name" : "fillNumScaleResponse" + }, + "acm002842jsd" : { + "type" : "ControlElement", + "id" : "acm002842jsd", + "name" : "verifyNumScaleResponse" + }, + "acm002843jsd" : { + "type" : "ControlElement", + "id" : "acm002843jsd", + "name" : "verifyConstSumQuestion" + }, + "acm002844jsd" : { + "type" : "ControlElement", + "id" : "acm002844jsd", + "name" : "fillConstSumOptionResponse" + }, + "acm002845jsd" : { + "type" : "ControlElement", + "id" : "acm002845jsd", + "name" : "verifyConstSumOptionResponse" + }, + "acm002846jsd" : { + "type" : "ControlElement", + "id" : "acm002846jsd", + "name" : "fillConstSumRecipientResponse" + }, + "acm002847jsd" : { + "type" : "ControlElement", + "id" : "acm002847jsd", + "name" : "verifyConstSumRecipientResponse" + }, + "acm002848jsd" : { + "type" : "ControlElement", + "id" : "acm002848jsd", + "name" : "verifyContributionQuestion" + }, + "acm002849jsd" : { + "type" : "ControlElement", + "id" : "acm002849jsd", + "name" : "fillContributionResponse" + }, + "acm002850jsd" : { + "type" : "ControlElement", + "id" : "acm002850jsd", + "name" : "verifyContributionResponse" + }, + "acm002851jsd" : { + "type" : "ControlElement", + "id" : "acm002851jsd", + "name" : "verifyRubricQuestion" + }, + "acm002852jsd" : { + "type" : "ControlElement", + "id" : "acm002852jsd", + "name" : "fillRubricResponse" + }, + "acm002853jsd" : { + "type" : "ControlElement", + "id" : "acm002853jsd", + "name" : "verifyRubricResponse" + }, + "acm002854jsd" : { + "type" : "ControlElement", + "id" : "acm002854jsd", + "name" : "verifyRankQuestion" + }, + "acm002855jsd" : { + "type" : "ControlElement", + "id" : "acm002855jsd", + "name" : "fillRankOptionResponse" + }, + "acm002856jsd" : { + "type" : "ControlElement", + "id" : "acm002856jsd", + "name" : "verifyRankOptionResponse" + }, + "acm002857jsd" : { + "type" : "ControlElement", + "id" : "acm002857jsd", + "name" : "fillRankRecipientResponse" + }, + "acm002858jsd" : { + "type" : "ControlElement", + "id" : "acm002858jsd", + "name" : "verifyRankRecipientResponse" + }, + "acm002859jsd" : { + "type" : "ControlElement", + "id" : "acm002859jsd", + "name" : "getCourseId" + }, + "acm002860jsd" : { + "type" : "ControlElement", + "id" : "acm002860jsd", + "name" : "getCourseName" + }, + "acm002861jsd" : { + "type" : "ControlElement", + "id" : "acm002861jsd", + "name" : "getCourseInstitute" + }, + "acm002862jsd" : { + "type" : "ControlElement", + "id" : "acm002862jsd", + "name" : "getFeedbackSessionName" + }, + "acm002863jsd" : { + "type" : "ControlElement", + "id" : "acm002863jsd", + "name" : "getOpeningTime" + }, + "acm002864jsd" : { + "type" : "ControlElement", + "id" : "acm002864jsd", + "name" : "getClosingTime" + }, + "acm002865jsd" : { + "type" : "ControlElement", + "id" : "acm002865jsd", + "name" : "getInstructions" + }, + "acm002866jsd" : { + "type" : "ControlElement", + "id" : "acm002866jsd", + "name" : "assertDateEquals" + }, + "acm002867jsd" : { + "type" : "ControlElement", + "id" : "acm002867jsd", + "name" : "getDateStringWithAbbr" + }, + "acm002868jsd" : { + "type" : "ControlElement", + "id" : "acm002868jsd", + "name" : "getDateStringWithOffset" + }, + "acm002869jsd" : { + "type" : "ControlElement", + "id" : "acm002869jsd", + "name" : "getQuestionForm" + }, + "acm002870jsd" : { + "type" : "ControlElement", + "id" : "acm002870jsd", + "name" : "getQuestionBrief" + }, + "acm002871jsd" : { + "type" : "ControlElement", + "id" : "acm002871jsd", + "name" : "verifyVisibilityList" + }, + "acm002872jsd" : { + "type" : "ControlElement", + "id" : "acm002872jsd", + "name" : "verifyVisibilityStringPresent" + }, + "acm002873jsd" : { + "type" : "ControlElement", + "id" : "acm002873jsd", + "name" : "getVisibilityString" + }, + "acm002874jsd" : { + "type" : "ControlElement", + "id" : "acm002874jsd", + "name" : "getViewerString" + }, + "acm002875jsd" : { + "type" : "ControlElement", + "id" : "acm002875jsd", + "name" : "getRecipientString" + }, + "acm002876jsd" : { + "type" : "ControlElement", + "id" : "acm002876jsd", + "name" : "clickSubmitQuestionButton" + }, + "acm002877jsd" : { + "type" : "ControlElement", + "id" : "acm002877jsd", + "name" : "clickSubmitAllQuestionsButton" + }, + "acm002878jsd" : { + "type" : "ControlElement", + "id" : "acm002878jsd", + "name" : "getSubmitAllQuestionsButton" + }, + "acm002879jsd" : { + "type" : "ControlElement", + "id" : "acm002879jsd", + "name" : "getQuestionDescription" + }, + "acm002880jsd" : { + "type" : "ControlElement", + "id" : "acm002880jsd", + "name" : "getCommentSection" + }, + "acm002881jsd" : { + "type" : "ControlElement", + "id" : "acm002881jsd", + "name" : "writeToCommentEditor" + }, + "acm002882jsd" : { + "type" : "ControlElement", + "id" : "acm002882jsd", + "name" : "getRecipientIndex" + }, + "acm002883jsd" : { + "type" : "ControlElement", + "id" : "acm002883jsd", + "name" : "getTextResponseEditor" + }, + "acm002884jsd" : { + "type" : "ControlElement", + "id" : "acm002884jsd", + "name" : "getResponseLengthText" + }, + "acm002885jsd" : { + "type" : "ControlElement", + "id" : "acm002885jsd", + "name" : "getDoubleString" + }, + "acm002886jsd" : { + "type" : "ControlElement", + "id" : "acm002886jsd", + "name" : "getMcqSection" + }, + "acm002887jsd" : { + "type" : "ControlElement", + "id" : "acm002887jsd", + "name" : "getMcqOtherOptionRadioBtn" + }, + "acm002888jsd" : { + "type" : "ControlElement", + "id" : "acm002888jsd", + "name" : "getMcqOtherOptionTextbox" + }, + "acm002889jsd" : { + "type" : "ControlElement", + "id" : "acm002889jsd", + "name" : "getMcqOptions" + }, + "acm002890jsd" : { + "type" : "ControlElement", + "id" : "acm002890jsd", + "name" : "getMcqRadioBtns" + }, + "acm002891jsd" : { + "type" : "ControlElement", + "id" : "acm002891jsd", + "name" : "getMsqSection" + }, + "acm002892jsd" : { + "type" : "ControlElement", + "id" : "acm002892jsd", + "name" : "getMsqOtherOptionCheckbox" + }, + "acm002893jsd" : { + "type" : "ControlElement", + "id" : "acm002893jsd", + "name" : "getMsqOtherOptionTextbox" + }, + "acm002894jsd" : { + "type" : "ControlElement", + "id" : "acm002894jsd", + "name" : "getMsqOptions" + }, + "acm002895jsd" : { + "type" : "ControlElement", + "id" : "acm002895jsd", + "name" : "getMsqCheckboxes" + }, + "acm002896jsd" : { + "type" : "ControlElement", + "id" : "acm002896jsd", + "name" : "getNumScaleSection" + }, + "acm002897jsd" : { + "type" : "ControlElement", + "id" : "acm002897jsd", + "name" : "getNumScaleInput" + }, + "acm002898jsd" : { + "type" : "ControlElement", + "id" : "acm002898jsd", + "name" : "getConstSumOptionsSection" + }, + "acm002899jsd" : { + "type" : "ControlElement", + "id" : "acm002899jsd", + "name" : "getConstSumOptions" + }, + "acm002900jsd" : { + "type" : "ControlElement", + "id" : "acm002900jsd", + "name" : "getConstSumInputs" + }, + "acm002901jsd" : { + "type" : "ControlElement", + "id" : "acm002901jsd", + "name" : "getConstSumRecipientInputs" + }, + "acm002902jsd" : { + "type" : "ControlElement", + "id" : "acm002902jsd", + "name" : "getContributionDropdowns" + }, + "acm002903jsd" : { + "type" : "ControlElement", + "id" : "acm002903jsd", + "name" : "getContributionString" + }, + "acm002904jsd" : { + "type" : "ControlElement", + "id" : "acm002904jsd", + "name" : "getRubricSection" + }, + "acm002905jsd" : { + "type" : "ControlElement", + "id" : "acm002905jsd", + "name" : "getRubricTable" + }, + "acm002906jsd" : { + "type" : "ControlElement", + "id" : "acm002906jsd", + "name" : "getRubricInputs" + }, + "acm002907jsd" : { + "type" : "ControlElement", + "id" : "acm002907jsd", + "name" : "getRankOptionsSection" + }, + "acm002908jsd" : { + "type" : "ControlElement", + "id" : "acm002908jsd", + "name" : "getRankOptions" + }, + "acm002909jsd" : { + "type" : "ControlElement", + "id" : "acm002909jsd", + "name" : "getRankOptionsDropdowns" + }, + "acm002910jsd" : { + "type" : "ControlElement", + "id" : "acm002910jsd", + "name" : "getRankRecipientDropdowns" + }, + "acm002911jsd" : { + "type" : "ClassUnit", + "id" : "acm002911jsd", + "name" : "FeedbackSubmitPage", + "compilationUnitId" : "acm002810jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004226jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005778jsd", "acm005788jsd", "acm005820jsd", "acm005838jsd", "acm005866jsd", "acm005880jsd", "acm005909jsd", "acm005923jsd", "acm005942jsd", "acm005952jsd", "acm006001jsd", "acm006012jsd", "acm006025jsd", "acm006049jsd", "acm006089jsd", "acm006099jsd", "acm006116jsd", "acm006127jsd" ], + "content" : [ "acm002814jsd", "acm002815jsd", "acm002816jsd", "acm002817jsd", "acm002818jsd", "acm002819jsd", "acm002820jsd", "acm002821jsd", "acm002822jsd", "acm002823jsd", "acm002824jsd", "acm002825jsd", "acm002826jsd", "acm002827jsd", "acm002828jsd", "acm002829jsd", "acm002830jsd", "acm002831jsd", "acm002832jsd", "acm002833jsd", "acm002834jsd", "acm002835jsd", "acm002836jsd", "acm002837jsd", "acm002838jsd", "acm002839jsd", "acm002840jsd", "acm002841jsd", "acm002842jsd", "acm002843jsd", "acm002844jsd", "acm002845jsd", "acm002846jsd", "acm002847jsd", "acm002848jsd", "acm002849jsd", "acm002850jsd", "acm002851jsd", "acm002852jsd", "acm002853jsd", "acm002854jsd", "acm002855jsd", "acm002856jsd", "acm002857jsd", "acm002858jsd", "acm002859jsd", "acm002860jsd", "acm002861jsd", "acm002862jsd", "acm002863jsd", "acm002864jsd", "acm002865jsd", "acm002866jsd", "acm002867jsd", "acm002868jsd", "acm002869jsd", "acm002870jsd", "acm002871jsd", "acm002872jsd", "acm002873jsd", "acm002874jsd", "acm002875jsd", "acm002876jsd", "acm002877jsd", "acm002878jsd", "acm002879jsd", "acm002880jsd", "acm002881jsd", "acm002882jsd", "acm002883jsd", "acm002884jsd", "acm002885jsd", "acm002886jsd", "acm002887jsd", "acm002888jsd", "acm002889jsd", "acm002890jsd", "acm002891jsd", "acm002892jsd", "acm002893jsd", "acm002894jsd", "acm002895jsd", "acm002896jsd", "acm002897jsd", "acm002898jsd", "acm002899jsd", "acm002900jsd", "acm002901jsd", "acm002902jsd", "acm002903jsd", "acm002904jsd", "acm002905jsd", "acm002906jsd", "acm002907jsd", "acm002908jsd", "acm002909jsd", "acm002910jsd" ] + }, + "acm002912jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002912jsd", + "name" : "HomePage", + "parentId" : "acm002489jsd", + "content" : [ "acm002919jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002913jsd" : { + "type" : "CodePackage", + "id" : "acm002913jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002914jsd" ] + }, + "acm002914jsd" : { + "type" : "CodePackage", + "id" : "acm002914jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002915jsd" ] + }, + "acm002915jsd" : { + "type" : "CodePackage", + "id" : "acm002915jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002912jsd" ] + }, + "acm002916jsd" : { + "type" : "ControlElement", + "id" : "acm002916jsd", + "name" : "HomePage" + }, + "acm002917jsd" : { + "type" : "ControlElement", + "id" : "acm002917jsd", + "name" : "containsExpectedPageContents" + }, + "acm002918jsd" : { + "type" : "ControlElement", + "id" : "acm002918jsd", + "name" : "waitForPageToLoad" + }, + "acm002919jsd" : { + "type" : "ClassUnit", + "id" : "acm002919jsd", + "name" : "HomePage", + "compilationUnitId" : "acm002912jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002916jsd", "acm002917jsd", "acm002918jsd" ] + }, + "acm002920jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002920jsd", + "name" : "IanaTimezonePage", + "parentId" : "acm002489jsd", + "content" : [ "acm002928jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002921jsd" : { + "type" : "CodePackage", + "id" : "acm002921jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002922jsd" ] + }, + "acm002922jsd" : { + "type" : "CodePackage", + "id" : "acm002922jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002923jsd" ] + }, + "acm002923jsd" : { + "type" : "CodePackage", + "id" : "acm002923jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002920jsd" ] + }, + "acm002924jsd" : { + "type" : "ControlElement", + "id" : "acm002924jsd", + "name" : "IanaTimezonePage" + }, + "acm002925jsd" : { + "type" : "ControlElement", + "id" : "acm002925jsd", + "name" : "containsExpectedPageContents" + }, + "acm002926jsd" : { + "type" : "ControlElement", + "id" : "acm002926jsd", + "name" : "getVersion" + }, + "acm002927jsd" : { + "type" : "ControlElement", + "id" : "acm002927jsd", + "name" : "getReleaseDate" + }, + "acm002928jsd" : { + "type" : "ClassUnit", + "id" : "acm002928jsd", + "name" : "IanaTimezonePage", + "compilationUnitId" : "acm002920jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm002924jsd", "acm002925jsd", "acm002926jsd", "acm002927jsd" ] + }, + "acm002929jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002929jsd", + "name" : "InstructorCourseDetailsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm002956jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002930jsd" : { + "type" : "CodePackage", + "id" : "acm002930jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002931jsd" ] + }, + "acm002931jsd" : { + "type" : "CodePackage", + "id" : "acm002931jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002932jsd" ] + }, + "acm002932jsd" : { + "type" : "CodePackage", + "id" : "acm002932jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002929jsd" ] + }, + "acm002933jsd" : { + "type" : "ControlElement", + "id" : "acm002933jsd", + "name" : "InstructorCourseDetailsPage" + }, + "acm002934jsd" : { + "type" : "ControlElement", + "id" : "acm002934jsd", + "name" : "containsExpectedPageContents" + }, + "acm002935jsd" : { + "type" : "ControlElement", + "id" : "acm002935jsd", + "name" : "verifyCourseDetails" + }, + "acm002936jsd" : { + "type" : "ControlElement", + "id" : "acm002936jsd", + "name" : "verifyStudentDetails" + }, + "acm002937jsd" : { + "type" : "ControlElement", + "id" : "acm002937jsd", + "name" : "verifyNumStudents" + }, + "acm002938jsd" : { + "type" : "ControlElement", + "id" : "acm002938jsd", + "name" : "sendInvite" + }, + "acm002939jsd" : { + "type" : "ControlElement", + "id" : "acm002939jsd", + "name" : "remindAllToJoin" + }, + "acm002940jsd" : { + "type" : "ControlElement", + "id" : "acm002940jsd", + "name" : "downloadStudentList" + }, + "acm002941jsd" : { + "type" : "ControlElement", + "id" : "acm002941jsd", + "name" : "sortByName" + }, + "acm002942jsd" : { + "type" : "ControlElement", + "id" : "acm002942jsd", + "name" : "sortByStatus" + }, + "acm002943jsd" : { + "type" : "ControlElement", + "id" : "acm002943jsd", + "name" : "deleteStudent" + }, + "acm002944jsd" : { + "type" : "ControlElement", + "id" : "acm002944jsd", + "name" : "deleteAllStudents" + }, + "acm002945jsd" : { + "type" : "ControlElement", + "id" : "acm002945jsd", + "name" : "getExpectedInstructorString" + }, + "acm002946jsd" : { + "type" : "ControlElement", + "id" : "acm002946jsd", + "name" : "getStudentList" + }, + "acm002947jsd" : { + "type" : "ControlElement", + "id" : "acm002947jsd", + "name" : "getExpectedStudentValues" + }, + "acm002948jsd" : { + "type" : "ControlElement", + "id" : "acm002948jsd", + "name" : "getSendInviteButton" + }, + "acm002949jsd" : { + "type" : "ControlElement", + "id" : "acm002949jsd", + "name" : "getDeleteButton" + }, + "acm002950jsd" : { + "type" : "ControlElement", + "id" : "acm002950jsd", + "name" : "getAllStudentRows" + }, + "acm002951jsd" : { + "type" : "ControlElement", + "id" : "acm002951jsd", + "name" : "getNumStudents" + }, + "acm002952jsd" : { + "type" : "ControlElement", + "id" : "acm002952jsd", + "name" : "getStudentRow" + }, + "acm002953jsd" : { + "type" : "ControlElement", + "id" : "acm002953jsd", + "name" : "clickViewStudent" + }, + "acm002954jsd" : { + "type" : "ControlElement", + "id" : "acm002954jsd", + "name" : "clickEditStudent" + }, + "acm002955jsd" : { + "type" : "ControlElement", + "id" : "acm002955jsd", + "name" : "clickViewAllRecords" + }, + "acm002956jsd" : { + "type" : "ClassUnit", + "id" : "acm002956jsd", + "name" : "InstructorCourseDetailsPage", + "compilationUnitId" : "acm002929jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm003069jsd", "acm003079jsd", "acm003627jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm002933jsd", "acm002934jsd", "acm002935jsd", "acm002936jsd", "acm002937jsd", "acm002938jsd", "acm002939jsd", "acm002940jsd", "acm002941jsd", "acm002942jsd", "acm002943jsd", "acm002944jsd", "acm002945jsd", "acm002946jsd", "acm002947jsd", "acm002948jsd", "acm002949jsd", "acm002950jsd", "acm002951jsd", "acm002952jsd", "acm002953jsd", "acm002954jsd", "acm002955jsd" ] + }, + "acm002957jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002957jsd", + "name" : "InstructorCourseEditPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003039jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002958jsd" : { + "type" : "CodePackage", + "id" : "acm002958jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm002959jsd" ] + }, + "acm002959jsd" : { + "type" : "CodePackage", + "id" : "acm002959jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm002960jsd" ] + }, + "acm002960jsd" : { + "type" : "CodePackage", + "id" : "acm002960jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm002957jsd" ] + }, + "acm002961jsd" : { + "type" : "ControlElement", + "id" : "acm002961jsd", + "name" : "InstructorCourseEditPage" + }, + "acm002962jsd" : { + "type" : "ControlElement", + "id" : "acm002962jsd", + "name" : "containsExpectedPageContents" + }, + "acm002963jsd" : { + "type" : "ControlElement", + "id" : "acm002963jsd", + "name" : "verifyCourseDetails" + }, + "acm002964jsd" : { + "type" : "ControlElement", + "id" : "acm002964jsd", + "name" : "verifyInstructorDetails" + }, + "acm002965jsd" : { + "type" : "ControlElement", + "id" : "acm002965jsd", + "name" : "verifyCustomPrivileges" + }, + "acm002966jsd" : { + "type" : "ControlElement", + "id" : "acm002966jsd", + "name" : "verifyCourseLevelPrivileges" + }, + "acm002967jsd" : { + "type" : "ControlElement", + "id" : "acm002967jsd", + "name" : "verifySectionLevelPrivileges" + }, + "acm002968jsd" : { + "type" : "ControlElement", + "id" : "acm002968jsd", + "name" : "verifySessionLevelPrivileges" + }, + "acm002969jsd" : { + "type" : "ControlElement", + "id" : "acm002969jsd", + "name" : "verifyCourseNotEditable" + }, + "acm002970jsd" : { + "type" : "ControlElement", + "id" : "acm002970jsd", + "name" : "verifyInstructorsNotEditable" + }, + "acm002971jsd" : { + "type" : "ControlElement", + "id" : "acm002971jsd", + "name" : "verifyAddInstructorNotAllowed" + }, + "acm002972jsd" : { + "type" : "ControlElement", + "id" : "acm002972jsd", + "name" : "verifyCopyInstructorsNotAllowed" + }, + "acm002973jsd" : { + "type" : "ControlElement", + "id" : "acm002973jsd", + "name" : "verifyNumInstructorsEquals" + }, + "acm002974jsd" : { + "type" : "ControlElement", + "id" : "acm002974jsd", + "name" : "editCourse" + }, + "acm002975jsd" : { + "type" : "ControlElement", + "id" : "acm002975jsd", + "name" : "deleteCourse" + }, + "acm002976jsd" : { + "type" : "ControlElement", + "id" : "acm002976jsd", + "name" : "addInstructor" + }, + "acm002977jsd" : { + "type" : "ControlElement", + "id" : "acm002977jsd", + "name" : "copyInstructors" + }, + "acm002978jsd" : { + "type" : "ControlElement", + "id" : "acm002978jsd", + "name" : "verifyCopyInstructorWithExistingEmailNotAllowed" + }, + "acm002979jsd" : { + "type" : "ControlElement", + "id" : "acm002979jsd", + "name" : "resendInstructorInvite" + }, + "acm002980jsd" : { + "type" : "ControlElement", + "id" : "acm002980jsd", + "name" : "deleteInstructor" + }, + "acm002981jsd" : { + "type" : "ControlElement", + "id" : "acm002981jsd", + "name" : "editInstructor" + }, + "acm002982jsd" : { + "type" : "ControlElement", + "id" : "acm002982jsd", + "name" : "toggleCustomCourseLevelPrivilege" + }, + "acm002983jsd" : { + "type" : "ControlElement", + "id" : "acm002983jsd", + "name" : "toggleCustomSectionLevelPrivilege" + }, + "acm002984jsd" : { + "type" : "ControlElement", + "id" : "acm002984jsd", + "name" : "toggleCustomSessionLevelPrivilege" + }, + "acm002985jsd" : { + "type" : "ControlElement", + "id" : "acm002985jsd", + "name" : "getNumInstructors" + }, + "acm002986jsd" : { + "type" : "ControlElement", + "id" : "acm002986jsd", + "name" : "clickEditCourseButton" + }, + "acm002987jsd" : { + "type" : "ControlElement", + "id" : "acm002987jsd", + "name" : "clickSaveCourseButton" + }, + "acm002988jsd" : { + "type" : "ControlElement", + "id" : "acm002988jsd", + "name" : "selectNewTimeZone" + }, + "acm002989jsd" : { + "type" : "ControlElement", + "id" : "acm002989jsd", + "name" : "clickAddNewInstructorButton" + }, + "acm002990jsd" : { + "type" : "ControlElement", + "id" : "acm002990jsd", + "name" : "clickCopyInstructorsButton" + }, + "acm002991jsd" : { + "type" : "ControlElement", + "id" : "acm002991jsd", + "name" : "clickEditInstructorButton" + }, + "acm002992jsd" : { + "type" : "ControlElement", + "id" : "acm002992jsd", + "name" : "clickCancelInstructorButton" + }, + "acm002993jsd" : { + "type" : "ControlElement", + "id" : "acm002993jsd", + "name" : "clickSaveInstructorButton" + }, + "acm002994jsd" : { + "type" : "ControlElement", + "id" : "acm002994jsd", + "name" : "clickAddSectionPrivilegeLink" + }, + "acm002995jsd" : { + "type" : "ControlElement", + "id" : "acm002995jsd", + "name" : "clickAddSessionPrivilegeLink" + }, + "acm002996jsd" : { + "type" : "ControlElement", + "id" : "acm002996jsd", + "name" : "getCourseId" + }, + "acm002997jsd" : { + "type" : "ControlElement", + "id" : "acm002997jsd", + "name" : "getCourseName" + }, + "acm002998jsd" : { + "type" : "ControlElement", + "id" : "acm002998jsd", + "name" : "getCourseInstitute" + }, + "acm002999jsd" : { + "type" : "ControlElement", + "id" : "acm002999jsd", + "name" : "getTimeZone" + }, + "acm003000jsd" : { + "type" : "ControlElement", + "id" : "acm003000jsd", + "name" : "getEditInstructorButton" + }, + "acm003001jsd" : { + "type" : "ControlElement", + "id" : "acm003001jsd", + "name" : "getInviteInstructorButton" + }, + "acm003002jsd" : { + "type" : "ControlElement", + "id" : "acm003002jsd", + "name" : "getDeleteInstructorButton" + }, + "acm003003jsd" : { + "type" : "ControlElement", + "id" : "acm003003jsd", + "name" : "getCancelInstructorButton" + }, + "acm003004jsd" : { + "type" : "ControlElement", + "id" : "acm003004jsd", + "name" : "getSaveInstructorButton" + }, + "acm003005jsd" : { + "type" : "ControlElement", + "id" : "acm003005jsd", + "name" : "getNameField" + }, + "acm003006jsd" : { + "type" : "ControlElement", + "id" : "acm003006jsd", + "name" : "getEmailField" + }, + "acm003007jsd" : { + "type" : "ControlElement", + "id" : "acm003007jsd", + "name" : "getDisplayedToStudentCheckBox" + }, + "acm003008jsd" : { + "type" : "ControlElement", + "id" : "acm003008jsd", + "name" : "getDisplayNameField" + }, + "acm003009jsd" : { + "type" : "ControlElement", + "id" : "acm003009jsd", + "name" : "getInstructorGoogleId" + }, + "acm003010jsd" : { + "type" : "ControlElement", + "id" : "acm003010jsd", + "name" : "getInstructorName" + }, + "acm003011jsd" : { + "type" : "ControlElement", + "id" : "acm003011jsd", + "name" : "getInstructorEmail" + }, + "acm003012jsd" : { + "type" : "ControlElement", + "id" : "acm003012jsd", + "name" : "getInstructorDisplayedToStudents" + }, + "acm003013jsd" : { + "type" : "ControlElement", + "id" : "acm003013jsd", + "name" : "getInstructorDisplayName" + }, + "acm003014jsd" : { + "type" : "ControlElement", + "id" : "acm003014jsd", + "name" : "getInstructorRole" + }, + "acm003015jsd" : { + "type" : "ControlElement", + "id" : "acm003015jsd", + "name" : "getAccessLevels" + }, + "acm003016jsd" : { + "type" : "ControlElement", + "id" : "acm003016jsd", + "name" : "getAccessLevelsRadioButton" + }, + "acm003017jsd" : { + "type" : "ControlElement", + "id" : "acm003017jsd", + "name" : "selectRoleForInstructor" + }, + "acm003018jsd" : { + "type" : "ControlElement", + "id" : "acm003018jsd", + "name" : "getCourseLevelPanel" + }, + "acm003019jsd" : { + "type" : "ControlElement", + "id" : "acm003019jsd", + "name" : "getCourseLevelPanelCheckBoxes" + }, + "acm003020jsd" : { + "type" : "ControlElement", + "id" : "acm003020jsd", + "name" : "getCourseLevelPanelCheckBox" + }, + "acm003021jsd" : { + "type" : "ControlElement", + "id" : "acm003021jsd", + "name" : "getAddSectionLevelPrivilegesLink" + }, + "acm003022jsd" : { + "type" : "ControlElement", + "id" : "acm003022jsd", + "name" : "getAddSessionLevelPrivilegesLink" + }, + "acm003023jsd" : { + "type" : "ControlElement", + "id" : "acm003023jsd", + "name" : "getSectionSelections" + }, + "acm003024jsd" : { + "type" : "ControlElement", + "id" : "acm003024jsd", + "name" : "getSectionLevelPanelBody" + }, + "acm003025jsd" : { + "type" : "ControlElement", + "id" : "acm003025jsd", + "name" : "getNumSectionLevelPanels" + }, + "acm003026jsd" : { + "type" : "ControlElement", + "id" : "acm003026jsd", + "name" : "getSectionLevelPanelNumWithSectionSelected" + }, + "acm003027jsd" : { + "type" : "ControlElement", + "id" : "acm003027jsd", + "name" : "getSectionSelectionCheckBox" + }, + "acm003028jsd" : { + "type" : "ControlElement", + "id" : "acm003028jsd", + "name" : "getSectionLevelCheckBox" + }, + "acm003029jsd" : { + "type" : "ControlElement", + "id" : "acm003029jsd", + "name" : "getSessionLevelTable" + }, + "acm003030jsd" : { + "type" : "ControlElement", + "id" : "acm003030jsd", + "name" : "getSessionLevelTableRow" + }, + "acm003031jsd" : { + "type" : "ControlElement", + "id" : "acm003031jsd", + "name" : "getSessionLevelCheckbox" + }, + "acm003032jsd" : { + "type" : "ControlElement", + "id" : "acm003032jsd", + "name" : "getRoleIndex" + }, + "acm003033jsd" : { + "type" : "ControlElement", + "id" : "acm003033jsd", + "name" : "getCourseLevelPrivilegeIndex" + }, + "acm003034jsd" : { + "type" : "ControlElement", + "id" : "acm003034jsd", + "name" : "getSectionLevelPrivilegeIndex" + }, + "acm003035jsd" : { + "type" : "ControlElement", + "id" : "acm003035jsd", + "name" : "getSessionLevelPrivilegeIndex" + }, + "acm003036jsd" : { + "type" : "ControlElement", + "id" : "acm003036jsd", + "name" : "getIntrNum" + }, + "acm003037jsd" : { + "type" : "ControlElement", + "id" : "acm003037jsd", + "name" : "getSectionIndex" + }, + "acm003038jsd" : { + "type" : "ControlElement", + "id" : "acm003038jsd", + "name" : "getSessionIndex" + }, + "acm003039jsd" : { + "type" : "ClassUnit", + "id" : "acm003039jsd", + "name" : "InstructorCourseEditPage", + "compilationUnitId" : "acm002957jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004286jsd", "acm004332jsd", "acm004598jsd", "acm005233jsd" ], + "content" : [ "acm002961jsd", "acm002962jsd", "acm002963jsd", "acm002964jsd", "acm002965jsd", "acm002966jsd", "acm002967jsd", "acm002968jsd", "acm002969jsd", "acm002970jsd", "acm002971jsd", "acm002972jsd", "acm002973jsd", "acm002974jsd", "acm002975jsd", "acm002976jsd", "acm002977jsd", "acm002978jsd", "acm002979jsd", "acm002980jsd", "acm002981jsd", "acm002982jsd", "acm002983jsd", "acm002984jsd", "acm002985jsd", "acm002986jsd", "acm002987jsd", "acm002988jsd", "acm002989jsd", "acm002990jsd", "acm002991jsd", "acm002992jsd", "acm002993jsd", "acm002994jsd", "acm002995jsd", "acm002996jsd", "acm002997jsd", "acm002998jsd", "acm002999jsd", "acm003000jsd", "acm003001jsd", "acm003002jsd", "acm003003jsd", "acm003004jsd", "acm003005jsd", "acm003006jsd", "acm003007jsd", "acm003008jsd", "acm003009jsd", "acm003010jsd", "acm003011jsd", "acm003012jsd", "acm003013jsd", "acm003014jsd", "acm003015jsd", "acm003016jsd", "acm003017jsd", "acm003018jsd", "acm003019jsd", "acm003020jsd", "acm003021jsd", "acm003022jsd", "acm003023jsd", "acm003024jsd", "acm003025jsd", "acm003026jsd", "acm003027jsd", "acm003028jsd", "acm003029jsd", "acm003030jsd", "acm003031jsd", "acm003032jsd", "acm003033jsd", "acm003034jsd", "acm003035jsd", "acm003036jsd", "acm003037jsd", "acm003038jsd" ] + }, + "acm003040jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003040jsd", + "name" : "InstructorCourseEnrollPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003058jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003041jsd" : { + "type" : "CodePackage", + "id" : "acm003041jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003042jsd" ] + }, + "acm003042jsd" : { + "type" : "CodePackage", + "id" : "acm003042jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003043jsd" ] + }, + "acm003043jsd" : { + "type" : "CodePackage", + "id" : "acm003043jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003040jsd" ] + }, + "acm003044jsd" : { + "type" : "ControlElement", + "id" : "acm003044jsd", + "name" : "InstructorCourseEnrollPage" + }, + "acm003045jsd" : { + "type" : "ControlElement", + "id" : "acm003045jsd", + "name" : "containsExpectedPageContents" + }, + "acm003046jsd" : { + "type" : "ControlElement", + "id" : "acm003046jsd", + "name" : "verifyIsCorrectPage" + }, + "acm003047jsd" : { + "type" : "ControlElement", + "id" : "acm003047jsd", + "name" : "clickToggleExistingStudentsHeader" + }, + "acm003048jsd" : { + "type" : "ControlElement", + "id" : "acm003048jsd", + "name" : "clickEnrollButton" + }, + "acm003049jsd" : { + "type" : "ControlElement", + "id" : "acm003049jsd", + "name" : "clickAddButton" + }, + "acm003050jsd" : { + "type" : "ControlElement", + "id" : "acm003050jsd", + "name" : "addEnrollSpreadsheetRows" + }, + "acm003051jsd" : { + "type" : "ControlElement", + "id" : "acm003051jsd", + "name" : "verifyNumAddedEnrollSpreadsheetRows" + }, + "acm003052jsd" : { + "type" : "ControlElement", + "id" : "acm003052jsd", + "name" : "enroll" + }, + "acm003053jsd" : { + "type" : "ControlElement", + "id" : "acm003053jsd", + "name" : "verifyExistingStudentsTableContains" + }, + "acm003054jsd" : { + "type" : "ControlElement", + "id" : "acm003054jsd", + "name" : "verifyResultsPanelContains" + }, + "acm003055jsd" : { + "type" : "ControlElement", + "id" : "acm003055jsd", + "name" : "fillEnrollSpreadsheet" + }, + "acm003056jsd" : { + "type" : "ControlElement", + "id" : "acm003056jsd", + "name" : "getEnrollSpreadsheetFirstCell" + }, + "acm003057jsd" : { + "type" : "ControlElement", + "id" : "acm003057jsd", + "name" : "getEnrollmentData" + }, + "acm003058jsd" : { + "type" : "ClassUnit", + "id" : "acm003058jsd", + "name" : "InstructorCourseEnrollPage", + "compilationUnitId" : "acm003040jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm005412jsd" ], + "content" : [ "acm003044jsd", "acm003045jsd", "acm003046jsd", "acm003047jsd", "acm003048jsd", "acm003049jsd", "acm003050jsd", "acm003051jsd", "acm003052jsd", "acm003053jsd", "acm003054jsd", "acm003055jsd", "acm003056jsd", "acm003057jsd" ] + }, + "acm003059jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003059jsd", + "name" : "InstructorCourseStudentDetailsEditPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003069jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003060jsd" : { + "type" : "CodePackage", + "id" : "acm003060jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003061jsd" ] + }, + "acm003061jsd" : { + "type" : "CodePackage", + "id" : "acm003061jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003062jsd" ] + }, + "acm003062jsd" : { + "type" : "CodePackage", + "id" : "acm003062jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003059jsd" ] + }, + "acm003063jsd" : { + "type" : "ControlElement", + "id" : "acm003063jsd", + "name" : "InstructorCourseStudentDetailsEditPage" + }, + "acm003064jsd" : { + "type" : "ControlElement", + "id" : "acm003064jsd", + "name" : "containsExpectedPageContents" + }, + "acm003065jsd" : { + "type" : "ControlElement", + "id" : "acm003065jsd", + "name" : "verifyIsCorrectPage" + }, + "acm003066jsd" : { + "type" : "ControlElement", + "id" : "acm003066jsd", + "name" : "verifyStudentDetails" + }, + "acm003067jsd" : { + "type" : "ControlElement", + "id" : "acm003067jsd", + "name" : "editStudentDetails" + }, + "acm003068jsd" : { + "type" : "ControlElement", + "id" : "acm003068jsd", + "name" : "editStudentEmailAndResendLinks" + }, + "acm003069jsd" : { + "type" : "ClassUnit", + "id" : "acm003069jsd", + "name" : "InstructorCourseStudentDetailsEditPage", + "compilationUnitId" : "acm003059jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm005412jsd" ], + "content" : [ "acm003063jsd", "acm003064jsd", "acm003065jsd", "acm003066jsd", "acm003067jsd", "acm003068jsd" ] + }, + "acm003070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003070jsd", + "name" : "InstructorCourseStudentDetailsViewPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003079jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003071jsd" : { + "type" : "CodePackage", + "id" : "acm003071jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003072jsd" ] + }, + "acm003072jsd" : { + "type" : "CodePackage", + "id" : "acm003072jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003073jsd" ] + }, + "acm003073jsd" : { + "type" : "CodePackage", + "id" : "acm003073jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003070jsd" ] + }, + "acm003074jsd" : { + "type" : "ControlElement", + "id" : "acm003074jsd", + "name" : "InstructorCourseStudentDetailsViewPage" + }, + "acm003075jsd" : { + "type" : "ControlElement", + "id" : "acm003075jsd", + "name" : "containsExpectedPageContents" + }, + "acm003076jsd" : { + "type" : "ControlElement", + "id" : "acm003076jsd", + "name" : "verifyIsCorrectPage" + }, + "acm003077jsd" : { + "type" : "ControlElement", + "id" : "acm003077jsd", + "name" : "verifyStudentDetails" + }, + "acm003078jsd" : { + "type" : "ControlElement", + "id" : "acm003078jsd", + "name" : "verifyDetail" + }, + "acm003079jsd" : { + "type" : "ClassUnit", + "id" : "acm003079jsd", + "name" : "InstructorCourseStudentDetailsViewPage", + "compilationUnitId" : "acm003070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm005412jsd" ], + "content" : [ "acm003074jsd", "acm003075jsd", "acm003076jsd", "acm003077jsd", "acm003078jsd" ] + }, + "acm003080jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003080jsd", + "name" : "InstructorCoursesPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003150jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003081jsd" : { + "type" : "CodePackage", + "id" : "acm003081jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003082jsd" ] + }, + "acm003082jsd" : { + "type" : "CodePackage", + "id" : "acm003082jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003083jsd" ] + }, + "acm003083jsd" : { + "type" : "CodePackage", + "id" : "acm003083jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003080jsd" ] + }, + "acm003084jsd" : { + "type" : "ControlElement", + "id" : "acm003084jsd", + "name" : "InstructorCoursesPage" + }, + "acm003085jsd" : { + "type" : "ControlElement", + "id" : "acm003085jsd", + "name" : "containsExpectedPageContents" + }, + "acm003086jsd" : { + "type" : "ControlElement", + "id" : "acm003086jsd", + "name" : "getActiveCoursesTable" + }, + "acm003087jsd" : { + "type" : "ControlElement", + "id" : "acm003087jsd", + "name" : "getArchivedCoursesTable" + }, + "acm003088jsd" : { + "type" : "ControlElement", + "id" : "acm003088jsd", + "name" : "getDeletedCoursesTable" + }, + "acm003089jsd" : { + "type" : "ControlElement", + "id" : "acm003089jsd", + "name" : "verifyActiveCoursesDetails" + }, + "acm003090jsd" : { + "type" : "ControlElement", + "id" : "acm003090jsd", + "name" : "verifyActiveCourseStatistics" + }, + "acm003091jsd" : { + "type" : "ControlElement", + "id" : "acm003091jsd", + "name" : "verifyArchivedCoursesDetails" + }, + "acm003092jsd" : { + "type" : "ControlElement", + "id" : "acm003092jsd", + "name" : "verifyDeletedCoursesDetails" + }, + "acm003093jsd" : { + "type" : "ControlElement", + "id" : "acm003093jsd", + "name" : "verifyNotModifiable" + }, + "acm003094jsd" : { + "type" : "ControlElement", + "id" : "acm003094jsd", + "name" : "verifyNumActiveCourses" + }, + "acm003095jsd" : { + "type" : "ControlElement", + "id" : "acm003095jsd", + "name" : "verifyNumArchivedCourses" + }, + "acm003096jsd" : { + "type" : "ControlElement", + "id" : "acm003096jsd", + "name" : "verifyNumDeletedCourses" + }, + "acm003097jsd" : { + "type" : "ControlElement", + "id" : "acm003097jsd", + "name" : "addCourse" + }, + "acm003098jsd" : { + "type" : "ControlElement", + "id" : "acm003098jsd", + "name" : "showStatistics" + }, + "acm003099jsd" : { + "type" : "ControlElement", + "id" : "acm003099jsd", + "name" : "archiveCourse" + }, + "acm003100jsd" : { + "type" : "ControlElement", + "id" : "acm003100jsd", + "name" : "copyCourse" + }, + "acm003101jsd" : { + "type" : "ControlElement", + "id" : "acm003101jsd", + "name" : "moveCourseToRecycleBin" + }, + "acm003102jsd" : { + "type" : "ControlElement", + "id" : "acm003102jsd", + "name" : "unarchiveCourse" + }, + "acm003103jsd" : { + "type" : "ControlElement", + "id" : "acm003103jsd", + "name" : "moveArchivedCourseToRecycleBin" + }, + "acm003104jsd" : { + "type" : "ControlElement", + "id" : "acm003104jsd", + "name" : "showDeleteTable" + }, + "acm003105jsd" : { + "type" : "ControlElement", + "id" : "acm003105jsd", + "name" : "showArchiveTable" + }, + "acm003106jsd" : { + "type" : "ControlElement", + "id" : "acm003106jsd", + "name" : "restoreCourse" + }, + "acm003107jsd" : { + "type" : "ControlElement", + "id" : "acm003107jsd", + "name" : "deleteCourse" + }, + "acm003108jsd" : { + "type" : "ControlElement", + "id" : "acm003108jsd", + "name" : "restoreAllCourses" + }, + "acm003109jsd" : { + "type" : "ControlElement", + "id" : "acm003109jsd", + "name" : "deleteAllCourses" + }, + "acm003110jsd" : { + "type" : "ControlElement", + "id" : "acm003110jsd", + "name" : "sortByCourseName" + }, + "acm003111jsd" : { + "type" : "ControlElement", + "id" : "acm003111jsd", + "name" : "sortByCourseId" + }, + "acm003112jsd" : { + "type" : "ControlElement", + "id" : "acm003112jsd", + "name" : "getActiveTableRow" + }, + "acm003113jsd" : { + "type" : "ControlElement", + "id" : "acm003113jsd", + "name" : "getArchivedTableRow" + }, + "acm003114jsd" : { + "type" : "ControlElement", + "id" : "acm003114jsd", + "name" : "getDeletedTableRow" + }, + "acm003115jsd" : { + "type" : "ControlElement", + "id" : "acm003115jsd", + "name" : "getCourseDetails" + }, + "acm003116jsd" : { + "type" : "ControlElement", + "id" : "acm003116jsd", + "name" : "getDateString" + }, + "acm003117jsd" : { + "type" : "ControlElement", + "id" : "acm003117jsd", + "name" : "getDeletedCourseDetails" + }, + "acm003118jsd" : { + "type" : "ControlElement", + "id" : "acm003118jsd", + "name" : "getRestoreAllButton" + }, + "acm003119jsd" : { + "type" : "ControlElement", + "id" : "acm003119jsd", + "name" : "getDeleteAllButton" + }, + "acm003120jsd" : { + "type" : "ControlElement", + "id" : "acm003120jsd", + "name" : "selectCourseInstitute" + }, + "acm003121jsd" : { + "type" : "ControlElement", + "id" : "acm003121jsd", + "name" : "selectNewTimeZone" + }, + "acm003122jsd" : { + "type" : "ControlElement", + "id" : "acm003122jsd", + "name" : "selectCopyTimeZone" + }, + "acm003123jsd" : { + "type" : "ControlElement", + "id" : "acm003123jsd", + "name" : "getShowStatisticsLink" + }, + "acm003124jsd" : { + "type" : "ControlElement", + "id" : "acm003124jsd", + "name" : "getOtherActionsButton" + }, + "acm003125jsd" : { + "type" : "ControlElement", + "id" : "acm003125jsd", + "name" : "getArchiveButton" + }, + "acm003126jsd" : { + "type" : "ControlElement", + "id" : "acm003126jsd", + "name" : "getCopyButton" + }, + "acm003127jsd" : { + "type" : "ControlElement", + "id" : "acm003127jsd", + "name" : "getMoveToRecycleBinButton" + }, + "acm003128jsd" : { + "type" : "ControlElement", + "id" : "acm003128jsd", + "name" : "getUnarchiveButton" + }, + "acm003129jsd" : { + "type" : "ControlElement", + "id" : "acm003129jsd", + "name" : "getMoveArchivedToRecycleBinButton" + }, + "acm003130jsd" : { + "type" : "ControlElement", + "id" : "acm003130jsd", + "name" : "getRestoreButton" + }, + "acm003131jsd" : { + "type" : "ControlElement", + "id" : "acm003131jsd", + "name" : "getDeleteButton" + }, + "acm003132jsd" : { + "type" : "ControlElement", + "id" : "acm003132jsd", + "name" : "getCourseCount" + }, + "acm003133jsd" : { + "type" : "ControlElement", + "id" : "acm003133jsd", + "name" : "getArchivedCourseCount" + }, + "acm003134jsd" : { + "type" : "ControlElement", + "id" : "acm003134jsd", + "name" : "getDeletedCourseCount" + }, + "acm003135jsd" : { + "type" : "ControlElement", + "id" : "acm003135jsd", + "name" : "getRowNumberOfCourse" + }, + "acm003136jsd" : { + "type" : "ControlElement", + "id" : "acm003136jsd", + "name" : "getRowNumberOfArchivedCourse" + }, + "acm003137jsd" : { + "type" : "ControlElement", + "id" : "acm003137jsd", + "name" : "getRowNumberOfDeletedCourse" + }, + "acm003138jsd" : { + "type" : "ControlElement", + "id" : "acm003138jsd", + "name" : "getCourseIdCell" + }, + "acm003139jsd" : { + "type" : "ControlElement", + "id" : "acm003139jsd", + "name" : "getArchivedCourseIdCell" + }, + "acm003140jsd" : { + "type" : "ControlElement", + "id" : "acm003140jsd", + "name" : "getDeletedCourseIdCell" + }, + "acm003141jsd" : { + "type" : "ControlElement", + "id" : "acm003141jsd", + "name" : "getShowStatisticsLinkInRow" + }, + "acm003142jsd" : { + "type" : "ControlElement", + "id" : "acm003142jsd", + "name" : "getOtherActionsButtonInRow" + }, + "acm003143jsd" : { + "type" : "ControlElement", + "id" : "acm003143jsd", + "name" : "getArchiveButtonInRow" + }, + "acm003144jsd" : { + "type" : "ControlElement", + "id" : "acm003144jsd", + "name" : "getCopyButtonInRow" + }, + "acm003145jsd" : { + "type" : "ControlElement", + "id" : "acm003145jsd", + "name" : "getMoveToRecycleBinButtonInRow" + }, + "acm003146jsd" : { + "type" : "ControlElement", + "id" : "acm003146jsd", + "name" : "getUnarchiveButtonInRow" + }, + "acm003147jsd" : { + "type" : "ControlElement", + "id" : "acm003147jsd", + "name" : "getMoveArchivedToRecycleBinButtonInRow" + }, + "acm003148jsd" : { + "type" : "ControlElement", + "id" : "acm003148jsd", + "name" : "getRestoreButtonInRow" + }, + "acm003149jsd" : { + "type" : "ControlElement", + "id" : "acm003149jsd", + "name" : "getDeleteButtonInRow" + }, + "acm003150jsd" : { + "type" : "ClassUnit", + "id" : "acm003150jsd", + "name" : "InstructorCoursesPage", + "compilationUnitId" : "acm003080jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004598jsd" ], + "content" : [ "acm003084jsd", "acm003085jsd", "acm003086jsd", "acm003087jsd", "acm003088jsd", "acm003089jsd", "acm003090jsd", "acm003091jsd", "acm003092jsd", "acm003093jsd", "acm003094jsd", "acm003095jsd", "acm003096jsd", "acm003097jsd", "acm003098jsd", "acm003099jsd", "acm003100jsd", "acm003101jsd", "acm003102jsd", "acm003103jsd", "acm003104jsd", "acm003105jsd", "acm003106jsd", "acm003107jsd", "acm003108jsd", "acm003109jsd", "acm003110jsd", "acm003111jsd", "acm003112jsd", "acm003113jsd", "acm003114jsd", "acm003115jsd", "acm003116jsd", "acm003117jsd", "acm003118jsd", "acm003119jsd", "acm003120jsd", "acm003121jsd", "acm003122jsd", "acm003123jsd", "acm003124jsd", "acm003125jsd", "acm003126jsd", "acm003127jsd", "acm003128jsd", "acm003129jsd", "acm003130jsd", "acm003131jsd", "acm003132jsd", "acm003133jsd", "acm003134jsd", "acm003135jsd", "acm003136jsd", "acm003137jsd", "acm003138jsd", "acm003139jsd", "acm003140jsd", "acm003141jsd", "acm003142jsd", "acm003143jsd", "acm003144jsd", "acm003145jsd", "acm003146jsd", "acm003147jsd", "acm003148jsd", "acm003149jsd" ] + }, + "acm003151jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003151jsd", + "name" : "InstructorFeedbackEditPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003320jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003152jsd" : { + "type" : "CodePackage", + "id" : "acm003152jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003153jsd" ] + }, + "acm003153jsd" : { + "type" : "CodePackage", + "id" : "acm003153jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003154jsd" ] + }, + "acm003154jsd" : { + "type" : "CodePackage", + "id" : "acm003154jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003151jsd" ] + }, + "acm003155jsd" : { + "type" : "ControlElement", + "id" : "acm003155jsd", + "name" : "InstructorFeedbackEditPage" + }, + "acm003156jsd" : { + "type" : "ControlElement", + "id" : "acm003156jsd", + "name" : "containsExpectedPageContents" + }, + "acm003157jsd" : { + "type" : "ControlElement", + "id" : "acm003157jsd", + "name" : "verifySessionDetails" + }, + "acm003158jsd" : { + "type" : "ControlElement", + "id" : "acm003158jsd", + "name" : "verifySubmissionStatus" + }, + "acm003159jsd" : { + "type" : "ControlElement", + "id" : "acm003159jsd", + "name" : "verifyPublishedStatus" + }, + "acm003160jsd" : { + "type" : "ControlElement", + "id" : "acm003160jsd", + "name" : "verifyVisibilitySettings" + }, + "acm003161jsd" : { + "type" : "ControlElement", + "id" : "acm003161jsd", + "name" : "verifySessionVisibilitySettings" + }, + "acm003162jsd" : { + "type" : "ControlElement", + "id" : "acm003162jsd", + "name" : "verifyResponseVisibilitySettings" + }, + "acm003163jsd" : { + "type" : "ControlElement", + "id" : "acm003163jsd", + "name" : "verifyEmailSettings" + }, + "acm003164jsd" : { + "type" : "ControlElement", + "id" : "acm003164jsd", + "name" : "editSessionDetails" + }, + "acm003165jsd" : { + "type" : "ControlElement", + "id" : "acm003165jsd", + "name" : "copySessionToOtherCourse" + }, + "acm003166jsd" : { + "type" : "ControlElement", + "id" : "acm003166jsd", + "name" : "deleteSession" + }, + "acm003167jsd" : { + "type" : "ControlElement", + "id" : "acm003167jsd", + "name" : "previewAsStudent" + }, + "acm003168jsd" : { + "type" : "ControlElement", + "id" : "acm003168jsd", + "name" : "previewAsInstructor" + }, + "acm003169jsd" : { + "type" : "ControlElement", + "id" : "acm003169jsd", + "name" : "verifyNumQuestions" + }, + "acm003170jsd" : { + "type" : "ControlElement", + "id" : "acm003170jsd", + "name" : "verifyQuestionDetails" + }, + "acm003171jsd" : { + "type" : "ControlElement", + "id" : "acm003171jsd", + "name" : "verifyFeedbackPathSettings" + }, + "acm003172jsd" : { + "type" : "ControlElement", + "id" : "acm003172jsd", + "name" : "verifyNumberOfEntitiesToGiveFeedbackTo" + }, + "acm003173jsd" : { + "type" : "ControlElement", + "id" : "acm003173jsd", + "name" : "verifyQuestionVisibilitySettings" + }, + "acm003174jsd" : { + "type" : "ControlElement", + "id" : "acm003174jsd", + "name" : "verifyCustomQuestionVisibility" + }, + "acm003175jsd" : { + "type" : "ControlElement", + "id" : "acm003175jsd", + "name" : "assertVisibilityBoxesSelected" + }, + "acm003176jsd" : { + "type" : "ControlElement", + "id" : "acm003176jsd", + "name" : "addTemplateQuestion" + }, + "acm003177jsd" : { + "type" : "ControlElement", + "id" : "acm003177jsd", + "name" : "copyQuestion" + }, + "acm003178jsd" : { + "type" : "ControlElement", + "id" : "acm003178jsd", + "name" : "editQuestionNumber" + }, + "acm003179jsd" : { + "type" : "ControlElement", + "id" : "acm003179jsd", + "name" : "editQuestionDetails" + }, + "acm003180jsd" : { + "type" : "ControlElement", + "id" : "acm003180jsd", + "name" : "inputQuestionDetails" + }, + "acm003181jsd" : { + "type" : "ControlElement", + "id" : "acm003181jsd", + "name" : "duplicateQuestion" + }, + "acm003182jsd" : { + "type" : "ControlElement", + "id" : "acm003182jsd", + "name" : "deleteQuestion" + }, + "acm003183jsd" : { + "type" : "ControlElement", + "id" : "acm003183jsd", + "name" : "verifyTextQuestionDetails" + }, + "acm003184jsd" : { + "type" : "ControlElement", + "id" : "acm003184jsd", + "name" : "addTextQuestion" + }, + "acm003185jsd" : { + "type" : "ControlElement", + "id" : "acm003185jsd", + "name" : "editTextQuestion" + }, + "acm003186jsd" : { + "type" : "ControlElement", + "id" : "acm003186jsd", + "name" : "verifyMcqQuestionDetails" + }, + "acm003187jsd" : { + "type" : "ControlElement", + "id" : "acm003187jsd", + "name" : "addMcqQuestion" + }, + "acm003188jsd" : { + "type" : "ControlElement", + "id" : "acm003188jsd", + "name" : "editMcqQuestion" + }, + "acm003189jsd" : { + "type" : "ControlElement", + "id" : "acm003189jsd", + "name" : "verifyMsqQuestionDetails" + }, + "acm003190jsd" : { + "type" : "ControlElement", + "id" : "acm003190jsd", + "name" : "addMsqQuestion" + }, + "acm003191jsd" : { + "type" : "ControlElement", + "id" : "acm003191jsd", + "name" : "editMsqQuestion" + }, + "acm003192jsd" : { + "type" : "ControlElement", + "id" : "acm003192jsd", + "name" : "verifyNumScaleQuestionDetails" + }, + "acm003193jsd" : { + "type" : "ControlElement", + "id" : "acm003193jsd", + "name" : "addNumScaleQuestion" + }, + "acm003194jsd" : { + "type" : "ControlElement", + "id" : "acm003194jsd", + "name" : "editNumScaleQuestion" + }, + "acm003195jsd" : { + "type" : "ControlElement", + "id" : "acm003195jsd", + "name" : "verifyConstSumQuestionDetails" + }, + "acm003196jsd" : { + "type" : "ControlElement", + "id" : "acm003196jsd", + "name" : "addConstSumOptionQuestion" + }, + "acm003197jsd" : { + "type" : "ControlElement", + "id" : "acm003197jsd", + "name" : "addConstSumRecipientQuestion" + }, + "acm003198jsd" : { + "type" : "ControlElement", + "id" : "acm003198jsd", + "name" : "addConstSumQuestion" + }, + "acm003199jsd" : { + "type" : "ControlElement", + "id" : "acm003199jsd", + "name" : "editConstSumQuestion" + }, + "acm003200jsd" : { + "type" : "ControlElement", + "id" : "acm003200jsd", + "name" : "verifyContributionQuestionDetails" + }, + "acm003201jsd" : { + "type" : "ControlElement", + "id" : "acm003201jsd", + "name" : "addContributionQuestion" + }, + "acm003202jsd" : { + "type" : "ControlElement", + "id" : "acm003202jsd", + "name" : "editContributionQuestion" + }, + "acm003203jsd" : { + "type" : "ControlElement", + "id" : "acm003203jsd", + "name" : "verifyRubricQuestionDetails" + }, + "acm003204jsd" : { + "type" : "ControlElement", + "id" : "acm003204jsd", + "name" : "addRubricQuestion" + }, + "acm003205jsd" : { + "type" : "ControlElement", + "id" : "acm003205jsd", + "name" : "editRubricQuestion" + }, + "acm003206jsd" : { + "type" : "ControlElement", + "id" : "acm003206jsd", + "name" : "verifyRankQuestionDetails" + }, + "acm003207jsd" : { + "type" : "ControlElement", + "id" : "acm003207jsd", + "name" : "addRankOptionsQuestion" + }, + "acm003208jsd" : { + "type" : "ControlElement", + "id" : "acm003208jsd", + "name" : "addRankRecipientsQuestion" + }, + "acm003209jsd" : { + "type" : "ControlElement", + "id" : "acm003209jsd", + "name" : "editRankQuestion" + }, + "acm003210jsd" : { + "type" : "ControlElement", + "id" : "acm003210jsd", + "name" : "getCourseId" + }, + "acm003211jsd" : { + "type" : "ControlElement", + "id" : "acm003211jsd", + "name" : "getCourseName" + }, + "acm003212jsd" : { + "type" : "ControlElement", + "id" : "acm003212jsd", + "name" : "getTimeZone" + }, + "acm003213jsd" : { + "type" : "ControlElement", + "id" : "acm003213jsd", + "name" : "getFeedbackSessionName" + }, + "acm003214jsd" : { + "type" : "ControlElement", + "id" : "acm003214jsd", + "name" : "getInstructions" + }, + "acm003215jsd" : { + "type" : "ControlElement", + "id" : "acm003215jsd", + "name" : "getStartDate" + }, + "acm003216jsd" : { + "type" : "ControlElement", + "id" : "acm003216jsd", + "name" : "getStartTime" + }, + "acm003217jsd" : { + "type" : "ControlElement", + "id" : "acm003217jsd", + "name" : "getEndDate" + }, + "acm003218jsd" : { + "type" : "ControlElement", + "id" : "acm003218jsd", + "name" : "getEndTime" + }, + "acm003219jsd" : { + "type" : "ControlElement", + "id" : "acm003219jsd", + "name" : "getSessionVisibilityDate" + }, + "acm003220jsd" : { + "type" : "ControlElement", + "id" : "acm003220jsd", + "name" : "getSessionVisibilityTime" + }, + "acm003221jsd" : { + "type" : "ControlElement", + "id" : "acm003221jsd", + "name" : "getResponseVisibilityDate" + }, + "acm003222jsd" : { + "type" : "ControlElement", + "id" : "acm003222jsd", + "name" : "getResponseVisibilityTime" + }, + "acm003223jsd" : { + "type" : "ControlElement", + "id" : "acm003223jsd", + "name" : "getGracePeriod" + }, + "acm003224jsd" : { + "type" : "ControlElement", + "id" : "acm003224jsd", + "name" : "getSubmissionStatus" + }, + "acm003225jsd" : { + "type" : "ControlElement", + "id" : "acm003225jsd", + "name" : "getPublishedStatus" + }, + "acm003226jsd" : { + "type" : "ControlElement", + "id" : "acm003226jsd", + "name" : "getDateString" + }, + "acm003227jsd" : { + "type" : "ControlElement", + "id" : "acm003227jsd", + "name" : "getTimeString" + }, + "acm003228jsd" : { + "type" : "ControlElement", + "id" : "acm003228jsd", + "name" : "setInstructions" + }, + "acm003229jsd" : { + "type" : "ControlElement", + "id" : "acm003229jsd", + "name" : "setSessionStartDateTime" + }, + "acm003230jsd" : { + "type" : "ControlElement", + "id" : "acm003230jsd", + "name" : "setSessionEndDateTime" + }, + "acm003231jsd" : { + "type" : "ControlElement", + "id" : "acm003231jsd", + "name" : "setVisibilityDateTime" + }, + "acm003232jsd" : { + "type" : "ControlElement", + "id" : "acm003232jsd", + "name" : "setResponseDateTime" + }, + "acm003233jsd" : { + "type" : "ControlElement", + "id" : "acm003233jsd", + "name" : "setDateTime" + }, + "acm003234jsd" : { + "type" : "ControlElement", + "id" : "acm003234jsd", + "name" : "selectGracePeriod" + }, + "acm003235jsd" : { + "type" : "ControlElement", + "id" : "acm003235jsd", + "name" : "setVisibilitySettings" + }, + "acm003236jsd" : { + "type" : "ControlElement", + "id" : "acm003236jsd", + "name" : "setSessionVisibilitySettings" + }, + "acm003237jsd" : { + "type" : "ControlElement", + "id" : "acm003237jsd", + "name" : "setResponseVisibilitySettings" + }, + "acm003238jsd" : { + "type" : "ControlElement", + "id" : "acm003238jsd", + "name" : "setEmailSettings" + }, + "acm003239jsd" : { + "type" : "ControlElement", + "id" : "acm003239jsd", + "name" : "showVisibilitySettings" + }, + "acm003240jsd" : { + "type" : "ControlElement", + "id" : "acm003240jsd", + "name" : "showEmailSettings" + }, + "acm003241jsd" : { + "type" : "ControlElement", + "id" : "acm003241jsd", + "name" : "getNumQuestions" + }, + "acm003242jsd" : { + "type" : "ControlElement", + "id" : "acm003242jsd", + "name" : "getQuestionForm" + }, + "acm003243jsd" : { + "type" : "ControlElement", + "id" : "acm003243jsd", + "name" : "getQuestionType" + }, + "acm003244jsd" : { + "type" : "ControlElement", + "id" : "acm003244jsd", + "name" : "getQuestionNumber" + }, + "acm003245jsd" : { + "type" : "ControlElement", + "id" : "acm003245jsd", + "name" : "getQuestionBrief" + }, + "acm003246jsd" : { + "type" : "ControlElement", + "id" : "acm003246jsd", + "name" : "getQuestionDescription" + }, + "acm003247jsd" : { + "type" : "ControlElement", + "id" : "acm003247jsd", + "name" : "getFeedbackGiver" + }, + "acm003248jsd" : { + "type" : "ControlElement", + "id" : "acm003248jsd", + "name" : "getFeedbackReceiver" + }, + "acm003249jsd" : { + "type" : "ControlElement", + "id" : "acm003249jsd", + "name" : "getFeedbackPath" + }, + "acm003250jsd" : { + "type" : "ControlElement", + "id" : "acm003250jsd", + "name" : "setQuestionBrief" + }, + "acm003251jsd" : { + "type" : "ControlElement", + "id" : "acm003251jsd", + "name" : "setQuestionDescription" + }, + "acm003252jsd" : { + "type" : "ControlElement", + "id" : "acm003252jsd", + "name" : "setFeedbackPath" + }, + "acm003253jsd" : { + "type" : "ControlElement", + "id" : "acm003253jsd", + "name" : "selectFeedbackPathDropdownOption" + }, + "acm003254jsd" : { + "type" : "ControlElement", + "id" : "acm003254jsd", + "name" : "clickEditQuestionButton" + }, + "acm003255jsd" : { + "type" : "ControlElement", + "id" : "acm003255jsd", + "name" : "clickSaveQuestionButton" + }, + "acm003256jsd" : { + "type" : "ControlElement", + "id" : "acm003256jsd", + "name" : "setQuestionVisibility" + }, + "acm003257jsd" : { + "type" : "ControlElement", + "id" : "acm003257jsd", + "name" : "selectVisibilityBoxes" + }, + "acm003258jsd" : { + "type" : "ControlElement", + "id" : "acm003258jsd", + "name" : "selectVisibilityDropdownOption" + }, + "acm003259jsd" : { + "type" : "ControlElement", + "id" : "acm003259jsd", + "name" : "clickAndWaitForNewQuestion" + }, + "acm003260jsd" : { + "type" : "ControlElement", + "id" : "acm003260jsd", + "name" : "addNewQuestion" + }, + "acm003261jsd" : { + "type" : "ControlElement", + "id" : "acm003261jsd", + "name" : "clickSaveNewQuestionButton" + }, + "acm003262jsd" : { + "type" : "ControlElement", + "id" : "acm003262jsd", + "name" : "getRecommendedTextLengthField" + }, + "acm003263jsd" : { + "type" : "ControlElement", + "id" : "acm003263jsd", + "name" : "getGenerateOptionsCheckbox" + }, + "acm003264jsd" : { + "type" : "ControlElement", + "id" : "acm003264jsd", + "name" : "getGenerateOptionsDropdown" + }, + "acm003265jsd" : { + "type" : "ControlElement", + "id" : "acm003265jsd", + "name" : "getWeightCheckbox" + }, + "acm003266jsd" : { + "type" : "ControlElement", + "id" : "acm003266jsd", + "name" : "getOtherOptionCheckbox" + }, + "acm003267jsd" : { + "type" : "ControlElement", + "id" : "acm003267jsd", + "name" : "getQuestionDropdownCheckbox" + }, + "acm003268jsd" : { + "type" : "ControlElement", + "id" : "acm003268jsd", + "name" : "getGeneratedOptionString" + }, + "acm003269jsd" : { + "type" : "ControlElement", + "id" : "acm003269jsd", + "name" : "getDoubleString" + }, + "acm003270jsd" : { + "type" : "ControlElement", + "id" : "acm003270jsd", + "name" : "getOptionsSection" + }, + "acm003271jsd" : { + "type" : "ControlElement", + "id" : "acm003271jsd", + "name" : "getOptionInputs" + }, + "acm003272jsd" : { + "type" : "ControlElement", + "id" : "acm003272jsd", + "name" : "getOptionWeightInputs" + }, + "acm003273jsd" : { + "type" : "ControlElement", + "id" : "acm003273jsd", + "name" : "getOtherWeightInput" + }, + "acm003274jsd" : { + "type" : "ControlElement", + "id" : "acm003274jsd", + "name" : "verifyGeneratedOptions" + }, + "acm003275jsd" : { + "type" : "ControlElement", + "id" : "acm003275jsd", + "name" : "verifyOptions" + }, + "acm003276jsd" : { + "type" : "ControlElement", + "id" : "acm003276jsd", + "name" : "verifyOptionWeights" + }, + "acm003277jsd" : { + "type" : "ControlElement", + "id" : "acm003277jsd", + "name" : "verifyOtherOption" + }, + "acm003278jsd" : { + "type" : "ControlElement", + "id" : "acm003278jsd", + "name" : "inputMcqDetails" + }, + "acm003279jsd" : { + "type" : "ControlElement", + "id" : "acm003279jsd", + "name" : "inputGenerateOptions" + }, + "acm003280jsd" : { + "type" : "ControlElement", + "id" : "acm003280jsd", + "name" : "inputOptions" + }, + "acm003281jsd" : { + "type" : "ControlElement", + "id" : "acm003281jsd", + "name" : "inputOptionWeights" + }, + "acm003282jsd" : { + "type" : "ControlElement", + "id" : "acm003282jsd", + "name" : "inputOtherChoice" + }, + "acm003283jsd" : { + "type" : "ControlElement", + "id" : "acm003283jsd", + "name" : "inputDropdownEnabledChoice" + }, + "acm003284jsd" : { + "type" : "ControlElement", + "id" : "acm003284jsd", + "name" : "getMaxOptionsCheckbox" + }, + "acm003285jsd" : { + "type" : "ControlElement", + "id" : "acm003285jsd", + "name" : "getMaxOptionsInput" + }, + "acm003286jsd" : { + "type" : "ControlElement", + "id" : "acm003286jsd", + "name" : "getMinOptionsCheckbox" + }, + "acm003287jsd" : { + "type" : "ControlElement", + "id" : "acm003287jsd", + "name" : "getMinOptionsInput" + }, + "acm003288jsd" : { + "type" : "ControlElement", + "id" : "acm003288jsd", + "name" : "verifyMaxOptions" + }, + "acm003289jsd" : { + "type" : "ControlElement", + "id" : "acm003289jsd", + "name" : "verifyMinOptions" + }, + "acm003290jsd" : { + "type" : "ControlElement", + "id" : "acm003290jsd", + "name" : "inputMsqDetails" + }, + "acm003291jsd" : { + "type" : "ControlElement", + "id" : "acm003291jsd", + "name" : "inputMaxOptions" + }, + "acm003292jsd" : { + "type" : "ControlElement", + "id" : "acm003292jsd", + "name" : "inputMinOptions" + }, + "acm003293jsd" : { + "type" : "ControlElement", + "id" : "acm003293jsd", + "name" : "getMinNumscaleInput" + }, + "acm003294jsd" : { + "type" : "ControlElement", + "id" : "acm003294jsd", + "name" : "getMaxNumscaleInput" + }, + "acm003295jsd" : { + "type" : "ControlElement", + "id" : "acm003295jsd", + "name" : "getNumScaleIncrementInput" + }, + "acm003296jsd" : { + "type" : "ControlElement", + "id" : "acm003296jsd", + "name" : "inputNumScaleDetails" + }, + "acm003297jsd" : { + "type" : "ControlElement", + "id" : "acm003297jsd", + "name" : "inputNumScaleValue" + }, + "acm003298jsd" : { + "type" : "ControlElement", + "id" : "acm003298jsd", + "name" : "getConstSumTotalPointsRadioBtn" + }, + "acm003299jsd" : { + "type" : "ControlElement", + "id" : "acm003299jsd", + "name" : "getConstSumTotalPointsInput" + }, + "acm003300jsd" : { + "type" : "ControlElement", + "id" : "acm003300jsd", + "name" : "getConstSumPerOptionPointsRadioBtn" + }, + "acm003301jsd" : { + "type" : "ControlElement", + "id" : "acm003301jsd", + "name" : "getConstSumPerOptionPointsInput" + }, + "acm003302jsd" : { + "type" : "ControlElement", + "id" : "acm003302jsd", + "name" : "getConstSumUnevenDistributionCheckbox" + }, + "acm003303jsd" : { + "type" : "ControlElement", + "id" : "acm003303jsd", + "name" : "getConstSumUnevenDistributionDropdown" + }, + "acm003304jsd" : { + "type" : "ControlElement", + "id" : "acm003304jsd", + "name" : "inputConstSumDetails" + }, + "acm003305jsd" : { + "type" : "ControlElement", + "id" : "acm003305jsd", + "name" : "getZeroSumCheckbox" + }, + "acm003306jsd" : { + "type" : "ControlElement", + "id" : "acm003306jsd", + "name" : "getAllowNotSureContributionCheckbox" + }, + "acm003307jsd" : { + "type" : "ControlElement", + "id" : "acm003307jsd", + "name" : "inputContributionDetails" + }, + "acm003308jsd" : { + "type" : "ControlElement", + "id" : "acm003308jsd", + "name" : "getRubricRow" + }, + "acm003309jsd" : { + "type" : "ControlElement", + "id" : "acm003309jsd", + "name" : "getRubricChoiceInputs" + }, + "acm003310jsd" : { + "type" : "ControlElement", + "id" : "acm003310jsd", + "name" : "getRubricTextareas" + }, + "acm003311jsd" : { + "type" : "ControlElement", + "id" : "acm003311jsd", + "name" : "getRubricWeights" + }, + "acm003312jsd" : { + "type" : "ControlElement", + "id" : "acm003312jsd", + "name" : "getRubricDeleteSubQnBtn" + }, + "acm003313jsd" : { + "type" : "ControlElement", + "id" : "acm003313jsd", + "name" : "getRubricDeleteChoiceBtn" + }, + "acm003314jsd" : { + "type" : "ControlElement", + "id" : "acm003314jsd", + "name" : "getNumRubricRows" + }, + "acm003315jsd" : { + "type" : "ControlElement", + "id" : "acm003315jsd", + "name" : "getNumRubricCols" + }, + "acm003316jsd" : { + "type" : "ControlElement", + "id" : "acm003316jsd", + "name" : "inputRubricDetails" + }, + "acm003317jsd" : { + "type" : "ControlElement", + "id" : "acm003317jsd", + "name" : "adjustNumRubricFields" + }, + "acm003318jsd" : { + "type" : "ControlElement", + "id" : "acm003318jsd", + "name" : "getAllowDuplicateRankCheckbox" + }, + "acm003319jsd" : { + "type" : "ControlElement", + "id" : "acm003319jsd", + "name" : "inputRankDetails" + }, + "acm003320jsd" : { + "type" : "ClassUnit", + "id" : "acm003320jsd", + "name" : "InstructorFeedbackEditPage", + "compilationUnitId" : "acm003151jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm002911jsd", "acm004226jsd", "acm004598jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005778jsd", "acm005820jsd", "acm005866jsd", "acm005909jsd", "acm005942jsd", "acm005986jsd", "acm006001jsd", "acm006025jsd", "acm006089jsd", "acm006116jsd" ], + "content" : [ "acm003155jsd", "acm003156jsd", "acm003157jsd", "acm003158jsd", "acm003159jsd", "acm003160jsd", "acm003161jsd", "acm003162jsd", "acm003163jsd", "acm003164jsd", "acm003165jsd", "acm003166jsd", "acm003167jsd", "acm003168jsd", "acm003169jsd", "acm003170jsd", "acm003171jsd", "acm003172jsd", "acm003173jsd", "acm003174jsd", "acm003175jsd", "acm003176jsd", "acm003177jsd", "acm003178jsd", "acm003179jsd", "acm003180jsd", "acm003181jsd", "acm003182jsd", "acm003183jsd", "acm003184jsd", "acm003185jsd", "acm003186jsd", "acm003187jsd", "acm003188jsd", "acm003189jsd", "acm003190jsd", "acm003191jsd", "acm003192jsd", "acm003193jsd", "acm003194jsd", "acm003195jsd", "acm003196jsd", "acm003197jsd", "acm003198jsd", "acm003199jsd", "acm003200jsd", "acm003201jsd", "acm003202jsd", "acm003203jsd", "acm003204jsd", "acm003205jsd", "acm003206jsd", "acm003207jsd", "acm003208jsd", "acm003209jsd", "acm003210jsd", "acm003211jsd", "acm003212jsd", "acm003213jsd", "acm003214jsd", "acm003215jsd", "acm003216jsd", "acm003217jsd", "acm003218jsd", "acm003219jsd", "acm003220jsd", "acm003221jsd", "acm003222jsd", "acm003223jsd", "acm003224jsd", "acm003225jsd", "acm003226jsd", "acm003227jsd", "acm003228jsd", "acm003229jsd", "acm003230jsd", "acm003231jsd", "acm003232jsd", "acm003233jsd", "acm003234jsd", "acm003235jsd", "acm003236jsd", "acm003237jsd", "acm003238jsd", "acm003239jsd", "acm003240jsd", "acm003241jsd", "acm003242jsd", "acm003243jsd", "acm003244jsd", "acm003245jsd", "acm003246jsd", "acm003247jsd", "acm003248jsd", "acm003249jsd", "acm003250jsd", "acm003251jsd", "acm003252jsd", "acm003253jsd", "acm003254jsd", "acm003255jsd", "acm003256jsd", "acm003257jsd", "acm003258jsd", "acm003259jsd", "acm003260jsd", "acm003261jsd", "acm003262jsd", "acm003263jsd", "acm003264jsd", "acm003265jsd", "acm003266jsd", "acm003267jsd", "acm003268jsd", "acm003269jsd", "acm003270jsd", "acm003271jsd", "acm003272jsd", "acm003273jsd", "acm003274jsd", "acm003275jsd", "acm003276jsd", "acm003277jsd", "acm003278jsd", "acm003279jsd", "acm003280jsd", "acm003281jsd", "acm003282jsd", "acm003283jsd", "acm003284jsd", "acm003285jsd", "acm003286jsd", "acm003287jsd", "acm003288jsd", "acm003289jsd", "acm003290jsd", "acm003291jsd", "acm003292jsd", "acm003293jsd", "acm003294jsd", "acm003295jsd", "acm003296jsd", "acm003297jsd", "acm003298jsd", "acm003299jsd", "acm003300jsd", "acm003301jsd", "acm003302jsd", "acm003303jsd", "acm003304jsd", "acm003305jsd", "acm003306jsd", "acm003307jsd", "acm003308jsd", "acm003309jsd", "acm003310jsd", "acm003311jsd", "acm003312jsd", "acm003313jsd", "acm003314jsd", "acm003315jsd", "acm003316jsd", "acm003317jsd", "acm003318jsd", "acm003319jsd" ] + }, + "acm003321jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003321jsd", + "name" : "InstructorFeedbackResultsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003419jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003322jsd" : { + "type" : "CodePackage", + "id" : "acm003322jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003323jsd" ] + }, + "acm003323jsd" : { + "type" : "CodePackage", + "id" : "acm003323jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003324jsd" ] + }, + "acm003324jsd" : { + "type" : "CodePackage", + "id" : "acm003324jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003321jsd" ] + }, + "acm003325jsd" : { + "type" : "ControlElement", + "id" : "acm003325jsd", + "name" : "InstructorFeedbackResultsPage" + }, + "acm003326jsd" : { + "type" : "ControlElement", + "id" : "acm003326jsd", + "name" : "containsExpectedPageContents" + }, + "acm003327jsd" : { + "type" : "ControlElement", + "id" : "acm003327jsd", + "name" : "verifySessionDetails" + }, + "acm003328jsd" : { + "type" : "ControlElement", + "id" : "acm003328jsd", + "name" : "unpublishSessionResults" + }, + "acm003329jsd" : { + "type" : "ControlElement", + "id" : "acm003329jsd", + "name" : "publishSessionResults" + }, + "acm003330jsd" : { + "type" : "ControlElement", + "id" : "acm003330jsd", + "name" : "downloadResults" + }, + "acm003331jsd" : { + "type" : "ControlElement", + "id" : "acm003331jsd", + "name" : "sortNoResponseByName" + }, + "acm003332jsd" : { + "type" : "ControlElement", + "id" : "acm003332jsd", + "name" : "verifyNoResponsePanelDetails" + }, + "acm003333jsd" : { + "type" : "ControlElement", + "id" : "acm003333jsd", + "name" : "remindAllNonResponders" + }, + "acm003334jsd" : { + "type" : "ControlElement", + "id" : "acm003334jsd", + "name" : "includeGroupingByTeam" + }, + "acm003335jsd" : { + "type" : "ControlElement", + "id" : "acm003335jsd", + "name" : "includeMissingResponses" + }, + "acm003336jsd" : { + "type" : "ControlElement", + "id" : "acm003336jsd", + "name" : "includeStatistics" + }, + "acm003337jsd" : { + "type" : "ControlElement", + "id" : "acm003337jsd", + "name" : "expandAllPanels" + }, + "acm003338jsd" : { + "type" : "ControlElement", + "id" : "acm003338jsd", + "name" : "filterBySectionEither" + }, + "acm003339jsd" : { + "type" : "ControlElement", + "id" : "acm003339jsd", + "name" : "unfilterResponses" + }, + "acm003340jsd" : { + "type" : "ControlElement", + "id" : "acm003340jsd", + "name" : "verifyQnViewResponses" + }, + "acm003341jsd" : { + "type" : "ControlElement", + "id" : "acm003341jsd", + "name" : "verifyGrqViewResponses" + }, + "acm003342jsd" : { + "type" : "ControlElement", + "id" : "acm003342jsd", + "name" : "verifyRgqViewResponses" + }, + "acm003343jsd" : { + "type" : "ControlElement", + "id" : "acm003343jsd", + "name" : "verifyGqrViewResponses" + }, + "acm003344jsd" : { + "type" : "ControlElement", + "id" : "acm003344jsd", + "name" : "verifyRqgViewResponses" + }, + "acm003345jsd" : { + "type" : "ControlElement", + "id" : "acm003345jsd", + "name" : "verifyQuestionText" + }, + "acm003346jsd" : { + "type" : "ControlElement", + "id" : "acm003346jsd", + "name" : "verifyGroupedResponses" + }, + "acm003347jsd" : { + "type" : "ControlElement", + "id" : "acm003347jsd", + "name" : "verifyQnViewStats" + }, + "acm003348jsd" : { + "type" : "ControlElement", + "id" : "acm003348jsd", + "name" : "verifyGqrViewStats" + }, + "acm003349jsd" : { + "type" : "ControlElement", + "id" : "acm003349jsd", + "name" : "verifyRqgViewStats" + }, + "acm003350jsd" : { + "type" : "ControlElement", + "id" : "acm003350jsd", + "name" : "verifyUserViewStats" + }, + "acm003351jsd" : { + "type" : "ControlElement", + "id" : "acm003351jsd", + "name" : "verifyStatistics" + }, + "acm003352jsd" : { + "type" : "ControlElement", + "id" : "acm003352jsd", + "name" : "verifyMcqStatistics" + }, + "acm003353jsd" : { + "type" : "ControlElement", + "id" : "acm003353jsd", + "name" : "verifyQnViewStatsHidden" + }, + "acm003354jsd" : { + "type" : "ControlElement", + "id" : "acm003354jsd", + "name" : "verifyGqrViewStatsHidden" + }, + "acm003355jsd" : { + "type" : "ControlElement", + "id" : "acm003355jsd", + "name" : "verifyRqgViewStatsHidden" + }, + "acm003356jsd" : { + "type" : "ControlElement", + "id" : "acm003356jsd", + "name" : "getPanelWithStats" + }, + "acm003357jsd" : { + "type" : "ControlElement", + "id" : "acm003357jsd", + "name" : "verifyStatsHidden" + }, + "acm003358jsd" : { + "type" : "ControlElement", + "id" : "acm003358jsd", + "name" : "verifyQnViewComment" + }, + "acm003359jsd" : { + "type" : "ControlElement", + "id" : "acm003359jsd", + "name" : "verifyGqrViewComment" + }, + "acm003360jsd" : { + "type" : "ControlElement", + "id" : "acm003360jsd", + "name" : "verifyRqgViewComment" + }, + "acm003361jsd" : { + "type" : "ControlElement", + "id" : "acm003361jsd", + "name" : "verifyGrqViewComment" + }, + "acm003362jsd" : { + "type" : "ControlElement", + "id" : "acm003362jsd", + "name" : "verifyRgqViewComment" + }, + "acm003363jsd" : { + "type" : "ControlElement", + "id" : "acm003363jsd", + "name" : "verifyResponseRowComment" + }, + "acm003364jsd" : { + "type" : "ControlElement", + "id" : "acm003364jsd", + "name" : "verifyGroupedResponseComment" + }, + "acm003365jsd" : { + "type" : "ControlElement", + "id" : "acm003365jsd", + "name" : "verifyCommentDetails" + }, + "acm003366jsd" : { + "type" : "ControlElement", + "id" : "acm003366jsd", + "name" : "verifyNoResponsesMessage" + }, + "acm003367jsd" : { + "type" : "ControlElement", + "id" : "acm003367jsd", + "name" : "getExpectedNoResponseDetails" + }, + "acm003368jsd" : { + "type" : "ControlElement", + "id" : "acm003368jsd", + "name" : "getExpectedQnViewDetails" + }, + "acm003369jsd" : { + "type" : "ControlElement", + "id" : "acm003369jsd", + "name" : "getExpectedGqrDetails" + }, + "acm003370jsd" : { + "type" : "ControlElement", + "id" : "acm003370jsd", + "name" : "getExpectedRqgDetails" + }, + "acm003371jsd" : { + "type" : "ControlElement", + "id" : "acm003371jsd", + "name" : "getMcqResponseSummary" + }, + "acm003372jsd" : { + "type" : "ControlElement", + "id" : "acm003372jsd", + "name" : "getMcqPerRecipientStatistics" + }, + "acm003373jsd" : { + "type" : "ControlElement", + "id" : "acm003373jsd", + "name" : "getAnswerString" + }, + "acm003374jsd" : { + "type" : "ControlElement", + "id" : "acm003374jsd", + "name" : "getRubricAnsString" + }, + "acm003375jsd" : { + "type" : "ControlElement", + "id" : "acm003375jsd", + "name" : "getRankOptionsAnsString" + }, + "acm003376jsd" : { + "type" : "ControlElement", + "id" : "acm003376jsd", + "name" : "getConstSumOptionsAnsString" + }, + "acm003377jsd" : { + "type" : "ControlElement", + "id" : "acm003377jsd", + "name" : "getContribAnsString" + }, + "acm003378jsd" : { + "type" : "ControlElement", + "id" : "acm003378jsd", + "name" : "getUserHeader" + }, + "acm003379jsd" : { + "type" : "ControlElement", + "id" : "acm003379jsd", + "name" : "getSessionDurationString" + }, + "acm003380jsd" : { + "type" : "ControlElement", + "id" : "acm003380jsd", + "name" : "getDateString" + }, + "acm003381jsd" : { + "type" : "ControlElement", + "id" : "acm003381jsd", + "name" : "getDoubleString" + }, + "acm003382jsd" : { + "type" : "ControlElement", + "id" : "acm003382jsd", + "name" : "getNoResponseTable" + }, + "acm003383jsd" : { + "type" : "ControlElement", + "id" : "acm003383jsd", + "name" : "includeOption" + }, + "acm003384jsd" : { + "type" : "ControlElement", + "id" : "acm003384jsd", + "name" : "selectViewType" + }, + "acm003385jsd" : { + "type" : "ControlElement", + "id" : "acm003385jsd", + "name" : "selectSectionDropdown" + }, + "acm003386jsd" : { + "type" : "ControlElement", + "id" : "acm003386jsd", + "name" : "selectSectionTypeDropdown" + }, + "acm003387jsd" : { + "type" : "ControlElement", + "id" : "acm003387jsd", + "name" : "getQuestionPanel" + }, + "acm003388jsd" : { + "type" : "ControlElement", + "id" : "acm003388jsd", + "name" : "getQuestionPanel" + }, + "acm003389jsd" : { + "type" : "ControlElement", + "id" : "acm003389jsd", + "name" : "getSectionPanel" + }, + "acm003390jsd" : { + "type" : "ControlElement", + "id" : "acm003390jsd", + "name" : "getTeamPanel" + }, + "acm003391jsd" : { + "type" : "ControlElement", + "id" : "acm003391jsd", + "name" : "getUserPanel" + }, + "acm003392jsd" : { + "type" : "ControlElement", + "id" : "acm003392jsd", + "name" : "getUserPanel" + }, + "acm003393jsd" : { + "type" : "ControlElement", + "id" : "acm003393jsd", + "name" : "getUserPanel" + }, + "acm003394jsd" : { + "type" : "ControlElement", + "id" : "acm003394jsd", + "name" : "getUserParentPanel" + }, + "acm003395jsd" : { + "type" : "ControlElement", + "id" : "acm003395jsd", + "name" : "expandQuestionPanel" + }, + "acm003396jsd" : { + "type" : "ControlElement", + "id" : "acm003396jsd", + "name" : "hideQuestionPanel" + }, + "acm003397jsd" : { + "type" : "ControlElement", + "id" : "acm003397jsd", + "name" : "isQuestionPanelExpanded" + }, + "acm003398jsd" : { + "type" : "ControlElement", + "id" : "acm003398jsd", + "name" : "getQuestionText" + }, + "acm003399jsd" : { + "type" : "ControlElement", + "id" : "acm003399jsd", + "name" : "getResponseTable" + }, + "acm003400jsd" : { + "type" : "ControlElement", + "id" : "acm003400jsd", + "name" : "getResponseRow" + }, + "acm003401jsd" : { + "type" : "ControlElement", + "id" : "acm003401jsd", + "name" : "getResponseRow" + }, + "acm003402jsd" : { + "type" : "ControlElement", + "id" : "acm003402jsd", + "name" : "getAllGroupedResponses" + }, + "acm003403jsd" : { + "type" : "ControlElement", + "id" : "acm003403jsd", + "name" : "getGroupedResponses" + }, + "acm003404jsd" : { + "type" : "ControlElement", + "id" : "acm003404jsd", + "name" : "getTeamStats" + }, + "acm003405jsd" : { + "type" : "ControlElement", + "id" : "acm003405jsd", + "name" : "getCommentGiver" + }, + "acm003406jsd" : { + "type" : "ControlElement", + "id" : "acm003406jsd", + "name" : "getCommentEditor" + }, + "acm003407jsd" : { + "type" : "ControlElement", + "id" : "acm003407jsd", + "name" : "getCommentField" + }, + "acm003408jsd" : { + "type" : "ControlElement", + "id" : "acm003408jsd", + "name" : "getCommentFields" + }, + "acm003409jsd" : { + "type" : "ControlElement", + "id" : "acm003409jsd", + "name" : "isMissingResponse" + }, + "acm003410jsd" : { + "type" : "ControlElement", + "id" : "acm003410jsd", + "name" : "filterMissingResponses" + }, + "acm003411jsd" : { + "type" : "ControlElement", + "id" : "acm003411jsd", + "name" : "getGivers" + }, + "acm003412jsd" : { + "type" : "ControlElement", + "id" : "acm003412jsd", + "name" : "getRecipients" + }, + "acm003413jsd" : { + "type" : "ControlElement", + "id" : "acm003413jsd", + "name" : "getResponseFromGiver" + }, + "acm003414jsd" : { + "type" : "ControlElement", + "id" : "acm003414jsd", + "name" : "getResponseForRecipient" + }, + "acm003415jsd" : { + "type" : "ControlElement", + "id" : "acm003415jsd", + "name" : "getSection" + }, + "acm003416jsd" : { + "type" : "ControlElement", + "id" : "acm003416jsd", + "name" : "getTeam" + }, + "acm003417jsd" : { + "type" : "ControlElement", + "id" : "acm003417jsd", + "name" : "getName" + }, + "acm003418jsd" : { + "type" : "ControlElement", + "id" : "acm003418jsd", + "name" : "getNameAndEmail" + }, + "acm003419jsd" : { + "type" : "ClassUnit", + "id" : "acm003419jsd", + "name" : "InstructorFeedbackResultsPage", + "compilationUnitId" : "acm003321jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005778jsd", "acm005788jsd", "acm005838jsd", "acm005866jsd", "acm006001jsd", "acm006012jsd", "acm006061jsd", "acm006089jsd", "acm006099jsd" ], + "content" : [ "acm003325jsd", "acm003326jsd", "acm003327jsd", "acm003328jsd", "acm003329jsd", "acm003330jsd", "acm003331jsd", "acm003332jsd", "acm003333jsd", "acm003334jsd", "acm003335jsd", "acm003336jsd", "acm003337jsd", "acm003338jsd", "acm003339jsd", "acm003340jsd", "acm003341jsd", "acm003342jsd", "acm003343jsd", "acm003344jsd", "acm003345jsd", "acm003346jsd", "acm003347jsd", "acm003348jsd", "acm003349jsd", "acm003350jsd", "acm003351jsd", "acm003352jsd", "acm003353jsd", "acm003354jsd", "acm003355jsd", "acm003356jsd", "acm003357jsd", "acm003358jsd", "acm003359jsd", "acm003360jsd", "acm003361jsd", "acm003362jsd", "acm003363jsd", "acm003364jsd", "acm003365jsd", "acm003366jsd", "acm003367jsd", "acm003368jsd", "acm003369jsd", "acm003370jsd", "acm003371jsd", "acm003372jsd", "acm003373jsd", "acm003374jsd", "acm003375jsd", "acm003376jsd", "acm003377jsd", "acm003378jsd", "acm003379jsd", "acm003380jsd", "acm003381jsd", "acm003382jsd", "acm003383jsd", "acm003384jsd", "acm003385jsd", "acm003386jsd", "acm003387jsd", "acm003388jsd", "acm003389jsd", "acm003390jsd", "acm003391jsd", "acm003392jsd", "acm003393jsd", "acm003394jsd", "acm003395jsd", "acm003396jsd", "acm003397jsd", "acm003398jsd", "acm003399jsd", "acm003400jsd", "acm003401jsd", "acm003402jsd", "acm003403jsd", "acm003404jsd", "acm003405jsd", "acm003406jsd", "acm003407jsd", "acm003408jsd", "acm003409jsd", "acm003410jsd", "acm003411jsd", "acm003412jsd", "acm003413jsd", "acm003414jsd", "acm003415jsd", "acm003416jsd", "acm003417jsd", "acm003418jsd" ] + }, + "acm003420jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003420jsd", + "name" : "InstructorFeedbackSessionsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003483jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003421jsd" : { + "type" : "CodePackage", + "id" : "acm003421jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003422jsd" ] + }, + "acm003422jsd" : { + "type" : "CodePackage", + "id" : "acm003422jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003423jsd" ] + }, + "acm003423jsd" : { + "type" : "CodePackage", + "id" : "acm003423jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003420jsd" ] + }, + "acm003424jsd" : { + "type" : "ControlElement", + "id" : "acm003424jsd", + "name" : "InstructorFeedbackSessionsPage" + }, + "acm003425jsd" : { + "type" : "ControlElement", + "id" : "acm003425jsd", + "name" : "containsExpectedPageContents" + }, + "acm003426jsd" : { + "type" : "ControlElement", + "id" : "acm003426jsd", + "name" : "verifySessionsTable" + }, + "acm003427jsd" : { + "type" : "ControlElement", + "id" : "acm003427jsd", + "name" : "verifySessionDetails" + }, + "acm003428jsd" : { + "type" : "ControlElement", + "id" : "acm003428jsd", + "name" : "verifySoftDeletedSessionsTable" + }, + "acm003429jsd" : { + "type" : "ControlElement", + "id" : "acm003429jsd", + "name" : "verifyNumSoftDeleted" + }, + "acm003430jsd" : { + "type" : "ControlElement", + "id" : "acm003430jsd", + "name" : "verifyResponseRate" + }, + "acm003431jsd" : { + "type" : "ControlElement", + "id" : "acm003431jsd", + "name" : "addFeedbackSession" + }, + "acm003432jsd" : { + "type" : "ControlElement", + "id" : "acm003432jsd", + "name" : "addCopyOfSession" + }, + "acm003433jsd" : { + "type" : "ControlElement", + "id" : "acm003433jsd", + "name" : "copySession" + }, + "acm003434jsd" : { + "type" : "ControlElement", + "id" : "acm003434jsd", + "name" : "moveToRecycleBin" + }, + "acm003435jsd" : { + "type" : "ControlElement", + "id" : "acm003435jsd", + "name" : "restoreSession" + }, + "acm003436jsd" : { + "type" : "ControlElement", + "id" : "acm003436jsd", + "name" : "deleteSession" + }, + "acm003437jsd" : { + "type" : "ControlElement", + "id" : "acm003437jsd", + "name" : "restoreAllSessions" + }, + "acm003438jsd" : { + "type" : "ControlElement", + "id" : "acm003438jsd", + "name" : "deleteAllSessions" + }, + "acm003439jsd" : { + "type" : "ControlElement", + "id" : "acm003439jsd", + "name" : "showDeleteTable" + }, + "acm003440jsd" : { + "type" : "ControlElement", + "id" : "acm003440jsd", + "name" : "sendReminderEmailToSelectedStudent" + }, + "acm003441jsd" : { + "type" : "ControlElement", + "id" : "acm003441jsd", + "name" : "sendReminderEmailToNonSubmitters" + }, + "acm003442jsd" : { + "type" : "ControlElement", + "id" : "acm003442jsd", + "name" : "resendResultsLink" + }, + "acm003443jsd" : { + "type" : "ControlElement", + "id" : "acm003443jsd", + "name" : "publishSessionResults" + }, + "acm003444jsd" : { + "type" : "ControlElement", + "id" : "acm003444jsd", + "name" : "unpublishSessionResults" + }, + "acm003445jsd" : { + "type" : "ControlElement", + "id" : "acm003445jsd", + "name" : "downloadResults" + }, + "acm003446jsd" : { + "type" : "ControlElement", + "id" : "acm003446jsd", + "name" : "sortBySessionsName" + }, + "acm003447jsd" : { + "type" : "ControlElement", + "id" : "acm003447jsd", + "name" : "sortByCourseId" + }, + "acm003448jsd" : { + "type" : "ControlElement", + "id" : "acm003448jsd", + "name" : "getSessionDetails" + }, + "acm003449jsd" : { + "type" : "ControlElement", + "id" : "acm003449jsd", + "name" : "getSoftDeletedSessionDetails" + }, + "acm003450jsd" : { + "type" : "ControlElement", + "id" : "acm003450jsd", + "name" : "getSimpleDateString" + }, + "acm003451jsd" : { + "type" : "ControlElement", + "id" : "acm003451jsd", + "name" : "getTimeString" + }, + "acm003452jsd" : { + "type" : "ControlElement", + "id" : "acm003452jsd", + "name" : "getResponseRate" + }, + "acm003453jsd" : { + "type" : "ControlElement", + "id" : "acm003453jsd", + "name" : "clickAddSessionButton" + }, + "acm003454jsd" : { + "type" : "ControlElement", + "id" : "acm003454jsd", + "name" : "setInstructions" + }, + "acm003455jsd" : { + "type" : "ControlElement", + "id" : "acm003455jsd", + "name" : "setSessionStartDateTime" + }, + "acm003456jsd" : { + "type" : "ControlElement", + "id" : "acm003456jsd", + "name" : "setSessionEndDateTime" + }, + "acm003457jsd" : { + "type" : "ControlElement", + "id" : "acm003457jsd", + "name" : "setVisibilityDateTime" + }, + "acm003458jsd" : { + "type" : "ControlElement", + "id" : "acm003458jsd", + "name" : "setResponseDateTime" + }, + "acm003459jsd" : { + "type" : "ControlElement", + "id" : "acm003459jsd", + "name" : "setDateTime" + }, + "acm003460jsd" : { + "type" : "ControlElement", + "id" : "acm003460jsd", + "name" : "selectGracePeriod" + }, + "acm003461jsd" : { + "type" : "ControlElement", + "id" : "acm003461jsd", + "name" : "setVisibilitySettings" + }, + "acm003462jsd" : { + "type" : "ControlElement", + "id" : "acm003462jsd", + "name" : "setSessionVisibilitySettings" + }, + "acm003463jsd" : { + "type" : "ControlElement", + "id" : "acm003463jsd", + "name" : "setResponseVisibilitySettings" + }, + "acm003464jsd" : { + "type" : "ControlElement", + "id" : "acm003464jsd", + "name" : "setEmailSettings" + }, + "acm003465jsd" : { + "type" : "ControlElement", + "id" : "acm003465jsd", + "name" : "showVisibilitySettings" + }, + "acm003466jsd" : { + "type" : "ControlElement", + "id" : "acm003466jsd", + "name" : "showEmailSettings" + }, + "acm003467jsd" : { + "type" : "ControlElement", + "id" : "acm003467jsd", + "name" : "clickCreateSessionButton" + }, + "acm003468jsd" : { + "type" : "ControlElement", + "id" : "acm003468jsd", + "name" : "selectCourseToCopy" + }, + "acm003469jsd" : { + "type" : "ControlElement", + "id" : "acm003469jsd", + "name" : "selectSessionToCopy" + }, + "acm003470jsd" : { + "type" : "ControlElement", + "id" : "acm003470jsd", + "name" : "clickConfirmCopySessionButton" + }, + "acm003471jsd" : { + "type" : "ControlElement", + "id" : "acm003471jsd", + "name" : "clickCopyButtonInTable" + }, + "acm003472jsd" : { + "type" : "ControlElement", + "id" : "acm003472jsd", + "name" : "selectCourseToCopyToInModal" + }, + "acm003473jsd" : { + "type" : "ControlElement", + "id" : "acm003473jsd", + "name" : "selectStudentToEmail" + }, + "acm003474jsd" : { + "type" : "ControlElement", + "id" : "acm003474jsd", + "name" : "getFeedbackSessionRowId" + }, + "acm003475jsd" : { + "type" : "ControlElement", + "id" : "acm003475jsd", + "name" : "getSoftDeletedFeedbackSessionRowId" + }, + "acm003476jsd" : { + "type" : "ControlElement", + "id" : "acm003476jsd", + "name" : "getNumFeedbackSessions" + }, + "acm003477jsd" : { + "type" : "ControlElement", + "id" : "acm003477jsd", + "name" : "getNumSoftDeletedFeedbackSessions" + }, + "acm003478jsd" : { + "type" : "ControlElement", + "id" : "acm003478jsd", + "name" : "getFeedbackSessionCourseId" + }, + "acm003479jsd" : { + "type" : "ControlElement", + "id" : "acm003479jsd", + "name" : "getSoftDeletedFeedbackSessionCourseId" + }, + "acm003480jsd" : { + "type" : "ControlElement", + "id" : "acm003480jsd", + "name" : "getFeedbackSessionName" + }, + "acm003481jsd" : { + "type" : "ControlElement", + "id" : "acm003481jsd", + "name" : "getSoftDeletedFeedbackSessionName" + }, + "acm003482jsd" : { + "type" : "ControlElement", + "id" : "acm003482jsd", + "name" : "waitForSessionEditPage" + }, + "acm003483jsd" : { + "type" : "ClassUnit", + "id" : "acm003483jsd", + "name" : "InstructorFeedbackSessionsPage", + "compilationUnitId" : "acm003420jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004598jsd", "acm005112jsd", "acm005412jsd" ], + "content" : [ "acm003424jsd", "acm003425jsd", "acm003426jsd", "acm003427jsd", "acm003428jsd", "acm003429jsd", "acm003430jsd", "acm003431jsd", "acm003432jsd", "acm003433jsd", "acm003434jsd", "acm003435jsd", "acm003436jsd", "acm003437jsd", "acm003438jsd", "acm003439jsd", "acm003440jsd", "acm003441jsd", "acm003442jsd", "acm003443jsd", "acm003444jsd", "acm003445jsd", "acm003446jsd", "acm003447jsd", "acm003448jsd", "acm003449jsd", "acm003450jsd", "acm003451jsd", "acm003452jsd", "acm003453jsd", "acm003454jsd", "acm003455jsd", "acm003456jsd", "acm003457jsd", "acm003458jsd", "acm003459jsd", "acm003460jsd", "acm003461jsd", "acm003462jsd", "acm003463jsd", "acm003464jsd", "acm003465jsd", "acm003466jsd", "acm003467jsd", "acm003468jsd", "acm003469jsd", "acm003470jsd", "acm003471jsd", "acm003472jsd", "acm003473jsd", "acm003474jsd", "acm003475jsd", "acm003476jsd", "acm003477jsd", "acm003478jsd", "acm003479jsd", "acm003480jsd", "acm003481jsd", "acm003482jsd" ] + }, + "acm003484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003484jsd", + "name" : "InstructorHomePage", + "parentId" : "acm002489jsd", + "content" : [ "acm003517jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003485jsd" : { + "type" : "CodePackage", + "id" : "acm003485jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003486jsd" ] + }, + "acm003486jsd" : { + "type" : "CodePackage", + "id" : "acm003486jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003487jsd" ] + }, + "acm003487jsd" : { + "type" : "CodePackage", + "id" : "acm003487jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003484jsd" ] + }, + "acm003488jsd" : { + "type" : "ControlElement", + "id" : "acm003488jsd", + "name" : "InstructorHomePage" + }, + "acm003489jsd" : { + "type" : "ControlElement", + "id" : "acm003489jsd", + "name" : "containsExpectedPageContents" + }, + "acm003490jsd" : { + "type" : "ControlElement", + "id" : "acm003490jsd", + "name" : "verifyCourseTabDetails" + }, + "acm003491jsd" : { + "type" : "ControlElement", + "id" : "acm003491jsd", + "name" : "verifySessionDetails" + }, + "acm003492jsd" : { + "type" : "ControlElement", + "id" : "acm003492jsd", + "name" : "verifyNumCourses" + }, + "acm003493jsd" : { + "type" : "ControlElement", + "id" : "acm003493jsd", + "name" : "verifyResponseRate" + }, + "acm003494jsd" : { + "type" : "ControlElement", + "id" : "acm003494jsd", + "name" : "copySession" + }, + "acm003495jsd" : { + "type" : "ControlElement", + "id" : "acm003495jsd", + "name" : "publishSessionResults" + }, + "acm003496jsd" : { + "type" : "ControlElement", + "id" : "acm003496jsd", + "name" : "unpublishSessionResults" + }, + "acm003497jsd" : { + "type" : "ControlElement", + "id" : "acm003497jsd", + "name" : "sendReminderEmailToSelectedStudent" + }, + "acm003498jsd" : { + "type" : "ControlElement", + "id" : "acm003498jsd", + "name" : "sendReminderEmailToNonSubmitters" + }, + "acm003499jsd" : { + "type" : "ControlElement", + "id" : "acm003499jsd", + "name" : "resendResultsLink" + }, + "acm003500jsd" : { + "type" : "ControlElement", + "id" : "acm003500jsd", + "name" : "downloadResults" + }, + "acm003501jsd" : { + "type" : "ControlElement", + "id" : "acm003501jsd", + "name" : "deleteSession" + }, + "acm003502jsd" : { + "type" : "ControlElement", + "id" : "acm003502jsd", + "name" : "archiveCourse" + }, + "acm003503jsd" : { + "type" : "ControlElement", + "id" : "acm003503jsd", + "name" : "deleteCourse" + }, + "acm003504jsd" : { + "type" : "ControlElement", + "id" : "acm003504jsd", + "name" : "sortCoursesById" + }, + "acm003505jsd" : { + "type" : "ControlElement", + "id" : "acm003505jsd", + "name" : "sortCoursesByName" + }, + "acm003506jsd" : { + "type" : "ControlElement", + "id" : "acm003506jsd", + "name" : "sortCoursesByCreationDate" + }, + "acm003507jsd" : { + "type" : "ControlElement", + "id" : "acm003507jsd", + "name" : "getNumCourses" + }, + "acm003508jsd" : { + "type" : "ControlElement", + "id" : "acm003508jsd", + "name" : "getCourseTab" + }, + "acm003509jsd" : { + "type" : "ControlElement", + "id" : "acm003509jsd", + "name" : "getCourseDetails" + }, + "acm003510jsd" : { + "type" : "ControlElement", + "id" : "acm003510jsd", + "name" : "getSessionsTable" + }, + "acm003511jsd" : { + "type" : "ControlElement", + "id" : "acm003511jsd", + "name" : "getDateString" + }, + "acm003512jsd" : { + "type" : "ControlElement", + "id" : "acm003512jsd", + "name" : "getExpectedSessionDetails" + }, + "acm003513jsd" : { + "type" : "ControlElement", + "id" : "acm003513jsd", + "name" : "getResponseRate" + }, + "acm003514jsd" : { + "type" : "ControlElement", + "id" : "acm003514jsd", + "name" : "clickCopyButtonInTable" + }, + "acm003515jsd" : { + "type" : "ControlElement", + "id" : "acm003515jsd", + "name" : "selectCourseToCopyToInModal" + }, + "acm003516jsd" : { + "type" : "ControlElement", + "id" : "acm003516jsd", + "name" : "selectStudentToEmail" + }, + "acm003517jsd" : { + "type" : "ClassUnit", + "id" : "acm003517jsd", + "name" : "InstructorHomePage", + "compilationUnitId" : "acm003484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004598jsd", "acm005112jsd", "acm005412jsd" ], + "content" : [ "acm003488jsd", "acm003489jsd", "acm003490jsd", "acm003491jsd", "acm003492jsd", "acm003493jsd", "acm003494jsd", "acm003495jsd", "acm003496jsd", "acm003497jsd", "acm003498jsd", "acm003499jsd", "acm003500jsd", "acm003501jsd", "acm003502jsd", "acm003503jsd", "acm003504jsd", "acm003505jsd", "acm003506jsd", "acm003507jsd", "acm003508jsd", "acm003509jsd", "acm003510jsd", "acm003511jsd", "acm003512jsd", "acm003513jsd", "acm003514jsd", "acm003515jsd", "acm003516jsd" ] + }, + "acm003518jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003518jsd", + "name" : "InstructorNotificationsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003524jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003519jsd" : { + "type" : "CodePackage", + "id" : "acm003519jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003520jsd" ] + }, + "acm003520jsd" : { + "type" : "CodePackage", + "id" : "acm003520jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003521jsd" ] + }, + "acm003521jsd" : { + "type" : "CodePackage", + "id" : "acm003521jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003518jsd" ] + }, + "acm003522jsd" : { + "type" : "ControlElement", + "id" : "acm003522jsd", + "name" : "InstructorNotificationsPage" + }, + "acm003523jsd" : { + "type" : "ControlElement", + "id" : "acm003523jsd", + "name" : "containsExpectedPageContents" + }, + "acm003524jsd" : { + "type" : "ClassUnit", + "id" : "acm003524jsd", + "name" : "InstructorNotificationsPage", + "compilationUnitId" : "acm003518jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003674jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm003522jsd", "acm003523jsd" ] + }, + "acm003525jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003525jsd", + "name" : "InstructorSearchPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003544jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003526jsd" : { + "type" : "CodePackage", + "id" : "acm003526jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003527jsd" ] + }, + "acm003527jsd" : { + "type" : "CodePackage", + "id" : "acm003527jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003528jsd" ] + }, + "acm003528jsd" : { + "type" : "CodePackage", + "id" : "acm003528jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003525jsd" ] + }, + "acm003529jsd" : { + "type" : "ControlElement", + "id" : "acm003529jsd", + "name" : "InstructorSearchPage" + }, + "acm003530jsd" : { + "type" : "ControlElement", + "id" : "acm003530jsd", + "name" : "containsExpectedPageContents" + }, + "acm003531jsd" : { + "type" : "ControlElement", + "id" : "acm003531jsd", + "name" : "search" + }, + "acm003532jsd" : { + "type" : "ControlElement", + "id" : "acm003532jsd", + "name" : "getStudentCoursesResult" + }, + "acm003533jsd" : { + "type" : "ControlElement", + "id" : "acm003533jsd", + "name" : "createHeaderText" + }, + "acm003534jsd" : { + "type" : "ControlElement", + "id" : "acm003534jsd", + "name" : "verifyStudentDetails" + }, + "acm003535jsd" : { + "type" : "ControlElement", + "id" : "acm003535jsd", + "name" : "verifyStudentDetails" + }, + "acm003536jsd" : { + "type" : "ControlElement", + "id" : "acm003536jsd", + "name" : "getStudentTableForHeader" + }, + "acm003537jsd" : { + "type" : "ControlElement", + "id" : "acm003537jsd", + "name" : "getExpectedStudentValues" + }, + "acm003538jsd" : { + "type" : "ControlElement", + "id" : "acm003538jsd", + "name" : "deleteStudent" + }, + "acm003539jsd" : { + "type" : "ControlElement", + "id" : "acm003539jsd", + "name" : "getDeleteButton" + }, + "acm003540jsd" : { + "type" : "ControlElement", + "id" : "acm003540jsd", + "name" : "getStudentRow" + }, + "acm003541jsd" : { + "type" : "ControlElement", + "id" : "acm003541jsd", + "name" : "clickViewStudent" + }, + "acm003542jsd" : { + "type" : "ControlElement", + "id" : "acm003542jsd", + "name" : "clickEditStudent" + }, + "acm003543jsd" : { + "type" : "ControlElement", + "id" : "acm003543jsd", + "name" : "clickViewAllRecords" + }, + "acm003544jsd" : { + "type" : "ClassUnit", + "id" : "acm003544jsd", + "name" : "InstructorSearchPage", + "compilationUnitId" : "acm003525jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm003069jsd", "acm003079jsd", "acm003627jsd", "acm004598jsd", "acm005412jsd" ], + "content" : [ "acm003529jsd", "acm003530jsd", "acm003531jsd", "acm003532jsd", "acm003533jsd", "acm003534jsd", "acm003535jsd", "acm003536jsd", "acm003537jsd", "acm003538jsd", "acm003539jsd", "acm003540jsd", "acm003541jsd", "acm003542jsd", "acm003543jsd" ] + }, + "acm003545jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003545jsd", + "name" : "InstructorSessionIndividualExtensionPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003571jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003546jsd" : { + "type" : "CodePackage", + "id" : "acm003546jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003547jsd" ] + }, + "acm003547jsd" : { + "type" : "CodePackage", + "id" : "acm003547jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003548jsd" ] + }, + "acm003548jsd" : { + "type" : "CodePackage", + "id" : "acm003548jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003545jsd" ] + }, + "acm003549jsd" : { + "type" : "ControlElement", + "id" : "acm003549jsd", + "name" : "InstructorSessionIndividualExtensionPage" + }, + "acm003550jsd" : { + "type" : "ControlElement", + "id" : "acm003550jsd", + "name" : "containsExpectedPageContents" + }, + "acm003551jsd" : { + "type" : "ControlElement", + "id" : "acm003551jsd", + "name" : "verifyDeadlineDetails" + }, + "acm003552jsd" : { + "type" : "ControlElement", + "id" : "acm003552jsd", + "name" : "getStudentDeadlines" + }, + "acm003553jsd" : { + "type" : "ControlElement", + "id" : "acm003553jsd", + "name" : "getInstructorDeadlines" + }, + "acm003554jsd" : { + "type" : "ControlElement", + "id" : "acm003554jsd", + "name" : "formatDeadline" + }, + "acm003555jsd" : { + "type" : "ControlElement", + "id" : "acm003555jsd", + "name" : "getStudentsMap" + }, + "acm003556jsd" : { + "type" : "ControlElement", + "id" : "acm003556jsd", + "name" : "getInstructorsMap" + }, + "acm003557jsd" : { + "type" : "ControlElement", + "id" : "acm003557jsd", + "name" : "verifyStudentDeadlines" + }, + "acm003558jsd" : { + "type" : "ControlElement", + "id" : "acm003558jsd", + "name" : "verifyInstructorDeadlines" + }, + "acm003559jsd" : { + "type" : "ControlElement", + "id" : "acm003559jsd", + "name" : "selectStudents" + }, + "acm003560jsd" : { + "type" : "ControlElement", + "id" : "acm003560jsd", + "name" : "selectStudent" + }, + "acm003561jsd" : { + "type" : "ControlElement", + "id" : "acm003561jsd", + "name" : "selectInstructor" + }, + "acm003562jsd" : { + "type" : "ControlElement", + "id" : "acm003562jsd", + "name" : "selectAllStudents" + }, + "acm003563jsd" : { + "type" : "ControlElement", + "id" : "acm003563jsd", + "name" : "selectAllInstructors" + }, + "acm003564jsd" : { + "type" : "ControlElement", + "id" : "acm003564jsd", + "name" : "deleteDeadlines" + }, + "acm003565jsd" : { + "type" : "ControlElement", + "id" : "acm003565jsd", + "name" : "extendDeadlineByTwelveHours" + }, + "acm003566jsd" : { + "type" : "ControlElement", + "id" : "acm003566jsd", + "name" : "extendDeadlineByOneDay" + }, + "acm003567jsd" : { + "type" : "ControlElement", + "id" : "acm003567jsd", + "name" : "extendDeadlineBy" + }, + "acm003568jsd" : { + "type" : "ControlElement", + "id" : "acm003568jsd", + "name" : "extendDeadlineToOneDayAway" + }, + "acm003569jsd" : { + "type" : "ControlElement", + "id" : "acm003569jsd", + "name" : "confirmChangesToDeadlineExtensions" + }, + "acm003570jsd" : { + "type" : "ControlElement", + "id" : "acm003570jsd", + "name" : "getTimeString" + }, + "acm003571jsd" : { + "type" : "ClassUnit", + "id" : "acm003571jsd", + "name" : "InstructorSessionIndividualExtensionPage", + "compilationUnitId" : "acm003545jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm003549jsd", "acm003550jsd", "acm003551jsd", "acm003552jsd", "acm003553jsd", "acm003554jsd", "acm003555jsd", "acm003556jsd", "acm003557jsd", "acm003558jsd", "acm003559jsd", "acm003560jsd", "acm003561jsd", "acm003562jsd", "acm003563jsd", "acm003564jsd", "acm003565jsd", "acm003566jsd", "acm003567jsd", "acm003568jsd", "acm003569jsd", "acm003570jsd" ] + }, + "acm003572jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003572jsd", + "name" : "InstructorStudentActivityLogsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003594jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003573jsd" : { + "type" : "CodePackage", + "id" : "acm003573jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003574jsd" ] + }, + "acm003574jsd" : { + "type" : "CodePackage", + "id" : "acm003574jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003575jsd" ] + }, + "acm003575jsd" : { + "type" : "CodePackage", + "id" : "acm003575jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003572jsd" ] + }, + "acm003576jsd" : { + "type" : "ControlElement", + "id" : "acm003576jsd", + "name" : "InstructorStudentActivityLogsPage" + }, + "acm003577jsd" : { + "type" : "ControlElement", + "id" : "acm003577jsd", + "name" : "containsExpectedPageContents" + }, + "acm003578jsd" : { + "type" : "ControlElement", + "id" : "acm003578jsd", + "name" : "startSearching" + }, + "acm003579jsd" : { + "type" : "ControlElement", + "id" : "acm003579jsd", + "name" : "isLogPresentForSession" + }, + "acm003580jsd" : { + "type" : "ControlElement", + "id" : "acm003580jsd", + "name" : "getActivityType" + }, + "acm003581jsd" : { + "type" : "ControlElement", + "id" : "acm003581jsd", + "name" : "getStudentName" + }, + "acm003582jsd" : { + "type" : "ControlElement", + "id" : "acm003582jsd", + "name" : "getLogsFromDate" + }, + "acm003583jsd" : { + "type" : "ControlElement", + "id" : "acm003583jsd", + "name" : "getLogsToDate" + }, + "acm003584jsd" : { + "type" : "ControlElement", + "id" : "acm003584jsd", + "name" : "getLogsFromTime" + }, + "acm003585jsd" : { + "type" : "ControlElement", + "id" : "acm003585jsd", + "name" : "getLogsToTime" + }, + "acm003586jsd" : { + "type" : "ControlElement", + "id" : "acm003586jsd", + "name" : "getSession" + }, + "acm003587jsd" : { + "type" : "ControlElement", + "id" : "acm003587jsd", + "name" : "setActivityType" + }, + "acm003588jsd" : { + "type" : "ControlElement", + "id" : "acm003588jsd", + "name" : "setStudentName" + }, + "acm003589jsd" : { + "type" : "ControlElement", + "id" : "acm003589jsd", + "name" : "setLogsFromDateTime" + }, + "acm003590jsd" : { + "type" : "ControlElement", + "id" : "acm003590jsd", + "name" : "setLogsToDateTime" + }, + "acm003591jsd" : { + "type" : "ControlElement", + "id" : "acm003591jsd", + "name" : "setSessionDropdown" + }, + "acm003592jsd" : { + "type" : "ControlElement", + "id" : "acm003592jsd", + "name" : "getTimeString" + }, + "acm003593jsd" : { + "type" : "ControlElement", + "id" : "acm003593jsd", + "name" : "setDateTime" + }, + "acm003594jsd" : { + "type" : "ClassUnit", + "id" : "acm003594jsd", + "name" : "InstructorStudentActivityLogsPage", + "compilationUnitId" : "acm003572jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm003576jsd", "acm003577jsd", "acm003578jsd", "acm003579jsd", "acm003580jsd", "acm003581jsd", "acm003582jsd", "acm003583jsd", "acm003584jsd", "acm003585jsd", "acm003586jsd", "acm003587jsd", "acm003588jsd", "acm003589jsd", "acm003590jsd", "acm003591jsd", "acm003592jsd", "acm003593jsd" ] + }, + "acm003595jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003595jsd", + "name" : "InstructorStudentListPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003618jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003596jsd" : { + "type" : "CodePackage", + "id" : "acm003596jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003597jsd" ] + }, + "acm003597jsd" : { + "type" : "CodePackage", + "id" : "acm003597jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003598jsd" ] + }, + "acm003598jsd" : { + "type" : "CodePackage", + "id" : "acm003598jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003595jsd" ] + }, + "acm003599jsd" : { + "type" : "ControlElement", + "id" : "acm003599jsd", + "name" : "InstructorStudentListPage" + }, + "acm003600jsd" : { + "type" : "ControlElement", + "id" : "acm003600jsd", + "name" : "containsExpectedPageContents" + }, + "acm003601jsd" : { + "type" : "ControlElement", + "id" : "acm003601jsd", + "name" : "getCoursesTabs" + }, + "acm003602jsd" : { + "type" : "ControlElement", + "id" : "acm003602jsd", + "name" : "createHeaderText" + }, + "acm003603jsd" : { + "type" : "ControlElement", + "id" : "acm003603jsd", + "name" : "clickCourseTabHeader" + }, + "acm003604jsd" : { + "type" : "ControlElement", + "id" : "acm003604jsd", + "name" : "verifyAllCoursesHaveTabs" + }, + "acm003605jsd" : { + "type" : "ControlElement", + "id" : "acm003605jsd", + "name" : "verifyStudentDetails" + }, + "acm003606jsd" : { + "type" : "ControlElement", + "id" : "acm003606jsd", + "name" : "verifyStudentDetails" + }, + "acm003607jsd" : { + "type" : "ControlElement", + "id" : "acm003607jsd", + "name" : "verifyStudentDetailsNotViewable" + }, + "acm003608jsd" : { + "type" : "ControlElement", + "id" : "acm003608jsd", + "name" : "getCourseTab" + }, + "acm003609jsd" : { + "type" : "ControlElement", + "id" : "acm003609jsd", + "name" : "verifyDisplayedNumbers" + }, + "acm003610jsd" : { + "type" : "ControlElement", + "id" : "acm003610jsd", + "name" : "getExpectedStudentValues" + }, + "acm003611jsd" : { + "type" : "ControlElement", + "id" : "acm003611jsd", + "name" : "deleteStudent" + }, + "acm003612jsd" : { + "type" : "ControlElement", + "id" : "acm003612jsd", + "name" : "getDeleteButton" + }, + "acm003613jsd" : { + "type" : "ControlElement", + "id" : "acm003613jsd", + "name" : "getStudentRow" + }, + "acm003614jsd" : { + "type" : "ControlElement", + "id" : "acm003614jsd", + "name" : "clickEnrollStudents" + }, + "acm003615jsd" : { + "type" : "ControlElement", + "id" : "acm003615jsd", + "name" : "clickViewStudent" + }, + "acm003616jsd" : { + "type" : "ControlElement", + "id" : "acm003616jsd", + "name" : "clickEditStudent" + }, + "acm003617jsd" : { + "type" : "ControlElement", + "id" : "acm003617jsd", + "name" : "clickViewAllRecords" + }, + "acm003618jsd" : { + "type" : "ClassUnit", + "id" : "acm003618jsd", + "name" : "InstructorStudentListPage", + "compilationUnitId" : "acm003595jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm003058jsd", "acm003069jsd", "acm003079jsd", "acm003627jsd", "acm004598jsd", "acm005412jsd" ], + "content" : [ "acm003599jsd", "acm003600jsd", "acm003601jsd", "acm003602jsd", "acm003603jsd", "acm003604jsd", "acm003605jsd", "acm003606jsd", "acm003607jsd", "acm003608jsd", "acm003609jsd", "acm003610jsd", "acm003611jsd", "acm003612jsd", "acm003613jsd", "acm003614jsd", "acm003615jsd", "acm003616jsd", "acm003617jsd" ] + }, + "acm003619jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003619jsd", + "name" : "InstructorStudentRecordsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003627jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003620jsd" : { + "type" : "CodePackage", + "id" : "acm003620jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003621jsd" ] + }, + "acm003621jsd" : { + "type" : "CodePackage", + "id" : "acm003621jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003622jsd" ] + }, + "acm003622jsd" : { + "type" : "CodePackage", + "id" : "acm003622jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003619jsd" ] + }, + "acm003623jsd" : { + "type" : "ControlElement", + "id" : "acm003623jsd", + "name" : "InstructorStudentRecordsPage" + }, + "acm003624jsd" : { + "type" : "ControlElement", + "id" : "acm003624jsd", + "name" : "containsExpectedPageContents" + }, + "acm003625jsd" : { + "type" : "ControlElement", + "id" : "acm003625jsd", + "name" : "verifyIsCorrectPage" + }, + "acm003626jsd" : { + "type" : "ControlElement", + "id" : "acm003626jsd", + "name" : "verifyStudentDetails" + }, + "acm003627jsd" : { + "type" : "ClassUnit", + "id" : "acm003627jsd", + "name" : "InstructorStudentRecordsPage", + "compilationUnitId" : "acm003619jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm005412jsd" ], + "content" : [ "acm003623jsd", "acm003624jsd", "acm003625jsd", "acm003626jsd" ] + }, + "acm003628jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003628jsd", + "name" : "StudentCourseDetailsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003639jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003629jsd" : { + "type" : "CodePackage", + "id" : "acm003629jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003630jsd" ] + }, + "acm003630jsd" : { + "type" : "CodePackage", + "id" : "acm003630jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003631jsd" ] + }, + "acm003631jsd" : { + "type" : "CodePackage", + "id" : "acm003631jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003628jsd" ] + }, + "acm003632jsd" : { + "type" : "ControlElement", + "id" : "acm003632jsd", + "name" : "StudentCourseDetailsPage" + }, + "acm003633jsd" : { + "type" : "ControlElement", + "id" : "acm003633jsd", + "name" : "containsExpectedPageContents" + }, + "acm003634jsd" : { + "type" : "ControlElement", + "id" : "acm003634jsd", + "name" : "verifyCourseDetails" + }, + "acm003635jsd" : { + "type" : "ControlElement", + "id" : "acm003635jsd", + "name" : "verifyInstructorsDetails" + }, + "acm003636jsd" : { + "type" : "ControlElement", + "id" : "acm003636jsd", + "name" : "verifyStudentDetails" + }, + "acm003637jsd" : { + "type" : "ControlElement", + "id" : "acm003637jsd", + "name" : "verifyTeammatesDetails" + }, + "acm003638jsd" : { + "type" : "ControlElement", + "id" : "acm003638jsd", + "name" : "sortTeammatesByName" + }, + "acm003639jsd" : { + "type" : "ClassUnit", + "id" : "acm003639jsd", + "name" : "StudentCourseDetailsPage", + "compilationUnitId" : "acm003628jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm003632jsd", "acm003633jsd", "acm003634jsd", "acm003635jsd", "acm003636jsd", "acm003637jsd", "acm003638jsd" ] + }, + "acm003640jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003640jsd", + "name" : "StudentHomePage", + "parentId" : "acm002489jsd", + "content" : [ "acm003651jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003641jsd" : { + "type" : "CodePackage", + "id" : "acm003641jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003642jsd" ] + }, + "acm003642jsd" : { + "type" : "CodePackage", + "id" : "acm003642jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003643jsd" ] + }, + "acm003643jsd" : { + "type" : "CodePackage", + "id" : "acm003643jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003640jsd" ] + }, + "acm003644jsd" : { + "type" : "ControlElement", + "id" : "acm003644jsd", + "name" : "StudentHomePage" + }, + "acm003645jsd" : { + "type" : "ControlElement", + "id" : "acm003645jsd", + "name" : "containsExpectedPageContents" + }, + "acm003646jsd" : { + "type" : "ControlElement", + "id" : "acm003646jsd", + "name" : "getStudentHomeCoursePanels" + }, + "acm003647jsd" : { + "type" : "ControlElement", + "id" : "acm003647jsd", + "name" : "verifyVisibleCourseToStudents" + }, + "acm003648jsd" : { + "type" : "ControlElement", + "id" : "acm003648jsd", + "name" : "verifyVisibleFeedbackSessionToStudents" + }, + "acm003649jsd" : { + "type" : "ControlElement", + "id" : "acm003649jsd", + "name" : "clickCloseNotificationBannerButton" + }, + "acm003650jsd" : { + "type" : "ControlElement", + "id" : "acm003650jsd", + "name" : "clickMarkAsReadButton" + }, + "acm003651jsd" : { + "type" : "ClassUnit", + "id" : "acm003651jsd", + "name" : "StudentHomePage", + "compilationUnitId" : "acm003640jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm003644jsd", "acm003645jsd", "acm003646jsd", "acm003647jsd", "acm003648jsd", "acm003649jsd", "acm003650jsd" ] + }, + "acm003652jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003652jsd", + "name" : "StudentNotificationsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003658jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003653jsd" : { + "type" : "CodePackage", + "id" : "acm003653jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003654jsd" ] + }, + "acm003654jsd" : { + "type" : "CodePackage", + "id" : "acm003654jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003655jsd" ] + }, + "acm003655jsd" : { + "type" : "CodePackage", + "id" : "acm003655jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003652jsd" ] + }, + "acm003656jsd" : { + "type" : "ControlElement", + "id" : "acm003656jsd", + "name" : "StudentNotificationsPage" + }, + "acm003657jsd" : { + "type" : "ControlElement", + "id" : "acm003657jsd", + "name" : "containsExpectedPageContents" + }, + "acm003658jsd" : { + "type" : "ClassUnit", + "id" : "acm003658jsd", + "name" : "StudentNotificationsPage", + "compilationUnitId" : "acm003652jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003674jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd" ], + "content" : [ "acm003656jsd", "acm003657jsd" ] + }, + "acm003659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003659jsd", + "name" : "UserNotificationsPage", + "parentId" : "acm002489jsd", + "content" : [ "acm003674jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003660jsd" : { + "type" : "CodePackage", + "id" : "acm003660jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003661jsd" ] + }, + "acm003661jsd" : { + "type" : "CodePackage", + "id" : "acm003661jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003662jsd" ] + }, + "acm003662jsd" : { + "type" : "CodePackage", + "id" : "acm003662jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003659jsd" ] + }, + "acm003663jsd" : { + "type" : "ControlElement", + "id" : "acm003663jsd", + "name" : "UserNotificationsPage" + }, + "acm003664jsd" : { + "type" : "ControlElement", + "id" : "acm003664jsd", + "name" : "containsExpectedPageContents" + }, + "acm003665jsd" : { + "type" : "ControlElement", + "id" : "acm003665jsd", + "name" : "verifyNotShownNotifications" + }, + "acm003666jsd" : { + "type" : "ControlElement", + "id" : "acm003666jsd", + "name" : "verifyShownNotifications" + }, + "acm003667jsd" : { + "type" : "ControlElement", + "id" : "acm003667jsd", + "name" : "verifyNotificationTab" + }, + "acm003668jsd" : { + "type" : "ControlElement", + "id" : "acm003668jsd", + "name" : "markNotificationAsRead" + }, + "acm003669jsd" : { + "type" : "ControlElement", + "id" : "acm003669jsd", + "name" : "getTimezone" + }, + "acm003670jsd" : { + "type" : "ControlElement", + "id" : "acm003670jsd", + "name" : "getHeaderText" + }, + "acm003671jsd" : { + "type" : "ControlElement", + "id" : "acm003671jsd", + "name" : "getHeaderDateString" + }, + "acm003672jsd" : { + "type" : "ControlElement", + "id" : "acm003672jsd", + "name" : "getHeaderClass" + }, + "acm003673jsd" : { + "type" : "ControlElement", + "id" : "acm003673jsd", + "name" : "getButtonClass" + }, + "acm003674jsd" : { + "type" : "ClassUnit", + "id" : "acm003674jsd", + "name" : "UserNotificationsPage", + "compilationUnitId" : "acm003659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002697jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002712jsd", "acm004346jsd", "acm005329jsd" ], + "content" : [ "acm003663jsd", "acm003664jsd", "acm003665jsd", "acm003666jsd", "acm003667jsd", "acm003668jsd", "acm003669jsd", "acm003670jsd", "acm003671jsd", "acm003672jsd", "acm003673jsd" ] + }, + "acm003675jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003675jsd", + "name" : "package-info", + "parentId" : "acm002489jsd", + "content" : [ ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "pageobjects" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003676jsd" : { + "type" : "CodePackage", + "id" : "acm003676jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003677jsd" ] + }, + "acm003677jsd" : { + "type" : "CodePackage", + "id" : "acm003677jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003678jsd" ] + }, + "acm003678jsd" : { + "type" : "CodePackage", + "id" : "acm003678jsd", + "name" : "pageobjects", + "parentId" : null, + "content" : [ "acm003675jsd" ] + }, + "acm003679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003679jsd", + "name" : "AxeUtil", + "parentId" : "acm003682jsd", + "content" : [ "acm003685jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003680jsd" : { + "type" : "CodePackage", + "id" : "acm003680jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003681jsd" ] + }, + "acm003681jsd" : { + "type" : "CodePackage", + "id" : "acm003681jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003682jsd" ] + }, + "acm003682jsd" : { + "type" : "CodePackage", + "id" : "acm003682jsd", + "name" : "util", + "parentId" : "acm001766jsd", + "content" : [ "acm003679jsd", "acm003686jsd", "acm003696jsd", "acm003708jsd", "acm003714jsd", "acm003726jsd", "acm003732jsd", "acm003741jsd", "acm003749jsd", "acm003759jsd", "acm003769jsd", "acm003776jsd", "acm003782jsd" ] + }, + "acm003683jsd" : { + "type" : "ControlElement", + "id" : "acm003683jsd", + "name" : "AxeUtil" + }, + "acm003684jsd" : { + "type" : "ControlElement", + "id" : "acm003684jsd", + "name" : "formatViolations" + }, + "acm003685jsd" : { + "type" : "ClassUnit", + "id" : "acm003685jsd", + "name" : "AxeUtil", + "compilationUnitId" : "acm003679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003683jsd", "acm003684jsd" ] + }, + "acm003686jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003686jsd", + "name" : "BackDoor", + "parentId" : "acm003682jsd", + "content" : [ "acm003695jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003687jsd" : { + "type" : "CodePackage", + "id" : "acm003687jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003688jsd" ] + }, + "acm003688jsd" : { + "type" : "CodePackage", + "id" : "acm003688jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003689jsd" ] + }, + "acm003689jsd" : { + "type" : "CodePackage", + "id" : "acm003689jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003686jsd" ] + }, + "acm003690jsd" : { + "type" : "ControlElement", + "id" : "acm003690jsd", + "name" : "BackDoor" + }, + "acm003691jsd" : { + "type" : "ControlElement", + "id" : "acm003691jsd", + "name" : "getInstance" + }, + "acm003692jsd" : { + "type" : "ControlElement", + "id" : "acm003692jsd", + "name" : "getAppUrl" + }, + "acm003693jsd" : { + "type" : "ControlElement", + "id" : "acm003693jsd", + "name" : "getBackdoorKey" + }, + "acm003694jsd" : { + "type" : "ControlElement", + "id" : "acm003694jsd", + "name" : "getCsrfKey" + }, + "acm003695jsd" : { + "type" : "ClassUnit", + "id" : "acm003695jsd", + "name" : "BackDoor", + "compilationUnitId" : "acm003686jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011936jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003695jsd" ], + "content" : [ "acm003690jsd", "acm003691jsd", "acm003692jsd", "acm003693jsd", "acm003694jsd" ] + }, + "acm003696jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003696jsd", + "name" : "EmailAccount", + "parentId" : "acm003682jsd", + "content" : [ "acm003707jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003697jsd" : { + "type" : "CodePackage", + "id" : "acm003697jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003698jsd" ] + }, + "acm003698jsd" : { + "type" : "CodePackage", + "id" : "acm003698jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003699jsd" ] + }, + "acm003699jsd" : { + "type" : "CodePackage", + "id" : "acm003699jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003696jsd" ] + }, + "acm003700jsd" : { + "type" : "ControlElement", + "id" : "acm003700jsd", + "name" : "EmailAccount" + }, + "acm003701jsd" : { + "type" : "ControlElement", + "id" : "acm003701jsd", + "name" : "getUserAuthenticated" + }, + "acm003702jsd" : { + "type" : "ControlElement", + "id" : "acm003702jsd", + "name" : "isRecentEmailWithSubjectPresent" + }, + "acm003703jsd" : { + "type" : "ControlElement", + "id" : "acm003703jsd", + "name" : "getListOfUnreadEmailFromSender" + }, + "acm003704jsd" : { + "type" : "ControlElement", + "id" : "acm003704jsd", + "name" : "markMessageAsRead" + }, + "acm003705jsd" : { + "type" : "ControlElement", + "id" : "acm003705jsd", + "name" : "convertFromMessageToMimeMessage" + }, + "acm003706jsd" : { + "type" : "ControlElement", + "id" : "acm003706jsd", + "name" : "getUsername" + }, + "acm003707jsd" : { + "type" : "ClassUnit", + "id" : "acm003707jsd", + "name" : "EmailAccount", + "compilationUnitId" : "acm003696jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003725jsd" ], + "content" : [ "acm003700jsd", "acm003701jsd", "acm003702jsd", "acm003703jsd", "acm003704jsd", "acm003705jsd", "acm003706jsd" ] + }, + "acm003708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003708jsd", + "name" : "EmailAccountTest", + "parentId" : "acm003682jsd", + "content" : [ "acm003713jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003709jsd" : { + "type" : "CodePackage", + "id" : "acm003709jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003710jsd" ] + }, + "acm003710jsd" : { + "type" : "CodePackage", + "id" : "acm003710jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003711jsd" ] + }, + "acm003711jsd" : { + "type" : "CodePackage", + "id" : "acm003711jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003708jsd" ] + }, + "acm003712jsd" : { + "type" : "ControlElement", + "id" : "acm003712jsd", + "name" : "checkEmailAccount" + }, + "acm003713jsd" : { + "type" : "ClassUnit", + "id" : "acm003713jsd", + "name" : "EmailAccountTest", + "compilationUnitId" : "acm003708jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003707jsd" ], + "content" : [ "acm003712jsd" ] + }, + "acm003714jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003714jsd", + "name" : "GmailServiceMaker", + "parentId" : "acm003682jsd", + "content" : [ "acm003725jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003715jsd" : { + "type" : "CodePackage", + "id" : "acm003715jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003716jsd" ] + }, + "acm003716jsd" : { + "type" : "CodePackage", + "id" : "acm003716jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003717jsd" ] + }, + "acm003717jsd" : { + "type" : "CodePackage", + "id" : "acm003717jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003714jsd" ] + }, + "acm003718jsd" : { + "type" : "ControlElement", + "id" : "acm003718jsd", + "name" : "GmailServiceMaker" + }, + "acm003719jsd" : { + "type" : "ControlElement", + "id" : "acm003719jsd", + "name" : "GmailServiceMaker" + }, + "acm003720jsd" : { + "type" : "ControlElement", + "id" : "acm003720jsd", + "name" : "makeGmailService" + }, + "acm003721jsd" : { + "type" : "ControlElement", + "id" : "acm003721jsd", + "name" : "authorizeAndCreateCredentials" + }, + "acm003722jsd" : { + "type" : "ControlElement", + "id" : "acm003722jsd", + "name" : "loadClientSecretFromJson" + }, + "acm003723jsd" : { + "type" : "ControlElement", + "id" : "acm003723jsd", + "name" : "buildFlow" + }, + "acm003724jsd" : { + "type" : "ControlElement", + "id" : "acm003724jsd", + "name" : "getCredentialFromFlow" + }, + "acm003725jsd" : { + "type" : "ClassUnit", + "id" : "acm003725jsd", + "name" : "GmailServiceMaker", + "compilationUnitId" : "acm003714jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003718jsd", "acm003719jsd", "acm003720jsd", "acm003721jsd", "acm003722jsd", "acm003723jsd", "acm003724jsd" ] + }, + "acm003726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003726jsd", + "name" : "MaximumRetriesExceededException", + "parentId" : "acm003682jsd", + "content" : [ "acm003731jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003727jsd" : { + "type" : "CodePackage", + "id" : "acm003727jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003728jsd" ] + }, + "acm003728jsd" : { + "type" : "CodePackage", + "id" : "acm003728jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003729jsd" ] + }, + "acm003729jsd" : { + "type" : "CodePackage", + "id" : "acm003729jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003726jsd" ] + }, + "acm003730jsd" : { + "type" : "ControlElement", + "id" : "acm003730jsd", + "name" : "MaximumRetriesExceededException" + }, + "acm003731jsd" : { + "type" : "ClassUnit", + "id" : "acm003731jsd", + "name" : "MaximumRetriesExceededException", + "compilationUnitId" : "acm003726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003748jsd" ], + "content" : [ "acm003730jsd" ] + }, + "acm003732jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003732jsd", + "name" : "RetryManager", + "parentId" : "acm003682jsd", + "content" : [ "acm003740jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003733jsd" : { + "type" : "CodePackage", + "id" : "acm003733jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003734jsd" ] + }, + "acm003734jsd" : { + "type" : "CodePackage", + "id" : "acm003734jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003735jsd" ] + }, + "acm003735jsd" : { + "type" : "CodePackage", + "id" : "acm003735jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003732jsd" ] + }, + "acm003736jsd" : { + "type" : "ControlElement", + "id" : "acm003736jsd", + "name" : "RetryManager" + }, + "acm003737jsd" : { + "type" : "ControlElement", + "id" : "acm003737jsd", + "name" : "runUntilNoRecognizedException" + }, + "acm003738jsd" : { + "type" : "ControlElement", + "id" : "acm003738jsd", + "name" : "isThrowableTypeIn" + }, + "acm003739jsd" : { + "type" : "ControlElement", + "id" : "acm003739jsd", + "name" : "logFailure" + }, + "acm003740jsd" : { + "type" : "ClassUnit", + "id" : "acm003740jsd", + "name" : "RetryManager", + "compilationUnitId" : "acm003732jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003731jsd", "acm003748jsd" ], + "content" : [ "acm003736jsd", "acm003737jsd", "acm003738jsd", "acm003739jsd" ] + }, + "acm003741jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003741jsd", + "name" : "Retryable", + "parentId" : "acm003682jsd", + "content" : [ "acm003748jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003742jsd" : { + "type" : "CodePackage", + "id" : "acm003742jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003743jsd" ] + }, + "acm003743jsd" : { + "type" : "CodePackage", + "id" : "acm003743jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003744jsd" ] + }, + "acm003744jsd" : { + "type" : "CodePackage", + "id" : "acm003744jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003741jsd" ] + }, + "acm003745jsd" : { + "type" : "ControlElement", + "id" : "acm003745jsd", + "name" : "Retryable" + }, + "acm003746jsd" : { + "type" : "ControlElement", + "id" : "acm003746jsd", + "name" : "run" + }, + "acm003747jsd" : { + "type" : "ControlElement", + "id" : "acm003747jsd", + "name" : "getName" + }, + "acm003748jsd" : { + "type" : "ClassUnit", + "id" : "acm003748jsd", + "name" : "Retryable", + "compilationUnitId" : "acm003741jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003745jsd", "acm003746jsd", "acm003747jsd" ] + }, + "acm003749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003749jsd", + "name" : "TestDataValidityTest", + "parentId" : "acm003682jsd", + "content" : [ "acm003758jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003750jsd" : { + "type" : "CodePackage", + "id" : "acm003750jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003751jsd" ] + }, + "acm003751jsd" : { + "type" : "CodePackage", + "id" : "acm003751jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003752jsd" ] + }, + "acm003752jsd" : { + "type" : "CodePackage", + "id" : "acm003752jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003749jsd" ] + }, + "acm003753jsd" : { + "type" : "ControlElement", + "id" : "acm003753jsd", + "name" : "checkTestDataValidity" + }, + "acm003754jsd" : { + "type" : "ControlElement", + "id" : "acm003754jsd", + "name" : "isValidTestEmail" + }, + "acm003755jsd" : { + "type" : "ControlElement", + "id" : "acm003755jsd", + "name" : "isValidTestCourseId" + }, + "acm003756jsd" : { + "type" : "ControlElement", + "id" : "acm003756jsd", + "name" : "isValidTestGoogleId" + }, + "acm003757jsd" : { + "type" : "ControlElement", + "id" : "acm003757jsd", + "name" : "constructIdRegex" + }, + "acm003758jsd" : { + "type" : "ClassUnit", + "id" : "acm003758jsd", + "name" : "TestDataValidityTest", + "compilationUnitId" : "acm003749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003753jsd", "acm003754jsd", "acm003755jsd", "acm003756jsd", "acm003757jsd" ] + }, + "acm003759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003759jsd", + "name" : "TestNgXmlTest", + "parentId" : "acm003682jsd", + "content" : [ "acm003768jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003760jsd" : { + "type" : "CodePackage", + "id" : "acm003760jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003761jsd" ] + }, + "acm003761jsd" : { + "type" : "CodePackage", + "id" : "acm003761jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003762jsd" ] + }, + "acm003762jsd" : { + "type" : "CodePackage", + "id" : "acm003762jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003759jsd" ] + }, + "acm003763jsd" : { + "type" : "ControlElement", + "id" : "acm003763jsd", + "name" : "checkTestsInTestNg" + }, + "acm003764jsd" : { + "type" : "ControlElement", + "id" : "acm003764jsd", + "name" : "getTestFiles" + }, + "acm003765jsd" : { + "type" : "ControlElement", + "id" : "acm003765jsd", + "name" : "isTestFileIncluded" + }, + "acm003766jsd" : { + "type" : "ControlElement", + "id" : "acm003766jsd", + "name" : "addFilesToTestsRecursively" + }, + "acm003767jsd" : { + "type" : "ControlElement", + "id" : "acm003767jsd", + "name" : "isPackageNameInTestNg" + }, + "acm003768jsd" : { + "type" : "ClassUnit", + "id" : "acm003768jsd", + "name" : "TestNgXmlTest", + "compilationUnitId" : "acm003759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003763jsd", "acm003764jsd", "acm003765jsd", "acm003766jsd", "acm003767jsd" ] + }, + "acm003769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003769jsd", + "name" : "TestProperties", + "parentId" : "acm003682jsd", + "content" : [ "acm003775jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003770jsd" : { + "type" : "CodePackage", + "id" : "acm003770jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003771jsd" ] + }, + "acm003771jsd" : { + "type" : "CodePackage", + "id" : "acm003771jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003772jsd" ] + }, + "acm003772jsd" : { + "type" : "CodePackage", + "id" : "acm003772jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003769jsd" ] + }, + "acm003773jsd" : { + "type" : "ControlElement", + "id" : "acm003773jsd", + "name" : "TestProperties" + }, + "acm003774jsd" : { + "type" : "ControlElement", + "id" : "acm003774jsd", + "name" : "isDevServer" + }, + "acm003775jsd" : { + "type" : "ClassUnit", + "id" : "acm003775jsd", + "name" : "TestProperties", + "compilationUnitId" : "acm003769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003773jsd", "acm003774jsd" ] + }, + "acm003776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003776jsd", + "name" : "TestPropertiesTest", + "parentId" : "acm003682jsd", + "content" : [ "acm003781jsd" ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003777jsd" : { + "type" : "CodePackage", + "id" : "acm003777jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003778jsd" ] + }, + "acm003778jsd" : { + "type" : "CodePackage", + "id" : "acm003778jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003779jsd" ] + }, + "acm003779jsd" : { + "type" : "CodePackage", + "id" : "acm003779jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003776jsd" ] + }, + "acm003780jsd" : { + "type" : "ControlElement", + "id" : "acm003780jsd", + "name" : "testContent" + }, + "acm003781jsd" : { + "type" : "ClassUnit", + "id" : "acm003781jsd", + "name" : "TestPropertiesTest", + "compilationUnitId" : "acm003776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003780jsd" ] + }, + "acm003782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003782jsd", + "name" : "package-info", + "parentId" : "acm003682jsd", + "content" : [ ], + "pathElements" : [ "src", "e2e", "java", "teammates", "e2e", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003783jsd" : { + "type" : "CodePackage", + "id" : "acm003783jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003784jsd" ] + }, + "acm003784jsd" : { + "type" : "CodePackage", + "id" : "acm003784jsd", + "name" : "e2e", + "parentId" : null, + "content" : [ "acm003785jsd" ] + }, + "acm003785jsd" : { + "type" : "CodePackage", + "id" : "acm003785jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003782jsd" ] + }, + "acm003786jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003786jsd", + "name" : "BaseLNPTestCase", + "parentId" : "acm003789jsd", + "content" : [ "acm003815jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003787jsd" : { + "type" : "CodePackage", + "id" : "acm003787jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003788jsd" ] + }, + "acm003788jsd" : { + "type" : "CodePackage", + "id" : "acm003788jsd", + "name" : "lnp", + "parentId" : "acm001338jsd", + "content" : [ "acm003789jsd", "acm004053jsd" ] + }, + "acm003789jsd" : { + "type" : "CodePackage", + "id" : "acm003789jsd", + "name" : "cases", + "parentId" : "acm003788jsd", + "content" : [ "acm003786jsd", "acm003816jsd", "acm003838jsd", "acm003858jsd", "acm003877jsd", "acm003895jsd", "acm003920jsd", "acm003944jsd", "acm003961jsd", "acm003983jsd", "acm004004jsd", "acm004025jsd", "acm004046jsd" ] + }, + "acm003790jsd" : { + "type" : "ControlElement", + "id" : "acm003790jsd", + "name" : "getTestData" + }, + "acm003791jsd" : { + "type" : "ControlElement", + "id" : "acm003791jsd", + "name" : "getLnpTestPlan" + }, + "acm003792jsd" : { + "type" : "ControlElement", + "id" : "acm003792jsd", + "name" : "setupSpecification" + }, + "acm003793jsd" : { + "type" : "ControlElement", + "id" : "acm003793jsd", + "name" : "getJsonDataPath" + }, + "acm003794jsd" : { + "type" : "ControlElement", + "id" : "acm003794jsd", + "name" : "getCsvConfigPath" + }, + "acm003795jsd" : { + "type" : "ControlElement", + "id" : "acm003795jsd", + "name" : "getJtlResultsPath" + }, + "acm003796jsd" : { + "type" : "ControlElement", + "id" : "acm003796jsd", + "name" : "getTestDataFolder" + }, + "acm003797jsd" : { + "type" : "ControlElement", + "id" : "acm003797jsd", + "name" : "getPathToTestDataFile" + }, + "acm003798jsd" : { + "type" : "ControlElement", + "id" : "acm003798jsd", + "name" : "getPathToTestStatisticsResultsFile" + }, + "acm003799jsd" : { + "type" : "ControlElement", + "id" : "acm003799jsd", + "name" : "createFileAndDirectory" + }, + "acm003800jsd" : { + "type" : "ControlElement", + "id" : "acm003800jsd", + "name" : "createJsonDataFile" + }, + "acm003801jsd" : { + "type" : "ControlElement", + "id" : "acm003801jsd", + "name" : "createCsvConfigDataFile" + }, + "acm003802jsd" : { + "type" : "ControlElement", + "id" : "acm003802jsd", + "name" : "convertToCsv" + }, + "acm003803jsd" : { + "type" : "ControlElement", + "id" : "acm003803jsd", + "name" : "getResultsStatistics" + }, + "acm003804jsd" : { + "type" : "ControlElement", + "id" : "acm003804jsd", + "name" : "renameStatisticsFile" + }, + "acm003805jsd" : { + "type" : "ControlElement", + "id" : "acm003805jsd", + "name" : "setJmeterProperties" + }, + "acm003806jsd" : { + "type" : "ControlElement", + "id" : "acm003806jsd", + "name" : "createTestData" + }, + "acm003807jsd" : { + "type" : "ControlElement", + "id" : "acm003807jsd", + "name" : "persistTestData" + }, + "acm003808jsd" : { + "type" : "ControlElement", + "id" : "acm003808jsd", + "name" : "displayLnpResults" + }, + "acm003809jsd" : { + "type" : "ControlElement", + "id" : "acm003809jsd", + "name" : "runJmeter" + }, + "acm003810jsd" : { + "type" : "ControlElement", + "id" : "acm003810jsd", + "name" : "deleteTestData" + }, + "acm003811jsd" : { + "type" : "ControlElement", + "id" : "acm003811jsd", + "name" : "deleteDataFiles" + }, + "acm003812jsd" : { + "type" : "ControlElement", + "id" : "acm003812jsd", + "name" : "cleanupResults" + }, + "acm003813jsd" : { + "type" : "ControlElement", + "id" : "acm003813jsd", + "name" : "sanitizeForCsv" + }, + "acm003814jsd" : { + "type" : "ControlElement", + "id" : "acm003814jsd", + "name" : "generateTimeStamp" + }, + "acm003815jsd" : { + "type" : "ClassUnit", + "id" : "acm003815jsd", + "name" : "BaseLNPTestCase", + "compilationUnitId" : "acm003786jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004059jsd", "acm004091jsd", "acm004105jsd", "acm004126jsd", "acm004205jsd", "acm006174jsd", "acm006435jsd" ], + "content" : [ "acm003790jsd", "acm003791jsd", "acm003792jsd", "acm003793jsd", "acm003794jsd", "acm003795jsd", "acm003796jsd", "acm003797jsd", "acm003798jsd", "acm003799jsd", "acm003800jsd", "acm003801jsd", "acm003802jsd", "acm003803jsd", "acm003804jsd", "acm003805jsd", "acm003806jsd", "acm003807jsd", "acm003808jsd", "acm003809jsd", "acm003810jsd", "acm003811jsd", "acm003812jsd", "acm003813jsd", "acm003814jsd" ] + }, + "acm003816jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003816jsd", + "name" : "FeedbackQuestionUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003837jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003817jsd" : { + "type" : "CodePackage", + "id" : "acm003817jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003818jsd" ] + }, + "acm003818jsd" : { + "type" : "CodePackage", + "id" : "acm003818jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003819jsd" ] + }, + "acm003819jsd" : { + "type" : "CodePackage", + "id" : "acm003819jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003816jsd" ] + }, + "acm003820jsd" : { + "type" : "ControlElement", + "id" : "acm003820jsd", + "name" : "getTestData" + }, + "acm003821jsd" : { + "type" : "ControlElement", + "id" : "acm003821jsd", + "name" : "generateCourses" + }, + "acm003822jsd" : { + "type" : "ControlElement", + "id" : "acm003822jsd", + "name" : "generateInstructors" + }, + "acm003823jsd" : { + "type" : "ControlElement", + "id" : "acm003823jsd", + "name" : "generateStudents" + }, + "acm003824jsd" : { + "type" : "ControlElement", + "id" : "acm003824jsd", + "name" : "generateFeedbackSessions" + }, + "acm003825jsd" : { + "type" : "ControlElement", + "id" : "acm003825jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003826jsd" : { + "type" : "ControlElement", + "id" : "acm003826jsd", + "name" : "generateFeedbackResponses" + }, + "acm003827jsd" : { + "type" : "ControlElement", + "id" : "acm003827jsd", + "name" : "generateCsvHeaders" + }, + "acm003828jsd" : { + "type" : "ControlElement", + "id" : "acm003828jsd", + "name" : "generateCsvData" + }, + "acm003829jsd" : { + "type" : "ControlElement", + "id" : "acm003829jsd", + "name" : "getTypicalTextQuestionUpdateRequest" + }, + "acm003830jsd" : { + "type" : "ControlElement", + "id" : "acm003830jsd", + "name" : "getRequestHeaders" + }, + "acm003831jsd" : { + "type" : "ControlElement", + "id" : "acm003831jsd", + "name" : "getTestEndpoint" + }, + "acm003832jsd" : { + "type" : "ControlElement", + "id" : "acm003832jsd", + "name" : "getLnpTestPlan" + }, + "acm003833jsd" : { + "type" : "ControlElement", + "id" : "acm003833jsd", + "name" : "setupSpecification" + }, + "acm003834jsd" : { + "type" : "ControlElement", + "id" : "acm003834jsd", + "name" : "classSetup" + }, + "acm003835jsd" : { + "type" : "ControlElement", + "id" : "acm003835jsd", + "name" : "runLnpTest" + }, + "acm003836jsd" : { + "type" : "ControlElement", + "id" : "acm003836jsd", + "name" : "classTearDown" + }, + "acm003837jsd" : { + "type" : "ClassUnit", + "id" : "acm003837jsd", + "name" : "FeedbackQuestionUpdateLNPTest", + "compilationUnitId" : "acm003816jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd", "acm009087jsd" ], + "content" : [ "acm003820jsd", "acm003821jsd", "acm003822jsd", "acm003823jsd", "acm003824jsd", "acm003825jsd", "acm003826jsd", "acm003827jsd", "acm003828jsd", "acm003829jsd", "acm003830jsd", "acm003831jsd", "acm003832jsd", "acm003833jsd", "acm003834jsd", "acm003835jsd", "acm003836jsd" ] + }, + "acm003838jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003838jsd", + "name" : "FeedbackSessionSubmitLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003857jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003839jsd" : { + "type" : "CodePackage", + "id" : "acm003839jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003840jsd" ] + }, + "acm003840jsd" : { + "type" : "CodePackage", + "id" : "acm003840jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003841jsd" ] + }, + "acm003841jsd" : { + "type" : "CodePackage", + "id" : "acm003841jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003838jsd" ] + }, + "acm003842jsd" : { + "type" : "ControlElement", + "id" : "acm003842jsd", + "name" : "getTestData" + }, + "acm003843jsd" : { + "type" : "ControlElement", + "id" : "acm003843jsd", + "name" : "generateAccounts" + }, + "acm003844jsd" : { + "type" : "ControlElement", + "id" : "acm003844jsd", + "name" : "generateCourses" + }, + "acm003845jsd" : { + "type" : "ControlElement", + "id" : "acm003845jsd", + "name" : "generateInstructors" + }, + "acm003846jsd" : { + "type" : "ControlElement", + "id" : "acm003846jsd", + "name" : "generateStudents" + }, + "acm003847jsd" : { + "type" : "ControlElement", + "id" : "acm003847jsd", + "name" : "generateFeedbackSessions" + }, + "acm003848jsd" : { + "type" : "ControlElement", + "id" : "acm003848jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003849jsd" : { + "type" : "ControlElement", + "id" : "acm003849jsd", + "name" : "generateCsvHeaders" + }, + "acm003850jsd" : { + "type" : "ControlElement", + "id" : "acm003850jsd", + "name" : "generateCsvData" + }, + "acm003851jsd" : { + "type" : "ControlElement", + "id" : "acm003851jsd", + "name" : "getRequestHeaders" + }, + "acm003852jsd" : { + "type" : "ControlElement", + "id" : "acm003852jsd", + "name" : "getLnpTestPlan" + }, + "acm003853jsd" : { + "type" : "ControlElement", + "id" : "acm003853jsd", + "name" : "setupSpecification" + }, + "acm003854jsd" : { + "type" : "ControlElement", + "id" : "acm003854jsd", + "name" : "classSetup" + }, + "acm003855jsd" : { + "type" : "ControlElement", + "id" : "acm003855jsd", + "name" : "runLnpTest" + }, + "acm003856jsd" : { + "type" : "ControlElement", + "id" : "acm003856jsd", + "name" : "classTearDown" + }, + "acm003857jsd" : { + "type" : "ClassUnit", + "id" : "acm003857jsd", + "name" : "FeedbackSessionSubmitLNPTest", + "compilationUnitId" : "acm003838jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd", "acm009123jsd", "acm009128jsd" ], + "content" : [ "acm003842jsd", "acm003843jsd", "acm003844jsd", "acm003845jsd", "acm003846jsd", "acm003847jsd", "acm003848jsd", "acm003849jsd", "acm003850jsd", "acm003851jsd", "acm003852jsd", "acm003853jsd", "acm003854jsd", "acm003855jsd", "acm003856jsd" ] + }, + "acm003858jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003858jsd", + "name" : "FeedbackSessionViewLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003876jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003859jsd" : { + "type" : "CodePackage", + "id" : "acm003859jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003860jsd" ] + }, + "acm003860jsd" : { + "type" : "CodePackage", + "id" : "acm003860jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003861jsd" ] + }, + "acm003861jsd" : { + "type" : "CodePackage", + "id" : "acm003861jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003858jsd" ] + }, + "acm003862jsd" : { + "type" : "ControlElement", + "id" : "acm003862jsd", + "name" : "getTestData" + }, + "acm003863jsd" : { + "type" : "ControlElement", + "id" : "acm003863jsd", + "name" : "generateAccounts" + }, + "acm003864jsd" : { + "type" : "ControlElement", + "id" : "acm003864jsd", + "name" : "generateCourses" + }, + "acm003865jsd" : { + "type" : "ControlElement", + "id" : "acm003865jsd", + "name" : "generateInstructors" + }, + "acm003866jsd" : { + "type" : "ControlElement", + "id" : "acm003866jsd", + "name" : "generateStudents" + }, + "acm003867jsd" : { + "type" : "ControlElement", + "id" : "acm003867jsd", + "name" : "generateFeedbackSessions" + }, + "acm003868jsd" : { + "type" : "ControlElement", + "id" : "acm003868jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003869jsd" : { + "type" : "ControlElement", + "id" : "acm003869jsd", + "name" : "generateCsvHeaders" + }, + "acm003870jsd" : { + "type" : "ControlElement", + "id" : "acm003870jsd", + "name" : "generateCsvData" + }, + "acm003871jsd" : { + "type" : "ControlElement", + "id" : "acm003871jsd", + "name" : "getLnpTestPlan" + }, + "acm003872jsd" : { + "type" : "ControlElement", + "id" : "acm003872jsd", + "name" : "setupSpecification" + }, + "acm003873jsd" : { + "type" : "ControlElement", + "id" : "acm003873jsd", + "name" : "classSetup" + }, + "acm003874jsd" : { + "type" : "ControlElement", + "id" : "acm003874jsd", + "name" : "runLnpTest" + }, + "acm003875jsd" : { + "type" : "ControlElement", + "id" : "acm003875jsd", + "name" : "classTearDown" + }, + "acm003876jsd" : { + "type" : "ClassUnit", + "id" : "acm003876jsd", + "name" : "FeedbackSessionViewLNPTest", + "compilationUnitId" : "acm003858jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006174jsd" ], + "content" : [ "acm003862jsd", "acm003863jsd", "acm003864jsd", "acm003865jsd", "acm003866jsd", "acm003867jsd", "acm003868jsd", "acm003869jsd", "acm003870jsd", "acm003871jsd", "acm003872jsd", "acm003873jsd", "acm003874jsd", "acm003875jsd" ] + }, + "acm003877jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003877jsd", + "name" : "InstructorCourseUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003894jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003878jsd" : { + "type" : "CodePackage", + "id" : "acm003878jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003879jsd" ] + }, + "acm003879jsd" : { + "type" : "CodePackage", + "id" : "acm003879jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003880jsd" ] + }, + "acm003880jsd" : { + "type" : "CodePackage", + "id" : "acm003880jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003877jsd" ] + }, + "acm003881jsd" : { + "type" : "ControlElement", + "id" : "acm003881jsd", + "name" : "getTestData" + }, + "acm003882jsd" : { + "type" : "ControlElement", + "id" : "acm003882jsd", + "name" : "generateCourses" + }, + "acm003883jsd" : { + "type" : "ControlElement", + "id" : "acm003883jsd", + "name" : "generateInstructors" + }, + "acm003884jsd" : { + "type" : "ControlElement", + "id" : "acm003884jsd", + "name" : "generateFeedbackSessions" + }, + "acm003885jsd" : { + "type" : "ControlElement", + "id" : "acm003885jsd", + "name" : "generateCsvHeaders" + }, + "acm003886jsd" : { + "type" : "ControlElement", + "id" : "acm003886jsd", + "name" : "generateCsvData" + }, + "acm003887jsd" : { + "type" : "ControlElement", + "id" : "acm003887jsd", + "name" : "getRequestHeaders" + }, + "acm003888jsd" : { + "type" : "ControlElement", + "id" : "acm003888jsd", + "name" : "getTestEndpoint" + }, + "acm003889jsd" : { + "type" : "ControlElement", + "id" : "acm003889jsd", + "name" : "getLnpTestPlan" + }, + "acm003890jsd" : { + "type" : "ControlElement", + "id" : "acm003890jsd", + "name" : "setupSpecification" + }, + "acm003891jsd" : { + "type" : "ControlElement", + "id" : "acm003891jsd", + "name" : "classSetup" + }, + "acm003892jsd" : { + "type" : "ControlElement", + "id" : "acm003892jsd", + "name" : "runLnpTest" + }, + "acm003893jsd" : { + "type" : "ControlElement", + "id" : "acm003893jsd", + "name" : "classTearDown" + }, + "acm003894jsd" : { + "type" : "ClassUnit", + "id" : "acm003894jsd", + "name" : "InstructorCourseUpdateLNPTest", + "compilationUnitId" : "acm003877jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004332jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm006174jsd" ], + "content" : [ "acm003881jsd", "acm003882jsd", "acm003883jsd", "acm003884jsd", "acm003885jsd", "acm003886jsd", "acm003887jsd", "acm003888jsd", "acm003889jsd", "acm003890jsd", "acm003891jsd", "acm003892jsd", "acm003893jsd" ] + }, + "acm003895jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003895jsd", + "name" : "InstructorSessionResultLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003919jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003896jsd" : { + "type" : "CodePackage", + "id" : "acm003896jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003897jsd" ] + }, + "acm003897jsd" : { + "type" : "CodePackage", + "id" : "acm003897jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003898jsd" ] + }, + "acm003898jsd" : { + "type" : "CodePackage", + "id" : "acm003898jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003895jsd" ] + }, + "acm003899jsd" : { + "type" : "ControlElement", + "id" : "acm003899jsd", + "name" : "getTestData" + }, + "acm003900jsd" : { + "type" : "ControlElement", + "id" : "acm003900jsd", + "name" : "generateAccounts" + }, + "acm003901jsd" : { + "type" : "ControlElement", + "id" : "acm003901jsd", + "name" : "generateCourses" + }, + "acm003902jsd" : { + "type" : "ControlElement", + "id" : "acm003902jsd", + "name" : "generateInstructors" + }, + "acm003903jsd" : { + "type" : "ControlElement", + "id" : "acm003903jsd", + "name" : "generateStudents" + }, + "acm003904jsd" : { + "type" : "ControlElement", + "id" : "acm003904jsd", + "name" : "generateFeedbackSessions" + }, + "acm003905jsd" : { + "type" : "ControlElement", + "id" : "acm003905jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003906jsd" : { + "type" : "ControlElement", + "id" : "acm003906jsd", + "name" : "generateFeedbackResponses" + }, + "acm003907jsd" : { + "type" : "ControlElement", + "id" : "acm003907jsd", + "name" : "generateCsvHeaders" + }, + "acm003908jsd" : { + "type" : "ControlElement", + "id" : "acm003908jsd", + "name" : "generateCsvData" + }, + "acm003909jsd" : { + "type" : "ControlElement", + "id" : "acm003909jsd", + "name" : "getLnpTestPlan" + }, + "acm003910jsd" : { + "type" : "ControlElement", + "id" : "acm003910jsd", + "name" : "setupSpecification" + }, + "acm003911jsd" : { + "type" : "ControlElement", + "id" : "acm003911jsd", + "name" : "addLoadPageController" + }, + "acm003912jsd" : { + "type" : "ControlElement", + "id" : "acm003912jsd", + "name" : "addLoadSectionsController" + }, + "acm003913jsd" : { + "type" : "ControlElement", + "id" : "acm003913jsd", + "name" : "addLoadNoResponsePanelController" + }, + "acm003914jsd" : { + "type" : "ControlElement", + "id" : "acm003914jsd", + "name" : "addLoadQuestionPanelController" + }, + "acm003915jsd" : { + "type" : "ControlElement", + "id" : "acm003915jsd", + "name" : "addLoadSectionPanelController" + }, + "acm003916jsd" : { + "type" : "ControlElement", + "id" : "acm003916jsd", + "name" : "classSetup" + }, + "acm003917jsd" : { + "type" : "ControlElement", + "id" : "acm003917jsd", + "name" : "runLnpTest" + }, + "acm003918jsd" : { + "type" : "ControlElement", + "id" : "acm003918jsd", + "name" : "classTearDown" + }, + "acm003919jsd" : { + "type" : "ClassUnit", + "id" : "acm003919jsd", + "name" : "InstructorSessionResultLNPTest", + "compilationUnitId" : "acm003895jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm003899jsd", "acm003900jsd", "acm003901jsd", "acm003902jsd", "acm003903jsd", "acm003904jsd", "acm003905jsd", "acm003906jsd", "acm003907jsd", "acm003908jsd", "acm003909jsd", "acm003910jsd", "acm003911jsd", "acm003912jsd", "acm003913jsd", "acm003914jsd", "acm003915jsd", "acm003916jsd", "acm003917jsd", "acm003918jsd" ] + }, + "acm003920jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003920jsd", + "name" : "InstructorStudentCascadingUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003943jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003921jsd" : { + "type" : "CodePackage", + "id" : "acm003921jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003922jsd" ] + }, + "acm003922jsd" : { + "type" : "CodePackage", + "id" : "acm003922jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003923jsd" ] + }, + "acm003923jsd" : { + "type" : "CodePackage", + "id" : "acm003923jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003920jsd" ] + }, + "acm003924jsd" : { + "type" : "ControlElement", + "id" : "acm003924jsd", + "name" : "getTestData" + }, + "acm003925jsd" : { + "type" : "ControlElement", + "id" : "acm003925jsd", + "name" : "generateCourses" + }, + "acm003926jsd" : { + "type" : "ControlElement", + "id" : "acm003926jsd", + "name" : "generateStudents" + }, + "acm003927jsd" : { + "type" : "ControlElement", + "id" : "acm003927jsd", + "name" : "generateFeedbackResponses" + }, + "acm003928jsd" : { + "type" : "ControlElement", + "id" : "acm003928jsd", + "name" : "generateFeedbackResponseComments" + }, + "acm003929jsd" : { + "type" : "ControlElement", + "id" : "acm003929jsd", + "name" : "generateInstructors" + }, + "acm003930jsd" : { + "type" : "ControlElement", + "id" : "acm003930jsd", + "name" : "generateCsvHeaders" + }, + "acm003931jsd" : { + "type" : "ControlElement", + "id" : "acm003931jsd", + "name" : "generateCsvData" + }, + "acm003932jsd" : { + "type" : "ControlElement", + "id" : "acm003932jsd", + "name" : "getRequestHeaders" + }, + "acm003933jsd" : { + "type" : "ControlElement", + "id" : "acm003933jsd", + "name" : "getTestEndpoint" + }, + "acm003934jsd" : { + "type" : "ControlElement", + "id" : "acm003934jsd", + "name" : "createTestData" + }, + "acm003935jsd" : { + "type" : "ControlElement", + "id" : "acm003935jsd", + "name" : "getCsvConfigPath" + }, + "acm003936jsd" : { + "type" : "ControlElement", + "id" : "acm003936jsd", + "name" : "createCsvConfigDataFile" + }, + "acm003937jsd" : { + "type" : "ControlElement", + "id" : "acm003937jsd", + "name" : "getLnpTestPlan" + }, + "acm003938jsd" : { + "type" : "ControlElement", + "id" : "acm003938jsd", + "name" : "setupSpecification" + }, + "acm003939jsd" : { + "type" : "ControlElement", + "id" : "acm003939jsd", + "name" : "classSetup" + }, + "acm003940jsd" : { + "type" : "ControlElement", + "id" : "acm003940jsd", + "name" : "runLnpTest" + }, + "acm003941jsd" : { + "type" : "ControlElement", + "id" : "acm003941jsd", + "name" : "deleteDataFiles" + }, + "acm003942jsd" : { + "type" : "ControlElement", + "id" : "acm003942jsd", + "name" : "classTearDown" + }, + "acm003943jsd" : { + "type" : "ClassUnit", + "id" : "acm003943jsd", + "name" : "InstructorStudentCascadingUpdateLNPTest", + "compilationUnitId" : "acm003920jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004332jsd", "acm004598jsd", "acm004871jsd", "acm004971jsd", "acm005233jsd", "acm005412jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm003924jsd", "acm003925jsd", "acm003926jsd", "acm003927jsd", "acm003928jsd", "acm003929jsd", "acm003930jsd", "acm003931jsd", "acm003932jsd", "acm003933jsd", "acm003934jsd", "acm003935jsd", "acm003936jsd", "acm003937jsd", "acm003938jsd", "acm003939jsd", "acm003940jsd", "acm003941jsd", "acm003942jsd" ] + }, + "acm003944jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003944jsd", + "name" : "InstructorStudentEnrollmentLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003960jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003945jsd" : { + "type" : "CodePackage", + "id" : "acm003945jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003946jsd" ] + }, + "acm003946jsd" : { + "type" : "CodePackage", + "id" : "acm003946jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003947jsd" ] + }, + "acm003947jsd" : { + "type" : "CodePackage", + "id" : "acm003947jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003944jsd" ] + }, + "acm003948jsd" : { + "type" : "ControlElement", + "id" : "acm003948jsd", + "name" : "getTestData" + }, + "acm003949jsd" : { + "type" : "ControlElement", + "id" : "acm003949jsd", + "name" : "generateCourses" + }, + "acm003950jsd" : { + "type" : "ControlElement", + "id" : "acm003950jsd", + "name" : "generateInstructors" + }, + "acm003951jsd" : { + "type" : "ControlElement", + "id" : "acm003951jsd", + "name" : "generateCsvHeaders" + }, + "acm003952jsd" : { + "type" : "ControlElement", + "id" : "acm003952jsd", + "name" : "generateCsvData" + }, + "acm003953jsd" : { + "type" : "ControlElement", + "id" : "acm003953jsd", + "name" : "getRequestHeaders" + }, + "acm003954jsd" : { + "type" : "ControlElement", + "id" : "acm003954jsd", + "name" : "getTestEndpoint" + }, + "acm003955jsd" : { + "type" : "ControlElement", + "id" : "acm003955jsd", + "name" : "getLnpTestPlan" + }, + "acm003956jsd" : { + "type" : "ControlElement", + "id" : "acm003956jsd", + "name" : "setupSpecification" + }, + "acm003957jsd" : { + "type" : "ControlElement", + "id" : "acm003957jsd", + "name" : "classSetup" + }, + "acm003958jsd" : { + "type" : "ControlElement", + "id" : "acm003958jsd", + "name" : "runLnpTest" + }, + "acm003959jsd" : { + "type" : "ControlElement", + "id" : "acm003959jsd", + "name" : "classTearDown" + }, + "acm003960jsd" : { + "type" : "ClassUnit", + "id" : "acm003960jsd", + "name" : "InstructorStudentEnrollmentLNPTest", + "compilationUnitId" : "acm003944jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004332jsd", "acm004598jsd", "acm005233jsd", "acm006174jsd" ], + "content" : [ "acm003948jsd", "acm003949jsd", "acm003950jsd", "acm003951jsd", "acm003952jsd", "acm003953jsd", "acm003954jsd", "acm003955jsd", "acm003956jsd", "acm003957jsd", "acm003958jsd", "acm003959jsd" ] + }, + "acm003961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003961jsd", + "name" : "InstructorUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm003982jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003962jsd" : { + "type" : "CodePackage", + "id" : "acm003962jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003963jsd" ] + }, + "acm003963jsd" : { + "type" : "CodePackage", + "id" : "acm003963jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003964jsd" ] + }, + "acm003964jsd" : { + "type" : "CodePackage", + "id" : "acm003964jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003961jsd" ] + }, + "acm003965jsd" : { + "type" : "ControlElement", + "id" : "acm003965jsd", + "name" : "getTestData" + }, + "acm003966jsd" : { + "type" : "ControlElement", + "id" : "acm003966jsd", + "name" : "generateCourses" + }, + "acm003967jsd" : { + "type" : "ControlElement", + "id" : "acm003967jsd", + "name" : "generateInstructors" + }, + "acm003968jsd" : { + "type" : "ControlElement", + "id" : "acm003968jsd", + "name" : "generateStudents" + }, + "acm003969jsd" : { + "type" : "ControlElement", + "id" : "acm003969jsd", + "name" : "generateFeedbackSessions" + }, + "acm003970jsd" : { + "type" : "ControlElement", + "id" : "acm003970jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003971jsd" : { + "type" : "ControlElement", + "id" : "acm003971jsd", + "name" : "generateFeedbackResponses" + }, + "acm003972jsd" : { + "type" : "ControlElement", + "id" : "acm003972jsd", + "name" : "generateFeedbackResponseComments" + }, + "acm003973jsd" : { + "type" : "ControlElement", + "id" : "acm003973jsd", + "name" : "generateCsvHeaders" + }, + "acm003974jsd" : { + "type" : "ControlElement", + "id" : "acm003974jsd", + "name" : "generateCsvData" + }, + "acm003975jsd" : { + "type" : "ControlElement", + "id" : "acm003975jsd", + "name" : "getRequestHeaders" + }, + "acm003976jsd" : { + "type" : "ControlElement", + "id" : "acm003976jsd", + "name" : "getTestEndpoint" + }, + "acm003977jsd" : { + "type" : "ControlElement", + "id" : "acm003977jsd", + "name" : "getLnpTestPlan" + }, + "acm003978jsd" : { + "type" : "ControlElement", + "id" : "acm003978jsd", + "name" : "setupSpecification" + }, + "acm003979jsd" : { + "type" : "ControlElement", + "id" : "acm003979jsd", + "name" : "classSetup" + }, + "acm003980jsd" : { + "type" : "ControlElement", + "id" : "acm003980jsd", + "name" : "runLnpTest" + }, + "acm003981jsd" : { + "type" : "ControlElement", + "id" : "acm003981jsd", + "name" : "classTearDown" + }, + "acm003982jsd" : { + "type" : "ClassUnit", + "id" : "acm003982jsd", + "name" : "InstructorUpdateLNPTest", + "compilationUnitId" : "acm003961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm003965jsd", "acm003966jsd", "acm003967jsd", "acm003968jsd", "acm003969jsd", "acm003970jsd", "acm003971jsd", "acm003972jsd", "acm003973jsd", "acm003974jsd", "acm003975jsd", "acm003976jsd", "acm003977jsd", "acm003978jsd", "acm003979jsd", "acm003980jsd", "acm003981jsd" ] + }, + "acm003983jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003983jsd", + "name" : "StudentEmailUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm004003jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003984jsd" : { + "type" : "CodePackage", + "id" : "acm003984jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm003985jsd" ] + }, + "acm003985jsd" : { + "type" : "CodePackage", + "id" : "acm003985jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm003986jsd" ] + }, + "acm003986jsd" : { + "type" : "CodePackage", + "id" : "acm003986jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm003983jsd" ] + }, + "acm003987jsd" : { + "type" : "ControlElement", + "id" : "acm003987jsd", + "name" : "getTestData" + }, + "acm003988jsd" : { + "type" : "ControlElement", + "id" : "acm003988jsd", + "name" : "generateCourses" + }, + "acm003989jsd" : { + "type" : "ControlElement", + "id" : "acm003989jsd", + "name" : "generateInstructors" + }, + "acm003990jsd" : { + "type" : "ControlElement", + "id" : "acm003990jsd", + "name" : "generateStudents" + }, + "acm003991jsd" : { + "type" : "ControlElement", + "id" : "acm003991jsd", + "name" : "generateFeedbackSessions" + }, + "acm003992jsd" : { + "type" : "ControlElement", + "id" : "acm003992jsd", + "name" : "generateFeedbackQuestions" + }, + "acm003993jsd" : { + "type" : "ControlElement", + "id" : "acm003993jsd", + "name" : "generateFeedbackResponses" + }, + "acm003994jsd" : { + "type" : "ControlElement", + "id" : "acm003994jsd", + "name" : "generateCsvHeaders" + }, + "acm003995jsd" : { + "type" : "ControlElement", + "id" : "acm003995jsd", + "name" : "generateCsvData" + }, + "acm003996jsd" : { + "type" : "ControlElement", + "id" : "acm003996jsd", + "name" : "getRequestHeaders" + }, + "acm003997jsd" : { + "type" : "ControlElement", + "id" : "acm003997jsd", + "name" : "getTestEndpoint" + }, + "acm003998jsd" : { + "type" : "ControlElement", + "id" : "acm003998jsd", + "name" : "getLnpTestPlan" + }, + "acm003999jsd" : { + "type" : "ControlElement", + "id" : "acm003999jsd", + "name" : "setupSpecification" + }, + "acm004000jsd" : { + "type" : "ControlElement", + "id" : "acm004000jsd", + "name" : "classSetup" + }, + "acm004001jsd" : { + "type" : "ControlElement", + "id" : "acm004001jsd", + "name" : "runLnpTest" + }, + "acm004002jsd" : { + "type" : "ControlElement", + "id" : "acm004002jsd", + "name" : "classTearDown" + }, + "acm004003jsd" : { + "type" : "ClassUnit", + "id" : "acm004003jsd", + "name" : "StudentEmailUpdateLNPTest", + "compilationUnitId" : "acm003983jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm003987jsd", "acm003988jsd", "acm003989jsd", "acm003990jsd", "acm003991jsd", "acm003992jsd", "acm003993jsd", "acm003994jsd", "acm003995jsd", "acm003996jsd", "acm003997jsd", "acm003998jsd", "acm003999jsd", "acm004000jsd", "acm004001jsd", "acm004002jsd" ] + }, + "acm004004jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004004jsd", + "name" : "StudentSectionUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm004024jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004005jsd" : { + "type" : "CodePackage", + "id" : "acm004005jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004006jsd" ] + }, + "acm004006jsd" : { + "type" : "CodePackage", + "id" : "acm004006jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004007jsd" ] + }, + "acm004007jsd" : { + "type" : "CodePackage", + "id" : "acm004007jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm004004jsd" ] + }, + "acm004008jsd" : { + "type" : "ControlElement", + "id" : "acm004008jsd", + "name" : "getTestData" + }, + "acm004009jsd" : { + "type" : "ControlElement", + "id" : "acm004009jsd", + "name" : "generateCourses" + }, + "acm004010jsd" : { + "type" : "ControlElement", + "id" : "acm004010jsd", + "name" : "generateInstructors" + }, + "acm004011jsd" : { + "type" : "ControlElement", + "id" : "acm004011jsd", + "name" : "generateStudents" + }, + "acm004012jsd" : { + "type" : "ControlElement", + "id" : "acm004012jsd", + "name" : "generateFeedbackSessions" + }, + "acm004013jsd" : { + "type" : "ControlElement", + "id" : "acm004013jsd", + "name" : "generateFeedbackQuestions" + }, + "acm004014jsd" : { + "type" : "ControlElement", + "id" : "acm004014jsd", + "name" : "generateFeedbackResponses" + }, + "acm004015jsd" : { + "type" : "ControlElement", + "id" : "acm004015jsd", + "name" : "generateCsvHeaders" + }, + "acm004016jsd" : { + "type" : "ControlElement", + "id" : "acm004016jsd", + "name" : "generateCsvData" + }, + "acm004017jsd" : { + "type" : "ControlElement", + "id" : "acm004017jsd", + "name" : "getRequestHeaders" + }, + "acm004018jsd" : { + "type" : "ControlElement", + "id" : "acm004018jsd", + "name" : "getTestEndpoint" + }, + "acm004019jsd" : { + "type" : "ControlElement", + "id" : "acm004019jsd", + "name" : "getLnpTestPlan" + }, + "acm004020jsd" : { + "type" : "ControlElement", + "id" : "acm004020jsd", + "name" : "setupSpecification" + }, + "acm004021jsd" : { + "type" : "ControlElement", + "id" : "acm004021jsd", + "name" : "classSetup" + }, + "acm004022jsd" : { + "type" : "ControlElement", + "id" : "acm004022jsd", + "name" : "runLnpTest" + }, + "acm004023jsd" : { + "type" : "ControlElement", + "id" : "acm004023jsd", + "name" : "classTearDown" + }, + "acm004024jsd" : { + "type" : "ClassUnit", + "id" : "acm004024jsd", + "name" : "StudentSectionUpdateLNPTest", + "compilationUnitId" : "acm004004jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm004008jsd", "acm004009jsd", "acm004010jsd", "acm004011jsd", "acm004012jsd", "acm004013jsd", "acm004014jsd", "acm004015jsd", "acm004016jsd", "acm004017jsd", "acm004018jsd", "acm004019jsd", "acm004020jsd", "acm004021jsd", "acm004022jsd", "acm004023jsd" ] + }, + "acm004025jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004025jsd", + "name" : "StudentTeamUpdateLNPTest", + "parentId" : "acm003789jsd", + "content" : [ "acm004045jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004026jsd" : { + "type" : "CodePackage", + "id" : "acm004026jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004027jsd" ] + }, + "acm004027jsd" : { + "type" : "CodePackage", + "id" : "acm004027jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004028jsd" ] + }, + "acm004028jsd" : { + "type" : "CodePackage", + "id" : "acm004028jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm004025jsd" ] + }, + "acm004029jsd" : { + "type" : "ControlElement", + "id" : "acm004029jsd", + "name" : "getTestData" + }, + "acm004030jsd" : { + "type" : "ControlElement", + "id" : "acm004030jsd", + "name" : "generateCourses" + }, + "acm004031jsd" : { + "type" : "ControlElement", + "id" : "acm004031jsd", + "name" : "generateInstructors" + }, + "acm004032jsd" : { + "type" : "ControlElement", + "id" : "acm004032jsd", + "name" : "generateStudents" + }, + "acm004033jsd" : { + "type" : "ControlElement", + "id" : "acm004033jsd", + "name" : "generateFeedbackSessions" + }, + "acm004034jsd" : { + "type" : "ControlElement", + "id" : "acm004034jsd", + "name" : "generateFeedbackQuestions" + }, + "acm004035jsd" : { + "type" : "ControlElement", + "id" : "acm004035jsd", + "name" : "generateFeedbackResponses" + }, + "acm004036jsd" : { + "type" : "ControlElement", + "id" : "acm004036jsd", + "name" : "generateCsvHeaders" + }, + "acm004037jsd" : { + "type" : "ControlElement", + "id" : "acm004037jsd", + "name" : "generateCsvData" + }, + "acm004038jsd" : { + "type" : "ControlElement", + "id" : "acm004038jsd", + "name" : "getRequestHeaders" + }, + "acm004039jsd" : { + "type" : "ControlElement", + "id" : "acm004039jsd", + "name" : "getTestEndpoint" + }, + "acm004040jsd" : { + "type" : "ControlElement", + "id" : "acm004040jsd", + "name" : "getLnpTestPlan" + }, + "acm004041jsd" : { + "type" : "ControlElement", + "id" : "acm004041jsd", + "name" : "setupSpecification" + }, + "acm004042jsd" : { + "type" : "ControlElement", + "id" : "acm004042jsd", + "name" : "classSetup" + }, + "acm004043jsd" : { + "type" : "ControlElement", + "id" : "acm004043jsd", + "name" : "runLnpTest" + }, + "acm004044jsd" : { + "type" : "ControlElement", + "id" : "acm004044jsd", + "name" : "classTearDown" + }, + "acm004045jsd" : { + "type" : "ClassUnit", + "id" : "acm004045jsd", + "name" : "StudentTeamUpdateLNPTest", + "compilationUnitId" : "acm004025jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003815jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004126jsd", "acm004205jsd", "acm004226jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005977jsd", "acm006116jsd", "acm006127jsd", "acm006174jsd" ], + "content" : [ "acm004029jsd", "acm004030jsd", "acm004031jsd", "acm004032jsd", "acm004033jsd", "acm004034jsd", "acm004035jsd", "acm004036jsd", "acm004037jsd", "acm004038jsd", "acm004039jsd", "acm004040jsd", "acm004041jsd", "acm004042jsd", "acm004043jsd", "acm004044jsd" ] + }, + "acm004046jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004046jsd", + "name" : "package-info", + "parentId" : "acm003789jsd", + "content" : [ ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "cases" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004047jsd" : { + "type" : "CodePackage", + "id" : "acm004047jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004048jsd" ] + }, + "acm004048jsd" : { + "type" : "CodePackage", + "id" : "acm004048jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004049jsd" ] + }, + "acm004049jsd" : { + "type" : "CodePackage", + "id" : "acm004049jsd", + "name" : "cases", + "parentId" : null, + "content" : [ "acm004046jsd" ] + }, + "acm004050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004050jsd", + "name" : "BackDoor", + "parentId" : "acm004053jsd", + "content" : [ "acm004059jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004051jsd" : { + "type" : "CodePackage", + "id" : "acm004051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004052jsd" ] + }, + "acm004052jsd" : { + "type" : "CodePackage", + "id" : "acm004052jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004053jsd" ] + }, + "acm004053jsd" : { + "type" : "CodePackage", + "id" : "acm004053jsd", + "name" : "util", + "parentId" : "acm003788jsd", + "content" : [ "acm004050jsd", "acm004060jsd", "acm004083jsd", "acm004092jsd", "acm004111jsd", "acm004127jsd", "acm004133jsd" ] + }, + "acm004054jsd" : { + "type" : "ControlElement", + "id" : "acm004054jsd", + "name" : "BackDoor" + }, + "acm004055jsd" : { + "type" : "ControlElement", + "id" : "acm004055jsd", + "name" : "getInstance" + }, + "acm004056jsd" : { + "type" : "ControlElement", + "id" : "acm004056jsd", + "name" : "getAppUrl" + }, + "acm004057jsd" : { + "type" : "ControlElement", + "id" : "acm004057jsd", + "name" : "getBackdoorKey" + }, + "acm004058jsd" : { + "type" : "ControlElement", + "id" : "acm004058jsd", + "name" : "getCsrfKey" + }, + "acm004059jsd" : { + "type" : "ClassUnit", + "id" : "acm004059jsd", + "name" : "BackDoor", + "compilationUnitId" : "acm004050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011936jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004059jsd" ], + "content" : [ "acm004054jsd", "acm004055jsd", "acm004056jsd", "acm004057jsd", "acm004058jsd" ] + }, + "acm004060jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004060jsd", + "name" : "JMeterElements", + "parentId" : "acm004053jsd", + "content" : [ "acm004082jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004061jsd" : { + "type" : "CodePackage", + "id" : "acm004061jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004062jsd" ] + }, + "acm004062jsd" : { + "type" : "CodePackage", + "id" : "acm004062jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004063jsd" ] + }, + "acm004063jsd" : { + "type" : "CodePackage", + "id" : "acm004063jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004060jsd" ] + }, + "acm004064jsd" : { + "type" : "ControlElement", + "id" : "acm004064jsd", + "name" : "JMeterElements" + }, + "acm004065jsd" : { + "type" : "ControlElement", + "id" : "acm004065jsd", + "name" : "testPlan" + }, + "acm004066jsd" : { + "type" : "ControlElement", + "id" : "acm004066jsd", + "name" : "threadGroup" + }, + "acm004067jsd" : { + "type" : "ControlElement", + "id" : "acm004067jsd", + "name" : "loopController" + }, + "acm004068jsd" : { + "type" : "ControlElement", + "id" : "acm004068jsd", + "name" : "csvDataSet" + }, + "acm004069jsd" : { + "type" : "ControlElement", + "id" : "acm004069jsd", + "name" : "cookieManager" + }, + "acm004070jsd" : { + "type" : "ControlElement", + "id" : "acm004070jsd", + "name" : "defaultSampler" + }, + "acm004071jsd" : { + "type" : "ControlElement", + "id" : "acm004071jsd", + "name" : "defaultSampler" + }, + "acm004072jsd" : { + "type" : "ControlElement", + "id" : "acm004072jsd", + "name" : "defaultSampler" + }, + "acm004073jsd" : { + "type" : "ControlElement", + "id" : "acm004073jsd", + "name" : "loginSampler" + }, + "acm004074jsd" : { + "type" : "ControlElement", + "id" : "acm004074jsd", + "name" : "genericController" + }, + "acm004075jsd" : { + "type" : "ControlElement", + "id" : "acm004075jsd", + "name" : "onceOnlyController" + }, + "acm004076jsd" : { + "type" : "ControlElement", + "id" : "acm004076jsd", + "name" : "foreachController" + }, + "acm004077jsd" : { + "type" : "ControlElement", + "id" : "acm004077jsd", + "name" : "regexExtractor" + }, + "acm004078jsd" : { + "type" : "ControlElement", + "id" : "acm004078jsd", + "name" : "csrfExtractor" + }, + "acm004079jsd" : { + "type" : "ControlElement", + "id" : "acm004079jsd", + "name" : "headerManager" + }, + "acm004080jsd" : { + "type" : "ControlElement", + "id" : "acm004080jsd", + "name" : "httpSampler" + }, + "acm004081jsd" : { + "type" : "ControlElement", + "id" : "acm004081jsd", + "name" : "httpGetSampler" + }, + "acm004082jsd" : { + "type" : "ClassUnit", + "id" : "acm004082jsd", + "name" : "JMeterElements", + "compilationUnitId" : "acm004060jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004064jsd", "acm004065jsd", "acm004066jsd", "acm004067jsd", "acm004068jsd", "acm004069jsd", "acm004070jsd", "acm004071jsd", "acm004072jsd", "acm004073jsd", "acm004074jsd", "acm004075jsd", "acm004076jsd", "acm004077jsd", "acm004078jsd", "acm004079jsd", "acm004080jsd", "acm004081jsd" ] + }, + "acm004083jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004083jsd", + "name" : "LNPResultsStatistics", + "parentId" : "acm004053jsd", + "content" : [ "acm004091jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004084jsd" : { + "type" : "CodePackage", + "id" : "acm004084jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004085jsd" ] + }, + "acm004085jsd" : { + "type" : "CodePackage", + "id" : "acm004085jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004086jsd" ] + }, + "acm004086jsd" : { + "type" : "CodePackage", + "id" : "acm004086jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004083jsd" ] + }, + "acm004087jsd" : { + "type" : "ControlElement", + "id" : "acm004087jsd", + "name" : "displayLnpResultsStatistics" + }, + "acm004088jsd" : { + "type" : "ControlElement", + "id" : "acm004088jsd", + "name" : "getMeanResTime" + }, + "acm004089jsd" : { + "type" : "ControlElement", + "id" : "acm004089jsd", + "name" : "getErrorPct" + }, + "acm004090jsd" : { + "type" : "ControlElement", + "id" : "acm004090jsd", + "name" : "formatResultsStats" + }, + "acm004091jsd" : { + "type" : "ClassUnit", + "id" : "acm004091jsd", + "name" : "LNPResultsStatistics", + "compilationUnitId" : "acm004083jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004087jsd", "acm004088jsd", "acm004089jsd", "acm004090jsd" ] + }, + "acm004092jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004092jsd", + "name" : "LNPSpecification", + "parentId" : "acm004053jsd", + "content" : [ "acm004105jsd", "acm004110jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004093jsd" : { + "type" : "CodePackage", + "id" : "acm004093jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004094jsd" ] + }, + "acm004094jsd" : { + "type" : "CodePackage", + "id" : "acm004094jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004095jsd" ] + }, + "acm004095jsd" : { + "type" : "CodePackage", + "id" : "acm004095jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004092jsd" ] + }, + "acm004096jsd" : { + "type" : "ControlElement", + "id" : "acm004096jsd", + "name" : "LNPSpecification" + }, + "acm004097jsd" : { + "type" : "ControlElement", + "id" : "acm004097jsd", + "name" : "verifyLnpTestSuccess" + }, + "acm004098jsd" : { + "type" : "ControlElement", + "id" : "acm004098jsd", + "name" : "checkMeanResTimeLimit" + }, + "acm004099jsd" : { + "type" : "ControlElement", + "id" : "acm004099jsd", + "name" : "checkErrorLimit" + }, + "acm004100jsd" : { + "type" : "ControlElement", + "id" : "acm004100jsd", + "name" : "builder" + }, + "acm004101jsd" : { + "type" : "ControlElement", + "id" : "acm004101jsd", + "name" : "Builder" + }, + "acm004102jsd" : { + "type" : "ControlElement", + "id" : "acm004102jsd", + "name" : "withErrorRateLimit" + }, + "acm004103jsd" : { + "type" : "ControlElement", + "id" : "acm004103jsd", + "name" : "withMeanRespTimeLimit" + }, + "acm004104jsd" : { + "type" : "ControlElement", + "id" : "acm004104jsd", + "name" : "build" + }, + "acm004105jsd" : { + "type" : "ClassUnit", + "id" : "acm004105jsd", + "name" : "LNPSpecification", + "compilationUnitId" : "acm004092jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004091jsd", "acm004105jsd", "acm004110jsd" ], + "content" : [ "acm004096jsd", "acm004097jsd", "acm004098jsd", "acm004099jsd", "acm004100jsd", "acm004101jsd", "acm004102jsd", "acm004103jsd", "acm004104jsd" ] + }, + "acm004106jsd" : { + "type" : "ControlElement", + "id" : "acm004106jsd", + "name" : "Builder" + }, + "acm004107jsd" : { + "type" : "ControlElement", + "id" : "acm004107jsd", + "name" : "withErrorRateLimit" + }, + "acm004108jsd" : { + "type" : "ControlElement", + "id" : "acm004108jsd", + "name" : "withMeanRespTimeLimit" + }, + "acm004109jsd" : { + "type" : "ControlElement", + "id" : "acm004109jsd", + "name" : "build" + }, + "acm004110jsd" : { + "type" : "ClassUnit", + "id" : "acm004110jsd", + "name" : "Builder", + "compilationUnitId" : "acm004092jsd", + "parentDatatypeId" : "acm004105jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004105jsd", "acm004110jsd" ], + "content" : [ "acm004106jsd", "acm004107jsd", "acm004108jsd", "acm004109jsd" ] + }, + "acm004111jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004111jsd", + "name" : "LNPTestData", + "parentId" : "acm004053jsd", + "content" : [ "acm004126jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004112jsd" : { + "type" : "CodePackage", + "id" : "acm004112jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004113jsd" ] + }, + "acm004113jsd" : { + "type" : "CodePackage", + "id" : "acm004113jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004114jsd" ] + }, + "acm004114jsd" : { + "type" : "CodePackage", + "id" : "acm004114jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004111jsd" ] + }, + "acm004115jsd" : { + "type" : "ControlElement", + "id" : "acm004115jsd", + "name" : "generateAccounts" + }, + "acm004116jsd" : { + "type" : "ControlElement", + "id" : "acm004116jsd", + "name" : "generateCourses" + }, + "acm004117jsd" : { + "type" : "ControlElement", + "id" : "acm004117jsd", + "name" : "generateInstructors" + }, + "acm004118jsd" : { + "type" : "ControlElement", + "id" : "acm004118jsd", + "name" : "generateStudents" + }, + "acm004119jsd" : { + "type" : "ControlElement", + "id" : "acm004119jsd", + "name" : "generateFeedbackSessions" + }, + "acm004120jsd" : { + "type" : "ControlElement", + "id" : "acm004120jsd", + "name" : "generateFeedbackQuestions" + }, + "acm004121jsd" : { + "type" : "ControlElement", + "id" : "acm004121jsd", + "name" : "generateFeedbackResponses" + }, + "acm004122jsd" : { + "type" : "ControlElement", + "id" : "acm004122jsd", + "name" : "generateFeedbackResponseComments" + }, + "acm004123jsd" : { + "type" : "ControlElement", + "id" : "acm004123jsd", + "name" : "generateJsonData" + }, + "acm004124jsd" : { + "type" : "ControlElement", + "id" : "acm004124jsd", + "name" : "generateCsvHeaders" + }, + "acm004125jsd" : { + "type" : "ControlElement", + "id" : "acm004125jsd", + "name" : "generateCsvData" + }, + "acm004126jsd" : { + "type" : "ClassUnit", + "id" : "acm004126jsd", + "name" : "LNPTestData", + "compilationUnitId" : "acm004111jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm004115jsd", "acm004116jsd", "acm004117jsd", "acm004118jsd", "acm004119jsd", "acm004120jsd", "acm004121jsd", "acm004122jsd", "acm004123jsd", "acm004124jsd", "acm004125jsd" ] + }, + "acm004127jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004127jsd", + "name" : "TestProperties", + "parentId" : "acm004053jsd", + "content" : [ "acm004132jsd" ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004128jsd" : { + "type" : "CodePackage", + "id" : "acm004128jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004129jsd" ] + }, + "acm004129jsd" : { + "type" : "CodePackage", + "id" : "acm004129jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004130jsd" ] + }, + "acm004130jsd" : { + "type" : "CodePackage", + "id" : "acm004130jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004127jsd" ] + }, + "acm004131jsd" : { + "type" : "ControlElement", + "id" : "acm004131jsd", + "name" : "TestProperties" + }, + "acm004132jsd" : { + "type" : "ClassUnit", + "id" : "acm004132jsd", + "name" : "TestProperties", + "compilationUnitId" : "acm004127jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004131jsd" ] + }, + "acm004133jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004133jsd", + "name" : "package-info", + "parentId" : "acm004053jsd", + "content" : [ ], + "pathElements" : [ "src", "lnp", "java", "teammates", "lnp", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004134jsd" : { + "type" : "CodePackage", + "id" : "acm004134jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004135jsd" ] + }, + "acm004135jsd" : { + "type" : "CodePackage", + "id" : "acm004135jsd", + "name" : "lnp", + "parentId" : null, + "content" : [ "acm004136jsd" ] + }, + "acm004136jsd" : { + "type" : "CodePackage", + "id" : "acm004136jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm004133jsd" ] + }, + "acm004137jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004137jsd", + "name" : "AttributesDeletionQuery", + "parentId" : "acm004140jsd", + "content" : [ "acm004163jsd", "acm004172jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004138jsd" : { + "type" : "CodePackage", + "id" : "acm004138jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004139jsd" ] + }, + "acm004139jsd" : { + "type" : "CodePackage", + "id" : "acm004139jsd", + "name" : "common", + "parentId" : "acm001338jsd", + "content" : [ "acm004140jsd", "acm006136jsd", "acm006205jsd" ] + }, + "acm004140jsd" : { + "type" : "CodePackage", + "id" : "acm004140jsd", + "name" : "datatransfer", + "parentId" : "acm004139jsd", + "content" : [ "acm004137jsd", "acm004173jsd", "acm004201jsd", "acm004206jsd", "acm004216jsd", "acm004227jsd", "acm004240jsd", "acm004249jsd", "acm004259jsd", "acm004287jsd", "acm004333jsd", "acm004342jsd", "acm004347jsd", "acm004352jsd", "acm004360jsd", "acm004384jsd", "acm004422jsd", "acm004433jsd", "acm005732jsd", "acm010500jsd", "acm010508jsd", "acm010523jsd", "acm010532jsd", "acm010547jsd", "acm010557jsd", "acm010573jsd", "acm010814jsd", "acm004451jsd", "acm005489jsd", "acm005740jsd" ] + }, + "acm004141jsd" : { + "type" : "ControlElement", + "id" : "acm004141jsd", + "name" : "AttributesDeletionQuery" + }, + "acm004142jsd" : { + "type" : "ControlElement", + "id" : "acm004142jsd", + "name" : "isCourseIdPresent" + }, + "acm004143jsd" : { + "type" : "ControlElement", + "id" : "acm004143jsd", + "name" : "isFeedbackSessionNamePresent" + }, + "acm004144jsd" : { + "type" : "ControlElement", + "id" : "acm004144jsd", + "name" : "isQuestionIdPresent" + }, + "acm004145jsd" : { + "type" : "ControlElement", + "id" : "acm004145jsd", + "name" : "isResponseIdPresent" + }, + "acm004146jsd" : { + "type" : "ControlElement", + "id" : "acm004146jsd", + "name" : "isUserEmailPresent" + }, + "acm004147jsd" : { + "type" : "ControlElement", + "id" : "acm004147jsd", + "name" : "isIsInstructorPresent" + }, + "acm004148jsd" : { + "type" : "ControlElement", + "id" : "acm004148jsd", + "name" : "getCourseId" + }, + "acm004149jsd" : { + "type" : "ControlElement", + "id" : "acm004149jsd", + "name" : "getFeedbackSessionName" + }, + "acm004150jsd" : { + "type" : "ControlElement", + "id" : "acm004150jsd", + "name" : "getQuestionId" + }, + "acm004151jsd" : { + "type" : "ControlElement", + "id" : "acm004151jsd", + "name" : "getResponseId" + }, + "acm004152jsd" : { + "type" : "ControlElement", + "id" : "acm004152jsd", + "name" : "getUserEmail" + }, + "acm004153jsd" : { + "type" : "ControlElement", + "id" : "acm004153jsd", + "name" : "getIsInstructor" + }, + "acm004154jsd" : { + "type" : "ControlElement", + "id" : "acm004154jsd", + "name" : "builder" + }, + "acm004155jsd" : { + "type" : "ControlElement", + "id" : "acm004155jsd", + "name" : "Builder" + }, + "acm004156jsd" : { + "type" : "ControlElement", + "id" : "acm004156jsd", + "name" : "withCourseId" + }, + "acm004157jsd" : { + "type" : "ControlElement", + "id" : "acm004157jsd", + "name" : "withFeedbackSessionName" + }, + "acm004158jsd" : { + "type" : "ControlElement", + "id" : "acm004158jsd", + "name" : "withQuestionId" + }, + "acm004159jsd" : { + "type" : "ControlElement", + "id" : "acm004159jsd", + "name" : "withResponseId" + }, + "acm004160jsd" : { + "type" : "ControlElement", + "id" : "acm004160jsd", + "name" : "withUserEmail" + }, + "acm004161jsd" : { + "type" : "ControlElement", + "id" : "acm004161jsd", + "name" : "withIsInstructor" + }, + "acm004162jsd" : { + "type" : "ControlElement", + "id" : "acm004162jsd", + "name" : "build" + }, + "acm004163jsd" : { + "type" : "ClassUnit", + "id" : "acm004163jsd", + "name" : "AttributesDeletionQuery", + "compilationUnitId" : "acm004137jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004172jsd" ], + "content" : [ "acm004141jsd", "acm004142jsd", "acm004143jsd", "acm004144jsd", "acm004145jsd", "acm004146jsd", "acm004147jsd", "acm004148jsd", "acm004149jsd", "acm004150jsd", "acm004151jsd", "acm004152jsd", "acm004153jsd", "acm004154jsd", "acm004155jsd", "acm004156jsd", "acm004157jsd", "acm004158jsd", "acm004159jsd", "acm004160jsd", "acm004161jsd", "acm004162jsd" ] + }, + "acm004164jsd" : { + "type" : "ControlElement", + "id" : "acm004164jsd", + "name" : "Builder" + }, + "acm004165jsd" : { + "type" : "ControlElement", + "id" : "acm004165jsd", + "name" : "withCourseId" + }, + "acm004166jsd" : { + "type" : "ControlElement", + "id" : "acm004166jsd", + "name" : "withFeedbackSessionName" + }, + "acm004167jsd" : { + "type" : "ControlElement", + "id" : "acm004167jsd", + "name" : "withQuestionId" + }, + "acm004168jsd" : { + "type" : "ControlElement", + "id" : "acm004168jsd", + "name" : "withResponseId" + }, + "acm004169jsd" : { + "type" : "ControlElement", + "id" : "acm004169jsd", + "name" : "withUserEmail" + }, + "acm004170jsd" : { + "type" : "ControlElement", + "id" : "acm004170jsd", + "name" : "withIsInstructor" + }, + "acm004171jsd" : { + "type" : "ControlElement", + "id" : "acm004171jsd", + "name" : "build" + }, + "acm004172jsd" : { + "type" : "ClassUnit", + "id" : "acm004172jsd", + "name" : "Builder", + "compilationUnitId" : "acm004137jsd", + "parentDatatypeId" : "acm004163jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004172jsd" ], + "content" : [ "acm004164jsd", "acm004165jsd", "acm004166jsd", "acm004167jsd", "acm004168jsd", "acm004169jsd", "acm004170jsd", "acm004171jsd" ] + }, + "acm004173jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004173jsd", + "name" : "CourseRoster", + "parentId" : "acm004140jsd", + "content" : [ "acm004195jsd", "acm004200jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004174jsd" : { + "type" : "CodePackage", + "id" : "acm004174jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004175jsd" ] + }, + "acm004175jsd" : { + "type" : "CodePackage", + "id" : "acm004175jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004176jsd" ] + }, + "acm004176jsd" : { + "type" : "CodePackage", + "id" : "acm004176jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004173jsd" ] + }, + "acm004177jsd" : { + "type" : "ControlElement", + "id" : "acm004177jsd", + "name" : "CourseRoster" + }, + "acm004178jsd" : { + "type" : "ControlElement", + "id" : "acm004178jsd", + "name" : "getStudents" + }, + "acm004179jsd" : { + "type" : "ControlElement", + "id" : "acm004179jsd", + "name" : "getInstructors" + }, + "acm004180jsd" : { + "type" : "ControlElement", + "id" : "acm004180jsd", + "name" : "getTeamToMembersTable" + }, + "acm004181jsd" : { + "type" : "ControlElement", + "id" : "acm004181jsd", + "name" : "isStudentInCourse" + }, + "acm004182jsd" : { + "type" : "ControlElement", + "id" : "acm004182jsd", + "name" : "isTeamInCourse" + }, + "acm004183jsd" : { + "type" : "ControlElement", + "id" : "acm004183jsd", + "name" : "isStudentInTeam" + }, + "acm004184jsd" : { + "type" : "ControlElement", + "id" : "acm004184jsd", + "name" : "isStudentsInSameTeam" + }, + "acm004185jsd" : { + "type" : "ControlElement", + "id" : "acm004185jsd", + "name" : "getStudentForEmail" + }, + "acm004186jsd" : { + "type" : "ControlElement", + "id" : "acm004186jsd", + "name" : "getInstructorForEmail" + }, + "acm004187jsd" : { + "type" : "ControlElement", + "id" : "acm004187jsd", + "name" : "populateStudentListByEmail" + }, + "acm004188jsd" : { + "type" : "ControlElement", + "id" : "acm004188jsd", + "name" : "populateInstructorListByEmail" + }, + "acm004189jsd" : { + "type" : "ControlElement", + "id" : "acm004189jsd", + "name" : "buildTeamToMembersTable" + }, + "acm004190jsd" : { + "type" : "ControlElement", + "id" : "acm004190jsd", + "name" : "getInfoForIdentifier" + }, + "acm004191jsd" : { + "type" : "ControlElement", + "id" : "acm004191jsd", + "name" : "ParticipantInfo" + }, + "acm004192jsd" : { + "type" : "ControlElement", + "id" : "acm004192jsd", + "name" : "getName" + }, + "acm004193jsd" : { + "type" : "ControlElement", + "id" : "acm004193jsd", + "name" : "getTeamName" + }, + "acm004194jsd" : { + "type" : "ControlElement", + "id" : "acm004194jsd", + "name" : "getSectionName" + }, + "acm004195jsd" : { + "type" : "ClassUnit", + "id" : "acm004195jsd", + "name" : "CourseRoster", + "compilationUnitId" : "acm004173jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004200jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm004177jsd", "acm004178jsd", "acm004179jsd", "acm004180jsd", "acm004181jsd", "acm004182jsd", "acm004183jsd", "acm004184jsd", "acm004185jsd", "acm004186jsd", "acm004187jsd", "acm004188jsd", "acm004189jsd", "acm004190jsd", "acm004191jsd", "acm004192jsd", "acm004193jsd", "acm004194jsd" ] + }, + "acm004196jsd" : { + "type" : "ControlElement", + "id" : "acm004196jsd", + "name" : "ParticipantInfo" + }, + "acm004197jsd" : { + "type" : "ControlElement", + "id" : "acm004197jsd", + "name" : "getName" + }, + "acm004198jsd" : { + "type" : "ControlElement", + "id" : "acm004198jsd", + "name" : "getTeamName" + }, + "acm004199jsd" : { + "type" : "ControlElement", + "id" : "acm004199jsd", + "name" : "getSectionName" + }, + "acm004200jsd" : { + "type" : "ClassUnit", + "id" : "acm004200jsd", + "name" : "ParticipantInfo", + "compilationUnitId" : "acm004173jsd", + "parentDatatypeId" : "acm004195jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004196jsd", "acm004197jsd", "acm004198jsd", "acm004199jsd" ] + }, + "acm004201jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004201jsd", + "name" : "DataBundle", + "parentId" : "acm004140jsd", + "content" : [ "acm004205jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004202jsd" : { + "type" : "CodePackage", + "id" : "acm004202jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004203jsd" ] + }, + "acm004203jsd" : { + "type" : "CodePackage", + "id" : "acm004203jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004204jsd" ] + }, + "acm004204jsd" : { + "type" : "CodePackage", + "id" : "acm004204jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004201jsd" ] + }, + "acm004205jsd" : { + "type" : "ClassUnit", + "id" : "acm004205jsd", + "name" : "DataBundle", + "compilationUnitId" : "acm004201jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd" ], + "content" : [ ] + }, + "acm004206jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004206jsd", + "name" : "ErrorLogEntry", + "parentId" : "acm004140jsd", + "content" : [ "acm004215jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004207jsd" : { + "type" : "CodePackage", + "id" : "acm004207jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004208jsd" ] + }, + "acm004208jsd" : { + "type" : "CodePackage", + "id" : "acm004208jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004209jsd" ] + }, + "acm004209jsd" : { + "type" : "CodePackage", + "id" : "acm004209jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004206jsd" ] + }, + "acm004210jsd" : { + "type" : "ControlElement", + "id" : "acm004210jsd", + "name" : "ErrorLogEntry" + }, + "acm004211jsd" : { + "type" : "ControlElement", + "id" : "acm004211jsd", + "name" : "fromLogEntry" + }, + "acm004212jsd" : { + "type" : "ControlElement", + "id" : "acm004212jsd", + "name" : "getMessage" + }, + "acm004213jsd" : { + "type" : "ControlElement", + "id" : "acm004213jsd", + "name" : "getSeverity" + }, + "acm004214jsd" : { + "type" : "ControlElement", + "id" : "acm004214jsd", + "name" : "getTraceId" + }, + "acm004215jsd" : { + "type" : "ClassUnit", + "id" : "acm004215jsd", + "name" : "ErrorLogEntry", + "compilationUnitId" : "acm004206jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004215jsd", "acm005530jsd", "acm005572jsd" ], + "content" : [ "acm004210jsd", "acm004211jsd", "acm004212jsd", "acm004213jsd", "acm004214jsd" ] + }, + "acm004216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004216jsd", + "name" : "FeedbackParticipantType", + "parentId" : "acm004140jsd", + "content" : [ "acm004226jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004217jsd" : { + "type" : "CodePackage", + "id" : "acm004217jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004218jsd" ] + }, + "acm004218jsd" : { + "type" : "CodePackage", + "id" : "acm004218jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004219jsd" ] + }, + "acm004219jsd" : { + "type" : "CodePackage", + "id" : "acm004219jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004216jsd" ] + }, + "acm004220jsd" : { + "type" : "ControlElement", + "id" : "acm004220jsd", + "name" : "FeedbackParticipantType" + }, + "acm004221jsd" : { + "type" : "ControlElement", + "id" : "acm004221jsd", + "name" : "isValidGiver" + }, + "acm004222jsd" : { + "type" : "ControlElement", + "id" : "acm004222jsd", + "name" : "isValidRecipient" + }, + "acm004223jsd" : { + "type" : "ControlElement", + "id" : "acm004223jsd", + "name" : "isValidViewer" + }, + "acm004224jsd" : { + "type" : "ControlElement", + "id" : "acm004224jsd", + "name" : "isTeam" + }, + "acm004225jsd" : { + "type" : "ControlElement", + "id" : "acm004225jsd", + "name" : "toSingularFormString" + }, + "acm004226jsd" : { + "type" : "ClassUnit", + "id" : "acm004226jsd", + "name" : "FeedbackParticipantType", + "compilationUnitId" : "acm004216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004220jsd", "acm004221jsd", "acm004222jsd", "acm004223jsd", "acm004224jsd", "acm004225jsd" ] + }, + "acm004227jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004227jsd", + "name" : "FeedbackQuestionRecipient", + "parentId" : "acm004140jsd", + "content" : [ "acm004239jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004228jsd" : { + "type" : "CodePackage", + "id" : "acm004228jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004229jsd" ] + }, + "acm004229jsd" : { + "type" : "CodePackage", + "id" : "acm004229jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004230jsd" ] + }, + "acm004230jsd" : { + "type" : "CodePackage", + "id" : "acm004230jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004227jsd" ] + }, + "acm004231jsd" : { + "type" : "ControlElement", + "id" : "acm004231jsd", + "name" : "FeedbackQuestionRecipient" + }, + "acm004232jsd" : { + "type" : "ControlElement", + "id" : "acm004232jsd", + "name" : "FeedbackQuestionRecipient" + }, + "acm004233jsd" : { + "type" : "ControlElement", + "id" : "acm004233jsd", + "name" : "getName" + }, + "acm004234jsd" : { + "type" : "ControlElement", + "id" : "acm004234jsd", + "name" : "getIdentifier" + }, + "acm004235jsd" : { + "type" : "ControlElement", + "id" : "acm004235jsd", + "name" : "getSection" + }, + "acm004236jsd" : { + "type" : "ControlElement", + "id" : "acm004236jsd", + "name" : "getTeam" + }, + "acm004237jsd" : { + "type" : "ControlElement", + "id" : "acm004237jsd", + "name" : "equals" + }, + "acm004238jsd" : { + "type" : "ControlElement", + "id" : "acm004238jsd", + "name" : "hashCode" + }, + "acm004239jsd" : { + "type" : "ClassUnit", + "id" : "acm004239jsd", + "name" : "FeedbackQuestionRecipient", + "compilationUnitId" : "acm004227jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004239jsd" ], + "content" : [ "acm004231jsd", "acm004232jsd", "acm004233jsd", "acm004234jsd", "acm004235jsd", "acm004236jsd", "acm004237jsd", "acm004238jsd" ] + }, + "acm004240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004240jsd", + "name" : "FeedbackResultFetchType", + "parentId" : "acm004140jsd", + "content" : [ "acm004248jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004241jsd" : { + "type" : "CodePackage", + "id" : "acm004241jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004242jsd" ] + }, + "acm004242jsd" : { + "type" : "CodePackage", + "id" : "acm004242jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004243jsd" ] + }, + "acm004243jsd" : { + "type" : "CodePackage", + "id" : "acm004243jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004240jsd" ] + }, + "acm004244jsd" : { + "type" : "ControlElement", + "id" : "acm004244jsd", + "name" : "FeedbackResultFetchType" + }, + "acm004245jsd" : { + "type" : "ControlElement", + "id" : "acm004245jsd", + "name" : "parseFetchType" + }, + "acm004246jsd" : { + "type" : "ControlElement", + "id" : "acm004246jsd", + "name" : "shouldFetchByGiver" + }, + "acm004247jsd" : { + "type" : "ControlElement", + "id" : "acm004247jsd", + "name" : "shouldFetchByReceiver" + }, + "acm004248jsd" : { + "type" : "ClassUnit", + "id" : "acm004248jsd", + "name" : "FeedbackResultFetchType", + "compilationUnitId" : "acm004240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004248jsd" ], + "content" : [ "acm004244jsd", "acm004245jsd", "acm004246jsd", "acm004247jsd" ] + }, + "acm004249jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004249jsd", + "name" : "FeedbackSessionLogEntry", + "parentId" : "acm004140jsd", + "content" : [ "acm004258jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004250jsd" : { + "type" : "CodePackage", + "id" : "acm004250jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004251jsd" ] + }, + "acm004251jsd" : { + "type" : "CodePackage", + "id" : "acm004251jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004252jsd" ] + }, + "acm004252jsd" : { + "type" : "CodePackage", + "id" : "acm004252jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004249jsd" ] + }, + "acm004253jsd" : { + "type" : "ControlElement", + "id" : "acm004253jsd", + "name" : "FeedbackSessionLogEntry" + }, + "acm004254jsd" : { + "type" : "ControlElement", + "id" : "acm004254jsd", + "name" : "getStudentEmail" + }, + "acm004255jsd" : { + "type" : "ControlElement", + "id" : "acm004255jsd", + "name" : "getFeedbackSessionName" + }, + "acm004256jsd" : { + "type" : "ControlElement", + "id" : "acm004256jsd", + "name" : "getFeedbackSessionLogType" + }, + "acm004257jsd" : { + "type" : "ControlElement", + "id" : "acm004257jsd", + "name" : "getTimestamp" + }, + "acm004258jsd" : { + "type" : "ClassUnit", + "id" : "acm004258jsd", + "name" : "FeedbackSessionLogEntry", + "compilationUnitId" : "acm004249jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004253jsd", "acm004254jsd", "acm004255jsd", "acm004256jsd", "acm004257jsd" ] + }, + "acm004259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004259jsd", + "name" : "InstructorPermissionSet", + "parentId" : "acm004140jsd", + "content" : [ "acm004286jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004260jsd" : { + "type" : "CodePackage", + "id" : "acm004260jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004261jsd" ] + }, + "acm004261jsd" : { + "type" : "CodePackage", + "id" : "acm004261jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004262jsd" ] + }, + "acm004262jsd" : { + "type" : "CodePackage", + "id" : "acm004262jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004259jsd" ] + }, + "acm004263jsd" : { + "type" : "ControlElement", + "id" : "acm004263jsd", + "name" : "isCanModifyCourse" + }, + "acm004264jsd" : { + "type" : "ControlElement", + "id" : "acm004264jsd", + "name" : "setCanModifyCourse" + }, + "acm004265jsd" : { + "type" : "ControlElement", + "id" : "acm004265jsd", + "name" : "isCanModifyInstructor" + }, + "acm004266jsd" : { + "type" : "ControlElement", + "id" : "acm004266jsd", + "name" : "setCanModifyInstructor" + }, + "acm004267jsd" : { + "type" : "ControlElement", + "id" : "acm004267jsd", + "name" : "isCanModifySession" + }, + "acm004268jsd" : { + "type" : "ControlElement", + "id" : "acm004268jsd", + "name" : "setCanModifySession" + }, + "acm004269jsd" : { + "type" : "ControlElement", + "id" : "acm004269jsd", + "name" : "isCanModifyStudent" + }, + "acm004270jsd" : { + "type" : "ControlElement", + "id" : "acm004270jsd", + "name" : "setCanModifyStudent" + }, + "acm004271jsd" : { + "type" : "ControlElement", + "id" : "acm004271jsd", + "name" : "isCanViewStudentInSections" + }, + "acm004272jsd" : { + "type" : "ControlElement", + "id" : "acm004272jsd", + "name" : "setCanViewStudentInSections" + }, + "acm004273jsd" : { + "type" : "ControlElement", + "id" : "acm004273jsd", + "name" : "isCanViewSessionInSections" + }, + "acm004274jsd" : { + "type" : "ControlElement", + "id" : "acm004274jsd", + "name" : "setCanViewSessionInSections" + }, + "acm004275jsd" : { + "type" : "ControlElement", + "id" : "acm004275jsd", + "name" : "isCanSubmitSessionInSections" + }, + "acm004276jsd" : { + "type" : "ControlElement", + "id" : "acm004276jsd", + "name" : "setCanSubmitSessionInSections" + }, + "acm004277jsd" : { + "type" : "ControlElement", + "id" : "acm004277jsd", + "name" : "isCanModifySessionCommentsInSections" + }, + "acm004278jsd" : { + "type" : "ControlElement", + "id" : "acm004278jsd", + "name" : "setCanModifySessionCommentsInSections" + }, + "acm004279jsd" : { + "type" : "ControlElement", + "id" : "acm004279jsd", + "name" : "getCopy" + }, + "acm004280jsd" : { + "type" : "ControlElement", + "id" : "acm004280jsd", + "name" : "get" + }, + "acm004281jsd" : { + "type" : "ControlElement", + "id" : "acm004281jsd", + "name" : "put" + }, + "acm004282jsd" : { + "type" : "ControlElement", + "id" : "acm004282jsd", + "name" : "toLegacyMapFormat" + }, + "acm004283jsd" : { + "type" : "ControlElement", + "id" : "acm004283jsd", + "name" : "fromLegacyMapFormat" + }, + "acm004284jsd" : { + "type" : "ControlElement", + "id" : "acm004284jsd", + "name" : "equals" + }, + "acm004285jsd" : { + "type" : "ControlElement", + "id" : "acm004285jsd", + "name" : "hashCode" + }, + "acm004286jsd" : { + "type" : "ClassUnit", + "id" : "acm004286jsd", + "name" : "InstructorPermissionSet", + "compilationUnitId" : "acm004259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd" ], + "content" : [ "acm004263jsd", "acm004264jsd", "acm004265jsd", "acm004266jsd", "acm004267jsd", "acm004268jsd", "acm004269jsd", "acm004270jsd", "acm004271jsd", "acm004272jsd", "acm004273jsd", "acm004274jsd", "acm004275jsd", "acm004276jsd", "acm004277jsd", "acm004278jsd", "acm004279jsd", "acm004280jsd", "acm004281jsd", "acm004282jsd", "acm004283jsd", "acm004284jsd", "acm004285jsd" ] + }, + "acm004287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004287jsd", + "name" : "InstructorPrivileges", + "parentId" : "acm004140jsd", + "content" : [ "acm004332jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004288jsd" : { + "type" : "CodePackage", + "id" : "acm004288jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004289jsd" ] + }, + "acm004289jsd" : { + "type" : "CodePackage", + "id" : "acm004289jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004290jsd" ] + }, + "acm004290jsd" : { + "type" : "CodePackage", + "id" : "acm004290jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004287jsd" ] + }, + "acm004291jsd" : { + "type" : "ControlElement", + "id" : "acm004291jsd", + "name" : "InstructorPrivileges" + }, + "acm004292jsd" : { + "type" : "ControlElement", + "id" : "acm004292jsd", + "name" : "InstructorPrivileges" + }, + "acm004293jsd" : { + "type" : "ControlElement", + "id" : "acm004293jsd", + "name" : "InstructorPrivileges" + }, + "acm004294jsd" : { + "type" : "ControlElement", + "id" : "acm004294jsd", + "name" : "toLegacyFormat" + }, + "acm004295jsd" : { + "type" : "ControlElement", + "id" : "acm004295jsd", + "name" : "isPrivilegeNameValid" + }, + "acm004296jsd" : { + "type" : "ControlElement", + "id" : "acm004296jsd", + "name" : "isPrivilegeNameValidForSectionLevel" + }, + "acm004297jsd" : { + "type" : "ControlElement", + "id" : "acm004297jsd", + "name" : "isPrivilegeNameValidForSessionLevel" + }, + "acm004298jsd" : { + "type" : "ControlElement", + "id" : "acm004298jsd", + "name" : "setDefaultPrivilegesForCoowner" + }, + "acm004299jsd" : { + "type" : "ControlElement", + "id" : "acm004299jsd", + "name" : "setDefaultPrivilegesForManager" + }, + "acm004300jsd" : { + "type" : "ControlElement", + "id" : "acm004300jsd", + "name" : "setDefaultPrivilegesForObserver" + }, + "acm004301jsd" : { + "type" : "ControlElement", + "id" : "acm004301jsd", + "name" : "setDefaultPrivilegesForTutor" + }, + "acm004302jsd" : { + "type" : "ControlElement", + "id" : "acm004302jsd", + "name" : "setDefaultPrivilegesForCustom" + }, + "acm004303jsd" : { + "type" : "ControlElement", + "id" : "acm004303jsd", + "name" : "setDefaultPrivileges" + }, + "acm004304jsd" : { + "type" : "ControlElement", + "id" : "acm004304jsd", + "name" : "getOverallPrivilegesForSections" + }, + "acm004305jsd" : { + "type" : "ControlElement", + "id" : "acm004305jsd", + "name" : "updatePrivilege" + }, + "acm004306jsd" : { + "type" : "ControlElement", + "id" : "acm004306jsd", + "name" : "updatePrivilege" + }, + "acm004307jsd" : { + "type" : "ControlElement", + "id" : "acm004307jsd", + "name" : "updatePrivilege" + }, + "acm004308jsd" : { + "type" : "ControlElement", + "id" : "acm004308jsd", + "name" : "updatePrivilegeInCourseLevel" + }, + "acm004309jsd" : { + "type" : "ControlElement", + "id" : "acm004309jsd", + "name" : "updatePrivilegeInSectionLevel" + }, + "acm004310jsd" : { + "type" : "ControlElement", + "id" : "acm004310jsd", + "name" : "updatePrivilegeInSessionLevel" + }, + "acm004311jsd" : { + "type" : "ControlElement", + "id" : "acm004311jsd", + "name" : "verifyExistenceOfsectionName" + }, + "acm004312jsd" : { + "type" : "ControlElement", + "id" : "acm004312jsd", + "name" : "addSectionWithDefaultPrivileges" + }, + "acm004313jsd" : { + "type" : "ControlElement", + "id" : "acm004313jsd", + "name" : "isAllowedForPrivilege" + }, + "acm004314jsd" : { + "type" : "ControlElement", + "id" : "acm004314jsd", + "name" : "isAllowedForPrivilege" + }, + "acm004315jsd" : { + "type" : "ControlElement", + "id" : "acm004315jsd", + "name" : "isAllowedForPrivilege" + }, + "acm004316jsd" : { + "type" : "ControlElement", + "id" : "acm004316jsd", + "name" : "isAllowedForPrivilegeAnySection" + }, + "acm004317jsd" : { + "type" : "ControlElement", + "id" : "acm004317jsd", + "name" : "hasCoownerPrivileges" + }, + "acm004318jsd" : { + "type" : "ControlElement", + "id" : "acm004318jsd", + "name" : "hasManagerPrivileges" + }, + "acm004319jsd" : { + "type" : "ControlElement", + "id" : "acm004319jsd", + "name" : "hasObserverPrivileges" + }, + "acm004320jsd" : { + "type" : "ControlElement", + "id" : "acm004320jsd", + "name" : "hasTutorPrivileges" + }, + "acm004321jsd" : { + "type" : "ControlElement", + "id" : "acm004321jsd", + "name" : "isAllowedInCourseLevel" + }, + "acm004322jsd" : { + "type" : "ControlElement", + "id" : "acm004322jsd", + "name" : "isAllowedInSectionLevel" + }, + "acm004323jsd" : { + "type" : "ControlElement", + "id" : "acm004323jsd", + "name" : "isAllowedInSessionLevel" + }, + "acm004324jsd" : { + "type" : "ControlElement", + "id" : "acm004324jsd", + "name" : "isAllowedInSessionLevelAnySection" + }, + "acm004325jsd" : { + "type" : "ControlElement", + "id" : "acm004325jsd", + "name" : "validatePrivileges" + }, + "acm004326jsd" : { + "type" : "ControlElement", + "id" : "acm004326jsd", + "name" : "getCourseLevelPrivileges" + }, + "acm004327jsd" : { + "type" : "ControlElement", + "id" : "acm004327jsd", + "name" : "getSectionLevelPrivileges" + }, + "acm004328jsd" : { + "type" : "ControlElement", + "id" : "acm004328jsd", + "name" : "getSessionLevelPrivileges" + }, + "acm004329jsd" : { + "type" : "ControlElement", + "id" : "acm004329jsd", + "name" : "getSectionsWithPrivilege" + }, + "acm004330jsd" : { + "type" : "ControlElement", + "id" : "acm004330jsd", + "name" : "equals" + }, + "acm004331jsd" : { + "type" : "ControlElement", + "id" : "acm004331jsd", + "name" : "hashCode" + }, + "acm004332jsd" : { + "type" : "ClassUnit", + "id" : "acm004332jsd", + "name" : "InstructorPrivileges", + "compilationUnitId" : "acm004287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004332jsd", "acm004341jsd" ], + "content" : [ "acm004291jsd", "acm004292jsd", "acm004293jsd", "acm004294jsd", "acm004295jsd", "acm004296jsd", "acm004297jsd", "acm004298jsd", "acm004299jsd", "acm004300jsd", "acm004301jsd", "acm004302jsd", "acm004303jsd", "acm004304jsd", "acm004305jsd", "acm004306jsd", "acm004307jsd", "acm004308jsd", "acm004309jsd", "acm004310jsd", "acm004311jsd", "acm004312jsd", "acm004313jsd", "acm004314jsd", "acm004315jsd", "acm004316jsd", "acm004317jsd", "acm004318jsd", "acm004319jsd", "acm004320jsd", "acm004321jsd", "acm004322jsd", "acm004323jsd", "acm004324jsd", "acm004325jsd", "acm004326jsd", "acm004327jsd", "acm004328jsd", "acm004329jsd", "acm004330jsd", "acm004331jsd" ] + }, + "acm004333jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004333jsd", + "name" : "InstructorPrivilegesLegacy", + "parentId" : "acm004140jsd", + "content" : [ "acm004341jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004334jsd" : { + "type" : "CodePackage", + "id" : "acm004334jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004335jsd" ] + }, + "acm004335jsd" : { + "type" : "CodePackage", + "id" : "acm004335jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004336jsd" ] + }, + "acm004336jsd" : { + "type" : "CodePackage", + "id" : "acm004336jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004333jsd" ] + }, + "acm004337jsd" : { + "type" : "ControlElement", + "id" : "acm004337jsd", + "name" : "InstructorPrivilegesLegacy" + }, + "acm004338jsd" : { + "type" : "ControlElement", + "id" : "acm004338jsd", + "name" : "getCourseLevel" + }, + "acm004339jsd" : { + "type" : "ControlElement", + "id" : "acm004339jsd", + "name" : "getSectionLevel" + }, + "acm004340jsd" : { + "type" : "ControlElement", + "id" : "acm004340jsd", + "name" : "getSessionLevel" + }, + "acm004341jsd" : { + "type" : "ClassUnit", + "id" : "acm004341jsd", + "name" : "InstructorPrivilegesLegacy", + "compilationUnitId" : "acm004333jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004337jsd", "acm004338jsd", "acm004339jsd", "acm004340jsd" ] + }, + "acm004342jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004342jsd", + "name" : "NotificationStyle", + "parentId" : "acm004140jsd", + "content" : [ "acm004346jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004343jsd" : { + "type" : "CodePackage", + "id" : "acm004343jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004344jsd" ] + }, + "acm004344jsd" : { + "type" : "CodePackage", + "id" : "acm004344jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004345jsd" ] + }, + "acm004345jsd" : { + "type" : "CodePackage", + "id" : "acm004345jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004342jsd" ] + }, + "acm004346jsd" : { + "type" : "ClassUnit", + "id" : "acm004346jsd", + "name" : "NotificationStyle", + "compilationUnitId" : "acm004342jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004347jsd", + "name" : "NotificationTargetUser", + "parentId" : "acm004140jsd", + "content" : [ "acm004351jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004348jsd" : { + "type" : "CodePackage", + "id" : "acm004348jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004349jsd" ] + }, + "acm004349jsd" : { + "type" : "CodePackage", + "id" : "acm004349jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004350jsd" ] + }, + "acm004350jsd" : { + "type" : "CodePackage", + "id" : "acm004350jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004347jsd" ] + }, + "acm004351jsd" : { + "type" : "ClassUnit", + "id" : "acm004351jsd", + "name" : "NotificationTargetUser", + "compilationUnitId" : "acm004347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm004352jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004352jsd", + "name" : "QueryLogsResults", + "parentId" : "acm004140jsd", + "content" : [ "acm004359jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004353jsd" : { + "type" : "CodePackage", + "id" : "acm004353jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004354jsd" ] + }, + "acm004354jsd" : { + "type" : "CodePackage", + "id" : "acm004354jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004355jsd" ] + }, + "acm004355jsd" : { + "type" : "CodePackage", + "id" : "acm004355jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004352jsd" ] + }, + "acm004356jsd" : { + "type" : "ControlElement", + "id" : "acm004356jsd", + "name" : "QueryLogsResults" + }, + "acm004357jsd" : { + "type" : "ControlElement", + "id" : "acm004357jsd", + "name" : "getLogEntries" + }, + "acm004358jsd" : { + "type" : "ControlElement", + "id" : "acm004358jsd", + "name" : "getHasNextPage" + }, + "acm004359jsd" : { + "type" : "ClassUnit", + "id" : "acm004359jsd", + "name" : "QueryLogsResults", + "compilationUnitId" : "acm004352jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005572jsd" ], + "content" : [ "acm004356jsd", "acm004357jsd", "acm004358jsd" ] + }, + "acm004360jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004360jsd", + "name" : "SessionResultsBundle", + "parentId" : "acm004140jsd", + "content" : [ "acm004383jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004361jsd" : { + "type" : "CodePackage", + "id" : "acm004361jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004362jsd" ] + }, + "acm004362jsd" : { + "type" : "CodePackage", + "id" : "acm004362jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004363jsd" ] + }, + "acm004363jsd" : { + "type" : "CodePackage", + "id" : "acm004363jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004360jsd" ] + }, + "acm004364jsd" : { + "type" : "ControlElement", + "id" : "acm004364jsd", + "name" : "SessionResultsBundle" + }, + "acm004365jsd" : { + "type" : "ControlElement", + "id" : "acm004365jsd", + "name" : "buildQuestionToResponseMap" + }, + "acm004366jsd" : { + "type" : "ControlElement", + "id" : "acm004366jsd", + "name" : "isResponseGiverVisible" + }, + "acm004367jsd" : { + "type" : "ControlElement", + "id" : "acm004367jsd", + "name" : "isResponseRecipientVisible" + }, + "acm004368jsd" : { + "type" : "ControlElement", + "id" : "acm004368jsd", + "name" : "isResponseParticipantVisible" + }, + "acm004369jsd" : { + "type" : "ControlElement", + "id" : "acm004369jsd", + "name" : "isCommentGiverVisible" + }, + "acm004370jsd" : { + "type" : "ControlElement", + "id" : "acm004370jsd", + "name" : "getAnonName" + }, + "acm004371jsd" : { + "type" : "ControlElement", + "id" : "acm004371jsd", + "name" : "getQuestionResponseMap" + }, + "acm004372jsd" : { + "type" : "ControlElement", + "id" : "acm004372jsd", + "name" : "getQuestionMissingResponseMap" + }, + "acm004373jsd" : { + "type" : "ControlElement", + "id" : "acm004373jsd", + "name" : "getEncryptedName" + }, + "acm004374jsd" : { + "type" : "ControlElement", + "id" : "acm004374jsd", + "name" : "getHashOfName" + }, + "acm004375jsd" : { + "type" : "ControlElement", + "id" : "acm004375jsd", + "name" : "getQuestionsMap" + }, + "acm004376jsd" : { + "type" : "ControlElement", + "id" : "acm004376jsd", + "name" : "getQuestionsNotVisibleForPreviewMap" + }, + "acm004377jsd" : { + "type" : "ControlElement", + "id" : "acm004377jsd", + "name" : "getQuestionsWithCommentNotVisibleForPreview" + }, + "acm004378jsd" : { + "type" : "ControlElement", + "id" : "acm004378jsd", + "name" : "getResponseCommentsMap" + }, + "acm004379jsd" : { + "type" : "ControlElement", + "id" : "acm004379jsd", + "name" : "getRoster" + }, + "acm004380jsd" : { + "type" : "ControlElement", + "id" : "acm004380jsd", + "name" : "getResponseGiverVisibilityTable" + }, + "acm004381jsd" : { + "type" : "ControlElement", + "id" : "acm004381jsd", + "name" : "getResponseRecipientVisibilityTable" + }, + "acm004382jsd" : { + "type" : "ControlElement", + "id" : "acm004382jsd", + "name" : "getCommentGiverVisibilityTable" + }, + "acm004383jsd" : { + "type" : "ClassUnit", + "id" : "acm004383jsd", + "name" : "SessionResultsBundle", + "compilationUnitId" : "acm004360jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd" ], + "content" : [ "acm004364jsd", "acm004365jsd", "acm004366jsd", "acm004367jsd", "acm004368jsd", "acm004369jsd", "acm004370jsd", "acm004371jsd", "acm004372jsd", "acm004373jsd", "acm004374jsd", "acm004375jsd", "acm004376jsd", "acm004377jsd", "acm004378jsd", "acm004379jsd", "acm004380jsd", "acm004381jsd", "acm004382jsd" ] + }, + "acm004384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004384jsd", + "name" : "TeamEvalResult", + "parentId" : "acm004140jsd", + "content" : [ "acm004421jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004385jsd" : { + "type" : "CodePackage", + "id" : "acm004385jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004386jsd" ] + }, + "acm004386jsd" : { + "type" : "CodePackage", + "id" : "acm004386jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004387jsd" ] + }, + "acm004387jsd" : { + "type" : "CodePackage", + "id" : "acm004387jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004384jsd" ] + }, + "acm004388jsd" : { + "type" : "ControlElement", + "id" : "acm004388jsd", + "name" : "TeamEvalResult" + }, + "acm004389jsd" : { + "type" : "ControlElement", + "id" : "acm004389jsd", + "name" : "sanitizeInput" + }, + "acm004390jsd" : { + "type" : "ControlElement", + "id" : "acm004390jsd", + "name" : "calculatePeerContributionRatio" + }, + "acm004391jsd" : { + "type" : "ControlElement", + "id" : "acm004391jsd", + "name" : "adjustPeerContributionRatioToTallyNormalizedAveragePerceived" + }, + "acm004392jsd" : { + "type" : "ControlElement", + "id" : "acm004392jsd", + "name" : "calculatePerceivedForStudents" + }, + "acm004393jsd" : { + "type" : "ControlElement", + "id" : "acm004393jsd", + "name" : "calculatePerceivedForStudent" + }, + "acm004394jsd" : { + "type" : "ControlElement", + "id" : "acm004394jsd", + "name" : "isSanitized" + }, + "acm004395jsd" : { + "type" : "ControlElement", + "id" : "acm004395jsd", + "name" : "isSanitized" + }, + "acm004396jsd" : { + "type" : "ControlElement", + "id" : "acm004396jsd", + "name" : "isSpecialValue" + }, + "acm004397jsd" : { + "type" : "ControlElement", + "id" : "acm004397jsd", + "name" : "isValidSpecialValue" + }, + "acm004398jsd" : { + "type" : "ControlElement", + "id" : "acm004398jsd", + "name" : "multiplyByFactor" + }, + "acm004399jsd" : { + "type" : "ControlElement", + "id" : "acm004399jsd", + "name" : "multiplyByFactor" + }, + "acm004400jsd" : { + "type" : "ControlElement", + "id" : "acm004400jsd", + "name" : "purgeValuesCorrespondingToSpecialValuesInFilter" + }, + "acm004401jsd" : { + "type" : "ControlElement", + "id" : "acm004401jsd", + "name" : "sum" + }, + "acm004402jsd" : { + "type" : "ControlElement", + "id" : "acm004402jsd", + "name" : "sum" + }, + "acm004403jsd" : { + "type" : "ControlElement", + "id" : "acm004403jsd", + "name" : "removeSelfRatings" + }, + "acm004404jsd" : { + "type" : "ControlElement", + "id" : "acm004404jsd", + "name" : "normalizeValues" + }, + "acm004405jsd" : { + "type" : "ControlElement", + "id" : "acm004405jsd", + "name" : "normalizeValues" + }, + "acm004406jsd" : { + "type" : "ControlElement", + "id" : "acm004406jsd", + "name" : "normalizeValues" + }, + "acm004407jsd" : { + "type" : "ControlElement", + "id" : "acm004407jsd", + "name" : "calculateFactor" + }, + "acm004408jsd" : { + "type" : "ControlElement", + "id" : "acm004408jsd", + "name" : "intToDouble" + }, + "acm004409jsd" : { + "type" : "ControlElement", + "id" : "acm004409jsd", + "name" : "intToDouble" + }, + "acm004410jsd" : { + "type" : "ControlElement", + "id" : "acm004410jsd", + "name" : "doubleToInt" + }, + "acm004411jsd" : { + "type" : "ControlElement", + "id" : "acm004411jsd", + "name" : "doubleToInt" + }, + "acm004412jsd" : { + "type" : "ControlElement", + "id" : "acm004412jsd", + "name" : "averageColumns" + }, + "acm004413jsd" : { + "type" : "ControlElement", + "id" : "acm004413jsd", + "name" : "averageColumn" + }, + "acm004414jsd" : { + "type" : "ControlElement", + "id" : "acm004414jsd", + "name" : "pointsToString" + }, + "acm004415jsd" : { + "type" : "ControlElement", + "id" : "acm004415jsd", + "name" : "pointsToString" + }, + "acm004416jsd" : { + "type" : "ControlElement", + "id" : "acm004416jsd", + "name" : "pointsToString" + }, + "acm004417jsd" : { + "type" : "ControlElement", + "id" : "acm004417jsd", + "name" : "replaceMagicNumbers" + }, + "acm004418jsd" : { + "type" : "ControlElement", + "id" : "acm004418jsd", + "name" : "toString" + }, + "acm004419jsd" : { + "type" : "ControlElement", + "id" : "acm004419jsd", + "name" : "toString" + }, + "acm004420jsd" : { + "type" : "ControlElement", + "id" : "acm004420jsd", + "name" : "verify" + }, + "acm004421jsd" : { + "type" : "ClassUnit", + "id" : "acm004421jsd", + "name" : "TeamEvalResult", + "compilationUnitId" : "acm004384jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd" ], + "content" : [ "acm004388jsd", "acm004389jsd", "acm004390jsd", "acm004391jsd", "acm004392jsd", "acm004393jsd", "acm004394jsd", "acm004395jsd", "acm004396jsd", "acm004397jsd", "acm004398jsd", "acm004399jsd", "acm004400jsd", "acm004401jsd", "acm004402jsd", "acm004403jsd", "acm004404jsd", "acm004405jsd", "acm004406jsd", "acm004407jsd", "acm004408jsd", "acm004409jsd", "acm004410jsd", "acm004411jsd", "acm004412jsd", "acm004413jsd", "acm004414jsd", "acm004415jsd", "acm004416jsd", "acm004417jsd", "acm004418jsd", "acm004419jsd", "acm004420jsd" ] + }, + "acm004422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004422jsd", + "name" : "UserInfo", + "parentId" : "acm004140jsd", + "content" : [ "acm004432jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004423jsd" : { + "type" : "CodePackage", + "id" : "acm004423jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004424jsd" ] + }, + "acm004424jsd" : { + "type" : "CodePackage", + "id" : "acm004424jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004425jsd" ] + }, + "acm004425jsd" : { + "type" : "CodePackage", + "id" : "acm004425jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004422jsd" ] + }, + "acm004426jsd" : { + "type" : "ControlElement", + "id" : "acm004426jsd", + "name" : "UserInfo" + }, + "acm004427jsd" : { + "type" : "ControlElement", + "id" : "acm004427jsd", + "name" : "getId" + }, + "acm004428jsd" : { + "type" : "ControlElement", + "id" : "acm004428jsd", + "name" : "getIsAdmin" + }, + "acm004429jsd" : { + "type" : "ControlElement", + "id" : "acm004429jsd", + "name" : "getIsInstructor" + }, + "acm004430jsd" : { + "type" : "ControlElement", + "id" : "acm004430jsd", + "name" : "getIsStudent" + }, + "acm004431jsd" : { + "type" : "ControlElement", + "id" : "acm004431jsd", + "name" : "getIsMaintainer" + }, + "acm004432jsd" : { + "type" : "ClassUnit", + "id" : "acm004432jsd", + "name" : "UserInfo", + "compilationUnitId" : "acm004422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm004426jsd", "acm004427jsd", "acm004428jsd", "acm004429jsd", "acm004430jsd", "acm004431jsd" ] + }, + "acm004433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004433jsd", + "name" : "UserInfoCookie", + "parentId" : "acm004140jsd", + "content" : [ "acm004446jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004434jsd" : { + "type" : "CodePackage", + "id" : "acm004434jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004435jsd" ] + }, + "acm004435jsd" : { + "type" : "CodePackage", + "id" : "acm004435jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004436jsd" ] + }, + "acm004436jsd" : { + "type" : "CodePackage", + "id" : "acm004436jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004433jsd" ] + }, + "acm004437jsd" : { + "type" : "ControlElement", + "id" : "acm004437jsd", + "name" : "UserInfoCookie" + }, + "acm004438jsd" : { + "type" : "ControlElement", + "id" : "acm004438jsd", + "name" : "fromCookie" + }, + "acm004439jsd" : { + "type" : "ControlElement", + "id" : "acm004439jsd", + "name" : "getUserId" + }, + "acm004440jsd" : { + "type" : "ControlElement", + "id" : "acm004440jsd", + "name" : "setUserId" + }, + "acm004441jsd" : { + "type" : "ControlElement", + "id" : "acm004441jsd", + "name" : "getVerificationCode" + }, + "acm004442jsd" : { + "type" : "ControlElement", + "id" : "acm004442jsd", + "name" : "setVerificationCode" + }, + "acm004443jsd" : { + "type" : "ControlElement", + "id" : "acm004443jsd", + "name" : "getExpiryTime" + }, + "acm004444jsd" : { + "type" : "ControlElement", + "id" : "acm004444jsd", + "name" : "setExpiryTime" + }, + "acm004445jsd" : { + "type" : "ControlElement", + "id" : "acm004445jsd", + "name" : "isValid" + }, + "acm004446jsd" : { + "type" : "ClassUnit", + "id" : "acm004446jsd", + "name" : "UserInfoCookie", + "compilationUnitId" : "acm004433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd", "acm006188jsd" ], + "content" : [ "acm004437jsd", "acm004438jsd", "acm004439jsd", "acm004440jsd", "acm004441jsd", "acm004442jsd", "acm004443jsd", "acm004444jsd", "acm004445jsd" ] + }, + "acm004447jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004447jsd", + "name" : "AccountAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004486jsd", "acm004491jsd", "acm004497jsd", "acm004500jsd", "acm004504jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004448jsd" : { + "type" : "CodePackage", + "id" : "acm004448jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004449jsd" ] + }, + "acm004449jsd" : { + "type" : "CodePackage", + "id" : "acm004449jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004450jsd" ] + }, + "acm004450jsd" : { + "type" : "CodePackage", + "id" : "acm004450jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004451jsd" ] + }, + "acm004451jsd" : { + "type" : "CodePackage", + "id" : "acm004451jsd", + "name" : "attributes", + "parentId" : "acm004140jsd", + "content" : [ "acm004447jsd", "acm004505jsd", "acm004557jsd", "acm004617jsd", "acm004689jsd", "acm004715jsd", "acm004815jsd", "acm004898jsd", "acm005004jsd", "acm005153jsd", "acm005273jsd", "acm005354jsd", "acm005436jsd", "acm005480jsd", "acm010579jsd", "acm010601jsd", "acm010619jsd", "acm010626jsd", "acm010645jsd", "acm010663jsd", "acm010690jsd", "acm010708jsd", "acm010726jsd", "acm010746jsd", "acm010768jsd", "acm010784jsd", "acm010809jsd" ] + }, + "acm004452jsd" : { + "type" : "ControlElement", + "id" : "acm004452jsd", + "name" : "AccountAttributes" + }, + "acm004453jsd" : { + "type" : "ControlElement", + "id" : "acm004453jsd", + "name" : "valueOf" + }, + "acm004454jsd" : { + "type" : "ControlElement", + "id" : "acm004454jsd", + "name" : "builder" + }, + "acm004455jsd" : { + "type" : "ControlElement", + "id" : "acm004455jsd", + "name" : "getCopy" + }, + "acm004456jsd" : { + "type" : "ControlElement", + "id" : "acm004456jsd", + "name" : "getGoogleId" + }, + "acm004457jsd" : { + "type" : "ControlElement", + "id" : "acm004457jsd", + "name" : "setGoogleId" + }, + "acm004458jsd" : { + "type" : "ControlElement", + "id" : "acm004458jsd", + "name" : "getName" + }, + "acm004459jsd" : { + "type" : "ControlElement", + "id" : "acm004459jsd", + "name" : "setName" + }, + "acm004460jsd" : { + "type" : "ControlElement", + "id" : "acm004460jsd", + "name" : "getEmail" + }, + "acm004461jsd" : { + "type" : "ControlElement", + "id" : "acm004461jsd", + "name" : "setEmail" + }, + "acm004462jsd" : { + "type" : "ControlElement", + "id" : "acm004462jsd", + "name" : "getReadNotifications" + }, + "acm004463jsd" : { + "type" : "ControlElement", + "id" : "acm004463jsd", + "name" : "setReadNotifications" + }, + "acm004464jsd" : { + "type" : "ControlElement", + "id" : "acm004464jsd", + "name" : "getCreatedAt" + }, + "acm004465jsd" : { + "type" : "ControlElement", + "id" : "acm004465jsd", + "name" : "setCreatedAt" + }, + "acm004466jsd" : { + "type" : "ControlElement", + "id" : "acm004466jsd", + "name" : "getInvalidityInfo" + }, + "acm004467jsd" : { + "type" : "ControlElement", + "id" : "acm004467jsd", + "name" : "toEntity" + }, + "acm004468jsd" : { + "type" : "ControlElement", + "id" : "acm004468jsd", + "name" : "toString" + }, + "acm004469jsd" : { + "type" : "ControlElement", + "id" : "acm004469jsd", + "name" : "hashCode" + }, + "acm004470jsd" : { + "type" : "ControlElement", + "id" : "acm004470jsd", + "name" : "equals" + }, + "acm004471jsd" : { + "type" : "ControlElement", + "id" : "acm004471jsd", + "name" : "sanitizeForSaving" + }, + "acm004472jsd" : { + "type" : "ControlElement", + "id" : "acm004472jsd", + "name" : "update" + }, + "acm004473jsd" : { + "type" : "ControlElement", + "id" : "acm004473jsd", + "name" : "updateOptionsBuilder" + }, + "acm004474jsd" : { + "type" : "ControlElement", + "id" : "acm004474jsd", + "name" : "Builder" + }, + "acm004475jsd" : { + "type" : "ControlElement", + "id" : "acm004475jsd", + "name" : "withName" + }, + "acm004476jsd" : { + "type" : "ControlElement", + "id" : "acm004476jsd", + "name" : "withEmail" + }, + "acm004477jsd" : { + "type" : "ControlElement", + "id" : "acm004477jsd", + "name" : "build" + }, + "acm004478jsd" : { + "type" : "ControlElement", + "id" : "acm004478jsd", + "name" : "UpdateOptions" + }, + "acm004479jsd" : { + "type" : "ControlElement", + "id" : "acm004479jsd", + "name" : "getGoogleId" + }, + "acm004480jsd" : { + "type" : "ControlElement", + "id" : "acm004480jsd", + "name" : "toString" + }, + "acm004481jsd" : { + "type" : "ControlElement", + "id" : "acm004481jsd", + "name" : "Builder" + }, + "acm004482jsd" : { + "type" : "ControlElement", + "id" : "acm004482jsd", + "name" : "build" + }, + "acm004483jsd" : { + "type" : "ControlElement", + "id" : "acm004483jsd", + "name" : "BasicBuilder" + }, + "acm004484jsd" : { + "type" : "ControlElement", + "id" : "acm004484jsd", + "name" : "withReadNotifications" + }, + "acm004485jsd" : { + "type" : "ControlElement", + "id" : "acm004485jsd", + "name" : "build" + }, + "acm004486jsd" : { + "type" : "ClassUnit", + "id" : "acm004486jsd", + "name" : "AccountAttributes", + "compilationUnitId" : "acm004447jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004491jsd", "acm004497jsd", "acm004500jsd", "acm004504jsd", "acm007735jsd" ], + "content" : [ "acm004452jsd", "acm004453jsd", "acm004454jsd", "acm004455jsd", "acm004456jsd", "acm004457jsd", "acm004458jsd", "acm004459jsd", "acm004460jsd", "acm004461jsd", "acm004462jsd", "acm004463jsd", "acm004464jsd", "acm004465jsd", "acm004466jsd", "acm004467jsd", "acm004468jsd", "acm004469jsd", "acm004470jsd", "acm004471jsd", "acm004472jsd", "acm004473jsd", "acm004474jsd", "acm004475jsd", "acm004476jsd", "acm004477jsd", "acm004478jsd", "acm004479jsd", "acm004480jsd", "acm004481jsd", "acm004482jsd", "acm004483jsd", "acm004484jsd", "acm004485jsd" ] + }, + "acm004487jsd" : { + "type" : "ControlElement", + "id" : "acm004487jsd", + "name" : "Builder" + }, + "acm004488jsd" : { + "type" : "ControlElement", + "id" : "acm004488jsd", + "name" : "withName" + }, + "acm004489jsd" : { + "type" : "ControlElement", + "id" : "acm004489jsd", + "name" : "withEmail" + }, + "acm004490jsd" : { + "type" : "ControlElement", + "id" : "acm004490jsd", + "name" : "build" + }, + "acm004491jsd" : { + "type" : "ClassUnit", + "id" : "acm004491jsd", + "name" : "Builder", + "compilationUnitId" : "acm004447jsd", + "parentDatatypeId" : "acm004486jsd", + "extendedDataTypesIds" : [ "acm004504jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004491jsd", "acm004497jsd" ], + "content" : [ "acm004487jsd", "acm004488jsd", "acm004489jsd", "acm004490jsd" ] + }, + "acm004492jsd" : { + "type" : "ControlElement", + "id" : "acm004492jsd", + "name" : "UpdateOptions" + }, + "acm004493jsd" : { + "type" : "ControlElement", + "id" : "acm004493jsd", + "name" : "getGoogleId" + }, + "acm004494jsd" : { + "type" : "ControlElement", + "id" : "acm004494jsd", + "name" : "toString" + }, + "acm004495jsd" : { + "type" : "ControlElement", + "id" : "acm004495jsd", + "name" : "Builder" + }, + "acm004496jsd" : { + "type" : "ControlElement", + "id" : "acm004496jsd", + "name" : "build" + }, + "acm004497jsd" : { + "type" : "ClassUnit", + "id" : "acm004497jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004447jsd", + "parentDatatypeId" : "acm004486jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004497jsd", "acm004500jsd", "acm004504jsd" ], + "content" : [ "acm004492jsd", "acm004493jsd", "acm004494jsd", "acm004495jsd", "acm004496jsd" ] + }, + "acm004498jsd" : { + "type" : "ControlElement", + "id" : "acm004498jsd", + "name" : "Builder" + }, + "acm004499jsd" : { + "type" : "ControlElement", + "id" : "acm004499jsd", + "name" : "build" + }, + "acm004500jsd" : { + "type" : "ClassUnit", + "id" : "acm004500jsd", + "name" : "Builder", + "compilationUnitId" : "acm004447jsd", + "parentDatatypeId" : "acm004497jsd", + "extendedDataTypesIds" : [ "acm004504jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004497jsd" ], + "content" : [ "acm004498jsd", "acm004499jsd" ] + }, + "acm004501jsd" : { + "type" : "ControlElement", + "id" : "acm004501jsd", + "name" : "BasicBuilder" + }, + "acm004502jsd" : { + "type" : "ControlElement", + "id" : "acm004502jsd", + "name" : "withReadNotifications" + }, + "acm004503jsd" : { + "type" : "ControlElement", + "id" : "acm004503jsd", + "name" : "build" + }, + "acm004504jsd" : { + "type" : "ClassUnit", + "id" : "acm004504jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004447jsd", + "parentDatatypeId" : "acm004486jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004497jsd", "acm004504jsd" ], + "content" : [ "acm004501jsd", "acm004502jsd", "acm004503jsd" ] + }, + "acm004505jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004505jsd", + "name" : "AccountRequestAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004539jsd", "acm004542jsd", "acm004549jsd", "acm004552jsd", "acm004556jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004506jsd" : { + "type" : "CodePackage", + "id" : "acm004506jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004507jsd" ] + }, + "acm004507jsd" : { + "type" : "CodePackage", + "id" : "acm004507jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004508jsd" ] + }, + "acm004508jsd" : { + "type" : "CodePackage", + "id" : "acm004508jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004509jsd" ] + }, + "acm004509jsd" : { + "type" : "CodePackage", + "id" : "acm004509jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004505jsd" ] + }, + "acm004510jsd" : { + "type" : "ControlElement", + "id" : "acm004510jsd", + "name" : "AccountRequestAttributes" + }, + "acm004511jsd" : { + "type" : "ControlElement", + "id" : "acm004511jsd", + "name" : "valueOf" + }, + "acm004512jsd" : { + "type" : "ControlElement", + "id" : "acm004512jsd", + "name" : "builder" + }, + "acm004513jsd" : { + "type" : "ControlElement", + "id" : "acm004513jsd", + "name" : "getRegistrationKey" + }, + "acm004514jsd" : { + "type" : "ControlElement", + "id" : "acm004514jsd", + "name" : "getName" + }, + "acm004515jsd" : { + "type" : "ControlElement", + "id" : "acm004515jsd", + "name" : "getEmail" + }, + "acm004516jsd" : { + "type" : "ControlElement", + "id" : "acm004516jsd", + "name" : "getInstitute" + }, + "acm004517jsd" : { + "type" : "ControlElement", + "id" : "acm004517jsd", + "name" : "getRegisteredAt" + }, + "acm004518jsd" : { + "type" : "ControlElement", + "id" : "acm004518jsd", + "name" : "getCreatedAt" + }, + "acm004519jsd" : { + "type" : "ControlElement", + "id" : "acm004519jsd", + "name" : "getRegistrationUrl" + }, + "acm004520jsd" : { + "type" : "ControlElement", + "id" : "acm004520jsd", + "name" : "getInvalidityInfo" + }, + "acm004521jsd" : { + "type" : "ControlElement", + "id" : "acm004521jsd", + "name" : "toEntity" + }, + "acm004522jsd" : { + "type" : "ControlElement", + "id" : "acm004522jsd", + "name" : "toString" + }, + "acm004523jsd" : { + "type" : "ControlElement", + "id" : "acm004523jsd", + "name" : "hashCode" + }, + "acm004524jsd" : { + "type" : "ControlElement", + "id" : "acm004524jsd", + "name" : "equals" + }, + "acm004525jsd" : { + "type" : "ControlElement", + "id" : "acm004525jsd", + "name" : "sanitizeForSaving" + }, + "acm004526jsd" : { + "type" : "ControlElement", + "id" : "acm004526jsd", + "name" : "update" + }, + "acm004527jsd" : { + "type" : "ControlElement", + "id" : "acm004527jsd", + "name" : "updateOptionsBuilder" + }, + "acm004528jsd" : { + "type" : "ControlElement", + "id" : "acm004528jsd", + "name" : "Builder" + }, + "acm004529jsd" : { + "type" : "ControlElement", + "id" : "acm004529jsd", + "name" : "build" + }, + "acm004530jsd" : { + "type" : "ControlElement", + "id" : "acm004530jsd", + "name" : "UpdateOptions" + }, + "acm004531jsd" : { + "type" : "ControlElement", + "id" : "acm004531jsd", + "name" : "getEmail" + }, + "acm004532jsd" : { + "type" : "ControlElement", + "id" : "acm004532jsd", + "name" : "getInstitute" + }, + "acm004533jsd" : { + "type" : "ControlElement", + "id" : "acm004533jsd", + "name" : "toString" + }, + "acm004534jsd" : { + "type" : "ControlElement", + "id" : "acm004534jsd", + "name" : "Builder" + }, + "acm004535jsd" : { + "type" : "ControlElement", + "id" : "acm004535jsd", + "name" : "build" + }, + "acm004536jsd" : { + "type" : "ControlElement", + "id" : "acm004536jsd", + "name" : "BasicBuilder" + }, + "acm004537jsd" : { + "type" : "ControlElement", + "id" : "acm004537jsd", + "name" : "withRegisteredAt" + }, + "acm004538jsd" : { + "type" : "ControlElement", + "id" : "acm004538jsd", + "name" : "build" + }, + "acm004539jsd" : { + "type" : "ClassUnit", + "id" : "acm004539jsd", + "name" : "AccountRequestAttributes", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004542jsd", "acm004549jsd", "acm004552jsd", "acm004556jsd", "acm007758jsd" ], + "content" : [ "acm004510jsd", "acm004511jsd", "acm004512jsd", "acm004513jsd", "acm004514jsd", "acm004515jsd", "acm004516jsd", "acm004517jsd", "acm004518jsd", "acm004519jsd", "acm004520jsd", "acm004521jsd", "acm004522jsd", "acm004523jsd", "acm004524jsd", "acm004525jsd", "acm004526jsd", "acm004527jsd", "acm004528jsd", "acm004529jsd", "acm004530jsd", "acm004531jsd", "acm004532jsd", "acm004533jsd", "acm004534jsd", "acm004535jsd", "acm004536jsd", "acm004537jsd", "acm004538jsd" ] + }, + "acm004540jsd" : { + "type" : "ControlElement", + "id" : "acm004540jsd", + "name" : "Builder" + }, + "acm004541jsd" : { + "type" : "ControlElement", + "id" : "acm004541jsd", + "name" : "build" + }, + "acm004542jsd" : { + "type" : "ClassUnit", + "id" : "acm004542jsd", + "name" : "Builder", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : "acm004539jsd", + "extendedDataTypesIds" : [ "acm004556jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004549jsd" ], + "content" : [ "acm004540jsd", "acm004541jsd" ] + }, + "acm004543jsd" : { + "type" : "ControlElement", + "id" : "acm004543jsd", + "name" : "UpdateOptions" + }, + "acm004544jsd" : { + "type" : "ControlElement", + "id" : "acm004544jsd", + "name" : "getEmail" + }, + "acm004545jsd" : { + "type" : "ControlElement", + "id" : "acm004545jsd", + "name" : "getInstitute" + }, + "acm004546jsd" : { + "type" : "ControlElement", + "id" : "acm004546jsd", + "name" : "toString" + }, + "acm004547jsd" : { + "type" : "ControlElement", + "id" : "acm004547jsd", + "name" : "Builder" + }, + "acm004548jsd" : { + "type" : "ControlElement", + "id" : "acm004548jsd", + "name" : "build" + }, + "acm004549jsd" : { + "type" : "ClassUnit", + "id" : "acm004549jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : "acm004539jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004549jsd", "acm004552jsd", "acm004556jsd" ], + "content" : [ "acm004543jsd", "acm004544jsd", "acm004545jsd", "acm004546jsd", "acm004547jsd", "acm004548jsd" ] + }, + "acm004550jsd" : { + "type" : "ControlElement", + "id" : "acm004550jsd", + "name" : "Builder" + }, + "acm004551jsd" : { + "type" : "ControlElement", + "id" : "acm004551jsd", + "name" : "build" + }, + "acm004552jsd" : { + "type" : "ClassUnit", + "id" : "acm004552jsd", + "name" : "Builder", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : "acm004549jsd", + "extendedDataTypesIds" : [ "acm004556jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004549jsd" ], + "content" : [ "acm004550jsd", "acm004551jsd" ] + }, + "acm004553jsd" : { + "type" : "ControlElement", + "id" : "acm004553jsd", + "name" : "BasicBuilder" + }, + "acm004554jsd" : { + "type" : "ControlElement", + "id" : "acm004554jsd", + "name" : "withRegisteredAt" + }, + "acm004555jsd" : { + "type" : "ControlElement", + "id" : "acm004555jsd", + "name" : "build" + }, + "acm004556jsd" : { + "type" : "ClassUnit", + "id" : "acm004556jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004505jsd", + "parentDatatypeId" : "acm004539jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004549jsd", "acm004556jsd" ], + "content" : [ "acm004553jsd", "acm004554jsd", "acm004555jsd" ] + }, + "acm004557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004557jsd", + "name" : "CourseAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004598jsd", "acm004601jsd", "acm004607jsd", "acm004610jsd", "acm004616jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004558jsd" : { + "type" : "CodePackage", + "id" : "acm004558jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004559jsd" ] + }, + "acm004559jsd" : { + "type" : "CodePackage", + "id" : "acm004559jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004560jsd" ] + }, + "acm004560jsd" : { + "type" : "CodePackage", + "id" : "acm004560jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004561jsd" ] + }, + "acm004561jsd" : { + "type" : "CodePackage", + "id" : "acm004561jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004557jsd" ] + }, + "acm004562jsd" : { + "type" : "ControlElement", + "id" : "acm004562jsd", + "name" : "CourseAttributes" + }, + "acm004563jsd" : { + "type" : "ControlElement", + "id" : "acm004563jsd", + "name" : "valueOf" + }, + "acm004564jsd" : { + "type" : "ControlElement", + "id" : "acm004564jsd", + "name" : "builder" + }, + "acm004565jsd" : { + "type" : "ControlElement", + "id" : "acm004565jsd", + "name" : "getId" + }, + "acm004566jsd" : { + "type" : "ControlElement", + "id" : "acm004566jsd", + "name" : "getName" + }, + "acm004567jsd" : { + "type" : "ControlElement", + "id" : "acm004567jsd", + "name" : "setName" + }, + "acm004568jsd" : { + "type" : "ControlElement", + "id" : "acm004568jsd", + "name" : "getTimeZone" + }, + "acm004569jsd" : { + "type" : "ControlElement", + "id" : "acm004569jsd", + "name" : "setTimeZone" + }, + "acm004570jsd" : { + "type" : "ControlElement", + "id" : "acm004570jsd", + "name" : "getInstitute" + }, + "acm004571jsd" : { + "type" : "ControlElement", + "id" : "acm004571jsd", + "name" : "getCreatedAt" + }, + "acm004572jsd" : { + "type" : "ControlElement", + "id" : "acm004572jsd", + "name" : "setCreatedAt" + }, + "acm004573jsd" : { + "type" : "ControlElement", + "id" : "acm004573jsd", + "name" : "getDeletedAt" + }, + "acm004574jsd" : { + "type" : "ControlElement", + "id" : "acm004574jsd", + "name" : "setDeletedAt" + }, + "acm004575jsd" : { + "type" : "ControlElement", + "id" : "acm004575jsd", + "name" : "isCourseDeleted" + }, + "acm004576jsd" : { + "type" : "ControlElement", + "id" : "acm004576jsd", + "name" : "getInvalidityInfo" + }, + "acm004577jsd" : { + "type" : "ControlElement", + "id" : "acm004577jsd", + "name" : "toEntity" + }, + "acm004578jsd" : { + "type" : "ControlElement", + "id" : "acm004578jsd", + "name" : "toString" + }, + "acm004579jsd" : { + "type" : "ControlElement", + "id" : "acm004579jsd", + "name" : "hashCode" + }, + "acm004580jsd" : { + "type" : "ControlElement", + "id" : "acm004580jsd", + "name" : "equals" + }, + "acm004581jsd" : { + "type" : "ControlElement", + "id" : "acm004581jsd", + "name" : "sanitizeForSaving" + }, + "acm004582jsd" : { + "type" : "ControlElement", + "id" : "acm004582jsd", + "name" : "compareTo" + }, + "acm004583jsd" : { + "type" : "ControlElement", + "id" : "acm004583jsd", + "name" : "sortById" + }, + "acm004584jsd" : { + "type" : "ControlElement", + "id" : "acm004584jsd", + "name" : "update" + }, + "acm004585jsd" : { + "type" : "ControlElement", + "id" : "acm004585jsd", + "name" : "updateOptionsBuilder" + }, + "acm004586jsd" : { + "type" : "ControlElement", + "id" : "acm004586jsd", + "name" : "Builder" + }, + "acm004587jsd" : { + "type" : "ControlElement", + "id" : "acm004587jsd", + "name" : "build" + }, + "acm004588jsd" : { + "type" : "ControlElement", + "id" : "acm004588jsd", + "name" : "UpdateOptions" + }, + "acm004589jsd" : { + "type" : "ControlElement", + "id" : "acm004589jsd", + "name" : "getCourseId" + }, + "acm004590jsd" : { + "type" : "ControlElement", + "id" : "acm004590jsd", + "name" : "toString" + }, + "acm004591jsd" : { + "type" : "ControlElement", + "id" : "acm004591jsd", + "name" : "Builder" + }, + "acm004592jsd" : { + "type" : "ControlElement", + "id" : "acm004592jsd", + "name" : "build" + }, + "acm004593jsd" : { + "type" : "ControlElement", + "id" : "acm004593jsd", + "name" : "BasicBuilder" + }, + "acm004594jsd" : { + "type" : "ControlElement", + "id" : "acm004594jsd", + "name" : "withName" + }, + "acm004595jsd" : { + "type" : "ControlElement", + "id" : "acm004595jsd", + "name" : "withTimezone" + }, + "acm004596jsd" : { + "type" : "ControlElement", + "id" : "acm004596jsd", + "name" : "withInstitute" + }, + "acm004597jsd" : { + "type" : "ControlElement", + "id" : "acm004597jsd", + "name" : "build" + }, + "acm004598jsd" : { + "type" : "ClassUnit", + "id" : "acm004598jsd", + "name" : "CourseAttributes", + "compilationUnitId" : "acm004557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm004601jsd", "acm004607jsd", "acm004610jsd", "acm004616jsd", "acm006435jsd", "acm007792jsd" ], + "content" : [ "acm004562jsd", "acm004563jsd", "acm004564jsd", "acm004565jsd", "acm004566jsd", "acm004567jsd", "acm004568jsd", "acm004569jsd", "acm004570jsd", "acm004571jsd", "acm004572jsd", "acm004573jsd", "acm004574jsd", "acm004575jsd", "acm004576jsd", "acm004577jsd", "acm004578jsd", "acm004579jsd", "acm004580jsd", "acm004581jsd", "acm004582jsd", "acm004583jsd", "acm004584jsd", "acm004585jsd", "acm004586jsd", "acm004587jsd", "acm004588jsd", "acm004589jsd", "acm004590jsd", "acm004591jsd", "acm004592jsd", "acm004593jsd", "acm004594jsd", "acm004595jsd", "acm004596jsd", "acm004597jsd" ] + }, + "acm004599jsd" : { + "type" : "ControlElement", + "id" : "acm004599jsd", + "name" : "Builder" + }, + "acm004600jsd" : { + "type" : "ControlElement", + "id" : "acm004600jsd", + "name" : "build" + }, + "acm004601jsd" : { + "type" : "ClassUnit", + "id" : "acm004601jsd", + "name" : "Builder", + "compilationUnitId" : "acm004557jsd", + "parentDatatypeId" : "acm004598jsd", + "extendedDataTypesIds" : [ "acm004616jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm004607jsd" ], + "content" : [ "acm004599jsd", "acm004600jsd" ] + }, + "acm004602jsd" : { + "type" : "ControlElement", + "id" : "acm004602jsd", + "name" : "UpdateOptions" + }, + "acm004603jsd" : { + "type" : "ControlElement", + "id" : "acm004603jsd", + "name" : "getCourseId" + }, + "acm004604jsd" : { + "type" : "ControlElement", + "id" : "acm004604jsd", + "name" : "toString" + }, + "acm004605jsd" : { + "type" : "ControlElement", + "id" : "acm004605jsd", + "name" : "Builder" + }, + "acm004606jsd" : { + "type" : "ControlElement", + "id" : "acm004606jsd", + "name" : "build" + }, + "acm004607jsd" : { + "type" : "ClassUnit", + "id" : "acm004607jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004557jsd", + "parentDatatypeId" : "acm004598jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004607jsd", "acm004610jsd", "acm004616jsd" ], + "content" : [ "acm004602jsd", "acm004603jsd", "acm004604jsd", "acm004605jsd", "acm004606jsd" ] + }, + "acm004608jsd" : { + "type" : "ControlElement", + "id" : "acm004608jsd", + "name" : "Builder" + }, + "acm004609jsd" : { + "type" : "ControlElement", + "id" : "acm004609jsd", + "name" : "build" + }, + "acm004610jsd" : { + "type" : "ClassUnit", + "id" : "acm004610jsd", + "name" : "Builder", + "compilationUnitId" : "acm004557jsd", + "parentDatatypeId" : "acm004607jsd", + "extendedDataTypesIds" : [ "acm004616jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004607jsd" ], + "content" : [ "acm004608jsd", "acm004609jsd" ] + }, + "acm004611jsd" : { + "type" : "ControlElement", + "id" : "acm004611jsd", + "name" : "BasicBuilder" + }, + "acm004612jsd" : { + "type" : "ControlElement", + "id" : "acm004612jsd", + "name" : "withName" + }, + "acm004613jsd" : { + "type" : "ControlElement", + "id" : "acm004613jsd", + "name" : "withTimezone" + }, + "acm004614jsd" : { + "type" : "ControlElement", + "id" : "acm004614jsd", + "name" : "withInstitute" + }, + "acm004615jsd" : { + "type" : "ControlElement", + "id" : "acm004615jsd", + "name" : "build" + }, + "acm004616jsd" : { + "type" : "ClassUnit", + "id" : "acm004616jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004557jsd", + "parentDatatypeId" : "acm004598jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004607jsd", "acm004616jsd" ], + "content" : [ "acm004611jsd", "acm004612jsd", "acm004613jsd", "acm004614jsd", "acm004615jsd" ] + }, + "acm004617jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004617jsd", + "name" : "DeadlineExtensionAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004662jsd", "acm004665jsd", "acm004678jsd", "acm004683jsd", "acm004688jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004618jsd" : { + "type" : "CodePackage", + "id" : "acm004618jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004619jsd" ] + }, + "acm004619jsd" : { + "type" : "CodePackage", + "id" : "acm004619jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004620jsd" ] + }, + "acm004620jsd" : { + "type" : "CodePackage", + "id" : "acm004620jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004621jsd" ] + }, + "acm004621jsd" : { + "type" : "CodePackage", + "id" : "acm004621jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004617jsd" ] + }, + "acm004622jsd" : { + "type" : "ControlElement", + "id" : "acm004622jsd", + "name" : "DeadlineExtensionAttributes" + }, + "acm004623jsd" : { + "type" : "ControlElement", + "id" : "acm004623jsd", + "name" : "valueOf" + }, + "acm004624jsd" : { + "type" : "ControlElement", + "id" : "acm004624jsd", + "name" : "builder" + }, + "acm004625jsd" : { + "type" : "ControlElement", + "id" : "acm004625jsd", + "name" : "getCourseId" + }, + "acm004626jsd" : { + "type" : "ControlElement", + "id" : "acm004626jsd", + "name" : "getFeedbackSessionName" + }, + "acm004627jsd" : { + "type" : "ControlElement", + "id" : "acm004627jsd", + "name" : "getUserEmail" + }, + "acm004628jsd" : { + "type" : "ControlElement", + "id" : "acm004628jsd", + "name" : "getIsInstructor" + }, + "acm004629jsd" : { + "type" : "ControlElement", + "id" : "acm004629jsd", + "name" : "getSentClosingEmail" + }, + "acm004630jsd" : { + "type" : "ControlElement", + "id" : "acm004630jsd", + "name" : "getEndTime" + }, + "acm004631jsd" : { + "type" : "ControlElement", + "id" : "acm004631jsd", + "name" : "getCreatedAt" + }, + "acm004632jsd" : { + "type" : "ControlElement", + "id" : "acm004632jsd", + "name" : "setCreatedAt" + }, + "acm004633jsd" : { + "type" : "ControlElement", + "id" : "acm004633jsd", + "name" : "getUpdatedAt" + }, + "acm004634jsd" : { + "type" : "ControlElement", + "id" : "acm004634jsd", + "name" : "setUpdatedAt" + }, + "acm004635jsd" : { + "type" : "ControlElement", + "id" : "acm004635jsd", + "name" : "getInvalidityInfo" + }, + "acm004636jsd" : { + "type" : "ControlElement", + "id" : "acm004636jsd", + "name" : "toEntity" + }, + "acm004637jsd" : { + "type" : "ControlElement", + "id" : "acm004637jsd", + "name" : "toString" + }, + "acm004638jsd" : { + "type" : "ControlElement", + "id" : "acm004638jsd", + "name" : "hashCode" + }, + "acm004639jsd" : { + "type" : "ControlElement", + "id" : "acm004639jsd", + "name" : "equals" + }, + "acm004640jsd" : { + "type" : "ControlElement", + "id" : "acm004640jsd", + "name" : "sanitizeForSaving" + }, + "acm004641jsd" : { + "type" : "ControlElement", + "id" : "acm004641jsd", + "name" : "update" + }, + "acm004642jsd" : { + "type" : "ControlElement", + "id" : "acm004642jsd", + "name" : "updateOptionsBuilder" + }, + "acm004643jsd" : { + "type" : "ControlElement", + "id" : "acm004643jsd", + "name" : "updateOptionsBuilder" + }, + "acm004644jsd" : { + "type" : "ControlElement", + "id" : "acm004644jsd", + "name" : "Builder" + }, + "acm004645jsd" : { + "type" : "ControlElement", + "id" : "acm004645jsd", + "name" : "build" + }, + "acm004646jsd" : { + "type" : "ControlElement", + "id" : "acm004646jsd", + "name" : "UpdateOptions" + }, + "acm004647jsd" : { + "type" : "ControlElement", + "id" : "acm004647jsd", + "name" : "getCourseId" + }, + "acm004648jsd" : { + "type" : "ControlElement", + "id" : "acm004648jsd", + "name" : "getFeedbackSessionName" + }, + "acm004649jsd" : { + "type" : "ControlElement", + "id" : "acm004649jsd", + "name" : "getUserEmail" + }, + "acm004650jsd" : { + "type" : "ControlElement", + "id" : "acm004650jsd", + "name" : "getIsInstructor" + }, + "acm004651jsd" : { + "type" : "ControlElement", + "id" : "acm004651jsd", + "name" : "isEndTimeOptionPresent" + }, + "acm004652jsd" : { + "type" : "ControlElement", + "id" : "acm004652jsd", + "name" : "isSentClosingEmailOptionPresent" + }, + "acm004653jsd" : { + "type" : "ControlElement", + "id" : "acm004653jsd", + "name" : "toString" + }, + "acm004654jsd" : { + "type" : "ControlElement", + "id" : "acm004654jsd", + "name" : "Builder" + }, + "acm004655jsd" : { + "type" : "ControlElement", + "id" : "acm004655jsd", + "name" : "Builder" + }, + "acm004656jsd" : { + "type" : "ControlElement", + "id" : "acm004656jsd", + "name" : "withNewEmail" + }, + "acm004657jsd" : { + "type" : "ControlElement", + "id" : "acm004657jsd", + "name" : "build" + }, + "acm004658jsd" : { + "type" : "ControlElement", + "id" : "acm004658jsd", + "name" : "BasicBuilder" + }, + "acm004659jsd" : { + "type" : "ControlElement", + "id" : "acm004659jsd", + "name" : "withEndTime" + }, + "acm004660jsd" : { + "type" : "ControlElement", + "id" : "acm004660jsd", + "name" : "withSentClosingEmail" + }, + "acm004661jsd" : { + "type" : "ControlElement", + "id" : "acm004661jsd", + "name" : "build" + }, + "acm004662jsd" : { + "type" : "ClassUnit", + "id" : "acm004662jsd", + "name" : "DeadlineExtensionAttributes", + "compilationUnitId" : "acm004617jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm004665jsd", "acm004678jsd", "acm004683jsd", "acm004688jsd", "acm007850jsd" ], + "content" : [ "acm004622jsd", "acm004623jsd", "acm004624jsd", "acm004625jsd", "acm004626jsd", "acm004627jsd", "acm004628jsd", "acm004629jsd", "acm004630jsd", "acm004631jsd", "acm004632jsd", "acm004633jsd", "acm004634jsd", "acm004635jsd", "acm004636jsd", "acm004637jsd", "acm004638jsd", "acm004639jsd", "acm004640jsd", "acm004641jsd", "acm004642jsd", "acm004643jsd", "acm004644jsd", "acm004645jsd", "acm004646jsd", "acm004647jsd", "acm004648jsd", "acm004649jsd", "acm004650jsd", "acm004651jsd", "acm004652jsd", "acm004653jsd", "acm004654jsd", "acm004655jsd", "acm004656jsd", "acm004657jsd", "acm004658jsd", "acm004659jsd", "acm004660jsd", "acm004661jsd" ] + }, + "acm004663jsd" : { + "type" : "ControlElement", + "id" : "acm004663jsd", + "name" : "Builder" + }, + "acm004664jsd" : { + "type" : "ControlElement", + "id" : "acm004664jsd", + "name" : "build" + }, + "acm004665jsd" : { + "type" : "ClassUnit", + "id" : "acm004665jsd", + "name" : "Builder", + "compilationUnitId" : "acm004617jsd", + "parentDatatypeId" : "acm004662jsd", + "extendedDataTypesIds" : [ "acm004688jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm004678jsd" ], + "content" : [ "acm004663jsd", "acm004664jsd" ] + }, + "acm004666jsd" : { + "type" : "ControlElement", + "id" : "acm004666jsd", + "name" : "UpdateOptions" + }, + "acm004667jsd" : { + "type" : "ControlElement", + "id" : "acm004667jsd", + "name" : "getCourseId" + }, + "acm004668jsd" : { + "type" : "ControlElement", + "id" : "acm004668jsd", + "name" : "getFeedbackSessionName" + }, + "acm004669jsd" : { + "type" : "ControlElement", + "id" : "acm004669jsd", + "name" : "getUserEmail" + }, + "acm004670jsd" : { + "type" : "ControlElement", + "id" : "acm004670jsd", + "name" : "getIsInstructor" + }, + "acm004671jsd" : { + "type" : "ControlElement", + "id" : "acm004671jsd", + "name" : "isEndTimeOptionPresent" + }, + "acm004672jsd" : { + "type" : "ControlElement", + "id" : "acm004672jsd", + "name" : "isSentClosingEmailOptionPresent" + }, + "acm004673jsd" : { + "type" : "ControlElement", + "id" : "acm004673jsd", + "name" : "toString" + }, + "acm004674jsd" : { + "type" : "ControlElement", + "id" : "acm004674jsd", + "name" : "Builder" + }, + "acm004675jsd" : { + "type" : "ControlElement", + "id" : "acm004675jsd", + "name" : "Builder" + }, + "acm004676jsd" : { + "type" : "ControlElement", + "id" : "acm004676jsd", + "name" : "withNewEmail" + }, + "acm004677jsd" : { + "type" : "ControlElement", + "id" : "acm004677jsd", + "name" : "build" + }, + "acm004678jsd" : { + "type" : "ClassUnit", + "id" : "acm004678jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004617jsd", + "parentDatatypeId" : "acm004662jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004678jsd", "acm004683jsd", "acm004688jsd" ], + "content" : [ "acm004666jsd", "acm004667jsd", "acm004668jsd", "acm004669jsd", "acm004670jsd", "acm004671jsd", "acm004672jsd", "acm004673jsd", "acm004674jsd", "acm004675jsd", "acm004676jsd", "acm004677jsd" ] + }, + "acm004679jsd" : { + "type" : "ControlElement", + "id" : "acm004679jsd", + "name" : "Builder" + }, + "acm004680jsd" : { + "type" : "ControlElement", + "id" : "acm004680jsd", + "name" : "Builder" + }, + "acm004681jsd" : { + "type" : "ControlElement", + "id" : "acm004681jsd", + "name" : "withNewEmail" + }, + "acm004682jsd" : { + "type" : "ControlElement", + "id" : "acm004682jsd", + "name" : "build" + }, + "acm004683jsd" : { + "type" : "ClassUnit", + "id" : "acm004683jsd", + "name" : "Builder", + "compilationUnitId" : "acm004617jsd", + "parentDatatypeId" : "acm004678jsd", + "extendedDataTypesIds" : [ "acm004688jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004678jsd", "acm004683jsd" ], + "content" : [ "acm004679jsd", "acm004680jsd", "acm004681jsd", "acm004682jsd" ] + }, + "acm004684jsd" : { + "type" : "ControlElement", + "id" : "acm004684jsd", + "name" : "BasicBuilder" + }, + "acm004685jsd" : { + "type" : "ControlElement", + "id" : "acm004685jsd", + "name" : "withEndTime" + }, + "acm004686jsd" : { + "type" : "ControlElement", + "id" : "acm004686jsd", + "name" : "withSentClosingEmail" + }, + "acm004687jsd" : { + "type" : "ControlElement", + "id" : "acm004687jsd", + "name" : "build" + }, + "acm004688jsd" : { + "type" : "ClassUnit", + "id" : "acm004688jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004617jsd", + "parentDatatypeId" : "acm004662jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004678jsd", "acm004688jsd" ], + "content" : [ "acm004684jsd", "acm004685jsd", "acm004686jsd", "acm004687jsd" ] + }, + "acm004689jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004689jsd", + "name" : "EntityAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004706jsd", "acm004714jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004690jsd" : { + "type" : "CodePackage", + "id" : "acm004690jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004691jsd" ] + }, + "acm004691jsd" : { + "type" : "CodePackage", + "id" : "acm004691jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004692jsd" ] + }, + "acm004692jsd" : { + "type" : "CodePackage", + "id" : "acm004692jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004693jsd" ] + }, + "acm004693jsd" : { + "type" : "CodePackage", + "id" : "acm004693jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004689jsd" ] + }, + "acm004694jsd" : { + "type" : "ControlElement", + "id" : "acm004694jsd", + "name" : "isValid" + }, + "acm004695jsd" : { + "type" : "ControlElement", + "id" : "acm004695jsd", + "name" : "getInvalidityInfo" + }, + "acm004696jsd" : { + "type" : "ControlElement", + "id" : "acm004696jsd", + "name" : "toEntity" + }, + "acm004697jsd" : { + "type" : "ControlElement", + "id" : "acm004697jsd", + "name" : "sanitizeForSaving" + }, + "acm004698jsd" : { + "type" : "ControlElement", + "id" : "acm004698jsd", + "name" : "addNonEmptyError" + }, + "acm004699jsd" : { + "type" : "ControlElement", + "id" : "acm004699jsd", + "name" : "UpdateOption" + }, + "acm004700jsd" : { + "type" : "ControlElement", + "id" : "acm004700jsd", + "name" : "UpdateOption" + }, + "acm004701jsd" : { + "type" : "ControlElement", + "id" : "acm004701jsd", + "name" : "of" + }, + "acm004702jsd" : { + "type" : "ControlElement", + "id" : "acm004702jsd", + "name" : "empty" + }, + "acm004703jsd" : { + "type" : "ControlElement", + "id" : "acm004703jsd", + "name" : "ifPresent" + }, + "acm004704jsd" : { + "type" : "ControlElement", + "id" : "acm004704jsd", + "name" : "isPresent" + }, + "acm004705jsd" : { + "type" : "ControlElement", + "id" : "acm004705jsd", + "name" : "toString" + }, + "acm004706jsd" : { + "type" : "ClassUnit", + "id" : "acm004706jsd", + "name" : "EntityAttributes", + "compilationUnitId" : "acm004689jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004714jsd", "acm007768jsd" ], + "content" : [ "acm004694jsd", "acm004695jsd", "acm004696jsd", "acm004697jsd", "acm004698jsd", "acm004699jsd", "acm004700jsd", "acm004701jsd", "acm004702jsd", "acm004703jsd", "acm004704jsd", "acm004705jsd" ] + }, + "acm004707jsd" : { + "type" : "ControlElement", + "id" : "acm004707jsd", + "name" : "UpdateOption" + }, + "acm004708jsd" : { + "type" : "ControlElement", + "id" : "acm004708jsd", + "name" : "UpdateOption" + }, + "acm004709jsd" : { + "type" : "ControlElement", + "id" : "acm004709jsd", + "name" : "of" + }, + "acm004710jsd" : { + "type" : "ControlElement", + "id" : "acm004710jsd", + "name" : "empty" + }, + "acm004711jsd" : { + "type" : "ControlElement", + "id" : "acm004711jsd", + "name" : "ifPresent" + }, + "acm004712jsd" : { + "type" : "ControlElement", + "id" : "acm004712jsd", + "name" : "isPresent" + }, + "acm004713jsd" : { + "type" : "ControlElement", + "id" : "acm004713jsd", + "name" : "toString" + }, + "acm004714jsd" : { + "type" : "ClassUnit", + "id" : "acm004714jsd", + "name" : "UpdateOption", + "compilationUnitId" : "acm004689jsd", + "parentDatatypeId" : "acm004706jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004714jsd" ], + "content" : [ "acm004707jsd", "acm004708jsd", "acm004709jsd", "acm004710jsd", "acm004711jsd", "acm004712jsd", "acm004713jsd" ] + }, + "acm004715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004715jsd", + "name" : "FeedbackQuestionAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004788jsd", "acm004793jsd", "acm004799jsd", "acm004802jsd", "acm004814jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004716jsd" : { + "type" : "CodePackage", + "id" : "acm004716jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004717jsd" ] + }, + "acm004717jsd" : { + "type" : "CodePackage", + "id" : "acm004717jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004718jsd" ] + }, + "acm004718jsd" : { + "type" : "CodePackage", + "id" : "acm004718jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004719jsd" ] + }, + "acm004719jsd" : { + "type" : "CodePackage", + "id" : "acm004719jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004715jsd" ] + }, + "acm004720jsd" : { + "type" : "ControlElement", + "id" : "acm004720jsd", + "name" : "FeedbackQuestionAttributes" + }, + "acm004721jsd" : { + "type" : "ControlElement", + "id" : "acm004721jsd", + "name" : "builder" + }, + "acm004722jsd" : { + "type" : "ControlElement", + "id" : "acm004722jsd", + "name" : "valueOf" + }, + "acm004723jsd" : { + "type" : "ControlElement", + "id" : "acm004723jsd", + "name" : "getCreatedAt" + }, + "acm004724jsd" : { + "type" : "ControlElement", + "id" : "acm004724jsd", + "name" : "getUpdatedAt" + }, + "acm004725jsd" : { + "type" : "ControlElement", + "id" : "acm004725jsd", + "name" : "getId" + }, + "acm004726jsd" : { + "type" : "ControlElement", + "id" : "acm004726jsd", + "name" : "setId" + }, + "acm004727jsd" : { + "type" : "ControlElement", + "id" : "acm004727jsd", + "name" : "toEntity" + }, + "acm004728jsd" : { + "type" : "ControlElement", + "id" : "acm004728jsd", + "name" : "getCopy" + }, + "acm004729jsd" : { + "type" : "ControlElement", + "id" : "acm004729jsd", + "name" : "toString" + }, + "acm004730jsd" : { + "type" : "ControlElement", + "id" : "acm004730jsd", + "name" : "getInvalidityInfo" + }, + "acm004731jsd" : { + "type" : "ControlElement", + "id" : "acm004731jsd", + "name" : "isValid" + }, + "acm004732jsd" : { + "type" : "ControlElement", + "id" : "acm004732jsd", + "name" : "isResponseVisibleTo" + }, + "acm004733jsd" : { + "type" : "ControlElement", + "id" : "acm004733jsd", + "name" : "areResponseDeletionsRequiredForChanges" + }, + "acm004734jsd" : { + "type" : "ControlElement", + "id" : "acm004734jsd", + "name" : "compareTo" + }, + "acm004735jsd" : { + "type" : "ControlElement", + "id" : "acm004735jsd", + "name" : "hashCode" + }, + "acm004736jsd" : { + "type" : "ControlElement", + "id" : "acm004736jsd", + "name" : "equals" + }, + "acm004737jsd" : { + "type" : "ControlElement", + "id" : "acm004737jsd", + "name" : "removeIrrelevantVisibilityOptions" + }, + "acm004738jsd" : { + "type" : "ControlElement", + "id" : "acm004738jsd", + "name" : "sanitizeForSaving" + }, + "acm004739jsd" : { + "type" : "ControlElement", + "id" : "acm004739jsd", + "name" : "getQuestionDetails" + }, + "acm004740jsd" : { + "type" : "ControlElement", + "id" : "acm004740jsd", + "name" : "setQuestionDetails" + }, + "acm004741jsd" : { + "type" : "ControlElement", + "id" : "acm004741jsd", + "name" : "getQuestionDetailsCopy" + }, + "acm004742jsd" : { + "type" : "ControlElement", + "id" : "acm004742jsd", + "name" : "getSerializedQuestionDetails" + }, + "acm004743jsd" : { + "type" : "ControlElement", + "id" : "acm004743jsd", + "name" : "getFeedbackQuestionId" + }, + "acm004744jsd" : { + "type" : "ControlElement", + "id" : "acm004744jsd", + "name" : "getFeedbackSessionName" + }, + "acm004745jsd" : { + "type" : "ControlElement", + "id" : "acm004745jsd", + "name" : "setFeedbackSessionName" + }, + "acm004746jsd" : { + "type" : "ControlElement", + "id" : "acm004746jsd", + "name" : "getCourseId" + }, + "acm004747jsd" : { + "type" : "ControlElement", + "id" : "acm004747jsd", + "name" : "setCourseId" + }, + "acm004748jsd" : { + "type" : "ControlElement", + "id" : "acm004748jsd", + "name" : "getQuestionDescription" + }, + "acm004749jsd" : { + "type" : "ControlElement", + "id" : "acm004749jsd", + "name" : "setQuestionDescription" + }, + "acm004750jsd" : { + "type" : "ControlElement", + "id" : "acm004750jsd", + "name" : "getQuestionNumber" + }, + "acm004751jsd" : { + "type" : "ControlElement", + "id" : "acm004751jsd", + "name" : "setQuestionNumber" + }, + "acm004752jsd" : { + "type" : "ControlElement", + "id" : "acm004752jsd", + "name" : "getQuestionType" + }, + "acm004753jsd" : { + "type" : "ControlElement", + "id" : "acm004753jsd", + "name" : "getGiverType" + }, + "acm004754jsd" : { + "type" : "ControlElement", + "id" : "acm004754jsd", + "name" : "setGiverType" + }, + "acm004755jsd" : { + "type" : "ControlElement", + "id" : "acm004755jsd", + "name" : "getRecipientType" + }, + "acm004756jsd" : { + "type" : "ControlElement", + "id" : "acm004756jsd", + "name" : "setRecipientType" + }, + "acm004757jsd" : { + "type" : "ControlElement", + "id" : "acm004757jsd", + "name" : "getNumberOfEntitiesToGiveFeedbackTo" + }, + "acm004758jsd" : { + "type" : "ControlElement", + "id" : "acm004758jsd", + "name" : "setNumberOfEntitiesToGiveFeedbackTo" + }, + "acm004759jsd" : { + "type" : "ControlElement", + "id" : "acm004759jsd", + "name" : "getShowResponsesTo" + }, + "acm004760jsd" : { + "type" : "ControlElement", + "id" : "acm004760jsd", + "name" : "setShowResponsesTo" + }, + "acm004761jsd" : { + "type" : "ControlElement", + "id" : "acm004761jsd", + "name" : "getShowGiverNameTo" + }, + "acm004762jsd" : { + "type" : "ControlElement", + "id" : "acm004762jsd", + "name" : "setShowGiverNameTo" + }, + "acm004763jsd" : { + "type" : "ControlElement", + "id" : "acm004763jsd", + "name" : "getShowRecipientNameTo" + }, + "acm004764jsd" : { + "type" : "ControlElement", + "id" : "acm004764jsd", + "name" : "setShowRecipientNameTo" + }, + "acm004765jsd" : { + "type" : "ControlElement", + "id" : "acm004765jsd", + "name" : "deserializeFeedbackQuestionDetails" + }, + "acm004766jsd" : { + "type" : "ControlElement", + "id" : "acm004766jsd", + "name" : "update" + }, + "acm004767jsd" : { + "type" : "ControlElement", + "id" : "acm004767jsd", + "name" : "updateOptionsBuilder" + }, + "acm004768jsd" : { + "type" : "ControlElement", + "id" : "acm004768jsd", + "name" : "Builder" + }, + "acm004769jsd" : { + "type" : "ControlElement", + "id" : "acm004769jsd", + "name" : "withFeedbackSessionName" + }, + "acm004770jsd" : { + "type" : "ControlElement", + "id" : "acm004770jsd", + "name" : "withCourseId" + }, + "acm004771jsd" : { + "type" : "ControlElement", + "id" : "acm004771jsd", + "name" : "build" + }, + "acm004772jsd" : { + "type" : "ControlElement", + "id" : "acm004772jsd", + "name" : "UpdateOptions" + }, + "acm004773jsd" : { + "type" : "ControlElement", + "id" : "acm004773jsd", + "name" : "getFeedbackQuestionId" + }, + "acm004774jsd" : { + "type" : "ControlElement", + "id" : "acm004774jsd", + "name" : "toString" + }, + "acm004775jsd" : { + "type" : "ControlElement", + "id" : "acm004775jsd", + "name" : "Builder" + }, + "acm004776jsd" : { + "type" : "ControlElement", + "id" : "acm004776jsd", + "name" : "build" + }, + "acm004777jsd" : { + "type" : "ControlElement", + "id" : "acm004777jsd", + "name" : "BasicBuilder" + }, + "acm004778jsd" : { + "type" : "ControlElement", + "id" : "acm004778jsd", + "name" : "withQuestionDetails" + }, + "acm004779jsd" : { + "type" : "ControlElement", + "id" : "acm004779jsd", + "name" : "withQuestionDescription" + }, + "acm004780jsd" : { + "type" : "ControlElement", + "id" : "acm004780jsd", + "name" : "withQuestionNumber" + }, + "acm004781jsd" : { + "type" : "ControlElement", + "id" : "acm004781jsd", + "name" : "withGiverType" + }, + "acm004782jsd" : { + "type" : "ControlElement", + "id" : "acm004782jsd", + "name" : "withRecipientType" + }, + "acm004783jsd" : { + "type" : "ControlElement", + "id" : "acm004783jsd", + "name" : "withNumberOfEntitiesToGiveFeedbackTo" + }, + "acm004784jsd" : { + "type" : "ControlElement", + "id" : "acm004784jsd", + "name" : "withShowResponsesTo" + }, + "acm004785jsd" : { + "type" : "ControlElement", + "id" : "acm004785jsd", + "name" : "withShowGiverNameTo" + }, + "acm004786jsd" : { + "type" : "ControlElement", + "id" : "acm004786jsd", + "name" : "withShowRecipientNameTo" + }, + "acm004787jsd" : { + "type" : "ControlElement", + "id" : "acm004787jsd", + "name" : "build" + }, + "acm004788jsd" : { + "type" : "ClassUnit", + "id" : "acm004788jsd", + "name" : "FeedbackQuestionAttributes", + "compilationUnitId" : "acm004715jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004714jsd", "acm004788jsd", "acm004793jsd", "acm004799jsd", "acm004802jsd", "acm004814jsd", "acm005977jsd", "acm005986jsd", "acm007888jsd" ], + "content" : [ "acm004720jsd", "acm004721jsd", "acm004722jsd", "acm004723jsd", "acm004724jsd", "acm004725jsd", "acm004726jsd", "acm004727jsd", "acm004728jsd", "acm004729jsd", "acm004730jsd", "acm004731jsd", "acm004732jsd", "acm004733jsd", "acm004734jsd", "acm004735jsd", "acm004736jsd", "acm004737jsd", "acm004738jsd", "acm004739jsd", "acm004740jsd", "acm004741jsd", "acm004742jsd", "acm004743jsd", "acm004744jsd", "acm004745jsd", "acm004746jsd", "acm004747jsd", "acm004748jsd", "acm004749jsd", "acm004750jsd", "acm004751jsd", "acm004752jsd", "acm004753jsd", "acm004754jsd", "acm004755jsd", "acm004756jsd", "acm004757jsd", "acm004758jsd", "acm004759jsd", "acm004760jsd", "acm004761jsd", "acm004762jsd", "acm004763jsd", "acm004764jsd", "acm004765jsd", "acm004766jsd", "acm004767jsd", "acm004768jsd", "acm004769jsd", "acm004770jsd", "acm004771jsd", "acm004772jsd", "acm004773jsd", "acm004774jsd", "acm004775jsd", "acm004776jsd", "acm004777jsd", "acm004778jsd", "acm004779jsd", "acm004780jsd", "acm004781jsd", "acm004782jsd", "acm004783jsd", "acm004784jsd", "acm004785jsd", "acm004786jsd", "acm004787jsd" ] + }, + "acm004789jsd" : { + "type" : "ControlElement", + "id" : "acm004789jsd", + "name" : "Builder" + }, + "acm004790jsd" : { + "type" : "ControlElement", + "id" : "acm004790jsd", + "name" : "withFeedbackSessionName" + }, + "acm004791jsd" : { + "type" : "ControlElement", + "id" : "acm004791jsd", + "name" : "withCourseId" + }, + "acm004792jsd" : { + "type" : "ControlElement", + "id" : "acm004792jsd", + "name" : "build" + }, + "acm004793jsd" : { + "type" : "ClassUnit", + "id" : "acm004793jsd", + "name" : "Builder", + "compilationUnitId" : "acm004715jsd", + "parentDatatypeId" : "acm004788jsd", + "extendedDataTypesIds" : [ "acm004814jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004793jsd", "acm004799jsd" ], + "content" : [ "acm004789jsd", "acm004790jsd", "acm004791jsd", "acm004792jsd" ] + }, + "acm004794jsd" : { + "type" : "ControlElement", + "id" : "acm004794jsd", + "name" : "UpdateOptions" + }, + "acm004795jsd" : { + "type" : "ControlElement", + "id" : "acm004795jsd", + "name" : "getFeedbackQuestionId" + }, + "acm004796jsd" : { + "type" : "ControlElement", + "id" : "acm004796jsd", + "name" : "toString" + }, + "acm004797jsd" : { + "type" : "ControlElement", + "id" : "acm004797jsd", + "name" : "Builder" + }, + "acm004798jsd" : { + "type" : "ControlElement", + "id" : "acm004798jsd", + "name" : "build" + }, + "acm004799jsd" : { + "type" : "ClassUnit", + "id" : "acm004799jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004715jsd", + "parentDatatypeId" : "acm004788jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004714jsd", "acm004799jsd", "acm004802jsd", "acm004814jsd", "acm005977jsd" ], + "content" : [ "acm004794jsd", "acm004795jsd", "acm004796jsd", "acm004797jsd", "acm004798jsd" ] + }, + "acm004800jsd" : { + "type" : "ControlElement", + "id" : "acm004800jsd", + "name" : "Builder" + }, + "acm004801jsd" : { + "type" : "ControlElement", + "id" : "acm004801jsd", + "name" : "build" + }, + "acm004802jsd" : { + "type" : "ClassUnit", + "id" : "acm004802jsd", + "name" : "Builder", + "compilationUnitId" : "acm004715jsd", + "parentDatatypeId" : "acm004799jsd", + "extendedDataTypesIds" : [ "acm004814jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004799jsd" ], + "content" : [ "acm004800jsd", "acm004801jsd" ] + }, + "acm004803jsd" : { + "type" : "ControlElement", + "id" : "acm004803jsd", + "name" : "BasicBuilder" + }, + "acm004804jsd" : { + "type" : "ControlElement", + "id" : "acm004804jsd", + "name" : "withQuestionDetails" + }, + "acm004805jsd" : { + "type" : "ControlElement", + "id" : "acm004805jsd", + "name" : "withQuestionDescription" + }, + "acm004806jsd" : { + "type" : "ControlElement", + "id" : "acm004806jsd", + "name" : "withQuestionNumber" + }, + "acm004807jsd" : { + "type" : "ControlElement", + "id" : "acm004807jsd", + "name" : "withGiverType" + }, + "acm004808jsd" : { + "type" : "ControlElement", + "id" : "acm004808jsd", + "name" : "withRecipientType" + }, + "acm004809jsd" : { + "type" : "ControlElement", + "id" : "acm004809jsd", + "name" : "withNumberOfEntitiesToGiveFeedbackTo" + }, + "acm004810jsd" : { + "type" : "ControlElement", + "id" : "acm004810jsd", + "name" : "withShowResponsesTo" + }, + "acm004811jsd" : { + "type" : "ControlElement", + "id" : "acm004811jsd", + "name" : "withShowGiverNameTo" + }, + "acm004812jsd" : { + "type" : "ControlElement", + "id" : "acm004812jsd", + "name" : "withShowRecipientNameTo" + }, + "acm004813jsd" : { + "type" : "ControlElement", + "id" : "acm004813jsd", + "name" : "build" + }, + "acm004814jsd" : { + "type" : "ClassUnit", + "id" : "acm004814jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004715jsd", + "parentDatatypeId" : "acm004788jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004799jsd", "acm004814jsd", "acm005977jsd" ], + "content" : [ "acm004803jsd", "acm004804jsd", "acm004805jsd", "acm004806jsd", "acm004807jsd", "acm004808jsd", "acm004809jsd", "acm004810jsd", "acm004811jsd", "acm004812jsd", "acm004813jsd" ] + }, + "acm004815jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004815jsd", + "name" : "FeedbackResponseAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004871jsd", "acm004876jsd", "acm004885jsd", "acm004891jsd", "acm004897jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004816jsd" : { + "type" : "CodePackage", + "id" : "acm004816jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004817jsd" ] + }, + "acm004817jsd" : { + "type" : "CodePackage", + "id" : "acm004817jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004818jsd" ] + }, + "acm004818jsd" : { + "type" : "CodePackage", + "id" : "acm004818jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004819jsd" ] + }, + "acm004819jsd" : { + "type" : "CodePackage", + "id" : "acm004819jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004815jsd" ] + }, + "acm004820jsd" : { + "type" : "ControlElement", + "id" : "acm004820jsd", + "name" : "FeedbackResponseAttributes" + }, + "acm004821jsd" : { + "type" : "ControlElement", + "id" : "acm004821jsd", + "name" : "FeedbackResponseAttributes" + }, + "acm004822jsd" : { + "type" : "ControlElement", + "id" : "acm004822jsd", + "name" : "valueOf" + }, + "acm004823jsd" : { + "type" : "ControlElement", + "id" : "acm004823jsd", + "name" : "getFeedbackQuestionType" + }, + "acm004824jsd" : { + "type" : "ControlElement", + "id" : "acm004824jsd", + "name" : "getId" + }, + "acm004825jsd" : { + "type" : "ControlElement", + "id" : "acm004825jsd", + "name" : "setId" + }, + "acm004826jsd" : { + "type" : "ControlElement", + "id" : "acm004826jsd", + "name" : "getCreatedAt" + }, + "acm004827jsd" : { + "type" : "ControlElement", + "id" : "acm004827jsd", + "name" : "getUpdatedAt" + }, + "acm004828jsd" : { + "type" : "ControlElement", + "id" : "acm004828jsd", + "name" : "getFeedbackSessionName" + }, + "acm004829jsd" : { + "type" : "ControlElement", + "id" : "acm004829jsd", + "name" : "getCourseId" + }, + "acm004830jsd" : { + "type" : "ControlElement", + "id" : "acm004830jsd", + "name" : "setCourseId" + }, + "acm004831jsd" : { + "type" : "ControlElement", + "id" : "acm004831jsd", + "name" : "getFeedbackQuestionId" + }, + "acm004832jsd" : { + "type" : "ControlElement", + "id" : "acm004832jsd", + "name" : "setFeedbackQuestionId" + }, + "acm004833jsd" : { + "type" : "ControlElement", + "id" : "acm004833jsd", + "name" : "getGiver" + }, + "acm004834jsd" : { + "type" : "ControlElement", + "id" : "acm004834jsd", + "name" : "setGiver" + }, + "acm004835jsd" : { + "type" : "ControlElement", + "id" : "acm004835jsd", + "name" : "getRecipient" + }, + "acm004836jsd" : { + "type" : "ControlElement", + "id" : "acm004836jsd", + "name" : "setRecipient" + }, + "acm004837jsd" : { + "type" : "ControlElement", + "id" : "acm004837jsd", + "name" : "getGiverSection" + }, + "acm004838jsd" : { + "type" : "ControlElement", + "id" : "acm004838jsd", + "name" : "getRecipientSection" + }, + "acm004839jsd" : { + "type" : "ControlElement", + "id" : "acm004839jsd", + "name" : "getInvalidityInfo" + }, + "acm004840jsd" : { + "type" : "ControlElement", + "id" : "acm004840jsd", + "name" : "isValid" + }, + "acm004841jsd" : { + "type" : "ControlElement", + "id" : "acm004841jsd", + "name" : "toEntity" + }, + "acm004842jsd" : { + "type" : "ControlElement", + "id" : "acm004842jsd", + "name" : "toString" + }, + "acm004843jsd" : { + "type" : "ControlElement", + "id" : "acm004843jsd", + "name" : "hashCode" + }, + "acm004844jsd" : { + "type" : "ControlElement", + "id" : "acm004844jsd", + "name" : "equals" + }, + "acm004845jsd" : { + "type" : "ControlElement", + "id" : "acm004845jsd", + "name" : "sanitizeForSaving" + }, + "acm004846jsd" : { + "type" : "ControlElement", + "id" : "acm004846jsd", + "name" : "getResponseDetails" + }, + "acm004847jsd" : { + "type" : "ControlElement", + "id" : "acm004847jsd", + "name" : "setResponseDetails" + }, + "acm004848jsd" : { + "type" : "ControlElement", + "id" : "acm004848jsd", + "name" : "getSerializedFeedbackResponseDetail" + }, + "acm004849jsd" : { + "type" : "ControlElement", + "id" : "acm004849jsd", + "name" : "getResponseDetailsCopy" + }, + "acm004850jsd" : { + "type" : "ControlElement", + "id" : "acm004850jsd", + "name" : "deserializeResponseFromSerializedString" + }, + "acm004851jsd" : { + "type" : "ControlElement", + "id" : "acm004851jsd", + "name" : "builder" + }, + "acm004852jsd" : { + "type" : "ControlElement", + "id" : "acm004852jsd", + "name" : "update" + }, + "acm004853jsd" : { + "type" : "ControlElement", + "id" : "acm004853jsd", + "name" : "updateOptionsBuilder" + }, + "acm004854jsd" : { + "type" : "ControlElement", + "id" : "acm004854jsd", + "name" : "Builder" + }, + "acm004855jsd" : { + "type" : "ControlElement", + "id" : "acm004855jsd", + "name" : "withCourseId" + }, + "acm004856jsd" : { + "type" : "ControlElement", + "id" : "acm004856jsd", + "name" : "withFeedbackSessionName" + }, + "acm004857jsd" : { + "type" : "ControlElement", + "id" : "acm004857jsd", + "name" : "build" + }, + "acm004858jsd" : { + "type" : "ControlElement", + "id" : "acm004858jsd", + "name" : "UpdateOptions" + }, + "acm004859jsd" : { + "type" : "ControlElement", + "id" : "acm004859jsd", + "name" : "getFeedbackResponseId" + }, + "acm004860jsd" : { + "type" : "ControlElement", + "id" : "acm004860jsd", + "name" : "toString" + }, + "acm004861jsd" : { + "type" : "ControlElement", + "id" : "acm004861jsd", + "name" : "Builder" + }, + "acm004862jsd" : { + "type" : "ControlElement", + "id" : "acm004862jsd", + "name" : "withGiver" + }, + "acm004863jsd" : { + "type" : "ControlElement", + "id" : "acm004863jsd", + "name" : "withRecipient" + }, + "acm004864jsd" : { + "type" : "ControlElement", + "id" : "acm004864jsd", + "name" : "withFeedbackResponseDetails" + }, + "acm004865jsd" : { + "type" : "ControlElement", + "id" : "acm004865jsd", + "name" : "build" + }, + "acm004866jsd" : { + "type" : "ControlElement", + "id" : "acm004866jsd", + "name" : "BasicBuilder" + }, + "acm004867jsd" : { + "type" : "ControlElement", + "id" : "acm004867jsd", + "name" : "withGiverSection" + }, + "acm004868jsd" : { + "type" : "ControlElement", + "id" : "acm004868jsd", + "name" : "withRecipientSection" + }, + "acm004869jsd" : { + "type" : "ControlElement", + "id" : "acm004869jsd", + "name" : "withResponseDetails" + }, + "acm004870jsd" : { + "type" : "ControlElement", + "id" : "acm004870jsd", + "name" : "build" + }, + "acm004871jsd" : { + "type" : "ClassUnit", + "id" : "acm004871jsd", + "name" : "FeedbackResponseAttributes", + "compilationUnitId" : "acm004815jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004714jsd", "acm004871jsd", "acm004876jsd", "acm004885jsd", "acm004891jsd", "acm004897jsd", "acm005986jsd", "acm006061jsd", "acm006127jsd", "acm007920jsd" ], + "content" : [ "acm004820jsd", "acm004821jsd", "acm004822jsd", "acm004823jsd", "acm004824jsd", "acm004825jsd", "acm004826jsd", "acm004827jsd", "acm004828jsd", "acm004829jsd", "acm004830jsd", "acm004831jsd", "acm004832jsd", "acm004833jsd", "acm004834jsd", "acm004835jsd", "acm004836jsd", "acm004837jsd", "acm004838jsd", "acm004839jsd", "acm004840jsd", "acm004841jsd", "acm004842jsd", "acm004843jsd", "acm004844jsd", "acm004845jsd", "acm004846jsd", "acm004847jsd", "acm004848jsd", "acm004849jsd", "acm004850jsd", "acm004851jsd", "acm004852jsd", "acm004853jsd", "acm004854jsd", "acm004855jsd", "acm004856jsd", "acm004857jsd", "acm004858jsd", "acm004859jsd", "acm004860jsd", "acm004861jsd", "acm004862jsd", "acm004863jsd", "acm004864jsd", "acm004865jsd", "acm004866jsd", "acm004867jsd", "acm004868jsd", "acm004869jsd", "acm004870jsd" ] + }, + "acm004872jsd" : { + "type" : "ControlElement", + "id" : "acm004872jsd", + "name" : "Builder" + }, + "acm004873jsd" : { + "type" : "ControlElement", + "id" : "acm004873jsd", + "name" : "withCourseId" + }, + "acm004874jsd" : { + "type" : "ControlElement", + "id" : "acm004874jsd", + "name" : "withFeedbackSessionName" + }, + "acm004875jsd" : { + "type" : "ControlElement", + "id" : "acm004875jsd", + "name" : "build" + }, + "acm004876jsd" : { + "type" : "ClassUnit", + "id" : "acm004876jsd", + "name" : "Builder", + "compilationUnitId" : "acm004815jsd", + "parentDatatypeId" : "acm004871jsd", + "extendedDataTypesIds" : [ "acm004897jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd", "acm004876jsd", "acm004885jsd" ], + "content" : [ "acm004872jsd", "acm004873jsd", "acm004874jsd", "acm004875jsd" ] + }, + "acm004877jsd" : { + "type" : "ControlElement", + "id" : "acm004877jsd", + "name" : "UpdateOptions" + }, + "acm004878jsd" : { + "type" : "ControlElement", + "id" : "acm004878jsd", + "name" : "getFeedbackResponseId" + }, + "acm004879jsd" : { + "type" : "ControlElement", + "id" : "acm004879jsd", + "name" : "toString" + }, + "acm004880jsd" : { + "type" : "ControlElement", + "id" : "acm004880jsd", + "name" : "Builder" + }, + "acm004881jsd" : { + "type" : "ControlElement", + "id" : "acm004881jsd", + "name" : "withGiver" + }, + "acm004882jsd" : { + "type" : "ControlElement", + "id" : "acm004882jsd", + "name" : "withRecipient" + }, + "acm004883jsd" : { + "type" : "ControlElement", + "id" : "acm004883jsd", + "name" : "withFeedbackResponseDetails" + }, + "acm004884jsd" : { + "type" : "ControlElement", + "id" : "acm004884jsd", + "name" : "build" + }, + "acm004885jsd" : { + "type" : "ClassUnit", + "id" : "acm004885jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004815jsd", + "parentDatatypeId" : "acm004871jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004714jsd", "acm004885jsd", "acm004891jsd", "acm004897jsd", "acm006061jsd" ], + "content" : [ "acm004877jsd", "acm004878jsd", "acm004879jsd", "acm004880jsd", "acm004881jsd", "acm004882jsd", "acm004883jsd", "acm004884jsd" ] + }, + "acm004886jsd" : { + "type" : "ControlElement", + "id" : "acm004886jsd", + "name" : "Builder" + }, + "acm004887jsd" : { + "type" : "ControlElement", + "id" : "acm004887jsd", + "name" : "withGiver" + }, + "acm004888jsd" : { + "type" : "ControlElement", + "id" : "acm004888jsd", + "name" : "withRecipient" + }, + "acm004889jsd" : { + "type" : "ControlElement", + "id" : "acm004889jsd", + "name" : "withFeedbackResponseDetails" + }, + "acm004890jsd" : { + "type" : "ControlElement", + "id" : "acm004890jsd", + "name" : "build" + }, + "acm004891jsd" : { + "type" : "ClassUnit", + "id" : "acm004891jsd", + "name" : "Builder", + "compilationUnitId" : "acm004815jsd", + "parentDatatypeId" : "acm004885jsd", + "extendedDataTypesIds" : [ "acm004897jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004885jsd", "acm004891jsd", "acm006061jsd" ], + "content" : [ "acm004886jsd", "acm004887jsd", "acm004888jsd", "acm004889jsd", "acm004890jsd" ] + }, + "acm004892jsd" : { + "type" : "ControlElement", + "id" : "acm004892jsd", + "name" : "BasicBuilder" + }, + "acm004893jsd" : { + "type" : "ControlElement", + "id" : "acm004893jsd", + "name" : "withGiverSection" + }, + "acm004894jsd" : { + "type" : "ControlElement", + "id" : "acm004894jsd", + "name" : "withRecipientSection" + }, + "acm004895jsd" : { + "type" : "ControlElement", + "id" : "acm004895jsd", + "name" : "withResponseDetails" + }, + "acm004896jsd" : { + "type" : "ControlElement", + "id" : "acm004896jsd", + "name" : "build" + }, + "acm004897jsd" : { + "type" : "ClassUnit", + "id" : "acm004897jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004815jsd", + "parentDatatypeId" : "acm004871jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004885jsd", "acm004897jsd", "acm006061jsd" ], + "content" : [ "acm004892jsd", "acm004893jsd", "acm004894jsd", "acm004895jsd", "acm004896jsd" ] + }, + "acm004898jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm004898jsd", + "name" : "FeedbackResponseCommentAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm004971jsd", "acm004981jsd", "acm004989jsd", "acm004994jsd", "acm005003jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm004899jsd" : { + "type" : "CodePackage", + "id" : "acm004899jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm004900jsd" ] + }, + "acm004900jsd" : { + "type" : "CodePackage", + "id" : "acm004900jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm004901jsd" ] + }, + "acm004901jsd" : { + "type" : "CodePackage", + "id" : "acm004901jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm004902jsd" ] + }, + "acm004902jsd" : { + "type" : "CodePackage", + "id" : "acm004902jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm004898jsd" ] + }, + "acm004903jsd" : { + "type" : "ControlElement", + "id" : "acm004903jsd", + "name" : "FeedbackResponseCommentAttributes" + }, + "acm004904jsd" : { + "type" : "ControlElement", + "id" : "acm004904jsd", + "name" : "valueOf" + }, + "acm004905jsd" : { + "type" : "ControlElement", + "id" : "acm004905jsd", + "name" : "builder" + }, + "acm004906jsd" : { + "type" : "ControlElement", + "id" : "acm004906jsd", + "name" : "isVisibleTo" + }, + "acm004907jsd" : { + "type" : "ControlElement", + "id" : "acm004907jsd", + "name" : "getId" + }, + "acm004908jsd" : { + "type" : "ControlElement", + "id" : "acm004908jsd", + "name" : "getCourseId" + }, + "acm004909jsd" : { + "type" : "ControlElement", + "id" : "acm004909jsd", + "name" : "setCourseId" + }, + "acm004910jsd" : { + "type" : "ControlElement", + "id" : "acm004910jsd", + "name" : "getFeedbackSessionName" + }, + "acm004911jsd" : { + "type" : "ControlElement", + "id" : "acm004911jsd", + "name" : "setFeedbackSessionName" + }, + "acm004912jsd" : { + "type" : "ControlElement", + "id" : "acm004912jsd", + "name" : "getCommentGiver" + }, + "acm004913jsd" : { + "type" : "ControlElement", + "id" : "acm004913jsd", + "name" : "setCommentGiver" + }, + "acm004914jsd" : { + "type" : "ControlElement", + "id" : "acm004914jsd", + "name" : "getCommentText" + }, + "acm004915jsd" : { + "type" : "ControlElement", + "id" : "acm004915jsd", + "name" : "setCommentText" + }, + "acm004916jsd" : { + "type" : "ControlElement", + "id" : "acm004916jsd", + "name" : "getFeedbackResponseId" + }, + "acm004917jsd" : { + "type" : "ControlElement", + "id" : "acm004917jsd", + "name" : "setFeedbackResponseId" + }, + "acm004918jsd" : { + "type" : "ControlElement", + "id" : "acm004918jsd", + "name" : "getFeedbackQuestionId" + }, + "acm004919jsd" : { + "type" : "ControlElement", + "id" : "acm004919jsd", + "name" : "setFeedbackQuestionId" + }, + "acm004920jsd" : { + "type" : "ControlElement", + "id" : "acm004920jsd", + "name" : "setShowCommentTo" + }, + "acm004921jsd" : { + "type" : "ControlElement", + "id" : "acm004921jsd", + "name" : "getShowCommentTo" + }, + "acm004922jsd" : { + "type" : "ControlElement", + "id" : "acm004922jsd", + "name" : "setShowGiverNameTo" + }, + "acm004923jsd" : { + "type" : "ControlElement", + "id" : "acm004923jsd", + "name" : "getShowGiverNameTo" + }, + "acm004924jsd" : { + "type" : "ControlElement", + "id" : "acm004924jsd", + "name" : "isVisibilityFollowingFeedbackQuestion" + }, + "acm004925jsd" : { + "type" : "ControlElement", + "id" : "acm004925jsd", + "name" : "setVisibilityFollowingFeedbackQuestion" + }, + "acm004926jsd" : { + "type" : "ControlElement", + "id" : "acm004926jsd", + "name" : "getCreatedAt" + }, + "acm004927jsd" : { + "type" : "ControlElement", + "id" : "acm004927jsd", + "name" : "setCreatedAt" + }, + "acm004928jsd" : { + "type" : "ControlElement", + "id" : "acm004928jsd", + "name" : "getLastEditorEmail" + }, + "acm004929jsd" : { + "type" : "ControlElement", + "id" : "acm004929jsd", + "name" : "setLastEditorEmail" + }, + "acm004930jsd" : { + "type" : "ControlElement", + "id" : "acm004930jsd", + "name" : "getLastEditedAt" + }, + "acm004931jsd" : { + "type" : "ControlElement", + "id" : "acm004931jsd", + "name" : "setLastEditedAt" + }, + "acm004932jsd" : { + "type" : "ControlElement", + "id" : "acm004932jsd", + "name" : "getGiverSection" + }, + "acm004933jsd" : { + "type" : "ControlElement", + "id" : "acm004933jsd", + "name" : "getReceiverSection" + }, + "acm004934jsd" : { + "type" : "ControlElement", + "id" : "acm004934jsd", + "name" : "getCommentGiverType" + }, + "acm004935jsd" : { + "type" : "ControlElement", + "id" : "acm004935jsd", + "name" : "setCommentGiverType" + }, + "acm004936jsd" : { + "type" : "ControlElement", + "id" : "acm004936jsd", + "name" : "isCommentFromFeedbackParticipant" + }, + "acm004937jsd" : { + "type" : "ControlElement", + "id" : "acm004937jsd", + "name" : "setCommentFromFeedbackParticipant" + }, + "acm004938jsd" : { + "type" : "ControlElement", + "id" : "acm004938jsd", + "name" : "setId" + }, + "acm004939jsd" : { + "type" : "ControlElement", + "id" : "acm004939jsd", + "name" : "getInvalidityInfo" + }, + "acm004940jsd" : { + "type" : "ControlElement", + "id" : "acm004940jsd", + "name" : "toEntity" + }, + "acm004941jsd" : { + "type" : "ControlElement", + "id" : "acm004941jsd", + "name" : "sanitizeForSaving" + }, + "acm004942jsd" : { + "type" : "ControlElement", + "id" : "acm004942jsd", + "name" : "toString" + }, + "acm004943jsd" : { + "type" : "ControlElement", + "id" : "acm004943jsd", + "name" : "hashCode" + }, + "acm004944jsd" : { + "type" : "ControlElement", + "id" : "acm004944jsd", + "name" : "equals" + }, + "acm004945jsd" : { + "type" : "ControlElement", + "id" : "acm004945jsd", + "name" : "update" + }, + "acm004946jsd" : { + "type" : "ControlElement", + "id" : "acm004946jsd", + "name" : "updateOptionsBuilder" + }, + "acm004947jsd" : { + "type" : "ControlElement", + "id" : "acm004947jsd", + "name" : "Builder" + }, + "acm004948jsd" : { + "type" : "ControlElement", + "id" : "acm004948jsd", + "name" : "withCourseId" + }, + "acm004949jsd" : { + "type" : "ControlElement", + "id" : "acm004949jsd", + "name" : "withFeedbackSessionName" + }, + "acm004950jsd" : { + "type" : "ControlElement", + "id" : "acm004950jsd", + "name" : "withCommentGiver" + }, + "acm004951jsd" : { + "type" : "ControlElement", + "id" : "acm004951jsd", + "name" : "withFeedbackQuestionId" + }, + "acm004952jsd" : { + "type" : "ControlElement", + "id" : "acm004952jsd", + "name" : "withVisibilityFollowingFeedbackQuestion" + }, + "acm004953jsd" : { + "type" : "ControlElement", + "id" : "acm004953jsd", + "name" : "withCommentGiverType" + }, + "acm004954jsd" : { + "type" : "ControlElement", + "id" : "acm004954jsd", + "name" : "withCommentFromFeedbackParticipant" + }, + "acm004955jsd" : { + "type" : "ControlElement", + "id" : "acm004955jsd", + "name" : "build" + }, + "acm004956jsd" : { + "type" : "ControlElement", + "id" : "acm004956jsd", + "name" : "UpdateOptions" + }, + "acm004957jsd" : { + "type" : "ControlElement", + "id" : "acm004957jsd", + "name" : "getFeedbackResponseCommentId" + }, + "acm004958jsd" : { + "type" : "ControlElement", + "id" : "acm004958jsd", + "name" : "toString" + }, + "acm004959jsd" : { + "type" : "ControlElement", + "id" : "acm004959jsd", + "name" : "Builder" + }, + "acm004960jsd" : { + "type" : "ControlElement", + "id" : "acm004960jsd", + "name" : "withLastEditorEmail" + }, + "acm004961jsd" : { + "type" : "ControlElement", + "id" : "acm004961jsd", + "name" : "withLastEditorAt" + }, + "acm004962jsd" : { + "type" : "ControlElement", + "id" : "acm004962jsd", + "name" : "build" + }, + "acm004963jsd" : { + "type" : "ControlElement", + "id" : "acm004963jsd", + "name" : "BasicBuilder" + }, + "acm004964jsd" : { + "type" : "ControlElement", + "id" : "acm004964jsd", + "name" : "withFeedbackResponseId" + }, + "acm004965jsd" : { + "type" : "ControlElement", + "id" : "acm004965jsd", + "name" : "withCommentText" + }, + "acm004966jsd" : { + "type" : "ControlElement", + "id" : "acm004966jsd", + "name" : "withShowCommentTo" + }, + "acm004967jsd" : { + "type" : "ControlElement", + "id" : "acm004967jsd", + "name" : "withShowGiverNameTo" + }, + "acm004968jsd" : { + "type" : "ControlElement", + "id" : "acm004968jsd", + "name" : "withGiverSection" + }, + "acm004969jsd" : { + "type" : "ControlElement", + "id" : "acm004969jsd", + "name" : "withReceiverSection" + }, + "acm004970jsd" : { + "type" : "ControlElement", + "id" : "acm004970jsd", + "name" : "build" + }, + "acm004971jsd" : { + "type" : "ClassUnit", + "id" : "acm004971jsd", + "name" : "FeedbackResponseCommentAttributes", + "compilationUnitId" : "acm004898jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004971jsd", "acm004981jsd", "acm004989jsd", "acm004994jsd", "acm005003jsd", "acm007960jsd" ], + "content" : [ "acm004903jsd", "acm004904jsd", "acm004905jsd", "acm004906jsd", "acm004907jsd", "acm004908jsd", "acm004909jsd", "acm004910jsd", "acm004911jsd", "acm004912jsd", "acm004913jsd", "acm004914jsd", "acm004915jsd", "acm004916jsd", "acm004917jsd", "acm004918jsd", "acm004919jsd", "acm004920jsd", "acm004921jsd", "acm004922jsd", "acm004923jsd", "acm004924jsd", "acm004925jsd", "acm004926jsd", "acm004927jsd", "acm004928jsd", "acm004929jsd", "acm004930jsd", "acm004931jsd", "acm004932jsd", "acm004933jsd", "acm004934jsd", "acm004935jsd", "acm004936jsd", "acm004937jsd", "acm004938jsd", "acm004939jsd", "acm004940jsd", "acm004941jsd", "acm004942jsd", "acm004943jsd", "acm004944jsd", "acm004945jsd", "acm004946jsd", "acm004947jsd", "acm004948jsd", "acm004949jsd", "acm004950jsd", "acm004951jsd", "acm004952jsd", "acm004953jsd", "acm004954jsd", "acm004955jsd", "acm004956jsd", "acm004957jsd", "acm004958jsd", "acm004959jsd", "acm004960jsd", "acm004961jsd", "acm004962jsd", "acm004963jsd", "acm004964jsd", "acm004965jsd", "acm004966jsd", "acm004967jsd", "acm004968jsd", "acm004969jsd", "acm004970jsd" ] + }, + "acm004972jsd" : { + "type" : "ControlElement", + "id" : "acm004972jsd", + "name" : "Builder" + }, + "acm004973jsd" : { + "type" : "ControlElement", + "id" : "acm004973jsd", + "name" : "withCourseId" + }, + "acm004974jsd" : { + "type" : "ControlElement", + "id" : "acm004974jsd", + "name" : "withFeedbackSessionName" + }, + "acm004975jsd" : { + "type" : "ControlElement", + "id" : "acm004975jsd", + "name" : "withCommentGiver" + }, + "acm004976jsd" : { + "type" : "ControlElement", + "id" : "acm004976jsd", + "name" : "withFeedbackQuestionId" + }, + "acm004977jsd" : { + "type" : "ControlElement", + "id" : "acm004977jsd", + "name" : "withVisibilityFollowingFeedbackQuestion" + }, + "acm004978jsd" : { + "type" : "ControlElement", + "id" : "acm004978jsd", + "name" : "withCommentGiverType" + }, + "acm004979jsd" : { + "type" : "ControlElement", + "id" : "acm004979jsd", + "name" : "withCommentFromFeedbackParticipant" + }, + "acm004980jsd" : { + "type" : "ControlElement", + "id" : "acm004980jsd", + "name" : "build" + }, + "acm004981jsd" : { + "type" : "ClassUnit", + "id" : "acm004981jsd", + "name" : "Builder", + "compilationUnitId" : "acm004898jsd", + "parentDatatypeId" : "acm004971jsd", + "extendedDataTypesIds" : [ "acm005003jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004971jsd", "acm004981jsd", "acm004989jsd" ], + "content" : [ "acm004972jsd", "acm004973jsd", "acm004974jsd", "acm004975jsd", "acm004976jsd", "acm004977jsd", "acm004978jsd", "acm004979jsd", "acm004980jsd" ] + }, + "acm004982jsd" : { + "type" : "ControlElement", + "id" : "acm004982jsd", + "name" : "UpdateOptions" + }, + "acm004983jsd" : { + "type" : "ControlElement", + "id" : "acm004983jsd", + "name" : "getFeedbackResponseCommentId" + }, + "acm004984jsd" : { + "type" : "ControlElement", + "id" : "acm004984jsd", + "name" : "toString" + }, + "acm004985jsd" : { + "type" : "ControlElement", + "id" : "acm004985jsd", + "name" : "Builder" + }, + "acm004986jsd" : { + "type" : "ControlElement", + "id" : "acm004986jsd", + "name" : "withLastEditorEmail" + }, + "acm004987jsd" : { + "type" : "ControlElement", + "id" : "acm004987jsd", + "name" : "withLastEditorAt" + }, + "acm004988jsd" : { + "type" : "ControlElement", + "id" : "acm004988jsd", + "name" : "build" + }, + "acm004989jsd" : { + "type" : "ClassUnit", + "id" : "acm004989jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm004898jsd", + "parentDatatypeId" : "acm004971jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004989jsd", "acm004994jsd", "acm005003jsd" ], + "content" : [ "acm004982jsd", "acm004983jsd", "acm004984jsd", "acm004985jsd", "acm004986jsd", "acm004987jsd", "acm004988jsd" ] + }, + "acm004990jsd" : { + "type" : "ControlElement", + "id" : "acm004990jsd", + "name" : "Builder" + }, + "acm004991jsd" : { + "type" : "ControlElement", + "id" : "acm004991jsd", + "name" : "withLastEditorEmail" + }, + "acm004992jsd" : { + "type" : "ControlElement", + "id" : "acm004992jsd", + "name" : "withLastEditorAt" + }, + "acm004993jsd" : { + "type" : "ControlElement", + "id" : "acm004993jsd", + "name" : "build" + }, + "acm004994jsd" : { + "type" : "ClassUnit", + "id" : "acm004994jsd", + "name" : "Builder", + "compilationUnitId" : "acm004898jsd", + "parentDatatypeId" : "acm004989jsd", + "extendedDataTypesIds" : [ "acm005003jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004989jsd", "acm004994jsd" ], + "content" : [ "acm004990jsd", "acm004991jsd", "acm004992jsd", "acm004993jsd" ] + }, + "acm004995jsd" : { + "type" : "ControlElement", + "id" : "acm004995jsd", + "name" : "BasicBuilder" + }, + "acm004996jsd" : { + "type" : "ControlElement", + "id" : "acm004996jsd", + "name" : "withFeedbackResponseId" + }, + "acm004997jsd" : { + "type" : "ControlElement", + "id" : "acm004997jsd", + "name" : "withCommentText" + }, + "acm004998jsd" : { + "type" : "ControlElement", + "id" : "acm004998jsd", + "name" : "withShowCommentTo" + }, + "acm004999jsd" : { + "type" : "ControlElement", + "id" : "acm004999jsd", + "name" : "withShowGiverNameTo" + }, + "acm005000jsd" : { + "type" : "ControlElement", + "id" : "acm005000jsd", + "name" : "withGiverSection" + }, + "acm005001jsd" : { + "type" : "ControlElement", + "id" : "acm005001jsd", + "name" : "withReceiverSection" + }, + "acm005002jsd" : { + "type" : "ControlElement", + "id" : "acm005002jsd", + "name" : "build" + }, + "acm005003jsd" : { + "type" : "ClassUnit", + "id" : "acm005003jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm004898jsd", + "parentDatatypeId" : "acm004971jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004989jsd", "acm005003jsd" ], + "content" : [ "acm004995jsd", "acm004996jsd", "acm004997jsd", "acm004998jsd", "acm004999jsd", "acm005000jsd", "acm005001jsd", "acm005002jsd" ] + }, + "acm005004jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005004jsd", + "name" : "FeedbackSessionAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm005112jsd", "acm005116jsd", "acm005129jsd", "acm005138jsd", "acm005152jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005005jsd" : { + "type" : "CodePackage", + "id" : "acm005005jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005006jsd" ] + }, + "acm005006jsd" : { + "type" : "CodePackage", + "id" : "acm005006jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005007jsd" ] + }, + "acm005007jsd" : { + "type" : "CodePackage", + "id" : "acm005007jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005008jsd" ] + }, + "acm005008jsd" : { + "type" : "CodePackage", + "id" : "acm005008jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005004jsd" ] + }, + "acm005009jsd" : { + "type" : "ControlElement", + "id" : "acm005009jsd", + "name" : "FeedbackSessionAttributes" + }, + "acm005010jsd" : { + "type" : "ControlElement", + "id" : "acm005010jsd", + "name" : "valueOf" + }, + "acm005011jsd" : { + "type" : "ControlElement", + "id" : "acm005011jsd", + "name" : "builder" + }, + "acm005012jsd" : { + "type" : "ControlElement", + "id" : "acm005012jsd", + "name" : "getCopy" + }, + "acm005013jsd" : { + "type" : "ControlElement", + "id" : "acm005013jsd", + "name" : "getCopyForStudent" + }, + "acm005014jsd" : { + "type" : "ControlElement", + "id" : "acm005014jsd", + "name" : "getCopyForInstructor" + }, + "acm005015jsd" : { + "type" : "ControlElement", + "id" : "acm005015jsd", + "name" : "getCourseId" + }, + "acm005016jsd" : { + "type" : "ControlElement", + "id" : "acm005016jsd", + "name" : "getFeedbackSessionName" + }, + "acm005017jsd" : { + "type" : "ControlElement", + "id" : "acm005017jsd", + "name" : "getInstructionsString" + }, + "acm005018jsd" : { + "type" : "ControlElement", + "id" : "acm005018jsd", + "name" : "toEntity" + }, + "acm005019jsd" : { + "type" : "ControlElement", + "id" : "acm005019jsd", + "name" : "getInvalidityInfo" + }, + "acm005020jsd" : { + "type" : "ControlElement", + "id" : "acm005020jsd", + "name" : "getDeadline" + }, + "acm005021jsd" : { + "type" : "ControlElement", + "id" : "acm005021jsd", + "name" : "getUserEmail" + }, + "acm005022jsd" : { + "type" : "ControlElement", + "id" : "acm005022jsd", + "name" : "isOpeningInHours" + }, + "acm005023jsd" : { + "type" : "ControlElement", + "id" : "acm005023jsd", + "name" : "isClosedAfter" + }, + "acm005024jsd" : { + "type" : "ControlElement", + "id" : "acm005024jsd", + "name" : "isClosingWithinTimeLimit" + }, + "acm005025jsd" : { + "type" : "ControlElement", + "id" : "acm005025jsd", + "name" : "isOpeningWithinTimeLimit" + }, + "acm005026jsd" : { + "type" : "ControlElement", + "id" : "acm005026jsd", + "name" : "isClosedWithinPastHour" + }, + "acm005027jsd" : { + "type" : "ControlElement", + "id" : "acm005027jsd", + "name" : "isClosed" + }, + "acm005028jsd" : { + "type" : "ControlElement", + "id" : "acm005028jsd", + "name" : "isOpened" + }, + "acm005029jsd" : { + "type" : "ControlElement", + "id" : "acm005029jsd", + "name" : "isInGracePeriod" + }, + "acm005030jsd" : { + "type" : "ControlElement", + "id" : "acm005030jsd", + "name" : "isWaitingToOpen" + }, + "acm005031jsd" : { + "type" : "ControlElement", + "id" : "acm005031jsd", + "name" : "isVisible" + }, + "acm005032jsd" : { + "type" : "ControlElement", + "id" : "acm005032jsd", + "name" : "isPublished" + }, + "acm005033jsd" : { + "type" : "ControlElement", + "id" : "acm005033jsd", + "name" : "isCreator" + }, + "acm005034jsd" : { + "type" : "ControlElement", + "id" : "acm005034jsd", + "name" : "sanitizeForSaving" + }, + "acm005035jsd" : { + "type" : "ControlElement", + "id" : "acm005035jsd", + "name" : "toString" + }, + "acm005036jsd" : { + "type" : "ControlElement", + "id" : "acm005036jsd", + "name" : "hashCode" + }, + "acm005037jsd" : { + "type" : "ControlElement", + "id" : "acm005037jsd", + "name" : "equals" + }, + "acm005038jsd" : { + "type" : "ControlElement", + "id" : "acm005038jsd", + "name" : "setFeedbackSessionName" + }, + "acm005039jsd" : { + "type" : "ControlElement", + "id" : "acm005039jsd", + "name" : "setCourseId" + }, + "acm005040jsd" : { + "type" : "ControlElement", + "id" : "acm005040jsd", + "name" : "getCreatorEmail" + }, + "acm005041jsd" : { + "type" : "ControlElement", + "id" : "acm005041jsd", + "name" : "setCreatorEmail" + }, + "acm005042jsd" : { + "type" : "ControlElement", + "id" : "acm005042jsd", + "name" : "getInstructions" + }, + "acm005043jsd" : { + "type" : "ControlElement", + "id" : "acm005043jsd", + "name" : "setInstructions" + }, + "acm005044jsd" : { + "type" : "ControlElement", + "id" : "acm005044jsd", + "name" : "getCreatedTime" + }, + "acm005045jsd" : { + "type" : "ControlElement", + "id" : "acm005045jsd", + "name" : "setCreatedTime" + }, + "acm005046jsd" : { + "type" : "ControlElement", + "id" : "acm005046jsd", + "name" : "getDeletedTime" + }, + "acm005047jsd" : { + "type" : "ControlElement", + "id" : "acm005047jsd", + "name" : "setDeletedTime" + }, + "acm005048jsd" : { + "type" : "ControlElement", + "id" : "acm005048jsd", + "name" : "isSessionDeleted" + }, + "acm005049jsd" : { + "type" : "ControlElement", + "id" : "acm005049jsd", + "name" : "getStartTime" + }, + "acm005050jsd" : { + "type" : "ControlElement", + "id" : "acm005050jsd", + "name" : "setStartTime" + }, + "acm005051jsd" : { + "type" : "ControlElement", + "id" : "acm005051jsd", + "name" : "getEndTime" + }, + "acm005052jsd" : { + "type" : "ControlElement", + "id" : "acm005052jsd", + "name" : "setEndTime" + }, + "acm005053jsd" : { + "type" : "ControlElement", + "id" : "acm005053jsd", + "name" : "getSessionVisibleFromTime" + }, + "acm005054jsd" : { + "type" : "ControlElement", + "id" : "acm005054jsd", + "name" : "setSessionVisibleFromTime" + }, + "acm005055jsd" : { + "type" : "ControlElement", + "id" : "acm005055jsd", + "name" : "getResultsVisibleFromTime" + }, + "acm005056jsd" : { + "type" : "ControlElement", + "id" : "acm005056jsd", + "name" : "setResultsVisibleFromTime" + }, + "acm005057jsd" : { + "type" : "ControlElement", + "id" : "acm005057jsd", + "name" : "getTimeZone" + }, + "acm005058jsd" : { + "type" : "ControlElement", + "id" : "acm005058jsd", + "name" : "setTimeZone" + }, + "acm005059jsd" : { + "type" : "ControlElement", + "id" : "acm005059jsd", + "name" : "getGracePeriodMinutes" + }, + "acm005060jsd" : { + "type" : "ControlElement", + "id" : "acm005060jsd", + "name" : "setGracePeriodMinutes" + }, + "acm005061jsd" : { + "type" : "ControlElement", + "id" : "acm005061jsd", + "name" : "isSentOpeningSoonEmail" + }, + "acm005062jsd" : { + "type" : "ControlElement", + "id" : "acm005062jsd", + "name" : "setSentOpeningSoonEmail" + }, + "acm005063jsd" : { + "type" : "ControlElement", + "id" : "acm005063jsd", + "name" : "isSentOpenEmail" + }, + "acm005064jsd" : { + "type" : "ControlElement", + "id" : "acm005064jsd", + "name" : "setSentOpenEmail" + }, + "acm005065jsd" : { + "type" : "ControlElement", + "id" : "acm005065jsd", + "name" : "isSentClosingEmail" + }, + "acm005066jsd" : { + "type" : "ControlElement", + "id" : "acm005066jsd", + "name" : "setSentClosingEmail" + }, + "acm005067jsd" : { + "type" : "ControlElement", + "id" : "acm005067jsd", + "name" : "isSentClosedEmail" + }, + "acm005068jsd" : { + "type" : "ControlElement", + "id" : "acm005068jsd", + "name" : "setSentClosedEmail" + }, + "acm005069jsd" : { + "type" : "ControlElement", + "id" : "acm005069jsd", + "name" : "isSentPublishedEmail" + }, + "acm005070jsd" : { + "type" : "ControlElement", + "id" : "acm005070jsd", + "name" : "setSentPublishedEmail" + }, + "acm005071jsd" : { + "type" : "ControlElement", + "id" : "acm005071jsd", + "name" : "isOpeningEmailEnabled" + }, + "acm005072jsd" : { + "type" : "ControlElement", + "id" : "acm005072jsd", + "name" : "setOpeningEmailEnabled" + }, + "acm005073jsd" : { + "type" : "ControlElement", + "id" : "acm005073jsd", + "name" : "isClosingEmailEnabled" + }, + "acm005074jsd" : { + "type" : "ControlElement", + "id" : "acm005074jsd", + "name" : "setClosingEmailEnabled" + }, + "acm005075jsd" : { + "type" : "ControlElement", + "id" : "acm005075jsd", + "name" : "isPublishedEmailEnabled" + }, + "acm005076jsd" : { + "type" : "ControlElement", + "id" : "acm005076jsd", + "name" : "setPublishedEmailEnabled" + }, + "acm005077jsd" : { + "type" : "ControlElement", + "id" : "acm005077jsd", + "name" : "getStudentDeadlines" + }, + "acm005078jsd" : { + "type" : "ControlElement", + "id" : "acm005078jsd", + "name" : "setStudentDeadlines" + }, + "acm005079jsd" : { + "type" : "ControlElement", + "id" : "acm005079jsd", + "name" : "getInstructorDeadlines" + }, + "acm005080jsd" : { + "type" : "ControlElement", + "id" : "acm005080jsd", + "name" : "setInstructorDeadlines" + }, + "acm005081jsd" : { + "type" : "ControlElement", + "id" : "acm005081jsd", + "name" : "update" + }, + "acm005082jsd" : { + "type" : "ControlElement", + "id" : "acm005082jsd", + "name" : "updateOptionsBuilder" + }, + "acm005083jsd" : { + "type" : "ControlElement", + "id" : "acm005083jsd", + "name" : "updateOptionsBuilder" + }, + "acm005084jsd" : { + "type" : "ControlElement", + "id" : "acm005084jsd", + "name" : "Builder" + }, + "acm005085jsd" : { + "type" : "ControlElement", + "id" : "acm005085jsd", + "name" : "withCreatorEmail" + }, + "acm005086jsd" : { + "type" : "ControlElement", + "id" : "acm005086jsd", + "name" : "build" + }, + "acm005087jsd" : { + "type" : "ControlElement", + "id" : "acm005087jsd", + "name" : "UpdateOptions" + }, + "acm005088jsd" : { + "type" : "ControlElement", + "id" : "acm005088jsd", + "name" : "getCourseId" + }, + "acm005089jsd" : { + "type" : "ControlElement", + "id" : "acm005089jsd", + "name" : "getFeedbackSessionName" + }, + "acm005090jsd" : { + "type" : "ControlElement", + "id" : "acm005090jsd", + "name" : "toString" + }, + "acm005091jsd" : { + "type" : "ControlElement", + "id" : "acm005091jsd", + "name" : "Builder" + }, + "acm005092jsd" : { + "type" : "ControlElement", + "id" : "acm005092jsd", + "name" : "Builder" + }, + "acm005093jsd" : { + "type" : "ControlElement", + "id" : "acm005093jsd", + "name" : "withSentOpeningSoonEmail" + }, + "acm005094jsd" : { + "type" : "ControlElement", + "id" : "acm005094jsd", + "name" : "withSentOpenEmail" + }, + "acm005095jsd" : { + "type" : "ControlElement", + "id" : "acm005095jsd", + "name" : "withSentClosingEmail" + }, + "acm005096jsd" : { + "type" : "ControlElement", + "id" : "acm005096jsd", + "name" : "withSentClosedEmail" + }, + "acm005097jsd" : { + "type" : "ControlElement", + "id" : "acm005097jsd", + "name" : "withSentPublishedEmail" + }, + "acm005098jsd" : { + "type" : "ControlElement", + "id" : "acm005098jsd", + "name" : "build" + }, + "acm005099jsd" : { + "type" : "ControlElement", + "id" : "acm005099jsd", + "name" : "BasicBuilder" + }, + "acm005100jsd" : { + "type" : "ControlElement", + "id" : "acm005100jsd", + "name" : "withInstructions" + }, + "acm005101jsd" : { + "type" : "ControlElement", + "id" : "acm005101jsd", + "name" : "withStartTime" + }, + "acm005102jsd" : { + "type" : "ControlElement", + "id" : "acm005102jsd", + "name" : "withEndTime" + }, + "acm005103jsd" : { + "type" : "ControlElement", + "id" : "acm005103jsd", + "name" : "withSessionVisibleFromTime" + }, + "acm005104jsd" : { + "type" : "ControlElement", + "id" : "acm005104jsd", + "name" : "withResultsVisibleFromTime" + }, + "acm005105jsd" : { + "type" : "ControlElement", + "id" : "acm005105jsd", + "name" : "withTimeZone" + }, + "acm005106jsd" : { + "type" : "ControlElement", + "id" : "acm005106jsd", + "name" : "withGracePeriod" + }, + "acm005107jsd" : { + "type" : "ControlElement", + "id" : "acm005107jsd", + "name" : "withIsClosingEmailEnabled" + }, + "acm005108jsd" : { + "type" : "ControlElement", + "id" : "acm005108jsd", + "name" : "withIsPublishedEmailEnabled" + }, + "acm005109jsd" : { + "type" : "ControlElement", + "id" : "acm005109jsd", + "name" : "withStudentDeadlines" + }, + "acm005110jsd" : { + "type" : "ControlElement", + "id" : "acm005110jsd", + "name" : "withInstructorDeadlines" + }, + "acm005111jsd" : { + "type" : "ControlElement", + "id" : "acm005111jsd", + "name" : "build" + }, + "acm005112jsd" : { + "type" : "ClassUnit", + "id" : "acm005112jsd", + "name" : "FeedbackSessionAttributes", + "compilationUnitId" : "acm005004jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005116jsd", "acm005129jsd", "acm005138jsd", "acm005152jsd", "acm008013jsd" ], + "content" : [ "acm005009jsd", "acm005010jsd", "acm005011jsd", "acm005012jsd", "acm005013jsd", "acm005014jsd", "acm005015jsd", "acm005016jsd", "acm005017jsd", "acm005018jsd", "acm005019jsd", "acm005020jsd", "acm005021jsd", "acm005022jsd", "acm005023jsd", "acm005024jsd", "acm005025jsd", "acm005026jsd", "acm005027jsd", "acm005028jsd", "acm005029jsd", "acm005030jsd", "acm005031jsd", "acm005032jsd", "acm005033jsd", "acm005034jsd", "acm005035jsd", "acm005036jsd", "acm005037jsd", "acm005038jsd", "acm005039jsd", "acm005040jsd", "acm005041jsd", "acm005042jsd", "acm005043jsd", "acm005044jsd", "acm005045jsd", "acm005046jsd", "acm005047jsd", "acm005048jsd", "acm005049jsd", "acm005050jsd", "acm005051jsd", "acm005052jsd", "acm005053jsd", "acm005054jsd", "acm005055jsd", "acm005056jsd", "acm005057jsd", "acm005058jsd", "acm005059jsd", "acm005060jsd", "acm005061jsd", "acm005062jsd", "acm005063jsd", "acm005064jsd", "acm005065jsd", "acm005066jsd", "acm005067jsd", "acm005068jsd", "acm005069jsd", "acm005070jsd", "acm005071jsd", "acm005072jsd", "acm005073jsd", "acm005074jsd", "acm005075jsd", "acm005076jsd", "acm005077jsd", "acm005078jsd", "acm005079jsd", "acm005080jsd", "acm005081jsd", "acm005082jsd", "acm005083jsd", "acm005084jsd", "acm005085jsd", "acm005086jsd", "acm005087jsd", "acm005088jsd", "acm005089jsd", "acm005090jsd", "acm005091jsd", "acm005092jsd", "acm005093jsd", "acm005094jsd", "acm005095jsd", "acm005096jsd", "acm005097jsd", "acm005098jsd", "acm005099jsd", "acm005100jsd", "acm005101jsd", "acm005102jsd", "acm005103jsd", "acm005104jsd", "acm005105jsd", "acm005106jsd", "acm005107jsd", "acm005108jsd", "acm005109jsd", "acm005110jsd", "acm005111jsd" ] + }, + "acm005113jsd" : { + "type" : "ControlElement", + "id" : "acm005113jsd", + "name" : "Builder" + }, + "acm005114jsd" : { + "type" : "ControlElement", + "id" : "acm005114jsd", + "name" : "withCreatorEmail" + }, + "acm005115jsd" : { + "type" : "ControlElement", + "id" : "acm005115jsd", + "name" : "build" + }, + "acm005116jsd" : { + "type" : "ClassUnit", + "id" : "acm005116jsd", + "name" : "Builder", + "compilationUnitId" : "acm005004jsd", + "parentDatatypeId" : "acm005112jsd", + "extendedDataTypesIds" : [ "acm005152jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005116jsd", "acm005129jsd" ], + "content" : [ "acm005113jsd", "acm005114jsd", "acm005115jsd" ] + }, + "acm005117jsd" : { + "type" : "ControlElement", + "id" : "acm005117jsd", + "name" : "UpdateOptions" + }, + "acm005118jsd" : { + "type" : "ControlElement", + "id" : "acm005118jsd", + "name" : "getCourseId" + }, + "acm005119jsd" : { + "type" : "ControlElement", + "id" : "acm005119jsd", + "name" : "getFeedbackSessionName" + }, + "acm005120jsd" : { + "type" : "ControlElement", + "id" : "acm005120jsd", + "name" : "toString" + }, + "acm005121jsd" : { + "type" : "ControlElement", + "id" : "acm005121jsd", + "name" : "Builder" + }, + "acm005122jsd" : { + "type" : "ControlElement", + "id" : "acm005122jsd", + "name" : "Builder" + }, + "acm005123jsd" : { + "type" : "ControlElement", + "id" : "acm005123jsd", + "name" : "withSentOpeningSoonEmail" + }, + "acm005124jsd" : { + "type" : "ControlElement", + "id" : "acm005124jsd", + "name" : "withSentOpenEmail" + }, + "acm005125jsd" : { + "type" : "ControlElement", + "id" : "acm005125jsd", + "name" : "withSentClosingEmail" + }, + "acm005126jsd" : { + "type" : "ControlElement", + "id" : "acm005126jsd", + "name" : "withSentClosedEmail" + }, + "acm005127jsd" : { + "type" : "ControlElement", + "id" : "acm005127jsd", + "name" : "withSentPublishedEmail" + }, + "acm005128jsd" : { + "type" : "ControlElement", + "id" : "acm005128jsd", + "name" : "build" + }, + "acm005129jsd" : { + "type" : "ClassUnit", + "id" : "acm005129jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm005004jsd", + "parentDatatypeId" : "acm005112jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005129jsd", "acm005138jsd", "acm005152jsd" ], + "content" : [ "acm005117jsd", "acm005118jsd", "acm005119jsd", "acm005120jsd", "acm005121jsd", "acm005122jsd", "acm005123jsd", "acm005124jsd", "acm005125jsd", "acm005126jsd", "acm005127jsd", "acm005128jsd" ] + }, + "acm005130jsd" : { + "type" : "ControlElement", + "id" : "acm005130jsd", + "name" : "Builder" + }, + "acm005131jsd" : { + "type" : "ControlElement", + "id" : "acm005131jsd", + "name" : "Builder" + }, + "acm005132jsd" : { + "type" : "ControlElement", + "id" : "acm005132jsd", + "name" : "withSentOpeningSoonEmail" + }, + "acm005133jsd" : { + "type" : "ControlElement", + "id" : "acm005133jsd", + "name" : "withSentOpenEmail" + }, + "acm005134jsd" : { + "type" : "ControlElement", + "id" : "acm005134jsd", + "name" : "withSentClosingEmail" + }, + "acm005135jsd" : { + "type" : "ControlElement", + "id" : "acm005135jsd", + "name" : "withSentClosedEmail" + }, + "acm005136jsd" : { + "type" : "ControlElement", + "id" : "acm005136jsd", + "name" : "withSentPublishedEmail" + }, + "acm005137jsd" : { + "type" : "ControlElement", + "id" : "acm005137jsd", + "name" : "build" + }, + "acm005138jsd" : { + "type" : "ClassUnit", + "id" : "acm005138jsd", + "name" : "Builder", + "compilationUnitId" : "acm005004jsd", + "parentDatatypeId" : "acm005129jsd", + "extendedDataTypesIds" : [ "acm005152jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005129jsd", "acm005138jsd" ], + "content" : [ "acm005130jsd", "acm005131jsd", "acm005132jsd", "acm005133jsd", "acm005134jsd", "acm005135jsd", "acm005136jsd", "acm005137jsd" ] + }, + "acm005139jsd" : { + "type" : "ControlElement", + "id" : "acm005139jsd", + "name" : "BasicBuilder" + }, + "acm005140jsd" : { + "type" : "ControlElement", + "id" : "acm005140jsd", + "name" : "withInstructions" + }, + "acm005141jsd" : { + "type" : "ControlElement", + "id" : "acm005141jsd", + "name" : "withStartTime" + }, + "acm005142jsd" : { + "type" : "ControlElement", + "id" : "acm005142jsd", + "name" : "withEndTime" + }, + "acm005143jsd" : { + "type" : "ControlElement", + "id" : "acm005143jsd", + "name" : "withSessionVisibleFromTime" + }, + "acm005144jsd" : { + "type" : "ControlElement", + "id" : "acm005144jsd", + "name" : "withResultsVisibleFromTime" + }, + "acm005145jsd" : { + "type" : "ControlElement", + "id" : "acm005145jsd", + "name" : "withTimeZone" + }, + "acm005146jsd" : { + "type" : "ControlElement", + "id" : "acm005146jsd", + "name" : "withGracePeriod" + }, + "acm005147jsd" : { + "type" : "ControlElement", + "id" : "acm005147jsd", + "name" : "withIsClosingEmailEnabled" + }, + "acm005148jsd" : { + "type" : "ControlElement", + "id" : "acm005148jsd", + "name" : "withIsPublishedEmailEnabled" + }, + "acm005149jsd" : { + "type" : "ControlElement", + "id" : "acm005149jsd", + "name" : "withStudentDeadlines" + }, + "acm005150jsd" : { + "type" : "ControlElement", + "id" : "acm005150jsd", + "name" : "withInstructorDeadlines" + }, + "acm005151jsd" : { + "type" : "ControlElement", + "id" : "acm005151jsd", + "name" : "build" + }, + "acm005152jsd" : { + "type" : "ClassUnit", + "id" : "acm005152jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm005004jsd", + "parentDatatypeId" : "acm005112jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005129jsd", "acm005152jsd" ], + "content" : [ "acm005139jsd", "acm005140jsd", "acm005141jsd", "acm005142jsd", "acm005143jsd", "acm005144jsd", "acm005145jsd", "acm005146jsd", "acm005147jsd", "acm005148jsd", "acm005149jsd", "acm005150jsd", "acm005151jsd" ] + }, + "acm005153jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005153jsd", + "name" : "InstructorAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm005233jsd", "acm005237jsd", "acm005245jsd", "acm005249jsd", "acm005257jsd", "acm005261jsd", "acm005263jsd", "acm005272jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005154jsd" : { + "type" : "CodePackage", + "id" : "acm005154jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005155jsd" ] + }, + "acm005155jsd" : { + "type" : "CodePackage", + "id" : "acm005155jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005156jsd" ] + }, + "acm005156jsd" : { + "type" : "CodePackage", + "id" : "acm005156jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005157jsd" ] + }, + "acm005157jsd" : { + "type" : "CodePackage", + "id" : "acm005157jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005153jsd" ] + }, + "acm005158jsd" : { + "type" : "ControlElement", + "id" : "acm005158jsd", + "name" : "InstructorAttributes" + }, + "acm005159jsd" : { + "type" : "ControlElement", + "id" : "acm005159jsd", + "name" : "builder" + }, + "acm005160jsd" : { + "type" : "ControlElement", + "id" : "acm005160jsd", + "name" : "valueOf" + }, + "acm005161jsd" : { + "type" : "ControlElement", + "id" : "acm005161jsd", + "name" : "getCopy" + }, + "acm005162jsd" : { + "type" : "ControlElement", + "id" : "acm005162jsd", + "name" : "getInstructorPrivilegesAsText" + }, + "acm005163jsd" : { + "type" : "ControlElement", + "id" : "acm005163jsd", + "name" : "getName" + }, + "acm005164jsd" : { + "type" : "ControlElement", + "id" : "acm005164jsd", + "name" : "setName" + }, + "acm005165jsd" : { + "type" : "ControlElement", + "id" : "acm005165jsd", + "name" : "getKey" + }, + "acm005166jsd" : { + "type" : "ControlElement", + "id" : "acm005166jsd", + "name" : "setKey" + }, + "acm005167jsd" : { + "type" : "ControlElement", + "id" : "acm005167jsd", + "name" : "isArchived" + }, + "acm005168jsd" : { + "type" : "ControlElement", + "id" : "acm005168jsd", + "name" : "setArchived" + }, + "acm005169jsd" : { + "type" : "ControlElement", + "id" : "acm005169jsd", + "name" : "getPrivileges" + }, + "acm005170jsd" : { + "type" : "ControlElement", + "id" : "acm005170jsd", + "name" : "setPrivileges" + }, + "acm005171jsd" : { + "type" : "ControlElement", + "id" : "acm005171jsd", + "name" : "getDisplayedName" + }, + "acm005172jsd" : { + "type" : "ControlElement", + "id" : "acm005172jsd", + "name" : "setDisplayedName" + }, + "acm005173jsd" : { + "type" : "ControlElement", + "id" : "acm005173jsd", + "name" : "getEmail" + }, + "acm005174jsd" : { + "type" : "ControlElement", + "id" : "acm005174jsd", + "name" : "setEmail" + }, + "acm005175jsd" : { + "type" : "ControlElement", + "id" : "acm005175jsd", + "name" : "isDisplayedToStudents" + }, + "acm005176jsd" : { + "type" : "ControlElement", + "id" : "acm005176jsd", + "name" : "setDisplayedToStudents" + }, + "acm005177jsd" : { + "type" : "ControlElement", + "id" : "acm005177jsd", + "name" : "isRegistered" + }, + "acm005178jsd" : { + "type" : "ControlElement", + "id" : "acm005178jsd", + "name" : "getRegistrationUrl" + }, + "acm005179jsd" : { + "type" : "ControlElement", + "id" : "acm005179jsd", + "name" : "toEntity" + }, + "acm005180jsd" : { + "type" : "ControlElement", + "id" : "acm005180jsd", + "name" : "getInvalidityInfo" + }, + "acm005181jsd" : { + "type" : "ControlElement", + "id" : "acm005181jsd", + "name" : "sortByName" + }, + "acm005182jsd" : { + "type" : "ControlElement", + "id" : "acm005182jsd", + "name" : "toString" + }, + "acm005183jsd" : { + "type" : "ControlElement", + "id" : "acm005183jsd", + "name" : "hashCode" + }, + "acm005184jsd" : { + "type" : "ControlElement", + "id" : "acm005184jsd", + "name" : "equals" + }, + "acm005185jsd" : { + "type" : "ControlElement", + "id" : "acm005185jsd", + "name" : "sanitizeForSaving" + }, + "acm005186jsd" : { + "type" : "ControlElement", + "id" : "acm005186jsd", + "name" : "isAllowedForPrivilege" + }, + "acm005187jsd" : { + "type" : "ControlElement", + "id" : "acm005187jsd", + "name" : "isAllowedForPrivilege" + }, + "acm005188jsd" : { + "type" : "ControlElement", + "id" : "acm005188jsd", + "name" : "isAllowedForPrivilege" + }, + "acm005189jsd" : { + "type" : "ControlElement", + "id" : "acm005189jsd", + "name" : "isAllowedForPrivilegeAnySection" + }, + "acm005190jsd" : { + "type" : "ControlElement", + "id" : "acm005190jsd", + "name" : "hasCoownerPrivileges" + }, + "acm005191jsd" : { + "type" : "ControlElement", + "id" : "acm005191jsd", + "name" : "getCourseId" + }, + "acm005192jsd" : { + "type" : "ControlElement", + "id" : "acm005192jsd", + "name" : "setCourseId" + }, + "acm005193jsd" : { + "type" : "ControlElement", + "id" : "acm005193jsd", + "name" : "getGoogleId" + }, + "acm005194jsd" : { + "type" : "ControlElement", + "id" : "acm005194jsd", + "name" : "setGoogleId" + }, + "acm005195jsd" : { + "type" : "ControlElement", + "id" : "acm005195jsd", + "name" : "getRole" + }, + "acm005196jsd" : { + "type" : "ControlElement", + "id" : "acm005196jsd", + "name" : "setRole" + }, + "acm005197jsd" : { + "type" : "ControlElement", + "id" : "acm005197jsd", + "name" : "getCreatedAt" + }, + "acm005198jsd" : { + "type" : "ControlElement", + "id" : "acm005198jsd", + "name" : "getUpdatedAt" + }, + "acm005199jsd" : { + "type" : "ControlElement", + "id" : "acm005199jsd", + "name" : "setCreatedAt" + }, + "acm005200jsd" : { + "type" : "ControlElement", + "id" : "acm005200jsd", + "name" : "setUpdatedAt" + }, + "acm005201jsd" : { + "type" : "ControlElement", + "id" : "acm005201jsd", + "name" : "getSectionsWithPrivilege" + }, + "acm005202jsd" : { + "type" : "ControlElement", + "id" : "acm005202jsd", + "name" : "update" + }, + "acm005203jsd" : { + "type" : "ControlElement", + "id" : "acm005203jsd", + "name" : "update" + }, + "acm005204jsd" : { + "type" : "ControlElement", + "id" : "acm005204jsd", + "name" : "updateBasic" + }, + "acm005205jsd" : { + "type" : "ControlElement", + "id" : "acm005205jsd", + "name" : "updateOptionsWithEmailBuilder" + }, + "acm005206jsd" : { + "type" : "ControlElement", + "id" : "acm005206jsd", + "name" : "updateOptionsWithGoogleIdBuilder" + }, + "acm005207jsd" : { + "type" : "ControlElement", + "id" : "acm005207jsd", + "name" : "Builder" + }, + "acm005208jsd" : { + "type" : "ControlElement", + "id" : "acm005208jsd", + "name" : "withGoogleId" + }, + "acm005209jsd" : { + "type" : "ControlElement", + "id" : "acm005209jsd", + "name" : "build" + }, + "acm005210jsd" : { + "type" : "ControlElement", + "id" : "acm005210jsd", + "name" : "UpdateOptionsWithEmail" + }, + "acm005211jsd" : { + "type" : "ControlElement", + "id" : "acm005211jsd", + "name" : "getCourseId" + }, + "acm005212jsd" : { + "type" : "ControlElement", + "id" : "acm005212jsd", + "name" : "getEmail" + }, + "acm005213jsd" : { + "type" : "ControlElement", + "id" : "acm005213jsd", + "name" : "toString" + }, + "acm005214jsd" : { + "type" : "ControlElement", + "id" : "acm005214jsd", + "name" : "Builder" + }, + "acm005215jsd" : { + "type" : "ControlElement", + "id" : "acm005215jsd", + "name" : "withGoogleId" + }, + "acm005216jsd" : { + "type" : "ControlElement", + "id" : "acm005216jsd", + "name" : "build" + }, + "acm005217jsd" : { + "type" : "ControlElement", + "id" : "acm005217jsd", + "name" : "UpdateOptionsWithGoogleId" + }, + "acm005218jsd" : { + "type" : "ControlElement", + "id" : "acm005218jsd", + "name" : "getCourseId" + }, + "acm005219jsd" : { + "type" : "ControlElement", + "id" : "acm005219jsd", + "name" : "getGoogleId" + }, + "acm005220jsd" : { + "type" : "ControlElement", + "id" : "acm005220jsd", + "name" : "toString" + }, + "acm005221jsd" : { + "type" : "ControlElement", + "id" : "acm005221jsd", + "name" : "Builder" + }, + "acm005222jsd" : { + "type" : "ControlElement", + "id" : "acm005222jsd", + "name" : "withEmail" + }, + "acm005223jsd" : { + "type" : "ControlElement", + "id" : "acm005223jsd", + "name" : "build" + }, + "acm005224jsd" : { + "type" : "ControlElement", + "id" : "acm005224jsd", + "name" : "toString" + }, + "acm005225jsd" : { + "type" : "ControlElement", + "id" : "acm005225jsd", + "name" : "BasicBuilder" + }, + "acm005226jsd" : { + "type" : "ControlElement", + "id" : "acm005226jsd", + "name" : "withName" + }, + "acm005227jsd" : { + "type" : "ControlElement", + "id" : "acm005227jsd", + "name" : "withRole" + }, + "acm005228jsd" : { + "type" : "ControlElement", + "id" : "acm005228jsd", + "name" : "withDisplayedName" + }, + "acm005229jsd" : { + "type" : "ControlElement", + "id" : "acm005229jsd", + "name" : "withPrivileges" + }, + "acm005230jsd" : { + "type" : "ControlElement", + "id" : "acm005230jsd", + "name" : "withIsDisplayedToStudents" + }, + "acm005231jsd" : { + "type" : "ControlElement", + "id" : "acm005231jsd", + "name" : "withIsArchived" + }, + "acm005232jsd" : { + "type" : "ControlElement", + "id" : "acm005232jsd", + "name" : "build" + }, + "acm005233jsd" : { + "type" : "ClassUnit", + "id" : "acm005233jsd", + "name" : "InstructorAttributes", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004332jsd", "acm004341jsd", "acm004714jsd", "acm005233jsd", "acm005237jsd", "acm005245jsd", "acm005249jsd", "acm005257jsd", "acm005261jsd", "acm005263jsd", "acm005272jsd", "acm008049jsd" ], + "content" : [ "acm005158jsd", "acm005159jsd", "acm005160jsd", "acm005161jsd", "acm005162jsd", "acm005163jsd", "acm005164jsd", "acm005165jsd", "acm005166jsd", "acm005167jsd", "acm005168jsd", "acm005169jsd", "acm005170jsd", "acm005171jsd", "acm005172jsd", "acm005173jsd", "acm005174jsd", "acm005175jsd", "acm005176jsd", "acm005177jsd", "acm005178jsd", "acm005179jsd", "acm005180jsd", "acm005181jsd", "acm005182jsd", "acm005183jsd", "acm005184jsd", "acm005185jsd", "acm005186jsd", "acm005187jsd", "acm005188jsd", "acm005189jsd", "acm005190jsd", "acm005191jsd", "acm005192jsd", "acm005193jsd", "acm005194jsd", "acm005195jsd", "acm005196jsd", "acm005197jsd", "acm005198jsd", "acm005199jsd", "acm005200jsd", "acm005201jsd", "acm005202jsd", "acm005203jsd", "acm005204jsd", "acm005205jsd", "acm005206jsd", "acm005207jsd", "acm005208jsd", "acm005209jsd", "acm005210jsd", "acm005211jsd", "acm005212jsd", "acm005213jsd", "acm005214jsd", "acm005215jsd", "acm005216jsd", "acm005217jsd", "acm005218jsd", "acm005219jsd", "acm005220jsd", "acm005221jsd", "acm005222jsd", "acm005223jsd", "acm005224jsd", "acm005225jsd", "acm005226jsd", "acm005227jsd", "acm005228jsd", "acm005229jsd", "acm005230jsd", "acm005231jsd", "acm005232jsd" ] + }, + "acm005234jsd" : { + "type" : "ControlElement", + "id" : "acm005234jsd", + "name" : "Builder" + }, + "acm005235jsd" : { + "type" : "ControlElement", + "id" : "acm005235jsd", + "name" : "withGoogleId" + }, + "acm005236jsd" : { + "type" : "ControlElement", + "id" : "acm005236jsd", + "name" : "build" + }, + "acm005237jsd" : { + "type" : "ClassUnit", + "id" : "acm005237jsd", + "name" : "Builder", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005233jsd", + "extendedDataTypesIds" : [ "acm005272jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005237jsd", "acm005263jsd" ], + "content" : [ "acm005234jsd", "acm005235jsd", "acm005236jsd" ] + }, + "acm005238jsd" : { + "type" : "ControlElement", + "id" : "acm005238jsd", + "name" : "UpdateOptionsWithEmail" + }, + "acm005239jsd" : { + "type" : "ControlElement", + "id" : "acm005239jsd", + "name" : "getCourseId" + }, + "acm005240jsd" : { + "type" : "ControlElement", + "id" : "acm005240jsd", + "name" : "getEmail" + }, + "acm005241jsd" : { + "type" : "ControlElement", + "id" : "acm005241jsd", + "name" : "toString" + }, + "acm005242jsd" : { + "type" : "ControlElement", + "id" : "acm005242jsd", + "name" : "Builder" + }, + "acm005243jsd" : { + "type" : "ControlElement", + "id" : "acm005243jsd", + "name" : "withGoogleId" + }, + "acm005244jsd" : { + "type" : "ControlElement", + "id" : "acm005244jsd", + "name" : "build" + }, + "acm005245jsd" : { + "type" : "ClassUnit", + "id" : "acm005245jsd", + "name" : "UpdateOptionsWithEmail", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005233jsd", + "extendedDataTypesIds" : [ "acm005263jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005245jsd", "acm005249jsd", "acm005272jsd" ], + "content" : [ "acm005238jsd", "acm005239jsd", "acm005240jsd", "acm005241jsd", "acm005242jsd", "acm005243jsd", "acm005244jsd" ] + }, + "acm005246jsd" : { + "type" : "ControlElement", + "id" : "acm005246jsd", + "name" : "Builder" + }, + "acm005247jsd" : { + "type" : "ControlElement", + "id" : "acm005247jsd", + "name" : "withGoogleId" + }, + "acm005248jsd" : { + "type" : "ControlElement", + "id" : "acm005248jsd", + "name" : "build" + }, + "acm005249jsd" : { + "type" : "ClassUnit", + "id" : "acm005249jsd", + "name" : "Builder", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005245jsd", + "extendedDataTypesIds" : [ "acm005272jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005245jsd", "acm005249jsd" ], + "content" : [ "acm005246jsd", "acm005247jsd", "acm005248jsd" ] + }, + "acm005250jsd" : { + "type" : "ControlElement", + "id" : "acm005250jsd", + "name" : "UpdateOptionsWithGoogleId" + }, + "acm005251jsd" : { + "type" : "ControlElement", + "id" : "acm005251jsd", + "name" : "getCourseId" + }, + "acm005252jsd" : { + "type" : "ControlElement", + "id" : "acm005252jsd", + "name" : "getGoogleId" + }, + "acm005253jsd" : { + "type" : "ControlElement", + "id" : "acm005253jsd", + "name" : "toString" + }, + "acm005254jsd" : { + "type" : "ControlElement", + "id" : "acm005254jsd", + "name" : "Builder" + }, + "acm005255jsd" : { + "type" : "ControlElement", + "id" : "acm005255jsd", + "name" : "withEmail" + }, + "acm005256jsd" : { + "type" : "ControlElement", + "id" : "acm005256jsd", + "name" : "build" + }, + "acm005257jsd" : { + "type" : "ClassUnit", + "id" : "acm005257jsd", + "name" : "UpdateOptionsWithGoogleId", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005233jsd", + "extendedDataTypesIds" : [ "acm005263jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005257jsd", "acm005261jsd", "acm005272jsd" ], + "content" : [ "acm005250jsd", "acm005251jsd", "acm005252jsd", "acm005253jsd", "acm005254jsd", "acm005255jsd", "acm005256jsd" ] + }, + "acm005258jsd" : { + "type" : "ControlElement", + "id" : "acm005258jsd", + "name" : "Builder" + }, + "acm005259jsd" : { + "type" : "ControlElement", + "id" : "acm005259jsd", + "name" : "withEmail" + }, + "acm005260jsd" : { + "type" : "ControlElement", + "id" : "acm005260jsd", + "name" : "build" + }, + "acm005261jsd" : { + "type" : "ClassUnit", + "id" : "acm005261jsd", + "name" : "Builder", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005257jsd", + "extendedDataTypesIds" : [ "acm005272jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005257jsd", "acm005261jsd" ], + "content" : [ "acm005258jsd", "acm005259jsd", "acm005260jsd" ] + }, + "acm005262jsd" : { + "type" : "ControlElement", + "id" : "acm005262jsd", + "name" : "toString" + }, + "acm005263jsd" : { + "type" : "ClassUnit", + "id" : "acm005263jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005233jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm004714jsd" ], + "content" : [ "acm005262jsd" ] + }, + "acm005264jsd" : { + "type" : "ControlElement", + "id" : "acm005264jsd", + "name" : "BasicBuilder" + }, + "acm005265jsd" : { + "type" : "ControlElement", + "id" : "acm005265jsd", + "name" : "withName" + }, + "acm005266jsd" : { + "type" : "ControlElement", + "id" : "acm005266jsd", + "name" : "withRole" + }, + "acm005267jsd" : { + "type" : "ControlElement", + "id" : "acm005267jsd", + "name" : "withDisplayedName" + }, + "acm005268jsd" : { + "type" : "ControlElement", + "id" : "acm005268jsd", + "name" : "withPrivileges" + }, + "acm005269jsd" : { + "type" : "ControlElement", + "id" : "acm005269jsd", + "name" : "withIsDisplayedToStudents" + }, + "acm005270jsd" : { + "type" : "ControlElement", + "id" : "acm005270jsd", + "name" : "withIsArchived" + }, + "acm005271jsd" : { + "type" : "ControlElement", + "id" : "acm005271jsd", + "name" : "build" + }, + "acm005272jsd" : { + "type" : "ClassUnit", + "id" : "acm005272jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm005153jsd", + "parentDatatypeId" : "acm005233jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm005263jsd", "acm005272jsd" ], + "content" : [ "acm005264jsd", "acm005265jsd", "acm005266jsd", "acm005267jsd", "acm005268jsd", "acm005269jsd", "acm005270jsd", "acm005271jsd" ] + }, + "acm005273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005273jsd", + "name" : "NotificationAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm005329jsd", "acm005332jsd", "acm005339jsd", "acm005343jsd", "acm005353jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005274jsd" : { + "type" : "CodePackage", + "id" : "acm005274jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005275jsd" ] + }, + "acm005275jsd" : { + "type" : "CodePackage", + "id" : "acm005275jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005276jsd" ] + }, + "acm005276jsd" : { + "type" : "CodePackage", + "id" : "acm005276jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005277jsd" ] + }, + "acm005277jsd" : { + "type" : "CodePackage", + "id" : "acm005277jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005273jsd" ] + }, + "acm005278jsd" : { + "type" : "ControlElement", + "id" : "acm005278jsd", + "name" : "NotificationAttributes" + }, + "acm005279jsd" : { + "type" : "ControlElement", + "id" : "acm005279jsd", + "name" : "valueOf" + }, + "acm005280jsd" : { + "type" : "ControlElement", + "id" : "acm005280jsd", + "name" : "builder" + }, + "acm005281jsd" : { + "type" : "ControlElement", + "id" : "acm005281jsd", + "name" : "getCopy" + }, + "acm005282jsd" : { + "type" : "ControlElement", + "id" : "acm005282jsd", + "name" : "getNotificationId" + }, + "acm005283jsd" : { + "type" : "ControlElement", + "id" : "acm005283jsd", + "name" : "setNotificationId" + }, + "acm005284jsd" : { + "type" : "ControlElement", + "id" : "acm005284jsd", + "name" : "getStartTime" + }, + "acm005285jsd" : { + "type" : "ControlElement", + "id" : "acm005285jsd", + "name" : "setStartTime" + }, + "acm005286jsd" : { + "type" : "ControlElement", + "id" : "acm005286jsd", + "name" : "getEndTime" + }, + "acm005287jsd" : { + "type" : "ControlElement", + "id" : "acm005287jsd", + "name" : "setEndTime" + }, + "acm005288jsd" : { + "type" : "ControlElement", + "id" : "acm005288jsd", + "name" : "getStyle" + }, + "acm005289jsd" : { + "type" : "ControlElement", + "id" : "acm005289jsd", + "name" : "setStyle" + }, + "acm005290jsd" : { + "type" : "ControlElement", + "id" : "acm005290jsd", + "name" : "getTargetUser" + }, + "acm005291jsd" : { + "type" : "ControlElement", + "id" : "acm005291jsd", + "name" : "setTargetUser" + }, + "acm005292jsd" : { + "type" : "ControlElement", + "id" : "acm005292jsd", + "name" : "getTitle" + }, + "acm005293jsd" : { + "type" : "ControlElement", + "id" : "acm005293jsd", + "name" : "setTitle" + }, + "acm005294jsd" : { + "type" : "ControlElement", + "id" : "acm005294jsd", + "name" : "getMessage" + }, + "acm005295jsd" : { + "type" : "ControlElement", + "id" : "acm005295jsd", + "name" : "setMessage" + }, + "acm005296jsd" : { + "type" : "ControlElement", + "id" : "acm005296jsd", + "name" : "isShown" + }, + "acm005297jsd" : { + "type" : "ControlElement", + "id" : "acm005297jsd", + "name" : "setShown" + }, + "acm005298jsd" : { + "type" : "ControlElement", + "id" : "acm005298jsd", + "name" : "getCreatedAt" + }, + "acm005299jsd" : { + "type" : "ControlElement", + "id" : "acm005299jsd", + "name" : "setCreatedAt" + }, + "acm005300jsd" : { + "type" : "ControlElement", + "id" : "acm005300jsd", + "name" : "getUpdatedAt" + }, + "acm005301jsd" : { + "type" : "ControlElement", + "id" : "acm005301jsd", + "name" : "setUpdatedAt" + }, + "acm005302jsd" : { + "type" : "ControlElement", + "id" : "acm005302jsd", + "name" : "sortByStartTime" + }, + "acm005303jsd" : { + "type" : "ControlElement", + "id" : "acm005303jsd", + "name" : "getInvalidityInfo" + }, + "acm005304jsd" : { + "type" : "ControlElement", + "id" : "acm005304jsd", + "name" : "toEntity" + }, + "acm005305jsd" : { + "type" : "ControlElement", + "id" : "acm005305jsd", + "name" : "toString" + }, + "acm005306jsd" : { + "type" : "ControlElement", + "id" : "acm005306jsd", + "name" : "hashCode" + }, + "acm005307jsd" : { + "type" : "ControlElement", + "id" : "acm005307jsd", + "name" : "equals" + }, + "acm005308jsd" : { + "type" : "ControlElement", + "id" : "acm005308jsd", + "name" : "sanitizeForSaving" + }, + "acm005309jsd" : { + "type" : "ControlElement", + "id" : "acm005309jsd", + "name" : "update" + }, + "acm005310jsd" : { + "type" : "ControlElement", + "id" : "acm005310jsd", + "name" : "updateOptionsBuilder" + }, + "acm005311jsd" : { + "type" : "ControlElement", + "id" : "acm005311jsd", + "name" : "updateOptionsBuilder" + }, + "acm005312jsd" : { + "type" : "ControlElement", + "id" : "acm005312jsd", + "name" : "Builder" + }, + "acm005313jsd" : { + "type" : "ControlElement", + "id" : "acm005313jsd", + "name" : "build" + }, + "acm005314jsd" : { + "type" : "ControlElement", + "id" : "acm005314jsd", + "name" : "UpdateOptions" + }, + "acm005315jsd" : { + "type" : "ControlElement", + "id" : "acm005315jsd", + "name" : "getNotificationId" + }, + "acm005316jsd" : { + "type" : "ControlElement", + "id" : "acm005316jsd", + "name" : "toString" + }, + "acm005317jsd" : { + "type" : "ControlElement", + "id" : "acm005317jsd", + "name" : "Builder" + }, + "acm005318jsd" : { + "type" : "ControlElement", + "id" : "acm005318jsd", + "name" : "Builder" + }, + "acm005319jsd" : { + "type" : "ControlElement", + "id" : "acm005319jsd", + "name" : "build" + }, + "acm005320jsd" : { + "type" : "ControlElement", + "id" : "acm005320jsd", + "name" : "BasicBuilder" + }, + "acm005321jsd" : { + "type" : "ControlElement", + "id" : "acm005321jsd", + "name" : "withStartTime" + }, + "acm005322jsd" : { + "type" : "ControlElement", + "id" : "acm005322jsd", + "name" : "withEndTime" + }, + "acm005323jsd" : { + "type" : "ControlElement", + "id" : "acm005323jsd", + "name" : "withStyle" + }, + "acm005324jsd" : { + "type" : "ControlElement", + "id" : "acm005324jsd", + "name" : "withTargetUser" + }, + "acm005325jsd" : { + "type" : "ControlElement", + "id" : "acm005325jsd", + "name" : "withTitle" + }, + "acm005326jsd" : { + "type" : "ControlElement", + "id" : "acm005326jsd", + "name" : "withMessage" + }, + "acm005327jsd" : { + "type" : "ControlElement", + "id" : "acm005327jsd", + "name" : "withShown" + }, + "acm005328jsd" : { + "type" : "ControlElement", + "id" : "acm005328jsd", + "name" : "build" + }, + "acm005329jsd" : { + "type" : "ClassUnit", + "id" : "acm005329jsd", + "name" : "NotificationAttributes", + "compilationUnitId" : "acm005273jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm004714jsd", "acm005329jsd", "acm005332jsd", "acm005339jsd", "acm005343jsd", "acm005353jsd", "acm008077jsd" ], + "content" : [ "acm005278jsd", "acm005279jsd", "acm005280jsd", "acm005281jsd", "acm005282jsd", "acm005283jsd", "acm005284jsd", "acm005285jsd", "acm005286jsd", "acm005287jsd", "acm005288jsd", "acm005289jsd", "acm005290jsd", "acm005291jsd", "acm005292jsd", "acm005293jsd", "acm005294jsd", "acm005295jsd", "acm005296jsd", "acm005297jsd", "acm005298jsd", "acm005299jsd", "acm005300jsd", "acm005301jsd", "acm005302jsd", "acm005303jsd", "acm005304jsd", "acm005305jsd", "acm005306jsd", "acm005307jsd", "acm005308jsd", "acm005309jsd", "acm005310jsd", "acm005311jsd", "acm005312jsd", "acm005313jsd", "acm005314jsd", "acm005315jsd", "acm005316jsd", "acm005317jsd", "acm005318jsd", "acm005319jsd", "acm005320jsd", "acm005321jsd", "acm005322jsd", "acm005323jsd", "acm005324jsd", "acm005325jsd", "acm005326jsd", "acm005327jsd", "acm005328jsd" ] + }, + "acm005330jsd" : { + "type" : "ControlElement", + "id" : "acm005330jsd", + "name" : "Builder" + }, + "acm005331jsd" : { + "type" : "ControlElement", + "id" : "acm005331jsd", + "name" : "build" + }, + "acm005332jsd" : { + "type" : "ClassUnit", + "id" : "acm005332jsd", + "name" : "Builder", + "compilationUnitId" : "acm005273jsd", + "parentDatatypeId" : "acm005329jsd", + "extendedDataTypesIds" : [ "acm005353jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm005339jsd" ], + "content" : [ "acm005330jsd", "acm005331jsd" ] + }, + "acm005333jsd" : { + "type" : "ControlElement", + "id" : "acm005333jsd", + "name" : "UpdateOptions" + }, + "acm005334jsd" : { + "type" : "ControlElement", + "id" : "acm005334jsd", + "name" : "getNotificationId" + }, + "acm005335jsd" : { + "type" : "ControlElement", + "id" : "acm005335jsd", + "name" : "toString" + }, + "acm005336jsd" : { + "type" : "ControlElement", + "id" : "acm005336jsd", + "name" : "Builder" + }, + "acm005337jsd" : { + "type" : "ControlElement", + "id" : "acm005337jsd", + "name" : "Builder" + }, + "acm005338jsd" : { + "type" : "ControlElement", + "id" : "acm005338jsd", + "name" : "build" + }, + "acm005339jsd" : { + "type" : "ClassUnit", + "id" : "acm005339jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm005273jsd", + "parentDatatypeId" : "acm005329jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm004714jsd", "acm005339jsd", "acm005343jsd", "acm005353jsd" ], + "content" : [ "acm005333jsd", "acm005334jsd", "acm005335jsd", "acm005336jsd", "acm005337jsd", "acm005338jsd" ] + }, + "acm005340jsd" : { + "type" : "ControlElement", + "id" : "acm005340jsd", + "name" : "Builder" + }, + "acm005341jsd" : { + "type" : "ControlElement", + "id" : "acm005341jsd", + "name" : "Builder" + }, + "acm005342jsd" : { + "type" : "ControlElement", + "id" : "acm005342jsd", + "name" : "build" + }, + "acm005343jsd" : { + "type" : "ClassUnit", + "id" : "acm005343jsd", + "name" : "Builder", + "compilationUnitId" : "acm005273jsd", + "parentDatatypeId" : "acm005339jsd", + "extendedDataTypesIds" : [ "acm005353jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005339jsd" ], + "content" : [ "acm005340jsd", "acm005341jsd", "acm005342jsd" ] + }, + "acm005344jsd" : { + "type" : "ControlElement", + "id" : "acm005344jsd", + "name" : "BasicBuilder" + }, + "acm005345jsd" : { + "type" : "ControlElement", + "id" : "acm005345jsd", + "name" : "withStartTime" + }, + "acm005346jsd" : { + "type" : "ControlElement", + "id" : "acm005346jsd", + "name" : "withEndTime" + }, + "acm005347jsd" : { + "type" : "ControlElement", + "id" : "acm005347jsd", + "name" : "withStyle" + }, + "acm005348jsd" : { + "type" : "ControlElement", + "id" : "acm005348jsd", + "name" : "withTargetUser" + }, + "acm005349jsd" : { + "type" : "ControlElement", + "id" : "acm005349jsd", + "name" : "withTitle" + }, + "acm005350jsd" : { + "type" : "ControlElement", + "id" : "acm005350jsd", + "name" : "withMessage" + }, + "acm005351jsd" : { + "type" : "ControlElement", + "id" : "acm005351jsd", + "name" : "withShown" + }, + "acm005352jsd" : { + "type" : "ControlElement", + "id" : "acm005352jsd", + "name" : "build" + }, + "acm005353jsd" : { + "type" : "ClassUnit", + "id" : "acm005353jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm005273jsd", + "parentDatatypeId" : "acm005329jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm005339jsd", "acm005353jsd" ], + "content" : [ "acm005344jsd", "acm005345jsd", "acm005346jsd", "acm005347jsd", "acm005348jsd", "acm005349jsd", "acm005350jsd", "acm005351jsd", "acm005352jsd" ] + }, + "acm005354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005354jsd", + "name" : "StudentAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm005412jsd", "acm005415jsd", "acm005423jsd", "acm005427jsd", "acm005435jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005355jsd" : { + "type" : "CodePackage", + "id" : "acm005355jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005356jsd" ] + }, + "acm005356jsd" : { + "type" : "CodePackage", + "id" : "acm005356jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005357jsd" ] + }, + "acm005357jsd" : { + "type" : "CodePackage", + "id" : "acm005357jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005358jsd" ] + }, + "acm005358jsd" : { + "type" : "CodePackage", + "id" : "acm005358jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005354jsd" ] + }, + "acm005359jsd" : { + "type" : "ControlElement", + "id" : "acm005359jsd", + "name" : "StudentAttributes" + }, + "acm005360jsd" : { + "type" : "ControlElement", + "id" : "acm005360jsd", + "name" : "valueOf" + }, + "acm005361jsd" : { + "type" : "ControlElement", + "id" : "acm005361jsd", + "name" : "builder" + }, + "acm005362jsd" : { + "type" : "ControlElement", + "id" : "acm005362jsd", + "name" : "getCopy" + }, + "acm005363jsd" : { + "type" : "ControlElement", + "id" : "acm005363jsd", + "name" : "isRegistered" + }, + "acm005364jsd" : { + "type" : "ControlElement", + "id" : "acm005364jsd", + "name" : "getRegistrationUrl" + }, + "acm005365jsd" : { + "type" : "ControlElement", + "id" : "acm005365jsd", + "name" : "getName" + }, + "acm005366jsd" : { + "type" : "ControlElement", + "id" : "acm005366jsd", + "name" : "setName" + }, + "acm005367jsd" : { + "type" : "ControlElement", + "id" : "acm005367jsd", + "name" : "getEmail" + }, + "acm005368jsd" : { + "type" : "ControlElement", + "id" : "acm005368jsd", + "name" : "setEmail" + }, + "acm005369jsd" : { + "type" : "ControlElement", + "id" : "acm005369jsd", + "name" : "getCourse" + }, + "acm005370jsd" : { + "type" : "ControlElement", + "id" : "acm005370jsd", + "name" : "setCourse" + }, + "acm005371jsd" : { + "type" : "ControlElement", + "id" : "acm005371jsd", + "name" : "getGoogleId" + }, + "acm005372jsd" : { + "type" : "ControlElement", + "id" : "acm005372jsd", + "name" : "setGoogleId" + }, + "acm005373jsd" : { + "type" : "ControlElement", + "id" : "acm005373jsd", + "name" : "getKey" + }, + "acm005374jsd" : { + "type" : "ControlElement", + "id" : "acm005374jsd", + "name" : "setKey" + }, + "acm005375jsd" : { + "type" : "ControlElement", + "id" : "acm005375jsd", + "name" : "getId" + }, + "acm005376jsd" : { + "type" : "ControlElement", + "id" : "acm005376jsd", + "name" : "getSection" + }, + "acm005377jsd" : { + "type" : "ControlElement", + "id" : "acm005377jsd", + "name" : "setSection" + }, + "acm005378jsd" : { + "type" : "ControlElement", + "id" : "acm005378jsd", + "name" : "getTeam" + }, + "acm005379jsd" : { + "type" : "ControlElement", + "id" : "acm005379jsd", + "name" : "setTeam" + }, + "acm005380jsd" : { + "type" : "ControlElement", + "id" : "acm005380jsd", + "name" : "getComments" + }, + "acm005381jsd" : { + "type" : "ControlElement", + "id" : "acm005381jsd", + "name" : "setComments" + }, + "acm005382jsd" : { + "type" : "ControlElement", + "id" : "acm005382jsd", + "name" : "equals" + }, + "acm005383jsd" : { + "type" : "ControlElement", + "id" : "acm005383jsd", + "name" : "getInvalidityInfo" + }, + "acm005384jsd" : { + "type" : "ControlElement", + "id" : "acm005384jsd", + "name" : "sortBySectionName" + }, + "acm005385jsd" : { + "type" : "ControlElement", + "id" : "acm005385jsd", + "name" : "sortByTeamName" + }, + "acm005386jsd" : { + "type" : "ControlElement", + "id" : "acm005386jsd", + "name" : "toEntity" + }, + "acm005387jsd" : { + "type" : "ControlElement", + "id" : "acm005387jsd", + "name" : "hashCode" + }, + "acm005388jsd" : { + "type" : "ControlElement", + "id" : "acm005388jsd", + "name" : "toString" + }, + "acm005389jsd" : { + "type" : "ControlElement", + "id" : "acm005389jsd", + "name" : "sanitizeForSaving" + }, + "acm005390jsd" : { + "type" : "ControlElement", + "id" : "acm005390jsd", + "name" : "getCreatedAt" + }, + "acm005391jsd" : { + "type" : "ControlElement", + "id" : "acm005391jsd", + "name" : "getUpdatedAt" + }, + "acm005392jsd" : { + "type" : "ControlElement", + "id" : "acm005392jsd", + "name" : "setCreatedAt" + }, + "acm005393jsd" : { + "type" : "ControlElement", + "id" : "acm005393jsd", + "name" : "setUpdatedAt" + }, + "acm005394jsd" : { + "type" : "ControlElement", + "id" : "acm005394jsd", + "name" : "update" + }, + "acm005395jsd" : { + "type" : "ControlElement", + "id" : "acm005395jsd", + "name" : "updateOptionsBuilder" + }, + "acm005396jsd" : { + "type" : "ControlElement", + "id" : "acm005396jsd", + "name" : "Builder" + }, + "acm005397jsd" : { + "type" : "ControlElement", + "id" : "acm005397jsd", + "name" : "build" + }, + "acm005398jsd" : { + "type" : "ControlElement", + "id" : "acm005398jsd", + "name" : "UpdateOptions" + }, + "acm005399jsd" : { + "type" : "ControlElement", + "id" : "acm005399jsd", + "name" : "getCourseId" + }, + "acm005400jsd" : { + "type" : "ControlElement", + "id" : "acm005400jsd", + "name" : "getEmail" + }, + "acm005401jsd" : { + "type" : "ControlElement", + "id" : "acm005401jsd", + "name" : "toString" + }, + "acm005402jsd" : { + "type" : "ControlElement", + "id" : "acm005402jsd", + "name" : "Builder" + }, + "acm005403jsd" : { + "type" : "ControlElement", + "id" : "acm005403jsd", + "name" : "withNewEmail" + }, + "acm005404jsd" : { + "type" : "ControlElement", + "id" : "acm005404jsd", + "name" : "build" + }, + "acm005405jsd" : { + "type" : "ControlElement", + "id" : "acm005405jsd", + "name" : "BasicBuilder" + }, + "acm005406jsd" : { + "type" : "ControlElement", + "id" : "acm005406jsd", + "name" : "withName" + }, + "acm005407jsd" : { + "type" : "ControlElement", + "id" : "acm005407jsd", + "name" : "withComment" + }, + "acm005408jsd" : { + "type" : "ControlElement", + "id" : "acm005408jsd", + "name" : "withGoogleId" + }, + "acm005409jsd" : { + "type" : "ControlElement", + "id" : "acm005409jsd", + "name" : "withTeamName" + }, + "acm005410jsd" : { + "type" : "ControlElement", + "id" : "acm005410jsd", + "name" : "withSectionName" + }, + "acm005411jsd" : { + "type" : "ControlElement", + "id" : "acm005411jsd", + "name" : "build" + }, + "acm005412jsd" : { + "type" : "ClassUnit", + "id" : "acm005412jsd", + "name" : "StudentAttributes", + "compilationUnitId" : "acm005354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm005415jsd", "acm005423jsd", "acm005427jsd", "acm005435jsd", "acm007823jsd" ], + "content" : [ "acm005359jsd", "acm005360jsd", "acm005361jsd", "acm005362jsd", "acm005363jsd", "acm005364jsd", "acm005365jsd", "acm005366jsd", "acm005367jsd", "acm005368jsd", "acm005369jsd", "acm005370jsd", "acm005371jsd", "acm005372jsd", "acm005373jsd", "acm005374jsd", "acm005375jsd", "acm005376jsd", "acm005377jsd", "acm005378jsd", "acm005379jsd", "acm005380jsd", "acm005381jsd", "acm005382jsd", "acm005383jsd", "acm005384jsd", "acm005385jsd", "acm005386jsd", "acm005387jsd", "acm005388jsd", "acm005389jsd", "acm005390jsd", "acm005391jsd", "acm005392jsd", "acm005393jsd", "acm005394jsd", "acm005395jsd", "acm005396jsd", "acm005397jsd", "acm005398jsd", "acm005399jsd", "acm005400jsd", "acm005401jsd", "acm005402jsd", "acm005403jsd", "acm005404jsd", "acm005405jsd", "acm005406jsd", "acm005407jsd", "acm005408jsd", "acm005409jsd", "acm005410jsd", "acm005411jsd" ] + }, + "acm005413jsd" : { + "type" : "ControlElement", + "id" : "acm005413jsd", + "name" : "Builder" + }, + "acm005414jsd" : { + "type" : "ControlElement", + "id" : "acm005414jsd", + "name" : "build" + }, + "acm005415jsd" : { + "type" : "ClassUnit", + "id" : "acm005415jsd", + "name" : "Builder", + "compilationUnitId" : "acm005354jsd", + "parentDatatypeId" : "acm005412jsd", + "extendedDataTypesIds" : [ "acm005435jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm005423jsd" ], + "content" : [ "acm005413jsd", "acm005414jsd" ] + }, + "acm005416jsd" : { + "type" : "ControlElement", + "id" : "acm005416jsd", + "name" : "UpdateOptions" + }, + "acm005417jsd" : { + "type" : "ControlElement", + "id" : "acm005417jsd", + "name" : "getCourseId" + }, + "acm005418jsd" : { + "type" : "ControlElement", + "id" : "acm005418jsd", + "name" : "getEmail" + }, + "acm005419jsd" : { + "type" : "ControlElement", + "id" : "acm005419jsd", + "name" : "toString" + }, + "acm005420jsd" : { + "type" : "ControlElement", + "id" : "acm005420jsd", + "name" : "Builder" + }, + "acm005421jsd" : { + "type" : "ControlElement", + "id" : "acm005421jsd", + "name" : "withNewEmail" + }, + "acm005422jsd" : { + "type" : "ControlElement", + "id" : "acm005422jsd", + "name" : "build" + }, + "acm005423jsd" : { + "type" : "ClassUnit", + "id" : "acm005423jsd", + "name" : "UpdateOptions", + "compilationUnitId" : "acm005354jsd", + "parentDatatypeId" : "acm005412jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005423jsd", "acm005427jsd", "acm005435jsd" ], + "content" : [ "acm005416jsd", "acm005417jsd", "acm005418jsd", "acm005419jsd", "acm005420jsd", "acm005421jsd", "acm005422jsd" ] + }, + "acm005424jsd" : { + "type" : "ControlElement", + "id" : "acm005424jsd", + "name" : "Builder" + }, + "acm005425jsd" : { + "type" : "ControlElement", + "id" : "acm005425jsd", + "name" : "withNewEmail" + }, + "acm005426jsd" : { + "type" : "ControlElement", + "id" : "acm005426jsd", + "name" : "build" + }, + "acm005427jsd" : { + "type" : "ClassUnit", + "id" : "acm005427jsd", + "name" : "Builder", + "compilationUnitId" : "acm005354jsd", + "parentDatatypeId" : "acm005423jsd", + "extendedDataTypesIds" : [ "acm005435jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005423jsd", "acm005427jsd" ], + "content" : [ "acm005424jsd", "acm005425jsd", "acm005426jsd" ] + }, + "acm005428jsd" : { + "type" : "ControlElement", + "id" : "acm005428jsd", + "name" : "BasicBuilder" + }, + "acm005429jsd" : { + "type" : "ControlElement", + "id" : "acm005429jsd", + "name" : "withName" + }, + "acm005430jsd" : { + "type" : "ControlElement", + "id" : "acm005430jsd", + "name" : "withComment" + }, + "acm005431jsd" : { + "type" : "ControlElement", + "id" : "acm005431jsd", + "name" : "withGoogleId" + }, + "acm005432jsd" : { + "type" : "ControlElement", + "id" : "acm005432jsd", + "name" : "withTeamName" + }, + "acm005433jsd" : { + "type" : "ControlElement", + "id" : "acm005433jsd", + "name" : "withSectionName" + }, + "acm005434jsd" : { + "type" : "ControlElement", + "id" : "acm005434jsd", + "name" : "build" + }, + "acm005435jsd" : { + "type" : "ClassUnit", + "id" : "acm005435jsd", + "name" : "BasicBuilder", + "compilationUnitId" : "acm005354jsd", + "parentDatatypeId" : "acm005412jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005423jsd", "acm005435jsd" ], + "content" : [ "acm005428jsd", "acm005429jsd", "acm005430jsd", "acm005431jsd", "acm005432jsd", "acm005433jsd", "acm005434jsd" ] + }, + "acm005436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005436jsd", + "name" : "UsageStatisticsAttributes", + "parentId" : "acm004451jsd", + "content" : [ "acm005469jsd", "acm005479jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005437jsd" : { + "type" : "CodePackage", + "id" : "acm005437jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005438jsd" ] + }, + "acm005438jsd" : { + "type" : "CodePackage", + "id" : "acm005438jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005439jsd" ] + }, + "acm005439jsd" : { + "type" : "CodePackage", + "id" : "acm005439jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005440jsd" ] + }, + "acm005440jsd" : { + "type" : "CodePackage", + "id" : "acm005440jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005436jsd" ] + }, + "acm005441jsd" : { + "type" : "ControlElement", + "id" : "acm005441jsd", + "name" : "UsageStatisticsAttributes" + }, + "acm005442jsd" : { + "type" : "ControlElement", + "id" : "acm005442jsd", + "name" : "valueOf" + }, + "acm005443jsd" : { + "type" : "ControlElement", + "id" : "acm005443jsd", + "name" : "getCopy" + }, + "acm005444jsd" : { + "type" : "ControlElement", + "id" : "acm005444jsd", + "name" : "getStartTime" + }, + "acm005445jsd" : { + "type" : "ControlElement", + "id" : "acm005445jsd", + "name" : "getTimePeriod" + }, + "acm005446jsd" : { + "type" : "ControlElement", + "id" : "acm005446jsd", + "name" : "getNumResponses" + }, + "acm005447jsd" : { + "type" : "ControlElement", + "id" : "acm005447jsd", + "name" : "getNumCourses" + }, + "acm005448jsd" : { + "type" : "ControlElement", + "id" : "acm005448jsd", + "name" : "getNumStudents" + }, + "acm005449jsd" : { + "type" : "ControlElement", + "id" : "acm005449jsd", + "name" : "getNumInstructors" + }, + "acm005450jsd" : { + "type" : "ControlElement", + "id" : "acm005450jsd", + "name" : "getNumAccountRequests" + }, + "acm005451jsd" : { + "type" : "ControlElement", + "id" : "acm005451jsd", + "name" : "getNumEmails" + }, + "acm005452jsd" : { + "type" : "ControlElement", + "id" : "acm005452jsd", + "name" : "getNumSubmissions" + }, + "acm005453jsd" : { + "type" : "ControlElement", + "id" : "acm005453jsd", + "name" : "getInvalidityInfo" + }, + "acm005454jsd" : { + "type" : "ControlElement", + "id" : "acm005454jsd", + "name" : "toEntity" + }, + "acm005455jsd" : { + "type" : "ControlElement", + "id" : "acm005455jsd", + "name" : "toString" + }, + "acm005456jsd" : { + "type" : "ControlElement", + "id" : "acm005456jsd", + "name" : "hashCode" + }, + "acm005457jsd" : { + "type" : "ControlElement", + "id" : "acm005457jsd", + "name" : "equals" + }, + "acm005458jsd" : { + "type" : "ControlElement", + "id" : "acm005458jsd", + "name" : "sanitizeForSaving" + }, + "acm005459jsd" : { + "type" : "ControlElement", + "id" : "acm005459jsd", + "name" : "builder" + }, + "acm005460jsd" : { + "type" : "ControlElement", + "id" : "acm005460jsd", + "name" : "Builder" + }, + "acm005461jsd" : { + "type" : "ControlElement", + "id" : "acm005461jsd", + "name" : "withNumResponses" + }, + "acm005462jsd" : { + "type" : "ControlElement", + "id" : "acm005462jsd", + "name" : "withNumCourses" + }, + "acm005463jsd" : { + "type" : "ControlElement", + "id" : "acm005463jsd", + "name" : "withNumStudents" + }, + "acm005464jsd" : { + "type" : "ControlElement", + "id" : "acm005464jsd", + "name" : "withNumInstructors" + }, + "acm005465jsd" : { + "type" : "ControlElement", + "id" : "acm005465jsd", + "name" : "withNumAccountRequests" + }, + "acm005466jsd" : { + "type" : "ControlElement", + "id" : "acm005466jsd", + "name" : "withNumEmails" + }, + "acm005467jsd" : { + "type" : "ControlElement", + "id" : "acm005467jsd", + "name" : "withNumSubmissions" + }, + "acm005468jsd" : { + "type" : "ControlElement", + "id" : "acm005468jsd", + "name" : "build" + }, + "acm005469jsd" : { + "type" : "ClassUnit", + "id" : "acm005469jsd", + "name" : "UsageStatisticsAttributes", + "compilationUnitId" : "acm005436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm004706jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm005479jsd", "acm008095jsd" ], + "content" : [ "acm005441jsd", "acm005442jsd", "acm005443jsd", "acm005444jsd", "acm005445jsd", "acm005446jsd", "acm005447jsd", "acm005448jsd", "acm005449jsd", "acm005450jsd", "acm005451jsd", "acm005452jsd", "acm005453jsd", "acm005454jsd", "acm005455jsd", "acm005456jsd", "acm005457jsd", "acm005458jsd", "acm005459jsd", "acm005460jsd", "acm005461jsd", "acm005462jsd", "acm005463jsd", "acm005464jsd", "acm005465jsd", "acm005466jsd", "acm005467jsd", "acm005468jsd" ] + }, + "acm005470jsd" : { + "type" : "ControlElement", + "id" : "acm005470jsd", + "name" : "Builder" + }, + "acm005471jsd" : { + "type" : "ControlElement", + "id" : "acm005471jsd", + "name" : "withNumResponses" + }, + "acm005472jsd" : { + "type" : "ControlElement", + "id" : "acm005472jsd", + "name" : "withNumCourses" + }, + "acm005473jsd" : { + "type" : "ControlElement", + "id" : "acm005473jsd", + "name" : "withNumStudents" + }, + "acm005474jsd" : { + "type" : "ControlElement", + "id" : "acm005474jsd", + "name" : "withNumInstructors" + }, + "acm005475jsd" : { + "type" : "ControlElement", + "id" : "acm005475jsd", + "name" : "withNumAccountRequests" + }, + "acm005476jsd" : { + "type" : "ControlElement", + "id" : "acm005476jsd", + "name" : "withNumEmails" + }, + "acm005477jsd" : { + "type" : "ControlElement", + "id" : "acm005477jsd", + "name" : "withNumSubmissions" + }, + "acm005478jsd" : { + "type" : "ControlElement", + "id" : "acm005478jsd", + "name" : "build" + }, + "acm005479jsd" : { + "type" : "ClassUnit", + "id" : "acm005479jsd", + "name" : "Builder", + "compilationUnitId" : "acm005436jsd", + "parentDatatypeId" : "acm005469jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm005479jsd" ], + "content" : [ "acm005470jsd", "acm005471jsd", "acm005472jsd", "acm005473jsd", "acm005474jsd", "acm005475jsd", "acm005476jsd", "acm005477jsd", "acm005478jsd" ] + }, + "acm005480jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005480jsd", + "name" : "package-info", + "parentId" : "acm004451jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005481jsd" : { + "type" : "CodePackage", + "id" : "acm005481jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005482jsd" ] + }, + "acm005482jsd" : { + "type" : "CodePackage", + "id" : "acm005482jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005483jsd" ] + }, + "acm005483jsd" : { + "type" : "CodePackage", + "id" : "acm005483jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005484jsd" ] + }, + "acm005484jsd" : { + "type" : "CodePackage", + "id" : "acm005484jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm005480jsd" ] + }, + "acm005485jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005485jsd", + "name" : "DefaultLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005492jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005486jsd" : { + "type" : "CodePackage", + "id" : "acm005486jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005487jsd" ] + }, + "acm005487jsd" : { + "type" : "CodePackage", + "id" : "acm005487jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005488jsd" ] + }, + "acm005488jsd" : { + "type" : "CodePackage", + "id" : "acm005488jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005489jsd" ] + }, + "acm005489jsd" : { + "type" : "CodePackage", + "id" : "acm005489jsd", + "name" : "logs", + "parentId" : "acm004140jsd", + "content" : [ "acm005485jsd", "acm005493jsd", "acm005513jsd", "acm005531jsd", "acm005547jsd", "acm005556jsd", "acm005573jsd", "acm005585jsd", "acm005596jsd", "acm005604jsd", "acm005612jsd", "acm005669jsd", "acm005703jsd", "acm005715jsd", "acm005727jsd" ] + }, + "acm005490jsd" : { + "type" : "ControlElement", + "id" : "acm005490jsd", + "name" : "DefaultLogDetails" + }, + "acm005491jsd" : { + "type" : "ControlElement", + "id" : "acm005491jsd", + "name" : "hideSensitiveInformation" + }, + "acm005492jsd" : { + "type" : "ClassUnit", + "id" : "acm005492jsd", + "name" : "DefaultLogDetails", + "compilationUnitId" : "acm005485jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005490jsd", "acm005491jsd" ] + }, + "acm005493jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005493jsd", + "name" : "EmailSentLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005512jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005494jsd" : { + "type" : "CodePackage", + "id" : "acm005494jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005495jsd" ] + }, + "acm005495jsd" : { + "type" : "CodePackage", + "id" : "acm005495jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005496jsd" ] + }, + "acm005496jsd" : { + "type" : "CodePackage", + "id" : "acm005496jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005497jsd" ] + }, + "acm005497jsd" : { + "type" : "CodePackage", + "id" : "acm005497jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005493jsd" ] + }, + "acm005498jsd" : { + "type" : "ControlElement", + "id" : "acm005498jsd", + "name" : "EmailSentLogDetails" + }, + "acm005499jsd" : { + "type" : "ControlElement", + "id" : "acm005499jsd", + "name" : "getEmailRecipient" + }, + "acm005500jsd" : { + "type" : "ControlElement", + "id" : "acm005500jsd", + "name" : "setEmailRecipient" + }, + "acm005501jsd" : { + "type" : "ControlElement", + "id" : "acm005501jsd", + "name" : "getEmailSubject" + }, + "acm005502jsd" : { + "type" : "ControlElement", + "id" : "acm005502jsd", + "name" : "setEmailSubject" + }, + "acm005503jsd" : { + "type" : "ControlElement", + "id" : "acm005503jsd", + "name" : "getEmailContent" + }, + "acm005504jsd" : { + "type" : "ControlElement", + "id" : "acm005504jsd", + "name" : "setEmailContent" + }, + "acm005505jsd" : { + "type" : "ControlElement", + "id" : "acm005505jsd", + "name" : "getEmailType" + }, + "acm005506jsd" : { + "type" : "ControlElement", + "id" : "acm005506jsd", + "name" : "setEmailType" + }, + "acm005507jsd" : { + "type" : "ControlElement", + "id" : "acm005507jsd", + "name" : "getEmailStatus" + }, + "acm005508jsd" : { + "type" : "ControlElement", + "id" : "acm005508jsd", + "name" : "setEmailStatus" + }, + "acm005509jsd" : { + "type" : "ControlElement", + "id" : "acm005509jsd", + "name" : "getEmailStatusMessage" + }, + "acm005510jsd" : { + "type" : "ControlElement", + "id" : "acm005510jsd", + "name" : "setEmailStatusMessage" + }, + "acm005511jsd" : { + "type" : "ControlElement", + "id" : "acm005511jsd", + "name" : "hideSensitiveInformation" + }, + "acm005512jsd" : { + "type" : "ClassUnit", + "id" : "acm005512jsd", + "name" : "EmailSentLogDetails", + "compilationUnitId" : "acm005493jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006266jsd" ], + "content" : [ "acm005498jsd", "acm005499jsd", "acm005500jsd", "acm005501jsd", "acm005502jsd", "acm005503jsd", "acm005504jsd", "acm005505jsd", "acm005506jsd", "acm005507jsd", "acm005508jsd", "acm005509jsd", "acm005510jsd", "acm005511jsd" ] + }, + "acm005513jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005513jsd", + "name" : "ExceptionLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005530jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005514jsd" : { + "type" : "CodePackage", + "id" : "acm005514jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005515jsd" ] + }, + "acm005515jsd" : { + "type" : "CodePackage", + "id" : "acm005515jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005516jsd" ] + }, + "acm005516jsd" : { + "type" : "CodePackage", + "id" : "acm005516jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005517jsd" ] + }, + "acm005517jsd" : { + "type" : "CodePackage", + "id" : "acm005517jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005513jsd" ] + }, + "acm005518jsd" : { + "type" : "ControlElement", + "id" : "acm005518jsd", + "name" : "ExceptionLogDetails" + }, + "acm005519jsd" : { + "type" : "ControlElement", + "id" : "acm005519jsd", + "name" : "getExceptionClass" + }, + "acm005520jsd" : { + "type" : "ControlElement", + "id" : "acm005520jsd", + "name" : "setExceptionClass" + }, + "acm005521jsd" : { + "type" : "ControlElement", + "id" : "acm005521jsd", + "name" : "getExceptionClasses" + }, + "acm005522jsd" : { + "type" : "ControlElement", + "id" : "acm005522jsd", + "name" : "setExceptionClasses" + }, + "acm005523jsd" : { + "type" : "ControlElement", + "id" : "acm005523jsd", + "name" : "getExceptionStackTraces" + }, + "acm005524jsd" : { + "type" : "ControlElement", + "id" : "acm005524jsd", + "name" : "setExceptionStackTraces" + }, + "acm005525jsd" : { + "type" : "ControlElement", + "id" : "acm005525jsd", + "name" : "getExceptionMessages" + }, + "acm005526jsd" : { + "type" : "ControlElement", + "id" : "acm005526jsd", + "name" : "setExceptionMessages" + }, + "acm005527jsd" : { + "type" : "ControlElement", + "id" : "acm005527jsd", + "name" : "getLoggerSourceLocation" + }, + "acm005528jsd" : { + "type" : "ControlElement", + "id" : "acm005528jsd", + "name" : "setLoggerSourceLocation" + }, + "acm005529jsd" : { + "type" : "ControlElement", + "id" : "acm005529jsd", + "name" : "hideSensitiveInformation" + }, + "acm005530jsd" : { + "type" : "ClassUnit", + "id" : "acm005530jsd", + "name" : "ExceptionLogDetails", + "compilationUnitId" : "acm005513jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005726jsd" ], + "content" : [ "acm005518jsd", "acm005519jsd", "acm005520jsd", "acm005521jsd", "acm005522jsd", "acm005523jsd", "acm005524jsd", "acm005525jsd", "acm005526jsd", "acm005527jsd", "acm005528jsd", "acm005529jsd" ] + }, + "acm005531jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005531jsd", + "name" : "FeedbackSessionAuditLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005546jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005532jsd" : { + "type" : "CodePackage", + "id" : "acm005532jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005533jsd" ] + }, + "acm005533jsd" : { + "type" : "CodePackage", + "id" : "acm005533jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005534jsd" ] + }, + "acm005534jsd" : { + "type" : "CodePackage", + "id" : "acm005534jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005535jsd" ] + }, + "acm005535jsd" : { + "type" : "CodePackage", + "id" : "acm005535jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005531jsd" ] + }, + "acm005536jsd" : { + "type" : "ControlElement", + "id" : "acm005536jsd", + "name" : "FeedbackSessionAuditLogDetails" + }, + "acm005537jsd" : { + "type" : "ControlElement", + "id" : "acm005537jsd", + "name" : "getCourseId" + }, + "acm005538jsd" : { + "type" : "ControlElement", + "id" : "acm005538jsd", + "name" : "setCourseId" + }, + "acm005539jsd" : { + "type" : "ControlElement", + "id" : "acm005539jsd", + "name" : "getFeedbackSessionName" + }, + "acm005540jsd" : { + "type" : "ControlElement", + "id" : "acm005540jsd", + "name" : "setFeedbackSessionName" + }, + "acm005541jsd" : { + "type" : "ControlElement", + "id" : "acm005541jsd", + "name" : "getStudentEmail" + }, + "acm005542jsd" : { + "type" : "ControlElement", + "id" : "acm005542jsd", + "name" : "setStudentEmail" + }, + "acm005543jsd" : { + "type" : "ControlElement", + "id" : "acm005543jsd", + "name" : "getAccessType" + }, + "acm005544jsd" : { + "type" : "ControlElement", + "id" : "acm005544jsd", + "name" : "setAccessType" + }, + "acm005545jsd" : { + "type" : "ControlElement", + "id" : "acm005545jsd", + "name" : "hideSensitiveInformation" + }, + "acm005546jsd" : { + "type" : "ClassUnit", + "id" : "acm005546jsd", + "name" : "FeedbackSessionAuditLogDetails", + "compilationUnitId" : "acm005531jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005536jsd", "acm005537jsd", "acm005538jsd", "acm005539jsd", "acm005540jsd", "acm005541jsd", "acm005542jsd", "acm005543jsd", "acm005544jsd", "acm005545jsd" ] + }, + "acm005547jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005547jsd", + "name" : "FeedbackSessionLogType", + "parentId" : "acm005489jsd", + "content" : [ "acm005555jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005548jsd" : { + "type" : "CodePackage", + "id" : "acm005548jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005549jsd" ] + }, + "acm005549jsd" : { + "type" : "CodePackage", + "id" : "acm005549jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005550jsd" ] + }, + "acm005550jsd" : { + "type" : "CodePackage", + "id" : "acm005550jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005551jsd" ] + }, + "acm005551jsd" : { + "type" : "CodePackage", + "id" : "acm005551jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005547jsd" ] + }, + "acm005552jsd" : { + "type" : "ControlElement", + "id" : "acm005552jsd", + "name" : "FeedbackSessionLogType" + }, + "acm005553jsd" : { + "type" : "ControlElement", + "id" : "acm005553jsd", + "name" : "getLabel" + }, + "acm005554jsd" : { + "type" : "ControlElement", + "id" : "acm005554jsd", + "name" : "valueOfLabel" + }, + "acm005555jsd" : { + "type" : "ClassUnit", + "id" : "acm005555jsd", + "name" : "FeedbackSessionLogType", + "compilationUnitId" : "acm005547jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005555jsd" ], + "content" : [ "acm005552jsd", "acm005553jsd", "acm005554jsd" ] + }, + "acm005556jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005556jsd", + "name" : "GeneralLogEntry", + "parentId" : "acm005489jsd", + "content" : [ "acm005572jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005557jsd" : { + "type" : "CodePackage", + "id" : "acm005557jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005558jsd" ] + }, + "acm005558jsd" : { + "type" : "CodePackage", + "id" : "acm005558jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005559jsd" ] + }, + "acm005559jsd" : { + "type" : "CodePackage", + "id" : "acm005559jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005560jsd" ] + }, + "acm005560jsd" : { + "type" : "CodePackage", + "id" : "acm005560jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005556jsd" ] + }, + "acm005561jsd" : { + "type" : "ControlElement", + "id" : "acm005561jsd", + "name" : "GeneralLogEntry" + }, + "acm005562jsd" : { + "type" : "ControlElement", + "id" : "acm005562jsd", + "name" : "setMessage" + }, + "acm005563jsd" : { + "type" : "ControlElement", + "id" : "acm005563jsd", + "name" : "setDetails" + }, + "acm005564jsd" : { + "type" : "ControlElement", + "id" : "acm005564jsd", + "name" : "getSeverity" + }, + "acm005565jsd" : { + "type" : "ControlElement", + "id" : "acm005565jsd", + "name" : "getTrace" + }, + "acm005566jsd" : { + "type" : "ControlElement", + "id" : "acm005566jsd", + "name" : "getInsertId" + }, + "acm005567jsd" : { + "type" : "ControlElement", + "id" : "acm005567jsd", + "name" : "getResourceIdentifier" + }, + "acm005568jsd" : { + "type" : "ControlElement", + "id" : "acm005568jsd", + "name" : "getSourceLocation" + }, + "acm005569jsd" : { + "type" : "ControlElement", + "id" : "acm005569jsd", + "name" : "getTimestamp" + }, + "acm005570jsd" : { + "type" : "ControlElement", + "id" : "acm005570jsd", + "name" : "getMessage" + }, + "acm005571jsd" : { + "type" : "ControlElement", + "id" : "acm005571jsd", + "name" : "getDetails" + }, + "acm005572jsd" : { + "type" : "ClassUnit", + "id" : "acm005572jsd", + "name" : "GeneralLogEntry", + "compilationUnitId" : "acm005556jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005595jsd", "acm005611jsd", "acm005726jsd" ], + "content" : [ "acm005561jsd", "acm005562jsd", "acm005563jsd", "acm005564jsd", "acm005565jsd", "acm005566jsd", "acm005567jsd", "acm005568jsd", "acm005569jsd", "acm005570jsd", "acm005571jsd" ] + }, + "acm005573jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005573jsd", + "name" : "InstanceLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005584jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005574jsd" : { + "type" : "CodePackage", + "id" : "acm005574jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005575jsd" ] + }, + "acm005575jsd" : { + "type" : "CodePackage", + "id" : "acm005575jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005576jsd" ] + }, + "acm005576jsd" : { + "type" : "CodePackage", + "id" : "acm005576jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005577jsd" ] + }, + "acm005577jsd" : { + "type" : "CodePackage", + "id" : "acm005577jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005573jsd" ] + }, + "acm005578jsd" : { + "type" : "ControlElement", + "id" : "acm005578jsd", + "name" : "InstanceLogDetails" + }, + "acm005579jsd" : { + "type" : "ControlElement", + "id" : "acm005579jsd", + "name" : "getInstanceId" + }, + "acm005580jsd" : { + "type" : "ControlElement", + "id" : "acm005580jsd", + "name" : "setInstanceId" + }, + "acm005581jsd" : { + "type" : "ControlElement", + "id" : "acm005581jsd", + "name" : "getInstanceEvent" + }, + "acm005582jsd" : { + "type" : "ControlElement", + "id" : "acm005582jsd", + "name" : "setInstanceEvent" + }, + "acm005583jsd" : { + "type" : "ControlElement", + "id" : "acm005583jsd", + "name" : "hideSensitiveInformation" + }, + "acm005584jsd" : { + "type" : "ClassUnit", + "id" : "acm005584jsd", + "name" : "InstanceLogDetails", + "compilationUnitId" : "acm005573jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005578jsd", "acm005579jsd", "acm005580jsd", "acm005581jsd", "acm005582jsd", "acm005583jsd" ] + }, + "acm005585jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005585jsd", + "name" : "LogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005595jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005586jsd" : { + "type" : "CodePackage", + "id" : "acm005586jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005587jsd" ] + }, + "acm005587jsd" : { + "type" : "CodePackage", + "id" : "acm005587jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005588jsd" ] + }, + "acm005588jsd" : { + "type" : "CodePackage", + "id" : "acm005588jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005589jsd" ] + }, + "acm005589jsd" : { + "type" : "CodePackage", + "id" : "acm005589jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005585jsd" ] + }, + "acm005590jsd" : { + "type" : "ControlElement", + "id" : "acm005590jsd", + "name" : "LogDetails" + }, + "acm005591jsd" : { + "type" : "ControlElement", + "id" : "acm005591jsd", + "name" : "getEvent" + }, + "acm005592jsd" : { + "type" : "ControlElement", + "id" : "acm005592jsd", + "name" : "getMessage" + }, + "acm005593jsd" : { + "type" : "ControlElement", + "id" : "acm005593jsd", + "name" : "setMessage" + }, + "acm005594jsd" : { + "type" : "ControlElement", + "id" : "acm005594jsd", + "name" : "hideSensitiveInformation" + }, + "acm005595jsd" : { + "type" : "ClassUnit", + "id" : "acm005595jsd", + "name" : "LogDetails", + "compilationUnitId" : "acm005585jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005603jsd" ], + "content" : [ "acm005590jsd", "acm005591jsd", "acm005592jsd", "acm005593jsd", "acm005594jsd" ] + }, + "acm005596jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005596jsd", + "name" : "LogEvent", + "parentId" : "acm005489jsd", + "content" : [ "acm005603jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005597jsd" : { + "type" : "CodePackage", + "id" : "acm005597jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005598jsd" ] + }, + "acm005598jsd" : { + "type" : "CodePackage", + "id" : "acm005598jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005599jsd" ] + }, + "acm005599jsd" : { + "type" : "CodePackage", + "id" : "acm005599jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005600jsd" ] + }, + "acm005600jsd" : { + "type" : "CodePackage", + "id" : "acm005600jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005596jsd" ] + }, + "acm005601jsd" : { + "type" : "ControlElement", + "id" : "acm005601jsd", + "name" : "LogEvent" + }, + "acm005602jsd" : { + "type" : "ControlElement", + "id" : "acm005602jsd", + "name" : "getDetailsClass" + }, + "acm005603jsd" : { + "type" : "ClassUnit", + "id" : "acm005603jsd", + "name" : "LogEvent", + "compilationUnitId" : "acm005596jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005595jsd" ], + "content" : [ "acm005601jsd", "acm005602jsd" ] + }, + "acm005604jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005604jsd", + "name" : "LogSeverity", + "parentId" : "acm005489jsd", + "content" : [ "acm005611jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005605jsd" : { + "type" : "CodePackage", + "id" : "acm005605jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005606jsd" ] + }, + "acm005606jsd" : { + "type" : "CodePackage", + "id" : "acm005606jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005607jsd" ] + }, + "acm005607jsd" : { + "type" : "CodePackage", + "id" : "acm005607jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005608jsd" ] + }, + "acm005608jsd" : { + "type" : "CodePackage", + "id" : "acm005608jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005604jsd" ] + }, + "acm005609jsd" : { + "type" : "ControlElement", + "id" : "acm005609jsd", + "name" : "LogSeverity" + }, + "acm005610jsd" : { + "type" : "ControlElement", + "id" : "acm005610jsd", + "name" : "getSeverityLevel" + }, + "acm005611jsd" : { + "type" : "ClassUnit", + "id" : "acm005611jsd", + "name" : "LogSeverity", + "compilationUnitId" : "acm005604jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005609jsd", "acm005610jsd" ] + }, + "acm005612jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005612jsd", + "name" : "QueryLogsParams", + "parentId" : "acm005489jsd", + "content" : [ "acm005651jsd", "acm005668jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005613jsd" : { + "type" : "CodePackage", + "id" : "acm005613jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005614jsd" ] + }, + "acm005614jsd" : { + "type" : "CodePackage", + "id" : "acm005614jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005615jsd" ] + }, + "acm005615jsd" : { + "type" : "CodePackage", + "id" : "acm005615jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005616jsd" ] + }, + "acm005616jsd" : { + "type" : "CodePackage", + "id" : "acm005616jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005612jsd" ] + }, + "acm005617jsd" : { + "type" : "ControlElement", + "id" : "acm005617jsd", + "name" : "QueryLogsParams" + }, + "acm005618jsd" : { + "type" : "ControlElement", + "id" : "acm005618jsd", + "name" : "builder" + }, + "acm005619jsd" : { + "type" : "ControlElement", + "id" : "acm005619jsd", + "name" : "getSeverity" + }, + "acm005620jsd" : { + "type" : "ControlElement", + "id" : "acm005620jsd", + "name" : "getMinSeverity" + }, + "acm005621jsd" : { + "type" : "ControlElement", + "id" : "acm005621jsd", + "name" : "getStartTime" + }, + "acm005622jsd" : { + "type" : "ControlElement", + "id" : "acm005622jsd", + "name" : "getEndTime" + }, + "acm005623jsd" : { + "type" : "ControlElement", + "id" : "acm005623jsd", + "name" : "getTraceId" + }, + "acm005624jsd" : { + "type" : "ControlElement", + "id" : "acm005624jsd", + "name" : "getActionClass" + }, + "acm005625jsd" : { + "type" : "ControlElement", + "id" : "acm005625jsd", + "name" : "getUserInfoParams" + }, + "acm005626jsd" : { + "type" : "ControlElement", + "id" : "acm005626jsd", + "name" : "getLogEvent" + }, + "acm005627jsd" : { + "type" : "ControlElement", + "id" : "acm005627jsd", + "name" : "getSourceLocation" + }, + "acm005628jsd" : { + "type" : "ControlElement", + "id" : "acm005628jsd", + "name" : "getExceptionClass" + }, + "acm005629jsd" : { + "type" : "ControlElement", + "id" : "acm005629jsd", + "name" : "getLatency" + }, + "acm005630jsd" : { + "type" : "ControlElement", + "id" : "acm005630jsd", + "name" : "getStatus" + }, + "acm005631jsd" : { + "type" : "ControlElement", + "id" : "acm005631jsd", + "name" : "getVersion" + }, + "acm005632jsd" : { + "type" : "ControlElement", + "id" : "acm005632jsd", + "name" : "getExtraFilters" + }, + "acm005633jsd" : { + "type" : "ControlElement", + "id" : "acm005633jsd", + "name" : "getOrder" + }, + "acm005634jsd" : { + "type" : "ControlElement", + "id" : "acm005634jsd", + "name" : "getPageSize" + }, + "acm005635jsd" : { + "type" : "ControlElement", + "id" : "acm005635jsd", + "name" : "Builder" + }, + "acm005636jsd" : { + "type" : "ControlElement", + "id" : "acm005636jsd", + "name" : "withSeverityLevel" + }, + "acm005637jsd" : { + "type" : "ControlElement", + "id" : "acm005637jsd", + "name" : "withMinSeverity" + }, + "acm005638jsd" : { + "type" : "ControlElement", + "id" : "acm005638jsd", + "name" : "withTraceId" + }, + "acm005639jsd" : { + "type" : "ControlElement", + "id" : "acm005639jsd", + "name" : "withActionClass" + }, + "acm005640jsd" : { + "type" : "ControlElement", + "id" : "acm005640jsd", + "name" : "withUserInfo" + }, + "acm005641jsd" : { + "type" : "ControlElement", + "id" : "acm005641jsd", + "name" : "withLogEvent" + }, + "acm005642jsd" : { + "type" : "ControlElement", + "id" : "acm005642jsd", + "name" : "withSourceLocation" + }, + "acm005643jsd" : { + "type" : "ControlElement", + "id" : "acm005643jsd", + "name" : "withExceptionClass" + }, + "acm005644jsd" : { + "type" : "ControlElement", + "id" : "acm005644jsd", + "name" : "withOrder" + }, + "acm005645jsd" : { + "type" : "ControlElement", + "id" : "acm005645jsd", + "name" : "withLatency" + }, + "acm005646jsd" : { + "type" : "ControlElement", + "id" : "acm005646jsd", + "name" : "withStatus" + }, + "acm005647jsd" : { + "type" : "ControlElement", + "id" : "acm005647jsd", + "name" : "withVersion" + }, + "acm005648jsd" : { + "type" : "ControlElement", + "id" : "acm005648jsd", + "name" : "withExtraFilters" + }, + "acm005649jsd" : { + "type" : "ControlElement", + "id" : "acm005649jsd", + "name" : "withPageSize" + }, + "acm005650jsd" : { + "type" : "ControlElement", + "id" : "acm005650jsd", + "name" : "build" + }, + "acm005651jsd" : { + "type" : "ClassUnit", + "id" : "acm005651jsd", + "name" : "QueryLogsParams", + "compilationUnitId" : "acm005612jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005611jsd", "acm005651jsd", "acm005668jsd", "acm005714jsd", "acm005726jsd" ], + "content" : [ "acm005617jsd", "acm005618jsd", "acm005619jsd", "acm005620jsd", "acm005621jsd", "acm005622jsd", "acm005623jsd", "acm005624jsd", "acm005625jsd", "acm005626jsd", "acm005627jsd", "acm005628jsd", "acm005629jsd", "acm005630jsd", "acm005631jsd", "acm005632jsd", "acm005633jsd", "acm005634jsd", "acm005635jsd", "acm005636jsd", "acm005637jsd", "acm005638jsd", "acm005639jsd", "acm005640jsd", "acm005641jsd", "acm005642jsd", "acm005643jsd", "acm005644jsd", "acm005645jsd", "acm005646jsd", "acm005647jsd", "acm005648jsd", "acm005649jsd", "acm005650jsd" ] + }, + "acm005652jsd" : { + "type" : "ControlElement", + "id" : "acm005652jsd", + "name" : "Builder" + }, + "acm005653jsd" : { + "type" : "ControlElement", + "id" : "acm005653jsd", + "name" : "withSeverityLevel" + }, + "acm005654jsd" : { + "type" : "ControlElement", + "id" : "acm005654jsd", + "name" : "withMinSeverity" + }, + "acm005655jsd" : { + "type" : "ControlElement", + "id" : "acm005655jsd", + "name" : "withTraceId" + }, + "acm005656jsd" : { + "type" : "ControlElement", + "id" : "acm005656jsd", + "name" : "withActionClass" + }, + "acm005657jsd" : { + "type" : "ControlElement", + "id" : "acm005657jsd", + "name" : "withUserInfo" + }, + "acm005658jsd" : { + "type" : "ControlElement", + "id" : "acm005658jsd", + "name" : "withLogEvent" + }, + "acm005659jsd" : { + "type" : "ControlElement", + "id" : "acm005659jsd", + "name" : "withSourceLocation" + }, + "acm005660jsd" : { + "type" : "ControlElement", + "id" : "acm005660jsd", + "name" : "withExceptionClass" + }, + "acm005661jsd" : { + "type" : "ControlElement", + "id" : "acm005661jsd", + "name" : "withOrder" + }, + "acm005662jsd" : { + "type" : "ControlElement", + "id" : "acm005662jsd", + "name" : "withLatency" + }, + "acm005663jsd" : { + "type" : "ControlElement", + "id" : "acm005663jsd", + "name" : "withStatus" + }, + "acm005664jsd" : { + "type" : "ControlElement", + "id" : "acm005664jsd", + "name" : "withVersion" + }, + "acm005665jsd" : { + "type" : "ControlElement", + "id" : "acm005665jsd", + "name" : "withExtraFilters" + }, + "acm005666jsd" : { + "type" : "ControlElement", + "id" : "acm005666jsd", + "name" : "withPageSize" + }, + "acm005667jsd" : { + "type" : "ControlElement", + "id" : "acm005667jsd", + "name" : "build" + }, + "acm005668jsd" : { + "type" : "ClassUnit", + "id" : "acm005668jsd", + "name" : "Builder", + "compilationUnitId" : "acm005612jsd", + "parentDatatypeId" : "acm005651jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005611jsd", "acm005651jsd", "acm005668jsd", "acm005714jsd", "acm005726jsd" ], + "content" : [ "acm005652jsd", "acm005653jsd", "acm005654jsd", "acm005655jsd", "acm005656jsd", "acm005657jsd", "acm005658jsd", "acm005659jsd", "acm005660jsd", "acm005661jsd", "acm005662jsd", "acm005663jsd", "acm005664jsd", "acm005665jsd", "acm005666jsd", "acm005667jsd" ] + }, + "acm005669jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005669jsd", + "name" : "RequestLogDetails", + "parentId" : "acm005489jsd", + "content" : [ "acm005702jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005670jsd" : { + "type" : "CodePackage", + "id" : "acm005670jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005671jsd" ] + }, + "acm005671jsd" : { + "type" : "CodePackage", + "id" : "acm005671jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005672jsd" ] + }, + "acm005672jsd" : { + "type" : "CodePackage", + "id" : "acm005672jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005673jsd" ] + }, + "acm005673jsd" : { + "type" : "CodePackage", + "id" : "acm005673jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005669jsd" ] + }, + "acm005674jsd" : { + "type" : "ControlElement", + "id" : "acm005674jsd", + "name" : "RequestLogDetails" + }, + "acm005675jsd" : { + "type" : "ControlElement", + "id" : "acm005675jsd", + "name" : "getResponseStatus" + }, + "acm005676jsd" : { + "type" : "ControlElement", + "id" : "acm005676jsd", + "name" : "setResponseStatus" + }, + "acm005677jsd" : { + "type" : "ControlElement", + "id" : "acm005677jsd", + "name" : "getResponseTime" + }, + "acm005678jsd" : { + "type" : "ControlElement", + "id" : "acm005678jsd", + "name" : "setResponseTime" + }, + "acm005679jsd" : { + "type" : "ControlElement", + "id" : "acm005679jsd", + "name" : "getRequestMethod" + }, + "acm005680jsd" : { + "type" : "ControlElement", + "id" : "acm005680jsd", + "name" : "setRequestMethod" + }, + "acm005681jsd" : { + "type" : "ControlElement", + "id" : "acm005681jsd", + "name" : "getRequestUrl" + }, + "acm005682jsd" : { + "type" : "ControlElement", + "id" : "acm005682jsd", + "name" : "setRequestUrl" + }, + "acm005683jsd" : { + "type" : "ControlElement", + "id" : "acm005683jsd", + "name" : "getInstanceId" + }, + "acm005684jsd" : { + "type" : "ControlElement", + "id" : "acm005684jsd", + "name" : "setInstanceId" + }, + "acm005685jsd" : { + "type" : "ControlElement", + "id" : "acm005685jsd", + "name" : "getWebVersion" + }, + "acm005686jsd" : { + "type" : "ControlElement", + "id" : "acm005686jsd", + "name" : "setWebVersion" + }, + "acm005687jsd" : { + "type" : "ControlElement", + "id" : "acm005687jsd", + "name" : "getReferrer" + }, + "acm005688jsd" : { + "type" : "ControlElement", + "id" : "acm005688jsd", + "name" : "setReferrer" + }, + "acm005689jsd" : { + "type" : "ControlElement", + "id" : "acm005689jsd", + "name" : "getUserAgent" + }, + "acm005690jsd" : { + "type" : "ControlElement", + "id" : "acm005690jsd", + "name" : "setUserAgent" + }, + "acm005691jsd" : { + "type" : "ControlElement", + "id" : "acm005691jsd", + "name" : "getRequestParams" + }, + "acm005692jsd" : { + "type" : "ControlElement", + "id" : "acm005692jsd", + "name" : "setRequestParams" + }, + "acm005693jsd" : { + "type" : "ControlElement", + "id" : "acm005693jsd", + "name" : "getRequestHeaders" + }, + "acm005694jsd" : { + "type" : "ControlElement", + "id" : "acm005694jsd", + "name" : "setRequestHeaders" + }, + "acm005695jsd" : { + "type" : "ControlElement", + "id" : "acm005695jsd", + "name" : "getRequestBody" + }, + "acm005696jsd" : { + "type" : "ControlElement", + "id" : "acm005696jsd", + "name" : "setRequestBody" + }, + "acm005697jsd" : { + "type" : "ControlElement", + "id" : "acm005697jsd", + "name" : "getActionClass" + }, + "acm005698jsd" : { + "type" : "ControlElement", + "id" : "acm005698jsd", + "name" : "setActionClass" + }, + "acm005699jsd" : { + "type" : "ControlElement", + "id" : "acm005699jsd", + "name" : "getUserInfo" + }, + "acm005700jsd" : { + "type" : "ControlElement", + "id" : "acm005700jsd", + "name" : "setUserInfo" + }, + "acm005701jsd" : { + "type" : "ControlElement", + "id" : "acm005701jsd", + "name" : "hideSensitiveInformation" + }, + "acm005702jsd" : { + "type" : "ClassUnit", + "id" : "acm005702jsd", + "name" : "RequestLogDetails", + "compilationUnitId" : "acm005669jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005595jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005714jsd" ], + "content" : [ "acm005674jsd", "acm005675jsd", "acm005676jsd", "acm005677jsd", "acm005678jsd", "acm005679jsd", "acm005680jsd", "acm005681jsd", "acm005682jsd", "acm005683jsd", "acm005684jsd", "acm005685jsd", "acm005686jsd", "acm005687jsd", "acm005688jsd", "acm005689jsd", "acm005690jsd", "acm005691jsd", "acm005692jsd", "acm005693jsd", "acm005694jsd", "acm005695jsd", "acm005696jsd", "acm005697jsd", "acm005698jsd", "acm005699jsd", "acm005700jsd", "acm005701jsd" ] + }, + "acm005703jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005703jsd", + "name" : "RequestLogUser", + "parentId" : "acm005489jsd", + "content" : [ "acm005714jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005704jsd" : { + "type" : "CodePackage", + "id" : "acm005704jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005705jsd" ] + }, + "acm005705jsd" : { + "type" : "CodePackage", + "id" : "acm005705jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005706jsd" ] + }, + "acm005706jsd" : { + "type" : "CodePackage", + "id" : "acm005706jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005707jsd" ] + }, + "acm005707jsd" : { + "type" : "CodePackage", + "id" : "acm005707jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005703jsd" ] + }, + "acm005708jsd" : { + "type" : "ControlElement", + "id" : "acm005708jsd", + "name" : "getRegkey" + }, + "acm005709jsd" : { + "type" : "ControlElement", + "id" : "acm005709jsd", + "name" : "setRegkey" + }, + "acm005710jsd" : { + "type" : "ControlElement", + "id" : "acm005710jsd", + "name" : "getEmail" + }, + "acm005711jsd" : { + "type" : "ControlElement", + "id" : "acm005711jsd", + "name" : "setEmail" + }, + "acm005712jsd" : { + "type" : "ControlElement", + "id" : "acm005712jsd", + "name" : "getGoogleId" + }, + "acm005713jsd" : { + "type" : "ControlElement", + "id" : "acm005713jsd", + "name" : "setGoogleId" + }, + "acm005714jsd" : { + "type" : "ClassUnit", + "id" : "acm005714jsd", + "name" : "RequestLogUser", + "compilationUnitId" : "acm005703jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005708jsd", "acm005709jsd", "acm005710jsd", "acm005711jsd", "acm005712jsd", "acm005713jsd" ] + }, + "acm005715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005715jsd", + "name" : "SourceLocation", + "parentId" : "acm005489jsd", + "content" : [ "acm005726jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005716jsd" : { + "type" : "CodePackage", + "id" : "acm005716jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005717jsd" ] + }, + "acm005717jsd" : { + "type" : "CodePackage", + "id" : "acm005717jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005718jsd" ] + }, + "acm005718jsd" : { + "type" : "CodePackage", + "id" : "acm005718jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005719jsd" ] + }, + "acm005719jsd" : { + "type" : "CodePackage", + "id" : "acm005719jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005715jsd" ] + }, + "acm005720jsd" : { + "type" : "ControlElement", + "id" : "acm005720jsd", + "name" : "SourceLocation" + }, + "acm005721jsd" : { + "type" : "ControlElement", + "id" : "acm005721jsd", + "name" : "getFile" + }, + "acm005722jsd" : { + "type" : "ControlElement", + "id" : "acm005722jsd", + "name" : "getLine" + }, + "acm005723jsd" : { + "type" : "ControlElement", + "id" : "acm005723jsd", + "name" : "getFunction" + }, + "acm005724jsd" : { + "type" : "ControlElement", + "id" : "acm005724jsd", + "name" : "equals" + }, + "acm005725jsd" : { + "type" : "ControlElement", + "id" : "acm005725jsd", + "name" : "hashCode" + }, + "acm005726jsd" : { + "type" : "ClassUnit", + "id" : "acm005726jsd", + "name" : "SourceLocation", + "compilationUnitId" : "acm005715jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005726jsd" ], + "content" : [ "acm005720jsd", "acm005721jsd", "acm005722jsd", "acm005723jsd", "acm005724jsd", "acm005725jsd" ] + }, + "acm005727jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005727jsd", + "name" : "package-info", + "parentId" : "acm005489jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "logs" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005728jsd" : { + "type" : "CodePackage", + "id" : "acm005728jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005729jsd" ] + }, + "acm005729jsd" : { + "type" : "CodePackage", + "id" : "acm005729jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005730jsd" ] + }, + "acm005730jsd" : { + "type" : "CodePackage", + "id" : "acm005730jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005731jsd" ] + }, + "acm005731jsd" : { + "type" : "CodePackage", + "id" : "acm005731jsd", + "name" : "logs", + "parentId" : null, + "content" : [ "acm005727jsd" ] + }, + "acm005732jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005732jsd", + "name" : "package-info", + "parentId" : "acm004140jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005733jsd" : { + "type" : "CodePackage", + "id" : "acm005733jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005734jsd" ] + }, + "acm005734jsd" : { + "type" : "CodePackage", + "id" : "acm005734jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005735jsd" ] + }, + "acm005735jsd" : { + "type" : "CodePackage", + "id" : "acm005735jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005732jsd" ] + }, + "acm005736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005736jsd", + "name" : "FeedbackConstantSumDistributePointsType", + "parentId" : "acm005740jsd", + "content" : [ "acm005743jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005737jsd" : { + "type" : "CodePackage", + "id" : "acm005737jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005738jsd" ] + }, + "acm005738jsd" : { + "type" : "CodePackage", + "id" : "acm005738jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005739jsd" ] + }, + "acm005739jsd" : { + "type" : "CodePackage", + "id" : "acm005739jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005740jsd" ] + }, + "acm005740jsd" : { + "type" : "CodePackage", + "id" : "acm005740jsd", + "name" : "questions", + "parentId" : "acm004140jsd", + "content" : [ "acm005736jsd", "acm005744jsd", "acm005779jsd", "acm005789jsd", "acm005829jsd", "acm005839jsd", "acm005867jsd", "acm005881jsd", "acm005910jsd", "acm005924jsd", "acm005943jsd", "acm005953jsd", "acm005978jsd", "acm005987jsd", "acm006002jsd", "acm006013jsd", "acm006026jsd", "acm006039jsd", "acm006050jsd", "acm006062jsd", "acm006090jsd", "acm006100jsd", "acm006117jsd", "acm006128jsd", "acm010818jsd", "acm010853jsd", "acm010870jsd", "acm010894jsd", "acm010933jsd", "acm010943jsd", "acm010950jsd", "acm010969jsd", "acm010979jsd", "acm010991jsd", "acm010998jsd", "acm011021jsd", "acm011034jsd", "acm011045jsd" ] + }, + "acm005741jsd" : { + "type" : "ControlElement", + "id" : "acm005741jsd", + "name" : "FeedbackConstantSumDistributePointsType" + }, + "acm005742jsd" : { + "type" : "ControlElement", + "id" : "acm005742jsd", + "name" : "getDisplayedOption" + }, + "acm005743jsd" : { + "type" : "ClassUnit", + "id" : "acm005743jsd", + "name" : "FeedbackConstantSumDistributePointsType", + "compilationUnitId" : "acm005736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005741jsd", "acm005742jsd" ] + }, + "acm005744jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005744jsd", + "name" : "FeedbackConstantSumQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005778jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005745jsd" : { + "type" : "CodePackage", + "id" : "acm005745jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005746jsd" ] + }, + "acm005746jsd" : { + "type" : "CodePackage", + "id" : "acm005746jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005747jsd" ] + }, + "acm005747jsd" : { + "type" : "CodePackage", + "id" : "acm005747jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005748jsd" ] + }, + "acm005748jsd" : { + "type" : "CodePackage", + "id" : "acm005748jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005744jsd" ] + }, + "acm005749jsd" : { + "type" : "ControlElement", + "id" : "acm005749jsd", + "name" : "FeedbackConstantSumQuestionDetails" + }, + "acm005750jsd" : { + "type" : "ControlElement", + "id" : "acm005750jsd", + "name" : "FeedbackConstantSumQuestionDetails" + }, + "acm005751jsd" : { + "type" : "ControlElement", + "id" : "acm005751jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005752jsd" : { + "type" : "ControlElement", + "id" : "acm005752jsd", + "name" : "validateQuestionDetails" + }, + "acm005753jsd" : { + "type" : "ControlElement", + "id" : "acm005753jsd", + "name" : "commonBoundaryValidation" + }, + "acm005754jsd" : { + "type" : "ControlElement", + "id" : "acm005754jsd", + "name" : "validateResponsesDetails" + }, + "acm005755jsd" : { + "type" : "ControlElement", + "id" : "acm005755jsd", + "name" : "getErrorsForConstSumOptions" + }, + "acm005756jsd" : { + "type" : "ControlElement", + "id" : "acm005756jsd", + "name" : "getErrorsForConstSumRecipients" + }, + "acm005757jsd" : { + "type" : "ControlElement", + "id" : "acm005757jsd", + "name" : "getMinMaxPointErrors" + }, + "acm005758jsd" : { + "type" : "ControlElement", + "id" : "acm005758jsd", + "name" : "getErrors" + }, + "acm005759jsd" : { + "type" : "ControlElement", + "id" : "acm005759jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005760jsd" : { + "type" : "ControlElement", + "id" : "acm005760jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005761jsd" : { + "type" : "ControlElement", + "id" : "acm005761jsd", + "name" : "getNumOfConstSumOptions" + }, + "acm005762jsd" : { + "type" : "ControlElement", + "id" : "acm005762jsd", + "name" : "getConstSumOptions" + }, + "acm005763jsd" : { + "type" : "ControlElement", + "id" : "acm005763jsd", + "name" : "setConstSumOptions" + }, + "acm005764jsd" : { + "type" : "ControlElement", + "id" : "acm005764jsd", + "name" : "isDistributeToRecipients" + }, + "acm005765jsd" : { + "type" : "ControlElement", + "id" : "acm005765jsd", + "name" : "setDistributeToRecipients" + }, + "acm005766jsd" : { + "type" : "ControlElement", + "id" : "acm005766jsd", + "name" : "isPointsPerOption" + }, + "acm005767jsd" : { + "type" : "ControlElement", + "id" : "acm005767jsd", + "name" : "setPointsPerOption" + }, + "acm005768jsd" : { + "type" : "ControlElement", + "id" : "acm005768jsd", + "name" : "isForceUnevenDistribution" + }, + "acm005769jsd" : { + "type" : "ControlElement", + "id" : "acm005769jsd", + "name" : "setForceUnevenDistribution" + }, + "acm005770jsd" : { + "type" : "ControlElement", + "id" : "acm005770jsd", + "name" : "getDistributePointsFor" + }, + "acm005771jsd" : { + "type" : "ControlElement", + "id" : "acm005771jsd", + "name" : "setDistributePointsFor" + }, + "acm005772jsd" : { + "type" : "ControlElement", + "id" : "acm005772jsd", + "name" : "getPoints" + }, + "acm005773jsd" : { + "type" : "ControlElement", + "id" : "acm005773jsd", + "name" : "setPoints" + }, + "acm005774jsd" : { + "type" : "ControlElement", + "id" : "acm005774jsd", + "name" : "getMinPoint" + }, + "acm005775jsd" : { + "type" : "ControlElement", + "id" : "acm005775jsd", + "name" : "setMinPoint" + }, + "acm005776jsd" : { + "type" : "ControlElement", + "id" : "acm005776jsd", + "name" : "getMaxPoint" + }, + "acm005777jsd" : { + "type" : "ControlElement", + "id" : "acm005777jsd", + "name" : "setMaxPoint" + }, + "acm005778jsd" : { + "type" : "ClassUnit", + "id" : "acm005778jsd", + "name" : "FeedbackConstantSumQuestionDetails", + "compilationUnitId" : "acm005744jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005778jsd", "acm005788jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm005749jsd", "acm005750jsd", "acm005751jsd", "acm005752jsd", "acm005753jsd", "acm005754jsd", "acm005755jsd", "acm005756jsd", "acm005757jsd", "acm005758jsd", "acm005759jsd", "acm005760jsd", "acm005761jsd", "acm005762jsd", "acm005763jsd", "acm005764jsd", "acm005765jsd", "acm005766jsd", "acm005767jsd", "acm005768jsd", "acm005769jsd", "acm005770jsd", "acm005771jsd", "acm005772jsd", "acm005773jsd", "acm005774jsd", "acm005775jsd", "acm005776jsd", "acm005777jsd" ] + }, + "acm005779jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005779jsd", + "name" : "FeedbackConstantSumResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005788jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005780jsd" : { + "type" : "CodePackage", + "id" : "acm005780jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005781jsd" ] + }, + "acm005781jsd" : { + "type" : "CodePackage", + "id" : "acm005781jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005782jsd" ] + }, + "acm005782jsd" : { + "type" : "CodePackage", + "id" : "acm005782jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005783jsd" ] + }, + "acm005783jsd" : { + "type" : "CodePackage", + "id" : "acm005783jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005779jsd" ] + }, + "acm005784jsd" : { + "type" : "ControlElement", + "id" : "acm005784jsd", + "name" : "FeedbackConstantSumResponseDetails" + }, + "acm005785jsd" : { + "type" : "ControlElement", + "id" : "acm005785jsd", + "name" : "getAnswerString" + }, + "acm005786jsd" : { + "type" : "ControlElement", + "id" : "acm005786jsd", + "name" : "getAnswers" + }, + "acm005787jsd" : { + "type" : "ControlElement", + "id" : "acm005787jsd", + "name" : "setAnswers" + }, + "acm005788jsd" : { + "type" : "ClassUnit", + "id" : "acm005788jsd", + "name" : "FeedbackConstantSumResponseDetails", + "compilationUnitId" : "acm005779jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005784jsd", "acm005785jsd", "acm005786jsd", "acm005787jsd" ] + }, + "acm005789jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005789jsd", + "name" : "FeedbackContributionQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005820jsd", "acm005822jsd", "acm005828jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005790jsd" : { + "type" : "CodePackage", + "id" : "acm005790jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005791jsd" ] + }, + "acm005791jsd" : { + "type" : "CodePackage", + "id" : "acm005791jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005792jsd" ] + }, + "acm005792jsd" : { + "type" : "CodePackage", + "id" : "acm005792jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005793jsd" ] + }, + "acm005793jsd" : { + "type" : "CodePackage", + "id" : "acm005793jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005789jsd" ] + }, + "acm005794jsd" : { + "type" : "ControlElement", + "id" : "acm005794jsd", + "name" : "FeedbackContributionQuestionDetails" + }, + "acm005795jsd" : { + "type" : "ControlElement", + "id" : "acm005795jsd", + "name" : "FeedbackContributionQuestionDetails" + }, + "acm005796jsd" : { + "type" : "ControlElement", + "id" : "acm005796jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005797jsd" : { + "type" : "ControlElement", + "id" : "acm005797jsd", + "name" : "isIndividualResponsesShownToStudents" + }, + "acm005798jsd" : { + "type" : "ControlElement", + "id" : "acm005798jsd", + "name" : "getQuestionResultStatisticsJson" + }, + "acm005799jsd" : { + "type" : "ControlElement", + "id" : "acm005799jsd", + "name" : "getStudentResults" + }, + "acm005800jsd" : { + "type" : "ControlElement", + "id" : "acm005800jsd", + "name" : "getTeamResults" + }, + "acm005801jsd" : { + "type" : "ControlElement", + "id" : "acm005801jsd", + "name" : "getTeamSubmissionArray" + }, + "acm005802jsd" : { + "type" : "ControlElement", + "id" : "acm005802jsd", + "name" : "getTeamResponses" + }, + "acm005803jsd" : { + "type" : "ControlElement", + "id" : "acm005803jsd", + "name" : "getTeamMembersEmail" + }, + "acm005804jsd" : { + "type" : "ControlElement", + "id" : "acm005804jsd", + "name" : "getTeamsWithAtLeastOneResponse" + }, + "acm005805jsd" : { + "type" : "ControlElement", + "id" : "acm005805jsd", + "name" : "validateQuestionDetails" + }, + "acm005806jsd" : { + "type" : "ControlElement", + "id" : "acm005806jsd", + "name" : "validateResponsesDetails" + }, + "acm005807jsd" : { + "type" : "ControlElement", + "id" : "acm005807jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005808jsd" : { + "type" : "ControlElement", + "id" : "acm005808jsd", + "name" : "isInstructorCommentsOnResponsesAllowed" + }, + "acm005809jsd" : { + "type" : "ControlElement", + "id" : "acm005809jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005810jsd" : { + "type" : "ControlElement", + "id" : "acm005810jsd", + "name" : "isZeroSum" + }, + "acm005811jsd" : { + "type" : "ControlElement", + "id" : "acm005811jsd", + "name" : "isNotSureAllowed" + }, + "acm005812jsd" : { + "type" : "ControlElement", + "id" : "acm005812jsd", + "name" : "setZeroSum" + }, + "acm005813jsd" : { + "type" : "ControlElement", + "id" : "acm005813jsd", + "name" : "setNotSureAllowed" + }, + "acm005814jsd" : { + "type" : "ControlElement", + "id" : "acm005814jsd", + "name" : "getResults" + }, + "acm005815jsd" : { + "type" : "ControlElement", + "id" : "acm005815jsd", + "name" : "ContributionStatisticsEntry" + }, + "acm005816jsd" : { + "type" : "ControlElement", + "id" : "acm005816jsd", + "name" : "getClaimed" + }, + "acm005817jsd" : { + "type" : "ControlElement", + "id" : "acm005817jsd", + "name" : "getPerceived" + }, + "acm005818jsd" : { + "type" : "ControlElement", + "id" : "acm005818jsd", + "name" : "getClaimedOthers" + }, + "acm005819jsd" : { + "type" : "ControlElement", + "id" : "acm005819jsd", + "name" : "getPerceivedOthers" + }, + "acm005820jsd" : { + "type" : "ClassUnit", + "id" : "acm005820jsd", + "name" : "FeedbackContributionQuestionDetails", + "compilationUnitId" : "acm005789jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004383jsd", "acm004421jsd", "acm004788jsd", "acm004871jsd", "acm005820jsd", "acm005822jsd", "acm005828jsd", "acm005838jsd", "acm005977jsd", "acm006061jsd", "acm006435jsd" ], + "content" : [ "acm005794jsd", "acm005795jsd", "acm005796jsd", "acm005797jsd", "acm005798jsd", "acm005799jsd", "acm005800jsd", "acm005801jsd", "acm005802jsd", "acm005803jsd", "acm005804jsd", "acm005805jsd", "acm005806jsd", "acm005807jsd", "acm005808jsd", "acm005809jsd", "acm005810jsd", "acm005811jsd", "acm005812jsd", "acm005813jsd", "acm005814jsd", "acm005815jsd", "acm005816jsd", "acm005817jsd", "acm005818jsd", "acm005819jsd" ] + }, + "acm005821jsd" : { + "type" : "ControlElement", + "id" : "acm005821jsd", + "name" : "getResults" + }, + "acm005822jsd" : { + "type" : "ClassUnit", + "id" : "acm005822jsd", + "name" : "ContributionStatistics", + "compilationUnitId" : "acm005789jsd", + "parentDatatypeId" : "acm005820jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005828jsd" ], + "content" : [ "acm005821jsd" ] + }, + "acm005823jsd" : { + "type" : "ControlElement", + "id" : "acm005823jsd", + "name" : "ContributionStatisticsEntry" + }, + "acm005824jsd" : { + "type" : "ControlElement", + "id" : "acm005824jsd", + "name" : "getClaimed" + }, + "acm005825jsd" : { + "type" : "ControlElement", + "id" : "acm005825jsd", + "name" : "getPerceived" + }, + "acm005826jsd" : { + "type" : "ControlElement", + "id" : "acm005826jsd", + "name" : "getClaimedOthers" + }, + "acm005827jsd" : { + "type" : "ControlElement", + "id" : "acm005827jsd", + "name" : "getPerceivedOthers" + }, + "acm005828jsd" : { + "type" : "ClassUnit", + "id" : "acm005828jsd", + "name" : "ContributionStatisticsEntry", + "compilationUnitId" : "acm005789jsd", + "parentDatatypeId" : "acm005820jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005823jsd", "acm005824jsd", "acm005825jsd", "acm005826jsd", "acm005827jsd" ] + }, + "acm005829jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005829jsd", + "name" : "FeedbackContributionResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005838jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005830jsd" : { + "type" : "CodePackage", + "id" : "acm005830jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005831jsd" ] + }, + "acm005831jsd" : { + "type" : "CodePackage", + "id" : "acm005831jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005832jsd" ] + }, + "acm005832jsd" : { + "type" : "CodePackage", + "id" : "acm005832jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005833jsd" ] + }, + "acm005833jsd" : { + "type" : "CodePackage", + "id" : "acm005833jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005829jsd" ] + }, + "acm005834jsd" : { + "type" : "ControlElement", + "id" : "acm005834jsd", + "name" : "FeedbackContributionResponseDetails" + }, + "acm005835jsd" : { + "type" : "ControlElement", + "id" : "acm005835jsd", + "name" : "getAnswerString" + }, + "acm005836jsd" : { + "type" : "ControlElement", + "id" : "acm005836jsd", + "name" : "getAnswer" + }, + "acm005837jsd" : { + "type" : "ControlElement", + "id" : "acm005837jsd", + "name" : "setAnswer" + }, + "acm005838jsd" : { + "type" : "ClassUnit", + "id" : "acm005838jsd", + "name" : "FeedbackContributionResponseDetails", + "compilationUnitId" : "acm005829jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005834jsd", "acm005835jsd", "acm005836jsd", "acm005837jsd" ] + }, + "acm005839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005839jsd", + "name" : "FeedbackMcqQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005866jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005840jsd" : { + "type" : "CodePackage", + "id" : "acm005840jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005841jsd" ] + }, + "acm005841jsd" : { + "type" : "CodePackage", + "id" : "acm005841jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005842jsd" ] + }, + "acm005842jsd" : { + "type" : "CodePackage", + "id" : "acm005842jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005843jsd" ] + }, + "acm005843jsd" : { + "type" : "CodePackage", + "id" : "acm005843jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005839jsd" ] + }, + "acm005844jsd" : { + "type" : "ControlElement", + "id" : "acm005844jsd", + "name" : "FeedbackMcqQuestionDetails" + }, + "acm005845jsd" : { + "type" : "ControlElement", + "id" : "acm005845jsd", + "name" : "FeedbackMcqQuestionDetails" + }, + "acm005846jsd" : { + "type" : "ControlElement", + "id" : "acm005846jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005847jsd" : { + "type" : "ControlElement", + "id" : "acm005847jsd", + "name" : "validateQuestionDetails" + }, + "acm005848jsd" : { + "type" : "ControlElement", + "id" : "acm005848jsd", + "name" : "validateResponsesDetails" + }, + "acm005849jsd" : { + "type" : "ControlElement", + "id" : "acm005849jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005850jsd" : { + "type" : "ControlElement", + "id" : "acm005850jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005851jsd" : { + "type" : "ControlElement", + "id" : "acm005851jsd", + "name" : "isHasAssignedWeights" + }, + "acm005852jsd" : { + "type" : "ControlElement", + "id" : "acm005852jsd", + "name" : "setHasAssignedWeights" + }, + "acm005853jsd" : { + "type" : "ControlElement", + "id" : "acm005853jsd", + "name" : "getMcqWeights" + }, + "acm005854jsd" : { + "type" : "ControlElement", + "id" : "acm005854jsd", + "name" : "setMcqWeights" + }, + "acm005855jsd" : { + "type" : "ControlElement", + "id" : "acm005855jsd", + "name" : "getMcqOtherWeight" + }, + "acm005856jsd" : { + "type" : "ControlElement", + "id" : "acm005856jsd", + "name" : "setMcqOtherWeight" + }, + "acm005857jsd" : { + "type" : "ControlElement", + "id" : "acm005857jsd", + "name" : "getNumOfMcqChoices" + }, + "acm005858jsd" : { + "type" : "ControlElement", + "id" : "acm005858jsd", + "name" : "getMcqChoices" + }, + "acm005859jsd" : { + "type" : "ControlElement", + "id" : "acm005859jsd", + "name" : "setMcqChoices" + }, + "acm005860jsd" : { + "type" : "ControlElement", + "id" : "acm005860jsd", + "name" : "isOtherEnabled" + }, + "acm005861jsd" : { + "type" : "ControlElement", + "id" : "acm005861jsd", + "name" : "setOtherEnabled" + }, + "acm005862jsd" : { + "type" : "ControlElement", + "id" : "acm005862jsd", + "name" : "isQuestionDropdownEnabled" + }, + "acm005863jsd" : { + "type" : "ControlElement", + "id" : "acm005863jsd", + "name" : "setQuestionDropdownEnabled" + }, + "acm005864jsd" : { + "type" : "ControlElement", + "id" : "acm005864jsd", + "name" : "getGenerateOptionsFor" + }, + "acm005865jsd" : { + "type" : "ControlElement", + "id" : "acm005865jsd", + "name" : "setGenerateOptionsFor" + }, + "acm005866jsd" : { + "type" : "ClassUnit", + "id" : "acm005866jsd", + "name" : "FeedbackMcqQuestionDetails", + "compilationUnitId" : "acm005839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm005866jsd", "acm005880jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm005844jsd", "acm005845jsd", "acm005846jsd", "acm005847jsd", "acm005848jsd", "acm005849jsd", "acm005850jsd", "acm005851jsd", "acm005852jsd", "acm005853jsd", "acm005854jsd", "acm005855jsd", "acm005856jsd", "acm005857jsd", "acm005858jsd", "acm005859jsd", "acm005860jsd", "acm005861jsd", "acm005862jsd", "acm005863jsd", "acm005864jsd", "acm005865jsd" ] + }, + "acm005867jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005867jsd", + "name" : "FeedbackMcqResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005880jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005868jsd" : { + "type" : "CodePackage", + "id" : "acm005868jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005869jsd" ] + }, + "acm005869jsd" : { + "type" : "CodePackage", + "id" : "acm005869jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005870jsd" ] + }, + "acm005870jsd" : { + "type" : "CodePackage", + "id" : "acm005870jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005871jsd" ] + }, + "acm005871jsd" : { + "type" : "CodePackage", + "id" : "acm005871jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005867jsd" ] + }, + "acm005872jsd" : { + "type" : "ControlElement", + "id" : "acm005872jsd", + "name" : "FeedbackMcqResponseDetails" + }, + "acm005873jsd" : { + "type" : "ControlElement", + "id" : "acm005873jsd", + "name" : "getAnswerString" + }, + "acm005874jsd" : { + "type" : "ControlElement", + "id" : "acm005874jsd", + "name" : "getAnswer" + }, + "acm005875jsd" : { + "type" : "ControlElement", + "id" : "acm005875jsd", + "name" : "setAnswer" + }, + "acm005876jsd" : { + "type" : "ControlElement", + "id" : "acm005876jsd", + "name" : "isOther" + }, + "acm005877jsd" : { + "type" : "ControlElement", + "id" : "acm005877jsd", + "name" : "setOther" + }, + "acm005878jsd" : { + "type" : "ControlElement", + "id" : "acm005878jsd", + "name" : "getOtherFieldContent" + }, + "acm005879jsd" : { + "type" : "ControlElement", + "id" : "acm005879jsd", + "name" : "setOtherFieldContent" + }, + "acm005880jsd" : { + "type" : "ClassUnit", + "id" : "acm005880jsd", + "name" : "FeedbackMcqResponseDetails", + "compilationUnitId" : "acm005867jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005872jsd", "acm005873jsd", "acm005874jsd", "acm005875jsd", "acm005876jsd", "acm005877jsd", "acm005878jsd", "acm005879jsd" ] + }, + "acm005881jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005881jsd", + "name" : "FeedbackMsqQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005909jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005882jsd" : { + "type" : "CodePackage", + "id" : "acm005882jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005883jsd" ] + }, + "acm005883jsd" : { + "type" : "CodePackage", + "id" : "acm005883jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005884jsd" ] + }, + "acm005884jsd" : { + "type" : "CodePackage", + "id" : "acm005884jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005885jsd" ] + }, + "acm005885jsd" : { + "type" : "CodePackage", + "id" : "acm005885jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005881jsd" ] + }, + "acm005886jsd" : { + "type" : "ControlElement", + "id" : "acm005886jsd", + "name" : "FeedbackMsqQuestionDetails" + }, + "acm005887jsd" : { + "type" : "ControlElement", + "id" : "acm005887jsd", + "name" : "FeedbackMsqQuestionDetails" + }, + "acm005888jsd" : { + "type" : "ControlElement", + "id" : "acm005888jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005889jsd" : { + "type" : "ControlElement", + "id" : "acm005889jsd", + "name" : "validateQuestionDetails" + }, + "acm005890jsd" : { + "type" : "ControlElement", + "id" : "acm005890jsd", + "name" : "validateResponsesDetails" + }, + "acm005891jsd" : { + "type" : "ControlElement", + "id" : "acm005891jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005892jsd" : { + "type" : "ControlElement", + "id" : "acm005892jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005893jsd" : { + "type" : "ControlElement", + "id" : "acm005893jsd", + "name" : "getMsqChoices" + }, + "acm005894jsd" : { + "type" : "ControlElement", + "id" : "acm005894jsd", + "name" : "setMsqChoices" + }, + "acm005895jsd" : { + "type" : "ControlElement", + "id" : "acm005895jsd", + "name" : "isOtherEnabled" + }, + "acm005896jsd" : { + "type" : "ControlElement", + "id" : "acm005896jsd", + "name" : "setOtherEnabled" + }, + "acm005897jsd" : { + "type" : "ControlElement", + "id" : "acm005897jsd", + "name" : "isHasAssignedWeights" + }, + "acm005898jsd" : { + "type" : "ControlElement", + "id" : "acm005898jsd", + "name" : "setHasAssignedWeights" + }, + "acm005899jsd" : { + "type" : "ControlElement", + "id" : "acm005899jsd", + "name" : "getMsqWeights" + }, + "acm005900jsd" : { + "type" : "ControlElement", + "id" : "acm005900jsd", + "name" : "setMsqWeights" + }, + "acm005901jsd" : { + "type" : "ControlElement", + "id" : "acm005901jsd", + "name" : "getMsqOtherWeight" + }, + "acm005902jsd" : { + "type" : "ControlElement", + "id" : "acm005902jsd", + "name" : "setMsqOtherWeight" + }, + "acm005903jsd" : { + "type" : "ControlElement", + "id" : "acm005903jsd", + "name" : "getGenerateOptionsFor" + }, + "acm005904jsd" : { + "type" : "ControlElement", + "id" : "acm005904jsd", + "name" : "setGenerateOptionsFor" + }, + "acm005905jsd" : { + "type" : "ControlElement", + "id" : "acm005905jsd", + "name" : "getMaxSelectableChoices" + }, + "acm005906jsd" : { + "type" : "ControlElement", + "id" : "acm005906jsd", + "name" : "setMaxSelectableChoices" + }, + "acm005907jsd" : { + "type" : "ControlElement", + "id" : "acm005907jsd", + "name" : "getMinSelectableChoices" + }, + "acm005908jsd" : { + "type" : "ControlElement", + "id" : "acm005908jsd", + "name" : "setMinSelectableChoices" + }, + "acm005909jsd" : { + "type" : "ClassUnit", + "id" : "acm005909jsd", + "name" : "FeedbackMsqQuestionDetails", + "compilationUnitId" : "acm005881jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm005909jsd", "acm005923jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm005886jsd", "acm005887jsd", "acm005888jsd", "acm005889jsd", "acm005890jsd", "acm005891jsd", "acm005892jsd", "acm005893jsd", "acm005894jsd", "acm005895jsd", "acm005896jsd", "acm005897jsd", "acm005898jsd", "acm005899jsd", "acm005900jsd", "acm005901jsd", "acm005902jsd", "acm005903jsd", "acm005904jsd", "acm005905jsd", "acm005906jsd", "acm005907jsd", "acm005908jsd" ] + }, + "acm005910jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005910jsd", + "name" : "FeedbackMsqResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005923jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005911jsd" : { + "type" : "CodePackage", + "id" : "acm005911jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005912jsd" ] + }, + "acm005912jsd" : { + "type" : "CodePackage", + "id" : "acm005912jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005913jsd" ] + }, + "acm005913jsd" : { + "type" : "CodePackage", + "id" : "acm005913jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005914jsd" ] + }, + "acm005914jsd" : { + "type" : "CodePackage", + "id" : "acm005914jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005910jsd" ] + }, + "acm005915jsd" : { + "type" : "ControlElement", + "id" : "acm005915jsd", + "name" : "FeedbackMsqResponseDetails" + }, + "acm005916jsd" : { + "type" : "ControlElement", + "id" : "acm005916jsd", + "name" : "getAnswerString" + }, + "acm005917jsd" : { + "type" : "ControlElement", + "id" : "acm005917jsd", + "name" : "getAnswers" + }, + "acm005918jsd" : { + "type" : "ControlElement", + "id" : "acm005918jsd", + "name" : "setAnswers" + }, + "acm005919jsd" : { + "type" : "ControlElement", + "id" : "acm005919jsd", + "name" : "isOther" + }, + "acm005920jsd" : { + "type" : "ControlElement", + "id" : "acm005920jsd", + "name" : "setOther" + }, + "acm005921jsd" : { + "type" : "ControlElement", + "id" : "acm005921jsd", + "name" : "getOtherFieldContent" + }, + "acm005922jsd" : { + "type" : "ControlElement", + "id" : "acm005922jsd", + "name" : "setOtherFieldContent" + }, + "acm005923jsd" : { + "type" : "ClassUnit", + "id" : "acm005923jsd", + "name" : "FeedbackMsqResponseDetails", + "compilationUnitId" : "acm005910jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005915jsd", "acm005916jsd", "acm005917jsd", "acm005918jsd", "acm005919jsd", "acm005920jsd", "acm005921jsd", "acm005922jsd" ] + }, + "acm005924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005924jsd", + "name" : "FeedbackNumericalScaleQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005942jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005925jsd" : { + "type" : "CodePackage", + "id" : "acm005925jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005926jsd" ] + }, + "acm005926jsd" : { + "type" : "CodePackage", + "id" : "acm005926jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005927jsd" ] + }, + "acm005927jsd" : { + "type" : "CodePackage", + "id" : "acm005927jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005928jsd" ] + }, + "acm005928jsd" : { + "type" : "CodePackage", + "id" : "acm005928jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005924jsd" ] + }, + "acm005929jsd" : { + "type" : "ControlElement", + "id" : "acm005929jsd", + "name" : "FeedbackNumericalScaleQuestionDetails" + }, + "acm005930jsd" : { + "type" : "ControlElement", + "id" : "acm005930jsd", + "name" : "FeedbackNumericalScaleQuestionDetails" + }, + "acm005931jsd" : { + "type" : "ControlElement", + "id" : "acm005931jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005932jsd" : { + "type" : "ControlElement", + "id" : "acm005932jsd", + "name" : "validateQuestionDetails" + }, + "acm005933jsd" : { + "type" : "ControlElement", + "id" : "acm005933jsd", + "name" : "validateResponsesDetails" + }, + "acm005934jsd" : { + "type" : "ControlElement", + "id" : "acm005934jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005935jsd" : { + "type" : "ControlElement", + "id" : "acm005935jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005936jsd" : { + "type" : "ControlElement", + "id" : "acm005936jsd", + "name" : "getMinScale" + }, + "acm005937jsd" : { + "type" : "ControlElement", + "id" : "acm005937jsd", + "name" : "setMinScale" + }, + "acm005938jsd" : { + "type" : "ControlElement", + "id" : "acm005938jsd", + "name" : "getMaxScale" + }, + "acm005939jsd" : { + "type" : "ControlElement", + "id" : "acm005939jsd", + "name" : "setMaxScale" + }, + "acm005940jsd" : { + "type" : "ControlElement", + "id" : "acm005940jsd", + "name" : "getStep" + }, + "acm005941jsd" : { + "type" : "ControlElement", + "id" : "acm005941jsd", + "name" : "setStep" + }, + "acm005942jsd" : { + "type" : "ClassUnit", + "id" : "acm005942jsd", + "name" : "FeedbackNumericalScaleQuestionDetails", + "compilationUnitId" : "acm005924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005942jsd", "acm005952jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm005929jsd", "acm005930jsd", "acm005931jsd", "acm005932jsd", "acm005933jsd", "acm005934jsd", "acm005935jsd", "acm005936jsd", "acm005937jsd", "acm005938jsd", "acm005939jsd", "acm005940jsd", "acm005941jsd" ] + }, + "acm005943jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005943jsd", + "name" : "FeedbackNumericalScaleResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005952jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005944jsd" : { + "type" : "CodePackage", + "id" : "acm005944jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005945jsd" ] + }, + "acm005945jsd" : { + "type" : "CodePackage", + "id" : "acm005945jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005946jsd" ] + }, + "acm005946jsd" : { + "type" : "CodePackage", + "id" : "acm005946jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005947jsd" ] + }, + "acm005947jsd" : { + "type" : "CodePackage", + "id" : "acm005947jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005943jsd" ] + }, + "acm005948jsd" : { + "type" : "ControlElement", + "id" : "acm005948jsd", + "name" : "FeedbackNumericalScaleResponseDetails" + }, + "acm005949jsd" : { + "type" : "ControlElement", + "id" : "acm005949jsd", + "name" : "getAnswerString" + }, + "acm005950jsd" : { + "type" : "ControlElement", + "id" : "acm005950jsd", + "name" : "getAnswer" + }, + "acm005951jsd" : { + "type" : "ControlElement", + "id" : "acm005951jsd", + "name" : "setAnswer" + }, + "acm005952jsd" : { + "type" : "ClassUnit", + "id" : "acm005952jsd", + "name" : "FeedbackNumericalScaleResponseDetails", + "compilationUnitId" : "acm005943jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm005948jsd", "acm005949jsd", "acm005950jsd", "acm005951jsd" ] + }, + "acm005953jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005953jsd", + "name" : "FeedbackQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm005977jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005954jsd" : { + "type" : "CodePackage", + "id" : "acm005954jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005955jsd" ] + }, + "acm005955jsd" : { + "type" : "CodePackage", + "id" : "acm005955jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005956jsd" ] + }, + "acm005956jsd" : { + "type" : "CodePackage", + "id" : "acm005956jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005957jsd" ] + }, + "acm005957jsd" : { + "type" : "CodePackage", + "id" : "acm005957jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005953jsd" ] + }, + "acm005958jsd" : { + "type" : "ControlElement", + "id" : "acm005958jsd", + "name" : "FeedbackQuestionDetails" + }, + "acm005959jsd" : { + "type" : "ControlElement", + "id" : "acm005959jsd", + "name" : "FeedbackQuestionDetails" + }, + "acm005960jsd" : { + "type" : "ControlElement", + "id" : "acm005960jsd", + "name" : "getQuestionResultStatisticsJson" + }, + "acm005961jsd" : { + "type" : "ControlElement", + "id" : "acm005961jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005962jsd" : { + "type" : "ControlElement", + "id" : "acm005962jsd", + "name" : "isIndividualResponsesShownToStudents" + }, + "acm005963jsd" : { + "type" : "ControlElement", + "id" : "acm005963jsd", + "name" : "validateQuestionDetails" + }, + "acm005964jsd" : { + "type" : "ControlElement", + "id" : "acm005964jsd", + "name" : "validateResponsesDetails" + }, + "acm005965jsd" : { + "type" : "ControlElement", + "id" : "acm005965jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005966jsd" : { + "type" : "ControlElement", + "id" : "acm005966jsd", + "name" : "isInstructorCommentsOnResponsesAllowed" + }, + "acm005967jsd" : { + "type" : "ControlElement", + "id" : "acm005967jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005968jsd" : { + "type" : "ControlElement", + "id" : "acm005968jsd", + "name" : "shouldGenerateMissingResponses" + }, + "acm005969jsd" : { + "type" : "ControlElement", + "id" : "acm005969jsd", + "name" : "equals" + }, + "acm005970jsd" : { + "type" : "ControlElement", + "id" : "acm005970jsd", + "name" : "hashCode" + }, + "acm005971jsd" : { + "type" : "ControlElement", + "id" : "acm005971jsd", + "name" : "getJsonString" + }, + "acm005972jsd" : { + "type" : "ControlElement", + "id" : "acm005972jsd", + "name" : "getDeepCopy" + }, + "acm005973jsd" : { + "type" : "ControlElement", + "id" : "acm005973jsd", + "name" : "getQuestionType" + }, + "acm005974jsd" : { + "type" : "ControlElement", + "id" : "acm005974jsd", + "name" : "setQuestionType" + }, + "acm005975jsd" : { + "type" : "ControlElement", + "id" : "acm005975jsd", + "name" : "getQuestionText" + }, + "acm005976jsd" : { + "type" : "ControlElement", + "id" : "acm005976jsd", + "name" : "setQuestionText" + }, + "acm005977jsd" : { + "type" : "ClassUnit", + "id" : "acm005977jsd", + "name" : "FeedbackQuestionDetails", + "compilationUnitId" : "acm005953jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004383jsd", "acm004788jsd", "acm005977jsd", "acm005986jsd", "acm006061jsd" ], + "content" : [ "acm005958jsd", "acm005959jsd", "acm005960jsd", "acm005961jsd", "acm005962jsd", "acm005963jsd", "acm005964jsd", "acm005965jsd", "acm005966jsd", "acm005967jsd", "acm005968jsd", "acm005969jsd", "acm005970jsd", "acm005971jsd", "acm005972jsd", "acm005973jsd", "acm005974jsd", "acm005975jsd", "acm005976jsd" ] + }, + "acm005978jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005978jsd", + "name" : "FeedbackQuestionType", + "parentId" : "acm005740jsd", + "content" : [ "acm005986jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005979jsd" : { + "type" : "CodePackage", + "id" : "acm005979jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005980jsd" ] + }, + "acm005980jsd" : { + "type" : "CodePackage", + "id" : "acm005980jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005981jsd" ] + }, + "acm005981jsd" : { + "type" : "CodePackage", + "id" : "acm005981jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005982jsd" ] + }, + "acm005982jsd" : { + "type" : "CodePackage", + "id" : "acm005982jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005978jsd" ] + }, + "acm005983jsd" : { + "type" : "ControlElement", + "id" : "acm005983jsd", + "name" : "FeedbackQuestionType" + }, + "acm005984jsd" : { + "type" : "ControlElement", + "id" : "acm005984jsd", + "name" : "getQuestionDetailsClass" + }, + "acm005985jsd" : { + "type" : "ControlElement", + "id" : "acm005985jsd", + "name" : "getResponseDetailsClass" + }, + "acm005986jsd" : { + "type" : "ClassUnit", + "id" : "acm005986jsd", + "name" : "FeedbackQuestionType", + "compilationUnitId" : "acm005978jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm005983jsd", "acm005984jsd", "acm005985jsd" ] + }, + "acm005987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm005987jsd", + "name" : "FeedbackRankOptionsQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006001jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm005988jsd" : { + "type" : "CodePackage", + "id" : "acm005988jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm005989jsd" ] + }, + "acm005989jsd" : { + "type" : "CodePackage", + "id" : "acm005989jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm005990jsd" ] + }, + "acm005990jsd" : { + "type" : "CodePackage", + "id" : "acm005990jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm005991jsd" ] + }, + "acm005991jsd" : { + "type" : "CodePackage", + "id" : "acm005991jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm005987jsd" ] + }, + "acm005992jsd" : { + "type" : "ControlElement", + "id" : "acm005992jsd", + "name" : "FeedbackRankOptionsQuestionDetails" + }, + "acm005993jsd" : { + "type" : "ControlElement", + "id" : "acm005993jsd", + "name" : "FeedbackRankOptionsQuestionDetails" + }, + "acm005994jsd" : { + "type" : "ControlElement", + "id" : "acm005994jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm005995jsd" : { + "type" : "ControlElement", + "id" : "acm005995jsd", + "name" : "validateQuestionDetails" + }, + "acm005996jsd" : { + "type" : "ControlElement", + "id" : "acm005996jsd", + "name" : "validateResponsesDetails" + }, + "acm005997jsd" : { + "type" : "ControlElement", + "id" : "acm005997jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm005998jsd" : { + "type" : "ControlElement", + "id" : "acm005998jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm005999jsd" : { + "type" : "ControlElement", + "id" : "acm005999jsd", + "name" : "getOptions" + }, + "acm006000jsd" : { + "type" : "ControlElement", + "id" : "acm006000jsd", + "name" : "setOptions" + }, + "acm006001jsd" : { + "type" : "ClassUnit", + "id" : "acm006001jsd", + "name" : "FeedbackRankOptionsQuestionDetails", + "compilationUnitId" : "acm005987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006025jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006001jsd", "acm006012jsd", "acm006061jsd" ], + "content" : [ "acm005992jsd", "acm005993jsd", "acm005994jsd", "acm005995jsd", "acm005996jsd", "acm005997jsd", "acm005998jsd", "acm005999jsd", "acm006000jsd" ] + }, + "acm006002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006002jsd", + "name" : "FeedbackRankOptionsResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006012jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006003jsd" : { + "type" : "CodePackage", + "id" : "acm006003jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006004jsd" ] + }, + "acm006004jsd" : { + "type" : "CodePackage", + "id" : "acm006004jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006005jsd" ] + }, + "acm006005jsd" : { + "type" : "CodePackage", + "id" : "acm006005jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006006jsd" ] + }, + "acm006006jsd" : { + "type" : "CodePackage", + "id" : "acm006006jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006002jsd" ] + }, + "acm006007jsd" : { + "type" : "ControlElement", + "id" : "acm006007jsd", + "name" : "FeedbackRankOptionsResponseDetails" + }, + "acm006008jsd" : { + "type" : "ControlElement", + "id" : "acm006008jsd", + "name" : "getFilteredSortedAnswerList" + }, + "acm006009jsd" : { + "type" : "ControlElement", + "id" : "acm006009jsd", + "name" : "getAnswerString" + }, + "acm006010jsd" : { + "type" : "ControlElement", + "id" : "acm006010jsd", + "name" : "getAnswers" + }, + "acm006011jsd" : { + "type" : "ControlElement", + "id" : "acm006011jsd", + "name" : "setAnswers" + }, + "acm006012jsd" : { + "type" : "ClassUnit", + "id" : "acm006012jsd", + "name" : "FeedbackRankOptionsResponseDetails", + "compilationUnitId" : "acm006002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006007jsd", "acm006008jsd", "acm006009jsd", "acm006010jsd", "acm006011jsd" ] + }, + "acm006013jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006013jsd", + "name" : "FeedbackRankQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006025jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006014jsd" : { + "type" : "CodePackage", + "id" : "acm006014jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006015jsd" ] + }, + "acm006015jsd" : { + "type" : "CodePackage", + "id" : "acm006015jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006016jsd" ] + }, + "acm006016jsd" : { + "type" : "CodePackage", + "id" : "acm006016jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006017jsd" ] + }, + "acm006017jsd" : { + "type" : "CodePackage", + "id" : "acm006017jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006013jsd" ] + }, + "acm006018jsd" : { + "type" : "ControlElement", + "id" : "acm006018jsd", + "name" : "FeedbackRankQuestionDetails" + }, + "acm006019jsd" : { + "type" : "ControlElement", + "id" : "acm006019jsd", + "name" : "getMinOptionsToBeRanked" + }, + "acm006020jsd" : { + "type" : "ControlElement", + "id" : "acm006020jsd", + "name" : "setMinOptionsToBeRanked" + }, + "acm006021jsd" : { + "type" : "ControlElement", + "id" : "acm006021jsd", + "name" : "getMaxOptionsToBeRanked" + }, + "acm006022jsd" : { + "type" : "ControlElement", + "id" : "acm006022jsd", + "name" : "setMaxOptionsToBeRanked" + }, + "acm006023jsd" : { + "type" : "ControlElement", + "id" : "acm006023jsd", + "name" : "isAreDuplicatesAllowed" + }, + "acm006024jsd" : { + "type" : "ControlElement", + "id" : "acm006024jsd", + "name" : "setAreDuplicatesAllowed" + }, + "acm006025jsd" : { + "type" : "ClassUnit", + "id" : "acm006025jsd", + "name" : "FeedbackRankQuestionDetails", + "compilationUnitId" : "acm006013jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005986jsd" ], + "content" : [ "acm006018jsd", "acm006019jsd", "acm006020jsd", "acm006021jsd", "acm006022jsd", "acm006023jsd", "acm006024jsd" ] + }, + "acm006026jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006026jsd", + "name" : "FeedbackRankRecipientsQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006038jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006027jsd" : { + "type" : "CodePackage", + "id" : "acm006027jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006028jsd" ] + }, + "acm006028jsd" : { + "type" : "CodePackage", + "id" : "acm006028jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006029jsd" ] + }, + "acm006029jsd" : { + "type" : "CodePackage", + "id" : "acm006029jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006030jsd" ] + }, + "acm006030jsd" : { + "type" : "CodePackage", + "id" : "acm006030jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006026jsd" ] + }, + "acm006031jsd" : { + "type" : "ControlElement", + "id" : "acm006031jsd", + "name" : "FeedbackRankRecipientsQuestionDetails" + }, + "acm006032jsd" : { + "type" : "ControlElement", + "id" : "acm006032jsd", + "name" : "FeedbackRankRecipientsQuestionDetails" + }, + "acm006033jsd" : { + "type" : "ControlElement", + "id" : "acm006033jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm006034jsd" : { + "type" : "ControlElement", + "id" : "acm006034jsd", + "name" : "validateQuestionDetails" + }, + "acm006035jsd" : { + "type" : "ControlElement", + "id" : "acm006035jsd", + "name" : "validateResponsesDetails" + }, + "acm006036jsd" : { + "type" : "ControlElement", + "id" : "acm006036jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm006037jsd" : { + "type" : "ControlElement", + "id" : "acm006037jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm006038jsd" : { + "type" : "ClassUnit", + "id" : "acm006038jsd", + "name" : "FeedbackRankRecipientsQuestionDetails", + "compilationUnitId" : "acm006026jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006025jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006049jsd", "acm006061jsd" ], + "content" : [ "acm006031jsd", "acm006032jsd", "acm006033jsd", "acm006034jsd", "acm006035jsd", "acm006036jsd", "acm006037jsd" ] + }, + "acm006039jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006039jsd", + "name" : "FeedbackRankRecipientsResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006049jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006040jsd" : { + "type" : "CodePackage", + "id" : "acm006040jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006041jsd" ] + }, + "acm006041jsd" : { + "type" : "CodePackage", + "id" : "acm006041jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006042jsd" ] + }, + "acm006042jsd" : { + "type" : "CodePackage", + "id" : "acm006042jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006043jsd" ] + }, + "acm006043jsd" : { + "type" : "CodePackage", + "id" : "acm006043jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006039jsd" ] + }, + "acm006044jsd" : { + "type" : "ControlElement", + "id" : "acm006044jsd", + "name" : "FeedbackRankRecipientsResponseDetails" + }, + "acm006045jsd" : { + "type" : "ControlElement", + "id" : "acm006045jsd", + "name" : "getUpdateOptionsForRankRecipientQuestions" + }, + "acm006046jsd" : { + "type" : "ControlElement", + "id" : "acm006046jsd", + "name" : "getAnswerString" + }, + "acm006047jsd" : { + "type" : "ControlElement", + "id" : "acm006047jsd", + "name" : "getAnswer" + }, + "acm006048jsd" : { + "type" : "ControlElement", + "id" : "acm006048jsd", + "name" : "setAnswer" + }, + "acm006049jsd" : { + "type" : "ClassUnit", + "id" : "acm006049jsd", + "name" : "FeedbackRankRecipientsResponseDetails", + "compilationUnitId" : "acm006039jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd", "acm004885jsd", "acm006049jsd", "acm006061jsd" ], + "content" : [ "acm006044jsd", "acm006045jsd", "acm006046jsd", "acm006047jsd", "acm006048jsd" ] + }, + "acm006050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006050jsd", + "name" : "FeedbackResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006061jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006051jsd" : { + "type" : "CodePackage", + "id" : "acm006051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006052jsd" ] + }, + "acm006052jsd" : { + "type" : "CodePackage", + "id" : "acm006052jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006053jsd" ] + }, + "acm006053jsd" : { + "type" : "CodePackage", + "id" : "acm006053jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006054jsd" ] + }, + "acm006054jsd" : { + "type" : "CodePackage", + "id" : "acm006054jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006050jsd" ] + }, + "acm006055jsd" : { + "type" : "ControlElement", + "id" : "acm006055jsd", + "name" : "FeedbackResponseDetails" + }, + "acm006056jsd" : { + "type" : "ControlElement", + "id" : "acm006056jsd", + "name" : "getAnswerString" + }, + "acm006057jsd" : { + "type" : "ControlElement", + "id" : "acm006057jsd", + "name" : "getJsonString" + }, + "acm006058jsd" : { + "type" : "ControlElement", + "id" : "acm006058jsd", + "name" : "getDeepCopy" + }, + "acm006059jsd" : { + "type" : "ControlElement", + "id" : "acm006059jsd", + "name" : "setQuestionType" + }, + "acm006060jsd" : { + "type" : "ControlElement", + "id" : "acm006060jsd", + "name" : "getQuestionType" + }, + "acm006061jsd" : { + "type" : "ClassUnit", + "id" : "acm006061jsd", + "name" : "FeedbackResponseDetails", + "compilationUnitId" : "acm006050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005986jsd", "acm006061jsd", "acm006127jsd" ], + "content" : [ "acm006055jsd", "acm006056jsd", "acm006057jsd", "acm006058jsd", "acm006059jsd", "acm006060jsd" ] + }, + "acm006062jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006062jsd", + "name" : "FeedbackRubricQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006089jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006063jsd" : { + "type" : "CodePackage", + "id" : "acm006063jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006064jsd" ] + }, + "acm006064jsd" : { + "type" : "CodePackage", + "id" : "acm006064jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006065jsd" ] + }, + "acm006065jsd" : { + "type" : "CodePackage", + "id" : "acm006065jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006066jsd" ] + }, + "acm006066jsd" : { + "type" : "CodePackage", + "id" : "acm006066jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006062jsd" ] + }, + "acm006067jsd" : { + "type" : "ControlElement", + "id" : "acm006067jsd", + "name" : "FeedbackRubricQuestionDetails" + }, + "acm006068jsd" : { + "type" : "ControlElement", + "id" : "acm006068jsd", + "name" : "FeedbackRubricQuestionDetails" + }, + "acm006069jsd" : { + "type" : "ControlElement", + "id" : "acm006069jsd", + "name" : "isValidDescriptionSize" + }, + "acm006070jsd" : { + "type" : "ControlElement", + "id" : "acm006070jsd", + "name" : "isValidWeightSize" + }, + "acm006071jsd" : { + "type" : "ControlElement", + "id" : "acm006071jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm006072jsd" : { + "type" : "ControlElement", + "id" : "acm006072jsd", + "name" : "validateQuestionDetails" + }, + "acm006073jsd" : { + "type" : "ControlElement", + "id" : "acm006073jsd", + "name" : "validateResponsesDetails" + }, + "acm006074jsd" : { + "type" : "ControlElement", + "id" : "acm006074jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm006075jsd" : { + "type" : "ControlElement", + "id" : "acm006075jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm006076jsd" : { + "type" : "ControlElement", + "id" : "acm006076jsd", + "name" : "getRubricWeights" + }, + "acm006077jsd" : { + "type" : "ControlElement", + "id" : "acm006077jsd", + "name" : "isHasAssignedWeights" + }, + "acm006078jsd" : { + "type" : "ControlElement", + "id" : "acm006078jsd", + "name" : "setHasAssignedWeights" + }, + "acm006079jsd" : { + "type" : "ControlElement", + "id" : "acm006079jsd", + "name" : "getRubricWeightsForEachCell" + }, + "acm006080jsd" : { + "type" : "ControlElement", + "id" : "acm006080jsd", + "name" : "setRubricWeightsForEachCell" + }, + "acm006081jsd" : { + "type" : "ControlElement", + "id" : "acm006081jsd", + "name" : "getNumOfRubricChoices" + }, + "acm006082jsd" : { + "type" : "ControlElement", + "id" : "acm006082jsd", + "name" : "getRubricChoices" + }, + "acm006083jsd" : { + "type" : "ControlElement", + "id" : "acm006083jsd", + "name" : "setRubricChoices" + }, + "acm006084jsd" : { + "type" : "ControlElement", + "id" : "acm006084jsd", + "name" : "getNumOfRubricSubQuestions" + }, + "acm006085jsd" : { + "type" : "ControlElement", + "id" : "acm006085jsd", + "name" : "getRubricSubQuestions" + }, + "acm006086jsd" : { + "type" : "ControlElement", + "id" : "acm006086jsd", + "name" : "setRubricSubQuestions" + }, + "acm006087jsd" : { + "type" : "ControlElement", + "id" : "acm006087jsd", + "name" : "getRubricDescriptions" + }, + "acm006088jsd" : { + "type" : "ControlElement", + "id" : "acm006088jsd", + "name" : "setRubricDescriptions" + }, + "acm006089jsd" : { + "type" : "ClassUnit", + "id" : "acm006089jsd", + "name" : "FeedbackRubricQuestionDetails", + "compilationUnitId" : "acm006062jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006061jsd", "acm006089jsd", "acm006099jsd" ], + "content" : [ "acm006067jsd", "acm006068jsd", "acm006069jsd", "acm006070jsd", "acm006071jsd", "acm006072jsd", "acm006073jsd", "acm006074jsd", "acm006075jsd", "acm006076jsd", "acm006077jsd", "acm006078jsd", "acm006079jsd", "acm006080jsd", "acm006081jsd", "acm006082jsd", "acm006083jsd", "acm006084jsd", "acm006085jsd", "acm006086jsd", "acm006087jsd", "acm006088jsd" ] + }, + "acm006090jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006090jsd", + "name" : "FeedbackRubricResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006099jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006091jsd" : { + "type" : "CodePackage", + "id" : "acm006091jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006092jsd" ] + }, + "acm006092jsd" : { + "type" : "CodePackage", + "id" : "acm006092jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006093jsd" ] + }, + "acm006093jsd" : { + "type" : "CodePackage", + "id" : "acm006093jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006094jsd" ] + }, + "acm006094jsd" : { + "type" : "CodePackage", + "id" : "acm006094jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006090jsd" ] + }, + "acm006095jsd" : { + "type" : "ControlElement", + "id" : "acm006095jsd", + "name" : "FeedbackRubricResponseDetails" + }, + "acm006096jsd" : { + "type" : "ControlElement", + "id" : "acm006096jsd", + "name" : "getAnswerString" + }, + "acm006097jsd" : { + "type" : "ControlElement", + "id" : "acm006097jsd", + "name" : "getAnswer" + }, + "acm006098jsd" : { + "type" : "ControlElement", + "id" : "acm006098jsd", + "name" : "setAnswer" + }, + "acm006099jsd" : { + "type" : "ClassUnit", + "id" : "acm006099jsd", + "name" : "FeedbackRubricResponseDetails", + "compilationUnitId" : "acm006090jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006095jsd", "acm006096jsd", "acm006097jsd", "acm006098jsd" ] + }, + "acm006100jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006100jsd", + "name" : "FeedbackTextQuestionDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006116jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006101jsd" : { + "type" : "CodePackage", + "id" : "acm006101jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006102jsd" ] + }, + "acm006102jsd" : { + "type" : "CodePackage", + "id" : "acm006102jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006103jsd" ] + }, + "acm006103jsd" : { + "type" : "CodePackage", + "id" : "acm006103jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006104jsd" ] + }, + "acm006104jsd" : { + "type" : "CodePackage", + "id" : "acm006104jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006100jsd" ] + }, + "acm006105jsd" : { + "type" : "ControlElement", + "id" : "acm006105jsd", + "name" : "FeedbackTextQuestionDetails" + }, + "acm006106jsd" : { + "type" : "ControlElement", + "id" : "acm006106jsd", + "name" : "FeedbackTextQuestionDetails" + }, + "acm006107jsd" : { + "type" : "ControlElement", + "id" : "acm006107jsd", + "name" : "shouldChangesRequireResponseDeletion" + }, + "acm006108jsd" : { + "type" : "ControlElement", + "id" : "acm006108jsd", + "name" : "validateQuestionDetails" + }, + "acm006109jsd" : { + "type" : "ControlElement", + "id" : "acm006109jsd", + "name" : "validateResponsesDetails" + }, + "acm006110jsd" : { + "type" : "ControlElement", + "id" : "acm006110jsd", + "name" : "isFeedbackParticipantCommentsOnResponsesAllowed" + }, + "acm006111jsd" : { + "type" : "ControlElement", + "id" : "acm006111jsd", + "name" : "validateGiverRecipientVisibility" + }, + "acm006112jsd" : { + "type" : "ControlElement", + "id" : "acm006112jsd", + "name" : "getRecommendedLength" + }, + "acm006113jsd" : { + "type" : "ControlElement", + "id" : "acm006113jsd", + "name" : "setRecommendedLength" + }, + "acm006114jsd" : { + "type" : "ControlElement", + "id" : "acm006114jsd", + "name" : "getShouldAllowRichText" + }, + "acm006115jsd" : { + "type" : "ControlElement", + "id" : "acm006115jsd", + "name" : "setShouldAllowRichText" + }, + "acm006116jsd" : { + "type" : "ClassUnit", + "id" : "acm006116jsd", + "name" : "FeedbackTextQuestionDetails", + "compilationUnitId" : "acm006100jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm005977jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006061jsd", "acm006116jsd" ], + "content" : [ "acm006105jsd", "acm006106jsd", "acm006107jsd", "acm006108jsd", "acm006109jsd", "acm006110jsd", "acm006111jsd", "acm006112jsd", "acm006113jsd", "acm006114jsd", "acm006115jsd" ] + }, + "acm006117jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006117jsd", + "name" : "FeedbackTextResponseDetails", + "parentId" : "acm005740jsd", + "content" : [ "acm006127jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006118jsd" : { + "type" : "CodePackage", + "id" : "acm006118jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006119jsd" ] + }, + "acm006119jsd" : { + "type" : "CodePackage", + "id" : "acm006119jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006120jsd" ] + }, + "acm006120jsd" : { + "type" : "CodePackage", + "id" : "acm006120jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006121jsd" ] + }, + "acm006121jsd" : { + "type" : "CodePackage", + "id" : "acm006121jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006117jsd" ] + }, + "acm006122jsd" : { + "type" : "ControlElement", + "id" : "acm006122jsd", + "name" : "FeedbackTextResponseDetails" + }, + "acm006123jsd" : { + "type" : "ControlElement", + "id" : "acm006123jsd", + "name" : "FeedbackTextResponseDetails" + }, + "acm006124jsd" : { + "type" : "ControlElement", + "id" : "acm006124jsd", + "name" : "getAnswerString" + }, + "acm006125jsd" : { + "type" : "ControlElement", + "id" : "acm006125jsd", + "name" : "getAnswer" + }, + "acm006126jsd" : { + "type" : "ControlElement", + "id" : "acm006126jsd", + "name" : "setAnswer" + }, + "acm006127jsd" : { + "type" : "ClassUnit", + "id" : "acm006127jsd", + "name" : "FeedbackTextResponseDetails", + "compilationUnitId" : "acm006117jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006061jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006122jsd", "acm006123jsd", "acm006124jsd", "acm006125jsd", "acm006126jsd" ] + }, + "acm006128jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006128jsd", + "name" : "package-info", + "parentId" : "acm005740jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006129jsd" : { + "type" : "CodePackage", + "id" : "acm006129jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006130jsd" ] + }, + "acm006130jsd" : { + "type" : "CodePackage", + "id" : "acm006130jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006131jsd" ] + }, + "acm006131jsd" : { + "type" : "CodePackage", + "id" : "acm006131jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm006132jsd" ] + }, + "acm006132jsd" : { + "type" : "CodePackage", + "id" : "acm006132jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm006128jsd" ] + }, + "acm006133jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006133jsd", + "name" : "AuthException", + "parentId" : "acm006136jsd", + "content" : [ "acm006138jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006134jsd" : { + "type" : "CodePackage", + "id" : "acm006134jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006135jsd" ] + }, + "acm006135jsd" : { + "type" : "CodePackage", + "id" : "acm006135jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006136jsd" ] + }, + "acm006136jsd" : { + "type" : "CodePackage", + "id" : "acm006136jsd", + "name" : "exception", + "parentId" : "acm004139jsd", + "content" : [ "acm006133jsd", "acm006139jsd", "acm006144jsd", "acm006151jsd", "acm006157jsd", "acm006163jsd", "acm006169jsd", "acm006175jsd", "acm006181jsd", "acm006189jsd", "acm006198jsd" ] + }, + "acm006137jsd" : { + "type" : "ControlElement", + "id" : "acm006137jsd", + "name" : "AuthException" + }, + "acm006138jsd" : { + "type" : "ClassUnit", + "id" : "acm006138jsd", + "name" : "AuthException", + "compilationUnitId" : "acm006133jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006137jsd" ] + }, + "acm006139jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006139jsd", + "name" : "DeadlineExceededException", + "parentId" : "acm006136jsd", + "content" : [ "acm006143jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006140jsd" : { + "type" : "CodePackage", + "id" : "acm006140jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006141jsd" ] + }, + "acm006141jsd" : { + "type" : "CodePackage", + "id" : "acm006141jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006142jsd" ] + }, + "acm006142jsd" : { + "type" : "CodePackage", + "id" : "acm006142jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006139jsd" ] + }, + "acm006143jsd" : { + "type" : "ClassUnit", + "id" : "acm006143jsd", + "name" : "DeadlineExceededException", + "compilationUnitId" : "acm006139jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006144jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006144jsd", + "name" : "EmailSendingException", + "parentId" : "acm006136jsd", + "content" : [ "acm006150jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006145jsd" : { + "type" : "CodePackage", + "id" : "acm006145jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006146jsd" ] + }, + "acm006146jsd" : { + "type" : "CodePackage", + "id" : "acm006146jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006147jsd" ] + }, + "acm006147jsd" : { + "type" : "CodePackage", + "id" : "acm006147jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006144jsd" ] + }, + "acm006148jsd" : { + "type" : "ControlElement", + "id" : "acm006148jsd", + "name" : "EmailSendingException" + }, + "acm006149jsd" : { + "type" : "ControlElement", + "id" : "acm006149jsd", + "name" : "getStatusCode" + }, + "acm006150jsd" : { + "type" : "ClassUnit", + "id" : "acm006150jsd", + "name" : "EmailSendingException", + "compilationUnitId" : "acm006144jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006148jsd", "acm006149jsd" ] + }, + "acm006151jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006151jsd", + "name" : "EnrollException", + "parentId" : "acm006136jsd", + "content" : [ "acm006156jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006152jsd" : { + "type" : "CodePackage", + "id" : "acm006152jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006153jsd" ] + }, + "acm006153jsd" : { + "type" : "CodePackage", + "id" : "acm006153jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006154jsd" ] + }, + "acm006154jsd" : { + "type" : "CodePackage", + "id" : "acm006154jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006151jsd" ] + }, + "acm006155jsd" : { + "type" : "ControlElement", + "id" : "acm006155jsd", + "name" : "EnrollException" + }, + "acm006156jsd" : { + "type" : "ClassUnit", + "id" : "acm006156jsd", + "name" : "EnrollException", + "compilationUnitId" : "acm006151jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006155jsd" ] + }, + "acm006157jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006157jsd", + "name" : "EntityAlreadyExistsException", + "parentId" : "acm006136jsd", + "content" : [ "acm006162jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006158jsd" : { + "type" : "CodePackage", + "id" : "acm006158jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006159jsd" ] + }, + "acm006159jsd" : { + "type" : "CodePackage", + "id" : "acm006159jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006160jsd" ] + }, + "acm006160jsd" : { + "type" : "CodePackage", + "id" : "acm006160jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006157jsd" ] + }, + "acm006161jsd" : { + "type" : "ControlElement", + "id" : "acm006161jsd", + "name" : "EntityAlreadyExistsException" + }, + "acm006162jsd" : { + "type" : "ClassUnit", + "id" : "acm006162jsd", + "name" : "EntityAlreadyExistsException", + "compilationUnitId" : "acm006157jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006161jsd" ] + }, + "acm006163jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006163jsd", + "name" : "EntityDoesNotExistException", + "parentId" : "acm006136jsd", + "content" : [ "acm006168jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006164jsd" : { + "type" : "CodePackage", + "id" : "acm006164jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006165jsd" ] + }, + "acm006165jsd" : { + "type" : "CodePackage", + "id" : "acm006165jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006166jsd" ] + }, + "acm006166jsd" : { + "type" : "CodePackage", + "id" : "acm006166jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006163jsd" ] + }, + "acm006167jsd" : { + "type" : "ControlElement", + "id" : "acm006167jsd", + "name" : "EntityDoesNotExistException" + }, + "acm006168jsd" : { + "type" : "ClassUnit", + "id" : "acm006168jsd", + "name" : "EntityDoesNotExistException", + "compilationUnitId" : "acm006163jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006167jsd" ] + }, + "acm006169jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006169jsd", + "name" : "HttpRequestFailedException", + "parentId" : "acm006136jsd", + "content" : [ "acm006174jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006170jsd" : { + "type" : "CodePackage", + "id" : "acm006170jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006171jsd" ] + }, + "acm006171jsd" : { + "type" : "CodePackage", + "id" : "acm006171jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006172jsd" ] + }, + "acm006172jsd" : { + "type" : "CodePackage", + "id" : "acm006172jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006169jsd" ] + }, + "acm006173jsd" : { + "type" : "ControlElement", + "id" : "acm006173jsd", + "name" : "HttpRequestFailedException" + }, + "acm006174jsd" : { + "type" : "ClassUnit", + "id" : "acm006174jsd", + "name" : "HttpRequestFailedException", + "compilationUnitId" : "acm006169jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006173jsd" ] + }, + "acm006175jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006175jsd", + "name" : "InstructorUpdateException", + "parentId" : "acm006136jsd", + "content" : [ "acm006180jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006176jsd" : { + "type" : "CodePackage", + "id" : "acm006176jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006177jsd" ] + }, + "acm006177jsd" : { + "type" : "CodePackage", + "id" : "acm006177jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006178jsd" ] + }, + "acm006178jsd" : { + "type" : "CodePackage", + "id" : "acm006178jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006175jsd" ] + }, + "acm006179jsd" : { + "type" : "ControlElement", + "id" : "acm006179jsd", + "name" : "InstructorUpdateException" + }, + "acm006180jsd" : { + "type" : "ClassUnit", + "id" : "acm006180jsd", + "name" : "InstructorUpdateException", + "compilationUnitId" : "acm006175jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006179jsd" ] + }, + "acm006181jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006181jsd", + "name" : "InvalidParametersException", + "parentId" : "acm006136jsd", + "content" : [ "acm006188jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006182jsd" : { + "type" : "CodePackage", + "id" : "acm006182jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006183jsd" ] + }, + "acm006183jsd" : { + "type" : "CodePackage", + "id" : "acm006183jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006184jsd" ] + }, + "acm006184jsd" : { + "type" : "CodePackage", + "id" : "acm006184jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006181jsd" ] + }, + "acm006185jsd" : { + "type" : "ControlElement", + "id" : "acm006185jsd", + "name" : "InvalidParametersException" + }, + "acm006186jsd" : { + "type" : "ControlElement", + "id" : "acm006186jsd", + "name" : "InvalidParametersException" + }, + "acm006187jsd" : { + "type" : "ControlElement", + "id" : "acm006187jsd", + "name" : "InvalidParametersException" + }, + "acm006188jsd" : { + "type" : "ClassUnit", + "id" : "acm006188jsd", + "name" : "InvalidParametersException", + "compilationUnitId" : "acm006181jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006185jsd", "acm006186jsd", "acm006187jsd" ] + }, + "acm006189jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006189jsd", + "name" : "SearchServiceException", + "parentId" : "acm006136jsd", + "content" : [ "acm006197jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006190jsd" : { + "type" : "CodePackage", + "id" : "acm006190jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006191jsd" ] + }, + "acm006191jsd" : { + "type" : "CodePackage", + "id" : "acm006191jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006192jsd" ] + }, + "acm006192jsd" : { + "type" : "CodePackage", + "id" : "acm006192jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006189jsd" ] + }, + "acm006193jsd" : { + "type" : "ControlElement", + "id" : "acm006193jsd", + "name" : "SearchServiceException" + }, + "acm006194jsd" : { + "type" : "ControlElement", + "id" : "acm006194jsd", + "name" : "SearchServiceException" + }, + "acm006195jsd" : { + "type" : "ControlElement", + "id" : "acm006195jsd", + "name" : "SearchServiceException" + }, + "acm006196jsd" : { + "type" : "ControlElement", + "id" : "acm006196jsd", + "name" : "getStatusCode" + }, + "acm006197jsd" : { + "type" : "ClassUnit", + "id" : "acm006197jsd", + "name" : "SearchServiceException", + "compilationUnitId" : "acm006189jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006193jsd", "acm006194jsd", "acm006195jsd", "acm006196jsd" ] + }, + "acm006198jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006198jsd", + "name" : "package-info", + "parentId" : "acm006136jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "exception" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006199jsd" : { + "type" : "CodePackage", + "id" : "acm006199jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006200jsd" ] + }, + "acm006200jsd" : { + "type" : "CodePackage", + "id" : "acm006200jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006201jsd" ] + }, + "acm006201jsd" : { + "type" : "CodePackage", + "id" : "acm006201jsd", + "name" : "exception", + "parentId" : null, + "content" : [ "acm006198jsd" ] + }, + "acm006202jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006202jsd", + "name" : "AppUrl", + "parentId" : "acm006205jsd", + "content" : [ "acm006214jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006203jsd" : { + "type" : "CodePackage", + "id" : "acm006203jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006204jsd" ] + }, + "acm006204jsd" : { + "type" : "CodePackage", + "id" : "acm006204jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006205jsd" ] + }, + "acm006205jsd" : { + "type" : "CodePackage", + "id" : "acm006205jsd", + "name" : "util", + "parentId" : "acm004139jsd", + "content" : [ "acm006202jsd", "acm006215jsd", "acm006233jsd", "acm006251jsd", "acm006260jsd", "acm006267jsd", "acm006291jsd", "acm006340jsd", "acm006348jsd", "acm006355jsd", "acm006365jsd", "acm006409jsd", "acm006436jsd", "acm006451jsd", "acm006465jsd", "acm006471jsd", "acm006495jsd", "acm006505jsd", "acm006513jsd", "acm006527jsd", "acm006544jsd", "acm006555jsd", "acm011050jsd", "acm011056jsd", "acm011112jsd", "acm011119jsd", "acm011134jsd", "acm011141jsd", "acm011162jsd", "acm011173jsd", "acm011185jsd", "acm011193jsd" ] + }, + "acm006206jsd" : { + "type" : "ControlElement", + "id" : "acm006206jsd", + "name" : "AppUrl" + }, + "acm006207jsd" : { + "type" : "ControlElement", + "id" : "acm006207jsd", + "name" : "withUserId" + }, + "acm006208jsd" : { + "type" : "ControlElement", + "id" : "acm006208jsd", + "name" : "withRegistrationKey" + }, + "acm006209jsd" : { + "type" : "ControlElement", + "id" : "acm006209jsd", + "name" : "withIsCreatingAccount" + }, + "acm006210jsd" : { + "type" : "ControlElement", + "id" : "acm006210jsd", + "name" : "withCourseId" + }, + "acm006211jsd" : { + "type" : "ControlElement", + "id" : "acm006211jsd", + "name" : "withSessionName" + }, + "acm006212jsd" : { + "type" : "ControlElement", + "id" : "acm006212jsd", + "name" : "withStudentEmail" + }, + "acm006213jsd" : { + "type" : "ControlElement", + "id" : "acm006213jsd", + "name" : "withEntityType" + }, + "acm006214jsd" : { + "type" : "ClassUnit", + "id" : "acm006214jsd", + "name" : "AppUrl", + "compilationUnitId" : "acm006202jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006554jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006214jsd" ], + "content" : [ "acm006206jsd", "acm006207jsd", "acm006208jsd", "acm006209jsd", "acm006210jsd", "acm006211jsd", "acm006212jsd", "acm006213jsd" ] + }, + "acm006215jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006215jsd", + "name" : "Config", + "parentId" : "acm006205jsd", + "content" : [ "acm006232jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006216jsd" : { + "type" : "CodePackage", + "id" : "acm006216jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006217jsd" ] + }, + "acm006217jsd" : { + "type" : "CodePackage", + "id" : "acm006217jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006218jsd" ] + }, + "acm006218jsd" : { + "type" : "CodePackage", + "id" : "acm006218jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006215jsd" ] + }, + "acm006219jsd" : { + "type" : "ControlElement", + "id" : "acm006219jsd", + "name" : "Config" + }, + "acm006220jsd" : { + "type" : "ControlElement", + "id" : "acm006220jsd", + "name" : "getDefaultFrontEndUrl" + }, + "acm006221jsd" : { + "type" : "ControlElement", + "id" : "acm006221jsd", + "name" : "getProperty" + }, + "acm006222jsd" : { + "type" : "ControlElement", + "id" : "acm006222jsd", + "name" : "getProperty" + }, + "acm006223jsd" : { + "type" : "ControlElement", + "id" : "acm006223jsd", + "name" : "getPort" + }, + "acm006224jsd" : { + "type" : "ControlElement", + "id" : "acm006224jsd", + "name" : "getInstanceId" + }, + "acm006225jsd" : { + "type" : "ControlElement", + "id" : "acm006225jsd", + "name" : "isDevServer" + }, + "acm006226jsd" : { + "type" : "ControlElement", + "id" : "acm006226jsd", + "name" : "isDevServerLoginEnabled" + }, + "acm006227jsd" : { + "type" : "ControlElement", + "id" : "acm006227jsd", + "name" : "getFrontEndAppUrl" + }, + "acm006228jsd" : { + "type" : "ControlElement", + "id" : "acm006228jsd", + "name" : "isUsingFirebase" + }, + "acm006229jsd" : { + "type" : "ControlElement", + "id" : "acm006229jsd", + "name" : "isUsingSendgrid" + }, + "acm006230jsd" : { + "type" : "ControlElement", + "id" : "acm006230jsd", + "name" : "isUsingMailgun" + }, + "acm006231jsd" : { + "type" : "ControlElement", + "id" : "acm006231jsd", + "name" : "isUsingMailjet" + }, + "acm006232jsd" : { + "type" : "ClassUnit", + "id" : "acm006232jsd", + "name" : "Config", + "compilationUnitId" : "acm006215jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006214jsd", "acm006435jsd" ], + "content" : [ "acm006219jsd", "acm006220jsd", "acm006221jsd", "acm006222jsd", "acm006223jsd", "acm006224jsd", "acm006225jsd", "acm006226jsd", "acm006227jsd", "acm006228jsd", "acm006229jsd", "acm006230jsd", "acm006231jsd" ] + }, + "acm006233jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006233jsd", + "name" : "Const", + "parentId" : "acm006205jsd", + "content" : [ "acm006238jsd", "acm006239jsd", "acm006240jsd", "acm006241jsd", "acm006242jsd", "acm006243jsd", "acm006244jsd", "acm006245jsd", "acm006246jsd", "acm006247jsd", "acm006248jsd", "acm006249jsd", "acm006250jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006234jsd" : { + "type" : "CodePackage", + "id" : "acm006234jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006235jsd" ] + }, + "acm006235jsd" : { + "type" : "CodePackage", + "id" : "acm006235jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006236jsd" ] + }, + "acm006236jsd" : { + "type" : "CodePackage", + "id" : "acm006236jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006233jsd" ] + }, + "acm006237jsd" : { + "type" : "ControlElement", + "id" : "acm006237jsd", + "name" : "Const" + }, + "acm006238jsd" : { + "type" : "ClassUnit", + "id" : "acm006238jsd", + "name" : "Const", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006237jsd" ] + }, + "acm006239jsd" : { + "type" : "ClassUnit", + "id" : "acm006239jsd", + "name" : "InstructorPermissionRoleNames", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006240jsd" : { + "type" : "ClassUnit", + "id" : "acm006240jsd", + "name" : "InstructorPermissions", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006241jsd" : { + "type" : "ClassUnit", + "id" : "acm006241jsd", + "name" : "ParamsNames", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006242jsd" : { + "type" : "ClassUnit", + "id" : "acm006242jsd", + "name" : "HeaderNames", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006243jsd" : { + "type" : "ClassUnit", + "id" : "acm006243jsd", + "name" : "CourseStatus", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006244jsd" : { + "type" : "ClassUnit", + "id" : "acm006244jsd", + "name" : "EntityType", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006245jsd" : { + "type" : "ClassUnit", + "id" : "acm006245jsd", + "name" : "SecurityConfig", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006246jsd" : { + "type" : "ClassUnit", + "id" : "acm006246jsd", + "name" : "LegacyURIs", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006247jsd" : { + "type" : "ClassUnit", + "id" : "acm006247jsd", + "name" : "WebPageURIs", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006248jsd" : { + "type" : "ClassUnit", + "id" : "acm006248jsd", + "name" : "ResourceURIs", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006249jsd" : { + "type" : "ClassUnit", + "id" : "acm006249jsd", + "name" : "CronJobURIs", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006250jsd" : { + "type" : "ClassUnit", + "id" : "acm006250jsd", + "name" : "TaskQueue", + "compilationUnitId" : "acm006233jsd", + "parentDatatypeId" : "acm006238jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006251jsd", + "name" : "EmailSendingStatus", + "parentId" : "acm006205jsd", + "content" : [ "acm006259jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006252jsd" : { + "type" : "CodePackage", + "id" : "acm006252jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006253jsd" ] + }, + "acm006253jsd" : { + "type" : "CodePackage", + "id" : "acm006253jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006254jsd" ] + }, + "acm006254jsd" : { + "type" : "CodePackage", + "id" : "acm006254jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006251jsd" ] + }, + "acm006255jsd" : { + "type" : "ControlElement", + "id" : "acm006255jsd", + "name" : "EmailSendingStatus" + }, + "acm006256jsd" : { + "type" : "ControlElement", + "id" : "acm006256jsd", + "name" : "getStatusCode" + }, + "acm006257jsd" : { + "type" : "ControlElement", + "id" : "acm006257jsd", + "name" : "getMessage" + }, + "acm006258jsd" : { + "type" : "ControlElement", + "id" : "acm006258jsd", + "name" : "isSuccess" + }, + "acm006259jsd" : { + "type" : "ClassUnit", + "id" : "acm006259jsd", + "name" : "EmailSendingStatus", + "compilationUnitId" : "acm006251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006255jsd", "acm006256jsd", "acm006257jsd", "acm006258jsd" ] + }, + "acm006260jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006260jsd", + "name" : "EmailType", + "parentId" : "acm006205jsd", + "content" : [ "acm006266jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006261jsd" : { + "type" : "CodePackage", + "id" : "acm006261jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006262jsd" ] + }, + "acm006262jsd" : { + "type" : "CodePackage", + "id" : "acm006262jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006263jsd" ] + }, + "acm006263jsd" : { + "type" : "CodePackage", + "id" : "acm006263jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006260jsd" ] + }, + "acm006264jsd" : { + "type" : "ControlElement", + "id" : "acm006264jsd", + "name" : "EmailType" + }, + "acm006265jsd" : { + "type" : "ControlElement", + "id" : "acm006265jsd", + "name" : "getSubject" + }, + "acm006266jsd" : { + "type" : "ClassUnit", + "id" : "acm006266jsd", + "name" : "EmailType", + "compilationUnitId" : "acm006260jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006264jsd", "acm006265jsd" ] + }, + "acm006267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006267jsd", + "name" : "EmailWrapper", + "parentId" : "acm006205jsd", + "content" : [ "acm006290jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006268jsd" : { + "type" : "CodePackage", + "id" : "acm006268jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006269jsd" ] + }, + "acm006269jsd" : { + "type" : "CodePackage", + "id" : "acm006269jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006270jsd" ] + }, + "acm006270jsd" : { + "type" : "CodePackage", + "id" : "acm006270jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006267jsd" ] + }, + "acm006271jsd" : { + "type" : "ControlElement", + "id" : "acm006271jsd", + "name" : "getType" + }, + "acm006272jsd" : { + "type" : "ControlElement", + "id" : "acm006272jsd", + "name" : "setType" + }, + "acm006273jsd" : { + "type" : "ControlElement", + "id" : "acm006273jsd", + "name" : "getSenderName" + }, + "acm006274jsd" : { + "type" : "ControlElement", + "id" : "acm006274jsd", + "name" : "setSenderName" + }, + "acm006275jsd" : { + "type" : "ControlElement", + "id" : "acm006275jsd", + "name" : "getSenderEmail" + }, + "acm006276jsd" : { + "type" : "ControlElement", + "id" : "acm006276jsd", + "name" : "setSenderEmail" + }, + "acm006277jsd" : { + "type" : "ControlElement", + "id" : "acm006277jsd", + "name" : "getReplyTo" + }, + "acm006278jsd" : { + "type" : "ControlElement", + "id" : "acm006278jsd", + "name" : "setReplyTo" + }, + "acm006279jsd" : { + "type" : "ControlElement", + "id" : "acm006279jsd", + "name" : "getRecipient" + }, + "acm006280jsd" : { + "type" : "ControlElement", + "id" : "acm006280jsd", + "name" : "setRecipient" + }, + "acm006281jsd" : { + "type" : "ControlElement", + "id" : "acm006281jsd", + "name" : "getBcc" + }, + "acm006282jsd" : { + "type" : "ControlElement", + "id" : "acm006282jsd", + "name" : "setBcc" + }, + "acm006283jsd" : { + "type" : "ControlElement", + "id" : "acm006283jsd", + "name" : "getSubject" + }, + "acm006284jsd" : { + "type" : "ControlElement", + "id" : "acm006284jsd", + "name" : "setSubject" + }, + "acm006285jsd" : { + "type" : "ControlElement", + "id" : "acm006285jsd", + "name" : "setSubjectFromType" + }, + "acm006286jsd" : { + "type" : "ControlElement", + "id" : "acm006286jsd", + "name" : "getContent" + }, + "acm006287jsd" : { + "type" : "ControlElement", + "id" : "acm006287jsd", + "name" : "setContent" + }, + "acm006288jsd" : { + "type" : "ControlElement", + "id" : "acm006288jsd", + "name" : "getIsCopy" + }, + "acm006289jsd" : { + "type" : "ControlElement", + "id" : "acm006289jsd", + "name" : "setIsCopy" + }, + "acm006290jsd" : { + "type" : "ClassUnit", + "id" : "acm006290jsd", + "name" : "EmailWrapper", + "compilationUnitId" : "acm006267jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006266jsd" ], + "content" : [ "acm006271jsd", "acm006272jsd", "acm006273jsd", "acm006274jsd", "acm006275jsd", "acm006276jsd", "acm006277jsd", "acm006278jsd", "acm006279jsd", "acm006280jsd", "acm006281jsd", "acm006282jsd", "acm006283jsd", "acm006284jsd", "acm006285jsd", "acm006286jsd", "acm006287jsd", "acm006288jsd", "acm006289jsd" ] + }, + "acm006291jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006291jsd", + "name" : "FieldValidator", + "parentId" : "acm006205jsd", + "content" : [ "acm006339jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006292jsd" : { + "type" : "CodePackage", + "id" : "acm006292jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006293jsd" ] + }, + "acm006293jsd" : { + "type" : "CodePackage", + "id" : "acm006293jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006294jsd" ] + }, + "acm006294jsd" : { + "type" : "CodePackage", + "id" : "acm006294jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006291jsd" ] + }, + "acm006295jsd" : { + "type" : "ControlElement", + "id" : "acm006295jsd", + "name" : "FieldValidator" + }, + "acm006296jsd" : { + "type" : "ControlElement", + "id" : "acm006296jsd", + "name" : "getInvalidityInfoForEmail" + }, + "acm006297jsd" : { + "type" : "ControlElement", + "id" : "acm006297jsd", + "name" : "getInvalidityInfoForGracePeriod" + }, + "acm006298jsd" : { + "type" : "ControlElement", + "id" : "acm006298jsd", + "name" : "getInvalidityInfoForGoogleId" + }, + "acm006299jsd" : { + "type" : "ControlElement", + "id" : "acm006299jsd", + "name" : "getInvalidityInfoForCourseId" + }, + "acm006300jsd" : { + "type" : "ControlElement", + "id" : "acm006300jsd", + "name" : "getInvalidityInfoForSectionName" + }, + "acm006301jsd" : { + "type" : "ControlElement", + "id" : "acm006301jsd", + "name" : "getInvalidityInfoForTeamName" + }, + "acm006302jsd" : { + "type" : "ControlElement", + "id" : "acm006302jsd", + "name" : "getInvalidityInfoForStudentRoleComments" + }, + "acm006303jsd" : { + "type" : "ControlElement", + "id" : "acm006303jsd", + "name" : "getInvalidityInfoForFeedbackSessionName" + }, + "acm006304jsd" : { + "type" : "ControlElement", + "id" : "acm006304jsd", + "name" : "getInvalidityInfoForCourseName" + }, + "acm006305jsd" : { + "type" : "ControlElement", + "id" : "acm006305jsd", + "name" : "getInvalidityInfoForInstituteName" + }, + "acm006306jsd" : { + "type" : "ControlElement", + "id" : "acm006306jsd", + "name" : "getInvalidityInfoForPersonName" + }, + "acm006307jsd" : { + "type" : "ControlElement", + "id" : "acm006307jsd", + "name" : "getInvalidityInfoForTimeZone" + }, + "acm006308jsd" : { + "type" : "ControlElement", + "id" : "acm006308jsd", + "name" : "getInvalidityInfoForRole" + }, + "acm006309jsd" : { + "type" : "ControlElement", + "id" : "acm006309jsd", + "name" : "getValidityInfoForAllowedName" + }, + "acm006310jsd" : { + "type" : "ControlElement", + "id" : "acm006310jsd", + "name" : "getInvalidityInfoForNotificationTitle" + }, + "acm006311jsd" : { + "type" : "ControlElement", + "id" : "acm006311jsd", + "name" : "getInvalidityInfoForNotificationBody" + }, + "acm006312jsd" : { + "type" : "ControlElement", + "id" : "acm006312jsd", + "name" : "getInvalidityInfoForNotificationStyle" + }, + "acm006313jsd" : { + "type" : "ControlElement", + "id" : "acm006313jsd", + "name" : "getInvalidityInfoForNotificationTargetUser" + }, + "acm006314jsd" : { + "type" : "ControlElement", + "id" : "acm006314jsd", + "name" : "getValidityInfoForSizeCappedPossiblyEmptyString" + }, + "acm006315jsd" : { + "type" : "ControlElement", + "id" : "acm006315jsd", + "name" : "getInvalidityInfoForNewStartTime" + }, + "acm006316jsd" : { + "type" : "ControlElement", + "id" : "acm006316jsd", + "name" : "getInvalidityInfoForNewEndTime" + }, + "acm006317jsd" : { + "type" : "ControlElement", + "id" : "acm006317jsd", + "name" : "getInvalidityInfoForTimeForSessionStartAndEnd" + }, + "acm006318jsd" : { + "type" : "ControlElement", + "id" : "acm006318jsd", + "name" : "getInvalidityInfoForTimeForVisibilityStartAndSessionStart" + }, + "acm006319jsd" : { + "type" : "ControlElement", + "id" : "acm006319jsd", + "name" : "getInvalidityInfoForTimeForNewVisibilityStart" + }, + "acm006320jsd" : { + "type" : "ControlElement", + "id" : "acm006320jsd", + "name" : "getInvalidityInfoForTimeForVisibilityStartAndResultsPublish" + }, + "acm006321jsd" : { + "type" : "ControlElement", + "id" : "acm006321jsd", + "name" : "getInvalidityInfoForTimeForSessionEndAndExtendedDeadlines" + }, + "acm006322jsd" : { + "type" : "ControlElement", + "id" : "acm006322jsd", + "name" : "getInvalidityInfoForTimeForNotificationStartAndEnd" + }, + "acm006323jsd" : { + "type" : "ControlElement", + "id" : "acm006323jsd", + "name" : "getInvalidityInfoForFirstTimeIsBeforeSecondTime" + }, + "acm006324jsd" : { + "type" : "ControlElement", + "id" : "acm006324jsd", + "name" : "getInvalidityInfoForFirstTimeIsStrictlyBeforeSecondTime" + }, + "acm006325jsd" : { + "type" : "ControlElement", + "id" : "acm006325jsd", + "name" : "getInvalidityInfoForFirstTimeComparedToSecondTime" + }, + "acm006326jsd" : { + "type" : "ControlElement", + "id" : "acm006326jsd", + "name" : "getInvalidityInfoForExactHourTime" + }, + "acm006327jsd" : { + "type" : "ControlElement", + "id" : "acm006327jsd", + "name" : "getValidityInfoForFeedbackParticipantType" + }, + "acm006328jsd" : { + "type" : "ControlElement", + "id" : "acm006328jsd", + "name" : "getInvalidityInfoForCommentGiverType" + }, + "acm006329jsd" : { + "type" : "ControlElement", + "id" : "acm006329jsd", + "name" : "getInvalidityInfoForVisibilityOfFeedbackParticipantComments" + }, + "acm006330jsd" : { + "type" : "ControlElement", + "id" : "acm006330jsd", + "name" : "getValidityInfoForFeedbackResponseVisibility" + }, + "acm006331jsd" : { + "type" : "ControlElement", + "id" : "acm006331jsd", + "name" : "getValidityInfoForNonHtmlField" + }, + "acm006332jsd" : { + "type" : "ControlElement", + "id" : "acm006332jsd", + "name" : "getValidityInfoForNonNullField" + }, + "acm006333jsd" : { + "type" : "ControlElement", + "id" : "acm006333jsd", + "name" : "isUntrimmed" + }, + "acm006334jsd" : { + "type" : "ControlElement", + "id" : "acm006334jsd", + "name" : "isValidEmailAddress" + }, + "acm006335jsd" : { + "type" : "ControlElement", + "id" : "acm006335jsd", + "name" : "areElementsUnique" + }, + "acm006336jsd" : { + "type" : "ControlElement", + "id" : "acm006336jsd", + "name" : "getPopulatedErrorMessage" + }, + "acm006337jsd" : { + "type" : "ControlElement", + "id" : "acm006337jsd", + "name" : "getPopulatedErrorMessage" + }, + "acm006338jsd" : { + "type" : "ControlElement", + "id" : "acm006338jsd", + "name" : "getPopulatedEmptyStringErrorMessage" + }, + "acm006339jsd" : { + "type" : "ClassUnit", + "id" : "acm006339jsd", + "name" : "FieldValidator", + "compilationUnitId" : "acm006291jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd" ], + "content" : [ "acm006295jsd", "acm006296jsd", "acm006297jsd", "acm006298jsd", "acm006299jsd", "acm006300jsd", "acm006301jsd", "acm006302jsd", "acm006303jsd", "acm006304jsd", "acm006305jsd", "acm006306jsd", "acm006307jsd", "acm006308jsd", "acm006309jsd", "acm006310jsd", "acm006311jsd", "acm006312jsd", "acm006313jsd", "acm006314jsd", "acm006315jsd", "acm006316jsd", "acm006317jsd", "acm006318jsd", "acm006319jsd", "acm006320jsd", "acm006321jsd", "acm006322jsd", "acm006323jsd", "acm006324jsd", "acm006325jsd", "acm006326jsd", "acm006327jsd", "acm006328jsd", "acm006329jsd", "acm006330jsd", "acm006331jsd", "acm006332jsd", "acm006333jsd", "acm006334jsd", "acm006335jsd", "acm006336jsd", "acm006337jsd", "acm006338jsd" ] + }, + "acm006340jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006340jsd", + "name" : "FileHelper", + "parentId" : "acm006205jsd", + "content" : [ "acm006347jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006341jsd" : { + "type" : "CodePackage", + "id" : "acm006341jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006342jsd" ] + }, + "acm006342jsd" : { + "type" : "CodePackage", + "id" : "acm006342jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006343jsd" ] + }, + "acm006343jsd" : { + "type" : "CodePackage", + "id" : "acm006343jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006340jsd" ] + }, + "acm006344jsd" : { + "type" : "ControlElement", + "id" : "acm006344jsd", + "name" : "FileHelper" + }, + "acm006345jsd" : { + "type" : "ControlElement", + "id" : "acm006345jsd", + "name" : "getResourceAsStream" + }, + "acm006346jsd" : { + "type" : "ControlElement", + "id" : "acm006346jsd", + "name" : "readResourceFile" + }, + "acm006347jsd" : { + "type" : "ClassUnit", + "id" : "acm006347jsd", + "name" : "FileHelper", + "compilationUnitId" : "acm006340jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006344jsd", "acm006345jsd", "acm006346jsd" ] + }, + "acm006348jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006348jsd", + "name" : "HttpRequest", + "parentId" : "acm006205jsd", + "content" : [ "acm006354jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006349jsd" : { + "type" : "CodePackage", + "id" : "acm006349jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006350jsd" ] + }, + "acm006350jsd" : { + "type" : "CodePackage", + "id" : "acm006350jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006351jsd" ] + }, + "acm006351jsd" : { + "type" : "CodePackage", + "id" : "acm006351jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006348jsd" ] + }, + "acm006352jsd" : { + "type" : "ControlElement", + "id" : "acm006352jsd", + "name" : "HttpRequest" + }, + "acm006353jsd" : { + "type" : "ControlElement", + "id" : "acm006353jsd", + "name" : "executeGetRequest" + }, + "acm006354jsd" : { + "type" : "ClassUnit", + "id" : "acm006354jsd", + "name" : "HttpRequest", + "compilationUnitId" : "acm006348jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006352jsd", "acm006353jsd" ] + }, + "acm006355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006355jsd", + "name" : "HttpRequestHelper", + "parentId" : "acm006205jsd", + "content" : [ "acm006364jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006356jsd" : { + "type" : "CodePackage", + "id" : "acm006356jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006357jsd" ] + }, + "acm006357jsd" : { + "type" : "CodePackage", + "id" : "acm006357jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006358jsd" ] + }, + "acm006358jsd" : { + "type" : "CodePackage", + "id" : "acm006358jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006355jsd" ] + }, + "acm006359jsd" : { + "type" : "ControlElement", + "id" : "acm006359jsd", + "name" : "HttpRequestHelper" + }, + "acm006360jsd" : { + "type" : "ControlElement", + "id" : "acm006360jsd", + "name" : "getRequestParameters" + }, + "acm006361jsd" : { + "type" : "ControlElement", + "id" : "acm006361jsd", + "name" : "getRequestHeaders" + }, + "acm006362jsd" : { + "type" : "ControlElement", + "id" : "acm006362jsd", + "name" : "getCookieValueFromRequest" + }, + "acm006363jsd" : { + "type" : "ControlElement", + "id" : "acm006363jsd", + "name" : "getRequestBody" + }, + "acm006364jsd" : { + "type" : "ClassUnit", + "id" : "acm006364jsd", + "name" : "HttpRequestHelper", + "compilationUnitId" : "acm006355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006359jsd", "acm006360jsd", "acm006361jsd", "acm006362jsd", "acm006363jsd" ] + }, + "acm006365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006365jsd", + "name" : "JsonUtils", + "parentId" : "acm006205jsd", + "content" : [ "acm006390jsd", "acm006393jsd", "acm006396jsd", "acm006399jsd", "acm006402jsd", "acm006405jsd", "acm006408jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006366jsd" : { + "type" : "CodePackage", + "id" : "acm006366jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006367jsd" ] + }, + "acm006367jsd" : { + "type" : "CodePackage", + "id" : "acm006367jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006368jsd" ] + }, + "acm006368jsd" : { + "type" : "CodePackage", + "id" : "acm006368jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006365jsd" ] + }, + "acm006369jsd" : { + "type" : "ControlElement", + "id" : "acm006369jsd", + "name" : "JsonUtils" + }, + "acm006370jsd" : { + "type" : "ControlElement", + "id" : "acm006370jsd", + "name" : "getGsonInstance" + }, + "acm006371jsd" : { + "type" : "ControlElement", + "id" : "acm006371jsd", + "name" : "toJson" + }, + "acm006372jsd" : { + "type" : "ControlElement", + "id" : "acm006372jsd", + "name" : "toJson" + }, + "acm006373jsd" : { + "type" : "ControlElement", + "id" : "acm006373jsd", + "name" : "toCompactJson" + }, + "acm006374jsd" : { + "type" : "ControlElement", + "id" : "acm006374jsd", + "name" : "toCompactJson" + }, + "acm006375jsd" : { + "type" : "ControlElement", + "id" : "acm006375jsd", + "name" : "fromJson" + }, + "acm006376jsd" : { + "type" : "ControlElement", + "id" : "acm006376jsd", + "name" : "fromJson" + }, + "acm006377jsd" : { + "type" : "ControlElement", + "id" : "acm006377jsd", + "name" : "parse" + }, + "acm006378jsd" : { + "type" : "ControlElement", + "id" : "acm006378jsd", + "name" : "serialize" + }, + "acm006379jsd" : { + "type" : "ControlElement", + "id" : "acm006379jsd", + "name" : "deserialize" + }, + "acm006380jsd" : { + "type" : "ControlElement", + "id" : "acm006380jsd", + "name" : "serialize" + }, + "acm006381jsd" : { + "type" : "ControlElement", + "id" : "acm006381jsd", + "name" : "deserialize" + }, + "acm006382jsd" : { + "type" : "ControlElement", + "id" : "acm006382jsd", + "name" : "serialize" + }, + "acm006383jsd" : { + "type" : "ControlElement", + "id" : "acm006383jsd", + "name" : "deserialize" + }, + "acm006384jsd" : { + "type" : "ControlElement", + "id" : "acm006384jsd", + "name" : "serialize" + }, + "acm006385jsd" : { + "type" : "ControlElement", + "id" : "acm006385jsd", + "name" : "deserialize" + }, + "acm006386jsd" : { + "type" : "ControlElement", + "id" : "acm006386jsd", + "name" : "serialize" + }, + "acm006387jsd" : { + "type" : "ControlElement", + "id" : "acm006387jsd", + "name" : "deserialize" + }, + "acm006388jsd" : { + "type" : "ControlElement", + "id" : "acm006388jsd", + "name" : "serialize" + }, + "acm006389jsd" : { + "type" : "ControlElement", + "id" : "acm006389jsd", + "name" : "deserialize" + }, + "acm006390jsd" : { + "type" : "ClassUnit", + "id" : "acm006390jsd", + "name" : "JsonUtils", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005595jsd", "acm005603jsd", "acm005977jsd", "acm005986jsd", "acm006061jsd", "acm006393jsd", "acm006396jsd", "acm006399jsd", "acm006402jsd", "acm006405jsd", "acm006408jsd" ], + "content" : [ "acm006369jsd", "acm006370jsd", "acm006371jsd", "acm006372jsd", "acm006373jsd", "acm006374jsd", "acm006375jsd", "acm006376jsd", "acm006377jsd", "acm006378jsd", "acm006379jsd", "acm006380jsd", "acm006381jsd", "acm006382jsd", "acm006383jsd", "acm006384jsd", "acm006385jsd", "acm006386jsd", "acm006387jsd", "acm006388jsd", "acm006389jsd" ] + }, + "acm006391jsd" : { + "type" : "ControlElement", + "id" : "acm006391jsd", + "name" : "serialize" + }, + "acm006392jsd" : { + "type" : "ControlElement", + "id" : "acm006392jsd", + "name" : "deserialize" + }, + "acm006393jsd" : { + "type" : "ClassUnit", + "id" : "acm006393jsd", + "name" : "InstantAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006391jsd", "acm006392jsd" ] + }, + "acm006394jsd" : { + "type" : "ControlElement", + "id" : "acm006394jsd", + "name" : "serialize" + }, + "acm006395jsd" : { + "type" : "ControlElement", + "id" : "acm006395jsd", + "name" : "deserialize" + }, + "acm006396jsd" : { + "type" : "ClassUnit", + "id" : "acm006396jsd", + "name" : "ZoneIdAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006394jsd", "acm006395jsd" ] + }, + "acm006397jsd" : { + "type" : "ControlElement", + "id" : "acm006397jsd", + "name" : "serialize" + }, + "acm006398jsd" : { + "type" : "ControlElement", + "id" : "acm006398jsd", + "name" : "deserialize" + }, + "acm006399jsd" : { + "type" : "ClassUnit", + "id" : "acm006399jsd", + "name" : "DurationMinutesAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006397jsd", "acm006398jsd" ] + }, + "acm006400jsd" : { + "type" : "ControlElement", + "id" : "acm006400jsd", + "name" : "serialize" + }, + "acm006401jsd" : { + "type" : "ControlElement", + "id" : "acm006401jsd", + "name" : "deserialize" + }, + "acm006402jsd" : { + "type" : "ClassUnit", + "id" : "acm006402jsd", + "name" : "FeedbackResponseDetailsAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005986jsd", "acm006061jsd" ], + "content" : [ "acm006400jsd", "acm006401jsd" ] + }, + "acm006403jsd" : { + "type" : "ControlElement", + "id" : "acm006403jsd", + "name" : "serialize" + }, + "acm006404jsd" : { + "type" : "ControlElement", + "id" : "acm006404jsd", + "name" : "deserialize" + }, + "acm006405jsd" : { + "type" : "ClassUnit", + "id" : "acm006405jsd", + "name" : "FeedbackQuestionDetailsAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005977jsd", "acm005986jsd" ], + "content" : [ "acm006403jsd", "acm006404jsd" ] + }, + "acm006406jsd" : { + "type" : "ControlElement", + "id" : "acm006406jsd", + "name" : "serialize" + }, + "acm006407jsd" : { + "type" : "ControlElement", + "id" : "acm006407jsd", + "name" : "deserialize" + }, + "acm006408jsd" : { + "type" : "ClassUnit", + "id" : "acm006408jsd", + "name" : "LogDetailsAdapter", + "compilationUnitId" : "acm006365jsd", + "parentDatatypeId" : "acm006390jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005595jsd", "acm005603jsd" ], + "content" : [ "acm006406jsd", "acm006407jsd" ] + }, + "acm006409jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006409jsd", + "name" : "Logger", + "parentId" : "acm006205jsd", + "content" : [ "acm006435jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006410jsd" : { + "type" : "CodePackage", + "id" : "acm006410jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006411jsd" ] + }, + "acm006411jsd" : { + "type" : "CodePackage", + "id" : "acm006411jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006412jsd" ] + }, + "acm006412jsd" : { + "type" : "CodePackage", + "id" : "acm006412jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006409jsd" ] + }, + "acm006413jsd" : { + "type" : "ControlElement", + "id" : "acm006413jsd", + "name" : "Logger" + }, + "acm006414jsd" : { + "type" : "ControlElement", + "id" : "acm006414jsd", + "name" : "getLogger" + }, + "acm006415jsd" : { + "type" : "ControlElement", + "id" : "acm006415jsd", + "name" : "fine" + }, + "acm006416jsd" : { + "type" : "ControlElement", + "id" : "acm006416jsd", + "name" : "info" + }, + "acm006417jsd" : { + "type" : "ControlElement", + "id" : "acm006417jsd", + "name" : "startup" + }, + "acm006418jsd" : { + "type" : "ControlElement", + "id" : "acm006418jsd", + "name" : "shutdown" + }, + "acm006419jsd" : { + "type" : "ControlElement", + "id" : "acm006419jsd", + "name" : "instance" + }, + "acm006420jsd" : { + "type" : "ControlElement", + "id" : "acm006420jsd", + "name" : "request" + }, + "acm006421jsd" : { + "type" : "ControlElement", + "id" : "acm006421jsd", + "name" : "request" + }, + "acm006422jsd" : { + "type" : "ControlElement", + "id" : "acm006422jsd", + "name" : "event" + }, + "acm006423jsd" : { + "type" : "ControlElement", + "id" : "acm006423jsd", + "name" : "warning" + }, + "acm006424jsd" : { + "type" : "ControlElement", + "id" : "acm006424jsd", + "name" : "warning" + }, + "acm006425jsd" : { + "type" : "ControlElement", + "id" : "acm006425jsd", + "name" : "severe" + }, + "acm006426jsd" : { + "type" : "ControlElement", + "id" : "acm006426jsd", + "name" : "severe" + }, + "acm006427jsd" : { + "type" : "ControlElement", + "id" : "acm006427jsd", + "name" : "getLogMessageWithStackTrace" + }, + "acm006428jsd" : { + "type" : "ControlElement", + "id" : "acm006428jsd", + "name" : "getFirstInternalStackTrace" + }, + "acm006429jsd" : { + "type" : "ControlElement", + "id" : "acm006429jsd", + "name" : "getStackTraceToDisplay" + }, + "acm006430jsd" : { + "type" : "ControlElement", + "id" : "acm006430jsd", + "name" : "formatLogMessage" + }, + "acm006431jsd" : { + "type" : "ControlElement", + "id" : "acm006431jsd", + "name" : "formatLogMessageForHumanDisplay" + }, + "acm006432jsd" : { + "type" : "ControlElement", + "id" : "acm006432jsd", + "name" : "formatLogMessageForCloudLogging" + }, + "acm006433jsd" : { + "type" : "ControlElement", + "id" : "acm006433jsd", + "name" : "getBaseCloudLoggingPayload" + }, + "acm006434jsd" : { + "type" : "ControlElement", + "id" : "acm006434jsd", + "name" : "getLoggerSource" + }, + "acm006435jsd" : { + "type" : "ClassUnit", + "id" : "acm006435jsd", + "name" : "Logger", + "compilationUnitId" : "acm006409jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005530jsd", "acm005584jsd", "acm005595jsd", "acm005611jsd", "acm005702jsd", "acm005714jsd", "acm005726jsd", "acm006435jsd", "acm006470jsd" ], + "content" : [ "acm006413jsd", "acm006414jsd", "acm006415jsd", "acm006416jsd", "acm006417jsd", "acm006418jsd", "acm006419jsd", "acm006420jsd", "acm006421jsd", "acm006422jsd", "acm006423jsd", "acm006424jsd", "acm006425jsd", "acm006426jsd", "acm006427jsd", "acm006428jsd", "acm006429jsd", "acm006430jsd", "acm006431jsd", "acm006432jsd", "acm006433jsd", "acm006434jsd" ] + }, + "acm006436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006436jsd", + "name" : "RequestTracer", + "parentId" : "acm006205jsd", + "content" : [ "acm006448jsd", "acm006450jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006437jsd" : { + "type" : "CodePackage", + "id" : "acm006437jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006438jsd" ] + }, + "acm006438jsd" : { + "type" : "CodePackage", + "id" : "acm006438jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006439jsd" ] + }, + "acm006439jsd" : { + "type" : "CodePackage", + "id" : "acm006439jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006436jsd" ] + }, + "acm006440jsd" : { + "type" : "ControlElement", + "id" : "acm006440jsd", + "name" : "RequestTracer" + }, + "acm006441jsd" : { + "type" : "ControlElement", + "id" : "acm006441jsd", + "name" : "getTraceId" + }, + "acm006442jsd" : { + "type" : "ControlElement", + "id" : "acm006442jsd", + "name" : "getSpanId" + }, + "acm006443jsd" : { + "type" : "ControlElement", + "id" : "acm006443jsd", + "name" : "getRemainingTimeMillis" + }, + "acm006444jsd" : { + "type" : "ControlElement", + "id" : "acm006444jsd", + "name" : "checkRemainingTime" + }, + "acm006445jsd" : { + "type" : "ControlElement", + "id" : "acm006445jsd", + "name" : "getTimeElapsedMillis" + }, + "acm006446jsd" : { + "type" : "ControlElement", + "id" : "acm006446jsd", + "name" : "init" + }, + "acm006447jsd" : { + "type" : "ControlElement", + "id" : "acm006447jsd", + "name" : "RequestTrace" + }, + "acm006448jsd" : { + "type" : "ClassUnit", + "id" : "acm006448jsd", + "name" : "RequestTracer", + "compilationUnitId" : "acm006436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006143jsd", "acm006450jsd" ], + "content" : [ "acm006440jsd", "acm006441jsd", "acm006442jsd", "acm006443jsd", "acm006444jsd", "acm006445jsd", "acm006446jsd", "acm006447jsd" ] + }, + "acm006449jsd" : { + "type" : "ControlElement", + "id" : "acm006449jsd", + "name" : "RequestTrace" + }, + "acm006450jsd" : { + "type" : "ClassUnit", + "id" : "acm006450jsd", + "name" : "RequestTrace", + "compilationUnitId" : "acm006436jsd", + "parentDatatypeId" : "acm006448jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006449jsd" ] + }, + "acm006451jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006451jsd", + "name" : "SanitizationHelper", + "parentId" : "acm006205jsd", + "content" : [ "acm006464jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006452jsd" : { + "type" : "CodePackage", + "id" : "acm006452jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006453jsd" ] + }, + "acm006453jsd" : { + "type" : "CodePackage", + "id" : "acm006453jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006454jsd" ] + }, + "acm006454jsd" : { + "type" : "CodePackage", + "id" : "acm006454jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006451jsd" ] + }, + "acm006455jsd" : { + "type" : "ControlElement", + "id" : "acm006455jsd", + "name" : "SanitizationHelper" + }, + "acm006456jsd" : { + "type" : "ControlElement", + "id" : "acm006456jsd", + "name" : "sanitizeGoogleId" + }, + "acm006457jsd" : { + "type" : "ControlElement", + "id" : "acm006457jsd", + "name" : "sanitizeEmail" + }, + "acm006458jsd" : { + "type" : "ControlElement", + "id" : "acm006458jsd", + "name" : "sanitizeName" + }, + "acm006459jsd" : { + "type" : "ControlElement", + "id" : "acm006459jsd", + "name" : "sanitizeTitle" + }, + "acm006460jsd" : { + "type" : "ControlElement", + "id" : "acm006460jsd", + "name" : "sanitizeTextField" + }, + "acm006461jsd" : { + "type" : "ControlElement", + "id" : "acm006461jsd", + "name" : "sanitizeForRichText" + }, + "acm006462jsd" : { + "type" : "ControlElement", + "id" : "acm006462jsd", + "name" : "sanitizeForHtml" + }, + "acm006463jsd" : { + "type" : "ControlElement", + "id" : "acm006463jsd", + "name" : "sanitizeForUri" + }, + "acm006464jsd" : { + "type" : "ClassUnit", + "id" : "acm006464jsd", + "name" : "SanitizationHelper", + "compilationUnitId" : "acm006451jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006455jsd", "acm006456jsd", "acm006457jsd", "acm006458jsd", "acm006459jsd", "acm006460jsd", "acm006461jsd", "acm006462jsd", "acm006463jsd" ] + }, + "acm006465jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006465jsd", + "name" : "StdOutConsoleHandler", + "parentId" : "acm006205jsd", + "content" : [ "acm006470jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006466jsd" : { + "type" : "CodePackage", + "id" : "acm006466jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006467jsd" ] + }, + "acm006467jsd" : { + "type" : "CodePackage", + "id" : "acm006467jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006468jsd" ] + }, + "acm006468jsd" : { + "type" : "CodePackage", + "id" : "acm006468jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006465jsd" ] + }, + "acm006469jsd" : { + "type" : "ControlElement", + "id" : "acm006469jsd", + "name" : "setOutputStream" + }, + "acm006470jsd" : { + "type" : "ClassUnit", + "id" : "acm006470jsd", + "name" : "StdOutConsoleHandler", + "compilationUnitId" : "acm006465jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006469jsd" ] + }, + "acm006471jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006471jsd", + "name" : "StringHelper", + "parentId" : "acm006205jsd", + "content" : [ "acm006494jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006472jsd" : { + "type" : "CodePackage", + "id" : "acm006472jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006473jsd" ] + }, + "acm006473jsd" : { + "type" : "CodePackage", + "id" : "acm006473jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006474jsd" ] + }, + "acm006474jsd" : { + "type" : "CodePackage", + "id" : "acm006474jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006471jsd" ] + }, + "acm006475jsd" : { + "type" : "ControlElement", + "id" : "acm006475jsd", + "name" : "StringHelper" + }, + "acm006476jsd" : { + "type" : "ControlElement", + "id" : "acm006476jsd", + "name" : "isEmpty" + }, + "acm006477jsd" : { + "type" : "ControlElement", + "id" : "acm006477jsd", + "name" : "generateStringOfLength" + }, + "acm006478jsd" : { + "type" : "ControlElement", + "id" : "acm006478jsd", + "name" : "isMatching" + }, + "acm006479jsd" : { + "type" : "ControlElement", + "id" : "acm006479jsd", + "name" : "getIndent" + }, + "acm006480jsd" : { + "type" : "ControlElement", + "id" : "acm006480jsd", + "name" : "truncateHead" + }, + "acm006481jsd" : { + "type" : "ControlElement", + "id" : "acm006481jsd", + "name" : "generateSignature" + }, + "acm006482jsd" : { + "type" : "ControlElement", + "id" : "acm006482jsd", + "name" : "isCorrectSignature" + }, + "acm006483jsd" : { + "type" : "ControlElement", + "id" : "acm006483jsd", + "name" : "encrypt" + }, + "acm006484jsd" : { + "type" : "ControlElement", + "id" : "acm006484jsd", + "name" : "decrypt" + }, + "acm006485jsd" : { + "type" : "ControlElement", + "id" : "acm006485jsd", + "name" : "toString" + }, + "acm006486jsd" : { + "type" : "ControlElement", + "id" : "acm006486jsd", + "name" : "toString" + }, + "acm006487jsd" : { + "type" : "ControlElement", + "id" : "acm006487jsd", + "name" : "toDecimalFormatString" + }, + "acm006488jsd" : { + "type" : "ControlElement", + "id" : "acm006488jsd", + "name" : "removeExtraSpace" + }, + "acm006489jsd" : { + "type" : "ControlElement", + "id" : "acm006489jsd", + "name" : "replaceIllegalChars" + }, + "acm006490jsd" : { + "type" : "ControlElement", + "id" : "acm006490jsd", + "name" : "byteArrayToHexString" + }, + "acm006491jsd" : { + "type" : "ControlElement", + "id" : "acm006491jsd", + "name" : "hexStringToByteArray" + }, + "acm006492jsd" : { + "type" : "ControlElement", + "id" : "acm006492jsd", + "name" : "trimIfNotNull" + }, + "acm006493jsd" : { + "type" : "ControlElement", + "id" : "acm006493jsd", + "name" : "convertToEmptyStringIfNull" + }, + "acm006494jsd" : { + "type" : "ClassUnit", + "id" : "acm006494jsd", + "name" : "StringHelper", + "compilationUnitId" : "acm006471jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006188jsd", "acm006435jsd" ], + "content" : [ "acm006475jsd", "acm006476jsd", "acm006477jsd", "acm006478jsd", "acm006479jsd", "acm006480jsd", "acm006481jsd", "acm006482jsd", "acm006483jsd", "acm006484jsd", "acm006485jsd", "acm006486jsd", "acm006487jsd", "acm006488jsd", "acm006489jsd", "acm006490jsd", "acm006491jsd", "acm006492jsd", "acm006493jsd" ] + }, + "acm006495jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006495jsd", + "name" : "TaskWrapper", + "parentId" : "acm006205jsd", + "content" : [ "acm006504jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006496jsd" : { + "type" : "CodePackage", + "id" : "acm006496jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006497jsd" ] + }, + "acm006497jsd" : { + "type" : "CodePackage", + "id" : "acm006497jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006498jsd" ] + }, + "acm006498jsd" : { + "type" : "CodePackage", + "id" : "acm006498jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006495jsd" ] + }, + "acm006499jsd" : { + "type" : "ControlElement", + "id" : "acm006499jsd", + "name" : "TaskWrapper" + }, + "acm006500jsd" : { + "type" : "ControlElement", + "id" : "acm006500jsd", + "name" : "getQueueName" + }, + "acm006501jsd" : { + "type" : "ControlElement", + "id" : "acm006501jsd", + "name" : "getWorkerUrl" + }, + "acm006502jsd" : { + "type" : "ControlElement", + "id" : "acm006502jsd", + "name" : "getParamMap" + }, + "acm006503jsd" : { + "type" : "ControlElement", + "id" : "acm006503jsd", + "name" : "getRequestBody" + }, + "acm006504jsd" : { + "type" : "ClassUnit", + "id" : "acm006504jsd", + "name" : "TaskWrapper", + "compilationUnitId" : "acm006495jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006499jsd", "acm006500jsd", "acm006501jsd", "acm006502jsd", "acm006503jsd" ] + }, + "acm006505jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006505jsd", + "name" : "Templates", + "parentId" : "acm006205jsd", + "content" : [ "acm006511jsd", "acm006512jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006506jsd" : { + "type" : "CodePackage", + "id" : "acm006506jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006507jsd" ] + }, + "acm006507jsd" : { + "type" : "CodePackage", + "id" : "acm006507jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006508jsd" ] + }, + "acm006508jsd" : { + "type" : "CodePackage", + "id" : "acm006508jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006505jsd" ] + }, + "acm006509jsd" : { + "type" : "ControlElement", + "id" : "acm006509jsd", + "name" : "Templates" + }, + "acm006510jsd" : { + "type" : "ControlElement", + "id" : "acm006510jsd", + "name" : "populateTemplate" + }, + "acm006511jsd" : { + "type" : "ClassUnit", + "id" : "acm006511jsd", + "name" : "Templates", + "compilationUnitId" : "acm006505jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006509jsd", "acm006510jsd" ] + }, + "acm006512jsd" : { + "type" : "ClassUnit", + "id" : "acm006512jsd", + "name" : "EmailTemplates", + "compilationUnitId" : "acm006505jsd", + "parentDatatypeId" : "acm006511jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm006513jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006513jsd", + "name" : "TimeHelper", + "parentId" : "acm006205jsd", + "content" : [ "acm006526jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006514jsd" : { + "type" : "CodePackage", + "id" : "acm006514jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006515jsd" ] + }, + "acm006515jsd" : { + "type" : "CodePackage", + "id" : "acm006515jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006516jsd" ] + }, + "acm006516jsd" : { + "type" : "CodePackage", + "id" : "acm006516jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006513jsd" ] + }, + "acm006517jsd" : { + "type" : "ControlElement", + "id" : "acm006517jsd", + "name" : "TimeHelper" + }, + "acm006518jsd" : { + "type" : "ControlElement", + "id" : "acm006518jsd", + "name" : "getInstantNearestHourBefore" + }, + "acm006519jsd" : { + "type" : "ControlElement", + "id" : "acm006519jsd", + "name" : "getInstantDaysOffsetFromNow" + }, + "acm006520jsd" : { + "type" : "ControlElement", + "id" : "acm006520jsd", + "name" : "getInstantDaysOffsetBeforeNow" + }, + "acm006521jsd" : { + "type" : "ControlElement", + "id" : "acm006521jsd", + "name" : "getInstantHoursOffsetFromNow" + }, + "acm006522jsd" : { + "type" : "ControlElement", + "id" : "acm006522jsd", + "name" : "formatInstant" + }, + "acm006523jsd" : { + "type" : "ControlElement", + "id" : "acm006523jsd", + "name" : "getMidnightAdjustedInstantBasedOnZone" + }, + "acm006524jsd" : { + "type" : "ControlElement", + "id" : "acm006524jsd", + "name" : "isSpecialTime" + }, + "acm006525jsd" : { + "type" : "ControlElement", + "id" : "acm006525jsd", + "name" : "parseInstant" + }, + "acm006526jsd" : { + "type" : "ClassUnit", + "id" : "acm006526jsd", + "name" : "TimeHelper", + "compilationUnitId" : "acm006513jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006517jsd", "acm006518jsd", "acm006519jsd", "acm006520jsd", "acm006521jsd", "acm006522jsd", "acm006523jsd", "acm006524jsd", "acm006525jsd" ] + }, + "acm006527jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006527jsd", + "name" : "TzdbResourceZoneRulesProvider", + "parentId" : "acm006205jsd", + "content" : [ "acm006543jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006528jsd" : { + "type" : "CodePackage", + "id" : "acm006528jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006529jsd" ] + }, + "acm006529jsd" : { + "type" : "CodePackage", + "id" : "acm006529jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006530jsd" ] + }, + "acm006530jsd" : { + "type" : "CodePackage", + "id" : "acm006530jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006527jsd" ] + }, + "acm006531jsd" : { + "type" : "ControlElement", + "id" : "acm006531jsd", + "name" : "TzdbResourceZoneRulesProvider" + }, + "acm006532jsd" : { + "type" : "ControlElement", + "id" : "acm006532jsd", + "name" : "provideZoneIds" + }, + "acm006533jsd" : { + "type" : "ControlElement", + "id" : "acm006533jsd", + "name" : "provideRules" + }, + "acm006534jsd" : { + "type" : "ControlElement", + "id" : "acm006534jsd", + "name" : "provideVersions" + }, + "acm006535jsd" : { + "type" : "ControlElement", + "id" : "acm006535jsd", + "name" : "load" + }, + "acm006536jsd" : { + "type" : "ControlElement", + "id" : "acm006536jsd", + "name" : "toString" + }, + "acm006537jsd" : { + "type" : "ControlElement", + "id" : "acm006537jsd", + "name" : "serRead" + }, + "acm006538jsd" : { + "type" : "ControlElement", + "id" : "acm006538jsd", + "name" : "zrulesReadExternal" + }, + "acm006539jsd" : { + "type" : "ControlElement", + "id" : "acm006539jsd", + "name" : "zotReadExternal" + }, + "acm006540jsd" : { + "type" : "ControlElement", + "id" : "acm006540jsd", + "name" : "zotruleReadExternal" + }, + "acm006541jsd" : { + "type" : "ControlElement", + "id" : "acm006541jsd", + "name" : "serReadEpochSec" + }, + "acm006542jsd" : { + "type" : "ControlElement", + "id" : "acm006542jsd", + "name" : "serReadOffset" + }, + "acm006543jsd" : { + "type" : "ClassUnit", + "id" : "acm006543jsd", + "name" : "TzdbResourceZoneRulesProvider", + "compilationUnitId" : "acm006527jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm006531jsd", "acm006532jsd", "acm006533jsd", "acm006534jsd", "acm006535jsd", "acm006536jsd", "acm006537jsd", "acm006538jsd", "acm006539jsd", "acm006540jsd", "acm006541jsd", "acm006542jsd" ] + }, + "acm006544jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006544jsd", + "name" : "Url", + "parentId" : "acm006205jsd", + "content" : [ "acm006554jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006545jsd" : { + "type" : "CodePackage", + "id" : "acm006545jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006546jsd" ] + }, + "acm006546jsd" : { + "type" : "CodePackage", + "id" : "acm006546jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006547jsd" ] + }, + "acm006547jsd" : { + "type" : "CodePackage", + "id" : "acm006547jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006544jsd" ] + }, + "acm006548jsd" : { + "type" : "ControlElement", + "id" : "acm006548jsd", + "name" : "Url" + }, + "acm006549jsd" : { + "type" : "ControlElement", + "id" : "acm006549jsd", + "name" : "getBaseUrl" + }, + "acm006550jsd" : { + "type" : "ControlElement", + "id" : "acm006550jsd", + "name" : "withParam" + }, + "acm006551jsd" : { + "type" : "ControlElement", + "id" : "acm006551jsd", + "name" : "addParamToUrl" + }, + "acm006552jsd" : { + "type" : "ControlElement", + "id" : "acm006552jsd", + "name" : "toString" + }, + "acm006553jsd" : { + "type" : "ControlElement", + "id" : "acm006553jsd", + "name" : "toAbsoluteString" + }, + "acm006554jsd" : { + "type" : "ClassUnit", + "id" : "acm006554jsd", + "name" : "Url", + "compilationUnitId" : "acm006544jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006554jsd" ], + "content" : [ "acm006548jsd", "acm006549jsd", "acm006550jsd", "acm006551jsd", "acm006552jsd", "acm006553jsd" ] + }, + "acm006555jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006555jsd", + "name" : "package-info", + "parentId" : "acm006205jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006556jsd" : { + "type" : "CodePackage", + "id" : "acm006556jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006557jsd" ] + }, + "acm006557jsd" : { + "type" : "CodePackage", + "id" : "acm006557jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm006558jsd" ] + }, + "acm006558jsd" : { + "type" : "CodePackage", + "id" : "acm006558jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm006555jsd" ] + }, + "acm006559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006559jsd", + "name" : "AuthProxy", + "parentId" : "acm006562jsd", + "content" : [ "acm006568jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006560jsd" : { + "type" : "CodePackage", + "id" : "acm006560jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006561jsd" ] + }, + "acm006561jsd" : { + "type" : "CodePackage", + "id" : "acm006561jsd", + "name" : "logic", + "parentId" : "acm001338jsd", + "content" : [ "acm006562jsd", "acm006826jsd", "acm007211jsd" ] + }, + "acm006562jsd" : { + "type" : "CodePackage", + "id" : "acm006562jsd", + "name" : "api", + "parentId" : "acm006561jsd", + "content" : [ "acm006559jsd", "acm006569jsd", "acm006625jsd", "acm006634jsd", "acm006768jsd", "acm006779jsd", "acm006787jsd", "acm006808jsd", "acm006819jsd", "acm011197jsd", "acm011204jsd", "acm011223jsd", "acm011233jsd", "acm011243jsd", "acm011250jsd", "acm011258jsd", "acm011271jsd", "acm011277jsd", "acm011286jsd", "acm011296jsd", "acm011302jsd" ] + }, + "acm006563jsd" : { + "type" : "ControlElement", + "id" : "acm006563jsd", + "name" : "AuthProxy" + }, + "acm006564jsd" : { + "type" : "ControlElement", + "id" : "acm006564jsd", + "name" : "inst" + }, + "acm006565jsd" : { + "type" : "ControlElement", + "id" : "acm006565jsd", + "name" : "getService" + }, + "acm006566jsd" : { + "type" : "ControlElement", + "id" : "acm006566jsd", + "name" : "generateLoginLink" + }, + "acm006567jsd" : { + "type" : "ControlElement", + "id" : "acm006567jsd", + "name" : "isLoginEmailEnabled" + }, + "acm006568jsd" : { + "type" : "ClassUnit", + "id" : "acm006568jsd", + "name" : "AuthProxy", + "compilationUnitId" : "acm006559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006138jsd", "acm006568jsd", "acm007213jsd", "acm007226jsd", "acm007246jsd" ], + "content" : [ "acm006563jsd", "acm006564jsd", "acm006565jsd", "acm006566jsd", "acm006567jsd" ] + }, + "acm006569jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006569jsd", + "name" : "EmailGenerator", + "parentId" : "acm006562jsd", + "content" : [ "acm006624jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006570jsd" : { + "type" : "CodePackage", + "id" : "acm006570jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006571jsd" ] + }, + "acm006571jsd" : { + "type" : "CodePackage", + "id" : "acm006571jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006572jsd" ] + }, + "acm006572jsd" : { + "type" : "CodePackage", + "id" : "acm006572jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006569jsd" ] + }, + "acm006573jsd" : { + "type" : "ControlElement", + "id" : "acm006573jsd", + "name" : "EmailGenerator" + }, + "acm006574jsd" : { + "type" : "ControlElement", + "id" : "acm006574jsd", + "name" : "inst" + }, + "acm006575jsd" : { + "type" : "ControlElement", + "id" : "acm006575jsd", + "name" : "generateFeedbackSessionOpeningEmails" + }, + "acm006576jsd" : { + "type" : "ControlElement", + "id" : "acm006576jsd", + "name" : "generateFeedbackSessionOpeningOrClosingEmails" + }, + "acm006577jsd" : { + "type" : "ControlElement", + "id" : "acm006577jsd", + "name" : "generateFeedbackSessionOpeningSoonEmails" + }, + "acm006578jsd" : { + "type" : "ControlElement", + "id" : "acm006578jsd", + "name" : "generateFeedbackSessionOpeningSoonOrClosedEmails" + }, + "acm006579jsd" : { + "type" : "ControlElement", + "id" : "acm006579jsd", + "name" : "generateFeedbackSessionEmailBaseForCoowner" + }, + "acm006580jsd" : { + "type" : "ControlElement", + "id" : "acm006580jsd", + "name" : "fillUpEditFeedbackSessionDetailsFragment" + }, + "acm006581jsd" : { + "type" : "ControlElement", + "id" : "acm006581jsd", + "name" : "fillUpViewResponsesDetailsFragment" + }, + "acm006582jsd" : { + "type" : "ControlElement", + "id" : "acm006582jsd", + "name" : "fillUpJoinCourseBeforeEditFeedbackSessionDetailsFragment" + }, + "acm006583jsd" : { + "type" : "ControlElement", + "id" : "acm006583jsd", + "name" : "generateFeedbackSessionReminderEmails" + }, + "acm006584jsd" : { + "type" : "ControlElement", + "id" : "acm006584jsd", + "name" : "generateFeedbackSessionSummaryOfCourse" + }, + "acm006585jsd" : { + "type" : "ControlElement", + "id" : "acm006585jsd", + "name" : "generateSessionLinksRecoveryEmailForStudent" + }, + "acm006586jsd" : { + "type" : "ControlElement", + "id" : "acm006586jsd", + "name" : "generateSessionLinksRecoveryEmailForNonExistentStudent" + }, + "acm006587jsd" : { + "type" : "ControlElement", + "id" : "acm006587jsd", + "name" : "generateSessionLinksRecoveryEmailForExistingStudent" + }, + "acm006588jsd" : { + "type" : "ControlElement", + "id" : "acm006588jsd", + "name" : "generateFeedbackSessionClosingEmails" + }, + "acm006589jsd" : { + "type" : "ControlElement", + "id" : "acm006589jsd", + "name" : "generateFeedbackSessionClosedEmails" + }, + "acm006590jsd" : { + "type" : "ControlElement", + "id" : "acm006590jsd", + "name" : "generateFeedbackSessionClosingWithExtensionEmails" + }, + "acm006591jsd" : { + "type" : "ControlElement", + "id" : "acm006591jsd", + "name" : "generateFeedbackSessionPublishedEmails" + }, + "acm006592jsd" : { + "type" : "ControlElement", + "id" : "acm006592jsd", + "name" : "generateFeedbackSessionPublishedEmails" + }, + "acm006593jsd" : { + "type" : "ControlElement", + "id" : "acm006593jsd", + "name" : "generateFeedbackSessionUnpublishedEmails" + }, + "acm006594jsd" : { + "type" : "ControlElement", + "id" : "acm006594jsd", + "name" : "generateFeedbackSessionPublishedOrUnpublishedEmails" + }, + "acm006595jsd" : { + "type" : "ControlElement", + "id" : "acm006595jsd", + "name" : "generateFeedbackSessionPublishedOrUnpublishedEmails" + }, + "acm006596jsd" : { + "type" : "ControlElement", + "id" : "acm006596jsd", + "name" : "generateDeadlineGrantedEmails" + }, + "acm006597jsd" : { + "type" : "ControlElement", + "id" : "acm006597jsd", + "name" : "generateDeadlineUpdatedEmails" + }, + "acm006598jsd" : { + "type" : "ControlElement", + "id" : "acm006598jsd", + "name" : "generateDeadlineRevokedEmails" + }, + "acm006599jsd" : { + "type" : "ControlElement", + "id" : "acm006599jsd", + "name" : "generateDeadlineExtensionEmail" + }, + "acm006600jsd" : { + "type" : "ControlElement", + "id" : "acm006600jsd", + "name" : "generateFeedbackSessionEmailBases" + }, + "acm006601jsd" : { + "type" : "ControlElement", + "id" : "acm006601jsd", + "name" : "generateFeedbackSessionEmailBaseForStudents" + }, + "acm006602jsd" : { + "type" : "ControlElement", + "id" : "acm006602jsd", + "name" : "generateFeedbackSessionEmailBaseForInstructors" + }, + "acm006603jsd" : { + "type" : "ControlElement", + "id" : "acm006603jsd", + "name" : "generateFeedbackSessionEmailBaseForNotifiedInstructors" + }, + "acm006604jsd" : { + "type" : "ControlElement", + "id" : "acm006604jsd", + "name" : "isYetToJoinCourse" + }, + "acm006605jsd" : { + "type" : "ControlElement", + "id" : "acm006605jsd", + "name" : "isYetToJoinCourse" + }, + "acm006606jsd" : { + "type" : "ControlElement", + "id" : "acm006606jsd", + "name" : "generateLoginEmail" + }, + "acm006607jsd" : { + "type" : "ControlElement", + "id" : "acm006607jsd", + "name" : "generateNewInstructorAccountJoinEmail" + }, + "acm006608jsd" : { + "type" : "ControlElement", + "id" : "acm006608jsd", + "name" : "generateStudentCourseJoinEmail" + }, + "acm006609jsd" : { + "type" : "ControlElement", + "id" : "acm006609jsd", + "name" : "generateStudentCourseRejoinEmailAfterGoogleIdReset" + }, + "acm006610jsd" : { + "type" : "ControlElement", + "id" : "acm006610jsd", + "name" : "generateInstructorCourseJoinEmail" + }, + "acm006611jsd" : { + "type" : "ControlElement", + "id" : "acm006611jsd", + "name" : "generateInstructorCourseRejoinEmailAfterGoogleIdReset" + }, + "acm006612jsd" : { + "type" : "ControlElement", + "id" : "acm006612jsd", + "name" : "generateUserCourseRegisteredEmail" + }, + "acm006613jsd" : { + "type" : "ControlElement", + "id" : "acm006613jsd", + "name" : "fillUpStudentJoinFragment" + }, + "acm006614jsd" : { + "type" : "ControlElement", + "id" : "acm006614jsd", + "name" : "fillUpStudentRejoinAfterGoogleIdResetFragment" + }, + "acm006615jsd" : { + "type" : "ControlElement", + "id" : "acm006615jsd", + "name" : "getInstructorCourseJoinUrl" + }, + "acm006616jsd" : { + "type" : "ControlElement", + "id" : "acm006616jsd", + "name" : "fillUpInstructorJoinFragment" + }, + "acm006617jsd" : { + "type" : "ControlElement", + "id" : "acm006617jsd", + "name" : "fillUpInstructorRejoinAfterGoogleIdResetFragment" + }, + "acm006618jsd" : { + "type" : "ControlElement", + "id" : "acm006618jsd", + "name" : "fillUpInstructorPreamble" + }, + "acm006619jsd" : { + "type" : "ControlElement", + "id" : "acm006619jsd", + "name" : "generateCompiledLogsEmail" + }, + "acm006620jsd" : { + "type" : "ControlElement", + "id" : "acm006620jsd", + "name" : "generateSevereErrorLogLine" + }, + "acm006621jsd" : { + "type" : "ControlElement", + "id" : "acm006621jsd", + "name" : "getEmptyEmailAddressedToEmail" + }, + "acm006622jsd" : { + "type" : "ControlElement", + "id" : "acm006622jsd", + "name" : "generateCoOwnersEmailsLine" + }, + "acm006623jsd" : { + "type" : "ControlElement", + "id" : "acm006623jsd", + "name" : "getAdditionalContactInformationFragment" + }, + "acm006624jsd" : { + "type" : "ClassUnit", + "id" : "acm006624jsd", + "name" : "EmailGenerator", + "compilationUnitId" : "acm006569jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004215jsd", "acm004486jsd", "acm004598jsd", "acm004662jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006266jsd", "acm006290jsd", "acm006624jsd", "acm006882jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd" ], + "content" : [ "acm006573jsd", "acm006574jsd", "acm006575jsd", "acm006576jsd", "acm006577jsd", "acm006578jsd", "acm006579jsd", "acm006580jsd", "acm006581jsd", "acm006582jsd", "acm006583jsd", "acm006584jsd", "acm006585jsd", "acm006586jsd", "acm006587jsd", "acm006588jsd", "acm006589jsd", "acm006590jsd", "acm006591jsd", "acm006592jsd", "acm006593jsd", "acm006594jsd", "acm006595jsd", "acm006596jsd", "acm006597jsd", "acm006598jsd", "acm006599jsd", "acm006600jsd", "acm006601jsd", "acm006602jsd", "acm006603jsd", "acm006604jsd", "acm006605jsd", "acm006606jsd", "acm006607jsd", "acm006608jsd", "acm006609jsd", "acm006610jsd", "acm006611jsd", "acm006612jsd", "acm006613jsd", "acm006614jsd", "acm006615jsd", "acm006616jsd", "acm006617jsd", "acm006618jsd", "acm006619jsd", "acm006620jsd", "acm006621jsd", "acm006622jsd", "acm006623jsd" ] + }, + "acm006625jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006625jsd", + "name" : "EmailSender", + "parentId" : "acm006562jsd", + "content" : [ "acm006633jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006626jsd" : { + "type" : "CodePackage", + "id" : "acm006626jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006627jsd" ] + }, + "acm006627jsd" : { + "type" : "CodePackage", + "id" : "acm006627jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006628jsd" ] + }, + "acm006628jsd" : { + "type" : "CodePackage", + "id" : "acm006628jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006625jsd" ] + }, + "acm006629jsd" : { + "type" : "ControlElement", + "id" : "acm006629jsd", + "name" : "EmailSender" + }, + "acm006630jsd" : { + "type" : "ControlElement", + "id" : "acm006630jsd", + "name" : "inst" + }, + "acm006631jsd" : { + "type" : "ControlElement", + "id" : "acm006631jsd", + "name" : "sendEmail" + }, + "acm006632jsd" : { + "type" : "ControlElement", + "id" : "acm006632jsd", + "name" : "isTestingAccount" + }, + "acm006633jsd" : { + "type" : "ClassUnit", + "id" : "acm006633jsd", + "name" : "EmailSender", + "compilationUnitId" : "acm006625jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005512jsd", "acm006150jsd", "acm006259jsd", "acm006290jsd", "acm006435jsd", "acm006633jsd", "acm007220jsd", "acm007233jsd", "acm007316jsd", "acm007323jsd", "acm007336jsd" ], + "content" : [ "acm006629jsd", "acm006630jsd", "acm006631jsd", "acm006632jsd" ] + }, + "acm006634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006634jsd", + "name" : "Logic", + "parentId" : "acm006562jsd", + "content" : [ "acm006767jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006635jsd" : { + "type" : "CodePackage", + "id" : "acm006635jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006636jsd" ] + }, + "acm006636jsd" : { + "type" : "CodePackage", + "id" : "acm006636jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006637jsd" ] + }, + "acm006637jsd" : { + "type" : "CodePackage", + "id" : "acm006637jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006634jsd" ] + }, + "acm006638jsd" : { + "type" : "ControlElement", + "id" : "acm006638jsd", + "name" : "Logic" + }, + "acm006639jsd" : { + "type" : "ControlElement", + "id" : "acm006639jsd", + "name" : "inst" + }, + "acm006640jsd" : { + "type" : "ControlElement", + "id" : "acm006640jsd", + "name" : "getAccount" + }, + "acm006641jsd" : { + "type" : "ControlElement", + "id" : "acm006641jsd", + "name" : "getAccountsForEmail" + }, + "acm006642jsd" : { + "type" : "ControlElement", + "id" : "acm006642jsd", + "name" : "getReadNotificationsId" + }, + "acm006643jsd" : { + "type" : "ControlElement", + "id" : "acm006643jsd", + "name" : "updateReadNotifications" + }, + "acm006644jsd" : { + "type" : "ControlElement", + "id" : "acm006644jsd", + "name" : "getCourseInstitute" + }, + "acm006645jsd" : { + "type" : "ControlElement", + "id" : "acm006645jsd", + "name" : "getActiveNotificationsByTargetUser" + }, + "acm006646jsd" : { + "type" : "ControlElement", + "id" : "acm006646jsd", + "name" : "getAllNotifications" + }, + "acm006647jsd" : { + "type" : "ControlElement", + "id" : "acm006647jsd", + "name" : "getNotification" + }, + "acm006648jsd" : { + "type" : "ControlElement", + "id" : "acm006648jsd", + "name" : "createNotification" + }, + "acm006649jsd" : { + "type" : "ControlElement", + "id" : "acm006649jsd", + "name" : "updateNotification" + }, + "acm006650jsd" : { + "type" : "ControlElement", + "id" : "acm006650jsd", + "name" : "deleteNotification" + }, + "acm006651jsd" : { + "type" : "ControlElement", + "id" : "acm006651jsd", + "name" : "deleteAccountCascade" + }, + "acm006652jsd" : { + "type" : "ControlElement", + "id" : "acm006652jsd", + "name" : "verifyAllInstructorsExistInCourse" + }, + "acm006653jsd" : { + "type" : "ControlElement", + "id" : "acm006653jsd", + "name" : "createInstructor" + }, + "acm006654jsd" : { + "type" : "ControlElement", + "id" : "acm006654jsd", + "name" : "searchInstructorsInWholeSystem" + }, + "acm006655jsd" : { + "type" : "ControlElement", + "id" : "acm006655jsd", + "name" : "putInstructorDocument" + }, + "acm006656jsd" : { + "type" : "ControlElement", + "id" : "acm006656jsd", + "name" : "updateToEnsureValidityOfInstructorsForTheCourse" + }, + "acm006657jsd" : { + "type" : "ControlElement", + "id" : "acm006657jsd", + "name" : "getInstructorForEmail" + }, + "acm006658jsd" : { + "type" : "ControlElement", + "id" : "acm006658jsd", + "name" : "getInstructorById" + }, + "acm006659jsd" : { + "type" : "ControlElement", + "id" : "acm006659jsd", + "name" : "getInstructorForGoogleId" + }, + "acm006660jsd" : { + "type" : "ControlElement", + "id" : "acm006660jsd", + "name" : "getInstructorForRegistrationKey" + }, + "acm006661jsd" : { + "type" : "ControlElement", + "id" : "acm006661jsd", + "name" : "getInstructorsForGoogleId" + }, + "acm006662jsd" : { + "type" : "ControlElement", + "id" : "acm006662jsd", + "name" : "getInstructorsForGoogleId" + }, + "acm006663jsd" : { + "type" : "ControlElement", + "id" : "acm006663jsd", + "name" : "getInstructorsForCourse" + }, + "acm006664jsd" : { + "type" : "ControlElement", + "id" : "acm006664jsd", + "name" : "getAllOngoingSessions" + }, + "acm006665jsd" : { + "type" : "ControlElement", + "id" : "acm006665jsd", + "name" : "updateInstructorCascade" + }, + "acm006666jsd" : { + "type" : "ControlElement", + "id" : "acm006666jsd", + "name" : "updateInstructor" + }, + "acm006667jsd" : { + "type" : "ControlElement", + "id" : "acm006667jsd", + "name" : "joinCourseForInstructor" + }, + "acm006668jsd" : { + "type" : "ControlElement", + "id" : "acm006668jsd", + "name" : "deleteInstructorCascade" + }, + "acm006669jsd" : { + "type" : "ControlElement", + "id" : "acm006669jsd", + "name" : "createCourseAndInstructor" + }, + "acm006670jsd" : { + "type" : "ControlElement", + "id" : "acm006670jsd", + "name" : "getCourse" + }, + "acm006671jsd" : { + "type" : "ControlElement", + "id" : "acm006671jsd", + "name" : "getCoursesForStudentAccount" + }, + "acm006672jsd" : { + "type" : "ControlElement", + "id" : "acm006672jsd", + "name" : "getCoursesForInstructor" + }, + "acm006673jsd" : { + "type" : "ControlElement", + "id" : "acm006673jsd", + "name" : "getSoftDeletedCoursesForInstructors" + }, + "acm006674jsd" : { + "type" : "ControlElement", + "id" : "acm006674jsd", + "name" : "updateCourseCascade" + }, + "acm006675jsd" : { + "type" : "ControlElement", + "id" : "acm006675jsd", + "name" : "setArchiveStatusOfInstructor" + }, + "acm006676jsd" : { + "type" : "ControlElement", + "id" : "acm006676jsd", + "name" : "deleteCourseCascade" + }, + "acm006677jsd" : { + "type" : "ControlElement", + "id" : "acm006677jsd", + "name" : "moveCourseToRecycleBin" + }, + "acm006678jsd" : { + "type" : "ControlElement", + "id" : "acm006678jsd", + "name" : "restoreCourseFromRecycleBin" + }, + "acm006679jsd" : { + "type" : "ControlElement", + "id" : "acm006679jsd", + "name" : "searchStudents" + }, + "acm006680jsd" : { + "type" : "ControlElement", + "id" : "acm006680jsd", + "name" : "searchStudentsInWholeSystem" + }, + "acm006681jsd" : { + "type" : "ControlElement", + "id" : "acm006681jsd", + "name" : "getStudentForRegistrationKey" + }, + "acm006682jsd" : { + "type" : "ControlElement", + "id" : "acm006682jsd", + "name" : "getStudentForEmail" + }, + "acm006683jsd" : { + "type" : "ControlElement", + "id" : "acm006683jsd", + "name" : "getStudentForGoogleId" + }, + "acm006684jsd" : { + "type" : "ControlElement", + "id" : "acm006684jsd", + "name" : "getStudentsForGoogleId" + }, + "acm006685jsd" : { + "type" : "ControlElement", + "id" : "acm006685jsd", + "name" : "getStudentsForCourse" + }, + "acm006686jsd" : { + "type" : "ControlElement", + "id" : "acm006686jsd", + "name" : "getSectionNamesForCourse" + }, + "acm006687jsd" : { + "type" : "ControlElement", + "id" : "acm006687jsd", + "name" : "populateFieldsToGenerateInQuestion" + }, + "acm006688jsd" : { + "type" : "ControlElement", + "id" : "acm006688jsd", + "name" : "resetStudentGoogleId" + }, + "acm006689jsd" : { + "type" : "ControlElement", + "id" : "acm006689jsd", + "name" : "regenerateInstructorRegistrationKey" + }, + "acm006690jsd" : { + "type" : "ControlElement", + "id" : "acm006690jsd", + "name" : "regenerateStudentRegistrationKey" + }, + "acm006691jsd" : { + "type" : "ControlElement", + "id" : "acm006691jsd", + "name" : "resetInstructorGoogleId" + }, + "acm006692jsd" : { + "type" : "ControlElement", + "id" : "acm006692jsd", + "name" : "createStudent" + }, + "acm006693jsd" : { + "type" : "ControlElement", + "id" : "acm006693jsd", + "name" : "updateStudentCascade" + }, + "acm006694jsd" : { + "type" : "ControlElement", + "id" : "acm006694jsd", + "name" : "joinCourseForStudent" + }, + "acm006695jsd" : { + "type" : "ControlElement", + "id" : "acm006695jsd", + "name" : "getUnregisteredStudentsForCourse" + }, + "acm006696jsd" : { + "type" : "ControlElement", + "id" : "acm006696jsd", + "name" : "isFeedbackSessionAttemptedByInstructor" + }, + "acm006697jsd" : { + "type" : "ControlElement", + "id" : "acm006697jsd", + "name" : "isFeedbackSessionAttemptedByStudent" + }, + "acm006698jsd" : { + "type" : "ControlElement", + "id" : "acm006698jsd", + "name" : "deleteStudentCascade" + }, + "acm006699jsd" : { + "type" : "ControlElement", + "id" : "acm006699jsd", + "name" : "deleteStudentsInCourseCascade" + }, + "acm006700jsd" : { + "type" : "ControlElement", + "id" : "acm006700jsd", + "name" : "validateSectionsAndTeams" + }, + "acm006701jsd" : { + "type" : "ControlElement", + "id" : "acm006701jsd", + "name" : "getStudentsForTeam" + }, + "acm006702jsd" : { + "type" : "ControlElement", + "id" : "acm006702jsd", + "name" : "putStudentDocument" + }, + "acm006703jsd" : { + "type" : "ControlElement", + "id" : "acm006703jsd", + "name" : "createFeedbackSession" + }, + "acm006704jsd" : { + "type" : "ControlElement", + "id" : "acm006704jsd", + "name" : "getFeedbackSession" + }, + "acm006705jsd" : { + "type" : "ControlElement", + "id" : "acm006705jsd", + "name" : "getFeedbackSessionFromRecycleBin" + }, + "acm006706jsd" : { + "type" : "ControlElement", + "id" : "acm006706jsd", + "name" : "getFeedbackSessionsForCourse" + }, + "acm006707jsd" : { + "type" : "ControlElement", + "id" : "acm006707jsd", + "name" : "getExpectedTotalSubmission" + }, + "acm006708jsd" : { + "type" : "ControlElement", + "id" : "acm006708jsd", + "name" : "getActualTotalSubmission" + }, + "acm006709jsd" : { + "type" : "ControlElement", + "id" : "acm006709jsd", + "name" : "getFeedbackSessionsListForInstructor" + }, + "acm006710jsd" : { + "type" : "ControlElement", + "id" : "acm006710jsd", + "name" : "getSoftDeletedFeedbackSessionsListForInstructors" + }, + "acm006711jsd" : { + "type" : "ControlElement", + "id" : "acm006711jsd", + "name" : "getRecipientsOfQuestion" + }, + "acm006712jsd" : { + "type" : "ControlElement", + "id" : "acm006712jsd", + "name" : "getFeedbackQuestion" + }, + "acm006713jsd" : { + "type" : "ControlElement", + "id" : "acm006713jsd", + "name" : "getFeedbackQuestionsForStudents" + }, + "acm006714jsd" : { + "type" : "ControlElement", + "id" : "acm006714jsd", + "name" : "getFeedbackQuestionsForInstructors" + }, + "acm006715jsd" : { + "type" : "ControlElement", + "id" : "acm006715jsd", + "name" : "updateFeedbackSession" + }, + "acm006716jsd" : { + "type" : "ControlElement", + "id" : "acm006716jsd", + "name" : "publishFeedbackSession" + }, + "acm006717jsd" : { + "type" : "ControlElement", + "id" : "acm006717jsd", + "name" : "unpublishFeedbackSession" + }, + "acm006718jsd" : { + "type" : "ControlElement", + "id" : "acm006718jsd", + "name" : "deleteFeedbackSessionCascade" + }, + "acm006719jsd" : { + "type" : "ControlElement", + "id" : "acm006719jsd", + "name" : "moveFeedbackSessionToRecycleBin" + }, + "acm006720jsd" : { + "type" : "ControlElement", + "id" : "acm006720jsd", + "name" : "restoreFeedbackSessionFromRecycleBin" + }, + "acm006721jsd" : { + "type" : "ControlElement", + "id" : "acm006721jsd", + "name" : "createFeedbackQuestion" + }, + "acm006722jsd" : { + "type" : "ControlElement", + "id" : "acm006722jsd", + "name" : "updateFeedbackQuestionCascade" + }, + "acm006723jsd" : { + "type" : "ControlElement", + "id" : "acm006723jsd", + "name" : "deleteFeedbackQuestionCascade" + }, + "acm006724jsd" : { + "type" : "ControlElement", + "id" : "acm006724jsd", + "name" : "areThereResponsesForQuestion" + }, + "acm006725jsd" : { + "type" : "ControlElement", + "id" : "acm006725jsd", + "name" : "getFeedbackQuestionsForSession" + }, + "acm006726jsd" : { + "type" : "ControlElement", + "id" : "acm006726jsd", + "name" : "getGiverSetThatAnswerFeedbackSession" + }, + "acm006727jsd" : { + "type" : "ControlElement", + "id" : "acm006727jsd", + "name" : "getSessionResultsForCourse" + }, + "acm006728jsd" : { + "type" : "ControlElement", + "id" : "acm006728jsd", + "name" : "getSessionResultsForUser" + }, + "acm006729jsd" : { + "type" : "ControlElement", + "id" : "acm006729jsd", + "name" : "getFeedbackResponsesFromStudentOrTeamForQuestion" + }, + "acm006730jsd" : { + "type" : "ControlElement", + "id" : "acm006730jsd", + "name" : "getFeedbackResponsesFromInstructorForQuestion" + }, + "acm006731jsd" : { + "type" : "ControlElement", + "id" : "acm006731jsd", + "name" : "getFeedbackResponse" + }, + "acm006732jsd" : { + "type" : "ControlElement", + "id" : "acm006732jsd", + "name" : "createFeedbackResponse" + }, + "acm006733jsd" : { + "type" : "ControlElement", + "id" : "acm006733jsd", + "name" : "hasResponsesForCourse" + }, + "acm006734jsd" : { + "type" : "ControlElement", + "id" : "acm006734jsd", + "name" : "updateFeedbackResponseCascade" + }, + "acm006735jsd" : { + "type" : "ControlElement", + "id" : "acm006735jsd", + "name" : "deleteFeedbackResponseCascade" + }, + "acm006736jsd" : { + "type" : "ControlElement", + "id" : "acm006736jsd", + "name" : "createFeedbackResponseComment" + }, + "acm006737jsd" : { + "type" : "ControlElement", + "id" : "acm006737jsd", + "name" : "getFeedbackResponseComment" + }, + "acm006738jsd" : { + "type" : "ControlElement", + "id" : "acm006738jsd", + "name" : "getFeedbackResponseCommentForResponseFromParticipant" + }, + "acm006739jsd" : { + "type" : "ControlElement", + "id" : "acm006739jsd", + "name" : "updateFeedbackResponseComment" + }, + "acm006740jsd" : { + "type" : "ControlElement", + "id" : "acm006740jsd", + "name" : "deleteFeedbackResponseComment" + }, + "acm006741jsd" : { + "type" : "ControlElement", + "id" : "acm006741jsd", + "name" : "getFeedbackSessionsClosedWithinThePastHour" + }, + "acm006742jsd" : { + "type" : "ControlElement", + "id" : "acm006742jsd", + "name" : "getFeedbackSessionsClosingWithinTimeLimit" + }, + "acm006743jsd" : { + "type" : "ControlElement", + "id" : "acm006743jsd", + "name" : "getFeedbackSessionsOpeningWithinTimeLimit" + }, + "acm006744jsd" : { + "type" : "ControlElement", + "id" : "acm006744jsd", + "name" : "getFeedbackSessionsWhichNeedAutomatedPublishedEmailsToBeSent" + }, + "acm006745jsd" : { + "type" : "ControlElement", + "id" : "acm006745jsd", + "name" : "getFeedbackSessionsWhichNeedOpenEmailsToBeSent" + }, + "acm006746jsd" : { + "type" : "ControlElement", + "id" : "acm006746jsd", + "name" : "getSectionForTeam" + }, + "acm006747jsd" : { + "type" : "ControlElement", + "id" : "acm006747jsd", + "name" : "persistDataBundle" + }, + "acm006748jsd" : { + "type" : "ControlElement", + "id" : "acm006748jsd", + "name" : "removeDataBundle" + }, + "acm006749jsd" : { + "type" : "ControlElement", + "id" : "acm006749jsd", + "name" : "putDocuments" + }, + "acm006750jsd" : { + "type" : "ControlElement", + "id" : "acm006750jsd", + "name" : "verifyAllStudentsExistInCourse" + }, + "acm006751jsd" : { + "type" : "ControlElement", + "id" : "acm006751jsd", + "name" : "isStudentsInSameTeam" + }, + "acm006752jsd" : { + "type" : "ControlElement", + "id" : "acm006752jsd", + "name" : "createAccountRequest" + }, + "acm006753jsd" : { + "type" : "ControlElement", + "id" : "acm006753jsd", + "name" : "updateAccountRequest" + }, + "acm006754jsd" : { + "type" : "ControlElement", + "id" : "acm006754jsd", + "name" : "deleteAccountRequest" + }, + "acm006755jsd" : { + "type" : "ControlElement", + "id" : "acm006755jsd", + "name" : "getAccountRequestForRegistrationKey" + }, + "acm006756jsd" : { + "type" : "ControlElement", + "id" : "acm006756jsd", + "name" : "getAccountRequest" + }, + "acm006757jsd" : { + "type" : "ControlElement", + "id" : "acm006757jsd", + "name" : "searchAccountRequestsInWholeSystem" + }, + "acm006758jsd" : { + "type" : "ControlElement", + "id" : "acm006758jsd", + "name" : "putAccountRequestDocument" + }, + "acm006759jsd" : { + "type" : "ControlElement", + "id" : "acm006759jsd", + "name" : "getUsageStatisticsForTimeRange" + }, + "acm006760jsd" : { + "type" : "ControlElement", + "id" : "acm006760jsd", + "name" : "calculateEntitiesStatisticsForTimeRange" + }, + "acm006761jsd" : { + "type" : "ControlElement", + "id" : "acm006761jsd", + "name" : "createUsageStatistics" + }, + "acm006762jsd" : { + "type" : "ControlElement", + "id" : "acm006762jsd", + "name" : "updateDeadlineExtension" + }, + "acm006763jsd" : { + "type" : "ControlElement", + "id" : "acm006763jsd", + "name" : "createDeadlineExtension" + }, + "acm006764jsd" : { + "type" : "ControlElement", + "id" : "acm006764jsd", + "name" : "deleteDeadlineExtension" + }, + "acm006765jsd" : { + "type" : "ControlElement", + "id" : "acm006765jsd", + "name" : "getDeadlineExtension" + }, + "acm006766jsd" : { + "type" : "ControlElement", + "id" : "acm006766jsd", + "name" : "getDeadlineExtensionsPossiblyNeedingClosingEmail" + }, + "acm006767jsd" : { + "type" : "ClassUnit", + "id" : "acm006767jsd", + "name" : "Logic", + "compilationUnitId" : "acm006634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004239jsd", "acm004248jsd", "acm004351jsd", "acm004383jsd", "acm004486jsd", "acm004539jsd", "acm004549jsd", "acm004598jsd", "acm004607jsd", "acm004662jsd", "acm004678jsd", "acm004788jsd", "acm004799jsd", "acm004871jsd", "acm004885jsd", "acm004971jsd", "acm004989jsd", "acm005112jsd", "acm005129jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm005329jsd", "acm005339jsd", "acm005412jsd", "acm005423jsd", "acm005469jsd", "acm006156jsd", "acm006162jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm006197jsd", "acm006767jsd", "acm006838jsd", "acm006857jsd", "acm006882jsd", "acm006908jsd", "acm006923jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007148jsd", "acm007192jsd", "acm007203jsd" ], + "content" : [ "acm006638jsd", "acm006639jsd", "acm006640jsd", "acm006641jsd", "acm006642jsd", "acm006643jsd", "acm006644jsd", "acm006645jsd", "acm006646jsd", "acm006647jsd", "acm006648jsd", "acm006649jsd", "acm006650jsd", "acm006651jsd", "acm006652jsd", "acm006653jsd", "acm006654jsd", "acm006655jsd", "acm006656jsd", "acm006657jsd", "acm006658jsd", "acm006659jsd", "acm006660jsd", "acm006661jsd", "acm006662jsd", "acm006663jsd", "acm006664jsd", "acm006665jsd", "acm006666jsd", "acm006667jsd", "acm006668jsd", "acm006669jsd", "acm006670jsd", "acm006671jsd", "acm006672jsd", "acm006673jsd", "acm006674jsd", "acm006675jsd", "acm006676jsd", "acm006677jsd", "acm006678jsd", "acm006679jsd", "acm006680jsd", "acm006681jsd", "acm006682jsd", "acm006683jsd", "acm006684jsd", "acm006685jsd", "acm006686jsd", "acm006687jsd", "acm006688jsd", "acm006689jsd", "acm006690jsd", "acm006691jsd", "acm006692jsd", "acm006693jsd", "acm006694jsd", "acm006695jsd", "acm006696jsd", "acm006697jsd", "acm006698jsd", "acm006699jsd", "acm006700jsd", "acm006701jsd", "acm006702jsd", "acm006703jsd", "acm006704jsd", "acm006705jsd", "acm006706jsd", "acm006707jsd", "acm006708jsd", "acm006709jsd", "acm006710jsd", "acm006711jsd", "acm006712jsd", "acm006713jsd", "acm006714jsd", "acm006715jsd", "acm006716jsd", "acm006717jsd", "acm006718jsd", "acm006719jsd", "acm006720jsd", "acm006721jsd", "acm006722jsd", "acm006723jsd", "acm006724jsd", "acm006725jsd", "acm006726jsd", "acm006727jsd", "acm006728jsd", "acm006729jsd", "acm006730jsd", "acm006731jsd", "acm006732jsd", "acm006733jsd", "acm006734jsd", "acm006735jsd", "acm006736jsd", "acm006737jsd", "acm006738jsd", "acm006739jsd", "acm006740jsd", "acm006741jsd", "acm006742jsd", "acm006743jsd", "acm006744jsd", "acm006745jsd", "acm006746jsd", "acm006747jsd", "acm006748jsd", "acm006749jsd", "acm006750jsd", "acm006751jsd", "acm006752jsd", "acm006753jsd", "acm006754jsd", "acm006755jsd", "acm006756jsd", "acm006757jsd", "acm006758jsd", "acm006759jsd", "acm006760jsd", "acm006761jsd", "acm006762jsd", "acm006763jsd", "acm006764jsd", "acm006765jsd", "acm006766jsd" ] + }, + "acm006768jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006768jsd", + "name" : "LogsProcessor", + "parentId" : "acm006562jsd", + "content" : [ "acm006778jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006769jsd" : { + "type" : "CodePackage", + "id" : "acm006769jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006770jsd" ] + }, + "acm006770jsd" : { + "type" : "CodePackage", + "id" : "acm006770jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006771jsd" ] + }, + "acm006771jsd" : { + "type" : "CodePackage", + "id" : "acm006771jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006768jsd" ] + }, + "acm006772jsd" : { + "type" : "ControlElement", + "id" : "acm006772jsd", + "name" : "LogsProcessor" + }, + "acm006773jsd" : { + "type" : "ControlElement", + "id" : "acm006773jsd", + "name" : "inst" + }, + "acm006774jsd" : { + "type" : "ControlElement", + "id" : "acm006774jsd", + "name" : "queryLogs" + }, + "acm006775jsd" : { + "type" : "ControlElement", + "id" : "acm006775jsd", + "name" : "createFeedbackSessionLog" + }, + "acm006776jsd" : { + "type" : "ControlElement", + "id" : "acm006776jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm006777jsd" : { + "type" : "ControlElement", + "id" : "acm006777jsd", + "name" : "getNumberOfLogsForEvent" + }, + "acm006778jsd" : { + "type" : "ClassUnit", + "id" : "acm006778jsd", + "name" : "LogsProcessor", + "compilationUnitId" : "acm006768jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004359jsd", "acm005572jsd", "acm005603jsd", "acm005651jsd", "acm006778jsd", "acm007262jsd", "acm007294jsd", "acm007309jsd" ], + "content" : [ "acm006772jsd", "acm006773jsd", "acm006774jsd", "acm006775jsd", "acm006776jsd", "acm006777jsd" ] + }, + "acm006779jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006779jsd", + "name" : "RecaptchaVerifier", + "parentId" : "acm006562jsd", + "content" : [ "acm006786jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006780jsd" : { + "type" : "CodePackage", + "id" : "acm006780jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006781jsd" ] + }, + "acm006781jsd" : { + "type" : "CodePackage", + "id" : "acm006781jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006782jsd" ] + }, + "acm006782jsd" : { + "type" : "CodePackage", + "id" : "acm006782jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006779jsd" ] + }, + "acm006783jsd" : { + "type" : "ControlElement", + "id" : "acm006783jsd", + "name" : "RecaptchaVerifier" + }, + "acm006784jsd" : { + "type" : "ControlElement", + "id" : "acm006784jsd", + "name" : "inst" + }, + "acm006785jsd" : { + "type" : "ControlElement", + "id" : "acm006785jsd", + "name" : "isVerificationSuccessful" + }, + "acm006786jsd" : { + "type" : "ClassUnit", + "id" : "acm006786jsd", + "name" : "RecaptchaVerifier", + "compilationUnitId" : "acm006779jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006786jsd", "acm007239jsd", "acm007281jsd", "acm007329jsd" ], + "content" : [ "acm006783jsd", "acm006784jsd", "acm006785jsd" ] + }, + "acm006787jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006787jsd", + "name" : "TaskQueuer", + "parentId" : "acm006562jsd", + "content" : [ "acm006807jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006788jsd" : { + "type" : "CodePackage", + "id" : "acm006788jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006789jsd" ] + }, + "acm006789jsd" : { + "type" : "CodePackage", + "id" : "acm006789jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006790jsd" ] + }, + "acm006790jsd" : { + "type" : "CodePackage", + "id" : "acm006790jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006787jsd" ] + }, + "acm006791jsd" : { + "type" : "ControlElement", + "id" : "acm006791jsd", + "name" : "TaskQueuer" + }, + "acm006792jsd" : { + "type" : "ControlElement", + "id" : "acm006792jsd", + "name" : "inst" + }, + "acm006793jsd" : { + "type" : "ControlElement", + "id" : "acm006793jsd", + "name" : "addTask" + }, + "acm006794jsd" : { + "type" : "ControlElement", + "id" : "acm006794jsd", + "name" : "addDeferredTask" + }, + "acm006795jsd" : { + "type" : "ControlElement", + "id" : "acm006795jsd", + "name" : "scheduleFeedbackSessionReminders" + }, + "acm006796jsd" : { + "type" : "ControlElement", + "id" : "acm006796jsd", + "name" : "scheduleFeedbackSessionRemindersForParticularUsers" + }, + "acm006797jsd" : { + "type" : "ControlElement", + "id" : "acm006797jsd", + "name" : "scheduleFeedbackSessionPublishedEmail" + }, + "acm006798jsd" : { + "type" : "ControlElement", + "id" : "acm006798jsd", + "name" : "scheduleFeedbackSessionResendPublishedEmail" + }, + "acm006799jsd" : { + "type" : "ControlElement", + "id" : "acm006799jsd", + "name" : "scheduleFeedbackSessionUnpublishedEmail" + }, + "acm006800jsd" : { + "type" : "ControlElement", + "id" : "acm006800jsd", + "name" : "scheduleCourseRegistrationInviteToInstructor" + }, + "acm006801jsd" : { + "type" : "ControlElement", + "id" : "acm006801jsd", + "name" : "scheduleCourseRegistrationInviteToStudent" + }, + "acm006802jsd" : { + "type" : "ControlElement", + "id" : "acm006802jsd", + "name" : "scheduleEmailsForSending" + }, + "acm006803jsd" : { + "type" : "ControlElement", + "id" : "acm006803jsd", + "name" : "scheduleInstructorForSearchIndexing" + }, + "acm006804jsd" : { + "type" : "ControlElement", + "id" : "acm006804jsd", + "name" : "scheduleAccountRequestForSearchIndexing" + }, + "acm006805jsd" : { + "type" : "ControlElement", + "id" : "acm006805jsd", + "name" : "scheduleStudentForSearchIndexing" + }, + "acm006806jsd" : { + "type" : "ControlElement", + "id" : "acm006806jsd", + "name" : "scheduleEmailForSending" + }, + "acm006807jsd" : { + "type" : "ClassUnit", + "id" : "acm006807jsd", + "name" : "TaskQueuer", + "compilationUnitId" : "acm006787jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd", "acm006435jsd", "acm006504jsd", "acm006807jsd", "acm007273jsd", "acm007301jsd", "acm007342jsd", "acm009176jsd", "acm009273jsd" ], + "content" : [ "acm006791jsd", "acm006792jsd", "acm006793jsd", "acm006794jsd", "acm006795jsd", "acm006796jsd", "acm006797jsd", "acm006798jsd", "acm006799jsd", "acm006800jsd", "acm006801jsd", "acm006802jsd", "acm006803jsd", "acm006804jsd", "acm006805jsd", "acm006806jsd" ] + }, + "acm006808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006808jsd", + "name" : "UserProvision", + "parentId" : "acm006562jsd", + "content" : [ "acm006818jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006809jsd" : { + "type" : "CodePackage", + "id" : "acm006809jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006810jsd" ] + }, + "acm006810jsd" : { + "type" : "CodePackage", + "id" : "acm006810jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006811jsd" ] + }, + "acm006811jsd" : { + "type" : "CodePackage", + "id" : "acm006811jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006808jsd" ] + }, + "acm006812jsd" : { + "type" : "ControlElement", + "id" : "acm006812jsd", + "name" : "UserProvision" + }, + "acm006813jsd" : { + "type" : "ControlElement", + "id" : "acm006813jsd", + "name" : "inst" + }, + "acm006814jsd" : { + "type" : "ControlElement", + "id" : "acm006814jsd", + "name" : "getCurrentUser" + }, + "acm006815jsd" : { + "type" : "ControlElement", + "id" : "acm006815jsd", + "name" : "getCurrentLoggedInUser" + }, + "acm006816jsd" : { + "type" : "ControlElement", + "id" : "acm006816jsd", + "name" : "getMasqueradeUser" + }, + "acm006817jsd" : { + "type" : "ControlElement", + "id" : "acm006817jsd", + "name" : "getAdminOnlyUser" + }, + "acm006818jsd" : { + "type" : "ClassUnit", + "id" : "acm006818jsd", + "name" : "UserProvision", + "compilationUnitId" : "acm006808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd", "acm004446jsd", "acm006818jsd", "acm007125jsd", "acm007192jsd" ], + "content" : [ "acm006812jsd", "acm006813jsd", "acm006814jsd", "acm006815jsd", "acm006816jsd", "acm006817jsd" ] + }, + "acm006819jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006819jsd", + "name" : "package-info", + "parentId" : "acm006562jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006820jsd" : { + "type" : "CodePackage", + "id" : "acm006820jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006821jsd" ] + }, + "acm006821jsd" : { + "type" : "CodePackage", + "id" : "acm006821jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006822jsd" ] + }, + "acm006822jsd" : { + "type" : "CodePackage", + "id" : "acm006822jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm006819jsd" ] + }, + "acm006823jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006823jsd", + "name" : "AccountRequestsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006838jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006824jsd" : { + "type" : "CodePackage", + "id" : "acm006824jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006825jsd" ] + }, + "acm006825jsd" : { + "type" : "CodePackage", + "id" : "acm006825jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006826jsd" ] + }, + "acm006826jsd" : { + "type" : "CodePackage", + "id" : "acm006826jsd", + "name" : "core", + "parentId" : "acm006561jsd", + "content" : [ "acm006823jsd", "acm006839jsd", "acm006858jsd", "acm006883jsd", "acm006909jsd", "acm006924jsd", "acm006955jsd", "acm006985jsd", "acm007048jsd", "acm007093jsd", "acm007126jsd", "acm007134jsd", "acm007149jsd", "acm007193jsd", "acm007204jsd", "acm011306jsd", "acm011318jsd", "acm011335jsd", "acm011342jsd", "acm011364jsd", "acm011371jsd", "acm011386jsd", "acm011414jsd", "acm011442jsd", "acm011487jsd", "acm011521jsd", "acm011549jsd", "acm011567jsd", "acm011599jsd", "acm011605jsd" ] + }, + "acm006827jsd" : { + "type" : "ControlElement", + "id" : "acm006827jsd", + "name" : "AccountRequestsLogic" + }, + "acm006828jsd" : { + "type" : "ControlElement", + "id" : "acm006828jsd", + "name" : "inst" + }, + "acm006829jsd" : { + "type" : "ControlElement", + "id" : "acm006829jsd", + "name" : "initLogicDependencies" + }, + "acm006830jsd" : { + "type" : "ControlElement", + "id" : "acm006830jsd", + "name" : "updateAccountRequest" + }, + "acm006831jsd" : { + "type" : "ControlElement", + "id" : "acm006831jsd", + "name" : "createAccountRequest" + }, + "acm006832jsd" : { + "type" : "ControlElement", + "id" : "acm006832jsd", + "name" : "deleteAccountRequest" + }, + "acm006833jsd" : { + "type" : "ControlElement", + "id" : "acm006833jsd", + "name" : "getAccountRequest" + }, + "acm006834jsd" : { + "type" : "ControlElement", + "id" : "acm006834jsd", + "name" : "getAccountRequestForRegistrationKey" + }, + "acm006835jsd" : { + "type" : "ControlElement", + "id" : "acm006835jsd", + "name" : "putDocument" + }, + "acm006836jsd" : { + "type" : "ControlElement", + "id" : "acm006836jsd", + "name" : "searchAccountRequestsInWholeSystem" + }, + "acm006837jsd" : { + "type" : "ControlElement", + "id" : "acm006837jsd", + "name" : "getNumAccountRequestsByTimeRange" + }, + "acm006838jsd" : { + "type" : "ClassUnit", + "id" : "acm006838jsd", + "name" : "AccountRequestsLogic", + "compilationUnitId" : "acm006823jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004549jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006197jsd", "acm006838jsd", "acm007380jsd" ], + "content" : [ "acm006827jsd", "acm006828jsd", "acm006829jsd", "acm006830jsd", "acm006831jsd", "acm006832jsd", "acm006833jsd", "acm006834jsd", "acm006835jsd", "acm006836jsd", "acm006837jsd" ] + }, + "acm006839jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006839jsd", + "name" : "AccountsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006857jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006840jsd" : { + "type" : "CodePackage", + "id" : "acm006840jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006841jsd" ] + }, + "acm006841jsd" : { + "type" : "CodePackage", + "id" : "acm006841jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006842jsd" ] + }, + "acm006842jsd" : { + "type" : "CodePackage", + "id" : "acm006842jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006839jsd" ] + }, + "acm006843jsd" : { + "type" : "ControlElement", + "id" : "acm006843jsd", + "name" : "AccountsLogic" + }, + "acm006844jsd" : { + "type" : "ControlElement", + "id" : "acm006844jsd", + "name" : "inst" + }, + "acm006845jsd" : { + "type" : "ControlElement", + "id" : "acm006845jsd", + "name" : "initLogicDependencies" + }, + "acm006846jsd" : { + "type" : "ControlElement", + "id" : "acm006846jsd", + "name" : "createAccount" + }, + "acm006847jsd" : { + "type" : "ControlElement", + "id" : "acm006847jsd", + "name" : "getAccount" + }, + "acm006848jsd" : { + "type" : "ControlElement", + "id" : "acm006848jsd", + "name" : "getReadNotificationsId" + }, + "acm006849jsd" : { + "type" : "ControlElement", + "id" : "acm006849jsd", + "name" : "getAccountsForEmail" + }, + "acm006850jsd" : { + "type" : "ControlElement", + "id" : "acm006850jsd", + "name" : "joinCourseForStudent" + }, + "acm006851jsd" : { + "type" : "ControlElement", + "id" : "acm006851jsd", + "name" : "joinCourseForInstructor" + }, + "acm006852jsd" : { + "type" : "ControlElement", + "id" : "acm006852jsd", + "name" : "validateInstructorJoinRequest" + }, + "acm006853jsd" : { + "type" : "ControlElement", + "id" : "acm006853jsd", + "name" : "validateStudentJoinRequest" + }, + "acm006854jsd" : { + "type" : "ControlElement", + "id" : "acm006854jsd", + "name" : "deleteAccountCascade" + }, + "acm006855jsd" : { + "type" : "ControlElement", + "id" : "acm006855jsd", + "name" : "createStudentAccount" + }, + "acm006856jsd" : { + "type" : "ControlElement", + "id" : "acm006856jsd", + "name" : "updateReadNotifications" + }, + "acm006857jsd" : { + "type" : "ClassUnit", + "id" : "acm006857jsd", + "name" : "AccountsLogic", + "compilationUnitId" : "acm006839jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm006857jsd", "acm006882jsd", "acm007125jsd", "acm007148jsd", "acm007192jsd", "acm007395jsd" ], + "content" : [ "acm006843jsd", "acm006844jsd", "acm006845jsd", "acm006846jsd", "acm006847jsd", "acm006848jsd", "acm006849jsd", "acm006850jsd", "acm006851jsd", "acm006852jsd", "acm006853jsd", "acm006854jsd", "acm006855jsd", "acm006856jsd" ] + }, + "acm006858jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006858jsd", + "name" : "CoursesLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006882jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006859jsd" : { + "type" : "CodePackage", + "id" : "acm006859jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006860jsd" ] + }, + "acm006860jsd" : { + "type" : "CodePackage", + "id" : "acm006860jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006861jsd" ] + }, + "acm006861jsd" : { + "type" : "CodePackage", + "id" : "acm006861jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006858jsd" ] + }, + "acm006862jsd" : { + "type" : "ControlElement", + "id" : "acm006862jsd", + "name" : "CoursesLogic" + }, + "acm006863jsd" : { + "type" : "ControlElement", + "id" : "acm006863jsd", + "name" : "inst" + }, + "acm006864jsd" : { + "type" : "ControlElement", + "id" : "acm006864jsd", + "name" : "initLogicDependencies" + }, + "acm006865jsd" : { + "type" : "ControlElement", + "id" : "acm006865jsd", + "name" : "getCourseInstitute" + }, + "acm006866jsd" : { + "type" : "ControlElement", + "id" : "acm006866jsd", + "name" : "createCourse" + }, + "acm006867jsd" : { + "type" : "ControlElement", + "id" : "acm006867jsd", + "name" : "createCourseAndInstructor" + }, + "acm006868jsd" : { + "type" : "ControlElement", + "id" : "acm006868jsd", + "name" : "getCourse" + }, + "acm006869jsd" : { + "type" : "ControlElement", + "id" : "acm006869jsd", + "name" : "isCoursePresent" + }, + "acm006870jsd" : { + "type" : "ControlElement", + "id" : "acm006870jsd", + "name" : "verifyCourseIsPresent" + }, + "acm006871jsd" : { + "type" : "ControlElement", + "id" : "acm006871jsd", + "name" : "getSectionsNameForCourse" + }, + "acm006872jsd" : { + "type" : "ControlElement", + "id" : "acm006872jsd", + "name" : "getTeamsForCourse" + }, + "acm006873jsd" : { + "type" : "ControlElement", + "id" : "acm006873jsd", + "name" : "getTeamsForSection" + }, + "acm006874jsd" : { + "type" : "ControlElement", + "id" : "acm006874jsd", + "name" : "getCoursesForStudentAccount" + }, + "acm006875jsd" : { + "type" : "ControlElement", + "id" : "acm006875jsd", + "name" : "getCoursesForInstructor" + }, + "acm006876jsd" : { + "type" : "ControlElement", + "id" : "acm006876jsd", + "name" : "getSoftDeletedCoursesForInstructors" + }, + "acm006877jsd" : { + "type" : "ControlElement", + "id" : "acm006877jsd", + "name" : "updateCourseCascade" + }, + "acm006878jsd" : { + "type" : "ControlElement", + "id" : "acm006878jsd", + "name" : "deleteCourseCascade" + }, + "acm006879jsd" : { + "type" : "ControlElement", + "id" : "acm006879jsd", + "name" : "moveCourseToRecycleBin" + }, + "acm006880jsd" : { + "type" : "ControlElement", + "id" : "acm006880jsd", + "name" : "restoreCourseFromRecycleBin" + }, + "acm006881jsd" : { + "type" : "ControlElement", + "id" : "acm006881jsd", + "name" : "getNumCoursesByTimeRange" + }, + "acm006882jsd" : { + "type" : "ClassUnit", + "id" : "acm006882jsd", + "name" : "CoursesLogic", + "compilationUnitId" : "acm006858jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004332jsd", "acm004486jsd", "acm004598jsd", "acm004607jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm006857jsd", "acm006882jsd", "acm006923jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd", "acm007414jsd" ], + "content" : [ "acm006862jsd", "acm006863jsd", "acm006864jsd", "acm006865jsd", "acm006866jsd", "acm006867jsd", "acm006868jsd", "acm006869jsd", "acm006870jsd", "acm006871jsd", "acm006872jsd", "acm006873jsd", "acm006874jsd", "acm006875jsd", "acm006876jsd", "acm006877jsd", "acm006878jsd", "acm006879jsd", "acm006880jsd", "acm006881jsd" ] + }, + "acm006883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006883jsd", + "name" : "DataBundleLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006908jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006884jsd" : { + "type" : "CodePackage", + "id" : "acm006884jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006885jsd" ] + }, + "acm006885jsd" : { + "type" : "CodePackage", + "id" : "acm006885jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006886jsd" ] + }, + "acm006886jsd" : { + "type" : "CodePackage", + "id" : "acm006886jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006883jsd" ] + }, + "acm006887jsd" : { + "type" : "ControlElement", + "id" : "acm006887jsd", + "name" : "DataBundleLogic" + }, + "acm006888jsd" : { + "type" : "ControlElement", + "id" : "acm006888jsd", + "name" : "inst" + }, + "acm006889jsd" : { + "type" : "ControlElement", + "id" : "acm006889jsd", + "name" : "persistDataBundle" + }, + "acm006890jsd" : { + "type" : "ControlElement", + "id" : "acm006890jsd", + "name" : "updateDataBundleValue" + }, + "acm006891jsd" : { + "type" : "ControlElement", + "id" : "acm006891jsd", + "name" : "putDocuments" + }, + "acm006892jsd" : { + "type" : "ControlElement", + "id" : "acm006892jsd", + "name" : "processInstructors" + }, + "acm006893jsd" : { + "type" : "ControlElement", + "id" : "acm006893jsd", + "name" : "processStudents" + }, + "acm006894jsd" : { + "type" : "ControlElement", + "id" : "acm006894jsd", + "name" : "processQuestions" + }, + "acm006895jsd" : { + "type" : "ControlElement", + "id" : "acm006895jsd", + "name" : "injectRealIds" + }, + "acm006896jsd" : { + "type" : "ControlElement", + "id" : "acm006896jsd", + "name" : "makeQuestionIdMap" + }, + "acm006897jsd" : { + "type" : "ControlElement", + "id" : "acm006897jsd", + "name" : "injectRealIdsIntoResponses" + }, + "acm006898jsd" : { + "type" : "ControlElement", + "id" : "acm006898jsd", + "name" : "injectRealIdsIntoResponseComments" + }, + "acm006899jsd" : { + "type" : "ControlElement", + "id" : "acm006899jsd", + "name" : "validateInstructorPrivileges" + }, + "acm006900jsd" : { + "type" : "ControlElement", + "id" : "acm006900jsd", + "name" : "populateNullSection" + }, + "acm006901jsd" : { + "type" : "ControlElement", + "id" : "acm006901jsd", + "name" : "makeAccount" + }, + "acm006902jsd" : { + "type" : "ControlElement", + "id" : "acm006902jsd", + "name" : "makeAccount" + }, + "acm006903jsd" : { + "type" : "ControlElement", + "id" : "acm006903jsd", + "name" : "makeSessionKey" + }, + "acm006904jsd" : { + "type" : "ControlElement", + "id" : "acm006904jsd", + "name" : "makeQuestionKey" + }, + "acm006905jsd" : { + "type" : "ControlElement", + "id" : "acm006905jsd", + "name" : "makeQuestionKey" + }, + "acm006906jsd" : { + "type" : "ControlElement", + "id" : "acm006906jsd", + "name" : "removeDataBundle" + }, + "acm006907jsd" : { + "type" : "ControlElement", + "id" : "acm006907jsd", + "name" : "deleteCourses" + }, + "acm006908jsd" : { + "type" : "ClassUnit", + "id" : "acm006908jsd", + "name" : "DataBundleLogic", + "compilationUnitId" : "acm006883jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004332jsd", "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004706jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd", "acm006188jsd", "acm006197jsd", "acm006908jsd", "acm007380jsd", "acm007395jsd", "acm007414jsd", "acm007440jsd", "acm007484jsd", "acm007519jsd", "acm007556jsd", "acm007590jsd", "acm007630jsd", "acm007647jsd", "acm007703jsd" ], + "content" : [ "acm006887jsd", "acm006888jsd", "acm006889jsd", "acm006890jsd", "acm006891jsd", "acm006892jsd", "acm006893jsd", "acm006894jsd", "acm006895jsd", "acm006896jsd", "acm006897jsd", "acm006898jsd", "acm006899jsd", "acm006900jsd", "acm006901jsd", "acm006902jsd", "acm006903jsd", "acm006904jsd", "acm006905jsd", "acm006906jsd", "acm006907jsd" ] + }, + "acm006909jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006909jsd", + "name" : "DeadlineExtensionsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006923jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006910jsd" : { + "type" : "CodePackage", + "id" : "acm006910jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006911jsd" ] + }, + "acm006911jsd" : { + "type" : "CodePackage", + "id" : "acm006911jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006912jsd" ] + }, + "acm006912jsd" : { + "type" : "CodePackage", + "id" : "acm006912jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006909jsd" ] + }, + "acm006913jsd" : { + "type" : "ControlElement", + "id" : "acm006913jsd", + "name" : "DeadlineExtensionsLogic" + }, + "acm006914jsd" : { + "type" : "ControlElement", + "id" : "acm006914jsd", + "name" : "inst" + }, + "acm006915jsd" : { + "type" : "ControlElement", + "id" : "acm006915jsd", + "name" : "updateDeadlineExtension" + }, + "acm006916jsd" : { + "type" : "ControlElement", + "id" : "acm006916jsd", + "name" : "updateDeadlineExtensionsWithNewEmail" + }, + "acm006917jsd" : { + "type" : "ControlElement", + "id" : "acm006917jsd", + "name" : "createDeadlineExtension" + }, + "acm006918jsd" : { + "type" : "ControlElement", + "id" : "acm006918jsd", + "name" : "deleteDeadlineExtension" + }, + "acm006919jsd" : { + "type" : "ControlElement", + "id" : "acm006919jsd", + "name" : "deleteDeadlineExtensions" + }, + "acm006920jsd" : { + "type" : "ControlElement", + "id" : "acm006920jsd", + "name" : "deleteDeadlineExtensions" + }, + "acm006921jsd" : { + "type" : "ControlElement", + "id" : "acm006921jsd", + "name" : "getDeadlineExtension" + }, + "acm006922jsd" : { + "type" : "ControlElement", + "id" : "acm006922jsd", + "name" : "getDeadlineExtensionsPossiblyNeedingClosingEmail" + }, + "acm006923jsd" : { + "type" : "ClassUnit", + "id" : "acm006923jsd", + "name" : "DeadlineExtensionsLogic", + "compilationUnitId" : "acm006909jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004662jsd", "acm004678jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006923jsd", "acm007440jsd" ], + "content" : [ "acm006913jsd", "acm006914jsd", "acm006915jsd", "acm006916jsd", "acm006917jsd", "acm006918jsd", "acm006919jsd", "acm006920jsd", "acm006921jsd", "acm006922jsd" ] + }, + "acm006924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006924jsd", + "name" : "FeedbackQuestionsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006954jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006925jsd" : { + "type" : "CodePackage", + "id" : "acm006925jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006926jsd" ] + }, + "acm006926jsd" : { + "type" : "CodePackage", + "id" : "acm006926jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006927jsd" ] + }, + "acm006927jsd" : { + "type" : "CodePackage", + "id" : "acm006927jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006924jsd" ] + }, + "acm006928jsd" : { + "type" : "ControlElement", + "id" : "acm006928jsd", + "name" : "FeedbackQuestionsLogic" + }, + "acm006929jsd" : { + "type" : "ControlElement", + "id" : "acm006929jsd", + "name" : "inst" + }, + "acm006930jsd" : { + "type" : "ControlElement", + "id" : "acm006930jsd", + "name" : "initLogicDependencies" + }, + "acm006931jsd" : { + "type" : "ControlElement", + "id" : "acm006931jsd", + "name" : "createFeedbackQuestion" + }, + "acm006932jsd" : { + "type" : "ControlElement", + "id" : "acm006932jsd", + "name" : "getFeedbackQuestion" + }, + "acm006933jsd" : { + "type" : "ControlElement", + "id" : "acm006933jsd", + "name" : "getFeedbackQuestion" + }, + "acm006934jsd" : { + "type" : "ControlElement", + "id" : "acm006934jsd", + "name" : "getFeedbackQuestionsForSession" + }, + "acm006935jsd" : { + "type" : "ControlElement", + "id" : "acm006935jsd", + "name" : "getFeedbackQuestionForCourseWithType" + }, + "acm006936jsd" : { + "type" : "ControlElement", + "id" : "acm006936jsd", + "name" : "areQuestionNumbersConsistent" + }, + "acm006937jsd" : { + "type" : "ControlElement", + "id" : "acm006937jsd", + "name" : "hasFeedbackQuestionsForInstructors" + }, + "acm006938jsd" : { + "type" : "ControlElement", + "id" : "acm006938jsd", + "name" : "getFeedbackQuestionsForInstructors" + }, + "acm006939jsd" : { + "type" : "ControlElement", + "id" : "acm006939jsd", + "name" : "getFeedbackQuestionsForInstructors" + }, + "acm006940jsd" : { + "type" : "ControlElement", + "id" : "acm006940jsd", + "name" : "hasFeedbackQuestionsForStudents" + }, + "acm006941jsd" : { + "type" : "ControlElement", + "id" : "acm006941jsd", + "name" : "getFeedbackQuestionsForStudents" + }, + "acm006942jsd" : { + "type" : "ControlElement", + "id" : "acm006942jsd", + "name" : "getFeedbackQuestionsForStudents" + }, + "acm006943jsd" : { + "type" : "ControlElement", + "id" : "acm006943jsd", + "name" : "sessionHasQuestions" + }, + "acm006944jsd" : { + "type" : "ControlElement", + "id" : "acm006944jsd", + "name" : "sessionHasQuestionsForGiverType" + }, + "acm006945jsd" : { + "type" : "ControlElement", + "id" : "acm006945jsd", + "name" : "getRecipientsOfQuestion" + }, + "acm006946jsd" : { + "type" : "ControlElement", + "id" : "acm006946jsd", + "name" : "buildCompleteGiverRecipientMap" + }, + "acm006947jsd" : { + "type" : "ControlElement", + "id" : "acm006947jsd", + "name" : "getPossibleGivers" + }, + "acm006948jsd" : { + "type" : "ControlElement", + "id" : "acm006948jsd", + "name" : "populateFieldsToGenerateInQuestion" + }, + "acm006949jsd" : { + "type" : "ControlElement", + "id" : "acm006949jsd", + "name" : "updateFeedbackQuestionCascade" + }, + "acm006950jsd" : { + "type" : "ControlElement", + "id" : "acm006950jsd", + "name" : "adjustQuestionNumbers" + }, + "acm006951jsd" : { + "type" : "ControlElement", + "id" : "acm006951jsd", + "name" : "deleteFeedbackQuestionCascade" + }, + "acm006952jsd" : { + "type" : "ControlElement", + "id" : "acm006952jsd", + "name" : "deleteFeedbackQuestions" + }, + "acm006953jsd" : { + "type" : "ControlElement", + "id" : "acm006953jsd", + "name" : "shiftQuestionNumbersDown" + }, + "acm006954jsd" : { + "type" : "ClassUnit", + "id" : "acm006954jsd", + "name" : "FeedbackQuestionsLogic", + "compilationUnitId" : "acm006924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004195jsd", "acm004226jsd", "acm004239jsd", "acm004788jsd", "acm004799jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005866jsd", "acm005909jsd", "acm005986jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm006882jsd", "acm006954jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd", "acm007484jsd" ], + "content" : [ "acm006928jsd", "acm006929jsd", "acm006930jsd", "acm006931jsd", "acm006932jsd", "acm006933jsd", "acm006934jsd", "acm006935jsd", "acm006936jsd", "acm006937jsd", "acm006938jsd", "acm006939jsd", "acm006940jsd", "acm006941jsd", "acm006942jsd", "acm006943jsd", "acm006944jsd", "acm006945jsd", "acm006946jsd", "acm006947jsd", "acm006948jsd", "acm006949jsd", "acm006950jsd", "acm006951jsd", "acm006952jsd", "acm006953jsd" ] + }, + "acm006955jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006955jsd", + "name" : "FeedbackResponseCommentsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm006984jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006956jsd" : { + "type" : "CodePackage", + "id" : "acm006956jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006957jsd" ] + }, + "acm006957jsd" : { + "type" : "CodePackage", + "id" : "acm006957jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006958jsd" ] + }, + "acm006958jsd" : { + "type" : "CodePackage", + "id" : "acm006958jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006955jsd" ] + }, + "acm006959jsd" : { + "type" : "ControlElement", + "id" : "acm006959jsd", + "name" : "FeedbackResponseCommentsLogic" + }, + "acm006960jsd" : { + "type" : "ControlElement", + "id" : "acm006960jsd", + "name" : "inst" + }, + "acm006961jsd" : { + "type" : "ControlElement", + "id" : "acm006961jsd", + "name" : "initLogicDependencies" + }, + "acm006962jsd" : { + "type" : "ControlElement", + "id" : "acm006962jsd", + "name" : "createFeedbackResponseComment" + }, + "acm006963jsd" : { + "type" : "ControlElement", + "id" : "acm006963jsd", + "name" : "getFeedbackResponseComment" + }, + "acm006964jsd" : { + "type" : "ControlElement", + "id" : "acm006964jsd", + "name" : "getFeedbackResponseComment" + }, + "acm006965jsd" : { + "type" : "ControlElement", + "id" : "acm006965jsd", + "name" : "getFeedbackResponseCommentForResponse" + }, + "acm006966jsd" : { + "type" : "ControlElement", + "id" : "acm006966jsd", + "name" : "getFeedbackResponseCommentForResponseFromParticipant" + }, + "acm006967jsd" : { + "type" : "ControlElement", + "id" : "acm006967jsd", + "name" : "getFeedbackResponseCommentForSessionInSection" + }, + "acm006968jsd" : { + "type" : "ControlElement", + "id" : "acm006968jsd", + "name" : "getFeedbackResponseCommentForQuestionInSection" + }, + "acm006969jsd" : { + "type" : "ControlElement", + "id" : "acm006969jsd", + "name" : "updateFeedbackResponseCommentsEmails" + }, + "acm006970jsd" : { + "type" : "ControlElement", + "id" : "acm006970jsd", + "name" : "updateFeedbackResponseCommentsForResponse" + }, + "acm006971jsd" : { + "type" : "ControlElement", + "id" : "acm006971jsd", + "name" : "updateFeedbackResponseComment" + }, + "acm006972jsd" : { + "type" : "ControlElement", + "id" : "acm006972jsd", + "name" : "getFeedbackResponseCommentsForGiver" + }, + "acm006973jsd" : { + "type" : "ControlElement", + "id" : "acm006973jsd", + "name" : "deleteFeedbackResponseComment" + }, + "acm006974jsd" : { + "type" : "ControlElement", + "id" : "acm006974jsd", + "name" : "deleteFeedbackResponseComments" + }, + "acm006975jsd" : { + "type" : "ControlElement", + "id" : "acm006975jsd", + "name" : "isNameVisibleToUser" + }, + "acm006976jsd" : { + "type" : "ControlElement", + "id" : "acm006976jsd", + "name" : "isFeedbackParticipantNameVisibleToUser" + }, + "acm006977jsd" : { + "type" : "ControlElement", + "id" : "acm006977jsd", + "name" : "isResponseCommentVisibleForUser" + }, + "acm006978jsd" : { + "type" : "ControlElement", + "id" : "acm006978jsd", + "name" : "isVisibleToUserTeam" + }, + "acm006979jsd" : { + "type" : "ControlElement", + "id" : "acm006979jsd", + "name" : "isVisibleToUser" + }, + "acm006980jsd" : { + "type" : "ControlElement", + "id" : "acm006980jsd", + "name" : "isResponseCommentVisibleTo" + }, + "acm006981jsd" : { + "type" : "ControlElement", + "id" : "acm006981jsd", + "name" : "verifyIsCoursePresent" + }, + "acm006982jsd" : { + "type" : "ControlElement", + "id" : "acm006982jsd", + "name" : "verifyIsUserOfCourse" + }, + "acm006983jsd" : { + "type" : "ControlElement", + "id" : "acm006983jsd", + "name" : "verifyIsFeedbackSessionOfCourse" + }, + "acm006984jsd" : { + "type" : "ClassUnit", + "id" : "acm006984jsd", + "name" : "FeedbackResponseCommentsLogic", + "compilationUnitId" : "acm006955jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004195jsd", "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm004989jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006882jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd", "acm007519jsd" ], + "content" : [ "acm006959jsd", "acm006960jsd", "acm006961jsd", "acm006962jsd", "acm006963jsd", "acm006964jsd", "acm006965jsd", "acm006966jsd", "acm006967jsd", "acm006968jsd", "acm006969jsd", "acm006970jsd", "acm006971jsd", "acm006972jsd", "acm006973jsd", "acm006974jsd", "acm006975jsd", "acm006976jsd", "acm006977jsd", "acm006978jsd", "acm006979jsd", "acm006980jsd", "acm006981jsd", "acm006982jsd", "acm006983jsd" ] + }, + "acm006985jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm006985jsd", + "name" : "FeedbackResponsesLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007042jsd", "acm007047jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm006986jsd" : { + "type" : "CodePackage", + "id" : "acm006986jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm006987jsd" ] + }, + "acm006987jsd" : { + "type" : "CodePackage", + "id" : "acm006987jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm006988jsd" ] + }, + "acm006988jsd" : { + "type" : "CodePackage", + "id" : "acm006988jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm006985jsd" ] + }, + "acm006989jsd" : { + "type" : "ControlElement", + "id" : "acm006989jsd", + "name" : "FeedbackResponsesLogic" + }, + "acm006990jsd" : { + "type" : "ControlElement", + "id" : "acm006990jsd", + "name" : "inst" + }, + "acm006991jsd" : { + "type" : "ControlElement", + "id" : "acm006991jsd", + "name" : "initLogicDependencies" + }, + "acm006992jsd" : { + "type" : "ControlElement", + "id" : "acm006992jsd", + "name" : "getGiverSetThatAnswerFeedbackSession" + }, + "acm006993jsd" : { + "type" : "ControlElement", + "id" : "acm006993jsd", + "name" : "createFeedbackResponse" + }, + "acm006994jsd" : { + "type" : "ControlElement", + "id" : "acm006994jsd", + "name" : "getFeedbackResponse" + }, + "acm006995jsd" : { + "type" : "ControlElement", + "id" : "acm006995jsd", + "name" : "getFeedbackResponse" + }, + "acm006996jsd" : { + "type" : "ControlElement", + "id" : "acm006996jsd", + "name" : "getFeedbackResponsesForSession" + }, + "acm006997jsd" : { + "type" : "ControlElement", + "id" : "acm006997jsd", + "name" : "getFeedbackResponsesForSessionInSection" + }, + "acm006998jsd" : { + "type" : "ControlElement", + "id" : "acm006998jsd", + "name" : "getFeedbackResponsesForQuestion" + }, + "acm006999jsd" : { + "type" : "ControlElement", + "id" : "acm006999jsd", + "name" : "areThereResponsesForQuestion" + }, + "acm007000jsd" : { + "type" : "ControlElement", + "id" : "acm007000jsd", + "name" : "getFeedbackResponsesForQuestionInSection" + }, + "acm007001jsd" : { + "type" : "ControlElement", + "id" : "acm007001jsd", + "name" : "getFeedbackResponsesFromGiverForQuestion" + }, + "acm007002jsd" : { + "type" : "ControlElement", + "id" : "acm007002jsd", + "name" : "getFeedbackResponsesForReceiverForQuestion" + }, + "acm007003jsd" : { + "type" : "ControlElement", + "id" : "acm007003jsd", + "name" : "hasGiverRespondedForSession" + }, + "acm007004jsd" : { + "type" : "ControlElement", + "id" : "acm007004jsd", + "name" : "getFeedbackResponsesForReceiverForCourse" + }, + "acm007005jsd" : { + "type" : "ControlElement", + "id" : "acm007005jsd", + "name" : "getFeedbackResponsesFromGiverForCourse" + }, + "acm007006jsd" : { + "type" : "ControlElement", + "id" : "acm007006jsd", + "name" : "getFeedbackResponsesFromStudentOrTeamForQuestion" + }, + "acm007007jsd" : { + "type" : "ControlElement", + "id" : "acm007007jsd", + "name" : "isNameVisibleToUser" + }, + "acm007008jsd" : { + "type" : "ControlElement", + "id" : "acm007008jsd", + "name" : "isFeedbackParticipantNameVisibleToUser" + }, + "acm007009jsd" : { + "type" : "ControlElement", + "id" : "acm007009jsd", + "name" : "isResponseOfFeedbackQuestionVisibleToStudent" + }, + "acm007010jsd" : { + "type" : "ControlElement", + "id" : "acm007010jsd", + "name" : "isResponseOfFeedbackQuestionVisibleToInstructor" + }, + "acm007011jsd" : { + "type" : "ControlElement", + "id" : "acm007011jsd", + "name" : "getQuestionsForSession" + }, + "acm007012jsd" : { + "type" : "ControlElement", + "id" : "acm007012jsd", + "name" : "buildResultsBundle" + }, + "acm007013jsd" : { + "type" : "ControlElement", + "id" : "acm007013jsd", + "name" : "getSessionResultsForCourse" + }, + "acm007014jsd" : { + "type" : "ControlElement", + "id" : "acm007014jsd", + "name" : "getSessionResultsForUser" + }, + "acm007015jsd" : { + "type" : "ControlElement", + "id" : "acm007015jsd", + "name" : "buildMissingResponses" + }, + "acm007016jsd" : { + "type" : "ControlElement", + "id" : "acm007016jsd", + "name" : "isResponseVisibleForUser" + }, + "acm007017jsd" : { + "type" : "ControlElement", + "id" : "acm007017jsd", + "name" : "hasResponsesForCourse" + }, + "acm007018jsd" : { + "type" : "ControlElement", + "id" : "acm007018jsd", + "name" : "updateFeedbackResponseCascade" + }, + "acm007019jsd" : { + "type" : "ControlElement", + "id" : "acm007019jsd", + "name" : "updateFeedbackResponsesForChangingTeam" + }, + "acm007020jsd" : { + "type" : "ControlElement", + "id" : "acm007020jsd", + "name" : "updateFeedbackResponsesForChangingSection" + }, + "acm007021jsd" : { + "type" : "ControlElement", + "id" : "acm007021jsd", + "name" : "updateFeedbackResponsesForDeletingStudent" + }, + "acm007022jsd" : { + "type" : "ControlElement", + "id" : "acm007022jsd", + "name" : "updateRankRecipientQuestionResponsesAfterDeletingStudent" + }, + "acm007023jsd" : { + "type" : "ControlElement", + "id" : "acm007023jsd", + "name" : "makeRankRecipientQuestionResponsesConsistent" + }, + "acm007024jsd" : { + "type" : "ControlElement", + "id" : "acm007024jsd", + "name" : "updateSectionOfResponsesToUser" + }, + "acm007025jsd" : { + "type" : "ControlElement", + "id" : "acm007025jsd", + "name" : "updateSectionOfResponsesFromUser" + }, + "acm007026jsd" : { + "type" : "ControlElement", + "id" : "acm007026jsd", + "name" : "isRecipientTypeTeamMembers" + }, + "acm007027jsd" : { + "type" : "ControlElement", + "id" : "acm007027jsd", + "name" : "updateFeedbackResponsesForChangingEmail" + }, + "acm007028jsd" : { + "type" : "ControlElement", + "id" : "acm007028jsd", + "name" : "deleteFeedbackResponses" + }, + "acm007029jsd" : { + "type" : "ControlElement", + "id" : "acm007029jsd", + "name" : "deleteFeedbackResponseCascade" + }, + "acm007030jsd" : { + "type" : "ControlElement", + "id" : "acm007030jsd", + "name" : "deleteFeedbackResponsesForQuestionCascade" + }, + "acm007031jsd" : { + "type" : "ControlElement", + "id" : "acm007031jsd", + "name" : "deleteFeedbackResponsesInvolvedEntityOfCourseCascade" + }, + "acm007032jsd" : { + "type" : "ControlElement", + "id" : "acm007032jsd", + "name" : "getFeedbackResponsesFromTeamForQuestion" + }, + "acm007033jsd" : { + "type" : "ControlElement", + "id" : "acm007033jsd", + "name" : "getFeedbackResponsesToOrFromInstructorForQuestion" + }, + "acm007034jsd" : { + "type" : "ControlElement", + "id" : "acm007034jsd", + "name" : "getViewableFeedbackResponsesForStudentForQuestion" + }, + "acm007035jsd" : { + "type" : "ControlElement", + "id" : "acm007035jsd", + "name" : "getNumFeedbackResponsesByTimeRange" + }, + "acm007036jsd" : { + "type" : "ControlElement", + "id" : "acm007036jsd", + "name" : "canInstructorsSeeQuestion" + }, + "acm007037jsd" : { + "type" : "ControlElement", + "id" : "acm007037jsd", + "name" : "canInstructorsSeeComment" + }, + "acm007038jsd" : { + "type" : "ControlElement", + "id" : "acm007038jsd", + "name" : "UniqueResponsesSet" + }, + "acm007039jsd" : { + "type" : "ControlElement", + "id" : "acm007039jsd", + "name" : "addNewResponses" + }, + "acm007040jsd" : { + "type" : "ControlElement", + "id" : "acm007040jsd", + "name" : "addNewResponse" + }, + "acm007041jsd" : { + "type" : "ControlElement", + "id" : "acm007041jsd", + "name" : "getResponses" + }, + "acm007042jsd" : { + "type" : "ClassUnit", + "id" : "acm007042jsd", + "name" : "FeedbackResponsesLogic", + "compilationUnitId" : "acm006985jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004195jsd", "acm004200jsd", "acm004226jsd", "acm004248jsd", "acm004383jsd", "acm004788jsd", "acm004871jsd", "acm004885jsd", "acm004971jsd", "acm004994jsd", "acm005233jsd", "acm005412jsd", "acm006127jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007047jsd", "acm007125jsd", "acm007192jsd", "acm007556jsd" ], + "content" : [ "acm006989jsd", "acm006990jsd", "acm006991jsd", "acm006992jsd", "acm006993jsd", "acm006994jsd", "acm006995jsd", "acm006996jsd", "acm006997jsd", "acm006998jsd", "acm006999jsd", "acm007000jsd", "acm007001jsd", "acm007002jsd", "acm007003jsd", "acm007004jsd", "acm007005jsd", "acm007006jsd", "acm007007jsd", "acm007008jsd", "acm007009jsd", "acm007010jsd", "acm007011jsd", "acm007012jsd", "acm007013jsd", "acm007014jsd", "acm007015jsd", "acm007016jsd", "acm007017jsd", "acm007018jsd", "acm007019jsd", "acm007020jsd", "acm007021jsd", "acm007022jsd", "acm007023jsd", "acm007024jsd", "acm007025jsd", "acm007026jsd", "acm007027jsd", "acm007028jsd", "acm007029jsd", "acm007030jsd", "acm007031jsd", "acm007032jsd", "acm007033jsd", "acm007034jsd", "acm007035jsd", "acm007036jsd", "acm007037jsd", "acm007038jsd", "acm007039jsd", "acm007040jsd", "acm007041jsd" ] + }, + "acm007043jsd" : { + "type" : "ControlElement", + "id" : "acm007043jsd", + "name" : "UniqueResponsesSet" + }, + "acm007044jsd" : { + "type" : "ControlElement", + "id" : "acm007044jsd", + "name" : "addNewResponses" + }, + "acm007045jsd" : { + "type" : "ControlElement", + "id" : "acm007045jsd", + "name" : "addNewResponse" + }, + "acm007046jsd" : { + "type" : "ControlElement", + "id" : "acm007046jsd", + "name" : "getResponses" + }, + "acm007047jsd" : { + "type" : "ClassUnit", + "id" : "acm007047jsd", + "name" : "UniqueResponsesSet", + "compilationUnitId" : "acm006985jsd", + "parentDatatypeId" : "acm007042jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd" ], + "content" : [ "acm007043jsd", "acm007044jsd", "acm007045jsd", "acm007046jsd" ] + }, + "acm007048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007048jsd", + "name" : "FeedbackSessionsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007092jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007049jsd" : { + "type" : "CodePackage", + "id" : "acm007049jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007050jsd" ] + }, + "acm007050jsd" : { + "type" : "CodePackage", + "id" : "acm007050jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007051jsd" ] + }, + "acm007051jsd" : { + "type" : "CodePackage", + "id" : "acm007051jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007048jsd" ] + }, + "acm007052jsd" : { + "type" : "ControlElement", + "id" : "acm007052jsd", + "name" : "FeedbackSessionsLogic" + }, + "acm007053jsd" : { + "type" : "ControlElement", + "id" : "acm007053jsd", + "name" : "inst" + }, + "acm007054jsd" : { + "type" : "ControlElement", + "id" : "acm007054jsd", + "name" : "initLogicDependencies" + }, + "acm007055jsd" : { + "type" : "ControlElement", + "id" : "acm007055jsd", + "name" : "createFeedbackSession" + }, + "acm007056jsd" : { + "type" : "ControlElement", + "id" : "acm007056jsd", + "name" : "getAllOngoingSessions" + }, + "acm007057jsd" : { + "type" : "ControlElement", + "id" : "acm007057jsd", + "name" : "getFeedbackSession" + }, + "acm007058jsd" : { + "type" : "ControlElement", + "id" : "acm007058jsd", + "name" : "getFeedbackSessionFromRecycleBin" + }, + "acm007059jsd" : { + "type" : "ControlElement", + "id" : "acm007059jsd", + "name" : "getFeedbackSessionsForCourse" + }, + "acm007060jsd" : { + "type" : "ControlElement", + "id" : "acm007060jsd", + "name" : "getFeedbackSessionsForCourseStartingAfter" + }, + "acm007061jsd" : { + "type" : "ControlElement", + "id" : "acm007061jsd", + "name" : "getFeedbackSessionsListForInstructor" + }, + "acm007062jsd" : { + "type" : "ControlElement", + "id" : "acm007062jsd", + "name" : "getSoftDeletedFeedbackSessionsListForInstructors" + }, + "acm007063jsd" : { + "type" : "ControlElement", + "id" : "acm007063jsd", + "name" : "getFeedbackSessionsWhichNeedAutomatedPublishedEmailsToBeSent" + }, + "acm007064jsd" : { + "type" : "ControlElement", + "id" : "acm007064jsd", + "name" : "getFeedbackSessionsWhichNeedOpenEmailsToBeSent" + }, + "acm007065jsd" : { + "type" : "ControlElement", + "id" : "acm007065jsd", + "name" : "isCreatorOfSession" + }, + "acm007066jsd" : { + "type" : "ControlElement", + "id" : "acm007066jsd", + "name" : "isFeedbackSessionAttemptedByStudent" + }, + "acm007067jsd" : { + "type" : "ControlElement", + "id" : "acm007067jsd", + "name" : "isFeedbackSessionAttemptedByInstructor" + }, + "acm007068jsd" : { + "type" : "ControlElement", + "id" : "acm007068jsd", + "name" : "updateFeedbackSession" + }, + "acm007069jsd" : { + "type" : "ControlElement", + "id" : "acm007069jsd", + "name" : "updateFeedbackSessionsInstructorDeadlinesWithNewEmail" + }, + "acm007070jsd" : { + "type" : "ControlElement", + "id" : "acm007070jsd", + "name" : "updateFeedbackSessionsStudentDeadlinesWithNewEmail" + }, + "acm007071jsd" : { + "type" : "ControlElement", + "id" : "acm007071jsd", + "name" : "deleteFeedbackSessionsDeadlinesForInstructor" + }, + "acm007072jsd" : { + "type" : "ControlElement", + "id" : "acm007072jsd", + "name" : "deleteFeedbackSessionsDeadlinesForStudent" + }, + "acm007073jsd" : { + "type" : "ControlElement", + "id" : "acm007073jsd", + "name" : "updateFeedbackSessionsTimeZoneForCourse" + }, + "acm007074jsd" : { + "type" : "ControlElement", + "id" : "acm007074jsd", + "name" : "publishFeedbackSession" + }, + "acm007075jsd" : { + "type" : "ControlElement", + "id" : "acm007075jsd", + "name" : "unpublishFeedbackSession" + }, + "acm007076jsd" : { + "type" : "ControlElement", + "id" : "acm007076jsd", + "name" : "getFeedbackSessionsOpeningWithinTimeLimit" + }, + "acm007077jsd" : { + "type" : "ControlElement", + "id" : "acm007077jsd", + "name" : "getFeedbackSessionsClosingWithinTimeLimit" + }, + "acm007078jsd" : { + "type" : "ControlElement", + "id" : "acm007078jsd", + "name" : "getFeedbackSessionsClosedWithinThePastHour" + }, + "acm007079jsd" : { + "type" : "ControlElement", + "id" : "acm007079jsd", + "name" : "deleteFeedbackSessionCascade" + }, + "acm007080jsd" : { + "type" : "ControlElement", + "id" : "acm007080jsd", + "name" : "deleteFeedbackSessions" + }, + "acm007081jsd" : { + "type" : "ControlElement", + "id" : "acm007081jsd", + "name" : "moveFeedbackSessionToRecycleBin" + }, + "acm007082jsd" : { + "type" : "ControlElement", + "id" : "acm007082jsd", + "name" : "restoreFeedbackSessionFromRecycleBin" + }, + "acm007083jsd" : { + "type" : "ControlElement", + "id" : "acm007083jsd", + "name" : "getExpectedTotalSubmission" + }, + "acm007084jsd" : { + "type" : "ControlElement", + "id" : "acm007084jsd", + "name" : "getActualTotalSubmission" + }, + "acm007085jsd" : { + "type" : "ControlElement", + "id" : "acm007085jsd", + "name" : "getFeedbackSessionsListForCourse" + }, + "acm007086jsd" : { + "type" : "ControlElement", + "id" : "acm007086jsd", + "name" : "getSoftDeletedFeedbackSessionsListForCourse" + }, + "acm007087jsd" : { + "type" : "ControlElement", + "id" : "acm007087jsd", + "name" : "isFeedbackSessionViewableToUserType" + }, + "acm007088jsd" : { + "type" : "ControlElement", + "id" : "acm007088jsd", + "name" : "isFeedbackSessionForUserTypeToAnswer" + }, + "acm007089jsd" : { + "type" : "ControlElement", + "id" : "acm007089jsd", + "name" : "updateFeedbackSessionsDeadlinesWithNewEmail" + }, + "acm007090jsd" : { + "type" : "ControlElement", + "id" : "acm007090jsd", + "name" : "deleteFeedbackSessionsDeadlinesForUser" + }, + "acm007091jsd" : { + "type" : "ControlElement", + "id" : "acm007091jsd", + "name" : "updateFeedbackSessionsDeadlinesForUser" + }, + "acm007092jsd" : { + "type" : "ClassUnit", + "id" : "acm007092jsd", + "name" : "FeedbackSessionsLogic", + "compilationUnitId" : "acm007048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004788jsd", "acm005112jsd", "acm005129jsd", "acm005138jsd", "acm005233jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm006882jsd", "acm006923jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd", "acm007590jsd" ], + "content" : [ "acm007052jsd", "acm007053jsd", "acm007054jsd", "acm007055jsd", "acm007056jsd", "acm007057jsd", "acm007058jsd", "acm007059jsd", "acm007060jsd", "acm007061jsd", "acm007062jsd", "acm007063jsd", "acm007064jsd", "acm007065jsd", "acm007066jsd", "acm007067jsd", "acm007068jsd", "acm007069jsd", "acm007070jsd", "acm007071jsd", "acm007072jsd", "acm007073jsd", "acm007074jsd", "acm007075jsd", "acm007076jsd", "acm007077jsd", "acm007078jsd", "acm007079jsd", "acm007080jsd", "acm007081jsd", "acm007082jsd", "acm007083jsd", "acm007084jsd", "acm007085jsd", "acm007086jsd", "acm007087jsd", "acm007088jsd", "acm007089jsd", "acm007090jsd", "acm007091jsd" ] + }, + "acm007093jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007093jsd", + "name" : "InstructorsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007125jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007094jsd" : { + "type" : "CodePackage", + "id" : "acm007094jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007095jsd" ] + }, + "acm007095jsd" : { + "type" : "CodePackage", + "id" : "acm007095jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007096jsd" ] + }, + "acm007096jsd" : { + "type" : "CodePackage", + "id" : "acm007096jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007093jsd" ] + }, + "acm007097jsd" : { + "type" : "ControlElement", + "id" : "acm007097jsd", + "name" : "InstructorsLogic" + }, + "acm007098jsd" : { + "type" : "ControlElement", + "id" : "acm007098jsd", + "name" : "inst" + }, + "acm007099jsd" : { + "type" : "ControlElement", + "id" : "acm007099jsd", + "name" : "initLogicDependencies" + }, + "acm007100jsd" : { + "type" : "ControlElement", + "id" : "acm007100jsd", + "name" : "putDocument" + }, + "acm007101jsd" : { + "type" : "ControlElement", + "id" : "acm007101jsd", + "name" : "searchInstructorsInWholeSystem" + }, + "acm007102jsd" : { + "type" : "ControlElement", + "id" : "acm007102jsd", + "name" : "createInstructor" + }, + "acm007103jsd" : { + "type" : "ControlElement", + "id" : "acm007103jsd", + "name" : "setArchiveStatusOfInstructor" + }, + "acm007104jsd" : { + "type" : "ControlElement", + "id" : "acm007104jsd", + "name" : "verifyAllInstructorsExistInCourse" + }, + "acm007105jsd" : { + "type" : "ControlElement", + "id" : "acm007105jsd", + "name" : "getInstructorForEmail" + }, + "acm007106jsd" : { + "type" : "ControlElement", + "id" : "acm007106jsd", + "name" : "getInstructorById" + }, + "acm007107jsd" : { + "type" : "ControlElement", + "id" : "acm007107jsd", + "name" : "getInstructorForGoogleId" + }, + "acm007108jsd" : { + "type" : "ControlElement", + "id" : "acm007108jsd", + "name" : "getInstructorForRegistrationKey" + }, + "acm007109jsd" : { + "type" : "ControlElement", + "id" : "acm007109jsd", + "name" : "getInstructorEmailsForCourse" + }, + "acm007110jsd" : { + "type" : "ControlElement", + "id" : "acm007110jsd", + "name" : "getInstructorsForCourse" + }, + "acm007111jsd" : { + "type" : "ControlElement", + "id" : "acm007111jsd", + "name" : "getInstructorsForGoogleId" + }, + "acm007112jsd" : { + "type" : "ControlElement", + "id" : "acm007112jsd", + "name" : "getInstructorsForGoogleId" + }, + "acm007113jsd" : { + "type" : "ControlElement", + "id" : "acm007113jsd", + "name" : "verifyAtLeastOneInstructorIsDisplayed" + }, + "acm007114jsd" : { + "type" : "ControlElement", + "id" : "acm007114jsd", + "name" : "updateInstructorByGoogleIdCascade" + }, + "acm007115jsd" : { + "type" : "ControlElement", + "id" : "acm007115jsd", + "name" : "updateInstructorByEmail" + }, + "acm007116jsd" : { + "type" : "ControlElement", + "id" : "acm007116jsd", + "name" : "deleteInstructors" + }, + "acm007117jsd" : { + "type" : "ControlElement", + "id" : "acm007117jsd", + "name" : "deleteInstructorCascade" + }, + "acm007118jsd" : { + "type" : "ControlElement", + "id" : "acm007118jsd", + "name" : "deleteInstructorsForGoogleIdCascade" + }, + "acm007119jsd" : { + "type" : "ControlElement", + "id" : "acm007119jsd", + "name" : "getCoOwnersForCourse" + }, + "acm007120jsd" : { + "type" : "ControlElement", + "id" : "acm007120jsd", + "name" : "resetInstructorGoogleId" + }, + "acm007121jsd" : { + "type" : "ControlElement", + "id" : "acm007121jsd", + "name" : "updateToEnsureValidityOfInstructorsForTheCourse" + }, + "acm007122jsd" : { + "type" : "ControlElement", + "id" : "acm007122jsd", + "name" : "regenerateInstructorRegistrationKey" + }, + "acm007123jsd" : { + "type" : "ControlElement", + "id" : "acm007123jsd", + "name" : "isInstructorInAnyCourse" + }, + "acm007124jsd" : { + "type" : "ControlElement", + "id" : "acm007124jsd", + "name" : "getNumInstructorsByTimeRange" + }, + "acm007125jsd" : { + "type" : "ClassUnit", + "id" : "acm007125jsd", + "name" : "InstructorsLogic", + "compilationUnitId" : "acm007093jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004788jsd", "acm004871jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm006162jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm006197jsd", "acm006435jsd", "acm006923jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007630jsd" ], + "content" : [ "acm007097jsd", "acm007098jsd", "acm007099jsd", "acm007100jsd", "acm007101jsd", "acm007102jsd", "acm007103jsd", "acm007104jsd", "acm007105jsd", "acm007106jsd", "acm007107jsd", "acm007108jsd", "acm007109jsd", "acm007110jsd", "acm007111jsd", "acm007112jsd", "acm007113jsd", "acm007114jsd", "acm007115jsd", "acm007116jsd", "acm007117jsd", "acm007118jsd", "acm007119jsd", "acm007120jsd", "acm007121jsd", "acm007122jsd", "acm007123jsd", "acm007124jsd" ] + }, + "acm007126jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007126jsd", + "name" : "LogicStarter", + "parentId" : "acm006826jsd", + "content" : [ "acm007133jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007127jsd" : { + "type" : "CodePackage", + "id" : "acm007127jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007128jsd" ] + }, + "acm007128jsd" : { + "type" : "CodePackage", + "id" : "acm007128jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007129jsd" ] + }, + "acm007129jsd" : { + "type" : "CodePackage", + "id" : "acm007129jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007126jsd" ] + }, + "acm007130jsd" : { + "type" : "ControlElement", + "id" : "acm007130jsd", + "name" : "initializeDependencies" + }, + "acm007131jsd" : { + "type" : "ControlElement", + "id" : "acm007131jsd", + "name" : "contextInitialized" + }, + "acm007132jsd" : { + "type" : "ControlElement", + "id" : "acm007132jsd", + "name" : "contextDestroyed" + }, + "acm007133jsd" : { + "type" : "ClassUnit", + "id" : "acm007133jsd", + "name" : "LogicStarter", + "compilationUnitId" : "acm007126jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm006838jsd", "acm006857jsd", "acm006882jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007148jsd", "acm007192jsd", "acm007203jsd" ], + "content" : [ "acm007130jsd", "acm007131jsd", "acm007132jsd" ] + }, + "acm007134jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007134jsd", + "name" : "NotificationsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007148jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007135jsd" : { + "type" : "CodePackage", + "id" : "acm007135jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007136jsd" ] + }, + "acm007136jsd" : { + "type" : "CodePackage", + "id" : "acm007136jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007137jsd" ] + }, + "acm007137jsd" : { + "type" : "CodePackage", + "id" : "acm007137jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007134jsd" ] + }, + "acm007138jsd" : { + "type" : "ControlElement", + "id" : "acm007138jsd", + "name" : "NotificationsLogic" + }, + "acm007139jsd" : { + "type" : "ControlElement", + "id" : "acm007139jsd", + "name" : "inst" + }, + "acm007140jsd" : { + "type" : "ControlElement", + "id" : "acm007140jsd", + "name" : "initLogicDependencies" + }, + "acm007141jsd" : { + "type" : "ControlElement", + "id" : "acm007141jsd", + "name" : "getNotification" + }, + "acm007142jsd" : { + "type" : "ControlElement", + "id" : "acm007142jsd", + "name" : "getAllNotifications" + }, + "acm007143jsd" : { + "type" : "ControlElement", + "id" : "acm007143jsd", + "name" : "getActiveNotificationsByTargetUser" + }, + "acm007144jsd" : { + "type" : "ControlElement", + "id" : "acm007144jsd", + "name" : "createNotification" + }, + "acm007145jsd" : { + "type" : "ControlElement", + "id" : "acm007145jsd", + "name" : "updateNotification" + }, + "acm007146jsd" : { + "type" : "ControlElement", + "id" : "acm007146jsd", + "name" : "deleteNotification" + }, + "acm007147jsd" : { + "type" : "ControlElement", + "id" : "acm007147jsd", + "name" : "doesNotificationExists" + }, + "acm007148jsd" : { + "type" : "ClassUnit", + "id" : "acm007148jsd", + "name" : "NotificationsLogic", + "compilationUnitId" : "acm007134jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004351jsd", "acm005329jsd", "acm005339jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007148jsd", "acm007647jsd" ], + "content" : [ "acm007138jsd", "acm007139jsd", "acm007140jsd", "acm007141jsd", "acm007142jsd", "acm007143jsd", "acm007144jsd", "acm007145jsd", "acm007146jsd", "acm007147jsd" ] + }, + "acm007149jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007149jsd", + "name" : "StudentsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007192jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007150jsd" : { + "type" : "CodePackage", + "id" : "acm007150jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007151jsd" ] + }, + "acm007151jsd" : { + "type" : "CodePackage", + "id" : "acm007151jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007152jsd" ] + }, + "acm007152jsd" : { + "type" : "CodePackage", + "id" : "acm007152jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007149jsd" ] + }, + "acm007153jsd" : { + "type" : "ControlElement", + "id" : "acm007153jsd", + "name" : "StudentsLogic" + }, + "acm007154jsd" : { + "type" : "ControlElement", + "id" : "acm007154jsd", + "name" : "inst" + }, + "acm007155jsd" : { + "type" : "ControlElement", + "id" : "acm007155jsd", + "name" : "initLogicDependencies" + }, + "acm007156jsd" : { + "type" : "ControlElement", + "id" : "acm007156jsd", + "name" : "createStudent" + }, + "acm007157jsd" : { + "type" : "ControlElement", + "id" : "acm007157jsd", + "name" : "getStudentForEmail" + }, + "acm007158jsd" : { + "type" : "ControlElement", + "id" : "acm007158jsd", + "name" : "getAllStudentsForEmail" + }, + "acm007159jsd" : { + "type" : "ControlElement", + "id" : "acm007159jsd", + "name" : "getStudentForCourseIdAndGoogleId" + }, + "acm007160jsd" : { + "type" : "ControlElement", + "id" : "acm007160jsd", + "name" : "getStudentForRegistrationKey" + }, + "acm007161jsd" : { + "type" : "ControlElement", + "id" : "acm007161jsd", + "name" : "getStudentsForGoogleId" + }, + "acm007162jsd" : { + "type" : "ControlElement", + "id" : "acm007162jsd", + "name" : "getNumberOfStudentsForCourse" + }, + "acm007163jsd" : { + "type" : "ControlElement", + "id" : "acm007163jsd", + "name" : "getStudentsForCourse" + }, + "acm007164jsd" : { + "type" : "ControlElement", + "id" : "acm007164jsd", + "name" : "getStudentsForCourse" + }, + "acm007165jsd" : { + "type" : "ControlElement", + "id" : "acm007165jsd", + "name" : "getStudentsForSection" + }, + "acm007166jsd" : { + "type" : "ControlElement", + "id" : "acm007166jsd", + "name" : "getStudentsForTeam" + }, + "acm007167jsd" : { + "type" : "ControlElement", + "id" : "acm007167jsd", + "name" : "getUnregisteredStudentsForCourse" + }, + "acm007168jsd" : { + "type" : "ControlElement", + "id" : "acm007168jsd", + "name" : "searchStudents" + }, + "acm007169jsd" : { + "type" : "ControlElement", + "id" : "acm007169jsd", + "name" : "searchStudentsInWholeSystem" + }, + "acm007170jsd" : { + "type" : "ControlElement", + "id" : "acm007170jsd", + "name" : "verifyAllStudentsExistInCourse" + }, + "acm007171jsd" : { + "type" : "ControlElement", + "id" : "acm007171jsd", + "name" : "isStudentInAnyCourse" + }, + "acm007172jsd" : { + "type" : "ControlElement", + "id" : "acm007172jsd", + "name" : "isStudentInTeam" + }, + "acm007173jsd" : { + "type" : "ControlElement", + "id" : "acm007173jsd", + "name" : "isStudentsInSameTeam" + }, + "acm007174jsd" : { + "type" : "ControlElement", + "id" : "acm007174jsd", + "name" : "updateStudentCascade" + }, + "acm007175jsd" : { + "type" : "ControlElement", + "id" : "acm007175jsd", + "name" : "resetStudentGoogleId" + }, + "acm007176jsd" : { + "type" : "ControlElement", + "id" : "acm007176jsd", + "name" : "regenerateStudentRegistrationKey" + }, + "acm007177jsd" : { + "type" : "ControlElement", + "id" : "acm007177jsd", + "name" : "validateSectionsAndTeams" + }, + "acm007178jsd" : { + "type" : "ControlElement", + "id" : "acm007178jsd", + "name" : "getMergedList" + }, + "acm007179jsd" : { + "type" : "ControlElement", + "id" : "acm007179jsd", + "name" : "getSectionForTeam" + }, + "acm007180jsd" : { + "type" : "ControlElement", + "id" : "acm007180jsd", + "name" : "getSectionInvalidityInfo" + }, + "acm007181jsd" : { + "type" : "ControlElement", + "id" : "acm007181jsd", + "name" : "getTeamInvalidityInfo" + }, + "acm007182jsd" : { + "type" : "ControlElement", + "id" : "acm007182jsd", + "name" : "deleteStudentsInCourseCascade" + }, + "acm007183jsd" : { + "type" : "ControlElement", + "id" : "acm007183jsd", + "name" : "deleteStudentCascade" + }, + "acm007184jsd" : { + "type" : "ControlElement", + "id" : "acm007184jsd", + "name" : "updateStudentResponsesAfterDeletion" + }, + "acm007185jsd" : { + "type" : "ControlElement", + "id" : "acm007185jsd", + "name" : "deleteStudentsForGoogleIdCascade" + }, + "acm007186jsd" : { + "type" : "ControlElement", + "id" : "acm007186jsd", + "name" : "deleteStudents" + }, + "acm007187jsd" : { + "type" : "ControlElement", + "id" : "acm007187jsd", + "name" : "putDocument" + }, + "acm007188jsd" : { + "type" : "ControlElement", + "id" : "acm007188jsd", + "name" : "isInEnrollList" + }, + "acm007189jsd" : { + "type" : "ControlElement", + "id" : "acm007189jsd", + "name" : "isTeamChanged" + }, + "acm007190jsd" : { + "type" : "ControlElement", + "id" : "acm007190jsd", + "name" : "isSectionChanged" + }, + "acm007191jsd" : { + "type" : "ControlElement", + "id" : "acm007191jsd", + "name" : "getNumStudentsByTimeRange" + }, + "acm007192jsd" : { + "type" : "ClassUnit", + "id" : "acm007192jsd", + "name" : "StudentsLogic", + "compilationUnitId" : "acm007149jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm005233jsd", "acm005412jsd", "acm005423jsd", "acm006156jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006197jsd", "acm006923jsd", "acm007042jsd", "acm007092jsd", "acm007192jsd", "acm007703jsd" ], + "content" : [ "acm007153jsd", "acm007154jsd", "acm007155jsd", "acm007156jsd", "acm007157jsd", "acm007158jsd", "acm007159jsd", "acm007160jsd", "acm007161jsd", "acm007162jsd", "acm007163jsd", "acm007164jsd", "acm007165jsd", "acm007166jsd", "acm007167jsd", "acm007168jsd", "acm007169jsd", "acm007170jsd", "acm007171jsd", "acm007172jsd", "acm007173jsd", "acm007174jsd", "acm007175jsd", "acm007176jsd", "acm007177jsd", "acm007178jsd", "acm007179jsd", "acm007180jsd", "acm007181jsd", "acm007182jsd", "acm007183jsd", "acm007184jsd", "acm007185jsd", "acm007186jsd", "acm007187jsd", "acm007188jsd", "acm007189jsd", "acm007190jsd", "acm007191jsd" ] + }, + "acm007193jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007193jsd", + "name" : "UsageStatisticsLogic", + "parentId" : "acm006826jsd", + "content" : [ "acm007203jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007194jsd" : { + "type" : "CodePackage", + "id" : "acm007194jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007195jsd" ] + }, + "acm007195jsd" : { + "type" : "CodePackage", + "id" : "acm007195jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007196jsd" ] + }, + "acm007196jsd" : { + "type" : "CodePackage", + "id" : "acm007196jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007193jsd" ] + }, + "acm007197jsd" : { + "type" : "ControlElement", + "id" : "acm007197jsd", + "name" : "UsageStatisticsLogic" + }, + "acm007198jsd" : { + "type" : "ControlElement", + "id" : "acm007198jsd", + "name" : "inst" + }, + "acm007199jsd" : { + "type" : "ControlElement", + "id" : "acm007199jsd", + "name" : "initLogicDependencies" + }, + "acm007200jsd" : { + "type" : "ControlElement", + "id" : "acm007200jsd", + "name" : "getUsageStatisticsForTimeRange" + }, + "acm007201jsd" : { + "type" : "ControlElement", + "id" : "acm007201jsd", + "name" : "calculateEntitiesStatisticsForTimeRange" + }, + "acm007202jsd" : { + "type" : "ControlElement", + "id" : "acm007202jsd", + "name" : "createUsageStatistics" + }, + "acm007203jsd" : { + "type" : "ClassUnit", + "id" : "acm007203jsd", + "name" : "UsageStatisticsLogic", + "compilationUnitId" : "acm007193jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm006162jsd", "acm006188jsd", "acm006838jsd", "acm006882jsd", "acm007042jsd", "acm007125jsd", "acm007192jsd", "acm007203jsd", "acm007714jsd" ], + "content" : [ "acm007197jsd", "acm007198jsd", "acm007199jsd", "acm007200jsd", "acm007201jsd", "acm007202jsd" ] + }, + "acm007204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007204jsd", + "name" : "package-info", + "parentId" : "acm006826jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007205jsd" : { + "type" : "CodePackage", + "id" : "acm007205jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007206jsd" ] + }, + "acm007206jsd" : { + "type" : "CodePackage", + "id" : "acm007206jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007207jsd" ] + }, + "acm007207jsd" : { + "type" : "CodePackage", + "id" : "acm007207jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm007204jsd" ] + }, + "acm007208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007208jsd", + "name" : "AuthService", + "parentId" : "acm007211jsd", + "content" : [ "acm007213jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007209jsd" : { + "type" : "CodePackage", + "id" : "acm007209jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007210jsd" ] + }, + "acm007210jsd" : { + "type" : "CodePackage", + "id" : "acm007210jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007211jsd" ] + }, + "acm007211jsd" : { + "type" : "CodePackage", + "id" : "acm007211jsd", + "name" : "external", + "parentId" : "acm006561jsd", + "content" : [ "acm007208jsd", "acm007214jsd", "acm007221jsd", "acm007227jsd", "acm007234jsd", "acm007240jsd", "acm007247jsd", "acm007268jsd", "acm007274jsd", "acm007282jsd", "acm007295jsd", "acm007302jsd", "acm007310jsd", "acm007317jsd", "acm007324jsd", "acm007330jsd", "acm007337jsd", "acm007343jsd", "acm011609jsd", "acm011620jsd" ] + }, + "acm007212jsd" : { + "type" : "ControlElement", + "id" : "acm007212jsd", + "name" : "generateLoginLink" + }, + "acm007213jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007213jsd", + "name" : "AuthService", + "compilationUnitId" : "acm007208jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007212jsd" ] + }, + "acm007214jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007214jsd", + "name" : "EmailSenderService", + "parentId" : "acm007211jsd", + "content" : [ "acm007220jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007215jsd" : { + "type" : "CodePackage", + "id" : "acm007215jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007216jsd" ] + }, + "acm007216jsd" : { + "type" : "CodePackage", + "id" : "acm007216jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007217jsd" ] + }, + "acm007217jsd" : { + "type" : "CodePackage", + "id" : "acm007217jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007214jsd" ] + }, + "acm007218jsd" : { + "type" : "ControlElement", + "id" : "acm007218jsd", + "name" : "parseToEmail" + }, + "acm007219jsd" : { + "type" : "ControlElement", + "id" : "acm007219jsd", + "name" : "sendEmail" + }, + "acm007220jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007220jsd", + "name" : "EmailSenderService", + "compilationUnitId" : "acm007214jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006150jsd", "acm006259jsd", "acm006290jsd" ], + "content" : [ "acm007218jsd", "acm007219jsd" ] + }, + "acm007221jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007221jsd", + "name" : "EmptyAuthService", + "parentId" : "acm007211jsd", + "content" : [ "acm007226jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007222jsd" : { + "type" : "CodePackage", + "id" : "acm007222jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007223jsd" ] + }, + "acm007223jsd" : { + "type" : "CodePackage", + "id" : "acm007223jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007224jsd" ] + }, + "acm007224jsd" : { + "type" : "CodePackage", + "id" : "acm007224jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007221jsd" ] + }, + "acm007225jsd" : { + "type" : "ControlElement", + "id" : "acm007225jsd", + "name" : "generateLoginLink" + }, + "acm007226jsd" : { + "type" : "ClassUnit", + "id" : "acm007226jsd", + "name" : "EmptyAuthService", + "compilationUnitId" : "acm007221jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007213jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007225jsd" ] + }, + "acm007227jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007227jsd", + "name" : "EmptyEmailService", + "parentId" : "acm007211jsd", + "content" : [ "acm007233jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007228jsd" : { + "type" : "CodePackage", + "id" : "acm007228jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007229jsd" ] + }, + "acm007229jsd" : { + "type" : "CodePackage", + "id" : "acm007229jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007230jsd" ] + }, + "acm007230jsd" : { + "type" : "CodePackage", + "id" : "acm007230jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007227jsd" ] + }, + "acm007231jsd" : { + "type" : "ControlElement", + "id" : "acm007231jsd", + "name" : "parseToEmail" + }, + "acm007232jsd" : { + "type" : "ControlElement", + "id" : "acm007232jsd", + "name" : "sendEmail" + }, + "acm007233jsd" : { + "type" : "ClassUnit", + "id" : "acm007233jsd", + "name" : "EmptyEmailService", + "compilationUnitId" : "acm007227jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007220jsd" ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd" ], + "content" : [ "acm007231jsd", "acm007232jsd" ] + }, + "acm007234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007234jsd", + "name" : "EmptyRecaptchaService", + "parentId" : "acm007211jsd", + "content" : [ "acm007239jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007235jsd" : { + "type" : "CodePackage", + "id" : "acm007235jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007236jsd" ] + }, + "acm007236jsd" : { + "type" : "CodePackage", + "id" : "acm007236jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007237jsd" ] + }, + "acm007237jsd" : { + "type" : "CodePackage", + "id" : "acm007237jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007234jsd" ] + }, + "acm007238jsd" : { + "type" : "ControlElement", + "id" : "acm007238jsd", + "name" : "isVerificationSuccessful" + }, + "acm007239jsd" : { + "type" : "ClassUnit", + "id" : "acm007239jsd", + "name" : "EmptyRecaptchaService", + "compilationUnitId" : "acm007234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007329jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007238jsd" ] + }, + "acm007240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007240jsd", + "name" : "FirebaseAuthService", + "parentId" : "acm007211jsd", + "content" : [ "acm007246jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007241jsd" : { + "type" : "CodePackage", + "id" : "acm007241jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007242jsd" ] + }, + "acm007242jsd" : { + "type" : "CodePackage", + "id" : "acm007242jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007243jsd" ] + }, + "acm007243jsd" : { + "type" : "CodePackage", + "id" : "acm007243jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007240jsd" ] + }, + "acm007244jsd" : { + "type" : "ControlElement", + "id" : "acm007244jsd", + "name" : "FirebaseAuthService" + }, + "acm007245jsd" : { + "type" : "ControlElement", + "id" : "acm007245jsd", + "name" : "generateLoginLink" + }, + "acm007246jsd" : { + "type" : "ClassUnit", + "id" : "acm007246jsd", + "name" : "FirebaseAuthService", + "compilationUnitId" : "acm007240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007213jsd" ], + "datatypeReferencesIds" : [ "acm006138jsd", "acm006435jsd" ], + "content" : [ "acm007244jsd", "acm007245jsd" ] + }, + "acm007247jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007247jsd", + "name" : "GoogleCloudLoggingService", + "parentId" : "acm007211jsd", + "content" : [ "acm007262jsd", "acm007267jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007248jsd" : { + "type" : "CodePackage", + "id" : "acm007248jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007249jsd" ] + }, + "acm007249jsd" : { + "type" : "CodePackage", + "id" : "acm007249jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007250jsd" ] + }, + "acm007250jsd" : { + "type" : "CodePackage", + "id" : "acm007250jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007247jsd" ] + }, + "acm007251jsd" : { + "type" : "ControlElement", + "id" : "acm007251jsd", + "name" : "queryLogs" + }, + "acm007252jsd" : { + "type" : "ControlElement", + "id" : "acm007252jsd", + "name" : "convertSeverity" + }, + "acm007253jsd" : { + "type" : "ControlElement", + "id" : "acm007253jsd", + "name" : "createFeedbackSessionLog" + }, + "acm007254jsd" : { + "type" : "ControlElement", + "id" : "acm007254jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm007255jsd" : { + "type" : "ControlElement", + "id" : "acm007255jsd", + "name" : "getAllLogEntries" + }, + "acm007256jsd" : { + "type" : "ControlElement", + "id" : "acm007256jsd", + "name" : "getPageLogEntries" + }, + "acm007257jsd" : { + "type" : "ControlElement", + "id" : "acm007257jsd", + "name" : "convertLogSearchParams" + }, + "acm007258jsd" : { + "type" : "ControlElement", + "id" : "acm007258jsd", + "name" : "from" + }, + "acm007259jsd" : { + "type" : "ControlElement", + "id" : "acm007259jsd", + "name" : "addLogName" + }, + "acm007260jsd" : { + "type" : "ControlElement", + "id" : "acm007260jsd", + "name" : "setResourceType" + }, + "acm007261jsd" : { + "type" : "ControlElement", + "id" : "acm007261jsd", + "name" : "setQueryLogsParams" + }, + "acm007262jsd" : { + "type" : "ClassUnit", + "id" : "acm007262jsd", + "name" : "GoogleCloudLoggingService", + "compilationUnitId" : "acm007247jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007309jsd" ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004359jsd", "acm005546jsd", "acm005572jsd", "acm005595jsd", "acm005611jsd", "acm005651jsd", "acm005726jsd", "acm007267jsd" ], + "content" : [ "acm007251jsd", "acm007252jsd", "acm007253jsd", "acm007254jsd", "acm007255jsd", "acm007256jsd", "acm007257jsd", "acm007258jsd", "acm007259jsd", "acm007260jsd", "acm007261jsd" ] + }, + "acm007263jsd" : { + "type" : "ControlElement", + "id" : "acm007263jsd", + "name" : "from" + }, + "acm007264jsd" : { + "type" : "ControlElement", + "id" : "acm007264jsd", + "name" : "addLogName" + }, + "acm007265jsd" : { + "type" : "ControlElement", + "id" : "acm007265jsd", + "name" : "setResourceType" + }, + "acm007266jsd" : { + "type" : "ControlElement", + "id" : "acm007266jsd", + "name" : "setQueryLogsParams" + }, + "acm007267jsd" : { + "type" : "ClassUnit", + "id" : "acm007267jsd", + "name" : "LogSearchParams", + "compilationUnitId" : "acm007247jsd", + "parentDatatypeId" : "acm007262jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005651jsd", "acm007267jsd" ], + "content" : [ "acm007263jsd", "acm007264jsd", "acm007265jsd", "acm007266jsd" ] + }, + "acm007268jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007268jsd", + "name" : "GoogleCloudTasksService", + "parentId" : "acm007211jsd", + "content" : [ "acm007273jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007269jsd" : { + "type" : "CodePackage", + "id" : "acm007269jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007270jsd" ] + }, + "acm007270jsd" : { + "type" : "CodePackage", + "id" : "acm007270jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007271jsd" ] + }, + "acm007271jsd" : { + "type" : "CodePackage", + "id" : "acm007271jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007268jsd" ] + }, + "acm007272jsd" : { + "type" : "ControlElement", + "id" : "acm007272jsd", + "name" : "addDeferredTask" + }, + "acm007273jsd" : { + "type" : "ClassUnit", + "id" : "acm007273jsd", + "name" : "GoogleCloudTasksService", + "compilationUnitId" : "acm007268jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007342jsd" ], + "datatypeReferencesIds" : [ "acm006214jsd", "acm006435jsd", "acm006504jsd" ], + "content" : [ "acm007272jsd" ] + }, + "acm007274jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007274jsd", + "name" : "GoogleRecaptchaService", + "parentId" : "acm007211jsd", + "content" : [ "acm007281jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007275jsd" : { + "type" : "CodePackage", + "id" : "acm007275jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007276jsd" ] + }, + "acm007276jsd" : { + "type" : "CodePackage", + "id" : "acm007276jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007277jsd" ] + }, + "acm007277jsd" : { + "type" : "CodePackage", + "id" : "acm007277jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007274jsd" ] + }, + "acm007278jsd" : { + "type" : "ControlElement", + "id" : "acm007278jsd", + "name" : "GoogleRecaptchaService" + }, + "acm007279jsd" : { + "type" : "ControlElement", + "id" : "acm007279jsd", + "name" : "isVerificationSuccessful" + }, + "acm007280jsd" : { + "type" : "ControlElement", + "id" : "acm007280jsd", + "name" : "getApiResponse" + }, + "acm007281jsd" : { + "type" : "ClassUnit", + "id" : "acm007281jsd", + "name" : "GoogleRecaptchaService", + "compilationUnitId" : "acm007274jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007329jsd" ], + "datatypeReferencesIds" : [ "acm006435jsd" ], + "content" : [ "acm007278jsd", "acm007279jsd", "acm007280jsd" ] + }, + "acm007282jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007282jsd", + "name" : "LocalLoggingService", + "parentId" : "acm007211jsd", + "content" : [ "acm007294jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007283jsd" : { + "type" : "CodePackage", + "id" : "acm007283jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007284jsd" ] + }, + "acm007284jsd" : { + "type" : "CodePackage", + "id" : "acm007284jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007285jsd" ] + }, + "acm007285jsd" : { + "type" : "CodePackage", + "id" : "acm007285jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007282jsd" ] + }, + "acm007286jsd" : { + "type" : "ControlElement", + "id" : "acm007286jsd", + "name" : "loadLocalLogEntries" + }, + "acm007287jsd" : { + "type" : "ControlElement", + "id" : "acm007287jsd", + "name" : "queryLogs" + }, + "acm007288jsd" : { + "type" : "ControlElement", + "id" : "acm007288jsd", + "name" : "isEventBasedFilterSatisfied" + }, + "acm007289jsd" : { + "type" : "ControlElement", + "id" : "acm007289jsd", + "name" : "isExceptionFilterSatisfied" + }, + "acm007290jsd" : { + "type" : "ControlElement", + "id" : "acm007290jsd", + "name" : "isRequestFilterSatisfied" + }, + "acm007291jsd" : { + "type" : "ControlElement", + "id" : "acm007291jsd", + "name" : "createFeedbackSessionLog" + }, + "acm007292jsd" : { + "type" : "ControlElement", + "id" : "acm007292jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm007293jsd" : { + "type" : "ControlElement", + "id" : "acm007293jsd", + "name" : "deepCopyLogEntries" + }, + "acm007294jsd" : { + "type" : "ClassUnit", + "id" : "acm007294jsd", + "name" : "LocalLoggingService", + "compilationUnitId" : "acm007282jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007309jsd" ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004359jsd", "acm005530jsd", "acm005572jsd", "acm005595jsd", "acm005651jsd", "acm005702jsd", "acm005714jsd" ], + "content" : [ "acm007286jsd", "acm007287jsd", "acm007288jsd", "acm007289jsd", "acm007290jsd", "acm007291jsd", "acm007292jsd", "acm007293jsd" ] + }, + "acm007295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007295jsd", + "name" : "LocalTaskQueueService", + "parentId" : "acm007211jsd", + "content" : [ "acm007301jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007296jsd" : { + "type" : "CodePackage", + "id" : "acm007296jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007297jsd" ] + }, + "acm007297jsd" : { + "type" : "CodePackage", + "id" : "acm007297jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007298jsd" ] + }, + "acm007298jsd" : { + "type" : "CodePackage", + "id" : "acm007298jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007295jsd" ] + }, + "acm007299jsd" : { + "type" : "ControlElement", + "id" : "acm007299jsd", + "name" : "addDeferredTask" + }, + "acm007300jsd" : { + "type" : "ControlElement", + "id" : "acm007300jsd", + "name" : "createBasicUri" + }, + "acm007301jsd" : { + "type" : "ClassUnit", + "id" : "acm007301jsd", + "name" : "LocalTaskQueueService", + "compilationUnitId" : "acm007295jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007342jsd" ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm006504jsd" ], + "content" : [ "acm007299jsd", "acm007300jsd" ] + }, + "acm007302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007302jsd", + "name" : "LogService", + "parentId" : "acm007211jsd", + "content" : [ "acm007309jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007303jsd" : { + "type" : "CodePackage", + "id" : "acm007303jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007304jsd" ] + }, + "acm007304jsd" : { + "type" : "CodePackage", + "id" : "acm007304jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007305jsd" ] + }, + "acm007305jsd" : { + "type" : "CodePackage", + "id" : "acm007305jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007302jsd" ] + }, + "acm007306jsd" : { + "type" : "ControlElement", + "id" : "acm007306jsd", + "name" : "queryLogs" + }, + "acm007307jsd" : { + "type" : "ControlElement", + "id" : "acm007307jsd", + "name" : "createFeedbackSessionLog" + }, + "acm007308jsd" : { + "type" : "ControlElement", + "id" : "acm007308jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm007309jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007309jsd", + "name" : "LogService", + "compilationUnitId" : "acm007302jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004359jsd", "acm005651jsd" ], + "content" : [ "acm007306jsd", "acm007307jsd", "acm007308jsd" ] + }, + "acm007310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007310jsd", + "name" : "MailgunService", + "parentId" : "acm007211jsd", + "content" : [ "acm007316jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007311jsd" : { + "type" : "CodePackage", + "id" : "acm007311jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007312jsd" ] + }, + "acm007312jsd" : { + "type" : "CodePackage", + "id" : "acm007312jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007313jsd" ] + }, + "acm007313jsd" : { + "type" : "CodePackage", + "id" : "acm007313jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007310jsd" ] + }, + "acm007314jsd" : { + "type" : "ControlElement", + "id" : "acm007314jsd", + "name" : "parseToEmail" + }, + "acm007315jsd" : { + "type" : "ControlElement", + "id" : "acm007315jsd", + "name" : "sendEmail" + }, + "acm007316jsd" : { + "type" : "ClassUnit", + "id" : "acm007316jsd", + "name" : "MailgunService", + "compilationUnitId" : "acm007310jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007220jsd" ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd", "acm006435jsd" ], + "content" : [ "acm007314jsd", "acm007315jsd" ] + }, + "acm007317jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007317jsd", + "name" : "MailjetService", + "parentId" : "acm007211jsd", + "content" : [ "acm007323jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007318jsd" : { + "type" : "CodePackage", + "id" : "acm007318jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007319jsd" ] + }, + "acm007319jsd" : { + "type" : "CodePackage", + "id" : "acm007319jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007320jsd" ] + }, + "acm007320jsd" : { + "type" : "CodePackage", + "id" : "acm007320jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007317jsd" ] + }, + "acm007321jsd" : { + "type" : "ControlElement", + "id" : "acm007321jsd", + "name" : "parseToEmail" + }, + "acm007322jsd" : { + "type" : "ControlElement", + "id" : "acm007322jsd", + "name" : "sendEmail" + }, + "acm007323jsd" : { + "type" : "ClassUnit", + "id" : "acm007323jsd", + "name" : "MailjetService", + "compilationUnitId" : "acm007317jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007220jsd" ], + "datatypeReferencesIds" : [ "acm006150jsd", "acm006259jsd", "acm006290jsd" ], + "content" : [ "acm007321jsd", "acm007322jsd" ] + }, + "acm007324jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007324jsd", + "name" : "RecaptchaService", + "parentId" : "acm007211jsd", + "content" : [ "acm007329jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007325jsd" : { + "type" : "CodePackage", + "id" : "acm007325jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007326jsd" ] + }, + "acm007326jsd" : { + "type" : "CodePackage", + "id" : "acm007326jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007327jsd" ] + }, + "acm007327jsd" : { + "type" : "CodePackage", + "id" : "acm007327jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007324jsd" ] + }, + "acm007328jsd" : { + "type" : "ControlElement", + "id" : "acm007328jsd", + "name" : "isVerificationSuccessful" + }, + "acm007329jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007329jsd", + "name" : "RecaptchaService", + "compilationUnitId" : "acm007324jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007328jsd" ] + }, + "acm007330jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007330jsd", + "name" : "SendgridService", + "parentId" : "acm007211jsd", + "content" : [ "acm007336jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007331jsd" : { + "type" : "CodePackage", + "id" : "acm007331jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007332jsd" ] + }, + "acm007332jsd" : { + "type" : "CodePackage", + "id" : "acm007332jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007333jsd" ] + }, + "acm007333jsd" : { + "type" : "CodePackage", + "id" : "acm007333jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007330jsd" ] + }, + "acm007334jsd" : { + "type" : "ControlElement", + "id" : "acm007334jsd", + "name" : "parseToEmail" + }, + "acm007335jsd" : { + "type" : "ControlElement", + "id" : "acm007335jsd", + "name" : "sendEmail" + }, + "acm007336jsd" : { + "type" : "ClassUnit", + "id" : "acm007336jsd", + "name" : "SendgridService", + "compilationUnitId" : "acm007330jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm007220jsd" ], + "datatypeReferencesIds" : [ "acm006150jsd", "acm006259jsd", "acm006290jsd" ], + "content" : [ "acm007334jsd", "acm007335jsd" ] + }, + "acm007337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007337jsd", + "name" : "TaskQueueService", + "parentId" : "acm007211jsd", + "content" : [ "acm007342jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007338jsd" : { + "type" : "CodePackage", + "id" : "acm007338jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007339jsd" ] + }, + "acm007339jsd" : { + "type" : "CodePackage", + "id" : "acm007339jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007340jsd" ] + }, + "acm007340jsd" : { + "type" : "CodePackage", + "id" : "acm007340jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007337jsd" ] + }, + "acm007341jsd" : { + "type" : "ControlElement", + "id" : "acm007341jsd", + "name" : "addDeferredTask" + }, + "acm007342jsd" : { + "type" : "InterfaceUnit", + "id" : "acm007342jsd", + "name" : "TaskQueueService", + "compilationUnitId" : "acm007337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006504jsd" ], + "content" : [ "acm007341jsd" ] + }, + "acm007343jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007343jsd", + "name" : "package-info", + "parentId" : "acm007211jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007344jsd" : { + "type" : "CodePackage", + "id" : "acm007344jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007345jsd" ] + }, + "acm007345jsd" : { + "type" : "CodePackage", + "id" : "acm007345jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm007346jsd" ] + }, + "acm007346jsd" : { + "type" : "CodePackage", + "id" : "acm007346jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm007343jsd" ] + }, + "acm007347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007347jsd", + "name" : "Application", + "parentId" : "acm007349jsd", + "content" : [ "acm007357jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "main" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007348jsd" : { + "type" : "CodePackage", + "id" : "acm007348jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007349jsd" ] + }, + "acm007349jsd" : { + "type" : "CodePackage", + "id" : "acm007349jsd", + "name" : "main", + "parentId" : "acm001338jsd", + "content" : [ "acm007347jsd", "acm007358jsd" ] + }, + "acm007350jsd" : { + "type" : "ControlElement", + "id" : "acm007350jsd", + "name" : "Application" + }, + "acm007351jsd" : { + "type" : "ControlElement", + "id" : "acm007351jsd", + "name" : "main" + }, + "acm007352jsd" : { + "type" : "ControlElement", + "id" : "acm007352jsd", + "name" : "lifeCycleStarting" + }, + "acm007353jsd" : { + "type" : "ControlElement", + "id" : "acm007353jsd", + "name" : "lifeCycleStarted" + }, + "acm007354jsd" : { + "type" : "ControlElement", + "id" : "acm007354jsd", + "name" : "lifeCycleFailure" + }, + "acm007355jsd" : { + "type" : "ControlElement", + "id" : "acm007355jsd", + "name" : "lifeCycleStopping" + }, + "acm007356jsd" : { + "type" : "ControlElement", + "id" : "acm007356jsd", + "name" : "lifeCycleStopped" + }, + "acm007357jsd" : { + "type" : "ClassUnit", + "id" : "acm007357jsd", + "name" : "Application", + "compilationUnitId" : "acm007347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm007357jsd", "acm009336jsd" ], + "content" : [ "acm007350jsd", "acm007351jsd", "acm007352jsd", "acm007353jsd", "acm007354jsd", "acm007355jsd", "acm007356jsd" ] + }, + "acm007358jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007358jsd", + "name" : "package-info", + "parentId" : "acm007349jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "main" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007359jsd" : { + "type" : "CodePackage", + "id" : "acm007359jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007360jsd" ] + }, + "acm007360jsd" : { + "type" : "CodePackage", + "id" : "acm007360jsd", + "name" : "main", + "parentId" : null, + "content" : [ "acm007358jsd" ] + }, + "acm007361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007361jsd", + "name" : "AccountRequestsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007380jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007362jsd" : { + "type" : "CodePackage", + "id" : "acm007362jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007363jsd" ] + }, + "acm007363jsd" : { + "type" : "CodePackage", + "id" : "acm007363jsd", + "name" : "storage", + "parentId" : "acm001338jsd", + "content" : [ "acm007364jsd", "acm007722jsd", "acm008103jsd" ] + }, + "acm007364jsd" : { + "type" : "CodePackage", + "id" : "acm007364jsd", + "name" : "api", + "parentId" : "acm007363jsd", + "content" : [ "acm007361jsd", "acm007381jsd", "acm007396jsd", "acm007415jsd", "acm007422jsd", "acm007441jsd", "acm007462jsd", "acm007485jsd", "acm007520jsd", "acm007557jsd", "acm007591jsd", "acm007631jsd", "acm007648jsd", "acm007657jsd", "acm007704jsd", "acm007715jsd", "acm011624jsd", "acm011634jsd", "acm011646jsd", "acm011660jsd", "acm011673jsd", "acm011679jsd", "acm011700jsd", "acm011728jsd", "acm011761jsd", "acm011788jsd", "acm011812jsd", "acm011830jsd", "acm011846jsd" ] + }, + "acm007365jsd" : { + "type" : "ControlElement", + "id" : "acm007365jsd", + "name" : "AccountRequestsDb" + }, + "acm007366jsd" : { + "type" : "ControlElement", + "id" : "acm007366jsd", + "name" : "inst" + }, + "acm007367jsd" : { + "type" : "ControlElement", + "id" : "acm007367jsd", + "name" : "getSearchManager" + }, + "acm007368jsd" : { + "type" : "ControlElement", + "id" : "acm007368jsd", + "name" : "putDocument" + }, + "acm007369jsd" : { + "type" : "ControlElement", + "id" : "acm007369jsd", + "name" : "searchAccountRequestsInWholeSystem" + }, + "acm007370jsd" : { + "type" : "ControlElement", + "id" : "acm007370jsd", + "name" : "getAccountRequest" + }, + "acm007371jsd" : { + "type" : "ControlElement", + "id" : "acm007371jsd", + "name" : "updateAccountRequest" + }, + "acm007372jsd" : { + "type" : "ControlElement", + "id" : "acm007372jsd", + "name" : "getAccountRequestForRegistrationKey" + }, + "acm007373jsd" : { + "type" : "ControlElement", + "id" : "acm007373jsd", + "name" : "getAccountRequestEntity" + }, + "acm007374jsd" : { + "type" : "ControlElement", + "id" : "acm007374jsd", + "name" : "deleteAccountRequest" + }, + "acm007375jsd" : { + "type" : "ControlElement", + "id" : "acm007375jsd", + "name" : "deleteDocumentByAccountRequestId" + }, + "acm007376jsd" : { + "type" : "ControlElement", + "id" : "acm007376jsd", + "name" : "load" + }, + "acm007377jsd" : { + "type" : "ControlElement", + "id" : "acm007377jsd", + "name" : "hasExistingEntities" + }, + "acm007378jsd" : { + "type" : "ControlElement", + "id" : "acm007378jsd", + "name" : "makeAttributes" + }, + "acm007379jsd" : { + "type" : "ControlElement", + "id" : "acm007379jsd", + "name" : "getNumAccountRequestsByTimeRange" + }, + "acm007380jsd" : { + "type" : "ClassUnit", + "id" : "acm007380jsd", + "name" : "AccountRequestsDb", + "compilationUnitId" : "acm007361jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004549jsd", "acm006168jsd", "acm006188jsd", "acm006197jsd", "acm007380jsd", "acm007758jsd", "acm008117jsd" ], + "content" : [ "acm007365jsd", "acm007366jsd", "acm007367jsd", "acm007368jsd", "acm007369jsd", "acm007370jsd", "acm007371jsd", "acm007372jsd", "acm007373jsd", "acm007374jsd", "acm007375jsd", "acm007376jsd", "acm007377jsd", "acm007378jsd", "acm007379jsd" ] + }, + "acm007381jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007381jsd", + "name" : "AccountsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007395jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007382jsd" : { + "type" : "CodePackage", + "id" : "acm007382jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007383jsd" ] + }, + "acm007383jsd" : { + "type" : "CodePackage", + "id" : "acm007383jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007384jsd" ] + }, + "acm007384jsd" : { + "type" : "CodePackage", + "id" : "acm007384jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007381jsd" ] + }, + "acm007385jsd" : { + "type" : "ControlElement", + "id" : "acm007385jsd", + "name" : "AccountsDb" + }, + "acm007386jsd" : { + "type" : "ControlElement", + "id" : "acm007386jsd", + "name" : "inst" + }, + "acm007387jsd" : { + "type" : "ControlElement", + "id" : "acm007387jsd", + "name" : "getAccount" + }, + "acm007388jsd" : { + "type" : "ControlElement", + "id" : "acm007388jsd", + "name" : "getAccountsForEmail" + }, + "acm007389jsd" : { + "type" : "ControlElement", + "id" : "acm007389jsd", + "name" : "updateAccount" + }, + "acm007390jsd" : { + "type" : "ControlElement", + "id" : "acm007390jsd", + "name" : "deleteAccount" + }, + "acm007391jsd" : { + "type" : "ControlElement", + "id" : "acm007391jsd", + "name" : "getAccountEntity" + }, + "acm007392jsd" : { + "type" : "ControlElement", + "id" : "acm007392jsd", + "name" : "load" + }, + "acm007393jsd" : { + "type" : "ControlElement", + "id" : "acm007393jsd", + "name" : "hasExistingEntities" + }, + "acm007394jsd" : { + "type" : "ControlElement", + "id" : "acm007394jsd", + "name" : "makeAttributes" + }, + "acm007395jsd" : { + "type" : "ClassUnit", + "id" : "acm007395jsd", + "name" : "AccountsDb", + "compilationUnitId" : "acm007381jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004497jsd", "acm006168jsd", "acm006188jsd", "acm007395jsd", "acm007735jsd" ], + "content" : [ "acm007385jsd", "acm007386jsd", "acm007387jsd", "acm007388jsd", "acm007389jsd", "acm007390jsd", "acm007391jsd", "acm007392jsd", "acm007393jsd", "acm007394jsd" ] + }, + "acm007396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007396jsd", + "name" : "CoursesDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007414jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007397jsd" : { + "type" : "CodePackage", + "id" : "acm007397jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007398jsd" ] + }, + "acm007398jsd" : { + "type" : "CodePackage", + "id" : "acm007398jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007399jsd" ] + }, + "acm007399jsd" : { + "type" : "CodePackage", + "id" : "acm007399jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007396jsd" ] + }, + "acm007400jsd" : { + "type" : "ControlElement", + "id" : "acm007400jsd", + "name" : "CoursesDb" + }, + "acm007401jsd" : { + "type" : "ControlElement", + "id" : "acm007401jsd", + "name" : "inst" + }, + "acm007402jsd" : { + "type" : "ControlElement", + "id" : "acm007402jsd", + "name" : "getCourse" + }, + "acm007403jsd" : { + "type" : "ControlElement", + "id" : "acm007403jsd", + "name" : "getCourses" + }, + "acm007404jsd" : { + "type" : "ControlElement", + "id" : "acm007404jsd", + "name" : "updateCourse" + }, + "acm007405jsd" : { + "type" : "ControlElement", + "id" : "acm007405jsd", + "name" : "deleteCourse" + }, + "acm007406jsd" : { + "type" : "ControlElement", + "id" : "acm007406jsd", + "name" : "softDeleteCourse" + }, + "acm007407jsd" : { + "type" : "ControlElement", + "id" : "acm007407jsd", + "name" : "restoreDeletedCourse" + }, + "acm007408jsd" : { + "type" : "ControlElement", + "id" : "acm007408jsd", + "name" : "load" + }, + "acm007409jsd" : { + "type" : "ControlElement", + "id" : "acm007409jsd", + "name" : "hasExistingEntities" + }, + "acm007410jsd" : { + "type" : "ControlElement", + "id" : "acm007410jsd", + "name" : "getCourseEntity" + }, + "acm007411jsd" : { + "type" : "ControlElement", + "id" : "acm007411jsd", + "name" : "getCourseEntities" + }, + "acm007412jsd" : { + "type" : "ControlElement", + "id" : "acm007412jsd", + "name" : "makeAttributes" + }, + "acm007413jsd" : { + "type" : "ControlElement", + "id" : "acm007413jsd", + "name" : "getNumCoursesByTimeRange" + }, + "acm007414jsd" : { + "type" : "ClassUnit", + "id" : "acm007414jsd", + "name" : "CoursesDb", + "compilationUnitId" : "acm007396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm004607jsd", "acm006168jsd", "acm006188jsd", "acm007414jsd", "acm007792jsd" ], + "content" : [ "acm007400jsd", "acm007401jsd", "acm007402jsd", "acm007403jsd", "acm007404jsd", "acm007405jsd", "acm007406jsd", "acm007407jsd", "acm007408jsd", "acm007409jsd", "acm007410jsd", "acm007411jsd", "acm007412jsd", "acm007413jsd" ] + }, + "acm007415jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007415jsd", + "name" : "DatastoreEmulatorRunner", + "parentId" : "acm007364jsd", + "content" : [ "acm007421jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007416jsd" : { + "type" : "CodePackage", + "id" : "acm007416jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007417jsd" ] + }, + "acm007417jsd" : { + "type" : "CodePackage", + "id" : "acm007417jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007418jsd" ] + }, + "acm007418jsd" : { + "type" : "CodePackage", + "id" : "acm007418jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007415jsd" ] + }, + "acm007419jsd" : { + "type" : "ControlElement", + "id" : "acm007419jsd", + "name" : "DatastoreEmulatorRunner" + }, + "acm007420jsd" : { + "type" : "ControlElement", + "id" : "acm007420jsd", + "name" : "main" + }, + "acm007421jsd" : { + "type" : "ClassUnit", + "id" : "acm007421jsd", + "name" : "DatastoreEmulatorRunner", + "compilationUnitId" : "acm007415jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007419jsd", "acm007420jsd" ] + }, + "acm007422jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007422jsd", + "name" : "DeadlineExtensionsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007440jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007423jsd" : { + "type" : "CodePackage", + "id" : "acm007423jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007424jsd" ] + }, + "acm007424jsd" : { + "type" : "CodePackage", + "id" : "acm007424jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007425jsd" ] + }, + "acm007425jsd" : { + "type" : "CodePackage", + "id" : "acm007425jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007422jsd" ] + }, + "acm007426jsd" : { + "type" : "ControlElement", + "id" : "acm007426jsd", + "name" : "DeadlineExtensionsDb" + }, + "acm007427jsd" : { + "type" : "ControlElement", + "id" : "acm007427jsd", + "name" : "inst" + }, + "acm007428jsd" : { + "type" : "ControlElement", + "id" : "acm007428jsd", + "name" : "getDeadlineExtension" + }, + "acm007429jsd" : { + "type" : "ControlElement", + "id" : "acm007429jsd", + "name" : "updateDeadlineExtension" + }, + "acm007430jsd" : { + "type" : "ControlElement", + "id" : "acm007430jsd", + "name" : "updateDeadlineExtensionsWithNewEmail" + }, + "acm007431jsd" : { + "type" : "ControlElement", + "id" : "acm007431jsd", + "name" : "getDeadlineExtensionEntity" + }, + "acm007432jsd" : { + "type" : "ControlElement", + "id" : "acm007432jsd", + "name" : "deleteDeadlineExtension" + }, + "acm007433jsd" : { + "type" : "ControlElement", + "id" : "acm007433jsd", + "name" : "deleteDeadlineExtensions" + }, + "acm007434jsd" : { + "type" : "ControlElement", + "id" : "acm007434jsd", + "name" : "verifyValidDeletionQuery" + }, + "acm007435jsd" : { + "type" : "ControlElement", + "id" : "acm007435jsd", + "name" : "getDeadlineExtensionsPossiblyNeedingClosingEmail" + }, + "acm007436jsd" : { + "type" : "ControlElement", + "id" : "acm007436jsd", + "name" : "getDeadlineExtensionEntitiesPossiblyNeedingClosingEmail" + }, + "acm007437jsd" : { + "type" : "ControlElement", + "id" : "acm007437jsd", + "name" : "load" + }, + "acm007438jsd" : { + "type" : "ControlElement", + "id" : "acm007438jsd", + "name" : "hasExistingEntities" + }, + "acm007439jsd" : { + "type" : "ControlElement", + "id" : "acm007439jsd", + "name" : "makeAttributes" + }, + "acm007440jsd" : { + "type" : "ClassUnit", + "id" : "acm007440jsd", + "name" : "DeadlineExtensionsDb", + "compilationUnitId" : "acm007422jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004662jsd", "acm004678jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007440jsd", "acm007850jsd" ], + "content" : [ "acm007426jsd", "acm007427jsd", "acm007428jsd", "acm007429jsd", "acm007430jsd", "acm007431jsd", "acm007432jsd", "acm007433jsd", "acm007434jsd", "acm007435jsd", "acm007436jsd", "acm007437jsd", "acm007438jsd", "acm007439jsd" ] + }, + "acm007441jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007441jsd", + "name" : "EntitiesDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007461jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007442jsd" : { + "type" : "CodePackage", + "id" : "acm007442jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007443jsd" ] + }, + "acm007443jsd" : { + "type" : "CodePackage", + "id" : "acm007443jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007444jsd" ] + }, + "acm007444jsd" : { + "type" : "CodePackage", + "id" : "acm007444jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007441jsd" ] + }, + "acm007445jsd" : { + "type" : "ControlElement", + "id" : "acm007445jsd", + "name" : "createEntity" + }, + "acm007446jsd" : { + "type" : "ControlElement", + "id" : "acm007446jsd", + "name" : "createEntity" + }, + "acm007447jsd" : { + "type" : "ControlElement", + "id" : "acm007447jsd", + "name" : "convertToEntityForSaving" + }, + "acm007448jsd" : { + "type" : "ControlElement", + "id" : "acm007448jsd", + "name" : "hasExistingEntities" + }, + "acm007449jsd" : { + "type" : "ControlElement", + "id" : "acm007449jsd", + "name" : "putEntity" + }, + "acm007450jsd" : { + "type" : "ControlElement", + "id" : "acm007450jsd", + "name" : "putEntities" + }, + "acm007451jsd" : { + "type" : "ControlElement", + "id" : "acm007451jsd", + "name" : "hasSameValue" + }, + "acm007452jsd" : { + "type" : "ControlElement", + "id" : "acm007452jsd", + "name" : "saveEntity" + }, + "acm007453jsd" : { + "type" : "ControlElement", + "id" : "acm007453jsd", + "name" : "saveEntities" + }, + "acm007454jsd" : { + "type" : "ControlElement", + "id" : "acm007454jsd", + "name" : "deleteEntity" + }, + "acm007455jsd" : { + "type" : "ControlElement", + "id" : "acm007455jsd", + "name" : "deleteEntity" + }, + "acm007456jsd" : { + "type" : "ControlElement", + "id" : "acm007456jsd", + "name" : "load" + }, + "acm007457jsd" : { + "type" : "ControlElement", + "id" : "acm007457jsd", + "name" : "makeAttributes" + }, + "acm007458jsd" : { + "type" : "ControlElement", + "id" : "acm007458jsd", + "name" : "makeAttributes" + }, + "acm007459jsd" : { + "type" : "ControlElement", + "id" : "acm007459jsd", + "name" : "makeAttributesOrNull" + }, + "acm007460jsd" : { + "type" : "ControlElement", + "id" : "acm007460jsd", + "name" : "makeKeyFromWebSafeString" + }, + "acm007461jsd" : { + "type" : "ClassUnit", + "id" : "acm007461jsd", + "name" : "EntitiesDb", + "compilationUnitId" : "acm007441jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004706jsd", "acm006162jsd", "acm006188jsd", "acm006435jsd", "acm007768jsd" ], + "content" : [ "acm007445jsd", "acm007446jsd", "acm007447jsd", "acm007448jsd", "acm007449jsd", "acm007450jsd", "acm007451jsd", "acm007452jsd", "acm007453jsd", "acm007454jsd", "acm007455jsd", "acm007456jsd", "acm007457jsd", "acm007458jsd", "acm007459jsd", "acm007460jsd" ] + }, + "acm007462jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007462jsd", + "name" : "FeedbackQuestionsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007484jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007463jsd" : { + "type" : "CodePackage", + "id" : "acm007463jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007464jsd" ] + }, + "acm007464jsd" : { + "type" : "CodePackage", + "id" : "acm007464jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007465jsd" ] + }, + "acm007465jsd" : { + "type" : "CodePackage", + "id" : "acm007465jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007462jsd" ] + }, + "acm007466jsd" : { + "type" : "ControlElement", + "id" : "acm007466jsd", + "name" : "FeedbackQuestionsDb" + }, + "acm007467jsd" : { + "type" : "ControlElement", + "id" : "acm007467jsd", + "name" : "inst" + }, + "acm007468jsd" : { + "type" : "ControlElement", + "id" : "acm007468jsd", + "name" : "getFeedbackQuestion" + }, + "acm007469jsd" : { + "type" : "ControlElement", + "id" : "acm007469jsd", + "name" : "getFeedbackQuestion" + }, + "acm007470jsd" : { + "type" : "ControlElement", + "id" : "acm007470jsd", + "name" : "getFeedbackQuestionsForSession" + }, + "acm007471jsd" : { + "type" : "ControlElement", + "id" : "acm007471jsd", + "name" : "getFeedbackQuestionsForGiverType" + }, + "acm007472jsd" : { + "type" : "ControlElement", + "id" : "acm007472jsd", + "name" : "hasFeedbackQuestionsForGiverType" + }, + "acm007473jsd" : { + "type" : "ControlElement", + "id" : "acm007473jsd", + "name" : "updateFeedbackQuestion" + }, + "acm007474jsd" : { + "type" : "ControlElement", + "id" : "acm007474jsd", + "name" : "deleteFeedbackQuestion" + }, + "acm007475jsd" : { + "type" : "ControlElement", + "id" : "acm007475jsd", + "name" : "deleteFeedbackQuestions" + }, + "acm007476jsd" : { + "type" : "ControlElement", + "id" : "acm007476jsd", + "name" : "getFeedbackQuestionEntity" + }, + "acm007477jsd" : { + "type" : "ControlElement", + "id" : "acm007477jsd", + "name" : "getFeedbackQuestionEntity" + }, + "acm007478jsd" : { + "type" : "ControlElement", + "id" : "acm007478jsd", + "name" : "getFeedbackQuestionEntitiesForSession" + }, + "acm007479jsd" : { + "type" : "ControlElement", + "id" : "acm007479jsd", + "name" : "getFeedbackQuestionEntitiesForGiverType" + }, + "acm007480jsd" : { + "type" : "ControlElement", + "id" : "acm007480jsd", + "name" : "hasFeedbackQuestionEntitiesForGiverType" + }, + "acm007481jsd" : { + "type" : "ControlElement", + "id" : "acm007481jsd", + "name" : "load" + }, + "acm007482jsd" : { + "type" : "ControlElement", + "id" : "acm007482jsd", + "name" : "hasExistingEntities" + }, + "acm007483jsd" : { + "type" : "ControlElement", + "id" : "acm007483jsd", + "name" : "makeAttributes" + }, + "acm007484jsd" : { + "type" : "ClassUnit", + "id" : "acm007484jsd", + "name" : "FeedbackQuestionsDb", + "compilationUnitId" : "acm007462jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004226jsd", "acm004788jsd", "acm004799jsd", "acm006168jsd", "acm006188jsd", "acm007484jsd", "acm007888jsd" ], + "content" : [ "acm007466jsd", "acm007467jsd", "acm007468jsd", "acm007469jsd", "acm007470jsd", "acm007471jsd", "acm007472jsd", "acm007473jsd", "acm007474jsd", "acm007475jsd", "acm007476jsd", "acm007477jsd", "acm007478jsd", "acm007479jsd", "acm007480jsd", "acm007481jsd", "acm007482jsd", "acm007483jsd" ] + }, + "acm007485jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007485jsd", + "name" : "FeedbackResponseCommentsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007519jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007486jsd" : { + "type" : "CodePackage", + "id" : "acm007486jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007487jsd" ] + }, + "acm007487jsd" : { + "type" : "CodePackage", + "id" : "acm007487jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007488jsd" ] + }, + "acm007488jsd" : { + "type" : "CodePackage", + "id" : "acm007488jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007485jsd" ] + }, + "acm007489jsd" : { + "type" : "ControlElement", + "id" : "acm007489jsd", + "name" : "FeedbackResponseCommentsDb" + }, + "acm007490jsd" : { + "type" : "ControlElement", + "id" : "acm007490jsd", + "name" : "inst" + }, + "acm007491jsd" : { + "type" : "ControlElement", + "id" : "acm007491jsd", + "name" : "getFeedbackResponseComment" + }, + "acm007492jsd" : { + "type" : "ControlElement", + "id" : "acm007492jsd", + "name" : "getFeedbackResponseComment" + }, + "acm007493jsd" : { + "type" : "ControlElement", + "id" : "acm007493jsd", + "name" : "getFeedbackResponseCommentForGiver" + }, + "acm007494jsd" : { + "type" : "ControlElement", + "id" : "acm007494jsd", + "name" : "getFeedbackResponseCommentsForResponse" + }, + "acm007495jsd" : { + "type" : "ControlElement", + "id" : "acm007495jsd", + "name" : "getFeedbackResponseCommentForResponseFromParticipant" + }, + "acm007496jsd" : { + "type" : "ControlElement", + "id" : "acm007496jsd", + "name" : "getFeedbackResponseCommentsForSession" + }, + "acm007497jsd" : { + "type" : "ControlElement", + "id" : "acm007497jsd", + "name" : "getFeedbackResponseCommentsForQuestion" + }, + "acm007498jsd" : { + "type" : "ControlElement", + "id" : "acm007498jsd", + "name" : "getFeedbackResponseCommentsForSessionInSection" + }, + "acm007499jsd" : { + "type" : "ControlElement", + "id" : "acm007499jsd", + "name" : "getFeedbackResponseCommentsForQuestionInSection" + }, + "acm007500jsd" : { + "type" : "ControlElement", + "id" : "acm007500jsd", + "name" : "updateFeedbackResponseComment" + }, + "acm007501jsd" : { + "type" : "ControlElement", + "id" : "acm007501jsd", + "name" : "updateGiverEmailOfFeedbackResponseComments" + }, + "acm007502jsd" : { + "type" : "ControlElement", + "id" : "acm007502jsd", + "name" : "updateLastEditorEmailOfFeedbackResponseComments" + }, + "acm007503jsd" : { + "type" : "ControlElement", + "id" : "acm007503jsd", + "name" : "deleteFeedbackResponseComment" + }, + "acm007504jsd" : { + "type" : "ControlElement", + "id" : "acm007504jsd", + "name" : "deleteFeedbackResponseComments" + }, + "acm007505jsd" : { + "type" : "ControlElement", + "id" : "acm007505jsd", + "name" : "getFeedbackResponseCommentEntity" + }, + "acm007506jsd" : { + "type" : "ControlElement", + "id" : "acm007506jsd", + "name" : "getFeedbackResponseCommentEntity" + }, + "acm007507jsd" : { + "type" : "ControlElement", + "id" : "acm007507jsd", + "name" : "getFeedbackResponseCommentEntitiesForGiverInCourse" + }, + "acm007508jsd" : { + "type" : "ControlElement", + "id" : "acm007508jsd", + "name" : "getFeedbackResponseCommentEntitiesForLastEditorInCourse" + }, + "acm007509jsd" : { + "type" : "ControlElement", + "id" : "acm007509jsd", + "name" : "getFeedbackResponseCommentsForResponseQuery" + }, + "acm007510jsd" : { + "type" : "ControlElement", + "id" : "acm007510jsd", + "name" : "getFeedbackResponseCommentEntitiesForResponseFromParticipant" + }, + "acm007511jsd" : { + "type" : "ControlElement", + "id" : "acm007511jsd", + "name" : "getFeedbackResponseCommentEntitiesForResponse" + }, + "acm007512jsd" : { + "type" : "ControlElement", + "id" : "acm007512jsd", + "name" : "getFeedbackResponseCommentEntitiesForSession" + }, + "acm007513jsd" : { + "type" : "ControlElement", + "id" : "acm007513jsd", + "name" : "getFeedbackResponseCommentEntitiesForQuestion" + }, + "acm007514jsd" : { + "type" : "ControlElement", + "id" : "acm007514jsd", + "name" : "getFeedbackResponseCommentEntitiesForQuestionInSection" + }, + "acm007515jsd" : { + "type" : "ControlElement", + "id" : "acm007515jsd", + "name" : "getFeedbackResponseCommentEntitiesForSessionInSection" + }, + "acm007516jsd" : { + "type" : "ControlElement", + "id" : "acm007516jsd", + "name" : "load" + }, + "acm007517jsd" : { + "type" : "ControlElement", + "id" : "acm007517jsd", + "name" : "hasExistingEntities" + }, + "acm007518jsd" : { + "type" : "ControlElement", + "id" : "acm007518jsd", + "name" : "makeAttributes" + }, + "acm007519jsd" : { + "type" : "ClassUnit", + "id" : "acm007519jsd", + "name" : "FeedbackResponseCommentsDb", + "compilationUnitId" : "acm007485jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004226jsd", "acm004971jsd", "acm004989jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm007519jsd", "acm007960jsd" ], + "content" : [ "acm007489jsd", "acm007490jsd", "acm007491jsd", "acm007492jsd", "acm007493jsd", "acm007494jsd", "acm007495jsd", "acm007496jsd", "acm007497jsd", "acm007498jsd", "acm007499jsd", "acm007500jsd", "acm007501jsd", "acm007502jsd", "acm007503jsd", "acm007504jsd", "acm007505jsd", "acm007506jsd", "acm007507jsd", "acm007508jsd", "acm007509jsd", "acm007510jsd", "acm007511jsd", "acm007512jsd", "acm007513jsd", "acm007514jsd", "acm007515jsd", "acm007516jsd", "acm007517jsd", "acm007518jsd" ] + }, + "acm007520jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007520jsd", + "name" : "FeedbackResponsesDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007556jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007521jsd" : { + "type" : "CodePackage", + "id" : "acm007521jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007522jsd" ] + }, + "acm007522jsd" : { + "type" : "CodePackage", + "id" : "acm007522jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007523jsd" ] + }, + "acm007523jsd" : { + "type" : "CodePackage", + "id" : "acm007523jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007520jsd" ] + }, + "acm007524jsd" : { + "type" : "ControlElement", + "id" : "acm007524jsd", + "name" : "FeedbackResponsesDb" + }, + "acm007525jsd" : { + "type" : "ControlElement", + "id" : "acm007525jsd", + "name" : "inst" + }, + "acm007526jsd" : { + "type" : "ControlElement", + "id" : "acm007526jsd", + "name" : "getGiverSetThatAnswerFeedbackSession" + }, + "acm007527jsd" : { + "type" : "ControlElement", + "id" : "acm007527jsd", + "name" : "getFeedbackResponse" + }, + "acm007528jsd" : { + "type" : "ControlElement", + "id" : "acm007528jsd", + "name" : "getFeedbackResponse" + }, + "acm007529jsd" : { + "type" : "ControlElement", + "id" : "acm007529jsd", + "name" : "getFeedbackResponsesForQuestionInSection" + }, + "acm007530jsd" : { + "type" : "ControlElement", + "id" : "acm007530jsd", + "name" : "getFeedbackResponsesForQuestion" + }, + "acm007531jsd" : { + "type" : "ControlElement", + "id" : "acm007531jsd", + "name" : "areThereResponsesForQuestion" + }, + "acm007532jsd" : { + "type" : "ControlElement", + "id" : "acm007532jsd", + "name" : "getFeedbackResponsesForSession" + }, + "acm007533jsd" : { + "type" : "ControlElement", + "id" : "acm007533jsd", + "name" : "getFeedbackResponsesForSessionInSection" + }, + "acm007534jsd" : { + "type" : "ControlElement", + "id" : "acm007534jsd", + "name" : "getFeedbackResponsesFromGiverForQuestion" + }, + "acm007535jsd" : { + "type" : "ControlElement", + "id" : "acm007535jsd", + "name" : "getFeedbackResponsesForReceiverForQuestion" + }, + "acm007536jsd" : { + "type" : "ControlElement", + "id" : "acm007536jsd", + "name" : "hasResponsesFromGiverInSession" + }, + "acm007537jsd" : { + "type" : "ControlElement", + "id" : "acm007537jsd", + "name" : "getFeedbackResponsesForReceiverForCourse" + }, + "acm007538jsd" : { + "type" : "ControlElement", + "id" : "acm007538jsd", + "name" : "getFeedbackResponsesFromGiverForCourse" + }, + "acm007539jsd" : { + "type" : "ControlElement", + "id" : "acm007539jsd", + "name" : "updateFeedbackResponse" + }, + "acm007540jsd" : { + "type" : "ControlElement", + "id" : "acm007540jsd", + "name" : "deleteFeedbackResponse" + }, + "acm007541jsd" : { + "type" : "ControlElement", + "id" : "acm007541jsd", + "name" : "deleteFeedbackResponses" + }, + "acm007542jsd" : { + "type" : "ControlElement", + "id" : "acm007542jsd", + "name" : "hasFeedbackResponseEntitiesForCourse" + }, + "acm007543jsd" : { + "type" : "ControlElement", + "id" : "acm007543jsd", + "name" : "getFeedbackResponseEntity" + }, + "acm007544jsd" : { + "type" : "ControlElement", + "id" : "acm007544jsd", + "name" : "getFeedbackResponseEntitiesForQuestionInSection" + }, + "acm007545jsd" : { + "type" : "ControlElement", + "id" : "acm007545jsd", + "name" : "getFeedbackResponseEntitiesForQuestion" + }, + "acm007546jsd" : { + "type" : "ControlElement", + "id" : "acm007546jsd", + "name" : "getFeedbackResponseEntitiesForSession" + }, + "acm007547jsd" : { + "type" : "ControlElement", + "id" : "acm007547jsd", + "name" : "getFeedbackResponseEntitiesForSessionInSection" + }, + "acm007548jsd" : { + "type" : "ControlElement", + "id" : "acm007548jsd", + "name" : "getFeedbackResponseEntitiesFromGiverForQuestion" + }, + "acm007549jsd" : { + "type" : "ControlElement", + "id" : "acm007549jsd", + "name" : "getFeedbackResponseEntitiesForReceiverForQuestion" + }, + "acm007550jsd" : { + "type" : "ControlElement", + "id" : "acm007550jsd", + "name" : "getFeedbackResponseEntitiesForReceiverForCourse" + }, + "acm007551jsd" : { + "type" : "ControlElement", + "id" : "acm007551jsd", + "name" : "getFeedbackResponseEntitiesFromGiverForCourse" + }, + "acm007552jsd" : { + "type" : "ControlElement", + "id" : "acm007552jsd", + "name" : "load" + }, + "acm007553jsd" : { + "type" : "ControlElement", + "id" : "acm007553jsd", + "name" : "hasExistingEntities" + }, + "acm007554jsd" : { + "type" : "ControlElement", + "id" : "acm007554jsd", + "name" : "makeAttributes" + }, + "acm007555jsd" : { + "type" : "ControlElement", + "id" : "acm007555jsd", + "name" : "getNumFeedbackResponsesByTimeRange" + }, + "acm007556jsd" : { + "type" : "ClassUnit", + "id" : "acm007556jsd", + "name" : "FeedbackResponsesDb", + "compilationUnitId" : "acm007520jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004248jsd", "acm004871jsd", "acm004885jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007556jsd", "acm007920jsd" ], + "content" : [ "acm007524jsd", "acm007525jsd", "acm007526jsd", "acm007527jsd", "acm007528jsd", "acm007529jsd", "acm007530jsd", "acm007531jsd", "acm007532jsd", "acm007533jsd", "acm007534jsd", "acm007535jsd", "acm007536jsd", "acm007537jsd", "acm007538jsd", "acm007539jsd", "acm007540jsd", "acm007541jsd", "acm007542jsd", "acm007543jsd", "acm007544jsd", "acm007545jsd", "acm007546jsd", "acm007547jsd", "acm007548jsd", "acm007549jsd", "acm007550jsd", "acm007551jsd", "acm007552jsd", "acm007553jsd", "acm007554jsd", "acm007555jsd" ] + }, + "acm007557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007557jsd", + "name" : "FeedbackSessionsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007590jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007558jsd" : { + "type" : "CodePackage", + "id" : "acm007558jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007559jsd" ] + }, + "acm007559jsd" : { + "type" : "CodePackage", + "id" : "acm007559jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007560jsd" ] + }, + "acm007560jsd" : { + "type" : "CodePackage", + "id" : "acm007560jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007557jsd" ] + }, + "acm007561jsd" : { + "type" : "ControlElement", + "id" : "acm007561jsd", + "name" : "FeedbackSessionsDb" + }, + "acm007562jsd" : { + "type" : "ControlElement", + "id" : "acm007562jsd", + "name" : "inst" + }, + "acm007563jsd" : { + "type" : "ControlElement", + "id" : "acm007563jsd", + "name" : "getAllOngoingSessions" + }, + "acm007564jsd" : { + "type" : "ControlElement", + "id" : "acm007564jsd", + "name" : "getFeedbackSession" + }, + "acm007565jsd" : { + "type" : "ControlElement", + "id" : "acm007565jsd", + "name" : "getSoftDeletedFeedbackSession" + }, + "acm007566jsd" : { + "type" : "ControlElement", + "id" : "acm007566jsd", + "name" : "getFeedbackSessionsForCourse" + }, + "acm007567jsd" : { + "type" : "ControlElement", + "id" : "acm007567jsd", + "name" : "getFeedbackSessionsForCourseStartingAfter" + }, + "acm007568jsd" : { + "type" : "ControlElement", + "id" : "acm007568jsd", + "name" : "getSoftDeletedFeedbackSessionsForCourse" + }, + "acm007569jsd" : { + "type" : "ControlElement", + "id" : "acm007569jsd", + "name" : "getFeedbackSessionsPossiblyNeedingOpenEmail" + }, + "acm007570jsd" : { + "type" : "ControlElement", + "id" : "acm007570jsd", + "name" : "getFeedbackSessionsPossiblyNeedingClosingEmail" + }, + "acm007571jsd" : { + "type" : "ControlElement", + "id" : "acm007571jsd", + "name" : "getFeedbackSessionsPossiblyNeedingClosedEmail" + }, + "acm007572jsd" : { + "type" : "ControlElement", + "id" : "acm007572jsd", + "name" : "getFeedbackSessionsPossiblyNeedingOpeningSoonEmail" + }, + "acm007573jsd" : { + "type" : "ControlElement", + "id" : "acm007573jsd", + "name" : "getFeedbackSessionsPossiblyNeedingPublishedEmail" + }, + "acm007574jsd" : { + "type" : "ControlElement", + "id" : "acm007574jsd", + "name" : "updateFeedbackSession" + }, + "acm007575jsd" : { + "type" : "ControlElement", + "id" : "acm007575jsd", + "name" : "softDeleteFeedbackSession" + }, + "acm007576jsd" : { + "type" : "ControlElement", + "id" : "acm007576jsd", + "name" : "restoreDeletedFeedbackSession" + }, + "acm007577jsd" : { + "type" : "ControlElement", + "id" : "acm007577jsd", + "name" : "deleteFeedbackSession" + }, + "acm007578jsd" : { + "type" : "ControlElement", + "id" : "acm007578jsd", + "name" : "deleteFeedbackSessions" + }, + "acm007579jsd" : { + "type" : "ControlElement", + "id" : "acm007579jsd", + "name" : "getFeedbackSessionEntitiesForCourse" + }, + "acm007580jsd" : { + "type" : "ControlElement", + "id" : "acm007580jsd", + "name" : "getFeedbackSessionEntitiesForCourseStartingAfter" + }, + "acm007581jsd" : { + "type" : "ControlElement", + "id" : "acm007581jsd", + "name" : "getFeedbackSessionEntitiesPossiblyNeedingOpeningSoonEmail" + }, + "acm007582jsd" : { + "type" : "ControlElement", + "id" : "acm007582jsd", + "name" : "getFeedbackSessionEntitiesPossiblyNeedingOpenEmail" + }, + "acm007583jsd" : { + "type" : "ControlElement", + "id" : "acm007583jsd", + "name" : "getFeedbackSessionEntitiesPossiblyNeedingClosingEmail" + }, + "acm007584jsd" : { + "type" : "ControlElement", + "id" : "acm007584jsd", + "name" : "getFeedbackSessionEntitiesPossiblyNeedingClosedEmail" + }, + "acm007585jsd" : { + "type" : "ControlElement", + "id" : "acm007585jsd", + "name" : "getFeedbackSessionEntitiesPossiblyNeedingPublishedEmail" + }, + "acm007586jsd" : { + "type" : "ControlElement", + "id" : "acm007586jsd", + "name" : "getFeedbackSessionEntity" + }, + "acm007587jsd" : { + "type" : "ControlElement", + "id" : "acm007587jsd", + "name" : "load" + }, + "acm007588jsd" : { + "type" : "ControlElement", + "id" : "acm007588jsd", + "name" : "hasExistingEntities" + }, + "acm007589jsd" : { + "type" : "ControlElement", + "id" : "acm007589jsd", + "name" : "makeAttributes" + }, + "acm007590jsd" : { + "type" : "ClassUnit", + "id" : "acm007590jsd", + "name" : "FeedbackSessionsDb", + "compilationUnitId" : "acm007557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm005112jsd", "acm005129jsd", "acm006168jsd", "acm006188jsd", "acm007590jsd", "acm008013jsd" ], + "content" : [ "acm007561jsd", "acm007562jsd", "acm007563jsd", "acm007564jsd", "acm007565jsd", "acm007566jsd", "acm007567jsd", "acm007568jsd", "acm007569jsd", "acm007570jsd", "acm007571jsd", "acm007572jsd", "acm007573jsd", "acm007574jsd", "acm007575jsd", "acm007576jsd", "acm007577jsd", "acm007578jsd", "acm007579jsd", "acm007580jsd", "acm007581jsd", "acm007582jsd", "acm007583jsd", "acm007584jsd", "acm007585jsd", "acm007586jsd", "acm007587jsd", "acm007588jsd", "acm007589jsd" ] + }, + "acm007591jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007591jsd", + "name" : "InstructorsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007630jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007592jsd" : { + "type" : "CodePackage", + "id" : "acm007592jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007593jsd" ] + }, + "acm007593jsd" : { + "type" : "CodePackage", + "id" : "acm007593jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007594jsd" ] + }, + "acm007594jsd" : { + "type" : "CodePackage", + "id" : "acm007594jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007591jsd" ] + }, + "acm007595jsd" : { + "type" : "ControlElement", + "id" : "acm007595jsd", + "name" : "InstructorsDb" + }, + "acm007596jsd" : { + "type" : "ControlElement", + "id" : "acm007596jsd", + "name" : "inst" + }, + "acm007597jsd" : { + "type" : "ControlElement", + "id" : "acm007597jsd", + "name" : "getSearchManager" + }, + "acm007598jsd" : { + "type" : "ControlElement", + "id" : "acm007598jsd", + "name" : "putDocument" + }, + "acm007599jsd" : { + "type" : "ControlElement", + "id" : "acm007599jsd", + "name" : "deleteDocumentByInstructorId" + }, + "acm007600jsd" : { + "type" : "ControlElement", + "id" : "acm007600jsd", + "name" : "regenerateEntityKey" + }, + "acm007601jsd" : { + "type" : "ControlElement", + "id" : "acm007601jsd", + "name" : "searchInstructorsInWholeSystem" + }, + "acm007602jsd" : { + "type" : "ControlElement", + "id" : "acm007602jsd", + "name" : "hasExistingInstructorsInCourse" + }, + "acm007603jsd" : { + "type" : "ControlElement", + "id" : "acm007603jsd", + "name" : "getInstructorForEmail" + }, + "acm007604jsd" : { + "type" : "ControlElement", + "id" : "acm007604jsd", + "name" : "getInstructorById" + }, + "acm007605jsd" : { + "type" : "ControlElement", + "id" : "acm007605jsd", + "name" : "getInstructorForGoogleId" + }, + "acm007606jsd" : { + "type" : "ControlElement", + "id" : "acm007606jsd", + "name" : "getInstructorForRegistrationKey" + }, + "acm007607jsd" : { + "type" : "ControlElement", + "id" : "acm007607jsd", + "name" : "getInstructorsForGoogleId" + }, + "acm007608jsd" : { + "type" : "ControlElement", + "id" : "acm007608jsd", + "name" : "getInstructorEmailsForCourse" + }, + "acm007609jsd" : { + "type" : "ControlElement", + "id" : "acm007609jsd", + "name" : "getInstructorsForCourse" + }, + "acm007610jsd" : { + "type" : "ControlElement", + "id" : "acm007610jsd", + "name" : "getInstructorsDisplayedToStudents" + }, + "acm007611jsd" : { + "type" : "ControlElement", + "id" : "acm007611jsd", + "name" : "updateInstructorByGoogleId" + }, + "acm007612jsd" : { + "type" : "ControlElement", + "id" : "acm007612jsd", + "name" : "updateInstructorByEmail" + }, + "acm007613jsd" : { + "type" : "ControlElement", + "id" : "acm007613jsd", + "name" : "deleteInstructor" + }, + "acm007614jsd" : { + "type" : "ControlElement", + "id" : "acm007614jsd", + "name" : "deleteInstructors" + }, + "acm007615jsd" : { + "type" : "ControlElement", + "id" : "acm007615jsd", + "name" : "getInstructorEntityForGoogleId" + }, + "acm007616jsd" : { + "type" : "ControlElement", + "id" : "acm007616jsd", + "name" : "getInstructorEntityForEmail" + }, + "acm007617jsd" : { + "type" : "ControlElement", + "id" : "acm007617jsd", + "name" : "getInstructorEntityById" + }, + "acm007618jsd" : { + "type" : "ControlElement", + "id" : "acm007618jsd", + "name" : "getInstructorEntitiesThatAreDisplayedInCourse" + }, + "acm007619jsd" : { + "type" : "ControlElement", + "id" : "acm007619jsd", + "name" : "getInstructorEntityForRegistrationKey" + }, + "acm007620jsd" : { + "type" : "ControlElement", + "id" : "acm007620jsd", + "name" : "hasInstructorsForGoogleId" + }, + "acm007621jsd" : { + "type" : "ControlElement", + "id" : "acm007621jsd", + "name" : "getInstructorsForGoogleIdQuery" + }, + "acm007622jsd" : { + "type" : "ControlElement", + "id" : "acm007622jsd", + "name" : "getInstructorEntitiesForGoogleId" + }, + "acm007623jsd" : { + "type" : "ControlElement", + "id" : "acm007623jsd", + "name" : "getInstructorEntitiesForGoogleId" + }, + "acm007624jsd" : { + "type" : "ControlElement", + "id" : "acm007624jsd", + "name" : "getInstructorEntitiesForCourse" + }, + "acm007625jsd" : { + "type" : "ControlElement", + "id" : "acm007625jsd", + "name" : "load" + }, + "acm007626jsd" : { + "type" : "ControlElement", + "id" : "acm007626jsd", + "name" : "hasExistingEntities" + }, + "acm007627jsd" : { + "type" : "ControlElement", + "id" : "acm007627jsd", + "name" : "makeAttributes" + }, + "acm007628jsd" : { + "type" : "ControlElement", + "id" : "acm007628jsd", + "name" : "convertToEntityForSaving" + }, + "acm007629jsd" : { + "type" : "ControlElement", + "id" : "acm007629jsd", + "name" : "getNumInstructorsByTimeRange" + }, + "acm007630jsd" : { + "type" : "ClassUnit", + "id" : "acm007630jsd", + "name" : "InstructorsDb", + "compilationUnitId" : "acm007591jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006197jsd", "acm007630jsd", "acm008049jsd", "acm008135jsd" ], + "content" : [ "acm007595jsd", "acm007596jsd", "acm007597jsd", "acm007598jsd", "acm007599jsd", "acm007600jsd", "acm007601jsd", "acm007602jsd", "acm007603jsd", "acm007604jsd", "acm007605jsd", "acm007606jsd", "acm007607jsd", "acm007608jsd", "acm007609jsd", "acm007610jsd", "acm007611jsd", "acm007612jsd", "acm007613jsd", "acm007614jsd", "acm007615jsd", "acm007616jsd", "acm007617jsd", "acm007618jsd", "acm007619jsd", "acm007620jsd", "acm007621jsd", "acm007622jsd", "acm007623jsd", "acm007624jsd", "acm007625jsd", "acm007626jsd", "acm007627jsd", "acm007628jsd", "acm007629jsd" ] + }, + "acm007631jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007631jsd", + "name" : "NotificationsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007647jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007632jsd" : { + "type" : "CodePackage", + "id" : "acm007632jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007633jsd" ] + }, + "acm007633jsd" : { + "type" : "CodePackage", + "id" : "acm007633jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007634jsd" ] + }, + "acm007634jsd" : { + "type" : "CodePackage", + "id" : "acm007634jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007631jsd" ] + }, + "acm007635jsd" : { + "type" : "ControlElement", + "id" : "acm007635jsd", + "name" : "NotificationsDb" + }, + "acm007636jsd" : { + "type" : "ControlElement", + "id" : "acm007636jsd", + "name" : "inst" + }, + "acm007637jsd" : { + "type" : "ControlElement", + "id" : "acm007637jsd", + "name" : "getNotification" + }, + "acm007638jsd" : { + "type" : "ControlElement", + "id" : "acm007638jsd", + "name" : "getAllNotifications" + }, + "acm007639jsd" : { + "type" : "ControlElement", + "id" : "acm007639jsd", + "name" : "getActiveNotificationsByTargetUser" + }, + "acm007640jsd" : { + "type" : "ControlElement", + "id" : "acm007640jsd", + "name" : "updateNotification" + }, + "acm007641jsd" : { + "type" : "ControlElement", + "id" : "acm007641jsd", + "name" : "deleteNotification" + }, + "acm007642jsd" : { + "type" : "ControlElement", + "id" : "acm007642jsd", + "name" : "doesNotificationExists" + }, + "acm007643jsd" : { + "type" : "ControlElement", + "id" : "acm007643jsd", + "name" : "getNotificationEntity" + }, + "acm007644jsd" : { + "type" : "ControlElement", + "id" : "acm007644jsd", + "name" : "load" + }, + "acm007645jsd" : { + "type" : "ControlElement", + "id" : "acm007645jsd", + "name" : "hasExistingEntities" + }, + "acm007646jsd" : { + "type" : "ControlElement", + "id" : "acm007646jsd", + "name" : "makeAttributes" + }, + "acm007647jsd" : { + "type" : "ClassUnit", + "id" : "acm007647jsd", + "name" : "NotificationsDb", + "compilationUnitId" : "acm007631jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004351jsd", "acm005329jsd", "acm005339jsd", "acm006168jsd", "acm006188jsd", "acm007647jsd", "acm008077jsd" ], + "content" : [ "acm007635jsd", "acm007636jsd", "acm007637jsd", "acm007638jsd", "acm007639jsd", "acm007640jsd", "acm007641jsd", "acm007642jsd", "acm007643jsd", "acm007644jsd", "acm007645jsd", "acm007646jsd" ] + }, + "acm007648jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007648jsd", + "name" : "OfyHelper", + "parentId" : "acm007364jsd", + "content" : [ "acm007656jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007649jsd" : { + "type" : "CodePackage", + "id" : "acm007649jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007650jsd" ] + }, + "acm007650jsd" : { + "type" : "CodePackage", + "id" : "acm007650jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007651jsd" ] + }, + "acm007651jsd" : { + "type" : "CodePackage", + "id" : "acm007651jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007648jsd" ] + }, + "acm007652jsd" : { + "type" : "ControlElement", + "id" : "acm007652jsd", + "name" : "initializeDatastore" + }, + "acm007653jsd" : { + "type" : "ControlElement", + "id" : "acm007653jsd", + "name" : "registerEntityClasses" + }, + "acm007654jsd" : { + "type" : "ControlElement", + "id" : "acm007654jsd", + "name" : "contextInitialized" + }, + "acm007655jsd" : { + "type" : "ControlElement", + "id" : "acm007655jsd", + "name" : "contextDestroyed" + }, + "acm007656jsd" : { + "type" : "ClassUnit", + "id" : "acm007656jsd", + "name" : "OfyHelper", + "compilationUnitId" : "acm007648jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007735jsd", "acm007758jsd", "acm007773jsd", "acm007792jsd", "acm007823jsd", "acm007850jsd", "acm007888jsd", "acm007920jsd", "acm007960jsd", "acm008013jsd", "acm008049jsd", "acm008077jsd", "acm008095jsd" ], + "content" : [ "acm007652jsd", "acm007653jsd", "acm007654jsd", "acm007655jsd" ] + }, + "acm007657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007657jsd", + "name" : "StudentsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007703jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007658jsd" : { + "type" : "CodePackage", + "id" : "acm007658jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007659jsd" ] + }, + "acm007659jsd" : { + "type" : "CodePackage", + "id" : "acm007659jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007660jsd" ] + }, + "acm007660jsd" : { + "type" : "CodePackage", + "id" : "acm007660jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007657jsd" ] + }, + "acm007661jsd" : { + "type" : "ControlElement", + "id" : "acm007661jsd", + "name" : "StudentsDb" + }, + "acm007662jsd" : { + "type" : "ControlElement", + "id" : "acm007662jsd", + "name" : "inst" + }, + "acm007663jsd" : { + "type" : "ControlElement", + "id" : "acm007663jsd", + "name" : "getSearchManager" + }, + "acm007664jsd" : { + "type" : "ControlElement", + "id" : "acm007664jsd", + "name" : "putDocument" + }, + "acm007665jsd" : { + "type" : "ControlElement", + "id" : "acm007665jsd", + "name" : "search" + }, + "acm007666jsd" : { + "type" : "ControlElement", + "id" : "acm007666jsd", + "name" : "searchStudentsInWholeSystem" + }, + "acm007667jsd" : { + "type" : "ControlElement", + "id" : "acm007667jsd", + "name" : "deleteDocumentByStudentId" + }, + "acm007668jsd" : { + "type" : "ControlElement", + "id" : "acm007668jsd", + "name" : "regenerateEntityKey" + }, + "acm007669jsd" : { + "type" : "ControlElement", + "id" : "acm007669jsd", + "name" : "hasExistingStudentsInCourse" + }, + "acm007670jsd" : { + "type" : "ControlElement", + "id" : "acm007670jsd", + "name" : "getStudentForEmail" + }, + "acm007671jsd" : { + "type" : "ControlElement", + "id" : "acm007671jsd", + "name" : "getAllStudentsForEmail" + }, + "acm007672jsd" : { + "type" : "ControlElement", + "id" : "acm007672jsd", + "name" : "getStudentForGoogleId" + }, + "acm007673jsd" : { + "type" : "ControlElement", + "id" : "acm007673jsd", + "name" : "getStudentForRegistrationKey" + }, + "acm007674jsd" : { + "type" : "ControlElement", + "id" : "acm007674jsd", + "name" : "getStudentsForGoogleId" + }, + "acm007675jsd" : { + "type" : "ControlElement", + "id" : "acm007675jsd", + "name" : "getNumberOfStudentsForCourse" + }, + "acm007676jsd" : { + "type" : "ControlElement", + "id" : "acm007676jsd", + "name" : "getStudentsForCourse" + }, + "acm007677jsd" : { + "type" : "ControlElement", + "id" : "acm007677jsd", + "name" : "getStudentsForCourse" + }, + "acm007678jsd" : { + "type" : "ControlElement", + "id" : "acm007678jsd", + "name" : "getStudentsForSection" + }, + "acm007679jsd" : { + "type" : "ControlElement", + "id" : "acm007679jsd", + "name" : "getStudentsForTeam" + }, + "acm007680jsd" : { + "type" : "ControlElement", + "id" : "acm007680jsd", + "name" : "getStudentCountForTeam" + }, + "acm007681jsd" : { + "type" : "ControlElement", + "id" : "acm007681jsd", + "name" : "getUnregisteredStudentsForCourse" + }, + "acm007682jsd" : { + "type" : "ControlElement", + "id" : "acm007682jsd", + "name" : "updateStudent" + }, + "acm007683jsd" : { + "type" : "ControlElement", + "id" : "acm007683jsd", + "name" : "deleteStudent" + }, + "acm007684jsd" : { + "type" : "ControlElement", + "id" : "acm007684jsd", + "name" : "deleteStudents" + }, + "acm007685jsd" : { + "type" : "ControlElement", + "id" : "acm007685jsd", + "name" : "getCourseStudentEntityForEmail" + }, + "acm007686jsd" : { + "type" : "ControlElement", + "id" : "acm007686jsd", + "name" : "getAllCourseStudentEntitiesForEmail" + }, + "acm007687jsd" : { + "type" : "ControlElement", + "id" : "acm007687jsd", + "name" : "getCourseStudentEntityForRegistrationKey" + }, + "acm007688jsd" : { + "type" : "ControlElement", + "id" : "acm007688jsd", + "name" : "getCourseStudentsForCourseQuery" + }, + "acm007689jsd" : { + "type" : "ControlElement", + "id" : "acm007689jsd", + "name" : "getCourseStudentsForCourseQuery" + }, + "acm007690jsd" : { + "type" : "ControlElement", + "id" : "acm007690jsd", + "name" : "getCourseStudentEntitiesForCourse" + }, + "acm007691jsd" : { + "type" : "ControlElement", + "id" : "acm007691jsd", + "name" : "getCourseStudentEntitiesForCourse" + }, + "acm007692jsd" : { + "type" : "ControlElement", + "id" : "acm007692jsd", + "name" : "hasStudentsForGoogleId" + }, + "acm007693jsd" : { + "type" : "ControlElement", + "id" : "acm007693jsd", + "name" : "getCourseStudentsForGoogleIdQuery" + }, + "acm007694jsd" : { + "type" : "ControlElement", + "id" : "acm007694jsd", + "name" : "getCourseStudentEntitiesForGoogleId" + }, + "acm007695jsd" : { + "type" : "ControlElement", + "id" : "acm007695jsd", + "name" : "getCourseStudentEntitiesForTeam" + }, + "acm007696jsd" : { + "type" : "ControlElement", + "id" : "acm007696jsd", + "name" : "getCourseStudentCountForTeam" + }, + "acm007697jsd" : { + "type" : "ControlElement", + "id" : "acm007697jsd", + "name" : "getCourseStudentEntitiesForSection" + }, + "acm007698jsd" : { + "type" : "ControlElement", + "id" : "acm007698jsd", + "name" : "load" + }, + "acm007699jsd" : { + "type" : "ControlElement", + "id" : "acm007699jsd", + "name" : "hasExistingEntities" + }, + "acm007700jsd" : { + "type" : "ControlElement", + "id" : "acm007700jsd", + "name" : "makeAttributes" + }, + "acm007701jsd" : { + "type" : "ControlElement", + "id" : "acm007701jsd", + "name" : "convertToEntityForSaving" + }, + "acm007702jsd" : { + "type" : "ControlElement", + "id" : "acm007702jsd", + "name" : "getNumStudentsByTimeRange" + }, + "acm007703jsd" : { + "type" : "ClassUnit", + "id" : "acm007703jsd", + "name" : "StudentsDb", + "compilationUnitId" : "acm007657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm005233jsd", "acm005412jsd", "acm005423jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006197jsd", "acm006435jsd", "acm007703jsd", "acm007823jsd", "acm008196jsd" ], + "content" : [ "acm007661jsd", "acm007662jsd", "acm007663jsd", "acm007664jsd", "acm007665jsd", "acm007666jsd", "acm007667jsd", "acm007668jsd", "acm007669jsd", "acm007670jsd", "acm007671jsd", "acm007672jsd", "acm007673jsd", "acm007674jsd", "acm007675jsd", "acm007676jsd", "acm007677jsd", "acm007678jsd", "acm007679jsd", "acm007680jsd", "acm007681jsd", "acm007682jsd", "acm007683jsd", "acm007684jsd", "acm007685jsd", "acm007686jsd", "acm007687jsd", "acm007688jsd", "acm007689jsd", "acm007690jsd", "acm007691jsd", "acm007692jsd", "acm007693jsd", "acm007694jsd", "acm007695jsd", "acm007696jsd", "acm007697jsd", "acm007698jsd", "acm007699jsd", "acm007700jsd", "acm007701jsd", "acm007702jsd" ] + }, + "acm007704jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007704jsd", + "name" : "UsageStatisticsDb", + "parentId" : "acm007364jsd", + "content" : [ "acm007714jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007705jsd" : { + "type" : "CodePackage", + "id" : "acm007705jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007706jsd" ] + }, + "acm007706jsd" : { + "type" : "CodePackage", + "id" : "acm007706jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007707jsd" ] + }, + "acm007707jsd" : { + "type" : "CodePackage", + "id" : "acm007707jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007704jsd" ] + }, + "acm007708jsd" : { + "type" : "ControlElement", + "id" : "acm007708jsd", + "name" : "UsageStatisticsDb" + }, + "acm007709jsd" : { + "type" : "ControlElement", + "id" : "acm007709jsd", + "name" : "inst" + }, + "acm007710jsd" : { + "type" : "ControlElement", + "id" : "acm007710jsd", + "name" : "getUsageStatisticsForTimeRange" + }, + "acm007711jsd" : { + "type" : "ControlElement", + "id" : "acm007711jsd", + "name" : "load" + }, + "acm007712jsd" : { + "type" : "ControlElement", + "id" : "acm007712jsd", + "name" : "hasExistingEntities" + }, + "acm007713jsd" : { + "type" : "ControlElement", + "id" : "acm007713jsd", + "name" : "makeAttributes" + }, + "acm007714jsd" : { + "type" : "ClassUnit", + "id" : "acm007714jsd", + "name" : "UsageStatisticsDb", + "compilationUnitId" : "acm007704jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007461jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm007714jsd", "acm008095jsd" ], + "content" : [ "acm007708jsd", "acm007709jsd", "acm007710jsd", "acm007711jsd", "acm007712jsd", "acm007713jsd" ] + }, + "acm007715jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007715jsd", + "name" : "package-info", + "parentId" : "acm007364jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007716jsd" : { + "type" : "CodePackage", + "id" : "acm007716jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007717jsd" ] + }, + "acm007717jsd" : { + "type" : "CodePackage", + "id" : "acm007717jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007718jsd" ] + }, + "acm007718jsd" : { + "type" : "CodePackage", + "id" : "acm007718jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm007715jsd" ] + }, + "acm007719jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007719jsd", + "name" : "Account", + "parentId" : "acm007722jsd", + "content" : [ "acm007735jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007720jsd" : { + "type" : "CodePackage", + "id" : "acm007720jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007721jsd" ] + }, + "acm007721jsd" : { + "type" : "CodePackage", + "id" : "acm007721jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007722jsd" ] + }, + "acm007722jsd" : { + "type" : "CodePackage", + "id" : "acm007722jsd", + "name" : "entity", + "parentId" : "acm007363jsd", + "content" : [ "acm007719jsd", "acm007736jsd", "acm007759jsd", "acm007774jsd", "acm007793jsd", "acm007824jsd", "acm007851jsd", "acm007889jsd", "acm007921jsd", "acm007961jsd", "acm008014jsd", "acm008050jsd", "acm008078jsd", "acm008096jsd" ] + }, + "acm007723jsd" : { + "type" : "ControlElement", + "id" : "acm007723jsd", + "name" : "Account" + }, + "acm007724jsd" : { + "type" : "ControlElement", + "id" : "acm007724jsd", + "name" : "Account" + }, + "acm007725jsd" : { + "type" : "ControlElement", + "id" : "acm007725jsd", + "name" : "getGoogleId" + }, + "acm007726jsd" : { + "type" : "ControlElement", + "id" : "acm007726jsd", + "name" : "setGoogleId" + }, + "acm007727jsd" : { + "type" : "ControlElement", + "id" : "acm007727jsd", + "name" : "getName" + }, + "acm007728jsd" : { + "type" : "ControlElement", + "id" : "acm007728jsd", + "name" : "setName" + }, + "acm007729jsd" : { + "type" : "ControlElement", + "id" : "acm007729jsd", + "name" : "getEmail" + }, + "acm007730jsd" : { + "type" : "ControlElement", + "id" : "acm007730jsd", + "name" : "setEmail" + }, + "acm007731jsd" : { + "type" : "ControlElement", + "id" : "acm007731jsd", + "name" : "getReadNotifications" + }, + "acm007732jsd" : { + "type" : "ControlElement", + "id" : "acm007732jsd", + "name" : "setReadNotifications" + }, + "acm007733jsd" : { + "type" : "ControlElement", + "id" : "acm007733jsd", + "name" : "getCreatedAt" + }, + "acm007734jsd" : { + "type" : "ControlElement", + "id" : "acm007734jsd", + "name" : "setCreatedAt" + }, + "acm007735jsd" : { + "type" : "ClassUnit", + "id" : "acm007735jsd", + "name" : "Account", + "compilationUnitId" : "acm007719jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007723jsd", "acm007724jsd", "acm007725jsd", "acm007726jsd", "acm007727jsd", "acm007728jsd", "acm007729jsd", "acm007730jsd", "acm007731jsd", "acm007732jsd", "acm007733jsd", "acm007734jsd" ] + }, + "acm007736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007736jsd", + "name" : "AccountRequest", + "parentId" : "acm007722jsd", + "content" : [ "acm007758jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007737jsd" : { + "type" : "CodePackage", + "id" : "acm007737jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007738jsd" ] + }, + "acm007738jsd" : { + "type" : "CodePackage", + "id" : "acm007738jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007739jsd" ] + }, + "acm007739jsd" : { + "type" : "CodePackage", + "id" : "acm007739jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007736jsd" ] + }, + "acm007740jsd" : { + "type" : "ControlElement", + "id" : "acm007740jsd", + "name" : "AccountRequest" + }, + "acm007741jsd" : { + "type" : "ControlElement", + "id" : "acm007741jsd", + "name" : "AccountRequest" + }, + "acm007742jsd" : { + "type" : "ControlElement", + "id" : "acm007742jsd", + "name" : "getId" + }, + "acm007743jsd" : { + "type" : "ControlElement", + "id" : "acm007743jsd", + "name" : "setId" + }, + "acm007744jsd" : { + "type" : "ControlElement", + "id" : "acm007744jsd", + "name" : "getRegistrationKey" + }, + "acm007745jsd" : { + "type" : "ControlElement", + "id" : "acm007745jsd", + "name" : "setRegistrationKey" + }, + "acm007746jsd" : { + "type" : "ControlElement", + "id" : "acm007746jsd", + "name" : "getName" + }, + "acm007747jsd" : { + "type" : "ControlElement", + "id" : "acm007747jsd", + "name" : "setName" + }, + "acm007748jsd" : { + "type" : "ControlElement", + "id" : "acm007748jsd", + "name" : "getEmail" + }, + "acm007749jsd" : { + "type" : "ControlElement", + "id" : "acm007749jsd", + "name" : "setEmail" + }, + "acm007750jsd" : { + "type" : "ControlElement", + "id" : "acm007750jsd", + "name" : "getInstitute" + }, + "acm007751jsd" : { + "type" : "ControlElement", + "id" : "acm007751jsd", + "name" : "setInstitute" + }, + "acm007752jsd" : { + "type" : "ControlElement", + "id" : "acm007752jsd", + "name" : "getRegisteredAt" + }, + "acm007753jsd" : { + "type" : "ControlElement", + "id" : "acm007753jsd", + "name" : "setRegisteredAt" + }, + "acm007754jsd" : { + "type" : "ControlElement", + "id" : "acm007754jsd", + "name" : "getCreatedAt" + }, + "acm007755jsd" : { + "type" : "ControlElement", + "id" : "acm007755jsd", + "name" : "setCreatedAt" + }, + "acm007756jsd" : { + "type" : "ControlElement", + "id" : "acm007756jsd", + "name" : "generateId" + }, + "acm007757jsd" : { + "type" : "ControlElement", + "id" : "acm007757jsd", + "name" : "generateRegistrationKey" + }, + "acm007758jsd" : { + "type" : "ClassUnit", + "id" : "acm007758jsd", + "name" : "AccountRequest", + "compilationUnitId" : "acm007736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007740jsd", "acm007741jsd", "acm007742jsd", "acm007743jsd", "acm007744jsd", "acm007745jsd", "acm007746jsd", "acm007747jsd", "acm007748jsd", "acm007749jsd", "acm007750jsd", "acm007751jsd", "acm007752jsd", "acm007753jsd", "acm007754jsd", "acm007755jsd", "acm007756jsd", "acm007757jsd" ] + }, + "acm007759jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007759jsd", + "name" : "BaseEntity", + "parentId" : "acm007722jsd", + "content" : [ "acm007768jsd", "acm007773jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007760jsd" : { + "type" : "CodePackage", + "id" : "acm007760jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007761jsd" ] + }, + "acm007761jsd" : { + "type" : "CodePackage", + "id" : "acm007761jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007762jsd" ] + }, + "acm007762jsd" : { + "type" : "CodePackage", + "id" : "acm007762jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007759jsd" ] + }, + "acm007763jsd" : { + "type" : "ControlElement", + "id" : "acm007763jsd", + "name" : "BaseEntity" + }, + "acm007764jsd" : { + "type" : "ControlElement", + "id" : "acm007764jsd", + "name" : "InstantTranslatorFactory" + }, + "acm007765jsd" : { + "type" : "ControlElement", + "id" : "acm007765jsd", + "name" : "createValueTranslator" + }, + "acm007766jsd" : { + "type" : "ControlElement", + "id" : "acm007766jsd", + "name" : "loadValue" + }, + "acm007767jsd" : { + "type" : "ControlElement", + "id" : "acm007767jsd", + "name" : "saveValue" + }, + "acm007768jsd" : { + "type" : "ClassUnit", + "id" : "acm007768jsd", + "name" : "BaseEntity", + "compilationUnitId" : "acm007759jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007763jsd", "acm007764jsd", "acm007765jsd", "acm007766jsd", "acm007767jsd" ] + }, + "acm007769jsd" : { + "type" : "ControlElement", + "id" : "acm007769jsd", + "name" : "InstantTranslatorFactory" + }, + "acm007770jsd" : { + "type" : "ControlElement", + "id" : "acm007770jsd", + "name" : "createValueTranslator" + }, + "acm007771jsd" : { + "type" : "ControlElement", + "id" : "acm007771jsd", + "name" : "loadValue" + }, + "acm007772jsd" : { + "type" : "ControlElement", + "id" : "acm007772jsd", + "name" : "saveValue" + }, + "acm007773jsd" : { + "type" : "ClassUnit", + "id" : "acm007773jsd", + "name" : "InstantTranslatorFactory", + "compilationUnitId" : "acm007759jsd", + "parentDatatypeId" : "acm007768jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm007769jsd", "acm007770jsd", "acm007771jsd", "acm007772jsd" ] + }, + "acm007774jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007774jsd", + "name" : "Course", + "parentId" : "acm007722jsd", + "content" : [ "acm007792jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007775jsd" : { + "type" : "CodePackage", + "id" : "acm007775jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007776jsd" ] + }, + "acm007776jsd" : { + "type" : "CodePackage", + "id" : "acm007776jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007777jsd" ] + }, + "acm007777jsd" : { + "type" : "CodePackage", + "id" : "acm007777jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007774jsd" ] + }, + "acm007778jsd" : { + "type" : "ControlElement", + "id" : "acm007778jsd", + "name" : "Course" + }, + "acm007779jsd" : { + "type" : "ControlElement", + "id" : "acm007779jsd", + "name" : "Course" + }, + "acm007780jsd" : { + "type" : "ControlElement", + "id" : "acm007780jsd", + "name" : "getUniqueId" + }, + "acm007781jsd" : { + "type" : "ControlElement", + "id" : "acm007781jsd", + "name" : "setUniqueId" + }, + "acm007782jsd" : { + "type" : "ControlElement", + "id" : "acm007782jsd", + "name" : "getName" + }, + "acm007783jsd" : { + "type" : "ControlElement", + "id" : "acm007783jsd", + "name" : "setName" + }, + "acm007784jsd" : { + "type" : "ControlElement", + "id" : "acm007784jsd", + "name" : "getCreatedAt" + }, + "acm007785jsd" : { + "type" : "ControlElement", + "id" : "acm007785jsd", + "name" : "setCreatedAt" + }, + "acm007786jsd" : { + "type" : "ControlElement", + "id" : "acm007786jsd", + "name" : "getDeletedAt" + }, + "acm007787jsd" : { + "type" : "ControlElement", + "id" : "acm007787jsd", + "name" : "setDeletedAt" + }, + "acm007788jsd" : { + "type" : "ControlElement", + "id" : "acm007788jsd", + "name" : "getTimeZone" + }, + "acm007789jsd" : { + "type" : "ControlElement", + "id" : "acm007789jsd", + "name" : "setTimeZone" + }, + "acm007790jsd" : { + "type" : "ControlElement", + "id" : "acm007790jsd", + "name" : "getInstitute" + }, + "acm007791jsd" : { + "type" : "ControlElement", + "id" : "acm007791jsd", + "name" : "setInstitute" + }, + "acm007792jsd" : { + "type" : "ClassUnit", + "id" : "acm007792jsd", + "name" : "Course", + "compilationUnitId" : "acm007774jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007778jsd", "acm007779jsd", "acm007780jsd", "acm007781jsd", "acm007782jsd", "acm007783jsd", "acm007784jsd", "acm007785jsd", "acm007786jsd", "acm007787jsd", "acm007788jsd", "acm007789jsd", "acm007790jsd", "acm007791jsd" ] + }, + "acm007793jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007793jsd", + "name" : "CourseStudent", + "parentId" : "acm007722jsd", + "content" : [ "acm007823jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007794jsd" : { + "type" : "CodePackage", + "id" : "acm007794jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007795jsd" ] + }, + "acm007795jsd" : { + "type" : "CodePackage", + "id" : "acm007795jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007796jsd" ] + }, + "acm007796jsd" : { + "type" : "CodePackage", + "id" : "acm007796jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007793jsd" ] + }, + "acm007797jsd" : { + "type" : "ControlElement", + "id" : "acm007797jsd", + "name" : "CourseStudent" + }, + "acm007798jsd" : { + "type" : "ControlElement", + "id" : "acm007798jsd", + "name" : "CourseStudent" + }, + "acm007799jsd" : { + "type" : "ControlElement", + "id" : "acm007799jsd", + "name" : "generateId" + }, + "acm007800jsd" : { + "type" : "ControlElement", + "id" : "acm007800jsd", + "name" : "getCreatedAt" + }, + "acm007801jsd" : { + "type" : "ControlElement", + "id" : "acm007801jsd", + "name" : "setCreatedAt" + }, + "acm007802jsd" : { + "type" : "ControlElement", + "id" : "acm007802jsd", + "name" : "getUpdatedAt" + }, + "acm007803jsd" : { + "type" : "ControlElement", + "id" : "acm007803jsd", + "name" : "setLastUpdate" + }, + "acm007804jsd" : { + "type" : "ControlElement", + "id" : "acm007804jsd", + "name" : "getUniqueId" + }, + "acm007805jsd" : { + "type" : "ControlElement", + "id" : "acm007805jsd", + "name" : "getEmail" + }, + "acm007806jsd" : { + "type" : "ControlElement", + "id" : "acm007806jsd", + "name" : "setEmail" + }, + "acm007807jsd" : { + "type" : "ControlElement", + "id" : "acm007807jsd", + "name" : "getGoogleId" + }, + "acm007808jsd" : { + "type" : "ControlElement", + "id" : "acm007808jsd", + "name" : "setGoogleId" + }, + "acm007809jsd" : { + "type" : "ControlElement", + "id" : "acm007809jsd", + "name" : "getName" + }, + "acm007810jsd" : { + "type" : "ControlElement", + "id" : "acm007810jsd", + "name" : "setName" + }, + "acm007811jsd" : { + "type" : "ControlElement", + "id" : "acm007811jsd", + "name" : "getComments" + }, + "acm007812jsd" : { + "type" : "ControlElement", + "id" : "acm007812jsd", + "name" : "setComments" + }, + "acm007813jsd" : { + "type" : "ControlElement", + "id" : "acm007813jsd", + "name" : "getRegistrationKey" + }, + "acm007814jsd" : { + "type" : "ControlElement", + "id" : "acm007814jsd", + "name" : "setRegistrationKey" + }, + "acm007815jsd" : { + "type" : "ControlElement", + "id" : "acm007815jsd", + "name" : "getCourseId" + }, + "acm007816jsd" : { + "type" : "ControlElement", + "id" : "acm007816jsd", + "name" : "setCourseId" + }, + "acm007817jsd" : { + "type" : "ControlElement", + "id" : "acm007817jsd", + "name" : "getTeamName" + }, + "acm007818jsd" : { + "type" : "ControlElement", + "id" : "acm007818jsd", + "name" : "setTeamName" + }, + "acm007819jsd" : { + "type" : "ControlElement", + "id" : "acm007819jsd", + "name" : "getSectionName" + }, + "acm007820jsd" : { + "type" : "ControlElement", + "id" : "acm007820jsd", + "name" : "setSectionName" + }, + "acm007821jsd" : { + "type" : "ControlElement", + "id" : "acm007821jsd", + "name" : "updateLastUpdateTimestamp" + }, + "acm007822jsd" : { + "type" : "ControlElement", + "id" : "acm007822jsd", + "name" : "generateRegistrationKey" + }, + "acm007823jsd" : { + "type" : "ClassUnit", + "id" : "acm007823jsd", + "name" : "CourseStudent", + "compilationUnitId" : "acm007793jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007797jsd", "acm007798jsd", "acm007799jsd", "acm007800jsd", "acm007801jsd", "acm007802jsd", "acm007803jsd", "acm007804jsd", "acm007805jsd", "acm007806jsd", "acm007807jsd", "acm007808jsd", "acm007809jsd", "acm007810jsd", "acm007811jsd", "acm007812jsd", "acm007813jsd", "acm007814jsd", "acm007815jsd", "acm007816jsd", "acm007817jsd", "acm007818jsd", "acm007819jsd", "acm007820jsd", "acm007821jsd", "acm007822jsd" ] + }, + "acm007824jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007824jsd", + "name" : "DeadlineExtension", + "parentId" : "acm007722jsd", + "content" : [ "acm007850jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007825jsd" : { + "type" : "CodePackage", + "id" : "acm007825jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007826jsd" ] + }, + "acm007826jsd" : { + "type" : "CodePackage", + "id" : "acm007826jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007827jsd" ] + }, + "acm007827jsd" : { + "type" : "CodePackage", + "id" : "acm007827jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007824jsd" ] + }, + "acm007828jsd" : { + "type" : "ControlElement", + "id" : "acm007828jsd", + "name" : "DeadlineExtension" + }, + "acm007829jsd" : { + "type" : "ControlElement", + "id" : "acm007829jsd", + "name" : "DeadlineExtension" + }, + "acm007830jsd" : { + "type" : "ControlElement", + "id" : "acm007830jsd", + "name" : "getId" + }, + "acm007831jsd" : { + "type" : "ControlElement", + "id" : "acm007831jsd", + "name" : "setId" + }, + "acm007832jsd" : { + "type" : "ControlElement", + "id" : "acm007832jsd", + "name" : "getCourseId" + }, + "acm007833jsd" : { + "type" : "ControlElement", + "id" : "acm007833jsd", + "name" : "setCourseId" + }, + "acm007834jsd" : { + "type" : "ControlElement", + "id" : "acm007834jsd", + "name" : "getFeedbackSessionName" + }, + "acm007835jsd" : { + "type" : "ControlElement", + "id" : "acm007835jsd", + "name" : "setFeedbackSessionName" + }, + "acm007836jsd" : { + "type" : "ControlElement", + "id" : "acm007836jsd", + "name" : "getUserEmail" + }, + "acm007837jsd" : { + "type" : "ControlElement", + "id" : "acm007837jsd", + "name" : "setUserEmail" + }, + "acm007838jsd" : { + "type" : "ControlElement", + "id" : "acm007838jsd", + "name" : "getIsInstructor" + }, + "acm007839jsd" : { + "type" : "ControlElement", + "id" : "acm007839jsd", + "name" : "setIsInstructor" + }, + "acm007840jsd" : { + "type" : "ControlElement", + "id" : "acm007840jsd", + "name" : "getSentClosingEmail" + }, + "acm007841jsd" : { + "type" : "ControlElement", + "id" : "acm007841jsd", + "name" : "setSentClosingEmail" + }, + "acm007842jsd" : { + "type" : "ControlElement", + "id" : "acm007842jsd", + "name" : "getEndTime" + }, + "acm007843jsd" : { + "type" : "ControlElement", + "id" : "acm007843jsd", + "name" : "setEndTime" + }, + "acm007844jsd" : { + "type" : "ControlElement", + "id" : "acm007844jsd", + "name" : "getCreatedAt" + }, + "acm007845jsd" : { + "type" : "ControlElement", + "id" : "acm007845jsd", + "name" : "setCreatedAt" + }, + "acm007846jsd" : { + "type" : "ControlElement", + "id" : "acm007846jsd", + "name" : "getUpdatedAt" + }, + "acm007847jsd" : { + "type" : "ControlElement", + "id" : "acm007847jsd", + "name" : "setUpdatedAt" + }, + "acm007848jsd" : { + "type" : "ControlElement", + "id" : "acm007848jsd", + "name" : "updateLastUpdatedTimestamp" + }, + "acm007849jsd" : { + "type" : "ControlElement", + "id" : "acm007849jsd", + "name" : "generateId" + }, + "acm007850jsd" : { + "type" : "ClassUnit", + "id" : "acm007850jsd", + "name" : "DeadlineExtension", + "compilationUnitId" : "acm007824jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007828jsd", "acm007829jsd", "acm007830jsd", "acm007831jsd", "acm007832jsd", "acm007833jsd", "acm007834jsd", "acm007835jsd", "acm007836jsd", "acm007837jsd", "acm007838jsd", "acm007839jsd", "acm007840jsd", "acm007841jsd", "acm007842jsd", "acm007843jsd", "acm007844jsd", "acm007845jsd", "acm007846jsd", "acm007847jsd", "acm007848jsd", "acm007849jsd" ] + }, + "acm007851jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007851jsd", + "name" : "FeedbackQuestion", + "parentId" : "acm007722jsd", + "content" : [ "acm007888jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007852jsd" : { + "type" : "CodePackage", + "id" : "acm007852jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007853jsd" ] + }, + "acm007853jsd" : { + "type" : "CodePackage", + "id" : "acm007853jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007854jsd" ] + }, + "acm007854jsd" : { + "type" : "CodePackage", + "id" : "acm007854jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007851jsd" ] + }, + "acm007855jsd" : { + "type" : "ControlElement", + "id" : "acm007855jsd", + "name" : "FeedbackQuestion" + }, + "acm007856jsd" : { + "type" : "ControlElement", + "id" : "acm007856jsd", + "name" : "FeedbackQuestion" + }, + "acm007857jsd" : { + "type" : "ControlElement", + "id" : "acm007857jsd", + "name" : "getCreatedAt" + }, + "acm007858jsd" : { + "type" : "ControlElement", + "id" : "acm007858jsd", + "name" : "getUpdatedAt" + }, + "acm007859jsd" : { + "type" : "ControlElement", + "id" : "acm007859jsd", + "name" : "setCreatedAt" + }, + "acm007860jsd" : { + "type" : "ControlElement", + "id" : "acm007860jsd", + "name" : "setLastUpdate" + }, + "acm007861jsd" : { + "type" : "ControlElement", + "id" : "acm007861jsd", + "name" : "getId" + }, + "acm007862jsd" : { + "type" : "ControlElement", + "id" : "acm007862jsd", + "name" : "setFeedbackQuestionId" + }, + "acm007863jsd" : { + "type" : "ControlElement", + "id" : "acm007863jsd", + "name" : "getFeedbackSessionName" + }, + "acm007864jsd" : { + "type" : "ControlElement", + "id" : "acm007864jsd", + "name" : "setFeedbackSessionName" + }, + "acm007865jsd" : { + "type" : "ControlElement", + "id" : "acm007865jsd", + "name" : "getCourseId" + }, + "acm007866jsd" : { + "type" : "ControlElement", + "id" : "acm007866jsd", + "name" : "setCourseId" + }, + "acm007867jsd" : { + "type" : "ControlElement", + "id" : "acm007867jsd", + "name" : "getQuestionText" + }, + "acm007868jsd" : { + "type" : "ControlElement", + "id" : "acm007868jsd", + "name" : "setQuestionText" + }, + "acm007869jsd" : { + "type" : "ControlElement", + "id" : "acm007869jsd", + "name" : "getQuestionDescription" + }, + "acm007870jsd" : { + "type" : "ControlElement", + "id" : "acm007870jsd", + "name" : "setQuestionDescription" + }, + "acm007871jsd" : { + "type" : "ControlElement", + "id" : "acm007871jsd", + "name" : "getQuestionType" + }, + "acm007872jsd" : { + "type" : "ControlElement", + "id" : "acm007872jsd", + "name" : "setQuestionType" + }, + "acm007873jsd" : { + "type" : "ControlElement", + "id" : "acm007873jsd", + "name" : "getQuestionNumber" + }, + "acm007874jsd" : { + "type" : "ControlElement", + "id" : "acm007874jsd", + "name" : "setQuestionNumber" + }, + "acm007875jsd" : { + "type" : "ControlElement", + "id" : "acm007875jsd", + "name" : "getGiverType" + }, + "acm007876jsd" : { + "type" : "ControlElement", + "id" : "acm007876jsd", + "name" : "setGiverType" + }, + "acm007877jsd" : { + "type" : "ControlElement", + "id" : "acm007877jsd", + "name" : "getRecipientType" + }, + "acm007878jsd" : { + "type" : "ControlElement", + "id" : "acm007878jsd", + "name" : "setRecipientType" + }, + "acm007879jsd" : { + "type" : "ControlElement", + "id" : "acm007879jsd", + "name" : "getNumberOfEntitiesToGiveFeedbackTo" + }, + "acm007880jsd" : { + "type" : "ControlElement", + "id" : "acm007880jsd", + "name" : "setNumberOfEntitiesToGiveFeedbackTo" + }, + "acm007881jsd" : { + "type" : "ControlElement", + "id" : "acm007881jsd", + "name" : "getShowResponsesTo" + }, + "acm007882jsd" : { + "type" : "ControlElement", + "id" : "acm007882jsd", + "name" : "setShowResponsesTo" + }, + "acm007883jsd" : { + "type" : "ControlElement", + "id" : "acm007883jsd", + "name" : "getShowGiverNameTo" + }, + "acm007884jsd" : { + "type" : "ControlElement", + "id" : "acm007884jsd", + "name" : "setShowGiverNameTo" + }, + "acm007885jsd" : { + "type" : "ControlElement", + "id" : "acm007885jsd", + "name" : "getShowRecipientNameTo" + }, + "acm007886jsd" : { + "type" : "ControlElement", + "id" : "acm007886jsd", + "name" : "setShowRecipientNameTo" + }, + "acm007887jsd" : { + "type" : "ControlElement", + "id" : "acm007887jsd", + "name" : "updateLastUpdateTimestamp" + }, + "acm007888jsd" : { + "type" : "ClassUnit", + "id" : "acm007888jsd", + "name" : "FeedbackQuestion", + "compilationUnitId" : "acm007851jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm005986jsd", "acm007773jsd", "acm007888jsd" ], + "content" : [ "acm007855jsd", "acm007856jsd", "acm007857jsd", "acm007858jsd", "acm007859jsd", "acm007860jsd", "acm007861jsd", "acm007862jsd", "acm007863jsd", "acm007864jsd", "acm007865jsd", "acm007866jsd", "acm007867jsd", "acm007868jsd", "acm007869jsd", "acm007870jsd", "acm007871jsd", "acm007872jsd", "acm007873jsd", "acm007874jsd", "acm007875jsd", "acm007876jsd", "acm007877jsd", "acm007878jsd", "acm007879jsd", "acm007880jsd", "acm007881jsd", "acm007882jsd", "acm007883jsd", "acm007884jsd", "acm007885jsd", "acm007886jsd", "acm007887jsd" ] + }, + "acm007889jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007889jsd", + "name" : "FeedbackResponse", + "parentId" : "acm007722jsd", + "content" : [ "acm007920jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007890jsd" : { + "type" : "CodePackage", + "id" : "acm007890jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007891jsd" ] + }, + "acm007891jsd" : { + "type" : "CodePackage", + "id" : "acm007891jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007892jsd" ] + }, + "acm007892jsd" : { + "type" : "CodePackage", + "id" : "acm007892jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007889jsd" ] + }, + "acm007893jsd" : { + "type" : "ControlElement", + "id" : "acm007893jsd", + "name" : "FeedbackResponse" + }, + "acm007894jsd" : { + "type" : "ControlElement", + "id" : "acm007894jsd", + "name" : "FeedbackResponse" + }, + "acm007895jsd" : { + "type" : "ControlElement", + "id" : "acm007895jsd", + "name" : "generateId" + }, + "acm007896jsd" : { + "type" : "ControlElement", + "id" : "acm007896jsd", + "name" : "getId" + }, + "acm007897jsd" : { + "type" : "ControlElement", + "id" : "acm007897jsd", + "name" : "getFeedbackSessionName" + }, + "acm007898jsd" : { + "type" : "ControlElement", + "id" : "acm007898jsd", + "name" : "setFeedbackSessionName" + }, + "acm007899jsd" : { + "type" : "ControlElement", + "id" : "acm007899jsd", + "name" : "getCourseId" + }, + "acm007900jsd" : { + "type" : "ControlElement", + "id" : "acm007900jsd", + "name" : "setCourseId" + }, + "acm007901jsd" : { + "type" : "ControlElement", + "id" : "acm007901jsd", + "name" : "getFeedbackQuestionId" + }, + "acm007902jsd" : { + "type" : "ControlElement", + "id" : "acm007902jsd", + "name" : "setFeedbackQuestionId" + }, + "acm007903jsd" : { + "type" : "ControlElement", + "id" : "acm007903jsd", + "name" : "getFeedbackQuestionType" + }, + "acm007904jsd" : { + "type" : "ControlElement", + "id" : "acm007904jsd", + "name" : "setFeedbackQuestionType" + }, + "acm007905jsd" : { + "type" : "ControlElement", + "id" : "acm007905jsd", + "name" : "getGiverEmail" + }, + "acm007906jsd" : { + "type" : "ControlElement", + "id" : "acm007906jsd", + "name" : "setGiverEmail" + }, + "acm007907jsd" : { + "type" : "ControlElement", + "id" : "acm007907jsd", + "name" : "getGiverSection" + }, + "acm007908jsd" : { + "type" : "ControlElement", + "id" : "acm007908jsd", + "name" : "setGiverSection" + }, + "acm007909jsd" : { + "type" : "ControlElement", + "id" : "acm007909jsd", + "name" : "getRecipientEmail" + }, + "acm007910jsd" : { + "type" : "ControlElement", + "id" : "acm007910jsd", + "name" : "setRecipientEmail" + }, + "acm007911jsd" : { + "type" : "ControlElement", + "id" : "acm007911jsd", + "name" : "getRecipientSection" + }, + "acm007912jsd" : { + "type" : "ControlElement", + "id" : "acm007912jsd", + "name" : "setRecipientSection" + }, + "acm007913jsd" : { + "type" : "ControlElement", + "id" : "acm007913jsd", + "name" : "getAnswer" + }, + "acm007914jsd" : { + "type" : "ControlElement", + "id" : "acm007914jsd", + "name" : "setAnswer" + }, + "acm007915jsd" : { + "type" : "ControlElement", + "id" : "acm007915jsd", + "name" : "getCreatedAt" + }, + "acm007916jsd" : { + "type" : "ControlElement", + "id" : "acm007916jsd", + "name" : "getUpdatedAt" + }, + "acm007917jsd" : { + "type" : "ControlElement", + "id" : "acm007917jsd", + "name" : "setCreatedAt" + }, + "acm007918jsd" : { + "type" : "ControlElement", + "id" : "acm007918jsd", + "name" : "setLastUpdate" + }, + "acm007919jsd" : { + "type" : "ControlElement", + "id" : "acm007919jsd", + "name" : "updateLastUpdateTimestamp" + }, + "acm007920jsd" : { + "type" : "ClassUnit", + "id" : "acm007920jsd", + "name" : "FeedbackResponse", + "compilationUnitId" : "acm007889jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005986jsd", "acm007773jsd" ], + "content" : [ "acm007893jsd", "acm007894jsd", "acm007895jsd", "acm007896jsd", "acm007897jsd", "acm007898jsd", "acm007899jsd", "acm007900jsd", "acm007901jsd", "acm007902jsd", "acm007903jsd", "acm007904jsd", "acm007905jsd", "acm007906jsd", "acm007907jsd", "acm007908jsd", "acm007909jsd", "acm007910jsd", "acm007911jsd", "acm007912jsd", "acm007913jsd", "acm007914jsd", "acm007915jsd", "acm007916jsd", "acm007917jsd", "acm007918jsd", "acm007919jsd" ] + }, + "acm007921jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007921jsd", + "name" : "FeedbackResponseComment", + "parentId" : "acm007722jsd", + "content" : [ "acm007960jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007922jsd" : { + "type" : "CodePackage", + "id" : "acm007922jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007923jsd" ] + }, + "acm007923jsd" : { + "type" : "CodePackage", + "id" : "acm007923jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007924jsd" ] + }, + "acm007924jsd" : { + "type" : "CodePackage", + "id" : "acm007924jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007921jsd" ] + }, + "acm007925jsd" : { + "type" : "ControlElement", + "id" : "acm007925jsd", + "name" : "FeedbackResponseComment" + }, + "acm007926jsd" : { + "type" : "ControlElement", + "id" : "acm007926jsd", + "name" : "FeedbackResponseComment" + }, + "acm007927jsd" : { + "type" : "ControlElement", + "id" : "acm007927jsd", + "name" : "getFeedbackResponseCommentId" + }, + "acm007928jsd" : { + "type" : "ControlElement", + "id" : "acm007928jsd", + "name" : "getCourseId" + }, + "acm007929jsd" : { + "type" : "ControlElement", + "id" : "acm007929jsd", + "name" : "setCourseId" + }, + "acm007930jsd" : { + "type" : "ControlElement", + "id" : "acm007930jsd", + "name" : "getFeedbackSessionName" + }, + "acm007931jsd" : { + "type" : "ControlElement", + "id" : "acm007931jsd", + "name" : "setFeedbackSessionName" + }, + "acm007932jsd" : { + "type" : "ControlElement", + "id" : "acm007932jsd", + "name" : "getFeedbackQuestionId" + }, + "acm007933jsd" : { + "type" : "ControlElement", + "id" : "acm007933jsd", + "name" : "setFeedbackQuestionId" + }, + "acm007934jsd" : { + "type" : "ControlElement", + "id" : "acm007934jsd", + "name" : "getIsVisibilityFollowingFeedbackQuestion" + }, + "acm007935jsd" : { + "type" : "ControlElement", + "id" : "acm007935jsd", + "name" : "setIsVisibilityFollowingFeedbackQuestion" + }, + "acm007936jsd" : { + "type" : "ControlElement", + "id" : "acm007936jsd", + "name" : "getGiverEmail" + }, + "acm007937jsd" : { + "type" : "ControlElement", + "id" : "acm007937jsd", + "name" : "setGiverEmail" + }, + "acm007938jsd" : { + "type" : "ControlElement", + "id" : "acm007938jsd", + "name" : "getCommentGiverType" + }, + "acm007939jsd" : { + "type" : "ControlElement", + "id" : "acm007939jsd", + "name" : "setCommentGiverType" + }, + "acm007940jsd" : { + "type" : "ControlElement", + "id" : "acm007940jsd", + "name" : "setShowCommentTo" + }, + "acm007941jsd" : { + "type" : "ControlElement", + "id" : "acm007941jsd", + "name" : "getShowCommentTo" + }, + "acm007942jsd" : { + "type" : "ControlElement", + "id" : "acm007942jsd", + "name" : "setShowGiverNameTo" + }, + "acm007943jsd" : { + "type" : "ControlElement", + "id" : "acm007943jsd", + "name" : "getShowGiverNameTo" + }, + "acm007944jsd" : { + "type" : "ControlElement", + "id" : "acm007944jsd", + "name" : "getFeedbackResponseId" + }, + "acm007945jsd" : { + "type" : "ControlElement", + "id" : "acm007945jsd", + "name" : "setFeedbackResponseId" + }, + "acm007946jsd" : { + "type" : "ControlElement", + "id" : "acm007946jsd", + "name" : "getCreatedAt" + }, + "acm007947jsd" : { + "type" : "ControlElement", + "id" : "acm007947jsd", + "name" : "setCreatedAt" + }, + "acm007948jsd" : { + "type" : "ControlElement", + "id" : "acm007948jsd", + "name" : "getCommentText" + }, + "acm007949jsd" : { + "type" : "ControlElement", + "id" : "acm007949jsd", + "name" : "setCommentText" + }, + "acm007950jsd" : { + "type" : "ControlElement", + "id" : "acm007950jsd", + "name" : "getGiverSection" + }, + "acm007951jsd" : { + "type" : "ControlElement", + "id" : "acm007951jsd", + "name" : "setGiverSection" + }, + "acm007952jsd" : { + "type" : "ControlElement", + "id" : "acm007952jsd", + "name" : "getReceiverSection" + }, + "acm007953jsd" : { + "type" : "ControlElement", + "id" : "acm007953jsd", + "name" : "setReceiverSection" + }, + "acm007954jsd" : { + "type" : "ControlElement", + "id" : "acm007954jsd", + "name" : "setLastEditorEmail" + }, + "acm007955jsd" : { + "type" : "ControlElement", + "id" : "acm007955jsd", + "name" : "getLastEditorEmail" + }, + "acm007956jsd" : { + "type" : "ControlElement", + "id" : "acm007956jsd", + "name" : "getLastEditedAt" + }, + "acm007957jsd" : { + "type" : "ControlElement", + "id" : "acm007957jsd", + "name" : "setLastEditedAt" + }, + "acm007958jsd" : { + "type" : "ControlElement", + "id" : "acm007958jsd", + "name" : "getIsCommentFromFeedbackParticipant" + }, + "acm007959jsd" : { + "type" : "ControlElement", + "id" : "acm007959jsd", + "name" : "setIsCommentFromFeedbackParticipant" + }, + "acm007960jsd" : { + "type" : "ClassUnit", + "id" : "acm007960jsd", + "name" : "FeedbackResponseComment", + "compilationUnitId" : "acm007921jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm007773jsd" ], + "content" : [ "acm007925jsd", "acm007926jsd", "acm007927jsd", "acm007928jsd", "acm007929jsd", "acm007930jsd", "acm007931jsd", "acm007932jsd", "acm007933jsd", "acm007934jsd", "acm007935jsd", "acm007936jsd", "acm007937jsd", "acm007938jsd", "acm007939jsd", "acm007940jsd", "acm007941jsd", "acm007942jsd", "acm007943jsd", "acm007944jsd", "acm007945jsd", "acm007946jsd", "acm007947jsd", "acm007948jsd", "acm007949jsd", "acm007950jsd", "acm007951jsd", "acm007952jsd", "acm007953jsd", "acm007954jsd", "acm007955jsd", "acm007956jsd", "acm007957jsd", "acm007958jsd", "acm007959jsd" ] + }, + "acm007961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm007961jsd", + "name" : "FeedbackSession", + "parentId" : "acm007722jsd", + "content" : [ "acm008013jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm007962jsd" : { + "type" : "CodePackage", + "id" : "acm007962jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm007963jsd" ] + }, + "acm007963jsd" : { + "type" : "CodePackage", + "id" : "acm007963jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm007964jsd" ] + }, + "acm007964jsd" : { + "type" : "CodePackage", + "id" : "acm007964jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm007961jsd" ] + }, + "acm007965jsd" : { + "type" : "ControlElement", + "id" : "acm007965jsd", + "name" : "FeedbackSession" + }, + "acm007966jsd" : { + "type" : "ControlElement", + "id" : "acm007966jsd", + "name" : "FeedbackSession" + }, + "acm007967jsd" : { + "type" : "ControlElement", + "id" : "acm007967jsd", + "name" : "generateId" + }, + "acm007968jsd" : { + "type" : "ControlElement", + "id" : "acm007968jsd", + "name" : "getFeedbackSessionName" + }, + "acm007969jsd" : { + "type" : "ControlElement", + "id" : "acm007969jsd", + "name" : "setFeedbackSessionName" + }, + "acm007970jsd" : { + "type" : "ControlElement", + "id" : "acm007970jsd", + "name" : "getCourseId" + }, + "acm007971jsd" : { + "type" : "ControlElement", + "id" : "acm007971jsd", + "name" : "setCourseId" + }, + "acm007972jsd" : { + "type" : "ControlElement", + "id" : "acm007972jsd", + "name" : "getCreatorEmail" + }, + "acm007973jsd" : { + "type" : "ControlElement", + "id" : "acm007973jsd", + "name" : "setCreatorEmail" + }, + "acm007974jsd" : { + "type" : "ControlElement", + "id" : "acm007974jsd", + "name" : "getInstructions" + }, + "acm007975jsd" : { + "type" : "ControlElement", + "id" : "acm007975jsd", + "name" : "setInstructions" + }, + "acm007976jsd" : { + "type" : "ControlElement", + "id" : "acm007976jsd", + "name" : "getCreatedTime" + }, + "acm007977jsd" : { + "type" : "ControlElement", + "id" : "acm007977jsd", + "name" : "setCreatedTime" + }, + "acm007978jsd" : { + "type" : "ControlElement", + "id" : "acm007978jsd", + "name" : "getDeletedTime" + }, + "acm007979jsd" : { + "type" : "ControlElement", + "id" : "acm007979jsd", + "name" : "setDeletedTime" + }, + "acm007980jsd" : { + "type" : "ControlElement", + "id" : "acm007980jsd", + "name" : "getStartTime" + }, + "acm007981jsd" : { + "type" : "ControlElement", + "id" : "acm007981jsd", + "name" : "setStartTime" + }, + "acm007982jsd" : { + "type" : "ControlElement", + "id" : "acm007982jsd", + "name" : "getEndTime" + }, + "acm007983jsd" : { + "type" : "ControlElement", + "id" : "acm007983jsd", + "name" : "setEndTime" + }, + "acm007984jsd" : { + "type" : "ControlElement", + "id" : "acm007984jsd", + "name" : "getSessionVisibleFromTime" + }, + "acm007985jsd" : { + "type" : "ControlElement", + "id" : "acm007985jsd", + "name" : "setSessionVisibleFromTime" + }, + "acm007986jsd" : { + "type" : "ControlElement", + "id" : "acm007986jsd", + "name" : "getResultsVisibleFromTime" + }, + "acm007987jsd" : { + "type" : "ControlElement", + "id" : "acm007987jsd", + "name" : "setResultsVisibleFromTime" + }, + "acm007988jsd" : { + "type" : "ControlElement", + "id" : "acm007988jsd", + "name" : "getTimeZone" + }, + "acm007989jsd" : { + "type" : "ControlElement", + "id" : "acm007989jsd", + "name" : "setTimeZone" + }, + "acm007990jsd" : { + "type" : "ControlElement", + "id" : "acm007990jsd", + "name" : "getGracePeriod" + }, + "acm007991jsd" : { + "type" : "ControlElement", + "id" : "acm007991jsd", + "name" : "setGracePeriod" + }, + "acm007992jsd" : { + "type" : "ControlElement", + "id" : "acm007992jsd", + "name" : "isSentOpeningSoonEmail" + }, + "acm007993jsd" : { + "type" : "ControlElement", + "id" : "acm007993jsd", + "name" : "setSentOpeningSoonEmail" + }, + "acm007994jsd" : { + "type" : "ControlElement", + "id" : "acm007994jsd", + "name" : "isSentOpenEmail" + }, + "acm007995jsd" : { + "type" : "ControlElement", + "id" : "acm007995jsd", + "name" : "setSentOpenEmail" + }, + "acm007996jsd" : { + "type" : "ControlElement", + "id" : "acm007996jsd", + "name" : "isSentClosingEmail" + }, + "acm007997jsd" : { + "type" : "ControlElement", + "id" : "acm007997jsd", + "name" : "setSentClosingEmail" + }, + "acm007998jsd" : { + "type" : "ControlElement", + "id" : "acm007998jsd", + "name" : "isSentClosedEmail" + }, + "acm007999jsd" : { + "type" : "ControlElement", + "id" : "acm007999jsd", + "name" : "setSentClosedEmail" + }, + "acm008000jsd" : { + "type" : "ControlElement", + "id" : "acm008000jsd", + "name" : "isSentPublishedEmail" + }, + "acm008001jsd" : { + "type" : "ControlElement", + "id" : "acm008001jsd", + "name" : "setSentPublishedEmail" + }, + "acm008002jsd" : { + "type" : "ControlElement", + "id" : "acm008002jsd", + "name" : "isOpeningEmailEnabled" + }, + "acm008003jsd" : { + "type" : "ControlElement", + "id" : "acm008003jsd", + "name" : "setIsOpeningEmailEnabled" + }, + "acm008004jsd" : { + "type" : "ControlElement", + "id" : "acm008004jsd", + "name" : "isClosingEmailEnabled" + }, + "acm008005jsd" : { + "type" : "ControlElement", + "id" : "acm008005jsd", + "name" : "setSendClosingEmail" + }, + "acm008006jsd" : { + "type" : "ControlElement", + "id" : "acm008006jsd", + "name" : "isPublishedEmailEnabled" + }, + "acm008007jsd" : { + "type" : "ControlElement", + "id" : "acm008007jsd", + "name" : "setSendPublishedEmail" + }, + "acm008008jsd" : { + "type" : "ControlElement", + "id" : "acm008008jsd", + "name" : "getStudentDeadlines" + }, + "acm008009jsd" : { + "type" : "ControlElement", + "id" : "acm008009jsd", + "name" : "setStudentDeadlines" + }, + "acm008010jsd" : { + "type" : "ControlElement", + "id" : "acm008010jsd", + "name" : "getInstructorDeadlines" + }, + "acm008011jsd" : { + "type" : "ControlElement", + "id" : "acm008011jsd", + "name" : "setInstructorDeadlines" + }, + "acm008012jsd" : { + "type" : "ControlElement", + "id" : "acm008012jsd", + "name" : "toString" + }, + "acm008013jsd" : { + "type" : "ClassUnit", + "id" : "acm008013jsd", + "name" : "FeedbackSession", + "compilationUnitId" : "acm007961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm007965jsd", "acm007966jsd", "acm007967jsd", "acm007968jsd", "acm007969jsd", "acm007970jsd", "acm007971jsd", "acm007972jsd", "acm007973jsd", "acm007974jsd", "acm007975jsd", "acm007976jsd", "acm007977jsd", "acm007978jsd", "acm007979jsd", "acm007980jsd", "acm007981jsd", "acm007982jsd", "acm007983jsd", "acm007984jsd", "acm007985jsd", "acm007986jsd", "acm007987jsd", "acm007988jsd", "acm007989jsd", "acm007990jsd", "acm007991jsd", "acm007992jsd", "acm007993jsd", "acm007994jsd", "acm007995jsd", "acm007996jsd", "acm007997jsd", "acm007998jsd", "acm007999jsd", "acm008000jsd", "acm008001jsd", "acm008002jsd", "acm008003jsd", "acm008004jsd", "acm008005jsd", "acm008006jsd", "acm008007jsd", "acm008008jsd", "acm008009jsd", "acm008010jsd", "acm008011jsd", "acm008012jsd" ] + }, + "acm008014jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008014jsd", + "name" : "Instructor", + "parentId" : "acm007722jsd", + "content" : [ "acm008049jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008015jsd" : { + "type" : "CodePackage", + "id" : "acm008015jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008016jsd" ] + }, + "acm008016jsd" : { + "type" : "CodePackage", + "id" : "acm008016jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008017jsd" ] + }, + "acm008017jsd" : { + "type" : "CodePackage", + "id" : "acm008017jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm008014jsd" ] + }, + "acm008018jsd" : { + "type" : "ControlElement", + "id" : "acm008018jsd", + "name" : "Instructor" + }, + "acm008019jsd" : { + "type" : "ControlElement", + "id" : "acm008019jsd", + "name" : "Instructor" + }, + "acm008020jsd" : { + "type" : "ControlElement", + "id" : "acm008020jsd", + "name" : "generateId" + }, + "acm008021jsd" : { + "type" : "ControlElement", + "id" : "acm008021jsd", + "name" : "getUniqueId" + }, + "acm008022jsd" : { + "type" : "ControlElement", + "id" : "acm008022jsd", + "name" : "setUniqueId" + }, + "acm008023jsd" : { + "type" : "ControlElement", + "id" : "acm008023jsd", + "name" : "getGoogleId" + }, + "acm008024jsd" : { + "type" : "ControlElement", + "id" : "acm008024jsd", + "name" : "setGoogleId" + }, + "acm008025jsd" : { + "type" : "ControlElement", + "id" : "acm008025jsd", + "name" : "getCourseId" + }, + "acm008026jsd" : { + "type" : "ControlElement", + "id" : "acm008026jsd", + "name" : "setCourseId" + }, + "acm008027jsd" : { + "type" : "ControlElement", + "id" : "acm008027jsd", + "name" : "getIsArchived" + }, + "acm008028jsd" : { + "type" : "ControlElement", + "id" : "acm008028jsd", + "name" : "setIsArchived" + }, + "acm008029jsd" : { + "type" : "ControlElement", + "id" : "acm008029jsd", + "name" : "getName" + }, + "acm008030jsd" : { + "type" : "ControlElement", + "id" : "acm008030jsd", + "name" : "setName" + }, + "acm008031jsd" : { + "type" : "ControlElement", + "id" : "acm008031jsd", + "name" : "getEmail" + }, + "acm008032jsd" : { + "type" : "ControlElement", + "id" : "acm008032jsd", + "name" : "setEmail" + }, + "acm008033jsd" : { + "type" : "ControlElement", + "id" : "acm008033jsd", + "name" : "getRegistrationKey" + }, + "acm008034jsd" : { + "type" : "ControlElement", + "id" : "acm008034jsd", + "name" : "setRegistrationKey" + }, + "acm008035jsd" : { + "type" : "ControlElement", + "id" : "acm008035jsd", + "name" : "generateRegistrationKey" + }, + "acm008036jsd" : { + "type" : "ControlElement", + "id" : "acm008036jsd", + "name" : "getRole" + }, + "acm008037jsd" : { + "type" : "ControlElement", + "id" : "acm008037jsd", + "name" : "setRole" + }, + "acm008038jsd" : { + "type" : "ControlElement", + "id" : "acm008038jsd", + "name" : "isDisplayedToStudents" + }, + "acm008039jsd" : { + "type" : "ControlElement", + "id" : "acm008039jsd", + "name" : "setIsDisplayedToStudents" + }, + "acm008040jsd" : { + "type" : "ControlElement", + "id" : "acm008040jsd", + "name" : "getDisplayedName" + }, + "acm008041jsd" : { + "type" : "ControlElement", + "id" : "acm008041jsd", + "name" : "setDisplayedName" + }, + "acm008042jsd" : { + "type" : "ControlElement", + "id" : "acm008042jsd", + "name" : "getInstructorPrivilegesAsText" + }, + "acm008043jsd" : { + "type" : "ControlElement", + "id" : "acm008043jsd", + "name" : "setInstructorPrivilegeAsText" + }, + "acm008044jsd" : { + "type" : "ControlElement", + "id" : "acm008044jsd", + "name" : "getCreatedAt" + }, + "acm008045jsd" : { + "type" : "ControlElement", + "id" : "acm008045jsd", + "name" : "setCreatedAt" + }, + "acm008046jsd" : { + "type" : "ControlElement", + "id" : "acm008046jsd", + "name" : "getUpdatedAt" + }, + "acm008047jsd" : { + "type" : "ControlElement", + "id" : "acm008047jsd", + "name" : "setLastUpdate" + }, + "acm008048jsd" : { + "type" : "ControlElement", + "id" : "acm008048jsd", + "name" : "updateLastUpdateTimestamp" + }, + "acm008049jsd" : { + "type" : "ClassUnit", + "id" : "acm008049jsd", + "name" : "Instructor", + "compilationUnitId" : "acm008014jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm008018jsd", "acm008019jsd", "acm008020jsd", "acm008021jsd", "acm008022jsd", "acm008023jsd", "acm008024jsd", "acm008025jsd", "acm008026jsd", "acm008027jsd", "acm008028jsd", "acm008029jsd", "acm008030jsd", "acm008031jsd", "acm008032jsd", "acm008033jsd", "acm008034jsd", "acm008035jsd", "acm008036jsd", "acm008037jsd", "acm008038jsd", "acm008039jsd", "acm008040jsd", "acm008041jsd", "acm008042jsd", "acm008043jsd", "acm008044jsd", "acm008045jsd", "acm008046jsd", "acm008047jsd", "acm008048jsd" ] + }, + "acm008050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008050jsd", + "name" : "Notification", + "parentId" : "acm007722jsd", + "content" : [ "acm008077jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008051jsd" : { + "type" : "CodePackage", + "id" : "acm008051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008052jsd" ] + }, + "acm008052jsd" : { + "type" : "CodePackage", + "id" : "acm008052jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008053jsd" ] + }, + "acm008053jsd" : { + "type" : "CodePackage", + "id" : "acm008053jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm008050jsd" ] + }, + "acm008054jsd" : { + "type" : "ControlElement", + "id" : "acm008054jsd", + "name" : "Notification" + }, + "acm008055jsd" : { + "type" : "ControlElement", + "id" : "acm008055jsd", + "name" : "Notification" + }, + "acm008056jsd" : { + "type" : "ControlElement", + "id" : "acm008056jsd", + "name" : "Notification" + }, + "acm008057jsd" : { + "type" : "ControlElement", + "id" : "acm008057jsd", + "name" : "getNotificationId" + }, + "acm008058jsd" : { + "type" : "ControlElement", + "id" : "acm008058jsd", + "name" : "getStartTime" + }, + "acm008059jsd" : { + "type" : "ControlElement", + "id" : "acm008059jsd", + "name" : "setStartTime" + }, + "acm008060jsd" : { + "type" : "ControlElement", + "id" : "acm008060jsd", + "name" : "getEndTime" + }, + "acm008061jsd" : { + "type" : "ControlElement", + "id" : "acm008061jsd", + "name" : "setEndTime" + }, + "acm008062jsd" : { + "type" : "ControlElement", + "id" : "acm008062jsd", + "name" : "getStyle" + }, + "acm008063jsd" : { + "type" : "ControlElement", + "id" : "acm008063jsd", + "name" : "setStyle" + }, + "acm008064jsd" : { + "type" : "ControlElement", + "id" : "acm008064jsd", + "name" : "getTargetUser" + }, + "acm008065jsd" : { + "type" : "ControlElement", + "id" : "acm008065jsd", + "name" : "setTargetUser" + }, + "acm008066jsd" : { + "type" : "ControlElement", + "id" : "acm008066jsd", + "name" : "getTitle" + }, + "acm008067jsd" : { + "type" : "ControlElement", + "id" : "acm008067jsd", + "name" : "setTitle" + }, + "acm008068jsd" : { + "type" : "ControlElement", + "id" : "acm008068jsd", + "name" : "getMessage" + }, + "acm008069jsd" : { + "type" : "ControlElement", + "id" : "acm008069jsd", + "name" : "setMessage" + }, + "acm008070jsd" : { + "type" : "ControlElement", + "id" : "acm008070jsd", + "name" : "isShown" + }, + "acm008071jsd" : { + "type" : "ControlElement", + "id" : "acm008071jsd", + "name" : "setShown" + }, + "acm008072jsd" : { + "type" : "ControlElement", + "id" : "acm008072jsd", + "name" : "getCreatedAt" + }, + "acm008073jsd" : { + "type" : "ControlElement", + "id" : "acm008073jsd", + "name" : "setCreatedAt" + }, + "acm008074jsd" : { + "type" : "ControlElement", + "id" : "acm008074jsd", + "name" : "getUpdatedAt" + }, + "acm008075jsd" : { + "type" : "ControlElement", + "id" : "acm008075jsd", + "name" : "setUpdatedAt" + }, + "acm008076jsd" : { + "type" : "ControlElement", + "id" : "acm008076jsd", + "name" : "updateLastUpdateTimestamp" + }, + "acm008077jsd" : { + "type" : "ClassUnit", + "id" : "acm008077jsd", + "name" : "Notification", + "compilationUnitId" : "acm008050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm007773jsd" ], + "content" : [ "acm008054jsd", "acm008055jsd", "acm008056jsd", "acm008057jsd", "acm008058jsd", "acm008059jsd", "acm008060jsd", "acm008061jsd", "acm008062jsd", "acm008063jsd", "acm008064jsd", "acm008065jsd", "acm008066jsd", "acm008067jsd", "acm008068jsd", "acm008069jsd", "acm008070jsd", "acm008071jsd", "acm008072jsd", "acm008073jsd", "acm008074jsd", "acm008075jsd", "acm008076jsd" ] + }, + "acm008078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008078jsd", + "name" : "UsageStatistics", + "parentId" : "acm007722jsd", + "content" : [ "acm008095jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008079jsd" : { + "type" : "CodePackage", + "id" : "acm008079jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008080jsd" ] + }, + "acm008080jsd" : { + "type" : "CodePackage", + "id" : "acm008080jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008081jsd" ] + }, + "acm008081jsd" : { + "type" : "CodePackage", + "id" : "acm008081jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm008078jsd" ] + }, + "acm008082jsd" : { + "type" : "ControlElement", + "id" : "acm008082jsd", + "name" : "UsageStatistics" + }, + "acm008083jsd" : { + "type" : "ControlElement", + "id" : "acm008083jsd", + "name" : "UsageStatistics" + }, + "acm008084jsd" : { + "type" : "ControlElement", + "id" : "acm008084jsd", + "name" : "getId" + }, + "acm008085jsd" : { + "type" : "ControlElement", + "id" : "acm008085jsd", + "name" : "getStartTime" + }, + "acm008086jsd" : { + "type" : "ControlElement", + "id" : "acm008086jsd", + "name" : "getTimePeriod" + }, + "acm008087jsd" : { + "type" : "ControlElement", + "id" : "acm008087jsd", + "name" : "getNumResponses" + }, + "acm008088jsd" : { + "type" : "ControlElement", + "id" : "acm008088jsd", + "name" : "getNumCourses" + }, + "acm008089jsd" : { + "type" : "ControlElement", + "id" : "acm008089jsd", + "name" : "getNumStudents" + }, + "acm008090jsd" : { + "type" : "ControlElement", + "id" : "acm008090jsd", + "name" : "getNumInstructors" + }, + "acm008091jsd" : { + "type" : "ControlElement", + "id" : "acm008091jsd", + "name" : "getNumAccountRequests" + }, + "acm008092jsd" : { + "type" : "ControlElement", + "id" : "acm008092jsd", + "name" : "getNumEmails" + }, + "acm008093jsd" : { + "type" : "ControlElement", + "id" : "acm008093jsd", + "name" : "getNumSubmissions" + }, + "acm008094jsd" : { + "type" : "ControlElement", + "id" : "acm008094jsd", + "name" : "generateId" + }, + "acm008095jsd" : { + "type" : "ClassUnit", + "id" : "acm008095jsd", + "name" : "UsageStatistics", + "compilationUnitId" : "acm008078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm007768jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007773jsd" ], + "content" : [ "acm008082jsd", "acm008083jsd", "acm008084jsd", "acm008085jsd", "acm008086jsd", "acm008087jsd", "acm008088jsd", "acm008089jsd", "acm008090jsd", "acm008091jsd", "acm008092jsd", "acm008093jsd", "acm008094jsd" ] + }, + "acm008096jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008096jsd", + "name" : "package-info", + "parentId" : "acm007722jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "entity" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008097jsd" : { + "type" : "CodePackage", + "id" : "acm008097jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008098jsd" ] + }, + "acm008098jsd" : { + "type" : "CodePackage", + "id" : "acm008098jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008099jsd" ] + }, + "acm008099jsd" : { + "type" : "CodePackage", + "id" : "acm008099jsd", + "name" : "entity", + "parentId" : null, + "content" : [ "acm008096jsd" ] + }, + "acm008100jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008100jsd", + "name" : "AccountRequestSearchDocument", + "parentId" : "acm008103jsd", + "content" : [ "acm008106jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008101jsd" : { + "type" : "CodePackage", + "id" : "acm008101jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008102jsd" ] + }, + "acm008102jsd" : { + "type" : "CodePackage", + "id" : "acm008102jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008103jsd" ] + }, + "acm008103jsd" : { + "type" : "CodePackage", + "id" : "acm008103jsd", + "name" : "search", + "parentId" : "acm007363jsd", + "content" : [ "acm008100jsd", "acm008107jsd", "acm008118jsd", "acm008125jsd", "acm008136jsd", "acm008143jsd", "acm008160jsd", "acm008172jsd", "acm008179jsd", "acm008186jsd", "acm008197jsd", "acm011850jsd", "acm011859jsd", "acm011866jsd", "acm011876jsd", "acm011884jsd" ] + }, + "acm008104jsd" : { + "type" : "ControlElement", + "id" : "acm008104jsd", + "name" : "AccountRequestSearchDocument" + }, + "acm008105jsd" : { + "type" : "ControlElement", + "id" : "acm008105jsd", + "name" : "getSearchableFields" + }, + "acm008106jsd" : { + "type" : "ClassUnit", + "id" : "acm008106jsd", + "name" : "AccountRequestSearchDocument", + "compilationUnitId" : "acm008100jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008142jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd" ], + "content" : [ "acm008104jsd", "acm008105jsd" ] + }, + "acm008107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008107jsd", + "name" : "AccountRequestSearchManager", + "parentId" : "acm008103jsd", + "content" : [ "acm008117jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008108jsd" : { + "type" : "CodePackage", + "id" : "acm008108jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008109jsd" ] + }, + "acm008109jsd" : { + "type" : "CodePackage", + "id" : "acm008109jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008110jsd" ] + }, + "acm008110jsd" : { + "type" : "CodePackage", + "id" : "acm008110jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008107jsd" ] + }, + "acm008111jsd" : { + "type" : "ControlElement", + "id" : "acm008111jsd", + "name" : "AccountRequestSearchManager" + }, + "acm008112jsd" : { + "type" : "ControlElement", + "id" : "acm008112jsd", + "name" : "getCollectionName" + }, + "acm008113jsd" : { + "type" : "ControlElement", + "id" : "acm008113jsd", + "name" : "createDocument" + }, + "acm008114jsd" : { + "type" : "ControlElement", + "id" : "acm008114jsd", + "name" : "getAttributeFromDocument" + }, + "acm008115jsd" : { + "type" : "ControlElement", + "id" : "acm008115jsd", + "name" : "sortResult" + }, + "acm008116jsd" : { + "type" : "ControlElement", + "id" : "acm008116jsd", + "name" : "searchAccountRequests" + }, + "acm008117jsd" : { + "type" : "ClassUnit", + "id" : "acm008117jsd", + "name" : "AccountRequestSearchManager", + "compilationUnitId" : "acm008107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008159jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006197jsd", "acm007380jsd", "acm008106jsd" ], + "content" : [ "acm008111jsd", "acm008112jsd", "acm008113jsd", "acm008114jsd", "acm008115jsd", "acm008116jsd" ] + }, + "acm008118jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008118jsd", + "name" : "InstructorSearchDocument", + "parentId" : "acm008103jsd", + "content" : [ "acm008124jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008119jsd" : { + "type" : "CodePackage", + "id" : "acm008119jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008120jsd" ] + }, + "acm008120jsd" : { + "type" : "CodePackage", + "id" : "acm008120jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008121jsd" ] + }, + "acm008121jsd" : { + "type" : "CodePackage", + "id" : "acm008121jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008118jsd" ] + }, + "acm008122jsd" : { + "type" : "ControlElement", + "id" : "acm008122jsd", + "name" : "InstructorSearchDocument" + }, + "acm008123jsd" : { + "type" : "ControlElement", + "id" : "acm008123jsd", + "name" : "getSearchableFields" + }, + "acm008124jsd" : { + "type" : "ClassUnit", + "id" : "acm008124jsd", + "name" : "InstructorSearchDocument", + "compilationUnitId" : "acm008118jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008142jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd" ], + "content" : [ "acm008122jsd", "acm008123jsd" ] + }, + "acm008125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008125jsd", + "name" : "InstructorSearchManager", + "parentId" : "acm008103jsd", + "content" : [ "acm008135jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008126jsd" : { + "type" : "CodePackage", + "id" : "acm008126jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008127jsd" ] + }, + "acm008127jsd" : { + "type" : "CodePackage", + "id" : "acm008127jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008128jsd" ] + }, + "acm008128jsd" : { + "type" : "CodePackage", + "id" : "acm008128jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008125jsd" ] + }, + "acm008129jsd" : { + "type" : "ControlElement", + "id" : "acm008129jsd", + "name" : "InstructorSearchManager" + }, + "acm008130jsd" : { + "type" : "ControlElement", + "id" : "acm008130jsd", + "name" : "getCollectionName" + }, + "acm008131jsd" : { + "type" : "ControlElement", + "id" : "acm008131jsd", + "name" : "createDocument" + }, + "acm008132jsd" : { + "type" : "ControlElement", + "id" : "acm008132jsd", + "name" : "getAttributeFromDocument" + }, + "acm008133jsd" : { + "type" : "ControlElement", + "id" : "acm008133jsd", + "name" : "sortResult" + }, + "acm008134jsd" : { + "type" : "ControlElement", + "id" : "acm008134jsd", + "name" : "searchInstructors" + }, + "acm008135jsd" : { + "type" : "ClassUnit", + "id" : "acm008135jsd", + "name" : "InstructorSearchManager", + "compilationUnitId" : "acm008125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008159jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm006197jsd", "acm007414jsd", "acm007630jsd", "acm008124jsd" ], + "content" : [ "acm008129jsd", "acm008130jsd", "acm008131jsd", "acm008132jsd", "acm008133jsd", "acm008134jsd" ] + }, + "acm008136jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008136jsd", + "name" : "SearchDocument", + "parentId" : "acm008103jsd", + "content" : [ "acm008142jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008137jsd" : { + "type" : "CodePackage", + "id" : "acm008137jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008138jsd" ] + }, + "acm008138jsd" : { + "type" : "CodePackage", + "id" : "acm008138jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008139jsd" ] + }, + "acm008139jsd" : { + "type" : "CodePackage", + "id" : "acm008139jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008136jsd" ] + }, + "acm008140jsd" : { + "type" : "ControlElement", + "id" : "acm008140jsd", + "name" : "SearchDocument" + }, + "acm008141jsd" : { + "type" : "ControlElement", + "id" : "acm008141jsd", + "name" : "getSearchableFields" + }, + "acm008142jsd" : { + "type" : "ClassUnit", + "id" : "acm008142jsd", + "name" : "SearchDocument", + "compilationUnitId" : "acm008136jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004706jsd" ], + "content" : [ "acm008140jsd", "acm008141jsd" ] + }, + "acm008143jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008143jsd", + "name" : "SearchManager", + "parentId" : "acm008103jsd", + "content" : [ "acm008159jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008144jsd" : { + "type" : "CodePackage", + "id" : "acm008144jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008145jsd" ] + }, + "acm008145jsd" : { + "type" : "CodePackage", + "id" : "acm008145jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008146jsd" ] + }, + "acm008146jsd" : { + "type" : "CodePackage", + "id" : "acm008146jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008143jsd" ] + }, + "acm008147jsd" : { + "type" : "ControlElement", + "id" : "acm008147jsd", + "name" : "SearchManager" + }, + "acm008148jsd" : { + "type" : "ControlElement", + "id" : "acm008148jsd", + "name" : "getBasicQuery" + }, + "acm008149jsd" : { + "type" : "ControlElement", + "id" : "acm008149jsd", + "name" : "performQuery" + }, + "acm008150jsd" : { + "type" : "ControlElement", + "id" : "acm008150jsd", + "name" : "getCollectionName" + }, + "acm008151jsd" : { + "type" : "ControlElement", + "id" : "acm008151jsd", + "name" : "createDocument" + }, + "acm008152jsd" : { + "type" : "ControlElement", + "id" : "acm008152jsd", + "name" : "putDocument" + }, + "acm008153jsd" : { + "type" : "ControlElement", + "id" : "acm008153jsd", + "name" : "deleteDocuments" + }, + "acm008154jsd" : { + "type" : "ControlElement", + "id" : "acm008154jsd", + "name" : "resetCollections" + }, + "acm008155jsd" : { + "type" : "ControlElement", + "id" : "acm008155jsd", + "name" : "cleanSpecialChars" + }, + "acm008156jsd" : { + "type" : "ControlElement", + "id" : "acm008156jsd", + "name" : "getAttributeFromDocument" + }, + "acm008157jsd" : { + "type" : "ControlElement", + "id" : "acm008157jsd", + "name" : "sortResult" + }, + "acm008158jsd" : { + "type" : "ControlElement", + "id" : "acm008158jsd", + "name" : "convertDocumentToAttributes" + }, + "acm008159jsd" : { + "type" : "ClassUnit", + "id" : "acm008159jsd", + "name" : "SearchManager", + "compilationUnitId" : "acm008143jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004706jsd", "acm006197jsd", "acm006435jsd", "acm008142jsd" ], + "content" : [ "acm008147jsd", "acm008148jsd", "acm008149jsd", "acm008150jsd", "acm008151jsd", "acm008152jsd", "acm008153jsd", "acm008154jsd", "acm008155jsd", "acm008156jsd", "acm008157jsd", "acm008158jsd" ] + }, + "acm008160jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008160jsd", + "name" : "SearchManagerFactory", + "parentId" : "acm008103jsd", + "content" : [ "acm008171jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008161jsd" : { + "type" : "CodePackage", + "id" : "acm008161jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008162jsd" ] + }, + "acm008162jsd" : { + "type" : "CodePackage", + "id" : "acm008162jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008163jsd" ] + }, + "acm008163jsd" : { + "type" : "CodePackage", + "id" : "acm008163jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008160jsd" ] + }, + "acm008164jsd" : { + "type" : "ControlElement", + "id" : "acm008164jsd", + "name" : "SearchManagerFactory" + }, + "acm008165jsd" : { + "type" : "ControlElement", + "id" : "acm008165jsd", + "name" : "getInstructorSearchManager" + }, + "acm008166jsd" : { + "type" : "ControlElement", + "id" : "acm008166jsd", + "name" : "registerInstructorSearchManager" + }, + "acm008167jsd" : { + "type" : "ControlElement", + "id" : "acm008167jsd", + "name" : "getStudentSearchManager" + }, + "acm008168jsd" : { + "type" : "ControlElement", + "id" : "acm008168jsd", + "name" : "registerStudentSearchManager" + }, + "acm008169jsd" : { + "type" : "ControlElement", + "id" : "acm008169jsd", + "name" : "getAccountRequestSearchManager" + }, + "acm008170jsd" : { + "type" : "ControlElement", + "id" : "acm008170jsd", + "name" : "registerAccountRequestSearchManager" + }, + "acm008171jsd" : { + "type" : "ClassUnit", + "id" : "acm008171jsd", + "name" : "SearchManagerFactory", + "compilationUnitId" : "acm008160jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008117jsd", "acm008135jsd", "acm008196jsd" ], + "content" : [ "acm008164jsd", "acm008165jsd", "acm008166jsd", "acm008167jsd", "acm008168jsd", "acm008169jsd", "acm008170jsd" ] + }, + "acm008172jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008172jsd", + "name" : "SearchManagerStarter", + "parentId" : "acm008103jsd", + "content" : [ "acm008178jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008173jsd" : { + "type" : "CodePackage", + "id" : "acm008173jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008174jsd" ] + }, + "acm008174jsd" : { + "type" : "CodePackage", + "id" : "acm008174jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008175jsd" ] + }, + "acm008175jsd" : { + "type" : "CodePackage", + "id" : "acm008175jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008172jsd" ] + }, + "acm008176jsd" : { + "type" : "ControlElement", + "id" : "acm008176jsd", + "name" : "contextInitialized" + }, + "acm008177jsd" : { + "type" : "ControlElement", + "id" : "acm008177jsd", + "name" : "contextDestroyed" + }, + "acm008178jsd" : { + "type" : "ClassUnit", + "id" : "acm008178jsd", + "name" : "SearchManagerStarter", + "compilationUnitId" : "acm008172jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008117jsd", "acm008135jsd", "acm008196jsd" ], + "content" : [ "acm008176jsd", "acm008177jsd" ] + }, + "acm008179jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008179jsd", + "name" : "StudentSearchDocument", + "parentId" : "acm008103jsd", + "content" : [ "acm008185jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008180jsd" : { + "type" : "CodePackage", + "id" : "acm008180jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008181jsd" ] + }, + "acm008181jsd" : { + "type" : "CodePackage", + "id" : "acm008181jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008182jsd" ] + }, + "acm008182jsd" : { + "type" : "CodePackage", + "id" : "acm008182jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008179jsd" ] + }, + "acm008183jsd" : { + "type" : "ControlElement", + "id" : "acm008183jsd", + "name" : "StudentSearchDocument" + }, + "acm008184jsd" : { + "type" : "ControlElement", + "id" : "acm008184jsd", + "name" : "getSearchableFields" + }, + "acm008185jsd" : { + "type" : "ClassUnit", + "id" : "acm008185jsd", + "name" : "StudentSearchDocument", + "compilationUnitId" : "acm008179jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008142jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005412jsd" ], + "content" : [ "acm008183jsd", "acm008184jsd" ] + }, + "acm008186jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008186jsd", + "name" : "StudentSearchManager", + "parentId" : "acm008103jsd", + "content" : [ "acm008196jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008187jsd" : { + "type" : "CodePackage", + "id" : "acm008187jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008188jsd" ] + }, + "acm008188jsd" : { + "type" : "CodePackage", + "id" : "acm008188jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008189jsd" ] + }, + "acm008189jsd" : { + "type" : "CodePackage", + "id" : "acm008189jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008186jsd" ] + }, + "acm008190jsd" : { + "type" : "ControlElement", + "id" : "acm008190jsd", + "name" : "StudentSearchManager" + }, + "acm008191jsd" : { + "type" : "ControlElement", + "id" : "acm008191jsd", + "name" : "getCollectionName" + }, + "acm008192jsd" : { + "type" : "ControlElement", + "id" : "acm008192jsd", + "name" : "createDocument" + }, + "acm008193jsd" : { + "type" : "ControlElement", + "id" : "acm008193jsd", + "name" : "getAttributeFromDocument" + }, + "acm008194jsd" : { + "type" : "ControlElement", + "id" : "acm008194jsd", + "name" : "sortResult" + }, + "acm008195jsd" : { + "type" : "ControlElement", + "id" : "acm008195jsd", + "name" : "searchStudents" + }, + "acm008196jsd" : { + "type" : "ClassUnit", + "id" : "acm008196jsd", + "name" : "StudentSearchManager", + "compilationUnitId" : "acm008186jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008159jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006197jsd", "acm007414jsd", "acm007703jsd", "acm008185jsd" ], + "content" : [ "acm008190jsd", "acm008191jsd", "acm008192jsd", "acm008193jsd", "acm008194jsd", "acm008195jsd" ] + }, + "acm008197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008197jsd", + "name" : "package-info", + "parentId" : "acm008103jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008198jsd" : { + "type" : "CodePackage", + "id" : "acm008198jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008199jsd" ] + }, + "acm008199jsd" : { + "type" : "CodePackage", + "id" : "acm008199jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm008200jsd" ] + }, + "acm008200jsd" : { + "type" : "CodePackage", + "id" : "acm008200jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm008197jsd" ] + }, + "acm008201jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008201jsd", + "name" : "ApiConst", + "parentId" : "acm008204jsd", + "content" : [ "acm008207jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008202jsd" : { + "type" : "CodePackage", + "id" : "acm008202jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008203jsd" ] + }, + "acm008203jsd" : { + "type" : "CodePackage", + "id" : "acm008203jsd", + "name" : "ui", + "parentId" : "acm001338jsd", + "content" : [ "acm008204jsd", "acm008239jsd", "acm008993jsd", "acm009317jsd", "acm009426jsd" ] + }, + "acm008204jsd" : { + "type" : "CodePackage", + "id" : "acm008204jsd", + "name" : "constants", + "parentId" : "acm008203jsd", + "content" : [ "acm008201jsd", "acm008208jsd", "acm008216jsd", "acm008225jsd", "acm008232jsd" ] + }, + "acm008205jsd" : { + "type" : "ControlElement", + "id" : "acm008205jsd", + "name" : "ApiConst" + }, + "acm008206jsd" : { + "type" : "ControlElement", + "id" : "acm008206jsd", + "name" : "getValue" + }, + "acm008207jsd" : { + "type" : "ClassUnit", + "id" : "acm008207jsd", + "name" : "ApiConst", + "compilationUnitId" : "acm008201jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008205jsd", "acm008206jsd" ] + }, + "acm008208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008208jsd", + "name" : "DefaultInstructorPermissions", + "parentId" : "acm008204jsd", + "content" : [ "acm008215jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008209jsd" : { + "type" : "CodePackage", + "id" : "acm008209jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008210jsd" ] + }, + "acm008210jsd" : { + "type" : "CodePackage", + "id" : "acm008210jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008211jsd" ] + }, + "acm008211jsd" : { + "type" : "CodePackage", + "id" : "acm008211jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm008208jsd" ] + }, + "acm008212jsd" : { + "type" : "ControlElement", + "id" : "acm008212jsd", + "name" : "DefaultInstructorPermissions" + }, + "acm008213jsd" : { + "type" : "ControlElement", + "id" : "acm008213jsd", + "name" : "getValue" + }, + "acm008214jsd" : { + "type" : "ControlElement", + "id" : "acm008214jsd", + "name" : "getPrivileges" + }, + "acm008215jsd" : { + "type" : "ClassUnit", + "id" : "acm008215jsd", + "name" : "DefaultInstructorPermissions", + "compilationUnitId" : "acm008208jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004332jsd" ], + "content" : [ "acm008212jsd", "acm008213jsd", "acm008214jsd" ] + }, + "acm008216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008216jsd", + "name" : "QuestionTypeStructures", + "parentId" : "acm008204jsd", + "content" : [ "acm008224jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008217jsd" : { + "type" : "CodePackage", + "id" : "acm008217jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008218jsd" ] + }, + "acm008218jsd" : { + "type" : "CodePackage", + "id" : "acm008218jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008219jsd" ] + }, + "acm008219jsd" : { + "type" : "CodePackage", + "id" : "acm008219jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm008216jsd" ] + }, + "acm008220jsd" : { + "type" : "ControlElement", + "id" : "acm008220jsd", + "name" : "QuestionTypeStructures" + }, + "acm008221jsd" : { + "type" : "ControlElement", + "id" : "acm008221jsd", + "name" : "getValue" + }, + "acm008222jsd" : { + "type" : "ControlElement", + "id" : "acm008222jsd", + "name" : "getConstSumOptionsQuestionStruct" + }, + "acm008223jsd" : { + "type" : "ControlElement", + "id" : "acm008223jsd", + "name" : "getConstSumRecipientsQuestionStruct" + }, + "acm008224jsd" : { + "type" : "ClassUnit", + "id" : "acm008224jsd", + "name" : "QuestionTypeStructures", + "compilationUnitId" : "acm008216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005778jsd" ], + "content" : [ "acm008220jsd", "acm008221jsd", "acm008222jsd", "acm008223jsd" ] + }, + "acm008225jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008225jsd", + "name" : "ResourceEndpoints", + "parentId" : "acm008204jsd", + "content" : [ "acm008231jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008226jsd" : { + "type" : "CodePackage", + "id" : "acm008226jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008227jsd" ] + }, + "acm008227jsd" : { + "type" : "CodePackage", + "id" : "acm008227jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008228jsd" ] + }, + "acm008228jsd" : { + "type" : "CodePackage", + "id" : "acm008228jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm008225jsd" ] + }, + "acm008229jsd" : { + "type" : "ControlElement", + "id" : "acm008229jsd", + "name" : "ResourceEndpoints" + }, + "acm008230jsd" : { + "type" : "ControlElement", + "id" : "acm008230jsd", + "name" : "getUrl" + }, + "acm008231jsd" : { + "type" : "ClassUnit", + "id" : "acm008231jsd", + "name" : "ResourceEndpoints", + "compilationUnitId" : "acm008225jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008229jsd", "acm008230jsd" ] + }, + "acm008232jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008232jsd", + "name" : "package-info", + "parentId" : "acm008204jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "constants" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008233jsd" : { + "type" : "CodePackage", + "id" : "acm008233jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008234jsd" ] + }, + "acm008234jsd" : { + "type" : "CodePackage", + "id" : "acm008234jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008235jsd" ] + }, + "acm008235jsd" : { + "type" : "CodePackage", + "id" : "acm008235jsd", + "name" : "constants", + "parentId" : null, + "content" : [ "acm008232jsd" ] + }, + "acm008236jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008236jsd", + "name" : "AccountData", + "parentId" : "acm008239jsd", + "content" : [ "acm008245jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008237jsd" : { + "type" : "CodePackage", + "id" : "acm008237jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008238jsd" ] + }, + "acm008238jsd" : { + "type" : "CodePackage", + "id" : "acm008238jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008239jsd" ] + }, + "acm008239jsd" : { + "type" : "CodePackage", + "id" : "acm008239jsd", + "name" : "output", + "parentId" : "acm008203jsd", + "content" : [ "acm008236jsd", "acm008246jsd", "acm008258jsd", "acm008266jsd", "acm008273jsd", "acm008280jsd", "acm008287jsd", "acm008300jsd", "acm008305jsd", "acm008313jsd", "acm008330jsd", "acm008337jsd", "acm008344jsd", "acm008356jsd", "acm008365jsd", "acm008386jsd", "acm008408jsd", "acm008418jsd", "acm008425jsd", "acm008433jsd", "acm008450jsd", "acm008462jsd", "acm008471jsd", "acm008519jsd", "acm008527jsd", "acm008536jsd", "acm008543jsd", "acm008548jsd", "acm008556jsd", "acm008561jsd", "acm008568jsd", "acm008575jsd", "acm008580jsd", "acm008588jsd", "acm008597jsd", "acm008621jsd", "acm008629jsd", "acm008636jsd", "acm008645jsd", "acm008652jsd", "acm008657jsd", "acm008664jsd", "acm008671jsd", "acm008686jsd", "acm008693jsd", "acm008698jsd", "acm008712jsd", "acm008729jsd", "acm008736jsd", "acm008744jsd", "acm008753jsd", "acm008758jsd", "acm008766jsd", "acm008774jsd", "acm008919jsd", "acm008924jsd", "acm008947jsd", "acm008956jsd", "acm008964jsd", "acm008979jsd", "acm008986jsd" ] + }, + "acm008240jsd" : { + "type" : "ControlElement", + "id" : "acm008240jsd", + "name" : "AccountData" + }, + "acm008241jsd" : { + "type" : "ControlElement", + "id" : "acm008241jsd", + "name" : "getEmail" + }, + "acm008242jsd" : { + "type" : "ControlElement", + "id" : "acm008242jsd", + "name" : "getGoogleId" + }, + "acm008243jsd" : { + "type" : "ControlElement", + "id" : "acm008243jsd", + "name" : "getName" + }, + "acm008244jsd" : { + "type" : "ControlElement", + "id" : "acm008244jsd", + "name" : "getReadNotifications" + }, + "acm008245jsd" : { + "type" : "ClassUnit", + "id" : "acm008245jsd", + "name" : "AccountData", + "compilationUnitId" : "acm008236jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd" ], + "content" : [ "acm008240jsd", "acm008241jsd", "acm008242jsd", "acm008243jsd", "acm008244jsd" ] + }, + "acm008246jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008246jsd", + "name" : "AccountRequestData", + "parentId" : "acm008239jsd", + "content" : [ "acm008257jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008247jsd" : { + "type" : "CodePackage", + "id" : "acm008247jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008248jsd" ] + }, + "acm008248jsd" : { + "type" : "CodePackage", + "id" : "acm008248jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008249jsd" ] + }, + "acm008249jsd" : { + "type" : "CodePackage", + "id" : "acm008249jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008246jsd" ] + }, + "acm008250jsd" : { + "type" : "ControlElement", + "id" : "acm008250jsd", + "name" : "AccountRequestData" + }, + "acm008251jsd" : { + "type" : "ControlElement", + "id" : "acm008251jsd", + "name" : "getInstitute" + }, + "acm008252jsd" : { + "type" : "ControlElement", + "id" : "acm008252jsd", + "name" : "getEmail" + }, + "acm008253jsd" : { + "type" : "ControlElement", + "id" : "acm008253jsd", + "name" : "getName" + }, + "acm008254jsd" : { + "type" : "ControlElement", + "id" : "acm008254jsd", + "name" : "getRegistrationKey" + }, + "acm008255jsd" : { + "type" : "ControlElement", + "id" : "acm008255jsd", + "name" : "getRegisteredAt" + }, + "acm008256jsd" : { + "type" : "ControlElement", + "id" : "acm008256jsd", + "name" : "getCreatedAt" + }, + "acm008257jsd" : { + "type" : "ClassUnit", + "id" : "acm008257jsd", + "name" : "AccountRequestData", + "compilationUnitId" : "acm008246jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd" ], + "content" : [ "acm008250jsd", "acm008251jsd", "acm008252jsd", "acm008253jsd", "acm008254jsd", "acm008255jsd", "acm008256jsd" ] + }, + "acm008258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008258jsd", + "name" : "AccountRequestsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008265jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008259jsd" : { + "type" : "CodePackage", + "id" : "acm008259jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008260jsd" ] + }, + "acm008260jsd" : { + "type" : "CodePackage", + "id" : "acm008260jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008261jsd" ] + }, + "acm008261jsd" : { + "type" : "CodePackage", + "id" : "acm008261jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008258jsd" ] + }, + "acm008262jsd" : { + "type" : "ControlElement", + "id" : "acm008262jsd", + "name" : "AccountRequestsData" + }, + "acm008263jsd" : { + "type" : "ControlElement", + "id" : "acm008263jsd", + "name" : "getAccountRequests" + }, + "acm008264jsd" : { + "type" : "ControlElement", + "id" : "acm008264jsd", + "name" : "setAccountRequests" + }, + "acm008265jsd" : { + "type" : "ClassUnit", + "id" : "acm008265jsd", + "name" : "AccountRequestsData", + "compilationUnitId" : "acm008258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008257jsd" ], + "content" : [ "acm008262jsd", "acm008263jsd", "acm008264jsd" ] + }, + "acm008266jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008266jsd", + "name" : "AccountsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008272jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008267jsd" : { + "type" : "CodePackage", + "id" : "acm008267jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008268jsd" ] + }, + "acm008268jsd" : { + "type" : "CodePackage", + "id" : "acm008268jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008269jsd" ] + }, + "acm008269jsd" : { + "type" : "CodePackage", + "id" : "acm008269jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008266jsd" ] + }, + "acm008270jsd" : { + "type" : "ControlElement", + "id" : "acm008270jsd", + "name" : "AccountsData" + }, + "acm008271jsd" : { + "type" : "ControlElement", + "id" : "acm008271jsd", + "name" : "getAccounts" + }, + "acm008272jsd" : { + "type" : "ClassUnit", + "id" : "acm008272jsd", + "name" : "AccountsData", + "compilationUnitId" : "acm008266jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm008245jsd" ], + "content" : [ "acm008270jsd", "acm008271jsd" ] + }, + "acm008273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008273jsd", + "name" : "ActionClasses", + "parentId" : "acm008239jsd", + "content" : [ "acm008279jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008274jsd" : { + "type" : "CodePackage", + "id" : "acm008274jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008275jsd" ] + }, + "acm008275jsd" : { + "type" : "CodePackage", + "id" : "acm008275jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008276jsd" ] + }, + "acm008276jsd" : { + "type" : "CodePackage", + "id" : "acm008276jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008273jsd" ] + }, + "acm008277jsd" : { + "type" : "ControlElement", + "id" : "acm008277jsd", + "name" : "ActionClasses" + }, + "acm008278jsd" : { + "type" : "ControlElement", + "id" : "acm008278jsd", + "name" : "getActionClasses" + }, + "acm008279jsd" : { + "type" : "ClassUnit", + "id" : "acm008279jsd", + "name" : "ActionClasses", + "compilationUnitId" : "acm008273jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008277jsd", "acm008278jsd" ] + }, + "acm008280jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008280jsd", + "name" : "ApiOutput", + "parentId" : "acm008239jsd", + "content" : [ "acm008286jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008281jsd" : { + "type" : "CodePackage", + "id" : "acm008281jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008282jsd" ] + }, + "acm008282jsd" : { + "type" : "CodePackage", + "id" : "acm008282jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008283jsd" ] + }, + "acm008283jsd" : { + "type" : "CodePackage", + "id" : "acm008283jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008280jsd" ] + }, + "acm008284jsd" : { + "type" : "ControlElement", + "id" : "acm008284jsd", + "name" : "getRequestId" + }, + "acm008285jsd" : { + "type" : "ControlElement", + "id" : "acm008285jsd", + "name" : "setRequestId" + }, + "acm008286jsd" : { + "type" : "ClassUnit", + "id" : "acm008286jsd", + "name" : "ApiOutput", + "compilationUnitId" : "acm008280jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008284jsd", "acm008285jsd" ] + }, + "acm008287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008287jsd", + "name" : "AuthInfo", + "parentId" : "acm008239jsd", + "content" : [ "acm008299jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008288jsd" : { + "type" : "CodePackage", + "id" : "acm008288jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008289jsd" ] + }, + "acm008289jsd" : { + "type" : "CodePackage", + "id" : "acm008289jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008290jsd" ] + }, + "acm008290jsd" : { + "type" : "CodePackage", + "id" : "acm008290jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008287jsd" ] + }, + "acm008291jsd" : { + "type" : "ControlElement", + "id" : "acm008291jsd", + "name" : "AuthInfo" + }, + "acm008292jsd" : { + "type" : "ControlElement", + "id" : "acm008292jsd", + "name" : "AuthInfo" + }, + "acm008293jsd" : { + "type" : "ControlElement", + "id" : "acm008293jsd", + "name" : "getStudentLoginUrl" + }, + "acm008294jsd" : { + "type" : "ControlElement", + "id" : "acm008294jsd", + "name" : "getInstructorLoginUrl" + }, + "acm008295jsd" : { + "type" : "ControlElement", + "id" : "acm008295jsd", + "name" : "getAdminLoginUrl" + }, + "acm008296jsd" : { + "type" : "ControlElement", + "id" : "acm008296jsd", + "name" : "getMaintainerLoginUrl" + }, + "acm008297jsd" : { + "type" : "ControlElement", + "id" : "acm008297jsd", + "name" : "getUser" + }, + "acm008298jsd" : { + "type" : "ControlElement", + "id" : "acm008298jsd", + "name" : "isMasquerade" + }, + "acm008299jsd" : { + "type" : "ClassUnit", + "id" : "acm008299jsd", + "name" : "AuthInfo", + "compilationUnitId" : "acm008287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd" ], + "content" : [ "acm008291jsd", "acm008292jsd", "acm008293jsd", "acm008294jsd", "acm008295jsd", "acm008296jsd", "acm008297jsd", "acm008298jsd" ] + }, + "acm008300jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008300jsd", + "name" : "CommentVisibilityType", + "parentId" : "acm008239jsd", + "content" : [ "acm008304jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008301jsd" : { + "type" : "CodePackage", + "id" : "acm008301jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008302jsd" ] + }, + "acm008302jsd" : { + "type" : "CodePackage", + "id" : "acm008302jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008303jsd" ] + }, + "acm008303jsd" : { + "type" : "CodePackage", + "id" : "acm008303jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008300jsd" ] + }, + "acm008304jsd" : { + "type" : "ClassUnit", + "id" : "acm008304jsd", + "name" : "CommentVisibilityType", + "compilationUnitId" : "acm008300jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008305jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008305jsd", + "name" : "CourseArchiveData", + "parentId" : "acm008239jsd", + "content" : [ "acm008312jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008306jsd" : { + "type" : "CodePackage", + "id" : "acm008306jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008307jsd" ] + }, + "acm008307jsd" : { + "type" : "CodePackage", + "id" : "acm008307jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008308jsd" ] + }, + "acm008308jsd" : { + "type" : "CodePackage", + "id" : "acm008308jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008305jsd" ] + }, + "acm008309jsd" : { + "type" : "ControlElement", + "id" : "acm008309jsd", + "name" : "CourseArchiveData" + }, + "acm008310jsd" : { + "type" : "ControlElement", + "id" : "acm008310jsd", + "name" : "getCourseId" + }, + "acm008311jsd" : { + "type" : "ControlElement", + "id" : "acm008311jsd", + "name" : "getIsArchived" + }, + "acm008312jsd" : { + "type" : "ClassUnit", + "id" : "acm008312jsd", + "name" : "CourseArchiveData", + "compilationUnitId" : "acm008305jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008309jsd", "acm008310jsd", "acm008311jsd" ] + }, + "acm008313jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008313jsd", + "name" : "CourseData", + "parentId" : "acm008239jsd", + "content" : [ "acm008329jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008314jsd" : { + "type" : "CodePackage", + "id" : "acm008314jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008315jsd" ] + }, + "acm008315jsd" : { + "type" : "CodePackage", + "id" : "acm008315jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008316jsd" ] + }, + "acm008316jsd" : { + "type" : "CodePackage", + "id" : "acm008316jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008313jsd" ] + }, + "acm008317jsd" : { + "type" : "ControlElement", + "id" : "acm008317jsd", + "name" : "CourseData" + }, + "acm008318jsd" : { + "type" : "ControlElement", + "id" : "acm008318jsd", + "name" : "getCourseId" + }, + "acm008319jsd" : { + "type" : "ControlElement", + "id" : "acm008319jsd", + "name" : "getCourseName" + }, + "acm008320jsd" : { + "type" : "ControlElement", + "id" : "acm008320jsd", + "name" : "getInstitute" + }, + "acm008321jsd" : { + "type" : "ControlElement", + "id" : "acm008321jsd", + "name" : "getTimeZone" + }, + "acm008322jsd" : { + "type" : "ControlElement", + "id" : "acm008322jsd", + "name" : "getCreationTimestamp" + }, + "acm008323jsd" : { + "type" : "ControlElement", + "id" : "acm008323jsd", + "name" : "getDeletionTimestamp" + }, + "acm008324jsd" : { + "type" : "ControlElement", + "id" : "acm008324jsd", + "name" : "getPrivileges" + }, + "acm008325jsd" : { + "type" : "ControlElement", + "id" : "acm008325jsd", + "name" : "setCreationTimestamp" + }, + "acm008326jsd" : { + "type" : "ControlElement", + "id" : "acm008326jsd", + "name" : "setDeletionTimestamp" + }, + "acm008327jsd" : { + "type" : "ControlElement", + "id" : "acm008327jsd", + "name" : "setPrivileges" + }, + "acm008328jsd" : { + "type" : "ControlElement", + "id" : "acm008328jsd", + "name" : "hideInformationForStudent" + }, + "acm008329jsd" : { + "type" : "ClassUnit", + "id" : "acm008329jsd", + "name" : "CourseData", + "compilationUnitId" : "acm008313jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004598jsd" ], + "content" : [ "acm008317jsd", "acm008318jsd", "acm008319jsd", "acm008320jsd", "acm008321jsd", "acm008322jsd", "acm008323jsd", "acm008324jsd", "acm008325jsd", "acm008326jsd", "acm008327jsd", "acm008328jsd" ] + }, + "acm008330jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008330jsd", + "name" : "CourseSectionNamesData", + "parentId" : "acm008239jsd", + "content" : [ "acm008336jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008331jsd" : { + "type" : "CodePackage", + "id" : "acm008331jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008332jsd" ] + }, + "acm008332jsd" : { + "type" : "CodePackage", + "id" : "acm008332jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008333jsd" ] + }, + "acm008333jsd" : { + "type" : "CodePackage", + "id" : "acm008333jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008330jsd" ] + }, + "acm008334jsd" : { + "type" : "ControlElement", + "id" : "acm008334jsd", + "name" : "CourseSectionNamesData" + }, + "acm008335jsd" : { + "type" : "ControlElement", + "id" : "acm008335jsd", + "name" : "getSectionNames" + }, + "acm008336jsd" : { + "type" : "ClassUnit", + "id" : "acm008336jsd", + "name" : "CourseSectionNamesData", + "compilationUnitId" : "acm008330jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008334jsd", "acm008335jsd" ] + }, + "acm008337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008337jsd", + "name" : "CoursesData", + "parentId" : "acm008239jsd", + "content" : [ "acm008343jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008338jsd" : { + "type" : "CodePackage", + "id" : "acm008338jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008339jsd" ] + }, + "acm008339jsd" : { + "type" : "CodePackage", + "id" : "acm008339jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008340jsd" ] + }, + "acm008340jsd" : { + "type" : "CodePackage", + "id" : "acm008340jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008337jsd" ] + }, + "acm008341jsd" : { + "type" : "ControlElement", + "id" : "acm008341jsd", + "name" : "CoursesData" + }, + "acm008342jsd" : { + "type" : "ControlElement", + "id" : "acm008342jsd", + "name" : "getCourses" + }, + "acm008343jsd" : { + "type" : "ClassUnit", + "id" : "acm008343jsd", + "name" : "CoursesData", + "compilationUnitId" : "acm008337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm008329jsd" ], + "content" : [ "acm008341jsd", "acm008342jsd" ] + }, + "acm008344jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008344jsd", + "name" : "DeadlineExtensionData", + "parentId" : "acm008239jsd", + "content" : [ "acm008355jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008345jsd" : { + "type" : "CodePackage", + "id" : "acm008345jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008346jsd" ] + }, + "acm008346jsd" : { + "type" : "CodePackage", + "id" : "acm008346jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008347jsd" ] + }, + "acm008347jsd" : { + "type" : "CodePackage", + "id" : "acm008347jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008344jsd" ] + }, + "acm008348jsd" : { + "type" : "ControlElement", + "id" : "acm008348jsd", + "name" : "DeadlineExtensionData" + }, + "acm008349jsd" : { + "type" : "ControlElement", + "id" : "acm008349jsd", + "name" : "getCourseId" + }, + "acm008350jsd" : { + "type" : "ControlElement", + "id" : "acm008350jsd", + "name" : "getFeedbackSessionName" + }, + "acm008351jsd" : { + "type" : "ControlElement", + "id" : "acm008351jsd", + "name" : "getUserEmail" + }, + "acm008352jsd" : { + "type" : "ControlElement", + "id" : "acm008352jsd", + "name" : "getIsInstructor" + }, + "acm008353jsd" : { + "type" : "ControlElement", + "id" : "acm008353jsd", + "name" : "getSentClosingEmail" + }, + "acm008354jsd" : { + "type" : "ControlElement", + "id" : "acm008354jsd", + "name" : "getEndTime" + }, + "acm008355jsd" : { + "type" : "ClassUnit", + "id" : "acm008355jsd", + "name" : "DeadlineExtensionData", + "compilationUnitId" : "acm008344jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd" ], + "content" : [ "acm008348jsd", "acm008349jsd", "acm008350jsd", "acm008351jsd", "acm008352jsd", "acm008353jsd", "acm008354jsd" ] + }, + "acm008356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008356jsd", + "name" : "EmailData", + "parentId" : "acm008239jsd", + "content" : [ "acm008364jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008357jsd" : { + "type" : "CodePackage", + "id" : "acm008357jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008358jsd" ] + }, + "acm008358jsd" : { + "type" : "CodePackage", + "id" : "acm008358jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008359jsd" ] + }, + "acm008359jsd" : { + "type" : "CodePackage", + "id" : "acm008359jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008356jsd" ] + }, + "acm008360jsd" : { + "type" : "ControlElement", + "id" : "acm008360jsd", + "name" : "EmailData" + }, + "acm008361jsd" : { + "type" : "ControlElement", + "id" : "acm008361jsd", + "name" : "getRecipient" + }, + "acm008362jsd" : { + "type" : "ControlElement", + "id" : "acm008362jsd", + "name" : "getSubject" + }, + "acm008363jsd" : { + "type" : "ControlElement", + "id" : "acm008363jsd", + "name" : "getContent" + }, + "acm008364jsd" : { + "type" : "ClassUnit", + "id" : "acm008364jsd", + "name" : "EmailData", + "compilationUnitId" : "acm008356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd" ], + "content" : [ "acm008360jsd", "acm008361jsd", "acm008362jsd", "acm008363jsd" ] + }, + "acm008365jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008365jsd", + "name" : "EnrollStudentsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008379jsd", "acm008385jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008366jsd" : { + "type" : "CodePackage", + "id" : "acm008366jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008367jsd" ] + }, + "acm008367jsd" : { + "type" : "CodePackage", + "id" : "acm008367jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008368jsd" ] + }, + "acm008368jsd" : { + "type" : "CodePackage", + "id" : "acm008368jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008365jsd" ] + }, + "acm008369jsd" : { + "type" : "ControlElement", + "id" : "acm008369jsd", + "name" : "EnrollStudentsData" + }, + "acm008370jsd" : { + "type" : "ControlElement", + "id" : "acm008370jsd", + "name" : "getUnsuccessfulEnrolls" + }, + "acm008371jsd" : { + "type" : "ControlElement", + "id" : "acm008371jsd", + "name" : "setUnsuccessfulEnrolls" + }, + "acm008372jsd" : { + "type" : "ControlElement", + "id" : "acm008372jsd", + "name" : "getStudentsData" + }, + "acm008373jsd" : { + "type" : "ControlElement", + "id" : "acm008373jsd", + "name" : "setStudentsData" + }, + "acm008374jsd" : { + "type" : "ControlElement", + "id" : "acm008374jsd", + "name" : "EnrollErrorResults" + }, + "acm008375jsd" : { + "type" : "ControlElement", + "id" : "acm008375jsd", + "name" : "getErrorMessage" + }, + "acm008376jsd" : { + "type" : "ControlElement", + "id" : "acm008376jsd", + "name" : "setErrorMessage" + }, + "acm008377jsd" : { + "type" : "ControlElement", + "id" : "acm008377jsd", + "name" : "getStudentEmail" + }, + "acm008378jsd" : { + "type" : "ControlElement", + "id" : "acm008378jsd", + "name" : "setStudentEmail" + }, + "acm008379jsd" : { + "type" : "ClassUnit", + "id" : "acm008379jsd", + "name" : "EnrollStudentsData", + "compilationUnitId" : "acm008365jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008385jsd", "acm008955jsd" ], + "content" : [ "acm008369jsd", "acm008370jsd", "acm008371jsd", "acm008372jsd", "acm008373jsd", "acm008374jsd", "acm008375jsd", "acm008376jsd", "acm008377jsd", "acm008378jsd" ] + }, + "acm008380jsd" : { + "type" : "ControlElement", + "id" : "acm008380jsd", + "name" : "EnrollErrorResults" + }, + "acm008381jsd" : { + "type" : "ControlElement", + "id" : "acm008381jsd", + "name" : "getErrorMessage" + }, + "acm008382jsd" : { + "type" : "ControlElement", + "id" : "acm008382jsd", + "name" : "setErrorMessage" + }, + "acm008383jsd" : { + "type" : "ControlElement", + "id" : "acm008383jsd", + "name" : "getStudentEmail" + }, + "acm008384jsd" : { + "type" : "ControlElement", + "id" : "acm008384jsd", + "name" : "setStudentEmail" + }, + "acm008385jsd" : { + "type" : "ClassUnit", + "id" : "acm008385jsd", + "name" : "EnrollErrorResults", + "compilationUnitId" : "acm008365jsd", + "parentDatatypeId" : "acm008379jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008380jsd", "acm008381jsd", "acm008382jsd", "acm008383jsd", "acm008384jsd" ] + }, + "acm008386jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008386jsd", + "name" : "FeedbackQuestionData", + "parentId" : "acm008239jsd", + "content" : [ "acm008407jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008387jsd" : { + "type" : "CodePackage", + "id" : "acm008387jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008388jsd" ] + }, + "acm008388jsd" : { + "type" : "CodePackage", + "id" : "acm008388jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008389jsd" ] + }, + "acm008389jsd" : { + "type" : "CodePackage", + "id" : "acm008389jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008386jsd" ] + }, + "acm008390jsd" : { + "type" : "ControlElement", + "id" : "acm008390jsd", + "name" : "FeedbackQuestionData" + }, + "acm008391jsd" : { + "type" : "ControlElement", + "id" : "acm008391jsd", + "name" : "convertToFeedbackVisibilityType" + }, + "acm008392jsd" : { + "type" : "ControlElement", + "id" : "acm008392jsd", + "name" : "getFeedbackQuestionId" + }, + "acm008393jsd" : { + "type" : "ControlElement", + "id" : "acm008393jsd", + "name" : "getQuestionNumber" + }, + "acm008394jsd" : { + "type" : "ControlElement", + "id" : "acm008394jsd", + "name" : "setQuestionNumber" + }, + "acm008395jsd" : { + "type" : "ControlElement", + "id" : "acm008395jsd", + "name" : "getQuestionBrief" + }, + "acm008396jsd" : { + "type" : "ControlElement", + "id" : "acm008396jsd", + "name" : "getQuestionDescription" + }, + "acm008397jsd" : { + "type" : "ControlElement", + "id" : "acm008397jsd", + "name" : "getQuestionDetails" + }, + "acm008398jsd" : { + "type" : "ControlElement", + "id" : "acm008398jsd", + "name" : "getQuestionType" + }, + "acm008399jsd" : { + "type" : "ControlElement", + "id" : "acm008399jsd", + "name" : "getGiverType" + }, + "acm008400jsd" : { + "type" : "ControlElement", + "id" : "acm008400jsd", + "name" : "getRecipientType" + }, + "acm008401jsd" : { + "type" : "ControlElement", + "id" : "acm008401jsd", + "name" : "getNumberOfEntitiesToGiveFeedbackToSetting" + }, + "acm008402jsd" : { + "type" : "ControlElement", + "id" : "acm008402jsd", + "name" : "getCustomNumberOfEntitiesToGiveFeedbackTo" + }, + "acm008403jsd" : { + "type" : "ControlElement", + "id" : "acm008403jsd", + "name" : "getShowResponsesTo" + }, + "acm008404jsd" : { + "type" : "ControlElement", + "id" : "acm008404jsd", + "name" : "getShowGiverNameTo" + }, + "acm008405jsd" : { + "type" : "ControlElement", + "id" : "acm008405jsd", + "name" : "getShowRecipientNameTo" + }, + "acm008406jsd" : { + "type" : "ControlElement", + "id" : "acm008406jsd", + "name" : "hideInformationForStudent" + }, + "acm008407jsd" : { + "type" : "ClassUnit", + "id" : "acm008407jsd", + "name" : "FeedbackQuestionData", + "compilationUnitId" : "acm008386jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm005778jsd", "acm005866jsd", "acm005909jsd", "acm005977jsd", "acm005986jsd", "acm006089jsd", "acm008579jsd", "acm008697jsd" ], + "content" : [ "acm008390jsd", "acm008391jsd", "acm008392jsd", "acm008393jsd", "acm008394jsd", "acm008395jsd", "acm008396jsd", "acm008397jsd", "acm008398jsd", "acm008399jsd", "acm008400jsd", "acm008401jsd", "acm008402jsd", "acm008403jsd", "acm008404jsd", "acm008405jsd", "acm008406jsd" ] + }, + "acm008408jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008408jsd", + "name" : "FeedbackQuestionRecipientData", + "parentId" : "acm008239jsd", + "content" : [ "acm008417jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008409jsd" : { + "type" : "CodePackage", + "id" : "acm008409jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008410jsd" ] + }, + "acm008410jsd" : { + "type" : "CodePackage", + "id" : "acm008410jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008411jsd" ] + }, + "acm008411jsd" : { + "type" : "CodePackage", + "id" : "acm008411jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008408jsd" ] + }, + "acm008412jsd" : { + "type" : "ControlElement", + "id" : "acm008412jsd", + "name" : "FeedbackQuestionRecipientData" + }, + "acm008413jsd" : { + "type" : "ControlElement", + "id" : "acm008413jsd", + "name" : "getName" + }, + "acm008414jsd" : { + "type" : "ControlElement", + "id" : "acm008414jsd", + "name" : "getIdentifier" + }, + "acm008415jsd" : { + "type" : "ControlElement", + "id" : "acm008415jsd", + "name" : "getSection" + }, + "acm008416jsd" : { + "type" : "ControlElement", + "id" : "acm008416jsd", + "name" : "getTeam" + }, + "acm008417jsd" : { + "type" : "ClassUnit", + "id" : "acm008417jsd", + "name" : "FeedbackQuestionRecipientData", + "compilationUnitId" : "acm008408jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004239jsd" ], + "content" : [ "acm008412jsd", "acm008413jsd", "acm008414jsd", "acm008415jsd", "acm008416jsd" ] + }, + "acm008418jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008418jsd", + "name" : "FeedbackQuestionRecipientsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008424jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008419jsd" : { + "type" : "CodePackage", + "id" : "acm008419jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008420jsd" ] + }, + "acm008420jsd" : { + "type" : "CodePackage", + "id" : "acm008420jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008421jsd" ] + }, + "acm008421jsd" : { + "type" : "CodePackage", + "id" : "acm008421jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008418jsd" ] + }, + "acm008422jsd" : { + "type" : "ControlElement", + "id" : "acm008422jsd", + "name" : "FeedbackQuestionRecipientsData" + }, + "acm008423jsd" : { + "type" : "ControlElement", + "id" : "acm008423jsd", + "name" : "getRecipients" + }, + "acm008424jsd" : { + "type" : "ClassUnit", + "id" : "acm008424jsd", + "name" : "FeedbackQuestionRecipientsData", + "compilationUnitId" : "acm008418jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004239jsd", "acm008417jsd" ], + "content" : [ "acm008422jsd", "acm008423jsd" ] + }, + "acm008425jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008425jsd", + "name" : "FeedbackQuestionsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008432jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008426jsd" : { + "type" : "CodePackage", + "id" : "acm008426jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008427jsd" ] + }, + "acm008427jsd" : { + "type" : "CodePackage", + "id" : "acm008427jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008428jsd" ] + }, + "acm008428jsd" : { + "type" : "CodePackage", + "id" : "acm008428jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008425jsd" ] + }, + "acm008429jsd" : { + "type" : "ControlElement", + "id" : "acm008429jsd", + "name" : "FeedbackQuestionsData" + }, + "acm008430jsd" : { + "type" : "ControlElement", + "id" : "acm008430jsd", + "name" : "getQuestions" + }, + "acm008431jsd" : { + "type" : "ControlElement", + "id" : "acm008431jsd", + "name" : "normalizeQuestionNumber" + }, + "acm008432jsd" : { + "type" : "ClassUnit", + "id" : "acm008432jsd", + "name" : "FeedbackQuestionsData", + "compilationUnitId" : "acm008425jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm008407jsd" ], + "content" : [ "acm008429jsd", "acm008430jsd", "acm008431jsd" ] + }, + "acm008433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008433jsd", + "name" : "FeedbackResponseCommentData", + "parentId" : "acm008239jsd", + "content" : [ "acm008449jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008434jsd" : { + "type" : "CodePackage", + "id" : "acm008434jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008435jsd" ] + }, + "acm008435jsd" : { + "type" : "CodePackage", + "id" : "acm008435jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008436jsd" ] + }, + "acm008436jsd" : { + "type" : "CodePackage", + "id" : "acm008436jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008433jsd" ] + }, + "acm008437jsd" : { + "type" : "ControlElement", + "id" : "acm008437jsd", + "name" : "FeedbackResponseCommentData" + }, + "acm008438jsd" : { + "type" : "ControlElement", + "id" : "acm008438jsd", + "name" : "convertToFeedbackVisibilityType" + }, + "acm008439jsd" : { + "type" : "ControlElement", + "id" : "acm008439jsd", + "name" : "getCommentText" + }, + "acm008440jsd" : { + "type" : "ControlElement", + "id" : "acm008440jsd", + "name" : "getFeedbackResponseCommentId" + }, + "acm008441jsd" : { + "type" : "ControlElement", + "id" : "acm008441jsd", + "name" : "getFeedbackCommentText" + }, + "acm008442jsd" : { + "type" : "ControlElement", + "id" : "acm008442jsd", + "name" : "getCommentGiver" + }, + "acm008443jsd" : { + "type" : "ControlElement", + "id" : "acm008443jsd", + "name" : "getShowGiverNameTo" + }, + "acm008444jsd" : { + "type" : "ControlElement", + "id" : "acm008444jsd", + "name" : "getShowCommentTo" + }, + "acm008445jsd" : { + "type" : "ControlElement", + "id" : "acm008445jsd", + "name" : "getCreatedAt" + }, + "acm008446jsd" : { + "type" : "ControlElement", + "id" : "acm008446jsd", + "name" : "getLastEditorEmail" + }, + "acm008447jsd" : { + "type" : "ControlElement", + "id" : "acm008447jsd", + "name" : "getLastEditedAt" + }, + "acm008448jsd" : { + "type" : "ControlElement", + "id" : "acm008448jsd", + "name" : "isVisibilityFollowingFeedbackQuestion" + }, + "acm008449jsd" : { + "type" : "ClassUnit", + "id" : "acm008449jsd", + "name" : "FeedbackResponseCommentData", + "compilationUnitId" : "acm008433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004971jsd", "acm008304jsd" ], + "content" : [ "acm008437jsd", "acm008438jsd", "acm008439jsd", "acm008440jsd", "acm008441jsd", "acm008442jsd", "acm008443jsd", "acm008444jsd", "acm008445jsd", "acm008446jsd", "acm008447jsd", "acm008448jsd" ] + }, + "acm008450jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008450jsd", + "name" : "FeedbackResponseData", + "parentId" : "acm008239jsd", + "content" : [ "acm008461jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008451jsd" : { + "type" : "CodePackage", + "id" : "acm008451jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008452jsd" ] + }, + "acm008452jsd" : { + "type" : "CodePackage", + "id" : "acm008452jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008453jsd" ] + }, + "acm008453jsd" : { + "type" : "CodePackage", + "id" : "acm008453jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008450jsd" ] + }, + "acm008454jsd" : { + "type" : "ControlElement", + "id" : "acm008454jsd", + "name" : "FeedbackResponseData" + }, + "acm008455jsd" : { + "type" : "ControlElement", + "id" : "acm008455jsd", + "name" : "getFeedbackResponseId" + }, + "acm008456jsd" : { + "type" : "ControlElement", + "id" : "acm008456jsd", + "name" : "getGiverIdentifier" + }, + "acm008457jsd" : { + "type" : "ControlElement", + "id" : "acm008457jsd", + "name" : "getRecipientIdentifier" + }, + "acm008458jsd" : { + "type" : "ControlElement", + "id" : "acm008458jsd", + "name" : "getResponseDetails" + }, + "acm008459jsd" : { + "type" : "ControlElement", + "id" : "acm008459jsd", + "name" : "getGiverComment" + }, + "acm008460jsd" : { + "type" : "ControlElement", + "id" : "acm008460jsd", + "name" : "setGiverComment" + }, + "acm008461jsd" : { + "type" : "ClassUnit", + "id" : "acm008461jsd", + "name" : "FeedbackResponseData", + "compilationUnitId" : "acm008450jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd", "acm006061jsd", "acm008449jsd" ], + "content" : [ "acm008454jsd", "acm008455jsd", "acm008456jsd", "acm008457jsd", "acm008458jsd", "acm008459jsd", "acm008460jsd" ] + }, + "acm008462jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008462jsd", + "name" : "FeedbackResponsesData", + "parentId" : "acm008239jsd", + "content" : [ "acm008470jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008463jsd" : { + "type" : "CodePackage", + "id" : "acm008463jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008464jsd" ] + }, + "acm008464jsd" : { + "type" : "CodePackage", + "id" : "acm008464jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008465jsd" ] + }, + "acm008465jsd" : { + "type" : "CodePackage", + "id" : "acm008465jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008462jsd" ] + }, + "acm008466jsd" : { + "type" : "ControlElement", + "id" : "acm008466jsd", + "name" : "FeedbackResponsesData" + }, + "acm008467jsd" : { + "type" : "ControlElement", + "id" : "acm008467jsd", + "name" : "FeedbackResponsesData" + }, + "acm008468jsd" : { + "type" : "ControlElement", + "id" : "acm008468jsd", + "name" : "setResponses" + }, + "acm008469jsd" : { + "type" : "ControlElement", + "id" : "acm008469jsd", + "name" : "getResponses" + }, + "acm008470jsd" : { + "type" : "ClassUnit", + "id" : "acm008470jsd", + "name" : "FeedbackResponsesData", + "compilationUnitId" : "acm008462jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd", "acm008461jsd" ], + "content" : [ "acm008466jsd", "acm008467jsd", "acm008468jsd", "acm008469jsd" ] + }, + "acm008471jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008471jsd", + "name" : "FeedbackSessionData", + "parentId" : "acm008239jsd", + "content" : [ "acm008518jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008472jsd" : { + "type" : "CodePackage", + "id" : "acm008472jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008473jsd" ] + }, + "acm008473jsd" : { + "type" : "CodePackage", + "id" : "acm008473jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008474jsd" ] + }, + "acm008474jsd" : { + "type" : "CodePackage", + "id" : "acm008474jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008471jsd" ] + }, + "acm008475jsd" : { + "type" : "ControlElement", + "id" : "acm008475jsd", + "name" : "FeedbackSessionData" + }, + "acm008476jsd" : { + "type" : "ControlElement", + "id" : "acm008476jsd", + "name" : "getCourseId" + }, + "acm008477jsd" : { + "type" : "ControlElement", + "id" : "acm008477jsd", + "name" : "getTimeZone" + }, + "acm008478jsd" : { + "type" : "ControlElement", + "id" : "acm008478jsd", + "name" : "getFeedbackSessionName" + }, + "acm008479jsd" : { + "type" : "ControlElement", + "id" : "acm008479jsd", + "name" : "getInstructions" + }, + "acm008480jsd" : { + "type" : "ControlElement", + "id" : "acm008480jsd", + "name" : "getSubmissionStartTimestamp" + }, + "acm008481jsd" : { + "type" : "ControlElement", + "id" : "acm008481jsd", + "name" : "getSubmissionEndTimestamp" + }, + "acm008482jsd" : { + "type" : "ControlElement", + "id" : "acm008482jsd", + "name" : "getSubmissionEndWithExtensionTimestamp" + }, + "acm008483jsd" : { + "type" : "ControlElement", + "id" : "acm008483jsd", + "name" : "getSessionVisibleFromTimestamp" + }, + "acm008484jsd" : { + "type" : "ControlElement", + "id" : "acm008484jsd", + "name" : "getResultVisibleFromTimestamp" + }, + "acm008485jsd" : { + "type" : "ControlElement", + "id" : "acm008485jsd", + "name" : "getGracePeriod" + }, + "acm008486jsd" : { + "type" : "ControlElement", + "id" : "acm008486jsd", + "name" : "getSessionVisibleSetting" + }, + "acm008487jsd" : { + "type" : "ControlElement", + "id" : "acm008487jsd", + "name" : "getCustomSessionVisibleTimestamp" + }, + "acm008488jsd" : { + "type" : "ControlElement", + "id" : "acm008488jsd", + "name" : "getResponseVisibleSetting" + }, + "acm008489jsd" : { + "type" : "ControlElement", + "id" : "acm008489jsd", + "name" : "getCustomResponseVisibleTimestamp" + }, + "acm008490jsd" : { + "type" : "ControlElement", + "id" : "acm008490jsd", + "name" : "getSubmissionStatus" + }, + "acm008491jsd" : { + "type" : "ControlElement", + "id" : "acm008491jsd", + "name" : "getPublishStatus" + }, + "acm008492jsd" : { + "type" : "ControlElement", + "id" : "acm008492jsd", + "name" : "getIsClosingEmailEnabled" + }, + "acm008493jsd" : { + "type" : "ControlElement", + "id" : "acm008493jsd", + "name" : "getIsPublishedEmailEnabled" + }, + "acm008494jsd" : { + "type" : "ControlElement", + "id" : "acm008494jsd", + "name" : "getStudentDeadlines" + }, + "acm008495jsd" : { + "type" : "ControlElement", + "id" : "acm008495jsd", + "name" : "getInstructorDeadlines" + }, + "acm008496jsd" : { + "type" : "ControlElement", + "id" : "acm008496jsd", + "name" : "setSessionVisibleFromTimestamp" + }, + "acm008497jsd" : { + "type" : "ControlElement", + "id" : "acm008497jsd", + "name" : "setResultVisibleFromTimestamp" + }, + "acm008498jsd" : { + "type" : "ControlElement", + "id" : "acm008498jsd", + "name" : "setGracePeriod" + }, + "acm008499jsd" : { + "type" : "ControlElement", + "id" : "acm008499jsd", + "name" : "setSessionVisibleSetting" + }, + "acm008500jsd" : { + "type" : "ControlElement", + "id" : "acm008500jsd", + "name" : "setCustomSessionVisibleTimestamp" + }, + "acm008501jsd" : { + "type" : "ControlElement", + "id" : "acm008501jsd", + "name" : "setResponseVisibleSetting" + }, + "acm008502jsd" : { + "type" : "ControlElement", + "id" : "acm008502jsd", + "name" : "setCustomResponseVisibleTimestamp" + }, + "acm008503jsd" : { + "type" : "ControlElement", + "id" : "acm008503jsd", + "name" : "setPublishStatus" + }, + "acm008504jsd" : { + "type" : "ControlElement", + "id" : "acm008504jsd", + "name" : "setClosingEmailEnabled" + }, + "acm008505jsd" : { + "type" : "ControlElement", + "id" : "acm008505jsd", + "name" : "setPublishedEmailEnabled" + }, + "acm008506jsd" : { + "type" : "ControlElement", + "id" : "acm008506jsd", + "name" : "getCreatedAtTimestamp" + }, + "acm008507jsd" : { + "type" : "ControlElement", + "id" : "acm008507jsd", + "name" : "setCreatedAtTimestamp" + }, + "acm008508jsd" : { + "type" : "ControlElement", + "id" : "acm008508jsd", + "name" : "getDeletedAtTimestamp" + }, + "acm008509jsd" : { + "type" : "ControlElement", + "id" : "acm008509jsd", + "name" : "getPrivileges" + }, + "acm008510jsd" : { + "type" : "ControlElement", + "id" : "acm008510jsd", + "name" : "setPrivileges" + }, + "acm008511jsd" : { + "type" : "ControlElement", + "id" : "acm008511jsd", + "name" : "setStudentDeadlines" + }, + "acm008512jsd" : { + "type" : "ControlElement", + "id" : "acm008512jsd", + "name" : "setInstructorDeadlines" + }, + "acm008513jsd" : { + "type" : "ControlElement", + "id" : "acm008513jsd", + "name" : "hideInformationForStudent" + }, + "acm008514jsd" : { + "type" : "ControlElement", + "id" : "acm008514jsd", + "name" : "hideInformationForInstructor" + }, + "acm008515jsd" : { + "type" : "ControlElement", + "id" : "acm008515jsd", + "name" : "hideInformationForInstructorSubmission" + }, + "acm008516jsd" : { + "type" : "ControlElement", + "id" : "acm008516jsd", + "name" : "hideSessionVisibilityTimestamps" + }, + "acm008517jsd" : { + "type" : "ControlElement", + "id" : "acm008517jsd", + "name" : "hideInformationForStudentAndInstructor" + }, + "acm008518jsd" : { + "type" : "ClassUnit", + "id" : "acm008518jsd", + "name" : "FeedbackSessionData", + "compilationUnitId" : "acm008471jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm005112jsd", "acm008547jsd", "acm008560jsd", "acm008757jsd", "acm008923jsd" ], + "content" : [ "acm008475jsd", "acm008476jsd", "acm008477jsd", "acm008478jsd", "acm008479jsd", "acm008480jsd", "acm008481jsd", "acm008482jsd", "acm008483jsd", "acm008484jsd", "acm008485jsd", "acm008486jsd", "acm008487jsd", "acm008488jsd", "acm008489jsd", "acm008490jsd", "acm008491jsd", "acm008492jsd", "acm008493jsd", "acm008494jsd", "acm008495jsd", "acm008496jsd", "acm008497jsd", "acm008498jsd", "acm008499jsd", "acm008500jsd", "acm008501jsd", "acm008502jsd", "acm008503jsd", "acm008504jsd", "acm008505jsd", "acm008506jsd", "acm008507jsd", "acm008508jsd", "acm008509jsd", "acm008510jsd", "acm008511jsd", "acm008512jsd", "acm008513jsd", "acm008514jsd", "acm008515jsd", "acm008516jsd", "acm008517jsd" ] + }, + "acm008519jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008519jsd", + "name" : "FeedbackSessionLogData", + "parentId" : "acm008239jsd", + "content" : [ "acm008526jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008520jsd" : { + "type" : "CodePackage", + "id" : "acm008520jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008521jsd" ] + }, + "acm008521jsd" : { + "type" : "CodePackage", + "id" : "acm008521jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008522jsd" ] + }, + "acm008522jsd" : { + "type" : "CodePackage", + "id" : "acm008522jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008519jsd" ] + }, + "acm008523jsd" : { + "type" : "ControlElement", + "id" : "acm008523jsd", + "name" : "FeedbackSessionLogData" + }, + "acm008524jsd" : { + "type" : "ControlElement", + "id" : "acm008524jsd", + "name" : "getFeedbackSessionData" + }, + "acm008525jsd" : { + "type" : "ControlElement", + "id" : "acm008525jsd", + "name" : "getFeedbackSessionLogEntries" + }, + "acm008526jsd" : { + "type" : "ClassUnit", + "id" : "acm008526jsd", + "name" : "FeedbackSessionLogData", + "compilationUnitId" : "acm008519jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm005112jsd", "acm005412jsd", "acm008518jsd", "acm008535jsd" ], + "content" : [ "acm008523jsd", "acm008524jsd", "acm008525jsd" ] + }, + "acm008527jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008527jsd", + "name" : "FeedbackSessionLogEntryData", + "parentId" : "acm008239jsd", + "content" : [ "acm008535jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008528jsd" : { + "type" : "CodePackage", + "id" : "acm008528jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008529jsd" ] + }, + "acm008529jsd" : { + "type" : "CodePackage", + "id" : "acm008529jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008530jsd" ] + }, + "acm008530jsd" : { + "type" : "CodePackage", + "id" : "acm008530jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008527jsd" ] + }, + "acm008531jsd" : { + "type" : "ControlElement", + "id" : "acm008531jsd", + "name" : "FeedbackSessionLogEntryData" + }, + "acm008532jsd" : { + "type" : "ControlElement", + "id" : "acm008532jsd", + "name" : "getStudentData" + }, + "acm008533jsd" : { + "type" : "ControlElement", + "id" : "acm008533jsd", + "name" : "getFeedbackSessionLogType" + }, + "acm008534jsd" : { + "type" : "ControlElement", + "id" : "acm008534jsd", + "name" : "getTimestamp" + }, + "acm008535jsd" : { + "type" : "ClassUnit", + "id" : "acm008535jsd", + "name" : "FeedbackSessionLogEntryData", + "compilationUnitId" : "acm008527jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm005412jsd", "acm005555jsd", "acm008946jsd" ], + "content" : [ "acm008531jsd", "acm008532jsd", "acm008533jsd", "acm008534jsd" ] + }, + "acm008536jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008536jsd", + "name" : "FeedbackSessionLogsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008542jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008537jsd" : { + "type" : "CodePackage", + "id" : "acm008537jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008538jsd" ] + }, + "acm008538jsd" : { + "type" : "CodePackage", + "id" : "acm008538jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008539jsd" ] + }, + "acm008539jsd" : { + "type" : "CodePackage", + "id" : "acm008539jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008536jsd" ] + }, + "acm008540jsd" : { + "type" : "ControlElement", + "id" : "acm008540jsd", + "name" : "FeedbackSessionLogsData" + }, + "acm008541jsd" : { + "type" : "ControlElement", + "id" : "acm008541jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm008542jsd" : { + "type" : "ClassUnit", + "id" : "acm008542jsd", + "name" : "FeedbackSessionLogsData", + "compilationUnitId" : "acm008536jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm005112jsd", "acm005412jsd", "acm008526jsd" ], + "content" : [ "acm008540jsd", "acm008541jsd" ] + }, + "acm008543jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008543jsd", + "name" : "FeedbackSessionPublishStatus", + "parentId" : "acm008239jsd", + "content" : [ "acm008547jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008544jsd" : { + "type" : "CodePackage", + "id" : "acm008544jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008545jsd" ] + }, + "acm008545jsd" : { + "type" : "CodePackage", + "id" : "acm008545jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008546jsd" ] + }, + "acm008546jsd" : { + "type" : "CodePackage", + "id" : "acm008546jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008543jsd" ] + }, + "acm008547jsd" : { + "type" : "ClassUnit", + "id" : "acm008547jsd", + "name" : "FeedbackSessionPublishStatus", + "compilationUnitId" : "acm008543jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008548jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008548jsd", + "name" : "FeedbackSessionStatsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008555jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008549jsd" : { + "type" : "CodePackage", + "id" : "acm008549jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008550jsd" ] + }, + "acm008550jsd" : { + "type" : "CodePackage", + "id" : "acm008550jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008551jsd" ] + }, + "acm008551jsd" : { + "type" : "CodePackage", + "id" : "acm008551jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008548jsd" ] + }, + "acm008552jsd" : { + "type" : "ControlElement", + "id" : "acm008552jsd", + "name" : "FeedbackSessionStatsData" + }, + "acm008553jsd" : { + "type" : "ControlElement", + "id" : "acm008553jsd", + "name" : "getSubmittedTotal" + }, + "acm008554jsd" : { + "type" : "ControlElement", + "id" : "acm008554jsd", + "name" : "getExpectedTotal" + }, + "acm008555jsd" : { + "type" : "ClassUnit", + "id" : "acm008555jsd", + "name" : "FeedbackSessionStatsData", + "compilationUnitId" : "acm008548jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008552jsd", "acm008553jsd", "acm008554jsd" ] + }, + "acm008556jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008556jsd", + "name" : "FeedbackSessionSubmissionStatus", + "parentId" : "acm008239jsd", + "content" : [ "acm008560jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008557jsd" : { + "type" : "CodePackage", + "id" : "acm008557jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008558jsd" ] + }, + "acm008558jsd" : { + "type" : "CodePackage", + "id" : "acm008558jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008559jsd" ] + }, + "acm008559jsd" : { + "type" : "CodePackage", + "id" : "acm008559jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008556jsd" ] + }, + "acm008560jsd" : { + "type" : "ClassUnit", + "id" : "acm008560jsd", + "name" : "FeedbackSessionSubmissionStatus", + "compilationUnitId" : "acm008556jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008561jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008561jsd", + "name" : "FeedbackSessionSubmittedGiverSet", + "parentId" : "acm008239jsd", + "content" : [ "acm008567jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008562jsd" : { + "type" : "CodePackage", + "id" : "acm008562jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008563jsd" ] + }, + "acm008563jsd" : { + "type" : "CodePackage", + "id" : "acm008563jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008564jsd" ] + }, + "acm008564jsd" : { + "type" : "CodePackage", + "id" : "acm008564jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008561jsd" ] + }, + "acm008565jsd" : { + "type" : "ControlElement", + "id" : "acm008565jsd", + "name" : "FeedbackSessionSubmittedGiverSet" + }, + "acm008566jsd" : { + "type" : "ControlElement", + "id" : "acm008566jsd", + "name" : "getGiverIdentifiers" + }, + "acm008567jsd" : { + "type" : "ClassUnit", + "id" : "acm008567jsd", + "name" : "FeedbackSessionSubmittedGiverSet", + "compilationUnitId" : "acm008561jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008565jsd", "acm008566jsd" ] + }, + "acm008568jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008568jsd", + "name" : "FeedbackSessionsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008574jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008569jsd" : { + "type" : "CodePackage", + "id" : "acm008569jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008570jsd" ] + }, + "acm008570jsd" : { + "type" : "CodePackage", + "id" : "acm008570jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008571jsd" ] + }, + "acm008571jsd" : { + "type" : "CodePackage", + "id" : "acm008571jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008568jsd" ] + }, + "acm008572jsd" : { + "type" : "ControlElement", + "id" : "acm008572jsd", + "name" : "FeedbackSessionsData" + }, + "acm008573jsd" : { + "type" : "ControlElement", + "id" : "acm008573jsd", + "name" : "getFeedbackSessions" + }, + "acm008574jsd" : { + "type" : "ClassUnit", + "id" : "acm008574jsd", + "name" : "FeedbackSessionsData", + "compilationUnitId" : "acm008568jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm008518jsd" ], + "content" : [ "acm008572jsd", "acm008573jsd" ] + }, + "acm008575jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008575jsd", + "name" : "FeedbackVisibilityType", + "parentId" : "acm008239jsd", + "content" : [ "acm008579jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008576jsd" : { + "type" : "CodePackage", + "id" : "acm008576jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008577jsd" ] + }, + "acm008577jsd" : { + "type" : "CodePackage", + "id" : "acm008577jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008578jsd" ] + }, + "acm008578jsd" : { + "type" : "CodePackage", + "id" : "acm008578jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008575jsd" ] + }, + "acm008579jsd" : { + "type" : "ClassUnit", + "id" : "acm008579jsd", + "name" : "FeedbackVisibilityType", + "compilationUnitId" : "acm008575jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008580jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008580jsd", + "name" : "GeneralLogsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008587jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008581jsd" : { + "type" : "CodePackage", + "id" : "acm008581jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008582jsd" ] + }, + "acm008582jsd" : { + "type" : "CodePackage", + "id" : "acm008582jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008583jsd" ] + }, + "acm008583jsd" : { + "type" : "CodePackage", + "id" : "acm008583jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008580jsd" ] + }, + "acm008584jsd" : { + "type" : "ControlElement", + "id" : "acm008584jsd", + "name" : "GeneralLogsData" + }, + "acm008585jsd" : { + "type" : "ControlElement", + "id" : "acm008585jsd", + "name" : "getLogEntries" + }, + "acm008586jsd" : { + "type" : "ControlElement", + "id" : "acm008586jsd", + "name" : "getHasNextPage" + }, + "acm008587jsd" : { + "type" : "ClassUnit", + "id" : "acm008587jsd", + "name" : "GeneralLogsData", + "compilationUnitId" : "acm008580jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004359jsd", "acm005572jsd" ], + "content" : [ "acm008584jsd", "acm008585jsd", "acm008586jsd" ] + }, + "acm008588jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008588jsd", + "name" : "HasResponsesData", + "parentId" : "acm008239jsd", + "content" : [ "acm008596jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008589jsd" : { + "type" : "CodePackage", + "id" : "acm008589jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008590jsd" ] + }, + "acm008590jsd" : { + "type" : "CodePackage", + "id" : "acm008590jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008591jsd" ] + }, + "acm008591jsd" : { + "type" : "CodePackage", + "id" : "acm008591jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008588jsd" ] + }, + "acm008592jsd" : { + "type" : "ControlElement", + "id" : "acm008592jsd", + "name" : "HasResponsesData" + }, + "acm008593jsd" : { + "type" : "ControlElement", + "id" : "acm008593jsd", + "name" : "HasResponsesData" + }, + "acm008594jsd" : { + "type" : "ControlElement", + "id" : "acm008594jsd", + "name" : "getHasResponses" + }, + "acm008595jsd" : { + "type" : "ControlElement", + "id" : "acm008595jsd", + "name" : "getHasResponsesBySessions" + }, + "acm008596jsd" : { + "type" : "ClassUnit", + "id" : "acm008596jsd", + "name" : "HasResponsesData", + "compilationUnitId" : "acm008588jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008592jsd", "acm008593jsd", "acm008594jsd", "acm008595jsd" ] + }, + "acm008597jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008597jsd", + "name" : "InstructorData", + "parentId" : "acm008239jsd", + "content" : [ "acm008620jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008598jsd" : { + "type" : "CodePackage", + "id" : "acm008598jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008599jsd" ] + }, + "acm008599jsd" : { + "type" : "CodePackage", + "id" : "acm008599jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008600jsd" ] + }, + "acm008600jsd" : { + "type" : "CodePackage", + "id" : "acm008600jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008597jsd" ] + }, + "acm008601jsd" : { + "type" : "ControlElement", + "id" : "acm008601jsd", + "name" : "InstructorData" + }, + "acm008602jsd" : { + "type" : "ControlElement", + "id" : "acm008602jsd", + "name" : "getGoogleId" + }, + "acm008603jsd" : { + "type" : "ControlElement", + "id" : "acm008603jsd", + "name" : "setGoogleId" + }, + "acm008604jsd" : { + "type" : "ControlElement", + "id" : "acm008604jsd", + "name" : "getCourseId" + }, + "acm008605jsd" : { + "type" : "ControlElement", + "id" : "acm008605jsd", + "name" : "getEmail" + }, + "acm008606jsd" : { + "type" : "ControlElement", + "id" : "acm008606jsd", + "name" : "getRole" + }, + "acm008607jsd" : { + "type" : "ControlElement", + "id" : "acm008607jsd", + "name" : "setRole" + }, + "acm008608jsd" : { + "type" : "ControlElement", + "id" : "acm008608jsd", + "name" : "getIsDisplayedToStudents" + }, + "acm008609jsd" : { + "type" : "ControlElement", + "id" : "acm008609jsd", + "name" : "setIsDisplayedToStudents" + }, + "acm008610jsd" : { + "type" : "ControlElement", + "id" : "acm008610jsd", + "name" : "getDisplayedToStudentsAs" + }, + "acm008611jsd" : { + "type" : "ControlElement", + "id" : "acm008611jsd", + "name" : "setDisplayedToStudentsAs" + }, + "acm008612jsd" : { + "type" : "ControlElement", + "id" : "acm008612jsd", + "name" : "getName" + }, + "acm008613jsd" : { + "type" : "ControlElement", + "id" : "acm008613jsd", + "name" : "getJoinState" + }, + "acm008614jsd" : { + "type" : "ControlElement", + "id" : "acm008614jsd", + "name" : "setJoinState" + }, + "acm008615jsd" : { + "type" : "ControlElement", + "id" : "acm008615jsd", + "name" : "getKey" + }, + "acm008616jsd" : { + "type" : "ControlElement", + "id" : "acm008616jsd", + "name" : "setKey" + }, + "acm008617jsd" : { + "type" : "ControlElement", + "id" : "acm008617jsd", + "name" : "getInstitute" + }, + "acm008618jsd" : { + "type" : "ControlElement", + "id" : "acm008618jsd", + "name" : "setInstitute" + }, + "acm008619jsd" : { + "type" : "ControlElement", + "id" : "acm008619jsd", + "name" : "addAdditionalInformationForAdminSearch" + }, + "acm008620jsd" : { + "type" : "ClassUnit", + "id" : "acm008620jsd", + "name" : "InstructorData", + "compilationUnitId" : "acm008597jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008628jsd", "acm008656jsd" ], + "content" : [ "acm008601jsd", "acm008602jsd", "acm008603jsd", "acm008604jsd", "acm008605jsd", "acm008606jsd", "acm008607jsd", "acm008608jsd", "acm008609jsd", "acm008610jsd", "acm008611jsd", "acm008612jsd", "acm008613jsd", "acm008614jsd", "acm008615jsd", "acm008616jsd", "acm008617jsd", "acm008618jsd", "acm008619jsd" ] + }, + "acm008621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008621jsd", + "name" : "InstructorPermissionRole", + "parentId" : "acm008239jsd", + "content" : [ "acm008628jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008622jsd" : { + "type" : "CodePackage", + "id" : "acm008622jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008623jsd" ] + }, + "acm008623jsd" : { + "type" : "CodePackage", + "id" : "acm008623jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008624jsd" ] + }, + "acm008624jsd" : { + "type" : "CodePackage", + "id" : "acm008624jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008621jsd" ] + }, + "acm008625jsd" : { + "type" : "ControlElement", + "id" : "acm008625jsd", + "name" : "InstructorPermissionRole" + }, + "acm008626jsd" : { + "type" : "ControlElement", + "id" : "acm008626jsd", + "name" : "getRoleName" + }, + "acm008627jsd" : { + "type" : "ControlElement", + "id" : "acm008627jsd", + "name" : "getEnum" + }, + "acm008628jsd" : { + "type" : "ClassUnit", + "id" : "acm008628jsd", + "name" : "InstructorPermissionRole", + "compilationUnitId" : "acm008621jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008628jsd" ], + "content" : [ "acm008625jsd", "acm008626jsd", "acm008627jsd" ] + }, + "acm008629jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008629jsd", + "name" : "InstructorPrivilegeData", + "parentId" : "acm008239jsd", + "content" : [ "acm008635jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008630jsd" : { + "type" : "CodePackage", + "id" : "acm008630jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008631jsd" ] + }, + "acm008631jsd" : { + "type" : "CodePackage", + "id" : "acm008631jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008632jsd" ] + }, + "acm008632jsd" : { + "type" : "CodePackage", + "id" : "acm008632jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008629jsd" ] + }, + "acm008633jsd" : { + "type" : "ControlElement", + "id" : "acm008633jsd", + "name" : "InstructorPrivilegeData" + }, + "acm008634jsd" : { + "type" : "ControlElement", + "id" : "acm008634jsd", + "name" : "getPrivileges" + }, + "acm008635jsd" : { + "type" : "ClassUnit", + "id" : "acm008635jsd", + "name" : "InstructorPrivilegeData", + "compilationUnitId" : "acm008629jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd" ], + "content" : [ "acm008633jsd", "acm008634jsd" ] + }, + "acm008636jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008636jsd", + "name" : "InstructorsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008644jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008637jsd" : { + "type" : "CodePackage", + "id" : "acm008637jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008638jsd" ] + }, + "acm008638jsd" : { + "type" : "CodePackage", + "id" : "acm008638jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008639jsd" ] + }, + "acm008639jsd" : { + "type" : "CodePackage", + "id" : "acm008639jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008636jsd" ] + }, + "acm008640jsd" : { + "type" : "ControlElement", + "id" : "acm008640jsd", + "name" : "InstructorsData" + }, + "acm008641jsd" : { + "type" : "ControlElement", + "id" : "acm008641jsd", + "name" : "InstructorsData" + }, + "acm008642jsd" : { + "type" : "ControlElement", + "id" : "acm008642jsd", + "name" : "getInstructors" + }, + "acm008643jsd" : { + "type" : "ControlElement", + "id" : "acm008643jsd", + "name" : "setInstructors" + }, + "acm008644jsd" : { + "type" : "ClassUnit", + "id" : "acm008644jsd", + "name" : "InstructorsData", + "compilationUnitId" : "acm008636jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008620jsd" ], + "content" : [ "acm008640jsd", "acm008641jsd", "acm008642jsd", "acm008643jsd" ] + }, + "acm008645jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008645jsd", + "name" : "JoinLinkData", + "parentId" : "acm008239jsd", + "content" : [ "acm008651jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008646jsd" : { + "type" : "CodePackage", + "id" : "acm008646jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008647jsd" ] + }, + "acm008647jsd" : { + "type" : "CodePackage", + "id" : "acm008647jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008648jsd" ] + }, + "acm008648jsd" : { + "type" : "CodePackage", + "id" : "acm008648jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008645jsd" ] + }, + "acm008649jsd" : { + "type" : "ControlElement", + "id" : "acm008649jsd", + "name" : "JoinLinkData" + }, + "acm008650jsd" : { + "type" : "ControlElement", + "id" : "acm008650jsd", + "name" : "getJoinLink" + }, + "acm008651jsd" : { + "type" : "ClassUnit", + "id" : "acm008651jsd", + "name" : "JoinLinkData", + "compilationUnitId" : "acm008645jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008649jsd", "acm008650jsd" ] + }, + "acm008652jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008652jsd", + "name" : "JoinState", + "parentId" : "acm008239jsd", + "content" : [ "acm008656jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008653jsd" : { + "type" : "CodePackage", + "id" : "acm008653jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008654jsd" ] + }, + "acm008654jsd" : { + "type" : "CodePackage", + "id" : "acm008654jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008655jsd" ] + }, + "acm008655jsd" : { + "type" : "CodePackage", + "id" : "acm008655jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008652jsd" ] + }, + "acm008656jsd" : { + "type" : "ClassUnit", + "id" : "acm008656jsd", + "name" : "JoinState", + "compilationUnitId" : "acm008652jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008657jsd", + "name" : "JoinStatus", + "parentId" : "acm008239jsd", + "content" : [ "acm008663jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008658jsd" : { + "type" : "CodePackage", + "id" : "acm008658jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008659jsd" ] + }, + "acm008659jsd" : { + "type" : "CodePackage", + "id" : "acm008659jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008660jsd" ] + }, + "acm008660jsd" : { + "type" : "CodePackage", + "id" : "acm008660jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008657jsd" ] + }, + "acm008661jsd" : { + "type" : "ControlElement", + "id" : "acm008661jsd", + "name" : "JoinStatus" + }, + "acm008662jsd" : { + "type" : "ControlElement", + "id" : "acm008662jsd", + "name" : "getHasJoined" + }, + "acm008663jsd" : { + "type" : "ClassUnit", + "id" : "acm008663jsd", + "name" : "JoinStatus", + "compilationUnitId" : "acm008657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008661jsd", "acm008662jsd" ] + }, + "acm008664jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008664jsd", + "name" : "MessageOutput", + "parentId" : "acm008239jsd", + "content" : [ "acm008670jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008665jsd" : { + "type" : "CodePackage", + "id" : "acm008665jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008666jsd" ] + }, + "acm008666jsd" : { + "type" : "CodePackage", + "id" : "acm008666jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008667jsd" ] + }, + "acm008667jsd" : { + "type" : "CodePackage", + "id" : "acm008667jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008664jsd" ] + }, + "acm008668jsd" : { + "type" : "ControlElement", + "id" : "acm008668jsd", + "name" : "MessageOutput" + }, + "acm008669jsd" : { + "type" : "ControlElement", + "id" : "acm008669jsd", + "name" : "getMessage" + }, + "acm008670jsd" : { + "type" : "ClassUnit", + "id" : "acm008670jsd", + "name" : "MessageOutput", + "compilationUnitId" : "acm008664jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008668jsd", "acm008669jsd" ] + }, + "acm008671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008671jsd", + "name" : "NotificationData", + "parentId" : "acm008239jsd", + "content" : [ "acm008685jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008672jsd" : { + "type" : "CodePackage", + "id" : "acm008672jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008673jsd" ] + }, + "acm008673jsd" : { + "type" : "CodePackage", + "id" : "acm008673jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008674jsd" ] + }, + "acm008674jsd" : { + "type" : "CodePackage", + "id" : "acm008674jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008671jsd" ] + }, + "acm008675jsd" : { + "type" : "ControlElement", + "id" : "acm008675jsd", + "name" : "NotificationData" + }, + "acm008676jsd" : { + "type" : "ControlElement", + "id" : "acm008676jsd", + "name" : "getNotificationId" + }, + "acm008677jsd" : { + "type" : "ControlElement", + "id" : "acm008677jsd", + "name" : "getStartTimestamp" + }, + "acm008678jsd" : { + "type" : "ControlElement", + "id" : "acm008678jsd", + "name" : "getEndTimestamp" + }, + "acm008679jsd" : { + "type" : "ControlElement", + "id" : "acm008679jsd", + "name" : "getCreatedAt" + }, + "acm008680jsd" : { + "type" : "ControlElement", + "id" : "acm008680jsd", + "name" : "getStyle" + }, + "acm008681jsd" : { + "type" : "ControlElement", + "id" : "acm008681jsd", + "name" : "getTargetUser" + }, + "acm008682jsd" : { + "type" : "ControlElement", + "id" : "acm008682jsd", + "name" : "getTitle" + }, + "acm008683jsd" : { + "type" : "ControlElement", + "id" : "acm008683jsd", + "name" : "getMessage" + }, + "acm008684jsd" : { + "type" : "ControlElement", + "id" : "acm008684jsd", + "name" : "isShown" + }, + "acm008685jsd" : { + "type" : "ClassUnit", + "id" : "acm008685jsd", + "name" : "NotificationData", + "compilationUnitId" : "acm008671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm005329jsd" ], + "content" : [ "acm008675jsd", "acm008676jsd", "acm008677jsd", "acm008678jsd", "acm008679jsd", "acm008680jsd", "acm008681jsd", "acm008682jsd", "acm008683jsd", "acm008684jsd" ] + }, + "acm008686jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008686jsd", + "name" : "NotificationsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008692jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008687jsd" : { + "type" : "CodePackage", + "id" : "acm008687jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008688jsd" ] + }, + "acm008688jsd" : { + "type" : "CodePackage", + "id" : "acm008688jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008689jsd" ] + }, + "acm008689jsd" : { + "type" : "CodePackage", + "id" : "acm008689jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008686jsd" ] + }, + "acm008690jsd" : { + "type" : "ControlElement", + "id" : "acm008690jsd", + "name" : "NotificationsData" + }, + "acm008691jsd" : { + "type" : "ControlElement", + "id" : "acm008691jsd", + "name" : "getNotifications" + }, + "acm008692jsd" : { + "type" : "ClassUnit", + "id" : "acm008692jsd", + "name" : "NotificationsData", + "compilationUnitId" : "acm008686jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm008685jsd" ], + "content" : [ "acm008690jsd", "acm008691jsd" ] + }, + "acm008693jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008693jsd", + "name" : "NumberOfEntitiesToGiveFeedbackToSetting", + "parentId" : "acm008239jsd", + "content" : [ "acm008697jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008694jsd" : { + "type" : "CodePackage", + "id" : "acm008694jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008695jsd" ] + }, + "acm008695jsd" : { + "type" : "CodePackage", + "id" : "acm008695jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008696jsd" ] + }, + "acm008696jsd" : { + "type" : "CodePackage", + "id" : "acm008696jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008693jsd" ] + }, + "acm008697jsd" : { + "type" : "ClassUnit", + "id" : "acm008697jsd", + "name" : "NumberOfEntitiesToGiveFeedbackToSetting", + "compilationUnitId" : "acm008693jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008698jsd", + "name" : "OngoingSession", + "parentId" : "acm008239jsd", + "content" : [ "acm008711jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008699jsd" : { + "type" : "CodePackage", + "id" : "acm008699jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008700jsd" ] + }, + "acm008700jsd" : { + "type" : "CodePackage", + "id" : "acm008700jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008701jsd" ] + }, + "acm008701jsd" : { + "type" : "CodePackage", + "id" : "acm008701jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008698jsd" ] + }, + "acm008702jsd" : { + "type" : "ControlElement", + "id" : "acm008702jsd", + "name" : "OngoingSession" + }, + "acm008703jsd" : { + "type" : "ControlElement", + "id" : "acm008703jsd", + "name" : "getSessionStatusForShow" + }, + "acm008704jsd" : { + "type" : "ControlElement", + "id" : "acm008704jsd", + "name" : "getSessionStatus" + }, + "acm008705jsd" : { + "type" : "ControlElement", + "id" : "acm008705jsd", + "name" : "getInstructorHomePageLink" + }, + "acm008706jsd" : { + "type" : "ControlElement", + "id" : "acm008706jsd", + "name" : "getStartTime" + }, + "acm008707jsd" : { + "type" : "ControlElement", + "id" : "acm008707jsd", + "name" : "getEndTime" + }, + "acm008708jsd" : { + "type" : "ControlElement", + "id" : "acm008708jsd", + "name" : "getCreatorEmail" + }, + "acm008709jsd" : { + "type" : "ControlElement", + "id" : "acm008709jsd", + "name" : "getCourseId" + }, + "acm008710jsd" : { + "type" : "ControlElement", + "id" : "acm008710jsd", + "name" : "getFeedbackSessionName" + }, + "acm008711jsd" : { + "type" : "ClassUnit", + "id" : "acm008711jsd", + "name" : "OngoingSession", + "compilationUnitId" : "acm008698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm005112jsd" ], + "content" : [ "acm008702jsd", "acm008703jsd", "acm008704jsd", "acm008705jsd", "acm008706jsd", "acm008707jsd", "acm008708jsd", "acm008709jsd", "acm008710jsd" ] + }, + "acm008712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008712jsd", + "name" : "OngoingSessionsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008728jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008713jsd" : { + "type" : "CodePackage", + "id" : "acm008713jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008714jsd" ] + }, + "acm008714jsd" : { + "type" : "CodePackage", + "id" : "acm008714jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008715jsd" ] + }, + "acm008715jsd" : { + "type" : "CodePackage", + "id" : "acm008715jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008712jsd" ] + }, + "acm008716jsd" : { + "type" : "ControlElement", + "id" : "acm008716jsd", + "name" : "getTotalOngoingSessions" + }, + "acm008717jsd" : { + "type" : "ControlElement", + "id" : "acm008717jsd", + "name" : "getTotalOpenSessions" + }, + "acm008718jsd" : { + "type" : "ControlElement", + "id" : "acm008718jsd", + "name" : "getTotalClosedSessions" + }, + "acm008719jsd" : { + "type" : "ControlElement", + "id" : "acm008719jsd", + "name" : "getTotalAwaitingSessions" + }, + "acm008720jsd" : { + "type" : "ControlElement", + "id" : "acm008720jsd", + "name" : "getTotalInstitutes" + }, + "acm008721jsd" : { + "type" : "ControlElement", + "id" : "acm008721jsd", + "name" : "getSessions" + }, + "acm008722jsd" : { + "type" : "ControlElement", + "id" : "acm008722jsd", + "name" : "setTotalOngoingSessions" + }, + "acm008723jsd" : { + "type" : "ControlElement", + "id" : "acm008723jsd", + "name" : "setTotalOpenSessions" + }, + "acm008724jsd" : { + "type" : "ControlElement", + "id" : "acm008724jsd", + "name" : "setTotalClosedSessions" + }, + "acm008725jsd" : { + "type" : "ControlElement", + "id" : "acm008725jsd", + "name" : "setTotalAwaitingSessions" + }, + "acm008726jsd" : { + "type" : "ControlElement", + "id" : "acm008726jsd", + "name" : "setTotalInstitutes" + }, + "acm008727jsd" : { + "type" : "ControlElement", + "id" : "acm008727jsd", + "name" : "setSessions" + }, + "acm008728jsd" : { + "type" : "ClassUnit", + "id" : "acm008728jsd", + "name" : "OngoingSessionsData", + "compilationUnitId" : "acm008712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008711jsd" ], + "content" : [ "acm008716jsd", "acm008717jsd", "acm008718jsd", "acm008719jsd", "acm008720jsd", "acm008721jsd", "acm008722jsd", "acm008723jsd", "acm008724jsd", "acm008725jsd", "acm008726jsd", "acm008727jsd" ] + }, + "acm008729jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008729jsd", + "name" : "ReadNotificationsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008735jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008730jsd" : { + "type" : "CodePackage", + "id" : "acm008730jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008731jsd" ] + }, + "acm008731jsd" : { + "type" : "CodePackage", + "id" : "acm008731jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008732jsd" ] + }, + "acm008732jsd" : { + "type" : "CodePackage", + "id" : "acm008732jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008729jsd" ] + }, + "acm008733jsd" : { + "type" : "ControlElement", + "id" : "acm008733jsd", + "name" : "ReadNotificationsData" + }, + "acm008734jsd" : { + "type" : "ControlElement", + "id" : "acm008734jsd", + "name" : "getReadNotifications" + }, + "acm008735jsd" : { + "type" : "ClassUnit", + "id" : "acm008735jsd", + "name" : "ReadNotificationsData", + "compilationUnitId" : "acm008729jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008733jsd", "acm008734jsd" ] + }, + "acm008736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008736jsd", + "name" : "RegenerateKeyData", + "parentId" : "acm008239jsd", + "content" : [ "acm008743jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008737jsd" : { + "type" : "CodePackage", + "id" : "acm008737jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008738jsd" ] + }, + "acm008738jsd" : { + "type" : "CodePackage", + "id" : "acm008738jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008739jsd" ] + }, + "acm008739jsd" : { + "type" : "CodePackage", + "id" : "acm008739jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008736jsd" ] + }, + "acm008740jsd" : { + "type" : "ControlElement", + "id" : "acm008740jsd", + "name" : "RegenerateKeyData" + }, + "acm008741jsd" : { + "type" : "ControlElement", + "id" : "acm008741jsd", + "name" : "getMessage" + }, + "acm008742jsd" : { + "type" : "ControlElement", + "id" : "acm008742jsd", + "name" : "getNewRegistrationKey" + }, + "acm008743jsd" : { + "type" : "ClassUnit", + "id" : "acm008743jsd", + "name" : "RegenerateKeyData", + "compilationUnitId" : "acm008736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008740jsd", "acm008741jsd", "acm008742jsd" ] + }, + "acm008744jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008744jsd", + "name" : "RegkeyValidityData", + "parentId" : "acm008239jsd", + "content" : [ "acm008752jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008745jsd" : { + "type" : "CodePackage", + "id" : "acm008745jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008746jsd" ] + }, + "acm008746jsd" : { + "type" : "CodePackage", + "id" : "acm008746jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008747jsd" ] + }, + "acm008747jsd" : { + "type" : "CodePackage", + "id" : "acm008747jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008744jsd" ] + }, + "acm008748jsd" : { + "type" : "ControlElement", + "id" : "acm008748jsd", + "name" : "RegkeyValidityData" + }, + "acm008749jsd" : { + "type" : "ControlElement", + "id" : "acm008749jsd", + "name" : "isValid" + }, + "acm008750jsd" : { + "type" : "ControlElement", + "id" : "acm008750jsd", + "name" : "isUsed" + }, + "acm008751jsd" : { + "type" : "ControlElement", + "id" : "acm008751jsd", + "name" : "isAllowedAccess" + }, + "acm008752jsd" : { + "type" : "ClassUnit", + "id" : "acm008752jsd", + "name" : "RegkeyValidityData", + "compilationUnitId" : "acm008744jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008748jsd", "acm008749jsd", "acm008750jsd", "acm008751jsd" ] + }, + "acm008753jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008753jsd", + "name" : "ResponseVisibleSetting", + "parentId" : "acm008239jsd", + "content" : [ "acm008757jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008754jsd" : { + "type" : "CodePackage", + "id" : "acm008754jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008755jsd" ] + }, + "acm008755jsd" : { + "type" : "CodePackage", + "id" : "acm008755jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008756jsd" ] + }, + "acm008756jsd" : { + "type" : "CodePackage", + "id" : "acm008756jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008753jsd" ] + }, + "acm008757jsd" : { + "type" : "ClassUnit", + "id" : "acm008757jsd", + "name" : "ResponseVisibleSetting", + "compilationUnitId" : "acm008753jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008758jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008758jsd", + "name" : "SendLoginEmailResponseData", + "parentId" : "acm008239jsd", + "content" : [ "acm008765jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008759jsd" : { + "type" : "CodePackage", + "id" : "acm008759jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008760jsd" ] + }, + "acm008760jsd" : { + "type" : "CodePackage", + "id" : "acm008760jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008761jsd" ] + }, + "acm008761jsd" : { + "type" : "CodePackage", + "id" : "acm008761jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008758jsd" ] + }, + "acm008762jsd" : { + "type" : "ControlElement", + "id" : "acm008762jsd", + "name" : "SendLoginEmailResponseData" + }, + "acm008763jsd" : { + "type" : "ControlElement", + "id" : "acm008763jsd", + "name" : "isEmailSent" + }, + "acm008764jsd" : { + "type" : "ControlElement", + "id" : "acm008764jsd", + "name" : "getMessage" + }, + "acm008765jsd" : { + "type" : "ClassUnit", + "id" : "acm008765jsd", + "name" : "SendLoginEmailResponseData", + "compilationUnitId" : "acm008758jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008762jsd", "acm008763jsd", "acm008764jsd" ] + }, + "acm008766jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008766jsd", + "name" : "SessionLinksRecoveryResponseData", + "parentId" : "acm008239jsd", + "content" : [ "acm008773jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008767jsd" : { + "type" : "CodePackage", + "id" : "acm008767jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008768jsd" ] + }, + "acm008768jsd" : { + "type" : "CodePackage", + "id" : "acm008768jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008769jsd" ] + }, + "acm008769jsd" : { + "type" : "CodePackage", + "id" : "acm008769jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008766jsd" ] + }, + "acm008770jsd" : { + "type" : "ControlElement", + "id" : "acm008770jsd", + "name" : "SessionLinksRecoveryResponseData" + }, + "acm008771jsd" : { + "type" : "ControlElement", + "id" : "acm008771jsd", + "name" : "isEmailSent" + }, + "acm008772jsd" : { + "type" : "ControlElement", + "id" : "acm008772jsd", + "name" : "getMessage" + }, + "acm008773jsd" : { + "type" : "ClassUnit", + "id" : "acm008773jsd", + "name" : "SessionLinksRecoveryResponseData", + "compilationUnitId" : "acm008766jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008770jsd", "acm008771jsd", "acm008772jsd" ] + }, + "acm008774jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008774jsd", + "name" : "SessionResultsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008840jsd", "acm008850jsd", "acm008883jsd", "acm008900jsd", "acm008911jsd", "acm008918jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008775jsd" : { + "type" : "CodePackage", + "id" : "acm008775jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008776jsd" ] + }, + "acm008776jsd" : { + "type" : "CodePackage", + "id" : "acm008776jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008777jsd" ] + }, + "acm008777jsd" : { + "type" : "CodePackage", + "id" : "acm008777jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008774jsd" ] + }, + "acm008778jsd" : { + "type" : "ControlElement", + "id" : "acm008778jsd", + "name" : "SessionResultsData" + }, + "acm008779jsd" : { + "type" : "ControlElement", + "id" : "acm008779jsd", + "name" : "initForInstructor" + }, + "acm008780jsd" : { + "type" : "ControlElement", + "id" : "acm008780jsd", + "name" : "initForStudent" + }, + "acm008781jsd" : { + "type" : "ControlElement", + "id" : "acm008781jsd", + "name" : "buildSingleResponseForStudent" + }, + "acm008782jsd" : { + "type" : "ControlElement", + "id" : "acm008782jsd", + "name" : "removeAnonymousHash" + }, + "acm008783jsd" : { + "type" : "ControlElement", + "id" : "acm008783jsd", + "name" : "buildResponsesForInstructor" + }, + "acm008784jsd" : { + "type" : "ControlElement", + "id" : "acm008784jsd", + "name" : "buildSingleResponseForInstructor" + }, + "acm008785jsd" : { + "type" : "ControlElement", + "id" : "acm008785jsd", + "name" : "getGiverNameOfResponse" + }, + "acm008786jsd" : { + "type" : "ControlElement", + "id" : "acm008786jsd", + "name" : "getRecipientNameOfResponse" + }, + "acm008787jsd" : { + "type" : "ControlElement", + "id" : "acm008787jsd", + "name" : "buildComments" + }, + "acm008788jsd" : { + "type" : "ControlElement", + "id" : "acm008788jsd", + "name" : "getQuestions" + }, + "acm008789jsd" : { + "type" : "ControlElement", + "id" : "acm008789jsd", + "name" : "QuestionOutput" + }, + "acm008790jsd" : { + "type" : "ControlElement", + "id" : "acm008790jsd", + "name" : "getFeedbackQuestion" + }, + "acm008791jsd" : { + "type" : "ControlElement", + "id" : "acm008791jsd", + "name" : "getQuestionStatistics" + }, + "acm008792jsd" : { + "type" : "ControlElement", + "id" : "acm008792jsd", + "name" : "getAllResponses" + }, + "acm008793jsd" : { + "type" : "ControlElement", + "id" : "acm008793jsd", + "name" : "getHasResponseButNotVisibleForPreview" + }, + "acm008794jsd" : { + "type" : "ControlElement", + "id" : "acm008794jsd", + "name" : "getHasCommentNotVisibleForPreview" + }, + "acm008795jsd" : { + "type" : "ControlElement", + "id" : "acm008795jsd", + "name" : "getResponsesFromSelf" + }, + "acm008796jsd" : { + "type" : "ControlElement", + "id" : "acm008796jsd", + "name" : "getResponsesToSelf" + }, + "acm008797jsd" : { + "type" : "ControlElement", + "id" : "acm008797jsd", + "name" : "getOtherResponses" + }, + "acm008798jsd" : { + "type" : "ControlElement", + "id" : "acm008798jsd", + "name" : "ResponseOutput" + }, + "acm008799jsd" : { + "type" : "ControlElement", + "id" : "acm008799jsd", + "name" : "builder" + }, + "acm008800jsd" : { + "type" : "ControlElement", + "id" : "acm008800jsd", + "name" : "isMissingResponse" + }, + "acm008801jsd" : { + "type" : "ControlElement", + "id" : "acm008801jsd", + "name" : "getResponseId" + }, + "acm008802jsd" : { + "type" : "ControlElement", + "id" : "acm008802jsd", + "name" : "getGiver" + }, + "acm008803jsd" : { + "type" : "ControlElement", + "id" : "acm008803jsd", + "name" : "getGiverEmail" + }, + "acm008804jsd" : { + "type" : "ControlElement", + "id" : "acm008804jsd", + "name" : "getRelatedGiverEmail" + }, + "acm008805jsd" : { + "type" : "ControlElement", + "id" : "acm008805jsd", + "name" : "getGiverTeam" + }, + "acm008806jsd" : { + "type" : "ControlElement", + "id" : "acm008806jsd", + "name" : "getGiverSection" + }, + "acm008807jsd" : { + "type" : "ControlElement", + "id" : "acm008807jsd", + "name" : "getRecipient" + }, + "acm008808jsd" : { + "type" : "ControlElement", + "id" : "acm008808jsd", + "name" : "getRecipientTeam" + }, + "acm008809jsd" : { + "type" : "ControlElement", + "id" : "acm008809jsd", + "name" : "getRecipientEmail" + }, + "acm008810jsd" : { + "type" : "ControlElement", + "id" : "acm008810jsd", + "name" : "getRecipientSection" + }, + "acm008811jsd" : { + "type" : "ControlElement", + "id" : "acm008811jsd", + "name" : "getResponseDetails" + }, + "acm008812jsd" : { + "type" : "ControlElement", + "id" : "acm008812jsd", + "name" : "getParticipantComment" + }, + "acm008813jsd" : { + "type" : "ControlElement", + "id" : "acm008813jsd", + "name" : "getInstructorComments" + }, + "acm008814jsd" : { + "type" : "ControlElement", + "id" : "acm008814jsd", + "name" : "Builder" + }, + "acm008815jsd" : { + "type" : "ControlElement", + "id" : "acm008815jsd", + "name" : "withIsMissingResponse" + }, + "acm008816jsd" : { + "type" : "ControlElement", + "id" : "acm008816jsd", + "name" : "withResponseId" + }, + "acm008817jsd" : { + "type" : "ControlElement", + "id" : "acm008817jsd", + "name" : "withGiver" + }, + "acm008818jsd" : { + "type" : "ControlElement", + "id" : "acm008818jsd", + "name" : "withRelatedGiverEmail" + }, + "acm008819jsd" : { + "type" : "ControlElement", + "id" : "acm008819jsd", + "name" : "withGiverTeam" + }, + "acm008820jsd" : { + "type" : "ControlElement", + "id" : "acm008820jsd", + "name" : "withGiverEmail" + }, + "acm008821jsd" : { + "type" : "ControlElement", + "id" : "acm008821jsd", + "name" : "withGiverSection" + }, + "acm008822jsd" : { + "type" : "ControlElement", + "id" : "acm008822jsd", + "name" : "withRecipient" + }, + "acm008823jsd" : { + "type" : "ControlElement", + "id" : "acm008823jsd", + "name" : "withRecipientTeam" + }, + "acm008824jsd" : { + "type" : "ControlElement", + "id" : "acm008824jsd", + "name" : "withRecipientEmail" + }, + "acm008825jsd" : { + "type" : "ControlElement", + "id" : "acm008825jsd", + "name" : "withRecipientSection" + }, + "acm008826jsd" : { + "type" : "ControlElement", + "id" : "acm008826jsd", + "name" : "withResponseDetails" + }, + "acm008827jsd" : { + "type" : "ControlElement", + "id" : "acm008827jsd", + "name" : "withParticipantComment" + }, + "acm008828jsd" : { + "type" : "ControlElement", + "id" : "acm008828jsd", + "name" : "withInstructorComments" + }, + "acm008829jsd" : { + "type" : "ControlElement", + "id" : "acm008829jsd", + "name" : "build" + }, + "acm008830jsd" : { + "type" : "ControlElement", + "id" : "acm008830jsd", + "name" : "CommentOutput" + }, + "acm008831jsd" : { + "type" : "ControlElement", + "id" : "acm008831jsd", + "name" : "builder" + }, + "acm008832jsd" : { + "type" : "ControlElement", + "id" : "acm008832jsd", + "name" : "getCommentGiverName" + }, + "acm008833jsd" : { + "type" : "ControlElement", + "id" : "acm008833jsd", + "name" : "getLastEditorName" + }, + "acm008834jsd" : { + "type" : "ControlElement", + "id" : "acm008834jsd", + "name" : "Builder" + }, + "acm008835jsd" : { + "type" : "ControlElement", + "id" : "acm008835jsd", + "name" : "withCommentGiver" + }, + "acm008836jsd" : { + "type" : "ControlElement", + "id" : "acm008836jsd", + "name" : "withCommentGiverName" + }, + "acm008837jsd" : { + "type" : "ControlElement", + "id" : "acm008837jsd", + "name" : "withLastEditorEmail" + }, + "acm008838jsd" : { + "type" : "ControlElement", + "id" : "acm008838jsd", + "name" : "withLastEditorName" + }, + "acm008839jsd" : { + "type" : "ControlElement", + "id" : "acm008839jsd", + "name" : "build" + }, + "acm008840jsd" : { + "type" : "ClassUnit", + "id" : "acm008840jsd", + "name" : "SessionResultsData", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004200jsd", "acm004226jsd", "acm004383jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005233jsd", "acm005412jsd", "acm006061jsd", "acm008407jsd", "acm008449jsd", "acm008840jsd", "acm008850jsd", "acm008883jsd", "acm008900jsd", "acm008911jsd", "acm008918jsd" ], + "content" : [ "acm008778jsd", "acm008779jsd", "acm008780jsd", "acm008781jsd", "acm008782jsd", "acm008783jsd", "acm008784jsd", "acm008785jsd", "acm008786jsd", "acm008787jsd", "acm008788jsd", "acm008789jsd", "acm008790jsd", "acm008791jsd", "acm008792jsd", "acm008793jsd", "acm008794jsd", "acm008795jsd", "acm008796jsd", "acm008797jsd", "acm008798jsd", "acm008799jsd", "acm008800jsd", "acm008801jsd", "acm008802jsd", "acm008803jsd", "acm008804jsd", "acm008805jsd", "acm008806jsd", "acm008807jsd", "acm008808jsd", "acm008809jsd", "acm008810jsd", "acm008811jsd", "acm008812jsd", "acm008813jsd", "acm008814jsd", "acm008815jsd", "acm008816jsd", "acm008817jsd", "acm008818jsd", "acm008819jsd", "acm008820jsd", "acm008821jsd", "acm008822jsd", "acm008823jsd", "acm008824jsd", "acm008825jsd", "acm008826jsd", "acm008827jsd", "acm008828jsd", "acm008829jsd", "acm008830jsd", "acm008831jsd", "acm008832jsd", "acm008833jsd", "acm008834jsd", "acm008835jsd", "acm008836jsd", "acm008837jsd", "acm008838jsd", "acm008839jsd" ] + }, + "acm008841jsd" : { + "type" : "ControlElement", + "id" : "acm008841jsd", + "name" : "QuestionOutput" + }, + "acm008842jsd" : { + "type" : "ControlElement", + "id" : "acm008842jsd", + "name" : "getFeedbackQuestion" + }, + "acm008843jsd" : { + "type" : "ControlElement", + "id" : "acm008843jsd", + "name" : "getQuestionStatistics" + }, + "acm008844jsd" : { + "type" : "ControlElement", + "id" : "acm008844jsd", + "name" : "getAllResponses" + }, + "acm008845jsd" : { + "type" : "ControlElement", + "id" : "acm008845jsd", + "name" : "getHasResponseButNotVisibleForPreview" + }, + "acm008846jsd" : { + "type" : "ControlElement", + "id" : "acm008846jsd", + "name" : "getHasCommentNotVisibleForPreview" + }, + "acm008847jsd" : { + "type" : "ControlElement", + "id" : "acm008847jsd", + "name" : "getResponsesFromSelf" + }, + "acm008848jsd" : { + "type" : "ControlElement", + "id" : "acm008848jsd", + "name" : "getResponsesToSelf" + }, + "acm008849jsd" : { + "type" : "ControlElement", + "id" : "acm008849jsd", + "name" : "getOtherResponses" + }, + "acm008850jsd" : { + "type" : "ClassUnit", + "id" : "acm008850jsd", + "name" : "QuestionOutput", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : "acm008840jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm008407jsd", "acm008883jsd" ], + "content" : [ "acm008841jsd", "acm008842jsd", "acm008843jsd", "acm008844jsd", "acm008845jsd", "acm008846jsd", "acm008847jsd", "acm008848jsd", "acm008849jsd" ] + }, + "acm008851jsd" : { + "type" : "ControlElement", + "id" : "acm008851jsd", + "name" : "ResponseOutput" + }, + "acm008852jsd" : { + "type" : "ControlElement", + "id" : "acm008852jsd", + "name" : "builder" + }, + "acm008853jsd" : { + "type" : "ControlElement", + "id" : "acm008853jsd", + "name" : "isMissingResponse" + }, + "acm008854jsd" : { + "type" : "ControlElement", + "id" : "acm008854jsd", + "name" : "getResponseId" + }, + "acm008855jsd" : { + "type" : "ControlElement", + "id" : "acm008855jsd", + "name" : "getGiver" + }, + "acm008856jsd" : { + "type" : "ControlElement", + "id" : "acm008856jsd", + "name" : "getGiverEmail" + }, + "acm008857jsd" : { + "type" : "ControlElement", + "id" : "acm008857jsd", + "name" : "getRelatedGiverEmail" + }, + "acm008858jsd" : { + "type" : "ControlElement", + "id" : "acm008858jsd", + "name" : "getGiverTeam" + }, + "acm008859jsd" : { + "type" : "ControlElement", + "id" : "acm008859jsd", + "name" : "getGiverSection" + }, + "acm008860jsd" : { + "type" : "ControlElement", + "id" : "acm008860jsd", + "name" : "getRecipient" + }, + "acm008861jsd" : { + "type" : "ControlElement", + "id" : "acm008861jsd", + "name" : "getRecipientTeam" + }, + "acm008862jsd" : { + "type" : "ControlElement", + "id" : "acm008862jsd", + "name" : "getRecipientEmail" + }, + "acm008863jsd" : { + "type" : "ControlElement", + "id" : "acm008863jsd", + "name" : "getRecipientSection" + }, + "acm008864jsd" : { + "type" : "ControlElement", + "id" : "acm008864jsd", + "name" : "getResponseDetails" + }, + "acm008865jsd" : { + "type" : "ControlElement", + "id" : "acm008865jsd", + "name" : "getParticipantComment" + }, + "acm008866jsd" : { + "type" : "ControlElement", + "id" : "acm008866jsd", + "name" : "getInstructorComments" + }, + "acm008867jsd" : { + "type" : "ControlElement", + "id" : "acm008867jsd", + "name" : "Builder" + }, + "acm008868jsd" : { + "type" : "ControlElement", + "id" : "acm008868jsd", + "name" : "withIsMissingResponse" + }, + "acm008869jsd" : { + "type" : "ControlElement", + "id" : "acm008869jsd", + "name" : "withResponseId" + }, + "acm008870jsd" : { + "type" : "ControlElement", + "id" : "acm008870jsd", + "name" : "withGiver" + }, + "acm008871jsd" : { + "type" : "ControlElement", + "id" : "acm008871jsd", + "name" : "withRelatedGiverEmail" + }, + "acm008872jsd" : { + "type" : "ControlElement", + "id" : "acm008872jsd", + "name" : "withGiverTeam" + }, + "acm008873jsd" : { + "type" : "ControlElement", + "id" : "acm008873jsd", + "name" : "withGiverEmail" + }, + "acm008874jsd" : { + "type" : "ControlElement", + "id" : "acm008874jsd", + "name" : "withGiverSection" + }, + "acm008875jsd" : { + "type" : "ControlElement", + "id" : "acm008875jsd", + "name" : "withRecipient" + }, + "acm008876jsd" : { + "type" : "ControlElement", + "id" : "acm008876jsd", + "name" : "withRecipientTeam" + }, + "acm008877jsd" : { + "type" : "ControlElement", + "id" : "acm008877jsd", + "name" : "withRecipientEmail" + }, + "acm008878jsd" : { + "type" : "ControlElement", + "id" : "acm008878jsd", + "name" : "withRecipientSection" + }, + "acm008879jsd" : { + "type" : "ControlElement", + "id" : "acm008879jsd", + "name" : "withResponseDetails" + }, + "acm008880jsd" : { + "type" : "ControlElement", + "id" : "acm008880jsd", + "name" : "withParticipantComment" + }, + "acm008881jsd" : { + "type" : "ControlElement", + "id" : "acm008881jsd", + "name" : "withInstructorComments" + }, + "acm008882jsd" : { + "type" : "ControlElement", + "id" : "acm008882jsd", + "name" : "build" + }, + "acm008883jsd" : { + "type" : "ClassUnit", + "id" : "acm008883jsd", + "name" : "ResponseOutput", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : "acm008840jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006061jsd", "acm008883jsd", "acm008900jsd", "acm008911jsd" ], + "content" : [ "acm008851jsd", "acm008852jsd", "acm008853jsd", "acm008854jsd", "acm008855jsd", "acm008856jsd", "acm008857jsd", "acm008858jsd", "acm008859jsd", "acm008860jsd", "acm008861jsd", "acm008862jsd", "acm008863jsd", "acm008864jsd", "acm008865jsd", "acm008866jsd", "acm008867jsd", "acm008868jsd", "acm008869jsd", "acm008870jsd", "acm008871jsd", "acm008872jsd", "acm008873jsd", "acm008874jsd", "acm008875jsd", "acm008876jsd", "acm008877jsd", "acm008878jsd", "acm008879jsd", "acm008880jsd", "acm008881jsd", "acm008882jsd" ] + }, + "acm008884jsd" : { + "type" : "ControlElement", + "id" : "acm008884jsd", + "name" : "Builder" + }, + "acm008885jsd" : { + "type" : "ControlElement", + "id" : "acm008885jsd", + "name" : "withIsMissingResponse" + }, + "acm008886jsd" : { + "type" : "ControlElement", + "id" : "acm008886jsd", + "name" : "withResponseId" + }, + "acm008887jsd" : { + "type" : "ControlElement", + "id" : "acm008887jsd", + "name" : "withGiver" + }, + "acm008888jsd" : { + "type" : "ControlElement", + "id" : "acm008888jsd", + "name" : "withRelatedGiverEmail" + }, + "acm008889jsd" : { + "type" : "ControlElement", + "id" : "acm008889jsd", + "name" : "withGiverTeam" + }, + "acm008890jsd" : { + "type" : "ControlElement", + "id" : "acm008890jsd", + "name" : "withGiverEmail" + }, + "acm008891jsd" : { + "type" : "ControlElement", + "id" : "acm008891jsd", + "name" : "withGiverSection" + }, + "acm008892jsd" : { + "type" : "ControlElement", + "id" : "acm008892jsd", + "name" : "withRecipient" + }, + "acm008893jsd" : { + "type" : "ControlElement", + "id" : "acm008893jsd", + "name" : "withRecipientTeam" + }, + "acm008894jsd" : { + "type" : "ControlElement", + "id" : "acm008894jsd", + "name" : "withRecipientEmail" + }, + "acm008895jsd" : { + "type" : "ControlElement", + "id" : "acm008895jsd", + "name" : "withRecipientSection" + }, + "acm008896jsd" : { + "type" : "ControlElement", + "id" : "acm008896jsd", + "name" : "withResponseDetails" + }, + "acm008897jsd" : { + "type" : "ControlElement", + "id" : "acm008897jsd", + "name" : "withParticipantComment" + }, + "acm008898jsd" : { + "type" : "ControlElement", + "id" : "acm008898jsd", + "name" : "withInstructorComments" + }, + "acm008899jsd" : { + "type" : "ControlElement", + "id" : "acm008899jsd", + "name" : "build" + }, + "acm008900jsd" : { + "type" : "ClassUnit", + "id" : "acm008900jsd", + "name" : "Builder", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : "acm008883jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006061jsd", "acm008883jsd", "acm008900jsd", "acm008911jsd" ], + "content" : [ "acm008884jsd", "acm008885jsd", "acm008886jsd", "acm008887jsd", "acm008888jsd", "acm008889jsd", "acm008890jsd", "acm008891jsd", "acm008892jsd", "acm008893jsd", "acm008894jsd", "acm008895jsd", "acm008896jsd", "acm008897jsd", "acm008898jsd", "acm008899jsd" ] + }, + "acm008901jsd" : { + "type" : "ControlElement", + "id" : "acm008901jsd", + "name" : "CommentOutput" + }, + "acm008902jsd" : { + "type" : "ControlElement", + "id" : "acm008902jsd", + "name" : "builder" + }, + "acm008903jsd" : { + "type" : "ControlElement", + "id" : "acm008903jsd", + "name" : "getCommentGiverName" + }, + "acm008904jsd" : { + "type" : "ControlElement", + "id" : "acm008904jsd", + "name" : "getLastEditorName" + }, + "acm008905jsd" : { + "type" : "ControlElement", + "id" : "acm008905jsd", + "name" : "Builder" + }, + "acm008906jsd" : { + "type" : "ControlElement", + "id" : "acm008906jsd", + "name" : "withCommentGiver" + }, + "acm008907jsd" : { + "type" : "ControlElement", + "id" : "acm008907jsd", + "name" : "withCommentGiverName" + }, + "acm008908jsd" : { + "type" : "ControlElement", + "id" : "acm008908jsd", + "name" : "withLastEditorEmail" + }, + "acm008909jsd" : { + "type" : "ControlElement", + "id" : "acm008909jsd", + "name" : "withLastEditorName" + }, + "acm008910jsd" : { + "type" : "ControlElement", + "id" : "acm008910jsd", + "name" : "build" + }, + "acm008911jsd" : { + "type" : "ClassUnit", + "id" : "acm008911jsd", + "name" : "CommentOutput", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : "acm008840jsd", + "extendedDataTypesIds" : [ "acm008449jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004971jsd", "acm008911jsd", "acm008918jsd" ], + "content" : [ "acm008901jsd", "acm008902jsd", "acm008903jsd", "acm008904jsd", "acm008905jsd", "acm008906jsd", "acm008907jsd", "acm008908jsd", "acm008909jsd", "acm008910jsd" ] + }, + "acm008912jsd" : { + "type" : "ControlElement", + "id" : "acm008912jsd", + "name" : "Builder" + }, + "acm008913jsd" : { + "type" : "ControlElement", + "id" : "acm008913jsd", + "name" : "withCommentGiver" + }, + "acm008914jsd" : { + "type" : "ControlElement", + "id" : "acm008914jsd", + "name" : "withCommentGiverName" + }, + "acm008915jsd" : { + "type" : "ControlElement", + "id" : "acm008915jsd", + "name" : "withLastEditorEmail" + }, + "acm008916jsd" : { + "type" : "ControlElement", + "id" : "acm008916jsd", + "name" : "withLastEditorName" + }, + "acm008917jsd" : { + "type" : "ControlElement", + "id" : "acm008917jsd", + "name" : "build" + }, + "acm008918jsd" : { + "type" : "ClassUnit", + "id" : "acm008918jsd", + "name" : "Builder", + "compilationUnitId" : "acm008774jsd", + "parentDatatypeId" : "acm008911jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004971jsd", "acm008911jsd", "acm008918jsd" ], + "content" : [ "acm008912jsd", "acm008913jsd", "acm008914jsd", "acm008915jsd", "acm008916jsd", "acm008917jsd" ] + }, + "acm008919jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008919jsd", + "name" : "SessionVisibleSetting", + "parentId" : "acm008239jsd", + "content" : [ "acm008923jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008920jsd" : { + "type" : "CodePackage", + "id" : "acm008920jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008921jsd" ] + }, + "acm008921jsd" : { + "type" : "CodePackage", + "id" : "acm008921jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008922jsd" ] + }, + "acm008922jsd" : { + "type" : "CodePackage", + "id" : "acm008922jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008919jsd" ] + }, + "acm008923jsd" : { + "type" : "ClassUnit", + "id" : "acm008923jsd", + "name" : "SessionVisibleSetting", + "compilationUnitId" : "acm008919jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm008924jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008924jsd", + "name" : "StudentData", + "parentId" : "acm008239jsd", + "content" : [ "acm008946jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008925jsd" : { + "type" : "CodePackage", + "id" : "acm008925jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008926jsd" ] + }, + "acm008926jsd" : { + "type" : "CodePackage", + "id" : "acm008926jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008927jsd" ] + }, + "acm008927jsd" : { + "type" : "CodePackage", + "id" : "acm008927jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008924jsd" ] + }, + "acm008928jsd" : { + "type" : "ControlElement", + "id" : "acm008928jsd", + "name" : "StudentData" + }, + "acm008929jsd" : { + "type" : "ControlElement", + "id" : "acm008929jsd", + "name" : "getEmail" + }, + "acm008930jsd" : { + "type" : "ControlElement", + "id" : "acm008930jsd", + "name" : "getCourseId" + }, + "acm008931jsd" : { + "type" : "ControlElement", + "id" : "acm008931jsd", + "name" : "getName" + }, + "acm008932jsd" : { + "type" : "ControlElement", + "id" : "acm008932jsd", + "name" : "getGoogleId" + }, + "acm008933jsd" : { + "type" : "ControlElement", + "id" : "acm008933jsd", + "name" : "getComments" + }, + "acm008934jsd" : { + "type" : "ControlElement", + "id" : "acm008934jsd", + "name" : "getJoinState" + }, + "acm008935jsd" : { + "type" : "ControlElement", + "id" : "acm008935jsd", + "name" : "getTeamName" + }, + "acm008936jsd" : { + "type" : "ControlElement", + "id" : "acm008936jsd", + "name" : "getSectionName" + }, + "acm008937jsd" : { + "type" : "ControlElement", + "id" : "acm008937jsd", + "name" : "getKey" + }, + "acm008938jsd" : { + "type" : "ControlElement", + "id" : "acm008938jsd", + "name" : "getInstitute" + }, + "acm008939jsd" : { + "type" : "ControlElement", + "id" : "acm008939jsd", + "name" : "setGoogleId" + }, + "acm008940jsd" : { + "type" : "ControlElement", + "id" : "acm008940jsd", + "name" : "setComments" + }, + "acm008941jsd" : { + "type" : "ControlElement", + "id" : "acm008941jsd", + "name" : "setJoinState" + }, + "acm008942jsd" : { + "type" : "ControlElement", + "id" : "acm008942jsd", + "name" : "setKey" + }, + "acm008943jsd" : { + "type" : "ControlElement", + "id" : "acm008943jsd", + "name" : "setInstitute" + }, + "acm008944jsd" : { + "type" : "ControlElement", + "id" : "acm008944jsd", + "name" : "hideInformationForStudent" + }, + "acm008945jsd" : { + "type" : "ControlElement", + "id" : "acm008945jsd", + "name" : "addAdditionalInformationForAdminSearch" + }, + "acm008946jsd" : { + "type" : "ClassUnit", + "id" : "acm008946jsd", + "name" : "StudentData", + "compilationUnitId" : "acm008924jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm008656jsd" ], + "content" : [ "acm008928jsd", "acm008929jsd", "acm008930jsd", "acm008931jsd", "acm008932jsd", "acm008933jsd", "acm008934jsd", "acm008935jsd", "acm008936jsd", "acm008937jsd", "acm008938jsd", "acm008939jsd", "acm008940jsd", "acm008941jsd", "acm008942jsd", "acm008943jsd", "acm008944jsd", "acm008945jsd" ] + }, + "acm008947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008947jsd", + "name" : "StudentsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008955jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008948jsd" : { + "type" : "CodePackage", + "id" : "acm008948jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008949jsd" ] + }, + "acm008949jsd" : { + "type" : "CodePackage", + "id" : "acm008949jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008950jsd" ] + }, + "acm008950jsd" : { + "type" : "CodePackage", + "id" : "acm008950jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008947jsd" ] + }, + "acm008951jsd" : { + "type" : "ControlElement", + "id" : "acm008951jsd", + "name" : "StudentsData" + }, + "acm008952jsd" : { + "type" : "ControlElement", + "id" : "acm008952jsd", + "name" : "StudentsData" + }, + "acm008953jsd" : { + "type" : "ControlElement", + "id" : "acm008953jsd", + "name" : "getStudents" + }, + "acm008954jsd" : { + "type" : "ControlElement", + "id" : "acm008954jsd", + "name" : "setStudents" + }, + "acm008955jsd" : { + "type" : "ClassUnit", + "id" : "acm008955jsd", + "name" : "StudentsData", + "compilationUnitId" : "acm008947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm008946jsd" ], + "content" : [ "acm008951jsd", "acm008952jsd", "acm008953jsd", "acm008954jsd" ] + }, + "acm008956jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008956jsd", + "name" : "TimeZonesData", + "parentId" : "acm008239jsd", + "content" : [ "acm008963jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008957jsd" : { + "type" : "CodePackage", + "id" : "acm008957jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008958jsd" ] + }, + "acm008958jsd" : { + "type" : "CodePackage", + "id" : "acm008958jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008959jsd" ] + }, + "acm008959jsd" : { + "type" : "CodePackage", + "id" : "acm008959jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008956jsd" ] + }, + "acm008960jsd" : { + "type" : "ControlElement", + "id" : "acm008960jsd", + "name" : "TimeZonesData" + }, + "acm008961jsd" : { + "type" : "ControlElement", + "id" : "acm008961jsd", + "name" : "getVersion" + }, + "acm008962jsd" : { + "type" : "ControlElement", + "id" : "acm008962jsd", + "name" : "getOffsets" + }, + "acm008963jsd" : { + "type" : "ClassUnit", + "id" : "acm008963jsd", + "name" : "TimeZonesData", + "compilationUnitId" : "acm008956jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm008960jsd", "acm008961jsd", "acm008962jsd" ] + }, + "acm008964jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008964jsd", + "name" : "UsageStatisticsData", + "parentId" : "acm008239jsd", + "content" : [ "acm008978jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008965jsd" : { + "type" : "CodePackage", + "id" : "acm008965jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008966jsd" ] + }, + "acm008966jsd" : { + "type" : "CodePackage", + "id" : "acm008966jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008967jsd" ] + }, + "acm008967jsd" : { + "type" : "CodePackage", + "id" : "acm008967jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008964jsd" ] + }, + "acm008968jsd" : { + "type" : "ControlElement", + "id" : "acm008968jsd", + "name" : "UsageStatisticsData" + }, + "acm008969jsd" : { + "type" : "ControlElement", + "id" : "acm008969jsd", + "name" : "getStartTime" + }, + "acm008970jsd" : { + "type" : "ControlElement", + "id" : "acm008970jsd", + "name" : "getTimePeriod" + }, + "acm008971jsd" : { + "type" : "ControlElement", + "id" : "acm008971jsd", + "name" : "getNumResponses" + }, + "acm008972jsd" : { + "type" : "ControlElement", + "id" : "acm008972jsd", + "name" : "getNumCourses" + }, + "acm008973jsd" : { + "type" : "ControlElement", + "id" : "acm008973jsd", + "name" : "getNumStudents" + }, + "acm008974jsd" : { + "type" : "ControlElement", + "id" : "acm008974jsd", + "name" : "getNumInstructors" + }, + "acm008975jsd" : { + "type" : "ControlElement", + "id" : "acm008975jsd", + "name" : "getNumAccountRequests" + }, + "acm008976jsd" : { + "type" : "ControlElement", + "id" : "acm008976jsd", + "name" : "getNumEmails" + }, + "acm008977jsd" : { + "type" : "ControlElement", + "id" : "acm008977jsd", + "name" : "getNumSubmissions" + }, + "acm008978jsd" : { + "type" : "ClassUnit", + "id" : "acm008978jsd", + "name" : "UsageStatisticsData", + "compilationUnitId" : "acm008964jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd" ], + "content" : [ "acm008968jsd", "acm008969jsd", "acm008970jsd", "acm008971jsd", "acm008972jsd", "acm008973jsd", "acm008974jsd", "acm008975jsd", "acm008976jsd", "acm008977jsd" ] + }, + "acm008979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008979jsd", + "name" : "UsageStatisticsRangeData", + "parentId" : "acm008239jsd", + "content" : [ "acm008985jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008980jsd" : { + "type" : "CodePackage", + "id" : "acm008980jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008981jsd" ] + }, + "acm008981jsd" : { + "type" : "CodePackage", + "id" : "acm008981jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008982jsd" ] + }, + "acm008982jsd" : { + "type" : "CodePackage", + "id" : "acm008982jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008979jsd" ] + }, + "acm008983jsd" : { + "type" : "ControlElement", + "id" : "acm008983jsd", + "name" : "UsageStatisticsRangeData" + }, + "acm008984jsd" : { + "type" : "ControlElement", + "id" : "acm008984jsd", + "name" : "getResult" + }, + "acm008985jsd" : { + "type" : "ClassUnit", + "id" : "acm008985jsd", + "name" : "UsageStatisticsRangeData", + "compilationUnitId" : "acm008979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm008286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm008978jsd" ], + "content" : [ "acm008983jsd", "acm008984jsd" ] + }, + "acm008986jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008986jsd", + "name" : "package-info", + "parentId" : "acm008239jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "output" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008987jsd" : { + "type" : "CodePackage", + "id" : "acm008987jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008988jsd" ] + }, + "acm008988jsd" : { + "type" : "CodePackage", + "id" : "acm008988jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008989jsd" ] + }, + "acm008989jsd" : { + "type" : "CodePackage", + "id" : "acm008989jsd", + "name" : "output", + "parentId" : null, + "content" : [ "acm008986jsd" ] + }, + "acm008990jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm008990jsd", + "name" : "AccountCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009001jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm008991jsd" : { + "type" : "CodePackage", + "id" : "acm008991jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm008992jsd" ] + }, + "acm008992jsd" : { + "type" : "CodePackage", + "id" : "acm008992jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm008993jsd" ] + }, + "acm008993jsd" : { + "type" : "CodePackage", + "id" : "acm008993jsd", + "name" : "request", + "parentId" : "acm008203jsd", + "content" : [ "acm008990jsd", "acm009002jsd", "acm009009jsd", "acm009017jsd", "acm009027jsd", "acm009035jsd", "acm009040jsd", "acm009050jsd", "acm009078jsd", "acm009083jsd", "acm009088jsd", "acm009099jsd", "acm009105jsd", "acm009111jsd", "acm009129jsd", "acm009153jsd", "acm009165jsd", "acm009177jsd", "acm009187jsd", "acm009196jsd", "acm009209jsd", "acm009217jsd", "acm009222jsd", "acm009229jsd", "acm009238jsd", "acm009256jsd", "acm009261jsd", "acm009266jsd", "acm009274jsd", "acm009287jsd", "acm009310jsd", "acm012255jsd", "acm012265jsd" ] + }, + "acm008994jsd" : { + "type" : "ControlElement", + "id" : "acm008994jsd", + "name" : "getInstructorEmail" + }, + "acm008995jsd" : { + "type" : "ControlElement", + "id" : "acm008995jsd", + "name" : "getInstructorName" + }, + "acm008996jsd" : { + "type" : "ControlElement", + "id" : "acm008996jsd", + "name" : "getInstructorInstitution" + }, + "acm008997jsd" : { + "type" : "ControlElement", + "id" : "acm008997jsd", + "name" : "setInstructorName" + }, + "acm008998jsd" : { + "type" : "ControlElement", + "id" : "acm008998jsd", + "name" : "setInstructorInstitution" + }, + "acm008999jsd" : { + "type" : "ControlElement", + "id" : "acm008999jsd", + "name" : "setInstructorEmail" + }, + "acm009000jsd" : { + "type" : "ControlElement", + "id" : "acm009000jsd", + "name" : "validate" + }, + "acm009001jsd" : { + "type" : "ClassUnit", + "id" : "acm009001jsd", + "name" : "AccountCreateRequest", + "compilationUnitId" : "acm008990jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm008994jsd", "acm008995jsd", "acm008996jsd", "acm008997jsd", "acm008998jsd", "acm008999jsd", "acm009000jsd" ] + }, + "acm009002jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009002jsd", + "name" : "BasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009008jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009003jsd" : { + "type" : "CodePackage", + "id" : "acm009003jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009004jsd" ] + }, + "acm009004jsd" : { + "type" : "CodePackage", + "id" : "acm009004jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009005jsd" ] + }, + "acm009005jsd" : { + "type" : "CodePackage", + "id" : "acm009005jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009002jsd" ] + }, + "acm009006jsd" : { + "type" : "ControlElement", + "id" : "acm009006jsd", + "name" : "validate" + }, + "acm009007jsd" : { + "type" : "ControlElement", + "id" : "acm009007jsd", + "name" : "assertTrue" + }, + "acm009008jsd" : { + "type" : "ClassUnit", + "id" : "acm009008jsd", + "name" : "BasicRequest", + "compilationUnitId" : "acm009002jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009006jsd", "acm009007jsd" ] + }, + "acm009009jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009009jsd", + "name" : "CourseArchiveRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009016jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009010jsd" : { + "type" : "CodePackage", + "id" : "acm009010jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009011jsd" ] + }, + "acm009011jsd" : { + "type" : "CodePackage", + "id" : "acm009011jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009012jsd" ] + }, + "acm009012jsd" : { + "type" : "CodePackage", + "id" : "acm009012jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009009jsd" ] + }, + "acm009013jsd" : { + "type" : "ControlElement", + "id" : "acm009013jsd", + "name" : "validate" + }, + "acm009014jsd" : { + "type" : "ControlElement", + "id" : "acm009014jsd", + "name" : "getArchiveStatus" + }, + "acm009015jsd" : { + "type" : "ControlElement", + "id" : "acm009015jsd", + "name" : "setArchiveStatus" + }, + "acm009016jsd" : { + "type" : "ClassUnit", + "id" : "acm009016jsd", + "name" : "CourseArchiveRequest", + "compilationUnitId" : "acm009009jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009013jsd", "acm009014jsd", "acm009015jsd" ] + }, + "acm009017jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009017jsd", + "name" : "CourseBasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009026jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009018jsd" : { + "type" : "CodePackage", + "id" : "acm009018jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009019jsd" ] + }, + "acm009019jsd" : { + "type" : "CodePackage", + "id" : "acm009019jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009020jsd" ] + }, + "acm009020jsd" : { + "type" : "CodePackage", + "id" : "acm009020jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009017jsd" ] + }, + "acm009021jsd" : { + "type" : "ControlElement", + "id" : "acm009021jsd", + "name" : "validate" + }, + "acm009022jsd" : { + "type" : "ControlElement", + "id" : "acm009022jsd", + "name" : "getCourseName" + }, + "acm009023jsd" : { + "type" : "ControlElement", + "id" : "acm009023jsd", + "name" : "setCourseName" + }, + "acm009024jsd" : { + "type" : "ControlElement", + "id" : "acm009024jsd", + "name" : "getTimeZone" + }, + "acm009025jsd" : { + "type" : "ControlElement", + "id" : "acm009025jsd", + "name" : "setTimeZone" + }, + "acm009026jsd" : { + "type" : "ClassUnit", + "id" : "acm009026jsd", + "name" : "CourseBasicRequest", + "compilationUnitId" : "acm009017jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009021jsd", "acm009022jsd", "acm009023jsd", "acm009024jsd", "acm009025jsd" ] + }, + "acm009027jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009027jsd", + "name" : "CourseCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009034jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009028jsd" : { + "type" : "CodePackage", + "id" : "acm009028jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009029jsd" ] + }, + "acm009029jsd" : { + "type" : "CodePackage", + "id" : "acm009029jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009030jsd" ] + }, + "acm009030jsd" : { + "type" : "CodePackage", + "id" : "acm009030jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009027jsd" ] + }, + "acm009031jsd" : { + "type" : "ControlElement", + "id" : "acm009031jsd", + "name" : "validate" + }, + "acm009032jsd" : { + "type" : "ControlElement", + "id" : "acm009032jsd", + "name" : "getCourseId" + }, + "acm009033jsd" : { + "type" : "ControlElement", + "id" : "acm009033jsd", + "name" : "setCourseId" + }, + "acm009034jsd" : { + "type" : "ClassUnit", + "id" : "acm009034jsd", + "name" : "CourseCreateRequest", + "compilationUnitId" : "acm009027jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009026jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009031jsd", "acm009032jsd", "acm009033jsd" ] + }, + "acm009035jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009035jsd", + "name" : "CourseUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009039jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009036jsd" : { + "type" : "CodePackage", + "id" : "acm009036jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009037jsd" ] + }, + "acm009037jsd" : { + "type" : "CodePackage", + "id" : "acm009037jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009038jsd" ] + }, + "acm009038jsd" : { + "type" : "CodePackage", + "id" : "acm009038jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009035jsd" ] + }, + "acm009039jsd" : { + "type" : "ClassUnit", + "id" : "acm009039jsd", + "name" : "CourseUpdateRequest", + "compilationUnitId" : "acm009035jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009026jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009040jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009040jsd", + "name" : "ErrorReportRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009049jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009041jsd" : { + "type" : "CodePackage", + "id" : "acm009041jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009042jsd" ] + }, + "acm009042jsd" : { + "type" : "CodePackage", + "id" : "acm009042jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009043jsd" ] + }, + "acm009043jsd" : { + "type" : "CodePackage", + "id" : "acm009043jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009040jsd" ] + }, + "acm009044jsd" : { + "type" : "ControlElement", + "id" : "acm009044jsd", + "name" : "ErrorReportRequest" + }, + "acm009045jsd" : { + "type" : "ControlElement", + "id" : "acm009045jsd", + "name" : "validate" + }, + "acm009046jsd" : { + "type" : "ControlElement", + "id" : "acm009046jsd", + "name" : "getContent" + }, + "acm009047jsd" : { + "type" : "ControlElement", + "id" : "acm009047jsd", + "name" : "getSubject" + }, + "acm009048jsd" : { + "type" : "ControlElement", + "id" : "acm009048jsd", + "name" : "getRequestId" + }, + "acm009049jsd" : { + "type" : "ClassUnit", + "id" : "acm009049jsd", + "name" : "ErrorReportRequest", + "compilationUnitId" : "acm009040jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009044jsd", "acm009045jsd", "acm009046jsd", "acm009047jsd", "acm009048jsd" ] + }, + "acm009050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009050jsd", + "name" : "FeedbackQuestionBasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009077jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009051jsd" : { + "type" : "CodePackage", + "id" : "acm009051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009052jsd" ] + }, + "acm009052jsd" : { + "type" : "CodePackage", + "id" : "acm009052jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009053jsd" ] + }, + "acm009053jsd" : { + "type" : "CodePackage", + "id" : "acm009053jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009050jsd" ] + }, + "acm009054jsd" : { + "type" : "ControlElement", + "id" : "acm009054jsd", + "name" : "validate" + }, + "acm009055jsd" : { + "type" : "ControlElement", + "id" : "acm009055jsd", + "name" : "getQuestionNumber" + }, + "acm009056jsd" : { + "type" : "ControlElement", + "id" : "acm009056jsd", + "name" : "getQuestionDescription" + }, + "acm009057jsd" : { + "type" : "ControlElement", + "id" : "acm009057jsd", + "name" : "getQuestionDetails" + }, + "acm009058jsd" : { + "type" : "ControlElement", + "id" : "acm009058jsd", + "name" : "getGiverType" + }, + "acm009059jsd" : { + "type" : "ControlElement", + "id" : "acm009059jsd", + "name" : "getRecipientType" + }, + "acm009060jsd" : { + "type" : "ControlElement", + "id" : "acm009060jsd", + "name" : "getNumberOfEntitiesToGiveFeedbackTo" + }, + "acm009061jsd" : { + "type" : "ControlElement", + "id" : "acm009061jsd", + "name" : "getShowResponsesTo" + }, + "acm009062jsd" : { + "type" : "ControlElement", + "id" : "acm009062jsd", + "name" : "getShowGiverNameTo" + }, + "acm009063jsd" : { + "type" : "ControlElement", + "id" : "acm009063jsd", + "name" : "getShowRecipientNameTo" + }, + "acm009064jsd" : { + "type" : "ControlElement", + "id" : "acm009064jsd", + "name" : "convertToFeedbackParticipantType" + }, + "acm009065jsd" : { + "type" : "ControlElement", + "id" : "acm009065jsd", + "name" : "setQuestionNumber" + }, + "acm009066jsd" : { + "type" : "ControlElement", + "id" : "acm009066jsd", + "name" : "setQuestionBrief" + }, + "acm009067jsd" : { + "type" : "ControlElement", + "id" : "acm009067jsd", + "name" : "setQuestionDescription" + }, + "acm009068jsd" : { + "type" : "ControlElement", + "id" : "acm009068jsd", + "name" : "setQuestionDetails" + }, + "acm009069jsd" : { + "type" : "ControlElement", + "id" : "acm009069jsd", + "name" : "setQuestionType" + }, + "acm009070jsd" : { + "type" : "ControlElement", + "id" : "acm009070jsd", + "name" : "setGiverType" + }, + "acm009071jsd" : { + "type" : "ControlElement", + "id" : "acm009071jsd", + "name" : "setRecipientType" + }, + "acm009072jsd" : { + "type" : "ControlElement", + "id" : "acm009072jsd", + "name" : "setNumberOfEntitiesToGiveFeedbackToSetting" + }, + "acm009073jsd" : { + "type" : "ControlElement", + "id" : "acm009073jsd", + "name" : "setCustomNumberOfEntitiesToGiveFeedbackTo" + }, + "acm009074jsd" : { + "type" : "ControlElement", + "id" : "acm009074jsd", + "name" : "setShowResponsesTo" + }, + "acm009075jsd" : { + "type" : "ControlElement", + "id" : "acm009075jsd", + "name" : "setShowGiverNameTo" + }, + "acm009076jsd" : { + "type" : "ControlElement", + "id" : "acm009076jsd", + "name" : "setShowRecipientNameTo" + }, + "acm009077jsd" : { + "type" : "ClassUnit", + "id" : "acm009077jsd", + "name" : "FeedbackQuestionBasicRequest", + "compilationUnitId" : "acm009050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm005977jsd", "acm005986jsd", "acm008579jsd", "acm008697jsd", "acm009228jsd" ], + "content" : [ "acm009054jsd", "acm009055jsd", "acm009056jsd", "acm009057jsd", "acm009058jsd", "acm009059jsd", "acm009060jsd", "acm009061jsd", "acm009062jsd", "acm009063jsd", "acm009064jsd", "acm009065jsd", "acm009066jsd", "acm009067jsd", "acm009068jsd", "acm009069jsd", "acm009070jsd", "acm009071jsd", "acm009072jsd", "acm009073jsd", "acm009074jsd", "acm009075jsd", "acm009076jsd" ] + }, + "acm009078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009078jsd", + "name" : "FeedbackQuestionCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009082jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009079jsd" : { + "type" : "CodePackage", + "id" : "acm009079jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009080jsd" ] + }, + "acm009080jsd" : { + "type" : "CodePackage", + "id" : "acm009080jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009081jsd" ] + }, + "acm009081jsd" : { + "type" : "CodePackage", + "id" : "acm009081jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009078jsd" ] + }, + "acm009082jsd" : { + "type" : "ClassUnit", + "id" : "acm009082jsd", + "name" : "FeedbackQuestionCreateRequest", + "compilationUnitId" : "acm009078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009077jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009083jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009083jsd", + "name" : "FeedbackQuestionUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009087jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009084jsd" : { + "type" : "CodePackage", + "id" : "acm009084jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009085jsd" ] + }, + "acm009085jsd" : { + "type" : "CodePackage", + "id" : "acm009085jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009086jsd" ] + }, + "acm009086jsd" : { + "type" : "CodePackage", + "id" : "acm009086jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009083jsd" ] + }, + "acm009087jsd" : { + "type" : "ClassUnit", + "id" : "acm009087jsd", + "name" : "FeedbackQuestionUpdateRequest", + "compilationUnitId" : "acm009083jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009077jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009088jsd", + "name" : "FeedbackResponseCommentBasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009098jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009089jsd" : { + "type" : "CodePackage", + "id" : "acm009089jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009090jsd" ] + }, + "acm009090jsd" : { + "type" : "CodePackage", + "id" : "acm009090jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009091jsd" ] + }, + "acm009091jsd" : { + "type" : "CodePackage", + "id" : "acm009091jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009088jsd" ] + }, + "acm009092jsd" : { + "type" : "ControlElement", + "id" : "acm009092jsd", + "name" : "FeedbackResponseCommentBasicRequest" + }, + "acm009093jsd" : { + "type" : "ControlElement", + "id" : "acm009093jsd", + "name" : "validate" + }, + "acm009094jsd" : { + "type" : "ControlElement", + "id" : "acm009094jsd", + "name" : "getCommentText" + }, + "acm009095jsd" : { + "type" : "ControlElement", + "id" : "acm009095jsd", + "name" : "getShowCommentTo" + }, + "acm009096jsd" : { + "type" : "ControlElement", + "id" : "acm009096jsd", + "name" : "getShowGiverNameTo" + }, + "acm009097jsd" : { + "type" : "ControlElement", + "id" : "acm009097jsd", + "name" : "convertToFeedbackParticipantType" + }, + "acm009098jsd" : { + "type" : "ClassUnit", + "id" : "acm009098jsd", + "name" : "FeedbackResponseCommentBasicRequest", + "compilationUnitId" : "acm009088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm008304jsd", "acm009228jsd" ], + "content" : [ "acm009092jsd", "acm009093jsd", "acm009094jsd", "acm009095jsd", "acm009096jsd", "acm009097jsd" ] + }, + "acm009099jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009099jsd", + "name" : "FeedbackResponseCommentCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009104jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009100jsd" : { + "type" : "CodePackage", + "id" : "acm009100jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009101jsd" ] + }, + "acm009101jsd" : { + "type" : "CodePackage", + "id" : "acm009101jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009102jsd" ] + }, + "acm009102jsd" : { + "type" : "CodePackage", + "id" : "acm009102jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009099jsd" ] + }, + "acm009103jsd" : { + "type" : "ControlElement", + "id" : "acm009103jsd", + "name" : "FeedbackResponseCommentCreateRequest" + }, + "acm009104jsd" : { + "type" : "ClassUnit", + "id" : "acm009104jsd", + "name" : "FeedbackResponseCommentCreateRequest", + "compilationUnitId" : "acm009099jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009098jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008304jsd" ], + "content" : [ "acm009103jsd" ] + }, + "acm009105jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009105jsd", + "name" : "FeedbackResponseCommentUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009110jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009106jsd" : { + "type" : "CodePackage", + "id" : "acm009106jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009107jsd" ] + }, + "acm009107jsd" : { + "type" : "CodePackage", + "id" : "acm009107jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009108jsd" ] + }, + "acm009108jsd" : { + "type" : "CodePackage", + "id" : "acm009108jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009105jsd" ] + }, + "acm009109jsd" : { + "type" : "ControlElement", + "id" : "acm009109jsd", + "name" : "FeedbackResponseCommentUpdateRequest" + }, + "acm009110jsd" : { + "type" : "ClassUnit", + "id" : "acm009110jsd", + "name" : "FeedbackResponseCommentUpdateRequest", + "compilationUnitId" : "acm009105jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009098jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008304jsd" ], + "content" : [ "acm009109jsd" ] + }, + "acm009111jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009111jsd", + "name" : "FeedbackResponsesRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009123jsd", "acm009128jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009112jsd" : { + "type" : "CodePackage", + "id" : "acm009112jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009113jsd" ] + }, + "acm009113jsd" : { + "type" : "CodePackage", + "id" : "acm009113jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009114jsd" ] + }, + "acm009114jsd" : { + "type" : "CodePackage", + "id" : "acm009114jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009111jsd" ] + }, + "acm009115jsd" : { + "type" : "ControlElement", + "id" : "acm009115jsd", + "name" : "getResponses" + }, + "acm009116jsd" : { + "type" : "ControlElement", + "id" : "acm009116jsd", + "name" : "setResponses" + }, + "acm009117jsd" : { + "type" : "ControlElement", + "id" : "acm009117jsd", + "name" : "getRecipients" + }, + "acm009118jsd" : { + "type" : "ControlElement", + "id" : "acm009118jsd", + "name" : "validate" + }, + "acm009119jsd" : { + "type" : "ControlElement", + "id" : "acm009119jsd", + "name" : "FeedbackResponseRequest" + }, + "acm009120jsd" : { + "type" : "ControlElement", + "id" : "acm009120jsd", + "name" : "validate" + }, + "acm009121jsd" : { + "type" : "ControlElement", + "id" : "acm009121jsd", + "name" : "getRecipient" + }, + "acm009122jsd" : { + "type" : "ControlElement", + "id" : "acm009122jsd", + "name" : "getResponseDetails" + }, + "acm009123jsd" : { + "type" : "ClassUnit", + "id" : "acm009123jsd", + "name" : "FeedbackResponsesRequest", + "compilationUnitId" : "acm009111jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006061jsd", "acm009008jsd", "acm009128jsd", "acm009228jsd" ], + "content" : [ "acm009115jsd", "acm009116jsd", "acm009117jsd", "acm009118jsd", "acm009119jsd", "acm009120jsd", "acm009121jsd", "acm009122jsd" ] + }, + "acm009124jsd" : { + "type" : "ControlElement", + "id" : "acm009124jsd", + "name" : "FeedbackResponseRequest" + }, + "acm009125jsd" : { + "type" : "ControlElement", + "id" : "acm009125jsd", + "name" : "validate" + }, + "acm009126jsd" : { + "type" : "ControlElement", + "id" : "acm009126jsd", + "name" : "getRecipient" + }, + "acm009127jsd" : { + "type" : "ControlElement", + "id" : "acm009127jsd", + "name" : "getResponseDetails" + }, + "acm009128jsd" : { + "type" : "ClassUnit", + "id" : "acm009128jsd", + "name" : "FeedbackResponseRequest", + "compilationUnitId" : "acm009111jsd", + "parentDatatypeId" : "acm009123jsd", + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006061jsd", "acm009228jsd" ], + "content" : [ "acm009124jsd", "acm009125jsd", "acm009126jsd", "acm009127jsd" ] + }, + "acm009129jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009129jsd", + "name" : "FeedbackSessionBasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009152jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009130jsd" : { + "type" : "CodePackage", + "id" : "acm009130jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009131jsd" ] + }, + "acm009131jsd" : { + "type" : "CodePackage", + "id" : "acm009131jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009132jsd" ] + }, + "acm009132jsd" : { + "type" : "CodePackage", + "id" : "acm009132jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009129jsd" ] + }, + "acm009133jsd" : { + "type" : "ControlElement", + "id" : "acm009133jsd", + "name" : "getInstructions" + }, + "acm009134jsd" : { + "type" : "ControlElement", + "id" : "acm009134jsd", + "name" : "getSubmissionStartTime" + }, + "acm009135jsd" : { + "type" : "ControlElement", + "id" : "acm009135jsd", + "name" : "getSubmissionEndTime" + }, + "acm009136jsd" : { + "type" : "ControlElement", + "id" : "acm009136jsd", + "name" : "getGracePeriod" + }, + "acm009137jsd" : { + "type" : "ControlElement", + "id" : "acm009137jsd", + "name" : "getResultsVisibleFromTime" + }, + "acm009138jsd" : { + "type" : "ControlElement", + "id" : "acm009138jsd", + "name" : "getSessionVisibleFromTime" + }, + "acm009139jsd" : { + "type" : "ControlElement", + "id" : "acm009139jsd", + "name" : "isClosingEmailEnabled" + }, + "acm009140jsd" : { + "type" : "ControlElement", + "id" : "acm009140jsd", + "name" : "isPublishedEmailEnabled" + }, + "acm009141jsd" : { + "type" : "ControlElement", + "id" : "acm009141jsd", + "name" : "setInstructions" + }, + "acm009142jsd" : { + "type" : "ControlElement", + "id" : "acm009142jsd", + "name" : "setSubmissionStartTimestamp" + }, + "acm009143jsd" : { + "type" : "ControlElement", + "id" : "acm009143jsd", + "name" : "setSubmissionEndTimestamp" + }, + "acm009144jsd" : { + "type" : "ControlElement", + "id" : "acm009144jsd", + "name" : "setGracePeriod" + }, + "acm009145jsd" : { + "type" : "ControlElement", + "id" : "acm009145jsd", + "name" : "setSessionVisibleSetting" + }, + "acm009146jsd" : { + "type" : "ControlElement", + "id" : "acm009146jsd", + "name" : "setCustomSessionVisibleTimestamp" + }, + "acm009147jsd" : { + "type" : "ControlElement", + "id" : "acm009147jsd", + "name" : "setResponseVisibleSetting" + }, + "acm009148jsd" : { + "type" : "ControlElement", + "id" : "acm009148jsd", + "name" : "setCustomResponseVisibleTimestamp" + }, + "acm009149jsd" : { + "type" : "ControlElement", + "id" : "acm009149jsd", + "name" : "setClosingEmailEnabled" + }, + "acm009150jsd" : { + "type" : "ControlElement", + "id" : "acm009150jsd", + "name" : "setPublishedEmailEnabled" + }, + "acm009151jsd" : { + "type" : "ControlElement", + "id" : "acm009151jsd", + "name" : "validate" + }, + "acm009152jsd" : { + "type" : "ClassUnit", + "id" : "acm009152jsd", + "name" : "FeedbackSessionBasicRequest", + "compilationUnitId" : "acm009129jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008757jsd", "acm008923jsd", "acm009228jsd" ], + "content" : [ "acm009133jsd", "acm009134jsd", "acm009135jsd", "acm009136jsd", "acm009137jsd", "acm009138jsd", "acm009139jsd", "acm009140jsd", "acm009141jsd", "acm009142jsd", "acm009143jsd", "acm009144jsd", "acm009145jsd", "acm009146jsd", "acm009147jsd", "acm009148jsd", "acm009149jsd", "acm009150jsd", "acm009151jsd" ] + }, + "acm009153jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009153jsd", + "name" : "FeedbackSessionCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009164jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009154jsd" : { + "type" : "CodePackage", + "id" : "acm009154jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009155jsd" ] + }, + "acm009155jsd" : { + "type" : "CodePackage", + "id" : "acm009155jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009156jsd" ] + }, + "acm009156jsd" : { + "type" : "CodePackage", + "id" : "acm009156jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009153jsd" ] + }, + "acm009157jsd" : { + "type" : "ControlElement", + "id" : "acm009157jsd", + "name" : "getFeedbackSessionName" + }, + "acm009158jsd" : { + "type" : "ControlElement", + "id" : "acm009158jsd", + "name" : "getToCopyCourseId" + }, + "acm009159jsd" : { + "type" : "ControlElement", + "id" : "acm009159jsd", + "name" : "getToCopySessionName" + }, + "acm009160jsd" : { + "type" : "ControlElement", + "id" : "acm009160jsd", + "name" : "setFeedbackSessionName" + }, + "acm009161jsd" : { + "type" : "ControlElement", + "id" : "acm009161jsd", + "name" : "setToCopyCourseId" + }, + "acm009162jsd" : { + "type" : "ControlElement", + "id" : "acm009162jsd", + "name" : "setToCopySessionName" + }, + "acm009163jsd" : { + "type" : "ControlElement", + "id" : "acm009163jsd", + "name" : "validate" + }, + "acm009164jsd" : { + "type" : "ClassUnit", + "id" : "acm009164jsd", + "name" : "FeedbackSessionCreateRequest", + "compilationUnitId" : "acm009153jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009152jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009157jsd", "acm009158jsd", "acm009159jsd", "acm009160jsd", "acm009161jsd", "acm009162jsd", "acm009163jsd" ] + }, + "acm009165jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009165jsd", + "name" : "FeedbackSessionRemindRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009176jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009166jsd" : { + "type" : "CodePackage", + "id" : "acm009166jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009167jsd" ] + }, + "acm009167jsd" : { + "type" : "CodePackage", + "id" : "acm009167jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009168jsd" ] + }, + "acm009168jsd" : { + "type" : "CodePackage", + "id" : "acm009168jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009165jsd" ] + }, + "acm009169jsd" : { + "type" : "ControlElement", + "id" : "acm009169jsd", + "name" : "FeedbackSessionRemindRequest" + }, + "acm009170jsd" : { + "type" : "ControlElement", + "id" : "acm009170jsd", + "name" : "getCourseId" + }, + "acm009171jsd" : { + "type" : "ControlElement", + "id" : "acm009171jsd", + "name" : "getFeedbackSessionName" + }, + "acm009172jsd" : { + "type" : "ControlElement", + "id" : "acm009172jsd", + "name" : "getRequestingInstructorId" + }, + "acm009173jsd" : { + "type" : "ControlElement", + "id" : "acm009173jsd", + "name" : "getUsersToRemind" + }, + "acm009174jsd" : { + "type" : "ControlElement", + "id" : "acm009174jsd", + "name" : "getIsSendingCopyToInstructor" + }, + "acm009175jsd" : { + "type" : "ControlElement", + "id" : "acm009175jsd", + "name" : "validate" + }, + "acm009176jsd" : { + "type" : "ClassUnit", + "id" : "acm009176jsd", + "name" : "FeedbackSessionRemindRequest", + "compilationUnitId" : "acm009165jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009169jsd", "acm009170jsd", "acm009171jsd", "acm009172jsd", "acm009173jsd", "acm009174jsd", "acm009175jsd" ] + }, + "acm009177jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009177jsd", + "name" : "FeedbackSessionRespondentRemindRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009186jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009178jsd" : { + "type" : "CodePackage", + "id" : "acm009178jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009179jsd" ] + }, + "acm009179jsd" : { + "type" : "CodePackage", + "id" : "acm009179jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009180jsd" ] + }, + "acm009180jsd" : { + "type" : "CodePackage", + "id" : "acm009180jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009177jsd" ] + }, + "acm009181jsd" : { + "type" : "ControlElement", + "id" : "acm009181jsd", + "name" : "getUsersToRemind" + }, + "acm009182jsd" : { + "type" : "ControlElement", + "id" : "acm009182jsd", + "name" : "setUsersToRemind" + }, + "acm009183jsd" : { + "type" : "ControlElement", + "id" : "acm009183jsd", + "name" : "getIsSendingCopyToInstructor" + }, + "acm009184jsd" : { + "type" : "ControlElement", + "id" : "acm009184jsd", + "name" : "setIsSendingCopyToInstructor" + }, + "acm009185jsd" : { + "type" : "ControlElement", + "id" : "acm009185jsd", + "name" : "validate" + }, + "acm009186jsd" : { + "type" : "ClassUnit", + "id" : "acm009186jsd", + "name" : "FeedbackSessionRespondentRemindRequest", + "compilationUnitId" : "acm009177jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009181jsd", "acm009182jsd", "acm009183jsd", "acm009184jsd", "acm009185jsd" ] + }, + "acm009187jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009187jsd", + "name" : "FeedbackSessionUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009195jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009188jsd" : { + "type" : "CodePackage", + "id" : "acm009188jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009189jsd" ] + }, + "acm009189jsd" : { + "type" : "CodePackage", + "id" : "acm009189jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009190jsd" ] + }, + "acm009190jsd" : { + "type" : "CodePackage", + "id" : "acm009190jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009187jsd" ] + }, + "acm009191jsd" : { + "type" : "ControlElement", + "id" : "acm009191jsd", + "name" : "getStudentDeadlines" + }, + "acm009192jsd" : { + "type" : "ControlElement", + "id" : "acm009192jsd", + "name" : "getInstructorDeadlines" + }, + "acm009193jsd" : { + "type" : "ControlElement", + "id" : "acm009193jsd", + "name" : "setStudentDeadlines" + }, + "acm009194jsd" : { + "type" : "ControlElement", + "id" : "acm009194jsd", + "name" : "setInstructorDeadlines" + }, + "acm009195jsd" : { + "type" : "ClassUnit", + "id" : "acm009195jsd", + "name" : "FeedbackSessionUpdateRequest", + "compilationUnitId" : "acm009187jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009152jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009191jsd", "acm009192jsd", "acm009193jsd", "acm009194jsd" ] + }, + "acm009196jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009196jsd", + "name" : "InstructorCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009208jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009197jsd" : { + "type" : "CodePackage", + "id" : "acm009197jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009198jsd" ] + }, + "acm009198jsd" : { + "type" : "CodePackage", + "id" : "acm009198jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009199jsd" ] + }, + "acm009199jsd" : { + "type" : "CodePackage", + "id" : "acm009199jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009196jsd" ] + }, + "acm009200jsd" : { + "type" : "ControlElement", + "id" : "acm009200jsd", + "name" : "InstructorCreateRequest" + }, + "acm009201jsd" : { + "type" : "ControlElement", + "id" : "acm009201jsd", + "name" : "validate" + }, + "acm009202jsd" : { + "type" : "ControlElement", + "id" : "acm009202jsd", + "name" : "getId" + }, + "acm009203jsd" : { + "type" : "ControlElement", + "id" : "acm009203jsd", + "name" : "getName" + }, + "acm009204jsd" : { + "type" : "ControlElement", + "id" : "acm009204jsd", + "name" : "getEmail" + }, + "acm009205jsd" : { + "type" : "ControlElement", + "id" : "acm009205jsd", + "name" : "getRoleName" + }, + "acm009206jsd" : { + "type" : "ControlElement", + "id" : "acm009206jsd", + "name" : "getDisplayName" + }, + "acm009207jsd" : { + "type" : "ControlElement", + "id" : "acm009207jsd", + "name" : "getIsDisplayedToStudent" + }, + "acm009208jsd" : { + "type" : "ClassUnit", + "id" : "acm009208jsd", + "name" : "InstructorCreateRequest", + "compilationUnitId" : "acm009196jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008628jsd", "acm009228jsd" ], + "content" : [ "acm009200jsd", "acm009201jsd", "acm009202jsd", "acm009203jsd", "acm009204jsd", "acm009205jsd", "acm009206jsd", "acm009207jsd" ] + }, + "acm009209jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009209jsd", + "name" : "InstructorPrivilegeUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009216jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009210jsd" : { + "type" : "CodePackage", + "id" : "acm009210jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009211jsd" ] + }, + "acm009211jsd" : { + "type" : "CodePackage", + "id" : "acm009211jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009212jsd" ] + }, + "acm009212jsd" : { + "type" : "CodePackage", + "id" : "acm009212jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009209jsd" ] + }, + "acm009213jsd" : { + "type" : "ControlElement", + "id" : "acm009213jsd", + "name" : "validate" + }, + "acm009214jsd" : { + "type" : "ControlElement", + "id" : "acm009214jsd", + "name" : "getPrivileges" + }, + "acm009215jsd" : { + "type" : "ControlElement", + "id" : "acm009215jsd", + "name" : "setPrivileges" + }, + "acm009216jsd" : { + "type" : "ClassUnit", + "id" : "acm009216jsd", + "name" : "InstructorPrivilegeUpdateRequest", + "compilationUnitId" : "acm009209jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm009228jsd" ], + "content" : [ "acm009213jsd", "acm009214jsd", "acm009215jsd" ] + }, + "acm009217jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009217jsd", + "name" : "Intent", + "parentId" : "acm008993jsd", + "content" : [ "acm009221jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009218jsd" : { + "type" : "CodePackage", + "id" : "acm009218jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009219jsd" ] + }, + "acm009219jsd" : { + "type" : "CodePackage", + "id" : "acm009219jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009220jsd" ] + }, + "acm009220jsd" : { + "type" : "CodePackage", + "id" : "acm009220jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009217jsd" ] + }, + "acm009221jsd" : { + "type" : "ClassUnit", + "id" : "acm009221jsd", + "name" : "Intent", + "compilationUnitId" : "acm009217jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009222jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009222jsd", + "name" : "InvalidHttpRequestBodyException", + "parentId" : "acm008993jsd", + "content" : [ "acm009228jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009223jsd" : { + "type" : "CodePackage", + "id" : "acm009223jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009224jsd" ] + }, + "acm009224jsd" : { + "type" : "CodePackage", + "id" : "acm009224jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009225jsd" ] + }, + "acm009225jsd" : { + "type" : "CodePackage", + "id" : "acm009225jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009222jsd" ] + }, + "acm009226jsd" : { + "type" : "ControlElement", + "id" : "acm009226jsd", + "name" : "InvalidHttpRequestBodyException" + }, + "acm009227jsd" : { + "type" : "ControlElement", + "id" : "acm009227jsd", + "name" : "InvalidHttpRequestBodyException" + }, + "acm009228jsd" : { + "type" : "ClassUnit", + "id" : "acm009228jsd", + "name" : "InvalidHttpRequestBodyException", + "compilationUnitId" : "acm009222jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006188jsd" ], + "content" : [ "acm009226jsd", "acm009227jsd" ] + }, + "acm009229jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009229jsd", + "name" : "MarkNotificationAsReadRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009237jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009230jsd" : { + "type" : "CodePackage", + "id" : "acm009230jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009231jsd" ] + }, + "acm009231jsd" : { + "type" : "CodePackage", + "id" : "acm009231jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009232jsd" ] + }, + "acm009232jsd" : { + "type" : "CodePackage", + "id" : "acm009232jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009229jsd" ] + }, + "acm009233jsd" : { + "type" : "ControlElement", + "id" : "acm009233jsd", + "name" : "MarkNotificationAsReadRequest" + }, + "acm009234jsd" : { + "type" : "ControlElement", + "id" : "acm009234jsd", + "name" : "getNotificationId" + }, + "acm009235jsd" : { + "type" : "ControlElement", + "id" : "acm009235jsd", + "name" : "getEndTimestamp" + }, + "acm009236jsd" : { + "type" : "ControlElement", + "id" : "acm009236jsd", + "name" : "validate" + }, + "acm009237jsd" : { + "type" : "ClassUnit", + "id" : "acm009237jsd", + "name" : "MarkNotificationAsReadRequest", + "compilationUnitId" : "acm009229jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009233jsd", "acm009234jsd", "acm009235jsd", "acm009236jsd" ] + }, + "acm009238jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009238jsd", + "name" : "NotificationBasicRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009255jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009239jsd" : { + "type" : "CodePackage", + "id" : "acm009239jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009240jsd" ] + }, + "acm009240jsd" : { + "type" : "CodePackage", + "id" : "acm009240jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009241jsd" ] + }, + "acm009241jsd" : { + "type" : "CodePackage", + "id" : "acm009241jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009238jsd" ] + }, + "acm009242jsd" : { + "type" : "ControlElement", + "id" : "acm009242jsd", + "name" : "getStartTimestamp" + }, + "acm009243jsd" : { + "type" : "ControlElement", + "id" : "acm009243jsd", + "name" : "getEndTimestamp" + }, + "acm009244jsd" : { + "type" : "ControlElement", + "id" : "acm009244jsd", + "name" : "getStyle" + }, + "acm009245jsd" : { + "type" : "ControlElement", + "id" : "acm009245jsd", + "name" : "getTargetUser" + }, + "acm009246jsd" : { + "type" : "ControlElement", + "id" : "acm009246jsd", + "name" : "getTitle" + }, + "acm009247jsd" : { + "type" : "ControlElement", + "id" : "acm009247jsd", + "name" : "getMessage" + }, + "acm009248jsd" : { + "type" : "ControlElement", + "id" : "acm009248jsd", + "name" : "setStartTimestamp" + }, + "acm009249jsd" : { + "type" : "ControlElement", + "id" : "acm009249jsd", + "name" : "setEndTimestamp" + }, + "acm009250jsd" : { + "type" : "ControlElement", + "id" : "acm009250jsd", + "name" : "setStyle" + }, + "acm009251jsd" : { + "type" : "ControlElement", + "id" : "acm009251jsd", + "name" : "setTargetUser" + }, + "acm009252jsd" : { + "type" : "ControlElement", + "id" : "acm009252jsd", + "name" : "setTitle" + }, + "acm009253jsd" : { + "type" : "ControlElement", + "id" : "acm009253jsd", + "name" : "setMessage" + }, + "acm009254jsd" : { + "type" : "ControlElement", + "id" : "acm009254jsd", + "name" : "validate" + }, + "acm009255jsd" : { + "type" : "ClassUnit", + "id" : "acm009255jsd", + "name" : "NotificationBasicRequest", + "compilationUnitId" : "acm009238jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm009228jsd" ], + "content" : [ "acm009242jsd", "acm009243jsd", "acm009244jsd", "acm009245jsd", "acm009246jsd", "acm009247jsd", "acm009248jsd", "acm009249jsd", "acm009250jsd", "acm009251jsd", "acm009252jsd", "acm009253jsd", "acm009254jsd" ] + }, + "acm009256jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009256jsd", + "name" : "NotificationCreateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009260jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009257jsd" : { + "type" : "CodePackage", + "id" : "acm009257jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009258jsd" ] + }, + "acm009258jsd" : { + "type" : "CodePackage", + "id" : "acm009258jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009259jsd" ] + }, + "acm009259jsd" : { + "type" : "CodePackage", + "id" : "acm009259jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009256jsd" ] + }, + "acm009260jsd" : { + "type" : "ClassUnit", + "id" : "acm009260jsd", + "name" : "NotificationCreateRequest", + "compilationUnitId" : "acm009256jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009255jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009261jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009261jsd", + "name" : "NotificationUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009265jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009262jsd" : { + "type" : "CodePackage", + "id" : "acm009262jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009263jsd" ] + }, + "acm009263jsd" : { + "type" : "CodePackage", + "id" : "acm009263jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009264jsd" ] + }, + "acm009264jsd" : { + "type" : "CodePackage", + "id" : "acm009264jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009261jsd" ] + }, + "acm009265jsd" : { + "type" : "ClassUnit", + "id" : "acm009265jsd", + "name" : "NotificationUpdateRequest", + "compilationUnitId" : "acm009261jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009255jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm009266jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009266jsd", + "name" : "SendEmailRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009273jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009267jsd" : { + "type" : "CodePackage", + "id" : "acm009267jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009268jsd" ] + }, + "acm009268jsd" : { + "type" : "CodePackage", + "id" : "acm009268jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009269jsd" ] + }, + "acm009269jsd" : { + "type" : "CodePackage", + "id" : "acm009269jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009266jsd" ] + }, + "acm009270jsd" : { + "type" : "ControlElement", + "id" : "acm009270jsd", + "name" : "SendEmailRequest" + }, + "acm009271jsd" : { + "type" : "ControlElement", + "id" : "acm009271jsd", + "name" : "getEmail" + }, + "acm009272jsd" : { + "type" : "ControlElement", + "id" : "acm009272jsd", + "name" : "validate" + }, + "acm009273jsd" : { + "type" : "ClassUnit", + "id" : "acm009273jsd", + "name" : "SendEmailRequest", + "compilationUnitId" : "acm009266jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd", "acm009228jsd" ], + "content" : [ "acm009270jsd", "acm009271jsd", "acm009272jsd" ] + }, + "acm009274jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009274jsd", + "name" : "StudentUpdateRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009286jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009275jsd" : { + "type" : "CodePackage", + "id" : "acm009275jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009276jsd" ] + }, + "acm009276jsd" : { + "type" : "CodePackage", + "id" : "acm009276jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009277jsd" ] + }, + "acm009277jsd" : { + "type" : "CodePackage", + "id" : "acm009277jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009274jsd" ] + }, + "acm009278jsd" : { + "type" : "ControlElement", + "id" : "acm009278jsd", + "name" : "StudentUpdateRequest" + }, + "acm009279jsd" : { + "type" : "ControlElement", + "id" : "acm009279jsd", + "name" : "validate" + }, + "acm009280jsd" : { + "type" : "ControlElement", + "id" : "acm009280jsd", + "name" : "getName" + }, + "acm009281jsd" : { + "type" : "ControlElement", + "id" : "acm009281jsd", + "name" : "getEmail" + }, + "acm009282jsd" : { + "type" : "ControlElement", + "id" : "acm009282jsd", + "name" : "getTeam" + }, + "acm009283jsd" : { + "type" : "ControlElement", + "id" : "acm009283jsd", + "name" : "getSection" + }, + "acm009284jsd" : { + "type" : "ControlElement", + "id" : "acm009284jsd", + "name" : "getComments" + }, + "acm009285jsd" : { + "type" : "ControlElement", + "id" : "acm009285jsd", + "name" : "getIsSessionSummarySendEmail" + }, + "acm009286jsd" : { + "type" : "ClassUnit", + "id" : "acm009286jsd", + "name" : "StudentUpdateRequest", + "compilationUnitId" : "acm009274jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009278jsd", "acm009279jsd", "acm009280jsd", "acm009281jsd", "acm009282jsd", "acm009283jsd", "acm009284jsd", "acm009285jsd" ] + }, + "acm009287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009287jsd", + "name" : "StudentsEnrollRequest", + "parentId" : "acm008993jsd", + "content" : [ "acm009301jsd", "acm009309jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009288jsd" : { + "type" : "CodePackage", + "id" : "acm009288jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009289jsd" ] + }, + "acm009289jsd" : { + "type" : "CodePackage", + "id" : "acm009289jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009290jsd" ] + }, + "acm009290jsd" : { + "type" : "CodePackage", + "id" : "acm009290jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009287jsd" ] + }, + "acm009291jsd" : { + "type" : "ControlElement", + "id" : "acm009291jsd", + "name" : "StudentsEnrollRequest" + }, + "acm009292jsd" : { + "type" : "ControlElement", + "id" : "acm009292jsd", + "name" : "getStudentEnrollRequests" + }, + "acm009293jsd" : { + "type" : "ControlElement", + "id" : "acm009293jsd", + "name" : "validate" + }, + "acm009294jsd" : { + "type" : "ControlElement", + "id" : "acm009294jsd", + "name" : "StudentEnrollRequest" + }, + "acm009295jsd" : { + "type" : "ControlElement", + "id" : "acm009295jsd", + "name" : "validate" + }, + "acm009296jsd" : { + "type" : "ControlElement", + "id" : "acm009296jsd", + "name" : "getName" + }, + "acm009297jsd" : { + "type" : "ControlElement", + "id" : "acm009297jsd", + "name" : "getEmail" + }, + "acm009298jsd" : { + "type" : "ControlElement", + "id" : "acm009298jsd", + "name" : "getTeam" + }, + "acm009299jsd" : { + "type" : "ControlElement", + "id" : "acm009299jsd", + "name" : "getSection" + }, + "acm009300jsd" : { + "type" : "ControlElement", + "id" : "acm009300jsd", + "name" : "getComments" + }, + "acm009301jsd" : { + "type" : "ClassUnit", + "id" : "acm009301jsd", + "name" : "StudentsEnrollRequest", + "compilationUnitId" : "acm009287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009008jsd", "acm009228jsd", "acm009309jsd" ], + "content" : [ "acm009291jsd", "acm009292jsd", "acm009293jsd", "acm009294jsd", "acm009295jsd", "acm009296jsd", "acm009297jsd", "acm009298jsd", "acm009299jsd", "acm009300jsd" ] + }, + "acm009302jsd" : { + "type" : "ControlElement", + "id" : "acm009302jsd", + "name" : "StudentEnrollRequest" + }, + "acm009303jsd" : { + "type" : "ControlElement", + "id" : "acm009303jsd", + "name" : "validate" + }, + "acm009304jsd" : { + "type" : "ControlElement", + "id" : "acm009304jsd", + "name" : "getName" + }, + "acm009305jsd" : { + "type" : "ControlElement", + "id" : "acm009305jsd", + "name" : "getEmail" + }, + "acm009306jsd" : { + "type" : "ControlElement", + "id" : "acm009306jsd", + "name" : "getTeam" + }, + "acm009307jsd" : { + "type" : "ControlElement", + "id" : "acm009307jsd", + "name" : "getSection" + }, + "acm009308jsd" : { + "type" : "ControlElement", + "id" : "acm009308jsd", + "name" : "getComments" + }, + "acm009309jsd" : { + "type" : "ClassUnit", + "id" : "acm009309jsd", + "name" : "StudentEnrollRequest", + "compilationUnitId" : "acm009287jsd", + "parentDatatypeId" : "acm009301jsd", + "extendedDataTypesIds" : [ "acm009008jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd" ], + "content" : [ "acm009302jsd", "acm009303jsd", "acm009304jsd", "acm009305jsd", "acm009306jsd", "acm009307jsd", "acm009308jsd" ] + }, + "acm009310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009310jsd", + "name" : "package-info", + "parentId" : "acm008993jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009311jsd" : { + "type" : "CodePackage", + "id" : "acm009311jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009312jsd" ] + }, + "acm009312jsd" : { + "type" : "CodePackage", + "id" : "acm009312jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009313jsd" ] + }, + "acm009313jsd" : { + "type" : "CodePackage", + "id" : "acm009313jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm009310jsd" ] + }, + "acm009314jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009314jsd", + "name" : "AuthServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009325jsd", "acm009329jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009315jsd" : { + "type" : "CodePackage", + "id" : "acm009315jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009316jsd" ] + }, + "acm009316jsd" : { + "type" : "CodePackage", + "id" : "acm009316jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009317jsd" ] + }, + "acm009317jsd" : { + "type" : "CodePackage", + "id" : "acm009317jsd", + "name" : "servlets", + "parentId" : "acm008203jsd", + "content" : [ "acm009314jsd", "acm009330jsd", "acm009337jsd", "acm009343jsd", "acm009349jsd", "acm009355jsd", "acm009361jsd", "acm009373jsd", "acm009384jsd", "acm009393jsd", "acm009405jsd", "acm009411jsd", "acm009419jsd", "acm012269jsd", "acm012276jsd", "acm012283jsd", "acm012292jsd", "acm012298jsd" ] + }, + "acm009318jsd" : { + "type" : "ControlElement", + "id" : "acm009318jsd", + "name" : "getAuthorizationFlow" + }, + "acm009319jsd" : { + "type" : "ControlElement", + "id" : "acm009319jsd", + "name" : "getRedirectUri" + }, + "acm009320jsd" : { + "type" : "ControlElement", + "id" : "acm009320jsd", + "name" : "getLoginInvalidationCookie" + }, + "acm009321jsd" : { + "type" : "ControlElement", + "id" : "acm009321jsd", + "name" : "getLoginCookie" + }, + "acm009322jsd" : { + "type" : "ControlElement", + "id" : "acm009322jsd", + "name" : "AuthState" + }, + "acm009323jsd" : { + "type" : "ControlElement", + "id" : "acm009323jsd", + "name" : "getNextUrl" + }, + "acm009324jsd" : { + "type" : "ControlElement", + "id" : "acm009324jsd", + "name" : "getSessionId" + }, + "acm009325jsd" : { + "type" : "ClassUnit", + "id" : "acm009325jsd", + "name" : "AuthServlet", + "compilationUnitId" : "acm009314jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd" ], + "content" : [ "acm009318jsd", "acm009319jsd", "acm009320jsd", "acm009321jsd", "acm009322jsd", "acm009323jsd", "acm009324jsd" ] + }, + "acm009326jsd" : { + "type" : "ControlElement", + "id" : "acm009326jsd", + "name" : "AuthState" + }, + "acm009327jsd" : { + "type" : "ControlElement", + "id" : "acm009327jsd", + "name" : "getNextUrl" + }, + "acm009328jsd" : { + "type" : "ControlElement", + "id" : "acm009328jsd", + "name" : "getSessionId" + }, + "acm009329jsd" : { + "type" : "ClassUnit", + "id" : "acm009329jsd", + "name" : "AuthState", + "compilationUnitId" : "acm009314jsd", + "parentDatatypeId" : "acm009325jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009326jsd", "acm009327jsd", "acm009328jsd" ] + }, + "acm009330jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009330jsd", + "name" : "DevServerLoginServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009336jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009331jsd" : { + "type" : "CodePackage", + "id" : "acm009331jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009332jsd" ] + }, + "acm009332jsd" : { + "type" : "CodePackage", + "id" : "acm009332jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009333jsd" ] + }, + "acm009333jsd" : { + "type" : "CodePackage", + "id" : "acm009333jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009330jsd" ] + }, + "acm009334jsd" : { + "type" : "ControlElement", + "id" : "acm009334jsd", + "name" : "doGet" + }, + "acm009335jsd" : { + "type" : "ControlElement", + "id" : "acm009335jsd", + "name" : "doPost" + }, + "acm009336jsd" : { + "type" : "ClassUnit", + "id" : "acm009336jsd", + "name" : "DevServerLoginServlet", + "compilationUnitId" : "acm009330jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009325jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd" ], + "content" : [ "acm009334jsd", "acm009335jsd" ] + }, + "acm009337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009337jsd", + "name" : "HealthCheckServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009342jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009338jsd" : { + "type" : "CodePackage", + "id" : "acm009338jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009339jsd" ] + }, + "acm009339jsd" : { + "type" : "CodePackage", + "id" : "acm009339jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009340jsd" ] + }, + "acm009340jsd" : { + "type" : "CodePackage", + "id" : "acm009340jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009337jsd" ] + }, + "acm009341jsd" : { + "type" : "ControlElement", + "id" : "acm009341jsd", + "name" : "doGet" + }, + "acm009342jsd" : { + "type" : "ClassUnit", + "id" : "acm009342jsd", + "name" : "HealthCheckServlet", + "compilationUnitId" : "acm009337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009341jsd" ] + }, + "acm009343jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009343jsd", + "name" : "LegacyUrlMapper", + "parentId" : "acm009317jsd", + "content" : [ "acm009348jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009344jsd" : { + "type" : "CodePackage", + "id" : "acm009344jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009345jsd" ] + }, + "acm009345jsd" : { + "type" : "CodePackage", + "id" : "acm009345jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009346jsd" ] + }, + "acm009346jsd" : { + "type" : "CodePackage", + "id" : "acm009346jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009343jsd" ] + }, + "acm009347jsd" : { + "type" : "ControlElement", + "id" : "acm009347jsd", + "name" : "doGet" + }, + "acm009348jsd" : { + "type" : "ClassUnit", + "id" : "acm009348jsd", + "name" : "LegacyUrlMapper", + "compilationUnitId" : "acm009343jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd" ], + "content" : [ "acm009347jsd" ] + }, + "acm009349jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009349jsd", + "name" : "LoginServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009354jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009350jsd" : { + "type" : "CodePackage", + "id" : "acm009350jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009351jsd" ] + }, + "acm009351jsd" : { + "type" : "CodePackage", + "id" : "acm009351jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009352jsd" ] + }, + "acm009352jsd" : { + "type" : "CodePackage", + "id" : "acm009352jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009349jsd" ] + }, + "acm009353jsd" : { + "type" : "ControlElement", + "id" : "acm009353jsd", + "name" : "doGet" + }, + "acm009354jsd" : { + "type" : "ClassUnit", + "id" : "acm009354jsd", + "name" : "LoginServlet", + "compilationUnitId" : "acm009349jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009325jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd", "acm006435jsd", "acm009329jsd" ], + "content" : [ "acm009353jsd" ] + }, + "acm009355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009355jsd", + "name" : "LogoutServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009360jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009356jsd" : { + "type" : "CodePackage", + "id" : "acm009356jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009357jsd" ] + }, + "acm009357jsd" : { + "type" : "CodePackage", + "id" : "acm009357jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009358jsd" ] + }, + "acm009358jsd" : { + "type" : "CodePackage", + "id" : "acm009358jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009355jsd" ] + }, + "acm009359jsd" : { + "type" : "ControlElement", + "id" : "acm009359jsd", + "name" : "doGet" + }, + "acm009360jsd" : { + "type" : "ClassUnit", + "id" : "acm009360jsd", + "name" : "LogoutServlet", + "compilationUnitId" : "acm009355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009325jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd" ], + "content" : [ "acm009359jsd" ] + }, + "acm009361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009361jsd", + "name" : "OAuth2CallbackServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009370jsd", "acm009372jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009362jsd" : { + "type" : "CodePackage", + "id" : "acm009362jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009363jsd" ] + }, + "acm009363jsd" : { + "type" : "CodePackage", + "id" : "acm009363jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009364jsd" ] + }, + "acm009364jsd" : { + "type" : "CodePackage", + "id" : "acm009364jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009361jsd" ] + }, + "acm009365jsd" : { + "type" : "ControlElement", + "id" : "acm009365jsd", + "name" : "doGet" + }, + "acm009366jsd" : { + "type" : "ControlElement", + "id" : "acm009366jsd", + "name" : "getGoogleOauth2AuthResult" + }, + "acm009367jsd" : { + "type" : "ControlElement", + "id" : "acm009367jsd", + "name" : "getFirebaseAuthResult" + }, + "acm009368jsd" : { + "type" : "ControlElement", + "id" : "acm009368jsd", + "name" : "logAndPrintError" + }, + "acm009369jsd" : { + "type" : "ControlElement", + "id" : "acm009369jsd", + "name" : "AuthResult" + }, + "acm009370jsd" : { + "type" : "ClassUnit", + "id" : "acm009370jsd", + "name" : "OAuth2CallbackServlet", + "compilationUnitId" : "acm009361jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009325jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd", "acm006188jsd", "acm006435jsd", "acm009329jsd", "acm009372jsd" ], + "content" : [ "acm009365jsd", "acm009366jsd", "acm009367jsd", "acm009368jsd", "acm009369jsd" ] + }, + "acm009371jsd" : { + "type" : "ControlElement", + "id" : "acm009371jsd", + "name" : "AuthResult" + }, + "acm009372jsd" : { + "type" : "ClassUnit", + "id" : "acm009372jsd", + "name" : "AuthResult", + "compilationUnitId" : "acm009361jsd", + "parentDatatypeId" : "acm009370jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009371jsd" ] + }, + "acm009373jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009373jsd", + "name" : "OriginCheckFilter", + "parentId" : "acm009317jsd", + "content" : [ "acm009383jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009374jsd" : { + "type" : "CodePackage", + "id" : "acm009374jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009375jsd" ] + }, + "acm009375jsd" : { + "type" : "CodePackage", + "id" : "acm009375jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009376jsd" ] + }, + "acm009376jsd" : { + "type" : "CodePackage", + "id" : "acm009376jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009373jsd" ] + }, + "acm009377jsd" : { + "type" : "ControlElement", + "id" : "acm009377jsd", + "name" : "init" + }, + "acm009378jsd" : { + "type" : "ControlElement", + "id" : "acm009378jsd", + "name" : "doFilter" + }, + "acm009379jsd" : { + "type" : "ControlElement", + "id" : "acm009379jsd", + "name" : "isHttpReferrerValid" + }, + "acm009380jsd" : { + "type" : "ControlElement", + "id" : "acm009380jsd", + "name" : "getCsrfTokenErrorIfAny" + }, + "acm009381jsd" : { + "type" : "ControlElement", + "id" : "acm009381jsd", + "name" : "denyAccess" + }, + "acm009382jsd" : { + "type" : "ControlElement", + "id" : "acm009382jsd", + "name" : "destroy" + }, + "acm009383jsd" : { + "type" : "ClassUnit", + "id" : "acm009383jsd", + "name" : "OriginCheckFilter", + "compilationUnitId" : "acm009373jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006188jsd", "acm006435jsd", "acm006554jsd", "acm010167jsd" ], + "content" : [ "acm009377jsd", "acm009378jsd", "acm009379jsd", "acm009380jsd", "acm009381jsd", "acm009382jsd" ] + }, + "acm009384jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009384jsd", + "name" : "RequestTraceFilter", + "parentId" : "acm009317jsd", + "content" : [ "acm009392jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009385jsd" : { + "type" : "CodePackage", + "id" : "acm009385jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009386jsd" ] + }, + "acm009386jsd" : { + "type" : "CodePackage", + "id" : "acm009386jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009387jsd" ] + }, + "acm009387jsd" : { + "type" : "CodePackage", + "id" : "acm009387jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009384jsd" ] + }, + "acm009388jsd" : { + "type" : "ControlElement", + "id" : "acm009388jsd", + "name" : "init" + }, + "acm009389jsd" : { + "type" : "ControlElement", + "id" : "acm009389jsd", + "name" : "doFilter" + }, + "acm009390jsd" : { + "type" : "ControlElement", + "id" : "acm009390jsd", + "name" : "destroy" + }, + "acm009391jsd" : { + "type" : "ControlElement", + "id" : "acm009391jsd", + "name" : "throwError" + }, + "acm009392jsd" : { + "type" : "ClassUnit", + "id" : "acm009392jsd", + "name" : "RequestTraceFilter", + "compilationUnitId" : "acm009384jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009388jsd", "acm009389jsd", "acm009390jsd", "acm009391jsd" ] + }, + "acm009393jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009393jsd", + "name" : "WebApiServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009404jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009394jsd" : { + "type" : "CodePackage", + "id" : "acm009394jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009395jsd" ] + }, + "acm009395jsd" : { + "type" : "CodePackage", + "id" : "acm009395jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009396jsd" ] + }, + "acm009396jsd" : { + "type" : "CodePackage", + "id" : "acm009396jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009393jsd" ] + }, + "acm009397jsd" : { + "type" : "ControlElement", + "id" : "acm009397jsd", + "name" : "doGet" + }, + "acm009398jsd" : { + "type" : "ControlElement", + "id" : "acm009398jsd", + "name" : "doPost" + }, + "acm009399jsd" : { + "type" : "ControlElement", + "id" : "acm009399jsd", + "name" : "doPut" + }, + "acm009400jsd" : { + "type" : "ControlElement", + "id" : "acm009400jsd", + "name" : "doDelete" + }, + "acm009401jsd" : { + "type" : "ControlElement", + "id" : "acm009401jsd", + "name" : "invokeServlet" + }, + "acm009402jsd" : { + "type" : "ControlElement", + "id" : "acm009402jsd", + "name" : "throwErrorBasedOnRequester" + }, + "acm009403jsd" : { + "type" : "ControlElement", + "id" : "acm009403jsd", + "name" : "throwError" + }, + "acm009404jsd" : { + "type" : "ClassUnit", + "id" : "acm009404jsd", + "name" : "WebApiServlet", + "compilationUnitId" : "acm009393jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005714jsd", "acm006143jsd", "acm006435jsd", "acm009228jsd", "acm009459jsd", "acm009475jsd", "acm009483jsd", "acm009748jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009397jsd", "acm009398jsd", "acm009399jsd", "acm009400jsd", "acm009401jsd", "acm009402jsd", "acm009403jsd" ] + }, + "acm009405jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009405jsd", + "name" : "WebPageServlet", + "parentId" : "acm009317jsd", + "content" : [ "acm009410jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009406jsd" : { + "type" : "CodePackage", + "id" : "acm009406jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009407jsd" ] + }, + "acm009407jsd" : { + "type" : "CodePackage", + "id" : "acm009407jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009408jsd" ] + }, + "acm009408jsd" : { + "type" : "CodePackage", + "id" : "acm009408jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009405jsd" ] + }, + "acm009409jsd" : { + "type" : "ControlElement", + "id" : "acm009409jsd", + "name" : "doGet" + }, + "acm009410jsd" : { + "type" : "ClassUnit", + "id" : "acm009410jsd", + "name" : "WebPageServlet", + "compilationUnitId" : "acm009405jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd" ], + "content" : [ "acm009409jsd" ] + }, + "acm009411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009411jsd", + "name" : "WebSecurityHeaderFilter", + "parentId" : "acm009317jsd", + "content" : [ "acm009418jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009412jsd" : { + "type" : "CodePackage", + "id" : "acm009412jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009413jsd" ] + }, + "acm009413jsd" : { + "type" : "CodePackage", + "id" : "acm009413jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009414jsd" ] + }, + "acm009414jsd" : { + "type" : "CodePackage", + "id" : "acm009414jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009411jsd" ] + }, + "acm009415jsd" : { + "type" : "ControlElement", + "id" : "acm009415jsd", + "name" : "init" + }, + "acm009416jsd" : { + "type" : "ControlElement", + "id" : "acm009416jsd", + "name" : "doFilter" + }, + "acm009417jsd" : { + "type" : "ControlElement", + "id" : "acm009417jsd", + "name" : "destroy" + }, + "acm009418jsd" : { + "type" : "ClassUnit", + "id" : "acm009418jsd", + "name" : "WebSecurityHeaderFilter", + "compilationUnitId" : "acm009411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009415jsd", "acm009416jsd", "acm009417jsd" ] + }, + "acm009419jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009419jsd", + "name" : "package-info", + "parentId" : "acm009317jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009420jsd" : { + "type" : "CodePackage", + "id" : "acm009420jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009421jsd" ] + }, + "acm009421jsd" : { + "type" : "CodePackage", + "id" : "acm009421jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009422jsd" ] + }, + "acm009422jsd" : { + "type" : "CodePackage", + "id" : "acm009422jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm009419jsd" ] + }, + "acm009423jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009423jsd", + "name" : "AccountRequestSearchIndexingWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009428jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009424jsd" : { + "type" : "CodePackage", + "id" : "acm009424jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009425jsd" ] + }, + "acm009425jsd" : { + "type" : "CodePackage", + "id" : "acm009425jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009426jsd" ] + }, + "acm009426jsd" : { + "type" : "CodePackage", + "id" : "acm009426jsd", + "name" : "webapi", + "parentId" : "acm008203jsd", + "content" : [ "acm009423jsd", "acm009429jsd", "acm009460jsd", "acm009469jsd", "acm009476jsd", "acm009484jsd", "acm009492jsd", "acm009499jsd", "acm009507jsd", "acm009514jsd", "acm009523jsd", "acm009541jsd", "acm009549jsd", "acm009557jsd", "acm009563jsd", "acm009569jsd", "acm009583jsd", "acm009589jsd", "acm009597jsd", "acm009605jsd", "acm009613jsd", "acm009622jsd", "acm009630jsd", "acm009639jsd", "acm009645jsd", "acm009651jsd", "acm009657jsd", "acm009663jsd", "acm009671jsd", "acm009679jsd", "acm009687jsd", "acm009695jsd", "acm009703jsd", "acm009712jsd", "acm009718jsd", "acm009726jsd", "acm009734jsd", "acm009742jsd", "acm009749jsd", "acm009755jsd", "acm009763jsd", "acm009769jsd", "acm009775jsd", "acm009781jsd", "acm009787jsd", "acm009793jsd", "acm009799jsd", "acm009805jsd", "acm009811jsd", "acm009832jsd", "acm009838jsd", "acm009844jsd", "acm009850jsd", "acm009856jsd", "acm009864jsd", "acm009873jsd", "acm009881jsd", "acm009892jsd", "acm009900jsd", "acm009912jsd", "acm009920jsd", "acm009928jsd", "acm009936jsd", "acm009944jsd", "acm009952jsd", "acm009962jsd", "acm009971jsd", "acm009979jsd", "acm009987jsd", "acm009996jsd", "acm010004jsd", "acm010012jsd", "acm010020jsd", "acm010026jsd", "acm010034jsd", "acm010041jsd", "acm010049jsd", "acm010057jsd", "acm010065jsd", "acm010073jsd", "acm010081jsd", "acm010089jsd", "acm010097jsd", "acm010105jsd", "acm010113jsd", "acm010119jsd", "acm010125jsd", "acm010135jsd", "acm010145jsd", "acm010156jsd", "acm010168jsd", "acm010176jsd", "acm010184jsd", "acm010192jsd", "acm010200jsd", "acm010209jsd", "acm010216jsd", "acm010223jsd", "acm010231jsd", "acm010239jsd", "acm010245jsd", "acm010251jsd", "acm010259jsd", "acm010267jsd", "acm010273jsd", "acm010279jsd", "acm010287jsd", "acm010293jsd", "acm010302jsd", "acm010310jsd", "acm010318jsd", "acm010326jsd", "acm010332jsd", "acm010338jsd", "acm010346jsd", "acm010354jsd", "acm010362jsd", "acm010370jsd", "acm010378jsd", "acm010386jsd", "acm010395jsd", "acm010404jsd", "acm010412jsd", "acm010418jsd", "acm010427jsd", "acm012302jsd", "acm012311jsd", "acm012317jsd", "acm012327jsd", "acm012396jsd", "acm012408jsd", "acm012417jsd", "acm012426jsd", "acm012435jsd", "acm012447jsd", "acm012457jsd", "acm012466jsd", "acm012479jsd", "acm012513jsd", "acm012525jsd", "acm012534jsd", "acm012543jsd", "acm012553jsd", "acm012562jsd", "acm012571jsd", "acm012581jsd", "acm012590jsd", "acm012607jsd", "acm012619jsd", "acm012640jsd", "acm012649jsd", "acm012658jsd", "acm012667jsd", "acm012691jsd", "acm012700jsd", "acm012709jsd", "acm012718jsd", "acm012727jsd", "acm012736jsd", "acm012745jsd", "acm012754jsd", "acm012764jsd", "acm012773jsd", "acm012782jsd", "acm012791jsd", "acm012800jsd", "acm012811jsd", "acm012820jsd", "acm012830jsd", "acm012847jsd", "acm012856jsd", "acm012869jsd", "acm012890jsd", "acm012899jsd", "acm012918jsd", "acm012929jsd", "acm012947jsd", "acm012972jsd", "acm012992jsd", "acm013001jsd", "acm013010jsd", "acm013037jsd", "acm013057jsd", "acm013066jsd", "acm013081jsd", "acm013094jsd", "acm013107jsd", "acm013125jsd", "acm013135jsd", "acm013144jsd", "acm013153jsd", "acm013162jsd", "acm013180jsd", "acm013190jsd", "acm013203jsd", "acm013212jsd", "acm013221jsd", "acm013230jsd", "acm013239jsd", "acm013248jsd", "acm013254jsd", "acm013263jsd", "acm013273jsd", "acm013282jsd", "acm013296jsd", "acm013310jsd", "acm013319jsd", "acm013328jsd", "acm013337jsd", "acm013346jsd", "acm013355jsd", "acm013367jsd", "acm013383jsd", "acm013401jsd", "acm013420jsd", "acm013429jsd", "acm013438jsd", "acm013450jsd", "acm013465jsd", "acm013474jsd", "acm013483jsd", "acm013561jsd", "acm013570jsd", "acm013581jsd", "acm013600jsd", "acm013629jsd", "acm013647jsd", "acm013656jsd", "acm013672jsd", "acm013682jsd", "acm013694jsd" ] + }, + "acm009427jsd" : { + "type" : "ControlElement", + "id" : "acm009427jsd", + "name" : "execute" + }, + "acm009428jsd" : { + "type" : "ClassUnit", + "id" : "acm009428jsd", + "name" : "AccountRequestSearchIndexingWorkerAction", + "compilationUnitId" : "acm009423jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006197jsd", "acm009483jsd", "acm010167jsd" ], + "content" : [ "acm009427jsd" ] + }, + "acm009429jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009429jsd", + "name" : "Action", + "parentId" : "acm009426jsd", + "content" : [ "acm009459jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009430jsd" : { + "type" : "CodePackage", + "id" : "acm009430jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009431jsd" ] + }, + "acm009431jsd" : { + "type" : "CodePackage", + "id" : "acm009431jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009432jsd" ] + }, + "acm009432jsd" : { + "type" : "CodePackage", + "id" : "acm009432jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009429jsd" ] + }, + "acm009433jsd" : { + "type" : "ControlElement", + "id" : "acm009433jsd", + "name" : "init" + }, + "acm009434jsd" : { + "type" : "ControlElement", + "id" : "acm009434jsd", + "name" : "setUserProvision" + }, + "acm009435jsd" : { + "type" : "ControlElement", + "id" : "acm009435jsd", + "name" : "setTaskQueuer" + }, + "acm009436jsd" : { + "type" : "ControlElement", + "id" : "acm009436jsd", + "name" : "setEmailSender" + }, + "acm009437jsd" : { + "type" : "ControlElement", + "id" : "acm009437jsd", + "name" : "setRecaptchaVerifier" + }, + "acm009438jsd" : { + "type" : "ControlElement", + "id" : "acm009438jsd", + "name" : "setLogsProcessor" + }, + "acm009439jsd" : { + "type" : "ControlElement", + "id" : "acm009439jsd", + "name" : "setAuthProxy" + }, + "acm009440jsd" : { + "type" : "ControlElement", + "id" : "acm009440jsd", + "name" : "checkAccessControl" + }, + "acm009441jsd" : { + "type" : "ControlElement", + "id" : "acm009441jsd", + "name" : "getUserInfoForLogging" + }, + "acm009442jsd" : { + "type" : "ControlElement", + "id" : "acm009442jsd", + "name" : "initAuthInfo" + }, + "acm009443jsd" : { + "type" : "ControlElement", + "id" : "acm009443jsd", + "name" : "getRequestParamValue" + }, + "acm009444jsd" : { + "type" : "ControlElement", + "id" : "acm009444jsd", + "name" : "getNonNullRequestParamValue" + }, + "acm009445jsd" : { + "type" : "ControlElement", + "id" : "acm009445jsd", + "name" : "getBooleanRequestParamValue" + }, + "acm009446jsd" : { + "type" : "ControlElement", + "id" : "acm009446jsd", + "name" : "getLongRequestParamValue" + }, + "acm009447jsd" : { + "type" : "ControlElement", + "id" : "acm009447jsd", + "name" : "getRequestBody" + }, + "acm009448jsd" : { + "type" : "ControlElement", + "id" : "acm009448jsd", + "name" : "hasDefinedRequestBody" + }, + "acm009449jsd" : { + "type" : "ControlElement", + "id" : "acm009449jsd", + "name" : "getNonNullFeedbackSession" + }, + "acm009450jsd" : { + "type" : "ControlElement", + "id" : "acm009450jsd", + "name" : "getAndValidateRequestBody" + }, + "acm009451jsd" : { + "type" : "ControlElement", + "id" : "acm009451jsd", + "name" : "getUnregisteredStudent" + }, + "acm009452jsd" : { + "type" : "ControlElement", + "id" : "acm009452jsd", + "name" : "getUnregisteredInstructor" + }, + "acm009453jsd" : { + "type" : "ControlElement", + "id" : "acm009453jsd", + "name" : "getPossiblyUnregisteredInstructor" + }, + "acm009454jsd" : { + "type" : "ControlElement", + "id" : "acm009454jsd", + "name" : "getPossiblyUnregisteredStudent" + }, + "acm009455jsd" : { + "type" : "ControlElement", + "id" : "acm009455jsd", + "name" : "constructInstructorPrivileges" + }, + "acm009456jsd" : { + "type" : "ControlElement", + "id" : "acm009456jsd", + "name" : "getMinAuthLevel" + }, + "acm009457jsd" : { + "type" : "ControlElement", + "id" : "acm009457jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009458jsd" : { + "type" : "ControlElement", + "id" : "acm009458jsd", + "name" : "execute" + }, + "acm009459jsd" : { + "type" : "ClassUnit", + "id" : "acm009459jsd", + "name" : "Action", + "compilationUnitId" : "acm009429jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004432jsd", "acm004446jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005714jsd", "acm006568jsd", "acm006624jsd", "acm006633jsd", "acm006767jsd", "acm006778jsd", "acm006786jsd", "acm006807jsd", "acm006818jsd", "acm009008jsd", "acm009228jsd", "acm009483jsd", "acm009513jsd", "acm009748jsd", "acm009831jsd", "acm010134jsd", "acm010144jsd", "acm010353jsd" ], + "content" : [ "acm009433jsd", "acm009434jsd", "acm009435jsd", "acm009436jsd", "acm009437jsd", "acm009438jsd", "acm009439jsd", "acm009440jsd", "acm009441jsd", "acm009442jsd", "acm009443jsd", "acm009444jsd", "acm009445jsd", "acm009446jsd", "acm009447jsd", "acm009448jsd", "acm009449jsd", "acm009450jsd", "acm009451jsd", "acm009452jsd", "acm009453jsd", "acm009454jsd", "acm009455jsd", "acm009456jsd", "acm009457jsd", "acm009458jsd" ] + }, + "acm009460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009460jsd", + "name" : "ActionFactory", + "parentId" : "acm009426jsd", + "content" : [ "acm009468jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009461jsd" : { + "type" : "CodePackage", + "id" : "acm009461jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009462jsd" ] + }, + "acm009462jsd" : { + "type" : "CodePackage", + "id" : "acm009462jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009463jsd" ] + }, + "acm009463jsd" : { + "type" : "CodePackage", + "id" : "acm009463jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009460jsd" ] + }, + "acm009464jsd" : { + "type" : "ControlElement", + "id" : "acm009464jsd", + "name" : "ActionFactory" + }, + "acm009465jsd" : { + "type" : "ControlElement", + "id" : "acm009465jsd", + "name" : "map" + }, + "acm009466jsd" : { + "type" : "ControlElement", + "id" : "acm009466jsd", + "name" : "getAction" + }, + "acm009467jsd" : { + "type" : "ControlElement", + "id" : "acm009467jsd", + "name" : "getAction" + }, + "acm009468jsd" : { + "type" : "ClassUnit", + "id" : "acm009468jsd", + "name" : "ActionFactory", + "compilationUnitId" : "acm009460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009428jsd", "acm009459jsd", "acm009475jsd", "acm009491jsd", "acm009506jsd", "acm009548jsd", "acm009556jsd", "acm009562jsd", "acm009568jsd", "acm009582jsd", "acm009588jsd", "acm009596jsd", "acm009604jsd", "acm009612jsd", "acm009621jsd", "acm009629jsd", "acm009638jsd", "acm009644jsd", "acm009650jsd", "acm009656jsd", "acm009662jsd", "acm009670jsd", "acm009678jsd", "acm009686jsd", "acm009694jsd", "acm009702jsd", "acm009711jsd", "acm009717jsd", "acm009725jsd", "acm009733jsd", "acm009741jsd", "acm009754jsd", "acm009762jsd", "acm009768jsd", "acm009774jsd", "acm009780jsd", "acm009786jsd", "acm009792jsd", "acm009798jsd", "acm009804jsd", "acm009810jsd", "acm009837jsd", "acm009843jsd", "acm009849jsd", "acm009855jsd", "acm009863jsd", "acm009872jsd", "acm009880jsd", "acm009891jsd", "acm009899jsd", "acm009911jsd", "acm009919jsd", "acm009927jsd", "acm009935jsd", "acm009943jsd", "acm009951jsd", "acm009961jsd", "acm009970jsd", "acm009978jsd", "acm009986jsd", "acm009995jsd", "acm010003jsd", "acm010011jsd", "acm010019jsd", "acm010025jsd", "acm010033jsd", "acm010040jsd", "acm010048jsd", "acm010056jsd", "acm010064jsd", "acm010072jsd", "acm010080jsd", "acm010088jsd", "acm010096jsd", "acm010104jsd", "acm010112jsd", "acm010118jsd", "acm010124jsd", "acm010155jsd", "acm010175jsd", "acm010183jsd", "acm010191jsd", "acm010199jsd", "acm010208jsd", "acm010215jsd", "acm010222jsd", "acm010230jsd", "acm010238jsd", "acm010244jsd", "acm010250jsd", "acm010258jsd", "acm010266jsd", "acm010272jsd", "acm010278jsd", "acm010286jsd", "acm010292jsd", "acm010301jsd", "acm010309jsd", "acm010317jsd", "acm010325jsd", "acm010331jsd", "acm010337jsd", "acm010345jsd", "acm010361jsd", "acm010369jsd", "acm010377jsd", "acm010385jsd", "acm010394jsd", "acm010403jsd", "acm010411jsd", "acm010417jsd", "acm010426jsd" ], + "content" : [ "acm009464jsd", "acm009465jsd", "acm009466jsd", "acm009467jsd" ] + }, + "acm009469jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009469jsd", + "name" : "ActionMappingException", + "parentId" : "acm009426jsd", + "content" : [ "acm009475jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009470jsd" : { + "type" : "CodePackage", + "id" : "acm009470jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009471jsd" ] + }, + "acm009471jsd" : { + "type" : "CodePackage", + "id" : "acm009471jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009472jsd" ] + }, + "acm009472jsd" : { + "type" : "CodePackage", + "id" : "acm009472jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009469jsd" ] + }, + "acm009473jsd" : { + "type" : "ControlElement", + "id" : "acm009473jsd", + "name" : "ActionMappingException" + }, + "acm009474jsd" : { + "type" : "ControlElement", + "id" : "acm009474jsd", + "name" : "getStatusCode" + }, + "acm009475jsd" : { + "type" : "ClassUnit", + "id" : "acm009475jsd", + "name" : "ActionMappingException", + "compilationUnitId" : "acm009469jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009473jsd", "acm009474jsd" ] + }, + "acm009476jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009476jsd", + "name" : "ActionResult", + "parentId" : "acm009426jsd", + "content" : [ "acm009483jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009477jsd" : { + "type" : "CodePackage", + "id" : "acm009477jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009478jsd" ] + }, + "acm009478jsd" : { + "type" : "CodePackage", + "id" : "acm009478jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009479jsd" ] + }, + "acm009479jsd" : { + "type" : "CodePackage", + "id" : "acm009479jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009476jsd" ] + }, + "acm009480jsd" : { + "type" : "ControlElement", + "id" : "acm009480jsd", + "name" : "ActionResult" + }, + "acm009481jsd" : { + "type" : "ControlElement", + "id" : "acm009481jsd", + "name" : "send" + }, + "acm009482jsd" : { + "type" : "ControlElement", + "id" : "acm009482jsd", + "name" : "getStatusCode" + }, + "acm009483jsd" : { + "type" : "ClassUnit", + "id" : "acm009483jsd", + "name" : "ActionResult", + "compilationUnitId" : "acm009476jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009480jsd", "acm009481jsd", "acm009482jsd" ] + }, + "acm009484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009484jsd", + "name" : "AdminExceptionTestAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009491jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009485jsd" : { + "type" : "CodePackage", + "id" : "acm009485jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009486jsd" ] + }, + "acm009486jsd" : { + "type" : "CodePackage", + "id" : "acm009486jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009487jsd" ] + }, + "acm009487jsd" : { + "type" : "CodePackage", + "id" : "acm009487jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009484jsd" ] + }, + "acm009488jsd" : { + "type" : "ControlElement", + "id" : "acm009488jsd", + "name" : "getMinAuthLevel" + }, + "acm009489jsd" : { + "type" : "ControlElement", + "id" : "acm009489jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009490jsd" : { + "type" : "ControlElement", + "id" : "acm009490jsd", + "name" : "execute" + }, + "acm009491jsd" : { + "type" : "ClassUnit", + "id" : "acm009491jsd", + "name" : "AdminExceptionTestAction", + "compilationUnitId" : "acm009484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006143jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009488jsd", "acm009489jsd", "acm009490jsd" ] + }, + "acm009492jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009492jsd", + "name" : "AdminOnlyAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009498jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009493jsd" : { + "type" : "CodePackage", + "id" : "acm009493jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009494jsd" ] + }, + "acm009494jsd" : { + "type" : "CodePackage", + "id" : "acm009494jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009495jsd" ] + }, + "acm009495jsd" : { + "type" : "CodePackage", + "id" : "acm009495jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009492jsd" ] + }, + "acm009496jsd" : { + "type" : "ControlElement", + "id" : "acm009496jsd", + "name" : "getMinAuthLevel" + }, + "acm009497jsd" : { + "type" : "ControlElement", + "id" : "acm009497jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009498jsd" : { + "type" : "ClassUnit", + "id" : "acm009498jsd", + "name" : "AdminOnlyAction", + "compilationUnitId" : "acm009492jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009513jsd", "acm010353jsd" ], + "content" : [ "acm009496jsd", "acm009497jsd" ] + }, + "acm009499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009499jsd", + "name" : "ArchiveCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009506jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009500jsd" : { + "type" : "CodePackage", + "id" : "acm009500jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009501jsd" ] + }, + "acm009501jsd" : { + "type" : "CodePackage", + "id" : "acm009501jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009502jsd" ] + }, + "acm009502jsd" : { + "type" : "CodePackage", + "id" : "acm009502jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009499jsd" ] + }, + "acm009503jsd" : { + "type" : "ControlElement", + "id" : "acm009503jsd", + "name" : "getMinAuthLevel" + }, + "acm009504jsd" : { + "type" : "ControlElement", + "id" : "acm009504jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009505jsd" : { + "type" : "ControlElement", + "id" : "acm009505jsd", + "name" : "execute" + }, + "acm009506jsd" : { + "type" : "ClassUnit", + "id" : "acm009506jsd", + "name" : "ArchiveCourseAction", + "compilationUnitId" : "acm009499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm008312jsd", "acm009016jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009503jsd", "acm009504jsd", "acm009505jsd" ] + }, + "acm009507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009507jsd", + "name" : "AuthType", + "parentId" : "acm009426jsd", + "content" : [ "acm009513jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009508jsd" : { + "type" : "CodePackage", + "id" : "acm009508jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009509jsd" ] + }, + "acm009509jsd" : { + "type" : "CodePackage", + "id" : "acm009509jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009510jsd" ] + }, + "acm009510jsd" : { + "type" : "CodePackage", + "id" : "acm009510jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009507jsd" ] + }, + "acm009511jsd" : { + "type" : "ControlElement", + "id" : "acm009511jsd", + "name" : "AuthType" + }, + "acm009512jsd" : { + "type" : "ControlElement", + "id" : "acm009512jsd", + "name" : "getLevel" + }, + "acm009513jsd" : { + "type" : "ClassUnit", + "id" : "acm009513jsd", + "name" : "AuthType", + "compilationUnitId" : "acm009507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm009511jsd", "acm009512jsd" ] + }, + "acm009514jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009514jsd", + "name" : "BasicCommentSubmissionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009522jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009515jsd" : { + "type" : "CodePackage", + "id" : "acm009515jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009516jsd" ] + }, + "acm009516jsd" : { + "type" : "CodePackage", + "id" : "acm009516jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009517jsd" ] + }, + "acm009517jsd" : { + "type" : "CodePackage", + "id" : "acm009517jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009514jsd" ] + }, + "acm009518jsd" : { + "type" : "ControlElement", + "id" : "acm009518jsd", + "name" : "validQuestionForCommentInSubmission" + }, + "acm009519jsd" : { + "type" : "ControlElement", + "id" : "acm009519jsd", + "name" : "verifyCommentNotExist" + }, + "acm009520jsd" : { + "type" : "ControlElement", + "id" : "acm009520jsd", + "name" : "verifyResponseOwnerShipForStudent" + }, + "acm009521jsd" : { + "type" : "ControlElement", + "id" : "acm009521jsd", + "name" : "verifyResponseOwnerShipForInstructor" + }, + "acm009522jsd" : { + "type" : "ClassUnit", + "id" : "acm009522jsd", + "name" : "BasicCommentSubmissionAction", + "compilationUnitId" : "acm009514jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005233jsd", "acm005412jsd", "acm010134jsd", "acm010144jsd", "acm010353jsd" ], + "content" : [ "acm009518jsd", "acm009519jsd", "acm009520jsd", "acm009521jsd" ] + }, + "acm009523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009523jsd", + "name" : "BasicFeedbackSubmissionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009540jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009524jsd" : { + "type" : "CodePackage", + "id" : "acm009524jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009525jsd" ] + }, + "acm009525jsd" : { + "type" : "CodePackage", + "id" : "acm009525jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009526jsd" ] + }, + "acm009526jsd" : { + "type" : "CodePackage", + "id" : "acm009526jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009523jsd" ] + }, + "acm009527jsd" : { + "type" : "ControlElement", + "id" : "acm009527jsd", + "name" : "canInstructorSeeQuestion" + }, + "acm009528jsd" : { + "type" : "ControlElement", + "id" : "acm009528jsd", + "name" : "verifyInstructorCanSeeQuestionIfInModeration" + }, + "acm009529jsd" : { + "type" : "ControlElement", + "id" : "acm009529jsd", + "name" : "getStudentOfCourseFromRequest" + }, + "acm009530jsd" : { + "type" : "ControlElement", + "id" : "acm009530jsd", + "name" : "checkAccessControlForStudentFeedbackSubmission" + }, + "acm009531jsd" : { + "type" : "ControlElement", + "id" : "acm009531jsd", + "name" : "checkAccessControlForStudentFeedbackResult" + }, + "acm009532jsd" : { + "type" : "ControlElement", + "id" : "acm009532jsd", + "name" : "getInstructorOfCourseFromRequest" + }, + "acm009533jsd" : { + "type" : "ControlElement", + "id" : "acm009533jsd", + "name" : "checkAccessControlForInstructorFeedbackSubmission" + }, + "acm009534jsd" : { + "type" : "ControlElement", + "id" : "acm009534jsd", + "name" : "checkAccessControlForInstructorFeedbackResult" + }, + "acm009535jsd" : { + "type" : "ControlElement", + "id" : "acm009535jsd", + "name" : "verifyMatchingGoogleId" + }, + "acm009536jsd" : { + "type" : "ControlElement", + "id" : "acm009536jsd", + "name" : "checkAccessControlForPreview" + }, + "acm009537jsd" : { + "type" : "ControlElement", + "id" : "acm009537jsd", + "name" : "verifyNotPreview" + }, + "acm009538jsd" : { + "type" : "ControlElement", + "id" : "acm009538jsd", + "name" : "verifySessionOpenExceptForModeration" + }, + "acm009539jsd" : { + "type" : "ControlElement", + "id" : "acm009539jsd", + "name" : "getRecipientSection" + }, + "acm009540jsd" : { + "type" : "ClassUnit", + "id" : "acm009540jsd", + "name" : "BasicFeedbackSubmissionAction", + "compilationUnitId" : "acm009523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm010353jsd" ], + "content" : [ "acm009527jsd", "acm009528jsd", "acm009529jsd", "acm009530jsd", "acm009531jsd", "acm009532jsd", "acm009533jsd", "acm009534jsd", "acm009535jsd", "acm009536jsd", "acm009537jsd", "acm009538jsd", "acm009539jsd" ] + }, + "acm009541jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009541jsd", + "name" : "BinCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009548jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009542jsd" : { + "type" : "CodePackage", + "id" : "acm009542jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009543jsd" ] + }, + "acm009543jsd" : { + "type" : "CodePackage", + "id" : "acm009543jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009544jsd" ] + }, + "acm009544jsd" : { + "type" : "CodePackage", + "id" : "acm009544jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009541jsd" ] + }, + "acm009545jsd" : { + "type" : "ControlElement", + "id" : "acm009545jsd", + "name" : "getMinAuthLevel" + }, + "acm009546jsd" : { + "type" : "ControlElement", + "id" : "acm009546jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009547jsd" : { + "type" : "ControlElement", + "id" : "acm009547jsd", + "name" : "execute" + }, + "acm009548jsd" : { + "type" : "ClassUnit", + "id" : "acm009548jsd", + "name" : "BinCourseAction", + "compilationUnitId" : "acm009541jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm006168jsd", "acm008329jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009545jsd", "acm009546jsd", "acm009547jsd" ] + }, + "acm009549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009549jsd", + "name" : "BinFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009556jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009550jsd" : { + "type" : "CodePackage", + "id" : "acm009550jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009551jsd" ] + }, + "acm009551jsd" : { + "type" : "CodePackage", + "id" : "acm009551jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009552jsd" ] + }, + "acm009552jsd" : { + "type" : "CodePackage", + "id" : "acm009552jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009549jsd" ] + }, + "acm009553jsd" : { + "type" : "ControlElement", + "id" : "acm009553jsd", + "name" : "getMinAuthLevel" + }, + "acm009554jsd" : { + "type" : "ControlElement", + "id" : "acm009554jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009555jsd" : { + "type" : "ControlElement", + "id" : "acm009555jsd", + "name" : "execute" + }, + "acm009556jsd" : { + "type" : "ClassUnit", + "id" : "acm009556jsd", + "name" : "BinFeedbackSessionAction", + "compilationUnitId" : "acm009549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006168jsd", "acm008518jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009553jsd", "acm009554jsd", "acm009555jsd" ] + }, + "acm009557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009557jsd", + "name" : "CalculateUsageStatisticsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009562jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009558jsd" : { + "type" : "CodePackage", + "id" : "acm009558jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009559jsd" ] + }, + "acm009559jsd" : { + "type" : "CodePackage", + "id" : "acm009559jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009560jsd" ] + }, + "acm009560jsd" : { + "type" : "CodePackage", + "id" : "acm009560jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009557jsd" ] + }, + "acm009561jsd" : { + "type" : "ControlElement", + "id" : "acm009561jsd", + "name" : "execute" + }, + "acm009562jsd" : { + "type" : "ClassUnit", + "id" : "acm009562jsd", + "name" : "CalculateUsageStatisticsAction", + "compilationUnitId" : "acm009557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm006162jsd", "acm006188jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009561jsd" ] + }, + "acm009563jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009563jsd", + "name" : "CompileLogsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009568jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009564jsd" : { + "type" : "CodePackage", + "id" : "acm009564jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009565jsd" ] + }, + "acm009565jsd" : { + "type" : "CodePackage", + "id" : "acm009565jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009566jsd" ] + }, + "acm009566jsd" : { + "type" : "CodePackage", + "id" : "acm009566jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009563jsd" ] + }, + "acm009567jsd" : { + "type" : "ControlElement", + "id" : "acm009567jsd", + "name" : "execute" + }, + "acm009568jsd" : { + "type" : "ClassUnit", + "id" : "acm009568jsd", + "name" : "CompileLogsAction", + "compilationUnitId" : "acm009563jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004215jsd", "acm005572jsd", "acm005651jsd", "acm006290jsd", "acm010167jsd" ], + "content" : [ "acm009567jsd" ] + }, + "acm009569jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009569jsd", + "name" : "CreateAccountAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009582jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009570jsd" : { + "type" : "CodePackage", + "id" : "acm009570jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009571jsd" ] + }, + "acm009571jsd" : { + "type" : "CodePackage", + "id" : "acm009571jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009572jsd" ] + }, + "acm009572jsd" : { + "type" : "CodePackage", + "id" : "acm009572jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009569jsd" ] + }, + "acm009573jsd" : { + "type" : "ControlElement", + "id" : "acm009573jsd", + "name" : "getMinAuthLevel" + }, + "acm009574jsd" : { + "type" : "ControlElement", + "id" : "acm009574jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009575jsd" : { + "type" : "ControlElement", + "id" : "acm009575jsd", + "name" : "execute" + }, + "acm009576jsd" : { + "type" : "ControlElement", + "id" : "acm009576jsd", + "name" : "getDateString" + }, + "acm009577jsd" : { + "type" : "ControlElement", + "id" : "acm009577jsd", + "name" : "importDemoData" + }, + "acm009578jsd" : { + "type" : "ControlElement", + "id" : "acm009578jsd", + "name" : "generateDemoCourseId" + }, + "acm009579jsd" : { + "type" : "ControlElement", + "id" : "acm009579jsd", + "name" : "getDemoCourseIdRoot" + }, + "acm009580jsd" : { + "type" : "ControlElement", + "id" : "acm009580jsd", + "name" : "generateNextDemoCourseId" + }, + "acm009581jsd" : { + "type" : "ControlElement", + "id" : "acm009581jsd", + "name" : "replaceAdjustedTimeAndTimezone" + }, + "acm009582jsd" : { + "type" : "ClassUnit", + "id" : "acm009582jsd", + "name" : "CreateAccountAction", + "compilationUnitId" : "acm009569jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004539jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm009573jsd", "acm009574jsd", "acm009575jsd", "acm009576jsd", "acm009577jsd", "acm009578jsd", "acm009579jsd", "acm009580jsd", "acm009581jsd" ] + }, + "acm009583jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009583jsd", + "name" : "CreateAccountRequestAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009588jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009584jsd" : { + "type" : "CodePackage", + "id" : "acm009584jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009585jsd" ] + }, + "acm009585jsd" : { + "type" : "CodePackage", + "id" : "acm009585jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009586jsd" ] + }, + "acm009586jsd" : { + "type" : "CodePackage", + "id" : "acm009586jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009583jsd" ] + }, + "acm009587jsd" : { + "type" : "ControlElement", + "id" : "acm009587jsd", + "name" : "execute" + }, + "acm009588jsd" : { + "type" : "ClassUnit", + "id" : "acm009588jsd", + "name" : "CreateAccountRequestAction", + "compilationUnitId" : "acm009583jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006162jsd", "acm006188jsd", "acm006290jsd", "acm008651jsd", "acm009001jsd", "acm009228jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm009587jsd" ] + }, + "acm009589jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009589jsd", + "name" : "CreateCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009596jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009590jsd" : { + "type" : "CodePackage", + "id" : "acm009590jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009591jsd" ] + }, + "acm009591jsd" : { + "type" : "CodePackage", + "id" : "acm009591jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009592jsd" ] + }, + "acm009592jsd" : { + "type" : "CodePackage", + "id" : "acm009592jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009589jsd" ] + }, + "acm009593jsd" : { + "type" : "ControlElement", + "id" : "acm009593jsd", + "name" : "getMinAuthLevel" + }, + "acm009594jsd" : { + "type" : "ControlElement", + "id" : "acm009594jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009595jsd" : { + "type" : "ControlElement", + "id" : "acm009595jsd", + "name" : "execute" + }, + "acm009596jsd" : { + "type" : "ClassUnit", + "id" : "acm009596jsd", + "name" : "CreateCourseAction", + "compilationUnitId" : "acm009589jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm006162jsd", "acm006188jsd", "acm008329jsd", "acm009034jsd", "acm009228jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009593jsd", "acm009594jsd", "acm009595jsd" ] + }, + "acm009597jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009597jsd", + "name" : "CreateFeedbackQuestionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009604jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009598jsd" : { + "type" : "CodePackage", + "id" : "acm009598jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009599jsd" ] + }, + "acm009599jsd" : { + "type" : "CodePackage", + "id" : "acm009599jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009600jsd" ] + }, + "acm009600jsd" : { + "type" : "CodePackage", + "id" : "acm009600jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009597jsd" ] + }, + "acm009601jsd" : { + "type" : "ControlElement", + "id" : "acm009601jsd", + "name" : "getMinAuthLevel" + }, + "acm009602jsd" : { + "type" : "ControlElement", + "id" : "acm009602jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009603jsd" : { + "type" : "ControlElement", + "id" : "acm009603jsd", + "name" : "execute" + }, + "acm009604jsd" : { + "type" : "ClassUnit", + "id" : "acm009604jsd", + "name" : "CreateFeedbackQuestionAction", + "compilationUnitId" : "acm009597jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005233jsd", "acm005977jsd", "acm006188jsd", "acm008407jsd", "acm009082jsd", "acm009228jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009601jsd", "acm009602jsd", "acm009603jsd" ] + }, + "acm009605jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009605jsd", + "name" : "CreateFeedbackResponseCommentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009612jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009606jsd" : { + "type" : "CodePackage", + "id" : "acm009606jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009607jsd" ] + }, + "acm009607jsd" : { + "type" : "CodePackage", + "id" : "acm009607jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009608jsd" ] + }, + "acm009608jsd" : { + "type" : "CodePackage", + "id" : "acm009608jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009605jsd" ] + }, + "acm009609jsd" : { + "type" : "ControlElement", + "id" : "acm009609jsd", + "name" : "getMinAuthLevel" + }, + "acm009610jsd" : { + "type" : "ControlElement", + "id" : "acm009610jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009611jsd" : { + "type" : "ControlElement", + "id" : "acm009611jsd", + "name" : "execute" + }, + "acm009612jsd" : { + "type" : "ClassUnit", + "id" : "acm009612jsd", + "name" : "CreateFeedbackResponseCommentAction", + "compilationUnitId" : "acm009605jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009522jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm008449jsd", "acm009104jsd", "acm009221jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009609jsd", "acm009610jsd", "acm009611jsd" ] + }, + "acm009613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009613jsd", + "name" : "CreateFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009621jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009614jsd" : { + "type" : "CodePackage", + "id" : "acm009614jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009615jsd" ] + }, + "acm009615jsd" : { + "type" : "CodePackage", + "id" : "acm009615jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009616jsd" ] + }, + "acm009616jsd" : { + "type" : "CodePackage", + "id" : "acm009616jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009613jsd" ] + }, + "acm009617jsd" : { + "type" : "ControlElement", + "id" : "acm009617jsd", + "name" : "getMinAuthLevel" + }, + "acm009618jsd" : { + "type" : "ControlElement", + "id" : "acm009618jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009619jsd" : { + "type" : "ControlElement", + "id" : "acm009619jsd", + "name" : "execute" + }, + "acm009620jsd" : { + "type" : "ControlElement", + "id" : "acm009620jsd", + "name" : "createFeedbackQuestions" + }, + "acm009621jsd" : { + "type" : "ClassUnit", + "id" : "acm009621jsd", + "name" : "CreateFeedbackSessionAction", + "compilationUnitId" : "acm009613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm006162jsd", "acm006188jsd", "acm006435jsd", "acm008518jsd", "acm009164jsd", "acm009228jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009617jsd", "acm009618jsd", "acm009619jsd", "acm009620jsd" ] + }, + "acm009622jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009622jsd", + "name" : "CreateFeedbackSessionLogAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009629jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009623jsd" : { + "type" : "CodePackage", + "id" : "acm009623jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009624jsd" ] + }, + "acm009624jsd" : { + "type" : "CodePackage", + "id" : "acm009624jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009625jsd" ] + }, + "acm009625jsd" : { + "type" : "CodePackage", + "id" : "acm009625jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009622jsd" ] + }, + "acm009626jsd" : { + "type" : "ControlElement", + "id" : "acm009626jsd", + "name" : "getMinAuthLevel" + }, + "acm009627jsd" : { + "type" : "ControlElement", + "id" : "acm009627jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009628jsd" : { + "type" : "ControlElement", + "id" : "acm009628jsd", + "name" : "execute" + }, + "acm009629jsd" : { + "type" : "ClassUnit", + "id" : "acm009629jsd", + "name" : "CreateFeedbackSessionLogAction", + "compilationUnitId" : "acm009622jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005546jsd", "acm005555jsd", "acm006435jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm009626jsd", "acm009627jsd", "acm009628jsd" ] + }, + "acm009630jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009630jsd", + "name" : "CreateInstructorAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009638jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009631jsd" : { + "type" : "CodePackage", + "id" : "acm009631jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009632jsd" ] + }, + "acm009632jsd" : { + "type" : "CodePackage", + "id" : "acm009632jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009633jsd" ] + }, + "acm009633jsd" : { + "type" : "CodePackage", + "id" : "acm009633jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009630jsd" ] + }, + "acm009634jsd" : { + "type" : "ControlElement", + "id" : "acm009634jsd", + "name" : "getMinAuthLevel" + }, + "acm009635jsd" : { + "type" : "ControlElement", + "id" : "acm009635jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009636jsd" : { + "type" : "ControlElement", + "id" : "acm009636jsd", + "name" : "execute" + }, + "acm009637jsd" : { + "type" : "ControlElement", + "id" : "acm009637jsd", + "name" : "createInstructorWithBasicAttributes" + }, + "acm009638jsd" : { + "type" : "ClassUnit", + "id" : "acm009638jsd", + "name" : "CreateInstructorAction", + "compilationUnitId" : "acm009630jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm005233jsd", "acm006162jsd", "acm006188jsd", "acm008620jsd", "acm009208jsd", "acm009228jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009634jsd", "acm009635jsd", "acm009636jsd", "acm009637jsd" ] + }, + "acm009639jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009639jsd", + "name" : "CreateNotificationAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009644jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009640jsd" : { + "type" : "CodePackage", + "id" : "acm009640jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009641jsd" ] + }, + "acm009641jsd" : { + "type" : "CodePackage", + "id" : "acm009641jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009642jsd" ] + }, + "acm009642jsd" : { + "type" : "CodePackage", + "id" : "acm009642jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009639jsd" ] + }, + "acm009643jsd" : { + "type" : "ControlElement", + "id" : "acm009643jsd", + "name" : "execute" + }, + "acm009644jsd" : { + "type" : "ClassUnit", + "id" : "acm009644jsd", + "name" : "CreateNotificationAction", + "compilationUnitId" : "acm009639jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm006162jsd", "acm006188jsd", "acm006435jsd", "acm008685jsd", "acm009228jsd", "acm009260jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm009643jsd" ] + }, + "acm009645jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009645jsd", + "name" : "DatastoreBackupAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009650jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009646jsd" : { + "type" : "CodePackage", + "id" : "acm009646jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009647jsd" ] + }, + "acm009647jsd" : { + "type" : "CodePackage", + "id" : "acm009647jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009648jsd" ] + }, + "acm009648jsd" : { + "type" : "CodePackage", + "id" : "acm009648jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009645jsd" ] + }, + "acm009649jsd" : { + "type" : "ControlElement", + "id" : "acm009649jsd", + "name" : "execute" + }, + "acm009650jsd" : { + "type" : "ClassUnit", + "id" : "acm009650jsd", + "name" : "DatastoreBackupAction", + "compilationUnitId" : "acm009645jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009649jsd" ] + }, + "acm009651jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009651jsd", + "name" : "DeleteAccountAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009656jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009652jsd" : { + "type" : "CodePackage", + "id" : "acm009652jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009653jsd" ] + }, + "acm009653jsd" : { + "type" : "CodePackage", + "id" : "acm009653jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009654jsd" ] + }, + "acm009654jsd" : { + "type" : "CodePackage", + "id" : "acm009654jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009651jsd" ] + }, + "acm009655jsd" : { + "type" : "ControlElement", + "id" : "acm009655jsd", + "name" : "execute" + }, + "acm009656jsd" : { + "type" : "ClassUnit", + "id" : "acm009656jsd", + "name" : "DeleteAccountAction", + "compilationUnitId" : "acm009651jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010167jsd" ], + "content" : [ "acm009655jsd" ] + }, + "acm009657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009657jsd", + "name" : "DeleteAccountRequestAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009662jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009658jsd" : { + "type" : "CodePackage", + "id" : "acm009658jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009659jsd" ] + }, + "acm009659jsd" : { + "type" : "CodePackage", + "id" : "acm009659jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009660jsd" ] + }, + "acm009660jsd" : { + "type" : "CodePackage", + "id" : "acm009660jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009657jsd" ] + }, + "acm009661jsd" : { + "type" : "ControlElement", + "id" : "acm009661jsd", + "name" : "execute" + }, + "acm009662jsd" : { + "type" : "ClassUnit", + "id" : "acm009662jsd", + "name" : "DeleteAccountRequestAction", + "compilationUnitId" : "acm009657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm009661jsd" ] + }, + "acm009663jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009663jsd", + "name" : "DeleteCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009670jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009664jsd" : { + "type" : "CodePackage", + "id" : "acm009664jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009665jsd" ] + }, + "acm009665jsd" : { + "type" : "CodePackage", + "id" : "acm009665jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009666jsd" ] + }, + "acm009666jsd" : { + "type" : "CodePackage", + "id" : "acm009666jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009663jsd" ] + }, + "acm009667jsd" : { + "type" : "ControlElement", + "id" : "acm009667jsd", + "name" : "getMinAuthLevel" + }, + "acm009668jsd" : { + "type" : "ControlElement", + "id" : "acm009668jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009669jsd" : { + "type" : "ControlElement", + "id" : "acm009669jsd", + "name" : "execute" + }, + "acm009670jsd" : { + "type" : "ClassUnit", + "id" : "acm009670jsd", + "name" : "DeleteCourseAction", + "compilationUnitId" : "acm009663jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008670jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009667jsd", "acm009668jsd", "acm009669jsd" ] + }, + "acm009671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009671jsd", + "name" : "DeleteDataBundleAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009678jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009672jsd" : { + "type" : "CodePackage", + "id" : "acm009672jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009673jsd" ] + }, + "acm009673jsd" : { + "type" : "CodePackage", + "id" : "acm009673jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009674jsd" ] + }, + "acm009674jsd" : { + "type" : "CodePackage", + "id" : "acm009674jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009671jsd" ] + }, + "acm009675jsd" : { + "type" : "ControlElement", + "id" : "acm009675jsd", + "name" : "getMinAuthLevel" + }, + "acm009676jsd" : { + "type" : "ControlElement", + "id" : "acm009676jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009677jsd" : { + "type" : "ControlElement", + "id" : "acm009677jsd", + "name" : "execute" + }, + "acm009678jsd" : { + "type" : "ClassUnit", + "id" : "acm009678jsd", + "name" : "DeleteDataBundleAction", + "compilationUnitId" : "acm009671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009675jsd", "acm009676jsd", "acm009677jsd" ] + }, + "acm009679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009679jsd", + "name" : "DeleteFeedbackQuestionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009686jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009680jsd" : { + "type" : "CodePackage", + "id" : "acm009680jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009681jsd" ] + }, + "acm009681jsd" : { + "type" : "CodePackage", + "id" : "acm009681jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009682jsd" ] + }, + "acm009682jsd" : { + "type" : "CodePackage", + "id" : "acm009682jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009679jsd" ] + }, + "acm009683jsd" : { + "type" : "ControlElement", + "id" : "acm009683jsd", + "name" : "getMinAuthLevel" + }, + "acm009684jsd" : { + "type" : "ControlElement", + "id" : "acm009684jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009685jsd" : { + "type" : "ControlElement", + "id" : "acm009685jsd", + "name" : "execute" + }, + "acm009686jsd" : { + "type" : "ClassUnit", + "id" : "acm009686jsd", + "name" : "DeleteFeedbackQuestionAction", + "compilationUnitId" : "acm009679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009683jsd", "acm009684jsd", "acm009685jsd" ] + }, + "acm009687jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009687jsd", + "name" : "DeleteFeedbackResponseCommentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009694jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009688jsd" : { + "type" : "CodePackage", + "id" : "acm009688jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009689jsd" ] + }, + "acm009689jsd" : { + "type" : "CodePackage", + "id" : "acm009689jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009690jsd" ] + }, + "acm009690jsd" : { + "type" : "CodePackage", + "id" : "acm009690jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009687jsd" ] + }, + "acm009691jsd" : { + "type" : "ControlElement", + "id" : "acm009691jsd", + "name" : "getMinAuthLevel" + }, + "acm009692jsd" : { + "type" : "ControlElement", + "id" : "acm009692jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009693jsd" : { + "type" : "ControlElement", + "id" : "acm009693jsd", + "name" : "execute" + }, + "acm009694jsd" : { + "type" : "ClassUnit", + "id" : "acm009694jsd", + "name" : "DeleteFeedbackResponseCommentAction", + "compilationUnitId" : "acm009687jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009522jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009221jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009691jsd", "acm009692jsd", "acm009693jsd" ] + }, + "acm009695jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009695jsd", + "name" : "DeleteFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009702jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009696jsd" : { + "type" : "CodePackage", + "id" : "acm009696jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009697jsd" ] + }, + "acm009697jsd" : { + "type" : "CodePackage", + "id" : "acm009697jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009698jsd" ] + }, + "acm009698jsd" : { + "type" : "CodePackage", + "id" : "acm009698jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009695jsd" ] + }, + "acm009699jsd" : { + "type" : "ControlElement", + "id" : "acm009699jsd", + "name" : "getMinAuthLevel" + }, + "acm009700jsd" : { + "type" : "ControlElement", + "id" : "acm009700jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009701jsd" : { + "type" : "ControlElement", + "id" : "acm009701jsd", + "name" : "execute" + }, + "acm009702jsd" : { + "type" : "ClassUnit", + "id" : "acm009702jsd", + "name" : "DeleteFeedbackSessionAction", + "compilationUnitId" : "acm009695jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009699jsd", "acm009700jsd", "acm009701jsd" ] + }, + "acm009703jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009703jsd", + "name" : "DeleteInstructorAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009711jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009704jsd" : { + "type" : "CodePackage", + "id" : "acm009704jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009705jsd" ] + }, + "acm009705jsd" : { + "type" : "CodePackage", + "id" : "acm009705jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009706jsd" ] + }, + "acm009706jsd" : { + "type" : "CodePackage", + "id" : "acm009706jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009703jsd" ] + }, + "acm009707jsd" : { + "type" : "ControlElement", + "id" : "acm009707jsd", + "name" : "getMinAuthLevel" + }, + "acm009708jsd" : { + "type" : "ControlElement", + "id" : "acm009708jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009709jsd" : { + "type" : "ControlElement", + "id" : "acm009709jsd", + "name" : "execute" + }, + "acm009710jsd" : { + "type" : "ControlElement", + "id" : "acm009710jsd", + "name" : "hasAlternativeInstructor" + }, + "acm009711jsd" : { + "type" : "ClassUnit", + "id" : "acm009711jsd", + "name" : "DeleteInstructorAction", + "compilationUnitId" : "acm009703jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm009513jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009707jsd", "acm009708jsd", "acm009709jsd", "acm009710jsd" ] + }, + "acm009712jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009712jsd", + "name" : "DeleteNotificationAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009717jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009713jsd" : { + "type" : "CodePackage", + "id" : "acm009713jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009714jsd" ] + }, + "acm009714jsd" : { + "type" : "CodePackage", + "id" : "acm009714jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009715jsd" ] + }, + "acm009715jsd" : { + "type" : "CodePackage", + "id" : "acm009715jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009712jsd" ] + }, + "acm009716jsd" : { + "type" : "ControlElement", + "id" : "acm009716jsd", + "name" : "execute" + }, + "acm009717jsd" : { + "type" : "ClassUnit", + "id" : "acm009717jsd", + "name" : "DeleteNotificationAction", + "compilationUnitId" : "acm009712jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010167jsd" ], + "content" : [ "acm009716jsd" ] + }, + "acm009718jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009718jsd", + "name" : "DeleteStudentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009725jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009719jsd" : { + "type" : "CodePackage", + "id" : "acm009719jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009720jsd" ] + }, + "acm009720jsd" : { + "type" : "CodePackage", + "id" : "acm009720jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009721jsd" ] + }, + "acm009721jsd" : { + "type" : "CodePackage", + "id" : "acm009721jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009718jsd" ] + }, + "acm009722jsd" : { + "type" : "ControlElement", + "id" : "acm009722jsd", + "name" : "getMinAuthLevel" + }, + "acm009723jsd" : { + "type" : "ControlElement", + "id" : "acm009723jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009724jsd" : { + "type" : "ControlElement", + "id" : "acm009724jsd", + "name" : "execute" + }, + "acm009725jsd" : { + "type" : "ClassUnit", + "id" : "acm009725jsd", + "name" : "DeleteStudentAction", + "compilationUnitId" : "acm009718jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009722jsd", "acm009723jsd", "acm009724jsd" ] + }, + "acm009726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009726jsd", + "name" : "DeleteStudentsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009733jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009727jsd" : { + "type" : "CodePackage", + "id" : "acm009727jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009728jsd" ] + }, + "acm009728jsd" : { + "type" : "CodePackage", + "id" : "acm009728jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009729jsd" ] + }, + "acm009729jsd" : { + "type" : "CodePackage", + "id" : "acm009729jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009726jsd" ] + }, + "acm009730jsd" : { + "type" : "ControlElement", + "id" : "acm009730jsd", + "name" : "getMinAuthLevel" + }, + "acm009731jsd" : { + "type" : "ControlElement", + "id" : "acm009731jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009732jsd" : { + "type" : "ControlElement", + "id" : "acm009732jsd", + "name" : "execute" + }, + "acm009733jsd" : { + "type" : "ClassUnit", + "id" : "acm009733jsd", + "name" : "DeleteStudentsAction", + "compilationUnitId" : "acm009726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009730jsd", "acm009731jsd", "acm009732jsd" ] + }, + "acm009734jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009734jsd", + "name" : "EnrollStudentsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009741jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009735jsd" : { + "type" : "CodePackage", + "id" : "acm009735jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009736jsd" ] + }, + "acm009736jsd" : { + "type" : "CodePackage", + "id" : "acm009736jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009737jsd" ] + }, + "acm009737jsd" : { + "type" : "CodePackage", + "id" : "acm009737jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009734jsd" ] + }, + "acm009738jsd" : { + "type" : "ControlElement", + "id" : "acm009738jsd", + "name" : "getMinAuthLevel" + }, + "acm009739jsd" : { + "type" : "ControlElement", + "id" : "acm009739jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009740jsd" : { + "type" : "ControlElement", + "id" : "acm009740jsd", + "name" : "execute" + }, + "acm009741jsd" : { + "type" : "ClassUnit", + "id" : "acm009741jsd", + "name" : "EnrollStudentsAction", + "compilationUnitId" : "acm009734jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm005423jsd", "acm006156jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm008379jsd", "acm008385jsd", "acm008955jsd", "acm009228jsd", "acm009301jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009738jsd", "acm009739jsd", "acm009740jsd" ] + }, + "acm009742jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009742jsd", + "name" : "EntityNotFoundException", + "parentId" : "acm009426jsd", + "content" : [ "acm009748jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009743jsd" : { + "type" : "CodePackage", + "id" : "acm009743jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009744jsd" ] + }, + "acm009744jsd" : { + "type" : "CodePackage", + "id" : "acm009744jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009745jsd" ] + }, + "acm009745jsd" : { + "type" : "CodePackage", + "id" : "acm009745jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009742jsd" ] + }, + "acm009746jsd" : { + "type" : "ControlElement", + "id" : "acm009746jsd", + "name" : "EntityNotFoundException" + }, + "acm009747jsd" : { + "type" : "ControlElement", + "id" : "acm009747jsd", + "name" : "EntityNotFoundException" + }, + "acm009748jsd" : { + "type" : "ClassUnit", + "id" : "acm009748jsd", + "name" : "EntityNotFoundException", + "compilationUnitId" : "acm009742jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006168jsd" ], + "content" : [ "acm009746jsd", "acm009747jsd" ] + }, + "acm009749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009749jsd", + "name" : "FeedbackSessionClosedRemindersAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009754jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009750jsd" : { + "type" : "CodePackage", + "id" : "acm009750jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009751jsd" ] + }, + "acm009751jsd" : { + "type" : "CodePackage", + "id" : "acm009751jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009752jsd" ] + }, + "acm009752jsd" : { + "type" : "CodePackage", + "id" : "acm009752jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009749jsd" ] + }, + "acm009753jsd" : { + "type" : "ControlElement", + "id" : "acm009753jsd", + "name" : "execute" + }, + "acm009754jsd" : { + "type" : "ClassUnit", + "id" : "acm009754jsd", + "name" : "FeedbackSessionClosedRemindersAction", + "compilationUnitId" : "acm009749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009753jsd" ] + }, + "acm009755jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009755jsd", + "name" : "FeedbackSessionClosingRemindersAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009762jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009756jsd" : { + "type" : "CodePackage", + "id" : "acm009756jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009757jsd" ] + }, + "acm009757jsd" : { + "type" : "CodePackage", + "id" : "acm009757jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009758jsd" ] + }, + "acm009758jsd" : { + "type" : "CodePackage", + "id" : "acm009758jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009755jsd" ] + }, + "acm009759jsd" : { + "type" : "ControlElement", + "id" : "acm009759jsd", + "name" : "execute" + }, + "acm009760jsd" : { + "type" : "ControlElement", + "id" : "acm009760jsd", + "name" : "filterValidDeadlineExtensions" + }, + "acm009761jsd" : { + "type" : "ControlElement", + "id" : "acm009761jsd", + "name" : "isValidDeadlineExtension" + }, + "acm009762jsd" : { + "type" : "ClassUnit", + "id" : "acm009762jsd", + "name" : "FeedbackSessionClosingRemindersAction", + "compilationUnitId" : "acm009755jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm004678jsd", "acm005112jsd", "acm006168jsd", "acm006188jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009759jsd", "acm009760jsd", "acm009761jsd" ] + }, + "acm009763jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009763jsd", + "name" : "FeedbackSessionOpeningRemindersAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009768jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009764jsd" : { + "type" : "CodePackage", + "id" : "acm009764jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009765jsd" ] + }, + "acm009765jsd" : { + "type" : "CodePackage", + "id" : "acm009765jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009766jsd" ] + }, + "acm009766jsd" : { + "type" : "CodePackage", + "id" : "acm009766jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009763jsd" ] + }, + "acm009767jsd" : { + "type" : "ControlElement", + "id" : "acm009767jsd", + "name" : "execute" + }, + "acm009768jsd" : { + "type" : "ClassUnit", + "id" : "acm009768jsd", + "name" : "FeedbackSessionOpeningRemindersAction", + "compilationUnitId" : "acm009763jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009767jsd" ] + }, + "acm009769jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009769jsd", + "name" : "FeedbackSessionOpeningSoonRemindersAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009774jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009770jsd" : { + "type" : "CodePackage", + "id" : "acm009770jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009771jsd" ] + }, + "acm009771jsd" : { + "type" : "CodePackage", + "id" : "acm009771jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009772jsd" ] + }, + "acm009772jsd" : { + "type" : "CodePackage", + "id" : "acm009772jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009769jsd" ] + }, + "acm009773jsd" : { + "type" : "ControlElement", + "id" : "acm009773jsd", + "name" : "execute" + }, + "acm009774jsd" : { + "type" : "ClassUnit", + "id" : "acm009774jsd", + "name" : "FeedbackSessionOpeningSoonRemindersAction", + "compilationUnitId" : "acm009769jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009773jsd" ] + }, + "acm009775jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009775jsd", + "name" : "FeedbackSessionPublishedEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009780jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009776jsd" : { + "type" : "CodePackage", + "id" : "acm009776jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009777jsd" ] + }, + "acm009777jsd" : { + "type" : "CodePackage", + "id" : "acm009777jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009778jsd" ] + }, + "acm009778jsd" : { + "type" : "CodePackage", + "id" : "acm009778jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009775jsd" ] + }, + "acm009779jsd" : { + "type" : "ControlElement", + "id" : "acm009779jsd", + "name" : "execute" + }, + "acm009780jsd" : { + "type" : "ClassUnit", + "id" : "acm009780jsd", + "name" : "FeedbackSessionPublishedEmailWorkerAction", + "compilationUnitId" : "acm009775jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009779jsd" ] + }, + "acm009781jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009781jsd", + "name" : "FeedbackSessionPublishedRemindersAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009786jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009782jsd" : { + "type" : "CodePackage", + "id" : "acm009782jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009783jsd" ] + }, + "acm009783jsd" : { + "type" : "CodePackage", + "id" : "acm009783jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009784jsd" ] + }, + "acm009784jsd" : { + "type" : "CodePackage", + "id" : "acm009784jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009781jsd" ] + }, + "acm009785jsd" : { + "type" : "ControlElement", + "id" : "acm009785jsd", + "name" : "execute" + }, + "acm009786jsd" : { + "type" : "ClassUnit", + "id" : "acm009786jsd", + "name" : "FeedbackSessionPublishedRemindersAction", + "compilationUnitId" : "acm009781jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm010167jsd" ], + "content" : [ "acm009785jsd" ] + }, + "acm009787jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009787jsd", + "name" : "FeedbackSessionRemindEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009792jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009788jsd" : { + "type" : "CodePackage", + "id" : "acm009788jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009789jsd" ] + }, + "acm009789jsd" : { + "type" : "CodePackage", + "id" : "acm009789jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009790jsd" ] + }, + "acm009790jsd" : { + "type" : "CodePackage", + "id" : "acm009790jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009787jsd" ] + }, + "acm009791jsd" : { + "type" : "ControlElement", + "id" : "acm009791jsd", + "name" : "execute" + }, + "acm009792jsd" : { + "type" : "ClassUnit", + "id" : "acm009792jsd", + "name" : "FeedbackSessionRemindEmailWorkerAction", + "compilationUnitId" : "acm009787jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009791jsd" ] + }, + "acm009793jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009793jsd", + "name" : "FeedbackSessionRemindParticularUsersEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009798jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009794jsd" : { + "type" : "CodePackage", + "id" : "acm009794jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009795jsd" ] + }, + "acm009795jsd" : { + "type" : "CodePackage", + "id" : "acm009795jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009796jsd" ] + }, + "acm009796jsd" : { + "type" : "CodePackage", + "id" : "acm009796jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009793jsd" ] + }, + "acm009797jsd" : { + "type" : "ControlElement", + "id" : "acm009797jsd", + "name" : "execute" + }, + "acm009798jsd" : { + "type" : "ClassUnit", + "id" : "acm009798jsd", + "name" : "FeedbackSessionRemindParticularUsersEmailWorkerAction", + "compilationUnitId" : "acm009793jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006435jsd", "acm009176jsd", "acm009228jsd", "acm010167jsd" ], + "content" : [ "acm009797jsd" ] + }, + "acm009799jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009799jsd", + "name" : "FeedbackSessionResendPublishedEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009804jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009800jsd" : { + "type" : "CodePackage", + "id" : "acm009800jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009801jsd" ] + }, + "acm009801jsd" : { + "type" : "CodePackage", + "id" : "acm009801jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009802jsd" ] + }, + "acm009802jsd" : { + "type" : "CodePackage", + "id" : "acm009802jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009799jsd" ] + }, + "acm009803jsd" : { + "type" : "ControlElement", + "id" : "acm009803jsd", + "name" : "execute" + }, + "acm009804jsd" : { + "type" : "ClassUnit", + "id" : "acm009804jsd", + "name" : "FeedbackSessionResendPublishedEmailWorkerAction", + "compilationUnitId" : "acm009799jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006435jsd", "acm009176jsd", "acm009228jsd", "acm010167jsd" ], + "content" : [ "acm009803jsd" ] + }, + "acm009805jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009805jsd", + "name" : "FeedbackSessionUnpublishedEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009810jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009806jsd" : { + "type" : "CodePackage", + "id" : "acm009806jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009807jsd" ] + }, + "acm009807jsd" : { + "type" : "CodePackage", + "id" : "acm009807jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009808jsd" ] + }, + "acm009808jsd" : { + "type" : "CodePackage", + "id" : "acm009808jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009805jsd" ] + }, + "acm009809jsd" : { + "type" : "ControlElement", + "id" : "acm009809jsd", + "name" : "execute" + }, + "acm009810jsd" : { + "type" : "ClassUnit", + "id" : "acm009810jsd", + "name" : "FeedbackSessionUnpublishedEmailWorkerAction", + "compilationUnitId" : "acm009805jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006435jsd", "acm010167jsd" ], + "content" : [ "acm009809jsd" ] + }, + "acm009811jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009811jsd", + "name" : "GateKeeper", + "parentId" : "acm009426jsd", + "content" : [ "acm009831jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009812jsd" : { + "type" : "CodePackage", + "id" : "acm009812jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009813jsd" ] + }, + "acm009813jsd" : { + "type" : "CodePackage", + "id" : "acm009813jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009814jsd" ] + }, + "acm009814jsd" : { + "type" : "CodePackage", + "id" : "acm009814jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009811jsd" ] + }, + "acm009815jsd" : { + "type" : "ControlElement", + "id" : "acm009815jsd", + "name" : "GateKeeper" + }, + "acm009816jsd" : { + "type" : "ControlElement", + "id" : "acm009816jsd", + "name" : "inst" + }, + "acm009817jsd" : { + "type" : "ControlElement", + "id" : "acm009817jsd", + "name" : "verifyLoggedInUserPrivileges" + }, + "acm009818jsd" : { + "type" : "ControlElement", + "id" : "acm009818jsd", + "name" : "verifyAccessible" + }, + "acm009819jsd" : { + "type" : "ControlElement", + "id" : "acm009819jsd", + "name" : "verifyAccessible" + }, + "acm009820jsd" : { + "type" : "ControlElement", + "id" : "acm009820jsd", + "name" : "verifyAccessible" + }, + "acm009821jsd" : { + "type" : "ControlElement", + "id" : "acm009821jsd", + "name" : "verifyAccessible" + }, + "acm009822jsd" : { + "type" : "ControlElement", + "id" : "acm009822jsd", + "name" : "verifyAccessible" + }, + "acm009823jsd" : { + "type" : "ControlElement", + "id" : "acm009823jsd", + "name" : "verifyAccessible" + }, + "acm009824jsd" : { + "type" : "ControlElement", + "id" : "acm009824jsd", + "name" : "verifyAccessible" + }, + "acm009825jsd" : { + "type" : "ControlElement", + "id" : "acm009825jsd", + "name" : "verifyAccessible" + }, + "acm009826jsd" : { + "type" : "ControlElement", + "id" : "acm009826jsd", + "name" : "verifyAnswerableForStudent" + }, + "acm009827jsd" : { + "type" : "ControlElement", + "id" : "acm009827jsd", + "name" : "verifyAnswerableForInstructor" + }, + "acm009828jsd" : { + "type" : "ControlElement", + "id" : "acm009828jsd", + "name" : "verifySessionSubmissionPrivilegeForInstructor" + }, + "acm009829jsd" : { + "type" : "ControlElement", + "id" : "acm009829jsd", + "name" : "verifyOwnership" + }, + "acm009830jsd" : { + "type" : "ControlElement", + "id" : "acm009830jsd", + "name" : "verifyNotNull" + }, + "acm009831jsd" : { + "type" : "ClassUnit", + "id" : "acm009831jsd", + "name" : "GateKeeper", + "compilationUnitId" : "acm009811jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd", "acm004598jsd", "acm004788jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009831jsd", "acm010353jsd" ], + "content" : [ "acm009815jsd", "acm009816jsd", "acm009817jsd", "acm009818jsd", "acm009819jsd", "acm009820jsd", "acm009821jsd", "acm009822jsd", "acm009823jsd", "acm009824jsd", "acm009825jsd", "acm009826jsd", "acm009827jsd", "acm009828jsd", "acm009829jsd", "acm009830jsd" ] + }, + "acm009832jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009832jsd", + "name" : "GenerateEmailAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009837jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009833jsd" : { + "type" : "CodePackage", + "id" : "acm009833jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009834jsd" ] + }, + "acm009834jsd" : { + "type" : "CodePackage", + "id" : "acm009834jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009835jsd" ] + }, + "acm009835jsd" : { + "type" : "CodePackage", + "id" : "acm009835jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009832jsd" ] + }, + "acm009836jsd" : { + "type" : "ControlElement", + "id" : "acm009836jsd", + "name" : "execute" + }, + "acm009837jsd" : { + "type" : "ClassUnit", + "id" : "acm009837jsd", + "name" : "GenerateEmailAction", + "compilationUnitId" : "acm009832jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005412jsd", "acm006290jsd", "acm008364jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm009836jsd" ] + }, + "acm009838jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009838jsd", + "name" : "GetAccountAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009843jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009839jsd" : { + "type" : "CodePackage", + "id" : "acm009839jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009840jsd" ] + }, + "acm009840jsd" : { + "type" : "CodePackage", + "id" : "acm009840jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009841jsd" ] + }, + "acm009841jsd" : { + "type" : "CodePackage", + "id" : "acm009841jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009838jsd" ] + }, + "acm009842jsd" : { + "type" : "ControlElement", + "id" : "acm009842jsd", + "name" : "execute" + }, + "acm009843jsd" : { + "type" : "ClassUnit", + "id" : "acm009843jsd", + "name" : "GetAccountAction", + "compilationUnitId" : "acm009838jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm008245jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm009842jsd" ] + }, + "acm009844jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009844jsd", + "name" : "GetAccountRequestAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009849jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009845jsd" : { + "type" : "CodePackage", + "id" : "acm009845jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009846jsd" ] + }, + "acm009846jsd" : { + "type" : "CodePackage", + "id" : "acm009846jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009847jsd" ] + }, + "acm009847jsd" : { + "type" : "CodePackage", + "id" : "acm009847jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009844jsd" ] + }, + "acm009848jsd" : { + "type" : "ControlElement", + "id" : "acm009848jsd", + "name" : "execute" + }, + "acm009849jsd" : { + "type" : "ClassUnit", + "id" : "acm009849jsd", + "name" : "GetAccountRequestAction", + "compilationUnitId" : "acm009844jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm008257jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm009848jsd" ] + }, + "acm009850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009850jsd", + "name" : "GetAccountsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009855jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009851jsd" : { + "type" : "CodePackage", + "id" : "acm009851jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009852jsd" ] + }, + "acm009852jsd" : { + "type" : "CodePackage", + "id" : "acm009852jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009853jsd" ] + }, + "acm009853jsd" : { + "type" : "CodePackage", + "id" : "acm009853jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009850jsd" ] + }, + "acm009854jsd" : { + "type" : "ControlElement", + "id" : "acm009854jsd", + "name" : "execute" + }, + "acm009855jsd" : { + "type" : "ClassUnit", + "id" : "acm009855jsd", + "name" : "GetAccountsAction", + "compilationUnitId" : "acm009850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm008272jsd", "acm010167jsd" ], + "content" : [ "acm009854jsd" ] + }, + "acm009856jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009856jsd", + "name" : "GetActionClassesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009863jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009857jsd" : { + "type" : "CodePackage", + "id" : "acm009857jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009858jsd" ] + }, + "acm009858jsd" : { + "type" : "CodePackage", + "id" : "acm009858jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009859jsd" ] + }, + "acm009859jsd" : { + "type" : "CodePackage", + "id" : "acm009859jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009856jsd" ] + }, + "acm009860jsd" : { + "type" : "ControlElement", + "id" : "acm009860jsd", + "name" : "getMinAuthLevel" + }, + "acm009861jsd" : { + "type" : "ControlElement", + "id" : "acm009861jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009862jsd" : { + "type" : "ControlElement", + "id" : "acm009862jsd", + "name" : "execute" + }, + "acm009863jsd" : { + "type" : "ClassUnit", + "id" : "acm009863jsd", + "name" : "GetActionClassesAction", + "compilationUnitId" : "acm009856jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008279jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009860jsd", "acm009861jsd", "acm009862jsd" ] + }, + "acm009864jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009864jsd", + "name" : "GetAuthInfoAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009872jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009865jsd" : { + "type" : "CodePackage", + "id" : "acm009865jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009866jsd" ] + }, + "acm009866jsd" : { + "type" : "CodePackage", + "id" : "acm009866jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009867jsd" ] + }, + "acm009867jsd" : { + "type" : "CodePackage", + "id" : "acm009867jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009864jsd" ] + }, + "acm009868jsd" : { + "type" : "ControlElement", + "id" : "acm009868jsd", + "name" : "getMinAuthLevel" + }, + "acm009869jsd" : { + "type" : "ControlElement", + "id" : "acm009869jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009870jsd" : { + "type" : "ControlElement", + "id" : "acm009870jsd", + "name" : "execute" + }, + "acm009871jsd" : { + "type" : "ControlElement", + "id" : "acm009871jsd", + "name" : "createLoginUrl" + }, + "acm009872jsd" : { + "type" : "ClassUnit", + "id" : "acm009872jsd", + "name" : "GetAuthInfoAction", + "compilationUnitId" : "acm009864jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008299jsd", "acm009513jsd", "acm010167jsd" ], + "content" : [ "acm009868jsd", "acm009869jsd", "acm009870jsd", "acm009871jsd" ] + }, + "acm009873jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009873jsd", + "name" : "GetCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009880jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009874jsd" : { + "type" : "CodePackage", + "id" : "acm009874jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009875jsd" ] + }, + "acm009875jsd" : { + "type" : "CodePackage", + "id" : "acm009875jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009876jsd" ] + }, + "acm009876jsd" : { + "type" : "CodePackage", + "id" : "acm009876jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009873jsd" ] + }, + "acm009877jsd" : { + "type" : "ControlElement", + "id" : "acm009877jsd", + "name" : "getMinAuthLevel" + }, + "acm009878jsd" : { + "type" : "ControlElement", + "id" : "acm009878jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009879jsd" : { + "type" : "ControlElement", + "id" : "acm009879jsd", + "name" : "execute" + }, + "acm009880jsd" : { + "type" : "ClassUnit", + "id" : "acm009880jsd", + "name" : "GetCourseAction", + "compilationUnitId" : "acm009873jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004598jsd", "acm005233jsd", "acm008329jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009877jsd", "acm009878jsd", "acm009879jsd" ] + }, + "acm009881jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009881jsd", + "name" : "GetCourseJoinStatusAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009891jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009882jsd" : { + "type" : "CodePackage", + "id" : "acm009882jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009883jsd" ] + }, + "acm009883jsd" : { + "type" : "CodePackage", + "id" : "acm009883jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009884jsd" ] + }, + "acm009884jsd" : { + "type" : "CodePackage", + "id" : "acm009884jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009881jsd" ] + }, + "acm009885jsd" : { + "type" : "ControlElement", + "id" : "acm009885jsd", + "name" : "getMinAuthLevel" + }, + "acm009886jsd" : { + "type" : "ControlElement", + "id" : "acm009886jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009887jsd" : { + "type" : "ControlElement", + "id" : "acm009887jsd", + "name" : "execute" + }, + "acm009888jsd" : { + "type" : "ControlElement", + "id" : "acm009888jsd", + "name" : "getStudentJoinStatus" + }, + "acm009889jsd" : { + "type" : "ControlElement", + "id" : "acm009889jsd", + "name" : "getInstructorJoinStatus" + }, + "acm009890jsd" : { + "type" : "ControlElement", + "id" : "acm009890jsd", + "name" : "getJoinStatusResult" + }, + "acm009891jsd" : { + "type" : "ClassUnit", + "id" : "acm009891jsd", + "name" : "GetCourseJoinStatusAction", + "compilationUnitId" : "acm009881jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm005233jsd", "acm005412jsd", "acm008663jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm009885jsd", "acm009886jsd", "acm009887jsd", "acm009888jsd", "acm009889jsd", "acm009890jsd" ] + }, + "acm009892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009892jsd", + "name" : "GetCourseSectionNamesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009899jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009893jsd" : { + "type" : "CodePackage", + "id" : "acm009893jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009894jsd" ] + }, + "acm009894jsd" : { + "type" : "CodePackage", + "id" : "acm009894jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009895jsd" ] + }, + "acm009895jsd" : { + "type" : "CodePackage", + "id" : "acm009895jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009892jsd" ] + }, + "acm009896jsd" : { + "type" : "ControlElement", + "id" : "acm009896jsd", + "name" : "getMinAuthLevel" + }, + "acm009897jsd" : { + "type" : "ControlElement", + "id" : "acm009897jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009898jsd" : { + "type" : "ControlElement", + "id" : "acm009898jsd", + "name" : "execute" + }, + "acm009899jsd" : { + "type" : "ClassUnit", + "id" : "acm009899jsd", + "name" : "GetCourseSectionNamesAction", + "compilationUnitId" : "acm009892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm006168jsd", "acm008336jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009896jsd", "acm009897jsd", "acm009898jsd" ] + }, + "acm009900jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009900jsd", + "name" : "GetCoursesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009911jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009901jsd" : { + "type" : "CodePackage", + "id" : "acm009901jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009902jsd" ] + }, + "acm009902jsd" : { + "type" : "CodePackage", + "id" : "acm009902jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009903jsd" ] + }, + "acm009903jsd" : { + "type" : "CodePackage", + "id" : "acm009903jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009900jsd" ] + }, + "acm009904jsd" : { + "type" : "ControlElement", + "id" : "acm009904jsd", + "name" : "getMinAuthLevel" + }, + "acm009905jsd" : { + "type" : "ControlElement", + "id" : "acm009905jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009906jsd" : { + "type" : "ControlElement", + "id" : "acm009906jsd", + "name" : "execute" + }, + "acm009907jsd" : { + "type" : "ControlElement", + "id" : "acm009907jsd", + "name" : "getStudentCourses" + }, + "acm009908jsd" : { + "type" : "ControlElement", + "id" : "acm009908jsd", + "name" : "getInstructorCourses" + }, + "acm009909jsd" : { + "type" : "ControlElement", + "id" : "acm009909jsd", + "name" : "getCourse" + }, + "acm009910jsd" : { + "type" : "ControlElement", + "id" : "acm009910jsd", + "name" : "getSoftDeletedCourse" + }, + "acm009911jsd" : { + "type" : "ClassUnit", + "id" : "acm009911jsd", + "name" : "GetCoursesAction", + "compilationUnitId" : "acm009900jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm008343jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009904jsd", "acm009905jsd", "acm009906jsd", "acm009907jsd", "acm009908jsd", "acm009909jsd", "acm009910jsd" ] + }, + "acm009912jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009912jsd", + "name" : "GetDeadlineExtensionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009919jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009913jsd" : { + "type" : "CodePackage", + "id" : "acm009913jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009914jsd" ] + }, + "acm009914jsd" : { + "type" : "CodePackage", + "id" : "acm009914jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009915jsd" ] + }, + "acm009915jsd" : { + "type" : "CodePackage", + "id" : "acm009915jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009912jsd" ] + }, + "acm009916jsd" : { + "type" : "ControlElement", + "id" : "acm009916jsd", + "name" : "getMinAuthLevel" + }, + "acm009917jsd" : { + "type" : "ControlElement", + "id" : "acm009917jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009918jsd" : { + "type" : "ControlElement", + "id" : "acm009918jsd", + "name" : "execute" + }, + "acm009919jsd" : { + "type" : "ClassUnit", + "id" : "acm009919jsd", + "name" : "GetDeadlineExtensionAction", + "compilationUnitId" : "acm009912jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm008355jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009916jsd", "acm009917jsd", "acm009918jsd" ] + }, + "acm009920jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009920jsd", + "name" : "GetFeedbackQuestionRecipientsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009927jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009921jsd" : { + "type" : "CodePackage", + "id" : "acm009921jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009922jsd" ] + }, + "acm009922jsd" : { + "type" : "CodePackage", + "id" : "acm009922jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009923jsd" ] + }, + "acm009923jsd" : { + "type" : "CodePackage", + "id" : "acm009923jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009920jsd" ] + }, + "acm009924jsd" : { + "type" : "ControlElement", + "id" : "acm009924jsd", + "name" : "getMinAuthLevel" + }, + "acm009925jsd" : { + "type" : "ControlElement", + "id" : "acm009925jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009926jsd" : { + "type" : "ControlElement", + "id" : "acm009926jsd", + "name" : "execute" + }, + "acm009927jsd" : { + "type" : "ClassUnit", + "id" : "acm009927jsd", + "name" : "GetFeedbackQuestionRecipientsAction", + "compilationUnitId" : "acm009920jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004239jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008424jsd", "acm009221jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009924jsd", "acm009925jsd", "acm009926jsd" ] + }, + "acm009928jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009928jsd", + "name" : "GetFeedbackQuestionsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009935jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009929jsd" : { + "type" : "CodePackage", + "id" : "acm009929jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009930jsd" ] + }, + "acm009930jsd" : { + "type" : "CodePackage", + "id" : "acm009930jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009931jsd" ] + }, + "acm009931jsd" : { + "type" : "CodePackage", + "id" : "acm009931jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009928jsd" ] + }, + "acm009932jsd" : { + "type" : "ControlElement", + "id" : "acm009932jsd", + "name" : "getMinAuthLevel" + }, + "acm009933jsd" : { + "type" : "ControlElement", + "id" : "acm009933jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009934jsd" : { + "type" : "ControlElement", + "id" : "acm009934jsd", + "name" : "execute" + }, + "acm009935jsd" : { + "type" : "ClassUnit", + "id" : "acm009935jsd", + "name" : "GetFeedbackQuestionsAction", + "compilationUnitId" : "acm009928jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008407jsd", "acm008432jsd", "acm009221jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009932jsd", "acm009933jsd", "acm009934jsd" ] + }, + "acm009936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009936jsd", + "name" : "GetFeedbackResponseCommentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009943jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009937jsd" : { + "type" : "CodePackage", + "id" : "acm009937jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009938jsd" ] + }, + "acm009938jsd" : { + "type" : "CodePackage", + "id" : "acm009938jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009939jsd" ] + }, + "acm009939jsd" : { + "type" : "CodePackage", + "id" : "acm009939jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009936jsd" ] + }, + "acm009940jsd" : { + "type" : "ControlElement", + "id" : "acm009940jsd", + "name" : "getMinAuthLevel" + }, + "acm009941jsd" : { + "type" : "ControlElement", + "id" : "acm009941jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009942jsd" : { + "type" : "ControlElement", + "id" : "acm009942jsd", + "name" : "execute" + }, + "acm009943jsd" : { + "type" : "ClassUnit", + "id" : "acm009943jsd", + "name" : "GetFeedbackResponseCommentAction", + "compilationUnitId" : "acm009936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009522jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006188jsd", "acm008449jsd", "acm009221jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009940jsd", "acm009941jsd", "acm009942jsd" ] + }, + "acm009944jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009944jsd", + "name" : "GetFeedbackResponsesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009951jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009945jsd" : { + "type" : "CodePackage", + "id" : "acm009945jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009946jsd" ] + }, + "acm009946jsd" : { + "type" : "CodePackage", + "id" : "acm009946jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009947jsd" ] + }, + "acm009947jsd" : { + "type" : "CodePackage", + "id" : "acm009947jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009944jsd" ] + }, + "acm009948jsd" : { + "type" : "ControlElement", + "id" : "acm009948jsd", + "name" : "getMinAuthLevel" + }, + "acm009949jsd" : { + "type" : "ControlElement", + "id" : "acm009949jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009950jsd" : { + "type" : "ControlElement", + "id" : "acm009950jsd", + "name" : "execute" + }, + "acm009951jsd" : { + "type" : "ClassUnit", + "id" : "acm009951jsd", + "name" : "GetFeedbackResponsesAction", + "compilationUnitId" : "acm009944jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008461jsd", "acm008470jsd", "acm009221jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009948jsd", "acm009949jsd", "acm009950jsd" ] + }, + "acm009952jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009952jsd", + "name" : "GetFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009961jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009953jsd" : { + "type" : "CodePackage", + "id" : "acm009953jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009954jsd" ] + }, + "acm009954jsd" : { + "type" : "CodePackage", + "id" : "acm009954jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009955jsd" ] + }, + "acm009955jsd" : { + "type" : "CodePackage", + "id" : "acm009955jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009952jsd" ] + }, + "acm009956jsd" : { + "type" : "ControlElement", + "id" : "acm009956jsd", + "name" : "getMinAuthLevel" + }, + "acm009957jsd" : { + "type" : "ControlElement", + "id" : "acm009957jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009958jsd" : { + "type" : "ControlElement", + "id" : "acm009958jsd", + "name" : "execute" + }, + "acm009959jsd" : { + "type" : "ControlElement", + "id" : "acm009959jsd", + "name" : "getStudentFeedbackSessionData" + }, + "acm009960jsd" : { + "type" : "ControlElement", + "id" : "acm009960jsd", + "name" : "getInstructorFeedbackSessionData" + }, + "acm009961jsd" : { + "type" : "ClassUnit", + "id" : "acm009961jsd", + "name" : "GetFeedbackSessionAction", + "compilationUnitId" : "acm009952jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008518jsd", "acm009221jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009956jsd", "acm009957jsd", "acm009958jsd", "acm009959jsd", "acm009960jsd" ] + }, + "acm009962jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009962jsd", + "name" : "GetFeedbackSessionLogsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009970jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009963jsd" : { + "type" : "CodePackage", + "id" : "acm009963jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009964jsd" ] + }, + "acm009964jsd" : { + "type" : "CodePackage", + "id" : "acm009964jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009965jsd" ] + }, + "acm009965jsd" : { + "type" : "CodePackage", + "id" : "acm009965jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009962jsd" ] + }, + "acm009966jsd" : { + "type" : "ControlElement", + "id" : "acm009966jsd", + "name" : "getMinAuthLevel" + }, + "acm009967jsd" : { + "type" : "ControlElement", + "id" : "acm009967jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009968jsd" : { + "type" : "ControlElement", + "id" : "acm009968jsd", + "name" : "execute" + }, + "acm009969jsd" : { + "type" : "ControlElement", + "id" : "acm009969jsd", + "name" : "groupFeedbackSessionLogEntries" + }, + "acm009970jsd" : { + "type" : "ClassUnit", + "id" : "acm009970jsd", + "name" : "GetFeedbackSessionLogsAction", + "compilationUnitId" : "acm009962jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005555jsd", "acm008542jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009966jsd", "acm009967jsd", "acm009968jsd", "acm009969jsd" ] + }, + "acm009971jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009971jsd", + "name" : "GetFeedbackSessionSubmittedGiverSetAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009978jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009972jsd" : { + "type" : "CodePackage", + "id" : "acm009972jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009973jsd" ] + }, + "acm009973jsd" : { + "type" : "CodePackage", + "id" : "acm009973jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009974jsd" ] + }, + "acm009974jsd" : { + "type" : "CodePackage", + "id" : "acm009974jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009971jsd" ] + }, + "acm009975jsd" : { + "type" : "ControlElement", + "id" : "acm009975jsd", + "name" : "getMinAuthLevel" + }, + "acm009976jsd" : { + "type" : "ControlElement", + "id" : "acm009976jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009977jsd" : { + "type" : "ControlElement", + "id" : "acm009977jsd", + "name" : "execute" + }, + "acm009978jsd" : { + "type" : "ClassUnit", + "id" : "acm009978jsd", + "name" : "GetFeedbackSessionSubmittedGiverSetAction", + "compilationUnitId" : "acm009971jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008567jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009975jsd", "acm009976jsd", "acm009977jsd" ] + }, + "acm009979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009979jsd", + "name" : "GetFeedbackSessionsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009986jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009980jsd" : { + "type" : "CodePackage", + "id" : "acm009980jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009981jsd" ] + }, + "acm009981jsd" : { + "type" : "CodePackage", + "id" : "acm009981jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009982jsd" ] + }, + "acm009982jsd" : { + "type" : "CodePackage", + "id" : "acm009982jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009979jsd" ] + }, + "acm009983jsd" : { + "type" : "ControlElement", + "id" : "acm009983jsd", + "name" : "getMinAuthLevel" + }, + "acm009984jsd" : { + "type" : "ControlElement", + "id" : "acm009984jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009985jsd" : { + "type" : "ControlElement", + "id" : "acm009985jsd", + "name" : "execute" + }, + "acm009986jsd" : { + "type" : "ClassUnit", + "id" : "acm009986jsd", + "name" : "GetFeedbackSessionsAction", + "compilationUnitId" : "acm009979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008574jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009983jsd", "acm009984jsd", "acm009985jsd" ] + }, + "acm009987jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009987jsd", + "name" : "GetHasResponsesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm009995jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009988jsd" : { + "type" : "CodePackage", + "id" : "acm009988jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009989jsd" ] + }, + "acm009989jsd" : { + "type" : "CodePackage", + "id" : "acm009989jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009990jsd" ] + }, + "acm009990jsd" : { + "type" : "CodePackage", + "id" : "acm009990jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009987jsd" ] + }, + "acm009991jsd" : { + "type" : "ControlElement", + "id" : "acm009991jsd", + "name" : "getMinAuthLevel" + }, + "acm009992jsd" : { + "type" : "ControlElement", + "id" : "acm009992jsd", + "name" : "checkSpecificAccessControl" + }, + "acm009993jsd" : { + "type" : "ControlElement", + "id" : "acm009993jsd", + "name" : "execute" + }, + "acm009994jsd" : { + "type" : "ControlElement", + "id" : "acm009994jsd", + "name" : "handleInstructorReq" + }, + "acm009995jsd" : { + "type" : "ClassUnit", + "id" : "acm009995jsd", + "name" : "GetHasResponsesAction", + "compilationUnitId" : "acm009987jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005412jsd", "acm008596jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm009991jsd", "acm009992jsd", "acm009993jsd", "acm009994jsd" ] + }, + "acm009996jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm009996jsd", + "name" : "GetInstructorAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010003jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm009997jsd" : { + "type" : "CodePackage", + "id" : "acm009997jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm009998jsd" ] + }, + "acm009998jsd" : { + "type" : "CodePackage", + "id" : "acm009998jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm009999jsd" ] + }, + "acm009999jsd" : { + "type" : "CodePackage", + "id" : "acm009999jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm009996jsd" ] + }, + "acm010000jsd" : { + "type" : "ControlElement", + "id" : "acm010000jsd", + "name" : "getMinAuthLevel" + }, + "acm010001jsd" : { + "type" : "ControlElement", + "id" : "acm010001jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010002jsd" : { + "type" : "ControlElement", + "id" : "acm010002jsd", + "name" : "execute" + }, + "acm010003jsd" : { + "type" : "ClassUnit", + "id" : "acm010003jsd", + "name" : "GetInstructorAction", + "compilationUnitId" : "acm009996jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008620jsd", "acm009221jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010000jsd", "acm010001jsd", "acm010002jsd" ] + }, + "acm010004jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010004jsd", + "name" : "GetInstructorPrivilegeAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010011jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010005jsd" : { + "type" : "CodePackage", + "id" : "acm010005jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010006jsd" ] + }, + "acm010006jsd" : { + "type" : "CodePackage", + "id" : "acm010006jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010007jsd" ] + }, + "acm010007jsd" : { + "type" : "CodePackage", + "id" : "acm010007jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010004jsd" ] + }, + "acm010008jsd" : { + "type" : "ControlElement", + "id" : "acm010008jsd", + "name" : "getMinAuthLevel" + }, + "acm010009jsd" : { + "type" : "ControlElement", + "id" : "acm010009jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010010jsd" : { + "type" : "ControlElement", + "id" : "acm010010jsd", + "name" : "execute" + }, + "acm010011jsd" : { + "type" : "ClassUnit", + "id" : "acm010011jsd", + "name" : "GetInstructorPrivilegeAction", + "compilationUnitId" : "acm010004jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008635jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010008jsd", "acm010009jsd", "acm010010jsd" ] + }, + "acm010012jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010012jsd", + "name" : "GetInstructorsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010019jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010013jsd" : { + "type" : "CodePackage", + "id" : "acm010013jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010014jsd" ] + }, + "acm010014jsd" : { + "type" : "CodePackage", + "id" : "acm010014jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010015jsd" ] + }, + "acm010015jsd" : { + "type" : "CodePackage", + "id" : "acm010015jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010012jsd" ] + }, + "acm010016jsd" : { + "type" : "ControlElement", + "id" : "acm010016jsd", + "name" : "getMinAuthLevel" + }, + "acm010017jsd" : { + "type" : "ControlElement", + "id" : "acm010017jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010018jsd" : { + "type" : "ControlElement", + "id" : "acm010018jsd", + "name" : "execute" + }, + "acm010019jsd" : { + "type" : "ClassUnit", + "id" : "acm010019jsd", + "name" : "GetInstructorsAction", + "compilationUnitId" : "acm010012jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm008620jsd", "acm008644jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010016jsd", "acm010017jsd", "acm010018jsd" ] + }, + "acm010020jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010020jsd", + "name" : "GetNotificationAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010025jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010021jsd" : { + "type" : "CodePackage", + "id" : "acm010021jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010022jsd" ] + }, + "acm010022jsd" : { + "type" : "CodePackage", + "id" : "acm010022jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010023jsd" ] + }, + "acm010023jsd" : { + "type" : "CodePackage", + "id" : "acm010023jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010020jsd" ] + }, + "acm010024jsd" : { + "type" : "ControlElement", + "id" : "acm010024jsd", + "name" : "execute" + }, + "acm010025jsd" : { + "type" : "ClassUnit", + "id" : "acm010025jsd", + "name" : "GetNotificationAction", + "compilationUnitId" : "acm010020jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm008685jsd", "acm009228jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010024jsd" ] + }, + "acm010026jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010026jsd", + "name" : "GetNotificationsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010033jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010027jsd" : { + "type" : "CodePackage", + "id" : "acm010027jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010028jsd" ] + }, + "acm010028jsd" : { + "type" : "CodePackage", + "id" : "acm010028jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010029jsd" ] + }, + "acm010029jsd" : { + "type" : "CodePackage", + "id" : "acm010029jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010026jsd" ] + }, + "acm010030jsd" : { + "type" : "ControlElement", + "id" : "acm010030jsd", + "name" : "getMinAuthLevel" + }, + "acm010031jsd" : { + "type" : "ControlElement", + "id" : "acm010031jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010032jsd" : { + "type" : "ControlElement", + "id" : "acm010032jsd", + "name" : "execute" + }, + "acm010033jsd" : { + "type" : "ClassUnit", + "id" : "acm010033jsd", + "name" : "GetNotificationsAction", + "compilationUnitId" : "acm010026jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004351jsd", "acm005329jsd", "acm005339jsd", "acm006168jsd", "acm006188jsd", "acm008692jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010030jsd", "acm010031jsd", "acm010032jsd" ] + }, + "acm010034jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010034jsd", + "name" : "GetOngoingSessionsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010040jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010035jsd" : { + "type" : "CodePackage", + "id" : "acm010035jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010036jsd" ] + }, + "acm010036jsd" : { + "type" : "CodePackage", + "id" : "acm010036jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010037jsd" ] + }, + "acm010037jsd" : { + "type" : "CodePackage", + "id" : "acm010037jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010034jsd" ] + }, + "acm010038jsd" : { + "type" : "ControlElement", + "id" : "acm010038jsd", + "name" : "execute" + }, + "acm010039jsd" : { + "type" : "ControlElement", + "id" : "acm010039jsd", + "name" : "getRegisteredInstructorAccountFromInstructors" + }, + "acm010040jsd" : { + "type" : "ClassUnit", + "id" : "acm010040jsd", + "name" : "GetOngoingSessionsAction", + "compilationUnitId" : "acm010034jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm005112jsd", "acm005233jsd", "acm008711jsd", "acm008728jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm010038jsd", "acm010039jsd" ] + }, + "acm010041jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010041jsd", + "name" : "GetReadNotificationsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010048jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010042jsd" : { + "type" : "CodePackage", + "id" : "acm010042jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010043jsd" ] + }, + "acm010043jsd" : { + "type" : "CodePackage", + "id" : "acm010043jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010044jsd" ] + }, + "acm010044jsd" : { + "type" : "CodePackage", + "id" : "acm010044jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010041jsd" ] + }, + "acm010045jsd" : { + "type" : "ControlElement", + "id" : "acm010045jsd", + "name" : "getMinAuthLevel" + }, + "acm010046jsd" : { + "type" : "ControlElement", + "id" : "acm010046jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010047jsd" : { + "type" : "ControlElement", + "id" : "acm010047jsd", + "name" : "execute" + }, + "acm010048jsd" : { + "type" : "ClassUnit", + "id" : "acm010048jsd", + "name" : "GetReadNotificationsAction", + "compilationUnitId" : "acm010041jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008735jsd", "acm009483jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010045jsd", "acm010046jsd", "acm010047jsd" ] + }, + "acm010049jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010049jsd", + "name" : "GetRegkeyValidityAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010056jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010050jsd" : { + "type" : "CodePackage", + "id" : "acm010050jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010051jsd" ] + }, + "acm010051jsd" : { + "type" : "CodePackage", + "id" : "acm010051jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010052jsd" ] + }, + "acm010052jsd" : { + "type" : "CodePackage", + "id" : "acm010052jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010049jsd" ] + }, + "acm010053jsd" : { + "type" : "ControlElement", + "id" : "acm010053jsd", + "name" : "getMinAuthLevel" + }, + "acm010054jsd" : { + "type" : "ControlElement", + "id" : "acm010054jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010055jsd" : { + "type" : "ControlElement", + "id" : "acm010055jsd", + "name" : "execute" + }, + "acm010056jsd" : { + "type" : "ClassUnit", + "id" : "acm010056jsd", + "name" : "GetRegkeyValidityAction", + "compilationUnitId" : "acm010049jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008752jsd", "acm009221jsd", "acm009513jsd", "acm010167jsd" ], + "content" : [ "acm010053jsd", "acm010054jsd", "acm010055jsd" ] + }, + "acm010057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010057jsd", + "name" : "GetSessionResponseStatsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010064jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010058jsd" : { + "type" : "CodePackage", + "id" : "acm010058jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010059jsd" ] + }, + "acm010059jsd" : { + "type" : "CodePackage", + "id" : "acm010059jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010060jsd" ] + }, + "acm010060jsd" : { + "type" : "CodePackage", + "id" : "acm010060jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010057jsd" ] + }, + "acm010061jsd" : { + "type" : "ControlElement", + "id" : "acm010061jsd", + "name" : "getMinAuthLevel" + }, + "acm010062jsd" : { + "type" : "ControlElement", + "id" : "acm010062jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010063jsd" : { + "type" : "ControlElement", + "id" : "acm010063jsd", + "name" : "execute" + }, + "acm010064jsd" : { + "type" : "ClassUnit", + "id" : "acm010064jsd", + "name" : "GetSessionResponseStatsAction", + "compilationUnitId" : "acm010057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008555jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010061jsd", "acm010062jsd", "acm010063jsd" ] + }, + "acm010065jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010065jsd", + "name" : "GetSessionResultsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010072jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010066jsd" : { + "type" : "CodePackage", + "id" : "acm010066jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010067jsd" ] + }, + "acm010067jsd" : { + "type" : "CodePackage", + "id" : "acm010067jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010068jsd" ] + }, + "acm010068jsd" : { + "type" : "CodePackage", + "id" : "acm010068jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010065jsd" ] + }, + "acm010069jsd" : { + "type" : "ControlElement", + "id" : "acm010069jsd", + "name" : "getMinAuthLevel" + }, + "acm010070jsd" : { + "type" : "ControlElement", + "id" : "acm010070jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010071jsd" : { + "type" : "ControlElement", + "id" : "acm010071jsd", + "name" : "execute" + }, + "acm010072jsd" : { + "type" : "ClassUnit", + "id" : "acm010072jsd", + "name" : "GetSessionResultsAction", + "compilationUnitId" : "acm010065jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004248jsd", "acm004383jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009221jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010069jsd", "acm010070jsd", "acm010071jsd" ] + }, + "acm010073jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010073jsd", + "name" : "GetStudentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010080jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010074jsd" : { + "type" : "CodePackage", + "id" : "acm010074jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010075jsd" ] + }, + "acm010075jsd" : { + "type" : "CodePackage", + "id" : "acm010075jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010076jsd" ] + }, + "acm010076jsd" : { + "type" : "CodePackage", + "id" : "acm010076jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010073jsd" ] + }, + "acm010077jsd" : { + "type" : "ControlElement", + "id" : "acm010077jsd", + "name" : "getMinAuthLevel" + }, + "acm010078jsd" : { + "type" : "ControlElement", + "id" : "acm010078jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010079jsd" : { + "type" : "ControlElement", + "id" : "acm010079jsd", + "name" : "execute" + }, + "acm010080jsd" : { + "type" : "ClassUnit", + "id" : "acm010080jsd", + "name" : "GetStudentAction", + "compilationUnitId" : "acm010073jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm008946jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010077jsd", "acm010078jsd", "acm010079jsd" ] + }, + "acm010081jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010081jsd", + "name" : "GetStudentsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010088jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010082jsd" : { + "type" : "CodePackage", + "id" : "acm010082jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010083jsd" ] + }, + "acm010083jsd" : { + "type" : "CodePackage", + "id" : "acm010083jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010084jsd" ] + }, + "acm010084jsd" : { + "type" : "CodePackage", + "id" : "acm010084jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010081jsd" ] + }, + "acm010085jsd" : { + "type" : "ControlElement", + "id" : "acm010085jsd", + "name" : "getMinAuthLevel" + }, + "acm010086jsd" : { + "type" : "ControlElement", + "id" : "acm010086jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010087jsd" : { + "type" : "ControlElement", + "id" : "acm010087jsd", + "name" : "execute" + }, + "acm010088jsd" : { + "type" : "ClassUnit", + "id" : "acm010088jsd", + "name" : "GetStudentsAction", + "compilationUnitId" : "acm010081jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008955jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010085jsd", "acm010086jsd", "acm010087jsd" ] + }, + "acm010089jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010089jsd", + "name" : "GetTimeZonesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010096jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010090jsd" : { + "type" : "CodePackage", + "id" : "acm010090jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010091jsd" ] + }, + "acm010091jsd" : { + "type" : "CodePackage", + "id" : "acm010091jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010092jsd" ] + }, + "acm010092jsd" : { + "type" : "CodePackage", + "id" : "acm010092jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010089jsd" ] + }, + "acm010093jsd" : { + "type" : "ControlElement", + "id" : "acm010093jsd", + "name" : "getMinAuthLevel" + }, + "acm010094jsd" : { + "type" : "ControlElement", + "id" : "acm010094jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010095jsd" : { + "type" : "ControlElement", + "id" : "acm010095jsd", + "name" : "execute" + }, + "acm010096jsd" : { + "type" : "ClassUnit", + "id" : "acm010096jsd", + "name" : "GetTimeZonesAction", + "compilationUnitId" : "acm010089jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008963jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010093jsd", "acm010094jsd", "acm010095jsd" ] + }, + "acm010097jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010097jsd", + "name" : "GetUsageStatisticsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010104jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010098jsd" : { + "type" : "CodePackage", + "id" : "acm010098jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010099jsd" ] + }, + "acm010099jsd" : { + "type" : "CodePackage", + "id" : "acm010099jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010100jsd" ] + }, + "acm010100jsd" : { + "type" : "CodePackage", + "id" : "acm010100jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010097jsd" ] + }, + "acm010101jsd" : { + "type" : "ControlElement", + "id" : "acm010101jsd", + "name" : "getMinAuthLevel" + }, + "acm010102jsd" : { + "type" : "ControlElement", + "id" : "acm010102jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010103jsd" : { + "type" : "ControlElement", + "id" : "acm010103jsd", + "name" : "execute" + }, + "acm010104jsd" : { + "type" : "ClassUnit", + "id" : "acm010104jsd", + "name" : "GetUsageStatisticsAction", + "compilationUnitId" : "acm010097jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm008985jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010101jsd", "acm010102jsd", "acm010103jsd" ] + }, + "acm010105jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010105jsd", + "name" : "GetUserCookieAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010112jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010106jsd" : { + "type" : "CodePackage", + "id" : "acm010106jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010107jsd" ] + }, + "acm010107jsd" : { + "type" : "CodePackage", + "id" : "acm010107jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010108jsd" ] + }, + "acm010108jsd" : { + "type" : "CodePackage", + "id" : "acm010108jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010105jsd" ] + }, + "acm010109jsd" : { + "type" : "ControlElement", + "id" : "acm010109jsd", + "name" : "getMinAuthLevel" + }, + "acm010110jsd" : { + "type" : "ControlElement", + "id" : "acm010110jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010111jsd" : { + "type" : "ControlElement", + "id" : "acm010111jsd", + "name" : "execute" + }, + "acm010112jsd" : { + "type" : "ClassUnit", + "id" : "acm010112jsd", + "name" : "GetUserCookieAction", + "compilationUnitId" : "acm010105jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010109jsd", "acm010110jsd", "acm010111jsd" ] + }, + "acm010113jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010113jsd", + "name" : "InstructorCourseJoinEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010118jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010114jsd" : { + "type" : "CodePackage", + "id" : "acm010114jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010115jsd" ] + }, + "acm010115jsd" : { + "type" : "CodePackage", + "id" : "acm010115jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010116jsd" ] + }, + "acm010116jsd" : { + "type" : "CodePackage", + "id" : "acm010116jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010113jsd" ] + }, + "acm010117jsd" : { + "type" : "ControlElement", + "id" : "acm010117jsd", + "name" : "execute" + }, + "acm010118jsd" : { + "type" : "ClassUnit", + "id" : "acm010118jsd", + "name" : "InstructorCourseJoinEmailWorkerAction", + "compilationUnitId" : "acm010113jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004598jsd", "acm005233jsd", "acm006290jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010117jsd" ] + }, + "acm010119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010119jsd", + "name" : "InstructorSearchIndexingWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010124jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010120jsd" : { + "type" : "CodePackage", + "id" : "acm010120jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010121jsd" ] + }, + "acm010121jsd" : { + "type" : "CodePackage", + "id" : "acm010121jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010122jsd" ] + }, + "acm010122jsd" : { + "type" : "CodePackage", + "id" : "acm010122jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010119jsd" ] + }, + "acm010123jsd" : { + "type" : "ControlElement", + "id" : "acm010123jsd", + "name" : "execute" + }, + "acm010124jsd" : { + "type" : "ClassUnit", + "id" : "acm010124jsd", + "name" : "InstructorSearchIndexingWorkerAction", + "compilationUnitId" : "acm010119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006197jsd", "acm009483jsd", "acm010167jsd" ], + "content" : [ "acm010123jsd" ] + }, + "acm010125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010125jsd", + "name" : "InvalidHttpParameterException", + "parentId" : "acm009426jsd", + "content" : [ "acm010134jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010126jsd" : { + "type" : "CodePackage", + "id" : "acm010126jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010127jsd" ] + }, + "acm010127jsd" : { + "type" : "CodePackage", + "id" : "acm010127jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010128jsd" ] + }, + "acm010128jsd" : { + "type" : "CodePackage", + "id" : "acm010128jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010125jsd" ] + }, + "acm010129jsd" : { + "type" : "ControlElement", + "id" : "acm010129jsd", + "name" : "InvalidHttpParameterException" + }, + "acm010130jsd" : { + "type" : "ControlElement", + "id" : "acm010130jsd", + "name" : "InvalidHttpParameterException" + }, + "acm010131jsd" : { + "type" : "ControlElement", + "id" : "acm010131jsd", + "name" : "InvalidHttpParameterException" + }, + "acm010132jsd" : { + "type" : "ControlElement", + "id" : "acm010132jsd", + "name" : "InvalidHttpParameterException" + }, + "acm010133jsd" : { + "type" : "ControlElement", + "id" : "acm010133jsd", + "name" : "InvalidHttpParameterException" + }, + "acm010134jsd" : { + "type" : "ClassUnit", + "id" : "acm010134jsd", + "name" : "InvalidHttpParameterException", + "compilationUnitId" : "acm010125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006188jsd" ], + "content" : [ "acm010129jsd", "acm010130jsd", "acm010131jsd", "acm010132jsd", "acm010133jsd" ] + }, + "acm010135jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010135jsd", + "name" : "InvalidOperationException", + "parentId" : "acm009426jsd", + "content" : [ "acm010144jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010136jsd" : { + "type" : "CodePackage", + "id" : "acm010136jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010137jsd" ] + }, + "acm010137jsd" : { + "type" : "CodePackage", + "id" : "acm010137jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010138jsd" ] + }, + "acm010138jsd" : { + "type" : "CodePackage", + "id" : "acm010138jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010135jsd" ] + }, + "acm010139jsd" : { + "type" : "ControlElement", + "id" : "acm010139jsd", + "name" : "InvalidOperationException" + }, + "acm010140jsd" : { + "type" : "ControlElement", + "id" : "acm010140jsd", + "name" : "InvalidOperationException" + }, + "acm010141jsd" : { + "type" : "ControlElement", + "id" : "acm010141jsd", + "name" : "InvalidOperationException" + }, + "acm010142jsd" : { + "type" : "ControlElement", + "id" : "acm010142jsd", + "name" : "InvalidOperationException" + }, + "acm010143jsd" : { + "type" : "ControlElement", + "id" : "acm010143jsd", + "name" : "InvalidOperationException" + }, + "acm010144jsd" : { + "type" : "ClassUnit", + "id" : "acm010144jsd", + "name" : "InvalidOperationException", + "compilationUnitId" : "acm010135jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006156jsd", "acm006162jsd", "acm006180jsd" ], + "content" : [ "acm010139jsd", "acm010140jsd", "acm010141jsd", "acm010142jsd", "acm010143jsd" ] + }, + "acm010145jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010145jsd", + "name" : "JoinCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010155jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010146jsd" : { + "type" : "CodePackage", + "id" : "acm010146jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010147jsd" ] + }, + "acm010147jsd" : { + "type" : "CodePackage", + "id" : "acm010147jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010148jsd" ] + }, + "acm010148jsd" : { + "type" : "CodePackage", + "id" : "acm010148jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010145jsd" ] + }, + "acm010149jsd" : { + "type" : "ControlElement", + "id" : "acm010149jsd", + "name" : "getMinAuthLevel" + }, + "acm010150jsd" : { + "type" : "ControlElement", + "id" : "acm010150jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010151jsd" : { + "type" : "ControlElement", + "id" : "acm010151jsd", + "name" : "execute" + }, + "acm010152jsd" : { + "type" : "ControlElement", + "id" : "acm010152jsd", + "name" : "joinCourseForStudent" + }, + "acm010153jsd" : { + "type" : "ControlElement", + "id" : "acm010153jsd", + "name" : "joinCourseForInstructor" + }, + "acm010154jsd" : { + "type" : "ControlElement", + "id" : "acm010154jsd", + "name" : "sendJoinEmail" + }, + "acm010155jsd" : { + "type" : "ClassUnit", + "id" : "acm010155jsd", + "name" : "JoinCourseAction", + "compilationUnitId" : "acm010145jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006290jsd", "acm006435jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm010149jsd", "acm010150jsd", "acm010151jsd", "acm010152jsd", "acm010153jsd", "acm010154jsd" ] + }, + "acm010156jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010156jsd", + "name" : "JsonResult", + "parentId" : "acm009426jsd", + "content" : [ "acm010167jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010157jsd" : { + "type" : "CodePackage", + "id" : "acm010157jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010158jsd" ] + }, + "acm010158jsd" : { + "type" : "CodePackage", + "id" : "acm010158jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010159jsd" ] + }, + "acm010159jsd" : { + "type" : "CodePackage", + "id" : "acm010159jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010156jsd" ] + }, + "acm010160jsd" : { + "type" : "ControlElement", + "id" : "acm010160jsd", + "name" : "JsonResult" + }, + "acm010161jsd" : { + "type" : "ControlElement", + "id" : "acm010161jsd", + "name" : "JsonResult" + }, + "acm010162jsd" : { + "type" : "ControlElement", + "id" : "acm010162jsd", + "name" : "JsonResult" + }, + "acm010163jsd" : { + "type" : "ControlElement", + "id" : "acm010163jsd", + "name" : "JsonResult" + }, + "acm010164jsd" : { + "type" : "ControlElement", + "id" : "acm010164jsd", + "name" : "getOutput" + }, + "acm010165jsd" : { + "type" : "ControlElement", + "id" : "acm010165jsd", + "name" : "send" + }, + "acm010166jsd" : { + "type" : "ControlElement", + "id" : "acm010166jsd", + "name" : "getCookies" + }, + "acm010167jsd" : { + "type" : "ClassUnit", + "id" : "acm010167jsd", + "name" : "JsonResult", + "compilationUnitId" : "acm010156jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009483jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008286jsd", "acm008670jsd" ], + "content" : [ "acm010160jsd", "acm010161jsd", "acm010162jsd", "acm010163jsd", "acm010164jsd", "acm010165jsd", "acm010166jsd" ] + }, + "acm010168jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010168jsd", + "name" : "MarkNotificationAsReadAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010175jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010169jsd" : { + "type" : "CodePackage", + "id" : "acm010169jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010170jsd" ] + }, + "acm010170jsd" : { + "type" : "CodePackage", + "id" : "acm010170jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010171jsd" ] + }, + "acm010171jsd" : { + "type" : "CodePackage", + "id" : "acm010171jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010168jsd" ] + }, + "acm010172jsd" : { + "type" : "ControlElement", + "id" : "acm010172jsd", + "name" : "getMinAuthLevel" + }, + "acm010173jsd" : { + "type" : "ControlElement", + "id" : "acm010173jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010174jsd" : { + "type" : "ControlElement", + "id" : "acm010174jsd", + "name" : "execute" + }, + "acm010175jsd" : { + "type" : "ClassUnit", + "id" : "acm010175jsd", + "name" : "MarkNotificationAsReadAction", + "compilationUnitId" : "acm010168jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006168jsd", "acm006188jsd", "acm008735jsd", "acm009228jsd", "acm009237jsd", "acm009483jsd", "acm009513jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010172jsd", "acm010173jsd", "acm010174jsd" ] + }, + "acm010176jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010176jsd", + "name" : "PublishFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010183jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010177jsd" : { + "type" : "CodePackage", + "id" : "acm010177jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010178jsd" ] + }, + "acm010178jsd" : { + "type" : "CodePackage", + "id" : "acm010178jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010179jsd" ] + }, + "acm010179jsd" : { + "type" : "CodePackage", + "id" : "acm010179jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010176jsd" ] + }, + "acm010180jsd" : { + "type" : "ControlElement", + "id" : "acm010180jsd", + "name" : "getMinAuthLevel" + }, + "acm010181jsd" : { + "type" : "ControlElement", + "id" : "acm010181jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010182jsd" : { + "type" : "ControlElement", + "id" : "acm010182jsd", + "name" : "execute" + }, + "acm010183jsd" : { + "type" : "ClassUnit", + "id" : "acm010183jsd", + "name" : "PublishFeedbackSessionAction", + "compilationUnitId" : "acm010176jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm008518jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010180jsd", "acm010181jsd", "acm010182jsd" ] + }, + "acm010184jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010184jsd", + "name" : "PutDataBundleAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010191jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010185jsd" : { + "type" : "CodePackage", + "id" : "acm010185jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010186jsd" ] + }, + "acm010186jsd" : { + "type" : "CodePackage", + "id" : "acm010186jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010187jsd" ] + }, + "acm010187jsd" : { + "type" : "CodePackage", + "id" : "acm010187jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010184jsd" ] + }, + "acm010188jsd" : { + "type" : "ControlElement", + "id" : "acm010188jsd", + "name" : "getMinAuthLevel" + }, + "acm010189jsd" : { + "type" : "ControlElement", + "id" : "acm010189jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010190jsd" : { + "type" : "ControlElement", + "id" : "acm010190jsd", + "name" : "execute" + }, + "acm010191jsd" : { + "type" : "ClassUnit", + "id" : "acm010191jsd", + "name" : "PutDataBundleAction", + "compilationUnitId" : "acm010184jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm006188jsd", "acm009228jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010188jsd", "acm010189jsd", "acm010190jsd" ] + }, + "acm010192jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010192jsd", + "name" : "PutDataBundleDocumentsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010199jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010193jsd" : { + "type" : "CodePackage", + "id" : "acm010193jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010194jsd" ] + }, + "acm010194jsd" : { + "type" : "CodePackage", + "id" : "acm010194jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010195jsd" ] + }, + "acm010195jsd" : { + "type" : "CodePackage", + "id" : "acm010195jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010192jsd" ] + }, + "acm010196jsd" : { + "type" : "ControlElement", + "id" : "acm010196jsd", + "name" : "getMinAuthLevel" + }, + "acm010197jsd" : { + "type" : "ControlElement", + "id" : "acm010197jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010198jsd" : { + "type" : "ControlElement", + "id" : "acm010198jsd", + "name" : "execute" + }, + "acm010199jsd" : { + "type" : "ClassUnit", + "id" : "acm010199jsd", + "name" : "PutDataBundleDocumentsAction", + "compilationUnitId" : "acm010192jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm006197jsd", "acm009513jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010196jsd", "acm010197jsd", "acm010198jsd" ] + }, + "acm010200jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010200jsd", + "name" : "QueryLogsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010208jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010201jsd" : { + "type" : "CodePackage", + "id" : "acm010201jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010202jsd" ] + }, + "acm010202jsd" : { + "type" : "CodePackage", + "id" : "acm010202jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010203jsd" ] + }, + "acm010203jsd" : { + "type" : "CodePackage", + "id" : "acm010203jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010200jsd" ] + }, + "acm010204jsd" : { + "type" : "ControlElement", + "id" : "acm010204jsd", + "name" : "getMinAuthLevel" + }, + "acm010205jsd" : { + "type" : "ControlElement", + "id" : "acm010205jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010206jsd" : { + "type" : "ControlElement", + "id" : "acm010206jsd", + "name" : "execute" + }, + "acm010207jsd" : { + "type" : "ControlElement", + "id" : "acm010207jsd", + "name" : "removeSensitiveFields" + }, + "acm010208jsd" : { + "type" : "ClassUnit", + "id" : "acm010208jsd", + "name" : "QueryLogsAction", + "compilationUnitId" : "acm010200jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004359jsd", "acm005572jsd", "acm005611jsd", "acm005651jsd", "acm005714jsd", "acm005726jsd", "acm008587jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010204jsd", "acm010205jsd", "acm010206jsd", "acm010207jsd" ] + }, + "acm010209jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010209jsd", + "name" : "RegenerateInstructorKeyAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010215jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010210jsd" : { + "type" : "CodePackage", + "id" : "acm010210jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010211jsd" ] + }, + "acm010211jsd" : { + "type" : "CodePackage", + "id" : "acm010211jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010212jsd" ] + }, + "acm010212jsd" : { + "type" : "CodePackage", + "id" : "acm010212jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010209jsd" ] + }, + "acm010213jsd" : { + "type" : "ControlElement", + "id" : "acm010213jsd", + "name" : "execute" + }, + "acm010214jsd" : { + "type" : "ControlElement", + "id" : "acm010214jsd", + "name" : "sendEmail" + }, + "acm010215jsd" : { + "type" : "ClassUnit", + "id" : "acm010215jsd", + "name" : "RegenerateInstructorKeyAction", + "compilationUnitId" : "acm010209jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006162jsd", "acm006168jsd", "acm006259jsd", "acm006290jsd", "acm008743jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010213jsd", "acm010214jsd" ] + }, + "acm010216jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010216jsd", + "name" : "RegenerateStudentKeyAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010222jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010217jsd" : { + "type" : "CodePackage", + "id" : "acm010217jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010218jsd" ] + }, + "acm010218jsd" : { + "type" : "CodePackage", + "id" : "acm010218jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010219jsd" ] + }, + "acm010219jsd" : { + "type" : "CodePackage", + "id" : "acm010219jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010216jsd" ] + }, + "acm010220jsd" : { + "type" : "ControlElement", + "id" : "acm010220jsd", + "name" : "execute" + }, + "acm010221jsd" : { + "type" : "ControlElement", + "id" : "acm010221jsd", + "name" : "sendEmail" + }, + "acm010222jsd" : { + "type" : "ClassUnit", + "id" : "acm010222jsd", + "name" : "RegenerateStudentKeyAction", + "compilationUnitId" : "acm010216jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006259jsd", "acm006290jsd", "acm008743jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010220jsd", "acm010221jsd" ] + }, + "acm010223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010223jsd", + "name" : "RemindFeedbackSessionResultAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010230jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010224jsd" : { + "type" : "CodePackage", + "id" : "acm010224jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010225jsd" ] + }, + "acm010225jsd" : { + "type" : "CodePackage", + "id" : "acm010225jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010226jsd" ] + }, + "acm010226jsd" : { + "type" : "CodePackage", + "id" : "acm010226jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010223jsd" ] + }, + "acm010227jsd" : { + "type" : "ControlElement", + "id" : "acm010227jsd", + "name" : "getMinAuthLevel" + }, + "acm010228jsd" : { + "type" : "ControlElement", + "id" : "acm010228jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010229jsd" : { + "type" : "ControlElement", + "id" : "acm010229jsd", + "name" : "execute" + }, + "acm010230jsd" : { + "type" : "ClassUnit", + "id" : "acm010230jsd", + "name" : "RemindFeedbackSessionResultAction", + "compilationUnitId" : "acm010223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm009186jsd", "acm009228jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010227jsd", "acm010228jsd", "acm010229jsd" ] + }, + "acm010231jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010231jsd", + "name" : "RemindFeedbackSessionSubmissionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010238jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010232jsd" : { + "type" : "CodePackage", + "id" : "acm010232jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010233jsd" ] + }, + "acm010233jsd" : { + "type" : "CodePackage", + "id" : "acm010233jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010234jsd" ] + }, + "acm010234jsd" : { + "type" : "CodePackage", + "id" : "acm010234jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010231jsd" ] + }, + "acm010235jsd" : { + "type" : "ControlElement", + "id" : "acm010235jsd", + "name" : "getMinAuthLevel" + }, + "acm010236jsd" : { + "type" : "ControlElement", + "id" : "acm010236jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010237jsd" : { + "type" : "ControlElement", + "id" : "acm010237jsd", + "name" : "execute" + }, + "acm010238jsd" : { + "type" : "ClassUnit", + "id" : "acm010238jsd", + "name" : "RemindFeedbackSessionSubmissionAction", + "compilationUnitId" : "acm010231jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm009186jsd", "acm009228jsd", "acm009513jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010235jsd", "acm010236jsd", "acm010237jsd" ] + }, + "acm010239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010239jsd", + "name" : "ResetAccountAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010244jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010240jsd" : { + "type" : "CodePackage", + "id" : "acm010240jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010241jsd" ] + }, + "acm010241jsd" : { + "type" : "CodePackage", + "id" : "acm010241jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010242jsd" ] + }, + "acm010242jsd" : { + "type" : "CodePackage", + "id" : "acm010242jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010239jsd" ] + }, + "acm010243jsd" : { + "type" : "ControlElement", + "id" : "acm010243jsd", + "name" : "execute" + }, + "acm010244jsd" : { + "type" : "ClassUnit", + "id" : "acm010244jsd", + "name" : "ResetAccountAction", + "compilationUnitId" : "acm010239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006168jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm010243jsd" ] + }, + "acm010245jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010245jsd", + "name" : "ResetAccountRequestAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010250jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010246jsd" : { + "type" : "CodePackage", + "id" : "acm010246jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010247jsd" ] + }, + "acm010247jsd" : { + "type" : "CodePackage", + "id" : "acm010247jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010248jsd" ] + }, + "acm010248jsd" : { + "type" : "CodePackage", + "id" : "acm010248jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010245jsd" ] + }, + "acm010249jsd" : { + "type" : "ControlElement", + "id" : "acm010249jsd", + "name" : "execute" + }, + "acm010250jsd" : { + "type" : "ClassUnit", + "id" : "acm010250jsd", + "name" : "ResetAccountRequestAction", + "compilationUnitId" : "acm010245jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006168jsd", "acm006188jsd", "acm006290jsd", "acm006435jsd", "acm008651jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm010249jsd" ] + }, + "acm010251jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010251jsd", + "name" : "RestoreCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010258jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010252jsd" : { + "type" : "CodePackage", + "id" : "acm010252jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010253jsd" ] + }, + "acm010253jsd" : { + "type" : "CodePackage", + "id" : "acm010253jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010254jsd" ] + }, + "acm010254jsd" : { + "type" : "CodePackage", + "id" : "acm010254jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010251jsd" ] + }, + "acm010255jsd" : { + "type" : "ControlElement", + "id" : "acm010255jsd", + "name" : "getMinAuthLevel" + }, + "acm010256jsd" : { + "type" : "ControlElement", + "id" : "acm010256jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010257jsd" : { + "type" : "ControlElement", + "id" : "acm010257jsd", + "name" : "execute" + }, + "acm010258jsd" : { + "type" : "ClassUnit", + "id" : "acm010258jsd", + "name" : "RestoreCourseAction", + "compilationUnitId" : "acm010251jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006168jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010255jsd", "acm010256jsd", "acm010257jsd" ] + }, + "acm010259jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010259jsd", + "name" : "RestoreFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010266jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010260jsd" : { + "type" : "CodePackage", + "id" : "acm010260jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010261jsd" ] + }, + "acm010261jsd" : { + "type" : "CodePackage", + "id" : "acm010261jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010262jsd" ] + }, + "acm010262jsd" : { + "type" : "CodePackage", + "id" : "acm010262jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010259jsd" ] + }, + "acm010263jsd" : { + "type" : "ControlElement", + "id" : "acm010263jsd", + "name" : "getMinAuthLevel" + }, + "acm010264jsd" : { + "type" : "ControlElement", + "id" : "acm010264jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010265jsd" : { + "type" : "ControlElement", + "id" : "acm010265jsd", + "name" : "execute" + }, + "acm010266jsd" : { + "type" : "ClassUnit", + "id" : "acm010266jsd", + "name" : "RestoreFeedbackSessionAction", + "compilationUnitId" : "acm010259jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm005112jsd", "acm005233jsd", "acm006168jsd", "acm008518jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010263jsd", "acm010264jsd", "acm010265jsd" ] + }, + "acm010267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010267jsd", + "name" : "SearchAccountRequestsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010272jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010268jsd" : { + "type" : "CodePackage", + "id" : "acm010268jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010269jsd" ] + }, + "acm010269jsd" : { + "type" : "CodePackage", + "id" : "acm010269jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010270jsd" ] + }, + "acm010270jsd" : { + "type" : "CodePackage", + "id" : "acm010270jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010267jsd" ] + }, + "acm010271jsd" : { + "type" : "ControlElement", + "id" : "acm010271jsd", + "name" : "execute" + }, + "acm010272jsd" : { + "type" : "ClassUnit", + "id" : "acm010272jsd", + "name" : "SearchAccountRequestsAction", + "compilationUnitId" : "acm010267jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006197jsd", "acm008257jsd", "acm008265jsd", "acm010167jsd" ], + "content" : [ "acm010271jsd" ] + }, + "acm010273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010273jsd", + "name" : "SearchInstructorsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010278jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010274jsd" : { + "type" : "CodePackage", + "id" : "acm010274jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010275jsd" ] + }, + "acm010275jsd" : { + "type" : "CodePackage", + "id" : "acm010275jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010276jsd" ] + }, + "acm010276jsd" : { + "type" : "CodePackage", + "id" : "acm010276jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010273jsd" ] + }, + "acm010277jsd" : { + "type" : "ControlElement", + "id" : "acm010277jsd", + "name" : "execute" + }, + "acm010278jsd" : { + "type" : "ClassUnit", + "id" : "acm010278jsd", + "name" : "SearchInstructorsAction", + "compilationUnitId" : "acm010273jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006197jsd", "acm008620jsd", "acm008644jsd", "acm010167jsd" ], + "content" : [ "acm010277jsd" ] + }, + "acm010279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010279jsd", + "name" : "SearchStudentsAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010286jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010280jsd" : { + "type" : "CodePackage", + "id" : "acm010280jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010281jsd" ] + }, + "acm010281jsd" : { + "type" : "CodePackage", + "id" : "acm010281jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010282jsd" ] + }, + "acm010282jsd" : { + "type" : "CodePackage", + "id" : "acm010282jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010279jsd" ] + }, + "acm010283jsd" : { + "type" : "ControlElement", + "id" : "acm010283jsd", + "name" : "getMinAuthLevel" + }, + "acm010284jsd" : { + "type" : "ControlElement", + "id" : "acm010284jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010285jsd" : { + "type" : "ControlElement", + "id" : "acm010285jsd", + "name" : "execute" + }, + "acm010286jsd" : { + "type" : "ClassUnit", + "id" : "acm010286jsd", + "name" : "SearchStudentsAction", + "compilationUnitId" : "acm010279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006197jsd", "acm008946jsd", "acm008955jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010283jsd", "acm010284jsd", "acm010285jsd" ] + }, + "acm010287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010287jsd", + "name" : "SendEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010292jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010288jsd" : { + "type" : "CodePackage", + "id" : "acm010288jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010289jsd" ] + }, + "acm010289jsd" : { + "type" : "CodePackage", + "id" : "acm010289jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010290jsd" ] + }, + "acm010290jsd" : { + "type" : "CodePackage", + "id" : "acm010290jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010287jsd" ] + }, + "acm010291jsd" : { + "type" : "ControlElement", + "id" : "acm010291jsd", + "name" : "execute" + }, + "acm010292jsd" : { + "type" : "ClassUnit", + "id" : "acm010292jsd", + "name" : "SendEmailWorkerAction", + "compilationUnitId" : "acm010287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd", "acm009228jsd", "acm009273jsd", "acm010167jsd" ], + "content" : [ "acm010291jsd" ] + }, + "acm010293jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010293jsd", + "name" : "SendErrorReportAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010301jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010294jsd" : { + "type" : "CodePackage", + "id" : "acm010294jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010295jsd" ] + }, + "acm010295jsd" : { + "type" : "CodePackage", + "id" : "acm010295jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010296jsd" ] + }, + "acm010296jsd" : { + "type" : "CodePackage", + "id" : "acm010296jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010293jsd" ] + }, + "acm010297jsd" : { + "type" : "ControlElement", + "id" : "acm010297jsd", + "name" : "getMinAuthLevel" + }, + "acm010298jsd" : { + "type" : "ControlElement", + "id" : "acm010298jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010299jsd" : { + "type" : "ControlElement", + "id" : "acm010299jsd", + "name" : "execute" + }, + "acm010300jsd" : { + "type" : "ControlElement", + "id" : "acm010300jsd", + "name" : "getUserErrorReportLogMessage" + }, + "acm010301jsd" : { + "type" : "ClassUnit", + "id" : "acm010301jsd", + "name" : "SendErrorReportAction", + "compilationUnitId" : "acm010293jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006435jsd", "acm009049jsd", "acm009228jsd", "acm009513jsd", "acm010167jsd" ], + "content" : [ "acm010297jsd", "acm010298jsd", "acm010299jsd", "acm010300jsd" ] + }, + "acm010302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010302jsd", + "name" : "SendJoinReminderEmailAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010309jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010303jsd" : { + "type" : "CodePackage", + "id" : "acm010303jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010304jsd" ] + }, + "acm010304jsd" : { + "type" : "CodePackage", + "id" : "acm010304jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010305jsd" ] + }, + "acm010305jsd" : { + "type" : "CodePackage", + "id" : "acm010305jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010302jsd" ] + }, + "acm010306jsd" : { + "type" : "ControlElement", + "id" : "acm010306jsd", + "name" : "getMinAuthLevel" + }, + "acm010307jsd" : { + "type" : "ControlElement", + "id" : "acm010307jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010308jsd" : { + "type" : "ControlElement", + "id" : "acm010308jsd", + "name" : "execute" + }, + "acm010309jsd" : { + "type" : "ClassUnit", + "id" : "acm010309jsd", + "name" : "SendJoinReminderEmailAction", + "compilationUnitId" : "acm010302jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010306jsd", "acm010307jsd", "acm010308jsd" ] + }, + "acm010310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010310jsd", + "name" : "SendLoginEmailAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010317jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010311jsd" : { + "type" : "CodePackage", + "id" : "acm010311jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010312jsd" ] + }, + "acm010312jsd" : { + "type" : "CodePackage", + "id" : "acm010312jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010313jsd" ] + }, + "acm010313jsd" : { + "type" : "CodePackage", + "id" : "acm010313jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010310jsd" ] + }, + "acm010314jsd" : { + "type" : "ControlElement", + "id" : "acm010314jsd", + "name" : "getMinAuthLevel" + }, + "acm010315jsd" : { + "type" : "ControlElement", + "id" : "acm010315jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010316jsd" : { + "type" : "ControlElement", + "id" : "acm010316jsd", + "name" : "execute" + }, + "acm010317jsd" : { + "type" : "ClassUnit", + "id" : "acm010317jsd", + "name" : "SendLoginEmailAction", + "compilationUnitId" : "acm010310jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd", "acm008765jsd", "acm009228jsd", "acm009513jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010314jsd", "acm010315jsd", "acm010316jsd" ] + }, + "acm010318jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010318jsd", + "name" : "SessionLinksRecoveryAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010325jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010319jsd" : { + "type" : "CodePackage", + "id" : "acm010319jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010320jsd" ] + }, + "acm010320jsd" : { + "type" : "CodePackage", + "id" : "acm010320jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010321jsd" ] + }, + "acm010321jsd" : { + "type" : "CodePackage", + "id" : "acm010321jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010318jsd" ] + }, + "acm010322jsd" : { + "type" : "ControlElement", + "id" : "acm010322jsd", + "name" : "getMinAuthLevel" + }, + "acm010323jsd" : { + "type" : "ControlElement", + "id" : "acm010323jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010324jsd" : { + "type" : "ControlElement", + "id" : "acm010324jsd", + "name" : "execute" + }, + "acm010325jsd" : { + "type" : "ClassUnit", + "id" : "acm010325jsd", + "name" : "SessionLinksRecoveryAction", + "compilationUnitId" : "acm010318jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd", "acm008773jsd", "acm009513jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm010322jsd", "acm010323jsd", "acm010324jsd" ] + }, + "acm010326jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010326jsd", + "name" : "StudentCourseJoinEmailWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010331jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010327jsd" : { + "type" : "CodePackage", + "id" : "acm010327jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010328jsd" ] + }, + "acm010328jsd" : { + "type" : "CodePackage", + "id" : "acm010328jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010329jsd" ] + }, + "acm010329jsd" : { + "type" : "CodePackage", + "id" : "acm010329jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010326jsd" ] + }, + "acm010330jsd" : { + "type" : "ControlElement", + "id" : "acm010330jsd", + "name" : "execute" + }, + "acm010331jsd" : { + "type" : "ClassUnit", + "id" : "acm010331jsd", + "name" : "StudentCourseJoinEmailWorkerAction", + "compilationUnitId" : "acm010326jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005412jsd", "acm006290jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010330jsd" ] + }, + "acm010332jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010332jsd", + "name" : "StudentSearchIndexingWorkerAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010337jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010333jsd" : { + "type" : "CodePackage", + "id" : "acm010333jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010334jsd" ] + }, + "acm010334jsd" : { + "type" : "CodePackage", + "id" : "acm010334jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010335jsd" ] + }, + "acm010335jsd" : { + "type" : "CodePackage", + "id" : "acm010335jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010332jsd" ] + }, + "acm010336jsd" : { + "type" : "ControlElement", + "id" : "acm010336jsd", + "name" : "execute" + }, + "acm010337jsd" : { + "type" : "ClassUnit", + "id" : "acm010337jsd", + "name" : "StudentSearchIndexingWorkerAction", + "compilationUnitId" : "acm010332jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm006197jsd", "acm009483jsd", "acm010167jsd" ], + "content" : [ "acm010336jsd" ] + }, + "acm010338jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010338jsd", + "name" : "SubmitFeedbackResponsesAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010345jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010339jsd" : { + "type" : "CodePackage", + "id" : "acm010339jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010340jsd" ] + }, + "acm010340jsd" : { + "type" : "CodePackage", + "id" : "acm010340jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010341jsd" ] + }, + "acm010341jsd" : { + "type" : "CodePackage", + "id" : "acm010341jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010338jsd" ] + }, + "acm010342jsd" : { + "type" : "ControlElement", + "id" : "acm010342jsd", + "name" : "getMinAuthLevel" + }, + "acm010343jsd" : { + "type" : "ControlElement", + "id" : "acm010343jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010344jsd" : { + "type" : "ControlElement", + "id" : "acm010344jsd", + "name" : "execute" + }, + "acm010345jsd" : { + "type" : "ClassUnit", + "id" : "acm010345jsd", + "name" : "SubmitFeedbackResponsesAction", + "compilationUnitId" : "acm010338jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009540jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004239jsd", "acm004788jsd", "acm004871jsd", "acm004885jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006061jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm008470jsd", "acm009123jsd", "acm009221jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010342jsd", "acm010343jsd", "acm010344jsd" ] + }, + "acm010346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010346jsd", + "name" : "UnauthorizedAccessException", + "parentId" : "acm009426jsd", + "content" : [ "acm010353jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010347jsd" : { + "type" : "CodePackage", + "id" : "acm010347jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010348jsd" ] + }, + "acm010348jsd" : { + "type" : "CodePackage", + "id" : "acm010348jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010349jsd" ] + }, + "acm010349jsd" : { + "type" : "CodePackage", + "id" : "acm010349jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010346jsd" ] + }, + "acm010350jsd" : { + "type" : "ControlElement", + "id" : "acm010350jsd", + "name" : "UnauthorizedAccessException" + }, + "acm010351jsd" : { + "type" : "ControlElement", + "id" : "acm010351jsd", + "name" : "UnauthorizedAccessException" + }, + "acm010352jsd" : { + "type" : "ControlElement", + "id" : "acm010352jsd", + "name" : "isShowErrorMessage" + }, + "acm010353jsd" : { + "type" : "ClassUnit", + "id" : "acm010353jsd", + "name" : "UnauthorizedAccessException", + "compilationUnitId" : "acm010346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010350jsd", "acm010351jsd", "acm010352jsd" ] + }, + "acm010354jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010354jsd", + "name" : "UnpublishFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010361jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010355jsd" : { + "type" : "CodePackage", + "id" : "acm010355jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010356jsd" ] + }, + "acm010356jsd" : { + "type" : "CodePackage", + "id" : "acm010356jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010357jsd" ] + }, + "acm010357jsd" : { + "type" : "CodePackage", + "id" : "acm010357jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010354jsd" ] + }, + "acm010358jsd" : { + "type" : "ControlElement", + "id" : "acm010358jsd", + "name" : "getMinAuthLevel" + }, + "acm010359jsd" : { + "type" : "ControlElement", + "id" : "acm010359jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010360jsd" : { + "type" : "ControlElement", + "id" : "acm010360jsd", + "name" : "execute" + }, + "acm010361jsd" : { + "type" : "ClassUnit", + "id" : "acm010361jsd", + "name" : "UnpublishFeedbackSessionAction", + "compilationUnitId" : "acm010354jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm006168jsd", "acm006188jsd", "acm006435jsd", "acm008518jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010358jsd", "acm010359jsd", "acm010360jsd" ] + }, + "acm010362jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010362jsd", + "name" : "UpdateCourseAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010369jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010363jsd" : { + "type" : "CodePackage", + "id" : "acm010363jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010364jsd" ] + }, + "acm010364jsd" : { + "type" : "CodePackage", + "id" : "acm010364jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010365jsd" ] + }, + "acm010365jsd" : { + "type" : "CodePackage", + "id" : "acm010365jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010362jsd" ] + }, + "acm010366jsd" : { + "type" : "ControlElement", + "id" : "acm010366jsd", + "name" : "getMinAuthLevel" + }, + "acm010367jsd" : { + "type" : "ControlElement", + "id" : "acm010367jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010368jsd" : { + "type" : "ControlElement", + "id" : "acm010368jsd", + "name" : "execute" + }, + "acm010369jsd" : { + "type" : "ClassUnit", + "id" : "acm010369jsd", + "name" : "UpdateCourseAction", + "compilationUnitId" : "acm010362jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm006168jsd", "acm006188jsd", "acm008329jsd", "acm009039jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010366jsd", "acm010367jsd", "acm010368jsd" ] + }, + "acm010370jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010370jsd", + "name" : "UpdateFeedbackQuestionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010377jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010371jsd" : { + "type" : "CodePackage", + "id" : "acm010371jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010372jsd" ] + }, + "acm010372jsd" : { + "type" : "CodePackage", + "id" : "acm010372jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010373jsd" ] + }, + "acm010373jsd" : { + "type" : "CodePackage", + "id" : "acm010373jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010370jsd" ] + }, + "acm010374jsd" : { + "type" : "ControlElement", + "id" : "acm010374jsd", + "name" : "getMinAuthLevel" + }, + "acm010375jsd" : { + "type" : "ControlElement", + "id" : "acm010375jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010376jsd" : { + "type" : "ControlElement", + "id" : "acm010376jsd", + "name" : "execute" + }, + "acm010377jsd" : { + "type" : "ClassUnit", + "id" : "acm010377jsd", + "name" : "UpdateFeedbackQuestionAction", + "compilationUnitId" : "acm010370jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006168jsd", "acm006188jsd", "acm008407jsd", "acm009087jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010374jsd", "acm010375jsd", "acm010376jsd" ] + }, + "acm010378jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010378jsd", + "name" : "UpdateFeedbackResponseCommentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010385jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010379jsd" : { + "type" : "CodePackage", + "id" : "acm010379jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010380jsd" ] + }, + "acm010380jsd" : { + "type" : "CodePackage", + "id" : "acm010380jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010381jsd" ] + }, + "acm010381jsd" : { + "type" : "CodePackage", + "id" : "acm010381jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010378jsd" ] + }, + "acm010382jsd" : { + "type" : "ControlElement", + "id" : "acm010382jsd", + "name" : "getMinAuthLevel" + }, + "acm010383jsd" : { + "type" : "ControlElement", + "id" : "acm010383jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010384jsd" : { + "type" : "ControlElement", + "id" : "acm010384jsd", + "name" : "execute" + }, + "acm010385jsd" : { + "type" : "ClassUnit", + "id" : "acm010385jsd", + "name" : "UpdateFeedbackResponseCommentAction", + "compilationUnitId" : "acm010378jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009522jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm004994jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006168jsd", "acm006188jsd", "acm008449jsd", "acm009110jsd", "acm009221jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010382jsd", "acm010383jsd", "acm010384jsd" ] + }, + "acm010386jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010386jsd", + "name" : "UpdateFeedbackSessionAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010394jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010387jsd" : { + "type" : "CodePackage", + "id" : "acm010387jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010388jsd" ] + }, + "acm010388jsd" : { + "type" : "CodePackage", + "id" : "acm010388jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010389jsd" ] + }, + "acm010389jsd" : { + "type" : "CodePackage", + "id" : "acm010389jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010386jsd" ] + }, + "acm010390jsd" : { + "type" : "ControlElement", + "id" : "acm010390jsd", + "name" : "getMinAuthLevel" + }, + "acm010391jsd" : { + "type" : "ControlElement", + "id" : "acm010391jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010392jsd" : { + "type" : "ControlElement", + "id" : "acm010392jsd", + "name" : "execute" + }, + "acm010393jsd" : { + "type" : "ControlElement", + "id" : "acm010393jsd", + "name" : "processDeadlineExtensions" + }, + "acm010394jsd" : { + "type" : "ClassUnit", + "id" : "acm010394jsd", + "name" : "UpdateFeedbackSessionAction", + "compilationUnitId" : "acm010386jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm006168jsd", "acm006188jsd", "acm006290jsd", "acm006435jsd", "acm008518jsd", "acm009195jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010390jsd", "acm010391jsd", "acm010392jsd", "acm010393jsd" ] + }, + "acm010395jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010395jsd", + "name" : "UpdateInstructorAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010403jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010396jsd" : { + "type" : "CodePackage", + "id" : "acm010396jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010397jsd" ] + }, + "acm010397jsd" : { + "type" : "CodePackage", + "id" : "acm010397jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010398jsd" ] + }, + "acm010398jsd" : { + "type" : "CodePackage", + "id" : "acm010398jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010395jsd" ] + }, + "acm010399jsd" : { + "type" : "ControlElement", + "id" : "acm010399jsd", + "name" : "getMinAuthLevel" + }, + "acm010400jsd" : { + "type" : "ControlElement", + "id" : "acm010400jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010401jsd" : { + "type" : "ControlElement", + "id" : "acm010401jsd", + "name" : "execute" + }, + "acm010402jsd" : { + "type" : "ControlElement", + "id" : "acm010402jsd", + "name" : "retrieveEditedInstructor" + }, + "acm010403jsd" : { + "type" : "ClassUnit", + "id" : "acm010403jsd", + "name" : "UpdateInstructorAction", + "compilationUnitId" : "acm010395jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm005233jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm008620jsd", "acm009208jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010399jsd", "acm010400jsd", "acm010401jsd", "acm010402jsd" ] + }, + "acm010404jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010404jsd", + "name" : "UpdateInstructorPrivilegeAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010411jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010405jsd" : { + "type" : "CodePackage", + "id" : "acm010405jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010406jsd" ] + }, + "acm010406jsd" : { + "type" : "CodePackage", + "id" : "acm010406jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010407jsd" ] + }, + "acm010407jsd" : { + "type" : "CodePackage", + "id" : "acm010407jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010404jsd" ] + }, + "acm010408jsd" : { + "type" : "ControlElement", + "id" : "acm010408jsd", + "name" : "getMinAuthLevel" + }, + "acm010409jsd" : { + "type" : "ControlElement", + "id" : "acm010409jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010410jsd" : { + "type" : "ControlElement", + "id" : "acm010410jsd", + "name" : "execute" + }, + "acm010411jsd" : { + "type" : "ClassUnit", + "id" : "acm010411jsd", + "name" : "UpdateInstructorPrivilegeAction", + "compilationUnitId" : "acm010404jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm005233jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm006435jsd", "acm008635jsd", "acm009216jsd", "acm009228jsd", "acm009513jsd", "acm009748jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010408jsd", "acm010409jsd", "acm010410jsd" ] + }, + "acm010412jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010412jsd", + "name" : "UpdateNotificationAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010417jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010413jsd" : { + "type" : "CodePackage", + "id" : "acm010413jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010414jsd" ] + }, + "acm010414jsd" : { + "type" : "CodePackage", + "id" : "acm010414jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010415jsd" ] + }, + "acm010415jsd" : { + "type" : "CodePackage", + "id" : "acm010415jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010412jsd" ] + }, + "acm010416jsd" : { + "type" : "ControlElement", + "id" : "acm010416jsd", + "name" : "execute" + }, + "acm010417jsd" : { + "type" : "ClassUnit", + "id" : "acm010417jsd", + "name" : "UpdateNotificationAction", + "compilationUnitId" : "acm010412jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009498jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005339jsd", "acm006168jsd", "acm006188jsd", "acm008685jsd", "acm009228jsd", "acm009265jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm010416jsd" ] + }, + "acm010418jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010418jsd", + "name" : "UpdateStudentAction", + "parentId" : "acm009426jsd", + "content" : [ "acm010426jsd" ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010419jsd" : { + "type" : "CodePackage", + "id" : "acm010419jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010420jsd" ] + }, + "acm010420jsd" : { + "type" : "CodePackage", + "id" : "acm010420jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010421jsd" ] + }, + "acm010421jsd" : { + "type" : "CodePackage", + "id" : "acm010421jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010418jsd" ] + }, + "acm010422jsd" : { + "type" : "ControlElement", + "id" : "acm010422jsd", + "name" : "getMinAuthLevel" + }, + "acm010423jsd" : { + "type" : "ControlElement", + "id" : "acm010423jsd", + "name" : "checkSpecificAccessControl" + }, + "acm010424jsd" : { + "type" : "ControlElement", + "id" : "acm010424jsd", + "name" : "execute" + }, + "acm010425jsd" : { + "type" : "ControlElement", + "id" : "acm010425jsd", + "name" : "sendEmail" + }, + "acm010426jsd" : { + "type" : "ClassUnit", + "id" : "acm010426jsd", + "name" : "UpdateStudentAction", + "compilationUnitId" : "acm010418jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm009459jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006156jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006259jsd", "acm006290jsd", "acm009228jsd", "acm009286jsd", "acm009513jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd" ], + "content" : [ "acm010422jsd", "acm010423jsd", "acm010424jsd", "acm010425jsd" ] + }, + "acm010427jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010427jsd", + "name" : "package-info", + "parentId" : "acm009426jsd", + "content" : [ ], + "pathElements" : [ "src", "main", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010428jsd" : { + "type" : "CodePackage", + "id" : "acm010428jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010429jsd" ] + }, + "acm010429jsd" : { + "type" : "CodePackage", + "id" : "acm010429jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm010430jsd" ] + }, + "acm010430jsd" : { + "type" : "CodePackage", + "id" : "acm010430jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm010427jsd" ] + }, + "acm010431jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010431jsd", + "name" : "ArchitectureTest", + "parentId" : "acm010433jsd", + "content" : [ "acm010496jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010432jsd" : { + "type" : "CodePackage", + "id" : "acm010432jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010433jsd" ] + }, + "acm010433jsd" : { + "type" : "CodePackage", + "id" : "acm010433jsd", + "name" : "architecture", + "parentId" : "acm001338jsd", + "content" : [ "acm010431jsd", "acm010497jsd" ] + }, + "acm010434jsd" : { + "type" : "ControlElement", + "id" : "acm010434jsd", + "name" : "includeSubpackages" + }, + "acm010435jsd" : { + "type" : "ControlElement", + "id" : "acm010435jsd", + "name" : "forClasses" + }, + "acm010436jsd" : { + "type" : "ControlElement", + "id" : "acm010436jsd", + "name" : "testArchitecture_uiShouldNotTouchStorage" + }, + "acm010437jsd" : { + "type" : "ControlElement", + "id" : "acm010437jsd", + "name" : "testArchitecture_mainShouldNotTouchProductionCodeExceptCommon" + }, + "acm010438jsd" : { + "type" : "ControlElement", + "id" : "acm010438jsd", + "name" : "apply" + }, + "acm010439jsd" : { + "type" : "ControlElement", + "id" : "acm010439jsd", + "name" : "testArchitecture_logicShouldNotTouchUi" + }, + "acm010440jsd" : { + "type" : "ControlElement", + "id" : "acm010440jsd", + "name" : "testArchitecture_storageShouldNotTouchLogic" + }, + "acm010441jsd" : { + "type" : "ControlElement", + "id" : "acm010441jsd", + "name" : "testArchitecture_storageShouldNotTouchUi" + }, + "acm010442jsd" : { + "type" : "ControlElement", + "id" : "acm010442jsd", + "name" : "testArchitecture_commonShouldNotTouchLogic" + }, + "acm010443jsd" : { + "type" : "ControlElement", + "id" : "acm010443jsd", + "name" : "testArchitecture_commonShouldNotTouchStorage" + }, + "acm010444jsd" : { + "type" : "ControlElement", + "id" : "acm010444jsd", + "name" : "testArchitecture_commonShouldNotTouchUi" + }, + "acm010445jsd" : { + "type" : "ControlElement", + "id" : "acm010445jsd", + "name" : "testArchitecture_uiShouldNotTouchLogicExceptForApi" + }, + "acm010446jsd" : { + "type" : "ControlElement", + "id" : "acm010446jsd", + "name" : "testArchitecture_ui_onlyWebApiCanTouchOutput" + }, + "acm010447jsd" : { + "type" : "ControlElement", + "id" : "acm010447jsd", + "name" : "testArchitecture_ui_onlyWebApiCanTouchRequest" + }, + "acm010448jsd" : { + "type" : "ControlElement", + "id" : "acm010448jsd", + "name" : "testArchitecture_ui_apiRequestCanOnlyTouchRequestAndOutput" + }, + "acm010449jsd" : { + "type" : "ControlElement", + "id" : "acm010449jsd", + "name" : "testArchitecture_ui_apiOutputCanOnlyTouchOutput" + }, + "acm010450jsd" : { + "type" : "ControlElement", + "id" : "acm010450jsd", + "name" : "testArchitecture_ui_controllerShouldBeSelfContained" + }, + "acm010451jsd" : { + "type" : "ControlElement", + "id" : "acm010451jsd", + "name" : "testArchitecture_logic_logicCanOnlyAccessStorageApi" + }, + "acm010452jsd" : { + "type" : "ControlElement", + "id" : "acm010452jsd", + "name" : "testArchitecture_logic_coreLogicCanOnlyAccessItsCorrespondingDb" + }, + "acm010453jsd" : { + "type" : "ControlElement", + "id" : "acm010453jsd", + "name" : "apply" + }, + "acm010454jsd" : { + "type" : "ControlElement", + "id" : "acm010454jsd", + "name" : "testArchitecture_logic_coreLogicShouldNotTouchApiLogic" + }, + "acm010455jsd" : { + "type" : "ControlElement", + "id" : "acm010455jsd", + "name" : "testArchitecture_logic_coreLogicShouldNotTouchExternalLogic" + }, + "acm010456jsd" : { + "type" : "ControlElement", + "id" : "acm010456jsd", + "name" : "testArchitecture_logic_externalLogicShouldNotTouchCoreLogic" + }, + "acm010457jsd" : { + "type" : "ControlElement", + "id" : "acm010457jsd", + "name" : "testArchitecture_storage_storageSearchShouldNotTouchStorageEntity" + }, + "acm010458jsd" : { + "type" : "ControlElement", + "id" : "acm010458jsd", + "name" : "testArchitecture_storage_storageEntityShouldNotTouchOtherStoragePackages" + }, + "acm010459jsd" : { + "type" : "ControlElement", + "id" : "acm010459jsd", + "name" : "apply" + }, + "acm010460jsd" : { + "type" : "ControlElement", + "id" : "acm010460jsd", + "name" : "testArchitecture_testClasses_testCasesShouldBeIndependent" + }, + "acm010461jsd" : { + "type" : "ControlElement", + "id" : "acm010461jsd", + "name" : "apply" + }, + "acm010462jsd" : { + "type" : "ControlElement", + "id" : "acm010462jsd", + "name" : "testArchitecture_testClasses_driverShouldNotHaveAnyDependency" + }, + "acm010463jsd" : { + "type" : "ControlElement", + "id" : "acm010463jsd", + "name" : "apply" + }, + "acm010464jsd" : { + "type" : "ControlElement", + "id" : "acm010464jsd", + "name" : "apply" + }, + "acm010465jsd" : { + "type" : "ControlElement", + "id" : "acm010465jsd", + "name" : "apply" + }, + "acm010466jsd" : { + "type" : "ControlElement", + "id" : "acm010466jsd", + "name" : "testArchitecture_e2e_e2eShouldBeSelfContained" + }, + "acm010467jsd" : { + "type" : "ControlElement", + "id" : "acm010467jsd", + "name" : "testArchitecture_e2e_e2eShouldNotTouchProductionCodeExceptCommon" + }, + "acm010468jsd" : { + "type" : "ControlElement", + "id" : "acm010468jsd", + "name" : "testArchitecture_e2e_e2eTestCasesShouldBeIndependentOfEachOther" + }, + "acm010469jsd" : { + "type" : "ControlElement", + "id" : "acm010469jsd", + "name" : "apply" + }, + "acm010470jsd" : { + "type" : "ControlElement", + "id" : "acm010470jsd", + "name" : "apply" + }, + "acm010471jsd" : { + "type" : "ControlElement", + "id" : "acm010471jsd", + "name" : "testArchitecture_e2e_onlyE2ETestsCanAccessPageObjects" + }, + "acm010472jsd" : { + "type" : "ControlElement", + "id" : "acm010472jsd", + "name" : "testArchitecture_e2e_utilShouldNotHaveAnyDependency" + }, + "acm010473jsd" : { + "type" : "ControlElement", + "id" : "acm010473jsd", + "name" : "apply" + }, + "acm010474jsd" : { + "type" : "ControlElement", + "id" : "acm010474jsd", + "name" : "testArchitecture_lnp_lnpShouldBeSelfContained" + }, + "acm010475jsd" : { + "type" : "ControlElement", + "id" : "acm010475jsd", + "name" : "testArchitecture_lnp_lnpShouldNotTouchProductionCodeExceptCommonAndRequests" + }, + "acm010476jsd" : { + "type" : "ControlElement", + "id" : "acm010476jsd", + "name" : "apply" + }, + "acm010477jsd" : { + "type" : "ControlElement", + "id" : "acm010477jsd", + "name" : "testArchitecture_lnp_lnpTestCasesShouldBeIndependentOfEachOther" + }, + "acm010478jsd" : { + "type" : "ControlElement", + "id" : "acm010478jsd", + "name" : "apply" + }, + "acm010479jsd" : { + "type" : "ControlElement", + "id" : "acm010479jsd", + "name" : "apply" + }, + "acm010480jsd" : { + "type" : "ControlElement", + "id" : "acm010480jsd", + "name" : "testArchitecture_lnp_lnpShouldNotHaveAnyDependency" + }, + "acm010481jsd" : { + "type" : "ControlElement", + "id" : "acm010481jsd", + "name" : "apply" + }, + "acm010482jsd" : { + "type" : "ControlElement", + "id" : "acm010482jsd", + "name" : "testArchitecture_client_clientShouldBeSelfContained" + }, + "acm010483jsd" : { + "type" : "ControlElement", + "id" : "acm010483jsd", + "name" : "testArchitecture_client_clientShouldNotTouchUiComponent" + }, + "acm010484jsd" : { + "type" : "ControlElement", + "id" : "acm010484jsd", + "name" : "testArchitecture_client_connectorShouldNotTouchScripts" + }, + "acm010485jsd" : { + "type" : "ControlElement", + "id" : "acm010485jsd", + "name" : "testArchitecture_client_utilShouldNotHaveAnyDependency" + }, + "acm010486jsd" : { + "type" : "ControlElement", + "id" : "acm010486jsd", + "name" : "apply" + }, + "acm010487jsd" : { + "type" : "ControlElement", + "id" : "acm010487jsd", + "name" : "testArchitecture_externalApi_loggingApiCanOnlyBeAccessedByLogger" + }, + "acm010488jsd" : { + "type" : "ControlElement", + "id" : "acm010488jsd", + "name" : "testArchitecture_externalApi_solrApiCanOnlyBeAccessedBySearchManagerClasses" + }, + "acm010489jsd" : { + "type" : "ControlElement", + "id" : "acm010489jsd", + "name" : "testArchitecture_externalApi_cloudTasksApiCanOnlyBeAccessedByCloudTasksService" + }, + "acm010490jsd" : { + "type" : "ControlElement", + "id" : "acm010490jsd", + "name" : "testArchitecture_externalApi_cloudLoggingApiCanOnlyBeAccessedByCloudLoggingService" + }, + "acm010491jsd" : { + "type" : "ControlElement", + "id" : "acm010491jsd", + "name" : "testArchitecture_externalApi_objectifyApiCanOnlyBeAccessedBySomePackages" + }, + "acm010492jsd" : { + "type" : "ControlElement", + "id" : "acm010492jsd", + "name" : "testArchitecture_externalApi_servletApiCanOnlyBeAccessedBySomePackages" + }, + "acm010493jsd" : { + "type" : "ControlElement", + "id" : "acm010493jsd", + "name" : "testArchitecture_externalApi_jettyApiCanOnlyBeAccessedBySomePackages" + }, + "acm010494jsd" : { + "type" : "ControlElement", + "id" : "acm010494jsd", + "name" : "testArchitecture_externalApi_assertionApiCanOnlyBeAccessedBySomePackages" + }, + "acm010495jsd" : { + "type" : "ControlElement", + "id" : "acm010495jsd", + "name" : "testArchitecture_externalApi_seleniumApiCanOnlyBeAccessedByPageObjects" + }, + "acm010496jsd" : { + "type" : "ClassUnit", + "id" : "acm010496jsd", + "name" : "ArchitectureTest", + "compilationUnitId" : "acm010431jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010434jsd", "acm010435jsd", "acm010436jsd", "acm010437jsd", "acm010438jsd", "acm010439jsd", "acm010440jsd", "acm010441jsd", "acm010442jsd", "acm010443jsd", "acm010444jsd", "acm010445jsd", "acm010446jsd", "acm010447jsd", "acm010448jsd", "acm010449jsd", "acm010450jsd", "acm010451jsd", "acm010452jsd", "acm010453jsd", "acm010454jsd", "acm010455jsd", "acm010456jsd", "acm010457jsd", "acm010458jsd", "acm010459jsd", "acm010460jsd", "acm010461jsd", "acm010462jsd", "acm010463jsd", "acm010464jsd", "acm010465jsd", "acm010466jsd", "acm010467jsd", "acm010468jsd", "acm010469jsd", "acm010470jsd", "acm010471jsd", "acm010472jsd", "acm010473jsd", "acm010474jsd", "acm010475jsd", "acm010476jsd", "acm010477jsd", "acm010478jsd", "acm010479jsd", "acm010480jsd", "acm010481jsd", "acm010482jsd", "acm010483jsd", "acm010484jsd", "acm010485jsd", "acm010486jsd", "acm010487jsd", "acm010488jsd", "acm010489jsd", "acm010490jsd", "acm010491jsd", "acm010492jsd", "acm010493jsd", "acm010494jsd", "acm010495jsd" ] + }, + "acm010497jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010497jsd", + "name" : "package-info", + "parentId" : "acm010433jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "architecture" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010498jsd" : { + "type" : "CodePackage", + "id" : "acm010498jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010499jsd" ] + }, + "acm010499jsd" : { + "type" : "CodePackage", + "id" : "acm010499jsd", + "name" : "architecture", + "parentId" : null, + "content" : [ "acm010497jsd" ] + }, + "acm010500jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010500jsd", + "name" : "AttributesDeletionQueryTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010507jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010501jsd" : { + "type" : "CodePackage", + "id" : "acm010501jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010502jsd" ] + }, + "acm010502jsd" : { + "type" : "CodePackage", + "id" : "acm010502jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010503jsd" ] + }, + "acm010503jsd" : { + "type" : "CodePackage", + "id" : "acm010503jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010500jsd" ] + }, + "acm010504jsd" : { + "type" : "ControlElement", + "id" : "acm010504jsd", + "name" : "testBuilder_invalidCombination_shouldThrowException" + }, + "acm010505jsd" : { + "type" : "ControlElement", + "id" : "acm010505jsd", + "name" : "testBuilder_validCombination_shouldBuildCorrectQuery" + }, + "acm010506jsd" : { + "type" : "ControlElement", + "id" : "acm010506jsd", + "name" : "testBuilder_nullInput_shouldThrowException" + }, + "acm010507jsd" : { + "type" : "ClassUnit", + "id" : "acm010507jsd", + "name" : "AttributesDeletionQueryTest", + "compilationUnitId" : "acm010500jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd" ], + "content" : [ "acm010504jsd", "acm010505jsd", "acm010506jsd" ] + }, + "acm010508jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010508jsd", + "name" : "CourseRosterTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010522jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010509jsd" : { + "type" : "CodePackage", + "id" : "acm010509jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010510jsd" ] + }, + "acm010510jsd" : { + "type" : "CodePackage", + "id" : "acm010510jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010511jsd" ] + }, + "acm010511jsd" : { + "type" : "CodePackage", + "id" : "acm010511jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010508jsd" ] + }, + "acm010512jsd" : { + "type" : "ControlElement", + "id" : "acm010512jsd", + "name" : "allTests" + }, + "acm010513jsd" : { + "type" : "ControlElement", + "id" : "acm010513jsd", + "name" : "testBuildTeamToMembersTable_emptyStudentList_shouldReturnsEmptyMap" + }, + "acm010514jsd" : { + "type" : "ControlElement", + "id" : "acm010514jsd", + "name" : "testBuildTeamToMembersTable_typicalStudentList_shouldBuildMap" + }, + "acm010515jsd" : { + "type" : "ControlElement", + "id" : "acm010515jsd", + "name" : "testGetTeamToMembersTable_typicalCase_shouldGroupTeamCorrectly" + }, + "acm010516jsd" : { + "type" : "ControlElement", + "id" : "acm010516jsd", + "name" : "testGetInfoForIdentifier_studentCase_shouldShowCorrectInfo" + }, + "acm010517jsd" : { + "type" : "ControlElement", + "id" : "acm010517jsd", + "name" : "testGetInfoForIdentifier_instructorCase_shouldShowCorrectInfo" + }, + "acm010518jsd" : { + "type" : "ControlElement", + "id" : "acm010518jsd", + "name" : "testGetInfoForIdentifier_teamCase_shouldShowCorrectInfo" + }, + "acm010519jsd" : { + "type" : "ControlElement", + "id" : "acm010519jsd", + "name" : "testGetInfoForIdentifier_unknownCase_shouldShowCorrectInfo" + }, + "acm010520jsd" : { + "type" : "ControlElement", + "id" : "acm010520jsd", + "name" : "createStudentList" + }, + "acm010521jsd" : { + "type" : "ControlElement", + "id" : "acm010521jsd", + "name" : "createInstructorList" + }, + "acm010522jsd" : { + "type" : "ClassUnit", + "id" : "acm010522jsd", + "name" : "CourseRosterTest", + "compilationUnitId" : "acm010508jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004200jsd", "acm005233jsd", "acm005412jsd" ], + "content" : [ "acm010512jsd", "acm010513jsd", "acm010514jsd", "acm010515jsd", "acm010516jsd", "acm010517jsd", "acm010518jsd", "acm010519jsd", "acm010520jsd", "acm010521jsd" ] + }, + "acm010523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010523jsd", + "name" : "ErrorLogEntryTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010531jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010524jsd" : { + "type" : "CodePackage", + "id" : "acm010524jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010525jsd" ] + }, + "acm010525jsd" : { + "type" : "CodePackage", + "id" : "acm010525jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010526jsd" ] + }, + "acm010526jsd" : { + "type" : "CodePackage", + "id" : "acm010526jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010523jsd" ] + }, + "acm010527jsd" : { + "type" : "ControlElement", + "id" : "acm010527jsd", + "name" : "testFromLogEntry_noLogDetails_shouldGetTextPayload" + }, + "acm010528jsd" : { + "type" : "ControlElement", + "id" : "acm010528jsd", + "name" : "testFromLogEntry_logDetailsNotException_shouldGetSerializedPayload" + }, + "acm010529jsd" : { + "type" : "ControlElement", + "id" : "acm010529jsd", + "name" : "testFromLogEntry_exceptionLogDetails_shouldGetPrettyPrintedLog" + }, + "acm010530jsd" : { + "type" : "ControlElement", + "id" : "acm010530jsd", + "name" : "createTypicalLogEntry" + }, + "acm010531jsd" : { + "type" : "ClassUnit", + "id" : "acm010531jsd", + "name" : "ErrorLogEntryTest", + "compilationUnitId" : "acm010523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004215jsd", "acm005530jsd", "acm005572jsd", "acm005584jsd", "acm005726jsd" ], + "content" : [ "acm010527jsd", "acm010528jsd", "acm010529jsd", "acm010530jsd" ] + }, + "acm010532jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010532jsd", + "name" : "InstructorPrivilegesTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010546jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010533jsd" : { + "type" : "CodePackage", + "id" : "acm010533jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010534jsd" ] + }, + "acm010534jsd" : { + "type" : "CodePackage", + "id" : "acm010534jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010535jsd" ] + }, + "acm010535jsd" : { + "type" : "CodePackage", + "id" : "acm010535jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010532jsd" ] + }, + "acm010536jsd" : { + "type" : "ControlElement", + "id" : "acm010536jsd", + "name" : "testSetDefault" + }, + "acm010537jsd" : { + "type" : "ControlElement", + "id" : "acm010537jsd", + "name" : "testConstructor" + }, + "acm010538jsd" : { + "type" : "ControlElement", + "id" : "acm010538jsd", + "name" : "testIsPrivilegeNameValid" + }, + "acm010539jsd" : { + "type" : "ControlElement", + "id" : "acm010539jsd", + "name" : "testUpdatePrivilegeInCourseLevel" + }, + "acm010540jsd" : { + "type" : "ControlElement", + "id" : "acm010540jsd", + "name" : "testUpdatePrivilegeInSectionLevel" + }, + "acm010541jsd" : { + "type" : "ControlElement", + "id" : "acm010541jsd", + "name" : "testUpdatePrivilegeInSessionLevel" + }, + "acm010542jsd" : { + "type" : "ControlElement", + "id" : "acm010542jsd", + "name" : "testAddSectionWithDefaultPrivilegesToSectionLevel" + }, + "acm010543jsd" : { + "type" : "ControlElement", + "id" : "acm010543jsd", + "name" : "testIsAllowedForPrivilege" + }, + "acm010544jsd" : { + "type" : "ControlElement", + "id" : "acm010544jsd", + "name" : "testValidatePrivileges" + }, + "acm010545jsd" : { + "type" : "ControlElement", + "id" : "acm010545jsd", + "name" : "testHasDefaultPrivileges" + }, + "acm010546jsd" : { + "type" : "ClassUnit", + "id" : "acm010546jsd", + "name" : "InstructorPrivilegesTest", + "compilationUnitId" : "acm010532jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004332jsd" ], + "content" : [ "acm010536jsd", "acm010537jsd", "acm010538jsd", "acm010539jsd", "acm010540jsd", "acm010541jsd", "acm010542jsd", "acm010543jsd", "acm010544jsd", "acm010545jsd" ] + }, + "acm010547jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010547jsd", + "name" : "SessionResultsBundleTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010556jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010548jsd" : { + "type" : "CodePackage", + "id" : "acm010548jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010549jsd" ] + }, + "acm010549jsd" : { + "type" : "CodePackage", + "id" : "acm010549jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010550jsd" ] + }, + "acm010550jsd" : { + "type" : "CodePackage", + "id" : "acm010550jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010547jsd" ] + }, + "acm010551jsd" : { + "type" : "ControlElement", + "id" : "acm010551jsd", + "name" : "testGetQuestionResponseMap" + }, + "acm010552jsd" : { + "type" : "ControlElement", + "id" : "acm010552jsd", + "name" : "testGetQuestionMissingResponseMap" + }, + "acm010553jsd" : { + "type" : "ControlElement", + "id" : "acm010553jsd", + "name" : "testIsResponseGiverRecipientVisible_typicalCase_shouldReturnCorrectValues" + }, + "acm010554jsd" : { + "type" : "ControlElement", + "id" : "acm010554jsd", + "name" : "testIsCommentGiverVisible_typicalCase_shouldReturnCorrectValues" + }, + "acm010555jsd" : { + "type" : "ControlElement", + "id" : "acm010555jsd", + "name" : "testGetAnonName_typicalCase_shouldGenerateCorrectly" + }, + "acm010556jsd" : { + "type" : "ClassUnit", + "id" : "acm010556jsd", + "name" : "SessionResultsBundleTest", + "compilationUnitId" : "acm010547jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004205jsd", "acm004383jsd", "acm004788jsd", "acm004871jsd" ], + "content" : [ "acm010551jsd", "acm010552jsd", "acm010553jsd", "acm010554jsd", "acm010555jsd" ] + }, + "acm010557jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010557jsd", + "name" : "TeamEvalResultTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010572jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010558jsd" : { + "type" : "CodePackage", + "id" : "acm010558jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010559jsd" ] + }, + "acm010559jsd" : { + "type" : "CodePackage", + "id" : "acm010559jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010560jsd" ] + }, + "acm010560jsd" : { + "type" : "CodePackage", + "id" : "acm010560jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010557jsd" ] + }, + "acm010561jsd" : { + "type" : "ControlElement", + "id" : "acm010561jsd", + "name" : "testCalculatePoints" + }, + "acm010562jsd" : { + "type" : "ControlElement", + "id" : "acm010562jsd", + "name" : "testNormalizeValues" + }, + "acm010563jsd" : { + "type" : "ControlElement", + "id" : "acm010563jsd", + "name" : "testExcludeSelfRatings" + }, + "acm010564jsd" : { + "type" : "ControlElement", + "id" : "acm010564jsd", + "name" : "testAverageColumns" + }, + "acm010565jsd" : { + "type" : "ControlElement", + "id" : "acm010565jsd", + "name" : "testSum" + }, + "acm010566jsd" : { + "type" : "ControlElement", + "id" : "acm010566jsd", + "name" : "testCalculatePerceivedForStudent" + }, + "acm010567jsd" : { + "type" : "ControlElement", + "id" : "acm010567jsd", + "name" : "testIsSanitized" + }, + "acm010568jsd" : { + "type" : "ControlElement", + "id" : "acm010568jsd", + "name" : "testPurgeValuesCorrespondingToSpecialValuesInFilter" + }, + "acm010569jsd" : { + "type" : "ControlElement", + "id" : "acm010569jsd", + "name" : "verifyCalculatePoints" + }, + "acm010570jsd" : { + "type" : "ControlElement", + "id" : "acm010570jsd", + "name" : "verifyPurgeValuesCorrespondingToSpecialValuesInFilter" + }, + "acm010571jsd" : { + "type" : "ControlElement", + "id" : "acm010571jsd", + "name" : "verifyNormalized" + }, + "acm010572jsd" : { + "type" : "ClassUnit", + "id" : "acm010572jsd", + "name" : "TeamEvalResultTest", + "compilationUnitId" : "acm010557jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004421jsd" ], + "content" : [ "acm010561jsd", "acm010562jsd", "acm010563jsd", "acm010564jsd", "acm010565jsd", "acm010566jsd", "acm010567jsd", "acm010568jsd", "acm010569jsd", "acm010570jsd", "acm010571jsd" ] + }, + "acm010573jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010573jsd", + "name" : "UserInfoCookieTest", + "parentId" : "acm004140jsd", + "content" : [ "acm010578jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010574jsd" : { + "type" : "CodePackage", + "id" : "acm010574jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010575jsd" ] + }, + "acm010575jsd" : { + "type" : "CodePackage", + "id" : "acm010575jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010576jsd" ] + }, + "acm010576jsd" : { + "type" : "CodePackage", + "id" : "acm010576jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010573jsd" ] + }, + "acm010577jsd" : { + "type" : "ControlElement", + "id" : "acm010577jsd", + "name" : "testIsValid" + }, + "acm010578jsd" : { + "type" : "ClassUnit", + "id" : "acm010578jsd", + "name" : "UserInfoCookieTest", + "compilationUnitId" : "acm010573jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004446jsd" ], + "content" : [ "acm010577jsd" ] + }, + "acm010579jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010579jsd", + "name" : "AccountAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010600jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010580jsd" : { + "type" : "CodePackage", + "id" : "acm010580jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010581jsd" ] + }, + "acm010581jsd" : { + "type" : "CodePackage", + "id" : "acm010581jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010582jsd" ] + }, + "acm010582jsd" : { + "type" : "CodePackage", + "id" : "acm010582jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010583jsd" ] + }, + "acm010583jsd" : { + "type" : "CodePackage", + "id" : "acm010583jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010579jsd" ] + }, + "acm010584jsd" : { + "type" : "ControlElement", + "id" : "acm010584jsd", + "name" : "testGetInvalidStateInfo" + }, + "acm010585jsd" : { + "type" : "ControlElement", + "id" : "acm010585jsd", + "name" : "testToEntity" + }, + "acm010586jsd" : { + "type" : "ControlElement", + "id" : "acm010586jsd", + "name" : "testToString" + }, + "acm010587jsd" : { + "type" : "ControlElement", + "id" : "acm010587jsd", + "name" : "testSanitizeForSaving" + }, + "acm010588jsd" : { + "type" : "ControlElement", + "id" : "acm010588jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010589jsd" : { + "type" : "ControlElement", + "id" : "acm010589jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010590jsd" : { + "type" : "ControlElement", + "id" : "acm010590jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010591jsd" : { + "type" : "ControlElement", + "id" : "acm010591jsd", + "name" : "testValueOf" + }, + "acm010592jsd" : { + "type" : "ControlElement", + "id" : "acm010592jsd", + "name" : "testGetCopy_typicalData_createsCopyCorrectly" + }, + "acm010593jsd" : { + "type" : "ControlElement", + "id" : "acm010593jsd", + "name" : "testGetCopy_allFieldsNull_createsCopyCorrectly" + }, + "acm010594jsd" : { + "type" : "ControlElement", + "id" : "acm010594jsd", + "name" : "testEquals" + }, + "acm010595jsd" : { + "type" : "ControlElement", + "id" : "acm010595jsd", + "name" : "testHashCode" + }, + "acm010596jsd" : { + "type" : "ControlElement", + "id" : "acm010596jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010597jsd" : { + "type" : "ControlElement", + "id" : "acm010597jsd", + "name" : "createInvalidAccountAttributesObject" + }, + "acm010598jsd" : { + "type" : "ControlElement", + "id" : "acm010598jsd", + "name" : "createValidAccountAttributesObject" + }, + "acm010599jsd" : { + "type" : "ControlElement", + "id" : "acm010599jsd", + "name" : "createAccountAttributesToSanitize" + }, + "acm010600jsd" : { + "type" : "ClassUnit", + "id" : "acm010600jsd", + "name" : "AccountAttributesTest", + "compilationUnitId" : "acm010579jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm007735jsd" ], + "content" : [ "acm010584jsd", "acm010585jsd", "acm010586jsd", "acm010587jsd", "acm010588jsd", "acm010589jsd", "acm010590jsd", "acm010591jsd", "acm010592jsd", "acm010593jsd", "acm010594jsd", "acm010595jsd", "acm010596jsd", "acm010597jsd", "acm010598jsd", "acm010599jsd" ] + }, + "acm010601jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010601jsd", + "name" : "AccountRequestAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010618jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010602jsd" : { + "type" : "CodePackage", + "id" : "acm010602jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010603jsd" ] + }, + "acm010603jsd" : { + "type" : "CodePackage", + "id" : "acm010603jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010604jsd" ] + }, + "acm010604jsd" : { + "type" : "CodePackage", + "id" : "acm010604jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010605jsd" ] + }, + "acm010605jsd" : { + "type" : "CodePackage", + "id" : "acm010605jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010601jsd" ] + }, + "acm010606jsd" : { + "type" : "ControlElement", + "id" : "acm010606jsd", + "name" : "testValueOf_withTypicalData_shouldGenerateAttributesCorrectly" + }, + "acm010607jsd" : { + "type" : "ControlElement", + "id" : "acm010607jsd", + "name" : "testValueOf_registeredWithTypicalData_shouldGenerateAttributesCorrectly" + }, + "acm010608jsd" : { + "type" : "ControlElement", + "id" : "acm010608jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010609jsd" : { + "type" : "ControlElement", + "id" : "acm010609jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010610jsd" : { + "type" : "ControlElement", + "id" : "acm010610jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010611jsd" : { + "type" : "ControlElement", + "id" : "acm010611jsd", + "name" : "testValidate" + }, + "acm010612jsd" : { + "type" : "ControlElement", + "id" : "acm010612jsd", + "name" : "testGetValidityInfo" + }, + "acm010613jsd" : { + "type" : "ControlElement", + "id" : "acm010613jsd", + "name" : "testIsValid" + }, + "acm010614jsd" : { + "type" : "ControlElement", + "id" : "acm010614jsd", + "name" : "testToString" + }, + "acm010615jsd" : { + "type" : "ControlElement", + "id" : "acm010615jsd", + "name" : "testEquals" + }, + "acm010616jsd" : { + "type" : "ControlElement", + "id" : "acm010616jsd", + "name" : "testHashCode" + }, + "acm010617jsd" : { + "type" : "ControlElement", + "id" : "acm010617jsd", + "name" : "getValidAccountRequestAttributesObject" + }, + "acm010618jsd" : { + "type" : "ClassUnit", + "id" : "acm010618jsd", + "name" : "AccountRequestAttributesTest", + "compilationUnitId" : "acm010601jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm007758jsd" ], + "content" : [ "acm010606jsd", "acm010607jsd", "acm010608jsd", "acm010609jsd", "acm010610jsd", "acm010611jsd", "acm010612jsd", "acm010613jsd", "acm010614jsd", "acm010615jsd", "acm010616jsd", "acm010617jsd" ] + }, + "acm010619jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010619jsd", + "name" : "BaseAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010625jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010620jsd" : { + "type" : "CodePackage", + "id" : "acm010620jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010621jsd" ] + }, + "acm010621jsd" : { + "type" : "CodePackage", + "id" : "acm010621jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010622jsd" ] + }, + "acm010622jsd" : { + "type" : "CodePackage", + "id" : "acm010622jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010623jsd" ] + }, + "acm010623jsd" : { + "type" : "CodePackage", + "id" : "acm010623jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010619jsd" ] + }, + "acm010624jsd" : { + "type" : "ControlElement", + "id" : "acm010624jsd", + "name" : "testToEntity" + }, + "acm010625jsd" : { + "type" : "ClassUnit", + "id" : "acm010625jsd", + "name" : "BaseAttributesTest", + "compilationUnitId" : "acm010619jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm010624jsd" ] + }, + "acm010626jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010626jsd", + "name" : "CourseAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010644jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010627jsd" : { + "type" : "CodePackage", + "id" : "acm010627jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010628jsd" ] + }, + "acm010628jsd" : { + "type" : "CodePackage", + "id" : "acm010628jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010629jsd" ] + }, + "acm010629jsd" : { + "type" : "CodePackage", + "id" : "acm010629jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010630jsd" ] + }, + "acm010630jsd" : { + "type" : "CodePackage", + "id" : "acm010630jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010626jsd" ] + }, + "acm010631jsd" : { + "type" : "ControlElement", + "id" : "acm010631jsd", + "name" : "testValueOf_withTypicalData_shouldGenerateAttributesCorrectly" + }, + "acm010632jsd" : { + "type" : "ControlElement", + "id" : "acm010632jsd", + "name" : "testValueOf_withInvalidTimezoneStr_shouldFallbackToDefaultTimezone" + }, + "acm010633jsd" : { + "type" : "ControlElement", + "id" : "acm010633jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010634jsd" : { + "type" : "ControlElement", + "id" : "acm010634jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010635jsd" : { + "type" : "ControlElement", + "id" : "acm010635jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010636jsd" : { + "type" : "ControlElement", + "id" : "acm010636jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010637jsd" : { + "type" : "ControlElement", + "id" : "acm010637jsd", + "name" : "testValidate" + }, + "acm010638jsd" : { + "type" : "ControlElement", + "id" : "acm010638jsd", + "name" : "testGetValidityInfo" + }, + "acm010639jsd" : { + "type" : "ControlElement", + "id" : "acm010639jsd", + "name" : "testIsValid" + }, + "acm010640jsd" : { + "type" : "ControlElement", + "id" : "acm010640jsd", + "name" : "testToString" + }, + "acm010641jsd" : { + "type" : "ControlElement", + "id" : "acm010641jsd", + "name" : "testEquals" + }, + "acm010642jsd" : { + "type" : "ControlElement", + "id" : "acm010642jsd", + "name" : "testHashCode" + }, + "acm010643jsd" : { + "type" : "ControlElement", + "id" : "acm010643jsd", + "name" : "generateValidCourseAttributesObject" + }, + "acm010644jsd" : { + "type" : "ClassUnit", + "id" : "acm010644jsd", + "name" : "CourseAttributesTest", + "compilationUnitId" : "acm010626jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm007792jsd" ], + "content" : [ "acm010631jsd", "acm010632jsd", "acm010633jsd", "acm010634jsd", "acm010635jsd", "acm010636jsd", "acm010637jsd", "acm010638jsd", "acm010639jsd", "acm010640jsd", "acm010641jsd", "acm010642jsd", "acm010643jsd" ] + }, + "acm010645jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010645jsd", + "name" : "DeadlineExtensionAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010662jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010646jsd" : { + "type" : "CodePackage", + "id" : "acm010646jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010647jsd" ] + }, + "acm010647jsd" : { + "type" : "CodePackage", + "id" : "acm010647jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010648jsd" ] + }, + "acm010648jsd" : { + "type" : "CodePackage", + "id" : "acm010648jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010649jsd" ] + }, + "acm010649jsd" : { + "type" : "CodePackage", + "id" : "acm010649jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010645jsd" ] + }, + "acm010650jsd" : { + "type" : "ControlElement", + "id" : "acm010650jsd", + "name" : "testValueOf_withTypicalData_shouldGenerateAttributesCorrectly" + }, + "acm010651jsd" : { + "type" : "ControlElement", + "id" : "acm010651jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010652jsd" : { + "type" : "ControlElement", + "id" : "acm010652jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010653jsd" : { + "type" : "ControlElement", + "id" : "acm010653jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010654jsd" : { + "type" : "ControlElement", + "id" : "acm010654jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010655jsd" : { + "type" : "ControlElement", + "id" : "acm010655jsd", + "name" : "testUpdateOptions_withExistingUpdateOptions_shouldReturnEquivalentDeadlineExtension" + }, + "acm010656jsd" : { + "type" : "ControlElement", + "id" : "acm010656jsd", + "name" : "testUpdateOptions_withNullUpdateOptions_shouldThrowAssertionError" + }, + "acm010657jsd" : { + "type" : "ControlElement", + "id" : "acm010657jsd", + "name" : "testValidate" + }, + "acm010658jsd" : { + "type" : "ControlElement", + "id" : "acm010658jsd", + "name" : "testToString" + }, + "acm010659jsd" : { + "type" : "ControlElement", + "id" : "acm010659jsd", + "name" : "testEquals" + }, + "acm010660jsd" : { + "type" : "ControlElement", + "id" : "acm010660jsd", + "name" : "testHashCode" + }, + "acm010661jsd" : { + "type" : "ControlElement", + "id" : "acm010661jsd", + "name" : "getValidDeadlineExtensionAttributesObject" + }, + "acm010662jsd" : { + "type" : "ClassUnit", + "id" : "acm010662jsd", + "name" : "DeadlineExtensionAttributesTest", + "compilationUnitId" : "acm010645jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm004678jsd", "acm007850jsd" ], + "content" : [ "acm010650jsd", "acm010651jsd", "acm010652jsd", "acm010653jsd", "acm010654jsd", "acm010655jsd", "acm010656jsd", "acm010657jsd", "acm010658jsd", "acm010659jsd", "acm010660jsd", "acm010661jsd" ] + }, + "acm010663jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010663jsd", + "name" : "FeedbackQuestionAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010689jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010664jsd" : { + "type" : "CodePackage", + "id" : "acm010664jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010665jsd" ] + }, + "acm010665jsd" : { + "type" : "CodePackage", + "id" : "acm010665jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010666jsd" ] + }, + "acm010666jsd" : { + "type" : "CodePackage", + "id" : "acm010666jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010667jsd" ] + }, + "acm010667jsd" : { + "type" : "CodePackage", + "id" : "acm010667jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010663jsd" ] + }, + "acm010668jsd" : { + "type" : "ControlElement", + "id" : "acm010668jsd", + "name" : "testToEntity" + }, + "acm010669jsd" : { + "type" : "ControlElement", + "id" : "acm010669jsd", + "name" : "testValueOf_withAllFieldPopulatedFeedbackQuestion_shouldGenerateAttributesCorrectly" + }, + "acm010670jsd" : { + "type" : "ControlElement", + "id" : "acm010670jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010671jsd" : { + "type" : "ControlElement", + "id" : "acm010671jsd", + "name" : "testValueOf_modificationInAttributes_shouldNotLeakStateToEntity" + }, + "acm010672jsd" : { + "type" : "ControlElement", + "id" : "acm010672jsd", + "name" : "testBuilder_withIrrelevantFeedbackParticipant_shouldGenerateAttributesCorrectly" + }, + "acm010673jsd" : { + "type" : "ControlElement", + "id" : "acm010673jsd", + "name" : "testValueOf_textQuestions_shouldDeserializeCorrectly" + }, + "acm010674jsd" : { + "type" : "ControlElement", + "id" : "acm010674jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010675jsd" : { + "type" : "ControlElement", + "id" : "acm010675jsd", + "name" : "testBuilder_withDescriptionNull_shouldBuildCorrectAttributes" + }, + "acm010676jsd" : { + "type" : "ControlElement", + "id" : "acm010676jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010677jsd" : { + "type" : "ControlElement", + "id" : "acm010677jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010678jsd" : { + "type" : "ControlElement", + "id" : "acm010678jsd", + "name" : "testValidate" + }, + "acm010679jsd" : { + "type" : "ControlElement", + "id" : "acm010679jsd", + "name" : "testGetQuestionDetails" + }, + "acm010680jsd" : { + "type" : "ControlElement", + "id" : "acm010680jsd", + "name" : "testRemoveIrrelevantVisibilityOptions" + }, + "acm010681jsd" : { + "type" : "ControlElement", + "id" : "acm010681jsd", + "name" : "testGetQuestionDetails_shouldDoDeepCopy" + }, + "acm010682jsd" : { + "type" : "ControlElement", + "id" : "acm010682jsd", + "name" : "testSetQuestionDetails_shouldDoDeepCopy" + }, + "acm010683jsd" : { + "type" : "ControlElement", + "id" : "acm010683jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010684jsd" : { + "type" : "ControlElement", + "id" : "acm010684jsd", + "name" : "testUpdateOptionsBuilder_withNullDescriptionInput_shouldUpdateAttributeCorrectly" + }, + "acm010685jsd" : { + "type" : "ControlElement", + "id" : "acm010685jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010686jsd" : { + "type" : "ControlElement", + "id" : "acm010686jsd", + "name" : "testEquals" + }, + "acm010687jsd" : { + "type" : "ControlElement", + "id" : "acm010687jsd", + "name" : "testHashCode" + }, + "acm010688jsd" : { + "type" : "ControlElement", + "id" : "acm010688jsd", + "name" : "getNewFeedbackQuestionAttributes" + }, + "acm010689jsd" : { + "type" : "ClassUnit", + "id" : "acm010689jsd", + "name" : "FeedbackQuestionAttributesTest", + "compilationUnitId" : "acm010663jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004226jsd", "acm004788jsd", "acm004799jsd", "acm005977jsd", "acm005986jsd", "acm006116jsd", "acm007888jsd" ], + "content" : [ "acm010668jsd", "acm010669jsd", "acm010670jsd", "acm010671jsd", "acm010672jsd", "acm010673jsd", "acm010674jsd", "acm010675jsd", "acm010676jsd", "acm010677jsd", "acm010678jsd", "acm010679jsd", "acm010680jsd", "acm010681jsd", "acm010682jsd", "acm010683jsd", "acm010684jsd", "acm010685jsd", "acm010686jsd", "acm010687jsd", "acm010688jsd" ] + }, + "acm010690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010690jsd", + "name" : "FeedbackResponseAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010707jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010691jsd" : { + "type" : "CodePackage", + "id" : "acm010691jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010692jsd" ] + }, + "acm010692jsd" : { + "type" : "CodePackage", + "id" : "acm010692jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010693jsd" ] + }, + "acm010693jsd" : { + "type" : "CodePackage", + "id" : "acm010693jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010694jsd" ] + }, + "acm010694jsd" : { + "type" : "CodePackage", + "id" : "acm010694jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010690jsd" ] + }, + "acm010695jsd" : { + "type" : "ControlElement", + "id" : "acm010695jsd", + "name" : "testValueOf_withAllFieldPopulatedFeedbackResponse_shouldGenerateAttributesCorrectly" + }, + "acm010696jsd" : { + "type" : "ControlElement", + "id" : "acm010696jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010697jsd" : { + "type" : "ControlElement", + "id" : "acm010697jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValue" + }, + "acm010698jsd" : { + "type" : "ControlElement", + "id" : "acm010698jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010699jsd" : { + "type" : "ControlElement", + "id" : "acm010699jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010700jsd" : { + "type" : "ControlElement", + "id" : "acm010700jsd", + "name" : "testCopyConstructor_shouldDoDeepCopyOfResponseDetails" + }, + "acm010701jsd" : { + "type" : "ControlElement", + "id" : "acm010701jsd", + "name" : "testGetResponseDetails_shouldDoDeepCopy" + }, + "acm010702jsd" : { + "type" : "ControlElement", + "id" : "acm010702jsd", + "name" : "testSetResponseDetails_shouldDoDeepCopy" + }, + "acm010703jsd" : { + "type" : "ControlElement", + "id" : "acm010703jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010704jsd" : { + "type" : "ControlElement", + "id" : "acm010704jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010705jsd" : { + "type" : "ControlElement", + "id" : "acm010705jsd", + "name" : "testEquals" + }, + "acm010706jsd" : { + "type" : "ControlElement", + "id" : "acm010706jsd", + "name" : "testHashCode" + }, + "acm010707jsd" : { + "type" : "ClassUnit", + "id" : "acm010707jsd", + "name" : "FeedbackResponseAttributesTest", + "compilationUnitId" : "acm010690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004871jsd", "acm004885jsd", "acm006061jsd", "acm006127jsd", "acm007920jsd" ], + "content" : [ "acm010695jsd", "acm010696jsd", "acm010697jsd", "acm010698jsd", "acm010699jsd", "acm010700jsd", "acm010701jsd", "acm010702jsd", "acm010703jsd", "acm010704jsd", "acm010705jsd", "acm010706jsd" ] + }, + "acm010708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010708jsd", + "name" : "FeedbackResponseCommentAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010725jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010709jsd" : { + "type" : "CodePackage", + "id" : "acm010709jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010710jsd" ] + }, + "acm010710jsd" : { + "type" : "CodePackage", + "id" : "acm010710jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010711jsd" ] + }, + "acm010711jsd" : { + "type" : "CodePackage", + "id" : "acm010711jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010712jsd" ] + }, + "acm010712jsd" : { + "type" : "CodePackage", + "id" : "acm010712jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010708jsd" ] + }, + "acm010713jsd" : { + "type" : "ControlElement", + "id" : "acm010713jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010714jsd" : { + "type" : "ControlElement", + "id" : "acm010714jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010715jsd" : { + "type" : "ControlElement", + "id" : "acm010715jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010716jsd" : { + "type" : "ControlElement", + "id" : "acm010716jsd", + "name" : "testValueOf_withAllFieldPopulatedFeedbackResponseComment_shouldGenerateAttributesCorrectly" + }, + "acm010717jsd" : { + "type" : "ControlElement", + "id" : "acm010717jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010718jsd" : { + "type" : "ControlElement", + "id" : "acm010718jsd", + "name" : "testValueOf_modificationInAttributes_shouldNotLeakStateToEntity" + }, + "acm010719jsd" : { + "type" : "ControlElement", + "id" : "acm010719jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010720jsd" : { + "type" : "ControlElement", + "id" : "acm010720jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010721jsd" : { + "type" : "ControlElement", + "id" : "acm010721jsd", + "name" : "testEquals" + }, + "acm010722jsd" : { + "type" : "ControlElement", + "id" : "acm010722jsd", + "name" : "testHashCode" + }, + "acm010723jsd" : { + "type" : "ControlElement", + "id" : "acm010723jsd", + "name" : "generateValidFeedbackResponseCommentAttributesObject" + }, + "acm010724jsd" : { + "type" : "ControlElement", + "id" : "acm010724jsd", + "name" : "generateTypicalFeedbackResponseCommentAttributesObject" + }, + "acm010725jsd" : { + "type" : "ClassUnit", + "id" : "acm010725jsd", + "name" : "FeedbackResponseCommentAttributesTest", + "compilationUnitId" : "acm010708jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004971jsd", "acm004989jsd", "acm007960jsd" ], + "content" : [ "acm010713jsd", "acm010714jsd", "acm010715jsd", "acm010716jsd", "acm010717jsd", "acm010718jsd", "acm010719jsd", "acm010720jsd", "acm010721jsd", "acm010722jsd", "acm010723jsd", "acm010724jsd" ] + }, + "acm010726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010726jsd", + "name" : "FeedbackSessionAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010745jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010727jsd" : { + "type" : "CodePackage", + "id" : "acm010727jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010728jsd" ] + }, + "acm010728jsd" : { + "type" : "CodePackage", + "id" : "acm010728jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010729jsd" ] + }, + "acm010729jsd" : { + "type" : "CodePackage", + "id" : "acm010729jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010730jsd" ] + }, + "acm010730jsd" : { + "type" : "CodePackage", + "id" : "acm010730jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010726jsd" ] + }, + "acm010731jsd" : { + "type" : "ControlElement", + "id" : "acm010731jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010732jsd" : { + "type" : "ControlElement", + "id" : "acm010732jsd", + "name" : "testBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010733jsd" : { + "type" : "ControlElement", + "id" : "acm010733jsd", + "name" : "testValueOf_withAllFieldPopulatedFeedbackSession_shouldGenerateAttributesCorrectly" + }, + "acm010734jsd" : { + "type" : "ControlElement", + "id" : "acm010734jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010735jsd" : { + "type" : "ControlElement", + "id" : "acm010735jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectly" + }, + "acm010736jsd" : { + "type" : "ControlElement", + "id" : "acm010736jsd", + "name" : "testGetCopy" + }, + "acm010737jsd" : { + "type" : "ControlElement", + "id" : "acm010737jsd", + "name" : "testGetCopyForStudent" + }, + "acm010738jsd" : { + "type" : "ControlElement", + "id" : "acm010738jsd", + "name" : "testGetCopyForInstructor" + }, + "acm010739jsd" : { + "type" : "ControlElement", + "id" : "acm010739jsd", + "name" : "testValidate" + }, + "acm010740jsd" : { + "type" : "ControlElement", + "id" : "acm010740jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010741jsd" : { + "type" : "ControlElement", + "id" : "acm010741jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010742jsd" : { + "type" : "ControlElement", + "id" : "acm010742jsd", + "name" : "testEquals" + }, + "acm010743jsd" : { + "type" : "ControlElement", + "id" : "acm010743jsd", + "name" : "testHashCode" + }, + "acm010744jsd" : { + "type" : "ControlElement", + "id" : "acm010744jsd", + "name" : "generateTypicalFeedbackSessionAttributesObject" + }, + "acm010745jsd" : { + "type" : "ClassUnit", + "id" : "acm010745jsd", + "name" : "FeedbackSessionAttributesTest", + "compilationUnitId" : "acm010726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm005112jsd", "acm005129jsd", "acm005233jsd", "acm005412jsd", "acm008013jsd" ], + "content" : [ "acm010731jsd", "acm010732jsd", "acm010733jsd", "acm010734jsd", "acm010735jsd", "acm010736jsd", "acm010737jsd", "acm010738jsd", "acm010739jsd", "acm010740jsd", "acm010741jsd", "acm010742jsd", "acm010743jsd", "acm010744jsd" ] + }, + "acm010746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010746jsd", + "name" : "InstructorAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010767jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010747jsd" : { + "type" : "CodePackage", + "id" : "acm010747jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010748jsd" ] + }, + "acm010748jsd" : { + "type" : "CodePackage", + "id" : "acm010748jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010749jsd" ] + }, + "acm010749jsd" : { + "type" : "CodePackage", + "id" : "acm010749jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010750jsd" ] + }, + "acm010750jsd" : { + "type" : "CodePackage", + "id" : "acm010750jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010746jsd" ] + }, + "acm010751jsd" : { + "type" : "ControlElement", + "id" : "acm010751jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010752jsd" : { + "type" : "ControlElement", + "id" : "acm010752jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010753jsd" : { + "type" : "ControlElement", + "id" : "acm010753jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttribute" + }, + "acm010754jsd" : { + "type" : "ControlElement", + "id" : "acm010754jsd", + "name" : "testValueOf_withAllFieldPopulatedInstructor_shouldGenerateAttributesCorrectly" + }, + "acm010755jsd" : { + "type" : "ControlElement", + "id" : "acm010755jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010756jsd" : { + "type" : "ControlElement", + "id" : "acm010756jsd", + "name" : "testIsRegistered" + }, + "acm010757jsd" : { + "type" : "ControlElement", + "id" : "acm010757jsd", + "name" : "testToEntity" + }, + "acm010758jsd" : { + "type" : "ControlElement", + "id" : "acm010758jsd", + "name" : "testGetInvalidityInfo" + }, + "acm010759jsd" : { + "type" : "ControlElement", + "id" : "acm010759jsd", + "name" : "testSanitizeForSaving" + }, + "acm010760jsd" : { + "type" : "ControlElement", + "id" : "acm010760jsd", + "name" : "testIsAllowedForPrivilege" + }, + "acm010761jsd" : { + "type" : "ControlElement", + "id" : "acm010761jsd", + "name" : "testUpdateOptionsWithEmail_withTypicalData_shouldUpdateAttributeCorrectly" + }, + "acm010762jsd" : { + "type" : "ControlElement", + "id" : "acm010762jsd", + "name" : "testUpdateOptionsWithGoogleId_withTypicalData_shouldUpdateAttributeCorrectly" + }, + "acm010763jsd" : { + "type" : "ControlElement", + "id" : "acm010763jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010764jsd" : { + "type" : "ControlElement", + "id" : "acm010764jsd", + "name" : "testGetRegistrationLink" + }, + "acm010765jsd" : { + "type" : "ControlElement", + "id" : "acm010765jsd", + "name" : "testEquals" + }, + "acm010766jsd" : { + "type" : "ControlElement", + "id" : "acm010766jsd", + "name" : "testHashCode" + }, + "acm010767jsd" : { + "type" : "ClassUnit", + "id" : "acm010767jsd", + "name" : "InstructorAttributesTest", + "compilationUnitId" : "acm010746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm010625jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm004341jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm008049jsd" ], + "content" : [ "acm010751jsd", "acm010752jsd", "acm010753jsd", "acm010754jsd", "acm010755jsd", "acm010756jsd", "acm010757jsd", "acm010758jsd", "acm010759jsd", "acm010760jsd", "acm010761jsd", "acm010762jsd", "acm010763jsd", "acm010764jsd", "acm010765jsd", "acm010766jsd" ] + }, + "acm010768jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010768jsd", + "name" : "NotificationAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010783jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010769jsd" : { + "type" : "CodePackage", + "id" : "acm010769jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010770jsd" ] + }, + "acm010770jsd" : { + "type" : "CodePackage", + "id" : "acm010770jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010771jsd" ] + }, + "acm010771jsd" : { + "type" : "CodePackage", + "id" : "acm010771jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010772jsd" ] + }, + "acm010772jsd" : { + "type" : "CodePackage", + "id" : "acm010772jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010768jsd" ] + }, + "acm010773jsd" : { + "type" : "ControlElement", + "id" : "acm010773jsd", + "name" : "testValueOf_withAllFieldPopulatedNotificationAttributes_shouldGenerateAttributesCorrectly" + }, + "acm010774jsd" : { + "type" : "ControlElement", + "id" : "acm010774jsd", + "name" : "testBuilder_withNullArguments_shouldThrowException" + }, + "acm010775jsd" : { + "type" : "ControlElement", + "id" : "acm010775jsd", + "name" : "testBuilder_withTypicalData_shouldBuildCorrectAttributes" + }, + "acm010776jsd" : { + "type" : "ControlElement", + "id" : "acm010776jsd", + "name" : "testCopyConstructor_shouldDoDeepCopyOfNotificationDetails" + }, + "acm010777jsd" : { + "type" : "ControlElement", + "id" : "acm010777jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010778jsd" : { + "type" : "ControlElement", + "id" : "acm010778jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010779jsd" : { + "type" : "ControlElement", + "id" : "acm010779jsd", + "name" : "testEquals" + }, + "acm010780jsd" : { + "type" : "ControlElement", + "id" : "acm010780jsd", + "name" : "testHashCode" + }, + "acm010781jsd" : { + "type" : "ControlElement", + "id" : "acm010781jsd", + "name" : "generateTypicalNotificationAttributesObject" + }, + "acm010782jsd" : { + "type" : "ControlElement", + "id" : "acm010782jsd", + "name" : "verifyNotificationEquals" + }, + "acm010783jsd" : { + "type" : "ClassUnit", + "id" : "acm010783jsd", + "name" : "NotificationAttributesTest", + "compilationUnitId" : "acm010768jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm005339jsd", "acm008077jsd" ], + "content" : [ "acm010773jsd", "acm010774jsd", "acm010775jsd", "acm010776jsd", "acm010777jsd", "acm010778jsd", "acm010779jsd", "acm010780jsd", "acm010781jsd", "acm010782jsd" ] + }, + "acm010784jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010784jsd", + "name" : "StudentAttributesTest", + "parentId" : "acm004451jsd", + "content" : [ "acm010808jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010785jsd" : { + "type" : "CodePackage", + "id" : "acm010785jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010786jsd" ] + }, + "acm010786jsd" : { + "type" : "CodePackage", + "id" : "acm010786jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010787jsd" ] + }, + "acm010787jsd" : { + "type" : "CodePackage", + "id" : "acm010787jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010788jsd" ] + }, + "acm010788jsd" : { + "type" : "CodePackage", + "id" : "acm010788jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010784jsd" ] + }, + "acm010789jsd" : { + "type" : "ControlElement", + "id" : "acm010789jsd", + "name" : "testBuilder_buildNothing_shouldUseDefaultValues" + }, + "acm010790jsd" : { + "type" : "ControlElement", + "id" : "acm010790jsd", + "name" : "testBuilder_nullValues_shouldThrowException" + }, + "acm010791jsd" : { + "type" : "ControlElement", + "id" : "acm010791jsd", + "name" : "testGetCopy" + }, + "acm010792jsd" : { + "type" : "ControlElement", + "id" : "acm010792jsd", + "name" : "testValueOf_withAllFieldPopulatedCourseStudent_shouldGenerateAttributesCorrectly" + }, + "acm010793jsd" : { + "type" : "ControlElement", + "id" : "acm010793jsd", + "name" : "testValueOf_withSomeFieldsPopulatedAsNull_shouldUseDefaultValues" + }, + "acm010794jsd" : { + "type" : "ControlElement", + "id" : "acm010794jsd", + "name" : "testBuilder_withTypicalData_shouldBuildAttributeWithCorrectValue" + }, + "acm010795jsd" : { + "type" : "ControlElement", + "id" : "acm010795jsd", + "name" : "testValidate" + }, + "acm010796jsd" : { + "type" : "ControlElement", + "id" : "acm010796jsd", + "name" : "testUpdateOptions_withTypicalUpdateOptions_shouldUpdateAttributeCorrectly" + }, + "acm010797jsd" : { + "type" : "ControlElement", + "id" : "acm010797jsd", + "name" : "testUpdateOptionsBuilder_withNullInput_shouldFailWithAssertionError" + }, + "acm010798jsd" : { + "type" : "ControlElement", + "id" : "acm010798jsd", + "name" : "testSortByTeam" + }, + "acm010799jsd" : { + "type" : "ControlElement", + "id" : "acm010799jsd", + "name" : "testSortBySection" + }, + "acm010800jsd" : { + "type" : "ControlElement", + "id" : "acm010800jsd", + "name" : "testIsRegistered" + }, + "acm010801jsd" : { + "type" : "ControlElement", + "id" : "acm010801jsd", + "name" : "testToString" + }, + "acm010802jsd" : { + "type" : "ControlElement", + "id" : "acm010802jsd", + "name" : "testGetRegistrationLink" + }, + "acm010803jsd" : { + "type" : "ControlElement", + "id" : "acm010803jsd", + "name" : "testEquals" + }, + "acm010804jsd" : { + "type" : "ControlElement", + "id" : "acm010804jsd", + "name" : "testHashCode" + }, + "acm010805jsd" : { + "type" : "ControlElement", + "id" : "acm010805jsd", + "name" : "generateTypicalStudentObject" + }, + "acm010806jsd" : { + "type" : "ControlElement", + "id" : "acm010806jsd", + "name" : "generateTypicalStudentAttributesList" + }, + "acm010807jsd" : { + "type" : "ControlElement", + "id" : "acm010807jsd", + "name" : "generateValidStudentAttributesObject" + }, + "acm010808jsd" : { + "type" : "ClassUnit", + "id" : "acm010808jsd", + "name" : "StudentAttributesTest", + "compilationUnitId" : "acm010784jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm005423jsd", "acm007823jsd" ], + "content" : [ "acm010789jsd", "acm010790jsd", "acm010791jsd", "acm010792jsd", "acm010793jsd", "acm010794jsd", "acm010795jsd", "acm010796jsd", "acm010797jsd", "acm010798jsd", "acm010799jsd", "acm010800jsd", "acm010801jsd", "acm010802jsd", "acm010803jsd", "acm010804jsd", "acm010805jsd", "acm010806jsd", "acm010807jsd" ] + }, + "acm010809jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010809jsd", + "name" : "package-info", + "parentId" : "acm004451jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "attributes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010810jsd" : { + "type" : "CodePackage", + "id" : "acm010810jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010811jsd" ] + }, + "acm010811jsd" : { + "type" : "CodePackage", + "id" : "acm010811jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010812jsd" ] + }, + "acm010812jsd" : { + "type" : "CodePackage", + "id" : "acm010812jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010813jsd" ] + }, + "acm010813jsd" : { + "type" : "CodePackage", + "id" : "acm010813jsd", + "name" : "attributes", + "parentId" : null, + "content" : [ "acm010809jsd" ] + }, + "acm010814jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010814jsd", + "name" : "package-info", + "parentId" : "acm004140jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010815jsd" : { + "type" : "CodePackage", + "id" : "acm010815jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010816jsd" ] + }, + "acm010816jsd" : { + "type" : "CodePackage", + "id" : "acm010816jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010817jsd" ] + }, + "acm010817jsd" : { + "type" : "CodePackage", + "id" : "acm010817jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010814jsd" ] + }, + "acm010818jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010818jsd", + "name" : "FeedbackConstantSumQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010852jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010819jsd" : { + "type" : "CodePackage", + "id" : "acm010819jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010820jsd" ] + }, + "acm010820jsd" : { + "type" : "CodePackage", + "id" : "acm010820jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010821jsd" ] + }, + "acm010821jsd" : { + "type" : "CodePackage", + "id" : "acm010821jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010822jsd" ] + }, + "acm010822jsd" : { + "type" : "CodePackage", + "id" : "acm010822jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010818jsd" ] + }, + "acm010823jsd" : { + "type" : "ControlElement", + "id" : "acm010823jsd", + "name" : "testValidateResponseDetails_amongRecipientsValidAnswer_shouldReturnEmptyErrorList" + }, + "acm010824jsd" : { + "type" : "ControlElement", + "id" : "acm010824jsd", + "name" : "testValidateResponseDetails_amongRecipientsInvalidAnswer_shouldReturnNonEmptyErrorList" + }, + "acm010825jsd" : { + "type" : "ControlElement", + "id" : "acm010825jsd", + "name" : "testValidateResponseDetails_amongOptionsValidAnswer_shouldReturnEmptyErrorList" + }, + "acm010826jsd" : { + "type" : "ControlElement", + "id" : "acm010826jsd", + "name" : "testValidateResponseDetails_amongOptionsInvalidAnswer_shouldReturnNonEmptyErrorList" + }, + "acm010827jsd" : { + "type" : "ControlElement", + "id" : "acm010827jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentConstSumOptions_shouldReturnTrue" + }, + "acm010828jsd" : { + "type" : "ControlElement", + "id" : "acm010828jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameConstantSumOptionsDifferentOrder_shouldReturnFalse" + }, + "acm010829jsd" : { + "type" : "ControlElement", + "id" : "acm010829jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentDistributeToRecipients_shouldReturnTrue" + }, + "acm010830jsd" : { + "type" : "ControlElement", + "id" : "acm010830jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameDistributeToRecipients_shouldReturnFalse" + }, + "acm010831jsd" : { + "type" : "ControlElement", + "id" : "acm010831jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentPoints_shouldReturnTrue" + }, + "acm010832jsd" : { + "type" : "ControlElement", + "id" : "acm010832jsd", + "name" : "testShouldChangesRequireResponseDeletion_samePoints_shouldReturnFalse" + }, + "acm010833jsd" : { + "type" : "ControlElement", + "id" : "acm010833jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentPointsPerOption_shouldReturnTrue" + }, + "acm010834jsd" : { + "type" : "ControlElement", + "id" : "acm010834jsd", + "name" : "testShouldChangesRequireResponseDeletion_samePointsPerOption_shouldReturnFalse" + }, + "acm010835jsd" : { + "type" : "ControlElement", + "id" : "acm010835jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentForceUnevenDistribution_shouldReturnTrue" + }, + "acm010836jsd" : { + "type" : "ControlElement", + "id" : "acm010836jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameForceUnevenDistribution_shouldReturnFalse" + }, + "acm010837jsd" : { + "type" : "ControlElement", + "id" : "acm010837jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentMaxPoint_shouldReturnTrue" + }, + "acm010838jsd" : { + "type" : "ControlElement", + "id" : "acm010838jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameMaxPoint_shouldReturnFalse" + }, + "acm010839jsd" : { + "type" : "ControlElement", + "id" : "acm010839jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentMinPoint_shouldReturnTrue" + }, + "acm010840jsd" : { + "type" : "ControlElement", + "id" : "acm010840jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameMinPoint_shouldReturnFalse" + }, + "acm010841jsd" : { + "type" : "ControlElement", + "id" : "acm010841jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentDistributePointsFor_shouldReturnTrue" + }, + "acm010842jsd" : { + "type" : "ControlElement", + "id" : "acm010842jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameDistributePointsFor_shouldReturnFalse" + }, + "acm010843jsd" : { + "type" : "ControlElement", + "id" : "acm010843jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010844jsd" : { + "type" : "ControlElement", + "id" : "acm010844jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010845jsd" : { + "type" : "ControlElement", + "id" : "acm010845jsd", + "name" : "testValidateQuestionDetails_invalidMaxMinOptions_errorReturned" + }, + "acm010846jsd" : { + "type" : "ControlElement", + "id" : "acm010846jsd", + "name" : "testValidateQuestionDetails_duplicateOptions_errorReturned" + }, + "acm010847jsd" : { + "type" : "ControlElement", + "id" : "acm010847jsd", + "name" : "testValidateQuestionDetails_invalidConstSumOptionSize_errorReturned" + }, + "acm010848jsd" : { + "type" : "ControlElement", + "id" : "acm010848jsd", + "name" : "testValidateQuestionDetails_invalidPoint_errorReturned" + }, + "acm010849jsd" : { + "type" : "ControlElement", + "id" : "acm010849jsd", + "name" : "testValidateQuestionDetails_destributeToRecipients_noMinMaxOptionErrorsReturned" + }, + "acm010850jsd" : { + "type" : "ControlElement", + "id" : "acm010850jsd", + "name" : "testValidateQuestionDetails_noMinMaxOptions_noMinMaxOptionErrorsReturned" + }, + "acm010851jsd" : { + "type" : "ControlElement", + "id" : "acm010851jsd", + "name" : "testValidateQuestionDetails_validMinMaxOption_noErrorsReturned" + }, + "acm010852jsd" : { + "type" : "ClassUnit", + "id" : "acm010852jsd", + "name" : "FeedbackConstantSumQuestionDetailsTest", + "compilationUnitId" : "acm010818jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005778jsd", "acm005788jsd", "acm005977jsd" ], + "content" : [ "acm010823jsd", "acm010824jsd", "acm010825jsd", "acm010826jsd", "acm010827jsd", "acm010828jsd", "acm010829jsd", "acm010830jsd", "acm010831jsd", "acm010832jsd", "acm010833jsd", "acm010834jsd", "acm010835jsd", "acm010836jsd", "acm010837jsd", "acm010838jsd", "acm010839jsd", "acm010840jsd", "acm010841jsd", "acm010842jsd", "acm010843jsd", "acm010844jsd", "acm010845jsd", "acm010846jsd", "acm010847jsd", "acm010848jsd", "acm010849jsd", "acm010850jsd", "acm010851jsd" ] + }, + "acm010853jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010853jsd", + "name" : "FeedbackContributionQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010869jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010854jsd" : { + "type" : "CodePackage", + "id" : "acm010854jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010855jsd" ] + }, + "acm010855jsd" : { + "type" : "CodePackage", + "id" : "acm010855jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010856jsd" ] + }, + "acm010856jsd" : { + "type" : "CodePackage", + "id" : "acm010856jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010857jsd" ] + }, + "acm010857jsd" : { + "type" : "CodePackage", + "id" : "acm010857jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010853jsd" ] + }, + "acm010858jsd" : { + "type" : "ControlElement", + "id" : "acm010858jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010859jsd" : { + "type" : "ControlElement", + "id" : "acm010859jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010860jsd" : { + "type" : "ControlElement", + "id" : "acm010860jsd", + "name" : "testIsIndividualResponsesShownToStudents_shouldReturnFalse" + }, + "acm010861jsd" : { + "type" : "ControlElement", + "id" : "acm010861jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameIsZeroSum_shouldReturnFalse" + }, + "acm010862jsd" : { + "type" : "ControlElement", + "id" : "acm010862jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentZeroSum_shouldReturnTrue" + }, + "acm010863jsd" : { + "type" : "ControlElement", + "id" : "acm010863jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameIsNotSureAllowed_shouldReturnFalse" + }, + "acm010864jsd" : { + "type" : "ControlElement", + "id" : "acm010864jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentIsNotSureAllowed_shouldReturnTrue" + }, + "acm010865jsd" : { + "type" : "ControlElement", + "id" : "acm010865jsd", + "name" : "testValidateQuestionDetails" + }, + "acm010866jsd" : { + "type" : "ControlElement", + "id" : "acm010866jsd", + "name" : "testGetQuestionResultStatisticsJson" + }, + "acm010867jsd" : { + "type" : "ControlElement", + "id" : "acm010867jsd", + "name" : "testValidateResponsesDetails" + }, + "acm010868jsd" : { + "type" : "ControlElement", + "id" : "acm010868jsd", + "name" : "testValidateGiverRecipientVisibility" + }, + "acm010869jsd" : { + "type" : "ClassUnit", + "id" : "acm010869jsd", + "name" : "FeedbackContributionQuestionDetailsTest", + "compilationUnitId" : "acm010853jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004205jsd", "acm004383jsd", "acm004788jsd", "acm005820jsd", "acm005838jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm010858jsd", "acm010859jsd", "acm010860jsd", "acm010861jsd", "acm010862jsd", "acm010863jsd", "acm010864jsd", "acm010865jsd", "acm010866jsd", "acm010867jsd", "acm010868jsd" ] + }, + "acm010870jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010870jsd", + "name" : "FeedbackMcqQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010893jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010871jsd" : { + "type" : "CodePackage", + "id" : "acm010871jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010872jsd" ] + }, + "acm010872jsd" : { + "type" : "CodePackage", + "id" : "acm010872jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010873jsd" ] + }, + "acm010873jsd" : { + "type" : "CodePackage", + "id" : "acm010873jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010874jsd" ] + }, + "acm010874jsd" : { + "type" : "CodePackage", + "id" : "acm010874jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010870jsd" ] + }, + "acm010875jsd" : { + "type" : "ControlElement", + "id" : "acm010875jsd", + "name" : "testConstructor_defaultConstructor_fieldsShouldHaveCorrectDefaultValues" + }, + "acm010876jsd" : { + "type" : "ControlElement", + "id" : "acm010876jsd", + "name" : "testValidateQuestionDetails_choicesLessThanMinRequirement_errorReturned" + }, + "acm010877jsd" : { + "type" : "ControlElement", + "id" : "acm010877jsd", + "name" : "testValidateQuestionDetails_numberOfChoicesGreaterThanWeights_errorReturned" + }, + "acm010878jsd" : { + "type" : "ControlElement", + "id" : "acm010878jsd", + "name" : "testValidateQuestionDetails_noValidationError_errorListShouldBeEmpty" + }, + "acm010879jsd" : { + "type" : "ControlElement", + "id" : "acm010879jsd", + "name" : "testValidateQuestionDetails_negativeWeights_errorsReturned" + }, + "acm010880jsd" : { + "type" : "ControlElement", + "id" : "acm010880jsd", + "name" : "testValidateQuestionDetails_negativeOtherWeight_errorsReturned" + }, + "acm010881jsd" : { + "type" : "ControlElement", + "id" : "acm010881jsd", + "name" : "testValidateQuestionDetails_duplicateMcqOptions_errorReturned" + }, + "acm010882jsd" : { + "type" : "ControlElement", + "id" : "acm010882jsd", + "name" : "testValidateQuestionDetails_emptyMcqOption_errorReturned" + }, + "acm010883jsd" : { + "type" : "ControlElement", + "id" : "acm010883jsd", + "name" : "testValidateQuestionDetails_negativeOtherWeight_errorReturned" + }, + "acm010884jsd" : { + "type" : "ControlElement", + "id" : "acm010884jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010885jsd" : { + "type" : "ControlElement", + "id" : "acm010885jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010886jsd" : { + "type" : "ControlElement", + "id" : "acm010886jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentMqcChoices_shouldReturnTrue" + }, + "acm010887jsd" : { + "type" : "ControlElement", + "id" : "acm010887jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentGenerateOptionsFor_shouldReturnTrue" + }, + "acm010888jsd" : { + "type" : "ControlElement", + "id" : "acm010888jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentOtherEnabled_shouldReturnTrue" + }, + "acm010889jsd" : { + "type" : "ControlElement", + "id" : "acm010889jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameQuestionsDifferentOrder_shouldReturnFalse" + }, + "acm010890jsd" : { + "type" : "ControlElement", + "id" : "acm010890jsd", + "name" : "testValidateResponsesDetails_answerNotPartOfMcq_shouldReturnError" + }, + "acm010891jsd" : { + "type" : "ControlElement", + "id" : "acm010891jsd", + "name" : "testValidateResponsesDetails_otherOptionNoText_shouldReturnError" + }, + "acm010892jsd" : { + "type" : "ControlElement", + "id" : "acm010892jsd", + "name" : "testValidateResponsesDetails_noValidationError_errorListShouldBeEmpty" + }, + "acm010893jsd" : { + "type" : "ClassUnit", + "id" : "acm010893jsd", + "name" : "FeedbackMcqQuestionDetailsTest", + "compilationUnitId" : "acm010870jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005866jsd", "acm005880jsd", "acm005977jsd", "acm006061jsd" ], + "content" : [ "acm010875jsd", "acm010876jsd", "acm010877jsd", "acm010878jsd", "acm010879jsd", "acm010880jsd", "acm010881jsd", "acm010882jsd", "acm010883jsd", "acm010884jsd", "acm010885jsd", "acm010886jsd", "acm010887jsd", "acm010888jsd", "acm010889jsd", "acm010890jsd", "acm010891jsd", "acm010892jsd" ] + }, + "acm010894jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010894jsd", + "name" : "FeedbackMsqQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010932jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010895jsd" : { + "type" : "CodePackage", + "id" : "acm010895jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010896jsd" ] + }, + "acm010896jsd" : { + "type" : "CodePackage", + "id" : "acm010896jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010897jsd" ] + }, + "acm010897jsd" : { + "type" : "CodePackage", + "id" : "acm010897jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010898jsd" ] + }, + "acm010898jsd" : { + "type" : "CodePackage", + "id" : "acm010898jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010894jsd" ] + }, + "acm010899jsd" : { + "type" : "ControlElement", + "id" : "acm010899jsd", + "name" : "testConstructor_defaultConstructor_fieldsShouldHaveCorrectDefaultValues" + }, + "acm010900jsd" : { + "type" : "ControlElement", + "id" : "acm010900jsd", + "name" : "testValidateQuestionDetails_choicesLessThanMinRequirement_errorReturned" + }, + "acm010901jsd" : { + "type" : "ControlElement", + "id" : "acm010901jsd", + "name" : "testValidateQuestionDetails_numberOfChoicesGreaterThanWeights_errorReturned" + }, + "acm010902jsd" : { + "type" : "ControlElement", + "id" : "acm010902jsd", + "name" : "testValidateQuestionDetails_noValidationError_errorListShouldBeEmpty" + }, + "acm010903jsd" : { + "type" : "ControlElement", + "id" : "acm010903jsd", + "name" : "testValidateQuestionDetails_negativeWeights_errorsReturned" + }, + "acm010904jsd" : { + "type" : "ControlElement", + "id" : "acm010904jsd", + "name" : "testValidateQuestionDetails_negativeOtherWeight_errorsReturned" + }, + "acm010905jsd" : { + "type" : "ControlElement", + "id" : "acm010905jsd", + "name" : "testValidateQuestionDetails_duplicateMsqOptions_errorReturned" + }, + "acm010906jsd" : { + "type" : "ControlElement", + "id" : "acm010906jsd", + "name" : "testValidateQuestionDetails_maxSelectableChoicesMoreThanTotalNumberOfChoice_shouldReturnError" + }, + "acm010907jsd" : { + "type" : "ControlElement", + "id" : "acm010907jsd", + "name" : "testValidateQuestionDetails_maxSelectableChoicesEqualTotalNumberOfChoice_shouldNotReturnError" + }, + "acm010908jsd" : { + "type" : "ControlElement", + "id" : "acm010908jsd", + "name" : "testValidateQuestionDetails_emptyChoiceEntered_shouldReturnError" + }, + "acm010909jsd" : { + "type" : "ControlElement", + "id" : "acm010909jsd", + "name" : "testValidateQuestionDetails_weightsNotEnabledButExist_shouldReturnError" + }, + "acm010910jsd" : { + "type" : "ControlElement", + "id" : "acm010910jsd", + "name" : "testValidateQuestionDetails_otherNotEnabledButWeightExist_shouldReturnError" + }, + "acm010911jsd" : { + "type" : "ControlElement", + "id" : "acm010911jsd", + "name" : "testValidateQuestionDetails_minChoicesLessThanOne_shouldReturnError" + }, + "acm010912jsd" : { + "type" : "ControlElement", + "id" : "acm010912jsd", + "name" : "testValidateQuestionDetails_minChoicesMoreThanExistingChoices_shouldReturnError" + }, + "acm010913jsd" : { + "type" : "ControlElement", + "id" : "acm010913jsd", + "name" : "testValidateQuestionDetails_minChoicesMoreThanMax_shouldReturnError" + }, + "acm010914jsd" : { + "type" : "ControlElement", + "id" : "acm010914jsd", + "name" : "testValidateResponsesDetails_otherAnswerNotChosenButOtherFieldIsNotEmpty_shouldTriggerError" + }, + "acm010915jsd" : { + "type" : "ControlElement", + "id" : "acm010915jsd", + "name" : "testValidateResponsesDetails_choiceNotInValidChoices_shouldTriggerError" + }, + "acm010916jsd" : { + "type" : "ControlElement", + "id" : "acm010916jsd", + "name" : "testValidateResponsesDetails_otherDisabledButExists_shouldReturnError" + }, + "acm010917jsd" : { + "type" : "ControlElement", + "id" : "acm010917jsd", + "name" : "testValidateResponsesDetails_otherEnabledButEmpty_shouldReturnError" + }, + "acm010918jsd" : { + "type" : "ControlElement", + "id" : "acm010918jsd", + "name" : "testValidateResponsesDetails_choicesMoreThanMax_shouldReturnError" + }, + "acm010919jsd" : { + "type" : "ControlElement", + "id" : "acm010919jsd", + "name" : "testValidateResponsesDetails_choicesLessThanMin_shouldReturnError" + }, + "acm010920jsd" : { + "type" : "ControlElement", + "id" : "acm010920jsd", + "name" : "testValidateResponsesDetails_noneOfTheAboveSelectedWhenMinRestriction_shouldReturnError" + }, + "acm010921jsd" : { + "type" : "ControlElement", + "id" : "acm010921jsd", + "name" : "testValidateResponsesDetails_noneOfTheAboveSelectedButOtherExists_shouldReturnError" + }, + "acm010922jsd" : { + "type" : "ControlElement", + "id" : "acm010922jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010923jsd" : { + "type" : "ControlElement", + "id" : "acm010923jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010924jsd" : { + "type" : "ControlElement", + "id" : "acm010924jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentMsqChoices_shouldReturnTrue" + }, + "acm010925jsd" : { + "type" : "ControlElement", + "id" : "acm010925jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentGenerateOptionsFor_shouldReturnTrue" + }, + "acm010926jsd" : { + "type" : "ControlElement", + "id" : "acm010926jsd", + "name" : "testShouldChangesRequireResponseDeletion_maxRestrictionAdded_shouldReturnTrue" + }, + "acm010927jsd" : { + "type" : "ControlElement", + "id" : "acm010927jsd", + "name" : "testShouldChangesRequireResponseDeletion_minRestrictionAdded_shouldReturnTrue" + }, + "acm010928jsd" : { + "type" : "ControlElement", + "id" : "acm010928jsd", + "name" : "testShouldChangesRequireResponseDeletion_moreStrictMaxRestrictionAdded_shouldReturnTrue" + }, + "acm010929jsd" : { + "type" : "ControlElement", + "id" : "acm010929jsd", + "name" : "testShouldChangesRequireResponseDeletion_moreStrictMinRestrictionAdded_shouldReturnTrue" + }, + "acm010930jsd" : { + "type" : "ControlElement", + "id" : "acm010930jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentOtherEnabled_shouldReturnTrue" + }, + "acm010931jsd" : { + "type" : "ControlElement", + "id" : "acm010931jsd", + "name" : "testShouldChangesRequireResponseDeletion_sameQuestionsDifferentOrder_shouldReturnFalse" + }, + "acm010932jsd" : { + "type" : "ClassUnit", + "id" : "acm010932jsd", + "name" : "FeedbackMsqQuestionDetailsTest", + "compilationUnitId" : "acm010894jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005909jsd", "acm005923jsd", "acm005977jsd" ], + "content" : [ "acm010899jsd", "acm010900jsd", "acm010901jsd", "acm010902jsd", "acm010903jsd", "acm010904jsd", "acm010905jsd", "acm010906jsd", "acm010907jsd", "acm010908jsd", "acm010909jsd", "acm010910jsd", "acm010911jsd", "acm010912jsd", "acm010913jsd", "acm010914jsd", "acm010915jsd", "acm010916jsd", "acm010917jsd", "acm010918jsd", "acm010919jsd", "acm010920jsd", "acm010921jsd", "acm010922jsd", "acm010923jsd", "acm010924jsd", "acm010925jsd", "acm010926jsd", "acm010927jsd", "acm010928jsd", "acm010929jsd", "acm010930jsd", "acm010931jsd" ] + }, + "acm010933jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010933jsd", + "name" : "FeedbackNumericalScaleQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010942jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010934jsd" : { + "type" : "CodePackage", + "id" : "acm010934jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010935jsd" ] + }, + "acm010935jsd" : { + "type" : "CodePackage", + "id" : "acm010935jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010936jsd" ] + }, + "acm010936jsd" : { + "type" : "CodePackage", + "id" : "acm010936jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010937jsd" ] + }, + "acm010937jsd" : { + "type" : "CodePackage", + "id" : "acm010937jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010933jsd" ] + }, + "acm010938jsd" : { + "type" : "ControlElement", + "id" : "acm010938jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010939jsd" : { + "type" : "ControlElement", + "id" : "acm010939jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010940jsd" : { + "type" : "ControlElement", + "id" : "acm010940jsd", + "name" : "tesValidateResponseDetails" + }, + "acm010941jsd" : { + "type" : "ControlElement", + "id" : "acm010941jsd", + "name" : "tesValidateQuestionDetails" + }, + "acm010942jsd" : { + "type" : "ClassUnit", + "id" : "acm010942jsd", + "name" : "FeedbackNumericalScaleQuestionDetailsTest", + "compilationUnitId" : "acm010933jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005942jsd", "acm005952jsd", "acm005977jsd" ], + "content" : [ "acm010938jsd", "acm010939jsd", "acm010940jsd", "acm010941jsd" ] + }, + "acm010943jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010943jsd", + "name" : "FeedbackQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010949jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010944jsd" : { + "type" : "CodePackage", + "id" : "acm010944jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010945jsd" ] + }, + "acm010945jsd" : { + "type" : "CodePackage", + "id" : "acm010945jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010946jsd" ] + }, + "acm010946jsd" : { + "type" : "CodePackage", + "id" : "acm010946jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010947jsd" ] + }, + "acm010947jsd" : { + "type" : "CodePackage", + "id" : "acm010947jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010943jsd" ] + }, + "acm010948jsd" : { + "type" : "ControlElement", + "id" : "acm010948jsd", + "name" : "testEquals" + }, + "acm010949jsd" : { + "type" : "ClassUnit", + "id" : "acm010949jsd", + "name" : "FeedbackQuestionDetailsTest", + "compilationUnitId" : "acm010943jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005866jsd", "acm005977jsd", "acm006116jsd" ], + "content" : [ "acm010948jsd" ] + }, + "acm010950jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010950jsd", + "name" : "FeedbackRankOptionsQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010968jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010951jsd" : { + "type" : "CodePackage", + "id" : "acm010951jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010952jsd" ] + }, + "acm010952jsd" : { + "type" : "CodePackage", + "id" : "acm010952jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010953jsd" ] + }, + "acm010953jsd" : { + "type" : "CodePackage", + "id" : "acm010953jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010954jsd" ] + }, + "acm010954jsd" : { + "type" : "CodePackage", + "id" : "acm010954jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010950jsd" ] + }, + "acm010955jsd" : { + "type" : "ControlElement", + "id" : "acm010955jsd", + "name" : "testConstructor_defaultConstructor_fieldsShouldHaveCorrectDefaultValues" + }, + "acm010956jsd" : { + "type" : "ControlElement", + "id" : "acm010956jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010957jsd" : { + "type" : "ControlElement", + "id" : "acm010957jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010958jsd" : { + "type" : "ControlElement", + "id" : "acm010958jsd", + "name" : "testValidateQuestionDetails_emptyOption_errorReturned" + }, + "acm010959jsd" : { + "type" : "ControlElement", + "id" : "acm010959jsd", + "name" : "testValidateQuestionDetails_invalidMaxMinOptions_errorReturned" + }, + "acm010960jsd" : { + "type" : "ControlElement", + "id" : "acm010960jsd", + "name" : "testValidateQuestionDetails_optionSizeInvalid_errorReturned" + }, + "acm010961jsd" : { + "type" : "ControlElement", + "id" : "acm010961jsd", + "name" : "testValidateQuestionDetails_optionSizeValid_noError" + }, + "acm010962jsd" : { + "type" : "ControlElement", + "id" : "acm010962jsd", + "name" : "testValidateResponseDetails_duplicateRankOptions_errorReturned" + }, + "acm010963jsd" : { + "type" : "ControlElement", + "id" : "acm010963jsd", + "name" : "testValidateResponseDetails_optionExceedBound_errorReturned" + }, + "acm010964jsd" : { + "type" : "ControlElement", + "id" : "acm010964jsd", + "name" : "testValidateResponseDetails_invalidRankOption_errorReturned" + }, + "acm010965jsd" : { + "type" : "ControlElement", + "id" : "acm010965jsd", + "name" : "testValidateResponseDetails_validRankOption_noError" + }, + "acm010966jsd" : { + "type" : "ControlElement", + "id" : "acm010966jsd", + "name" : "testValidateResponseDetails_duplicateOptionInDefault_errorReturned" + }, + "acm010967jsd" : { + "type" : "ControlElement", + "id" : "acm010967jsd", + "name" : "testValidateResponseDetails_duplicateOption_noError" + }, + "acm010968jsd" : { + "type" : "ClassUnit", + "id" : "acm010968jsd", + "name" : "FeedbackRankOptionsQuestionDetailsTest", + "compilationUnitId" : "acm010950jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005977jsd", "acm006001jsd", "acm006012jsd" ], + "content" : [ "acm010955jsd", "acm010956jsd", "acm010957jsd", "acm010958jsd", "acm010959jsd", "acm010960jsd", "acm010961jsd", "acm010962jsd", "acm010963jsd", "acm010964jsd", "acm010965jsd", "acm010966jsd", "acm010967jsd" ] + }, + "acm010969jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010969jsd", + "name" : "FeedbackRankQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010978jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010970jsd" : { + "type" : "CodePackage", + "id" : "acm010970jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010971jsd" ] + }, + "acm010971jsd" : { + "type" : "CodePackage", + "id" : "acm010971jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010972jsd" ] + }, + "acm010972jsd" : { + "type" : "CodePackage", + "id" : "acm010972jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010973jsd" ] + }, + "acm010973jsd" : { + "type" : "CodePackage", + "id" : "acm010973jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010969jsd" ] + }, + "acm010974jsd" : { + "type" : "ControlElement", + "id" : "acm010974jsd", + "name" : "testValidateSetMinOptionsToBeRanked_sameValidValues_shouldReturnTrue" + }, + "acm010975jsd" : { + "type" : "ControlElement", + "id" : "acm010975jsd", + "name" : "testValidateSetMaxOptionsToBeRanked_sameValidValues_shouldReturnTrue" + }, + "acm010976jsd" : { + "type" : "ControlElement", + "id" : "acm010976jsd", + "name" : "testValidateSetDuplicatesAllowed_validValues_shouldReturnTrue" + }, + "acm010977jsd" : { + "type" : "ControlElement", + "id" : "acm010977jsd", + "name" : "testValidateDefaultValue_sameValues_shouldReturnTrue" + }, + "acm010978jsd" : { + "type" : "ClassUnit", + "id" : "acm010978jsd", + "name" : "FeedbackRankQuestionDetailsTest", + "compilationUnitId" : "acm010969jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006001jsd", "acm006025jsd" ], + "content" : [ "acm010974jsd", "acm010975jsd", "acm010976jsd", "acm010977jsd" ] + }, + "acm010979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010979jsd", + "name" : "FeedbackRankRecipientsQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010990jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010980jsd" : { + "type" : "CodePackage", + "id" : "acm010980jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010981jsd" ] + }, + "acm010981jsd" : { + "type" : "CodePackage", + "id" : "acm010981jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010982jsd" ] + }, + "acm010982jsd" : { + "type" : "CodePackage", + "id" : "acm010982jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010983jsd" ] + }, + "acm010983jsd" : { + "type" : "CodePackage", + "id" : "acm010983jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010979jsd" ] + }, + "acm010984jsd" : { + "type" : "ControlElement", + "id" : "acm010984jsd", + "name" : "testShouldChangesRequireResponseDeletion_shouldReturnFalse" + }, + "acm010985jsd" : { + "type" : "ControlElement", + "id" : "acm010985jsd", + "name" : "testValidateQuestionDetails_shouldReturnEmptyList" + }, + "acm010986jsd" : { + "type" : "ControlElement", + "id" : "acm010986jsd", + "name" : "tesValidateResponsesDetails" + }, + "acm010987jsd" : { + "type" : "ControlElement", + "id" : "acm010987jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm010988jsd" : { + "type" : "ControlElement", + "id" : "acm010988jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm010989jsd" : { + "type" : "ControlElement", + "id" : "acm010989jsd", + "name" : "testValidateGiverRecipientVisibility" + }, + "acm010990jsd" : { + "type" : "ClassUnit", + "id" : "acm010990jsd", + "name" : "FeedbackRankRecipientsQuestionDetailsTest", + "compilationUnitId" : "acm010979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006038jsd", "acm006049jsd" ], + "content" : [ "acm010984jsd", "acm010985jsd", "acm010986jsd", "acm010987jsd", "acm010988jsd", "acm010989jsd" ] + }, + "acm010991jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010991jsd", + "name" : "FeedbackResponseDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm010997jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010992jsd" : { + "type" : "CodePackage", + "id" : "acm010992jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm010993jsd" ] + }, + "acm010993jsd" : { + "type" : "CodePackage", + "id" : "acm010993jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm010994jsd" ] + }, + "acm010994jsd" : { + "type" : "CodePackage", + "id" : "acm010994jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm010995jsd" ] + }, + "acm010995jsd" : { + "type" : "CodePackage", + "id" : "acm010995jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010991jsd" ] + }, + "acm010996jsd" : { + "type" : "ControlElement", + "id" : "acm010996jsd", + "name" : "testGetDeepCopy" + }, + "acm010997jsd" : { + "type" : "ClassUnit", + "id" : "acm010997jsd", + "name" : "FeedbackResponseDetailsTest", + "compilationUnitId" : "acm010991jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006061jsd", "acm006127jsd" ], + "content" : [ "acm010996jsd" ] + }, + "acm010998jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm010998jsd", + "name" : "FeedbackRubricQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm011020jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm010999jsd" : { + "type" : "CodePackage", + "id" : "acm010999jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011000jsd" ] + }, + "acm011000jsd" : { + "type" : "CodePackage", + "id" : "acm011000jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011001jsd" ] + }, + "acm011001jsd" : { + "type" : "CodePackage", + "id" : "acm011001jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm011002jsd" ] + }, + "acm011002jsd" : { + "type" : "CodePackage", + "id" : "acm011002jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm010998jsd" ] + }, + "acm011003jsd" : { + "type" : "ControlElement", + "id" : "acm011003jsd", + "name" : "testConstructor_defaultConstructor_fieldsShouldHaveCorrectDefaultValues" + }, + "acm011004jsd" : { + "type" : "ControlElement", + "id" : "acm011004jsd", + "name" : "testShouldChangesRequireResponseDeletion_emptyRubricChoices_shouldReturnTrue" + }, + "acm011005jsd" : { + "type" : "ControlElement", + "id" : "acm011005jsd", + "name" : "testShouldChangesRequireResponseDeletion_equalSizeSubQuestions_shouldReturnFalse" + }, + "acm011006jsd" : { + "type" : "ControlElement", + "id" : "acm011006jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentSizeSubQuestions_shouldReturnTrue" + }, + "acm011007jsd" : { + "type" : "ControlElement", + "id" : "acm011007jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentListSubQuestions1_shouldReturnTrue" + }, + "acm011008jsd" : { + "type" : "ControlElement", + "id" : "acm011008jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentListSubQuestions2_shouldReturnTrue" + }, + "acm011009jsd" : { + "type" : "ControlElement", + "id" : "acm011009jsd", + "name" : "testShouldChangesRequireResponseDeletion_differentListSubQuestions3_shouldReturnTrue" + }, + "acm011010jsd" : { + "type" : "ControlElement", + "id" : "acm011010jsd", + "name" : "testValidateQuestionDetails_invalidWeightListSize_errorReturned" + }, + "acm011011jsd" : { + "type" : "ControlElement", + "id" : "acm011011jsd", + "name" : "testValidateQuestionDetails_validWeightListSize_errorListShouldBeEmpty" + }, + "acm011012jsd" : { + "type" : "ControlElement", + "id" : "acm011012jsd", + "name" : "testValidateQuestionDetails_invalidDescriptionSize_errorReturned" + }, + "acm011013jsd" : { + "type" : "ControlElement", + "id" : "acm011013jsd", + "name" : "testValidateQuestionDetails_invalidChoicesSize_shouldBe2MinChoices" + }, + "acm011014jsd" : { + "type" : "ControlElement", + "id" : "acm011014jsd", + "name" : "testValidateQuestionDetails_invalidSubQuestionSize_shouldBe2MinSubQuestion" + }, + "acm011015jsd" : { + "type" : "ControlElement", + "id" : "acm011015jsd", + "name" : "testValidateQuestionDetails_invalidBeNotEmptySubQuestionSize_shouldBeNotEmptySubQuestion" + }, + "acm011016jsd" : { + "type" : "ControlElement", + "id" : "acm011016jsd", + "name" : "testValidateResponseDetails_validAnswer_shouldReturnEmptyErrorList" + }, + "acm011017jsd" : { + "type" : "ControlElement", + "id" : "acm011017jsd", + "name" : "testValidateResponseDetails_invalidAnswer_shouldReturnNonEmptyErrorList" + }, + "acm011018jsd" : { + "type" : "ControlElement", + "id" : "acm011018jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm011019jsd" : { + "type" : "ControlElement", + "id" : "acm011019jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm011020jsd" : { + "type" : "ClassUnit", + "id" : "acm011020jsd", + "name" : "FeedbackRubricQuestionDetailsTest", + "compilationUnitId" : "acm010998jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005977jsd", "acm006089jsd", "acm006099jsd" ], + "content" : [ "acm011003jsd", "acm011004jsd", "acm011005jsd", "acm011006jsd", "acm011007jsd", "acm011008jsd", "acm011009jsd", "acm011010jsd", "acm011011jsd", "acm011012jsd", "acm011013jsd", "acm011014jsd", "acm011015jsd", "acm011016jsd", "acm011017jsd", "acm011018jsd", "acm011019jsd" ] + }, + "acm011021jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011021jsd", + "name" : "FeedbackTextQuestionDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm011033jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011022jsd" : { + "type" : "CodePackage", + "id" : "acm011022jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011023jsd" ] + }, + "acm011023jsd" : { + "type" : "CodePackage", + "id" : "acm011023jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011024jsd" ] + }, + "acm011024jsd" : { + "type" : "CodePackage", + "id" : "acm011024jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm011025jsd" ] + }, + "acm011025jsd" : { + "type" : "CodePackage", + "id" : "acm011025jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm011021jsd" ] + }, + "acm011026jsd" : { + "type" : "ControlElement", + "id" : "acm011026jsd", + "name" : "testShouldChangesRequireResponseDeletion" + }, + "acm011027jsd" : { + "type" : "ControlElement", + "id" : "acm011027jsd", + "name" : "testValidateQuestionDetails" + }, + "acm011028jsd" : { + "type" : "ControlElement", + "id" : "acm011028jsd", + "name" : "testValidateResponsesDetails_shouldReturnEmptyList" + }, + "acm011029jsd" : { + "type" : "ControlElement", + "id" : "acm011029jsd", + "name" : "testValidateGiverRecipientVisibility_shouldReturnEmptyString" + }, + "acm011030jsd" : { + "type" : "ControlElement", + "id" : "acm011030jsd", + "name" : "testIsInstructorCommentsOnResponsesAllowed_shouldReturnTrue" + }, + "acm011031jsd" : { + "type" : "ControlElement", + "id" : "acm011031jsd", + "name" : "testIsFeedbackParticipantCommentsOnResponsesAllowed_shouldReturnFalse" + }, + "acm011032jsd" : { + "type" : "ControlElement", + "id" : "acm011032jsd", + "name" : "testIsRichTextOptionTrueByDefault_shouldReturnTrue" + }, + "acm011033jsd" : { + "type" : "ClassUnit", + "id" : "acm011033jsd", + "name" : "FeedbackTextQuestionDetailsTest", + "compilationUnitId" : "acm011021jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005820jsd", "acm005977jsd", "acm006061jsd", "acm006116jsd", "acm006127jsd" ], + "content" : [ "acm011026jsd", "acm011027jsd", "acm011028jsd", "acm011029jsd", "acm011030jsd", "acm011031jsd", "acm011032jsd" ] + }, + "acm011034jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011034jsd", + "name" : "FeedbackTextResponseDetailsTest", + "parentId" : "acm005740jsd", + "content" : [ "acm011044jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011035jsd" : { + "type" : "CodePackage", + "id" : "acm011035jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011036jsd" ] + }, + "acm011036jsd" : { + "type" : "CodePackage", + "id" : "acm011036jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011037jsd" ] + }, + "acm011037jsd" : { + "type" : "CodePackage", + "id" : "acm011037jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm011038jsd" ] + }, + "acm011038jsd" : { + "type" : "CodePackage", + "id" : "acm011038jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm011034jsd" ] + }, + "acm011039jsd" : { + "type" : "ControlElement", + "id" : "acm011039jsd", + "name" : "testValidateArgumentConstructor_sameValues_shouldReturnTrue" + }, + "acm011040jsd" : { + "type" : "ControlElement", + "id" : "acm011040jsd", + "name" : "testValidateAttributesOfAnswer_nullValue_shouldReturnNull" + }, + "acm011041jsd" : { + "type" : "ControlElement", + "id" : "acm011041jsd", + "name" : "testValidateSanitizedAnswerString_nullValues_shouldReturnTrue" + }, + "acm011042jsd" : { + "type" : "ControlElement", + "id" : "acm011042jsd", + "name" : "testValidateSanitizedAnswerString_validValues_shouldReturnTrue" + }, + "acm011043jsd" : { + "type" : "ControlElement", + "id" : "acm011043jsd", + "name" : "testValidateSetAnswer_sameValues_shouldReturnTrue" + }, + "acm011044jsd" : { + "type" : "ClassUnit", + "id" : "acm011044jsd", + "name" : "FeedbackTextResponseDetailsTest", + "compilationUnitId" : "acm011034jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006127jsd" ], + "content" : [ "acm011039jsd", "acm011040jsd", "acm011041jsd", "acm011042jsd", "acm011043jsd" ] + }, + "acm011045jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011045jsd", + "name" : "package-info", + "parentId" : "acm005740jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "datatransfer", "questions" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011046jsd" : { + "type" : "CodePackage", + "id" : "acm011046jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011047jsd" ] + }, + "acm011047jsd" : { + "type" : "CodePackage", + "id" : "acm011047jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011048jsd" ] + }, + "acm011048jsd" : { + "type" : "CodePackage", + "id" : "acm011048jsd", + "name" : "datatransfer", + "parentId" : null, + "content" : [ "acm011049jsd" ] + }, + "acm011049jsd" : { + "type" : "CodePackage", + "id" : "acm011049jsd", + "name" : "questions", + "parentId" : null, + "content" : [ "acm011045jsd" ] + }, + "acm011050jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011050jsd", + "name" : "BuildPropertiesTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011055jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011051jsd" : { + "type" : "CodePackage", + "id" : "acm011051jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011052jsd" ] + }, + "acm011052jsd" : { + "type" : "CodePackage", + "id" : "acm011052jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011053jsd" ] + }, + "acm011053jsd" : { + "type" : "CodePackage", + "id" : "acm011053jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011050jsd" ] + }, + "acm011054jsd" : { + "type" : "ControlElement", + "id" : "acm011054jsd", + "name" : "checkPresence" + }, + "acm011055jsd" : { + "type" : "ClassUnit", + "id" : "acm011055jsd", + "name" : "BuildPropertiesTest", + "compilationUnitId" : "acm011050jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011054jsd" ] + }, + "acm011056jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011056jsd", + "name" : "FieldValidatorTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011111jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011057jsd" : { + "type" : "CodePackage", + "id" : "acm011057jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011058jsd" ] + }, + "acm011058jsd" : { + "type" : "CodePackage", + "id" : "acm011058jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011059jsd" ] + }, + "acm011059jsd" : { + "type" : "CodePackage", + "id" : "acm011059jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011056jsd" ] + }, + "acm011060jsd" : { + "type" : "ControlElement", + "id" : "acm011060jsd", + "name" : "testGetValidityInfoForNonHtmlField_cleanInput_returnEmptyString" + }, + "acm011061jsd" : { + "type" : "ControlElement", + "id" : "acm011061jsd", + "name" : "testGetValidityInfoForNonHtmlField_sanitizedInput_returnEmptyString" + }, + "acm011062jsd" : { + "type" : "ControlElement", + "id" : "acm011062jsd", + "name" : "testGetValidityInfoForNonHtmlField_unsanitizedInput_returnErrorString" + }, + "acm011063jsd" : { + "type" : "ControlElement", + "id" : "acm011063jsd", + "name" : "testGetValidityInfoForSizeCappedPossiblyEmptyString" + }, + "acm011064jsd" : { + "type" : "ControlElement", + "id" : "acm011064jsd", + "name" : "testGetValidityInfoForAllowedName" + }, + "acm011065jsd" : { + "type" : "ControlElement", + "id" : "acm011065jsd", + "name" : "testGetInvalidityInfoForPersonName_invalid_returnSpecificErrorString" + }, + "acm011066jsd" : { + "type" : "ControlElement", + "id" : "acm011066jsd", + "name" : "testGetInvalidityInfoForInstituteName_invalid_returnSpecificErrorString" + }, + "acm011067jsd" : { + "type" : "ControlElement", + "id" : "acm011067jsd", + "name" : "testGetInvalidityInfoForTeamName_invalid_returnSpecificErrorString" + }, + "acm011068jsd" : { + "type" : "ControlElement", + "id" : "acm011068jsd", + "name" : "testGetInvalidityInfoForSectionName_invalid_returnSpecificErrorString" + }, + "acm011069jsd" : { + "type" : "ControlElement", + "id" : "acm011069jsd", + "name" : "testGetInvalidityInfoForCourseName_invalid_returnSpecificErrorString" + }, + "acm011070jsd" : { + "type" : "ControlElement", + "id" : "acm011070jsd", + "name" : "testGetInvalidityInfoForFeedbackSessionName_invalid_returnSpecificErrorString" + }, + "acm011071jsd" : { + "type" : "ControlElement", + "id" : "acm011071jsd", + "name" : "testGetInvalidityInfoForRole_null_throwException" + }, + "acm011072jsd" : { + "type" : "ControlElement", + "id" : "acm011072jsd", + "name" : "testGetInvalidityInfoForRole_valid_returnEmptyString" + }, + "acm011073jsd" : { + "type" : "ControlElement", + "id" : "acm011073jsd", + "name" : "testGetInvalidityInfoForRole_invalid_returnErrorString" + }, + "acm011074jsd" : { + "type" : "ControlElement", + "id" : "acm011074jsd", + "name" : "testGetInvalidityInfoForGoogleId_null_throwException" + }, + "acm011075jsd" : { + "type" : "ControlElement", + "id" : "acm011075jsd", + "name" : "testGetInvalidityInfoForGoogleId_valid_returnEmptyString" + }, + "acm011076jsd" : { + "type" : "ControlElement", + "id" : "acm011076jsd", + "name" : "testGetInvalidityInfoForGoogleId_invalid_returnErrorString" + }, + "acm011077jsd" : { + "type" : "ControlElement", + "id" : "acm011077jsd", + "name" : "testGetInvalidityInfoForEmail_null_throwException" + }, + "acm011078jsd" : { + "type" : "ControlElement", + "id" : "acm011078jsd", + "name" : "testGetInvalidityInfoForEmail_valid_returnEmptyString" + }, + "acm011079jsd" : { + "type" : "ControlElement", + "id" : "acm011079jsd", + "name" : "testGetInvalidityInfoForEmail_invalid_returnErrorString" + }, + "acm011080jsd" : { + "type" : "ControlElement", + "id" : "acm011080jsd", + "name" : "testGetInvalidityInfoForCourseId_null_throwException" + }, + "acm011081jsd" : { + "type" : "ControlElement", + "id" : "acm011081jsd", + "name" : "testGetInvalidityInfoForCourseId_valid_returnEmptyString" + }, + "acm011082jsd" : { + "type" : "ControlElement", + "id" : "acm011082jsd", + "name" : "testGetInvalidityInfoForCourseId_invalid_returnErrorString" + }, + "acm011083jsd" : { + "type" : "ControlElement", + "id" : "acm011083jsd", + "name" : "testGetInvalidityInfoForNewStartTime_valid_returnEmptyString" + }, + "acm011084jsd" : { + "type" : "ControlElement", + "id" : "acm011084jsd", + "name" : "testGetInvalidityInfoForNewStartTime_invalid_returnErrorString" + }, + "acm011085jsd" : { + "type" : "ControlElement", + "id" : "acm011085jsd", + "name" : "testGetInvalidityInfoForNewEndTime_valid_returnEmptyString" + }, + "acm011086jsd" : { + "type" : "ControlElement", + "id" : "acm011086jsd", + "name" : "testGetInvalidityInfoForNewEndTime_invalid_returnErrorString" + }, + "acm011087jsd" : { + "type" : "ControlElement", + "id" : "acm011087jsd", + "name" : "testGetInvalidityInfoForTimeForSessionStartAndEnd_valid_returnEmptyString" + }, + "acm011088jsd" : { + "type" : "ControlElement", + "id" : "acm011088jsd", + "name" : "testGetInvalidityInfoForTimeForSessionStartAndEnd_invalid_returnErrorString" + }, + "acm011089jsd" : { + "type" : "ControlElement", + "id" : "acm011089jsd", + "name" : "testGetInvalidityInfoForTimeForVisibilityStartAndSessionStart_valid_returnEmptyString" + }, + "acm011090jsd" : { + "type" : "ControlElement", + "id" : "acm011090jsd", + "name" : "testGetInvalidityInfoForTimeForVisibilityStartAndSessionStart_invalid_returnErrorString" + }, + "acm011091jsd" : { + "type" : "ControlElement", + "id" : "acm011091jsd", + "name" : "testGetInvalidityInfoForTimeForNewVisibilityStart_valid_returnEmptyString" + }, + "acm011092jsd" : { + "type" : "ControlElement", + "id" : "acm011092jsd", + "name" : "testGetInvalidityInfoForTimeForNewVisibilityStart_invalid_returnErrorString" + }, + "acm011093jsd" : { + "type" : "ControlElement", + "id" : "acm011093jsd", + "name" : "testGetInvalidityInfoForTimeForVisibilityStartAndResultsPublish_valid_returnEmptyString" + }, + "acm011094jsd" : { + "type" : "ControlElement", + "id" : "acm011094jsd", + "name" : "testGetInvalidityInfoForTimeForVisibilityStartAndResultsPublish_invalid_returnErrorString" + }, + "acm011095jsd" : { + "type" : "ControlElement", + "id" : "acm011095jsd", + "name" : "testGetInvalidityInfoForTimeForSessionEndAndExtendedDeadlines_valid_returnEmptyString" + }, + "acm011096jsd" : { + "type" : "ControlElement", + "id" : "acm011096jsd", + "name" : "testGetInvalidityInfoForTimeForSessionEndAndExtendedDeadlines_invalid_returnErrorString" + }, + "acm011097jsd" : { + "type" : "ControlElement", + "id" : "acm011097jsd", + "name" : "testGetInvalidityInfoForTimeForNotificationStartAndEnd_valid_returnEmptyString" + }, + "acm011098jsd" : { + "type" : "ControlElement", + "id" : "acm011098jsd", + "name" : "testGetInvalidityInfoForTimeForNotificationStartAndEnd_inValid_returnErrorString" + }, + "acm011099jsd" : { + "type" : "ControlElement", + "id" : "acm011099jsd", + "name" : "testGetInvalidityInfoForNotificationTitle_valid_returnEmptyString" + }, + "acm011100jsd" : { + "type" : "ControlElement", + "id" : "acm011100jsd", + "name" : "testGetInvalidityInfoForNotificationTitle_inValid_returnErrorString" + }, + "acm011101jsd" : { + "type" : "ControlElement", + "id" : "acm011101jsd", + "name" : "testGetInvalidityInfoForNotificationBody_valid_returnEmptyString" + }, + "acm011102jsd" : { + "type" : "ControlElement", + "id" : "acm011102jsd", + "name" : "testGetInvalidityInfoForNotificationBody_inValid_returnErrorString" + }, + "acm011103jsd" : { + "type" : "ControlElement", + "id" : "acm011103jsd", + "name" : "testGetInvalidityInfoForNotificationStyle_valid_returnEmptyString" + }, + "acm011104jsd" : { + "type" : "ControlElement", + "id" : "acm011104jsd", + "name" : "testGetInvalidityInfoForNotificationStyle_inValid_returnErrorString" + }, + "acm011105jsd" : { + "type" : "ControlElement", + "id" : "acm011105jsd", + "name" : "testGetInvalidityInfoForNotificationTargetUser_valid_returnEmptyString" + }, + "acm011106jsd" : { + "type" : "ControlElement", + "id" : "acm011106jsd", + "name" : "testGetInvalidityInfoForNotificationTargetUser_inValid_returnErrorString" + }, + "acm011107jsd" : { + "type" : "ControlElement", + "id" : "acm011107jsd", + "name" : "testRegexName" + }, + "acm011108jsd" : { + "type" : "ControlElement", + "id" : "acm011108jsd", + "name" : "testRegexEmail" + }, + "acm011109jsd" : { + "type" : "ControlElement", + "id" : "acm011109jsd", + "name" : "testRegexCourseId" + }, + "acm011110jsd" : { + "type" : "ControlElement", + "id" : "acm011110jsd", + "name" : "testRegexGoogleIdNonEmail" + }, + "acm011111jsd" : { + "type" : "ClassUnit", + "id" : "acm011111jsd", + "name" : "FieldValidatorTest", + "compilationUnitId" : "acm011056jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011060jsd", "acm011061jsd", "acm011062jsd", "acm011063jsd", "acm011064jsd", "acm011065jsd", "acm011066jsd", "acm011067jsd", "acm011068jsd", "acm011069jsd", "acm011070jsd", "acm011071jsd", "acm011072jsd", "acm011073jsd", "acm011074jsd", "acm011075jsd", "acm011076jsd", "acm011077jsd", "acm011078jsd", "acm011079jsd", "acm011080jsd", "acm011081jsd", "acm011082jsd", "acm011083jsd", "acm011084jsd", "acm011085jsd", "acm011086jsd", "acm011087jsd", "acm011088jsd", "acm011089jsd", "acm011090jsd", "acm011091jsd", "acm011092jsd", "acm011093jsd", "acm011094jsd", "acm011095jsd", "acm011096jsd", "acm011097jsd", "acm011098jsd", "acm011099jsd", "acm011100jsd", "acm011101jsd", "acm011102jsd", "acm011103jsd", "acm011104jsd", "acm011105jsd", "acm011106jsd", "acm011107jsd", "acm011108jsd", "acm011109jsd", "acm011110jsd" ] + }, + "acm011112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011112jsd", + "name" : "JsonUtilsTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011118jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011113jsd" : { + "type" : "CodePackage", + "id" : "acm011113jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011114jsd" ] + }, + "acm011114jsd" : { + "type" : "CodePackage", + "id" : "acm011114jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011115jsd" ] + }, + "acm011115jsd" : { + "type" : "CodePackage", + "id" : "acm011115jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011112jsd" ] + }, + "acm011116jsd" : { + "type" : "ControlElement", + "id" : "acm011116jsd", + "name" : "testFeedbackQuestionDetailsAdaptor_withComposedQuestionDetails_shouldSerializeToConcreteClass" + }, + "acm011117jsd" : { + "type" : "ControlElement", + "id" : "acm011117jsd", + "name" : "testFeedbackResponseDetailsAdaptor_withComposedResponseDetails_shouldSerializeToConcreteClass" + }, + "acm011118jsd" : { + "type" : "ClassUnit", + "id" : "acm011118jsd", + "name" : "JsonUtilsTest", + "compilationUnitId" : "acm011112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004226jsd", "acm004788jsd", "acm004871jsd", "acm006116jsd", "acm006127jsd" ], + "content" : [ "acm011116jsd", "acm011117jsd" ] + }, + "acm011119jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011119jsd", + "name" : "SanitizationHelperTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011133jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011120jsd" : { + "type" : "CodePackage", + "id" : "acm011120jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011121jsd" ] + }, + "acm011121jsd" : { + "type" : "CodePackage", + "id" : "acm011121jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011122jsd" ] + }, + "acm011122jsd" : { + "type" : "CodePackage", + "id" : "acm011122jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011119jsd" ] + }, + "acm011123jsd" : { + "type" : "ControlElement", + "id" : "acm011123jsd", + "name" : "testSanitizeGoogleId" + }, + "acm011124jsd" : { + "type" : "ControlElement", + "id" : "acm011124jsd", + "name" : "testSanitizeEmail" + }, + "acm011125jsd" : { + "type" : "ControlElement", + "id" : "acm011125jsd", + "name" : "testSanitizeName" + }, + "acm011126jsd" : { + "type" : "ControlElement", + "id" : "acm011126jsd", + "name" : "testSanitizeTitle" + }, + "acm011127jsd" : { + "type" : "ControlElement", + "id" : "acm011127jsd", + "name" : "testSanitizeTextField" + }, + "acm011128jsd" : { + "type" : "ControlElement", + "id" : "acm011128jsd", + "name" : "testSanitizeForHtml" + }, + "acm011129jsd" : { + "type" : "ControlElement", + "id" : "acm011129jsd", + "name" : "sanitizeHtml_receivesNull_returnsNull" + }, + "acm011130jsd" : { + "type" : "ControlElement", + "id" : "acm011130jsd", + "name" : "sanitizeHtml_receivesCodeInjection_returnsSanitized" + }, + "acm011131jsd" : { + "type" : "ControlElement", + "id" : "acm011131jsd", + "name" : "sanitizeHtml_receivesSanitized_returnsUnchanged" + }, + "acm011132jsd" : { + "type" : "ControlElement", + "id" : "acm011132jsd", + "name" : "testSanitizeForRichText" + }, + "acm011133jsd" : { + "type" : "ClassUnit", + "id" : "acm011133jsd", + "name" : "SanitizationHelperTest", + "compilationUnitId" : "acm011119jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011123jsd", "acm011124jsd", "acm011125jsd", "acm011126jsd", "acm011127jsd", "acm011128jsd", "acm011129jsd", "acm011130jsd", "acm011131jsd", "acm011132jsd" ] + }, + "acm011134jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011134jsd", + "name" : "StringHelperExtension", + "parentId" : "acm006205jsd", + "content" : [ "acm011140jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011135jsd" : { + "type" : "CodePackage", + "id" : "acm011135jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011136jsd" ] + }, + "acm011136jsd" : { + "type" : "CodePackage", + "id" : "acm011136jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011137jsd" ] + }, + "acm011137jsd" : { + "type" : "CodePackage", + "id" : "acm011137jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011134jsd" ] + }, + "acm011138jsd" : { + "type" : "ControlElement", + "id" : "acm011138jsd", + "name" : "StringHelperExtension" + }, + "acm011139jsd" : { + "type" : "ControlElement", + "id" : "acm011139jsd", + "name" : "generateStringOfLength" + }, + "acm011140jsd" : { + "type" : "ClassUnit", + "id" : "acm011140jsd", + "name" : "StringHelperExtension", + "compilationUnitId" : "acm011134jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011138jsd", "acm011139jsd" ] + }, + "acm011141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011141jsd", + "name" : "StringHelperTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011161jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011142jsd" : { + "type" : "CodePackage", + "id" : "acm011142jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011143jsd" ] + }, + "acm011143jsd" : { + "type" : "CodePackage", + "id" : "acm011143jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011144jsd" ] + }, + "acm011144jsd" : { + "type" : "CodePackage", + "id" : "acm011144jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011141jsd" ] + }, + "acm011145jsd" : { + "type" : "ControlElement", + "id" : "acm011145jsd", + "name" : "testIsEmpty" + }, + "acm011146jsd" : { + "type" : "ControlElement", + "id" : "acm011146jsd", + "name" : "testGenerateStringOfLength" + }, + "acm011147jsd" : { + "type" : "ControlElement", + "id" : "acm011147jsd", + "name" : "testIsMatching" + }, + "acm011148jsd" : { + "type" : "ControlElement", + "id" : "acm011148jsd", + "name" : "testToString" + }, + "acm011149jsd" : { + "type" : "ControlElement", + "id" : "acm011149jsd", + "name" : "testKeyEncryption" + }, + "acm011150jsd" : { + "type" : "ControlElement", + "id" : "acm011150jsd", + "name" : "testDefaultAesCipherParams" + }, + "acm011151jsd" : { + "type" : "ControlElement", + "id" : "acm011151jsd", + "name" : "assertEncryptionUsesExpectedDefaultParams" + }, + "acm011152jsd" : { + "type" : "ControlElement", + "id" : "acm011152jsd", + "name" : "encryptWithoutSpecifyingAlgorithmParams" + }, + "acm011153jsd" : { + "type" : "ControlElement", + "id" : "acm011153jsd", + "name" : "generateSignature" + }, + "acm011154jsd" : { + "type" : "ControlElement", + "id" : "acm011154jsd", + "name" : "testDecryptingInvalidCiphertextThrowsException" + }, + "acm011155jsd" : { + "type" : "ControlElement", + "id" : "acm011155jsd", + "name" : "testRemoveExtraSpace" + }, + "acm011156jsd" : { + "type" : "ControlElement", + "id" : "acm011156jsd", + "name" : "testReplaceIllegalChars" + }, + "acm011157jsd" : { + "type" : "ControlElement", + "id" : "acm011157jsd", + "name" : "testConvertToEmptyStringIfNull" + }, + "acm011158jsd" : { + "type" : "ControlElement", + "id" : "acm011158jsd", + "name" : "testTruncateHead" + }, + "acm011159jsd" : { + "type" : "ControlElement", + "id" : "acm011159jsd", + "name" : "testSignatureGeneration" + }, + "acm011160jsd" : { + "type" : "ControlElement", + "id" : "acm011160jsd", + "name" : "testSignatureVerification" + }, + "acm011161jsd" : { + "type" : "ClassUnit", + "id" : "acm011161jsd", + "name" : "StringHelperTest", + "compilationUnitId" : "acm011141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006188jsd" ], + "content" : [ "acm011145jsd", "acm011146jsd", "acm011147jsd", "acm011148jsd", "acm011149jsd", "acm011150jsd", "acm011151jsd", "acm011152jsd", "acm011153jsd", "acm011154jsd", "acm011155jsd", "acm011156jsd", "acm011157jsd", "acm011158jsd", "acm011159jsd", "acm011160jsd" ] + }, + "acm011162jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011162jsd", + "name" : "TimeHelperExtension", + "parentId" : "acm006205jsd", + "content" : [ "acm011172jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011163jsd" : { + "type" : "CodePackage", + "id" : "acm011163jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011164jsd" ] + }, + "acm011164jsd" : { + "type" : "CodePackage", + "id" : "acm011164jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011165jsd" ] + }, + "acm011165jsd" : { + "type" : "CodePackage", + "id" : "acm011165jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011162jsd" ] + }, + "acm011166jsd" : { + "type" : "ControlElement", + "id" : "acm011166jsd", + "name" : "TimeHelperExtension" + }, + "acm011167jsd" : { + "type" : "ControlElement", + "id" : "acm011167jsd", + "name" : "getInstantMinutesOffsetFromNow" + }, + "acm011168jsd" : { + "type" : "ControlElement", + "id" : "acm011168jsd", + "name" : "getInstantHoursOffsetFromNow" + }, + "acm011169jsd" : { + "type" : "ControlElement", + "id" : "acm011169jsd", + "name" : "getInstantDaysOffsetFromNow" + }, + "acm011170jsd" : { + "type" : "ControlElement", + "id" : "acm011170jsd", + "name" : "getInstantTruncatedDaysOffsetFromNow" + }, + "acm011171jsd" : { + "type" : "ControlElement", + "id" : "acm011171jsd", + "name" : "getTimezoneInstantTruncatedDaysOffsetFromNow" + }, + "acm011172jsd" : { + "type" : "ClassUnit", + "id" : "acm011172jsd", + "name" : "TimeHelperExtension", + "compilationUnitId" : "acm011162jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011166jsd", "acm011167jsd", "acm011168jsd", "acm011169jsd", "acm011170jsd", "acm011171jsd" ] + }, + "acm011173jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011173jsd", + "name" : "TimeHelperTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011184jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011174jsd" : { + "type" : "CodePackage", + "id" : "acm011174jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011175jsd" ] + }, + "acm011175jsd" : { + "type" : "CodePackage", + "id" : "acm011175jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011176jsd" ] + }, + "acm011176jsd" : { + "type" : "CodePackage", + "id" : "acm011176jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011173jsd" ] + }, + "acm011177jsd" : { + "type" : "ControlElement", + "id" : "acm011177jsd", + "name" : "testEndOfYearDates" + }, + "acm011178jsd" : { + "type" : "ControlElement", + "id" : "acm011178jsd", + "name" : "testFormatDateTimeForDisplay" + }, + "acm011179jsd" : { + "type" : "ControlElement", + "id" : "acm011179jsd", + "name" : "testGetMidnightAdjustedInstantBasedOnZone" + }, + "acm011180jsd" : { + "type" : "ControlElement", + "id" : "acm011180jsd", + "name" : "testGetInstantNearestHourBefore" + }, + "acm011181jsd" : { + "type" : "ControlElement", + "id" : "acm011181jsd", + "name" : "testGetInstantDaysOffsetFromNow" + }, + "acm011182jsd" : { + "type" : "ControlElement", + "id" : "acm011182jsd", + "name" : "testGetInstantDaysOffsetBeforeNow" + }, + "acm011183jsd" : { + "type" : "ControlElement", + "id" : "acm011183jsd", + "name" : "testGetInstantHoursOffsetFromNow" + }, + "acm011184jsd" : { + "type" : "ClassUnit", + "id" : "acm011184jsd", + "name" : "TimeHelperTest", + "compilationUnitId" : "acm011173jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011177jsd", "acm011178jsd", "acm011179jsd", "acm011180jsd", "acm011181jsd", "acm011182jsd", "acm011183jsd" ] + }, + "acm011185jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011185jsd", + "name" : "UrlTest", + "parentId" : "acm006205jsd", + "content" : [ "acm011192jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011186jsd" : { + "type" : "CodePackage", + "id" : "acm011186jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011187jsd" ] + }, + "acm011187jsd" : { + "type" : "CodePackage", + "id" : "acm011187jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011188jsd" ] + }, + "acm011188jsd" : { + "type" : "CodePackage", + "id" : "acm011188jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011185jsd" ] + }, + "acm011189jsd" : { + "type" : "ControlElement", + "id" : "acm011189jsd", + "name" : "testToString" + }, + "acm011190jsd" : { + "type" : "ControlElement", + "id" : "acm011190jsd", + "name" : "testAppendParameters" + }, + "acm011191jsd" : { + "type" : "ControlElement", + "id" : "acm011191jsd", + "name" : "testAppUrlAssertion" + }, + "acm011192jsd" : { + "type" : "ClassUnit", + "id" : "acm011192jsd", + "name" : "UrlTest", + "compilationUnitId" : "acm011185jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006214jsd", "acm006554jsd" ], + "content" : [ "acm011189jsd", "acm011190jsd", "acm011191jsd" ] + }, + "acm011193jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011193jsd", + "name" : "package-info", + "parentId" : "acm006205jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "common", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011194jsd" : { + "type" : "CodePackage", + "id" : "acm011194jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011195jsd" ] + }, + "acm011195jsd" : { + "type" : "CodePackage", + "id" : "acm011195jsd", + "name" : "common", + "parentId" : null, + "content" : [ "acm011196jsd" ] + }, + "acm011196jsd" : { + "type" : "CodePackage", + "id" : "acm011196jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm011193jsd" ] + }, + "acm011197jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011197jsd", + "name" : "BaseLogicTest", + "parentId" : "acm006562jsd", + "content" : [ "acm011203jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011198jsd" : { + "type" : "CodePackage", + "id" : "acm011198jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011199jsd" ] + }, + "acm011199jsd" : { + "type" : "CodePackage", + "id" : "acm011199jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011200jsd" ] + }, + "acm011200jsd" : { + "type" : "CodePackage", + "id" : "acm011200jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011197jsd" ] + }, + "acm011201jsd" : { + "type" : "ControlElement", + "id" : "acm011201jsd", + "name" : "baseClassSetup" + }, + "acm011202jsd" : { + "type" : "ControlElement", + "id" : "acm011202jsd", + "name" : "prepareTestData" + }, + "acm011203jsd" : { + "type" : "ClassUnit", + "id" : "acm011203jsd", + "name" : "BaseLogicTest", + "compilationUnitId" : "acm011197jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd" ], + "content" : [ "acm011201jsd", "acm011202jsd" ] + }, + "acm011204jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011204jsd", + "name" : "EmailGeneratorTest", + "parentId" : "acm006562jsd", + "content" : [ "acm011222jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011205jsd" : { + "type" : "CodePackage", + "id" : "acm011205jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011206jsd" ] + }, + "acm011206jsd" : { + "type" : "CodePackage", + "id" : "acm011206jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011207jsd" ] + }, + "acm011207jsd" : { + "type" : "CodePackage", + "id" : "acm011207jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011204jsd" ] + }, + "acm011208jsd" : { + "type" : "ControlElement", + "id" : "acm011208jsd", + "name" : "prepareTestData" + }, + "acm011209jsd" : { + "type" : "ControlElement", + "id" : "acm011209jsd", + "name" : "testGenerateSessionLinksRecoveryEmail" + }, + "acm011210jsd" : { + "type" : "ControlElement", + "id" : "acm011210jsd", + "name" : "testGenerateFeedbackSessionEmails" + }, + "acm011211jsd" : { + "type" : "ControlElement", + "id" : "acm011211jsd", + "name" : "testGenerateFeedbackSessionEmails_testUsersWithDeadlineExtensions" + }, + "acm011212jsd" : { + "type" : "ControlElement", + "id" : "acm011212jsd", + "name" : "testGenerateFeedbackSessionEmails_testSanitization" + }, + "acm011213jsd" : { + "type" : "ControlElement", + "id" : "acm011213jsd", + "name" : "testGenerateInstructorJoinEmail" + }, + "acm011214jsd" : { + "type" : "ControlElement", + "id" : "acm011214jsd", + "name" : "testGenerateFeedbackSessionSummaryOfCourse_noSessionLinksFound" + }, + "acm011215jsd" : { + "type" : "ControlElement", + "id" : "acm011215jsd", + "name" : "testGenerateInstructorJoinEmail_testSanitization" + }, + "acm011216jsd" : { + "type" : "ControlElement", + "id" : "acm011216jsd", + "name" : "testGenerateStudentCourseJoinEmail" + }, + "acm011217jsd" : { + "type" : "ControlElement", + "id" : "acm011217jsd", + "name" : "testGenerateStudentCourseJoinEmail_testSanitization" + }, + "acm011218jsd" : { + "type" : "ControlElement", + "id" : "acm011218jsd", + "name" : "testGenerateUserCourseRegisterEmail" + }, + "acm011219jsd" : { + "type" : "ControlElement", + "id" : "acm011219jsd", + "name" : "testGenerateCompiledLogsEmail" + }, + "acm011220jsd" : { + "type" : "ControlElement", + "id" : "acm011220jsd", + "name" : "verifyEmail" + }, + "acm011221jsd" : { + "type" : "ControlElement", + "id" : "acm011221jsd", + "name" : "verifyEmailReceivedCorrectly" + }, + "acm011222jsd" : { + "type" : "ClassUnit", + "id" : "acm011222jsd", + "name" : "EmailGeneratorTest", + "compilationUnitId" : "acm011204jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011203jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004215jsd", "acm004486jsd", "acm004598jsd", "acm004662jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006624jsd", "acm006882jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd" ], + "content" : [ "acm011208jsd", "acm011209jsd", "acm011210jsd", "acm011211jsd", "acm011212jsd", "acm011213jsd", "acm011214jsd", "acm011215jsd", "acm011216jsd", "acm011217jsd", "acm011218jsd", "acm011219jsd", "acm011220jsd", "acm011221jsd" ] + }, + "acm011223jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011223jsd", + "name" : "EmailSenderTest", + "parentId" : "acm006562jsd", + "content" : [ "acm011232jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011224jsd" : { + "type" : "CodePackage", + "id" : "acm011224jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011225jsd" ] + }, + "acm011225jsd" : { + "type" : "CodePackage", + "id" : "acm011225jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011226jsd" ] + }, + "acm011226jsd" : { + "type" : "CodePackage", + "id" : "acm011226jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011223jsd" ] + }, + "acm011227jsd" : { + "type" : "ControlElement", + "id" : "acm011227jsd", + "name" : "prepareTestData" + }, + "acm011228jsd" : { + "type" : "ControlElement", + "id" : "acm011228jsd", + "name" : "getTypicalEmailWrapper" + }, + "acm011229jsd" : { + "type" : "ControlElement", + "id" : "acm011229jsd", + "name" : "testConvertToSendgrid" + }, + "acm011230jsd" : { + "type" : "ControlElement", + "id" : "acm011230jsd", + "name" : "testConvertToMailgun" + }, + "acm011231jsd" : { + "type" : "ControlElement", + "id" : "acm011231jsd", + "name" : "testConvertToMailjet" + }, + "acm011232jsd" : { + "type" : "ClassUnit", + "id" : "acm011232jsd", + "name" : "EmailSenderTest", + "compilationUnitId" : "acm011223jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011203jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd", "acm007316jsd", "acm007323jsd", "acm007336jsd" ], + "content" : [ "acm011227jsd", "acm011228jsd", "acm011229jsd", "acm011230jsd", "acm011231jsd" ] + }, + "acm011233jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011233jsd", + "name" : "LogicExtension", + "parentId" : "acm006562jsd", + "content" : [ "acm011242jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011234jsd" : { + "type" : "CodePackage", + "id" : "acm011234jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011235jsd" ] + }, + "acm011235jsd" : { + "type" : "CodePackage", + "id" : "acm011235jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011236jsd" ] + }, + "acm011236jsd" : { + "type" : "CodePackage", + "id" : "acm011236jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011233jsd" ] + }, + "acm011237jsd" : { + "type" : "ControlElement", + "id" : "acm011237jsd", + "name" : "getFeedbackQuestion" + }, + "acm011238jsd" : { + "type" : "ControlElement", + "id" : "acm011238jsd", + "name" : "getFeedbackResponse" + }, + "acm011239jsd" : { + "type" : "ControlElement", + "id" : "acm011239jsd", + "name" : "getFeedbackResponseComment" + }, + "acm011240jsd" : { + "type" : "ControlElement", + "id" : "acm011240jsd", + "name" : "getFeedbackResponseCommentForResponse" + }, + "acm011241jsd" : { + "type" : "ControlElement", + "id" : "acm011241jsd", + "name" : "getFeedbackResponsesForQuestion" + }, + "acm011242jsd" : { + "type" : "ClassUnit", + "id" : "acm011242jsd", + "name" : "LogicExtension", + "compilationUnitId" : "acm011233jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006767jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm004971jsd" ], + "content" : [ "acm011237jsd", "acm011238jsd", "acm011239jsd", "acm011240jsd", "acm011241jsd" ] + }, + "acm011243jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011243jsd", + "name" : "MockAuthProxy", + "parentId" : "acm006562jsd", + "content" : [ "acm011249jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011244jsd" : { + "type" : "CodePackage", + "id" : "acm011244jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011245jsd" ] + }, + "acm011245jsd" : { + "type" : "CodePackage", + "id" : "acm011245jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011246jsd" ] + }, + "acm011246jsd" : { + "type" : "CodePackage", + "id" : "acm011246jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011243jsd" ] + }, + "acm011247jsd" : { + "type" : "ControlElement", + "id" : "acm011247jsd", + "name" : "generateLoginLink" + }, + "acm011248jsd" : { + "type" : "ControlElement", + "id" : "acm011248jsd", + "name" : "isLoginEmailEnabled" + }, + "acm011249jsd" : { + "type" : "ClassUnit", + "id" : "acm011249jsd", + "name" : "MockAuthProxy", + "compilationUnitId" : "acm011243jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006568jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011247jsd", "acm011248jsd" ] + }, + "acm011250jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011250jsd", + "name" : "MockEmailSender", + "parentId" : "acm006562jsd", + "content" : [ "acm011257jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011251jsd" : { + "type" : "CodePackage", + "id" : "acm011251jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011252jsd" ] + }, + "acm011252jsd" : { + "type" : "CodePackage", + "id" : "acm011252jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011253jsd" ] + }, + "acm011253jsd" : { + "type" : "CodePackage", + "id" : "acm011253jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011250jsd" ] + }, + "acm011254jsd" : { + "type" : "ControlElement", + "id" : "acm011254jsd", + "name" : "sendEmail" + }, + "acm011255jsd" : { + "type" : "ControlElement", + "id" : "acm011255jsd", + "name" : "getEmailsSent" + }, + "acm011256jsd" : { + "type" : "ControlElement", + "id" : "acm011256jsd", + "name" : "clearEmails" + }, + "acm011257jsd" : { + "type" : "ClassUnit", + "id" : "acm011257jsd", + "name" : "MockEmailSender", + "compilationUnitId" : "acm011250jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006633jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006259jsd", "acm006290jsd" ], + "content" : [ "acm011254jsd", "acm011255jsd", "acm011256jsd" ] + }, + "acm011258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011258jsd", + "name" : "MockLogsProcessor", + "parentId" : "acm006562jsd", + "content" : [ "acm011270jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011259jsd" : { + "type" : "CodePackage", + "id" : "acm011259jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011260jsd" ] + }, + "acm011260jsd" : { + "type" : "CodePackage", + "id" : "acm011260jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011261jsd" ] + }, + "acm011261jsd" : { + "type" : "CodePackage", + "id" : "acm011261jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011258jsd" ] + }, + "acm011262jsd" : { + "type" : "ControlElement", + "id" : "acm011262jsd", + "name" : "insertFeedbackSessionLog" + }, + "acm011263jsd" : { + "type" : "ControlElement", + "id" : "acm011263jsd", + "name" : "insertInfoLog" + }, + "acm011264jsd" : { + "type" : "ControlElement", + "id" : "acm011264jsd", + "name" : "insertWarningLog" + }, + "acm011265jsd" : { + "type" : "ControlElement", + "id" : "acm011265jsd", + "name" : "insertErrorLog" + }, + "acm011266jsd" : { + "type" : "ControlElement", + "id" : "acm011266jsd", + "name" : "insertGeneralLog" + }, + "acm011267jsd" : { + "type" : "ControlElement", + "id" : "acm011267jsd", + "name" : "queryLogs" + }, + "acm011268jsd" : { + "type" : "ControlElement", + "id" : "acm011268jsd", + "name" : "createFeedbackSessionLog" + }, + "acm011269jsd" : { + "type" : "ControlElement", + "id" : "acm011269jsd", + "name" : "getFeedbackSessionLogs" + }, + "acm011270jsd" : { + "type" : "ClassUnit", + "id" : "acm011270jsd", + "name" : "MockLogsProcessor", + "compilationUnitId" : "acm011258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006778jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004258jsd", "acm004359jsd", "acm005572jsd", "acm005595jsd", "acm005611jsd", "acm005651jsd", "acm005726jsd" ], + "content" : [ "acm011262jsd", "acm011263jsd", "acm011264jsd", "acm011265jsd", "acm011266jsd", "acm011267jsd", "acm011268jsd", "acm011269jsd" ] + }, + "acm011271jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011271jsd", + "name" : "MockRecaptchaVerifier", + "parentId" : "acm006562jsd", + "content" : [ "acm011276jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011272jsd" : { + "type" : "CodePackage", + "id" : "acm011272jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011273jsd" ] + }, + "acm011273jsd" : { + "type" : "CodePackage", + "id" : "acm011273jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011274jsd" ] + }, + "acm011274jsd" : { + "type" : "CodePackage", + "id" : "acm011274jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011271jsd" ] + }, + "acm011275jsd" : { + "type" : "ControlElement", + "id" : "acm011275jsd", + "name" : "isVerificationSuccessful" + }, + "acm011276jsd" : { + "type" : "ClassUnit", + "id" : "acm011276jsd", + "name" : "MockRecaptchaVerifier", + "compilationUnitId" : "acm011271jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006786jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011275jsd" ] + }, + "acm011277jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011277jsd", + "name" : "MockTaskQueuer", + "parentId" : "acm006562jsd", + "content" : [ "acm011285jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011278jsd" : { + "type" : "CodePackage", + "id" : "acm011278jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011279jsd" ] + }, + "acm011279jsd" : { + "type" : "CodePackage", + "id" : "acm011279jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011280jsd" ] + }, + "acm011280jsd" : { + "type" : "CodePackage", + "id" : "acm011280jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011277jsd" ] + }, + "acm011281jsd" : { + "type" : "ControlElement", + "id" : "acm011281jsd", + "name" : "addDeferredTask" + }, + "acm011282jsd" : { + "type" : "ControlElement", + "id" : "acm011282jsd", + "name" : "getTasksAdded" + }, + "acm011283jsd" : { + "type" : "ControlElement", + "id" : "acm011283jsd", + "name" : "getNumberOfTasksAdded" + }, + "acm011284jsd" : { + "type" : "ControlElement", + "id" : "acm011284jsd", + "name" : "clearTasks" + }, + "acm011285jsd" : { + "type" : "ClassUnit", + "id" : "acm011285jsd", + "name" : "MockTaskQueuer", + "compilationUnitId" : "acm011277jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006807jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006504jsd" ], + "content" : [ "acm011281jsd", "acm011282jsd", "acm011283jsd", "acm011284jsd" ] + }, + "acm011286jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011286jsd", + "name" : "MockUserProvision", + "parentId" : "acm006562jsd", + "content" : [ "acm011295jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011287jsd" : { + "type" : "CodePackage", + "id" : "acm011287jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011288jsd" ] + }, + "acm011288jsd" : { + "type" : "CodePackage", + "id" : "acm011288jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011289jsd" ] + }, + "acm011289jsd" : { + "type" : "CodePackage", + "id" : "acm011289jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011286jsd" ] + }, + "acm011290jsd" : { + "type" : "ControlElement", + "id" : "acm011290jsd", + "name" : "loginUser" + }, + "acm011291jsd" : { + "type" : "ControlElement", + "id" : "acm011291jsd", + "name" : "loginUser" + }, + "acm011292jsd" : { + "type" : "ControlElement", + "id" : "acm011292jsd", + "name" : "loginAsAdmin" + }, + "acm011293jsd" : { + "type" : "ControlElement", + "id" : "acm011293jsd", + "name" : "logoutUser" + }, + "acm011294jsd" : { + "type" : "ControlElement", + "id" : "acm011294jsd", + "name" : "getCurrentLoggedInUser" + }, + "acm011295jsd" : { + "type" : "ClassUnit", + "id" : "acm011295jsd", + "name" : "MockUserProvision", + "compilationUnitId" : "acm011286jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm006818jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd", "acm004446jsd" ], + "content" : [ "acm011290jsd", "acm011291jsd", "acm011292jsd", "acm011293jsd", "acm011294jsd" ] + }, + "acm011296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011296jsd", + "name" : "UserProvisionTest", + "parentId" : "acm006562jsd", + "content" : [ "acm011301jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011297jsd" : { + "type" : "CodePackage", + "id" : "acm011297jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011298jsd" ] + }, + "acm011298jsd" : { + "type" : "CodePackage", + "id" : "acm011298jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011299jsd" ] + }, + "acm011299jsd" : { + "type" : "CodePackage", + "id" : "acm011299jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011296jsd" ] + }, + "acm011300jsd" : { + "type" : "ControlElement", + "id" : "acm011300jsd", + "name" : "testGetCurrentUser" + }, + "acm011301jsd" : { + "type" : "ClassUnit", + "id" : "acm011301jsd", + "name" : "UserProvisionTest", + "compilationUnitId" : "acm011296jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011203jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd", "acm004446jsd", "acm005233jsd", "acm005412jsd", "acm006818jsd" ], + "content" : [ "acm011300jsd" ] + }, + "acm011302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011302jsd", + "name" : "package-info", + "parentId" : "acm006562jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011303jsd" : { + "type" : "CodePackage", + "id" : "acm011303jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011304jsd" ] + }, + "acm011304jsd" : { + "type" : "CodePackage", + "id" : "acm011304jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011305jsd" ] + }, + "acm011305jsd" : { + "type" : "CodePackage", + "id" : "acm011305jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011302jsd" ] + }, + "acm011306jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011306jsd", + "name" : "AccountRequestsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011317jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011307jsd" : { + "type" : "CodePackage", + "id" : "acm011307jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011308jsd" ] + }, + "acm011308jsd" : { + "type" : "CodePackage", + "id" : "acm011308jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011309jsd" ] + }, + "acm011309jsd" : { + "type" : "CodePackage", + "id" : "acm011309jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011306jsd" ] + }, + "acm011310jsd" : { + "type" : "ControlElement", + "id" : "acm011310jsd", + "name" : "prepareTestData" + }, + "acm011311jsd" : { + "type" : "ControlElement", + "id" : "acm011311jsd", + "name" : "refreshTestData" + }, + "acm011312jsd" : { + "type" : "ControlElement", + "id" : "acm011312jsd", + "name" : "testCreateAccountRequest" + }, + "acm011313jsd" : { + "type" : "ControlElement", + "id" : "acm011313jsd", + "name" : "testUpdateAccountRequest" + }, + "acm011314jsd" : { + "type" : "ControlElement", + "id" : "acm011314jsd", + "name" : "testDeleteAccountRequest" + }, + "acm011315jsd" : { + "type" : "ControlElement", + "id" : "acm011315jsd", + "name" : "testGetAccountRequestForRegistrationKey" + }, + "acm011316jsd" : { + "type" : "ControlElement", + "id" : "acm011316jsd", + "name" : "testGetAccountRequest" + }, + "acm011317jsd" : { + "type" : "ClassUnit", + "id" : "acm011317jsd", + "name" : "AccountRequestsLogicTest", + "compilationUnitId" : "acm011306jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004549jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006838jsd" ], + "content" : [ "acm011310jsd", "acm011311jsd", "acm011312jsd", "acm011313jsd", "acm011314jsd", "acm011315jsd", "acm011316jsd" ] + }, + "acm011318jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011318jsd", + "name" : "AccountsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011334jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011319jsd" : { + "type" : "CodePackage", + "id" : "acm011319jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011320jsd" ] + }, + "acm011320jsd" : { + "type" : "CodePackage", + "id" : "acm011320jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011321jsd" ] + }, + "acm011321jsd" : { + "type" : "CodePackage", + "id" : "acm011321jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011318jsd" ] + }, + "acm011322jsd" : { + "type" : "ControlElement", + "id" : "acm011322jsd", + "name" : "prepareTestData" + }, + "acm011323jsd" : { + "type" : "ControlElement", + "id" : "acm011323jsd", + "name" : "refreshTestData" + }, + "acm011324jsd" : { + "type" : "ControlElement", + "id" : "acm011324jsd", + "name" : "getKeyForInstructor" + }, + "acm011325jsd" : { + "type" : "ControlElement", + "id" : "acm011325jsd", + "name" : "testCreateAccount" + }, + "acm011326jsd" : { + "type" : "ControlElement", + "id" : "acm011326jsd", + "name" : "testGetAccountsForEmail" + }, + "acm011327jsd" : { + "type" : "ControlElement", + "id" : "acm011327jsd", + "name" : "testJoinCourseForStudent" + }, + "acm011328jsd" : { + "type" : "ControlElement", + "id" : "acm011328jsd", + "name" : "testJoinCourseForInstructor" + }, + "acm011329jsd" : { + "type" : "ControlElement", + "id" : "acm011329jsd", + "name" : "testDeleteAccountCascade_lastInstructorInCourse_shouldDeleteOrphanCourse" + }, + "acm011330jsd" : { + "type" : "ControlElement", + "id" : "acm011330jsd", + "name" : "testDeleteAccountCascade_notLastInstructorInCourse_shouldNotDeleteCourse" + }, + "acm011331jsd" : { + "type" : "ControlElement", + "id" : "acm011331jsd", + "name" : "testDeleteAccountCascade_instructorArchivedAsLastInstructor_shouldDeleteCourseAlso" + }, + "acm011332jsd" : { + "type" : "ControlElement", + "id" : "acm011332jsd", + "name" : "testDeleteAccountCascade_nonExistentAccount_shouldPass" + }, + "acm011333jsd" : { + "type" : "ControlElement", + "id" : "acm011333jsd", + "name" : "testUpdateReadNotifications" + }, + "acm011334jsd" : { + "type" : "ClassUnit", + "id" : "acm011334jsd", + "name" : "AccountsLogicTest", + "compilationUnitId" : "acm011318jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006857jsd", "acm006882jsd", "acm007125jsd", "acm007192jsd", "acm007395jsd" ], + "content" : [ "acm011322jsd", "acm011323jsd", "acm011324jsd", "acm011325jsd", "acm011326jsd", "acm011327jsd", "acm011328jsd", "acm011329jsd", "acm011330jsd", "acm011331jsd", "acm011332jsd", "acm011333jsd" ] + }, + "acm011335jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011335jsd", + "name" : "BaseLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011341jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011336jsd" : { + "type" : "CodePackage", + "id" : "acm011336jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011337jsd" ] + }, + "acm011337jsd" : { + "type" : "CodePackage", + "id" : "acm011337jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011338jsd" ] + }, + "acm011338jsd" : { + "type" : "CodePackage", + "id" : "acm011338jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011335jsd" ] + }, + "acm011339jsd" : { + "type" : "ControlElement", + "id" : "acm011339jsd", + "name" : "baseClassSetup" + }, + "acm011340jsd" : { + "type" : "ControlElement", + "id" : "acm011340jsd", + "name" : "prepareTestData" + }, + "acm011341jsd" : { + "type" : "ClassUnit", + "id" : "acm011341jsd", + "name" : "BaseLogicTest", + "compilationUnitId" : "acm011335jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd" ], + "content" : [ "acm011339jsd", "acm011340jsd" ] + }, + "acm011342jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011342jsd", + "name" : "CoursesLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011363jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011343jsd" : { + "type" : "CodePackage", + "id" : "acm011343jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011344jsd" ] + }, + "acm011344jsd" : { + "type" : "CodePackage", + "id" : "acm011344jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011345jsd" ] + }, + "acm011345jsd" : { + "type" : "CodePackage", + "id" : "acm011345jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011342jsd" ] + }, + "acm011346jsd" : { + "type" : "ControlElement", + "id" : "acm011346jsd", + "name" : "prepareTestData" + }, + "acm011347jsd" : { + "type" : "ControlElement", + "id" : "acm011347jsd", + "name" : "refreshTestData" + }, + "acm011348jsd" : { + "type" : "ControlElement", + "id" : "acm011348jsd", + "name" : "testUpdateCourseCascade_shouldCascadeUpdateTimezoneOfFeedbackSessions" + }, + "acm011349jsd" : { + "type" : "ControlElement", + "id" : "acm011349jsd", + "name" : "testAll" + }, + "acm011350jsd" : { + "type" : "ControlElement", + "id" : "acm011350jsd", + "name" : "testGetCourse" + }, + "acm011351jsd" : { + "type" : "ControlElement", + "id" : "acm011351jsd", + "name" : "testGetSoftDeletedCoursesForInstructors" + }, + "acm011352jsd" : { + "type" : "ControlElement", + "id" : "acm011352jsd", + "name" : "testIsCoursePresent" + }, + "acm011353jsd" : { + "type" : "ControlElement", + "id" : "acm011353jsd", + "name" : "testVerifyCourseIsPresent" + }, + "acm011354jsd" : { + "type" : "ControlElement", + "id" : "acm011354jsd", + "name" : "testGetSectionsNameForCourse" + }, + "acm011355jsd" : { + "type" : "ControlElement", + "id" : "acm011355jsd", + "name" : "testGetTeamsForCourse" + }, + "acm011356jsd" : { + "type" : "ControlElement", + "id" : "acm011356jsd", + "name" : "testGetCoursesForStudentAccount" + }, + "acm011357jsd" : { + "type" : "ControlElement", + "id" : "acm011357jsd", + "name" : "testCreateCourse" + }, + "acm011358jsd" : { + "type" : "ControlElement", + "id" : "acm011358jsd", + "name" : "testCreateCourseAndInstructor" + }, + "acm011359jsd" : { + "type" : "ControlElement", + "id" : "acm011359jsd", + "name" : "testMoveCourseToRecycleBin" + }, + "acm011360jsd" : { + "type" : "ControlElement", + "id" : "acm011360jsd", + "name" : "testRestoreCourseFromRecycleBin" + }, + "acm011361jsd" : { + "type" : "ControlElement", + "id" : "acm011361jsd", + "name" : "testDeleteCourseCascade" + }, + "acm011362jsd" : { + "type" : "ControlElement", + "id" : "acm011362jsd", + "name" : "testUpdateCourseCascade" + }, + "acm011363jsd" : { + "type" : "ClassUnit", + "id" : "acm011363jsd", + "name" : "CoursesLogicTest", + "compilationUnitId" : "acm011342jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005233jsd", "acm005412jsd", "acm006168jsd", "acm006188jsd", "acm006857jsd", "acm006882jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd", "acm007414jsd" ], + "content" : [ "acm011346jsd", "acm011347jsd", "acm011348jsd", "acm011349jsd", "acm011350jsd", "acm011351jsd", "acm011352jsd", "acm011353jsd", "acm011354jsd", "acm011355jsd", "acm011356jsd", "acm011357jsd", "acm011358jsd", "acm011359jsd", "acm011360jsd", "acm011361jsd", "acm011362jsd" ] + }, + "acm011364jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011364jsd", + "name" : "DataBundleLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011370jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011365jsd" : { + "type" : "CodePackage", + "id" : "acm011365jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011366jsd" ] + }, + "acm011366jsd" : { + "type" : "CodePackage", + "id" : "acm011366jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011367jsd" ] + }, + "acm011367jsd" : { + "type" : "CodePackage", + "id" : "acm011367jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011364jsd" ] + }, + "acm011368jsd" : { + "type" : "ControlElement", + "id" : "acm011368jsd", + "name" : "prepareTestData" + }, + "acm011369jsd" : { + "type" : "ControlElement", + "id" : "acm011369jsd", + "name" : "testPersistDataBundle" + }, + "acm011370jsd" : { + "type" : "ClassUnit", + "id" : "acm011370jsd", + "name" : "DataBundleLogicTest", + "compilationUnitId" : "acm011364jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004598jsd", "acm004788jsd", "acm006188jsd", "acm006908jsd" ], + "content" : [ "acm011368jsd", "acm011369jsd" ] + }, + "acm011371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011371jsd", + "name" : "DeadlineExtensionsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011385jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011372jsd" : { + "type" : "CodePackage", + "id" : "acm011372jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011373jsd" ] + }, + "acm011373jsd" : { + "type" : "CodePackage", + "id" : "acm011373jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011374jsd" ] + }, + "acm011374jsd" : { + "type" : "CodePackage", + "id" : "acm011374jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011371jsd" ] + }, + "acm011375jsd" : { + "type" : "ControlElement", + "id" : "acm011375jsd", + "name" : "prepareTestData" + }, + "acm011376jsd" : { + "type" : "ControlElement", + "id" : "acm011376jsd", + "name" : "refreshTestData" + }, + "acm011377jsd" : { + "type" : "ControlElement", + "id" : "acm011377jsd", + "name" : "testCreateDeadlineExtension" + }, + "acm011378jsd" : { + "type" : "ControlElement", + "id" : "acm011378jsd", + "name" : "testUpdateDeadlineExtension" + }, + "acm011379jsd" : { + "type" : "ControlElement", + "id" : "acm011379jsd", + "name" : "testDeleteDeadlineExtension" + }, + "acm011380jsd" : { + "type" : "ControlElement", + "id" : "acm011380jsd", + "name" : "testGetDeadlineExtension" + }, + "acm011381jsd" : { + "type" : "ControlElement", + "id" : "acm011381jsd", + "name" : "testDeleteDeadlineExtensions_byAttributeDeletionQuery" + }, + "acm011382jsd" : { + "type" : "ControlElement", + "id" : "acm011382jsd", + "name" : "testDeleteDeadlineExtensions_byCourseIdAndUserDetails" + }, + "acm011383jsd" : { + "type" : "ControlElement", + "id" : "acm011383jsd", + "name" : "testUpdateDeadlineExtensionsWithNewEmail" + }, + "acm011384jsd" : { + "type" : "ControlElement", + "id" : "acm011384jsd", + "name" : "testGetDeadlineExtensionsPossiblyNeedingClosingEmail" + }, + "acm011385jsd" : { + "type" : "ClassUnit", + "id" : "acm011385jsd", + "name" : "DeadlineExtensionsLogicTest", + "compilationUnitId" : "acm011371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004662jsd", "acm004678jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm006923jsd" ], + "content" : [ "acm011375jsd", "acm011376jsd", "acm011377jsd", "acm011378jsd", "acm011379jsd", "acm011380jsd", "acm011381jsd", "acm011382jsd", "acm011383jsd", "acm011384jsd" ] + }, + "acm011386jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011386jsd", + "name" : "FeedbackQuestionsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011413jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011387jsd" : { + "type" : "CodePackage", + "id" : "acm011387jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011388jsd" ] + }, + "acm011388jsd" : { + "type" : "CodePackage", + "id" : "acm011388jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011389jsd" ] + }, + "acm011389jsd" : { + "type" : "CodePackage", + "id" : "acm011389jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011386jsd" ] + }, + "acm011390jsd" : { + "type" : "ControlElement", + "id" : "acm011390jsd", + "name" : "prepareTestData" + }, + "acm011391jsd" : { + "type" : "ControlElement", + "id" : "acm011391jsd", + "name" : "beforeMethod" + }, + "acm011392jsd" : { + "type" : "ControlElement", + "id" : "acm011392jsd", + "name" : "testDeleteFeedbackQuestions_byCourseIdAndSessionName_shouldDeleteQuestions" + }, + "acm011393jsd" : { + "type" : "ControlElement", + "id" : "acm011393jsd", + "name" : "allTests" + }, + "acm011394jsd" : { + "type" : "ControlElement", + "id" : "acm011394jsd", + "name" : "testGetRecipientsOfQuestion" + }, + "acm011395jsd" : { + "type" : "ControlElement", + "id" : "acm011395jsd", + "name" : "testUpdateQuestionCascade_shouldShiftQuestionNumberCorrectly" + }, + "acm011396jsd" : { + "type" : "ControlElement", + "id" : "acm011396jsd", + "name" : "testAddQuestion" + }, + "acm011397jsd" : { + "type" : "ControlElement", + "id" : "acm011397jsd", + "name" : "testUpdateQuestionCascade" + }, + "acm011398jsd" : { + "type" : "ControlElement", + "id" : "acm011398jsd", + "name" : "testDeleteFeedbackQuestionCascade_existentQuestion_shouldDoCascadeDeletion" + }, + "acm011399jsd" : { + "type" : "ControlElement", + "id" : "acm011399jsd", + "name" : "testDeleteFeedbackQuestionCascade_nonExistentQuestion_shouldFailSilently" + }, + "acm011400jsd" : { + "type" : "ControlElement", + "id" : "acm011400jsd", + "name" : "testDeleteFeedbackQuestionCascade_cascadeDeleteResponseOfStudent_shouldUpdateRespondents" + }, + "acm011401jsd" : { + "type" : "ControlElement", + "id" : "acm011401jsd", + "name" : "testDeleteFeedbackQuestions_byCourseId_shouldDeleteQuestions" + }, + "acm011402jsd" : { + "type" : "ControlElement", + "id" : "acm011402jsd", + "name" : "testPopulateFieldsToGenerateInQuestion_mcqQuestionDifferentGenerateOptions_shouldPopulateCorrectly" + }, + "acm011403jsd" : { + "type" : "ControlElement", + "id" : "acm011403jsd", + "name" : "testPopulateFieldsToGenerateInQuestion_msqQuestionDifferentGenerateOptions_shouldPopulateCorrectly" + }, + "acm011404jsd" : { + "type" : "ControlElement", + "id" : "acm011404jsd", + "name" : "testBuildCompleteGiverRecipientMap_studentQuestion_shouldBuildMapCorrectly" + }, + "acm011405jsd" : { + "type" : "ControlElement", + "id" : "acm011405jsd", + "name" : "testBuildCompleteGiverRecipientMap_instructorQuestion_shouldBuildMapCorrectly" + }, + "acm011406jsd" : { + "type" : "ControlElement", + "id" : "acm011406jsd", + "name" : "testBuildCompleteGiverRecipientMap_selfQuestion_shouldBuildMapCorrectly" + }, + "acm011407jsd" : { + "type" : "ControlElement", + "id" : "acm011407jsd", + "name" : "testBuildCompleteGiverRecipientMap_teamQuestion_shouldBuildMapCorrectly" + }, + "acm011408jsd" : { + "type" : "ControlElement", + "id" : "acm011408jsd", + "name" : "testHasFeedbackQuestionsForInstructor" + }, + "acm011409jsd" : { + "type" : "ControlElement", + "id" : "acm011409jsd", + "name" : "testGetFeedbackQuestionsForInstructor" + }, + "acm011410jsd" : { + "type" : "ControlElement", + "id" : "acm011410jsd", + "name" : "testHasFeedbackQuestionsForStudents" + }, + "acm011411jsd" : { + "type" : "ControlElement", + "id" : "acm011411jsd", + "name" : "testGetFeedbackQuestionsForStudents" + }, + "acm011412jsd" : { + "type" : "ControlElement", + "id" : "acm011412jsd", + "name" : "getQuestionFromDatabase" + }, + "acm011413jsd" : { + "type" : "ClassUnit", + "id" : "acm011413jsd", + "name" : "FeedbackQuestionsLogicTest", + "compilationUnitId" : "acm011386jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004226jsd", "acm004239jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005866jsd", "acm005909jsd", "acm005977jsd", "acm006116jsd", "acm006168jsd", "acm006188jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd" ], + "content" : [ "acm011390jsd", "acm011391jsd", "acm011392jsd", "acm011393jsd", "acm011394jsd", "acm011395jsd", "acm011396jsd", "acm011397jsd", "acm011398jsd", "acm011399jsd", "acm011400jsd", "acm011401jsd", "acm011402jsd", "acm011403jsd", "acm011404jsd", "acm011405jsd", "acm011406jsd", "acm011407jsd", "acm011408jsd", "acm011409jsd", "acm011410jsd", "acm011411jsd", "acm011412jsd" ] + }, + "acm011414jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011414jsd", + "name" : "FeedbackResponseCommentsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011441jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011415jsd" : { + "type" : "CodePackage", + "id" : "acm011415jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011416jsd" ] + }, + "acm011416jsd" : { + "type" : "CodePackage", + "id" : "acm011416jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011417jsd" ] + }, + "acm011417jsd" : { + "type" : "CodePackage", + "id" : "acm011417jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011414jsd" ] + }, + "acm011418jsd" : { + "type" : "ControlElement", + "id" : "acm011418jsd", + "name" : "prepareTestData" + }, + "acm011419jsd" : { + "type" : "ControlElement", + "id" : "acm011419jsd", + "name" : "refreshTestData" + }, + "acm011420jsd" : { + "type" : "ControlElement", + "id" : "acm011420jsd", + "name" : "testCreateFeedbackResponseComment" + }, + "acm011421jsd" : { + "type" : "ControlElement", + "id" : "acm011421jsd", + "name" : "testCreateFeedbackResponseComment_invalidCommentGiverType_exceptionShouldBeThrown" + }, + "acm011422jsd" : { + "type" : "ControlElement", + "id" : "acm011422jsd", + "name" : "testCreateFeedbackResponseComment_unknownFeedbackParticipant_exceptionShouldBeThrown" + }, + "acm011423jsd" : { + "type" : "ControlElement", + "id" : "acm011423jsd", + "name" : "testCreateFeedbackResponseComment_invalidVisibilitySettings_exceptionShouldBeThrown" + }, + "acm011424jsd" : { + "type" : "ControlElement", + "id" : "acm011424jsd", + "name" : "testGetFeedbackResponseComments" + }, + "acm011425jsd" : { + "type" : "ControlElement", + "id" : "acm011425jsd", + "name" : "testUpdateFeedbackResponseComment" + }, + "acm011426jsd" : { + "type" : "ControlElement", + "id" : "acm011426jsd", + "name" : "testDeleteFeedbackResponseComment" + }, + "acm011427jsd" : { + "type" : "ControlElement", + "id" : "acm011427jsd", + "name" : "testDeleteFeedbackResponseComments_deleteByResponseId" + }, + "acm011428jsd" : { + "type" : "ControlElement", + "id" : "acm011428jsd", + "name" : "testDeleteFeedbackResponseComments_deleteByCourseId" + }, + "acm011429jsd" : { + "type" : "ControlElement", + "id" : "acm011429jsd", + "name" : "testGetFeedbackResponseCommentForSessionInSection_noSectionName_shouldReturnCommentsInSession" + }, + "acm011430jsd" : { + "type" : "ControlElement", + "id" : "acm011430jsd", + "name" : "testGetFeedbackResponseCommentForSessionInSection_withSectionName_shouldReturnCommentsInSection" + }, + "acm011431jsd" : { + "type" : "ControlElement", + "id" : "acm011431jsd", + "name" : "testGetFeedbackResponseCommentsForQuestionInSection_noSectionName_shouldReturnCommentsForQuestion" + }, + "acm011432jsd" : { + "type" : "ControlElement", + "id" : "acm011432jsd", + "name" : "testGetFeedbackResponseCommentsForQuestionInSection_withSectionName_shouldReturnCommentsForQuestion" + }, + "acm011433jsd" : { + "type" : "ControlElement", + "id" : "acm011433jsd", + "name" : "testIsNameVisibleToUser" + }, + "acm011434jsd" : { + "type" : "ControlElement", + "id" : "acm011434jsd", + "name" : "testIsResponseCommentVisibleForUser" + }, + "acm011435jsd" : { + "type" : "ControlElement", + "id" : "acm011435jsd", + "name" : "verifyNullFromGetFrCommentForSession" + }, + "acm011436jsd" : { + "type" : "ControlElement", + "id" : "acm011436jsd", + "name" : "verifyNullFromGetFrComment" + }, + "acm011437jsd" : { + "type" : "ControlElement", + "id" : "acm011437jsd", + "name" : "restoreFrCommentFromDataBundle" + }, + "acm011438jsd" : { + "type" : "ControlElement", + "id" : "acm011438jsd", + "name" : "restoreFrCommentIdFromExistingOne" + }, + "acm011439jsd" : { + "type" : "ControlElement", + "id" : "acm011439jsd", + "name" : "getQuestionIdInDataBundle" + }, + "acm011440jsd" : { + "type" : "ControlElement", + "id" : "acm011440jsd", + "name" : "getResponseIdInDataBundle" + }, + "acm011441jsd" : { + "type" : "ClassUnit", + "id" : "acm011441jsd", + "name" : "FeedbackResponseCommentsLogicTest", + "compilationUnitId" : "acm011414jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004205jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005412jsd", "acm006168jsd", "acm006188jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd" ], + "content" : [ "acm011418jsd", "acm011419jsd", "acm011420jsd", "acm011421jsd", "acm011422jsd", "acm011423jsd", "acm011424jsd", "acm011425jsd", "acm011426jsd", "acm011427jsd", "acm011428jsd", "acm011429jsd", "acm011430jsd", "acm011431jsd", "acm011432jsd", "acm011433jsd", "acm011434jsd", "acm011435jsd", "acm011436jsd", "acm011437jsd", "acm011438jsd", "acm011439jsd", "acm011440jsd" ] + }, + "acm011442jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011442jsd", + "name" : "FeedbackResponsesLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011486jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011443jsd" : { + "type" : "CodePackage", + "id" : "acm011443jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011444jsd" ] + }, + "acm011444jsd" : { + "type" : "CodePackage", + "id" : "acm011444jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011445jsd" ] + }, + "acm011445jsd" : { + "type" : "CodePackage", + "id" : "acm011445jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011442jsd" ] + }, + "acm011446jsd" : { + "type" : "ControlElement", + "id" : "acm011446jsd", + "name" : "prepareTestData" + }, + "acm011447jsd" : { + "type" : "ControlElement", + "id" : "acm011447jsd", + "name" : "refreshTestData" + }, + "acm011448jsd" : { + "type" : "ControlElement", + "id" : "acm011448jsd", + "name" : "testAreThereResponsesForQuestion" + }, + "acm011449jsd" : { + "type" : "ControlElement", + "id" : "acm011449jsd", + "name" : "testUpdateFeedbackResponseCascade" + }, + "acm011450jsd" : { + "type" : "ControlElement", + "id" : "acm011450jsd", + "name" : "testUpdateFeedbackResponsesForChangingTeam_typicalData_shouldDoCascadeDeletion" + }, + "acm011451jsd" : { + "type" : "ControlElement", + "id" : "acm011451jsd", + "name" : "getFeedbackResponsesForReceiverForQuestion" + }, + "acm011452jsd" : { + "type" : "ControlElement", + "id" : "acm011452jsd", + "name" : "testUpdateFeedbackResponsesForChangingTeam_deleteLastResponse_decreaseResponseRate" + }, + "acm011453jsd" : { + "type" : "ControlElement", + "id" : "acm011453jsd", + "name" : "testUpdateFeedbackResponsesForChangingTeam_noResponseShouldBeDeleted_shouldReaminSameResponseRate" + }, + "acm011454jsd" : { + "type" : "ControlElement", + "id" : "acm011454jsd", + "name" : "testUpdateResponsesForDeletingStudent_rankRecipientQuestionResponse_newResponsesShouldBeConsistent" + }, + "acm011455jsd" : { + "type" : "ControlElement", + "id" : "acm011455jsd", + "name" : "areRankResponsesConsistent" + }, + "acm011456jsd" : { + "type" : "ControlElement", + "id" : "acm011456jsd", + "name" : "areRankResponsesInSameOrder" + }, + "acm011457jsd" : { + "type" : "ControlElement", + "id" : "acm011457jsd", + "name" : "numResponsesFromGiverInSession" + }, + "acm011458jsd" : { + "type" : "ControlElement", + "id" : "acm011458jsd", + "name" : "getResponseRate" + }, + "acm011459jsd" : { + "type" : "ControlElement", + "id" : "acm011459jsd", + "name" : "testUpdateFeedbackResponsesForChangingEmail" + }, + "acm011460jsd" : { + "type" : "ControlElement", + "id" : "acm011460jsd", + "name" : "testIsNameVisibleTo" + }, + "acm011461jsd" : { + "type" : "ControlElement", + "id" : "acm011461jsd", + "name" : "testIsResponseVisibleForUser" + }, + "acm011462jsd" : { + "type" : "ControlElement", + "id" : "acm011462jsd", + "name" : "testDeleteFeedbackResponsesInvolvedEntityOfCourseCascade_shouldDeleteRelatedResponses" + }, + "acm011463jsd" : { + "type" : "ControlElement", + "id" : "acm011463jsd", + "name" : "testDeleteFeedbackResponseCascade" + }, + "acm011464jsd" : { + "type" : "ControlElement", + "id" : "acm011464jsd", + "name" : "testDeleteFeedbackResponses_byCourseId" + }, + "acm011465jsd" : { + "type" : "ControlElement", + "id" : "acm011465jsd", + "name" : "testDeleteFeedbackResponsesForQuestionCascade_studentsQuestion_shouldUpdateRespondents" + }, + "acm011466jsd" : { + "type" : "ControlElement", + "id" : "acm011466jsd", + "name" : "testDeleteFeedbackResponsesForQuestionCascade_instructorsQuestion_shouldUpdateRespondents" + }, + "acm011467jsd" : { + "type" : "ControlElement", + "id" : "acm011467jsd", + "name" : "testDeleteFeedbackResponsesInvolvedEntityOfCourseCascade_giverIsStudent_shouldUpdateRespondents" + }, + "acm011468jsd" : { + "type" : "ControlElement", + "id" : "acm011468jsd", + "name" : "testDeleteFeedbackResponsesInvolvedEntityOfCourseCascade_giverIsInstructor_shouldUpdateRespondents" + }, + "acm011469jsd" : { + "type" : "ControlElement", + "id" : "acm011469jsd", + "name" : "testDeleteFeedbackResponsesInvolvedEntityOfCourseCascade_shouldDeleteRelevantResponsesAsRecipient" + }, + "acm011470jsd" : { + "type" : "ControlElement", + "id" : "acm011470jsd", + "name" : "testDeleteFeedbackResponsesInvolvedEntityOfCourseCascade_shouldDeleteRelevantResponsesAsGiver" + }, + "acm011471jsd" : { + "type" : "ControlElement", + "id" : "acm011471jsd", + "name" : "testGetSessionResultsForUser_studentSpecificQuestion_shouldHaveCorrectResponsesFiltered" + }, + "acm011472jsd" : { + "type" : "ControlElement", + "id" : "acm011472jsd", + "name" : "testGetSessionResultsForUser_studentAllQuestions_shouldGenerateCorrectBundle" + }, + "acm011473jsd" : { + "type" : "ControlElement", + "id" : "acm011473jsd", + "name" : "testGetSessionResultsForUser_instructor_shouldGenerateCorrectBundle" + }, + "acm011474jsd" : { + "type" : "ControlElement", + "id" : "acm011474jsd", + "name" : "testGetSessionResultsForCourse_specificQuestion_shouldHaveCorrectResponsesFiltered" + }, + "acm011475jsd" : { + "type" : "ControlElement", + "id" : "acm011475jsd", + "name" : "testGetSessionResultsForCourse_allQuestions_shouldGenerateCorrectBundle" + }, + "acm011476jsd" : { + "type" : "ControlElement", + "id" : "acm011476jsd", + "name" : "testGetSessionResultsForCourse_allQuestionsSpecificSection_shouldGenerateCorrectBundle" + }, + "acm011477jsd" : { + "type" : "ControlElement", + "id" : "acm011477jsd", + "name" : "testGetSessionResultsForCourse_responseFetchByGiverOrReceiverOnly_shouldGenerateCorrectBundle" + }, + "acm011478jsd" : { + "type" : "ControlElement", + "id" : "acm011478jsd", + "name" : "testGetSessionResultsForCourse_splitResponseFetchByGiverAndReceiver_shouldGenerateCorrectBundle" + }, + "acm011479jsd" : { + "type" : "ControlElement", + "id" : "acm011479jsd", + "name" : "testGetSessionResultsForUser_orphanResponseInDB_shouldStillHandleCorrectly" + }, + "acm011480jsd" : { + "type" : "ControlElement", + "id" : "acm011480jsd", + "name" : "getQuestionFromDatabase" + }, + "acm011481jsd" : { + "type" : "ControlElement", + "id" : "acm011481jsd", + "name" : "getQuestionFromDatabase" + }, + "acm011482jsd" : { + "type" : "ControlElement", + "id" : "acm011482jsd", + "name" : "getResponseFromDatabase" + }, + "acm011483jsd" : { + "type" : "ControlElement", + "id" : "acm011483jsd", + "name" : "getResponseFromDatabase" + }, + "acm011484jsd" : { + "type" : "ControlElement", + "id" : "acm011484jsd", + "name" : "getResponseId" + }, + "acm011485jsd" : { + "type" : "ControlElement", + "id" : "acm011485jsd", + "name" : "getFeedbackResponseCommentsForResponsesFromDatabase" + }, + "acm011486jsd" : { + "type" : "ClassUnit", + "id" : "acm011486jsd", + "name" : "FeedbackResponsesLogicTest", + "compilationUnitId" : "acm011442jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004195jsd", "acm004205jsd", "acm004383jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006049jsd", "acm006061jsd", "acm006127jsd", "acm006162jsd", "acm006168jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007192jsd" ], + "content" : [ "acm011446jsd", "acm011447jsd", "acm011448jsd", "acm011449jsd", "acm011450jsd", "acm011451jsd", "acm011452jsd", "acm011453jsd", "acm011454jsd", "acm011455jsd", "acm011456jsd", "acm011457jsd", "acm011458jsd", "acm011459jsd", "acm011460jsd", "acm011461jsd", "acm011462jsd", "acm011463jsd", "acm011464jsd", "acm011465jsd", "acm011466jsd", "acm011467jsd", "acm011468jsd", "acm011469jsd", "acm011470jsd", "acm011471jsd", "acm011472jsd", "acm011473jsd", "acm011474jsd", "acm011475jsd", "acm011476jsd", "acm011477jsd", "acm011478jsd", "acm011479jsd", "acm011480jsd", "acm011481jsd", "acm011482jsd", "acm011483jsd", "acm011484jsd", "acm011485jsd" ] + }, + "acm011487jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011487jsd", + "name" : "FeedbackSessionsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011520jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011488jsd" : { + "type" : "CodePackage", + "id" : "acm011488jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011489jsd" ] + }, + "acm011489jsd" : { + "type" : "CodePackage", + "id" : "acm011489jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011490jsd" ] + }, + "acm011490jsd" : { + "type" : "CodePackage", + "id" : "acm011490jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011487jsd" ] + }, + "acm011491jsd" : { + "type" : "ControlElement", + "id" : "acm011491jsd", + "name" : "prepareTestData" + }, + "acm011492jsd" : { + "type" : "ControlElement", + "id" : "acm011492jsd", + "name" : "beforeMethod" + }, + "acm011493jsd" : { + "type" : "ControlElement", + "id" : "acm011493jsd", + "name" : "testDeleteFeedbackSessionCascade_deleteSessionNotInRecycleBin_shouldDoCascadeDeletion" + }, + "acm011494jsd" : { + "type" : "ControlElement", + "id" : "acm011494jsd", + "name" : "testDeleteFeedbackSessionCascade_deleteSessionInRecycleBin_shouldDoCascadeDeletion" + }, + "acm011495jsd" : { + "type" : "ControlElement", + "id" : "acm011495jsd", + "name" : "testDeleteFeedbackSessions_byCourseId_shouldDeleteAllSessionsUnderCourse" + }, + "acm011496jsd" : { + "type" : "ControlElement", + "id" : "acm011496jsd", + "name" : "testFeedbackSessionNotification" + }, + "acm011497jsd" : { + "type" : "ControlElement", + "id" : "acm011497jsd", + "name" : "testAll" + }, + "acm011498jsd" : { + "type" : "ControlElement", + "id" : "acm011498jsd", + "name" : "testGetSoftDeletedFeedbackSessionsListForInstructors" + }, + "acm011499jsd" : { + "type" : "ControlElement", + "id" : "acm011499jsd", + "name" : "testGetFeedbackSessionsClosingWithinTimeLimit" + }, + "acm011500jsd" : { + "type" : "ControlElement", + "id" : "acm011500jsd", + "name" : "testGetFeedbackSessionsClosedWithinThePastHour" + }, + "acm011501jsd" : { + "type" : "ControlElement", + "id" : "acm011501jsd", + "name" : "testGetFeedbackSessionsOpeningWithinTimeLimit" + }, + "acm011502jsd" : { + "type" : "ControlElement", + "id" : "acm011502jsd", + "name" : "testGetFeedbackSessionsWhichNeedOpenMailsToBeSent" + }, + "acm011503jsd" : { + "type" : "ControlElement", + "id" : "acm011503jsd", + "name" : "testGetFeedbackSessionWhichNeedPublishedEmailsToBeSent" + }, + "acm011504jsd" : { + "type" : "ControlElement", + "id" : "acm011504jsd", + "name" : "testCreateAndDeleteFeedbackSession" + }, + "acm011505jsd" : { + "type" : "ControlElement", + "id" : "acm011505jsd", + "name" : "testIsFeedbackSessionViewableToUserType" + }, + "acm011506jsd" : { + "type" : "ControlElement", + "id" : "acm011506jsd", + "name" : "testIsFeedbackSessionForUserTypeToAnswer" + }, + "acm011507jsd" : { + "type" : "ControlElement", + "id" : "acm011507jsd", + "name" : "testUpdateFeedbackSession" + }, + "acm011508jsd" : { + "type" : "ControlElement", + "id" : "acm011508jsd", + "name" : "testUpdateFeedbackSession_shouldAdjustEmailSendingStatusAccordingly" + }, + "acm011509jsd" : { + "type" : "ControlElement", + "id" : "acm011509jsd", + "name" : "testUpdateFeedbackSessionsInstructorDeadlinesWithNewEmail" + }, + "acm011510jsd" : { + "type" : "ControlElement", + "id" : "acm011510jsd", + "name" : "testUpdateFeedbackSessionsStudentDeadlinesWithNewEmail" + }, + "acm011511jsd" : { + "type" : "ControlElement", + "id" : "acm011511jsd", + "name" : "testDeleteFeedbackSessionsDeadlinesForInstructor" + }, + "acm011512jsd" : { + "type" : "ControlElement", + "id" : "acm011512jsd", + "name" : "testDeleteFeedbackSessionsDeadlinesForStudent" + }, + "acm011513jsd" : { + "type" : "ControlElement", + "id" : "acm011513jsd", + "name" : "testPublishUnpublishFeedbackSession" + }, + "acm011514jsd" : { + "type" : "ControlElement", + "id" : "acm011514jsd", + "name" : "testIsFeedbackSessionAttemptedByInstructor" + }, + "acm011515jsd" : { + "type" : "ControlElement", + "id" : "acm011515jsd", + "name" : "testIsFeedbackSessionAttemptedByStudent" + }, + "acm011516jsd" : { + "type" : "ControlElement", + "id" : "acm011516jsd", + "name" : "getNewFeedbackSession" + }, + "acm011517jsd" : { + "type" : "ControlElement", + "id" : "acm011517jsd", + "name" : "unpublishAllSessions" + }, + "acm011518jsd" : { + "type" : "ControlElement", + "id" : "acm011518jsd", + "name" : "testMoveFeedbackSessionToRecycleBin" + }, + "acm011519jsd" : { + "type" : "ControlElement", + "id" : "acm011519jsd", + "name" : "testRestoreFeedbackSessionFromRecycleBin" + }, + "acm011520jsd" : { + "type" : "ClassUnit", + "id" : "acm011520jsd", + "name" : "FeedbackSessionsLogicTest", + "compilationUnitId" : "acm011487jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005129jsd", "acm005233jsd", "acm005412jsd", "acm006116jsd", "acm006168jsd", "acm006188jsd", "acm006882jsd", "acm006954jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007590jsd" ], + "content" : [ "acm011491jsd", "acm011492jsd", "acm011493jsd", "acm011494jsd", "acm011495jsd", "acm011496jsd", "acm011497jsd", "acm011498jsd", "acm011499jsd", "acm011500jsd", "acm011501jsd", "acm011502jsd", "acm011503jsd", "acm011504jsd", "acm011505jsd", "acm011506jsd", "acm011507jsd", "acm011508jsd", "acm011509jsd", "acm011510jsd", "acm011511jsd", "acm011512jsd", "acm011513jsd", "acm011514jsd", "acm011515jsd", "acm011516jsd", "acm011517jsd", "acm011518jsd", "acm011519jsd" ] + }, + "acm011521jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011521jsd", + "name" : "InstructorsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011548jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011522jsd" : { + "type" : "CodePackage", + "id" : "acm011522jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011523jsd" ] + }, + "acm011523jsd" : { + "type" : "CodePackage", + "id" : "acm011523jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011524jsd" ] + }, + "acm011524jsd" : { + "type" : "CodePackage", + "id" : "acm011524jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011521jsd" ] + }, + "acm011525jsd" : { + "type" : "ControlElement", + "id" : "acm011525jsd", + "name" : "prepareTestData" + }, + "acm011526jsd" : { + "type" : "ControlElement", + "id" : "acm011526jsd", + "name" : "refreshTestData" + }, + "acm011527jsd" : { + "type" : "ControlElement", + "id" : "acm011527jsd", + "name" : "testAll" + }, + "acm011528jsd" : { + "type" : "ControlElement", + "id" : "acm011528jsd", + "name" : "testAddInstructor" + }, + "acm011529jsd" : { + "type" : "ControlElement", + "id" : "acm011529jsd", + "name" : "testVerifyAllInstructorsExistInCourse" + }, + "acm011530jsd" : { + "type" : "ControlElement", + "id" : "acm011530jsd", + "name" : "testGetInstructorForEmail" + }, + "acm011531jsd" : { + "type" : "ControlElement", + "id" : "acm011531jsd", + "name" : "testGetInstructorForGoogleId" + }, + "acm011532jsd" : { + "type" : "ControlElement", + "id" : "acm011532jsd", + "name" : "testGetInstructorForRegistrationKey" + }, + "acm011533jsd" : { + "type" : "ControlElement", + "id" : "acm011533jsd", + "name" : "testGetInstructorsForCourse" + }, + "acm011534jsd" : { + "type" : "ControlElement", + "id" : "acm011534jsd", + "name" : "testGetInstructorsForGoogleId" + }, + "acm011535jsd" : { + "type" : "ControlElement", + "id" : "acm011535jsd", + "name" : "testVerifyAtLeastOneInstructorIsDisplayed" + }, + "acm011536jsd" : { + "type" : "ControlElement", + "id" : "acm011536jsd", + "name" : "testUpdateInstructorByGoogleIdCascade_shouldCascadeUpdateToFeedbackSessions" + }, + "acm011537jsd" : { + "type" : "ControlElement", + "id" : "acm011537jsd", + "name" : "testUpdateInstructorByGoogleIdCascade_shouldDoCascadeUpdateToCommentsAndResponses" + }, + "acm011538jsd" : { + "type" : "ControlElement", + "id" : "acm011538jsd", + "name" : "testUpdateInstructorByGoogleIdCascade" + }, + "acm011539jsd" : { + "type" : "ControlElement", + "id" : "acm011539jsd", + "name" : "testUpdateInstructorByEmail" + }, + "acm011540jsd" : { + "type" : "ControlElement", + "id" : "acm011540jsd", + "name" : "testDeleteInstructorCascade" + }, + "acm011541jsd" : { + "type" : "ControlElement", + "id" : "acm011541jsd", + "name" : "testDeleteInstructors_byCourseId_shouldDeleteInstructorsAssociatedWithTheCourse" + }, + "acm011542jsd" : { + "type" : "ControlElement", + "id" : "acm011542jsd", + "name" : "testDeleteInstructorsForGoogleIdCascade_archivedInstructor_shouldDeleteAlso" + }, + "acm011543jsd" : { + "type" : "ControlElement", + "id" : "acm011543jsd", + "name" : "testDeleteInstructorsForGoogleIdCascade" + }, + "acm011544jsd" : { + "type" : "ControlElement", + "id" : "acm011544jsd", + "name" : "verifySameInstructor" + }, + "acm011545jsd" : { + "type" : "ControlElement", + "id" : "acm011545jsd", + "name" : "testGetCoOwnersForCourse" + }, + "acm011546jsd" : { + "type" : "ControlElement", + "id" : "acm011546jsd", + "name" : "testUpdateToEnsureValidityOfInstructorsForTheCourse" + }, + "acm011547jsd" : { + "type" : "ControlElement", + "id" : "acm011547jsd", + "name" : "testRegenerateInstructorRegistrationKey" + }, + "acm011548jsd" : { + "type" : "ClassUnit", + "id" : "acm011548jsd", + "name" : "InstructorsLogicTest", + "compilationUnitId" : "acm011521jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm006162jsd", "acm006168jsd", "acm006180jsd", "acm006188jsd", "acm006882jsd", "acm006984jsd", "acm007042jsd", "acm007092jsd", "acm007125jsd", "acm007630jsd" ], + "content" : [ "acm011525jsd", "acm011526jsd", "acm011527jsd", "acm011528jsd", "acm011529jsd", "acm011530jsd", "acm011531jsd", "acm011532jsd", "acm011533jsd", "acm011534jsd", "acm011535jsd", "acm011536jsd", "acm011537jsd", "acm011538jsd", "acm011539jsd", "acm011540jsd", "acm011541jsd", "acm011542jsd", "acm011543jsd", "acm011544jsd", "acm011545jsd", "acm011546jsd", "acm011547jsd" ] + }, + "acm011549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011549jsd", + "name" : "NotificationsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011566jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011550jsd" : { + "type" : "CodePackage", + "id" : "acm011550jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011551jsd" ] + }, + "acm011551jsd" : { + "type" : "CodePackage", + "id" : "acm011551jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011552jsd" ] + }, + "acm011552jsd" : { + "type" : "CodePackage", + "id" : "acm011552jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011549jsd" ] + }, + "acm011553jsd" : { + "type" : "ControlElement", + "id" : "acm011553jsd", + "name" : "prepareTestData" + }, + "acm011554jsd" : { + "type" : "ControlElement", + "id" : "acm011554jsd", + "name" : "refreshTestData" + }, + "acm011555jsd" : { + "type" : "ControlElement", + "id" : "acm011555jsd", + "name" : "testAll" + }, + "acm011556jsd" : { + "type" : "ControlElement", + "id" : "acm011556jsd", + "name" : "testCreateNotification" + }, + "acm011557jsd" : { + "type" : "ControlElement", + "id" : "acm011557jsd", + "name" : "testUpdateNotification" + }, + "acm011558jsd" : { + "type" : "ControlElement", + "id" : "acm011558jsd", + "name" : "testDeleteNotification" + }, + "acm011559jsd" : { + "type" : "ControlElement", + "id" : "acm011559jsd", + "name" : "testGetNotification" + }, + "acm011560jsd" : { + "type" : "ControlElement", + "id" : "acm011560jsd", + "name" : "testGetAllNotifications" + }, + "acm011561jsd" : { + "type" : "ControlElement", + "id" : "acm011561jsd", + "name" : "testGetActiveNotificationsByTargetUser" + }, + "acm011562jsd" : { + "type" : "ControlElement", + "id" : "acm011562jsd", + "name" : "testDoesNotificationExists" + }, + "acm011563jsd" : { + "type" : "ControlElement", + "id" : "acm011563jsd", + "name" : "getNewNotificationAttributes" + }, + "acm011564jsd" : { + "type" : "ControlElement", + "id" : "acm011564jsd", + "name" : "removeNotificationsFromDb" + }, + "acm011565jsd" : { + "type" : "ControlElement", + "id" : "acm011565jsd", + "name" : "verifyNotificationEquals" + }, + "acm011566jsd" : { + "type" : "ClassUnit", + "id" : "acm011566jsd", + "name" : "NotificationsLogicTest", + "compilationUnitId" : "acm011549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm005339jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007148jsd", "acm007647jsd" ], + "content" : [ "acm011553jsd", "acm011554jsd", "acm011555jsd", "acm011556jsd", "acm011557jsd", "acm011558jsd", "acm011559jsd", "acm011560jsd", "acm011561jsd", "acm011562jsd", "acm011563jsd", "acm011564jsd", "acm011565jsd" ] + }, + "acm011567jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011567jsd", + "name" : "StudentsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011598jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011568jsd" : { + "type" : "CodePackage", + "id" : "acm011568jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011569jsd" ] + }, + "acm011569jsd" : { + "type" : "CodePackage", + "id" : "acm011569jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011570jsd" ] + }, + "acm011570jsd" : { + "type" : "CodePackage", + "id" : "acm011570jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011567jsd" ] + }, + "acm011571jsd" : { + "type" : "ControlElement", + "id" : "acm011571jsd", + "name" : "prepareTestData" + }, + "acm011572jsd" : { + "type" : "ControlElement", + "id" : "acm011572jsd", + "name" : "refreshTestData" + }, + "acm011573jsd" : { + "type" : "ControlElement", + "id" : "acm011573jsd", + "name" : "testAll" + }, + "acm011574jsd" : { + "type" : "ControlElement", + "id" : "acm011574jsd", + "name" : "testValidateSections" + }, + "acm011575jsd" : { + "type" : "ControlElement", + "id" : "acm011575jsd", + "name" : "testUpdateStudentCascade" + }, + "acm011576jsd" : { + "type" : "ControlElement", + "id" : "acm011576jsd", + "name" : "testUpdateStudentCascade_emailChanged_shouldUpdateStudentDeadlineMaps" + }, + "acm011577jsd" : { + "type" : "ControlElement", + "id" : "acm011577jsd", + "name" : "testUpdateStudentCascade_teamChanged_shouldDeleteOldResponsesWithinTheTeam" + }, + "acm011578jsd" : { + "type" : "ControlElement", + "id" : "acm011578jsd", + "name" : "testRegenerateStudentRegistrationKey" + }, + "acm011579jsd" : { + "type" : "ControlElement", + "id" : "acm011579jsd", + "name" : "testGetStudentForEmail" + }, + "acm011580jsd" : { + "type" : "ControlElement", + "id" : "acm011580jsd", + "name" : "testGetStudentForRegistrationKey" + }, + "acm011581jsd" : { + "type" : "ControlElement", + "id" : "acm011581jsd", + "name" : "testGetStudentsForGoogleId" + }, + "acm011582jsd" : { + "type" : "ControlElement", + "id" : "acm011582jsd", + "name" : "testGetStudentForCourseIdAndGoogleId" + }, + "acm011583jsd" : { + "type" : "ControlElement", + "id" : "acm011583jsd", + "name" : "testGetNumberOfStudentsForCourse" + }, + "acm011584jsd" : { + "type" : "ControlElement", + "id" : "acm011584jsd", + "name" : "testGetStudentsForCourse" + }, + "acm011585jsd" : { + "type" : "ControlElement", + "id" : "acm011585jsd", + "name" : "testVerifyAllStudentsExistInCourse" + }, + "acm011586jsd" : { + "type" : "ControlElement", + "id" : "acm011586jsd", + "name" : "testIsStudentInAnyCourse" + }, + "acm011587jsd" : { + "type" : "ControlElement", + "id" : "acm011587jsd", + "name" : "testIsStudentInTeam" + }, + "acm011588jsd" : { + "type" : "ControlElement", + "id" : "acm011588jsd", + "name" : "testIsStudentsInSameTeam" + }, + "acm011589jsd" : { + "type" : "ControlElement", + "id" : "acm011589jsd", + "name" : "testDeleteStudentCascade_lastPersonInTeam_shouldDeleteTeamResponses" + }, + "acm011590jsd" : { + "type" : "ControlElement", + "id" : "acm011590jsd", + "name" : "testDeleteStudentCascade_withSelectiveDeadlines_shouldDeleteDeadlines" + }, + "acm011591jsd" : { + "type" : "ControlElement", + "id" : "acm011591jsd", + "name" : "testDeleteStudentCascade" + }, + "acm011592jsd" : { + "type" : "ControlElement", + "id" : "acm011592jsd", + "name" : "testDeleteStudentsForGoogleIdCascade_typicalCase_shouldDoCascadeDeletion" + }, + "acm011593jsd" : { + "type" : "ControlElement", + "id" : "acm011593jsd", + "name" : "testDeleteStudentsForGoogleIdCascade_nonExistentGoogleId_shouldPass" + }, + "acm011594jsd" : { + "type" : "ControlElement", + "id" : "acm011594jsd", + "name" : "testDeleteStudentsInCourseCascade_typicalCase_shouldDoCascadeDeletion" + }, + "acm011595jsd" : { + "type" : "ControlElement", + "id" : "acm011595jsd", + "name" : "testDeleteStudents_byCourseId_shouldDeleteAllStudents" + }, + "acm011596jsd" : { + "type" : "ControlElement", + "id" : "acm011596jsd", + "name" : "testDeleteStudentsInCourseCascade_nonExistCourse_shouldPass" + }, + "acm011597jsd" : { + "type" : "ControlElement", + "id" : "acm011597jsd", + "name" : "classTearDown" + }, + "acm011598jsd" : { + "type" : "ClassUnit", + "id" : "acm011598jsd", + "name" : "StudentsLogicTest", + "compilationUnitId" : "acm011567jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005412jsd", "acm005423jsd", "acm006156jsd", "acm006168jsd", "acm006188jsd", "acm006857jsd", "acm006882jsd", "acm006954jsd", "acm007042jsd", "acm007092jsd", "acm007192jsd" ], + "content" : [ "acm011571jsd", "acm011572jsd", "acm011573jsd", "acm011574jsd", "acm011575jsd", "acm011576jsd", "acm011577jsd", "acm011578jsd", "acm011579jsd", "acm011580jsd", "acm011581jsd", "acm011582jsd", "acm011583jsd", "acm011584jsd", "acm011585jsd", "acm011586jsd", "acm011587jsd", "acm011588jsd", "acm011589jsd", "acm011590jsd", "acm011591jsd", "acm011592jsd", "acm011593jsd", "acm011594jsd", "acm011595jsd", "acm011596jsd", "acm011597jsd" ] + }, + "acm011599jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011599jsd", + "name" : "UsageStatisticsLogicTest", + "parentId" : "acm006826jsd", + "content" : [ "acm011604jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011600jsd" : { + "type" : "CodePackage", + "id" : "acm011600jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011601jsd" ] + }, + "acm011601jsd" : { + "type" : "CodePackage", + "id" : "acm011601jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011602jsd" ] + }, + "acm011602jsd" : { + "type" : "CodePackage", + "id" : "acm011602jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011599jsd" ] + }, + "acm011603jsd" : { + "type" : "ControlElement", + "id" : "acm011603jsd", + "name" : "testCalculateEntitiesStatisticsForTimeRange" + }, + "acm011604jsd" : { + "type" : "ClassUnit", + "id" : "acm011604jsd", + "name" : "UsageStatisticsLogicTest", + "compilationUnitId" : "acm011599jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011341jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm007203jsd" ], + "content" : [ "acm011603jsd" ] + }, + "acm011605jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011605jsd", + "name" : "package-info", + "parentId" : "acm006826jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "core" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011606jsd" : { + "type" : "CodePackage", + "id" : "acm011606jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011607jsd" ] + }, + "acm011607jsd" : { + "type" : "CodePackage", + "id" : "acm011607jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011608jsd" ] + }, + "acm011608jsd" : { + "type" : "CodePackage", + "id" : "acm011608jsd", + "name" : "core", + "parentId" : null, + "content" : [ "acm011605jsd" ] + }, + "acm011609jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011609jsd", + "name" : "GoogleRecaptchaServiceTest", + "parentId" : "acm007211jsd", + "content" : [ "acm011616jsd", "acm011619jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011610jsd" : { + "type" : "CodePackage", + "id" : "acm011610jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011611jsd" ] + }, + "acm011611jsd" : { + "type" : "CodePackage", + "id" : "acm011611jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011612jsd" ] + }, + "acm011612jsd" : { + "type" : "CodePackage", + "id" : "acm011612jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm011609jsd" ] + }, + "acm011613jsd" : { + "type" : "ControlElement", + "id" : "acm011613jsd", + "name" : "testIsVerificationSuccessful" + }, + "acm011614jsd" : { + "type" : "ControlElement", + "id" : "acm011614jsd", + "name" : "GoogleRecaptchaServiceStub" + }, + "acm011615jsd" : { + "type" : "ControlElement", + "id" : "acm011615jsd", + "name" : "getApiResponse" + }, + "acm011616jsd" : { + "type" : "ClassUnit", + "id" : "acm011616jsd", + "name" : "GoogleRecaptchaServiceTest", + "compilationUnitId" : "acm011609jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm007281jsd", "acm011619jsd" ], + "content" : [ "acm011613jsd", "acm011614jsd", "acm011615jsd" ] + }, + "acm011617jsd" : { + "type" : "ControlElement", + "id" : "acm011617jsd", + "name" : "GoogleRecaptchaServiceStub" + }, + "acm011618jsd" : { + "type" : "ControlElement", + "id" : "acm011618jsd", + "name" : "getApiResponse" + }, + "acm011619jsd" : { + "type" : "ClassUnit", + "id" : "acm011619jsd", + "name" : "GoogleRecaptchaServiceStub", + "compilationUnitId" : "acm011609jsd", + "parentDatatypeId" : "acm011616jsd", + "extendedDataTypesIds" : [ "acm007281jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011617jsd", "acm011618jsd" ] + }, + "acm011620jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011620jsd", + "name" : "package-info", + "parentId" : "acm007211jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "logic", "external" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011621jsd" : { + "type" : "CodePackage", + "id" : "acm011621jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011622jsd" ] + }, + "acm011622jsd" : { + "type" : "CodePackage", + "id" : "acm011622jsd", + "name" : "logic", + "parentId" : null, + "content" : [ "acm011623jsd" ] + }, + "acm011623jsd" : { + "type" : "CodePackage", + "id" : "acm011623jsd", + "name" : "external", + "parentId" : null, + "content" : [ "acm011620jsd" ] + }, + "acm011624jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011624jsd", + "name" : "AccountRequestsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011633jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011625jsd" : { + "type" : "CodePackage", + "id" : "acm011625jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011626jsd" ] + }, + "acm011626jsd" : { + "type" : "CodePackage", + "id" : "acm011626jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011627jsd" ] + }, + "acm011627jsd" : { + "type" : "CodePackage", + "id" : "acm011627jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011624jsd" ] + }, + "acm011628jsd" : { + "type" : "ControlElement", + "id" : "acm011628jsd", + "name" : "testCreateAccountRequest" + }, + "acm011629jsd" : { + "type" : "ControlElement", + "id" : "acm011629jsd", + "name" : "testUpdateAccountRequest" + }, + "acm011630jsd" : { + "type" : "ControlElement", + "id" : "acm011630jsd", + "name" : "testDeleteAccountRequest" + }, + "acm011631jsd" : { + "type" : "ControlElement", + "id" : "acm011631jsd", + "name" : "testGetAccountRequestForRegistrationKey" + }, + "acm011632jsd" : { + "type" : "ControlElement", + "id" : "acm011632jsd", + "name" : "testGetAccountRequest" + }, + "acm011633jsd" : { + "type" : "ClassUnit", + "id" : "acm011633jsd", + "name" : "AccountRequestsDbTest", + "compilationUnitId" : "acm011624jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004549jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007380jsd", "acm007758jsd" ], + "content" : [ "acm011628jsd", "acm011629jsd", "acm011630jsd", "acm011631jsd", "acm011632jsd" ] + }, + "acm011634jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011634jsd", + "name" : "AccountsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011645jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011635jsd" : { + "type" : "CodePackage", + "id" : "acm011635jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011636jsd" ] + }, + "acm011636jsd" : { + "type" : "CodePackage", + "id" : "acm011636jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011637jsd" ] + }, + "acm011637jsd" : { + "type" : "CodePackage", + "id" : "acm011637jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011634jsd" ] + }, + "acm011638jsd" : { + "type" : "ControlElement", + "id" : "acm011638jsd", + "name" : "testGetAccount" + }, + "acm011639jsd" : { + "type" : "ControlElement", + "id" : "acm011639jsd", + "name" : "testGetAccountsForEmail" + }, + "acm011640jsd" : { + "type" : "ControlElement", + "id" : "acm011640jsd", + "name" : "testCreateAccount" + }, + "acm011641jsd" : { + "type" : "ControlElement", + "id" : "acm011641jsd", + "name" : "testUpdateAccount_noChangeToAccount_shouldNotIssueSaveRequest" + }, + "acm011642jsd" : { + "type" : "ControlElement", + "id" : "acm011642jsd", + "name" : "testUpdateAccount" + }, + "acm011643jsd" : { + "type" : "ControlElement", + "id" : "acm011643jsd", + "name" : "testDeleteAccount" + }, + "acm011644jsd" : { + "type" : "ControlElement", + "id" : "acm011644jsd", + "name" : "createNewAccount" + }, + "acm011645jsd" : { + "type" : "ClassUnit", + "id" : "acm011645jsd", + "name" : "AccountsDbTest", + "compilationUnitId" : "acm011634jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007395jsd" ], + "content" : [ "acm011638jsd", "acm011639jsd", "acm011640jsd", "acm011641jsd", "acm011642jsd", "acm011643jsd", "acm011644jsd" ] + }, + "acm011646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011646jsd", + "name" : "CoursesDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011659jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011647jsd" : { + "type" : "CodePackage", + "id" : "acm011647jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011648jsd" ] + }, + "acm011648jsd" : { + "type" : "CodePackage", + "id" : "acm011648jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011649jsd" ] + }, + "acm011649jsd" : { + "type" : "CodePackage", + "id" : "acm011649jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011646jsd" ] + }, + "acm011650jsd" : { + "type" : "ControlElement", + "id" : "acm011650jsd", + "name" : "testCreateCourse" + }, + "acm011651jsd" : { + "type" : "ControlElement", + "id" : "acm011651jsd", + "name" : "testGetCourse" + }, + "acm011652jsd" : { + "type" : "ControlElement", + "id" : "acm011652jsd", + "name" : "testGetCourses" + }, + "acm011653jsd" : { + "type" : "ControlElement", + "id" : "acm011653jsd", + "name" : "testUpdateCourse_noChangeToCourse_shouldNotIssueSaveRequest" + }, + "acm011654jsd" : { + "type" : "ControlElement", + "id" : "acm011654jsd", + "name" : "testUpdateCourse" + }, + "acm011655jsd" : { + "type" : "ControlElement", + "id" : "acm011655jsd", + "name" : "testUpdateCourse_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011656jsd" : { + "type" : "ControlElement", + "id" : "acm011656jsd", + "name" : "testDeleteCourse" + }, + "acm011657jsd" : { + "type" : "ControlElement", + "id" : "acm011657jsd", + "name" : "testSoftDeleteCourse" + }, + "acm011658jsd" : { + "type" : "ControlElement", + "id" : "acm011658jsd", + "name" : "createNewCourse" + }, + "acm011659jsd" : { + "type" : "ClassUnit", + "id" : "acm011659jsd", + "name" : "CoursesDbTest", + "compilationUnitId" : "acm011646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007414jsd" ], + "content" : [ "acm011650jsd", "acm011651jsd", "acm011652jsd", "acm011653jsd", "acm011654jsd", "acm011655jsd", "acm011656jsd", "acm011657jsd", "acm011658jsd" ] + }, + "acm011660jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011660jsd", + "name" : "DeadlineExtensionsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011672jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011661jsd" : { + "type" : "CodePackage", + "id" : "acm011661jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011662jsd" ] + }, + "acm011662jsd" : { + "type" : "CodePackage", + "id" : "acm011662jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011663jsd" ] + }, + "acm011663jsd" : { + "type" : "CodePackage", + "id" : "acm011663jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011660jsd" ] + }, + "acm011664jsd" : { + "type" : "ControlElement", + "id" : "acm011664jsd", + "name" : "testCreateDeadlineExtension" + }, + "acm011665jsd" : { + "type" : "ControlElement", + "id" : "acm011665jsd", + "name" : "testUpdateDeadlineExtension" + }, + "acm011666jsd" : { + "type" : "ControlElement", + "id" : "acm011666jsd", + "name" : "testDeleteDeadlineExtension" + }, + "acm011667jsd" : { + "type" : "ControlElement", + "id" : "acm011667jsd", + "name" : "testGetDeadlineExtension" + }, + "acm011668jsd" : { + "type" : "ControlElement", + "id" : "acm011668jsd", + "name" : "testDeleteDeadlineExtensions_byCourseAndFeedbackSessionName" + }, + "acm011669jsd" : { + "type" : "ControlElement", + "id" : "acm011669jsd", + "name" : "testDeleteDeadlineExtensions_byCourseIdAndUserDetails" + }, + "acm011670jsd" : { + "type" : "ControlElement", + "id" : "acm011670jsd", + "name" : "testUpdateDeadlineExtensionsWithNewEmail" + }, + "acm011671jsd" : { + "type" : "ControlElement", + "id" : "acm011671jsd", + "name" : "testGetDeadlineExtensionsPossiblyNeedingClosingEmail" + }, + "acm011672jsd" : { + "type" : "ClassUnit", + "id" : "acm011672jsd", + "name" : "DeadlineExtensionsDbTest", + "compilationUnitId" : "acm011660jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004163jsd", "acm004662jsd", "acm004678jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007440jsd", "acm007850jsd" ], + "content" : [ "acm011664jsd", "acm011665jsd", "acm011666jsd", "acm011667jsd", "acm011668jsd", "acm011669jsd", "acm011670jsd", "acm011671jsd" ] + }, + "acm011673jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011673jsd", + "name" : "EntitiesDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011678jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011674jsd" : { + "type" : "CodePackage", + "id" : "acm011674jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011675jsd" ] + }, + "acm011675jsd" : { + "type" : "CodePackage", + "id" : "acm011675jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011676jsd" ] + }, + "acm011676jsd" : { + "type" : "CodePackage", + "id" : "acm011676jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011673jsd" ] + }, + "acm011677jsd" : { + "type" : "ControlElement", + "id" : "acm011677jsd", + "name" : "testCreateEntity" + }, + "acm011678jsd" : { + "type" : "ClassUnit", + "id" : "acm011678jsd", + "name" : "EntitiesDbTest", + "compilationUnitId" : "acm011673jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm006162jsd", "acm006188jsd", "acm007414jsd" ], + "content" : [ "acm011677jsd" ] + }, + "acm011679jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011679jsd", + "name" : "FeedbackQuestionsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011699jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011680jsd" : { + "type" : "CodePackage", + "id" : "acm011680jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011681jsd" ] + }, + "acm011681jsd" : { + "type" : "CodePackage", + "id" : "acm011681jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011682jsd" ] + }, + "acm011682jsd" : { + "type" : "CodePackage", + "id" : "acm011682jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011679jsd" ] + }, + "acm011683jsd" : { + "type" : "ControlElement", + "id" : "acm011683jsd", + "name" : "testTimestamp" + }, + "acm011684jsd" : { + "type" : "ControlElement", + "id" : "acm011684jsd", + "name" : "testDeleteFeedbackQuestion" + }, + "acm011685jsd" : { + "type" : "ControlElement", + "id" : "acm011685jsd", + "name" : "testDeleteFeedbackQuestions_deleteByCourseIdAndSessionName" + }, + "acm011686jsd" : { + "type" : "ControlElement", + "id" : "acm011686jsd", + "name" : "testDeleteFeedbackQuestions_deleteByCourseId" + }, + "acm011687jsd" : { + "type" : "ControlElement", + "id" : "acm011687jsd", + "name" : "testCreateDeleteFeedbackQuestion" + }, + "acm011688jsd" : { + "type" : "ControlElement", + "id" : "acm011688jsd", + "name" : "testGetFeedbackQuestions" + }, + "acm011689jsd" : { + "type" : "ControlElement", + "id" : "acm011689jsd", + "name" : "testGetFeedbackQuestionsForSession" + }, + "acm011690jsd" : { + "type" : "ControlElement", + "id" : "acm011690jsd", + "name" : "testGetFeedbackQuestionsForGiverType" + }, + "acm011691jsd" : { + "type" : "ControlElement", + "id" : "acm011691jsd", + "name" : "testUpdateFeedbackQuestion_noChangeToQuestion_shouldNotIssueSaveRequest" + }, + "acm011692jsd" : { + "type" : "ControlElement", + "id" : "acm011692jsd", + "name" : "testUpdateFeedbackQuestion" + }, + "acm011693jsd" : { + "type" : "ControlElement", + "id" : "acm011693jsd", + "name" : "testUpdateFeedbackQuestion_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011694jsd" : { + "type" : "ControlElement", + "id" : "acm011694jsd", + "name" : "getNewFeedbackQuestionAttributes" + }, + "acm011695jsd" : { + "type" : "ControlElement", + "id" : "acm011695jsd", + "name" : "createFeedbackQuestions" + }, + "acm011696jsd" : { + "type" : "ControlElement", + "id" : "acm011696jsd", + "name" : "createNewQuestionsForDifferentRecipientTypes" + }, + "acm011697jsd" : { + "type" : "ControlElement", + "id" : "acm011697jsd", + "name" : "deleteFeedbackQuestions" + }, + "acm011698jsd" : { + "type" : "ControlElement", + "id" : "acm011698jsd", + "name" : "deleteFeedbackQuestion" + }, + "acm011699jsd" : { + "type" : "ClassUnit", + "id" : "acm011699jsd", + "name" : "FeedbackQuestionsDbTest", + "compilationUnitId" : "acm011679jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005977jsd", "acm006116jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007484jsd" ], + "content" : [ "acm011683jsd", "acm011684jsd", "acm011685jsd", "acm011686jsd", "acm011687jsd", "acm011688jsd", "acm011689jsd", "acm011690jsd", "acm011691jsd", "acm011692jsd", "acm011693jsd", "acm011694jsd", "acm011695jsd", "acm011696jsd", "acm011697jsd", "acm011698jsd" ] + }, + "acm011700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011700jsd", + "name" : "FeedbackResponseCommentsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011727jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011701jsd" : { + "type" : "CodePackage", + "id" : "acm011701jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011702jsd" ] + }, + "acm011702jsd" : { + "type" : "CodePackage", + "id" : "acm011702jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011703jsd" ] + }, + "acm011703jsd" : { + "type" : "CodePackage", + "id" : "acm011703jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011700jsd" ] + }, + "acm011704jsd" : { + "type" : "ControlElement", + "id" : "acm011704jsd", + "name" : "beforeMethod" + }, + "acm011705jsd" : { + "type" : "ControlElement", + "id" : "acm011705jsd", + "name" : "afterMethod" + }, + "acm011706jsd" : { + "type" : "ControlElement", + "id" : "acm011706jsd", + "name" : "testAll" + }, + "acm011707jsd" : { + "type" : "ControlElement", + "id" : "acm011707jsd", + "name" : "testEntityCreationAndDeletion" + }, + "acm011708jsd" : { + "type" : "ControlElement", + "id" : "acm011708jsd", + "name" : "testGetFeedbackResponseCommentFromId" + }, + "acm011709jsd" : { + "type" : "ControlElement", + "id" : "acm011709jsd", + "name" : "testGetFeedbackResponseCommentFromCommentDetails" + }, + "acm011710jsd" : { + "type" : "ControlElement", + "id" : "acm011710jsd", + "name" : "testGetFeedbackResponseCommentForGiver" + }, + "acm011711jsd" : { + "type" : "ControlElement", + "id" : "acm011711jsd", + "name" : "testGetFeedbackResponseCommentForResponse" + }, + "acm011712jsd" : { + "type" : "ControlElement", + "id" : "acm011712jsd", + "name" : "testUpdateFeedbackResponseComment_noChangeToComment_shouldNotIssueSaveRequest" + }, + "acm011713jsd" : { + "type" : "ControlElement", + "id" : "acm011713jsd", + "name" : "testUpdateFeedbackResponseComment" + }, + "acm011714jsd" : { + "type" : "ControlElement", + "id" : "acm011714jsd", + "name" : "testUpdateFeedbackResponseComment_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011715jsd" : { + "type" : "ControlElement", + "id" : "acm011715jsd", + "name" : "testGetFeedbackResponseCommentsForSession" + }, + "acm011716jsd" : { + "type" : "ControlElement", + "id" : "acm011716jsd", + "name" : "testUpdateFeedbackResponseCommentsGiverEmail" + }, + "acm011717jsd" : { + "type" : "ControlElement", + "id" : "acm011717jsd", + "name" : "testDeleteFeedbackResponseComment" + }, + "acm011718jsd" : { + "type" : "ControlElement", + "id" : "acm011718jsd", + "name" : "testDeleteFeedbackResponseComments_byResponseId" + }, + "acm011719jsd" : { + "type" : "ControlElement", + "id" : "acm011719jsd", + "name" : "testDeleteFeedbackResponseComments_byQuestionId" + }, + "acm011720jsd" : { + "type" : "ControlElement", + "id" : "acm011720jsd", + "name" : "testDeleteFeedbackResponseComments_byCourseIdAndSessionName" + }, + "acm011721jsd" : { + "type" : "ControlElement", + "id" : "acm011721jsd", + "name" : "testDeleteFeedbackResponseComments_byCourseId" + }, + "acm011722jsd" : { + "type" : "ControlElement", + "id" : "acm011722jsd", + "name" : "testDeleteFeedbackResponseComments_nullInput_shouldThrowException" + }, + "acm011723jsd" : { + "type" : "ControlElement", + "id" : "acm011723jsd", + "name" : "verifyListsContainSameResponseCommentAttributes" + }, + "acm011724jsd" : { + "type" : "ControlElement", + "id" : "acm011724jsd", + "name" : "testGetFeedbackResponseCommentsForQuestion_typicalCase_shouldQueryCorrectly" + }, + "acm011725jsd" : { + "type" : "ControlElement", + "id" : "acm011725jsd", + "name" : "testGetFeedbackResponseCommentsForQuestionInSection_typicalCase_shouldQueryCorrectly" + }, + "acm011726jsd" : { + "type" : "ControlElement", + "id" : "acm011726jsd", + "name" : "getFeedbackResponseComment" + }, + "acm011727jsd" : { + "type" : "ClassUnit", + "id" : "acm011727jsd", + "name" : "FeedbackResponseCommentsDbTest", + "compilationUnitId" : "acm011700jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004971jsd", "acm004989jsd", "acm006168jsd", "acm007519jsd" ], + "content" : [ "acm011704jsd", "acm011705jsd", "acm011706jsd", "acm011707jsd", "acm011708jsd", "acm011709jsd", "acm011710jsd", "acm011711jsd", "acm011712jsd", "acm011713jsd", "acm011714jsd", "acm011715jsd", "acm011716jsd", "acm011717jsd", "acm011718jsd", "acm011719jsd", "acm011720jsd", "acm011721jsd", "acm011722jsd", "acm011723jsd", "acm011724jsd", "acm011725jsd", "acm011726jsd" ] + }, + "acm011728jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011728jsd", + "name" : "FeedbackResponsesDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011760jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011729jsd" : { + "type" : "CodePackage", + "id" : "acm011729jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011730jsd" ] + }, + "acm011730jsd" : { + "type" : "CodePackage", + "id" : "acm011730jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011731jsd" ] + }, + "acm011731jsd" : { + "type" : "CodePackage", + "id" : "acm011731jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011728jsd" ] + }, + "acm011732jsd" : { + "type" : "ControlElement", + "id" : "acm011732jsd", + "name" : "beforeClass" + }, + "acm011733jsd" : { + "type" : "ControlElement", + "id" : "acm011733jsd", + "name" : "beforeMethod" + }, + "acm011734jsd" : { + "type" : "ControlElement", + "id" : "acm011734jsd", + "name" : "addQuestionsAndResponsesToDb" + }, + "acm011735jsd" : { + "type" : "ControlElement", + "id" : "acm011735jsd", + "name" : "testGetGiverSetThatAnswerFeedbackSession_emptyResponses_shouldReturnEmptySet" + }, + "acm011736jsd" : { + "type" : "ControlElement", + "id" : "acm011736jsd", + "name" : "testGetGiverSetThatAnswerFeedbackSession_giverIsUser_shouldReturnCorrectIdentifier" + }, + "acm011737jsd" : { + "type" : "ControlElement", + "id" : "acm011737jsd", + "name" : "testTimestamp" + }, + "acm011738jsd" : { + "type" : "ControlElement", + "id" : "acm011738jsd", + "name" : "testDeleteFeedbackResponse" + }, + "acm011739jsd" : { + "type" : "ControlElement", + "id" : "acm011739jsd", + "name" : "testDeleteFeedbackResponses_byQuestionId" + }, + "acm011740jsd" : { + "type" : "ControlElement", + "id" : "acm011740jsd", + "name" : "testDeleteFeedbackResponses_byCourseIdAndSessionName" + }, + "acm011741jsd" : { + "type" : "ControlElement", + "id" : "acm011741jsd", + "name" : "testDeleteFeedbackResponses_byCourseId" + }, + "acm011742jsd" : { + "type" : "ControlElement", + "id" : "acm011742jsd", + "name" : "testCreateFeedbackResponse" + }, + "acm011743jsd" : { + "type" : "ControlElement", + "id" : "acm011743jsd", + "name" : "testGetFeedbackResponses" + }, + "acm011744jsd" : { + "type" : "ControlElement", + "id" : "acm011744jsd", + "name" : "testGetFeedbackResponsesForQuestion" + }, + "acm011745jsd" : { + "type" : "ControlElement", + "id" : "acm011745jsd", + "name" : "testGetFeedbackResponsesForQuestionInSection" + }, + "acm011746jsd" : { + "type" : "ControlElement", + "id" : "acm011746jsd", + "name" : "testGetFeedbackResponsesForSession" + }, + "acm011747jsd" : { + "type" : "ControlElement", + "id" : "acm011747jsd", + "name" : "testGetFeedbackResponsesForReceiverForCourse" + }, + "acm011748jsd" : { + "type" : "ControlElement", + "id" : "acm011748jsd", + "name" : "testGetFeedbackResponsesFromGiverForQuestion" + }, + "acm011749jsd" : { + "type" : "ControlElement", + "id" : "acm011749jsd", + "name" : "testGetFeedbackResponsesForReceiverForQuestion" + }, + "acm011750jsd" : { + "type" : "ControlElement", + "id" : "acm011750jsd", + "name" : "testGetFeedbackResponsesFromGiverForCourse" + }, + "acm011751jsd" : { + "type" : "ControlElement", + "id" : "acm011751jsd", + "name" : "testGetFeedbackResponsesForSessionInSection" + }, + "acm011752jsd" : { + "type" : "ControlElement", + "id" : "acm011752jsd", + "name" : "testUpdateFeedbackResponse_noChangeToResponse_shouldNotIssueSaveRequest" + }, + "acm011753jsd" : { + "type" : "ControlElement", + "id" : "acm011753jsd", + "name" : "testUpdateFeedbackResponse" + }, + "acm011754jsd" : { + "type" : "ControlElement", + "id" : "acm011754jsd", + "name" : "testUpdateFeedbackResponse_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011755jsd" : { + "type" : "ControlElement", + "id" : "acm011755jsd", + "name" : "getNewFeedbackResponseAttributes" + }, + "acm011756jsd" : { + "type" : "ControlElement", + "id" : "acm011756jsd", + "name" : "getResponseAttributes" + }, + "acm011757jsd" : { + "type" : "ControlElement", + "id" : "acm011757jsd", + "name" : "afterMethod" + }, + "acm011758jsd" : { + "type" : "ControlElement", + "id" : "acm011758jsd", + "name" : "deleteResponsesFromDb" + }, + "acm011759jsd" : { + "type" : "ControlElement", + "id" : "acm011759jsd", + "name" : "deleteResponse" + }, + "acm011760jsd" : { + "type" : "ClassUnit", + "id" : "acm011760jsd", + "name" : "FeedbackResponsesDbTest", + "compilationUnitId" : "acm011728jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm004871jsd", "acm006061jsd", "acm006127jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007484jsd", "acm007556jsd" ], + "content" : [ "acm011732jsd", "acm011733jsd", "acm011734jsd", "acm011735jsd", "acm011736jsd", "acm011737jsd", "acm011738jsd", "acm011739jsd", "acm011740jsd", "acm011741jsd", "acm011742jsd", "acm011743jsd", "acm011744jsd", "acm011745jsd", "acm011746jsd", "acm011747jsd", "acm011748jsd", "acm011749jsd", "acm011750jsd", "acm011751jsd", "acm011752jsd", "acm011753jsd", "acm011754jsd", "acm011755jsd", "acm011756jsd", "acm011757jsd", "acm011758jsd", "acm011759jsd" ] + }, + "acm011761jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011761jsd", + "name" : "FeedbackSessionsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011787jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011762jsd" : { + "type" : "CodePackage", + "id" : "acm011762jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011763jsd" ] + }, + "acm011763jsd" : { + "type" : "CodePackage", + "id" : "acm011763jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011764jsd" ] + }, + "acm011764jsd" : { + "type" : "CodePackage", + "id" : "acm011764jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011761jsd" ] + }, + "acm011765jsd" : { + "type" : "ControlElement", + "id" : "acm011765jsd", + "name" : "addSessionsToDb" + }, + "acm011766jsd" : { + "type" : "ControlElement", + "id" : "acm011766jsd", + "name" : "deleteSessionsFromDb" + }, + "acm011767jsd" : { + "type" : "ControlElement", + "id" : "acm011767jsd", + "name" : "testGetAllOngoingSessions_typicalCase_shouldQuerySuccessfullyWithoutDuplication" + }, + "acm011768jsd" : { + "type" : "ControlElement", + "id" : "acm011768jsd", + "name" : "testDeleteFeedbackSession" + }, + "acm011769jsd" : { + "type" : "ControlElement", + "id" : "acm011769jsd", + "name" : "testDeleteFeedbackSessions_byCourseId" + }, + "acm011770jsd" : { + "type" : "ControlElement", + "id" : "acm011770jsd", + "name" : "testCreateDeleteFeedbackSession" + }, + "acm011771jsd" : { + "type" : "ControlElement", + "id" : "acm011771jsd", + "name" : "testGetSoftDeletedFeedbackSession_typicalCase_shouldGetDeletedSession" + }, + "acm011772jsd" : { + "type" : "ControlElement", + "id" : "acm011772jsd", + "name" : "testGetSoftDeletedFeedbackSession_sessionIsNotDeleted_shouldReturnNull" + }, + "acm011773jsd" : { + "type" : "ControlElement", + "id" : "acm011773jsd", + "name" : "testAllGetFeedbackSessions" + }, + "acm011774jsd" : { + "type" : "ControlElement", + "id" : "acm011774jsd", + "name" : "testGetFeedbackSessions" + }, + "acm011775jsd" : { + "type" : "ControlElement", + "id" : "acm011775jsd", + "name" : "testGetFeedbackSessionsForCourse" + }, + "acm011776jsd" : { + "type" : "ControlElement", + "id" : "acm011776jsd", + "name" : "testGetSoftDeletedFeedbackSessionsForCourse" + }, + "acm011777jsd" : { + "type" : "ControlElement", + "id" : "acm011777jsd", + "name" : "testSoftDeleteFeedbackSession" + }, + "acm011778jsd" : { + "type" : "ControlElement", + "id" : "acm011778jsd", + "name" : "testGetFeedbackSessionsPossiblyNeedingOpeningSoonEmail" + }, + "acm011779jsd" : { + "type" : "ControlElement", + "id" : "acm011779jsd", + "name" : "testGetFeedbackSessionsPossiblyNeedingOpenEmail" + }, + "acm011780jsd" : { + "type" : "ControlElement", + "id" : "acm011780jsd", + "name" : "testGetFeedbackSessionsPossiblyNeedingClosingEmail" + }, + "acm011781jsd" : { + "type" : "ControlElement", + "id" : "acm011781jsd", + "name" : "testGetFeedbackSessionsPossiblyNeedingClosedEmail" + }, + "acm011782jsd" : { + "type" : "ControlElement", + "id" : "acm011782jsd", + "name" : "testGetFeedbackSessionsPossiblyNeedingPublishedEmail" + }, + "acm011783jsd" : { + "type" : "ControlElement", + "id" : "acm011783jsd", + "name" : "testUpdateFeedbackSession_noChangeToSession_shouldNotIssueSaveRequest" + }, + "acm011784jsd" : { + "type" : "ControlElement", + "id" : "acm011784jsd", + "name" : "testUpdateFeedbackSession" + }, + "acm011785jsd" : { + "type" : "ControlElement", + "id" : "acm011785jsd", + "name" : "testUpdateFeedbackSession_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011786jsd" : { + "type" : "ControlElement", + "id" : "acm011786jsd", + "name" : "getNewFeedbackSession" + }, + "acm011787jsd" : { + "type" : "ClassUnit", + "id" : "acm011787jsd", + "name" : "FeedbackSessionsDbTest", + "compilationUnitId" : "acm011761jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm005112jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007590jsd" ], + "content" : [ "acm011765jsd", "acm011766jsd", "acm011767jsd", "acm011768jsd", "acm011769jsd", "acm011770jsd", "acm011771jsd", "acm011772jsd", "acm011773jsd", "acm011774jsd", "acm011775jsd", "acm011776jsd", "acm011777jsd", "acm011778jsd", "acm011779jsd", "acm011780jsd", "acm011781jsd", "acm011782jsd", "acm011783jsd", "acm011784jsd", "acm011785jsd", "acm011786jsd" ] + }, + "acm011788jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011788jsd", + "name" : "InstructorsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011811jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011789jsd" : { + "type" : "CodePackage", + "id" : "acm011789jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011790jsd" ] + }, + "acm011790jsd" : { + "type" : "CodePackage", + "id" : "acm011790jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011791jsd" ] + }, + "acm011791jsd" : { + "type" : "CodePackage", + "id" : "acm011791jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011788jsd" ] + }, + "acm011792jsd" : { + "type" : "ControlElement", + "id" : "acm011792jsd", + "name" : "addInstructorsToDb" + }, + "acm011793jsd" : { + "type" : "ControlElement", + "id" : "acm011793jsd", + "name" : "setArchiveStatusOfInstructor" + }, + "acm011794jsd" : { + "type" : "ControlElement", + "id" : "acm011794jsd", + "name" : "testCreateInstructor" + }, + "acm011795jsd" : { + "type" : "ControlElement", + "id" : "acm011795jsd", + "name" : "testHasExistingInstructorsInCourse" + }, + "acm011796jsd" : { + "type" : "ControlElement", + "id" : "acm011796jsd", + "name" : "testGetInstructorForEmail" + }, + "acm011797jsd" : { + "type" : "ControlElement", + "id" : "acm011797jsd", + "name" : "testGetInstructorForGoogleId" + }, + "acm011798jsd" : { + "type" : "ControlElement", + "id" : "acm011798jsd", + "name" : "testGetInstructorForRegistrationKey" + }, + "acm011799jsd" : { + "type" : "ControlElement", + "id" : "acm011799jsd", + "name" : "testGetInstructorsForGoogleId" + }, + "acm011800jsd" : { + "type" : "ControlElement", + "id" : "acm011800jsd", + "name" : "testGetInstructorEmailsForCourse" + }, + "acm011801jsd" : { + "type" : "ControlElement", + "id" : "acm011801jsd", + "name" : "testGetInstructorsForCourse" + }, + "acm011802jsd" : { + "type" : "ControlElement", + "id" : "acm011802jsd", + "name" : "testGetInstructorsDisplayedToStudents" + }, + "acm011803jsd" : { + "type" : "ControlElement", + "id" : "acm011803jsd", + "name" : "testUpdateInstructorByGoogleId" + }, + "acm011804jsd" : { + "type" : "ControlElement", + "id" : "acm011804jsd", + "name" : "testUpdateInstructorByGoogleId_noChangeToInstructor_shouldNotIssueSaveRequest" + }, + "acm011805jsd" : { + "type" : "ControlElement", + "id" : "acm011805jsd", + "name" : "testUpdateInstructorByGoogleId_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011806jsd" : { + "type" : "ControlElement", + "id" : "acm011806jsd", + "name" : "testUpdateInstructorByEmail_noChangeToInstructor_shouldNotIssueSaveRequest" + }, + "acm011807jsd" : { + "type" : "ControlElement", + "id" : "acm011807jsd", + "name" : "testUpdateInstructorByEmail_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011808jsd" : { + "type" : "ControlElement", + "id" : "acm011808jsd", + "name" : "testUpdateInstructorByEmail" + }, + "acm011809jsd" : { + "type" : "ControlElement", + "id" : "acm011809jsd", + "name" : "testDeleteInstructor" + }, + "acm011810jsd" : { + "type" : "ControlElement", + "id" : "acm011810jsd", + "name" : "testDeleteInstructors_byCourseId_shouldDeleteInstructorsAssociatedWithTheCourse" + }, + "acm011811jsd" : { + "type" : "ClassUnit", + "id" : "acm011811jsd", + "name" : "InstructorsDbTest", + "compilationUnitId" : "acm011788jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004332jsd", "acm005233jsd", "acm005245jsd", "acm005257jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007630jsd" ], + "content" : [ "acm011792jsd", "acm011793jsd", "acm011794jsd", "acm011795jsd", "acm011796jsd", "acm011797jsd", "acm011798jsd", "acm011799jsd", "acm011800jsd", "acm011801jsd", "acm011802jsd", "acm011803jsd", "acm011804jsd", "acm011805jsd", "acm011806jsd", "acm011807jsd", "acm011808jsd", "acm011809jsd", "acm011810jsd" ] + }, + "acm011812jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011812jsd", + "name" : "NotificationsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011829jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011813jsd" : { + "type" : "CodePackage", + "id" : "acm011813jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011814jsd" ] + }, + "acm011814jsd" : { + "type" : "CodePackage", + "id" : "acm011814jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011815jsd" ] + }, + "acm011815jsd" : { + "type" : "CodePackage", + "id" : "acm011815jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011812jsd" ] + }, + "acm011816jsd" : { + "type" : "ControlElement", + "id" : "acm011816jsd", + "name" : "setup" + }, + "acm011817jsd" : { + "type" : "ControlElement", + "id" : "acm011817jsd", + "name" : "cleanUp" + }, + "acm011818jsd" : { + "type" : "ControlElement", + "id" : "acm011818jsd", + "name" : "testGetNotification" + }, + "acm011819jsd" : { + "type" : "ControlElement", + "id" : "acm011819jsd", + "name" : "testGetAllNotifications" + }, + "acm011820jsd" : { + "type" : "ControlElement", + "id" : "acm011820jsd", + "name" : "testGetActiveNotificationsByTargetUser" + }, + "acm011821jsd" : { + "type" : "ControlElement", + "id" : "acm011821jsd", + "name" : "testCreateNotification" + }, + "acm011822jsd" : { + "type" : "ControlElement", + "id" : "acm011822jsd", + "name" : "testUpdateNotification" + }, + "acm011823jsd" : { + "type" : "ControlElement", + "id" : "acm011823jsd", + "name" : "testUpdateNotification_singleFieldUpdate_shouldUpdateSuccessfully" + }, + "acm011824jsd" : { + "type" : "ControlElement", + "id" : "acm011824jsd", + "name" : "testDeleteNotification" + }, + "acm011825jsd" : { + "type" : "ControlElement", + "id" : "acm011825jsd", + "name" : "testDoesNotificationExists" + }, + "acm011826jsd" : { + "type" : "ControlElement", + "id" : "acm011826jsd", + "name" : "testHasExistingEntities" + }, + "acm011827jsd" : { + "type" : "ControlElement", + "id" : "acm011827jsd", + "name" : "createNewNotification" + }, + "acm011828jsd" : { + "type" : "ControlElement", + "id" : "acm011828jsd", + "name" : "getNewNotificationAttributes" + }, + "acm011829jsd" : { + "type" : "ClassUnit", + "id" : "acm011829jsd", + "name" : "NotificationsDbTest", + "compilationUnitId" : "acm011812jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007647jsd" ], + "content" : [ "acm011816jsd", "acm011817jsd", "acm011818jsd", "acm011819jsd", "acm011820jsd", "acm011821jsd", "acm011822jsd", "acm011823jsd", "acm011824jsd", "acm011825jsd", "acm011826jsd", "acm011827jsd", "acm011828jsd" ] + }, + "acm011830jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011830jsd", + "name" : "StudentsDbTest", + "parentId" : "acm007364jsd", + "content" : [ "acm011845jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011831jsd" : { + "type" : "CodePackage", + "id" : "acm011831jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011832jsd" ] + }, + "acm011832jsd" : { + "type" : "CodePackage", + "id" : "acm011832jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011833jsd" ] + }, + "acm011833jsd" : { + "type" : "CodePackage", + "id" : "acm011833jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011830jsd" ] + }, + "acm011834jsd" : { + "type" : "ControlElement", + "id" : "acm011834jsd", + "name" : "testTimestamp" + }, + "acm011835jsd" : { + "type" : "ControlElement", + "id" : "acm011835jsd", + "name" : "testCreateStudent" + }, + "acm011836jsd" : { + "type" : "ControlElement", + "id" : "acm011836jsd", + "name" : "testHasExistingStudentsInCourse" + }, + "acm011837jsd" : { + "type" : "ControlElement", + "id" : "acm011837jsd", + "name" : "testGetStudent" + }, + "acm011838jsd" : { + "type" : "ControlElement", + "id" : "acm011838jsd", + "name" : "testUpdateStudent_noChangeToStudent_shouldNotIssueSaveRequest" + }, + "acm011839jsd" : { + "type" : "ControlElement", + "id" : "acm011839jsd", + "name" : "testUpdateStudent" + }, + "acm011840jsd" : { + "type" : "ControlElement", + "id" : "acm011840jsd", + "name" : "testUpdateStudent_singleFieldUpdate_shouldUpdateCorrectly" + }, + "acm011841jsd" : { + "type" : "ControlElement", + "id" : "acm011841jsd", + "name" : "testDeleteStudent" + }, + "acm011842jsd" : { + "type" : "ControlElement", + "id" : "acm011842jsd", + "name" : "createNewStudent" + }, + "acm011843jsd" : { + "type" : "ControlElement", + "id" : "acm011843jsd", + "name" : "createNewStudent" + }, + "acm011844jsd" : { + "type" : "ControlElement", + "id" : "acm011844jsd", + "name" : "isEnrollInfoSameAs" + }, + "acm011845jsd" : { + "type" : "ClassUnit", + "id" : "acm011845jsd", + "name" : "StudentsDbTest", + "compilationUnitId" : "acm011830jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm005423jsd", "acm006162jsd", "acm006168jsd", "acm006188jsd", "acm007703jsd" ], + "content" : [ "acm011834jsd", "acm011835jsd", "acm011836jsd", "acm011837jsd", "acm011838jsd", "acm011839jsd", "acm011840jsd", "acm011841jsd", "acm011842jsd", "acm011843jsd", "acm011844jsd" ] + }, + "acm011846jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011846jsd", + "name" : "package-info", + "parentId" : "acm007364jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "api" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011847jsd" : { + "type" : "CodePackage", + "id" : "acm011847jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011848jsd" ] + }, + "acm011848jsd" : { + "type" : "CodePackage", + "id" : "acm011848jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011849jsd" ] + }, + "acm011849jsd" : { + "type" : "CodePackage", + "id" : "acm011849jsd", + "name" : "api", + "parentId" : null, + "content" : [ "acm011846jsd" ] + }, + "acm011850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011850jsd", + "name" : "AccountRequestSearchTest", + "parentId" : "acm008103jsd", + "content" : [ "acm011858jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011851jsd" : { + "type" : "CodePackage", + "id" : "acm011851jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011852jsd" ] + }, + "acm011852jsd" : { + "type" : "CodePackage", + "id" : "acm011852jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011853jsd" ] + }, + "acm011853jsd" : { + "type" : "CodePackage", + "id" : "acm011853jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm011850jsd" ] + }, + "acm011854jsd" : { + "type" : "ControlElement", + "id" : "acm011854jsd", + "name" : "allTests" + }, + "acm011855jsd" : { + "type" : "ControlElement", + "id" : "acm011855jsd", + "name" : "testSearchAccountRequest_deleteAfterSearch_shouldNotBeSearchable" + }, + "acm011856jsd" : { + "type" : "ControlElement", + "id" : "acm011856jsd", + "name" : "testSearchAccountRequest_noSearchService_shouldThrowException" + }, + "acm011857jsd" : { + "type" : "ControlElement", + "id" : "acm011857jsd", + "name" : "verifySearchResults" + }, + "acm011858jsd" : { + "type" : "ClassUnit", + "id" : "acm011858jsd", + "name" : "AccountRequestSearchTest", + "compilationUnitId" : "acm011850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011865jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006197jsd", "acm007380jsd" ], + "content" : [ "acm011854jsd", "acm011855jsd", "acm011856jsd", "acm011857jsd" ] + }, + "acm011859jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011859jsd", + "name" : "BaseSearchTest", + "parentId" : "acm008103jsd", + "content" : [ "acm011865jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011860jsd" : { + "type" : "CodePackage", + "id" : "acm011860jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011861jsd" ] + }, + "acm011861jsd" : { + "type" : "CodePackage", + "id" : "acm011861jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011862jsd" ] + }, + "acm011862jsd" : { + "type" : "CodePackage", + "id" : "acm011862jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm011859jsd" ] + }, + "acm011863jsd" : { + "type" : "ControlElement", + "id" : "acm011863jsd", + "name" : "baseClassSetup" + }, + "acm011864jsd" : { + "type" : "ControlElement", + "id" : "acm011864jsd", + "name" : "prepareTestData" + }, + "acm011865jsd" : { + "type" : "ClassUnit", + "id" : "acm011865jsd", + "name" : "BaseSearchTest", + "compilationUnitId" : "acm011859jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd" ], + "content" : [ "acm011863jsd", "acm011864jsd" ] + }, + "acm011866jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011866jsd", + "name" : "InstructorSearchTest", + "parentId" : "acm008103jsd", + "content" : [ "acm011875jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011867jsd" : { + "type" : "CodePackage", + "id" : "acm011867jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011868jsd" ] + }, + "acm011868jsd" : { + "type" : "CodePackage", + "id" : "acm011868jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011869jsd" ] + }, + "acm011869jsd" : { + "type" : "CodePackage", + "id" : "acm011869jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm011866jsd" ] + }, + "acm011870jsd" : { + "type" : "ControlElement", + "id" : "acm011870jsd", + "name" : "allTests" + }, + "acm011871jsd" : { + "type" : "ControlElement", + "id" : "acm011871jsd", + "name" : "testSearchInstructor_deleteAfterSearch_shouldNotBeSearchable" + }, + "acm011872jsd" : { + "type" : "ControlElement", + "id" : "acm011872jsd", + "name" : "testSearchInstructor_noSearchService_shouldThrowException" + }, + "acm011873jsd" : { + "type" : "ControlElement", + "id" : "acm011873jsd", + "name" : "verifySearchResults" + }, + "acm011874jsd" : { + "type" : "ControlElement", + "id" : "acm011874jsd", + "name" : "standardizeInstructorsForComparison" + }, + "acm011875jsd" : { + "type" : "ClassUnit", + "id" : "acm011875jsd", + "name" : "InstructorSearchTest", + "compilationUnitId" : "acm011866jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011865jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006197jsd", "acm007630jsd" ], + "content" : [ "acm011870jsd", "acm011871jsd", "acm011872jsd", "acm011873jsd", "acm011874jsd" ] + }, + "acm011876jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011876jsd", + "name" : "StudentSearchTest", + "parentId" : "acm008103jsd", + "content" : [ "acm011883jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011877jsd" : { + "type" : "CodePackage", + "id" : "acm011877jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011878jsd" ] + }, + "acm011878jsd" : { + "type" : "CodePackage", + "id" : "acm011878jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011879jsd" ] + }, + "acm011879jsd" : { + "type" : "CodePackage", + "id" : "acm011879jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm011876jsd" ] + }, + "acm011880jsd" : { + "type" : "ControlElement", + "id" : "acm011880jsd", + "name" : "allTests" + }, + "acm011881jsd" : { + "type" : "ControlElement", + "id" : "acm011881jsd", + "name" : "testSearchStudent_deleteAfterSearch_shouldNotBeSearchable" + }, + "acm011882jsd" : { + "type" : "ControlElement", + "id" : "acm011882jsd", + "name" : "testSearchStudents_noSearchService_shouldThrowException" + }, + "acm011883jsd" : { + "type" : "ClassUnit", + "id" : "acm011883jsd", + "name" : "StudentSearchTest", + "compilationUnitId" : "acm011876jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011865jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006197jsd", "acm007703jsd" ], + "content" : [ "acm011880jsd", "acm011881jsd", "acm011882jsd" ] + }, + "acm011884jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011884jsd", + "name" : "package-info", + "parentId" : "acm008103jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "storage", "search" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011885jsd" : { + "type" : "CodePackage", + "id" : "acm011885jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011886jsd" ] + }, + "acm011886jsd" : { + "type" : "CodePackage", + "id" : "acm011886jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm011887jsd" ] + }, + "acm011887jsd" : { + "type" : "CodePackage", + "id" : "acm011887jsd", + "name" : "search", + "parentId" : null, + "content" : [ "acm011884jsd" ] + }, + "acm011888jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011888jsd", + "name" : "AbstractBackDoor", + "parentId" : "acm011890jsd", + "content" : [ "acm011936jsd", "acm011938jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011889jsd" : { + "type" : "CodePackage", + "id" : "acm011889jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011890jsd" ] + }, + "acm011890jsd" : { + "type" : "CodePackage", + "id" : "acm011890jsd", + "name" : "test", + "parentId" : "acm001338jsd", + "content" : [ "acm011888jsd", "acm011939jsd", "acm011948jsd", "acm011953jsd", "acm011992jsd", "acm012025jsd", "acm012048jsd", "acm012062jsd", "acm012069jsd", "acm012078jsd", "acm012083jsd", "acm012183jsd", "acm012226jsd", "acm012235jsd", "acm012241jsd", "acm012246jsd", "acm012252jsd" ] + }, + "acm011891jsd" : { + "type" : "ControlElement", + "id" : "acm011891jsd", + "name" : "getAppUrl" + }, + "acm011892jsd" : { + "type" : "ControlElement", + "id" : "acm011892jsd", + "name" : "getBackdoorKey" + }, + "acm011893jsd" : { + "type" : "ControlElement", + "id" : "acm011893jsd", + "name" : "getCsrfKey" + }, + "acm011894jsd" : { + "type" : "ControlElement", + "id" : "acm011894jsd", + "name" : "executeGetRequest" + }, + "acm011895jsd" : { + "type" : "ControlElement", + "id" : "acm011895jsd", + "name" : "executePostRequest" + }, + "acm011896jsd" : { + "type" : "ControlElement", + "id" : "acm011896jsd", + "name" : "executePutRequest" + }, + "acm011897jsd" : { + "type" : "ControlElement", + "id" : "acm011897jsd", + "name" : "executeDeleteRequest" + }, + "acm011898jsd" : { + "type" : "ControlElement", + "id" : "acm011898jsd", + "name" : "executeRequest" + }, + "acm011899jsd" : { + "type" : "ControlElement", + "id" : "acm011899jsd", + "name" : "createGetRequest" + }, + "acm011900jsd" : { + "type" : "ControlElement", + "id" : "acm011900jsd", + "name" : "createPostRequest" + }, + "acm011901jsd" : { + "type" : "ControlElement", + "id" : "acm011901jsd", + "name" : "createPutRequest" + }, + "acm011902jsd" : { + "type" : "ControlElement", + "id" : "acm011902jsd", + "name" : "createDeleteRequest" + }, + "acm011903jsd" : { + "type" : "ControlElement", + "id" : "acm011903jsd", + "name" : "createBasicUri" + }, + "acm011904jsd" : { + "type" : "ControlElement", + "id" : "acm011904jsd", + "name" : "addAuthKeys" + }, + "acm011905jsd" : { + "type" : "ControlElement", + "id" : "acm011905jsd", + "name" : "removeAndRestoreDataBundle" + }, + "acm011906jsd" : { + "type" : "ControlElement", + "id" : "acm011906jsd", + "name" : "removeDataBundle" + }, + "acm011907jsd" : { + "type" : "ControlElement", + "id" : "acm011907jsd", + "name" : "getUserCookie" + }, + "acm011908jsd" : { + "type" : "ControlElement", + "id" : "acm011908jsd", + "name" : "putDocuments" + }, + "acm011909jsd" : { + "type" : "ControlElement", + "id" : "acm011909jsd", + "name" : "getAccount" + }, + "acm011910jsd" : { + "type" : "ControlElement", + "id" : "acm011910jsd", + "name" : "getCourseData" + }, + "acm011911jsd" : { + "type" : "ControlElement", + "id" : "acm011911jsd", + "name" : "getCourse" + }, + "acm011912jsd" : { + "type" : "ControlElement", + "id" : "acm011912jsd", + "name" : "getArchivedCourseData" + }, + "acm011913jsd" : { + "type" : "ControlElement", + "id" : "acm011913jsd", + "name" : "getArchivedCourse" + }, + "acm011914jsd" : { + "type" : "ControlElement", + "id" : "acm011914jsd", + "name" : "isCourseInRecycleBin" + }, + "acm011915jsd" : { + "type" : "ControlElement", + "id" : "acm011915jsd", + "name" : "getInstructorData" + }, + "acm011916jsd" : { + "type" : "ControlElement", + "id" : "acm011916jsd", + "name" : "getInstructor" + }, + "acm011917jsd" : { + "type" : "ControlElement", + "id" : "acm011917jsd", + "name" : "getStudentData" + }, + "acm011918jsd" : { + "type" : "ControlElement", + "id" : "acm011918jsd", + "name" : "getStudent" + }, + "acm011919jsd" : { + "type" : "ControlElement", + "id" : "acm011919jsd", + "name" : "getFeedbackSessionData" + }, + "acm011920jsd" : { + "type" : "ControlElement", + "id" : "acm011920jsd", + "name" : "getFeedbackSession" + }, + "acm011921jsd" : { + "type" : "ControlElement", + "id" : "acm011921jsd", + "name" : "convertDeadlinesToInstant" + }, + "acm011922jsd" : { + "type" : "ControlElement", + "id" : "acm011922jsd", + "name" : "getSoftDeletedSession" + }, + "acm011923jsd" : { + "type" : "ControlElement", + "id" : "acm011923jsd", + "name" : "getFeedbackQuestion" + }, + "acm011924jsd" : { + "type" : "ControlElement", + "id" : "acm011924jsd", + "name" : "convertToFeedbackParticipantType" + }, + "acm011925jsd" : { + "type" : "ControlElement", + "id" : "acm011925jsd", + "name" : "getFeedbackResponse" + }, + "acm011926jsd" : { + "type" : "ControlElement", + "id" : "acm011926jsd", + "name" : "getFeedbackResponseComment" + }, + "acm011927jsd" : { + "type" : "ControlElement", + "id" : "acm011927jsd", + "name" : "deleteCourse" + }, + "acm011928jsd" : { + "type" : "ControlElement", + "id" : "acm011928jsd", + "name" : "getAccountRequest" + }, + "acm011929jsd" : { + "type" : "ControlElement", + "id" : "acm011929jsd", + "name" : "getRegKeyForAccountRequest" + }, + "acm011930jsd" : { + "type" : "ControlElement", + "id" : "acm011930jsd", + "name" : "deleteAccountRequest" + }, + "acm011931jsd" : { + "type" : "ControlElement", + "id" : "acm011931jsd", + "name" : "getNotificationData" + }, + "acm011932jsd" : { + "type" : "ControlElement", + "id" : "acm011932jsd", + "name" : "getNotification" + }, + "acm011933jsd" : { + "type" : "ControlElement", + "id" : "acm011933jsd", + "name" : "deleteNotification" + }, + "acm011934jsd" : { + "type" : "ControlElement", + "id" : "acm011934jsd", + "name" : "getDeadlineExtension" + }, + "acm011935jsd" : { + "type" : "ControlElement", + "id" : "acm011935jsd", + "name" : "ResponseBodyAndCode" + }, + "acm011936jsd" : { + "type" : "ClassUnit", + "id" : "acm011936jsd", + "name" : "AbstractBackDoor", + "compilationUnitId" : "acm011888jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004226jsd", "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005237jsd", "acm005329jsd", "acm005412jsd", "acm005415jsd", "acm006174jsd", "acm008245jsd", "acm008257jsd", "acm008329jsd", "acm008343jsd", "acm008355jsd", "acm008407jsd", "acm008432jsd", "acm008449jsd", "acm008461jsd", "acm008470jsd", "acm008518jsd", "acm008574jsd", "acm008579jsd", "acm008620jsd", "acm008644jsd", "acm008670jsd", "acm008685jsd", "acm008946jsd", "acm011938jsd" ], + "content" : [ "acm011891jsd", "acm011892jsd", "acm011893jsd", "acm011894jsd", "acm011895jsd", "acm011896jsd", "acm011897jsd", "acm011898jsd", "acm011899jsd", "acm011900jsd", "acm011901jsd", "acm011902jsd", "acm011903jsd", "acm011904jsd", "acm011905jsd", "acm011906jsd", "acm011907jsd", "acm011908jsd", "acm011909jsd", "acm011910jsd", "acm011911jsd", "acm011912jsd", "acm011913jsd", "acm011914jsd", "acm011915jsd", "acm011916jsd", "acm011917jsd", "acm011918jsd", "acm011919jsd", "acm011920jsd", "acm011921jsd", "acm011922jsd", "acm011923jsd", "acm011924jsd", "acm011925jsd", "acm011926jsd", "acm011927jsd", "acm011928jsd", "acm011929jsd", "acm011930jsd", "acm011931jsd", "acm011932jsd", "acm011933jsd", "acm011934jsd", "acm011935jsd" ] + }, + "acm011937jsd" : { + "type" : "ControlElement", + "id" : "acm011937jsd", + "name" : "ResponseBodyAndCode" + }, + "acm011938jsd" : { + "type" : "ClassUnit", + "id" : "acm011938jsd", + "name" : "ResponseBodyAndCode", + "compilationUnitId" : "acm011888jsd", + "parentDatatypeId" : "acm011936jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011937jsd" ] + }, + "acm011939jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011939jsd", + "name" : "AssertHelper", + "parentId" : "acm011890jsd", + "content" : [ "acm011947jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011940jsd" : { + "type" : "CodePackage", + "id" : "acm011940jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011941jsd" ] + }, + "acm011941jsd" : { + "type" : "CodePackage", + "id" : "acm011941jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm011939jsd" ] + }, + "acm011942jsd" : { + "type" : "ControlElement", + "id" : "acm011942jsd", + "name" : "AssertHelper" + }, + "acm011943jsd" : { + "type" : "ControlElement", + "id" : "acm011943jsd", + "name" : "assertInstantIsNow" + }, + "acm011944jsd" : { + "type" : "ControlElement", + "id" : "acm011944jsd", + "name" : "assertInstantWithinRange" + }, + "acm011945jsd" : { + "type" : "ControlElement", + "id" : "acm011945jsd", + "name" : "assertContains" + }, + "acm011946jsd" : { + "type" : "ControlElement", + "id" : "acm011946jsd", + "name" : "assertSameContentIgnoreOrder" + }, + "acm011947jsd" : { + "type" : "ClassUnit", + "id" : "acm011947jsd", + "name" : "AssertHelper", + "compilationUnitId" : "acm011939jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011942jsd", "acm011943jsd", "acm011944jsd", "acm011945jsd", "acm011946jsd" ] + }, + "acm011948jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011948jsd", + "name" : "AssertHelperTest", + "parentId" : "acm011890jsd", + "content" : [ "acm011952jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011949jsd" : { + "type" : "CodePackage", + "id" : "acm011949jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011950jsd" ] + }, + "acm011950jsd" : { + "type" : "CodePackage", + "id" : "acm011950jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm011948jsd" ] + }, + "acm011951jsd" : { + "type" : "ControlElement", + "id" : "acm011951jsd", + "name" : "testAssertContains" + }, + "acm011952jsd" : { + "type" : "ClassUnit", + "id" : "acm011952jsd", + "name" : "AssertHelperTest", + "compilationUnitId" : "acm011948jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011951jsd" ] + }, + "acm011953jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011953jsd", + "name" : "BaseTestCase", + "parentId" : "acm011890jsd", + "content" : [ "acm011989jsd", "acm011991jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011954jsd" : { + "type" : "CodePackage", + "id" : "acm011954jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011955jsd" ] + }, + "acm011955jsd" : { + "type" : "CodePackage", + "id" : "acm011955jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm011953jsd" ] + }, + "acm011956jsd" : { + "type" : "ControlElement", + "id" : "acm011956jsd", + "name" : "______TS" + }, + "acm011957jsd" : { + "type" : "ControlElement", + "id" : "acm011957jsd", + "name" : "printTestClassHeader" + }, + "acm011958jsd" : { + "type" : "ControlElement", + "id" : "acm011958jsd", + "name" : "printTestClassFooter" + }, + "acm011959jsd" : { + "type" : "ControlElement", + "id" : "acm011959jsd", + "name" : "print" + }, + "acm011960jsd" : { + "type" : "ControlElement", + "id" : "acm011960jsd", + "name" : "getTestDataFolder" + }, + "acm011961jsd" : { + "type" : "ControlElement", + "id" : "acm011961jsd", + "name" : "getTypicalDataBundle" + }, + "acm011962jsd" : { + "type" : "ControlElement", + "id" : "acm011962jsd", + "name" : "loadDataBundle" + }, + "acm011963jsd" : { + "type" : "ControlElement", + "id" : "acm011963jsd", + "name" : "populateQuestionAndResponseIds" + }, + "acm011964jsd" : { + "type" : "ControlElement", + "id" : "acm011964jsd", + "name" : "invokeMethod" + }, + "acm011965jsd" : { + "type" : "ControlElement", + "id" : "acm011965jsd", + "name" : "getPopulatedErrorMessage" + }, + "acm011966jsd" : { + "type" : "ControlElement", + "id" : "acm011966jsd", + "name" : "getPopulatedErrorMessage" + }, + "acm011967jsd" : { + "type" : "ControlElement", + "id" : "acm011967jsd", + "name" : "getPopulatedEmptyStringErrorMessage" + }, + "acm011968jsd" : { + "type" : "ControlElement", + "id" : "acm011968jsd", + "name" : "assertTrue" + }, + "acm011969jsd" : { + "type" : "ControlElement", + "id" : "acm011969jsd", + "name" : "assertTrue" + }, + "acm011970jsd" : { + "type" : "ControlElement", + "id" : "acm011970jsd", + "name" : "assertFalse" + }, + "acm011971jsd" : { + "type" : "ControlElement", + "id" : "acm011971jsd", + "name" : "assertFalse" + }, + "acm011972jsd" : { + "type" : "ControlElement", + "id" : "acm011972jsd", + "name" : "assertEquals" + }, + "acm011973jsd" : { + "type" : "ControlElement", + "id" : "acm011973jsd", + "name" : "assertEquals" + }, + "acm011974jsd" : { + "type" : "ControlElement", + "id" : "acm011974jsd", + "name" : "assertEquals" + }, + "acm011975jsd" : { + "type" : "ControlElement", + "id" : "acm011975jsd", + "name" : "assertEquals" + }, + "acm011976jsd" : { + "type" : "ControlElement", + "id" : "acm011976jsd", + "name" : "assertEquals" + }, + "acm011977jsd" : { + "type" : "ControlElement", + "id" : "acm011977jsd", + "name" : "assertEquals" + }, + "acm011978jsd" : { + "type" : "ControlElement", + "id" : "acm011978jsd", + "name" : "assertArrayEquals" + }, + "acm011979jsd" : { + "type" : "ControlElement", + "id" : "acm011979jsd", + "name" : "assertNotEquals" + }, + "acm011980jsd" : { + "type" : "ControlElement", + "id" : "acm011980jsd", + "name" : "assertNotSame" + }, + "acm011981jsd" : { + "type" : "ControlElement", + "id" : "acm011981jsd", + "name" : "assertNull" + }, + "acm011982jsd" : { + "type" : "ControlElement", + "id" : "acm011982jsd", + "name" : "assertNull" + }, + "acm011983jsd" : { + "type" : "ControlElement", + "id" : "acm011983jsd", + "name" : "assertNotNull" + }, + "acm011984jsd" : { + "type" : "ControlElement", + "id" : "acm011984jsd", + "name" : "assertNotNull" + }, + "acm011985jsd" : { + "type" : "ControlElement", + "id" : "acm011985jsd", + "name" : "fail" + }, + "acm011986jsd" : { + "type" : "ControlElement", + "id" : "acm011986jsd", + "name" : "assertThrows" + }, + "acm011987jsd" : { + "type" : "ControlElement", + "id" : "acm011987jsd", + "name" : "getCanonicalName" + }, + "acm011988jsd" : { + "type" : "ControlElement", + "id" : "acm011988jsd", + "name" : "execute" + }, + "acm011989jsd" : { + "type" : "ClassUnit", + "id" : "acm011989jsd", + "name" : "BaseTestCase", + "compilationUnitId" : "acm011953jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm006339jsd", "acm011991jsd" ], + "content" : [ "acm011956jsd", "acm011957jsd", "acm011958jsd", "acm011959jsd", "acm011960jsd", "acm011961jsd", "acm011962jsd", "acm011963jsd", "acm011964jsd", "acm011965jsd", "acm011966jsd", "acm011967jsd", "acm011968jsd", "acm011969jsd", "acm011970jsd", "acm011971jsd", "acm011972jsd", "acm011973jsd", "acm011974jsd", "acm011975jsd", "acm011976jsd", "acm011977jsd", "acm011978jsd", "acm011979jsd", "acm011980jsd", "acm011981jsd", "acm011982jsd", "acm011983jsd", "acm011984jsd", "acm011985jsd", "acm011986jsd", "acm011987jsd", "acm011988jsd" ] + }, + "acm011990jsd" : { + "type" : "ControlElement", + "id" : "acm011990jsd", + "name" : "execute" + }, + "acm011991jsd" : { + "type" : "InterfaceUnit", + "id" : "acm011991jsd", + "name" : "Executable", + "compilationUnitId" : "acm011953jsd", + "parentDatatypeId" : "acm011989jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm011990jsd" ] + }, + "acm011992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm011992jsd", + "name" : "BaseTestCaseWithDatabaseAccess", + "parentId" : "acm011890jsd", + "content" : [ "acm012024jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm011993jsd" : { + "type" : "CodePackage", + "id" : "acm011993jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm011994jsd" ] + }, + "acm011994jsd" : { + "type" : "CodePackage", + "id" : "acm011994jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm011992jsd" ] + }, + "acm011995jsd" : { + "type" : "ControlElement", + "id" : "acm011995jsd", + "name" : "verifyPresentInDatabase" + }, + "acm011996jsd" : { + "type" : "ControlElement", + "id" : "acm011996jsd", + "name" : "verifyPresentInDatabase" + }, + "acm011997jsd" : { + "type" : "ControlElement", + "id" : "acm011997jsd", + "name" : "getEntity" + }, + "acm011998jsd" : { + "type" : "ControlElement", + "id" : "acm011998jsd", + "name" : "verifyAbsentInDatabase" + }, + "acm011999jsd" : { + "type" : "ControlElement", + "id" : "acm011999jsd", + "name" : "verifyEquals" + }, + "acm012000jsd" : { + "type" : "ControlElement", + "id" : "acm012000jsd", + "name" : "getAccount" + }, + "acm012001jsd" : { + "type" : "ControlElement", + "id" : "acm012001jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012002jsd" : { + "type" : "ControlElement", + "id" : "acm012002jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012003jsd" : { + "type" : "ControlElement", + "id" : "acm012003jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012004jsd" : { + "type" : "ControlElement", + "id" : "acm012004jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012005jsd" : { + "type" : "ControlElement", + "id" : "acm012005jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012006jsd" : { + "type" : "ControlElement", + "id" : "acm012006jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012007jsd" : { + "type" : "ControlElement", + "id" : "acm012007jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012008jsd" : { + "type" : "ControlElement", + "id" : "acm012008jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012009jsd" : { + "type" : "ControlElement", + "id" : "acm012009jsd", + "name" : "equalizeIrrelevantData" + }, + "acm012010jsd" : { + "type" : "ControlElement", + "id" : "acm012010jsd", + "name" : "getCourse" + }, + "acm012011jsd" : { + "type" : "ControlElement", + "id" : "acm012011jsd", + "name" : "getFeedbackQuestion" + }, + "acm012012jsd" : { + "type" : "ControlElement", + "id" : "acm012012jsd", + "name" : "getFeedbackResponseComment" + }, + "acm012013jsd" : { + "type" : "ControlElement", + "id" : "acm012013jsd", + "name" : "getFeedbackResponse" + }, + "acm012014jsd" : { + "type" : "ControlElement", + "id" : "acm012014jsd", + "name" : "getFeedbackSession" + }, + "acm012015jsd" : { + "type" : "ControlElement", + "id" : "acm012015jsd", + "name" : "getInstructor" + }, + "acm012016jsd" : { + "type" : "ControlElement", + "id" : "acm012016jsd", + "name" : "getStudent" + }, + "acm012017jsd" : { + "type" : "ControlElement", + "id" : "acm012017jsd", + "name" : "getAccountRequest" + }, + "acm012018jsd" : { + "type" : "ControlElement", + "id" : "acm012018jsd", + "name" : "getDeadlineExtension" + }, + "acm012019jsd" : { + "type" : "ControlElement", + "id" : "acm012019jsd", + "name" : "getNotification" + }, + "acm012020jsd" : { + "type" : "ControlElement", + "id" : "acm012020jsd", + "name" : "removeAndRestoreDataBundle" + }, + "acm012021jsd" : { + "type" : "ControlElement", + "id" : "acm012021jsd", + "name" : "doRemoveAndRestoreDataBundle" + }, + "acm012022jsd" : { + "type" : "ControlElement", + "id" : "acm012022jsd", + "name" : "putDocuments" + }, + "acm012023jsd" : { + "type" : "ControlElement", + "id" : "acm012023jsd", + "name" : "doPutDocuments" + }, + "acm012024jsd" : { + "type" : "ClassUnit", + "id" : "acm012024jsd", + "name" : "BaseTestCaseWithDatabaseAccess", + "compilationUnitId" : "acm011992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004706jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd" ], + "content" : [ "acm011995jsd", "acm011996jsd", "acm011997jsd", "acm011998jsd", "acm011999jsd", "acm012000jsd", "acm012001jsd", "acm012002jsd", "acm012003jsd", "acm012004jsd", "acm012005jsd", "acm012006jsd", "acm012007jsd", "acm012008jsd", "acm012009jsd", "acm012010jsd", "acm012011jsd", "acm012012jsd", "acm012013jsd", "acm012014jsd", "acm012015jsd", "acm012016jsd", "acm012017jsd", "acm012018jsd", "acm012019jsd", "acm012020jsd", "acm012021jsd", "acm012022jsd", "acm012023jsd" ] + }, + "acm012025jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012025jsd", + "name" : "BaseTestCaseWithLocalDatabaseAccess", + "parentId" : "acm011890jsd", + "content" : [ "acm012047jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012026jsd" : { + "type" : "CodePackage", + "id" : "acm012026jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012027jsd" ] + }, + "acm012027jsd" : { + "type" : "CodePackage", + "id" : "acm012027jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012025jsd" ] + }, + "acm012028jsd" : { + "type" : "ControlElement", + "id" : "acm012028jsd", + "name" : "setupDbLayer" + }, + "acm012029jsd" : { + "type" : "ControlElement", + "id" : "acm012029jsd", + "name" : "setupObjectify" + }, + "acm012030jsd" : { + "type" : "ControlElement", + "id" : "acm012030jsd", + "name" : "tearDownObjectify" + }, + "acm012031jsd" : { + "type" : "ControlElement", + "id" : "acm012031jsd", + "name" : "resetDbLayer" + }, + "acm012032jsd" : { + "type" : "ControlElement", + "id" : "acm012032jsd", + "name" : "tearDownLocalDatastoreHelper" + }, + "acm012033jsd" : { + "type" : "ControlElement", + "id" : "acm012033jsd", + "name" : "getAccount" + }, + "acm012034jsd" : { + "type" : "ControlElement", + "id" : "acm012034jsd", + "name" : "getCourse" + }, + "acm012035jsd" : { + "type" : "ControlElement", + "id" : "acm012035jsd", + "name" : "getFeedbackQuestion" + }, + "acm012036jsd" : { + "type" : "ControlElement", + "id" : "acm012036jsd", + "name" : "getFeedbackResponseComment" + }, + "acm012037jsd" : { + "type" : "ControlElement", + "id" : "acm012037jsd", + "name" : "getFeedbackResponse" + }, + "acm012038jsd" : { + "type" : "ControlElement", + "id" : "acm012038jsd", + "name" : "getFeedbackSession" + }, + "acm012039jsd" : { + "type" : "ControlElement", + "id" : "acm012039jsd", + "name" : "getInstructor" + }, + "acm012040jsd" : { + "type" : "ControlElement", + "id" : "acm012040jsd", + "name" : "getStudent" + }, + "acm012041jsd" : { + "type" : "ControlElement", + "id" : "acm012041jsd", + "name" : "getAccountRequest" + }, + "acm012042jsd" : { + "type" : "ControlElement", + "id" : "acm012042jsd", + "name" : "getDeadlineExtension" + }, + "acm012043jsd" : { + "type" : "ControlElement", + "id" : "acm012043jsd", + "name" : "getNotification" + }, + "acm012044jsd" : { + "type" : "ControlElement", + "id" : "acm012044jsd", + "name" : "removeAndRestoreTypicalDataBundle" + }, + "acm012045jsd" : { + "type" : "ControlElement", + "id" : "acm012045jsd", + "name" : "doRemoveAndRestoreDataBundle" + }, + "acm012046jsd" : { + "type" : "ControlElement", + "id" : "acm012046jsd", + "name" : "doPutDocuments" + }, + "acm012047jsd" : { + "type" : "ClassUnit", + "id" : "acm012047jsd", + "name" : "BaseTestCaseWithLocalDatabaseAccess", + "compilationUnitId" : "acm012025jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012024jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004486jsd", "acm004539jsd", "acm004598jsd", "acm004662jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005329jsd", "acm005412jsd", "acm008117jsd", "acm008135jsd", "acm008196jsd", "acm011242jsd" ], + "content" : [ "acm012028jsd", "acm012029jsd", "acm012030jsd", "acm012031jsd", "acm012032jsd", "acm012033jsd", "acm012034jsd", "acm012035jsd", "acm012036jsd", "acm012037jsd", "acm012038jsd", "acm012039jsd", "acm012040jsd", "acm012041jsd", "acm012042jsd", "acm012043jsd", "acm012044jsd", "acm012045jsd", "acm012046jsd" ] + }, + "acm012048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012048jsd", + "name" : "EmailChecker", + "parentId" : "acm011890jsd", + "content" : [ "acm012061jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012049jsd" : { + "type" : "CodePackage", + "id" : "acm012049jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012050jsd" ] + }, + "acm012050jsd" : { + "type" : "CodePackage", + "id" : "acm012050jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012048jsd" ] + }, + "acm012051jsd" : { + "type" : "ControlElement", + "id" : "acm012051jsd", + "name" : "EmailChecker" + }, + "acm012052jsd" : { + "type" : "ControlElement", + "id" : "acm012052jsd", + "name" : "verifyEmailContent" + }, + "acm012053jsd" : { + "type" : "ControlElement", + "id" : "acm012053jsd", + "name" : "updateSnapshot" + }, + "acm012054jsd" : { + "type" : "ControlElement", + "id" : "acm012054jsd", + "name" : "regenerateEmailFile" + }, + "acm012055jsd" : { + "type" : "ControlElement", + "id" : "acm012055jsd", + "name" : "injectTestProperties" + }, + "acm012056jsd" : { + "type" : "ControlElement", + "id" : "acm012056jsd", + "name" : "getAppUrl" + }, + "acm012057jsd" : { + "type" : "ControlElement", + "id" : "acm012057jsd", + "name" : "processEmailForComparison" + }, + "acm012058jsd" : { + "type" : "ControlElement", + "id" : "acm012058jsd", + "name" : "replaceUnpredictableValuesWithPlaceholders" + }, + "acm012059jsd" : { + "type" : "ControlElement", + "id" : "acm012059jsd", + "name" : "replaceInjectedValuesWithPlaceholders" + }, + "acm012060jsd" : { + "type" : "ControlElement", + "id" : "acm012060jsd", + "name" : "processEmailForExpectedEmailRegeneration" + }, + "acm012061jsd" : { + "type" : "ClassUnit", + "id" : "acm012061jsd", + "name" : "EmailChecker", + "compilationUnitId" : "acm012048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012051jsd", "acm012052jsd", "acm012053jsd", "acm012054jsd", "acm012055jsd", "acm012056jsd", "acm012057jsd", "acm012058jsd", "acm012059jsd", "acm012060jsd" ] + }, + "acm012062jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012062jsd", + "name" : "EmailCheckerTest", + "parentId" : "acm011890jsd", + "content" : [ "acm012068jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012063jsd" : { + "type" : "CodePackage", + "id" : "acm012063jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012064jsd" ] + }, + "acm012064jsd" : { + "type" : "CodePackage", + "id" : "acm012064jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012062jsd" ] + }, + "acm012065jsd" : { + "type" : "ControlElement", + "id" : "acm012065jsd", + "name" : "testEmailContentChecking" + }, + "acm012066jsd" : { + "type" : "ControlElement", + "id" : "acm012066jsd", + "name" : "injectContextDependentValuesForTest" + }, + "acm012067jsd" : { + "type" : "ControlElement", + "id" : "acm012067jsd", + "name" : "getAppUrl" + }, + "acm012068jsd" : { + "type" : "ClassUnit", + "id" : "acm012068jsd", + "name" : "EmailCheckerTest", + "compilationUnitId" : "acm012062jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012065jsd", "acm012066jsd", "acm012067jsd" ] + }, + "acm012069jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012069jsd", + "name" : "FileHelper", + "parentId" : "acm011890jsd", + "content" : [ "acm012077jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012070jsd" : { + "type" : "CodePackage", + "id" : "acm012070jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012071jsd" ] + }, + "acm012071jsd" : { + "type" : "CodePackage", + "id" : "acm012071jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012069jsd" ] + }, + "acm012072jsd" : { + "type" : "ControlElement", + "id" : "acm012072jsd", + "name" : "FileHelper" + }, + "acm012073jsd" : { + "type" : "ControlElement", + "id" : "acm012073jsd", + "name" : "readFile" + }, + "acm012074jsd" : { + "type" : "ControlElement", + "id" : "acm012074jsd", + "name" : "readFileAsBytes" + }, + "acm012075jsd" : { + "type" : "ControlElement", + "id" : "acm012075jsd", + "name" : "saveFile" + }, + "acm012076jsd" : { + "type" : "ControlElement", + "id" : "acm012076jsd", + "name" : "deleteFile" + }, + "acm012077jsd" : { + "type" : "ClassUnit", + "id" : "acm012077jsd", + "name" : "FileHelper", + "compilationUnitId" : "acm012069jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012072jsd", "acm012073jsd", "acm012074jsd", "acm012075jsd", "acm012076jsd" ] + }, + "acm012078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012078jsd", + "name" : "MockFilterChain", + "parentId" : "acm011890jsd", + "content" : [ "acm012082jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012079jsd" : { + "type" : "CodePackage", + "id" : "acm012079jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012080jsd" ] + }, + "acm012080jsd" : { + "type" : "CodePackage", + "id" : "acm012080jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012078jsd" ] + }, + "acm012081jsd" : { + "type" : "ControlElement", + "id" : "acm012081jsd", + "name" : "doFilter" + }, + "acm012082jsd" : { + "type" : "ClassUnit", + "id" : "acm012082jsd", + "name" : "MockFilterChain", + "compilationUnitId" : "acm012078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012081jsd" ] + }, + "acm012083jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012083jsd", + "name" : "MockHttpServletRequest", + "parentId" : "acm011890jsd", + "content" : [ "acm012182jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012084jsd" : { + "type" : "CodePackage", + "id" : "acm012084jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012085jsd" ] + }, + "acm012085jsd" : { + "type" : "CodePackage", + "id" : "acm012085jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012083jsd" ] + }, + "acm012086jsd" : { + "type" : "ControlElement", + "id" : "acm012086jsd", + "name" : "MockHttpServletRequest" + }, + "acm012087jsd" : { + "type" : "ControlElement", + "id" : "acm012087jsd", + "name" : "MockHttpServletRequest" + }, + "acm012088jsd" : { + "type" : "ControlElement", + "id" : "acm012088jsd", + "name" : "getAuthType" + }, + "acm012089jsd" : { + "type" : "ControlElement", + "id" : "acm012089jsd", + "name" : "getCookies" + }, + "acm012090jsd" : { + "type" : "ControlElement", + "id" : "acm012090jsd", + "name" : "addCookie" + }, + "acm012091jsd" : { + "type" : "ControlElement", + "id" : "acm012091jsd", + "name" : "getDateHeader" + }, + "acm012092jsd" : { + "type" : "ControlElement", + "id" : "acm012092jsd", + "name" : "getHeader" + }, + "acm012093jsd" : { + "type" : "ControlElement", + "id" : "acm012093jsd", + "name" : "getHeaders" + }, + "acm012094jsd" : { + "type" : "ControlElement", + "id" : "acm012094jsd", + "name" : "getHeaderNames" + }, + "acm012095jsd" : { + "type" : "ControlElement", + "id" : "acm012095jsd", + "name" : "addHeader" + }, + "acm012096jsd" : { + "type" : "ControlElement", + "id" : "acm012096jsd", + "name" : "getIntHeader" + }, + "acm012097jsd" : { + "type" : "ControlElement", + "id" : "acm012097jsd", + "name" : "getMethod" + }, + "acm012098jsd" : { + "type" : "ControlElement", + "id" : "acm012098jsd", + "name" : "getPathInfo" + }, + "acm012099jsd" : { + "type" : "ControlElement", + "id" : "acm012099jsd", + "name" : "getPathTranslated" + }, + "acm012100jsd" : { + "type" : "ControlElement", + "id" : "acm012100jsd", + "name" : "getContextPath" + }, + "acm012101jsd" : { + "type" : "ControlElement", + "id" : "acm012101jsd", + "name" : "getQueryString" + }, + "acm012102jsd" : { + "type" : "ControlElement", + "id" : "acm012102jsd", + "name" : "getRemoteUser" + }, + "acm012103jsd" : { + "type" : "ControlElement", + "id" : "acm012103jsd", + "name" : "isUserInRole" + }, + "acm012104jsd" : { + "type" : "ControlElement", + "id" : "acm012104jsd", + "name" : "getUserPrincipal" + }, + "acm012105jsd" : { + "type" : "ControlElement", + "id" : "acm012105jsd", + "name" : "getRequestedSessionId" + }, + "acm012106jsd" : { + "type" : "ControlElement", + "id" : "acm012106jsd", + "name" : "setRequestedSessionId" + }, + "acm012107jsd" : { + "type" : "ControlElement", + "id" : "acm012107jsd", + "name" : "getRequestURI" + }, + "acm012108jsd" : { + "type" : "ControlElement", + "id" : "acm012108jsd", + "name" : "getRequestURL" + }, + "acm012109jsd" : { + "type" : "ControlElement", + "id" : "acm012109jsd", + "name" : "getServletPath" + }, + "acm012110jsd" : { + "type" : "ControlElement", + "id" : "acm012110jsd", + "name" : "getSession" + }, + "acm012111jsd" : { + "type" : "ControlElement", + "id" : "acm012111jsd", + "name" : "getSession" + }, + "acm012112jsd" : { + "type" : "ControlElement", + "id" : "acm012112jsd", + "name" : "getCreationTime" + }, + "acm012113jsd" : { + "type" : "ControlElement", + "id" : "acm012113jsd", + "name" : "getId" + }, + "acm012114jsd" : { + "type" : "ControlElement", + "id" : "acm012114jsd", + "name" : "getLastAccessedTime" + }, + "acm012115jsd" : { + "type" : "ControlElement", + "id" : "acm012115jsd", + "name" : "getServletContext" + }, + "acm012116jsd" : { + "type" : "ControlElement", + "id" : "acm012116jsd", + "name" : "setMaxInactiveInterval" + }, + "acm012117jsd" : { + "type" : "ControlElement", + "id" : "acm012117jsd", + "name" : "getMaxInactiveInterval" + }, + "acm012118jsd" : { + "type" : "ControlElement", + "id" : "acm012118jsd", + "name" : "getSessionContext" + }, + "acm012119jsd" : { + "type" : "ControlElement", + "id" : "acm012119jsd", + "name" : "getAttribute" + }, + "acm012120jsd" : { + "type" : "ControlElement", + "id" : "acm012120jsd", + "name" : "getValue" + }, + "acm012121jsd" : { + "type" : "ControlElement", + "id" : "acm012121jsd", + "name" : "getAttributeNames" + }, + "acm012122jsd" : { + "type" : "ControlElement", + "id" : "acm012122jsd", + "name" : "getValueNames" + }, + "acm012123jsd" : { + "type" : "ControlElement", + "id" : "acm012123jsd", + "name" : "setAttribute" + }, + "acm012124jsd" : { + "type" : "ControlElement", + "id" : "acm012124jsd", + "name" : "putValue" + }, + "acm012125jsd" : { + "type" : "ControlElement", + "id" : "acm012125jsd", + "name" : "removeAttribute" + }, + "acm012126jsd" : { + "type" : "ControlElement", + "id" : "acm012126jsd", + "name" : "removeValue" + }, + "acm012127jsd" : { + "type" : "ControlElement", + "id" : "acm012127jsd", + "name" : "invalidate" + }, + "acm012128jsd" : { + "type" : "ControlElement", + "id" : "acm012128jsd", + "name" : "isNew" + }, + "acm012129jsd" : { + "type" : "ControlElement", + "id" : "acm012129jsd", + "name" : "changeSessionId" + }, + "acm012130jsd" : { + "type" : "ControlElement", + "id" : "acm012130jsd", + "name" : "isRequestedSessionIdValid" + }, + "acm012131jsd" : { + "type" : "ControlElement", + "id" : "acm012131jsd", + "name" : "isRequestedSessionIdFromCookie" + }, + "acm012132jsd" : { + "type" : "ControlElement", + "id" : "acm012132jsd", + "name" : "isRequestedSessionIdFromURL" + }, + "acm012133jsd" : { + "type" : "ControlElement", + "id" : "acm012133jsd", + "name" : "isRequestedSessionIdFromUrl" + }, + "acm012134jsd" : { + "type" : "ControlElement", + "id" : "acm012134jsd", + "name" : "authenticate" + }, + "acm012135jsd" : { + "type" : "ControlElement", + "id" : "acm012135jsd", + "name" : "login" + }, + "acm012136jsd" : { + "type" : "ControlElement", + "id" : "acm012136jsd", + "name" : "logout" + }, + "acm012137jsd" : { + "type" : "ControlElement", + "id" : "acm012137jsd", + "name" : "getParts" + }, + "acm012138jsd" : { + "type" : "ControlElement", + "id" : "acm012138jsd", + "name" : "getPart" + }, + "acm012139jsd" : { + "type" : "ControlElement", + "id" : "acm012139jsd", + "name" : "addPart" + }, + "acm012140jsd" : { + "type" : "ControlElement", + "id" : "acm012140jsd", + "name" : "upgrade" + }, + "acm012141jsd" : { + "type" : "ControlElement", + "id" : "acm012141jsd", + "name" : "getAttribute" + }, + "acm012142jsd" : { + "type" : "ControlElement", + "id" : "acm012142jsd", + "name" : "getAttributeNames" + }, + "acm012143jsd" : { + "type" : "ControlElement", + "id" : "acm012143jsd", + "name" : "getCharacterEncoding" + }, + "acm012144jsd" : { + "type" : "ControlElement", + "id" : "acm012144jsd", + "name" : "setCharacterEncoding" + }, + "acm012145jsd" : { + "type" : "ControlElement", + "id" : "acm012145jsd", + "name" : "getContentLength" + }, + "acm012146jsd" : { + "type" : "ControlElement", + "id" : "acm012146jsd", + "name" : "getContentLengthLong" + }, + "acm012147jsd" : { + "type" : "ControlElement", + "id" : "acm012147jsd", + "name" : "getContentType" + }, + "acm012148jsd" : { + "type" : "ControlElement", + "id" : "acm012148jsd", + "name" : "getInputStream" + }, + "acm012149jsd" : { + "type" : "ControlElement", + "id" : "acm012149jsd", + "name" : "getParameter" + }, + "acm012150jsd" : { + "type" : "ControlElement", + "id" : "acm012150jsd", + "name" : "getParameterNames" + }, + "acm012151jsd" : { + "type" : "ControlElement", + "id" : "acm012151jsd", + "name" : "getParameterValues" + }, + "acm012152jsd" : { + "type" : "ControlElement", + "id" : "acm012152jsd", + "name" : "getParameterMap" + }, + "acm012153jsd" : { + "type" : "ControlElement", + "id" : "acm012153jsd", + "name" : "addParam" + }, + "acm012154jsd" : { + "type" : "ControlElement", + "id" : "acm012154jsd", + "name" : "getProtocol" + }, + "acm012155jsd" : { + "type" : "ControlElement", + "id" : "acm012155jsd", + "name" : "getScheme" + }, + "acm012156jsd" : { + "type" : "ControlElement", + "id" : "acm012156jsd", + "name" : "getServerName" + }, + "acm012157jsd" : { + "type" : "ControlElement", + "id" : "acm012157jsd", + "name" : "getServerPort" + }, + "acm012158jsd" : { + "type" : "ControlElement", + "id" : "acm012158jsd", + "name" : "getReader" + }, + "acm012159jsd" : { + "type" : "ControlElement", + "id" : "acm012159jsd", + "name" : "setBody" + }, + "acm012160jsd" : { + "type" : "ControlElement", + "id" : "acm012160jsd", + "name" : "getRemoteAddr" + }, + "acm012161jsd" : { + "type" : "ControlElement", + "id" : "acm012161jsd", + "name" : "getRemoteHost" + }, + "acm012162jsd" : { + "type" : "ControlElement", + "id" : "acm012162jsd", + "name" : "setAttribute" + }, + "acm012163jsd" : { + "type" : "ControlElement", + "id" : "acm012163jsd", + "name" : "removeAttribute" + }, + "acm012164jsd" : { + "type" : "ControlElement", + "id" : "acm012164jsd", + "name" : "getLocale" + }, + "acm012165jsd" : { + "type" : "ControlElement", + "id" : "acm012165jsd", + "name" : "getLocales" + }, + "acm012166jsd" : { + "type" : "ControlElement", + "id" : "acm012166jsd", + "name" : "isSecure" + }, + "acm012167jsd" : { + "type" : "ControlElement", + "id" : "acm012167jsd", + "name" : "getRequestDispatcher" + }, + "acm012168jsd" : { + "type" : "ControlElement", + "id" : "acm012168jsd", + "name" : "forward" + }, + "acm012169jsd" : { + "type" : "ControlElement", + "id" : "acm012169jsd", + "name" : "include" + }, + "acm012170jsd" : { + "type" : "ControlElement", + "id" : "acm012170jsd", + "name" : "getRealPath" + }, + "acm012171jsd" : { + "type" : "ControlElement", + "id" : "acm012171jsd", + "name" : "getRemotePort" + }, + "acm012172jsd" : { + "type" : "ControlElement", + "id" : "acm012172jsd", + "name" : "getLocalName" + }, + "acm012173jsd" : { + "type" : "ControlElement", + "id" : "acm012173jsd", + "name" : "getLocalAddr" + }, + "acm012174jsd" : { + "type" : "ControlElement", + "id" : "acm012174jsd", + "name" : "getLocalPort" + }, + "acm012175jsd" : { + "type" : "ControlElement", + "id" : "acm012175jsd", + "name" : "getServletContext" + }, + "acm012176jsd" : { + "type" : "ControlElement", + "id" : "acm012176jsd", + "name" : "startAsync" + }, + "acm012177jsd" : { + "type" : "ControlElement", + "id" : "acm012177jsd", + "name" : "startAsync" + }, + "acm012178jsd" : { + "type" : "ControlElement", + "id" : "acm012178jsd", + "name" : "isAsyncStarted" + }, + "acm012179jsd" : { + "type" : "ControlElement", + "id" : "acm012179jsd", + "name" : "isAsyncSupported" + }, + "acm012180jsd" : { + "type" : "ControlElement", + "id" : "acm012180jsd", + "name" : "getAsyncContext" + }, + "acm012181jsd" : { + "type" : "ControlElement", + "id" : "acm012181jsd", + "name" : "getDispatcherType" + }, + "acm012182jsd" : { + "type" : "ClassUnit", + "id" : "acm012182jsd", + "name" : "MockHttpServletRequest", + "compilationUnitId" : "acm012083jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012086jsd", "acm012087jsd", "acm012088jsd", "acm012089jsd", "acm012090jsd", "acm012091jsd", "acm012092jsd", "acm012093jsd", "acm012094jsd", "acm012095jsd", "acm012096jsd", "acm012097jsd", "acm012098jsd", "acm012099jsd", "acm012100jsd", "acm012101jsd", "acm012102jsd", "acm012103jsd", "acm012104jsd", "acm012105jsd", "acm012106jsd", "acm012107jsd", "acm012108jsd", "acm012109jsd", "acm012110jsd", "acm012111jsd", "acm012112jsd", "acm012113jsd", "acm012114jsd", "acm012115jsd", "acm012116jsd", "acm012117jsd", "acm012118jsd", "acm012119jsd", "acm012120jsd", "acm012121jsd", "acm012122jsd", "acm012123jsd", "acm012124jsd", "acm012125jsd", "acm012126jsd", "acm012127jsd", "acm012128jsd", "acm012129jsd", "acm012130jsd", "acm012131jsd", "acm012132jsd", "acm012133jsd", "acm012134jsd", "acm012135jsd", "acm012136jsd", "acm012137jsd", "acm012138jsd", "acm012139jsd", "acm012140jsd", "acm012141jsd", "acm012142jsd", "acm012143jsd", "acm012144jsd", "acm012145jsd", "acm012146jsd", "acm012147jsd", "acm012148jsd", "acm012149jsd", "acm012150jsd", "acm012151jsd", "acm012152jsd", "acm012153jsd", "acm012154jsd", "acm012155jsd", "acm012156jsd", "acm012157jsd", "acm012158jsd", "acm012159jsd", "acm012160jsd", "acm012161jsd", "acm012162jsd", "acm012163jsd", "acm012164jsd", "acm012165jsd", "acm012166jsd", "acm012167jsd", "acm012168jsd", "acm012169jsd", "acm012170jsd", "acm012171jsd", "acm012172jsd", "acm012173jsd", "acm012174jsd", "acm012175jsd", "acm012176jsd", "acm012177jsd", "acm012178jsd", "acm012179jsd", "acm012180jsd", "acm012181jsd" ] + }, + "acm012183jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012183jsd", + "name" : "MockHttpServletResponse", + "parentId" : "acm011890jsd", + "content" : [ "acm012225jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012184jsd" : { + "type" : "CodePackage", + "id" : "acm012184jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012185jsd" ] + }, + "acm012185jsd" : { + "type" : "CodePackage", + "id" : "acm012185jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012183jsd" ] + }, + "acm012186jsd" : { + "type" : "ControlElement", + "id" : "acm012186jsd", + "name" : "addCookie" + }, + "acm012187jsd" : { + "type" : "ControlElement", + "id" : "acm012187jsd", + "name" : "containsHeader" + }, + "acm012188jsd" : { + "type" : "ControlElement", + "id" : "acm012188jsd", + "name" : "encodeURL" + }, + "acm012189jsd" : { + "type" : "ControlElement", + "id" : "acm012189jsd", + "name" : "encodeRedirectURL" + }, + "acm012190jsd" : { + "type" : "ControlElement", + "id" : "acm012190jsd", + "name" : "encodeUrl" + }, + "acm012191jsd" : { + "type" : "ControlElement", + "id" : "acm012191jsd", + "name" : "encodeRedirectUrl" + }, + "acm012192jsd" : { + "type" : "ControlElement", + "id" : "acm012192jsd", + "name" : "sendError" + }, + "acm012193jsd" : { + "type" : "ControlElement", + "id" : "acm012193jsd", + "name" : "sendError" + }, + "acm012194jsd" : { + "type" : "ControlElement", + "id" : "acm012194jsd", + "name" : "sendRedirect" + }, + "acm012195jsd" : { + "type" : "ControlElement", + "id" : "acm012195jsd", + "name" : "getRedirectUrl" + }, + "acm012196jsd" : { + "type" : "ControlElement", + "id" : "acm012196jsd", + "name" : "setDateHeader" + }, + "acm012197jsd" : { + "type" : "ControlElement", + "id" : "acm012197jsd", + "name" : "addDateHeader" + }, + "acm012198jsd" : { + "type" : "ControlElement", + "id" : "acm012198jsd", + "name" : "setHeader" + }, + "acm012199jsd" : { + "type" : "ControlElement", + "id" : "acm012199jsd", + "name" : "addHeader" + }, + "acm012200jsd" : { + "type" : "ControlElement", + "id" : "acm012200jsd", + "name" : "setIntHeader" + }, + "acm012201jsd" : { + "type" : "ControlElement", + "id" : "acm012201jsd", + "name" : "addIntHeader" + }, + "acm012202jsd" : { + "type" : "ControlElement", + "id" : "acm012202jsd", + "name" : "setStatus" + }, + "acm012203jsd" : { + "type" : "ControlElement", + "id" : "acm012203jsd", + "name" : "setStatus" + }, + "acm012204jsd" : { + "type" : "ControlElement", + "id" : "acm012204jsd", + "name" : "getStatus" + }, + "acm012205jsd" : { + "type" : "ControlElement", + "id" : "acm012205jsd", + "name" : "getHeader" + }, + "acm012206jsd" : { + "type" : "ControlElement", + "id" : "acm012206jsd", + "name" : "getHeaders" + }, + "acm012207jsd" : { + "type" : "ControlElement", + "id" : "acm012207jsd", + "name" : "getHeaderNames" + }, + "acm012208jsd" : { + "type" : "ControlElement", + "id" : "acm012208jsd", + "name" : "getCharacterEncoding" + }, + "acm012209jsd" : { + "type" : "ControlElement", + "id" : "acm012209jsd", + "name" : "getContentType" + }, + "acm012210jsd" : { + "type" : "ControlElement", + "id" : "acm012210jsd", + "name" : "getOutputStream" + }, + "acm012211jsd" : { + "type" : "ControlElement", + "id" : "acm012211jsd", + "name" : "getWriter" + }, + "acm012212jsd" : { + "type" : "ControlElement", + "id" : "acm012212jsd", + "name" : "setCharacterEncoding" + }, + "acm012213jsd" : { + "type" : "ControlElement", + "id" : "acm012213jsd", + "name" : "setContentLength" + }, + "acm012214jsd" : { + "type" : "ControlElement", + "id" : "acm012214jsd", + "name" : "setContentLengthLong" + }, + "acm012215jsd" : { + "type" : "ControlElement", + "id" : "acm012215jsd", + "name" : "setContentType" + }, + "acm012216jsd" : { + "type" : "ControlElement", + "id" : "acm012216jsd", + "name" : "setBufferSize" + }, + "acm012217jsd" : { + "type" : "ControlElement", + "id" : "acm012217jsd", + "name" : "getBufferSize" + }, + "acm012218jsd" : { + "type" : "ControlElement", + "id" : "acm012218jsd", + "name" : "flushBuffer" + }, + "acm012219jsd" : { + "type" : "ControlElement", + "id" : "acm012219jsd", + "name" : "resetBuffer" + }, + "acm012220jsd" : { + "type" : "ControlElement", + "id" : "acm012220jsd", + "name" : "isCommitted" + }, + "acm012221jsd" : { + "type" : "ControlElement", + "id" : "acm012221jsd", + "name" : "reset" + }, + "acm012222jsd" : { + "type" : "ControlElement", + "id" : "acm012222jsd", + "name" : "setLocale" + }, + "acm012223jsd" : { + "type" : "ControlElement", + "id" : "acm012223jsd", + "name" : "getLocale" + }, + "acm012224jsd" : { + "type" : "ControlElement", + "id" : "acm012224jsd", + "name" : "getCookies" + }, + "acm012225jsd" : { + "type" : "ClassUnit", + "id" : "acm012225jsd", + "name" : "MockHttpServletResponse", + "compilationUnitId" : "acm012183jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012186jsd", "acm012187jsd", "acm012188jsd", "acm012189jsd", "acm012190jsd", "acm012191jsd", "acm012192jsd", "acm012193jsd", "acm012194jsd", "acm012195jsd", "acm012196jsd", "acm012197jsd", "acm012198jsd", "acm012199jsd", "acm012200jsd", "acm012201jsd", "acm012202jsd", "acm012203jsd", "acm012204jsd", "acm012205jsd", "acm012206jsd", "acm012207jsd", "acm012208jsd", "acm012209jsd", "acm012210jsd", "acm012211jsd", "acm012212jsd", "acm012213jsd", "acm012214jsd", "acm012215jsd", "acm012216jsd", "acm012217jsd", "acm012218jsd", "acm012219jsd", "acm012220jsd", "acm012221jsd", "acm012222jsd", "acm012223jsd", "acm012224jsd" ] + }, + "acm012226jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012226jsd", + "name" : "TestNgXmlTest", + "parentId" : "acm011890jsd", + "content" : [ "acm012234jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012227jsd" : { + "type" : "CodePackage", + "id" : "acm012227jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012228jsd" ] + }, + "acm012228jsd" : { + "type" : "CodePackage", + "id" : "acm012228jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012226jsd" ] + }, + "acm012229jsd" : { + "type" : "ControlElement", + "id" : "acm012229jsd", + "name" : "checkTestsInTestNg" + }, + "acm012230jsd" : { + "type" : "ControlElement", + "id" : "acm012230jsd", + "name" : "getTestFiles" + }, + "acm012231jsd" : { + "type" : "ControlElement", + "id" : "acm012231jsd", + "name" : "isTestFileIncluded" + }, + "acm012232jsd" : { + "type" : "ControlElement", + "id" : "acm012232jsd", + "name" : "addFilesToTestsRecursively" + }, + "acm012233jsd" : { + "type" : "ControlElement", + "id" : "acm012233jsd", + "name" : "isPackageNameInTestNg" + }, + "acm012234jsd" : { + "type" : "ClassUnit", + "id" : "acm012234jsd", + "name" : "TestNgXmlTest", + "compilationUnitId" : "acm012226jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012229jsd", "acm012230jsd", "acm012231jsd", "acm012232jsd", "acm012233jsd" ] + }, + "acm012235jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012235jsd", + "name" : "TestProperties", + "parentId" : "acm011890jsd", + "content" : [ "acm012240jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012236jsd" : { + "type" : "CodePackage", + "id" : "acm012236jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012237jsd" ] + }, + "acm012237jsd" : { + "type" : "CodePackage", + "id" : "acm012237jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012235jsd" ] + }, + "acm012238jsd" : { + "type" : "ControlElement", + "id" : "acm012238jsd", + "name" : "TestProperties" + }, + "acm012239jsd" : { + "type" : "ControlElement", + "id" : "acm012239jsd", + "name" : "isSearchServiceActive" + }, + "acm012240jsd" : { + "type" : "ClassUnit", + "id" : "acm012240jsd", + "name" : "TestProperties", + "compilationUnitId" : "acm012235jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012238jsd", "acm012239jsd" ] + }, + "acm012241jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012241jsd", + "name" : "TestPropertiesTest", + "parentId" : "acm011890jsd", + "content" : [ "acm012245jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012242jsd" : { + "type" : "CodePackage", + "id" : "acm012242jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012243jsd" ] + }, + "acm012243jsd" : { + "type" : "CodePackage", + "id" : "acm012243jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012241jsd" ] + }, + "acm012244jsd" : { + "type" : "ControlElement", + "id" : "acm012244jsd", + "name" : "testUpdateSnapshotFlag" + }, + "acm012245jsd" : { + "type" : "ClassUnit", + "id" : "acm012245jsd", + "name" : "TestPropertiesTest", + "compilationUnitId" : "acm012241jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012244jsd" ] + }, + "acm012246jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012246jsd", + "name" : "ThreadHelper", + "parentId" : "acm011890jsd", + "content" : [ "acm012251jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012247jsd" : { + "type" : "CodePackage", + "id" : "acm012247jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012248jsd" ] + }, + "acm012248jsd" : { + "type" : "CodePackage", + "id" : "acm012248jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012246jsd" ] + }, + "acm012249jsd" : { + "type" : "ControlElement", + "id" : "acm012249jsd", + "name" : "ThreadHelper" + }, + "acm012250jsd" : { + "type" : "ControlElement", + "id" : "acm012250jsd", + "name" : "waitFor" + }, + "acm012251jsd" : { + "type" : "ClassUnit", + "id" : "acm012251jsd", + "name" : "ThreadHelper", + "compilationUnitId" : "acm012246jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm012249jsd", "acm012250jsd" ] + }, + "acm012252jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012252jsd", + "name" : "package-info", + "parentId" : "acm011890jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "test" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012253jsd" : { + "type" : "CodePackage", + "id" : "acm012253jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012254jsd" ] + }, + "acm012254jsd" : { + "type" : "CodePackage", + "id" : "acm012254jsd", + "name" : "test", + "parentId" : null, + "content" : [ "acm012252jsd" ] + }, + "acm012255jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012255jsd", + "name" : "StudentsEnrollRequestTest", + "parentId" : "acm008993jsd", + "content" : [ "acm012264jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012256jsd" : { + "type" : "CodePackage", + "id" : "acm012256jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012257jsd" ] + }, + "acm012257jsd" : { + "type" : "CodePackage", + "id" : "acm012257jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012258jsd" ] + }, + "acm012258jsd" : { + "type" : "CodePackage", + "id" : "acm012258jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm012255jsd" ] + }, + "acm012259jsd" : { + "type" : "ControlElement", + "id" : "acm012259jsd", + "name" : "testValidate_withValidRequest_shouldPass" + }, + "acm012260jsd" : { + "type" : "ControlElement", + "id" : "acm012260jsd", + "name" : "testValidate_withNullValueInRequest_shouldFail" + }, + "acm012261jsd" : { + "type" : "ControlElement", + "id" : "acm012261jsd", + "name" : "testValidate_withEmptyEnrollList_shouldFail" + }, + "acm012262jsd" : { + "type" : "ControlElement", + "id" : "acm012262jsd", + "name" : "testValidate_withDuplicateEmail_shouldFail" + }, + "acm012263jsd" : { + "type" : "ControlElement", + "id" : "acm012263jsd", + "name" : "getTypicalStudentEnrollRequest" + }, + "acm012264jsd" : { + "type" : "ClassUnit", + "id" : "acm012264jsd", + "name" : "StudentsEnrollRequestTest", + "compilationUnitId" : "acm012255jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009228jsd", "acm009301jsd", "acm009309jsd" ], + "content" : [ "acm012259jsd", "acm012260jsd", "acm012261jsd", "acm012262jsd", "acm012263jsd" ] + }, + "acm012265jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012265jsd", + "name" : "package-info", + "parentId" : "acm008993jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "request" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012266jsd" : { + "type" : "CodePackage", + "id" : "acm012266jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012267jsd" ] + }, + "acm012267jsd" : { + "type" : "CodePackage", + "id" : "acm012267jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012268jsd" ] + }, + "acm012268jsd" : { + "type" : "CodePackage", + "id" : "acm012268jsd", + "name" : "request", + "parentId" : null, + "content" : [ "acm012265jsd" ] + }, + "acm012269jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012269jsd", + "name" : "LegacyUrlMapperTest", + "parentId" : "acm009317jsd", + "content" : [ "acm012275jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012270jsd" : { + "type" : "CodePackage", + "id" : "acm012270jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012271jsd" ] + }, + "acm012271jsd" : { + "type" : "CodePackage", + "id" : "acm012271jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012272jsd" ] + }, + "acm012272jsd" : { + "type" : "CodePackage", + "id" : "acm012272jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm012269jsd" ] + }, + "acm012273jsd" : { + "type" : "ControlElement", + "id" : "acm012273jsd", + "name" : "setupMocks" + }, + "acm012274jsd" : { + "type" : "ControlElement", + "id" : "acm012274jsd", + "name" : "allTests" + }, + "acm012275jsd" : { + "type" : "ClassUnit", + "id" : "acm012275jsd", + "name" : "LegacyUrlMapperTest", + "compilationUnitId" : "acm012269jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009348jsd", "acm012182jsd", "acm012225jsd" ], + "content" : [ "acm012273jsd", "acm012274jsd" ] + }, + "acm012276jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012276jsd", + "name" : "OriginCheckFilterTest", + "parentId" : "acm009317jsd", + "content" : [ "acm012282jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012277jsd" : { + "type" : "CodePackage", + "id" : "acm012277jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012278jsd" ] + }, + "acm012278jsd" : { + "type" : "CodePackage", + "id" : "acm012278jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012279jsd" ] + }, + "acm012279jsd" : { + "type" : "CodePackage", + "id" : "acm012279jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm012276jsd" ] + }, + "acm012280jsd" : { + "type" : "ControlElement", + "id" : "acm012280jsd", + "name" : "setupMocks" + }, + "acm012281jsd" : { + "type" : "ControlElement", + "id" : "acm012281jsd", + "name" : "allTests" + }, + "acm012282jsd" : { + "type" : "ClassUnit", + "id" : "acm012282jsd", + "name" : "OriginCheckFilterTest", + "compilationUnitId" : "acm012276jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009383jsd", "acm012082jsd", "acm012182jsd", "acm012225jsd" ], + "content" : [ "acm012280jsd", "acm012281jsd" ] + }, + "acm012283jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012283jsd", + "name" : "WebApiServletTest", + "parentId" : "acm009317jsd", + "content" : [ "acm012291jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012284jsd" : { + "type" : "CodePackage", + "id" : "acm012284jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012285jsd" ] + }, + "acm012285jsd" : { + "type" : "CodePackage", + "id" : "acm012285jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012286jsd" ] + }, + "acm012286jsd" : { + "type" : "CodePackage", + "id" : "acm012286jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm012283jsd" ] + }, + "acm012287jsd" : { + "type" : "ControlElement", + "id" : "acm012287jsd", + "name" : "setupMocks" + }, + "acm012288jsd" : { + "type" : "ControlElement", + "id" : "acm012288jsd", + "name" : "setupMocksFromGaeQueue" + }, + "acm012289jsd" : { + "type" : "ControlElement", + "id" : "acm012289jsd", + "name" : "testUserInvokedRequests" + }, + "acm012290jsd" : { + "type" : "ControlElement", + "id" : "acm012290jsd", + "name" : "testGaeQueueInvokedRequests" + }, + "acm012291jsd" : { + "type" : "ClassUnit", + "id" : "acm012291jsd", + "name" : "WebApiServletTest", + "compilationUnitId" : "acm012283jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009404jsd", "acm009748jsd", "acm010134jsd", "acm010353jsd", "acm012182jsd", "acm012225jsd" ], + "content" : [ "acm012287jsd", "acm012288jsd", "acm012289jsd", "acm012290jsd" ] + }, + "acm012292jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012292jsd", + "name" : "WebPageServletTest", + "parentId" : "acm009317jsd", + "content" : [ "acm012297jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012293jsd" : { + "type" : "CodePackage", + "id" : "acm012293jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012294jsd" ] + }, + "acm012294jsd" : { + "type" : "CodePackage", + "id" : "acm012294jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012295jsd" ] + }, + "acm012295jsd" : { + "type" : "CodePackage", + "id" : "acm012295jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm012292jsd" ] + }, + "acm012296jsd" : { + "type" : "ControlElement", + "id" : "acm012296jsd", + "name" : "allTests" + }, + "acm012297jsd" : { + "type" : "ClassUnit", + "id" : "acm012297jsd", + "name" : "WebPageServletTest", + "compilationUnitId" : "acm012292jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009410jsd", "acm012182jsd", "acm012225jsd" ], + "content" : [ "acm012296jsd" ] + }, + "acm012298jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012298jsd", + "name" : "package-info", + "parentId" : "acm009317jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "servlets" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012299jsd" : { + "type" : "CodePackage", + "id" : "acm012299jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012300jsd" ] + }, + "acm012300jsd" : { + "type" : "CodePackage", + "id" : "acm012300jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012301jsd" ] + }, + "acm012301jsd" : { + "type" : "CodePackage", + "id" : "acm012301jsd", + "name" : "servlets", + "parentId" : null, + "content" : [ "acm012298jsd" ] + }, + "acm012302jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012302jsd", + "name" : "AccountRequestSearchIndexingWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012310jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012303jsd" : { + "type" : "CodePackage", + "id" : "acm012303jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012304jsd" ] + }, + "acm012304jsd" : { + "type" : "CodePackage", + "id" : "acm012304jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012305jsd" ] + }, + "acm012305jsd" : { + "type" : "CodePackage", + "id" : "acm012305jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012302jsd" ] + }, + "acm012306jsd" : { + "type" : "ControlElement", + "id" : "acm012306jsd", + "name" : "getActionUri" + }, + "acm012307jsd" : { + "type" : "ControlElement", + "id" : "acm012307jsd", + "name" : "getRequestMethod" + }, + "acm012308jsd" : { + "type" : "ControlElement", + "id" : "acm012308jsd", + "name" : "testExecute" + }, + "acm012309jsd" : { + "type" : "ControlElement", + "id" : "acm012309jsd", + "name" : "testAccessControl" + }, + "acm012310jsd" : { + "type" : "ClassUnit", + "id" : "acm012310jsd", + "name" : "AccountRequestSearchIndexingWorkerActionTest", + "compilationUnitId" : "acm012302jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm009428jsd" ], + "content" : [ "acm012306jsd", "acm012307jsd", "acm012308jsd", "acm012309jsd" ] + }, + "acm012311jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012311jsd", + "name" : "ActionFactoryTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012316jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012312jsd" : { + "type" : "CodePackage", + "id" : "acm012312jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012313jsd" ] + }, + "acm012313jsd" : { + "type" : "CodePackage", + "id" : "acm012313jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012314jsd" ] + }, + "acm012314jsd" : { + "type" : "CodePackage", + "id" : "acm012314jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012311jsd" ] + }, + "acm012315jsd" : { + "type" : "ControlElement", + "id" : "acm012315jsd", + "name" : "testGetAction" + }, + "acm012316jsd" : { + "type" : "ClassUnit", + "id" : "acm012316jsd", + "name" : "ActionFactoryTest", + "compilationUnitId" : "acm012311jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009459jsd", "acm009475jsd", "acm009872jsd", "acm012182jsd" ], + "content" : [ "acm012315jsd" ] + }, + "acm012317jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012317jsd", + "name" : "ArchiveCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012326jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012318jsd" : { + "type" : "CodePackage", + "id" : "acm012318jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012319jsd" ] + }, + "acm012319jsd" : { + "type" : "CodePackage", + "id" : "acm012319jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012320jsd" ] + }, + "acm012320jsd" : { + "type" : "CodePackage", + "id" : "acm012320jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012317jsd" ] + }, + "acm012321jsd" : { + "type" : "ControlElement", + "id" : "acm012321jsd", + "name" : "getActionUri" + }, + "acm012322jsd" : { + "type" : "ControlElement", + "id" : "acm012322jsd", + "name" : "getRequestMethod" + }, + "acm012323jsd" : { + "type" : "ControlElement", + "id" : "acm012323jsd", + "name" : "testExecute" + }, + "acm012324jsd" : { + "type" : "ControlElement", + "id" : "acm012324jsd", + "name" : "verifyCourseArchive" + }, + "acm012325jsd" : { + "type" : "ControlElement", + "id" : "acm012325jsd", + "name" : "testAccessControl" + }, + "acm012326jsd" : { + "type" : "ClassUnit", + "id" : "acm012326jsd", + "name" : "ArchiveCourseActionTest", + "compilationUnitId" : "acm012317jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008312jsd", "acm009016jsd", "acm009506jsd", "acm010167jsd" ], + "content" : [ "acm012321jsd", "acm012322jsd", "acm012323jsd", "acm012324jsd", "acm012325jsd" ] + }, + "acm012327jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012327jsd", + "name" : "BaseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012395jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012328jsd" : { + "type" : "CodePackage", + "id" : "acm012328jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012329jsd" ] + }, + "acm012329jsd" : { + "type" : "CodePackage", + "id" : "acm012329jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012330jsd" ] + }, + "acm012330jsd" : { + "type" : "CodePackage", + "id" : "acm012330jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012327jsd" ] + }, + "acm012331jsd" : { + "type" : "ControlElement", + "id" : "acm012331jsd", + "name" : "getActionUri" + }, + "acm012332jsd" : { + "type" : "ControlElement", + "id" : "acm012332jsd", + "name" : "getRequestMethod" + }, + "acm012333jsd" : { + "type" : "ControlElement", + "id" : "acm012333jsd", + "name" : "getAction" + }, + "acm012334jsd" : { + "type" : "ControlElement", + "id" : "acm012334jsd", + "name" : "getAction" + }, + "acm012335jsd" : { + "type" : "ControlElement", + "id" : "acm012335jsd", + "name" : "getAction" + }, + "acm012336jsd" : { + "type" : "ControlElement", + "id" : "acm012336jsd", + "name" : "getActionWithCookie" + }, + "acm012337jsd" : { + "type" : "ControlElement", + "id" : "acm012337jsd", + "name" : "beforeTestMethodSetup" + }, + "acm012338jsd" : { + "type" : "ControlElement", + "id" : "acm012338jsd", + "name" : "prepareTestData" + }, + "acm012339jsd" : { + "type" : "ControlElement", + "id" : "acm012339jsd", + "name" : "testExecute" + }, + "acm012340jsd" : { + "type" : "ControlElement", + "id" : "acm012340jsd", + "name" : "testAccessControl" + }, + "acm012341jsd" : { + "type" : "ControlElement", + "id" : "acm012341jsd", + "name" : "addUserIdToParams" + }, + "acm012342jsd" : { + "type" : "ControlElement", + "id" : "acm012342jsd", + "name" : "loginAsAdmin" + }, + "acm012343jsd" : { + "type" : "ControlElement", + "id" : "acm012343jsd", + "name" : "loginAsUnregistered" + }, + "acm012344jsd" : { + "type" : "ControlElement", + "id" : "acm012344jsd", + "name" : "loginAsInstructor" + }, + "acm012345jsd" : { + "type" : "ControlElement", + "id" : "acm012345jsd", + "name" : "loginAsStudent" + }, + "acm012346jsd" : { + "type" : "ControlElement", + "id" : "acm012346jsd", + "name" : "loginAsStudentInstructor" + }, + "acm012347jsd" : { + "type" : "ControlElement", + "id" : "acm012347jsd", + "name" : "loginAsMaintainer" + }, + "acm012348jsd" : { + "type" : "ControlElement", + "id" : "acm012348jsd", + "name" : "logoutUser" + }, + "acm012349jsd" : { + "type" : "ControlElement", + "id" : "acm012349jsd", + "name" : "grantInstructorWithSectionPrivilege" + }, + "acm012350jsd" : { + "type" : "ControlElement", + "id" : "acm012350jsd", + "name" : "verifyAnyUserCanAccess" + }, + "acm012351jsd" : { + "type" : "ControlElement", + "id" : "acm012351jsd", + "name" : "verifyAnyLoggedInUserCanAccess" + }, + "acm012352jsd" : { + "type" : "ControlElement", + "id" : "acm012352jsd", + "name" : "verifyOnlyAdminCanAccess" + }, + "acm012353jsd" : { + "type" : "ControlElement", + "id" : "acm012353jsd", + "name" : "verifyOnlyInstructorsCanAccess" + }, + "acm012354jsd" : { + "type" : "ControlElement", + "id" : "acm012354jsd", + "name" : "verifyOnlyInstructorsOfTheSameCourseCanAccess" + }, + "acm012355jsd" : { + "type" : "ControlElement", + "id" : "acm012355jsd", + "name" : "verifyOnlyInstructorsOfTheSameCourseWithCorrectCoursePrivilegeCanAccess" + }, + "acm012356jsd" : { + "type" : "ControlElement", + "id" : "acm012356jsd", + "name" : "verifyAccessibleWithoutLogin" + }, + "acm012357jsd" : { + "type" : "ControlElement", + "id" : "acm012357jsd", + "name" : "verifyInaccessibleWithoutLogin" + }, + "acm012358jsd" : { + "type" : "ControlElement", + "id" : "acm012358jsd", + "name" : "verifyAccessibleForUnregisteredUsers" + }, + "acm012359jsd" : { + "type" : "ControlElement", + "id" : "acm012359jsd", + "name" : "verifyInaccessibleForUnregisteredUsers" + }, + "acm012360jsd" : { + "type" : "ControlElement", + "id" : "acm012360jsd", + "name" : "verifyAccessibleForAdmin" + }, + "acm012361jsd" : { + "type" : "ControlElement", + "id" : "acm012361jsd", + "name" : "verifyInaccessibleForAdmin" + }, + "acm012362jsd" : { + "type" : "ControlElement", + "id" : "acm012362jsd", + "name" : "verifyInaccessibleForStudents" + }, + "acm012363jsd" : { + "type" : "ControlElement", + "id" : "acm012363jsd", + "name" : "verifyInaccessibleForInstructors" + }, + "acm012364jsd" : { + "type" : "ControlElement", + "id" : "acm012364jsd", + "name" : "verifyAccessibleForAdminToMasqueradeAsInstructor" + }, + "acm012365jsd" : { + "type" : "ControlElement", + "id" : "acm012365jsd", + "name" : "verifyAccessibleForAdminToMasqueradeAsInstructor" + }, + "acm012366jsd" : { + "type" : "ControlElement", + "id" : "acm012366jsd", + "name" : "verifyInaccessibleWithoutModifySessionPrivilege" + }, + "acm012367jsd" : { + "type" : "ControlElement", + "id" : "acm012367jsd", + "name" : "verifyInaccessibleWithoutSubmitSessionInSectionsPrivilege" + }, + "acm012368jsd" : { + "type" : "ControlElement", + "id" : "acm012368jsd", + "name" : "verifyInaccessibleWithoutCorrectCoursePrivilege" + }, + "acm012369jsd" : { + "type" : "ControlElement", + "id" : "acm012369jsd", + "name" : "verifyAccessibleForInstructorsOfTheSameCourse" + }, + "acm012370jsd" : { + "type" : "ControlElement", + "id" : "acm012370jsd", + "name" : "verifyAccessibleForInstructorsOfOtherCourse" + }, + "acm012371jsd" : { + "type" : "ControlElement", + "id" : "acm012371jsd", + "name" : "verifyAccessibleForStudentsOfTheSameCourse" + }, + "acm012372jsd" : { + "type" : "ControlElement", + "id" : "acm012372jsd", + "name" : "verifyInaccessibleForStudentsOfOtherCourse" + }, + "acm012373jsd" : { + "type" : "ControlElement", + "id" : "acm012373jsd", + "name" : "verifyInaccessibleForInstructorsOfOtherCourses" + }, + "acm012374jsd" : { + "type" : "ControlElement", + "id" : "acm012374jsd", + "name" : "verifyAccessibleForMaintainers" + }, + "acm012375jsd" : { + "type" : "ControlElement", + "id" : "acm012375jsd", + "name" : "verifyCanAccess" + }, + "acm012376jsd" : { + "type" : "ControlElement", + "id" : "acm012376jsd", + "name" : "verifyCannotAccess" + }, + "acm012377jsd" : { + "type" : "ControlElement", + "id" : "acm012377jsd", + "name" : "verifyCanMasquerade" + }, + "acm012378jsd" : { + "type" : "ControlElement", + "id" : "acm012378jsd", + "name" : "verifyCannotMasquerade" + }, + "acm012379jsd" : { + "type" : "ControlElement", + "id" : "acm012379jsd", + "name" : "getJsonResult" + }, + "acm012380jsd" : { + "type" : "ControlElement", + "id" : "acm012380jsd", + "name" : "getJsonResult" + }, + "acm012381jsd" : { + "type" : "ControlElement", + "id" : "acm012381jsd", + "name" : "verifyHttpParameterFailure" + }, + "acm012382jsd" : { + "type" : "ControlElement", + "id" : "acm012382jsd", + "name" : "verifyHttpParameterFailure" + }, + "acm012383jsd" : { + "type" : "ControlElement", + "id" : "acm012383jsd", + "name" : "verifyHttpParameterFailureAcl" + }, + "acm012384jsd" : { + "type" : "ControlElement", + "id" : "acm012384jsd", + "name" : "verifyHttpRequestBodyFailure" + }, + "acm012385jsd" : { + "type" : "ControlElement", + "id" : "acm012385jsd", + "name" : "verifyEntityNotFound" + }, + "acm012386jsd" : { + "type" : "ControlElement", + "id" : "acm012386jsd", + "name" : "verifyEntityNotFound" + }, + "acm012387jsd" : { + "type" : "ControlElement", + "id" : "acm012387jsd", + "name" : "verifyEntityNotFoundAcl" + }, + "acm012388jsd" : { + "type" : "ControlElement", + "id" : "acm012388jsd", + "name" : "verifyInvalidOperation" + }, + "acm012389jsd" : { + "type" : "ControlElement", + "id" : "acm012389jsd", + "name" : "verifyInvalidOperation" + }, + "acm012390jsd" : { + "type" : "ControlElement", + "id" : "acm012390jsd", + "name" : "verifyNoTasksAdded" + }, + "acm012391jsd" : { + "type" : "ControlElement", + "id" : "acm012391jsd", + "name" : "verifySpecifiedTasksAdded" + }, + "acm012392jsd" : { + "type" : "ControlElement", + "id" : "acm012392jsd", + "name" : "verifyNoEmailsSent" + }, + "acm012393jsd" : { + "type" : "ControlElement", + "id" : "acm012393jsd", + "name" : "getEmailsSent" + }, + "acm012394jsd" : { + "type" : "ControlElement", + "id" : "acm012394jsd", + "name" : "verifyNumberOfEmailsSent" + }, + "acm012395jsd" : { + "type" : "ClassUnit", + "id" : "acm012395jsd", + "name" : "BaseActionTest", + "compilationUnitId" : "acm012327jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012047jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004332jsd", "acm004432jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm009008jsd", "acm009228jsd", "acm009459jsd", "acm009475jsd", "acm009483jsd", "acm009748jsd", "acm010134jsd", "acm010144jsd", "acm010167jsd", "acm010353jsd", "acm011242jsd", "acm011249jsd", "acm011257jsd", "acm011270jsd", "acm011276jsd", "acm011285jsd", "acm011295jsd", "acm012182jsd" ], + "content" : [ "acm012331jsd", "acm012332jsd", "acm012333jsd", "acm012334jsd", "acm012335jsd", "acm012336jsd", "acm012337jsd", "acm012338jsd", "acm012339jsd", "acm012340jsd", "acm012341jsd", "acm012342jsd", "acm012343jsd", "acm012344jsd", "acm012345jsd", "acm012346jsd", "acm012347jsd", "acm012348jsd", "acm012349jsd", "acm012350jsd", "acm012351jsd", "acm012352jsd", "acm012353jsd", "acm012354jsd", "acm012355jsd", "acm012356jsd", "acm012357jsd", "acm012358jsd", "acm012359jsd", "acm012360jsd", "acm012361jsd", "acm012362jsd", "acm012363jsd", "acm012364jsd", "acm012365jsd", "acm012366jsd", "acm012367jsd", "acm012368jsd", "acm012369jsd", "acm012370jsd", "acm012371jsd", "acm012372jsd", "acm012373jsd", "acm012374jsd", "acm012375jsd", "acm012376jsd", "acm012377jsd", "acm012378jsd", "acm012379jsd", "acm012380jsd", "acm012381jsd", "acm012382jsd", "acm012383jsd", "acm012384jsd", "acm012385jsd", "acm012386jsd", "acm012387jsd", "acm012388jsd", "acm012389jsd", "acm012390jsd", "acm012391jsd", "acm012392jsd", "acm012393jsd", "acm012394jsd" ] + }, + "acm012396jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012396jsd", + "name" : "BinCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012407jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012397jsd" : { + "type" : "CodePackage", + "id" : "acm012397jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012398jsd" ] + }, + "acm012398jsd" : { + "type" : "CodePackage", + "id" : "acm012398jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012399jsd" ] + }, + "acm012399jsd" : { + "type" : "CodePackage", + "id" : "acm012399jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012396jsd" ] + }, + "acm012400jsd" : { + "type" : "ControlElement", + "id" : "acm012400jsd", + "name" : "getActionUri" + }, + "acm012401jsd" : { + "type" : "ControlElement", + "id" : "acm012401jsd", + "name" : "getRequestMethod" + }, + "acm012402jsd" : { + "type" : "ControlElement", + "id" : "acm012402jsd", + "name" : "testExecute" + }, + "acm012403jsd" : { + "type" : "ControlElement", + "id" : "acm012403jsd", + "name" : "testExecute_nonExistentCourse_shouldFail" + }, + "acm012404jsd" : { + "type" : "ControlElement", + "id" : "acm012404jsd", + "name" : "testExecute_courseAlreadyBin_shouldFail" + }, + "acm012405jsd" : { + "type" : "ControlElement", + "id" : "acm012405jsd", + "name" : "verifyCourseData" + }, + "acm012406jsd" : { + "type" : "ControlElement", + "id" : "acm012406jsd", + "name" : "testAccessControl" + }, + "acm012407jsd" : { + "type" : "ClassUnit", + "id" : "acm012407jsd", + "name" : "BinCourseActionTest", + "compilationUnitId" : "acm012396jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm008329jsd", "acm009548jsd", "acm009748jsd", "acm010167jsd" ], + "content" : [ "acm012400jsd", "acm012401jsd", "acm012402jsd", "acm012403jsd", "acm012404jsd", "acm012405jsd", "acm012406jsd" ] + }, + "acm012408jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012408jsd", + "name" : "BinFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012416jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012409jsd" : { + "type" : "CodePackage", + "id" : "acm012409jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012410jsd" ] + }, + "acm012410jsd" : { + "type" : "CodePackage", + "id" : "acm012410jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012411jsd" ] + }, + "acm012411jsd" : { + "type" : "CodePackage", + "id" : "acm012411jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012408jsd" ] + }, + "acm012412jsd" : { + "type" : "ControlElement", + "id" : "acm012412jsd", + "name" : "getActionUri" + }, + "acm012413jsd" : { + "type" : "ControlElement", + "id" : "acm012413jsd", + "name" : "getRequestMethod" + }, + "acm012414jsd" : { + "type" : "ControlElement", + "id" : "acm012414jsd", + "name" : "testExecute" + }, + "acm012415jsd" : { + "type" : "ControlElement", + "id" : "acm012415jsd", + "name" : "testAccessControl" + }, + "acm012416jsd" : { + "type" : "ClassUnit", + "id" : "acm012416jsd", + "name" : "BinFeedbackSessionActionTest", + "compilationUnitId" : "acm012408jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm009556jsd" ], + "content" : [ "acm012412jsd", "acm012413jsd", "acm012414jsd", "acm012415jsd" ] + }, + "acm012417jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012417jsd", + "name" : "CalculateUsageStatisticsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012425jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012418jsd" : { + "type" : "CodePackage", + "id" : "acm012418jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012419jsd" ] + }, + "acm012419jsd" : { + "type" : "CodePackage", + "id" : "acm012419jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012420jsd" ] + }, + "acm012420jsd" : { + "type" : "CodePackage", + "id" : "acm012420jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012417jsd" ] + }, + "acm012421jsd" : { + "type" : "ControlElement", + "id" : "acm012421jsd", + "name" : "getActionUri" + }, + "acm012422jsd" : { + "type" : "ControlElement", + "id" : "acm012422jsd", + "name" : "getRequestMethod" + }, + "acm012423jsd" : { + "type" : "ControlElement", + "id" : "acm012423jsd", + "name" : "testAccessControl" + }, + "acm012424jsd" : { + "type" : "ControlElement", + "id" : "acm012424jsd", + "name" : "testExecute" + }, + "acm012425jsd" : { + "type" : "ClassUnit", + "id" : "acm012425jsd", + "name" : "CalculateUsageStatisticsActionTest", + "compilationUnitId" : "acm012417jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005469jsd", "acm009562jsd" ], + "content" : [ "acm012421jsd", "acm012422jsd", "acm012423jsd", "acm012424jsd" ] + }, + "acm012426jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012426jsd", + "name" : "CompileLogsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012434jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012427jsd" : { + "type" : "CodePackage", + "id" : "acm012427jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012428jsd" ] + }, + "acm012428jsd" : { + "type" : "CodePackage", + "id" : "acm012428jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012429jsd" ] + }, + "acm012429jsd" : { + "type" : "CodePackage", + "id" : "acm012429jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012426jsd" ] + }, + "acm012430jsd" : { + "type" : "ControlElement", + "id" : "acm012430jsd", + "name" : "getActionUri" + }, + "acm012431jsd" : { + "type" : "ControlElement", + "id" : "acm012431jsd", + "name" : "getRequestMethod" + }, + "acm012432jsd" : { + "type" : "ControlElement", + "id" : "acm012432jsd", + "name" : "testExecute" + }, + "acm012433jsd" : { + "type" : "ControlElement", + "id" : "acm012433jsd", + "name" : "testAccessControl" + }, + "acm012434jsd" : { + "type" : "ClassUnit", + "id" : "acm012434jsd", + "name" : "CompileLogsActionTest", + "compilationUnitId" : "acm012426jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005726jsd", "acm006290jsd", "acm009568jsd" ], + "content" : [ "acm012430jsd", "acm012431jsd", "acm012432jsd", "acm012433jsd" ] + }, + "acm012435jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012435jsd", + "name" : "CreateAccountActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012446jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012436jsd" : { + "type" : "CodePackage", + "id" : "acm012436jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012437jsd" ] + }, + "acm012437jsd" : { + "type" : "CodePackage", + "id" : "acm012437jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012438jsd" ] + }, + "acm012438jsd" : { + "type" : "CodePackage", + "id" : "acm012438jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012435jsd" ] + }, + "acm012439jsd" : { + "type" : "ControlElement", + "id" : "acm012439jsd", + "name" : "getActionUri" + }, + "acm012440jsd" : { + "type" : "ControlElement", + "id" : "acm012440jsd", + "name" : "getRequestMethod" + }, + "acm012441jsd" : { + "type" : "ControlElement", + "id" : "acm012441jsd", + "name" : "testExecute" + }, + "acm012442jsd" : { + "type" : "ControlElement", + "id" : "acm012442jsd", + "name" : "testAccessControl" + }, + "acm012443jsd" : { + "type" : "ControlElement", + "id" : "acm012443jsd", + "name" : "testGenerateNextDemoCourseId" + }, + "acm012444jsd" : { + "type" : "ControlElement", + "id" : "acm012444jsd", + "name" : "testGenerateNextDemoCourseIdForLengthLimit" + }, + "acm012445jsd" : { + "type" : "ControlElement", + "id" : "acm012445jsd", + "name" : "generateNextDemoCourseId" + }, + "acm012446jsd" : { + "type" : "ClassUnit", + "id" : "acm012446jsd", + "name" : "CreateAccountActionTest", + "compilationUnitId" : "acm012435jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009582jsd", "acm010134jsd" ], + "content" : [ "acm012439jsd", "acm012440jsd", "acm012441jsd", "acm012442jsd", "acm012443jsd", "acm012444jsd", "acm012445jsd" ] + }, + "acm012447jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012447jsd", + "name" : "CreateAccountRequestActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012456jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012448jsd" : { + "type" : "CodePackage", + "id" : "acm012448jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012449jsd" ] + }, + "acm012449jsd" : { + "type" : "CodePackage", + "id" : "acm012449jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012450jsd" ] + }, + "acm012450jsd" : { + "type" : "CodePackage", + "id" : "acm012450jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012447jsd" ] + }, + "acm012451jsd" : { + "type" : "ControlElement", + "id" : "acm012451jsd", + "name" : "getActionUri" + }, + "acm012452jsd" : { + "type" : "ControlElement", + "id" : "acm012452jsd", + "name" : "getRequestMethod" + }, + "acm012453jsd" : { + "type" : "ControlElement", + "id" : "acm012453jsd", + "name" : "testExecute" + }, + "acm012454jsd" : { + "type" : "ControlElement", + "id" : "acm012454jsd", + "name" : "testAccessControl" + }, + "acm012455jsd" : { + "type" : "ControlElement", + "id" : "acm012455jsd", + "name" : "buildCreateRequest" + }, + "acm012456jsd" : { + "type" : "ClassUnit", + "id" : "acm012456jsd", + "name" : "CreateAccountRequestActionTest", + "compilationUnitId" : "acm012447jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006290jsd", "acm008651jsd", "acm009001jsd", "acm009228jsd", "acm009588jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012451jsd", "acm012452jsd", "acm012453jsd", "acm012454jsd", "acm012455jsd" ] + }, + "acm012457jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012457jsd", + "name" : "CreateCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012465jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012458jsd" : { + "type" : "CodePackage", + "id" : "acm012458jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012459jsd" ] + }, + "acm012459jsd" : { + "type" : "CodePackage", + "id" : "acm012459jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012460jsd" ] + }, + "acm012460jsd" : { + "type" : "CodePackage", + "id" : "acm012460jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012457jsd" ] + }, + "acm012461jsd" : { + "type" : "ControlElement", + "id" : "acm012461jsd", + "name" : "getActionUri" + }, + "acm012462jsd" : { + "type" : "ControlElement", + "id" : "acm012462jsd", + "name" : "getRequestMethod" + }, + "acm012463jsd" : { + "type" : "ControlElement", + "id" : "acm012463jsd", + "name" : "testExecute" + }, + "acm012464jsd" : { + "type" : "ControlElement", + "id" : "acm012464jsd", + "name" : "testAccessControl" + }, + "acm012465jsd" : { + "type" : "ClassUnit", + "id" : "acm012465jsd", + "name" : "CreateCourseActionTest", + "compilationUnitId" : "acm012457jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm008329jsd", "acm009034jsd", "acm009596jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012461jsd", "acm012462jsd", "acm012463jsd", "acm012464jsd" ] + }, + "acm012466jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012466jsd", + "name" : "CreateFeedbackQuestionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012478jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012467jsd" : { + "type" : "CodePackage", + "id" : "acm012467jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012468jsd" ] + }, + "acm012468jsd" : { + "type" : "CodePackage", + "id" : "acm012468jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012469jsd" ] + }, + "acm012469jsd" : { + "type" : "CodePackage", + "id" : "acm012469jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012466jsd" ] + }, + "acm012470jsd" : { + "type" : "ControlElement", + "id" : "acm012470jsd", + "name" : "getActionUri" + }, + "acm012471jsd" : { + "type" : "ControlElement", + "id" : "acm012471jsd", + "name" : "getRequestMethod" + }, + "acm012472jsd" : { + "type" : "ControlElement", + "id" : "acm012472jsd", + "name" : "testExecute" + }, + "acm012473jsd" : { + "type" : "ControlElement", + "id" : "acm012473jsd", + "name" : "testExecute_masqueradeMode_shouldCreateQuestionSuccessfully" + }, + "acm012474jsd" : { + "type" : "ControlElement", + "id" : "acm012474jsd", + "name" : "testExecute_contributionQuestion_shouldCreateQuestionSuccessfully" + }, + "acm012475jsd" : { + "type" : "ControlElement", + "id" : "acm012475jsd", + "name" : "getTypicalTextQuestionCreateRequest" + }, + "acm012476jsd" : { + "type" : "ControlElement", + "id" : "acm012476jsd", + "name" : "getTypicalContributionQuestionCreateRequest" + }, + "acm012477jsd" : { + "type" : "ControlElement", + "id" : "acm012477jsd", + "name" : "testAccessControl" + }, + "acm012478jsd" : { + "type" : "ClassUnit", + "id" : "acm012478jsd", + "name" : "CreateFeedbackQuestionActionTest", + "compilationUnitId" : "acm012466jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005820jsd", "acm006116jsd", "acm008407jsd", "acm009082jsd", "acm009604jsd", "acm010167jsd" ], + "content" : [ "acm012470jsd", "acm012471jsd", "acm012472jsd", "acm012473jsd", "acm012474jsd", "acm012475jsd", "acm012476jsd", "acm012477jsd" ] + }, + "acm012479jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012479jsd", + "name" : "CreateFeedbackResponseCommentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012512jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012480jsd" : { + "type" : "CodePackage", + "id" : "acm012480jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012481jsd" ] + }, + "acm012481jsd" : { + "type" : "CodePackage", + "id" : "acm012481jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012482jsd" ] + }, + "acm012482jsd" : { + "type" : "CodePackage", + "id" : "acm012482jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012479jsd" ] + }, + "acm012483jsd" : { + "type" : "ControlElement", + "id" : "acm012483jsd", + "name" : "getActionUri" + }, + "acm012484jsd" : { + "type" : "ControlElement", + "id" : "acm012484jsd", + "name" : "getRequestMethod" + }, + "acm012485jsd" : { + "type" : "ControlElement", + "id" : "acm012485jsd", + "name" : "prepareTestData" + }, + "acm012486jsd" : { + "type" : "ControlElement", + "id" : "acm012486jsd", + "name" : "testExecute" + }, + "acm012487jsd" : { + "type" : "ControlElement", + "id" : "acm012487jsd", + "name" : "testExecute_invalidHttpParameters_shouldFail" + }, + "acm012488jsd" : { + "type" : "ControlElement", + "id" : "acm012488jsd", + "name" : "testExecute_unpublishedSessionForInstructorResult_shouldPass" + }, + "acm012489jsd" : { + "type" : "ControlElement", + "id" : "acm012489jsd", + "name" : "testExecute_unpublishedSessionEmptyGiverPermission_shouldPass" + }, + "acm012490jsd" : { + "type" : "ControlElement", + "id" : "acm012490jsd", + "name" : "testExecute_unpublishedSessionValidVisibilitySettings_shouldPass" + }, + "acm012491jsd" : { + "type" : "ControlElement", + "id" : "acm012491jsd", + "name" : "testExecute_publishedSessionForInstructorResult_shouldPass" + }, + "acm012492jsd" : { + "type" : "ControlElement", + "id" : "acm012492jsd", + "name" : "testExecute_emptyCommentText_shouldFail" + }, + "acm012493jsd" : { + "type" : "ControlElement", + "id" : "acm012493jsd", + "name" : "testExecute_typicalCaseForSubmission_shouldPass" + }, + "acm012494jsd" : { + "type" : "ControlElement", + "id" : "acm012494jsd", + "name" : "testExecute_invalidIntent_shouldFail" + }, + "acm012495jsd" : { + "type" : "ControlElement", + "id" : "acm012495jsd", + "name" : "testAccessControl" + }, + "acm012496jsd" : { + "type" : "ControlElement", + "id" : "acm012496jsd", + "name" : "testAccessControl_textTypeQuestionResponse_notAllowedToAddComment" + }, + "acm012497jsd" : { + "type" : "ControlElement", + "id" : "acm012497jsd", + "name" : "testAccessControl_contributionQuestionResponse_instructorNotAllowedToAddComment" + }, + "acm012498jsd" : { + "type" : "ControlElement", + "id" : "acm012498jsd", + "name" : "testExecute_commentAlreadyExist_shouldNotCreateAgain" + }, + "acm012499jsd" : { + "type" : "ControlElement", + "id" : "acm012499jsd", + "name" : "testAccessControl_submitCommentForOthersResponse_shouldFail" + }, + "acm012500jsd" : { + "type" : "ControlElement", + "id" : "acm012500jsd", + "name" : "testAccessControl_invalidIntent_shouldFail" + }, + "acm012501jsd" : { + "type" : "ControlElement", + "id" : "acm012501jsd", + "name" : "testAccessControl_instructorWithoutSubmitSessionInSectionsPrivilege_shouldFail" + }, + "acm012502jsd" : { + "type" : "ControlElement", + "id" : "acm012502jsd", + "name" : "testAccessControl_logOut_shouldFail" + }, + "acm012503jsd" : { + "type" : "ControlElement", + "id" : "acm012503jsd", + "name" : "testAccessControl_studentAccessInstructorResponse_shouldFail" + }, + "acm012504jsd" : { + "type" : "ControlElement", + "id" : "acm012504jsd", + "name" : "testAccessControl_accessibleForInstructorInSameCourse_shouldPass" + }, + "acm012505jsd" : { + "type" : "ControlElement", + "id" : "acm012505jsd", + "name" : "testAccessControl_accessibleForAdminToMasqueradeAsInstructor_shouldPass" + }, + "acm012506jsd" : { + "type" : "ControlElement", + "id" : "acm012506jsd", + "name" : "testAccessControl_onlyInstructorsWithCorrectPrivilege_shouldPass" + }, + "acm012507jsd" : { + "type" : "ControlElement", + "id" : "acm012507jsd", + "name" : "testAccessControl_onlyInstructorsWithOnlyEitherPrivilege_shouldFail" + }, + "acm012508jsd" : { + "type" : "ControlElement", + "id" : "acm012508jsd", + "name" : "testAccessControl_instructorSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm012509jsd" : { + "type" : "ControlElement", + "id" : "acm012509jsd", + "name" : "testAccessControl_studentSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm012510jsd" : { + "type" : "ControlElement", + "id" : "acm012510jsd", + "name" : "getSubmissionParamsForCrossSectionResponse" + }, + "acm012511jsd" : { + "type" : "ControlElement", + "id" : "acm012511jsd", + "name" : "getInstructorComments" + }, + "acm012512jsd" : { + "type" : "ClassUnit", + "id" : "acm012512jsd", + "name" : "CreateFeedbackResponseCommentActionTest", + "compilationUnitId" : "acm012479jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008449jsd", "acm009104jsd", "acm009228jsd", "acm009612jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm012483jsd", "acm012484jsd", "acm012485jsd", "acm012486jsd", "acm012487jsd", "acm012488jsd", "acm012489jsd", "acm012490jsd", "acm012491jsd", "acm012492jsd", "acm012493jsd", "acm012494jsd", "acm012495jsd", "acm012496jsd", "acm012497jsd", "acm012498jsd", "acm012499jsd", "acm012500jsd", "acm012501jsd", "acm012502jsd", "acm012503jsd", "acm012504jsd", "acm012505jsd", "acm012506jsd", "acm012507jsd", "acm012508jsd", "acm012509jsd", "acm012510jsd", "acm012511jsd" ] + }, + "acm012513jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012513jsd", + "name" : "CreateFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012524jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012514jsd" : { + "type" : "CodePackage", + "id" : "acm012514jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012515jsd" ] + }, + "acm012515jsd" : { + "type" : "CodePackage", + "id" : "acm012515jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012516jsd" ] + }, + "acm012516jsd" : { + "type" : "CodePackage", + "id" : "acm012516jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012513jsd" ] + }, + "acm012517jsd" : { + "type" : "ControlElement", + "id" : "acm012517jsd", + "name" : "getActionUri" + }, + "acm012518jsd" : { + "type" : "ControlElement", + "id" : "acm012518jsd", + "name" : "getRequestMethod" + }, + "acm012519jsd" : { + "type" : "ControlElement", + "id" : "acm012519jsd", + "name" : "testExecute" + }, + "acm012520jsd" : { + "type" : "ControlElement", + "id" : "acm012520jsd", + "name" : "testExecute_masqueradeMode_shouldCreateFeedbackSession" + }, + "acm012521jsd" : { + "type" : "ControlElement", + "id" : "acm012521jsd", + "name" : "getTypicalCreateRequest" + }, + "acm012522jsd" : { + "type" : "ControlElement", + "id" : "acm012522jsd", + "name" : "getCopySessionCreateRequest" + }, + "acm012523jsd" : { + "type" : "ControlElement", + "id" : "acm012523jsd", + "name" : "testAccessControl" + }, + "acm012524jsd" : { + "type" : "ClassUnit", + "id" : "acm012524jsd", + "name" : "CreateFeedbackSessionActionTest", + "compilationUnitId" : "acm012513jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm008518jsd", "acm009164jsd", "acm009621jsd", "acm010167jsd" ], + "content" : [ "acm012517jsd", "acm012518jsd", "acm012519jsd", "acm012520jsd", "acm012521jsd", "acm012522jsd", "acm012523jsd" ] + }, + "acm012525jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012525jsd", + "name" : "CreateFeedbackSessionLogActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012533jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012526jsd" : { + "type" : "CodePackage", + "id" : "acm012526jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012527jsd" ] + }, + "acm012527jsd" : { + "type" : "CodePackage", + "id" : "acm012527jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012528jsd" ] + }, + "acm012528jsd" : { + "type" : "CodePackage", + "id" : "acm012528jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012525jsd" ] + }, + "acm012529jsd" : { + "type" : "ControlElement", + "id" : "acm012529jsd", + "name" : "getActionUri" + }, + "acm012530jsd" : { + "type" : "ControlElement", + "id" : "acm012530jsd", + "name" : "getRequestMethod" + }, + "acm012531jsd" : { + "type" : "ControlElement", + "id" : "acm012531jsd", + "name" : "testExecute" + }, + "acm012532jsd" : { + "type" : "ControlElement", + "id" : "acm012532jsd", + "name" : "testAccessControl" + }, + "acm012533jsd" : { + "type" : "ClassUnit", + "id" : "acm012533jsd", + "name" : "CreateFeedbackSessionLogActionTest", + "compilationUnitId" : "acm012525jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005412jsd" ], + "content" : [ "acm012529jsd", "acm012530jsd", "acm012531jsd", "acm012532jsd" ] + }, + "acm012534jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012534jsd", + "name" : "CreateInstructorActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012542jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012535jsd" : { + "type" : "CodePackage", + "id" : "acm012535jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012536jsd" ] + }, + "acm012536jsd" : { + "type" : "CodePackage", + "id" : "acm012536jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012537jsd" ] + }, + "acm012537jsd" : { + "type" : "CodePackage", + "id" : "acm012537jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012534jsd" ] + }, + "acm012538jsd" : { + "type" : "ControlElement", + "id" : "acm012538jsd", + "name" : "getActionUri" + }, + "acm012539jsd" : { + "type" : "ControlElement", + "id" : "acm012539jsd", + "name" : "getRequestMethod" + }, + "acm012540jsd" : { + "type" : "ControlElement", + "id" : "acm012540jsd", + "name" : "testExecute" + }, + "acm012541jsd" : { + "type" : "ControlElement", + "id" : "acm012541jsd", + "name" : "testAccessControl" + }, + "acm012542jsd" : { + "type" : "ClassUnit", + "id" : "acm012542jsd", + "name" : "CreateInstructorActionTest", + "compilationUnitId" : "acm012534jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006504jsd", "acm008620jsd", "acm009208jsd", "acm009228jsd", "acm009638jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012538jsd", "acm012539jsd", "acm012540jsd", "acm012541jsd" ] + }, + "acm012543jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012543jsd", + "name" : "CreateNotificationActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012552jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012544jsd" : { + "type" : "CodePackage", + "id" : "acm012544jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012545jsd" ] + }, + "acm012545jsd" : { + "type" : "CodePackage", + "id" : "acm012545jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012546jsd" ] + }, + "acm012546jsd" : { + "type" : "CodePackage", + "id" : "acm012546jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012543jsd" ] + }, + "acm012547jsd" : { + "type" : "ControlElement", + "id" : "acm012547jsd", + "name" : "getActionUri" + }, + "acm012548jsd" : { + "type" : "ControlElement", + "id" : "acm012548jsd", + "name" : "getRequestMethod" + }, + "acm012549jsd" : { + "type" : "ControlElement", + "id" : "acm012549jsd", + "name" : "testExecute" + }, + "acm012550jsd" : { + "type" : "ControlElement", + "id" : "acm012550jsd", + "name" : "testAccessControl" + }, + "acm012551jsd" : { + "type" : "ControlElement", + "id" : "acm012551jsd", + "name" : "getTypicalCreateRequest" + }, + "acm012552jsd" : { + "type" : "ClassUnit", + "id" : "acm012552jsd", + "name" : "CreateNotificationActionTest", + "compilationUnitId" : "acm012543jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm005329jsd", "acm008685jsd", "acm009228jsd", "acm009260jsd", "acm009644jsd" ], + "content" : [ "acm012547jsd", "acm012548jsd", "acm012549jsd", "acm012550jsd", "acm012551jsd" ] + }, + "acm012553jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012553jsd", + "name" : "DeleteAccountActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012561jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012554jsd" : { + "type" : "CodePackage", + "id" : "acm012554jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012555jsd" ] + }, + "acm012555jsd" : { + "type" : "CodePackage", + "id" : "acm012555jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012556jsd" ] + }, + "acm012556jsd" : { + "type" : "CodePackage", + "id" : "acm012556jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012553jsd" ] + }, + "acm012557jsd" : { + "type" : "ControlElement", + "id" : "acm012557jsd", + "name" : "getActionUri" + }, + "acm012558jsd" : { + "type" : "ControlElement", + "id" : "acm012558jsd", + "name" : "getRequestMethod" + }, + "acm012559jsd" : { + "type" : "ControlElement", + "id" : "acm012559jsd", + "name" : "testExecute" + }, + "acm012560jsd" : { + "type" : "ControlElement", + "id" : "acm012560jsd", + "name" : "testAccessControl" + }, + "acm012561jsd" : { + "type" : "ClassUnit", + "id" : "acm012561jsd", + "name" : "DeleteAccountActionTest", + "compilationUnitId" : "acm012553jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm008670jsd", "acm009656jsd", "acm010167jsd" ], + "content" : [ "acm012557jsd", "acm012558jsd", "acm012559jsd", "acm012560jsd" ] + }, + "acm012562jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012562jsd", + "name" : "DeleteAccountRequestActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012570jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012563jsd" : { + "type" : "CodePackage", + "id" : "acm012563jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012564jsd" ] + }, + "acm012564jsd" : { + "type" : "CodePackage", + "id" : "acm012564jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012565jsd" ] + }, + "acm012565jsd" : { + "type" : "CodePackage", + "id" : "acm012565jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012562jsd" ] + }, + "acm012566jsd" : { + "type" : "ControlElement", + "id" : "acm012566jsd", + "name" : "getActionUri" + }, + "acm012567jsd" : { + "type" : "ControlElement", + "id" : "acm012567jsd", + "name" : "getRequestMethod" + }, + "acm012568jsd" : { + "type" : "ControlElement", + "id" : "acm012568jsd", + "name" : "testExecute" + }, + "acm012569jsd" : { + "type" : "ControlElement", + "id" : "acm012569jsd", + "name" : "testAccessControl" + }, + "acm012570jsd" : { + "type" : "ClassUnit", + "id" : "acm012570jsd", + "name" : "DeleteAccountRequestActionTest", + "compilationUnitId" : "acm012562jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm008670jsd", "acm009662jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012566jsd", "acm012567jsd", "acm012568jsd", "acm012569jsd" ] + }, + "acm012571jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012571jsd", + "name" : "DeleteCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012580jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012572jsd" : { + "type" : "CodePackage", + "id" : "acm012572jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012573jsd" ] + }, + "acm012573jsd" : { + "type" : "CodePackage", + "id" : "acm012573jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012574jsd" ] + }, + "acm012574jsd" : { + "type" : "CodePackage", + "id" : "acm012574jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012571jsd" ] + }, + "acm012575jsd" : { + "type" : "ControlElement", + "id" : "acm012575jsd", + "name" : "getActionUri" + }, + "acm012576jsd" : { + "type" : "ControlElement", + "id" : "acm012576jsd", + "name" : "getRequestMethod" + }, + "acm012577jsd" : { + "type" : "ControlElement", + "id" : "acm012577jsd", + "name" : "testExecute" + }, + "acm012578jsd" : { + "type" : "ControlElement", + "id" : "acm012578jsd", + "name" : "testExecute_notInRecycleBin_shouldPass" + }, + "acm012579jsd" : { + "type" : "ControlElement", + "id" : "acm012579jsd", + "name" : "testAccessControl" + }, + "acm012580jsd" : { + "type" : "ClassUnit", + "id" : "acm012580jsd", + "name" : "DeleteCourseActionTest", + "compilationUnitId" : "acm012571jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm008670jsd", "acm009670jsd", "acm010167jsd" ], + "content" : [ "acm012575jsd", "acm012576jsd", "acm012577jsd", "acm012578jsd", "acm012579jsd" ] + }, + "acm012581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012581jsd", + "name" : "DeleteFeedbackQuestionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012589jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012582jsd" : { + "type" : "CodePackage", + "id" : "acm012582jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012583jsd" ] + }, + "acm012583jsd" : { + "type" : "CodePackage", + "id" : "acm012583jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012584jsd" ] + }, + "acm012584jsd" : { + "type" : "CodePackage", + "id" : "acm012584jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012581jsd" ] + }, + "acm012585jsd" : { + "type" : "ControlElement", + "id" : "acm012585jsd", + "name" : "getActionUri" + }, + "acm012586jsd" : { + "type" : "ControlElement", + "id" : "acm012586jsd", + "name" : "getRequestMethod" + }, + "acm012587jsd" : { + "type" : "ControlElement", + "id" : "acm012587jsd", + "name" : "testExecute" + }, + "acm012588jsd" : { + "type" : "ControlElement", + "id" : "acm012588jsd", + "name" : "testAccessControl" + }, + "acm012589jsd" : { + "type" : "ClassUnit", + "id" : "acm012589jsd", + "name" : "DeleteFeedbackQuestionActionTest", + "compilationUnitId" : "acm012581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm009686jsd" ], + "content" : [ "acm012585jsd", "acm012586jsd", "acm012587jsd", "acm012588jsd" ] + }, + "acm012590jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012590jsd", + "name" : "DeleteFeedbackResponseCommentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012606jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012591jsd" : { + "type" : "CodePackage", + "id" : "acm012591jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012592jsd" ] + }, + "acm012592jsd" : { + "type" : "CodePackage", + "id" : "acm012592jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012593jsd" ] + }, + "acm012593jsd" : { + "type" : "CodePackage", + "id" : "acm012593jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012590jsd" ] + }, + "acm012594jsd" : { + "type" : "ControlElement", + "id" : "acm012594jsd", + "name" : "getActionUri" + }, + "acm012595jsd" : { + "type" : "ControlElement", + "id" : "acm012595jsd", + "name" : "getRequestMethod" + }, + "acm012596jsd" : { + "type" : "ControlElement", + "id" : "acm012596jsd", + "name" : "refreshTestData" + }, + "acm012597jsd" : { + "type" : "ControlElement", + "id" : "acm012597jsd", + "name" : "testExecute" + }, + "acm012598jsd" : { + "type" : "ControlElement", + "id" : "acm012598jsd", + "name" : "testAccessControl" + }, + "acm012599jsd" : { + "type" : "ControlElement", + "id" : "acm012599jsd", + "name" : "testAccessControlsForCommentByInstructor" + }, + "acm012600jsd" : { + "type" : "ControlElement", + "id" : "acm012600jsd", + "name" : "testAccessControlsForCommentByInstructorAsFeedbackParticipant" + }, + "acm012601jsd" : { + "type" : "ControlElement", + "id" : "acm012601jsd", + "name" : "testAccessControlsForCommentByStudent" + }, + "acm012602jsd" : { + "type" : "ControlElement", + "id" : "acm012602jsd", + "name" : "testCrossSectionAccessControl" + }, + "acm012603jsd" : { + "type" : "ControlElement", + "id" : "acm012603jsd", + "name" : "testAccessControlsForCommentByTeam" + }, + "acm012604jsd" : { + "type" : "ControlElement", + "id" : "acm012604jsd", + "name" : "testAccessControl_instructorSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm012605jsd" : { + "type" : "ControlElement", + "id" : "acm012605jsd", + "name" : "testAccessControl_studentSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm012606jsd" : { + "type" : "ClassUnit", + "id" : "acm012606jsd", + "name" : "DeleteFeedbackResponseCommentActionTest", + "compilationUnitId" : "acm012590jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008670jsd", "acm009694jsd", "acm010167jsd" ], + "content" : [ "acm012594jsd", "acm012595jsd", "acm012596jsd", "acm012597jsd", "acm012598jsd", "acm012599jsd", "acm012600jsd", "acm012601jsd", "acm012602jsd", "acm012603jsd", "acm012604jsd", "acm012605jsd" ] + }, + "acm012607jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012607jsd", + "name" : "DeleteFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012618jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012608jsd" : { + "type" : "CodePackage", + "id" : "acm012608jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012609jsd" ] + }, + "acm012609jsd" : { + "type" : "CodePackage", + "id" : "acm012609jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012610jsd" ] + }, + "acm012610jsd" : { + "type" : "CodePackage", + "id" : "acm012610jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012607jsd" ] + }, + "acm012611jsd" : { + "type" : "ControlElement", + "id" : "acm012611jsd", + "name" : "getActionUri" + }, + "acm012612jsd" : { + "type" : "ControlElement", + "id" : "acm012612jsd", + "name" : "getRequestMethod" + }, + "acm012613jsd" : { + "type" : "ControlElement", + "id" : "acm012613jsd", + "name" : "testExecute" + }, + "acm012614jsd" : { + "type" : "ControlElement", + "id" : "acm012614jsd", + "name" : "testDeleteFeedbackSessionAction_invalidParameters_shouldThrowHttpParameterException" + }, + "acm012615jsd" : { + "type" : "ControlElement", + "id" : "acm012615jsd", + "name" : "testDeleteFeedbackSessionAction_typicalCase_shouldPass" + }, + "acm012616jsd" : { + "type" : "ControlElement", + "id" : "acm012616jsd", + "name" : "testDeleteFeedbackSession_failureCases_shouldFailSilently" + }, + "acm012617jsd" : { + "type" : "ControlElement", + "id" : "acm012617jsd", + "name" : "testAccessControl" + }, + "acm012618jsd" : { + "type" : "ClassUnit", + "id" : "acm012618jsd", + "name" : "DeleteFeedbackSessionActionTest", + "compilationUnitId" : "acm012607jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm008670jsd", "acm009702jsd", "acm010167jsd" ], + "content" : [ "acm012611jsd", "acm012612jsd", "acm012613jsd", "acm012614jsd", "acm012615jsd", "acm012616jsd", "acm012617jsd" ] + }, + "acm012619jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012619jsd", + "name" : "DeleteInstructorActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012639jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012620jsd" : { + "type" : "CodePackage", + "id" : "acm012620jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012621jsd" ] + }, + "acm012621jsd" : { + "type" : "CodePackage", + "id" : "acm012621jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012622jsd" ] + }, + "acm012622jsd" : { + "type" : "CodePackage", + "id" : "acm012622jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012619jsd" ] + }, + "acm012623jsd" : { + "type" : "ControlElement", + "id" : "acm012623jsd", + "name" : "getActionUri" + }, + "acm012624jsd" : { + "type" : "ControlElement", + "id" : "acm012624jsd", + "name" : "getRequestMethod" + }, + "acm012625jsd" : { + "type" : "ControlElement", + "id" : "acm012625jsd", + "name" : "testExecute" + }, + "acm012626jsd" : { + "type" : "ControlElement", + "id" : "acm012626jsd", + "name" : "testExecute_typicalCaseByGoogleId_shouldPass" + }, + "acm012627jsd" : { + "type" : "ControlElement", + "id" : "acm012627jsd", + "name" : "testExecute_deleteInstructorByEmail_shouldSuccess" + }, + "acm012628jsd" : { + "type" : "ControlElement", + "id" : "acm012628jsd", + "name" : "testExecute_adminDeletesLastInstructorByGoogleId_shouldFail" + }, + "acm012629jsd" : { + "type" : "ControlElement", + "id" : "acm012629jsd", + "name" : "testExecute_instructorDeleteOwnRoleByGoogleId_shouldPass" + }, + "acm012630jsd" : { + "type" : "ControlElement", + "id" : "acm012630jsd", + "name" : "testExecute_deleteLastInstructorByGoogleId_shouldFail" + }, + "acm012631jsd" : { + "type" : "ControlElement", + "id" : "acm012631jsd", + "name" : "testExecute_deleteLastInstructorInMasqueradeByGoogleId_shouldFail" + }, + "acm012632jsd" : { + "type" : "ControlElement", + "id" : "acm012632jsd", + "name" : "testExecute_deleteInstructorInMasqueradeByGoogleId_shouldPass" + }, + "acm012633jsd" : { + "type" : "ControlElement", + "id" : "acm012633jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm012634jsd" : { + "type" : "ControlElement", + "id" : "acm012634jsd", + "name" : "testExecute_noSuchInstructor_shouldFail" + }, + "acm012635jsd" : { + "type" : "ControlElement", + "id" : "acm012635jsd", + "name" : "attemptToDeleteFakeInstructorByGoogleId" + }, + "acm012636jsd" : { + "type" : "ControlElement", + "id" : "acm012636jsd", + "name" : "attemptToDeleteFakeInstructorByEmail" + }, + "acm012637jsd" : { + "type" : "ControlElement", + "id" : "acm012637jsd", + "name" : "testExecute_adminDeletesInstructorInFakeCourse_shouldFail" + }, + "acm012638jsd" : { + "type" : "ControlElement", + "id" : "acm012638jsd", + "name" : "testAccessControl" + }, + "acm012639jsd" : { + "type" : "ClassUnit", + "id" : "acm012639jsd", + "name" : "DeleteInstructorActionTest", + "compilationUnitId" : "acm012619jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008670jsd", "acm009711jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012623jsd", "acm012624jsd", "acm012625jsd", "acm012626jsd", "acm012627jsd", "acm012628jsd", "acm012629jsd", "acm012630jsd", "acm012631jsd", "acm012632jsd", "acm012633jsd", "acm012634jsd", "acm012635jsd", "acm012636jsd", "acm012637jsd", "acm012638jsd" ] + }, + "acm012640jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012640jsd", + "name" : "DeleteNotificationActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012648jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012641jsd" : { + "type" : "CodePackage", + "id" : "acm012641jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012642jsd" ] + }, + "acm012642jsd" : { + "type" : "CodePackage", + "id" : "acm012642jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012643jsd" ] + }, + "acm012643jsd" : { + "type" : "CodePackage", + "id" : "acm012643jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012640jsd" ] + }, + "acm012644jsd" : { + "type" : "ControlElement", + "id" : "acm012644jsd", + "name" : "getActionUri" + }, + "acm012645jsd" : { + "type" : "ControlElement", + "id" : "acm012645jsd", + "name" : "getRequestMethod" + }, + "acm012646jsd" : { + "type" : "ControlElement", + "id" : "acm012646jsd", + "name" : "testExecute" + }, + "acm012647jsd" : { + "type" : "ControlElement", + "id" : "acm012647jsd", + "name" : "testAccessControl" + }, + "acm012648jsd" : { + "type" : "ClassUnit", + "id" : "acm012648jsd", + "name" : "DeleteNotificationActionTest", + "compilationUnitId" : "acm012640jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm008670jsd", "acm009717jsd", "acm010167jsd" ], + "content" : [ "acm012644jsd", "acm012645jsd", "acm012646jsd", "acm012647jsd" ] + }, + "acm012649jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012649jsd", + "name" : "DeleteStudentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012657jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012650jsd" : { + "type" : "CodePackage", + "id" : "acm012650jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012651jsd" ] + }, + "acm012651jsd" : { + "type" : "CodePackage", + "id" : "acm012651jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012652jsd" ] + }, + "acm012652jsd" : { + "type" : "CodePackage", + "id" : "acm012652jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012649jsd" ] + }, + "acm012653jsd" : { + "type" : "ControlElement", + "id" : "acm012653jsd", + "name" : "getActionUri" + }, + "acm012654jsd" : { + "type" : "ControlElement", + "id" : "acm012654jsd", + "name" : "getRequestMethod" + }, + "acm012655jsd" : { + "type" : "ControlElement", + "id" : "acm012655jsd", + "name" : "testExecute" + }, + "acm012656jsd" : { + "type" : "ControlElement", + "id" : "acm012656jsd", + "name" : "testAccessControl" + }, + "acm012657jsd" : { + "type" : "ClassUnit", + "id" : "acm012657jsd", + "name" : "DeleteStudentActionTest", + "compilationUnitId" : "acm012649jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm009725jsd" ], + "content" : [ "acm012653jsd", "acm012654jsd", "acm012655jsd", "acm012656jsd" ] + }, + "acm012658jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012658jsd", + "name" : "DeleteStudentsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012666jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012659jsd" : { + "type" : "CodePackage", + "id" : "acm012659jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012660jsd" ] + }, + "acm012660jsd" : { + "type" : "CodePackage", + "id" : "acm012660jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012661jsd" ] + }, + "acm012661jsd" : { + "type" : "CodePackage", + "id" : "acm012661jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012658jsd" ] + }, + "acm012662jsd" : { + "type" : "ControlElement", + "id" : "acm012662jsd", + "name" : "getActionUri" + }, + "acm012663jsd" : { + "type" : "ControlElement", + "id" : "acm012663jsd", + "name" : "getRequestMethod" + }, + "acm012664jsd" : { + "type" : "ControlElement", + "id" : "acm012664jsd", + "name" : "testExecute" + }, + "acm012665jsd" : { + "type" : "ControlElement", + "id" : "acm012665jsd", + "name" : "testAccessControl" + }, + "acm012666jsd" : { + "type" : "ClassUnit", + "id" : "acm012666jsd", + "name" : "DeleteStudentsActionTest", + "compilationUnitId" : "acm012658jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd" ], + "content" : [ "acm012662jsd", "acm012663jsd", "acm012664jsd", "acm012665jsd" ] + }, + "acm012667jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012667jsd", + "name" : "EnrollStudentsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012690jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012668jsd" : { + "type" : "CodePackage", + "id" : "acm012668jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012669jsd" ] + }, + "acm012669jsd" : { + "type" : "CodePackage", + "id" : "acm012669jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012670jsd" ] + }, + "acm012670jsd" : { + "type" : "CodePackage", + "id" : "acm012670jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012667jsd" ] + }, + "acm012671jsd" : { + "type" : "ControlElement", + "id" : "acm012671jsd", + "name" : "getActionUri" + }, + "acm012672jsd" : { + "type" : "ControlElement", + "id" : "acm012672jsd", + "name" : "getRequestMethod" + }, + "acm012673jsd" : { + "type" : "ControlElement", + "id" : "acm012673jsd", + "name" : "testExecute" + }, + "acm012674jsd" : { + "type" : "ControlElement", + "id" : "acm012674jsd", + "name" : "testExecute_withNewStudent_shouldBeAddedToDatabase" + }, + "acm012675jsd" : { + "type" : "ControlElement", + "id" : "acm012675jsd", + "name" : "testExecute_withNewStudentWithEmptySectionName_shouldBeAddedToDatabaseWithDefaultSectionName" + }, + "acm012676jsd" : { + "type" : "ControlElement", + "id" : "acm012676jsd", + "name" : "testExecute_withExistingStudent_shouldBeUpdatedToDatabase" + }, + "acm012677jsd" : { + "type" : "ControlElement", + "id" : "acm012677jsd", + "name" : "testExecute_withSectionFieldChanged_shouldBeUpdatedToDatabase" + }, + "acm012678jsd" : { + "type" : "ControlElement", + "id" : "acm012678jsd", + "name" : "testExecute_withEmailFieldChanged_shouldCreateNewStudent" + }, + "acm012679jsd" : { + "type" : "ControlElement", + "id" : "acm012679jsd", + "name" : "testExecute_withInvalidEnrollRequests_shouldNotBeEnrolled" + }, + "acm012680jsd" : { + "type" : "ControlElement", + "id" : "acm012680jsd", + "name" : "testExecute_withDuplicatedTeamNameAmongSectionsToExistingStudents_shouldThrowInvalidBodyException" + }, + "acm012681jsd" : { + "type" : "ControlElement", + "id" : "acm012681jsd", + "name" : "testExecute_withDuplicatedTeamNameAmongSectionsInInput_shouldThrowInvalidBodyException" + }, + "acm012682jsd" : { + "type" : "ControlElement", + "id" : "acm012682jsd", + "name" : "testExecute_withNumberOfStudentsMoreThanSectionLimit_shouldThrowInvalidHttpRequestBodyException" + }, + "acm012683jsd" : { + "type" : "ControlElement", + "id" : "acm012683jsd", + "name" : "verifyCorrectResponseData" + }, + "acm012684jsd" : { + "type" : "ControlElement", + "id" : "acm012684jsd", + "name" : "verifyDuplicatedTeamNameDetected" + }, + "acm012685jsd" : { + "type" : "ControlElement", + "id" : "acm012685jsd", + "name" : "prepareRequest" + }, + "acm012686jsd" : { + "type" : "ControlElement", + "id" : "acm012686jsd", + "name" : "executeActionAndReturnResults" + }, + "acm012687jsd" : { + "type" : "ControlElement", + "id" : "acm012687jsd", + "name" : "verifyStudentInDatabase" + }, + "acm012688jsd" : { + "type" : "ControlElement", + "id" : "acm012688jsd", + "name" : "getTypicalNewStudent" + }, + "acm012689jsd" : { + "type" : "ControlElement", + "id" : "acm012689jsd", + "name" : "testAccessControl" + }, + "acm012690jsd" : { + "type" : "ClassUnit", + "id" : "acm012690jsd", + "name" : "EnrollStudentsActionTest", + "compilationUnitId" : "acm012667jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008379jsd", "acm008946jsd", "acm009301jsd", "acm009309jsd", "acm009741jsd", "acm010144jsd", "acm010167jsd" ], + "content" : [ "acm012671jsd", "acm012672jsd", "acm012673jsd", "acm012674jsd", "acm012675jsd", "acm012676jsd", "acm012677jsd", "acm012678jsd", "acm012679jsd", "acm012680jsd", "acm012681jsd", "acm012682jsd", "acm012683jsd", "acm012684jsd", "acm012685jsd", "acm012686jsd", "acm012687jsd", "acm012688jsd", "acm012689jsd" ] + }, + "acm012691jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012691jsd", + "name" : "FeedbackSessionClosedRemindersActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012699jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012692jsd" : { + "type" : "CodePackage", + "id" : "acm012692jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012693jsd" ] + }, + "acm012693jsd" : { + "type" : "CodePackage", + "id" : "acm012693jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012694jsd" ] + }, + "acm012694jsd" : { + "type" : "CodePackage", + "id" : "acm012694jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012691jsd" ] + }, + "acm012695jsd" : { + "type" : "ControlElement", + "id" : "acm012695jsd", + "name" : "getActionUri" + }, + "acm012696jsd" : { + "type" : "ControlElement", + "id" : "acm012696jsd", + "name" : "getRequestMethod" + }, + "acm012697jsd" : { + "type" : "ControlElement", + "id" : "acm012697jsd", + "name" : "testAccessControl" + }, + "acm012698jsd" : { + "type" : "ControlElement", + "id" : "acm012698jsd", + "name" : "testExecute" + }, + "acm012699jsd" : { + "type" : "ClassUnit", + "id" : "acm012699jsd", + "name" : "FeedbackSessionClosedRemindersActionTest", + "compilationUnitId" : "acm012691jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009754jsd" ], + "content" : [ "acm012695jsd", "acm012696jsd", "acm012697jsd", "acm012698jsd" ] + }, + "acm012700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012700jsd", + "name" : "FeedbackSessionClosingRemindersActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012708jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012701jsd" : { + "type" : "CodePackage", + "id" : "acm012701jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012702jsd" ] + }, + "acm012702jsd" : { + "type" : "CodePackage", + "id" : "acm012702jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012703jsd" ] + }, + "acm012703jsd" : { + "type" : "CodePackage", + "id" : "acm012703jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012700jsd" ] + }, + "acm012704jsd" : { + "type" : "ControlElement", + "id" : "acm012704jsd", + "name" : "getActionUri" + }, + "acm012705jsd" : { + "type" : "ControlElement", + "id" : "acm012705jsd", + "name" : "getRequestMethod" + }, + "acm012706jsd" : { + "type" : "ControlElement", + "id" : "acm012706jsd", + "name" : "testAccessControl" + }, + "acm012707jsd" : { + "type" : "ControlElement", + "id" : "acm012707jsd", + "name" : "testExecute" + }, + "acm012708jsd" : { + "type" : "ClassUnit", + "id" : "acm012708jsd", + "name" : "FeedbackSessionClosingRemindersActionTest", + "compilationUnitId" : "acm012700jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009762jsd" ], + "content" : [ "acm012704jsd", "acm012705jsd", "acm012706jsd", "acm012707jsd" ] + }, + "acm012709jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012709jsd", + "name" : "FeedbackSessionOpeningRemindersActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012717jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012710jsd" : { + "type" : "CodePackage", + "id" : "acm012710jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012711jsd" ] + }, + "acm012711jsd" : { + "type" : "CodePackage", + "id" : "acm012711jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012712jsd" ] + }, + "acm012712jsd" : { + "type" : "CodePackage", + "id" : "acm012712jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012709jsd" ] + }, + "acm012713jsd" : { + "type" : "ControlElement", + "id" : "acm012713jsd", + "name" : "getActionUri" + }, + "acm012714jsd" : { + "type" : "ControlElement", + "id" : "acm012714jsd", + "name" : "getRequestMethod" + }, + "acm012715jsd" : { + "type" : "ControlElement", + "id" : "acm012715jsd", + "name" : "testAccessControl" + }, + "acm012716jsd" : { + "type" : "ControlElement", + "id" : "acm012716jsd", + "name" : "testExecute" + }, + "acm012717jsd" : { + "type" : "ClassUnit", + "id" : "acm012717jsd", + "name" : "FeedbackSessionOpeningRemindersActionTest", + "compilationUnitId" : "acm012709jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009768jsd" ], + "content" : [ "acm012713jsd", "acm012714jsd", "acm012715jsd", "acm012716jsd" ] + }, + "acm012718jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012718jsd", + "name" : "FeedbackSessionOpeningSoonRemindersActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012726jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012719jsd" : { + "type" : "CodePackage", + "id" : "acm012719jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012720jsd" ] + }, + "acm012720jsd" : { + "type" : "CodePackage", + "id" : "acm012720jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012721jsd" ] + }, + "acm012721jsd" : { + "type" : "CodePackage", + "id" : "acm012721jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012718jsd" ] + }, + "acm012722jsd" : { + "type" : "ControlElement", + "id" : "acm012722jsd", + "name" : "getActionUri" + }, + "acm012723jsd" : { + "type" : "ControlElement", + "id" : "acm012723jsd", + "name" : "getRequestMethod" + }, + "acm012724jsd" : { + "type" : "ControlElement", + "id" : "acm012724jsd", + "name" : "testAccessControl" + }, + "acm012725jsd" : { + "type" : "ControlElement", + "id" : "acm012725jsd", + "name" : "testExecute" + }, + "acm012726jsd" : { + "type" : "ClassUnit", + "id" : "acm012726jsd", + "name" : "FeedbackSessionOpeningSoonRemindersActionTest", + "compilationUnitId" : "acm012718jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009774jsd" ], + "content" : [ "acm012722jsd", "acm012723jsd", "acm012724jsd", "acm012725jsd" ] + }, + "acm012727jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012727jsd", + "name" : "FeedbackSessionPublishedEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012735jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012728jsd" : { + "type" : "CodePackage", + "id" : "acm012728jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012729jsd" ] + }, + "acm012729jsd" : { + "type" : "CodePackage", + "id" : "acm012729jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012730jsd" ] + }, + "acm012730jsd" : { + "type" : "CodePackage", + "id" : "acm012730jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012727jsd" ] + }, + "acm012731jsd" : { + "type" : "ControlElement", + "id" : "acm012731jsd", + "name" : "getActionUri" + }, + "acm012732jsd" : { + "type" : "ControlElement", + "id" : "acm012732jsd", + "name" : "getRequestMethod" + }, + "acm012733jsd" : { + "type" : "ControlElement", + "id" : "acm012733jsd", + "name" : "testAccessControl" + }, + "acm012734jsd" : { + "type" : "ControlElement", + "id" : "acm012734jsd", + "name" : "testExecute" + }, + "acm012735jsd" : { + "type" : "ClassUnit", + "id" : "acm012735jsd", + "name" : "FeedbackSessionPublishedEmailWorkerActionTest", + "compilationUnitId" : "acm012727jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009780jsd" ], + "content" : [ "acm012731jsd", "acm012732jsd", "acm012733jsd", "acm012734jsd" ] + }, + "acm012736jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012736jsd", + "name" : "FeedbackSessionPublishedRemindersActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012744jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012737jsd" : { + "type" : "CodePackage", + "id" : "acm012737jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012738jsd" ] + }, + "acm012738jsd" : { + "type" : "CodePackage", + "id" : "acm012738jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012739jsd" ] + }, + "acm012739jsd" : { + "type" : "CodePackage", + "id" : "acm012739jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012736jsd" ] + }, + "acm012740jsd" : { + "type" : "ControlElement", + "id" : "acm012740jsd", + "name" : "getActionUri" + }, + "acm012741jsd" : { + "type" : "ControlElement", + "id" : "acm012741jsd", + "name" : "getRequestMethod" + }, + "acm012742jsd" : { + "type" : "ControlElement", + "id" : "acm012742jsd", + "name" : "testAccessControl" + }, + "acm012743jsd" : { + "type" : "ControlElement", + "id" : "acm012743jsd", + "name" : "testExecute" + }, + "acm012744jsd" : { + "type" : "ClassUnit", + "id" : "acm012744jsd", + "name" : "FeedbackSessionPublishedRemindersActionTest", + "compilationUnitId" : "acm012736jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm009786jsd" ], + "content" : [ "acm012740jsd", "acm012741jsd", "acm012742jsd", "acm012743jsd" ] + }, + "acm012745jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012745jsd", + "name" : "FeedbackSessionRemindEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012753jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012746jsd" : { + "type" : "CodePackage", + "id" : "acm012746jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012747jsd" ] + }, + "acm012747jsd" : { + "type" : "CodePackage", + "id" : "acm012747jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012748jsd" ] + }, + "acm012748jsd" : { + "type" : "CodePackage", + "id" : "acm012748jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012745jsd" ] + }, + "acm012749jsd" : { + "type" : "ControlElement", + "id" : "acm012749jsd", + "name" : "getActionUri" + }, + "acm012750jsd" : { + "type" : "ControlElement", + "id" : "acm012750jsd", + "name" : "getRequestMethod" + }, + "acm012751jsd" : { + "type" : "ControlElement", + "id" : "acm012751jsd", + "name" : "testAccessControl" + }, + "acm012752jsd" : { + "type" : "ControlElement", + "id" : "acm012752jsd", + "name" : "testExecute" + }, + "acm012753jsd" : { + "type" : "ClassUnit", + "id" : "acm012753jsd", + "name" : "FeedbackSessionRemindEmailWorkerActionTest", + "compilationUnitId" : "acm012745jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009792jsd" ], + "content" : [ "acm012749jsd", "acm012750jsd", "acm012751jsd", "acm012752jsd" ] + }, + "acm012754jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012754jsd", + "name" : "FeedbackSessionRemindParticularUsersEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012763jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012755jsd" : { + "type" : "CodePackage", + "id" : "acm012755jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012756jsd" ] + }, + "acm012756jsd" : { + "type" : "CodePackage", + "id" : "acm012756jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012757jsd" ] + }, + "acm012757jsd" : { + "type" : "CodePackage", + "id" : "acm012757jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012754jsd" ] + }, + "acm012758jsd" : { + "type" : "ControlElement", + "id" : "acm012758jsd", + "name" : "getActionUri" + }, + "acm012759jsd" : { + "type" : "ControlElement", + "id" : "acm012759jsd", + "name" : "getRequestMethod" + }, + "acm012760jsd" : { + "type" : "ControlElement", + "id" : "acm012760jsd", + "name" : "testAccessControl" + }, + "acm012761jsd" : { + "type" : "ControlElement", + "id" : "acm012761jsd", + "name" : "testExecute" + }, + "acm012762jsd" : { + "type" : "ControlElement", + "id" : "acm012762jsd", + "name" : "testExecute_sendCopyToInstructorFalse_requestingInstructorNotNotified" + }, + "acm012763jsd" : { + "type" : "ClassUnit", + "id" : "acm012763jsd", + "name" : "FeedbackSessionRemindParticularUsersEmailWorkerActionTest", + "compilationUnitId" : "acm012754jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006504jsd", "acm009176jsd", "acm009273jsd", "acm009798jsd" ], + "content" : [ "acm012758jsd", "acm012759jsd", "acm012760jsd", "acm012761jsd", "acm012762jsd" ] + }, + "acm012764jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012764jsd", + "name" : "FeedbackSessionResendPublishedEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012772jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012765jsd" : { + "type" : "CodePackage", + "id" : "acm012765jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012766jsd" ] + }, + "acm012766jsd" : { + "type" : "CodePackage", + "id" : "acm012766jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012767jsd" ] + }, + "acm012767jsd" : { + "type" : "CodePackage", + "id" : "acm012767jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012764jsd" ] + }, + "acm012768jsd" : { + "type" : "ControlElement", + "id" : "acm012768jsd", + "name" : "getActionUri" + }, + "acm012769jsd" : { + "type" : "ControlElement", + "id" : "acm012769jsd", + "name" : "getRequestMethod" + }, + "acm012770jsd" : { + "type" : "ControlElement", + "id" : "acm012770jsd", + "name" : "testAccessControl" + }, + "acm012771jsd" : { + "type" : "ControlElement", + "id" : "acm012771jsd", + "name" : "testExecute" + }, + "acm012772jsd" : { + "type" : "ClassUnit", + "id" : "acm012772jsd", + "name" : "FeedbackSessionResendPublishedEmailWorkerActionTest", + "compilationUnitId" : "acm012764jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm006504jsd", "acm009176jsd", "acm009273jsd", "acm009804jsd" ], + "content" : [ "acm012768jsd", "acm012769jsd", "acm012770jsd", "acm012771jsd" ] + }, + "acm012773jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012773jsd", + "name" : "FeedbackSessionUnpublishedEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012781jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012774jsd" : { + "type" : "CodePackage", + "id" : "acm012774jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012775jsd" ] + }, + "acm012775jsd" : { + "type" : "CodePackage", + "id" : "acm012775jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012776jsd" ] + }, + "acm012776jsd" : { + "type" : "CodePackage", + "id" : "acm012776jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012773jsd" ] + }, + "acm012777jsd" : { + "type" : "ControlElement", + "id" : "acm012777jsd", + "name" : "getActionUri" + }, + "acm012778jsd" : { + "type" : "ControlElement", + "id" : "acm012778jsd", + "name" : "getRequestMethod" + }, + "acm012779jsd" : { + "type" : "ControlElement", + "id" : "acm012779jsd", + "name" : "testAccessControl" + }, + "acm012780jsd" : { + "type" : "ControlElement", + "id" : "acm012780jsd", + "name" : "testExecute" + }, + "acm012781jsd" : { + "type" : "ClassUnit", + "id" : "acm012781jsd", + "name" : "FeedbackSessionUnpublishedEmailWorkerActionTest", + "compilationUnitId" : "acm012773jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm006290jsd", "acm006504jsd", "acm009273jsd", "acm009810jsd" ], + "content" : [ "acm012777jsd", "acm012778jsd", "acm012779jsd", "acm012780jsd" ] + }, + "acm012782jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012782jsd", + "name" : "GetAccountActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012790jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012783jsd" : { + "type" : "CodePackage", + "id" : "acm012783jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012784jsd" ] + }, + "acm012784jsd" : { + "type" : "CodePackage", + "id" : "acm012784jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012785jsd" ] + }, + "acm012785jsd" : { + "type" : "CodePackage", + "id" : "acm012785jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012782jsd" ] + }, + "acm012786jsd" : { + "type" : "ControlElement", + "id" : "acm012786jsd", + "name" : "getActionUri" + }, + "acm012787jsd" : { + "type" : "ControlElement", + "id" : "acm012787jsd", + "name" : "getRequestMethod" + }, + "acm012788jsd" : { + "type" : "ControlElement", + "id" : "acm012788jsd", + "name" : "testExecute" + }, + "acm012789jsd" : { + "type" : "ControlElement", + "id" : "acm012789jsd", + "name" : "testAccessControl" + }, + "acm012790jsd" : { + "type" : "ClassUnit", + "id" : "acm012790jsd", + "name" : "GetAccountActionTest", + "compilationUnitId" : "acm012782jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm008245jsd", "acm009748jsd", "acm009843jsd", "acm010167jsd" ], + "content" : [ "acm012786jsd", "acm012787jsd", "acm012788jsd", "acm012789jsd" ] + }, + "acm012791jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012791jsd", + "name" : "GetAccountRequestActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012799jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012792jsd" : { + "type" : "CodePackage", + "id" : "acm012792jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012793jsd" ] + }, + "acm012793jsd" : { + "type" : "CodePackage", + "id" : "acm012793jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012794jsd" ] + }, + "acm012794jsd" : { + "type" : "CodePackage", + "id" : "acm012794jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012791jsd" ] + }, + "acm012795jsd" : { + "type" : "ControlElement", + "id" : "acm012795jsd", + "name" : "getActionUri" + }, + "acm012796jsd" : { + "type" : "ControlElement", + "id" : "acm012796jsd", + "name" : "getRequestMethod" + }, + "acm012797jsd" : { + "type" : "ControlElement", + "id" : "acm012797jsd", + "name" : "testExecute" + }, + "acm012798jsd" : { + "type" : "ControlElement", + "id" : "acm012798jsd", + "name" : "testAccessControl" + }, + "acm012799jsd" : { + "type" : "ClassUnit", + "id" : "acm012799jsd", + "name" : "GetAccountRequestActionTest", + "compilationUnitId" : "acm012791jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm008257jsd", "acm009748jsd", "acm009849jsd", "acm010167jsd" ], + "content" : [ "acm012795jsd", "acm012796jsd", "acm012797jsd", "acm012798jsd" ] + }, + "acm012800jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012800jsd", + "name" : "GetAccountsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012810jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012801jsd" : { + "type" : "CodePackage", + "id" : "acm012801jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012802jsd" ] + }, + "acm012802jsd" : { + "type" : "CodePackage", + "id" : "acm012802jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012803jsd" ] + }, + "acm012803jsd" : { + "type" : "CodePackage", + "id" : "acm012803jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012800jsd" ] + }, + "acm012804jsd" : { + "type" : "ControlElement", + "id" : "acm012804jsd", + "name" : "getActionUri" + }, + "acm012805jsd" : { + "type" : "ControlElement", + "id" : "acm012805jsd", + "name" : "getRequestMethod" + }, + "acm012806jsd" : { + "type" : "ControlElement", + "id" : "acm012806jsd", + "name" : "prepareTestData" + }, + "acm012807jsd" : { + "type" : "ControlElement", + "id" : "acm012807jsd", + "name" : "testExecute" + }, + "acm012808jsd" : { + "type" : "ControlElement", + "id" : "acm012808jsd", + "name" : "testAccessControl" + }, + "acm012809jsd" : { + "type" : "ControlElement", + "id" : "acm012809jsd", + "name" : "assertEqualAccounts" + }, + "acm012810jsd" : { + "type" : "ClassUnit", + "id" : "acm012810jsd", + "name" : "GetAccountsActionTest", + "compilationUnitId" : "acm012800jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004486jsd", "acm008245jsd", "acm008272jsd", "acm009855jsd", "acm010167jsd" ], + "content" : [ "acm012804jsd", "acm012805jsd", "acm012806jsd", "acm012807jsd", "acm012808jsd", "acm012809jsd" ] + }, + "acm012811jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012811jsd", + "name" : "GetActionClassesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012819jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012812jsd" : { + "type" : "CodePackage", + "id" : "acm012812jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012813jsd" ] + }, + "acm012813jsd" : { + "type" : "CodePackage", + "id" : "acm012813jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012814jsd" ] + }, + "acm012814jsd" : { + "type" : "CodePackage", + "id" : "acm012814jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012811jsd" ] + }, + "acm012815jsd" : { + "type" : "ControlElement", + "id" : "acm012815jsd", + "name" : "getActionUri" + }, + "acm012816jsd" : { + "type" : "ControlElement", + "id" : "acm012816jsd", + "name" : "getRequestMethod" + }, + "acm012817jsd" : { + "type" : "ControlElement", + "id" : "acm012817jsd", + "name" : "testExecute" + }, + "acm012818jsd" : { + "type" : "ControlElement", + "id" : "acm012818jsd", + "name" : "testAccessControl" + }, + "acm012819jsd" : { + "type" : "ClassUnit", + "id" : "acm012819jsd", + "name" : "GetActionClassesActionTest", + "compilationUnitId" : "acm012811jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008279jsd", "acm009428jsd", "acm009459jsd", "acm009491jsd", "acm009506jsd", "acm009548jsd", "acm009556jsd", "acm009562jsd", "acm009568jsd", "acm009582jsd", "acm009588jsd", "acm009596jsd", "acm009604jsd", "acm009612jsd", "acm009621jsd", "acm009629jsd", "acm009638jsd", "acm009644jsd", "acm009650jsd", "acm009656jsd", "acm009662jsd", "acm009670jsd", "acm009678jsd", "acm009686jsd", "acm009694jsd", "acm009702jsd", "acm009711jsd", "acm009717jsd", "acm009725jsd", "acm009733jsd", "acm009741jsd", "acm009754jsd", "acm009762jsd", "acm009768jsd", "acm009774jsd", "acm009780jsd", "acm009786jsd", "acm009792jsd", "acm009798jsd", "acm009804jsd", "acm009810jsd", "acm009837jsd", "acm009843jsd", "acm009849jsd", "acm009855jsd", "acm009863jsd", "acm009872jsd", "acm009880jsd", "acm009891jsd", "acm009899jsd", "acm009911jsd", "acm009919jsd", "acm009927jsd", "acm009935jsd", "acm009943jsd", "acm009951jsd", "acm009961jsd", "acm009970jsd", "acm009978jsd", "acm009986jsd", "acm009995jsd", "acm010003jsd", "acm010011jsd", "acm010019jsd", "acm010025jsd", "acm010033jsd", "acm010040jsd", "acm010048jsd", "acm010056jsd", "acm010064jsd", "acm010072jsd", "acm010080jsd", "acm010088jsd", "acm010096jsd", "acm010104jsd", "acm010112jsd", "acm010118jsd", "acm010124jsd", "acm010155jsd", "acm010167jsd", "acm010175jsd", "acm010183jsd", "acm010191jsd", "acm010199jsd", "acm010208jsd", "acm010215jsd", "acm010222jsd", "acm010230jsd", "acm010238jsd", "acm010244jsd", "acm010250jsd", "acm010258jsd", "acm010266jsd", "acm010272jsd", "acm010278jsd", "acm010286jsd", "acm010292jsd", "acm010301jsd", "acm010309jsd", "acm010317jsd", "acm010325jsd", "acm010331jsd", "acm010337jsd", "acm010345jsd", "acm010361jsd", "acm010369jsd", "acm010377jsd", "acm010385jsd", "acm010394jsd", "acm010403jsd", "acm010411jsd", "acm010417jsd", "acm010426jsd" ], + "content" : [ "acm012815jsd", "acm012816jsd", "acm012817jsd", "acm012818jsd" ] + }, + "acm012820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012820jsd", + "name" : "GetAuthInfoActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012829jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012821jsd" : { + "type" : "CodePackage", + "id" : "acm012821jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012822jsd" ] + }, + "acm012822jsd" : { + "type" : "CodePackage", + "id" : "acm012822jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012823jsd" ] + }, + "acm012823jsd" : { + "type" : "CodePackage", + "id" : "acm012823jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012820jsd" ] + }, + "acm012824jsd" : { + "type" : "ControlElement", + "id" : "acm012824jsd", + "name" : "getActionUri" + }, + "acm012825jsd" : { + "type" : "ControlElement", + "id" : "acm012825jsd", + "name" : "getRequestMethod" + }, + "acm012826jsd" : { + "type" : "ControlElement", + "id" : "acm012826jsd", + "name" : "testExecute" + }, + "acm012827jsd" : { + "type" : "ControlElement", + "id" : "acm012827jsd", + "name" : "testExecute_addCsrfTokenCookies_shouldAddToResponseAccordingToExistingCsrfToken" + }, + "acm012828jsd" : { + "type" : "ControlElement", + "id" : "acm012828jsd", + "name" : "testAccessControl" + }, + "acm012829jsd" : { + "type" : "ClassUnit", + "id" : "acm012829jsd", + "name" : "GetAuthInfoActionTest", + "compilationUnitId" : "acm012820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004432jsd", "acm008299jsd", "acm009872jsd", "acm010167jsd" ], + "content" : [ "acm012824jsd", "acm012825jsd", "acm012826jsd", "acm012827jsd", "acm012828jsd" ] + }, + "acm012830jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012830jsd", + "name" : "GetCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012846jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012831jsd" : { + "type" : "CodePackage", + "id" : "acm012831jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012832jsd" ] + }, + "acm012832jsd" : { + "type" : "CodePackage", + "id" : "acm012832jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012833jsd" ] + }, + "acm012833jsd" : { + "type" : "CodePackage", + "id" : "acm012833jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012830jsd" ] + }, + "acm012834jsd" : { + "type" : "ControlElement", + "id" : "acm012834jsd", + "name" : "getActionUri" + }, + "acm012835jsd" : { + "type" : "ControlElement", + "id" : "acm012835jsd", + "name" : "getRequestMethod" + }, + "acm012836jsd" : { + "type" : "ControlElement", + "id" : "acm012836jsd", + "name" : "testExecute" + }, + "acm012837jsd" : { + "type" : "ControlElement", + "id" : "acm012837jsd", + "name" : "testExecute_typicalUsage_shouldPass" + }, + "acm012838jsd" : { + "type" : "ControlElement", + "id" : "acm012838jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm012839jsd" : { + "type" : "ControlElement", + "id" : "acm012839jsd", + "name" : "testExecute_nonExistentCourse_shouldFail" + }, + "acm012840jsd" : { + "type" : "ControlElement", + "id" : "acm012840jsd", + "name" : "testNonExistentCourse" + }, + "acm012841jsd" : { + "type" : "ControlElement", + "id" : "acm012841jsd", + "name" : "testAccessControl" + }, + "acm012842jsd" : { + "type" : "ControlElement", + "id" : "acm012842jsd", + "name" : "testAccessControl_invalidParameterValues_shouldFail" + }, + "acm012843jsd" : { + "type" : "ControlElement", + "id" : "acm012843jsd", + "name" : "testAccessControl_testInstructorAccess_shouldPass" + }, + "acm012844jsd" : { + "type" : "ControlElement", + "id" : "acm012844jsd", + "name" : "testAccessControl_testStudentAccess_shouldPass" + }, + "acm012845jsd" : { + "type" : "ControlElement", + "id" : "acm012845jsd", + "name" : "testAccessControl_loggedInEntityBothInstructorAndStudent_shouldBeAccessible" + }, + "acm012846jsd" : { + "type" : "ClassUnit", + "id" : "acm012846jsd", + "name" : "GetCourseActionTest", + "compilationUnitId" : "acm012830jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm008329jsd", "acm009748jsd", "acm009880jsd", "acm010167jsd" ], + "content" : [ "acm012834jsd", "acm012835jsd", "acm012836jsd", "acm012837jsd", "acm012838jsd", "acm012839jsd", "acm012840jsd", "acm012841jsd", "acm012842jsd", "acm012843jsd", "acm012844jsd", "acm012845jsd" ] + }, + "acm012847jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012847jsd", + "name" : "GetCourseJoinStatusActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012855jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012848jsd" : { + "type" : "CodePackage", + "id" : "acm012848jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012849jsd" ] + }, + "acm012849jsd" : { + "type" : "CodePackage", + "id" : "acm012849jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012850jsd" ] + }, + "acm012850jsd" : { + "type" : "CodePackage", + "id" : "acm012850jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012847jsd" ] + }, + "acm012851jsd" : { + "type" : "ControlElement", + "id" : "acm012851jsd", + "name" : "getActionUri" + }, + "acm012852jsd" : { + "type" : "ControlElement", + "id" : "acm012852jsd", + "name" : "getRequestMethod" + }, + "acm012853jsd" : { + "type" : "ControlElement", + "id" : "acm012853jsd", + "name" : "testExecute" + }, + "acm012854jsd" : { + "type" : "ControlElement", + "id" : "acm012854jsd", + "name" : "testAccessControl" + }, + "acm012855jsd" : { + "type" : "ClassUnit", + "id" : "acm012855jsd", + "name" : "GetCourseJoinStatusActionTest", + "compilationUnitId" : "acm012847jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008663jsd", "acm009891jsd", "acm010167jsd" ], + "content" : [ "acm012851jsd", "acm012852jsd", "acm012853jsd", "acm012854jsd" ] + }, + "acm012856jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012856jsd", + "name" : "GetCourseSectionNamesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012868jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012857jsd" : { + "type" : "CodePackage", + "id" : "acm012857jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012858jsd" ] + }, + "acm012858jsd" : { + "type" : "CodePackage", + "id" : "acm012858jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012859jsd" ] + }, + "acm012859jsd" : { + "type" : "CodePackage", + "id" : "acm012859jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012856jsd" ] + }, + "acm012860jsd" : { + "type" : "ControlElement", + "id" : "acm012860jsd", + "name" : "getActionUri" + }, + "acm012861jsd" : { + "type" : "ControlElement", + "id" : "acm012861jsd", + "name" : "getRequestMethod" + }, + "acm012862jsd" : { + "type" : "ControlElement", + "id" : "acm012862jsd", + "name" : "testExecute" + }, + "acm012863jsd" : { + "type" : "ControlElement", + "id" : "acm012863jsd", + "name" : "testExecute_typicalUsage_shouldPass" + }, + "acm012864jsd" : { + "type" : "ControlElement", + "id" : "acm012864jsd", + "name" : "testExecute_nonExistCourse_shouldFail" + }, + "acm012865jsd" : { + "type" : "ControlElement", + "id" : "acm012865jsd", + "name" : "testAccessControl" + }, + "acm012866jsd" : { + "type" : "ControlElement", + "id" : "acm012866jsd", + "name" : "testAccessControl_testInvalidAccess_shouldPass" + }, + "acm012867jsd" : { + "type" : "ControlElement", + "id" : "acm012867jsd", + "name" : "testAccessControl_testInstructorAccess_shouldPass" + }, + "acm012868jsd" : { + "type" : "ClassUnit", + "id" : "acm012868jsd", + "name" : "GetCourseSectionNamesActionTest", + "compilationUnitId" : "acm012856jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008336jsd", "acm009899jsd", "acm010167jsd" ], + "content" : [ "acm012860jsd", "acm012861jsd", "acm012862jsd", "acm012863jsd", "acm012864jsd", "acm012865jsd", "acm012866jsd", "acm012867jsd" ] + }, + "acm012869jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012869jsd", + "name" : "GetCoursesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012889jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012870jsd" : { + "type" : "CodePackage", + "id" : "acm012870jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012871jsd" ] + }, + "acm012871jsd" : { + "type" : "CodePackage", + "id" : "acm012871jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012872jsd" ] + }, + "acm012872jsd" : { + "type" : "CodePackage", + "id" : "acm012872jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012869jsd" ] + }, + "acm012873jsd" : { + "type" : "ControlElement", + "id" : "acm012873jsd", + "name" : "getActionUri" + }, + "acm012874jsd" : { + "type" : "ControlElement", + "id" : "acm012874jsd", + "name" : "getRequestMethod" + }, + "acm012875jsd" : { + "type" : "ControlElement", + "id" : "acm012875jsd", + "name" : "prepareTestData" + }, + "acm012876jsd" : { + "type" : "ControlElement", + "id" : "acm012876jsd", + "name" : "testExecute" + }, + "acm012877jsd" : { + "type" : "ControlElement", + "id" : "acm012877jsd", + "name" : "testGetCoursesAction_withNoParameter_shouldThrowHttpParameterException" + }, + "acm012878jsd" : { + "type" : "ControlElement", + "id" : "acm012878jsd", + "name" : "testGetCoursesAction_withInvalidEntityType_shouldReturnBadResponse" + }, + "acm012879jsd" : { + "type" : "ControlElement", + "id" : "acm012879jsd", + "name" : "testGetCoursesAction_withInstructorEntityTypeAndNoCourseStatus_shouldThrowParameterFailure" + }, + "acm012880jsd" : { + "type" : "ControlElement", + "id" : "acm012880jsd", + "name" : "testGetCoursesAction_withInvalidCourseStatus_shouldReturnBadResponse" + }, + "acm012881jsd" : { + "type" : "ControlElement", + "id" : "acm012881jsd", + "name" : "testGetCoursesAction_withInstructorEntityTypeAndActiveCourses_shouldReturnCorrectCourses" + }, + "acm012882jsd" : { + "type" : "ControlElement", + "id" : "acm012882jsd", + "name" : "testGetCoursesAction_withInstructorEntityTypeAndArchivedCourses_shouldReturnCorrectCourses" + }, + "acm012883jsd" : { + "type" : "ControlElement", + "id" : "acm012883jsd", + "name" : "testGetCoursesAction_withInstructorEntityTypeAndSoftDeletedCourses_shouldReturnCorrectCourses" + }, + "acm012884jsd" : { + "type" : "ControlElement", + "id" : "acm012884jsd", + "name" : "testGetCoursesAction_withStudentEntityType_shouldReturnCorrectCourses" + }, + "acm012885jsd" : { + "type" : "ControlElement", + "id" : "acm012885jsd", + "name" : "verifySameCourseData" + }, + "acm012886jsd" : { + "type" : "ControlElement", + "id" : "acm012886jsd", + "name" : "verifySameCourseDataStudent" + }, + "acm012887jsd" : { + "type" : "ControlElement", + "id" : "acm012887jsd", + "name" : "getValidCourses" + }, + "acm012888jsd" : { + "type" : "ControlElement", + "id" : "acm012888jsd", + "name" : "testAccessControl" + }, + "acm012889jsd" : { + "type" : "ClassUnit", + "id" : "acm012889jsd", + "name" : "GetCoursesActionTest", + "compilationUnitId" : "acm012869jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004598jsd", "acm005233jsd", "acm005412jsd", "acm008329jsd", "acm008343jsd", "acm009911jsd", "acm010167jsd" ], + "content" : [ "acm012873jsd", "acm012874jsd", "acm012875jsd", "acm012876jsd", "acm012877jsd", "acm012878jsd", "acm012879jsd", "acm012880jsd", "acm012881jsd", "acm012882jsd", "acm012883jsd", "acm012884jsd", "acm012885jsd", "acm012886jsd", "acm012887jsd", "acm012888jsd" ] + }, + "acm012890jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012890jsd", + "name" : "GetDeadlineExtensionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012898jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012891jsd" : { + "type" : "CodePackage", + "id" : "acm012891jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012892jsd" ] + }, + "acm012892jsd" : { + "type" : "CodePackage", + "id" : "acm012892jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012893jsd" ] + }, + "acm012893jsd" : { + "type" : "CodePackage", + "id" : "acm012893jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012890jsd" ] + }, + "acm012894jsd" : { + "type" : "ControlElement", + "id" : "acm012894jsd", + "name" : "getActionUri" + }, + "acm012895jsd" : { + "type" : "ControlElement", + "id" : "acm012895jsd", + "name" : "getRequestMethod" + }, + "acm012896jsd" : { + "type" : "ControlElement", + "id" : "acm012896jsd", + "name" : "testExecute" + }, + "acm012897jsd" : { + "type" : "ControlElement", + "id" : "acm012897jsd", + "name" : "testAccessControl" + }, + "acm012898jsd" : { + "type" : "ClassUnit", + "id" : "acm012898jsd", + "name" : "GetDeadlineExtensionActionTest", + "compilationUnitId" : "acm012890jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004662jsd", "acm008355jsd", "acm009748jsd", "acm009919jsd", "acm010167jsd" ], + "content" : [ "acm012894jsd", "acm012895jsd", "acm012896jsd", "acm012897jsd" ] + }, + "acm012899jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012899jsd", + "name" : "GetFeedbackQuestionRecipientsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012917jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012900jsd" : { + "type" : "CodePackage", + "id" : "acm012900jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012901jsd" ] + }, + "acm012901jsd" : { + "type" : "CodePackage", + "id" : "acm012901jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012902jsd" ] + }, + "acm012902jsd" : { + "type" : "CodePackage", + "id" : "acm012902jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012899jsd" ] + }, + "acm012903jsd" : { + "type" : "ControlElement", + "id" : "acm012903jsd", + "name" : "prepareTestData" + }, + "acm012904jsd" : { + "type" : "ControlElement", + "id" : "acm012904jsd", + "name" : "getActionUri" + }, + "acm012905jsd" : { + "type" : "ControlElement", + "id" : "acm012905jsd", + "name" : "getRequestMethod" + }, + "acm012906jsd" : { + "type" : "ControlElement", + "id" : "acm012906jsd", + "name" : "testExecute" + }, + "acm012907jsd" : { + "type" : "ControlElement", + "id" : "acm012907jsd", + "name" : "testExecute_invalidIntend_shouldFail" + }, + "acm012908jsd" : { + "type" : "ControlElement", + "id" : "acm012908jsd", + "name" : "testExecute_moderatedAndPreviewPersonToGetRecipients_shouldReturnSameRecipientsGotFromGiver" + }, + "acm012909jsd" : { + "type" : "ControlElement", + "id" : "acm012909jsd", + "name" : "testExecute_differentRecipientTypes_shouldReturnRecipientsCorrectly" + }, + "acm012910jsd" : { + "type" : "ControlElement", + "id" : "acm012910jsd", + "name" : "testAccessControl" + }, + "acm012911jsd" : { + "type" : "ControlElement", + "id" : "acm012911jsd", + "name" : "testAccessControl_studentSubmission" + }, + "acm012912jsd" : { + "type" : "ControlElement", + "id" : "acm012912jsd", + "name" : "testAccessControl_instructorSubmission" + }, + "acm012913jsd" : { + "type" : "ControlElement", + "id" : "acm012913jsd", + "name" : "useTypicalDataBundle" + }, + "acm012914jsd" : { + "type" : "ControlElement", + "id" : "acm012914jsd", + "name" : "generateParameters" + }, + "acm012915jsd" : { + "type" : "ControlElement", + "id" : "acm012915jsd", + "name" : "getRecipients" + }, + "acm012916jsd" : { + "type" : "ControlElement", + "id" : "acm012916jsd", + "name" : "verifyFeedbackQuestionRecipientsDataEquals" + }, + "acm012917jsd" : { + "type" : "ClassUnit", + "id" : "acm012917jsd", + "name" : "GetFeedbackQuestionRecipientsActionTest", + "compilationUnitId" : "acm012899jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008424jsd", "acm009221jsd", "acm009927jsd", "acm010167jsd" ], + "content" : [ "acm012903jsd", "acm012904jsd", "acm012905jsd", "acm012906jsd", "acm012907jsd", "acm012908jsd", "acm012909jsd", "acm012910jsd", "acm012911jsd", "acm012912jsd", "acm012913jsd", "acm012914jsd", "acm012915jsd", "acm012916jsd" ] + }, + "acm012918jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012918jsd", + "name" : "GetFeedbackQuestionsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012928jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012919jsd" : { + "type" : "CodePackage", + "id" : "acm012919jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012920jsd" ] + }, + "acm012920jsd" : { + "type" : "CodePackage", + "id" : "acm012920jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012921jsd" ] + }, + "acm012921jsd" : { + "type" : "CodePackage", + "id" : "acm012921jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012918jsd" ] + }, + "acm012922jsd" : { + "type" : "ControlElement", + "id" : "acm012922jsd", + "name" : "getActionUri" + }, + "acm012923jsd" : { + "type" : "ControlElement", + "id" : "acm012923jsd", + "name" : "getRequestMethod" + }, + "acm012924jsd" : { + "type" : "ControlElement", + "id" : "acm012924jsd", + "name" : "testExecute" + }, + "acm012925jsd" : { + "type" : "ControlElement", + "id" : "acm012925jsd", + "name" : "testExecute_studentFeedbackSubmissionMcqGenerateOptionsForTeams_shouldReturnGeneratedFields" + }, + "acm012926jsd" : { + "type" : "ControlElement", + "id" : "acm012926jsd", + "name" : "testExecute_instructorFeedbackSubmissionMcqGenerateOptionsForTeams_shouldReturnGeneratedFields" + }, + "acm012927jsd" : { + "type" : "ControlElement", + "id" : "acm012927jsd", + "name" : "testAccessControl" + }, + "acm012928jsd" : { + "type" : "ClassUnit", + "id" : "acm012928jsd", + "name" : "GetFeedbackQuestionsActionTest", + "compilationUnitId" : "acm012918jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm005866jsd", "acm008407jsd", "acm008432jsd", "acm009935jsd", "acm010167jsd" ], + "content" : [ "acm012922jsd", "acm012923jsd", "acm012924jsd", "acm012925jsd", "acm012926jsd", "acm012927jsd" ] + }, + "acm012929jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012929jsd", + "name" : "GetFeedbackResponseCommentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012946jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012930jsd" : { + "type" : "CodePackage", + "id" : "acm012930jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012931jsd" ] + }, + "acm012931jsd" : { + "type" : "CodePackage", + "id" : "acm012931jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012932jsd" ] + }, + "acm012932jsd" : { + "type" : "CodePackage", + "id" : "acm012932jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012929jsd" ] + }, + "acm012933jsd" : { + "type" : "ControlElement", + "id" : "acm012933jsd", + "name" : "getActionUri" + }, + "acm012934jsd" : { + "type" : "ControlElement", + "id" : "acm012934jsd", + "name" : "getRequestMethod" + }, + "acm012935jsd" : { + "type" : "ControlElement", + "id" : "acm012935jsd", + "name" : "prepareTestData" + }, + "acm012936jsd" : { + "type" : "ControlElement", + "id" : "acm012936jsd", + "name" : "testExecute" + }, + "acm012937jsd" : { + "type" : "ControlElement", + "id" : "acm012937jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm012938jsd" : { + "type" : "ControlElement", + "id" : "acm012938jsd", + "name" : "testExecute_invalidIntent_shouldFail" + }, + "acm012939jsd" : { + "type" : "ControlElement", + "id" : "acm012939jsd", + "name" : "testExecute_typicalSuccessCase_shouldPass" + }, + "acm012940jsd" : { + "type" : "ControlElement", + "id" : "acm012940jsd", + "name" : "testAccessControl" + }, + "acm012941jsd" : { + "type" : "ControlElement", + "id" : "acm012941jsd", + "name" : "testAccessControl_typicalSuccessCase_shouldPass" + }, + "acm012942jsd" : { + "type" : "ControlElement", + "id" : "acm012942jsd", + "name" : "testAccessControl_invalidIntent_shouldFail" + }, + "acm012943jsd" : { + "type" : "ControlElement", + "id" : "acm012943jsd", + "name" : "testAccessControl_responseNotExisting_shouldFail" + }, + "acm012944jsd" : { + "type" : "ControlElement", + "id" : "acm012944jsd", + "name" : "testAccessControl_accessAcrossCourses_shouldFail" + }, + "acm012945jsd" : { + "type" : "ControlElement", + "id" : "acm012945jsd", + "name" : "getFeedbackResponseComments" + }, + "acm012946jsd" : { + "type" : "ClassUnit", + "id" : "acm012946jsd", + "name" : "GetFeedbackResponseCommentActionTest", + "compilationUnitId" : "acm012929jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008449jsd", "acm009943jsd", "acm010167jsd" ], + "content" : [ "acm012933jsd", "acm012934jsd", "acm012935jsd", "acm012936jsd", "acm012937jsd", "acm012938jsd", "acm012939jsd", "acm012940jsd", "acm012941jsd", "acm012942jsd", "acm012943jsd", "acm012944jsd", "acm012945jsd" ] + }, + "acm012947jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012947jsd", + "name" : "GetFeedbackResponsesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012971jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012948jsd" : { + "type" : "CodePackage", + "id" : "acm012948jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012949jsd" ] + }, + "acm012949jsd" : { + "type" : "CodePackage", + "id" : "acm012949jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012950jsd" ] + }, + "acm012950jsd" : { + "type" : "CodePackage", + "id" : "acm012950jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012947jsd" ] + }, + "acm012951jsd" : { + "type" : "ControlElement", + "id" : "acm012951jsd", + "name" : "getActionUri" + }, + "acm012952jsd" : { + "type" : "ControlElement", + "id" : "acm012952jsd", + "name" : "getRequestMethod" + }, + "acm012953jsd" : { + "type" : "ControlElement", + "id" : "acm012953jsd", + "name" : "prepareTestData" + }, + "acm012954jsd" : { + "type" : "ControlElement", + "id" : "acm012954jsd", + "name" : "testExecute" + }, + "acm012955jsd" : { + "type" : "ControlElement", + "id" : "acm012955jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm012956jsd" : { + "type" : "ControlElement", + "id" : "acm012956jsd", + "name" : "testExecute_invalidIntent_shouldFail" + }, + "acm012957jsd" : { + "type" : "ControlElement", + "id" : "acm012957jsd", + "name" : "testExecute_studentSubmission_shouldGetResponseSuccessfully" + }, + "acm012958jsd" : { + "type" : "ControlElement", + "id" : "acm012958jsd", + "name" : "testExecute_instructorSubmission_shouldGetResponseSuccessfully" + }, + "acm012959jsd" : { + "type" : "ControlElement", + "id" : "acm012959jsd", + "name" : "testExecute_commentSubmission_shouldGetCommentsSuccessfully" + }, + "acm012960jsd" : { + "type" : "ControlElement", + "id" : "acm012960jsd", + "name" : "testAccessControl" + }, + "acm012961jsd" : { + "type" : "ControlElement", + "id" : "acm012961jsd", + "name" : "testAccessControl_notAnswerable_cannotAccess" + }, + "acm012962jsd" : { + "type" : "ControlElement", + "id" : "acm012962jsd", + "name" : "testAccessControl_invalidIntent_shouldFail" + }, + "acm012963jsd" : { + "type" : "ControlElement", + "id" : "acm012963jsd", + "name" : "testAccessControl_typicalStudentAccess_canAccess" + }, + "acm012964jsd" : { + "type" : "ControlElement", + "id" : "acm012964jsd", + "name" : "testAccessControl_typicalInstructorAccess_canAccess" + }, + "acm012965jsd" : { + "type" : "ControlElement", + "id" : "acm012965jsd", + "name" : "testAccessControl_getNonExistingFeedbackResponse_shouldFail" + }, + "acm012966jsd" : { + "type" : "ControlElement", + "id" : "acm012966jsd", + "name" : "testAccessControl_getResponseInPreview_shouldFail" + }, + "acm012967jsd" : { + "type" : "ControlElement", + "id" : "acm012967jsd", + "name" : "testAccessControl_accessAcrossCourses_shouldFail" + }, + "acm012968jsd" : { + "type" : "ControlElement", + "id" : "acm012968jsd", + "name" : "getFeedbackResponse" + }, + "acm012969jsd" : { + "type" : "ControlElement", + "id" : "acm012969jsd", + "name" : "verifyFeedbackResponseEquals" + }, + "acm012970jsd" : { + "type" : "ControlElement", + "id" : "acm012970jsd", + "name" : "verifyFeedbackCommentEquals" + }, + "acm012971jsd" : { + "type" : "ClassUnit", + "id" : "acm012971jsd", + "name" : "GetFeedbackResponsesActionTest", + "compilationUnitId" : "acm012947jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008449jsd", "acm008461jsd", "acm008470jsd", "acm009951jsd", "acm010167jsd" ], + "content" : [ "acm012951jsd", "acm012952jsd", "acm012953jsd", "acm012954jsd", "acm012955jsd", "acm012956jsd", "acm012957jsd", "acm012958jsd", "acm012959jsd", "acm012960jsd", "acm012961jsd", "acm012962jsd", "acm012963jsd", "acm012964jsd", "acm012965jsd", "acm012966jsd", "acm012967jsd", "acm012968jsd", "acm012969jsd", "acm012970jsd" ] + }, + "acm012972jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012972jsd", + "name" : "GetFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm012991jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012973jsd" : { + "type" : "CodePackage", + "id" : "acm012973jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012974jsd" ] + }, + "acm012974jsd" : { + "type" : "CodePackage", + "id" : "acm012974jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012975jsd" ] + }, + "acm012975jsd" : { + "type" : "CodePackage", + "id" : "acm012975jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012972jsd" ] + }, + "acm012976jsd" : { + "type" : "ControlElement", + "id" : "acm012976jsd", + "name" : "getActionUri" + }, + "acm012977jsd" : { + "type" : "ControlElement", + "id" : "acm012977jsd", + "name" : "getRequestMethod" + }, + "acm012978jsd" : { + "type" : "ControlElement", + "id" : "acm012978jsd", + "name" : "testExecute" + }, + "acm012979jsd" : { + "type" : "ControlElement", + "id" : "acm012979jsd", + "name" : "testExecute_fullDetail" + }, + "acm012980jsd" : { + "type" : "ControlElement", + "id" : "acm012980jsd", + "name" : "testExecute_instructorSubmission" + }, + "acm012981jsd" : { + "type" : "ControlElement", + "id" : "acm012981jsd", + "name" : "testExecute_instructorResult" + }, + "acm012982jsd" : { + "type" : "ControlElement", + "id" : "acm012982jsd", + "name" : "textExecute_studentSubmission" + }, + "acm012983jsd" : { + "type" : "ControlElement", + "id" : "acm012983jsd", + "name" : "testExecute_studentResult" + }, + "acm012984jsd" : { + "type" : "ControlElement", + "id" : "acm012984jsd", + "name" : "testAccessControl" + }, + "acm012985jsd" : { + "type" : "ControlElement", + "id" : "acm012985jsd", + "name" : "testAccessControl_studentResult" + }, + "acm012986jsd" : { + "type" : "ControlElement", + "id" : "acm012986jsd", + "name" : "testAccessControl_fullDetail" + }, + "acm012987jsd" : { + "type" : "ControlElement", + "id" : "acm012987jsd", + "name" : "testAccessControl_instructorResult" + }, + "acm012988jsd" : { + "type" : "ControlElement", + "id" : "acm012988jsd", + "name" : "generateParameters" + }, + "acm012989jsd" : { + "type" : "ControlElement", + "id" : "acm012989jsd", + "name" : "assertEqualDeadlines" + }, + "acm012990jsd" : { + "type" : "ControlElement", + "id" : "acm012990jsd", + "name" : "updateFirstFeedbackSessionOfTypicalCourse1" + }, + "acm012991jsd" : { + "type" : "ClassUnit", + "id" : "acm012991jsd", + "name" : "GetFeedbackSessionActionTest", + "compilationUnitId" : "acm012972jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006168jsd", "acm006188jsd", "acm008518jsd", "acm009221jsd", "acm009961jsd", "acm010167jsd" ], + "content" : [ "acm012976jsd", "acm012977jsd", "acm012978jsd", "acm012979jsd", "acm012980jsd", "acm012981jsd", "acm012982jsd", "acm012983jsd", "acm012984jsd", "acm012985jsd", "acm012986jsd", "acm012987jsd", "acm012988jsd", "acm012989jsd", "acm012990jsd" ] + }, + "acm012992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm012992jsd", + "name" : "GetFeedbackSessionLogsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013000jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm012993jsd" : { + "type" : "CodePackage", + "id" : "acm012993jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm012994jsd" ] + }, + "acm012994jsd" : { + "type" : "CodePackage", + "id" : "acm012994jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm012995jsd" ] + }, + "acm012995jsd" : { + "type" : "CodePackage", + "id" : "acm012995jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm012992jsd" ] + }, + "acm012996jsd" : { + "type" : "ControlElement", + "id" : "acm012996jsd", + "name" : "getActionUri" + }, + "acm012997jsd" : { + "type" : "ControlElement", + "id" : "acm012997jsd", + "name" : "getRequestMethod" + }, + "acm012998jsd" : { + "type" : "ControlElement", + "id" : "acm012998jsd", + "name" : "testExecute" + }, + "acm012999jsd" : { + "type" : "ControlElement", + "id" : "acm012999jsd", + "name" : "testAccessControl" + }, + "acm013000jsd" : { + "type" : "ClassUnit", + "id" : "acm013000jsd", + "name" : "GetFeedbackSessionLogsActionTest", + "compilationUnitId" : "acm012992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008526jsd", "acm008535jsd", "acm008542jsd", "acm010167jsd" ], + "content" : [ "acm012996jsd", "acm012997jsd", "acm012998jsd", "acm012999jsd" ] + }, + "acm013001jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013001jsd", + "name" : "GetFeedbackSessionSubmittedGiverSetActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013009jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013002jsd" : { + "type" : "CodePackage", + "id" : "acm013002jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013003jsd" ] + }, + "acm013003jsd" : { + "type" : "CodePackage", + "id" : "acm013003jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013004jsd" ] + }, + "acm013004jsd" : { + "type" : "CodePackage", + "id" : "acm013004jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013001jsd" ] + }, + "acm013005jsd" : { + "type" : "ControlElement", + "id" : "acm013005jsd", + "name" : "getActionUri" + }, + "acm013006jsd" : { + "type" : "ControlElement", + "id" : "acm013006jsd", + "name" : "getRequestMethod" + }, + "acm013007jsd" : { + "type" : "ControlElement", + "id" : "acm013007jsd", + "name" : "testExecute" + }, + "acm013008jsd" : { + "type" : "ControlElement", + "id" : "acm013008jsd", + "name" : "testAccessControl" + }, + "acm013009jsd" : { + "type" : "ClassUnit", + "id" : "acm013009jsd", + "name" : "GetFeedbackSessionSubmittedGiverSetActionTest", + "compilationUnitId" : "acm013001jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm008567jsd", "acm009978jsd", "acm010167jsd" ], + "content" : [ "acm013005jsd", "acm013006jsd", "acm013007jsd", "acm013008jsd" ] + }, + "acm013010jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013010jsd", + "name" : "GetFeedbackSessionsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013036jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013011jsd" : { + "type" : "CodePackage", + "id" : "acm013011jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013012jsd" ] + }, + "acm013012jsd" : { + "type" : "CodePackage", + "id" : "acm013012jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013013jsd" ] + }, + "acm013013jsd" : { + "type" : "CodePackage", + "id" : "acm013013jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013010jsd" ] + }, + "acm013014jsd" : { + "type" : "ControlElement", + "id" : "acm013014jsd", + "name" : "getActionUri" + }, + "acm013015jsd" : { + "type" : "ControlElement", + "id" : "acm013015jsd", + "name" : "getRequestMethod" + }, + "acm013016jsd" : { + "type" : "ControlElement", + "id" : "acm013016jsd", + "name" : "prepareTestData" + }, + "acm013017jsd" : { + "type" : "ControlElement", + "id" : "acm013017jsd", + "name" : "testExecute" + }, + "acm013018jsd" : { + "type" : "ControlElement", + "id" : "acm013018jsd", + "name" : "testExecute_asInstructorWithCourseId_shouldReturnAllSessionsForCourse" + }, + "acm013019jsd" : { + "type" : "ControlElement", + "id" : "acm013019jsd", + "name" : "testExecute_asInstructorWithRecycleBinFlagTrue_shouldReturnAllSoftDeletedSessionsForInstructor" + }, + "acm013020jsd" : { + "type" : "ControlElement", + "id" : "acm013020jsd", + "name" : "testExecute_asInstructorWithRecycleBinFlagFalse_shouldReturnAllSessionsForInstructor" + }, + "acm013021jsd" : { + "type" : "ControlElement", + "id" : "acm013021jsd", + "name" : "testExecute_instructorAsStudent_shouldReturnAllSessionsForStudent" + }, + "acm013022jsd" : { + "type" : "ControlElement", + "id" : "acm013022jsd", + "name" : "testExecute_instructorAsStudentWithCourseId_shouldReturnAllSessionsForCourseOfStudent" + }, + "acm013023jsd" : { + "type" : "ControlElement", + "id" : "acm013023jsd", + "name" : "testExecute_instructorAsStudentWithInvalidCourseId_shouldReturnEmptyList" + }, + "acm013024jsd" : { + "type" : "ControlElement", + "id" : "acm013024jsd", + "name" : "testExecute_asStudentWithCourseId_shouldReturnAllSessionsForCourse" + }, + "acm013025jsd" : { + "type" : "ControlElement", + "id" : "acm013025jsd", + "name" : "testExecute_asStudent_shouldReturnAllSessionsForAccount" + }, + "acm013026jsd" : { + "type" : "ControlElement", + "id" : "acm013026jsd", + "name" : "testExecute_asStudentWithDeadlines_shouldHaveCorrectSubmissionStatus" + }, + "acm013027jsd" : { + "type" : "ControlElement", + "id" : "acm013027jsd", + "name" : "testExecute_unknownEntityType_shouldFail" + }, + "acm013028jsd" : { + "type" : "ControlElement", + "id" : "acm013028jsd", + "name" : "testAccessControl" + }, + "acm013029jsd" : { + "type" : "ControlElement", + "id" : "acm013029jsd", + "name" : "assertDeadlinesFilteredForStudent" + }, + "acm013030jsd" : { + "type" : "ControlElement", + "id" : "acm013030jsd", + "name" : "assertInformationHiddenForStudent" + }, + "acm013031jsd" : { + "type" : "ControlElement", + "id" : "acm013031jsd", + "name" : "assertInformationHidden" + }, + "acm013032jsd" : { + "type" : "ControlElement", + "id" : "acm013032jsd", + "name" : "assertPartialInformationMatch" + }, + "acm013033jsd" : { + "type" : "ControlElement", + "id" : "acm013033jsd", + "name" : "assertAllInformationMatch" + }, + "acm013034jsd" : { + "type" : "ControlElement", + "id" : "acm013034jsd", + "name" : "assertAllInstructorSessionsMatch" + }, + "acm013035jsd" : { + "type" : "ControlElement", + "id" : "acm013035jsd", + "name" : "assertAllStudentSessionsMatch" + }, + "acm013036jsd" : { + "type" : "ClassUnit", + "id" : "acm013036jsd", + "name" : "GetFeedbackSessionsActionTest", + "compilationUnitId" : "acm013010jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008518jsd", "acm008574jsd", "acm009986jsd" ], + "content" : [ "acm013014jsd", "acm013015jsd", "acm013016jsd", "acm013017jsd", "acm013018jsd", "acm013019jsd", "acm013020jsd", "acm013021jsd", "acm013022jsd", "acm013023jsd", "acm013024jsd", "acm013025jsd", "acm013026jsd", "acm013027jsd", "acm013028jsd", "acm013029jsd", "acm013030jsd", "acm013031jsd", "acm013032jsd", "acm013033jsd", "acm013034jsd", "acm013035jsd" ] + }, + "acm013037jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013037jsd", + "name" : "GetHasResponsesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013056jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013038jsd" : { + "type" : "CodePackage", + "id" : "acm013038jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013039jsd" ] + }, + "acm013039jsd" : { + "type" : "CodePackage", + "id" : "acm013039jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013040jsd" ] + }, + "acm013040jsd" : { + "type" : "CodePackage", + "id" : "acm013040jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013037jsd" ] + }, + "acm013041jsd" : { + "type" : "ControlElement", + "id" : "acm013041jsd", + "name" : "getActionUri" + }, + "acm013042jsd" : { + "type" : "ControlElement", + "id" : "acm013042jsd", + "name" : "getRequestMethod" + }, + "acm013043jsd" : { + "type" : "ControlElement", + "id" : "acm013043jsd", + "name" : "testExecute" + }, + "acm013044jsd" : { + "type" : "ControlElement", + "id" : "acm013044jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm013045jsd" : { + "type" : "ControlElement", + "id" : "acm013045jsd", + "name" : "testExecute_asInstructorWithFakeCourse_shouldFail" + }, + "acm013046jsd" : { + "type" : "ControlElement", + "id" : "acm013046jsd", + "name" : "testExecute_asInstructorWithFakeQuestion_shouldFail" + }, + "acm013047jsd" : { + "type" : "ControlElement", + "id" : "acm013047jsd", + "name" : "testExecute_asInstructorGetRespondentsInCourse_shouldPass" + }, + "acm013048jsd" : { + "type" : "ControlElement", + "id" : "acm013048jsd", + "name" : "asInstructor_getRespondentsForQuestion_shouldPass" + }, + "acm013049jsd" : { + "type" : "ControlElement", + "id" : "acm013049jsd", + "name" : "testExecute_asInstructorWithQuestionIdAndCourseId_preferQuestionId" + }, + "acm013050jsd" : { + "type" : "ControlElement", + "id" : "acm013050jsd", + "name" : "testExecute_asStudentWithFakeFeedbackSessionName_shouldFail" + }, + "acm013051jsd" : { + "type" : "ControlElement", + "id" : "acm013051jsd", + "name" : "testExecute_asStudentGetHasRespondedForSession_shouldPass" + }, + "acm013052jsd" : { + "type" : "ControlElement", + "id" : "acm013052jsd", + "name" : "testExecute_asStudentGetHasRespondedForSessionWithoutFsParam_shouldPass" + }, + "acm013053jsd" : { + "type" : "ControlElement", + "id" : "acm013053jsd", + "name" : "testAccessControl" + }, + "acm013054jsd" : { + "type" : "ControlElement", + "id" : "acm013054jsd", + "name" : "testAccessControl_notEnoughParameters_shouldFail" + }, + "acm013055jsd" : { + "type" : "ControlElement", + "id" : "acm013055jsd", + "name" : "testAccessControl_wrongEntityType_shouldFail" + }, + "acm013056jsd" : { + "type" : "ClassUnit", + "id" : "acm013056jsd", + "name" : "GetHasResponsesActionTest", + "compilationUnitId" : "acm013037jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008596jsd", "acm009748jsd", "acm009995jsd", "acm010167jsd" ], + "content" : [ "acm013041jsd", "acm013042jsd", "acm013043jsd", "acm013044jsd", "acm013045jsd", "acm013046jsd", "acm013047jsd", "acm013048jsd", "acm013049jsd", "acm013050jsd", "acm013051jsd", "acm013052jsd", "acm013053jsd", "acm013054jsd", "acm013055jsd" ] + }, + "acm013057jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013057jsd", + "name" : "GetInstructorActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013065jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013058jsd" : { + "type" : "CodePackage", + "id" : "acm013058jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013059jsd" ] + }, + "acm013059jsd" : { + "type" : "CodePackage", + "id" : "acm013059jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013060jsd" ] + }, + "acm013060jsd" : { + "type" : "CodePackage", + "id" : "acm013060jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013057jsd" ] + }, + "acm013061jsd" : { + "type" : "ControlElement", + "id" : "acm013061jsd", + "name" : "getActionUri" + }, + "acm013062jsd" : { + "type" : "ControlElement", + "id" : "acm013062jsd", + "name" : "getRequestMethod" + }, + "acm013063jsd" : { + "type" : "ControlElement", + "id" : "acm013063jsd", + "name" : "testExecute" + }, + "acm013064jsd" : { + "type" : "ControlElement", + "id" : "acm013064jsd", + "name" : "testAccessControl" + }, + "acm013065jsd" : { + "type" : "ClassUnit", + "id" : "acm013065jsd", + "name" : "GetInstructorActionTest", + "compilationUnitId" : "acm013057jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008620jsd", "acm009748jsd", "acm010003jsd", "acm010167jsd" ], + "content" : [ "acm013061jsd", "acm013062jsd", "acm013063jsd", "acm013064jsd" ] + }, + "acm013066jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013066jsd", + "name" : "GetInstructorPrivilegeActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013080jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013067jsd" : { + "type" : "CodePackage", + "id" : "acm013067jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013068jsd" ] + }, + "acm013068jsd" : { + "type" : "CodePackage", + "id" : "acm013068jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013069jsd" ] + }, + "acm013069jsd" : { + "type" : "CodePackage", + "id" : "acm013069jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013066jsd" ] + }, + "acm013070jsd" : { + "type" : "ControlElement", + "id" : "acm013070jsd", + "name" : "getActionUri" + }, + "acm013071jsd" : { + "type" : "ControlElement", + "id" : "acm013071jsd", + "name" : "getRequestMethod" + }, + "acm013072jsd" : { + "type" : "ControlElement", + "id" : "acm013072jsd", + "name" : "prepareTestData" + }, + "acm013073jsd" : { + "type" : "ControlElement", + "id" : "acm013073jsd", + "name" : "testExecute" + }, + "acm013074jsd" : { + "type" : "ControlElement", + "id" : "acm013074jsd", + "name" : "testExecute_fetchPrivilegeOfNonExistInstructor_shouldFail" + }, + "acm013075jsd" : { + "type" : "ControlElement", + "id" : "acm013075jsd", + "name" : "testExecute_fetchPrivilegeOfAnotherInstructorByEmail_shouldSucceed" + }, + "acm013076jsd" : { + "type" : "ControlElement", + "id" : "acm013076jsd", + "name" : "testExecute_fetchPrivilegeOfAnotherInstructor_shouldSucceed" + }, + "acm013077jsd" : { + "type" : "ControlElement", + "id" : "acm013077jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm013078jsd" : { + "type" : "ControlElement", + "id" : "acm013078jsd", + "name" : "testExecute_fetchPrivilegeOfSelf_shouldSucceed" + }, + "acm013079jsd" : { + "type" : "ControlElement", + "id" : "acm013079jsd", + "name" : "testAccessControl" + }, + "acm013080jsd" : { + "type" : "ClassUnit", + "id" : "acm013080jsd", + "name" : "GetInstructorPrivilegeActionTest", + "compilationUnitId" : "acm013066jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004286jsd", "acm004332jsd", "acm005233jsd", "acm008635jsd", "acm009748jsd", "acm010011jsd" ], + "content" : [ "acm013070jsd", "acm013071jsd", "acm013072jsd", "acm013073jsd", "acm013074jsd", "acm013075jsd", "acm013076jsd", "acm013077jsd", "acm013078jsd", "acm013079jsd" ] + }, + "acm013081jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013081jsd", + "name" : "GetInstructorsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013093jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013082jsd" : { + "type" : "CodePackage", + "id" : "acm013082jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013083jsd" ] + }, + "acm013083jsd" : { + "type" : "CodePackage", + "id" : "acm013083jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013084jsd" ] + }, + "acm013084jsd" : { + "type" : "CodePackage", + "id" : "acm013084jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013081jsd" ] + }, + "acm013085jsd" : { + "type" : "ControlElement", + "id" : "acm013085jsd", + "name" : "getActionUri" + }, + "acm013086jsd" : { + "type" : "ControlElement", + "id" : "acm013086jsd", + "name" : "getRequestMethod" + }, + "acm013087jsd" : { + "type" : "ControlElement", + "id" : "acm013087jsd", + "name" : "testExecute" + }, + "acm013088jsd" : { + "type" : "ControlElement", + "id" : "acm013088jsd", + "name" : "testExecute_withoutIntent_shouldReturnPartialData" + }, + "acm013089jsd" : { + "type" : "ControlElement", + "id" : "acm013089jsd", + "name" : "testExecute_withFullDetailIntent_shouldReturnDataWithFullDetail" + }, + "acm013090jsd" : { + "type" : "ControlElement", + "id" : "acm013090jsd", + "name" : "testAccessControl" + }, + "acm013091jsd" : { + "type" : "ControlElement", + "id" : "acm013091jsd", + "name" : "testAccessControl_withFullDetailIntent_shouldDoAuthenticationOfInstructor" + }, + "acm013092jsd" : { + "type" : "ControlElement", + "id" : "acm013092jsd", + "name" : "testAccessControl_withoutIntent_shouldDoAuthenticationOfStudent" + }, + "acm013093jsd" : { + "type" : "ClassUnit", + "id" : "acm013093jsd", + "name" : "GetInstructorsActionTest", + "compilationUnitId" : "acm013081jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008620jsd", "acm008644jsd", "acm010019jsd", "acm010167jsd" ], + "content" : [ "acm013085jsd", "acm013086jsd", "acm013087jsd", "acm013088jsd", "acm013089jsd", "acm013090jsd", "acm013091jsd", "acm013092jsd" ] + }, + "acm013094jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013094jsd", + "name" : "GetNotificationActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013106jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013095jsd" : { + "type" : "CodePackage", + "id" : "acm013095jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013096jsd" ] + }, + "acm013096jsd" : { + "type" : "CodePackage", + "id" : "acm013096jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013097jsd" ] + }, + "acm013097jsd" : { + "type" : "CodePackage", + "id" : "acm013097jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013094jsd" ] + }, + "acm013098jsd" : { + "type" : "ControlElement", + "id" : "acm013098jsd", + "name" : "getActionUri" + }, + "acm013099jsd" : { + "type" : "ControlElement", + "id" : "acm013099jsd", + "name" : "getRequestMethod" + }, + "acm013100jsd" : { + "type" : "ControlElement", + "id" : "acm013100jsd", + "name" : "baseClassSetup" + }, + "acm013101jsd" : { + "type" : "ControlElement", + "id" : "acm013101jsd", + "name" : "testAccessControl" + }, + "acm013102jsd" : { + "type" : "ControlElement", + "id" : "acm013102jsd", + "name" : "testExecute" + }, + "acm013103jsd" : { + "type" : "ControlElement", + "id" : "acm013103jsd", + "name" : "testExecute_withValidNotificationId_shouldReturnData" + }, + "acm013104jsd" : { + "type" : "ControlElement", + "id" : "acm013104jsd", + "name" : "testExecute_withInvalidNotificationId_shouldThrowError" + }, + "acm013105jsd" : { + "type" : "ControlElement", + "id" : "acm013105jsd", + "name" : "verifyNotificationEquals" + }, + "acm013106jsd" : { + "type" : "ClassUnit", + "id" : "acm013106jsd", + "name" : "GetNotificationActionTest", + "compilationUnitId" : "acm013094jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005329jsd", "acm008685jsd", "acm009748jsd", "acm010025jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm013098jsd", "acm013099jsd", "acm013100jsd", "acm013101jsd", "acm013102jsd", "acm013103jsd", "acm013104jsd", "acm013105jsd" ] + }, + "acm013107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013107jsd", + "name" : "GetNotificationsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013124jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013108jsd" : { + "type" : "CodePackage", + "id" : "acm013108jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013109jsd" ] + }, + "acm013109jsd" : { + "type" : "CodePackage", + "id" : "acm013109jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013110jsd" ] + }, + "acm013110jsd" : { + "type" : "CodePackage", + "id" : "acm013110jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013107jsd" ] + }, + "acm013111jsd" : { + "type" : "ControlElement", + "id" : "acm013111jsd", + "name" : "getActionUri" + }, + "acm013112jsd" : { + "type" : "ControlElement", + "id" : "acm013112jsd", + "name" : "getRequestMethod" + }, + "acm013113jsd" : { + "type" : "ControlElement", + "id" : "acm013113jsd", + "name" : "testExecute" + }, + "acm013114jsd" : { + "type" : "ControlElement", + "id" : "acm013114jsd", + "name" : "testAccessControl" + }, + "acm013115jsd" : { + "type" : "ControlElement", + "id" : "acm013115jsd", + "name" : "testExecute_withValidUserTypeForNonAdmin_shouldReturnData" + }, + "acm013116jsd" : { + "type" : "ControlElement", + "id" : "acm013116jsd", + "name" : "testExecute_withoutUserTypeForAdmin_shouldReturnAllNotifications" + }, + "acm013117jsd" : { + "type" : "ControlElement", + "id" : "acm013117jsd", + "name" : "testExecute_withoutUserTypeForNonAdmin_shouldFail" + }, + "acm013118jsd" : { + "type" : "ControlElement", + "id" : "acm013118jsd", + "name" : "testExecute_invalidUserType_shouldFail" + }, + "acm013119jsd" : { + "type" : "ControlElement", + "id" : "acm013119jsd", + "name" : "testExecute_withFalseIsFetchingAll_shouldUpdateShownAndReturnUnreadNotifications" + }, + "acm013120jsd" : { + "type" : "ControlElement", + "id" : "acm013120jsd", + "name" : "testExecute_withoutIsFetchingAll_shouldUpdateShownAndReturnUnreadNotifications" + }, + "acm013121jsd" : { + "type" : "ControlElement", + "id" : "acm013121jsd", + "name" : "testExecute_withInvalidIsFetchingAll_shouldFail" + }, + "acm013122jsd" : { + "type" : "ControlElement", + "id" : "acm013122jsd", + "name" : "verifyNotificationEquals" + }, + "acm013123jsd" : { + "type" : "ControlElement", + "id" : "acm013123jsd", + "name" : "verifyDoesNotContainNotifications" + }, + "acm013124jsd" : { + "type" : "ClassUnit", + "id" : "acm013124jsd", + "name" : "GetNotificationsActionTest", + "compilationUnitId" : "acm013107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005329jsd", "acm005412jsd", "acm008685jsd", "acm008692jsd", "acm010033jsd", "acm010134jsd", "acm010167jsd" ], + "content" : [ "acm013111jsd", "acm013112jsd", "acm013113jsd", "acm013114jsd", "acm013115jsd", "acm013116jsd", "acm013117jsd", "acm013118jsd", "acm013119jsd", "acm013120jsd", "acm013121jsd", "acm013122jsd", "acm013123jsd" ] + }, + "acm013125jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013125jsd", + "name" : "GetOngoingSessionsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013134jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013126jsd" : { + "type" : "CodePackage", + "id" : "acm013126jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013127jsd" ] + }, + "acm013127jsd" : { + "type" : "CodePackage", + "id" : "acm013127jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013128jsd" ] + }, + "acm013128jsd" : { + "type" : "CodePackage", + "id" : "acm013128jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013125jsd" ] + }, + "acm013129jsd" : { + "type" : "ControlElement", + "id" : "acm013129jsd", + "name" : "getActionUri" + }, + "acm013130jsd" : { + "type" : "ControlElement", + "id" : "acm013130jsd", + "name" : "getRequestMethod" + }, + "acm013131jsd" : { + "type" : "ControlElement", + "id" : "acm013131jsd", + "name" : "testExecute" + }, + "acm013132jsd" : { + "type" : "ControlElement", + "id" : "acm013132jsd", + "name" : "testAccessControl" + }, + "acm013133jsd" : { + "type" : "ControlElement", + "id" : "acm013133jsd", + "name" : "verifyNoExistingSession" + }, + "acm013134jsd" : { + "type" : "ClassUnit", + "id" : "acm013134jsd", + "name" : "GetOngoingSessionsActionTest", + "compilationUnitId" : "acm013125jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008728jsd", "acm010040jsd", "acm010167jsd" ], + "content" : [ "acm013129jsd", "acm013130jsd", "acm013131jsd", "acm013132jsd", "acm013133jsd" ] + }, + "acm013135jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013135jsd", + "name" : "GetReadNotificationsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013143jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013136jsd" : { + "type" : "CodePackage", + "id" : "acm013136jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013137jsd" ] + }, + "acm013137jsd" : { + "type" : "CodePackage", + "id" : "acm013137jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013138jsd" ] + }, + "acm013138jsd" : { + "type" : "CodePackage", + "id" : "acm013138jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013135jsd" ] + }, + "acm013139jsd" : { + "type" : "ControlElement", + "id" : "acm013139jsd", + "name" : "getActionUri" + }, + "acm013140jsd" : { + "type" : "ControlElement", + "id" : "acm013140jsd", + "name" : "getRequestMethod" + }, + "acm013141jsd" : { + "type" : "ControlElement", + "id" : "acm013141jsd", + "name" : "testExecute" + }, + "acm013142jsd" : { + "type" : "ControlElement", + "id" : "acm013142jsd", + "name" : "testAccessControl" + }, + "acm013143jsd" : { + "type" : "ClassUnit", + "id" : "acm013143jsd", + "name" : "GetReadNotificationsActionTest", + "compilationUnitId" : "acm013135jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008735jsd", "acm010048jsd", "acm010167jsd" ], + "content" : [ "acm013139jsd", "acm013140jsd", "acm013141jsd", "acm013142jsd" ] + }, + "acm013144jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013144jsd", + "name" : "GetRegkeyValidityActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013152jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013145jsd" : { + "type" : "CodePackage", + "id" : "acm013145jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013146jsd" ] + }, + "acm013146jsd" : { + "type" : "CodePackage", + "id" : "acm013146jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013147jsd" ] + }, + "acm013147jsd" : { + "type" : "CodePackage", + "id" : "acm013147jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013144jsd" ] + }, + "acm013148jsd" : { + "type" : "ControlElement", + "id" : "acm013148jsd", + "name" : "getActionUri" + }, + "acm013149jsd" : { + "type" : "ControlElement", + "id" : "acm013149jsd", + "name" : "getRequestMethod" + }, + "acm013150jsd" : { + "type" : "ControlElement", + "id" : "acm013150jsd", + "name" : "testExecute" + }, + "acm013151jsd" : { + "type" : "ControlElement", + "id" : "acm013151jsd", + "name" : "testAccessControl" + }, + "acm013152jsd" : { + "type" : "ClassUnit", + "id" : "acm013152jsd", + "name" : "GetRegkeyValidityActionTest", + "compilationUnitId" : "acm013144jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008752jsd", "acm010056jsd", "acm010167jsd" ], + "content" : [ "acm013148jsd", "acm013149jsd", "acm013150jsd", "acm013151jsd" ] + }, + "acm013153jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013153jsd", + "name" : "GetSessionResponseStatsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013161jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013154jsd" : { + "type" : "CodePackage", + "id" : "acm013154jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013155jsd" ] + }, + "acm013155jsd" : { + "type" : "CodePackage", + "id" : "acm013155jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013156jsd" ] + }, + "acm013156jsd" : { + "type" : "CodePackage", + "id" : "acm013156jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013153jsd" ] + }, + "acm013157jsd" : { + "type" : "ControlElement", + "id" : "acm013157jsd", + "name" : "getActionUri" + }, + "acm013158jsd" : { + "type" : "ControlElement", + "id" : "acm013158jsd", + "name" : "getRequestMethod" + }, + "acm013159jsd" : { + "type" : "ControlElement", + "id" : "acm013159jsd", + "name" : "testExecute" + }, + "acm013160jsd" : { + "type" : "ControlElement", + "id" : "acm013160jsd", + "name" : "testAccessControl" + }, + "acm013161jsd" : { + "type" : "ClassUnit", + "id" : "acm013161jsd", + "name" : "GetSessionResponseStatsActionTest", + "compilationUnitId" : "acm013153jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008555jsd", "acm010064jsd", "acm010167jsd" ], + "content" : [ "acm013157jsd", "acm013158jsd", "acm013159jsd", "acm013160jsd" ] + }, + "acm013162jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013162jsd", + "name" : "GetSessionResultsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013179jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013163jsd" : { + "type" : "CodePackage", + "id" : "acm013163jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013164jsd" ] + }, + "acm013164jsd" : { + "type" : "CodePackage", + "id" : "acm013164jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013165jsd" ] + }, + "acm013165jsd" : { + "type" : "CodePackage", + "id" : "acm013165jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013162jsd" ] + }, + "acm013166jsd" : { + "type" : "ControlElement", + "id" : "acm013166jsd", + "name" : "getActionUri" + }, + "acm013167jsd" : { + "type" : "ControlElement", + "id" : "acm013167jsd", + "name" : "getRequestMethod" + }, + "acm013168jsd" : { + "type" : "ControlElement", + "id" : "acm013168jsd", + "name" : "testExecute" + }, + "acm013169jsd" : { + "type" : "ControlElement", + "id" : "acm013169jsd", + "name" : "testAccessControl" + }, + "acm013170jsd" : { + "type" : "ControlElement", + "id" : "acm013170jsd", + "name" : "isSessionResultsDataEqual" + }, + "acm013171jsd" : { + "type" : "ControlElement", + "id" : "acm013171jsd", + "name" : "isQuestionOutputEqual" + }, + "acm013172jsd" : { + "type" : "ControlElement", + "id" : "acm013172jsd", + "name" : "isResponseOutputEqual" + }, + "acm013173jsd" : { + "type" : "ControlElement", + "id" : "acm013173jsd", + "name" : "testAccessControl_withoutCorrectAuthInfoAccessStudentResult_shouldFail" + }, + "acm013174jsd" : { + "type" : "ControlElement", + "id" : "acm013174jsd", + "name" : "testAccessControl_studentAccessOwnCourseSessionResult_shouldPass" + }, + "acm013175jsd" : { + "type" : "ControlElement", + "id" : "acm013175jsd", + "name" : "testAccessControl_studentAccessUnpublishedSessionStudentResult_shouldFail" + }, + "acm013176jsd" : { + "type" : "ControlElement", + "id" : "acm013176jsd", + "name" : "testAccessControl_accessStudentSessionResultWithMasqueradeMode_shouldPass" + }, + "acm013177jsd" : { + "type" : "ControlElement", + "id" : "acm013177jsd", + "name" : "testAccessControl_studentAccessOtherCourseSessionResult_shouldFail" + }, + "acm013178jsd" : { + "type" : "ControlElement", + "id" : "acm013178jsd", + "name" : "testAccessControl_instructorAccessHisCourseFullDetail_shouldPass" + }, + "acm013179jsd" : { + "type" : "ClassUnit", + "id" : "acm013179jsd", + "name" : "GetSessionResultsActionTest", + "compilationUnitId" : "acm013162jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004248jsd", "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm008840jsd", "acm008850jsd", "acm008883jsd", "acm010072jsd", "acm010167jsd" ], + "content" : [ "acm013166jsd", "acm013167jsd", "acm013168jsd", "acm013169jsd", "acm013170jsd", "acm013171jsd", "acm013172jsd", "acm013173jsd", "acm013174jsd", "acm013175jsd", "acm013176jsd", "acm013177jsd", "acm013178jsd" ] + }, + "acm013180jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013180jsd", + "name" : "GetStudentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013189jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013181jsd" : { + "type" : "CodePackage", + "id" : "acm013181jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013182jsd" ] + }, + "acm013182jsd" : { + "type" : "CodePackage", + "id" : "acm013182jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013183jsd" ] + }, + "acm013183jsd" : { + "type" : "CodePackage", + "id" : "acm013183jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013180jsd" ] + }, + "acm013184jsd" : { + "type" : "ControlElement", + "id" : "acm013184jsd", + "name" : "getActionUri" + }, + "acm013185jsd" : { + "type" : "ControlElement", + "id" : "acm013185jsd", + "name" : "getRequestMethod" + }, + "acm013186jsd" : { + "type" : "ControlElement", + "id" : "acm013186jsd", + "name" : "assertStudentDataMatches" + }, + "acm013187jsd" : { + "type" : "ControlElement", + "id" : "acm013187jsd", + "name" : "testExecute" + }, + "acm013188jsd" : { + "type" : "ControlElement", + "id" : "acm013188jsd", + "name" : "testAccessControl" + }, + "acm013189jsd" : { + "type" : "ClassUnit", + "id" : "acm013189jsd", + "name" : "GetStudentActionTest", + "compilationUnitId" : "acm013180jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008946jsd", "acm009748jsd", "acm010080jsd", "acm010167jsd" ], + "content" : [ "acm013184jsd", "acm013185jsd", "acm013186jsd", "acm013187jsd", "acm013188jsd" ] + }, + "acm013190jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013190jsd", + "name" : "GetStudentsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013202jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013191jsd" : { + "type" : "CodePackage", + "id" : "acm013191jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013192jsd" ] + }, + "acm013192jsd" : { + "type" : "CodePackage", + "id" : "acm013192jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013193jsd" ] + }, + "acm013193jsd" : { + "type" : "CodePackage", + "id" : "acm013193jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013190jsd" ] + }, + "acm013194jsd" : { + "type" : "ControlElement", + "id" : "acm013194jsd", + "name" : "getActionUri" + }, + "acm013195jsd" : { + "type" : "ControlElement", + "id" : "acm013195jsd", + "name" : "getRequestMethod" + }, + "acm013196jsd" : { + "type" : "ControlElement", + "id" : "acm013196jsd", + "name" : "testExecute" + }, + "acm013197jsd" : { + "type" : "ControlElement", + "id" : "acm013197jsd", + "name" : "testExecute_withOnlyCourseId_shouldReturnAllStudentsOfTheCourse" + }, + "acm013198jsd" : { + "type" : "ControlElement", + "id" : "acm013198jsd", + "name" : "testExecute_withCourseIdAndTeamName_shouldReturnAllStudentsOfTheTeam" + }, + "acm013199jsd" : { + "type" : "ControlElement", + "id" : "acm013199jsd", + "name" : "testAccessControl" + }, + "acm013200jsd" : { + "type" : "ControlElement", + "id" : "acm013200jsd", + "name" : "testAccessControl_withOnlyCourseId_shouldDoAuthenticationOfInstructor" + }, + "acm013201jsd" : { + "type" : "ControlElement", + "id" : "acm013201jsd", + "name" : "testAccessControl_withCourseIdAndTeamName_shouldDoAuthenticationOfStudent" + }, + "acm013202jsd" : { + "type" : "ClassUnit", + "id" : "acm013202jsd", + "name" : "GetStudentsActionTest", + "compilationUnitId" : "acm013190jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008946jsd", "acm008955jsd", "acm010088jsd", "acm010167jsd" ], + "content" : [ "acm013194jsd", "acm013195jsd", "acm013196jsd", "acm013197jsd", "acm013198jsd", "acm013199jsd", "acm013200jsd", "acm013201jsd" ] + }, + "acm013203jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013203jsd", + "name" : "GetTimeZonesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013211jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013204jsd" : { + "type" : "CodePackage", + "id" : "acm013204jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013205jsd" ] + }, + "acm013205jsd" : { + "type" : "CodePackage", + "id" : "acm013205jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013206jsd" ] + }, + "acm013206jsd" : { + "type" : "CodePackage", + "id" : "acm013206jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013203jsd" ] + }, + "acm013207jsd" : { + "type" : "ControlElement", + "id" : "acm013207jsd", + "name" : "getActionUri" + }, + "acm013208jsd" : { + "type" : "ControlElement", + "id" : "acm013208jsd", + "name" : "getRequestMethod" + }, + "acm013209jsd" : { + "type" : "ControlElement", + "id" : "acm013209jsd", + "name" : "testExecute" + }, + "acm013210jsd" : { + "type" : "ControlElement", + "id" : "acm013210jsd", + "name" : "testAccessControl" + }, + "acm013211jsd" : { + "type" : "ClassUnit", + "id" : "acm013211jsd", + "name" : "GetTimeZonesActionTest", + "compilationUnitId" : "acm013203jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008963jsd", "acm010096jsd", "acm010167jsd" ], + "content" : [ "acm013207jsd", "acm013208jsd", "acm013209jsd", "acm013210jsd" ] + }, + "acm013212jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013212jsd", + "name" : "GetUsageStatisticsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013220jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013213jsd" : { + "type" : "CodePackage", + "id" : "acm013213jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013214jsd" ] + }, + "acm013214jsd" : { + "type" : "CodePackage", + "id" : "acm013214jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013215jsd" ] + }, + "acm013215jsd" : { + "type" : "CodePackage", + "id" : "acm013215jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013212jsd" ] + }, + "acm013216jsd" : { + "type" : "ControlElement", + "id" : "acm013216jsd", + "name" : "getActionUri" + }, + "acm013217jsd" : { + "type" : "ControlElement", + "id" : "acm013217jsd", + "name" : "getRequestMethod" + }, + "acm013218jsd" : { + "type" : "ControlElement", + "id" : "acm013218jsd", + "name" : "testAccessControl" + }, + "acm013219jsd" : { + "type" : "ControlElement", + "id" : "acm013219jsd", + "name" : "testExecute" + }, + "acm013220jsd" : { + "type" : "ClassUnit", + "id" : "acm013220jsd", + "name" : "GetUsageStatisticsActionTest", + "compilationUnitId" : "acm013212jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm010104jsd" ], + "content" : [ "acm013216jsd", "acm013217jsd", "acm013218jsd", "acm013219jsd" ] + }, + "acm013221jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013221jsd", + "name" : "InstructorCourseJoinEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013229jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013222jsd" : { + "type" : "CodePackage", + "id" : "acm013222jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013223jsd" ] + }, + "acm013223jsd" : { + "type" : "CodePackage", + "id" : "acm013223jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013224jsd" ] + }, + "acm013224jsd" : { + "type" : "CodePackage", + "id" : "acm013224jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013221jsd" ] + }, + "acm013225jsd" : { + "type" : "ControlElement", + "id" : "acm013225jsd", + "name" : "getActionUri" + }, + "acm013226jsd" : { + "type" : "ControlElement", + "id" : "acm013226jsd", + "name" : "getRequestMethod" + }, + "acm013227jsd" : { + "type" : "ControlElement", + "id" : "acm013227jsd", + "name" : "testAccessControl" + }, + "acm013228jsd" : { + "type" : "ControlElement", + "id" : "acm013228jsd", + "name" : "testExecute" + }, + "acm013229jsd" : { + "type" : "ClassUnit", + "id" : "acm013229jsd", + "name" : "InstructorCourseJoinEmailWorkerActionTest", + "compilationUnitId" : "acm013221jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004486jsd", "acm004598jsd", "acm005233jsd", "acm006290jsd", "acm010118jsd" ], + "content" : [ "acm013225jsd", "acm013226jsd", "acm013227jsd", "acm013228jsd" ] + }, + "acm013230jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013230jsd", + "name" : "InstructorSearchIndexingWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013238jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013231jsd" : { + "type" : "CodePackage", + "id" : "acm013231jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013232jsd" ] + }, + "acm013232jsd" : { + "type" : "CodePackage", + "id" : "acm013232jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013233jsd" ] + }, + "acm013233jsd" : { + "type" : "CodePackage", + "id" : "acm013233jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013230jsd" ] + }, + "acm013234jsd" : { + "type" : "ControlElement", + "id" : "acm013234jsd", + "name" : "getActionUri" + }, + "acm013235jsd" : { + "type" : "ControlElement", + "id" : "acm013235jsd", + "name" : "getRequestMethod" + }, + "acm013236jsd" : { + "type" : "ControlElement", + "id" : "acm013236jsd", + "name" : "testExecute" + }, + "acm013237jsd" : { + "type" : "ControlElement", + "id" : "acm013237jsd", + "name" : "testAccessControl" + }, + "acm013238jsd" : { + "type" : "ClassUnit", + "id" : "acm013238jsd", + "name" : "InstructorSearchIndexingWorkerActionTest", + "compilationUnitId" : "acm013230jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm010124jsd" ], + "content" : [ "acm013234jsd", "acm013235jsd", "acm013236jsd", "acm013237jsd" ] + }, + "acm013239jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013239jsd", + "name" : "JoinCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013247jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013240jsd" : { + "type" : "CodePackage", + "id" : "acm013240jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013241jsd" ] + }, + "acm013241jsd" : { + "type" : "CodePackage", + "id" : "acm013241jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013242jsd" ] + }, + "acm013242jsd" : { + "type" : "CodePackage", + "id" : "acm013242jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013239jsd" ] + }, + "acm013243jsd" : { + "type" : "ControlElement", + "id" : "acm013243jsd", + "name" : "getActionUri" + }, + "acm013244jsd" : { + "type" : "ControlElement", + "id" : "acm013244jsd", + "name" : "getRequestMethod" + }, + "acm013245jsd" : { + "type" : "ControlElement", + "id" : "acm013245jsd", + "name" : "testExecute" + }, + "acm013246jsd" : { + "type" : "ControlElement", + "id" : "acm013246jsd", + "name" : "testAccessControl" + }, + "acm013247jsd" : { + "type" : "ClassUnit", + "id" : "acm013247jsd", + "name" : "JoinCourseActionTest", + "compilationUnitId" : "acm013239jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd", "acm010144jsd", "acm010155jsd" ], + "content" : [ "acm013243jsd", "acm013244jsd", "acm013245jsd", "acm013246jsd" ] + }, + "acm013248jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013248jsd", + "name" : "JsonResultTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013253jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013249jsd" : { + "type" : "CodePackage", + "id" : "acm013249jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013250jsd" ] + }, + "acm013250jsd" : { + "type" : "CodePackage", + "id" : "acm013250jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013251jsd" ] + }, + "acm013251jsd" : { + "type" : "CodePackage", + "id" : "acm013251jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013248jsd" ] + }, + "acm013252jsd" : { + "type" : "ControlElement", + "id" : "acm013252jsd", + "name" : "testConstructorAndSendResponse" + }, + "acm013253jsd" : { + "type" : "ClassUnit", + "id" : "acm013253jsd", + "name" : "JsonResultTest", + "compilationUnitId" : "acm013248jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm011989jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm008670jsd", "acm010167jsd", "acm012225jsd" ], + "content" : [ "acm013252jsd" ] + }, + "acm013254jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013254jsd", + "name" : "MarkNotificationAsReadActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013262jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013255jsd" : { + "type" : "CodePackage", + "id" : "acm013255jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013256jsd" ] + }, + "acm013256jsd" : { + "type" : "CodePackage", + "id" : "acm013256jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013257jsd" ] + }, + "acm013257jsd" : { + "type" : "CodePackage", + "id" : "acm013257jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013254jsd" ] + }, + "acm013258jsd" : { + "type" : "ControlElement", + "id" : "acm013258jsd", + "name" : "getActionUri" + }, + "acm013259jsd" : { + "type" : "ControlElement", + "id" : "acm013259jsd", + "name" : "getRequestMethod" + }, + "acm013260jsd" : { + "type" : "ControlElement", + "id" : "acm013260jsd", + "name" : "testExecute" + }, + "acm013261jsd" : { + "type" : "ControlElement", + "id" : "acm013261jsd", + "name" : "testAccessControl" + }, + "acm013262jsd" : { + "type" : "ClassUnit", + "id" : "acm013262jsd", + "name" : "MarkNotificationAsReadActionTest", + "compilationUnitId" : "acm013254jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005329jsd", "acm008735jsd", "acm009237jsd", "acm010167jsd", "acm010175jsd" ], + "content" : [ "acm013258jsd", "acm013259jsd", "acm013260jsd", "acm013261jsd" ] + }, + "acm013263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013263jsd", + "name" : "PublishFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013272jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013264jsd" : { + "type" : "CodePackage", + "id" : "acm013264jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013265jsd" ] + }, + "acm013265jsd" : { + "type" : "CodePackage", + "id" : "acm013265jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013266jsd" ] + }, + "acm013266jsd" : { + "type" : "CodePackage", + "id" : "acm013266jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013263jsd" ] + }, + "acm013267jsd" : { + "type" : "ControlElement", + "id" : "acm013267jsd", + "name" : "getActionUri" + }, + "acm013268jsd" : { + "type" : "ControlElement", + "id" : "acm013268jsd", + "name" : "getRequestMethod" + }, + "acm013269jsd" : { + "type" : "ControlElement", + "id" : "acm013269jsd", + "name" : "testExecute" + }, + "acm013270jsd" : { + "type" : "ControlElement", + "id" : "acm013270jsd", + "name" : "testExecute_invalidRequests_shouldFail" + }, + "acm013271jsd" : { + "type" : "ControlElement", + "id" : "acm013271jsd", + "name" : "testAccessControl" + }, + "acm013272jsd" : { + "type" : "ClassUnit", + "id" : "acm013272jsd", + "name" : "PublishFeedbackSessionActionTest", + "compilationUnitId" : "acm013263jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm008518jsd", "acm009748jsd", "acm010167jsd", "acm010183jsd" ], + "content" : [ "acm013267jsd", "acm013268jsd", "acm013269jsd", "acm013270jsd", "acm013271jsd" ] + }, + "acm013273jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013273jsd", + "name" : "QueryLogsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013281jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013274jsd" : { + "type" : "CodePackage", + "id" : "acm013274jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013275jsd" ] + }, + "acm013275jsd" : { + "type" : "CodePackage", + "id" : "acm013275jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013276jsd" ] + }, + "acm013276jsd" : { + "type" : "CodePackage", + "id" : "acm013276jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013273jsd" ] + }, + "acm013277jsd" : { + "type" : "ControlElement", + "id" : "acm013277jsd", + "name" : "getActionUri" + }, + "acm013278jsd" : { + "type" : "ControlElement", + "id" : "acm013278jsd", + "name" : "getRequestMethod" + }, + "acm013279jsd" : { + "type" : "ControlElement", + "id" : "acm013279jsd", + "name" : "testExecute" + }, + "acm013280jsd" : { + "type" : "ControlElement", + "id" : "acm013280jsd", + "name" : "testAccessControl" + }, + "acm013281jsd" : { + "type" : "ClassUnit", + "id" : "acm013281jsd", + "name" : "QueryLogsActionTest", + "compilationUnitId" : "acm013273jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005512jsd", "acm005530jsd", "acm005546jsd", "acm005572jsd", "acm005702jsd", "acm005714jsd", "acm005726jsd", "acm008587jsd", "acm010167jsd" ], + "content" : [ "acm013277jsd", "acm013278jsd", "acm013279jsd", "acm013280jsd" ] + }, + "acm013282jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013282jsd", + "name" : "RegenerateInstructorKeyActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013295jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013283jsd" : { + "type" : "CodePackage", + "id" : "acm013283jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013284jsd" ] + }, + "acm013284jsd" : { + "type" : "CodePackage", + "id" : "acm013284jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013285jsd" ] + }, + "acm013285jsd" : { + "type" : "CodePackage", + "id" : "acm013285jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013282jsd" ] + }, + "acm013286jsd" : { + "type" : "ControlElement", + "id" : "acm013286jsd", + "name" : "getActionUri" + }, + "acm013287jsd" : { + "type" : "ControlElement", + "id" : "acm013287jsd", + "name" : "getRequestMethod" + }, + "acm013288jsd" : { + "type" : "ControlElement", + "id" : "acm013288jsd", + "name" : "baseClassSetup" + }, + "acm013289jsd" : { + "type" : "ControlElement", + "id" : "acm013289jsd", + "name" : "testExecute_notEnoughParameters" + }, + "acm013290jsd" : { + "type" : "ControlElement", + "id" : "acm013290jsd", + "name" : "testExecute_nonExistentCourse_shouldFail" + }, + "acm013291jsd" : { + "type" : "ControlElement", + "id" : "acm013291jsd", + "name" : "testExecute_nonExistentInstructorInCourse_shouldFail" + }, + "acm013292jsd" : { + "type" : "ControlElement", + "id" : "acm013292jsd", + "name" : "testExecute_regenerateInstructorKey" + }, + "acm013293jsd" : { + "type" : "ControlElement", + "id" : "acm013293jsd", + "name" : "testExecute" + }, + "acm013294jsd" : { + "type" : "ControlElement", + "id" : "acm013294jsd", + "name" : "testAccessControl" + }, + "acm013295jsd" : { + "type" : "ClassUnit", + "id" : "acm013295jsd", + "name" : "RegenerateInstructorKeyActionTest", + "compilationUnitId" : "acm013282jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm006290jsd", "acm008743jsd", "acm010167jsd", "acm010215jsd" ], + "content" : [ "acm013286jsd", "acm013287jsd", "acm013288jsd", "acm013289jsd", "acm013290jsd", "acm013291jsd", "acm013292jsd", "acm013293jsd", "acm013294jsd" ] + }, + "acm013296jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013296jsd", + "name" : "RegenerateStudentKeyActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013309jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013297jsd" : { + "type" : "CodePackage", + "id" : "acm013297jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013298jsd" ] + }, + "acm013298jsd" : { + "type" : "CodePackage", + "id" : "acm013298jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013299jsd" ] + }, + "acm013299jsd" : { + "type" : "CodePackage", + "id" : "acm013299jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013296jsd" ] + }, + "acm013300jsd" : { + "type" : "ControlElement", + "id" : "acm013300jsd", + "name" : "getActionUri" + }, + "acm013301jsd" : { + "type" : "ControlElement", + "id" : "acm013301jsd", + "name" : "getRequestMethod" + }, + "acm013302jsd" : { + "type" : "ControlElement", + "id" : "acm013302jsd", + "name" : "baseClassSetup" + }, + "acm013303jsd" : { + "type" : "ControlElement", + "id" : "acm013303jsd", + "name" : "testExecute_notEnoughParameters" + }, + "acm013304jsd" : { + "type" : "ControlElement", + "id" : "acm013304jsd", + "name" : "testExecute_nonExistentCourse_shouldFail" + }, + "acm013305jsd" : { + "type" : "ControlElement", + "id" : "acm013305jsd", + "name" : "testExecute_nonExistentStudentInCourse_shouldFail" + }, + "acm013306jsd" : { + "type" : "ControlElement", + "id" : "acm013306jsd", + "name" : "testExecute_regenerateStudentKey" + }, + "acm013307jsd" : { + "type" : "ControlElement", + "id" : "acm013307jsd", + "name" : "testExecute" + }, + "acm013308jsd" : { + "type" : "ControlElement", + "id" : "acm013308jsd", + "name" : "testAccessControl" + }, + "acm013309jsd" : { + "type" : "ClassUnit", + "id" : "acm013309jsd", + "name" : "RegenerateStudentKeyActionTest", + "compilationUnitId" : "acm013296jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm006290jsd", "acm008743jsd", "acm010167jsd", "acm010222jsd" ], + "content" : [ "acm013300jsd", "acm013301jsd", "acm013302jsd", "acm013303jsd", "acm013304jsd", "acm013305jsd", "acm013306jsd", "acm013307jsd", "acm013308jsd" ] + }, + "acm013310jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013310jsd", + "name" : "RemindFeedbackSessionResultActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013318jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013311jsd" : { + "type" : "CodePackage", + "id" : "acm013311jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013312jsd" ] + }, + "acm013312jsd" : { + "type" : "CodePackage", + "id" : "acm013312jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013313jsd" ] + }, + "acm013313jsd" : { + "type" : "CodePackage", + "id" : "acm013313jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013310jsd" ] + }, + "acm013314jsd" : { + "type" : "ControlElement", + "id" : "acm013314jsd", + "name" : "getActionUri" + }, + "acm013315jsd" : { + "type" : "ControlElement", + "id" : "acm013315jsd", + "name" : "getRequestMethod" + }, + "acm013316jsd" : { + "type" : "ControlElement", + "id" : "acm013316jsd", + "name" : "testExecute" + }, + "acm013317jsd" : { + "type" : "ControlElement", + "id" : "acm013317jsd", + "name" : "testAccessControl" + }, + "acm013318jsd" : { + "type" : "ClassUnit", + "id" : "acm013318jsd", + "name" : "RemindFeedbackSessionResultActionTest", + "compilationUnitId" : "acm013310jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009186jsd", "acm010144jsd", "acm010230jsd" ], + "content" : [ "acm013314jsd", "acm013315jsd", "acm013316jsd", "acm013317jsd" ] + }, + "acm013319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013319jsd", + "name" : "RemindFeedbackSessionSubmissionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013327jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013320jsd" : { + "type" : "CodePackage", + "id" : "acm013320jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013321jsd" ] + }, + "acm013321jsd" : { + "type" : "CodePackage", + "id" : "acm013321jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013322jsd" ] + }, + "acm013322jsd" : { + "type" : "CodePackage", + "id" : "acm013322jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013319jsd" ] + }, + "acm013323jsd" : { + "type" : "ControlElement", + "id" : "acm013323jsd", + "name" : "getActionUri" + }, + "acm013324jsd" : { + "type" : "ControlElement", + "id" : "acm013324jsd", + "name" : "getRequestMethod" + }, + "acm013325jsd" : { + "type" : "ControlElement", + "id" : "acm013325jsd", + "name" : "testExecute" + }, + "acm013326jsd" : { + "type" : "ControlElement", + "id" : "acm013326jsd", + "name" : "testAccessControl" + }, + "acm013327jsd" : { + "type" : "ClassUnit", + "id" : "acm013327jsd", + "name" : "RemindFeedbackSessionSubmissionActionTest", + "compilationUnitId" : "acm013319jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009186jsd", "acm010144jsd", "acm010238jsd" ], + "content" : [ "acm013323jsd", "acm013324jsd", "acm013325jsd", "acm013326jsd" ] + }, + "acm013328jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013328jsd", + "name" : "ResetAccountActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013336jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013329jsd" : { + "type" : "CodePackage", + "id" : "acm013329jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013330jsd" ] + }, + "acm013330jsd" : { + "type" : "CodePackage", + "id" : "acm013330jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013331jsd" ] + }, + "acm013331jsd" : { + "type" : "CodePackage", + "id" : "acm013331jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013328jsd" ] + }, + "acm013332jsd" : { + "type" : "ControlElement", + "id" : "acm013332jsd", + "name" : "getActionUri" + }, + "acm013333jsd" : { + "type" : "ControlElement", + "id" : "acm013333jsd", + "name" : "getRequestMethod" + }, + "acm013334jsd" : { + "type" : "ControlElement", + "id" : "acm013334jsd", + "name" : "testExecute" + }, + "acm013335jsd" : { + "type" : "ControlElement", + "id" : "acm013335jsd", + "name" : "testAccessControl" + }, + "acm013336jsd" : { + "type" : "ClassUnit", + "id" : "acm013336jsd", + "name" : "ResetAccountActionTest", + "compilationUnitId" : "acm013328jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm008670jsd", "acm009748jsd", "acm010134jsd", "acm010167jsd", "acm010244jsd" ], + "content" : [ "acm013332jsd", "acm013333jsd", "acm013334jsd", "acm013335jsd" ] + }, + "acm013337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013337jsd", + "name" : "ResetAccountRequestActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013345jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013338jsd" : { + "type" : "CodePackage", + "id" : "acm013338jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013339jsd" ] + }, + "acm013339jsd" : { + "type" : "CodePackage", + "id" : "acm013339jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013340jsd" ] + }, + "acm013340jsd" : { + "type" : "CodePackage", + "id" : "acm013340jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013337jsd" ] + }, + "acm013341jsd" : { + "type" : "ControlElement", + "id" : "acm013341jsd", + "name" : "getActionUri" + }, + "acm013342jsd" : { + "type" : "ControlElement", + "id" : "acm013342jsd", + "name" : "getRequestMethod" + }, + "acm013343jsd" : { + "type" : "ControlElement", + "id" : "acm013343jsd", + "name" : "testExecute" + }, + "acm013344jsd" : { + "type" : "ControlElement", + "id" : "acm013344jsd", + "name" : "testAccessControl" + }, + "acm013345jsd" : { + "type" : "ClassUnit", + "id" : "acm013345jsd", + "name" : "ResetAccountRequestActionTest", + "compilationUnitId" : "acm013337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004539jsd", "acm006290jsd", "acm008651jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd", "acm010250jsd" ], + "content" : [ "acm013341jsd", "acm013342jsd", "acm013343jsd", "acm013344jsd" ] + }, + "acm013346jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013346jsd", + "name" : "RestoreCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013354jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013347jsd" : { + "type" : "CodePackage", + "id" : "acm013347jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013348jsd" ] + }, + "acm013348jsd" : { + "type" : "CodePackage", + "id" : "acm013348jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013349jsd" ] + }, + "acm013349jsd" : { + "type" : "CodePackage", + "id" : "acm013349jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013346jsd" ] + }, + "acm013350jsd" : { + "type" : "ControlElement", + "id" : "acm013350jsd", + "name" : "getActionUri" + }, + "acm013351jsd" : { + "type" : "ControlElement", + "id" : "acm013351jsd", + "name" : "getRequestMethod" + }, + "acm013352jsd" : { + "type" : "ControlElement", + "id" : "acm013352jsd", + "name" : "testExecute" + }, + "acm013353jsd" : { + "type" : "ControlElement", + "id" : "acm013353jsd", + "name" : "testAccessControl" + }, + "acm013354jsd" : { + "type" : "ClassUnit", + "id" : "acm013354jsd", + "name" : "RestoreCourseActionTest", + "compilationUnitId" : "acm013346jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005233jsd", "acm008670jsd", "acm010167jsd", "acm010258jsd" ], + "content" : [ "acm013350jsd", "acm013351jsd", "acm013352jsd", "acm013353jsd" ] + }, + "acm013355jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013355jsd", + "name" : "RestoreFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013366jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013356jsd" : { + "type" : "CodePackage", + "id" : "acm013356jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013357jsd" ] + }, + "acm013357jsd" : { + "type" : "CodePackage", + "id" : "acm013357jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013358jsd" ] + }, + "acm013358jsd" : { + "type" : "CodePackage", + "id" : "acm013358jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013355jsd" ] + }, + "acm013359jsd" : { + "type" : "ControlElement", + "id" : "acm013359jsd", + "name" : "getActionUri" + }, + "acm013360jsd" : { + "type" : "ControlElement", + "id" : "acm013360jsd", + "name" : "getRequestMethod" + }, + "acm013361jsd" : { + "type" : "ControlElement", + "id" : "acm013361jsd", + "name" : "testExecute" + }, + "acm013362jsd" : { + "type" : "ControlElement", + "id" : "acm013362jsd", + "name" : "testExecute_withSessionInBin_shouldRestoreSession" + }, + "acm013363jsd" : { + "type" : "ControlElement", + "id" : "acm013363jsd", + "name" : "testExecute_withSessionNotInBin_shouldFail" + }, + "acm013364jsd" : { + "type" : "ControlElement", + "id" : "acm013364jsd", + "name" : "testExecute_withEmptyParameters_shouldFail" + }, + "acm013365jsd" : { + "type" : "ControlElement", + "id" : "acm013365jsd", + "name" : "testAccessControl" + }, + "acm013366jsd" : { + "type" : "ClassUnit", + "id" : "acm013366jsd", + "name" : "RestoreFeedbackSessionActionTest", + "compilationUnitId" : "acm013355jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008518jsd", "acm009748jsd", "acm010167jsd", "acm010266jsd" ], + "content" : [ "acm013359jsd", "acm013360jsd", "acm013361jsd", "acm013362jsd", "acm013363jsd", "acm013364jsd", "acm013365jsd" ] + }, + "acm013367jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013367jsd", + "name" : "SearchAccountRequestsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013382jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013368jsd" : { + "type" : "CodePackage", + "id" : "acm013368jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013369jsd" ] + }, + "acm013369jsd" : { + "type" : "CodePackage", + "id" : "acm013369jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013370jsd" ] + }, + "acm013370jsd" : { + "type" : "CodePackage", + "id" : "acm013370jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013367jsd" ] + }, + "acm013371jsd" : { + "type" : "ControlElement", + "id" : "acm013371jsd", + "name" : "prepareTestData" + }, + "acm013372jsd" : { + "type" : "ControlElement", + "id" : "acm013372jsd", + "name" : "getActionUri" + }, + "acm013373jsd" : { + "type" : "ControlElement", + "id" : "acm013373jsd", + "name" : "getRequestMethod" + }, + "acm013374jsd" : { + "type" : "ControlElement", + "id" : "acm013374jsd", + "name" : "testExecute" + }, + "acm013375jsd" : { + "type" : "ControlElement", + "id" : "acm013375jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm013376jsd" : { + "type" : "ControlElement", + "id" : "acm013376jsd", + "name" : "testExecute_searchEmail_shouldSucceed" + }, + "acm013377jsd" : { + "type" : "ControlElement", + "id" : "acm013377jsd", + "name" : "testExecute_searchInstitute_shouldSucceed" + }, + "acm013378jsd" : { + "type" : "ControlElement", + "id" : "acm013378jsd", + "name" : "testExecute_searchName_shouldSucceed" + }, + "acm013379jsd" : { + "type" : "ControlElement", + "id" : "acm013379jsd", + "name" : "testExecute_searchNoMatch_shouldBeEmpty" + }, + "acm013380jsd" : { + "type" : "ControlElement", + "id" : "acm013380jsd", + "name" : "testExecute_noSearchService_shouldReturn501" + }, + "acm013381jsd" : { + "type" : "ControlElement", + "id" : "acm013381jsd", + "name" : "testAccessControl" + }, + "acm013382jsd" : { + "type" : "ClassUnit", + "id" : "acm013382jsd", + "name" : "SearchAccountRequestsActionTest", + "compilationUnitId" : "acm013367jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004539jsd", "acm008265jsd", "acm008670jsd", "acm010167jsd", "acm010272jsd" ], + "content" : [ "acm013371jsd", "acm013372jsd", "acm013373jsd", "acm013374jsd", "acm013375jsd", "acm013376jsd", "acm013377jsd", "acm013378jsd", "acm013379jsd", "acm013380jsd", "acm013381jsd" ] + }, + "acm013383jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013383jsd", + "name" : "SearchInstructorsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013400jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013384jsd" : { + "type" : "CodePackage", + "id" : "acm013384jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013385jsd" ] + }, + "acm013385jsd" : { + "type" : "CodePackage", + "id" : "acm013385jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013386jsd" ] + }, + "acm013386jsd" : { + "type" : "CodePackage", + "id" : "acm013386jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013383jsd" ] + }, + "acm013387jsd" : { + "type" : "ControlElement", + "id" : "acm013387jsd", + "name" : "prepareTestData" + }, + "acm013388jsd" : { + "type" : "ControlElement", + "id" : "acm013388jsd", + "name" : "getActionUri" + }, + "acm013389jsd" : { + "type" : "ControlElement", + "id" : "acm013389jsd", + "name" : "getRequestMethod" + }, + "acm013390jsd" : { + "type" : "ControlElement", + "id" : "acm013390jsd", + "name" : "testExecute" + }, + "acm013391jsd" : { + "type" : "ControlElement", + "id" : "acm013391jsd", + "name" : "testExecute_notEnoughParameters_shouldFail" + }, + "acm013392jsd" : { + "type" : "ControlElement", + "id" : "acm013392jsd", + "name" : "testExecute_searchCourseId_shouldSucceed" + }, + "acm013393jsd" : { + "type" : "ControlElement", + "id" : "acm013393jsd", + "name" : "testExecute_searchDisplayedName_shouldSucceed" + }, + "acm013394jsd" : { + "type" : "ControlElement", + "id" : "acm013394jsd", + "name" : "testExecute_searchEmail_shouldSucceed" + }, + "acm013395jsd" : { + "type" : "ControlElement", + "id" : "acm013395jsd", + "name" : "testExecute_searchGoogleId_shouldSucceed" + }, + "acm013396jsd" : { + "type" : "ControlElement", + "id" : "acm013396jsd", + "name" : "testExecute_searchName_shouldSucceed" + }, + "acm013397jsd" : { + "type" : "ControlElement", + "id" : "acm013397jsd", + "name" : "testExecute_searchNoMatch_shouldBeEmpty" + }, + "acm013398jsd" : { + "type" : "ControlElement", + "id" : "acm013398jsd", + "name" : "testExecute_noSearchService_shouldReturn501" + }, + "acm013399jsd" : { + "type" : "ControlElement", + "id" : "acm013399jsd", + "name" : "testAccessControl" + }, + "acm013400jsd" : { + "type" : "ClassUnit", + "id" : "acm013400jsd", + "name" : "SearchInstructorsActionTest", + "compilationUnitId" : "acm013383jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm005233jsd", "acm008644jsd", "acm008670jsd", "acm010167jsd", "acm010278jsd" ], + "content" : [ "acm013387jsd", "acm013388jsd", "acm013389jsd", "acm013390jsd", "acm013391jsd", "acm013392jsd", "acm013393jsd", "acm013394jsd", "acm013395jsd", "acm013396jsd", "acm013397jsd", "acm013398jsd", "acm013399jsd" ] + }, + "acm013401jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013401jsd", + "name" : "SearchStudentsActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013419jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013402jsd" : { + "type" : "CodePackage", + "id" : "acm013402jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013403jsd" ] + }, + "acm013403jsd" : { + "type" : "CodePackage", + "id" : "acm013403jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013404jsd" ] + }, + "acm013404jsd" : { + "type" : "CodePackage", + "id" : "acm013404jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013401jsd" ] + }, + "acm013405jsd" : { + "type" : "ControlElement", + "id" : "acm013405jsd", + "name" : "prepareTestData" + }, + "acm013406jsd" : { + "type" : "ControlElement", + "id" : "acm013406jsd", + "name" : "getActionUri" + }, + "acm013407jsd" : { + "type" : "ControlElement", + "id" : "acm013407jsd", + "name" : "getRequestMethod" + }, + "acm013408jsd" : { + "type" : "ControlElement", + "id" : "acm013408jsd", + "name" : "testExecute" + }, + "acm013409jsd" : { + "type" : "ControlElement", + "id" : "acm013409jsd", + "name" : "execute_invalidParameters_parameterFailure" + }, + "acm013410jsd" : { + "type" : "ControlElement", + "id" : "acm013410jsd", + "name" : "execute_adminSearchName_success" + }, + "acm013411jsd" : { + "type" : "ControlElement", + "id" : "acm013411jsd", + "name" : "execute_adminSearchCourseId_success" + }, + "acm013412jsd" : { + "type" : "ControlElement", + "id" : "acm013412jsd", + "name" : "execute_adminSearchAccountsGeneral_success" + }, + "acm013413jsd" : { + "type" : "ControlElement", + "id" : "acm013413jsd", + "name" : "execute_adminSearchEmail_success" + }, + "acm013414jsd" : { + "type" : "ControlElement", + "id" : "acm013414jsd", + "name" : "execute_adminSearchNoMatch_noMatch" + }, + "acm013415jsd" : { + "type" : "ControlElement", + "id" : "acm013415jsd", + "name" : "execute_adminSearchGoogleId_success" + }, + "acm013416jsd" : { + "type" : "ControlElement", + "id" : "acm013416jsd", + "name" : "execute_instructorSearchGoogleId_matchOnlyStudentsInCourse" + }, + "acm013417jsd" : { + "type" : "ControlElement", + "id" : "acm013417jsd", + "name" : "execute_noSearchService_shouldReturn501" + }, + "acm013418jsd" : { + "type" : "ControlElement", + "id" : "acm013418jsd", + "name" : "testAccessControl" + }, + "acm013419jsd" : { + "type" : "ClassUnit", + "id" : "acm013419jsd", + "name" : "SearchStudentsActionTest", + "compilationUnitId" : "acm013401jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm005412jsd", "acm008670jsd", "acm008955jsd", "acm010167jsd", "acm010286jsd" ], + "content" : [ "acm013405jsd", "acm013406jsd", "acm013407jsd", "acm013408jsd", "acm013409jsd", "acm013410jsd", "acm013411jsd", "acm013412jsd", "acm013413jsd", "acm013414jsd", "acm013415jsd", "acm013416jsd", "acm013417jsd", "acm013418jsd" ] + }, + "acm013420jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013420jsd", + "name" : "SendErrorReportActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013428jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013421jsd" : { + "type" : "CodePackage", + "id" : "acm013421jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013422jsd" ] + }, + "acm013422jsd" : { + "type" : "CodePackage", + "id" : "acm013422jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013423jsd" ] + }, + "acm013423jsd" : { + "type" : "CodePackage", + "id" : "acm013423jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013420jsd" ] + }, + "acm013424jsd" : { + "type" : "ControlElement", + "id" : "acm013424jsd", + "name" : "getActionUri" + }, + "acm013425jsd" : { + "type" : "ControlElement", + "id" : "acm013425jsd", + "name" : "getRequestMethod" + }, + "acm013426jsd" : { + "type" : "ControlElement", + "id" : "acm013426jsd", + "name" : "testExecute" + }, + "acm013427jsd" : { + "type" : "ControlElement", + "id" : "acm013427jsd", + "name" : "testAccessControl" + }, + "acm013428jsd" : { + "type" : "ClassUnit", + "id" : "acm013428jsd", + "name" : "SendErrorReportActionTest", + "compilationUnitId" : "acm013420jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm009049jsd", "acm010301jsd" ], + "content" : [ "acm013424jsd", "acm013425jsd", "acm013426jsd", "acm013427jsd" ] + }, + "acm013429jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013429jsd", + "name" : "SendJoinReminderEmailActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013437jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013430jsd" : { + "type" : "CodePackage", + "id" : "acm013430jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013431jsd" ] + }, + "acm013431jsd" : { + "type" : "CodePackage", + "id" : "acm013431jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013432jsd" ] + }, + "acm013432jsd" : { + "type" : "CodePackage", + "id" : "acm013432jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013429jsd" ] + }, + "acm013433jsd" : { + "type" : "ControlElement", + "id" : "acm013433jsd", + "name" : "getActionUri" + }, + "acm013434jsd" : { + "type" : "ControlElement", + "id" : "acm013434jsd", + "name" : "getRequestMethod" + }, + "acm013435jsd" : { + "type" : "ControlElement", + "id" : "acm013435jsd", + "name" : "testExecute" + }, + "acm013436jsd" : { + "type" : "ControlElement", + "id" : "acm013436jsd", + "name" : "testAccessControl" + }, + "acm013437jsd" : { + "type" : "ClassUnit", + "id" : "acm013437jsd", + "name" : "SendJoinReminderEmailActionTest", + "compilationUnitId" : "acm013429jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006504jsd", "acm008670jsd", "acm009748jsd", "acm010167jsd", "acm010309jsd" ], + "content" : [ "acm013433jsd", "acm013434jsd", "acm013435jsd", "acm013436jsd" ] + }, + "acm013438jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013438jsd", + "name" : "SendLoginEmailActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013449jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013439jsd" : { + "type" : "CodePackage", + "id" : "acm013439jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013440jsd" ] + }, + "acm013440jsd" : { + "type" : "CodePackage", + "id" : "acm013440jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013441jsd" ] + }, + "acm013441jsd" : { + "type" : "CodePackage", + "id" : "acm013441jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013438jsd" ] + }, + "acm013442jsd" : { + "type" : "ControlElement", + "id" : "acm013442jsd", + "name" : "getActionUri" + }, + "acm013443jsd" : { + "type" : "ControlElement", + "id" : "acm013443jsd", + "name" : "getRequestMethod" + }, + "acm013444jsd" : { + "type" : "ControlElement", + "id" : "acm013444jsd", + "name" : "testExecute_notEnoughParameters" + }, + "acm013445jsd" : { + "type" : "ControlElement", + "id" : "acm013445jsd", + "name" : "testExecute_invalidEmail_shouldFail" + }, + "acm013446jsd" : { + "type" : "ControlElement", + "id" : "acm013446jsd", + "name" : "testExecute_validEmail" + }, + "acm013447jsd" : { + "type" : "ControlElement", + "id" : "acm013447jsd", + "name" : "testExecute" + }, + "acm013448jsd" : { + "type" : "ControlElement", + "id" : "acm013448jsd", + "name" : "testAccessControl" + }, + "acm013449jsd" : { + "type" : "ClassUnit", + "id" : "acm013449jsd", + "name" : "SendLoginEmailActionTest", + "compilationUnitId" : "acm013438jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm006290jsd", "acm008765jsd", "acm010134jsd", "acm010167jsd", "acm010317jsd" ], + "content" : [ "acm013442jsd", "acm013443jsd", "acm013444jsd", "acm013445jsd", "acm013446jsd", "acm013447jsd", "acm013448jsd" ] + }, + "acm013450jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013450jsd", + "name" : "SessionLinksRecoveryActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013464jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013451jsd" : { + "type" : "CodePackage", + "id" : "acm013451jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013452jsd" ] + }, + "acm013452jsd" : { + "type" : "CodePackage", + "id" : "acm013452jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013453jsd" ] + }, + "acm013453jsd" : { + "type" : "CodePackage", + "id" : "acm013453jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013450jsd" ] + }, + "acm013454jsd" : { + "type" : "ControlElement", + "id" : "acm013454jsd", + "name" : "getActionUri" + }, + "acm013455jsd" : { + "type" : "ControlElement", + "id" : "acm013455jsd", + "name" : "getRequestMethod" + }, + "acm013456jsd" : { + "type" : "ControlElement", + "id" : "acm013456jsd", + "name" : "testExecute_notEnoughParameters" + }, + "acm013457jsd" : { + "type" : "ControlElement", + "id" : "acm013457jsd", + "name" : "testExecute_invalidEmail_shouldFail" + }, + "acm013458jsd" : { + "type" : "ControlElement", + "id" : "acm013458jsd", + "name" : "testExecute_nonExistingEmail" + }, + "acm013459jsd" : { + "type" : "ControlElement", + "id" : "acm013459jsd", + "name" : "testExecute_noFeedbackSessionsFound" + }, + "acm013460jsd" : { + "type" : "ControlElement", + "id" : "acm013460jsd", + "name" : "testExecute_openedOrClosedAndUnpublishedSessions" + }, + "acm013461jsd" : { + "type" : "ControlElement", + "id" : "acm013461jsd", + "name" : "testExecute_openedOrClosedAndPublishedSessions" + }, + "acm013462jsd" : { + "type" : "ControlElement", + "id" : "acm013462jsd", + "name" : "testExecute" + }, + "acm013463jsd" : { + "type" : "ControlElement", + "id" : "acm013463jsd", + "name" : "testAccessControl" + }, + "acm013464jsd" : { + "type" : "ClassUnit", + "id" : "acm013464jsd", + "name" : "SessionLinksRecoveryActionTest", + "compilationUnitId" : "acm013450jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm006290jsd", "acm008773jsd", "acm010134jsd", "acm010167jsd", "acm010325jsd" ], + "content" : [ "acm013454jsd", "acm013455jsd", "acm013456jsd", "acm013457jsd", "acm013458jsd", "acm013459jsd", "acm013460jsd", "acm013461jsd", "acm013462jsd", "acm013463jsd" ] + }, + "acm013465jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013465jsd", + "name" : "StudentCourseJoinEmailWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013473jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013466jsd" : { + "type" : "CodePackage", + "id" : "acm013466jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013467jsd" ] + }, + "acm013467jsd" : { + "type" : "CodePackage", + "id" : "acm013467jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013468jsd" ] + }, + "acm013468jsd" : { + "type" : "CodePackage", + "id" : "acm013468jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013465jsd" ] + }, + "acm013469jsd" : { + "type" : "ControlElement", + "id" : "acm013469jsd", + "name" : "getActionUri" + }, + "acm013470jsd" : { + "type" : "ControlElement", + "id" : "acm013470jsd", + "name" : "getRequestMethod" + }, + "acm013471jsd" : { + "type" : "ControlElement", + "id" : "acm013471jsd", + "name" : "testAccessControl" + }, + "acm013472jsd" : { + "type" : "ControlElement", + "id" : "acm013472jsd", + "name" : "testExecute" + }, + "acm013473jsd" : { + "type" : "ClassUnit", + "id" : "acm013473jsd", + "name" : "StudentCourseJoinEmailWorkerActionTest", + "compilationUnitId" : "acm013465jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005412jsd", "acm006290jsd", "acm010331jsd" ], + "content" : [ "acm013469jsd", "acm013470jsd", "acm013471jsd", "acm013472jsd" ] + }, + "acm013474jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013474jsd", + "name" : "StudentSearchIndexingWorkerActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013482jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013475jsd" : { + "type" : "CodePackage", + "id" : "acm013475jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013476jsd" ] + }, + "acm013476jsd" : { + "type" : "CodePackage", + "id" : "acm013476jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013477jsd" ] + }, + "acm013477jsd" : { + "type" : "CodePackage", + "id" : "acm013477jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013474jsd" ] + }, + "acm013478jsd" : { + "type" : "ControlElement", + "id" : "acm013478jsd", + "name" : "getActionUri" + }, + "acm013479jsd" : { + "type" : "ControlElement", + "id" : "acm013479jsd", + "name" : "getRequestMethod" + }, + "acm013480jsd" : { + "type" : "ControlElement", + "id" : "acm013480jsd", + "name" : "testExecute" + }, + "acm013481jsd" : { + "type" : "ControlElement", + "id" : "acm013481jsd", + "name" : "testAccessControl" + }, + "acm013482jsd" : { + "type" : "ClassUnit", + "id" : "acm013482jsd", + "name" : "StudentSearchIndexingWorkerActionTest", + "compilationUnitId" : "acm013474jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005412jsd", "acm010337jsd" ], + "content" : [ "acm013478jsd", "acm013479jsd", "acm013480jsd", "acm013481jsd" ] + }, + "acm013483jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013483jsd", + "name" : "SubmitFeedbackResponsesActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013560jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013484jsd" : { + "type" : "CodePackage", + "id" : "acm013484jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013485jsd" ] + }, + "acm013485jsd" : { + "type" : "CodePackage", + "id" : "acm013485jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013486jsd" ] + }, + "acm013486jsd" : { + "type" : "CodePackage", + "id" : "acm013486jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013483jsd" ] + }, + "acm013487jsd" : { + "type" : "ControlElement", + "id" : "acm013487jsd", + "name" : "getActionUri" + }, + "acm013488jsd" : { + "type" : "ControlElement", + "id" : "acm013488jsd", + "name" : "getRequestMethod" + }, + "acm013489jsd" : { + "type" : "ControlElement", + "id" : "acm013489jsd", + "name" : "getSession" + }, + "acm013490jsd" : { + "type" : "ControlElement", + "id" : "acm013490jsd", + "name" : "getInstructor" + }, + "acm013491jsd" : { + "type" : "ControlElement", + "id" : "acm013491jsd", + "name" : "loginInstructor" + }, + "acm013492jsd" : { + "type" : "ControlElement", + "id" : "acm013492jsd", + "name" : "getStudent" + }, + "acm013493jsd" : { + "type" : "ControlElement", + "id" : "acm013493jsd", + "name" : "getStudents" + }, + "acm013494jsd" : { + "type" : "ControlElement", + "id" : "acm013494jsd", + "name" : "loginStudent" + }, + "acm013495jsd" : { + "type" : "ControlElement", + "id" : "acm013495jsd", + "name" : "getQuestion" + }, + "acm013496jsd" : { + "type" : "ControlElement", + "id" : "acm013496jsd", + "name" : "setStartTime" + }, + "acm013497jsd" : { + "type" : "ControlElement", + "id" : "acm013497jsd", + "name" : "setEndTime" + }, + "acm013498jsd" : { + "type" : "ControlElement", + "id" : "acm013498jsd", + "name" : "setInstructorDeadline" + }, + "acm013499jsd" : { + "type" : "ControlElement", + "id" : "acm013499jsd", + "name" : "setStudentDeadline" + }, + "acm013500jsd" : { + "type" : "ControlElement", + "id" : "acm013500jsd", + "name" : "buildSubmissionParams" + }, + "acm013501jsd" : { + "type" : "ControlElement", + "id" : "acm013501jsd", + "name" : "buildSubmissionParams" + }, + "acm013502jsd" : { + "type" : "ControlElement", + "id" : "acm013502jsd", + "name" : "setPreviewPerson" + }, + "acm013503jsd" : { + "type" : "ControlElement", + "id" : "acm013503jsd", + "name" : "setModeratorPerson" + }, + "acm013504jsd" : { + "type" : "ControlElement", + "id" : "acm013504jsd", + "name" : "setCommentInSectionInstructorPrivilege" + }, + "acm013505jsd" : { + "type" : "ControlElement", + "id" : "acm013505jsd", + "name" : "extractStudentEmails" + }, + "acm013506jsd" : { + "type" : "ControlElement", + "id" : "acm013506jsd", + "name" : "extractStudentTeams" + }, + "acm013507jsd" : { + "type" : "ControlElement", + "id" : "acm013507jsd", + "name" : "buildRequestBodyWithStudentRecipientsEmail" + }, + "acm013508jsd" : { + "type" : "ControlElement", + "id" : "acm013508jsd", + "name" : "buildRequestBodyWithStudentRecipientsTeam" + }, + "acm013509jsd" : { + "type" : "ControlElement", + "id" : "acm013509jsd", + "name" : "extractInstructorEmails" + }, + "acm013510jsd" : { + "type" : "ControlElement", + "id" : "acm013510jsd", + "name" : "buildRequestBodyWithInstructorRecipients" + }, + "acm013511jsd" : { + "type" : "ControlElement", + "id" : "acm013511jsd", + "name" : "buildRequestBody" + }, + "acm013512jsd" : { + "type" : "ControlElement", + "id" : "acm013512jsd", + "name" : "callExecute" + }, + "acm013513jsd" : { + "type" : "ControlElement", + "id" : "acm013513jsd", + "name" : "validateOutputForStudentRecipientsByEmail" + }, + "acm013514jsd" : { + "type" : "ControlElement", + "id" : "acm013514jsd", + "name" : "validateOutputForStudentRecipientsByTeam" + }, + "acm013515jsd" : { + "type" : "ControlElement", + "id" : "acm013515jsd", + "name" : "validateOutputForInstructorRecipients" + }, + "acm013516jsd" : { + "type" : "ControlElement", + "id" : "acm013516jsd", + "name" : "validateOutput" + }, + "acm013517jsd" : { + "type" : "ControlElement", + "id" : "acm013517jsd", + "name" : "validateStudentDatabaseByTeam" + }, + "acm013518jsd" : { + "type" : "ControlElement", + "id" : "acm013518jsd", + "name" : "validateStudentDatabaseByEmail" + }, + "acm013519jsd" : { + "type" : "ControlElement", + "id" : "acm013519jsd", + "name" : "validateInstructorDatabaseByEmail" + }, + "acm013520jsd" : { + "type" : "ControlElement", + "id" : "acm013520jsd", + "name" : "validateDatabase" + }, + "acm013521jsd" : { + "type" : "ControlElement", + "id" : "acm013521jsd", + "name" : "testAccessControl" + }, + "acm013522jsd" : { + "type" : "ControlElement", + "id" : "acm013522jsd", + "name" : "testAccessControl_feedbackSubmissionQuestionExists_shouldAllow" + }, + "acm013523jsd" : { + "type" : "ControlElement", + "id" : "acm013523jsd", + "name" : "testAccessControl_feedbackSubmissionNoFeedbackQuestionParameter_shouldFail" + }, + "acm013524jsd" : { + "type" : "ControlElement", + "id" : "acm013524jsd", + "name" : "testAccessControl_feedbackSubmissionQuestionDoesNotExist_shouldFail" + }, + "acm013525jsd" : { + "type" : "ControlElement", + "id" : "acm013525jsd", + "name" : "testAccessControl_feedbackSubmissionValidIntent_shouldAllow" + }, + "acm013526jsd" : { + "type" : "ControlElement", + "id" : "acm013526jsd", + "name" : "testAccessControl_feedbackSubmissionNoIntentParameter_shouldFail" + }, + "acm013527jsd" : { + "type" : "ControlElement", + "id" : "acm013527jsd", + "name" : "testAccessControl_feedbackSubmissionInvalidIntent_shouldFail" + }, + "acm013528jsd" : { + "type" : "ControlElement", + "id" : "acm013528jsd", + "name" : "testAccessControl_submissionIsNotOpen_shouldFail" + }, + "acm013529jsd" : { + "type" : "ControlElement", + "id" : "acm013529jsd", + "name" : "testAccessControl_submissionBeforeEndTimeBeforeDeadline_shouldAllow" + }, + "acm013530jsd" : { + "type" : "ControlElement", + "id" : "acm013530jsd", + "name" : "testAccessControl_submissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm013531jsd" : { + "type" : "ControlElement", + "id" : "acm013531jsd", + "name" : "testAccessControl_submissionAfterDeadline_shouldFail" + }, + "acm013532jsd" : { + "type" : "ControlElement", + "id" : "acm013532jsd", + "name" : "testAccessControl_studentSubmissionStudentAnswerableQuestion_shouldAllow" + }, + "acm013533jsd" : { + "type" : "ControlElement", + "id" : "acm013533jsd", + "name" : "testAccessControl_studentSubmissionNotStudentAnswerableQuestion_shouldFail" + }, + "acm013534jsd" : { + "type" : "ControlElement", + "id" : "acm013534jsd", + "name" : "testAccessControl_studentSubmissionLoggedOut_shouldFail" + }, + "acm013535jsd" : { + "type" : "ControlElement", + "id" : "acm013535jsd", + "name" : "testAccessControl_studentSubmissionLoggedInAsInstructor_shouldFail" + }, + "acm013536jsd" : { + "type" : "ControlElement", + "id" : "acm013536jsd", + "name" : "testAccessControl_studentSubmissionLoggedInAsAdmin_shouldFail" + }, + "acm013537jsd" : { + "type" : "ControlElement", + "id" : "acm013537jsd", + "name" : "testAccessControl_studentSubmissionLoggedInAsAdminMasqueradeAsStudent_shouldFail" + }, + "acm013538jsd" : { + "type" : "ControlElement", + "id" : "acm013538jsd", + "name" : "testAccessControl_instructorSubmissionToInstructorAnswerableQuestion_shouldAllow" + }, + "acm013539jsd" : { + "type" : "ControlElement", + "id" : "acm013539jsd", + "name" : "testAccessControl_instructorSubmissionToSelfAnswerableQuestion_shouldAllow" + }, + "acm013540jsd" : { + "type" : "ControlElement", + "id" : "acm013540jsd", + "name" : "testAccessControl_instructorSubmissionToNotInstructorAnswerableQuestion_shouldFail" + }, + "acm013541jsd" : { + "type" : "ControlElement", + "id" : "acm013541jsd", + "name" : "testAccessControl_instructorSubmissionLoggedOut_shouldFail" + }, + "acm013542jsd" : { + "type" : "ControlElement", + "id" : "acm013542jsd", + "name" : "testAccessControl_instructorSubmissionLoggedInAsAdmin_shouldFail" + }, + "acm013543jsd" : { + "type" : "ControlElement", + "id" : "acm013543jsd", + "name" : "testAccessControl_submissionLoggedInAsAdminMasqueradeAsInstructor_shouldAllow" + }, + "acm013544jsd" : { + "type" : "ControlElement", + "id" : "acm013544jsd", + "name" : "testAccessControl_instructorSubmissionLoggedInAsStudent_shouldFail" + }, + "acm013545jsd" : { + "type" : "ControlElement", + "id" : "acm013545jsd", + "name" : "testAccessControl_instructorsWithSufficientPreviewPrivilege_shouldAllow" + }, + "acm013546jsd" : { + "type" : "ControlElement", + "id" : "acm013546jsd", + "name" : "testAccessControl_instructorsWithInsufficientPreviewPrivilege_shouldFail" + }, + "acm013547jsd" : { + "type" : "ControlElement", + "id" : "acm013547jsd", + "name" : "testAccessControl_instructorsWithInsufficientModeratorPrivilege_shouldFail" + }, + "acm013548jsd" : { + "type" : "ControlElement", + "id" : "acm013548jsd", + "name" : "testExecute" + }, + "acm013549jsd" : { + "type" : "ControlElement", + "id" : "acm013549jsd", + "name" : "testExecute_noHttpParameters_shouldFail" + }, + "acm013550jsd" : { + "type" : "ControlElement", + "id" : "acm013550jsd", + "name" : "testExecute_noFeedbackQuestionId_shouldFail" + }, + "acm013551jsd" : { + "type" : "ControlElement", + "id" : "acm013551jsd", + "name" : "testExecute_feedbackQuestionDoesNotExist_shouldFail" + }, + "acm013552jsd" : { + "type" : "ControlElement", + "id" : "acm013552jsd", + "name" : "testExecute_invalidIntent_shouldFail" + }, + "acm013553jsd" : { + "type" : "ControlElement", + "id" : "acm013553jsd", + "name" : "testExecute_noRequestBody_shouldFail" + }, + "acm013554jsd" : { + "type" : "ControlElement", + "id" : "acm013554jsd", + "name" : "testExecute_requestBodyNoRecipient_shouldFail" + }, + "acm013555jsd" : { + "type" : "ControlElement", + "id" : "acm013555jsd", + "name" : "testExecute_noExistingResponses_shouldPass" + }, + "acm013556jsd" : { + "type" : "ControlElement", + "id" : "acm013556jsd", + "name" : "testExecute_hasExistingResponse_shouldPass" + }, + "acm013557jsd" : { + "type" : "ControlElement", + "id" : "acm013557jsd", + "name" : "testExecute_validRecipientsOfQuestion_shouldPass" + }, + "acm013558jsd" : { + "type" : "ControlElement", + "id" : "acm013558jsd", + "name" : "testExecute_invalidRecipientOfQuestion_shouldFail" + }, + "acm013559jsd" : { + "type" : "ControlElement", + "id" : "acm013559jsd", + "name" : "testExecute_tooManyRecipients_shouldPass" + }, + "acm013560jsd" : { + "type" : "ClassUnit", + "id" : "acm013560jsd", + "name" : "SubmitFeedbackResponsesActionTest", + "compilationUnitId" : "acm013483jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004332jsd", "acm004788jsd", "acm004871jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm006061jsd", "acm006127jsd", "acm006168jsd", "acm006188jsd", "acm008461jsd", "acm008470jsd", "acm009123jsd", "acm009128jsd", "acm009221jsd", "acm010167jsd", "acm010345jsd" ], + "content" : [ "acm013487jsd", "acm013488jsd", "acm013489jsd", "acm013490jsd", "acm013491jsd", "acm013492jsd", "acm013493jsd", "acm013494jsd", "acm013495jsd", "acm013496jsd", "acm013497jsd", "acm013498jsd", "acm013499jsd", "acm013500jsd", "acm013501jsd", "acm013502jsd", "acm013503jsd", "acm013504jsd", "acm013505jsd", "acm013506jsd", "acm013507jsd", "acm013508jsd", "acm013509jsd", "acm013510jsd", "acm013511jsd", "acm013512jsd", "acm013513jsd", "acm013514jsd", "acm013515jsd", "acm013516jsd", "acm013517jsd", "acm013518jsd", "acm013519jsd", "acm013520jsd", "acm013521jsd", "acm013522jsd", "acm013523jsd", "acm013524jsd", "acm013525jsd", "acm013526jsd", "acm013527jsd", "acm013528jsd", "acm013529jsd", "acm013530jsd", "acm013531jsd", "acm013532jsd", "acm013533jsd", "acm013534jsd", "acm013535jsd", "acm013536jsd", "acm013537jsd", "acm013538jsd", "acm013539jsd", "acm013540jsd", "acm013541jsd", "acm013542jsd", "acm013543jsd", "acm013544jsd", "acm013545jsd", "acm013546jsd", "acm013547jsd", "acm013548jsd", "acm013549jsd", "acm013550jsd", "acm013551jsd", "acm013552jsd", "acm013553jsd", "acm013554jsd", "acm013555jsd", "acm013556jsd", "acm013557jsd", "acm013558jsd", "acm013559jsd" ] + }, + "acm013561jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013561jsd", + "name" : "UnpublishFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013569jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013562jsd" : { + "type" : "CodePackage", + "id" : "acm013562jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013563jsd" ] + }, + "acm013563jsd" : { + "type" : "CodePackage", + "id" : "acm013563jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013564jsd" ] + }, + "acm013564jsd" : { + "type" : "CodePackage", + "id" : "acm013564jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013561jsd" ] + }, + "acm013565jsd" : { + "type" : "ControlElement", + "id" : "acm013565jsd", + "name" : "getActionUri" + }, + "acm013566jsd" : { + "type" : "ControlElement", + "id" : "acm013566jsd", + "name" : "getRequestMethod" + }, + "acm013567jsd" : { + "type" : "ControlElement", + "id" : "acm013567jsd", + "name" : "testExecute" + }, + "acm013568jsd" : { + "type" : "ControlElement", + "id" : "acm013568jsd", + "name" : "testAccessControl" + }, + "acm013569jsd" : { + "type" : "ClassUnit", + "id" : "acm013569jsd", + "name" : "UnpublishFeedbackSessionActionTest", + "compilationUnitId" : "acm013561jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm010361jsd" ], + "content" : [ "acm013565jsd", "acm013566jsd", "acm013567jsd", "acm013568jsd" ] + }, + "acm013570jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013570jsd", + "name" : "UpdateCourseActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013580jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013571jsd" : { + "type" : "CodePackage", + "id" : "acm013571jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013572jsd" ] + }, + "acm013572jsd" : { + "type" : "CodePackage", + "id" : "acm013572jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013573jsd" ] + }, + "acm013573jsd" : { + "type" : "CodePackage", + "id" : "acm013573jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013570jsd" ] + }, + "acm013574jsd" : { + "type" : "ControlElement", + "id" : "acm013574jsd", + "name" : "getActionUri" + }, + "acm013575jsd" : { + "type" : "ControlElement", + "id" : "acm013575jsd", + "name" : "getRequestMethod" + }, + "acm013576jsd" : { + "type" : "ControlElement", + "id" : "acm013576jsd", + "name" : "testExecute" + }, + "acm013577jsd" : { + "type" : "ControlElement", + "id" : "acm013577jsd", + "name" : "verifySessionsInCourseHaveTimeZone" + }, + "acm013578jsd" : { + "type" : "ControlElement", + "id" : "acm013578jsd", + "name" : "verifyCourseData" + }, + "acm013579jsd" : { + "type" : "ControlElement", + "id" : "acm013579jsd", + "name" : "testAccessControl" + }, + "acm013580jsd" : { + "type" : "ClassUnit", + "id" : "acm013580jsd", + "name" : "UpdateCourseActionTest", + "compilationUnitId" : "acm013570jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005112jsd", "acm005233jsd", "acm008329jsd", "acm009039jsd", "acm009228jsd", "acm010167jsd", "acm010369jsd" ], + "content" : [ "acm013574jsd", "acm013575jsd", "acm013576jsd", "acm013577jsd", "acm013578jsd", "acm013579jsd" ] + }, + "acm013581jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013581jsd", + "name" : "UpdateFeedbackQuestionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013599jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013582jsd" : { + "type" : "CodePackage", + "id" : "acm013582jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013583jsd" ] + }, + "acm013583jsd" : { + "type" : "CodePackage", + "id" : "acm013583jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013584jsd" ] + }, + "acm013584jsd" : { + "type" : "CodePackage", + "id" : "acm013584jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013581jsd" ] + }, + "acm013585jsd" : { + "type" : "ControlElement", + "id" : "acm013585jsd", + "name" : "getActionUri" + }, + "acm013586jsd" : { + "type" : "ControlElement", + "id" : "acm013586jsd", + "name" : "getRequestMethod" + }, + "acm013587jsd" : { + "type" : "ControlElement", + "id" : "acm013587jsd", + "name" : "testExecute" + }, + "acm013588jsd" : { + "type" : "ControlElement", + "id" : "acm013588jsd", + "name" : "testExecute_customizedNumberOfRecipient_shouldUpdateSuccessfully" + }, + "acm013589jsd" : { + "type" : "ControlElement", + "id" : "acm013589jsd", + "name" : "testExecute_anonymousTeamSession_shouldUpdateSuccessfully" + }, + "acm013590jsd" : { + "type" : "ControlElement", + "id" : "acm013590jsd", + "name" : "testExecute_selfFeedback_shouldUpdateSuccessfully" + }, + "acm013591jsd" : { + "type" : "ControlElement", + "id" : "acm013591jsd", + "name" : "testExecute_editingContributionTypeQuestion_shouldUpdateSuccessfully" + }, + "acm013592jsd" : { + "type" : "ControlElement", + "id" : "acm013592jsd", + "name" : "testExecute_invalidQuestionNumber_shouldThrowException" + }, + "acm013593jsd" : { + "type" : "ControlElement", + "id" : "acm013593jsd", + "name" : "testExecute_invalidRecommendedLength_shouldThrowException" + }, + "acm013594jsd" : { + "type" : "ControlElement", + "id" : "acm013594jsd", + "name" : "testExecute_invalidGiverRecipientType_shouldThrowException" + }, + "acm013595jsd" : { + "type" : "ControlElement", + "id" : "acm013595jsd", + "name" : "testExecute_differentScenarios_shouldUpdateResponseRateCorrectly" + }, + "acm013596jsd" : { + "type" : "ControlElement", + "id" : "acm013596jsd", + "name" : "getTypicalTextQuestionUpdateRequest" + }, + "acm013597jsd" : { + "type" : "ControlElement", + "id" : "acm013597jsd", + "name" : "getTypicalContributionQuestionUpdateRequest" + }, + "acm013598jsd" : { + "type" : "ControlElement", + "id" : "acm013598jsd", + "name" : "testAccessControl" + }, + "acm013599jsd" : { + "type" : "ClassUnit", + "id" : "acm013599jsd", + "name" : "UpdateFeedbackQuestionActionTest", + "compilationUnitId" : "acm013581jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004788jsd", "acm005112jsd", "acm005233jsd", "acm005820jsd", "acm006116jsd", "acm008407jsd", "acm009087jsd", "acm010167jsd", "acm010377jsd" ], + "content" : [ "acm013585jsd", "acm013586jsd", "acm013587jsd", "acm013588jsd", "acm013589jsd", "acm013590jsd", "acm013591jsd", "acm013592jsd", "acm013593jsd", "acm013594jsd", "acm013595jsd", "acm013596jsd", "acm013597jsd", "acm013598jsd" ] + }, + "acm013600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013600jsd", + "name" : "UpdateFeedbackResponseCommentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013628jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013601jsd" : { + "type" : "CodePackage", + "id" : "acm013601jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013602jsd" ] + }, + "acm013602jsd" : { + "type" : "CodePackage", + "id" : "acm013602jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013603jsd" ] + }, + "acm013603jsd" : { + "type" : "CodePackage", + "id" : "acm013603jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013600jsd" ] + }, + "acm013604jsd" : { + "type" : "ControlElement", + "id" : "acm013604jsd", + "name" : "getActionUri" + }, + "acm013605jsd" : { + "type" : "ControlElement", + "id" : "acm013605jsd", + "name" : "getRequestMethod" + }, + "acm013606jsd" : { + "type" : "ControlElement", + "id" : "acm013606jsd", + "name" : "prepareTestData" + }, + "acm013607jsd" : { + "type" : "ControlElement", + "id" : "acm013607jsd", + "name" : "testExecute" + }, + "acm013608jsd" : { + "type" : "ControlElement", + "id" : "acm013608jsd", + "name" : "testExecute_notEnoughParams_shouldFail" + }, + "acm013609jsd" : { + "type" : "ControlElement", + "id" : "acm013609jsd", + "name" : "testExecute_typicalSuccessfulCases_shouldPass" + }, + "acm013610jsd" : { + "type" : "ControlElement", + "id" : "acm013610jsd", + "name" : "testExecute_emptyVisibilitySettings_shouldPass" + }, + "acm013611jsd" : { + "type" : "ControlElement", + "id" : "acm013611jsd", + "name" : "testExecute_variousVisibilitySettings_shouldPass" + }, + "acm013612jsd" : { + "type" : "ControlElement", + "id" : "acm013612jsd", + "name" : "testExecute_nonExistingFeedbackResponse_shouldFail" + }, + "acm013613jsd" : { + "type" : "ControlElement", + "id" : "acm013613jsd", + "name" : "testExecute_instructorIsNotCommentGiver_shouldPass" + }, + "acm013614jsd" : { + "type" : "ControlElement", + "id" : "acm013614jsd", + "name" : "testExecute_typicalCasePublishedSession_shouldPass" + }, + "acm013615jsd" : { + "type" : "ControlElement", + "id" : "acm013615jsd", + "name" : "testExecute_emptyCommentText_shouldFail" + }, + "acm013616jsd" : { + "type" : "ControlElement", + "id" : "acm013616jsd", + "name" : "testExecute_invalidIntent_shouldFail" + }, + "acm013617jsd" : { + "type" : "ControlElement", + "id" : "acm013617jsd", + "name" : "testAccessControl" + }, + "acm013618jsd" : { + "type" : "ControlElement", + "id" : "acm013618jsd", + "name" : "testAccessControl_accessibleWithPrivilege_shouldPass" + }, + "acm013619jsd" : { + "type" : "ControlElement", + "id" : "acm013619jsd", + "name" : "testAccessControl_typicalSuccessfulCase_shouldPass" + }, + "acm013620jsd" : { + "type" : "ControlElement", + "id" : "acm013620jsd", + "name" : "testAccessControl_invalidIntent_shouldFail" + }, + "acm013621jsd" : { + "type" : "ControlElement", + "id" : "acm013621jsd", + "name" : "testAccessControl_updateCommentForOthersResponse_shouldFail" + }, + "acm013622jsd" : { + "type" : "ControlElement", + "id" : "acm013622jsd", + "name" : "testAccessControl_nonExistingResponseComment_shouldFail" + }, + "acm013623jsd" : { + "type" : "ControlElement", + "id" : "acm013623jsd", + "name" : "testAccessControl_instructorsWithCorrectPrivilege_shouldPass" + }, + "acm013624jsd" : { + "type" : "ControlElement", + "id" : "acm013624jsd", + "name" : "testAccessControl_instructorWithOnlyEitherSectionPrivilege_shouldFail" + }, + "acm013625jsd" : { + "type" : "ControlElement", + "id" : "acm013625jsd", + "name" : "testAccessControl_instructorSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm013626jsd" : { + "type" : "ControlElement", + "id" : "acm013626jsd", + "name" : "testAccessControl_studentSubmissionPastEndTime_shouldAllowIfBeforeDeadline" + }, + "acm013627jsd" : { + "type" : "ControlElement", + "id" : "acm013627jsd", + "name" : "getSubmissionParamsForCrossSectionResponseComment" + }, + "acm013628jsd" : { + "type" : "ClassUnit", + "id" : "acm013628jsd", + "name" : "UpdateFeedbackResponseCommentActionTest", + "compilationUnitId" : "acm013600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004205jsd", "acm004332jsd", "acm004598jsd", "acm004788jsd", "acm004871jsd", "acm004971jsd", "acm005112jsd", "acm005233jsd", "acm005412jsd", "acm009110jsd", "acm009228jsd", "acm010385jsd" ], + "content" : [ "acm013604jsd", "acm013605jsd", "acm013606jsd", "acm013607jsd", "acm013608jsd", "acm013609jsd", "acm013610jsd", "acm013611jsd", "acm013612jsd", "acm013613jsd", "acm013614jsd", "acm013615jsd", "acm013616jsd", "acm013617jsd", "acm013618jsd", "acm013619jsd", "acm013620jsd", "acm013621jsd", "acm013622jsd", "acm013623jsd", "acm013624jsd", "acm013625jsd", "acm013626jsd", "acm013627jsd" ] + }, + "acm013629jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013629jsd", + "name" : "UpdateFeedbackSessionActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013646jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013630jsd" : { + "type" : "CodePackage", + "id" : "acm013630jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013631jsd" ] + }, + "acm013631jsd" : { + "type" : "CodePackage", + "id" : "acm013631jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013632jsd" ] + }, + "acm013632jsd" : { + "type" : "CodePackage", + "id" : "acm013632jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013629jsd" ] + }, + "acm013633jsd" : { + "type" : "ControlElement", + "id" : "acm013633jsd", + "name" : "getActionUri" + }, + "acm013634jsd" : { + "type" : "ControlElement", + "id" : "acm013634jsd", + "name" : "getRequestMethod" + }, + "acm013635jsd" : { + "type" : "ControlElement", + "id" : "acm013635jsd", + "name" : "testExecute" + }, + "acm013636jsd" : { + "type" : "ControlElement", + "id" : "acm013636jsd", + "name" : "testExecute_changeDeadlineForStudents_shouldChangeDeadlinesCorrectlyWhenAppropriate" + }, + "acm013637jsd" : { + "type" : "ControlElement", + "id" : "acm013637jsd", + "name" : "testExecute_changeDeadlineForInstructors_shouldChangeDeadlinesCorrectlyWhenAppropriate" + }, + "acm013638jsd" : { + "type" : "ControlElement", + "id" : "acm013638jsd", + "name" : "testExecute_startTimeEarlierThanVisibleTime_shouldGiveInvalidParametersError" + }, + "acm013639jsd" : { + "type" : "ControlElement", + "id" : "acm013639jsd", + "name" : "testExecute_differentFeedbackSessionVisibleResponseVisibleSetting_shouldConvertToSpecialTime" + }, + "acm013640jsd" : { + "type" : "ControlElement", + "id" : "acm013640jsd", + "name" : "testExecute_masqueradeModeWithManualReleaseResult_shouldEditSessionSuccessfully" + }, + "acm013641jsd" : { + "type" : "ControlElement", + "id" : "acm013641jsd", + "name" : "testExecute_invalidRequestBody_shouldThrowException" + }, + "acm013642jsd" : { + "type" : "ControlElement", + "id" : "acm013642jsd", + "name" : "getTypicalFeedbackSessionUpdateRequest" + }, + "acm013643jsd" : { + "type" : "ControlElement", + "id" : "acm013643jsd", + "name" : "convertDeadlinesToLong" + }, + "acm013644jsd" : { + "type" : "ControlElement", + "id" : "acm013644jsd", + "name" : "getFormattedInstantForDeadlineExtensionEmail" + }, + "acm013645jsd" : { + "type" : "ControlElement", + "id" : "acm013645jsd", + "name" : "testAccessControl" + }, + "acm013646jsd" : { + "type" : "ClassUnit", + "id" : "acm013646jsd", + "name" : "UpdateFeedbackSessionActionTest", + "compilationUnitId" : "acm013629jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004598jsd", "acm005112jsd", "acm005233jsd", "acm006290jsd", "acm006504jsd", "acm008518jsd", "acm009195jsd", "acm009228jsd", "acm009273jsd", "acm010167jsd", "acm010394jsd" ], + "content" : [ "acm013633jsd", "acm013634jsd", "acm013635jsd", "acm013636jsd", "acm013637jsd", "acm013638jsd", "acm013639jsd", "acm013640jsd", "acm013641jsd", "acm013642jsd", "acm013643jsd", "acm013644jsd", "acm013645jsd" ] + }, + "acm013647jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013647jsd", + "name" : "UpdateInstructorActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013655jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013648jsd" : { + "type" : "CodePackage", + "id" : "acm013648jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013649jsd" ] + }, + "acm013649jsd" : { + "type" : "CodePackage", + "id" : "acm013649jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013650jsd" ] + }, + "acm013650jsd" : { + "type" : "CodePackage", + "id" : "acm013650jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013647jsd" ] + }, + "acm013651jsd" : { + "type" : "ControlElement", + "id" : "acm013651jsd", + "name" : "getActionUri" + }, + "acm013652jsd" : { + "type" : "ControlElement", + "id" : "acm013652jsd", + "name" : "getRequestMethod" + }, + "acm013653jsd" : { + "type" : "ControlElement", + "id" : "acm013653jsd", + "name" : "testExecute" + }, + "acm013654jsd" : { + "type" : "ControlElement", + "id" : "acm013654jsd", + "name" : "testAccessControl" + }, + "acm013655jsd" : { + "type" : "ClassUnit", + "id" : "acm013655jsd", + "name" : "UpdateInstructorActionTest", + "compilationUnitId" : "acm013647jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm008620jsd", "acm009208jsd", "acm009228jsd", "acm010144jsd", "acm010167jsd", "acm010403jsd" ], + "content" : [ "acm013651jsd", "acm013652jsd", "acm013653jsd", "acm013654jsd" ] + }, + "acm013656jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013656jsd", + "name" : "UpdateInstructorPrivilegeActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013671jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013657jsd" : { + "type" : "CodePackage", + "id" : "acm013657jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013658jsd" ] + }, + "acm013658jsd" : { + "type" : "CodePackage", + "id" : "acm013658jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013659jsd" ] + }, + "acm013659jsd" : { + "type" : "CodePackage", + "id" : "acm013659jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013656jsd" ] + }, + "acm013660jsd" : { + "type" : "ControlElement", + "id" : "acm013660jsd", + "name" : "getActionUri" + }, + "acm013661jsd" : { + "type" : "ControlElement", + "id" : "acm013661jsd", + "name" : "getRequestMethod" + }, + "acm013662jsd" : { + "type" : "ControlElement", + "id" : "acm013662jsd", + "name" : "testExecute" + }, + "acm013663jsd" : { + "type" : "ControlElement", + "id" : "acm013663jsd", + "name" : "testExecute_validCourseLevelInput_shouldSucceed" + }, + "acm013664jsd" : { + "type" : "ControlElement", + "id" : "acm013664jsd", + "name" : "testExecute_validSectionLevelInput_shouldSucceed" + }, + "acm013665jsd" : { + "type" : "ControlElement", + "id" : "acm013665jsd", + "name" : "testExecute_validSessionLevelInput_shouldSucceed" + }, + "acm013666jsd" : { + "type" : "ControlElement", + "id" : "acm013666jsd", + "name" : "testExecute_requestPrivilegesInconsistent_shouldBeAutoFixed" + }, + "acm013667jsd" : { + "type" : "ControlElement", + "id" : "acm013667jsd", + "name" : "testExecute_lastInstructorWithModifyInstructorPrivilege_shouldPreserve" + }, + "acm013668jsd" : { + "type" : "ControlElement", + "id" : "acm013668jsd", + "name" : "testExecute_withNullPrivileges_shouldFail" + }, + "acm013669jsd" : { + "type" : "ControlElement", + "id" : "acm013669jsd", + "name" : "testExecute_withInvalidInstructorEmail_shouldFail" + }, + "acm013670jsd" : { + "type" : "ControlElement", + "id" : "acm013670jsd", + "name" : "testAccessControl" + }, + "acm013671jsd" : { + "type" : "ClassUnit", + "id" : "acm013671jsd", + "name" : "UpdateInstructorPrivilegeActionTest", + "compilationUnitId" : "acm013656jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004286jsd", "acm004332jsd", "acm005233jsd", "acm008635jsd", "acm009216jsd", "acm009748jsd", "acm010167jsd", "acm010411jsd" ], + "content" : [ "acm013660jsd", "acm013661jsd", "acm013662jsd", "acm013663jsd", "acm013664jsd", "acm013665jsd", "acm013666jsd", "acm013667jsd", "acm013668jsd", "acm013669jsd", "acm013670jsd" ] + }, + "acm013672jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013672jsd", + "name" : "UpdateNotificationActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013681jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013673jsd" : { + "type" : "CodePackage", + "id" : "acm013673jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013674jsd" ] + }, + "acm013674jsd" : { + "type" : "CodePackage", + "id" : "acm013674jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013675jsd" ] + }, + "acm013675jsd" : { + "type" : "CodePackage", + "id" : "acm013675jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013672jsd" ] + }, + "acm013676jsd" : { + "type" : "ControlElement", + "id" : "acm013676jsd", + "name" : "getActionUri" + }, + "acm013677jsd" : { + "type" : "ControlElement", + "id" : "acm013677jsd", + "name" : "getRequestMethod" + }, + "acm013678jsd" : { + "type" : "ControlElement", + "id" : "acm013678jsd", + "name" : "testExecute" + }, + "acm013679jsd" : { + "type" : "ControlElement", + "id" : "acm013679jsd", + "name" : "testAccessControl" + }, + "acm013680jsd" : { + "type" : "ControlElement", + "id" : "acm013680jsd", + "name" : "getTypicalUpdateRequest" + }, + "acm013681jsd" : { + "type" : "ClassUnit", + "id" : "acm013681jsd", + "name" : "UpdateNotificationActionTest", + "compilationUnitId" : "acm013672jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm004346jsd", "acm004351jsd", "acm005329jsd", "acm008685jsd", "acm009228jsd", "acm009265jsd", "acm010417jsd" ], + "content" : [ "acm013676jsd", "acm013677jsd", "acm013678jsd", "acm013679jsd", "acm013680jsd" ] + }, + "acm013682jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013682jsd", + "name" : "UpdateStudentActionTest", + "parentId" : "acm009426jsd", + "content" : [ "acm013693jsd" ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013683jsd" : { + "type" : "CodePackage", + "id" : "acm013683jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013684jsd" ] + }, + "acm013684jsd" : { + "type" : "CodePackage", + "id" : "acm013684jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013685jsd" ] + }, + "acm013685jsd" : { + "type" : "CodePackage", + "id" : "acm013685jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013682jsd" ] + }, + "acm013686jsd" : { + "type" : "ControlElement", + "id" : "acm013686jsd", + "name" : "getActionUri" + }, + "acm013687jsd" : { + "type" : "ControlElement", + "id" : "acm013687jsd", + "name" : "getRequestMethod" + }, + "acm013688jsd" : { + "type" : "ControlElement", + "id" : "acm013688jsd", + "name" : "testExecute" + }, + "acm013689jsd" : { + "type" : "ControlElement", + "id" : "acm013689jsd", + "name" : "testExecute_withTeamNameAlreadyExistsInAnotherSection_shouldFail" + }, + "acm013690jsd" : { + "type" : "ControlElement", + "id" : "acm013690jsd", + "name" : "testExecute_withSectionAlreadyHasMaxNumberOfStudents_shouldFail" + }, + "acm013691jsd" : { + "type" : "ControlElement", + "id" : "acm013691jsd", + "name" : "testExecute_withEmptySectionName_shouldBeUpdatedWithDefaultSectionName" + }, + "acm013692jsd" : { + "type" : "ControlElement", + "id" : "acm013692jsd", + "name" : "testAccessControl" + }, + "acm013693jsd" : { + "type" : "ClassUnit", + "id" : "acm013693jsd", + "name" : "UpdateStudentActionTest", + "compilationUnitId" : "acm013682jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm012395jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm005233jsd", "acm005412jsd", "acm006290jsd", "acm008670jsd", "acm009228jsd", "acm009286jsd", "acm009748jsd", "acm010144jsd", "acm010167jsd", "acm010426jsd" ], + "content" : [ "acm013686jsd", "acm013687jsd", "acm013688jsd", "acm013689jsd", "acm013690jsd", "acm013691jsd", "acm013692jsd" ] + }, + "acm013694jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013694jsd", + "name" : "package-info", + "parentId" : "acm009426jsd", + "content" : [ ], + "pathElements" : [ "src", "test", "java", "teammates", "ui", "webapi" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm013695jsd" : { + "type" : "CodePackage", + "id" : "acm013695jsd", + "name" : "teammates", + "parentId" : null, + "content" : [ "acm013696jsd" ] + }, + "acm013696jsd" : { + "type" : "CodePackage", + "id" : "acm013696jsd", + "name" : "ui", + "parentId" : null, + "content" : [ "acm013697jsd" ] + }, + "acm013697jsd" : { + "type" : "CodePackage", + "id" : "acm013697jsd", + "name" : "webapi", + "parentId" : null, + "content" : [ "acm013694jsd" ] + }, + "acm013699jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013699jsd", + "name" : "gradlew", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "", + "language" : "SHELL" + }, + "acm013700jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013700jsd", + "name" : "solr", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "solr" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm013701jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm013701jsd", + "name" : "wait-for-server", + "parentId" : null, + "content" : [ ], + "pathElements" : [ ], + "extension" : "sh", + "language" : "SHELL" + } + } + }, + "content" : [ "acm001338jsd", "acm013699jsd", "acm013700jsd", "acm013701jsd" ] +} \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teammates/text_2015/README.md b/tests-base/src/main/resources/benchmark/teammates/text_2015/README.md new file mode 100644 index 000000000..55ceb188e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/text_2015/README.md @@ -0,0 +1,43 @@ +# Teammates 2015 + +The text was extracted from https://github.com/TEAMMATES/teammates/blob/afb4b74677f4bf3d1e805fe59ad72a8d71a4ec34/devdocs/design.md + +## Assumption +* Since we could not find any architectural model from 2015, we assumed that the model would be the same as our previous, "original" one. +* For the goldstandard it was assumed, that the text still fits to the model from 2021. + + +## Text Adaptation +* The text was changed accordingly to the previous used version (since both texts are similarly structured and have some overlap) to increase the readability. + +### Comprehension of changes: +* Images were removed +* Enlistings were removed +* In the description of the main components the component names in front of the colons were removed. +* "Notes:" or "Things to note:" were translated in: "There are some things to note." +* Sections and titles were removed +* Enumerations were replaced with their textual representation. +* "Example:" was replaced with "For example, " +* For listings introduced with a sentence including "the following [...] :" this was replaced with a list of the objects of the list. Additionally, the subject of the sentence was made explicit if necessary. +* "Package overview:" was replaced by "Package overview contains [...]" and a list of the packages. +* "Represented by these classes:" was replaced by " is represented by the classes" +* "General: " was built in the text as introduction to the next sentence "In general, " +* "Access control: ", "API for creating entities:", "API for retrieving entitites:", "API for updating entities:", and "API for deleting entities:" were replaced by "To API for the following information are presented." +* "handles these:", "these:" were replaced by "the following." +* If packages began with a dot, an x was inserted before +* Tables like, "Normal: |---------acceptance tests----|---system tests----|-----integration tests-----|------unit tests---------| TEAMMATES: |---------manual testing-------------| ----automated UI tests----|---automated component tests---|" were removed. +* Sentences were added at the end of sentences, where necessary. +* Dots that should be commas (esp. in ".e.g., <...>") were replaced. +* quotation marks were removed. +* Stars were removed +* { were removed +* At "Protecting persistable objects:" the colon was replaced with a comma +* At "Note:" in floating text, the next sentence was introduced with "Note that [...]" +* If it would not lead to a semantic change, colons in sentences were removed. Otherwise there were replaced by "are"/ "is"/ "is that"/ ... +* In case of "##TestDriver This component [..]", the "This" was replaced with "The TestDriver". + +## License + +The documentation of TEAMMATES is part of their [repository](https://github.com/TEAMMATES/teammates). +Therefore, the text we extracted from their documentation is licensed according to the [license of TEAMMATES](https://github.com/TEAMMATES/teammates/blob/master/LICENSE) under GPL-2.0. + diff --git a/tests-base/src/main/resources/benchmark/teammates/text_2015/teammates_2015.txt b/tests-base/src/main/resources/benchmark/teammates/text_2015/teammates_2015.txt new file mode 100644 index 000000000..055897911 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/text_2015/teammates_2015.txt @@ -0,0 +1,185 @@ +TEAMMATES is a Web app that runs on Google App Engine (GAE) cloud platform. +Given above is an overview of the main components. +The UI seen by users consists of Web pages containing HTML, CSS (for styling) and JavaScripts (for client-side interactions such as sorting, input validation etc.). +This UI is generated by Java Server Pages (JSP) and Java Servlets residing on the server. +Requests are sent to the server over normal HTTP. +In future, AJAX may be used sparingly to fetch data from the server asynchronously. +The main logic of the app is in Java POJOs (Plain Old Java Objects). +Some automated tasks are implemented as Servlets. +Storage uses the persistence framework provided by GAE datastore, a noSQL database. +TEAMMATES makes heavy use of automated regression testing. +TestNG is used for Java unit testing and QUnit for JavaScript unit testing. +We use Selenium Web Driver to automate UI testing. +Test Driver can access the application directly to set up test data. +We use JSON format to transmit such data to the application. +The Client component can connect to the back end directly without using a Browser. +It is used for administrative purposes, e.g., migrating data to a new schema. +The Common component contains utility code used across the application. +The diagram below shows how the code is organized into packages inside each component and dependencies among them. +There are some things to note. +logic, ui.view, ui.controller represent an application of Model-View-Controller pattern. +ui.view and ui.website packages are not Java packages. +They consist of jsp, html, js and css files. +The diagram below shows the object structure of the UI component. +Request from the Browser for a specific page will go through following steps. +First, request received by the GAE server. +Second, custom filters are applied according to the order specified in web.xml. +In our case this would be DatastoreFilter and LoginFilter. +For example, the LoginFilter will forward any request from not-logged-in users to the login page. +If the request is from logged in user, then it will proceed according to the URL, e.g. /page/instructorHomePage. +Third, request forwarded to the ControllerServlet. +Fourth, controllerServlet uses the ActionFactory to generate the matching Action object, e.g., InstructorHomePageAction. +Fifth, controllerServlet executes the action. +Sixth, the Action object checks the access rights of the user. +If the action is allowed, it interacts with the Logic component to perform the action. +Seventh, assuming the action was loading a page, the Action gathers the data required for the page into a PageData object, e.g. InstructorHomePageData, creates a ShowPageResult object by enclosing the PageData object created previously, and returns it to the ControllerServlet. +Eighth, controllerServlet sends the result. +In the case of a ShowPageResult, this is equivalent to forwarding to the matching JSP page. +Ninth, the JSP page uses the data in the given PageData object to generate the HTML page. +Tenth, the response will then be sent back to the Browser, which will render the page. +There are some things to note. +After performing certain actions, the Browser should load another page, possibly with the status of the previous action. +For example, if the action is delete course, the Browser should load the courses page after the server performed the action. +In such cases, the result generated for the action will be of type RedirectResult which simply instructs the Browser to send a fresh request for the specified page. +In such cases, we do not create a PageData object for the original request. +For example, a browser request for delete course action. +Server performs the action (creates a RedirectResult object but no PageData object) and instructs the Browser to load the courses page. +As instructed, the Browser requests for the courses page. +Server processes the request separately (creates a ShowPageResult object but no PageData object) and returns the courses page. +The result of some actions is downloading of a file (e.g. an evaluation report). +In such cases, the result type will be FileDownloadResult and no PageData object will be generated. +Since the high-level workflow of processing a request is same for any request, we use the, the Template Method pattern to abstract the process folow into the Action class. +The list of actions and corresponding URIs are listed in the ActionURIs nested class of the Const class. +The list of pages and corresponding URIs are listed in the ViewURIs nested class of the Const class. +The UI consist of product pages (functional), product pages (peripheral), website pages, project pages. +Product pages (functional), e.g., courses page. +These require login. +Product pages (peripheral), e.g., help pages, error pages, etc. +Website pages are the static pages of the product website, e.g., contact.html. +Project pages meant for developers, such as this page. +The Logic component handles the business logic of TEAMMATES. +It is accessible via a thin facade class called Logic which makes use of several Logic classes to handle the logic related to various types of data and to access data from the Storage component. +In particular, Logic is responsible for the following. +Managing relationships between entities, e.g., cascade logic for create/update/delete. +Managing transactions, e.g., to ensure atomicity of a transaction. +Sanitizing input values recevied from the UI component. +Providing a mechanims for checking access control rights. +Package overview contains logic.api, logic.backdoor, logic.core, logic.automated. +logic.api provides the normal API of the component. +logic.backdoor provides a mechanism for the test driver to access data. +logic.core contains the core logic of the system. +logic.automated contains the logic of automated tasks. +Logic API is represented by the classes Logic, GateKeeper, BackDoorLogic. +Logic is used for the use of the UI. +Logic class acts as a facade between UI (servlets) and the backend of the app. +GateKeeper is used for the use of the UI. +To check the access rights of a user for a given action. +BackDoorLogic is used for the use of TestDriver (via BackDoorServlet). +In general, null values should not be used as parameters to this API, except when following the KeepExisting policy (explained later). +To access control the following information are presented. +Although this component provides methods to perform access control, it API itself is not access controlled. +The UI is expected to check access control (using GateKeeper class) before calling a method in the Logic. +However, calls received by BackDoorServlet are authenticated using the backdoor key. +Backdoor key is a string known only to the person who deployed the app (typically, the administrator). +To API for creating entities the following information are presented. +Null parameters causes an assertion failure. +Invalid parameters throws InvalidParametersException. +Entity already exists throws EntityAlreadyExists exception (escalated from Storage level). +When creating Evaluations, Submission entities are automatically created at the time of creating an evaluation or changing the team structure of a course. +To API for retrieving entities the following information are presented. +Attempting to retrieve objects using null parameters causes an assertion failure. +Entity not found returns null if the target entity not found. +This way, read operations can be used easily for checking the existence of an entity. +Throws EntityDoesNotExistsExeption if a parent entity of a target entity is not found e.g., trying to list students of a non-existent course. +To API for updating entities the following information are presented. +Primary keys cannot be edited except Student.email. +KeepExistingPolicy is that the new value of an optional attribute is specified as null or set to Uninitialized, the existing value will prevail. +This is not a good policy. +To be reconsidered. +Null parameters throws an assertion error if that parameter cannot be null. +Optional attributes follow KeepExistingPolicy. +Entity not found throws EntityDoesNotExistException exception. +Invalid parameters throws InvalidParametersException. +To API for deleting entities the following information are presented. +Null parameters are not expected. +Results in assertion failure. +The following explains the FailDeleteSilentlyPolicy. +In general, delete operation do not throw exceptions if the target entity does not exist. +Instead, it logs a warning. +This is because if it does not exist, it is as good as deleted. +The following explains the Cascade policy. +When a parent entity is deleted, entities that have referential integrity with the deleted entity should also be deleted. +Refer to the API for the cascade logic. +The Storage component performs CRUD (Create, Read, Update, Delete) operations on data entities individually. +Package overview contains storage.api, storage.entity, storage.datastore. +storage.api provides the normal API of the component. +storage.entity classes that represent persistable entities. +storage.datastore classes for dealing with the datastore. +Storage contains minimal logic beyond what is directly relevant to CRUD operations. +In particular, it handles the following. +Validating data inside entities before creating/updating them, to ensure they are in a valid state. +Hiding the complexities of datastore from the Logic component. +All GQL queries are to be contained inside the Storage component. +Protecting persitable objects, classes in the storage.entity package are not visible outside this component to prevent accidental modification to the entity's attributes. +(Since these classes have been marked as persistence capable, and changes to their attributes are automatically persisted to the datastore by default). +Instead, a corresponding non-persistent data transfer object named Attributes (e.g., CourseAttributes is the data transfer object for Course entities) object is returned, where values can be modified easily without any impact on the persistent data copy. +These datatransfer classes are in common.datatransfer package explained later. +Note that this decision was taken before GAE started supporting the ability to detach entities to prevent accidental modifications to persistable data. +The decision to use data transfer objects is to be reconsidered in the future. +The Storage component will not perform any cascade delete/create operations. +Cascade logic is currently handled by the Logic component. +Note that the navigability of the association links between entity objects appear to be in the reverse direction of what we see in a normal OOP design. +This is because we want to keep the data scheme flexible so that new entity types can be added later with minimal modifications to existing elements. +Add and Delete operations try to wait until data is persisted in the datastore before returning. +This is not enough to compensate for eventual consistency involving multiple servers in the GAE production enviornment. +However, it is expected to avoid test failures caused by eventual consistency in dev server and reduce such problems in the live server. +Note that Eventual consistency here means it takes some time for a database operation to propagate across all serves of the Google's distributed datastore. +As a result, the data may be in an inconsistent states for short periods of time although things should become consistent eventually. +For example, an object we deleted may appear to still exist for a short while. +Implementation of Transaction Control has been decided against due to limitations of GAE environment and the nature of our data schema. +Please see TEAMMATES Decision Analysis document for more information. +In general, if Null is passed as a parameter, the corresponding value is NOT modified, as per the KeepExistingPolicy that was previously mentioned. +To API for creating the following information are presented. +Attempt to create an entity that already exists throws EntityAlreadyExists exception. +Attempt to create an entity with invalid data throws InvalidParametersException. +To API for retrieving the following information are presented. +Attempt to retrieve an entity that does not exist returns null. +To API for updating the following information are presented. +Attempt to update an entity that does not exist throws EntityDoesNotExistException. +Attempt to update an entity with invalid data throws InvalidParametersException. +To API for deleting the following information are presented. +Attempt to delete an entity that does not exist fails silently. +The Common component contains common utilities used across TEAMMATES. +Package overview contains common.util, common.exceptions, common.datatransfer. +common.util contains utility classes. +common.exceptions contains custom exceptions. +common.datatransfer containts data transfer objects. +Given below are some more information about this package. +common.datatransfer package contains lightweight data transfer object classes for transferring data among components. +They can be combined in various ways to transfer structured data between components. +Given below are three examples. +Test Driver can use the DataBundle in this manner to send an arbitrary number of objects to be persisted in the database. +This structure can be used to transfer data of a course (e.g., when constructing the home page for an instructor). +This structure can be used to send results of an evaluation (e.g., when showing an evaluation report to an instructor). +For convenience, these classes use public variables for data. +This is not a good practice as it contravenes OO principle of information hiding and increases the risk of inconsistent data. +This strategy is to be reconsidered at a later date. +The TestDriver component automates the testing of TEAMMATES. +Package overview contains test.driver, test.pageobjects, test.cases, and subpackages. +test.driver contains infrastructure need for running the test driver. +test.pageobjects contains abstractions of the pages as the appear on a Browser (i.e. SUTs). +test.cases contains test cases. +Sub packages contains x.cases.testdriver, x.cases.browsertests, x.cases.common, x.cases.logic, x.cases.storage. +x.cases.driver contains component test cases for testing test driver infrastructure. +x.cases.browsertests contains system test cases for testing the UI. +x.cases.common contains component test cases for testing the Common component. +x.cases.logic contains component test cases for testing the Logic component. +x.cases.storage contains component test cases for testing the Storage component. +There are some things to note. +Some component tests are pure unit tests (i.e., test one component in isolation) while others are integration tests that tests units as well as integration of units with each other. +AllJsTests.java (implemented as a UI test) is for unit testing JavaScript code. +This is how TEAMMATES testing maps to standard types of testing. +The Client component contains scripts that can connect to the application backend for things such as migrating data and calculating statistics. +Package overview contains client.remoteapi, client.scripts. +client.remoteapi contains classes needed to connect to the backend directly. +client.scripts contains scripts that do things with the back end data. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teammates/text_2021/README.md b/tests-base/src/main/resources/benchmark/teammates/text_2021/README.md new file mode 100644 index 000000000..515e7096f --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/text_2021/README.md @@ -0,0 +1,40 @@ +# Teammates 2021 + +The text was taken from https://teammates.github.io/teammates/design.html + +## Text Adaptation + +Since the documentation contains many listings and implicit semantics, we slightly adapted the text. +Thereby, the text became more readable and easier to understand. + +### Comprehension of changes: +* Images were removed +* Enlistings were removed +* In the description of the main components the component names in front of the colons were removed. +* "Notes:" or "Things to note:" were translated in: "There are some things to note." +* Sections and titles were removed +* Enumerations were replaced with their textual representation. +* "Example:" was replaced with "For example, " +* For listings introduced with a sentence including "the following [...] :" this was replaced with a list of the objects of the list. Additionally, the subject of the sentence was made explicit if necessary. +* "Package overview:" was replaced by "Package overview contains [...]" and a list of the packages. +* "Represented by these classes:" was replaced by " is represented by the classes" +* "General: " was built in the text as introduction to the next sentence "In general, " +* "Access control: ", "API for creating entities:", "API for retrieving entitites:", "API for updating entities:", and "API for deleting entities:" were replaced by "To API for the following information are presented." +* "handles these:", "these:" were replaced by "the following." +* If packages began with a dot, an x was inserted before +* Tables like, "Normal: |---------acceptance tests----|---system tests----|-----integration tests-----|------unit tests---------| TEAMMATES: |---------manual testing-------------| ----automated UI tests----|---automated component tests---|" were removed. +* Sentences were added at the end of sentences, where necessary. +* Dots that should be commas (esp. in ".e.g., <...>") were replaced. +* quotation marks were removed. +* Stars were removed +* { were removed +* At "Protecting persistable objects:" the colon was replaced with a comma +* At "Note:" in floating text, the next sentence was introduced with "Note that [...]" +* If it would not lead to a semantic change, colons in sentences were removed. Otherwise there were replaced by "are"/ "is"/ "is that"/ ... +* In case of "##TestDriver This component [..]", the "This" was replaced with "The TestDriver". + + +## License + +The documentation of TEAMMATES is part of their [repository](https://github.com/TEAMMATES/teammates). +Therefore, the text we extracted from their documentation is licensed according to the [license of TEAMMATES](https://github.com/TEAMMATES/teammates/blob/master/LICENSE) under GPL-2.0. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teammates/text_2021/teammates.txt b/tests-base/src/main/resources/benchmark/teammates/text_2021/teammates.txt new file mode 100644 index 000000000..a04b8e7a5 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teammates/text_2021/teammates.txt @@ -0,0 +1,198 @@ +Architecture contains UI Component, Logic Component, Storage Component, Common Component, Test Driver Component, E2E Component, Client Component. +TEAMMATES is a Web application that runs on Google App Engine (GAE). +Given above is an overview of the main components. +The UI Browser seen by users consists of Web pages containing HTML, CSS for styling and JavaScript for client-side interactions such as sorting, input validation, etc.. +This UI is a single HTML page generated by Angular framework. +The initial page request is sent to the server over HTTP, and requests for data are sent asynchronously with AJAX. +In the UI Server the entry point for the application back end logic is designed as a REST-ful controller. +The main logic of the application is in POJOs (Plain Old Java Objects). +The storage layer of the application uses the persistence framework provided by GAE Datastore, a NoSQL database. +The following explains the use of the Test Driver. +TEAMMATES makes heavy use of automated regression testing. +Test data is transmitted using JSON format. +TestNG is used for Java testing (all levels) and Jest for JavaScript unit-testing. +HttpUnit is used to set up a simulated web server in servlet-level tests, where an actual web server is not required. +The E2E end-to-end component is used to interact with the application as a whole with Web browsers. +Its primary function is for E2E tests. +Selenium Java is used to automate E2E testing with actual Web browsers. +The Client component can connect to the back end directly without using a Web browser. +It is used for administrative purposes, e.g. migrating data to a new schema. +The Common component contains utility code (data transfer objects, helper classes, etc.) used across the application. +The diagram below shows how the code in each component is organized into packages and the dependencies between them. +logic, ui.website, ui.controller represent an application of Model-View-Controller pattern. +ui.website is not a real package. +It is a conceptual package representing the front-end of the application. +The diagram below shows the object structure of the UI component. +ui.website is not a Java package. +It is written in Angular framework and consists of HTML, SCSS, and TypeScript files. +The framework will build those files into HTML, CSS and JavaScript files ready to be used by standard Web browsers. +The UI component is the first stop for 99% of all requests that are received by the application. +Such a request will go through the following steps. +First, request received by the GAE server. +Second, custom filters are applied according to the order specified in web.xml, e.g. OriginCheckFilter. +Third, request forwarded to a Servlet object as specified in web.xml for further processing, depending on the type of request. +There are two general types of requests. +The user-invoked requests and the automated (GAE server-invoked) requests, which are processed differently. +User-invoked requests are all requests made by the users of the application, typically from the Web browser (i.e. by navigating to a particular URL of the application). +The request will be processed as in the image. +The initial request for the web page will be processed as follows. +First, request forwarded to WebPageServlet. +Second, WebPageServlet returns the built single web page (index.html). +Third, the browser will render the page and execute the page scripts, most of the time requiring AJAX requests to the server. +Subsequent AJAX requests sent to the server will be processed as follows. +First, request forwarded to the WebApiServlet. +Second, WebApiServlet uses the ActionFactory to generate the matching Action object, e.g. InstructorHomePageAction. +Third, WebApiServlet executes the action. +Fourth, the Action object checks the access rights of the user. +If the action is allowed, it will be performed, interacting with the Logic component as necessary. +Fifth, the Action packages and processes the result into an ActionResult object. +The most common format is JsonResult (requests for obtaining data or processing existing data), and other formats are defined as necessary, e.g. FileDownloadResult (e.g. downloading feedback session report) and ImageResult (e.g. profile pictures). +Sixth, WebApiServlet sends the result back to the browser which will then process it on the front-end. +Requests for static asset files (e.g. CSS, JS files, images) are served directly without going through web.xml configuration at all. +The Web API is protected by two layers of access control check. +These are origin check, authentication and authorization check. +Origin check mitigates CSRF attack. +Authentication and authorization check checks if the logged in user (or lack thereof) has sufficient privileges to trigger the API's actions. +Special keys (csrf key and backdoor key) can be used to bypass each of the checks, typically for testing purpose. +Those keys are strings known only to the person who deployed the application (typically, the administrator). +Automated requests are all requests sent automatically by the GAE server during specific periods of time. +This type of request will be processed as follows. +First, the source of the request will be checked for administrator privilege. +If this privilege is absent (e.g. non-administrator users trying to invoke the automated actions), the request will be dropped and a 403 Forbidden status will be returned. +Second, requests generated by the GAE server are equipped with this privilege. +Third, administrators can manually invoke these requests. +This is particularly useful in testing the actions associated with those requests. +Fourth, request forwarded to the AutomatedServlet. +Fifth, automatedServlet uses the AutomatedActionFactory to generate the matching AutomatedAction object, e.g. CompileLogsAction. +Sixth, automatedServlet executes the action. +Seventh, the corresponding AutomatedAction will be performed, interacting with the Logic component as necessary. +GAE server sends such automated requests through two different configurations. +These configurations are cron jobs or task queue workers. +Cron jobs are jobs that are automatically scheduled for a specified period of time, e.g. scheduling feedback session opening reminders. +It is configured in cron.xml. +Task queue workers are hybrids of user-invoked and GAE-invoked in that they are queued by users (i.e. users request for the tasks to be added to queue), but executed by GAE (i.e. GAE determines when and which tasks in the queue are executed at any point of time). +This is typically used for tasks that may take a long time to finish and can exceed the 1 minute standard request processing limit imposed by GAE. +It is configured in queue.xml as well as the TaskQueue nested class of the Const class. +Since the high-level workflow of processing a request is same for any request (differing by the two request types only), we use the Template Method pattern to abstract the process flow into the Action and AutomatedAction classes. +The Logic component handles the business logic of TEAMMATES. +In particular, it is responsible for the following. +Managing relationships between entities, e.g. cascade logic for create/update/delete. +Managing transactions, e.g. ensuring atomicity of a transaction. +Sanitizing input values received from the UI component. +Providing a mechanism for checking access control rights. +Connecting to GAE-provided or third-party APIs, e.g. for adding tasks to the task queue and for sending emails with third-party providers. +Package overview contains logic.api, logic.core. +logic.api provides the API of the component to be accessed by the UI. +logic.core contains the core logic of the system. +Logic API is represented by the classes Logic, GateKeeper, EmailGenerator, EmailSender, TaskQueuer. +Logic is a Facade class which connects to the several Logic classes to handle the logic related to various types of data and to access data from the Storage component. +GateKeeper checks access rights of a user for a given action. +EmailGenerator generates emails to be sent. +EmailSender sends email with the provider chosen based on the build configuration. +It connects to the email provider by using the appropriate Service class. +TaskQueuer adds tasks to the task queue. +It connects to GAE's task queue API. +To access control the following information are presented. +Although this component provides methods to perform access control, the API itself is not access controlled. +The UI is expected to check access control (using GateKeeper class) before calling a method in the Logic. +To API for creating entities the following information are presented. +Null parameters causes an assertion failure. +Invalid parameters throws InvalidParametersException. +Entity already exists throws EntityAlreadyExistsException (escalated from Storage level). +To API for retrieving entities the following information are presented. +Attempting to retrieve objects using null parameters causes an assertion failure. +Entity not found returns null if the target entity not found. +This way, read operations can be used easily for checking the existence of an entity. +To API for updating entities the following information are presented. +Update is done using UpdateOptions inside every Attributes. +The UpdateOptions will specify what is used to identify the entity to update and what will be updated. +Entity not found throws EntityDoesNotExistException. +Invalid parameters throws InvalidParametersException. +To API for deleting entities the following information are presented. +The following explains the FailDeleteSilentlyPolicy. +In general, delete operation do not throw exceptions if the target entity does not exist. +This is because if it does not exist, it is as good as deleted. +The following explains the Cascade policy. +When a parent entity is deleted, entities that have referential integrity with the deleted entity should also be deleted. +Refer to the API for the cascade logic. +The Storage component performs CRUD (Create, Read, Update, Delete) operations on data entities individually. +It contains minimal logic beyond what is directly relevant to CRUD operations. +In particular, it is reponsible for the following. +Validating data inside entities before creating/updating them, to ensure they are in a valid state. +Hiding the complexities of datastore from the Logic component. +All GQL queries are to be contained inside the Storage component. +Hiding the persistable objects. +Classes in the storage.entity package are not visible outside this component to hide information specific to data persistence. +Instead, a corresponding non-persistent data transfer object named Attributes (e.g., CourseAttributes is the data transfer object for Course entities) object is returned. +These datatransfer classes are in common.datatransfer package, to be explained later. +The Storage component does not perform any cascade delete/create operations. +Cascade logic is handled by the Logic component. +Package overview contains storage.api, storage.entity, storage.search. +storage.api provides the API of the component to be accessed by the logic component. +storage.entity contains classes that represent persistable entities. +storage.search contains classes for dealing with searching and indexing. +Note that the navigability of the association links between entity objects appear to be in the reverse direction of what we see in a normal OOP design. +This is because we want to keep the data schema flexible so that new entity types can be added later with minimal modifications to existing elements. +Represented by the Db classes. +These classes act as the bridge to the GAE Datastore. +Add and Delete operations try to wait until data is persisted in the datastore before returning. +This is not enough to compensate for eventual consistency involving multiple servers in the GAE production environment. +However, it is expected to avoid test failures caused by eventual consistency in dev server and reduce such problems in the live server. +Eventual consistency here means it takes some time for a database operation to propagate across all serves of the Google's distributed datastore. +As a result, the data may be in an inconsistent states for short periods of time although things should become consistent eventually. +For example, an object we deleted may appear to still exist for a short while. +Implementation of Transaction Control has been minimized due to limitations of GAE environment and the nature of our data schema. +To API for creating the following information are presented. +Attempt to create an entity that already exists throws EntityAlreadyExistsException. +Attempt to create an entity with invalid data throws InvalidParametersException. +To API for retrieving the following information are presented. +Attempt to retrieve an entity that does not exist returns null. +To API for updating the following information are presented. +Attempt to update an entity that does not exist throws EntityDoesNotExistException. +Attempt to update an entity with invalid data throws InvalidParametersException. +To API for deleting the following information are presented. +Attempt to delete an entity that does not exist fails silently. +The Common component contains common utilities used across TEAMMATES. +Package overview contains common.util, common.exceptions, common.datatransfer. +common.util contains utility classes. +common.exceptions contains custom exceptions. +common.datatransfer contains data transfer objects. +common.datatransfer package contains lightweight data transfer object classes for transferring data among components. +They can be combined in various ways to transfer structured data between components. +Given below are three examples. +Test Driver can use the DataBundle in this manner to send an arbitrary number of objects to be persisted in the database. +This structure can be used to transfer data of a course (e.g., when constructing the home page for an instructor). +This structure can be used to send results of a feedback session (e.g., when showing a feedback session report to an instructor). +Some of these classes are methodless and thus more of a data structure rather than a class. +These classes use public variables for data for easy access. +This component automates the testing of TEAMMATES. +Package overview contains test.driver, test.cases and subpackages. +test.driver contains infrastructure and helpers needed for running the tests. +test.cases contains test cases. +Sub-packages contains x.testdriver, x.datatransfer, x.util, x.logic, x.storage, x.search, x.webapi, x.automated. +x.testdriver contains component test cases for testing the test driver infrastructure and helpers. +x.datatransfer contains component test cases for testing the datatransfer objects from the Common component. +x.util contains component test cases for testing the utility classes from the Common component. +x.logic contains component test cases for testing the Logic component. +x.storage contains component test cases for testing the Storage component. +x.search contains component test cases for testing the search functions. +x.webapi contains system test cases for testing the user-invoked actions. +x.automated contains system test cases for testing the system-automated actions (manually invoked during testing). +Some Component tests are pure unit tests (i.e. testing one component in isolation) while others are integration tests that test units as well as integration of units with each other. +Front-end files (particularly TypeScript) are tested separately with Jest. +The test cases are found in x.spec.ts files. +This is how TEAMMATES testing maps to standard types of testing. +The E2E component has no knowledge of the internal workings of the application and can only interact either with Web browser as a whole application or REST API calls for the back-end logic. +Its primary function is for E2E tests and L&P (Load & Performance) tests. +Package overview contains e2e.util, e2e.pageobjects, e2e.cases, x.util, x.e2e, x.lnp. +e2e.util contains helpers needed for running E2E tests. +e2e.pageobjects contains abstractions of the pages as they appear on a Browser (i.e. SUTs). +e2e.cases contains test cases. +x.util contains component test cases for testing the test helpers. +x.e2e contains system test cases for testing the application as a whole. +x.lnp contains load and performance tests (experimental). +The Client component contains scripts that can connect directly to the application back-end for administrative purposes, such as migrating data to a new schema and calculating statistics. +Package overview contains client.util, client.remoteapi, client.scripts. +client.util contains helpers needed for client scripts. +client.remoteapi classes needed to connect to the back end directly. +client.scripts scripts that deal with the back end data for administrative purposes. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/README.md b/tests-base/src/main/resources/benchmark/teastore/README.md new file mode 100644 index 000000000..112f07c9e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/README.md @@ -0,0 +1,25 @@ +# TeaStore Statistics (cloc) +``` +----------------------------------------------------------------------------------- +Language files blank comment code +----------------------------------------------------------------------------------- +Java 200 2591 7933 12295 +CSS 5 58 24 7598 +YAML 32 44 59 2824 +JavaScript 13 644 250 1848 +JSON 4 0 0 1280 +Maven 14 61 24 991 +XML 24 18 37 769 +JSP 17 35 10 760 +Markdown 3 138 0 352 +SVG 1 0 0 288 +Bourne Shell 5 27 10 209 +Visualforce Component 13 0 0 154 +SQL 2 31 48 146 +Lua 2 14 52 122 +Python 1 11 37 87 +Dockerfile 7 23 12 67 +----------------------------------------------------------------------------------- +SUM: 343 3695 8496 29790 +----------------------------------------------------------------------------------- +``` diff --git a/tests-base/src/main/resources/benchmark/teastore/diagrams_2018/Overview.jpg b/tests-base/src/main/resources/benchmark/teastore/diagrams_2018/Overview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a73f70bc4152a7fd4ee45c05e78b35544fbba72e GIT binary patch literal 71932 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 j!7b@Mk*tBT2iG_K2;TVL + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.repository b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.repository new file mode 100644 index 000000000..5863c39d3 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.repository @@ -0,0 +1,920 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.resourceenvironment b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.resourceenvironment new file mode 100644 index 000000000..59cda2f43 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.resourceenvironment @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.system b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.system new file mode 100644 index 000000000..47b2879a6 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.system @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.usagemodel b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.usagemodel new file mode 100644 index 000000000..7fcc4a48c --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2020/pcm/teastore.usagemodel @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2020/uml/teastore.uml b/tests-base/src/main/resources/benchmark/teastore/model_2020/uml/teastore.uml new file mode 100644 index 000000000..6c618ff3b --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2020/uml/teastore.uml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2022/code/README.md b/tests-base/src/main/resources/benchmark/teastore/model_2022/code/README.md new file mode 100644 index 000000000..398fde5da --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2022/code/README.md @@ -0,0 +1,2 @@ +# TeaStore Code Model +The code that was used is located at https://github.com/ArDoCo/TeaStore/commit/bdc49020a55cfa97eaabbb25744fefbc2697defa diff --git a/tests-base/src/main/resources/benchmark/teastore/model_2022/code/codeModel.acm b/tests-base/src/main/resources/benchmark/teastore/model_2022/code/codeModel.acm new file mode 100644 index 000000000..f2ee222a1 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/model_2022/code/codeModel.acm @@ -0,0 +1,16989 @@ +{ + "id" : "acm003887jsd", + "codeItemRepository" : { + "repository" : { + "acm001337jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001337jsd", + "name" : "Category", + "parentId" : "acm001341jsd", + "content" : [ "acm001352jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001338jsd" : { + "type" : "CodePackage", + "id" : "acm001338jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001339jsd" ] + }, + "acm001339jsd" : { + "type" : "CodePackage", + "id" : "acm001339jsd", + "name" : "descartes", + "parentId" : "acm001338jsd", + "content" : [ "acm001340jsd" ] + }, + "acm001340jsd" : { + "type" : "CodePackage", + "id" : "acm001340jsd", + "name" : "teastore", + "parentId" : "acm001339jsd", + "content" : [ "acm001341jsd", "acm001499jsd", "acm001617jsd", "acm002477jsd", "acm002910jsd", "acm003199jsd", "acm003254jsd", "acm003440jsd", "acm003452jsd", "acm003570jsd" ] + }, + "acm001341jsd" : { + "type" : "CodePackage", + "id" : "acm001341jsd", + "name" : "entities", + "parentId" : "acm001340jsd", + "content" : [ "acm001337jsd", "acm001353jsd", "acm001371jsd", "acm001379jsd", "acm001409jsd", "acm001429jsd", "acm001449jsd", "acm001489jsd", "acm001474jsd" ] + }, + "acm001342jsd" : { + "type" : "ControlElement", + "id" : "acm001342jsd", + "name" : "Category" + }, + "acm001343jsd" : { + "type" : "ControlElement", + "id" : "acm001343jsd", + "name" : "Category" + }, + "acm001344jsd" : { + "type" : "ControlElement", + "id" : "acm001344jsd", + "name" : "getId" + }, + "acm001345jsd" : { + "type" : "ControlElement", + "id" : "acm001345jsd", + "name" : "setId" + }, + "acm001346jsd" : { + "type" : "ControlElement", + "id" : "acm001346jsd", + "name" : "getName" + }, + "acm001347jsd" : { + "type" : "ControlElement", + "id" : "acm001347jsd", + "name" : "setName" + }, + "acm001348jsd" : { + "type" : "ControlElement", + "id" : "acm001348jsd", + "name" : "getDescription" + }, + "acm001349jsd" : { + "type" : "ControlElement", + "id" : "acm001349jsd", + "name" : "setDescription" + }, + "acm001350jsd" : { + "type" : "ControlElement", + "id" : "acm001350jsd", + "name" : "hashCode" + }, + "acm001351jsd" : { + "type" : "ControlElement", + "id" : "acm001351jsd", + "name" : "equals" + }, + "acm001352jsd" : { + "type" : "ClassUnit", + "id" : "acm001352jsd", + "name" : "Category", + "compilationUnitId" : "acm001337jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd" ], + "content" : [ "acm001342jsd", "acm001343jsd", "acm001344jsd", "acm001345jsd", "acm001346jsd", "acm001347jsd", "acm001348jsd", "acm001349jsd", "acm001350jsd", "acm001351jsd" ] + }, + "acm001353jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001353jsd", + "name" : "ImageSize", + "parentId" : "acm001341jsd", + "content" : [ "acm001370jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001354jsd" : { + "type" : "CodePackage", + "id" : "acm001354jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001355jsd" ] + }, + "acm001355jsd" : { + "type" : "CodePackage", + "id" : "acm001355jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001356jsd" ] + }, + "acm001356jsd" : { + "type" : "CodePackage", + "id" : "acm001356jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001357jsd" ] + }, + "acm001357jsd" : { + "type" : "CodePackage", + "id" : "acm001357jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001353jsd" ] + }, + "acm001358jsd" : { + "type" : "ControlElement", + "id" : "acm001358jsd", + "name" : "ImageSize" + }, + "acm001359jsd" : { + "type" : "ControlElement", + "id" : "acm001359jsd", + "name" : "ImageSize" + }, + "acm001360jsd" : { + "type" : "ControlElement", + "id" : "acm001360jsd", + "name" : "ImageSize" + }, + "acm001361jsd" : { + "type" : "ControlElement", + "id" : "acm001361jsd", + "name" : "getWidth" + }, + "acm001362jsd" : { + "type" : "ControlElement", + "id" : "acm001362jsd", + "name" : "setWidth" + }, + "acm001363jsd" : { + "type" : "ControlElement", + "id" : "acm001363jsd", + "name" : "getHeight" + }, + "acm001364jsd" : { + "type" : "ControlElement", + "id" : "acm001364jsd", + "name" : "setHeight" + }, + "acm001365jsd" : { + "type" : "ControlElement", + "id" : "acm001365jsd", + "name" : "getPixelCount" + }, + "acm001366jsd" : { + "type" : "ControlElement", + "id" : "acm001366jsd", + "name" : "parseImageSize" + }, + "acm001367jsd" : { + "type" : "ControlElement", + "id" : "acm001367jsd", + "name" : "hashCode" + }, + "acm001368jsd" : { + "type" : "ControlElement", + "id" : "acm001368jsd", + "name" : "equals" + }, + "acm001369jsd" : { + "type" : "ControlElement", + "id" : "acm001369jsd", + "name" : "toString" + }, + "acm001370jsd" : { + "type" : "ClassUnit", + "id" : "acm001370jsd", + "name" : "ImageSize", + "compilationUnitId" : "acm001353jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd" ], + "content" : [ "acm001358jsd", "acm001359jsd", "acm001360jsd", "acm001361jsd", "acm001362jsd", "acm001363jsd", "acm001364jsd", "acm001365jsd", "acm001366jsd", "acm001367jsd", "acm001368jsd", "acm001369jsd" ] + }, + "acm001371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001371jsd", + "name" : "ImageSizePreset", + "parentId" : "acm001341jsd", + "content" : [ "acm001378jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001372jsd" : { + "type" : "CodePackage", + "id" : "acm001372jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001373jsd" ] + }, + "acm001373jsd" : { + "type" : "CodePackage", + "id" : "acm001373jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001374jsd" ] + }, + "acm001374jsd" : { + "type" : "CodePackage", + "id" : "acm001374jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001375jsd" ] + }, + "acm001375jsd" : { + "type" : "CodePackage", + "id" : "acm001375jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001371jsd" ] + }, + "acm001376jsd" : { + "type" : "ControlElement", + "id" : "acm001376jsd", + "name" : "ImageSizePreset" + }, + "acm001377jsd" : { + "type" : "ControlElement", + "id" : "acm001377jsd", + "name" : "getSize" + }, + "acm001378jsd" : { + "type" : "ClassUnit", + "id" : "acm001378jsd", + "name" : "ImageSizePreset", + "compilationUnitId" : "acm001371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd" ], + "content" : [ "acm001376jsd", "acm001377jsd" ] + }, + "acm001379jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001379jsd", + "name" : "Order", + "parentId" : "acm001341jsd", + "content" : [ "acm001408jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001380jsd" : { + "type" : "CodePackage", + "id" : "acm001380jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001381jsd" ] + }, + "acm001381jsd" : { + "type" : "CodePackage", + "id" : "acm001381jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001382jsd" ] + }, + "acm001382jsd" : { + "type" : "CodePackage", + "id" : "acm001382jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001383jsd" ] + }, + "acm001383jsd" : { + "type" : "CodePackage", + "id" : "acm001383jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001379jsd" ] + }, + "acm001384jsd" : { + "type" : "ControlElement", + "id" : "acm001384jsd", + "name" : "Order" + }, + "acm001385jsd" : { + "type" : "ControlElement", + "id" : "acm001385jsd", + "name" : "Order" + }, + "acm001386jsd" : { + "type" : "ControlElement", + "id" : "acm001386jsd", + "name" : "getId" + }, + "acm001387jsd" : { + "type" : "ControlElement", + "id" : "acm001387jsd", + "name" : "setId" + }, + "acm001388jsd" : { + "type" : "ControlElement", + "id" : "acm001388jsd", + "name" : "getUserId" + }, + "acm001389jsd" : { + "type" : "ControlElement", + "id" : "acm001389jsd", + "name" : "setUserId" + }, + "acm001390jsd" : { + "type" : "ControlElement", + "id" : "acm001390jsd", + "name" : "getTime" + }, + "acm001391jsd" : { + "type" : "ControlElement", + "id" : "acm001391jsd", + "name" : "setTime" + }, + "acm001392jsd" : { + "type" : "ControlElement", + "id" : "acm001392jsd", + "name" : "getTotalPriceInCents" + }, + "acm001393jsd" : { + "type" : "ControlElement", + "id" : "acm001393jsd", + "name" : "setTotalPriceInCents" + }, + "acm001394jsd" : { + "type" : "ControlElement", + "id" : "acm001394jsd", + "name" : "getAddressName" + }, + "acm001395jsd" : { + "type" : "ControlElement", + "id" : "acm001395jsd", + "name" : "setAddressName" + }, + "acm001396jsd" : { + "type" : "ControlElement", + "id" : "acm001396jsd", + "name" : "getAddress1" + }, + "acm001397jsd" : { + "type" : "ControlElement", + "id" : "acm001397jsd", + "name" : "setAddress1" + }, + "acm001398jsd" : { + "type" : "ControlElement", + "id" : "acm001398jsd", + "name" : "getAddress2" + }, + "acm001399jsd" : { + "type" : "ControlElement", + "id" : "acm001399jsd", + "name" : "setAddress2" + }, + "acm001400jsd" : { + "type" : "ControlElement", + "id" : "acm001400jsd", + "name" : "getCreditCardCompany" + }, + "acm001401jsd" : { + "type" : "ControlElement", + "id" : "acm001401jsd", + "name" : "setCreditCardCompany" + }, + "acm001402jsd" : { + "type" : "ControlElement", + "id" : "acm001402jsd", + "name" : "getCreditCardNumber" + }, + "acm001403jsd" : { + "type" : "ControlElement", + "id" : "acm001403jsd", + "name" : "setCreditCardNumber" + }, + "acm001404jsd" : { + "type" : "ControlElement", + "id" : "acm001404jsd", + "name" : "getCreditCardExpiryDate" + }, + "acm001405jsd" : { + "type" : "ControlElement", + "id" : "acm001405jsd", + "name" : "setCreditCardExpiryDate" + }, + "acm001406jsd" : { + "type" : "ControlElement", + "id" : "acm001406jsd", + "name" : "hashCode" + }, + "acm001407jsd" : { + "type" : "ControlElement", + "id" : "acm001407jsd", + "name" : "equals" + }, + "acm001408jsd" : { + "type" : "ClassUnit", + "id" : "acm001408jsd", + "name" : "Order", + "compilationUnitId" : "acm001379jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd" ], + "content" : [ "acm001384jsd", "acm001385jsd", "acm001386jsd", "acm001387jsd", "acm001388jsd", "acm001389jsd", "acm001390jsd", "acm001391jsd", "acm001392jsd", "acm001393jsd", "acm001394jsd", "acm001395jsd", "acm001396jsd", "acm001397jsd", "acm001398jsd", "acm001399jsd", "acm001400jsd", "acm001401jsd", "acm001402jsd", "acm001403jsd", "acm001404jsd", "acm001405jsd", "acm001406jsd", "acm001407jsd" ] + }, + "acm001409jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001409jsd", + "name" : "OrderItem", + "parentId" : "acm001341jsd", + "content" : [ "acm001428jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001410jsd" : { + "type" : "CodePackage", + "id" : "acm001410jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001411jsd" ] + }, + "acm001411jsd" : { + "type" : "CodePackage", + "id" : "acm001411jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001412jsd" ] + }, + "acm001412jsd" : { + "type" : "CodePackage", + "id" : "acm001412jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001413jsd" ] + }, + "acm001413jsd" : { + "type" : "CodePackage", + "id" : "acm001413jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001409jsd" ] + }, + "acm001414jsd" : { + "type" : "ControlElement", + "id" : "acm001414jsd", + "name" : "OrderItem" + }, + "acm001415jsd" : { + "type" : "ControlElement", + "id" : "acm001415jsd", + "name" : "OrderItem" + }, + "acm001416jsd" : { + "type" : "ControlElement", + "id" : "acm001416jsd", + "name" : "getId" + }, + "acm001417jsd" : { + "type" : "ControlElement", + "id" : "acm001417jsd", + "name" : "setId" + }, + "acm001418jsd" : { + "type" : "ControlElement", + "id" : "acm001418jsd", + "name" : "getProductId" + }, + "acm001419jsd" : { + "type" : "ControlElement", + "id" : "acm001419jsd", + "name" : "setProductId" + }, + "acm001420jsd" : { + "type" : "ControlElement", + "id" : "acm001420jsd", + "name" : "getQuantity" + }, + "acm001421jsd" : { + "type" : "ControlElement", + "id" : "acm001421jsd", + "name" : "setQuantity" + }, + "acm001422jsd" : { + "type" : "ControlElement", + "id" : "acm001422jsd", + "name" : "getUnitPriceInCents" + }, + "acm001423jsd" : { + "type" : "ControlElement", + "id" : "acm001423jsd", + "name" : "setUnitPriceInCents" + }, + "acm001424jsd" : { + "type" : "ControlElement", + "id" : "acm001424jsd", + "name" : "getOrderId" + }, + "acm001425jsd" : { + "type" : "ControlElement", + "id" : "acm001425jsd", + "name" : "setOrderId" + }, + "acm001426jsd" : { + "type" : "ControlElement", + "id" : "acm001426jsd", + "name" : "hashCode" + }, + "acm001427jsd" : { + "type" : "ControlElement", + "id" : "acm001427jsd", + "name" : "equals" + }, + "acm001428jsd" : { + "type" : "ClassUnit", + "id" : "acm001428jsd", + "name" : "OrderItem", + "compilationUnitId" : "acm001409jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd" ], + "content" : [ "acm001414jsd", "acm001415jsd", "acm001416jsd", "acm001417jsd", "acm001418jsd", "acm001419jsd", "acm001420jsd", "acm001421jsd", "acm001422jsd", "acm001423jsd", "acm001424jsd", "acm001425jsd", "acm001426jsd", "acm001427jsd" ] + }, + "acm001429jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001429jsd", + "name" : "Product", + "parentId" : "acm001341jsd", + "content" : [ "acm001448jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001430jsd" : { + "type" : "CodePackage", + "id" : "acm001430jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001431jsd" ] + }, + "acm001431jsd" : { + "type" : "CodePackage", + "id" : "acm001431jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001432jsd" ] + }, + "acm001432jsd" : { + "type" : "CodePackage", + "id" : "acm001432jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001433jsd" ] + }, + "acm001433jsd" : { + "type" : "CodePackage", + "id" : "acm001433jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001429jsd" ] + }, + "acm001434jsd" : { + "type" : "ControlElement", + "id" : "acm001434jsd", + "name" : "Product" + }, + "acm001435jsd" : { + "type" : "ControlElement", + "id" : "acm001435jsd", + "name" : "Product" + }, + "acm001436jsd" : { + "type" : "ControlElement", + "id" : "acm001436jsd", + "name" : "getId" + }, + "acm001437jsd" : { + "type" : "ControlElement", + "id" : "acm001437jsd", + "name" : "setId" + }, + "acm001438jsd" : { + "type" : "ControlElement", + "id" : "acm001438jsd", + "name" : "getCategoryId" + }, + "acm001439jsd" : { + "type" : "ControlElement", + "id" : "acm001439jsd", + "name" : "setCategoryId" + }, + "acm001440jsd" : { + "type" : "ControlElement", + "id" : "acm001440jsd", + "name" : "getName" + }, + "acm001441jsd" : { + "type" : "ControlElement", + "id" : "acm001441jsd", + "name" : "setName" + }, + "acm001442jsd" : { + "type" : "ControlElement", + "id" : "acm001442jsd", + "name" : "getDescription" + }, + "acm001443jsd" : { + "type" : "ControlElement", + "id" : "acm001443jsd", + "name" : "setDescription" + }, + "acm001444jsd" : { + "type" : "ControlElement", + "id" : "acm001444jsd", + "name" : "getListPriceInCents" + }, + "acm001445jsd" : { + "type" : "ControlElement", + "id" : "acm001445jsd", + "name" : "setListPriceInCents" + }, + "acm001446jsd" : { + "type" : "ControlElement", + "id" : "acm001446jsd", + "name" : "hashCode" + }, + "acm001447jsd" : { + "type" : "ControlElement", + "id" : "acm001447jsd", + "name" : "equals" + }, + "acm001448jsd" : { + "type" : "ClassUnit", + "id" : "acm001448jsd", + "name" : "Product", + "compilationUnitId" : "acm001429jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd" ], + "content" : [ "acm001434jsd", "acm001435jsd", "acm001436jsd", "acm001437jsd", "acm001438jsd", "acm001439jsd", "acm001440jsd", "acm001441jsd", "acm001442jsd", "acm001443jsd", "acm001444jsd", "acm001445jsd", "acm001446jsd", "acm001447jsd" ] + }, + "acm001449jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001449jsd", + "name" : "User", + "parentId" : "acm001341jsd", + "content" : [ "acm001468jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001450jsd" : { + "type" : "CodePackage", + "id" : "acm001450jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001451jsd" ] + }, + "acm001451jsd" : { + "type" : "CodePackage", + "id" : "acm001451jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001452jsd" ] + }, + "acm001452jsd" : { + "type" : "CodePackage", + "id" : "acm001452jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001453jsd" ] + }, + "acm001453jsd" : { + "type" : "CodePackage", + "id" : "acm001453jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001449jsd" ] + }, + "acm001454jsd" : { + "type" : "ControlElement", + "id" : "acm001454jsd", + "name" : "User" + }, + "acm001455jsd" : { + "type" : "ControlElement", + "id" : "acm001455jsd", + "name" : "User" + }, + "acm001456jsd" : { + "type" : "ControlElement", + "id" : "acm001456jsd", + "name" : "getId" + }, + "acm001457jsd" : { + "type" : "ControlElement", + "id" : "acm001457jsd", + "name" : "setId" + }, + "acm001458jsd" : { + "type" : "ControlElement", + "id" : "acm001458jsd", + "name" : "getUserName" + }, + "acm001459jsd" : { + "type" : "ControlElement", + "id" : "acm001459jsd", + "name" : "setUserName" + }, + "acm001460jsd" : { + "type" : "ControlElement", + "id" : "acm001460jsd", + "name" : "getPassword" + }, + "acm001461jsd" : { + "type" : "ControlElement", + "id" : "acm001461jsd", + "name" : "setPassword" + }, + "acm001462jsd" : { + "type" : "ControlElement", + "id" : "acm001462jsd", + "name" : "getRealName" + }, + "acm001463jsd" : { + "type" : "ControlElement", + "id" : "acm001463jsd", + "name" : "setRealName" + }, + "acm001464jsd" : { + "type" : "ControlElement", + "id" : "acm001464jsd", + "name" : "getEmail" + }, + "acm001465jsd" : { + "type" : "ControlElement", + "id" : "acm001465jsd", + "name" : "setEmail" + }, + "acm001466jsd" : { + "type" : "ControlElement", + "id" : "acm001466jsd", + "name" : "hashCode" + }, + "acm001467jsd" : { + "type" : "ControlElement", + "id" : "acm001467jsd", + "name" : "equals" + }, + "acm001468jsd" : { + "type" : "ClassUnit", + "id" : "acm001468jsd", + "name" : "User", + "compilationUnitId" : "acm001449jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001468jsd" ], + "content" : [ "acm001454jsd", "acm001455jsd", "acm001456jsd", "acm001457jsd", "acm001458jsd", "acm001459jsd", "acm001460jsd", "acm001461jsd", "acm001462jsd", "acm001463jsd", "acm001464jsd", "acm001465jsd", "acm001466jsd", "acm001467jsd" ] + }, + "acm001469jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001469jsd", + "name" : "SessionBlob", + "parentId" : "acm001474jsd", + "content" : [ "acm001488jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "main", "java", "tools", "descartes", "teastore", "entities", "message" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001470jsd" : { + "type" : "CodePackage", + "id" : "acm001470jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001471jsd" ] + }, + "acm001471jsd" : { + "type" : "CodePackage", + "id" : "acm001471jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001472jsd" ] + }, + "acm001472jsd" : { + "type" : "CodePackage", + "id" : "acm001472jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001473jsd" ] + }, + "acm001473jsd" : { + "type" : "CodePackage", + "id" : "acm001473jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001474jsd" ] + }, + "acm001474jsd" : { + "type" : "CodePackage", + "id" : "acm001474jsd", + "name" : "message", + "parentId" : "acm001341jsd", + "content" : [ "acm001469jsd" ] + }, + "acm001475jsd" : { + "type" : "ControlElement", + "id" : "acm001475jsd", + "name" : "SessionBlob" + }, + "acm001476jsd" : { + "type" : "ControlElement", + "id" : "acm001476jsd", + "name" : "getUID" + }, + "acm001477jsd" : { + "type" : "ControlElement", + "id" : "acm001477jsd", + "name" : "setUID" + }, + "acm001478jsd" : { + "type" : "ControlElement", + "id" : "acm001478jsd", + "name" : "getSID" + }, + "acm001479jsd" : { + "type" : "ControlElement", + "id" : "acm001479jsd", + "name" : "setSID" + }, + "acm001480jsd" : { + "type" : "ControlElement", + "id" : "acm001480jsd", + "name" : "getToken" + }, + "acm001481jsd" : { + "type" : "ControlElement", + "id" : "acm001481jsd", + "name" : "setToken" + }, + "acm001482jsd" : { + "type" : "ControlElement", + "id" : "acm001482jsd", + "name" : "setMessage" + }, + "acm001483jsd" : { + "type" : "ControlElement", + "id" : "acm001483jsd", + "name" : "getMessage" + }, + "acm001484jsd" : { + "type" : "ControlElement", + "id" : "acm001484jsd", + "name" : "getOrder" + }, + "acm001485jsd" : { + "type" : "ControlElement", + "id" : "acm001485jsd", + "name" : "setOrder" + }, + "acm001486jsd" : { + "type" : "ControlElement", + "id" : "acm001486jsd", + "name" : "getOrderItems" + }, + "acm001487jsd" : { + "type" : "ControlElement", + "id" : "acm001487jsd", + "name" : "setOrderItems" + }, + "acm001488jsd" : { + "type" : "ClassUnit", + "id" : "acm001488jsd", + "name" : "SessionBlob", + "compilationUnitId" : "acm001469jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd" ], + "content" : [ "acm001475jsd", "acm001476jsd", "acm001477jsd", "acm001478jsd", "acm001479jsd", "acm001480jsd", "acm001481jsd", "acm001482jsd", "acm001483jsd", "acm001484jsd", "acm001485jsd", "acm001486jsd", "acm001487jsd" ] + }, + "acm001489jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001489jsd", + "name" : "InterfaceTests", + "parentId" : "acm001341jsd", + "content" : [ "acm001494jsd" ], + "pathElements" : [ "interfaces", "tools.descartes.teastore.entities", "src", "test", "java", "tools", "descartes", "teastore", "entities" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001490jsd" : { + "type" : "CodePackage", + "id" : "acm001490jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001491jsd" ] + }, + "acm001491jsd" : { + "type" : "CodePackage", + "id" : "acm001491jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001492jsd" ] + }, + "acm001492jsd" : { + "type" : "CodePackage", + "id" : "acm001492jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001493jsd" ] + }, + "acm001493jsd" : { + "type" : "CodePackage", + "id" : "acm001493jsd", + "name" : "entities", + "parentId" : null, + "content" : [ "acm001489jsd" ] + }, + "acm001494jsd" : { + "type" : "ClassUnit", + "id" : "acm001494jsd", + "name" : "InterfaceTests", + "compilationUnitId" : "acm001489jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm001495jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001495jsd", + "name" : "AuthCartRest", + "parentId" : "acm001500jsd", + "content" : [ "acm001504jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001496jsd" : { + "type" : "CodePackage", + "id" : "acm001496jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001497jsd" ] + }, + "acm001497jsd" : { + "type" : "CodePackage", + "id" : "acm001497jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001498jsd" ] + }, + "acm001498jsd" : { + "type" : "CodePackage", + "id" : "acm001498jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001499jsd" ] + }, + "acm001499jsd" : { + "type" : "CodePackage", + "id" : "acm001499jsd", + "name" : "auth", + "parentId" : "acm001340jsd", + "content" : [ "acm001500jsd", "acm001529jsd", "acm001592jsd" ] + }, + "acm001500jsd" : { + "type" : "CodePackage", + "id" : "acm001500jsd", + "name" : "rest", + "parentId" : "acm001499jsd", + "content" : [ "acm001495jsd", "acm001505jsd", "acm001516jsd" ] + }, + "acm001501jsd" : { + "type" : "ControlElement", + "id" : "acm001501jsd", + "name" : "addProductToCart" + }, + "acm001502jsd" : { + "type" : "ControlElement", + "id" : "acm001502jsd", + "name" : "removeProductFromCart" + }, + "acm001503jsd" : { + "type" : "ControlElement", + "id" : "acm001503jsd", + "name" : "updateQuantity" + }, + "acm001504jsd" : { + "type" : "ClassUnit", + "id" : "acm001504jsd", + "name" : "AuthCartRest", + "compilationUnitId" : "acm001495jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd", "acm001448jsd", "acm001488jsd", "acm001586jsd", "acm003849jsd", "acm003879jsd" ], + "content" : [ "acm001501jsd", "acm001502jsd", "acm001503jsd" ] + }, + "acm001505jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001505jsd", + "name" : "AuthUserActionsRest", + "parentId" : "acm001500jsd", + "content" : [ "acm001515jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001506jsd" : { + "type" : "CodePackage", + "id" : "acm001506jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001507jsd" ] + }, + "acm001507jsd" : { + "type" : "CodePackage", + "id" : "acm001507jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001508jsd" ] + }, + "acm001508jsd" : { + "type" : "CodePackage", + "id" : "acm001508jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001509jsd" ] + }, + "acm001509jsd" : { + "type" : "CodePackage", + "id" : "acm001509jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001510jsd" ] + }, + "acm001510jsd" : { + "type" : "CodePackage", + "id" : "acm001510jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm001505jsd" ] + }, + "acm001511jsd" : { + "type" : "ControlElement", + "id" : "acm001511jsd", + "name" : "placeOrder" + }, + "acm001512jsd" : { + "type" : "ControlElement", + "id" : "acm001512jsd", + "name" : "login" + }, + "acm001513jsd" : { + "type" : "ControlElement", + "id" : "acm001513jsd", + "name" : "logout" + }, + "acm001514jsd" : { + "type" : "ControlElement", + "id" : "acm001514jsd", + "name" : "isLoggedIn" + }, + "acm001515jsd" : { + "type" : "ClassUnit", + "id" : "acm001515jsd", + "name" : "AuthUserActionsRest", + "compilationUnitId" : "acm001505jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd", "acm001468jsd", "acm001488jsd", "acm001574jsd", "acm001586jsd", "acm003641jsd", "acm003849jsd", "acm003879jsd" ], + "content" : [ "acm001511jsd", "acm001512jsd", "acm001513jsd", "acm001514jsd" ] + }, + "acm001516jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001516jsd", + "name" : "ReadyRest", + "parentId" : "acm001500jsd", + "content" : [ "acm001523jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001517jsd" : { + "type" : "CodePackage", + "id" : "acm001517jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001518jsd" ] + }, + "acm001518jsd" : { + "type" : "CodePackage", + "id" : "acm001518jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001519jsd" ] + }, + "acm001519jsd" : { + "type" : "CodePackage", + "id" : "acm001519jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001520jsd" ] + }, + "acm001520jsd" : { + "type" : "CodePackage", + "id" : "acm001520jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001521jsd" ] + }, + "acm001521jsd" : { + "type" : "CodePackage", + "id" : "acm001521jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm001516jsd" ] + }, + "acm001522jsd" : { + "type" : "ControlElement", + "id" : "acm001522jsd", + "name" : "isReady" + }, + "acm001523jsd" : { + "type" : "ClassUnit", + "id" : "acm001523jsd", + "name" : "ReadyRest", + "compilationUnitId" : "acm001516jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001522jsd" ] + }, + "acm001524jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001524jsd", + "name" : "BCryptProvider", + "parentId" : "acm001529jsd", + "content" : [ "acm001532jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001525jsd" : { + "type" : "CodePackage", + "id" : "acm001525jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001526jsd" ] + }, + "acm001526jsd" : { + "type" : "CodePackage", + "id" : "acm001526jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001527jsd" ] + }, + "acm001527jsd" : { + "type" : "CodePackage", + "id" : "acm001527jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001528jsd" ] + }, + "acm001528jsd" : { + "type" : "CodePackage", + "id" : "acm001528jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001529jsd" ] + }, + "acm001529jsd" : { + "type" : "CodePackage", + "id" : "acm001529jsd", + "name" : "security", + "parentId" : "acm001499jsd", + "content" : [ "acm001524jsd", "acm001533jsd", "acm001541jsd", "acm001549jsd", "acm001559jsd", "acm001567jsd", "acm001575jsd", "acm001597jsd", "acm001605jsd" ] + }, + "acm001530jsd" : { + "type" : "ControlElement", + "id" : "acm001530jsd", + "name" : "BCryptProvider" + }, + "acm001531jsd" : { + "type" : "ControlElement", + "id" : "acm001531jsd", + "name" : "checkPassword" + }, + "acm001532jsd" : { + "type" : "ClassUnit", + "id" : "acm001532jsd", + "name" : "BCryptProvider", + "compilationUnitId" : "acm001524jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001530jsd", "acm001531jsd" ] + }, + "acm001533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001533jsd", + "name" : "ConstantKeyProvider", + "parentId" : "acm001529jsd", + "content" : [ "acm001540jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001534jsd" : { + "type" : "CodePackage", + "id" : "acm001534jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001535jsd" ] + }, + "acm001535jsd" : { + "type" : "CodePackage", + "id" : "acm001535jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001536jsd" ] + }, + "acm001536jsd" : { + "type" : "CodePackage", + "id" : "acm001536jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001537jsd" ] + }, + "acm001537jsd" : { + "type" : "CodePackage", + "id" : "acm001537jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001538jsd" ] + }, + "acm001538jsd" : { + "type" : "CodePackage", + "id" : "acm001538jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001533jsd" ] + }, + "acm001539jsd" : { + "type" : "ControlElement", + "id" : "acm001539jsd", + "name" : "getKey" + }, + "acm001540jsd" : { + "type" : "ClassUnit", + "id" : "acm001540jsd", + "name" : "ConstantKeyProvider", + "compilationUnitId" : "acm001533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001548jsd" ], + "datatypeReferencesIds" : [ "acm001488jsd" ], + "content" : [ "acm001539jsd" ] + }, + "acm001541jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001541jsd", + "name" : "IKeyProvider", + "parentId" : "acm001529jsd", + "content" : [ "acm001548jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001542jsd" : { + "type" : "CodePackage", + "id" : "acm001542jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001543jsd" ] + }, + "acm001543jsd" : { + "type" : "CodePackage", + "id" : "acm001543jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001544jsd" ] + }, + "acm001544jsd" : { + "type" : "CodePackage", + "id" : "acm001544jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001545jsd" ] + }, + "acm001545jsd" : { + "type" : "CodePackage", + "id" : "acm001545jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001546jsd" ] + }, + "acm001546jsd" : { + "type" : "CodePackage", + "id" : "acm001546jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001541jsd" ] + }, + "acm001547jsd" : { + "type" : "ControlElement", + "id" : "acm001547jsd", + "name" : "getKey" + }, + "acm001548jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001548jsd", + "name" : "IKeyProvider", + "compilationUnitId" : "acm001541jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001488jsd" ], + "content" : [ "acm001547jsd" ] + }, + "acm001549jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001549jsd", + "name" : "ISecurityProvider", + "parentId" : "acm001529jsd", + "content" : [ "acm001558jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001550jsd" : { + "type" : "CodePackage", + "id" : "acm001550jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001551jsd" ] + }, + "acm001551jsd" : { + "type" : "CodePackage", + "id" : "acm001551jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001552jsd" ] + }, + "acm001552jsd" : { + "type" : "CodePackage", + "id" : "acm001552jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001553jsd" ] + }, + "acm001553jsd" : { + "type" : "CodePackage", + "id" : "acm001553jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001554jsd" ] + }, + "acm001554jsd" : { + "type" : "CodePackage", + "id" : "acm001554jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001549jsd" ] + }, + "acm001555jsd" : { + "type" : "ControlElement", + "id" : "acm001555jsd", + "name" : "getKeyProvider" + }, + "acm001556jsd" : { + "type" : "ControlElement", + "id" : "acm001556jsd", + "name" : "secure" + }, + "acm001557jsd" : { + "type" : "ControlElement", + "id" : "acm001557jsd", + "name" : "validate" + }, + "acm001558jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001558jsd", + "name" : "ISecurityProvider", + "compilationUnitId" : "acm001549jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001488jsd", "acm001548jsd" ], + "content" : [ "acm001555jsd", "acm001556jsd", "acm001557jsd" ] + }, + "acm001559jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001559jsd", + "name" : "ISessionIdGenerator", + "parentId" : "acm001529jsd", + "content" : [ "acm001566jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001560jsd" : { + "type" : "CodePackage", + "id" : "acm001560jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001561jsd" ] + }, + "acm001561jsd" : { + "type" : "CodePackage", + "id" : "acm001561jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001562jsd" ] + }, + "acm001562jsd" : { + "type" : "CodePackage", + "id" : "acm001562jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001563jsd" ] + }, + "acm001563jsd" : { + "type" : "CodePackage", + "id" : "acm001563jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001564jsd" ] + }, + "acm001564jsd" : { + "type" : "CodePackage", + "id" : "acm001564jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001559jsd" ] + }, + "acm001565jsd" : { + "type" : "ControlElement", + "id" : "acm001565jsd", + "name" : "getSessionId" + }, + "acm001566jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001566jsd", + "name" : "ISessionIdGenerator", + "compilationUnitId" : "acm001559jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001565jsd" ] + }, + "acm001567jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001567jsd", + "name" : "RandomSessionIdGenerator", + "parentId" : "acm001529jsd", + "content" : [ "acm001574jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001568jsd" : { + "type" : "CodePackage", + "id" : "acm001568jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001569jsd" ] + }, + "acm001569jsd" : { + "type" : "CodePackage", + "id" : "acm001569jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001570jsd" ] + }, + "acm001570jsd" : { + "type" : "CodePackage", + "id" : "acm001570jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001571jsd" ] + }, + "acm001571jsd" : { + "type" : "CodePackage", + "id" : "acm001571jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001572jsd" ] + }, + "acm001572jsd" : { + "type" : "CodePackage", + "id" : "acm001572jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001567jsd" ] + }, + "acm001573jsd" : { + "type" : "ControlElement", + "id" : "acm001573jsd", + "name" : "getSessionId" + }, + "acm001574jsd" : { + "type" : "ClassUnit", + "id" : "acm001574jsd", + "name" : "RandomSessionIdGenerator", + "compilationUnitId" : "acm001567jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001566jsd" ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001573jsd" ] + }, + "acm001575jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001575jsd", + "name" : "ShaSecurityProvider", + "parentId" : "acm001529jsd", + "content" : [ "acm001586jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001576jsd" : { + "type" : "CodePackage", + "id" : "acm001576jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001577jsd" ] + }, + "acm001577jsd" : { + "type" : "CodePackage", + "id" : "acm001577jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001578jsd" ] + }, + "acm001578jsd" : { + "type" : "CodePackage", + "id" : "acm001578jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001579jsd" ] + }, + "acm001579jsd" : { + "type" : "CodePackage", + "id" : "acm001579jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001580jsd" ] + }, + "acm001580jsd" : { + "type" : "CodePackage", + "id" : "acm001580jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001575jsd" ] + }, + "acm001581jsd" : { + "type" : "ControlElement", + "id" : "acm001581jsd", + "name" : "getKeyProvider" + }, + "acm001582jsd" : { + "type" : "ControlElement", + "id" : "acm001582jsd", + "name" : "secure" + }, + "acm001583jsd" : { + "type" : "ControlElement", + "id" : "acm001583jsd", + "name" : "blobToString" + }, + "acm001584jsd" : { + "type" : "ControlElement", + "id" : "acm001584jsd", + "name" : "validate" + }, + "acm001585jsd" : { + "type" : "ControlElement", + "id" : "acm001585jsd", + "name" : "getSha512" + }, + "acm001586jsd" : { + "type" : "ClassUnit", + "id" : "acm001586jsd", + "name" : "ShaSecurityProvider", + "compilationUnitId" : "acm001575jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001558jsd" ], + "datatypeReferencesIds" : [ "acm001488jsd", "acm001540jsd", "acm001548jsd" ], + "content" : [ "acm001581jsd", "acm001582jsd", "acm001583jsd", "acm001584jsd", "acm001585jsd" ] + }, + "acm001587jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001587jsd", + "name" : "AuthStartup", + "parentId" : "acm001592jsd", + "content" : [ "acm001596jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "main", "java", "tools", "descartes", "teastore", "auth", "startup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001588jsd" : { + "type" : "CodePackage", + "id" : "acm001588jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001589jsd" ] + }, + "acm001589jsd" : { + "type" : "CodePackage", + "id" : "acm001589jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001590jsd" ] + }, + "acm001590jsd" : { + "type" : "CodePackage", + "id" : "acm001590jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001591jsd" ] + }, + "acm001591jsd" : { + "type" : "CodePackage", + "id" : "acm001591jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001592jsd" ] + }, + "acm001592jsd" : { + "type" : "CodePackage", + "id" : "acm001592jsd", + "name" : "startup", + "parentId" : "acm001499jsd", + "content" : [ "acm001587jsd" ] + }, + "acm001593jsd" : { + "type" : "ControlElement", + "id" : "acm001593jsd", + "name" : "AuthStartup" + }, + "acm001594jsd" : { + "type" : "ControlElement", + "id" : "acm001594jsd", + "name" : "contextDestroyed" + }, + "acm001595jsd" : { + "type" : "ControlElement", + "id" : "acm001595jsd", + "name" : "contextInitialized" + }, + "acm001596jsd" : { + "type" : "ClassUnit", + "id" : "acm001596jsd", + "name" : "AuthStartup", + "compilationUnitId" : "acm001587jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001593jsd", "acm001594jsd", "acm001595jsd" ] + }, + "acm001597jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001597jsd", + "name" : "ConstantKeyProviderTest", + "parentId" : "acm001529jsd", + "content" : [ "acm001604jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "test", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001598jsd" : { + "type" : "CodePackage", + "id" : "acm001598jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001599jsd" ] + }, + "acm001599jsd" : { + "type" : "CodePackage", + "id" : "acm001599jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001600jsd" ] + }, + "acm001600jsd" : { + "type" : "CodePackage", + "id" : "acm001600jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001601jsd" ] + }, + "acm001601jsd" : { + "type" : "CodePackage", + "id" : "acm001601jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001602jsd" ] + }, + "acm001602jsd" : { + "type" : "CodePackage", + "id" : "acm001602jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001597jsd" ] + }, + "acm001603jsd" : { + "type" : "ControlElement", + "id" : "acm001603jsd", + "name" : "test" + }, + "acm001604jsd" : { + "type" : "ClassUnit", + "id" : "acm001604jsd", + "name" : "ConstantKeyProviderTest", + "compilationUnitId" : "acm001597jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001488jsd", "acm001540jsd" ], + "content" : [ "acm001603jsd" ] + }, + "acm001605jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001605jsd", + "name" : "ShaSecurityProviderTest", + "parentId" : "acm001529jsd", + "content" : [ "acm001612jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.auth", "src", "test", "java", "tools", "descartes", "teastore", "auth", "security" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001606jsd" : { + "type" : "CodePackage", + "id" : "acm001606jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001607jsd" ] + }, + "acm001607jsd" : { + "type" : "CodePackage", + "id" : "acm001607jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001608jsd" ] + }, + "acm001608jsd" : { + "type" : "CodePackage", + "id" : "acm001608jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001609jsd" ] + }, + "acm001609jsd" : { + "type" : "CodePackage", + "id" : "acm001609jsd", + "name" : "auth", + "parentId" : null, + "content" : [ "acm001610jsd" ] + }, + "acm001610jsd" : { + "type" : "CodePackage", + "id" : "acm001610jsd", + "name" : "security", + "parentId" : null, + "content" : [ "acm001605jsd" ] + }, + "acm001611jsd" : { + "type" : "ControlElement", + "id" : "acm001611jsd", + "name" : "test" + }, + "acm001612jsd" : { + "type" : "ClassUnit", + "id" : "acm001612jsd", + "name" : "ShaSecurityProviderTest", + "compilationUnitId" : "acm001605jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001488jsd", "acm001586jsd" ], + "content" : [ "acm001611jsd" ] + }, + "acm001613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001613jsd", + "name" : "ImageDB", + "parentId" : "acm001617jsd", + "content" : [ "acm001634jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001614jsd" : { + "type" : "CodePackage", + "id" : "acm001614jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001615jsd" ] + }, + "acm001615jsd" : { + "type" : "CodePackage", + "id" : "acm001615jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001616jsd" ] + }, + "acm001616jsd" : { + "type" : "CodePackage", + "id" : "acm001616jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001617jsd" ] + }, + "acm001617jsd" : { + "type" : "CodePackage", + "id" : "acm001617jsd", + "name" : "image", + "parentId" : "acm001340jsd", + "content" : [ "acm001613jsd", "acm001635jsd", "acm001646jsd", "acm001659jsd", "acm001671jsd", "acm002112jsd", "acm002131jsd", "acm002141jsd", "acm002147jsd", "acm002167jsd", "acm001696jsd", "acm001917jsd", "acm001930jsd", "acm002060jsd" ] + }, + "acm001618jsd" : { + "type" : "ControlElement", + "id" : "acm001618jsd", + "name" : "ImageDB" + }, + "acm001619jsd" : { + "type" : "ControlElement", + "id" : "acm001619jsd", + "name" : "ImageDB" + }, + "acm001620jsd" : { + "type" : "ControlElement", + "id" : "acm001620jsd", + "name" : "hasImageID" + }, + "acm001621jsd" : { + "type" : "ControlElement", + "id" : "acm001621jsd", + "name" : "hasImageID" + }, + "acm001622jsd" : { + "type" : "ControlElement", + "id" : "acm001622jsd", + "name" : "hasImageID" + }, + "acm001623jsd" : { + "type" : "ControlElement", + "id" : "acm001623jsd", + "name" : "getImageID" + }, + "acm001624jsd" : { + "type" : "ControlElement", + "id" : "acm001624jsd", + "name" : "getImageID" + }, + "acm001625jsd" : { + "type" : "ControlElement", + "id" : "acm001625jsd", + "name" : "getImageID" + }, + "acm001626jsd" : { + "type" : "ControlElement", + "id" : "acm001626jsd", + "name" : "findImageID" + }, + "acm001627jsd" : { + "type" : "ControlElement", + "id" : "acm001627jsd", + "name" : "getImageSize" + }, + "acm001628jsd" : { + "type" : "ControlElement", + "id" : "acm001628jsd", + "name" : "setImageMapping" + }, + "acm001629jsd" : { + "type" : "ControlElement", + "id" : "acm001629jsd", + "name" : "setImageMapping" + }, + "acm001630jsd" : { + "type" : "ControlElement", + "id" : "acm001630jsd", + "name" : "setImageMapping" + }, + "acm001631jsd" : { + "type" : "ControlElement", + "id" : "acm001631jsd", + "name" : "map" + }, + "acm001632jsd" : { + "type" : "ControlElement", + "id" : "acm001632jsd", + "name" : "removeImageMapping" + }, + "acm001633jsd" : { + "type" : "ControlElement", + "id" : "acm001633jsd", + "name" : "unmap" + }, + "acm001634jsd" : { + "type" : "ClassUnit", + "id" : "acm001634jsd", + "name" : "ImageDB", + "compilationUnitId" : "acm001613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001634jsd", "acm001645jsd" ], + "content" : [ "acm001618jsd", "acm001619jsd", "acm001620jsd", "acm001621jsd", "acm001622jsd", "acm001623jsd", "acm001624jsd", "acm001625jsd", "acm001626jsd", "acm001627jsd", "acm001628jsd", "acm001629jsd", "acm001630jsd", "acm001631jsd", "acm001632jsd", "acm001633jsd" ] + }, + "acm001635jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001635jsd", + "name" : "ImageDBKey", + "parentId" : "acm001617jsd", + "content" : [ "acm001645jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001636jsd" : { + "type" : "CodePackage", + "id" : "acm001636jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001637jsd" ] + }, + "acm001637jsd" : { + "type" : "CodePackage", + "id" : "acm001637jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001638jsd" ] + }, + "acm001638jsd" : { + "type" : "CodePackage", + "id" : "acm001638jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001639jsd" ] + }, + "acm001639jsd" : { + "type" : "CodePackage", + "id" : "acm001639jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001635jsd" ] + }, + "acm001640jsd" : { + "type" : "ControlElement", + "id" : "acm001640jsd", + "name" : "ImageDBKey" + }, + "acm001641jsd" : { + "type" : "ControlElement", + "id" : "acm001641jsd", + "name" : "ImageDBKey" + }, + "acm001642jsd" : { + "type" : "ControlElement", + "id" : "acm001642jsd", + "name" : "isProductKey" + }, + "acm001643jsd" : { + "type" : "ControlElement", + "id" : "acm001643jsd", + "name" : "getProductID" + }, + "acm001644jsd" : { + "type" : "ControlElement", + "id" : "acm001644jsd", + "name" : "getWebUIName" + }, + "acm001645jsd" : { + "type" : "ClassUnit", + "id" : "acm001645jsd", + "name" : "ImageDBKey", + "compilationUnitId" : "acm001635jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001640jsd", "acm001641jsd", "acm001642jsd", "acm001643jsd", "acm001644jsd" ] + }, + "acm001646jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001646jsd", + "name" : "ImageProvider", + "parentId" : "acm001617jsd", + "content" : [ "acm001658jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001647jsd" : { + "type" : "CodePackage", + "id" : "acm001647jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001648jsd" ] + }, + "acm001648jsd" : { + "type" : "CodePackage", + "id" : "acm001648jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001649jsd" ] + }, + "acm001649jsd" : { + "type" : "CodePackage", + "id" : "acm001649jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001650jsd" ] + }, + "acm001650jsd" : { + "type" : "CodePackage", + "id" : "acm001650jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001646jsd" ] + }, + "acm001651jsd" : { + "type" : "ControlElement", + "id" : "acm001651jsd", + "name" : "ImageProvider" + }, + "acm001652jsd" : { + "type" : "ControlElement", + "id" : "acm001652jsd", + "name" : "setImageDB" + }, + "acm001653jsd" : { + "type" : "ControlElement", + "id" : "acm001653jsd", + "name" : "setStorage" + }, + "acm001654jsd" : { + "type" : "ControlElement", + "id" : "acm001654jsd", + "name" : "getProductImages" + }, + "acm001655jsd" : { + "type" : "ControlElement", + "id" : "acm001655jsd", + "name" : "getWebUIImages" + }, + "acm001656jsd" : { + "type" : "ControlElement", + "id" : "acm001656jsd", + "name" : "scaleAndRegisterImg" + }, + "acm001657jsd" : { + "type" : "ControlElement", + "id" : "acm001657jsd", + "name" : "getImageFor" + }, + "acm001658jsd" : { + "type" : "ClassUnit", + "id" : "acm001658jsd", + "name" : "ImageProvider", + "compilationUnitId" : "acm001646jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001634jsd", "acm001645jsd", "acm001658jsd", "acm001690jsd", "acm002081jsd" ], + "content" : [ "acm001651jsd", "acm001652jsd", "acm001653jsd", "acm001654jsd", "acm001655jsd", "acm001656jsd", "acm001657jsd" ] + }, + "acm001659jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001659jsd", + "name" : "ImageScaler", + "parentId" : "acm001617jsd", + "content" : [ "acm001670jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001660jsd" : { + "type" : "CodePackage", + "id" : "acm001660jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001661jsd" ] + }, + "acm001661jsd" : { + "type" : "CodePackage", + "id" : "acm001661jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001662jsd" ] + }, + "acm001662jsd" : { + "type" : "CodePackage", + "id" : "acm001662jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001663jsd" ] + }, + "acm001663jsd" : { + "type" : "CodePackage", + "id" : "acm001663jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001659jsd" ] + }, + "acm001664jsd" : { + "type" : "ControlElement", + "id" : "acm001664jsd", + "name" : "ImageScaler" + }, + "acm001665jsd" : { + "type" : "ControlElement", + "id" : "acm001665jsd", + "name" : "scale" + }, + "acm001666jsd" : { + "type" : "ControlElement", + "id" : "acm001666jsd", + "name" : "scale" + }, + "acm001667jsd" : { + "type" : "ControlElement", + "id" : "acm001667jsd", + "name" : "scale" + }, + "acm001668jsd" : { + "type" : "ControlElement", + "id" : "acm001668jsd", + "name" : "scale" + }, + "acm001669jsd" : { + "type" : "ControlElement", + "id" : "acm001669jsd", + "name" : "scale" + }, + "acm001670jsd" : { + "type" : "ClassUnit", + "id" : "acm001670jsd", + "name" : "ImageScaler", + "compilationUnitId" : "acm001659jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001670jsd" ], + "content" : [ "acm001664jsd", "acm001665jsd", "acm001666jsd", "acm001667jsd", "acm001668jsd", "acm001669jsd" ] + }, + "acm001671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001671jsd", + "name" : "StoreImage", + "parentId" : "acm001617jsd", + "content" : [ "acm001690jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001672jsd" : { + "type" : "CodePackage", + "id" : "acm001672jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001673jsd" ] + }, + "acm001673jsd" : { + "type" : "CodePackage", + "id" : "acm001673jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001674jsd" ] + }, + "acm001674jsd" : { + "type" : "CodePackage", + "id" : "acm001674jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001675jsd" ] + }, + "acm001675jsd" : { + "type" : "CodePackage", + "id" : "acm001675jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001671jsd" ] + }, + "acm001676jsd" : { + "type" : "ControlElement", + "id" : "acm001676jsd", + "name" : "StoreImage" + }, + "acm001677jsd" : { + "type" : "ControlElement", + "id" : "acm001677jsd", + "name" : "StoreImage" + }, + "acm001678jsd" : { + "type" : "ControlElement", + "id" : "acm001678jsd", + "name" : "setImageSize" + }, + "acm001679jsd" : { + "type" : "ControlElement", + "id" : "acm001679jsd", + "name" : "StoreImage" + }, + "acm001680jsd" : { + "type" : "ControlElement", + "id" : "acm001680jsd", + "name" : "getId" + }, + "acm001681jsd" : { + "type" : "ControlElement", + "id" : "acm001681jsd", + "name" : "setImage" + }, + "acm001682jsd" : { + "type" : "ControlElement", + "id" : "acm001682jsd", + "name" : "getImage" + }, + "acm001683jsd" : { + "type" : "ControlElement", + "id" : "acm001683jsd", + "name" : "getSize" + }, + "acm001684jsd" : { + "type" : "ControlElement", + "id" : "acm001684jsd", + "name" : "getByteSize" + }, + "acm001685jsd" : { + "type" : "ControlElement", + "id" : "acm001685jsd", + "name" : "getBase64" + }, + "acm001686jsd" : { + "type" : "ControlElement", + "id" : "acm001686jsd", + "name" : "getByteArray" + }, + "acm001687jsd" : { + "type" : "ControlElement", + "id" : "acm001687jsd", + "name" : "toString" + }, + "acm001688jsd" : { + "type" : "ControlElement", + "id" : "acm001688jsd", + "name" : "hashCode" + }, + "acm001689jsd" : { + "type" : "ControlElement", + "id" : "acm001689jsd", + "name" : "equals" + }, + "acm001690jsd" : { + "type" : "ClassUnit", + "id" : "acm001690jsd", + "name" : "StoreImage", + "compilationUnitId" : "acm001671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001871jsd" ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001690jsd" ], + "content" : [ "acm001676jsd", "acm001677jsd", "acm001678jsd", "acm001679jsd", "acm001680jsd", "acm001681jsd", "acm001682jsd", "acm001683jsd", "acm001684jsd", "acm001685jsd", "acm001686jsd", "acm001687jsd", "acm001688jsd", "acm001689jsd" ] + }, + "acm001691jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001691jsd", + "name" : "AbstractCache", + "parentId" : "acm001696jsd", + "content" : [ "acm001723jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001692jsd" : { + "type" : "CodePackage", + "id" : "acm001692jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001693jsd" ] + }, + "acm001693jsd" : { + "type" : "CodePackage", + "id" : "acm001693jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001694jsd" ] + }, + "acm001694jsd" : { + "type" : "CodePackage", + "id" : "acm001694jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001695jsd" ] + }, + "acm001695jsd" : { + "type" : "CodePackage", + "id" : "acm001695jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001696jsd" ] + }, + "acm001696jsd" : { + "type" : "CodePackage", + "id" : "acm001696jsd", + "name" : "cache", + "parentId" : "acm001617jsd", + "content" : [ "acm001691jsd", "acm001724jsd", "acm001734jsd", "acm001745jsd", "acm001757jsd", "acm001774jsd", "acm001786jsd", "acm001798jsd", "acm001810jsd", "acm001822jsd", "acm002190jsd", "acm002198jsd", "acm002208jsd", "acm002220jsd", "acm002234jsd", "acm002263jsd", "acm002279jsd", "acm002295jsd", "acm002311jsd", "acm002327jsd", "acm002343jsd", "acm001842jsd", "acm001909jsd" ] + }, + "acm001697jsd" : { + "type" : "ControlElement", + "id" : "acm001697jsd", + "name" : "AbstractCache" + }, + "acm001698jsd" : { + "type" : "ControlElement", + "id" : "acm001698jsd", + "name" : "getCachedStorage" + }, + "acm001699jsd" : { + "type" : "ControlElement", + "id" : "acm001699jsd", + "name" : "getEntries" + }, + "acm001700jsd" : { + "type" : "ControlElement", + "id" : "acm001700jsd", + "name" : "findInEntries" + }, + "acm001701jsd" : { + "type" : "ControlElement", + "id" : "acm001701jsd", + "name" : "getData" + }, + "acm001702jsd" : { + "type" : "ControlElement", + "id" : "acm001702jsd", + "name" : "getMaxCacheSize" + }, + "acm001703jsd" : { + "type" : "ControlElement", + "id" : "acm001703jsd", + "name" : "setMaxCacheSize" + }, + "acm001704jsd" : { + "type" : "ControlElement", + "id" : "acm001704jsd", + "name" : "getCurrentCacheSize" + }, + "acm001705jsd" : { + "type" : "ControlElement", + "id" : "acm001705jsd", + "name" : "getFreeSpace" + }, + "acm001706jsd" : { + "type" : "ControlElement", + "id" : "acm001706jsd", + "name" : "hasStorageFor" + }, + "acm001707jsd" : { + "type" : "ControlElement", + "id" : "acm001707jsd", + "name" : "cacheData" + }, + "acm001708jsd" : { + "type" : "ControlElement", + "id" : "acm001708jsd", + "name" : "uncacheData" + }, + "acm001709jsd" : { + "type" : "ControlElement", + "id" : "acm001709jsd", + "name" : "dataIsCachable" + }, + "acm001710jsd" : { + "type" : "ControlElement", + "id" : "acm001710jsd", + "name" : "dataIsInCache" + }, + "acm001711jsd" : { + "type" : "ControlElement", + "id" : "acm001711jsd", + "name" : "clearCache" + }, + "acm001712jsd" : { + "type" : "ControlElement", + "id" : "acm001712jsd", + "name" : "dataExists" + }, + "acm001713jsd" : { + "type" : "ControlElement", + "id" : "acm001713jsd", + "name" : "loadData" + }, + "acm001714jsd" : { + "type" : "ControlElement", + "id" : "acm001714jsd", + "name" : "saveData" + }, + "acm001715jsd" : { + "type" : "ControlElement", + "id" : "acm001715jsd", + "name" : "dataIsStorable" + }, + "acm001716jsd" : { + "type" : "ControlElement", + "id" : "acm001716jsd", + "name" : "deleteData" + }, + "acm001717jsd" : { + "type" : "ControlElement", + "id" : "acm001717jsd", + "name" : "dataRemovedFromCache" + }, + "acm001718jsd" : { + "type" : "ControlElement", + "id" : "acm001718jsd", + "name" : "dataAddedToCache" + }, + "acm001719jsd" : { + "type" : "ControlElement", + "id" : "acm001719jsd", + "name" : "createEntry" + }, + "acm001720jsd" : { + "type" : "ControlElement", + "id" : "acm001720jsd", + "name" : "addEntry" + }, + "acm001721jsd" : { + "type" : "ControlElement", + "id" : "acm001721jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001722jsd" : { + "type" : "ControlElement", + "id" : "acm001722jsd", + "name" : "reorderAndTag" + }, + "acm001723jsd" : { + "type" : "ClassUnit", + "id" : "acm001723jsd", + "name" : "AbstractCache", + "compilationUnitId" : "acm001691jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001773jsd" ], + "datatypeReferencesIds" : [ "acm001723jsd", "acm001871jsd", "acm001881jsd", "acm002081jsd", "acm002093jsd" ], + "content" : [ "acm001697jsd", "acm001698jsd", "acm001699jsd", "acm001700jsd", "acm001701jsd", "acm001702jsd", "acm001703jsd", "acm001704jsd", "acm001705jsd", "acm001706jsd", "acm001707jsd", "acm001708jsd", "acm001709jsd", "acm001710jsd", "acm001711jsd", "acm001712jsd", "acm001713jsd", "acm001714jsd", "acm001715jsd", "acm001716jsd", "acm001717jsd", "acm001718jsd", "acm001719jsd", "acm001720jsd", "acm001721jsd", "acm001722jsd" ] + }, + "acm001724jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001724jsd", + "name" : "AbstractQueueCache", + "parentId" : "acm001696jsd", + "content" : [ "acm001733jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001725jsd" : { + "type" : "CodePackage", + "id" : "acm001725jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001726jsd" ] + }, + "acm001726jsd" : { + "type" : "CodePackage", + "id" : "acm001726jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001727jsd" ] + }, + "acm001727jsd" : { + "type" : "CodePackage", + "id" : "acm001727jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001728jsd" ] + }, + "acm001728jsd" : { + "type" : "CodePackage", + "id" : "acm001728jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001729jsd" ] + }, + "acm001729jsd" : { + "type" : "CodePackage", + "id" : "acm001729jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001724jsd" ] + }, + "acm001730jsd" : { + "type" : "ControlElement", + "id" : "acm001730jsd", + "name" : "AbstractQueueCache" + }, + "acm001731jsd" : { + "type" : "ControlElement", + "id" : "acm001731jsd", + "name" : "createEntry" + }, + "acm001732jsd" : { + "type" : "ControlElement", + "id" : "acm001732jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001733jsd" : { + "type" : "ClassUnit", + "id" : "acm001733jsd", + "name" : "AbstractQueueCache", + "compilationUnitId" : "acm001724jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001891jsd", "acm002081jsd" ], + "content" : [ "acm001730jsd", "acm001731jsd", "acm001732jsd" ] + }, + "acm001734jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001734jsd", + "name" : "AbstractTreeCache", + "parentId" : "acm001696jsd", + "content" : [ "acm001744jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001735jsd" : { + "type" : "CodePackage", + "id" : "acm001735jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001736jsd" ] + }, + "acm001736jsd" : { + "type" : "CodePackage", + "id" : "acm001736jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001737jsd" ] + }, + "acm001737jsd" : { + "type" : "CodePackage", + "id" : "acm001737jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001738jsd" ] + }, + "acm001738jsd" : { + "type" : "CodePackage", + "id" : "acm001738jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001739jsd" ] + }, + "acm001739jsd" : { + "type" : "CodePackage", + "id" : "acm001739jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001734jsd" ] + }, + "acm001740jsd" : { + "type" : "ControlElement", + "id" : "acm001740jsd", + "name" : "AbstractTreeCache" + }, + "acm001741jsd" : { + "type" : "ControlElement", + "id" : "acm001741jsd", + "name" : "createEntry" + }, + "acm001742jsd" : { + "type" : "ControlElement", + "id" : "acm001742jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001743jsd" : { + "type" : "ControlElement", + "id" : "acm001743jsd", + "name" : "reorderAndTag" + }, + "acm001744jsd" : { + "type" : "ClassUnit", + "id" : "acm001744jsd", + "name" : "AbstractTreeCache", + "compilationUnitId" : "acm001734jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001881jsd", "acm002081jsd" ], + "content" : [ "acm001740jsd", "acm001741jsd", "acm001742jsd", "acm001743jsd" ] + }, + "acm001745jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001745jsd", + "name" : "FirstInFirstOut", + "parentId" : "acm001696jsd", + "content" : [ "acm001756jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001746jsd" : { + "type" : "CodePackage", + "id" : "acm001746jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001747jsd" ] + }, + "acm001747jsd" : { + "type" : "CodePackage", + "id" : "acm001747jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001748jsd" ] + }, + "acm001748jsd" : { + "type" : "CodePackage", + "id" : "acm001748jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001749jsd" ] + }, + "acm001749jsd" : { + "type" : "CodePackage", + "id" : "acm001749jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001750jsd" ] + }, + "acm001750jsd" : { + "type" : "CodePackage", + "id" : "acm001750jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001745jsd" ] + }, + "acm001751jsd" : { + "type" : "ControlElement", + "id" : "acm001751jsd", + "name" : "FirstInFirstOut" + }, + "acm001752jsd" : { + "type" : "ControlElement", + "id" : "acm001752jsd", + "name" : "FirstInFirstOut" + }, + "acm001753jsd" : { + "type" : "ControlElement", + "id" : "acm001753jsd", + "name" : "FirstInFirstOut" + }, + "acm001754jsd" : { + "type" : "ControlElement", + "id" : "acm001754jsd", + "name" : "FirstInFirstOut" + }, + "acm001755jsd" : { + "type" : "ControlElement", + "id" : "acm001755jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001756jsd" : { + "type" : "ClassUnit", + "id" : "acm001756jsd", + "name" : "FirstInFirstOut", + "compilationUnitId" : "acm001745jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001733jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001751jsd", "acm001752jsd", "acm001753jsd", "acm001754jsd", "acm001755jsd" ] + }, + "acm001757jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001757jsd", + "name" : "IDataCache", + "parentId" : "acm001696jsd", + "content" : [ "acm001773jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001758jsd" : { + "type" : "CodePackage", + "id" : "acm001758jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001759jsd" ] + }, + "acm001759jsd" : { + "type" : "CodePackage", + "id" : "acm001759jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001760jsd" ] + }, + "acm001760jsd" : { + "type" : "CodePackage", + "id" : "acm001760jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001761jsd" ] + }, + "acm001761jsd" : { + "type" : "CodePackage", + "id" : "acm001761jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001762jsd" ] + }, + "acm001762jsd" : { + "type" : "CodePackage", + "id" : "acm001762jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001757jsd" ] + }, + "acm001763jsd" : { + "type" : "ControlElement", + "id" : "acm001763jsd", + "name" : "getMaxCacheSize" + }, + "acm001764jsd" : { + "type" : "ControlElement", + "id" : "acm001764jsd", + "name" : "getCurrentCacheSize" + }, + "acm001765jsd" : { + "type" : "ControlElement", + "id" : "acm001765jsd", + "name" : "getFreeSpace" + }, + "acm001766jsd" : { + "type" : "ControlElement", + "id" : "acm001766jsd", + "name" : "hasStorageFor" + }, + "acm001767jsd" : { + "type" : "ControlElement", + "id" : "acm001767jsd", + "name" : "cacheData" + }, + "acm001768jsd" : { + "type" : "ControlElement", + "id" : "acm001768jsd", + "name" : "uncacheData" + }, + "acm001769jsd" : { + "type" : "ControlElement", + "id" : "acm001769jsd", + "name" : "dataIsCachable" + }, + "acm001770jsd" : { + "type" : "ControlElement", + "id" : "acm001770jsd", + "name" : "dataIsInCache" + }, + "acm001771jsd" : { + "type" : "ControlElement", + "id" : "acm001771jsd", + "name" : "clearCache" + }, + "acm001772jsd" : { + "type" : "ControlElement", + "id" : "acm001772jsd", + "name" : "setMaxCacheSize" + }, + "acm001773jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001773jsd", + "name" : "IDataCache", + "compilationUnitId" : "acm001757jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002081jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001763jsd", "acm001764jsd", "acm001765jsd", "acm001766jsd", "acm001767jsd", "acm001768jsd", "acm001769jsd", "acm001770jsd", "acm001771jsd", "acm001772jsd" ] + }, + "acm001774jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001774jsd", + "name" : "LastInFirstOut", + "parentId" : "acm001696jsd", + "content" : [ "acm001785jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001775jsd" : { + "type" : "CodePackage", + "id" : "acm001775jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001776jsd" ] + }, + "acm001776jsd" : { + "type" : "CodePackage", + "id" : "acm001776jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001777jsd" ] + }, + "acm001777jsd" : { + "type" : "CodePackage", + "id" : "acm001777jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001778jsd" ] + }, + "acm001778jsd" : { + "type" : "CodePackage", + "id" : "acm001778jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001779jsd" ] + }, + "acm001779jsd" : { + "type" : "CodePackage", + "id" : "acm001779jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001774jsd" ] + }, + "acm001780jsd" : { + "type" : "ControlElement", + "id" : "acm001780jsd", + "name" : "LastInFirstOut" + }, + "acm001781jsd" : { + "type" : "ControlElement", + "id" : "acm001781jsd", + "name" : "LastInFirstOut" + }, + "acm001782jsd" : { + "type" : "ControlElement", + "id" : "acm001782jsd", + "name" : "LastInFirstOut" + }, + "acm001783jsd" : { + "type" : "ControlElement", + "id" : "acm001783jsd", + "name" : "LastInFirstOut" + }, + "acm001784jsd" : { + "type" : "ControlElement", + "id" : "acm001784jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001785jsd" : { + "type" : "ClassUnit", + "id" : "acm001785jsd", + "name" : "LastInFirstOut", + "compilationUnitId" : "acm001774jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001733jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001780jsd", "acm001781jsd", "acm001782jsd", "acm001783jsd", "acm001784jsd" ] + }, + "acm001786jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001786jsd", + "name" : "LeastFrequentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm001797jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001787jsd" : { + "type" : "CodePackage", + "id" : "acm001787jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001788jsd" ] + }, + "acm001788jsd" : { + "type" : "CodePackage", + "id" : "acm001788jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001789jsd" ] + }, + "acm001789jsd" : { + "type" : "CodePackage", + "id" : "acm001789jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001790jsd" ] + }, + "acm001790jsd" : { + "type" : "CodePackage", + "id" : "acm001790jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001791jsd" ] + }, + "acm001791jsd" : { + "type" : "CodePackage", + "id" : "acm001791jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001786jsd" ] + }, + "acm001792jsd" : { + "type" : "ControlElement", + "id" : "acm001792jsd", + "name" : "LeastFrequentlyUsed" + }, + "acm001793jsd" : { + "type" : "ControlElement", + "id" : "acm001793jsd", + "name" : "LeastFrequentlyUsed" + }, + "acm001794jsd" : { + "type" : "ControlElement", + "id" : "acm001794jsd", + "name" : "LeastFrequentlyUsed" + }, + "acm001795jsd" : { + "type" : "ControlElement", + "id" : "acm001795jsd", + "name" : "LeastFrequentlyUsed" + }, + "acm001796jsd" : { + "type" : "ControlElement", + "id" : "acm001796jsd", + "name" : "createEntry" + }, + "acm001797jsd" : { + "type" : "ClassUnit", + "id" : "acm001797jsd", + "name" : "LeastFrequentlyUsed", + "compilationUnitId" : "acm001786jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001744jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001861jsd", "acm001871jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001792jsd", "acm001793jsd", "acm001794jsd", "acm001795jsd", "acm001796jsd" ] + }, + "acm001798jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001798jsd", + "name" : "LeastRecentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm001809jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001799jsd" : { + "type" : "CodePackage", + "id" : "acm001799jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001800jsd" ] + }, + "acm001800jsd" : { + "type" : "CodePackage", + "id" : "acm001800jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001801jsd" ] + }, + "acm001801jsd" : { + "type" : "CodePackage", + "id" : "acm001801jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001802jsd" ] + }, + "acm001802jsd" : { + "type" : "CodePackage", + "id" : "acm001802jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001803jsd" ] + }, + "acm001803jsd" : { + "type" : "CodePackage", + "id" : "acm001803jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001798jsd" ] + }, + "acm001804jsd" : { + "type" : "ControlElement", + "id" : "acm001804jsd", + "name" : "LeastRecentlyUsed" + }, + "acm001805jsd" : { + "type" : "ControlElement", + "id" : "acm001805jsd", + "name" : "LeastRecentlyUsed" + }, + "acm001806jsd" : { + "type" : "ControlElement", + "id" : "acm001806jsd", + "name" : "LeastRecentlyUsed" + }, + "acm001807jsd" : { + "type" : "ControlElement", + "id" : "acm001807jsd", + "name" : "LeastRecentlyUsed" + }, + "acm001808jsd" : { + "type" : "ControlElement", + "id" : "acm001808jsd", + "name" : "createEntry" + }, + "acm001809jsd" : { + "type" : "ClassUnit", + "id" : "acm001809jsd", + "name" : "LeastRecentlyUsed", + "compilationUnitId" : "acm001798jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001744jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001902jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001804jsd", "acm001805jsd", "acm001806jsd", "acm001807jsd", "acm001808jsd" ] + }, + "acm001810jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001810jsd", + "name" : "MostRecentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm001821jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001811jsd" : { + "type" : "CodePackage", + "id" : "acm001811jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001812jsd" ] + }, + "acm001812jsd" : { + "type" : "CodePackage", + "id" : "acm001812jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001813jsd" ] + }, + "acm001813jsd" : { + "type" : "CodePackage", + "id" : "acm001813jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001814jsd" ] + }, + "acm001814jsd" : { + "type" : "CodePackage", + "id" : "acm001814jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001815jsd" ] + }, + "acm001815jsd" : { + "type" : "CodePackage", + "id" : "acm001815jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001810jsd" ] + }, + "acm001816jsd" : { + "type" : "ControlElement", + "id" : "acm001816jsd", + "name" : "MostRecentlyUsed" + }, + "acm001817jsd" : { + "type" : "ControlElement", + "id" : "acm001817jsd", + "name" : "MostRecentlyUsed" + }, + "acm001818jsd" : { + "type" : "ControlElement", + "id" : "acm001818jsd", + "name" : "MostRecentlyUsed" + }, + "acm001819jsd" : { + "type" : "ControlElement", + "id" : "acm001819jsd", + "name" : "MostRecentlyUsed" + }, + "acm001820jsd" : { + "type" : "ControlElement", + "id" : "acm001820jsd", + "name" : "createEntry" + }, + "acm001821jsd" : { + "type" : "ClassUnit", + "id" : "acm001821jsd", + "name" : "MostRecentlyUsed", + "compilationUnitId" : "acm001810jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001744jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001902jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001816jsd", "acm001817jsd", "acm001818jsd", "acm001819jsd", "acm001820jsd" ] + }, + "acm001822jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001822jsd", + "name" : "RandomReplacement", + "parentId" : "acm001696jsd", + "content" : [ "acm001835jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001823jsd" : { + "type" : "CodePackage", + "id" : "acm001823jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001824jsd" ] + }, + "acm001824jsd" : { + "type" : "CodePackage", + "id" : "acm001824jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001825jsd" ] + }, + "acm001825jsd" : { + "type" : "CodePackage", + "id" : "acm001825jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001826jsd" ] + }, + "acm001826jsd" : { + "type" : "CodePackage", + "id" : "acm001826jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001827jsd" ] + }, + "acm001827jsd" : { + "type" : "CodePackage", + "id" : "acm001827jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001822jsd" ] + }, + "acm001828jsd" : { + "type" : "ControlElement", + "id" : "acm001828jsd", + "name" : "RandomReplacement" + }, + "acm001829jsd" : { + "type" : "ControlElement", + "id" : "acm001829jsd", + "name" : "RandomReplacement" + }, + "acm001830jsd" : { + "type" : "ControlElement", + "id" : "acm001830jsd", + "name" : "RandomReplacement" + }, + "acm001831jsd" : { + "type" : "ControlElement", + "id" : "acm001831jsd", + "name" : "RandomReplacement" + }, + "acm001832jsd" : { + "type" : "ControlElement", + "id" : "acm001832jsd", + "name" : "RandomReplacement" + }, + "acm001833jsd" : { + "type" : "ControlElement", + "id" : "acm001833jsd", + "name" : "setSeed" + }, + "acm001834jsd" : { + "type" : "ControlElement", + "id" : "acm001834jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm001835jsd" : { + "type" : "ClassUnit", + "id" : "acm001835jsd", + "name" : "RandomReplacement", + "compilationUnitId" : "acm001822jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001733jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd", "acm001911jsd", "acm002081jsd" ], + "content" : [ "acm001828jsd", "acm001829jsd", "acm001830jsd", "acm001831jsd", "acm001832jsd", "acm001833jsd", "acm001834jsd" ] + }, + "acm001836jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001836jsd", + "name" : "AbstractEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm001850jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001837jsd" : { + "type" : "CodePackage", + "id" : "acm001837jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001838jsd" ] + }, + "acm001838jsd" : { + "type" : "CodePackage", + "id" : "acm001838jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001839jsd" ] + }, + "acm001839jsd" : { + "type" : "CodePackage", + "id" : "acm001839jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001840jsd" ] + }, + "acm001840jsd" : { + "type" : "CodePackage", + "id" : "acm001840jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001841jsd" ] + }, + "acm001841jsd" : { + "type" : "CodePackage", + "id" : "acm001841jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001842jsd" ] + }, + "acm001842jsd" : { + "type" : "CodePackage", + "id" : "acm001842jsd", + "name" : "entry", + "parentId" : "acm001696jsd", + "content" : [ "acm001836jsd", "acm001851jsd", "acm001862jsd", "acm001872jsd", "acm001882jsd", "acm001892jsd", "acm002361jsd", "acm002371jsd", "acm002387jsd", "acm002399jsd", "acm002411jsd" ] + }, + "acm001843jsd" : { + "type" : "ControlElement", + "id" : "acm001843jsd", + "name" : "AbstractEntry" + }, + "acm001844jsd" : { + "type" : "ControlElement", + "id" : "acm001844jsd", + "name" : "getData" + }, + "acm001845jsd" : { + "type" : "ControlElement", + "id" : "acm001845jsd", + "name" : "wasUsed" + }, + "acm001846jsd" : { + "type" : "ControlElement", + "id" : "acm001846jsd", + "name" : "getId" + }, + "acm001847jsd" : { + "type" : "ControlElement", + "id" : "acm001847jsd", + "name" : "getByteSize" + }, + "acm001848jsd" : { + "type" : "ControlElement", + "id" : "acm001848jsd", + "name" : "hashCode" + }, + "acm001849jsd" : { + "type" : "ControlElement", + "id" : "acm001849jsd", + "name" : "equals" + }, + "acm001850jsd" : { + "type" : "ClassUnit", + "id" : "acm001850jsd", + "name" : "AbstractEntry", + "compilationUnitId" : "acm001836jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001881jsd" ], + "datatypeReferencesIds" : [ "acm001850jsd", "acm001871jsd" ], + "content" : [ "acm001843jsd", "acm001844jsd", "acm001845jsd", "acm001846jsd", "acm001847jsd", "acm001848jsd", "acm001849jsd" ] + }, + "acm001851jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001851jsd", + "name" : "CountedEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm001861jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001852jsd" : { + "type" : "CodePackage", + "id" : "acm001852jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001853jsd" ] + }, + "acm001853jsd" : { + "type" : "CodePackage", + "id" : "acm001853jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001854jsd" ] + }, + "acm001854jsd" : { + "type" : "CodePackage", + "id" : "acm001854jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001855jsd" ] + }, + "acm001855jsd" : { + "type" : "CodePackage", + "id" : "acm001855jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001856jsd" ] + }, + "acm001856jsd" : { + "type" : "CodePackage", + "id" : "acm001856jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001857jsd" ] + }, + "acm001857jsd" : { + "type" : "CodePackage", + "id" : "acm001857jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm001851jsd" ] + }, + "acm001858jsd" : { + "type" : "ControlElement", + "id" : "acm001858jsd", + "name" : "CountedEntry" + }, + "acm001859jsd" : { + "type" : "ControlElement", + "id" : "acm001859jsd", + "name" : "getUseCount" + }, + "acm001860jsd" : { + "type" : "ControlElement", + "id" : "acm001860jsd", + "name" : "wasUsed" + }, + "acm001861jsd" : { + "type" : "ClassUnit", + "id" : "acm001861jsd", + "name" : "CountedEntry", + "compilationUnitId" : "acm001851jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001850jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001858jsd", "acm001859jsd", "acm001860jsd" ] + }, + "acm001862jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001862jsd", + "name" : "ICachable", + "parentId" : "acm001842jsd", + "content" : [ "acm001871jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001863jsd" : { + "type" : "CodePackage", + "id" : "acm001863jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001864jsd" ] + }, + "acm001864jsd" : { + "type" : "CodePackage", + "id" : "acm001864jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001865jsd" ] + }, + "acm001865jsd" : { + "type" : "CodePackage", + "id" : "acm001865jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001866jsd" ] + }, + "acm001866jsd" : { + "type" : "CodePackage", + "id" : "acm001866jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001867jsd" ] + }, + "acm001867jsd" : { + "type" : "CodePackage", + "id" : "acm001867jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001868jsd" ] + }, + "acm001868jsd" : { + "type" : "CodePackage", + "id" : "acm001868jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm001862jsd" ] + }, + "acm001869jsd" : { + "type" : "ControlElement", + "id" : "acm001869jsd", + "name" : "getByteSize" + }, + "acm001870jsd" : { + "type" : "ControlElement", + "id" : "acm001870jsd", + "name" : "getId" + }, + "acm001871jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001871jsd", + "name" : "ICachable", + "compilationUnitId" : "acm001862jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001869jsd", "acm001870jsd" ] + }, + "acm001872jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001872jsd", + "name" : "ICacheEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm001881jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001873jsd" : { + "type" : "CodePackage", + "id" : "acm001873jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001874jsd" ] + }, + "acm001874jsd" : { + "type" : "CodePackage", + "id" : "acm001874jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001875jsd" ] + }, + "acm001875jsd" : { + "type" : "CodePackage", + "id" : "acm001875jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001876jsd" ] + }, + "acm001876jsd" : { + "type" : "CodePackage", + "id" : "acm001876jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001877jsd" ] + }, + "acm001877jsd" : { + "type" : "CodePackage", + "id" : "acm001877jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001878jsd" ] + }, + "acm001878jsd" : { + "type" : "CodePackage", + "id" : "acm001878jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm001872jsd" ] + }, + "acm001879jsd" : { + "type" : "ControlElement", + "id" : "acm001879jsd", + "name" : "wasUsed" + }, + "acm001880jsd" : { + "type" : "ControlElement", + "id" : "acm001880jsd", + "name" : "getData" + }, + "acm001881jsd" : { + "type" : "InterfaceUnit", + "id" : "acm001881jsd", + "name" : "ICacheEntry", + "compilationUnitId" : "acm001872jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001871jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001879jsd", "acm001880jsd" ] + }, + "acm001882jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001882jsd", + "name" : "SimpleEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm001891jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001883jsd" : { + "type" : "CodePackage", + "id" : "acm001883jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001884jsd" ] + }, + "acm001884jsd" : { + "type" : "CodePackage", + "id" : "acm001884jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001885jsd" ] + }, + "acm001885jsd" : { + "type" : "CodePackage", + "id" : "acm001885jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001886jsd" ] + }, + "acm001886jsd" : { + "type" : "CodePackage", + "id" : "acm001886jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001887jsd" ] + }, + "acm001887jsd" : { + "type" : "CodePackage", + "id" : "acm001887jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001888jsd" ] + }, + "acm001888jsd" : { + "type" : "CodePackage", + "id" : "acm001888jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm001882jsd" ] + }, + "acm001889jsd" : { + "type" : "ControlElement", + "id" : "acm001889jsd", + "name" : "SimpleEntry" + }, + "acm001890jsd" : { + "type" : "ControlElement", + "id" : "acm001890jsd", + "name" : "wasUsed" + }, + "acm001891jsd" : { + "type" : "ClassUnit", + "id" : "acm001891jsd", + "name" : "SimpleEntry", + "compilationUnitId" : "acm001882jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001850jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001889jsd", "acm001890jsd" ] + }, + "acm001892jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001892jsd", + "name" : "TimedEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm001902jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001893jsd" : { + "type" : "CodePackage", + "id" : "acm001893jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001894jsd" ] + }, + "acm001894jsd" : { + "type" : "CodePackage", + "id" : "acm001894jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001895jsd" ] + }, + "acm001895jsd" : { + "type" : "CodePackage", + "id" : "acm001895jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001896jsd" ] + }, + "acm001896jsd" : { + "type" : "CodePackage", + "id" : "acm001896jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001897jsd" ] + }, + "acm001897jsd" : { + "type" : "CodePackage", + "id" : "acm001897jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001898jsd" ] + }, + "acm001898jsd" : { + "type" : "CodePackage", + "id" : "acm001898jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm001892jsd" ] + }, + "acm001899jsd" : { + "type" : "ControlElement", + "id" : "acm001899jsd", + "name" : "TimedEntry" + }, + "acm001900jsd" : { + "type" : "ControlElement", + "id" : "acm001900jsd", + "name" : "getTime" + }, + "acm001901jsd" : { + "type" : "ControlElement", + "id" : "acm001901jsd", + "name" : "wasUsed" + }, + "acm001902jsd" : { + "type" : "ClassUnit", + "id" : "acm001902jsd", + "name" : "TimedEntry", + "compilationUnitId" : "acm001892jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001850jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001899jsd", "acm001900jsd", "acm001901jsd" ] + }, + "acm001903jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001903jsd", + "name" : "CacheAll", + "parentId" : "acm001909jsd", + "content" : [ "acm001911jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "cache", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001904jsd" : { + "type" : "CodePackage", + "id" : "acm001904jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001905jsd" ] + }, + "acm001905jsd" : { + "type" : "CodePackage", + "id" : "acm001905jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001906jsd" ] + }, + "acm001906jsd" : { + "type" : "CodePackage", + "id" : "acm001906jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001907jsd" ] + }, + "acm001907jsd" : { + "type" : "CodePackage", + "id" : "acm001907jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001908jsd" ] + }, + "acm001908jsd" : { + "type" : "CodePackage", + "id" : "acm001908jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm001909jsd" ] + }, + "acm001909jsd" : { + "type" : "CodePackage", + "id" : "acm001909jsd", + "name" : "rules", + "parentId" : "acm001696jsd", + "content" : [ "acm001903jsd", "acm002423jsd" ] + }, + "acm001910jsd" : { + "type" : "ControlElement", + "id" : "acm001910jsd", + "name" : "test" + }, + "acm001911jsd" : { + "type" : "ClassUnit", + "id" : "acm001911jsd", + "name" : "CacheAll", + "compilationUnitId" : "acm001903jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm001910jsd" ] + }, + "acm001912jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001912jsd", + "name" : "ImageProviderEndpoint", + "parentId" : "acm001917jsd", + "content" : [ "acm001924jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001913jsd" : { + "type" : "CodePackage", + "id" : "acm001913jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001914jsd" ] + }, + "acm001914jsd" : { + "type" : "CodePackage", + "id" : "acm001914jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001915jsd" ] + }, + "acm001915jsd" : { + "type" : "CodePackage", + "id" : "acm001915jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001916jsd" ] + }, + "acm001916jsd" : { + "type" : "CodePackage", + "id" : "acm001916jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001917jsd" ] + }, + "acm001917jsd" : { + "type" : "CodePackage", + "id" : "acm001917jsd", + "name" : "rest", + "parentId" : "acm001617jsd", + "content" : [ "acm001912jsd" ] + }, + "acm001918jsd" : { + "type" : "ControlElement", + "id" : "acm001918jsd", + "name" : "getProductImages" + }, + "acm001919jsd" : { + "type" : "ControlElement", + "id" : "acm001919jsd", + "name" : "getWebUIImages" + }, + "acm001920jsd" : { + "type" : "ControlElement", + "id" : "acm001920jsd", + "name" : "regenerateImages" + }, + "acm001921jsd" : { + "type" : "ControlElement", + "id" : "acm001921jsd", + "name" : "isFinished" + }, + "acm001922jsd" : { + "type" : "ControlElement", + "id" : "acm001922jsd", + "name" : "getState" + }, + "acm001923jsd" : { + "type" : "ControlElement", + "id" : "acm001923jsd", + "name" : "setCacheSize" + }, + "acm001924jsd" : { + "type" : "ClassUnit", + "id" : "acm001924jsd", + "name" : "ImageProviderEndpoint", + "compilationUnitId" : "acm001912jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001918jsd", "acm001919jsd", "acm001920jsd", "acm001921jsd", "acm001922jsd", "acm001923jsd" ] + }, + "acm001925jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001925jsd", + "name" : "CachingMode", + "parentId" : "acm001930jsd", + "content" : [ "acm001934jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001926jsd" : { + "type" : "CodePackage", + "id" : "acm001926jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001927jsd" ] + }, + "acm001927jsd" : { + "type" : "CodePackage", + "id" : "acm001927jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001928jsd" ] + }, + "acm001928jsd" : { + "type" : "CodePackage", + "id" : "acm001928jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001929jsd" ] + }, + "acm001929jsd" : { + "type" : "CodePackage", + "id" : "acm001929jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001930jsd" ] + }, + "acm001930jsd" : { + "type" : "CodePackage", + "id" : "acm001930jsd", + "name" : "setup", + "parentId" : "acm001617jsd", + "content" : [ "acm001925jsd", "acm001935jsd", "acm001945jsd", "acm001954jsd", "acm001963jsd", "acm001978jsd", "acm001988jsd", "acm001999jsd", "acm002035jsd", "acm002045jsd" ] + }, + "acm001931jsd" : { + "type" : "ControlElement", + "id" : "acm001931jsd", + "name" : "CachingMode" + }, + "acm001932jsd" : { + "type" : "ControlElement", + "id" : "acm001932jsd", + "name" : "getStrRepresentation" + }, + "acm001933jsd" : { + "type" : "ControlElement", + "id" : "acm001933jsd", + "name" : "getCachingModeFromString" + }, + "acm001934jsd" : { + "type" : "ClassUnit", + "id" : "acm001934jsd", + "name" : "CachingMode", + "compilationUnitId" : "acm001925jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001934jsd" ], + "content" : [ "acm001931jsd", "acm001932jsd", "acm001933jsd" ] + }, + "acm001935jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001935jsd", + "name" : "CachingRule", + "parentId" : "acm001930jsd", + "content" : [ "acm001944jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001936jsd" : { + "type" : "CodePackage", + "id" : "acm001936jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001937jsd" ] + }, + "acm001937jsd" : { + "type" : "CodePackage", + "id" : "acm001937jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001938jsd" ] + }, + "acm001938jsd" : { + "type" : "CodePackage", + "id" : "acm001938jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001939jsd" ] + }, + "acm001939jsd" : { + "type" : "CodePackage", + "id" : "acm001939jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001940jsd" ] + }, + "acm001940jsd" : { + "type" : "CodePackage", + "id" : "acm001940jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001935jsd" ] + }, + "acm001941jsd" : { + "type" : "ControlElement", + "id" : "acm001941jsd", + "name" : "CachingRule" + }, + "acm001942jsd" : { + "type" : "ControlElement", + "id" : "acm001942jsd", + "name" : "getStrRepresentation" + }, + "acm001943jsd" : { + "type" : "ControlElement", + "id" : "acm001943jsd", + "name" : "getCachingRuleFromString" + }, + "acm001944jsd" : { + "type" : "ClassUnit", + "id" : "acm001944jsd", + "name" : "CachingRule", + "compilationUnitId" : "acm001935jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001944jsd" ], + "content" : [ "acm001941jsd", "acm001942jsd", "acm001943jsd" ] + }, + "acm001945jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001945jsd", + "name" : "CreatorFactory", + "parentId" : "acm001930jsd", + "content" : [ "acm001953jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001946jsd" : { + "type" : "CodePackage", + "id" : "acm001946jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001947jsd" ] + }, + "acm001947jsd" : { + "type" : "CodePackage", + "id" : "acm001947jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001948jsd" ] + }, + "acm001948jsd" : { + "type" : "CodePackage", + "id" : "acm001948jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001949jsd" ] + }, + "acm001949jsd" : { + "type" : "CodePackage", + "id" : "acm001949jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001950jsd" ] + }, + "acm001950jsd" : { + "type" : "CodePackage", + "id" : "acm001950jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001945jsd" ] + }, + "acm001951jsd" : { + "type" : "ControlElement", + "id" : "acm001951jsd", + "name" : "CreatorFactory" + }, + "acm001952jsd" : { + "type" : "ControlElement", + "id" : "acm001952jsd", + "name" : "newRunnable" + }, + "acm001953jsd" : { + "type" : "ClassUnit", + "id" : "acm001953jsd", + "name" : "CreatorFactory", + "compilationUnitId" : "acm001945jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001370jsd", "acm001634jsd", "acm001953jsd", "acm001962jsd" ], + "content" : [ "acm001951jsd", "acm001952jsd" ] + }, + "acm001954jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001954jsd", + "name" : "CreatorRunner", + "parentId" : "acm001930jsd", + "content" : [ "acm001962jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001955jsd" : { + "type" : "CodePackage", + "id" : "acm001955jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001956jsd" ] + }, + "acm001956jsd" : { + "type" : "CodePackage", + "id" : "acm001956jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001957jsd" ] + }, + "acm001957jsd" : { + "type" : "CodePackage", + "id" : "acm001957jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001958jsd" ] + }, + "acm001958jsd" : { + "type" : "CodePackage", + "id" : "acm001958jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001959jsd" ] + }, + "acm001959jsd" : { + "type" : "CodePackage", + "id" : "acm001959jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001954jsd" ] + }, + "acm001960jsd" : { + "type" : "ControlElement", + "id" : "acm001960jsd", + "name" : "CreatorRunner" + }, + "acm001961jsd" : { + "type" : "ControlElement", + "id" : "acm001961jsd", + "name" : "run" + }, + "acm001962jsd" : { + "type" : "ClassUnit", + "id" : "acm001962jsd", + "name" : "CreatorRunner", + "compilationUnitId" : "acm001954jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001634jsd", "acm001962jsd" ], + "content" : [ "acm001960jsd", "acm001961jsd" ] + }, + "acm001963jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001963jsd", + "name" : "ImageCreator", + "parentId" : "acm001930jsd", + "content" : [ "acm001977jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001964jsd" : { + "type" : "CodePackage", + "id" : "acm001964jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001965jsd" ] + }, + "acm001965jsd" : { + "type" : "CodePackage", + "id" : "acm001965jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001966jsd" ] + }, + "acm001966jsd" : { + "type" : "CodePackage", + "id" : "acm001966jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001967jsd" ] + }, + "acm001967jsd" : { + "type" : "CodePackage", + "id" : "acm001967jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001968jsd" ] + }, + "acm001968jsd" : { + "type" : "CodePackage", + "id" : "acm001968jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001963jsd" ] + }, + "acm001969jsd" : { + "type" : "ControlElement", + "id" : "acm001969jsd", + "name" : "ImageCreator" + }, + "acm001970jsd" : { + "type" : "ControlElement", + "id" : "acm001970jsd", + "name" : "createImage" + }, + "acm001971jsd" : { + "type" : "ControlElement", + "id" : "acm001971jsd", + "name" : "drawCategoryImage" + }, + "acm001972jsd" : { + "type" : "ControlElement", + "id" : "acm001972jsd", + "name" : "switchColor" + }, + "acm001973jsd" : { + "type" : "ControlElement", + "id" : "acm001973jsd", + "name" : "makeRectangle" + }, + "acm001974jsd" : { + "type" : "ControlElement", + "id" : "acm001974jsd", + "name" : "makeLine" + }, + "acm001975jsd" : { + "type" : "ControlElement", + "id" : "acm001975jsd", + "name" : "makeOval" + }, + "acm001976jsd" : { + "type" : "ControlElement", + "id" : "acm001976jsd", + "name" : "makeText" + }, + "acm001977jsd" : { + "type" : "ClassUnit", + "id" : "acm001977jsd", + "name" : "ImageCreator", + "compilationUnitId" : "acm001963jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd" ], + "content" : [ "acm001969jsd", "acm001970jsd", "acm001971jsd", "acm001972jsd", "acm001973jsd", "acm001974jsd", "acm001975jsd", "acm001976jsd" ] + }, + "acm001978jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001978jsd", + "name" : "ImageIDFactory", + "parentId" : "acm001930jsd", + "content" : [ "acm001987jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001979jsd" : { + "type" : "CodePackage", + "id" : "acm001979jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001980jsd" ] + }, + "acm001980jsd" : { + "type" : "CodePackage", + "id" : "acm001980jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001981jsd" ] + }, + "acm001981jsd" : { + "type" : "CodePackage", + "id" : "acm001981jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001982jsd" ] + }, + "acm001982jsd" : { + "type" : "CodePackage", + "id" : "acm001982jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001983jsd" ] + }, + "acm001983jsd" : { + "type" : "CodePackage", + "id" : "acm001983jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001978jsd" ] + }, + "acm001984jsd" : { + "type" : "ControlElement", + "id" : "acm001984jsd", + "name" : "ImageIDFactory" + }, + "acm001985jsd" : { + "type" : "ControlElement", + "id" : "acm001985jsd", + "name" : "getNextImageID" + }, + "acm001986jsd" : { + "type" : "ControlElement", + "id" : "acm001986jsd", + "name" : "startAtID" + }, + "acm001987jsd" : { + "type" : "ClassUnit", + "id" : "acm001987jsd", + "name" : "ImageIDFactory", + "compilationUnitId" : "acm001978jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm001984jsd", "acm001985jsd", "acm001986jsd" ] + }, + "acm001988jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001988jsd", + "name" : "ImageProviderStartup", + "parentId" : "acm001930jsd", + "content" : [ "acm001998jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm001989jsd" : { + "type" : "CodePackage", + "id" : "acm001989jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm001990jsd" ] + }, + "acm001990jsd" : { + "type" : "CodePackage", + "id" : "acm001990jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm001991jsd" ] + }, + "acm001991jsd" : { + "type" : "CodePackage", + "id" : "acm001991jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm001992jsd" ] + }, + "acm001992jsd" : { + "type" : "CodePackage", + "id" : "acm001992jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm001993jsd" ] + }, + "acm001993jsd" : { + "type" : "CodePackage", + "id" : "acm001993jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001988jsd" ] + }, + "acm001994jsd" : { + "type" : "ControlElement", + "id" : "acm001994jsd", + "name" : "ImageProviderStartup" + }, + "acm001995jsd" : { + "type" : "ControlElement", + "id" : "acm001995jsd", + "name" : "contextDestroyed" + }, + "acm001996jsd" : { + "type" : "ControlElement", + "id" : "acm001996jsd", + "name" : "contextInitialized" + }, + "acm001997jsd" : { + "type" : "ControlElement", + "id" : "acm001997jsd", + "name" : "callback" + }, + "acm001998jsd" : { + "type" : "ClassUnit", + "id" : "acm001998jsd", + "name" : "ImageProviderStartup", + "compilationUnitId" : "acm001988jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003612jsd" ], + "content" : [ "acm001994jsd", "acm001995jsd", "acm001996jsd", "acm001997jsd" ] + }, + "acm001999jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm001999jsd", + "name" : "SetupController", + "parentId" : "acm001930jsd", + "content" : [ "acm002005jsd", "acm002034jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002000jsd" : { + "type" : "CodePackage", + "id" : "acm002000jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002001jsd" ] + }, + "acm002001jsd" : { + "type" : "CodePackage", + "id" : "acm002001jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002002jsd" ] + }, + "acm002002jsd" : { + "type" : "CodePackage", + "id" : "acm002002jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002003jsd" ] + }, + "acm002003jsd" : { + "type" : "CodePackage", + "id" : "acm002003jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002004jsd" ] + }, + "acm002004jsd" : { + "type" : "CodePackage", + "id" : "acm002004jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm001999jsd" ] + }, + "acm002005jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002005jsd", + "name" : "SetupControllerConstants", + "compilationUnitId" : "acm001999jsd", + "parentDatatypeId" : "acm002034jsd", + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002006jsd" : { + "type" : "ControlElement", + "id" : "acm002006jsd", + "name" : "SetupController" + }, + "acm002007jsd" : { + "type" : "ControlElement", + "id" : "acm002007jsd", + "name" : "waitForPersistence" + }, + "acm002008jsd" : { + "type" : "ControlElement", + "id" : "acm002008jsd", + "name" : "fetchProductsForCategory" + }, + "acm002009jsd" : { + "type" : "ControlElement", + "id" : "acm002009jsd", + "name" : "fetchCategories" + }, + "acm002010jsd" : { + "type" : "ControlElement", + "id" : "acm002010jsd", + "name" : "convertToIDs" + }, + "acm002011jsd" : { + "type" : "ControlElement", + "id" : "acm002011jsd", + "name" : "matchCategoriesToImage" + }, + "acm002012jsd" : { + "type" : "ControlElement", + "id" : "acm002012jsd", + "name" : "generateImages" + }, + "acm002013jsd" : { + "type" : "ControlElement", + "id" : "acm002013jsd", + "name" : "generateImages" + }, + "acm002014jsd" : { + "type" : "ControlElement", + "id" : "acm002014jsd", + "name" : "detectCategoryImages" + }, + "acm002015jsd" : { + "type" : "ControlElement", + "id" : "acm002015jsd", + "name" : "createWorkingDir" + }, + "acm002016jsd" : { + "type" : "ControlElement", + "id" : "acm002016jsd", + "name" : "getPathToResource" + }, + "acm002017jsd" : { + "type" : "ControlElement", + "id" : "acm002017jsd", + "name" : "detectExistingImages" + }, + "acm002018jsd" : { + "type" : "ControlElement", + "id" : "acm002018jsd", + "name" : "detectExistingImages" + }, + "acm002019jsd" : { + "type" : "ControlElement", + "id" : "acm002019jsd", + "name" : "setCacheSize" + }, + "acm002020jsd" : { + "type" : "ControlElement", + "id" : "acm002020jsd", + "name" : "deleteImages" + }, + "acm002021jsd" : { + "type" : "ControlElement", + "id" : "acm002021jsd", + "name" : "deleteUnusedImages" + }, + "acm002022jsd" : { + "type" : "ControlElement", + "id" : "acm002022jsd", + "name" : "deleteWorkingDir" + }, + "acm002023jsd" : { + "type" : "ControlElement", + "id" : "acm002023jsd", + "name" : "setupStorage" + }, + "acm002024jsd" : { + "type" : "ControlElement", + "id" : "acm002024jsd", + "name" : "configureImageProvider" + }, + "acm002025jsd" : { + "type" : "ControlElement", + "id" : "acm002025jsd", + "name" : "getWorkingDir" + }, + "acm002026jsd" : { + "type" : "ControlElement", + "id" : "acm002026jsd", + "name" : "isFinished" + }, + "acm002027jsd" : { + "type" : "ControlElement", + "id" : "acm002027jsd", + "name" : "getState" + }, + "acm002028jsd" : { + "type" : "ControlElement", + "id" : "acm002028jsd", + "name" : "waitAndStopImageCreation" + }, + "acm002029jsd" : { + "type" : "ControlElement", + "id" : "acm002029jsd", + "name" : "isFirstImageProvider" + }, + "acm002030jsd" : { + "type" : "ControlElement", + "id" : "acm002030jsd", + "name" : "teardown" + }, + "acm002031jsd" : { + "type" : "ControlElement", + "id" : "acm002031jsd", + "name" : "startup" + }, + "acm002032jsd" : { + "type" : "ControlElement", + "id" : "acm002032jsd", + "name" : "reconfiguration" + }, + "acm002033jsd" : { + "type" : "ControlElement", + "id" : "acm002033jsd", + "name" : "run" + }, + "acm002034jsd" : { + "type" : "ClassUnit", + "id" : "acm002034jsd", + "name" : "SetupController", + "compilationUnitId" : "acm001999jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001370jsd", "acm001448jsd", "acm001634jsd", "acm001690jsd", "acm001756jsd", "acm001773jsd", "acm001785jsd", "acm001797jsd", "acm001809jsd", "acm001821jsd", "acm001835jsd", "acm001911jsd", "acm001934jsd", "acm001944jsd", "acm001953jsd", "acm002034jsd", "acm002044jsd", "acm002054jsd", "acm002069jsd", "acm002081jsd", "acm002102jsd", "acm002111jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm002006jsd", "acm002007jsd", "acm002008jsd", "acm002009jsd", "acm002010jsd", "acm002011jsd", "acm002012jsd", "acm002013jsd", "acm002014jsd", "acm002015jsd", "acm002016jsd", "acm002017jsd", "acm002018jsd", "acm002019jsd", "acm002020jsd", "acm002021jsd", "acm002022jsd", "acm002023jsd", "acm002024jsd", "acm002025jsd", "acm002026jsd", "acm002027jsd", "acm002028jsd", "acm002029jsd", "acm002030jsd", "acm002031jsd", "acm002032jsd", "acm002033jsd" ] + }, + "acm002035jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002035jsd", + "name" : "StorageMode", + "parentId" : "acm001930jsd", + "content" : [ "acm002044jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002036jsd" : { + "type" : "CodePackage", + "id" : "acm002036jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002037jsd" ] + }, + "acm002037jsd" : { + "type" : "CodePackage", + "id" : "acm002037jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002038jsd" ] + }, + "acm002038jsd" : { + "type" : "CodePackage", + "id" : "acm002038jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002039jsd" ] + }, + "acm002039jsd" : { + "type" : "CodePackage", + "id" : "acm002039jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002040jsd" ] + }, + "acm002040jsd" : { + "type" : "CodePackage", + "id" : "acm002040jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm002035jsd" ] + }, + "acm002041jsd" : { + "type" : "ControlElement", + "id" : "acm002041jsd", + "name" : "StorageMode" + }, + "acm002042jsd" : { + "type" : "ControlElement", + "id" : "acm002042jsd", + "name" : "getStrRepresentation" + }, + "acm002043jsd" : { + "type" : "ControlElement", + "id" : "acm002043jsd", + "name" : "getStorageModeFromString" + }, + "acm002044jsd" : { + "type" : "ClassUnit", + "id" : "acm002044jsd", + "name" : "StorageMode", + "compilationUnitId" : "acm002035jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002044jsd" ], + "content" : [ "acm002041jsd", "acm002042jsd", "acm002043jsd" ] + }, + "acm002045jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002045jsd", + "name" : "StorageRule", + "parentId" : "acm001930jsd", + "content" : [ "acm002054jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "setup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002046jsd" : { + "type" : "CodePackage", + "id" : "acm002046jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002047jsd" ] + }, + "acm002047jsd" : { + "type" : "CodePackage", + "id" : "acm002047jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002048jsd" ] + }, + "acm002048jsd" : { + "type" : "CodePackage", + "id" : "acm002048jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002049jsd" ] + }, + "acm002049jsd" : { + "type" : "CodePackage", + "id" : "acm002049jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002050jsd" ] + }, + "acm002050jsd" : { + "type" : "CodePackage", + "id" : "acm002050jsd", + "name" : "setup", + "parentId" : null, + "content" : [ "acm002045jsd" ] + }, + "acm002051jsd" : { + "type" : "ControlElement", + "id" : "acm002051jsd", + "name" : "StorageRule" + }, + "acm002052jsd" : { + "type" : "ControlElement", + "id" : "acm002052jsd", + "name" : "getStrRepresentation" + }, + "acm002053jsd" : { + "type" : "ControlElement", + "id" : "acm002053jsd", + "name" : "getStorageRuleFromString" + }, + "acm002054jsd" : { + "type" : "ClassUnit", + "id" : "acm002054jsd", + "name" : "StorageRule", + "compilationUnitId" : "acm002045jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002054jsd" ], + "content" : [ "acm002051jsd", "acm002052jsd", "acm002053jsd" ] + }, + "acm002055jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002055jsd", + "name" : "DriveStorage", + "parentId" : "acm002060jsd", + "content" : [ "acm002069jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "storage" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002056jsd" : { + "type" : "CodePackage", + "id" : "acm002056jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002057jsd" ] + }, + "acm002057jsd" : { + "type" : "CodePackage", + "id" : "acm002057jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002058jsd" ] + }, + "acm002058jsd" : { + "type" : "CodePackage", + "id" : "acm002058jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002059jsd" ] + }, + "acm002059jsd" : { + "type" : "CodePackage", + "id" : "acm002059jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002060jsd" ] + }, + "acm002060jsd" : { + "type" : "CodePackage", + "id" : "acm002060jsd", + "name" : "storage", + "parentId" : "acm001617jsd", + "content" : [ "acm002055jsd", "acm002070jsd", "acm002082jsd", "acm002433jsd", "acm002440jsd", "acm002100jsd" ] + }, + "acm002061jsd" : { + "type" : "ControlElement", + "id" : "acm002061jsd", + "name" : "DriveStorage" + }, + "acm002062jsd" : { + "type" : "ControlElement", + "id" : "acm002062jsd", + "name" : "dataExists" + }, + "acm002063jsd" : { + "type" : "ControlElement", + "id" : "acm002063jsd", + "name" : "getIDLock" + }, + "acm002064jsd" : { + "type" : "ControlElement", + "id" : "acm002064jsd", + "name" : "loadFromDisk" + }, + "acm002065jsd" : { + "type" : "ControlElement", + "id" : "acm002065jsd", + "name" : "loadData" + }, + "acm002066jsd" : { + "type" : "ControlElement", + "id" : "acm002066jsd", + "name" : "saveData" + }, + "acm002067jsd" : { + "type" : "ControlElement", + "id" : "acm002067jsd", + "name" : "dataIsStorable" + }, + "acm002068jsd" : { + "type" : "ControlElement", + "id" : "acm002068jsd", + "name" : "deleteData" + }, + "acm002069jsd" : { + "type" : "ClassUnit", + "id" : "acm002069jsd", + "name" : "DriveStorage", + "compilationUnitId" : "acm002055jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002081jsd" ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001634jsd", "acm001690jsd", "acm002069jsd" ], + "content" : [ "acm002061jsd", "acm002062jsd", "acm002063jsd", "acm002064jsd", "acm002065jsd", "acm002066jsd", "acm002067jsd", "acm002068jsd" ] + }, + "acm002070jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002070jsd", + "name" : "IDataStorage", + "parentId" : "acm002060jsd", + "content" : [ "acm002081jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "storage" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002071jsd" : { + "type" : "CodePackage", + "id" : "acm002071jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002072jsd" ] + }, + "acm002072jsd" : { + "type" : "CodePackage", + "id" : "acm002072jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002073jsd" ] + }, + "acm002073jsd" : { + "type" : "CodePackage", + "id" : "acm002073jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002074jsd" ] + }, + "acm002074jsd" : { + "type" : "CodePackage", + "id" : "acm002074jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002075jsd" ] + }, + "acm002075jsd" : { + "type" : "CodePackage", + "id" : "acm002075jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002070jsd" ] + }, + "acm002076jsd" : { + "type" : "ControlElement", + "id" : "acm002076jsd", + "name" : "dataExists" + }, + "acm002077jsd" : { + "type" : "ControlElement", + "id" : "acm002077jsd", + "name" : "loadData" + }, + "acm002078jsd" : { + "type" : "ControlElement", + "id" : "acm002078jsd", + "name" : "saveData" + }, + "acm002079jsd" : { + "type" : "ControlElement", + "id" : "acm002079jsd", + "name" : "dataIsStorable" + }, + "acm002080jsd" : { + "type" : "ControlElement", + "id" : "acm002080jsd", + "name" : "deleteData" + }, + "acm002081jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002081jsd", + "name" : "IDataStorage", + "compilationUnitId" : "acm002070jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm002076jsd", "acm002077jsd", "acm002078jsd", "acm002079jsd", "acm002080jsd" ] + }, + "acm002082jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002082jsd", + "name" : "NoStorage", + "parentId" : "acm002060jsd", + "content" : [ "acm002093jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "storage" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002083jsd" : { + "type" : "CodePackage", + "id" : "acm002083jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002084jsd" ] + }, + "acm002084jsd" : { + "type" : "CodePackage", + "id" : "acm002084jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002085jsd" ] + }, + "acm002085jsd" : { + "type" : "CodePackage", + "id" : "acm002085jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002086jsd" ] + }, + "acm002086jsd" : { + "type" : "CodePackage", + "id" : "acm002086jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002087jsd" ] + }, + "acm002087jsd" : { + "type" : "CodePackage", + "id" : "acm002087jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002082jsd" ] + }, + "acm002088jsd" : { + "type" : "ControlElement", + "id" : "acm002088jsd", + "name" : "dataExists" + }, + "acm002089jsd" : { + "type" : "ControlElement", + "id" : "acm002089jsd", + "name" : "loadData" + }, + "acm002090jsd" : { + "type" : "ControlElement", + "id" : "acm002090jsd", + "name" : "saveData" + }, + "acm002091jsd" : { + "type" : "ControlElement", + "id" : "acm002091jsd", + "name" : "dataIsStorable" + }, + "acm002092jsd" : { + "type" : "ControlElement", + "id" : "acm002092jsd", + "name" : "deleteData" + }, + "acm002093jsd" : { + "type" : "ClassUnit", + "id" : "acm002093jsd", + "name" : "NoStorage", + "compilationUnitId" : "acm002082jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002081jsd" ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm002088jsd", "acm002089jsd", "acm002090jsd", "acm002091jsd", "acm002092jsd" ] + }, + "acm002094jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002094jsd", + "name" : "StoreAll", + "parentId" : "acm002100jsd", + "content" : [ "acm002102jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "storage", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002095jsd" : { + "type" : "CodePackage", + "id" : "acm002095jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002096jsd" ] + }, + "acm002096jsd" : { + "type" : "CodePackage", + "id" : "acm002096jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002097jsd" ] + }, + "acm002097jsd" : { + "type" : "CodePackage", + "id" : "acm002097jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002098jsd" ] + }, + "acm002098jsd" : { + "type" : "CodePackage", + "id" : "acm002098jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002099jsd" ] + }, + "acm002099jsd" : { + "type" : "CodePackage", + "id" : "acm002099jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002100jsd" ] + }, + "acm002100jsd" : { + "type" : "CodePackage", + "id" : "acm002100jsd", + "name" : "rules", + "parentId" : "acm002060jsd", + "content" : [ "acm002094jsd", "acm002103jsd", "acm002453jsd", "acm002463jsd" ] + }, + "acm002101jsd" : { + "type" : "ControlElement", + "id" : "acm002101jsd", + "name" : "test" + }, + "acm002102jsd" : { + "type" : "ClassUnit", + "id" : "acm002102jsd", + "name" : "StoreAll", + "compilationUnitId" : "acm002094jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001871jsd" ], + "content" : [ "acm002101jsd" ] + }, + "acm002103jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002103jsd", + "name" : "StoreLargeImages", + "parentId" : "acm002100jsd", + "content" : [ "acm002111jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "main", "java", "tools", "descartes", "teastore", "image", "storage", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002104jsd" : { + "type" : "CodePackage", + "id" : "acm002104jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002105jsd" ] + }, + "acm002105jsd" : { + "type" : "CodePackage", + "id" : "acm002105jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002106jsd" ] + }, + "acm002106jsd" : { + "type" : "CodePackage", + "id" : "acm002106jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002107jsd" ] + }, + "acm002107jsd" : { + "type" : "CodePackage", + "id" : "acm002107jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002108jsd" ] + }, + "acm002108jsd" : { + "type" : "CodePackage", + "id" : "acm002108jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002109jsd" ] + }, + "acm002109jsd" : { + "type" : "CodePackage", + "id" : "acm002109jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm002103jsd" ] + }, + "acm002110jsd" : { + "type" : "ControlElement", + "id" : "acm002110jsd", + "name" : "test" + }, + "acm002111jsd" : { + "type" : "ClassUnit", + "id" : "acm002111jsd", + "name" : "StoreLargeImages", + "compilationUnitId" : "acm002103jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd" ], + "content" : [ "acm002110jsd" ] + }, + "acm002112jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002112jsd", + "name" : "TestImageDB", + "parentId" : "acm001617jsd", + "content" : [ "acm002130jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002113jsd" : { + "type" : "CodePackage", + "id" : "acm002113jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002114jsd" ] + }, + "acm002114jsd" : { + "type" : "CodePackage", + "id" : "acm002114jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002115jsd" ] + }, + "acm002115jsd" : { + "type" : "CodePackage", + "id" : "acm002115jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002116jsd" ] + }, + "acm002116jsd" : { + "type" : "CodePackage", + "id" : "acm002116jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002112jsd" ] + }, + "acm002117jsd" : { + "type" : "ControlElement", + "id" : "acm002117jsd", + "name" : "initialize" + }, + "acm002118jsd" : { + "type" : "ControlElement", + "id" : "acm002118jsd", + "name" : "testConstructor" + }, + "acm002119jsd" : { + "type" : "ControlElement", + "id" : "acm002119jsd", + "name" : "testConstructorNull" + }, + "acm002120jsd" : { + "type" : "ControlElement", + "id" : "acm002120jsd", + "name" : "testHasImageID" + }, + "acm002121jsd" : { + "type" : "ControlElement", + "id" : "acm002121jsd", + "name" : "testHasImageIDNull" + }, + "acm002122jsd" : { + "type" : "ControlElement", + "id" : "acm002122jsd", + "name" : "testSetImageMappingAndGetImageID" + }, + "acm002123jsd" : { + "type" : "ControlElement", + "id" : "acm002123jsd", + "name" : "testGetImageIDNull" + }, + "acm002124jsd" : { + "type" : "ControlElement", + "id" : "acm002124jsd", + "name" : "testGetImageSize" + }, + "acm002125jsd" : { + "type" : "ControlElement", + "id" : "acm002125jsd", + "name" : "testSetImageMappingKeyNull" + }, + "acm002126jsd" : { + "type" : "ControlElement", + "id" : "acm002126jsd", + "name" : "testSetImageMappingNameNull" + }, + "acm002127jsd" : { + "type" : "ControlElement", + "id" : "acm002127jsd", + "name" : "testSetImageMappingProductSizeNull" + }, + "acm002128jsd" : { + "type" : "ControlElement", + "id" : "acm002128jsd", + "name" : "testSetImageMappingNameSizeNull" + }, + "acm002129jsd" : { + "type" : "ControlElement", + "id" : "acm002129jsd", + "name" : "testSetImageMappingKeySizeNull" + }, + "acm002130jsd" : { + "type" : "ClassUnit", + "id" : "acm002130jsd", + "name" : "TestImageDB", + "compilationUnitId" : "acm002112jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001634jsd", "acm001645jsd" ], + "content" : [ "acm002117jsd", "acm002118jsd", "acm002119jsd", "acm002120jsd", "acm002121jsd", "acm002122jsd", "acm002123jsd", "acm002124jsd", "acm002125jsd", "acm002126jsd", "acm002127jsd", "acm002128jsd", "acm002129jsd" ] + }, + "acm002131jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002131jsd", + "name" : "TestImageDBKey", + "parentId" : "acm001617jsd", + "content" : [ "acm002140jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002132jsd" : { + "type" : "CodePackage", + "id" : "acm002132jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002133jsd" ] + }, + "acm002133jsd" : { + "type" : "CodePackage", + "id" : "acm002133jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002134jsd" ] + }, + "acm002134jsd" : { + "type" : "CodePackage", + "id" : "acm002134jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002135jsd" ] + }, + "acm002135jsd" : { + "type" : "CodePackage", + "id" : "acm002135jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002131jsd" ] + }, + "acm002136jsd" : { + "type" : "ControlElement", + "id" : "acm002136jsd", + "name" : "testConstructor" + }, + "acm002137jsd" : { + "type" : "ControlElement", + "id" : "acm002137jsd", + "name" : "testIsProductKey" + }, + "acm002138jsd" : { + "type" : "ControlElement", + "id" : "acm002138jsd", + "name" : "testGetProductID" + }, + "acm002139jsd" : { + "type" : "ControlElement", + "id" : "acm002139jsd", + "name" : "testGetWebUIName" + }, + "acm002140jsd" : { + "type" : "ClassUnit", + "id" : "acm002140jsd", + "name" : "TestImageDBKey", + "compilationUnitId" : "acm002131jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001645jsd" ], + "content" : [ "acm002136jsd", "acm002137jsd", "acm002138jsd", "acm002139jsd" ] + }, + "acm002141jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002141jsd", + "name" : "TestImageProvider", + "parentId" : "acm001617jsd", + "content" : [ "acm002146jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002142jsd" : { + "type" : "CodePackage", + "id" : "acm002142jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002143jsd" ] + }, + "acm002143jsd" : { + "type" : "CodePackage", + "id" : "acm002143jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002144jsd" ] + }, + "acm002144jsd" : { + "type" : "CodePackage", + "id" : "acm002144jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002145jsd" ] + }, + "acm002145jsd" : { + "type" : "CodePackage", + "id" : "acm002145jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002141jsd" ] + }, + "acm002146jsd" : { + "type" : "ClassUnit", + "id" : "acm002146jsd", + "name" : "TestImageProvider", + "compilationUnitId" : "acm002141jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002147jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002147jsd", + "name" : "TestImageScaler", + "parentId" : "acm001617jsd", + "content" : [ "acm002166jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002148jsd" : { + "type" : "CodePackage", + "id" : "acm002148jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002149jsd" ] + }, + "acm002149jsd" : { + "type" : "CodePackage", + "id" : "acm002149jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002150jsd" ] + }, + "acm002150jsd" : { + "type" : "CodePackage", + "id" : "acm002150jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002151jsd" ] + }, + "acm002151jsd" : { + "type" : "CodePackage", + "id" : "acm002151jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002147jsd" ] + }, + "acm002152jsd" : { + "type" : "ControlElement", + "id" : "acm002152jsd", + "name" : "initialize" + }, + "acm002153jsd" : { + "type" : "ControlElement", + "id" : "acm002153jsd", + "name" : "testScale" + }, + "acm002154jsd" : { + "type" : "ControlElement", + "id" : "acm002154jsd", + "name" : "testScaleImageSizeNull" + }, + "acm002155jsd" : { + "type" : "ControlElement", + "id" : "acm002155jsd", + "name" : "testScaleFactorZero" + }, + "acm002156jsd" : { + "type" : "ControlElement", + "id" : "acm002156jsd", + "name" : "testScaleFactorBelowZero" + }, + "acm002157jsd" : { + "type" : "ControlElement", + "id" : "acm002157jsd", + "name" : "testScaleFactorTwoZero" + }, + "acm002158jsd" : { + "type" : "ControlElement", + "id" : "acm002158jsd", + "name" : "testScaleFactorTwoSingleBelowZero" + }, + "acm002159jsd" : { + "type" : "ControlElement", + "id" : "acm002159jsd", + "name" : "testScaleFactorTwoBelowZero" + }, + "acm002160jsd" : { + "type" : "ControlElement", + "id" : "acm002160jsd", + "name" : "testScalePixelZero" + }, + "acm002161jsd" : { + "type" : "ControlElement", + "id" : "acm002161jsd", + "name" : "testScalePixelBelowOne" + }, + "acm002162jsd" : { + "type" : "ControlElement", + "id" : "acm002162jsd", + "name" : "testScalePixelTwoZero" + }, + "acm002163jsd" : { + "type" : "ControlElement", + "id" : "acm002163jsd", + "name" : "testScalePixelTwoSIngleBelowZero" + }, + "acm002164jsd" : { + "type" : "ControlElement", + "id" : "acm002164jsd", + "name" : "testScalePixelTwoBelowOne" + }, + "acm002165jsd" : { + "type" : "ControlElement", + "id" : "acm002165jsd", + "name" : "testScaleImageNull" + }, + "acm002166jsd" : { + "type" : "ClassUnit", + "id" : "acm002166jsd", + "name" : "TestImageScaler", + "compilationUnitId" : "acm002147jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd" ], + "content" : [ "acm002152jsd", "acm002153jsd", "acm002154jsd", "acm002155jsd", "acm002156jsd", "acm002157jsd", "acm002158jsd", "acm002159jsd", "acm002160jsd", "acm002161jsd", "acm002162jsd", "acm002163jsd", "acm002164jsd", "acm002165jsd" ] + }, + "acm002167jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002167jsd", + "name" : "TestStoreImage", + "parentId" : "acm001617jsd", + "content" : [ "acm002189jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002168jsd" : { + "type" : "CodePackage", + "id" : "acm002168jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002169jsd" ] + }, + "acm002169jsd" : { + "type" : "CodePackage", + "id" : "acm002169jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002170jsd" ] + }, + "acm002170jsd" : { + "type" : "CodePackage", + "id" : "acm002170jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002171jsd" ] + }, + "acm002171jsd" : { + "type" : "CodePackage", + "id" : "acm002171jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002167jsd" ] + }, + "acm002172jsd" : { + "type" : "ControlElement", + "id" : "acm002172jsd", + "name" : "convertToImage" + }, + "acm002173jsd" : { + "type" : "ControlElement", + "id" : "acm002173jsd", + "name" : "initialize" + }, + "acm002174jsd" : { + "type" : "ControlElement", + "id" : "acm002174jsd", + "name" : "testConstructor" + }, + "acm002175jsd" : { + "type" : "ControlElement", + "id" : "acm002175jsd", + "name" : "testByteArrayConstructorNull" + }, + "acm002176jsd" : { + "type" : "ControlElement", + "id" : "acm002176jsd", + "name" : "testImageConstructorNull" + }, + "acm002177jsd" : { + "type" : "ControlElement", + "id" : "acm002177jsd", + "name" : "testByteArrayConstructorSizeNull" + }, + "acm002178jsd" : { + "type" : "ControlElement", + "id" : "acm002178jsd", + "name" : "testImageConstructorSizeNull" + }, + "acm002179jsd" : { + "type" : "ControlElement", + "id" : "acm002179jsd", + "name" : "testCopyConstructorNull" + }, + "acm002180jsd" : { + "type" : "ControlElement", + "id" : "acm002180jsd", + "name" : "testGetID" + }, + "acm002181jsd" : { + "type" : "ControlElement", + "id" : "acm002181jsd", + "name" : "testGetImage" + }, + "acm002182jsd" : { + "type" : "ControlElement", + "id" : "acm002182jsd", + "name" : "testGetSize" + }, + "acm002183jsd" : { + "type" : "ControlElement", + "id" : "acm002183jsd", + "name" : "testGetByteSize" + }, + "acm002184jsd" : { + "type" : "ControlElement", + "id" : "acm002184jsd", + "name" : "testGetBase64" + }, + "acm002185jsd" : { + "type" : "ControlElement", + "id" : "acm002185jsd", + "name" : "testGetByteArray" + }, + "acm002186jsd" : { + "type" : "ControlElement", + "id" : "acm002186jsd", + "name" : "testToString" + }, + "acm002187jsd" : { + "type" : "ControlElement", + "id" : "acm002187jsd", + "name" : "testEquals" + }, + "acm002188jsd" : { + "type" : "ControlElement", + "id" : "acm002188jsd", + "name" : "testHashCode" + }, + "acm002189jsd" : { + "type" : "ClassUnit", + "id" : "acm002189jsd", + "name" : "TestStoreImage", + "compilationUnitId" : "acm002167jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd" ], + "content" : [ "acm002172jsd", "acm002173jsd", "acm002174jsd", "acm002175jsd", "acm002176jsd", "acm002177jsd", "acm002178jsd", "acm002179jsd", "acm002180jsd", "acm002181jsd", "acm002182jsd", "acm002183jsd", "acm002184jsd", "acm002185jsd", "acm002186jsd", "acm002187jsd", "acm002188jsd" ] + }, + "acm002190jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002190jsd", + "name" : "AbstractCacheTestInit", + "parentId" : "acm001696jsd", + "content" : [ "acm002197jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002191jsd" : { + "type" : "CodePackage", + "id" : "acm002191jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002192jsd" ] + }, + "acm002192jsd" : { + "type" : "CodePackage", + "id" : "acm002192jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002193jsd" ] + }, + "acm002193jsd" : { + "type" : "CodePackage", + "id" : "acm002193jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002194jsd" ] + }, + "acm002194jsd" : { + "type" : "CodePackage", + "id" : "acm002194jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002195jsd" ] + }, + "acm002195jsd" : { + "type" : "CodePackage", + "id" : "acm002195jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002190jsd" ] + }, + "acm002196jsd" : { + "type" : "ControlElement", + "id" : "acm002196jsd", + "name" : "initialize" + }, + "acm002197jsd" : { + "type" : "ClassUnit", + "id" : "acm002197jsd", + "name" : "AbstractCacheTestInit", + "compilationUnitId" : "acm002190jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002081jsd", "acm002219jsd" ], + "content" : [ "acm002196jsd" ] + }, + "acm002198jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002198jsd", + "name" : "AbstractCacheWrapper", + "parentId" : "acm001696jsd", + "content" : [ "acm002207jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002199jsd" : { + "type" : "CodePackage", + "id" : "acm002199jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002200jsd" ] + }, + "acm002200jsd" : { + "type" : "CodePackage", + "id" : "acm002200jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002201jsd" ] + }, + "acm002201jsd" : { + "type" : "CodePackage", + "id" : "acm002201jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002202jsd" ] + }, + "acm002202jsd" : { + "type" : "CodePackage", + "id" : "acm002202jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002203jsd" ] + }, + "acm002203jsd" : { + "type" : "CodePackage", + "id" : "acm002203jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002198jsd" ] + }, + "acm002204jsd" : { + "type" : "ControlElement", + "id" : "acm002204jsd", + "name" : "AbstractCacheWrapper" + }, + "acm002205jsd" : { + "type" : "ControlElement", + "id" : "acm002205jsd", + "name" : "removeEntryByCachingStrategy" + }, + "acm002206jsd" : { + "type" : "ControlElement", + "id" : "acm002206jsd", + "name" : "createEntry" + }, + "acm002207jsd" : { + "type" : "ClassUnit", + "id" : "acm002207jsd", + "name" : "AbstractCacheWrapper", + "compilationUnitId" : "acm002198jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001881jsd", "acm002081jsd", "acm002233jsd" ], + "content" : [ "acm002204jsd", "acm002205jsd", "acm002206jsd" ] + }, + "acm002208jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002208jsd", + "name" : "DummyData", + "parentId" : "acm001696jsd", + "content" : [ "acm002219jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002209jsd" : { + "type" : "CodePackage", + "id" : "acm002209jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002210jsd" ] + }, + "acm002210jsd" : { + "type" : "CodePackage", + "id" : "acm002210jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002211jsd" ] + }, + "acm002211jsd" : { + "type" : "CodePackage", + "id" : "acm002211jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002212jsd" ] + }, + "acm002212jsd" : { + "type" : "CodePackage", + "id" : "acm002212jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002213jsd" ] + }, + "acm002213jsd" : { + "type" : "CodePackage", + "id" : "acm002213jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002208jsd" ] + }, + "acm002214jsd" : { + "type" : "ControlElement", + "id" : "acm002214jsd", + "name" : "DummyData" + }, + "acm002215jsd" : { + "type" : "ControlElement", + "id" : "acm002215jsd", + "name" : "getByteSize" + }, + "acm002216jsd" : { + "type" : "ControlElement", + "id" : "acm002216jsd", + "name" : "getId" + }, + "acm002217jsd" : { + "type" : "ControlElement", + "id" : "acm002217jsd", + "name" : "hashCode" + }, + "acm002218jsd" : { + "type" : "ControlElement", + "id" : "acm002218jsd", + "name" : "equals" + }, + "acm002219jsd" : { + "type" : "ClassUnit", + "id" : "acm002219jsd", + "name" : "DummyData", + "compilationUnitId" : "acm002208jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001871jsd" ], + "datatypeReferencesIds" : [ "acm002219jsd" ], + "content" : [ "acm002214jsd", "acm002215jsd", "acm002216jsd", "acm002217jsd", "acm002218jsd" ] + }, + "acm002220jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002220jsd", + "name" : "DummyEntry", + "parentId" : "acm001696jsd", + "content" : [ "acm002233jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002221jsd" : { + "type" : "CodePackage", + "id" : "acm002221jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002222jsd" ] + }, + "acm002222jsd" : { + "type" : "CodePackage", + "id" : "acm002222jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002223jsd" ] + }, + "acm002223jsd" : { + "type" : "CodePackage", + "id" : "acm002223jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002224jsd" ] + }, + "acm002224jsd" : { + "type" : "CodePackage", + "id" : "acm002224jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002225jsd" ] + }, + "acm002225jsd" : { + "type" : "CodePackage", + "id" : "acm002225jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002220jsd" ] + }, + "acm002226jsd" : { + "type" : "ControlElement", + "id" : "acm002226jsd", + "name" : "DummyEntry" + }, + "acm002227jsd" : { + "type" : "ControlElement", + "id" : "acm002227jsd", + "name" : "wasUsed" + }, + "acm002228jsd" : { + "type" : "ControlElement", + "id" : "acm002228jsd", + "name" : "getByteSize" + }, + "acm002229jsd" : { + "type" : "ControlElement", + "id" : "acm002229jsd", + "name" : "getId" + }, + "acm002230jsd" : { + "type" : "ControlElement", + "id" : "acm002230jsd", + "name" : "getData" + }, + "acm002231jsd" : { + "type" : "ControlElement", + "id" : "acm002231jsd", + "name" : "hashCode" + }, + "acm002232jsd" : { + "type" : "ControlElement", + "id" : "acm002232jsd", + "name" : "equals" + }, + "acm002233jsd" : { + "type" : "ClassUnit", + "id" : "acm002233jsd", + "name" : "DummyEntry", + "compilationUnitId" : "acm002220jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm001881jsd" ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm002233jsd" ], + "content" : [ "acm002226jsd", "acm002227jsd", "acm002228jsd", "acm002229jsd", "acm002230jsd", "acm002231jsd", "acm002232jsd" ] + }, + "acm002234jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002234jsd", + "name" : "TestAbstractCache", + "parentId" : "acm001696jsd", + "content" : [ "acm002262jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002235jsd" : { + "type" : "CodePackage", + "id" : "acm002235jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002236jsd" ] + }, + "acm002236jsd" : { + "type" : "CodePackage", + "id" : "acm002236jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002237jsd" ] + }, + "acm002237jsd" : { + "type" : "CodePackage", + "id" : "acm002237jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002238jsd" ] + }, + "acm002238jsd" : { + "type" : "CodePackage", + "id" : "acm002238jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002239jsd" ] + }, + "acm002239jsd" : { + "type" : "CodePackage", + "id" : "acm002239jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002234jsd" ] + }, + "acm002240jsd" : { + "type" : "ControlElement", + "id" : "acm002240jsd", + "name" : "initialize" + }, + "acm002241jsd" : { + "type" : "ControlElement", + "id" : "acm002241jsd", + "name" : "testConstructor" + }, + "acm002242jsd" : { + "type" : "ControlElement", + "id" : "acm002242jsd", + "name" : "testConstructorStorageNull" + }, + "acm002243jsd" : { + "type" : "ControlElement", + "id" : "acm002243jsd", + "name" : "testConstructorCollectionNull" + }, + "acm002244jsd" : { + "type" : "ControlElement", + "id" : "acm002244jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002245jsd" : { + "type" : "ControlElement", + "id" : "acm002245jsd", + "name" : "testConstructorZeroSize" + }, + "acm002246jsd" : { + "type" : "ControlElement", + "id" : "acm002246jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002247jsd" : { + "type" : "ControlElement", + "id" : "acm002247jsd", + "name" : "testGetMaxCacheSize" + }, + "acm002248jsd" : { + "type" : "ControlElement", + "id" : "acm002248jsd", + "name" : "testGetCurrentCacheSize" + }, + "acm002249jsd" : { + "type" : "ControlElement", + "id" : "acm002249jsd", + "name" : "testGetFreeSpace" + }, + "acm002250jsd" : { + "type" : "ControlElement", + "id" : "acm002250jsd", + "name" : "testHasStorageFor" + }, + "acm002251jsd" : { + "type" : "ControlElement", + "id" : "acm002251jsd", + "name" : "testUncacheData" + }, + "acm002252jsd" : { + "type" : "ControlElement", + "id" : "acm002252jsd", + "name" : "testDataIsCachable" + }, + "acm002253jsd" : { + "type" : "ControlElement", + "id" : "acm002253jsd", + "name" : "testDataIsInCache" + }, + "acm002254jsd" : { + "type" : "ControlElement", + "id" : "acm002254jsd", + "name" : "testClearCache" + }, + "acm002255jsd" : { + "type" : "ControlElement", + "id" : "acm002255jsd", + "name" : "testSetMaxCacheSize" + }, + "acm002256jsd" : { + "type" : "ControlElement", + "id" : "acm002256jsd", + "name" : "testDataExists" + }, + "acm002257jsd" : { + "type" : "ControlElement", + "id" : "acm002257jsd", + "name" : "testLoadData" + }, + "acm002258jsd" : { + "type" : "ControlElement", + "id" : "acm002258jsd", + "name" : "testSaveData" + }, + "acm002259jsd" : { + "type" : "ControlElement", + "id" : "acm002259jsd", + "name" : "testDataIsStorable" + }, + "acm002260jsd" : { + "type" : "ControlElement", + "id" : "acm002260jsd", + "name" : "testDeleteData" + }, + "acm002261jsd" : { + "type" : "ControlElement", + "id" : "acm002261jsd", + "name" : "testCacheData" + }, + "acm002262jsd" : { + "type" : "ClassUnit", + "id" : "acm002262jsd", + "name" : "TestAbstractCache", + "compilationUnitId" : "acm002234jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001881jsd", "acm002081jsd", "acm002207jsd" ], + "content" : [ "acm002240jsd", "acm002241jsd", "acm002242jsd", "acm002243jsd", "acm002244jsd", "acm002245jsd", "acm002246jsd", "acm002247jsd", "acm002248jsd", "acm002249jsd", "acm002250jsd", "acm002251jsd", "acm002252jsd", "acm002253jsd", "acm002254jsd", "acm002255jsd", "acm002256jsd", "acm002257jsd", "acm002258jsd", "acm002259jsd", "acm002260jsd", "acm002261jsd" ] + }, + "acm002263jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002263jsd", + "name" : "TestFirstInFirstOut", + "parentId" : "acm001696jsd", + "content" : [ "acm002278jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002264jsd" : { + "type" : "CodePackage", + "id" : "acm002264jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002265jsd" ] + }, + "acm002265jsd" : { + "type" : "CodePackage", + "id" : "acm002265jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002266jsd" ] + }, + "acm002266jsd" : { + "type" : "CodePackage", + "id" : "acm002266jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002267jsd" ] + }, + "acm002267jsd" : { + "type" : "CodePackage", + "id" : "acm002267jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002268jsd" ] + }, + "acm002268jsd" : { + "type" : "CodePackage", + "id" : "acm002268jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002263jsd" ] + }, + "acm002269jsd" : { + "type" : "ControlElement", + "id" : "acm002269jsd", + "name" : "testConstructorSimple" + }, + "acm002270jsd" : { + "type" : "ControlElement", + "id" : "acm002270jsd", + "name" : "testConstructorSize" + }, + "acm002271jsd" : { + "type" : "ControlElement", + "id" : "acm002271jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002272jsd" : { + "type" : "ControlElement", + "id" : "acm002272jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002273jsd" : { + "type" : "ControlElement", + "id" : "acm002273jsd", + "name" : "testConstructorStorageNull" + }, + "acm002274jsd" : { + "type" : "ControlElement", + "id" : "acm002274jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002275jsd" : { + "type" : "ControlElement", + "id" : "acm002275jsd", + "name" : "testConstructorZeroSize" + }, + "acm002276jsd" : { + "type" : "ControlElement", + "id" : "acm002276jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002277jsd" : { + "type" : "ControlElement", + "id" : "acm002277jsd", + "name" : "testCacheData" + }, + "acm002278jsd" : { + "type" : "ClassUnit", + "id" : "acm002278jsd", + "name" : "TestFirstInFirstOut", + "compilationUnitId" : "acm002263jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001756jsd", "acm002219jsd" ], + "content" : [ "acm002269jsd", "acm002270jsd", "acm002271jsd", "acm002272jsd", "acm002273jsd", "acm002274jsd", "acm002275jsd", "acm002276jsd", "acm002277jsd" ] + }, + "acm002279jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002279jsd", + "name" : "TestLastInFirstOut", + "parentId" : "acm001696jsd", + "content" : [ "acm002294jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002280jsd" : { + "type" : "CodePackage", + "id" : "acm002280jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002281jsd" ] + }, + "acm002281jsd" : { + "type" : "CodePackage", + "id" : "acm002281jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002282jsd" ] + }, + "acm002282jsd" : { + "type" : "CodePackage", + "id" : "acm002282jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002283jsd" ] + }, + "acm002283jsd" : { + "type" : "CodePackage", + "id" : "acm002283jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002284jsd" ] + }, + "acm002284jsd" : { + "type" : "CodePackage", + "id" : "acm002284jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002279jsd" ] + }, + "acm002285jsd" : { + "type" : "ControlElement", + "id" : "acm002285jsd", + "name" : "testConstructorSimple" + }, + "acm002286jsd" : { + "type" : "ControlElement", + "id" : "acm002286jsd", + "name" : "testConstructorSize" + }, + "acm002287jsd" : { + "type" : "ControlElement", + "id" : "acm002287jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002288jsd" : { + "type" : "ControlElement", + "id" : "acm002288jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002289jsd" : { + "type" : "ControlElement", + "id" : "acm002289jsd", + "name" : "testConstructorStorageNull" + }, + "acm002290jsd" : { + "type" : "ControlElement", + "id" : "acm002290jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002291jsd" : { + "type" : "ControlElement", + "id" : "acm002291jsd", + "name" : "testConstructorZeroSize" + }, + "acm002292jsd" : { + "type" : "ControlElement", + "id" : "acm002292jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002293jsd" : { + "type" : "ControlElement", + "id" : "acm002293jsd", + "name" : "testCacheData" + }, + "acm002294jsd" : { + "type" : "ClassUnit", + "id" : "acm002294jsd", + "name" : "TestLastInFirstOut", + "compilationUnitId" : "acm002279jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001785jsd", "acm002219jsd" ], + "content" : [ "acm002285jsd", "acm002286jsd", "acm002287jsd", "acm002288jsd", "acm002289jsd", "acm002290jsd", "acm002291jsd", "acm002292jsd", "acm002293jsd" ] + }, + "acm002295jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002295jsd", + "name" : "TestLeastFrequentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm002310jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002296jsd" : { + "type" : "CodePackage", + "id" : "acm002296jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002297jsd" ] + }, + "acm002297jsd" : { + "type" : "CodePackage", + "id" : "acm002297jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002298jsd" ] + }, + "acm002298jsd" : { + "type" : "CodePackage", + "id" : "acm002298jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002299jsd" ] + }, + "acm002299jsd" : { + "type" : "CodePackage", + "id" : "acm002299jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002300jsd" ] + }, + "acm002300jsd" : { + "type" : "CodePackage", + "id" : "acm002300jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002295jsd" ] + }, + "acm002301jsd" : { + "type" : "ControlElement", + "id" : "acm002301jsd", + "name" : "testConstructorSimple" + }, + "acm002302jsd" : { + "type" : "ControlElement", + "id" : "acm002302jsd", + "name" : "testConstructorSize" + }, + "acm002303jsd" : { + "type" : "ControlElement", + "id" : "acm002303jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002304jsd" : { + "type" : "ControlElement", + "id" : "acm002304jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002305jsd" : { + "type" : "ControlElement", + "id" : "acm002305jsd", + "name" : "testConstructorStorageNull" + }, + "acm002306jsd" : { + "type" : "ControlElement", + "id" : "acm002306jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002307jsd" : { + "type" : "ControlElement", + "id" : "acm002307jsd", + "name" : "testConstructorZeroSize" + }, + "acm002308jsd" : { + "type" : "ControlElement", + "id" : "acm002308jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002309jsd" : { + "type" : "ControlElement", + "id" : "acm002309jsd", + "name" : "testCacheData" + }, + "acm002310jsd" : { + "type" : "ClassUnit", + "id" : "acm002310jsd", + "name" : "TestLeastFrequentlyUsed", + "compilationUnitId" : "acm002295jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001797jsd", "acm002219jsd" ], + "content" : [ "acm002301jsd", "acm002302jsd", "acm002303jsd", "acm002304jsd", "acm002305jsd", "acm002306jsd", "acm002307jsd", "acm002308jsd", "acm002309jsd" ] + }, + "acm002311jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002311jsd", + "name" : "TestLeastRecentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm002326jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002312jsd" : { + "type" : "CodePackage", + "id" : "acm002312jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002313jsd" ] + }, + "acm002313jsd" : { + "type" : "CodePackage", + "id" : "acm002313jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002314jsd" ] + }, + "acm002314jsd" : { + "type" : "CodePackage", + "id" : "acm002314jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002315jsd" ] + }, + "acm002315jsd" : { + "type" : "CodePackage", + "id" : "acm002315jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002316jsd" ] + }, + "acm002316jsd" : { + "type" : "CodePackage", + "id" : "acm002316jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002311jsd" ] + }, + "acm002317jsd" : { + "type" : "ControlElement", + "id" : "acm002317jsd", + "name" : "testConstructorSimple" + }, + "acm002318jsd" : { + "type" : "ControlElement", + "id" : "acm002318jsd", + "name" : "testConstructorSize" + }, + "acm002319jsd" : { + "type" : "ControlElement", + "id" : "acm002319jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002320jsd" : { + "type" : "ControlElement", + "id" : "acm002320jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002321jsd" : { + "type" : "ControlElement", + "id" : "acm002321jsd", + "name" : "testConstructorStorageNull" + }, + "acm002322jsd" : { + "type" : "ControlElement", + "id" : "acm002322jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002323jsd" : { + "type" : "ControlElement", + "id" : "acm002323jsd", + "name" : "testConstructorZeroSize" + }, + "acm002324jsd" : { + "type" : "ControlElement", + "id" : "acm002324jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002325jsd" : { + "type" : "ControlElement", + "id" : "acm002325jsd", + "name" : "testCacheData" + }, + "acm002326jsd" : { + "type" : "ClassUnit", + "id" : "acm002326jsd", + "name" : "TestLeastRecentlyUsed", + "compilationUnitId" : "acm002311jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001809jsd", "acm002219jsd" ], + "content" : [ "acm002317jsd", "acm002318jsd", "acm002319jsd", "acm002320jsd", "acm002321jsd", "acm002322jsd", "acm002323jsd", "acm002324jsd", "acm002325jsd" ] + }, + "acm002327jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002327jsd", + "name" : "TestMostRecentlyUsed", + "parentId" : "acm001696jsd", + "content" : [ "acm002342jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002328jsd" : { + "type" : "CodePackage", + "id" : "acm002328jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002329jsd" ] + }, + "acm002329jsd" : { + "type" : "CodePackage", + "id" : "acm002329jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002330jsd" ] + }, + "acm002330jsd" : { + "type" : "CodePackage", + "id" : "acm002330jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002331jsd" ] + }, + "acm002331jsd" : { + "type" : "CodePackage", + "id" : "acm002331jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002332jsd" ] + }, + "acm002332jsd" : { + "type" : "CodePackage", + "id" : "acm002332jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002327jsd" ] + }, + "acm002333jsd" : { + "type" : "ControlElement", + "id" : "acm002333jsd", + "name" : "testConstructorSimple" + }, + "acm002334jsd" : { + "type" : "ControlElement", + "id" : "acm002334jsd", + "name" : "testConstructorSize" + }, + "acm002335jsd" : { + "type" : "ControlElement", + "id" : "acm002335jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002336jsd" : { + "type" : "ControlElement", + "id" : "acm002336jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002337jsd" : { + "type" : "ControlElement", + "id" : "acm002337jsd", + "name" : "testConstructorStorageNull" + }, + "acm002338jsd" : { + "type" : "ControlElement", + "id" : "acm002338jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002339jsd" : { + "type" : "ControlElement", + "id" : "acm002339jsd", + "name" : "testConstructorZeroSize" + }, + "acm002340jsd" : { + "type" : "ControlElement", + "id" : "acm002340jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002341jsd" : { + "type" : "ControlElement", + "id" : "acm002341jsd", + "name" : "testCacheData" + }, + "acm002342jsd" : { + "type" : "ClassUnit", + "id" : "acm002342jsd", + "name" : "TestMostRecentlyUsed", + "compilationUnitId" : "acm002327jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001821jsd", "acm002219jsd" ], + "content" : [ "acm002333jsd", "acm002334jsd", "acm002335jsd", "acm002336jsd", "acm002337jsd", "acm002338jsd", "acm002339jsd", "acm002340jsd", "acm002341jsd" ] + }, + "acm002343jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002343jsd", + "name" : "TestRandomReplacement", + "parentId" : "acm001696jsd", + "content" : [ "acm002360jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002344jsd" : { + "type" : "CodePackage", + "id" : "acm002344jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002345jsd" ] + }, + "acm002345jsd" : { + "type" : "CodePackage", + "id" : "acm002345jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002346jsd" ] + }, + "acm002346jsd" : { + "type" : "CodePackage", + "id" : "acm002346jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002347jsd" ] + }, + "acm002347jsd" : { + "type" : "CodePackage", + "id" : "acm002347jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002348jsd" ] + }, + "acm002348jsd" : { + "type" : "CodePackage", + "id" : "acm002348jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002343jsd" ] + }, + "acm002349jsd" : { + "type" : "ControlElement", + "id" : "acm002349jsd", + "name" : "testConstructorSimple" + }, + "acm002350jsd" : { + "type" : "ControlElement", + "id" : "acm002350jsd", + "name" : "testConstructorSize" + }, + "acm002351jsd" : { + "type" : "ControlElement", + "id" : "acm002351jsd", + "name" : "testConstructorSizePredicate" + }, + "acm002352jsd" : { + "type" : "ControlElement", + "id" : "acm002352jsd", + "name" : "testConstructorStorageSizePredicate" + }, + "acm002353jsd" : { + "type" : "ControlElement", + "id" : "acm002353jsd", + "name" : "testConstructorStorageSizePredicateSeed" + }, + "acm002354jsd" : { + "type" : "ControlElement", + "id" : "acm002354jsd", + "name" : "testConstructorStorageNull" + }, + "acm002355jsd" : { + "type" : "ControlElement", + "id" : "acm002355jsd", + "name" : "testConstructorPredicateNull" + }, + "acm002356jsd" : { + "type" : "ControlElement", + "id" : "acm002356jsd", + "name" : "testConstructorZeroSize" + }, + "acm002357jsd" : { + "type" : "ControlElement", + "id" : "acm002357jsd", + "name" : "testConstructorNegativeSize" + }, + "acm002358jsd" : { + "type" : "ControlElement", + "id" : "acm002358jsd", + "name" : "testCacheData" + }, + "acm002359jsd" : { + "type" : "ControlElement", + "id" : "acm002359jsd", + "name" : "determineReplacement" + }, + "acm002360jsd" : { + "type" : "ClassUnit", + "id" : "acm002360jsd", + "name" : "TestRandomReplacement", + "compilationUnitId" : "acm002343jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002197jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001835jsd", "acm002219jsd" ], + "content" : [ "acm002349jsd", "acm002350jsd", "acm002351jsd", "acm002352jsd", "acm002353jsd", "acm002354jsd", "acm002355jsd", "acm002356jsd", "acm002357jsd", "acm002358jsd", "acm002359jsd" ] + }, + "acm002361jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002361jsd", + "name" : "AbstractEntryWrapper", + "parentId" : "acm001842jsd", + "content" : [ "acm002370jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002362jsd" : { + "type" : "CodePackage", + "id" : "acm002362jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002363jsd" ] + }, + "acm002363jsd" : { + "type" : "CodePackage", + "id" : "acm002363jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002364jsd" ] + }, + "acm002364jsd" : { + "type" : "CodePackage", + "id" : "acm002364jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002365jsd" ] + }, + "acm002365jsd" : { + "type" : "CodePackage", + "id" : "acm002365jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002366jsd" ] + }, + "acm002366jsd" : { + "type" : "CodePackage", + "id" : "acm002366jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002367jsd" ] + }, + "acm002367jsd" : { + "type" : "CodePackage", + "id" : "acm002367jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm002361jsd" ] + }, + "acm002368jsd" : { + "type" : "ControlElement", + "id" : "acm002368jsd", + "name" : "AbstractEntryWrapper" + }, + "acm002369jsd" : { + "type" : "ControlElement", + "id" : "acm002369jsd", + "name" : "wasUsed" + }, + "acm002370jsd" : { + "type" : "ClassUnit", + "id" : "acm002370jsd", + "name" : "AbstractEntryWrapper", + "compilationUnitId" : "acm002361jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001850jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd" ], + "content" : [ "acm002368jsd", "acm002369jsd" ] + }, + "acm002371jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002371jsd", + "name" : "TestAbstractEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm002386jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002372jsd" : { + "type" : "CodePackage", + "id" : "acm002372jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002373jsd" ] + }, + "acm002373jsd" : { + "type" : "CodePackage", + "id" : "acm002373jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002374jsd" ] + }, + "acm002374jsd" : { + "type" : "CodePackage", + "id" : "acm002374jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002375jsd" ] + }, + "acm002375jsd" : { + "type" : "CodePackage", + "id" : "acm002375jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002376jsd" ] + }, + "acm002376jsd" : { + "type" : "CodePackage", + "id" : "acm002376jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002377jsd" ] + }, + "acm002377jsd" : { + "type" : "CodePackage", + "id" : "acm002377jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm002371jsd" ] + }, + "acm002378jsd" : { + "type" : "ControlElement", + "id" : "acm002378jsd", + "name" : "initialize" + }, + "acm002379jsd" : { + "type" : "ControlElement", + "id" : "acm002379jsd", + "name" : "testConstructor" + }, + "acm002380jsd" : { + "type" : "ControlElement", + "id" : "acm002380jsd", + "name" : "testConstructorNull" + }, + "acm002381jsd" : { + "type" : "ControlElement", + "id" : "acm002381jsd", + "name" : "testUseCount" + }, + "acm002382jsd" : { + "type" : "ControlElement", + "id" : "acm002382jsd", + "name" : "testGetData" + }, + "acm002383jsd" : { + "type" : "ControlElement", + "id" : "acm002383jsd", + "name" : "testGetByteSize" + }, + "acm002384jsd" : { + "type" : "ControlElement", + "id" : "acm002384jsd", + "name" : "testGetID" + }, + "acm002385jsd" : { + "type" : "ControlElement", + "id" : "acm002385jsd", + "name" : "testEquals" + }, + "acm002386jsd" : { + "type" : "ClassUnit", + "id" : "acm002386jsd", + "name" : "TestAbstractEntry", + "compilationUnitId" : "acm002371jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001850jsd", "acm002370jsd" ], + "content" : [ "acm002378jsd", "acm002379jsd", "acm002380jsd", "acm002381jsd", "acm002382jsd", "acm002383jsd", "acm002384jsd", "acm002385jsd" ] + }, + "acm002387jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002387jsd", + "name" : "TestCountedEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm002398jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002388jsd" : { + "type" : "CodePackage", + "id" : "acm002388jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002389jsd" ] + }, + "acm002389jsd" : { + "type" : "CodePackage", + "id" : "acm002389jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002390jsd" ] + }, + "acm002390jsd" : { + "type" : "CodePackage", + "id" : "acm002390jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002391jsd" ] + }, + "acm002391jsd" : { + "type" : "CodePackage", + "id" : "acm002391jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002392jsd" ] + }, + "acm002392jsd" : { + "type" : "CodePackage", + "id" : "acm002392jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002393jsd" ] + }, + "acm002393jsd" : { + "type" : "CodePackage", + "id" : "acm002393jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm002387jsd" ] + }, + "acm002394jsd" : { + "type" : "ControlElement", + "id" : "acm002394jsd", + "name" : "initialize" + }, + "acm002395jsd" : { + "type" : "ControlElement", + "id" : "acm002395jsd", + "name" : "testConstructor" + }, + "acm002396jsd" : { + "type" : "ControlElement", + "id" : "acm002396jsd", + "name" : "testConstructorNull" + }, + "acm002397jsd" : { + "type" : "ControlElement", + "id" : "acm002397jsd", + "name" : "testUseCount" + }, + "acm002398jsd" : { + "type" : "ClassUnit", + "id" : "acm002398jsd", + "name" : "TestCountedEntry", + "compilationUnitId" : "acm002387jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001861jsd" ], + "content" : [ "acm002394jsd", "acm002395jsd", "acm002396jsd", "acm002397jsd" ] + }, + "acm002399jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002399jsd", + "name" : "TestSimpleEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm002410jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002400jsd" : { + "type" : "CodePackage", + "id" : "acm002400jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002401jsd" ] + }, + "acm002401jsd" : { + "type" : "CodePackage", + "id" : "acm002401jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002402jsd" ] + }, + "acm002402jsd" : { + "type" : "CodePackage", + "id" : "acm002402jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002403jsd" ] + }, + "acm002403jsd" : { + "type" : "CodePackage", + "id" : "acm002403jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002404jsd" ] + }, + "acm002404jsd" : { + "type" : "CodePackage", + "id" : "acm002404jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002405jsd" ] + }, + "acm002405jsd" : { + "type" : "CodePackage", + "id" : "acm002405jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm002399jsd" ] + }, + "acm002406jsd" : { + "type" : "ControlElement", + "id" : "acm002406jsd", + "name" : "initialize" + }, + "acm002407jsd" : { + "type" : "ControlElement", + "id" : "acm002407jsd", + "name" : "testConstructor" + }, + "acm002408jsd" : { + "type" : "ControlElement", + "id" : "acm002408jsd", + "name" : "testConstructorNull" + }, + "acm002409jsd" : { + "type" : "ControlElement", + "id" : "acm002409jsd", + "name" : "testUseCount" + }, + "acm002410jsd" : { + "type" : "ClassUnit", + "id" : "acm002410jsd", + "name" : "TestSimpleEntry", + "compilationUnitId" : "acm002399jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001891jsd" ], + "content" : [ "acm002406jsd", "acm002407jsd", "acm002408jsd", "acm002409jsd" ] + }, + "acm002411jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002411jsd", + "name" : "TestTimedEntry", + "parentId" : "acm001842jsd", + "content" : [ "acm002422jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "entry" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002412jsd" : { + "type" : "CodePackage", + "id" : "acm002412jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002413jsd" ] + }, + "acm002413jsd" : { + "type" : "CodePackage", + "id" : "acm002413jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002414jsd" ] + }, + "acm002414jsd" : { + "type" : "CodePackage", + "id" : "acm002414jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002415jsd" ] + }, + "acm002415jsd" : { + "type" : "CodePackage", + "id" : "acm002415jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002416jsd" ] + }, + "acm002416jsd" : { + "type" : "CodePackage", + "id" : "acm002416jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002417jsd" ] + }, + "acm002417jsd" : { + "type" : "CodePackage", + "id" : "acm002417jsd", + "name" : "entry", + "parentId" : null, + "content" : [ "acm002411jsd" ] + }, + "acm002418jsd" : { + "type" : "ControlElement", + "id" : "acm002418jsd", + "name" : "initialize" + }, + "acm002419jsd" : { + "type" : "ControlElement", + "id" : "acm002419jsd", + "name" : "testConstructor" + }, + "acm002420jsd" : { + "type" : "ControlElement", + "id" : "acm002420jsd", + "name" : "testConstructorNull" + }, + "acm002421jsd" : { + "type" : "ControlElement", + "id" : "acm002421jsd", + "name" : "testTime" + }, + "acm002422jsd" : { + "type" : "ClassUnit", + "id" : "acm002422jsd", + "name" : "TestTimedEntry", + "compilationUnitId" : "acm002411jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001902jsd" ], + "content" : [ "acm002418jsd", "acm002419jsd", "acm002420jsd", "acm002421jsd" ] + }, + "acm002423jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002423jsd", + "name" : "TestCacheAll", + "parentId" : "acm001909jsd", + "content" : [ "acm002432jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "cache", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002424jsd" : { + "type" : "CodePackage", + "id" : "acm002424jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002425jsd" ] + }, + "acm002425jsd" : { + "type" : "CodePackage", + "id" : "acm002425jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002426jsd" ] + }, + "acm002426jsd" : { + "type" : "CodePackage", + "id" : "acm002426jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002427jsd" ] + }, + "acm002427jsd" : { + "type" : "CodePackage", + "id" : "acm002427jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002428jsd" ] + }, + "acm002428jsd" : { + "type" : "CodePackage", + "id" : "acm002428jsd", + "name" : "cache", + "parentId" : null, + "content" : [ "acm002429jsd" ] + }, + "acm002429jsd" : { + "type" : "CodePackage", + "id" : "acm002429jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm002423jsd" ] + }, + "acm002430jsd" : { + "type" : "ControlElement", + "id" : "acm002430jsd", + "name" : "initialize" + }, + "acm002431jsd" : { + "type" : "ControlElement", + "id" : "acm002431jsd", + "name" : "testRule" + }, + "acm002432jsd" : { + "type" : "ClassUnit", + "id" : "acm002432jsd", + "name" : "TestCacheAll", + "compilationUnitId" : "acm002423jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm001911jsd" ], + "content" : [ "acm002430jsd", "acm002431jsd" ] + }, + "acm002433jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002433jsd", + "name" : "TestDriveStorage", + "parentId" : "acm002060jsd", + "content" : [ "acm002439jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "storage" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002434jsd" : { + "type" : "CodePackage", + "id" : "acm002434jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002435jsd" ] + }, + "acm002435jsd" : { + "type" : "CodePackage", + "id" : "acm002435jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002436jsd" ] + }, + "acm002436jsd" : { + "type" : "CodePackage", + "id" : "acm002436jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002437jsd" ] + }, + "acm002437jsd" : { + "type" : "CodePackage", + "id" : "acm002437jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002438jsd" ] + }, + "acm002438jsd" : { + "type" : "CodePackage", + "id" : "acm002438jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002433jsd" ] + }, + "acm002439jsd" : { + "type" : "ClassUnit", + "id" : "acm002439jsd", + "name" : "TestDriveStorage", + "compilationUnitId" : "acm002433jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ ] + }, + "acm002440jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002440jsd", + "name" : "TestNoStorage", + "parentId" : "acm002060jsd", + "content" : [ "acm002452jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "storage" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002441jsd" : { + "type" : "CodePackage", + "id" : "acm002441jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002442jsd" ] + }, + "acm002442jsd" : { + "type" : "CodePackage", + "id" : "acm002442jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002443jsd" ] + }, + "acm002443jsd" : { + "type" : "CodePackage", + "id" : "acm002443jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002444jsd" ] + }, + "acm002444jsd" : { + "type" : "CodePackage", + "id" : "acm002444jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002445jsd" ] + }, + "acm002445jsd" : { + "type" : "CodePackage", + "id" : "acm002445jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002440jsd" ] + }, + "acm002446jsd" : { + "type" : "ControlElement", + "id" : "acm002446jsd", + "name" : "initialize" + }, + "acm002447jsd" : { + "type" : "ControlElement", + "id" : "acm002447jsd", + "name" : "testDataExists" + }, + "acm002448jsd" : { + "type" : "ControlElement", + "id" : "acm002448jsd", + "name" : "testLoadData" + }, + "acm002449jsd" : { + "type" : "ControlElement", + "id" : "acm002449jsd", + "name" : "testSaveData" + }, + "acm002450jsd" : { + "type" : "ControlElement", + "id" : "acm002450jsd", + "name" : "testDataIsStorable" + }, + "acm002451jsd" : { + "type" : "ControlElement", + "id" : "acm002451jsd", + "name" : "testDeleteData" + }, + "acm002452jsd" : { + "type" : "ClassUnit", + "id" : "acm002452jsd", + "name" : "TestNoStorage", + "compilationUnitId" : "acm002440jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm002093jsd" ], + "content" : [ "acm002446jsd", "acm002447jsd", "acm002448jsd", "acm002449jsd", "acm002450jsd", "acm002451jsd" ] + }, + "acm002453jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002453jsd", + "name" : "TestStoreAll", + "parentId" : "acm002100jsd", + "content" : [ "acm002462jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "storage", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002454jsd" : { + "type" : "CodePackage", + "id" : "acm002454jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002455jsd" ] + }, + "acm002455jsd" : { + "type" : "CodePackage", + "id" : "acm002455jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002456jsd" ] + }, + "acm002456jsd" : { + "type" : "CodePackage", + "id" : "acm002456jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002457jsd" ] + }, + "acm002457jsd" : { + "type" : "CodePackage", + "id" : "acm002457jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002458jsd" ] + }, + "acm002458jsd" : { + "type" : "CodePackage", + "id" : "acm002458jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002459jsd" ] + }, + "acm002459jsd" : { + "type" : "CodePackage", + "id" : "acm002459jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm002453jsd" ] + }, + "acm002460jsd" : { + "type" : "ControlElement", + "id" : "acm002460jsd", + "name" : "initialize" + }, + "acm002461jsd" : { + "type" : "ControlElement", + "id" : "acm002461jsd", + "name" : "testRule" + }, + "acm002462jsd" : { + "type" : "ClassUnit", + "id" : "acm002462jsd", + "name" : "TestStoreAll", + "compilationUnitId" : "acm002453jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm002102jsd" ], + "content" : [ "acm002460jsd", "acm002461jsd" ] + }, + "acm002463jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002463jsd", + "name" : "TestStoreLargeImages", + "parentId" : "acm002100jsd", + "content" : [ "acm002472jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.image", "src", "test", "java", "tools", "descartes", "teastore", "image", "storage", "rules" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002464jsd" : { + "type" : "CodePackage", + "id" : "acm002464jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002465jsd" ] + }, + "acm002465jsd" : { + "type" : "CodePackage", + "id" : "acm002465jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002466jsd" ] + }, + "acm002466jsd" : { + "type" : "CodePackage", + "id" : "acm002466jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002467jsd" ] + }, + "acm002467jsd" : { + "type" : "CodePackage", + "id" : "acm002467jsd", + "name" : "image", + "parentId" : null, + "content" : [ "acm002468jsd" ] + }, + "acm002468jsd" : { + "type" : "CodePackage", + "id" : "acm002468jsd", + "name" : "storage", + "parentId" : null, + "content" : [ "acm002469jsd" ] + }, + "acm002469jsd" : { + "type" : "CodePackage", + "id" : "acm002469jsd", + "name" : "rules", + "parentId" : null, + "content" : [ "acm002463jsd" ] + }, + "acm002470jsd" : { + "type" : "ControlElement", + "id" : "acm002470jsd", + "name" : "initialize" + }, + "acm002471jsd" : { + "type" : "ControlElement", + "id" : "acm002471jsd", + "name" : "testRule" + }, + "acm002472jsd" : { + "type" : "ClassUnit", + "id" : "acm002472jsd", + "name" : "TestStoreLargeImages", + "compilationUnitId" : "acm002463jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001690jsd", "acm002111jsd" ], + "content" : [ "acm002470jsd", "acm002471jsd" ] + }, + "acm002473jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002473jsd", + "name" : "InitialDataGenerationDaemon", + "parentId" : "acm002478jsd", + "content" : [ "acm002483jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "daemons" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002474jsd" : { + "type" : "CodePackage", + "id" : "acm002474jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002475jsd" ] + }, + "acm002475jsd" : { + "type" : "CodePackage", + "id" : "acm002475jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002476jsd" ] + }, + "acm002476jsd" : { + "type" : "CodePackage", + "id" : "acm002476jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002477jsd" ] + }, + "acm002477jsd" : { + "type" : "CodePackage", + "id" : "acm002477jsd", + "name" : "persistence", + "parentId" : "acm001340jsd", + "content" : [ "acm002871jsd", "acm002879jsd", "acm002888jsd", "acm002478jsd", "acm002489jsd", "acm002695jsd", "acm002778jsd", "acm002866jsd" ] + }, + "acm002478jsd" : { + "type" : "CodePackage", + "id" : "acm002478jsd", + "name" : "daemons", + "parentId" : "acm002477jsd", + "content" : [ "acm002473jsd" ] + }, + "acm002479jsd" : { + "type" : "ControlElement", + "id" : "acm002479jsd", + "name" : "InitialDataGenerationDaemon" + }, + "acm002480jsd" : { + "type" : "ControlElement", + "id" : "acm002480jsd", + "name" : "contextDestroyed" + }, + "acm002481jsd" : { + "type" : "ControlElement", + "id" : "acm002481jsd", + "name" : "contextInitialized" + }, + "acm002482jsd" : { + "type" : "ControlElement", + "id" : "acm002482jsd", + "name" : "waitForDatabase" + }, + "acm002483jsd" : { + "type" : "ClassUnit", + "id" : "acm002483jsd", + "name" : "InitialDataGenerationDaemon", + "compilationUnitId" : "acm002473jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002483jsd" ], + "content" : [ "acm002479jsd", "acm002480jsd", "acm002481jsd", "acm002482jsd" ] + }, + "acm002484jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002484jsd", + "name" : "CategoryRepository", + "parentId" : "acm002489jsd", + "content" : [ "acm002495jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002485jsd" : { + "type" : "CodePackage", + "id" : "acm002485jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002486jsd" ] + }, + "acm002486jsd" : { + "type" : "CodePackage", + "id" : "acm002486jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002487jsd" ] + }, + "acm002487jsd" : { + "type" : "CodePackage", + "id" : "acm002487jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002488jsd" ] + }, + "acm002488jsd" : { + "type" : "CodePackage", + "id" : "acm002488jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002489jsd" ] + }, + "acm002489jsd" : { + "type" : "CodePackage", + "id" : "acm002489jsd", + "name" : "domain", + "parentId" : "acm002477jsd", + "content" : [ "acm002484jsd", "acm002496jsd", "acm002510jsd", "acm002523jsd", "acm002539jsd", "acm002577jsd", "acm002600jsd", "acm002622jsd", "acm002643jsd", "acm002657jsd", "acm002676jsd" ] + }, + "acm002490jsd" : { + "type" : "ControlElement", + "id" : "acm002490jsd", + "name" : "CategoryRepository" + }, + "acm002491jsd" : { + "type" : "ControlElement", + "id" : "acm002491jsd", + "name" : "createEntity" + }, + "acm002492jsd" : { + "type" : "ControlElement", + "id" : "acm002492jsd", + "name" : "updateEntity" + }, + "acm002493jsd" : { + "type" : "ControlElement", + "id" : "acm002493jsd", + "name" : "getId" + }, + "acm002494jsd" : { + "type" : "ControlElement", + "id" : "acm002494jsd", + "name" : "getEntityClass" + }, + "acm002495jsd" : { + "type" : "ClassUnit", + "id" : "acm002495jsd", + "name" : "CategoryRepository", + "compilationUnitId" : "acm002484jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002707jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm002495jsd", "acm002538jsd" ], + "content" : [ "acm002490jsd", "acm002491jsd", "acm002492jsd", "acm002493jsd", "acm002494jsd" ] + }, + "acm002496jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002496jsd", + "name" : "OrderItemRepository", + "parentId" : "acm002489jsd", + "content" : [ "acm002509jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002497jsd" : { + "type" : "CodePackage", + "id" : "acm002497jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002498jsd" ] + }, + "acm002498jsd" : { + "type" : "CodePackage", + "id" : "acm002498jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002499jsd" ] + }, + "acm002499jsd" : { + "type" : "CodePackage", + "id" : "acm002499jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002500jsd" ] + }, + "acm002500jsd" : { + "type" : "CodePackage", + "id" : "acm002500jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002501jsd" ] + }, + "acm002501jsd" : { + "type" : "CodePackage", + "id" : "acm002501jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002496jsd" ] + }, + "acm002502jsd" : { + "type" : "ControlElement", + "id" : "acm002502jsd", + "name" : "OrderItemRepository" + }, + "acm002503jsd" : { + "type" : "ControlElement", + "id" : "acm002503jsd", + "name" : "createEntity" + }, + "acm002504jsd" : { + "type" : "ControlElement", + "id" : "acm002504jsd", + "name" : "updateEntity" + }, + "acm002505jsd" : { + "type" : "ControlElement", + "id" : "acm002505jsd", + "name" : "getAllEntitiesWithProduct" + }, + "acm002506jsd" : { + "type" : "ControlElement", + "id" : "acm002506jsd", + "name" : "getAllEntitiesWithOrder" + }, + "acm002507jsd" : { + "type" : "ControlElement", + "id" : "acm002507jsd", + "name" : "getId" + }, + "acm002508jsd" : { + "type" : "ControlElement", + "id" : "acm002508jsd", + "name" : "getEntityClass" + }, + "acm002509jsd" : { + "type" : "ClassUnit", + "id" : "acm002509jsd", + "name" : "OrderItemRepository", + "compilationUnitId" : "acm002496jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002707jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd", "acm002509jsd", "acm002576jsd", "acm002599jsd", "acm002621jsd" ], + "content" : [ "acm002502jsd", "acm002503jsd", "acm002504jsd", "acm002505jsd", "acm002506jsd", "acm002507jsd", "acm002508jsd" ] + }, + "acm002510jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002510jsd", + "name" : "OrderRepository", + "parentId" : "acm002489jsd", + "content" : [ "acm002522jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002511jsd" : { + "type" : "CodePackage", + "id" : "acm002511jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002512jsd" ] + }, + "acm002512jsd" : { + "type" : "CodePackage", + "id" : "acm002512jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002513jsd" ] + }, + "acm002513jsd" : { + "type" : "CodePackage", + "id" : "acm002513jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002514jsd" ] + }, + "acm002514jsd" : { + "type" : "CodePackage", + "id" : "acm002514jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002515jsd" ] + }, + "acm002515jsd" : { + "type" : "CodePackage", + "id" : "acm002515jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002510jsd" ] + }, + "acm002516jsd" : { + "type" : "ControlElement", + "id" : "acm002516jsd", + "name" : "OrderRepository" + }, + "acm002517jsd" : { + "type" : "ControlElement", + "id" : "acm002517jsd", + "name" : "createEntity" + }, + "acm002518jsd" : { + "type" : "ControlElement", + "id" : "acm002518jsd", + "name" : "updateEntity" + }, + "acm002519jsd" : { + "type" : "ControlElement", + "id" : "acm002519jsd", + "name" : "getAllEntitiesWithUser" + }, + "acm002520jsd" : { + "type" : "ControlElement", + "id" : "acm002520jsd", + "name" : "getId" + }, + "acm002521jsd" : { + "type" : "ControlElement", + "id" : "acm002521jsd", + "name" : "getEntityClass" + }, + "acm002522jsd" : { + "type" : "ClassUnit", + "id" : "acm002522jsd", + "name" : "OrderRepository", + "compilationUnitId" : "acm002510jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002707jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm002522jsd", "acm002576jsd", "acm002642jsd" ], + "content" : [ "acm002516jsd", "acm002517jsd", "acm002518jsd", "acm002519jsd", "acm002520jsd", "acm002521jsd" ] + }, + "acm002523jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002523jsd", + "name" : "PersistenceCategory", + "parentId" : "acm002489jsd", + "content" : [ "acm002538jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002524jsd" : { + "type" : "CodePackage", + "id" : "acm002524jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002525jsd" ] + }, + "acm002525jsd" : { + "type" : "CodePackage", + "id" : "acm002525jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002526jsd" ] + }, + "acm002526jsd" : { + "type" : "CodePackage", + "id" : "acm002526jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002527jsd" ] + }, + "acm002527jsd" : { + "type" : "CodePackage", + "id" : "acm002527jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002528jsd" ] + }, + "acm002528jsd" : { + "type" : "CodePackage", + "id" : "acm002528jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002523jsd" ] + }, + "acm002529jsd" : { + "type" : "ControlElement", + "id" : "acm002529jsd", + "name" : "PersistenceCategory" + }, + "acm002530jsd" : { + "type" : "ControlElement", + "id" : "acm002530jsd", + "name" : "clearCaches" + }, + "acm002531jsd" : { + "type" : "ControlElement", + "id" : "acm002531jsd", + "name" : "getId" + }, + "acm002532jsd" : { + "type" : "ControlElement", + "id" : "acm002532jsd", + "name" : "setId" + }, + "acm002533jsd" : { + "type" : "ControlElement", + "id" : "acm002533jsd", + "name" : "getName" + }, + "acm002534jsd" : { + "type" : "ControlElement", + "id" : "acm002534jsd", + "name" : "setName" + }, + "acm002535jsd" : { + "type" : "ControlElement", + "id" : "acm002535jsd", + "name" : "getDescription" + }, + "acm002536jsd" : { + "type" : "ControlElement", + "id" : "acm002536jsd", + "name" : "setDescription" + }, + "acm002537jsd" : { + "type" : "ControlElement", + "id" : "acm002537jsd", + "name" : "getProducts" + }, + "acm002538jsd" : { + "type" : "ClassUnit", + "id" : "acm002538jsd", + "name" : "PersistenceCategory", + "compilationUnitId" : "acm002523jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001352jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002538jsd", "acm002621jsd" ], + "content" : [ "acm002529jsd", "acm002530jsd", "acm002531jsd", "acm002532jsd", "acm002533jsd", "acm002534jsd", "acm002535jsd", "acm002536jsd", "acm002537jsd" ] + }, + "acm002539jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002539jsd", + "name" : "PersistenceOrder", + "parentId" : "acm002489jsd", + "content" : [ "acm002576jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002540jsd" : { + "type" : "CodePackage", + "id" : "acm002540jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002541jsd" ] + }, + "acm002541jsd" : { + "type" : "CodePackage", + "id" : "acm002541jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002542jsd" ] + }, + "acm002542jsd" : { + "type" : "CodePackage", + "id" : "acm002542jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002543jsd" ] + }, + "acm002543jsd" : { + "type" : "CodePackage", + "id" : "acm002543jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002544jsd" ] + }, + "acm002544jsd" : { + "type" : "CodePackage", + "id" : "acm002544jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002539jsd" ] + }, + "acm002545jsd" : { + "type" : "ControlElement", + "id" : "acm002545jsd", + "name" : "PersistenceOrder" + }, + "acm002546jsd" : { + "type" : "ControlElement", + "id" : "acm002546jsd", + "name" : "deleteOrders" + }, + "acm002547jsd" : { + "type" : "ControlElement", + "id" : "acm002547jsd", + "name" : "clearCaches" + }, + "acm002548jsd" : { + "type" : "ControlElement", + "id" : "acm002548jsd", + "name" : "getId" + }, + "acm002549jsd" : { + "type" : "ControlElement", + "id" : "acm002549jsd", + "name" : "setId" + }, + "acm002550jsd" : { + "type" : "ControlElement", + "id" : "acm002550jsd", + "name" : "getUserId" + }, + "acm002551jsd" : { + "type" : "ControlElement", + "id" : "acm002551jsd", + "name" : "setUserId" + }, + "acm002552jsd" : { + "type" : "ControlElement", + "id" : "acm002552jsd", + "name" : "getOrderTime" + }, + "acm002553jsd" : { + "type" : "ControlElement", + "id" : "acm002553jsd", + "name" : "setOrderTime" + }, + "acm002554jsd" : { + "type" : "ControlElement", + "id" : "acm002554jsd", + "name" : "getTime" + }, + "acm002555jsd" : { + "type" : "ControlElement", + "id" : "acm002555jsd", + "name" : "setTime" + }, + "acm002556jsd" : { + "type" : "ControlElement", + "id" : "acm002556jsd", + "name" : "getTotalPriceInCents" + }, + "acm002557jsd" : { + "type" : "ControlElement", + "id" : "acm002557jsd", + "name" : "setTotalPriceInCents" + }, + "acm002558jsd" : { + "type" : "ControlElement", + "id" : "acm002558jsd", + "name" : "getAddressName" + }, + "acm002559jsd" : { + "type" : "ControlElement", + "id" : "acm002559jsd", + "name" : "setAddressName" + }, + "acm002560jsd" : { + "type" : "ControlElement", + "id" : "acm002560jsd", + "name" : "getAddress1" + }, + "acm002561jsd" : { + "type" : "ControlElement", + "id" : "acm002561jsd", + "name" : "setAddress1" + }, + "acm002562jsd" : { + "type" : "ControlElement", + "id" : "acm002562jsd", + "name" : "getAddress2" + }, + "acm002563jsd" : { + "type" : "ControlElement", + "id" : "acm002563jsd", + "name" : "setAddress2" + }, + "acm002564jsd" : { + "type" : "ControlElement", + "id" : "acm002564jsd", + "name" : "getCreditCardCompany" + }, + "acm002565jsd" : { + "type" : "ControlElement", + "id" : "acm002565jsd", + "name" : "setCreditCardCompany" + }, + "acm002566jsd" : { + "type" : "ControlElement", + "id" : "acm002566jsd", + "name" : "getCreditCardNumber" + }, + "acm002567jsd" : { + "type" : "ControlElement", + "id" : "acm002567jsd", + "name" : "setCreditCardNumber" + }, + "acm002568jsd" : { + "type" : "ControlElement", + "id" : "acm002568jsd", + "name" : "getCreditCardExpiryLocalDate" + }, + "acm002569jsd" : { + "type" : "ControlElement", + "id" : "acm002569jsd", + "name" : "setCreditCardExpiryLocalDate" + }, + "acm002570jsd" : { + "type" : "ControlElement", + "id" : "acm002570jsd", + "name" : "getCreditCardExpiryDate" + }, + "acm002571jsd" : { + "type" : "ControlElement", + "id" : "acm002571jsd", + "name" : "setCreditCardExpiryDate" + }, + "acm002572jsd" : { + "type" : "ControlElement", + "id" : "acm002572jsd", + "name" : "getOrderItems" + }, + "acm002573jsd" : { + "type" : "ControlElement", + "id" : "acm002573jsd", + "name" : "setOrderItems" + }, + "acm002574jsd" : { + "type" : "ControlElement", + "id" : "acm002574jsd", + "name" : "getUser" + }, + "acm002575jsd" : { + "type" : "ControlElement", + "id" : "acm002575jsd", + "name" : "setUser" + }, + "acm002576jsd" : { + "type" : "ClassUnit", + "id" : "acm002576jsd", + "name" : "PersistenceOrder", + "compilationUnitId" : "acm002539jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001408jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002576jsd", "acm002599jsd", "acm002642jsd" ], + "content" : [ "acm002545jsd", "acm002546jsd", "acm002547jsd", "acm002548jsd", "acm002549jsd", "acm002550jsd", "acm002551jsd", "acm002552jsd", "acm002553jsd", "acm002554jsd", "acm002555jsd", "acm002556jsd", "acm002557jsd", "acm002558jsd", "acm002559jsd", "acm002560jsd", "acm002561jsd", "acm002562jsd", "acm002563jsd", "acm002564jsd", "acm002565jsd", "acm002566jsd", "acm002567jsd", "acm002568jsd", "acm002569jsd", "acm002570jsd", "acm002571jsd", "acm002572jsd", "acm002573jsd", "acm002574jsd", "acm002575jsd" ] + }, + "acm002577jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002577jsd", + "name" : "PersistenceOrderItem", + "parentId" : "acm002489jsd", + "content" : [ "acm002599jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002578jsd" : { + "type" : "CodePackage", + "id" : "acm002578jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002579jsd" ] + }, + "acm002579jsd" : { + "type" : "CodePackage", + "id" : "acm002579jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002580jsd" ] + }, + "acm002580jsd" : { + "type" : "CodePackage", + "id" : "acm002580jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002581jsd" ] + }, + "acm002581jsd" : { + "type" : "CodePackage", + "id" : "acm002581jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002582jsd" ] + }, + "acm002582jsd" : { + "type" : "CodePackage", + "id" : "acm002582jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002577jsd" ] + }, + "acm002583jsd" : { + "type" : "ControlElement", + "id" : "acm002583jsd", + "name" : "PersistenceOrderItem" + }, + "acm002584jsd" : { + "type" : "ControlElement", + "id" : "acm002584jsd", + "name" : "clearCaches" + }, + "acm002585jsd" : { + "type" : "ControlElement", + "id" : "acm002585jsd", + "name" : "getId" + }, + "acm002586jsd" : { + "type" : "ControlElement", + "id" : "acm002586jsd", + "name" : "setId" + }, + "acm002587jsd" : { + "type" : "ControlElement", + "id" : "acm002587jsd", + "name" : "getProductId" + }, + "acm002588jsd" : { + "type" : "ControlElement", + "id" : "acm002588jsd", + "name" : "setProductId" + }, + "acm002589jsd" : { + "type" : "ControlElement", + "id" : "acm002589jsd", + "name" : "getQuantity" + }, + "acm002590jsd" : { + "type" : "ControlElement", + "id" : "acm002590jsd", + "name" : "setQuantity" + }, + "acm002591jsd" : { + "type" : "ControlElement", + "id" : "acm002591jsd", + "name" : "getUnitPriceInCents" + }, + "acm002592jsd" : { + "type" : "ControlElement", + "id" : "acm002592jsd", + "name" : "setUnitPriceInCents" + }, + "acm002593jsd" : { + "type" : "ControlElement", + "id" : "acm002593jsd", + "name" : "getProduct" + }, + "acm002594jsd" : { + "type" : "ControlElement", + "id" : "acm002594jsd", + "name" : "setProduct" + }, + "acm002595jsd" : { + "type" : "ControlElement", + "id" : "acm002595jsd", + "name" : "getOrderId" + }, + "acm002596jsd" : { + "type" : "ControlElement", + "id" : "acm002596jsd", + "name" : "setOrderId" + }, + "acm002597jsd" : { + "type" : "ControlElement", + "id" : "acm002597jsd", + "name" : "getOrder" + }, + "acm002598jsd" : { + "type" : "ControlElement", + "id" : "acm002598jsd", + "name" : "setOrder" + }, + "acm002599jsd" : { + "type" : "ClassUnit", + "id" : "acm002599jsd", + "name" : "PersistenceOrderItem", + "compilationUnitId" : "acm002577jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001428jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002576jsd", "acm002599jsd", "acm002621jsd" ], + "content" : [ "acm002583jsd", "acm002584jsd", "acm002585jsd", "acm002586jsd", "acm002587jsd", "acm002588jsd", "acm002589jsd", "acm002590jsd", "acm002591jsd", "acm002592jsd", "acm002593jsd", "acm002594jsd", "acm002595jsd", "acm002596jsd", "acm002597jsd", "acm002598jsd" ] + }, + "acm002600jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002600jsd", + "name" : "PersistenceProduct", + "parentId" : "acm002489jsd", + "content" : [ "acm002621jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002601jsd" : { + "type" : "CodePackage", + "id" : "acm002601jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002602jsd" ] + }, + "acm002602jsd" : { + "type" : "CodePackage", + "id" : "acm002602jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002603jsd" ] + }, + "acm002603jsd" : { + "type" : "CodePackage", + "id" : "acm002603jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002604jsd" ] + }, + "acm002604jsd" : { + "type" : "CodePackage", + "id" : "acm002604jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002605jsd" ] + }, + "acm002605jsd" : { + "type" : "CodePackage", + "id" : "acm002605jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002600jsd" ] + }, + "acm002606jsd" : { + "type" : "ControlElement", + "id" : "acm002606jsd", + "name" : "clearCaches" + }, + "acm002607jsd" : { + "type" : "ControlElement", + "id" : "acm002607jsd", + "name" : "PersistenceProduct" + }, + "acm002608jsd" : { + "type" : "ControlElement", + "id" : "acm002608jsd", + "name" : "setId" + }, + "acm002609jsd" : { + "type" : "ControlElement", + "id" : "acm002609jsd", + "name" : "getId" + }, + "acm002610jsd" : { + "type" : "ControlElement", + "id" : "acm002610jsd", + "name" : "getCategoryId" + }, + "acm002611jsd" : { + "type" : "ControlElement", + "id" : "acm002611jsd", + "name" : "setCategoryId" + }, + "acm002612jsd" : { + "type" : "ControlElement", + "id" : "acm002612jsd", + "name" : "getName" + }, + "acm002613jsd" : { + "type" : "ControlElement", + "id" : "acm002613jsd", + "name" : "setName" + }, + "acm002614jsd" : { + "type" : "ControlElement", + "id" : "acm002614jsd", + "name" : "getDescription" + }, + "acm002615jsd" : { + "type" : "ControlElement", + "id" : "acm002615jsd", + "name" : "setDescription" + }, + "acm002616jsd" : { + "type" : "ControlElement", + "id" : "acm002616jsd", + "name" : "getListPriceInCents" + }, + "acm002617jsd" : { + "type" : "ControlElement", + "id" : "acm002617jsd", + "name" : "setListPriceInCents" + }, + "acm002618jsd" : { + "type" : "ControlElement", + "id" : "acm002618jsd", + "name" : "getCategory" + }, + "acm002619jsd" : { + "type" : "ControlElement", + "id" : "acm002619jsd", + "name" : "setCategory" + }, + "acm002620jsd" : { + "type" : "ControlElement", + "id" : "acm002620jsd", + "name" : "getOrderItems" + }, + "acm002621jsd" : { + "type" : "ClassUnit", + "id" : "acm002621jsd", + "name" : "PersistenceProduct", + "compilationUnitId" : "acm002600jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001448jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002538jsd", "acm002599jsd", "acm002621jsd" ], + "content" : [ "acm002606jsd", "acm002607jsd", "acm002608jsd", "acm002609jsd", "acm002610jsd", "acm002611jsd", "acm002612jsd", "acm002613jsd", "acm002614jsd", "acm002615jsd", "acm002616jsd", "acm002617jsd", "acm002618jsd", "acm002619jsd", "acm002620jsd" ] + }, + "acm002622jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002622jsd", + "name" : "PersistenceUser", + "parentId" : "acm002489jsd", + "content" : [ "acm002642jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002623jsd" : { + "type" : "CodePackage", + "id" : "acm002623jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002624jsd" ] + }, + "acm002624jsd" : { + "type" : "CodePackage", + "id" : "acm002624jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002625jsd" ] + }, + "acm002625jsd" : { + "type" : "CodePackage", + "id" : "acm002625jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002626jsd" ] + }, + "acm002626jsd" : { + "type" : "CodePackage", + "id" : "acm002626jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002627jsd" ] + }, + "acm002627jsd" : { + "type" : "CodePackage", + "id" : "acm002627jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002622jsd" ] + }, + "acm002628jsd" : { + "type" : "ControlElement", + "id" : "acm002628jsd", + "name" : "deleteOrders" + }, + "acm002629jsd" : { + "type" : "ControlElement", + "id" : "acm002629jsd", + "name" : "clearCaches" + }, + "acm002630jsd" : { + "type" : "ControlElement", + "id" : "acm002630jsd", + "name" : "PersistenceUser" + }, + "acm002631jsd" : { + "type" : "ControlElement", + "id" : "acm002631jsd", + "name" : "getId" + }, + "acm002632jsd" : { + "type" : "ControlElement", + "id" : "acm002632jsd", + "name" : "setId" + }, + "acm002633jsd" : { + "type" : "ControlElement", + "id" : "acm002633jsd", + "name" : "getUserName" + }, + "acm002634jsd" : { + "type" : "ControlElement", + "id" : "acm002634jsd", + "name" : "setUserName" + }, + "acm002635jsd" : { + "type" : "ControlElement", + "id" : "acm002635jsd", + "name" : "getPassword" + }, + "acm002636jsd" : { + "type" : "ControlElement", + "id" : "acm002636jsd", + "name" : "setPassword" + }, + "acm002637jsd" : { + "type" : "ControlElement", + "id" : "acm002637jsd", + "name" : "getRealName" + }, + "acm002638jsd" : { + "type" : "ControlElement", + "id" : "acm002638jsd", + "name" : "setRealName" + }, + "acm002639jsd" : { + "type" : "ControlElement", + "id" : "acm002639jsd", + "name" : "getEmail" + }, + "acm002640jsd" : { + "type" : "ControlElement", + "id" : "acm002640jsd", + "name" : "setEmail" + }, + "acm002641jsd" : { + "type" : "ControlElement", + "id" : "acm002641jsd", + "name" : "getOrders" + }, + "acm002642jsd" : { + "type" : "ClassUnit", + "id" : "acm002642jsd", + "name" : "PersistenceUser", + "compilationUnitId" : "acm002622jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm001468jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002576jsd", "acm002642jsd" ], + "content" : [ "acm002628jsd", "acm002629jsd", "acm002630jsd", "acm002631jsd", "acm002632jsd", "acm002633jsd", "acm002634jsd", "acm002635jsd", "acm002636jsd", "acm002637jsd", "acm002638jsd", "acm002639jsd", "acm002640jsd", "acm002641jsd" ] + }, + "acm002643jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002643jsd", + "name" : "ProductRepository", + "parentId" : "acm002489jsd", + "content" : [ "acm002656jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002644jsd" : { + "type" : "CodePackage", + "id" : "acm002644jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002645jsd" ] + }, + "acm002645jsd" : { + "type" : "CodePackage", + "id" : "acm002645jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002646jsd" ] + }, + "acm002646jsd" : { + "type" : "CodePackage", + "id" : "acm002646jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002647jsd" ] + }, + "acm002647jsd" : { + "type" : "CodePackage", + "id" : "acm002647jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002648jsd" ] + }, + "acm002648jsd" : { + "type" : "CodePackage", + "id" : "acm002648jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002643jsd" ] + }, + "acm002649jsd" : { + "type" : "ControlElement", + "id" : "acm002649jsd", + "name" : "ProductRepository" + }, + "acm002650jsd" : { + "type" : "ControlElement", + "id" : "acm002650jsd", + "name" : "createEntity" + }, + "acm002651jsd" : { + "type" : "ControlElement", + "id" : "acm002651jsd", + "name" : "updateEntity" + }, + "acm002652jsd" : { + "type" : "ControlElement", + "id" : "acm002652jsd", + "name" : "getAllEntities" + }, + "acm002653jsd" : { + "type" : "ControlElement", + "id" : "acm002653jsd", + "name" : "getProductCount" + }, + "acm002654jsd" : { + "type" : "ControlElement", + "id" : "acm002654jsd", + "name" : "getId" + }, + "acm002655jsd" : { + "type" : "ControlElement", + "id" : "acm002655jsd", + "name" : "getEntityClass" + }, + "acm002656jsd" : { + "type" : "ClassUnit", + "id" : "acm002656jsd", + "name" : "ProductRepository", + "compilationUnitId" : "acm002643jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002707jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm002538jsd", "acm002621jsd", "acm002656jsd" ], + "content" : [ "acm002649jsd", "acm002650jsd", "acm002651jsd", "acm002652jsd", "acm002653jsd", "acm002654jsd", "acm002655jsd" ] + }, + "acm002657jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002657jsd", + "name" : "UserRepository", + "parentId" : "acm002489jsd", + "content" : [ "acm002669jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002658jsd" : { + "type" : "CodePackage", + "id" : "acm002658jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002659jsd" ] + }, + "acm002659jsd" : { + "type" : "CodePackage", + "id" : "acm002659jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002660jsd" ] + }, + "acm002660jsd" : { + "type" : "CodePackage", + "id" : "acm002660jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002661jsd" ] + }, + "acm002661jsd" : { + "type" : "CodePackage", + "id" : "acm002661jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002662jsd" ] + }, + "acm002662jsd" : { + "type" : "CodePackage", + "id" : "acm002662jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002657jsd" ] + }, + "acm002663jsd" : { + "type" : "ControlElement", + "id" : "acm002663jsd", + "name" : "UserRepository" + }, + "acm002664jsd" : { + "type" : "ControlElement", + "id" : "acm002664jsd", + "name" : "createEntity" + }, + "acm002665jsd" : { + "type" : "ControlElement", + "id" : "acm002665jsd", + "name" : "updateEntity" + }, + "acm002666jsd" : { + "type" : "ControlElement", + "id" : "acm002666jsd", + "name" : "getId" + }, + "acm002667jsd" : { + "type" : "ControlElement", + "id" : "acm002667jsd", + "name" : "getEntityClass" + }, + "acm002668jsd" : { + "type" : "ControlElement", + "id" : "acm002668jsd", + "name" : "getUserByName" + }, + "acm002669jsd" : { + "type" : "ClassUnit", + "id" : "acm002669jsd", + "name" : "UserRepository", + "compilationUnitId" : "acm002657jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002707jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001468jsd", "acm002642jsd", "acm002669jsd" ], + "content" : [ "acm002663jsd", "acm002664jsd", "acm002665jsd", "acm002666jsd", "acm002667jsd", "acm002668jsd" ] + }, + "acm002670jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002670jsd", + "name" : "LocalDateAttributeConverter", + "parentId" : "acm002676jsd", + "content" : [ "acm002679jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain", "converters" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002671jsd" : { + "type" : "CodePackage", + "id" : "acm002671jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002672jsd" ] + }, + "acm002672jsd" : { + "type" : "CodePackage", + "id" : "acm002672jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002673jsd" ] + }, + "acm002673jsd" : { + "type" : "CodePackage", + "id" : "acm002673jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002674jsd" ] + }, + "acm002674jsd" : { + "type" : "CodePackage", + "id" : "acm002674jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002675jsd" ] + }, + "acm002675jsd" : { + "type" : "CodePackage", + "id" : "acm002675jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002676jsd" ] + }, + "acm002676jsd" : { + "type" : "CodePackage", + "id" : "acm002676jsd", + "name" : "converters", + "parentId" : "acm002489jsd", + "content" : [ "acm002670jsd", "acm002680jsd" ] + }, + "acm002677jsd" : { + "type" : "ControlElement", + "id" : "acm002677jsd", + "name" : "convertToDatabaseColumn" + }, + "acm002678jsd" : { + "type" : "ControlElement", + "id" : "acm002678jsd", + "name" : "convertToEntityAttribute" + }, + "acm002679jsd" : { + "type" : "ClassUnit", + "id" : "acm002679jsd", + "name" : "LocalDateAttributeConverter", + "compilationUnitId" : "acm002670jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002677jsd", "acm002678jsd" ] + }, + "acm002680jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002680jsd", + "name" : "LocalDateTimeAttributeConverter", + "parentId" : "acm002676jsd", + "content" : [ "acm002689jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "domain", "converters" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002681jsd" : { + "type" : "CodePackage", + "id" : "acm002681jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002682jsd" ] + }, + "acm002682jsd" : { + "type" : "CodePackage", + "id" : "acm002682jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002683jsd" ] + }, + "acm002683jsd" : { + "type" : "CodePackage", + "id" : "acm002683jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002684jsd" ] + }, + "acm002684jsd" : { + "type" : "CodePackage", + "id" : "acm002684jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002685jsd" ] + }, + "acm002685jsd" : { + "type" : "CodePackage", + "id" : "acm002685jsd", + "name" : "domain", + "parentId" : null, + "content" : [ "acm002686jsd" ] + }, + "acm002686jsd" : { + "type" : "CodePackage", + "id" : "acm002686jsd", + "name" : "converters", + "parentId" : null, + "content" : [ "acm002680jsd" ] + }, + "acm002687jsd" : { + "type" : "ControlElement", + "id" : "acm002687jsd", + "name" : "convertToDatabaseColumn" + }, + "acm002688jsd" : { + "type" : "ControlElement", + "id" : "acm002688jsd", + "name" : "convertToEntityAttribute" + }, + "acm002689jsd" : { + "type" : "ClassUnit", + "id" : "acm002689jsd", + "name" : "LocalDateTimeAttributeConverter", + "compilationUnitId" : "acm002680jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002687jsd", "acm002688jsd" ] + }, + "acm002690jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002690jsd", + "name" : "AbstractPersistenceRepository", + "parentId" : "acm002695jsd", + "content" : [ "acm002707jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002691jsd" : { + "type" : "CodePackage", + "id" : "acm002691jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002692jsd" ] + }, + "acm002692jsd" : { + "type" : "CodePackage", + "id" : "acm002692jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002693jsd" ] + }, + "acm002693jsd" : { + "type" : "CodePackage", + "id" : "acm002693jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002694jsd" ] + }, + "acm002694jsd" : { + "type" : "CodePackage", + "id" : "acm002694jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002695jsd" ] + }, + "acm002695jsd" : { + "type" : "CodePackage", + "id" : "acm002695jsd", + "name" : "repository", + "parentId" : "acm002477jsd", + "content" : [ "acm002690jsd", "acm002708jsd", "acm002726jsd", "acm002749jsd", "acm002760jsd", "acm002896jsd" ] + }, + "acm002696jsd" : { + "type" : "ControlElement", + "id" : "acm002696jsd", + "name" : "getId" + }, + "acm002697jsd" : { + "type" : "ControlElement", + "id" : "acm002697jsd", + "name" : "getEntityClass" + }, + "acm002698jsd" : { + "type" : "ControlElement", + "id" : "acm002698jsd", + "name" : "getEMF" + }, + "acm002699jsd" : { + "type" : "ControlElement", + "id" : "acm002699jsd", + "name" : "getEM" + }, + "acm002700jsd" : { + "type" : "ControlElement", + "id" : "acm002700jsd", + "name" : "createEntity" + }, + "acm002701jsd" : { + "type" : "ControlElement", + "id" : "acm002701jsd", + "name" : "updateEntity" + }, + "acm002702jsd" : { + "type" : "ControlElement", + "id" : "acm002702jsd", + "name" : "getEntity" + }, + "acm002703jsd" : { + "type" : "ControlElement", + "id" : "acm002703jsd", + "name" : "getAllEntities" + }, + "acm002704jsd" : { + "type" : "ControlElement", + "id" : "acm002704jsd", + "name" : "getAllEntities" + }, + "acm002705jsd" : { + "type" : "ControlElement", + "id" : "acm002705jsd", + "name" : "removeEntity" + }, + "acm002706jsd" : { + "type" : "ControlElement", + "id" : "acm002706jsd", + "name" : "resultsWithStartAndLimit" + }, + "acm002707jsd" : { + "type" : "ClassUnit", + "id" : "acm002707jsd", + "name" : "AbstractPersistenceRepository", + "compilationUnitId" : "acm002690jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002696jsd", "acm002697jsd", "acm002698jsd", "acm002699jsd", "acm002700jsd", "acm002701jsd", "acm002702jsd", "acm002703jsd", "acm002704jsd", "acm002705jsd", "acm002706jsd" ] + }, + "acm002708jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002708jsd", + "name" : "CacheManager", + "parentId" : "acm002695jsd", + "content" : [ "acm002725jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002709jsd" : { + "type" : "CodePackage", + "id" : "acm002709jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002710jsd" ] + }, + "acm002710jsd" : { + "type" : "CodePackage", + "id" : "acm002710jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002711jsd" ] + }, + "acm002711jsd" : { + "type" : "CodePackage", + "id" : "acm002711jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002712jsd" ] + }, + "acm002712jsd" : { + "type" : "CodePackage", + "id" : "acm002712jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002713jsd" ] + }, + "acm002713jsd" : { + "type" : "CodePackage", + "id" : "acm002713jsd", + "name" : "repository", + "parentId" : null, + "content" : [ "acm002708jsd" ] + }, + "acm002714jsd" : { + "type" : "ControlElement", + "id" : "acm002714jsd", + "name" : "CacheManager" + }, + "acm002715jsd" : { + "type" : "ControlElement", + "id" : "acm002715jsd", + "name" : "clearAllCaches" + }, + "acm002716jsd" : { + "type" : "ControlElement", + "id" : "acm002716jsd", + "name" : "clearCache" + }, + "acm002717jsd" : { + "type" : "ControlElement", + "id" : "acm002717jsd", + "name" : "clearRemoteCache" + }, + "acm002718jsd" : { + "type" : "ControlElement", + "id" : "acm002718jsd", + "name" : "clearLocalCacheOnly" + }, + "acm002719jsd" : { + "type" : "ControlElement", + "id" : "acm002719jsd", + "name" : "clearLocalCacheOnly" + }, + "acm002720jsd" : { + "type" : "ControlElement", + "id" : "acm002720jsd", + "name" : "clearRemoteCacheREST" + }, + "acm002721jsd" : { + "type" : "ControlElement", + "id" : "acm002721jsd", + "name" : "resetAllEMFs" + }, + "acm002722jsd" : { + "type" : "ControlElement", + "id" : "acm002722jsd", + "name" : "resetRemoteEMFs" + }, + "acm002723jsd" : { + "type" : "ControlElement", + "id" : "acm002723jsd", + "name" : "resetLocalEMF" + }, + "acm002724jsd" : { + "type" : "ControlElement", + "id" : "acm002724jsd", + "name" : "resetRemoteEMF" + }, + "acm002725jsd" : { + "type" : "ClassUnit", + "id" : "acm002725jsd", + "name" : "CacheManager", + "compilationUnitId" : "acm002708jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002725jsd" ], + "content" : [ "acm002714jsd", "acm002715jsd", "acm002716jsd", "acm002717jsd", "acm002718jsd", "acm002719jsd", "acm002720jsd", "acm002721jsd", "acm002722jsd", "acm002723jsd", "acm002724jsd" ] + }, + "acm002726jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002726jsd", + "name" : "DataGenerator", + "parentId" : "acm002695jsd", + "content" : [ "acm002748jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002727jsd" : { + "type" : "CodePackage", + "id" : "acm002727jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002728jsd" ] + }, + "acm002728jsd" : { + "type" : "CodePackage", + "id" : "acm002728jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002729jsd" ] + }, + "acm002729jsd" : { + "type" : "CodePackage", + "id" : "acm002729jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002730jsd" ] + }, + "acm002730jsd" : { + "type" : "CodePackage", + "id" : "acm002730jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002731jsd" ] + }, + "acm002731jsd" : { + "type" : "CodePackage", + "id" : "acm002731jsd", + "name" : "repository", + "parentId" : null, + "content" : [ "acm002726jsd" ] + }, + "acm002732jsd" : { + "type" : "ControlElement", + "id" : "acm002732jsd", + "name" : "DataGenerator" + }, + "acm002733jsd" : { + "type" : "ControlElement", + "id" : "acm002733jsd", + "name" : "isDatabaseEmpty" + }, + "acm002734jsd" : { + "type" : "ControlElement", + "id" : "acm002734jsd", + "name" : "generateDatabaseContent" + }, + "acm002735jsd" : { + "type" : "ControlElement", + "id" : "acm002735jsd", + "name" : "generateCategories" + }, + "acm002736jsd" : { + "type" : "ControlElement", + "id" : "acm002736jsd", + "name" : "generateProducts" + }, + "acm002737jsd" : { + "type" : "ControlElement", + "id" : "acm002737jsd", + "name" : "generateUsers" + }, + "acm002738jsd" : { + "type" : "ControlElement", + "id" : "acm002738jsd", + "name" : "generateOrders" + }, + "acm002739jsd" : { + "type" : "ControlElement", + "id" : "acm002739jsd", + "name" : "generateOrderItem" + }, + "acm002740jsd" : { + "type" : "ControlElement", + "id" : "acm002740jsd", + "name" : "fourDigits" + }, + "acm002741jsd" : { + "type" : "ControlElement", + "id" : "acm002741jsd", + "name" : "dropAndCreateTables" + }, + "acm002742jsd" : { + "type" : "ControlElement", + "id" : "acm002742jsd", + "name" : "setGenerationFinishedFlag" + }, + "acm002743jsd" : { + "type" : "ControlElement", + "id" : "acm002743jsd", + "name" : "getGenerationFinishedFlag" + }, + "acm002744jsd" : { + "type" : "ControlElement", + "id" : "acm002744jsd", + "name" : "isMaintenanceMode" + }, + "acm002745jsd" : { + "type" : "ControlElement", + "id" : "acm002745jsd", + "name" : "setMaintenanceModeInternal" + }, + "acm002746jsd" : { + "type" : "ControlElement", + "id" : "acm002746jsd", + "name" : "setMaintenanceModeGlobal" + }, + "acm002747jsd" : { + "type" : "ControlElement", + "id" : "acm002747jsd", + "name" : "setMaintenanceModeExternal" + }, + "acm002748jsd" : { + "type" : "ClassUnit", + "id" : "acm002748jsd", + "name" : "DataGenerator", + "compilationUnitId" : "acm002726jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001408jsd", "acm001428jsd", "acm001448jsd", "acm002538jsd", "acm002748jsd", "acm002759jsd" ], + "content" : [ "acm002732jsd", "acm002733jsd", "acm002734jsd", "acm002735jsd", "acm002736jsd", "acm002737jsd", "acm002738jsd", "acm002739jsd", "acm002740jsd", "acm002741jsd", "acm002742jsd", "acm002743jsd", "acm002744jsd", "acm002745jsd", "acm002746jsd", "acm002747jsd" ] + }, + "acm002749jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002749jsd", + "name" : "DatabaseManagementEntity", + "parentId" : "acm002695jsd", + "content" : [ "acm002759jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002750jsd" : { + "type" : "CodePackage", + "id" : "acm002750jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002751jsd" ] + }, + "acm002751jsd" : { + "type" : "CodePackage", + "id" : "acm002751jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002752jsd" ] + }, + "acm002752jsd" : { + "type" : "CodePackage", + "id" : "acm002752jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002753jsd" ] + }, + "acm002753jsd" : { + "type" : "CodePackage", + "id" : "acm002753jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002754jsd" ] + }, + "acm002754jsd" : { + "type" : "CodePackage", + "id" : "acm002754jsd", + "name" : "repository", + "parentId" : null, + "content" : [ "acm002749jsd" ] + }, + "acm002755jsd" : { + "type" : "ControlElement", + "id" : "acm002755jsd", + "name" : "DatabaseManagementEntity" + }, + "acm002756jsd" : { + "type" : "ControlElement", + "id" : "acm002756jsd", + "name" : "getId" + }, + "acm002757jsd" : { + "type" : "ControlElement", + "id" : "acm002757jsd", + "name" : "isFinishedGenerating" + }, + "acm002758jsd" : { + "type" : "ControlElement", + "id" : "acm002758jsd", + "name" : "setFinishedGenerating" + }, + "acm002759jsd" : { + "type" : "ClassUnit", + "id" : "acm002759jsd", + "name" : "DatabaseManagementEntity", + "compilationUnitId" : "acm002749jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002755jsd", "acm002756jsd", "acm002757jsd", "acm002758jsd" ] + }, + "acm002760jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002760jsd", + "name" : "EMFManager", + "parentId" : "acm002695jsd", + "content" : [ "acm002772jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002761jsd" : { + "type" : "CodePackage", + "id" : "acm002761jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002762jsd" ] + }, + "acm002762jsd" : { + "type" : "CodePackage", + "id" : "acm002762jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002763jsd" ] + }, + "acm002763jsd" : { + "type" : "CodePackage", + "id" : "acm002763jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002764jsd" ] + }, + "acm002764jsd" : { + "type" : "CodePackage", + "id" : "acm002764jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002765jsd" ] + }, + "acm002765jsd" : { + "type" : "CodePackage", + "id" : "acm002765jsd", + "name" : "repository", + "parentId" : null, + "content" : [ "acm002760jsd" ] + }, + "acm002766jsd" : { + "type" : "ControlElement", + "id" : "acm002766jsd", + "name" : "EMFManager" + }, + "acm002767jsd" : { + "type" : "ControlElement", + "id" : "acm002767jsd", + "name" : "configureEMFWithProperties" + }, + "acm002768jsd" : { + "type" : "ControlElement", + "id" : "acm002768jsd", + "name" : "getEMF" + }, + "acm002769jsd" : { + "type" : "ControlElement", + "id" : "acm002769jsd", + "name" : "clearEMF" + }, + "acm002770jsd" : { + "type" : "ControlElement", + "id" : "acm002770jsd", + "name" : "createPersistencePropertiesFromJavaEnv" + }, + "acm002771jsd" : { + "type" : "ControlElement", + "id" : "acm002771jsd", + "name" : "createPersistencePropertieForInMemoryDB" + }, + "acm002772jsd" : { + "type" : "ClassUnit", + "id" : "acm002772jsd", + "name" : "EMFManager", + "compilationUnitId" : "acm002760jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002772jsd" ], + "content" : [ "acm002766jsd", "acm002767jsd", "acm002768jsd", "acm002769jsd", "acm002770jsd", "acm002771jsd" ] + }, + "acm002773jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002773jsd", + "name" : "CacheManagerEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002782jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002774jsd" : { + "type" : "CodePackage", + "id" : "acm002774jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002775jsd" ] + }, + "acm002775jsd" : { + "type" : "CodePackage", + "id" : "acm002775jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002776jsd" ] + }, + "acm002776jsd" : { + "type" : "CodePackage", + "id" : "acm002776jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002777jsd" ] + }, + "acm002777jsd" : { + "type" : "CodePackage", + "id" : "acm002777jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002778jsd" ] + }, + "acm002778jsd" : { + "type" : "CodePackage", + "id" : "acm002778jsd", + "name" : "rest", + "parentId" : "acm002477jsd", + "content" : [ "acm002773jsd", "acm002783jsd", "acm002795jsd", "acm002807jsd", "acm002820jsd", "acm002834jsd", "acm002848jsd" ] + }, + "acm002779jsd" : { + "type" : "ControlElement", + "id" : "acm002779jsd", + "name" : "clearClassCache" + }, + "acm002780jsd" : { + "type" : "ControlElement", + "id" : "acm002780jsd", + "name" : "clearAllCaches" + }, + "acm002781jsd" : { + "type" : "ControlElement", + "id" : "acm002781jsd", + "name" : "clearEMF" + }, + "acm002782jsd" : { + "type" : "ClassUnit", + "id" : "acm002782jsd", + "name" : "CacheManagerEndpoint", + "compilationUnitId" : "acm002773jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002779jsd", "acm002780jsd", "acm002781jsd" ] + }, + "acm002783jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002783jsd", + "name" : "CategoryEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002794jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002784jsd" : { + "type" : "CodePackage", + "id" : "acm002784jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002785jsd" ] + }, + "acm002785jsd" : { + "type" : "CodePackage", + "id" : "acm002785jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002786jsd" ] + }, + "acm002786jsd" : { + "type" : "CodePackage", + "id" : "acm002786jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002787jsd" ] + }, + "acm002787jsd" : { + "type" : "CodePackage", + "id" : "acm002787jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002788jsd" ] + }, + "acm002788jsd" : { + "type" : "CodePackage", + "id" : "acm002788jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002783jsd" ] + }, + "acm002789jsd" : { + "type" : "ControlElement", + "id" : "acm002789jsd", + "name" : "createEntity" + }, + "acm002790jsd" : { + "type" : "ControlElement", + "id" : "acm002790jsd", + "name" : "findEntityById" + }, + "acm002791jsd" : { + "type" : "ControlElement", + "id" : "acm002791jsd", + "name" : "listAllEntities" + }, + "acm002792jsd" : { + "type" : "ControlElement", + "id" : "acm002792jsd", + "name" : "updateEntity" + }, + "acm002793jsd" : { + "type" : "ControlElement", + "id" : "acm002793jsd", + "name" : "deleteEntity" + }, + "acm002794jsd" : { + "type" : "ClassUnit", + "id" : "acm002794jsd", + "name" : "CategoryEndpoint", + "compilationUnitId" : "acm002783jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003841jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd" ], + "content" : [ "acm002789jsd", "acm002790jsd", "acm002791jsd", "acm002792jsd", "acm002793jsd" ] + }, + "acm002795jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002795jsd", + "name" : "DatabaseGenerationEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002806jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002796jsd" : { + "type" : "CodePackage", + "id" : "acm002796jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002797jsd" ] + }, + "acm002797jsd" : { + "type" : "CodePackage", + "id" : "acm002797jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002798jsd" ] + }, + "acm002798jsd" : { + "type" : "CodePackage", + "id" : "acm002798jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002799jsd" ] + }, + "acm002799jsd" : { + "type" : "CodePackage", + "id" : "acm002799jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002800jsd" ] + }, + "acm002800jsd" : { + "type" : "CodePackage", + "id" : "acm002800jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002795jsd" ] + }, + "acm002801jsd" : { + "type" : "ControlElement", + "id" : "acm002801jsd", + "name" : "generateDataBase" + }, + "acm002802jsd" : { + "type" : "ControlElement", + "id" : "acm002802jsd", + "name" : "parseQuery" + }, + "acm002803jsd" : { + "type" : "ControlElement", + "id" : "acm002803jsd", + "name" : "isFinshed" + }, + "acm002804jsd" : { + "type" : "ControlElement", + "id" : "acm002804jsd", + "name" : "setMaintenanceMode" + }, + "acm002805jsd" : { + "type" : "ControlElement", + "id" : "acm002805jsd", + "name" : "isMaintenance" + }, + "acm002806jsd" : { + "type" : "ClassUnit", + "id" : "acm002806jsd", + "name" : "DatabaseGenerationEndpoint", + "compilationUnitId" : "acm002795jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002806jsd" ], + "content" : [ "acm002801jsd", "acm002802jsd", "acm002803jsd", "acm002804jsd", "acm002805jsd" ] + }, + "acm002807jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002807jsd", + "name" : "OrderEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002819jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002808jsd" : { + "type" : "CodePackage", + "id" : "acm002808jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002809jsd" ] + }, + "acm002809jsd" : { + "type" : "CodePackage", + "id" : "acm002809jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002810jsd" ] + }, + "acm002810jsd" : { + "type" : "CodePackage", + "id" : "acm002810jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002811jsd" ] + }, + "acm002811jsd" : { + "type" : "CodePackage", + "id" : "acm002811jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002812jsd" ] + }, + "acm002812jsd" : { + "type" : "CodePackage", + "id" : "acm002812jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002807jsd" ] + }, + "acm002813jsd" : { + "type" : "ControlElement", + "id" : "acm002813jsd", + "name" : "createEntity" + }, + "acm002814jsd" : { + "type" : "ControlElement", + "id" : "acm002814jsd", + "name" : "findEntityById" + }, + "acm002815jsd" : { + "type" : "ControlElement", + "id" : "acm002815jsd", + "name" : "listAllEntities" + }, + "acm002816jsd" : { + "type" : "ControlElement", + "id" : "acm002816jsd", + "name" : "updateEntity" + }, + "acm002817jsd" : { + "type" : "ControlElement", + "id" : "acm002817jsd", + "name" : "deleteEntity" + }, + "acm002818jsd" : { + "type" : "ControlElement", + "id" : "acm002818jsd", + "name" : "listAllForUser" + }, + "acm002819jsd" : { + "type" : "ClassUnit", + "id" : "acm002819jsd", + "name" : "OrderEndpoint", + "compilationUnitId" : "acm002807jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003841jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd" ], + "content" : [ "acm002813jsd", "acm002814jsd", "acm002815jsd", "acm002816jsd", "acm002817jsd", "acm002818jsd" ] + }, + "acm002820jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002820jsd", + "name" : "OrderItemEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002833jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002821jsd" : { + "type" : "CodePackage", + "id" : "acm002821jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002822jsd" ] + }, + "acm002822jsd" : { + "type" : "CodePackage", + "id" : "acm002822jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002823jsd" ] + }, + "acm002823jsd" : { + "type" : "CodePackage", + "id" : "acm002823jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002824jsd" ] + }, + "acm002824jsd" : { + "type" : "CodePackage", + "id" : "acm002824jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002825jsd" ] + }, + "acm002825jsd" : { + "type" : "CodePackage", + "id" : "acm002825jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002820jsd" ] + }, + "acm002826jsd" : { + "type" : "ControlElement", + "id" : "acm002826jsd", + "name" : "createEntity" + }, + "acm002827jsd" : { + "type" : "ControlElement", + "id" : "acm002827jsd", + "name" : "findEntityById" + }, + "acm002828jsd" : { + "type" : "ControlElement", + "id" : "acm002828jsd", + "name" : "listAllEntities" + }, + "acm002829jsd" : { + "type" : "ControlElement", + "id" : "acm002829jsd", + "name" : "updateEntity" + }, + "acm002830jsd" : { + "type" : "ControlElement", + "id" : "acm002830jsd", + "name" : "deleteEntity" + }, + "acm002831jsd" : { + "type" : "ControlElement", + "id" : "acm002831jsd", + "name" : "listAllForProduct" + }, + "acm002832jsd" : { + "type" : "ControlElement", + "id" : "acm002832jsd", + "name" : "listAllForOrder" + }, + "acm002833jsd" : { + "type" : "ClassUnit", + "id" : "acm002833jsd", + "name" : "OrderItemEndpoint", + "compilationUnitId" : "acm002820jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003841jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd" ], + "content" : [ "acm002826jsd", "acm002827jsd", "acm002828jsd", "acm002829jsd", "acm002830jsd", "acm002831jsd", "acm002832jsd" ] + }, + "acm002834jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002834jsd", + "name" : "ProductEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002847jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002835jsd" : { + "type" : "CodePackage", + "id" : "acm002835jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002836jsd" ] + }, + "acm002836jsd" : { + "type" : "CodePackage", + "id" : "acm002836jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002837jsd" ] + }, + "acm002837jsd" : { + "type" : "CodePackage", + "id" : "acm002837jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002838jsd" ] + }, + "acm002838jsd" : { + "type" : "CodePackage", + "id" : "acm002838jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002839jsd" ] + }, + "acm002839jsd" : { + "type" : "CodePackage", + "id" : "acm002839jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002834jsd" ] + }, + "acm002840jsd" : { + "type" : "ControlElement", + "id" : "acm002840jsd", + "name" : "createEntity" + }, + "acm002841jsd" : { + "type" : "ControlElement", + "id" : "acm002841jsd", + "name" : "findEntityById" + }, + "acm002842jsd" : { + "type" : "ControlElement", + "id" : "acm002842jsd", + "name" : "listAllEntities" + }, + "acm002843jsd" : { + "type" : "ControlElement", + "id" : "acm002843jsd", + "name" : "updateEntity" + }, + "acm002844jsd" : { + "type" : "ControlElement", + "id" : "acm002844jsd", + "name" : "deleteEntity" + }, + "acm002845jsd" : { + "type" : "ControlElement", + "id" : "acm002845jsd", + "name" : "listAllForCategory" + }, + "acm002846jsd" : { + "type" : "ControlElement", + "id" : "acm002846jsd", + "name" : "countForCategory" + }, + "acm002847jsd" : { + "type" : "ClassUnit", + "id" : "acm002847jsd", + "name" : "ProductEndpoint", + "compilationUnitId" : "acm002834jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003841jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd" ], + "content" : [ "acm002840jsd", "acm002841jsd", "acm002842jsd", "acm002843jsd", "acm002844jsd", "acm002845jsd", "acm002846jsd" ] + }, + "acm002848jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002848jsd", + "name" : "UserEndpoint", + "parentId" : "acm002778jsd", + "content" : [ "acm002860jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002849jsd" : { + "type" : "CodePackage", + "id" : "acm002849jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002850jsd" ] + }, + "acm002850jsd" : { + "type" : "CodePackage", + "id" : "acm002850jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002851jsd" ] + }, + "acm002851jsd" : { + "type" : "CodePackage", + "id" : "acm002851jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002852jsd" ] + }, + "acm002852jsd" : { + "type" : "CodePackage", + "id" : "acm002852jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002853jsd" ] + }, + "acm002853jsd" : { + "type" : "CodePackage", + "id" : "acm002853jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm002848jsd" ] + }, + "acm002854jsd" : { + "type" : "ControlElement", + "id" : "acm002854jsd", + "name" : "createEntity" + }, + "acm002855jsd" : { + "type" : "ControlElement", + "id" : "acm002855jsd", + "name" : "findEntityById" + }, + "acm002856jsd" : { + "type" : "ControlElement", + "id" : "acm002856jsd", + "name" : "listAllEntities" + }, + "acm002857jsd" : { + "type" : "ControlElement", + "id" : "acm002857jsd", + "name" : "updateEntity" + }, + "acm002858jsd" : { + "type" : "ControlElement", + "id" : "acm002858jsd", + "name" : "deleteEntity" + }, + "acm002859jsd" : { + "type" : "ControlElement", + "id" : "acm002859jsd", + "name" : "findById" + }, + "acm002860jsd" : { + "type" : "ClassUnit", + "id" : "acm002860jsd", + "name" : "UserEndpoint", + "compilationUnitId" : "acm002848jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003841jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001468jsd" ], + "content" : [ "acm002854jsd", "acm002855jsd", "acm002856jsd", "acm002857jsd", "acm002858jsd", "acm002859jsd" ] + }, + "acm002861jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002861jsd", + "name" : "IndexServlet", + "parentId" : "acm002866jsd", + "content" : [ "acm002870jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "main", "java", "tools", "descartes", "teastore", "persistence", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002862jsd" : { + "type" : "CodePackage", + "id" : "acm002862jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002863jsd" ] + }, + "acm002863jsd" : { + "type" : "CodePackage", + "id" : "acm002863jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002864jsd" ] + }, + "acm002864jsd" : { + "type" : "CodePackage", + "id" : "acm002864jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002865jsd" ] + }, + "acm002865jsd" : { + "type" : "CodePackage", + "id" : "acm002865jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002866jsd" ] + }, + "acm002866jsd" : { + "type" : "CodePackage", + "id" : "acm002866jsd", + "name" : "servlet", + "parentId" : "acm002477jsd", + "content" : [ "acm002861jsd" ] + }, + "acm002867jsd" : { + "type" : "ControlElement", + "id" : "acm002867jsd", + "name" : "IndexServlet" + }, + "acm002868jsd" : { + "type" : "ControlElement", + "id" : "acm002868jsd", + "name" : "doGet" + }, + "acm002869jsd" : { + "type" : "ControlElement", + "id" : "acm002869jsd", + "name" : "doPost" + }, + "acm002870jsd" : { + "type" : "ClassUnit", + "id" : "acm002870jsd", + "name" : "IndexServlet", + "compilationUnitId" : "acm002861jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002867jsd", "acm002868jsd", "acm002869jsd" ] + }, + "acm002871jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002871jsd", + "name" : "DataGeneratorTest", + "parentId" : "acm002477jsd", + "content" : [ "acm002878jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "test", "java", "tools", "descartes", "teastore", "persistence" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002872jsd" : { + "type" : "CodePackage", + "id" : "acm002872jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002873jsd" ] + }, + "acm002873jsd" : { + "type" : "CodePackage", + "id" : "acm002873jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002874jsd" ] + }, + "acm002874jsd" : { + "type" : "CodePackage", + "id" : "acm002874jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002875jsd" ] + }, + "acm002875jsd" : { + "type" : "CodePackage", + "id" : "acm002875jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002871jsd" ] + }, + "acm002876jsd" : { + "type" : "ControlElement", + "id" : "acm002876jsd", + "name" : "setup" + }, + "acm002877jsd" : { + "type" : "ControlElement", + "id" : "acm002877jsd", + "name" : "testRepos" + }, + "acm002878jsd" : { + "type" : "ClassUnit", + "id" : "acm002878jsd", + "name" : "DataGeneratorTest", + "compilationUnitId" : "acm002871jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002538jsd" ], + "content" : [ "acm002876jsd", "acm002877jsd" ] + }, + "acm002879jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002879jsd", + "name" : "RegistrationDaemon", + "parentId" : "acm002477jsd", + "content" : [ "acm002887jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "test", "java", "tools", "descartes", "teastore", "persistence" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002880jsd" : { + "type" : "CodePackage", + "id" : "acm002880jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002881jsd" ] + }, + "acm002881jsd" : { + "type" : "CodePackage", + "id" : "acm002881jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002882jsd" ] + }, + "acm002882jsd" : { + "type" : "CodePackage", + "id" : "acm002882jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002883jsd" ] + }, + "acm002883jsd" : { + "type" : "CodePackage", + "id" : "acm002883jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002879jsd" ] + }, + "acm002884jsd" : { + "type" : "ControlElement", + "id" : "acm002884jsd", + "name" : "RegistrationDaemon" + }, + "acm002885jsd" : { + "type" : "ControlElement", + "id" : "acm002885jsd", + "name" : "contextDestroyed" + }, + "acm002886jsd" : { + "type" : "ControlElement", + "id" : "acm002886jsd", + "name" : "contextInitialized" + }, + "acm002887jsd" : { + "type" : "ClassUnit", + "id" : "acm002887jsd", + "name" : "RegistrationDaemon", + "compilationUnitId" : "acm002879jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002887jsd" ], + "content" : [ "acm002884jsd", "acm002885jsd", "acm002886jsd" ] + }, + "acm002888jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002888jsd", + "name" : "RepositoryTest", + "parentId" : "acm002477jsd", + "content" : [ "acm002895jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "test", "java", "tools", "descartes", "teastore", "persistence" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002889jsd" : { + "type" : "CodePackage", + "id" : "acm002889jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002890jsd" ] + }, + "acm002890jsd" : { + "type" : "CodePackage", + "id" : "acm002890jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002891jsd" ] + }, + "acm002891jsd" : { + "type" : "CodePackage", + "id" : "acm002891jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002892jsd" ] + }, + "acm002892jsd" : { + "type" : "CodePackage", + "id" : "acm002892jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002888jsd" ] + }, + "acm002893jsd" : { + "type" : "ControlElement", + "id" : "acm002893jsd", + "name" : "setup" + }, + "acm002894jsd" : { + "type" : "ControlElement", + "id" : "acm002894jsd", + "name" : "testRepos" + }, + "acm002895jsd" : { + "type" : "ClassUnit", + "id" : "acm002895jsd", + "name" : "RepositoryTest", + "compilationUnitId" : "acm002888jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001408jsd", "acm001428jsd", "acm001448jsd", "acm001468jsd", "acm002495jsd", "acm002509jsd", "acm002522jsd", "acm002538jsd", "acm002599jsd", "acm002621jsd", "acm002656jsd", "acm002669jsd" ], + "content" : [ "acm002893jsd", "acm002894jsd" ] + }, + "acm002896jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002896jsd", + "name" : "EMFManagerInitializer", + "parentId" : "acm002695jsd", + "content" : [ "acm002905jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.persistence", "src", "test", "java", "tools", "descartes", "teastore", "persistence", "repository" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002897jsd" : { + "type" : "CodePackage", + "id" : "acm002897jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002898jsd" ] + }, + "acm002898jsd" : { + "type" : "CodePackage", + "id" : "acm002898jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002899jsd" ] + }, + "acm002899jsd" : { + "type" : "CodePackage", + "id" : "acm002899jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002900jsd" ] + }, + "acm002900jsd" : { + "type" : "CodePackage", + "id" : "acm002900jsd", + "name" : "persistence", + "parentId" : null, + "content" : [ "acm002901jsd" ] + }, + "acm002901jsd" : { + "type" : "CodePackage", + "id" : "acm002901jsd", + "name" : "repository", + "parentId" : null, + "content" : [ "acm002896jsd" ] + }, + "acm002902jsd" : { + "type" : "ControlElement", + "id" : "acm002902jsd", + "name" : "EMFManagerInitializer" + }, + "acm002903jsd" : { + "type" : "ControlElement", + "id" : "acm002903jsd", + "name" : "initializeEMF" + }, + "acm002904jsd" : { + "type" : "ControlElement", + "id" : "acm002904jsd", + "name" : "createPersistencePropertiesForTesting" + }, + "acm002905jsd" : { + "type" : "ClassUnit", + "id" : "acm002905jsd", + "name" : "EMFManagerInitializer", + "compilationUnitId" : "acm002896jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002902jsd", "acm002903jsd", "acm002904jsd" ] + }, + "acm002906jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002906jsd", + "name" : "AbstractRecommender", + "parentId" : "acm002911jsd", + "content" : [ "acm002926jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002907jsd" : { + "type" : "CodePackage", + "id" : "acm002907jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002908jsd" ] + }, + "acm002908jsd" : { + "type" : "CodePackage", + "id" : "acm002908jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002909jsd" ] + }, + "acm002909jsd" : { + "type" : "CodePackage", + "id" : "acm002909jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002910jsd" ] + }, + "acm002910jsd" : { + "type" : "CodePackage", + "id" : "acm002910jsd", + "name" : "recommender", + "parentId" : "acm001340jsd", + "content" : [ "acm002911jsd", "acm003037jsd", "acm003063jsd" ] + }, + "acm002911jsd" : { + "type" : "CodePackage", + "id" : "acm002911jsd", + "name" : "algorithm", + "parentId" : "acm002910jsd", + "content" : [ "acm002906jsd", "acm002927jsd", "acm002936jsd", "acm002950jsd", "acm003107jsd", "acm003115jsd", "acm003140jsd", "acm003150jsd", "acm003162jsd", "acm003172jsd", "acm003183jsd", "acm002967jsd" ] + }, + "acm002912jsd" : { + "type" : "ControlElement", + "id" : "acm002912jsd", + "name" : "train" + }, + "acm002913jsd" : { + "type" : "ControlElement", + "id" : "acm002913jsd", + "name" : "executePreprocessing" + }, + "acm002914jsd" : { + "type" : "ControlElement", + "id" : "acm002914jsd", + "name" : "recommendProducts" + }, + "acm002915jsd" : { + "type" : "ControlElement", + "id" : "acm002915jsd", + "name" : "filterRecommendations" + }, + "acm002916jsd" : { + "type" : "ControlElement", + "id" : "acm002916jsd", + "name" : "createRanking" + }, + "acm002917jsd" : { + "type" : "ControlElement", + "id" : "acm002917jsd", + "name" : "execute" + }, + "acm002918jsd" : { + "type" : "ControlElement", + "id" : "acm002918jsd", + "name" : "findOrder" + }, + "acm002919jsd" : { + "type" : "ControlElement", + "id" : "acm002919jsd", + "name" : "getUserBuyingMatrix" + }, + "acm002920jsd" : { + "type" : "ControlElement", + "id" : "acm002920jsd", + "name" : "setUserBuyingMatrix" + }, + "acm002921jsd" : { + "type" : "ControlElement", + "id" : "acm002921jsd", + "name" : "getTotalProducts" + }, + "acm002922jsd" : { + "type" : "ControlElement", + "id" : "acm002922jsd", + "name" : "setTotalProducts" + }, + "acm002923jsd" : { + "type" : "ControlElement", + "id" : "acm002923jsd", + "name" : "getUserItemSets" + }, + "acm002924jsd" : { + "type" : "ControlElement", + "id" : "acm002924jsd", + "name" : "setUserItemSets" + }, + "acm002925jsd" : { + "type" : "ControlElement", + "id" : "acm002925jsd", + "name" : "createUserBuyingMatrix" + }, + "acm002926jsd" : { + "type" : "ClassUnit", + "id" : "acm002926jsd", + "name" : "AbstractRecommender", + "compilationUnitId" : "acm002906jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002935jsd" ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd", "acm002926jsd", "acm002949jsd" ], + "content" : [ "acm002912jsd", "acm002913jsd", "acm002914jsd", "acm002915jsd", "acm002916jsd", "acm002917jsd", "acm002918jsd", "acm002919jsd", "acm002920jsd", "acm002921jsd", "acm002922jsd", "acm002923jsd", "acm002924jsd", "acm002925jsd" ] + }, + "acm002927jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002927jsd", + "name" : "IRecommender", + "parentId" : "acm002911jsd", + "content" : [ "acm002935jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002928jsd" : { + "type" : "CodePackage", + "id" : "acm002928jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002929jsd" ] + }, + "acm002929jsd" : { + "type" : "CodePackage", + "id" : "acm002929jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002930jsd" ] + }, + "acm002930jsd" : { + "type" : "CodePackage", + "id" : "acm002930jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002931jsd" ] + }, + "acm002931jsd" : { + "type" : "CodePackage", + "id" : "acm002931jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002932jsd" ] + }, + "acm002932jsd" : { + "type" : "CodePackage", + "id" : "acm002932jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002927jsd" ] + }, + "acm002933jsd" : { + "type" : "ControlElement", + "id" : "acm002933jsd", + "name" : "train" + }, + "acm002934jsd" : { + "type" : "ControlElement", + "id" : "acm002934jsd", + "name" : "recommendProducts" + }, + "acm002935jsd" : { + "type" : "InterfaceUnit", + "id" : "acm002935jsd", + "name" : "IRecommender", + "compilationUnitId" : "acm002927jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd" ], + "content" : [ "acm002933jsd", "acm002934jsd" ] + }, + "acm002936jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002936jsd", + "name" : "OrderItemSet", + "parentId" : "acm002911jsd", + "content" : [ "acm002949jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002937jsd" : { + "type" : "CodePackage", + "id" : "acm002937jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002938jsd" ] + }, + "acm002938jsd" : { + "type" : "CodePackage", + "id" : "acm002938jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002939jsd" ] + }, + "acm002939jsd" : { + "type" : "CodePackage", + "id" : "acm002939jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002940jsd" ] + }, + "acm002940jsd" : { + "type" : "CodePackage", + "id" : "acm002940jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002941jsd" ] + }, + "acm002941jsd" : { + "type" : "CodePackage", + "id" : "acm002941jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002936jsd" ] + }, + "acm002942jsd" : { + "type" : "ControlElement", + "id" : "acm002942jsd", + "name" : "OrderItemSet" + }, + "acm002943jsd" : { + "type" : "ControlElement", + "id" : "acm002943jsd", + "name" : "getOrderset" + }, + "acm002944jsd" : { + "type" : "ControlElement", + "id" : "acm002944jsd", + "name" : "setOrderset" + }, + "acm002945jsd" : { + "type" : "ControlElement", + "id" : "acm002945jsd", + "name" : "getOrderId" + }, + "acm002946jsd" : { + "type" : "ControlElement", + "id" : "acm002946jsd", + "name" : "setOrderId" + }, + "acm002947jsd" : { + "type" : "ControlElement", + "id" : "acm002947jsd", + "name" : "getUserId" + }, + "acm002948jsd" : { + "type" : "ControlElement", + "id" : "acm002948jsd", + "name" : "setUserId" + }, + "acm002949jsd" : { + "type" : "ClassUnit", + "id" : "acm002949jsd", + "name" : "OrderItemSet", + "compilationUnitId" : "acm002936jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002942jsd", "acm002943jsd", "acm002944jsd", "acm002945jsd", "acm002946jsd", "acm002947jsd", "acm002948jsd" ] + }, + "acm002950jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002950jsd", + "name" : "RecommenderSelector", + "parentId" : "acm002911jsd", + "content" : [ "acm002960jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002951jsd" : { + "type" : "CodePackage", + "id" : "acm002951jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002952jsd" ] + }, + "acm002952jsd" : { + "type" : "CodePackage", + "id" : "acm002952jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002953jsd" ] + }, + "acm002953jsd" : { + "type" : "CodePackage", + "id" : "acm002953jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002954jsd" ] + }, + "acm002954jsd" : { + "type" : "CodePackage", + "id" : "acm002954jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002955jsd" ] + }, + "acm002955jsd" : { + "type" : "CodePackage", + "id" : "acm002955jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002950jsd" ] + }, + "acm002956jsd" : { + "type" : "ControlElement", + "id" : "acm002956jsd", + "name" : "RecommenderSelector" + }, + "acm002957jsd" : { + "type" : "ControlElement", + "id" : "acm002957jsd", + "name" : "recommendProducts" + }, + "acm002958jsd" : { + "type" : "ControlElement", + "id" : "acm002958jsd", + "name" : "getInstance" + }, + "acm002959jsd" : { + "type" : "ControlElement", + "id" : "acm002959jsd", + "name" : "train" + }, + "acm002960jsd" : { + "type" : "ClassUnit", + "id" : "acm002960jsd", + "name" : "RecommenderSelector", + "compilationUnitId" : "acm002950jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm002935jsd" ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd", "acm002935jsd", "acm002960jsd", "acm002978jsd", "acm002991jsd", "acm003009jsd", "acm003020jsd", "acm003031jsd" ], + "content" : [ "acm002956jsd", "acm002957jsd", "acm002958jsd", "acm002959jsd" ] + }, + "acm002961jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002961jsd", + "name" : "DummyRecommender", + "parentId" : "acm002967jsd", + "content" : [ "acm002969jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002962jsd" : { + "type" : "CodePackage", + "id" : "acm002962jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002963jsd" ] + }, + "acm002963jsd" : { + "type" : "CodePackage", + "id" : "acm002963jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002964jsd" ] + }, + "acm002964jsd" : { + "type" : "CodePackage", + "id" : "acm002964jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002965jsd" ] + }, + "acm002965jsd" : { + "type" : "CodePackage", + "id" : "acm002965jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002966jsd" ] + }, + "acm002966jsd" : { + "type" : "CodePackage", + "id" : "acm002966jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002967jsd" ] + }, + "acm002967jsd" : { + "type" : "CodePackage", + "id" : "acm002967jsd", + "name" : "impl", + "parentId" : "acm002911jsd", + "content" : [ "acm002961jsd", "acm002970jsd", "acm002986jsd", "acm003017jsd", "acm003028jsd" ] + }, + "acm002968jsd" : { + "type" : "ControlElement", + "id" : "acm002968jsd", + "name" : "execute" + }, + "acm002969jsd" : { + "type" : "ClassUnit", + "id" : "acm002969jsd", + "name" : "DummyRecommender", + "compilationUnitId" : "acm002961jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002926jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002968jsd" ] + }, + "acm002970jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002970jsd", + "name" : "UseFallBackException", + "parentId" : "acm002967jsd", + "content" : [ "acm002978jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002971jsd" : { + "type" : "CodePackage", + "id" : "acm002971jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002972jsd" ] + }, + "acm002972jsd" : { + "type" : "CodePackage", + "id" : "acm002972jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002973jsd" ] + }, + "acm002973jsd" : { + "type" : "CodePackage", + "id" : "acm002973jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002974jsd" ] + }, + "acm002974jsd" : { + "type" : "CodePackage", + "id" : "acm002974jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002975jsd" ] + }, + "acm002975jsd" : { + "type" : "CodePackage", + "id" : "acm002975jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002976jsd" ] + }, + "acm002976jsd" : { + "type" : "CodePackage", + "id" : "acm002976jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm002970jsd" ] + }, + "acm002977jsd" : { + "type" : "ControlElement", + "id" : "acm002977jsd", + "name" : "UseFallBackException" + }, + "acm002978jsd" : { + "type" : "ClassUnit", + "id" : "acm002978jsd", + "name" : "UseFallBackException", + "compilationUnitId" : "acm002970jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002977jsd" ] + }, + "acm002979jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002979jsd", + "name" : "PreprocessedSlopeOneRecommender", + "parentId" : "acm002986jsd", + "content" : [ "acm002991jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl", "cf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002980jsd" : { + "type" : "CodePackage", + "id" : "acm002980jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002981jsd" ] + }, + "acm002981jsd" : { + "type" : "CodePackage", + "id" : "acm002981jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002982jsd" ] + }, + "acm002982jsd" : { + "type" : "CodePackage", + "id" : "acm002982jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002983jsd" ] + }, + "acm002983jsd" : { + "type" : "CodePackage", + "id" : "acm002983jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002984jsd" ] + }, + "acm002984jsd" : { + "type" : "CodePackage", + "id" : "acm002984jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002985jsd" ] + }, + "acm002985jsd" : { + "type" : "CodePackage", + "id" : "acm002985jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm002986jsd" ] + }, + "acm002986jsd" : { + "type" : "CodePackage", + "id" : "acm002986jsd", + "name" : "cf", + "parentId" : "acm002967jsd", + "content" : [ "acm002979jsd", "acm002992jsd" ] + }, + "acm002987jsd" : { + "type" : "ControlElement", + "id" : "acm002987jsd", + "name" : "getPredictedRatings" + }, + "acm002988jsd" : { + "type" : "ControlElement", + "id" : "acm002988jsd", + "name" : "setPredictedRatings" + }, + "acm002989jsd" : { + "type" : "ControlElement", + "id" : "acm002989jsd", + "name" : "getUserVector" + }, + "acm002990jsd" : { + "type" : "ControlElement", + "id" : "acm002990jsd", + "name" : "executePreprocessing" + }, + "acm002991jsd" : { + "type" : "ClassUnit", + "id" : "acm002991jsd", + "name" : "PreprocessedSlopeOneRecommender", + "compilationUnitId" : "acm002979jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003009jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm002987jsd", "acm002988jsd", "acm002989jsd", "acm002990jsd" ] + }, + "acm002992jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm002992jsd", + "name" : "SlopeOneRecommender", + "parentId" : "acm002986jsd", + "content" : [ "acm003009jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl", "cf" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm002993jsd" : { + "type" : "CodePackage", + "id" : "acm002993jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm002994jsd" ] + }, + "acm002994jsd" : { + "type" : "CodePackage", + "id" : "acm002994jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm002995jsd" ] + }, + "acm002995jsd" : { + "type" : "CodePackage", + "id" : "acm002995jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm002996jsd" ] + }, + "acm002996jsd" : { + "type" : "CodePackage", + "id" : "acm002996jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm002997jsd" ] + }, + "acm002997jsd" : { + "type" : "CodePackage", + "id" : "acm002997jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm002998jsd" ] + }, + "acm002998jsd" : { + "type" : "CodePackage", + "id" : "acm002998jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm002999jsd" ] + }, + "acm002999jsd" : { + "type" : "CodePackage", + "id" : "acm002999jsd", + "name" : "cf", + "parentId" : null, + "content" : [ "acm002992jsd" ] + }, + "acm003000jsd" : { + "type" : "ControlElement", + "id" : "acm003000jsd", + "name" : "getDifferences" + }, + "acm003001jsd" : { + "type" : "ControlElement", + "id" : "acm003001jsd", + "name" : "setDifferences" + }, + "acm003002jsd" : { + "type" : "ControlElement", + "id" : "acm003002jsd", + "name" : "getFrequencies" + }, + "acm003003jsd" : { + "type" : "ControlElement", + "id" : "acm003003jsd", + "name" : "setFrequencies" + }, + "acm003004jsd" : { + "type" : "ControlElement", + "id" : "acm003004jsd", + "name" : "execute" + }, + "acm003005jsd" : { + "type" : "ControlElement", + "id" : "acm003005jsd", + "name" : "getUserVector" + }, + "acm003006jsd" : { + "type" : "ControlElement", + "id" : "acm003006jsd", + "name" : "calculateScoreForItem" + }, + "acm003007jsd" : { + "type" : "ControlElement", + "id" : "acm003007jsd", + "name" : "executePreprocessing" + }, + "acm003008jsd" : { + "type" : "ControlElement", + "id" : "acm003008jsd", + "name" : "buildDifferencesMatrices" + }, + "acm003009jsd" : { + "type" : "ClassUnit", + "id" : "acm003009jsd", + "name" : "SlopeOneRecommender", + "compilationUnitId" : "acm002992jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002926jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002978jsd" ], + "content" : [ "acm003000jsd", "acm003001jsd", "acm003002jsd", "acm003003jsd", "acm003004jsd", "acm003005jsd", "acm003006jsd", "acm003007jsd", "acm003008jsd" ] + }, + "acm003010jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003010jsd", + "name" : "OrderBasedRecommender", + "parentId" : "acm003017jsd", + "content" : [ "acm003020jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl", "orderbased" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003011jsd" : { + "type" : "CodePackage", + "id" : "acm003011jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003012jsd" ] + }, + "acm003012jsd" : { + "type" : "CodePackage", + "id" : "acm003012jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003013jsd" ] + }, + "acm003013jsd" : { + "type" : "CodePackage", + "id" : "acm003013jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003014jsd" ] + }, + "acm003014jsd" : { + "type" : "CodePackage", + "id" : "acm003014jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003015jsd" ] + }, + "acm003015jsd" : { + "type" : "CodePackage", + "id" : "acm003015jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003016jsd" ] + }, + "acm003016jsd" : { + "type" : "CodePackage", + "id" : "acm003016jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm003017jsd" ] + }, + "acm003017jsd" : { + "type" : "CodePackage", + "id" : "acm003017jsd", + "name" : "orderbased", + "parentId" : "acm002967jsd", + "content" : [ "acm003010jsd" ] + }, + "acm003018jsd" : { + "type" : "ControlElement", + "id" : "acm003018jsd", + "name" : "execute" + }, + "acm003019jsd" : { + "type" : "ControlElement", + "id" : "acm003019jsd", + "name" : "addAllCountsOfProduct" + }, + "acm003020jsd" : { + "type" : "ClassUnit", + "id" : "acm003020jsd", + "name" : "OrderBasedRecommender", + "compilationUnitId" : "acm003010jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002926jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002949jsd", "acm002978jsd" ], + "content" : [ "acm003018jsd", "acm003019jsd" ] + }, + "acm003021jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003021jsd", + "name" : "PopularityBasedRecommender", + "parentId" : "acm003028jsd", + "content" : [ "acm003031jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "algorithm", "impl", "pop" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003022jsd" : { + "type" : "CodePackage", + "id" : "acm003022jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003023jsd" ] + }, + "acm003023jsd" : { + "type" : "CodePackage", + "id" : "acm003023jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003024jsd" ] + }, + "acm003024jsd" : { + "type" : "CodePackage", + "id" : "acm003024jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003025jsd" ] + }, + "acm003025jsd" : { + "type" : "CodePackage", + "id" : "acm003025jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003026jsd" ] + }, + "acm003026jsd" : { + "type" : "CodePackage", + "id" : "acm003026jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003027jsd" ] + }, + "acm003027jsd" : { + "type" : "CodePackage", + "id" : "acm003027jsd", + "name" : "impl", + "parentId" : null, + "content" : [ "acm003028jsd" ] + }, + "acm003028jsd" : { + "type" : "CodePackage", + "id" : "acm003028jsd", + "name" : "pop", + "parentId" : "acm002967jsd", + "content" : [ "acm003021jsd" ] + }, + "acm003029jsd" : { + "type" : "ControlElement", + "id" : "acm003029jsd", + "name" : "execute" + }, + "acm003030jsd" : { + "type" : "ControlElement", + "id" : "acm003030jsd", + "name" : "executePreprocessing" + }, + "acm003031jsd" : { + "type" : "ClassUnit", + "id" : "acm003031jsd", + "name" : "PopularityBasedRecommender", + "compilationUnitId" : "acm003021jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm002926jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003029jsd", "acm003030jsd" ] + }, + "acm003032jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003032jsd", + "name" : "RecommendEndpoint", + "parentId" : "acm003037jsd", + "content" : [ "acm003039jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003033jsd" : { + "type" : "CodePackage", + "id" : "acm003033jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003034jsd" ] + }, + "acm003034jsd" : { + "type" : "CodePackage", + "id" : "acm003034jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003035jsd" ] + }, + "acm003035jsd" : { + "type" : "CodePackage", + "id" : "acm003035jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003036jsd" ] + }, + "acm003036jsd" : { + "type" : "CodePackage", + "id" : "acm003036jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003037jsd" ] + }, + "acm003037jsd" : { + "type" : "CodePackage", + "id" : "acm003037jsd", + "name" : "rest", + "parentId" : "acm002910jsd", + "content" : [ "acm003032jsd", "acm003040jsd", "acm003048jsd" ] + }, + "acm003038jsd" : { + "type" : "ControlElement", + "id" : "acm003038jsd", + "name" : "recommend" + }, + "acm003039jsd" : { + "type" : "ClassUnit", + "id" : "acm003039jsd", + "name" : "RecommendEndpoint", + "compilationUnitId" : "acm003032jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd" ], + "content" : [ "acm003038jsd" ] + }, + "acm003040jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003040jsd", + "name" : "RecommendSingleEndpoint", + "parentId" : "acm003037jsd", + "content" : [ "acm003047jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003041jsd" : { + "type" : "CodePackage", + "id" : "acm003041jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003042jsd" ] + }, + "acm003042jsd" : { + "type" : "CodePackage", + "id" : "acm003042jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003043jsd" ] + }, + "acm003043jsd" : { + "type" : "CodePackage", + "id" : "acm003043jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003044jsd" ] + }, + "acm003044jsd" : { + "type" : "CodePackage", + "id" : "acm003044jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003045jsd" ] + }, + "acm003045jsd" : { + "type" : "CodePackage", + "id" : "acm003045jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003040jsd" ] + }, + "acm003046jsd" : { + "type" : "ControlElement", + "id" : "acm003046jsd", + "name" : "recommend" + }, + "acm003047jsd" : { + "type" : "ClassUnit", + "id" : "acm003047jsd", + "name" : "RecommendSingleEndpoint", + "compilationUnitId" : "acm003040jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd" ], + "content" : [ "acm003046jsd" ] + }, + "acm003048jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003048jsd", + "name" : "TrainEndpoint", + "parentId" : "acm003037jsd", + "content" : [ "acm003057jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003049jsd" : { + "type" : "CodePackage", + "id" : "acm003049jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003050jsd" ] + }, + "acm003050jsd" : { + "type" : "CodePackage", + "id" : "acm003050jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003051jsd" ] + }, + "acm003051jsd" : { + "type" : "CodePackage", + "id" : "acm003051jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003052jsd" ] + }, + "acm003052jsd" : { + "type" : "CodePackage", + "id" : "acm003052jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003053jsd" ] + }, + "acm003053jsd" : { + "type" : "CodePackage", + "id" : "acm003053jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003048jsd" ] + }, + "acm003054jsd" : { + "type" : "ControlElement", + "id" : "acm003054jsd", + "name" : "train" + }, + "acm003055jsd" : { + "type" : "ControlElement", + "id" : "acm003055jsd", + "name" : "getTimeStamp" + }, + "acm003056jsd" : { + "type" : "ControlElement", + "id" : "acm003056jsd", + "name" : "isReady" + }, + "acm003057jsd" : { + "type" : "ClassUnit", + "id" : "acm003057jsd", + "name" : "TrainEndpoint", + "compilationUnitId" : "acm003048jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003054jsd", "acm003055jsd", "acm003056jsd" ] + }, + "acm003058jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003058jsd", + "name" : "IndexServlet", + "parentId" : "acm003063jsd", + "content" : [ "acm003067jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003059jsd" : { + "type" : "CodePackage", + "id" : "acm003059jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003060jsd" ] + }, + "acm003060jsd" : { + "type" : "CodePackage", + "id" : "acm003060jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003061jsd" ] + }, + "acm003061jsd" : { + "type" : "CodePackage", + "id" : "acm003061jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003062jsd" ] + }, + "acm003062jsd" : { + "type" : "CodePackage", + "id" : "acm003062jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003063jsd" ] + }, + "acm003063jsd" : { + "type" : "CodePackage", + "id" : "acm003063jsd", + "name" : "servlet", + "parentId" : "acm002910jsd", + "content" : [ "acm003058jsd", "acm003068jsd", "acm003078jsd", "acm003088jsd" ] + }, + "acm003064jsd" : { + "type" : "ControlElement", + "id" : "acm003064jsd", + "name" : "IndexServlet" + }, + "acm003065jsd" : { + "type" : "ControlElement", + "id" : "acm003065jsd", + "name" : "doGet" + }, + "acm003066jsd" : { + "type" : "ControlElement", + "id" : "acm003066jsd", + "name" : "doPost" + }, + "acm003067jsd" : { + "type" : "ClassUnit", + "id" : "acm003067jsd", + "name" : "IndexServlet", + "compilationUnitId" : "acm003058jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003064jsd", "acm003065jsd", "acm003066jsd" ] + }, + "acm003068jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003068jsd", + "name" : "RecommenderStartup", + "parentId" : "acm003063jsd", + "content" : [ "acm003077jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003069jsd" : { + "type" : "CodePackage", + "id" : "acm003069jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003070jsd" ] + }, + "acm003070jsd" : { + "type" : "CodePackage", + "id" : "acm003070jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003071jsd" ] + }, + "acm003071jsd" : { + "type" : "CodePackage", + "id" : "acm003071jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003072jsd" ] + }, + "acm003072jsd" : { + "type" : "CodePackage", + "id" : "acm003072jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003073jsd" ] + }, + "acm003073jsd" : { + "type" : "CodePackage", + "id" : "acm003073jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003068jsd" ] + }, + "acm003074jsd" : { + "type" : "ControlElement", + "id" : "acm003074jsd", + "name" : "RecommenderStartup" + }, + "acm003075jsd" : { + "type" : "ControlElement", + "id" : "acm003075jsd", + "name" : "contextDestroyed" + }, + "acm003076jsd" : { + "type" : "ControlElement", + "id" : "acm003076jsd", + "name" : "contextInitialized" + }, + "acm003077jsd" : { + "type" : "ClassUnit", + "id" : "acm003077jsd", + "name" : "RecommenderStartup", + "compilationUnitId" : "acm003068jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003077jsd", "acm003087jsd" ], + "content" : [ "acm003074jsd", "acm003075jsd", "acm003076jsd" ] + }, + "acm003078jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003078jsd", + "name" : "RetrainDaemon", + "parentId" : "acm003063jsd", + "content" : [ "acm003087jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003079jsd" : { + "type" : "CodePackage", + "id" : "acm003079jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003080jsd" ] + }, + "acm003080jsd" : { + "type" : "CodePackage", + "id" : "acm003080jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003081jsd" ] + }, + "acm003081jsd" : { + "type" : "CodePackage", + "id" : "acm003081jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003082jsd" ] + }, + "acm003082jsd" : { + "type" : "CodePackage", + "id" : "acm003082jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003083jsd" ] + }, + "acm003083jsd" : { + "type" : "CodePackage", + "id" : "acm003083jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003078jsd" ] + }, + "acm003084jsd" : { + "type" : "ControlElement", + "id" : "acm003084jsd", + "name" : "RetrainDaemon" + }, + "acm003085jsd" : { + "type" : "ControlElement", + "id" : "acm003085jsd", + "name" : "run" + }, + "acm003086jsd" : { + "type" : "ControlElement", + "id" : "acm003086jsd", + "name" : "callback" + }, + "acm003087jsd" : { + "type" : "ClassUnit", + "id" : "acm003087jsd", + "name" : "RetrainDaemon", + "compilationUnitId" : "acm003078jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003612jsd" ], + "content" : [ "acm003084jsd", "acm003085jsd", "acm003086jsd" ] + }, + "acm003088jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003088jsd", + "name" : "TrainingSynchronizer", + "parentId" : "acm003063jsd", + "content" : [ "acm003106jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "main", "java", "tools", "descartes", "teastore", "recommender", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003089jsd" : { + "type" : "CodePackage", + "id" : "acm003089jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003090jsd" ] + }, + "acm003090jsd" : { + "type" : "CodePackage", + "id" : "acm003090jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003091jsd" ] + }, + "acm003091jsd" : { + "type" : "CodePackage", + "id" : "acm003091jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003092jsd" ] + }, + "acm003092jsd" : { + "type" : "CodePackage", + "id" : "acm003092jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003093jsd" ] + }, + "acm003093jsd" : { + "type" : "CodePackage", + "id" : "acm003093jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003088jsd" ] + }, + "acm003094jsd" : { + "type" : "ControlElement", + "id" : "acm003094jsd", + "name" : "isReady" + }, + "acm003095jsd" : { + "type" : "ControlElement", + "id" : "acm003095jsd", + "name" : "setReady" + }, + "acm003096jsd" : { + "type" : "ControlElement", + "id" : "acm003096jsd", + "name" : "TrainingSynchronizer" + }, + "acm003097jsd" : { + "type" : "ControlElement", + "id" : "acm003097jsd", + "name" : "getInstance" + }, + "acm003098jsd" : { + "type" : "ControlElement", + "id" : "acm003098jsd", + "name" : "getMaxTime" + }, + "acm003099jsd" : { + "type" : "ControlElement", + "id" : "acm003099jsd", + "name" : "setMaxTime" + }, + "acm003100jsd" : { + "type" : "ControlElement", + "id" : "acm003100jsd", + "name" : "setMaxTime" + }, + "acm003101jsd" : { + "type" : "ControlElement", + "id" : "acm003101jsd", + "name" : "waitForPersistence" + }, + "acm003102jsd" : { + "type" : "ControlElement", + "id" : "acm003102jsd", + "name" : "retrieveDataAndRetrain" + }, + "acm003103jsd" : { + "type" : "ControlElement", + "id" : "acm003103jsd", + "name" : "filterLists" + }, + "acm003104jsd" : { + "type" : "ControlElement", + "id" : "acm003104jsd", + "name" : "filterForMaxtimeStamp" + }, + "acm003105jsd" : { + "type" : "ControlElement", + "id" : "acm003105jsd", + "name" : "toMillis" + }, + "acm003106jsd" : { + "type" : "ClassUnit", + "id" : "acm003106jsd", + "name" : "TrainingSynchronizer", + "compilationUnitId" : "acm003088jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd", "acm003106jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003094jsd", "acm003095jsd", "acm003096jsd", "acm003097jsd", "acm003098jsd", "acm003099jsd", "acm003100jsd", "acm003101jsd", "acm003102jsd", "acm003103jsd", "acm003104jsd", "acm003105jsd" ] + }, + "acm003107jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003107jsd", + "name" : "AbstractRecommenderFunctionalityTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003114jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003108jsd" : { + "type" : "CodePackage", + "id" : "acm003108jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003109jsd" ] + }, + "acm003109jsd" : { + "type" : "CodePackage", + "id" : "acm003109jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003110jsd" ] + }, + "acm003110jsd" : { + "type" : "CodePackage", + "id" : "acm003110jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003111jsd" ] + }, + "acm003111jsd" : { + "type" : "CodePackage", + "id" : "acm003111jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003112jsd" ] + }, + "acm003112jsd" : { + "type" : "CodePackage", + "id" : "acm003112jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003107jsd" ] + }, + "acm003113jsd" : { + "type" : "ControlElement", + "id" : "acm003113jsd", + "name" : "testAbstractFunctions" + }, + "acm003114jsd" : { + "type" : "ClassUnit", + "id" : "acm003114jsd", + "name" : "AbstractRecommenderFunctionalityTest", + "compilationUnitId" : "acm003107jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003139jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003113jsd" ] + }, + "acm003115jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003115jsd", + "name" : "AbstractRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003139jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003116jsd" : { + "type" : "CodePackage", + "id" : "acm003116jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003117jsd" ] + }, + "acm003117jsd" : { + "type" : "CodePackage", + "id" : "acm003117jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003118jsd" ] + }, + "acm003118jsd" : { + "type" : "CodePackage", + "id" : "acm003118jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003119jsd" ] + }, + "acm003119jsd" : { + "type" : "CodePackage", + "id" : "acm003119jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003120jsd" ] + }, + "acm003120jsd" : { + "type" : "CodePackage", + "id" : "acm003120jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003115jsd" ] + }, + "acm003121jsd" : { + "type" : "ControlElement", + "id" : "acm003121jsd", + "name" : "setup" + }, + "acm003122jsd" : { + "type" : "ControlElement", + "id" : "acm003122jsd", + "name" : "setupAlgo" + }, + "acm003123jsd" : { + "type" : "ControlElement", + "id" : "acm003123jsd", + "name" : "testInterface" + }, + "acm003124jsd" : { + "type" : "ControlElement", + "id" : "acm003124jsd", + "name" : "testResults" + }, + "acm003125jsd" : { + "type" : "ControlElement", + "id" : "acm003125jsd", + "name" : "testSingleResults" + }, + "acm003126jsd" : { + "type" : "ControlElement", + "id" : "acm003126jsd", + "name" : "testMultiResults" + }, + "acm003127jsd" : { + "type" : "ControlElement", + "id" : "acm003127jsd", + "name" : "getTrainOrderItems" + }, + "acm003128jsd" : { + "type" : "ControlElement", + "id" : "acm003128jsd", + "name" : "setTrainOrderItems" + }, + "acm003129jsd" : { + "type" : "ControlElement", + "id" : "acm003129jsd", + "name" : "getTrainOrders" + }, + "acm003130jsd" : { + "type" : "ControlElement", + "id" : "acm003130jsd", + "name" : "setTrainOrders" + }, + "acm003131jsd" : { + "type" : "ControlElement", + "id" : "acm003131jsd", + "name" : "getRecommendSingle" + }, + "acm003132jsd" : { + "type" : "ControlElement", + "id" : "acm003132jsd", + "name" : "setRecommendSingle" + }, + "acm003133jsd" : { + "type" : "ControlElement", + "id" : "acm003133jsd", + "name" : "getRecommendMulti" + }, + "acm003134jsd" : { + "type" : "ControlElement", + "id" : "acm003134jsd", + "name" : "setRecommendMulti" + }, + "acm003135jsd" : { + "type" : "ControlElement", + "id" : "acm003135jsd", + "name" : "getAlgo" + }, + "acm003136jsd" : { + "type" : "ControlElement", + "id" : "acm003136jsd", + "name" : "setAlgo" + }, + "acm003137jsd" : { + "type" : "ControlElement", + "id" : "acm003137jsd", + "name" : "getAllUsers" + }, + "acm003138jsd" : { + "type" : "ControlElement", + "id" : "acm003138jsd", + "name" : "setAllUsers" + }, + "acm003139jsd" : { + "type" : "ClassUnit", + "id" : "acm003139jsd", + "name" : "AbstractRecommenderTest", + "compilationUnitId" : "acm003115jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001428jsd", "acm001468jsd", "acm002926jsd" ], + "content" : [ "acm003121jsd", "acm003122jsd", "acm003123jsd", "acm003124jsd", "acm003125jsd", "acm003126jsd", "acm003127jsd", "acm003128jsd", "acm003129jsd", "acm003130jsd", "acm003131jsd", "acm003132jsd", "acm003133jsd", "acm003134jsd", "acm003135jsd", "acm003136jsd", "acm003137jsd", "acm003138jsd" ] + }, + "acm003140jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003140jsd", + "name" : "DummyRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003149jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003141jsd" : { + "type" : "CodePackage", + "id" : "acm003141jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003142jsd" ] + }, + "acm003142jsd" : { + "type" : "CodePackage", + "id" : "acm003142jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003143jsd" ] + }, + "acm003143jsd" : { + "type" : "CodePackage", + "id" : "acm003143jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003144jsd" ] + }, + "acm003144jsd" : { + "type" : "CodePackage", + "id" : "acm003144jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003145jsd" ] + }, + "acm003145jsd" : { + "type" : "CodePackage", + "id" : "acm003145jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003140jsd" ] + }, + "acm003146jsd" : { + "type" : "ControlElement", + "id" : "acm003146jsd", + "name" : "setupAlgo" + }, + "acm003147jsd" : { + "type" : "ControlElement", + "id" : "acm003147jsd", + "name" : "testSingleResults" + }, + "acm003148jsd" : { + "type" : "ControlElement", + "id" : "acm003148jsd", + "name" : "testMultiResults" + }, + "acm003149jsd" : { + "type" : "ClassUnit", + "id" : "acm003149jsd", + "name" : "DummyRecommenderTest", + "compilationUnitId" : "acm003140jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003114jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002969jsd" ], + "content" : [ "acm003146jsd", "acm003147jsd", "acm003148jsd" ] + }, + "acm003150jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003150jsd", + "name" : "OrderBasedRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003161jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003151jsd" : { + "type" : "CodePackage", + "id" : "acm003151jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003152jsd" ] + }, + "acm003152jsd" : { + "type" : "CodePackage", + "id" : "acm003152jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003153jsd" ] + }, + "acm003153jsd" : { + "type" : "CodePackage", + "id" : "acm003153jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003154jsd" ] + }, + "acm003154jsd" : { + "type" : "CodePackage", + "id" : "acm003154jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003155jsd" ] + }, + "acm003155jsd" : { + "type" : "CodePackage", + "id" : "acm003155jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003150jsd" ] + }, + "acm003156jsd" : { + "type" : "ControlElement", + "id" : "acm003156jsd", + "name" : "setupAlgo" + }, + "acm003157jsd" : { + "type" : "ControlElement", + "id" : "acm003157jsd", + "name" : "testSingleResults" + }, + "acm003158jsd" : { + "type" : "ControlElement", + "id" : "acm003158jsd", + "name" : "evaluateForItemNo2" + }, + "acm003159jsd" : { + "type" : "ControlElement", + "id" : "acm003159jsd", + "name" : "testMultiResults" + }, + "acm003160jsd" : { + "type" : "ControlElement", + "id" : "acm003160jsd", + "name" : "evaluateForItemNo356" + }, + "acm003161jsd" : { + "type" : "ClassUnit", + "id" : "acm003161jsd", + "name" : "OrderBasedRecommenderTest", + "compilationUnitId" : "acm003150jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003114jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd", "acm002978jsd", "acm003020jsd" ], + "content" : [ "acm003156jsd", "acm003157jsd", "acm003158jsd", "acm003159jsd", "acm003160jsd" ] + }, + "acm003162jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003162jsd", + "name" : "PopularityBasedRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003171jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003163jsd" : { + "type" : "CodePackage", + "id" : "acm003163jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003164jsd" ] + }, + "acm003164jsd" : { + "type" : "CodePackage", + "id" : "acm003164jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003165jsd" ] + }, + "acm003165jsd" : { + "type" : "CodePackage", + "id" : "acm003165jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003166jsd" ] + }, + "acm003166jsd" : { + "type" : "CodePackage", + "id" : "acm003166jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003167jsd" ] + }, + "acm003167jsd" : { + "type" : "CodePackage", + "id" : "acm003167jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003162jsd" ] + }, + "acm003168jsd" : { + "type" : "ControlElement", + "id" : "acm003168jsd", + "name" : "setupAlgo" + }, + "acm003169jsd" : { + "type" : "ControlElement", + "id" : "acm003169jsd", + "name" : "testSingleResults" + }, + "acm003170jsd" : { + "type" : "ControlElement", + "id" : "acm003170jsd", + "name" : "testMultiResults" + }, + "acm003171jsd" : { + "type" : "ClassUnit", + "id" : "acm003171jsd", + "name" : "PopularityBasedRecommenderTest", + "compilationUnitId" : "acm003162jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003114jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003031jsd" ], + "content" : [ "acm003168jsd", "acm003169jsd", "acm003170jsd" ] + }, + "acm003172jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003172jsd", + "name" : "PreprocessedSlopeOneRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003182jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003173jsd" : { + "type" : "CodePackage", + "id" : "acm003173jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003174jsd" ] + }, + "acm003174jsd" : { + "type" : "CodePackage", + "id" : "acm003174jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003175jsd" ] + }, + "acm003175jsd" : { + "type" : "CodePackage", + "id" : "acm003175jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003176jsd" ] + }, + "acm003176jsd" : { + "type" : "CodePackage", + "id" : "acm003176jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003177jsd" ] + }, + "acm003177jsd" : { + "type" : "CodePackage", + "id" : "acm003177jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003172jsd" ] + }, + "acm003178jsd" : { + "type" : "ControlElement", + "id" : "acm003178jsd", + "name" : "setupAlgo" + }, + "acm003179jsd" : { + "type" : "ControlElement", + "id" : "acm003179jsd", + "name" : "testSingleResults" + }, + "acm003180jsd" : { + "type" : "ControlElement", + "id" : "acm003180jsd", + "name" : "testMultiResults" + }, + "acm003181jsd" : { + "type" : "ControlElement", + "id" : "acm003181jsd", + "name" : "checkUserPredictionMatrix" + }, + "acm003182jsd" : { + "type" : "ClassUnit", + "id" : "acm003182jsd", + "name" : "PreprocessedSlopeOneRecommenderTest", + "compilationUnitId" : "acm003172jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003194jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002991jsd" ], + "content" : [ "acm003178jsd", "acm003179jsd", "acm003180jsd", "acm003181jsd" ] + }, + "acm003183jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003183jsd", + "name" : "SlopeOneRecommenderTest", + "parentId" : "acm002911jsd", + "content" : [ "acm003194jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.recommender", "src", "test", "java", "tools", "descartes", "teastore", "recommender", "algorithm" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003184jsd" : { + "type" : "CodePackage", + "id" : "acm003184jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003185jsd" ] + }, + "acm003185jsd" : { + "type" : "CodePackage", + "id" : "acm003185jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003186jsd" ] + }, + "acm003186jsd" : { + "type" : "CodePackage", + "id" : "acm003186jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003187jsd" ] + }, + "acm003187jsd" : { + "type" : "CodePackage", + "id" : "acm003187jsd", + "name" : "recommender", + "parentId" : null, + "content" : [ "acm003188jsd" ] + }, + "acm003188jsd" : { + "type" : "CodePackage", + "id" : "acm003188jsd", + "name" : "algorithm", + "parentId" : null, + "content" : [ "acm003183jsd" ] + }, + "acm003189jsd" : { + "type" : "ControlElement", + "id" : "acm003189jsd", + "name" : "setupAlgo" + }, + "acm003190jsd" : { + "type" : "ControlElement", + "id" : "acm003190jsd", + "name" : "testSingleResults" + }, + "acm003191jsd" : { + "type" : "ControlElement", + "id" : "acm003191jsd", + "name" : "testMultiResults" + }, + "acm003192jsd" : { + "type" : "ControlElement", + "id" : "acm003192jsd", + "name" : "checkDiffMatrix" + }, + "acm003193jsd" : { + "type" : "ControlElement", + "id" : "acm003193jsd", + "name" : "checkFreqMatrix" + }, + "acm003194jsd" : { + "type" : "ClassUnit", + "id" : "acm003194jsd", + "name" : "SlopeOneRecommenderTest", + "compilationUnitId" : "acm003183jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003114jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm002978jsd", "acm003009jsd" ], + "content" : [ "acm003189jsd", "acm003190jsd", "acm003191jsd", "acm003192jsd", "acm003193jsd" ] + }, + "acm003195jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003195jsd", + "name" : "HeartbeatInfo", + "parentId" : "acm003200jsd", + "content" : [ "acm003204jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.registry", "src", "main", "java", "tools", "descartes", "teastore", "registry", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003196jsd" : { + "type" : "CodePackage", + "id" : "acm003196jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003197jsd" ] + }, + "acm003197jsd" : { + "type" : "CodePackage", + "id" : "acm003197jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003198jsd" ] + }, + "acm003198jsd" : { + "type" : "CodePackage", + "id" : "acm003198jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003199jsd" ] + }, + "acm003199jsd" : { + "type" : "CodePackage", + "id" : "acm003199jsd", + "name" : "registry", + "parentId" : "acm001340jsd", + "content" : [ "acm003200jsd", "acm003245jsd" ] + }, + "acm003200jsd" : { + "type" : "CodePackage", + "id" : "acm003200jsd", + "name" : "rest", + "parentId" : "acm003199jsd", + "content" : [ "acm003195jsd", "acm003205jsd", "acm003219jsd", "acm003229jsd" ] + }, + "acm003201jsd" : { + "type" : "ControlElement", + "id" : "acm003201jsd", + "name" : "HeartbeatInfo" + }, + "acm003202jsd" : { + "type" : "ControlElement", + "id" : "acm003202jsd", + "name" : "newHeartbeat" + }, + "acm003203jsd" : { + "type" : "ControlElement", + "id" : "acm003203jsd", + "name" : "isAlive" + }, + "acm003204jsd" : { + "type" : "ClassUnit", + "id" : "acm003204jsd", + "name" : "HeartbeatInfo", + "compilationUnitId" : "acm003195jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003201jsd", "acm003202jsd", "acm003203jsd" ] + }, + "acm003205jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003205jsd", + "name" : "Registry", + "parentId" : "acm003200jsd", + "content" : [ "acm003218jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.registry", "src", "main", "java", "tools", "descartes", "teastore", "registry", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003206jsd" : { + "type" : "CodePackage", + "id" : "acm003206jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003207jsd" ] + }, + "acm003207jsd" : { + "type" : "CodePackage", + "id" : "acm003207jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003208jsd" ] + }, + "acm003208jsd" : { + "type" : "CodePackage", + "id" : "acm003208jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003209jsd" ] + }, + "acm003209jsd" : { + "type" : "CodePackage", + "id" : "acm003209jsd", + "name" : "registry", + "parentId" : null, + "content" : [ "acm003210jsd" ] + }, + "acm003210jsd" : { + "type" : "CodePackage", + "id" : "acm003210jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003205jsd" ] + }, + "acm003211jsd" : { + "type" : "ControlElement", + "id" : "acm003211jsd", + "name" : "Registry" + }, + "acm003212jsd" : { + "type" : "ControlElement", + "id" : "acm003212jsd", + "name" : "getRegistryInstance" + }, + "acm003213jsd" : { + "type" : "ControlElement", + "id" : "acm003213jsd", + "name" : "getLocations" + }, + "acm003214jsd" : { + "type" : "ControlElement", + "id" : "acm003214jsd", + "name" : "updateHeartbeatMap" + }, + "acm003215jsd" : { + "type" : "ControlElement", + "id" : "acm003215jsd", + "name" : "unregister" + }, + "acm003216jsd" : { + "type" : "ControlElement", + "id" : "acm003216jsd", + "name" : "register" + }, + "acm003217jsd" : { + "type" : "ControlElement", + "id" : "acm003217jsd", + "name" : "heartBeatCleanup" + }, + "acm003218jsd" : { + "type" : "ClassUnit", + "id" : "acm003218jsd", + "name" : "Registry", + "compilationUnitId" : "acm003205jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003204jsd", "acm003218jsd" ], + "content" : [ "acm003211jsd", "acm003212jsd", "acm003213jsd", "acm003214jsd", "acm003215jsd", "acm003216jsd", "acm003217jsd" ] + }, + "acm003219jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003219jsd", + "name" : "RegistryREST", + "parentId" : "acm003200jsd", + "content" : [ "acm003228jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.registry", "src", "main", "java", "tools", "descartes", "teastore", "registry", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003220jsd" : { + "type" : "CodePackage", + "id" : "acm003220jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003221jsd" ] + }, + "acm003221jsd" : { + "type" : "CodePackage", + "id" : "acm003221jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003222jsd" ] + }, + "acm003222jsd" : { + "type" : "CodePackage", + "id" : "acm003222jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003223jsd" ] + }, + "acm003223jsd" : { + "type" : "CodePackage", + "id" : "acm003223jsd", + "name" : "registry", + "parentId" : null, + "content" : [ "acm003224jsd" ] + }, + "acm003224jsd" : { + "type" : "CodePackage", + "id" : "acm003224jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003219jsd" ] + }, + "acm003225jsd" : { + "type" : "ControlElement", + "id" : "acm003225jsd", + "name" : "register" + }, + "acm003226jsd" : { + "type" : "ControlElement", + "id" : "acm003226jsd", + "name" : "unregister" + }, + "acm003227jsd" : { + "type" : "ControlElement", + "id" : "acm003227jsd", + "name" : "getInstances" + }, + "acm003228jsd" : { + "type" : "ClassUnit", + "id" : "acm003228jsd", + "name" : "RegistryREST", + "compilationUnitId" : "acm003219jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003225jsd", "acm003226jsd", "acm003227jsd" ] + }, + "acm003229jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003229jsd", + "name" : "RegistryStartup", + "parentId" : "acm003200jsd", + "content" : [ "acm003239jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.registry", "src", "main", "java", "tools", "descartes", "teastore", "registry", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003230jsd" : { + "type" : "CodePackage", + "id" : "acm003230jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003231jsd" ] + }, + "acm003231jsd" : { + "type" : "CodePackage", + "id" : "acm003231jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003232jsd" ] + }, + "acm003232jsd" : { + "type" : "CodePackage", + "id" : "acm003232jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003233jsd" ] + }, + "acm003233jsd" : { + "type" : "CodePackage", + "id" : "acm003233jsd", + "name" : "registry", + "parentId" : null, + "content" : [ "acm003234jsd" ] + }, + "acm003234jsd" : { + "type" : "CodePackage", + "id" : "acm003234jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003229jsd" ] + }, + "acm003235jsd" : { + "type" : "ControlElement", + "id" : "acm003235jsd", + "name" : "RegistryStartup" + }, + "acm003236jsd" : { + "type" : "ControlElement", + "id" : "acm003236jsd", + "name" : "contextDestroyed" + }, + "acm003237jsd" : { + "type" : "ControlElement", + "id" : "acm003237jsd", + "name" : "contextInitialized" + }, + "acm003238jsd" : { + "type" : "ControlElement", + "id" : "acm003238jsd", + "name" : "run" + }, + "acm003239jsd" : { + "type" : "ClassUnit", + "id" : "acm003239jsd", + "name" : "RegistryStartup", + "compilationUnitId" : "acm003229jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003239jsd" ], + "content" : [ "acm003235jsd", "acm003236jsd", "acm003237jsd", "acm003238jsd" ] + }, + "acm003240jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003240jsd", + "name" : "IndexServlet", + "parentId" : "acm003245jsd", + "content" : [ "acm003249jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.registry", "src", "main", "java", "tools", "descartes", "teastore", "registry", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003241jsd" : { + "type" : "CodePackage", + "id" : "acm003241jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003242jsd" ] + }, + "acm003242jsd" : { + "type" : "CodePackage", + "id" : "acm003242jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003243jsd" ] + }, + "acm003243jsd" : { + "type" : "CodePackage", + "id" : "acm003243jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003244jsd" ] + }, + "acm003244jsd" : { + "type" : "CodePackage", + "id" : "acm003244jsd", + "name" : "registry", + "parentId" : null, + "content" : [ "acm003245jsd" ] + }, + "acm003245jsd" : { + "type" : "CodePackage", + "id" : "acm003245jsd", + "name" : "servlet", + "parentId" : "acm003199jsd", + "content" : [ "acm003240jsd" ] + }, + "acm003246jsd" : { + "type" : "ControlElement", + "id" : "acm003246jsd", + "name" : "IndexServlet" + }, + "acm003247jsd" : { + "type" : "ControlElement", + "id" : "acm003247jsd", + "name" : "doGet" + }, + "acm003248jsd" : { + "type" : "ControlElement", + "id" : "acm003248jsd", + "name" : "doPost" + }, + "acm003249jsd" : { + "type" : "ClassUnit", + "id" : "acm003249jsd", + "name" : "IndexServlet", + "compilationUnitId" : "acm003240jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003246jsd", "acm003247jsd", "acm003248jsd" ] + }, + "acm003250jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003250jsd", + "name" : "ReadyRest", + "parentId" : "acm003255jsd", + "content" : [ "acm003257jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003251jsd" : { + "type" : "CodePackage", + "id" : "acm003251jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003252jsd" ] + }, + "acm003252jsd" : { + "type" : "CodePackage", + "id" : "acm003252jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003253jsd" ] + }, + "acm003253jsd" : { + "type" : "CodePackage", + "id" : "acm003253jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003254jsd" ] + }, + "acm003254jsd" : { + "type" : "CodePackage", + "id" : "acm003254jsd", + "name" : "webui", + "parentId" : "acm001340jsd", + "content" : [ "acm003255jsd", "acm003263jsd", "acm003431jsd" ] + }, + "acm003255jsd" : { + "type" : "CodePackage", + "id" : "acm003255jsd", + "name" : "rest", + "parentId" : "acm003254jsd", + "content" : [ "acm003250jsd" ] + }, + "acm003256jsd" : { + "type" : "ControlElement", + "id" : "acm003256jsd", + "name" : "isReady" + }, + "acm003257jsd" : { + "type" : "ClassUnit", + "id" : "acm003257jsd", + "name" : "ReadyRest", + "compilationUnitId" : "acm003250jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003256jsd" ] + }, + "acm003258jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003258jsd", + "name" : "AboutUsServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003266jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003259jsd" : { + "type" : "CodePackage", + "id" : "acm003259jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003260jsd" ] + }, + "acm003260jsd" : { + "type" : "CodePackage", + "id" : "acm003260jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003261jsd" ] + }, + "acm003261jsd" : { + "type" : "CodePackage", + "id" : "acm003261jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003262jsd" ] + }, + "acm003262jsd" : { + "type" : "CodePackage", + "id" : "acm003262jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003263jsd" ] + }, + "acm003263jsd" : { + "type" : "CodePackage", + "id" : "acm003263jsd", + "name" : "servlet", + "parentId" : "acm003254jsd", + "content" : [ "acm003258jsd", "acm003267jsd", "acm003287jsd", "acm003299jsd", "acm003308jsd", "acm003319jsd", "acm003329jsd", "acm003338jsd", "acm003347jsd", "acm003356jsd", "acm003366jsd", "acm003375jsd", "acm003385jsd", "acm003394jsd", "acm003403jsd", "acm003421jsd" ] + }, + "acm003264jsd" : { + "type" : "ControlElement", + "id" : "acm003264jsd", + "name" : "AboutUsServlet" + }, + "acm003265jsd" : { + "type" : "ControlElement", + "id" : "acm003265jsd", + "name" : "handleGETRequest" + }, + "acm003266jsd" : { + "type" : "ClassUnit", + "id" : "acm003266jsd", + "name" : "AboutUsServlet", + "compilationUnitId" : "acm003258jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003641jsd" ], + "content" : [ "acm003264jsd", "acm003265jsd" ] + }, + "acm003267jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003267jsd", + "name" : "AbstractUIServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003286jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003268jsd" : { + "type" : "CodePackage", + "id" : "acm003268jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003269jsd" ] + }, + "acm003269jsd" : { + "type" : "CodePackage", + "id" : "acm003269jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003270jsd" ] + }, + "acm003270jsd" : { + "type" : "CodePackage", + "id" : "acm003270jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003271jsd" ] + }, + "acm003271jsd" : { + "type" : "CodePackage", + "id" : "acm003271jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003272jsd" ] + }, + "acm003272jsd" : { + "type" : "CodePackage", + "id" : "acm003272jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003267jsd" ] + }, + "acm003273jsd" : { + "type" : "ControlElement", + "id" : "acm003273jsd", + "name" : "getSessionBlob" + }, + "acm003274jsd" : { + "type" : "ControlElement", + "id" : "acm003274jsd", + "name" : "saveSessionBlob" + }, + "acm003275jsd" : { + "type" : "ControlElement", + "id" : "acm003275jsd", + "name" : "destroySessionBlob" + }, + "acm003276jsd" : { + "type" : "ControlElement", + "id" : "acm003276jsd", + "name" : "redirect" + }, + "acm003277jsd" : { + "type" : "ControlElement", + "id" : "acm003277jsd", + "name" : "redirect" + }, + "acm003278jsd" : { + "type" : "ControlElement", + "id" : "acm003278jsd", + "name" : "checkforCookie" + }, + "acm003279jsd" : { + "type" : "ControlElement", + "id" : "acm003279jsd", + "name" : "doGet" + }, + "acm003280jsd" : { + "type" : "ControlElement", + "id" : "acm003280jsd", + "name" : "doPost" + }, + "acm003281jsd" : { + "type" : "ControlElement", + "id" : "acm003281jsd", + "name" : "handlePOSTRequest" + }, + "acm003282jsd" : { + "type" : "ControlElement", + "id" : "acm003282jsd", + "name" : "handleGETRequest" + }, + "acm003283jsd" : { + "type" : "ControlElement", + "id" : "acm003283jsd", + "name" : "serveTimoutResponse" + }, + "acm003284jsd" : { + "type" : "ControlElement", + "id" : "acm003284jsd", + "name" : "serveExceptionResponse" + }, + "acm003285jsd" : { + "type" : "ControlElement", + "id" : "acm003285jsd", + "name" : "serveNotFoundException" + }, + "acm003286jsd" : { + "type" : "ClassUnit", + "id" : "acm003286jsd", + "name" : "AbstractUIServlet", + "compilationUnitId" : "acm003267jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001488jsd", "acm003605jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003273jsd", "acm003274jsd", "acm003275jsd", "acm003276jsd", "acm003277jsd", "acm003278jsd", "acm003279jsd", "acm003280jsd", "acm003281jsd", "acm003282jsd", "acm003283jsd", "acm003284jsd", "acm003285jsd" ] + }, + "acm003287jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003287jsd", + "name" : "CartActionServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003298jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003288jsd" : { + "type" : "CodePackage", + "id" : "acm003288jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003289jsd" ] + }, + "acm003289jsd" : { + "type" : "CodePackage", + "id" : "acm003289jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003290jsd" ] + }, + "acm003290jsd" : { + "type" : "CodePackage", + "id" : "acm003290jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003291jsd" ] + }, + "acm003291jsd" : { + "type" : "CodePackage", + "id" : "acm003291jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003292jsd" ] + }, + "acm003292jsd" : { + "type" : "CodePackage", + "id" : "acm003292jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003287jsd" ] + }, + "acm003293jsd" : { + "type" : "ControlElement", + "id" : "acm003293jsd", + "name" : "CartActionServlet" + }, + "acm003294jsd" : { + "type" : "ControlElement", + "id" : "acm003294jsd", + "name" : "handleGETRequest" + }, + "acm003295jsd" : { + "type" : "ControlElement", + "id" : "acm003295jsd", + "name" : "confirmOrder" + }, + "acm003296jsd" : { + "type" : "ControlElement", + "id" : "acm003296jsd", + "name" : "extractOrderInformation" + }, + "acm003297jsd" : { + "type" : "ControlElement", + "id" : "acm003297jsd", + "name" : "updateOrder" + }, + "acm003298jsd" : { + "type" : "ClassUnit", + "id" : "acm003298jsd", + "name" : "CartActionServlet", + "compilationUnitId" : "acm003287jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001428jsd", "acm001488jsd", "acm003641jsd" ], + "content" : [ "acm003293jsd", "acm003294jsd", "acm003295jsd", "acm003296jsd", "acm003297jsd" ] + }, + "acm003299jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003299jsd", + "name" : "CartServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003307jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003300jsd" : { + "type" : "CodePackage", + "id" : "acm003300jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003301jsd" ] + }, + "acm003301jsd" : { + "type" : "CodePackage", + "id" : "acm003301jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003302jsd" ] + }, + "acm003302jsd" : { + "type" : "CodePackage", + "id" : "acm003302jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003303jsd" ] + }, + "acm003303jsd" : { + "type" : "CodePackage", + "id" : "acm003303jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003304jsd" ] + }, + "acm003304jsd" : { + "type" : "CodePackage", + "id" : "acm003304jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003299jsd" ] + }, + "acm003305jsd" : { + "type" : "ControlElement", + "id" : "acm003305jsd", + "name" : "CartServlet" + }, + "acm003306jsd" : { + "type" : "ControlElement", + "id" : "acm003306jsd", + "name" : "handleGETRequest" + }, + "acm003307jsd" : { + "type" : "ClassUnit", + "id" : "acm003307jsd", + "name" : "CartServlet", + "compilationUnitId" : "acm003299jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001428jsd", "acm001448jsd", "acm001488jsd", "acm003641jsd" ], + "content" : [ "acm003305jsd", "acm003306jsd" ] + }, + "acm003308jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003308jsd", + "name" : "CategoryServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003318jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003309jsd" : { + "type" : "CodePackage", + "id" : "acm003309jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003310jsd" ] + }, + "acm003310jsd" : { + "type" : "CodePackage", + "id" : "acm003310jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003311jsd" ] + }, + "acm003311jsd" : { + "type" : "CodePackage", + "id" : "acm003311jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003312jsd" ] + }, + "acm003312jsd" : { + "type" : "CodePackage", + "id" : "acm003312jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003313jsd" ] + }, + "acm003313jsd" : { + "type" : "CodePackage", + "id" : "acm003313jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003308jsd" ] + }, + "acm003314jsd" : { + "type" : "ControlElement", + "id" : "acm003314jsd", + "name" : "CategoryServlet" + }, + "acm003315jsd" : { + "type" : "ControlElement", + "id" : "acm003315jsd", + "name" : "handleGETRequest" + }, + "acm003316jsd" : { + "type" : "ControlElement", + "id" : "acm003316jsd", + "name" : "handlePOSTRequest" + }, + "acm003317jsd" : { + "type" : "ControlElement", + "id" : "acm003317jsd", + "name" : "createNavigation" + }, + "acm003318jsd" : { + "type" : "ClassUnit", + "id" : "acm003318jsd", + "name" : "CategoryServlet", + "compilationUnitId" : "acm003308jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001448jsd", "acm003641jsd" ], + "content" : [ "acm003314jsd", "acm003315jsd", "acm003316jsd", "acm003317jsd" ] + }, + "acm003319jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003319jsd", + "name" : "DataBaseActionServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003328jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003320jsd" : { + "type" : "CodePackage", + "id" : "acm003320jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003321jsd" ] + }, + "acm003321jsd" : { + "type" : "CodePackage", + "id" : "acm003321jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003322jsd" ] + }, + "acm003322jsd" : { + "type" : "CodePackage", + "id" : "acm003322jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003323jsd" ] + }, + "acm003323jsd" : { + "type" : "CodePackage", + "id" : "acm003323jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003324jsd" ] + }, + "acm003324jsd" : { + "type" : "CodePackage", + "id" : "acm003324jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003319jsd" ] + }, + "acm003325jsd" : { + "type" : "ControlElement", + "id" : "acm003325jsd", + "name" : "DataBaseActionServlet" + }, + "acm003326jsd" : { + "type" : "ControlElement", + "id" : "acm003326jsd", + "name" : "handleGETRequest" + }, + "acm003327jsd" : { + "type" : "ControlElement", + "id" : "acm003327jsd", + "name" : "extractOrderInformation" + }, + "acm003328jsd" : { + "type" : "ClassUnit", + "id" : "acm003328jsd", + "name" : "DataBaseActionServlet", + "compilationUnitId" : "acm003319jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003328jsd", "acm003641jsd" ], + "content" : [ "acm003325jsd", "acm003326jsd", "acm003327jsd" ] + }, + "acm003329jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003329jsd", + "name" : "DataBaseServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003337jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003330jsd" : { + "type" : "CodePackage", + "id" : "acm003330jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003331jsd" ] + }, + "acm003331jsd" : { + "type" : "CodePackage", + "id" : "acm003331jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003332jsd" ] + }, + "acm003332jsd" : { + "type" : "CodePackage", + "id" : "acm003332jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003333jsd" ] + }, + "acm003333jsd" : { + "type" : "CodePackage", + "id" : "acm003333jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003334jsd" ] + }, + "acm003334jsd" : { + "type" : "CodePackage", + "id" : "acm003334jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003329jsd" ] + }, + "acm003335jsd" : { + "type" : "ControlElement", + "id" : "acm003335jsd", + "name" : "DataBaseServlet" + }, + "acm003336jsd" : { + "type" : "ControlElement", + "id" : "acm003336jsd", + "name" : "handleGETRequest" + }, + "acm003337jsd" : { + "type" : "ClassUnit", + "id" : "acm003337jsd", + "name" : "DataBaseServlet", + "compilationUnitId" : "acm003329jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003641jsd" ], + "content" : [ "acm003335jsd", "acm003336jsd" ] + }, + "acm003338jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003338jsd", + "name" : "ErrorServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003346jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003339jsd" : { + "type" : "CodePackage", + "id" : "acm003339jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003340jsd" ] + }, + "acm003340jsd" : { + "type" : "CodePackage", + "id" : "acm003340jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003341jsd" ] + }, + "acm003341jsd" : { + "type" : "CodePackage", + "id" : "acm003341jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003342jsd" ] + }, + "acm003342jsd" : { + "type" : "CodePackage", + "id" : "acm003342jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003343jsd" ] + }, + "acm003343jsd" : { + "type" : "CodePackage", + "id" : "acm003343jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003338jsd" ] + }, + "acm003344jsd" : { + "type" : "ControlElement", + "id" : "acm003344jsd", + "name" : "ErrorServlet" + }, + "acm003345jsd" : { + "type" : "ControlElement", + "id" : "acm003345jsd", + "name" : "handleGETRequest" + }, + "acm003346jsd" : { + "type" : "ClassUnit", + "id" : "acm003346jsd", + "name" : "ErrorServlet", + "compilationUnitId" : "acm003338jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm003641jsd" ], + "content" : [ "acm003344jsd", "acm003345jsd" ] + }, + "acm003347jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003347jsd", + "name" : "IndexServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003355jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003348jsd" : { + "type" : "CodePackage", + "id" : "acm003348jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003349jsd" ] + }, + "acm003349jsd" : { + "type" : "CodePackage", + "id" : "acm003349jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003350jsd" ] + }, + "acm003350jsd" : { + "type" : "CodePackage", + "id" : "acm003350jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003351jsd" ] + }, + "acm003351jsd" : { + "type" : "CodePackage", + "id" : "acm003351jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003352jsd" ] + }, + "acm003352jsd" : { + "type" : "CodePackage", + "id" : "acm003352jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003347jsd" ] + }, + "acm003353jsd" : { + "type" : "ControlElement", + "id" : "acm003353jsd", + "name" : "IndexServlet" + }, + "acm003354jsd" : { + "type" : "ControlElement", + "id" : "acm003354jsd", + "name" : "handleGETRequest" + }, + "acm003355jsd" : { + "type" : "ClassUnit", + "id" : "acm003355jsd", + "name" : "IndexServlet", + "compilationUnitId" : "acm003347jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm003641jsd" ], + "content" : [ "acm003353jsd", "acm003354jsd" ] + }, + "acm003356jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003356jsd", + "name" : "LoginActionServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003365jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003357jsd" : { + "type" : "CodePackage", + "id" : "acm003357jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003358jsd" ] + }, + "acm003358jsd" : { + "type" : "CodePackage", + "id" : "acm003358jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003359jsd" ] + }, + "acm003359jsd" : { + "type" : "CodePackage", + "id" : "acm003359jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003360jsd" ] + }, + "acm003360jsd" : { + "type" : "CodePackage", + "id" : "acm003360jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003361jsd" ] + }, + "acm003361jsd" : { + "type" : "CodePackage", + "id" : "acm003361jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003356jsd" ] + }, + "acm003362jsd" : { + "type" : "ControlElement", + "id" : "acm003362jsd", + "name" : "LoginActionServlet" + }, + "acm003363jsd" : { + "type" : "ControlElement", + "id" : "acm003363jsd", + "name" : "handleGETRequest" + }, + "acm003364jsd" : { + "type" : "ControlElement", + "id" : "acm003364jsd", + "name" : "handlePOSTRequest" + }, + "acm003365jsd" : { + "type" : "ClassUnit", + "id" : "acm003365jsd", + "name" : "LoginActionServlet", + "compilationUnitId" : "acm003356jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001488jsd", "acm003641jsd" ], + "content" : [ "acm003362jsd", "acm003363jsd", "acm003364jsd" ] + }, + "acm003366jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003366jsd", + "name" : "LoginServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003374jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003367jsd" : { + "type" : "CodePackage", + "id" : "acm003367jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003368jsd" ] + }, + "acm003368jsd" : { + "type" : "CodePackage", + "id" : "acm003368jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003369jsd" ] + }, + "acm003369jsd" : { + "type" : "CodePackage", + "id" : "acm003369jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003370jsd" ] + }, + "acm003370jsd" : { + "type" : "CodePackage", + "id" : "acm003370jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003371jsd" ] + }, + "acm003371jsd" : { + "type" : "CodePackage", + "id" : "acm003371jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003366jsd" ] + }, + "acm003372jsd" : { + "type" : "ControlElement", + "id" : "acm003372jsd", + "name" : "LoginServlet" + }, + "acm003373jsd" : { + "type" : "ControlElement", + "id" : "acm003373jsd", + "name" : "handleGETRequest" + }, + "acm003374jsd" : { + "type" : "ClassUnit", + "id" : "acm003374jsd", + "name" : "LoginServlet", + "compilationUnitId" : "acm003366jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm003641jsd" ], + "content" : [ "acm003372jsd", "acm003373jsd" ] + }, + "acm003375jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003375jsd", + "name" : "OrderServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003384jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003376jsd" : { + "type" : "CodePackage", + "id" : "acm003376jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003377jsd" ] + }, + "acm003377jsd" : { + "type" : "CodePackage", + "id" : "acm003377jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003378jsd" ] + }, + "acm003378jsd" : { + "type" : "CodePackage", + "id" : "acm003378jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003379jsd" ] + }, + "acm003379jsd" : { + "type" : "CodePackage", + "id" : "acm003379jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003380jsd" ] + }, + "acm003380jsd" : { + "type" : "CodePackage", + "id" : "acm003380jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003375jsd" ] + }, + "acm003381jsd" : { + "type" : "ControlElement", + "id" : "acm003381jsd", + "name" : "OrderServlet" + }, + "acm003382jsd" : { + "type" : "ControlElement", + "id" : "acm003382jsd", + "name" : "handleGETRequest" + }, + "acm003383jsd" : { + "type" : "ControlElement", + "id" : "acm003383jsd", + "name" : "handlePOSTRequest" + }, + "acm003384jsd" : { + "type" : "ClassUnit", + "id" : "acm003384jsd", + "name" : "OrderServlet", + "compilationUnitId" : "acm003375jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm003641jsd" ], + "content" : [ "acm003381jsd", "acm003382jsd", "acm003383jsd" ] + }, + "acm003385jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003385jsd", + "name" : "ProductServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003393jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003386jsd" : { + "type" : "CodePackage", + "id" : "acm003386jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003387jsd" ] + }, + "acm003387jsd" : { + "type" : "CodePackage", + "id" : "acm003387jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003388jsd" ] + }, + "acm003388jsd" : { + "type" : "CodePackage", + "id" : "acm003388jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003389jsd" ] + }, + "acm003389jsd" : { + "type" : "CodePackage", + "id" : "acm003389jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003390jsd" ] + }, + "acm003390jsd" : { + "type" : "CodePackage", + "id" : "acm003390jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003385jsd" ] + }, + "acm003391jsd" : { + "type" : "ControlElement", + "id" : "acm003391jsd", + "name" : "ProductServlet" + }, + "acm003392jsd" : { + "type" : "ControlElement", + "id" : "acm003392jsd", + "name" : "handleGETRequest" + }, + "acm003393jsd" : { + "type" : "ClassUnit", + "id" : "acm003393jsd", + "name" : "ProductServlet", + "compilationUnitId" : "acm003385jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001428jsd", "acm001448jsd", "acm001488jsd", "acm003641jsd" ], + "content" : [ "acm003391jsd", "acm003392jsd" ] + }, + "acm003394jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003394jsd", + "name" : "ProfileServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003402jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003395jsd" : { + "type" : "CodePackage", + "id" : "acm003395jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003396jsd" ] + }, + "acm003396jsd" : { + "type" : "CodePackage", + "id" : "acm003396jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003397jsd" ] + }, + "acm003397jsd" : { + "type" : "CodePackage", + "id" : "acm003397jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003398jsd" ] + }, + "acm003398jsd" : { + "type" : "CodePackage", + "id" : "acm003398jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003399jsd" ] + }, + "acm003399jsd" : { + "type" : "CodePackage", + "id" : "acm003399jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003394jsd" ] + }, + "acm003400jsd" : { + "type" : "ControlElement", + "id" : "acm003400jsd", + "name" : "ProfileServlet" + }, + "acm003401jsd" : { + "type" : "ControlElement", + "id" : "acm003401jsd", + "name" : "handleGETRequest" + }, + "acm003402jsd" : { + "type" : "ClassUnit", + "id" : "acm003402jsd", + "name" : "ProfileServlet", + "compilationUnitId" : "acm003394jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001408jsd", "acm001468jsd", "acm003641jsd" ], + "content" : [ "acm003400jsd", "acm003401jsd" ] + }, + "acm003403jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003403jsd", + "name" : "StatusServlet", + "parentId" : "acm003263jsd", + "content" : [ "acm003414jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003404jsd" : { + "type" : "CodePackage", + "id" : "acm003404jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003405jsd" ] + }, + "acm003405jsd" : { + "type" : "CodePackage", + "id" : "acm003405jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003406jsd" ] + }, + "acm003406jsd" : { + "type" : "CodePackage", + "id" : "acm003406jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003407jsd" ] + }, + "acm003407jsd" : { + "type" : "CodePackage", + "id" : "acm003407jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003408jsd" ] + }, + "acm003408jsd" : { + "type" : "CodePackage", + "id" : "acm003408jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003403jsd" ] + }, + "acm003409jsd" : { + "type" : "ControlElement", + "id" : "acm003409jsd", + "name" : "StatusServlet" + }, + "acm003410jsd" : { + "type" : "ControlElement", + "id" : "acm003410jsd", + "name" : "handleGETRequest" + }, + "acm003411jsd" : { + "type" : "ControlElement", + "id" : "acm003411jsd", + "name" : "isDatabaseFinished" + }, + "acm003412jsd" : { + "type" : "ControlElement", + "id" : "acm003412jsd", + "name" : "isImageFinished" + }, + "acm003413jsd" : { + "type" : "ControlElement", + "id" : "acm003413jsd", + "name" : "isRecommenderFinished" + }, + "acm003414jsd" : { + "type" : "ClassUnit", + "id" : "acm003414jsd", + "name" : "StatusServlet", + "compilationUnitId" : "acm003403jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ "acm003286jsd" ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003641jsd" ], + "content" : [ "acm003409jsd", "acm003410jsd", "acm003411jsd", "acm003412jsd", "acm003413jsd" ] + }, + "acm003415jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003415jsd", + "name" : "ELHelperUtils", + "parentId" : "acm003421jsd", + "content" : [ "acm003425jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "servlet", "elhelper" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003416jsd" : { + "type" : "CodePackage", + "id" : "acm003416jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003417jsd" ] + }, + "acm003417jsd" : { + "type" : "CodePackage", + "id" : "acm003417jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003418jsd" ] + }, + "acm003418jsd" : { + "type" : "CodePackage", + "id" : "acm003418jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003419jsd" ] + }, + "acm003419jsd" : { + "type" : "CodePackage", + "id" : "acm003419jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003420jsd" ] + }, + "acm003420jsd" : { + "type" : "CodePackage", + "id" : "acm003420jsd", + "name" : "servlet", + "parentId" : null, + "content" : [ "acm003421jsd" ] + }, + "acm003421jsd" : { + "type" : "CodePackage", + "id" : "acm003421jsd", + "name" : "elhelper", + "parentId" : "acm003263jsd", + "content" : [ "acm003415jsd" ] + }, + "acm003422jsd" : { + "type" : "ControlElement", + "id" : "acm003422jsd", + "name" : "ELHelperUtils" + }, + "acm003423jsd" : { + "type" : "ControlElement", + "id" : "acm003423jsd", + "name" : "formatToPrettyDate" + }, + "acm003424jsd" : { + "type" : "ControlElement", + "id" : "acm003424jsd", + "name" : "formatPriceInCents" + }, + "acm003425jsd" : { + "type" : "ClassUnit", + "id" : "acm003425jsd", + "name" : "ELHelperUtils", + "compilationUnitId" : "acm003415jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003425jsd" ], + "content" : [ "acm003422jsd", "acm003423jsd", "acm003424jsd" ] + }, + "acm003426jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003426jsd", + "name" : "WebuiStartup", + "parentId" : "acm003431jsd", + "content" : [ "acm003435jsd" ], + "pathElements" : [ "services", "tools.descartes.teastore.webui", "src", "main", "java", "tools", "descartes", "teastore", "webui", "startup" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003427jsd" : { + "type" : "CodePackage", + "id" : "acm003427jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003428jsd" ] + }, + "acm003428jsd" : { + "type" : "CodePackage", + "id" : "acm003428jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003429jsd" ] + }, + "acm003429jsd" : { + "type" : "CodePackage", + "id" : "acm003429jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003430jsd" ] + }, + "acm003430jsd" : { + "type" : "CodePackage", + "id" : "acm003430jsd", + "name" : "webui", + "parentId" : null, + "content" : [ "acm003431jsd" ] + }, + "acm003431jsd" : { + "type" : "CodePackage", + "id" : "acm003431jsd", + "name" : "startup", + "parentId" : "acm003254jsd", + "content" : [ "acm003426jsd" ] + }, + "acm003432jsd" : { + "type" : "ControlElement", + "id" : "acm003432jsd", + "name" : "WebuiStartup" + }, + "acm003433jsd" : { + "type" : "ControlElement", + "id" : "acm003433jsd", + "name" : "contextDestroyed" + }, + "acm003434jsd" : { + "type" : "ControlElement", + "id" : "acm003434jsd", + "name" : "contextInitialized" + }, + "acm003435jsd" : { + "type" : "ClassUnit", + "id" : "acm003435jsd", + "name" : "WebuiStartup", + "compilationUnitId" : "acm003426jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003432jsd", "acm003433jsd", "acm003434jsd" ] + }, + "acm003436jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003436jsd", + "name" : "Configurator", + "parentId" : "acm003440jsd", + "content" : [ "acm003447jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.dockermemoryconfigurator", "src", "main", "java", "tools", "descartes", "teastore", "dockermemoryconfigurator" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003437jsd" : { + "type" : "CodePackage", + "id" : "acm003437jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003438jsd" ] + }, + "acm003438jsd" : { + "type" : "CodePackage", + "id" : "acm003438jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003439jsd" ] + }, + "acm003439jsd" : { + "type" : "CodePackage", + "id" : "acm003439jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003440jsd" ] + }, + "acm003440jsd" : { + "type" : "CodePackage", + "id" : "acm003440jsd", + "name" : "dockermemoryconfigurator", + "parentId" : "acm001340jsd", + "content" : [ "acm003436jsd" ] + }, + "acm003441jsd" : { + "type" : "ControlElement", + "id" : "acm003441jsd", + "name" : "Configurator" + }, + "acm003442jsd" : { + "type" : "ControlElement", + "id" : "acm003442jsd", + "name" : "main" + }, + "acm003443jsd" : { + "type" : "ControlElement", + "id" : "acm003443jsd", + "name" : "readPercentage" + }, + "acm003444jsd" : { + "type" : "ControlElement", + "id" : "acm003444jsd", + "name" : "readTotalMemoryInKB" + }, + "acm003445jsd" : { + "type" : "ControlElement", + "id" : "acm003445jsd", + "name" : "readCGroupMemoryInKB" + }, + "acm003446jsd" : { + "type" : "ControlElement", + "id" : "acm003446jsd", + "name" : "writeSetEnvFile" + }, + "acm003447jsd" : { + "type" : "ClassUnit", + "id" : "acm003447jsd", + "name" : "Configurator", + "compilationUnitId" : "acm003436jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003441jsd", "acm003442jsd", "acm003443jsd", "acm003444jsd", "acm003445jsd", "acm003446jsd" ] + }, + "acm003448jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003448jsd", + "name" : "AbstractOperationExecutionWithParameterAspect", + "parentId" : "acm003453jsd", + "content" : [ "acm003459jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.probes", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "probes" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003449jsd" : { + "type" : "CodePackage", + "id" : "acm003449jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003450jsd" ] + }, + "acm003450jsd" : { + "type" : "CodePackage", + "id" : "acm003450jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003451jsd" ] + }, + "acm003451jsd" : { + "type" : "CodePackage", + "id" : "acm003451jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003452jsd" ] + }, + "acm003452jsd" : { + "type" : "CodePackage", + "id" : "acm003452jsd", + "name" : "kieker", + "parentId" : "acm001340jsd", + "content" : [ "acm003453jsd", "acm003496jsd" ] + }, + "acm003453jsd" : { + "type" : "CodePackage", + "id" : "acm003453jsd", + "name" : "probes", + "parentId" : "acm003452jsd", + "content" : [ "acm003448jsd", "acm003466jsd" ] + }, + "acm003454jsd" : { + "type" : "ControlElement", + "id" : "acm003454jsd", + "name" : "monitoredOperation" + }, + "acm003455jsd" : { + "type" : "ControlElement", + "id" : "acm003455jsd", + "name" : "operation" + }, + "acm003456jsd" : { + "type" : "ControlElement", + "id" : "acm003456jsd", + "name" : "logWithParameter" + }, + "acm003457jsd" : { + "type" : "ControlElement", + "id" : "acm003457jsd", + "name" : "parseObjectToString" + }, + "acm003458jsd" : { + "type" : "ControlElement", + "id" : "acm003458jsd", + "name" : "logWithoutParameters" + }, + "acm003459jsd" : { + "type" : "ClassUnit", + "id" : "acm003459jsd", + "name" : "AbstractOperationExecutionWithParameterAspect", + "compilationUnitId" : "acm003448jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001488jsd", "acm003459jsd", "acm003490jsd" ], + "content" : [ "acm003454jsd", "acm003455jsd", "acm003456jsd", "acm003457jsd", "acm003458jsd" ] + }, + "acm003460jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003460jsd", + "name" : "IPayloadCharacterization", + "parentId" : "acm003466jsd", + "content" : [ "acm003471jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.probes", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "probes", "records" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003461jsd" : { + "type" : "CodePackage", + "id" : "acm003461jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003462jsd" ] + }, + "acm003462jsd" : { + "type" : "CodePackage", + "id" : "acm003462jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003463jsd" ] + }, + "acm003463jsd" : { + "type" : "CodePackage", + "id" : "acm003463jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003464jsd" ] + }, + "acm003464jsd" : { + "type" : "CodePackage", + "id" : "acm003464jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003465jsd" ] + }, + "acm003465jsd" : { + "type" : "CodePackage", + "id" : "acm003465jsd", + "name" : "probes", + "parentId" : null, + "content" : [ "acm003466jsd" ] + }, + "acm003466jsd" : { + "type" : "CodePackage", + "id" : "acm003466jsd", + "name" : "records", + "parentId" : "acm003453jsd", + "content" : [ "acm003460jsd", "acm003472jsd" ] + }, + "acm003467jsd" : { + "type" : "ControlElement", + "id" : "acm003467jsd", + "name" : "getParameterTypes" + }, + "acm003468jsd" : { + "type" : "ControlElement", + "id" : "acm003468jsd", + "name" : "getParameterValues" + }, + "acm003469jsd" : { + "type" : "ControlElement", + "id" : "acm003469jsd", + "name" : "getReturnType" + }, + "acm003470jsd" : { + "type" : "ControlElement", + "id" : "acm003470jsd", + "name" : "getReturnValue" + }, + "acm003471jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003471jsd", + "name" : "IPayloadCharacterization", + "compilationUnitId" : "acm003460jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003467jsd", "acm003468jsd", "acm003469jsd", "acm003470jsd" ] + }, + "acm003472jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003472jsd", + "name" : "OperationExecutionWithParametersRecord", + "parentId" : "acm003466jsd", + "content" : [ "acm003490jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.probes", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "probes", "records" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003473jsd" : { + "type" : "CodePackage", + "id" : "acm003473jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003474jsd" ] + }, + "acm003474jsd" : { + "type" : "CodePackage", + "id" : "acm003474jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003475jsd" ] + }, + "acm003475jsd" : { + "type" : "CodePackage", + "id" : "acm003475jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003476jsd" ] + }, + "acm003476jsd" : { + "type" : "CodePackage", + "id" : "acm003476jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003477jsd" ] + }, + "acm003477jsd" : { + "type" : "CodePackage", + "id" : "acm003477jsd", + "name" : "probes", + "parentId" : null, + "content" : [ "acm003478jsd" ] + }, + "acm003478jsd" : { + "type" : "CodePackage", + "id" : "acm003478jsd", + "name" : "records", + "parentId" : null, + "content" : [ "acm003472jsd" ] + }, + "acm003479jsd" : { + "type" : "ControlElement", + "id" : "acm003479jsd", + "name" : "OperationExecutionWithParametersRecord" + }, + "acm003480jsd" : { + "type" : "ControlElement", + "id" : "acm003480jsd", + "name" : "OperationExecutionWithParametersRecord" + }, + "acm003481jsd" : { + "type" : "ControlElement", + "id" : "acm003481jsd", + "name" : "serialize" + }, + "acm003482jsd" : { + "type" : "ControlElement", + "id" : "acm003482jsd", + "name" : "getValueTypes" + }, + "acm003483jsd" : { + "type" : "ControlElement", + "id" : "acm003483jsd", + "name" : "getValueNames" + }, + "acm003484jsd" : { + "type" : "ControlElement", + "id" : "acm003484jsd", + "name" : "getSize" + }, + "acm003485jsd" : { + "type" : "ControlElement", + "id" : "acm003485jsd", + "name" : "equals" + }, + "acm003486jsd" : { + "type" : "ControlElement", + "id" : "acm003486jsd", + "name" : "getParameterTypes" + }, + "acm003487jsd" : { + "type" : "ControlElement", + "id" : "acm003487jsd", + "name" : "getParameterValues" + }, + "acm003488jsd" : { + "type" : "ControlElement", + "id" : "acm003488jsd", + "name" : "getReturnType" + }, + "acm003489jsd" : { + "type" : "ControlElement", + "id" : "acm003489jsd", + "name" : "getReturnValue" + }, + "acm003490jsd" : { + "type" : "ClassUnit", + "id" : "acm003490jsd", + "name" : "OperationExecutionWithParametersRecord", + "compilationUnitId" : "acm003472jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ "acm003471jsd" ], + "datatypeReferencesIds" : [ "acm003490jsd" ], + "content" : [ "acm003479jsd", "acm003480jsd", "acm003481jsd", "acm003482jsd", "acm003483jsd", "acm003484jsd", "acm003485jsd", "acm003486jsd", "acm003487jsd", "acm003488jsd", "acm003489jsd" ] + }, + "acm003491jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003491jsd", + "name" : "DisplayLogs", + "parentId" : "acm003496jsd", + "content" : [ "acm003498jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003492jsd" : { + "type" : "CodePackage", + "id" : "acm003492jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003493jsd" ] + }, + "acm003493jsd" : { + "type" : "CodePackage", + "id" : "acm003493jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003494jsd" ] + }, + "acm003494jsd" : { + "type" : "CodePackage", + "id" : "acm003494jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003495jsd" ] + }, + "acm003495jsd" : { + "type" : "CodePackage", + "id" : "acm003495jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003496jsd" ] + }, + "acm003496jsd" : { + "type" : "CodePackage", + "id" : "acm003496jsd", + "name" : "rabbitmq", + "parentId" : "acm003452jsd", + "content" : [ "acm003491jsd", "acm003499jsd", "acm003507jsd", "acm003515jsd", "acm003525jsd", "acm003533jsd", "acm003545jsd", "acm003556jsd" ] + }, + "acm003497jsd" : { + "type" : "ControlElement", + "id" : "acm003497jsd", + "name" : "doGet" + }, + "acm003498jsd" : { + "type" : "ClassUnit", + "id" : "acm003498jsd", + "name" : "DisplayLogs", + "compilationUnitId" : "acm003491jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003497jsd" ] + }, + "acm003499jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003499jsd", + "name" : "FileWriterDaemon", + "parentId" : "acm003496jsd", + "content" : [ "acm003506jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003500jsd" : { + "type" : "CodePackage", + "id" : "acm003500jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003501jsd" ] + }, + "acm003501jsd" : { + "type" : "CodePackage", + "id" : "acm003501jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003502jsd" ] + }, + "acm003502jsd" : { + "type" : "CodePackage", + "id" : "acm003502jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003503jsd" ] + }, + "acm003503jsd" : { + "type" : "CodePackage", + "id" : "acm003503jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003504jsd" ] + }, + "acm003504jsd" : { + "type" : "CodePackage", + "id" : "acm003504jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003499jsd" ] + }, + "acm003505jsd" : { + "type" : "ControlElement", + "id" : "acm003505jsd", + "name" : "run" + }, + "acm003506jsd" : { + "type" : "ClassUnit", + "id" : "acm003506jsd", + "name" : "FileWriterDaemon", + "compilationUnitId" : "acm003499jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003505jsd" ] + }, + "acm003507jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003507jsd", + "name" : "IndexServlet", + "parentId" : "acm003496jsd", + "content" : [ "acm003514jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003508jsd" : { + "type" : "CodePackage", + "id" : "acm003508jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003509jsd" ] + }, + "acm003509jsd" : { + "type" : "CodePackage", + "id" : "acm003509jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003510jsd" ] + }, + "acm003510jsd" : { + "type" : "CodePackage", + "id" : "acm003510jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003511jsd" ] + }, + "acm003511jsd" : { + "type" : "CodePackage", + "id" : "acm003511jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003512jsd" ] + }, + "acm003512jsd" : { + "type" : "CodePackage", + "id" : "acm003512jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003507jsd" ] + }, + "acm003513jsd" : { + "type" : "ControlElement", + "id" : "acm003513jsd", + "name" : "doGet" + }, + "acm003514jsd" : { + "type" : "ClassUnit", + "id" : "acm003514jsd", + "name" : "IndexServlet", + "compilationUnitId" : "acm003507jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003513jsd" ] + }, + "acm003515jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003515jsd", + "name" : "LogConsumer", + "parentId" : "acm003496jsd", + "content" : [ "acm003524jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003516jsd" : { + "type" : "CodePackage", + "id" : "acm003516jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003517jsd" ] + }, + "acm003517jsd" : { + "type" : "CodePackage", + "id" : "acm003517jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003518jsd" ] + }, + "acm003518jsd" : { + "type" : "CodePackage", + "id" : "acm003518jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003519jsd" ] + }, + "acm003519jsd" : { + "type" : "CodePackage", + "id" : "acm003519jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003520jsd" ] + }, + "acm003520jsd" : { + "type" : "CodePackage", + "id" : "acm003520jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003515jsd" ] + }, + "acm003521jsd" : { + "type" : "ControlElement", + "id" : "acm003521jsd", + "name" : "LogConsumer" + }, + "acm003522jsd" : { + "type" : "ControlElement", + "id" : "acm003522jsd", + "name" : "newMonitoringRecord" + }, + "acm003523jsd" : { + "type" : "ControlElement", + "id" : "acm003523jsd", + "name" : "getCurrentConfiguration" + }, + "acm003524jsd" : { + "type" : "ClassUnit", + "id" : "acm003524jsd", + "name" : "LogConsumer", + "compilationUnitId" : "acm003515jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003521jsd", "acm003522jsd", "acm003523jsd" ] + }, + "acm003525jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003525jsd", + "name" : "LogReaderDaemon", + "parentId" : "acm003496jsd", + "content" : [ "acm003532jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003526jsd" : { + "type" : "CodePackage", + "id" : "acm003526jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003527jsd" ] + }, + "acm003527jsd" : { + "type" : "CodePackage", + "id" : "acm003527jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003528jsd" ] + }, + "acm003528jsd" : { + "type" : "CodePackage", + "id" : "acm003528jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003529jsd" ] + }, + "acm003529jsd" : { + "type" : "CodePackage", + "id" : "acm003529jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003530jsd" ] + }, + "acm003530jsd" : { + "type" : "CodePackage", + "id" : "acm003530jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003525jsd" ] + }, + "acm003531jsd" : { + "type" : "ControlElement", + "id" : "acm003531jsd", + "name" : "run" + }, + "acm003532jsd" : { + "type" : "ClassUnit", + "id" : "acm003532jsd", + "name" : "LogReaderDaemon", + "compilationUnitId" : "acm003525jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003524jsd" ], + "content" : [ "acm003531jsd" ] + }, + "acm003533jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003533jsd", + "name" : "LogReaderStartup", + "parentId" : "acm003496jsd", + "content" : [ "acm003544jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003534jsd" : { + "type" : "CodePackage", + "id" : "acm003534jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003535jsd" ] + }, + "acm003535jsd" : { + "type" : "CodePackage", + "id" : "acm003535jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003536jsd" ] + }, + "acm003536jsd" : { + "type" : "CodePackage", + "id" : "acm003536jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003537jsd" ] + }, + "acm003537jsd" : { + "type" : "CodePackage", + "id" : "acm003537jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003538jsd" ] + }, + "acm003538jsd" : { + "type" : "CodePackage", + "id" : "acm003538jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003533jsd" ] + }, + "acm003539jsd" : { + "type" : "ControlElement", + "id" : "acm003539jsd", + "name" : "LogReaderStartup" + }, + "acm003540jsd" : { + "type" : "ControlElement", + "id" : "acm003540jsd", + "name" : "contextDestroyed" + }, + "acm003541jsd" : { + "type" : "ControlElement", + "id" : "acm003541jsd", + "name" : "stopFileWriter" + }, + "acm003542jsd" : { + "type" : "ControlElement", + "id" : "acm003542jsd", + "name" : "contextInitialized" + }, + "acm003543jsd" : { + "type" : "ControlElement", + "id" : "acm003543jsd", + "name" : "startFileWriter" + }, + "acm003544jsd" : { + "type" : "ClassUnit", + "id" : "acm003544jsd", + "name" : "LogReaderStartup", + "compilationUnitId" : "acm003533jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003506jsd", "acm003532jsd" ], + "content" : [ "acm003539jsd", "acm003540jsd", "acm003541jsd", "acm003542jsd", "acm003543jsd" ] + }, + "acm003545jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003545jsd", + "name" : "MemoryLogStorage", + "parentId" : "acm003496jsd", + "content" : [ "acm003555jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003546jsd" : { + "type" : "CodePackage", + "id" : "acm003546jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003547jsd" ] + }, + "acm003547jsd" : { + "type" : "CodePackage", + "id" : "acm003547jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003548jsd" ] + }, + "acm003548jsd" : { + "type" : "CodePackage", + "id" : "acm003548jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003549jsd" ] + }, + "acm003549jsd" : { + "type" : "CodePackage", + "id" : "acm003549jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003550jsd" ] + }, + "acm003550jsd" : { + "type" : "CodePackage", + "id" : "acm003550jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003545jsd" ] + }, + "acm003551jsd" : { + "type" : "ControlElement", + "id" : "acm003551jsd", + "name" : "MemoryLogStorage" + }, + "acm003552jsd" : { + "type" : "ControlElement", + "id" : "acm003552jsd", + "name" : "storeRecord" + }, + "acm003553jsd" : { + "type" : "ControlElement", + "id" : "acm003553jsd", + "name" : "getRecords" + }, + "acm003554jsd" : { + "type" : "ControlElement", + "id" : "acm003554jsd", + "name" : "clearMemoryStorage" + }, + "acm003555jsd" : { + "type" : "ClassUnit", + "id" : "acm003555jsd", + "name" : "MemoryLogStorage", + "compilationUnitId" : "acm003545jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003551jsd", "acm003552jsd", "acm003553jsd", "acm003554jsd" ] + }, + "acm003556jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003556jsd", + "name" : "Reset", + "parentId" : "acm003496jsd", + "content" : [ "acm003565jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.kieker.rabbitmq", "src", "main", "java", "tools", "descartes", "teastore", "kieker", "rabbitmq" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003557jsd" : { + "type" : "CodePackage", + "id" : "acm003557jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003558jsd" ] + }, + "acm003558jsd" : { + "type" : "CodePackage", + "id" : "acm003558jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003559jsd" ] + }, + "acm003559jsd" : { + "type" : "CodePackage", + "id" : "acm003559jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003560jsd" ] + }, + "acm003560jsd" : { + "type" : "CodePackage", + "id" : "acm003560jsd", + "name" : "kieker", + "parentId" : null, + "content" : [ "acm003561jsd" ] + }, + "acm003561jsd" : { + "type" : "CodePackage", + "id" : "acm003561jsd", + "name" : "rabbitmq", + "parentId" : null, + "content" : [ "acm003556jsd" ] + }, + "acm003562jsd" : { + "type" : "ControlElement", + "id" : "acm003562jsd", + "name" : "doGet" + }, + "acm003563jsd" : { + "type" : "ControlElement", + "id" : "acm003563jsd", + "name" : "deleteFolder" + }, + "acm003564jsd" : { + "type" : "ControlElement", + "id" : "acm003564jsd", + "name" : "deleteFolder" + }, + "acm003565jsd" : { + "type" : "ClassUnit", + "id" : "acm003565jsd", + "name" : "Reset", + "compilationUnitId" : "acm003556jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003562jsd", "acm003563jsd", "acm003564jsd" ] + }, + "acm003566jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003566jsd", + "name" : "RegistryClient", + "parentId" : "acm003570jsd", + "content" : [ "acm003589jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003567jsd" : { + "type" : "CodePackage", + "id" : "acm003567jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003568jsd" ] + }, + "acm003568jsd" : { + "type" : "CodePackage", + "id" : "acm003568jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003569jsd" ] + }, + "acm003569jsd" : { + "type" : "CodePackage", + "id" : "acm003569jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003570jsd" ] + }, + "acm003570jsd" : { + "type" : "CodePackage", + "id" : "acm003570jsd", + "name" : "registryclient", + "parentId" : "acm001340jsd", + "content" : [ "acm003566jsd", "acm003590jsd", "acm003598jsd", "acm003606jsd", "acm003613jsd", "acm003626jsd", "acm003689jsd", "acm003813jsd", "acm003829jsd" ] + }, + "acm003571jsd" : { + "type" : "ControlElement", + "id" : "acm003571jsd", + "name" : "RegistryClient" + }, + "acm003572jsd" : { + "type" : "ControlElement", + "id" : "acm003572jsd", + "name" : "getClient" + }, + "acm003573jsd" : { + "type" : "ControlElement", + "id" : "acm003573jsd", + "name" : "unregister" + }, + "acm003574jsd" : { + "type" : "ControlElement", + "id" : "acm003574jsd", + "name" : "register" + }, + "acm003575jsd" : { + "type" : "ControlElement", + "id" : "acm003575jsd", + "name" : "runAfterServiceIsAvailable" + }, + "acm003576jsd" : { + "type" : "ControlElement", + "id" : "acm003576jsd", + "name" : "getServersForService" + }, + "acm003577jsd" : { + "type" : "ControlElement", + "id" : "acm003577jsd", + "name" : "getMyServiceInstanceServer" + }, + "acm003578jsd" : { + "type" : "ControlElement", + "id" : "acm003578jsd", + "name" : "getMyService" + }, + "acm003579jsd" : { + "type" : "ControlElement", + "id" : "acm003579jsd", + "name" : "registerOnce" + }, + "acm003580jsd" : { + "type" : "ControlElement", + "id" : "acm003580jsd", + "name" : "unregisterOnce" + }, + "acm003581jsd" : { + "type" : "ControlElement", + "id" : "acm003581jsd", + "name" : "getRESTClient" + }, + "acm003582jsd" : { + "type" : "ControlElement", + "id" : "acm003582jsd", + "name" : "getService" + }, + "acm003583jsd" : { + "type" : "ControlElement", + "id" : "acm003583jsd", + "name" : "getServer" + }, + "acm003584jsd" : { + "type" : "ControlElement", + "id" : "acm003584jsd", + "name" : "getHostName" + }, + "acm003585jsd" : { + "type" : "ControlElement", + "id" : "acm003585jsd", + "name" : "getPort" + }, + "acm003586jsd" : { + "type" : "ControlElement", + "id" : "acm003586jsd", + "name" : "cleanupServiceName" + }, + "acm003587jsd" : { + "type" : "ControlElement", + "id" : "acm003587jsd", + "name" : "getHeartbeatScheduler" + }, + "acm003588jsd" : { + "type" : "ControlElement", + "id" : "acm003588jsd", + "name" : "getLoadBalancerUpdateScheduler" + }, + "acm003589jsd" : { + "type" : "ClassUnit", + "id" : "acm003589jsd", + "name" : "RegistryClient", + "compilationUnitId" : "acm003566jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003589jsd", "acm003597jsd", "acm003605jsd", "acm003612jsd", "acm003620jsd", "acm003649jsd" ], + "content" : [ "acm003571jsd", "acm003572jsd", "acm003573jsd", "acm003574jsd", "acm003575jsd", "acm003576jsd", "acm003577jsd", "acm003578jsd", "acm003579jsd", "acm003580jsd", "acm003581jsd", "acm003582jsd", "acm003583jsd", "acm003584jsd", "acm003585jsd", "acm003586jsd", "acm003587jsd", "acm003588jsd" ] + }, + "acm003590jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003590jsd", + "name" : "RegistryClientHeartbeatDaemon", + "parentId" : "acm003570jsd", + "content" : [ "acm003597jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003591jsd" : { + "type" : "CodePackage", + "id" : "acm003591jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003592jsd" ] + }, + "acm003592jsd" : { + "type" : "CodePackage", + "id" : "acm003592jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003593jsd" ] + }, + "acm003593jsd" : { + "type" : "CodePackage", + "id" : "acm003593jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003594jsd" ] + }, + "acm003594jsd" : { + "type" : "CodePackage", + "id" : "acm003594jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003590jsd" ] + }, + "acm003595jsd" : { + "type" : "ControlElement", + "id" : "acm003595jsd", + "name" : "RegistryClientHeartbeatDaemon" + }, + "acm003596jsd" : { + "type" : "ControlElement", + "id" : "acm003596jsd", + "name" : "run" + }, + "acm003597jsd" : { + "type" : "ClassUnit", + "id" : "acm003597jsd", + "name" : "RegistryClientHeartbeatDaemon", + "compilationUnitId" : "acm003590jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003605jsd" ], + "content" : [ "acm003595jsd", "acm003596jsd" ] + }, + "acm003598jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003598jsd", + "name" : "Service", + "parentId" : "acm003570jsd", + "content" : [ "acm003605jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003599jsd" : { + "type" : "CodePackage", + "id" : "acm003599jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003600jsd" ] + }, + "acm003600jsd" : { + "type" : "CodePackage", + "id" : "acm003600jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003601jsd" ] + }, + "acm003601jsd" : { + "type" : "CodePackage", + "id" : "acm003601jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003602jsd" ] + }, + "acm003602jsd" : { + "type" : "CodePackage", + "id" : "acm003602jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003598jsd" ] + }, + "acm003603jsd" : { + "type" : "ControlElement", + "id" : "acm003603jsd", + "name" : "Service" + }, + "acm003604jsd" : { + "type" : "ControlElement", + "id" : "acm003604jsd", + "name" : "getServiceName" + }, + "acm003605jsd" : { + "type" : "ClassUnit", + "id" : "acm003605jsd", + "name" : "Service", + "compilationUnitId" : "acm003598jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003603jsd", "acm003604jsd" ] + }, + "acm003606jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003606jsd", + "name" : "StartupCallback", + "parentId" : "acm003570jsd", + "content" : [ "acm003612jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003607jsd" : { + "type" : "CodePackage", + "id" : "acm003607jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003608jsd" ] + }, + "acm003608jsd" : { + "type" : "CodePackage", + "id" : "acm003608jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003609jsd" ] + }, + "acm003609jsd" : { + "type" : "CodePackage", + "id" : "acm003609jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003610jsd" ] + }, + "acm003610jsd" : { + "type" : "CodePackage", + "id" : "acm003610jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003606jsd" ] + }, + "acm003611jsd" : { + "type" : "ControlElement", + "id" : "acm003611jsd", + "name" : "callback" + }, + "acm003612jsd" : { + "type" : "InterfaceUnit", + "id" : "acm003612jsd", + "name" : "StartupCallback", + "compilationUnitId" : "acm003606jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003611jsd" ] + }, + "acm003613jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003613jsd", + "name" : "StartupCallbackTask", + "parentId" : "acm003570jsd", + "content" : [ "acm003620jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003614jsd" : { + "type" : "CodePackage", + "id" : "acm003614jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003615jsd" ] + }, + "acm003615jsd" : { + "type" : "CodePackage", + "id" : "acm003615jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003616jsd" ] + }, + "acm003616jsd" : { + "type" : "CodePackage", + "id" : "acm003616jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003617jsd" ] + }, + "acm003617jsd" : { + "type" : "CodePackage", + "id" : "acm003617jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003613jsd" ] + }, + "acm003618jsd" : { + "type" : "ControlElement", + "id" : "acm003618jsd", + "name" : "StartupCallbackTask" + }, + "acm003619jsd" : { + "type" : "ControlElement", + "id" : "acm003619jsd", + "name" : "run" + }, + "acm003620jsd" : { + "type" : "ClassUnit", + "id" : "acm003620jsd", + "name" : "StartupCallbackTask", + "compilationUnitId" : "acm003613jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003589jsd", "acm003605jsd", "acm003612jsd" ], + "content" : [ "acm003618jsd", "acm003619jsd" ] + }, + "acm003621jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003621jsd", + "name" : "EndpointClientCollection", + "parentId" : "acm003626jsd", + "content" : [ "acm003632jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "loadbalancers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003622jsd" : { + "type" : "CodePackage", + "id" : "acm003622jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003623jsd" ] + }, + "acm003623jsd" : { + "type" : "CodePackage", + "id" : "acm003623jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003624jsd" ] + }, + "acm003624jsd" : { + "type" : "CodePackage", + "id" : "acm003624jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003625jsd" ] + }, + "acm003625jsd" : { + "type" : "CodePackage", + "id" : "acm003625jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003626jsd" ] + }, + "acm003626jsd" : { + "type" : "CodePackage", + "id" : "acm003626jsd", + "name" : "loadbalancers", + "parentId" : "acm003570jsd", + "content" : [ "acm003621jsd", "acm003633jsd", "acm003642jsd", "acm003650jsd", "acm003671jsd" ] + }, + "acm003627jsd" : { + "type" : "ControlElement", + "id" : "acm003627jsd", + "name" : "EndpointClientCollection" + }, + "acm003628jsd" : { + "type" : "ControlElement", + "id" : "acm003628jsd", + "name" : "updateServers" + }, + "acm003629jsd" : { + "type" : "ControlElement", + "id" : "acm003629jsd", + "name" : "getEndpointURI" + }, + "acm003630jsd" : { + "type" : "ControlElement", + "id" : "acm003630jsd", + "name" : "updateClients" + }, + "acm003631jsd" : { + "type" : "ControlElement", + "id" : "acm003631jsd", + "name" : "getRESTClient" + }, + "acm003632jsd" : { + "type" : "ClassUnit", + "id" : "acm003632jsd", + "name" : "EndpointClientCollection", + "compilationUnitId" : "acm003621jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003605jsd", "acm003871jsd" ], + "content" : [ "acm003627jsd", "acm003628jsd", "acm003629jsd", "acm003630jsd", "acm003631jsd" ] + }, + "acm003633jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003633jsd", + "name" : "LoadBalancerTimeoutException", + "parentId" : "acm003626jsd", + "content" : [ "acm003641jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "loadbalancers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003634jsd" : { + "type" : "CodePackage", + "id" : "acm003634jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003635jsd" ] + }, + "acm003635jsd" : { + "type" : "CodePackage", + "id" : "acm003635jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003636jsd" ] + }, + "acm003636jsd" : { + "type" : "CodePackage", + "id" : "acm003636jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003637jsd" ] + }, + "acm003637jsd" : { + "type" : "CodePackage", + "id" : "acm003637jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003638jsd" ] + }, + "acm003638jsd" : { + "type" : "CodePackage", + "id" : "acm003638jsd", + "name" : "loadbalancers", + "parentId" : null, + "content" : [ "acm003633jsd" ] + }, + "acm003639jsd" : { + "type" : "ControlElement", + "id" : "acm003639jsd", + "name" : "LoadBalancerTimeoutException" + }, + "acm003640jsd" : { + "type" : "ControlElement", + "id" : "acm003640jsd", + "name" : "getTargetService" + }, + "acm003641jsd" : { + "type" : "ClassUnit", + "id" : "acm003641jsd", + "name" : "LoadBalancerTimeoutException", + "compilationUnitId" : "acm003633jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003605jsd" ], + "content" : [ "acm003639jsd", "acm003640jsd" ] + }, + "acm003642jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003642jsd", + "name" : "LoadBalancerUpdaterDaemon", + "parentId" : "acm003626jsd", + "content" : [ "acm003649jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "loadbalancers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003643jsd" : { + "type" : "CodePackage", + "id" : "acm003643jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003644jsd" ] + }, + "acm003644jsd" : { + "type" : "CodePackage", + "id" : "acm003644jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003645jsd" ] + }, + "acm003645jsd" : { + "type" : "CodePackage", + "id" : "acm003645jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003646jsd" ] + }, + "acm003646jsd" : { + "type" : "CodePackage", + "id" : "acm003646jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003647jsd" ] + }, + "acm003647jsd" : { + "type" : "CodePackage", + "id" : "acm003647jsd", + "name" : "loadbalancers", + "parentId" : null, + "content" : [ "acm003642jsd" ] + }, + "acm003648jsd" : { + "type" : "ControlElement", + "id" : "acm003648jsd", + "name" : "run" + }, + "acm003649jsd" : { + "type" : "ClassUnit", + "id" : "acm003649jsd", + "name" : "LoadBalancerUpdaterDaemon", + "compilationUnitId" : "acm003642jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003648jsd" ] + }, + "acm003650jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003650jsd", + "name" : "ServiceLoadBalancer", + "parentId" : "acm003626jsd", + "content" : [ "acm003670jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "loadbalancers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003651jsd" : { + "type" : "CodePackage", + "id" : "acm003651jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003652jsd" ] + }, + "acm003652jsd" : { + "type" : "CodePackage", + "id" : "acm003652jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003653jsd" ] + }, + "acm003653jsd" : { + "type" : "CodePackage", + "id" : "acm003653jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003654jsd" ] + }, + "acm003654jsd" : { + "type" : "CodePackage", + "id" : "acm003654jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003655jsd" ] + }, + "acm003655jsd" : { + "type" : "CodePackage", + "id" : "acm003655jsd", + "name" : "loadbalancers", + "parentId" : null, + "content" : [ "acm003650jsd" ] + }, + "acm003656jsd" : { + "type" : "ControlElement", + "id" : "acm003656jsd", + "name" : "ServiceLoadBalancer" + }, + "acm003657jsd" : { + "type" : "ControlElement", + "id" : "acm003657jsd", + "name" : "preInitializeServiceLoadBalancers" + }, + "acm003658jsd" : { + "type" : "ControlElement", + "id" : "acm003658jsd", + "name" : "getServiceLoadBalancer" + }, + "acm003659jsd" : { + "type" : "ControlElement", + "id" : "acm003659jsd", + "name" : "getServiceLoadBalancer" + }, + "acm003660jsd" : { + "type" : "ControlElement", + "id" : "acm003660jsd", + "name" : "getEndpointClientCollection" + }, + "acm003661jsd" : { + "type" : "ControlElement", + "id" : "acm003661jsd", + "name" : "updateLoadBalancersForKnownServicesUsingRegistry" + }, + "acm003662jsd" : { + "type" : "ControlElement", + "id" : "acm003662jsd", + "name" : "updateLoadBalancersForServiceUsingRegistry" + }, + "acm003663jsd" : { + "type" : "ControlElement", + "id" : "acm003663jsd", + "name" : "updateLoadBalancersForService" + }, + "acm003664jsd" : { + "type" : "ControlElement", + "id" : "acm003664jsd", + "name" : "updateLoadBalancer" + }, + "acm003665jsd" : { + "type" : "ControlElement", + "id" : "acm003665jsd", + "name" : "loadBalanceRESTOperation" + }, + "acm003666jsd" : { + "type" : "ControlElement", + "id" : "acm003666jsd", + "name" : "loadBalanceRESTOperation" + }, + "acm003667jsd" : { + "type" : "ControlElement", + "id" : "acm003667jsd", + "name" : "multicastRESTOperation" + }, + "acm003668jsd" : { + "type" : "ControlElement", + "id" : "acm003668jsd", + "name" : "multicastRESTToOtherServiceInstances" + }, + "acm003669jsd" : { + "type" : "ControlElement", + "id" : "acm003669jsd", + "name" : "multicastRESTOperation" + }, + "acm003670jsd" : { + "type" : "ClassUnit", + "id" : "acm003670jsd", + "name" : "ServiceLoadBalancer", + "compilationUnitId" : "acm003650jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003605jsd", "acm003632jsd", "acm003641jsd", "acm003670jsd", "acm003683jsd", "acm003849jsd", "acm003871jsd" ], + "content" : [ "acm003656jsd", "acm003657jsd", "acm003658jsd", "acm003659jsd", "acm003660jsd", "acm003661jsd", "acm003662jsd", "acm003663jsd", "acm003664jsd", "acm003665jsd", "acm003666jsd", "acm003667jsd", "acm003668jsd", "acm003669jsd" ] + }, + "acm003671jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003671jsd", + "name" : "ServiceLoadBalancerResult", + "parentId" : "acm003626jsd", + "content" : [ "acm003683jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "loadbalancers" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003672jsd" : { + "type" : "CodePackage", + "id" : "acm003672jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003673jsd" ] + }, + "acm003673jsd" : { + "type" : "CodePackage", + "id" : "acm003673jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003674jsd" ] + }, + "acm003674jsd" : { + "type" : "CodePackage", + "id" : "acm003674jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003675jsd" ] + }, + "acm003675jsd" : { + "type" : "CodePackage", + "id" : "acm003675jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003676jsd" ] + }, + "acm003676jsd" : { + "type" : "CodePackage", + "id" : "acm003676jsd", + "name" : "loadbalancers", + "parentId" : null, + "content" : [ "acm003671jsd" ] + }, + "acm003677jsd" : { + "type" : "ControlElement", + "id" : "acm003677jsd", + "name" : "ServiceLoadBalancerResult" + }, + "acm003678jsd" : { + "type" : "ControlElement", + "id" : "acm003678jsd", + "name" : "fromRESTOperation" + }, + "acm003679jsd" : { + "type" : "ControlElement", + "id" : "acm003679jsd", + "name" : "getStatusCode" + }, + "acm003680jsd" : { + "type" : "ControlElement", + "id" : "acm003680jsd", + "name" : "setStatusCode" + }, + "acm003681jsd" : { + "type" : "ControlElement", + "id" : "acm003681jsd", + "name" : "getEntity" + }, + "acm003682jsd" : { + "type" : "ControlElement", + "id" : "acm003682jsd", + "name" : "setEntity" + }, + "acm003683jsd" : { + "type" : "ClassUnit", + "id" : "acm003683jsd", + "name" : "ServiceLoadBalancerResult", + "compilationUnitId" : "acm003671jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003683jsd", "acm003849jsd", "acm003871jsd", "acm003879jsd" ], + "content" : [ "acm003677jsd", "acm003678jsd", "acm003679jsd", "acm003680jsd", "acm003681jsd", "acm003682jsd" ] + }, + "acm003684jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003684jsd", + "name" : "CharResponseWrapper", + "parentId" : "acm003689jsd", + "content" : [ "acm003697jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003685jsd" : { + "type" : "CodePackage", + "id" : "acm003685jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003686jsd" ] + }, + "acm003686jsd" : { + "type" : "CodePackage", + "id" : "acm003686jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003687jsd" ] + }, + "acm003687jsd" : { + "type" : "CodePackage", + "id" : "acm003687jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003688jsd" ] + }, + "acm003688jsd" : { + "type" : "CodePackage", + "id" : "acm003688jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003689jsd" ] + }, + "acm003689jsd" : { + "type" : "CodePackage", + "id" : "acm003689jsd", + "name" : "rest", + "parentId" : "acm003570jsd", + "content" : [ "acm003684jsd", "acm003698jsd", "acm003707jsd", "acm003722jsd", "acm003737jsd", "acm003746jsd", "acm003761jsd", "acm003776jsd", "acm003785jsd", "acm003798jsd" ] + }, + "acm003690jsd" : { + "type" : "ControlElement", + "id" : "acm003690jsd", + "name" : "toString" + }, + "acm003691jsd" : { + "type" : "ControlElement", + "id" : "acm003691jsd", + "name" : "CharResponseWrapper" + }, + "acm003692jsd" : { + "type" : "ControlElement", + "id" : "acm003692jsd", + "name" : "getWriter" + }, + "acm003693jsd" : { + "type" : "ControlElement", + "id" : "acm003693jsd", + "name" : "getOutputStream" + }, + "acm003694jsd" : { + "type" : "ControlElement", + "id" : "acm003694jsd", + "name" : "write" + }, + "acm003695jsd" : { + "type" : "ControlElement", + "id" : "acm003695jsd", + "name" : "setWriteListener" + }, + "acm003696jsd" : { + "type" : "ControlElement", + "id" : "acm003696jsd", + "name" : "isReady" + }, + "acm003697jsd" : { + "type" : "ClassUnit", + "id" : "acm003697jsd", + "name" : "CharResponseWrapper", + "compilationUnitId" : "acm003684jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003690jsd", "acm003691jsd", "acm003692jsd", "acm003693jsd", "acm003694jsd", "acm003695jsd", "acm003696jsd" ] + }, + "acm003698jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003698jsd", + "name" : "HttpWrapper", + "parentId" : "acm003689jsd", + "content" : [ "acm003706jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003699jsd" : { + "type" : "CodePackage", + "id" : "acm003699jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003700jsd" ] + }, + "acm003700jsd" : { + "type" : "CodePackage", + "id" : "acm003700jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003701jsd" ] + }, + "acm003701jsd" : { + "type" : "CodePackage", + "id" : "acm003701jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003702jsd" ] + }, + "acm003702jsd" : { + "type" : "CodePackage", + "id" : "acm003702jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003703jsd" ] + }, + "acm003703jsd" : { + "type" : "CodePackage", + "id" : "acm003703jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003698jsd" ] + }, + "acm003704jsd" : { + "type" : "ControlElement", + "id" : "acm003704jsd", + "name" : "HttpWrapper" + }, + "acm003705jsd" : { + "type" : "ControlElement", + "id" : "acm003705jsd", + "name" : "wrap" + }, + "acm003706jsd" : { + "type" : "ClassUnit", + "id" : "acm003706jsd", + "name" : "HttpWrapper", + "compilationUnitId" : "acm003698jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003706jsd" ], + "content" : [ "acm003704jsd", "acm003705jsd" ] + }, + "acm003707jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003707jsd", + "name" : "LoadBalancedCRUDOperations", + "parentId" : "acm003689jsd", + "content" : [ "acm003721jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003708jsd" : { + "type" : "CodePackage", + "id" : "acm003708jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003709jsd" ] + }, + "acm003709jsd" : { + "type" : "CodePackage", + "id" : "acm003709jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003710jsd" ] + }, + "acm003710jsd" : { + "type" : "CodePackage", + "id" : "acm003710jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003711jsd" ] + }, + "acm003711jsd" : { + "type" : "CodePackage", + "id" : "acm003711jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003712jsd" ] + }, + "acm003712jsd" : { + "type" : "CodePackage", + "id" : "acm003712jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003707jsd" ] + }, + "acm003713jsd" : { + "type" : "ControlElement", + "id" : "acm003713jsd", + "name" : "LoadBalancedCRUDOperations" + }, + "acm003714jsd" : { + "type" : "ControlElement", + "id" : "acm003714jsd", + "name" : "sendEntityForCreation" + }, + "acm003715jsd" : { + "type" : "ControlElement", + "id" : "acm003715jsd", + "name" : "sendEntityForUpdate" + }, + "acm003716jsd" : { + "type" : "ControlElement", + "id" : "acm003716jsd", + "name" : "deleteEntity" + }, + "acm003717jsd" : { + "type" : "ControlElement", + "id" : "acm003717jsd", + "name" : "getEntity" + }, + "acm003718jsd" : { + "type" : "ControlElement", + "id" : "acm003718jsd", + "name" : "getEntityWithProperties" + }, + "acm003719jsd" : { + "type" : "ControlElement", + "id" : "acm003719jsd", + "name" : "getEntities" + }, + "acm003720jsd" : { + "type" : "ControlElement", + "id" : "acm003720jsd", + "name" : "getEntities" + }, + "acm003721jsd" : { + "type" : "ClassUnit", + "id" : "acm003721jsd", + "name" : "LoadBalancedCRUDOperations", + "compilationUnitId" : "acm003707jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003605jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003713jsd", "acm003714jsd", "acm003715jsd", "acm003716jsd", "acm003717jsd", "acm003718jsd", "acm003719jsd", "acm003720jsd" ] + }, + "acm003722jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003722jsd", + "name" : "LoadBalancedImageOperations", + "parentId" : "acm003689jsd", + "content" : [ "acm003736jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003723jsd" : { + "type" : "CodePackage", + "id" : "acm003723jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003724jsd" ] + }, + "acm003724jsd" : { + "type" : "CodePackage", + "id" : "acm003724jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003725jsd" ] + }, + "acm003725jsd" : { + "type" : "CodePackage", + "id" : "acm003725jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003726jsd" ] + }, + "acm003726jsd" : { + "type" : "CodePackage", + "id" : "acm003726jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003727jsd" ] + }, + "acm003727jsd" : { + "type" : "CodePackage", + "id" : "acm003727jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003722jsd" ] + }, + "acm003728jsd" : { + "type" : "ControlElement", + "id" : "acm003728jsd", + "name" : "LoadBalancedImageOperations" + }, + "acm003729jsd" : { + "type" : "ControlElement", + "id" : "acm003729jsd", + "name" : "getProductImage" + }, + "acm003730jsd" : { + "type" : "ControlElement", + "id" : "acm003730jsd", + "name" : "getProductImage" + }, + "acm003731jsd" : { + "type" : "ControlElement", + "id" : "acm003731jsd", + "name" : "getProductPreviewImages" + }, + "acm003732jsd" : { + "type" : "ControlElement", + "id" : "acm003732jsd", + "name" : "getProductImages" + }, + "acm003733jsd" : { + "type" : "ControlElement", + "id" : "acm003733jsd", + "name" : "getWebImage" + }, + "acm003734jsd" : { + "type" : "ControlElement", + "id" : "acm003734jsd", + "name" : "getWebImages" + }, + "acm003735jsd" : { + "type" : "ControlElement", + "id" : "acm003735jsd", + "name" : "regenerateImages" + }, + "acm003736jsd" : { + "type" : "ClassUnit", + "id" : "acm003736jsd", + "name" : "LoadBalancedImageOperations", + "compilationUnitId" : "acm003722jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001370jsd", "acm001448jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003728jsd", "acm003729jsd", "acm003730jsd", "acm003731jsd", "acm003732jsd", "acm003733jsd", "acm003734jsd", "acm003735jsd" ] + }, + "acm003737jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003737jsd", + "name" : "LoadBalancedRecommenderOperations", + "parentId" : "acm003689jsd", + "content" : [ "acm003745jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003738jsd" : { + "type" : "CodePackage", + "id" : "acm003738jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003739jsd" ] + }, + "acm003739jsd" : { + "type" : "CodePackage", + "id" : "acm003739jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003740jsd" ] + }, + "acm003740jsd" : { + "type" : "CodePackage", + "id" : "acm003740jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003741jsd" ] + }, + "acm003741jsd" : { + "type" : "CodePackage", + "id" : "acm003741jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003742jsd" ] + }, + "acm003742jsd" : { + "type" : "CodePackage", + "id" : "acm003742jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003737jsd" ] + }, + "acm003743jsd" : { + "type" : "ControlElement", + "id" : "acm003743jsd", + "name" : "LoadBalancedRecommenderOperations" + }, + "acm003744jsd" : { + "type" : "ControlElement", + "id" : "acm003744jsd", + "name" : "getRecommendations" + }, + "acm003745jsd" : { + "type" : "ClassUnit", + "id" : "acm003745jsd", + "name" : "LoadBalancedRecommenderOperations", + "compilationUnitId" : "acm003737jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001352jsd", "acm001428jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003743jsd", "acm003744jsd" ] + }, + "acm003746jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003746jsd", + "name" : "LoadBalancedStoreOperations", + "parentId" : "acm003689jsd", + "content" : [ "acm003760jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003747jsd" : { + "type" : "CodePackage", + "id" : "acm003747jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003748jsd" ] + }, + "acm003748jsd" : { + "type" : "CodePackage", + "id" : "acm003748jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003749jsd" ] + }, + "acm003749jsd" : { + "type" : "CodePackage", + "id" : "acm003749jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003750jsd" ] + }, + "acm003750jsd" : { + "type" : "CodePackage", + "id" : "acm003750jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003751jsd" ] + }, + "acm003751jsd" : { + "type" : "CodePackage", + "id" : "acm003751jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003746jsd" ] + }, + "acm003752jsd" : { + "type" : "ControlElement", + "id" : "acm003752jsd", + "name" : "LoadBalancedStoreOperations" + }, + "acm003753jsd" : { + "type" : "ControlElement", + "id" : "acm003753jsd", + "name" : "placeOrder" + }, + "acm003754jsd" : { + "type" : "ControlElement", + "id" : "acm003754jsd", + "name" : "login" + }, + "acm003755jsd" : { + "type" : "ControlElement", + "id" : "acm003755jsd", + "name" : "logout" + }, + "acm003756jsd" : { + "type" : "ControlElement", + "id" : "acm003756jsd", + "name" : "isLoggedIn" + }, + "acm003757jsd" : { + "type" : "ControlElement", + "id" : "acm003757jsd", + "name" : "addProductToCart" + }, + "acm003758jsd" : { + "type" : "ControlElement", + "id" : "acm003758jsd", + "name" : "removeProductFromCart" + }, + "acm003759jsd" : { + "type" : "ControlElement", + "id" : "acm003759jsd", + "name" : "updateQuantity" + }, + "acm003760jsd" : { + "type" : "ClassUnit", + "id" : "acm003760jsd", + "name" : "LoadBalancedStoreOperations", + "compilationUnitId" : "acm003746jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001448jsd", "acm001488jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003752jsd", "acm003753jsd", "acm003754jsd", "acm003755jsd", "acm003756jsd", "acm003757jsd", "acm003758jsd", "acm003759jsd" ] + }, + "acm003761jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003761jsd", + "name" : "NonBalancedCRUDOperations", + "parentId" : "acm003689jsd", + "content" : [ "acm003775jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003762jsd" : { + "type" : "CodePackage", + "id" : "acm003762jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003763jsd" ] + }, + "acm003763jsd" : { + "type" : "CodePackage", + "id" : "acm003763jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003764jsd" ] + }, + "acm003764jsd" : { + "type" : "CodePackage", + "id" : "acm003764jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003765jsd" ] + }, + "acm003765jsd" : { + "type" : "CodePackage", + "id" : "acm003765jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003766jsd" ] + }, + "acm003766jsd" : { + "type" : "CodePackage", + "id" : "acm003766jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003761jsd" ] + }, + "acm003767jsd" : { + "type" : "ControlElement", + "id" : "acm003767jsd", + "name" : "NonBalancedCRUDOperations" + }, + "acm003768jsd" : { + "type" : "ControlElement", + "id" : "acm003768jsd", + "name" : "sendEntityForCreation" + }, + "acm003769jsd" : { + "type" : "ControlElement", + "id" : "acm003769jsd", + "name" : "sendEntityForUpdate" + }, + "acm003770jsd" : { + "type" : "ControlElement", + "id" : "acm003770jsd", + "name" : "deleteEntity" + }, + "acm003771jsd" : { + "type" : "ControlElement", + "id" : "acm003771jsd", + "name" : "getEntity" + }, + "acm003772jsd" : { + "type" : "ControlElement", + "id" : "acm003772jsd", + "name" : "getEntities" + }, + "acm003773jsd" : { + "type" : "ControlElement", + "id" : "acm003773jsd", + "name" : "getEntities" + }, + "acm003774jsd" : { + "type" : "ControlElement", + "id" : "acm003774jsd", + "name" : "getEntityWithProperty" + }, + "acm003775jsd" : { + "type" : "ClassUnit", + "id" : "acm003775jsd", + "name" : "NonBalancedCRUDOperations", + "compilationUnitId" : "acm003761jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003775jsd", "acm003849jsd", "acm003871jsd", "acm003879jsd" ], + "content" : [ "acm003767jsd", "acm003768jsd", "acm003769jsd", "acm003770jsd", "acm003771jsd", "acm003772jsd", "acm003773jsd", "acm003774jsd" ] + }, + "acm003776jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003776jsd", + "name" : "ResponseWrapper", + "parentId" : "acm003689jsd", + "content" : [ "acm003784jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003777jsd" : { + "type" : "CodePackage", + "id" : "acm003777jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003778jsd" ] + }, + "acm003778jsd" : { + "type" : "CodePackage", + "id" : "acm003778jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003779jsd" ] + }, + "acm003779jsd" : { + "type" : "CodePackage", + "id" : "acm003779jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003780jsd" ] + }, + "acm003780jsd" : { + "type" : "CodePackage", + "id" : "acm003780jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003781jsd" ] + }, + "acm003781jsd" : { + "type" : "CodePackage", + "id" : "acm003781jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003776jsd" ] + }, + "acm003782jsd" : { + "type" : "ControlElement", + "id" : "acm003782jsd", + "name" : "ResponseWrapper" + }, + "acm003783jsd" : { + "type" : "ControlElement", + "id" : "acm003783jsd", + "name" : "wrap" + }, + "acm003784jsd" : { + "type" : "ClassUnit", + "id" : "acm003784jsd", + "name" : "ResponseWrapper", + "compilationUnitId" : "acm003776jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003784jsd" ], + "content" : [ "acm003782jsd", "acm003783jsd" ] + }, + "acm003785jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003785jsd", + "name" : "RestUtil", + "parentId" : "acm003689jsd", + "content" : [ "acm003797jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003786jsd" : { + "type" : "CodePackage", + "id" : "acm003786jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003787jsd" ] + }, + "acm003787jsd" : { + "type" : "CodePackage", + "id" : "acm003787jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003788jsd" ] + }, + "acm003788jsd" : { + "type" : "CodePackage", + "id" : "acm003788jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003789jsd" ] + }, + "acm003789jsd" : { + "type" : "CodePackage", + "id" : "acm003789jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003790jsd" ] + }, + "acm003790jsd" : { + "type" : "CodePackage", + "id" : "acm003790jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003785jsd" ] + }, + "acm003791jsd" : { + "type" : "ControlElement", + "id" : "acm003791jsd", + "name" : "RestUtil" + }, + "acm003792jsd" : { + "type" : "ControlElement", + "id" : "acm003792jsd", + "name" : "throwCommonExceptions" + }, + "acm003793jsd" : { + "type" : "ControlElement", + "id" : "acm003793jsd", + "name" : "readEntityOrNull" + }, + "acm003794jsd" : { + "type" : "ControlElement", + "id" : "acm003794jsd", + "name" : "readThrowAndOrClose" + }, + "acm003795jsd" : { + "type" : "ControlElement", + "id" : "acm003795jsd", + "name" : "readListThrowAndOrCloseOrder" + }, + "acm003796jsd" : { + "type" : "ControlElement", + "id" : "acm003796jsd", + "name" : "readListThrowAndOrCloseProduct" + }, + "acm003797jsd" : { + "type" : "ClassUnit", + "id" : "acm003797jsd", + "name" : "RestUtil", + "compilationUnitId" : "acm003785jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm001408jsd", "acm001448jsd", "acm003641jsd", "acm003849jsd" ], + "content" : [ "acm003791jsd", "acm003792jsd", "acm003793jsd", "acm003794jsd", "acm003795jsd", "acm003796jsd" ] + }, + "acm003798jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003798jsd", + "name" : "TrackingFilter", + "parentId" : "acm003689jsd", + "content" : [ "acm003807jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "rest" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003799jsd" : { + "type" : "CodePackage", + "id" : "acm003799jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003800jsd" ] + }, + "acm003800jsd" : { + "type" : "CodePackage", + "id" : "acm003800jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003801jsd" ] + }, + "acm003801jsd" : { + "type" : "CodePackage", + "id" : "acm003801jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003802jsd" ] + }, + "acm003802jsd" : { + "type" : "CodePackage", + "id" : "acm003802jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003803jsd" ] + }, + "acm003803jsd" : { + "type" : "CodePackage", + "id" : "acm003803jsd", + "name" : "rest", + "parentId" : null, + "content" : [ "acm003798jsd" ] + }, + "acm003804jsd" : { + "type" : "ControlElement", + "id" : "acm003804jsd", + "name" : "init" + }, + "acm003805jsd" : { + "type" : "ControlElement", + "id" : "acm003805jsd", + "name" : "doFilter" + }, + "acm003806jsd" : { + "type" : "ControlElement", + "id" : "acm003806jsd", + "name" : "destroy" + }, + "acm003807jsd" : { + "type" : "ClassUnit", + "id" : "acm003807jsd", + "name" : "TrackingFilter", + "compilationUnitId" : "acm003798jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003697jsd", "acm003807jsd" ], + "content" : [ "acm003804jsd", "acm003805jsd", "acm003806jsd" ] + }, + "acm003808jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003808jsd", + "name" : "Tracing", + "parentId" : "acm003813jsd", + "content" : [ "acm003823jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "tracing" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003809jsd" : { + "type" : "CodePackage", + "id" : "acm003809jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003810jsd" ] + }, + "acm003810jsd" : { + "type" : "CodePackage", + "id" : "acm003810jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003811jsd" ] + }, + "acm003811jsd" : { + "type" : "CodePackage", + "id" : "acm003811jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003812jsd" ] + }, + "acm003812jsd" : { + "type" : "CodePackage", + "id" : "acm003812jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003813jsd" ] + }, + "acm003813jsd" : { + "type" : "CodePackage", + "id" : "acm003813jsd", + "name" : "tracing", + "parentId" : "acm003570jsd", + "content" : [ "acm003808jsd" ] + }, + "acm003814jsd" : { + "type" : "ControlElement", + "id" : "acm003814jsd", + "name" : "Tracing" + }, + "acm003815jsd" : { + "type" : "ControlElement", + "id" : "acm003815jsd", + "name" : "init" + }, + "acm003816jsd" : { + "type" : "ControlElement", + "id" : "acm003816jsd", + "name" : "inject" + }, + "acm003817jsd" : { + "type" : "ControlElement", + "id" : "acm003817jsd", + "name" : "extractCurrentSpan" + }, + "acm003818jsd" : { + "type" : "ControlElement", + "id" : "acm003818jsd", + "name" : "extractCurrentSpan" + }, + "acm003819jsd" : { + "type" : "ControlElement", + "id" : "acm003819jsd", + "name" : "buildSpanFromHeaders" + }, + "acm003820jsd" : { + "type" : "ControlElement", + "id" : "acm003820jsd", + "name" : "requestBuilderCarrier" + }, + "acm003821jsd" : { + "type" : "ControlElement", + "id" : "acm003821jsd", + "name" : "iterator" + }, + "acm003822jsd" : { + "type" : "ControlElement", + "id" : "acm003822jsd", + "name" : "put" + }, + "acm003823jsd" : { + "type" : "ClassUnit", + "id" : "acm003823jsd", + "name" : "Tracing", + "compilationUnitId" : "acm003808jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003814jsd", "acm003815jsd", "acm003816jsd", "acm003817jsd", "acm003818jsd", "acm003819jsd", "acm003820jsd", "acm003821jsd", "acm003822jsd" ] + }, + "acm003824jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003824jsd", + "name" : "AbstractCRUDEndpoint", + "parentId" : "acm003829jsd", + "content" : [ "acm003841jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003825jsd" : { + "type" : "CodePackage", + "id" : "acm003825jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003826jsd" ] + }, + "acm003826jsd" : { + "type" : "CodePackage", + "id" : "acm003826jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003827jsd" ] + }, + "acm003827jsd" : { + "type" : "CodePackage", + "id" : "acm003827jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003828jsd" ] + }, + "acm003828jsd" : { + "type" : "CodePackage", + "id" : "acm003828jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003829jsd" ] + }, + "acm003829jsd" : { + "type" : "CodePackage", + "id" : "acm003829jsd", + "name" : "util", + "parentId" : "acm003570jsd", + "content" : [ "acm003824jsd", "acm003842jsd", "acm003850jsd", "acm003872jsd" ] + }, + "acm003830jsd" : { + "type" : "ControlElement", + "id" : "acm003830jsd", + "name" : "create" + }, + "acm003831jsd" : { + "type" : "ControlElement", + "id" : "acm003831jsd", + "name" : "createEntity" + }, + "acm003832jsd" : { + "type" : "ControlElement", + "id" : "acm003832jsd", + "name" : "findById" + }, + "acm003833jsd" : { + "type" : "ControlElement", + "id" : "acm003833jsd", + "name" : "findEntityById" + }, + "acm003834jsd" : { + "type" : "ControlElement", + "id" : "acm003834jsd", + "name" : "listAll" + }, + "acm003835jsd" : { + "type" : "ControlElement", + "id" : "acm003835jsd", + "name" : "listAllEntities" + }, + "acm003836jsd" : { + "type" : "ControlElement", + "id" : "acm003836jsd", + "name" : "update" + }, + "acm003837jsd" : { + "type" : "ControlElement", + "id" : "acm003837jsd", + "name" : "updateEntity" + }, + "acm003838jsd" : { + "type" : "ControlElement", + "id" : "acm003838jsd", + "name" : "deleteById" + }, + "acm003839jsd" : { + "type" : "ControlElement", + "id" : "acm003839jsd", + "name" : "deleteEntity" + }, + "acm003840jsd" : { + "type" : "ControlElement", + "id" : "acm003840jsd", + "name" : "parseIntQueryParam" + }, + "acm003841jsd" : { + "type" : "ClassUnit", + "id" : "acm003841jsd", + "name" : "AbstractCRUDEndpoint", + "compilationUnitId" : "acm003824jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ "acm003841jsd" ], + "content" : [ "acm003830jsd", "acm003831jsd", "acm003832jsd", "acm003833jsd", "acm003834jsd", "acm003835jsd", "acm003836jsd", "acm003837jsd", "acm003838jsd", "acm003839jsd", "acm003840jsd" ] + }, + "acm003842jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003842jsd", + "name" : "NotFoundException", + "parentId" : "acm003829jsd", + "content" : [ "acm003849jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003843jsd" : { + "type" : "CodePackage", + "id" : "acm003843jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003844jsd" ] + }, + "acm003844jsd" : { + "type" : "CodePackage", + "id" : "acm003844jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003845jsd" ] + }, + "acm003845jsd" : { + "type" : "CodePackage", + "id" : "acm003845jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003846jsd" ] + }, + "acm003846jsd" : { + "type" : "CodePackage", + "id" : "acm003846jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003847jsd" ] + }, + "acm003847jsd" : { + "type" : "CodePackage", + "id" : "acm003847jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003842jsd" ] + }, + "acm003848jsd" : { + "type" : "ControlElement", + "id" : "acm003848jsd", + "name" : "NotFoundException" + }, + "acm003849jsd" : { + "type" : "ClassUnit", + "id" : "acm003849jsd", + "name" : "NotFoundException", + "compilationUnitId" : "acm003842jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003848jsd" ] + }, + "acm003850jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003850jsd", + "name" : "RESTClient", + "parentId" : "acm003829jsd", + "content" : [ "acm003871jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003851jsd" : { + "type" : "CodePackage", + "id" : "acm003851jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003852jsd" ] + }, + "acm003852jsd" : { + "type" : "CodePackage", + "id" : "acm003852jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003853jsd" ] + }, + "acm003853jsd" : { + "type" : "CodePackage", + "id" : "acm003853jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003854jsd" ] + }, + "acm003854jsd" : { + "type" : "CodePackage", + "id" : "acm003854jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003855jsd" ] + }, + "acm003855jsd" : { + "type" : "CodePackage", + "id" : "acm003855jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003850jsd" ] + }, + "acm003856jsd" : { + "type" : "ControlElement", + "id" : "acm003856jsd", + "name" : "RESTClient" + }, + "acm003857jsd" : { + "type" : "ControlElement", + "id" : "acm003857jsd", + "name" : "checkClientTrusted" + }, + "acm003858jsd" : { + "type" : "ControlElement", + "id" : "acm003858jsd", + "name" : "checkServerTrusted" + }, + "acm003859jsd" : { + "type" : "ControlElement", + "id" : "acm003859jsd", + "name" : "getAcceptedIssuers" + }, + "acm003860jsd" : { + "type" : "ControlElement", + "id" : "acm003860jsd", + "name" : "getActualTypeArguments" + }, + "acm003861jsd" : { + "type" : "ControlElement", + "id" : "acm003861jsd", + "name" : "getRawType" + }, + "acm003862jsd" : { + "type" : "ControlElement", + "id" : "acm003862jsd", + "name" : "getOwnerType" + }, + "acm003863jsd" : { + "type" : "ControlElement", + "id" : "acm003863jsd", + "name" : "setGlobalReadTimeout" + }, + "acm003864jsd" : { + "type" : "ControlElement", + "id" : "acm003864jsd", + "name" : "setGlobalConnectTimeout" + }, + "acm003865jsd" : { + "type" : "ControlElement", + "id" : "acm003865jsd", + "name" : "getGenericListType" + }, + "acm003866jsd" : { + "type" : "ControlElement", + "id" : "acm003866jsd", + "name" : "getEntityClass" + }, + "acm003867jsd" : { + "type" : "ControlElement", + "id" : "acm003867jsd", + "name" : "getService" + }, + "acm003868jsd" : { + "type" : "ControlElement", + "id" : "acm003868jsd", + "name" : "getEndpointTarget" + }, + "acm003869jsd" : { + "type" : "ControlElement", + "id" : "acm003869jsd", + "name" : "getEndpointURI" + }, + "acm003870jsd" : { + "type" : "ControlElement", + "id" : "acm003870jsd", + "name" : "getApplicationURI" + }, + "acm003871jsd" : { + "type" : "ClassUnit", + "id" : "acm003871jsd", + "name" : "RESTClient", + "compilationUnitId" : "acm003850jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003856jsd", "acm003857jsd", "acm003858jsd", "acm003859jsd", "acm003860jsd", "acm003861jsd", "acm003862jsd", "acm003863jsd", "acm003864jsd", "acm003865jsd", "acm003866jsd", "acm003867jsd", "acm003868jsd", "acm003869jsd", "acm003870jsd" ] + }, + "acm003872jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003872jsd", + "name" : "TimeoutException", + "parentId" : "acm003829jsd", + "content" : [ "acm003879jsd" ], + "pathElements" : [ "utilities", "tools.descartes.teastore.registryclient", "src", "main", "java", "tools", "descartes", "teastore", "registryclient", "util" ], + "extension" : "java", + "language" : "JAVA" + }, + "acm003873jsd" : { + "type" : "CodePackage", + "id" : "acm003873jsd", + "name" : "tools", + "parentId" : null, + "content" : [ "acm003874jsd" ] + }, + "acm003874jsd" : { + "type" : "CodePackage", + "id" : "acm003874jsd", + "name" : "descartes", + "parentId" : null, + "content" : [ "acm003875jsd" ] + }, + "acm003875jsd" : { + "type" : "CodePackage", + "id" : "acm003875jsd", + "name" : "teastore", + "parentId" : null, + "content" : [ "acm003876jsd" ] + }, + "acm003876jsd" : { + "type" : "CodePackage", + "id" : "acm003876jsd", + "name" : "registryclient", + "parentId" : null, + "content" : [ "acm003877jsd" ] + }, + "acm003877jsd" : { + "type" : "CodePackage", + "id" : "acm003877jsd", + "name" : "util", + "parentId" : null, + "content" : [ "acm003872jsd" ] + }, + "acm003878jsd" : { + "type" : "ControlElement", + "id" : "acm003878jsd", + "name" : "TimeoutException" + }, + "acm003879jsd" : { + "type" : "ClassUnit", + "id" : "acm003879jsd", + "name" : "TimeoutException", + "compilationUnitId" : "acm003872jsd", + "parentDatatypeId" : null, + "extendedDataTypesIds" : [ ], + "implementedDataTypesIds" : [ ], + "datatypeReferencesIds" : [ ], + "content" : [ "acm003878jsd" ] + }, + "acm003881jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003881jsd", + "name" : "build_docker", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "tools" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm003882jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003882jsd", + "name" : "test_kieker", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "tools" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm003883jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003883jsd", + "name" : "test_webui", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "tools" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm003884jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003884jsd", + "name" : "generate_cert", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "utilities", "tools.descartes.teastore.dockerbase", "ssl" ], + "extension" : "sh", + "language" : "SHELL" + }, + "acm003885jsd" : { + "type" : "CodeCompilationUnit", + "id" : "acm003885jsd", + "name" : "start", + "parentId" : null, + "content" : [ ], + "pathElements" : [ "utilities", "tools.descartes.teastore.dockerbase" ], + "extension" : "sh", + "language" : "SHELL" + } + } + }, + "content" : [ "acm001338jsd", "acm003881jsd", "acm003882jsd", "acm003883jsd", "acm003884jsd", "acm003885jsd" ] +} \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2018/README.md b/tests-base/src/main/resources/benchmark/teastore/text_2018/README.md new file mode 100644 index 000000000..104c003f0 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2018/README.md @@ -0,0 +1,22 @@ +# TeaStore 2018 + +The text was extracted from https://ieeexplore.ieee.org/document/8526888 + +## Assumption +* It is assumed that the ":" are not understood as a line break. +* For the goldstandard it was assumed, that the text still fits to the model from 2020. + +## Text Adaptation + +We built for several parts goldstandards. + +### Files + +* *_III.{txt|csv} refer to introduction in section III (before A. Architecture). +* *_A.{txt|csv} refer to section III. A. Architecture +* *_B.{txt|csv} refer to section III. B. Services +* *_AB.{txt|csv} refer to section III. A. Architecture and III. B. Services + +## License + +The text we extracted from their documentation originates from the publication [TeaStore: A Micro-Service Reference Application for Benchmarking, Modeling and Resource Management Research](https://ieeexplore.ieee.org/document/8526888). \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_A.txt b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_A.txt new file mode 100644 index 000000000..b35b23558 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_A.txt @@ -0,0 +1,38 @@ +The TeaStore consists of five distinct services and a Registry service as shown in Figure 1. +All services communicate with the Registry. +Additionally, the WebUI service issues calls to the Image-Provider, Authentication, Persistence and Recommender services. +The Image provider and Recommender both connect to a provided interface at the Persistence service. +However, this is only necessary on startup (dashed lines). +The Image provider must generate an image for each product, whereas the Recommender needs the current order history as training data. +Once running, only the Authentication and the WebUI access, modify, and create data using the Persistence. +All services communicate via representational state transfer (REST) calls, as REST has established itself as the de-facto industry standard in the micro-service domain. +The services are deployed as web-services on Apache Tomcat. +Yet, the services can be deployed on any Java application server able to run web-services packaged as war files. +As an alternative to deploying the war files, we provide convenient Docker images, containing the entire Tomcat stack. +Each service is packaged in its own war file or Docker image. +The TeaStore uses the client-side load balancer Ribbon, to allow replication of instances of one service type. +Ribbon distributes REST calls among running instances of a service. +Instead of using Netflix Eureka, the TeaStore uses its own registry that supplies service instances with target instances of a specified target specific service type. +To enable this, all running instances register and unregister at the registry, which can be queried for all running instances of a service. +This allows for dynamic addition and removal of service instances during run-time. +Each service also sends heartbeats to the registry. +In case a service is overloaded or crashed and therefore fails to send heartbeat messages, it is removed from the list of available instances. +Subsequently, it will not receive further requests from other services. +This mechanism ensures good error recovery and minimizes the amount of requests sent to unavailable service instances that would otherwise generate request timeouts. +As the TeaStore is primarily a benchmarking and testing application, it is open source and available to instrumentation using available monitoring solutions. +Pre-instrumented Docker images for each service that include the Kieker monitoring application [31], [32] as well as a central trace repository service, are already available. +We choose Kieker, as it requires no source code instrumentation and the instrumentation can be adapated at runtime. +However, as the TeaStore is open source, other monitoring solutions, such as Prometheus or Logstash can also be utilized. +Generally, all requests to the WebUI by a user or load generator are handled in a similar fashion. +The WebUI always retrieves information from the Persistence service. +If all information is available, images for presentation are fetched from the Image provider and embedded into the page. +Finally a Java Server Page (JSP) is compiled and returned. +This behavior ensures that even non-graphical browsers and simple load generators that otherwise would not fetch images from a regular site cause image I/O in the TeaStore, ensuring comparability regardless of the load generation method. +Figure 2 shows the service calls for a user request for a product information page. +After receiving the HTTP request, the WebUI checks the user’s login status by calling the Auth service. +Next, it queries the Persistence for the corresponding product information, based on a unique identifier. +Afterwards, the WebUI requests advertisement options for the current product from the Recommender, which generates a recommendation based on the learned historical order data. +The call to the Recommender takes the current login status into account. +Specifically, a logged in user receives personalized recommendations, whereas an anonymous user is served recommendations based on general item popularity. +Having received all product information, the WebUI queries the image provider to supply a full size image of the product shown in detail and preview images for the recommendations. +The image data is embedded in the HTML response as base-64 encoded strings. diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_AB.txt b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_AB.txt new file mode 100644 index 000000000..cb06e6cfd --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_AB.txt @@ -0,0 +1,89 @@ +The TeaStore consists of five distinct services and a Registry service as shown in Figure 1. +All services communicate with the Registry. +Additionally, the WebUI service issues calls to the Image-Provider, Authentication, Persistence and Recommender services. +The Image provider and Recommender both connect to a provided interface at the Persistence service. +However, this is only necessary on startup (dashed lines). +The Image provider must generate an image for each product, whereas the Recommender needs the current order history as training data. +Once running, only the Authentication and the WebUI access, modify, and create data using the Persistence. +All services communicate via representational state transfer (REST) calls, as REST has established itself as the de-facto industry standard in the micro-service domain. +The services are deployed as web-services on Apache Tomcat. +Yet, the services can be deployed on any Java application server able to run web-services packaged as war files. +As an alternative to deploying the war files, we provide convenient Docker images, containing the entire Tomcat stack. +Each service is packaged in its own war file or Docker image. +The TeaStore uses the client-side load balancer Ribbon, to allow replication of instances of one service type. +Ribbon distributes REST calls among running instances of a service. +Instead of using Netflix Eureka, the TeaStore uses its own registry that supplies service instances with target instances of a specified target specific service type. +To enable this, all running instances register and unregister at the registry, which can be queried for all running instances of a service. +This allows for dynamic addition and removal of service instances during run-time. +Each service also sends heartbeats to the registry. +In case a service is overloaded or crashed and therefore fails to send heartbeat messages, it is removed from the list of available instances. +Subsequently, it will not receive further requests from other services. +This mechanism ensures good error recovery and minimizes the amount of requests sent to unavailable service instances that would otherwise generate request timeouts. +As the TeaStore is primarily a benchmarking and testing application, it is open source and available to instrumentation using available monitoring solutions. +Pre-instrumented Docker images for each service that include the Kieker monitoring application [31], [32] as well as a central trace repository service, are already available. +We choose Kieker, as it requires no source code instrumentation and the instrumentation can be adapated at runtime. +However, as the TeaStore is open source, other monitoring solutions, such as Prometheus or Logstash can also be utilized. +Generally, all requests to the WebUI by a user or load generator are handled in a similar fashion. +The WebUI always retrieves information from the Persistence service. +If all information is available, images for presentation are fetched from the Image provider and embedded into the page. +Finally a Java Server Page (JSP) is compiled and returned. +This behavior ensures that even non-graphical browsers and simple load generators that otherwise would not fetch images from a regular site cause image I/O in the TeaStore, ensuring comparability regardless of the load generation method. +Figure 2 shows the service calls for a user request for a product information page. +After receiving the HTTP request, the WebUI checks the user’s login status by calling the Auth service. +Next, it queries the Persistence for the corresponding product information, based on a unique identifier. +Afterwards, the WebUI requests advertisement options for the current product from the Recommender, which generates a recommendation based on the learned historical order data. +The call to the Recommender takes the current login status into account. +Specifically, a logged in user receives personalized recommendations, whereas an anonymous user is served recommendations based on general item popularity. +Having received all product information, the WebUI queries the image provider to supply a full size image of the product shown in detail and preview images for the recommendations. +The image data is embedded in the HTML response as base-64 encoded strings. +The TeaStore consists of five services, in addition to a registry necessary for service discovery and load balancing. +In case monitoring is enabled, a trace repository service can be used to collect the monitoring traces centrally. +1) WebUI: This service provides the user interface, compiling and serving Java Server Pages (JSPs). +All data, available categories, their products, product recommendations and images, are retrieved from the Image provider and Persistence service instances. +The WebUI service performs preliminary validity checking on user inputs before passing the inputs to the Persistence service. +The WebUI focuses purely on presentation and web front-end operations. +However, the performance of the WebUI depends on the page that has to be rendered as each page contains at least one picture in different formats. +2) Image Provider: The Image provider serves images of different image sizes to the WebUI when being queried. +It optimizes image sizes depending on the target size in the presentation view. +The Image provider uses an internal cache and returns the image with the target size from the cache if available. +If the image is not available for this size, the image provider uses the largest available image for the category or product, scales it to the target size, and enters it into the cache. +It uses a least frequently used cache, reducing resource demand on frequently accessed data. +Through the caching, the response time for an image depends on whether this image is in the cache or not. +This service queries the Persistence service once on start-up to generate all product images with a fixed random seed. +3) Authentication: This service is responsible for the verification of both the login and the session data of a user. +The session data is validated using SHA-512 hashes. +For login verification, the BCrypt algorithm is used. +The session data includes information about the current shopping cart content, the user’s login status and old orders. +Thus, the performance of the hashing for the session data depends on number of articles in the cart and number of old orders. +Furthermore, as all session data is passed to the client, the Authentication itself manages to remain stateless and does not need additional information on startup. +4) Recommender: The Recommender service uses a rating algorithm to recommend products for the user to purchase. +The recommendations are based on items other customers bought, on the products in a user’s current shopping cart, and on the product the user is viewing at the time. +The initial Recommender instance usually uses the automatically generated data-set, as provided by the persistence service at initial startup, for training. +Any additional Recommender instance queries existing Recommender service instances for their training data-set and uses only those purchases for training. +This way, all Recommenders stay coherent, recommending identical products for the same input. +In addition, using identical training input also ensures that different instances of the Recommender service exhibit the same performance characteristics, which is important for many benchmarking and modeling contexts. +The Recommender service queries the Persistence service only once on startup. +For recommending, different algorithm implementations exhibiting different performance behaviors are available. +Next to a fallback algorithm based on overall item-popularity, two variants of Slope One [33] and one order-based nearest-neighbor approach are currently implemented. +One variant of Slope One calculates the predicted rating matrix beforehand and keeps it in the memory (memory-intensive), wheras the other one calculates every row if needed, but discards all results after each recommendation step (CPU-intensive). +5) Persistence: The Persistence service provides access and caching for the store’s relational database. +Products, their categories, purchases, and registered store users are stored in a relational SQL database. +The Persistence service uses caching to decrease response times and to reduce the load on the database itself for improved scalability. +The cache is kept coherent across multiple Persistence service instances. +We use the EclipseLink JPA implementation as a black-box cache. +All data inside the database itself is generated at the first start of the initial persistence instance. +By using a persistence service in separation from the actual database, we improve scalability by providing a replicable caching service. +However, the performance of the database accesses depends on the content in the database that is changed or can be repopulated during the operation of the store. +6) Registry: The registry is not part of the TeaStore application under test but is a necessary support service. +It keeps track of all running service instances, their IP addresses or host names and port numbers under which the services are available. +All service instances send keep-alive messages to the registry after registration. +If a service unregisters or no keep-alive message is received within a fixed time frame, the service is removed from the list of available service instances. +All services can query the list of service instances for a specified service type in order to distribute their outgoing requests between running target instances. +7) TraceRepository: The services are configured with optional Kieker monitoring [31], [32]. +With monitoring enabled, each service instance collects information about utilization, response times and call paths. +Collecting these monitoring traces manually is only feasible for small deployments. +Therefore, we offer a central trace repository, which consists of an AMQP server coupled with a graphical web interface. +All service instances send their logs to the AMQP server. +The web interface collects them and makes them available for download. +The trace repository does not only reduce the effort required to acquire the monitoring traces, but also enables online analysis such as online resource demand estimation [34]. +Kieker traces are also available for use with tools other than Kieker’s own tooling, as they can be automatically transformed to Open Execution Trace Exchange (OPEN.xtrace) traces, an open source trace format enabling interoperability between software performance engineering approaches [35]. diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_B.txt b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_B.txt new file mode 100644 index 000000000..de313e194 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_B.txt @@ -0,0 +1,51 @@ +The TeaStore consists of five services, in addition to a registry necessary for service discovery and load balancing. +In case monitoring is enabled, a trace repository service can be used to collect the monitoring traces centrally. +1) WebUI: This service provides the user interface, compiling and serving Java Server Pages (JSPs). +All data, available categories, their products, product recommendations and images, are retrieved from the Image provider and Persistence service instances. +The WebUI service performs preliminary validity checking on user inputs before passing the inputs to the Persistence service. +The WebUI focuses purely on presentation and web front-end operations. +However, the performance of the WebUI depends on the page that has to be rendered as each page contains at least one picture in different formats. +2) Image Provider: The Image provider serves images of different image sizes to the WebUI when being queried. +It optimizes image sizes depending on the target size in the presentation view. +The Image provider uses an internal cache and returns the image with the target size from the cache if available. +If the image is not available for this size, the image provider uses the largest available image for the category or product, scales it to the target size, and enters it into the cache. +It uses a least frequently used cache, reducing resource demand on frequently accessed data. +Through the caching, the response time for an image depends on whether this image is in the cache or not. +This service queries the Persistence service once on start-up to generate all product images with a fixed random seed. +3) Authentication: This service is responsible for the verification of both the login and the session data of a user. +The session data is validated using SHA-512 hashes. +For login verification, the BCrypt algorithm is used. +The session data includes information about the current shopping cart content, the user’s login status and old orders. +Thus, the performance of the hashing for the session data depends on number of articles in the cart and number of old orders. +Furthermore, as all session data is passed to the client, the Authentication itself manages to remain stateless and does not need additional information on startup. +4) Recommender: The Recommender service uses a rating algorithm to recommend products for the user to purchase. +The recommendations are based on items other customers bought, on the products in a user’s current shopping cart, and on the product the user is viewing at the time. +The initial Recommender instance usually uses the automatically generated data-set, as provided by the persistence service at initial startup, for training. +Any additional Recommender instance queries existing Recommender service instances for their training data-set and uses only those purchases for training. +This way, all Recommenders stay coherent, recommending identical products for the same input. +In addition, using identical training input also ensures that different instances of the Recommender service exhibit the same performance characteristics, which is important for many benchmarking and modeling contexts. +The Recommender service queries the Persistence service only once on startup. +For recommending, different algorithm implementations exhibiting different performance behaviors are available. +Next to a fallback algorithm based on overall item-popularity, two variants of Slope One [33] and one order-based nearest-neighbor approach are currently implemented. +One variant of Slope One calculates the predicted rating matrix beforehand and keeps it in the memory (memory-intensive), wheras the other one calculates every row if needed, but discards all results after each recommendation step (CPU-intensive). +5) Persistence: The Persistence service provides access and caching for the store’s relational database. +Products, their categories, purchases, and registered store users are stored in a relational SQL database. +The Persistence service uses caching to decrease response times and to reduce the load on the database itself for improved scalability. +The cache is kept coherent across multiple Persistence service instances. +We use the EclipseLink JPA implementation as a black-box cache. +All data inside the database itself is generated at the first start of the initial persistence instance. +By using a persistence service in separation from the actual database, we improve scalability by providing a replicable caching service. +However, the performance of the database accesses depends on the content in the database that is changed or can be repopulated during the operation of the store. +6) Registry: The registry is not part of the TeaStore application under test but is a necessary support service. +It keeps track of all running service instances, their IP addresses or host names and port numbers under which the services are available. +All service instances send keep-alive messages to the registry after registration. +If a service unregisters or no keep-alive message is received within a fixed time frame, the service is removed from the list of available service instances. +All services can query the list of service instances for a specified service type in order to distribute their outgoing requests between running target instances. +7) TraceRepository: The services are configured with optional Kieker monitoring [31], [32]. +With monitoring enabled, each service instance collects information about utilization, response times and call paths. +Collecting these monitoring traces manually is only feasible for small deployments. +Therefore, we offer a central trace repository, which consists of an AMQP server coupled with a graphical web interface. +All service instances send their logs to the AMQP server. +The web interface collects them and makes them available for download. +The trace repository does not only reduce the effort required to acquire the monitoring traces, but also enables online analysis such as online resource demand estimation [34]. +Kieker traces are also available for use with tools other than Kieker’s own tooling, as they can be automatically transformed to Open Execution Trace Exchange (OPEN.xtrace) traces, an open source trace format enabling interoperability between software performance engineering approaches [35]. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_III.txt b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_III.txt new file mode 100644 index 000000000..846b76c4e --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2018/teastore_2018_III.txt @@ -0,0 +1,23 @@ +The TeaStore is an online store for tea and tea related utilities. +Its products are sorted into categories. +For online shopping, the store supports an overview of products including preview images for each category and featuring a configurable number of products per page. +All pages of the TeaStore show an overview header bar and include the category menu and page footer. +As main content, it shows the products for the selected category, including shortened product information and the preview image. +Depending on the number of products shown per page, the user has the option to cycle through multiple pages of the category view. +Each product can be viewed on a separate product page containing detailed information, a large image, and advertisements for other store items. +Besides the regular header, footer, and category list, this page includes a detailed image of the product (provided by the Image Provider Service), a description, and price. +The page also contains an advertisement panel suggesting three products that the user might be interested in. +The advertised products are provided by the Recommender Service and are selected depending on the viewed product. +All products can be placed in a shopping cart and users can proceed to order the current shopping cart. +The user can choose to modify the shopping cart at any time. +The shopping cart page lists all products currently included in the cart together with some product information and the quantity. +The shopping cart view also displays product advertisements, which are, again, provided by the separate Recommender service and selected depending on the shopping cart’s contents. +To order, the user must supply personal information about the billing address and payment details. +After confirmation by the user, the current shopping cart is stored in the order history database through the Persistence service +The store also supports user authentication and login. +Registered users can view their order history after login. +In addition to regular operations, the TeaStore’s user interface provides an overview of all running service instances and an option to regenerate the database. +In case a specific database setup or size is necessary, it can be regenerated with user defined parameters. +These include the number of categories, number of products per category, number of users, and maximum orders per user history. +The service overview and database regeneration are not intended to be run during an experiment run, but separately on experiment setup. +All functionality is contained within the five primary microservices and the Registry service. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2020/README.md b/tests-base/src/main/resources/benchmark/teastore/text_2020/README.md new file mode 100644 index 000000000..0c6c952a6 --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2020/README.md @@ -0,0 +1,13 @@ +# TeaStore 2020 + +The text was extracted from https://web.archive.org/web/20201102180945/https://github.com/DescartesResearch/teastore/wiki/Services + +## Text Adaptation + +* Captions were removed +* explicit links were replaced with "link" + +## License + +The [documentation](https://web.archive.org/web/20201102180945/https://github.com/DescartesResearch/teastore/wiki/Services) of Teastore was part of their [repository](https://github.com/DescartesResearch/teastore). +Therefore, the text we extracted from their documentation is licensed according to the [license of Teastore](https://github.com/DescartesResearch/TeaStore/blob/master/README.md) under Apache-2.0. \ No newline at end of file diff --git a/tests-base/src/main/resources/benchmark/teastore/text_2020/teastore.txt b/tests-base/src/main/resources/benchmark/teastore/text_2020/teastore.txt new file mode 100644 index 000000000..b30ad180b --- /dev/null +++ b/tests-base/src/main/resources/benchmark/teastore/text_2020/teastore.txt @@ -0,0 +1,43 @@ +The TeaStore consists of 5 replicatable services and a single Registry instance. +The WebUI service retrieves images from the Image Provider. +Users are authenticated by the Auth service. +Data is retrieved from the PersistenceProvider and product recommendations from the Recommender service. +The WebUI provides the TeaStore front-end using Servlets in combination with JSP files. +It contains logic to save and retireve values from cookies. +Images (with few exceptions) are not provides by the WebUi, but are retrieved from the Image Provider service instead. +The UI provides a status page at link indicating the current state of the TeaStore. +The status view lists the instance count and hosts for all registered service instances. +The Image Provider delivers images to the WebUI as base64 encoded strings to embed them in the final HTML. +It matches the provided product ID or UI name (the filename for images not representing a product and therefore without product ID) and the image size to a unique image identifier. +If the product ID or UI name is not available to the Image Provider, a standard "not found" image will be delivered in the correct size. +If the product ID or UI name is found but not in the requested size, the largest image will be loaded and scaled. +The scaled image is stored for later use. +If the product ID or UI name and size is found, the image will be loaded and delivered. +To speed up image delivery, an in-memory cache with Least Frequently Used (LFU) replacemenent strategy is in place. +Before loading an image from the physical drive, a cache lookup will be performed and if the image is present, delivered directly from cache or from the physical drive otherwise. +The Auth service handles user and session authentication. +Passwords are hashed using BCrypt. +To validate sessions, the SessionBlob is salted and hashed using SHA512 and stored in a cookie. +When a SessionBlob is received, the cookie content is re-salted and checked against the hash to check for session tampering. +The Persistence service provides access to the data persisted in the relational database back-end. +It maps the relational entities to the JSON entity objects passed between services using the EclipseLink JPA ORM mapper. +It features endpoints for general CRUD-Operations (Create, Read, Update, Delete) for the persistent entities. +The persistence provider uses a second level entity cache provided by the JPA implementation. +As such, it also acts as a caching layer. +The Recommender is used to generate individual product recommendations for each user. +It is trained using all existing orders. +Recommendations are generated based on the users current shopping cart, the user's previous orders and/or the item the user is currently looking at. +The item rating of the users are based on their purchases. +If the current user is unknown (e.g., if the user is not logged in or did not purchase anything yet), a fallback algorithm based on the general item popularity is chosen. +If the user is known, Slope One as item-based collaborative filtering is applied to calculate the recommendations. +We implemented two versions of the algorithm. +One CPU-intensive, calculating the item-rankings per user on-the-go and one memory-intensive, calculating the total user rating prediction matrix during the training phase. +Furthermore, one order-based nearest-neighbor approach is available. +Its recommendation time is dependent on the number of items in the current cart as well as the total number of stored orders. +The Registry provides information about how many service instances are online for each service and where they are located. +Service instances register themselves at the registry on startup. +Services are also required to send a heartbeat signal by re-registering periodically. +Services missing their heartbeat for more than 10 s are assumed to be offline until the register function is called again. +Every running instance of the TeaStore uses one single registry. +The TeaStore is a test application. +By limiting it to a single registry instance, it enables easy configuration of multiple parallel TeaStores with minimal configuration overhead. \ No newline at end of file diff --git a/tests-base/src/main/resources/configurations/bbb/filterlists_all.txt b/tests-base/src/main/resources/configurations/bbb/filterlists_all.txt new file mode 100644 index 000000000..699065e94 --- /dev/null +++ b/tests-base/src/main/resources/configurations/bbb/filterlists_all.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=conversion,core,cpu,file,front,integration,nodejs,party,process,side,svg diff --git a/tests-base/src/main/resources/configurations/bbb/filterlists_none.txt b/tests-base/src/main/resources/configurations/bbb/filterlists_none.txt new file mode 100644 index 000000000..6ba1f397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/bbb/filterlists_none.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=false +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/bbb/filterlists_onlyCommon.txt b/tests-base/src/main/resources/configurations/bbb/filterlists_onlyCommon.txt new file mode 100644 index 000000000..b62a642f2 --- /dev/null +++ b/tests-base/src/main/resources/configurations/bbb/filterlists_onlyCommon.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/jabref/enhanced_jabref.txt b/tests-base/src/main/resources/configurations/jabref/enhanced_jabref.txt new file mode 100644 index 000000000..c22b34b4e --- /dev/null +++ b/tests-base/src/main/resources/configurations/jabref/enhanced_jabref.txt @@ -0,0 +1,4 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=aspect,bibdatases,bibentries,bus,event,core +RecommendedInstanceProbabilityFilter::thresholdNameAndTypeProbability=0.2 +RecommendedInstanceProbabilityFilter::thresholdNameOrTypeProbability=0.5 diff --git a/tests-base/src/main/resources/configurations/jabref/filterlists_all.txt b/tests-base/src/main/resources/configurations/jabref/filterlists_all.txt new file mode 100644 index 000000000..c5db269f8 --- /dev/null +++ b/tests-base/src/main/resources/configurations/jabref/filterlists_all.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=aspect,bibdatases,bibentries,bus,event diff --git a/tests-base/src/main/resources/configurations/jabref/filterlists_none.txt b/tests-base/src/main/resources/configurations/jabref/filterlists_none.txt new file mode 100644 index 000000000..6ba1f397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/jabref/filterlists_none.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=false +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/jabref/filterlists_onlyCommon.txt b/tests-base/src/main/resources/configurations/jabref/filterlists_onlyCommon.txt new file mode 100644 index 000000000..cc1124b07 --- /dev/null +++ b/tests-base/src/main/resources/configurations/jabref/filterlists_onlyCommon.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist= \ No newline at end of file diff --git a/tests-base/src/main/resources/configurations/ms/filterlists_all.txt b/tests-base/src/main/resources/configurations/ms/filterlists_all.txt new file mode 100644 index 000000000..86e88397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/ms/filterlists_all.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=download,file,log,meta,server diff --git a/tests-base/src/main/resources/configurations/ms/filterlists_none.txt b/tests-base/src/main/resources/configurations/ms/filterlists_none.txt new file mode 100644 index 000000000..6ba1f397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/ms/filterlists_none.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=false +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/ms/filterlists_onlyCommon.txt b/tests-base/src/main/resources/configurations/ms/filterlists_onlyCommon.txt new file mode 100644 index 000000000..b62a642f2 --- /dev/null +++ b/tests-base/src/main/resources/configurations/ms/filterlists_onlyCommon.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/tm/filterlists_all.txt b/tests-base/src/main/resources/configurations/tm/filterlists_all.txt new file mode 100644 index 000000000..5c7253368 --- /dev/null +++ b/tests-base/src/main/resources/configurations/tm/filterlists_all.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=assertion,backdoor,check,classes,code,cron,end,failure,javascript,key,limit,minute,origin,processing,queue,request,servlet,task,testing,unit,utility,origin diff --git a/tests-base/src/main/resources/configurations/tm/filterlists_none.txt b/tests-base/src/main/resources/configurations/tm/filterlists_none.txt new file mode 100644 index 000000000..6ba1f397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/tm/filterlists_none.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=false +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/tm/filterlists_onlyCommon.txt b/tests-base/src/main/resources/configurations/tm/filterlists_onlyCommon.txt new file mode 100644 index 000000000..b62a642f2 --- /dev/null +++ b/tests-base/src/main/resources/configurations/tm/filterlists_onlyCommon.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/ts/filterlists_all.txt b/tests-base/src/main/resources/configurations/ts/filterlists_all.txt new file mode 100644 index 000000000..76bd82c1d --- /dev/null +++ b/tests-base/src/main/resources/configurations/ts/filterlists_all.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist=instance,item,name,product,rankings,rating,size diff --git a/tests-base/src/main/resources/configurations/ts/filterlists_none.txt b/tests-base/src/main/resources/configurations/ts/filterlists_none.txt new file mode 100644 index 000000000..6ba1f397b --- /dev/null +++ b/tests-base/src/main/resources/configurations/ts/filterlists_none.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=false +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/configurations/ts/filterlists_onlyCommon.txt b/tests-base/src/main/resources/configurations/ts/filterlists_onlyCommon.txt new file mode 100644 index 000000000..b62a642f2 --- /dev/null +++ b/tests-base/src/main/resources/configurations/ts/filterlists_onlyCommon.txt @@ -0,0 +1,2 @@ +UnwantedWordsFilter::enableCommonBlacklist=true +UnwantedWordsFilter::customBlacklist= diff --git a/tests-base/src/main/resources/simplelogger.properties b/tests-base/src/main/resources/simplelogger.properties new file mode 100644 index 000000000..f5fde855f --- /dev/null +++ b/tests-base/src/main/resources/simplelogger.properties @@ -0,0 +1,31 @@ +# SLF4J's SimpleLogger configuration file +# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. +# Default logging detail level for all instances of SimpleLogger. +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, defaults to "info". +org.slf4j.simpleLogger.defaultLogLevel=info +# Logging detail level for a SimpleLogger instance named "xxxxx". +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, the default logging detail level is used. +org.slf4j.simpleLogger.log.edu.stanford.nlp=error +org.slf4j.simpleLogger.log.edu.kit.kastel.mcse.ardoco.core=error +org.slf4j.simpleLogger.log.edu.kit.kastel.mcse.ardoco.core.tests=info +org.slf4j.simpleLogger.log.edu.kit.kastel.informalin.data=error +# +# Set to true if you want the current date and time to be included in output messages. +# Default is false, and will output the number of milliseconds elapsed since startup. +#org.slf4j.simpleLogger.showDateTime=false +# The date and time format to be used in the output messages. +# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. +# If the format is not specified or is invalid, the default format is used. +# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. +#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z +# Set to true if you want to output the current thread name. +# Defaults to true. +org.slf4j.simpleLogger.showThreadName=false +# Set to true if you want the Logger instance name to be included in output messages. +# Defaults to true. +#org.slf4j.simpleLogger.showLogName=true +# Set to true if you want the last component of the name to be included in output messages. +# Defaults to false. +org.slf4j.simpleLogger.showShortLogName=false diff --git a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java new file mode 100644 index 000000000..dbe3c76eb --- /dev/null +++ b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java @@ -0,0 +1,21 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +class CodeProjectTest { + @EnumSource(CodeProject.class) + @ParameterizedTest(name = "{0}") + void testFiles(CodeProject project) { + Assertions.assertNotNull(project); + Assertions.assertNotNull(project.getCodeRepository()); + Assertions.assertNotNull(project.getCommitHash()); + Assertions.assertNotNull(project.getCodeLocation(true)); + Assertions.assertNotNull(project.getExpectedResultsForSamCode()); + Assertions.assertNotNull(project.getExpectedResultsForSadSamCode()); + Assertions.assertNotNull(project.getSamCodeGoldStandard()); + Assertions.assertNotNull(project.getSadCodeGoldStandard()); + } +} diff --git a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java new file mode 100644 index 000000000..2776ef41c --- /dev/null +++ b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java @@ -0,0 +1,20 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.tests.eval; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +class ProjectTest { + + @EnumSource(Project.class) + @ParameterizedTest(name = "{0}") + void testFiles(Project project) { + Assertions.assertNotNull(project.getModelFile()); + Assertions.assertNotNull(project.getTextFile()); + Assertions.assertNotNull(project.getTlrGoldStandard()); + Assertions.assertNotNull(project.getMissingTextForModelElementGoldStandard()); + Assertions.assertNotNull(project.getExpectedTraceLinkResults()); + Assertions.assertNotNull(project.getExpectedInconsistencyResults()); + } +} From 7fefa1a74ee5be53ded7f4a1a138c06c93034ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 5 Dec 2024 10:41:57 +0100 Subject: [PATCH 023/115] Fix parent relationship --- pom.xml | 297 ++------------------------------------------------------ 1 file changed, 7 insertions(+), 290 deletions(-) diff --git a/pom.xml b/pom.xml index cab912906..b86d86e5b 100644 --- a/pom.xml +++ b/pom.xml @@ -2,6 +2,12 @@ 4.0.0 + + io.github.ardoco + parent + 2.0.0-refactoring + + io.github.ardoco.core parent ${revision} @@ -68,27 +74,8 @@ - 2.0.0-SNAPSHOT + 2.0.0-refactoring ${revision} - UTF-8 - UTF-8 - UTF-8 - 21 - ${java.version} - ${java.version} - ${java.version} - - - 2.0.14 - 2.43.0 - 5.11.0 - 12.0.0.M3 - 2.17.2 - 3.25.8 - 2.31.0 - 5.2.0 - 3.3.0 - 1.5.2 ArDoCo_Core ${project.groupId}:${project.artifactId} @@ -98,161 +85,9 @@ ${project.basedir}/../../${aggregate.report.dir} report/target/site/jacoco-aggregate/jacoco.xml -Xmx4g -Xss256m - 4.5.6 all,-missing - - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.datatype - jackson-datatype-jdk8 - ${jackson.version} - - - - - com.fasterxml.jackson.module - jackson-module-kotlin - ${jackson.version} - - - com.tngtech.archunit - archunit-junit5 - 1.3.0 - - - commons-io - commons-io - 2.16.1 - - - - org.apache.commons - commons-lang3 - 3.14.0 - - - org.apache.commons - commons-text - 1.12.0 - - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - - - org.assertj - assertj-core - 3.26.3 - test - - - org.eclipse.collections - eclipse-collections - ${eclipse-collections.version} - - - org.eclipse.collections - eclipse-collections-api - ${eclipse-collections.version} - - - org.eclipse.jgit - org.eclipse.jgit - 6.9.0.202403050737-r - - - org.mockito - mockito-core - ${mockito.version} - test - - - org.mockito - mockito-inline - ${mockito.version} - test - - - org.mockito - mockito-junit-jupiter - ${mockito.version} - test - - - org.reflections - reflections - 0.10.2 - - - org.slf4j - log4j-over-slf4j - ${slf4j.version} - - - - - org.slf4j - slf4j-simple - ${slf4j.version} - - - - - - - com.google.errorprone - error_prone_core - ${error-prone.version} - - - org.junit.jupiter - junit-jupiter-api - ${junit.version} - test - - - org.junit.jupiter - junit-jupiter-engine - ${junit.version} - test - - - org.junit.jupiter - junit-jupiter-params - ${junit.version} - test - - - org.junit.vintage - junit-vintage-engine - ${junit.version} - test - - - org.slf4j - slf4j-api - ${slf4j.version} - - mavenCentral @@ -271,124 +106,6 @@ - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.7.1 - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - ${java.version} - ${java.version} - ${java.version} - UTF-8 - true - - -XDcompilePolicy=simple - -Xplugin:ErrorProne - -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED - -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED - -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED - - 128m - 512m - - - com.google.errorprone - error_prone_core - ${error-prone.version} - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - 3.2.5 - - - - integration-test - verify - - integration-test - - - - - org.apache.maven.plugins - maven-gpg-plugin - 3.2.4 - - - org.apache.maven.plugins - maven-install-plugin - 3.1.2 - - - org.apache.maven.plugins - maven-jar-plugin - 3.4.2 - - - org.apache.maven.plugins - maven-surefire-plugin - 3.2.5 - - - org.codehaus.mojo - flatten-maven-plugin - 1.6.0 - - true - resolveCiFriendliesOnly - - expand - expand - - - - - flatten.clean - - clean - - clean - - - flatten - - flatten - - process-resources - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.7.0 - true - - ossrh - https://s01.oss.sonatype.org/ - true - - - - com.diffplug.spotless From b3f7b3bb87a6bd90373d3d71e328df3aaf13e212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 5 Dec 2024 10:42:27 +0100 Subject: [PATCH 024/115] Remove deep copy of Data Repository, since states are not all serializable --- .../mcse/ardoco/core/data/DataRepository.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index 95acacf39..473a744a4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -9,8 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper; - /** * This class represents a data repository that can be used to store and fetch certain data ({@link PipelineStepData}. Data can be added and fetched with the * help of a data identifier (as string). Fetching also needs the necessary class of data that is expected. @@ -41,7 +39,7 @@ public Optional getData(String identifier, Class if (possibleData != null) { return possibleData.asPipelineStepData(clazz); } - logger.warn("Could not find data for id '{}'", identifier); + DataRepository.logger.warn("Could not find data for id '{}'", identifier); return Optional.empty(); } @@ -53,7 +51,7 @@ public Optional getData(String identifier, Class */ public void addData(String identifier, PipelineStepData pipelineStepData) { if (this.data.put(identifier, pipelineStepData) != null) { - logger.warn("Overriding data with identifier '{}'", identifier); + DataRepository.logger.warn("Overriding data with identifier '{}'", identifier); } } @@ -65,13 +63,4 @@ public void addData(String identifier, PipelineStepData pipelineStepData) { public void addAllData(DataRepository dataRepository) { this.data.putAll(dataRepository.data); } - - /** - * Creates a deep copy of the data repository using serialization. - * - * @return deep copy of the data repository - */ - public DataRepository deepCopy() { - return DataRepositoryHelper.deepCopy(this); - } } From 0bd90ab475870f29a29b5cfd2032e3b26b24a755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 5 Dec 2024 11:07:21 +0100 Subject: [PATCH 025/115] Rename parents & reports --- framework/pom.xml | 2 +- pipeline-core/pom.xml | 2 +- pom.xml | 2 +- report/pom.xml | 6 +++--- tests-base/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/framework/pom.xml b/framework/pom.xml index 9c6f7b4ab..e9a7e3f98 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.github.ardoco.core - parent + parent-core ${revision} diff --git a/pipeline-core/pom.xml b/pipeline-core/pom.xml index e8a773cc1..7c6dbbfdc 100644 --- a/pipeline-core/pom.xml +++ b/pipeline-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.github.ardoco.core - parent + parent-core ${revision} ../pom.xml diff --git a/pom.xml b/pom.xml index b86d86e5b..7884536da 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.github.ardoco.core - parent + parent-core ${revision} pom diff --git a/report/pom.xml b/report/pom.xml index 10b3820f1..be1c81ad4 100644 --- a/report/pom.xml +++ b/report/pom.xml @@ -3,14 +3,14 @@ 4.0.0 io.github.ardoco.core - parent + parent-core ${revision} ../pom.xml - report + report-core jar - Report + Report (Core) This module is used to create reports for SonarCloud and similar. diff --git a/tests-base/pom.xml b/tests-base/pom.xml index 875404eb5..e37b386fa 100644 --- a/tests-base/pom.xml +++ b/tests-base/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.github.ardoco.core - parent + parent-core ${revision} ../pom.xml From d5163136845fb5a3dd96e0506e5dde389ec07ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 5 Dec 2024 15:04:09 +0100 Subject: [PATCH 026/115] Add push script --- .../LegacyModelExtractionStateByArCoTL.java | 12 +- .../arcotl/code/CodeCompilationUnit.java | 2 +- .../api/stage/textextraction/MappingKind.java | 13 +- .../MultiHopTransitiveTraceLink.java | 7 +- .../core/api/tracelink/SamCodeTraceLink.java | 5 - .../ardoco/core/common/RepositoryHandler.java | 4 +- .../wordsim/measures/glove/GloveMeasure.java | 2 +- .../measures/sewordsim/SEWordSimMeasure.java | 2 +- .../wordsim/vector/VectorUtils.java | 10 +- .../mcse/ardoco/core/data/AbstractState.java | 2 + .../core/pipeline/AbstractExecutionStage.java | 4 +- .../core/pipeline/agent/PipelineAgent.java | 2 +- .../converter/DtoToObjectConverter.java | 2 +- .../converter/ObjectToDtoConverter.java | 14 +- .../textproviderjson/textobject/WordImpl.java | 4 +- .../converter/TreeParserTest.java | 4 +- .../ardoco/core/api/output/ArDoCoResult.java | 1 - .../ardoco/core/common/util/FilePrinter.java | 412 ------------------ .../core/execution/runner/ArDoCoRunner.java | 17 +- pom.xml | 2 +- .../tests/architecture/ArchitectureTest.java | 22 +- .../architecture/DeterministicArDoCoTest.java | 6 +- .../ardoco/core/tests/eval/CodeProject.java | 2 +- .../core/tests/eval/GoldStandardProject.java | 2 +- 24 files changed, 51 insertions(+), 502 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java index c5e5da60a..ece4e4d72 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import java.util.ArrayList; @@ -83,16 +83,16 @@ private static ImmutableList initCodeInstances(CodeModel codeMode } private static void fillPackages(Collection packages, List instances) { - for (var modelElement : packages) { - String path = modelElement.getName(); + for (var modelElement : packages) { + StringBuilder path = new StringBuilder(modelElement.getName()); CodeModule parent = modelElement.getParent(); while (parent != null) { - path = parent.getName() + "/" + path; + path.insert(0, parent.getName() + "/"); parent = parent.getParent(); } // Ensure that package is handled as directory - path += "/"; - instances.add(new ModelInstanceImpl(modelElement.getName(), "Package", path)); + path.append("/"); + instances.add(new ModelInstanceImpl(modelElement.getName(), "Package", path.toString())); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index ec5440cb2..48f1bf04f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -63,7 +63,7 @@ public List getParentPackageNames() { while (parent.hasParent()) { parent = parent.getParent(); if (parent instanceof CodePackage) { - parents.add(0, parent.getName()); + parents.addFirst(parent.getName()); } } return parents; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java index f63081865..4a049b795 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java @@ -1,18 +1,9 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; /** * The mapping type of a mapping state defines whether the mapping is a name or a type. */ public enum MappingKind { - - /** - * A noun mapping can be identified as an identifier {@link #NAME}, a potential type {@link #TYPE} - */ - NAME, - /** - * A noun mapping can be identified as an identifier {@link #NAME}, a potential type {@link #TYPE} - */ - TYPE - + NAME, TYPE } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java index abfc536a7..bbf3b87bf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2024. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.ArrayList; @@ -80,10 +81,4 @@ public boolean equals(Object obj) { } return Objects.equals(this.allLinks, other.allLinks); } - - @Override - public String toString() { - return this.asPair().toString(); - } - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java index 945f5f7c0..893e1a5f2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java @@ -42,9 +42,4 @@ public boolean equals(Object obj) { } return Objects.equals(this.asPair(), other.asPair()); } - - @Override - public String toString() { - return this.asPair().toString(); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java index 1ee5ea6a6..5ae3326a2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.common; import java.io.File; @@ -35,7 +35,7 @@ public static boolean shallowCloneRepository(String repositoryLink, String desir List commits = new ArrayList<>(); git.log().setMaxCount(1).call().forEach(commits::add); assert commits.size() == 1; - if (commits.get(0).getId().startsWith(AbbreviatedObjectId.fromString(desiredHash))) { + if (commits.getFirst().getId().startsWith(AbbreviatedObjectId.fromString(desiredHash))) { return true; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java index 88e7d744c..b96dc9b73 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java @@ -55,7 +55,7 @@ public double getSimilarity(ComparisonContext ctx) { try { return this.compareVectors(ctx.firstTerm(), ctx.secondTerm()); } catch (RetrieveVectorException e) { - LOGGER.error("Failed to compare glove vectors: " + ctx, e); + LOGGER.error("Failed to compare glove vectors: {}", ctx, e); return Double.NaN; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java index d08809ab3..c9199e020 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java @@ -54,7 +54,7 @@ public double getSimilarity(ComparisonContext ctx) { try { similarity = this.getDataSource().getSimilarity(ctx.firstTerm(), ctx.secondTerm()).orElse(Double.NaN); } catch (SQLException e) { - LOGGER.error("Failed to query the SEWordSim database for word comparison: " + ctx, e); + LOGGER.error("Failed to query the SEWordSim database for word comparison: {}", ctx, e); } return similarity; // words are probably missing from the database } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java index e8ceb8a26..f78330f5a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.Objects; @@ -76,10 +76,6 @@ public static double cosineSimilarity(float[] firstVec, float[] secondVec) { public static boolean isZero(double[] vector) { Objects.requireNonNull(vector); - if (vector.length == 0) { - return true; - } - for (double entry : vector) { if (entry != 0.0) { return false; @@ -98,10 +94,6 @@ public static boolean isZero(double[] vector) { public static boolean isZero(float[] vector) { Objects.requireNonNull(vector); - if (vector.length <= 0) { - return true; - } - for (float entry : vector) { if (entry != 0.0f) { return false; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java index 75fa45140..fe75d3291 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.data; +import java.io.Serial; import java.util.SortedMap; import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; @@ -10,6 +11,7 @@ */ public abstract class AbstractState extends AbstractConfigurable implements PipelineStepData { + @Serial private static final long serialVersionUID = -3318799425973820663L; @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java index b75659b07..ad4485251 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java @@ -60,7 +60,7 @@ protected final void preparePipelineSteps() { */ @Override protected void before() { - //Nothing by default + // Nothing by default } /** @@ -68,7 +68,7 @@ protected void before() { */ @Override protected void after() { - //Nothing by default + // Nothing by default } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java index b4f13215e..174c9766b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java @@ -13,7 +13,7 @@ /** * This class represents a pipeline agent that calculates some results for an {@link AbstractExecutionStage} execution stage}. - * + *

    * Implementing classes need to override. Additionally, sub-classes are free to override {@link #initializeState()} to execute code at the beginning of the * initialization before the main processing. */ diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java index 1f5c0afa3..f1f34953f 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java @@ -89,7 +89,7 @@ public Phrase parseConstituencyTree(String constituencyTree, List wordsOfS if (wordsOfSentence.isEmpty()) { throw new NotConvertableException("Constituency tree does not match words of sentence"); } - words.add(wordsOfSentence.remove(0)); + words.add(wordsOfSentence.removeFirst()); } else { subPhrases.add(parseConstituencyTree(subtree, wordsOfSentence)); } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java index 6bf8b7ed2..e037c2d71 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.io.IOException; @@ -116,22 +116,22 @@ private String convertToSubtree(Phrase phrase) { while (!words.isEmpty() || !subphrases.isEmpty()) { if (subphrases.isEmpty()) { // word next - Word word = words.remove(0); + Word word = words.removeFirst(); constituencyTree.append(TREE_SEPARATOR).append(convertWordToTree(word)); } else if (words.isEmpty()) { // phrase next - Phrase subphrase = subphrases.remove(0); + Phrase subphrase = subphrases.removeFirst(); constituencyTree.append(TREE_SEPARATOR).append(convertToSubtree(subphrase)); } else { - int wordIndex = words.get(0).getPosition(); - List phraseWordIndices = subphrases.get(0).getContainedWords().toList().stream().map(Word::getPosition).toList(); + int wordIndex = words.getFirst().getPosition(); + List phraseWordIndices = subphrases.getFirst().getContainedWords().toList().stream().map(Word::getPosition).toList(); if (wordIndex < Collections.min(phraseWordIndices)) { // word next - Word word = words.remove(0); + Word word = words.removeFirst(); constituencyTree.append(TREE_SEPARATOR).append(convertWordToTree(word)); } else { // phrase next - Phrase subphrase = subphrases.remove(0); + Phrase subphrase = subphrases.removeFirst(); constituencyTree.append(TREE_SEPARATOR).append(convertToSubtree(subphrase)); } } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java index 3c048c0e5..78f6e3eab 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; import java.util.List; @@ -118,7 +118,7 @@ private Phrase loadPhrase() { var currentPhrase = getSentence().getPhrases().toList().stream().filter(p -> p.getContainedWords().contains(this)).findFirst().orElseThrow(); var subPhrases = List.of(currentPhrase); while (!subPhrases.isEmpty()) { - currentPhrase = subPhrases.get(0); + currentPhrase = subPhrases.getFirst(); subPhrases = currentPhrase.getSubPhrases().toList().stream().filter(p -> p.getContainedWords().contains(this)).toList(); } return currentPhrase; diff --git a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java index feda1c537..f9d738597 100644 --- a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java +++ b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.util.ArrayList; @@ -24,7 +24,7 @@ class TreeParserTest { POSTag.VERB_SINGULAR_PRESENT_THIRD_PERSON, null, null, null), new WordImpl(null, 2, 0, "me", POSTag.PRONOUN_PERSONAL, null, null, null), new WordImpl(null, 3, 0, ".", POSTag.CLOSER, null, null, null))); Phrase subsubphrase = new PhraseImpl(Lists.immutable.of(words.get(2)), PhraseType.NP, new ArrayList<>()); - List subphrases = List.of(new PhraseImpl(Lists.immutable.of(words.get(0)), PhraseType.NP, new ArrayList<>()), new PhraseImpl(Lists.immutable.of( + List subphrases = List.of(new PhraseImpl(Lists.immutable.of(words.getFirst()), PhraseType.NP, new ArrayList<>()), new PhraseImpl(Lists.immutable.of( words.get(1)), PhraseType.VP, List.of(subsubphrase))); Phrase phrase = new PhraseImpl(Lists.immutable.of(words.get(3)), PhraseType.S, subphrases); Phrase expectedPhrase = new PhraseImpl(Lists.immutable.empty(), PhraseType.ROOT, List.of(phrase)); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index b6140dfbc..da54073d5 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -20,7 +20,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 0c3e0294e..41ed95332 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -1,30 +1,17 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.common.util; -import static edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper.getConnectionStates; -import static edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper.getInconsistencyStates; -import static edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper.getModelStatesData; -import static edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper.getRecommendationStates; -import static edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper.getTextState; import static java.nio.charset.StandardCharsets.UTF_8; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; -import java.io.Writer; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; -import java.util.Comparator; -import java.util.LinkedHashSet; import java.util.List; -import java.util.Set; import java.util.function.Supplier; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; @@ -32,26 +19,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; -import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; -import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.InstanceLink; -import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyState; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.ModelInconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; -import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; -import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.MappingKind; -import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; -import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; -import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; -import edu.kit.kastel.mcse.ardoco.core.api.text.Text; -import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** @@ -59,323 +29,15 @@ */ @Deterministic public final class FilePrinter { - private static final String DELIMITER = ","; private static final Logger logger = LoggerFactory.getLogger(FilePrinter.class); - private static final String GENERIC_ERROR = "An error occurred."; - private static final String SUCCESS_WRITE = "Successfully wrote to the file."; - - private static final String HORIZONTAL_RULE = "---------------------------------------------------------------------------------------------------------------------------------------------"; private static final String LINE_SEPARATOR = System.lineSeparator(); private FilePrinter() { throw new IllegalAccessError(); } - /** - * Prints details of the {@link ArDoCoResult results} of a run into files within the given directory (path). Writes out detailed info about model instances, - * noun mappings, trace links, all states, and inconsistencies. Uses the provided (project) name as part of the file names. - * - * @param path the directory where the files should be written - * @param name name of the project - * @param arDoCoResult the results that should be written - */ - public static void printResultsInFiles(Path path, String name, ArDoCoResult arDoCoResult) { - var outputDir = path.toFile(); - var data = arDoCoResult.dataRepository(); - var textState = getTextState(data); - - InconsistencyState inconsistencyState = null; - if (DataRepositoryHelper.hasInconsistencyStates(data)) { - var inconsistencyStates = getInconsistencyStates(data); - inconsistencyState = inconsistencyStates.getInconsistencyState(Metamodel.ARCHITECTURE); - } - - for (var model : getModelStatesData(data).modelIds()) { - var modelState = getModelStatesData(data).getModelExtractionState(model); - var metaModel = modelState.getMetamodel(); - var recommendationState = getRecommendationStates(data).getRecommendationState(metaModel); - var connectionState = getConnectionStates(data).getConnectionState(metaModel); - String metaModelTypeName = metaModel.toString().toLowerCase(); - - FilePrinter.writeModelInstancesInCsvFile(Path.of(outputDir.getAbsolutePath(), name + "-instances-" + metaModelTypeName + model + ".csv").toFile(), - modelState, name); - FilePrinter.writeNounMappingsInCsvFile(Path.of(outputDir.getAbsolutePath(), name + "_noun_mappings" + model + ".csv").toFile(), // - textState); - FilePrinter.writeTraceLinksInCsvFile(Path.of(outputDir.getAbsolutePath(), name + "_trace_links" + model + ".csv").toFile(), // - connectionState); - FilePrinter.writeStatesToFile(Path.of(outputDir.getAbsolutePath(), name + "_states" + model + ".csv").toFile(), // - modelState, textState, recommendationState, connectionState); - - if (inconsistencyState != null) { - FilePrinter.writeInconsistenciesToFile(Path.of(outputDir.getAbsolutePath(), name + "_inconsistencies" + model + ".csv").toFile(), - inconsistencyState); - } - } - } - - /** - * Writes the sentences as they are stored in the PARSE graph into a file. - * - * @param target the target file - * @param text the text to use. - */ - public static void writeSentencesInFile(File target, Text text) { - var fileCreated = createFileIfNonExistent(target); - if (!fileCreated) { - return; - } - - try (var myWriter = new FileWriter(target, StandardCharsets.UTF_8)) { - var minSentenceNumber = 0; - for (Word node : text.words()) { - var sentenceNumber = Integer.parseInt(String.valueOf(node.getSentenceNo())); - if (sentenceNumber + 1 > minSentenceNumber) { - myWriter.append(LINE_SEPARATOR).append(String.valueOf(sentenceNumber)).append(": "); - minSentenceNumber++; - } - myWriter.append(" ").append(node.getText()); - } - - logger.info(SUCCESS_WRITE); - } catch (IOException | NumberFormatException e) { - logger.error("An error occurred while writing sentences to file."); - logger.debug(e.getMessage(), e.getCause()); - } - } - - private static boolean createFileIfNonExistent(File file) { - try { - if (file.createNewFile()) { - logger.info("File created: {}", file.getAbsolutePath()); - } else { - logger.info("File already exists."); - } - } catch (IOException e) { - logger.error("An error occured creating a file."); - logger.debug(e.getMessage(), e.getCause()); - return false; - } - return true; - } - - private static void writeStates(Writer myWriter, LegacyModelExtractionState extractionState, TextState ntrState, // - RecommendationState recommendationState, ConnectionState connectionState) throws IOException { - myWriter.write("Results of ModelConnector: "); - myWriter.append(LINE_SEPARATOR); - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("ExtractorState: "); - myWriter.append(LINE_SEPARATOR); - myWriter.write(extractionState.toString()); - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("FoundNames as Set: "); - myWriter.append(LINE_SEPARATOR); - var nameList = ntrState.getListOfReferences(MappingKind.NAME).toSortedList().toImmutable(); - myWriter.write(nameList.toString() + LINE_SEPARATOR); - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("FoundTypes as Set: "); - myWriter.append(LINE_SEPARATOR); - var typeList = ntrState.getListOfReferences(MappingKind.TYPE).toSortedList().toImmutable(); - myWriter.write(typeList.toString() + LINE_SEPARATOR); - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("Instances of the Recommendation State: "); - myWriter.append(LINE_SEPARATOR); - - var comRecommendedInstanceByName = getRecommendedInstancesComparator(); - var recommendedInstances = recommendationState.getRecommendedInstances().toSortedList(comRecommendedInstanceByName).toImmutable(); - - for (RecommendedInstance ri : recommendedInstances) { - myWriter.write(ri.toString() + LINE_SEPARATOR); - } - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("Instances of the Connection State: "); - myWriter.append(LINE_SEPARATOR); - - var compInstByUID = getInstanceLinkComparator(); - var instanceMappings = Lists.immutable.withAll(connectionState.getInstanceLinks()).toSortedList(compInstByUID).toImmutable(); - - for (InstanceLink imap : instanceMappings) { - - myWriter.write(imap.toString() + LINE_SEPARATOR); - } - - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("Relations of the Recommendation State: "); - myWriter.append(LINE_SEPARATOR); - - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - myWriter.write("Relations of the Connection State: "); - myWriter.append(LINE_SEPARATOR); - - myWriter.write(HORIZONTAL_RULE); - myWriter.append(LINE_SEPARATOR).append(LINE_SEPARATOR); - - logger.info(SUCCESS_WRITE); - } - - /** - * * Writes the states into a file. - * - * @param resultFile the result file - * @param extractionState the extraction state, containing the extracted elements of the model - * @param ntrState the name type relation state, containing the mappings found in the text, sorted in name, type or name_or_type - * @param recommendationState the supposing state, containing the supposing mappings for instances, as well as relations - * @param connectionState containing all instances and relations, matched by supposed mappings - */ - public static void writeStatesToFile(File resultFile, LegacyModelExtractionState extractionState, TextState ntrState, // - RecommendationState recommendationState, ConnectionState connectionState) { - var fileCreated = createFileIfNonExistent(resultFile); - if (!fileCreated) { - return; - } - - try (var myWriter = new FileWriter(resultFile, StandardCharsets.UTF_8)) { - writeStates(myWriter, extractionState, ntrState, recommendationState, connectionState); - - } catch (IOException e) { - logger.error(GENERIC_ERROR); - logger.debug(e.getMessage(), e.getCause()); - } - - } - - /** - * Write model instances in csv file. - * - * @param destination the destination - * @param modelState the model state - * @param name the name - */ - private static void writeModelInstancesInCsvFile(File destination, LegacyModelExtractionState modelState, String name) { - var dataLines = getInstancesFromModelState(modelState, name); - writeDataLinesInFile(destination, dataLines); - } - - private static ImmutableList getInstancesFromModelState(LegacyModelExtractionState modelState, String name) { - MutableList dataLines = Lists.mutable.empty(); - - dataLines.add(new String[] { "Found Model Elements in " + name + ":", "", "" }); - dataLines.add(new String[] { "" }); - dataLines.add(new String[] { "UID", "Name", "Type" }); - - for (ModelInstance instance : modelState.getInstances()) { - dataLines.add(new String[] { instance.getUid(), instance.getFullName(), instance.getFullType() }); - } - - return dataLines.toImmutable(); - } - - /** - * Write trace links in csv file. - * - * @param resultFile the result file - * @param connectionState the connection state - */ - private static void writeTraceLinksInCsvFile(File resultFile, ConnectionState connectionState) { - var dataLines = getLinksAsDataLinesOfConnectionState(connectionState); - writeDataLinesInFile(resultFile, dataLines); - } - - /** - * Write noun mappings in csv file. - * - * @param resultFile the result file - * @param textState the text state - */ - private static void writeNounMappingsInCsvFile(File resultFile, TextState textState) { - var dataLines = getMappingsAsDataLinesOfTextState(textState); - writeDataLinesInFile(resultFile, dataLines); - } - - private static ImmutableList getMappingsAsDataLinesOfTextState(TextState textState) { - MutableList dataLines = Lists.mutable.empty(); - - dataLines.add(new String[] { "Found NounMappings: ", "", "", "" }); - dataLines.add(new String[] { "" }); - dataLines.add(new String[] { "Reference", "Name", "Type" }); - - if (textState.getNounMappings().isEmpty()) { - for (NounMapping mapping : textState.getNounMappings()) { - - var kind = mapping.getKind(); - - var nameProb = Double.toString(kind == MappingKind.NAME ? mapping.getProbability() : 0); - var typeProb = Double.toString(kind == MappingKind.TYPE ? mapping.getProbability() : 0); - - dataLines.add(new String[] { mapping.getReference(), nameProb, typeProb }); - - } - return dataLines.toImmutable(); - } - - for (NounMapping mapping : textState.getNounMappings()) { - - var distribution = mapping.getDistribution(); - var nameProb = Double.toString(distribution.get(MappingKind.NAME).getConfidence()); - var typeProb = Double.toString(distribution.get(MappingKind.TYPE).getConfidence()); - - dataLines.add(new String[] { mapping.getReference(), nameProb, typeProb }); - - } - return dataLines.toImmutable(); - } - - private static ImmutableList getLinksAsDataLinesOfConnectionState(ConnectionState connectionState) { - MutableList dataLines = Lists.mutable.empty(); - - dataLines.add(new String[] { "#Found TraceLinks: ", "" }); - dataLines.add(new String[] { "" }); - dataLines.add(new String[] { "modelElementID", "sentence" }); - - Set> tracelinks = new LinkedHashSet<>(connectionState.getTraceLinks().castToCollection()); - for (var tracelink : tracelinks) { - var modelElementUid = tracelink.getSecondEndpoint().getId(); - // sentence offset is 1 because real sentences are 1-indexed - var sentenceNumber = Integer.toString(tracelink.getFirstEndpoint().getSentence().getSentenceNumber() + 1); - dataLines.add(new String[] { modelElementUid, sentenceNumber }); - } - - return dataLines.toImmutable(); - } - - /** - * Write data lines in file. - * - * @param file the file - * @param dataLines the data lines - */ - public static void writeDataLinesInFile(File file, ImmutableList dataLines) { - - try (var pw = new FileWriter(file, StandardCharsets.UTF_8)) { - dataLines.collect(FilePrinter::convertToCSV).forEach(s -> { - try { - pw.append(s).append("\n"); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - }); - } catch (IOException e) { - logger.error(GENERIC_ERROR); - logger.debug(e.getMessage(), e); - } - - } - /** * Writes the given text to the file with the given name/path. Truncates existing files, creates the file if not existent and writes in UTF-8. * @@ -402,80 +64,6 @@ public static void writeToFile(Path file, String text) { } } - private static void writeInconsistenciesToFile(File file, InconsistencyState inconsistencyState) { - var inconsistencies = inconsistencyState.getInconsistencies(); - - try (var pw = new FileWriter(file, StandardCharsets.UTF_8)) { - inconsistencies.flatCollect(Inconsistency::toFileOutput) - .asLazy() - .collect(FilePrinter::convertToCSV) - .distinct() - .toSortedList(getInconsistencyStringComparator()) - .forEach(s -> { - try { - pw.append(s).append("\n"); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - }); - } catch (IOException e) { - logger.error(GENERIC_ERROR); - logger.debug(e.getMessage(), e); - } - } - - private static Comparator getInconsistencyStringComparator() { - return (i, j) -> { - var values1 = i.split(DELIMITER, -1); - var values2 = j.split(DELIMITER, -1); - var name1 = values1[2]; - var name2 = values2[2]; - var wordComparisonResult = name1.compareTo(name2); - if (wordComparisonResult != 0) { - return wordComparisonResult; - } - var word1SentenceNo = -2; - var word2SentenceNo = -1; - try { - word1SentenceNo = Integer.parseInt(values1[1]); - word2SentenceNo = Integer.parseInt(values2[1]); - } catch (NumberFormatException e) { - // when there is no sentence number, it is intended that the Inconsistency is sorted at the beginning - logger.trace("Could not parse sentence number for one of the following: {}, {}", values1[1], values2[1]); - } - - var compareValue = word1SentenceNo - word2SentenceNo; - if (compareValue == 0) { - var word1 = values1[3]; - var word2 = values2[3]; - compareValue = word1.compareTo(word2); - } - return compareValue; - }; - } - - private static String convertToCSV(String[] data) { - return Stream.of(data).map(FilePrinter::escapeSpecialCharacters).collect(Collectors.joining(DELIMITER)); - } - - private static String escapeSpecialCharacters(String in) { - var data = in; - var escapedData = data.replaceAll("\\R", " "); - if (data.contains(DELIMITER) || data.contains("\"") || data.contains("'")) { - data = data.replace("\"", "\"\""); - escapedData = "\"" + data + "\""; - } - return escapedData; - } - - private static Comparator getRecommendedInstancesComparator() { - return Comparator.comparing(RecommendedInstance::getName); - } - - private static Comparator getInstanceLinkComparator() { - return Comparator.comparing(i -> i.getModelInstance().getUid()); - } - public static void writeInconsistencyOutput(File file, ArDoCoResult arDoCoResult) { MutableList allInconsistencies = Lists.mutable.empty(); allInconsistencies.addAll(arDoCoResult.getInconsistentSentences().collect(InconsistentSentence::getInfoString).toList()); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java index f92813312..d78930e46 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java @@ -2,9 +2,6 @@ package edu.kit.kastel.mcse.ardoco.core.execution.runner; import java.io.File; -import java.io.IOException; -import java.io.ObjectOutputStream; -import java.io.Serial; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +13,7 @@ public abstract class ArDoCoRunner { private static final Logger logger = LoggerFactory.getLogger(ArDoCoRunner.class); - private final transient ArDoCo arDoCo; + private final ArDoCo arDoCo; private File outputDirectory; protected boolean isSetUp = false; @@ -34,7 +31,7 @@ public final ArDoCoResult run() { if (this.isSetUp() && this.outputDirectory != null) { return this.getArDoCo().runAndSave(this.outputDirectory); } else { - ArDoCoRunner.logger.error("Cannot run ArDoCo because the runner is not properly set up."); + logger.error("Cannot run ArDoCo because the runner is not properly set up."); return null; } } @@ -47,7 +44,7 @@ public final DataRepository runWithoutSaving() { this.getArDoCo().run(); return this.getArDoCo().getDataRepository(); } else { - ArDoCoRunner.logger.error("Cannot run ArDoCo because the runner is not properly set up."); + logger.error("Cannot run ArDoCo because the runner is not properly set up."); return null; } } @@ -59,12 +56,4 @@ public ArDoCo getArDoCo() { protected void setOutputDirectory(File outputDirectory) { this.outputDirectory = outputDirectory; } - - @Serial - private void writeObject(ObjectOutputStream out) throws IOException { - if (!this.getArDoCo().wasExecuted()) { - this.runWithoutSaving(); - } - out.defaultWriteObject(); - } } diff --git a/pom.xml b/pom.xml index 7884536da..dce7dbced 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ scm:git:git://github.com/ArDoCo/Core.git scm:git:ssh://github.com:ArDoCo/Core.git HEAD - http://github.com/ArDoCo/Core/tree/main + https://github.com/ArDoCo/Core/tree/main GitHub Issues diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index e5680c6e9..e09a59ca8 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -169,11 +169,12 @@ public void check(JavaClass javaClass, ConditionEvents conditionEvents) { continue; var erasure = field.getType().toErasure(); if (isContainer.test(erasure)) { - getAllInvolvedRawTypesExceptSelf(field).stream().filter(erasureIsSerializableShallow.negate()).forEach(parameter -> { - violated(conditionEvents, javaClass, "Non-transient field " + field.getFullName() + " of serializable class " + javaClass - .getFullName() + " needs to be serializable or the class must have custom serialization, but has non-serializable parameter " + parameter - .getName()); - }); + getAllInvolvedRawTypesExceptSelf(field).stream() + .filter(erasureIsSerializableShallow.negate()) + .forEach(parameter -> violated(conditionEvents, javaClass, "Non-transient field " + field + .getFullName() + " of serializable class " + javaClass + .getFullName() + " needs to be serializable or the class must have custom serialization, but has non-serializable parameter " + parameter + .getName())); } else { if (erasureIsSerializableShallow.negate().test(erasure)) { //Class has non-transient field that is not serializable @@ -186,14 +187,11 @@ public void check(JavaClass javaClass, ConditionEvents conditionEvents) { } }); - private static final Predicate isContainer = (JavaClass javaClass) -> { - return javaClass.isArray() || javaClass.isAssignableTo(Collection.class) || javaClass.isAssignableTo(Map.class) || javaClass.isAssignableTo( - Iterable.class); - }; + private static final Predicate isContainer = (JavaClass javaClass) -> javaClass.isArray() || javaClass.isAssignableTo( + Collection.class) || javaClass.isAssignableTo(Map.class) || javaClass.isAssignableTo(Iterable.class); - private static final Predicate erasureIsSerializableShallow = (JavaClass javaClass) -> { - return javaClass.isPrimitive() || javaClass.isAssignableTo(Serializable.class) || isContainer.test(javaClass); - }; + private static final Predicate erasureIsSerializableShallow = (JavaClass javaClass) -> javaClass.isPrimitive() || javaClass + .isAssignableTo(Serializable.class) || isContainer.test(javaClass); /** * Returns all types of a field, except the (outer) type of the field itself. Generic type variables are not considered. diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index 6dfab302e..6dd0536b2 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -212,7 +212,7 @@ private static ArchCondition haveComparableGenericType() { public void check(JavaField javaField, ConditionEvents conditionEvents) { var type = javaField.getType(); if (type instanceof JavaParameterizedType parameterizedType) { - var typeParameter = parameterizedType.getActualTypeArguments().get(0); + var typeParameter = parameterizedType.getActualTypeArguments().getFirst(); if ((typeParameter instanceof JavaClass typeParameterClass) && typeParameterClass.getAllRawInterfaces() .stream() .anyMatch(i -> i.getFullName().equals(Comparable.class.getName()))) { @@ -241,14 +241,14 @@ public void check(JavaMethod javaMethod, ConditionEvents conditionEvents) { return; } - var typeParameter = parameterizedType.getActualTypeArguments().get(0); + var typeParameter = parameterizedType.getActualTypeArguments().getFirst(); if ((typeParameter instanceof JavaClass typeParameterClass) && typeParameterClass.getAllRawInterfaces() .stream() .anyMatch(i -> i.getFullName().equals(Comparable.class.getName()))) { satisfied(conditionEvents, javaMethod, "Method " + javaMethod.getFullName() + " has a Comparable generic type"); } else if ((typeParameter instanceof JavaWildcardType typeParameterWildCard)) { - var upperBound = typeParameterWildCard.getUpperBounds().get(0); + var upperBound = typeParameterWildCard.getUpperBounds().getFirst(); if (!(upperBound instanceof JavaClass upperBoundClass) || upperBoundClass.getAllRawInterfaces() .stream() diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java index 30fe50968..316b243ec 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java @@ -89,7 +89,7 @@ public enum CodeProject implements GoldStandardProject { new ExpectedResults(.885, .999, .935, .960, .915, .935) // ); - private static final Logger logger = LoggerFactory.getLogger(Project.class); + private static final Logger logger = LoggerFactory.getLogger(CodeProject.class); private final String codeRepository; private final String commitHash; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java index 47e889f03..569a2bb68 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -65,7 +65,7 @@ private boolean validateResourceChecksum(String resourceName) { logger.info("Checksum for source file {} matches", resourceName); return true; } catch (IOException e) { - logger.error("Couldn't calculate checksum for resource at " + resourceName, e); + logger.error("Couldn't calculate checksum for resource at {}", resourceName, e); return false; } } From f2f20c30d3b862d1b3305e429a2e5ed23e3617da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 5 Dec 2024 16:35:43 +0100 Subject: [PATCH 027/115] Make abstractconfigurable ready to be used in serializable classes --- .../configuration/AbstractConfigurable.java | 32 ++++++------------- .../mcse/ardoco/core/pipeline/Pipeline.java | 6 ++-- .../mcse/ardoco/core/execution/ArDoCo.java | 4 +-- 3 files changed, 14 insertions(+), 28 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index 292e42080..877d2f287 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -1,10 +1,6 @@ /* Licensed under MIT 2022-2024. */ package edu.kit.kastel.mcse.ardoco.core.configuration; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serial; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.util.ArrayList; @@ -14,7 +10,6 @@ import java.util.SortedMap; import java.util.TreeMap; -import org.apache.commons.lang3.reflect.FieldUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,12 +17,13 @@ @Deterministic public abstract class AbstractConfigurable implements IConfigurable { - protected final Logger logger = LoggerFactory.getLogger(this.getClass()); - public static final String CLASS_ATTRIBUTE_CONNECTOR = "::"; public static final String KEY_VALUE_CONNECTOR = "="; public static final String LIST_SEPARATOR = ","; + @SuppressWarnings("java:S2065") // The logger is used in the subclasses that are serializable + private transient Logger logger; + private SortedMap lastAppliedConfiguration = new TreeMap<>(); @Override @@ -50,7 +46,7 @@ private void applyConfiguration(SortedMap additionalConfiguratio } if (currentClassInHierarchy.getAnnotation(NoConfiguration.class) != null) { - this.logger.debug("Skipping configuration for class {}", currentClassInHierarchy.getSimpleName()); + this.getLogger().debug("Skipping configuration for class {}", currentClassInHierarchy.getSimpleName()); return; } @@ -101,7 +97,7 @@ private void setValue(Field field, String value) { field.setAccessible(true); field.set(this, parsedValue); } catch (Exception e) { - this.logger.error(e.getMessage(), e); + this.getLogger().error(e.getMessage(), e); } } @@ -131,20 +127,10 @@ private Object parse(Field field, Class fieldsClass, String value) { throw new IllegalArgumentException("Could not find a parse method for fields of type: " + fieldsClass); } - @Serial - private void writeObject(ObjectOutputStream objectOutputStream) throws IOException { - objectOutputStream.defaultWriteObject(); - } - - @Serial - private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException { - objectInputStream.defaultReadObject(); - try { - var loggerField = Arrays.stream(FieldUtils.getAllFields(this.getClass())).filter(f -> f.getName().equals("logger")).findFirst().orElseThrow(); - loggerField.setAccessible(true); - loggerField.set(this, LoggerFactory.getLogger(this.getClass())); - } catch (IllegalAccessException e) { - throw new IllegalAccessError(e.getMessage()); + protected final Logger getLogger() { + if (this.logger == null) { + this.logger = LoggerFactory.getLogger(this.getClass()); } + return this.logger; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java index 1f0b9092b..a68924cf8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java @@ -74,12 +74,12 @@ public boolean wasExecuted() { public void process() { this.preparePipelineSteps(); for (var pipelineStep : this.pipelineSteps) { - this.logger.info("Starting {} - {}", this.getId(), pipelineStep.getId()); + this.getLogger().info("Starting {} - {}", this.getId(), pipelineStep.getId()); var start = Instant.now(); pipelineStep.run(); - if (this.logger.isInfoEnabled()) { + if (this.getLogger().isInfoEnabled()) { var end = Instant.now(); var duration = Duration.between(start, end); long minutesPart = duration.toMinutes(); @@ -92,7 +92,7 @@ public void process() { durationString = String.format("%01d.%03d s", secondsPart, millisPart); } - this.logger.info("Finished {} - {} in {}", this.getId(), pipelineStep.getId(), durationString); + this.getLogger().info("Finished {} - {} in {}", this.getId(), pipelineStep.getId(), durationString); } } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java index 13d552ee9..ef5e985b0 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java @@ -68,7 +68,7 @@ public ArDoCoResult runAndSave(File outputDir) { classLogger.info("Starting {}", this.projectName); if (!this.hasPipelineSteps()) { - this.logger.error("Pipeline has not been defined and initialized beforehand. Aborting!"); + this.getLogger().error("Pipeline has not been defined and initialized beforehand. Aborting!"); return null; } @@ -79,7 +79,7 @@ public ArDoCoResult runAndSave(File outputDir) { ArDoCoResult arDoCoResult = new ArDoCoResult(this.getDataRepository()); saveOutput(this.projectName, outputDir, arDoCoResult); - if (this.logger.isInfoEnabled()) { + if (this.getLogger().isInfoEnabled()) { var duration = Duration.between(startTime, endTime); long minutesPart = duration.toMinutes(); int secondsPart = duration.toSecondsPart(); From c76c8611549f26bc48ed79400da921384b92ffa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 6 Dec 2024 13:31:25 +0100 Subject: [PATCH 028/115] Remove RecommendationStateStrategy, since not used --- .../RecommendationStateStrategy.java | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java deleted file mode 100644 index 52389938f..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStateStrategy.java +++ /dev/null @@ -1,8 +0,0 @@ -/* Licensed under MIT 2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; - -public interface RecommendationStateStrategy { - boolean areRecommendedInstanceTypesSimilar(String typeA, String typeB); - - boolean areRecommendedInstanceNamesSimilar(String nameA, String nameB); -} From 1ade956f237c51de2458c804f64f3200f50faa9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 9 Dec 2024 15:51:05 +0100 Subject: [PATCH 029/115] InstanceLinks are TraceLinks --- .../mcse/ardoco/core/api/entity/Entity.java | 2 +- .../connectiongenerator/ConnectionState.java | 20 +++---- .../connectiongenerator/InstanceLink.java | 55 +++---------------- .../ardoco/core/api/output/ArDoCoResult.java | 8 +-- .../execution/ProjectPipelineDataImpl.java | 3 +- 5 files changed, 24 insertions(+), 64 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index 4ca36f60d..dc88a43d8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -37,7 +37,7 @@ protected Entity(String name) { protected Entity(String name, String id) { this.id = Objects.requireNonNull(id); - this.name = name; + this.name = Objects.requireNonNull(name); } public String getId() { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 40460d9f6..de088bf3e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -27,7 +27,7 @@ public interface ConnectionState extends IConfigurable { * * @return all instance links */ - ImmutableList getInstanceLinks(); + ImmutableList> getInstanceLinks(); /** * Returns all instance links with a model instance containing the given name. @@ -35,7 +35,7 @@ public interface ConnectionState extends IConfigurable { * @param name the name of a model instance * @return all instance links with a model instance containing the given name as list */ - ImmutableList getInstanceLinksByName(String name); + ImmutableList> getInstanceLinksByName(String name); /** * Returns all instance links with a model instance containing the given type. @@ -43,7 +43,7 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given type as list */ - ImmutableList getInstanceLinksByType(String type); + ImmutableList> getInstanceLinksByType(String type); /** * Returns all instance links with a model instance containing the given recommended instance. @@ -51,7 +51,7 @@ public interface ConnectionState extends IConfigurable { * @param recommendedInstance the recommended instance to consider * @return all instance links found */ - ImmutableList getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); + ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); /** * Returns all instance links with a model instance containing the given name and type. @@ -60,7 +60,7 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given name and type as list */ - ImmutableList getInstanceLinks(String name, String type); + ImmutableList> getInstanceLinks(String name, String type); /** * Returns a list of tracelinks that are contained within this connection state. @@ -69,11 +69,11 @@ public interface ConnectionState extends IConfigurable { */ default ImmutableSet> getTraceLinks() { MutableSet> traceLinks = Sets.mutable.empty(); - for (var instanceLink : getInstanceLinks()) { - var textualInstance = instanceLink.getTextualInstance(); + for (var instanceLink : this.getInstanceLinks()) { + var textualInstance = instanceLink.getFirstEndpoint(); for (var nm : textualInstance.getNameMappings()) { for (var word : nm.getWords()) { - var traceLink = new SadSamTraceLink(word.getSentence(), instanceLink.getModelInstance()); + var traceLink = new SadSamTraceLink(word.getSentence(), instanceLink.getSecondEndpoint()); traceLinks.add(traceLink); } } @@ -98,14 +98,14 @@ default ImmutableSet> getTraceLink * @param instanceLink the given instance link * @return true if it is already contained */ - boolean isContainedByInstanceLinks(InstanceLink instanceLink); + boolean isContainedByInstanceLinks(TraceLink instanceLink); /** * Removes an instance link from the state. * * @param instanceMapping the instance link to remove */ - void removeFromMappings(InstanceLink instanceMapping); + void removeFromMappings(TraceLink instanceMapping); /** * Removes all instance links containing the given instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index cdba37a10..27bc28355 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -1,10 +1,8 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; -import java.io.Serializable; import java.util.Arrays; import java.util.LinkedHashSet; -import java.util.Objects; import java.util.Set; import org.eclipse.collections.api.factory.Lists; @@ -13,6 +11,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; @@ -22,12 +21,9 @@ * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelInstance}. */ @Deterministic -public class InstanceLink implements Serializable { +public class InstanceLink extends TraceLink { private static final long serialVersionUID = -8630933950725516269L; - - private final RecommendedInstance textualInstance; - private final ModelInstance modelInstance; private final Confidence confidence; /** @@ -37,8 +33,7 @@ public class InstanceLink implements Serializable { * @param modelInstance the model instance */ public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInstance) { - this.textualInstance = textualInstance; - this.modelInstance = modelInstance; + super(textualInstance, modelInstance); this.confidence = new Confidence(AggregationFunctions.AVERAGE); } @@ -74,40 +69,6 @@ public final double getConfidence() { return this.confidence.getConfidence(); } - /** - * Returns the recommended instance. - * - * @return the textual instance - */ - public final RecommendedInstance getTextualInstance() { - return this.textualInstance; - } - - /** - * Returns the model instance. - * - * @return the extracted instance - */ - public final ModelInstance getModelInstance() { - return this.modelInstance; - } - - @Override - public int hashCode() { - return Objects.hash(this.modelInstance, this.textualInstance); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof InstanceLink other)) { - return false; - } - return Objects.equals(this.getModelInstance(), other.getModelInstance()) && Objects.equals(this.getTextualInstance(), other.getTextualInstance()); - } - @Override public String toString() { Set names = new LinkedHashSet<>(); @@ -115,17 +76,17 @@ public String toString() { Set types = new LinkedHashSet<>(); MutableList typePositions = Lists.mutable.empty(); - for (NounMapping nameMapping : this.textualInstance.getNameMappings()) { + for (NounMapping nameMapping : this.getFirstEndpoint().getNameMappings()) { names.addAll(nameMapping.getSurfaceForms().castToCollection()); namePositions.addAll(nameMapping.getMappingSentenceNo().castToCollection()); } - for (NounMapping typeMapping : this.textualInstance.getTypeMappings()) { + for (NounMapping typeMapping : this.getFirstEndpoint().getTypeMappings()) { types.addAll(typeMapping.getSurfaceForms().castToCollection()); typePositions.addAll(typeMapping.getMappingSentenceNo().castToCollection()); } - return "InstanceMapping [ uid=" + this.modelInstance.getUid() + ", name=" + this.modelInstance.getFullName() + // - ", as=" + String.join(", ", this.modelInstance.getFullType()) + ", probability=" + this.getConfidence() + ", FOUND: " + // - this.textualInstance.getName() + " : " + this.textualInstance.getType() + ", occurrences= " + // + return "InstanceMapping [ uid=" + this.getSecondEndpoint().getUid() + ", name=" + this.getSecondEndpoint().getFullName() + // + ", as=" + String.join(", ", this.getSecondEndpoint().getFullType()) + ", probability=" + this.getConfidence() + ", FOUND: " + // + this.getFirstEndpoint().getName() + " : " + this.getFirstEndpoint().getType() + ", occurrences= " + // "NameVariants: " + names.size() + ": " + names + " sentences{" + Arrays.toString(namePositions.toArray()) + "}" + // ", TypeVariants: " + types.size() + ": " + types + "sentences{" + Arrays.toString(typePositions.toArray()) + "}" + "]"; } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index da54073d5..4cdbe0c1b 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -96,7 +96,7 @@ public ImmutableList> getAllTraceL MutableSet> traceLinks = Sets.mutable.empty(); for (var modelId : this.getModelIds()) { - if (this.getModelState(modelId).getMetamodel() == Metamodel.ARCHITECTURE) { + if (modelId == Metamodel.ARCHITECTURE) { traceLinks.addAll(this.getTraceLinksForModel(modelId).castToCollection()); } } @@ -255,8 +255,7 @@ public Sentence getSentence(int sentenceNo) { public ConnectionState getConnectionState(Metamodel modelId) { if (DataRepositoryHelper.hasConnectionStates(this.dataRepository)) { var connectionStates = DataRepositoryHelper.getConnectionStates(this.dataRepository); - var modelState = this.getModelState(modelId); - return connectionStates.getConnectionState(modelState.getMetamodel()); + return connectionStates.getConnectionState(modelId); } ArDoCoResult.logger.warn("No ConnectionState found."); return null; @@ -271,8 +270,7 @@ public ConnectionState getConnectionState(Metamodel modelId) { public InconsistencyState getInconsistencyState(Metamodel modelId) { if (DataRepositoryHelper.hasInconsistencyStates(this.dataRepository)) { var inconsistencyStates = DataRepositoryHelper.getInconsistencyStates(this.dataRepository); - var modelState = this.getModelState(modelId); - return inconsistencyStates.getInconsistencyState(modelState.getMetamodel()); + return inconsistencyStates.getInconsistencyState(modelId); } ArDoCoResult.logger.warn("No InconsistencyState found."); return null; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java index fd4abd759..29ce2dc2c 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java @@ -8,6 +8,7 @@ */ public class ProjectPipelineDataImpl implements ProjectPipelineData { + private static final long serialVersionUID = -993634357212795104L; private final String projectName; /** @@ -22,6 +23,6 @@ public class ProjectPipelineDataImpl implements ProjectPipelineData { @Override public String getProjectName() { - return projectName; + return this.projectName; } } From 3975d60aac57b93351bebb0a449d9de265d2f2f8 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Mon, 16 Dec 2024 12:59:00 +0100 Subject: [PATCH 030/115] refactoring --- .../core/api/entity/ArchitectureEntity.java | 25 +++- .../ardoco/core/api/models/ModelStates.java | 23 ++- .../ardoco/core/api/models/arcotl/Model.java | 6 +- .../architecture/ArchitectureComponent.java | 37 +++-- .../architecture/ArchitectureInterface.java | 28 +++- .../arcotl/architecture/ArchitectureItem.java | 15 +- .../architecture/ArchitectureMethod.java | 13 +- .../legacy/ModelInstanceImpl.java | 11 +- .../common/similarity/SimilarityUtils.java | 139 ++++++++++-------- .../core/common/util/CommonUtilities.java | 55 ++++--- .../ardoco/core/api/output/ArDoCoResult.java | 32 ++-- .../mcse/ardoco/core/tests/TestUtil.java | 2 +- 12 files changed, 237 insertions(+), 149 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 64a41667d..115ce0c99 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,14 +1,35 @@ /* Licensed under MIT 2024. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + +import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; + public abstract non-sealed class ArchitectureEntity extends Entity { private static final long serialVersionUID = 5118724938904048363L; - protected ArchitectureEntity(String name) { + protected ArchitectureEntity(String name, String type) { super(name); } - protected ArchitectureEntity(String name, String id) { + protected ArchitectureEntity(String name, String type, String id) { super(name, id); } + + public abstract String getType(); + + public abstract ImmutableList getNameParts(); + + public abstract ImmutableList getTypeParts(); + + protected MutableList splitIdentifierIntoParts(String identifier) { + String splitName = CommonUtilities.splitCases(identifier); + var names = Lists.mutable.with(splitName.split(" ")); + if (names.size() > 1) { + names.add(identifier); + } + return names; + } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index ebc9835c4..f670400c6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -6,53 +6,48 @@ import java.util.TreeMap; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.CodeModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionStateByArCoTL; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; public class ModelStates implements PipelineStepData { - private static final long serialVersionUID = -603436842247064371L; - public static final String ID = "ModelStatesData"; - - private SortedMap models = new TreeMap<>(); - private SortedMap legacyModels = new TreeMap<>(); + private static final long serialVersionUID = -603436842247064371L; + private final SortedMap models = new TreeMap<>(); /** - * Constructor to create a {@link ModelStates} object that holds all {@link LegacyModelExtractionState}s + * Constructor to create a {@link ModelStates} object that holds all {@link Model}s */ public ModelStates() { } + /* /** * Returns the {@link LegacyModelExtractionState} with the given id * * @param id the id * @return the corresponding {@link LegacyModelExtractionState} * @deprecated use {@link #getModel(Metamodel)} instead - */ + / @Deprecated public LegacyModelExtractionState getModelExtractionState(Metamodel id) { if (this.legacyModels.containsKey(id)) { return this.legacyModels.get(id); } - + var model = this.models.get(id); if (model == null) { return null; } - + var legacyModel = switch (model) { case ArchitectureModel am -> new LegacyModelExtractionStateByArCoTL(am); case CodeModel cm -> new LegacyModelExtractionStateByArCoTL(cm); }; - + this.legacyModels.put(id, legacyModel); return legacyModel; } + */ /** * Return the set of IDs of all {@link Model Models} that are contained within this object. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 3323c0f48..7c5f2e1f3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; @@ -16,14 +16,14 @@ public String getId() { } /** - * Returns the content of this model. + * Returns the content of this model. Contains all elements of the model. * * @return the content of this model */ public abstract List getContent(); /** - * Returns the endpoints of this model. + * Returns the endpoints of this model. Contains all targetable elements for trace links, e.g. compilation units in case of CodeModel. * * @return the endpoints of this model */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index b2f7dc7e7..a9ffef2aa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -1,14 +1,15 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import java.util.SortedSet; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + /** - * A representation of the model object Component from AMTL. Components - * are building blocks of a software architecture. A component can contain - * subcomponents but doesn't have to. A component can provide and require - * interfaces. Provided interfaces are implemented by the component. Required - * interfaces specify some functionality that is needed by the component. + * A representation of the model object Component from AMTL. Components are building blocks of a software architecture. A component can contain + * subcomponents but doesn't have to. A component can provide and require interfaces. Provided interfaces are implemented by the component. Required interfaces + * specify some functionality that is needed by the component. */ public final class ArchitectureComponent extends ArchitectureItem { @@ -19,6 +20,9 @@ public final class ArchitectureComponent extends ArchitectureItem { private final SortedSet requiredInterfaces; private final String type; + private final MutableList nameParts; + + private final MutableList typeParts; public ArchitectureComponent(String name, String id, SortedSet subcomponents, SortedSet providedInterfaces, SortedSet requiredInterfaces, String type) { @@ -27,6 +31,8 @@ public ArchitectureComponent(String name, String id, SortedSet getSubcomponents() { } /** - * Returns the provided interfaces of this component. Provided interfaces are - * implemented by this component. + * Returns the provided interfaces of this component. Provided interfaces are implemented by this component. * * @return the provided interfaces of this component */ @@ -49,8 +54,7 @@ public SortedSet getProvidedInterfaces() { } /** - * Returns the required interfaces of this component. Required interfaces - * specify some functionality that is needed by this component. + * Returns the required interfaces of this component. Required interfaces specify some functionality that is needed by this component. * * @return the required interfaces of this component */ @@ -67,6 +71,16 @@ public String getType() { return this.type; } + @Override + public ImmutableList getNameParts() { + return this.nameParts.toImmutable(); + } + + @Override + public ImmutableList getTypeParts() { + return this.typeParts.toImmutable(); + } + @Override public String toString() { return "Component: " + this.getName(); @@ -77,7 +91,8 @@ public boolean equals(Object o) { if (this == o) { return true; } - if (!(o instanceof ArchitectureComponent that) || !super.equals(o) || !this.subcomponents.equals(that.subcomponents) || !this.providedInterfaces.equals(that.providedInterfaces)) { + if (!(o instanceof ArchitectureComponent that) || !super.equals(o) || !this.subcomponents.equals(that.subcomponents) || !this.providedInterfaces.equals( + that.providedInterfaces)) { return false; } return this.requiredInterfaces.equals(that.requiredInterfaces); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 48884aef8..f86f5228b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -1,18 +1,27 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import java.util.Objects; import java.util.SortedSet; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + public final class ArchitectureInterface extends ArchitectureItem { private static final long serialVersionUID = 2232013345166120690L; private final SortedSet signatures; - public ArchitectureInterface(String name, String id, SortedSet signatures) { + private final String type; + private MutableList nameParts; + private MutableList typeParts; + + public ArchitectureInterface(String name, String id, SortedSet signatures, String type) { super(name, id); this.signatures = signatures; + this.type = type; + } public SortedSet getSignatures() { @@ -39,4 +48,19 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(super.hashCode(), this.signatures); } + + @Override + public String getType() { + return this.type; + } + + @Override + public ImmutableList getNameParts() { + return this.nameParts.toImmutable(); + } + + @Override + public ImmutableList getTypeParts() { + return this.typeParts.toImmutable(); + } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 737fb686b..275519085 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -17,8 +17,8 @@ public abstract sealed class ArchitectureItem extends ArchitectureEntity permits * * @param name the name of the architecture item to be created */ - protected ArchitectureItem(String name) { - super(name); + protected ArchitectureItem(String name, String type) { + super(name, type); } /** @@ -27,7 +27,14 @@ protected ArchitectureItem(String name) { * @param name the name of the architecture item to be created * @param id the identifier of the architecture item to be created */ - protected ArchitectureItem(String name, String id) { - super(name, id); + protected ArchitectureItem(String name, String type, String id) { + super(name, type, id); } + + /** + * Return the type of the architecture item as string + * + * @return the type of the architecture item + */ + public abstract String getType(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index e178b932a..65746a282 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -1,11 +1,18 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; public final class ArchitectureMethod extends ArchitectureItem { private static final long serialVersionUID = 6560555992331464264L; + private String type; - public ArchitectureMethod(String name) { - super(name); + public ArchitectureMethod(String name, String type) { + super(name, type); } + + @Override + public String getType() { + return this.type; + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java index 4ce43719c..375deb68a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; import java.util.Objects; @@ -50,6 +50,15 @@ public ModelInstanceImpl(String name, String type, String uid) { this.fullType = type; } + @Override + public String getType() { + try { + throw new IllegalAccessException("This method was just added for refactoring"); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + /** * Returns the longest name of the instance. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 3256b5e19..9ed5fda41 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -13,6 +13,10 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; @@ -35,12 +39,56 @@ public final class SimilarityUtils { private final WordSimUtils wordSimUtils; + public SimilarityUtils(WordSimUtils wordSimUtils) { + this.wordSimUtils = wordSimUtils; + } + public static SimilarityUtils getInstance() { return INSTANCE; } - public SimilarityUtils(WordSimUtils wordSimUtils) { - this.wordSimUtils = wordSimUtils; + private static boolean coversOtherPhraseVector(PhraseMapping phraseMapping1, PhraseMapping phraseMapping2) { + + ImmutableSortedMap phraseVector1 = phraseMapping1.getPhraseVector(); + ImmutableSortedMap phraseVector2 = phraseMapping2.getPhraseVector(); + + return phraseVector1.keysView().containsAll(phraseVector2.keysView().toSortedSet()); + } + + static double cosineSimilarity(Map firstPhraseVector, Map secondPhraseVector) { + + CosineSimilarity cosineSimilarity = new CosineSimilarity(); + + Map firstVector = firstPhraseVector.entrySet() + .stream() + .collect(Collectors.toMap(e -> e.getKey().getText(), Map.Entry::getValue)); + Map secondVector = secondPhraseVector.entrySet() + .stream() + .collect(Collectors.toMap(e -> e.getKey().getText(), Map.Entry::getValue)); + + return cosineSimilarity.cosineSimilarity(firstVector, secondVector); + } + + public static ImmutableList> uniqueDot(ImmutableList first, ImmutableList second) { + List> result = new ArrayList<>(); + for (A a : first) { + for (B b : second) { + result.add(new Pair<>(a, b)); + } + } + return Lists.immutable.withAll(result); + } + + private static int similarEntriesOfList(ImmutableList list1, ImmutableList list2) { + MutableList removed = Lists.mutable.empty(); + + for (var element : list1) { + if (list2.contains(element) || (list2.select(e -> !removed.contains(e) && (e.contains(element) || element.contains(e))).size() == 1)) { + removed.add(element); + } + } + + return removed.size(); } public ImmutableList getSimilarSurfaceWords(RecommendedInstance recommendedInstance, ModelInstance instance) { @@ -102,17 +150,23 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode } /** - * Compares a given {@link Word} with a given {@link ModelInstance} for similarity. + * Compares a given {@link Word} with a given {@link Entity} for similarity. * - * @param word the {@link Word} - * @param instance the {@link ModelInstance} - * @return true, iff the {@link Word} and {@link ModelInstance} are similar. + * @param word the {@link Word} + * @param entity the {@link Entity} of a model + * @return true, iff the {@link Word} and {@link Entity} are similar. */ - public boolean isWordSimilarToModelInstance(Word word, ModelInstance instance) { - var names = instance.getNameParts(); - return this.compareWordWithStringListEntries(word, names); + public boolean isWordSimilarToModelEntity(Word word, Entity entity) { + switch (entity) { + case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getNameParts()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + } + throw new IllegalStateException("Undefined for entity type"); } + //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed + /** * Compares a given {@link RecommendedInstance} with a given {@link ModelInstance} for similarity. * @@ -126,16 +180,23 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r return instance.getFullName().equalsIgnoreCase(ri.getName()) || this.areWordsOfListsSimilar(instance.getNameParts(), nameList); } + //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed + /** - * Compares a given {@link Word} with the type of a given {@link ModelInstance} for similarity. + * Compares a given {@link Word} with the type of a given {@link Entity} for similarity. * - * @param word the {@link Word} - * @param instance the {@link ModelInstance} - * @return true, iff the {@link Word} and the type of the {@link ModelInstance} are similar. + * @param word the {@link Word} + * @param entity the {@link Entity} + * @return true, iff the {@link Word} and the type of the {@link Entity} are similar. */ - public boolean isWordSimilarToModelInstanceType(Word word, ModelInstance instance) { - var types = instance.getTypeParts(); - return this.compareWordWithStringListEntries(word, types); + public boolean isWordSimilarToModelInstanceType(Word word, Entity entity) { + switch (entity) { + case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + } + throw new IllegalStateException("Undefined for entity type"); + } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { @@ -151,7 +212,6 @@ private boolean compareWordWithStringListEntries(String word, ImmutableList phraseVector1 = phraseMapping1.getPhraseVector(); - ImmutableSortedMap phraseVector2 = phraseMapping2.getPhraseVector(); - - return phraseVector1.keysView().containsAll(phraseVector2.keysView().toSortedSet()); - } - private boolean containsAllNounMappingsOfPhraseMapping(TextState textState, PhraseMapping phraseMapping1, PhraseMapping phraseMapping2) { return phraseMapping1.getNounMappings(textState).containsAllIterable(phraseMapping2.getNounMappings(textState)); } - static double cosineSimilarity(Map firstPhraseVector, Map secondPhraseVector) { - - CosineSimilarity cosineSimilarity = new CosineSimilarity(); - - Map firstVector = firstPhraseVector.entrySet() - .stream() - .collect(Collectors.toMap(e -> e.getKey().getText(), Map.Entry::getValue)); - Map secondVector = secondPhraseVector.entrySet() - .stream() - .collect(Collectors.toMap(e -> e.getKey().getText(), Map.Entry::getValue)); - - return cosineSimilarity.cosineSimilarity(firstVector, secondVector); - } - public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapping phraseMapping, ImmutableList otherPhraseMappings, double minCosineSimilarity) { @@ -367,16 +404,6 @@ public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapp return mostSimilarPhraseMapping; } - public static ImmutableList> uniqueDot(ImmutableList first, ImmutableList second) { - List> result = new ArrayList<>(); - for (A a : first) { - for (B b : second) { - result.add(new Pair<>(a, b)); - } - } - return Lists.immutable.withAll(result); - } - public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firstPhraseMapping, PhraseMapping secondPhraseMapping, PhraseMappingAggregatorStrategy strategy) { PhraseType firstPhraseType = firstPhraseMapping.getPhraseType(); @@ -396,16 +423,4 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs return strategy.applyAsDouble(firstPhraseMapping, secondPhraseMapping); } - private static int similarEntriesOfList(ImmutableList list1, ImmutableList list2) { - MutableList removed = Lists.mutable.empty(); - - for (var element : list1) { - if (list2.contains(element) || (list2.select(e -> !removed.contains(e) && (e.contains(element) || element.contains(e))).size() == 1)) { - removed.add(element); - } - } - - return removed.size(); - } - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 60dc17597..67fb5b47f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -9,20 +9,20 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.SortedSet; import java.util.StringJoiner; -import java.util.TreeSet; -import java.util.stream.Collectors; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; @@ -35,9 +35,8 @@ * General helper class for outsourced, common methods. */ public final class CommonUtilities { - private static final Logger logger = LoggerFactory.getLogger(CommonUtilities.class); - public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + private static final Logger logger = LoggerFactory.getLogger(CommonUtilities.class); private CommonUtilities() { throw new IllegalAccessError(); @@ -195,9 +194,8 @@ public static boolean containsSeparator(String reference) { } /** - * Creates {@link RecommendedInstance}s for the given {@link NounMapping}s using the given information about similar - * types and probability and type mappings. Adds the created {@link RecommendedInstance}s to the given - * {@link RecommendationState} + * Creates {@link RecommendedInstance}s for the given {@link NounMapping}s using the given information about similar types and probability and type + * mappings. Adds the created {@link RecommendedInstance}s to the given {@link RecommendationState} * * @param similarTypes The list of similar types * @param nameMappings the noun mappings @@ -219,36 +217,35 @@ public static void addRecommendedInstancesFromNounMappings(ImmutableList /** * Retrieves a list of similar types in the given model state given the word. * - * @param word the word that might have type names in the model state - * @param modelState the model state containing information about types + * @param word the word that might have type names in the model state + * @param model the model containing information about types * @return List of type names in the model state that are similar to the given word */ - public static ImmutableList getSimilarTypes(Word word, LegacyModelExtractionState modelState) { - var identifiers = getTypeIdentifiers(modelState); + public static ImmutableList getSimilarTypes(Word word, Model model) { + var identifiers = getTypeIdentifiers(model); return Lists.immutable.fromStream(identifiers.stream().filter(typeId -> SimilarityUtils.getInstance().areWordsSimilar(typeId, word.getText()))); } /** * Returns a set of identifiers for the types in the model state. * - * @param modelState the model state + * @param model the model state * @return Set of identifiers for existing types */ - public static SortedSet getTypeIdentifiers(LegacyModelExtractionState modelState) { - SortedSet identifiers = modelState.getInstanceTypes() - .stream() - .map(CommonUtilities::splitSnakeAndKebabCase) - .map(CommonUtilities::splitCamelCase) - .map(type -> type.split(" ")) - .flatMap(Arrays::stream) - .collect(Collectors.toCollection(TreeSet::new)); - identifiers.addAll(modelState.getInstanceTypes().toSet()); - return identifiers; + public static SortedSet getTypeIdentifiers(Model model) { + + for (var entity : model.getContent()) { + switch (entity) { + case ArchitectureEntity architectureEntity -> architectureEntity.getType(); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("TextEntities have not types"); + } + } + return null; } /** - * Splits a given String at Snake and Kebab cases. For example, "test-string" and "test_string" become "test - * string". + * Splits a given String at Snake and Kebab cases. For example, "test-string" and "test_string" become "test string". * * @param name the given name * @return the name split at snake and kebab case @@ -344,8 +341,7 @@ public static ImmutableList getCompoundWords(Word word) { } /** - * Check if the word is CamelCased. Additionally, the word needs to have a length > 4, otherwise it is probably only - * a abbreviation. + * Check if the word is CamelCased. Additionally, the word needs to have a length > 4, otherwise it is probably only a abbreviation. * * @param word Word to check * @return true if the word is CamelCased and has a length greater than 4 @@ -358,8 +354,7 @@ public static boolean isCamelCasedWord(String word) { } /** - * Checks a given list of {@link Word words} to find out if there are words that the given recommendedInstance has - * in its {@link NounMapping NounMappings}. + * Checks a given list of {@link Word words} to find out if there are words that the given recommendedInstance has in its {@link NounMapping NounMappings}. * * @param wordList the word list to check * @param recommendedInstance the RecommendedInstance in question diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 4cdbe0c1b..0ac0bc0b9 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -20,7 +20,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.LegacyModelExtractionState; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; @@ -51,6 +51,18 @@ public record ArDoCoResult(DataRepository dataRepository) { private static final Logger logger = LoggerFactory.getLogger(ArDoCoResult.class); + private static String formatTraceLinksHumanReadable(TraceLink traceLink) { + String modelElementName = ((ModelInstance) traceLink.getSecondEndpoint()).getFullName(); + String modelElementUid = traceLink.getSecondEndpoint().getId(); + String modelInfo = String.format("%s (%s)", modelElementName, modelElementUid); + + var sentence = traceLink.getFirstEndpoint().getSentence(); + int sentenceNumber = sentence.getSentenceNumberForOutput(); + String sentenceInfo = String.format("S%3d: \"%s\"", sentenceNumber, sentence.getText()); + + return String.format("%-42s <--> %s", modelInfo, sentenceInfo); + } + /** * Returns the name of the project the results are based on. * @@ -114,18 +126,6 @@ public List getAllTraceLinksAsBeautifiedStrings() { .collect(ArDoCoResult::formatTraceLinksHumanReadable); } - private static String formatTraceLinksHumanReadable(TraceLink traceLink) { - String modelElementName = ((ModelInstance) traceLink.getSecondEndpoint()).getFullName(); - String modelElementUid = traceLink.getSecondEndpoint().getId(); - String modelInfo = String.format("%s (%s)", modelElementName, modelElementUid); - - var sentence = traceLink.getFirstEndpoint().getSentence(); - int sentenceNumber = sentence.getSentenceNumberForOutput(); - String sentenceInfo = String.format("S%3d: \"%s\"", sentenceNumber, sentence.getText()); - - return String.format("%-42s <--> %s", modelInfo, sentenceInfo); - } - /** * Return the list of {@link SamCodeTraceLink SamCodeTraceLinks}. If there are none, it will return an empty list. * @@ -309,14 +309,14 @@ public List getModelIds() { } /** - * Returns the internal {@link LegacyModelExtractionState} for the modelId with the given ID. + * Returns the internal {@link Model} for the modelId with the given ID. * * @param modelId the ID of the model * @return the LegacyModelExtractionState */ - public LegacyModelExtractionState getModelState(Metamodel modelId) { + public Model getModelState(Metamodel modelId) { ModelStates modelStates = this.getModelStates(); - return modelStates.getModelExtractionState(modelId); + return modelStates.getModel(modelId); } /** diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java index 7adba9157..014b490bd 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java @@ -37,7 +37,7 @@ public static EvaluationResults compareTLR(ArDoCoResult arDoCoResult, Imm int sentences = arDoCoResult.getText().getSentences().size(); int modelElements = 0; for (var model : arDoCoResult.getModelIds()) { - modelElements += arDoCoResult.getModelState(model).getInstances().size(); + modelElements += arDoCoResult.getModelState(model).getEndpoints().size(); } int confusionMatrixSum = sentences * modelElements; From 4b3cbd21bc11a48c52ab69853502d5a485751e1f Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 17 Dec 2024 09:55:03 +0100 Subject: [PATCH 031/115] begin refactoring entities in connectionstate --- .../connectiongenerator/ConnectionState.java | 9 +-- .../connectiongenerator/InstanceLink.java | 33 ++++++--- .../common/similarity/SimilarityUtils.java | 70 +++++++++++-------- 3 files changed, 68 insertions(+), 44 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index de088bf3e..b7fa75fdc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -7,6 +7,7 @@ import org.eclipse.collections.api.set.MutableSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; @@ -82,15 +83,15 @@ default ImmutableSet> getTraceLink } /** - * Adds the connection of a recommended instance and a model instance to the state. If the model instance is already - * contained by the state it is extended. Elsewhere a new instance link is created + * Adds the connection of a recommended instance and a model instance to the state. If the model instance is already contained by the state it is extended. + * Elsewhere a new instance link is created * * @param recommendedModelInstance the recommended instance - * @param instance the model instance + * @param entity the model instance * @param claimant the claimant * @param probability the probability of the link */ - void addToLinks(RecommendedInstance recommendedModelInstance, ModelInstance instance, Claimant claimant, double probability); + void addToLinks(RecommendedInstance recommendedModelInstance, Entity entity, Claimant claimant, double probability); /** * Checks if an instance link is already contained by the state. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 27bc28355..37fc0bfca 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -8,7 +8,10 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; @@ -18,10 +21,10 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelInstance}. + * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link Entity}. */ @Deterministic -public class InstanceLink extends TraceLink { +public class InstanceLink extends TraceLink { private static final long serialVersionUID = -8630933950725516269L; private final Confidence confidence; @@ -30,10 +33,10 @@ public class InstanceLink extends TraceLink * Create a new instance link * * @param textualInstance the recommended instance - * @param modelInstance the model instance + * @param entity the model instance */ - public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInstance) { - super(textualInstance, modelInstance); + public InstanceLink(RecommendedInstance textualInstance, Entity entity) { + super(textualInstance, entity); this.confidence = new Confidence(AggregationFunctions.AVERAGE); } @@ -41,12 +44,12 @@ public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInst * Creates a new instance link. * * @param textualInstance the recommended instance - * @param modelInstance the model instance + * @param entity the model instance * @param claimant the claimant * @param probability the probability of this link */ - public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInstance, Claimant claimant, double probability) { - this(textualInstance, modelInstance); + public InstanceLink(RecommendedInstance textualInstance, Entity entity, Claimant claimant, double probability) { + this(textualInstance, entity); this.confidence.addAgentConfidence(claimant, probability); } @@ -84,8 +87,16 @@ public String toString() { types.addAll(typeMapping.getSurfaceForms().castToCollection()); typePositions.addAll(typeMapping.getMappingSentenceNo().castToCollection()); } - return "InstanceMapping [ uid=" + this.getSecondEndpoint().getUid() + ", name=" + this.getSecondEndpoint().getFullName() + // - ", as=" + String.join(", ", this.getSecondEndpoint().getFullType()) + ", probability=" + this.getConfidence() + ", FOUND: " + // + + String typeInfo; + switch (this.getSecondEndpoint()) { + case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType(); + case CodeEntity ignored -> typeInfo = ""; + case TextEntity ignored -> typeInfo = ""; + } + + return "InstanceMapping [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // + ", as=" + String.join(", ", typeInfo) + ", probability=" + this.getConfidence() + ", FOUND: " + // this.getFirstEndpoint().getName() + " : " + this.getFirstEndpoint().getType() + ", occurrences= " + // "NameVariants: " + names.size() + ": " + names + " sentences{" + Arrays.toString(namePositions.toArray()) + "}" + // ", TypeVariants: " + types.size() + ": " + types + "sentences{" + Arrays.toString(typePositions.toArray()) + "}" + "]"; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 9ed5fda41..fdf3152b4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -136,8 +136,8 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { * @return true, iff the {@link NounMapping} and {@link ModelInstance} are similar. */ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, ModelInstance instance) { - if (this.areWordsOfListsSimilar(instance.getNameParts(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(instance - .getFullName(), nounMapping.getReference())) { + if (this.areWordsOfListsSimilar(instance.getNameParts(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar( + instance.getFullName(), nounMapping.getReference())) { return true; } @@ -158,9 +158,9 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode */ public boolean isWordSimilarToModelEntity(Word word, Entity entity) { switch (entity) { - case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getNameParts()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getNameParts()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); } throw new IllegalStateException("Undefined for entity type"); } @@ -191,9 +191,9 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r */ public boolean isWordSimilarToModelInstanceType(Word word, Entity entity) { switch (entity) { - case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); } throw new IllegalStateException("Undefined for entity type"); @@ -285,21 +285,33 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable return this.areWordsOfListsSimilar(originals, words2test, CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD); } + //TODO: Is there a better place for this method? + private ImmutableList getNamePartsOfEntity(Entity entity) { + switch (entity) { + case ArchitectureEntity architectureEntity -> { + return architectureEntity.getNameParts(); + } + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + } + } + /** * Extracts most likely matches of a list of recommended instances by similarity to a given instance. For this, the method uses an increasing minimal * proportional threshold with the method areWordsOfListsSimilar method. If all lists are similar to the given instance by a threshold of 1-increase value * the while loop can be left. If the while loop ends with more than one possibility or all remaining lists are sorted out in the same run, all are * returned. Elsewhere only the remaining recommended instance is returned within the list. * - * @param instance instance to use as original for compare + * @param entity instance to use as original for compare * @param recommendedInstances recommended instances to check for similarity * @return a list of the most similar recommended instances (to the instance names) */ - public ImmutableList getMostRecommendedInstancesToInstanceByReferences(ModelInstance instance, + public ImmutableList getMostRecommendedInstancesToInstanceByReferences(Entity entity, ImmutableList recommendedInstances) { - var instanceNames = instance.getNameParts(); + + var instanceNames = this.getNamePartsOfEntity(entity); var similarity = CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD; - var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(instance, ri, similarity)); + var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(entity, ri, similarity)); var getMostRecommendedIByRefMinProportion = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_MIN_PROPORTION; var getMostRecommendedIByRefIncrease = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_INCREASE; @@ -312,7 +324,7 @@ public ImmutableList getMostRecommendedInstancesToInstanceB getMostRecommendedIByRefMinProportion += getMostRecommendedIByRefIncrease; MutableList risToRemove = Lists.mutable.empty(); for (RecommendedInstance ri : whileSelection) { - if (this.checkRecommendedInstanceWordSimilarityToInstance(instance, ri)) { + if (this.checkRecommendedInstanceWordSimilarityToInstance(entity, ri)) { allListsSimilar++; } @@ -333,8 +345,8 @@ public ImmutableList getMostRecommendedInstancesToInstanceB } - private boolean checkRecommendedInstanceWordSimilarityToInstance(ModelInstance instance, RecommendedInstance ri) { - var instanceNames = instance.getNameParts(); + private boolean checkRecommendedInstanceWordSimilarityToInstance(Entity entity, RecommendedInstance ri) { + var instanceNames = this.getNamePartsOfEntity(entity); for (var sf : ri.getNameMappings().flatCollect(NounMapping::getSurfaceForms)) { var splitSF = CommonUtilities.splitCases(String.join(" ", CommonUtilities.splitAtSeparators(sf))); if (this.areWordsSimilar(String.join(" ", instanceNames), splitSF)) { @@ -344,17 +356,17 @@ private boolean checkRecommendedInstanceWordSimilarityToInstance(ModelInstance i return false; } - private boolean checkRecommendedInstanceForSelection(ModelInstance instance, RecommendedInstance ri, double similarity) { - var instanceNames = instance.getNameParts(); - ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(instance.getFullName()).split(" ")); + private boolean checkRecommendedInstanceForSelection(Entity entity, RecommendedInstance ri, double similarity) { + var entityNameParts = this.getNamePartsOfEntity(entity); + ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(entity.getName()).split(" ")); ImmutableList recommendedInstanceNames = Lists.immutable.with(ri.getName()); - boolean instanceNameAndRIName = this.areWordsSimilar(instance.getFullName(), ri.getName()); - boolean instanceNamesAndRIs = this.areWordsOfListsSimilar(instanceNames, recommendedInstanceNames, similarity); + boolean instanceNameAndRIName = this.areWordsSimilar(entity.getName(), ri.getName()); + boolean instanceNamesAndRIs = this.areWordsOfListsSimilar(entityNameParts, recommendedInstanceNames, similarity); boolean longestNameSplitAndRINames = this.areWordsOfListsSimilar(longestNameSplit, recommendedInstanceNames, similarity); - boolean listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(instanceNames, recommendedInstanceNames) / Math.max(instanceNames.size(), + boolean listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, recommendedInstanceNames) / Math.max(entityNameParts.size(), recommendedInstanceNames.size()) >= similarity; - boolean listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(instanceNames.size(), + boolean listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(entityNameParts.size(), recommendedInstanceNames.size()) >= similarity; if (instanceNameAndRIName || instanceNamesAndRIs || longestNameSplitAndRINames || listOfNamesSimilarEnough || listOfNameSplitSimilarEnough) { @@ -365,12 +377,12 @@ private boolean checkRecommendedInstanceForSelection(ModelInstance instance, Rec var splitSurfaceForm = CommonUtilities.splitCases(surfaceForm); var surfaceFormWords = CommonUtilities.splitAtSeparators(splitSurfaceForm); - boolean instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(instanceNames, surfaceFormWords, similarity); + boolean instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(entityNameParts, surfaceFormWords, similarity); boolean longestNameXSurfaceForms = this.areWordsOfListsSimilar(longestNameSplit, surfaceFormWords, similarity); - boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(instanceNames, surfaceFormWords) / Math.max(instanceNames.size(), + boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, surfaceFormWords) / Math.max(entityNameParts.size(), surfaceFormWords.size()) >= similarity; - boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max(longestNameSplit - .size(), surfaceFormWords.size()) >= similarity; + boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max( + longestNameSplit.size(), surfaceFormWords.size()) >= similarity; if (instanceNamesXSurfaceForms || longestNameXSurfaceForms || listOfNamesXSurfaceFormSimilarEnough || listOfSplitNamesXSurfaceFormSimilarEnough) { return true; @@ -413,9 +425,9 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs } // Maybe REWORK. Remove NounMappings? - if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this - .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( - textState, secondPhraseMapping, firstPhraseMapping)) { + if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, + firstPhraseMapping)) && this.containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, + secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping(textState, secondPhraseMapping, firstPhraseMapping)) { // HARD CODED... Change? return 1.0; } From ff0c2387ca12ca292e1c61e47b3fb7d4765de130 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 17 Dec 2024 13:13:18 +0100 Subject: [PATCH 032/115] update refactoring --- .../ardoco/core/api/models/ModelStates.java | 29 ------------------- .../LegacyModelExtractionStateByArCoTL.java | 8 ++--- ...cyModelExtractionState.java => Model.java} | 2 +- .../common/similarity/SimilarityUtils.java | 29 ++++++------------- .../core/common/util/CommonUtilities.java | 28 +++++++++++++++--- .../ardoco/core/api/output/ArDoCoResult.java | 2 +- 6 files changed, 39 insertions(+), 59 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/{LegacyModelExtractionState.java => Model.java} (95%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index f670400c6..a2a250981 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -20,35 +20,6 @@ public class ModelStates implements PipelineStepData { public ModelStates() { } - /* - /** - * Returns the {@link LegacyModelExtractionState} with the given id - * - * @param id the id - * @return the corresponding {@link LegacyModelExtractionState} - * @deprecated use {@link #getModel(Metamodel)} instead - / - @Deprecated - public LegacyModelExtractionState getModelExtractionState(Metamodel id) { - if (this.legacyModels.containsKey(id)) { - return this.legacyModels.get(id); - } - - var model = this.models.get(id); - if (model == null) { - return null; - } - - var legacyModel = switch (model) { - case ArchitectureModel am -> new LegacyModelExtractionStateByArCoTL(am); - case CodeModel cm -> new LegacyModelExtractionStateByArCoTL(cm); - }; - - this.legacyModels.put(id, legacyModel); - return legacyModel; - } - */ - /** * Return the set of IDs of all {@link Model Models} that are contained within this object. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java index ece4e4d72..121fdd954 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java @@ -30,7 +30,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.InterfaceUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ProgrammingLanguages; -public class LegacyModelExtractionStateByArCoTL implements LegacyModelExtractionState { +public class LegacyModelExtractionStateByArCoTL implements Model { private static final long serialVersionUID = -9079063953852495629L; private static final Logger logger = LoggerFactory.getLogger(LegacyModelExtractionStateByArCoTL.class); @@ -67,9 +67,9 @@ private static ImmutableList initArchitectureInstances(Architectu MutableList instances = Lists.mutable.empty(); for (ArchitectureItem architectureItem : architectureModel.getEndpoints()) { switch (architectureItem) { - case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); - case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); - case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); + case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); + case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); + case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); } } return instances.toImmutable(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java index 96ab19a0a..a898234f8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java @@ -16,7 +16,7 @@ * @deprecated use {@link ModelStates#getModel(Metamodel)} */ @Deprecated(since = "0.32.0") -public interface LegacyModelExtractionState extends IConfigurable, Serializable { +public interface Model extends IConfigurable, Serializable { /** * Returns the unique id of the model * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index fdf3152b4..e59a79ca8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -168,16 +168,16 @@ public boolean isWordSimilarToModelEntity(Word word, Entity entity) { //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed /** - * Compares a given {@link RecommendedInstance} with a given {@link ModelInstance} for similarity. + * Compares a given {@link RecommendedInstance} with a given {@link Entity} for similarity. * - * @param ri the {@link RecommendedInstance} - * @param instance the {@link ModelInstance} - * @return true, iff the {@link RecommendedInstance} and {@link ModelInstance} are similar. + * @param ri the {@link RecommendedInstance} + * @param entity the {@link Entity} + * @return true, iff the {@link RecommendedInstance} and {@link Entity} are similar. */ - public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, ModelInstance instance) { + public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, Entity entity) { var name = ri.getName(); var nameList = Lists.immutable.with(name.split(" ")); - return instance.getFullName().equalsIgnoreCase(ri.getName()) || this.areWordsOfListsSimilar(instance.getNameParts(), nameList); + return entity.getName().equalsIgnoreCase(ri.getName()) || this.areWordsOfListsSimilar(CommonUtilities.getNamePartsOfEntity(entity), nameList); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed @@ -285,17 +285,6 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable return this.areWordsOfListsSimilar(originals, words2test, CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD); } - //TODO: Is there a better place for this method? - private ImmutableList getNamePartsOfEntity(Entity entity) { - switch (entity) { - case ArchitectureEntity architectureEntity -> { - return architectureEntity.getNameParts(); - } - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); - } - } - /** * Extracts most likely matches of a list of recommended instances by similarity to a given instance. For this, the method uses an increasing minimal * proportional threshold with the method areWordsOfListsSimilar method. If all lists are similar to the given instance by a threshold of 1-increase value @@ -309,7 +298,7 @@ private ImmutableList getNamePartsOfEntity(Entity entity) { public ImmutableList getMostRecommendedInstancesToInstanceByReferences(Entity entity, ImmutableList recommendedInstances) { - var instanceNames = this.getNamePartsOfEntity(entity); + var instanceNames = CommonUtilities.getNamePartsOfEntity(entity); var similarity = CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD; var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(entity, ri, similarity)); @@ -346,7 +335,7 @@ public ImmutableList getMostRecommendedInstancesToInstanceB } private boolean checkRecommendedInstanceWordSimilarityToInstance(Entity entity, RecommendedInstance ri) { - var instanceNames = this.getNamePartsOfEntity(entity); + var instanceNames = CommonUtilities.getNamePartsOfEntity(entity); for (var sf : ri.getNameMappings().flatCollect(NounMapping::getSurfaceForms)) { var splitSF = CommonUtilities.splitCases(String.join(" ", CommonUtilities.splitAtSeparators(sf))); if (this.areWordsSimilar(String.join(" ", instanceNames), splitSF)) { @@ -357,7 +346,7 @@ private boolean checkRecommendedInstanceWordSimilarityToInstance(Entity entity, } private boolean checkRecommendedInstanceForSelection(Entity entity, RecommendedInstance ri, double similarity) { - var entityNameParts = this.getNamePartsOfEntity(entity); + var entityNameParts = CommonUtilities.getNamePartsOfEntity(entity); ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(entity.getName()).split(" ")); ImmutableList recommendedInstanceNames = Lists.immutable.with(ri.getName()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 67fb5b47f..104598847 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -13,6 +13,7 @@ import java.util.Scanner; import java.util.SortedSet; import java.util.StringJoiner; +import java.util.TreeSet; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; @@ -21,6 +22,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; @@ -234,14 +236,16 @@ public static ImmutableList getSimilarTypes(Word word, Model model) { */ public static SortedSet getTypeIdentifiers(Model model) { + SortedSet identifiers = new TreeSet<>(); + for (var entity : model.getContent()) { switch (entity) { - case ArchitectureEntity architectureEntity -> architectureEntity.getType(); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("TextEntities have not types"); + case ArchitectureEntity architectureEntity -> identifiers.add(architectureEntity.getType()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("TextEntities have not types"); } } - return null; + return identifiers; } /** @@ -407,4 +411,20 @@ public static String readInputText(File textFile) { return ""; } } + + public static ImmutableList getTypePartsOfEntity(Entity entity) { + return switch (entity) { + case ArchitectureEntity architectureEntity -> architectureEntity.getTypeParts(); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Types are undefined for text entities"); + }; + } + + public static ImmutableList getNamePartsOfEntity(Entity entity) { + return switch (entity) { + case ArchitectureEntity architectureEntity -> architectureEntity.getNameParts(); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + }; + } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 0ac0bc0b9..301480106 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -312,7 +312,7 @@ public List getModelIds() { * Returns the internal {@link Model} for the modelId with the given ID. * * @param modelId the ID of the model - * @return the LegacyModelExtractionState + * @return the Model */ public Model getModelState(Metamodel modelId) { ModelStates modelStates = this.getModelStates(); From d0af3bd957055c9b181e7dbac04dbfb18543c69f Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 2 Jan 2025 11:13:59 +0100 Subject: [PATCH 033/115] update --- .../ArchitectureEntityImpl.java} | 30 +-- .../LegacyModelExtractionStateByArCoTL.java | 184 ------------------ .../arcotl/architecture/legacy/Model.java | 63 ------ .../architecture/legacy/ModelInstance.java | 55 ------ .../SadModelTraceLink.java | 4 + .../core/api/tracelink/SadSamTraceLink.java | 78 -------- .../ardoco/core/api/output/ArDoCoResult.java | 26 ++- 7 files changed, 23 insertions(+), 417 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl/architecture/legacy/ModelInstanceImpl.java => entity/ArchitectureEntityImpl.java} (76%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java similarity index 76% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 375deb68a..520ac3d67 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstanceImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -1,5 +1,4 @@ -/* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; +package edu.kit.kastel.mcse.ardoco.core.api.entity; import java.util.Objects; @@ -9,12 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; -/** - * This class represents an instance extracted from a model. The name of an instance (as well as the type) are splitted at spaces and can be seen as multiple - * names. Therefore, the longestName (and type) is the original name (type) of the instance. - */ -@Deprecated -public final class ModelInstanceImpl extends ModelInstance { +public class ArchitectureEntityImpl extends ArchitectureEntity { private static final long serialVersionUID = 9185325416212743266L; @@ -31,7 +25,7 @@ public final class ModelInstanceImpl extends ModelInstance { * @param type type of the instance. * @param uid unique identifier of the instance needed for trace linking. */ - public ModelInstanceImpl(String name, String type, String uid) { + public ArchitectureEntityImpl(String name, String type, String uid) { super(name, uid); String splitName = CommonUtilities.splitCases(name); @@ -50,22 +44,13 @@ public ModelInstanceImpl(String name, String type, String uid) { this.fullType = type; } - @Override - public String getType() { - try { - throw new IllegalAccessException("This method was just added for refactoring"); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - } - /** * Returns the longest name of the instance. * * @return the original name of the instance */ @Override - public String getFullName() { + public String getName() { return this.fullName; } @@ -75,7 +60,7 @@ public String getFullName() { * @return the original type of the instance */ @Override - public String getFullType() { + public String getType() { return this.fullType; } @@ -105,7 +90,7 @@ public ImmutableList getTypeParts() { * @return the unique identifier of the instance */ @Override - public String getUid() { + public String getId() { return this.uid; } @@ -124,10 +109,9 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof ModelInstanceImpl other)) { + if (!(obj instanceof ArchitectureEntityImpl other)) { return false; } return Objects.equals(this.fullName, other.fullName) && Objects.equals(this.fullType, other.fullType) && Objects.equals(this.uid, other.uid); } - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java deleted file mode 100644 index 121fdd954..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/LegacyModelExtractionStateByArCoTL.java +++ /dev/null @@ -1,184 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.SortedMap; -import java.util.TreeMap; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.factory.SortedSets; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; -import org.eclipse.collections.api.set.sorted.MutableSortedSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.CodeModel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureInterface; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureMethod; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ClassUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeModule; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.InterfaceUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ProgrammingLanguages; - -public class LegacyModelExtractionStateByArCoTL implements Model { - private static final long serialVersionUID = -9079063953852495629L; - - private static final Logger logger = LoggerFactory.getLogger(LegacyModelExtractionStateByArCoTL.class); - - private final String modelId; - private final Metamodel metamodel; - - private final ImmutableList instances; - - private final MutableSortedSet instanceTypes; - private final MutableSortedSet names; - private SortedMap lastConfig; - - public LegacyModelExtractionStateByArCoTL(ArchitectureModel architectureModel) { - this.modelId = architectureModel.getId(); - this.instances = LegacyModelExtractionStateByArCoTL.initArchitectureInstances(architectureModel); - this.metamodel = Metamodel.ARCHITECTURE; - this.instanceTypes = SortedSets.mutable.empty(); - this.names = SortedSets.mutable.empty(); - this.collectTypesAndNames(); - } - - public LegacyModelExtractionStateByArCoTL(CodeModel codeModel) { - this.modelId = codeModel.getId(); - this.instances = LegacyModelExtractionStateByArCoTL.initCodeInstances(codeModel); - this.metamodel = Metamodel.CODE; - - this.instanceTypes = SortedSets.mutable.empty(); - this.names = SortedSets.mutable.empty(); - this.collectTypesAndNames(); - } - - private static ImmutableList initArchitectureInstances(ArchitectureModel architectureModel) { - MutableList instances = Lists.mutable.empty(); - for (ArchitectureItem architectureItem : architectureModel.getEndpoints()) { - switch (architectureItem) { - case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); - case ArchitectureInterface ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureInterface not supported yet"); - case ArchitectureMethod ignored -> LegacyModelExtractionStateByArCoTL.logger.debug("Skipping .. ArchitectureMethod not supported yet"); - } - } - return instances.toImmutable(); - } - - private static ImmutableList initCodeInstances(CodeModel codeModel) { - List instances = new ArrayList<>(); - LegacyModelExtractionStateByArCoTL.fillPackages(codeModel.getAllPackages(), instances); - LegacyModelExtractionStateByArCoTL.fillCompilationUnits(codeModel.getEndpoints(), instances); - return Lists.immutable.withAll(instances); - } - - private static void fillPackages(Collection packages, List instances) { - for (var modelElement : packages) { - StringBuilder path = new StringBuilder(modelElement.getName()); - CodeModule parent = modelElement.getParent(); - while (parent != null) { - path.insert(0, parent.getName() + "/"); - parent = parent.getParent(); - } - // Ensure that package is handled as directory - path.append("/"); - instances.add(new ModelInstanceImpl(modelElement.getName(), "Package", path.toString())); - } - } - - private static void fillCompilationUnits(Collection units, List instances) { - for (var unit : units) { - String type = LegacyModelExtractionStateByArCoTL.findType(unit); - instances.add(new ModelInstanceImpl(unit.getName(), type, unit.getPath())); - } - - } - - private static String findType(CodeCompilationUnit unit) { - // Assumption mostly one class per unit - var content = unit.getContent().stream().filter(it -> unit.getName().contains(it.getName())).findFirst().orElse(null); - if (content instanceof ClassUnit) { - return "Class"; - } - if (content instanceof InterfaceUnit) { - return "Interface"; - } - if (unit.getPath().endsWith("package-info.java")) { - return "PackageInfo"; - } - if (unit.getPath().endsWith(".java")) { - // Default to Class - return "Class"; - } - if (ProgrammingLanguages.SHELL.equals(unit.getLanguage())) { - return "ShellScript"; - } - throw new IllegalStateException("Unknown type of CodeCompilationUnit"); - } - - private void collectTypesAndNames() { - for (ModelInstance i : this.instances) { - this.instanceTypes.addAll(i.getTypeParts().castToCollection()); - this.names.addAll(i.getNameParts().castToCollection()); - } - } - - @Override - public String getModelId() { - return this.modelId; - } - - @Override - public Metamodel getMetamodel() { - return this.metamodel; - } - - @Override - public ImmutableList getInstancesOfType(String type) { - return this.instances.select(i -> i.getTypeParts().contains(type)); - } - - @Override - public ImmutableSortedSet getInstanceTypes() { - return this.instanceTypes.toImmutable(); - } - - @Override - public ImmutableSortedSet getNames() { - return this.names.toImmutable(); - } - - @Override - public ImmutableList getInstances() { - return this.instances; - } - - @Override - public String toString() { - var output = new StringBuilder("Instances:\n"); - for (ModelInstance i : this.instances) { - output.append(i.toString()).append("\n"); - } - return output.toString(); - } - - @Override - public void applyConfiguration(SortedMap additionalConfiguration) { - this.lastConfig = new TreeMap<>(additionalConfiguration); - } - - @Override - public SortedMap getLastAppliedConfiguration() { - return this.lastConfig; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java deleted file mode 100644 index a898234f8..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/Model.java +++ /dev/null @@ -1,63 +0,0 @@ -/* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; - -import java.io.Serializable; - -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; - -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; - -/** - * The Interface IModelState defines the information directly extracted from the models. - * - * @deprecated use {@link ModelStates#getModel(Metamodel)} - */ -@Deprecated(since = "0.32.0") -public interface Model extends IConfigurable, Serializable { - /** - * Returns the unique id of the model - * - * @return modelId - */ - String getModelId(); - - /** - * Returns the metalevel or type of the current model - * - * @return type of model - */ - Metamodel getMetamodel(); - - /** - * Returns the instances of a specific type. - * - * @param type the type to search for - * @return all instances that are from that type - */ - ImmutableList getInstancesOfType(String type); - - /** - * Returns all types that are contained by instances of this state. - * - * @return all instance types of this state - */ - ImmutableSortedSet getInstanceTypes(); - - /** - * Returns all names that are contained by this state. - * - * @return all names of this state - */ - ImmutableSortedSet getNames(); - - /** - * Returns all instances that are contained by this state. - * - * @return all instances of this state - */ - ImmutableList getInstances(); - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java deleted file mode 100644 index 7c8ad113b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/legacy/ModelInstance.java +++ /dev/null @@ -1,55 +0,0 @@ -/* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy; - -import org.eclipse.collections.api.list.ImmutableList; - -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; - -/** - * The Interface IModelInstance defines instances from models. - */ -@Deprecated -public abstract sealed class ModelInstance extends ArchitectureEntity permits ModelInstanceImpl { - - private static final long serialVersionUID = 2351521910499184817L; - - protected ModelInstance(String name, String id) { - super(name, id); - } - - /** - * Returns the full name of the instance. - * - * @return the original name of the instance - */ - public abstract String getFullName(); - - /** - * Returns the full type of the instance. - * - * @return the original type of the instance - */ - public abstract String getFullType(); - - /** - * Returns all name parts of the instance. - * - * @return all name parts of the instance as list - */ - public abstract ImmutableList getNameParts(); - - /** - * Returns all type parts of the instance. - * - * @return all type parts of the instance as list - */ - public abstract ImmutableList getTypeParts(); - - /** - * Returns the unique identifier of the instance. - * - * @return the unique identifier of the instance - */ - public abstract String getUid(); - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java new file mode 100644 index 000000000..71f5fa05d --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -0,0 +1,4 @@ +package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; + +public class SadModelTraceLink { +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java deleted file mode 100644 index 8b835d12a..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadSamTraceLink.java +++ /dev/null @@ -1,78 +0,0 @@ -/* Licensed under MIT 2021-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.tracelink; - -import java.util.Objects; - -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; -import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.InstanceLink; -import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; -import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; -import edu.kit.kastel.mcse.ardoco.core.api.text.Word; - -/** - * Represents a trace link. This is a convenience data class that takes the necessary info from {@link InstanceLink} and - * the specific {@link ModelInstance} and {@link Word} that are used in this trace link. - */ -public class SadSamTraceLink extends TraceLink { - - private static final long serialVersionUID = -4902602672085469964L; - - private final Sentence sentence; - private final ArchitectureEntity architectureEntity; - - /** - * Create a trace link based on a {@link Sentence} and a concrete {@link ModelInstance} . - */ - public SadSamTraceLink(Sentence sentence, ArchitectureEntity modelInstance) { - super(new SentenceEntity(sentence), modelInstance); - this.sentence = sentence; - this.architectureEntity = modelInstance; - } - - /** - * Get the sentence number of the word that the trace link is based on. - * - * @return sentence number of the word that the trace link is based on. - */ - public int getSentenceNumber() { - return this.sentence.getSentenceNumber(); - } - - /** - * Returns the sentence of the word that the trace link is based on. - * - * @return the sentence of the word that the trace link is based on. - */ - public Sentence getSentence() { - return this.sentence; - } - - /** - * Get the UID of the model element that the trace link is based on. - * - * @return Uid of the model element that the trace link is based on. - */ - public String getArchitectureEntityId() { - return this.architectureEntity.getId(); - } - - /** - * See {@link Object#equals(Object)}. Uses the Uid of the model element and the sentence number of the word - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof SadSamTraceLink other) { - var otherId = other.getArchitectureEntityId(); - var otherSentenceNo = other.getSentenceNumber(); - return this.getArchitectureEntityId().equals(otherId) && this.getSentenceNumber() == otherSentenceNo; - } - return false; - } - - @Override - public int hashCode() { - return Objects.hash(this.getArchitectureEntityId(), this.getSentenceNumber()); - } - -} diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 301480106..a15d155fb 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -18,10 +18,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; @@ -35,8 +35,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadSamTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @@ -51,8 +49,8 @@ public record ArDoCoResult(DataRepository dataRepository) { private static final Logger logger = LoggerFactory.getLogger(ArDoCoResult.class); - private static String formatTraceLinksHumanReadable(TraceLink traceLink) { - String modelElementName = ((ModelInstance) traceLink.getSecondEndpoint()).getFullName(); + private static String formatTraceLinksHumanReadable(TraceLink traceLink) { + String modelElementName = traceLink.getSecondEndpoint().getName(); String modelElementUid = traceLink.getSecondEndpoint().getId(); String modelInfo = String.format("%s (%s)", modelElementName, modelElementUid); @@ -73,12 +71,12 @@ public String getProjectName() { } /** - * Returns the set of {@link SadSamTraceLink}s that were found for the Model with the given ID. + * Returns the set of {@link TraceLink}s that were found for the Model with the given ID. * * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id */ - public ImmutableSet> getTraceLinksForModel(Metamodel modelId) { + public ImmutableSet> getTraceLinksForModel(Metamodel modelId) { ConnectionState connectionState = this.getConnectionState(modelId); if (connectionState != null) { return connectionState.getTraceLinks(); @@ -87,7 +85,7 @@ public ImmutableSet> getTraceLinks } /** - * Returns the set of {@link SadSamTraceLink}s that were found for the Model with the given ID as strings in the format "ModelElementId,SentenceNo". + * Returns the set of {@link TraceLink}s that were found for the Model with the given ID as strings in the format "ModelElementId,SentenceNo". * * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id as Strings @@ -100,12 +98,12 @@ public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel model } /** - * Returns the set of {@link SadSamTraceLink}s + * Returns the set of {@link TraceLink}s * * @return set of Trace links */ - public ImmutableList> getAllTraceLinks() { - MutableSet> traceLinks = Sets.mutable.empty(); + public ImmutableList> getAllTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); for (var modelId : this.getModelIds()) { if (modelId == Metamodel.ARCHITECTURE) { @@ -116,7 +114,7 @@ public ImmutableList> getAllTraceL } /** - * Returns the set of {@link SadSamTraceLink SadSamTraceLinks} as strings. The strings are beautified to have a human-readable format + * Returns the set of {@link TraceLink SadSamTraceLinks} as strings. The strings are beautified to have a human-readable format * * @return Trace links as Strings */ @@ -127,9 +125,9 @@ public List getAllTraceLinksAsBeautifiedStrings() { } /** - * Return the list of {@link SamCodeTraceLink SamCodeTraceLinks}. If there are none, it will return an empty list. + * Return the list of {@link TraceLink SamCodeTraceLinks}. If there are none, it will return an empty list. * - * @return the list of {@link SamCodeTraceLink SamCodeTraceLinks}. + * @return the list of {@link TraceLink SamCodeTraceLinks}. */ public List> getSamCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); From 61350743aadf63304f3f7e0cad57024123867792 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 2 Jan 2025 11:18:06 +0100 Subject: [PATCH 034/115] update --- .../connectiongenerator/ConnectionState.java | 25 +++--- .../SadModelTraceLink.java | 76 ++++++++++++++++++- .../common/similarity/SimilarityUtils.java | 34 +++------ .../core/common/util/CommonUtilities.java | 8 ++ 4 files changed, 105 insertions(+), 38 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index b7fa75fdc..17d1f0bc3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -6,12 +6,9 @@ import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadSamTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; @@ -28,7 +25,7 @@ public interface ConnectionState extends IConfigurable { * * @return all instance links */ - ImmutableList> getInstanceLinks(); + ImmutableList> getInstanceLinks(); /** * Returns all instance links with a model instance containing the given name. @@ -36,7 +33,7 @@ public interface ConnectionState extends IConfigurable { * @param name the name of a model instance * @return all instance links with a model instance containing the given name as list */ - ImmutableList> getInstanceLinksByName(String name); + ImmutableList> getInstanceLinksByName(String name); /** * Returns all instance links with a model instance containing the given type. @@ -44,7 +41,7 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given type as list */ - ImmutableList> getInstanceLinksByType(String type); + ImmutableList> getInstanceLinksByType(String type); /** * Returns all instance links with a model instance containing the given recommended instance. @@ -52,7 +49,7 @@ public interface ConnectionState extends IConfigurable { * @param recommendedInstance the recommended instance to consider * @return all instance links found */ - ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); + ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); /** * Returns all instance links with a model instance containing the given name and type. @@ -61,20 +58,20 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given name and type as list */ - ImmutableList> getInstanceLinks(String name, String type); + ImmutableList> getInstanceLinks(String name, String type); /** * Returns a list of tracelinks that are contained within this connection state. * * @return list of tracelinks within this connection state */ - default ImmutableSet> getTraceLinks() { - MutableSet> traceLinks = Sets.mutable.empty(); + default ImmutableSet> getTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); for (var instanceLink : this.getInstanceLinks()) { var textualInstance = instanceLink.getFirstEndpoint(); for (var nm : textualInstance.getNameMappings()) { for (var word : nm.getWords()) { - var traceLink = new SadSamTraceLink(word.getSentence(), instanceLink.getSecondEndpoint()); + var traceLink = new SadModelTraceLink(word.getSentence(), instanceLink.getSecondEndpoint()); traceLinks.add(traceLink); } } @@ -99,21 +96,21 @@ default ImmutableSet> getTraceLink * @param instanceLink the given instance link * @return true if it is already contained */ - boolean isContainedByInstanceLinks(TraceLink instanceLink); + boolean isContainedByInstanceLinks(TraceLink instanceLink); /** * Removes an instance link from the state. * * @param instanceMapping the instance link to remove */ - void removeFromMappings(TraceLink instanceMapping); + void removeFromMappings(TraceLink instanceMapping); /** * Removes all instance links containing the given instance. * * @param instance the given instance */ - void removeAllInstanceLinksWith(ModelInstance instance); + void removeAllInstanceLinksWith(Entity instance); /** * Removes all instance links containing the given recommended instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java index 71f5fa05d..e62733f9f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -1,4 +1,78 @@ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; -public class SadModelTraceLink { +import java.util.Objects; + +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; + +public class SadModelTraceLink extends TraceLink { + + private final Sentence sentence; + private final Entity entity; + + /** + * Create a trace link based on a {@link Sentence} and a concrete {@link Entity} . + */ + public SadModelTraceLink(Sentence sentence, Entity entity) { + super(new SentenceEntity(sentence), entity); + this.sentence = sentence; + this.entity = entity; + } + + /** + * Create a trace link based on a {@link SentenceEntity} and a concrete {@link Entity} . + */ + public SadModelTraceLink(SentenceEntity sentenceEntity, Entity entity) { + super(sentenceEntity, entity); + this.sentence = sentenceEntity.getSentence(); + this.entity = entity; + } + + /** + * Get the sentence number of the word that the trace link is based on. + * + * @return sentence number of the word that the trace link is based on. + */ + public int getSentenceNumber() { + return this.sentence.getSentenceNumber(); + } + + /** + * Returns the sentence of the word that the trace link is based on. + * + * @return the sentence of the word that the trace link is based on. + */ + public Sentence getSentence() { + return this.sentence; + } + + /** + * Get the UID of the model element that the trace link is based on. + * + * @return Uid of the model element that the trace link is based on. + */ + public String getEntityId() { + return this.entity.getId(); + } + + /** + * See {@link Object#equals(Object)}. Uses the Uid of the model element and the sentence number of the word + */ + @Override + public boolean equals(Object obj) { + if (obj instanceof SadModelTraceLink other) { + var otherId = other.getEntityId(); + var otherSentenceNo = other.getSentenceNumber(); + return this.getEntityId().equals(otherId) && this.getSentenceNumber() == otherSentenceNo; + } + return false; + } + + @Override + public int hashCode() { + return Objects.hash(this.getEntityId(), this.getSentenceNumber()); + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index e59a79ca8..26ab730af 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -17,7 +17,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.PhraseMapping; @@ -91,13 +90,6 @@ private static int similarEntriesOfList(ImmutableList list1, ImmutableLi return removed.size(); } - public ImmutableList getSimilarSurfaceWords(RecommendedInstance recommendedInstance, ModelInstance instance) { - return Lists.immutable.fromStream(recommendedInstance.getNameMappings() - .stream() - .flatMap(n -> n.getSurfaceForms().stream()) - .filter(s -> this.wordSimUtils.areWordsSimilar(s, instance.getFullName()))); - } - /** * Checks the similarity of two {@link NounMapping}s. * @@ -128,20 +120,21 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { } /** - * Compares a given {@link NounMapping} with a given {@link ModelInstance} for similarity. Checks if all names, the longest name or a single name are - * similar to the reference of the NounMapping. + * Compares a given {@link NounMapping} with a given {@link Entity} for similarity. Checks if all names, the longest name or a single name are similar to + * the reference of the NounMapping. * * @param nounMapping the {@link NounMapping} - * @param instance the {@link ModelInstance} - * @return true, iff the {@link NounMapping} and {@link ModelInstance} are similar. + * @param entity the {@link Entity} + * @return true, iff the {@link NounMapping} and {@link Entity} are similar. */ - public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, ModelInstance instance) { - if (this.areWordsOfListsSimilar(instance.getNameParts(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar( - instance.getFullName(), nounMapping.getReference())) { + public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Entity entity) { + var namePartsOfEntity = CommonUtilities.getNamePartsOfEntity(entity); + if (this.areWordsOfListsSimilar(namePartsOfEntity, Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(entity.getName(), + nounMapping.getReference())) { return true; } - for (String name : instance.getNameParts()) { + for (String name : namePartsOfEntity) { if (this.areWordsSimilar(name, nounMapping.getReference())) { return true; } @@ -156,13 +149,8 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode * @param entity the {@link Entity} of a model * @return true, iff the {@link Word} and {@link Entity} are similar. */ - public boolean isWordSimilarToModelEntity(Word word, Entity entity) { - switch (entity) { - case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getNameParts()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); - } - throw new IllegalStateException("Undefined for entity type"); + public boolean isWordSimilarToEntity(Word word, Entity entity) { + return this.compareWordWithStringListEntries(word, CommonUtilities.getNamePartsOfEntity(entity)); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 104598847..4625f9f19 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -427,4 +427,12 @@ public static ImmutableList getNamePartsOfEntity(Entity entity) { case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); }; } + + public static String getTypeOfEntity(Entity entity) { + return switch (entity) { + case ArchitectureEntity architectureEntity -> architectureEntity.getType(); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + }; + } } From 362baa8519afdd6ba76d60649821ec8b475984c8 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 7 Jan 2025 08:14:37 +0100 Subject: [PATCH 035/115] update --- .../architecture/ArchitectureInterface.java | 13 +++++----- .../architecture/ArchitectureMethod.java | 24 +++++++++++++++---- .../core/api/tracelink/SadCodeTraceLink.java | 2 ++ .../core/api/tracelink/SamCodeTraceLink.java | 8 +++---- .../core/common/util/TraceLinkUtilities.java | 8 +++---- .../ardoco/core/api/output/ArDoCoResult.java | 4 ++-- .../ardoco/core/common/util/FilePrinter.java | 2 +- 7 files changed, 39 insertions(+), 22 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index f86f5228b..9abe589e7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -7,20 +7,19 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; +//TODO: Discuss how to handle the missing type public final class ArchitectureInterface extends ArchitectureItem { private static final long serialVersionUID = 2232013345166120690L; private final SortedSet signatures; - private final String type; - private MutableList nameParts; - private MutableList typeParts; + private final MutableList nameParts; - public ArchitectureInterface(String name, String id, SortedSet signatures, String type) { + public ArchitectureInterface(String name, String id, SortedSet signatures) { super(name, id); this.signatures = signatures; - this.type = type; + this.nameParts = splitIdentifierIntoParts(name); } @@ -51,7 +50,7 @@ public int hashCode() { @Override public String getType() { - return this.type; + throw new UnsupportedOperationException("Not implemented yet. Interfaces currently have no specified type."); } @Override @@ -61,6 +60,6 @@ public ImmutableList getNameParts() { @Override public ImmutableList getTypeParts() { - return this.typeParts.toImmutable(); + throw new UnsupportedOperationException("Not implemented yet. Interfaces currently have no specified type."); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index 65746a282..42764c1bf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -1,18 +1,34 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + +//TODO: Discuss how to handle the missing type public final class ArchitectureMethod extends ArchitectureItem { private static final long serialVersionUID = 6560555992331464264L; - private String type; - public ArchitectureMethod(String name, String type) { - super(name, type); + private final MutableList nameParts; + + public ArchitectureMethod(String name) { + super(name, null); + this.nameParts = splitIdentifierIntoParts(name); } @Override public String getType() { - return this.type; + throw new UnsupportedOperationException("Not implemented yet. Methods currently have no specified type."); + } + + @Override + public ImmutableList getNameParts() { + return this.nameParts.toImmutable(); + } + + @Override + public ImmutableList getTypeParts() { + throw new UnsupportedOperationException("Not implemented yet. Methods currently have no specified type."); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java index 1359745f6..291ac1636 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java @@ -4,6 +4,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +// TODO: Replace with SadModelTraceLink +@Deprecated public class SadCodeTraceLink extends TraceLink { private static final long serialVersionUID = -1099702076674008083L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java index 893e1a5f2..c00e073cd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java @@ -8,17 +8,17 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; /** - * A trace link between exactly one architecture endpoint and exactly one code - * endpoint. Trace links are created to connect corresponding elements of an + * A trace link between exactly one architecture endpoint and exactly one code endpoint. Trace links are created to connect corresponding elements of an * architecture and a code model. */ +// TODO: Replace with SadModelTraceLink +@Deprecated public class SamCodeTraceLink extends TraceLink { private static final long serialVersionUID = -7683024763031647537L; /** - * Creates a new trace link between an architecture endpoint and a code endpoint - * as given in the specified endpoint tuple. + * Creates a new trace link between an architecture endpoint and a code endpoint as given in the specified endpoint tuple. * * @param architectureEndpoint the architecture endpoint * @param codeEndpoint the code endpoint diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index d4b560feb..66efd6080 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -6,6 +6,7 @@ import org.eclipse.collections.api.list.MutableList; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; @@ -23,10 +24,9 @@ public static String createTraceLinkString(String firstElementId, String secondE return firstElementId + ENTRY_SEPARATOR + secondElementId; } - public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { - return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() - .getSentence() - .getSentenceNumber() + 1))); + public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { + return sadSamTraceLinks.collect( + tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1))); } public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList> samCodeTraceLinks) { diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index a15d155fb..213263609 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -102,7 +102,7 @@ public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel model * * @return set of Trace links */ - public ImmutableList> getAllTraceLinks() { + public ImmutableList> getArchitectureTraceLinks() { MutableSet> traceLinks = Sets.mutable.empty(); for (var modelId : this.getModelIds()) { @@ -119,7 +119,7 @@ public ImmutableList> getAllTraceLinks() { * @return Trace links as Strings */ public List getAllTraceLinksAsBeautifiedStrings() { - return this.getAllTraceLinks() + return this.getArchitectureTraceLinks() .toSortedList(Comparator.comparingInt(tl -> tl.getFirstEndpoint().getSentence().getSentenceNumber())) .collect(ArDoCoResult::formatTraceLinksHumanReadable); } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 41ed95332..70257c4fc 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -94,7 +94,7 @@ public static void writeTraceLinksAsCsv(ArDoCoResult arDoCoResult, File outputDi String name = arDoCoResult.getProjectName(); String header; - var sadSamTls = Lists.immutable.ofAll(arDoCoResult.getAllTraceLinks()); + var sadSamTls = Lists.immutable.ofAll(arDoCoResult.getArchitectureTraceLinks()); if (!sadSamTls.isEmpty()) { var sadSamTlr = outputDir.toPath().resolve("sadSamTlr_" + name + ".csv"); header = "modelElementID,sentence"; From 2701c65be34464e8271aea3d61d013fc0ec3d4b6 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 9 Jan 2025 11:00:16 +0100 Subject: [PATCH 036/115] update --- .../core/api/entity/ArchitectureEntity.java | 4 +- .../api/entity/ArchitectureEntityImpl.java | 1 + .../ardoco/core/api/entity/CodeEntity.java | 4 +- .../mcse/ardoco/core/api/entity/Entity.java | 4 +- .../ardoco/core/api/entity/ModelEntity.java | 23 +++++++ .../ardoco/core/api/models/ModelStates.java | 4 +- .../ardoco/core/api/models/arcotl/Model.java | 8 +-- .../architecture/ArchitectureComponent.java | 2 +- .../architecture/ArchitectureInterface.java | 4 +- .../arcotl/architecture/ArchitectureItem.java | 2 +- .../architecture/ArchitectureMethod.java | 4 +- .../connectiongenerator/ConnectionState.java | 28 ++++----- .../connectiongenerator/InstanceLink.java | 18 +++--- .../SadModelTraceLink.java | 25 ++++---- .../core/api/tracelink/SadCodeTraceLink.java | 2 +- .../core/api/tracelink/SamCodeTraceLink.java | 2 +- .../api/tracelink/TransitiveTraceLink.java | 20 +++--- .../common/similarity/SimilarityUtils.java | 18 +++--- .../core/common/util/CommonUtilities.java | 7 +-- .../core/common/util/TraceLinkUtilities.java | 11 ++-- .../ardoco/core/api/output/ArDoCoResult.java | 61 ++++++++----------- .../ardoco/core/common/util/FilePrinter.java | 2 +- .../mcse/ardoco/core/tests/TestUtil.java | 4 +- 23 files changed, 137 insertions(+), 121 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 115ce0c99..526a1efd2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; import org.eclipse.collections.api.factory.Lists; @@ -7,7 +7,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; -public abstract non-sealed class ArchitectureEntity extends Entity { +public abstract non-sealed class ArchitectureEntity extends ModelEntity { private static final long serialVersionUID = 5118724938904048363L; protected ArchitectureEntity(String name, String type) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 520ac3d67..704450cc3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index e59709870..f7e8c9c64 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -1,7 +1,7 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; -public non-sealed class CodeEntity extends Entity { +public non-sealed class CodeEntity extends ModelEntity { private static final long serialVersionUID = 5520572653996476974L; protected CodeEntity(String name) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index dc88a43d8..4f147a333 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; import java.io.Serializable; @@ -11,7 +11,7 @@ /** * An entity defines the smallest unit of a trace link. */ -public abstract sealed class Entity implements Serializable, Comparable permits ArchitectureEntity, TextEntity, CodeEntity { +public abstract sealed class Entity implements Serializable, Comparable permits TextEntity, ModelEntity { private static final long serialVersionUID = 5916408204883918465L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java new file mode 100644 index 000000000..6ca784d85 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -0,0 +1,23 @@ +/* Licensed under MIT 2025. */ +package edu.kit.kastel.mcse.ardoco.core.api.entity; + +public abstract sealed class ModelEntity extends Entity permits ArchitectureEntity, CodeEntity { + + protected ModelEntity() { + // Jackson + super(null); + } + + /** + * Creates a new entity with the specified name. + * + * @param name the name of the entity to be created + */ + protected ModelEntity(String name) { + super(name); + } + + protected ModelEntity(String name, String type) { + super(name, type); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index a2a250981..5882fa944 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.SortedMap; @@ -25,7 +25,7 @@ public ModelStates() { * * @return the IDs of all contained {@link Model Models} */ - public SortedSet modelIds() { + public SortedSet metamodels() { return new TreeSet<>(this.models.keySet()); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 7c5f2e1f3..43607bb2f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -1,9 +1,9 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; @@ -20,14 +20,14 @@ public String getId() { * * @return the content of this model */ - public abstract List getContent(); + public abstract List getContent(); /** * Returns the endpoints of this model. Contains all targetable elements for trace links, e.g. compilation units in case of CodeModel. * * @return the endpoints of this model */ - public abstract List getEndpoints(); + public abstract List getEndpoints(); public abstract Metamodel getMetamodel(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index a9ffef2aa..1d11f5bfb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import java.util.SortedSet; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 9abe589e7..12fd47f7b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import java.util.Objects; @@ -7,7 +7,7 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; -//TODO: Discuss how to handle the missing type +// TODO: Discuss how to handle the missing type public final class ArchitectureInterface extends ArchitectureItem { private static final long serialVersionUID = 2232013345166120690L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 275519085..cee398478 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index 42764c1bf..a2940186f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -1,10 +1,10 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; -//TODO: Discuss how to handle the missing type +// TODO: Discuss how to handle the missing type public final class ArchitectureMethod extends ArchitectureItem { private static final long serialVersionUID = 6560555992331464264L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 17d1f0bc3..6a25c2317 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import org.eclipse.collections.api.factory.Sets; @@ -6,7 +6,7 @@ import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; @@ -25,7 +25,7 @@ public interface ConnectionState extends IConfigurable { * * @return all instance links */ - ImmutableList> getInstanceLinks(); + ImmutableList> getInstanceLinks(); /** * Returns all instance links with a model instance containing the given name. @@ -33,7 +33,7 @@ public interface ConnectionState extends IConfigurable { * @param name the name of a model instance * @return all instance links with a model instance containing the given name as list */ - ImmutableList> getInstanceLinksByName(String name); + ImmutableList> getInstanceLinksByName(String name); /** * Returns all instance links with a model instance containing the given type. @@ -41,7 +41,7 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given type as list */ - ImmutableList> getInstanceLinksByType(String type); + ImmutableList> getInstanceLinksByType(String type); /** * Returns all instance links with a model instance containing the given recommended instance. @@ -49,7 +49,7 @@ public interface ConnectionState extends IConfigurable { * @param recommendedInstance the recommended instance to consider * @return all instance links found */ - ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); + ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); /** * Returns all instance links with a model instance containing the given name and type. @@ -58,15 +58,15 @@ public interface ConnectionState extends IConfigurable { * @param type the type of a model instance * @return all instance links with a model instance containing the given name and type as list */ - ImmutableList> getInstanceLinks(String name, String type); + ImmutableList> getInstanceLinks(String name, String type); /** * Returns a list of tracelinks that are contained within this connection state. * * @return list of tracelinks within this connection state */ - default ImmutableSet> getTraceLinks() { - MutableSet> traceLinks = Sets.mutable.empty(); + default ImmutableSet> getTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); for (var instanceLink : this.getInstanceLinks()) { var textualInstance = instanceLink.getFirstEndpoint(); for (var nm : textualInstance.getNameMappings()) { @@ -84,11 +84,11 @@ default ImmutableSet> getTraceLinks() { * Elsewhere a new instance link is created * * @param recommendedModelInstance the recommended instance - * @param entity the model instance + * @param ModelEntity the model instance * @param claimant the claimant * @param probability the probability of the link */ - void addToLinks(RecommendedInstance recommendedModelInstance, Entity entity, Claimant claimant, double probability); + void addToLinks(RecommendedInstance recommendedModelInstance, ModelEntity ModelEntity, Claimant claimant, double probability); /** * Checks if an instance link is already contained by the state. @@ -96,21 +96,21 @@ default ImmutableSet> getTraceLinks() { * @param instanceLink the given instance link * @return true if it is already contained */ - boolean isContainedByInstanceLinks(TraceLink instanceLink); + boolean isContainedByInstanceLinks(TraceLink instanceLink); /** * Removes an instance link from the state. * * @param instanceMapping the instance link to remove */ - void removeFromMappings(TraceLink instanceMapping); + void removeFromMappings(TraceLink instanceMapping); /** * Removes all instance links containing the given instance. * * @param instance the given instance */ - void removeAllInstanceLinksWith(Entity instance); + void removeAllInstanceLinksWith(ModelEntity instance); /** * Removes all instance links containing the given recommended instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 37fc0bfca..23ceac486 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import java.util.Arrays; @@ -10,8 +10,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; @@ -21,10 +20,10 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link Entity}. + * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelEntity}. */ @Deterministic -public class InstanceLink extends TraceLink { +public class InstanceLink extends TraceLink { private static final long serialVersionUID = -8630933950725516269L; private final Confidence confidence; @@ -35,7 +34,7 @@ public class InstanceLink extends TraceLink { * @param textualInstance the recommended instance * @param entity the model instance */ - public InstanceLink(RecommendedInstance textualInstance, Entity entity) { + public InstanceLink(RecommendedInstance textualInstance, ModelEntity entity) { super(textualInstance, entity); this.confidence = new Confidence(AggregationFunctions.AVERAGE); } @@ -48,7 +47,7 @@ public InstanceLink(RecommendedInstance textualInstance, Entity entity) { * @param claimant the claimant * @param probability the probability of this link */ - public InstanceLink(RecommendedInstance textualInstance, Entity entity, Claimant claimant, double probability) { + public InstanceLink(RecommendedInstance textualInstance, ModelEntity entity, Claimant claimant, double probability) { this(textualInstance, entity); this.confidence.addAgentConfidence(claimant, probability); } @@ -90,9 +89,8 @@ public String toString() { String typeInfo; switch (this.getSecondEndpoint()) { - case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType(); - case CodeEntity ignored -> typeInfo = ""; - case TextEntity ignored -> typeInfo = ""; + case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType(); + case CodeEntity ignored -> typeInfo = ""; } return "InstanceMapping [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java index e62733f9f..6a62eb01c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -1,33 +1,34 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import java.util.Objects; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -public class SadModelTraceLink extends TraceLink { +public class SadModelTraceLink extends TraceLink { private final Sentence sentence; - private final Entity entity; + private final ModelEntity modelEntity; /** - * Create a trace link based on a {@link Sentence} and a concrete {@link Entity} . + * Create a trace link based on a {@link Sentence} and a concrete {@link ModelEntity} . */ - public SadModelTraceLink(Sentence sentence, Entity entity) { - super(new SentenceEntity(sentence), entity); + public SadModelTraceLink(Sentence sentence, ModelEntity modelEntity) { + super(new SentenceEntity(sentence), modelEntity); this.sentence = sentence; - this.entity = entity; + this.modelEntity = modelEntity; } /** - * Create a trace link based on a {@link SentenceEntity} and a concrete {@link Entity} . + * Create a trace link based on a {@link SentenceEntity} and a concrete {@link ModelEntity} . */ - public SadModelTraceLink(SentenceEntity sentenceEntity, Entity entity) { - super(sentenceEntity, entity); + public SadModelTraceLink(SentenceEntity sentenceEntity, ModelEntity modelEntity) { + super(sentenceEntity, modelEntity); this.sentence = sentenceEntity.getSentence(); - this.entity = entity; + this.modelEntity = modelEntity; } /** @@ -54,7 +55,7 @@ public Sentence getSentence() { * @return Uid of the model element that the trace link is based on. */ public String getEntityId() { - return this.entity.getId(); + return this.modelEntity.getId(); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java index 291ac1636..5023e77c2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java index c00e073cd..4616142dd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java index a7514a018..eb335b636 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.util.Objects; @@ -6,21 +6,21 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -public final class TransitiveTraceLink extends TraceLink { +public final class TransitiveTraceLink extends TraceLink { private static final long serialVersionUID = 3781827633038556211L; - private final TraceLink firstTraceLink; - private final TraceLink secondTraceLink; + private final TraceLink firstTraceLink; + private final TraceLink secondTraceLink; - private TransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { + private TransitiveTraceLink(TraceLink firstTraceLink, TraceLink secondTraceLink) { super(firstTraceLink.getFirstEndpoint(), secondTraceLink.getSecondEndpoint()); this.firstTraceLink = firstTraceLink; this.secondTraceLink = secondTraceLink; } - public static Optional> createTransitiveTraceLink( - TraceLink firstTraceLink, TraceLink secondTraceLink) { + public static Optional> createTransitiveTraceLink( + TraceLink firstTraceLink, TraceLink secondTraceLink) { if (TransitiveTraceLink.isValidTransitiveTraceLink(firstTraceLink, secondTraceLink)) { return Optional.of(new TransitiveTraceLink<>(firstTraceLink, secondTraceLink)); } @@ -33,11 +33,11 @@ public static boolean isValidTransitiveTraceLink(TraceLink firstTraceLink, return secondEndpointOfFirstTl.equals(firstEndpointOfSecondTl); } - public TraceLink getFirstTraceLink() { + public TraceLink getFirstTraceLink() { return this.firstTraceLink; } - public TraceLink getSecondTraceLink() { + public TraceLink getSecondTraceLink() { return this.secondTraceLink; } @@ -51,7 +51,7 @@ public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof TransitiveTraceLink other)) { + if (!(obj instanceof TransitiveTraceLink other)) { return false; } return Objects.equals(this.getFirstTraceLink(), other.getFirstTraceLink()) && // diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 26ab730af..df8e8dbf4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity; import java.io.Serializable; @@ -179,9 +179,9 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r */ public boolean isWordSimilarToModelInstanceType(Word word, Entity entity) { switch (entity) { - case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); + case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); + case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); } throw new IllegalStateException("Undefined for entity type"); @@ -358,8 +358,8 @@ private boolean checkRecommendedInstanceForSelection(Entity entity, RecommendedI boolean longestNameXSurfaceForms = this.areWordsOfListsSimilar(longestNameSplit, surfaceFormWords, similarity); boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, surfaceFormWords) / Math.max(entityNameParts.size(), surfaceFormWords.size()) >= similarity; - boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max( - longestNameSplit.size(), surfaceFormWords.size()) >= similarity; + boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max(longestNameSplit + .size(), surfaceFormWords.size()) >= similarity; if (instanceNamesXSurfaceForms || longestNameXSurfaceForms || listOfNamesXSurfaceFormSimilarEnough || listOfSplitNamesXSurfaceFormSimilarEnough) { return true; @@ -402,9 +402,9 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs } // Maybe REWORK. Remove NounMappings? - if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, - firstPhraseMapping)) && this.containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, - secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping(textState, secondPhraseMapping, firstPhraseMapping)) { + if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this + .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( + textState, secondPhraseMapping, firstPhraseMapping)) { // HARD CODED... Change? return 1.0; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 4625f9f19..6ead2c042 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import java.io.File; @@ -240,9 +240,8 @@ public static SortedSet getTypeIdentifiers(Model model) { for (var entity : model.getContent()) { switch (entity) { - case ArchitectureEntity architectureEntity -> identifiers.add(architectureEntity.getType()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("TextEntities have not types"); + case ArchitectureEntity architectureEntity -> identifiers.add(architectureEntity.getType()); + case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); } } return identifiers; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 66efd6080..e0dff9c78 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import org.eclipse.collections.api.factory.Lists; @@ -6,7 +6,7 @@ import org.eclipse.collections.api.list.MutableList; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; @@ -24,9 +24,10 @@ public static String createTraceLinkString(String firstElementId, String secondE return firstElementId + ENTRY_SEPARATOR + secondElementId; } - public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { - return sadSamTraceLinks.collect( - tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1))); + public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { + return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() + .getSentence() + .getSentenceNumber() + 1))); } public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList> samCodeTraceLinks) { diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 213263609..7ae52c162 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.output; import java.util.Comparator; @@ -18,7 +18,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; @@ -49,7 +49,7 @@ public record ArDoCoResult(DataRepository dataRepository) { private static final Logger logger = LoggerFactory.getLogger(ArDoCoResult.class); - private static String formatTraceLinksHumanReadable(TraceLink traceLink) { + private static String formatTraceLinksHumanReadable(TraceLink traceLink) { String modelElementName = traceLink.getSecondEndpoint().getName(); String modelElementUid = traceLink.getSecondEndpoint().getId(); String modelInfo = String.format("%s (%s)", modelElementName, modelElementUid); @@ -73,26 +73,26 @@ public String getProjectName() { /** * Returns the set of {@link TraceLink}s that were found for the Model with the given ID. * - * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id */ - public ImmutableSet> getTraceLinksForModel(Metamodel modelId) { - ConnectionState connectionState = this.getConnectionState(modelId); + public ImmutableSet> getTraceLinksForModel(Metamodel metamodel) { + ConnectionState connectionState = this.getConnectionState(metamodel); if (connectionState != null) { return connectionState.getTraceLinks(); } return Sets.immutable.empty(); } + //TODO: Is this method still in use? + /** * Returns the set of {@link TraceLink}s that were found for the Model with the given ID as strings in the format "ModelElementId,SentenceNo". * - * @param modelId the ID of the model that should be traced * @return Trace links for the model with the given id as Strings */ - public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel modelId) { + public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel metamodel) { var formatString = "%s,%d"; - return this.getTraceLinksForModel(modelId) + return this.getTraceLinksForModel(metamodel) .collect(tl -> String.format(formatString, tl.getSecondEndpoint().getId(), tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1)) .toImmutableSortedSet(); } @@ -102,12 +102,12 @@ public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel model * * @return set of Trace links */ - public ImmutableList> getArchitectureTraceLinks() { - MutableSet> traceLinks = Sets.mutable.empty(); + public ImmutableList> getArchitectureTraceLinks() { + MutableSet> traceLinks = Sets.mutable.empty(); - for (var modelId : this.getModelIds()) { - if (modelId == Metamodel.ARCHITECTURE) { - traceLinks.addAll(this.getTraceLinksForModel(modelId).castToCollection()); + for (var metamodel : this.getMetamodels()) { + if (metamodel == Metamodel.ARCHITECTURE) { + traceLinks.addAll(this.getTraceLinksForModel(metamodel).castToCollection()); } } return traceLinks.toImmutableList(); @@ -153,11 +153,10 @@ public List> getSadCodeTraceLinks /** * Returns all {@link Inconsistency inconsistencies} that were found for the model with the given ID. * - * @param modelId the ID of the model * @return Inconsistencies for the model */ - public ImmutableList getAllInconsistenciesForModel(Metamodel modelId) { - InconsistencyState inconsistencyState = this.getInconsistencyState(modelId); + public ImmutableList getAllInconsistenciesForModel(Metamodel metamodel) { + InconsistencyState inconsistencyState = this.getInconsistencyState(metamodel); if (inconsistencyState != null) { return inconsistencyState.getInconsistencies(); } @@ -167,13 +166,10 @@ public ImmutableList getAllInconsistenciesForModel(Metamodel mode /** * Returns a list of {@link Inconsistency inconsistencies} that were found for the model with the given ID and that are of the given Inconsistency class. * - * @param modelId the ID of the model - * @param inconsistencyType type of the Inconsistency that should be returned - * @param Type-parameter of the inconsistency * @return Inconsistencies for the model with the given type */ - public ImmutableList getInconsistenciesOfTypeForModel(Metamodel modelId, Class inconsistencyType) { - return this.getAllInconsistenciesForModel(modelId).select(i -> inconsistencyType.isAssignableFrom(i.getClass())).collect(inconsistencyType::cast); + public ImmutableList getInconsistenciesOfTypeForModel(Metamodel metamodel, Class inconsistencyType) { + return this.getAllInconsistenciesForModel(metamodel).select(i -> inconsistencyType.isAssignableFrom(i.getClass())).collect(inconsistencyType::cast); } /** @@ -183,7 +179,7 @@ public ImmutableList getInconsistenciesOfTypeForMod */ public ImmutableList getAllInconsistencies() { MutableList inconsistencies = Lists.mutable.empty(); - for (var model : this.getModelIds()) { + for (var model : this.getMetamodels()) { inconsistencies.addAll(this.getAllInconsistenciesForModel(model).castToCollection()); } return inconsistencies.toImmutable(); @@ -247,13 +243,12 @@ public Sentence getSentence(int sentenceNo) { /** * Returns the internal {@link ConnectionState} for the modelId with the given ID or null, if there is none. * - * @param modelId the ID of the model * @return the connection state or null, if there is no {@link ConnectionState} for the given model ID */ - public ConnectionState getConnectionState(Metamodel modelId) { + public ConnectionState getConnectionState(Metamodel metamodel) { if (DataRepositoryHelper.hasConnectionStates(this.dataRepository)) { var connectionStates = DataRepositoryHelper.getConnectionStates(this.dataRepository); - return connectionStates.getConnectionState(modelId); + return connectionStates.getConnectionState(metamodel); } ArDoCoResult.logger.warn("No ConnectionState found."); return null; @@ -262,13 +257,12 @@ public ConnectionState getConnectionState(Metamodel modelId) { /** * Returns the internal {@link InconsistencyState} for the modelId with the given ID or null, if there is none. * - * @param modelId the ID of the model * @return the inconsistency state or null, if there is no {@link InconsistencyState} for the given model ID */ - public InconsistencyState getInconsistencyState(Metamodel modelId) { + public InconsistencyState getInconsistencyState(Metamodel metamodel) { if (DataRepositoryHelper.hasInconsistencyStates(this.dataRepository)) { var inconsistencyStates = DataRepositoryHelper.getInconsistencyStates(this.dataRepository); - return inconsistencyStates.getInconsistencyState(modelId); + return inconsistencyStates.getInconsistencyState(metamodel); } ArDoCoResult.logger.warn("No InconsistencyState found."); return null; @@ -301,20 +295,19 @@ private ModelStates getModelStates() { * * @return list of all model IDs */ - public List getModelIds() { + public List getMetamodels() { ModelStates modelStates = this.getModelStates(); - return Lists.mutable.ofAll(modelStates.modelIds()); + return Lists.mutable.ofAll(modelStates.metamodels()); } /** * Returns the internal {@link Model} for the modelId with the given ID. * - * @param modelId the ID of the model * @return the Model */ - public Model getModelState(Metamodel modelId) { + public Model getModelState(Metamodel metamodel) { ModelStates modelStates = this.getModelStates(); - return modelStates.getModel(modelId); + return modelStates.getModel(metamodel); } /** diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 70257c4fc..52dbeab91 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java index 014b490bd..7da10f16f 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests; import java.util.Locale; @@ -36,7 +36,7 @@ public static EvaluationResults compareTLR(ArDoCoResult arDoCoResult, Imm int sentences = arDoCoResult.getText().getSentences().size(); int modelElements = 0; - for (var model : arDoCoResult.getModelIds()) { + for (var model : arDoCoResult.getMetamodels()) { modelElements += arDoCoResult.getModelState(model).getEndpoints().size(); } From 30b3fb41bfd0c9ce3586aaf4148fbae9cdece99b Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 9 Jan 2025 13:02:47 +0100 Subject: [PATCH 037/115] added missing implementations for getType() in new model classes and repair --- .../core/api/entity/ArchitectureEntity.java | 4 +-- .../ardoco/core/api/entity/CodeEntity.java | 1 + .../mcse/ardoco/core/api/entity/Entity.java | 2 +- .../ardoco/core/api/entity/ModelEntity.java | 5 ++-- .../api/models/arcotl/ArchitectureModel.java | 28 +++++++++++++++++-- .../core/api/models/arcotl/CodeModel.java | 27 +++++++++++++++++- .../ardoco/core/api/models/arcotl/Model.java | 8 ++++++ .../arcotl/architecture/ArchitectureItem.java | 15 +++++----- .../architecture/ArchitectureMethod.java | 2 +- .../arcotl/code/CodeCompilationUnit.java | 22 +++++++++++++++ .../core/common/util/CommonUtilities.java | 23 +-------------- 11 files changed, 98 insertions(+), 39 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 526a1efd2..2ecb9048b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -10,11 +10,11 @@ public abstract non-sealed class ArchitectureEntity extends ModelEntity { private static final long serialVersionUID = 5118724938904048363L; - protected ArchitectureEntity(String name, String type) { + protected ArchitectureEntity(String name) { super(name); } - protected ArchitectureEntity(String name, String type, String id) { + protected ArchitectureEntity(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index f7e8c9c64..76904b3f1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -11,4 +11,5 @@ protected CodeEntity(String name) { protected CodeEntity(String name, String id) { super(name, id); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index 4f147a333..e0b6d1c14 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -36,8 +36,8 @@ protected Entity(String name) { } protected Entity(String name, String id) { + this.name = name; this.id = Objects.requireNonNull(id); - this.name = Objects.requireNonNull(name); } public String getId() { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index 6ca784d85..45a4ac3dc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -17,7 +17,8 @@ protected ModelEntity(String name) { super(name); } - protected ModelEntity(String name, String type) { - super(name, type); + protected ModelEntity(String name, String id) { + super(name, id); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 0b84063aa..5128cf813 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -2,20 +2,29 @@ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureInterface; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureMethod; /** * An architecture model that is an AMTL instance. */ public final class ArchitectureModel extends Model { + private static final Logger logger = LoggerFactory.getLogger(ArchitectureModel.class); + private final List content; /** - * Creates a new architecture model that is an AMTL instance. The model has the - * specified architecture items as content. + * Creates a new architecture model that is an AMTL instance. The model has the specified architecture items as content. * * @param content the content of the architecture model */ @@ -38,6 +47,20 @@ public Metamodel getMetamodel() { return Metamodel.ARCHITECTURE; } + public SortedSet getTypeIdentifiers() { + + SortedSet identifiers = new TreeSet<>(); + + for (var architectureItem : this.getContent()) { + switch (architectureItem) { + case ArchitectureComponent component -> identifiers.add(component.getType()); + case ArchitectureInterface ignored -> logger.debug("Type not defined for interfaces"); + case ArchitectureMethod ignored -> logger.debug("Type not defined for methods"); + } + } + return identifiers; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -54,4 +77,5 @@ public int hashCode() { int result = super.hashCode(); return 31 * result + this.content.hashCode(); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index f5ecb4861..c2d259cb4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -6,7 +6,10 @@ import java.util.List; import java.util.Objects; import java.util.SortedSet; +import java.util.TreeSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -16,13 +19,18 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeModule; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ComputationalObject; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.Datatype; /** * A code model that is a CMTL instance. */ public final class CodeModel extends Model { + private static final Logger logger = LoggerFactory.getLogger(CodeModel.class); + @JsonProperty private CodeItemRepository codeItemRepository; @@ -57,8 +65,25 @@ public Metamodel getMetamodel() { return Metamodel.CODE; } + @Override + public SortedSet getTypeIdentifiers() { + + SortedSet identifiers = new TreeSet<>(); + + for (var codeItem : this.getContent()) { + switch (codeItem) { + case CodePackage codePackage -> identifiers.add("Package"); + case CodeCompilationUnit codeCompilationUnit -> identifiers.add(codeCompilationUnit.getType()); + case CodeModule ignored -> logger.debug("Type not defined yet"); + case ComputationalObject ignored -> logger.debug("Type not defined yet"); + case Datatype ignored -> logger.debug("Type not defined yet"); + } + } + return identifiers; + } + @JsonGetter("content") - protected List getContentIds() { + private List getContentIds() { this.initialize(); return this.content; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 43607bb2f..9265e0cd2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -2,6 +2,7 @@ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; +import java.util.SortedSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; @@ -30,4 +31,11 @@ public String getId() { public abstract List getEndpoints(); public abstract Metamodel getMetamodel(); + + /** + * Returns a set of identifiers for the types in the model state. + * + * @return Set of identifiers for existing types + */ + public abstract SortedSet getTypeIdentifiers(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index cee398478..841890479 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -4,9 +4,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; /** - * An architecture item of an architecture model. A possible candidate for the - * architecture endpoint of a trace link that connects corresponding elements of - * an architecture model and a code model. + * An architecture item of an architecture model. A possible candidate for the architecture endpoint of a trace link that connects corresponding elements of an + * architecture model and a code model. */ public abstract sealed class ArchitectureItem extends ArchitectureEntity permits ArchitectureComponent, ArchitectureInterface, ArchitectureMethod { @@ -17,8 +16,8 @@ public abstract sealed class ArchitectureItem extends ArchitectureEntity permits * * @param name the name of the architecture item to be created */ - protected ArchitectureItem(String name, String type) { - super(name, type); + protected ArchitectureItem(String name) { + super(name); } /** @@ -27,13 +26,13 @@ protected ArchitectureItem(String name, String type) { * @param name the name of the architecture item to be created * @param id the identifier of the architecture item to be created */ - protected ArchitectureItem(String name, String type, String id) { - super(name, type, id); + protected ArchitectureItem(String name, String id) { + super(name, id); } /** * Return the type of the architecture item as string - * + * * @return the type of the architecture item */ public abstract String getType(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index a2940186f..e6f4d32cc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -12,7 +12,7 @@ public final class ArchitectureMethod extends ArchitectureItem { private final MutableList nameParts; public ArchitectureMethod(String name) { - super(name, null); + super(name); this.nameParts = splitIdentifierIntoParts(name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index 48f1bf04f..7bc29ebe3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -86,6 +86,28 @@ public String getPath() { return pathBuilder.toString(); } + public String getType() { + // Assumption mostly one class per unit + var content = this.getContent().stream().filter(it -> this.getName().contains(it.getName())).findFirst().orElse(null); + if (content instanceof ClassUnit) { + return "Class"; + } + if (content instanceof InterfaceUnit) { + return "Interface"; + } + if (this.getPath().endsWith("package-info.java")) { + return "PackageInfo"; + } + if (this.getPath().endsWith(".java")) { + // Default to Class + return "Class"; + } + if (ProgrammingLanguages.SHELL.equals(this.getLanguage())) { + return "ShellScript"; + } + throw new IllegalStateException("Unknown type of CodeCompilationUnit"); + } + @Override public String toString() { return this.getPath(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 6ead2c042..051a441be 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -11,9 +11,7 @@ import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Scanner; -import java.util.SortedSet; import java.util.StringJoiner; -import java.util.TreeSet; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; @@ -224,29 +222,10 @@ public static void addRecommendedInstancesFromNounMappings(ImmutableList * @return List of type names in the model state that are similar to the given word */ public static ImmutableList getSimilarTypes(Word word, Model model) { - var identifiers = getTypeIdentifiers(model); + var identifiers = model.getTypeIdentifiers(); return Lists.immutable.fromStream(identifiers.stream().filter(typeId -> SimilarityUtils.getInstance().areWordsSimilar(typeId, word.getText()))); } - /** - * Returns a set of identifiers for the types in the model state. - * - * @param model the model state - * @return Set of identifiers for existing types - */ - public static SortedSet getTypeIdentifiers(Model model) { - - SortedSet identifiers = new TreeSet<>(); - - for (var entity : model.getContent()) { - switch (entity) { - case ArchitectureEntity architectureEntity -> identifiers.add(architectureEntity.getType()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - } - } - return identifiers; - } - /** * Splits a given String at Snake and Kebab cases. For example, "test-string" and "test_string" become "test string". * From 9e22f57548687977af84616eccc5c1fbb606292b Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Wed, 15 Jan 2025 15:31:53 +0100 Subject: [PATCH 038/115] repair unit tests --- .../core/api/entity/ArchitectureEntity.java | 20 +-- .../api/entity/ArchitectureEntityImpl.java | 21 +-- .../ardoco/core/api/entity/CodeEntity.java | 22 +++ .../mcse/ardoco/core/api/entity/Entity.java | 1 + .../ardoco/core/api/entity/ModelEntity.java | 23 +++ .../ardoco/core/api/entity/TextEntity.java | 1 + .../api/models/arcotl/ArchitectureModel.java | 4 +- .../core/api/models/arcotl/CodeModel.java | 17 +-- .../architecture/ArchitectureComponent.java | 19 +-- .../architecture/ArchitectureInterface.java | 32 ++-- .../arcotl/architecture/ArchitectureItem.java | 4 +- .../architecture/ArchitectureMethod.java | 16 +- .../arcotl/code/CodeCompilationUnit.java | 18 ++- .../api/models/arcotl/code/CodePackage.java | 6 + .../connectiongenerator/InstanceLink.java | 4 +- .../common/similarity/SimilarityUtils.java | 141 +++++++++++------- .../core/common/util/CommonUtilities.java | 27 ---- 17 files changed, 209 insertions(+), 167 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 2ecb9048b..3f0ca5bd1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,11 +1,9 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; +import java.util.Optional; -import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; +import org.eclipse.collections.api.list.ImmutableList; public abstract non-sealed class ArchitectureEntity extends ModelEntity { private static final long serialVersionUID = 5118724938904048363L; @@ -18,18 +16,10 @@ protected ArchitectureEntity(String name, String id) { super(name, id); } - public abstract String getType(); + public abstract Optional> getNameParts(); - public abstract ImmutableList getNameParts(); + public abstract Optional getType(); - public abstract ImmutableList getTypeParts(); + public abstract Optional> getTypeParts(); - protected MutableList splitIdentifierIntoParts(String identifier) { - String splitName = CommonUtilities.splitCases(identifier); - var names = Lists.mutable.with(splitName.split(" ")); - if (names.size() > 1) { - names.add(identifier); - } - return names; - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 704450cc3..94c2915cf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -2,6 +2,7 @@ package edu.kit.kastel.mcse.ardoco.core.api.entity; import java.util.Objects; +import java.util.Optional; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; @@ -56,23 +57,23 @@ public String getName() { } /** - * Returns the longest type of the instance. + * Returns all name parts of the instance. * - * @return the original type of the instance + * @return all name parts of the instance as list */ @Override - public String getType() { - return this.fullType; + public Optional> getNameParts() { + return Optional.of(this.names.toImmutable()); } /** - * Returns all name parts of the instance. + * Returns the longest type of the instance. * - * @return all name parts of the instance as list + * @return the original type of the instance */ @Override - public ImmutableList getNameParts() { - return this.names.toImmutable(); + public Optional getType() { + return Optional.of(this.fullType); } /** @@ -81,8 +82,8 @@ public ImmutableList getNameParts() { * @return all type parts of the instance as list */ @Override - public ImmutableList getTypeParts() { - return this.types.toImmutable(); + public Optional> getTypeParts() { + return Optional.of(this.types.toImmutable()); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 76904b3f1..7818224ff 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -1,6 +1,10 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.util.Optional; + +import org.eclipse.collections.api.list.ImmutableList; + public non-sealed class CodeEntity extends ModelEntity { private static final long serialVersionUID = 5520572653996476974L; @@ -12,4 +16,22 @@ protected CodeEntity(String name, String id) { super(name, id); } + @Override + public Optional getType() { + return Optional.empty(); + } + + @Override + public Optional> getTypeParts() { + if (this.getType().isPresent()) { + return Optional.of(splitIdentifierIntoParts(this.getType().get()).toImmutable()); + } + return Optional.empty(); + } + + @Override + public Optional> getNameParts() { + return Optional.empty(); + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index e0b6d1c14..b46a7348b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -81,4 +81,5 @@ public int compareTo(Entity o) { } return this.id.compareTo(o.id); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index 45a4ac3dc..d04e92e1b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -1,6 +1,14 @@ /* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.util.Optional; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; + +import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; + public abstract sealed class ModelEntity extends Entity permits ArchitectureEntity, CodeEntity { protected ModelEntity() { @@ -21,4 +29,19 @@ protected ModelEntity(String name, String id) { super(name, id); } + public abstract Optional getType(); + + public abstract Optional> getTypeParts(); + + public abstract Optional> getNameParts(); + + protected MutableList splitIdentifierIntoParts(String identifier) { + String splitName = CommonUtilities.splitCases(identifier); + var names = Lists.mutable.with(splitName.split(" ")); + if (names.size() > 1) { + names.add(identifier); + } + return names; + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java index 588af0096..a04780793 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java @@ -11,4 +11,5 @@ protected TextEntity(String name) { protected TextEntity(String name, String id) { super(name, id); } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 5128cf813..6d45fe6e0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; @@ -53,7 +53,7 @@ public SortedSet getTypeIdentifiers() { for (var architectureItem : this.getContent()) { switch (architectureItem) { - case ArchitectureComponent component -> identifiers.add(component.getType()); + case ArchitectureComponent component -> identifiers.add(component.getType().orElseThrow()); case ArchitectureInterface ignored -> logger.debug("Type not defined for interfaces"); case ArchitectureMethod ignored -> logger.debug("Type not defined for methods"); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index c2d259cb4..88748cd86 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.ArrayList; @@ -8,8 +8,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -19,18 +17,13 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeModule; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.ComputationalObject; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.Datatype; /** * A code model that is a CMTL instance. */ public final class CodeModel extends Model { - private static final Logger logger = LoggerFactory.getLogger(CodeModel.class); - @JsonProperty private CodeItemRepository codeItemRepository; @@ -71,13 +64,7 @@ public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); for (var codeItem : this.getContent()) { - switch (codeItem) { - case CodePackage codePackage -> identifiers.add("Package"); - case CodeCompilationUnit codeCompilationUnit -> identifiers.add(codeCompilationUnit.getType()); - case CodeModule ignored -> logger.debug("Type not defined yet"); - case ComputationalObject ignored -> logger.debug("Type not defined yet"); - case Datatype ignored -> logger.debug("Type not defined yet"); - } + codeItem.getType().ifPresent(identifiers::add); } return identifiers; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index 1d11f5bfb..211b81932 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.util.Optional; import java.util.SortedSet; import org.eclipse.collections.api.list.ImmutableList; @@ -62,23 +63,23 @@ public SortedSet getRequiredInterfaces() { return this.requiredInterfaces; } + @Override + public Optional> getNameParts() { + return Optional.of(this.nameParts.toImmutable()); + } + /** * Returns the type of this component as specified in the meta model. * * @return the type of this component */ - public String getType() { - return this.type; - } - - @Override - public ImmutableList getNameParts() { - return this.nameParts.toImmutable(); + public Optional getType() { + return Optional.of(this.type); } @Override - public ImmutableList getTypeParts() { - return this.typeParts.toImmutable(); + public Optional> getTypeParts() { + return Optional.of(this.typeParts.toImmutable()); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 12fd47f7b..b1c07b8b8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -2,6 +2,7 @@ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; import java.util.Objects; +import java.util.Optional; import java.util.SortedSet; import org.eclipse.collections.api.list.ImmutableList; @@ -27,6 +28,23 @@ public SortedSet getSignatures() { return this.signatures; } + @Override + public Optional> getNameParts() { + return Optional.of(this.nameParts.toImmutable()); + } + + @Override + public Optional getType() { + // Not implemented yet. Interfaces currently have no specified type. + return Optional.empty(); + } + + @Override + public Optional> getTypeParts() { + // Not implemented yet. Interfaces currently have no specified type. + return Optional.empty(); + } + @Override public String toString() { return "Interface: " + this.getName(); @@ -48,18 +66,4 @@ public int hashCode() { return Objects.hash(super.hashCode(), this.signatures); } - @Override - public String getType() { - throw new UnsupportedOperationException("Not implemented yet. Interfaces currently have no specified type."); - } - - @Override - public ImmutableList getNameParts() { - return this.nameParts.toImmutable(); - } - - @Override - public ImmutableList getTypeParts() { - throw new UnsupportedOperationException("Not implemented yet. Interfaces currently have no specified type."); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 841890479..21fae0e0b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,6 +1,8 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.util.Optional; + import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; /** @@ -35,5 +37,5 @@ protected ArchitectureItem(String name, String id) { * * @return the type of the architecture item */ - public abstract String getType(); + public abstract Optional getType(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index e6f4d32cc..fc62b056d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -1,6 +1,8 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.util.Optional; + import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; @@ -17,18 +19,20 @@ public ArchitectureMethod(String name) { } @Override - public String getType() { - throw new UnsupportedOperationException("Not implemented yet. Methods currently have no specified type."); + public Optional getType() { + // Not implemented yet. Methods currently have no specified type.// + return Optional.empty(); } @Override - public ImmutableList getNameParts() { - return this.nameParts.toImmutable(); + public Optional> getNameParts() { + return Optional.of(this.nameParts.toImmutable()); } @Override - public ImmutableList getTypeParts() { - throw new UnsupportedOperationException("Not implemented yet. Methods currently have no specified type."); + public Optional> getTypeParts() { + // Not implemented yet. Methods currently have no specified type. + return Optional.empty(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index 7bc29ebe3..c577669f0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -1,9 +1,10 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.SortedSet; import java.util.TreeSet; @@ -86,26 +87,27 @@ public String getPath() { return pathBuilder.toString(); } - public String getType() { + @Override + public Optional getType() { // Assumption mostly one class per unit var content = this.getContent().stream().filter(it -> this.getName().contains(it.getName())).findFirst().orElse(null); if (content instanceof ClassUnit) { - return "Class"; + return Optional.of("Class"); } if (content instanceof InterfaceUnit) { - return "Interface"; + return Optional.of("Interface"); } if (this.getPath().endsWith("package-info.java")) { - return "PackageInfo"; + return Optional.of("PackageInfo"); } if (this.getPath().endsWith(".java")) { // Default to Class - return "Class"; + return Optional.of("Class"); } if (ProgrammingLanguages.SHELL.equals(this.getLanguage())) { - return "ShellScript"; + return Optional.of("ShellScript"); } - throw new IllegalStateException("Unknown type of CodeCompilationUnit"); + return Optional.empty(); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java index 2c31960db..db5905d8d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2023-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.util.Optional; import java.util.SortedSet; import java.util.TreeSet; @@ -44,6 +45,11 @@ public SortedSet getCompilationUnits() { return compilationUnits; } + @Override + public Optional getType() { + return Optional.of("Package"); + } + @Override public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 23ceac486..2cde3f0f6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -89,8 +89,8 @@ public String toString() { String typeInfo; switch (this.getSecondEndpoint()) { - case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType(); - case CodeEntity ignored -> typeInfo = ""; + case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType().orElseThrow(); + case CodeEntity ignored -> typeInfo = ""; } return "InstanceMapping [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index df8e8dbf4..41fde0c22 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -13,10 +13,8 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.PhraseMapping; @@ -124,17 +122,19 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { * the reference of the NounMapping. * * @param nounMapping the {@link NounMapping} - * @param entity the {@link Entity} + * @param modelEntity the {@link Entity} * @return true, iff the {@link NounMapping} and {@link Entity} are similar. */ - public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Entity entity) { - var namePartsOfEntity = CommonUtilities.getNamePartsOfEntity(entity); - if (this.areWordsOfListsSimilar(namePartsOfEntity, Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(entity.getName(), + public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, ModelEntity modelEntity) { + var nameParts = modelEntity.getNameParts(); + if (nameParts.isEmpty()) + return false; + if (this.areWordsOfListsSimilar(nameParts.get(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(modelEntity.getName(), nounMapping.getReference())) { return true; } - for (String name : namePartsOfEntity) { + for (String name : nameParts.get()) { if (this.areWordsSimilar(name, nounMapping.getReference())) { return true; } @@ -143,48 +143,55 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Enti } /** - * Compares a given {@link Word} with a given {@link Entity} for similarity. + * Compares a given {@link Word} with a given {@link ModelEntity} for similarity. * - * @param word the {@link Word} - * @param entity the {@link Entity} of a model - * @return true, iff the {@link Word} and {@link Entity} are similar. + * @param word the {@link Word} + * @param modelEntity the {@link ModelEntity} of a model + * @return true, iff the {@link Word} and {@link ModelEntity} are similar. */ - public boolean isWordSimilarToEntity(Word word, Entity entity) { - return this.compareWordWithStringListEntries(word, CommonUtilities.getNamePartsOfEntity(entity)); + public boolean isWordSimilarToEntity(Word word, ModelEntity modelEntity) { + if (modelEntity.getNameParts().isEmpty()) { + return false; + } + return this.compareWordWithStringListEntries(word, modelEntity.getNameParts().orElseThrow()); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed /** - * Compares a given {@link RecommendedInstance} with a given {@link Entity} for similarity. + * Compares a given {@link RecommendedInstance} with a given {@link ModelEntity} for similarity. * - * @param ri the {@link RecommendedInstance} - * @param entity the {@link Entity} - * @return true, iff the {@link RecommendedInstance} and {@link Entity} are similar. + * @param ri the {@link RecommendedInstance} + * @param modelEntity the {@link ModelEntity} + * @return true, iff the {@link RecommendedInstance} and {@link ModelEntity} are similar. */ - public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, Entity entity) { + public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, ModelEntity modelEntity) { + var result = modelEntity.getName().equalsIgnoreCase(ri.getName()); + var name = ri.getName(); var nameList = Lists.immutable.with(name.split(" ")); - return entity.getName().equalsIgnoreCase(ri.getName()) || this.areWordsOfListsSimilar(CommonUtilities.getNamePartsOfEntity(entity), nameList); + + if (modelEntity.getNameParts().isEmpty()) { + return result; + } + return result || this.areWordsOfListsSimilar(modelEntity.getNameParts().get(), nameList); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed /** - * Compares a given {@link Word} with the type of a given {@link Entity} for similarity. + * Compares a given {@link Word} with the type of a given {@link ModelEntity} for similarity. * - * @param word the {@link Word} - * @param entity the {@link Entity} - * @return true, iff the {@link Word} and the type of the {@link Entity} are similar. + * @param word the {@link Word} + * @param modelEntity the {@link ModelEntity} + * @return true, iff the {@link Word} and the type of the {@link ModelEntity} are similar. */ - public boolean isWordSimilarToModelInstanceType(Word word, Entity entity) { - switch (entity) { - case ArchitectureEntity architectureEntity -> this.compareWordWithStringListEntries(word, architectureEntity.getTypeParts()); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); - } - throw new IllegalStateException("Undefined for entity type"); + public boolean isWordSimilarToModelInstanceType(Word word, ModelEntity modelEntity) { + if (modelEntity.getTypeParts().isEmpty()) { + return false; + } + return this.compareWordWithStringListEntries(word, modelEntity.getTypeParts().get()); } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { @@ -279,16 +286,16 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable * the while loop can be left. If the while loop ends with more than one possibility or all remaining lists are sorted out in the same run, all are * returned. Elsewhere only the remaining recommended instance is returned within the list. * - * @param entity instance to use as original for compare + * @param modelEntity instance to use as original for compare * @param recommendedInstances recommended instances to check for similarity * @return a list of the most similar recommended instances (to the instance names) */ - public ImmutableList getMostRecommendedInstancesToInstanceByReferences(Entity entity, + public ImmutableList getMostRecommendedInstancesToInstanceByReferences(ModelEntity modelEntity, ImmutableList recommendedInstances) { - var instanceNames = CommonUtilities.getNamePartsOfEntity(entity); + var instanceNames = modelEntity.getNameParts(); var similarity = CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD; - var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(entity, ri, similarity)); + var selection = recommendedInstances.select(ri -> this.checkRecommendedInstanceForSelection(modelEntity, ri, similarity)); var getMostRecommendedIByRefMinProportion = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_MIN_PROPORTION; var getMostRecommendedIByRefIncrease = CommonTextToolsConfig.GET_MOST_RECOMMENDED_I_BY_REF_INCREASE; @@ -301,12 +308,14 @@ public ImmutableList getMostRecommendedInstancesToInstanceB getMostRecommendedIByRefMinProportion += getMostRecommendedIByRefIncrease; MutableList risToRemove = Lists.mutable.empty(); for (RecommendedInstance ri : whileSelection) { - if (this.checkRecommendedInstanceWordSimilarityToInstance(entity, ri)) { + if (this.checkRecommendedInstanceWordSimilarityToInstance(modelEntity, ri)) { allListsSimilar++; } - if (!this.areWordsOfListsSimilar(instanceNames, Lists.immutable.with(ri.getName()), getMostRecommendedIByRefMinProportion)) { - risToRemove.add(ri); + if (instanceNames.isPresent()) { + if (!this.areWordsOfListsSimilar(instanceNames.get(), Lists.immutable.with(ri.getName()), getMostRecommendedIByRefMinProportion)) { + risToRemove.add(ri); + } } } whileSelection.removeAll(risToRemove); @@ -322,29 +331,40 @@ public ImmutableList getMostRecommendedInstancesToInstanceB } - private boolean checkRecommendedInstanceWordSimilarityToInstance(Entity entity, RecommendedInstance ri) { - var instanceNames = CommonUtilities.getNamePartsOfEntity(entity); + private boolean checkRecommendedInstanceWordSimilarityToInstance(ModelEntity modelEntity, RecommendedInstance ri) { + + var instanceNames = modelEntity.getNameParts(); + + if (instanceNames.isEmpty()) + return false; + for (var sf : ri.getNameMappings().flatCollect(NounMapping::getSurfaceForms)) { var splitSF = CommonUtilities.splitCases(String.join(" ", CommonUtilities.splitAtSeparators(sf))); - if (this.areWordsSimilar(String.join(" ", instanceNames), splitSF)) { + if (this.areWordsSimilar(String.join(" ", instanceNames.get()), splitSF)) { return true; } } return false; } - private boolean checkRecommendedInstanceForSelection(Entity entity, RecommendedInstance ri, double similarity) { - var entityNameParts = CommonUtilities.getNamePartsOfEntity(entity); - ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(entity.getName()).split(" ")); + private boolean checkRecommendedInstanceForSelection(ModelEntity modelEntity, RecommendedInstance ri, double similarity) { + var entityNameParts = modelEntity.getNameParts(); + ImmutableList longestNameSplit = Lists.immutable.of(CommonUtilities.splitCases(modelEntity.getName()).split(" ")); ImmutableList recommendedInstanceNames = Lists.immutable.with(ri.getName()); - boolean instanceNameAndRIName = this.areWordsSimilar(entity.getName(), ri.getName()); - boolean instanceNamesAndRIs = this.areWordsOfListsSimilar(entityNameParts, recommendedInstanceNames, similarity); + boolean instanceNameAndRIName = this.areWordsSimilar(modelEntity.getName(), ri.getName()); boolean longestNameSplitAndRINames = this.areWordsOfListsSimilar(longestNameSplit, recommendedInstanceNames, similarity); - boolean listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, recommendedInstanceNames) / Math.max(entityNameParts.size(), - recommendedInstanceNames.size()) >= similarity; - boolean listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(entityNameParts.size(), - recommendedInstanceNames.size()) >= similarity; + boolean instanceNamesAndRIs = false; + boolean listOfNamesSimilarEnough = false; + boolean listOfNameSplitSimilarEnough = false; + + if (entityNameParts.isPresent()) { + instanceNamesAndRIs = this.areWordsOfListsSimilar(entityNameParts.get(), recommendedInstanceNames, similarity); + listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts.get(), recommendedInstanceNames) / Math.max(entityNameParts.get().size(), + recommendedInstanceNames.size()) >= similarity; + listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(entityNameParts.get().size(), + recommendedInstanceNames.size()) >= similarity; + } if (instanceNameAndRIName || instanceNamesAndRIs || longestNameSplitAndRINames || listOfNamesSimilarEnough || listOfNameSplitSimilarEnough) { return true; @@ -354,12 +374,17 @@ private boolean checkRecommendedInstanceForSelection(Entity entity, RecommendedI var splitSurfaceForm = CommonUtilities.splitCases(surfaceForm); var surfaceFormWords = CommonUtilities.splitAtSeparators(splitSurfaceForm); - boolean instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(entityNameParts, surfaceFormWords, similarity); boolean longestNameXSurfaceForms = this.areWordsOfListsSimilar(longestNameSplit, surfaceFormWords, similarity); - boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, surfaceFormWords) / Math.max(entityNameParts.size(), - surfaceFormWords.size()) >= similarity; - boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max(longestNameSplit - .size(), surfaceFormWords.size()) >= similarity; + boolean instanceNamesXSurfaceForms = false; + boolean listOfNamesXSurfaceFormSimilarEnough = false; + if (entityNameParts.isPresent()) { + instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(entityNameParts.get(), surfaceFormWords, similarity); + listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts.get(), surfaceFormWords) / Math.max( + entityNameParts.get().size(), surfaceFormWords.size()) >= similarity; + } + + boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max( + longestNameSplit.size(), surfaceFormWords.size()) >= similarity; if (instanceNamesXSurfaceForms || longestNameXSurfaceForms || listOfNamesXSurfaceFormSimilarEnough || listOfSplitNamesXSurfaceFormSimilarEnough) { return true; @@ -402,9 +427,9 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs } // Maybe REWORK. Remove NounMappings? - if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this - .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( - textState, secondPhraseMapping, firstPhraseMapping)) { + if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, + firstPhraseMapping)) && this.containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, + secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping(textState, secondPhraseMapping, firstPhraseMapping)) { // HARD CODED... Change? return 1.0; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 051a441be..cb9328eab 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -18,10 +18,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; @@ -390,27 +386,4 @@ public static String readInputText(File textFile) { } } - public static ImmutableList getTypePartsOfEntity(Entity entity) { - return switch (entity) { - case ArchitectureEntity architectureEntity -> architectureEntity.getTypeParts(); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Types are undefined for text entities"); - }; - } - - public static ImmutableList getNamePartsOfEntity(Entity entity) { - return switch (entity) { - case ArchitectureEntity architectureEntity -> architectureEntity.getNameParts(); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); - }; - } - - public static String getTypeOfEntity(Entity entity) { - return switch (entity) { - case ArchitectureEntity architectureEntity -> architectureEntity.getType(); - case CodeEntity ignored -> throw new UnsupportedOperationException("Currently not implemented"); - case TextEntity ignored -> throw new IllegalArgumentException("Are no model entity"); - }; - } } From 38eeea4bf9aa3222620d27683bb2fcf6e3e347e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 20 Jan 2025 14:29:38 +0100 Subject: [PATCH 039/115] Fix tests --- .../java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index dc88a43d8..4ca36f60d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -37,7 +37,7 @@ protected Entity(String name) { protected Entity(String name, String id) { this.id = Objects.requireNonNull(id); - this.name = Objects.requireNonNull(name); + this.name = name; } public String getId() { From c146afd4e048bd3f404e883ed82ebe38526f65b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 20 Jan 2025 14:40:08 +0100 Subject: [PATCH 040/115] Save current state --- .../RecommendationState.java | 7 +- .../RecommendedInstance.java | 16 +-- .../api/stage/textextraction/NounMapping.java | 15 --- .../NounMappingChangeListener.java | 10 -- .../stage/textextraction/PhraseMapping.java | 16 --- .../PhraseMappingChangeListener.java | 10 -- .../api/stage/textextraction/TextState.java | 120 ++---------------- .../textextraction/TextStateStrategy.java | 52 +++++--- .../core/data/DataRepositorySyncer.java | 25 ++++ 9 files changed, 79 insertions(+), 192 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java index 8fb2dbd3f..237861d62 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; @@ -89,4 +89,9 @@ RecommendedInstance addRecommendedInstance(String name, String type, Claimant cl */ ImmutableList getRecommendedInstancesBySimilarType(String type); + /** + * Sync noun mappings. This method will be invoked if a noun mapping gets removed from the text extraction state + */ + void onNounMappingDeletion(NounMapping nounMapping, NounMapping replacement); + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index b87f37d6c..76994107a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -93,21 +93,9 @@ protected RecommendedInstance(String name, String id) { @Override public abstract String getName(); - /** - * Sets the type of this recommended instance to the given type. - * - * @param type the new type - */ - public abstract void setType(String type); - - /** - * Sets the name of this recommended instance to the given name. - * - * @param name the new name - */ - public abstract void setName(String name); - public abstract ImmutableSortedSet getSentenceNumbers(); public abstract ImmutableList getClaimants(); + + public abstract void onNounMappingDeletion(NounMapping nounMapping, NounMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java index 1452a1583..b09fcf488 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java @@ -96,19 +96,4 @@ public interface NounMapping extends Serializable { boolean isCompound(); - /** - * Register a listener that will be notified on certain events. - * - * @param listener the listener - * @see #onDelete(NounMapping) - */ - void registerChangeListener(NounMappingChangeListener listener); - - /** - * Will be invoked during the deletion from a state. Note: This can be invoked multiple times if the replacement is not available during deletion of the - * noun mapping - * - * @param replacement the replacing new noun mapping (or null if none exist) - */ - void onDelete(NounMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java deleted file mode 100644 index 13c44922c..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMappingChangeListener.java +++ /dev/null @@ -1,10 +0,0 @@ -/* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; - -/** - * @deprecated should be replaced to make mappings serializable - */ -@Deprecated -public interface NounMappingChangeListener { - void onDelete(NounMapping deletedNounMapping, NounMapping replacement); -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java index f8aa655c7..8480fa3ff 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java @@ -22,20 +22,4 @@ public interface PhraseMapping extends Serializable { ImmutableSortedMap getPhraseVector(); void removePhrase(Phrase phrase); - - /** - * Register a listener that will be notified on certain events. - * - * @param listener the listener - * @see #onDelete(PhraseMapping) - */ - void registerChangeListener(PhraseMappingChangeListener listener); - - /** - * Will be invoked during the deletion from a state. - * Note: This can be invoked multiple times if the replacement is not available during deletion of the phrase mapping - * - * @param replacement the replacing new phrase mapping (or null if none exist) - */ - void onDelete(PhraseMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java deleted file mode 100644 index 058fe7adc..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMappingChangeListener.java +++ /dev/null @@ -1,10 +0,0 @@ -/* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; - -/** - * @deprecated should be replaced to make mappings serializable - */ -@Deprecated -public interface PhraseMappingChangeListener { - void onDelete(PhraseMapping deletedPhraseMapping, PhraseMapping replacement); -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index e2d705c6f..e2d249522 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -1,21 +1,14 @@ /* Licensed under MIT 2021-2024. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; -import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.text.Phrase; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; -import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; -import edu.kit.kastel.mcse.ardoco.core.data.Confidence; +import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; -import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** * The Interface ITextState. @@ -25,99 +18,32 @@ public interface TextState extends IConfigurable, PipelineStepData { String ID = "TextState"; - /** - * {@return the text state strategy of the text state} - */ - TextStateStrategy getTextStateStrategy(); - - /** - * Adds a name mapping to the state. - * - * @param word word of the mapping - * @param kind the kind of the mapping - * @param probability probability to be a name mapping - */ - default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability) { - return this.getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, Lists.immutable.with(word.getText())); - } - - /** - * Adds a noun mapping of the specified kind to the state with the specified word and surface forms with the provided confidence. The adding and merging of - * the mapping is delegated to the {@link TextStateStrategy}. - * - * @param word word of the mapping - * @param kind the kind of the mapping - * @param claimant the claimant of the mapping - * @param probability probability to be a noun mapping of this kind - * @param surfaceForms list of the appearances of the mapping - */ - default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability, ImmutableList surfaceForms) { - return this.getTextStateStrategy().addOrExtendNounMapping(word, kind, claimant, probability, surfaceForms); - } + void addNounMapping(NounMapping nounMapping); - /** - * Adds a noun mapping of the specified kind to the state that contains the specified words, surface forms, etc. The adding and merging of the mapping is - * delegated to the {@link TextStateStrategy}. - * - * @param words words of the mapping - * @param kind kind of the mapping - * @param claimant claimant of the mapping - * @param probability probability to be a noun mapping of this kind - * @param referenceWords references of this noun mapping - * @param surfaceForms surface forms of this noun mapping - * @param reference a joined reference string - * @return the new or merged mapping - */ - default NounMapping addNounMapping(ImmutableSortedSet words, MappingKind kind, Claimant claimant, double probability, - ImmutableList referenceWords, ImmutableList surfaceForms, String reference) { - return this.getTextStateStrategy().addNounMapping(words, kind, claimant, probability, referenceWords, surfaceForms, reference); - } - - /** - * Adds a noun mapping of the specified kind to the state that contains the specified words, surface forms, etc. The adding and merging of the mapping is - * delegated to the {@link TextStateStrategy}. - * - * @param words words of the mapping - * @param distribution distribution of the mapping for the mapping kinds - * @param referenceWords reference words of the mapping - * @param surfaceForms surface forms of the mapping - * @param reference a joined reference string - * @return the new or merged mapping - */ - default NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSortedMap distribution, - ImmutableList referenceWords, ImmutableList surfaceForms, String reference) { - return this.getTextStateStrategy().addNounMapping(words, distribution, referenceWords, surfaceForms, reference); - } + void addPhraseMapping(PhraseMapping phraseMapping); /** * Removes a noun mapping from the state. Also removes phrase mappings that are associated with the noun mapping. * - * @param nounMapping noun mapping to remove - * @param replacement the (optional) future replacement of the noun mapping - * @see NounMapping#onDelete(NounMapping) + * @param dataRepository the data repository to sync the states after deleting + * @param nounMapping noun mapping to remove + * @param replacement the (optional) future replacement of the noun mapping */ - void removeNounMapping(NounMapping nounMapping, NounMapping replacement); + void removeNounMapping(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement); /** - * Returns the noun mapping containing the given word. + * Removes the specified phrase mapping from the state and replaces it with an (optional) replacement * - * @param word the given word - * @return the noun mapping of the word or null if the text state has no noun mapping containing the given word. + * @param phraseMapping the mapping + * @param replacement the replacement + * @return true if removed, false otherwise */ - NounMapping getNounMappingByWord(Word word); + boolean removePhraseMapping(PhraseMapping phraseMapping, PhraseMapping replacement); PhraseMapping getPhraseMappingByNounMapping(NounMapping nounMapping); ImmutableList getNounMappingsByPhraseMapping(PhraseMapping phraseMapping); - /** - * Returns a list of all references of noun mappings. - * - * @param kind of references that shall be collected - * @return all references of noun mappings with the specified kind as list. - */ - ImmutableList getListOfReferences(MappingKind kind); - /** * Gets the all noun mappings. * @@ -127,30 +53,8 @@ default NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSort ImmutableList getPhraseMappings(); - /** - * {@return all phrase mappings containing a specific phrase} - * - * @param phrase the phrase - */ - default ImmutableList getPhraseMappings(Phrase phrase) { - return Lists.immutable.fromStream(this.getPhraseMappings().stream().filter(pm -> pm.getPhrases().contains(phrase))); - } - ImmutableList getNounMappingsOfKind(MappingKind mappingKind); - ImmutableList getNounMappingsThatBelongToTheSamePhraseMapping(NounMapping nounMapping); - - void mergeNounMappings(NounMapping nounMapping, NounMapping otherNounMapping, Claimant claimant, ImmutableList referenceWords); - - NounMapping mergeNounMappings(NounMapping nounMapping, NounMapping textuallyEqualNounMapping, Claimant claimant); - - void mergePhraseMappingsAndNounMappings(PhraseMapping phraseMapping, PhraseMapping similarPhraseMapping, - MutableList> similarNounMappings, Claimant claimant); - - PhraseMapping mergePhraseMappings(PhraseMapping phraseMapping, PhraseMapping similarPhraseMapping); - - NounMapping setReferenceOfNounMapping(NounMapping nounMapping, ImmutableList referenceWords, String reference); - ImmutableList getMappingsThatCouldBeOfKind(Word word, MappingKind kind); ImmutableList getMappingsThatCouldBeMultipleKinds(Word word, MappingKind... kinds); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index 331e90a14..e04c8a046 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -3,12 +3,15 @@ import static edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions.AVERAGE; +import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; +import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; +import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; import edu.kit.kastel.mcse.ardoco.core.data.Confidence; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; @@ -22,7 +25,16 @@ public interface TextStateStrategy { */ AggregationFunctions DEFAULT_AGGREGATOR = AVERAGE; - void setState(TextState textState); + /** + * Adds a name mapping to the state. + * + * @param word word of the mapping + * @param kind the kind of the mapping + * @param probability probability to be a name mapping + */ + default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability) { + return this.addNounMapping(word, kind, claimant, probability, Lists.immutable.with(word.getText())); + } /** * Tries to add a mapping to the state using the specified parameters. If a matching mapping already exists, the mapping is extended instead. @@ -35,33 +47,33 @@ public interface TextStateStrategy { * @return the resulting noun mapping, either new or merged */ - NounMapping addOrExtendNounMapping(Word word, MappingKind kind, Claimant claimant, double probability, ImmutableList surfaceForms); + NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability, ImmutableList surfaceForms); /** * Adds a mapping to the state using the specified parameters. Does not consider whether a matching mapping already exists. * - * @param words the words - * @param distribution the distribution - * @param referenceWords the reference words - * @param surfaceForms the surface forms - * @param reference the reference, nullable - * @return the newly created noun mapping + * @param words words of the mapping + * @param distribution distribution of the mapping for the mapping kinds + * @param referenceWords reference words of the mapping + * @param surfaceForms surface forms of the mapping + * @param reference a joined reference string + * @return the new or merged mapping */ NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSortedMap distribution, ImmutableList referenceWords, ImmutableList surfaceForms, String reference); /** - * Adds a mapping to the state using the specified parameters. Does not consider whether a matching mapping already exists. + * Adds a noun mapping of the specified kind to the state that contains the specified words, surface forms, etc. * - * @param words the words - * @param kind the kind - * @param claimant the claimant - * @param probability the probability that the mapping is of this kind - * @param referenceWords the reference words - * @param surfaceForms the surface forms - * @param reference the reference, nullable - * @return the newly created noun mapping + * @param words words of the mapping + * @param kind kind of the mapping + * @param claimant claimant of the mapping + * @param probability probability to be a noun mapping of this kind + * @param referenceWords references of this noun mapping + * @param surfaceForms surface forms of this noun mapping + * @param reference a joined reference string + * @return the new or merged mapping */ NounMapping addNounMapping(ImmutableSortedSet words, MappingKind kind, Claimant claimant, double probability, ImmutableList referenceWords, @@ -117,5 +129,9 @@ default String calculateNounMappingReference(ImmutableList referenceWords) return refBuilder.toString(); } - ImmutableList getNounMappingsWithSimilarReference(String reference); + void mergePhraseMappingsAndNounMappings(PhraseMapping phraseMapping, PhraseMapping similarPhraseMapping, + MutableList> similarNounMappings, Claimant claimant); + + NounMapping mergeNounMappings(NounMapping nounMapping, NounMapping textuallyEqualNounMapping, Claimant claimant); + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java new file mode 100644 index 000000000..6ac68fb81 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -0,0 +1,25 @@ +/* Licensed under MIT 2024. */ +package edu.kit.kastel.mcse.ardoco.core.data; + +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationStates; +import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; + +public final class DataRepositorySyncer { + private DataRepositorySyncer() { + throw new IllegalAccessError("Utility class"); + } + + public static void onNounMappingDeletion(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement) { + // We need to inform the recommendation state + var recommendationStates = dataRepository.getData(RecommendationStates.ID, RecommendationStates.class); + if (recommendationStates.isEmpty()) { + return; + } + for (Metamodel mm : Metamodel.values()) { + var recommendationState = recommendationStates.get().getRecommendationState(mm); + recommendationState.onNounMappingDeletion(nounMapping, replacement); + } + } + +} From bc59fc12abc585f2b1327157e712cedbd075e0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 20 Jan 2025 14:57:05 +0100 Subject: [PATCH 041/115] Cleanup state (textstate) --- .../RecommendationState.java | 2 +- .../RecommendedInstance.java | 2 +- .../api/stage/textextraction/MappingKind.java | 4 +- .../api/stage/textextraction/NounMapping.java | 2 +- .../stage/textextraction/PhraseMapping.java | 2 +- .../api/stage/textextraction/TextState.java | 50 +++++++++---------- .../textextraction/TextStateStrategy.java | 4 +- .../core/data/DataRepositorySyncer.java | 2 +- 8 files changed, 34 insertions(+), 34 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java index 237861d62..4374fb2ab 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index 76994107a..3c3b3c5fe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import org.eclipse.collections.api.list.ImmutableList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java index 4a049b795..dec53fff0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java @@ -1,8 +1,8 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; /** - * The mapping type of a mapping state defines whether the mapping is a name or a type. + * The mapping type of mapping state defines whether the mapping is a name or a type. */ public enum MappingKind { NAME, TYPE diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java index b09fcf488..30a6f6cbd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java index 8480fa3ff..d863bd5ec 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index e2d249522..5f2e5f202 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; +import org.eclipse.collections.api.block.predicate.Predicate; import org.eclipse.collections.api.list.ImmutableList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,50 +21,49 @@ public interface TextState extends IConfigurable, PipelineStepData { void addNounMapping(NounMapping nounMapping); - void addPhraseMapping(PhraseMapping phraseMapping); + void removeNounMapping(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement, boolean cascade); - /** - * Removes a noun mapping from the state. Also removes phrase mappings that are associated with the noun mapping. - * - * @param dataRepository the data repository to sync the states after deleting - * @param nounMapping noun mapping to remove - * @param replacement the (optional) future replacement of the noun mapping - */ - void removeNounMapping(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement); + void addPhraseMapping(PhraseMapping phraseMapping); /** * Removes the specified phrase mapping from the state and replaces it with an (optional) replacement - * - * @param phraseMapping the mapping - * @param replacement the replacement - * @return true if removed, false otherwise */ - boolean removePhraseMapping(PhraseMapping phraseMapping, PhraseMapping replacement); + void removePhraseMapping(PhraseMapping phraseMapping, PhraseMapping replacement); PhraseMapping getPhraseMappingByNounMapping(NounMapping nounMapping); ImmutableList getNounMappingsByPhraseMapping(PhraseMapping phraseMapping); - /** - * Gets the all noun mappings. - * - * @return the all mappings - */ ImmutableList getNounMappings(); ImmutableList getPhraseMappings(); - ImmutableList getNounMappingsOfKind(MappingKind mappingKind); + default ImmutableList getNounMappingsOfKind(MappingKind kind) { + return this.getNounMappings().select(this.nounMappingIsOfKind(kind)).toImmutable(); + } - ImmutableList getMappingsThatCouldBeOfKind(Word word, MappingKind kind); + default ImmutableList getMappingsThatCouldBeOfKind(Word word, MappingKind kind) { + return this.getNounMappingsByWord(word).select(mapping -> mapping.getProbabilityForKind(kind) > 0); + } ImmutableList getMappingsThatCouldBeMultipleKinds(Word word, MappingKind... kinds); - ImmutableList getNounMappingsByWord(Word word); + default ImmutableList getNounMappingsByWord(Word word) { + return this.getNounMappings().select(nm -> nm.getWords().contains(word)); + } - ImmutableList getNounMappingsByWordAndKind(Word word, MappingKind kind); + default ImmutableList getNounMappingsByWordAndKind(Word word, MappingKind kind) { + return this.getNounMappings().select(n -> n.getWords().contains(word)).select(this.nounMappingIsOfKind(kind)).toImmutable(); + } - boolean isWordContainedByMappingKind(Word word, MappingKind kind); + default boolean isWordContainedByMappingKind(Word word, MappingKind kind) { + return this.getNounMappings().select(n -> n.getWords().contains(word)).anySatisfy(this.nounMappingIsOfKind(kind)); + } ImmutableList getNounMappingsWithSimilarReference(String reference); + + private Predicate nounMappingIsOfKind(MappingKind mappingKind) { + return n -> n.getKind() == mappingKind; + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index e04c8a046..b9db62a3a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction; import static edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions.AVERAGE; @@ -132,6 +132,6 @@ default String calculateNounMappingReference(ImmutableList referenceWords) void mergePhraseMappingsAndNounMappings(PhraseMapping phraseMapping, PhraseMapping similarPhraseMapping, MutableList> similarNounMappings, Claimant claimant); - NounMapping mergeNounMappings(NounMapping nounMapping, NounMapping textuallyEqualNounMapping, Claimant claimant); + void mergeNounMappings(NounMapping nounMapping, NounMapping textuallyEqualNounMapping, Claimant claimant); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java index 6ac68fb81..b4e748ff7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; From d5fbd749f4de530ceb5d1fbeff0a1809a5c60f30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 20 Jan 2025 15:16:06 +0100 Subject: [PATCH 042/115] Cleanup code --- .editorconfig | 7 ------- .../core/api/models/arcotl/code/CodeCompilationUnit.java | 2 +- .../stage/recommendationgenerator/RecommendedInstance.java | 3 +++ .../ardoco/core/configuration/AbstractConfigurable.java | 2 +- .../core/configuration/ConfigurationInstantiatorUtils.java | 2 +- .../mcse/ardoco/core/data/impl/ProcessedTextData.java | 2 +- .../mcse/ardoco/core/execution/runner/ArDoCoRunner.java | 4 ++-- .../eval/results/calculator/ResultCalculatorUtil.java | 6 ------ 8 files changed, 9 insertions(+), 19 deletions(-) diff --git a/.editorconfig b/.editorconfig index ec73f67a5..390b1939d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,13 +14,6 @@ ij_smart_tabs = false ij_visual_guides = none ij_wrap_on_typing = false -[*.{kt,kts}] -ij_kotlin_allow_trailing_comma = false -ij_kotlin_allow_trailing_comma_on_call_site = false -ij_kotlin_name_count_to_use_star_import = 999 -ij_kotlin_name_count_to_use_star_import_for_members = 999 - - [*.java] ij_java_align_consecutive_assignments = false ij_java_align_consecutive_variable_declarations = false diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index 48f1bf04f..6f11741c5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -100,7 +100,7 @@ public boolean equals(Object o) { this.extension, that.extension)) { return false; } - return this.language == that.language; + return Objects.equals(this.language, that.language); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index 3c3b3c5fe..a05bdcd96 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -8,11 +8,14 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; +import java.io.Serial; + /** * The Interface IRecommendedInstance defines the aggregation of noun mappings to one recommendation. */ public abstract class RecommendedInstance extends TextEntity { + @Serial private static final long serialVersionUID = -5422301094494768943L; protected RecommendedInstance(String name, String id) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index 877d2f287..82ba07b90 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -119,7 +119,7 @@ private Object parse(Field field, Class fieldsClass, String value) { if (List.class.isAssignableFrom(fieldsClass) && field.getGenericType() instanceof ParameterizedType parameterizedType) { var generics = parameterizedType.getActualTypeArguments(); - if (generics != null && generics.length == 1 && generics[0] == String.class) { + if (generics.length == 1 && generics[0] == String.class) { return new ArrayList<>(Arrays.stream(value.split(LIST_SEPARATOR)).toList()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java index 1a634048c..11cce93e5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java @@ -30,7 +30,7 @@ private ConfigurationInstantiatorUtils() { public static AbstractConfigurable createObject(Class clazz) throws InvocationTargetException, InstantiationException, IllegalAccessException { var constructors = Arrays.asList(clazz.getDeclaredConstructors()); - AbstractConfigurable result = null; + AbstractConfigurable result; result = findAndCreate(constructors, c -> c.getParameterCount() == 0, new Object[0]); if (result != null) { diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java index a4e5ed0cb..4c183b890 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java @@ -10,7 +10,7 @@ */ public class ProcessedTextData implements PipelineStepData { private static final long serialVersionUID = -6806096212069462237L; - private List importantTokens = null; + private List importantTokens; public ProcessedTextData() { this.importantTokens = null; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java index d78930e46..e518fbcdb 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java @@ -31,7 +31,7 @@ public final ArDoCoResult run() { if (this.isSetUp() && this.outputDirectory != null) { return this.getArDoCo().runAndSave(this.outputDirectory); } else { - logger.error("Cannot run ArDoCo because the runner is not properly set up."); + logger.error("Cannot run ArDoCo because the runner is not properly set up (#run)."); return null; } } @@ -44,7 +44,7 @@ public final DataRepository runWithoutSaving() { this.getArDoCo().run(); return this.getArDoCo().getDataRepository(); } else { - logger.error("Cannot run ArDoCo because the runner is not properly set up."); + logger.error("Cannot run ArDoCo because the runner is not properly set up (#runWithoutSaving)."); return null; } } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java index 91dc84dd8..64e39e608 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java @@ -26,8 +26,6 @@ private ResultCalculatorUtil() { public static EvaluationResults calculateMacroAverageResults(ImmutableList> results) { var averages = getAverages(results); - if (averages == null) - return null; var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.MACRO_AVERAGE).findFirst().orElseThrow(); return evaluationResults(macroAverage); @@ -35,8 +33,6 @@ public static EvaluationResults calculateMacroAverageResults(ImmutableLis public static EvaluationResults calculateWeightedAverageResults(ImmutableList> results) { var averages = getAverages(results); - if (averages == null) - return null; var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.WEIGHTED_AVERAGE).findFirst().orElseThrow(); return evaluationResults(macroAverage); @@ -44,8 +40,6 @@ public static EvaluationResults calculateWeightedAverageResults(Immutable public static EvaluationResults calculateMicroAverageResults(ImmutableList> results) { var averages = getAverages(results); - if (averages == null) - return null; var microAverage = averages.stream().filter(it -> it.getType() == AggregationType.MICRO_AVERAGE).findFirst().orElseThrow(); return evaluationResults(microAverage); From dcf79eca07c86c8efb2425a1630c159c95ee742d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 20 Jan 2025 17:00:22 +0100 Subject: [PATCH 043/115] Fix architecture tests --- .../kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 88748cd86..c51cd89e9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -64,7 +64,10 @@ public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); for (var codeItem : this.getContent()) { - codeItem.getType().ifPresent(identifiers::add); + var type = codeItem.getType(); + if (type.isPresent()) { + identifiers.add(type.get()); + } } return identifiers; } From ed47972fcdc0cbc31da89586ebcb7601428e223e Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Wed, 22 Jan 2025 16:10:22 +0100 Subject: [PATCH 044/115] wip repair sad sam code --- .../core/api/entity/ArchitectureEntity.java | 10 ---- .../api/entity/ArchitectureEntityImpl.java | 10 ---- .../ardoco/core/api/entity/CodeEntity.java | 5 -- .../ardoco/core/api/entity/ModelEntity.java | 5 +- .../ardoco/core/api/models/Metamodel.java | 2 +- .../api/models/arcotl/ArchitectureModel.java | 14 +++-- .../models/arcotl/CoarseGrainedCodeModel.java | 52 +++++++++++++++++++ .../core/api/models/arcotl/CodeModel.java | 13 ++--- .../ardoco/core/api/models/arcotl/Model.java | 3 +- .../architecture/ArchitectureComponent.java | 7 --- .../architecture/ArchitectureInterface.java | 9 ---- .../architecture/ArchitectureMethod.java | 9 ---- .../core/common/util/CommonUtilities.java | 23 +++++++- 13 files changed, 94 insertions(+), 68 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 3f0ca5bd1..688401cd6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,10 +1,6 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; -import java.util.Optional; - -import org.eclipse.collections.api.list.ImmutableList; - public abstract non-sealed class ArchitectureEntity extends ModelEntity { private static final long serialVersionUID = 5118724938904048363L; @@ -16,10 +12,4 @@ protected ArchitectureEntity(String name, String id) { super(name, id); } - public abstract Optional> getNameParts(); - - public abstract Optional getType(); - - public abstract Optional> getTypeParts(); - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 94c2915cf..3b875f1cb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -56,16 +56,6 @@ public String getName() { return this.fullName; } - /** - * Returns all name parts of the instance. - * - * @return all name parts of the instance as list - */ - @Override - public Optional> getNameParts() { - return Optional.of(this.names.toImmutable()); - } - /** * Returns the longest type of the instance. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 7818224ff..52d76dd49 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -29,9 +29,4 @@ public Optional> getTypeParts() { return Optional.empty(); } - @Override - public Optional> getNameParts() { - return Optional.empty(); - } - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index d04e92e1b..924e20066 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -33,7 +33,10 @@ protected ModelEntity(String name, String id) { public abstract Optional> getTypeParts(); - public abstract Optional> getNameParts(); + //TODO: Remove Optional + public Optional> getNameParts() { + return Optional.of(splitIdentifierIntoParts(this.getName()).toImmutable()); + } protected MutableList splitIdentifierIntoParts(String identifier) { String splitName = CommonUtilities.splitCases(identifier); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index faf7215ce..72978fc4d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -2,5 +2,5 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; public enum Metamodel { - CODE, ARCHITECTURE + CODE, ARCHITECTURE, CODE_AS_ARCHITECTURE } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 6d45fe6e0..f7074b42a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -9,10 +9,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureInterface; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureMethod; /** * An architecture model that is an AMTL instance. @@ -47,18 +44,19 @@ public Metamodel getMetamodel() { return Metamodel.ARCHITECTURE; } + @Override public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); - for (var architectureItem : this.getContent()) { - switch (architectureItem) { - case ArchitectureComponent component -> identifiers.add(component.getType().orElseThrow()); - case ArchitectureInterface ignored -> logger.debug("Type not defined for interfaces"); - case ArchitectureMethod ignored -> logger.debug("Type not defined for methods"); + for (var entity : getContent()) { + if (entity.getType().isPresent()) { + identifiers.add(entity.getType().orElseThrow()); + identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); } } return identifiers; + } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java new file mode 100644 index 000000000..174189255 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -0,0 +1,52 @@ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.SortedSet; +import java.util.TreeSet; + +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; + +public final class CoarseGrainedCodeModel extends Model { + + private final CodeModel codeModel; + + public CoarseGrainedCodeModel(CodeModel codeModel) { + this.codeModel = Objects.requireNonNull(codeModel); + } + + @Override + public List getContent() { + //TODO: Is the amount correct? + return this.getEndpoints(); + } + + @Override + public List getEndpoints() { + List entities = new ArrayList<>(); + codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); + + entities.addAll(codeModel.getAllPackages()); + return entities; + } + + @Override + public Metamodel getMetamodel() { + return Metamodel.CODE_AS_ARCHITECTURE; + } + + @Override + public SortedSet getTypeIdentifiers() { + SortedSet identifiers = new TreeSet<>(); + + for (var codeItem : this.getContent()) { + var type = codeItem.getType(); + if (type.isPresent()) { + identifiers.add(type.get()); + } + } + return identifiers; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index c51cd89e9..3b9a4c88e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -13,8 +13,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; @@ -60,7 +60,6 @@ public Metamodel getMetamodel() { @Override public SortedSet getTypeIdentifiers() { - SortedSet identifiers = new TreeSet<>(); for (var codeItem : this.getContent()) { @@ -85,10 +84,12 @@ public List getContent() { } @Override - public List getEndpoints() { - List compilationUnits = new ArrayList<>(); - this.getContent().forEach(c -> compilationUnits.addAll(c.getAllCompilationUnits())); - return compilationUnits; + public List getEndpoints() { + + List entities = new ArrayList<>(); + this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); + + return entities; } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 9265e0cd2..a54c6e5fd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -8,7 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; -public abstract sealed class Model permits ArchitectureModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, CoarseGrainedCodeModel, CodeModel { private final String id = IdentifierProvider.createId(); @@ -38,4 +38,5 @@ public String getId() { * @return Set of identifiers for existing types */ public abstract SortedSet getTypeIdentifiers(); + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index 211b81932..a2fb0b9ba 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -21,7 +21,6 @@ public final class ArchitectureComponent extends ArchitectureItem { private final SortedSet requiredInterfaces; private final String type; - private final MutableList nameParts; private final MutableList typeParts; @@ -32,7 +31,6 @@ public ArchitectureComponent(String name, String id, SortedSet getRequiredInterfaces() { return this.requiredInterfaces; } - @Override - public Optional> getNameParts() { - return Optional.of(this.nameParts.toImmutable()); - } - /** * Returns the type of this component as specified in the meta model. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index b1c07b8b8..4a738c89a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -6,7 +6,6 @@ import java.util.SortedSet; import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; // TODO: Discuss how to handle the missing type public final class ArchitectureInterface extends ArchitectureItem { @@ -15,12 +14,9 @@ public final class ArchitectureInterface extends ArchitectureItem { private final SortedSet signatures; - private final MutableList nameParts; - public ArchitectureInterface(String name, String id, SortedSet signatures) { super(name, id); this.signatures = signatures; - this.nameParts = splitIdentifierIntoParts(name); } @@ -28,11 +24,6 @@ public SortedSet getSignatures() { return this.signatures; } - @Override - public Optional> getNameParts() { - return Optional.of(this.nameParts.toImmutable()); - } - @Override public Optional getType() { // Not implemented yet. Interfaces currently have no specified type. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index fc62b056d..fed555b85 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -4,18 +4,14 @@ import java.util.Optional; import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; // TODO: Discuss how to handle the missing type public final class ArchitectureMethod extends ArchitectureItem { private static final long serialVersionUID = 6560555992331464264L; - private final MutableList nameParts; - public ArchitectureMethod(String name) { super(name); - this.nameParts = splitIdentifierIntoParts(name); } @Override @@ -24,11 +20,6 @@ public Optional getType() { return Optional.empty(); } - @Override - public Optional> getNameParts() { - return Optional.of(this.nameParts.toImmutable()); - } - @Override public Optional> getTypeParts() { // Not implemented yet. Methods currently have no specified type. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index cb9328eab..6e93ba540 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -9,9 +9,13 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.List; import java.util.Scanner; +import java.util.SortedSet; import java.util.StringJoiner; +import java.util.TreeSet; +import java.util.stream.Collectors; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; @@ -218,10 +222,27 @@ public static void addRecommendedInstancesFromNounMappings(ImmutableList * @return List of type names in the model state that are similar to the given word */ public static ImmutableList getSimilarTypes(Word word, Model model) { - var identifiers = model.getTypeIdentifiers(); + var identifiers = getSplittedTypeIdentifiers(model); return Lists.immutable.fromStream(identifiers.stream().filter(typeId -> SimilarityUtils.getInstance().areWordsSimilar(typeId, word.getText()))); } + /** + * Returns a set of identifiers for the types in the model. + * + * @return Set of identifiers for existing types + */ + public static SortedSet getSplittedTypeIdentifiers(Model model) { + SortedSet identifiers = model.getTypeIdentifiers() + .stream() + .map(CommonUtilities::splitSnakeAndKebabCase) + .map(CommonUtilities::splitCamelCase) + .map(type -> type.split(" ")) + .flatMap(Arrays::stream) + .collect(Collectors.toCollection(TreeSet::new)); + identifiers.addAll(model.getTypeIdentifiers()); + return identifiers; + } + /** * Splits a given String at Snake and Kebab cases. For example, "test-string" and "test_string" become "test string". * From 02ca3d1b92ef6350cf8dab79772620121d8e613e Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Mon, 3 Mar 2025 17:12:28 +0100 Subject: [PATCH 045/115] fix tlr tests --- .../ardoco/core/api/entity/ModelEntity.java | 5 +- .../ardoco/core/api/models/Metamodel.java | 2 +- .../ardoco/core/api/models/ModelStates.java | 2 +- .../api/models/arcotl/ArchitectureModel.java | 5 -- .../models/arcotl/CoarseGrainedCodeModel.java | 1 - .../core/api/models/arcotl/CodeModel.java | 6 +- .../api/models/arcotl/ComponentModel.java | 58 +++++++++++++++++++ .../ardoco/core/api/models/arcotl/Model.java | 2 +- .../architecture/ArchitectureInterface.java | 1 - .../architecture/ArchitectureMethod.java | 3 +- .../common/similarity/SimilarityUtils.java | 45 ++++++-------- .../mcse/ardoco/core/data/DataRepository.java | 2 +- .../ardoco/core/api/output/ArDoCoResult.java | 4 +- .../ardoco/core/tests/eval/GoldStandard.java | 12 ++-- .../core/tests/eval/GoldStandardProject.java | 8 +-- .../core/tests/eval/HistoricProject.java | 10 ++-- .../mcse/ardoco/core/tests/eval/Project.java | 10 ++-- 17 files changed, 108 insertions(+), 68 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index 924e20066..eea890075 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -33,9 +33,8 @@ protected ModelEntity(String name, String id) { public abstract Optional> getTypeParts(); - //TODO: Remove Optional - public Optional> getNameParts() { - return Optional.of(splitIdentifierIntoParts(this.getName()).toImmutable()); + public ImmutableList getNameParts() { + return splitIdentifierIntoParts(this.getName()).toImmutable(); } protected MutableList splitIdentifierIntoParts(String identifier) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 72978fc4d..84453b55a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -2,5 +2,5 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; public enum Metamodel { - CODE, ARCHITECTURE, CODE_AS_ARCHITECTURE + CODE, ARCHITECTURE, CODE_AS_ARCHITECTURE, COMPONENT } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index 5882fa944..b7f7c22bc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -25,7 +25,7 @@ public ModelStates() { * * @return the IDs of all contained {@link Model Models} */ - public SortedSet metamodels() { + public SortedSet getMetamodels() { return new TreeSet<>(this.models.keySet()); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index f7074b42a..6f18129f0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -5,9 +5,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; @@ -16,8 +13,6 @@ */ public final class ArchitectureModel extends Model { - private static final Logger logger = LoggerFactory.getLogger(ArchitectureModel.class); - private final List content; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java index 174189255..40735073c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -19,7 +19,6 @@ public CoarseGrainedCodeModel(CodeModel codeModel) { @Override public List getContent() { - //TODO: Is the amount correct? return this.getEndpoints(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 3b9a4c88e..dae17bceb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -13,8 +13,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; @@ -84,9 +84,9 @@ public List getContent() { } @Override - public List getEndpoints() { + public List getEndpoints() { - List entities = new ArrayList<>(); + List entities = new ArrayList<>(); this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); return entities; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java new file mode 100644 index 000000000..558f2d9fb --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java @@ -0,0 +1,58 @@ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.SortedSet; +import java.util.TreeSet; + +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; + +public final class ComponentModel extends Model { + + private final ArchitectureModel architectureModel; + + public ComponentModel(ArchitectureModel architectureModel) { + this.architectureModel = Objects.requireNonNull(architectureModel); + } + + @Override + public List getContent() { + List entities = new ArrayList<>(); + for (ArchitectureItem entity : architectureModel.getContent()) { + switch (entity) { + case ArchitectureComponent component -> entities.add(component); + default -> { + } + } + } + return entities; + } + + @Override + public List getEndpoints() { + return this.getContent(); + } + + @Override + public Metamodel getMetamodel() { + return Metamodel.COMPONENT; + } + + @Override + public SortedSet getTypeIdentifiers() { + + SortedSet identifiers = new TreeSet<>(); + + for (var entity : getContent()) { + if (entity.getType().isPresent()) { + identifiers.add(entity.getType().orElseThrow()); + identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); + } + } + return identifiers; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index a54c6e5fd..0ec549dd9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -8,7 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; -public abstract sealed class Model permits ArchitectureModel, CoarseGrainedCodeModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, ComponentModel, CoarseGrainedCodeModel, CodeModel { private final String id = IdentifierProvider.createId(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 4a738c89a..49eb5ae1a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -7,7 +7,6 @@ import org.eclipse.collections.api.list.ImmutableList; -// TODO: Discuss how to handle the missing type public final class ArchitectureInterface extends ArchitectureItem { private static final long serialVersionUID = 2232013345166120690L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index fed555b85..5d850f3f5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -5,7 +5,6 @@ import org.eclipse.collections.api.list.ImmutableList; -// TODO: Discuss how to handle the missing type public final class ArchitectureMethod extends ArchitectureItem { private static final long serialVersionUID = 6560555992331464264L; @@ -16,7 +15,7 @@ public ArchitectureMethod(String name) { @Override public Optional getType() { - // Not implemented yet. Methods currently have no specified type.// + // Not implemented yet. Methods currently have no specified type. return Optional.empty(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 41fde0c22..3534a406d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -129,12 +129,12 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode var nameParts = modelEntity.getNameParts(); if (nameParts.isEmpty()) return false; - if (this.areWordsOfListsSimilar(nameParts.get(), Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(modelEntity.getName(), + if (this.areWordsOfListsSimilar(nameParts, Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(modelEntity.getName(), nounMapping.getReference())) { return true; } - for (String name : nameParts.get()) { + for (String name : nameParts) { if (this.areWordsSimilar(name, nounMapping.getReference())) { return true; } @@ -153,7 +153,7 @@ public boolean isWordSimilarToEntity(Word word, ModelEntity modelEntity) { if (modelEntity.getNameParts().isEmpty()) { return false; } - return this.compareWordWithStringListEntries(word, modelEntity.getNameParts().orElseThrow()); + return this.compareWordWithStringListEntries(word, modelEntity.getNameParts()); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed @@ -174,7 +174,7 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r if (modelEntity.getNameParts().isEmpty()) { return result; } - return result || this.areWordsOfListsSimilar(modelEntity.getNameParts().get(), nameList); + return result || this.areWordsOfListsSimilar(modelEntity.getNameParts(), nameList); } //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed @@ -312,11 +312,10 @@ public ImmutableList getMostRecommendedInstancesToInstanceB allListsSimilar++; } - if (instanceNames.isPresent()) { - if (!this.areWordsOfListsSimilar(instanceNames.get(), Lists.immutable.with(ri.getName()), getMostRecommendedIByRefMinProportion)) { - risToRemove.add(ri); - } + if (!this.areWordsOfListsSimilar(instanceNames, Lists.immutable.with(ri.getName()), getMostRecommendedIByRefMinProportion)) { + risToRemove.add(ri); } + } whileSelection.removeAll(risToRemove); if (allListsSimilar == whileSelection.size()) { @@ -340,7 +339,7 @@ private boolean checkRecommendedInstanceWordSimilarityToInstance(ModelEntity mod for (var sf : ri.getNameMappings().flatCollect(NounMapping::getSurfaceForms)) { var splitSF = CommonUtilities.splitCases(String.join(" ", CommonUtilities.splitAtSeparators(sf))); - if (this.areWordsSimilar(String.join(" ", instanceNames.get()), splitSF)) { + if (this.areWordsSimilar(String.join(" ", instanceNames), splitSF)) { return true; } } @@ -354,17 +353,12 @@ private boolean checkRecommendedInstanceForSelection(ModelEntity modelEntity, Re boolean instanceNameAndRIName = this.areWordsSimilar(modelEntity.getName(), ri.getName()); boolean longestNameSplitAndRINames = this.areWordsOfListsSimilar(longestNameSplit, recommendedInstanceNames, similarity); - boolean instanceNamesAndRIs = false; - boolean listOfNamesSimilarEnough = false; - boolean listOfNameSplitSimilarEnough = false; - - if (entityNameParts.isPresent()) { - instanceNamesAndRIs = this.areWordsOfListsSimilar(entityNameParts.get(), recommendedInstanceNames, similarity); - listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts.get(), recommendedInstanceNames) / Math.max(entityNameParts.get().size(), - recommendedInstanceNames.size()) >= similarity; - listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(entityNameParts.get().size(), - recommendedInstanceNames.size()) >= similarity; - } + + boolean instanceNamesAndRIs = this.areWordsOfListsSimilar(entityNameParts, recommendedInstanceNames, similarity); + boolean listOfNamesSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, recommendedInstanceNames) / Math.max(entityNameParts.size(), + recommendedInstanceNames.size()) >= similarity; + boolean listOfNameSplitSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, recommendedInstanceNames) / Math.max(entityNameParts.size(), + recommendedInstanceNames.size()) >= similarity; if (instanceNameAndRIName || instanceNamesAndRIs || longestNameSplitAndRINames || listOfNamesSimilarEnough || listOfNameSplitSimilarEnough) { return true; @@ -375,13 +369,10 @@ private boolean checkRecommendedInstanceForSelection(ModelEntity modelEntity, Re var surfaceFormWords = CommonUtilities.splitAtSeparators(splitSurfaceForm); boolean longestNameXSurfaceForms = this.areWordsOfListsSimilar(longestNameSplit, surfaceFormWords, similarity); - boolean instanceNamesXSurfaceForms = false; - boolean listOfNamesXSurfaceFormSimilarEnough = false; - if (entityNameParts.isPresent()) { - instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(entityNameParts.get(), surfaceFormWords, similarity); - listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts.get(), surfaceFormWords) / Math.max( - entityNameParts.get().size(), surfaceFormWords.size()) >= similarity; - } + + boolean instanceNamesXSurfaceForms = this.areWordsOfListsSimilar(entityNameParts, surfaceFormWords, similarity); + boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, surfaceFormWords) / Math.max(entityNameParts.size(), + surfaceFormWords.size()) >= similarity; boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max( longestNameSplit.size(), surfaceFormWords.size()) >= similarity; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index 473a744a4..fd35d5135 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -39,7 +39,7 @@ public Optional getData(String identifier, Class if (possibleData != null) { return possibleData.asPipelineStepData(clazz); } - DataRepository.logger.warn("Could not find data for id '{}'", identifier); + DataRepository.logger.debug("Could not find data for id '{}'", identifier); return Optional.empty(); } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 7ae52c162..f69f2fef7 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -106,7 +106,7 @@ public ImmutableList> getArchitectureTrac MutableSet> traceLinks = Sets.mutable.empty(); for (var metamodel : this.getMetamodels()) { - if (metamodel == Metamodel.ARCHITECTURE) { + if (metamodel == Metamodel.COMPONENT) { traceLinks.addAll(this.getTraceLinksForModel(metamodel).castToCollection()); } } @@ -297,7 +297,7 @@ private ModelStates getModelStates() { */ public List getMetamodels() { ModelStates modelStates = this.getModelStates(); - return Lists.mutable.ofAll(modelStates.metamodels()); + return Lists.mutable.ofAll(modelStates.getMetamodels()); } /** diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java index 9aa60684a..1b7397ed8 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java @@ -12,18 +12,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; public class GoldStandard { - private Logger logger = LoggerFactory.getLogger(GoldStandard.class); + private final Logger logger = LoggerFactory.getLogger(GoldStandard.class); - private File goldStandard; - private ArchitectureModel model; + private final File goldStandard; + private final ComponentModel model; - private MutableList> sentence2instance = Lists.mutable.empty(); + private final MutableList> sentence2instance = Lists.mutable.empty(); - public GoldStandard(File goldStandard, ArchitectureModel model) { + public GoldStandard(File goldStandard, ComponentModel model) { this.goldStandard = goldStandard; this.model = model; this.load(); diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java index 569a2bb68..92948e165 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; /** @@ -181,11 +181,11 @@ default ImmutableList getTlrGoldStandard() { /** * Returns the {@link GoldStandard} for this project for the given model connector. * - * @param architectureModel the model + * @param componentModel the model * @return the {@link GoldStandard} for this project */ - default GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { - return this.getProjectOrThrow().getTlrGoldStandard(architectureModel); + default GoldStandard getTlrGoldStandard(ComponentModel componentModel) { + return this.getProjectOrThrow().getTlrGoldStandard(componentModel); } default MutableList getMissingTextForModelElementGoldStandard() { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java index 1e06fd1d2..75856a42d 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -87,8 +87,8 @@ public enum HistoricProject implements GoldStandardProject { this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; this.expectedTraceLinkResults = expectedTraceLinkResults; this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, - goldStandardMissingTextForModelElement)); + resourceNames = new TreeSet<>( + List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, goldStandardMissingTextForModelElement)); } @Override @@ -174,8 +174,8 @@ public ImmutableList getTlrGoldStandard() { } @Override - public GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { - return new GoldStandard(getTlrGoldStandardFile(), architectureModel); + public GoldStandard getTlrGoldStandard(ComponentModel componentModel) { + return new GoldStandard(getTlrGoldStandardFile(), componentModel); } @Override diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java index 5326f540d..573e0b41a 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -96,8 +96,8 @@ public enum Project implements GoldStandardProject { this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; this.expectedTraceLinkResults = expectedTraceLinkResults; this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, - goldStandardMissingTextForModelElement)); + resourceNames = new TreeSet<>( + List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, goldStandardMissingTextForModelElement)); } @Override @@ -183,8 +183,8 @@ public ImmutableList getTlrGoldStandard() { } @Override - public GoldStandard getTlrGoldStandard(ArchitectureModel architectureModel) { - return new GoldStandard(getTlrGoldStandardFile(), architectureModel); + public GoldStandard getTlrGoldStandard(ComponentModel componentModel) { + return new GoldStandard(getTlrGoldStandardFile(), componentModel); } @Override From 320a63624a2ad5026159adf1fedabc3f114ccbeb Mon Sep 17 00:00:00 2001 From: gabriel Date: Thu, 3 Apr 2025 23:07:59 +0200 Subject: [PATCH 046/115] renamed core-main and tlr-main according to ArDoCo --- framework/common/pom.xml | 86 +++ .../api/models/arcotl/code/CodeAssembly.java | 28 + .../core/api/models/arcotl/code/CodeItem.java | 98 +++ .../arcotl/code/ProgrammingLanguage.java | 9 + .../api/models/arcotl/code/CodeAssembly.class | Bin 0 -> 1683 bytes .../api/models/arcotl/code/CodeItem.class | Bin 0 -> 4825 bytes .../arcotl/code/ProgrammingLanguage.class | Bin 0 -> 1390 bytes framework/pom.xml | 20 + pom.xml | 600 ++++++++++++++++++ 9 files changed, 841 insertions(+) create mode 100644 framework/common/pom.xml create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java create mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class create mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.class create mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class create mode 100644 framework/pom.xml create mode 100644 pom.xml diff --git a/framework/common/pom.xml b/framework/common/pom.xml new file mode 100644 index 000000000..83e402fb8 --- /dev/null +++ b/framework/common/pom.xml @@ -0,0 +1,86 @@ + + + 4.0.0 + + io.github.ardoco.core + framework + ${revision} + + + common + ArDoCo Common Utilities and Pipeline Definitions + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + commons-io + commons-io + + + org.apache.commons + commons-compress + 1.26.2 + + + org.apache.commons + commons-lang3 + + + org.apache.commons + commons-text + + + org.apache.jena + jena-arq + 4.10.0 + + + org.apache.jena + jena-core + 4.10.0 + + + org.apache.opennlp + opennlp-tools + 2.3.3 + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.jgit + org.eclipse.jgit + + + org.jgrapht + jgrapht-core + ${jgrapht.version} + + + org.jsoup + jsoup + 1.17.2 + + + org.xerial + sqlite-jdbc + 3.46.0.1 + + + diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java new file mode 100644 index 000000000..114477383 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -0,0 +1,28 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; + +import java.util.SortedSet; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonTypeName; + +@JsonTypeName("CodeAssembly") +public final class CodeAssembly extends CodeModule { + + @JsonProperty + private ProgrammingLanguage language; + + @SuppressWarnings("unused") + private CodeAssembly() { + // Jackson + } + + public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSet content) { + super(codeItemRepository, name, content); + } + + public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSet content, ProgrammingLanguage language) { + super(codeItemRepository, name, content); + this.language = language; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java new file mode 100644 index 000000000..910ba2114 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -0,0 +1,98 @@ +/* Licensed under MIT 2023-2024. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.SortedSet; +import java.util.TreeSet; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +import edu.kit.kastel.mcse.ardoco.core.api.models.Entity; + +/** + * A code item of a code model. + */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") +@JsonSubTypes({ // + @JsonSubTypes.Type(value = CodeModule.class, name = "CodeModule"),// + @JsonSubTypes.Type(value = ComputationalObject.class, name = "ComputationalObject"), // + @JsonSubTypes.Type(value = Datatype.class, name = "Datatype") // +}) +public abstract sealed class CodeItem extends Entity permits CodeModule, ComputationalObject, Datatype { + + @JsonIgnore + protected CodeItemRepository codeItemRepository; + protected String comment; + + CodeItem() { + // Jackson + } + + /** + * Creates a new code item with the specified name. + * + * @param name the name of the code item to be created + */ + protected CodeItem(CodeItemRepository codeItemRepository, String name) { + super(name); + this.codeItemRepository = Objects.requireNonNull(codeItemRepository); + this.codeItemRepository.addCodeItem(this); + } + + void registerCurrentCodeItemRepository(CodeItemRepository codeItemRepository) { + this.codeItemRepository = codeItemRepository; + } + + /** + * Returns the content of this code item. + * + * @return the content of this code item + */ + public List getContent() { + return new ArrayList<>(); + } + + public List getAllDataTypes() { + return new ArrayList<>(); + } + + public SortedSet getAllDataTypesAndSelf() { + SortedSet result = new TreeSet<>(getAllDataTypes()); + result.add(this); + return result; + } + + public SortedSet getDeclaredMethods() { + SortedSet methods = new TreeSet<>(); + for (CodeItem codeItem : getContent()) { + if (codeItem instanceof ControlElement codeMethod) { + methods.add(codeMethod); + } + } + return methods; + } + + public SortedSet getAllCompilationUnits() { + return new TreeSet<>(); + } + + public SortedSet getAllCodeAssemblies() { + return new TreeSet<>(); + } + + public SortedSet getAllPackages() { + return new TreeSet<>(); + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java new file mode 100644 index 000000000..23d31c797 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java @@ -0,0 +1,9 @@ +/* Licensed under MIT 2023. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; + +/** + * Supported programming languages. + */ +public enum ProgrammingLanguage { + JAVA, SHELL, PYTHON3, CPP +} diff --git a/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class b/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class new file mode 100644 index 0000000000000000000000000000000000000000..03c6e3bc8174fe2a60cee33b4926edb7e220dc11 GIT binary patch literal 1683 zcmb_cO>Yx15FMv!)1-m4fdb`o`7T1jLgGZKNL5ut(YBzbMB?b|4yjwO9ogQBTsiVz zI3s}scMkj{#5k?eqH>@~4r_a6?Kkh)GxPKJ*Y5zZ3J*(AV6cX1&iAF~`@(rtJWCvM zVN;VBo)}B(p5&QHQ8{ua#w&8C$k%9Cbq=$R>X)F%V17>=2(EeTRPcMxT>}B!b_ta10E+PKH;V?ix%=}sF#a4nV^xALrmc1Mr~2KCq^LbZjJ!9H>p{jQ|@T_5!+Po@mr zdUH7rp1;*MPBT38aQ`#Oyou;EvV8mxlQne3<LA*`lxV5(?NXP!ONDVdWlM0MK_&PPE1uvsrE^qVA(DfqK#heuE`tJ0!wk(O zvcfz|^Avf@P$6rMtY>61nk(O+`mTQd3(Wr@s{j{h3@7LhT%@sjv|fZuWHCaxOuMeo zx&TW|yQ+KR7>QcTolYelOCDG}0=Hb5mnZPC`v?hqFCC1-cT5kLE9 z`~{w)=h*N5D38xJ> zUf$^#UvO{3Ava#aOL5JI82pqvnQ|!?&%#D%(8gx?ZS*L_&hjoxmLKqs6U2C^W`stSOxLea|1F*IDA`mh1Dtvk$qc0=H_}ky&ch_h6?J+*4D@%{{JKPSx{6 z6;x(HWwuUbR#2I(Q<)W1W{ZGQ3TEu6ZXhI1TW9#|}19Gle;`XlC>Q?4TINCVA z2>PDOzx+GAeZuJH?%rKip+dlbk7aJyy3ftks1za|J`$aU^{!eN=IRc>Qi7cNBu;LK zboA4Zy(*c8YB8>|5E+X91Et^^xVMPI)D2fG?&Hq12ggSWu8ZT<))B>lLM1S2^m4Ch zb3~ynT!_x42VVsR3Vp}uc2Al@Tx>nIP@(6&t`}=D>JxfDM7(vRyFxEfX5)}-b{7gE zG>2PKNg)GC*j^|VT2~0C(_lWjJAu>HddDf&4iZy@SjEM*j}kOMgBU3oiT4oR2})85 z?-Bfl@kD0e-z+p3-l;!m^x628-)Q_5MtyV*PoYWZ?5^V}Knqa}-jDKa1^d5>+N zAMQ~9B8jgL4Jy#1fF2(Yi(vd()LV}p3*bgS)8N_=0}mE N-_r~Fk;-He{|8t$Wqbet literal 0 HcmV?d00001 diff --git a/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class b/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class new file mode 100644 index 0000000000000000000000000000000000000000..ab4efd8d700ee517b0b21583123ca21c66db3a91 GIT binary patch literal 1390 zcmb_bT~E_c7=8}>=vJ!0M7|L}P`80pM7Y^PSjY@uVM_{28WZE8tFzFqq-%-%D;*aQ zjl^qzl<_@fLND}gz34g5d*09IJm=T%Z&v^+Sd%couwykt_1F&7W8MiYM|I7PrE6z1rC{;mRk3{md{<+ZnrevZiT#MNk}r>J>sWab;zVv+o8*l z+^IAw44T%zLM4WjzE#yU2B~iBZ`Jlz7!sTHI>TUf?_hVnQPB>nI>YX}{#MPDO~-EA z!8(=87aBC&CUKELN(RG-f*kHKq{}^*vAlLmh93AtRcX7>$dd1U1u3L6kOY`eAPJBW zU|K;&fUE!y6l9SWyN3#73^EL9cH7zu-9yXY=ZB8PkkdSqI}PsJ0!Ky}35-y4!6&;z z{hV?qv}jYy7y8PFj68}G3Jk-sInPK&u7U+DGGw{$^E1;sIb$fs*{B^JS!Ph$juG_N zL=4fjMm^U)GJJ@K^++uA^Hv2}FBQDNGQ(=T*rvlfol>mBo9egI3W<{%W!(#X(|Tiz z3z_)G(^wKA#D{LT+B^t-a(f@kEYg(wIn;V-W0_QwpogB?m=szAXeF6ND=92mNnF72 zl#mvACP{e;?oixaLZ1nXZ~r@(ksC@}VE7!P5g1EGU_1hosR&F(U?v@bS?LD_CAt{Z zjbs<&x{>N)N;lG7%UFV9Gl(gq;=;@Yp4LYDNf f)XPyMA5lxrvEn7vpJ4xw8^Eh5=L!uZa + + 4.0.0 + + io.github.ardoco.core + parent + ${revision} + + + framework + pom + + ArDoCo Framework + This framework contains the code for defining the architecture, data structures, and interfaces of the ArDoCo approach as well as the common code. + + + common + text-provider-json + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..631f501f6 --- /dev/null +++ b/pom.xml @@ -0,0 +1,600 @@ + + + 4.0.0 + + io.github.ardoco.core + parent + ${revision} + pom + + ArDoCo - The Consistency Analyzer: Core Framework + The goal of this project is to connect architecture documentation and models while identifying missing + or deviating elements (inconsistencies). An element can be any representable item of the model, like a component + or a relation. To do so, we first create trace links and then make use of them and other information to identify + inconsistencies. ArDoCo is actively developed by researchers of the Modelling for Continuous Software + Engineering (MCSE) group of KASTEL - Institute of Information Security and Dependability at the KIT. + https://github.com/ArDoCo/Core + + + MIT License + https://www.opensource.org/licenses/mit-license.php + + + + + Hossiphi + Sophie Corallo + sophie.corallo@kit.edu + https://mcse.kastel.kit.edu/staff_sophie_corallo.php + KASTEL + https://mcse.kastel.kit.edu/ + GMT+1 + + + dfuchss + Dominik Fuchss + dominik.fuchss@kit.edu + https://mcse.kastel.kit.edu/staff_dominik_fuchss.php + KASTEL + https://mcse.kastel.kit.edu/ + GMT+1 + + + Gram21 + Jan Keim + jan.keim@kit.edu + https://mcse.kastel.kit.edu/staff_Keim_Jan.php + KASTEL + https://mcse.kastel.kit.edu/ + GMT+1 + + + + + scm:git:git://github.com/ArDoCo/Core.git + scm:git:ssh://github.com:ArDoCo/Core.git + HEAD + http://github.com/ArDoCo/Core/tree/main + + + GitHub Issues + https://github.com/ArDoCo/Core/issues + + + + ossrh + https://s01.oss.sonatype.org/content/repositories/snapshots + + + + + 1.1.0-SNAPSHOT + ${revision} + UTF-8 + UTF-8 + UTF-8 + 21 + ${java.version} + ${java.version} + ${java.version} + + + 2.0.13 + 2.43.0 + 5.10.2 + 12.0.0.M3 + 2.17.2 + 3.25.8 + 2.31.0 + 5.2.0 + 3.3.0 + 1.5.2 + + ArDoCo_Core + ${project.groupId}:${project.artifactId} + ardoco + https://sonarcloud.io + ${project.basedir}/../${aggregate.report.dir}, + ${project.basedir}/../../${aggregate.report.dir} + report/target/site/jacoco-aggregate/jacoco.xml + -Xmx4g -Xss256m + 4.5.6 + all,-missing + + + + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + ${jackson.version} + + + + + com.fasterxml.jackson.module + jackson-module-kotlin + ${jackson.version} + + + com.tngtech.archunit + archunit-junit5 + 1.3.0 + + + commons-io + commons-io + 2.16.1 + + + + org.apache.commons + commons-lang3 + 3.14.0 + + + org.apache.commons + commons-text + 1.12.0 + + + + org.apache.httpcomponents.client5 + httpclient5 + 5.3.1 + + + org.assertj + assertj-core + 3.26.0 + test + + + org.eclipse.collections + eclipse-collections + ${eclipse-collections.version} + + + org.eclipse.collections + eclipse-collections-api + ${eclipse-collections.version} + + + org.eclipse.jgit + org.eclipse.jgit + 6.9.0.202403050737-r + + + org.mockito + mockito-core + ${mockito.version} + test + + + org.mockito + mockito-inline + ${mockito.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + org.reflections + reflections + 0.10.2 + + + org.slf4j + log4j-over-slf4j + ${slf4j.version} + + + + + org.slf4j + slf4j-simple + ${slf4j.version} + + + + + + + com.google.errorprone + error_prone_core + ${error-prone.version} + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + test + + + org.junit.vintage + junit-vintage-engine + ${junit.version} + test + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + mavenCentral + https://repo1.maven.org/maven2/ + + + + false + + + true + + mavenSnapshot + https://s01.oss.sonatype.org/content/repositories/snapshots + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.7.1 + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + ${java.version} + UTF-8 + true + + -XDcompilePolicy=simple + -Xplugin:ErrorProne + -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED + + 128m + 512m + + + com.google.errorprone + error_prone_core + ${error-prone.version} + + + + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.2.5 + + + + integration-test + verify + + integration-test + + + + + org.apache.maven.plugins + maven-gpg-plugin + 3.2.4 + + + org.apache.maven.plugins + maven-install-plugin + 3.1.2 + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + resolveCiFriendliesOnly + + expand + expand + + + + + flatten.clean + + clean + + clean + + + flatten + + flatten + + process-resources + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.7.0 + true + + ossrh + https://s01.oss.sonatype.org/ + true + + + + + + + com.diffplug.spotless + spotless-maven-plugin + ${spotless.version} + + + + + *.md + .gitignore + + + + + true + 4 + + + + + + + + ${maven.multiModuleProjectDirectory}/formatter.xml + + + + + ${maven.multiModuleProjectDirectory}/license-header + + + + ${maven.multiModuleProjectDirectory}/spotless.importorder + + + + + UTF-8 + true + false + 2 + false + true + groupId,artifactId + groupId,artifactId + groupId,artifactId + groupId,artifactId + false + true + true + recommended_2008_06 + + + origin/main + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.7.0 + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + + jar-no-fork + + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + resolveCiFriendliesOnly + + + + flatten.clean + + clean + + clean + + + flatten + + flatten + + process-resources + + + + + org.codehaus.mojo + versions-maven-plugin + 2.16.2 + + + + * + + regex + .+-(alpha|Alpha|beta|Beta|RC).* + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + prepare-agent + + prepare-agent + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + + ossrh + https://s01.oss.sonatype.org/ + true + + + + + + + + deployment + + false + + + framework + pipeline-core + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + default-testCompile + + testCompile + + test-compile + + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + + sign + + verify + + 2673EE7DF64D33426A93D642E88F0DA2FB06A126 + + + + + + + + + complete + + true + + + framework + pipeline-core + report + + + + From b310fef346f2bc4f9f73cf58be10a78e08269d5e Mon Sep 17 00:00:00 2001 From: Gabriel Leon Gehrig Date: Thu, 3 Apr 2025 21:24:22 +0000 Subject: [PATCH 047/115] removed old target dependencies --- .../api/models/arcotl/code/CodeAssembly.class | Bin 1683 -> 0 bytes .../core/api/models/arcotl/code/CodeItem.class | Bin 4825 -> 0 bytes .../models/arcotl/code/ProgrammingLanguage.class | Bin 1390 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class delete mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.class delete mode 100644 framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class diff --git a/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class b/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.class deleted file mode 100644 index 03c6e3bc8174fe2a60cee33b4926edb7e220dc11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1683 zcmb_cO>Yx15FMv!)1-m4fdb`o`7T1jLgGZKNL5ut(YBzbMB?b|4yjwO9ogQBTsiVz zI3s}scMkj{#5k?eqH>@~4r_a6?Kkh)GxPKJ*Y5zZ3J*(AV6cX1&iAF~`@(rtJWCvM zVN;VBo)}B(p5&QHQ8{ua#w&8C$k%9Cbq=$R>X)F%V17>=2(EeTRPcMxT>}B!b_ta10E+PKH;V?ix%=}sF#a4nV^xALrmc1Mr~2KCq^LbZjJ!9H>p{jQ|@T_5!+Po@mr zdUH7rp1;*MPBT38aQ`#Oyou;EvV8mxlQne3<LA*`lxV5(?NXP!ONDVdWlM0MK_&PPE1uvsrE^qVA(DfqK#heuE`tJ0!wk(O zvcfz|^Avf@P$6rMtY>61nk(O+`mTQd3(Wr@s{j{h3@7LhT%@sjv|fZuWHCaxOuMeo zx&TW|yQ+KR7>QcTolYelOCDG}0=Hb5mnZPC`v?hqFCC1-cT5kLE9 z`~{w)=h*N5D38xJ> zUf$^#UvO{3Ava#aOL5JI82pqvnQ|!?&%#D%(8gx?ZS*L_&hjoxmLKqs6U2C^W`stSOxLea|1F*IDA`mh1Dtvk$qc0=H_}ky&ch_h6?J+*4D@%{{JKPSx{6 z6;x(HWwuUbR#2I(Q<)W1W{ZGQ3TEu6ZXhI1TW9#|}19Gle;`XlC>Q?4TINCVA z2>PDOzx+GAeZuJH?%rKip+dlbk7aJyy3ftks1za|J`$aU^{!eN=IRc>Qi7cNBu;LK zboA4Zy(*c8YB8>|5E+X91Et^^xVMPI)D2fG?&Hq12ggSWu8ZT<))B>lLM1S2^m4Ch zb3~ynT!_x42VVsR3Vp}uc2Al@Tx>nIP@(6&t`}=D>JxfDM7(vRyFxEfX5)}-b{7gE zG>2PKNg)GC*j^|VT2~0C(_lWjJAu>HddDf&4iZy@SjEM*j}kOMgBU3oiT4oR2})85 z?-Bfl@kD0e-z+p3-l;!m^x628-)Q_5MtyV*PoYWZ?5^V}Knqa}-jDKa1^d5>+N zAMQ~9B8jgL4Jy#1fF2(Yi(vd()LV}p3*bgS)8N_=0}mE N-_r~Fk;-He{|8t$Wqbet diff --git a/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class b/framework/common/target/classes/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.class deleted file mode 100644 index ab4efd8d700ee517b0b21583123ca21c66db3a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1390 zcmb_bT~E_c7=8}>=vJ!0M7|L}P`80pM7Y^PSjY@uVM_{28WZE8tFzFqq-%-%D;*aQ zjl^qzl<_@fLND}gz34g5d*09IJm=T%Z&v^+Sd%couwykt_1F&7W8MiYM|I7PrE6z1rC{;mRk3{md{<+ZnrevZiT#MNk}r>J>sWab;zVv+o8*l z+^IAw44T%zLM4WjzE#yU2B~iBZ`Jlz7!sTHI>TUf?_hVnQPB>nI>YX}{#MPDO~-EA z!8(=87aBC&CUKELN(RG-f*kHKq{}^*vAlLmh93AtRcX7>$dd1U1u3L6kOY`eAPJBW zU|K;&fUE!y6l9SWyN3#73^EL9cH7zu-9yXY=ZB8PkkdSqI}PsJ0!Ky}35-y4!6&;z z{hV?qv}jYy7y8PFj68}G3Jk-sInPK&u7U+DGGw{$^E1;sIb$fs*{B^JS!Ph$juG_N zL=4fjMm^U)GJJ@K^++uA^Hv2}FBQDNGQ(=T*rvlfol>mBo9egI3W<{%W!(#X(|Tiz z3z_)G(^wKA#D{LT+B^t-a(f@kEYg(wIn;V-W0_QwpogB?m=szAXeF6ND=92mNnF72 zl#mvACP{e;?oixaLZ1nXZ~r@(ksC@}VE7!P5g1EGU_1hosR&F(U?v@bS?LD_CAt{Z zjbs<&x{>N)N;lG7%UFV9Gl(gq;=;@Yp4LYDNf f)XPyMA5lxrvEn7vpJ4xw8^Eh5=L!uZa Date: Thu, 3 Apr 2025 21:37:33 +0000 Subject: [PATCH 048/115] removed untouched poms --- framework/common/pom.xml | 86 ------ framework/pom.xml | 20 -- pom.xml | 600 --------------------------------------- 3 files changed, 706 deletions(-) delete mode 100644 framework/common/pom.xml delete mode 100644 framework/pom.xml delete mode 100644 pom.xml diff --git a/framework/common/pom.xml b/framework/common/pom.xml deleted file mode 100644 index 83e402fb8..000000000 --- a/framework/common/pom.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - 4.0.0 - - io.github.ardoco.core - framework - ${revision} - - - common - ArDoCo Common Utilities and Pipeline Definitions - - - - com.fasterxml.jackson.core - jackson-annotations - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind - - - commons-io - commons-io - - - org.apache.commons - commons-compress - 1.26.2 - - - org.apache.commons - commons-lang3 - - - org.apache.commons - commons-text - - - org.apache.jena - jena-arq - 4.10.0 - - - org.apache.jena - jena-core - 4.10.0 - - - org.apache.opennlp - opennlp-tools - 2.3.3 - - - org.eclipse.collections - eclipse-collections - - - org.eclipse.collections - eclipse-collections-api - - - org.eclipse.jgit - org.eclipse.jgit - - - org.jgrapht - jgrapht-core - ${jgrapht.version} - - - org.jsoup - jsoup - 1.17.2 - - - org.xerial - sqlite-jdbc - 3.46.0.1 - - - diff --git a/framework/pom.xml b/framework/pom.xml deleted file mode 100644 index 9c6f7b4ab..000000000 --- a/framework/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 4.0.0 - - io.github.ardoco.core - parent - ${revision} - - - framework - pom - - ArDoCo Framework - This framework contains the code for defining the architecture, data structures, and interfaces of the ArDoCo approach as well as the common code. - - - common - text-provider-json - - diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 631f501f6..000000000 --- a/pom.xml +++ /dev/null @@ -1,600 +0,0 @@ - - - 4.0.0 - - io.github.ardoco.core - parent - ${revision} - pom - - ArDoCo - The Consistency Analyzer: Core Framework - The goal of this project is to connect architecture documentation and models while identifying missing - or deviating elements (inconsistencies). An element can be any representable item of the model, like a component - or a relation. To do so, we first create trace links and then make use of them and other information to identify - inconsistencies. ArDoCo is actively developed by researchers of the Modelling for Continuous Software - Engineering (MCSE) group of KASTEL - Institute of Information Security and Dependability at the KIT. - https://github.com/ArDoCo/Core - - - MIT License - https://www.opensource.org/licenses/mit-license.php - - - - - Hossiphi - Sophie Corallo - sophie.corallo@kit.edu - https://mcse.kastel.kit.edu/staff_sophie_corallo.php - KASTEL - https://mcse.kastel.kit.edu/ - GMT+1 - - - dfuchss - Dominik Fuchss - dominik.fuchss@kit.edu - https://mcse.kastel.kit.edu/staff_dominik_fuchss.php - KASTEL - https://mcse.kastel.kit.edu/ - GMT+1 - - - Gram21 - Jan Keim - jan.keim@kit.edu - https://mcse.kastel.kit.edu/staff_Keim_Jan.php - KASTEL - https://mcse.kastel.kit.edu/ - GMT+1 - - - - - scm:git:git://github.com/ArDoCo/Core.git - scm:git:ssh://github.com:ArDoCo/Core.git - HEAD - http://github.com/ArDoCo/Core/tree/main - - - GitHub Issues - https://github.com/ArDoCo/Core/issues - - - - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots - - - - - 1.1.0-SNAPSHOT - ${revision} - UTF-8 - UTF-8 - UTF-8 - 21 - ${java.version} - ${java.version} - ${java.version} - - - 2.0.13 - 2.43.0 - 5.10.2 - 12.0.0.M3 - 2.17.2 - 3.25.8 - 2.31.0 - 5.2.0 - 3.3.0 - 1.5.2 - - ArDoCo_Core - ${project.groupId}:${project.artifactId} - ardoco - https://sonarcloud.io - ${project.basedir}/../${aggregate.report.dir}, - ${project.basedir}/../../${aggregate.report.dir} - report/target/site/jacoco-aggregate/jacoco.xml - -Xmx4g -Xss256m - 4.5.6 - all,-missing - - - - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.datatype - jackson-datatype-jdk8 - ${jackson.version} - - - - - com.fasterxml.jackson.module - jackson-module-kotlin - ${jackson.version} - - - com.tngtech.archunit - archunit-junit5 - 1.3.0 - - - commons-io - commons-io - 2.16.1 - - - - org.apache.commons - commons-lang3 - 3.14.0 - - - org.apache.commons - commons-text - 1.12.0 - - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - - - org.assertj - assertj-core - 3.26.0 - test - - - org.eclipse.collections - eclipse-collections - ${eclipse-collections.version} - - - org.eclipse.collections - eclipse-collections-api - ${eclipse-collections.version} - - - org.eclipse.jgit - org.eclipse.jgit - 6.9.0.202403050737-r - - - org.mockito - mockito-core - ${mockito.version} - test - - - org.mockito - mockito-inline - ${mockito.version} - test - - - org.mockito - mockito-junit-jupiter - ${mockito.version} - test - - - org.reflections - reflections - 0.10.2 - - - org.slf4j - log4j-over-slf4j - ${slf4j.version} - - - - - org.slf4j - slf4j-simple - ${slf4j.version} - - - - - - - com.google.errorprone - error_prone_core - ${error-prone.version} - - - org.junit.jupiter - junit-jupiter-api - ${junit.version} - test - - - org.junit.jupiter - junit-jupiter-engine - ${junit.version} - test - - - org.junit.jupiter - junit-jupiter-params - ${junit.version} - test - - - org.junit.vintage - junit-vintage-engine - ${junit.version} - test - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - mavenCentral - https://repo1.maven.org/maven2/ - - - - false - - - true - - mavenSnapshot - https://s01.oss.sonatype.org/content/repositories/snapshots - - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.7.1 - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - ${java.version} - ${java.version} - ${java.version} - UTF-8 - true - - -XDcompilePolicy=simple - -Xplugin:ErrorProne - -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED - -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED - -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED - - 128m - 512m - - - com.google.errorprone - error_prone_core - ${error-prone.version} - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - 3.2.5 - - - - integration-test - verify - - integration-test - - - - - org.apache.maven.plugins - maven-gpg-plugin - 3.2.4 - - - org.apache.maven.plugins - maven-install-plugin - 3.1.2 - - - org.apache.maven.plugins - maven-jar-plugin - 3.4.2 - - - org.apache.maven.plugins - maven-surefire-plugin - 3.2.5 - - - org.codehaus.mojo - flatten-maven-plugin - 1.6.0 - - true - resolveCiFriendliesOnly - - expand - expand - - - - - flatten.clean - - clean - - clean - - - flatten - - flatten - - process-resources - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.7.0 - true - - ossrh - https://s01.oss.sonatype.org/ - true - - - - - - - com.diffplug.spotless - spotless-maven-plugin - ${spotless.version} - - - - - *.md - .gitignore - - - - - true - 4 - - - - - - - - ${maven.multiModuleProjectDirectory}/formatter.xml - - - - - ${maven.multiModuleProjectDirectory}/license-header - - - - ${maven.multiModuleProjectDirectory}/spotless.importorder - - - - - UTF-8 - true - false - 2 - false - true - groupId,artifactId - groupId,artifactId - groupId,artifactId - groupId,artifactId - false - true - true - recommended_2008_06 - - - origin/main - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.7.0 - - - attach-javadocs - - jar - - - - - - org.apache.maven.plugins - maven-source-plugin - 3.3.1 - - - attach-sources - - jar-no-fork - - - - - - org.codehaus.mojo - flatten-maven-plugin - 1.6.0 - - true - resolveCiFriendliesOnly - - - - flatten.clean - - clean - - clean - - - flatten - - flatten - - process-resources - - - - - org.codehaus.mojo - versions-maven-plugin - 2.16.2 - - - - * - - regex - .+-(alpha|Alpha|beta|Beta|RC).* - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - prepare-agent - - prepare-agent - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - - ossrh - https://s01.oss.sonatype.org/ - true - - - - - - - - deployment - - false - - - framework - pipeline-core - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - default-testCompile - - testCompile - - test-compile - - true - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - - sign - - verify - - 2673EE7DF64D33426A93D642E88F0DA2FB06A126 - - - - - - - - - complete - - true - - - framework - pipeline-core - report - - - - From b3f13129e4cd010d2661329e4b8a42be822b3ff6 Mon Sep 17 00:00:00 2001 From: gabriel Date: Thu, 3 Apr 2025 23:57:17 +0200 Subject: [PATCH 049/115] Fixed errors based on updated framework code models --- .../mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java index 5363ef8c4..c64daccd5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -11,7 +11,7 @@ public final class CodeAssembly extends CodeModule { private static final long serialVersionUID = 3082912967900986071L; @JsonProperty - private ProgrammingLanguage language; + private String language; @SuppressWarnings("unused") private CodeAssembly() { @@ -22,7 +22,7 @@ public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSe super(codeItemRepository, name, content); } - public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSet content, ProgrammingLanguage language) { + public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSet content, String language) { super(codeItemRepository, name, content); this.language = language; } From a89798c0382f633af1a9d483a7fdc88bf1a7f887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 19 May 2025 12:34:49 +0200 Subject: [PATCH 050/115] exclude magika from determinism --- .../ardoco/core/tests/architecture/DeterministicArDoCoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index 6dd0536b2..d90258fe9 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -50,7 +50,7 @@ public class DeterministicArDoCoTest { @ArchTest public static final ArchRule forbidUnorderedSetsAndMaps = noClasses().that() - .resideOutsideOfPackages("..tests..", "..metrics..") + .resideOutsideOfPackages("..tests..", "..metrics..", "..magika..") .and(areNotDirectlyAnnotatedWith(Deterministic.class)) .should() .accessClassesThat(areForbiddenClasses()) From f8b4c919f3037cac6a90ff5b7967c1c956dc1ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 19 May 2025 12:53:01 +0200 Subject: [PATCH 051/115] Resolve https://github.com/ArDoCo/Core/issues/397 --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/verify.yml | 4 ++-- pom.xml | 16 +++++++++------- .../architecture/DeterministicArDoCoTest.java | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 027d689b5..db1abe872 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,7 +20,7 @@ jobs: with-submodules: true runs-on: ubuntu-latest secrets: - OSSRH_USER: ${{secrets.OSSRH_USER}} - OSSRH_TOKEN: ${{secrets.OSSRH_TOKEN}} + CENTRAL_USER: ${{secrets.OSSRH_USER}} + CENTRAL_TOKEN: ${{secrets.OSSRH_TOKEN}} GPG_KEY: ${{secrets.GPG_KEY}} diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 530378687..23bcc051e 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -20,7 +20,7 @@ jobs: with-submodules: true runs-on: ubuntu-latest secrets: - OSSRH_USER: "" - OSSRH_TOKEN: "" + CENTRAL_USER: "" + CENTRAL_TOKEN: "" GPG_KEY: "" diff --git a/pom.xml b/pom.xml index dce7dbced..411de6751 100644 --- a/pom.xml +++ b/pom.xml @@ -68,8 +68,8 @@ - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots + central + https://central.sonatype.com/repository/maven-snapshots/ @@ -243,12 +243,14 @@ - org.sonatype.plugins - nexus-staging-maven-plugin + org.sonatype.central + central-publishing-maven-plugin + true - ossrh - https://s01.oss.sonatype.org/ - true + central + true + published + ardoco-core diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index d90258fe9..d98e76c85 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.architecture; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; From 8f26f6c4b2a5d30f5b4bcd042f9abd86a8d34121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 19 May 2025 12:53:01 +0200 Subject: [PATCH 052/115] Resolve https://github.com/ArDoCo/Core/issues/397 --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/verify.yml | 4 ++-- pom.xml | 16 +++++++++------- .../architecture/DeterministicArDoCoTest.java | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 027d689b5..db1abe872 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,7 +20,7 @@ jobs: with-submodules: true runs-on: ubuntu-latest secrets: - OSSRH_USER: ${{secrets.OSSRH_USER}} - OSSRH_TOKEN: ${{secrets.OSSRH_TOKEN}} + CENTRAL_USER: ${{secrets.OSSRH_USER}} + CENTRAL_TOKEN: ${{secrets.OSSRH_TOKEN}} GPG_KEY: ${{secrets.GPG_KEY}} diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 530378687..23bcc051e 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -20,7 +20,7 @@ jobs: with-submodules: true runs-on: ubuntu-latest secrets: - OSSRH_USER: "" - OSSRH_TOKEN: "" + CENTRAL_USER: "" + CENTRAL_TOKEN: "" GPG_KEY: "" diff --git a/pom.xml b/pom.xml index dce7dbced..411de6751 100644 --- a/pom.xml +++ b/pom.xml @@ -68,8 +68,8 @@ - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots + central + https://central.sonatype.com/repository/maven-snapshots/ @@ -243,12 +243,14 @@ - org.sonatype.plugins - nexus-staging-maven-plugin + org.sonatype.central + central-publishing-maven-plugin + true - ossrh - https://s01.oss.sonatype.org/ - true + central + true + published + ardoco-core diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index 6dd0536b2..245508008 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.architecture; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; From 21c952358260fe14cbdfa6ff94207c2de419862d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 19 May 2025 23:46:58 +0200 Subject: [PATCH 053/115] Move documentation to docs folder --- docs/Home.md | 77 -------------- docs/Inconsistency-Detection.md | 12 --- docs/Intermediate-Artifacts.md | 128 ------------------------ docs/LiSSA.md | 27 ----- docs/Pipeline.md | 22 ---- docs/Quickstart.md | 110 -------------------- docs/Text-Preprocessing-Microservice.md | 19 ---- docs/Traceability-Link-Recovery.md | 32 ------ docs/_Footer.md | 1 - docs/_Sidebar.md | 15 --- 10 files changed, 443 deletions(-) delete mode 100644 docs/Home.md delete mode 100644 docs/Inconsistency-Detection.md delete mode 100644 docs/Intermediate-Artifacts.md delete mode 100644 docs/LiSSA.md delete mode 100644 docs/Pipeline.md delete mode 100644 docs/Quickstart.md delete mode 100644 docs/Text-Preprocessing-Microservice.md delete mode 100644 docs/Traceability-Link-Recovery.md delete mode 100644 docs/_Footer.md delete mode 100644 docs/_Sidebar.md diff --git a/docs/Home.md b/docs/Home.md deleted file mode 100644 index cd5ac064a..000000000 --- a/docs/Home.md +++ /dev/null @@ -1,77 +0,0 @@ -# ArDoCo - -

    - ArDoCo -

    - -ArDoCo (Architecture Documentation Consistency) is a framework to connect architecture documentation and models while -identifying missing or deviating elements (inconsistencies). An element can be any representable item of the model, like -a component or a relation. To do so, ArDoCo first creates trace links and then makes use of them and other information -to identify inconsistencies. - -You can find ArDoCo on the [website](https://ardoco.de) and [on GitHub](https://github.com/ArDoCo). - -Before contributing, please read the [Quickstart Guide](quickstart). - - - -To get to know the project, please read the following pages: - -* [Core Pipeline Definition](pipeline) -* [Intermediate Artifacts](intermediate-artifacts) -* [Text Preprocessing Microservice](Text-Preprocessing-Microservice) -* [Traceability Link Recovery (TLR)](traceability-link-recovery) -* [Inconsistency Detection (ID)](inconsistency-detection) -* [Linking Sketches and Software Architecture (LiSSA)](LiSSA) - -## Project Structure - -* [Core](https://github.com/ArDoCo/Core): Core framework with framework and API definitions -* Pipelines - * [TLR](https://github.com/ArDoCo/TLR): Traceability Link Recovery (TLR) Modules - * [StanfordCoreNLP-Provider-Service](https://github.com/ArDoCo/StanfordCoreNLP-Provider-Service): RESTful web service for text preprocessing - * [InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): Inconsistency Detection (ID) Modules - * [LiSSA](https://github.com/ArDoCo/LiSSA): Linking Sketches and Software Architecture Modules -* Testing and Evaluation - * [IntegrationTests](https://github.com/ArDoCo/IntegrationTests): Integration Tests - * [Benchmark](https://github.com/ArDoCo/Benchmark): Benchmarks - * [Evaluator](https://github.com/ArDoCo/Evaluator): Evaluation code that compares CSVs (e.g., output and gold standard) - * [SimpleTracelinkDiscovery](https://github.com/ArDoCo/SimpleTracelinkDiscovery): Baseline approach -* GUIs, CLIs, etc. - * [TraceView](https://github.com/ArDoCo/TraceView): WIP visualisation of the outputs for TLR and ID - * *outdated* [CLI](https://github.com/ArDoCo/CLI): Command Line Interface (*outdated*) -* [actions](https://github.com/ArDoCo/actions): Reusable GitHub Actions - -## System Requirements - -The project requires **JDK 21**. -Furthermore, we advise at least **4 GB of RAM**. - -## Benchmarks - -You can test ArDoCo using the projects provided in our [Benchmark repository](https://github.com/ArDoCo/Benchmark). - -## Related Publications - -* J. Keim, S. Corallo, D. Fuchß, T. Hey, T. Telge und A. Koziolek. "Recovering Trace Links Between Software Documentation And Code". 2024. In: Proceedings of 46th IEEE International Conference on Software Engineering (ICSE 2024). [doi:10.5445/IR/1000165692](https://doi.org/10.5445/IR/1000165692/post) - -* J. Keim, S. Corallo, D. Fuchß und A. Koziolek. "Detecting Inconsistencies in Software Architecture Documentation Using Traceability Link Recovery". 2023. In: IEEE 20th International Conference on Software Architecture (ICSA 2023). [doi:10.1109/ICSA56044.2023.00021](https://doi.org/10.1109/ICSA56044.2023.00021) - -* D. Fuchß, S. Corallo, J. Keim, J. Speit und A. Koziolek. "Establishing a Benchmark Dataset for Traceability Link Recovery between Software Architecture Documentation and Models". 2022. In: 2nd International Workshop on Mining Software Repositories for Software Architecture - Co-located with 16th European Conference on Software Architecture. - -* J. Keim, S. Schulz, D. Fuchß, C. Kocher, J. Speit, A. Koziolek. "Trace Link Recovery for Software Architecture Documentation". 2021. In: Software Architecture: 15th European Conference (ECSA 2021). [doi:10.1007/978-3-030-86044-8_7](https://doi.org/10.1007/978-3-030-86044-8_7) - -* J. Keim and A. Koziolek. "Towards Consistency Checking Between Software Architecture and Informal Documentation". 2019. In: IEEE 16th International Conference on Software Architecture Companion (ICSA-C). [doi:10.1109/ICSA-C.2019.00052](https://doi.org/10.1109/ICSA-C.2019.00052) - - -The initial version of ArDoCo is based on the master thesis [Linking Software Architecture Documentation and Models](https://publikationen.bibliothek.kit.edu/1000126194). - -## Contact - -This project is currently developed by researchers of the Karlsruhe Institute of Technology (KIT). - -You find us on our websites: - -* [Jan Keim](https://mcse.kastel.kit.edu/staff_Keim_Jan.php), -* [Sophie Corallo](https://mcse.kastel.kit.edu/staff_sophie_corallo.php), and -* [Dominik Fuchß](https://mcse.kastel.kit.edu/staff_dominik_fuchss.php) diff --git a/docs/Inconsistency-Detection.md b/docs/Inconsistency-Detection.md deleted file mode 100644 index ef8f23f23..000000000 --- a/docs/Inconsistency-Detection.md +++ /dev/null @@ -1,12 +0,0 @@ - -Currently, there are two kinds of inconsistencies that are supported by the approach: Missing Model Elements (MMEs) and Undocumented Model Elements (UMEs). - -Undocumented Model Elements (UMEs) are elements within the Software Architecture Model (SAM) that are not documented in the natural language Software Architecture Documentation (SAD). -Our heuristic looks for model elements that do not have any (or below a certain threshold, per default 1) trace links associated with them. -In the configuration options, you can fine tune the threshold as well as set up a regex-based whitelist. - -Missing Model Elements (MMEs) are architecture elements that are described within the SAD that cannot be traced to the SAM. -For this, we make use of the recommendations from the Recommendation Generator within the [Traceability Link Recovery (TLR)](traceability-link-recovery). -Each of these recommendations that are not linked with a model element are potential inconsistencies. -To further increase precision, we make use of filters. -For example, we use a filter to get rid of commonly used software (development) terminology that look similar to, e.g., components but rarely are model elements. diff --git a/docs/Intermediate-Artifacts.md b/docs/Intermediate-Artifacts.md deleted file mode 100644 index da69ec7f5..000000000 --- a/docs/Intermediate-Artifacts.md +++ /dev/null @@ -1,128 +0,0 @@ - -Currently, there are three kinds of intermediate artifacts. -First, the input text has an internal representation (cf. [edu/kit/kastel/mcse/ardoco/core/api/text/Text.java](https://github.com/ArDoCo/Core/blob/main/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java)) to cover all the annotations from the preprocessing. -Second, there is the intermediate representation of software architecture models (SAMs) that we cover [below](#software-architecture-models). -Third, we create a uniform representation for code that we also explain [below](#code). - -```mermaid -classDiagram - class ModelElement - class Model - class Entity - class CodeModel - class ArchitectureModel - - ModelElement <|-- Entity - ModelElement <|-- Model - Model <|-- CodeModel - Model <|-- ArchitectureModel - Model "0..1" o--"*" Entity: elements -``` - -## Software Architecture Models - -```mermaid -classDiagram - class Entity - class ArchitectureItem - class Component - class Interface - class Signature - - Entity <|-- ArchitectureItem - ArchitectureItem <|-- Component - ArchitectureItem <|-- Interface - ArchitectureItem <|-- Signature - - Interface o-- "*" Signature: signatures - Interface "*" <-- "*" Component: provided - Interface "*" <-- "*" Component: required - Component "*" <-- Component: subcomponents -``` - -In this software model, each class is categorized as an ArchitectureItem, which inherits properties from Entity, including a name and identifier. -There are three types of ArchitectureItems: Component, Interface, and Signature. - -A Component represents various architectural elements in different modeling languages. -For instance, it corresponds to a UML Component. -In the PCM context, it encompasses both BasicComponent and CompositeComponent. -BasicComponents do not contain sub-components, while CompositeComponents may have sub-components. - -Components can either require or provide Interfaces. -Provided Interfaces are implemented by the Component, while Required Interfaces specify the functionality required by a Component. - -An Interface contains multiple method Signatures. -Signatures are linked to Interfaces in a composite relationship, meaning each Signature is associated with an Interface. - - -## Code - -```mermaid -classDiagram - class Entity - class CodeItem - class Module - class Package - class CompilationUnit - class CodeAssembly - class ComputationalObject - class ControlElement - class Datatype - class ClassUnit - class InterfaceUnit - - Entity <|-- CodeItem - CodeItem <|-- ComputationalObject - CodeItem <|-- Module - CodeItem <|-- Datatype - ComputationalObject <|-- ControlElement - Module <|-- Package - Module <|-- CompilationUnit - Module <|-- CodeAssembly - Datatype <|-- ClassUnit - Datatype <|-- InterfaceUnit - - Module "0..1" o--> "*" CodeItem: codeElements - ClassUnit "0..1" o--> "*" CodeItem: codeElements - InterfaceUnit "0..1" o--> "*" CodeItem: codeElements - Datatype "*" <-- "*" Datatype: implementedTypes - Datatype "*" <-- "*" Datatype: extendedTypes -``` - -The intermediate model for code is based on the source code package within the [Knowledge Discover Model (KDM)](https://www.omg.org/spec/KDM/1.3/PDF). - -The different classes in the code model inherit from CodeItem, which itself is a specialized Entity. -Thus, each class has a name and identifier. - -There are three kinds of source code elements: Module, Datatype, and ComputationalObject. - -Modules are typically logical components of the system with a certain level of abstraction. -A Module can contain CodeItems, and there are three differentiations of Modules: CompilationUnit, Package, and CodeAssembly. - -A CompilationUnit represents a source file where code is stored. -It includes a relative path to the file's location on disk and its programming language. -The CompilationUnit is partly based on the InventoryModel from KDM. - -A Package is a logical collection of source code elements (i.e., CodeItems). -Packages can also contain sub-Packages, similar to the structure commonly found in Java. - -A CodeAssembly consists of source code artifacts linked together to make them runnable. -For example, source code files together with their headers are grouped in a CodeAssembly. - -There are two kinds of Datatypes: CodeUnit and InterfaceUnit. -A CodeUnit is akin to a class in Java and can contain other CodeItems like methods and inner classes. -Similarly, an InterfaceUnit can also contain code elements like methods. - -The relationships implementedTypes and extendedTypes from the KDM model are present in the intermediate model. -A Datatype can implement an arbitrary number of extendedTypes relations, representing inheritance in object-oriented programming languages. - -The construction around extendedTypes and implementedTypes also enables interfaces to extend other interfaces, akin to Java. -Interfaces can also extend classes, a feature present in some programming languages like TypeScript. - -The KDM includes several primitive datatypes like boolean, which are not realized within this model as they are not currently needed. -If future work extends the approaches with a thorough comparison of datatypes, then the intermediate model may need further sub-classing of the KDM. - -Currently, there is only one type of ComputationalObject: the ControlElement. -The ControlElement represents callable parts with specific behaviors, such as functions, procedures, or methods. -Unlike the KDM, this work does not make a further distinction between CallableUnits and MethodUnits. -Additionally, it does not utilize parameters, return types, or similar elements of the KDM and therefore does not model them. diff --git a/docs/LiSSA.md b/docs/LiSSA.md deleted file mode 100644 index daf7e7347..000000000 --- a/docs/LiSSA.md +++ /dev/null @@ -1,27 +0,0 @@ -# Linking Sketches and Software Architecture (LiSSA) - -The LiSSA approach aims to connect sketches and informal diagrams (such as class diagrams, component diagrams, ...) with -formal models like component models. - -The following diagram shows the pipeline that is planned for the LiSSA approach. - -```mermaid -stateDiagram-v2 - DiagramDetection - TextPreprocessing - ArchitectureModel - TextExtraction - EntityRecognition - RecommendationGeneration - ConnectionGeneration - InconsistencyDetection - - DiagramDetection --> RecommendationGeneration - TextPreprocessing --> TextExtraction - ArchitectureModel --> RecommendationGeneration - TextExtraction --> EntityRecognition - DiagramDetection --> EntityRecognition - EntityRecognition --> RecommendationGeneration - RecommendationGeneration --> ConnectionGeneration - ConnectionGeneration --> InconsistencyDetection -``` \ No newline at end of file diff --git a/docs/Pipeline.md b/docs/Pipeline.md deleted file mode 100644 index ee5900b99..000000000 --- a/docs/Pipeline.md +++ /dev/null @@ -1,22 +0,0 @@ - -```mermaid -classDiagram - class AbstractPipeline - class Pipeline - class PipelineStep - - Pipeline--> "*" AbstractPipeline - Pipeline..|>AbstractPipeline - PipelineStep..|>AbstractPipeline -``` - -For the pipeline definition, we use a composite to allow us to have a multi-level pipeline. -As such, a pipeline consists of an arbitrary number of either *PipelineStep*s or further *Pipeline*s. - -In our approach, we use three levels for our pipeline: -On the first level, the overall pipeline defines multiple *stages*, e.g., text preprocessing or element connection. -Each stage is another pipeline that then defines *agents* that have the purpose of initiating the processing and of collecting the information of the various heuristics. -Agents then use *Informants* as concrete PipelineSteps to execute the processing and heuristics. - -A pipeline step (i.e., an Informant) stores results within a repository that can be universally accessed by all pipeline steps, similarly to a blackboard in the blackboard pattern. -This way, each pipeline step and, thus, each heuristic can access the results of previous steps and provide its results for others. diff --git a/docs/Quickstart.md b/docs/Quickstart.md deleted file mode 100644 index 78a4a20aa..000000000 --- a/docs/Quickstart.md +++ /dev/null @@ -1,110 +0,0 @@ - -The ArDoCo is a maven project and can be embedded by using its specs (from the [pom](https://github.com/ArDoCo/Core/blob/main/pom.xml)). - -Please acknowledge the [code of conduct](https://github.com/ArDoCo/Core/blob/main/CODE_OF_CONDUCT.md). - -## Forking the project & submitting pull requests - -This project uses Sonarcloud to check code quality. There are Github Actions that automatically verify the build and -generate a Sonarcloud-report. Additionally, pull requests are automatically checked. If the build fails or the Quality -Gate is not passed, it is marked in the Pull Request and you need to fix the PR until it passes. Otherwise, the PR won’t -get merged. - -If you fork the project, make sure to create a Sonarcloud token to make sure everything works for you and the Sonarcloud -check does not fail. You need to enable Sonarcloud for you and add a Sonarcloud token to the repository of the fork as -secret. - -Follow the following steps to do so: - -* Log into SonarCloud and click on your profile and then go to My Account and then Security. Alternatively go directly - to account/security. -* Generate your access token for SonarCloud and copy it. The access token will be provided to the build pipeline as a - secret environment variable. -* Go to your repository settings in GitHub, then to Secrets -* Add a new secret with name SONAR_TOKEN and the value of the just generated access token. - -### Formatter - -Please use the provided [formatter](https://github.com/ArDoCo/Core/blob/main/formatter.xml) when contributing. - -Additionally, please make use of the spotless-plugin for maven to format your code. You can run it via `mvn spotless:apply` ([more info about spotless](https://github.com/diffplug/spotless/tree/main/plugin-maven)). - - -### Save Actions (Eclipse) - -Go to your Eclipse Workspace folder and open the -file `.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs`. -There, exchange all the `sp_cleanup.` properties to the following: - -``` -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_missing_override_annotations_interface_methods=true -sp_cleanup.add_serial_version_id=false -sp_cleanup.always_use_blocks=true -sp_cleanup.always_use_parentheses_in_expressions=true -sp_cleanup.always_use_this_for_non_static_field_access=false -sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_functional_interfaces=true -sp_cleanup.convert_to_enhanced_for_loop=true -sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false -sp_cleanup.correct_indentation=true -sp_cleanup.format_source_code=true -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.insert_inferred_type_arguments=false -sp_cleanup.lazy_logical_operator=false -sp_cleanup.make_local_variable_final=true -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false -sp_cleanup.merge_conditional_blocks=false -sp_cleanup.never_use_blocks=false -sp_cleanup.never_use_parentheses_in_expressions=false -sp_cleanup.number_suffix=true -sp_cleanup.on_save_use_additional_actions=true -sp_cleanup.organize_imports=true -sp_cleanup.push_down_negation=false -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_redundant_modifiers=true -sp_cleanup.remove_redundant_semicolons=true -sp_cleanup.remove_redundant_type_arguments=true -sp_cleanup.remove_trailing_whitespaces=true -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_array_creation=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=true -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -sp_cleanup.remove_unused_private_methods=true -sp_cleanup.remove_unused_private_types=true -sp_cleanup.simplify_lambda_expression_and_method_ref=false -sp_cleanup.sort_members=false -sp_cleanup.sort_members_all=false -sp_cleanup.use_anonymous_class_creation=false -sp_cleanup.use_autoboxing=true -sp_cleanup.use_blocks=true -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_directly_map_method=false -sp_cleanup.use_lambda=true -sp_cleanup.use_parentheses_in_expressions=false -sp_cleanup.use_this_for_non_static_field_access=true -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=true -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true -sp_cleanup.use_unboxing=true -sp_cleanup.use_var=false -``` \ No newline at end of file diff --git a/docs/Text-Preprocessing-Microservice.md b/docs/Text-Preprocessing-Microservice.md deleted file mode 100644 index 5d5466828..000000000 --- a/docs/Text-Preprocessing-Microservice.md +++ /dev/null @@ -1,19 +0,0 @@ - -Text preprocessing works locally, but there is also the option to host a **microservice** for this. -The benefit is that the models do not need to be loaded each time, saving some runtime (and local memory). - -The microservice can be found at [ArDoCo/StanfordCoreNLP-Provider-Service](https://github.com/ArDoCo/StanfordCoreNLP-Provider-Service/). - -The microservice is secured with credentials and the usage of the microservice needs to be activated and the URL of the microservice configured. -These settings can be provided to the execution via environment variables. -To do so, set the following variables: - -```env -NLP_PROVIDER_SOURCE=microservice -MICROSERVICE_URL=[microservice_url] -SCNLP_SERVICE_USER=[your_username] -SCNLP_SERVICE_PASSWORD=[your_password] -``` - -The first variable `NLP_PROVIDER_SOURCE=microservice` activates the microservice usage. -The next three variables configure the connection, and you need to provide the configuration for your deployed microservice. \ No newline at end of file diff --git a/docs/Traceability-Link-Recovery.md b/docs/Traceability-Link-Recovery.md deleted file mode 100644 index fddf6de94..000000000 --- a/docs/Traceability-Link-Recovery.md +++ /dev/null @@ -1,32 +0,0 @@ - -There are currently three kinds of TLR approaches that we describe in their corresponding sections: - -* [Software Architecture Documentation (SAD) to Model (SAM)](#sad-sam) -* [Software Architecture Model (SAM) to Code](#sam-code) -* [SAD to Code via SAM](#sad-sam-code) - - -## SAD-SAM - -For Traceability Link Recovery between Software Architecture Documentations (SADs) and Software Architecture Models (SAMs), we use a pipeline approach with different major processing steps: - -1. Model Extraction: Processes the architecture model. -2. Text Preprocessing: Processes the text initially, including basic text processing like tokenization, part-of-speech tagging, dependency parsing. -3. Text Extraction: Identification of potential parts of interest in the text. -4. Recommendation Generator: Further processing of interesting parts of text to generate recommendations for parts that should/could be model elements. -5. Connection Generator: Mapping of recommended parts to model parts. - -## SAM-Code - -The project ARCOTL (Architecture-Code-Trace Links) aims to automatically generate trace links between Code and a Software Architecture Model (SAM). -It supports multiple programming languages for the code (Java and Shell) and metamodels for the architecture model (PCM and UML). -To this end the project introduces intermediate models for the architecture (AMTL - Architecture Model for Trace Links) and Code (CMTL - Code Model for Trace -Links). -Trace links are created between instances of these metamodels. -The trace links each have exactly one architecture endpoint and one code endpoint. This is specified by the TLM (Trace Link Model). -The AMTL- and CMTL-instances get extracted from the architecture model and from the code. - -## SAD-SAM-Code - -To recover trace links between SADs and code, we combine the traceability link recovery between [SAD-SAM](#sad-sam) and [SAM-Code](#sam-code). -Both approaches are executed, and their resulting trace links combined via `TransitiveTraceLinks` that match the parts of the documentation to the parts of code using the model. diff --git a/docs/_Footer.md b/docs/_Footer.md deleted file mode 100644 index 41b176f5a..000000000 --- a/docs/_Footer.md +++ /dev/null @@ -1 +0,0 @@ -[ArDoCo](https://ardoco.de): **Ar**chitecture **Do**cumentation **Co**nsistency - Providing TLR and Inconsistency Detection between formal models and informal documentation diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md deleted file mode 100644 index f3f660e84..000000000 --- a/docs/_Sidebar.md +++ /dev/null @@ -1,15 +0,0 @@ -# Table of Contents - -1. [Home](ardoco) -2. [Quickstart](quickstart) -3. [Pipeline](pipeline) -4. [Intermediate Artifacts](intermediate-artifacts) - 1. [SAM](intermediate-artifacts#software-architecture-models) - 1. [Code](intermediate-artifacts#code) -5. [Text Preprocessing Microservice](Text-Preprocessing-Microservice) -6. [Traceability Link Recovery (TLR)](traceability-link-recovery) - 1. [SAD-SAM](traceability-link-recovery#sad-sam) - 1. [SAM-Code](traceability-link-recovery#sam-code) - 1. [SAD-SAM-Code](traceability-link-recovery#sad-sam-code) -7. [Inconsistency Detection (ID)](Inconsistency-Detection) -8. [LiSSA](lissa) \ No newline at end of file From 5d6cda024f33870080abab982e4a06c091f4c655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 20 May 2025 00:18:10 +0200 Subject: [PATCH 054/115] Spotless --- .../mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java | 2 +- .../mcse/ardoco/core/api/models/arcotl/code/CodeItem.java | 2 +- .../ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java index c64daccd5..2cc1d4bee 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; import java.util.SortedSet; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java index 54f16a06a..107b2247f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java index 23d31c797..352b1970c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguage.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; /** From 4ed04644b3442c18d566d825b012ddf2f19add54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 20 May 2025 00:21:12 +0200 Subject: [PATCH 055/115] Add getter for language --- .../mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java index 2cc1d4bee..a66b0487b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -26,4 +26,8 @@ public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSe super(codeItemRepository, name, content); this.language = language; } + + public String getLanguage() { + return language; + } } From 53f9580690fa63afa260bb65951569bdbc40dbb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 20 May 2025 00:24:15 +0200 Subject: [PATCH 056/115] Sonarcloud --- .../textproviderjson/converter/ObjectToDtoConverter.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java index e037c2d71..76b3e3fea 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java @@ -1,11 +1,10 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import org.eclipse.collections.api.list.ImmutableList; @@ -108,7 +107,7 @@ private String convertToConstituencyTrees(Sentence sentence) { } private String convertToSubtree(Phrase phrase) { - List words = phrase.getContainedWords().toList().stream().filter(x -> x.getPhrase().equals(phrase)).collect(Collectors.toList()); + List words = phrase.getContainedWords().toList().stream().filter(x -> x.getPhrase().equals(phrase)).toList(); StringBuilder constituencyTree = new StringBuilder().append(TREE_OPEN_BRACKET); constituencyTree.append(phrase.getPhraseType().toString()); List subphrases = new ArrayList<>(ConverterUtil.getChildPhrases(phrase)); From 56a8f680c85c80136b1df2913e6dac3d83b63224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 20 May 2025 00:40:46 +0200 Subject: [PATCH 057/115] Fix tests (1) --- .../core/textproviderjson/converter/ObjectToDtoConverter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java index 76b3e3fea..c4772f0de 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import org.eclipse.collections.api.list.ImmutableList; @@ -107,7 +108,7 @@ private String convertToConstituencyTrees(Sentence sentence) { } private String convertToSubtree(Phrase phrase) { - List words = phrase.getContainedWords().toList().stream().filter(x -> x.getPhrase().equals(phrase)).toList(); + List words = phrase.getContainedWords().toList().stream().filter(x -> x.getPhrase().equals(phrase)).collect(Collectors.toList()); StringBuilder constituencyTree = new StringBuilder().append(TREE_OPEN_BRACKET); constituencyTree.append(phrase.getPhraseType().toString()); List subphrases = new ArrayList<>(ConverterUtil.getChildPhrases(phrase)); From 2868959525da66808d30266e6cfb8fe29a02937b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 21 May 2025 12:36:45 +0200 Subject: [PATCH 058/115] Fix tests --- .../core/tests/architecture/DeterministicArDoCoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index d98e76c85..5c86c85a1 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -99,7 +99,8 @@ public boolean test(JavaClass javaClass) { @ArchTest public static final ArchRule forbidEqualsAndHashCodeInCertainClasses = noClasses().that() .areAnnotatedWith(NoHashCodeEquals.class) - .should(implementEqualsOrHashCode()); + .should(implementEqualsOrHashCode()) + .allowEmptyShould(true); private static ArchCondition implementEqualsOrHashCode() { return new ArchCondition<>("implement equals or hashCode") { From e2f5c1545275381054e6f81806704f155e25fbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 21 May 2025 12:43:24 +0200 Subject: [PATCH 059/115] Fix tests (2) --- .../ardoco/core/tests/architecture/DeterministicArDoCoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java index 5c86c85a1..14b2e348a 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/DeterministicArDoCoTest.java @@ -86,7 +86,7 @@ public boolean test(JavaClass javaClass) { @ArchTest public static final ArchRule forbidHashMapAndHashSetInFavorOfLinkedVersions = noClasses().that() - .resideOutsideOfPackages("..tests..") + .resideOutsideOfPackages("..tests..", "..magika..") .and() .doNotHaveFullyQualifiedName(DeterministicArDoCoTest.class.getName()) .should() From 90e6eba198cb3fb5f59c09fdbafb66693bf36ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 27 May 2025 17:01:58 +0200 Subject: [PATCH 060/115] Update documentation --- README.md | 3 +- docs/Home.md | 4 +- docs/LiSSA.md | 153 ++++++++++++++++++++++++++++++++++++++--------- docs/_Sidebar.md | 2 +- 4 files changed, 130 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 90b90a5a5..5cbcb3976 100644 --- a/README.md +++ b/README.md @@ -51,5 +51,4 @@ For snapshot releases, make sure to add the following repository ## Relevant repositories The following is an excerpt of repositories that use this framework and implement the different approaches and pipelines of ArDoCo: * [ArDoCo/TLR](https://github.com/ArDoCo/TLR): implementing different traceability link recovery approaches -* [ArDoCo/InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): implementing inconsistency detection approaches -* [ArDoCo/LiSSA](https://github.com/ArDoCo/LiSSA): implementing processing of sketches and diagrams for, e.g., TLR \ No newline at end of file +* [ArDoCo/InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): implementing inconsistency detection approaches \ No newline at end of file diff --git a/docs/Home.md b/docs/Home.md index cd5ac064a..5189f724b 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -22,7 +22,7 @@ To get to know the project, please read the following pages: * [Text Preprocessing Microservice](Text-Preprocessing-Microservice) * [Traceability Link Recovery (TLR)](traceability-link-recovery) * [Inconsistency Detection (ID)](inconsistency-detection) -* [Linking Sketches and Software Architecture (LiSSA)](LiSSA) +* [LiSSA Retrieval-Augmented TLR](LiSSA) ## Project Structure @@ -31,7 +31,7 @@ To get to know the project, please read the following pages: * [TLR](https://github.com/ArDoCo/TLR): Traceability Link Recovery (TLR) Modules * [StanfordCoreNLP-Provider-Service](https://github.com/ArDoCo/StanfordCoreNLP-Provider-Service): RESTful web service for text preprocessing * [InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): Inconsistency Detection (ID) Modules - * [LiSSA](https://github.com/ArDoCo/LiSSA): Linking Sketches and Software Architecture Modules + * [LiSSA-RATLR](https://github.com/ArDoCo/LiSSA-RATLR): LiSSA - A Framework for Generic Traceability Link Recovery * Testing and Evaluation * [IntegrationTests](https://github.com/ArDoCo/IntegrationTests): Integration Tests * [Benchmark](https://github.com/ArDoCo/Benchmark): Benchmarks diff --git a/docs/LiSSA.md b/docs/LiSSA.md index daf7e7347..9cd29c8ef 100644 --- a/docs/LiSSA.md +++ b/docs/LiSSA.md @@ -1,27 +1,126 @@ -# Linking Sketches and Software Architecture (LiSSA) - -The LiSSA approach aims to connect sketches and informal diagrams (such as class diagrams, component diagrams, ...) with -formal models like component models. - -The following diagram shows the pipeline that is planned for the LiSSA approach. - -```mermaid -stateDiagram-v2 - DiagramDetection - TextPreprocessing - ArchitectureModel - TextExtraction - EntityRecognition - RecommendationGeneration - ConnectionGeneration - InconsistencyDetection - - DiagramDetection --> RecommendationGeneration - TextPreprocessing --> TextExtraction - ArchitectureModel --> RecommendationGeneration - TextExtraction --> EntityRecognition - DiagramDetection --> EntityRecognition - EntityRecognition --> RecommendationGeneration - RecommendationGeneration --> ConnectionGeneration - ConnectionGeneration --> InconsistencyDetection -``` \ No newline at end of file +# LiSSA: A Framework for Generic Traceability Link Recovery + +Welcome to the LiSSA project! This framework leverages Large Language Models (LLMs) enhanced through Retrieval-Augmented Generation (RAG) to establish traceability links across various software artifacts. + +> [!TIP] +> If you have any questions, don't hesitate to [contact us](https://ardoco.de). + +## Overview + +In software development and maintenance, numerous artifacts such as requirements, code, and architecture documentation are produced. Understanding the relationships between these artifacts is crucial for tasks like impact analysis, consistency checking, and maintenance. LiSSA aims to provide a generic solution for Traceability Link Recovery (TLR) by utilizing LLMs in combination with RAG techniques. + +The concept and evaluation of LiSSA are detailed in our paper: + +> Fuchß, D., Hey, T., Keim, J., Liu, H., Ewald, N., Thirolf, T., & Koziolek, A. (2025). LiSSA: Toward Generic Traceability Link Recovery through Retrieval-Augmented Generation. In Proceedings of the IEEE/ACM 47th International Conference on Software Engineering, Ottawa, Canada. + +You can access the paper [here](https://ardoco.de/c/icse25). + +## Features + +- **Generic Applicability**: LiSSA is designed to recover traceability links across various types of software artifacts, including: + - [Requirements to code](https://ardoco.de/c/icse25) + - [Documentation to code](https://ardoco.de/c/icse25) + - [Architecture documentation to architecture models](https://ardoco.de/c/icse25) + - [Requirements to requirements](https://ardoco.de/c/refsq25) + +- **Retrieval-Augmented Generation**: By combining LLMs with RAG, LiSSA enhances the accuracy and relevance of the recovered traceability links. + +## Documentation + +The documentation is organized into several sections: +- [Architecture](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/architecture.md): Detailed information about the project's architecture and components +- [Configuration](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/configuration.md): Guide for configuring LiSSA +- [CLI Usage](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/cli.md): Information about using the command line interface +- [Caching](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/caching.md): Information about the caching system and Redis setup +- [Development](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/development.md): Development setup and contribution guidelines + +## Getting Started + +To get started with LiSSA, follow these steps: + +1. **Clone the Repository**: + ```bash + git clone https://github.com/ArDoCo/LiSSA-RATLR + cd LiSSA-RATLR + ``` + +2. **Install Dependencies**: + Ensure you have Java JDK 21 or later installed. Then, build the project using Maven: + ```bash + mvn clean package + ``` + +3. **Run LiSSA**: + Execute the main application: + ```bash + java -jar target/ratlr-*-jar-with-dependencies.jar eval -c config.json + ``` + +### Configuration + +1. Create a configuration you want to use for evaluation / execution. E.g., you can find configurations [here](https://github.com/ArDoCo/ReplicationPackage-ICSE25_LiSSA-Toward-Generic-Traceability-Link-Recovery-through-RAG/tree/main/LiSSA-RATLR-V2/lissa/configs/req2code-significance). You can also provide a directory containing multiple configurations. +2. Configure your OpenAI API key and organization in a `.env` file. You can use the provided template file as a template [env-template](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/env-template). +3. LiSSA caches requests in order to be reproducible. The cache is located in the cache folder that can be specified in the configuration. +4. Run `java -jar target/ratlr-*-jar-with-dependencies.jar eval -c configs/....` to run the evaluation. You can provide a JSON or a directory containing JSON configurations. +5. The results will be printed to the console and saved to a file in the current directory. The name is also printed to the console. + +### Results of Evaluation / Execution + +The results will be stored as markdown files. A result file can look like below. It contains the configuration and the results of the evaluation. Additionally, the LiSSA generate CSV files that contain the traceability links as pairs of identifiers. + +
    +Example Result + +```json +## Configuration +{ + "cache_dir" : "./cache-r2c/dronology-dd--102959883", + "gold_standard_configuration" : { + "hasHeader" : false, + "path" : "./datasets/req2code/dronology-dd/answer.csv" + }, + "... other configuration parameters ..." +} + +## Stats +* # TraceLinks (GS): 740 +* # Source Artifacts: 211 +* # Target Artifacts: 423 +## Results +* True Positives: 283 +* False Positives: 1286 +* False Negatives: 457 +* Precision: 0.18036966220522627 +* Recall: 0.3824324324324324 +* F1: 0.24512776093546992 +``` +
    + +## Evaluation + +LiSSA has been empirically evaluated on four different TLR tasks: + +- Requirements to code +- Documentation to code +- Architecture documentation to architecture models +- Requirements to requirements + +The results indicate that the RAG-based approach can significantly outperform state-of-the-art methods in code-related tasks. However, further research is needed to enhance its performance for broader applicability. + +## Contributing + +We welcome contributions from the community! If you're interested in contributing to LiSSA, please read our [Code of Conduct](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/CODE_OF_CONDUCT.md) and [Development Guide](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/development.md) to get started. + +## License + +This project is licensed under the MIT License. See the [LICENSE.md](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/LICENSE.md) file for details. + +## Acknowledgments + +LiSSA is developed by researchers from the Modelling for Continuous Software Engineering (MCSE) group of KASTEL - Institute of Information Security and Dependability at the Karlsruhe Institute of Technology (KIT). + +For more information about the project and related research, visit our [website](https://ardoco.de/). + +--- + +*Note: This README provides a brief overview of the LiSSA project. For comprehensive details, please refer to our [documentation](https://github.com/ArDoCo/LiSSA-RATLR/tree/main/docs).* diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index f3f660e84..f2c809422 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -12,4 +12,4 @@ 1. [SAM-Code](traceability-link-recovery#sam-code) 1. [SAD-SAM-Code](traceability-link-recovery#sad-sam-code) 7. [Inconsistency Detection (ID)](Inconsistency-Detection) -8. [LiSSA](lissa) \ No newline at end of file +8. [LiSSA-RATLR](lissa) \ No newline at end of file From ca9a206aa9db493b28c4be99f7180457865bffc9 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Mon, 16 Jun 2025 08:25:21 +0200 Subject: [PATCH 061/115] possible to request metamodel at start? # Conflicts: # tlr/stages-tlr/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/tlr/models/connectors/generators/code/CodeExtractor.java # tlr/stages-tlr/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/tlr/models/connectors/generators/code/java/JavaExtractor.java --- .../models/arcotl/CoarseGrainedCodeModel.java | 19 +++---- .../core/api/models/arcotl/CodeModel.java | 52 +++---------------- .../models/arcotl/FineGrainedCodeModel.java | 51 ++++++++++++++++++ .../ardoco/core/api/models/arcotl/Model.java | 2 +- 4 files changed, 70 insertions(+), 54 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java index 40735073c..ba0d11da9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -2,29 +2,30 @@ import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; -public final class CoarseGrainedCodeModel extends Model { +public final class CoarseGrainedCodeModel extends CodeModel { - private final CodeModel codeModel; + private final FineGrainedCodeModel codeModel; - public CoarseGrainedCodeModel(CodeModel codeModel) { - this.codeModel = Objects.requireNonNull(codeModel); + public CoarseGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { + super(codeItemRepository, content); + this.codeModel = new FineGrainedCodeModel(codeItemRepository, content); } @Override - public List getContent() { + public List getContent() { return this.getEndpoints(); } @Override - public List getEndpoints() { - List entities = new ArrayList<>(); + public List getEndpoints() { + List entities = new ArrayList<>(); codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); entities.addAll(codeModel.getAllPackages()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index dae17bceb..9459748f5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -6,15 +6,12 @@ import java.util.List; import java.util.Objects; import java.util.SortedSet; -import java.util.TreeSet; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; @@ -22,29 +19,23 @@ /** * A code model that is a CMTL instance. */ -public final class CodeModel extends Model { +public abstract sealed class CodeModel extends Model permits CoarseGrainedCodeModel, FineGrainedCodeModel { @JsonProperty - private CodeItemRepository codeItemRepository; + protected CodeItemRepository codeItemRepository; @JsonProperty - private List content; + protected List content; @JsonIgnore private boolean initialized; - @SuppressWarnings("unused") - private CodeModel() { - // Jackson - this.initialized = false; - } - /** * Creates a new code model that is a CMTL instance. The model has the specified code items as content. * * @param content the content of the code model */ - public CodeModel(CodeItemRepository codeItemRepository, SortedSet content) { + protected CodeModel(CodeItemRepository codeItemRepository, SortedSet content) { this.initialized = true; this.codeItemRepository = codeItemRepository; this.content = new ArrayList<>(); @@ -53,24 +44,6 @@ public CodeModel(CodeItemRepository codeItemRepository, SortedSet getTypeIdentifiers() { - SortedSet identifiers = new TreeSet<>(); - - for (var codeItem : this.getContent()) { - var type = codeItem.getType(); - if (type.isPresent()) { - identifiers.add(type.get()); - } - } - return identifiers; - } - @JsonGetter("content") private List getContentIds() { this.initialize(); @@ -78,19 +51,10 @@ private List getContentIds() { } @Override - public List getContent() { - this.initialize(); - return this.codeItemRepository.getCodeItemsFromIds(this.content); - } + public abstract List getContent(); @Override - public List getEndpoints() { - - List entities = new ArrayList<>(); - this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); - - return entities; - } + public abstract List getEndpoints(); /** * Returns all code packages directly or indirectly owned by this code model. @@ -100,7 +64,7 @@ public List getEndpoints() { public List getAllPackages() { List codePackages = new ArrayList<>(); var lContent = this.getContent(); - for (CodeItem c : lContent) { + for (var c : lContent) { var allPackages = c.getAllPackages(); for (CodePackage cp : allPackages) { if (!codePackages.contains(cp)) { @@ -112,7 +76,7 @@ public List getAllPackages() { return codePackages; } - private synchronized void initialize() { + protected synchronized void initialize() { if (this.initialized) { return; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java new file mode 100644 index 000000000..f7b8a5d59 --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java @@ -0,0 +1,51 @@ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; + +import java.util.ArrayList; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; + +public final class FineGrainedCodeModel extends CodeModel { + + public FineGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { + super(codeItemRepository, content); + } + + @Override + public List getEndpoints() { + + List entities = new ArrayList<>(); + this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); + + return entities; + } + + @Override + public List getContent() { + this.initialize(); + return this.codeItemRepository.getCodeItemsFromIds(this.content); + } + + @Override + public Metamodel getMetamodel() { + return Metamodel.CODE; + } + + @Override + public SortedSet getTypeIdentifiers() { + SortedSet identifiers = new TreeSet<>(); + + for (var codeItem : this.getContent()) { + var type = codeItem.getType(); + if (type.isPresent()) { + identifiers.add(type.get()); + } + } + return identifiers; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 0ec549dd9..6f0dae52d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -8,7 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; -public abstract sealed class Model permits ArchitectureModel, ComponentModel, CoarseGrainedCodeModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, ComponentModel, CodeModel { private final String id = IdentifierProvider.createId(); From 4c9adf2a0d71e092d1f9ed973699db3d4389cd80 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Wed, 18 Jun 2025 09:15:42 +0200 Subject: [PATCH 062/115] repair build, addCodeModelDTO --- .../ardoco/core/api/models/CodeModelType.java | 11 ---------- ...tectureModelType.java => ModelFormat.java} | 6 +----- .../ardoco/core/api/models/ModelType.java | 6 ------ .../models/arcotl/CoarseGrainedCodeModel.java | 7 ++++++- .../core/api/models/arcotl/CodeModel.java | 20 ++++++++++--------- .../core/api/models/arcotl/CodeModelDTO.java | 16 +++++++++++++++ .../models/arcotl/FineGrainedCodeModel.java | 4 ++++ .../CodeTraceabilityState.java | 14 ++++++------- .../codetraceability/ModelCodeTraceLink.java | 12 +++++++++++ .../core/common/util/TraceLinkUtilities.java | 16 +++++++-------- .../ardoco/core/api/output/ArDoCoResult.java | 6 +++--- 11 files changed, 68 insertions(+), 50 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/{ArchitectureModelType.java => ModelFormat.java} (70%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java deleted file mode 100644 index 3521e2fc5..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelType.java +++ /dev/null @@ -1,11 +0,0 @@ -/* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; - -public enum CodeModelType implements ModelType { - CODE_MODEL; - - @Override - public Metamodel getMetamodel() { - return Metamodel.CODE; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java similarity index 70% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 9bb5cb55c..69aee0e7f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelType.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -4,7 +4,7 @@ /** * Enum for the different types of supported architecture (meta-) models */ -public enum ArchitectureModelType implements ModelType { +public enum ArchitectureModelFormat { /** * Palladio Component Model */ @@ -18,8 +18,4 @@ public enum ArchitectureModelType implements ModelType { */ RAW; - @Override - public Metamodel getMetamodel() { - return Metamodel.ARCHITECTURE; - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java deleted file mode 100644 index e36853e2b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelType.java +++ /dev/null @@ -1,6 +0,0 @@ -/* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; - -public interface ModelType { - Metamodel getMetamodel(); -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java index ba0d11da9..41f5df846 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -13,6 +13,11 @@ public final class CoarseGrainedCodeModel extends CodeModel { private final FineGrainedCodeModel codeModel; + public CoarseGrainedCodeModel(CodeModelDTO codeModelDTO) { + super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); + this.codeModel = new FineGrainedCodeModel(codeModelDTO); + } + public CoarseGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); this.codeModel = new FineGrainedCodeModel(codeItemRepository, content); @@ -24,7 +29,7 @@ public List getContent() { } @Override - public List getEndpoints() { + public List getEndpoints() { List entities = new ArrayList<>(); codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 9459748f5..3d7496a2f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -7,10 +7,6 @@ import java.util.Objects; import java.util.SortedSet; -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; - import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; @@ -21,15 +17,18 @@ */ public abstract sealed class CodeModel extends Model permits CoarseGrainedCodeModel, FineGrainedCodeModel { - @JsonProperty protected CodeItemRepository codeItemRepository; - @JsonProperty protected List content; - @JsonIgnore private boolean initialized; + protected CodeModel(CodeItemRepository codeItemRepository, List content) { + this.initialized = true; + this.codeItemRepository = codeItemRepository; + this.content = new ArrayList<>(content); + } + /** * Creates a new code model that is a CMTL instance. The model has the specified code items as content. * @@ -44,7 +43,10 @@ protected CodeModel(CodeItemRepository codeItemRepository, SortedSet getContentIds() { this.initialize(); return this.content; @@ -54,7 +56,7 @@ private List getContentIds() { public abstract List getContent(); @Override - public abstract List getEndpoints(); + public abstract List getEndpoints(); /** * Returns all code packages directly or indirectly owned by this code model. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java new file mode 100644 index 000000000..8f80008fd --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java @@ -0,0 +1,16 @@ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; + +public record CodeModelDTO(@JsonProperty CodeItemRepository codeItemRepository, @JsonProperty List content) { + + @Override + public CodeItemRepository codeItemRepository() { + codeItemRepository.init(); + return codeItemRepository; + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java index f7b8a5d59..e60ddb831 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java @@ -12,6 +12,10 @@ public final class FineGrainedCodeModel extends CodeModel { + public FineGrainedCodeModel(CodeModelDTO codeModelDTO) { + super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); + } + public FineGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index 3243e82df..fc3a66d59 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -6,7 +6,7 @@ import org.eclipse.collections.api.set.ImmutableSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SamCodeTraceLink; @@ -25,7 +25,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLink the trace link to add * @return whether the operation was successful */ - boolean addSamCodeTraceLink(TraceLink traceLink); + boolean addSamCodeTraceLink(TraceLink traceLink); /** * Add a collection of {@link SamCodeTraceLink SamCodeTraceLinks} to this state. @@ -33,14 +33,14 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSamCodeTraceLinks(Collection> traceLinks); + boolean addSamCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link SamCodeTraceLink SamCodeTraceLinks}. * * @return set of stored {@link SamCodeTraceLink SamCodeTraceLinks} */ - ImmutableSet> getSamCodeTraceLinks(); + ImmutableSet> getSamCodeTraceLinks(); /** * Add a {@link TransitiveTraceLink} to this state. @@ -48,7 +48,7 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLink the trace link to add * @return whether the operation was successful */ - boolean addSadCodeTraceLink(TraceLink traceLink); + boolean addSadCodeTraceLink(TraceLink traceLink); /** * Add a collection of {@link SadCodeTraceLink SadCodeTraceLinks} to this state. @@ -56,12 +56,12 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSadCodeTraceLinks(Collection> traceLinks); + boolean addSadCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link TransitiveTraceLink TransitiveTraceLinks}. * * @return set of stored {@link TransitiveTraceLink TransitiveTraceLinks} */ - ImmutableSet> getSadCodeTraceLinks(); + ImmutableSet> getSadCodeTraceLinks(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java new file mode 100644 index 000000000..41fd3c2ff --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java @@ -0,0 +1,12 @@ +package edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability; + +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; + +public class ModelCodeTraceLink extends TraceLink { + + public ModelCodeTraceLink(ArchitectureItem firstEndpoint, CodeItem secondEndpoint) { + super(firstEndpoint, secondEndpoint); + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index e0dff9c78..bc9ad6a89 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -7,7 +7,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; @@ -25,15 +25,15 @@ public static String createTraceLinkString(String firstElementId, String secondE } public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { - return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() - .getSentence() - .getSentenceNumber() + 1))); + return sadSamTraceLinks.collect( + tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1))); } - public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableList> samCodeTraceLinks) { + public static ImmutableList getSamCodeTraceLinksAsStringList( + ImmutableList> samCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : samCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); + Pair endpointTuple = traceLink.asPair(); var modelElement = endpointTuple.first(); var codeElement = endpointTuple.second(); String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); @@ -42,10 +42,10 @@ public static ImmutableList getSamCodeTraceLinksAsStringList(ImmutableLi return resultsMut.toImmutable(); } - public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { + public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : sadCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); + Pair endpointTuple = traceLink.asPair(); var codeElement = endpointTuple.second(); String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1); String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString()); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index f69f2fef7..e774c6ada 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -22,7 +22,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; @@ -129,7 +129,7 @@ public List getAllTraceLinksAsBeautifiedStrings() { * * @return the list of {@link TraceLink SamCodeTraceLinks}. */ - public List> getSamCodeTraceLinks() { + public List> getSamCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSamCodeTraceLinks().toList(); @@ -142,7 +142,7 @@ public List> getSamCodeTraceL * * @return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. */ - public List> getSadCodeTraceLinks() { + public List> getSadCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSadCodeTraceLinks().toList(); From ff8eac69cd8a7d566572ac707ea1d12a1b12d3fe Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Wed, 18 Jun 2025 09:31:01 +0200 Subject: [PATCH 063/115] update modelformat --- .../kastel/mcse/ardoco/core/api/models/ModelFormat.java | 9 +++++++-- .../mcse/ardoco/core/tests/eval/GoldStandardProject.java | 6 +++--- .../mcse/ardoco/core/tests/eval/HistoricProject.java | 8 +++++--- .../kit/kastel/mcse/ardoco/core/tests/eval/Project.java | 8 +++++--- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 69aee0e7f..76a50de01 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -4,7 +4,7 @@ /** * Enum for the different types of supported architecture (meta-) models */ -public enum ArchitectureModelFormat { +public enum ModelFormat { /** * Palladio Component Model */ @@ -16,6 +16,11 @@ public enum ArchitectureModelFormat { /** * RAW Model. E.g., text-based models. */ - RAW; + RAW, + + /** + * Code Model for the ArCoTL framework. + */ + ACM; } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java index 92948e165..77be6c57f 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -15,7 +15,7 @@ import org.eclipse.collections.api.list.MutableList; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -99,7 +99,7 @@ default String getModelResourceName() { * @param modelType the model type * @return the File that represents the model for this project */ - default File getModelFile(ArchitectureModelType modelType) { + default File getModelFile(ModelFormat modelType) { return this.getProjectOrThrow().getModelFile(modelType); } @@ -108,7 +108,7 @@ default File getModelFile(ArchitectureModelType modelType) { * * @param modelType the model type */ - default String getModelResourceName(ArchitectureModelType modelType) { + default String getModelResourceName(ModelFormat modelType) { return this.getProjectOrThrow().getModelResourceName(modelType); } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java index 75856a42d..028a0e4bb 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java @@ -16,7 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -107,20 +107,22 @@ public String getModelResourceName() { } @Override - public File getModelFile(ArchitectureModelType modelType) { + public File getModelFile(ModelFormat modelType) { return switch (modelType) { case PCM -> getModelFile(); case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); }; } @Override - public String getModelResourceName(ArchitectureModelType modelType) { + public String getModelResourceName(ModelFormat modelType) { return switch (modelType) { case PCM -> model; case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); }; } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java index 573e0b41a..6f112d1d1 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -16,7 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.ArchitectureModelType; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -116,20 +116,22 @@ public String getModelResourceName() { } @Override - public File getModelFile(ArchitectureModelType modelType) { + public File getModelFile(ModelFormat modelType) { return switch (modelType) { case PCM -> getModelFile(); case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); }; } @Override - public String getModelResourceName(ArchitectureModelType modelType) { + public String getModelResourceName(ModelFormat modelType) { return switch (modelType) { case PCM -> model; case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); + case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); }; } From bce53470158e8f125afc4c5d992d6af6cfd505ed Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Wed, 18 Jun 2025 10:18:20 +0200 Subject: [PATCH 064/115] rename Metamodels and probably fixed bugs --- .../edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java | 3 ++- .../mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java | 2 +- .../ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java | 2 +- .../mcse/ardoco/core/api/models/arcotl/ComponentModel.java | 2 +- .../ardoco/core/api/models/arcotl/FineGrainedCodeModel.java | 2 +- .../kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 84453b55a..6bdc074c2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -2,5 +2,6 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; public enum Metamodel { - CODE, ARCHITECTURE, CODE_AS_ARCHITECTURE, COMPONENT + CODE_ONLY_COMPILATION_UNITS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, ARCHITECTURE_ONLY_COMPONENTS } + diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 6f18129f0..dd63b3b3d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -36,7 +36,7 @@ public List getEndpoints() { @Override public Metamodel getMetamodel() { - return Metamodel.ARCHITECTURE; + return Metamodel.ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES; } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java index 41f5df846..2925ec996 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -39,7 +39,7 @@ public List getEndpoints() { @Override public Metamodel getMetamodel() { - return Metamodel.CODE_AS_ARCHITECTURE; + return Metamodel.CODE_WITH_COMPILATION_UNITS_AND_PACKAGES; } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java index 558f2d9fb..d43cf4812 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java @@ -39,7 +39,7 @@ public List getEndpoints() { @Override public Metamodel getMetamodel() { - return Metamodel.COMPONENT; + return Metamodel.ARCHITECTURE_ONLY_COMPONENTS; } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java index e60ddb831..4659f3665 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java @@ -37,7 +37,7 @@ public List getContent() { @Override public Metamodel getMetamodel() { - return Metamodel.CODE; + return Metamodel.CODE_ONLY_COMPILATION_UNITS; } @Override diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index e774c6ada..b836b4472 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -106,7 +106,7 @@ public ImmutableList> getArchitectureTrac MutableSet> traceLinks = Sets.mutable.empty(); for (var metamodel : this.getMetamodels()) { - if (metamodel == Metamodel.COMPONENT) { + if (metamodel == Metamodel.ARCHITECTURE_ONLY_COMPONENTS) { traceLinks.addAll(this.getTraceLinksForModel(metamodel).castToCollection()); } } From 6841c650f1d0e322632a2b6450f765f2ce0becf2 Mon Sep 17 00:00:00 2001 From: Hossiphi <16070333+Hossiphi@users.noreply.github.com> Date: Wed, 18 Jun 2025 09:12:47 +0000 Subject: [PATCH 065/115] Apply formatting changes --- .../mcse/ardoco/core/api/entity/TextEntity.java | 2 +- .../mcse/ardoco/core/api/models/Metamodel.java | 3 +-- .../mcse/ardoco/core/api/models/ModelFormat.java | 2 +- .../api/models/arcotl/CoarseGrainedCodeModel.java | 1 + .../core/api/models/arcotl/CodeModelDTO.java | 1 + .../core/api/models/arcotl/ComponentModel.java | 7 ++++--- .../api/models/arcotl/FineGrainedCodeModel.java | 1 + .../core/api/models/arcotl/code/CodePackage.java | 2 +- .../codetraceability/CodeTraceabilityState.java | 2 +- .../stage/codetraceability/ModelCodeTraceLink.java | 1 + .../stage/connectiongenerator/InstanceLink.java | 4 ++-- .../RecommendedInstance.java | 4 ++-- .../core/common/similarity/SimilarityUtils.java | 14 +++++++------- .../core/common/util/TraceLinkUtilities.java | 5 +++-- .../core/configuration/AbstractConfigurable.java | 2 +- .../ConfigurationInstantiatorUtils.java | 2 +- .../mcse/ardoco/core/data/DataRepository.java | 2 +- .../ardoco/core/data/impl/ProcessedTextData.java | 2 +- .../ardoco/core/execution/runner/ArDoCoRunner.java | 2 +- .../mcse/ardoco/core/tests/eval/GoldStandard.java | 2 +- .../core/tests/eval/GoldStandardProject.java | 2 +- .../ardoco/core/tests/eval/HistoricProject.java | 6 +++--- .../mcse/ardoco/core/tests/eval/Project.java | 6 +++--- .../results/calculator/ResultCalculatorUtil.java | 2 +- 24 files changed, 41 insertions(+), 36 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java index a04780793..71f343234 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; public non-sealed class TextEntity extends Entity { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 6bdc074c2..03c9d4973 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -1,7 +1,6 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models; public enum Metamodel { CODE_ONLY_COMPILATION_UNITS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, ARCHITECTURE_ONLY_COMPONENTS } - diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 76a50de01..0f0bb0b76 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java index 2925ec996..2710e5347 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java index 8f80008fd..93b843f5a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java index d43cf4812..9e6f5168b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.ArrayList; @@ -24,9 +25,9 @@ public List getContent() { List entities = new ArrayList<>(); for (ArchitectureItem entity : architectureModel.getContent()) { switch (entity) { - case ArchitectureComponent component -> entities.add(component); - default -> { - } + case ArchitectureComponent component -> entities.add(component); + default -> { + } } } return entities; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java index 4659f3665..27b49ce90 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java index db5905d8d..30d4c62dc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index fc3a66d59..6bf5cedeb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability; import java.util.Collection; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java index 41fd3c2ff..406d4fdc5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 2cde3f0f6..bf360bf7d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -89,8 +89,8 @@ public String toString() { String typeInfo; switch (this.getSecondEndpoint()) { - case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType().orElseThrow(); - case CodeEntity ignored -> typeInfo = ""; + case ArchitectureEntity architectureEntity -> typeInfo = architectureEntity.getType().orElseThrow(); + case CodeEntity ignored -> typeInfo = ""; } return "InstanceMapping [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index a05bdcd96..d20555406 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -1,6 +1,8 @@ /* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; +import java.io.Serial; + import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; @@ -8,8 +10,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; -import java.io.Serial; - /** * The Interface IRecommendedInstance defines the aggregation of noun mappings to one recommendation. */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 3534a406d..ba9ac7c90 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -129,8 +129,8 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode var nameParts = modelEntity.getNameParts(); if (nameParts.isEmpty()) return false; - if (this.areWordsOfListsSimilar(nameParts, Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(modelEntity.getName(), - nounMapping.getReference())) { + if (this.areWordsOfListsSimilar(nameParts, Lists.immutable.with(nounMapping.getReference())) || this.areWordsSimilar(modelEntity.getName(), nounMapping + .getReference())) { return true; } @@ -374,8 +374,8 @@ private boolean checkRecommendedInstanceForSelection(ModelEntity modelEntity, Re boolean listOfNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(entityNameParts, surfaceFormWords) / Math.max(entityNameParts.size(), surfaceFormWords.size()) >= similarity; - boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max( - longestNameSplit.size(), surfaceFormWords.size()) >= similarity; + boolean listOfSplitNamesXSurfaceFormSimilarEnough = 1.0 * similarEntriesOfList(longestNameSplit, surfaceFormWords) / Math.max(longestNameSplit + .size(), surfaceFormWords.size()) >= similarity; if (instanceNamesXSurfaceForms || longestNameXSurfaceForms || listOfNamesXSurfaceFormSimilarEnough || listOfSplitNamesXSurfaceFormSimilarEnough) { return true; @@ -418,9 +418,9 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs } // Maybe REWORK. Remove NounMappings? - if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, - firstPhraseMapping)) && this.containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, - secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping(textState, secondPhraseMapping, firstPhraseMapping)) { + if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this + .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( + textState, secondPhraseMapping, firstPhraseMapping)) { // HARD CODED... Change? return 1.0; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index bc9ad6a89..817d8559e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -25,8 +25,9 @@ public static String createTraceLinkString(String firstElementId, String secondE } public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { - return sadSamTraceLinks.collect( - tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1))); + return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() + .getSentence() + .getSentenceNumber() + 1))); } public static ImmutableList getSamCodeTraceLinksAsStringList( diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index 82ba07b90..4f367f1db 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.lang.reflect.Field; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java index 11cce93e5..472ea2f5e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.lang.reflect.Constructor; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index fd35d5135..ee5fd4774 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; import java.io.Serializable; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java index 4c183b890..798d29871 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data.impl; import java.util.List; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java index e518fbcdb..542188f2b 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution.runner; import java.io.File; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java index 1b7397ed8..be605646a 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java index 77be6c57f..e9cac04dd 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java index 028a0e4bb..94cb8fb11 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; @@ -87,8 +87,8 @@ public enum HistoricProject implements GoldStandardProject { this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; this.expectedTraceLinkResults = expectedTraceLinkResults; this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>( - List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, goldStandardMissingTextForModelElement)); + resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, + goldStandardMissingTextForModelElement)); } @Override diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java index 6f112d1d1..f97dde55e 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; @@ -96,8 +96,8 @@ public enum Project implements GoldStandardProject { this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; this.expectedTraceLinkResults = expectedTraceLinkResults; this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>( - List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, goldStandardMissingTextForModelElement)); + resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, + goldStandardMissingTextForModelElement)); } @Override diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java index 64e39e608..18efc578b 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval.results.calculator; import java.util.List; From e44c9879d7999e60bd02388be5c3d47e57b117f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 14:23:12 +0200 Subject: [PATCH 066/115] Remove unused code --- .../ardoco/core/api/models/ModelFormat.java | 4 +- .../CodeTraceabilityState.java | 16 ---- .../connectiongenerator/ConnectionState.java | 55 ------------ .../similarity/wordsim/WordSimLoader.java | 7 +- .../common/util/CommonTextToolsConfig.java | 10 +-- .../configuration/ConfigurationUtility.java | 90 ------------------- .../ardoco/core/pipeline/ExecutionStage.java | 31 ------- .../configs/CommonTextToolsConfig.properties | 4 - .../ardoco/core/api/output/ArDoCoResult.java | 21 +---- .../mcse/ardoco/core/execution/ArDoCo.java | 12 +-- .../execution/runner/AnonymousRunner.java | 29 ++---- .../tests/eval/results/EvaluationResults.java | 25 +----- 12 files changed, 18 insertions(+), 286 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationUtility.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 0f0bb0b76..40511e3c4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -17,10 +17,8 @@ public enum ModelFormat { * RAW Model. E.g., text-based models. */ RAW, - /** * Code Model for the ArCoTL framework. */ - ACM; - + ACM } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index 6bf5cedeb..bb6fba5ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -19,14 +19,6 @@ public interface CodeTraceabilityState extends PipelineStepData { String ID = "CodeTraceabilityState"; - /** - * Add a {@link SamCodeTraceLink} to this state. - * - * @param traceLink the trace link to add - * @return whether the operation was successful - */ - boolean addSamCodeTraceLink(TraceLink traceLink); - /** * Add a collection of {@link SamCodeTraceLink SamCodeTraceLinks} to this state. * @@ -42,14 +34,6 @@ public interface CodeTraceabilityState extends PipelineStepData { */ ImmutableSet> getSamCodeTraceLinks(); - /** - * Add a {@link TransitiveTraceLink} to this state. - * - * @param traceLink the trace link to add - * @return whether the operation was successful - */ - boolean addSadCodeTraceLink(TraceLink traceLink); - /** * Add a collection of {@link SadCodeTraceLink SadCodeTraceLinks} to this state. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 6a25c2317..595ab3935 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -27,39 +27,6 @@ public interface ConnectionState extends IConfigurable { */ ImmutableList> getInstanceLinks(); - /** - * Returns all instance links with a model instance containing the given name. - * - * @param name the name of a model instance - * @return all instance links with a model instance containing the given name as list - */ - ImmutableList> getInstanceLinksByName(String name); - - /** - * Returns all instance links with a model instance containing the given type. - * - * @param type the type of a model instance - * @return all instance links with a model instance containing the given type as list - */ - ImmutableList> getInstanceLinksByType(String type); - - /** - * Returns all instance links with a model instance containing the given recommended instance. - * - * @param recommendedInstance the recommended instance to consider - * @return all instance links found - */ - ImmutableList> getInstanceLinksByRecommendedInstance(RecommendedInstance recommendedInstance); - - /** - * Returns all instance links with a model instance containing the given name and type. - * - * @param name the name of a model instance - * @param type the type of a model instance - * @return all instance links with a model instance containing the given name and type as list - */ - ImmutableList> getInstanceLinks(String name, String type); - /** * Returns a list of tracelinks that are contained within this connection state. * @@ -97,26 +64,4 @@ default ImmutableSet> getTraceLinks() { * @return true if it is already contained */ boolean isContainedByInstanceLinks(TraceLink instanceLink); - - /** - * Removes an instance link from the state. - * - * @param instanceMapping the instance link to remove - */ - void removeFromMappings(TraceLink instanceMapping); - - /** - * Removes all instance links containing the given instance. - * - * @param instance the given instance - */ - void removeAllInstanceLinksWith(ModelEntity instance); - - /** - * Removes all instance links containing the given recommended instance. - * - * @param instance the given recommended instance - */ - void removeAllInstanceLinksWith(RecommendedInstance instance); - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java index 7a39d29bd..f24ee51a1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.ArrayList; @@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality.EqualityMeasure; +import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.glove.GloveMeasure; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.JaroWinklerMeasure; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.LevenshteinMeasure; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram.NgramMeasure; @@ -50,6 +51,10 @@ public static ImmutableList loadUsingProperties() { list.add(new SEWordSimMeasure()); } + if (CommonTextToolsConfig.GLOVE_ENABLED) { + list.add(new GloveMeasure()); + } + return Lists.immutable.withAll(list); } catch (Exception e) { LOGGER.error("Failed to load word similarity measures", e); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java index cfd8b0944..45035529d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import org.eclipse.collections.api.list.ImmutableList; @@ -96,14 +96,6 @@ private CommonTextToolsConfig() { * The path to the sqlite database file used by the GloVe word similarity measure. */ public static final String GLOVE_DB_FILE_PATH = CONFIG.getProperty("glove_DatabaseFilePath"); - /** - * The threshold for a diagram element to be considered similar to a noun mapping. - */ - public static final double DE_NM_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("de_NM_SimilarityThreshold"); - /** - * The threshold for a diagram element to be considered similar to a word. - */ - public static final double DE_WORD_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("de_Word_SimilarityThreshold"); private static ResourceAccessor loadParameters(String filePath) { return new ResourceAccessor(filePath, true); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationUtility.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationUtility.java deleted file mode 100644 index 68deded7a..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationUtility.java +++ /dev/null @@ -1,90 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.configuration; - -import static edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedMap; -import java.util.TreeMap; - -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; -import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractExecutionStage; -import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Informant; -import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.PipelineAgent; - -@Deterministic -public class ConfigurationUtility { - private ConfigurationUtility() { - throw new IllegalStateException("Cannot be instantiated"); - } - - /** - * {@return a map of configurations that will enable the specified agents} - * - * @param enabledAgents Set of agents that should be enabled - */ - public static SortedMap enableAgents(Class stage, Set> enabledAgents) { - var map = new TreeMap(); - for (var agent : enabledAgents) { - var listString = List.of(agent.getSimpleName()).toString(); - map.put(stage.getSimpleName() + CLASS_ATTRIBUTE_CONNECTOR + "enabledAgents", listString.substring(1, listString.length() - 1)); - } - return Collections.unmodifiableSortedMap(map); - } - - /** - * {@return a map of configurations that will enable the specified informants} Will also enable the necessary agents. - * - * @param enabledInformant Set of informants that should be enabled - */ - public static SortedMap enableInformants(AbstractExecutionStage stage, Set> enabledInformant) { - var map = new TreeMap(); - var agentsToEnable = new LinkedHashSet>(); - for (var informant : enabledInformant) { - getInformantsMap(stage).entrySet().stream().filter(e -> e.getValue().contains(informant)).forEach(e -> { - agentsToEnable.add(e.getKey()); - var listString = List.of(informant.getSimpleName()).toString(); - map.put(e.getKey().getSimpleName() + CLASS_ATTRIBUTE_CONNECTOR + "enabledInformants", listString.substring(1, listString.length() - 1)); - }); - } - //Make sure we enable the agents which run the informants - map.putAll(enableAgents(stage.getClass(), new LinkedHashSet<>(agentsToEnable))); - return Collections.unmodifiableSortedMap(map); - } - - public static Set> getAgents(AbstractExecutionStage stage) { - var agents = stage.getAgents(); - var clazzes = new ArrayList>(); - for (var agent : agents) { - var clazz = agent.getClass(); - clazzes.add(clazz); - } - return new LinkedHashSet<>(clazzes); - } - - public static Set> getInformants(PipelineAgent agent) { - var informants = agent.getInformants(); - var clazzes = new ArrayList>(); - for (var informant : informants) { - var clazz = informant.getClass(); - clazzes.add(clazz); - } - return new LinkedHashSet<>(clazzes); - } - - public static Map, Set>> getInformantsMap(AbstractExecutionStage stage) { - var map = new LinkedHashMap, Set>>(); - var agents = stage.getAgents(); - for (var agent : agents) { - map.put(agent.getClass(), getInformants(agent)); - } - - return new LinkedHashMap<>(map); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java deleted file mode 100644 index b9f3f6e18..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/ExecutionStage.java +++ /dev/null @@ -1,31 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.pipeline; - -import java.util.List; -import java.util.SortedMap; - -import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; -import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.PipelineAgent; - -public abstract class ExecutionStage extends AbstractExecutionStage { - private SortedMap additionalConfigs; - - /** - * Creates an {@link ExecutionStage} and applies the additional configuration to it - * - * @param id the id of the stage - * @param dataRepository the {@link DataRepository} that should be used - * @param agents the pipeline agents this stage supports - * @param additionalConfigs the additional configuration - */ - protected ExecutionStage(List agents, String id, DataRepository dataRepository, SortedMap additionalConfigs) { - super(agents, id, dataRepository); - this.additionalConfigs = additionalConfigs; - } - - @Override - protected void before() { - super.before(); - this.applyConfiguration(this.additionalConfigs); - } -} diff --git a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties index 9643ae97b..e244206d8 100644 --- a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties +++ b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties @@ -22,7 +22,3 @@ sewordsim_DatabaseFilePath= glove_Enabled=false glove_SimilarityThreshold=0.75 glove_DatabaseFilePath= -# DE-Sim -de_NM_SimilarityThreshold=0.8 -de_Word_SimilarityThreshold=0.8 - diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index b836b4472..417e7abe5 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -12,7 +12,6 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.set.ImmutableSet; import org.eclipse.collections.api.set.MutableSet; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,20 +82,6 @@ public ImmutableSet> getTraceLinksForMode return Sets.immutable.empty(); } - //TODO: Is this method still in use? - - /** - * Returns the set of {@link TraceLink}s that were found for the Model with the given ID as strings in the format "ModelElementId,SentenceNo". - * - * @return Trace links for the model with the given id as Strings - */ - public ImmutableSortedSet getTraceLinksForModelAsStrings(Metamodel metamodel) { - var formatString = "%s,%d"; - return this.getTraceLinksForModel(metamodel) - .collect(tl -> String.format(formatString, tl.getSecondEndpoint().getId(), tl.getFirstEndpoint().getSentence().getSentenceNumber() + 1)) - .toImmutableSortedSet(); - } - /** * Returns the set of {@link TraceLink}s * @@ -250,7 +235,7 @@ public ConnectionState getConnectionState(Metamodel metamodel) { var connectionStates = DataRepositoryHelper.getConnectionStates(this.dataRepository); return connectionStates.getConnectionState(metamodel); } - ArDoCoResult.logger.warn("No ConnectionState found."); + logger.warn("No ConnectionState found."); return null; } @@ -264,7 +249,7 @@ public InconsistencyState getInconsistencyState(Metamodel metamodel) { var inconsistencyStates = DataRepositoryHelper.getInconsistencyStates(this.dataRepository); return inconsistencyStates.getInconsistencyState(metamodel); } - ArDoCoResult.logger.warn("No InconsistencyState found."); + logger.warn("No InconsistencyState found."); return null; } @@ -277,7 +262,7 @@ public CodeTraceabilityState getCodeTraceabilityState() { if (DataRepositoryHelper.hasCodeTraceabilityState(this.dataRepository)) { return DataRepositoryHelper.getCodeTraceabilityState(this.dataRepository); } - ArDoCoResult.logger.warn("No SamCodeTraceabilityState found."); + logger.warn("No SamCodeTraceabilityState found."); return null; } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java index ef5e985b0..bbf44cbf2 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; import java.io.File; @@ -44,16 +44,6 @@ public ArDoCo(String projectName) { this.initDataRepository(); } - /** - * Returns a new instance of this class based with the given project name - * - * @param projectName the project name - * @return a new instance of ArDoCo - */ - public static ArDoCo getInstance(String projectName) { - return new ArDoCo(projectName); - } - private void initDataRepository() { ProjectPipelineData projectPipelineData = new ProjectPipelineDataImpl(this.projectName); this.getDataRepository().addData(ProjectPipelineData.ID, projectPipelineData); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java index 03a6e56ac..26a0d0091 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java @@ -1,12 +1,9 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution.runner; -import java.io.File; import java.io.IOException; import java.util.List; -import javax.annotation.Nullable; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,30 +18,19 @@ public abstract class AnonymousRunner extends ArDoCoRunner { protected AnonymousRunner(String projectName) { super(projectName); - setUp(null); - } - - protected AnonymousRunner(String projectName, DataRepository preRunDataRepository) { - super(projectName); - setUp(preRunDataRepository); + setUp(); } /** - * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository using the preRunDataRepository, if present. + * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository. * {@link #isSetUp} must return true, if successful. - * - * @param preRunDataRepository data repository of a previous run used as a base + * * @return List of AbstractPipelineSteps this runner consists of */ - private List setUp(@Nullable DataRepository preRunDataRepository) { + private List setUp() { try { var arDoCo = getArDoCo(); var dataRepository = arDoCo.getDataRepository(); - - if (preRunDataRepository != null) { - dataRepository.addAllData(preRunDataRepository); - } - var pipelineSteps = initializePipelineSteps(dataRepository); pipelineSteps.forEach(arDoCo::addPipelineStep); isSetUp = true; @@ -63,9 +49,4 @@ private List setUp(@Nullable DataRepository preRunDataRepo * @throws IOException can occur when loading data */ public abstract List initializePipelineSteps(DataRepository dataRepository) throws IOException; - - @Override - public void setOutputDirectory(File outputDirectory) { - super.setOutputDirectory(outputDirectory); - } } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java index 0db56b3a5..f1690ceb4 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval.results; import java.util.List; @@ -39,14 +39,6 @@ public String toString() { %s""", precision(), recall(), f1(), accuracy(), specificity(), phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow()); } - public String getResultStringWithExpected(ExpectedResults expectedResults) { - return String.format(Locale.ENGLISH, """ - \tPrecision:%8.2f (min. expected: %.2f) - \tRecall:%11.2f (min. expected: %.2f) - \tF1:%15.2f (min. expected: %.2f) - %s""", precision(), expectedResults.precision(), recall(), expectedResults.recall(), f1(), expectedResults.f1(), toRow()); - } - public String getExtendedResultStringWithExpected(ExpectedResults expectedResults) { StringBuilder outputBuilder = new StringBuilder(); outputBuilder.append(String.format(Locale.ENGLISH, """ @@ -66,17 +58,6 @@ public String getExtendedResultStringWithExpected(ExpectedResults expectedResult return outputBuilder.toString(); } - public String getExplicitResultString() { - return String.format(Locale.ENGLISH, """ - \tTP:%15d - \tFP:%15d - \tTN:%15d - \tFN:%15d - \tP:%16d - \tN:%16d""", truePositives().size(), falsePositives().size(), trueNegatives(), falseNegatives().size(), truePositives() - .size() + falseNegatives().size(), trueNegatives() + falsePositives().size()); - } - public ImmutableList getFound() { MutableList found = Lists.mutable.empty(); found.addAll(classificationResult.getTruePositives()); @@ -127,8 +108,4 @@ public List falsePositives() { public List falseNegatives() { return classificationResult.getFalseNegatives().stream().toList(); } - - public int trueNegatives() { - return classificationResult.getTrueNegatives(); - } } From 7437909d6cab433593481087de245a14e6618ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 14:28:36 +0200 Subject: [PATCH 067/115] Rename model types --- .../mcse/ardoco/core/api/models/ModelStates.java | 2 ++ ...entModel.java => ArchitectureComponentModel.java} | 12 ++++-------- .../ardoco/core/api/models/arcotl/CodeModel.java | 2 +- ...=> CodeModelWithCompilationUnitsAndPackages.java} | 12 ++++++------ ...l.java => CodeModelWithOnlyCompilationUnits.java} | 10 ++++------ .../mcse/ardoco/core/api/models/arcotl/Model.java | 2 +- .../mcse/ardoco/core/tests/eval/GoldStandard.java | 6 +++--- .../ardoco/core/tests/eval/GoldStandardProject.java | 8 ++++---- .../mcse/ardoco/core/tests/eval/HistoricProject.java | 6 +++--- .../kastel/mcse/ardoco/core/tests/eval/Project.java | 6 +++--- 10 files changed, 31 insertions(+), 35 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/{ComponentModel.java => ArchitectureComponentModel.java} (85%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/{CoarseGrainedCodeModel.java => CodeModelWithCompilationUnitsAndPackages.java} (72%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/{FineGrainedCodeModel.java => CodeModelWithOnlyCompilationUnits.java} (81%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index b7f7c22bc..41eb03926 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models; +import java.io.Serial; import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeMap; @@ -11,6 +12,7 @@ public class ModelStates implements PipelineStepData { public static final String ID = "ModelStatesData"; + @Serial private static final long serialVersionUID = -603436842247064371L; private final SortedMap models = new TreeMap<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java similarity index 85% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java index 9e6f5168b..cdc3db4e0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java @@ -12,11 +12,11 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; -public final class ComponentModel extends Model { +public final class ArchitectureComponentModel extends Model { private final ArchitectureModel architectureModel; - public ComponentModel(ArchitectureModel architectureModel) { + public ArchitectureComponentModel(ArchitectureModel architectureModel) { this.architectureModel = Objects.requireNonNull(architectureModel); } @@ -24,10 +24,8 @@ public ComponentModel(ArchitectureModel architectureModel) { public List getContent() { List entities = new ArrayList<>(); for (ArchitectureItem entity : architectureModel.getContent()) { - switch (entity) { - case ArchitectureComponent component -> entities.add(component); - default -> { - } + if (entity instanceof ArchitectureComponent component) { + entities.add(component); } } return entities; @@ -45,9 +43,7 @@ public Metamodel getMetamodel() { @Override public SortedSet getTypeIdentifiers() { - SortedSet identifiers = new TreeSet<>(); - for (var entity : getContent()) { if (entity.getType().isPresent()) { identifiers.add(entity.getType().orElseThrow()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 3d7496a2f..5f0e070df 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -15,7 +15,7 @@ /** * A code model that is a CMTL instance. */ -public abstract sealed class CodeModel extends Model permits CoarseGrainedCodeModel, FineGrainedCodeModel { +public abstract sealed class CodeModel extends Model permits CodeModelWithCompilationUnitsAndPackages, CodeModelWithOnlyCompilationUnits { protected CodeItemRepository codeItemRepository; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java similarity index 72% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index 2710e5347..cbf5840f9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CoarseGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -10,18 +10,18 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; -public final class CoarseGrainedCodeModel extends CodeModel { +public final class CodeModelWithCompilationUnitsAndPackages extends CodeModel { - private final FineGrainedCodeModel codeModel; + private final CodeModelWithOnlyCompilationUnits codeModel; - public CoarseGrainedCodeModel(CodeModelDTO codeModelDTO) { + public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDTO) { super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); - this.codeModel = new FineGrainedCodeModel(codeModelDTO); + this.codeModel = new CodeModelWithOnlyCompilationUnits(codeModelDTO); } - public CoarseGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { + public CodeModelWithCompilationUnitsAndPackages(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); - this.codeModel = new FineGrainedCodeModel(codeItemRepository, content); + this.codeModel = new CodeModelWithOnlyCompilationUnits(codeItemRepository, content); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java similarity index 81% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java index 27b49ce90..0e3319302 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/FineGrainedCodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java @@ -11,13 +11,13 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; -public final class FineGrainedCodeModel extends CodeModel { +public final class CodeModelWithOnlyCompilationUnits extends CodeModel { - public FineGrainedCodeModel(CodeModelDTO codeModelDTO) { + public CodeModelWithOnlyCompilationUnits(CodeModelDTO codeModelDTO) { super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); } - public FineGrainedCodeModel(CodeItemRepository codeItemRepository, SortedSet content) { + public CodeModelWithOnlyCompilationUnits(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); } @@ -47,9 +47,7 @@ public SortedSet getTypeIdentifiers() { for (var codeItem : this.getContent()) { var type = codeItem.getType(); - if (type.isPresent()) { - identifiers.add(type.get()); - } + type.ifPresent(identifiers::add); } return identifiers; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index 6f0dae52d..a83217501 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -8,7 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; -public abstract sealed class Model permits ArchitectureModel, ComponentModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, ArchitectureComponentModel, CodeModel { private final String id = IdentifierProvider.createId(); diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java index be605646a..00ffa1181 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java @@ -12,18 +12,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; public class GoldStandard { private final Logger logger = LoggerFactory.getLogger(GoldStandard.class); private final File goldStandard; - private final ComponentModel model; + private final ArchitectureComponentModel model; private final MutableList> sentence2instance = Lists.mutable.empty(); - public GoldStandard(File goldStandard, ComponentModel model) { + public GoldStandard(File goldStandard, ArchitectureComponentModel model) { this.goldStandard = goldStandard; this.model = model; this.load(); diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java index e9cac04dd..73a00aff9 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java @@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; /** @@ -181,11 +181,11 @@ default ImmutableList getTlrGoldStandard() { /** * Returns the {@link GoldStandard} for this project for the given model connector. * - * @param componentModel the model + * @param architectureComponentModel the model * @return the {@link GoldStandard} for this project */ - default GoldStandard getTlrGoldStandard(ComponentModel componentModel) { - return this.getProjectOrThrow().getTlrGoldStandard(componentModel); + default GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { + return this.getProjectOrThrow().getTlrGoldStandard(architectureComponentModel); } default MutableList getMissingTextForModelElementGoldStandard() { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java index 94cb8fb11..2e7a31c0f 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -176,8 +176,8 @@ public ImmutableList getTlrGoldStandard() { } @Override - public GoldStandard getTlrGoldStandard(ComponentModel componentModel) { - return new GoldStandard(getTlrGoldStandardFile(), componentModel); + public GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { + return new GoldStandard(getTlrGoldStandardFile(), architectureComponentModel); } @Override diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java index f97dde55e..e525dfd3e 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ComponentModel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; @@ -185,8 +185,8 @@ public ImmutableList getTlrGoldStandard() { } @Override - public GoldStandard getTlrGoldStandard(ComponentModel componentModel) { - return new GoldStandard(getTlrGoldStandardFile(), componentModel); + public GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { + return new GoldStandard(getTlrGoldStandardFile(), architectureComponentModel); } @Override From d10f2a262a83f820caf64df0d27dc7e2bc33dd8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 15:26:34 +0200 Subject: [PATCH 068/115] Fix architecture tests --- .../CodeModelWithOnlyCompilationUnits.java | 5 +- .../tests/architecture/ArchitectureTest.java | 153 +----------------- 2 files changed, 7 insertions(+), 151 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java index 0e3319302..46e3a553e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java @@ -10,9 +10,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +@Deterministic public final class CodeModelWithOnlyCompilationUnits extends CodeModel { - public CodeModelWithOnlyCompilationUnits(CodeModelDTO codeModelDTO) { super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); } @@ -23,10 +24,8 @@ public CodeModelWithOnlyCompilationUnits(CodeItemRepository codeItemRepository, @Override public List getEndpoints() { - List entities = new ArrayList<>(); this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); - return entities; } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index e09a59ca8..2ccf28460 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -1,31 +1,12 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.architecture; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields; import static com.tngtech.archunit.library.Architectures.layeredArchitecture; -import java.io.Serializable; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import com.tngtech.archunit.core.domain.JavaClass; -import com.tngtech.archunit.core.domain.JavaField; -import com.tngtech.archunit.core.domain.JavaFieldAccess; -import com.tngtech.archunit.core.domain.JavaModifier; -import com.tngtech.archunit.core.domain.JavaParameterizedType; -import com.tngtech.archunit.core.domain.JavaType; -import com.tngtech.archunit.core.domain.JavaTypeVariable; import com.tngtech.archunit.junit.AnalyzeClasses; import com.tngtech.archunit.junit.ArchTest; -import com.tngtech.archunit.lang.ArchCondition; import com.tngtech.archunit.lang.ArchRule; -import com.tngtech.archunit.lang.ConditionEvents; -import com.tngtech.archunit.lang.SimpleConditionEvent; @AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") public class ArchitectureTest { @@ -37,13 +18,11 @@ public class ArchitectureTest { .resideInAnyPackage("..execution..", "..tests.."); @ArchTest public static final ArchRule modelInstancesOnlyAfterModelExtraction = classes().that() - .haveSimpleName("ModelInstance") - .or() .haveSimpleName("Model") .should() .onlyHaveDependentClassesThat() - .resideInAnyPackage("..models..", "..connectiongenerator..", "..inconsistency..", "..id..", "..pipeline..", "..common..", "..output..", - "..tests.."); + .resideInAnyPackage("..models..", "..recommendationgenerator..", "..connectiongenerator..", "..inconsistency..", "..id..", "..pipeline..", + "..common..", "..output..", "..tests.."); @ArchTest public static final ArchRule linksOnlyAfterConnectionGenerator = classes().that() @@ -57,7 +36,7 @@ public class ArchitectureTest { public static final ArchRule usingLinkAsNamingOnlyInConnectionGenerator = classes().that() .haveSimpleNameEndingWith("Link") .should() - .resideInAnyPackage("..models.tracelinks..", "..connectiongenerator..", "..output..", "..tests.."); + .resideInAnyPackage("..tracelink..", "..codetraceability..", "..connectiongenerator.."); @ArchTest public static final ArchRule inconsistencyOnlyAfterInconsistencyDetection = classes().that() @@ -70,7 +49,7 @@ public class ArchitectureTest { public static final ArchRule layerRule = layeredArchitecture().consideringAllDependencies() // Layer definition .layer("Common") - .definedBy("..common..", "..api..", "..tests..") + .definedBy("..common..", "..data..", "..api..", "..tests..") .layer("TextExtractor") .definedBy("..textextraction..") .layer("ModelExtractor") @@ -102,126 +81,4 @@ public class ArchitectureTest { .mayOnlyBeAccessedByLayers("RecommendationGenerator", "ConnectionGenerator", "CodeTraceability", "InconsistencyDetection", "Pipeline", "Common", "Execution"); - @ArchTest - public static final ArchRule transientRule = fields().that() - .areDeclaredInClassesThat() - .resideOutsideOfPackages("..tests..") - .and() - .haveModifier(JavaModifier.TRANSIENT) - .should(new ArchCondition<>("beAccessedIndirectly") { - @Override - public void check(JavaField javaField, ConditionEvents conditionEvents) { - javaField.getAccessesToSelf().forEach(fieldAccess -> { - var origin = fieldAccess.getOrigin(); - if (fieldAccess.getAccessType().equals(JavaFieldAccess.AccessType.GET)) { - if (origin.isMethod()) { - if (origin.getName().equalsIgnoreCase("get" + fieldAccess.getName())) { - satisfied(conditionEvents, javaField, null); - } else { - violated(conditionEvents, javaField, "Method accesses " + origin.getFullName() + " accesses transient field " + javaField - .getFullName() + ", but is not a getter or does not match the name pattern for getters 'get{$FieldName}'"); - } - } else { - violated(conditionEvents, javaField, "Transient field " + javaField - .getFullName() + " has to be accessed by a getter with name 'get{$fieldName}'"); - } - } else { - if (origin.isConstructor()) { - violated(conditionEvents, javaField, "Transient field " + javaField - .getFullName() + " has to be set outside of the constructor"); - } else { - satisfied(conditionEvents, javaField, null); - } - } - }); - } - }) - .orShould(new ArchCondition<>("belongToClassWithCustomSerialization") { - @Override - public void check(JavaField javaField, ConditionEvents conditionEvents) { - if (javaField.getOwner().getMethods().stream().noneMatch(method -> method.getName().equalsIgnoreCase("writeObject"))) { - violated(conditionEvents, javaField, "Transient field " + javaField - .getFullName() + " doesn't belong to a class with a custom serialization"); - } - } - }); - - @ArchTest - private static final ArchRule serializableRule = classes().that() - .areNotInterfaces() - .and() - .doNotHaveModifier(JavaModifier.ABSTRACT) - .and() - .areAssignableTo(Serializable.class) - .and() - .areNotEnums() - .and() - .resideOutsideOfPackages("..tests..") - .should(new ArchCondition<>("beSerializable") { - @Override - public void check(JavaClass javaClass, ConditionEvents conditionEvents) { - if (javaClass.getMethods().stream().noneMatch(method -> method.getName().equalsIgnoreCase("writeObject"))) { - Predicate transientOrStatic = (JavaField javaField) -> new LinkedHashSet<>(javaField.getModifiers()).removeAll(List - .of(JavaModifier.STATIC, JavaModifier.TRANSIENT)); - var fields = javaClass.getFields(); - for (var field : fields) { - if (transientOrStatic.test(field)) - continue; - var erasure = field.getType().toErasure(); - if (isContainer.test(erasure)) { - getAllInvolvedRawTypesExceptSelf(field).stream() - .filter(erasureIsSerializableShallow.negate()) - .forEach(parameter -> violated(conditionEvents, javaClass, "Non-transient field " + field - .getFullName() + " of serializable class " + javaClass - .getFullName() + " needs to be serializable or the class must have custom serialization, but has non-serializable parameter " + parameter - .getName())); - } else { - if (erasureIsSerializableShallow.negate().test(erasure)) { - //Class has non-transient field that is not serializable - violated(conditionEvents, javaClass, "Non-transient field " + field.getFullName() + " of serializable class " + javaClass - .getFullName() + " needs to be serializable or the class must have custom serialization"); - } - } - } - } - } - }); - - private static final Predicate isContainer = (JavaClass javaClass) -> javaClass.isArray() || javaClass.isAssignableTo( - Collection.class) || javaClass.isAssignableTo(Map.class) || javaClass.isAssignableTo(Iterable.class); - - private static final Predicate erasureIsSerializableShallow = (JavaClass javaClass) -> javaClass.isPrimitive() || javaClass - .isAssignableTo(Serializable.class) || isContainer.test(javaClass); - - /** - * Returns all types of a field, except the (outer) type of the field itself. Generic type variables are not considered. - * - * @param javaField the field - * @return all types of a field - */ - private static LinkedHashSet getAllInvolvedRawTypesExceptSelf(JavaField javaField) { - var javaType = javaField.getType(); - LinkedHashSet set; - if (javaType instanceof JavaParameterizedType javaParameterizedType) { - set = javaParameterizedType.getActualTypeArguments() - .stream() - .filter(typeArgument -> !(typeArgument instanceof JavaTypeVariable)) - .map(JavaType::toErasure) - .collect(Collectors.toCollection(LinkedHashSet::new)); - } else { - set = new LinkedHashSet<>(javaType.getAllInvolvedRawTypes()); - } - set.remove(javaType); - return set; - } - - private static void satisfied(ConditionEvents events, Object location, String message) { - var event = new SimpleConditionEvent(location, true, message); - events.add(event); - } - - private static void violated(ConditionEvents events, Object location, String message) { - var event = new SimpleConditionEvent(location, false, message); - events.add(event); - } } From 6ca9635a4d6f22267c1ab03707d04b81057fe3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 16:13:45 +0200 Subject: [PATCH 069/115] Hopefully fixed code configuration now .. --- .../mcse/ardoco/core/api/models/Metamodel.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 03c9d4973..8769a99e6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -2,5 +2,19 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; public enum Metamodel { - CODE_ONLY_COMPILATION_UNITS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, ARCHITECTURE_ONLY_COMPONENTS + CODE_ONLY_COMPILATION_UNITS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, ARCHITECTURE_ONLY_COMPONENTS; + + public static boolean isACodeModel(Metamodel metamodel) { + return switch (metamodel) { + case CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, CODE_ONLY_COMPILATION_UNITS -> true; + case ARCHITECTURE_ONLY_COMPONENTS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES -> false; + }; + } + + public static boolean isAnArchitectureModel(Metamodel metamodel) { + return switch (metamodel) { + case ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, ARCHITECTURE_ONLY_COMPONENTS -> true; + case CODE_ONLY_COMPILATION_UNITS, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES -> false; + }; + } } From c7f6a556d54c73e5cc6914fe49998dc2b09fb9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 17:09:15 +0200 Subject: [PATCH 070/115] Just some sonarcloud issues. --- .../java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java index ddf7b8894..3d8c52b80 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; +import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; @@ -23,6 +24,7 @@ @Deterministic public final class Confidence implements Comparable, ICopyable, Serializable { + @Serial private static final long serialVersionUID = 4307327201754195030L; private final AggregationFunctions confidenceAggregator; From 5d138a0a8a3dd1296eb276adf3cdfa304650134f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 17:22:21 +0200 Subject: [PATCH 071/115] Further unify trace links --- .../CodeModelWithOnlyCompilationUnits.java | 20 +++++++++ .../CodeTraceabilityState.java | 14 +++--- .../connectiongenerator/InstanceLink.java | 2 + .../core/api/tracelink/SadCodeTraceLink.java | 16 ------- .../core/api/tracelink/SamCodeTraceLink.java | 45 ------------------- .../core/common/util/TraceLinkUtilities.java | 8 ++-- .../ardoco/core/api/output/ArDoCoResult.java | 4 +- 7 files changed, 34 insertions(+), 75 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java index 46e3a553e..f867ac9d7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.SortedSet; import java.util.TreeSet; @@ -50,4 +51,23 @@ public SortedSet getTypeIdentifiers() { } return identifiers; } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CodeModelWithOnlyCompilationUnits codeModel) || !super.equals(o) || !Objects.equals(this.codeItemRepository, + codeModel.codeItemRepository)) { + return false; + } + return Objects.equals(this.content, codeModel.content); + } + + @Override + public int hashCode() { + int result = super.hashCode(); + result = 31 * result + (this.codeItemRepository != null ? this.codeItemRepository.hashCode() : 0); + return 31 * result + (this.content != null ? this.content.hashCode() : 0); + } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index bb6fba5ed..1ac5e896c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -6,10 +6,8 @@ import org.eclipse.collections.api.set.ImmutableSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SadCodeTraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.SamCodeTraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; @@ -25,27 +23,27 @@ public interface CodeTraceabilityState extends PipelineStepData { * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSamCodeTraceLinks(Collection> traceLinks); + boolean addSamCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link SamCodeTraceLink SamCodeTraceLinks}. * * @return set of stored {@link SamCodeTraceLink SamCodeTraceLinks} */ - ImmutableSet> getSamCodeTraceLinks(); + ImmutableSet> getSamCodeTraceLinks(); /** - * Add a collection of {@link SadCodeTraceLink SadCodeTraceLinks} to this state. + * Add a collection of {@link TraceLink SadCodeTraceLinks} to this state. * * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSadCodeTraceLinks(Collection> traceLinks); + boolean addSadCodeTraceLinks(Collection> traceLinks); /** * Return a set of stored {@link TransitiveTraceLink TransitiveTraceLinks}. * * @return set of stored {@link TransitiveTraceLink TransitiveTraceLinks} */ - ImmutableSet> getSadCodeTraceLinks(); + ImmutableSet> getSadCodeTraceLinks(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index bf360bf7d..217f9125d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; +import java.io.Serial; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; @@ -25,6 +26,7 @@ @Deterministic public class InstanceLink extends TraceLink { + @Serial private static final long serialVersionUID = -8630933950725516269L; private final Confidence confidence; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java deleted file mode 100644 index 5023e77c2..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SadCodeTraceLink.java +++ /dev/null @@ -1,16 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.tracelink; - -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; - -// TODO: Replace with SadModelTraceLink -@Deprecated -public class SadCodeTraceLink extends TraceLink { - - private static final long serialVersionUID = -1099702076674008083L; - - public SadCodeTraceLink(SentenceEntity e1, CodeCompilationUnit e2) { - super(e1, e2); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java deleted file mode 100644 index 4616142dd..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/SamCodeTraceLink.java +++ /dev/null @@ -1,45 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.tracelink; - -import java.util.Objects; - -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; - -/** - * A trace link between exactly one architecture endpoint and exactly one code endpoint. Trace links are created to connect corresponding elements of an - * architecture and a code model. - */ -// TODO: Replace with SadModelTraceLink -@Deprecated -public class SamCodeTraceLink extends TraceLink { - - private static final long serialVersionUID = -7683024763031647537L; - - /** - * Creates a new trace link between an architecture endpoint and a code endpoint as given in the specified endpoint tuple. - * - * @param architectureEndpoint the architecture endpoint - * @param codeEndpoint the code endpoint - */ - public SamCodeTraceLink(ArchitectureItem architectureEndpoint, CodeCompilationUnit codeEndpoint) { - super(architectureEndpoint, codeEndpoint); - } - - @Override - public int hashCode() { - return Objects.hash(this.asPair()); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof SamCodeTraceLink other)) { - return false; - } - return Objects.equals(this.asPair(), other.asPair()); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 817d8559e..54e90159b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -31,10 +31,10 @@ public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableLis } public static ImmutableList getSamCodeTraceLinksAsStringList( - ImmutableList> samCodeTraceLinks) { + ImmutableList> samCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : samCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); + Pair endpointTuple = traceLink.asPair(); var modelElement = endpointTuple.first(); var codeElement = endpointTuple.second(); String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); @@ -43,10 +43,10 @@ public static ImmutableList getSamCodeTraceLinksAsStringList( return resultsMut.toImmutable(); } - public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { + public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : sadCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); + Pair endpointTuple = traceLink.asPair(); var codeElement = endpointTuple.second(); String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1); String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString()); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 417e7abe5..84c61fc2f 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -114,7 +114,7 @@ public List getAllTraceLinksAsBeautifiedStrings() { * * @return the list of {@link TraceLink SamCodeTraceLinks}. */ - public List> getSamCodeTraceLinks() { + public List> getSamCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSamCodeTraceLinks().toList(); @@ -127,7 +127,7 @@ public List getAllTraceLinksAsBeautifiedStrings() { * * @return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. */ - public List> getSadCodeTraceLinks() { + public List> getSadCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { return samCodeTraceabilityState.getSadCodeTraceLinks().toList(); From 9be9982d6610f12c5aa196423afa70126c27bdab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 17:44:04 +0200 Subject: [PATCH 072/115] Unify spelling of subphrase --- .../mcse/ardoco/core/api/text/Phrase.java | 4 +-- .../core/common/util/TraceLinkUtilities.java | 1 - .../converter/ConverterUtil.java | 4 +-- .../textobject/PhraseImpl.java | 30 +++++++++---------- .../textobject/SentenceImpl.java | 4 +-- .../textproviderjson/textobject/WordImpl.java | 4 +-- .../core/textproviderjson/PhraseImplTest.java | 10 +++---- .../ardoco/core/api/output/ArDoCoResult.java | 1 - 8 files changed, 28 insertions(+), 30 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java index c8ba64b61..7b52e6556 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; import java.io.Serializable; @@ -15,7 +15,7 @@ public interface Phrase extends Serializable, Comparable { ImmutableList getContainedWords(); - ImmutableList getSubPhrases(); + ImmutableList getSubphrases(); boolean isSuperPhraseOf(Phrase other); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 54e90159b..32d199ad0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -7,7 +7,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java index 0fbaced75..9016cea52 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.util.List; @@ -21,7 +21,7 @@ private ConverterUtil() { * @return the direct children of this phrase */ public static List getChildPhrases(Phrase parentPhrase) { - List subphrases = parentPhrase.getSubPhrases().toList(); + List subphrases = parentPhrase.getSubphrases().toList(); return subphrases.stream().filter(x -> isPhraseOnHighestLevel(subphrases, x)).toList(); } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java index 66709f3d1..01a3b6bae 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; import java.util.ArrayList; @@ -27,7 +27,7 @@ public class PhraseImpl implements Phrase { private MutableList nonPhraseWords; private MutableList phraseWords; private MutableList containedWords; - private MutableList subPhrases; + private MutableList subphrases; private MutableSortedMap phraseVector; private int sentenceNo = -1; private String text; @@ -83,44 +83,44 @@ public synchronized ImmutableList getContainedWords() { } @Override - public synchronized ImmutableList getSubPhrases() { - if (subPhrases == null) { - subPhrases = Lists.mutable.ofAll(childPhrases); + public synchronized ImmutableList getSubphrases() { + if (subphrases == null) { + subphrases = Lists.mutable.ofAll(childPhrases); for (Phrase childPhrase : childPhrases) { - subPhrases.addAll(childPhrase.getSubPhrases().toList()); + subphrases.addAll(childPhrase.getSubphrases().toList()); } } - return subPhrases.toImmutable(); + return subphrases.toImmutable(); } @Override public boolean isSuperPhraseOf(Phrase other) { - MutableList subphrases = Lists.mutable.ofAll(this.getSubPhrases()); + MutableList subphrases = Lists.mutable.ofAll(this.getSubphrases()); while (!subphrases.isEmpty()) { if (subphrases.contains(other)) { return true; } - subphrases = getSubPhrasesOfPhrases(subphrases); + subphrases = getSubphrasesOfPhrases(subphrases); } return false; } - private static MutableList getSubPhrasesOfPhrases(MutableList subphrases) { - MutableList subPhrasesOfPhrases = Lists.mutable.empty(); + private static MutableList getSubphrasesOfPhrases(MutableList subphrases) { + MutableList subphrasesOfPhrases = Lists.mutable.empty(); for (Phrase subphrase : subphrases) { - subPhrasesOfPhrases.addAll(subphrase.getSubPhrases().castToList()); + subphrasesOfPhrases.addAll(subphrase.getSubphrases().castToList()); } - return subPhrasesOfPhrases; + return subphrasesOfPhrases; } @Override public boolean isSubPhraseOf(Phrase other) { - MutableList subphrases = Lists.mutable.ofAll(other.getSubPhrases()); + MutableList subphrases = Lists.mutable.ofAll(other.getSubphrases()); while (!subphrases.isEmpty()) { if (subphrases.contains(this)) { return true; } - subphrases = getSubPhrasesOfPhrases(subphrases); + subphrases = getSubphrasesOfPhrases(subphrases); } return false; } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java index 25cdb5ca5..3ec9cbec5 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; import java.util.ArrayList; @@ -51,7 +51,7 @@ public String getText() { public ImmutableList getPhrases() { List allPhrases = new ArrayList<>(this.phrases.toList()); for (Phrase phrase : this.phrases.toList()) { - allPhrases.addAll(phrase.getSubPhrases().toList()); + allPhrases.addAll(phrase.getSubphrases().toList()); } return Lists.immutable.ofAll(allPhrases); } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java index 78f6e3eab..ea3a66ad8 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; import java.util.List; @@ -119,7 +119,7 @@ private Phrase loadPhrase() { var subPhrases = List.of(currentPhrase); while (!subPhrases.isEmpty()) { currentPhrase = subPhrases.getFirst(); - subPhrases = currentPhrase.getSubPhrases().toList().stream().filter(p -> p.getContainedWords().contains(this)).toList(); + subPhrases = currentPhrase.getSubphrases().toList().stream().filter(p -> p.getContainedWords().contains(this)).toList(); } return currentPhrase; } diff --git a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java index 58ad39101..fbcc082f7 100644 --- a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java +++ b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson; import org.junit.jupiter.api.Assertions; @@ -51,13 +51,13 @@ void testGetContainedWords() { } @Test - void testGetSubPhrases() { - Assertions.assertEquals(baselinePhrase.getSubPhrases().size(), phraseImplInstance.getSubPhrases().size()); + void testGetSubphrases() { + Assertions.assertEquals(baselinePhrase.getSubphrases().size(), phraseImplInstance.getSubphrases().size()); } @Test void testIsSuperPhraseOf() { - Phrase subphrase = phraseImplInstance.getSubPhrases().get(0); + Phrase subphrase = phraseImplInstance.getSubphrases().get(0); Assertions.assertAll(// () -> Assertions.assertTrue(phraseImplInstance.isSuperPhraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSuperPhraseOf( phraseImplInstance)), () -> Assertions.assertFalse(subphrase.isSuperPhraseOf(phraseImplInstance))// @@ -66,7 +66,7 @@ void testIsSuperPhraseOf() { @Test void testIsSubPhraseOf() { - Phrase subphrase = phraseImplInstance.getSubPhrases().get(0); + Phrase subphrase = phraseImplInstance.getSubphrases().get(0); Assertions.assertAll(// () -> Assertions.assertFalse(phraseImplInstance.isSubPhraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSubPhraseOf( phraseImplInstance)), () -> Assertions.assertTrue(subphrase.isSubPhraseOf(phraseImplInstance))// diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 84c61fc2f..c2bc851f7 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -21,7 +21,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; From 494920515a847306bdb24184dfe82ac397fe286c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 18:01:26 +0200 Subject: [PATCH 073/115] Fix Javadoc errors --- .../api/stage/codetraceability/CodeTraceabilityState.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index 1ac5e896c..6ecaf93b9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -18,7 +18,7 @@ public interface CodeTraceabilityState extends PipelineStepData { String ID = "CodeTraceabilityState"; /** - * Add a collection of {@link SamCodeTraceLink SamCodeTraceLinks} to this state. + * Add a collection of architecture to model links to this state. * * @param traceLinks the trace links to add * @return whether the operation was successful @@ -26,9 +26,9 @@ public interface CodeTraceabilityState extends PipelineStepData { boolean addSamCodeTraceLinks(Collection> traceLinks); /** - * Return a set of stored {@link SamCodeTraceLink SamCodeTraceLinks}. + * Return a set of stored architecture to model links. * - * @return set of stored {@link SamCodeTraceLink SamCodeTraceLinks} + * @return set of stored architecture to model links */ ImmutableSet> getSamCodeTraceLinks(); From f16a8db95c76c55bd0993507ba94b1bafb902d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 18:13:03 +0200 Subject: [PATCH 074/115] Add constants to architecture tests --- .../tests/architecture/ArchitectureTest.java | 109 +++++++++++------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index 2ccf28460..5fb7d48c7 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -10,75 +10,106 @@ @AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") public class ArchitectureTest { + + // Package constants + private static final String PACKAGE_EXECUTION = "..execution.."; + private static final String PACKAGE_TESTS = "..tests.."; + private static final String PACKAGE_MODELS = "..models.."; + private static final String PACKAGE_RECOMMENDATION_GENERATOR = "..recommendationgenerator.."; + private static final String PACKAGE_CONNECTION_GENERATOR = "..connectiongenerator.."; + private static final String PACKAGE_INCONSISTENCY = "..inconsistency.."; + private static final String PACKAGE_INCONSISTENCY_DETECTION = "..id.."; // InconsistencyDetection + private static final String PACKAGE_PIPELINE = "..pipeline.."; + private static final String PACKAGE_COMMON = "..common.."; + private static final String PACKAGE_OUTPUT = "..output.."; + private static final String PACKAGE_CODE_TRACEABILITY = "..codetraceability.."; + private static final String PACKAGE_TRACE_LINKS = "..tracelinks.."; + private static final String PACKAGE_API = "..api.."; + private static final String PACKAGE_TRACE_LINK = "..tracelink.."; + private static final String PACKAGE_DATA = "..data.."; + private static final String PACKAGE_TEXT_EXTRACTION = "..textextraction.."; + + // Layer name constants + private static final String LAYER_COMMON = "Common"; + private static final String LAYER_TEXT_EXTRACTOR = "TextExtractor"; + private static final String LAYER_MODEL_EXTRACTOR = "ModelExtractor"; + private static final String LAYER_RECOMMENDATION_GENERATOR = "RecommendationGenerator"; + private static final String LAYER_CONNECTION_GENERATOR = "ConnectionGenerator"; + private static final String LAYER_INCONSISTENCY_DETECTION = "InconsistencyDetection"; + private static final String LAYER_CODE_TRACEABILITY = "CodeTraceability"; + private static final String LAYER_PIPELINE = "Pipeline"; + private static final String LAYER_EXECUTION = "Execution"; + @ArchTest public static final ArchRule noDependencyOnExecution = classes().that() - .resideInAPackage("..execution..") + .resideInAPackage(PACKAGE_EXECUTION) .should() .onlyHaveDependentClassesThat() - .resideInAnyPackage("..execution..", "..tests.."); + .resideInAnyPackage(PACKAGE_EXECUTION, PACKAGE_TESTS); @ArchTest public static final ArchRule modelInstancesOnlyAfterModelExtraction = classes().that() .haveSimpleName("Model") .should() .onlyHaveDependentClassesThat() - .resideInAnyPackage("..models..", "..recommendationgenerator..", "..connectiongenerator..", "..inconsistency..", "..id..", "..pipeline..", - "..common..", "..output..", "..tests.."); + .resideInAnyPackage(PACKAGE_MODELS, PACKAGE_RECOMMENDATION_GENERATOR, PACKAGE_CONNECTION_GENERATOR, PACKAGE_INCONSISTENCY, + PACKAGE_INCONSISTENCY_DETECTION, PACKAGE_PIPELINE, PACKAGE_COMMON, PACKAGE_OUTPUT, PACKAGE_TESTS); @ArchTest public static final ArchRule linksOnlyAfterConnectionGenerator = classes().that() .haveSimpleNameEndingWith("Link") .should() .onlyHaveDependentClassesThat() - .resideInAnyPackage("..connectiongenerator..", "..codetraceability..", "..tracelinks..", "..inconsistency..", "..id..", "..pipeline..", - "..common..", "..api..", "..tests.."); + .resideInAnyPackage(PACKAGE_CONNECTION_GENERATOR, PACKAGE_CODE_TRACEABILITY, PACKAGE_TRACE_LINKS, PACKAGE_INCONSISTENCY, + PACKAGE_INCONSISTENCY_DETECTION, PACKAGE_PIPELINE, PACKAGE_COMMON, PACKAGE_API, PACKAGE_TESTS); @ArchTest public static final ArchRule usingLinkAsNamingOnlyInConnectionGenerator = classes().that() .haveSimpleNameEndingWith("Link") .should() - .resideInAnyPackage("..tracelink..", "..codetraceability..", "..connectiongenerator.."); + .resideInAnyPackage(PACKAGE_TRACE_LINK, PACKAGE_CODE_TRACEABILITY, PACKAGE_CONNECTION_GENERATOR); @ArchTest public static final ArchRule inconsistencyOnlyAfterInconsistencyDetection = classes().that() .haveSimpleNameContaining("Inconsistency") .should() .onlyHaveDependentClassesThat() - .resideInAnyPackage("..inconsistency..", "..id..", "..execution..", "..api..", "..common..", "..tests.."); + .resideInAnyPackage(PACKAGE_INCONSISTENCY, PACKAGE_INCONSISTENCY_DETECTION, PACKAGE_EXECUTION, PACKAGE_API, PACKAGE_COMMON, PACKAGE_TESTS); @ArchTest public static final ArchRule layerRule = layeredArchitecture().consideringAllDependencies() // Layer definition - .layer("Common") - .definedBy("..common..", "..data..", "..api..", "..tests..") - .layer("TextExtractor") - .definedBy("..textextraction..") - .layer("ModelExtractor") - .definedBy("..models..") - .layer("RecommendationGenerator") - .definedBy("..recommendationgenerator..") - .layer("ConnectionGenerator") - .definedBy("..connectiongenerator..") - .layer("InconsistencyDetection") - .definedBy("..inconsistency..", "..id..") - .layer("CodeTraceability") - .definedBy("..codetraceability..") - .layer("Pipeline") - .definedBy("..pipeline..") - .layer("Execution") - .definedBy("..execution..") + .layer(LAYER_COMMON) + .definedBy(PACKAGE_COMMON, PACKAGE_DATA, PACKAGE_API, PACKAGE_TESTS) + .layer(LAYER_TEXT_EXTRACTOR) + .definedBy(PACKAGE_TEXT_EXTRACTION) + .layer(LAYER_MODEL_EXTRACTOR) + .definedBy(PACKAGE_MODELS) + .layer(LAYER_RECOMMENDATION_GENERATOR) + .definedBy(PACKAGE_RECOMMENDATION_GENERATOR) + .layer(LAYER_CONNECTION_GENERATOR) + .definedBy(PACKAGE_CONNECTION_GENERATOR) + .layer(LAYER_INCONSISTENCY_DETECTION) + .definedBy(PACKAGE_INCONSISTENCY, PACKAGE_INCONSISTENCY_DETECTION) + .layer(LAYER_CODE_TRACEABILITY) + .definedBy(PACKAGE_CODE_TRACEABILITY) + .layer(LAYER_PIPELINE) + .definedBy(PACKAGE_PIPELINE) + .layer(LAYER_EXECUTION) + .definedBy(PACKAGE_EXECUTION) // rule definition - .whereLayer("Execution") - .mayOnlyBeAccessedByLayers("Common") // Needed for tests - .whereLayer("InconsistencyDetection") - .mayOnlyBeAccessedByLayers("Pipeline", "Common", "Execution") - .whereLayer("ConnectionGenerator") - .mayOnlyBeAccessedByLayers("CodeTraceability", "InconsistencyDetection", "Pipeline", "Common", "Execution") - .whereLayer("RecommendationGenerator") - .mayOnlyBeAccessedByLayers("ConnectionGenerator", "InconsistencyDetection", "Pipeline", "Common", "Execution") - .whereLayer("TextExtractor") - .mayOnlyBeAccessedByLayers("RecommendationGenerator", "ConnectionGenerator", "InconsistencyDetection", "Pipeline", "Common", "Execution") - .whereLayer("ModelExtractor") - .mayOnlyBeAccessedByLayers("RecommendationGenerator", "ConnectionGenerator", "CodeTraceability", "InconsistencyDetection", "Pipeline", "Common", - "Execution"); + .whereLayer(LAYER_EXECUTION) + .mayOnlyBeAccessedByLayers(LAYER_COMMON) // Needed for tests + .whereLayer(LAYER_INCONSISTENCY_DETECTION) + .mayOnlyBeAccessedByLayers(LAYER_PIPELINE, LAYER_COMMON, LAYER_EXECUTION) + .whereLayer(LAYER_CONNECTION_GENERATOR) + .mayOnlyBeAccessedByLayers(LAYER_CODE_TRACEABILITY, LAYER_INCONSISTENCY_DETECTION, LAYER_PIPELINE, LAYER_COMMON, LAYER_EXECUTION) + .whereLayer(LAYER_RECOMMENDATION_GENERATOR) + .mayOnlyBeAccessedByLayers(LAYER_CONNECTION_GENERATOR, LAYER_INCONSISTENCY_DETECTION, LAYER_PIPELINE, LAYER_COMMON, LAYER_EXECUTION) + .whereLayer(LAYER_TEXT_EXTRACTOR) + .mayOnlyBeAccessedByLayers(LAYER_RECOMMENDATION_GENERATOR, LAYER_CONNECTION_GENERATOR, LAYER_INCONSISTENCY_DETECTION, LAYER_PIPELINE, LAYER_COMMON, + LAYER_EXECUTION) + .whereLayer(LAYER_MODEL_EXTRACTOR) + .mayOnlyBeAccessedByLayers(LAYER_RECOMMENDATION_GENERATOR, LAYER_CONNECTION_GENERATOR, LAYER_CODE_TRACEABILITY, LAYER_INCONSISTENCY_DETECTION, + LAYER_PIPELINE, LAYER_COMMON, LAYER_EXECUTION); } From b62947f4e49dffa9f1020117abd0be1eec88e451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 18 Jun 2025 18:14:04 +0200 Subject: [PATCH 075/115] Fix naming of parameter --- .../core/api/stage/connectiongenerator/ConnectionState.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 595ab3935..800331205 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -51,11 +51,11 @@ default ImmutableSet> getTraceLinks() { * Elsewhere a new instance link is created * * @param recommendedModelInstance the recommended instance - * @param ModelEntity the model instance + * @param modelEntity the model instance * @param claimant the claimant * @param probability the probability of the link */ - void addToLinks(RecommendedInstance recommendedModelInstance, ModelEntity ModelEntity, Claimant claimant, double probability); + void addToLinks(RecommendedInstance recommendedModelInstance, ModelEntity modelEntity, Claimant claimant, double probability); /** * Checks if an instance link is already contained by the state. From 413bfe72c122a442a567dbc90e1afb05ce9b73af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 20 Jun 2025 00:21:22 +0200 Subject: [PATCH 076/115] Cleanup core module. Fix javadocs. Remove unused parts. Rename missed methods. --- .../mcse/ardoco/core/api/InputTextData.java | 22 ++- .../ardoco/core/api/PreprocessingData.java | 18 ++- .../core/api/entity/ArchitectureEntity.java | 18 +++ .../api/entity/ArchitectureEntityImpl.java | 31 ++-- .../ardoco/core/api/entity/CodeEntity.java | 16 +++ .../mcse/ardoco/core/api/entity/Entity.java | 19 ++- .../ardoco/core/api/entity/ModelEntity.java | 31 ++++ .../ardoco/core/api/entity/TextEntity.java | 17 +++ .../ardoco/core/api/models/Metamodel.java | 24 +++- .../ardoco/core/api/models/ModelFormat.java | 18 +-- .../ardoco/core/api/models/ModelStates.java | 19 +-- .../arcotl/ArchitectureComponentModel.java | 29 ++++ .../api/models/arcotl/ArchitectureModel.java | 36 ++++- .../core/api/models/arcotl/CodeModel.java | 35 ++++- .../core/api/models/arcotl/CodeModelDTO.java | 13 +- ...eModelWithCompilationUnitsAndPackages.java | 38 ++++- .../CodeModelWithOnlyCompilationUnits.java | 48 ++++++- .../ardoco/core/api/models/arcotl/Model.java | 15 +- .../architecture/ArchitectureInterface.java | 18 +++ .../arcotl/architecture/ArchitectureItem.java | 14 +- .../architecture/ArchitectureMethod.java | 21 +++ .../api/models/arcotl/code/ClassUnit.java | 44 +++++- .../api/models/arcotl/code/CodeAssembly.java | 18 ++- .../arcotl/code/CodeCompilationUnit.java | 70 ++++++++- .../core/api/models/arcotl/code/CodeItem.java | 42 +++++- .../arcotl/code/CodeItemRepository.java | 21 ++- .../api/models/arcotl/code/CodeModule.java | 76 +++++++++- .../api/models/arcotl/code/CodePackage.java | 40 +++++- .../arcotl/code/ComputationalObject.java | 18 ++- .../models/arcotl/code/ControlElement.java | 18 ++- .../core/api/models/arcotl/code/Datatype.java | 81 ++++++++++- .../api/models/arcotl/code/InterfaceUnit.java | 44 +++++- .../arcotl/code/ProgrammingLanguages.java | 16 ++- .../CodeTraceabilityState.java | 28 ++-- .../codetraceability/ModelCodeTraceLink.java | 15 +- .../connectiongenerator/ConnectionState.java | 11 +- .../connectiongenerator/ConnectionStates.java | 14 +- .../connectiongenerator/InstanceLink.java | 15 +- .../SadModelTraceLink.java | 32 ++++- .../stage/inconsistency/Inconsistency.java | 16 +-- .../inconsistency/InconsistencyState.java | 47 +++++-- .../inconsistency/InconsistencyStates.java | 16 ++- .../inconsistency/InconsistentSentence.java | 54 +++++-- .../inconsistency/ModelInconsistency.java | 19 ++- .../inconsistency/TextInconsistency.java | 13 +- .../RecommendationState.java | 48 ++++--- .../RecommendationStates.java | 16 ++- .../RecommendedInstance.java | 48 +++++-- .../api/stage/textextraction/MappingKind.java | 5 +- .../api/stage/textextraction/NounMapping.java | 39 +++-- .../stage/textextraction/PhraseMapping.java | 30 +++- .../api/stage/textextraction/TextState.java | 93 +++++++++++- .../textextraction/TextStateStrategy.java | 28 ++-- .../ardoco/core/api/text/NlpInformant.java | 18 ++- .../mcse/ardoco/core/api/text/Phrase.java | 51 ++++++- .../mcse/ardoco/core/api/text/Sentence.java | 31 ++-- .../ardoco/core/api/text/SentenceEntity.java | 17 ++- .../mcse/ardoco/core/api/text/Text.java | 16 +-- .../mcse/ardoco/core/api/text/Word.java | 42 +++--- .../MultiHopTransitiveTraceLink.java | 11 +- .../ardoco/core/api/tracelink/TraceLink.java | 8 +- .../api/tracelink/TransitiveTraceLink.java | 10 ++ .../core/architecture/Deterministic.java | 4 +- .../core/architecture/NoHashCodeEquals.java | 4 +- .../core/common/AggregationFunctions.java | 19 ++- .../mcse/ardoco/core/common/ICopyable.java | 18 --- .../core/common/IdentifierProvider.java | 15 +- .../mcse/ardoco/core/common/JsonHandling.java | 10 +- .../ardoco/core/common/RepositoryHandler.java | 18 ++- .../PhraseMappingAggregatorStrategy.java | 27 +++- .../common/similarity/SimilarityUtils.java | 133 +++++++++++------- .../similarity/wordsim/ComparisonContext.java | 20 ++- .../similarity/wordsim/WordSimLoader.java | 5 +- .../similarity/wordsim/WordSimMeasure.java | 8 +- .../similarity/wordsim/WordSimUtils.java | 55 ++++---- .../measures/equality/EqualityMeasure.java | 17 ++- .../wordsim/strategy/AtLeastOneStrategy.java | 12 +- .../wordsim/strategy/AverageStrategy.java | 5 +- .../wordsim/strategy/ComparisonStrategy.java | 9 +- .../wordsim/strategy/MajorityStrategy.java | 12 +- .../wordsim/strategy/MaximumStrategy.java | 5 +- .../wordsim/strategy/MedianStrategy.java | 5 +- .../wordsim/strategy/SimilarityStrategy.java | 5 +- .../vector/RetrieveVectorException.java | 5 +- .../vector/VectorBasedWordSimMeasure.java | 15 +- .../wordsim/vector/VectorSqliteDatabase.java | 19 +-- .../wordsim/vector/VectorUtils.java | 11 +- .../wordsim/vector/WordVectorDataSource.java | 7 +- .../mcse/ardoco/core/common/tuple/Pair.java | 21 ++- .../mcse/ardoco/core/common/tuple/Triple.java | 10 +- .../common/util/CommonTextToolsConfig.java | 2 +- .../core/common/util/CommonUtilities.java | 56 +++++--- .../ardoco/core/common/util/Comparators.java | 22 +-- .../common/util/DataRepositoryHelper.java | 30 +--- .../core/common/util/ResourceAccessor.java | 21 ++- .../core/common/util/TraceLinkUtilities.java | 29 ++++ .../ardoco/core/common/util/WordHelper.java | 34 ++++- .../configuration/AbstractConfigurable.java | 17 +++ .../configuration/ChildClassConfigurable.java | 5 +- .../core/configuration/Configurable.java | 11 +- .../ConfigurationInstantiatorUtils.java | 6 +- .../core/configuration/IConfigurable.java | 15 +- .../core/configuration/NoConfiguration.java | 5 +- .../mcse/ardoco/core/data/AbstractState.java | 4 +- .../mcse/ardoco/core/data/Confidence.java | 12 +- .../mcse/ardoco/core/data/DataRepository.java | 9 +- .../core/data/DataRepositorySyncer.java | 10 ++ .../ardoco/core/data/PipelineStepData.java | 18 ++- .../ardoco/core/data/ProjectPipelineData.java | 10 +- .../core/pipeline/AbstractExecutionStage.java | 8 +- .../core/pipeline/AbstractPipelineStep.java | 7 +- .../mcse/ardoco/core/pipeline/Pipeline.java | 9 +- .../ardoco/core/pipeline/agent/Agent.java | 8 +- .../ardoco/core/pipeline/agent/Claimant.java | 4 +- .../ardoco/core/pipeline/agent/Informant.java | 5 +- .../core/pipeline/agent/PipelineAgent.java | 29 ++-- .../converter/ConverterUtil.java | 2 +- .../converter/ObjectToDtoConverter.java | 6 +- .../textobject/PhraseImpl.java | 10 +- .../textproviderjson/textobject/TextImpl.java | 4 +- .../textproviderjson/textobject/WordImpl.java | 4 +- .../core/textproviderjson/PhraseImplTest.java | 23 ++- .../core/textproviderjson/TextImplTest.java | 6 +- .../ardoco/core/api/output/ArDoCoResult.java | 77 +++++----- .../ardoco/core/common/util/FilePrinter.java | 27 +++- .../mcse/ardoco/core/execution/ArDoCo.java | 14 +- .../core/execution/ConfigurationHelper.java | 20 ++- .../execution/ProjectPipelineDataImpl.java | 6 +- .../execution/runner/AnonymousRunner.java | 6 +- .../core/execution/runner/ArDoCoRunner.java | 27 +++- .../mcse/ardoco/core/tests/TestUtil.java | 17 +++ .../tests/architecture/ArchitectureTest.java | 32 ++++- .../ardoco/core/tests/eval/GoldStandard.java | 21 +++ .../calculator/ResultCalculatorUtil.java | 18 +++ 134 files changed, 2303 insertions(+), 676 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/ICopyable.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java index 5793bc958..6ca7510d5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java @@ -1,20 +1,36 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api; +import java.io.Serial; + import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; -public class InputTextData implements PipelineStepData { +/** + * Container for input text data to be used as {@link PipelineStepData} in the pipeline. + */ +public final class InputTextData implements PipelineStepData { + @Serial private static final long serialVersionUID = -5404851121533249349L; public static final String ID = "InputTextData"; - private String text; + private final String text; + /** + * Constructs a new InputTextData instance. + * + * @param text the input text + */ public InputTextData(String text) { this.text = text; } + /** + * Returns the input text. + * + * @return the input text + */ public String getText() { return this.text; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java index c518204fe..ad91e504b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java @@ -1,24 +1,36 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api; +import java.io.Serial; + import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** - * This class serves as container for different data after preprocessing to store as {@link PipelineStepData}. Right now, this includes the preprocessed - * {@link Text} only. + * Container for data after preprocessing, to be stored as {@link PipelineStepData}. Currently holds the preprocessed {@link Text}. */ public class PreprocessingData implements PipelineStepData { + @Serial private static final long serialVersionUID = 8103545017098419675L; public static final String ID = "PreprocessingData"; private final Text preprocessedText; + /** + * Constructs a new PreprocessingData instance. + * + * @param preprocessedText the preprocessed text + */ public PreprocessingData(Text preprocessedText) { this.preprocessedText = preprocessedText; } + /** + * Returns the preprocessed text. + * + * @return the preprocessed text + */ public Text getText() { return this.preprocessedText; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java index 688401cd6..32956563a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntity.java @@ -1,13 +1,31 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; + +/** + * Abstract base class for entities that are part of the architecture model. + */ public abstract non-sealed class ArchitectureEntity extends ModelEntity { + + @Serial private static final long serialVersionUID = 5118724938904048363L; + /** + * Creates a new architecture entity with the specified name. + * + * @param name the name of the architecture entity + */ protected ArchitectureEntity(String name) { super(name); } + /** + * Creates a new architecture entity with the specified name and id. + * + * @param name the name of the architecture entity + * @param id the unique identifier + */ protected ArchitectureEntity(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 3b875f1cb..435cdaea5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; import java.util.Objects; import java.util.Optional; @@ -10,8 +11,12 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; +/** + * Implementation of an architecture entity, representing a concrete instance in the architecture model. + */ public class ArchitectureEntityImpl extends ArchitectureEntity { + @Serial private static final long serialVersionUID = 9185325416212743266L; private final String fullName; @@ -23,9 +28,9 @@ public class ArchitectureEntityImpl extends ArchitectureEntity { /** * Creates a new instance. * - * @param name name of the instance. - * @param type type of the instance. - * @param uid unique identifier of the instance needed for trace linking. + * @param name name of the instance + * @param type type of the instance + * @param uid unique identifier of the instance needed for trace linking */ public ArchitectureEntityImpl(String name, String type, String uid) { super(name, uid); @@ -46,41 +51,21 @@ public ArchitectureEntityImpl(String name, String type, String uid) { this.fullType = type; } - /** - * Returns the longest name of the instance. - * - * @return the original name of the instance - */ @Override public String getName() { return this.fullName; } - /** - * Returns the longest type of the instance. - * - * @return the original type of the instance - */ @Override public Optional getType() { return Optional.of(this.fullType); } - /** - * Returns all type parts of the instance. - * - * @return all type parts of the instance as list - */ @Override public Optional> getTypeParts() { return Optional.of(this.types.toImmutable()); } - /** - * Returns the unique identifier of the instance. - * - * @return the unique identifier of the instance - */ @Override public String getId() { return this.uid; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 52d76dd49..76cca66a8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -1,17 +1,33 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; import java.util.Optional; import org.eclipse.collections.api.list.ImmutableList; +/** + * Represents an entity that is part of the code model. + */ public non-sealed class CodeEntity extends ModelEntity { + @Serial private static final long serialVersionUID = 5520572653996476974L; + /** + * Creates a new code entity with the specified name. + * + * @param name the name of the code entity + */ protected CodeEntity(String name) { super(name); } + /** + * Creates a new code entity with the specified name and id. + * + * @param name the name of the code entity + * @param id the unique identifier + */ protected CodeEntity(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index b46a7348b..ee7f7df9c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; import java.io.Serializable; import java.util.Objects; @@ -9,10 +10,12 @@ import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; /** - * An entity defines the smallest unit of a trace link. + * Abstract base class for entities, the smallest unit of a trace link. + * Provides identity, name, and comparison logic. */ public abstract sealed class Entity implements Serializable, Comparable permits TextEntity, ModelEntity { + @Serial private static final long serialVersionUID = 5916408204883918465L; @JsonProperty @@ -21,6 +24,9 @@ public abstract sealed class Entity implements Serializable, Comparable @JsonProperty private String name; + /** + * Default constructor for deserialization frameworks. + */ protected Entity() { // Jackson this(null); @@ -35,11 +41,22 @@ protected Entity(String name) { this(name, IdentifierProvider.createId()); } + /** + * Creates a new entity with the specified name and id. + * + * @param name the name of the entity + * @param id the unique identifier + */ protected Entity(String name, String id) { this.name = name; this.id = Objects.requireNonNull(id); } + /** + * Returns the unique identifier of the entity. + * + * @return the entity's id + */ public String getId() { return this.id; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index eea890075..d9e85f2d8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; import java.util.Optional; import org.eclipse.collections.api.factory.Lists; @@ -9,8 +10,17 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; +/** + * Abstract base class for entities that are part of a model, such as architecture or code entities. + */ public abstract sealed class ModelEntity extends Entity permits ArchitectureEntity, CodeEntity { + @Serial + private static final long serialVersionUID = -3169247087879811254L; + + /** + * Default constructor for deserialization frameworks. + */ protected ModelEntity() { // Jackson super(null); @@ -25,14 +35,35 @@ protected ModelEntity(String name) { super(name); } + /** + * Creates a new entity with the specified name and id. + * + * @param name the name of the entity + * @param id the unique identifier + */ protected ModelEntity(String name, String id) { super(name, id); } + /** + * Returns the type of the entity, if available. + * + * @return an Optional containing the type, or empty if not available + */ public abstract Optional getType(); + /** + * Returns the type parts of the entity, if available. + * + * @return an Optional containing the type parts, or empty if not available + */ public abstract Optional> getTypeParts(); + /** + * Returns the parts of the entity's name. + * + * @return an immutable list of name parts + */ public ImmutableList getNameParts() { return splitIdentifierIntoParts(this.getName()).toImmutable(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java index 71f343234..2b0dd09f8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java @@ -1,13 +1,30 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.entity; +import java.io.Serial; + +/** + * Represents an entity that is part of the text model. + */ public non-sealed class TextEntity extends Entity { + @Serial private static final long serialVersionUID = 7693834560590279832L; + /** + * Creates a new text entity with the specified name. + * + * @param name the name of the text entity + */ protected TextEntity(String name) { super(name); } + /** + * Creates a new text entity with the specified name and id. + * + * @param name the name of the text entity + * @param id the unique identifier + */ protected TextEntity(String name, String id) { super(name, id); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 8769a99e6..213a17340 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -1,9 +1,25 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models; +/** + * Enum representing the supported metamodel types. + */ public enum Metamodel { - CODE_ONLY_COMPILATION_UNITS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, ARCHITECTURE_ONLY_COMPONENTS; + /** Code model with only compilation units. */ + CODE_ONLY_COMPILATION_UNITS, + /** Architecture model with components and interfaces. */ + ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, + /** Code model with compilation units and packages. */ + CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, + /** Architecture model with only components. */ + ARCHITECTURE_ONLY_COMPONENTS; + /** + * Checks if the given metamodel is a code model. + * + * @param metamodel the metamodel to check + * @return true if it is a code model, false otherwise + */ public static boolean isACodeModel(Metamodel metamodel) { return switch (metamodel) { case CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, CODE_ONLY_COMPILATION_UNITS -> true; @@ -11,6 +27,12 @@ public static boolean isACodeModel(Metamodel metamodel) { }; } + /** + * Checks if the given metamodel is an architecture model. + * + * @param metamodel the metamodel to check + * @return true if it is an architecture model, false otherwise + */ public static boolean isAnArchitectureModel(Metamodel metamodel) { return switch (metamodel) { case ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, ARCHITECTURE_ONLY_COMPONENTS -> true; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 40511e3c4..237b45581 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -2,23 +2,15 @@ package edu.kit.kastel.mcse.ardoco.core.api.models; /** - * Enum for the different types of supported architecture (meta-) models + * Enum for the different types of supported architecture (meta-) models. */ public enum ModelFormat { - /** - * Palladio Component Model - */ + /** Palladio Component Model. */ PCM, - /** - * Unified Modeling Language (UML) - */ + /** Unified Modeling Language (UML). */ UML, - /** - * RAW Model. E.g., text-based models. - */ + /** RAW Model, e.g., text-based models. */ RAW, - /** - * Code Model for the ArCoTL framework. - */ + /** Code Model for the ArCoTL framework. */ ACM } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index 41eb03926..696a993f0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -10,18 +10,19 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; -public class ModelStates implements PipelineStepData { +/** + * Holds all models for a pipeline step. + */ +public final class ModelStates implements PipelineStepData { + /** + * The ID for this data object. + */ public static final String ID = "ModelStatesData"; + @Serial private static final long serialVersionUID = -603436842247064371L; private final SortedMap models = new TreeMap<>(); - /** - * Constructor to create a {@link ModelStates} object that holds all {@link Model}s - */ - public ModelStates() { - } - /** * Return the set of IDs of all {@link Model Models} that are contained within this object. * @@ -32,7 +33,7 @@ public SortedSet getMetamodels() { } /** - * Adds a {@link Model} with the given id to the set of {@link Model Models} + * Adds a {@link Model} with the given id to the set of {@link Model Models}. * * @param id the id * @param model the {@link Model} @@ -42,7 +43,7 @@ public void addModel(Metamodel id, Model model) { } /** - * Returns the {@link Model} with the given id + * Returns the {@link Model} with the given id. * * @param id the id * @return the corresponding {@link Model} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java index cdc3db4e0..a1cc8ad3b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java @@ -12,14 +12,28 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +/** + * Represents a model containing only architecture components. + * Provides access to architecture components and their type identifiers. + */ public final class ArchitectureComponentModel extends Model { private final ArchitectureModel architectureModel; + /** + * Creates a new ArchitectureComponentModel. + * + * @param architectureModel the architecture model + */ public ArchitectureComponentModel(ArchitectureModel architectureModel) { this.architectureModel = Objects.requireNonNull(architectureModel); } + /** + * Returns the architecture components in this model. + * + * @return list of architecture components + */ @Override public List getContent() { List entities = new ArrayList<>(); @@ -31,16 +45,31 @@ public List getContent() { return entities; } + /** + * Returns the endpoints of this model. + * + * @return list of model entities + */ @Override public List getEndpoints() { return this.getContent(); } + /** + * Returns the metamodel of this model. + * + * @return the metamodel + */ @Override public Metamodel getMetamodel() { return Metamodel.ARCHITECTURE_ONLY_COMPONENTS; } + /** + * Returns the type identifiers of the architecture components in this model. + * + * @return sorted set of type identifiers + */ @Override public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index dd63b3b3d..5bacb4a6a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -9,14 +9,15 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; /** - * An architecture model that is an AMTL instance. + * Represents an architecture model that is an AMTL instance. + * Provides access to architecture items and their type identifiers. */ public final class ArchitectureModel extends Model { private final List content; /** - * Creates a new architecture model that is an AMTL instance. The model has the specified architecture items as content. + * Creates a new architecture model that is an AMTL instance. * * @param content the content of the architecture model */ @@ -24,21 +25,41 @@ public ArchitectureModel(List content) { this.content = content; } + /** + * Returns the content of the architecture model. + * + * @return list of architecture items + */ @Override public List getContent() { return this.content; } + /** + * Returns the endpoints of this model. + * + * @return list of architecture items + */ @Override public List getEndpoints() { return this.getContent(); } + /** + * Returns the metamodel of this architecture model. + * + * @return the metamodel + */ @Override public Metamodel getMetamodel() { return Metamodel.ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES; } + /** + * Returns the type identifiers of the architecture items in this model. + * + * @return sorted set of type identifiers + */ @Override public SortedSet getTypeIdentifiers() { @@ -54,6 +75,12 @@ public SortedSet getTypeIdentifiers() { } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -65,6 +92,11 @@ public boolean equals(Object o) { return this.content.equals(that.content); } + /** + * Returns the hash code for this architecture model. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index 5f0e070df..b6e52975d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -13,7 +13,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; /** - * A code model that is a CMTL instance. + * Represents a code model that is a CMTL instance. + * Provides access to code items and code packages. */ public abstract sealed class CodeModel extends Model permits CodeModelWithCompilationUnitsAndPackages, CodeModelWithOnlyCompilationUnits { @@ -23,6 +24,12 @@ public abstract sealed class CodeModel extends Model permits CodeModelWithCompil private boolean initialized; + /** + * Creates a new code model with the specified code item repository and content IDs. + * + * @param codeItemRepository the code item repository + * @param content list of code item IDs + */ protected CodeModel(CodeItemRepository codeItemRepository, List content) { this.initialized = true; this.codeItemRepository = codeItemRepository; @@ -30,9 +37,10 @@ protected CodeModel(CodeItemRepository codeItemRepository, List content) } /** - * Creates a new code model that is a CMTL instance. The model has the specified code items as content. + * Creates a new code model with the specified code item repository and content. * - * @param content the content of the code model + * @param codeItemRepository the code item repository + * @param content set of code items */ protected CodeModel(CodeItemRepository codeItemRepository, SortedSet content) { this.initialized = true; @@ -43,6 +51,11 @@ protected CodeModel(CodeItemRepository codeItemRepository, SortedSet getContentIds() { /** * Returns all code packages directly or indirectly owned by this code model. * - * @return all code packages of this code model + * @return list of all code packages */ public List getAllPackages() { List codePackages = new ArrayList<>(); @@ -78,6 +91,9 @@ public List getAllPackages() { return codePackages; } + /** + * Initializes the code model if not already initialized. + */ protected synchronized void initialize() { if (this.initialized) { return; @@ -86,6 +102,12 @@ protected synchronized void initialize() { this.initialized = true; } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -97,6 +119,11 @@ public boolean equals(Object o) { return Objects.equals(this.content, codeModel.content); } + /** + * Returns the hash code for this code model. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java index 93b843f5a..76ae6e1f8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java @@ -7,8 +7,19 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +/** + * Data transfer object for the code model. + * Contains a {@link CodeItemRepository} and a list of content identifiers. + * + * @param codeItemRepository the repository of code items + * @param content the list of content identifiers + */ public record CodeModelDTO(@JsonProperty CodeItemRepository codeItemRepository, @JsonProperty List content) { - + /** + * Returns the code item repository, initializing it if necessary. + * + * @return the code item repository + */ @Override public CodeItemRepository codeItemRepository() { codeItemRepository.init(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index cbf5840f9..de1f79682 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -10,43 +10,75 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +/** + * Code model with compilation units and packages. + * Provides endpoints and type identifiers for code items. + */ public final class CodeModelWithCompilationUnitsAndPackages extends CodeModel { - private final CodeModelWithOnlyCompilationUnits codeModel; + /** + * Creates a new code model from a DTO. + * + * @param codeModelDTO the code model DTO + */ public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDTO) { super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); this.codeModel = new CodeModelWithOnlyCompilationUnits(codeModelDTO); } + /** + * Creates a new code model from a repository and content. + * + * @param codeItemRepository the code item repository + * @param content the code items + */ public CodeModelWithCompilationUnitsAndPackages(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); this.codeModel = new CodeModelWithOnlyCompilationUnits(codeItemRepository, content); } + /** + * Returns the content of this code model. + * + * @return list of code items + */ @Override public List getContent() { return this.getEndpoints(); } + /** + * Returns the endpoints of this code model. + * + * @return list of code items + */ @Override public List getEndpoints() { List entities = new ArrayList<>(); codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); - entities.addAll(codeModel.getAllPackages()); return entities; } + /** + * Returns the metamodel of this code model. + * + * @return the metamodel + */ @Override public Metamodel getMetamodel() { return Metamodel.CODE_WITH_COMPILATION_UNITS_AND_PACKAGES; } + /** + * Returns the type identifiers of the code items in this model. + * + * @return sorted set of type identifiers + */ @Override public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); - for (var codeItem : this.getContent()) { var type = codeItem.getType(); if (type.isPresent()) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java index f867ac9d7..901359472 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java @@ -13,16 +13,37 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +/** + * Code model containing only compilation units. + * Provides endpoints and type identifiers for compilation units. + */ @Deterministic public final class CodeModelWithOnlyCompilationUnits extends CodeModel { + + /** + * Creates a new code model from a DTO. + * + * @param codeModelDTO the code model DTO + */ public CodeModelWithOnlyCompilationUnits(CodeModelDTO codeModelDTO) { super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); } + /** + * Creates a new code model from a repository and content. + * + * @param codeItemRepository the code item repository + * @param content the code items + */ public CodeModelWithOnlyCompilationUnits(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); } + /** + * Returns the endpoints of this code model. + * + * @return list of compilation units + */ @Override public List getEndpoints() { List entities = new ArrayList<>(); @@ -30,21 +51,35 @@ public List getEndpoints() { return entities; } + /** + * Returns the content of this code model. + * + * @return list of code items + */ @Override public List getContent() { this.initialize(); return this.codeItemRepository.getCodeItemsFromIds(this.content); } + /** + * Returns the metamodel of this code model. + * + * @return the metamodel + */ @Override public Metamodel getMetamodel() { return Metamodel.CODE_ONLY_COMPILATION_UNITS; } + /** + * Returns the type identifiers of the code items in this model. + * + * @return sorted set of type identifiers + */ @Override public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); - for (var codeItem : this.getContent()) { var type = codeItem.getType(); type.ifPresent(identifiers::add); @@ -52,6 +87,12 @@ public SortedSet getTypeIdentifiers() { return identifiers; } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -64,6 +105,11 @@ public boolean equals(Object o) { return Objects.equals(this.content, codeModel.content); } + /** + * Returns the hash code for this code model. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index a83217501..f2f177645 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -8,6 +8,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; +/** + * Abstract base class for all models. + * Provides unique ID and access to content, endpoints, metamodel, and type identifiers. + */ public abstract sealed class Model permits ArchitectureModel, ArchitectureComponentModel, CodeModel { private final String id = IdentifierProvider.createId(); @@ -24,18 +28,23 @@ public String getId() { public abstract List getContent(); /** - * Returns the endpoints of this model. Contains all targetable elements for trace links, e.g. compilation units in case of CodeModel. + * Returns the endpoints of this model. Contains all targetable elements for trace links. * * @return the endpoints of this model */ public abstract List getEndpoints(); + /** + * Returns the metamodel type of this model. + * + * @return the metamodel type + */ public abstract Metamodel getMetamodel(); /** - * Returns a set of identifiers for the types in the model state. + * Returns a set of identifiers for the types in the model. * - * @return Set of identifiers for existing types + * @return set of identifiers for existing types */ public abstract SortedSet getTypeIdentifiers(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 49eb5ae1a..14743454d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -1,24 +1,42 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.io.Serial; import java.util.Objects; import java.util.Optional; import java.util.SortedSet; import org.eclipse.collections.api.list.ImmutableList; +/** + * Represents an interface in the architecture model. + * Contains method signatures and models interfaces in the software architecture. + */ public final class ArchitectureInterface extends ArchitectureItem { + @Serial private static final long serialVersionUID = 2232013345166120690L; private final SortedSet signatures; + /** + * Creates a new ArchitectureInterface. + * + * @param name the name of the interface + * @param id the unique identifier + * @param signatures the method signatures of this interface + */ public ArchitectureInterface(String name, String id, SortedSet signatures) { super(name, id); this.signatures = signatures; } + /** + * Returns the method signatures of this interface. + * + * @return method signatures + */ public SortedSet getSignatures() { return this.signatures; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java index 21fae0e0b..880bd98ba 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java @@ -1,22 +1,24 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.io.Serial; import java.util.Optional; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; /** - * An architecture item of an architecture model. A possible candidate for the architecture endpoint of a trace link that connects corresponding elements of an - * architecture model and a code model. + * Represents an item in the architecture model. + * Serves as a base class for architecture model elements. */ public abstract sealed class ArchitectureItem extends ArchitectureEntity permits ArchitectureComponent, ArchitectureInterface, ArchitectureMethod { + @Serial private static final long serialVersionUID = -216185356134452192L; /** * Creates a new architecture item with the specified name. * - * @param name the name of the architecture item to be created + * @param name the name of the architecture item */ protected ArchitectureItem(String name) { super(name); @@ -25,15 +27,15 @@ protected ArchitectureItem(String name) { /** * Creates a new architecture item with the specified name and identifier. * - * @param name the name of the architecture item to be created - * @param id the identifier of the architecture item to be created + * @param name the name of the architecture item + * @param id the identifier of the architecture item */ protected ArchitectureItem(String name, String id) { super(name, id); } /** - * Return the type of the architecture item as string + * Returns the type of the architecture item as a string. * * @return the type of the architecture item */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index 5d850f3f5..1aeb468e0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -1,24 +1,45 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.io.Serial; import java.util.Optional; import org.eclipse.collections.api.list.ImmutableList; +/** + * Represents a method in the architecture model. + * Used as a signature in interfaces or components. + */ public final class ArchitectureMethod extends ArchitectureItem { + @Serial private static final long serialVersionUID = 6560555992331464264L; + /** + * Creates a new ArchitectureMethod. + * + * @param name the name of the method + */ public ArchitectureMethod(String name) { super(name); } + /** + * Returns the type of this method (currently not specified). + * + * @return empty optional + */ @Override public Optional getType() { // Not implemented yet. Methods currently have no specified type. return Optional.empty(); } + /** + * Returns the type parts of this method (currently not specified). + * + * @return empty optional + */ @Override public Optional> getTypeParts() { // Not implemented yet. Methods currently have no specified type. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java index 126ea60ba..b3131d51b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; @@ -9,20 +10,35 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a class unit in the code model. + * Contains code items representing the contents of a class, such as methods and fields. + */ @JsonTypeName("ClassUnit") public final class ClassUnit extends Datatype { + @Serial private static final long serialVersionUID = 354013115794534271L; @JsonProperty private final List content; + /** + * Default constructor for Jackson. + */ @SuppressWarnings("unused") private ClassUnit() { // Jackson this.content = new ArrayList<>(); } + /** + * Creates a new class unit with the specified name and content. + * + * @param codeItemRepository the code item repository + * @param name the name of the class unit + * @param content the content of the class unit + */ public ClassUnit(CodeItemRepository codeItemRepository, String name, SortedSet content) { super(codeItemRepository, name); this.content = new ArrayList<>(); @@ -31,16 +47,31 @@ public ClassUnit(CodeItemRepository codeItemRepository, String name, SortedSet getContentIds() { return this.content; } + /** + * Returns the content of this class unit as a list of code items. + * + * @return list of code items + */ @Override public List getContent() { return this.codeItemRepository.getCodeItemsFromIds(this.content); } + /** + * Returns all datatypes contained in this class unit, including itself and all nested datatypes. + * + * @return list of all datatypes + */ @Override public List getAllDataTypes() { List result = new ArrayList<>(); @@ -49,6 +80,12 @@ public List getAllDataTypes() { return result; } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -60,6 +97,11 @@ public boolean equals(Object o) { return this.content.equals(classUnit.content); } + /** + * Returns the hash code for this class unit. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java index aba02d335..acac676a4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java @@ -1,20 +1,36 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.SortedSet; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a code assembly in the code model. + * Specialized type of {@link CodeModule}. + */ @JsonTypeName("CodeAssembly") public final class CodeAssembly extends CodeModule { + @Serial private static final long serialVersionUID = 3082912967900986071L; + /** + * Default constructor for Jackson. + */ @SuppressWarnings("unused") private CodeAssembly() { // Jackson } + /** + * Constructs a new CodeAssembly with the given repository, name, and content. + * + * @param codeItemRepository the code item repository + * @param name the name of the assembly + * @param content the content of the assembly + */ public CodeAssembly(CodeItemRepository codeItemRepository, String name, SortedSet content) { super(codeItemRepository, name, content); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index 44ca520bc..b2631e1c6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -12,12 +13,13 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * A compilation unit of a code model. A possible candidate for the code endpoint of a trace link that connects corresponding elements of an architecture model - * and a code model. + * Represents a compilation unit in the code model. + * Can serve as the code endpoint of a trace link. */ @JsonTypeName("CodeCompilationUnit") public final class CodeCompilationUnit extends CodeModule { + @Serial private static final long serialVersionUID = 6749513760670983294L; @JsonProperty @@ -27,11 +29,24 @@ public final class CodeCompilationUnit extends CodeModule { @JsonProperty private String language; + /** + * Default constructor for Jackson. + */ @SuppressWarnings("unused") private CodeCompilationUnit() { // Jackson } + /** + * Creates a new CodeCompilationUnit. + * + * @param codeItemRepository the code item repository + * @param name the name of the compilation unit + * @param content the content of the compilation unit + * @param pathElements the path elements + * @param extension the file extension + * @param language the programming language + */ public CodeCompilationUnit(CodeItemRepository codeItemRepository, String name, SortedSet content, List pathElements, String extension, String language) { super(codeItemRepository, name, content); @@ -40,10 +55,20 @@ public CodeCompilationUnit(CodeItemRepository codeItemRepository, String name, S this.language = language; } + /** + * Returns the programming language of this compilation unit. + * + * @return the language + */ public String getLanguage() { return this.language; } + /** + * Returns all datatypes contained in this compilation unit. + * + * @return list of all datatypes + */ @Override public List getAllDataTypes() { List result = new ArrayList<>(); @@ -51,6 +76,11 @@ public List getAllDataTypes() { return result; } + /** + * Returns all compilation units contained in this unit (itself). + * + * @return set containing this compilation unit + */ @Override public SortedSet getAllCompilationUnits() { SortedSet result = new TreeSet<>(); @@ -58,6 +88,11 @@ public SortedSet getAllCompilationUnits() { return result; } + /** + * Returns the names of parent packages. + * + * @return list of parent package names + */ public List getParentPackageNames() { List parents = new ArrayList<>(); CodeModule parent = this; @@ -70,10 +105,20 @@ public List getParentPackageNames() { return parents; } + /** + * Returns the path elements of this compilation unit. + * + * @return list of path elements + */ public List getPathElements() { return new ArrayList<>(this.pathElements); } + /** + * Returns the full path of this compilation unit. + * + * @return the path + */ public String getPath() { StringBuilder pathBuilder = new StringBuilder(); for (String pathElement : this.pathElements) { @@ -87,6 +132,11 @@ public String getPath() { return pathBuilder.toString(); } + /** + * Returns the type of this compilation unit as a string. + * + * @return the type + */ @Override public Optional getType() { // Assumption mostly one class per unit @@ -110,11 +160,22 @@ public Optional getType() { return Optional.empty(); } + /** + * Returns a string representation of this compilation unit. + * + * @return string representation + */ @Override public String toString() { return this.getPath(); } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -127,6 +188,11 @@ public boolean equals(Object o) { return Objects.equals(this.language, that.language); } + /** + * Returns the hash code for this compilation unit. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java index 680cc60bd..97c8f8977 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -14,7 +15,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.CodeEntity; /** - * A code item of a code model. + * Abstract base class for items in the code model. + * Provides methods to access content and relationships between code elements. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ // @@ -24,6 +26,7 @@ }) public abstract sealed class CodeItem extends CodeEntity permits CodeModule, ComputationalObject, Datatype { + @Serial private static final long serialVersionUID = 7089107378955018027L; @JsonIgnore @@ -37,7 +40,8 @@ public abstract sealed class CodeItem extends CodeEntity permits CodeModule, Com /** * Creates a new code item with the specified name. * - * @param name the name of the code item to be created + * @param codeItemRepository the code item repository + * @param name the name of the code item */ protected CodeItem(CodeItemRepository codeItemRepository, String name) { super(name); @@ -45,6 +49,11 @@ protected CodeItem(CodeItemRepository codeItemRepository, String name) { this.codeItemRepository.addCodeItem(this); } + /** + * Registers the current code item repository for this code item. + * + * @param codeItemRepository the code item repository to register + */ void registerCurrentCodeItemRepository(CodeItemRepository codeItemRepository) { this.codeItemRepository = codeItemRepository; } @@ -52,22 +61,37 @@ void registerCurrentCodeItemRepository(CodeItemRepository codeItemRepository) { /** * Returns the content of this code item. * - * @return the content of this code item + * @return list of content code items */ public List getContent() { return new ArrayList<>(); } + /** + * Returns all data types contained in this code item. + * + * @return list of all data types + */ public List getAllDataTypes() { return new ArrayList<>(); } + /** + * Returns all data types and this code item itself as a sorted set. + * + * @return sorted set of all data types and this code item + */ public SortedSet getAllDataTypesAndSelf() { SortedSet result = new TreeSet<>(this.getAllDataTypes()); result.add(this); return result; } + /** + * Returns all declared methods in this code item as a sorted set. + * + * @return sorted set of declared methods + */ public SortedSet getDeclaredMethods() { SortedSet methods = new TreeSet<>(); for (CodeItem codeItem : this.getContent()) { @@ -78,10 +102,20 @@ public SortedSet getDeclaredMethods() { return methods; } + /** + * Returns all compilation units in this code item as a sorted set. + * + * @return sorted set of compilation units + */ public SortedSet getAllCompilationUnits() { return new TreeSet<>(); } + /** + * Returns all code packages in this code item as a sorted set. + * + * @return sorted set of code packages + */ public SortedSet getAllPackages() { return new TreeSet<>(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java index ed4039a1c..7d9ac2409 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.io.Serializable; import java.util.List; import java.util.Objects; @@ -10,8 +11,12 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +/** + * Repository for storing and managing {@link CodeItem} instances by their IDs. + */ public class CodeItemRepository implements Serializable { + @Serial private static final long serialVersionUID = 7081204548135982601L; @JsonProperty @@ -19,6 +24,11 @@ public class CodeItemRepository implements Serializable { @JsonIgnore private boolean initialized = false; + /** + * Returns a copy of the repository map. + * + * @return map of code item IDs to code items + */ public SortedMap getRepository() { return new TreeMap<>(this.repository); } @@ -38,10 +48,19 @@ CodeItem getCodeItem(String id) { return this.repository.get(id); } + /** + * Returns a list of {@link CodeItem} instances for the given list of IDs. + * + * @param codeItemIds list of code item IDs + * @return list of code items corresponding to the IDs + */ public List getCodeItemsFromIds(List codeItemIds) { return codeItemIds.stream().map(this::getCodeItem).filter(Objects::nonNull).toList(); } + /** + * Initializes the repository, registering this repository with all contained code items. + */ public synchronized void init() { if (this.initialized) { return; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java index d9145e386..a79cd7b8e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -13,6 +14,10 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a module in the code model. + * Can contain other code items, such as packages, compilation units, or assemblies. + */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ // @JsonSubTypes.Type(value = CodeAssembly.class, name = "CodeAssembly"),// @@ -22,6 +27,7 @@ @JsonTypeName("CodeModule") public sealed class CodeModule extends CodeItem permits CodeAssembly, CodeCompilationUnit, CodePackage { + @Serial private static final long serialVersionUID = -7941299662945801101L; @JsonProperty @@ -33,6 +39,13 @@ public sealed class CodeModule extends CodeItem permits CodeAssembly, CodeCompil // Jackson } + /** + * Creates a new code module with the specified name and content. + * + * @param codeItemRepository the code item repository + * @param name the name of the code module + * @param content the content of the code module + */ public CodeModule(CodeItemRepository codeItemRepository, String name, SortedSet content) { super(codeItemRepository, name); this.content = new ArrayList<>(); @@ -42,16 +55,31 @@ public CodeModule(CodeItemRepository codeItemRepository, String name, SortedSet< this.parentId = null; } + /** + * Returns the content IDs of this code module. + * + * @return list of content IDs + */ @JsonGetter("content") protected List getContentIds() { return this.content; } + /** + * Returns the content of this code module as a list of code items. + * + * @return list of code items + */ @Override public List getContent() { return this.codeItemRepository.getCodeItemsFromIds(this.content); } + /** + * Sets the content of this code module. + * + * @param content list of code items to set as content + */ public void setContent(List content) { this.content = new ArrayList<>(); for (var codeItem : content) { @@ -59,14 +87,29 @@ public void setContent(List content) { } } + /** + * Adds a code item to the content of this code module. + * + * @param content the code item to add + */ public void addContent(CodeItem content) { this.content.add(content.getId()); } + /** + * Adds a list of code items to the content of this code module. + * + * @param content list of code items to add + */ public void addContent(List content) { this.content.addAll(content.stream().map(CodeItem::getId).toList()); } + /** + * Returns the parent code module of this code module, if any. + * + * @return parent code module, or null if none + */ public CodeModule getParent() { CodeItem codeItem = this.codeItemRepository.getCodeItem(this.parentId); if (codeItem instanceof CodeModule codeModule) { @@ -75,10 +118,20 @@ public CodeModule getParent() { return null; } + /** + * Checks if this code module has a parent. + * + * @return true if this code module has a parent, false otherwise + */ public boolean hasParent() { return this.getParent() != null; } + /** + * Sets the parent code module for this code module. + * + * @param parent the parent code module to set + */ public void setParent(CodeModule parent) { this.parentId = parent.getId(); if (!this.codeItemRepository.containsCodeItem(this.parentId)) { @@ -86,6 +139,11 @@ public void setParent(CodeModule parent) { } } + /** + * Returns all compilation units in this code module as a sorted set. + * + * @return sorted set of compilation units + */ @Override public SortedSet getAllCompilationUnits() { SortedSet result = new TreeSet<>(); @@ -93,6 +151,11 @@ public SortedSet getAllCompilationUnits() { return result; } + /** + * Returns all code packages in this code module as a sorted set. + * + * @return sorted set of code packages + */ @Override public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); @@ -100,6 +163,12 @@ public SortedSet getAllPackages() { return result; } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -111,6 +180,11 @@ public boolean equals(Object o) { return Objects.equals(this.content, that.content); } + /** + * Returns the hash code for this code module. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java index 30d4c62dc..ceed87272 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java @@ -1,30 +1,53 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.Optional; import java.util.SortedSet; import java.util.TreeSet; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a package in the code model. + * Groups related code items and can contain subpackages and compilation units. + */ @JsonTypeName("CodePackage") public final class CodePackage extends CodeModule { + @Serial private static final long serialVersionUID = -5224168387357601602L; - @SuppressWarnings("unused") private CodePackage() { // Jackson } + /** + * Creates a new code package with the specified name. + * + * @param codeItemRepository the code item repository + * @param name the name of the code package + */ public CodePackage(CodeItemRepository codeItemRepository, String name) { super(codeItemRepository, name, new TreeSet<>()); } + /** + * Creates a new code package with the specified name and content. + * + * @param codeItemRepository the code item repository + * @param name the name of the code package + * @param content the content of the code package + */ public CodePackage(CodeItemRepository codeItemRepository, String name, SortedSet content) { super(codeItemRepository, name, content); } + /** + * Returns the subpackages contained in this code package. + * + * @return sorted set of subpackages + */ public SortedSet getSubpackages() { SortedSet codePackages = new TreeSet<>(); for (CodeItem packageElement : this.getContent()) { @@ -35,6 +58,11 @@ public SortedSet getSubpackages() { return codePackages; } + /** + * Returns the compilation units contained in this code package. + * + * @return sorted set of compilation units + */ public SortedSet getCompilationUnits() { SortedSet compilationUnits = new TreeSet<>(); for (CodeItem packageElement : this.getContent()) { @@ -45,11 +73,21 @@ public SortedSet getCompilationUnits() { return compilationUnits; } + /** + * Returns the type of this code item as an optional string. + * + * @return type of this code item + */ @Override public Optional getType() { return Optional.of("Package"); } + /** + * Returns all code packages in this code package as a sorted set, including itself and all nested packages. + * + * @return sorted set of all code packages + */ @Override public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java index 0bd1bbb66..8d1ec8116 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java @@ -1,21 +1,37 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; + import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a computational object in the code model. + * Serves as a base for control elements. + */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = ControlElement.class, name = "ControlElement") }) @JsonTypeName("ComputationalObject") public sealed class ComputationalObject extends CodeItem permits ControlElement { + @Serial private static final long serialVersionUID = -6879811567216500291L; + /** + * Default constructor for Jackson. + */ ComputationalObject() { // Jackson } + /** + * Creates a new computational object with the specified name. + * + * @param codeItemRepository the code item repository + * @param name the name of the computational object + */ public ComputationalObject(CodeItemRepository codeItemRepository, String name) { super(codeItemRepository, name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java index 2a60253e5..f6aab91a9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java @@ -1,18 +1,34 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; + import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a control element in the code model. + * Extends {@link ComputationalObject}. + */ @JsonTypeName("ControlElement") public final class ControlElement extends ComputationalObject { + @Serial private static final long serialVersionUID = -2733651783905632198L; + /** + * Default constructor for Jackson. + */ @SuppressWarnings("unused") private ControlElement() { // Jackson } + /** + * Creates a new control element with the specified name. + * + * @param codeItemRepository the code item repository + * @param name the name of the control element + */ public ControlElement(CodeItemRepository codeItemRepository, String name) { super(codeItemRepository, name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java index b6d2c2e2a..916946a2a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -13,6 +14,10 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents a datatype in the code model. + * Can be a class or interface and serves as a base for {@link ClassUnit} and {@link InterfaceUnit}. + */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ // @JsonSubTypes.Type(value = ClassUnit.class, name = "ClassUnit"),// @@ -21,6 +26,7 @@ @JsonTypeName("Datatype") public sealed class Datatype extends CodeItem permits ClassUnit, InterfaceUnit { + @Serial private static final long serialVersionUID = -1925023806648753973L; @JsonProperty @@ -34,10 +40,19 @@ public sealed class Datatype extends CodeItem permits ClassUnit, InterfaceUnit { @JsonProperty private List datatypeReferencesIds; + /** + * Default constructor for Jackson. + */ Datatype() { // Jackson } + /** + * Creates a new datatype with the specified name. + * + * @param codeItemRepository the code item repository + * @param name the name of the datatype + */ public Datatype(CodeItemRepository codeItemRepository, String name) { super(codeItemRepository, name); this.extendedDataTypesIds = new ArrayList<>(); @@ -45,6 +60,11 @@ public Datatype(CodeItemRepository codeItemRepository, String name) { this.datatypeReferencesIds = new ArrayList<>(); } + /** + * Returns the compilation unit associated with this datatype. + * + * @return the compilation unit, or null if not set + */ public CodeCompilationUnit getCompilationUnit() { CodeItem codeItem = this.codeItemRepository.getCodeItem(this.compilationUnitId); if (codeItem instanceof CodeCompilationUnit codeCompilationUnit) { @@ -53,6 +73,11 @@ public CodeCompilationUnit getCompilationUnit() { return null; } + /** + * Returns the parent datatype of this datatype. + * + * @return the parent datatype, or null if not set + */ public Datatype getParentDatatype() { CodeItem codeItem = this.codeItemRepository.getCodeItem(this.parentDatatypeId); if (codeItem instanceof Datatype datatype) { @@ -61,6 +86,11 @@ public Datatype getParentDatatype() { return null; } + /** + * Returns the extended types of this datatype. + * + * @return sorted set of extended types + */ public SortedSet getExtendedTypes() { return this.extendedDataTypesIds.stream().map(id -> { CodeItem codeItem = this.codeItemRepository.getCodeItem(id); @@ -72,6 +102,11 @@ public SortedSet getExtendedTypes() { }).filter(Objects::nonNull).collect(Collectors.toCollection(TreeSet::new)); } + /** + * Returns the implemented types of this datatype. + * + * @return sorted set of implemented types + */ public SortedSet getImplementedTypes() { return this.implementedDataTypesIds.stream().map(id -> { CodeItem codeItem = this.codeItemRepository.getCodeItem(id); @@ -83,6 +118,11 @@ public SortedSet getImplementedTypes() { }).filter(Objects::nonNull).collect(Collectors.toCollection(TreeSet::new)); } + /** + * Returns the datatype references of this datatype. + * + * @return sorted set of datatype references + */ public SortedSet getDatatypeReferences() { return this.datatypeReferencesIds.stream().map(id -> { CodeItem codeItem = this.codeItemRepository.getCodeItem(id); @@ -94,38 +134,70 @@ public SortedSet getDatatypeReferences() { }).filter(Objects::nonNull).collect(Collectors.toCollection(TreeSet::new)); } + /** + * Sets the compilation unit for this datatype. + * + * @param compilationUnit the compilation unit to set + */ public void setCompilationUnit(CodeCompilationUnit compilationUnit) { this.compilationUnitId = compilationUnit.getId(); } + /** + * Sets the parent datatype for this datatype. + * + * @param parentDatatype the parent datatype to set + */ public void setParentDatatype(Datatype parentDatatype) { this.parentDatatypeId = parentDatatype.getId(); } + /** + * Sets the extended types for this datatype. + * + * @param extendedDatatypes sorted set of extended datatypes + */ public void setExtendedTypes(SortedSet extendedDatatypes) { for (Datatype datatype : extendedDatatypes) { this.extendedDataTypesIds.add(datatype.getId()); } } + /** + * Sets the implemented types for this datatype. + * + * @param implementedDatatypes sorted set of implemented datatypes + */ public void setImplementedTypes(SortedSet implementedDatatypes) { for (Datatype datatype : implementedDatatypes) { this.implementedDataTypesIds.add(datatype.getId()); } } + /** + * Sets the datatype references for this datatype. + * + * @param datatypeDependencies sorted set of datatype dependencies + */ public void setDatatypeReference(SortedSet datatypeDependencies) { for (Datatype datatype : datatypeDependencies) { this.datatypeReferencesIds.add(datatype.getId()); } } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { return true; } - if (!(o instanceof Datatype datatype) || !super.equals(o) || !Objects.equals(this.compilationUnitId, datatype.compilationUnitId) || !Objects.equals(this.parentDatatypeId, datatype.parentDatatypeId)) { + if (!(o instanceof Datatype datatype) || !super.equals(o) || !Objects.equals(this.compilationUnitId, datatype.compilationUnitId) || !Objects.equals( + this.parentDatatypeId, datatype.parentDatatypeId)) { return false; } if (!Objects.equals(this.extendedDataTypesIds, datatype.extendedDataTypesIds)) { @@ -137,6 +209,11 @@ public boolean equals(Object o) { return Objects.equals(this.datatypeReferencesIds, datatype.datatypeReferencesIds); } + /** + * Returns the hash code for this datatype. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java index 35cd148c8..284c4af7f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -10,19 +11,34 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; +/** + * Represents an interface unit in the code model. + * Contains code items representing the contents of an interface, such as method signatures. + */ @JsonTypeName("InterfaceUnit") public final class InterfaceUnit extends Datatype { + @Serial private static final long serialVersionUID = 7746781256077022392L; @JsonProperty private List content; + /** + * Default constructor for deserialization frameworks. + */ @SuppressWarnings("unused") private InterfaceUnit() { // Jackson } + /** + * Creates a new interface unit with the specified name and content. + * + * @param codeItemRepository the code item repository + * @param name the name of the interface unit + * @param content the content of the interface unit + */ public InterfaceUnit(CodeItemRepository codeItemRepository, String name, SortedSet content) { super(codeItemRepository, name); this.content = new ArrayList<>(); @@ -31,16 +47,31 @@ public InterfaceUnit(CodeItemRepository codeItemRepository, String name, SortedS } } + /** + * Returns the content IDs of this interface unit. + * + * @return list of content IDs + */ @JsonGetter("content") protected List getContentIds() { return this.content; } + /** + * Returns the content of this interface unit as a list of code items. + * + * @return list of code items + */ @Override public List getContent() { return this.codeItemRepository.getCodeItemsFromIds(this.content); } + /** + * Returns all data types contained in this interface unit. + * + * @return list of all data types + */ @Override public List getAllDataTypes() { List result = new ArrayList<>(); @@ -49,6 +80,12 @@ public List getAllDataTypes() { return result; } + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ @Override public boolean equals(Object o) { if (this == o) { @@ -61,6 +98,11 @@ public boolean equals(Object o) { return Objects.equals(this.content, that.content); } + /** + * Returns the hash code for this interface unit. + * + * @return hash code + */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java index 342087dd1..d6a94a96a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java @@ -1,14 +1,20 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; /** - * Supported programming languages. + * Utility class providing constants for supported programming languages in the code model. */ public final class ProgrammingLanguages { + /** + * Identifier for the Java programming language. + */ + public static final String JAVA = "JAVA"; + /** + * Identifier for the Shell programming language. + */ + public static final String SHELL = "SHELL"; + private ProgrammingLanguages() { throw new IllegalAccessError(); } - - public static final String JAVA = "JAVA"; - public static final String SHELL = "SHELL"; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java index 6ecaf93b9..db6aaf03a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/CodeTraceabilityState.java @@ -9,41 +9,47 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; +/** + * State interface for code traceability. + * Stores trace links between sentences, architecture, and code entities. + */ @Deterministic public interface CodeTraceabilityState extends PipelineStepData { + /** + * The ID for this state. + */ String ID = "CodeTraceabilityState"; /** - * Add a collection of architecture to model links to this state. + * Add a collection of trace links between sentences and code entities to this state. * * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSamCodeTraceLinks(Collection> traceLinks); + boolean addSadCodeTraceLinks(Collection> traceLinks); /** - * Return a set of stored architecture to model links. + * Return a set of stored trace links between sentences and code entities. * - * @return set of stored architecture to model links + * @return set of stored trace links */ - ImmutableSet> getSamCodeTraceLinks(); + ImmutableSet> getSadCodeTraceLinks(); /** - * Add a collection of {@link TraceLink SadCodeTraceLinks} to this state. + * Add a collection of trace links between architecture and code entities to this state. * * @param traceLinks the trace links to add * @return whether the operation was successful */ - boolean addSadCodeTraceLinks(Collection> traceLinks); + boolean addSamCodeTraceLinks(Collection> traceLinks); /** - * Return a set of stored {@link TransitiveTraceLink TransitiveTraceLinks}. + * Return a set of stored trace links between architecture and code entities. * - * @return set of stored {@link TransitiveTraceLink TransitiveTraceLinks} + * @return set of stored trace links */ - ImmutableSet> getSadCodeTraceLinks(); + ImmutableSet> getSamCodeTraceLinks(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java index 406d4fdc5..51d583468 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java @@ -1,12 +1,25 @@ /* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability; +import java.io.Serial; + import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -public class ModelCodeTraceLink extends TraceLink { +/** + * Trace link between an architecture item and a code item. + */ +public final class ModelCodeTraceLink extends TraceLink { + @Serial + private static final long serialVersionUID = 7583961097321596737L; + /** + * Creates a new model-code trace link. + * + * @param firstEndpoint the architecture item + * @param secondEndpoint the code item + */ public ModelCodeTraceLink(ArchitectureItem firstEndpoint, CodeItem secondEndpoint) { super(firstEndpoint, secondEndpoint); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 800331205..1b04d0a64 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -15,7 +15,8 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface IConnectionState. + * State interface for connection generation. + * Provides access to instance links and trace links. */ @Deterministic public interface ConnectionState extends IConfigurable { @@ -28,9 +29,9 @@ public interface ConnectionState extends IConfigurable { ImmutableList> getInstanceLinks(); /** - * Returns a list of tracelinks that are contained within this connection state. + * Returns a list of trace links that are contained within this connection state. * - * @return list of tracelinks within this connection state + * @return list of trace links within this connection state */ default ImmutableSet> getTraceLinks() { MutableSet> traceLinks = Sets.mutable.empty(); @@ -47,8 +48,8 @@ default ImmutableSet> getTraceLinks() { } /** - * Adds the connection of a recommended instance and a model instance to the state. If the model instance is already contained by the state it is extended. - * Elsewhere a new instance link is created + * Adds the connection of a recommended instance and a model instance to the state. + * If the model instance is already contained by the state it is extended, otherwise a new instance link is created. * * @param recommendedModelInstance the recommended instance * @param modelEntity the model instance diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java index 3143e32a8..4f62862c5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java @@ -1,11 +1,23 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; +/** + * State interface for managing multiple connection states by metamodel. + */ public interface ConnectionStates extends PipelineStepData { + /** + * The ID for this state. + */ String ID = "ConnectionStates"; + /** + * Returns the connection state for the given metamodel. + * + * @param mm the metamodel + * @return the connection state + */ ConnectionState getConnectionState(Metamodel mm); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java index 217f9125d..f8e115d5b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java @@ -21,17 +21,17 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * An InstanceLink defines a link between an {@link RecommendedInstance} and an {@link ModelEntity}. + * Defines a link between a {@link RecommendedInstance} and a {@link ModelEntity}. */ @Deterministic -public class InstanceLink extends TraceLink { +public final class InstanceLink extends TraceLink { @Serial private static final long serialVersionUID = -8630933950725516269L; private final Confidence confidence; /** - * Create a new instance link + * Create a new instance link. * * @param textualInstance the recommended instance * @param entity the model instance @@ -42,7 +42,7 @@ public InstanceLink(RecommendedInstance textualInstance, ModelEntity entity) { } /** - * Creates a new instance link. + * Creates a new instance link with a claimant and probability. * * @param textualInstance the recommended instance * @param entity the model instance @@ -57,7 +57,7 @@ public InstanceLink(RecommendedInstance textualInstance, ModelEntity entity, Cla /** * Add confidence to this link. * - * @param claimant the claimant that wants to change the confidence + * @param claimant the claimant * @param confidence the confidence value to add */ public final void addConfidence(Claimant claimant, double confidence) { @@ -73,6 +73,11 @@ public final double getConfidence() { return this.confidence.getConfidence(); } + /** + * Returns a string representation of this instance link. + * + * @return string representation + */ @Override public String toString() { Set names = new LinkedHashSet<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java index 6a62eb01c..854cf0774 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -8,13 +8,19 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -public class SadModelTraceLink extends TraceLink { +/** + * Trace link between a sentence and a model entity. + */ +public final class SadModelTraceLink extends TraceLink { private final Sentence sentence; private final ModelEntity modelEntity; /** - * Create a trace link based on a {@link Sentence} and a concrete {@link ModelEntity} . + * Create a trace link based on a {@link Sentence} and a concrete {@link ModelEntity}. + * + * @param sentence the sentence + * @param modelEntity the model entity */ public SadModelTraceLink(Sentence sentence, ModelEntity modelEntity) { super(new SentenceEntity(sentence), modelEntity); @@ -23,7 +29,10 @@ public SadModelTraceLink(Sentence sentence, ModelEntity modelEntity) { } /** - * Create a trace link based on a {@link SentenceEntity} and a concrete {@link ModelEntity} . + * Create a trace link based on a {@link SentenceEntity} and a concrete {@link ModelEntity}. + * + * @param sentenceEntity the sentence entity + * @param modelEntity the model entity */ public SadModelTraceLink(SentenceEntity sentenceEntity, ModelEntity modelEntity) { super(sentenceEntity, modelEntity); @@ -34,7 +43,7 @@ public SadModelTraceLink(SentenceEntity sentenceEntity, ModelEntity modelEntity) /** * Get the sentence number of the word that the trace link is based on. * - * @return sentence number of the word that the trace link is based on. + * @return sentence number */ public int getSentenceNumber() { return this.sentence.getSentenceNumber(); @@ -43,7 +52,7 @@ public int getSentenceNumber() { /** * Returns the sentence of the word that the trace link is based on. * - * @return the sentence of the word that the trace link is based on. + * @return the sentence */ public Sentence getSentence() { return this.sentence; @@ -52,17 +61,21 @@ public Sentence getSentence() { /** * Get the UID of the model element that the trace link is based on. * - * @return Uid of the model element that the trace link is based on. + * @return UID of the model element */ public String getEntityId() { return this.modelEntity.getId(); } /** - * See {@link Object#equals(Object)}. Uses the Uid of the model element and the sentence number of the word + * Checks equality with another object. + * + * @param obj the object to compare + * @return true if equal, false otherwise */ @Override public boolean equals(Object obj) { + // TODO Check whether we really need to override equals and hashCode here. if (obj instanceof SadModelTraceLink other) { var otherId = other.getEntityId(); var otherSentenceNo = other.getSentenceNumber(); @@ -71,6 +84,11 @@ public boolean equals(Object obj) { return false; } + /** + * Returns the hash code for this trace link. + * + * @return hash code + */ @Override public int hashCode() { return Objects.hash(this.getEntityId(), this.getSentenceNumber()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java index ab61b5765..c35abeddd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/Inconsistency.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.io.Serializable; @@ -6,19 +6,18 @@ import org.eclipse.collections.api.collection.ImmutableCollection; /** - * This interface represents an identified inconsistency of a certain type with a certain reason. + * Represents an identified inconsistency of a certain type with a certain reason. */ public interface Inconsistency extends Serializable { - /** - * Returns the reason why there is an inconsistency + * Returns the reason why there is an inconsistency. * - * @return The reason of inconsistency + * @return the reason of inconsistency */ String getReason(); /** - * Returns the name of the type of inconsistency + * Returns the name of the type of inconsistency. * * @return the name of the type of inconsistency */ @@ -26,10 +25,9 @@ public interface Inconsistency extends Serializable { /** * Return a list with String arrays as entries. The entries should have the format to first state the type of inconsistency, then the sentence number and - * third the id of the model element or the name of the text element (or both). Fourth entry can be an optional confidence value + * third the id of the model element or the name of the text element (or both). Fourth entry can be an optional confidence value. * - * @return List with String arrays as entry with the format {SentenceNumber, ModelElementId/TextElement, (optional) confidence}. + * @return list with String arrays as entry with the format {SentenceNumber, ModelElementId/TextElement, (optional) confidence}. */ ImmutableCollection toFileOutput(); - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java index 900a8c88b..9e5f880e6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.util.List; @@ -10,20 +10,19 @@ import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; /** - * Inconsistency state holding data and information about inconsistency. - * + * State holding data and information about inconsistencies. */ public interface InconsistencyState extends IConfigurable { /** - * Returns a list of inconsistencies held by this state + * Returns a list of inconsistencies held by this state. * * @return list of inconsistencies */ ImmutableList getInconsistencies(); /** - * Add an Inconsistency to this state + * Add an inconsistency to this state. * * @param inconsistency the inconsistency to add * @return true if added successfully @@ -31,13 +30,19 @@ public interface InconsistencyState extends IConfigurable { boolean addInconsistency(Inconsistency inconsistency); /** - * Remove an Inconsistency from this state + * Remove an inconsistency from this state. * * @param inconsistency the inconsistency to remove * @return true if removed successfully */ boolean removeInconsistency(Inconsistency inconsistency); + /** + * Add multiple recommended instances to this state. + * + * @param recommendedInstances the recommended instances to add + * @return true if all were added successfully + */ default boolean addRecommendedInstances(List recommendedInstances) { var success = true; for (var recommendedInstance : recommendedInstances) { @@ -46,8 +51,20 @@ default boolean addRecommendedInstances(List recommendedIns return success; } + /** + * Add a single recommended instance to this state. + * + * @param recommendedInstance the recommended instance to add + * @return true if added successfully + */ boolean addRecommendedInstance(RecommendedInstance recommendedInstance); + /** + * Remove multiple recommended instances from this state. + * + * @param recommendedInstances the recommended instances to remove + * @return true if all were removed successfully + */ default boolean removeRecommendedInstances(List recommendedInstances) { var success = true; for (var recommendedInstance : recommendedInstances) { @@ -56,19 +73,25 @@ default boolean removeRecommendedInstances(List recommended return success; } + /** + * Remove a single recommended instance from this state. + * + * @param recommendedInstance the recommended instance to remove + * @return true if removed successfully + */ boolean removeRecommendedInstance(RecommendedInstance recommendedInstance); /** - * Sets the recommended Instances - * - * @param recommendedInstances the recommendedInstances to set + * Sets the recommended instances. + * + * @param recommendedInstances the recommended instances to set */ void setRecommendedInstances(List recommendedInstances); /** - * Returns the recommended Instances - * - * @return the recommendedInstances + * Returns the recommended instances. + * + * @return the recommended instances */ MutableList getRecommendedInstances(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java index 62ffa4093..d685ba0d4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java @@ -1,11 +1,23 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; +/** + * State interface for managing multiple inconsistency states by metamodel. + */ public interface InconsistencyStates extends PipelineStepData { + /** + * The ID for this state. + */ String ID = "InconsistencyStates"; - InconsistencyState getInconsistencyState(Metamodel mm); + /** + * Returns the inconsistency state for the given metamodel. + * + * @param metamodel the metamodel + * @return the inconsistency state + */ + InconsistencyState getInconsistencyState(Metamodel metamodel); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java index c85368a28..5e05226a1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java @@ -1,22 +1,32 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; import java.util.List; import java.util.Locale; +import java.util.Objects; import org.eclipse.collections.api.factory.Lists; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; /** - * This record represents an inconsistent sentence consisting of a sentence and all the inconsistencies that were found - * within this sentence. + * Represents an inconsistent sentence and all inconsistencies found within it. */ -public record InconsistentSentence(Sentence sentence, List inconsistencies) { +public final class InconsistentSentence { + private final Sentence sentence; + private final List inconsistencies; /** - * Creates a new instance with only one inconsistency. The underlying list is populated with the given - * inconsistency. + * @param sentence the sentence + * @param inconsistencies the list of inconsistencies + */ + public InconsistentSentence(Sentence sentence, List inconsistencies) { + this.sentence = sentence; + this.inconsistencies = inconsistencies; + } + + /** + * Creates a new instance with only one inconsistency. * * @param sentence the sentence * @param inconsistency the inconsistency @@ -36,8 +46,7 @@ public boolean addInconsistency(Inconsistency inconsistency) { } /** - * Creates and returns an info string that contains the sentence number, the text of the sentence, and the reasons - * of the inconsistencies + * Creates and returns an info string that contains the sentence number, the text of the sentence, and the reasons of the inconsistencies. * * @return an info string */ @@ -51,4 +60,33 @@ public String getInfoString() { String formatString = "S%3d: \"%s\"%n\tInconsistent due to the following reasons:%n%s"; return String.format(Locale.ENGLISH, formatString, sentence.getSentenceNumberForOutput(), sentence.getText(), reasonsBuilder); } + + public Sentence sentence() { + return sentence; + } + + public List inconsistencies() { + return inconsistencies; + } + + @Override + public boolean equals(Object obj) { + if (obj == this) + return true; + if (obj == null || obj.getClass() != this.getClass()) + return false; + var that = (InconsistentSentence) obj; + return Objects.equals(this.sentence, that.sentence) && Objects.equals(this.inconsistencies, that.inconsistencies); + } + + @Override + public int hashCode() { + return Objects.hash(sentence, inconsistencies); + } + + @Override + public String toString() { + return "InconsistentSentence[" + "sentence=" + sentence + ", " + "inconsistencies=" + inconsistencies + ']'; + } + } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java index 80bed118b..1b4bb2cd0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java @@ -1,30 +1,29 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** - * This interface extends the interface {@link Inconsistency} by stating that the inconsistency stems from a concrete model instance, i.e., a component. - * This way, we can output information about the inconsistent model instance. + * Extends {@link Inconsistency} for inconsistencies stemming from a concrete model instance. + * Provides information about the inconsistent model instance. */ public interface ModelInconsistency extends Inconsistency { - /** * Return the name of the inconsistent model instance. - * - * @return the name of the inconsistent model instance. + * + * @return the name of the inconsistent model instance */ String getModelInstanceName(); /** * Return the type of the inconsistent model instance. - * - * @return the type of the inconsistent model instance. + * + * @return the type of the inconsistent model instance */ String getModelInstanceType(); /** * Return the UID of the inconsistent model instance. - * - * @return the UID of the inconsistent model instance. + * + * @return the UID of the inconsistent model instance */ String getModelInstanceUid(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java index 77adad2ec..a3a6ac561 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java @@ -1,12 +1,15 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** - * This interface extends the interface {@link Inconsistency} by stating that the inconsistency stems from a concrete textual - * component, i.e., a sentence. This way, we can use information on the text-side to give more details. + * Extends {@link Inconsistency} for inconsistencies stemming from a concrete textual component (e.g., a sentence). + * Provides information on the text-side for more details. */ public interface TextInconsistency extends Inconsistency { - + /** + * Returns the sentence number associated with this inconsistency. + * + * @return the sentence number + */ int getSentenceNumber(); - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java index 4374fb2ab..67224ed45 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java @@ -8,7 +8,8 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface IRecommendationState defines the state for recommendations. + * State interface for recommendations. + * Provides access to recommended instances and related operations. */ public interface RecommendationState extends IConfigurable { @@ -22,20 +23,22 @@ public interface RecommendationState extends IConfigurable { /** * Adds a recommended instance without a type. * - * @param name name of that recommended instance + * @param name name of the recommended instance + * @param claimant the claimant * @param probability probability of being in the model - * @param nameMappings name mappings representing that recommended instance + * @param nameMappings name mappings representing the recommended instance */ void addRecommendedInstance(String name, Claimant claimant, double probability, ImmutableList nameMappings); /** * Adds a recommended instance. * - * @param name name of that recommended instance - * @param type type of that recommended instance + * @param name name of the recommended instance + * @param type type of the recommended instance + * @param claimant the claimant * @param probability probability of being in the model - * @param nameMappings name mappings representing the name of the recommended instance - * @param typeMappings type mappings representing the type of the recommended instance + * @param nameMappings name mappings representing the name + * @param typeMappings type mappings representing the type * @return the added recommended instance */ RecommendedInstance addRecommendedInstance(String name, String type, Claimant claimant, double probability, ImmutableList nameMappings, @@ -44,53 +47,56 @@ RecommendedInstance addRecommendedInstance(String name, String type, Claimant cl /** * Returns all recommended instances that contain a given mapping as type. * - * @param mapping given mapping to search for in types - * @return the list of recommended instances with the mapping as type. + * @param mapping mapping to search for in types + * @return list of recommended instances with the mapping as type */ ImmutableList getRecommendedInstancesByTypeMapping(NounMapping mapping); /** * Returns all recommended instances that contain a given mapping. * - * @param mapping given mapping to search for - * @return the list of recommended instances with the mapping. + * @param mapping mapping to search for + * @return list of recommended instances with the mapping */ ImmutableList getAnyRecommendedInstancesByMapping(NounMapping mapping); /** * Returns all recommended instances that contain a given name. * - * @param name given name to search for in names - * @return the list of recommended instances with that name. + * @param name name to search for in names + * @return list of recommended instances with that name */ ImmutableList getRecommendedInstancesByName(String name); /** * Returns all recommended instances that contain a similar name. * - * @param name given name to search for in names - * @return the list of recommended instances with a similar name. + * @param name name to search for in names + * @return list of recommended instances with a similar name */ ImmutableList getRecommendedInstancesBySimilarName(String name); /** - * Returns all recommended instances that contain a given name and type. + * Returns all recommended instances that contain a given type. * - * @param type given type to search for in types - * @return the list of recommended instances with that name and type + * @param type type to search for in types + * @return list of recommended instances with that type */ ImmutableList getRecommendedInstancesByType(String type); /** * Returns all recommended instances that contain a similar type. * - * @param type given type to search for in types - * @return the list of recommended instances with a similar type. + * @param type type to search for in types + * @return list of recommended instances with a similar type */ ImmutableList getRecommendedInstancesBySimilarType(String type); /** - * Sync noun mappings. This method will be invoked if a noun mapping gets removed from the text extraction state + * Sync noun mappings. This method will be invoked if a noun mapping gets removed from the text extraction state. + * + * @param nounMapping the noun mapping to delete + * @param replacement the replacement noun mapping */ void onNounMappingDeletion(NounMapping nounMapping, NounMapping replacement); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java index c0e8f97e2..a87602936 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java @@ -1,11 +1,23 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; +/** + * Represents the collection of recommendation states for different metamodels. + */ public interface RecommendationStates extends PipelineStepData { + /** + * The unique identifier for recommendation states. + */ String ID = "RecommendationStates"; - RecommendationState getRecommendationState(Metamodel mm); + /** + * Returns the recommendation state for the given metamodel. + * + * @param metamodel the metamodel + * @return the recommendation state + */ + RecommendationState getRecommendationState(Metamodel metamodel); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index d20555406..b0940e339 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -11,13 +11,19 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface IRecommendedInstance defines the aggregation of noun mappings to one recommendation. + * Represents an aggregation of noun mappings to one recommendation. */ public abstract class RecommendedInstance extends TextEntity { @Serial private static final long serialVersionUID = -5422301094494768943L; + /** + * Creates a new recommended instance. + * + * @param name the name + * @param id the identifier + */ protected RecommendedInstance(String name, String id) { super(name, id); } @@ -25,28 +31,28 @@ protected RecommendedInstance(String name, String id) { /** * Returns the involved name mappings. * - * @return the name mappings of this recommended instance + * @return the name mappings */ public abstract ImmutableList getNameMappings(); /** * Returns the involved type mappings. * - * @return the type mappings of this recommended instance + * @return the type mappings */ public abstract ImmutableList getTypeMappings(); /** - * Returns the probability being an instance of the model. + * Returns the probability of being an instance of the model. * - * @return the probability to be found in the model + * @return the probability */ public abstract double getProbability(); /** - * Adds a probability to the recommended instance + * Adds a probability to the recommended instance. * - * @param claimant the claimant of the confidence + * @param claimant the claimant * @param probability the confidence */ public abstract void addProbability(Claimant claimant, double probability); @@ -54,30 +60,30 @@ protected RecommendedInstance(String name, String id) { /** * Adds a name and type mapping to this recommended instance. * - * @param nameMapping the name mapping to add - * @param typeMapping the type mapping to add + * @param nameMapping the name mapping + * @param typeMapping the type mapping */ public abstract void addMappings(NounMapping nameMapping, NounMapping typeMapping); /** * Adds name and type mappings to this recommended instance. * - * @param nameMapping the name mappings to add - * @param typeMapping the type mappings to add + * @param nameMapping the name mappings + * @param typeMapping the type mappings */ public abstract void addMappings(ImmutableList nameMapping, ImmutableList typeMapping); /** * Adds a name mapping to this recommended instance. * - * @param nameMapping the name mapping to add + * @param nameMapping the name mapping */ public abstract void addName(NounMapping nameMapping); /** * Adds a type mapping to this recommended instance. * - * @param typeMapping the type mapping to add + * @param typeMapping the type mapping */ public abstract void addType(NounMapping typeMapping); @@ -96,9 +102,25 @@ protected RecommendedInstance(String name, String id) { @Override public abstract String getName(); + /** + * Returns the sentence numbers associated with this recommended instance. + * + * @return the sentence numbers + */ public abstract ImmutableSortedSet getSentenceNumbers(); + /** + * Returns the claimants associated with this recommended instance. + * + * @return the claimants + */ public abstract ImmutableList getClaimants(); + /** + * Handles the deletion of a noun mapping by replacing it with another. + * + * @param nounMapping the noun mapping to delete + * @param replacement the replacement noun mapping + */ public abstract void onNounMappingDeletion(NounMapping nounMapping, NounMapping replacement); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java index dec53fff0..6f8dded1d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/MappingKind.java @@ -5,5 +5,8 @@ * The mapping type of mapping state defines whether the mapping is a name or a type. */ public enum MappingKind { - NAME, TYPE + /** Name mapping kind. */ + NAME, + /** Type mapping kind. */ + TYPE } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java index 30a6f6cbd..4046b62fa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java @@ -13,12 +13,11 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface INounMapping defines the mapping . + * Represents a mapping of noun phrases or words to a concept (name, type, or both). */ public interface NounMapping extends Serializable { - /** - * Returns the surface forms (previously called occurrences) of this mapping. + * Returns the surface forms (occurrences) of this mapping. * * @return all appearances of the mapping */ @@ -27,33 +26,33 @@ public interface NounMapping extends Serializable { /** * Returns all words that are contained by the mapping. * - * @return all words that are referenced with this mapping + * @return all words referenced by this mapping */ ImmutableSortedSet getWords(); /** * Returns the probability of being a mapping of its kind. * - * @return probability of being a mapping of its kind. + * @return probability of being a mapping of its kind */ double getProbability(); /** - * Returns the kind: name, type, name_or_type. + * Returns the kind: name, type, or name_or_type. * * @return the kind */ MappingKind getKind(); /** - * Returns the reference, the comparable and naming attribute of this mapping. + * Returns the reference (comparable and naming attribute) of this mapping. * * @return the reference */ String getReference(); /** - * Returns the reference words + * Returns the reference words. * * @return the reference words */ @@ -62,17 +61,22 @@ public interface NounMapping extends Serializable { /** * Returns the sentence numbers of occurrences, sorted. * - * @return sentence numbers of the occurrences of this mapping. + * @return sentence numbers of the occurrences */ ImmutableList getMappingSentenceNo(); + /** + * Returns the phrases associated with this mapping. + * + * @return the phrases + */ ImmutableSortedSet getPhrases(); /** - * Gets the probability for name. + * Gets the probability for a specific mapping kind. * * @param mappingKind the kind of mapping - * @return the probability for name + * @return the probability for the kind */ double getProbabilityForKind(MappingKind mappingKind); @@ -83,17 +87,26 @@ public interface NounMapping extends Serializable { */ ImmutableSortedMap getDistribution(); + /** + * Returns the claimants for this mapping. + * + * @return the claimants + */ ImmutableList getClaimants(); /** * Adds the kind with probability. * * @param kind the kind - * @param claimant the agent that claims the kind for this nounmapping with a certain probability + * @param claimant the agent that claims the kind * @param probability the probability */ void addKindWithProbability(MappingKind kind, Claimant claimant, double probability); + /** + * Checks if this mapping is a compound. + * + * @return true if compound, false otherwise + */ boolean isCompound(); - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java index d863bd5ec..af791a0a2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/PhraseMapping.java @@ -11,15 +11,43 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.PhraseType; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; +/** + * Represents a mapping of phrases to noun mappings and phrase vectors. + */ public interface PhraseMapping extends Serializable { - + /** + * Returns the noun mappings associated with this phrase mapping. + * + * @param textState the text state + * @return the noun mappings + */ ImmutableList getNounMappings(TextState textState); + /** + * Returns the phrases in this mapping. + * + * @return the phrases + */ ImmutableSortedSet getPhrases(); + /** + * Returns the type of the phrase. + * + * @return the phrase type + */ PhraseType getPhraseType(); + /** + * Returns the phrase vector. + * + * @return the phrase vector + */ ImmutableSortedMap getPhraseVector(); + /** + * Removes a phrase from this mapping. + * + * @param phrase the phrase to remove + */ void removePhrase(Phrase phrase); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index 5f2e5f202..ea407a754 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -12,54 +12,143 @@ import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** - * The Interface ITextState. + * Represents the state of text extraction, including noun and phrase mappings. */ public interface TextState extends IConfigurable, PipelineStepData { Logger logger = LoggerFactory.getLogger(TextState.class); String ID = "TextState"; + /** + * Adds a noun mapping to the state. + * + * @param nounMapping the noun mapping to add + */ void addNounMapping(NounMapping nounMapping); + /** + * Removes a noun mapping from the state, optionally replacing it and cascading the removal. + * + * @param dataRepository the data repository + * @param nounMapping the noun mapping to remove + * @param replacement the replacement noun mapping (optional) + * @param cascade whether to cascade the removal + */ void removeNounMapping(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement, boolean cascade); + /** + * Adds a phrase mapping to the state. + * + * @param phraseMapping the phrase mapping to add + */ void addPhraseMapping(PhraseMapping phraseMapping); /** - * Removes the specified phrase mapping from the state and replaces it with an (optional) replacement + * Removes the specified phrase mapping from the state and replaces it with an (optional) replacement. + * + * @param phraseMapping the phrase mapping to remove + * @param replacement the replacement phrase mapping (optional) */ void removePhraseMapping(PhraseMapping phraseMapping, PhraseMapping replacement); + /** + * Retrieves the phrase mapping associated with the given noun mapping. + * + * @param nounMapping the noun mapping + * @return the associated phrase mapping + */ PhraseMapping getPhraseMappingByNounMapping(NounMapping nounMapping); + /** + * Retrieves the noun mappings associated with the given phrase mapping. + * + * @param phraseMapping the phrase mapping + * @return the associated noun mappings + */ ImmutableList getNounMappingsByPhraseMapping(PhraseMapping phraseMapping); + /** + * Retrieves all noun mappings in the state. + * + * @return the noun mappings + */ ImmutableList getNounMappings(); + /** + * Retrieves all phrase mappings in the state. + * + * @return the phrase mappings + */ ImmutableList getPhraseMappings(); + /** + * Retrieves noun mappings of the specified kind. + * + * @param kind the mapping kind + * @return the noun mappings of the specified kind + */ default ImmutableList getNounMappingsOfKind(MappingKind kind) { return this.getNounMappings().select(this.nounMappingIsOfKind(kind)).toImmutable(); } + /** + * Retrieves noun mappings that could be of the specified kind for the given word. + * + * @param word the word + * @param kind the mapping kind + * @return the noun mappings that could be of the specified kind + */ default ImmutableList getMappingsThatCouldBeOfKind(Word word, MappingKind kind) { return this.getNounMappingsByWord(word).select(mapping -> mapping.getProbabilityForKind(kind) > 0); } + /** + * Retrieves noun mappings that could be of multiple specified kinds for the given word. + * + * @param word the word + * @param kinds the mapping kinds + * @return the noun mappings that could be of multiple specified kinds + */ ImmutableList getMappingsThatCouldBeMultipleKinds(Word word, MappingKind... kinds); + /** + * Retrieves noun mappings associated with the given word. + * + * @param word the word + * @return the noun mappings associated with the word + */ default ImmutableList getNounMappingsByWord(Word word) { return this.getNounMappings().select(nm -> nm.getWords().contains(word)); } + /** + * Retrieves noun mappings associated with the given word and of the specified kind. + * + * @param word the word + * @param kind the mapping kind + * @return the noun mappings associated with the word and of the specified kind + */ default ImmutableList getNounMappingsByWordAndKind(Word word, MappingKind kind) { return this.getNounMappings().select(n -> n.getWords().contains(word)).select(this.nounMappingIsOfKind(kind)).toImmutable(); } + /** + * Checks if the given word is contained by a mapping of the specified kind. + * + * @param word the word + * @param kind the mapping kind + * @return true if the word is contained by a mapping of the specified kind, false otherwise + */ default boolean isWordContainedByMappingKind(Word word, MappingKind kind) { return this.getNounMappings().select(n -> n.getWords().contains(word)).anySatisfy(this.nounMappingIsOfKind(kind)); } + /** + * Retrieves noun mappings with a similar reference to the given reference. + * + * @param reference the reference + * @return the noun mappings with a similar reference + */ ImmutableList getNounMappingsWithSimilarReference(String reference); private Predicate nounMappingIsOfKind(MappingKind mappingKind) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java index b9db62a3a..88febc8d3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextStateStrategy.java @@ -16,12 +16,12 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * The Interface for strategies for the text state. Responsible for creating {@link NounMapping NounMappings} from their constituent parts in a variety of + * Interface for strategies for the text state. Responsible for creating {@link NounMapping NounMappings} from their constituent parts in a variety of * situations. */ public interface TextStateStrategy { /** - * Aggregation function used to aggregate multiple confidences into a single value + * Aggregation function used to aggregate multiple confidences into a single value. */ AggregationFunctions DEFAULT_AGGREGATOR = AVERAGE; @@ -30,7 +30,9 @@ public interface TextStateStrategy { * * @param word word of the mapping * @param kind the kind of the mapping + * @param claimant the claimant of the mapping * @param probability probability to be a name mapping + * @return the resulting noun mapping */ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability) { return this.addNounMapping(word, kind, claimant, probability, Lists.immutable.with(word.getText())); @@ -46,7 +48,6 @@ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claiman * @param surfaceForms the surface forms * @return the resulting noun mapping, either new or merged */ - NounMapping addNounMapping(Word word, MappingKind kind, Claimant claimant, double probability, ImmutableList surfaceForms); /** @@ -59,7 +60,6 @@ default NounMapping addNounMapping(Word word, MappingKind kind, Claimant claiman * @param reference a joined reference string * @return the new or merged mapping */ - NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSortedMap distribution, ImmutableList referenceWords, ImmutableList surfaceForms, String reference); @@ -75,7 +75,6 @@ NounMapping addNounMapping(ImmutableSortedSet words, ImmutableSortedMap words, MappingKind kind, Claimant claimant, double probability, ImmutableList referenceWords, ImmutableList surfaceForms, String reference); @@ -91,7 +90,6 @@ NounMapping addNounMapping(ImmutableSortedSet words, MappingKind kind, Cla * @param probability the probability * @return the merged noun mapping */ - NounMapping mergeNounMappingsStateless(NounMapping firstNounMapping, NounMapping secondNounMapping, ImmutableList referenceWords, String reference, MappingKind mappingKind, Claimant claimant, double probability); @@ -107,7 +105,6 @@ NounMapping mergeNounMappingsStateless(NounMapping firstNounMapping, NounMapping * @param probability the probability * @return the merged noun mapping */ - NounMapping mergeNounMappings(NounMapping firstNounMapping, NounMapping secondNounMapping, ImmutableList referenceWords, String reference, MappingKind mappingKind, Claimant claimant, double probability); @@ -120,7 +117,7 @@ NounMapping mergeNounMappings(NounMapping firstNounMapping, NounMapping secondNo default String calculateNounMappingReference(ImmutableList referenceWords) { StringBuilder refBuilder = new StringBuilder(); referenceWords.toSortedListBy(Word::getPosition); - referenceWords.toSortedListBy(Word::getSentenceNo); + referenceWords.toSortedListBy(Word::getSentenceNumber); for (int i = 0; i < referenceWords.size() - 1; i++) { refBuilder.append(referenceWords.get(i).getText()).append(" "); @@ -129,9 +126,24 @@ default String calculateNounMappingReference(ImmutableList referenceWords) return refBuilder.toString(); } + /** + * Merges phrase mappings and noun mappings into the state. + * + * @param phraseMapping the phrase mapping + * @param similarPhraseMapping the similar phrase mapping + * @param similarNounMappings the similar noun mappings + * @param claimant the claimant + */ void mergePhraseMappingsAndNounMappings(PhraseMapping phraseMapping, PhraseMapping similarPhraseMapping, MutableList> similarNounMappings, Claimant claimant); + /** + * Merges two noun mappings into the state. + * + * @param nounMapping the noun mapping + * @param textuallyEqualNounMapping the textually equal noun mapping + * @param claimant the claimant + */ void mergeNounMappings(NounMapping nounMapping, NounMapping textuallyEqualNounMapping, Claimant claimant); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java index a03e90dbe..09ccc6792 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/NlpInformant.java @@ -1,30 +1,36 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Informant; /** - * The Interface ITextConnector defines a provider for annotated texts. + * Provides annotated text for NLP processing. */ public abstract class NlpInformant extends Informant { + /** + * Creates a new NLP informant. + * + * @param id the informant ID + * @param dataRepository the data repository + */ protected NlpInformant(String id, DataRepository dataRepository) { super(id, dataRepository); } /** - * Gets the annotated text. + * Returns the annotated text. * * @return the annotated text */ public abstract Text getAnnotatedText(); /** - * Gets the annotated text with the given name + * Returns the annotated text with the given name. * - * @param textName name of the text to retrieve - * @return the annotated text with the given name + * @param textName the name of the text + * @return the annotated text */ public abstract Text getAnnotatedText(String textName); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java index 7b52e6556..f276a1f02 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Phrase.java @@ -6,20 +6,65 @@ import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; +/** + * Represents a phrase in a text. + */ public interface Phrase extends Serializable, Comparable { - int getSentenceNo(); + /** + * Returns the sentence number (starting at 0). + * + * @return the sentence number + */ + int getSentenceNumber(); + /** + * Returns the text of the phrase. + * + * @return the text + */ String getText(); + /** + * Returns the type of the phrase. + * + * @return the phrase type + */ PhraseType getPhraseType(); + /** + * Returns the words contained in this phrase. + * + * @return the contained words + */ ImmutableList getContainedWords(); + /** + * Returns the subphrases of this phrase. + * + * @return the subphrases + */ ImmutableList getSubphrases(); - boolean isSuperPhraseOf(Phrase other); + /** + * Checks if this phrase is a superphrase of the given phrase. + * + * @param other the other phrase + * @return true if this is a superphrase of other + */ + boolean isSuperphraseOf(Phrase other); - boolean isSubPhraseOf(Phrase other); + /** + * Checks if this phrase is a subphrase of the given phrase. + * + * @param other the other phrase + * @return true if this is a subphrase of other + */ + boolean isSubphraseOf(Phrase other); + /** + * Returns the phrase vector. + * + * @return the phrase vector + */ ImmutableSortedMap getPhraseVector(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java index 604c7dcca..0df0c8e82 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; import java.io.Serializable; @@ -6,48 +6,59 @@ import org.eclipse.collections.api.list.ImmutableList; /** - * Represents a sentence within the document. + * Represents a sentence in the document. */ public interface Sentence extends Serializable { /** - * Returns the sentence number (starting at {@code 0}. + * Returns the sentence number (starting at 0). * * @return the sentence number */ int getSentenceNumber(); /** - * Return the sentence number used for human readably output. Therefore, this method calculates the sentence number starting with {@code 1}. + * Returns the sentence number for output (starting at 1). * - * @return the sentence number starting at one + * @return the sentence number for output */ default int getSentenceNumberForOutput() { return getSentenceNumber() + 1; } /** - * Returns the words contained by this sentence + * Returns the words contained in this sentence. * - * @return the words contained by this sentence + * @return the words */ ImmutableList getWords(); /** - * Returns the text of this sentence + * Returns the text of this sentence. * - * @return the text of this sentence + * @return the text */ String getText(); + /** + * Checks if this sentence is equal to another sentence. + * + * @param other the other sentence + * @return true if equal + */ default boolean isEqualTo(Sentence other) { return other != null && this.getSentenceNumber() == other.getSentenceNumber() && other.getText().equals(this.getText()); } + /** + * Returns the phrases in this sentence. + * + * @return the phrases + */ ImmutableList getPhrases(); /** - * Adds a new phrase to the sentence + * Adds a new phrase to the sentence. * * @param phrase the phrase */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java index 4e619d0a6..d24ec76a3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/SentenceEntity.java @@ -1,21 +1,36 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; +import java.io.Serial; import java.util.Objects; import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; +/** + * Represents a sentence entity wrapping a {@link Sentence}. + */ public final class SentenceEntity extends TextEntity { + @Serial private static final long serialVersionUID = 7370112901785822767L; private final Sentence sentence; + /** + * Creates a new sentence entity. + * + * @param sentence the sentence + */ public SentenceEntity(Sentence sentence) { super(sentence.getText(), String.valueOf(sentence.getSentenceNumber())); this.sentence = sentence; } + /** + * Returns the wrapped sentence. + * + * @return the sentence + */ public Sentence getSentence() { return this.sentence; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java index b1578185b..0600eaf74 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; import java.io.Serializable; @@ -7,28 +7,28 @@ import org.eclipse.collections.api.list.ImmutableList; /** - * This interface defines the representation of a text. + * Represents a text document. */ public interface Text extends Serializable { /** - * Gets the length of the text (amount of words). + * Returns the length of the text (number of words). * * @return the length */ - default int getLength() { + default int getNumberOfWords() { return words().size(); } /** - * Gets all words of the text (ordered). + * Returns all words in the text (ordered). * * @return the words */ ImmutableList words(); /** - * Gets all phrases of the text (ordered). + * Returns all phrases in the text (ordered). * * @return the phrases */ @@ -37,7 +37,7 @@ default ImmutableList phrases() { } /** - * Returns the word at the given index + * Returns the word at the given index. * * @param index the index * @return the word at the given index @@ -47,7 +47,7 @@ default ImmutableList phrases() { /** * Returns the sentences of the text, ordered by appearance. * - * @return the sentences of the text, ordered by appearance. + * @return the sentences */ ImmutableList getSentences(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Word.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Word.java index 270dd7997..138cb2535 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Word.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Word.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; import java.io.Serializable; @@ -6,83 +6,87 @@ import org.eclipse.collections.api.list.ImmutableList; /** - * The Interface IWord defines a word in a text. + * Represents a word in a text. */ public interface Word extends Comparable, Serializable { /** - * Gets the sentence number starting at 0. + * Returns the sentence number (starting at 0). * * @return the sentence number */ - int getSentenceNo(); + int getSentenceNumber(); /** - * Return the sentence the word is contained in + * Returns the sentence containing this word. * - * @return the sentence the word is contained in + * @return the sentence */ Sentence getSentence(); /** - * Gets the text representation of the word. + * Returns the text of the word. * * @return the text */ String getText(); /** - * Gets the pos tag. + * Returns the POS tag of the word. * - * @return the pos tag + * @return the POS tag */ POSTag getPosTag(); /** - * Gets the previous word. + * Returns the previous word in the sentence. * * @return the previous word */ Word getPreWord(); /** - * Gets the next word. + * Returns the next word in the sentence. * * @return the next word */ Word getNextWord(); /** - * FIXME This description is confusing. Is this relative to the sentence or relative to the entire text? - * Gets the position in the sentence / text. + * Returns the position of the word in the entire text. * * @return the position */ int getPosition(); /** - * Gets the lemmatized version of the word. + * Returns the lemmatized form of the word. * * @return the lemma */ String getLemma(); /** - * Gets the words that are dependency of this. + * Returns outgoing dependency words of this word for the given dependency tag. * * @param dependencyTag the dependency tag - * @return the words that are dependency of this + * @return outgoing dependency words */ ImmutableList getOutgoingDependencyWordsWithType(DependencyTag dependencyTag); /** - * Gets the words that are dependent on this. + * Returns incoming dependency words of this word for the given dependency tag. * * @param dependencyTag the dependency tag - * @return the words that are dependent on this + * @return incoming dependency words */ ImmutableList getIncomingDependencyWordsWithType(DependencyTag dependencyTag); + /** + * Returns the phrase containing this word. + * + * @return the phrase + */ Phrase getPhrase(); @Override @@ -90,7 +94,7 @@ default int compareTo(Word o) { if (this.equals(o)) return 0; - int compareSentences = Integer.compare(this.getSentenceNo(), o.getSentenceNo()); + int compareSentences = Integer.compare(this.getSentenceNumber(), o.getSentenceNumber()); if (compareSentences != 0) { return compareSentences; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java index bbf3b87bf..a6c00d87e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/MultiHopTransitiveTraceLink.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -11,8 +12,16 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +/** + * A trace link representing a transitive relationship between two entities over multiple intermediate entities. + * This class combines a sequence of trace links to create a single link from the first endpoint to the last endpoint. + * + * @param
    the type of the first entity + * @param the type of the last entity + */ public final class MultiHopTransitiveTraceLink extends TraceLink { + @Serial private static final long serialVersionUID = 850583103292008395L; private static final Logger logger = LoggerFactory.getLogger(MultiHopTransitiveTraceLink.class); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java index be9120a57..8c080bbab 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TraceLink.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; import java.io.Serial; @@ -8,6 +8,12 @@ import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; +/** + * Abstract base class for trace links between two entities. A {@link TraceLink} connects two endpoints of types {@code E1} and {@code E2}. + * + * @param the type of the first entity + * @param the type of the second entity + */ public abstract class TraceLink implements Serializable { @Serial private static final long serialVersionUID = -2363643561606530433L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java index eb335b636..98ee864d4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/tracelink/TransitiveTraceLink.java @@ -1,13 +1,23 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.tracelink; +import java.io.Serial; import java.util.Objects; import java.util.Optional; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; +/** + * A trace link that represents a transitive relationship between two entities through an intermediate entity. + * This class combines two trace links to create a single trace link from the first endpoint of the first link + * to the second endpoint of the second link. + * + * @param the type of the first entity + * @param the type of the second entity + */ public final class TransitiveTraceLink extends TraceLink { + @Serial private static final long serialVersionUID = 3781827633038556211L; private final TraceLink firstTraceLink; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/Deterministic.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/Deterministic.java index 082434828..171eda350 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/Deterministic.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/Deterministic.java @@ -1,8 +1,8 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.architecture; /** - * Mark a class as deterministic by user review. + * Annotation to mark a class as deterministic by user review. */ public @interface Deterministic { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/NoHashCodeEquals.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/NoHashCodeEquals.java index 6bd3e6316..90d0f4677 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/NoHashCodeEquals.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/architecture/NoHashCodeEquals.java @@ -1,8 +1,8 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.architecture; /** - * Disallow overriding equals and hashCode for a certain class because of contracts. + * Annotation to disallow overriding equals and hashCode for a class due to contract requirements. */ public @interface NoHashCodeEquals { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java index 6af6e7cc6..a91706a5c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java @@ -1,11 +1,11 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common; import java.util.Collection; import java.util.function.ToDoubleFunction; /** - * A set of various aggregation functions for collections of numbers. + * A set of various aggregation functions for collections of numbers, implementing {@link ToDoubleFunction}. */ public enum AggregationFunctions implements ToDoubleFunction> { /** @@ -21,21 +21,33 @@ public enum AggregationFunctions implements ToDoubleFunction { var quotient = s.stream().mapToDouble(d -> 1.0 / d).sum(); return s.size() / quotient; }), + /** + * Use the root mean square of the scores as final score. + */ ROOTMEANSQUARED(s -> { var squaredValuesSum = s.stream().mapToDouble(d -> Math.pow(d, 2)).sum(); return Math.sqrt(squaredValuesSum / s.size()); }), + /** + * Use the cubic mean of the scores as final score. + */ CUBICMEAN(s -> { var squaredValuesSum = s.stream().mapToDouble(d -> Math.pow(d, 3)).sum(); return Math.cbrt(squaredValuesSum / s.size()); }), + /** + * Use the most recent value in the collection as final score. + */ USE_MOST_RECENT(s -> s.stream().reduce((first, second) -> second).orElse(0.0)), /** @@ -43,6 +55,9 @@ public enum AggregationFunctions implements ToDoubleFunction s.stream().mapToDouble(d -> d).average().getAsDouble()), + /** + * Use the rolling average of the scores as final score. + */ ROLLING_AVERAGE(s -> s.stream().mapToDouble(d -> d).reduce((a, b) -> (a + b) / 2).getAsDouble()), /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/ICopyable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/ICopyable.java deleted file mode 100644 index 6ea7b2645..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/ICopyable.java +++ /dev/null @@ -1,18 +0,0 @@ -/* Licensed under MIT 2021-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common; - -/** - * The Interface ICopyable defines types that are copyable. - * - * @param the copyable itself - */ -@FunctionalInterface -public interface ICopyable> { - - /** - * Creates the copy of this object. - * - * @return the copy - */ - C createCopy(); -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/IdentifierProvider.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/IdentifierProvider.java index d5693de70..ae91a248b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/IdentifierProvider.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/IdentifierProvider.java @@ -1,21 +1,32 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common; import java.util.concurrent.atomic.AtomicInteger; +/** + * Utility class for generating and resetting unique identifiers used throughout the codebase. + */ public class IdentifierProvider { private static final int INITIAL_VALUE = 1337; private static final AtomicInteger COUNTER = new AtomicInteger(INITIAL_VALUE); private IdentifierProvider() { - // empty + throw new IllegalAccessError("IdentifierProvider is a utility class and cannot be instantiated."); } + /** + * Creates a new unique identifier string. + * + * @return a unique identifier string + */ public static String createId() { int currentCounter = COUNTER.getAndIncrement(); return "acm%09djsd".formatted(currentCounter); } + /** + * Resets the identifier counter to its initial value. + */ public static void reset() { COUNTER.set(INITIAL_VALUE); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/JsonHandling.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/JsonHandling.java index 5ef5027e2..f3b524ea7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/JsonHandling.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/JsonHandling.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2024. */ +/* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.common; import com.fasterxml.jackson.annotation.JsonAutoDetect; @@ -6,11 +6,19 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +/** + * Utility class for creating and configuring Jackson ObjectMappers for JSON serialization and deserialization. + */ public final class JsonHandling { private JsonHandling() { throw new IllegalAccessError("Utility class"); } + /** + * Creates and configures a Jackson ObjectMapper for use with ArDoCo models. + * + * @return a configured ObjectMapper + */ public static ObjectMapper createObjectMapper() { var objectMapper = new ObjectMapper(); objectMapper.configure(SerializationFeature.INDENT_OUTPUT, false); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java index 5ae3326a2..79664540e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/RepositoryHandler.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common; import java.io.File; @@ -16,12 +16,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Utility class for handling repository operations such as shallow cloning and removal of repositories. + */ public class RepositoryHandler { private static final Logger logger = LoggerFactory.getLogger(RepositoryHandler.class); private RepositoryHandler() { } + /** + * Performs a shallow clone of a repository to the specified location and checks out the desired commit hash. + * + * @param repositoryLink the URL of the repository to clone + * @param desiredCodeLocation the local directory to clone into + * @param desiredHash the commit hash to check out + * @return true if the repository was cloned and checked out successfully, false otherwise + */ public static boolean shallowCloneRepository(String repositoryLink, String desiredCodeLocation, String desiredHash) { File codeLocation; try { @@ -49,6 +60,11 @@ public static boolean shallowCloneRepository(String repositoryLink, String desir } } + /** + * Removes the repository at the specified location. + * + * @param repositoryLocation the local directory of the repository to remove + */ public static void removeRepository(String repositoryLocation) { try { FileUtils.deleteDirectory(new File(repositoryLocation)); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java index f91f8956d..a3a1dee9f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/PhraseMappingAggregatorStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity; import static edu.kit.kastel.mcse.ardoco.core.common.similarity.SimilarityUtils.cosineSimilarity; @@ -9,18 +9,31 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.PhraseMapping; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +/** + * Aggregation strategies for comparing two {@link PhraseMapping} objects using different similarity metrics. + * Provides maximum, minimum, and average cosine similarity between phrase vectors. + */ @Deterministic public enum PhraseMappingAggregatorStrategy implements ToDoubleBiFunction { + /** + * Uses the maximum cosine similarity between phrase vectors. + */ MAX_SIMILARITY((a, b) -> uniqueDot(a.getPhrases().toImmutableList(), b.getPhrases().toImmutableList()).stream() .mapToDouble(p -> cosineSimilarity(p.first().getPhraseVector().toSortedMap(), p.second().getPhraseVector().toSortedMap())) .max() .orElse(Double.NaN)), // + /** + * Uses the minimum cosine similarity between phrase vectors. + */ MIN_SIMILARITY((a, b) -> uniqueDot(a.getPhrases().toImmutableList(), b.getPhrases().toImmutableList()).stream() .mapToDouble(p -> cosineSimilarity(p.first().getPhraseVector().toSortedMap(), p.second().getPhraseVector().toSortedMap())) .min() .orElse(Double.NaN)), // + /** + * Uses the average cosine similarity between phrase vectors. + */ AVG_SIMILARITY((a, b) -> uniqueDot(a.getPhrases().toImmutableList(), b.getPhrases().toImmutableList()).stream() .mapToDouble(p -> cosineSimilarity(p.first().getPhraseVector().toSortedMap(), p.second().getPhraseVector().toSortedMap())) .average() @@ -28,10 +41,22 @@ public enum PhraseMappingAggregatorStrategy implements ToDoubleBiFunction mapper; + /** + * Creates a strategy with the given mapping function. + * + * @param mapper the function to aggregate similarity + */ PhraseMappingAggregatorStrategy(ToDoubleBiFunction mapper) { this.mapper = mapper; } + /** + * Applies the aggregation strategy to two {@link PhraseMapping} objects. + * + * @param phraseMapping the first phrase mapping + * @param phraseMapping2 the second phrase mapping + * @return the aggregated similarity value + */ @Override public double applyAsDouble(PhraseMapping phraseMapping, PhraseMapping phraseMapping2) { return this.mapper.applyAsDouble(phraseMapping, phraseMapping2); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index ba9ac7c90..a7ce92465 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.text.similarity.CosineSimilarity; @@ -28,7 +29,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonUtilities; /** - * This class is a utility class. + * Utility class for various similarity checks and calculations between entities, words, and phrase mappings. */ @Deterministic public final class SimilarityUtils { @@ -36,10 +37,20 @@ public final class SimilarityUtils { private final WordSimUtils wordSimUtils; + /** + * Creates a new SimilarityUtils instance with the given WordSimUtils. + * + * @param wordSimUtils the word similarity utility + */ public SimilarityUtils(WordSimUtils wordSimUtils) { this.wordSimUtils = wordSimUtils; } + /** + * Returns the singleton instance of SimilarityUtils. + * + * @return the singleton instance + */ public static SimilarityUtils getInstance() { return INSTANCE; } @@ -52,6 +63,13 @@ private static boolean coversOtherPhraseVector(PhraseMapping phraseMapping1, Phr return phraseVector1.keysView().containsAll(phraseVector2.keysView().toSortedSet()); } + /** + * Calculates the cosine similarity between two phrase vectors. + * + * @param firstPhraseVector the first phrase vector + * @param secondPhraseVector the second phrase vector + * @return the cosine similarity + */ static double cosineSimilarity(Map firstPhraseVector, Map secondPhraseVector) { CosineSimilarity cosineSimilarity = new CosineSimilarity(); @@ -66,6 +84,13 @@ static double cosineSimilarity(Map firstPhraseVector, Map ImmutableList> uniqueDot(ImmutableList first, ImmutableList second) { List> result = new ArrayList<>(); for (A a : first) { @@ -93,7 +118,7 @@ private static int similarEntriesOfList(ImmutableList list1, ImmutableLi * * @param nm1 the first NounMapping * @param nm2 the second NounMapping - * @return true, if the {@link NounMapping}s are similar; false if not. + * @return true if the NounMappings are similar */ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { var nm1Words = nm1.getReferenceWords(); @@ -118,12 +143,11 @@ public boolean areNounMappingsSimilar(NounMapping nm1, NounMapping nm2) { } /** - * Compares a given {@link NounMapping} with a given {@link Entity} for similarity. Checks if all names, the longest name or a single name are similar to - * the reference of the NounMapping. + * Compares a {@link NounMapping} with a {@link Entity} for similarity. * - * @param nounMapping the {@link NounMapping} - * @param modelEntity the {@link Entity} - * @return true, iff the {@link NounMapping} and {@link Entity} are similar. + * @param nounMapping the NounMapping + * @param modelEntity the Entity + * @return true if similar */ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, ModelEntity modelEntity) { var nameParts = modelEntity.getNameParts(); @@ -143,11 +167,11 @@ public boolean isNounMappingSimilarToModelInstance(NounMapping nounMapping, Mode } /** - * Compares a given {@link Word} with a given {@link ModelEntity} for similarity. + * Compares a {@link Word} with a {@link ModelEntity} for similarity. * - * @param word the {@link Word} - * @param modelEntity the {@link ModelEntity} of a model - * @return true, iff the {@link Word} and {@link ModelEntity} are similar. + * @param word the Word + * @param modelEntity the ModelEntity + * @return true if similar */ public boolean isWordSimilarToEntity(Word word, ModelEntity modelEntity) { if (modelEntity.getNameParts().isEmpty()) { @@ -156,14 +180,12 @@ public boolean isWordSimilarToEntity(Word word, ModelEntity modelEntity) { return this.compareWordWithStringListEntries(word, modelEntity.getNameParts()); } - //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed - /** - * Compares a given {@link RecommendedInstance} with a given {@link ModelEntity} for similarity. + * Compares a {@link RecommendedInstance} with a {@link ModelEntity} for similarity. * - * @param ri the {@link RecommendedInstance} - * @param modelEntity the {@link ModelEntity} - * @return true, iff the {@link RecommendedInstance} and {@link ModelEntity} are similar. + * @param ri the RecommendedInstance + * @param modelEntity the ModelEntity + * @return true if similar */ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance ri, ModelEntity modelEntity) { var result = modelEntity.getName().equalsIgnoreCase(ri.getName()); @@ -177,21 +199,20 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r return result || this.areWordsOfListsSimilar(modelEntity.getNameParts(), nameList); } - //FIXME this method is a duplicate of an existing method in WordSimUtils and should be removed - /** - * Compares a given {@link Word} with the type of a given {@link ModelEntity} for similarity. + * Compares a {@link Word} with the type of a {@link ModelEntity} for similarity. * - * @param word the {@link Word} - * @param modelEntity the {@link ModelEntity} - * @return true, iff the {@link Word} and the type of the {@link ModelEntity} are similar. + * @param word the Word + * @param modelEntity the ModelEntity + * @return true if similar */ public boolean isWordSimilarToModelInstanceType(Word word, ModelEntity modelEntity) { - if (modelEntity.getTypeParts().isEmpty()) { + Optional> typeParts = modelEntity.getTypeParts(); + if (typeParts.isEmpty()) { return false; } - return this.compareWordWithStringListEntries(word, modelEntity.getTypeParts().get()); + return this.compareWordWithStringListEntries(word, typeParts.get()); } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { @@ -212,32 +233,30 @@ private boolean compareWordWithStringListEntries(String word, ImmutableList originals, ImmutableList words2test, double minProportion) { @@ -269,26 +288,22 @@ public boolean areWordsOfListsSimilar(ImmutableList originals, Immutable } /** - * Checks the similarity of a list, containing test strings, and a list of originals. This check is not bidirectional! This method uses the areWordsSimilar - * method with a given threshold. + * Checks the similarity of two lists of strings using the default threshold. * - * @param originals list of original strings - * @param words2test list of test strings - * @return true if the list are similar, false if not + * @param originals the original strings + * @param words2test the test strings + * @return true if the lists are similar */ public boolean areWordsOfListsSimilar(ImmutableList originals, ImmutableList words2test) { return this.areWordsOfListsSimilar(originals, words2test, CommonTextToolsConfig.JAROWINKLER_SIMILARITY_THRESHOLD); } /** - * Extracts most likely matches of a list of recommended instances by similarity to a given instance. For this, the method uses an increasing minimal - * proportional threshold with the method areWordsOfListsSimilar method. If all lists are similar to the given instance by a threshold of 1-increase value - * the while loop can be left. If the while loop ends with more than one possibility or all remaining lists are sorted out in the same run, all are - * returned. Elsewhere only the remaining recommended instance is returned within the list. + * Extracts the most likely matches of recommended instances by similarity to a given instance. * - * @param modelEntity instance to use as original for compare - * @param recommendedInstances recommended instances to check for similarity - * @return a list of the most similar recommended instances (to the instance names) + * @param modelEntity the instance to use as original + * @param recommendedInstances the recommended instances to check + * @return a list of the most similar recommended instances */ public ImmutableList getMostRecommendedInstancesToInstanceByReferences(ModelEntity modelEntity, ImmutableList recommendedInstances) { @@ -389,6 +404,15 @@ private boolean containsAllNounMappingsOfPhraseMapping(TextState textState, Phra return phraseMapping1.getNounMappings(textState).containsAllIterable(phraseMapping2.getNounMappings(textState)); } + /** + * Returns the most similar phrase mapping from a list, given a minimum cosine similarity. + * + * @param textState the text state + * @param phraseMapping the phrase mapping to compare + * @param otherPhraseMappings the other phrase mappings + * @param minCosineSimilarity the minimum cosine similarity + * @return the most similar phrase mapping, or null if none found + */ public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapping phraseMapping, ImmutableList otherPhraseMappings, double minCosineSimilarity) { @@ -409,6 +433,15 @@ public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapp return mostSimilarPhraseMapping; } + /** + * Returns the similarity between two phrase mappings using the given strategy. + * + * @param textState the text state + * @param firstPhraseMapping the first phrase mapping + * @param secondPhraseMapping the second phrase mapping + * @param strategy the aggregation strategy + * @return the similarity value + */ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firstPhraseMapping, PhraseMapping secondPhraseMapping, PhraseMappingAggregatorStrategy strategy) { PhraseType firstPhraseType = firstPhraseMapping.getPhraseType(); @@ -417,7 +450,7 @@ public double getPhraseMappingSimilarity(TextState textState, PhraseMapping firs return 0; } - // Maybe REWORK. Remove NounMappings? + // TODO Maybe REWORK. Remove NounMappings? if ((coversOtherPhraseVector(firstPhraseMapping, secondPhraseMapping) || coversOtherPhraseVector(secondPhraseMapping, firstPhraseMapping)) && this .containsAllNounMappingsOfPhraseMapping(textState, firstPhraseMapping, secondPhraseMapping) && this.containsAllNounMappingsOfPhraseMapping( textState, secondPhraseMapping, firstPhraseMapping)) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java index 5a6020d24..d44c22a9d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/ComparisonContext.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.Objects; @@ -6,9 +6,9 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Word; /** - * A ComparisonContext contains all information that can be used for comparing similarity between objects that occur within ArDoCo. The fields - * {@link #firstString} and {@link #secondString} are always not null. The field {@link #lemmatize} decides whether the lemmatized version of both words should - * be used for comparison. + * Contains all information for comparing similarity between objects in ArDoCo. + * The fields {@code firstString} and {@code secondString} are always non-null. + * The field {@code lemmatize} decides whether the lemmatized version of both words should be used for comparison. */ public record ComparisonContext(String firstString, String secondString, Word firstWord, Word secondWord, boolean lemmatize) { @@ -45,23 +45,19 @@ public ComparisonContext(Word firstWord, Word secondWord, boolean lemmatize) { } /** - * Finds the most appropriate string representation by the first object in this comparison object. This method can be used as a shorthand to avoid going - * through all variables that could possibly represent the first object. + * Finds the most appropriate string representation for the first object in this comparison. * - * @return the most appropriate string presentation of the first object in this comparison + * @return the most appropriate string representation of the first object */ - public String firstTerm() { return this.findAppropriateTerm(this.firstString, this.firstWord); } /** - * Finds the most appropriate string representation by the second object in this comparison object. This method can be used as a shorthand to avoid going - * through all variables that could possibly represent the second object. + * Finds the most appropriate string representation for the second object in this comparison. * - * @return the most appropriate string presentation of the second object in this comparison + * @return the most appropriate string representation of the second object */ - public String secondTerm() { return this.findAppropriateTerm(this.secondString, this.secondWord); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java index f24ee51a1..4c10d2f99 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java @@ -17,15 +17,14 @@ import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; /** - * Responsible for loading the word similarity measures that should be enabled according to the - * {@link CommonTextToolsConfig}. + * Loads the word similarity measures enabled according to {@link CommonTextToolsConfig}. */ public class WordSimLoader { private static final Logger LOGGER = LoggerFactory.getLogger(WordSimLoader.class); /** - * Loads and returns the word similarity measures that should be enabled according to {@link CommonTextToolsConfig}. + * Loads and returns the word similarity measures enabled according to {@link CommonTextToolsConfig}. * * @return a list of word similarity measures */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java index afca21569..c2625b8cf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java @@ -1,8 +1,8 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; /** - * A measure that can determine whether two words from a {@link ComparisonContext} are similar. + * A measure that determines whether two words from a {@link ComparisonContext} are similar. */ public interface WordSimMeasure { @@ -10,7 +10,7 @@ public interface WordSimMeasure { * Evaluates whether the words from the given {@link ComparisonContext} are similar. * * @param ctx the context containing the words - * @return Returns {@code true} if the words are similar. + * @return true if the words are similar */ boolean areWordsSimilar(ComparisonContext ctx); @@ -18,7 +18,7 @@ public interface WordSimMeasure { * Evaluates how similar the words from the given {@link ComparisonContext} are. * * @param ctx the context containing the words - * @return Similarity in range [0,1] + * @return similarity in range [0,1] */ double getSimilarity(ComparisonContext ctx); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java index 5864166a6..2645cd286 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import java.util.ArrayList; @@ -18,11 +18,8 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy.SimilarityStrategy; /** - * A static class that provides various utility methods to calculate similarity between different kinds of objects. This class statically keeps a reference to a - * fallback {@link ComparisonStrategy} and a fallback list of word similarity measures. These fallbacks can be changed with the {@link #setMeasures(Collection)} - * and {@link #setStrategy(ComparisonStrategy)} methods. Any calls to methods that provide their own measures or strategies will not utilize these fallbacks. - * Any calls that do not provide their own measures or strategies will utilize them. As of right now, no protections against simultaneous write access from - * multiple threads exist. Therefore, this class is not threadsafe. + * Provides utility methods for calculating similarity between objects, with configurable strategies and measures. + * Not thread-safe. */ public class WordSimUtils { @@ -31,7 +28,7 @@ public class WordSimUtils { private SimilarityStrategy similarityStrategy = new AverageStrategy(); /** - * Sets which measures should be used for similarity comparison. The specified collection of measures will be used for all subsequent comparisons. + * Sets which measures should be used for similarity comparison. * * @param measures the measures to use */ @@ -40,10 +37,10 @@ public void setMeasures(Collection measures) { } /** - * Adds the specified measure to the measures, which should be used for similarity comparison. + * Adds the specified measure to the measures used for similarity comparison. * * @param measure the measure to add - * @return Whether the measure was added successfully + * @return true if the measure was added successfully */ public boolean addMeasure(WordSimMeasure measure) { return this.measures.add(measure); @@ -72,13 +69,12 @@ public void setStrategy(SimilarityStrategy strategy) { * * @param ctx the context * @param strategy the strategy - * @return Returns {@code true} if the given strategy considers the words similar enough. + * @return true if the given strategy considers the words similar enough */ public boolean areWordsSimilar(ComparisonContext ctx, ComparisonStrategy strategy) { Objects.requireNonNull(ctx); Objects.requireNonNull(strategy); - // Currently, we need the split test as it improves results by a lot. In the future, we should try to avoid its requirement if (!this.splitLengthTest(ctx)) { return false; } @@ -93,11 +89,10 @@ private boolean splitLengthTest(ComparisonContext ctx) { } /** - * Evaluates whether the words from the given {@link ComparisonContext} are similar using the default comparison strategy. The default strategy can be - * changed with the {@link #setStrategy(ComparisonStrategy)} method. + * Evaluates whether the words from the given {@link ComparisonContext} are similar using the default comparison strategy. * * @param ctx the context - * @return Returns {@code true} if the default strategy considers the words similar enough. + * @return true if the default strategy considers the words similar enough */ public boolean areWordsSimilar(ComparisonContext ctx) { Objects.requireNonNull(ctx); @@ -105,12 +100,11 @@ public boolean areWordsSimilar(ComparisonContext ctx) { } /** - * Evaluates whether the given words are similar using the default comparison strategy. The default strategy can be changed with the - * {@link #setStrategy(ComparisonStrategy)} method. + * Evaluates whether the given words are similar using the default comparison strategy. * * @param firstWord the first word * @param secondWord the second word - * @return Returns {@code true} if the default strategy considers the words similar enough. + * @return true if the default strategy considers the words similar enough */ public boolean areWordsSimilar(String firstWord, String secondWord) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), this.strategy); @@ -122,19 +116,18 @@ public boolean areWordsSimilar(String firstWord, String secondWord) { * @param firstWord the first word * @param secondWord the second word * @param strategy the strategy to use - * @return Returns {@code true} if the given strategy considers the words similar enough. + * @return true if the given strategy considers the words similar enough */ public boolean areWordsSimilar(String firstWord, String secondWord, ComparisonStrategy strategy) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); } /** - * Evaluates whether the given words are similar using the default comparison strategy. The default strategy can be changed with the - * {@link #setStrategy(ComparisonStrategy)} method. + * Evaluates whether the given words are similar using the default comparison strategy. * * @param firstWord the first word * @param secondWord the second word - * @return Returns {@code true} if the default strategy considers the words similar enough. + * @return true if the default strategy considers the words similar enough */ public boolean areWordsSimilar(Word firstWord, Word secondWord) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), this.strategy); @@ -146,19 +139,18 @@ public boolean areWordsSimilar(Word firstWord, Word secondWord) { * @param firstWord the first word * @param secondWord the second word * @param strategy the strategy to use - * @return Returns {@code true} if the given strategy considers the words similar enough. + * @return true if the given strategy considers the words similar enough */ public boolean areWordsSimilar(Word firstWord, Word secondWord, ComparisonStrategy strategy) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord, false), strategy); } /** - * Evaluates whether the given words are similar using the default comparison strategy. The default strategy can be changed with the - * {@link #setStrategy(ComparisonStrategy)} method. + * Evaluates whether the given words are similar using the default comparison strategy. * * @param firstWord the first word * @param secondWord the second word - * @return Returns {@code true} if the default strategy considers the words similar enough. + * @return true if the default strategy considers the words similar enough */ public boolean areWordsSimilar(String firstWord, Word secondWord) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false), this.strategy); @@ -170,7 +162,7 @@ public boolean areWordsSimilar(String firstWord, Word secondWord) { * @param firstWord the first word * @param secondWord the second word * @param strategy the strategy to use - * @return Returns {@code true} if the given strategy considers the words similar enough. + * @return true if the given strategy considers the words similar enough */ public boolean areWordsSimilar(String firstWord, Word secondWord, ComparisonStrategy strategy) { return this.areWordsSimilar(new ComparisonContext(firstWord, secondWord.getText(), null, secondWord, false), strategy); @@ -183,7 +175,7 @@ public boolean areWordsSimilar(String firstWord, Word secondWord, ComparisonStra * @param secondWord the second word * @param strategy the strategy to use * @param ignoreCase whether to ignore the case during comparison - * @return Returns similarity in range [0,1] + * @return similarity in range [0,1] */ public double getSimilarity(String firstWord, String secondWord, SimilarityStrategy strategy, boolean ignoreCase) { var allMeasuresExceptDefault = this.measures.stream().filter(m -> !(m instanceof EqualityMeasure)).collect(Collectors.toCollection(ArrayList::new)); @@ -201,7 +193,7 @@ public double getSimilarity(String firstWord, String secondWord, SimilarityStrat * * @param firstWord the first word * @param secondWord the second word - * @return Returns similarity in range [0,1] + * @return similarity in range [0,1] */ public double getSimilarity(String firstWord, String secondWord) { return this.getSimilarity(firstWord, secondWord, false); @@ -213,12 +205,17 @@ public double getSimilarity(String firstWord, String secondWord) { * @param firstWord the first word * @param secondWord the second word * @param ignoreCase whether to ignore the case during comparison - * @return Returns similarity in range [0,1] + * @return similarity in range [0,1] */ public double getSimilarity(String firstWord, String secondWord, boolean ignoreCase) { return this.getSimilarity(firstWord, secondWord, this.similarityStrategy, ignoreCase); } + /** + * Configures SQLite settings for read-only, exclusive locking, and no journal mode. + * + * @return configured SQLiteConfig instance + */ public static SQLiteConfig getSqLiteConfig() { var cfg = new SQLiteConfig(); cfg.setReadOnly(true); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java index 6e0fcf86d..fa18fbd3a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java @@ -1,19 +1,30 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * This word similarity measure just checks whether the most appropriate string representations of the passed objects are equal (ignoring case). - * + * A word similarity measure that checks if the string representations of the terms are equal, ignoring case. */ public class EqualityMeasure implements WordSimMeasure { + /** + * Checks if the terms in the given context are similar by comparing their string representations, ignoring case. + * + * @param ctx the comparison context + * @return true if the terms are equal ignoring case, false otherwise + */ @Override public boolean areWordsSimilar(ComparisonContext ctx) { return ctx.firstTerm().equalsIgnoreCase(ctx.secondTerm()); } + /** + * Returns 1.0 if the terms are similar, 0.0 otherwise. + * + * @param ctx the comparison context + * @return the similarity score (1.0 or 0.0) + */ @Override public double getSimilarity(ComparisonContext ctx) { return this.areWordsSimilar(ctx) ? 1 : 0; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java index 7b1e7dffa..2f0aa3cea 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -7,11 +7,17 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * This comparison strategy accepts any word pair as similar if at least one of the specified word similarity measures - * also accept that word pair as similar. + * Comparison strategy: accepts a word pair as similar if at least one measure accepts it as similar. */ public class AtLeastOneStrategy implements ComparisonStrategy { + /** + * Returns true if at least one measure considers the words similar. + * + * @param ctx the comparison context + * @param measures the measures to use + * @return true if at least one measure returns true + */ @Override public boolean areWordsSimilar(ComparisonContext ctx, List measures) { for (WordSimMeasure measure : measures) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java index 0deb79528..963c08229 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -6,6 +6,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; +/** + * A similarity strategy that returns the average of all similarity scores from the provided word similarity measures. + */ public class AverageStrategy implements SimilarityStrategy { @Override public double getSimilarity(ComparisonContext ctx, List measures) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java index f6733b775..939c0f90b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -7,7 +7,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * A comparison strategy determines how the verdicts of multiple WSMs regarding a specific comparison are combined. + * A strategy for combining the verdicts of multiple word similarity measures. */ public interface ComparisonStrategy { @@ -16,12 +16,11 @@ public interface ComparisonStrategy { ComparisonStrategy MAJORITY = new MajorityStrategy(); /** - * Evaluates whether the words from the given {@link ComparisonContext} are similar by combining the verdicts of the - * specified word similarity measures. + * Evaluates whether the words from the given context are similar by combining the verdicts of the specified measures. * * @param ctx the context containing the words * @param measures the measures to use - * @return Returns {@code true} if the words are similar. + * @return true if the words are similar */ boolean areWordsSimilar(ComparisonContext ctx, List measures); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java index 029cca99e..b16975bd3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -7,11 +7,17 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * This comparison strategy accepts any word pair as similar if the majority of specified word similarity measures - * accept the word pair as similar. + * Comparison strategy: accepts a word pair as similar if the majority of measures accept it as similar. */ public class MajorityStrategy implements ComparisonStrategy { + /** + * Returns true if the majority of measures consider the words similar. + * + * @param ctx the comparison context + * @param measures the measures to use + * @return true if the majority of measures return true + */ @Override public boolean areWordsSimilar(ComparisonContext ctx, List measures) { int acceptances = 0; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java index 2c9c6916a..f73f962e8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -6,6 +6,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; +/** + * A similarity strategy that returns the maximum of all similarity scores from the provided word similarity measures. + */ public class MaximumStrategy implements SimilarityStrategy { @Override public double getSimilarity(ComparisonContext ctx, List measures) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java index 598908f36..d76a1f0e2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.ArrayList; @@ -7,6 +7,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; +/** + * A similarity strategy that returns the median of all similarity scores from the provided word similarity measures. + */ public class MedianStrategy implements SimilarityStrategy { @Override public double getSimilarity(ComparisonContext ctx, List measures) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java index c31ae3754..8ccfe8d0b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; import java.util.List; @@ -6,6 +6,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; +/** + * A similarity strategy determines how the similarity scores of multiple word similarity measures are combined to produce a single similarity score. + */ public interface SimilarityStrategy { /** * Evaluates how similar the words from the given {@link ComparisonContext} are by combining the verdicts of the specified word similarity measures. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java index f688c57c3..61164cd49 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java @@ -1,10 +1,13 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; +import java.io.Serial; + /** * An exception that can occur while trying to retrieve a vector. */ public class RetrieveVectorException extends Exception { + @Serial private static final long serialVersionUID = 6771335689887319781L; public RetrieveVectorException(String message, Throwable cause) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java index 3ae45238d..9350aa8b8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.LinkedHashMap; @@ -9,9 +9,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; /** - * A vector based word similarity measure uses vector embeddings of words to compare their similarity. To get vector - * embeddings of passed words, a {@link WordVectorDataSource} is required. Instances of this class additionally manage a - * cache to improve lookup speeds. + * Abstract base for word similarity measures using vector embeddings. Manages a cache for lookup speed. */ @Deterministic public abstract class VectorBasedWordSimMeasure implements WordSimMeasure { @@ -22,14 +20,13 @@ public abstract class VectorBasedWordSimMeasure implements WordSimMeasure { protected abstract WordVectorDataSource getVectorDataSource(); /** - * Compares the two given words by computing the cosine similarity between their respective vector representations. - * If the vector representation for one of the words is not found, a similarity score of {@code 0.0} will be - * returned. + * Compares two words by computing the cosine similarity between their vector representations. + * Returns 0.0 if a vector is not found. * * @param firstWord the first word * @param secondWord the second word - * @return returns the similarity score between the two words, between 0.0 and 1.0 (inclusive) - * @throws RetrieveVectorException if an error occurs while retrieving the word vectors + * @return the similarity score between the two words, between 0.0 and 1.0 + * @throws RetrieveVectorException if an error occurs while retrieving the vectors */ public double compareVectors(String firstWord, String secondWord) throws RetrieveVectorException { Objects.requireNonNull(firstWord); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java index 453c9980b..5fc13025b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.nio.ByteBuffer; @@ -15,13 +15,9 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; /** - * Manages a connection to a sqlite database that contains vector word embeddings using a very specific schema: - *

    - * A table {@code words} has to exist with two columns: {@code word} and {@code vec}. The {@code word} column must be a - * unique {@code TEXT} column while the {@code vec} column must be a non-nullable {@code BLOB}. - *

    - * Vector blobs must be stored as a consecutive sequence of floats. The amount of floats in a sequence depends on the - * dimension of the vectors. + * Manages a connection to a SQLite database containing vector word embeddings. + * The table {@code words} must have columns {@code word} (TEXT, unique) and {@code vec} (BLOB, non-null). + * Vector blobs are stored as consecutive floats. */ public class VectorSqliteDatabase implements WordVectorDataSource, AutoCloseable { @@ -32,11 +28,10 @@ public class VectorSqliteDatabase implements WordVectorDataSource, AutoCloseable private final PreparedStatement selectStatement; /** - * Instantiates the {@link VectorSqliteDatabase}. Once instantiated, a connection to the file will be kept open - * until {@link #close()} is called on this instance. + * Instantiates the database and opens a connection until {@link #close()} is called. * - * @param sqliteFile the path to the sqlite file - * @throws SQLException if connecting to the sqlite database fails + * @param sqliteFile the path to the SQLite file + * @throws SQLException if connecting to the database fails */ public VectorSqliteDatabase(Path sqliteFile) throws SQLException { if (!Files.exists(sqliteFile)) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java index f78330f5a..aa23a9f72 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java @@ -1,16 +1,15 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.Objects; /** - * Some utility functions for double and float vectors. + * Utility functions for double and float vectors. */ public class VectorUtils { /** - * Calculates the cosine similarity between the two given vectors. If both vectors are zero, the resulting - * similarity is 1.0. If only one of the vectors is zero, the resulting similarity is 0.0. + * Calculates the cosine similarity between two vectors. If both are zero, returns 1.0; if only one is zero, returns 0.0. * * @param firstVec the first vector * @param secondVec the second vector @@ -46,7 +45,7 @@ public static double cosineSimilarity(double[] firstVec, double[] secondVec) { } /** - * Calculates the cosine similarity between the two given vectors. The two given vectors must have the same length. + * Calculates the cosine similarity between two vectors. The two vectors must have the same length. * * @param firstVec the first vector * @param secondVec the second vector @@ -104,7 +103,7 @@ public static boolean isZero(float[] vector) { } /** - * Adds the given vectors together and stores the resulting vector in the first argument. The two given vectors must + * Adds the given vectors together and stores the resulting vector in the first argument. The two vectors must * have the same length. * * @param result the first vector that will also be the result vector after the addition diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java index ec998ee47..7731410cf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.util.Optional; @@ -12,9 +12,8 @@ public interface WordVectorDataSource { * Attempts to retrieve the vector representation for the given word. * * @param word the word - * @return the vector representation of that word, or {@link Optional#empty()} if no vector representation for the - * given word exists - * @throws RetrieveVectorException if an error occurs while trying to retrieve the vector + * @return the vector representation, or {@link Optional#empty()} if not found + * @throws RetrieveVectorException if an error occurs while retrieving the vector */ Optional getWordVector(String word) throws RetrieveVectorException; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java index 59d7b05f5..4e604613e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Pair.java @@ -1,15 +1,34 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.tuple; import java.io.Serializable; import java.util.Objects; +/** + * A record representing a pair of two serializable elements. + * + * @param the type of the first element + * @param the type of the second element + */ public record Pair(T first, U second) implements Serializable { + /** + * Checks if the pair contains the specified element. + * + * @param element the element to check for + * @return true if the pair contains the element, false otherwise + */ public boolean hasElement(Serializable element) { return Objects.equals(this.first, element) || Objects.equals(this.second, element); } + /** + * Returns the other element in the pair when given one element. + * + * @param element one of the elements in the pair + * @return the other element in the pair + * @throws IllegalArgumentException if the given element is not part of this pair + */ public Serializable getOtherElement(Serializable element) { if (Objects.equals(this.first, element)) { return this.second; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java index 9ef6196d1..65166b0ad 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/tuple/Triple.java @@ -1,8 +1,14 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.tuple; import java.io.Serializable; -// TODO Make T Serializable (Claimant) ?? +/** + * A record representing a triple of three elements, where the second and third elements are serializable. + * + * @param the type of the first element + * @param the type of the second element (must be serializable) + * @param the type of the third element (must be serializable) + */ public record Triple(T first, U second, V third) implements Serializable { } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java index 45035529d..15d1bf41d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java @@ -4,7 +4,7 @@ import org.eclipse.collections.api.list.ImmutableList; /** - * The Class CommonTextToolsConfig defines the configuration for the common text tools. + * Configuration class for the common text tools, providing constants for similarity and text processing settings. */ public final class CommonTextToolsConfig { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 6e93ba540..90d16c4f9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -32,9 +32,12 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * General helper class for outsourced, common methods. + * General helper class for common utility methods used throughout the framework. */ public final class CommonUtilities { + /** + * Formatter for date and time output (pattern: yyyy-MM-dd HH:mm). + */ public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); private static final Logger logger = LoggerFactory.getLogger(CommonUtilities.class); @@ -47,7 +50,7 @@ private CommonUtilities() { * * @param d1 value 1 * @param d2 value 2 - * @return true iff similar enough to be equal + * @return true iff similar enough to be equal */ public static boolean valueEqual(double d1, double d2) { return Math.abs(d1 - d2) < 1E-8; @@ -97,7 +100,7 @@ public static double harmonicMean(List values) { } /** - * Calculates the root mean square between two given values + * Calculates the root mean square between two given values. * * @param first the first value * @param second the second value @@ -108,7 +111,7 @@ public static double rootMeanSquare(double first, double second) { } /** - * Calculates the root mean square between the given values + * Calculates the root mean square between the given values. * * @param values List of doubles that should be used to calculate their mean * @return the root mean square of the given values @@ -119,21 +122,21 @@ public static double rootMeanSquare(List values) { } /** - * Calculates the cubic mean between two given values + * Calculates the cubic mean between two given values. * * @param first the first value * @param second the second value - * @return the root mean square of the given values + * @return the cubic mean of the given values */ public static double cubicMean(double first, double second) { return Math.cbrt((Math.pow(first, 3) + Math.pow(second, 3)) / 2); } /** - * Calculates the cubic mean between the given values + * Calculates the cubic mean between the given values. * * @param values List of doubles that should be used to calculate their mean - * @return the root mean square of the given values + * @return the cubic mean of the given values */ public static double cubicMean(List values) { var cubedValuesSum = values.stream().mapToDouble(d -> Math.pow(d, 3)).sum(); @@ -141,7 +144,7 @@ public static double cubicMean(List values) { } /** - * Calculates the power mean (or generalized mean) between the given values + * Calculates the power mean (or generalized mean) between the given values. * * @param first the first value * @param second the second value @@ -153,7 +156,7 @@ public static double powerMean(double first, double second, double power) { } /** - * Calculates the power mean (or generalized mean) between the given values + * Calculates the power mean (or generalized mean) between the given values. * * @param values List of doubles that should be used to calculate their mean * @param power the power to use @@ -195,7 +198,7 @@ public static boolean containsSeparator(String reference) { /** * Creates {@link RecommendedInstance}s for the given {@link NounMapping}s using the given information about similar types and probability and type - * mappings. Adds the created {@link RecommendedInstance}s to the given {@link RecommendationState} + * mappings. Adds the created {@link RecommendedInstance}s to the given {@link RecommendationState}. * * @param similarTypes The list of similar types * @param nameMappings the noun mappings @@ -229,6 +232,7 @@ public static ImmutableList getSimilarTypes(Word word, Model model) { /** * Returns a set of identifiers for the types in the model. * + * @param model the model containing type information * @return Set of identifiers for existing types */ public static SortedSet getSplittedTypeIdentifiers(Model model) { @@ -272,7 +276,7 @@ public static String splitCamelCase(String name) { } /** - * Splits a given String using {@link #splitCamelCase(String)} and {@link #splitSnakeAndKebabCase(String)} + * Splits a given String using {@link #splitCamelCase(String)} and {@link #splitSnakeAndKebabCase(String)}. * * @param name the given name * @return the split name @@ -282,10 +286,10 @@ public static String splitCases(String name) { } /** - * Checks if the given name is a CamelCased-word + * Checks if the given name is a CamelCased-word. * * @param name the name to check - * @return true if the given name is CamelCased + * @return true if the given name is CamelCased */ public static boolean nameIsCamelCased(String name) { var unCamelCased = CommonUtilities.splitCamelCase(name); @@ -293,10 +297,10 @@ public static boolean nameIsCamelCased(String name) { } /** - * Checks if the given name is a snake_cased-word + * Checks if the given name is a snake_cased-word. * * @param name the name to check - * @return true if the given name is snake_cased + * @return true if the given name is snake_cased */ public static boolean nameIsSnakeCased(String name) { var split = name.split("_"); @@ -304,10 +308,10 @@ public static boolean nameIsSnakeCased(String name) { } /** - * Checks if the given name is a kebab-cased-word + * Checks if the given name is a kebab-cased-word. * * @param name the name to check - * @return true if the given name is kebab-cased + * @return true if the given name is kebab-cased */ public static boolean nameIsKebabCased(String name) { var split = name.split("-"); @@ -315,7 +319,7 @@ public static boolean nameIsKebabCased(String name) { } /** - * Creates a reference given a list of words (compoundWords) + * Creates a reference given a list of words (compoundWords). * * @param compoundWords the given compoundWords * @return a reference that consists of the words in the given compoundWords @@ -329,6 +333,12 @@ public static String createReferenceForCompound(ImmutableList compoundWord return referenceJoiner.toString(); } + /** + * Returns the compound words for the given word, if any. + * + * @param word the word to analyze + * @return the list of compound words, or empty if none + */ public static ImmutableList getCompoundWords(Word word) { var deps = Lists.mutable.of(word); deps.addAll(word.getOutgoingDependencyWordsWithType(DependencyTag.COMPOUND).toList()); @@ -340,10 +350,10 @@ public static ImmutableList getCompoundWords(Word word) { } /** - * Check if the word is CamelCased. Additionally, the word needs to have a length > 4, otherwise it is probably only a abbreviation. + * Check if the word is CamelCased. Additionally, the word needs to have a length > 4, otherwise it is probably only an abbreviation. * * @param word Word to check - * @return true if the word is CamelCased and has a length greater than 4 + * @return true if the word is CamelCased and has a length greater than 4 */ public static boolean isCamelCasedWord(String word) { if (word.toUpperCase().equals(word)) { @@ -379,7 +389,7 @@ public static String getCurrentTimeAsString() { } /** - * Reads text from the {@link InputStream} into a String + * Reads text from the {@link InputStream} into a String. * * @param text the input stream * @return the text as String @@ -393,7 +403,7 @@ public static String readInputText(InputStream text) { } /** - * Reads the contents of a File into a String + * Reads the contents of a File into a String. * * @param textFile the file to be read * @return the content of the File as String diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java index 107658289..7e163dfa4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import java.util.Collection; @@ -7,7 +7,7 @@ import org.eclipse.collections.api.ordered.SortedIterable; /** - * Provides functions to compare collections regardless of order + * Provides functions to compare collections regardless of order or identity. */ public final class Comparators { private Comparators() { @@ -15,33 +15,36 @@ private Comparators() { } /** - * {@return Whether both collections consist of equal elements (regardless of order)} + * Returns whether both collections consist of equal elements (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both collections have equal elements, false otherwise */ public static boolean collectionsEqualsAnyOrder(ImmutableCollection first, ImmutableCollection second) { return collectionsEqualsAnyOrder(first.castToCollection(), second.castToCollection()); } /** - * {@return Whether both collections consist of equal elements (regardless of order)} + * Returns whether both collections consist of equal elements (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both collections have equal elements, false otherwise */ public static boolean collectionsEqualsAnyOrder(Collection first, Collection second) { return first.size() == second.size() && first.containsAll(second) && second.containsAll(first); } /** - * {@return Whether both sorted iterables consist of equal elements (regardless of order)} + * Returns whether both sorted iterables consist of equal elements (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both sorted iterables have equal elements, false otherwise */ public static boolean collectionsEqualsAnyOrder(SortedIterable first, SortedIterable second) { var f = first.iterator(); @@ -55,22 +58,24 @@ public static boolean collectionsEqualsAnyOrder(SortedIterable first, Sor } /** - * {@return Whether both collections consist of the same references (regardless of order)} + * Returns whether both collections consist of the same references (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both collections have the same references, false otherwise */ public static boolean collectionsIdentityAnyOrder(ImmutableCollection first, ImmutableCollection second) { return collectionsIdentityAnyOrder(first.castToCollection(), second.castToCollection()); } /** - * {@return Whether both sorted iterables consist of the same references (regardless of order)} + * Returns whether both sorted iterables consist of the same references (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both sorted iterables have the same references, false otherwise */ public static boolean collectionsIdentityAnyOrder(SortedIterable first, SortedIterable second) { var f = first.iterator(); @@ -84,11 +89,12 @@ public static boolean collectionsIdentityAnyOrder(SortedIterable first, S } /** - * {@return Whether both collections consist of the same references (regardless of order)} + * Returns whether both collections consist of the same references (regardless of order). * * @param first collection * @param second collection * @param Type of the collection + * @return true if both collections have the same references, false otherwise */ public static boolean collectionsIdentityAnyOrder(Collection first, Collection second) { return first.size() == second.size() && first.stream().allMatch(f -> second.stream().anyMatch(s -> f == s)); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index e06a54120..81f81eb62 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -1,13 +1,6 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; - import edu.kit.kastel.mcse.ardoco.core.api.InputTextData; import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; @@ -18,12 +11,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; -import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; import edu.kit.kastel.mcse.ardoco.core.data.ProjectPipelineData; /** - * This class helps to access {@link DataRepository DataRepositories}. It provides methods to access the different {@link PipelineStepData} that is stored - * within the repository that are used within ArDoCo. + * Utility class to help access and manipulate {@link DataRepository} and its stored pipeline data. */ public final class DataRepositoryHelper { @@ -241,21 +232,4 @@ public static CodeTraceabilityState getCodeTraceabilityState(DataRepository data public static void putPreprocessingData(DataRepository dataRepository, PreprocessingData preprocessingData) { dataRepository.addData(PreprocessingData.ID, preprocessingData); } - - /** - * {@return a deep copy of a serializable object using serialization} - * - * @param object the object to copy - */ - @SuppressWarnings("unchecked") - public static T deepCopy(T object) { - try { - var byteArrayOutputStream = new ByteArrayOutputStream(); - new ObjectOutputStream(byteArrayOutputStream).writeObject(object); - var byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); - return (T) new ObjectInputStream(byteArrayInputStream).readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new IllegalArgumentException(e); - } - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java index 6c42a6ede..9e978beaf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/ResourceAccessor.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import java.io.FileInputStream; @@ -12,7 +12,8 @@ import org.slf4j.LoggerFactory; /** - * The Class ResourceAccessor defines an accessor to configuration resources. + * Provides access to configuration resources from files or classpath resources. + * Allows retrieval of properties as different types (String, boolean, int, double, list). */ public final class ResourceAccessor { @@ -22,11 +23,10 @@ public final class ResourceAccessor { /** * Instantiates a new resource accessor. * - * @param filepath the filepath + * @param filepath the filepath to the resource * @param isClasspath indicator whether the file path is a classpath path */ public ResourceAccessor(String filepath, boolean isClasspath) { - if (isClasspath) { try (var inputStream = this.getClass().getResourceAsStream(filepath)) { this.prop.load(inputStream); @@ -46,7 +46,7 @@ public ResourceAccessor(String filepath, boolean isClasspath) { * Returns the specified property of the config file as a string. * * @param key name of the specified property - * @return value of the property as a string + * @return value of the property as a string, or null if not found */ public String getProperty(String key) { return this.prop.getProperty(key); @@ -56,8 +56,7 @@ public String getProperty(String key) { * Returns the specified property of the config file as a boolean if it is set. * * @param key name of the specified property - * @return value of the property as a boolean. True, if the value for the key is "true", "yes", or "1" ignoring - * case. + * @return value of the property as a boolean. True, if the value for the key is "true", "yes", or "1" (ignoring case). */ public boolean isPropertyEnabled(String key) { var propValue = this.prop.getProperty(key).strip(); @@ -68,7 +67,7 @@ public boolean isPropertyEnabled(String key) { * Returns the specified property of the config file as a double. * * @param key name of the specified property - * @return value of the property as a double + * @return value of the property as a double, or -1 if not parsable */ public double getPropertyAsDouble(String key) { try { @@ -83,7 +82,7 @@ public double getPropertyAsDouble(String key) { * Returns the specified property of the config file as an int. * * @param key name of the specified property - * @return value of the property as an int + * @return value of the property as an int, or -1 if not parsable */ public int getPropertyAsInt(String key) { try { @@ -99,6 +98,7 @@ public int getPropertyAsInt(String key) { * * @param key name of the specified property * @return value of the property as a list of strings + * @throws IllegalArgumentException if the key is not found in the config */ public ImmutableList getPropertyAsList(String key) { MutableList values = Lists.mutable.empty(); @@ -106,14 +106,11 @@ public ImmutableList getPropertyAsList(String key) { if (value == null) { throw new IllegalArgumentException("Key: " + key + " not found in config"); } - if (value.isBlank()) { return values.toImmutable(); } - values.addAll(Lists.immutable.with(value.split(" ")).castToCollection()); values.removeIf(String::isBlank); return values.toImmutable(); } - } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java index 32d199ad0..52f8329e3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java @@ -11,6 +11,10 @@ import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; +/** + * Utility class for working with trace links, including methods for converting trace links to string representations and formatting trace link data. + */ +// TODO: We can move that to the trace link classes public class TraceLinkUtilities { private static final String ENTRY_SEPARATOR = ","; @@ -19,16 +23,35 @@ private TraceLinkUtilities() { throw new IllegalStateException(); } + /** + * Creates a trace link string from two element IDs. + * + * @param firstElementId the first element ID + * @param secondElementId the second element ID + * @return the trace link string + */ public static String createTraceLinkString(String firstElementId, String secondElementId) { return firstElementId + ENTRY_SEPARATOR + secondElementId; } + /** + * Converts a list of trace links between sentences and model entities to a list of string representations. + * + * @param sadSamTraceLinks the list of trace links + * @return the list of string representations + */ public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() .getSentence() .getSentenceNumber() + 1))); } + /** + * Converts a list of trace links between architecture entities and model entities to a list of string representations. + * + * @param samCodeTraceLinks the list of trace links + * @return the list of string representations + */ public static ImmutableList getSamCodeTraceLinksAsStringList( ImmutableList> samCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); @@ -42,6 +65,12 @@ public static ImmutableList getSamCodeTraceLinksAsStringList( return resultsMut.toImmutable(); } + /** + * Converts a list of trace links between sentences and model entities to a list of string representations, with sentence number as the first element. + * + * @param sadCodeTraceLinks the list of trace links + * @return the list of string representations + */ public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { MutableList resultsMut = Lists.mutable.empty(); for (var traceLink : sadCodeTraceLinks) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java index 64d680e51..fa74c8f17 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2023. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.util; import org.eclipse.collections.api.factory.Lists; @@ -9,7 +9,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Word; /** - * The Class WordHelper contains some helper methods to work with words. + * Helper class with static methods for working with words and their linguistic properties. */ public final class WordHelper { @@ -65,26 +65,56 @@ public static ImmutableList getOutgoingDependencyTags(Word word) return Lists.immutable.with(DependencyTag.values()).select(d -> !word.getOutgoingDependencyWordsWithType(d).isEmpty()); } + /** + * Checks if the word is a verb based on its POS tag. + * + * @param word the word + * @return true if the word is a verb, false otherwise + */ public static boolean isVerb(Word word) { String tag = word.getPosTag().getTag(); return tag.startsWith("VB") || tag.startsWith("MD"); } + /** + * Checks if the word is an adjective based on its POS tag. + * + * @param word the word + * @return true if the word is an adjective, false otherwise + */ public static boolean isAdjective(Word word) { String tag = word.getPosTag().getTag(); return tag.startsWith("JJ"); } + /** + * Checks if the word is an adverb based on its POS tag. + * + * @param word the word + * @return true if the word is an adverb, false otherwise + */ public static boolean isAdverb(Word word) { String tag = word.getPosTag().getTag(); return tag.startsWith("RB"); } + /** + * Checks if the word is a noun based on its POS tag. + * + * @param word the word + * @return true if the word is a noun, false otherwise + */ public static boolean isNoun(Word word) { String tag = word.getPosTag().getTag(); return tag.startsWith("NN"); } + /** + * Checks if the word is a pronoun based on its POS tag. + * + * @param word the word + * @return true if the word is a pronoun, false otherwise + */ public static boolean isPronoun(Word word) { String tag = word.getPosTag().getTag(); return tag.startsWith("PR") || tag.startsWith("WP"); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index 4f367f1db..207d993ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -15,10 +15,22 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +/** + * Abstract base class for configurable components. Provides configuration application logic and utility methods for subclasses. + */ @Deterministic public abstract class AbstractConfigurable implements IConfigurable { + /** + * Connector for class attribute keys ("::"). + */ public static final String CLASS_ATTRIBUTE_CONNECTOR = "::"; + /** + * Connector for key-value pairs ("="). + */ public static final String KEY_VALUE_CONNECTOR = "="; + /** + * Separator for list values (","). + */ public static final String LIST_SEPARATOR = ","; @SuppressWarnings("java:S2065") // The logger is used in the subclasses that are serializable @@ -127,6 +139,11 @@ private Object parse(Field field, Class fieldsClass, String value) { throw new IllegalArgumentException("Could not find a parse method for fields of type: " + fieldsClass); } + /** + * Returns the logger for this configurable instance. + * + * @return the logger + */ protected final Logger getLogger() { if (this.logger == null) { this.logger = LoggerFactory.getLogger(this.getClass()); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ChildClassConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ChildClassConfigurable.java index be62da2e0..118ff0ac5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ChildClassConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ChildClassConfigurable.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.lang.annotation.Documented; @@ -8,8 +8,7 @@ import java.lang.annotation.Target; /** - * This annotation marks a field that is configurable as configured by child class. That means that the key that is used to configure the field is based on the - * actual class (not on the class where the configurable field is defined). + * Annotation to mark a field as configurable based on the child class. The configuration key is based on the actual class, not the declaring class. */ @Retention(RetentionPolicy.RUNTIME) @Documented diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/Configurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/Configurable.java index f2861202f..5c309d1b1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/Configurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/Configurable.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.lang.annotation.Documented; @@ -6,15 +6,18 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import java.util.SortedMap; /** - * Marks a field as configurable. Should be used in conjunction with {@link IConfigurable}. The annotated field should not be marked as final or static, since - * the purpose of the field is to be written using an implementation of {@link IConfigurable#applyConfiguration(SortedMap)}. + * Annotation to mark a field as configurable. Should be used with {@link IConfigurable}. The field should not be final or static. */ @Retention(RetentionPolicy.RUNTIME) @Documented @Target(ElementType.FIELD) public @interface Configurable { + /** + * Optional key for the configuration property. If not set, a default key is generated. + * + * @return the configuration key + */ String key() default ""; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java index 472ea2f5e..704611329 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/ConfigurationInstantiatorUtils.java @@ -12,6 +12,10 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; +/** + * Utility class for creating configurable objects through reflection. Provides methods to instantiate {@link AbstractConfigurable} objects with various + * constructor signatures. + */ @Deterministic public final class ConfigurationInstantiatorUtils { private ConfigurationInstantiatorUtils() { @@ -19,7 +23,7 @@ private ConfigurationInstantiatorUtils() { } /** - * Create an AbstractConfigurable by Reflection. + * Creates an {@link AbstractConfigurable} instance by reflection, trying various constructor signatures. * * @param clazz the class of the AbstractConfigurable * @return the abstract configurable diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java index 1c21a6b9f..672bcfd8e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java @@ -1,10 +1,23 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.util.SortedMap; +/** + * Interface for components that can be configured with additional configuration parameters. + */ public interface IConfigurable { + /** + * Applies the given configuration to this component. + * + * @param additionalConfiguration the configuration to apply + */ void applyConfiguration(SortedMap additionalConfiguration); + /** + * Returns the last applied configuration. + * + * @return the last applied configuration as an unmodifiable map + */ SortedMap getLastAppliedConfiguration(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/NoConfiguration.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/NoConfiguration.java index cc6309883..8eba3735a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/NoConfiguration.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/NoConfiguration.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; import java.lang.annotation.Documented; @@ -8,8 +8,7 @@ import java.lang.annotation.Target; /** - * This annotation is used to mark classes that should not be configured. This means that the fields of the class will not be modified. The cascade - * configuration will be applied to the fields of the class. + * Annotation to mark classes that should not be configured. Fields of such classes will not be modified by configuration. */ @Retention(RetentionPolicy.RUNTIME) @Documented diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java index fe75d3291..75dd0aa53 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; import java.io.Serial; @@ -7,7 +7,7 @@ import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; /** - * This abstract class represents a state that can be saved to the {@link DataRepository} as {@link PipelineStepData}. + * Abstract base class for states that can be saved to the {@link DataRepository} as {@link PipelineStepData}. */ public abstract class AbstractState extends AbstractConfigurable implements PipelineStepData { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java index 3d8c52b80..6d3cd19ee 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java @@ -13,16 +13,14 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.AggregationFunctions; -import edu.kit.kastel.mcse.ardoco.core.common.ICopyable; import edu.kit.kastel.mcse.ardoco.core.common.tuple.Triple; import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * This class represents a confidence for a certain (intermediate) result. Different {@link Claimant Claimants} can add their confidences that get aggregated - * via one of the {@link AggregationFunctions} to a single confidence value. + * Represents a confidence value for a result, aggregating confidences from multiple claimants using a specified aggregation function. */ @Deterministic -public final class Confidence implements Comparable, ICopyable, Serializable { +public final class Confidence implements Comparable, Serializable { @Serial private static final long serialVersionUID = 4307327201754195030L; @@ -72,7 +70,11 @@ public Set getClaimants() { return identitySet; } - @Override + /** + * Creates a copy of this confidence object. + * + * @return a new instance of Confidence with the same properties + */ public Confidence createCopy() { return new Confidence(this.confidenceAggregator, this.agentConfidences); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index ee5fd4774..e5ae83f0a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; +import java.io.Serial; import java.io.Serializable; import java.util.Optional; import java.util.SortedMap; @@ -10,13 +11,17 @@ import org.slf4j.LoggerFactory; /** - * This class represents a data repository that can be used to store and fetch certain data ({@link PipelineStepData}. Data can be added and fetched with the - * help of a data identifier (as string). Fetching also needs the necessary class of data that is expected. + * Represents a data repository for storing and fetching pipeline step data by identifier. + * Data can be added and fetched using a string identifier and the expected class type. */ public class DataRepository implements Serializable { + @Serial private static final long serialVersionUID = -3068992658696547744L; + /** + * Logger for data repository operations. + */ private static final Logger logger = LoggerFactory.getLogger(DataRepository.class); private final SortedMap data; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java index b4e748ff7..892b45129 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -5,11 +5,21 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; +/** + * Utility class for synchronizing changes in the data repository across different components and states. + */ public final class DataRepositorySyncer { private DataRepositorySyncer() { throw new IllegalAccessError("Utility class"); } + /** + * Handles the deletion of a noun mapping in the data repository, updating all relevant recommendation states. + * + * @param dataRepository the data repository + * @param nounMapping the noun mapping to delete + * @param replacement the replacement noun mapping, if any + */ public static void onNounMappingDeletion(DataRepository dataRepository, NounMapping nounMapping, NounMapping replacement) { // We need to inform the recommendation state var recommendationStates = dataRepository.getData(RecommendationStates.ID, RecommendationStates.class); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java index 100c9e419..ee0e226b3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/PipelineStepData.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; import java.io.Serializable; @@ -10,10 +10,13 @@ import edu.kit.kastel.mcse.ardoco.core.common.JsonHandling; /** - * This abstract class defines data that is used for the pipeline steps. + * Interface for data used in pipeline steps, supporting serialization and conversion between data types. */ public interface PipelineStepData extends Serializable { + /** + * Logger for pipeline step data operations. + */ Logger logger = LoggerFactory.getLogger(PipelineStepData.class); /** @@ -31,6 +34,11 @@ default Optional asPipelineStepData(Class cla return Optional.of(clazz.cast(this)); } + /** + * Serializes this data into a JSON string. + * + * @return JSON string representation of this data or null if serialization fails. + */ default String serialize() { var oom = JsonHandling.createObjectMapper(); try { @@ -41,6 +49,12 @@ default String serialize() { } } + /** + * Deserializes the given JSON string into an instance of this data type. + * + * @param data JSON string to deserialize + * @return Deserialized instance of this data type or null if deserialization fails. + */ default PipelineStepData deserialize(String data) { var oom = JsonHandling.createObjectMapper(); try { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java index 3426017d7..8606d26d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/ProjectPipelineData.java @@ -1,14 +1,18 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; /** - * {@link ProjectPipelineData} represents data that we know overall about the project such as the name of the project. + * Represents data about the overall project, such as the project name. */ public interface ProjectPipelineData extends PipelineStepData { + + /** + * Identifier for project pipeline data. + */ String ID = "ProjectPipelineData"; /** - * Return the project name + * Returns the project name. * * @return the project name */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java index ad4485251..a93d4c816 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline; import java.util.List; @@ -13,10 +13,8 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.PipelineAgent; /** - * This abstract class represents an execution step within ArDoCo. Examples are Text-Extraction, Recommendation-Generator, Connection-Generator, and - * Inconsistency-Checker. - *

    - * Implementing classes need to implement {@link #initializeState()} that cares for setting up the state for processing. + * Abstract class representing an execution stage in ArDoCo, such as Text-Extraction or Recommendation-Generator. + * Subclasses must implement {@link #initializeState()} to set up the state for processing. */ public abstract class AbstractExecutionStage extends Pipeline { private final MutableList agents; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java index d460b19c2..c10aec76c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractPipelineStep.java @@ -1,13 +1,12 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline; import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; /** - * This class represents an abstract pipeline step and defines the core functionality. Together - * with {@link Pipeline} and concrete implementations of this class - * represents a composite pattern. + * Abstract base class for a pipeline step, defining the core execution logic and lifecycle hooks. + * Used in combination with {@link Pipeline} and concrete implementations as part of a composite pattern. */ public abstract class AbstractPipelineStep extends AbstractConfigurable { protected final String id; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java index a68924cf8..12f1eb4e5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline; import java.time.Duration; @@ -10,11 +10,8 @@ import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; /** - * Class that represents a pipeline that can consist of multiple {@link AbstractPipelineStep - * AbstractPipelineSteps}. - * Steps are executed consecutively one after another in the order they were added to the - * pipeline. Execution calls the - * {@link #process()} method of the different {@link AbstractPipelineStep AbstractPipelineSteps}. + * Represents a pipeline consisting of multiple {@link AbstractPipelineStep} steps executed in sequence. + * Steps are executed in the order they are added to the pipeline. */ public class Pipeline extends AbstractPipelineStep { private final List pipelineSteps; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Agent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Agent.java index 2827cd990..88347c126 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Agent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Agent.java @@ -1,15 +1,15 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; /** - * An Agent is a {@link Claimant} with an ID + * An Agent is a {@link Claimant} with an ID. */ public interface Agent extends Claimant { /** - * Return the id of the agent + * Returns the ID of the agent. * - * @return the id of the agent + * @return the ID of the agent */ String getId(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java index a3b7d8c34..4cf52115d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Claimant.java @@ -1,8 +1,8 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; /** - * This is a marker interface for classes that claim something, i.e., an intermediate result with usually a certain confidence. + * Marker interface for classes that claim intermediate results, usually with a certain confidence. */ // TODO Serializable for Confidence ?? public interface Claimant { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java index 324bc99ef..d0cd06fc5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; import java.util.SortedMap; @@ -6,6 +6,9 @@ import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractPipelineStep; +/** + * Abstract base class for pipeline informants. Informants are components that provide information to agents during pipeline execution. + */ public abstract class Informant extends AbstractPipelineStep implements Claimant { protected Informant(String id, DataRepository dataRepository) { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java index 174c9766b..38f5beb22 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; import java.util.ArrayList; @@ -12,10 +12,8 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.Pipeline; /** - * This class represents a pipeline agent that calculates some results for an {@link AbstractExecutionStage} execution stage}. - *

    - * Implementing classes need to override. Additionally, sub-classes are free to override {@link #initializeState()} to execute code at the beginning of the - * initialization before the main processing. + * Represents a pipeline agent that calculates results for an {@link AbstractExecutionStage}. + * Subclasses should override and may override {@link #initializeState()} for custom initialization. */ public abstract class PipelineAgent extends Pipeline implements Agent { @@ -26,8 +24,7 @@ public abstract class PipelineAgent extends Pipeline implements Agent { private List enabledInformants; /** - * Creates a new pipeline agent with the specified id. During execution the pipeline agent sequentially runs its informants on the provided data - * repository. + * Creates a new pipeline agent with the specified id. Runs informants sequentially on the data repository. * * @param informants the informants in order of execution (all enabled by default) * @param id the id @@ -39,6 +36,9 @@ protected PipelineAgent(List informants, String id, DataRep this.enabledInformants = informants.stream().map(Informant::getId).toList(); } + /** + * Prepares pipeline steps and initializes the agent. + */ @Override protected final void preparePipelineSteps() { super.preparePipelineSteps(); @@ -46,7 +46,7 @@ protected final void preparePipelineSteps() { } /** - * Called before all informants + * Called before all informants. Override to add custom behavior. */ @Override protected void before() { @@ -54,7 +54,7 @@ protected void before() { } /** - * Called after all informants + * Called after all informants. Override to add custom behavior. */ @Override protected void after() { @@ -62,7 +62,7 @@ protected void after() { } /** - * Initialize the execution + * Initializes the execution and adds enabled informants as pipeline steps. */ protected final void initialize() { this.initializeState(); @@ -74,19 +74,24 @@ protected final void initialize() { } /** - * If necessary, override this method to additionally initialize the state before the processing + * Override to initialize state before processing, if necessary. */ protected void initializeState() { // do nothing here } /** - * {@return the informants including disabled} + * Returns the informants, including disabled ones. + * + * @return the list of informants */ public List getInformants() { return List.copyOf(this.informants); } + /** + * Applies additional configuration to internal objects and informants. + */ @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java index 9016cea52..e8854f9ae 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ConverterUtil.java @@ -38,7 +38,7 @@ public static List getChildPhrases(Sentence sentence) { private static boolean isPhraseOnHighestLevel(List subphrases, Phrase childPhrase) { for (Phrase subphrase : subphrases) { - if (childPhrase.isSubPhraseOf(subphrase)) { + if (childPhrase.isSubphraseOf(subphrase)) { return false; } } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java index e037c2d71..0615667ed 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/ObjectToDtoConverter.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.io.IOException; @@ -74,7 +74,7 @@ private List generateWordDTOs(ImmutableList words) throws NotConv private WordDto convertToWordDTO(Word word) throws NotConvertableException { WordDto wordDTO = new WordDto(); - wordDTO.setId(word.getPosition() + (long) 1); + wordDTO.setId(word.getPosition() + 1L); wordDTO.setText(word.getText()); wordDTO.setLemma(word.getLemma()); try { @@ -82,7 +82,7 @@ private WordDto convertToWordDTO(Word word) throws NotConvertableException { } catch (IOException e) { throw new NotConvertableException(String.format("IOException when converting word with id %d to WordDto: PosTag not found.", wordDTO.getId())); } - wordDTO.setSentenceNo(word.getSentenceNo() + (long) 1); + wordDTO.setSentenceNo(word.getSentenceNumber() + 1L); List inDep = new ArrayList<>(); List outDep = new ArrayList<>(); for (DependencyTag depType : DependencyTag.values()) { diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java index 01a3b6bae..c3f4bfef1 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java @@ -39,9 +39,9 @@ public PhraseImpl(ImmutableList nonPhraseWords, PhraseType type, List getSubphrases() { } @Override - public boolean isSuperPhraseOf(Phrase other) { + public boolean isSuperphraseOf(Phrase other) { MutableList subphrases = Lists.mutable.ofAll(this.getSubphrases()); while (!subphrases.isEmpty()) { if (subphrases.contains(other)) { @@ -114,7 +114,7 @@ private static MutableList getSubphrasesOfPhrases(MutableList su } @Override - public boolean isSubPhraseOf(Phrase other) { + public boolean isSubphraseOf(Phrase other) { MutableList subphrases = Lists.mutable.ofAll(other.getSubphrases()); while (!subphrases.isEmpty()) { if (subphrases.contains(this)) { @@ -157,7 +157,7 @@ public int hashCode() { @Override public int compareTo(Phrase o) { - return Comparator.comparing(Phrase::getSentenceNo) + return Comparator.comparing(Phrase::getSentenceNumber) .thenComparing(Phrase::getText) .thenComparing(Phrase::getPhraseType) .thenComparingInt(p -> p.getContainedWords().get(0).getPosition()) diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java index 422edbbad..fde7946e4 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; import java.util.Objects; @@ -31,7 +31,7 @@ public void setSentences(ImmutableList sentences) { } @Override - public synchronized int getLength() { + public synchronized int getNumberOfWords() { if (this.length < 0) { int calculatedLength = 0; for (Sentence sentence : sentences) { diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java index ea3a66ad8..530c87961 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java @@ -45,7 +45,7 @@ public WordImpl(Text parent, int index, int sentenceNo, String text, POSTag posT } @Override - public int getSentenceNo() { + public int getSentenceNumber() { return sentenceNo; } @@ -76,7 +76,7 @@ public Word getPreWord() { @Override public Word getNextWord() { int nextWordIndex = indexInText + 1; - if (nextWord == null && nextWordIndex < parent.getLength()) { + if (nextWord == null && nextWordIndex < parent.getNumberOfWords()) { nextWord = parent.getWord(nextWordIndex); } return nextWord; diff --git a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java index fbcc082f7..cc80cca81 100644 --- a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java +++ b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/PhraseImplTest.java @@ -8,7 +8,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Phrase; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; -import edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper; import edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter.DtoToObjectConverter; import edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject.PhraseImpl; @@ -31,8 +30,8 @@ void init() throws Exception { } @Test - void testGetSentenceNo() { - Assertions.assertEquals(baselinePhrase.getSentenceNo(), phraseImplInstance.getSentenceNo()); + void testGetSentenceNumber() { + Assertions.assertEquals(baselinePhrase.getSentenceNumber(), phraseImplInstance.getSentenceNumber()); } @Test @@ -56,20 +55,20 @@ void testGetSubphrases() { } @Test - void testIsSuperPhraseOf() { + void testIsSuperphraseOf() { Phrase subphrase = phraseImplInstance.getSubphrases().get(0); Assertions.assertAll(// - () -> Assertions.assertTrue(phraseImplInstance.isSuperPhraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSuperPhraseOf( - phraseImplInstance)), () -> Assertions.assertFalse(subphrase.isSuperPhraseOf(phraseImplInstance))// + () -> Assertions.assertTrue(phraseImplInstance.isSuperphraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSuperphraseOf( + phraseImplInstance)), () -> Assertions.assertFalse(subphrase.isSuperphraseOf(phraseImplInstance))// ); } @Test - void testIsSubPhraseOf() { + void testIsSubphraseOf() { Phrase subphrase = phraseImplInstance.getSubphrases().get(0); Assertions.assertAll(// - () -> Assertions.assertFalse(phraseImplInstance.isSubPhraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSubPhraseOf( - phraseImplInstance)), () -> Assertions.assertTrue(subphrase.isSubPhraseOf(phraseImplInstance))// + () -> Assertions.assertFalse(phraseImplInstance.isSubphraseOf(subphrase)), () -> Assertions.assertFalse(phraseImplInstance.isSubphraseOf( + phraseImplInstance)), () -> Assertions.assertTrue(subphrase.isSubphraseOf(phraseImplInstance))// ); } @@ -82,10 +81,4 @@ void testGetPhraseVector() { void simpleHashCodeTest() { Assertions.assertEquals(phraseImplInstance.hashCode(), phraseImplInstance.hashCode()); } - - @Test - void serializationTest() { - var serializedCopy = DataRepositoryHelper.deepCopy(phraseImplInstance); - Assertions.assertNotNull(serializedCopy); - } } diff --git a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/TextImplTest.java b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/TextImplTest.java index 1bd951bf1..52a9a21cc 100644 --- a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/TextImplTest.java +++ b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/TextImplTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson; import org.junit.jupiter.api.Assertions; @@ -26,8 +26,8 @@ void init() throws Exception { } @Test - void getLengthTest() { - Assertions.assertEquals(baselineText.getLength(), textImplInstance.getLength()); + void getNumberOfWordsTest() { + Assertions.assertEquals(baselineText.getNumberOfWords(), textImplInstance.getNumberOfWords()); } @Test diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index c2bc851f7..8f94c3229 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -34,14 +34,14 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TransitiveTraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; import edu.kit.kastel.mcse.ardoco.core.common.util.DataRepositoryHelper; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; /** - * This record represents the result of running ArDoCo. It is backed by a {@link DataRepository} and grabs data from it. Besides accessing all data from the - * calculation steps, this record also provides some convenience methods to directly access results such as found trace links and detected inconsistencies. + * This record represents the result of running ArDoCo. It is backed by a {@link DataRepository} and provides access to data from it. Besides accessing all data + * from the + * calculation steps, this record also provides convenience methods to directly access results such as found trace links and detected inconsistencies. */ @Deterministic public record ArDoCoResult(DataRepository dataRepository) { @@ -62,16 +62,17 @@ private static String formatTraceLinksHumanReadable(TraceLink> getTraceLinksForModel(Metamodel metamodel) { ConnectionState connectionState = this.getConnectionState(metamodel); @@ -82,9 +83,9 @@ public ImmutableSet> getTraceLinksForMode } /** - * Returns the set of {@link TraceLink}s + * Returns the set of {@link TraceLink TraceLinks} for architecture models. * - * @return set of Trace links + * @return set of {@link TraceLink TraceLinks} for architecture models */ public ImmutableList> getArchitectureTraceLinks() { MutableSet> traceLinks = Sets.mutable.empty(); @@ -98,9 +99,9 @@ public ImmutableList> getArchitectureTrac } /** - * Returns the set of {@link TraceLink SadSamTraceLinks} as strings. The strings are beautified to have a human-readable format + * Returns the set of {@link TraceLink TraceLinks} for architecture models as formatted strings. The strings are formatted to be human-readable. * - * @return Trace links as Strings + * @return trace links as formatted strings */ public List getAllTraceLinksAsBeautifiedStrings() { return this.getArchitectureTraceLinks() @@ -109,9 +110,9 @@ public List getAllTraceLinksAsBeautifiedStrings() { } /** - * Return the list of {@link TraceLink SamCodeTraceLinks}. If there are none, it will return an empty list. + * Returns the list of {@link TraceLink TraceLinks} between architecture entities and code entities. If there are none, it returns an empty list. * - * @return the list of {@link TraceLink SamCodeTraceLinks}. + * @return the list of {@link TraceLink TraceLinks} between architecture and code entities */ public List> getSamCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); @@ -122,9 +123,9 @@ public List getAllTraceLinksAsBeautifiedStrings() { } /** - * Return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. If there are none, it will return an empty list. + * Returns the list of {@link TraceLink TraceLinks} between sentences and code entities. If there are none, it returns an empty list. * - * @return the list of {@link TransitiveTraceLink TransitiveTraceLinks}. + * @return the list of {@link TraceLink TraceLinks} between sentences and code entities */ public List> getSadCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); @@ -135,9 +136,10 @@ public List getAllTraceLinksAsBeautifiedStrings() { } /** - * Returns all {@link Inconsistency inconsistencies} that were found for the model with the given ID. + * Returns all {@link Inconsistency inconsistencies} that were found for the model with the given metamodel. * - * @return Inconsistencies for the model + * @param metamodel the metamodel to get inconsistencies for + * @return inconsistencies for the model */ public ImmutableList getAllInconsistenciesForModel(Metamodel metamodel) { InconsistencyState inconsistencyState = this.getInconsistencyState(metamodel); @@ -148,9 +150,12 @@ public ImmutableList getAllInconsistenciesForModel(Metamodel meta } /** - * Returns a list of {@link Inconsistency inconsistencies} that were found for the model with the given ID and that are of the given Inconsistency class. + * Returns a list of {@link Inconsistency inconsistencies} that were found for the model with the given metamodel and that are of the specified + * inconsistency class. * - * @return Inconsistencies for the model with the given type + * @param metamodel the metamodel to get inconsistencies for + * @param inconsistencyType the type of inconsistency to filter for + * @return inconsistencies for the model with the given type */ public ImmutableList getInconsistenciesOfTypeForModel(Metamodel metamodel, Class inconsistencyType) { return this.getAllInconsistenciesForModel(metamodel).select(i -> inconsistencyType.isAssignableFrom(i.getClass())).collect(inconsistencyType::cast); @@ -218,16 +223,17 @@ public ImmutableList getInconsistentSentences() { * Returns the {@link Sentence} with the given sentence number. * * @param sentenceNo the sentence number - * @return Sentence with the given number + * @return sentence with the given number */ public Sentence getSentence(int sentenceNo) { return this.getText().getSentences().detect(s -> s.getSentenceNumberForOutput() == sentenceNo); } /** - * Returns the internal {@link ConnectionState} for the modelId with the given ID or null, if there is none. + * Returns the internal {@link ConnectionState} for the model with the given metamodel or null if there is none. * - * @return the connection state or null, if there is no {@link ConnectionState} for the given model ID + * @param metamodel the metamodel to get the connection state for + * @return the connection state or null if there is no {@link ConnectionState} for the given metamodel */ public ConnectionState getConnectionState(Metamodel metamodel) { if (DataRepositoryHelper.hasConnectionStates(this.dataRepository)) { @@ -239,9 +245,10 @@ public ConnectionState getConnectionState(Metamodel metamodel) { } /** - * Returns the internal {@link InconsistencyState} for the modelId with the given ID or null, if there is none. + * Returns the internal {@link InconsistencyState} for the model with the given metamodel or null if there is none. * - * @return the inconsistency state or null, if there is no {@link InconsistencyState} for the given model ID + * @param metamodel the metamodel to get the inconsistency state for + * @return the inconsistency state or null if there is no {@link InconsistencyState} for the given metamodel */ public InconsistencyState getInconsistencyState(Metamodel metamodel) { if (DataRepositoryHelper.hasInconsistencyStates(this.dataRepository)) { @@ -253,9 +260,9 @@ public InconsistencyState getInconsistencyState(Metamodel metamodel) { } /** - * Returns the internal {@link CodeTraceabilityState} or null, if there is none. + * Returns the internal {@link CodeTraceabilityState} or null if there is none. * - * @return the {@link CodeTraceabilityState} state or null, if there is no {@link CodeTraceabilityState} for the given model ID + * @return the {@link CodeTraceabilityState} or null if there is no {@link CodeTraceabilityState} */ public CodeTraceabilityState getCodeTraceabilityState() { if (DataRepositoryHelper.hasCodeTraceabilityState(this.dataRepository)) { @@ -266,7 +273,7 @@ public CodeTraceabilityState getCodeTraceabilityState() { } /** - * Returns the internal {@link ModelStates} + * Returns the internal {@link ModelStates}. * * @return the ModelStates */ @@ -275,9 +282,9 @@ private ModelStates getModelStates() { } /** - * Returns a list of all IDs for all the models that were loaded in. + * Returns a list of all metamodels for all the models that were loaded. * - * @return list of all model IDs + * @return list of all metamodels */ public List getMetamodels() { ModelStates modelStates = this.getModelStates(); @@ -285,8 +292,9 @@ public List getMetamodels() { } /** - * Returns the internal {@link Model} for the modelId with the given ID. + * Returns the internal {@link Model} for the model with the given metamodel. * + * @param metamodel the metamodel to get the model for * @return the Model */ public Model getModelState(Metamodel metamodel) { @@ -304,10 +312,10 @@ public TextState getTextState() { } /** - * Returns the internal {@link RecommendationState} for the given {@link Metamodel} or null, if there is none. + * Returns the internal {@link RecommendationState} for the given {@link Metamodel} or null if there is none. * * @param metamodel the metamodel - * @return the recommendation state or null, if there is none + * @return the recommendation state or null if there is none */ public RecommendationState getRecommendationState(Metamodel metamodel) { if (DataRepositoryHelper.hasRecommendationStates(this.dataRepository)) { @@ -318,12 +326,17 @@ public RecommendationState getRecommendationState(Metamodel metamodel) { return null; } + /** + * Returns the internal {@link PreprocessingData}. + * + * @return the preprocessing data + */ public PreprocessingData getPreprocessingData() { return this.dataRepository.getData(PreprocessingData.ID, PreprocessingData.class).orElseThrow(); } /** - * Returns the {@link Text} + * Returns the {@link Text}. * * @return the Text */ diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 52dbeab91..885794ad8 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -25,7 +25,7 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** - * The Class FilePrinter contains some helpers for stats. + * The FilePrinter class contains utility methods for writing output files and statistics. */ @Deterministic public final class FilePrinter { @@ -39,7 +39,8 @@ private FilePrinter() { } /** - * Writes the given text to the file with the given name/path. Truncates existing files, creates the file if not existent and writes in UTF-8. + * Writes the given text to the file with the specified name/path. Truncates existing files, creates the file if it doesn't exist, and writes in UTF-8 + * encoding. * * @param filename the name/path of the file * @param text the text to write @@ -50,7 +51,7 @@ public static void writeToFile(String filename, String text) { } /** - * Writes the given text to the given file (as path). Truncates existing files, creates the file if not existent and writes in UTF-8. + * Writes the given text to the specified file path. Truncates existing files, creates the file if it doesn't exist, and writes in UTF-8 encoding. * * @param file the path of the file * @param text the text to write @@ -64,6 +65,12 @@ public static void writeToFile(Path file, String text) { } } + /** + * Writes inconsistency output to the specified file. Includes both inconsistent sentences and model inconsistencies. + * + * @param file the file to write the inconsistency output to + * @param arDoCoResult the ArDoCo result containing inconsistency data + */ public static void writeInconsistencyOutput(File file, ArDoCoResult arDoCoResult) { MutableList allInconsistencies = Lists.mutable.empty(); allInconsistencies.addAll(arDoCoResult.getInconsistentSentences().collect(InconsistentSentence::getInfoString).toList()); @@ -72,6 +79,12 @@ public static void writeInconsistencyOutput(File file, ArDoCoResult arDoCoResult writeOutput(file, "Inconsistencies", outputExtractor); } + /** + * Writes traceability link recovery output to the specified file. + * + * @param file the file to write the traceability link output to + * @param arDoCoResult the ArDoCo result containing trace link data + */ public static void writeTraceabilityLinkRecoveryOutput(File file, ArDoCoResult arDoCoResult) { Supplier> outputExtractor = arDoCoResult::getAllTraceLinksAsBeautifiedStrings; writeOutput(file, "Trace Links", outputExtractor); @@ -90,6 +103,12 @@ private static void writeOutput(File file, String title, Supplier> writeToFile(file.toPath(), outputBuilder.toString()); } + /** + * Writes trace links as Comma-Separated Values files to the specified output directory. Creates separate files for different types of trace links. + * + * @param arDoCoResult the ArDoCo result containing trace link data + * @param outputDir the directory where Comma-Separated Values files should be written + */ public static void writeTraceLinksAsCsv(ArDoCoResult arDoCoResult, File outputDir) { String name = arDoCoResult.getProjectName(); String header; @@ -130,7 +149,7 @@ private static void writeTraceLinksToCsv(Path filePath, String header, Immutable Files.writeString(filePath, traceLink + System.lineSeparator(), StandardOpenOption.APPEND); } } catch (IOException e) { - logger.warn("An exception occurred when writing trace links to CSV file.", e); + logger.warn("An exception occurred when writing trace links to Comma-Separated Values file.", e); } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java index bbf44cbf2..b792046e3 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ArDoCo.java @@ -16,7 +16,7 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.Pipeline; /** - * The Pipeline defines the execution of the agents. + * The Pipeline defines and manages the execution of agents. */ public final class ArDoCo extends Pipeline { @@ -25,7 +25,7 @@ public final class ArDoCo extends Pipeline { private final String projectName; /** - * Default constructor to adhere simplify tests that do not care about the project's name. Additionally, it is needed for testing the configurations + * Default constructor to simplify tests that do not require the project's name. Also needed for testing configurations. */ @SuppressWarnings("unused") private ArDoCo() { @@ -33,8 +33,8 @@ private ArDoCo() { } /** - * Creates a new instance of ArDoCo. The provided name should be the project's name and will be used to identify spots within the text where the project is - * mentioned. + * Creates a new instance of ArDoCo. The provided name should be the project's name and will be used to identify locations within the text where the project + * is mentioned. * * @param projectName the project's name */ @@ -54,6 +54,12 @@ public DataRepository getDataRepository() { return super.getDataRepository(); } + /** + * Runs the ArDoCo pipeline and saves the results to the specified output directory. + * + * @param outputDir the directory where output files should be saved + * @return the ArDoCo result containing all analysis data, or null if the pipeline is not properly initialized + */ public ArDoCoResult runAndSave(File outputDir) { classLogger.info("Starting {}", this.projectName); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java index df1a2003a..0d15616b0 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; import java.io.File; @@ -34,10 +34,10 @@ private ConfigurationHelper() throws IllegalAccessException { } /** - * Loads the file that contains additional configurations and returns the Map that consists of the configuration options. + * Loads a file containing additional configurations and returns a map of configuration options. * * @param additionalConfigsFile the file containing the additional configurations - * @return a Map with the additional configurations + * @return a map with the additional configurations */ public static SortedMap loadAdditionalConfigs(File additionalConfigsFile) { SortedMap additionalConfigs = new TreeMap<>(); @@ -69,6 +69,11 @@ public static SortedMap loadAdditionalConfigs(File additionalCon return additionalConfigs; } + /** + * Returns a map containing all default configuration options for all configurable classes in the ArDoCo framework. + * + * @return a map with all default configuration options + */ public static Map getDefaultConfigurationOptions() { Map configs = new TreeMap<>(); var reflectAccess = new Reflections("edu.kit.kastel.mcse.ardoco"); @@ -88,6 +93,15 @@ public static Map getDefaultConfigurationOptions() { return configs; } + /** + * Processes the configuration of a specific class by creating an instance and extracting all configurable fields. + * + * @param configs the map to store configuration options in + * @param clazz the class to process + * @throws InvocationTargetException if the constructor cannot be invoked + * @throws InstantiationException if the class cannot be instantiated + * @throws IllegalAccessException if access to fields is denied + */ protected static void processConfigurationOfClass(Map configs, Class clazz) throws InvocationTargetException, InstantiationException, IllegalAccessException { var object = ConfigurationInstantiatorUtils.createObject(clazz); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java index 29ce2dc2c..b90e75bbc 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java @@ -1,10 +1,10 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; import edu.kit.kastel.mcse.ardoco.core.data.ProjectPipelineData; /** - * Implementation of {@link ProjectPipelineData} that simply takes the project's name in the constructor to store it. + * Implementation of {@link ProjectPipelineData} that stores the project's name provided in the constructor. */ public class ProjectPipelineDataImpl implements ProjectPipelineData { @@ -12,7 +12,7 @@ public class ProjectPipelineDataImpl implements ProjectPipelineData { private final String projectName; /** - * Construct this class using the project's name + * Constructs this class using the project's name. * * @param projectName the project's name */ diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java index 26a0d0091..abf98ea03 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java @@ -23,9 +23,9 @@ protected AnonymousRunner(String projectName) { /** * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository. - * {@link #isSetUp} must return true, if successful. + * {@link #isSetUp} must return true if successful. * - * @return List of AbstractPipelineSteps this runner consists of + * @return list of AbstractPipelineSteps this runner consists of */ private List setUp() { try { @@ -43,7 +43,7 @@ private List setUp() { } /** - * Initializes and returns the pipeline steps according to the supplied parameters + * Initializes and returns the pipeline steps according to the supplied parameters. * * @param dataRepository the data repository of this runner * @throws IOException can occur when loading data diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java index 542188f2b..5177a3614 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/ArDoCoRunner.java @@ -10,6 +10,9 @@ import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.execution.ArDoCo; +/** + * Abstract runner for ArDoCo pipeline execution. + */ public abstract class ArDoCoRunner { private static final Logger logger = LoggerFactory.getLogger(ArDoCoRunner.class); @@ -23,10 +26,20 @@ protected ArDoCoRunner(String projectName) { this.outputDirectory = null; } + /** + * Checks if the runner is properly set up and ready to run. + * + * @return true if the runner is set up, false otherwise + */ public boolean isSetUp() { return this.isSetUp; } + /** + * Runs the ArDoCo pipeline and saves the results to the output directory. + * + * @return the ArDoCo result, or null if the runner is not properly set up + */ public final ArDoCoResult run() { if (this.isSetUp() && this.outputDirectory != null) { return this.getArDoCo().runAndSave(this.outputDirectory); @@ -37,7 +50,9 @@ public final ArDoCoResult run() { } /** - * {@return the {@link DataRepository} produced by the run} The results are not saved to the output directory. + * Returns the {@link DataRepository} produced by the run. The results are not saved to the output directory. + * + * @return the data repository produced by the run */ public final DataRepository runWithoutSaving() { if (this.isSetUp()) { @@ -49,10 +64,20 @@ public final DataRepository runWithoutSaving() { } } + /** + * Returns the ArDoCo instance used by this runner. + * + * @return the ArDoCo instance + */ public ArDoCo getArDoCo() { return this.arDoCo; } + /** + * Sets the output directory where results will be saved. + * + * @param outputDirectory the directory to save output files to + */ protected void setOutputDirectory(File outputDirectory) { this.outputDirectory = outputDirectory; } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java index 7da10f16f..1762023f0 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java @@ -94,6 +94,14 @@ public static String createResultLogString(String name, EvaluationResults res return String.format(Locale.ENGLISH, "%n%s:%n%s", name, results); } + /** + * Logs extended results as a row format using the provided logger. + * + * @param logger the logger to use + * @param headerVal the header value + * @param headerKey the header key + * @param results the results to log + */ public static void logExtendedResultsAsRow(Logger logger, String headerVal, String headerKey, EvaluationResults results) { var txt = String.format("%n%s", results.toRow(headerVal, headerKey)); logger.info(txt); @@ -117,6 +125,15 @@ public static void logExplicitResults(Logger logger, String name, EvaluationResu logger.info(logString); } + /** + * Logs extended results with expected results comparison using the provided logger. + * + * @param logger the logger to use + * @param testClass the test class object + * @param name the name to show in the output + * @param results the results to log + * @param expectedResults the expected results for comparison + */ public static void logExtendedResultsWithExpected(Logger logger, Object testClass, String name, EvaluationResults results, ExpectedResults expectedResults) { var infoString = String.format(Locale.ENGLISH, """ diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index 5fb7d48c7..456f86816 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -1,13 +1,20 @@ /* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.architecture; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; import static com.tngtech.archunit.library.Architectures.layeredArchitecture; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.tngtech.archunit.core.domain.JavaModifier; import com.tngtech.archunit.junit.AnalyzeClasses; import com.tngtech.archunit.junit.ArchTest; import com.tngtech.archunit.lang.ArchRule; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; +import edu.kit.kastel.mcse.ardoco.core.common.JsonHandling; +import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; +import edu.kit.kastel.mcse.ardoco.core.configuration.Configurable; + @AnalyzeClasses(packages = "edu.kit.kastel.mcse.ardoco") public class ArchitectureTest { @@ -112,4 +119,27 @@ public class ArchitectureTest { .mayOnlyBeAccessedByLayers(LAYER_RECOMMENDATION_GENERATOR, LAYER_CONNECTION_GENERATOR, LAYER_CODE_TRACEABILITY, LAYER_INCONSISTENCY_DETECTION, LAYER_PIPELINE, LAYER_COMMON, LAYER_EXECUTION); + @ArchTest + public static final ArchRule configurableFieldsOnlyInConfigurableClasses = fields().that() + .areAnnotatedWith(Configurable.class) + .should() + .beDeclaredInClassesThat() + .areAssignableTo(AbstractConfigurable.class); + + @ArchTest + public static final ArchRule traceLinksShouldBeFinal = classes().that() + .areAssignableTo(TraceLink.class) + .and() + .doNotHaveFullyQualifiedName(TraceLink.class.getName()) + .should() + .haveModifier(JavaModifier.FINAL); + + @ArchTest + public static final ArchRule jacksonIsConfiguredGlobally = noClasses().that() + .doNotHaveFullyQualifiedName(JsonHandling.class.getName()) + .and() + .doNotHaveFullyQualifiedName("edu.kit.kastel.mcse.ardoco.magika.Configuration") + .should() + .callConstructor(ObjectMapper.class); + } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java index 00ffa1181..1cd400845 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java @@ -15,6 +15,9 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +/** + * Represents a gold standard for evaluation, containing mappings between sentences and architecture elements. + */ public class GoldStandard { private final Logger logger = LoggerFactory.getLogger(GoldStandard.class); @@ -23,6 +26,12 @@ public class GoldStandard { private final MutableList> sentence2instance = Lists.mutable.empty(); + /** + * Creates a new gold standard from a file and an architecture component model. + * + * @param goldStandard the file containing the gold standard data + * @param model the architecture component model + */ public GoldStandard(File goldStandard, ArchitectureComponentModel model) { this.goldStandard = goldStandard; this.model = model; @@ -55,11 +64,23 @@ private void load() { } } + /** + * Gets the model instances associated with a specific sentence number. + * + * @param sentenceNo the sentence number (index starts at 1) + * @return the list of architecture items associated with the sentence + */ public ImmutableList getModelInstances(int sentenceNo) { // Index starts at 1 return this.sentence2instance.get(sentenceNo).toImmutable(); } + /** + * Gets all sentence numbers that contain the specified architecture element. + * + * @param elem the architecture element to search for + * @return the list of sentence numbers containing the element + */ public ImmutableList getSentencesWithElement(ArchitectureItem elem) { MutableList sentences = Lists.mutable.empty(); for (int i = 0; i < this.sentence2instance.size(); i++) { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java index 18efc578b..3b9dddbb7 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java @@ -24,6 +24,12 @@ private ResultCalculatorUtil() { throw new IllegalAccessError(); } + /** + * Calculates the macro average of multiple evaluation results. + * + * @param results the list of evaluation results to average + * @return the macro average evaluation results + */ public static EvaluationResults calculateMacroAverageResults(ImmutableList> results) { var averages = getAverages(results); @@ -31,6 +37,12 @@ public static EvaluationResults calculateMacroAverageResults(ImmutableLis return evaluationResults(macroAverage); } + /** + * Calculates the weighted average of multiple evaluation results. + * + * @param results the list of evaluation results to average + * @return the weighted average evaluation results + */ public static EvaluationResults calculateWeightedAverageResults(ImmutableList> results) { var averages = getAverages(results); @@ -38,6 +50,12 @@ public static EvaluationResults calculateWeightedAverageResults(Immutable return evaluationResults(macroAverage); } + /** + * Calculates the micro average of multiple evaluation results. + * + * @param results the list of evaluation results to average + * @return the micro average evaluation results + */ public static EvaluationResults calculateMicroAverageResults(ImmutableList> results) { var averages = getAverages(results); From f2d5eb1bf0d225dd35c2770d859c54b814ec7844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 20 Jun 2025 00:22:37 +0200 Subject: [PATCH 077/115] Fix type hierarchy of ArchitectureModels --- .../api/entity/ArchitectureEntityImpl.java | 2 +- .../arcotl/ArchitectureComponentModel.java | 5 +- .../api/models/arcotl/ArchitectureModel.java | 84 +------------- ...ctureModelWithComponentsAndInterfaces.java | 106 ++++++++++++++++++ .../ardoco/core/api/models/arcotl/Model.java | 2 +- 5 files changed, 113 insertions(+), 86 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index 435cdaea5..abb51a636 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -14,7 +14,7 @@ /** * Implementation of an architecture entity, representing a concrete instance in the architecture model. */ -public class ArchitectureEntityImpl extends ArchitectureEntity { +public final class ArchitectureEntityImpl extends ArchitectureEntity { @Serial private static final long serialVersionUID = 9185325416212743266L; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java index a1cc8ad3b..f0839d9a6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java @@ -7,7 +7,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; @@ -16,7 +15,7 @@ * Represents a model containing only architecture components. * Provides access to architecture components and their type identifiers. */ -public final class ArchitectureComponentModel extends Model { +public final class ArchitectureComponentModel extends ArchitectureModel { private final ArchitectureModel architectureModel; @@ -51,7 +50,7 @@ public List getContent() { * @return list of model entities */ @Override - public List getEndpoints() { + public List getEndpoints() { return this.getContent(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 5bacb4a6a..5890ee164 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -2,28 +2,13 @@ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; /** * Represents an architecture model that is an AMTL instance. - * Provides access to architecture items and their type identifiers. */ -public final class ArchitectureModel extends Model { - - private final List content; - - /** - * Creates a new architecture model that is an AMTL instance. - * - * @param content the content of the architecture model - */ - public ArchitectureModel(List content) { - this.content = content; - } +public abstract sealed class ArchitectureModel extends Model permits ArchitectureComponentModel, ArchitectureModelWithComponentsAndInterfaces { /** * Returns the content of the architecture model. @@ -31,9 +16,7 @@ public ArchitectureModel(List content) { * @return list of architecture items */ @Override - public List getContent() { - return this.content; - } + public abstract List getContent(); /** * Returns the endpoints of this model. @@ -41,66 +24,5 @@ public List getContent() { * @return list of architecture items */ @Override - public List getEndpoints() { - return this.getContent(); - } - - /** - * Returns the metamodel of this architecture model. - * - * @return the metamodel - */ - @Override - public Metamodel getMetamodel() { - return Metamodel.ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES; - } - - /** - * Returns the type identifiers of the architecture items in this model. - * - * @return sorted set of type identifiers - */ - @Override - public SortedSet getTypeIdentifiers() { - - SortedSet identifiers = new TreeSet<>(); - - for (var entity : getContent()) { - if (entity.getType().isPresent()) { - identifiers.add(entity.getType().orElseThrow()); - identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); - } - } - return identifiers; - - } - - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ArchitectureModel that) || !super.equals(o)) { - return false; - } - return this.content.equals(that.content); - } - - /** - * Returns the hash code for this architecture model. - * - * @return hash code - */ - @Override - public int hashCode() { - int result = super.hashCode(); - return 31 * result + this.content.hashCode(); - } - + public abstract List getEndpoints(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java new file mode 100644 index 000000000..61aecc93c --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java @@ -0,0 +1,106 @@ +/* Licensed under MIT 2023-2025. */ +package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; + +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; + +/** + * Represents an architecture model that is an AMTL instance. + * Provides access to architecture items and their type identifiers. + */ +public final class ArchitectureModelWithComponentsAndInterfaces extends ArchitectureModel { + + private final List content; + + /** + * Creates a new architecture model that is an AMTL instance. + * + * @param content the content of the architecture model + */ + public ArchitectureModelWithComponentsAndInterfaces(List content) { + this.content = content; + } + + /** + * Returns the content of the architecture model. + * + * @return list of architecture items + */ + @Override + public List getContent() { + return this.content; + } + + /** + * Returns the endpoints of this model. + * + * @return list of architecture items + */ + @Override + public List getEndpoints() { + return this.getContent(); + } + + /** + * Returns the metamodel of this architecture model. + * + * @return the metamodel + */ + @Override + public Metamodel getMetamodel() { + return Metamodel.ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES; + } + + /** + * Returns the type identifiers of the architecture items in this model. + * + * @return sorted set of type identifiers + */ + @Override + public SortedSet getTypeIdentifiers() { + + SortedSet identifiers = new TreeSet<>(); + + for (var entity : getContent()) { + if (entity.getType().isPresent()) { + identifiers.add(entity.getType().orElseThrow()); + identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); + } + } + return identifiers; + + } + + /** + * Checks equality with another object. + * + * @param o the object to compare + * @return true if equal, false otherwise + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof ArchitectureModelWithComponentsAndInterfaces that) || !super.equals(o)) { + return false; + } + return this.content.equals(that.content); + } + + /** + * Returns the hash code for this architecture model. + * + * @return hash code + */ + @Override + public int hashCode() { + int result = super.hashCode(); + return 31 * result + this.content.hashCode(); + } + +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java index f2f177645..a7428a4a4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java @@ -12,7 +12,7 @@ * Abstract base class for all models. * Provides unique ID and access to content, endpoints, metamodel, and type identifiers. */ -public abstract sealed class Model permits ArchitectureModel, ArchitectureComponentModel, CodeModel { +public abstract sealed class Model permits ArchitectureModel, CodeModel { private final String id = IdentifierProvider.createId(); From 483a8154c4c4121f848d6ec0cacfe83e37dd3816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 20 Jun 2025 00:48:19 +0200 Subject: [PATCH 078/115] Code cleanup (Serializable) --- ...eModelWithCompilationUnitsAndPackages.java | 4 +--- .../architecture/ArchitectureComponent.java | 2 ++ .../api/models/arcotl/code/ClassUnit.java | 4 ++-- .../api/models/arcotl/code/InterfaceUnit.java | 4 ++-- .../SadModelTraceLink.java | 3 +++ .../common/similarity/SimilarityUtils.java | 5 +---- .../error/InvalidJsonException.java | 7 ++++++- .../error/NotConvertableException.java | 7 ++++++- .../textobject/DependencyImpl.java | 4 +++- .../textobject/PhraseImpl.java | 3 +++ .../textobject/SentenceImpl.java | 3 +++ .../textproviderjson/textobject/TextImpl.java | 3 +++ .../textproviderjson/textobject/WordImpl.java | 3 +++ .../execution/ProjectPipelineDataImpl.java | 3 +++ .../tests/eval/results/EvaluationResults.java | 19 ++++++++----------- .../calculator/ResultCalculatorUtil.java | 3 --- 16 files changed, 49 insertions(+), 28 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index de1f79682..f05829237 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -81,9 +81,7 @@ public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); for (var codeItem : this.getContent()) { var type = codeItem.getType(); - if (type.isPresent()) { - identifiers.add(type.get()); - } + type.ifPresent(identifiers::add); } return identifiers; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index a2fb0b9ba..b532e0adc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +import java.io.Serial; import java.util.Optional; import java.util.SortedSet; @@ -14,6 +15,7 @@ */ public final class ArchitectureComponent extends ArchitectureItem { + @Serial private static final long serialVersionUID = -7349058662425121364L; private final SortedSet subcomponents; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java index b3131d51b..6b1f927f3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java @@ -53,8 +53,8 @@ public ClassUnit(CodeItemRepository codeItemRepository, String name, SortedSet getContentIds() { - return this.content; + public List getContentIds() { + return new ArrayList<>(this.content); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java index 284c4af7f..81f16c00f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java @@ -53,8 +53,8 @@ public InterfaceUnit(CodeItemRepository codeItemRepository, String name, SortedS * @return list of content IDs */ @JsonGetter("content") - protected List getContentIds() { - return this.content; + public List getContentIds() { + return new ArrayList<>(this.content); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java index 854cf0774..ef88a5ac4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; +import java.io.Serial; import java.util.Objects; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; @@ -13,6 +14,8 @@ */ public final class SadModelTraceLink extends TraceLink { + @Serial + private static final long serialVersionUID = 8946290400185965394L; private final Sentence sentence; private final ModelEntity modelEntity; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index a7ce92465..41d5359d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -209,10 +209,7 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r public boolean isWordSimilarToModelInstanceType(Word word, ModelEntity modelEntity) { Optional> typeParts = modelEntity.getTypeParts(); - if (typeParts.isEmpty()) { - return false; - } - return this.compareWordWithStringListEntries(word, typeParts.get()); + return typeParts.filter(strings -> this.compareWordWithStringListEntries(word, strings)).isPresent(); } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/InvalidJsonException.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/InvalidJsonException.java index 042c9fd2d..844890b7a 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/InvalidJsonException.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/InvalidJsonException.java @@ -1,8 +1,13 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.error; +import java.io.Serial; + public class InvalidJsonException extends Exception { + @Serial + private static final long serialVersionUID = -3836461863298092356L; + public InvalidJsonException(String message) { super(message); } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/NotConvertableException.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/NotConvertableException.java index f159195f0..42c97b9c7 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/NotConvertableException.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/error/NotConvertableException.java @@ -1,8 +1,13 @@ -/* Licensed under MIT 2023. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.error; +import java.io.Serial; + public class NotConvertableException extends Exception { + @Serial + private static final long serialVersionUID = -7449824797573961104L; + public NotConvertableException(String message) { super(message); } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java index 1ec82af43..c477e1ccc 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/DependencyImpl.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; +import java.io.Serial; import java.io.Serializable; import java.util.Objects; @@ -8,6 +9,7 @@ public class DependencyImpl implements Serializable { + @Serial private static final long serialVersionUID = -6941672414051586496L; private final DependencyTag dependencyType; private final long wordId; diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java index c3f4bfef1..73bb8bb48 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/PhraseImpl.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; +import java.io.Serial; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -22,6 +23,8 @@ public class PhraseImpl implements Phrase { private static final String PUNCTUATION_WITH_SPACE = "\\s+([.,;:?!])"; private static final String BRACKETS_WITH_SPACE = "\\s+([()\\[\\]{}<>])"; + @Serial + private static final long serialVersionUID = 5809331492733614205L; private final PhraseType type; private MutableList childPhrases; private MutableList nonPhraseWords; diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java index 3ec9cbec5..5fbbf1c9e 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; +import java.io.Serial; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -15,6 +16,8 @@ public class SentenceImpl implements Sentence { + @Serial + private static final long serialVersionUID = 949740708112053162L; private final MutableList words; private MutableList phrases = Lists.mutable.empty(); diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java index fde7946e4..bdb26172f 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/TextImpl.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; +import java.io.Serial; import java.util.Objects; import java.util.SortedMap; import java.util.TreeMap; @@ -14,6 +15,8 @@ import edu.kit.kastel.mcse.ardoco.core.api.text.Word; public class TextImpl implements Text { + @Serial + private static final long serialVersionUID = 9154125201453994969L; private MutableList sentences; private MutableList words; diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java index 530c87961..ac2c8fd8d 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/WordImpl.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.textobject; +import java.io.Serial; import java.util.List; import java.util.Objects; @@ -16,6 +17,8 @@ public class WordImpl implements Word { + @Serial + private static final long serialVersionUID = 411612592257031380L; private final Text parent; private final int indexInText; private Word preWord; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java index b90e75bbc..9d6a01f2f 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ProjectPipelineDataImpl.java @@ -1,6 +1,8 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; +import java.io.Serial; + import edu.kit.kastel.mcse.ardoco.core.data.ProjectPipelineData; /** @@ -8,6 +10,7 @@ */ public class ProjectPipelineDataImpl implements ProjectPipelineData { + @Serial private static final long serialVersionUID = -993634357212795104L; private final String projectName; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java index f1690ceb4..83128e578 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java @@ -40,22 +40,19 @@ public String toString() { } public String getExtendedResultStringWithExpected(ExpectedResults expectedResults) { - StringBuilder outputBuilder = new StringBuilder(); - outputBuilder.append(String.format(Locale.ENGLISH, """ + return String.format(Locale.ENGLISH, """ \tPrecision:%8.2f (min. expected: %.2f) \tRecall:%11.2f (min. expected: %.2f) \tF1:%15.2f (min. expected: %.2f)""", precision(), expectedResults.precision(), recall(), expectedResults.recall(), f1(), expectedResults - .f1())); - outputBuilder.append(String.format(Locale.ENGLISH, """ + .f1()) + String.format(Locale.ENGLISH, """ - \tAccuracy:%9.2f (min. expected: %.2f) - \tSpecificity:%6.2f (min. expected: %.2f)""", accuracy(), expectedResults.accuracy(), specificity(), expectedResults.specificity())); - outputBuilder.append(String.format(Locale.ENGLISH, """ + \tAccuracy:%9.2f (min. expected: %.2f) + \tSpecificity:%6.2f (min. expected: %.2f)""", accuracy(), expectedResults.accuracy(), specificity(), expectedResults + .specificity()) + String.format(Locale.ENGLISH, """ - \tPhi Coef.:%8.2f (min. expected: %.2f) - \tPhi/PhiMax:%7.2f (Phi Max: %.2f) - %s""", phiCoefficient(), expectedResults.phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow())); - return outputBuilder.toString(); + \tPhi Coef.:%8.2f (min. expected: %.2f) + \tPhi/PhiMax:%7.2f (Phi Max: %.2f) + %s""", phiCoefficient(), expectedResults.phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow()); } public ImmutableList getFound() { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java index 3b9dddbb7..c617c1ee2 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java @@ -5,8 +5,6 @@ import org.eclipse.collections.api.factory.Sets; import org.eclipse.collections.api.list.ImmutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.EvaluationResults; import edu.kit.kastel.mcse.ardoco.metrics.ClassificationMetricsCalculator; @@ -18,7 +16,6 @@ * This utility class provides methods to form the average of several {@link EvaluationResults} */ public final class ResultCalculatorUtil { - private static final Logger logger = LoggerFactory.getLogger(ResultCalculatorUtil.class); private ResultCalculatorUtil() { throw new IllegalAccessError(); From 64557d73cf2a0721dcfb47f81ad7ec832c571870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 20 Jun 2025 01:25:44 +0200 Subject: [PATCH 079/115] Wanna see an assumption .. there we go .. just ensure that it is ordered as in main. --- .../arcotl/CodeModelWithCompilationUnitsAndPackages.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index f05829237..805463c31 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -55,9 +55,9 @@ public List getContent() { */ @Override public List getEndpoints() { - List entities = new ArrayList<>(); + // The order is more than important here! Otherwise, ArDoCo Heuristics might not work properly. + List entities = new ArrayList<>(codeModel.getAllPackages()); codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); - entities.addAll(codeModel.getAllPackages()); return entities; } From 71e869918231537959be651c7328ffcab1b48262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 20 Jun 2025 11:46:50 +0200 Subject: [PATCH 080/115] Fix test --- .../models/arcotl/CodeModelWithCompilationUnitsAndPackages.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index 805463c31..31d9a8faf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -9,11 +9,13 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** * Code model with compilation units and packages. * Provides endpoints and type identifiers for code items. */ +@Deterministic public final class CodeModelWithCompilationUnitsAndPackages extends CodeModel { private final CodeModelWithOnlyCompilationUnits codeModel; From cb6a1bc1d38c032aadc9439f81bce32a8c60e136 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 17 Jul 2025 17:20:28 +0200 Subject: [PATCH 081/115] start refactoring of core --- .../ardoco/core/api/PreprocessingData.java | 2 +- .../ardoco/core/api/entity/CodeEntity.java | 6 +-- .../mcse/ardoco/core/api/entity/Entity.java | 4 +- .../ardoco/core/api/entity/TextEntity.java | 9 ---- .../ardoco/core/api/models/Metamodel.java | 16 +++--- .../arcotl/ArchitectureComponentModel.java | 25 +++++---- .../api/models/arcotl/ArchitectureModel.java | 4 +- ...ctureModelWithComponentsAndInterfaces.java | 18 +++---- .../core/api/models/arcotl/CodeModel.java | 52 ++++--------------- .../core/api/models/arcotl/CodeModelDTO.java | 4 +- ...ava => CodeModelWithCompilationUnits.java} | 49 ++++------------- ...eModelWithCompilationUnitsAndPackages.java | 21 ++++---- .../architecture/ArchitectureComponent.java | 8 +-- .../architecture/ArchitectureInterface.java | 33 +++++++----- .../architecture/ArchitectureMethod.java | 1 - .../api/models/arcotl/code/ClassUnit.java | 20 ++----- .../arcotl/code/CodeCompilationUnit.java | 21 ++------ .../arcotl/code/CodeItemRepository.java | 4 +- .../api/models/arcotl/code/CodeModule.java | 24 +++------ .../api/models/arcotl/code/CodePackage.java | 7 +-- .../core/api/models/arcotl/code/Datatype.java | 17 +----- .../api/models/arcotl/code/InterfaceUnit.java | 19 +------ .../ardoco/core/api/output/ArDoCoResult.java | 5 +- 23 files changed, 121 insertions(+), 248 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/{CodeModelWithOnlyCompilationUnits.java => CodeModelWithCompilationUnits.java} (55%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java index ad91e504b..ab94180d9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/PreprocessingData.java @@ -7,7 +7,7 @@ import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** - * Container for data after preprocessing, to be stored as {@link PipelineStepData}. Currently holds the preprocessed {@link Text}. + * Container for data after preprocessing, to be stored as {@link PipelineStepData}. Currently, holds the preprocessed {@link Text}. */ public class PreprocessingData implements PipelineStepData { @Serial diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 76cca66a8..94d25f0df 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -39,10 +39,8 @@ public Optional getType() { @Override public Optional> getTypeParts() { - if (this.getType().isPresent()) { - return Optional.of(splitIdentifierIntoParts(this.getType().get()).toImmutable()); - } - return Optional.empty(); + Optional type = this.getType(); + return type.map(s -> splitIdentifierIntoParts(s).toImmutable()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java index ee7f7df9c..74c8dc58b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/Entity.java @@ -10,8 +10,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; /** - * Abstract base class for entities, the smallest unit of a trace link. - * Provides identity, name, and comparison logic. + * Abstract base class for entities, the smallest unit of a trace link. Provides identity, name, and comparison logic. */ public abstract sealed class Entity implements Serializable, Comparable permits TextEntity, ModelEntity { @@ -88,6 +87,7 @@ public boolean equals(Object obj) { if (!(obj instanceof Entity other)) { return false; } + //TODO: Check whether it's sufficient to compare only id return Objects.equals(this.id, other.id) && Objects.equals(this.name, other.name); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java index 2b0dd09f8..5251a50bc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/TextEntity.java @@ -10,15 +10,6 @@ public non-sealed class TextEntity extends Entity { @Serial private static final long serialVersionUID = 7693834560590279832L; - /** - * Creates a new text entity with the specified name. - * - * @param name the name of the text entity - */ - protected TextEntity(String name) { - super(name); - } - /** * Creates a new text entity with the specified name and id. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index 213a17340..d6e91898e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -6,13 +6,13 @@ */ public enum Metamodel { /** Code model with only compilation units. */ - CODE_ONLY_COMPILATION_UNITS, + CODE_WITH_COMPILATION_UNITS, /** Architecture model with components and interfaces. */ ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, /** Code model with compilation units and packages. */ CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, /** Architecture model with only components. */ - ARCHITECTURE_ONLY_COMPONENTS; + ARCHITECTURE_WITH_COMPONENTS; /** * Checks if the given metamodel is a code model. @@ -20,10 +20,10 @@ public enum Metamodel { * @param metamodel the metamodel to check * @return true if it is a code model, false otherwise */ - public static boolean isACodeModel(Metamodel metamodel) { + public static boolean isCodeModel(Metamodel metamodel) { return switch (metamodel) { - case CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, CODE_ONLY_COMPILATION_UNITS -> true; - case ARCHITECTURE_ONLY_COMPONENTS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES -> false; + case CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, CODE_WITH_COMPILATION_UNITS -> true; + case ARCHITECTURE_WITH_COMPONENTS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES -> false; }; } @@ -33,10 +33,10 @@ public static boolean isACodeModel(Metamodel metamodel) { * @param metamodel the metamodel to check * @return true if it is an architecture model, false otherwise */ - public static boolean isAnArchitectureModel(Metamodel metamodel) { + public static boolean isArchitectureModel(Metamodel metamodel) { return switch (metamodel) { - case ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, ARCHITECTURE_ONLY_COMPONENTS -> true; - case CODE_ONLY_COMPILATION_UNITS, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES -> false; + case ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, ARCHITECTURE_WITH_COMPONENTS -> true; + case CODE_WITH_COMPILATION_UNITS, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES -> false; }; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java index f0839d9a6..84739ac17 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java @@ -12,8 +12,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; /** - * Represents a model containing only architecture components. - * Provides access to architecture components and their type identifiers. + * Represents a model containing only architecture components. Provides access to architecture components and their type identifiers. */ public final class ArchitectureComponentModel extends ArchitectureModel { @@ -35,17 +34,17 @@ public ArchitectureComponentModel(ArchitectureModel architectureModel) { */ @Override public List getContent() { - List entities = new ArrayList<>(); - for (ArchitectureItem entity : architectureModel.getContent()) { - if (entity instanceof ArchitectureComponent component) { - entities.add(component); + List components = new ArrayList<>(); + for (ArchitectureItem item : architectureModel.getContent()) { + if (item instanceof ArchitectureComponent component) { + components.add(component); } } - return entities; + return components; } /** - * Returns the endpoints of this model. + * Returns the endpoints of this model. In this case, it returns the architecture components as endpoints. * * @return list of model entities */ @@ -61,7 +60,7 @@ public List getEndpoints() { */ @Override public Metamodel getMetamodel() { - return Metamodel.ARCHITECTURE_ONLY_COMPONENTS; + return Metamodel.ARCHITECTURE_WITH_COMPONENTS; } /** @@ -72,10 +71,10 @@ public Metamodel getMetamodel() { @Override public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); - for (var entity : getContent()) { - if (entity.getType().isPresent()) { - identifiers.add(entity.getType().orElseThrow()); - identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); + for (var component : getContent()) { + if (component.getType().isPresent()) { + identifiers.add(component.getType().orElseThrow()); + identifiers.addAll(component.getTypeParts().orElseThrow().toList()); } } return identifiers; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java index 5890ee164..82d431afa 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java @@ -4,10 +4,12 @@ import java.util.List; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** - * Represents an architecture model that is an AMTL instance. + * Represents an architecture model. */ +@NoHashCodeEquals public abstract sealed class ArchitectureModel extends Model permits ArchitectureComponentModel, ArchitectureModelWithComponentsAndInterfaces { /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java index 61aecc93c..3c1ab1a97 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java @@ -9,19 +9,19 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; /** - * Represents an architecture model that is an AMTL instance. - * Provides access to architecture items and their type identifiers. + * Represents an architecture model. This model contains architecture items, including components and interfaces. */ public final class ArchitectureModelWithComponentsAndInterfaces extends ArchitectureModel { private final List content; /** - * Creates a new architecture model that is an AMTL instance. + * Creates a new architecture model. * * @param content the content of the architecture model */ public ArchitectureModelWithComponentsAndInterfaces(List content) { + //TODO: Ensure that only interfaces and components are added to the content this.content = content; } @@ -36,7 +36,7 @@ public List getContent() { } /** - * Returns the endpoints of this model. + * Returns the endpoints of this model. This method returns the architecture items as endpoints, which include components and interfaces. * * @return list of architecture items */ @@ -65,10 +65,10 @@ public SortedSet getTypeIdentifiers() { SortedSet identifiers = new TreeSet<>(); - for (var entity : getContent()) { - if (entity.getType().isPresent()) { - identifiers.add(entity.getType().orElseThrow()); - identifiers.addAll(entity.getTypeParts().orElseThrow().toList()); + for (var item : getContent()) { + if (item.getType().isPresent()) { + identifiers.add(item.getType().orElseThrow()); + identifiers.addAll(item.getTypeParts().orElseThrow().toList()); } } return identifiers; @@ -86,7 +86,7 @@ public boolean equals(Object o) { if (this == o) { return true; } - if (!(o instanceof ArchitectureModelWithComponentsAndInterfaces that) || !super.equals(o)) { + if (!(o instanceof ArchitectureModelWithComponentsAndInterfaces that)) { return false; } return this.content.equals(that.content); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java index b6e52975d..4ad008695 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java @@ -4,19 +4,19 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Objects; import java.util.SortedSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** - * Represents a code model that is a CMTL instance. - * Provides access to code items and code packages. + * Represents a code model. This includes compilation units and packages. */ -public abstract sealed class CodeModel extends Model permits CodeModelWithCompilationUnitsAndPackages, CodeModelWithOnlyCompilationUnits { +@NoHashCodeEquals +public abstract sealed class CodeModel extends Model permits CodeModelWithCompilationUnitsAndPackages, CodeModelWithCompilationUnits { protected CodeItemRepository codeItemRepository; @@ -56,7 +56,7 @@ protected CodeModel(CodeItemRepository codeItemRepository, SortedSet getContentIds() { * * @return list of all code packages */ - public List getAllPackages() { + public List getAllPackages() { List codePackages = new ArrayList<>(); - var lContent = this.getContent(); - for (var c : lContent) { - var allPackages = c.getAllPackages(); - for (CodePackage cp : allPackages) { - if (!codePackages.contains(cp)) { - codePackages.add(cp); + for (var codeItem : this.getContent()) { + var allPackages = codeItem.getAllPackages(); + for (CodePackage codePackage : allPackages) { + if (!codePackages.contains(codePackage)) { + codePackages.add(codePackage); } } } @@ -101,33 +100,4 @@ protected synchronized void initialize() { this.codeItemRepository.init(); this.initialized = true; } - - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof CodeModel codeModel) || !super.equals(o) || !Objects.equals(this.codeItemRepository, codeModel.codeItemRepository)) { - return false; - } - return Objects.equals(this.content, codeModel.content); - } - - /** - * Returns the hash code for this code model. - * - * @return hash code - */ - @Override - public int hashCode() { - int result = super.hashCode(); - result = 31 * result + (this.codeItemRepository != null ? this.codeItemRepository.hashCode() : 0); - return 31 * result + (this.content != null ? this.content.hashCode() : 0); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java index 76ae6e1f8..16a7c403a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java @@ -8,12 +8,12 @@ import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; /** - * Data transfer object for the code model. - * Contains a {@link CodeItemRepository} and a list of content identifiers. + * Data transfer object for the code model. Contains a {@link CodeItemRepository} and a list of content identifiers. * * @param codeItemRepository the repository of code items * @param content the list of content identifiers */ +//TODO: Rename this to CodeModelDto public record CodeModelDTO(@JsonProperty CodeItemRepository codeItemRepository, @JsonProperty List content) { /** * Returns the code item repository, initializing it if necessary. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java similarity index 55% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java index 901359472..ca29cc6bf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithOnlyCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.SortedSet; import java.util.TreeSet; @@ -14,19 +13,18 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** - * Code model containing only compilation units. - * Provides endpoints and type identifiers for compilation units. + * Code model containing only compilation units. Provides endpoints and type identifiers for compilation units. */ @Deterministic -public final class CodeModelWithOnlyCompilationUnits extends CodeModel { +public final class CodeModelWithCompilationUnits extends CodeModel { /** - * Creates a new code model from a DTO. + * Creates a new code model from a Dto. * - * @param codeModelDTO the code model DTO + * @param codeModelDto the code model Dto */ - public CodeModelWithOnlyCompilationUnits(CodeModelDTO codeModelDTO) { - super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); + public CodeModelWithCompilationUnits(CodeModelDTO codeModelDto) { + super(codeModelDto.codeItemRepository(), codeModelDto.content()); } /** @@ -35,7 +33,7 @@ public CodeModelWithOnlyCompilationUnits(CodeModelDTO codeModelDTO) { * @param codeItemRepository the code item repository * @param content the code items */ - public CodeModelWithOnlyCompilationUnits(CodeItemRepository codeItemRepository, SortedSet content) { + public CodeModelWithCompilationUnits(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); } @@ -59,7 +57,7 @@ public List getEndpoints() { @Override public List getContent() { this.initialize(); - return this.codeItemRepository.getCodeItemsFromIds(this.content); + return this.codeItemRepository.getCodeItemsByIds(this.content); } /** @@ -69,7 +67,7 @@ public List getContent() { */ @Override public Metamodel getMetamodel() { - return Metamodel.CODE_ONLY_COMPILATION_UNITS; + return Metamodel.CODE_WITH_COMPILATION_UNITS; } /** @@ -87,33 +85,4 @@ public SortedSet getTypeIdentifiers() { return identifiers; } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof CodeModelWithOnlyCompilationUnits codeModel) || !super.equals(o) || !Objects.equals(this.codeItemRepository, - codeModel.codeItemRepository)) { - return false; - } - return Objects.equals(this.content, codeModel.content); - } - - /** - * Returns the hash code for this code model. - * - * @return hash code - */ - @Override - public int hashCode() { - int result = super.hashCode(); - result = 31 * result + (this.codeItemRepository != null ? this.codeItemRepository.hashCode() : 0); - return 31 * result + (this.content != null ? this.content.hashCode() : 0); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java index 31d9a8faf..e929e36d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java @@ -12,21 +12,20 @@ import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** - * Code model with compilation units and packages. - * Provides endpoints and type identifiers for code items. + * Code model with compilation units and packages. Provides endpoints and type identifiers for code items. */ @Deterministic public final class CodeModelWithCompilationUnitsAndPackages extends CodeModel { - private final CodeModelWithOnlyCompilationUnits codeModel; + private final CodeModelWithCompilationUnits codeModel; /** - * Creates a new code model from a DTO. + * Creates a new code model from a Dto. * - * @param codeModelDTO the code model DTO + * @param codeModelDto the code model Dto */ - public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDTO) { - super(codeModelDTO.codeItemRepository(), codeModelDTO.content()); - this.codeModel = new CodeModelWithOnlyCompilationUnits(codeModelDTO); + public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDto) { + super(codeModelDto.codeItemRepository(), codeModelDto.content()); + this.codeModel = new CodeModelWithCompilationUnits(codeModelDto); } /** @@ -37,13 +36,13 @@ public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDTO) { */ public CodeModelWithCompilationUnitsAndPackages(CodeItemRepository codeItemRepository, SortedSet content) { super(codeItemRepository, content); - this.codeModel = new CodeModelWithOnlyCompilationUnits(codeItemRepository, content); + this.codeModel = new CodeModelWithCompilationUnits(codeItemRepository, content); } /** * Returns the content of this code model. * - * @return list of code items + * @return list of compilation units and packages */ @Override public List getContent() { @@ -53,7 +52,7 @@ public List getContent() { /** * Returns the endpoints of this code model. * - * @return list of code items + * @return list of code items that are either compilation units or packages */ @Override public List getEndpoints() { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index b532e0adc..5db2a5ec1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -9,9 +9,9 @@ import org.eclipse.collections.api.list.MutableList; /** - * A representation of the model object Component from AMTL. Components are building blocks of a software architecture. A component can contain - * subcomponents but doesn't have to. A component can provide and require interfaces. Provided interfaces are implemented by the component. Required interfaces - * specify some functionality that is needed by the component. + * A representation of the model object Component. Components are building blocks of a software architecture. A component can contain subcomponents but + * doesn't have to. A component can provide and require interfaces. Provided interfaces are implemented by the component. Required interfaces specify some + * functionality that is needed by the component. */ public final class ArchitectureComponent extends ArchitectureItem { @@ -64,7 +64,7 @@ public SortedSet getRequiredInterfaces() { } /** - * Returns the type of this component as specified in the meta model. + * Returns the type of this component as specified in the metamodel. * * @return the type of this component */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java index 14743454d..a14bd962f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java @@ -9,26 +9,25 @@ import org.eclipse.collections.api.list.ImmutableList; /** - * Represents an interface in the architecture model. - * Contains method signatures and models interfaces in the software architecture. + * Represents an interface in the architecture model. Contains method signatures and models interfaces in the software architecture. */ public final class ArchitectureInterface extends ArchitectureItem { @Serial private static final long serialVersionUID = 2232013345166120690L; - private final SortedSet signatures; + private final SortedSet methodSignatures; /** * Creates a new ArchitectureInterface. * - * @param name the name of the interface - * @param id the unique identifier - * @param signatures the method signatures of this interface + * @param name the name of the interface + * @param id the unique identifier + * @param methodSignatures the method signatures of this interface */ - public ArchitectureInterface(String name, String id, SortedSet signatures) { + public ArchitectureInterface(String name, String id, SortedSet methodSignatures) { super(name, id); - this.signatures = signatures; + this.methodSignatures = methodSignatures; } @@ -37,16 +36,26 @@ public ArchitectureInterface(String name, String id, SortedSet getSignatures() { - return this.signatures; + public SortedSet getMethodSignatures() { + return this.methodSignatures; } + /** + * Returns the type of this method (currently not specified). + * + * @return empty optional + */ @Override public Optional getType() { // Not implemented yet. Interfaces currently have no specified type. return Optional.empty(); } + /** + * Returns the type parts of this method (currently not specified). + * + * @return empty optional + */ @Override public Optional> getTypeParts() { // Not implemented yet. Interfaces currently have no specified type. @@ -66,12 +75,12 @@ public boolean equals(Object o) { if (!(o instanceof ArchitectureInterface that) || !super.equals(o)) { return false; } - return Objects.equals(this.signatures, that.signatures); + return Objects.equals(this.methodSignatures, that.methodSignatures); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), this.signatures); + return Objects.hash(super.hashCode(), this.methodSignatures); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java index 1aeb468e0..8b67427e2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java @@ -8,7 +8,6 @@ /** * Represents a method in the architecture model. - * Used as a signature in interfaces or components. */ public final class ArchitectureMethod extends ArchitectureItem { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java index 6b1f927f3..d55c86f88 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java @@ -11,8 +11,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * Represents a class unit in the code model. - * Contains code items representing the contents of a class, such as methods and fields. + * Represents a class unit in the code model. Contains code items representing the contents of a class, such as methods and fields. */ @JsonTypeName("ClassUnit") public final class ClassUnit extends Datatype { @@ -64,7 +63,7 @@ public List getContentIds() { */ @Override public List getContent() { - return this.codeItemRepository.getCodeItemsFromIds(this.content); + return this.codeItemRepository.getCodeItemsByIds(this.content); } /** @@ -76,16 +75,12 @@ public List getContent() { public List getAllDataTypes() { List result = new ArrayList<>(); result.add(this); - this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllDataTypes()); + } return result; } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ @Override public boolean equals(Object o) { if (this == o) { @@ -97,11 +92,6 @@ public boolean equals(Object o) { return this.content.equals(classUnit.content); } - /** - * Returns the hash code for this class unit. - * - * @return hash code - */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java index b2631e1c6..2384f5ab1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java @@ -14,7 +14,6 @@ /** * Represents a compilation unit in the code model. - * Can serve as the code endpoint of a trace link. */ @JsonTypeName("CodeCompilationUnit") public final class CodeCompilationUnit extends CodeModule { @@ -72,7 +71,9 @@ public String getLanguage() { @Override public List getAllDataTypes() { List result = new ArrayList<>(); - this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllDataTypes()); + } return result; } @@ -160,22 +161,11 @@ public Optional getType() { return Optional.empty(); } - /** - * Returns a string representation of this compilation unit. - * - * @return string representation - */ @Override public String toString() { return this.getPath(); } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ @Override public boolean equals(Object o) { if (this == o) { @@ -188,11 +178,6 @@ public boolean equals(Object o) { return Objects.equals(this.language, that.language); } - /** - * Returns the hash code for this compilation unit. - * - * @return hash code - */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java index 7d9ac2409..29320d1ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; /** - * Repository for storing and managing {@link CodeItem} instances by their IDs. + * Repository for storing and managing {@link CodeItem CodeItems}. */ public class CodeItemRepository implements Serializable { @@ -54,7 +54,7 @@ CodeItem getCodeItem(String id) { * @param codeItemIds list of code item IDs * @return list of code items corresponding to the IDs */ - public List getCodeItemsFromIds(List codeItemIds) { + public List getCodeItemsByIds(List codeItemIds) { return codeItemIds.stream().map(this::getCodeItem).filter(Objects::nonNull).toList(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java index a79cd7b8e..3fdaf1423 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java @@ -15,8 +15,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * Represents a module in the code model. - * Can contain other code items, such as packages, compilation units, or assemblies. + * Represents a module in the code model. Modules contain other code items, such as packages, compilation units, or assemblies. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ // @@ -72,7 +71,7 @@ protected List getContentIds() { */ @Override public List getContent() { - return this.codeItemRepository.getCodeItemsFromIds(this.content); + return this.codeItemRepository.getCodeItemsByIds(this.content); } /** @@ -147,7 +146,9 @@ public void setParent(CodeModule parent) { @Override public SortedSet getAllCompilationUnits() { SortedSet result = new TreeSet<>(); - this.getContent().forEach(c -> result.addAll(c.getAllCompilationUnits())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllCompilationUnits()); + } return result; } @@ -159,16 +160,12 @@ public SortedSet getAllCompilationUnits() { @Override public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); - this.getContent().forEach(c -> result.addAll(c.getAllPackages())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllPackages()); + } return result; } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ @Override public boolean equals(Object o) { if (this == o) { @@ -180,11 +177,6 @@ public boolean equals(Object o) { return Objects.equals(this.content, that.content); } - /** - * Returns the hash code for this code module. - * - * @return hash code - */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java index ceed87272..476bf10a9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java @@ -9,8 +9,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * Represents a package in the code model. - * Groups related code items and can contain subpackages and compilation units. + * Represents a package in the code model. Packages group related code items and can contain subpackages and compilation units. */ @JsonTypeName("CodePackage") public final class CodePackage extends CodeModule { @@ -92,7 +91,9 @@ public Optional getType() { public SortedSet getAllPackages() { SortedSet result = new TreeSet<>(); result.add(this); - this.getContent().forEach(c -> result.addAll(c.getAllPackages())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllPackages()); + } return result; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java index 916946a2a..d9ba3e29d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java @@ -15,8 +15,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * Represents a datatype in the code model. - * Can be a class or interface and serves as a base for {@link ClassUnit} and {@link InterfaceUnit}. + * Represents a datatype in the code model. Can be a class or interface and serves as a base for {@link ClassUnit} and {@link InterfaceUnit}. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ // @@ -40,9 +39,6 @@ public sealed class Datatype extends CodeItem permits ClassUnit, InterfaceUnit { @JsonProperty private List datatypeReferencesIds; - /** - * Default constructor for Jackson. - */ Datatype() { // Jackson } @@ -185,12 +181,6 @@ public void setDatatypeReference(SortedSet datatypeDependencies) { } } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ @Override public boolean equals(Object o) { if (this == o) { @@ -209,11 +199,6 @@ public boolean equals(Object o) { return Objects.equals(this.datatypeReferencesIds, datatype.datatypeReferencesIds); } - /** - * Returns the hash code for this datatype. - * - * @return hash code - */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java index 81f16c00f..d39f98feb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java @@ -12,8 +12,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName; /** - * Represents an interface unit in the code model. - * Contains code items representing the contents of an interface, such as method signatures. + * Represents an interface unit in the code model. Contains code items representing the contents of an interface, such as method signatures. */ @JsonTypeName("InterfaceUnit") public final class InterfaceUnit extends Datatype { @@ -24,9 +23,6 @@ public final class InterfaceUnit extends Datatype { @JsonProperty private List content; - /** - * Default constructor for deserialization frameworks. - */ @SuppressWarnings("unused") private InterfaceUnit() { // Jackson @@ -64,7 +60,7 @@ public List getContentIds() { */ @Override public List getContent() { - return this.codeItemRepository.getCodeItemsFromIds(this.content); + return this.codeItemRepository.getCodeItemsByIds(this.content); } /** @@ -80,12 +76,6 @@ public List getAllDataTypes() { return result; } - /** - * Checks equality with another object. - * - * @param o the object to compare - * @return true if equal, false otherwise - */ @Override public boolean equals(Object o) { if (this == o) { @@ -98,11 +88,6 @@ public boolean equals(Object o) { return Objects.equals(this.content, that.content); } - /** - * Returns the hash code for this interface unit. - * - * @return hash code - */ @Override public int hashCode() { int result = super.hashCode(); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 8f94c3229..57ff177cc 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -40,8 +40,7 @@ /** * This record represents the result of running ArDoCo. It is backed by a {@link DataRepository} and provides access to data from it. Besides accessing all data - * from the - * calculation steps, this record also provides convenience methods to directly access results such as found trace links and detected inconsistencies. + * from the calculation steps, this record also provides convenience methods to directly access results such as found trace links and detected inconsistencies. */ @Deterministic public record ArDoCoResult(DataRepository dataRepository) { @@ -91,7 +90,7 @@ public ImmutableList> getArchitectureTrac MutableSet> traceLinks = Sets.mutable.empty(); for (var metamodel : this.getMetamodels()) { - if (metamodel == Metamodel.ARCHITECTURE_ONLY_COMPONENTS) { + if (metamodel == Metamodel.ARCHITECTURE_WITH_COMPONENTS) { traceLinks.addAll(this.getTraceLinksForModel(metamodel).castToCollection()); } } From 0a957eebde2adf21e9aaecee69c17d19527f0df9 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Thu, 17 Jul 2025 18:03:43 +0200 Subject: [PATCH 082/115] renaming, removing unused methods, javadoc --- .../connectiongenerator/ConnectionStates.java | 4 +- ...java => RecommendationModelTraceLink.java} | 39 ++---- .../SadModelTraceLink.java | 3 +- .../inconsistency/InconsistencyState.java | 30 ----- .../inconsistency/ModelInconsistency.java | 16 +-- .../inconsistency/TextInconsistency.java | 4 +- .../RecommendationState.java | 51 +------- .../RecommendedInstance.java | 23 ---- .../api/stage/textextraction/NounMapping.java | 7 - .../mcse/ardoco/core/api/text/Sentence.java | 6 - .../common/similarity/SimilarityUtils.java | 29 ----- .../similarity/wordsim/WordSimMeasure.java | 8 +- .../similarity/wordsim/WordSimUtils.java | 13 +- .../measures/equality/EqualityMeasure.java | 12 +- .../wordsim/measures/glove/GloveMeasure.java | 12 +- .../jarowinkler/JaroWinklerMeasure.java | 10 +- .../levenshtein/LevenshteinMeasure.java | 14 +- .../wordsim/measures/ngram/NgramMeasure.java | 14 +- .../sewordsim/SEWordSimDataSource.java | 35 +---- .../measures/sewordsim/SEWordSimMeasure.java | 12 +- .../wordsim/strategy/AtLeastOneStrategy.java | 8 +- .../wordsim/strategy/AverageStrategy.java | 4 +- .../wordsim/strategy/ComparisonStrategy.java | 6 +- .../wordsim/strategy/MajorityStrategy.java | 8 +- .../wordsim/strategy/MaximumStrategy.java | 26 ---- .../wordsim/strategy/MedianStrategy.java | 32 ----- .../wordsim/strategy/SimilarityStrategy.java | 6 +- .../vector/WordVectorSqliteImporter.java | 32 ++--- .../ardoco/core/common/util/Comparators.java | 42 ------ .../common/util/DataRepositoryHelper.java | 25 +--- .../ardoco/core/common/util/WordHelper.java | 122 ------------------ .../mcse/ardoco/core/data/Confidence.java | 31 ----- .../mcse/ardoco/core/data/DataRepository.java | 13 +- .../mcse/ardoco/core/pipeline/Pipeline.java | 23 ++-- .../textobject/SentenceImpl.java | 4 - 35 files changed, 110 insertions(+), 614 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/{InstanceLink.java => RecommendationModelTraceLink.java} (74%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java index 4f62862c5..34a55e169 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java @@ -16,8 +16,8 @@ public interface ConnectionStates extends PipelineStepData { /** * Returns the connection state for the given metamodel. * - * @param mm the metamodel + * @param metamodel the metamodel * @return the connection state */ - ConnectionState getConnectionState(Metamodel mm); + ConnectionState getConnectionState(Metamodel metamodel); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java similarity index 74% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java index f8e115d5b..91e2dc98a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/InstanceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java @@ -24,7 +24,7 @@ * Defines a link between a {@link RecommendedInstance} and a {@link ModelEntity}. */ @Deterministic -public final class InstanceLink extends TraceLink { +public final class RecommendationModelTraceLink extends TraceLink { @Serial private static final long serialVersionUID = -8630933950725516269L; @@ -33,51 +33,36 @@ public final class InstanceLink extends TraceLink names = new LinkedHashSet<>(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java index ef88a5ac4..f3376e042 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java @@ -32,7 +32,7 @@ public SadModelTraceLink(Sentence sentence, ModelEntity modelEntity) { } /** - * Create a trace link based on a {@link SentenceEntity} and a concrete {@link ModelEntity}. + * Create a trace link based on a {@link SentenceEntity} and a {@link ModelEntity}. * * @param sentenceEntity the sentence entity * @param modelEntity the model entity @@ -78,7 +78,6 @@ public String getEntityId() { */ @Override public boolean equals(Object obj) { - // TODO Check whether we really need to override equals and hashCode here. if (obj instanceof SadModelTraceLink other) { var otherId = other.getEntityId(); var otherSentenceNo = other.getSentenceNumber(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java index 9e5f880e6..901825344 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java @@ -29,14 +29,6 @@ public interface InconsistencyState extends IConfigurable { */ boolean addInconsistency(Inconsistency inconsistency); - /** - * Remove an inconsistency from this state. - * - * @param inconsistency the inconsistency to remove - * @return true if removed successfully - */ - boolean removeInconsistency(Inconsistency inconsistency); - /** * Add multiple recommended instances to this state. * @@ -59,28 +51,6 @@ default boolean addRecommendedInstances(List recommendedIns */ boolean addRecommendedInstance(RecommendedInstance recommendedInstance); - /** - * Remove multiple recommended instances from this state. - * - * @param recommendedInstances the recommended instances to remove - * @return true if all were removed successfully - */ - default boolean removeRecommendedInstances(List recommendedInstances) { - var success = true; - for (var recommendedInstance : recommendedInstances) { - success &= removeRecommendedInstance(recommendedInstance); - } - return success; - } - - /** - * Remove a single recommended instance from this state. - * - * @param recommendedInstance the recommended instance to remove - * @return true if removed successfully - */ - boolean removeRecommendedInstance(RecommendedInstance recommendedInstance); - /** * Sets the recommended instances. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java index 1b4bb2cd0..5c4e486b2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/ModelInconsistency.java @@ -2,23 +2,9 @@ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** - * Extends {@link Inconsistency} for inconsistencies stemming from a concrete model instance. - * Provides information about the inconsistent model instance. + * Extends {@link Inconsistency} for inconsistencies stemming from a concrete model instance. Provides information about the inconsistent model instance. */ public interface ModelInconsistency extends Inconsistency { - /** - * Return the name of the inconsistent model instance. - * - * @return the name of the inconsistent model instance - */ - String getModelInstanceName(); - - /** - * Return the type of the inconsistent model instance. - * - * @return the type of the inconsistent model instance - */ - String getModelInstanceType(); /** * Return the UID of the inconsistent model instance. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java index a3a6ac561..e16b79595 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java @@ -2,8 +2,8 @@ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; /** - * Extends {@link Inconsistency} for inconsistencies stemming from a concrete textual component (e.g., a sentence). - * Provides information on the text-side for more details. + * Extends {@link Inconsistency} for inconsistencies stemming from a textual component (e.g., a sentence). Provides information on the text-side for more + * details. */ public interface TextInconsistency extends Inconsistency { /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java index 67224ed45..70836b47a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationState.java @@ -8,8 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.pipeline.agent.Claimant; /** - * State interface for recommendations. - * Provides access to recommended instances and related operations. + * State interface for recommendations. Provides access to recommended instances and related operations. */ public interface RecommendationState extends IConfigurable { @@ -44,54 +43,6 @@ public interface RecommendationState extends IConfigurable { RecommendedInstance addRecommendedInstance(String name, String type, Claimant claimant, double probability, ImmutableList nameMappings, ImmutableList typeMappings); - /** - * Returns all recommended instances that contain a given mapping as type. - * - * @param mapping mapping to search for in types - * @return list of recommended instances with the mapping as type - */ - ImmutableList getRecommendedInstancesByTypeMapping(NounMapping mapping); - - /** - * Returns all recommended instances that contain a given mapping. - * - * @param mapping mapping to search for - * @return list of recommended instances with the mapping - */ - ImmutableList getAnyRecommendedInstancesByMapping(NounMapping mapping); - - /** - * Returns all recommended instances that contain a given name. - * - * @param name name to search for in names - * @return list of recommended instances with that name - */ - ImmutableList getRecommendedInstancesByName(String name); - - /** - * Returns all recommended instances that contain a similar name. - * - * @param name name to search for in names - * @return list of recommended instances with a similar name - */ - ImmutableList getRecommendedInstancesBySimilarName(String name); - - /** - * Returns all recommended instances that contain a given type. - * - * @param type type to search for in types - * @return list of recommended instances with that type - */ - ImmutableList getRecommendedInstancesByType(String type); - - /** - * Returns all recommended instances that contain a similar type. - * - * @param type type to search for in types - * @return list of recommended instances with a similar type - */ - ImmutableList getRecommendedInstancesBySimilarType(String type); - /** * Sync noun mappings. This method will be invoked if a noun mapping gets removed from the text extraction state. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java index b0940e339..5c63bd6fd 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendedInstance.java @@ -4,7 +4,6 @@ import java.io.Serial; import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.set.sorted.ImmutableSortedSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.TextEntity; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; @@ -57,14 +56,6 @@ protected RecommendedInstance(String name, String id) { */ public abstract void addProbability(Claimant claimant, double probability); - /** - * Adds a name and type mapping to this recommended instance. - * - * @param nameMapping the name mapping - * @param typeMapping the type mapping - */ - public abstract void addMappings(NounMapping nameMapping, NounMapping typeMapping); - /** * Adds name and type mappings to this recommended instance. * @@ -102,20 +93,6 @@ protected RecommendedInstance(String name, String id) { @Override public abstract String getName(); - /** - * Returns the sentence numbers associated with this recommended instance. - * - * @return the sentence numbers - */ - public abstract ImmutableSortedSet getSentenceNumbers(); - - /** - * Returns the claimants associated with this recommended instance. - * - * @return the claimants - */ - public abstract ImmutableList getClaimants(); - /** * Handles the deletion of a noun mapping by replacing it with another. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java index 4046b62fa..ddf8d140b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/NounMapping.java @@ -87,13 +87,6 @@ public interface NounMapping extends Serializable { */ ImmutableSortedMap getDistribution(); - /** - * Returns the claimants for this mapping. - * - * @return the claimants - */ - ImmutableList getClaimants(); - /** * Adds the kind with probability. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java index 0df0c8e82..87b2e9891 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java @@ -57,10 +57,4 @@ default boolean isEqualTo(Sentence other) { */ ImmutableList getPhrases(); - /** - * Adds a new phrase to the sentence. - * - * @param phrase the phrase - */ - void addPhrase(Phrase phrase); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 41d5359d1..784463358 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -401,35 +401,6 @@ private boolean containsAllNounMappingsOfPhraseMapping(TextState textState, Phra return phraseMapping1.getNounMappings(textState).containsAllIterable(phraseMapping2.getNounMappings(textState)); } - /** - * Returns the most similar phrase mapping from a list, given a minimum cosine similarity. - * - * @param textState the text state - * @param phraseMapping the phrase mapping to compare - * @param otherPhraseMappings the other phrase mappings - * @param minCosineSimilarity the minimum cosine similarity - * @return the most similar phrase mapping, or null if none found - */ - public PhraseMapping getMostSimilarPhraseMapping(TextState textState, PhraseMapping phraseMapping, ImmutableList otherPhraseMappings, - double minCosineSimilarity) { - - if (otherPhraseMappings.isEmpty()) { - return null; - } - - double currentMinSimilarity = minCosineSimilarity; - PhraseMapping mostSimilarPhraseMapping = otherPhraseMappings.get(0); - for (PhraseMapping otherPhraseMapping : otherPhraseMappings) { - double similarity = this.getPhraseMappingSimilarity(textState, phraseMapping, otherPhraseMapping, PhraseMappingAggregatorStrategy.MAX_SIMILARITY); - if (similarity > currentMinSimilarity) { - currentMinSimilarity = similarity; - mostSimilarPhraseMapping = otherPhraseMapping; - } - - } - return mostSimilarPhraseMapping; - } - /** * Returns the similarity between two phrase mappings using the given strategy. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java index c2625b8cf..119bfa3b6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimMeasure.java @@ -9,16 +9,16 @@ public interface WordSimMeasure { /** * Evaluates whether the words from the given {@link ComparisonContext} are similar. * - * @param ctx the context containing the words + * @param comparisonContext the context containing the words * @return true if the words are similar */ - boolean areWordsSimilar(ComparisonContext ctx); + boolean areWordsSimilar(ComparisonContext comparisonContext); /** * Evaluates how similar the words from the given {@link ComparisonContext} are. * - * @param ctx the context containing the words + * @param comparisonContext the context containing the words * @return similarity in range [0,1] */ - double getSimilarity(ComparisonContext ctx); + double getSimilarity(ComparisonContext comparisonContext); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java index 2645cd286..64c29ee7f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java @@ -18,8 +18,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy.SimilarityStrategy; /** - * Provides utility methods for calculating similarity between objects, with configurable strategies and measures. - * Not thread-safe. + * Provides utility methods for calculating similarity between objects, with configurable strategies and measures. Not thread-safe. */ public class WordSimUtils { @@ -36,16 +35,6 @@ public void setMeasures(Collection measures) { this.measures = Lists.mutable.withAll(measures); } - /** - * Adds the specified measure to the measures used for similarity comparison. - * - * @param measure the measure to add - * @return true if the measure was added successfully - */ - public boolean addMeasure(WordSimMeasure measure) { - return this.measures.add(measure); - } - /** * Sets the default comparison strategy. The specified strategy will be used for all subsequent comparisons that themselves do not specify a strategy. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java index fa18fbd3a..6c6829000 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/equality/EqualityMeasure.java @@ -11,22 +11,22 @@ public class EqualityMeasure implements WordSimMeasure { /** * Checks if the terms in the given context are similar by comparing their string representations, ignoring case. * - * @param ctx the comparison context + * @param comparisonContext the comparison context * @return true if the terms are equal ignoring case, false otherwise */ @Override - public boolean areWordsSimilar(ComparisonContext ctx) { - return ctx.firstTerm().equalsIgnoreCase(ctx.secondTerm()); + public boolean areWordsSimilar(ComparisonContext comparisonContext) { + return comparisonContext.firstTerm().equalsIgnoreCase(comparisonContext.secondTerm()); } /** * Returns 1.0 if the terms are similar, 0.0 otherwise. * - * @param ctx the comparison context + * @param comparisonContext the comparison context * @return the similarity score (1.0 or 0.0) */ @Override - public double getSimilarity(ComparisonContext ctx) { - return this.areWordsSimilar(ctx) ? 1 : 0; + public double getSimilarity(ComparisonContext comparisonContext) { + return this.areWordsSimilar(comparisonContext) ? 1 : 0; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java index b96dc9b73..bf8b635fc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.glove; import java.nio.file.Path; @@ -46,16 +46,16 @@ public GloveMeasure(double similarityThreshold) throws IllegalArgumentException } @Override - public boolean areWordsSimilar(ComparisonContext ctx) { - return this.getSimilarity(ctx) >= this.similarityThreshold; + public boolean areWordsSimilar(ComparisonContext comparisonContext) { + return this.getSimilarity(comparisonContext) >= this.similarityThreshold; } @Override - public double getSimilarity(ComparisonContext ctx) { + public double getSimilarity(ComparisonContext comparisonContext) { try { - return this.compareVectors(ctx.firstTerm(), ctx.secondTerm()); + return this.compareVectors(comparisonContext.firstTerm(), comparisonContext.secondTerm()); } catch (RetrieveVectorException e) { - LOGGER.error("Failed to compare glove vectors: {}", ctx, e); + LOGGER.error("Failed to compare glove vectors: {}", comparisonContext, e); return Double.NaN; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java index e7c5d743c..59470512a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/jarowinkler/JaroWinklerMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler; import org.apache.commons.text.similarity.JaroWinklerSimilarity; @@ -38,14 +38,14 @@ public JaroWinklerMeasure(double similarityThreshold) throws IllegalArgumentExce } @Override - public boolean areWordsSimilar(ComparisonContext ctx) { - double similarity = this.getSimilarity(ctx); + public boolean areWordsSimilar(ComparisonContext comparisonContext) { + double similarity = this.getSimilarity(comparisonContext); return similarity >= this.similarityThreshold; } @Override - public double getSimilarity(ComparisonContext ctx) { - return this.jaroWinklerSimilarity.apply(ctx.firstTerm(), ctx.secondTerm()); + public double getSimilarity(ComparisonContext comparisonContext) { + return this.jaroWinklerSimilarity.apply(comparisonContext.firstTerm(), comparisonContext.secondTerm()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java index 240b7138e..5096ecaec 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/levenshtein/LevenshteinMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein; import org.apache.commons.text.similarity.LevenshteinDistance; @@ -61,10 +61,10 @@ public LevenshteinMeasure(int minLength, int maxDistance, double threshold) { } @Override - public boolean areWordsSimilar(ComparisonContext ctx) { + public boolean areWordsSimilar(ComparisonContext comparisonContext) { // FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already - String firstWord = ctx.firstTerm().toLowerCase(); - String secondWord = ctx.secondTerm().toLowerCase(); + String firstWord = comparisonContext.firstTerm().toLowerCase(); + String secondWord = comparisonContext.secondTerm().toLowerCase(); int maxDynamicDistance = (int) Math.min(this.maxDistance, this.threshold * Math.min(firstWord.length(), secondWord.length())); int distance = this.levenshteinDistance.apply(firstWord, secondWord); @@ -76,10 +76,10 @@ public boolean areWordsSimilar(ComparisonContext ctx) { } @Override - public double getSimilarity(ComparisonContext ctx) { + public double getSimilarity(ComparisonContext comparisonContext) { // FIXME cast to lower case seems unwarranted given that this is delegated to WordSimUtils already - String firstWord = ctx.firstTerm().toLowerCase(); - String secondWord = ctx.secondTerm().toLowerCase(); + String firstWord = comparisonContext.firstTerm().toLowerCase(); + String secondWord = comparisonContext.secondTerm().toLowerCase(); int distance = this.levenshteinDistance.apply(firstWord, secondWord); return 1.0 - (distance / (double) Math.max(firstWord.length(), secondWord.length())); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java index edc5ba856..4d13a5753 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram; import java.util.Objects; @@ -63,16 +63,16 @@ public NgramMeasure(Variant variant, int n, double similarityThreshold) throws I } @Override - public boolean areWordsSimilar(ComparisonContext ctx) { - Objects.requireNonNull(ctx); - return this.getSimilarity(ctx) >= this.similarityThreshold; + public boolean areWordsSimilar(ComparisonContext comparisonContext) { + Objects.requireNonNull(comparisonContext); + return this.getSimilarity(comparisonContext) >= this.similarityThreshold; } @Override - public double getSimilarity(ComparisonContext ctx) { - double distance = this.calculateDistance(ctx.firstTerm(), ctx.secondTerm()); + public double getSimilarity(ComparisonContext comparisonContext) { + double distance = this.calculateDistance(comparisonContext.firstTerm(), comparisonContext.secondTerm()); - double normalizedDistance = distance / Math.max(ctx.firstTerm().length(), ctx.secondTerm().length()); + double normalizedDistance = distance / Math.max(comparisonContext.firstTerm().length(), comparisonContext.secondTerm().length()); return 1.0 - normalizedDistance; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java index 9b4240685..3e0b04af3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; import java.nio.file.Files; @@ -6,8 +6,6 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; import java.util.Objects; import java.util.Optional; @@ -17,8 +15,7 @@ import opennlp.tools.stemmer.PorterStemmer; /** - * Provides access to the SEWordSim sqlite database. Instances of this class keep an open connection to the sqlite file - * until {@link #close()} is called. + * Provides access to the SEWordSim sqlite database. Instances of this class keep an open connection to the sqlite file until {@link #close()} is called. */ public class SEWordSimDataSource implements AutoCloseable { @@ -31,8 +28,8 @@ public class SEWordSimDataSource implements AutoCloseable { private final PorterStemmer stemmer = new PorterStemmer(); /** - * Construct a new {@link SEWordSimDataSource}. Once instantiated, a connection to the file will be kept open until - * {@link #close()} is called on this instance. + * Construct a new {@link SEWordSimDataSource}. Once instantiated, a connection to the file will be kept open until {@link #close()} is called on this + * instance. * * @param sqliteFile the path to the sqlite database file * @throws SQLException if connecting to the sqlite database fails @@ -82,8 +79,7 @@ public boolean containsWord(String word) throws SQLException { * * @param firstWord the first word * @param secondWord the second word - * @return the similarity score, ranging from {@code 0.0} to {@code 1.0}, or {@link Optional#empty()} if the - * database does not contain the given word pair + * @return the similarity score, ranging from {@code 0.0} to {@code 1.0}, or {@link Optional#empty()} if the database does not contain the given word pair * @throws SQLException if a database access error occurs */ public Optional getSimilarity(String firstWord, String secondWord) throws SQLException { @@ -106,27 +102,6 @@ public Optional getSimilarity(String firstWord, String secondWord) throw return Optional.empty(); } - /** - * Gets all words stored in the database. - * - * @return a list of all words stored in the database - * @throws SQLException if a database access error occurs - */ - public List getAllWords() throws SQLException { - var words = new ArrayList(); - - try (var statement = this.connection.createStatement()) { - try (var result = statement.executeQuery(SELECT_ALL_QUERY)) { - while (result.next()) { - String word = result.getString("term_1"); - words.add(word); - } - } - } - - return words; - } - /** * Closes the connection to the sqlite file. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java index c9199e020..86b0cd08b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; import java.nio.file.Path; @@ -42,19 +42,19 @@ public SEWordSimMeasure(double similarityThreshold) { } @Override - public boolean areWordsSimilar(ComparisonContext ctx) { - var similarity = this.getSimilarity(ctx); + public boolean areWordsSimilar(ComparisonContext comparisonContext) { + var similarity = this.getSimilarity(comparisonContext); return !Double.isNaN(similarity) && similarity >= this.similarityThreshold; } @Override - public double getSimilarity(ComparisonContext ctx) { + public double getSimilarity(ComparisonContext comparisonContext) { double similarity = Double.NaN; try { - similarity = this.getDataSource().getSimilarity(ctx.firstTerm(), ctx.secondTerm()).orElse(Double.NaN); + similarity = this.getDataSource().getSimilarity(comparisonContext.firstTerm(), comparisonContext.secondTerm()).orElse(Double.NaN); } catch (SQLException e) { - LOGGER.error("Failed to query the SEWordSim database for word comparison: {}", ctx, e); + LOGGER.error("Failed to query the SEWordSim database for word comparison: {}", comparisonContext, e); } return similarity; // words are probably missing from the database } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java index 2f0aa3cea..f5e93d143 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AtLeastOneStrategy.java @@ -14,14 +14,14 @@ public class AtLeastOneStrategy implements ComparisonStrategy { /** * Returns true if at least one measure considers the words similar. * - * @param ctx the comparison context - * @param measures the measures to use + * @param comparisonContext the comparison context + * @param measures the measures to use * @return true if at least one measure returns true */ @Override - public boolean areWordsSimilar(ComparisonContext ctx, List measures) { + public boolean areWordsSimilar(ComparisonContext comparisonContext, List measures) { for (WordSimMeasure measure : measures) { - if (measure.areWordsSimilar(ctx)) { + if (measure.areWordsSimilar(comparisonContext)) { return true; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java index 963c08229..6809ae053 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/AverageStrategy.java @@ -11,12 +11,12 @@ */ public class AverageStrategy implements SimilarityStrategy { @Override - public double getSimilarity(ComparisonContext ctx, List measures) { + public double getSimilarity(ComparisonContext comparisonContext, List measures) { double sum = 0.0; int successful = 0; for (WordSimMeasure measure : measures) { - var similarity = measure.getSimilarity(ctx); + var similarity = measure.getSimilarity(comparisonContext); if (!Double.isNaN(similarity)) { successful++; sum += similarity; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java index 939c0f90b..e99c838d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java @@ -18,10 +18,10 @@ public interface ComparisonStrategy { /** * Evaluates whether the words from the given context are similar by combining the verdicts of the specified measures. * - * @param ctx the context containing the words - * @param measures the measures to use + * @param comparisonContext the context containing the words + * @param measures the measures to use * @return true if the words are similar */ - boolean areWordsSimilar(ComparisonContext ctx, List measures); + boolean areWordsSimilar(ComparisonContext comparisonContext, List measures); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java index b16975bd3..25ba7b96d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java @@ -14,16 +14,16 @@ public class MajorityStrategy implements ComparisonStrategy { /** * Returns true if the majority of measures consider the words similar. * - * @param ctx the comparison context - * @param measures the measures to use + * @param comparisonContext the comparison context + * @param measures the measures to use * @return true if the majority of measures return true */ @Override - public boolean areWordsSimilar(ComparisonContext ctx, List measures) { + public boolean areWordsSimilar(ComparisonContext comparisonContext, List measures) { int acceptances = 0; for (WordSimMeasure measure : measures) { - if (measure.areWordsSimilar(ctx)) { + if (measure.areWordsSimilar(comparisonContext)) { acceptances++; } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java deleted file mode 100644 index f73f962e8..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MaximumStrategy.java +++ /dev/null @@ -1,26 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; - -import java.util.List; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; - -/** - * A similarity strategy that returns the maximum of all similarity scores from the provided word similarity measures. - */ -public class MaximumStrategy implements SimilarityStrategy { - @Override - public double getSimilarity(ComparisonContext ctx, List measures) { - double max = 0.0; - - for (WordSimMeasure measure : measures) { - var similarity = measure.getSimilarity(ctx); - if (!Double.isNaN(similarity)) { - max = Math.max(similarity, max); - } - } - - return max; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java deleted file mode 100644 index d76a1f0e2..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MedianStrategy.java +++ /dev/null @@ -1,32 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; - -import java.util.ArrayList; -import java.util.List; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; - -/** - * A similarity strategy that returns the median of all similarity scores from the provided word similarity measures. - */ -public class MedianStrategy implements SimilarityStrategy { - @Override - public double getSimilarity(ComparisonContext ctx, List measures) { - var values = new ArrayList(); - - for (WordSimMeasure measure : measures) { - var similarity = measure.getSimilarity(ctx); - if (!Double.isNaN(similarity)) { - values.add(similarity); - } - } - values.sort(Double::compare); - - var array = values.toArray(new Double[0]); - if (array.length % 2 == 0) { - return (array[array.length / 2] + array[array.length / 2 - 1]) / 2; - } - return array[array.length / 2]; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java index 8ccfe8d0b..ef14c15a2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/SimilarityStrategy.java @@ -13,9 +13,9 @@ public interface SimilarityStrategy { /** * Evaluates how similar the words from the given {@link ComparisonContext} are by combining the verdicts of the specified word similarity measures. * - * @param ctx the context containing the words - * @param measures the measures to use + * @param comparisonContext the context containing the words + * @param measures the measures to use * @return Returns similarity in range [0,1] */ - double getSimilarity(ComparisonContext ctx, List measures); + double getSimilarity(ComparisonContext comparisonContext, List measures); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java index 45c06fe29..001ba8f60 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; import java.io.BufferedReader; @@ -25,14 +25,12 @@ /** * Reads a file containing word vector embeddings and inserts them into a sqlite database. *

    - * The database must contain a table called {@code words} with two columns: {@code word} and {@code vec}. The - * {@code word} column must be a {@code TEXT} column while the {@code vec} column must be a {@code BLOB}. Vector - * representations will be inserted as a consecutive sequence of floats. The amount of floats in a sequence depends on - * the dimension of the vectors. + * The database must contain a table called {@code words} with two columns: {@code word} and {@code vec}. The {@code word} column must be a {@code TEXT} column + * while the {@code vec} column must be a {@code BLOB}. Vector representations will be inserted as a consecutive sequence of floats. The amount of floats in a + * sequence depends on the dimension of the vectors. *

    - * This class can be customized by extending it and overriding the {@link #processWord(String)} and - * {@link #filterWord(String)} methods. Both methods are called for each word and allow filtering/modifying words before - * they are inserted into the databse. + * This class can be customized by extending it and overriding the {@link #processWord(String)} and {@link #filterWord(String)} methods. Both methods are called + * for each word and allow filtering/modifying words before they are inserted into the database. */ public class WordVectorSqliteImporter { @@ -40,9 +38,8 @@ public class WordVectorSqliteImporter { private static final Logger LOGGER = LoggerFactory.getLogger(WordVectorSqliteImporter.class); /** - * Launches an import process. The first string in the args array must be the path to the file containing the vector - * representations. The second string in the args array must be the path to the sqlite database file. The third - * string in the args array must be the dimension of the vectors. + * Launches an import process. The first string in the args array must be the path to the file containing the vector representations. The second string in + * the args array must be the path to the sqlite database file. The third string in the args array must be the dimension of the vectors. * * @param args the args array * @throws IOException if an io error occurs @@ -80,8 +77,7 @@ public WordVectorSqliteImporter(String vectorFile, String dbFile, int dimension) } /** - * Constructs a new {@link WordVectorSqliteImporter} instance. To start the import process, call - * {@link #beginImport()}. + * Constructs a new {@link WordVectorSqliteImporter} instance. To start the import process, call {@link #beginImport()}. * * @param vectorFile the path ot the file that contains the vector representations for each word * @param dbFile the path to the sqlite database into which the vector representations will be inserted @@ -89,8 +85,7 @@ public WordVectorSqliteImporter(String vectorFile, String dbFile, int dimension) * @param maxWordLength the maximum length a word is allowed to have to be inserted into the database * @param startLine at which line of the {@code vectorFile} this importer will start inserting * @param endLine at which line of the {@code vectorFile} this importer will stop inserting - * @param dryRun whether this importer should actually insert. Use {@code false} to run this importer without - * actually inserting anything + * @param dryRun whether this importer should actually insert. Use {@code false} to run this importer without actually inserting anything */ public WordVectorSqliteImporter(String vectorFile, String dbFile, int dimension, int maxWordLength, long startLine, long endLine, boolean dryRun) { this.vectorFile = vectorFile; @@ -195,8 +190,7 @@ private PreparedStatement prepareSelect(Connection conn) throws SQLException { } /** - * This method is called for each word that is read from the vector file. The string that is returned will then be - * used for insertion. + * This method is called for each word that is read from the vector file. The string that is returned will then be used for insertion. * * @param word the word to process * @return the processed version of the word @@ -206,8 +200,8 @@ protected String processWord(String word) { } /** - * This method is called for each word that is read from the vector file. It allows filtering which words are - * inserted into database and which words are skipped. + * This method is called for each word that is read from the vector file. It allows filtering which words are inserted into database and which words are + * skipped. * * @param word the word * @return returns {@code true} if the should should be inserted into the database, {@code false} if not. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java index 7e163dfa4..2d34b48cc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Comparators.java @@ -38,37 +38,6 @@ public static boolean collectionsEqualsAnyOrder(Collection first, Collect return first.size() == second.size() && first.containsAll(second) && second.containsAll(first); } - /** - * Returns whether both sorted iterables consist of equal elements (regardless of order). - * - * @param first collection - * @param second collection - * @param Type of the collection - * @return true if both sorted iterables have equal elements, false otherwise - */ - public static boolean collectionsEqualsAnyOrder(SortedIterable first, SortedIterable second) { - var f = first.iterator(); - var s = second.iterator(); - while (f.hasNext() || s.hasNext()) { - if ((f.hasNext() != s.hasNext()) || !f.next().equals(s.next())) { - return false; - } - } - return true; - } - - /** - * Returns whether both collections consist of the same references (regardless of order). - * - * @param first collection - * @param second collection - * @param Type of the collection - * @return true if both collections have the same references, false otherwise - */ - public static boolean collectionsIdentityAnyOrder(ImmutableCollection first, ImmutableCollection second) { - return collectionsIdentityAnyOrder(first.castToCollection(), second.castToCollection()); - } - /** * Returns whether both sorted iterables consist of the same references (regardless of order). * @@ -88,15 +57,4 @@ public static boolean collectionsIdentityAnyOrder(SortedIterable first, S return true; } - /** - * Returns whether both collections consist of the same references (regardless of order). - * - * @param first collection - * @param second collection - * @param Type of the collection - * @return true if both collections have the same references, false otherwise - */ - public static boolean collectionsIdentityAnyOrder(Collection first, Collection second) { - return first.size() == second.size() && first.stream().allMatch(f -> second.stream().anyMatch(s -> f == s)); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index 81f81eb62..09c18c2d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -86,19 +86,9 @@ public static Text getAnnotatedText(DataRepository dataRepository) { return dataRepository.getData(PreprocessingData.ID, PreprocessingData.class).orElseThrow().getText(); } - /** - * Checks whether there is {@link TextState} stored within the provided {@link DataRepository} - * - * @param dataRepository the DataRepository to access - * @return true, if there is {@link TextState} within the {@link DataRepository}; else, false - */ - public static boolean hasTextState(DataRepository dataRepository) { - return dataRepository.getData(TextState.ID, TextState.class).isPresent(); - } - /** * Returns the {@link TextState} stored within the provided {@link DataRepository}. This does not check if there actually is one and will fail and throw an - * {@link java.util.NoSuchElementException} if the state is not present. To make sure that there is data present, use {@link #hasTextState(DataRepository)} + * {@link java.util.NoSuchElementException} if the state is not present. * * @param dataRepository the DataRepository to access * @return the state @@ -107,20 +97,9 @@ public static TextState getTextState(DataRepository dataRepository) { return dataRepository.getData(TextState.ID, TextState.class).orElseThrow(); } - /** - * Checks whether there is {@link ModelStates} stored within the provided {@link DataRepository} - * - * @param dataRepository the DataRepository to access - * @return true, if there is {@link ModelStates} within the {@link DataRepository}; else, false - */ - public static boolean hasModelStatesData(DataRepository dataRepository) { - return dataRepository.getData(ModelStates.ID, ModelStates.class).isPresent(); - } - /** * Returns the {@link ModelStates} stored within the provided {@link DataRepository}. This does not check if there actually is one and will fail and throw - * an {@link java.util.NoSuchElementException} if the state is not present. To make sure that there is data present, use - * {@link #hasModelStatesData(DataRepository)} + * an {@link java.util.NoSuchElementException} if the state is not present. * * @param dataRepository the DataRepository to access * @return the state diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java deleted file mode 100644 index fa74c8f17..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/WordHelper.java +++ /dev/null @@ -1,122 +0,0 @@ -/* Licensed under MIT 2021-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; - -import edu.kit.kastel.mcse.ardoco.core.api.text.DependencyTag; -import edu.kit.kastel.mcse.ardoco.core.api.text.POSTag; -import edu.kit.kastel.mcse.ardoco.core.api.text.Word; - -/** - * Helper class with static methods for working with words and their linguistic properties. - */ -public final class WordHelper { - - private WordHelper() { - throw new IllegalAccessError(); - } - - /** - * Checks for determiner as previous word. - * - * @param word the word - * @return true, if found - */ - public static boolean hasDeterminerAsPreWord(Word word) { - - Word preWord = word.getPreWord(); - if (preWord == null) { - return false; - } - - var prePosTag = preWord.getPosTag(); - return POSTag.DETERMINER == prePosTag; - - } - - /** - * Checks for indirect determiner as previous word. - * - * @param word the word - * @return true, if found - */ - public static boolean hasIndirectDeterminerAsPreWord(Word word) { - return hasDeterminerAsPreWord(word) && ("a".equalsIgnoreCase(word.getText()) || "an".equalsIgnoreCase(word.getText())); - } - - /** - * Gets the incoming dependency tags. - * - * @param word the word - * @return the incoming dependency tags - */ - public static ImmutableList getIncomingDependencyTags(Word word) { - return Lists.immutable.with(DependencyTag.values()).select(d -> !word.getIncomingDependencyWordsWithType(d).isEmpty()); - } - - /** - * Gets the outgoing dependency tags. - * - * @param word the word - * @return the outgoing dependency tags - */ - public static ImmutableList getOutgoingDependencyTags(Word word) { - return Lists.immutable.with(DependencyTag.values()).select(d -> !word.getOutgoingDependencyWordsWithType(d).isEmpty()); - } - - /** - * Checks if the word is a verb based on its POS tag. - * - * @param word the word - * @return true if the word is a verb, false otherwise - */ - public static boolean isVerb(Word word) { - String tag = word.getPosTag().getTag(); - return tag.startsWith("VB") || tag.startsWith("MD"); - } - - /** - * Checks if the word is an adjective based on its POS tag. - * - * @param word the word - * @return true if the word is an adjective, false otherwise - */ - public static boolean isAdjective(Word word) { - String tag = word.getPosTag().getTag(); - return tag.startsWith("JJ"); - } - - /** - * Checks if the word is an adverb based on its POS tag. - * - * @param word the word - * @return true if the word is an adverb, false otherwise - */ - public static boolean isAdverb(Word word) { - String tag = word.getPosTag().getTag(); - return tag.startsWith("RB"); - } - - /** - * Checks if the word is a noun based on its POS tag. - * - * @param word the word - * @return true if the word is a noun, false otherwise - */ - public static boolean isNoun(Word word) { - String tag = word.getPosTag().getTag(); - return tag.startsWith("NN"); - } - - /** - * Checks if the word is a pronoun based on its POS tag. - * - * @param word the word - * @return true if the word is a pronoun, false otherwise - */ - public static boolean isPronoun(Word word) { - String tag = word.getPosTag().getTag(); - return tag.startsWith("PR") || tag.startsWith("WP"); - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java index 6d3cd19ee..e7bf685fc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java @@ -132,37 +132,6 @@ public double getConfidence() { return this.confidenceAggregator.applyAsDouble(claimantConfidences); } - /** - * Merges two confidences two one w.r.t. the aggregators - * - * @param a first confidence - * @param b second confidence - * @param globalAggregator aggregator for merging different claimant confidences - * @param localAggregator aggregator for merging confidences of the same claimant - * @return the combined confidence - */ - public static Confidence merge(Confidence a, Confidence b, AggregationFunctions globalAggregator, AggregationFunctions localAggregator) { - var result = new Confidence(globalAggregator); - - for (var aConf : a.agentConfidences) { - var bConf = b.agentConfidences.stream().filter(p -> p.first().equals(aConf.first())).findFirst().orElse(null); - if (bConf == null) { - result.addAgentConfidence(aConf.first(), aConf.second()); - } else { - result.addAgentConfidence(aConf.first(), localAggregator.applyAsDouble(List.of(aConf.second(), bConf.second()))); - } - } - - for (var bConf : b.agentConfidences) { - var aConf = a.agentConfidences.stream().anyMatch(p -> p.first().equals(bConf.first())); - if (!aConf) { - result.addAgentConfidence(bConf.first(), bConf.second()); - } - } - - return result; - } - @Override public int hashCode() { return Objects.hash(this.agentConfidences, this.confidenceAggregator); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java index e5ae83f0a..b459dd8fb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepository.java @@ -11,8 +11,8 @@ import org.slf4j.LoggerFactory; /** - * Represents a data repository for storing and fetching pipeline step data by identifier. - * Data can be added and fetched using a string identifier and the expected class type. + * Represents a data repository for storing and fetching pipeline step data by identifier. Data can be added and fetched using a string identifier and the + * expected class type. */ public class DataRepository implements Serializable { @@ -59,13 +59,4 @@ public void addData(String identifier, PipelineStepData pipelineStepData) { DataRepository.logger.warn("Overriding data with identifier '{}'", identifier); } } - - /** - * Adds all data to the existing repository using the provided repository. - * - * @param dataRepository data repository - */ - public void addAllData(DataRepository dataRepository) { - this.data.putAll(dataRepository.data); - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java index 12f1eb4e5..a32199af7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java @@ -10,8 +10,8 @@ import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; /** - * Represents a pipeline consisting of multiple {@link AbstractPipelineStep} steps executed in sequence. - * Steps are executed in the order they are added to the pipeline. + * Represents a pipeline consisting of multiple {@link AbstractPipelineStep} steps executed in sequence. Steps are executed in the order they are added to the + * pipeline. */ public class Pipeline extends AbstractPipelineStep { private final List pipelineSteps; @@ -33,8 +33,7 @@ public Pipeline(String id, DataRepository dataRepository) { * * @param id id for the pipeline * @param dataRepository {@link DataRepository} that should be used for fetching and saving data - * @param pipelineSteps List of {@link AbstractPipelineStep} that should be added to the - * constructed pipeline + * @param pipelineSteps List of {@link AbstractPipelineStep} that should be added to the constructed pipeline */ public Pipeline(String id, DataRepository dataRepository, List pipelineSteps) { super(id, dataRepository); @@ -63,7 +62,7 @@ public boolean addPipelineStep(AbstractPipelineStep pipelineStep) { /** * {@return whether the pipeline has finished execution} */ - public boolean wasExecuted() { + public boolean hasFinished() { return this.executed; } @@ -105,12 +104,10 @@ protected void after() { } /** - * This method is called at the start of running the pipeline. Within this method, the added - * PipelineSteps are prepared. - * Sub-classes of Pipeline can override it with special cases. - * It is recommended that you apply the Map from {@link #getLastAppliedConfiguration()} via {@link #applyConfiguration(SortedMap)} to each pipeline step. - * You can do that on your own if you need special treatment or by default call {@link #delegateApplyConfigurationToInternalObjects(SortedMap)}. - * The base version does apply the last configuration via the default call. + * This method is called at the start of running the pipeline. Within this method, the added PipelineSteps are prepared. Sub-classes of Pipeline can + * override it with special cases. It is recommended that you apply the Map from {@link #getLastAppliedConfiguration()} via + * {@link #applyConfiguration(SortedMap)} to each pipeline step. You can do that on your own if you need special treatment or by default call + * {@link #delegateApplyConfigurationToInternalObjects(SortedMap)}. The base version does apply the last configuration via the default call. */ protected void preparePipelineSteps() { this.delegateApplyConfigurationToInternalObjects(this.getLastAppliedConfiguration()); @@ -118,6 +115,8 @@ protected void preparePipelineSteps() { @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { - this.pipelineSteps.forEach(it -> it.applyConfiguration(additionalConfiguration)); + for (AbstractPipelineStep abstractPipelineStep : this.pipelineSteps) { + abstractPipelineStep.applyConfiguration(additionalConfiguration); + } } } diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java index 5fbbf1c9e..d90c34399 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/textobject/SentenceImpl.java @@ -74,8 +74,4 @@ public int hashCode() { return Objects.hash(words, phrases, sentenceNumber, text); } - @Override - public void addPhrase(Phrase phrase) { - phrases.add(phrase); - } } From 91e97db546f5a2e576d204b95f594fba4089be5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 17 Jul 2025 18:17:49 +0200 Subject: [PATCH 083/115] fix sonar --- .../RecommendationModelTraceLink.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java index 91e2dc98a..e581fbbd7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/RecommendationModelTraceLink.java @@ -92,4 +92,15 @@ public String toString() { ", TypeVariants: " + types.size() + ": " + types + "sentences{" + Arrays.toString(typePositions.toArray()) + "}" + "]"; } + @Override + public boolean equals(Object obj) { + // Confidence is not part of the equals check, as it is not relevant for the identity of the trace link + return super.equals(obj); + } + + @Override + public int hashCode() { + // Confidence is not part of the hash code, as it is not relevant for the identity of the trace link + return super.hashCode(); + } } From 0d315eb63011c3e596875733c58e5480d9b694ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 17 Jul 2025 23:50:56 +0200 Subject: [PATCH 084/115] cleanup --- .../kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java | 2 ++ .../kit/kastel/mcse/ardoco/core/data/impl/ResultData.java | 5 ++++- .../edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java index 798d29871..92ed4b5d3 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ProcessedTextData.java @@ -1,6 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data.impl; +import java.io.Serial; import java.util.List; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; @@ -9,6 +10,7 @@ * Example {@link PipelineStepData} */ public class ProcessedTextData implements PipelineStepData { + @Serial private static final long serialVersionUID = -6806096212069462237L; private List importantTokens; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java index b780a33c2..981e66d47 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/ResultData.java @@ -1,12 +1,15 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data.impl; +import java.io.Serial; + import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** * Example {@link PipelineStepData} */ public class ResultData implements PipelineStepData { + @Serial private static final long serialVersionUID = 9183617106768927240L; private String result = null; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java index ebd34c174..d122f5faa 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/data/impl/TextData.java @@ -1,6 +1,7 @@ -/* Licensed under MIT 2022-2023. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.data.impl; +import java.io.Serial; import java.util.List; import java.util.Objects; @@ -10,6 +11,7 @@ * Example {@link PipelineStepData} */ public class TextData implements PipelineStepData { + @Serial private static final long serialVersionUID = 3062730501023901345L; private final String text; private List tokens; From 5b018be5a2d54c50220beeae7c04173371b2c4c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 18 Jul 2025 17:33:36 +0200 Subject: [PATCH 085/115] Start work on refactoring Tests --- .../ardoco/core/api/output/ArDoCoResult.java | 12 +-- .../tests/evaluation/EvaluationHelper.java | 38 +++++++++ .../tests/evaluation/EvaluationProject.java | 83 +++++++++++++++++++ .../tests/evaluation/ExpectedResults.java | 24 ++++++ 4 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java create mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 57ff177cc..c0d9dbd72 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -113,12 +113,12 @@ public List getAllTraceLinksAsBeautifiedStrings() { * * @return the list of {@link TraceLink TraceLinks} between architecture and code entities */ - public List> getSamCodeTraceLinks() { + public ImmutableList> getSamCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { - return samCodeTraceabilityState.getSamCodeTraceLinks().toList(); + return Lists.immutable.withAll(samCodeTraceabilityState.getSamCodeTraceLinks()); } - return List.of(); + return Lists.immutable.empty(); } /** @@ -126,12 +126,12 @@ public List getAllTraceLinksAsBeautifiedStrings() { * * @return the list of {@link TraceLink TraceLinks} between sentences and code entities */ - public List> getSadCodeTraceLinks() { + public ImmutableList> getSadCodeTraceLinks() { var samCodeTraceabilityState = this.getCodeTraceabilityState(); if (samCodeTraceabilityState != null) { - return samCodeTraceabilityState.getSadCodeTraceLinks().toList(); + return Lists.immutable.withAll(samCodeTraceabilityState.getSadCodeTraceLinks()); } - return List.of(); + return Lists.immutable.empty(); } /** diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java new file mode 100644 index 000000000..3c4cc7a46 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java @@ -0,0 +1,38 @@ +/* Licensed under MIT 2025. */ +package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; + +public final class EvaluationHelper { + private EvaluationHelper() { + throw new IllegalAccessError("Utility class should not be instantiated"); + } + + /** + * Load a resource to a temporary file + * + * @param resource the resource path + * @return the file if loaded or null if not possible + */ + public static File loadFileFromResources(String resource) { + InputStream is = EvaluationHelper.class.getResourceAsStream(resource); + if (is == null) + throw new IllegalArgumentException("Resource not found: " + resource); + try { + File temporaryFile = File.createTempFile("ArDoCo", ".tmp"); + temporaryFile.deleteOnExit(); + try (FileOutputStream fos = new FileOutputStream(temporaryFile)) { + try (is) { + is.transferTo(fos); + } + } + return temporaryFile; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java new file mode 100644 index 000000000..cf747496a --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java @@ -0,0 +1,83 @@ +/* Licensed under MIT 2025. */ +package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; + +import java.io.File; +import java.util.Objects; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; +import edu.kit.kastel.mcse.ardoco.core.common.RepositoryHandler; + +public enum EvaluationProject { + MEDIASTORE(// + "MS", // + "/benchmark/mediastore/model_2016/pcm/ms.repository", // + "/benchmark/mediastore/text_2016/mediastore.txt", // + "https://github.com/ArDoCo/MediaStore3.git", // + "94c398fa02b3d6b8d71517522a7206d37ed3a9af", // + "/benchmark/mediastore/model_2016/code/codeModel.acm"); + + private static final Logger logger = LoggerFactory.getLogger(EvaluationProject.class); + + private final String alias; + private final String architectureModelResource; + private final String textResource; + private final String codeRepository; + private final String codeCommit; + private final String codeModelResource; + + EvaluationProject(String alias, String architectureModelResource, String textResource, String codeRepository, String codeCommit, String codeModelResource) { + this.alias = alias; + this.architectureModelResource = architectureModelResource; + this.textResource = textResource; + this.codeRepository = codeRepository; + this.codeCommit = codeCommit; + this.codeModelResource = codeModelResource; + } + + public String getAlias() { + return alias; + } + + public File getArchitectureModel(ModelFormat modelFormat) { + return switch (modelFormat) { + case PCM -> EvaluationHelper.loadFileFromResources(architectureModelResource); + case UML -> EvaluationHelper.loadFileFromResources(architectureModelResource.replace("/pcm/", "/uml/").replace(".repository", ".uml")); + case ACM, RAW -> throw new IllegalArgumentException("Model format " + modelFormat + " is not supported for this project."); + }; + } + + public File getTextFile() { + return EvaluationHelper.loadFileFromResources(textResource); + } + + /** + * Get the code model for this project. If the code model is stored in an ACM file, it will be loaded from resources. If not, the code will be cloned from + * the repository and the folder will be returned. + * + * @param fromStoredAcmFile whether to load the code model from the stored ACM file or to clone the repository + * @return the acm file if fromStoredAcmFile is true, otherwise the folder containing the code + */ + public File getCodeModel(boolean fromStoredAcmFile) { + if (fromStoredAcmFile) { + return EvaluationHelper.loadFileFromResources(this.codeModelResource); + } + + File codeLocation = getTemporaryCodeLocation(); + if (!codeLocation.exists() || Objects.requireNonNull(codeLocation.listFiles()).length == 0) { + RepositoryHandler.shallowCloneRepository(codeRepository, codeLocation.getAbsolutePath(), codeCommit); + } + return codeLocation; + } + + private File getTemporaryCodeLocation() { + String tmpdir = System.getProperty("java.io.tmpdir"); + var temporary = new File(tmpdir + File.separator + "ArDoCo" + File.separator + this.name()); + logger.debug("Location of Code: {}", temporary.getAbsolutePath()); + temporary.mkdirs(); + return temporary; + } + +} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java new file mode 100644 index 000000000..fd76721b1 --- /dev/null +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java @@ -0,0 +1,24 @@ +/* Licensed under MIT 2025. */ +package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; + +import java.io.Serializable; + +import com.google.errorprone.annotations.Immutable; + +/** + * This record represents expected results for an evaluation + * + * @param precision the expected precision + * @param recall the expected recall + * @param f1 the expected F1 score + * @param accuracy the expected accuracy + * @param phiCoefficient the expected Phi Coefficient + * @param specificity the expected specificity + */ +@Immutable +public record ExpectedResults(double precision, double recall, double f1, double accuracy, double phiCoefficient, double specificity) implements Serializable { + + public ExpectedResults(double precision, double recall, double f1) { + this(precision, recall, f1, .0, .0, .0); + } +} From 628d92fd0ab6751f421ff933bc0ca5847bf7caa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 18 Jul 2025 18:40:25 +0200 Subject: [PATCH 086/115] Add projects to EvaluationProject --- .../mcse/ardoco/core/tests/eval/Project.java | 22 ++++++------ .../tests/evaluation/EvaluationProject.java | 34 ++++++++++++++++++- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java index e525dfd3e..5cb7c14f3 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java @@ -74,17 +74,17 @@ public enum Project implements GoldStandardProject { new ExpectedResults(1.0, .444, .615, .871, .617, 1.0) // ); - private static final Logger logger = LoggerFactory.getLogger(Project.class); - - private final String alias; - private final String model; - private final String textFile; - private final String configurationsFile; - private final String goldStandardTraceabilityLinkRecovery; - private final String goldStandardMissingTextForModelElement; - private final ExpectedResults expectedTraceLinkResults; - private final ExpectedResults expectedInconsistencyResults; - private final SortedSet resourceNames; + public static final Logger logger = LoggerFactory.getLogger(Project.class); + + public final String alias; + public final String model; + public final String textFile; + public final String configurationsFile; + public final String goldStandardTraceabilityLinkRecovery; + public final String goldStandardMissingTextForModelElement; + public final ExpectedResults expectedTraceLinkResults; + public final ExpectedResults expectedInconsistencyResults; + public final SortedSet resourceNames; Project(String alias, String model, String textFile, String goldStandardTraceabilityLinkRecovery, String configurationsFile, String goldStandardMissingTextForModelElement, ExpectedResults expectedTraceLinkResults, ExpectedResults expectedInconsistencyResults) { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java index cf747496a..99a343471 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java @@ -17,7 +17,39 @@ public enum EvaluationProject { "/benchmark/mediastore/text_2016/mediastore.txt", // "https://github.com/ArDoCo/MediaStore3.git", // "94c398fa02b3d6b8d71517522a7206d37ed3a9af", // - "/benchmark/mediastore/model_2016/code/codeModel.acm"); + "/benchmark/mediastore/model_2016/code/codeModel.acm"),// + + TEASTORE(// + "TS", // + "/benchmark/teastore/model_2020/pcm/teastore.repository", // + "/benchmark/teastore/text_2020/teastore.txt", // + "https://github.com/ArDoCo/TeaStore.git", // + "bdc49020a55cfa97eaabbb25744fefbc2697defa", // + "/benchmark/teastore/model_2022/code/codeModel.acm"),// + + TEAMMATES(// + "TM", // + "/benchmark/teammates/model_2021/pcm/teammates.repository", // + "/benchmark/teammates/text_2021/teammates.txt", // + "https://github.com/ArDoCo/teammates.git", // + "b24519a2af9e17b2bc9c025e87e4cf60009c425d", // + "/benchmark/teammates/model_2023/code/codeModel.acm"),// + + BIGBLUEBUTTON(// + "BBB", // + "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // + "/benchmark/bigbluebutton/text_2021/bigbluebutton.txt", // + "https://github.com/ArDoCo/bigbluebutton.git", // + "8fa2507d6c3865a9850004fd6fefd09738e68406", // + "/benchmark/bigbluebutton/model_2023/code/codeModel.acm"), // + + JABREF(// + "JR", // + "/benchmark/jabref/model_2021/pcm/jabref.repository", // + "/benchmark/jabref/text_2021/jabref.txt", // + "https://github.com/ArDoCo/jabref.git", // + "6269698cae437610ec79c38e6dd611eef7e88afe", // + "/benchmark/jabref/model_2023/code/codeModel.acm"); private static final Logger logger = LoggerFactory.getLogger(EvaluationProject.class); From 43446fd0311303869f4b59e517d1f7e15d605aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 18 Jul 2025 19:51:10 +0200 Subject: [PATCH 087/115] Refactor Inconsistency Detection Tests --- .../mcse/ardoco/core/tests/TestUtil.java | 146 ----------- .../ardoco/core/tests/eval/CodeProject.java | 225 ---------------- .../EvaluationHelper.java | 2 +- .../EvaluationProject.java | 19 +- .../{evaluation => eval}/ExpectedResults.java | 2 +- .../ardoco/core/tests/eval/GoldStandard.java | 94 ------- .../core/tests/eval/GoldStandardProject.java | 245 ------------------ .../core/tests/eval/HistoricProject.java | 226 ---------------- .../mcse/ardoco/core/tests/eval/Project.java | 235 ----------------- .../ardoco/core/tests/eval/ProjectHelper.java | 42 --- .../tests/eval/results/EvaluationResults.java | 108 -------- .../tests/eval/results/ExpectedResults.java | 24 -- .../calculator/ResultCalculatorUtil.java | 82 ------ .../core/tests/eval/CodeProjectTest.java | 21 -- .../ardoco/core/tests/eval/ProjectTest.java | 20 -- 15 files changed, 6 insertions(+), 1485 deletions(-) delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java rename tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/{evaluation => eval}/EvaluationHelper.java (95%) rename tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/{evaluation => eval}/EvaluationProject.java (87%) rename tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/{evaluation => eval}/ExpectedResults.java (93%) delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java delete mode 100644 tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java delete mode 100644 tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java delete mode 100644 tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java deleted file mode 100644 index 1762023f0..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/TestUtil.java +++ /dev/null @@ -1,146 +0,0 @@ -/* Licensed under MIT 2021-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests; - -import java.util.Locale; -import java.util.Set; - -import org.eclipse.collections.api.collection.ImmutableCollection; -import org.slf4j.Logger; - -import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.EvaluationResults; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; -import edu.kit.kastel.mcse.ardoco.metrics.ClassificationMetricsCalculator; - -/** - * This utility class provides methods for running the tests, especially regarding the evaluations. - */ -public class TestUtil { - - private TestUtil() { - throw new IllegalAccessError("This constructor should not be called!"); - } - - /** - * compares the tlr results with the expected results and creates a new {@link EvaluationResults}. - * - * @param arDoCoResult the ArDoCoResult - * @param results Collection representing the results - * @param goldStandard Collection representing the gold standard - * @return the result of the comparison - */ - public static EvaluationResults compareTLR(ArDoCoResult arDoCoResult, ImmutableCollection results, ImmutableCollection goldStandard) { - - Set distinctTraceLinks = new java.util.LinkedHashSet<>(results.castToCollection()); - Set distinctGoldStandard = new java.util.LinkedHashSet<>(goldStandard.castToCollection()); - - int sentences = arDoCoResult.getText().getSentences().size(); - int modelElements = 0; - for (var model : arDoCoResult.getMetamodels()) { - modelElements += arDoCoResult.getModelState(model).getEndpoints().size(); - } - - int confusionMatrixSum = sentences * modelElements; - - var calculator = ClassificationMetricsCalculator.getInstance(); - - var classification = calculator.calculateMetrics(distinctTraceLinks, distinctGoldStandard, confusionMatrixSum); - return new EvaluationResults<>(classification); - } - - /** - * compares the inconsistencies results with the expected results and creates a new {@link EvaluationResults}. - * - * @param arDoCoResult the ArDoCoResult - * @param results Collection representing the results - * @param goldStandard Collection representing the gold standard - * @return the result of the comparison - */ - public static EvaluationResults compareInconsistencies(ArDoCoResult arDoCoResult, ImmutableCollection results, - ImmutableCollection goldStandard) { - - Set distinctTraceLinks = new java.util.LinkedHashSet<>(results.castToCollection()); - Set distinctGoldStandard = new java.util.LinkedHashSet<>(goldStandard.castToCollection()); - - int confusionMatrixSum = arDoCoResult.getText().getSentences().size(); - - var calculator = ClassificationMetricsCalculator.getInstance(); - var classification = calculator.calculateMetrics(distinctTraceLinks, distinctGoldStandard, confusionMatrixSum); - return new EvaluationResults<>(classification); - } - - /** - * Log the provided {@link EvaluationResults} using the provided logger and name. The log put out the result string provided by the - * {@link EvaluationResults}. - * - * @param logger Logger to use - * @param name Name to show in the output - * @param results the results - */ - public static void logResults(Logger logger, String name, EvaluationResults results) { - if (logger.isInfoEnabled()) - logger.info(createResultLogString(name, results)); - } - - /** - * Creates a string from the given results that can be used, e.g., for logging. Extracts the name as well as precision, recall and F1-score and displays - * them line by line. - * - * @param name the name that should be displayed - * @param results the results - * @return a String containing the name and the results (precision, recall, F1) line by line - */ - public static String createResultLogString(String name, EvaluationResults results) { - return String.format(Locale.ENGLISH, "%n%s:%n%s", name, results); - } - - /** - * Logs extended results as a row format using the provided logger. - * - * @param logger the logger to use - * @param headerVal the header value - * @param headerKey the header key - * @param results the results to log - */ - public static void logExtendedResultsAsRow(Logger logger, String headerVal, String headerKey, EvaluationResults results) { - var txt = String.format("%n%s", results.toRow(headerVal, headerKey)); - logger.info(txt); - } - - /** - * Log the provided {@link EvaluationResults} using the provided logger and name. Additionally, logs TP, FP, TN and FN used to calculate the metrics. - * - * @param logger Logger to use - * @param name Name to show in the output - * @param results the results - */ - public static void logExplicitResults(Logger logger, String name, EvaluationResults results) { - var tp = results.truePositives().size(); - var fp = results.falsePositives().size(); - var fn = results.falseNegatives().size(); - var precisionDenominator = tp + fp; - var recallDenominator = tp + fn; - var logString = String.format(Locale.ENGLISH, "%n%s:%n\tPrecision:%7d/%d = %.3f%n\tRecall:%10d/%d = %.3f", name, tp, precisionDenominator, results - .precision(), tp, recallDenominator, results.recall()); - logger.info(logString); - } - - /** - * Logs extended results with expected results comparison using the provided logger. - * - * @param logger the logger to use - * @param testClass the test class object - * @param name the name to show in the output - * @param results the results to log - * @param expectedResults the expected results for comparison - */ - public static void logExtendedResultsWithExpected(Logger logger, Object testClass, String name, EvaluationResults results, - ExpectedResults expectedResults) { - var infoString = String.format(Locale.ENGLISH, """ - - %s (%s): - %s""", name, testClass.getClass().getSimpleName(), results.getExtendedResultStringWithExpected(expectedResults)); - logger.info(infoString); - } - -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java deleted file mode 100644 index 316b243ec..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProject.java +++ /dev/null @@ -1,225 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.function.Predicate; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.common.util.TraceLinkUtilities; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; - -/** - * This enum captures the different case studies that are used for evaluation in the integration tests. - */ -public enum CodeProject implements GoldStandardProject { - /** - * @see Project#MEDIASTORE - */ - MEDIASTORE(// - Project.MEDIASTORE, // - "https://github.com/ArDoCo/MediaStore3.git", // - "94c398fa02b3d6b8d71517522a7206d37ed3a9af", // - "/benchmark/mediastore/model_2016/code/codeModel.acm",// - "/benchmark/mediastore/goldstandards/goldstandard_sam_2016-code_2016.csv", // - "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-code_2016.csv", // - new ExpectedResults(.975, .995, .985, .995, .985, .995), // - new ExpectedResults(.995, .515, .675, .990, .715, .999) // - ), - - /** - * @see Project#TEASTORE - */ - TEASTORE(Project.TEASTORE, // - "https://github.com/ArDoCo/TeaStore.git", // - "bdc49020a55cfa97eaabbb25744fefbc2697defa", // - "/benchmark/teastore/model_2022/code/codeModel.acm",// - "/benchmark/teastore/goldstandards/goldstandard_sam_2020-code_2022.csv", // - "/benchmark/teastore/goldstandards/goldstandard_sad_2020-code_2022.csv", // - new ExpectedResults(.975, .975, .975, .997, .965, .999), // - new ExpectedResults(.999, .708, .829, .976, .831, .999) // - ), - - /** - * @see Project#TEAMMATES - */ - TEAMMATES(Project.TEAMMATES, // - "https://github.com/ArDoCo/teammates.git",// - "b24519a2af9e17b2bc9c025e87e4cf60009c425d",// - "/benchmark/teammates/model_2023/code/codeModel.acm",// - "/benchmark/teammates/goldstandards/goldstandard_sam_2021-code_2023.csv",// - "/benchmark/teammates/goldstandards/goldstandard_sad_2021-code_2023.csv", // - new ExpectedResults(.999, .999, .999, .999, .999, .999), // - new ExpectedResults(.705, .909, .795, .975, .785, .975) // - ), - - /** - * @see Project#BIGBLUEBUTTON - */ - BIGBLUEBUTTON(Project.BIGBLUEBUTTON,// - "https://github.com/ArDoCo/bigbluebutton.git",// - "8fa2507d6c3865a9850004fd6fefd09738e68406",// - "/benchmark/bigbluebutton/model_2023/code/codeModel.acm",// - "/benchmark/bigbluebutton/goldstandards/goldstandard_sam_2021-code_2023.csv", // - "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-code_2023.csv", // - new ExpectedResults(.874, .953, .912, .989, .908, .985), // - new ExpectedResults(.765, .905, .835, .985, .825, .985) // - ), - - /** - * @see Project#JABREF - */ - JABREF(Project.JABREF, // - "https://github.com/ArDoCo/jabref.git",// - "6269698cae437610ec79c38e6dd611eef7e88afe",// - "/benchmark/jabref/model_2023/code/codeModel.acm",// - "/benchmark/jabref/goldstandards/goldstandard_sam_2021-code_2023.csv", // - "/benchmark/jabref/goldstandards/goldstandard_sad_2021-code_2023.csv", // - new ExpectedResults(.999, .999, .999, .999, .999, .999), // - new ExpectedResults(.885, .999, .935, .960, .915, .935) // - ); - - private static final Logger logger = LoggerFactory.getLogger(CodeProject.class); - - private final String codeRepository; - private final String commitHash; - private final String codeModelLocationInResources; - private final String samCodeGoldStandardLocation; - private final String sadCodeGoldStandardLocation; - private final Project project; - private final ExpectedResults expectedResultsForSamCode; - private final ExpectedResults expectedResultsForSadSamCode; - private final SortedSet resourceNames; - - CodeProject(Project project, String codeRepository, String commitHash, String codeModelLocationInResources, String samCodeGoldStandardLocation, - String sadCodeGoldStandardLocation, ExpectedResults expectedResultsForSamCode, ExpectedResults expectedResultsForSadSamCode) { - this.project = project; - this.codeRepository = codeRepository; - this.commitHash = commitHash; - this.codeModelLocationInResources = codeModelLocationInResources; - this.samCodeGoldStandardLocation = samCodeGoldStandardLocation; - this.sadCodeGoldStandardLocation = sadCodeGoldStandardLocation; - this.expectedResultsForSamCode = expectedResultsForSamCode; - this.expectedResultsForSadSamCode = expectedResultsForSadSamCode; - SortedSet set = new TreeSet<>(project.getResourceNames()); - set.add(codeModelLocationInResources); - set.add(samCodeGoldStandardLocation); - set.add(sadCodeGoldStandardLocation); - resourceNames = set; - } - - @Override - public String getProjectName() { - return this.name(); - } - - @Override - public SortedSet getResourceNames() { - return new TreeSet<>(resourceNames); - } - - /** - * {@return the link to the code repository of this project} - */ - public String getCodeRepository() { - return codeRepository; - } - - /** - * {@return the commit hash the project is based on} - */ - public String getCommitHash() { - return commitHash; - } - - /** - * Get Code Location (ACM File or Temporary Directory) - * - * @param acmFile If true, the ACM file is loaded from resources - * - */ - public File getCodeLocation(boolean acmFile) { - if (acmFile) { - return ProjectHelper.loadFileFromResources(this.codeModelLocationInResources); - } - - return getTemporaryCodeLocation(); - } - - /** - * {@return the expected results using the software architecture model code} - */ - public ExpectedResults getExpectedResultsForSamCode() { - return expectedResultsForSamCode; - } - - /** - * {@return the expected results using the software architecture model code} - */ - public ExpectedResults getExpectedResultsForSadSamCode() { - return expectedResultsForSadSamCode; - } - - /** - * {@return all trace link strings from the gold standard} - * - * @see TraceLinkUtilities#createTraceLinkString(String, String) - */ - public ImmutableList getSamCodeGoldStandard() { - File samCodeGoldStandardFile = ProjectHelper.loadFileFromResources(samCodeGoldStandardLocation); - List lines = getLinesFromGoldStandardFile(samCodeGoldStandardFile); - - MutableList goldStandard = Lists.mutable.empty(); - for (var line : lines) { - if (line.isBlank()) - continue; - var parts = line.split(","); - String modelElementId = parts[0]; - String codeElementId = parts[2]; - goldStandard.add(TraceLinkUtilities.createTraceLinkString(modelElementId, codeElementId)); - } - goldStandard.removeIf(String::isBlank); - return goldStandard.toImmutable(); - } - - /** - * {@return all lines from the gold standard in csv format} - */ - public ImmutableList getSadCodeGoldStandard() { - File sadCodeGoldStandardFile = ProjectHelper.loadFileFromResources(sadCodeGoldStandardLocation); - List lines = getLinesFromGoldStandardFile(sadCodeGoldStandardFile); - return Lists.immutable.ofAll(lines); - } - - private static List getLinesFromGoldStandardFile(File samCodeGoldStandardFile) { - var path = Paths.get(samCodeGoldStandardFile.toURI()); - List lines = Lists.mutable.empty(); - try { - lines = Files.readAllLines(path); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - lines.removeFirst(); - lines = lines.stream().filter(Predicate.not(String::isBlank)).toList(); - return lines; - } - - private File getTemporaryCodeLocation() { - String tmpdir = System.getProperty("java.io.tmpdir"); - var temporary = new File(tmpdir + File.separator + "ArDoCo" + File.separator + project.name()); - logger.debug("Location of Code: {}", temporary.getAbsolutePath()); - temporary.mkdirs(); - return temporary; - } - -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java similarity index 95% rename from tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java rename to tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java index 3c4cc7a46..1eda08daa 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationHelper.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; +package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; import java.io.FileOutputStream; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java similarity index 87% rename from tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java rename to tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java index 99a343471..3fddeafc4 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; +package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; import java.util.Objects; @@ -12,7 +12,6 @@ public enum EvaluationProject { MEDIASTORE(// - "MS", // "/benchmark/mediastore/model_2016/pcm/ms.repository", // "/benchmark/mediastore/text_2016/mediastore.txt", // "https://github.com/ArDoCo/MediaStore3.git", // @@ -20,7 +19,6 @@ public enum EvaluationProject { "/benchmark/mediastore/model_2016/code/codeModel.acm"),// TEASTORE(// - "TS", // "/benchmark/teastore/model_2020/pcm/teastore.repository", // "/benchmark/teastore/text_2020/teastore.txt", // "https://github.com/ArDoCo/TeaStore.git", // @@ -28,7 +26,6 @@ public enum EvaluationProject { "/benchmark/teastore/model_2022/code/codeModel.acm"),// TEAMMATES(// - "TM", // "/benchmark/teammates/model_2021/pcm/teammates.repository", // "/benchmark/teammates/text_2021/teammates.txt", // "https://github.com/ArDoCo/teammates.git", // @@ -36,7 +33,6 @@ public enum EvaluationProject { "/benchmark/teammates/model_2023/code/codeModel.acm"),// BIGBLUEBUTTON(// - "BBB", // "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // "/benchmark/bigbluebutton/text_2021/bigbluebutton.txt", // "https://github.com/ArDoCo/bigbluebutton.git", // @@ -44,7 +40,6 @@ public enum EvaluationProject { "/benchmark/bigbluebutton/model_2023/code/codeModel.acm"), // JABREF(// - "JR", // "/benchmark/jabref/model_2021/pcm/jabref.repository", // "/benchmark/jabref/text_2021/jabref.txt", // "https://github.com/ArDoCo/jabref.git", // @@ -53,15 +48,13 @@ public enum EvaluationProject { private static final Logger logger = LoggerFactory.getLogger(EvaluationProject.class); - private final String alias; private final String architectureModelResource; private final String textResource; private final String codeRepository; private final String codeCommit; private final String codeModelResource; - EvaluationProject(String alias, String architectureModelResource, String textResource, String codeRepository, String codeCommit, String codeModelResource) { - this.alias = alias; + EvaluationProject(String architectureModelResource, String textResource, String codeRepository, String codeCommit, String codeModelResource) { this.architectureModelResource = architectureModelResource; this.textResource = textResource; this.codeRepository = codeRepository; @@ -69,10 +62,6 @@ public enum EvaluationProject { this.codeModelResource = codeModelResource; } - public String getAlias() { - return alias; - } - public File getArchitectureModel(ModelFormat modelFormat) { return switch (modelFormat) { case PCM -> EvaluationHelper.loadFileFromResources(architectureModelResource); @@ -105,8 +94,8 @@ public File getCodeModel(boolean fromStoredAcmFile) { } private File getTemporaryCodeLocation() { - String tmpdir = System.getProperty("java.io.tmpdir"); - var temporary = new File(tmpdir + File.separator + "ArDoCo" + File.separator + this.name()); + String temp = System.getProperty("java.io.tmpdir"); + var temporary = new File(temp + File.separator + "ArDoCo" + File.separator + this.name()); logger.debug("Location of Code: {}", temporary.getAbsolutePath()); temporary.mkdirs(); return temporary; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java similarity index 93% rename from tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java rename to tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java index fd76721b1..ebccdf290 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/evaluation/ExpectedResults.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.evaluation; +package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.Serializable; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java deleted file mode 100644 index 1cd400845..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandard.java +++ /dev/null @@ -1,94 +0,0 @@ -/* Licensed under MIT 2021-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.Scanner; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; - -/** - * Represents a gold standard for evaluation, containing mappings between sentences and architecture elements. - */ -public class GoldStandard { - private final Logger logger = LoggerFactory.getLogger(GoldStandard.class); - - private final File goldStandard; - private final ArchitectureComponentModel model; - - private final MutableList> sentence2instance = Lists.mutable.empty(); - - /** - * Creates a new gold standard from a file and an architecture component model. - * - * @param goldStandard the file containing the gold standard data - * @param model the architecture component model - */ - public GoldStandard(File goldStandard, ArchitectureComponentModel model) { - this.goldStandard = goldStandard; - this.model = model; - this.load(); - } - - private void load() { - try (Scanner scan = new Scanner(this.goldStandard, StandardCharsets.UTF_8)) { - while (scan.hasNextLine()) { - String line = scan.nextLine(); - if (line == null || line.isBlank() || line.startsWith("modelElement") || line.contains("modelElementID")) { - // continue if line is empty, null, or is the header (that starts with "modelElementID") - continue; - } - - String[] idXline = line.strip().split(",", -1); - ArchitectureItem instance = Lists.immutable.withAll(this.model.getContent()).select(i -> i.getId().equals(idXline[0])).getFirst(); - if (instance == null) { - System.err.println("No instance found for id \"" + idXline[0] + "\""); - continue; - } - int sentence = Integer.parseInt(idXline[1]); - while (this.sentence2instance.size() <= sentence) { - this.sentence2instance.add(Lists.mutable.empty()); - } - this.sentence2instance.get(sentence).add(instance); - } - } catch (IOException e) { - this.logger.warn(e.getMessage(), e.getCause()); - } - } - - /** - * Gets the model instances associated with a specific sentence number. - * - * @param sentenceNo the sentence number (index starts at 1) - * @return the list of architecture items associated with the sentence - */ - public ImmutableList getModelInstances(int sentenceNo) { - // Index starts at 1 - return this.sentence2instance.get(sentenceNo).toImmutable(); - } - - /** - * Gets all sentence numbers that contain the specified architecture element. - * - * @param elem the architecture element to search for - * @return the list of sentence numbers containing the element - */ - public ImmutableList getSentencesWithElement(ArchitectureItem elem) { - MutableList sentences = Lists.mutable.empty(); - for (int i = 0; i < this.sentence2instance.size(); i++) { - var instances = this.sentence2instance.get(i); - if (instances.anySatisfy(e -> e.getId().equals(elem.getId()))) { - sentences.add(i); - } - } - return sentences.toImmutable(); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java deleted file mode 100644 index 73a00aff9..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/GoldStandardProject.java +++ /dev/null @@ -1,245 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.IOException; -import java.util.MissingResourceException; -import java.util.Objects; -import java.util.Optional; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.prefs.Preferences; - -import org.apache.commons.codec.digest.DigestUtils; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; - -/** - * Interface for all Project extensions - */ -public interface GoldStandardProject { - /** - * {@return the project the instance is based on} - */ - String getProjectName(); - - /** - * {@return the name of all resources associated with instances relative to the class} - */ - SortedSet getResourceNames(); - - /** - * {@return the version of the source files of this project} - */ - default long getSourceFilesVersion() { - this.getResourceNames().forEach(this::validateResourceChecksum); - return Preferences.userNodeForPackage(getClass()).getLong("version", -1L); - } - - /** - * Calculates an MD5 checksum for the resource at the given path. Will bump the source files version if the checksum doesn't match. - * - * @param resourceName the resource relative to the class - * @return true, if the checksum matches, false otherwise - * @see #getSourceFilesVersion() - */ - private boolean validateResourceChecksum(String resourceName) { - var cls = getClass(); - var logger = LoggerFactory.getLogger(cls); - try (var resource = cls.getResourceAsStream(resourceName)) { - if (resource == null) { - throw new MissingResourceException("No such resource at path " + resourceName, File.class.getSimpleName(), resourceName); - } - String md5 = DigestUtils.md5Hex(resource); - if (!Objects.equals(Preferences.userNodeForPackage(cls).get(resourceName, null), md5)) { - Preferences.userNodeForPackage(cls).put(resourceName, md5); - Preferences.userNodeForPackage(cls).putLong("version", System.currentTimeMillis()); - logger.info("Checksum for source file {} doesn't match", resourceName); - return false; - } - logger.info("Checksum for source file {} matches", resourceName); - return true; - } catch (IOException e) { - logger.error("Couldn't calculate checksum for resource at {}", resourceName, e); - return false; - } - } - - /** - * {@return the project alias} - */ - default String getAlias() { - return this.getProjectOrThrow().getAlias(); - } - - /** - * Returns the File that represents the model for this project. - * - * @return the File that represents the model for this project - */ - default File getModelFile() { - return this.getProjectOrThrow().getModelFile(); - } - - /** - * {@return the resource name that represents the model for this project} - */ - default String getModelResourceName() { - return this.getProjectOrThrow().getModelResourceName(); - } - - /** - * Returns the File that represents the model for this project with the given model type. - * - * @param modelType the model type - * @return the File that represents the model for this project - */ - default File getModelFile(ModelFormat modelType) { - return this.getProjectOrThrow().getModelFile(modelType); - } - - /** - * {@return the resource name that represents the model for this project with the given model type} - * - * @param modelType the model type - */ - default String getModelResourceName(ModelFormat modelType) { - return this.getProjectOrThrow().getModelResourceName(modelType); - } - - /** - * Returns the File that represents the text for this project. - * - * @return the File that represents the text for this project - */ - default File getTextFile() { - return this.getProjectOrThrow().getTextFile(); - } - - /** - * {@return the resource name that represents the text for this project} - */ - default String getTextResourceName() { - return this.getProjectOrThrow().getTextResourceName(); - } - - /** - * Return the map of additional configuration options - * - * @return the map of additional configuration options - */ - default SortedMap getAdditionalConfigurations() { - return this.getProjectOrThrow().getAdditionalConfigurations(); - } - - /** - * Returns a {@link File} that points to the text file containing additional configurations - * - * @return the file for additional configurations - */ - default File getAdditionalConfigurationsFile() { - return this.getProjectOrThrow().getAdditionalConfigurationsFile(); - } - - /** - * {@return the resource name that represents the additional configurations for this project} - */ - default String getAdditionalConfigurationsResourceName() { - return this.getProjectOrThrow().getAdditionalConfigurationsResourceName(); - } - - /** - * Returns the {@link GoldStandard} for this project. - * - * @return the File that represents the gold standard for this project - */ - default File getTlrGoldStandardFile() { - return this.getProjectOrThrow().getTlrGoldStandardFile(); - } - - /** - * {@return the resource name that represents the TLR {@link GoldStandard} for this project} - */ - default String getTlrGoldStandardResourceName() { - return this.getProjectOrThrow().getTlrGoldStandardResourceName(); - } - - /** - * Returns a string-list of entries as goldstandard for TLR for this project. - * - * @return a list with the entries of the goldstandard for TLR - */ - default ImmutableList getTlrGoldStandard() { - return this.getProjectOrThrow().getTlrGoldStandard(); - } - - /** - * Returns the {@link GoldStandard} for this project for the given model connector. - * - * @param architectureComponentModel the model - * @return the {@link GoldStandard} for this project - */ - default GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { - return this.getProjectOrThrow().getTlrGoldStandard(architectureComponentModel); - } - - default MutableList getMissingTextForModelElementGoldStandard() { - return this.getProjectOrThrow().getMissingTextForModelElementGoldStandard(); - } - - /** - * {@return the {@link GoldStandard} for this project} - */ - default File getMissingTextForModelElementGoldStandardFile() { - return this.getProjectOrThrow().getMissingTextForModelElementGoldStandardFile(); - } - - /** - * {@return the resource name that represents the MME {@link GoldStandard} for this project} - */ - default String getMissingTextForModelElementGoldStandardResourceName() { - return this.getProjectOrThrow().getMissingTextForModelElementGoldStandardResourceName(); - } - - /** - * {@return the expected results for Traceability Link Recovery} - */ - default ExpectedResults getExpectedTraceLinkResults() { - return this.getProjectOrThrow().getExpectedTraceLinkResults(); - } - - /** - * {@return the expected results for Inconsistency Detection} - */ - default ExpectedResults getExpectedInconsistencyResults() { - return this.getProjectOrThrow().getExpectedInconsistencyResults(); - } - - /** - * Private so the project doesn't get passed around directly, defeating the purpose of making it extensible - * - * @return the project this instance belongs to - */ - private Project getProjectOrThrow() { - return this.getFromName().orElseThrow(); - } - - /** - * Returns an {@link Optional} containing the project that has a name that equals the given name, ignoring case. - * - * @return the Optional containing the project with the given name or is empty if no such is found. - */ - private Optional getFromName() { - for (Project project : Project.values()) { - if (project.name().equalsIgnoreCase(this.getProjectName())) { - return Optional.of(project); - } - } - return Optional.empty(); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java deleted file mode 100644 index 2e7a31c0f..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/HistoricProject.java +++ /dev/null @@ -1,226 +0,0 @@ -/* Licensed under MIT 2021-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; -import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; - -/** - * This enum captures the different case studies that are used for evaluation in the integration tests (only historic versions). - */ -public enum HistoricProject implements GoldStandardProject { - TEASTORE_HISTORICAL( // - "TS-H", // - "/benchmark/teastore/model_2020/pcm/teastore.repository", // - "/benchmark/teastore/text_2018/teastore_2018_AB.txt", // - "/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB.csv", // - "/configurations/ts/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/teastore/goldstandards/goldstandard_sad_2018-sam_2020_AB_UME.csv", // - new ExpectedResults(.999, .740, .850, .984, .853, .999), // - new ExpectedResults(.082, .983, .153, .332, .147, .291) // - ), // - TEAMMATES_HISTORICAL( // - "TM-H", // - "/benchmark/teammates/model_2021/pcm/teammates.repository", // - "/benchmark/teammates/text_2015/teammates_2015.txt", // - "/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021.csv", // - "/configurations/tm/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/teammates/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv", // - new ExpectedResults(.524, .695, .597, .970, .589, .979), // - new ExpectedResults(.161, .695, .262, .878, .295, .884) // - ), // - BIGBLUEBUTTON_HISTORICAL( // - "BBB-H", "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // - "/benchmark/bigbluebutton/text_2015/bigbluebutton_2015.txt", // - "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021.csv", // - "/configurations/bbb/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2015-sam_2021_UME.csv", // - new ExpectedResults(.807, .617, .699, .978, .695, .993), // - new ExpectedResults(.048, .176, .076, .829, .018, .857) // - ), // - - JABREF_HISTORICAL( // - "JR-H", "/benchmark/jabref/model_2021/pcm/jabref.repository", // - "/benchmark/jabref/text_2016/jabref_2016.txt", // - "/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021.csv", // - "/configurations/jabref/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/jabref/goldstandards/goldstandard_sad_2016-sam_2021_UME.csv", // - new ExpectedResults(.817, .999, .899, .966, .886, .960), // - new ExpectedResults(.083, .111, .095, .683, -0.094, .784) // - ); - - private static final Logger logger = LoggerFactory.getLogger(HistoricProject.class); - - private final String alias; - private final String model; - private final String textFile; - private final String configurationsFile; - private final String goldStandardTraceabilityLinkRecovery; - private final String goldStandardMissingTextForModelElement; - private final ExpectedResults expectedTraceLinkResults; - private final ExpectedResults expectedInconsistencyResults; - private final SortedSet resourceNames; - - HistoricProject(String alias, String model, String textFile, String goldStandardTraceabilityLinkRecovery, String configurationsFile, - String goldStandardMissingTextForModelElement, ExpectedResults expectedTraceLinkResults, ExpectedResults expectedInconsistencyResults) { - this.alias = alias; - this.model = model; - this.textFile = textFile; - this.configurationsFile = configurationsFile; - this.goldStandardTraceabilityLinkRecovery = goldStandardTraceabilityLinkRecovery; - this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; - this.expectedTraceLinkResults = expectedTraceLinkResults; - this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, - goldStandardMissingTextForModelElement)); - } - - @Override - public String getAlias() { - return alias; - } - - @Override - public File getModelFile() { - return ProjectHelper.loadFileFromResources(model); - } - - @Override - public String getModelResourceName() { - return model; - } - - @Override - public File getModelFile(ModelFormat modelType) { - return switch (modelType) { - case PCM -> getModelFile(); - case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); - case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); - case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); - }; - } - - @Override - public String getModelResourceName(ModelFormat modelType) { - return switch (modelType) { - case PCM -> model; - case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); - case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); - case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); - }; - } - - @Override - public File getTextFile() { - return ProjectHelper.loadFileFromResources(textFile); - } - - @Override - public String getTextResourceName() { - return textFile; - } - - @Override - public SortedMap getAdditionalConfigurations() { - return ConfigurationHelper.loadAdditionalConfigs(getAdditionalConfigurationsFile()); - } - - @Override - public File getAdditionalConfigurationsFile() { - return ProjectHelper.loadFileFromResources(this.configurationsFile); - } - - @Override - public String getAdditionalConfigurationsResourceName() { - return configurationsFile; - } - - @Override - public File getTlrGoldStandardFile() { - return ProjectHelper.loadFileFromResources(goldStandardTraceabilityLinkRecovery); - } - - @Override - public String getTlrGoldStandardResourceName() { - return goldStandardTraceabilityLinkRecovery; - } - - @Override - public ImmutableList getTlrGoldStandard() { - var path = Paths.get(this.getTlrGoldStandardFile().toURI()); - List goldLinks = Lists.mutable.empty(); - try { - goldLinks = Files.readAllLines(path); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - goldLinks.removeFirst(); - goldLinks.removeIf(String::isBlank); - return Lists.immutable.ofAll(goldLinks); - } - - @Override - public GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { - return new GoldStandard(getTlrGoldStandardFile(), architectureComponentModel); - } - - @Override - public MutableList getMissingTextForModelElementGoldStandard() { - var path = Paths.get(this.getMissingTextForModelElementGoldStandardFile().toURI()); - List goldLinks = Lists.mutable.empty(); - try { - goldLinks = Files.readAllLines(path); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - goldLinks.remove("missingModelElementID"); - goldLinks.removeIf(String::isBlank); - return Lists.mutable.ofAll(goldLinks); - } - - @Override - public File getMissingTextForModelElementGoldStandardFile() { - return ProjectHelper.loadFileFromResources(goldStandardMissingTextForModelElement); - } - - @Override - public String getMissingTextForModelElementGoldStandardResourceName() { - return goldStandardMissingTextForModelElement; - } - - @Override - public ExpectedResults getExpectedTraceLinkResults() { - return expectedTraceLinkResults; - } - - @Override - public ExpectedResults getExpectedInconsistencyResults() { - return expectedInconsistencyResults; - } - - @Override - public String getProjectName() { - return this.name(); - } - - @Override - public SortedSet getResourceNames() { - return new TreeSet<>(resourceNames); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java deleted file mode 100644 index 5cb7c14f3..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/Project.java +++ /dev/null @@ -1,235 +0,0 @@ -/* Licensed under MIT 2021-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeSet; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.ArchitectureComponentModel; -import edu.kit.kastel.mcse.ardoco.core.execution.ConfigurationHelper; -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.ExpectedResults; - -/** - * This enum captures the different case studies that are used for evaluation in the integration tests. - */ -public enum Project implements GoldStandardProject { - MEDIASTORE(// - "MS", // - "/benchmark/mediastore/model_2016/pcm/ms.repository", // - "/benchmark/mediastore/text_2016/mediastore.txt", // - "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016.csv", // - "/configurations/ms/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/mediastore/goldstandards/goldstandard_sad_2016-sam_2016_UME.csv", // - new ExpectedResults(.999, .620, .765, .978, .778, .999), // - new ExpectedResults(.127, .793, .220, .685, .227, .679) // - ), // - TEASTORE( // - "TS", // - "/benchmark/teastore/model_2020/pcm/teastore.repository", // - "/benchmark/teastore/text_2020/teastore.txt", // - "/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020.csv", // - "/configurations/ts/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/teastore/goldstandards/goldstandard_sad_2020-sam_2020_UME.csv", // - new ExpectedResults(.999, .740, .850, .984, .853, .999), // - new ExpectedResults(.950, .703, .808, .980, .808, .998) // - ), // - TEAMMATES( // - "TM", // - "/benchmark/teammates/model_2021/pcm/teammates.repository", // - "/benchmark/teammates/text_2021/teammates.txt", // - "/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021.csv", // - "/configurations/tm/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/teammates/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // - new ExpectedResults(.555, .882, .681, .965, .688, .975), // - new ExpectedResults(.147, .745, .245, .852, .287, .856) // - ), // - BIGBLUEBUTTON( // - "BBB", "/benchmark/bigbluebutton/model_2021/pcm/bbb.repository", // - "/benchmark/bigbluebutton/text_2021/bigbluebutton.txt", // - "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021.csv", // - "/configurations/bbb/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/bigbluebutton/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // - new ExpectedResults(.875, .826, .850, .985, .835, .985), // - new ExpectedResults(.666, .461, .545, .960, .535, .988) // - ), // - JABREF( // - "JR", "/benchmark/jabref/model_2021/pcm/jabref.repository", // - "/benchmark/jabref/text_2021/jabref.txt", // - "/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021.csv", // - "/configurations/jabref/filterlists_all.txt", // options: filterlists_none.txt, filterlists_onlyCommon.txt, filterlists_all.txt - "/benchmark/jabref/goldstandards/goldstandard_sad_2021-sam_2021_UME.csv", // - new ExpectedResults(.899, .999, .946, .973, .932, .966), // - new ExpectedResults(1.0, .444, .615, .871, .617, 1.0) // - ); - - public static final Logger logger = LoggerFactory.getLogger(Project.class); - - public final String alias; - public final String model; - public final String textFile; - public final String configurationsFile; - public final String goldStandardTraceabilityLinkRecovery; - public final String goldStandardMissingTextForModelElement; - public final ExpectedResults expectedTraceLinkResults; - public final ExpectedResults expectedInconsistencyResults; - public final SortedSet resourceNames; - - Project(String alias, String model, String textFile, String goldStandardTraceabilityLinkRecovery, String configurationsFile, - String goldStandardMissingTextForModelElement, ExpectedResults expectedTraceLinkResults, ExpectedResults expectedInconsistencyResults) { - this.alias = alias; - this.model = model; - this.textFile = textFile; - this.configurationsFile = configurationsFile; - this.goldStandardTraceabilityLinkRecovery = goldStandardTraceabilityLinkRecovery; - this.goldStandardMissingTextForModelElement = goldStandardMissingTextForModelElement; - this.expectedTraceLinkResults = expectedTraceLinkResults; - this.expectedInconsistencyResults = expectedInconsistencyResults; - resourceNames = new TreeSet<>(List.of(model, textFile, goldStandardTraceabilityLinkRecovery, configurationsFile, - goldStandardMissingTextForModelElement)); - } - - @Override - public String getAlias() { - return alias; - } - - @Override - public File getModelFile() { - return ProjectHelper.loadFileFromResources(model); - } - - @Override - public String getModelResourceName() { - return model; - } - - @Override - public File getModelFile(ModelFormat modelType) { - return switch (modelType) { - case PCM -> getModelFile(); - case UML -> ProjectHelper.loadFileFromResources(model.replace("/pcm/", "/uml/").replace(".repository", ".uml")); - case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); - case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); - }; - } - - @Override - public String getModelResourceName(ModelFormat modelType) { - return switch (modelType) { - case PCM -> model; - case UML -> model.replace("/pcm/", "/uml/").replace(".repository", ".uml"); - case RAW -> throw new IllegalArgumentException("Raw model is not supported for this project."); - case ACM -> throw new IllegalArgumentException("ACM model is not supported for this project."); - }; - } - - @Override - public File getTextFile() { - return ProjectHelper.loadFileFromResources(textFile); - } - - @Override - public String getTextResourceName() { - return textFile; - } - - @Override - public SortedMap getAdditionalConfigurations() { - return ConfigurationHelper.loadAdditionalConfigs(getAdditionalConfigurationsFile()); - } - - @Override - public File getAdditionalConfigurationsFile() { - return ProjectHelper.loadFileFromResources(this.configurationsFile); - } - - @Override - public String getAdditionalConfigurationsResourceName() { - return configurationsFile; - } - - @Override - public File getTlrGoldStandardFile() { - return ProjectHelper.loadFileFromResources(goldStandardTraceabilityLinkRecovery); - } - - @Override - public String getTlrGoldStandardResourceName() { - return goldStandardTraceabilityLinkRecovery; - } - - @Override - public ImmutableList getTlrGoldStandard() { - var path = Paths.get(this.getTlrGoldStandardFile().toURI()); - List goldLinks = Lists.mutable.empty(); - try { - goldLinks = Files.readAllLines(path); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - goldLinks.removeFirst(); - goldLinks.removeIf(String::isBlank); - return Lists.immutable.ofAll(goldLinks); - } - - @Override - public GoldStandard getTlrGoldStandard(ArchitectureComponentModel architectureComponentModel) { - return new GoldStandard(getTlrGoldStandardFile(), architectureComponentModel); - } - - @Override - public MutableList getMissingTextForModelElementGoldStandard() { - var path = Paths.get(this.getMissingTextForModelElementGoldStandardFile().toURI()); - List goldLinks = Lists.mutable.empty(); - try { - goldLinks = Files.readAllLines(path); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - goldLinks.remove("missingModelElementID"); - goldLinks.removeIf(String::isBlank); - return Lists.mutable.ofAll(goldLinks); - } - - @Override - public File getMissingTextForModelElementGoldStandardFile() { - return ProjectHelper.loadFileFromResources(goldStandardMissingTextForModelElement); - } - - @Override - public String getMissingTextForModelElementGoldStandardResourceName() { - return goldStandardMissingTextForModelElement; - } - - @Override - public ExpectedResults getExpectedTraceLinkResults() { - return expectedTraceLinkResults; - } - - @Override - public ExpectedResults getExpectedInconsistencyResults() { - return expectedInconsistencyResults; - } - - @Override - public String getProjectName() { - return this.name(); - } - - @Override - public SortedSet getResourceNames() { - return new TreeSet<>(resourceNames); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java deleted file mode 100644 index 009099a68..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectHelper.java +++ /dev/null @@ -1,42 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.UncheckedIOException; - -/** - * Helper class for {@link GoldStandardProject} implementations. - */ -public class ProjectHelper { - - private ProjectHelper() { - throw new IllegalAccessError(); - } - - /** - * Load a resource to a temporary file - * - * @param resource the resource path - * @return the file if loaded or null if not possible - */ - public static File loadFileFromResources(String resource) { - InputStream is = ProjectHelper.class.getResourceAsStream(resource); - if (is == null) - throw new IllegalArgumentException("Resource not found: " + resource); - try { - File temporaryFile = File.createTempFile("ArDoCo", ".tmp"); - temporaryFile.deleteOnExit(); - try (FileOutputStream fos = new FileOutputStream(temporaryFile)) { - try (is) { - is.transferTo(fos); - } - } - return temporaryFile; - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java deleted file mode 100644 index 83128e578..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/EvaluationResults.java +++ /dev/null @@ -1,108 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval.results; - -import java.util.List; -import java.util.Locale; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; - -import edu.kit.kastel.mcse.ardoco.metrics.result.SingleClassificationResult; - -public record EvaluationResults(SingleClassificationResult classificationResult) { - - public String toRow() { - return String.format(Locale.ENGLISH, """ - %4s & %4s & %4s & %4s & %4s & %4s & %4s - %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f""", "P", "R", "F1", "Acc", "Spec", "Phi", "PhiN", precision(), recall(), f1(), accuracy(), - specificity(), phiCoefficient(), phiOverPhiMax()); - } - - public String toRow(String headerKey, String headerVal) { - return String.format(Locale.ENGLISH, """ - %10s & %4s & %4s & %4s & %4s & %4s & %4s & %4s - %10s & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f & %4.2f""", headerKey, "P", "R", "F1", "Acc", "Spec", "Phi", "PhiN", headerVal, - precision(), recall(), f1(), accuracy(), specificity(), phiCoefficient(), phiOverPhiMax()); - } - - @Override - public String toString() { - return String.format(Locale.ENGLISH, """ - \tPrecision:%8.2f - \tRecall:%11.2f - \tF1:%15.2f - \tAccuracy:%9.2f - \tSpecificity:%6.2f - \tPhi Coef.:%8.2f - \tPhi/PhiMax:%7.2f (Phi Max: %.2f) - %s""", precision(), recall(), f1(), accuracy(), specificity(), phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow()); - } - - public String getExtendedResultStringWithExpected(ExpectedResults expectedResults) { - return String.format(Locale.ENGLISH, """ - \tPrecision:%8.2f (min. expected: %.2f) - \tRecall:%11.2f (min. expected: %.2f) - \tF1:%15.2f (min. expected: %.2f)""", precision(), expectedResults.precision(), recall(), expectedResults.recall(), f1(), expectedResults - .f1()) + String.format(Locale.ENGLISH, """ - - \tAccuracy:%9.2f (min. expected: %.2f) - \tSpecificity:%6.2f (min. expected: %.2f)""", accuracy(), expectedResults.accuracy(), specificity(), expectedResults - .specificity()) + String.format(Locale.ENGLISH, """ - - \tPhi Coef.:%8.2f (min. expected: %.2f) - \tPhi/PhiMax:%7.2f (Phi Max: %.2f) - %s""", phiCoefficient(), expectedResults.phiCoefficient(), phiOverPhiMax(), phiCoefficientMax(), toRow()); - } - - public ImmutableList getFound() { - MutableList found = Lists.mutable.empty(); - found.addAll(classificationResult.getTruePositives()); - found.addAll(classificationResult.getFalsePositives()); - return found.toImmutable(); - } - - public double precision() { - return classificationResult.getPrecision(); - } - - public double recall() { - return classificationResult.getRecall(); - } - - public double f1() { - return classificationResult.getF1(); - } - - public double accuracy() { - return classificationResult.getAccuracy(); - } - - public double specificity() { - return classificationResult.getSpecificity(); - } - - public double phiCoefficient() { - return classificationResult.getPhiCoefficient(); - } - - public double phiOverPhiMax() { - return classificationResult.getPhiOverPhiMax(); - } - - public double phiCoefficientMax() { - return classificationResult.getPhiCoefficientMax(); - } - - public List truePositives() { - return classificationResult.getTruePositives().stream().toList(); - } - - public List falsePositives() { - return classificationResult.getFalsePositives().stream().toList(); - } - - public List falseNegatives() { - return classificationResult.getFalseNegatives().stream().toList(); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java deleted file mode 100644 index 37d2c6dfe..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/ExpectedResults.java +++ /dev/null @@ -1,24 +0,0 @@ -/* Licensed under MIT 2022-2024. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval.results; - -import java.io.Serializable; - -import com.google.errorprone.annotations.Immutable; - -/** - * This record represents expected results for an evaluation - * - * @param precision the expected precision - * @param recall the expected recall - * @param f1 the expected F1 score - * @param accuracy the expected accuracy - * @param phiCoefficient the expected Phi Coefficient - * @param specificity the expected specificity - */ -@Immutable -public record ExpectedResults(double precision, double recall, double f1, double accuracy, double phiCoefficient, double specificity) implements Serializable { - - public ExpectedResults(double precision, double recall, double f1) { - this(precision, recall, f1, .0, .0, .0); - } -} diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java deleted file mode 100644 index c617c1ee2..000000000 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/results/calculator/ResultCalculatorUtil.java +++ /dev/null @@ -1,82 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval.results.calculator; - -import java.util.List; - -import org.eclipse.collections.api.factory.Sets; -import org.eclipse.collections.api.list.ImmutableList; - -import edu.kit.kastel.mcse.ardoco.core.tests.eval.results.EvaluationResults; -import edu.kit.kastel.mcse.ardoco.metrics.ClassificationMetricsCalculator; -import edu.kit.kastel.mcse.ardoco.metrics.result.AggregatedClassificationResult; -import edu.kit.kastel.mcse.ardoco.metrics.result.AggregationType; -import edu.kit.kastel.mcse.ardoco.metrics.result.SingleClassificationResult; - -/** - * This utility class provides methods to form the average of several {@link EvaluationResults} - */ -public final class ResultCalculatorUtil { - - private ResultCalculatorUtil() { - throw new IllegalAccessError(); - } - - /** - * Calculates the macro average of multiple evaluation results. - * - * @param results the list of evaluation results to average - * @return the macro average evaluation results - */ - public static EvaluationResults calculateMacroAverageResults(ImmutableList> results) { - var averages = getAverages(results); - - var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.MACRO_AVERAGE).findFirst().orElseThrow(); - return evaluationResults(macroAverage); - } - - /** - * Calculates the weighted average of multiple evaluation results. - * - * @param results the list of evaluation results to average - * @return the weighted average evaluation results - */ - public static EvaluationResults calculateWeightedAverageResults(ImmutableList> results) { - var averages = getAverages(results); - - var macroAverage = averages.stream().filter(it -> it.getType() == AggregationType.WEIGHTED_AVERAGE).findFirst().orElseThrow(); - return evaluationResults(macroAverage); - } - - /** - * Calculates the micro average of multiple evaluation results. - * - * @param results the list of evaluation results to average - * @return the micro average evaluation results - */ - public static EvaluationResults calculateMicroAverageResults(ImmutableList> results) { - var averages = getAverages(results); - - var microAverage = averages.stream().filter(it -> it.getType() == AggregationType.MICRO_AVERAGE).findFirst().orElseThrow(); - return evaluationResults(microAverage); - } - - private static EvaluationResults evaluationResults(AggregatedClassificationResult average) { - var weightedAverageAsSingle = new SingleClassificationResult(Sets.mutable.empty(), Sets.mutable.empty(), Sets.mutable.empty(), null, average - .getPrecision(), average.getRecall(), average.getF1(), average.getAccuracy(), average.getSpecificity(), average.getPhiCoefficient(), average - .getPhiCoefficientMax(), average.getPhiOverPhiMax()); - - return new EvaluationResults<>(weightedAverageAsSingle); - } - - private static List getAverages(ImmutableList> results) { - if (results.isEmpty()) { - throw new IllegalArgumentException("No results to calculate average from"); - } - - var calculator = ClassificationMetricsCalculator.getInstance(); - var classifications = results.stream().map(EvaluationResults::classificationResult).toList(); - - return calculator.calculateAverages(classifications, null); - } - -} diff --git a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java deleted file mode 100644 index dbe3c76eb..000000000 --- a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/CodeProjectTest.java +++ /dev/null @@ -1,21 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.EnumSource; - -class CodeProjectTest { - @EnumSource(CodeProject.class) - @ParameterizedTest(name = "{0}") - void testFiles(CodeProject project) { - Assertions.assertNotNull(project); - Assertions.assertNotNull(project.getCodeRepository()); - Assertions.assertNotNull(project.getCommitHash()); - Assertions.assertNotNull(project.getCodeLocation(true)); - Assertions.assertNotNull(project.getExpectedResultsForSamCode()); - Assertions.assertNotNull(project.getExpectedResultsForSadSamCode()); - Assertions.assertNotNull(project.getSamCodeGoldStandard()); - Assertions.assertNotNull(project.getSadCodeGoldStandard()); - } -} diff --git a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java b/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java deleted file mode 100644 index 2776ef41c..000000000 --- a/tests-base/src/test/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ProjectTest.java +++ /dev/null @@ -1,20 +0,0 @@ -/* Licensed under MIT 2023-2024. */ -package edu.kit.kastel.mcse.ardoco.core.tests.eval; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.EnumSource; - -class ProjectTest { - - @EnumSource(Project.class) - @ParameterizedTest(name = "{0}") - void testFiles(Project project) { - Assertions.assertNotNull(project.getModelFile()); - Assertions.assertNotNull(project.getTextFile()); - Assertions.assertNotNull(project.getTlrGoldStandard()); - Assertions.assertNotNull(project.getMissingTextForModelElementGoldStandard()); - Assertions.assertNotNull(project.getExpectedTraceLinkResults()); - Assertions.assertNotNull(project.getExpectedInconsistencyResults()); - } -} From febde85310b5639cb3f78a4e62b6f05130a6a0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Fri, 18 Jul 2025 20:19:37 +0200 Subject: [PATCH 088/115] Cleanup code --- .../mcse/ardoco/core/api/InputTextData.java | 1 + .../api/stage/textextraction/TextState.java | 4 --- .../core/common/AggregationFunctions.java | 2 +- .../common/util/CommonTextToolsConfig.java | 6 ++--- .../core/common/util/CommonUtilities.java | 8 +++--- .../mcse/ardoco/core/data/Confidence.java | 12 --------- .../ardoco/core/api/output/ArDoCoResult.java | 26 ------------------- .../execution/runner/AnonymousRunner.java | 9 ++----- .../core/tests/eval/ExpectedResults.java | 7 ----- 9 files changed, 11 insertions(+), 64 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java index 6ca7510d5..eb043da65 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/InputTextData.java @@ -8,6 +8,7 @@ /** * Container for input text data to be used as {@link PipelineStepData} in the pipeline. */ +@SuppressWarnings({ "ClassCanBeRecord", "java:S6206" }) public final class InputTextData implements PipelineStepData { @Serial diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java index ea407a754..f2d372ce9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/textextraction/TextState.java @@ -3,8 +3,6 @@ import org.eclipse.collections.api.block.predicate.Predicate; import org.eclipse.collections.api.list.ImmutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.configuration.IConfigurable; @@ -15,8 +13,6 @@ * Represents the state of text extraction, including noun and phrase mappings. */ public interface TextState extends IConfigurable, PipelineStepData { - Logger logger = LoggerFactory.getLogger(TextState.class); - String ID = "TextState"; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java index a91706a5c..1ce9ca031 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java @@ -30,7 +30,7 @@ public enum AggregationFunctions implements ToDoubleFunction { var squaredValuesSum = s.stream().mapToDouble(d -> Math.pow(d, 2)).sum(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java index 15d1bf41d..d3d71df2e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java @@ -12,7 +12,7 @@ private CommonTextToolsConfig() { throw new IllegalAccessError(); } - private static final ResourceAccessor CONFIG = loadParameters("/configs/CommonTextToolsConfig.properties"); + private static final ResourceAccessor CONFIG = loadParameters(); /** * List of separators used for containing by a word in SimilarityUtils. @@ -97,8 +97,8 @@ private CommonTextToolsConfig() { */ public static final String GLOVE_DB_FILE_PATH = CONFIG.getProperty("glove_DatabaseFilePath"); - private static ResourceAccessor loadParameters(String filePath) { - return new ResourceAccessor(filePath, true); + private static ResourceAccessor loadParameters() { + return new ResourceAccessor("/configs/CommonTextToolsConfig.properties", true); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 90d16c4f9..4e307524c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -100,21 +100,21 @@ public static double harmonicMean(List values) { } /** - * Calculates the root mean square between two given values. + * Calculates the root-mean-square between two given values. * * @param first the first value * @param second the second value - * @return the root mean square of the given values + * @return the root-mean-square of the given values */ public static double rootMeanSquare(double first, double second) { return Math.sqrt((Math.pow(first, 2) + Math.pow(second, 2)) / 2); } /** - * Calculates the root mean square between the given values. + * Calculates the root-mean-square between the given values. * * @param values List of doubles that should be used to calculate their mean - * @return the root mean square of the given values + * @return the root-mean-square of the given values */ public static double rootMeanSquare(List values) { var squaredValuesSum = values.stream().mapToDouble(d -> Math.pow(d, 2)).sum(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java index e7bf685fc..55b4363d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/Confidence.java @@ -40,18 +40,6 @@ public Confidence(AggregationFunctions confidenceAggregator) { this.agentConfidences = new ArrayList<>(); } - /** - * Constructor for the confidence with a given aggregator function and an initial claimant with a certain probability (confidence). - * - * @param claimant the claimant - * @param probability the probability - * @param confidenceAggregator the aggregation function - */ - public Confidence(Claimant claimant, double probability, AggregationFunctions confidenceAggregator) { - this(confidenceAggregator); - this.addAgentConfidence(claimant, probability); - } - private Confidence(AggregationFunctions confidenceAggregator, List> agentConfidence) { this(confidenceAggregator); this.agentConfidences = new ArrayList<>(agentConfidence); diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index c0d9dbd72..206f34607 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -28,8 +28,6 @@ import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.ModelInconsistency; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.TextInconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; -import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.TextState; import edu.kit.kastel.mcse.ardoco.core.api.text.Sentence; import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; import edu.kit.kastel.mcse.ardoco.core.api.text.Text; @@ -301,30 +299,6 @@ public Model getModelState(Metamodel metamodel) { return modelStates.getModel(metamodel); } - /** - * Returns the internal {@link TextState}. - * - * @return the TextState - */ - public TextState getTextState() { - return DataRepositoryHelper.getTextState(this.dataRepository); - } - - /** - * Returns the internal {@link RecommendationState} for the given {@link Metamodel} or null if there is none. - * - * @param metamodel the metamodel - * @return the recommendation state or null if there is none - */ - public RecommendationState getRecommendationState(Metamodel metamodel) { - if (DataRepositoryHelper.hasRecommendationStates(this.dataRepository)) { - var recommendationStates = DataRepositoryHelper.getRecommendationStates(this.dataRepository); - return recommendationStates.getRecommendationState(metamodel); - } - ArDoCoResult.logger.warn("No RecommendationState found"); - return null; - } - /** * Returns the internal {@link PreprocessingData}. * diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java index abf98ea03..be8407da2 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java @@ -22,23 +22,18 @@ protected AnonymousRunner(String projectName) { } /** - * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository. - * {@link #isSetUp} must return true if successful. - * - * @return list of AbstractPipelineSteps this runner consists of + * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository. {@link #isSetUp} must return true if successful. */ - private List setUp() { + private void setUp() { try { var arDoCo = getArDoCo(); var dataRepository = arDoCo.getDataRepository(); var pipelineSteps = initializePipelineSteps(dataRepository); pipelineSteps.forEach(arDoCo::addPipelineStep); isSetUp = true; - return pipelineSteps; } catch (IOException e) { logger.error("Problem in initialising pipeline when loading data (IOException)", e.getCause()); isSetUp = false; - return List.of(); } } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java index ebccdf290..3c0e08b07 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java @@ -3,8 +3,6 @@ import java.io.Serializable; -import com.google.errorprone.annotations.Immutable; - /** * This record represents expected results for an evaluation * @@ -15,10 +13,5 @@ * @param phiCoefficient the expected Phi Coefficient * @param specificity the expected specificity */ -@Immutable public record ExpectedResults(double precision, double recall, double f1, double accuracy, double phiCoefficient, double specificity) implements Serializable { - - public ExpectedResults(double precision, double recall, double f1) { - this(precision, recall, f1, .0, .0, .0); - } } From 1f853f9313ad62c2458075f3fd59e780f27fb58f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 00:39:57 +0200 Subject: [PATCH 089/115] move docs from core to ardoco repo --- .github/workflows/docs.yml | 36 ------- docs/Home.md | 77 -------------- docs/Inconsistency-Detection.md | 12 --- docs/Intermediate-Artifacts.md | 128 ------------------------ docs/LiSSA.md | 126 ----------------------- docs/Pipeline.md | 22 ---- docs/Quickstart.md | 110 -------------------- docs/Text-Preprocessing-Microservice.md | 19 ---- docs/Traceability-Link-Recovery.md | 32 ------ docs/_Footer.md | 1 - docs/_Sidebar.md | 15 --- 11 files changed, 578 deletions(-) delete mode 100644 .github/workflows/docs.yml delete mode 100644 docs/Home.md delete mode 100644 docs/Inconsistency-Detection.md delete mode 100644 docs/Intermediate-Artifacts.md delete mode 100644 docs/LiSSA.md delete mode 100644 docs/Pipeline.md delete mode 100644 docs/Quickstart.md delete mode 100644 docs/Text-Preprocessing-Microservice.md delete mode 100644 docs/Traceability-Link-Recovery.md delete mode 100644 docs/_Footer.md delete mode 100644 docs/_Sidebar.md diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 8735d90fc..000000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Documentation - -on: - push: - branches: - - main - tags: "v**" - paths: - - 'docs/**' - - '.github/workflows/docs.yml' - workflow_dispatch: - -jobs: - docs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.SDQ_TOKEN }} - - uses: actions/checkout@v4 - with: - repository: ${{ github.repository }}.wiki - path: wiki - token: ${{ secrets.SDQ_TOKEN }} - - - name: Remove contents in Wiki - working-directory: wiki - run: ls -A1 | grep -v '.git' | xargs rm -r - - - name: Copy Wiki from Docs folder - run: cp -r ./docs/. ./wiki - - - name: Deploy 🚀 - uses: stefanzweifel/git-auto-commit-action@v5 - with: - repository: wiki diff --git a/docs/Home.md b/docs/Home.md deleted file mode 100644 index 5189f724b..000000000 --- a/docs/Home.md +++ /dev/null @@ -1,77 +0,0 @@ -# ArDoCo - -

    - ArDoCo -

    - -ArDoCo (Architecture Documentation Consistency) is a framework to connect architecture documentation and models while -identifying missing or deviating elements (inconsistencies). An element can be any representable item of the model, like -a component or a relation. To do so, ArDoCo first creates trace links and then makes use of them and other information -to identify inconsistencies. - -You can find ArDoCo on the [website](https://ardoco.de) and [on GitHub](https://github.com/ArDoCo). - -Before contributing, please read the [Quickstart Guide](quickstart). - - - -To get to know the project, please read the following pages: - -* [Core Pipeline Definition](pipeline) -* [Intermediate Artifacts](intermediate-artifacts) -* [Text Preprocessing Microservice](Text-Preprocessing-Microservice) -* [Traceability Link Recovery (TLR)](traceability-link-recovery) -* [Inconsistency Detection (ID)](inconsistency-detection) -* [LiSSA Retrieval-Augmented TLR](LiSSA) - -## Project Structure - -* [Core](https://github.com/ArDoCo/Core): Core framework with framework and API definitions -* Pipelines - * [TLR](https://github.com/ArDoCo/TLR): Traceability Link Recovery (TLR) Modules - * [StanfordCoreNLP-Provider-Service](https://github.com/ArDoCo/StanfordCoreNLP-Provider-Service): RESTful web service for text preprocessing - * [InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): Inconsistency Detection (ID) Modules - * [LiSSA-RATLR](https://github.com/ArDoCo/LiSSA-RATLR): LiSSA - A Framework for Generic Traceability Link Recovery -* Testing and Evaluation - * [IntegrationTests](https://github.com/ArDoCo/IntegrationTests): Integration Tests - * [Benchmark](https://github.com/ArDoCo/Benchmark): Benchmarks - * [Evaluator](https://github.com/ArDoCo/Evaluator): Evaluation code that compares CSVs (e.g., output and gold standard) - * [SimpleTracelinkDiscovery](https://github.com/ArDoCo/SimpleTracelinkDiscovery): Baseline approach -* GUIs, CLIs, etc. - * [TraceView](https://github.com/ArDoCo/TraceView): WIP visualisation of the outputs for TLR and ID - * *outdated* [CLI](https://github.com/ArDoCo/CLI): Command Line Interface (*outdated*) -* [actions](https://github.com/ArDoCo/actions): Reusable GitHub Actions - -## System Requirements - -The project requires **JDK 21**. -Furthermore, we advise at least **4 GB of RAM**. - -## Benchmarks - -You can test ArDoCo using the projects provided in our [Benchmark repository](https://github.com/ArDoCo/Benchmark). - -## Related Publications - -* J. Keim, S. Corallo, D. Fuchß, T. Hey, T. Telge und A. Koziolek. "Recovering Trace Links Between Software Documentation And Code". 2024. In: Proceedings of 46th IEEE International Conference on Software Engineering (ICSE 2024). [doi:10.5445/IR/1000165692](https://doi.org/10.5445/IR/1000165692/post) - -* J. Keim, S. Corallo, D. Fuchß und A. Koziolek. "Detecting Inconsistencies in Software Architecture Documentation Using Traceability Link Recovery". 2023. In: IEEE 20th International Conference on Software Architecture (ICSA 2023). [doi:10.1109/ICSA56044.2023.00021](https://doi.org/10.1109/ICSA56044.2023.00021) - -* D. Fuchß, S. Corallo, J. Keim, J. Speit und A. Koziolek. "Establishing a Benchmark Dataset for Traceability Link Recovery between Software Architecture Documentation and Models". 2022. In: 2nd International Workshop on Mining Software Repositories for Software Architecture - Co-located with 16th European Conference on Software Architecture. - -* J. Keim, S. Schulz, D. Fuchß, C. Kocher, J. Speit, A. Koziolek. "Trace Link Recovery for Software Architecture Documentation". 2021. In: Software Architecture: 15th European Conference (ECSA 2021). [doi:10.1007/978-3-030-86044-8_7](https://doi.org/10.1007/978-3-030-86044-8_7) - -* J. Keim and A. Koziolek. "Towards Consistency Checking Between Software Architecture and Informal Documentation". 2019. In: IEEE 16th International Conference on Software Architecture Companion (ICSA-C). [doi:10.1109/ICSA-C.2019.00052](https://doi.org/10.1109/ICSA-C.2019.00052) - - -The initial version of ArDoCo is based on the master thesis [Linking Software Architecture Documentation and Models](https://publikationen.bibliothek.kit.edu/1000126194). - -## Contact - -This project is currently developed by researchers of the Karlsruhe Institute of Technology (KIT). - -You find us on our websites: - -* [Jan Keim](https://mcse.kastel.kit.edu/staff_Keim_Jan.php), -* [Sophie Corallo](https://mcse.kastel.kit.edu/staff_sophie_corallo.php), and -* [Dominik Fuchß](https://mcse.kastel.kit.edu/staff_dominik_fuchss.php) diff --git a/docs/Inconsistency-Detection.md b/docs/Inconsistency-Detection.md deleted file mode 100644 index ef8f23f23..000000000 --- a/docs/Inconsistency-Detection.md +++ /dev/null @@ -1,12 +0,0 @@ - -Currently, there are two kinds of inconsistencies that are supported by the approach: Missing Model Elements (MMEs) and Undocumented Model Elements (UMEs). - -Undocumented Model Elements (UMEs) are elements within the Software Architecture Model (SAM) that are not documented in the natural language Software Architecture Documentation (SAD). -Our heuristic looks for model elements that do not have any (or below a certain threshold, per default 1) trace links associated with them. -In the configuration options, you can fine tune the threshold as well as set up a regex-based whitelist. - -Missing Model Elements (MMEs) are architecture elements that are described within the SAD that cannot be traced to the SAM. -For this, we make use of the recommendations from the Recommendation Generator within the [Traceability Link Recovery (TLR)](traceability-link-recovery). -Each of these recommendations that are not linked with a model element are potential inconsistencies. -To further increase precision, we make use of filters. -For example, we use a filter to get rid of commonly used software (development) terminology that look similar to, e.g., components but rarely are model elements. diff --git a/docs/Intermediate-Artifacts.md b/docs/Intermediate-Artifacts.md deleted file mode 100644 index da69ec7f5..000000000 --- a/docs/Intermediate-Artifacts.md +++ /dev/null @@ -1,128 +0,0 @@ - -Currently, there are three kinds of intermediate artifacts. -First, the input text has an internal representation (cf. [edu/kit/kastel/mcse/ardoco/core/api/text/Text.java](https://github.com/ArDoCo/Core/blob/main/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Text.java)) to cover all the annotations from the preprocessing. -Second, there is the intermediate representation of software architecture models (SAMs) that we cover [below](#software-architecture-models). -Third, we create a uniform representation for code that we also explain [below](#code). - -```mermaid -classDiagram - class ModelElement - class Model - class Entity - class CodeModel - class ArchitectureModel - - ModelElement <|-- Entity - ModelElement <|-- Model - Model <|-- CodeModel - Model <|-- ArchitectureModel - Model "0..1" o--"*" Entity: elements -``` - -## Software Architecture Models - -```mermaid -classDiagram - class Entity - class ArchitectureItem - class Component - class Interface - class Signature - - Entity <|-- ArchitectureItem - ArchitectureItem <|-- Component - ArchitectureItem <|-- Interface - ArchitectureItem <|-- Signature - - Interface o-- "*" Signature: signatures - Interface "*" <-- "*" Component: provided - Interface "*" <-- "*" Component: required - Component "*" <-- Component: subcomponents -``` - -In this software model, each class is categorized as an ArchitectureItem, which inherits properties from Entity, including a name and identifier. -There are three types of ArchitectureItems: Component, Interface, and Signature. - -A Component represents various architectural elements in different modeling languages. -For instance, it corresponds to a UML Component. -In the PCM context, it encompasses both BasicComponent and CompositeComponent. -BasicComponents do not contain sub-components, while CompositeComponents may have sub-components. - -Components can either require or provide Interfaces. -Provided Interfaces are implemented by the Component, while Required Interfaces specify the functionality required by a Component. - -An Interface contains multiple method Signatures. -Signatures are linked to Interfaces in a composite relationship, meaning each Signature is associated with an Interface. - - -## Code - -```mermaid -classDiagram - class Entity - class CodeItem - class Module - class Package - class CompilationUnit - class CodeAssembly - class ComputationalObject - class ControlElement - class Datatype - class ClassUnit - class InterfaceUnit - - Entity <|-- CodeItem - CodeItem <|-- ComputationalObject - CodeItem <|-- Module - CodeItem <|-- Datatype - ComputationalObject <|-- ControlElement - Module <|-- Package - Module <|-- CompilationUnit - Module <|-- CodeAssembly - Datatype <|-- ClassUnit - Datatype <|-- InterfaceUnit - - Module "0..1" o--> "*" CodeItem: codeElements - ClassUnit "0..1" o--> "*" CodeItem: codeElements - InterfaceUnit "0..1" o--> "*" CodeItem: codeElements - Datatype "*" <-- "*" Datatype: implementedTypes - Datatype "*" <-- "*" Datatype: extendedTypes -``` - -The intermediate model for code is based on the source code package within the [Knowledge Discover Model (KDM)](https://www.omg.org/spec/KDM/1.3/PDF). - -The different classes in the code model inherit from CodeItem, which itself is a specialized Entity. -Thus, each class has a name and identifier. - -There are three kinds of source code elements: Module, Datatype, and ComputationalObject. - -Modules are typically logical components of the system with a certain level of abstraction. -A Module can contain CodeItems, and there are three differentiations of Modules: CompilationUnit, Package, and CodeAssembly. - -A CompilationUnit represents a source file where code is stored. -It includes a relative path to the file's location on disk and its programming language. -The CompilationUnit is partly based on the InventoryModel from KDM. - -A Package is a logical collection of source code elements (i.e., CodeItems). -Packages can also contain sub-Packages, similar to the structure commonly found in Java. - -A CodeAssembly consists of source code artifacts linked together to make them runnable. -For example, source code files together with their headers are grouped in a CodeAssembly. - -There are two kinds of Datatypes: CodeUnit and InterfaceUnit. -A CodeUnit is akin to a class in Java and can contain other CodeItems like methods and inner classes. -Similarly, an InterfaceUnit can also contain code elements like methods. - -The relationships implementedTypes and extendedTypes from the KDM model are present in the intermediate model. -A Datatype can implement an arbitrary number of extendedTypes relations, representing inheritance in object-oriented programming languages. - -The construction around extendedTypes and implementedTypes also enables interfaces to extend other interfaces, akin to Java. -Interfaces can also extend classes, a feature present in some programming languages like TypeScript. - -The KDM includes several primitive datatypes like boolean, which are not realized within this model as they are not currently needed. -If future work extends the approaches with a thorough comparison of datatypes, then the intermediate model may need further sub-classing of the KDM. - -Currently, there is only one type of ComputationalObject: the ControlElement. -The ControlElement represents callable parts with specific behaviors, such as functions, procedures, or methods. -Unlike the KDM, this work does not make a further distinction between CallableUnits and MethodUnits. -Additionally, it does not utilize parameters, return types, or similar elements of the KDM and therefore does not model them. diff --git a/docs/LiSSA.md b/docs/LiSSA.md deleted file mode 100644 index 9cd29c8ef..000000000 --- a/docs/LiSSA.md +++ /dev/null @@ -1,126 +0,0 @@ -# LiSSA: A Framework for Generic Traceability Link Recovery - -Welcome to the LiSSA project! This framework leverages Large Language Models (LLMs) enhanced through Retrieval-Augmented Generation (RAG) to establish traceability links across various software artifacts. - -> [!TIP] -> If you have any questions, don't hesitate to [contact us](https://ardoco.de). - -## Overview - -In software development and maintenance, numerous artifacts such as requirements, code, and architecture documentation are produced. Understanding the relationships between these artifacts is crucial for tasks like impact analysis, consistency checking, and maintenance. LiSSA aims to provide a generic solution for Traceability Link Recovery (TLR) by utilizing LLMs in combination with RAG techniques. - -The concept and evaluation of LiSSA are detailed in our paper: - -> Fuchß, D., Hey, T., Keim, J., Liu, H., Ewald, N., Thirolf, T., & Koziolek, A. (2025). LiSSA: Toward Generic Traceability Link Recovery through Retrieval-Augmented Generation. In Proceedings of the IEEE/ACM 47th International Conference on Software Engineering, Ottawa, Canada. - -You can access the paper [here](https://ardoco.de/c/icse25). - -## Features - -- **Generic Applicability**: LiSSA is designed to recover traceability links across various types of software artifacts, including: - - [Requirements to code](https://ardoco.de/c/icse25) - - [Documentation to code](https://ardoco.de/c/icse25) - - [Architecture documentation to architecture models](https://ardoco.de/c/icse25) - - [Requirements to requirements](https://ardoco.de/c/refsq25) - -- **Retrieval-Augmented Generation**: By combining LLMs with RAG, LiSSA enhances the accuracy and relevance of the recovered traceability links. - -## Documentation - -The documentation is organized into several sections: -- [Architecture](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/architecture.md): Detailed information about the project's architecture and components -- [Configuration](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/configuration.md): Guide for configuring LiSSA -- [CLI Usage](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/cli.md): Information about using the command line interface -- [Caching](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/caching.md): Information about the caching system and Redis setup -- [Development](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/development.md): Development setup and contribution guidelines - -## Getting Started - -To get started with LiSSA, follow these steps: - -1. **Clone the Repository**: - ```bash - git clone https://github.com/ArDoCo/LiSSA-RATLR - cd LiSSA-RATLR - ``` - -2. **Install Dependencies**: - Ensure you have Java JDK 21 or later installed. Then, build the project using Maven: - ```bash - mvn clean package - ``` - -3. **Run LiSSA**: - Execute the main application: - ```bash - java -jar target/ratlr-*-jar-with-dependencies.jar eval -c config.json - ``` - -### Configuration - -1. Create a configuration you want to use for evaluation / execution. E.g., you can find configurations [here](https://github.com/ArDoCo/ReplicationPackage-ICSE25_LiSSA-Toward-Generic-Traceability-Link-Recovery-through-RAG/tree/main/LiSSA-RATLR-V2/lissa/configs/req2code-significance). You can also provide a directory containing multiple configurations. -2. Configure your OpenAI API key and organization in a `.env` file. You can use the provided template file as a template [env-template](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/env-template). -3. LiSSA caches requests in order to be reproducible. The cache is located in the cache folder that can be specified in the configuration. -4. Run `java -jar target/ratlr-*-jar-with-dependencies.jar eval -c configs/....` to run the evaluation. You can provide a JSON or a directory containing JSON configurations. -5. The results will be printed to the console and saved to a file in the current directory. The name is also printed to the console. - -### Results of Evaluation / Execution - -The results will be stored as markdown files. A result file can look like below. It contains the configuration and the results of the evaluation. Additionally, the LiSSA generate CSV files that contain the traceability links as pairs of identifiers. - -
    -Example Result - -```json -## Configuration -{ - "cache_dir" : "./cache-r2c/dronology-dd--102959883", - "gold_standard_configuration" : { - "hasHeader" : false, - "path" : "./datasets/req2code/dronology-dd/answer.csv" - }, - "... other configuration parameters ..." -} - -## Stats -* # TraceLinks (GS): 740 -* # Source Artifacts: 211 -* # Target Artifacts: 423 -## Results -* True Positives: 283 -* False Positives: 1286 -* False Negatives: 457 -* Precision: 0.18036966220522627 -* Recall: 0.3824324324324324 -* F1: 0.24512776093546992 -``` -
    - -## Evaluation - -LiSSA has been empirically evaluated on four different TLR tasks: - -- Requirements to code -- Documentation to code -- Architecture documentation to architecture models -- Requirements to requirements - -The results indicate that the RAG-based approach can significantly outperform state-of-the-art methods in code-related tasks. However, further research is needed to enhance its performance for broader applicability. - -## Contributing - -We welcome contributions from the community! If you're interested in contributing to LiSSA, please read our [Code of Conduct](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/CODE_OF_CONDUCT.md) and [Development Guide](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/docs/development.md) to get started. - -## License - -This project is licensed under the MIT License. See the [LICENSE.md](https://github.com/ArDoCo/LiSSA-RATLR/blob/main/LICENSE.md) file for details. - -## Acknowledgments - -LiSSA is developed by researchers from the Modelling for Continuous Software Engineering (MCSE) group of KASTEL - Institute of Information Security and Dependability at the Karlsruhe Institute of Technology (KIT). - -For more information about the project and related research, visit our [website](https://ardoco.de/). - ---- - -*Note: This README provides a brief overview of the LiSSA project. For comprehensive details, please refer to our [documentation](https://github.com/ArDoCo/LiSSA-RATLR/tree/main/docs).* diff --git a/docs/Pipeline.md b/docs/Pipeline.md deleted file mode 100644 index ee5900b99..000000000 --- a/docs/Pipeline.md +++ /dev/null @@ -1,22 +0,0 @@ - -```mermaid -classDiagram - class AbstractPipeline - class Pipeline - class PipelineStep - - Pipeline--> "*" AbstractPipeline - Pipeline..|>AbstractPipeline - PipelineStep..|>AbstractPipeline -``` - -For the pipeline definition, we use a composite to allow us to have a multi-level pipeline. -As such, a pipeline consists of an arbitrary number of either *PipelineStep*s or further *Pipeline*s. - -In our approach, we use three levels for our pipeline: -On the first level, the overall pipeline defines multiple *stages*, e.g., text preprocessing or element connection. -Each stage is another pipeline that then defines *agents* that have the purpose of initiating the processing and of collecting the information of the various heuristics. -Agents then use *Informants* as concrete PipelineSteps to execute the processing and heuristics. - -A pipeline step (i.e., an Informant) stores results within a repository that can be universally accessed by all pipeline steps, similarly to a blackboard in the blackboard pattern. -This way, each pipeline step and, thus, each heuristic can access the results of previous steps and provide its results for others. diff --git a/docs/Quickstart.md b/docs/Quickstart.md deleted file mode 100644 index 78a4a20aa..000000000 --- a/docs/Quickstart.md +++ /dev/null @@ -1,110 +0,0 @@ - -The ArDoCo is a maven project and can be embedded by using its specs (from the [pom](https://github.com/ArDoCo/Core/blob/main/pom.xml)). - -Please acknowledge the [code of conduct](https://github.com/ArDoCo/Core/blob/main/CODE_OF_CONDUCT.md). - -## Forking the project & submitting pull requests - -This project uses Sonarcloud to check code quality. There are Github Actions that automatically verify the build and -generate a Sonarcloud-report. Additionally, pull requests are automatically checked. If the build fails or the Quality -Gate is not passed, it is marked in the Pull Request and you need to fix the PR until it passes. Otherwise, the PR won’t -get merged. - -If you fork the project, make sure to create a Sonarcloud token to make sure everything works for you and the Sonarcloud -check does not fail. You need to enable Sonarcloud for you and add a Sonarcloud token to the repository of the fork as -secret. - -Follow the following steps to do so: - -* Log into SonarCloud and click on your profile and then go to My Account and then Security. Alternatively go directly - to account/security. -* Generate your access token for SonarCloud and copy it. The access token will be provided to the build pipeline as a - secret environment variable. -* Go to your repository settings in GitHub, then to Secrets -* Add a new secret with name SONAR_TOKEN and the value of the just generated access token. - -### Formatter - -Please use the provided [formatter](https://github.com/ArDoCo/Core/blob/main/formatter.xml) when contributing. - -Additionally, please make use of the spotless-plugin for maven to format your code. You can run it via `mvn spotless:apply` ([more info about spotless](https://github.com/diffplug/spotless/tree/main/plugin-maven)). - - -### Save Actions (Eclipse) - -Go to your Eclipse Workspace folder and open the -file `.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs`. -There, exchange all the `sp_cleanup.` properties to the following: - -``` -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_missing_override_annotations_interface_methods=true -sp_cleanup.add_serial_version_id=false -sp_cleanup.always_use_blocks=true -sp_cleanup.always_use_parentheses_in_expressions=true -sp_cleanup.always_use_this_for_non_static_field_access=false -sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_functional_interfaces=true -sp_cleanup.convert_to_enhanced_for_loop=true -sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false -sp_cleanup.correct_indentation=true -sp_cleanup.format_source_code=true -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.insert_inferred_type_arguments=false -sp_cleanup.lazy_logical_operator=false -sp_cleanup.make_local_variable_final=true -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false -sp_cleanup.merge_conditional_blocks=false -sp_cleanup.never_use_blocks=false -sp_cleanup.never_use_parentheses_in_expressions=false -sp_cleanup.number_suffix=true -sp_cleanup.on_save_use_additional_actions=true -sp_cleanup.organize_imports=true -sp_cleanup.push_down_negation=false -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_redundant_modifiers=true -sp_cleanup.remove_redundant_semicolons=true -sp_cleanup.remove_redundant_type_arguments=true -sp_cleanup.remove_trailing_whitespaces=true -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_array_creation=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=true -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -sp_cleanup.remove_unused_private_methods=true -sp_cleanup.remove_unused_private_types=true -sp_cleanup.simplify_lambda_expression_and_method_ref=false -sp_cleanup.sort_members=false -sp_cleanup.sort_members_all=false -sp_cleanup.use_anonymous_class_creation=false -sp_cleanup.use_autoboxing=true -sp_cleanup.use_blocks=true -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_directly_map_method=false -sp_cleanup.use_lambda=true -sp_cleanup.use_parentheses_in_expressions=false -sp_cleanup.use_this_for_non_static_field_access=true -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=true -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true -sp_cleanup.use_unboxing=true -sp_cleanup.use_var=false -``` \ No newline at end of file diff --git a/docs/Text-Preprocessing-Microservice.md b/docs/Text-Preprocessing-Microservice.md deleted file mode 100644 index 5d5466828..000000000 --- a/docs/Text-Preprocessing-Microservice.md +++ /dev/null @@ -1,19 +0,0 @@ - -Text preprocessing works locally, but there is also the option to host a **microservice** for this. -The benefit is that the models do not need to be loaded each time, saving some runtime (and local memory). - -The microservice can be found at [ArDoCo/StanfordCoreNLP-Provider-Service](https://github.com/ArDoCo/StanfordCoreNLP-Provider-Service/). - -The microservice is secured with credentials and the usage of the microservice needs to be activated and the URL of the microservice configured. -These settings can be provided to the execution via environment variables. -To do so, set the following variables: - -```env -NLP_PROVIDER_SOURCE=microservice -MICROSERVICE_URL=[microservice_url] -SCNLP_SERVICE_USER=[your_username] -SCNLP_SERVICE_PASSWORD=[your_password] -``` - -The first variable `NLP_PROVIDER_SOURCE=microservice` activates the microservice usage. -The next three variables configure the connection, and you need to provide the configuration for your deployed microservice. \ No newline at end of file diff --git a/docs/Traceability-Link-Recovery.md b/docs/Traceability-Link-Recovery.md deleted file mode 100644 index fddf6de94..000000000 --- a/docs/Traceability-Link-Recovery.md +++ /dev/null @@ -1,32 +0,0 @@ - -There are currently three kinds of TLR approaches that we describe in their corresponding sections: - -* [Software Architecture Documentation (SAD) to Model (SAM)](#sad-sam) -* [Software Architecture Model (SAM) to Code](#sam-code) -* [SAD to Code via SAM](#sad-sam-code) - - -## SAD-SAM - -For Traceability Link Recovery between Software Architecture Documentations (SADs) and Software Architecture Models (SAMs), we use a pipeline approach with different major processing steps: - -1. Model Extraction: Processes the architecture model. -2. Text Preprocessing: Processes the text initially, including basic text processing like tokenization, part-of-speech tagging, dependency parsing. -3. Text Extraction: Identification of potential parts of interest in the text. -4. Recommendation Generator: Further processing of interesting parts of text to generate recommendations for parts that should/could be model elements. -5. Connection Generator: Mapping of recommended parts to model parts. - -## SAM-Code - -The project ARCOTL (Architecture-Code-Trace Links) aims to automatically generate trace links between Code and a Software Architecture Model (SAM). -It supports multiple programming languages for the code (Java and Shell) and metamodels for the architecture model (PCM and UML). -To this end the project introduces intermediate models for the architecture (AMTL - Architecture Model for Trace Links) and Code (CMTL - Code Model for Trace -Links). -Trace links are created between instances of these metamodels. -The trace links each have exactly one architecture endpoint and one code endpoint. This is specified by the TLM (Trace Link Model). -The AMTL- and CMTL-instances get extracted from the architecture model and from the code. - -## SAD-SAM-Code - -To recover trace links between SADs and code, we combine the traceability link recovery between [SAD-SAM](#sad-sam) and [SAM-Code](#sam-code). -Both approaches are executed, and their resulting trace links combined via `TransitiveTraceLinks` that match the parts of the documentation to the parts of code using the model. diff --git a/docs/_Footer.md b/docs/_Footer.md deleted file mode 100644 index 41b176f5a..000000000 --- a/docs/_Footer.md +++ /dev/null @@ -1 +0,0 @@ -[ArDoCo](https://ardoco.de): **Ar**chitecture **Do**cumentation **Co**nsistency - Providing TLR and Inconsistency Detection between formal models and informal documentation diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md deleted file mode 100644 index f2c809422..000000000 --- a/docs/_Sidebar.md +++ /dev/null @@ -1,15 +0,0 @@ -# Table of Contents - -1. [Home](ardoco) -2. [Quickstart](quickstart) -3. [Pipeline](pipeline) -4. [Intermediate Artifacts](intermediate-artifacts) - 1. [SAM](intermediate-artifacts#software-architecture-models) - 1. [Code](intermediate-artifacts#code) -5. [Text Preprocessing Microservice](Text-Preprocessing-Microservice) -6. [Traceability Link Recovery (TLR)](traceability-link-recovery) - 1. [SAD-SAM](traceability-link-recovery#sad-sam) - 1. [SAM-Code](traceability-link-recovery#sam-code) - 1. [SAD-SAM-Code](traceability-link-recovery#sad-sam-code) -7. [Inconsistency Detection (ID)](Inconsistency-Detection) -8. [LiSSA-RATLR](lissa) \ No newline at end of file From 02a451b25ce67aacc33ad46f9bccdf306cd3d61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 13:59:58 +0200 Subject: [PATCH 090/115] revert wrong spellcheck --- .../mcse/ardoco/core/common/AggregationFunctions.java | 2 +- .../mcse/ardoco/core/common/util/CommonUtilities.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java index 1ce9ca031..a91706a5c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/AggregationFunctions.java @@ -30,7 +30,7 @@ public enum AggregationFunctions implements ToDoubleFunction { var squaredValuesSum = s.stream().mapToDouble(d -> Math.pow(d, 2)).sum(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 4e307524c..90d16c4f9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -100,21 +100,21 @@ public static double harmonicMean(List values) { } /** - * Calculates the root-mean-square between two given values. + * Calculates the root mean square between two given values. * * @param first the first value * @param second the second value - * @return the root-mean-square of the given values + * @return the root mean square of the given values */ public static double rootMeanSquare(double first, double second) { return Math.sqrt((Math.pow(first, 2) + Math.pow(second, 2)) / 2); } /** - * Calculates the root-mean-square between the given values. + * Calculates the root mean square between the given values. * * @param values List of doubles that should be used to calculate their mean - * @return the root-mean-square of the given values + * @return the root mean square of the given values */ public static double rootMeanSquare(List values) { var squaredValuesSum = values.stream().mapToDouble(d -> Math.pow(d, 2)).sum(); From c32c8f877aeb943a1d33cbb33789a0f05f07a8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 14:14:45 +0200 Subject: [PATCH 091/115] Review comments --- .../execution/runner/AnonymousRunner.java | 8 ++--- .../core/tests/eval/EvaluationHelper.java | 2 +- .../core/tests/eval/EvaluationProject.java | 33 ++++++++++++------- .../core/tests/eval/ExpectedResults.java | 2 +- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java index be8407da2..c1822221e 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java @@ -18,22 +18,22 @@ public abstract class AnonymousRunner extends ArDoCoRunner { protected AnonymousRunner(String projectName) { super(projectName); - setUp(); + isSetUp = setUp(); } /** * Sets up the runner using {@link #initializePipelineSteps}. Initializes the new data repository. {@link #isSetUp} must return true if successful. */ - private void setUp() { + private boolean setUp() { try { var arDoCo = getArDoCo(); var dataRepository = arDoCo.getDataRepository(); var pipelineSteps = initializePipelineSteps(dataRepository); pipelineSteps.forEach(arDoCo::addPipelineStep); - isSetUp = true; + return true; } catch (IOException e) { logger.error("Problem in initialising pipeline when loading data (IOException)", e.getCause()); - isSetUp = false; + return false; } } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java index 1eda08daa..45057f977 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationHelper.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2025. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.File; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java index 3fddeafc4..6150be284 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java @@ -75,25 +75,36 @@ public File getTextFile() { } /** - * Get the code model for this project. If the code model is stored in an ACM file, it will be loaded from resources. If not, the code will be cloned from + * Get the code model for this project. The code will be cloned from * the repository and the folder will be returned. - * - * @param fromStoredAcmFile whether to load the code model from the stored ACM file or to clone the repository - * @return the acm file if fromStoredAcmFile is true, otherwise the folder containing the code + * + * @return the folder containing the code + * @see #getCodeDirectoryWithoutCloning() */ - public File getCodeModel(boolean fromStoredAcmFile) { - if (fromStoredAcmFile) { - return EvaluationHelper.loadFileFromResources(this.codeModelResource); - } - - File codeLocation = getTemporaryCodeLocation(); + public File getCodeDirectory() { + File codeLocation = getCodeDirectoryWithoutCloning(); if (!codeLocation.exists() || Objects.requireNonNull(codeLocation.listFiles()).length == 0) { RepositoryHandler.shallowCloneRepository(codeRepository, codeLocation.getAbsolutePath(), codeCommit); } return codeLocation; } - private File getTemporaryCodeLocation() { + /** + * Get the code model for this project. The ACM file will be loaded from resources + * + * @return the acm file + */ + public File getCodeModelFromResources() { + return EvaluationHelper.loadFileFromResources(this.codeModelResource); + } + + /** + * Get the location where the code for this project will be stored. + * + * @return the location of the code + * @see #getCodeDirectory() + */ + public File getCodeDirectoryWithoutCloning() { String temp = System.getProperty("java.io.tmpdir"); var temporary = new File(temp + File.separator + "ArDoCo" + File.separator + this.name()); logger.debug("Location of Code: {}", temporary.getAbsolutePath()); diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java index 3c0e08b07..7fe2ef84a 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ExpectedResults.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2025. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.io.Serializable; From 476c3e4ec069199fdd15dd390bc914bfe9ac8dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 14:52:34 +0200 Subject: [PATCH 092/115] Restructure packages of model --- .../ArchitectureComponentModel.java | 7 ++-- .../arcotl => model}/ArchitectureModel.java | 4 +-- ...ctureModelWithComponentsAndInterfaces.java | 5 ++- .../{models/arcotl => model}/CodeModel.java | 33 +++++++++++++++---- .../CodeModelWithCompilationUnits.java | 11 +++---- ...eModelWithCompilationUnitsAndPackages.java | 9 +++-- .../core/api/{models => model}/Metamodel.java | 2 +- .../api/{models/arcotl => model}/Model.java | 3 +- .../api/{models => model}/ModelFormat.java | 2 +- .../api/{models => model}/ModelStates.java | 3 +- .../architecture/ArchitectureComponent.java | 2 +- .../architecture/ArchitectureInterface.java | 2 +- .../architecture/ArchitectureItem.java | 2 +- .../architecture/ArchitectureMethod.java | 2 +- .../arcotl => model}/code/ClassUnit.java | 2 +- .../arcotl => model}/code/CodeAssembly.java | 2 +- .../code/CodeCompilationUnit.java | 2 +- .../arcotl => model}/code/CodeItem.java | 2 +- .../code/CodeItemRepository.java | 2 +- .../arcotl => model}/code/CodeModule.java | 2 +- .../arcotl => model}/code/CodePackage.java | 2 +- .../code/ComputationalObject.java | 2 +- .../arcotl => model}/code/ControlElement.java | 2 +- .../arcotl => model}/code/Datatype.java | 2 +- .../arcotl => model}/code/InterfaceUnit.java | 2 +- .../code/ProgrammingLanguages.java | 2 +- .../core/api/models/arcotl/CodeModelDTO.java | 28 ---------------- .../codetraceability/ModelCodeTraceLink.java | 4 +-- .../connectiongenerator/ConnectionStates.java | 2 +- .../inconsistency/InconsistencyStates.java | 2 +- .../RecommendationStates.java | 2 +- .../core/common/util/CommonUtilities.java | 2 +- .../common/util/DataRepositoryHelper.java | 2 +- .../core/data/DataRepositorySyncer.java | 2 +- .../ardoco/core/api/output/ArDoCoResult.java | 6 ++-- .../core/tests/eval/EvaluationProject.java | 2 +- 36 files changed, 75 insertions(+), 88 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/ArchitectureComponentModel.java (88%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/ArchitectureModel.java (83%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/ArchitectureModelWithComponentsAndInterfaces.java (92%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/CodeModel.java (72%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/CodeModelWithCompilationUnits.java (84%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/CodeModelWithCompilationUnitsAndPackages.java (88%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => model}/Metamodel.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/Model.java (91%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => model}/ModelFormat.java (87%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models => model}/ModelStates.java (92%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/architecture/ArchitectureComponent.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/architecture/ArchitectureInterface.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/architecture/ArchitectureItem.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/architecture/ArchitectureMethod.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/ClassUnit.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodeAssembly.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodeCompilationUnit.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodeItem.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodeItemRepository.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodeModule.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/CodePackage.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/ComputationalObject.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/ControlElement.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/Datatype.java (99%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/InterfaceUnit.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{models/arcotl => model}/code/ProgrammingLanguages.java (88%) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java similarity index 88% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java index 84739ac17..8ce1cd5b0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.ArrayList; import java.util.List; @@ -7,9 +7,8 @@ import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureComponent; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureComponent; +import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; /** * Represents a model containing only architecture components. Provides access to architecture components and their type identifiers. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java similarity index 83% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java index 82d431afa..7a11639d5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java @@ -1,9 +1,9 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java similarity index 92% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java index 3c1ab1a97..7ac664bb5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java @@ -1,12 +1,11 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; /** * Represents an architecture model. This model contains architecture items, including components and interfaces. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java similarity index 72% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java index 4ad008695..ca9a50db1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java @@ -1,15 +1,17 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.SortedSet; +import com.fasterxml.jackson.annotation.JsonProperty; + import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodePackage; import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** @@ -56,8 +58,8 @@ protected CodeModel(CodeItemRepository codeItemRepository, SortedSet getContentIds() { @@ -100,4 +102,23 @@ protected synchronized void initialize() { this.codeItemRepository.init(); this.initialized = true; } + + /** + * Data transfer object for the code model. Contains a {@link CodeItemRepository} and a list of content identifiers. + * + * @param codeItemRepository the repository of code items + * @param content the list of content identifiers + */ + public record CodeModelDto(@JsonProperty CodeItemRepository codeItemRepository, @JsonProperty List content) { + /** + * Returns the code item repository, initializing it if necessary. + * + * @return the code item repository + */ + @Override + public CodeItemRepository codeItemRepository() { + codeItemRepository.init(); + return codeItemRepository; + } + } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java similarity index 84% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java index ca29cc6bf..b8beb4a55 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java @@ -1,15 +1,14 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** @@ -23,7 +22,7 @@ public final class CodeModelWithCompilationUnits extends CodeModel { * * @param codeModelDto the code model Dto */ - public CodeModelWithCompilationUnits(CodeModelDTO codeModelDto) { + public CodeModelWithCompilationUnits(CodeModelDto codeModelDto) { super(codeModelDto.codeItemRepository(), codeModelDto.content()); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java similarity index 88% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java index e929e36d2..d427999cf 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java @@ -1,14 +1,13 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** @@ -23,7 +22,7 @@ public final class CodeModelWithCompilationUnitsAndPackages extends CodeModel { * * @param codeModelDto the code model Dto */ - public CodeModelWithCompilationUnitsAndPackages(CodeModelDTO codeModelDto) { + public CodeModelWithCompilationUnitsAndPackages(CodeModelDto codeModelDto) { super(codeModelDto.codeItemRepository(), codeModelDto.content()); this.codeModel = new CodeModelWithCompilationUnits(codeModelDto); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java index d6e91898e..ef5190d41 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.model; /** * Enum representing the supported metamodel types. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java similarity index 91% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java index a7428a4a4..afdd40ed9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java @@ -1,11 +1,10 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.util.List; import java.util.SortedSet; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java similarity index 87% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java index 237b45581..86f05fd01 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.model; /** * Enum for the different types of supported architecture (meta-) models. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java similarity index 92% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java index 696a993f0..35d9cb125 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models; +package edu.kit.kastel.mcse.ardoco.core.api.model; import java.io.Serial; import java.util.SortedMap; @@ -7,7 +7,6 @@ import java.util.TreeMap; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java index 5db2a5ec1..c3d7bc81f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java index a14bd962f..de8c68330 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; import java.io.Serial; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java index 880bd98ba..96f917ce7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java index 8b67427e2..f62bfe575 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java index d55c86f88..17841f33d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java index acac676a4..15ca3bb48 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.SortedSet; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java index 2384f5ab1..4a03dd180 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java index 97c8f8977..e54c7e803 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java index 29320d1ed..534f70ae1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeItemRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java index 3fdaf1423..d0f693d6c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodeModule.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java index 476bf10a9..372e813ce 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java index 8d1ec8116..4058d3553 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ComputationalObject.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java index f6aab91a9..f2a440aa1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ControlElement.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java index d9ba3e29d..6cb5ab135 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/Datatype.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java index d39f98feb..d00b6a4df 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java similarity index 88% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java index d6a94a96a..d3635938f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/code/ProgrammingLanguages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code; +package edu.kit.kastel.mcse.ardoco.core.api.model.code; /** * Utility class providing constants for supported programming languages in the code model. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java deleted file mode 100644 index 16a7c403a..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/CodeModelDTO.java +++ /dev/null @@ -1,28 +0,0 @@ -/* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.arcotl; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItemRepository; - -/** - * Data transfer object for the code model. Contains a {@link CodeItemRepository} and a list of content identifiers. - * - * @param codeItemRepository the repository of code items - * @param content the list of content identifiers - */ -//TODO: Rename this to CodeModelDto -public record CodeModelDTO(@JsonProperty CodeItemRepository codeItemRepository, @JsonProperty List content) { - /** - * Returns the code item repository, initializing it if necessary. - * - * @return the code item repository - */ - @Override - public CodeItemRepository codeItemRepository() { - codeItemRepository.init(); - return codeItemRepository; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java index 51d583468..2c1078d5a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java @@ -3,8 +3,8 @@ import java.io.Serial; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.ArchitectureItem; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java index 34a55e169..97d0e5d3e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java index d685ba0d4..ecea52f46 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java index a87602936..dbffd30cb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 90d16c4f9..8b1b9e837 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -22,7 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; +import edu.kit.kastel.mcse.ardoco.core.api.model.Model; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index 09c18c2d1..a2486feb8 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -3,7 +3,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.InputTextData; import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; +import edu.kit.kastel.mcse.ardoco.core.api.model.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyStates; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java index 892b45129..287bea697 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 206f34607..ca92b8a9a 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -18,9 +18,9 @@ import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; -import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.Model; +import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.model.Model; +import edu.kit.kastel.mcse.ardoco.core.api.model.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java index 6150be284..7fdeaa33d 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java @@ -7,7 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; +import edu.kit.kastel.mcse.ardoco.core.api.model.ModelFormat; import edu.kit.kastel.mcse.ardoco.core.common.RepositoryHandler; public enum EvaluationProject { From b44081d9dd3a159aa1d0d649d8aa6b83b9c82aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 15:01:11 +0200 Subject: [PATCH 093/115] Removed unused similarity measures --- framework/common/pom.xml | 20 +- .../similarity/wordsim/WordSimLoader.java | 15 -- .../similarity/wordsim/WordSimUtils.java | 17 -- .../wordsim/measures/glove/GloveMeasure.java | 71 ------ .../wordsim/measures/ngram/NgramMeasure.java | 157 ------------- .../sewordsim/SEWordSimDataSource.java | 115 ---------- .../measures/sewordsim/SEWordSimMeasure.java | 72 ------ .../wordsim/strategy/ComparisonStrategy.java | 2 - .../wordsim/strategy/MajorityStrategy.java | 34 --- .../vector/RetrieveVectorException.java | 17 -- .../vector/VectorBasedWordSimMeasure.java | 65 ------ .../wordsim/vector/VectorSqliteDatabase.java | 91 -------- .../wordsim/vector/VectorUtils.java | 142 ------------ .../wordsim/vector/WordVectorDataSource.java | 20 -- .../vector/WordVectorSqliteImporter.java | 213 ------------------ .../common/util/CommonTextToolsConfig.java | 41 +--- .../configs/CommonTextToolsConfig.properties | 13 +- .../measures/ngram/NgramMeasureTest.java | 87 ------- .../wordsim/vector/VectorUtilsTest.java | 93 -------- 19 files changed, 7 insertions(+), 1278 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java delete mode 100644 framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 9e5ef051d..53ed1e8ec 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -23,6 +23,11 @@ com.fasterxml.jackson.core jackson-databind + + com.tngtech.archunit + archunit-junit5 + test + commons-io commons-io @@ -52,20 +57,5 @@ org.eclipse.jgit org.eclipse.jgit - - org.jgrapht - jgrapht-core - ${jgrapht.version} - - - org.xerial - sqlite-jdbc - 3.46.0.1 - - - com.tngtech.archunit - archunit-junit5 - test - diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java index 4c10d2f99..f302b9a5f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimLoader.java @@ -9,11 +9,8 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality.EqualityMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.glove.GloveMeasure; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.jarowinkler.JaroWinklerMeasure; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.levenshtein.LevenshteinMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram.NgramMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim.SEWordSimMeasure; import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; /** @@ -42,18 +39,6 @@ public static ImmutableList loadUsingProperties() { list.add(new JaroWinklerMeasure()); } - if (CommonTextToolsConfig.NGRAM_ENABLED) { - list.add(new NgramMeasure()); - } - - if (CommonTextToolsConfig.SEWORDSIM_ENABLED) { - list.add(new SEWordSimMeasure()); - } - - if (CommonTextToolsConfig.GLOVE_ENABLED) { - list.add(new GloveMeasure()); - } - return Lists.immutable.withAll(list); } catch (Exception e) { LOGGER.error("Failed to load word similarity measures", e); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java index 64c29ee7f..703dd9ebe 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtils.java @@ -8,8 +8,6 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; -import org.sqlite.SQLiteConfig; -import org.sqlite.SQLiteOpenMode; import edu.kit.kastel.mcse.ardoco.core.api.text.Word; import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.equality.EqualityMeasure; @@ -199,19 +197,4 @@ public double getSimilarity(String firstWord, String secondWord) { public double getSimilarity(String firstWord, String secondWord, boolean ignoreCase) { return this.getSimilarity(firstWord, secondWord, this.similarityStrategy, ignoreCase); } - - /** - * Configures SQLite settings for read-only, exclusive locking, and no journal mode. - * - * @return configured SQLiteConfig instance - */ - public static SQLiteConfig getSqLiteConfig() { - var cfg = new SQLiteConfig(); - cfg.setReadOnly(true); - cfg.setLockingMode(SQLiteConfig.LockingMode.EXCLUSIVE); - cfg.setJournalMode(SQLiteConfig.JournalMode.OFF); - cfg.setSynchronous(SQLiteConfig.SynchronousMode.OFF); - cfg.setOpenMode(SQLiteOpenMode.NOMUTEX); - return cfg; - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java deleted file mode 100644 index bf8b635fc..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/glove/GloveMeasure.java +++ /dev/null @@ -1,71 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.glove; - -import java.nio.file.Path; -import java.sql.SQLException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.RetrieveVectorException; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorBasedWordSimMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.VectorSqliteDatabase; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector.WordVectorDataSource; -import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; - -/** - * This word similarity measures utilizes GloVe trained word vector representations to calculate word similarity. It retrieves vectors for each word and - * compares them using cosine similarity. This measure additionally manages a cache to improve lookup speeds. - */ -public class GloveMeasure extends VectorBasedWordSimMeasure { - - private static final Logger LOGGER = LoggerFactory.getLogger(GloveMeasure.class); - - private final double similarityThreshold; - - /** - * Constructs a new {@link GloveMeasure} using the settings provided by {@link CommonTextToolsConfig}. - */ - public GloveMeasure() { - this(CommonTextToolsConfig.GLOVE_SIMILARITY_THRESHOLD); - } - - /** - * Constructs a new {@link GloveMeasure} instance. - * - * @param similarityThreshold the threshold above which words are considered similar, between 0 and 1 - * @throws IllegalArgumentException if the given threshold is not between 0 and 1 - */ - public GloveMeasure(double similarityThreshold) throws IllegalArgumentException { - this.similarityThreshold = similarityThreshold; - - if (similarityThreshold < 0.0 || similarityThreshold > 1.0) { - throw new IllegalArgumentException("similarityThreshold outside of valid range: " + similarityThreshold); - } - } - - @Override - public boolean areWordsSimilar(ComparisonContext comparisonContext) { - return this.getSimilarity(comparisonContext) >= this.similarityThreshold; - } - - @Override - public double getSimilarity(ComparisonContext comparisonContext) { - try { - return this.compareVectors(comparisonContext.firstTerm(), comparisonContext.secondTerm()); - } catch (RetrieveVectorException e) { - LOGGER.error("Failed to compare glove vectors: {}", comparisonContext, e); - return Double.NaN; - } - } - - @Override - protected WordVectorDataSource getVectorDataSource() { - try { - return new VectorSqliteDatabase(Path.of(CommonTextToolsConfig.GLOVE_DB_FILE_PATH)); - } catch (SQLException e) { - throw new IllegalArgumentException(e); - } - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java deleted file mode 100644 index 4d13a5753..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasure.java +++ /dev/null @@ -1,157 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram; - -import java.util.Objects; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; - -/** - * This word similarity measure uses the N-gram word distance function defined by Kondrak 2005. - */ -public class NgramMeasure implements WordSimMeasure { - - private static final char LUCENE_PREFIX_CHARACTER = '\n'; - - /** - * The variants of this algorithm - */ - public enum Variant { - /** - * This variant matches the algorithm included in apache/lucene which is also positional but deviates from the original algorithm by using - * {@link #LUCENE_PREFIX_CHARACTER} as the prefix character and changing the weight for the dN function. - */ - LUCENE, - /** - * The positional variant as described in Kondrak 2005 - */ - POSITIONAL - } - - private final Variant variant; - private final int n; - private final double similarityThreshold; - - /** - * Constructs a new {@link NgramMeasure} using the settings provided by {@link edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig}. - */ - public NgramMeasure() { - this(Variant.LUCENE, CommonTextToolsConfig.NGRAM_MEASURE_NGRAM_LENGTH, CommonTextToolsConfig.NGRAM_SIMILARITY_THRESHOLD); - } - - /** - * Constructs a new {@link NgramMeasure}. - * - * @param variant the variant that should be used - * @param n the length of the considered n-grams, must be a positive integer - * @param similarityThreshold the threshold above which words are considered similar, between 0 and 1 - * @throws IllegalArgumentException if {@code n} or similarityThreshold are invalid - */ - public NgramMeasure(Variant variant, int n, double similarityThreshold) throws IllegalArgumentException { - this.variant = Objects.requireNonNull(variant); - this.n = n; - this.similarityThreshold = similarityThreshold; - - if (n <= 0) { - throw new IllegalArgumentException("n must be a positive integer: " + n); - } - - if (similarityThreshold < 0.0 || similarityThreshold > 1.0) { - throw new IllegalArgumentException("similarityThreshold outside of valid range: " + similarityThreshold); - } - } - - @Override - public boolean areWordsSimilar(ComparisonContext comparisonContext) { - Objects.requireNonNull(comparisonContext); - return this.getSimilarity(comparisonContext) >= this.similarityThreshold; - } - - @Override - public double getSimilarity(ComparisonContext comparisonContext) { - double distance = this.calculateDistance(comparisonContext.firstTerm(), comparisonContext.secondTerm()); - - double normalizedDistance = distance / Math.max(comparisonContext.firstTerm().length(), comparisonContext.secondTerm().length()); - - return 1.0 - normalizedDistance; - } - - /** - * Calculates the distance between the two given strings. - * - * @param x the first string - * @param y the second string - * @return the distance - */ - public double calculateDistance(String x, String y) { - Objects.requireNonNull(x); - Objects.requireNonNull(y); - StringBuilder xBuilder = new StringBuilder(x); - StringBuilder yBuilder = new StringBuilder(y); - - if (xBuilder.isEmpty() || yBuilder.isEmpty()) { - return Math.max(xBuilder.length(), yBuilder.length()); - } - - int k = xBuilder.length(); - int l = yBuilder.length(); - double[][] d = new double[k + 1][l + 1]; - - for (int u = 1; u <= this.n - 1; u++) { - if (this.variant == Variant.LUCENE) { - xBuilder = new StringBuilder().append(LUCENE_PREFIX_CHARACTER).append(xBuilder); - yBuilder = new StringBuilder().append(LUCENE_PREFIX_CHARACTER).append(yBuilder); - } else if (this.variant == Variant.POSITIONAL) { - xBuilder = new StringBuilder().append(xBuilder.charAt(0)).append(xBuilder); - yBuilder = new StringBuilder().append(yBuilder.charAt(0)).append(yBuilder); - } else { - throw new UnsupportedOperationException("unknown variant: " + this.variant); - } - } - - for (int i = 0; i <= k; i++) { - d[i][0] = i; - } - - for (int j = 1; j <= l; j++) { - d[0][j] = j; - } - - for (int i = 1; i <= k; i++) { - for (int j = 1; j <= l; j++) { - double dN = this.dN(this.n, i - 1, j - 1, xBuilder.toString(), yBuilder.toString()); - - d[i][j] = this.min(d[i - 1][j] + 1.0, d[i][j - 1] + 1.0, d[i - 1][j - 1] + dN); - } - } - - return d[k][l]; - } - - private double dN(int n, int i, int j, String x, String y) { - double sum = 0.0; - double actualN = n; - - for (int u = 1; u <= n; u++) { - double diff = this.d1(x.charAt(i + u - 1), y.charAt(j + u - 1)); - - sum += diff; - - if (this.variant == Variant.LUCENE && diff == 0 && x.charAt(i + u - 1) == LUCENE_PREFIX_CHARACTER) { - actualN -= 1.0; // Ignore prefix character in LUCENE mode - } - } - - return (1.0 / actualN) * sum; - } - - private double d1(char xChar, char yChar) { - return xChar == yChar ? 0.0 : 1.0; - } - - private double min(double a, double b, double c) { - return Math.min(a, Math.min(b, c)); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java deleted file mode 100644 index 3e0b04af3..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimDataSource.java +++ /dev/null @@ -1,115 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.Objects; -import java.util.Optional; - -import org.sqlite.SQLiteConfig; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; -import opennlp.tools.stemmer.PorterStemmer; - -/** - * Provides access to the SEWordSim sqlite database. Instances of this class keep an open connection to the sqlite file until {@link #close()} is called. - */ -public class SEWordSimDataSource implements AutoCloseable { - - private static final String EXISTS_QUERY = "SELECT EXISTS(SELECT * FROM `wsim` WHERE `term_1` = ?) AS `ex`;"; - private static final String SELECT_QUERY = "SELECT `similarity` FROM `wsim` WHERE `term_1` = ? AND `term_2` = ?;"; - private static final String SELECT_ALL_QUERY = "SELECT DISTINCT `term_1` FROM `wsim`;"; - - private final Connection connection; - private final PreparedStatement selectStatement; - private final PorterStemmer stemmer = new PorterStemmer(); - - /** - * Construct a new {@link SEWordSimDataSource}. Once instantiated, a connection to the file will be kept open until {@link #close()} is called on this - * instance. - * - * @param sqliteFile the path to the sqlite database file - * @throws SQLException if connecting to the sqlite database fails - */ - public SEWordSimDataSource(Path sqliteFile) throws SQLException { - if (!Files.exists(sqliteFile)) { - throw new IllegalArgumentException("sqliteFile does not exist: " + sqliteFile); - } - - SQLiteConfig cfg = WordSimUtils.getSqLiteConfig(); - - this.connection = cfg.createConnection("jdbc:sqlite:" + sqliteFile); - this.selectStatement = this.connection.prepareStatement(SELECT_QUERY); - } - - /** - * Checks whether the stemmed version of the given word is contained in the database. - * - * @param word the word to be checked - * @return {@code true} if the stemmed version of the given word is contained in the database - * @throws SQLException if a database access error occurs - */ - public boolean containsWord(String word) throws SQLException { - Objects.requireNonNull(word); - - if (word.isEmpty()) { - return false; - } - - word = this.stemmer.stem(word); - - try (var statement = this.connection.prepareStatement(EXISTS_QUERY)) { - statement.setString(1, word); - - try (var result = statement.executeQuery()) { - if (result.next()) { - return result.getInt("ex") > 0; - } - } - } - - return false; - } - - /** - * Attempts to retrieve the similarity score for the given pair of words. - * - * @param firstWord the first word - * @param secondWord the second word - * @return the similarity score, ranging from {@code 0.0} to {@code 1.0}, or {@link Optional#empty()} if the database does not contain the given word pair - * @throws SQLException if a database access error occurs - */ - public Optional getSimilarity(String firstWord, String secondWord) throws SQLException { - Objects.requireNonNull(firstWord); - Objects.requireNonNull(secondWord); - - firstWord = this.stemmer.stem(firstWord); - secondWord = this.stemmer.stem(secondWord); - - this.selectStatement.setString(1, firstWord); - this.selectStatement.setString(2, secondWord); - - try (var result = this.selectStatement.executeQuery()) { - if (result.next()) { - var similarity = result.getDouble("similarity"); - return Optional.of(similarity); - } - } - - return Optional.empty(); - } - - /** - * Closes the connection to the sqlite file. - * - * @throws SQLException if a database access error occurs - */ - @Override - public void close() throws SQLException { - this.connection.close(); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java deleted file mode 100644 index 86b0cd08b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/sewordsim/SEWordSimMeasure.java +++ /dev/null @@ -1,72 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.sewordsim; - -import java.nio.file.Path; -import java.sql.SQLException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; -import edu.kit.kastel.mcse.ardoco.core.common.util.CommonTextToolsConfig; - -/** - * This word similarity measures utilizes the SEWordSim database from Tian et al. 2014 - */ -public class SEWordSimMeasure implements WordSimMeasure { - - private static final Logger LOGGER = LoggerFactory.getLogger(SEWordSimMeasure.class); - - private SEWordSimDataSource dataSource; - private final double similarityThreshold; - - /** - * Constructs a new {@link SEWordSimMeasure} using the settings provided by {@link CommonTextToolsConfig}. - */ - public SEWordSimMeasure() { - this(CommonTextToolsConfig.SEWORDSIM_SIMILARITY_THRESHOLD); - } - - /** - * Constructs a new {@link SEWordSimMeasure} instance. - * - * @param similarityThreshold the threshold above which words are considered similar, between 0 and 1 - */ - public SEWordSimMeasure(double similarityThreshold) { - this.similarityThreshold = similarityThreshold; - - if (similarityThreshold < 0.0 || similarityThreshold > 1.0) { - throw new IllegalArgumentException("similarityThreshold outside of valid range: " + similarityThreshold); - } - } - - @Override - public boolean areWordsSimilar(ComparisonContext comparisonContext) { - var similarity = this.getSimilarity(comparisonContext); - return !Double.isNaN(similarity) && similarity >= this.similarityThreshold; - } - - @Override - public double getSimilarity(ComparisonContext comparisonContext) { - double similarity = Double.NaN; - - try { - similarity = this.getDataSource().getSimilarity(comparisonContext.firstTerm(), comparisonContext.secondTerm()).orElse(Double.NaN); - } catch (SQLException e) { - LOGGER.error("Failed to query the SEWordSim database for word comparison: {}", comparisonContext, e); - } - return similarity; // words are probably missing from the database - } - - private SEWordSimDataSource getDataSource() { - if (this.dataSource == null) { - try { - this.dataSource = new SEWordSimDataSource(Path.of(CommonTextToolsConfig.SEWORDSIM_DB_FILE_PATH)); - } catch (SQLException e) { - throw new IllegalArgumentException(e); - } - } - return this.dataSource; - } -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java index e99c838d2..48c44a20e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/ComparisonStrategy.java @@ -13,8 +13,6 @@ public interface ComparisonStrategy { ComparisonStrategy AT_LEAST_ONE = new AtLeastOneStrategy(); - ComparisonStrategy MAJORITY = new MajorityStrategy(); - /** * Evaluates whether the words from the given context are similar by combining the verdicts of the specified measures. * diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java deleted file mode 100644 index 25ba7b96d..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/strategy/MajorityStrategy.java +++ /dev/null @@ -1,34 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.strategy; - -import java.util.List; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; - -/** - * Comparison strategy: accepts a word pair as similar if the majority of measures accept it as similar. - */ -public class MajorityStrategy implements ComparisonStrategy { - - /** - * Returns true if the majority of measures consider the words similar. - * - * @param comparisonContext the comparison context - * @param measures the measures to use - * @return true if the majority of measures return true - */ - @Override - public boolean areWordsSimilar(ComparisonContext comparisonContext, List measures) { - int acceptances = 0; - - for (WordSimMeasure measure : measures) { - if (measure.areWordsSimilar(comparisonContext)) { - acceptances++; - } - } - - return acceptances > (measures.size() / 2); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java deleted file mode 100644 index 61164cd49..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/RetrieveVectorException.java +++ /dev/null @@ -1,17 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.io.Serial; - -/** - * An exception that can occur while trying to retrieve a vector. - */ -public class RetrieveVectorException extends Exception { - @Serial - private static final long serialVersionUID = 6771335689887319781L; - - public RetrieveVectorException(String message, Throwable cause) { - super(message, cause); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java deleted file mode 100644 index 9350aa8b8..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorBasedWordSimMeasure.java +++ /dev/null @@ -1,65 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Objects; - -import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimMeasure; - -/** - * Abstract base for word similarity measures using vector embeddings. Manages a cache for lookup speed. - */ -@Deterministic -public abstract class VectorBasedWordSimMeasure implements WordSimMeasure { - - private static final float[] ZERO_VECTOR = {}; - private final Map vectorCache = new LinkedHashMap<>(); - - protected abstract WordVectorDataSource getVectorDataSource(); - - /** - * Compares two words by computing the cosine similarity between their vector representations. - * Returns 0.0 if a vector is not found. - * - * @param firstWord the first word - * @param secondWord the second word - * @return the similarity score between the two words, between 0.0 and 1.0 - * @throws RetrieveVectorException if an error occurs while retrieving the vectors - */ - public double compareVectors(String firstWord, String secondWord) throws RetrieveVectorException { - Objects.requireNonNull(firstWord); - Objects.requireNonNull(secondWord); - - if (firstWord.equals(secondWord)) { - return 1.0; - } - - float[] firstVec = this.getVectorFromCacheOrDatabase(firstWord); - - if (VectorUtils.isZero(firstVec)) { - return 0.0; // no vector representation for the first word - } - - float[] secondVec = this.getVectorFromCacheOrDatabase(secondWord); - - if (VectorUtils.isZero(secondVec)) { - return 0.0; // no vector representation for the second word - } - - return VectorUtils.cosineSimilarity(firstVec, secondVec); - } - - private float[] getVectorFromCacheOrDatabase(String word) throws RetrieveVectorException { - float[] vector = this.vectorCache.getOrDefault(word, null); - - if (vector == null) { - vector = this.getVectorDataSource().getWordVector(word).orElse(ZERO_VECTOR); - this.vectorCache.put(word, vector); - } - - return vector; - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java deleted file mode 100644 index 5fc13025b..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorSqliteDatabase.java +++ /dev/null @@ -1,91 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.nio.ByteBuffer; -import java.nio.file.Files; -import java.nio.file.Path; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Optional; - -import org.sqlite.SQLiteConfig; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.WordSimUtils; - -/** - * Manages a connection to a SQLite database containing vector word embeddings. - * The table {@code words} must have columns {@code word} (TEXT, unique) and {@code vec} (BLOB, non-null). - * Vector blobs are stored as consecutive floats. - */ -public class VectorSqliteDatabase implements WordVectorDataSource, AutoCloseable { - - private static final int BYTES_PER_FLOAT = 4; - private static final String SELECT_QUERY = "SELECT `vec` FROM `words` WHERE `word` = ?"; - - private final Connection connection; - private final PreparedStatement selectStatement; - - /** - * Instantiates the database and opens a connection until {@link #close()} is called. - * - * @param sqliteFile the path to the SQLite file - * @throws SQLException if connecting to the database fails - */ - public VectorSqliteDatabase(Path sqliteFile) throws SQLException { - if (!Files.exists(sqliteFile)) { - throw new IllegalArgumentException("sqliteFile does not exist: " + sqliteFile); - } - - SQLiteConfig cfg = WordSimUtils.getSqLiteConfig(); - - this.connection = cfg.createConnection("jdbc:sqlite:" + sqliteFile); - this.selectStatement = this.connection.prepareStatement(SELECT_QUERY); - } - - /** - * Attempts to retrieve the vector representation of the given word. - * - * @param word the word - * @return the vector representation, or {@link Optional#empty()} if no representation exists in the database. - * @throws RetrieveVectorException if a database access error occurs - */ - @Override - public Optional getWordVector(String word) throws RetrieveVectorException { - try { - this.selectStatement.setString(1, word); - } catch (SQLException e) { - throw new RetrieveVectorException("unable to pass word to the database: " + word, e); - } - - ByteBuffer bytes = null; - - try (ResultSet result = this.selectStatement.executeQuery()) { - if (result.next()) { - bytes = ByteBuffer.wrap(result.getBytes("vec")); - } - } catch (SQLException e) { - throw new RetrieveVectorException("unable to execute query for word:" + word, e); - } - - if (bytes == null) { - return Optional.empty(); - } - - float[] vec = new float[bytes.capacity() / BYTES_PER_FLOAT]; - - for (int i = 0; i < vec.length; i++) { - vec[i] = bytes.getFloat(); - } - - return Optional.of(vec); - } - - @Override - public void close() throws Exception { - this.selectStatement.close(); - this.connection.close(); - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java deleted file mode 100644 index aa23a9f72..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtils.java +++ /dev/null @@ -1,142 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.util.Objects; - -/** - * Utility functions for double and float vectors. - */ -public class VectorUtils { - - /** - * Calculates the cosine similarity between two vectors. If both are zero, returns 1.0; if only one is zero, returns 0.0. - * - * @param firstVec the first vector - * @param secondVec the second vector - * @return the cosine similarity - * @throws IllegalArgumentException if the vectors have different lengths - */ - public static double cosineSimilarity(double[] firstVec, double[] secondVec) { - Objects.requireNonNull(firstVec); - Objects.requireNonNull(secondVec); - if (firstVec.length != secondVec.length) { - throw new IllegalArgumentException("vector length does not match!"); - } - - if (isZero(firstVec) && isZero(secondVec)) { - return 1.0; // similarity between 0 and 0 should probably be 1.0 - } - - if (isZero(firstVec) || isZero(secondVec)) { - return 0.0; // similarity between 0 and something else should probably be 0.0 - } - - double dotProduct = 0.0; - double firstNorm = 0.0; - double secondNorm = 0.0; - - for (int i = 0; i < firstVec.length; i++) { - dotProduct += firstVec[i] * secondVec[i]; - firstNorm += Math.pow(firstVec[i], 2); - secondNorm += Math.pow(secondVec[i], 2); - } - - return dotProduct / (Math.sqrt(firstNorm) * Math.sqrt(secondNorm)); - } - - /** - * Calculates the cosine similarity between two vectors. The two vectors must have the same length. - * - * @param firstVec the first vector - * @param secondVec the second vector - * @return the cosine similarity - * @throws IllegalArgumentException if the vectors have different lengths - */ - public static double cosineSimilarity(float[] firstVec, float[] secondVec) { - Objects.requireNonNull(firstVec); - Objects.requireNonNull(secondVec); - - double[] firstVecDouble = new double[firstVec.length]; - double[] secondVecDouble = new double[secondVec.length]; - for (int i = 0; i < firstVec.length; i++) { - firstVecDouble[i] = firstVec[i]; - secondVecDouble[i] = secondVec[i]; - } - - return cosineSimilarity(firstVecDouble, secondVecDouble); - } - - /** - * Checks whether the given vector contains any non-zero numbers. - * - * @param vector the vector to check - * @return {@code true} if the given vector either has no entries or if the only entries are zero - */ - public static boolean isZero(double[] vector) { - Objects.requireNonNull(vector); - - for (double entry : vector) { - if (entry != 0.0) { - return false; - } - } - - return true; - } - - /** - * Checks whether the given vector contains any non-zero numbers. - * - * @param vector the vector to check - * @return {@code true} if the given vector either has no entries or if the only entries are zero - */ - public static boolean isZero(float[] vector) { - Objects.requireNonNull(vector); - - for (float entry : vector) { - if (entry != 0.0f) { - return false; - } - } - - return true; - } - - /** - * Adds the given vectors together and stores the resulting vector in the first argument. The two vectors must - * have the same length. - * - * @param result the first vector that will also be the result vector after the addition - * @param toAdd the second vector - */ - public static void add(double[] result, double[] toAdd) { - Objects.requireNonNull(result); - Objects.requireNonNull(toAdd); - - if (result.length != toAdd.length) { - throw new IllegalArgumentException("vectors of different lengths: " + result.length + " != " + toAdd.length); - } - - for (int i = 0; i < result.length; i++) { - result[i] += toAdd[i]; - } - } - - /** - * Scales the given vector by the given scalar. - * - * @param vector the vector to scale - * @param scalar the scalar - */ - public static void scale(double[] vector, double scalar) { - Objects.requireNonNull(vector); - - for (int i = 0; i < vector.length; i++) { - vector[i] = vector[i] * scalar; - } - } - - private VectorUtils() { - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java deleted file mode 100644 index 7731410cf..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorDataSource.java +++ /dev/null @@ -1,20 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.util.Optional; - -/** - * A data source that provides vector representations for words. - */ -public interface WordVectorDataSource { - - /** - * Attempts to retrieve the vector representation for the given word. - * - * @param word the word - * @return the vector representation, or {@link Optional#empty()} if not found - * @throws RetrieveVectorException if an error occurs while retrieving the vector - */ - Optional getWordVector(String word) throws RetrieveVectorException; - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java deleted file mode 100644 index 001ba8f60..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/WordVectorSqliteImporter.java +++ /dev/null @@ -1,213 +0,0 @@ -/* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardOpenOption; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.sqlite.SQLiteConfig; -import org.sqlite.SQLiteOpenMode; - -/** - * Reads a file containing word vector embeddings and inserts them into a sqlite database. - *

    - * The database must contain a table called {@code words} with two columns: {@code word} and {@code vec}. The {@code word} column must be a {@code TEXT} column - * while the {@code vec} column must be a {@code BLOB}. Vector representations will be inserted as a consecutive sequence of floats. The amount of floats in a - * sequence depends on the dimension of the vectors. - *

    - * This class can be customized by extending it and overriding the {@link #processWord(String)} and {@link #filterWord(String)} methods. Both methods are called - * for each word and allow filtering/modifying words before they are inserted into the database. - */ -public class WordVectorSqliteImporter { - - private static final int DEFAULT_MAX_WORD_LENGTH = 300; - private static final Logger LOGGER = LoggerFactory.getLogger(WordVectorSqliteImporter.class); - - /** - * Launches an import process. The first string in the args array must be the path to the file containing the vector representations. The second string in - * the args array must be the path to the sqlite database file. The third string in the args array must be the dimension of the vectors. - * - * @param args the args array - * @throws IOException if an io error occurs - * @throws SQLException if a database related error occurs - */ - public static void main(String[] args) throws SQLException, IOException { - ImportResult result = new WordVectorSqliteImporter(args[0], args[1], Integer.parseInt(args[2])).beginImport(); - - LOGGER.info("Inserted: {}\n", result.inserted); - LOGGER.info("Skipped: ({})", result.skippedWords.size()); - result.skippedWords.forEach(word -> LOGGER.info("{}\n", word)); - } - - record ImportResult(long inserted, ImmutableList skippedWords) { - } - - private final String vectorFile; - private final String dbFile; - private final int dimension; - - private final long startLine; - private final long endLine; - private final int maxWordLength; - private final boolean dryRun; - - /** - * Constructs a new {@link WordVectorSqliteImporter} instance. - * - * @param vectorFile the path to the file that contains the vector representations for each word - * @param dbFile the path to the sqlite database into which the vector representations will be inserted - * @param dimension the dimension of the vectors - */ - public WordVectorSqliteImporter(String vectorFile, String dbFile, int dimension) { - this(vectorFile, dbFile, dimension, DEFAULT_MAX_WORD_LENGTH, 0, -1L, false); - } - - /** - * Constructs a new {@link WordVectorSqliteImporter} instance. To start the import process, call {@link #beginImport()}. - * - * @param vectorFile the path ot the file that contains the vector representations for each word - * @param dbFile the path to the sqlite database into which the vector representations will be inserted - * @param dimension the dimension of the vectors - * @param maxWordLength the maximum length a word is allowed to have to be inserted into the database - * @param startLine at which line of the {@code vectorFile} this importer will start inserting - * @param endLine at which line of the {@code vectorFile} this importer will stop inserting - * @param dryRun whether this importer should actually insert. Use {@code false} to run this importer without actually inserting anything - */ - public WordVectorSqliteImporter(String vectorFile, String dbFile, int dimension, int maxWordLength, long startLine, long endLine, boolean dryRun) { - this.vectorFile = vectorFile; - this.dbFile = dbFile; - this.dimension = dimension; - this.maxWordLength = maxWordLength; - this.startLine = startLine; - this.endLine = endLine; - this.dryRun = dryRun; - - if (!Files.exists(Path.of(vectorFile))) { - throw new IllegalStateException("vectorFile does not exist: " + vectorFile); - } - - if (!Files.exists(Path.of(dbFile))) { - throw new IllegalStateException("dbFile does not exist: " + dbFile); - } - - if (this.maxWordLength < 0) { - throw new IllegalArgumentException("maxWordLength must be a non-negative integer"); - } - } - - /** - * Starts the import process. - * - * @return the result of the import process - * @throws SQLException if an error occurs while interacting with the database - * @throws IOException if an error occurs while interacting with the vector file - * @throws IllegalStateException if a vector with an invalid dimension is found - */ - public ImportResult beginImport() throws SQLException, IOException, IllegalStateException { - final List skippedWords = new ArrayList<>(); - - long linesRead = 0; - long inserted = 0; - - try (Connection connection = this.connect(); - PreparedStatement statement = this.prepareSelect(connection); - var in = Files.newInputStream(Path.of(this.vectorFile), StandardOpenOption.READ); - var bufferedReader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))) { - - ByteBuffer buffer = ByteBuffer.allocate(this.dimension * 4); - - while (bufferedReader.ready() && linesRead < this.endLine) { - var line = bufferedReader.readLine(); - linesRead++; - - if (linesRead >= this.startLine) { - var parts = line.split(" ", -1); - if (parts.length - 1 != this.dimension) { - throw new IllegalStateException("importer has read line with invalid vector dimension: \"" + line + "\""); - } - - // Process the word - String word = parts[0]; - // Filter out weird words from dataset - if (word.length() > this.maxWordLength || !this.filterWord(word)) { - skippedWords.add(word); - continue; - } - word = this.processWord(word); - - // Process the vector - buffer.clear(); - for (int i = 0; i < parts.length - 1; i++) { - float value = Float.parseFloat(parts[i + 1]); - buffer.putFloat(value); - } - - this.insertIntoDatabase(statement, buffer, word); - inserted++; - } - } - } - - return new ImportResult(inserted, Lists.immutable.withAll(skippedWords)); - } - - private void insertIntoDatabase(PreparedStatement statement, ByteBuffer buffer, String word) throws SQLException { - if (!this.dryRun) { - statement.setString(1, word); - statement.setBytes(2, buffer.array()); - statement.execute(); - } else { - LOGGER.debug("Would have inserted: {}", word); - } - } - - private Connection connect() throws SQLException { - var cfg = new SQLiteConfig(); - cfg.setLockingMode(SQLiteConfig.LockingMode.EXCLUSIVE); - cfg.setJournalMode(SQLiteConfig.JournalMode.OFF); - cfg.setSynchronous(SQLiteConfig.SynchronousMode.OFF); - cfg.setOpenMode(SQLiteOpenMode.NOMUTEX); - - return cfg.createConnection("jdbc:sqlite:" + Path.of(this.dbFile).toAbsolutePath()); - } - - private PreparedStatement prepareSelect(Connection conn) throws SQLException { - return conn.prepareStatement("INSERT INTO `words` (`word`, `vec`) VALUES (?, ?);"); - } - - /** - * This method is called for each word that is read from the vector file. The string that is returned will then be used for insertion. - * - * @param word the word to process - * @return the processed version of the word - */ - protected String processWord(String word) { - return word; - } - - /** - * This method is called for each word that is read from the vector file. It allows filtering which words are inserted into database and which words are - * skipped. - * - * @param word the word - * @return returns {@code true} if the should should be inserted into the database, {@code false} if not. - */ - protected boolean filterWord(String word) { - return true; - } - -} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java index d3d71df2e..bd00fa3ef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonTextToolsConfig.java @@ -50,7 +50,7 @@ private CommonTextToolsConfig() { public static final double JAROWINKLER_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("jaroWinkler_SimilarityThreshold"); /** - * The minimal propotion of two lists that need to be similar, that both are similar. Used in SimilarityUtils. + * The minimal proportion of two lists that need to be similar, that both are similar. Used in SimilarityUtils. */ public static final double GET_MOST_RECOMMENDED_I_BY_REF_MIN_PROPORTION = CONFIG.getPropertyAsDouble("getMostRecommendedIByRef_MinProportion"); /** @@ -58,45 +58,6 @@ private CommonTextToolsConfig() { */ public static final double GET_MOST_RECOMMENDED_I_BY_REF_INCREASE = CONFIG.getPropertyAsDouble("getMostRecommendedIByRef_Increase"); - /** - * Decides whether the NGram similarity measure should be used. - */ - public static final boolean NGRAM_ENABLED = CONFIG.isPropertyEnabled("ngram_Enabled"); - /** - * The length of ngrams for the N-gram word similarity measure. - */ - public static final int NGRAM_MEASURE_NGRAM_LENGTH = CONFIG.getPropertyAsInt("ngram_NgramLength"); - /** - * The threshold for the ngram similarity measure above which words are considered similar. - */ - public static final double NGRAM_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("ngram_SimilarityThreshold"); - - /** - * Decides whether the SEWordSim similarity measure should be used. - */ - public static final boolean SEWORDSIM_ENABLED = CONFIG.isPropertyEnabled("sewordsim_Enabled"); - /** - * The threshold for the SEWordSim similarity measure above which words are considered similar. - */ - public static final double SEWORDSIM_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("sewordsim_SimilarityThreshold"); - /** - * The path to the sqlite database file used by the SEWordSim word similarity measure. - */ - public static final String SEWORDSIM_DB_FILE_PATH = CONFIG.getProperty("sewordsim_DatabaseFilePath"); - - /** - * Decides whether the GloVe similarity measure should be used. - */ - public static final boolean GLOVE_ENABLED = CONFIG.isPropertyEnabled("glove_Enabled"); - /** - * The threshold for the GloVe similarity measure above which words are considered similar. - */ - public static final double GLOVE_SIMILARITY_THRESHOLD = CONFIG.getPropertyAsDouble("glove_SimilarityThreshold"); - /** - * The path to the sqlite database file used by the GloVe word similarity measure. - */ - public static final String GLOVE_DB_FILE_PATH = CONFIG.getProperty("glove_DatabaseFilePath"); - private static ResourceAccessor loadParameters() { return new ResourceAccessor("/configs/CommonTextToolsConfig.properties", true); } diff --git a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties index e244206d8..22eb44761 100644 --- a/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties +++ b/framework/common/src/main/resources/configs/CommonTextToolsConfig.properties @@ -10,15 +10,4 @@ levenshtein_Threshold=0.90 # Jaro Winkler jaroWinkler_Enabled=true jaroWinkler_SimilarityThreshold=0.90 -# N-Gram -ngram_Enabled=false -ngram_NgramLength=2 -ngram_SimilarityThreshold=0.7 -# SE-WordSim -sewordsim_Enabled=false -sewordsim_SimilarityThreshold=1.0 -sewordsim_DatabaseFilePath= -# Glove -glove_Enabled=false -glove_SimilarityThreshold=0.75 -glove_DatabaseFilePath= + diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java deleted file mode 100644 index b7b1dcaf5..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/measures/ngram/NgramMeasureTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.measures.ngram; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import org.apache.commons.text.similarity.LevenshteinDistance; -import org.junit.jupiter.api.Test; - -import edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.ComparisonContext; - -class NgramMeasureTest { - - private static final List RANDOM_WORDS = List.of("acidic", "identify", "downtown", "elbow", "remove", "itch", "dirt", - "a b c d e f g h i j k l m n o p", "welcome", "insect", "smoke", "change"); - - @Test - void testUnigramDistance() { - var measure = new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 1, 1.0); - var levenshteinDistance = new LevenshteinDistance(); - - assertEquals(1.0, measure.calculateDistance("Hello", "Hella"), 0.01); - - for (String firstWord : RANDOM_WORDS) { - for (String secondWord : RANDOM_WORDS) { - double levenshteinResult = levenshteinDistance.apply(firstWord, secondWord); - double ngramResult = measure.calculateDistance(firstWord, secondWord); - - assertEquals(levenshteinResult, ngramResult, 0.1); - } - } - - assertEquals(0.0, measure.calculateDistance("", "")); - assertEquals("Hello".length(), measure.calculateDistance("Hello", "")); - assertEquals("Hello".length(), measure.calculateDistance("", "Hello")); - } - - @Test - void testUnigramSimilarity() { - var measure = new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 1, 0.7); - - assertTrue(measure.areWordsSimilar(new ComparisonContext("Hello", "Hella"))); // 0.8 - assertFalse(measure.areWordsSimilar(new ComparisonContext("Hello", "Heal"))); // 0.6 - } - - @Test - void testBigram() { - var measure = new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 2, 0.7); - assertEquals(0.5, measure.calculateDistance("Hello", "Hella"), 0.01); - - assertTrue(measure.areWordsSimilar(new ComparisonContext("Hello", "Hella"))); // 0.8 - assertFalse(measure.areWordsSimilar(new ComparisonContext("Hello", "Heal"))); // 0.6 - - assertEquals(0.0, measure.calculateDistance("", "")); - } - - @Test - void testTrigram() { - var measure = new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 3, 0.7); - assertEquals(1.0 / 3.0, measure.calculateDistance("Hello", "Hella"), 0.01); - - assertTrue(measure.areWordsSimilar(new ComparisonContext("Hello", "Hella"))); // 0.8 - assertFalse(measure.areWordsSimilar(new ComparisonContext("Hello", "Heal"))); // 0.6 - - assertEquals(0.0, measure.calculateDistance("", "")); - } - - @Test - void testConstructor() { - assertThrows(IllegalArgumentException.class, () -> new NgramMeasure(NgramMeasure.Variant.LUCENE, -1, 0.5)); - assertThrows(IllegalArgumentException.class, () -> new NgramMeasure(NgramMeasure.Variant.LUCENE, 1, -0.1)); - assertThrows(IllegalArgumentException.class, () -> new NgramMeasure(NgramMeasure.Variant.LUCENE, 1, 1.1)); - assertThrows(NullPointerException.class, () -> new NgramMeasure(null, 1, 1.1)); - new NgramMeasure(NgramMeasure.Variant.LUCENE, 1, 0.0); - new NgramMeasure(NgramMeasure.Variant.LUCENE, 1, 0.5); - new NgramMeasure(NgramMeasure.Variant.LUCENE, 1, 1.0); - new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 1, 1.0); - new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 2, 1.0); - new NgramMeasure(NgramMeasure.Variant.POSITIONAL, 12345, 1.0); - new NgramMeasure(NgramMeasure.Variant.POSITIONAL, Integer.MAX_VALUE, 1.0); - } - -} diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java deleted file mode 100644 index 218fc5f65..000000000 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/vector/VectorUtilsTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* Licensed under MIT 2022-2023. */ -package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim.vector; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; - -import org.junit.jupiter.api.Test; - -class VectorUtilsTest { - - record Example(float[] firstVec, float[] secondVec, double expectedCosineSimilarity) { - } - - private static final List EXAMPLES = List.of(new Example(new float[0], new float[0], 1.0), new Example(new float[] { 0.0f, 0.0f }, new float[] { - 0.0f, 0.0f }, 1.0), new Example(new float[] { 0.0f, 0.0f }, new float[] { 1.0f, 0.0f }, 0.0), new Example(new float[] { 0.0f, 0.0f }, new float[] { - 0.0f, 1.0f }, 0.0), new Example(new float[] { 1.0f, 2.0f }, new float[] { 3.0f, 4.0f }, 0.9838699), new Example(new float[] { 345.5452f, - 759.4141f }, new float[] { 9563.325f, 43562.53f }, 0.9778399523249), new Example(new float[] { 0.321f, 0.05f }, new float[] { - 331.32f, 7.343f }, 0.99125289), new Example(new float[] { 1.0f, 0.0f }, new float[] { 0.0f, 1.0f }, 0.0), new Example( - new float[] { 1.0f, 0.5f }, new float[] { 0.0f, 1.0f }, 0.44721359)); - - @Test - void testFloatCosineSimilarity() { - assertThrows(NullPointerException.class, () -> VectorUtils.cosineSimilarity(null, new double[1])); - assertThrows(NullPointerException.class, () -> VectorUtils.cosineSimilarity(new double[1], null)); - assertThrows(IllegalArgumentException.class, () -> VectorUtils.cosineSimilarity(new double[1], new double[2])); - - for (Example example : EXAMPLES) { - double result = VectorUtils.cosineSimilarity(example.firstVec, example.secondVec); - assertEquals(example.expectedCosineSimilarity, result, 0.005); - } - } - - @Test - void testDoubleCosineSimilarity() { - assertThrows(NullPointerException.class, () -> VectorUtils.cosineSimilarity(null, new float[1])); - assertThrows(NullPointerException.class, () -> VectorUtils.cosineSimilarity(new float[1], null)); - assertThrows(IllegalArgumentException.class, () -> VectorUtils.cosineSimilarity(new float[1], new float[2])); - - for (Example example : EXAMPLES) { - double[] firstVecDouble = new double[example.firstVec.length]; - double[] secondVecDouble = new double[example.secondVec.length]; - - for (int i = 0; i < example.firstVec.length; i++) { - firstVecDouble[i] = example.firstVec[i]; - secondVecDouble[i] = example.secondVec[i]; - } - - double result = VectorUtils.cosineSimilarity(firstVecDouble, secondVecDouble); - assertEquals(example.expectedCosineSimilarity, result, 0.005); - } - } - - @Test - void testIsZero() { - assertThrows(NullPointerException.class, () -> VectorUtils.isZero((float[]) null)); - assertThrows(NullPointerException.class, () -> VectorUtils.isZero((double[]) null)); - - assertTrue(VectorUtils.isZero(new float[0])); - assertTrue(VectorUtils.isZero(new double[0])); - assertTrue(VectorUtils.isZero(new float[] { 0.0f })); - assertTrue(VectorUtils.isZero(new float[] { 0.0f, 0.0f, 0.0f })); - assertTrue(VectorUtils.isZero(new double[] { 0.0 })); - assertTrue(VectorUtils.isZero(new double[] { 0.0, 0.0, 0.0 })); - assertFalse(VectorUtils.isZero(new float[] { 1.0f, 3.0f })); - assertFalse(VectorUtils.isZero(new double[] { 1.0, 3.0 })); - } - - @Test - void testAdd() { - assertThrows(NullPointerException.class, () -> VectorUtils.add(null, new double[0])); - assertThrows(NullPointerException.class, () -> VectorUtils.add(new double[0], null)); - assertThrows(IllegalArgumentException.class, () -> VectorUtils.add(new double[1], new double[2])); - - double[] result = { 1.0, 2.0 }; - VectorUtils.add(result, new double[] { 3.0, 4.0 }); - assertArrayEquals(new double[] { 4.0, 6.0 }, result); - } - - @Test - void testScale() { - assertThrows(NullPointerException.class, () -> VectorUtils.scale(null, 1.0)); - - double[] result = { 1.0, 2.0 }; - VectorUtils.scale(result, 2.0); - assertArrayEquals(new double[] { 2.0, 4.0 }, result); - } - -} From 1f7e6943bb50242070be71e5584f3b2383cecbee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 15:27:33 +0200 Subject: [PATCH 094/115] Remove legacy support to get code configuration --- pipeline-core/pom.xml | 6 ++++++ .../core/execution/CodeRunnerBaseTest.java | 17 +++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pipeline-core/pom.xml b/pipeline-core/pom.xml index 7c6dbbfdc..ecb607cde 100644 --- a/pipeline-core/pom.xml +++ b/pipeline-core/pom.xml @@ -18,6 +18,12 @@ common ${revision} + + io.github.ardoco.tlr + model-provider + ${revision} + test + org.eclipse.collections eclipse-collections-api diff --git a/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/CodeRunnerBaseTest.java b/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/CodeRunnerBaseTest.java index 34cf0d866..d376a44cc 100644 --- a/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/CodeRunnerBaseTest.java +++ b/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/CodeRunnerBaseTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; import java.io.File; @@ -10,33 +10,34 @@ import org.slf4j.LoggerFactory; import edu.kit.kastel.mcse.ardoco.core.common.RepositoryHandler; +import edu.kit.kastel.mcse.ardoco.tlr.models.agents.CodeConfiguration; public class CodeRunnerBaseTest extends RunnerBaseTest { private static final Logger logger = LoggerFactory.getLogger(CodeRunnerBaseTest.class); protected static final String inputCodeRepository = "https://github.com/ArDoCo/TeaStore.git"; - protected String inputCodeModel = null; + protected CodeConfiguration codeConfiguration = null; protected static String commitHash = "bdc49020a55cfa97eaabbb25744fefbc2697defa"; @BeforeEach void setupCodeDirectories() throws Exception { - if (inputCodeModel != null) { + if (codeConfiguration != null) { logger.debug("Already initialized"); return; } var inputCodeModelDirectory = new File(directory.toFile(), "code"); inputCodeModelDirectory.mkdir(); - var inputCodeModel = new File(inputCodeModelDirectory, "codeModel.acm"); - this.getClass().getResourceAsStream("/code/teastore/codeModel.acm").transferTo(Files.newOutputStream(inputCodeModel.toPath())); - this.inputCodeModel = inputCodeModelDirectory.getAbsolutePath(); + var acmFile = new File(inputCodeModelDirectory, "codeModel.acm"); + this.getClass().getResourceAsStream("/code/teastore/codeModel.acm").transferTo(Files.newOutputStream(acmFile.toPath())); + this.codeConfiguration = new CodeConfiguration(acmFile, CodeConfiguration.CodeConfigurationType.ACM_FILE); if (System.getenv("testCodeFull") != null) { var inputCodeModelDirectoryFull = new File(directory.toFile(), "code-full"); inputCodeModelDirectoryFull.mkdir(); - this.inputCodeModel = inputCodeModelDirectoryFull.getAbsolutePath(); - var successfulClone = RepositoryHandler.shallowCloneRepository(inputCodeRepository, this.inputCodeModel, commitHash); + this.codeConfiguration = new CodeConfiguration(inputCodeModelDirectoryFull, CodeConfiguration.CodeConfigurationType.DIRECTORY); + var successfulClone = RepositoryHandler.shallowCloneRepository(inputCodeRepository, inputCodeModelDirectoryFull.getAbsolutePath(), commitHash); if (!successfulClone) { Assertions.fail("Could not clone repository."); } From 55998f29031690a3cd038fcd387e36b953683a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 15:34:52 +0200 Subject: [PATCH 095/115] Fix architecture again --- .../api/{model => models}/ArchitectureComponentModel.java | 6 +++--- .../core/api/{model => models}/ArchitectureModel.java | 4 ++-- .../ArchitectureModelWithComponentsAndInterfaces.java | 4 ++-- .../mcse/ardoco/core/api/{model => models}/CodeModel.java | 8 ++++---- .../{model => models}/CodeModelWithCompilationUnits.java | 8 ++++---- .../CodeModelWithCompilationUnitsAndPackages.java | 6 +++--- .../mcse/ardoco/core/api/{model => models}/Metamodel.java | 2 +- .../mcse/ardoco/core/api/{model => models}/Model.java | 2 +- .../ardoco/core/api/{model => models}/ModelFormat.java | 2 +- .../ardoco/core/api/{model => models}/ModelStates.java | 2 +- .../architecture/ArchitectureComponent.java | 2 +- .../architecture/ArchitectureInterface.java | 2 +- .../{model => models}/architecture/ArchitectureItem.java | 2 +- .../architecture/ArchitectureMethod.java | 2 +- .../ardoco/core/api/{model => models}/code/ClassUnit.java | 2 +- .../core/api/{model => models}/code/CodeAssembly.java | 2 +- .../api/{model => models}/code/CodeCompilationUnit.java | 2 +- .../ardoco/core/api/{model => models}/code/CodeItem.java | 2 +- .../api/{model => models}/code/CodeItemRepository.java | 2 +- .../core/api/{model => models}/code/CodeModule.java | 2 +- .../core/api/{model => models}/code/CodePackage.java | 2 +- .../api/{model => models}/code/ComputationalObject.java | 2 +- .../core/api/{model => models}/code/ControlElement.java | 2 +- .../ardoco/core/api/{model => models}/code/Datatype.java | 2 +- .../core/api/{model => models}/code/InterfaceUnit.java | 2 +- .../api/{model => models}/code/ProgrammingLanguages.java | 2 +- .../api/stage/codetraceability/ModelCodeTraceLink.java | 4 ++-- .../api/stage/connectiongenerator/ConnectionStates.java | 2 +- .../core/api/stage/inconsistency/InconsistencyStates.java | 2 +- .../recommendationgenerator/RecommendationStates.java | 2 +- .../mcse/ardoco/core/common/util/CommonUtilities.java | 2 +- .../ardoco/core/common/util/DataRepositoryHelper.java | 2 +- .../mcse/ardoco/core/data/DataRepositorySyncer.java | 2 +- .../kastel/mcse/ardoco/core/api/output/ArDoCoResult.java | 6 +++--- .../mcse/ardoco/core/tests/eval/EvaluationProject.java | 2 +- 35 files changed, 50 insertions(+), 50 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/ArchitectureComponentModel.java (91%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/ArchitectureModel.java (84%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/ArchitectureModelWithComponentsAndInterfaces.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/CodeModel.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/CodeModelWithCompilationUnits.java (89%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/CodeModelWithCompilationUnitsAndPackages.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/Metamodel.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/Model.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/ModelFormat.java (87%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/ModelStates.java (96%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/architecture/ArchitectureComponent.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/architecture/ArchitectureInterface.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/architecture/ArchitectureItem.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/architecture/ArchitectureMethod.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/ClassUnit.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodeAssembly.java (94%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodeCompilationUnit.java (99%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodeItem.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodeItemRepository.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodeModule.java (99%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/CodePackage.java (98%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/ComputationalObject.java (95%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/ControlElement.java (93%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/Datatype.java (99%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/InterfaceUnit.java (97%) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/{model => models}/code/ProgrammingLanguages.java (89%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java similarity index 91% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java index 8ce1cd5b0..ab3772e6c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.ArrayList; import java.util.List; @@ -7,8 +7,8 @@ import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureComponent; -import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureComponent; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureItem; /** * Represents a model containing only architecture components. Provides access to architecture components and their type identifiers. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModel.java similarity index 84% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModel.java index 7a11639d5..fea6729a3 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModel.java @@ -1,9 +1,9 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.List; -import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureItem; import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java index 7ac664bb5..1f5658c37 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java @@ -1,11 +1,11 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureItem; /** * Represents an architecture model. This model contains architecture items, including components and interfaces. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModel.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModel.java index ca9a50db1..5d4a102d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModel.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.ArrayList; import java.util.Comparator; @@ -9,9 +9,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import edu.kit.kastel.mcse.ardoco.core.api.entity.Entity; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodePackage; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodePackage; import edu.kit.kastel.mcse.ardoco.core.architecture.NoHashCodeEquals; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java similarity index 89% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java index b8beb4a55..494f16b11 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java @@ -1,14 +1,14 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeCompilationUnit; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeCompilationUnit; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java index d427999cf..103df0ff4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java @@ -1,13 +1,13 @@ /* Licensed under MIT 2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItemRepository; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItemRepository; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index ef5190d41..d6e91898e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; /** * Enum representing the supported metamodel types. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java index afdd40ed9..74960bf7b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.util.List; import java.util.SortedSet; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java similarity index 87% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 86f05fd01..237b45581 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; /** * Enum for the different types of supported architecture (meta-) models. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java similarity index 96% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java index 35d9cb125..1affb006c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/ModelStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelStates.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2022-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model; +package edu.kit.kastel.mcse.ardoco.core.api.models; import java.io.Serial; import java.util.SortedMap; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java index c3d7bc81f..c95e04055 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.models.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java index de8c68330..41ac20d7d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.models.architecture; import java.io.Serial; import java.util.Objects; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureItem.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureItem.java index 96f917ce7..9fe37e1be 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureItem.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.models.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java index f62bfe575..9b0b7d06e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.architecture; +package edu.kit.kastel.mcse.ardoco.core.api.models.architecture; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ClassUnit.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ClassUnit.java index 17841f33d..5950e73b1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ClassUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ClassUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeAssembly.java similarity index 94% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeAssembly.java index 15ca3bb48..d75d5b7c0 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeAssembly.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeAssembly.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.SortedSet; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java index 4a03dd180..d5ac988ec 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItem.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItem.java index e54c7e803..8c55ab3f5 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItem.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItem.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItemRepository.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItemRepository.java index 534f70ae1..478058470 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeItemRepository.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeItemRepository.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.io.Serializable; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeModule.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeModule.java index d0f693d6c..919cacbe6 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodeModule.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeModule.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodePackage.java similarity index 98% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodePackage.java index 372e813ce..977eeeaee 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/CodePackage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodePackage.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.Optional; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ComputationalObject.java similarity index 95% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ComputationalObject.java index 4058d3553..edb09229e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ComputationalObject.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ComputationalObject.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ControlElement.java similarity index 93% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ControlElement.java index f2a440aa1..1e93f7f52 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ControlElement.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ControlElement.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/Datatype.java similarity index 99% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/Datatype.java index 6cb5ab135..450393572 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/Datatype.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/Datatype.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java similarity index 97% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java index d00b6a4df..80527c176 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; import java.io.Serial; import java.util.ArrayList; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java similarity index 89% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java index d3635938f..40df9fc92 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/model/code/ProgrammingLanguages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java @@ -1,5 +1,5 @@ /* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.model.code; +package edu.kit.kastel.mcse.ardoco.core.api.models.code; /** * Utility class providing constants for supported programming languages in the code model. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java index 2c1078d5a..b7cfd3b56 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java @@ -3,8 +3,8 @@ import java.io.Serial; -import edu.kit.kastel.mcse.ardoco.core.api.model.architecture.ArchitectureItem; -import edu.kit.kastel.mcse.ardoco.core.api.model.code.CodeItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureItem; +import edu.kit.kastel.mcse.ardoco.core.api.models.code.CodeItem; import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java index 97d0e5d3e..34a55e169 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator; -import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java index ecea52f46..d685ba0d4 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; -import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java index dbffd30cb..a87602936 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/recommendationgenerator/RecommendationStates.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator; -import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.data.PipelineStepData; /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java index 8b1b9e837..964ccd639 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/CommonUtilities.java @@ -22,7 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.model.Model; +import edu.kit.kastel.mcse.ardoco.core.api.models.Model; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationState; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendedInstance; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java index a2486feb8..09c18c2d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/DataRepositoryHelper.java @@ -3,7 +3,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.InputTextData; import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; -import edu.kit.kastel.mcse.ardoco.core.api.model.ModelStates; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistencyStates; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java index 287bea697..892b45129 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2024-2025. */ package edu.kit.kastel.mcse.ardoco.core.data; -import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; import edu.kit.kastel.mcse.ardoco.core.api.stage.recommendationgenerator.RecommendationStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.textextraction.NounMapping; diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index ca92b8a9a..68c8a9436 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -18,9 +18,9 @@ import edu.kit.kastel.mcse.ardoco.core.api.PreprocessingData; import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.model.Metamodel; -import edu.kit.kastel.mcse.ardoco.core.api.model.Model; -import edu.kit.kastel.mcse.ardoco.core.api.model.ModelStates; +import edu.kit.kastel.mcse.ardoco.core.api.models.Metamodel; +import edu.kit.kastel.mcse.ardoco.core.api.models.Model; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelStates; import edu.kit.kastel.mcse.ardoco.core.api.stage.codetraceability.CodeTraceabilityState; import edu.kit.kastel.mcse.ardoco.core.api.stage.connectiongenerator.ConnectionState; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.Inconsistency; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java index 7fdeaa33d..6150be284 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java @@ -7,7 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import edu.kit.kastel.mcse.ardoco.core.api.model.ModelFormat; +import edu.kit.kastel.mcse.ardoco.core.api.models.ModelFormat; import edu.kit.kastel.mcse.ardoco.core.common.RepositoryHandler; public enum EvaluationProject { From 3825d683469766448d7db5f1306112de81b61dac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 15:46:08 +0200 Subject: [PATCH 096/115] Cleanup Metamodel code & Names of TLs --- .../ardoco/core/api/models/Metamodel.java | 26 ------------------- .../connectiongenerator/ConnectionState.java | 2 +- ...eLink.java => SentenceModelTraceLink.java} | 8 +++--- 3 files changed, 5 insertions(+), 31 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/{SadModelTraceLink.java => SentenceModelTraceLink.java} (89%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java index d6e91898e..c9b960b75 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Metamodel.java @@ -13,30 +13,4 @@ public enum Metamodel { CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, /** Architecture model with only components. */ ARCHITECTURE_WITH_COMPONENTS; - - /** - * Checks if the given metamodel is a code model. - * - * @param metamodel the metamodel to check - * @return true if it is a code model, false otherwise - */ - public static boolean isCodeModel(Metamodel metamodel) { - return switch (metamodel) { - case CODE_WITH_COMPILATION_UNITS_AND_PACKAGES, CODE_WITH_COMPILATION_UNITS -> true; - case ARCHITECTURE_WITH_COMPONENTS, ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES -> false; - }; - } - - /** - * Checks if the given metamodel is an architecture model. - * - * @param metamodel the metamodel to check - * @return true if it is an architecture model, false otherwise - */ - public static boolean isArchitectureModel(Metamodel metamodel) { - return switch (metamodel) { - case ARCHITECTURE_WITH_COMPONENTS_AND_INTERFACES, ARCHITECTURE_WITH_COMPONENTS -> true; - case CODE_WITH_COMPILATION_UNITS, CODE_WITH_COMPILATION_UNITS_AND_PACKAGES -> false; - }; - } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java index 1b04d0a64..346f72d72 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/ConnectionState.java @@ -39,7 +39,7 @@ default ImmutableSet> getTraceLinks() { var textualInstance = instanceLink.getFirstEndpoint(); for (var nm : textualInstance.getNameMappings()) { for (var word : nm.getWords()) { - var traceLink = new SadModelTraceLink(word.getSentence(), instanceLink.getSecondEndpoint()); + var traceLink = new SentenceModelTraceLink(word.getSentence(), instanceLink.getSecondEndpoint()); traceLinks.add(traceLink); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SentenceModelTraceLink.java similarity index 89% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SentenceModelTraceLink.java index f3376e042..1a5ef71dc 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SadModelTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/connectiongenerator/SentenceModelTraceLink.java @@ -12,7 +12,7 @@ /** * Trace link between a sentence and a model entity. */ -public final class SadModelTraceLink extends TraceLink { +public final class SentenceModelTraceLink extends TraceLink { @Serial private static final long serialVersionUID = 8946290400185965394L; @@ -25,7 +25,7 @@ public final class SadModelTraceLink extends TraceLink Date: Mon, 21 Jul 2025 16:11:58 +0200 Subject: [PATCH 097/115] Speedup calculation by restricting amount of connection & recommendation states --- .../kastel/mcse/ardoco/core/data/DataRepositorySyncer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java index 892b45129..bd1ec0e4f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/DataRepositorySyncer.java @@ -28,7 +28,9 @@ public static void onNounMappingDeletion(DataRepository dataRepository, NounMapp } for (Metamodel mm : Metamodel.values()) { var recommendationState = recommendationStates.get().getRecommendationState(mm); - recommendationState.onNounMappingDeletion(nounMapping, replacement); + if (recommendationState != null) { + recommendationState.onNounMappingDeletion(nounMapping, replacement); + } } } From c1503d0e8aadcba0fc518ce5a5c33c22a96b80eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 21 Jul 2025 20:30:05 +0200 Subject: [PATCH 098/115] delete trace link utilities --- .../core/common/util/TraceLinkUtilities.java | 85 ------------------- .../ardoco/core/common/util/FilePrinter.java | 72 +++++++++++++++- 2 files changed, 69 insertions(+), 88 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java deleted file mode 100644 index 52f8329e3..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/TraceLinkUtilities.java +++ /dev/null @@ -1,85 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.common.util; - -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; - -import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; -import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; -import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; -import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; -import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; - -/** - * Utility class for working with trace links, including methods for converting trace links to string representations and formatting trace link data. - */ -// TODO: We can move that to the trace link classes -public class TraceLinkUtilities { - - private static final String ENTRY_SEPARATOR = ","; - - private TraceLinkUtilities() { - throw new IllegalStateException(); - } - - /** - * Creates a trace link string from two element IDs. - * - * @param firstElementId the first element ID - * @param secondElementId the second element ID - * @return the trace link string - */ - public static String createTraceLinkString(String firstElementId, String secondElementId) { - return firstElementId + ENTRY_SEPARATOR + secondElementId; - } - - /** - * Converts a list of trace links between sentences and model entities to a list of string representations. - * - * @param sadSamTraceLinks the list of trace links - * @return the list of string representations - */ - public static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { - return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() - .getSentence() - .getSentenceNumber() + 1))); - } - - /** - * Converts a list of trace links between architecture entities and model entities to a list of string representations. - * - * @param samCodeTraceLinks the list of trace links - * @return the list of string representations - */ - public static ImmutableList getSamCodeTraceLinksAsStringList( - ImmutableList> samCodeTraceLinks) { - MutableList resultsMut = Lists.mutable.empty(); - for (var traceLink : samCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); - var modelElement = endpointTuple.first(); - var codeElement = endpointTuple.second(); - String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); - resultsMut.add(traceLinkString); - } - return resultsMut.toImmutable(); - } - - /** - * Converts a list of trace links between sentences and model entities to a list of string representations, with sentence number as the first element. - * - * @param sadCodeTraceLinks the list of trace links - * @return the list of string representations - */ - public static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { - MutableList resultsMut = Lists.mutable.empty(); - for (var traceLink : sadCodeTraceLinks) { - Pair endpointTuple = traceLink.asPair(); - var codeElement = endpointTuple.second(); - String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1); - String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString()); - resultsMut.add(traceLinkString); - } - return resultsMut.toImmutable(); - } -} diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java index 885794ad8..dfcf04498 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/FilePrinter.java @@ -19,10 +19,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ArchitectureEntity; +import edu.kit.kastel.mcse.ardoco.core.api.entity.ModelEntity; import edu.kit.kastel.mcse.ardoco.core.api.output.ArDoCoResult; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.InconsistentSentence; import edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency.ModelInconsistency; +import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity; +import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic; +import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair; /** * The FilePrinter class contains utility methods for writing output files and statistics. @@ -33,6 +38,7 @@ public final class FilePrinter { private static final Logger logger = LoggerFactory.getLogger(FilePrinter.class); private static final String LINE_SEPARATOR = System.lineSeparator(); + private static final String ENTRY_SEPARATOR = ","; private FilePrinter() { throw new IllegalAccessError(); @@ -117,7 +123,7 @@ public static void writeTraceLinksAsCsv(ArDoCoResult arDoCoResult, File outputDi if (!sadSamTls.isEmpty()) { var sadSamTlr = outputDir.toPath().resolve("sadSamTlr_" + name + ".csv"); header = "modelElementID,sentence"; - var traceLinkStrings = TraceLinkUtilities.getSadSamTraceLinksAsStringList(sadSamTls); + var traceLinkStrings = getSadSamTraceLinksAsStringList(sadSamTls); writeTraceLinksToCsv(sadSamTlr, header, traceLinkStrings); } @@ -125,7 +131,7 @@ public static void writeTraceLinksAsCsv(ArDoCoResult arDoCoResult, File outputDi if (!samCodeTls.isEmpty()) { var samCodeTlr = outputDir.toPath().resolve("samCodeTlr_" + name + ".csv"); header = "sentenceID,codeID"; - var traceLinkStrings = TraceLinkUtilities.getSamCodeTraceLinksAsStringList(samCodeTls); + var traceLinkStrings = getSamCodeTraceLinksAsStringList(samCodeTls); writeTraceLinksToCsv(samCodeTlr, header, traceLinkStrings); } @@ -133,7 +139,7 @@ public static void writeTraceLinksAsCsv(ArDoCoResult arDoCoResult, File outputDi if (!sadCodeTls.isEmpty()) { var sadCodeTlr = outputDir.toPath().resolve("sadCodeTlr_" + name + ".csv"); header = "modelElementID,codeId"; - var traceLinkStrings = TraceLinkUtilities.getSadCodeTraceLinksAsStringList(sadCodeTls); + var traceLinkStrings = getSadCodeTraceLinksAsStringList(sadCodeTls); writeTraceLinksToCsv(sadCodeTlr, header, traceLinkStrings); } @@ -153,4 +159,64 @@ private static void writeTraceLinksToCsv(Path filePath, String header, Immutable } } + /** + * Creates a trace link string from two element IDs. + * + * @param firstElementId the first element ID + * @param secondElementId the second element ID + * @return the trace link string + */ + public static String createTraceLinkString(String firstElementId, String secondElementId) { + return firstElementId + ENTRY_SEPARATOR + secondElementId; + } + + /** + * Converts a list of trace links between sentences and model entities to a list of string representations. + * + * @param sadSamTraceLinks the list of trace links + * @return the list of string representations + */ + private static ImmutableList getSadSamTraceLinksAsStringList(ImmutableList> sadSamTraceLinks) { + return sadSamTraceLinks.collect(tl -> createTraceLinkString(tl.getSecondEndpoint().getId(), String.valueOf(tl.getFirstEndpoint() + .getSentence() + .getSentenceNumber() + 1))); + } + + /** + * Converts a list of trace links between architecture entities and model entities to a list of string representations. + * + * @param samCodeTraceLinks the list of trace links + * @return the list of string representations + */ + private static ImmutableList getSamCodeTraceLinksAsStringList( + ImmutableList> samCodeTraceLinks) { + MutableList resultsMut = Lists.mutable.empty(); + for (var traceLink : samCodeTraceLinks) { + Pair endpointTuple = traceLink.asPair(); + var modelElement = endpointTuple.first(); + var codeElement = endpointTuple.second(); + String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString()); + resultsMut.add(traceLinkString); + } + return resultsMut.toImmutable(); + } + + /** + * Converts a list of trace links between sentences and model entities to a list of string representations, with sentence number as the first element. + * + * @param sadCodeTraceLinks the list of trace links + * @return the list of string representations + */ + private static ImmutableList getSadCodeTraceLinksAsStringList(ImmutableList> sadCodeTraceLinks) { + MutableList resultsMut = Lists.mutable.empty(); + for (var traceLink : sadCodeTraceLinks) { + Pair endpointTuple = traceLink.asPair(); + var codeElement = endpointTuple.second(); + String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1); + String traceLinkString = createTraceLinkString(sentenceNumber, codeElement.toString()); + resultsMut.add(traceLinkString); + } + return resultsMut.toImmutable(); + } + } From ef3f94c808eb7af8887ab72fc1cda3972f3cc576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 22 Jul 2025 10:43:22 +0200 Subject: [PATCH 099/115] Enforce more architecture tests & add environment management --- framework/common/pom.xml | 5 + .../models/CodeModelWithCompilationUnits.java | 4 +- ...eModelWithCompilationUnitsAndPackages.java | 4 +- .../core/api/models/code/InterfaceUnit.java | 4 +- .../ardoco/core/common/util/Environment.java | 107 ++++++++++++++++++ .../core/pipeline/agent/PipelineAgent.java | 4 +- .../execution/runner/AnonymousRunner.java | 4 +- .../tests/architecture/ArchitectureTest.java | 36 ++++++ 8 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 53ed1e8ec..4c69e0814 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -32,6 +32,11 @@ commons-io commons-io + + io.github.cdimascio + dotenv-java + 3.0.0 + org.apache.commons commons-lang3 diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java index 494f16b11..6b5c97c5b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnits.java @@ -44,7 +44,9 @@ public CodeModelWithCompilationUnits(CodeItemRepository codeItemRepository, Sort @Override public List getEndpoints() { List entities = new ArrayList<>(); - this.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); + for (CodeItem codeItem : this.getContent()) { + entities.addAll(codeItem.getAllCompilationUnits()); + } return entities; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java index 103df0ff4..aef5cd5d1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/CodeModelWithCompilationUnitsAndPackages.java @@ -57,7 +57,9 @@ public List getContent() { public List getEndpoints() { // The order is more than important here! Otherwise, ArDoCo Heuristics might not work properly. List entities = new ArrayList<>(codeModel.getAllPackages()); - codeModel.getContent().forEach(c -> entities.addAll(c.getAllCompilationUnits())); + for (CodeItem codeItem : codeModel.getContent()) { + entities.addAll(codeItem.getAllCompilationUnits()); + } return entities; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java index 80527c176..0bac1cdef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/InterfaceUnit.java @@ -72,7 +72,9 @@ public List getContent() { public List getAllDataTypes() { List result = new ArrayList<>(); result.add(this); - this.getContent().forEach(c -> result.addAll(c.getAllDataTypes())); + for (CodeItem codeItem : this.getContent()) { + result.addAll(codeItem.getAllDataTypes()); + } return result; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java new file mode 100644 index 000000000..45cb93cec --- /dev/null +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java @@ -0,0 +1,107 @@ +/* Licensed under MIT 2025. */ +package edu.kit.kastel.mcse.ardoco.core.common.util; + +import java.nio.file.Files; +import java.nio.file.Path; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.github.cdimascio.dotenv.Dotenv; + +/** + * A utility class for managing environment variables in the application. + * This class provides functionality to: + *

      + *
    • Load environment variables from a .env file
    • + *
    • Fall back to system environment variables if .env is not available
    • + *
    • Retrieve environment variables with or without null checks
    • + *
    + * + * The class uses the following precedence for environment variables: + *
      + *
    1. Values from the .env file (if it exists)
    2. + *
    3. Values from system environment variables
    4. + *
    + * + * The .env file should be placed in the root directory of the project and should + * contain key-value pairs in the format: + *
    + * KEY=value
    + * 
    + */ +public final class Environment { + private static final Logger logger = LoggerFactory.getLogger(Environment.class); + /** The loaded .env configuration, or null if no .env file exists */ + private static final Dotenv DOTENV = load(); + + private Environment() { + throw new IllegalAccessError("Utility class"); + } + + /** + * Retrieves an environment variable value. + * This method: + *
      + *
    1. First checks the .env file for the variable
    2. + *
    3. If not found, falls back to system environment variables
    4. + *
    5. Returns null if the variable is not found in either location
    6. + *
    + * + * @param key The name of the environment variable to retrieve + * @return The value of the environment variable, or null if not found + */ + public static String getenv(String key) { + String dotenvValue = DOTENV == null ? null : DOTENV.get(key); + if (dotenvValue != null) + return dotenvValue; + return System.getenv(key); + } + + /** + * Retrieves an environment variable value, requiring it to be non-null. + * This method: + *
      + *
    1. Attempts to retrieve the variable using {@link #getenv(String)}
    2. + *
    3. Logs an error if the variable is not found
    4. + *
    5. Returns the value (which may be null, despite the method name)
    6. + *
    + * + * @param key The name of the environment variable to retrieve + * @return The value of the environment variable + * @throws IllegalStateException if the variable is not found and strict mode is enabled + */ + public static String getenvNonNull(String key) { + String env = getenv(key); + if (env == null) { + logger.error("environment variable {} is missing, use '.env' or your system to set it up", key); + } + return env; + } + + /** + * Loads the .env file configuration. + * This method: + *
      + *
    1. Checks if a .env file exists in the project root
    2. + *
    3. If found, loads and returns the configuration
    4. + *
    5. If not found, logs a message and returns null
    6. + *
    + * + * The method is synchronized to ensure thread safety during the initial loading. + * + * @return The loaded Dotenv configuration, or null if no .env file exists + */ + private static synchronized Dotenv load() { + if (DOTENV != null) { + return DOTENV; + } + + if (Files.exists(Path.of(".env"))) { + return Dotenv.configure().load(); + } else { + logger.info("No .env file found, using system environment variables"); + return null; + } + } +} diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java index 38f5beb22..04348678d 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java @@ -95,7 +95,9 @@ public List getInformants() { @Override protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); - this.informants.forEach(filter -> filter.applyConfiguration(additionalConfiguration)); + for (Informant informant : this.informants) { + informant.applyConfiguration(additionalConfiguration); + } } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java index c1822221e..15138cec1 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/runner/AnonymousRunner.java @@ -29,7 +29,9 @@ private boolean setUp() { var arDoCo = getArDoCo(); var dataRepository = arDoCo.getDataRepository(); var pipelineSteps = initializePipelineSteps(dataRepository); - pipelineSteps.forEach(arDoCo::addPipelineStep); + for (AbstractPipelineStep pipelineStep : pipelineSteps) { + arDoCo.addPipelineStep(pipelineStep); + } return true; } catch (IOException e) { logger.error("Problem in initialising pipeline when loading data (IOException)", e.getCause()); diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index 456f86816..dd9c49be7 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -4,6 +4,10 @@ import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; import static com.tngtech.archunit.library.Architectures.layeredArchitecture; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Stream; + import com.fasterxml.jackson.databind.ObjectMapper; import com.tngtech.archunit.core.domain.JavaModifier; import com.tngtech.archunit.junit.AnalyzeClasses; @@ -12,6 +16,7 @@ import edu.kit.kastel.mcse.ardoco.core.api.tracelink.TraceLink; import edu.kit.kastel.mcse.ardoco.core.common.JsonHandling; +import edu.kit.kastel.mcse.ardoco.core.common.util.Environment; import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; import edu.kit.kastel.mcse.ardoco.core.configuration.Configurable; @@ -142,4 +147,35 @@ public class ArchitectureTest { .should() .callConstructor(ObjectMapper.class); + /** + * Rule that enforces environment variable access restrictions. + *

    + * Only the {@link Environment} utility class may call {@code System.getenv()}. + * All other classes must use the {@link Environment} class for environment variable access. + */ + @ArchTest + static final ArchRule noGetEnv = noClasses().that() + .haveNameNotMatching(Environment.class.getName()) + .should() + .callMethod(System.class, "getenv") + .orShould() + .callMethod(System.class, "getenv", String.class); + + /** + * Rule that enforces functional programming practices. + *

    + * Discourages the use of {@code forEach} and {@code forEachOrdered} on streams and lists, + * as these are typically used for side effects. Prefer functional operations instead. + */ + @ArchTest + static final ArchRule noForEachInCollectionsOrStream = noClasses().should() + .callMethod(Stream.class, "forEach", Consumer.class) + .orShould() + .callMethod(Stream.class, "forEachOrdered", Consumer.class) + .orShould() + .callMethod(List.class, "forEach", Consumer.class) + .orShould() + .callMethod(List.class, "forEachOrdered", Consumer.class) + .because("Lambdas should be functional. ForEach is typically used for side-effects."); + } From c765fd1f79b5530ce7b280351f1cf20a2d76d535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 23 Jul 2025 19:57:47 +0200 Subject: [PATCH 100/115] Use ProgrammingLanguage enum --- .../api/models/code/CodeCompilationUnit.java | 8 ++++---- .../api/models/code/ProgrammingLanguages.java | 20 ------------------- 2 files changed, 4 insertions(+), 24 deletions(-) delete mode 100644 framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java index d5ac988ec..7c42c8aee 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/CodeCompilationUnit.java @@ -26,7 +26,7 @@ public final class CodeCompilationUnit extends CodeModule { @JsonProperty private String extension; @JsonProperty - private String language; + private ProgrammingLanguage language; /** * Default constructor for Jackson. @@ -47,7 +47,7 @@ private CodeCompilationUnit() { * @param language the programming language */ public CodeCompilationUnit(CodeItemRepository codeItemRepository, String name, SortedSet content, List pathElements, - String extension, String language) { + String extension, ProgrammingLanguage language) { super(codeItemRepository, name, content); this.pathElements = new ArrayList<>(pathElements); this.extension = extension; @@ -59,7 +59,7 @@ public CodeCompilationUnit(CodeItemRepository codeItemRepository, String name, S * * @return the language */ - public String getLanguage() { + public ProgrammingLanguage getLanguage() { return this.language; } @@ -155,7 +155,7 @@ public Optional getType() { // Default to Class return Optional.of("Class"); } - if (ProgrammingLanguages.SHELL.equals(this.getLanguage())) { + if (ProgrammingLanguage.SHELL == this.getLanguage()) { return Optional.of("ShellScript"); } return Optional.empty(); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java deleted file mode 100644 index 40df9fc92..000000000 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/code/ProgrammingLanguages.java +++ /dev/null @@ -1,20 +0,0 @@ -/* Licensed under MIT 2023-2025. */ -package edu.kit.kastel.mcse.ardoco.core.api.models.code; - -/** - * Utility class providing constants for supported programming languages in the code model. - */ -public final class ProgrammingLanguages { - /** - * Identifier for the Java programming language. - */ - public static final String JAVA = "JAVA"; - /** - * Identifier for the Shell programming language. - */ - public static final String SHELL = "SHELL"; - - private ProgrammingLanguages() { - throw new IllegalAccessError(); - } -} From 081735668a1a12f77f87dd22ca1b86771a24e4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 23 Jul 2025 21:38:13 +0200 Subject: [PATCH 101/115] ensure eclipse collections in interfaces --- .../inconsistency/InconsistencyState.java | 6 ++-- .../configuration/AbstractConfigurable.java | 20 +++++------ .../core/configuration/IConfigurable.java | 6 ++-- .../mcse/ardoco/core/data/AbstractState.java | 5 +-- .../core/pipeline/AbstractExecutionStage.java | 4 +-- .../mcse/ardoco/core/pipeline/Pipeline.java | 9 ++--- .../ardoco/core/pipeline/agent/Informant.java | 4 +-- .../core/pipeline/agent/PipelineAgent.java | 5 +-- .../impl/ConcretePipelineStepOne.java | 6 ++-- .../impl/ConcretePipelineStepTwoOne.java | 6 ++-- .../impl/ConcretePipelineStepTwoTwo.java | 6 ++-- .../core/execution/ConfigurationHelper.java | 24 ++++++------- .../execution/ConfigurationHelperTest.java | 29 ++++++++-------- .../tests/architecture/ArchitectureTest.java | 34 +++++++++++++++++++ 14 files changed, 100 insertions(+), 64 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java index 901825344..d19c18a01 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistencyState.java @@ -1,8 +1,6 @@ /* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.stage.inconsistency; -import java.util.List; - import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; @@ -35,7 +33,7 @@ public interface InconsistencyState extends IConfigurable { * @param recommendedInstances the recommended instances to add * @return true if all were added successfully */ - default boolean addRecommendedInstances(List recommendedInstances) { + default boolean addRecommendedInstances(ImmutableList recommendedInstances) { var success = true; for (var recommendedInstance : recommendedInstances) { success &= addRecommendedInstance(recommendedInstance); @@ -56,7 +54,7 @@ default boolean addRecommendedInstances(List recommendedIns * * @param recommendedInstances the recommended instances to set */ - void setRecommendedInstances(List recommendedInstances); + void setRecommendedInstances(ImmutableList recommendedInstances); /** * Returns the recommended instances. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java index 207d993ed..92006974e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/AbstractConfigurable.java @@ -5,11 +5,10 @@ import java.lang.reflect.ParameterizedType; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; -import java.util.SortedMap; -import java.util.TreeMap; +import org.eclipse.collections.api.factory.SortedMaps; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,23 +35,24 @@ public abstract class AbstractConfigurable implements IConfigurable { @SuppressWarnings("java:S2065") // The logger is used in the subclasses that are serializable private transient Logger logger; - private SortedMap lastAppliedConfiguration = new TreeMap<>(); + private ImmutableSortedMap lastAppliedConfiguration = SortedMaps.immutable.empty(); @Override - public final void applyConfiguration(SortedMap additionalConfiguration) { + public final void applyConfiguration(ImmutableSortedMap additionalConfiguration) { this.applyConfiguration(additionalConfiguration, this, this.getClass()); this.delegateApplyConfigurationToInternalObjects(additionalConfiguration); - this.lastAppliedConfiguration = new TreeMap<>(additionalConfiguration); + this.lastAppliedConfiguration = additionalConfiguration; } @Override - public SortedMap getLastAppliedConfiguration() { - return Collections.unmodifiableSortedMap(this.lastAppliedConfiguration); + public ImmutableSortedMap getLastAppliedConfiguration() { + return this.lastAppliedConfiguration; } - protected abstract void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration); + protected abstract void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration); - private void applyConfiguration(SortedMap additionalConfiguration, AbstractConfigurable configurable, Class currentClassInHierarchy) { + private void applyConfiguration(ImmutableSortedMap additionalConfiguration, AbstractConfigurable configurable, + Class currentClassInHierarchy) { if (currentClassInHierarchy == Object.class || currentClassInHierarchy == AbstractConfigurable.class) { return; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java index 672bcfd8e..84913a359 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/configuration/IConfigurable.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.configuration; -import java.util.SortedMap; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; /** * Interface for components that can be configured with additional configuration parameters. @@ -12,12 +12,12 @@ public interface IConfigurable { * * @param additionalConfiguration the configuration to apply */ - void applyConfiguration(SortedMap additionalConfiguration); + void applyConfiguration(ImmutableSortedMap additionalConfiguration); /** * Returns the last applied configuration. * * @return the last applied configuration as an unmodifiable map */ - SortedMap getLastAppliedConfiguration(); + ImmutableSortedMap getLastAppliedConfiguration(); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java index 75dd0aa53..3da12f59e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/data/AbstractState.java @@ -2,7 +2,8 @@ package edu.kit.kastel.mcse.ardoco.core.data; import java.io.Serial; -import java.util.SortedMap; + +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.configuration.AbstractConfigurable; @@ -15,7 +16,7 @@ public abstract class AbstractState extends AbstractConfigurable implements Pipe private static final long serialVersionUID = -3318799425973820663L; @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap map) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap map) { // empty } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java index a93d4c816..607318fbb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/AbstractExecutionStage.java @@ -2,10 +2,10 @@ package edu.kit.kastel.mcse.ardoco.core.pipeline; import java.util.List; -import java.util.SortedMap; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.configuration.ChildClassConfigurable; import edu.kit.kastel.mcse.ardoco.core.configuration.Configurable; @@ -77,7 +77,7 @@ public List getAgents() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); for (var agent : this.agents) { agent.applyConfiguration(additionalConfiguration); diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java index a32199af7..80bc655ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/Pipeline.java @@ -5,7 +5,8 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; -import java.util.SortedMap; + +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; @@ -106,15 +107,15 @@ protected void after() { /** * This method is called at the start of running the pipeline. Within this method, the added PipelineSteps are prepared. Sub-classes of Pipeline can * override it with special cases. It is recommended that you apply the Map from {@link #getLastAppliedConfiguration()} via - * {@link #applyConfiguration(SortedMap)} to each pipeline step. You can do that on your own if you need special treatment or by default call - * {@link #delegateApplyConfigurationToInternalObjects(SortedMap)}. The base version does apply the last configuration via the default call. + * {@link #applyConfiguration(ImmutableSortedMap)} to each pipeline step. You can do that on your own if you need special treatment or by default call + * {@link #delegateApplyConfigurationToInternalObjects(ImmutableSortedMap)}. The base version does apply the last configuration via the default call. */ protected void preparePipelineSteps() { this.delegateApplyConfigurationToInternalObjects(this.getLastAppliedConfiguration()); } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { for (AbstractPipelineStep abstractPipelineStep : this.pipelineSteps) { abstractPipelineStep.applyConfiguration(additionalConfiguration); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java index d0cd06fc5..d3e75b3a1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/Informant.java @@ -1,7 +1,7 @@ /* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.agent; -import java.util.SortedMap; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.data.DataRepository; import edu.kit.kastel.mcse.ardoco.core.pipeline.AbstractPipelineStep; @@ -26,7 +26,7 @@ protected void after() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { // Nothing by default } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java index 38f5beb22..486163ff7 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/pipeline/agent/PipelineAgent.java @@ -3,7 +3,8 @@ import java.util.ArrayList; import java.util.List; -import java.util.SortedMap; + +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import edu.kit.kastel.mcse.ardoco.core.configuration.ChildClassConfigurable; import edu.kit.kastel.mcse.ardoco.core.configuration.Configurable; @@ -93,7 +94,7 @@ public List getInformants() { * Applies additional configuration to internal objects and informants. */ @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { super.delegateApplyConfigurationToInternalObjects(additionalConfiguration); this.informants.forEach(filter -> filter.applyConfiguration(additionalConfiguration)); } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepOne.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepOne.java index 51d87dd22..2f32abe0c 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepOne.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepOne.java @@ -1,11 +1,11 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.impl; import java.util.Arrays; import java.util.List; -import java.util.SortedMap; import java.util.function.Predicate; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,7 +51,7 @@ protected void after() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { // NOP } } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoOne.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoOne.java index dd2ca1920..1d56316cb 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoOne.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoOne.java @@ -1,10 +1,10 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.impl; import java.util.ArrayList; import java.util.List; -import java.util.SortedMap; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,7 +78,7 @@ private List getTokens() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { // NOP } } diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoTwo.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoTwo.java index 166ff29d1..ac54aa824 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoTwo.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/pipeline/impl/ConcretePipelineStepTwoTwo.java @@ -1,10 +1,10 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.pipeline.impl; -import java.util.SortedMap; import java.util.TreeMap; import java.util.stream.Collectors; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,7 +54,7 @@ protected void after() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { // NOP } } diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java index 0d15616b0..4362c2cfa 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelper.java @@ -10,12 +10,12 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Scanner; -import java.util.SortedMap; -import java.util.TreeMap; import java.util.stream.Collectors; +import org.eclipse.collections.api.factory.SortedMaps; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; +import org.eclipse.collections.api.map.sorted.MutableSortedMap; import org.reflections.Reflections; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,13 +39,13 @@ private ConfigurationHelper() throws IllegalAccessException { * @param additionalConfigsFile the file containing the additional configurations * @return a map with the additional configurations */ - public static SortedMap loadAdditionalConfigs(File additionalConfigsFile) { - SortedMap additionalConfigs = new TreeMap<>(); + public static ImmutableSortedMap loadAdditionalConfigs(File additionalConfigsFile) { + MutableSortedMap additionalConfigs = SortedMaps.mutable.empty(); if (additionalConfigsFile != null && (!additionalConfigsFile.exists() || !additionalConfigsFile.isFile())) { throw new IllegalArgumentException("File " + additionalConfigsFile.getAbsolutePath() + " is not a valid configuration file!"); } if (additionalConfigsFile == null) { - return additionalConfigs; + return additionalConfigs.toImmutable(); } try (var scanner = new Scanner(additionalConfigsFile, StandardCharsets.UTF_8)) { @@ -66,7 +66,7 @@ public static SortedMap loadAdditionalConfigs(File additionalCon } catch (IOException e) { logger.error(e.getMessage(), e); } - return additionalConfigs; + return additionalConfigs.toImmutable(); } /** @@ -74,8 +74,8 @@ public static SortedMap loadAdditionalConfigs(File additionalCon * * @return a map with all default configuration options */ - public static Map getDefaultConfigurationOptions() { - Map configs = new TreeMap<>(); + public static ImmutableSortedMap getDefaultConfigurationOptions() { + MutableSortedMap configs = SortedMaps.mutable.empty(); var reflectAccess = new Reflections("edu.kit.kastel.mcse.ardoco"); var classesThatMayBeConfigured = reflectAccess.getSubTypesOf(AbstractConfigurable.class) .stream() @@ -90,7 +90,7 @@ public static Map getDefaultConfigurationOptions() { throw new IllegalStateException(e); } } - return configs; + return configs.toImmutable(); } /** @@ -102,7 +102,7 @@ public static Map getDefaultConfigurationOptions() { * @throws InstantiationException if the class cannot be instantiated * @throws IllegalAccessException if access to fields is denied */ - protected static void processConfigurationOfClass(Map configs, Class clazz) + protected static void processConfigurationOfClass(MutableSortedMap configs, Class clazz) throws InvocationTargetException, InstantiationException, IllegalAccessException { var object = ConfigurationInstantiatorUtils.createObject(clazz); List fields = new ArrayList<>(); @@ -110,7 +110,7 @@ protected static void processConfigurationOfClass(Map configs, C fillConfigs(object, fields, configs); } - private static void fillConfigs(AbstractConfigurable object, List fields, Map configs) throws IllegalAccessException { + private static void fillConfigs(AbstractConfigurable object, List fields, MutableSortedMap configs) throws IllegalAccessException { for (Field f : fields) { f.setAccessible(true); var key = AbstractConfigurable.getKeyOfField(object, f.getDeclaringClass(), f); diff --git a/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelperTest.java b/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelperTest.java index 7631860b3..1ba1e8ec9 100644 --- a/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelperTest.java +++ b/pipeline-core/src/test/java/edu/kit/kastel/mcse/ardoco/core/execution/ConfigurationHelperTest.java @@ -1,11 +1,12 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.execution; import java.util.List; import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; +import org.eclipse.collections.api.factory.SortedMaps; +import org.eclipse.collections.api.map.sorted.ImmutableSortedMap; +import org.eclipse.collections.api.map.sorted.MutableSortedMap; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ void getDefaultConfigurationOptionsTest() { var configs = ConfigurationHelper.getDefaultConfigurationOptions(); Assertions.assertNotNull(configs); - for (var entry : configs.entrySet()) { + for (var entry : configs.castToSortedMap().entrySet()) { Assertions.assertAll(// () -> Assertions.assertNotNull(entry.getKey()), // () -> Assertions.assertNotNull(entry.getValue())); @@ -31,7 +32,7 @@ void getDefaultConfigurationOptionsTest() { @Test void testBasicConfigurable() throws Exception { - SortedMap configs = new TreeMap<>(); + MutableSortedMap configs = SortedMaps.mutable.empty(); ConfigurationHelper.processConfigurationOfClass(configs, TestConfigurable.class); Assertions.assertEquals(5, configs.size()); @@ -49,7 +50,7 @@ void testBasicConfigurable() throws Exception { Assertions.assertEquals(TestConfigurable.MyEnum.B, t.testEnumNo); //@formatter:off - configs = new TreeMap<>(Map.of(// + configs = SortedMaps.mutable.ofSortedMap(Map.of(// TestConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "testInt", "42", // TestConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "testIntNo", "42", // TestConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "testDouble", "48", // @@ -64,7 +65,7 @@ void testBasicConfigurable() throws Exception { )); //@formatter:on - t.applyConfiguration(configs); + t.applyConfiguration(configs.toImmutable()); Assertions.assertEquals(42, t.testInt); Assertions.assertEquals(24, t.testIntNo); Assertions.assertEquals(48, t.testDouble); @@ -80,27 +81,27 @@ void testBasicConfigurable() throws Exception { @Test void testBaseAndChildConfigurable() throws Exception { - SortedMap configs = new TreeMap<>(); + MutableSortedMap configs = SortedMaps.mutable.empty(); ConfigurationHelper.processConfigurationOfClass(configs, TestBaseConfigurable.class); Assertions.assertEquals(1, configs.size()); Assertions.assertEquals("1", configs.get(TestBaseConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "value")); - configs = new TreeMap<>(); + configs = SortedMaps.mutable.empty(); ConfigurationHelper.processConfigurationOfClass(configs, TestChildConfigurable.class); Assertions.assertEquals(1, configs.size()); Assertions.assertEquals("2", configs.get(TestChildConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "value")); - configs = new TreeMap<>(Map.of(// + configs = SortedMaps.mutable.ofSortedMap(Map.of(// TestBaseConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "value", "42", // TestChildConfigurable.class.getSimpleName() + AbstractConfigurable.CLASS_ATTRIBUTE_CONNECTOR + "value", "43" // )); var t1 = new TestBaseConfigurable(); - t1.applyConfiguration(configs); + t1.applyConfiguration(configs.toImmutable()); Assertions.assertEquals(42, t1.value); var t2 = new TestChildConfigurable(); - t2.applyConfiguration(configs); + t2.applyConfiguration(configs.toImmutable()); Assertions.assertEquals(43, t2.value); } @@ -114,7 +115,7 @@ public TestBaseConfigurable() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { // NOP } } @@ -150,7 +151,7 @@ public TestConfigurable() { } @Override - protected void delegateApplyConfigurationToInternalObjects(SortedMap additionalConfiguration) { + protected void delegateApplyConfigurationToInternalObjects(ImmutableSortedMap additionalConfiguration) { } private enum MyEnum { diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java index 456f86816..5df964c12 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/architecture/ArchitectureTest.java @@ -4,6 +4,12 @@ import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; import static com.tngtech.archunit.library.Architectures.layeredArchitecture; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; + import com.fasterxml.jackson.databind.ObjectMapper; import com.tngtech.archunit.core.domain.JavaModifier; import com.tngtech.archunit.junit.AnalyzeClasses; @@ -142,4 +148,32 @@ public class ArchitectureTest { .should() .callConstructor(ObjectMapper.class); + @ArchTest + public static final ArchRule preferEclipseCollections = noMethods().that() + .areDeclaredInClassesThat() + .areInterfaces() + .and() + .areDeclaredInClassesThat() + .resideOutsideOfPackage("..metrics..") + .should() + .haveRawReturnType(List.class) + .orShould() + .haveRawReturnType(Set.class) + .orShould() + .haveRawReturnType(SortedSet.class) + .orShould() + .haveRawReturnType(Map.class) + .orShould() + .haveRawReturnType(SortedMap.class) + .orShould() + .haveRawParameterTypes(List.class) + .orShould() + .haveRawParameterTypes(Set.class) + .orShould() + .haveRawParameterTypes(SortedSet.class) + .orShould() + .haveRawParameterTypes(Map.class) + .orShould() + .haveRawParameterTypes(SortedMap.class); + } From 85670b59e7568620e10822769bf2701d31a8c02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Wed, 23 Jul 2025 22:30:57 +0200 Subject: [PATCH 102/115] cleanup poms --- framework/common/pom.xml | 5 +++++ tests-base/pom.xml | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 53ed1e8ec..1828c57bb 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -57,5 +57,10 @@ org.eclipse.jgit org.eclipse.jgit + + org.slf4j + slf4j-simple + test + diff --git a/tests-base/pom.xml b/tests-base/pom.xml index e37b386fa..a56eacf2f 100644 --- a/tests-base/pom.xml +++ b/tests-base/pom.xml @@ -22,6 +22,12 @@ metrics 0.1.1 compile + + + com.google.errorprone + * + + io.github.ardoco.core From 9146e9250bb6ca2e8a5586bda77d8eab9b57f480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 24 Jul 2025 16:36:38 +0200 Subject: [PATCH 103/115] Align and cleanup pom.xmls --- .github/workflows/sonarcloud.yml | 22 --- framework/common/pom.xml | 16 ++- framework/text-provider-json/pom.xml | 5 +- pom.xml | 130 +----------------- report/pom.xml | 62 --------- .../mcse/ardoco/core/cleanup/CleanupTest.java | 47 ------- tests-base/pom.xml | 11 +- 7 files changed, 19 insertions(+), 274 deletions(-) delete mode 100644 .github/workflows/sonarcloud.yml delete mode 100644 report/pom.xml delete mode 100644 report/src/test/java/edu/kit/kastel/mcse/ardoco/core/cleanup/CleanupTest.java diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml deleted file mode 100644 index 63113e799..000000000 --- a/.github/workflows/sonarcloud.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Sonar Cloud - -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - sonarcloud: - if: ${{ github.actor != 'dependabot[bot]' }} - uses: ardoco/actions/.github/workflows/sonarcloud.yml@main - with: - with-submodules: true - runs-on: ubuntu-latest - secrets: - SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} - diff --git a/framework/common/pom.xml b/framework/common/pom.xml index 1828c57bb..19b8b3e90 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -23,11 +23,6 @@ com.fasterxml.jackson.core jackson-databind - - com.tngtech.archunit - archunit-junit5 - test - commons-io commons-io @@ -44,6 +39,12 @@ org.apache.opennlp opennlp-tools 2.3.3 + + + org.slf4j + slf4j-api + + org.eclipse.collections @@ -57,10 +58,11 @@ org.eclipse.jgit org.eclipse.jgit + org.slf4j - slf4j-simple - test + slf4j-api + ${slf4j.version} diff --git a/framework/text-provider-json/pom.xml b/framework/text-provider-json/pom.xml index 7deec59a7..30856501c 100644 --- a/framework/text-provider-json/pom.xml +++ b/framework/text-provider-json/pom.xml @@ -21,16 +21,17 @@ com.fasterxml.jackson.core jackson-databind - + com.networknt json-schema-validator 1.4.0 + io.github.ardoco.core common - ${ardoco.version} + ${revision} org.apache.commons diff --git a/pom.xml b/pom.xml index 411de6751..ffce84cee 100644 --- a/pom.xml +++ b/pom.xml @@ -77,15 +77,9 @@ 2.0.0-refactoring ${revision} - ArDoCo_Core - ${project.groupId}:${project.artifactId} - ardoco - https://sonarcloud.io - ${project.basedir}/../${aggregate.report.dir}, - ${project.basedir}/../../${aggregate.report.dir} - report/target/site/jacoco-aggregate/jacoco.xml - -Xmx4g -Xss256m - all,-missing + UTF-8 + UTF-8 + UTF-8 @@ -101,7 +95,7 @@ true mavenSnapshot - https://s01.oss.sonatype.org/content/repositories/snapshots + https://central.sonatype.com/repository/maven-snapshots/ @@ -110,137 +104,22 @@ com.diffplug.spotless spotless-maven-plugin - ${spotless.version} - - - - - *.md - .gitignore - - - - - true - 4 - - - - - - - - ${maven.multiModuleProjectDirectory}/formatter.xml - - - - - ${maven.multiModuleProjectDirectory}/license-header - - - - ${maven.multiModuleProjectDirectory}/spotless.importorder - - - - - UTF-8 - true - false - 2 - false - true - groupId,artifactId - groupId,artifactId - groupId,artifactId - groupId,artifactId - false - true - true - recommended_2008_06 - - - origin/main - org.apache.maven.plugins maven-javadoc-plugin - 3.7.0 - - - attach-javadocs - - jar - - - org.apache.maven.plugins maven-source-plugin - 3.3.1 - - - attach-sources - - jar-no-fork - - - org.codehaus.mojo flatten-maven-plugin - - true - resolveCiFriendliesOnly - - - - flatten.clean - - clean - - clean - - - flatten - - flatten - - process-resources - - org.codehaus.mojo versions-maven-plugin - 2.16.2 - - - - * - - regex - .+-(alpha|Alpha|beta|Beta|RC).* - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - prepare-agent - - prepare-agent - - - org.sonatype.central @@ -312,7 +191,6 @@ framework pipeline-core - report tests-base diff --git a/report/pom.xml b/report/pom.xml deleted file mode 100644 index be1c81ad4..000000000 --- a/report/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - 4.0.0 - - io.github.ardoco.core - parent-core - ${revision} - ../pom.xml - - - report-core - jar - Report (Core) - This module is used to create reports for SonarCloud and similar. - - - true - true - - - - - io.github.ardoco.core - common - ${revision} - compile - - - io.github.ardoco.core - pipeline-core - ${revision} - compile - - - io.github.ardoco.core - text-provider-json - ${revision} - - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - org.jacoco - jacoco-maven-plugin - - - report - - report-aggregate - - verify - - - - - - diff --git a/report/src/test/java/edu/kit/kastel/mcse/ardoco/core/cleanup/CleanupTest.java b/report/src/test/java/edu/kit/kastel/mcse/ardoco/core/cleanup/CleanupTest.java deleted file mode 100644 index 1844dbb83..000000000 --- a/report/src/test/java/edu/kit/kastel/mcse/ardoco/core/cleanup/CleanupTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* Licensed under MIT 2023. */ -package edu.kit.kastel.mcse.ardoco.core.cleanup; - -import java.io.File; -import java.util.List; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import edu.kit.kastel.mcse.ardoco.core.common.RepositoryHandler; - -/** - * This is a "fake" test class that should clean up after everything else is run. Sometimes, we want to have, e.g., - * a certain state for the file system during all tests for all modules but want to clean up afterward. - * One concrete example are code repositories that we check out initially and that we want to remove at the end for a clean state. - */ -class CleanupTest { - - private static final List codeFolders = List.of("../temp/code", "temp/code"); - - private static final List folders = List.of("../temp/", "temp/"); - - @Test - void canTearDownTest() { - for (var codeFolder : codeFolders) { - File file = new File(codeFolder); - boolean existingCheck = file.isDirectory() && file.canWrite(); - Assertions.assertTrue(existingCheck || !file.exists()); - } - } - - @AfterAll - static void tearDown() { - removeFolders(codeFolders); - removeFolders(folders); - } - - private static void removeFolders(List folders) { - for (var folder : folders) { - File file = new File(folder); - if (file.exists()) { - RepositoryHandler.removeRepository(folder); - } - } - } -} diff --git a/tests-base/pom.xml b/tests-base/pom.xml index a56eacf2f..c7f48079d 100644 --- a/tests-base/pom.xml +++ b/tests-base/pom.xml @@ -13,10 +13,13 @@ Base classes for tests. It also includes the benchmark data from https://github.com/ArDoCo/Benchmark + com.tngtech.archunit archunit-junit5 + compile + io.github.ardoco metrics @@ -46,26 +49,18 @@ org.junit.jupiter junit-jupiter-api - ${junit.version} compile org.junit.jupiter junit-jupiter-engine - ${junit.version} compile org.junit.jupiter junit-jupiter-params - ${junit.version} compile - - org.mockito - mockito-core - test - org.reflections reflections From 6f5f98377622be9216588933c0fa29b10f23dbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 24 Jul 2025 16:43:05 +0200 Subject: [PATCH 104/115] Unify simplelogger.properties --- .../main/resources/simplelogger.properties | 34 ------------------- .../test/resources/simplelogger.properties | 34 ------------------- .../test/resources/simplelogger.properties | 28 --------------- .../main/resources/simplelogger.properties | 7 ++-- 4 files changed, 2 insertions(+), 101 deletions(-) delete mode 100644 framework/common/src/main/resources/simplelogger.properties delete mode 100644 framework/common/src/test/resources/simplelogger.properties delete mode 100644 framework/text-provider-json/src/test/resources/simplelogger.properties diff --git a/framework/common/src/main/resources/simplelogger.properties b/framework/common/src/main/resources/simplelogger.properties deleted file mode 100644 index 46f3eb401..000000000 --- a/framework/common/src/main/resources/simplelogger.properties +++ /dev/null @@ -1,34 +0,0 @@ -# SLF4J's SimpleLogger configuration file -# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. - -# Default logging detail level for all instances of SimpleLogger. -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, defaults to "info". -org.slf4j.simpleLogger.defaultLogLevel=info - -# Logging detail level for a SimpleLogger instance named "xxxxx". -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, the default logging detail level is used. -#org.slf4j.simpleLogger.log.xxxxx= - -# Set to true if you want the current date and time to be included in output messages. -# Default is false, and will output the number of milliseconds elapsed since startup. -org.slf4j.simpleLogger.showDateTime=true - -# The date and time format to be used in the output messages. -# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. -# If the format is not specified or is invalid, the default format is used. -# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. -org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z - -# Set to true if you want to output the current thread name. -# Defaults to true. -#org.slf4j.simpleLogger.showThreadName=true - -# Set to true if you want the Logger instance name to be included in output messages. -# Defaults to true. -org.slf4j.simpleLogger.showLogName=true - -# Set to true if you want the last component of the name to be included in output messages. -# Defaults to false. -org.slf4j.simpleLogger.showShortLogName=true diff --git a/framework/common/src/test/resources/simplelogger.properties b/framework/common/src/test/resources/simplelogger.properties deleted file mode 100644 index cffd1abbb..000000000 --- a/framework/common/src/test/resources/simplelogger.properties +++ /dev/null @@ -1,34 +0,0 @@ -# SLF4J's SimpleLogger configuration file -# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. - -# Default logging detail level for all instances of SimpleLogger. -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, defaults to "info". -org.slf4j.simpleLogger.defaultLogLevel=info - -# Logging detail level for a SimpleLogger instance named "xxxxx". -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, the default logging detail level is used. -#org.slf4j.simpleLogger.log.xxxxx= - -# Set to true if you want the current date and time to be included in output messages. -# Default is false, and will output the number of milliseconds elapsed since startup. -org.slf4j.simpleLogger.showDateTime=false - -# The date and time format to be used in the output messages. -# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. -# If the format is not specified or is invalid, the default format is used. -# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. -org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z - -# Set to true if you want to output the current thread name. -# Defaults to true. -#org.slf4j.simpleLogger.showThreadName=true - -# Set to true if you want the Logger instance name to be included in output messages. -# Defaults to true. -org.slf4j.simpleLogger.showLogName=true - -# Set to true if you want the last component of the name to be included in output messages. -# Defaults to false. -org.slf4j.simpleLogger.showShortLogName=true diff --git a/framework/text-provider-json/src/test/resources/simplelogger.properties b/framework/text-provider-json/src/test/resources/simplelogger.properties deleted file mode 100644 index f06a0d356..000000000 --- a/framework/text-provider-json/src/test/resources/simplelogger.properties +++ /dev/null @@ -1,28 +0,0 @@ -# SLF4J's SimpleLogger configuration file -# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. -# Default logging detail level for all instances of SimpleLogger. -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, defaults to "info". -org.slf4j.simpleLogger.defaultLogLevel=info -# Logging detail level for a SimpleLogger instance named "xxxxx". -# Must be one of ("trace", "debug", "info", "warn", or "error"). -# If not specified, the default logging detail level is used. - -# -# Set to true if you want the current date and time to be included in output messages. -# Default is false, and will output the number of milliseconds elapsed since startup. -#org.slf4j.simpleLogger.showDateTime=false -# The date and time format to be used in the output messages. -# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. -# If the format is not specified or is invalid, the default format is used. -# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. -#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z -# Set to true if you want to output the current thread name. -# Defaults to true. -org.slf4j.simpleLogger.showThreadName=false -# Set to true if you want the Logger instance name to be included in output messages. -# Defaults to true. -#org.slf4j.simpleLogger.showLogName=true -# Set to true if you want the last component of the name to be included in output messages. -# Defaults to false. -org.slf4j.simpleLogger.showShortLogName=false diff --git a/tests-base/src/main/resources/simplelogger.properties b/tests-base/src/main/resources/simplelogger.properties index f5fde855f..d393b07f5 100644 --- a/tests-base/src/main/resources/simplelogger.properties +++ b/tests-base/src/main/resources/simplelogger.properties @@ -8,13 +8,10 @@ org.slf4j.simpleLogger.defaultLogLevel=info # Must be one of ("trace", "debug", "info", "warn", or "error"). # If not specified, the default logging detail level is used. org.slf4j.simpleLogger.log.edu.stanford.nlp=error -org.slf4j.simpleLogger.log.edu.kit.kastel.mcse.ardoco.core=error -org.slf4j.simpleLogger.log.edu.kit.kastel.mcse.ardoco.core.tests=info -org.slf4j.simpleLogger.log.edu.kit.kastel.informalin.data=error # # Set to true if you want the current date and time to be included in output messages. # Default is false, and will output the number of milliseconds elapsed since startup. -#org.slf4j.simpleLogger.showDateTime=false +org.slf4j.simpleLogger.showDateTime=true # The date and time format to be used in the output messages. # The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. # If the format is not specified or is invalid, the default format is used. @@ -22,7 +19,7 @@ org.slf4j.simpleLogger.log.edu.kit.kastel.informalin.data=error #org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z # Set to true if you want to output the current thread name. # Defaults to true. -org.slf4j.simpleLogger.showThreadName=false +#org.slf4j.simpleLogger.showThreadName=true # Set to true if you want the Logger instance name to be included in output messages. # Defaults to true. #org.slf4j.simpleLogger.showLogName=true From 8b6a5a6e8bde7d166d4ed7b4a62e3c16d6dca056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 24 Jul 2025 17:24:12 +0200 Subject: [PATCH 105/115] Add sample-env and update methods of Environment class --- .../kastel/mcse/ardoco/core/common/util/Environment.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java index 45cb93cec..bdf1aa4fb 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/util/Environment.java @@ -51,7 +51,7 @@ private Environment() { * @param key The name of the environment variable to retrieve * @return The value of the environment variable, or null if not found */ - public static String getenv(String key) { + public static String getEnv(String key) { String dotenvValue = DOTENV == null ? null : DOTENV.get(key); if (dotenvValue != null) return dotenvValue; @@ -62,7 +62,7 @@ public static String getenv(String key) { * Retrieves an environment variable value, requiring it to be non-null. * This method: *

      - *
    1. Attempts to retrieve the variable using {@link #getenv(String)}
    2. + *
    3. Attempts to retrieve the variable using {@link #getEnv(String)}
    4. *
    5. Logs an error if the variable is not found
    6. *
    7. Returns the value (which may be null, despite the method name)
    8. *
    @@ -71,8 +71,8 @@ public static String getenv(String key) { * @return The value of the environment variable * @throws IllegalStateException if the variable is not found and strict mode is enabled */ - public static String getenvNonNull(String key) { - String env = getenv(key); + public static String getEnvNonNull(String key) { + String env = getEnv(key); if (env == null) { logger.error("environment variable {} is missing, use '.env' or your system to set it up", key); } From 852213b6d03495821225325966cf9820687c202a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Thu, 24 Jul 2025 17:36:38 +0200 Subject: [PATCH 106/115] Apply review feedback --- framework/common/pom.xml | 2 +- .../kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java | 4 ++-- .../kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/common/pom.xml b/framework/common/pom.xml index e9b9a1d8f..e90f81c9c 100644 --- a/framework/common/pom.xml +++ b/framework/common/pom.xml @@ -30,7 +30,7 @@ io.github.cdimascio dotenv-java - 3.0.0 + 3.2.0 org.apache.commons diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java index 237b45581..3733ac0d2 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ModelFormat.java @@ -9,8 +9,8 @@ public enum ModelFormat { PCM, /** Unified Modeling Language (UML). */ UML, - /** RAW Model, e.g., text-based models. */ - RAW, + /** Component Listing Model, Simply a list of component names. */ + COMPONENT_LISTING, /** Code Model for the ArCoTL framework. */ ACM } diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java index 6150be284..c1398a58d 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/EvaluationProject.java @@ -66,7 +66,7 @@ public File getArchitectureModel(ModelFormat modelFormat) { return switch (modelFormat) { case PCM -> EvaluationHelper.loadFileFromResources(architectureModelResource); case UML -> EvaluationHelper.loadFileFromResources(architectureModelResource.replace("/pcm/", "/uml/").replace(".repository", ".uml")); - case ACM, RAW -> throw new IllegalArgumentException("Model format " + modelFormat + " is not supported for this project."); + case ACM, COMPONENT_LISTING -> throw new IllegalArgumentException("Model format " + modelFormat + " is not supported for this project."); }; } From d24454a000168f735ca71d082d7e218acd83c02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 28 Jul 2025 13:53:59 +0200 Subject: [PATCH 107/115] Set version to 2.0.0-SNAPSHOT --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ffce84cee..2d8c5095e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.ardoco parent - 2.0.0-refactoring + 2.0.0-SNAPSHOT io.github.ardoco.core @@ -74,7 +74,7 @@ - 2.0.0-refactoring + 2.0.0-SNAPSHOT ${revision} UTF-8 From c70b26927d53309cf93b47dae6b9f13bba42bd54 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 29 Jul 2025 13:31:50 +0200 Subject: [PATCH 108/115] fix minor comments --- .../api/models/architecture/ArchitectureInterface.java | 3 ++- ...CodeTraceLink.java => ArchitectureCodeTraceLink.java} | 4 ++-- .../RecommendationModelTraceLink.java | 2 +- .../core/api/stage/inconsistency/TextInconsistency.java | 2 +- .../kit/kastel/mcse/ardoco/core/api/text/Sentence.java | 9 --------- 5 files changed, 6 insertions(+), 14 deletions(-) rename framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/{ModelCodeTraceLink.java => ArchitectureCodeTraceLink.java} (78%) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java index 41ac20d7d..416e104e9 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java @@ -5,6 +5,7 @@ import java.util.Objects; import java.util.Optional; import java.util.SortedSet; +import java.util.TreeSet; import org.eclipse.collections.api.list.ImmutableList; @@ -37,7 +38,7 @@ public ArchitectureInterface(String name, String id, SortedSet getMethodSignatures() { - return this.methodSignatures; + return new TreeSet<>(this.methodSignatures); } /** diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ArchitectureCodeTraceLink.java similarity index 78% rename from framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java rename to framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ArchitectureCodeTraceLink.java index b7cfd3b56..e97a54049 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ModelCodeTraceLink.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/codetraceability/ArchitectureCodeTraceLink.java @@ -10,7 +10,7 @@ /** * Trace link between an architecture item and a code item. */ -public final class ModelCodeTraceLink extends TraceLink { +public final class ArchitectureCodeTraceLink extends TraceLink { @Serial private static final long serialVersionUID = 7583961097321596737L; @@ -20,7 +20,7 @@ public final class ModelCodeTraceLink extends TraceLink typeInfo = ""; } - return "InstanceMapping [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // + return "RecommendationModelTraceLink [ uid=" + this.getSecondEndpoint().getId() + ", name=" + this.getSecondEndpoint().getName() + // ", as=" + String.join(", ", typeInfo) + ", probability=" + this.getConfidence() + ", FOUND: " + // this.getFirstEndpoint().getName() + " : " + this.getFirstEndpoint().getType() + ", occurrences= " + // "NameVariants: " + names.size() + ": " + names + " sentences{" + Arrays.toString(namePositions.toArray()) + "}" + // diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java index e16b79595..a47667a3a 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/TextInconsistency.java @@ -7,7 +7,7 @@ */ public interface TextInconsistency extends Inconsistency { /** - * Returns the sentence number associated with this inconsistency. + * Returns the sentence number associated with this inconsistency. Sentence numbers start at 1.) * * @return the sentence number */ diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java index 87b2e9891..294c16623 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/Sentence.java @@ -17,15 +17,6 @@ public interface Sentence extends Serializable { */ int getSentenceNumber(); - /** - * Returns the sentence number for output (starting at 1). - * - * @return the sentence number for output - */ - default int getSentenceNumberForOutput() { - return getSentenceNumber() + 1; - } - /** * Returns the words contained in this sentence. * From 20d908a72fe9f224b0d5812ae0bbc7d1842fd53f Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 29 Jul 2025 14:33:36 +0200 Subject: [PATCH 109/115] fix build --- .../api/stage/inconsistency/InconsistentSentence.java | 2 +- .../kastel/mcse/ardoco/core/api/output/ArDoCoResult.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java index 5e05226a1..c269f59ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java @@ -58,7 +58,7 @@ public String getInfoString() { } String formatString = "S%3d: \"%s\"%n\tInconsistent due to the following reasons:%n%s"; - return String.format(Locale.ENGLISH, formatString, sentence.getSentenceNumberForOutput(), sentence.getText(), reasonsBuilder); + return String.format(Locale.ENGLISH, formatString, sentence.getSentenceNumber() + 1, sentence.getText(), reasonsBuilder); } public Sentence sentence() { diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 68c8a9436..e2ae31e90 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -50,7 +50,7 @@ private static String formatTraceLinksHumanReadable(TraceLink %s", modelInfo, sentenceInfo); @@ -212,7 +212,7 @@ public ImmutableList getInconsistentSentences() { } } - var sortedInconsistentSentences = Lists.mutable.withAll(incSentenceMap.values()).sortThisByInt(i -> i.sentence().getSentenceNumberForOutput()); + var sortedInconsistentSentences = Lists.mutable.withAll(incSentenceMap.values()).sortThisByInt(i -> i.sentence().getSentenceNumber() + 1); return sortedInconsistentSentences.toImmutable(); } @@ -222,8 +222,8 @@ public ImmutableList getInconsistentSentences() { * @param sentenceNo the sentence number * @return sentence with the given number */ - public Sentence getSentence(int sentenceNo) { - return this.getText().getSentences().detect(s -> s.getSentenceNumberForOutput() == sentenceNo); + private Sentence getSentence(int sentenceNo) { + return this.getText().getSentences().detect(s -> s.getSentenceNumber() + 1 == sentenceNo); } /** From d23528338da5d26c8e2647000ae0274a75974bbd Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 29 Jul 2025 14:33:36 +0200 Subject: [PATCH 110/115] fix build --- .../ArchitectureModelWithComponentsAndInterfaces.java | 8 +++++++- .../edu/kit/kastel/mcse/ardoco/core/api/models/Model.java | 3 +-- .../api/stage/inconsistency/InconsistentSentence.java | 2 +- .../kastel/mcse/ardoco/core/api/output/ArDoCoResult.java | 8 ++++---- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java index 1f5658c37..292620a68 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java @@ -5,6 +5,8 @@ import java.util.SortedSet; import java.util.TreeSet; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureComponent; +import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureInterface; import edu.kit.kastel.mcse.ardoco.core.api.models.architecture.ArchitectureItem; /** @@ -20,7 +22,11 @@ public final class ArchitectureModelWithComponentsAndInterfaces extends Architec * @param content the content of the architecture model */ public ArchitectureModelWithComponentsAndInterfaces(List content) { - //TODO: Ensure that only interfaces and components are added to the content + for (ArchitectureItem item : content) { + if (item instanceof ArchitectureComponent || item instanceof ArchitectureInterface) { + content.add(item); + } + } this.content = content; } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java index 74960bf7b..57f703cea 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/Model.java @@ -8,8 +8,7 @@ import edu.kit.kastel.mcse.ardoco.core.common.IdentifierProvider; /** - * Abstract base class for all models. - * Provides unique ID and access to content, endpoints, metamodel, and type identifiers. + * Abstract base class for all models. Provides unique ID and access to content, endpoints, metamodel, and type identifiers. */ public abstract sealed class Model permits ArchitectureModel, CodeModel { diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java index 5e05226a1..c269f59ed 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/stage/inconsistency/InconsistentSentence.java @@ -58,7 +58,7 @@ public String getInfoString() { } String formatString = "S%3d: \"%s\"%n\tInconsistent due to the following reasons:%n%s"; - return String.format(Locale.ENGLISH, formatString, sentence.getSentenceNumberForOutput(), sentence.getText(), reasonsBuilder); + return String.format(Locale.ENGLISH, formatString, sentence.getSentenceNumber() + 1, sentence.getText(), reasonsBuilder); } public Sentence sentence() { diff --git a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java index 68c8a9436..e2ae31e90 100644 --- a/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java +++ b/pipeline-core/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/output/ArDoCoResult.java @@ -50,7 +50,7 @@ private static String formatTraceLinksHumanReadable(TraceLink %s", modelInfo, sentenceInfo); @@ -212,7 +212,7 @@ public ImmutableList getInconsistentSentences() { } } - var sortedInconsistentSentences = Lists.mutable.withAll(incSentenceMap.values()).sortThisByInt(i -> i.sentence().getSentenceNumberForOutput()); + var sortedInconsistentSentences = Lists.mutable.withAll(incSentenceMap.values()).sortThisByInt(i -> i.sentence().getSentenceNumber() + 1); return sortedInconsistentSentences.toImmutable(); } @@ -222,8 +222,8 @@ public ImmutableList getInconsistentSentences() { * @param sentenceNo the sentence number * @return sentence with the given number */ - public Sentence getSentence(int sentenceNo) { - return this.getText().getSentences().detect(s -> s.getSentenceNumberForOutput() == sentenceNo); + private Sentence getSentence(int sentenceNo) { + return this.getText().getSentences().detect(s -> s.getSentenceNumber() + 1 == sentenceNo); } /** From 46338d83dd1303ef087e2df344ae936d5474f258 Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 29 Jul 2025 16:44:27 +0200 Subject: [PATCH 111/115] remove Optional from getTypeParts --- .../ardoco/core/api/entity/ArchitectureEntityImpl.java | 4 ++-- .../kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java | 5 +++-- .../kastel/mcse/ardoco/core/api/entity/ModelEntity.java | 6 +++--- .../ardoco/core/api/models/ArchitectureComponentModel.java | 2 +- .../ArchitectureModelWithComponentsAndInterfaces.java | 2 +- .../api/models/architecture/ArchitectureComponent.java | 4 ++-- .../api/models/architecture/ArchitectureInterface.java | 7 ++++--- .../core/api/models/architecture/ArchitectureMethod.java | 7 ++++--- .../ardoco/core/common/similarity/SimilarityUtils.java | 5 ++--- 9 files changed, 22 insertions(+), 20 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java index abb51a636..a7177b47e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ArchitectureEntityImpl.java @@ -62,8 +62,8 @@ public Optional getType() { } @Override - public Optional> getTypeParts() { - return Optional.of(this.types.toImmutable()); + public ImmutableList getTypeParts() { + return this.types.toImmutable(); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java index 94d25f0df..201cdb7ef 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/CodeEntity.java @@ -4,6 +4,7 @@ import java.io.Serial; import java.util.Optional; +import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; /** @@ -38,9 +39,9 @@ public Optional getType() { } @Override - public Optional> getTypeParts() { + public ImmutableList getTypeParts() { Optional type = this.getType(); - return type.map(s -> splitIdentifierIntoParts(s).toImmutable()); + return type.map(s -> splitIdentifierIntoParts(s).toImmutable()).orElse(Lists.immutable.empty()); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java index d9e85f2d8..695d0b7ae 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/entity/ModelEntity.java @@ -53,11 +53,11 @@ protected ModelEntity(String name, String id) { public abstract Optional getType(); /** - * Returns the type parts of the entity, if available. + * Returns the type parts of the entity * - * @return an Optional containing the type parts, or empty if not available + * @return a list containing the type parts, or empty if not available */ - public abstract Optional> getTypeParts(); + public abstract ImmutableList getTypeParts(); /** * Returns the parts of the entity's name. diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java index ab3772e6c..13649b02f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureComponentModel.java @@ -73,7 +73,7 @@ public SortedSet getTypeIdentifiers() { for (var component : getContent()) { if (component.getType().isPresent()) { identifiers.add(component.getType().orElseThrow()); - identifiers.addAll(component.getTypeParts().orElseThrow().toList()); + identifiers.addAll(component.getTypeParts().toList()); } } return identifiers; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java index 292620a68..81e5f51b1 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java @@ -73,7 +73,7 @@ public SortedSet getTypeIdentifiers() { for (var item : getContent()) { if (item.getType().isPresent()) { identifiers.add(item.getType().orElseThrow()); - identifiers.addAll(item.getTypeParts().orElseThrow().toList()); + identifiers.addAll(item.getTypeParts().toList()); } } return identifiers; diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java index c95e04055..9fd287c2c 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureComponent.java @@ -73,8 +73,8 @@ public Optional getType() { } @Override - public Optional> getTypeParts() { - return Optional.of(this.typeParts.toImmutable()); + public ImmutableList getTypeParts() { + return this.typeParts.toImmutable(); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java index 416e104e9..11167ea79 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureInterface.java @@ -7,6 +7,7 @@ import java.util.SortedSet; import java.util.TreeSet; +import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; /** @@ -55,12 +56,12 @@ public Optional getType() { /** * Returns the type parts of this method (currently not specified). * - * @return empty optional + * @return an empty list */ @Override - public Optional> getTypeParts() { + public ImmutableList getTypeParts() { // Not implemented yet. Interfaces currently have no specified type. - return Optional.empty(); + return Lists.immutable.empty(); } @Override diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java index 9b0b7d06e..d2fcd066f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/architecture/ArchitectureMethod.java @@ -4,6 +4,7 @@ import java.io.Serial; import java.util.Optional; +import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; /** @@ -37,12 +38,12 @@ public Optional getType() { /** * Returns the type parts of this method (currently not specified). * - * @return empty optional + * @return empty List */ @Override - public Optional> getTypeParts() { + public ImmutableList getTypeParts() { // Not implemented yet. Methods currently have no specified type. - return Optional.empty(); + return Lists.immutable.empty(); } } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java index 784463358..81f14c84f 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/SimilarityUtils.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.text.similarity.CosineSimilarity; @@ -208,8 +207,8 @@ public boolean isRecommendedInstanceSimilarToModelInstance(RecommendedInstance r */ public boolean isWordSimilarToModelInstanceType(Word word, ModelEntity modelEntity) { - Optional> typeParts = modelEntity.getTypeParts(); - return typeParts.filter(strings -> this.compareWordWithStringListEntries(word, strings)).isPresent(); + ImmutableList typeParts = modelEntity.getTypeParts(); + return !typeParts.isEmpty() && this.compareWordWithStringListEntries(word, typeParts); } private boolean compareWordWithStringListEntries(Word word, ImmutableList names) { From 4e8c58c6dbad955d63247fa49eaf20295d92d99c Mon Sep 17 00:00:00 2001 From: Sophie Corallo Date: Tue, 29 Jul 2025 16:49:25 +0200 Subject: [PATCH 112/115] correct ensurance --- .../models/ArchitectureModelWithComponentsAndInterfaces.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java index 81e5f51b1..2791b412b 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/ArchitectureModelWithComponentsAndInterfaces.java @@ -23,8 +23,8 @@ public final class ArchitectureModelWithComponentsAndInterfaces extends Architec */ public ArchitectureModelWithComponentsAndInterfaces(List content) { for (ArchitectureItem item : content) { - if (item instanceof ArchitectureComponent || item instanceof ArchitectureInterface) { - content.add(item); + if (!(item instanceof ArchitectureComponent || item instanceof ArchitectureInterface)) { + throw new IllegalArgumentException("Architecture items must be of type ArchitectureComponent, ArchitectureInterface"); } } this.content = content; From 5483589770e3d8bcde00b9202f3aa3e99bcee5ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 29 Jul 2025 17:20:18 +0200 Subject: [PATCH 113/115] remove deploy actions from subrepositories --- .github/workflows/deploy.yml | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index db1abe872..000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Maven Deploy - -on: - push: - branches: - - 'main' # Build the latest develop-SNAPSHOT - paths: - - '**/src/**' - - '**/pom.xml' - - 'pom.xml' - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - publish: - uses: ardoco/actions/.github/workflows/maven.yml@main - with: - deploy: true - with-submodules: true - runs-on: ubuntu-latest - secrets: - CENTRAL_USER: ${{secrets.OSSRH_USER}} - CENTRAL_TOKEN: ${{secrets.OSSRH_TOKEN}} - GPG_KEY: ${{secrets.GPG_KEY}} - From 63e40973ad41b9f8d5c452b13a5b1aa6893f023e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Tue, 29 Jul 2025 17:30:11 +0200 Subject: [PATCH 114/115] Update READMEs --- README.md | 59 +++++++------------------------------------------------ 1 file changed, 7 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 5cbcb3976..4c9de41da 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,9 @@ -# ArDoCo Core +# ArDoCo Core Framework -[![Maven Verify](https://github.com/ArDoCo/Core/actions/workflows/verify.yml/badge.svg)](https://github.com/ArDoCo/Core/actions/workflows/verify.yml) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.ardoco.core/parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.ardoco.core/parent) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ArDoCo_Core&metric=alert_status)](https://sonarcloud.io/dashboard?id=ArDoCo_Core) -[![Latest Release](https://img.shields.io/github/release/ArDoCo/Core.svg)](https://github.com/ArDoCo/Core/releases/latest) -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7274034.svg)](https://doi.org/10.5281/zenodo.7274034) +The goal of this project is to define the core elements for TLR and inconsistency detection in ArDoCo. +For more information about the ArDoCo project visit the website at [ArDoCo](https://ardoco.de). -The goal of the ArDoCo project is to connect architecture documentation and models with Traceability Link Recovery (TLR) while identifying missing or deviating elements (inconsistencies). -An element can be any representable item of the model, like a component or a relation. -To do so, we first create trace links and then make use of them and other information to identify inconsistencies. - -ArDoCo is actively developed by researchers of the _[Modelling for Continuous Software Engineering (MCSE) group](https://mcse.kastel.kit.edu)_ of _[KASTEL - Institute of Information Security and Dependability](https://kastel.kit.edu)_ at the [KIT](https://www.kit.edu). - -This **Core** repository contains the framework and core definitions for the other approaches. -As such, there is the definition of our pipeline and the data handling as well as the definitions for the various pipeline steps, inputs, outputs, etc. - -For more information about the setup, the project structure, or the architecture, please have a look at the [Wiki](https://github.com/ArDoCo/Core/wiki). - -## Maven - -```xml - - - - io.github.ardoco.core - framework - VERSION - - -``` - -For snapshot releases, make sure to add the following repository - -```xml - - - - - false - - - true - - mavenSnapshot - https://s01.oss.sonatype.org/content/repositories/snapshots - - -``` - -## Relevant repositories -The following is an excerpt of repositories that use this framework and implement the different approaches and pipelines of ArDoCo: -* [ArDoCo/TLR](https://github.com/ArDoCo/TLR): implementing different traceability link recovery approaches -* [ArDoCo/InconsistencyDetection](https://github.com/ArDoCo/InconsistencyDetection): implementing inconsistency detection approaches \ No newline at end of file +ArDoCo is actively developed by researchers of +the _[Modelling for Continuous Software Engineering (MCSE) group](https://mcse.kastel.kit.edu)_ +of _[KASTEL - Institute of Information Security and Dependability](https://kastel.kit.edu)_ at +the [KIT](https://www.kit.edu). From 05d0e9fd09a2bd4a56986d974e9fde8ff1453608 Mon Sep 17 00:00:00 2001 From: dfuchss <22198798+dfuchss@users.noreply.github.com> Date: Tue, 29 Jul 2025 15:34:39 +0000 Subject: [PATCH 115/115] Apply formatting changes --- .../edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java | 2 +- .../kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java | 1 + .../ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java | 2 +- .../core/textproviderjson/converter/DtoToObjectConverter.java | 2 +- .../ardoco/core/textproviderjson/converter/TreeParserTest.java | 2 +- .../mcse/ardoco/core/tests/eval/ConfigurationTestBase.java | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java index 75056c492..ca25f4932 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/text/DependencyTag.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2021-2024. */ +/* Licensed under MIT 2021-2025. */ package edu.kit.kastel.mcse.ardoco.core.api.text; /** diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java index f1d2e43a6..a58fc8de1 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/TraceLinkArchitectureTest.java @@ -1,3 +1,4 @@ +/* Licensed under MIT 2025. */ package edu.kit.kastel.mcse.ardoco.core; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.methods; diff --git a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java index 43886c4ea..515316be8 100644 --- a/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java +++ b/framework/common/src/test/java/edu/kit/kastel/mcse/ardoco/core/common/similarity/wordsim/WordSimUtilsTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.common.similarity.wordsim; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java index f1f34953f..2436750df 100644 --- a/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java +++ b/framework/text-provider-json/src/main/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/DtoToObjectConverter.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.util.ArrayList; diff --git a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java index f9d738597..7f064fad5 100644 --- a/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java +++ b/framework/text-provider-json/src/test/java/edu/kit/kastel/mcse/ardoco/core/textproviderjson/converter/TreeParserTest.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2023-2024. */ +/* Licensed under MIT 2023-2025. */ package edu.kit.kastel.mcse.ardoco.core.textproviderjson.converter; import java.util.ArrayList; diff --git a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java index ddb574f21..240bbf7e1 100644 --- a/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java +++ b/tests-base/src/main/java/edu/kit/kastel/mcse/ardoco/core/tests/eval/ConfigurationTestBase.java @@ -1,4 +1,4 @@ -/* Licensed under MIT 2022-2024. */ +/* Licensed under MIT 2022-2025. */ package edu.kit.kastel.mcse.ardoco.core.tests.eval; import java.lang.reflect.Field;

    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%0AP*9Ax4Qj;Vc-&x^Bm&=ucozD~*1=&4v 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%0Aizpd>O7zJ&6o!ithiM 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